@wordpress/block-editor 14.3.6 → 14.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (953) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +6 -2
  3. package/build/autocompleters/block.js.map +1 -1
  4. package/build/autocompleters/link.js +2 -1
  5. package/build/autocompleters/link.js.map +1 -1
  6. package/build/components/background-image-control/index.js +1 -1
  7. package/build/components/background-image-control/index.js.map +1 -1
  8. package/build/components/block-actions/index.js +1 -13
  9. package/build/components/block-actions/index.js.map +1 -1
  10. package/build/components/block-controls/slot.js.map +1 -1
  11. package/build/components/block-controls/slot.native.js.map +1 -1
  12. package/build/components/block-draggable/draggable-chip.js +1 -1
  13. package/build/components/block-draggable/draggable-chip.js.map +1 -1
  14. package/build/components/block-inspector/index.js +56 -75
  15. package/build/components/block-inspector/index.js.map +1 -1
  16. package/build/components/block-list/block-invalid-warning.native.js +1 -1
  17. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  18. package/build/components/block-list/block-list-item.native.js.map +1 -1
  19. package/build/components/block-list/block.js +5 -16
  20. package/build/components/block-list/block.js.map +1 -1
  21. package/build/components/block-list/index.js +6 -8
  22. package/build/components/block-list/index.js.map +1 -1
  23. package/build/components/block-list/index.native.js.map +1 -1
  24. package/build/components/block-list/use-block-props/index.js +3 -8
  25. package/build/components/block-list/use-block-props/index.js.map +1 -1
  26. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +14 -6
  27. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  28. package/build/components/block-list/use-in-between-inserter.js +5 -3
  29. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  30. package/build/components/block-list/zoom-out-separator.js +24 -13
  31. package/build/components/block-list/zoom-out-separator.js.map +1 -1
  32. package/build/components/block-lock/modal.js +1 -1
  33. package/build/components/block-lock/modal.js.map +1 -1
  34. package/build/components/block-mover/button.js.map +1 -1
  35. package/build/components/block-navigation/dropdown.js +2 -4
  36. package/build/components/block-navigation/dropdown.js.map +1 -1
  37. package/build/components/block-parent-selector/index.js +14 -11
  38. package/build/components/block-parent-selector/index.js.map +1 -1
  39. package/build/components/block-pattern-setup/index.js.map +1 -1
  40. package/build/components/block-pattern-setup/setup-toolbar.js +10 -20
  41. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  42. package/build/components/block-patterns-list/index.js.map +1 -1
  43. package/build/components/block-patterns-paging/index.js +11 -13
  44. package/build/components/block-patterns-paging/index.js.map +1 -1
  45. package/build/components/block-popover/index.js +45 -2
  46. package/build/components/block-popover/index.js.map +1 -1
  47. package/build/components/block-preview/auto.js +1 -4
  48. package/build/components/block-preview/auto.js.map +1 -1
  49. package/build/components/block-preview/index.js.map +1 -1
  50. package/build/components/block-quick-navigation/index.js +2 -4
  51. package/build/components/block-quick-navigation/index.js.map +1 -1
  52. package/build/components/block-rename/modal.js +2 -2
  53. package/build/components/block-rename/modal.js.map +1 -1
  54. package/build/components/block-settings-menu/block-parent-selector-menu-item.js +1 -1
  55. package/build/components/block-settings-menu/block-parent-selector-menu-item.js.map +1 -1
  56. package/build/components/block-settings-menu/block-settings-dropdown.js +79 -76
  57. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  58. package/build/components/block-settings-menu-controls/index.js +1 -6
  59. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  60. package/build/components/block-switcher/block-transformations-menu.native.js +1 -1
  61. package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  62. package/build/components/block-switcher/index.js +19 -15
  63. package/build/components/block-switcher/index.js.map +1 -1
  64. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  65. package/build/components/block-switcher/use-transformed-patterns.js +1 -0
  66. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  67. package/build/components/block-switcher/utils.js +1 -0
  68. package/build/components/block-switcher/utils.js.map +1 -1
  69. package/build/components/block-toolbar/index.js +16 -19
  70. package/build/components/block-toolbar/index.js.map +1 -1
  71. package/build/components/block-toolbar/use-has-block-toolbar.js +3 -5
  72. package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  73. package/build/components/block-tools/index.js +8 -18
  74. package/build/components/block-tools/index.js.map +1 -1
  75. package/build/components/block-tools/insertion-point.js +1 -4
  76. package/build/components/block-tools/insertion-point.js.map +1 -1
  77. package/build/components/block-tools/use-show-block-tools.js +8 -7
  78. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  79. package/build/components/block-tools/zoom-out-mode-inserter-button.js +1 -12
  80. package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -1
  81. package/build/components/block-tools/zoom-out-mode-inserters.js +14 -17
  82. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  83. package/build/components/block-tools/zoom-out-popover.js +3 -2
  84. package/build/components/block-tools/zoom-out-popover.js.map +1 -1
  85. package/build/components/block-tools/zoom-out-toolbar.js +5 -32
  86. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
  87. package/build/components/block-types-list/index.js.map +1 -1
  88. package/build/components/block-types-list/index.native.js.map +1 -1
  89. package/build/components/block-variation-transforms/index.js +3 -2
  90. package/build/components/block-variation-transforms/index.js.map +1 -1
  91. package/build/components/border-radius-control/index.js.map +1 -1
  92. package/build/components/border-radius-control/utils.js.map +1 -1
  93. package/build/components/button-block-appender/index.js.map +1 -1
  94. package/build/components/color-style-selector/index.js.map +1 -1
  95. package/build/components/colors/utils.js.map +1 -1
  96. package/build/components/colors/with-colors.js.map +1 -1
  97. package/build/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  98. package/build/components/date-format-picker/index.js +1 -0
  99. package/build/components/date-format-picker/index.js.map +1 -1
  100. package/build/components/duotone/utils.js.map +1 -1
  101. package/build/components/duotone-control/index.js.map +1 -1
  102. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  103. package/build/components/font-sizes/utils.js.map +1 -1
  104. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  105. package/build/components/global-styles/border-panel.js +1 -1
  106. package/build/components/global-styles/border-panel.js.map +1 -1
  107. package/build/components/global-styles/color-panel.js +1 -1
  108. package/build/components/global-styles/color-panel.js.map +1 -1
  109. package/build/components/global-styles/dimensions-panel.js +3 -3
  110. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  111. package/build/components/global-styles/filters-panel.js.map +1 -1
  112. package/build/components/global-styles/get-block-css-selector.js.map +1 -1
  113. package/build/components/global-styles/get-global-styles-changes.js +2 -1
  114. package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
  115. package/build/components/global-styles/hooks.js.map +1 -1
  116. package/build/components/global-styles/typography-panel.js.map +1 -1
  117. package/build/components/global-styles/use-global-styles-context.native.js.map +1 -1
  118. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  119. package/build/components/global-styles/utils.js.map +1 -1
  120. package/build/components/gradients/use-gradient.js.map +1 -1
  121. package/build/components/grid/grid-item-movers.js.map +1 -1
  122. package/build/components/grid/grid-visualizer.js.map +1 -1
  123. package/build/components/iframe/index.js +44 -9
  124. package/build/components/iframe/index.js.map +1 -1
  125. package/build/components/image-editor/use-save-image.js +1 -1
  126. package/build/components/image-editor/use-save-image.js.map +1 -1
  127. package/build/components/inner-blocks/index.js +1 -9
  128. package/build/components/inner-blocks/index.js.map +1 -1
  129. package/build/components/inner-blocks/use-nested-settings-update.js +15 -8
  130. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  131. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +1 -1
  132. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  133. package/build/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  134. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  135. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +1 -1
  136. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  137. package/build/components/inserter/block-types-tab.js +1 -1
  138. package/build/components/inserter/block-types-tab.js.map +1 -1
  139. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  140. package/build/components/inserter/category-tabs/index.js +1 -10
  141. package/build/components/inserter/category-tabs/index.js.map +1 -1
  142. package/build/components/inserter/hooks/use-block-types-state.js +24 -5
  143. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  144. package/build/components/inserter/hooks/use-insertion-point.js +22 -12
  145. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  146. package/build/components/inserter/hooks/use-patterns-state.js +24 -11
  147. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  148. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  149. package/build/components/inserter/media-tab/media-preview.js +36 -14
  150. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  151. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  152. package/build/components/inserter/media-tab/utils.js.map +1 -1
  153. package/build/components/inserter/menu.js +4 -4
  154. package/build/components/inserter/menu.js.map +1 -1
  155. package/build/components/inserter/mobile-tab-navigation.js +5 -5
  156. package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
  157. package/build/components/inserter/preview-panel.js.map +1 -1
  158. package/build/components/inserter/quick-inserter.js +5 -5
  159. package/build/components/inserter/quick-inserter.js.map +1 -1
  160. package/build/components/inserter/search-results.js +1 -1
  161. package/build/components/inserter/search-results.js.map +1 -1
  162. package/build/components/inserter/tabs.native.js.map +1 -1
  163. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  164. package/build/components/inspector-controls/fill.js.map +1 -1
  165. package/build/components/inspector-controls/fill.native.js.map +1 -1
  166. package/build/components/inspector-controls/slot.js.map +1 -1
  167. package/build/components/inspector-controls/slot.native.js.map +1 -1
  168. package/build/components/line-height-control/index.js.map +1 -1
  169. package/build/components/link-control/index.js +1 -2
  170. package/build/components/link-control/index.js.map +1 -1
  171. package/build/components/link-control/is-url-like.js.map +1 -1
  172. package/build/components/link-control/search-create-button.js +1 -1
  173. package/build/components/link-control/search-create-button.js.map +1 -1
  174. package/build/components/link-control/search-input.js +3 -5
  175. package/build/components/link-control/search-input.js.map +1 -1
  176. package/build/components/link-control/search-results.js +5 -15
  177. package/build/components/link-control/search-results.js.map +1 -1
  178. package/build/components/link-control/settings-drawer.js.map +1 -1
  179. package/build/components/link-control/use-rich-url-data.js.map +1 -1
  180. package/build/components/list-view/appender.js +1 -1
  181. package/build/components/list-view/appender.js.map +1 -1
  182. package/build/components/list-view/block-contents.js +1 -25
  183. package/build/components/list-view/block-contents.js.map +1 -1
  184. package/build/components/list-view/block-select-button.js.map +1 -1
  185. package/build/components/list-view/block.js.map +1 -1
  186. package/build/components/list-view/branch.js.map +1 -1
  187. package/build/components/list-view/drop-indicator.js.map +1 -1
  188. package/build/components/list-view/index.js.map +1 -1
  189. package/build/components/list-view/use-block-selection.js +2 -2
  190. package/build/components/list-view/use-block-selection.js.map +1 -1
  191. package/build/components/list-view/utils.js +1 -1
  192. package/build/components/list-view/utils.js.map +1 -1
  193. package/build/components/media-placeholder/index.native.js +1 -1
  194. package/build/components/media-placeholder/index.native.js.map +1 -1
  195. package/build/components/media-replace-flow/index.js.map +1 -1
  196. package/build/components/multi-selection-inspector/index.js +2 -2
  197. package/build/components/multi-selection-inspector/index.js.map +1 -1
  198. package/build/components/observe-typing/index.js +1 -0
  199. package/build/components/observe-typing/index.js.map +1 -1
  200. package/build/components/recursion-provider/index.js +1 -0
  201. package/build/components/recursion-provider/index.js.map +1 -1
  202. package/build/components/responsive-block-control/index.js +3 -3
  203. package/build/components/responsive-block-control/index.js.map +1 -1
  204. package/build/components/responsive-block-control/label.js +1 -1
  205. package/build/components/responsive-block-control/label.js.map +1 -1
  206. package/build/components/rich-text/content.js.map +1 -1
  207. package/build/components/rich-text/file-paste-handler.native.js.map +1 -1
  208. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  209. package/build/components/rich-text/format-toolbar/index.native.js.map +1 -1
  210. package/build/components/rich-text/index.js +3 -2
  211. package/build/components/rich-text/index.js.map +1 -1
  212. package/build/components/rich-text/multiline.js.map +1 -1
  213. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  214. package/build/components/rich-text/native/index.native.js.map +1 -1
  215. package/build/components/rich-text/native/use-format-types.js +1 -0
  216. package/build/components/rich-text/native/use-format-types.js.map +1 -1
  217. package/build/components/rich-text/toolbar-button.js.map +1 -1
  218. package/build/components/rich-text/use-format-types.js +1 -0
  219. package/build/components/rich-text/use-format-types.js.map +1 -1
  220. package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  221. package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  222. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  223. package/build/components/spacing-sizes-control/utils.js +1 -0
  224. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  225. package/build/components/tool-selector/index.js +13 -8
  226. package/build/components/tool-selector/index.js.map +1 -1
  227. package/build/components/typewriter/index.js +1 -0
  228. package/build/components/typewriter/index.js.map +1 -1
  229. package/build/components/unsupported-block-details/index.native.js.map +1 -1
  230. package/build/components/url-input/index.js +1 -1
  231. package/build/components/url-input/index.js.map +1 -1
  232. package/build/components/use-block-commands/index.js +0 -61
  233. package/build/components/use-block-commands/index.js.map +1 -1
  234. package/build/components/use-block-drop-zone/index.js.map +1 -1
  235. package/build/components/use-flash-editable-blocks/index.js.map +1 -1
  236. package/build/components/use-moving-animation/index.js.map +1 -1
  237. package/build/components/writing-flow/use-tab-nav.js +23 -30
  238. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  239. package/build/hooks/align.js.map +1 -1
  240. package/build/hooks/block-hooks.js +1 -1
  241. package/build/hooks/block-hooks.js.map +1 -1
  242. package/build/hooks/block-style-variation.js.map +1 -1
  243. package/build/hooks/duotone.js +4 -1
  244. package/build/hooks/duotone.js.map +1 -1
  245. package/build/hooks/font-family.js.map +1 -1
  246. package/build/hooks/gap.js.map +1 -1
  247. package/build/hooks/generated-class-name.js +1 -0
  248. package/build/hooks/generated-class-name.js.map +1 -1
  249. package/build/hooks/layout-child.js +3 -1
  250. package/build/hooks/layout-child.js.map +1 -1
  251. package/build/hooks/layout.js.map +1 -1
  252. package/build/hooks/position.js +4 -3
  253. package/build/hooks/position.js.map +1 -1
  254. package/build/hooks/spacing-visualizer.js.map +1 -1
  255. package/build/hooks/style.js.map +1 -1
  256. package/build/hooks/text-align.js.map +1 -1
  257. package/build/hooks/use-typography-props.js.map +1 -1
  258. package/build/hooks/use-zoom-out.js +24 -16
  259. package/build/hooks/use-zoom-out.js.map +1 -1
  260. package/build/layouts/constrained.js.map +1 -1
  261. package/build/layouts/flex.js.map +1 -1
  262. package/build/layouts/grid.js.map +1 -1
  263. package/build/layouts/utils.js.map +1 -1
  264. package/build/store/actions.js +18 -20
  265. package/build/store/actions.js.map +1 -1
  266. package/build/store/private-actions.js +15 -0
  267. package/build/store/private-actions.js.map +1 -1
  268. package/build/store/private-selectors.js +104 -7
  269. package/build/store/private-selectors.js.map +1 -1
  270. package/build/store/reducer.js +24 -44
  271. package/build/store/reducer.js.map +1 -1
  272. package/build/store/selectors.js +149 -71
  273. package/build/store/selectors.js.map +1 -1
  274. package/build/store/utils.js +4 -3
  275. package/build/store/utils.js.map +1 -1
  276. package/build/utils/block-bindings.js +2 -0
  277. package/build/utils/block-bindings.js.map +1 -1
  278. package/build/utils/get-font-styles-and-weights.js +1 -1
  279. package/build/utils/get-font-styles-and-weights.js.map +1 -1
  280. package/build/utils/object.js +1 -0
  281. package/build/utils/object.js.map +1 -1
  282. package/build/utils/pasting.js.map +1 -1
  283. package/build-module/autocompleters/block.js +1 -3
  284. package/build-module/autocompleters/block.js.map +1 -1
  285. package/build-module/autocompleters/link.js +3 -4
  286. package/build-module/autocompleters/link.js.map +1 -1
  287. package/build-module/components/audio-player/index.native.js +1 -2
  288. package/build-module/components/audio-player/index.native.js.map +1 -1
  289. package/build-module/components/background-image-control/index.js +2 -3
  290. package/build-module/components/background-image-control/index.js.map +1 -1
  291. package/build-module/components/block-actions/index.js +1 -13
  292. package/build-module/components/block-actions/index.js.map +1 -1
  293. package/build-module/components/block-alignment-control/ui.js +1 -2
  294. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  295. package/build-module/components/block-breadcrumb/index.js +1 -2
  296. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  297. package/build-module/components/block-canvas/index.js +1 -2
  298. package/build-module/components/block-canvas/index.js.map +1 -1
  299. package/build-module/components/block-card/index.js +1 -2
  300. package/build-module/components/block-card/index.js.map +1 -1
  301. package/build-module/components/block-compare/block-view.js +1 -2
  302. package/build-module/components/block-compare/block-view.js.map +1 -1
  303. package/build-module/components/block-compare/index.js +1 -2
  304. package/build-module/components/block-compare/index.js.map +1 -1
  305. package/build-module/components/block-controls/fill.js +1 -3
  306. package/build-module/components/block-controls/fill.js.map +1 -1
  307. package/build-module/components/block-controls/slot.js.map +1 -1
  308. package/build-module/components/block-controls/slot.native.js.map +1 -1
  309. package/build-module/components/block-draggable/draggable-chip.js +2 -3
  310. package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
  311. package/build-module/components/block-draggable/draggable-chip.native.js +1 -2
  312. package/build-module/components/block-draggable/draggable-chip.native.js.map +1 -1
  313. package/build-module/components/block-draggable/index.native.js +1 -3
  314. package/build-module/components/block-draggable/index.native.js.map +1 -1
  315. package/build-module/components/block-edit/index.js +1 -2
  316. package/build-module/components/block-edit/index.js.map +1 -1
  317. package/build-module/components/block-edit/multiple-usage-warning.js +1 -2
  318. package/build-module/components/block-edit/multiple-usage-warning.js.map +1 -1
  319. package/build-module/components/block-inspector/index.js +57 -78
  320. package/build-module/components/block-inspector/index.js.map +1 -1
  321. package/build-module/components/block-list/block-crash-warning.js +1 -1
  322. package/build-module/components/block-list/block-crash-warning.js.map +1 -1
  323. package/build-module/components/block-list/block-crash-warning.native.js +1 -1
  324. package/build-module/components/block-list/block-crash-warning.native.js.map +1 -1
  325. package/build-module/components/block-list/block-invalid-warning.js +1 -3
  326. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  327. package/build-module/components/block-list/block-invalid-warning.native.js +1 -1
  328. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  329. package/build-module/components/block-list/block-list-item.native.js +1 -2
  330. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  331. package/build-module/components/block-list/block-selection-button.native.js +1 -2
  332. package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
  333. package/build-module/components/block-list/block.js +6 -19
  334. package/build-module/components/block-list/block.js.map +1 -1
  335. package/build-module/components/block-list/block.native.js +1 -2
  336. package/build-module/components/block-list/block.native.js.map +1 -1
  337. package/build-module/components/block-list/index.js +7 -10
  338. package/build-module/components/block-list/index.js.map +1 -1
  339. package/build-module/components/block-list/index.native.js +1 -3
  340. package/build-module/components/block-list/index.native.js.map +1 -1
  341. package/build-module/components/block-list/insertion-point.native.js +1 -2
  342. package/build-module/components/block-list/insertion-point.native.js.map +1 -1
  343. package/build-module/components/block-list/use-block-props/index.js +3 -8
  344. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  345. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +14 -6
  346. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  347. package/build-module/components/block-list/use-in-between-inserter.js +5 -3
  348. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  349. package/build-module/components/block-list/zoom-out-separator.js +24 -13
  350. package/build-module/components/block-list/zoom-out-separator.js.map +1 -1
  351. package/build-module/components/block-lock/menu-item.js +1 -3
  352. package/build-module/components/block-lock/menu-item.js.map +1 -1
  353. package/build-module/components/block-lock/modal.js +2 -3
  354. package/build-module/components/block-lock/modal.js.map +1 -1
  355. package/build-module/components/block-lock/toolbar.js +1 -3
  356. package/build-module/components/block-lock/toolbar.js.map +1 -1
  357. package/build-module/components/block-media-update-progress/index.native.js +1 -2
  358. package/build-module/components/block-media-update-progress/index.native.js.map +1 -1
  359. package/build-module/components/block-mover/button.js +1 -3
  360. package/build-module/components/block-mover/button.js.map +1 -1
  361. package/build-module/components/block-mover/index.js +1 -2
  362. package/build-module/components/block-mover/index.js.map +1 -1
  363. package/build-module/components/block-mover/index.native.js +1 -2
  364. package/build-module/components/block-mover/index.native.js.map +1 -1
  365. package/build-module/components/block-navigation/dropdown.js +3 -6
  366. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  367. package/build-module/components/block-parent-selector/index.js +14 -11
  368. package/build-module/components/block-parent-selector/index.js.map +1 -1
  369. package/build-module/components/block-pattern-setup/index.js +1 -3
  370. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  371. package/build-module/components/block-pattern-setup/setup-toolbar.js +11 -22
  372. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  373. package/build-module/components/block-patterns-list/index.js +1 -3
  374. package/build-module/components/block-patterns-list/index.js.map +1 -1
  375. package/build-module/components/block-patterns-paging/index.js +12 -15
  376. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  377. package/build-module/components/block-popover/index.js +45 -2
  378. package/build-module/components/block-popover/index.js.map +1 -1
  379. package/build-module/components/block-preview/auto.js +2 -7
  380. package/build-module/components/block-preview/auto.js.map +1 -1
  381. package/build-module/components/block-preview/index.js +1 -2
  382. package/build-module/components/block-preview/index.js.map +1 -1
  383. package/build-module/components/block-quick-navigation/index.js +3 -6
  384. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  385. package/build-module/components/block-removal-warning-modal/index.js +1 -2
  386. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  387. package/build-module/components/block-rename/modal.js +3 -4
  388. package/build-module/components/block-rename/modal.js.map +1 -1
  389. package/build-module/components/block-rename/rename-control.js +1 -3
  390. package/build-module/components/block-rename/rename-control.js.map +1 -1
  391. package/build-module/components/block-settings/container.native.js +1 -3
  392. package/build-module/components/block-settings/container.native.js.map +1 -1
  393. package/build-module/components/block-settings-menu/block-parent-selector-menu-item.js +1 -1
  394. package/build-module/components/block-settings-menu/block-parent-selector-menu-item.js.map +1 -1
  395. package/build-module/components/block-settings-menu/block-settings-dropdown.js +80 -79
  396. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  397. package/build-module/components/block-settings-menu-controls/index.js +3 -9
  398. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  399. package/build-module/components/block-styles/index.js +1 -2
  400. package/build-module/components/block-styles/index.js.map +1 -1
  401. package/build-module/components/block-styles/menu-items.js +1 -2
  402. package/build-module/components/block-styles/menu-items.js.map +1 -1
  403. package/build-module/components/block-styles/preview.native.js +1 -2
  404. package/build-module/components/block-styles/preview.native.js.map +1 -1
  405. package/build-module/components/block-switcher/block-transformations-menu.js +1 -3
  406. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  407. package/build-module/components/block-switcher/block-transformations-menu.native.js +1 -1
  408. package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  409. package/build-module/components/block-switcher/block-variation-transformations.js +1 -3
  410. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
  411. package/build-module/components/block-switcher/index.js +20 -18
  412. package/build-module/components/block-switcher/index.js.map +1 -1
  413. package/build-module/components/block-switcher/pattern-transformations-menu.js +1 -2
  414. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  415. package/build-module/components/block-switcher/preview-block-popover.js +1 -2
  416. package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
  417. package/build-module/components/block-switcher/use-transformed-patterns.js +1 -0
  418. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  419. package/build-module/components/block-switcher/utils.js +1 -0
  420. package/build-module/components/block-switcher/utils.js.map +1 -1
  421. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +1 -2
  422. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  423. package/build-module/components/block-toolbar/index.js +17 -22
  424. package/build-module/components/block-toolbar/index.js.map +1 -1
  425. package/build-module/components/block-toolbar/index.native.js +1 -3
  426. package/build-module/components/block-toolbar/index.native.js.map +1 -1
  427. package/build-module/components/block-toolbar/use-has-block-toolbar.js +3 -5
  428. package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  429. package/build-module/components/block-tools/index.js +9 -20
  430. package/build-module/components/block-tools/index.js.map +1 -1
  431. package/build-module/components/block-tools/insertion-point.js +2 -6
  432. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  433. package/build-module/components/block-tools/use-show-block-tools.js +8 -7
  434. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  435. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +1 -12
  436. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -1
  437. package/build-module/components/block-tools/zoom-out-mode-inserters.js +14 -17
  438. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  439. package/build-module/components/block-tools/zoom-out-popover.js +2 -1
  440. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -1
  441. package/build-module/components/block-tools/zoom-out-toolbar.js +7 -35
  442. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  443. package/build-module/components/block-types-list/index.js +1 -2
  444. package/build-module/components/block-types-list/index.js.map +1 -1
  445. package/build-module/components/block-types-list/index.native.js +1 -2
  446. package/build-module/components/block-types-list/index.native.js.map +1 -1
  447. package/build-module/components/block-variation-picker/index.js +1 -2
  448. package/build-module/components/block-variation-picker/index.js.map +1 -1
  449. package/build-module/components/block-variation-picker/index.native.js +1 -2
  450. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  451. package/build-module/components/block-variation-transforms/index.js +4 -4
  452. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  453. package/build-module/components/border-radius-control/index.js +1 -3
  454. package/build-module/components/border-radius-control/index.js.map +1 -1
  455. package/build-module/components/border-radius-control/utils.js.map +1 -1
  456. package/build-module/components/button-block-appender/index.js.map +1 -1
  457. package/build-module/components/button-block-appender/index.native.js +1 -2
  458. package/build-module/components/button-block-appender/index.native.js.map +1 -1
  459. package/build-module/components/child-layout-control/index.js +1 -3
  460. package/build-module/components/child-layout-control/index.js.map +1 -1
  461. package/build-module/components/color-style-selector/index.js.map +1 -1
  462. package/build-module/components/colors/utils.js.map +1 -1
  463. package/build-module/components/colors/with-colors.js.map +1 -1
  464. package/build-module/components/colors-gradients/control.js +1 -2
  465. package/build-module/components/colors-gradients/control.js.map +1 -1
  466. package/build-module/components/colors-gradients/dropdown.js +1 -3
  467. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  468. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +1 -3
  469. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  470. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js +1 -3
  471. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  472. package/build-module/components/contrast-checker/index.native.js +1 -2
  473. package/build-module/components/contrast-checker/index.native.js.map +1 -1
  474. package/build-module/components/convert-to-group-buttons/index.js +1 -3
  475. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  476. package/build-module/components/convert-to-group-buttons/toolbar.js +1 -2
  477. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  478. package/build-module/components/date-format-picker/index.js +2 -2
  479. package/build-module/components/date-format-picker/index.js.map +1 -1
  480. package/build-module/components/default-block-appender/index.js +1 -2
  481. package/build-module/components/default-block-appender/index.js.map +1 -1
  482. package/build-module/components/dimensions-tool/index.js +1 -3
  483. package/build-module/components/dimensions-tool/index.js.map +1 -1
  484. package/build-module/components/dimensions-tool/width-height-tool.js +1 -3
  485. package/build-module/components/dimensions-tool/width-height-tool.js.map +1 -1
  486. package/build-module/components/duotone/utils.js.map +1 -1
  487. package/build-module/components/duotone-control/index.js +1 -2
  488. package/build-module/components/duotone-control/index.js.map +1 -1
  489. package/build-module/components/editor-styles/index.js +1 -3
  490. package/build-module/components/editor-styles/index.js.map +1 -1
  491. package/build-module/components/floating-toolbar/index.native.js +1 -2
  492. package/build-module/components/floating-toolbar/index.native.js.map +1 -1
  493. package/build-module/components/floating-toolbar/nav-up-icon.js +1 -2
  494. package/build-module/components/floating-toolbar/nav-up-icon.js.map +1 -1
  495. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  496. package/build-module/components/font-sizes/utils.js.map +1 -1
  497. package/build-module/components/font-sizes/with-font-sizes.js +2 -2
  498. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  499. package/build-module/components/global-styles/advanced-panel.js +1 -2
  500. package/build-module/components/global-styles/advanced-panel.js.map +1 -1
  501. package/build-module/components/global-styles/border-panel.js +2 -3
  502. package/build-module/components/global-styles/border-panel.js.map +1 -1
  503. package/build-module/components/global-styles/color-panel.js +2 -3
  504. package/build-module/components/global-styles/color-panel.js.map +1 -1
  505. package/build-module/components/global-styles/dimensions-panel.js +2 -3
  506. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  507. package/build-module/components/global-styles/filters-panel.js +1 -2
  508. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  509. package/build-module/components/global-styles/get-block-css-selector.js.map +1 -1
  510. package/build-module/components/global-styles/get-global-styles-changes.js +2 -1
  511. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  512. package/build-module/components/global-styles/hooks.js.map +1 -1
  513. package/build-module/components/global-styles/image-settings-panel.js +1 -2
  514. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  515. package/build-module/components/global-styles/shadow-panel-components.js +1 -2
  516. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  517. package/build-module/components/global-styles/typography-panel.js +1 -2
  518. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  519. package/build-module/components/global-styles/use-global-styles-context.native.js.map +1 -1
  520. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  521. package/build-module/components/global-styles/utils.js.map +1 -1
  522. package/build-module/components/gradients/use-gradient.js.map +1 -1
  523. package/build-module/components/grid/grid-item-movers.js +1 -3
  524. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  525. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  526. package/build-module/components/height-control/index.js +1 -2
  527. package/build-module/components/height-control/index.js.map +1 -1
  528. package/build-module/components/iframe/index.js +45 -12
  529. package/build-module/components/iframe/index.js.map +1 -1
  530. package/build-module/components/image-editor/aspect-ratio-dropdown.js +1 -3
  531. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  532. package/build-module/components/image-editor/cropper.js +1 -3
  533. package/build-module/components/image-editor/cropper.js.map +1 -1
  534. package/build-module/components/image-editor/form-controls.js +1 -3
  535. package/build-module/components/image-editor/form-controls.js.map +1 -1
  536. package/build-module/components/image-editor/index.js +1 -2
  537. package/build-module/components/image-editor/index.js.map +1 -1
  538. package/build-module/components/image-editor/use-save-image.js +1 -1
  539. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  540. package/build-module/components/image-link-destinations/index.native.js +1 -3
  541. package/build-module/components/image-link-destinations/index.native.js.map +1 -1
  542. package/build-module/components/image-size-control/index.js +1 -3
  543. package/build-module/components/image-size-control/index.js.map +1 -1
  544. package/build-module/components/inner-blocks/index.js +1 -9
  545. package/build-module/components/inner-blocks/index.js.map +1 -1
  546. package/build-module/components/inner-blocks/use-nested-settings-update.js +16 -9
  547. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  548. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js +1 -2
  549. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  550. package/build-module/components/inserter/block-patterns-explorer/index.js +1 -2
  551. package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -1
  552. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +2 -3
  553. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  554. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +3 -5
  555. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  556. package/build-module/components/inserter/block-patterns-tab/index.js +1 -3
  557. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  558. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -3
  559. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  560. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +1 -3
  561. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  562. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +1 -1
  563. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  564. package/build-module/components/inserter/block-types-tab.js +2 -4
  565. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  566. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  567. package/build-module/components/inserter/category-tabs/index.js +3 -13
  568. package/build-module/components/inserter/category-tabs/index.js.map +1 -1
  569. package/build-module/components/inserter/hooks/use-block-types-state.js +27 -8
  570. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  571. package/build-module/components/inserter/hooks/use-insertion-point.js +22 -12
  572. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  573. package/build-module/components/inserter/hooks/use-patterns-state.js +24 -11
  574. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  575. package/build-module/components/inserter/index.native.js +1 -3
  576. package/build-module/components/inserter/index.native.js.map +1 -1
  577. package/build-module/components/inserter/media-tab/media-panel.js +1 -2
  578. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  579. package/build-module/components/inserter/media-tab/media-preview.js +37 -17
  580. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  581. package/build-module/components/inserter/media-tab/media-tab.js +1 -3
  582. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  583. package/build-module/components/inserter/media-tab/utils.js.map +1 -1
  584. package/build-module/components/inserter/menu.js +5 -7
  585. package/build-module/components/inserter/menu.js.map +1 -1
  586. package/build-module/components/inserter/menu.native.js +1 -3
  587. package/build-module/components/inserter/menu.native.js.map +1 -1
  588. package/build-module/components/inserter/mobile-tab-navigation.js +7 -8
  589. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
  590. package/build-module/components/inserter/no-results.js +1 -2
  591. package/build-module/components/inserter/no-results.js.map +1 -1
  592. package/build-module/components/inserter/no-results.native.js +1 -2
  593. package/build-module/components/inserter/no-results.native.js.map +1 -1
  594. package/build-module/components/inserter/panel.js +1 -3
  595. package/build-module/components/inserter/panel.js.map +1 -1
  596. package/build-module/components/inserter/preview-panel.js +1 -2
  597. package/build-module/components/inserter/preview-panel.js.map +1 -1
  598. package/build-module/components/inserter/quick-inserter.js +6 -7
  599. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  600. package/build-module/components/inserter/search-results.js +2 -3
  601. package/build-module/components/inserter/search-results.js.map +1 -1
  602. package/build-module/components/inserter/tabs.native.js.map +1 -1
  603. package/build-module/components/inserter-button/index.native.js +1 -2
  604. package/build-module/components/inserter-button/index.native.js.map +1 -1
  605. package/build-module/components/inserter-list-item/index.js +1 -2
  606. package/build-module/components/inserter-list-item/index.js.map +1 -1
  607. package/build-module/components/inserter-listbox/index.js +1 -2
  608. package/build-module/components/inserter-listbox/index.js.map +1 -1
  609. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  610. package/build-module/components/inspector-controls/fill.js.map +1 -1
  611. package/build-module/components/inspector-controls/fill.native.js +1 -3
  612. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  613. package/build-module/components/inspector-controls/slot.js.map +1 -1
  614. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  615. package/build-module/components/inspector-controls-tabs/index.js +1 -2
  616. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  617. package/build-module/components/inspector-controls-tabs/settings-tab.js +1 -3
  618. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  619. package/build-module/components/inspector-controls-tabs/styles-tab.js +1 -3
  620. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  621. package/build-module/components/inspector-popover-header/index.js +1 -2
  622. package/build-module/components/inspector-popover-header/index.js.map +1 -1
  623. package/build-module/components/line-height-control/index.js.map +1 -1
  624. package/build-module/components/link-control/index.js +2 -5
  625. package/build-module/components/link-control/index.js.map +1 -1
  626. package/build-module/components/link-control/is-url-like.js.map +1 -1
  627. package/build-module/components/link-control/link-preview.js +1 -3
  628. package/build-module/components/link-control/link-preview.js.map +1 -1
  629. package/build-module/components/link-control/search-create-button.js +1 -1
  630. package/build-module/components/link-control/search-create-button.js.map +1 -1
  631. package/build-module/components/link-control/search-input.js +4 -7
  632. package/build-module/components/link-control/search-input.js.map +1 -1
  633. package/build-module/components/link-control/search-results.js +6 -17
  634. package/build-module/components/link-control/search-results.js.map +1 -1
  635. package/build-module/components/link-control/settings-drawer.js +1 -3
  636. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  637. package/build-module/components/link-control/settings.js +1 -2
  638. package/build-module/components/link-control/settings.js.map +1 -1
  639. package/build-module/components/link-control/use-rich-url-data.js.map +1 -1
  640. package/build-module/components/list-view/appender.js +2 -3
  641. package/build-module/components/list-view/appender.js.map +1 -1
  642. package/build-module/components/list-view/block-contents.js +2 -28
  643. package/build-module/components/list-view/block-contents.js.map +1 -1
  644. package/build-module/components/list-view/block-select-button.js +1 -2
  645. package/build-module/components/list-view/block-select-button.js.map +1 -1
  646. package/build-module/components/list-view/block.js +1 -3
  647. package/build-module/components/list-view/block.js.map +1 -1
  648. package/build-module/components/list-view/branch.js +1 -3
  649. package/build-module/components/list-view/branch.js.map +1 -1
  650. package/build-module/components/list-view/drop-indicator.js +1 -2
  651. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  652. package/build-module/components/list-view/index.js +1 -2
  653. package/build-module/components/list-view/index.js.map +1 -1
  654. package/build-module/components/list-view/use-block-selection.js +2 -2
  655. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  656. package/build-module/components/list-view/utils.js +1 -1
  657. package/build-module/components/list-view/utils.js.map +1 -1
  658. package/build-module/components/media-placeholder/index.js +1 -3
  659. package/build-module/components/media-placeholder/index.js.map +1 -1
  660. package/build-module/components/media-placeholder/index.native.js +2 -4
  661. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  662. package/build-module/components/media-replace-flow/index.js +1 -3
  663. package/build-module/components/media-replace-flow/index.js.map +1 -1
  664. package/build-module/components/media-upload/index.native.js +1 -3
  665. package/build-module/components/media-upload/index.native.js.map +1 -1
  666. package/build-module/components/media-upload-progress/index.native.js +1 -2
  667. package/build-module/components/media-upload-progress/index.native.js.map +1 -1
  668. package/build-module/components/multi-selection-inspector/index.js +3 -4
  669. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  670. package/build-module/components/observe-typing/index.js +1 -0
  671. package/build-module/components/observe-typing/index.js.map +1 -1
  672. package/build-module/components/provider/index.js +1 -2
  673. package/build-module/components/provider/index.js.map +1 -1
  674. package/build-module/components/publish-date-time-picker/index.js +1 -2
  675. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  676. package/build-module/components/recursion-provider/index.js +1 -0
  677. package/build-module/components/recursion-provider/index.js.map +1 -1
  678. package/build-module/components/responsive-block-control/index.js +4 -5
  679. package/build-module/components/responsive-block-control/index.js.map +1 -1
  680. package/build-module/components/responsive-block-control/label.js +2 -4
  681. package/build-module/components/responsive-block-control/label.js.map +1 -1
  682. package/build-module/components/rich-text/content.js.map +1 -1
  683. package/build-module/components/rich-text/event-listeners/before-input-rules.js +2 -2
  684. package/build-module/components/rich-text/event-listeners/before-input-rules.js.map +1 -1
  685. package/build-module/components/rich-text/event-listeners/delete.js +2 -2
  686. package/build-module/components/rich-text/event-listeners/delete.js.map +1 -1
  687. package/build-module/components/rich-text/event-listeners/enter.js +2 -2
  688. package/build-module/components/rich-text/event-listeners/enter.js.map +1 -1
  689. package/build-module/components/rich-text/event-listeners/firefox-compat.js +2 -2
  690. package/build-module/components/rich-text/event-listeners/firefox-compat.js.map +1 -1
  691. package/build-module/components/rich-text/event-listeners/input-events.js +2 -2
  692. package/build-module/components/rich-text/event-listeners/input-events.js.map +1 -1
  693. package/build-module/components/rich-text/event-listeners/input-rules.js +2 -2
  694. package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -1
  695. package/build-module/components/rich-text/event-listeners/insert-replacement-text.js +2 -2
  696. package/build-module/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -1
  697. package/build-module/components/rich-text/event-listeners/paste-handler.js +2 -2
  698. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  699. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js +2 -2
  700. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -1
  701. package/build-module/components/rich-text/event-listeners/shortcuts.js +2 -2
  702. package/build-module/components/rich-text/event-listeners/shortcuts.js.map +1 -1
  703. package/build-module/components/rich-text/event-listeners/undo-automatic-change.js +2 -2
  704. package/build-module/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -1
  705. package/build-module/components/rich-text/file-paste-handler.native.js.map +1 -1
  706. package/build-module/components/rich-text/format-toolbar/index.js +1 -3
  707. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  708. package/build-module/components/rich-text/format-toolbar/index.native.js +1 -3
  709. package/build-module/components/rich-text/format-toolbar/index.native.js.map +1 -1
  710. package/build-module/components/rich-text/index.js +4 -5
  711. package/build-module/components/rich-text/index.js.map +1 -1
  712. package/build-module/components/rich-text/index.native.js +1 -3
  713. package/build-module/components/rich-text/index.native.js.map +1 -1
  714. package/build-module/components/rich-text/multiline.js.map +1 -1
  715. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  716. package/build-module/components/rich-text/native/index.js +1 -1
  717. package/build-module/components/rich-text/native/index.js.map +1 -1
  718. package/build-module/components/rich-text/native/index.native.js +1 -3
  719. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  720. package/build-module/components/rich-text/native/toolbar-button-with-options.native.js +1 -3
  721. package/build-module/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -1
  722. package/build-module/components/rich-text/native/use-format-types.js +1 -0
  723. package/build-module/components/rich-text/native/use-format-types.js.map +1 -1
  724. package/build-module/components/rich-text/toolbar-button.js.map +1 -1
  725. package/build-module/components/rich-text/use-format-types.js +1 -0
  726. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  727. package/build-module/components/spacing-sizes-control/index.js +1 -2
  728. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  729. package/build-module/components/spacing-sizes-control/input-controls/axial.js +1 -2
  730. package/build-module/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  731. package/build-module/components/spacing-sizes-control/input-controls/separated.js +1 -2
  732. package/build-module/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  733. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -3
  734. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  735. package/build-module/components/spacing-sizes-control/utils.js +1 -0
  736. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  737. package/build-module/components/tabbed-sidebar/index.js +1 -2
  738. package/build-module/components/tabbed-sidebar/index.js.map +1 -1
  739. package/build-module/components/tool-selector/index.js +14 -11
  740. package/build-module/components/tool-selector/index.js.map +1 -1
  741. package/build-module/components/typewriter/index.js +1 -0
  742. package/build-module/components/typewriter/index.js.map +1 -1
  743. package/build-module/components/unsupported-block-details/index.native.js +1 -2
  744. package/build-module/components/unsupported-block-details/index.native.js.map +1 -1
  745. package/build-module/components/url-input/button.js +1 -2
  746. package/build-module/components/url-input/button.js.map +1 -1
  747. package/build-module/components/url-input/index.js +2 -4
  748. package/build-module/components/url-input/index.js.map +1 -1
  749. package/build-module/components/url-popover/image-url-input-ui.js +1 -3
  750. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  751. package/build-module/components/url-popover/index.js +1 -2
  752. package/build-module/components/url-popover/index.js.map +1 -1
  753. package/build-module/components/url-popover/link-editor.js +1 -2
  754. package/build-module/components/url-popover/link-editor.js.map +1 -1
  755. package/build-module/components/url-popover/link-viewer.js +1 -2
  756. package/build-module/components/url-popover/link-viewer.js.map +1 -1
  757. package/build-module/components/use-block-commands/index.js +1 -62
  758. package/build-module/components/use-block-commands/index.js.map +1 -1
  759. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  760. package/build-module/components/use-flash-editable-blocks/index.js.map +1 -1
  761. package/build-module/components/use-moving-animation/index.js.map +1 -1
  762. package/build-module/components/video-player/index.native.js +1 -2
  763. package/build-module/components/video-player/index.native.js.map +1 -1
  764. package/build-module/components/warning/index.js +1 -2
  765. package/build-module/components/warning/index.js.map +1 -1
  766. package/build-module/components/warning/index.native.js +1 -2
  767. package/build-module/components/warning/index.native.js.map +1 -1
  768. package/build-module/components/writing-flow/index.js +1 -3
  769. package/build-module/components/writing-flow/index.js.map +1 -1
  770. package/build-module/components/writing-flow/use-tab-nav.js +24 -31
  771. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  772. package/build-module/hooks/align.js.map +1 -1
  773. package/build-module/hooks/anchor.js +1 -3
  774. package/build-module/hooks/anchor.js.map +1 -1
  775. package/build-module/hooks/block-bindings.js +1 -3
  776. package/build-module/hooks/block-bindings.js.map +1 -1
  777. package/build-module/hooks/block-hooks.js +2 -3
  778. package/build-module/hooks/block-hooks.js.map +1 -1
  779. package/build-module/hooks/block-style-variation.js +1 -2
  780. package/build-module/hooks/block-style-variation.js.map +1 -1
  781. package/build-module/hooks/dimensions.js +1 -3
  782. package/build-module/hooks/dimensions.js.map +1 -1
  783. package/build-module/hooks/duotone.js +5 -4
  784. package/build-module/hooks/duotone.js.map +1 -1
  785. package/build-module/hooks/font-family.js.map +1 -1
  786. package/build-module/hooks/gap.js.map +1 -1
  787. package/build-module/hooks/generated-class-name.js +1 -0
  788. package/build-module/hooks/generated-class-name.js.map +1 -1
  789. package/build-module/hooks/grid-visualizer.js +1 -3
  790. package/build-module/hooks/grid-visualizer.js.map +1 -1
  791. package/build-module/hooks/layout-child.js +5 -4
  792. package/build-module/hooks/layout-child.js.map +1 -1
  793. package/build-module/hooks/layout.js +1 -3
  794. package/build-module/hooks/layout.js.map +1 -1
  795. package/build-module/hooks/position.js +5 -2
  796. package/build-module/hooks/position.js.map +1 -1
  797. package/build-module/hooks/spacing-visualizer.js.map +1 -1
  798. package/build-module/hooks/style.js +1 -3
  799. package/build-module/hooks/style.js.map +1 -1
  800. package/build-module/hooks/text-align.js.map +1 -1
  801. package/build-module/hooks/typography.native.js +1 -2
  802. package/build-module/hooks/typography.native.js.map +1 -1
  803. package/build-module/hooks/use-bindings-attributes.js +1 -2
  804. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  805. package/build-module/hooks/use-typography-props.js.map +1 -1
  806. package/build-module/hooks/use-zoom-out.js +24 -17
  807. package/build-module/hooks/use-zoom-out.js.map +1 -1
  808. package/build-module/layouts/constrained.js +1 -3
  809. package/build-module/layouts/constrained.js.map +1 -1
  810. package/build-module/layouts/flex.js +1 -3
  811. package/build-module/layouts/flex.js.map +1 -1
  812. package/build-module/layouts/grid.js +1 -3
  813. package/build-module/layouts/grid.js.map +1 -1
  814. package/build-module/layouts/utils.js.map +1 -1
  815. package/build-module/store/actions.js +17 -18
  816. package/build-module/store/actions.js.map +1 -1
  817. package/build-module/store/private-actions.js +14 -0
  818. package/build-module/store/private-actions.js.map +1 -1
  819. package/build-module/store/private-selectors.js +98 -7
  820. package/build-module/store/private-selectors.js.map +1 -1
  821. package/build-module/store/reducer.js +22 -41
  822. package/build-module/store/reducer.js.map +1 -1
  823. package/build-module/store/selectors.js +150 -70
  824. package/build-module/store/selectors.js.map +1 -1
  825. package/build-module/store/utils.js +3 -2
  826. package/build-module/store/utils.js.map +1 -1
  827. package/build-module/utils/block-bindings.js +2 -0
  828. package/build-module/utils/block-bindings.js.map +1 -1
  829. package/build-module/utils/get-font-styles-and-weights.js +1 -1
  830. package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
  831. package/build-module/utils/get-px-from-css-unit.js +1 -1
  832. package/build-module/utils/get-px-from-css-unit.js.map +1 -1
  833. package/build-module/utils/object.js +1 -0
  834. package/build-module/utils/object.js.map +1 -1
  835. package/build-module/utils/pasting.js.map +1 -1
  836. package/build-style/content-rtl.css +22 -73
  837. package/build-style/content.css +22 -73
  838. package/build-style/default-editor-styles-rtl.css +10 -1
  839. package/build-style/default-editor-styles.css +10 -1
  840. package/build-style/style-rtl.css +48 -165
  841. package/build-style/style.css +48 -165
  842. package/package.json +33 -33
  843. package/src/autocompleters/link.js +2 -1
  844. package/src/components/block-actions/index.js +1 -13
  845. package/src/components/block-canvas/style.scss +0 -1
  846. package/src/components/block-draggable/style.scss +2 -2
  847. package/src/components/block-inspector/index.js +79 -95
  848. package/src/components/block-list/block.js +7 -25
  849. package/src/components/block-list/content.scss +4 -63
  850. package/src/components/block-list/index.js +21 -29
  851. package/src/components/block-list/use-block-props/index.js +2 -8
  852. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +25 -4
  853. package/src/components/block-list/use-in-between-inserter.js +5 -2
  854. package/src/components/block-list/zoom-out-separator.js +32 -14
  855. package/src/components/block-navigation/dropdown.js +1 -2
  856. package/src/components/block-parent-selector/index.js +13 -10
  857. package/src/components/block-pattern-setup/setup-toolbar.js +5 -10
  858. package/src/components/block-patterns-paging/index.js +8 -7
  859. package/src/components/block-patterns-paging/style.scss +10 -27
  860. package/src/components/block-popover/index.js +64 -2
  861. package/src/components/block-preview/auto.js +1 -4
  862. package/src/components/block-quick-navigation/index.js +1 -2
  863. package/src/components/block-settings-menu/block-settings-dropdown.js +120 -106
  864. package/src/components/block-settings-menu-controls/index.js +0 -15
  865. package/src/components/block-switcher/index.js +37 -30
  866. package/src/components/block-toolbar/index.js +22 -34
  867. package/src/components/block-toolbar/style.scss +10 -1
  868. package/src/components/block-toolbar/use-has-block-toolbar.js +19 -31
  869. package/src/components/block-tools/index.js +7 -27
  870. package/src/components/block-tools/insertion-point.js +1 -4
  871. package/src/components/block-tools/style.scss +0 -90
  872. package/src/components/block-tools/use-show-block-tools.js +10 -13
  873. package/src/components/block-tools/zoom-out-mode-inserter-button.js +2 -17
  874. package/src/components/block-tools/zoom-out-mode-inserters.js +11 -19
  875. package/src/components/block-tools/zoom-out-popover.js +2 -1
  876. package/src/components/block-tools/zoom-out-toolbar.js +4 -36
  877. package/src/components/font-family/README.md +5 -1
  878. package/src/components/global-styles/border-panel.js +1 -1
  879. package/src/components/global-styles/dimensions-panel.js +1 -1
  880. package/src/components/iframe/content.scss +20 -24
  881. package/src/components/iframe/index.js +56 -12
  882. package/src/components/iframe/style.scss +6 -5
  883. package/src/components/inner-blocks/index.js +1 -16
  884. package/src/components/inner-blocks/use-nested-settings-update.js +16 -10
  885. package/src/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +1 -1
  886. package/src/components/inserter/block-types-tab.js +1 -1
  887. package/src/components/inserter/category-tabs/index.js +1 -11
  888. package/src/components/inserter/hooks/use-block-types-state.js +34 -14
  889. package/src/components/inserter/hooks/use-insertion-point.js +35 -13
  890. package/src/components/inserter/hooks/use-patterns-state.js +46 -9
  891. package/src/components/inserter/media-tab/media-preview.js +38 -12
  892. package/src/components/inserter/menu.js +4 -4
  893. package/src/components/inserter/mobile-tab-navigation.js +10 -13
  894. package/src/components/inserter/quick-inserter.js +6 -5
  895. package/src/components/inserter/style.scss +1 -69
  896. package/src/components/inspector-controls-tabs/style.scss +2 -6
  897. package/src/components/link-control/index.js +0 -1
  898. package/src/components/link-control/search-input.js +4 -5
  899. package/src/components/link-control/search-results.js +2 -13
  900. package/src/components/link-control/test/index.js +84 -46
  901. package/src/components/list-view/block-contents.js +1 -28
  902. package/src/components/list-view/style.scss +0 -14
  903. package/src/components/media-replace-flow/test/index.js +1 -1
  904. package/src/components/responsive-block-control/style.scss +0 -1
  905. package/src/components/rich-text/style.scss +5 -0
  906. package/src/components/tool-selector/index.js +15 -7
  907. package/src/components/tool-selector/style.scss +5 -0
  908. package/src/components/use-block-commands/index.js +0 -58
  909. package/src/components/writing-flow/use-tab-nav.js +32 -40
  910. package/src/content.scss +0 -1
  911. package/src/hooks/duotone.js +4 -1
  912. package/src/hooks/layout-child.js +4 -1
  913. package/src/hooks/position.js +4 -1
  914. package/src/hooks/use-zoom-out.js +36 -20
  915. package/src/store/actions.js +17 -15
  916. package/src/store/private-actions.js +14 -0
  917. package/src/store/private-selectors.js +120 -16
  918. package/src/store/reducer.js +22 -45
  919. package/src/store/selectors.js +218 -118
  920. package/src/store/test/private-actions.js +15 -0
  921. package/src/store/test/private-selectors.js +41 -1
  922. package/src/store/test/reducer.js +40 -4
  923. package/src/store/test/selectors.js +195 -21
  924. package/src/store/utils.js +4 -2
  925. package/src/style.scss +1 -0
  926. package/src/utils/block-bindings.js +2 -0
  927. package/build/components/block-controls/use-has-block-controls.js +0 -43
  928. package/build/components/block-controls/use-has-block-controls.js.map +0 -1
  929. package/build/components/block-list/use-block-props/use-nav-mode-exit.js +0 -54
  930. package/build/components/block-list/use-block-props/use-nav-mode-exit.js.map +0 -1
  931. package/build/components/block-tools/block-selection-button.js +0 -259
  932. package/build/components/block-tools/block-selection-button.js.map +0 -1
  933. package/build/components/block-tools/block-toolbar-breadcrumb.js +0 -57
  934. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +0 -1
  935. package/build/components/inserter/tabs.js +0 -78
  936. package/build/components/inserter/tabs.js.map +0 -1
  937. package/build-module/components/block-controls/use-has-block-controls.js +0 -34
  938. package/build-module/components/block-controls/use-has-block-controls.js.map +0 -1
  939. package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js +0 -48
  940. package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js.map +0 -1
  941. package/build-module/components/block-tools/block-selection-button.js +0 -254
  942. package/build-module/components/block-tools/block-selection-button.js.map +0 -1
  943. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +0 -49
  944. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +0 -1
  945. package/build-module/components/inserter/tabs.js +0 -72
  946. package/build-module/components/inserter/tabs.js.map +0 -1
  947. package/src/components/block-controls/use-has-block-controls.js +0 -35
  948. package/src/components/block-list/use-block-props/use-nav-mode-exit.js +0 -46
  949. package/src/components/block-tools/block-selection-button.js +0 -302
  950. package/src/components/block-tools/block-toolbar-breadcrumb.js +0 -51
  951. package/src/components/inner-blocks/content.scss +0 -13
  952. package/src/components/inserter/tabs.js +0 -78
  953. package/src/components/inserter/test/block-types-tab.native.js +0 -67
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_data","_blockEdit","_useSettings","_store","__experimentalGetGradientClass","gradientSlug","undefined","getGradientValueBySlug","gradients","slug","gradient","find","g","__experimentalGetGradientObjectByGradientValue","value","getGradientSlugByValue","__experimentalUseGradient","gradientAttribute","customGradientAttribute","clientId","useBlockEditContext","userGradientPalette","themeGradientPalette","defaultGradientPalette","useSettings","allGradients","useMemo","customGradient","useSelect","select","getBlockAttributes","blockEditorStore","attributes","updateBlockAttributes","useDispatch","setGradient","useCallback","newGradientValue","gradientClass","gradientValue"],"sources":["@wordpress/block-editor/src/components/gradients/use-gradient.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditContext } from '../block-edit';\nimport { useSettings } from '../use-settings';\nimport { store as blockEditorStore } from '../../store';\n\nexport function __experimentalGetGradientClass( gradientSlug ) {\n\tif ( ! gradientSlug ) {\n\t\treturn undefined;\n\t}\n\treturn `has-${ gradientSlug }-gradient-background`;\n}\n\n/**\n * Retrieves the gradient value per slug.\n *\n * @param {Array} gradients Gradient Palette\n * @param {string} slug Gradient slug\n *\n * @return {string} Gradient value.\n */\nexport function getGradientValueBySlug( gradients, slug ) {\n\tconst gradient = gradients?.find( ( g ) => g.slug === slug );\n\treturn gradient && gradient.gradient;\n}\n\nexport function __experimentalGetGradientObjectByGradientValue(\n\tgradients,\n\tvalue\n) {\n\tconst gradient = gradients?.find( ( g ) => g.gradient === value );\n\treturn gradient;\n}\n\n/**\n * Retrieves the gradient slug per slug.\n *\n * @param {Array} gradients Gradient Palette\n * @param {string} value Gradient value\n * @return {string} Gradient slug.\n */\nexport function getGradientSlugByValue( gradients, value ) {\n\tconst gradient = __experimentalGetGradientObjectByGradientValue(\n\t\tgradients,\n\t\tvalue\n\t);\n\treturn gradient && gradient.slug;\n}\n\nexport function __experimentalUseGradient( {\n\tgradientAttribute = 'gradient',\n\tcustomGradientAttribute = 'customGradient',\n} = {} ) {\n\tconst { clientId } = useBlockEditContext();\n\n\tconst [\n\t\tuserGradientPalette,\n\t\tthemeGradientPalette,\n\t\tdefaultGradientPalette,\n\t] = useSettings(\n\t\t'color.gradients.custom',\n\t\t'color.gradients.theme',\n\t\t'color.gradients.default'\n\t);\n\tconst allGradients = useMemo(\n\t\t() => [\n\t\t\t...( userGradientPalette || [] ),\n\t\t\t...( themeGradientPalette || [] ),\n\t\t\t...( defaultGradientPalette || [] ),\n\t\t],\n\t\t[ userGradientPalette, themeGradientPalette, defaultGradientPalette ]\n\t);\n\tconst { gradient, customGradient } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes } = select( blockEditorStore );\n\t\t\tconst attributes = getBlockAttributes( clientId ) || {};\n\t\t\treturn {\n\t\t\t\tcustomGradient: attributes[ customGradientAttribute ],\n\t\t\t\tgradient: attributes[ gradientAttribute ],\n\t\t\t};\n\t\t},\n\t\t[ clientId, gradientAttribute, customGradientAttribute ]\n\t);\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst setGradient = useCallback(\n\t\t( newGradientValue ) => {\n\t\t\tconst slug = getGradientSlugByValue(\n\t\t\t\tallGradients,\n\t\t\t\tnewGradientValue\n\t\t\t);\n\t\t\tif ( slug ) {\n\t\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t\t[ gradientAttribute ]: slug,\n\t\t\t\t\t[ customGradientAttribute ]: undefined,\n\t\t\t\t} );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t[ gradientAttribute ]: undefined,\n\t\t\t\t[ customGradientAttribute ]: newGradientValue,\n\t\t\t} );\n\t\t},\n\t\t[ allGradients, clientId, updateBlockAttributes ]\n\t);\n\n\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\tlet gradientValue;\n\tif ( gradient ) {\n\t\tgradientValue = getGradientValueBySlug( allGradients, gradient );\n\t} else {\n\t\tgradientValue = customGradient;\n\t}\n\treturn { gradientClass, gradientValue, setGradient };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_element","require","_data","_blockEdit","_useSettings","_store","__experimentalGetGradientClass","gradientSlug","undefined","getGradientValueBySlug","gradients","slug","gradient","find","g","__experimentalGetGradientObjectByGradientValue","value","getGradientSlugByValue","__experimentalUseGradient","gradientAttribute","customGradientAttribute","clientId","useBlockEditContext","userGradientPalette","themeGradientPalette","defaultGradientPalette","useSettings","allGradients","useMemo","customGradient","useSelect","select","getBlockAttributes","blockEditorStore","attributes","updateBlockAttributes","useDispatch","setGradient","useCallback","newGradientValue","gradientClass","gradientValue"],"sources":["@wordpress/block-editor/src/components/gradients/use-gradient.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditContext } from '../block-edit';\nimport { useSettings } from '../use-settings';\nimport { store as blockEditorStore } from '../../store';\n\nexport function __experimentalGetGradientClass( gradientSlug ) {\n\tif ( ! gradientSlug ) {\n\t\treturn undefined;\n\t}\n\treturn `has-${ gradientSlug }-gradient-background`;\n}\n\n/**\n * Retrieves the gradient value per slug.\n *\n * @param {Array} gradients Gradient Palette\n * @param {string} slug Gradient slug\n *\n * @return {string} Gradient value.\n */\nexport function getGradientValueBySlug( gradients, slug ) {\n\tconst gradient = gradients?.find( ( g ) => g.slug === slug );\n\treturn gradient && gradient.gradient;\n}\n\nexport function __experimentalGetGradientObjectByGradientValue(\n\tgradients,\n\tvalue\n) {\n\tconst gradient = gradients?.find( ( g ) => g.gradient === value );\n\treturn gradient;\n}\n\n/**\n * Retrieves the gradient slug per slug.\n *\n * @param {Array} gradients Gradient Palette\n * @param {string} value Gradient value\n * @return {string} Gradient slug.\n */\nexport function getGradientSlugByValue( gradients, value ) {\n\tconst gradient = __experimentalGetGradientObjectByGradientValue(\n\t\tgradients,\n\t\tvalue\n\t);\n\treturn gradient && gradient.slug;\n}\n\nexport function __experimentalUseGradient( {\n\tgradientAttribute = 'gradient',\n\tcustomGradientAttribute = 'customGradient',\n} = {} ) {\n\tconst { clientId } = useBlockEditContext();\n\n\tconst [\n\t\tuserGradientPalette,\n\t\tthemeGradientPalette,\n\t\tdefaultGradientPalette,\n\t] = useSettings(\n\t\t'color.gradients.custom',\n\t\t'color.gradients.theme',\n\t\t'color.gradients.default'\n\t);\n\tconst allGradients = useMemo(\n\t\t() => [\n\t\t\t...( userGradientPalette || [] ),\n\t\t\t...( themeGradientPalette || [] ),\n\t\t\t...( defaultGradientPalette || [] ),\n\t\t],\n\t\t[ userGradientPalette, themeGradientPalette, defaultGradientPalette ]\n\t);\n\tconst { gradient, customGradient } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes } = select( blockEditorStore );\n\t\t\tconst attributes = getBlockAttributes( clientId ) || {};\n\t\t\treturn {\n\t\t\t\tcustomGradient: attributes[ customGradientAttribute ],\n\t\t\t\tgradient: attributes[ gradientAttribute ],\n\t\t\t};\n\t\t},\n\t\t[ clientId, gradientAttribute, customGradientAttribute ]\n\t);\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst setGradient = useCallback(\n\t\t( newGradientValue ) => {\n\t\t\tconst slug = getGradientSlugByValue(\n\t\t\t\tallGradients,\n\t\t\t\tnewGradientValue\n\t\t\t);\n\t\t\tif ( slug ) {\n\t\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t\t[ gradientAttribute ]: slug,\n\t\t\t\t\t[ customGradientAttribute ]: undefined,\n\t\t\t\t} );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t[ gradientAttribute ]: undefined,\n\t\t\t\t[ customGradientAttribute ]: newGradientValue,\n\t\t\t} );\n\t\t},\n\t\t[ allGradients, clientId, updateBlockAttributes ]\n\t);\n\n\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\tlet gradientValue;\n\tif ( gradient ) {\n\t\tgradientValue = getGradientValueBySlug( allGradients, gradient );\n\t} else {\n\t\tgradientValue = customGradient;\n\t}\n\treturn { gradientClass, gradientValue, setGradient };\n}\n"],"mappings":";;;;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAXA;AACA;AACA;;AAIA;AACA;AACA;;AAKO,SAASK,8BAA8BA,CAAEC,YAAY,EAAG;EAC9D,IAAK,CAAEA,YAAY,EAAG;IACrB,OAAOC,SAAS;EACjB;EACA,OAAO,OAAQD,YAAY,sBAAuB;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,sBAAsBA,CAAEC,SAAS,EAAEC,IAAI,EAAG;EACzD,MAAMC,QAAQ,GAAGF,SAAS,EAAEG,IAAI,CAAIC,CAAC,IAAMA,CAAC,CAACH,IAAI,KAAKA,IAAK,CAAC;EAC5D,OAAOC,QAAQ,IAAIA,QAAQ,CAACA,QAAQ;AACrC;AAEO,SAASG,8CAA8CA,CAC7DL,SAAS,EACTM,KAAK,EACJ;EACD,MAAMJ,QAAQ,GAAGF,SAAS,EAAEG,IAAI,CAAIC,CAAC,IAAMA,CAAC,CAACF,QAAQ,KAAKI,KAAM,CAAC;EACjE,OAAOJ,QAAQ;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,sBAAsBA,CAAEP,SAAS,EAAEM,KAAK,EAAG;EAC1D,MAAMJ,QAAQ,GAAGG,8CAA8C,CAC9DL,SAAS,EACTM,KACD,CAAC;EACD,OAAOJ,QAAQ,IAAIA,QAAQ,CAACD,IAAI;AACjC;AAEO,SAASO,yBAAyBA,CAAE;EAC1CC,iBAAiB,GAAG,UAAU;EAC9BC,uBAAuB,GAAG;AAC3B,CAAC,GAAG,CAAC,CAAC,EAAG;EACR,MAAM;IAAEC;EAAS,CAAC,GAAG,IAAAC,8BAAmB,EAAC,CAAC;EAE1C,MAAM,CACLC,mBAAmB,EACnBC,oBAAoB,EACpBC,sBAAsB,CACtB,GAAG,IAAAC,wBAAW,EACd,wBAAwB,EACxB,uBAAuB,EACvB,yBACD,CAAC;EACD,MAAMC,YAAY,GAAG,IAAAC,gBAAO,EAC3B,MAAM,CACL,IAAKL,mBAAmB,IAAI,EAAE,CAAE,EAChC,IAAKC,oBAAoB,IAAI,EAAE,CAAE,EACjC,IAAKC,sBAAsB,IAAI,EAAE,CAAE,CACnC,EACD,CAAEF,mBAAmB,EAAEC,oBAAoB,EAAEC,sBAAsB,CACpE,CAAC;EACD,MAAM;IAAEb,QAAQ;IAAEiB;EAAe,CAAC,GAAG,IAAAC,eAAS,EAC3CC,MAAM,IAAM;IACb,MAAM;MAAEC;IAAmB,CAAC,GAAGD,MAAM,CAAEE,YAAiB,CAAC;IACzD,MAAMC,UAAU,GAAGF,kBAAkB,CAAEX,QAAS,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO;MACNQ,cAAc,EAAEK,UAAU,CAAEd,uBAAuB,CAAE;MACrDR,QAAQ,EAAEsB,UAAU,CAAEf,iBAAiB;IACxC,CAAC;EACF,CAAC,EACD,CAAEE,QAAQ,EAAEF,iBAAiB,EAAEC,uBAAuB,CACvD,CAAC;EAED,MAAM;IAAEe;EAAsB,CAAC,GAAG,IAAAC,iBAAW,EAAEH,YAAiB,CAAC;EACjE,MAAMI,WAAW,GAAG,IAAAC,oBAAW,EAC5BC,gBAAgB,IAAM;IACvB,MAAM5B,IAAI,GAAGM,sBAAsB,CAClCU,YAAY,EACZY,gBACD,CAAC;IACD,IAAK5B,IAAI,EAAG;MACXwB,qBAAqB,CAAEd,QAAQ,EAAE;QAChC,CAAEF,iBAAiB,GAAIR,IAAI;QAC3B,CAAES,uBAAuB,GAAIZ;MAC9B,CAAE,CAAC;MACH;IACD;IACA2B,qBAAqB,CAAEd,QAAQ,EAAE;MAChC,CAAEF,iBAAiB,GAAIX,SAAS;MAChC,CAAEY,uBAAuB,GAAImB;IAC9B,CAAE,CAAC;EACJ,CAAC,EACD,CAAEZ,YAAY,EAAEN,QAAQ,EAAEc,qBAAqB,CAChD,CAAC;EAED,MAAMK,aAAa,GAAGlC,8BAA8B,CAAEM,QAAS,CAAC;EAChE,IAAI6B,aAAa;EACjB,IAAK7B,QAAQ,EAAG;IACf6B,aAAa,GAAGhC,sBAAsB,CAAEkB,YAAY,EAAEf,QAAS,CAAC;EACjE,CAAC,MAAM;IACN6B,aAAa,GAAGZ,cAAc;EAC/B;EACA,OAAO;IAAEW,aAAa;IAAEC,aAAa;IAAEJ;EAAY,CAAC;AACrD","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_components","_icons","_data","_compose","_blockControls","_useGetNumberOfBlocksBeforeCell","_store","_jsxRuntime","GridItemMovers","layout","parentLayout","onChange","gridClientId","blockClientId","_layout$columnStart","_layout$rowStart","_layout$columnSpan","_layout$rowSpan","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","columnStart","rowStart","columnSpan","rowSpan","columnEnd","rowEnd","columnCount","rowCount","getNumberOfBlocksBeforeCell","useGetNumberOfBlocksBeforeCell","jsx","default","group","children","jsxs","ToolbarGroup","className","GridItemMover","icon","isRTL","chevronRight","chevronLeft","label","__","description","isDisabled","onClick","chevronUp","chevronDown","instanceId","useInstanceId","descriptionId","Fragment","ToolbarButton","clsx","disabled","accessibleWhenDisabled","VisuallyHidden","id"],"sources":["@wordpress/block-editor/src/components/grid/grid-item-movers.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tVisuallyHidden,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport {\n\tchevronLeft,\n\tchevronUp,\n\tchevronDown,\n\tchevronRight,\n} from '@wordpress/icons';\nimport { useDispatch } from '@wordpress/data';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockControls from '../block-controls';\nimport { useGetNumberOfBlocksBeforeCell } from './use-get-number-of-blocks-before-cell';\nimport { store as blockEditorStore } from '../../store';\n\nexport function GridItemMovers( {\n\tlayout,\n\tparentLayout,\n\tonChange,\n\tgridClientId,\n\tblockClientId,\n} ) {\n\tconst { moveBlocksToPosition, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst columnStart = layout?.columnStart ?? 1;\n\tconst rowStart = layout?.rowStart ?? 1;\n\tconst columnSpan = layout?.columnSpan ?? 1;\n\tconst rowSpan = layout?.rowSpan ?? 1;\n\tconst columnEnd = columnStart + columnSpan - 1;\n\tconst rowEnd = rowStart + rowSpan - 1;\n\tconst columnCount = parentLayout?.columnCount;\n\tconst rowCount = parentLayout?.rowCount;\n\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\tgridClientId,\n\t\tcolumnCount\n\t);\n\n\treturn (\n\t\t<BlockControls group=\"parent\">\n\t\t\t<ToolbarGroup className=\"block-editor-grid-item-mover__move-button-container\">\n\t\t\t\t<div className=\"block-editor-grid-item-mover__move-horizontal-button-container is-left\">\n\t\t\t\t\t<GridItemMover\n\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\tlabel={ __( 'Move left' ) }\n\t\t\t\t\t\tdescription={ __( 'Move left' ) }\n\t\t\t\t\t\tisDisabled={ columnStart <= 1 }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\tcolumnStart: columnStart - 1,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ blockClientId ],\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\tcolumnStart - 1,\n\t\t\t\t\t\t\t\t\trowStart\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"block-editor-grid-item-mover__move-vertical-button-container\">\n\t\t\t\t\t<GridItemMover\n\t\t\t\t\t\tclassName=\"is-up-button\"\n\t\t\t\t\t\ticon={ chevronUp }\n\t\t\t\t\t\tlabel={ __( 'Move up' ) }\n\t\t\t\t\t\tdescription={ __( 'Move up' ) }\n\t\t\t\t\t\tisDisabled={ rowStart <= 1 }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\trowStart: rowStart - 1,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ blockClientId ],\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\trowStart - 1\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<GridItemMover\n\t\t\t\t\t\tclassName=\"is-down-button\"\n\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\tlabel={ __( 'Move down' ) }\n\t\t\t\t\t\tdescription={ __( 'Move down' ) }\n\t\t\t\t\t\tisDisabled={ rowCount && rowEnd >= rowCount }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\trowStart: rowStart + 1,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ blockClientId ],\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\trowStart + 1\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"block-editor-grid-item-mover__move-horizontal-button-container is-right\">\n\t\t\t\t\t<GridItemMover\n\t\t\t\t\t\ticon={ isRTL() ? chevronLeft : chevronRight }\n\t\t\t\t\t\tlabel={ __( 'Move right' ) }\n\t\t\t\t\t\tdescription={ __( 'Move right' ) }\n\t\t\t\t\t\tisDisabled={ columnCount && columnEnd >= columnCount }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\tcolumnStart: columnStart + 1,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ blockClientId ],\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\tcolumnStart + 1,\n\t\t\t\t\t\t\t\t\trowStart\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n}\n\nfunction GridItemMover( {\n\tclassName,\n\ticon,\n\tlabel,\n\tisDisabled,\n\tonClick,\n\tdescription,\n} ) {\n\tconst instanceId = useInstanceId( GridItemMover );\n\tconst descriptionId = `block-editor-grid-item-mover-button__description-${ instanceId }`;\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'block-editor-grid-item-mover-button',\n\t\t\t\t\tclassName\n\t\t\t\t) }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\tonClick={ isDisabled ? null : onClick }\n\t\t\t\tdisabled={ isDisabled }\n\t\t\t\taccessibleWhenDisabled\n\t\t\t/>\n\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t{ description }\n\t\t\t</VisuallyHidden>\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAKA,IAAAG,MAAA,GAAAH,OAAA;AAMA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAKA,IAAAM,cAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,+BAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AAAwD,IAAAS,WAAA,GAAAT,OAAA;AA5BxD;AACA;AACA;;AAGA;AACA;AACA;;AAgBA;AACA;AACA;;AAKO,SAASU,cAAcA,CAAE;EAC/BC,MAAM;EACNC,YAAY;EACZC,QAAQ;EACRC,YAAY;EACZC;AACD,CAAC,EAAG;EAAA,IAAAC,mBAAA,EAAAC,gBAAA,EAAAC,kBAAA,EAAAC,eAAA;EACH,MAAM;IAAEC,oBAAoB;IAAEC;EAAwC,CAAC,GACtE,IAAAC,iBAAW,EAAEC,YAAiB,CAAC;EAEhC,MAAMC,WAAW,IAAAR,mBAAA,GAAGL,MAAM,EAAEa,WAAW,cAAAR,mBAAA,cAAAA,mBAAA,GAAI,CAAC;EAC5C,MAAMS,QAAQ,IAAAR,gBAAA,GAAGN,MAAM,EAAEc,QAAQ,cAAAR,gBAAA,cAAAA,gBAAA,GAAI,CAAC;EACtC,MAAMS,UAAU,IAAAR,kBAAA,GAAGP,MAAM,EAAEe,UAAU,cAAAR,kBAAA,cAAAA,kBAAA,GAAI,CAAC;EAC1C,MAAMS,OAAO,IAAAR,eAAA,GAAGR,MAAM,EAAEgB,OAAO,cAAAR,eAAA,cAAAA,eAAA,GAAI,CAAC;EACpC,MAAMS,SAAS,GAAGJ,WAAW,GAAGE,UAAU,GAAG,CAAC;EAC9C,MAAMG,MAAM,GAAGJ,QAAQ,GAAGE,OAAO,GAAG,CAAC;EACrC,MAAMG,WAAW,GAAGlB,YAAY,EAAEkB,WAAW;EAC7C,MAAMC,QAAQ,GAAGnB,YAAY,EAAEmB,QAAQ;EAEvC,MAAMC,2BAA2B,GAAG,IAAAC,8DAA8B,EACjEnB,YAAY,EACZgB,WACD,CAAC;EAED,oBACC,IAAArB,WAAA,CAAAyB,GAAA,EAAC5B,cAAA,CAAA6B,OAAa;IAACC,KAAK,EAAC,QAAQ;IAAAC,QAAA,eAC5B,IAAA5B,WAAA,CAAA6B,IAAA,EAACpC,WAAA,CAAAqC,YAAY;MAACC,SAAS,EAAC,qDAAqD;MAAAH,QAAA,gBAC5E,IAAA5B,WAAA,CAAAyB,GAAA;QAAKM,SAAS,EAAC,wEAAwE;QAAAH,QAAA,eACtF,IAAA5B,WAAA,CAAAyB,GAAA,EAACO,aAAa;UACbC,IAAI,EAAG,IAAAC,WAAK,EAAC,CAAC,GAAGC,mBAAY,GAAGC,kBAAa;UAC7CC,KAAK,EAAG,IAAAC,QAAE,EAAE,WAAY,CAAG;UAC3BC,WAAW,EAAG,IAAAD,QAAE,EAAE,WAAY,CAAG;UACjCE,UAAU,EAAGzB,WAAW,IAAI,CAAG;UAC/B0B,OAAO,EAAGA,CAAA,KAAM;YACfrC,QAAQ,CAAE;cACTW,WAAW,EAAEA,WAAW,GAAG;YAC5B,CAAE,CAAC;YACHH,uCAAuC,CAAC,CAAC;YACzCD,oBAAoB,CACnB,CAAEL,aAAa,CAAE,EACjBD,YAAY,EACZA,YAAY,EACZkB,2BAA2B,CAC1BR,WAAW,GAAG,CAAC,EACfC,QACD,CACD,CAAC;UACF;QAAG,CACH;MAAC,CACE,CAAC,eACN,IAAAhB,WAAA,CAAA6B,IAAA;QAAKE,SAAS,EAAC,8DAA8D;QAAAH,QAAA,gBAC5E,IAAA5B,WAAA,CAAAyB,GAAA,EAACO,aAAa;UACbD,SAAS,EAAC,cAAc;UACxBE,IAAI,EAAGS,gBAAW;UAClBL,KAAK,EAAG,IAAAC,QAAE,EAAE,SAAU,CAAG;UACzBC,WAAW,EAAG,IAAAD,QAAE,EAAE,SAAU,CAAG;UAC/BE,UAAU,EAAGxB,QAAQ,IAAI,CAAG;UAC5ByB,OAAO,EAAGA,CAAA,KAAM;YACfrC,QAAQ,CAAE;cACTY,QAAQ,EAAEA,QAAQ,GAAG;YACtB,CAAE,CAAC;YACHJ,uCAAuC,CAAC,CAAC;YACzCD,oBAAoB,CACnB,CAAEL,aAAa,CAAE,EACjBD,YAAY,EACZA,YAAY,EACZkB,2BAA2B,CAC1BR,WAAW,EACXC,QAAQ,GAAG,CACZ,CACD,CAAC;UACF;QAAG,CACH,CAAC,eACF,IAAAhB,WAAA,CAAAyB,GAAA,EAACO,aAAa;UACbD,SAAS,EAAC,gBAAgB;UAC1BE,IAAI,EAAGU,kBAAa;UACpBN,KAAK,EAAG,IAAAC,QAAE,EAAE,WAAY,CAAG;UAC3BC,WAAW,EAAG,IAAAD,QAAE,EAAE,WAAY,CAAG;UACjCE,UAAU,EAAGlB,QAAQ,IAAIF,MAAM,IAAIE,QAAU;UAC7CmB,OAAO,EAAGA,CAAA,KAAM;YACfrC,QAAQ,CAAE;cACTY,QAAQ,EAAEA,QAAQ,GAAG;YACtB,CAAE,CAAC;YACHJ,uCAAuC,CAAC,CAAC;YACzCD,oBAAoB,CACnB,CAAEL,aAAa,CAAE,EACjBD,YAAY,EACZA,YAAY,EACZkB,2BAA2B,CAC1BR,WAAW,EACXC,QAAQ,GAAG,CACZ,CACD,CAAC;UACF;QAAG,CACH,CAAC;MAAA,CACE,CAAC,eACN,IAAAhB,WAAA,CAAAyB,GAAA;QAAKM,SAAS,EAAC,yEAAyE;QAAAH,QAAA,eACvF,IAAA5B,WAAA,CAAAyB,GAAA,EAACO,aAAa;UACbC,IAAI,EAAG,IAAAC,WAAK,EAAC,CAAC,GAAGE,kBAAW,GAAGD,mBAAc;UAC7CE,KAAK,EAAG,IAAAC,QAAE,EAAE,YAAa,CAAG;UAC5BC,WAAW,EAAG,IAAAD,QAAE,EAAE,YAAa,CAAG;UAClCE,UAAU,EAAGnB,WAAW,IAAIF,SAAS,IAAIE,WAAa;UACtDoB,OAAO,EAAGA,CAAA,KAAM;YACfrC,QAAQ,CAAE;cACTW,WAAW,EAAEA,WAAW,GAAG;YAC5B,CAAE,CAAC;YACHH,uCAAuC,CAAC,CAAC;YACzCD,oBAAoB,CACnB,CAAEL,aAAa,CAAE,EACjBD,YAAY,EACZA,YAAY,EACZkB,2BAA2B,CAC1BR,WAAW,GAAG,CAAC,EACfC,QACD,CACD,CAAC;UACF;QAAG,CACH;MAAC,CACE,CAAC;IAAA,CACO;EAAC,CACD,CAAC;AAElB;AAEA,SAASgB,aAAaA,CAAE;EACvBD,SAAS;EACTE,IAAI;EACJI,KAAK;EACLG,UAAU;EACVC,OAAO;EACPF;AACD,CAAC,EAAG;EACH,MAAMK,UAAU,GAAG,IAAAC,sBAAa,EAAEb,aAAc,CAAC;EACjD,MAAMc,aAAa,GAAI,oDAAoDF,UAAY,EAAC;EACxF,oBACC,IAAA5C,WAAA,CAAA6B,IAAA,EAAA7B,WAAA,CAAA+C,QAAA;IAAAnB,QAAA,gBACC,IAAA5B,WAAA,CAAAyB,GAAA,EAAChC,WAAA,CAAAuD,aAAa;MACbjB,SAAS,EAAG,IAAAkB,aAAI,EACf,qCAAqC,EACrClB,SACD,CAAG;MACHE,IAAI,EAAGA,IAAM;MACbI,KAAK,EAAGA,KAAO;MACf,oBAAmBS,aAAe;MAClCL,OAAO,EAAGD,UAAU,GAAG,IAAI,GAAGC,OAAS;MACvCS,QAAQ,EAAGV,UAAY;MACvBW,sBAAsB;IAAA,CACtB,CAAC,eACF,IAAAnD,WAAA,CAAAyB,GAAA,EAAChC,WAAA,CAAA2D,cAAc;MAACC,EAAE,EAAGP,aAAe;MAAAlB,QAAA,EACjCW;IAAW,CACE,CAAC;EAAA,CAChB,CAAC;AAEL","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_components","_icons","_data","_compose","_blockControls","_useGetNumberOfBlocksBeforeCell","_store","_jsxRuntime","GridItemMovers","layout","parentLayout","onChange","gridClientId","blockClientId","_layout$columnStart","_layout$rowStart","_layout$columnSpan","_layout$rowSpan","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","columnStart","rowStart","columnSpan","rowSpan","columnEnd","rowEnd","columnCount","rowCount","getNumberOfBlocksBeforeCell","useGetNumberOfBlocksBeforeCell","jsx","default","group","children","jsxs","ToolbarGroup","className","GridItemMover","icon","isRTL","chevronRight","chevronLeft","label","__","description","isDisabled","onClick","chevronUp","chevronDown","instanceId","useInstanceId","descriptionId","Fragment","ToolbarButton","clsx","disabled","accessibleWhenDisabled","VisuallyHidden","id"],"sources":["@wordpress/block-editor/src/components/grid/grid-item-movers.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tVisuallyHidden,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport {\n\tchevronLeft,\n\tchevronUp,\n\tchevronDown,\n\tchevronRight,\n} from '@wordpress/icons';\nimport { useDispatch } from '@wordpress/data';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockControls from '../block-controls';\nimport { useGetNumberOfBlocksBeforeCell } from './use-get-number-of-blocks-before-cell';\nimport { store as blockEditorStore } from '../../store';\n\nexport function GridItemMovers( {\n\tlayout,\n\tparentLayout,\n\tonChange,\n\tgridClientId,\n\tblockClientId,\n} ) {\n\tconst { moveBlocksToPosition, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst columnStart = layout?.columnStart ?? 1;\n\tconst rowStart = layout?.rowStart ?? 1;\n\tconst columnSpan = layout?.columnSpan ?? 1;\n\tconst rowSpan = layout?.rowSpan ?? 1;\n\tconst columnEnd = columnStart + columnSpan - 1;\n\tconst rowEnd = rowStart + rowSpan - 1;\n\tconst columnCount = parentLayout?.columnCount;\n\tconst rowCount = parentLayout?.rowCount;\n\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\tgridClientId,\n\t\tcolumnCount\n\t);\n\n\treturn (\n\t\t<BlockControls group=\"parent\">\n\t\t\t<ToolbarGroup className=\"block-editor-grid-item-mover__move-button-container\">\n\t\t\t\t<div className=\"block-editor-grid-item-mover__move-horizontal-button-container is-left\">\n\t\t\t\t\t<GridItemMover\n\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\tlabel={ __( 'Move left' ) }\n\t\t\t\t\t\tdescription={ __( 'Move left' ) }\n\t\t\t\t\t\tisDisabled={ columnStart <= 1 }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\tcolumnStart: columnStart - 1,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ blockClientId ],\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\tcolumnStart - 1,\n\t\t\t\t\t\t\t\t\trowStart\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"block-editor-grid-item-mover__move-vertical-button-container\">\n\t\t\t\t\t<GridItemMover\n\t\t\t\t\t\tclassName=\"is-up-button\"\n\t\t\t\t\t\ticon={ chevronUp }\n\t\t\t\t\t\tlabel={ __( 'Move up' ) }\n\t\t\t\t\t\tdescription={ __( 'Move up' ) }\n\t\t\t\t\t\tisDisabled={ rowStart <= 1 }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\trowStart: rowStart - 1,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ blockClientId ],\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\trowStart - 1\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<GridItemMover\n\t\t\t\t\t\tclassName=\"is-down-button\"\n\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\tlabel={ __( 'Move down' ) }\n\t\t\t\t\t\tdescription={ __( 'Move down' ) }\n\t\t\t\t\t\tisDisabled={ rowCount && rowEnd >= rowCount }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\trowStart: rowStart + 1,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ blockClientId ],\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\trowStart + 1\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"block-editor-grid-item-mover__move-horizontal-button-container is-right\">\n\t\t\t\t\t<GridItemMover\n\t\t\t\t\t\ticon={ isRTL() ? chevronLeft : chevronRight }\n\t\t\t\t\t\tlabel={ __( 'Move right' ) }\n\t\t\t\t\t\tdescription={ __( 'Move right' ) }\n\t\t\t\t\t\tisDisabled={ columnCount && columnEnd >= columnCount }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\tcolumnStart: columnStart + 1,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ blockClientId ],\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\tcolumnStart + 1,\n\t\t\t\t\t\t\t\t\trowStart\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n}\n\nfunction GridItemMover( {\n\tclassName,\n\ticon,\n\tlabel,\n\tisDisabled,\n\tonClick,\n\tdescription,\n} ) {\n\tconst instanceId = useInstanceId( GridItemMover );\n\tconst descriptionId = `block-editor-grid-item-mover-button__description-${ instanceId }`;\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'block-editor-grid-item-mover-button',\n\t\t\t\t\tclassName\n\t\t\t\t) }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\tonClick={ isDisabled ? null : onClick }\n\t\t\t\tdisabled={ isDisabled }\n\t\t\t\taccessibleWhenDisabled\n\t\t\t/>\n\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t{ description }\n\t\t\t</VisuallyHidden>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_data","_compose","_useBlockRefs","_cover","_utils","_store","_useGetNumberOfBlocksBeforeCell","_buttonBlockAppender","_lockUnlock","_jsxRuntime","GridVisualizer","clientId","contentRef","parentLayout","isDistractionFree","useSelect","select","blockEditorStore","getSettings","gridElement","useBlockElement","isManualGrid","isManualPlacement","window","__experimentalEnableGridInteractivity","jsx","GridVisualizerGrid","gridClientId","ref","forwardRef","gridInfo","setGridInfo","useState","getGridInfo","isDroppingAllowed","setIsDroppingAllowed","useEffect","observers","element","children","observer","ResizeObserver","observe","push","disconnect","onGlobalDrag","onGlobalDragEnd","document","addEventListener","removeEventListener","default","className","clsx","__unstablePopoverSlot","style","ManualGridVisualizer","Array","from","length","numItems","_","i","GridVisualizerCell","color","currentColor","highlightedRect","setHighlightedRect","gridItemStyles","getBlockOrder","getBlockStyles","unlock","blockOrder","occupiedRects","useMemo","rects","Object","values","_style$layout","columnStart","rowStart","columnSpan","rowSpan","layout","GridRect","range","numRows","map","row","numColumns","column","_highlightedRect$cont","isCellOccupied","some","rect","contains","isHighlighted","GridVisualizerDropZone","GridVisualizerAppender","boxShadow","useGridVisualizerDropZone","getBlockAttributes","getBlockRootClientId","canInsertBlockType","getBlockName","updateBlockAttributes","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","useDispatch","getNumberOfBlocksBeforeCell","useGetNumberOfBlocksBeforeCell","useDropZoneWithValidation","validateDrag","srcClientId","blockName","attributes","isInBounds","containsRect","onDragEnter","onDragLeave","prevHighlightedRect","onDrop","rootClientId","onSelect","block","getDraggedBlockClientIds","useDropZone"],"sources":["@wordpress/block-editor/src/components/grid/grid-visualizer.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, forwardRef, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __experimentalUseDropZone as useDropZone } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport BlockPopoverCover from '../block-popover/cover';\nimport { range, GridRect, getGridInfo } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport { useGetNumberOfBlocksBeforeCell } from './use-get-number-of-blocks-before-cell';\nimport ButtonBlockAppender from '../button-block-appender';\nimport { unlock } from '../../lock-unlock';\n\nexport function GridVisualizer( { clientId, contentRef, parentLayout } ) {\n\tconst isDistractionFree = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().isDistractionFree,\n\t\t[]\n\t);\n\tconst gridElement = useBlockElement( clientId );\n\n\tif ( isDistractionFree || ! gridElement ) {\n\t\treturn null;\n\t}\n\n\tconst isManualGrid =\n\t\tparentLayout?.isManualPlacement &&\n\t\twindow.__experimentalEnableGridInteractivity;\n\treturn (\n\t\t<GridVisualizerGrid\n\t\t\tgridClientId={ clientId }\n\t\t\tgridElement={ gridElement }\n\t\t\tisManualGrid={ isManualGrid }\n\t\t\tref={ contentRef }\n\t\t/>\n\t);\n}\n\nconst GridVisualizerGrid = forwardRef(\n\t( { gridClientId, gridElement, isManualGrid }, ref ) => {\n\t\tconst [ gridInfo, setGridInfo ] = useState( () =>\n\t\t\tgetGridInfo( gridElement )\n\t\t);\n\t\tconst [ isDroppingAllowed, setIsDroppingAllowed ] = useState( false );\n\n\t\tuseEffect( () => {\n\t\t\tconst observers = [];\n\t\t\tfor ( const element of [ gridElement, ...gridElement.children ] ) {\n\t\t\t\tconst observer = new window.ResizeObserver( () => {\n\t\t\t\t\tsetGridInfo( getGridInfo( gridElement ) );\n\t\t\t\t} );\n\t\t\t\tobserver.observe( element );\n\t\t\t\tobservers.push( observer );\n\t\t\t}\n\t\t\treturn () => {\n\t\t\t\tfor ( const observer of observers ) {\n\t\t\t\t\tobserver.disconnect();\n\t\t\t\t}\n\t\t\t};\n\t\t}, [ gridElement ] );\n\n\t\tuseEffect( () => {\n\t\t\tfunction onGlobalDrag() {\n\t\t\t\tsetIsDroppingAllowed( true );\n\t\t\t}\n\t\t\tfunction onGlobalDragEnd() {\n\t\t\t\tsetIsDroppingAllowed( false );\n\t\t\t}\n\t\t\tdocument.addEventListener( 'drag', onGlobalDrag );\n\t\t\tdocument.addEventListener( 'dragend', onGlobalDragEnd );\n\t\t\treturn () => {\n\t\t\t\tdocument.removeEventListener( 'drag', onGlobalDrag );\n\t\t\t\tdocument.removeEventListener( 'dragend', onGlobalDragEnd );\n\t\t\t};\n\t\t}, [] );\n\n\t\treturn (\n\t\t\t<BlockPopoverCover\n\t\t\t\tclassName={ clsx( 'block-editor-grid-visualizer', {\n\t\t\t\t\t'is-dropping-allowed': isDroppingAllowed,\n\t\t\t\t} ) }\n\t\t\t\tclientId={ gridClientId }\n\t\t\t\t__unstablePopoverSlot=\"__unstable-block-tools-after\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tclassName=\"block-editor-grid-visualizer__grid\"\n\t\t\t\t\tstyle={ gridInfo.style }\n\t\t\t\t>\n\t\t\t\t\t{ isManualGrid ? (\n\t\t\t\t\t\t<ManualGridVisualizer\n\t\t\t\t\t\t\tgridClientId={ gridClientId }\n\t\t\t\t\t\t\tgridInfo={ gridInfo }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tArray.from( { length: gridInfo.numItems }, ( _, i ) => (\n\t\t\t\t\t\t\t<GridVisualizerCell\n\t\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t\t\tcolor={ gridInfo.currentColor }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) )\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</BlockPopoverCover>\n\t\t);\n\t}\n);\n\nfunction ManualGridVisualizer( { gridClientId, gridInfo } ) {\n\tconst [ highlightedRect, setHighlightedRect ] = useState( null );\n\n\tconst gridItemStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockOrder, getBlockStyles } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\tconst blockOrder = getBlockOrder( gridClientId );\n\t\t\treturn getBlockStyles( blockOrder );\n\t\t},\n\t\t[ gridClientId ]\n\t);\n\tconst occupiedRects = useMemo( () => {\n\t\tconst rects = [];\n\t\tfor ( const style of Object.values( gridItemStyles ) ) {\n\t\t\tconst {\n\t\t\t\tcolumnStart,\n\t\t\t\trowStart,\n\t\t\t\tcolumnSpan = 1,\n\t\t\t\trowSpan = 1,\n\t\t\t} = style?.layout ?? {};\n\t\t\tif ( ! columnStart || ! rowStart ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\trects.push(\n\t\t\t\tnew GridRect( {\n\t\t\t\t\tcolumnStart,\n\t\t\t\t\trowStart,\n\t\t\t\t\tcolumnSpan,\n\t\t\t\t\trowSpan,\n\t\t\t\t} )\n\t\t\t);\n\t\t}\n\t\treturn rects;\n\t}, [ gridItemStyles ] );\n\n\treturn range( 1, gridInfo.numRows ).map( ( row ) =>\n\t\trange( 1, gridInfo.numColumns ).map( ( column ) => {\n\t\t\tconst isCellOccupied = occupiedRects.some( ( rect ) =>\n\t\t\t\trect.contains( column, row )\n\t\t\t);\n\t\t\tconst isHighlighted =\n\t\t\t\thighlightedRect?.contains( column, row ) ?? false;\n\t\t\treturn (\n\t\t\t\t<GridVisualizerCell\n\t\t\t\t\tkey={ `${ row }-${ column }` }\n\t\t\t\t\tcolor={ gridInfo.currentColor }\n\t\t\t\t\tclassName={ isHighlighted && 'is-highlighted' }\n\t\t\t\t>\n\t\t\t\t\t{ isCellOccupied ? (\n\t\t\t\t\t\t<GridVisualizerDropZone\n\t\t\t\t\t\t\tcolumn={ column }\n\t\t\t\t\t\t\trow={ row }\n\t\t\t\t\t\t\tgridClientId={ gridClientId }\n\t\t\t\t\t\t\tgridInfo={ gridInfo }\n\t\t\t\t\t\t\tsetHighlightedRect={ setHighlightedRect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<GridVisualizerAppender\n\t\t\t\t\t\t\tcolumn={ column }\n\t\t\t\t\t\t\trow={ row }\n\t\t\t\t\t\t\tgridClientId={ gridClientId }\n\t\t\t\t\t\t\tgridInfo={ gridInfo }\n\t\t\t\t\t\t\tsetHighlightedRect={ setHighlightedRect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</GridVisualizerCell>\n\t\t\t);\n\t\t} )\n\t);\n}\n\nfunction GridVisualizerCell( { color, children, className } ) {\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-grid-visualizer__cell',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\tstyle={ {\n\t\t\t\tboxShadow: `inset 0 0 0 1px color-mix(in srgb, ${ color } 20%, #0000)`,\n\t\t\t\tcolor,\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction useGridVisualizerDropZone(\n\tcolumn,\n\trow,\n\tgridClientId,\n\tgridInfo,\n\tsetHighlightedRect\n) {\n\tconst {\n\t\tgetBlockAttributes,\n\t\tgetBlockRootClientId,\n\t\tcanInsertBlockType,\n\t\tgetBlockName,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tmoveBlocksToPosition,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\tgridClientId,\n\t\tgridInfo.numColumns\n\t);\n\n\treturn useDropZoneWithValidation( {\n\t\tvalidateDrag( srcClientId ) {\n\t\t\tconst blockName = getBlockName( srcClientId );\n\t\t\tif ( ! canInsertBlockType( blockName, gridClientId ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst attributes = getBlockAttributes( srcClientId );\n\t\t\tconst rect = new GridRect( {\n\t\t\t\tcolumnStart: column,\n\t\t\t\trowStart: row,\n\t\t\t\tcolumnSpan: attributes.style?.layout?.columnSpan,\n\t\t\t\trowSpan: attributes.style?.layout?.rowSpan,\n\t\t\t} );\n\t\t\tconst isInBounds = new GridRect( {\n\t\t\t\tcolumnSpan: gridInfo.numColumns,\n\t\t\t\trowSpan: gridInfo.numRows,\n\t\t\t} ).containsRect( rect );\n\t\t\treturn isInBounds;\n\t\t},\n\t\tonDragEnter( srcClientId ) {\n\t\t\tconst attributes = getBlockAttributes( srcClientId );\n\t\t\tsetHighlightedRect(\n\t\t\t\tnew GridRect( {\n\t\t\t\t\tcolumnStart: column,\n\t\t\t\t\trowStart: row,\n\t\t\t\t\tcolumnSpan: attributes.style?.layout?.columnSpan,\n\t\t\t\t\trowSpan: attributes.style?.layout?.rowSpan,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t\tonDragLeave() {\n\t\t\t// onDragEnter can be called before onDragLeave if the user moves\n\t\t\t// their mouse quickly, so only clear the highlight if it was set\n\t\t\t// by this cell.\n\t\t\tsetHighlightedRect( ( prevHighlightedRect ) =>\n\t\t\t\tprevHighlightedRect?.columnStart === column &&\n\t\t\t\tprevHighlightedRect?.rowStart === row\n\t\t\t\t\t? null\n\t\t\t\t\t: prevHighlightedRect\n\t\t\t);\n\t\t},\n\t\tonDrop( srcClientId ) {\n\t\t\tsetHighlightedRect( null );\n\t\t\tconst attributes = getBlockAttributes( srcClientId );\n\t\t\tupdateBlockAttributes( srcClientId, {\n\t\t\t\tstyle: {\n\t\t\t\t\t...attributes.style,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...attributes.style?.layout,\n\t\t\t\t\t\tcolumnStart: column,\n\t\t\t\t\t\trowStart: row,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} );\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tmoveBlocksToPosition(\n\t\t\t\t[ srcClientId ],\n\t\t\t\tgetBlockRootClientId( srcClientId ),\n\t\t\t\tgridClientId,\n\t\t\t\tgetNumberOfBlocksBeforeCell( column, row )\n\t\t\t);\n\t\t},\n\t} );\n}\n\nfunction GridVisualizerDropZone( {\n\tcolumn,\n\trow,\n\tgridClientId,\n\tgridInfo,\n\tsetHighlightedRect,\n} ) {\n\treturn (\n\t\t<div\n\t\t\tclassName=\"block-editor-grid-visualizer__drop-zone\"\n\t\t\tref={ useGridVisualizerDropZone(\n\t\t\t\tcolumn,\n\t\t\t\trow,\n\t\t\t\tgridClientId,\n\t\t\t\tgridInfo,\n\t\t\t\tsetHighlightedRect\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction GridVisualizerAppender( {\n\tcolumn,\n\trow,\n\tgridClientId,\n\tgridInfo,\n\tsetHighlightedRect,\n} ) {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tmoveBlocksToPosition,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\tgridClientId,\n\t\tgridInfo.numColumns\n\t);\n\n\treturn (\n\t\t<ButtonBlockAppender\n\t\t\trootClientId={ gridClientId }\n\t\t\tclassName=\"block-editor-grid-visualizer__appender\"\n\t\t\tref={ useGridVisualizerDropZone(\n\t\t\t\tcolumn,\n\t\t\t\trow,\n\t\t\t\tgridClientId,\n\t\t\t\tgridInfo,\n\t\t\t\tsetHighlightedRect\n\t\t\t) }\n\t\t\tstyle={ {\n\t\t\t\tcolor: gridInfo.currentColor,\n\t\t\t} }\n\t\t\tonSelect={ ( block ) => {\n\t\t\t\tif ( ! block ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tupdateBlockAttributes( block.clientId, {\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\tcolumnStart: column,\n\t\t\t\t\t\t\trowStart: row,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t[ block.clientId ],\n\t\t\t\t\tgridClientId,\n\t\t\t\t\tgridClientId,\n\t\t\t\t\tgetNumberOfBlocksBeforeCell( column, row )\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction useDropZoneWithValidation( {\n\tvalidateDrag,\n\tonDragEnter,\n\tonDragLeave,\n\tonDrop,\n} ) {\n\tconst { getDraggedBlockClientIds } = useSelect( blockEditorStore );\n\treturn useDropZone( {\n\t\tonDragEnter() {\n\t\t\tconst [ srcClientId ] = getDraggedBlockClientIds();\n\t\t\tif ( srcClientId && validateDrag( srcClientId ) ) {\n\t\t\t\tonDragEnter( srcClientId );\n\t\t\t}\n\t\t},\n\t\tonDragLeave() {\n\t\t\tonDragLeave();\n\t\t},\n\t\tonDrop() {\n\t\t\tconst [ srcClientId ] = getDraggedBlockClientIds();\n\t\t\tif ( srcClientId && validateDrag( srcClientId ) ) {\n\t\t\t\tonDrop( srcClientId );\n\t\t\t}\n\t\t},\n\t} );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_data","_compose","_useBlockRefs","_cover","_utils","_store","_useGetNumberOfBlocksBeforeCell","_buttonBlockAppender","_lockUnlock","_jsxRuntime","GridVisualizer","clientId","contentRef","parentLayout","isDistractionFree","useSelect","select","blockEditorStore","getSettings","gridElement","useBlockElement","isManualGrid","isManualPlacement","window","__experimentalEnableGridInteractivity","jsx","GridVisualizerGrid","gridClientId","ref","forwardRef","gridInfo","setGridInfo","useState","getGridInfo","isDroppingAllowed","setIsDroppingAllowed","useEffect","observers","element","children","observer","ResizeObserver","observe","push","disconnect","onGlobalDrag","onGlobalDragEnd","document","addEventListener","removeEventListener","default","className","clsx","__unstablePopoverSlot","style","ManualGridVisualizer","Array","from","length","numItems","_","i","GridVisualizerCell","color","currentColor","highlightedRect","setHighlightedRect","gridItemStyles","getBlockOrder","getBlockStyles","unlock","blockOrder","occupiedRects","useMemo","rects","Object","values","_style$layout","columnStart","rowStart","columnSpan","rowSpan","layout","GridRect","range","numRows","map","row","numColumns","column","_highlightedRect$cont","isCellOccupied","some","rect","contains","isHighlighted","GridVisualizerDropZone","GridVisualizerAppender","boxShadow","useGridVisualizerDropZone","getBlockAttributes","getBlockRootClientId","canInsertBlockType","getBlockName","updateBlockAttributes","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","useDispatch","getNumberOfBlocksBeforeCell","useGetNumberOfBlocksBeforeCell","useDropZoneWithValidation","validateDrag","srcClientId","blockName","attributes","isInBounds","containsRect","onDragEnter","onDragLeave","prevHighlightedRect","onDrop","rootClientId","onSelect","block","getDraggedBlockClientIds","useDropZone"],"sources":["@wordpress/block-editor/src/components/grid/grid-visualizer.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, forwardRef, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __experimentalUseDropZone as useDropZone } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport BlockPopoverCover from '../block-popover/cover';\nimport { range, GridRect, getGridInfo } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport { useGetNumberOfBlocksBeforeCell } from './use-get-number-of-blocks-before-cell';\nimport ButtonBlockAppender from '../button-block-appender';\nimport { unlock } from '../../lock-unlock';\n\nexport function GridVisualizer( { clientId, contentRef, parentLayout } ) {\n\tconst isDistractionFree = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().isDistractionFree,\n\t\t[]\n\t);\n\tconst gridElement = useBlockElement( clientId );\n\n\tif ( isDistractionFree || ! gridElement ) {\n\t\treturn null;\n\t}\n\n\tconst isManualGrid =\n\t\tparentLayout?.isManualPlacement &&\n\t\twindow.__experimentalEnableGridInteractivity;\n\treturn (\n\t\t<GridVisualizerGrid\n\t\t\tgridClientId={ clientId }\n\t\t\tgridElement={ gridElement }\n\t\t\tisManualGrid={ isManualGrid }\n\t\t\tref={ contentRef }\n\t\t/>\n\t);\n}\n\nconst GridVisualizerGrid = forwardRef(\n\t( { gridClientId, gridElement, isManualGrid }, ref ) => {\n\t\tconst [ gridInfo, setGridInfo ] = useState( () =>\n\t\t\tgetGridInfo( gridElement )\n\t\t);\n\t\tconst [ isDroppingAllowed, setIsDroppingAllowed ] = useState( false );\n\n\t\tuseEffect( () => {\n\t\t\tconst observers = [];\n\t\t\tfor ( const element of [ gridElement, ...gridElement.children ] ) {\n\t\t\t\tconst observer = new window.ResizeObserver( () => {\n\t\t\t\t\tsetGridInfo( getGridInfo( gridElement ) );\n\t\t\t\t} );\n\t\t\t\tobserver.observe( element );\n\t\t\t\tobservers.push( observer );\n\t\t\t}\n\t\t\treturn () => {\n\t\t\t\tfor ( const observer of observers ) {\n\t\t\t\t\tobserver.disconnect();\n\t\t\t\t}\n\t\t\t};\n\t\t}, [ gridElement ] );\n\n\t\tuseEffect( () => {\n\t\t\tfunction onGlobalDrag() {\n\t\t\t\tsetIsDroppingAllowed( true );\n\t\t\t}\n\t\t\tfunction onGlobalDragEnd() {\n\t\t\t\tsetIsDroppingAllowed( false );\n\t\t\t}\n\t\t\tdocument.addEventListener( 'drag', onGlobalDrag );\n\t\t\tdocument.addEventListener( 'dragend', onGlobalDragEnd );\n\t\t\treturn () => {\n\t\t\t\tdocument.removeEventListener( 'drag', onGlobalDrag );\n\t\t\t\tdocument.removeEventListener( 'dragend', onGlobalDragEnd );\n\t\t\t};\n\t\t}, [] );\n\n\t\treturn (\n\t\t\t<BlockPopoverCover\n\t\t\t\tclassName={ clsx( 'block-editor-grid-visualizer', {\n\t\t\t\t\t'is-dropping-allowed': isDroppingAllowed,\n\t\t\t\t} ) }\n\t\t\t\tclientId={ gridClientId }\n\t\t\t\t__unstablePopoverSlot=\"__unstable-block-tools-after\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tclassName=\"block-editor-grid-visualizer__grid\"\n\t\t\t\t\tstyle={ gridInfo.style }\n\t\t\t\t>\n\t\t\t\t\t{ isManualGrid ? (\n\t\t\t\t\t\t<ManualGridVisualizer\n\t\t\t\t\t\t\tgridClientId={ gridClientId }\n\t\t\t\t\t\t\tgridInfo={ gridInfo }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tArray.from( { length: gridInfo.numItems }, ( _, i ) => (\n\t\t\t\t\t\t\t<GridVisualizerCell\n\t\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t\t\tcolor={ gridInfo.currentColor }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) )\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</BlockPopoverCover>\n\t\t);\n\t}\n);\n\nfunction ManualGridVisualizer( { gridClientId, gridInfo } ) {\n\tconst [ highlightedRect, setHighlightedRect ] = useState( null );\n\n\tconst gridItemStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockOrder, getBlockStyles } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\tconst blockOrder = getBlockOrder( gridClientId );\n\t\t\treturn getBlockStyles( blockOrder );\n\t\t},\n\t\t[ gridClientId ]\n\t);\n\tconst occupiedRects = useMemo( () => {\n\t\tconst rects = [];\n\t\tfor ( const style of Object.values( gridItemStyles ) ) {\n\t\t\tconst {\n\t\t\t\tcolumnStart,\n\t\t\t\trowStart,\n\t\t\t\tcolumnSpan = 1,\n\t\t\t\trowSpan = 1,\n\t\t\t} = style?.layout ?? {};\n\t\t\tif ( ! columnStart || ! rowStart ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\trects.push(\n\t\t\t\tnew GridRect( {\n\t\t\t\t\tcolumnStart,\n\t\t\t\t\trowStart,\n\t\t\t\t\tcolumnSpan,\n\t\t\t\t\trowSpan,\n\t\t\t\t} )\n\t\t\t);\n\t\t}\n\t\treturn rects;\n\t}, [ gridItemStyles ] );\n\n\treturn range( 1, gridInfo.numRows ).map( ( row ) =>\n\t\trange( 1, gridInfo.numColumns ).map( ( column ) => {\n\t\t\tconst isCellOccupied = occupiedRects.some( ( rect ) =>\n\t\t\t\trect.contains( column, row )\n\t\t\t);\n\t\t\tconst isHighlighted =\n\t\t\t\thighlightedRect?.contains( column, row ) ?? false;\n\t\t\treturn (\n\t\t\t\t<GridVisualizerCell\n\t\t\t\t\tkey={ `${ row }-${ column }` }\n\t\t\t\t\tcolor={ gridInfo.currentColor }\n\t\t\t\t\tclassName={ isHighlighted && 'is-highlighted' }\n\t\t\t\t>\n\t\t\t\t\t{ isCellOccupied ? (\n\t\t\t\t\t\t<GridVisualizerDropZone\n\t\t\t\t\t\t\tcolumn={ column }\n\t\t\t\t\t\t\trow={ row }\n\t\t\t\t\t\t\tgridClientId={ gridClientId }\n\t\t\t\t\t\t\tgridInfo={ gridInfo }\n\t\t\t\t\t\t\tsetHighlightedRect={ setHighlightedRect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<GridVisualizerAppender\n\t\t\t\t\t\t\tcolumn={ column }\n\t\t\t\t\t\t\trow={ row }\n\t\t\t\t\t\t\tgridClientId={ gridClientId }\n\t\t\t\t\t\t\tgridInfo={ gridInfo }\n\t\t\t\t\t\t\tsetHighlightedRect={ setHighlightedRect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</GridVisualizerCell>\n\t\t\t);\n\t\t} )\n\t);\n}\n\nfunction GridVisualizerCell( { color, children, className } ) {\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-grid-visualizer__cell',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\tstyle={ {\n\t\t\t\tboxShadow: `inset 0 0 0 1px color-mix(in srgb, ${ color } 20%, #0000)`,\n\t\t\t\tcolor,\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction useGridVisualizerDropZone(\n\tcolumn,\n\trow,\n\tgridClientId,\n\tgridInfo,\n\tsetHighlightedRect\n) {\n\tconst {\n\t\tgetBlockAttributes,\n\t\tgetBlockRootClientId,\n\t\tcanInsertBlockType,\n\t\tgetBlockName,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tmoveBlocksToPosition,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\tgridClientId,\n\t\tgridInfo.numColumns\n\t);\n\n\treturn useDropZoneWithValidation( {\n\t\tvalidateDrag( srcClientId ) {\n\t\t\tconst blockName = getBlockName( srcClientId );\n\t\t\tif ( ! canInsertBlockType( blockName, gridClientId ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst attributes = getBlockAttributes( srcClientId );\n\t\t\tconst rect = new GridRect( {\n\t\t\t\tcolumnStart: column,\n\t\t\t\trowStart: row,\n\t\t\t\tcolumnSpan: attributes.style?.layout?.columnSpan,\n\t\t\t\trowSpan: attributes.style?.layout?.rowSpan,\n\t\t\t} );\n\t\t\tconst isInBounds = new GridRect( {\n\t\t\t\tcolumnSpan: gridInfo.numColumns,\n\t\t\t\trowSpan: gridInfo.numRows,\n\t\t\t} ).containsRect( rect );\n\t\t\treturn isInBounds;\n\t\t},\n\t\tonDragEnter( srcClientId ) {\n\t\t\tconst attributes = getBlockAttributes( srcClientId );\n\t\t\tsetHighlightedRect(\n\t\t\t\tnew GridRect( {\n\t\t\t\t\tcolumnStart: column,\n\t\t\t\t\trowStart: row,\n\t\t\t\t\tcolumnSpan: attributes.style?.layout?.columnSpan,\n\t\t\t\t\trowSpan: attributes.style?.layout?.rowSpan,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t\tonDragLeave() {\n\t\t\t// onDragEnter can be called before onDragLeave if the user moves\n\t\t\t// their mouse quickly, so only clear the highlight if it was set\n\t\t\t// by this cell.\n\t\t\tsetHighlightedRect( ( prevHighlightedRect ) =>\n\t\t\t\tprevHighlightedRect?.columnStart === column &&\n\t\t\t\tprevHighlightedRect?.rowStart === row\n\t\t\t\t\t? null\n\t\t\t\t\t: prevHighlightedRect\n\t\t\t);\n\t\t},\n\t\tonDrop( srcClientId ) {\n\t\t\tsetHighlightedRect( null );\n\t\t\tconst attributes = getBlockAttributes( srcClientId );\n\t\t\tupdateBlockAttributes( srcClientId, {\n\t\t\t\tstyle: {\n\t\t\t\t\t...attributes.style,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...attributes.style?.layout,\n\t\t\t\t\t\tcolumnStart: column,\n\t\t\t\t\t\trowStart: row,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} );\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tmoveBlocksToPosition(\n\t\t\t\t[ srcClientId ],\n\t\t\t\tgetBlockRootClientId( srcClientId ),\n\t\t\t\tgridClientId,\n\t\t\t\tgetNumberOfBlocksBeforeCell( column, row )\n\t\t\t);\n\t\t},\n\t} );\n}\n\nfunction GridVisualizerDropZone( {\n\tcolumn,\n\trow,\n\tgridClientId,\n\tgridInfo,\n\tsetHighlightedRect,\n} ) {\n\treturn (\n\t\t<div\n\t\t\tclassName=\"block-editor-grid-visualizer__drop-zone\"\n\t\t\tref={ useGridVisualizerDropZone(\n\t\t\t\tcolumn,\n\t\t\t\trow,\n\t\t\t\tgridClientId,\n\t\t\t\tgridInfo,\n\t\t\t\tsetHighlightedRect\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction GridVisualizerAppender( {\n\tcolumn,\n\trow,\n\tgridClientId,\n\tgridInfo,\n\tsetHighlightedRect,\n} ) {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tmoveBlocksToPosition,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\tgridClientId,\n\t\tgridInfo.numColumns\n\t);\n\n\treturn (\n\t\t<ButtonBlockAppender\n\t\t\trootClientId={ gridClientId }\n\t\t\tclassName=\"block-editor-grid-visualizer__appender\"\n\t\t\tref={ useGridVisualizerDropZone(\n\t\t\t\tcolumn,\n\t\t\t\trow,\n\t\t\t\tgridClientId,\n\t\t\t\tgridInfo,\n\t\t\t\tsetHighlightedRect\n\t\t\t) }\n\t\t\tstyle={ {\n\t\t\t\tcolor: gridInfo.currentColor,\n\t\t\t} }\n\t\t\tonSelect={ ( block ) => {\n\t\t\t\tif ( ! block ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tupdateBlockAttributes( block.clientId, {\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\tcolumnStart: column,\n\t\t\t\t\t\t\trowStart: row,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t[ block.clientId ],\n\t\t\t\t\tgridClientId,\n\t\t\t\t\tgridClientId,\n\t\t\t\t\tgetNumberOfBlocksBeforeCell( column, row )\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction useDropZoneWithValidation( {\n\tvalidateDrag,\n\tonDragEnter,\n\tonDragLeave,\n\tonDrop,\n} ) {\n\tconst { getDraggedBlockClientIds } = useSelect( blockEditorStore );\n\treturn useDropZone( {\n\t\tonDragEnter() {\n\t\t\tconst [ srcClientId ] = getDraggedBlockClientIds();\n\t\t\tif ( srcClientId && validateDrag( srcClientId ) ) {\n\t\t\t\tonDragEnter( srcClientId );\n\t\t\t}\n\t\t},\n\t\tonDragLeave() {\n\t\t\tonDragLeave();\n\t\t},\n\t\tonDrop() {\n\t\t\tconst [ srcClientId ] = getDraggedBlockClientIds();\n\t\t\tif ( srcClientId && validateDrag( srcClientId ) ) {\n\t\t\t\tonDrop( srcClientId );\n\t\t\t}\n\t\t},\n\t} );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -126,7 +126,7 @@ function Iframe({
126
126
  scripts = ''
127
127
  } = resolvedAssets;
128
128
  const [iframeDocument, setIframeDocument] = (0, _element.useState)();
129
- const prevContainerWidthRef = (0, _element.useRef)();
129
+ const initialContainerWidth = (0, _element.useRef)();
130
130
  const [bodyClasses, setBodyClasses] = (0, _element.useState)([]);
131
131
  const clearerRef = (0, _blockSelectionClearer.useBlockSelectionClearer)();
132
132
  const [before, writingFlowRef, after] = (0, _writingFlow.useWritingFlow)();
@@ -210,7 +210,7 @@ function Iframe({
210
210
  const isZoomedOut = scale !== 1;
211
211
  (0, _element.useEffect)(() => {
212
212
  if (!isZoomedOut) {
213
- prevContainerWidthRef.current = containerWidth;
213
+ initialContainerWidth.current = containerWidth;
214
214
  }
215
215
  }, [containerWidth, isZoomedOut]);
216
216
  const disabledRef = (0, _compose.useDisabled)({
@@ -257,31 +257,66 @@ function Iframe({
257
257
  return [_src, () => URL.revokeObjectURL(_src)];
258
258
  }, [html]);
259
259
  (0, _element.useEffect)(() => cleanup, [cleanup]);
260
+ const zoomOutAnimationClassnameRef = (0, _element.useRef)(null);
261
+ const handleZoomOutAnimationClassname = () => {
262
+ clearTimeout(zoomOutAnimationClassnameRef.current);
263
+ iframeDocument.documentElement.classList.add('zoom-out-animation');
264
+ zoomOutAnimationClassnameRef.current = setTimeout(() => {
265
+ iframeDocument.documentElement.classList.remove('zoom-out-animation');
266
+ }, 400); // 400ms should match the animation speed used in components/iframe/content.scss
267
+ };
268
+
269
+ // Toggle zoom out CSS Classes only when zoom out mode changes. We could add these into the useEffect
270
+ // that controls settings the CSS variables, but then we would need to do more work to ensure we're
271
+ // only toggling these when the zoom out mode changes, as that useEffect is also triggered by a large
272
+ // number of dependencies.
260
273
  (0, _element.useEffect)(() => {
261
274
  if (!iframeDocument || !isZoomedOut) {
262
275
  return;
263
276
  }
277
+ handleZoomOutAnimationClassname();
264
278
  iframeDocument.documentElement.classList.add('is-zoomed-out');
279
+ return () => {
280
+ handleZoomOutAnimationClassname();
281
+ iframeDocument.documentElement.classList.remove('is-zoomed-out');
282
+ };
283
+ }, [iframeDocument, isZoomedOut]);
284
+
285
+ // Calculate the scaling and CSS variables for the zoom out canvas
286
+ (0, _element.useEffect)(() => {
287
+ if (!iframeDocument || !isZoomedOut) {
288
+ return;
289
+ }
265
290
  const maxWidth = 750;
291
+ // Note: When we initialize the zoom out when the canvas is smaller (sidebars open),
292
+ // initialContainerWidth will be smaller than the full page, and reflow will happen
293
+ // when the canvas area becomes larger due to sidebars closing. This is a known but
294
+ // minor divergence for now.
295
+
266
296
  // This scaling calculation has to happen within the JS because CSS calc() can
267
297
  // only divide and multiply by a unitless value. I.e. calc( 100px / 2 ) is valid
268
298
  // but calc( 100px / 2px ) is not.
269
- iframeDocument.documentElement.style.setProperty('--wp-block-editor-iframe-zoom-out-scale', scale === 'default' ? (Math.min(containerWidth, maxWidth) - parseInt(frameSize) * 2) / prevContainerWidthRef.current : scale);
299
+ iframeDocument.documentElement.style.setProperty('--wp-block-editor-iframe-zoom-out-scale', scale === 'default' ? (Math.min(containerWidth, maxWidth) - parseInt(frameSize) * 2) / Math.max(initialContainerWidth.current, containerWidth) : scale);
270
300
 
271
301
  // frameSize has to be a px value for the scaling and frame size to be computed correctly.
272
302
  iframeDocument.documentElement.style.setProperty('--wp-block-editor-iframe-zoom-out-frame-size', typeof frameSize === 'number' ? `${frameSize}px` : frameSize);
273
303
  iframeDocument.documentElement.style.setProperty('--wp-block-editor-iframe-zoom-out-content-height', `${contentHeight}px`);
274
304
  iframeDocument.documentElement.style.setProperty('--wp-block-editor-iframe-zoom-out-inner-height', `${iframeWindowInnerHeight}px`);
275
305
  iframeDocument.documentElement.style.setProperty('--wp-block-editor-iframe-zoom-out-container-width', `${containerWidth}px`);
276
- iframeDocument.documentElement.style.setProperty('--wp-block-editor-iframe-zoom-out-prev-container-width', `${prevContainerWidthRef.current}px`);
306
+ iframeDocument.documentElement.style.setProperty('--wp-block-editor-iframe-zoom-out-outer-container-width', `${Math.max(initialContainerWidth.current, containerWidth)}px`);
307
+
308
+ // iframeDocument.documentElement.style.setProperty(
309
+ // '--wp-block-editor-iframe-zoom-out-outer-container-width',
310
+ // `${ Math.max( initialContainerWidth.current, containerWidth ) }px`
311
+ // );
312
+
277
313
  return () => {
278
- iframeDocument.documentElement.classList.remove('is-zoomed-out');
279
314
  iframeDocument.documentElement.style.removeProperty('--wp-block-editor-iframe-zoom-out-scale');
280
315
  iframeDocument.documentElement.style.removeProperty('--wp-block-editor-iframe-zoom-out-frame-size');
281
316
  iframeDocument.documentElement.style.removeProperty('--wp-block-editor-iframe-zoom-out-content-height');
282
317
  iframeDocument.documentElement.style.removeProperty('--wp-block-editor-iframe-zoom-out-inner-height');
283
318
  iframeDocument.documentElement.style.removeProperty('--wp-block-editor-iframe-zoom-out-container-width');
284
- iframeDocument.documentElement.style.removeProperty('--wp-block-editor-iframe-zoom-out-prev-container-width');
319
+ iframeDocument.documentElement.style.removeProperty('--wp-block-editor-iframe-zoom-out-outer-container-width');
285
320
  };
286
321
  }, [scale, frameSize, iframeDocument, iframeWindowInnerHeight, contentHeight, containerWidth, windowInnerWidth, isZoomedOut]);
287
322
 
@@ -293,7 +328,8 @@ function Iframe({
293
328
  ...props,
294
329
  style: {
295
330
  ...props.style,
296
- height: props.style?.height
331
+ height: props.style?.height,
332
+ border: 0
297
333
  },
298
334
  ref: (0, _compose.useMergeRefs)([ref, setRef]),
299
335
  tabIndex: tabIndex
@@ -349,8 +385,7 @@ function Iframe({
349
385
  children: [containerResizeListener, /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
350
386
  className: (0, _clsx.default)('block-editor-iframe__scale-container', isZoomedOut && 'is-zoomed-out'),
351
387
  style: {
352
- '--wp-block-editor-iframe-zoom-out-container-width': isZoomedOut && `${containerWidth}px`,
353
- '--wp-block-editor-iframe-zoom-out-prev-container-width': isZoomedOut && `${prevContainerWidthRef.current}px`
388
+ '--wp-block-editor-iframe-zoom-out-outer-container-width': isZoomedOut && `${Math.max(initialContainerWidth.current, containerWidth)}px`
354
389
  },
355
390
  children: iframe
356
391
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_i18n","_compose","_components","_data","_blockSelectionClearer","_writingFlow","_getCompatibilityStyles","_store","_jsxRuntime","bubbleEvent","event","Constructor","frame","init","key","contentDocument","defaultView","MouseEvent","rect","getBoundingClientRect","clientX","left","clientY","top","newEvent","type","defaultPrevented","preventDefault","cancelled","dispatchEvent","useBubbleEvents","iframeDocument","useRefEffect","frameElement","html","documentElement","eventTypes","handlers","name","prototype","Object","getPrototypeOf","constructorName","constructor","window","addEventListener","removeEventListener","Iframe","contentRef","children","tabIndex","scale","frameSize","readonly","forwardedRef","ref","title","__","props","resolvedAssets","isPreviewMode","useSelect","select","getSettings","blockEditorStore","settings","__unstableResolvedAssets","__unstableIsPreviewMode","styles","scripts","setIframeDocument","useState","prevContainerWidthRef","useRef","bodyClasses","setBodyClasses","clearerRef","useBlockSelectionClearer","before","writingFlowRef","after","useWritingFlow","contentResizeListener","height","contentHeight","useResizeObserver","containerResizeListener","width","containerWidth","setRef","node","_load","iFrameDocument","preventFileDropDefault","onLoad","ownerDocument","classList","add","Array","from","body","filter","startsWith","dir","compatStyle","getCompatibilityStyles","getElementById","id","head","appendChild","cloneNode","console","warn","iframeWindowInnerHeight","setIframeWindowInnerHeight","iframeResizeRef","nodeWindow","innerHeight","onResize","windowInnerWidth","setWindowInnerWidth","windowResizeRef","innerWidth","isZoomedOut","useEffect","current","disabledRef","useDisabled","isDisabled","bodyRef","useMergeRefs","src","cleanup","useMemo","_src","URL","createObjectURL","Blob","revokeObjectURL","maxWidth","style","setProperty","Math","min","parseInt","remove","removeProperty","shouldRenderFocusCaptureElements","iframe","jsxs","Fragment","jsx","onKeyDown","currentTarget","target","stopPropagation","nativeEvent","KeyboardEvent","createPortal","className","clsx","__experimentalStyleProvider","document","IframeIfReady","isInitialised","__internalIsInitialized","_default","exports","default","forwardRef"],"sources":["@wordpress/block-editor/src/components/iframe/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tcreatePortal,\n\tforwardRef,\n\tuseMemo,\n\tuseEffect,\n\tuseRef,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseResizeObserver,\n\tuseMergeRefs,\n\tuseRefEffect,\n\tuseDisabled,\n} from '@wordpress/compose';\nimport { __experimentalStyleProvider as StyleProvider } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useWritingFlow } from '../writing-flow';\nimport { getCompatibilityStyles } from './get-compatibility-styles';\nimport { store as blockEditorStore } from '../../store';\n\nfunction bubbleEvent( event, Constructor, frame ) {\n\tconst init = {};\n\n\tfor ( const key in event ) {\n\t\tinit[ key ] = event[ key ];\n\t}\n\n\t// Check if the event is a MouseEvent generated within the iframe.\n\t// If so, adjust the coordinates to be relative to the position of\n\t// the iframe. This ensures that components such as Draggable\n\t// receive coordinates relative to the window, instead of relative\n\t// to the iframe. Without this, the Draggable event handler would\n\t// result in components \"jumping\" position as soon as the user\n\t// drags over the iframe.\n\tif ( event instanceof frame.contentDocument.defaultView.MouseEvent ) {\n\t\tconst rect = frame.getBoundingClientRect();\n\t\tinit.clientX += rect.left;\n\t\tinit.clientY += rect.top;\n\t}\n\n\tconst newEvent = new Constructor( event.type, init );\n\tif ( init.defaultPrevented ) {\n\t\tnewEvent.preventDefault();\n\t}\n\tconst cancelled = ! frame.dispatchEvent( newEvent );\n\n\tif ( cancelled ) {\n\t\tevent.preventDefault();\n\t}\n}\n\n/**\n * Bubbles some event types (keydown, keypress, and dragover) to parent document\n * document to ensure that the keyboard shortcuts and drag and drop work.\n *\n * Ideally, we should remove event bubbling in the future. Keyboard shortcuts\n * should be context dependent, e.g. actions on blocks like Cmd+A should not\n * work globally outside the block editor.\n *\n * @param {Document} iframeDocument Document to attach listeners to.\n */\nfunction useBubbleEvents( iframeDocument ) {\n\treturn useRefEffect( () => {\n\t\tconst { defaultView } = iframeDocument;\n\t\tif ( ! defaultView ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { frameElement } = defaultView;\n\t\tconst html = iframeDocument.documentElement;\n\t\tconst eventTypes = [ 'dragover', 'mousemove' ];\n\t\tconst handlers = {};\n\t\tfor ( const name of eventTypes ) {\n\t\t\thandlers[ name ] = ( event ) => {\n\t\t\t\tconst prototype = Object.getPrototypeOf( event );\n\t\t\t\tconst constructorName = prototype.constructor.name;\n\t\t\t\tconst Constructor = window[ constructorName ];\n\t\t\t\tbubbleEvent( event, Constructor, frameElement );\n\t\t\t};\n\t\t\thtml.addEventListener( name, handlers[ name ] );\n\t\t}\n\n\t\treturn () => {\n\t\t\tfor ( const name of eventTypes ) {\n\t\t\t\thtml.removeEventListener( name, handlers[ name ] );\n\t\t\t}\n\t\t};\n\t} );\n}\n\nfunction Iframe( {\n\tcontentRef,\n\tchildren,\n\ttabIndex = 0,\n\tscale = 1,\n\tframeSize = 0,\n\treadonly,\n\tforwardedRef: ref,\n\ttitle = __( 'Editor canvas' ),\n\t...props\n} ) {\n\tconst { resolvedAssets, isPreviewMode } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst settings = getSettings();\n\t\treturn {\n\t\t\tresolvedAssets: settings.__unstableResolvedAssets,\n\t\t\tisPreviewMode: settings.__unstableIsPreviewMode,\n\t\t};\n\t}, [] );\n\tconst { styles = '', scripts = '' } = resolvedAssets;\n\tconst [ iframeDocument, setIframeDocument ] = useState();\n\tconst prevContainerWidthRef = useRef();\n\tconst [ bodyClasses, setBodyClasses ] = useState( [] );\n\tconst clearerRef = useBlockSelectionClearer();\n\tconst [ before, writingFlowRef, after ] = useWritingFlow();\n\tconst [ contentResizeListener, { height: contentHeight } ] =\n\t\tuseResizeObserver();\n\tconst [ containerResizeListener, { width: containerWidth } ] =\n\t\tuseResizeObserver();\n\n\tconst setRef = useRefEffect( ( node ) => {\n\t\tnode._load = () => {\n\t\t\tsetIframeDocument( node.contentDocument );\n\t\t};\n\t\tlet iFrameDocument;\n\t\t// Prevent the default browser action for files dropped outside of dropzones.\n\t\tfunction preventFileDropDefault( event ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tfunction onLoad() {\n\t\t\tconst { contentDocument, ownerDocument } = node;\n\t\t\tconst { documentElement } = contentDocument;\n\t\t\tiFrameDocument = contentDocument;\n\n\t\t\tdocumentElement.classList.add( 'block-editor-iframe__html' );\n\n\t\t\tclearerRef( documentElement );\n\n\t\t\t// Ideally ALL classes that are added through get_body_class should\n\t\t\t// be added in the editor too, which we'll somehow have to get from\n\t\t\t// the server in the future (which will run the PHP filters).\n\t\t\tsetBodyClasses(\n\t\t\t\tArray.from( ownerDocument.body.classList ).filter(\n\t\t\t\t\t( name ) =>\n\t\t\t\t\t\tname.startsWith( 'admin-color-' ) ||\n\t\t\t\t\t\tname.startsWith( 'post-type-' ) ||\n\t\t\t\t\t\tname === 'wp-embed-responsive'\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tcontentDocument.dir = ownerDocument.dir;\n\n\t\t\tfor ( const compatStyle of getCompatibilityStyles() ) {\n\t\t\t\tif ( contentDocument.getElementById( compatStyle.id ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcontentDocument.head.appendChild(\n\t\t\t\t\tcompatStyle.cloneNode( true )\n\t\t\t\t);\n\n\t\t\t\tif ( ! isPreviewMode ) {\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`${ compatStyle.id } was added to the iframe incorrectly. Please use block.json or enqueue_block_assets to add styles to the iframe.`,\n\t\t\t\t\t\tcompatStyle\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tiFrameDocument.addEventListener(\n\t\t\t\t'dragover',\n\t\t\t\tpreventFileDropDefault,\n\t\t\t\tfalse\n\t\t\t);\n\t\t\tiFrameDocument.addEventListener(\n\t\t\t\t'drop',\n\t\t\t\tpreventFileDropDefault,\n\t\t\t\tfalse\n\t\t\t);\n\t\t}\n\n\t\tnode.addEventListener( 'load', onLoad );\n\n\t\treturn () => {\n\t\t\tdelete node._load;\n\t\t\tnode.removeEventListener( 'load', onLoad );\n\t\t\tiFrameDocument?.removeEventListener(\n\t\t\t\t'dragover',\n\t\t\t\tpreventFileDropDefault\n\t\t\t);\n\t\t\tiFrameDocument?.removeEventListener(\n\t\t\t\t'drop',\n\t\t\t\tpreventFileDropDefault\n\t\t\t);\n\t\t};\n\t}, [] );\n\n\tconst [ iframeWindowInnerHeight, setIframeWindowInnerHeight ] = useState();\n\n\tconst iframeResizeRef = useRefEffect( ( node ) => {\n\t\tconst nodeWindow = node.ownerDocument.defaultView;\n\n\t\tsetIframeWindowInnerHeight( nodeWindow.innerHeight );\n\t\tconst onResize = () => {\n\t\t\tsetIframeWindowInnerHeight( nodeWindow.innerHeight );\n\t\t};\n\t\tnodeWindow.addEventListener( 'resize', onResize );\n\t\treturn () => {\n\t\t\tnodeWindow.removeEventListener( 'resize', onResize );\n\t\t};\n\t}, [] );\n\n\tconst [ windowInnerWidth, setWindowInnerWidth ] = useState();\n\n\tconst windowResizeRef = useRefEffect( ( node ) => {\n\t\tconst nodeWindow = node.ownerDocument.defaultView;\n\n\t\tsetWindowInnerWidth( nodeWindow.innerWidth );\n\t\tconst onResize = () => {\n\t\t\tsetWindowInnerWidth( nodeWindow.innerWidth );\n\t\t};\n\t\tnodeWindow.addEventListener( 'resize', onResize );\n\t\treturn () => {\n\t\t\tnodeWindow.removeEventListener( 'resize', onResize );\n\t\t};\n\t}, [] );\n\n\tconst isZoomedOut = scale !== 1;\n\n\tuseEffect( () => {\n\t\tif ( ! isZoomedOut ) {\n\t\t\tprevContainerWidthRef.current = containerWidth;\n\t\t}\n\t}, [ containerWidth, isZoomedOut ] );\n\n\tconst disabledRef = useDisabled( { isDisabled: ! readonly } );\n\tconst bodyRef = useMergeRefs( [\n\t\tuseBubbleEvents( iframeDocument ),\n\t\tcontentRef,\n\t\tclearerRef,\n\t\twritingFlowRef,\n\t\tdisabledRef,\n\t\t// Avoid resize listeners when not needed, these will trigger\n\t\t// unnecessary re-renders when animating the iframe width, or when\n\t\t// expanding preview iframes.\n\t\tisZoomedOut ? iframeResizeRef : null,\n\t] );\n\n\t// Correct doctype is required to enable rendering in standards\n\t// mode. Also preload the styles to avoid a flash of unstyled\n\t// content.\n\tconst html = `<!doctype html>\n<html>\n\t<head>\n\t\t<meta charset=\"utf-8\">\n\t\t<script>window.frameElement._load()</script>\n\t\t<style>\n\t\t\thtml{\n\t\t\t\theight: auto !important;\n\t\t\t\tmin-height: 100%;\n\t\t\t}\n\t\t\t/* Lowest specificity to not override global styles */\n\t\t\t:where(body) {\n\t\t\t\tmargin: 0;\n\t\t\t\t/* Default background color in case zoom out mode background\n\t\t\t\tcolors the html element */\n\t\t\t\tbackground-color: white;\n\t\t\t}\n\t\t</style>\n\t\t${ styles }\n\t\t${ scripts }\n\t</head>\n\t<body>\n\t\t<script>document.currentScript.parentElement.remove()</script>\n\t</body>\n</html>`;\n\n\tconst [ src, cleanup ] = useMemo( () => {\n\t\tconst _src = URL.createObjectURL(\n\t\t\tnew window.Blob( [ html ], { type: 'text/html' } )\n\t\t);\n\t\treturn [ _src, () => URL.revokeObjectURL( _src ) ];\n\t}, [ html ] );\n\n\tuseEffect( () => cleanup, [ cleanup ] );\n\n\tuseEffect( () => {\n\t\tif ( ! iframeDocument || ! isZoomedOut ) {\n\t\t\treturn;\n\t\t}\n\n\t\tiframeDocument.documentElement.classList.add( 'is-zoomed-out' );\n\n\t\tconst maxWidth = 750;\n\t\t// This scaling calculation has to happen within the JS because CSS calc() can\n\t\t// only divide and multiply by a unitless value. I.e. calc( 100px / 2 ) is valid\n\t\t// but calc( 100px / 2px ) is not.\n\t\tiframeDocument.documentElement.style.setProperty(\n\t\t\t'--wp-block-editor-iframe-zoom-out-scale',\n\t\t\tscale === 'default'\n\t\t\t\t? ( Math.min( containerWidth, maxWidth ) -\n\t\t\t\t\t\tparseInt( frameSize ) * 2 ) /\n\t\t\t\t\t\tprevContainerWidthRef.current\n\t\t\t\t: scale\n\t\t);\n\n\t\t// frameSize has to be a px value for the scaling and frame size to be computed correctly.\n\t\tiframeDocument.documentElement.style.setProperty(\n\t\t\t'--wp-block-editor-iframe-zoom-out-frame-size',\n\t\t\ttypeof frameSize === 'number' ? `${ frameSize }px` : frameSize\n\t\t);\n\t\tiframeDocument.documentElement.style.setProperty(\n\t\t\t'--wp-block-editor-iframe-zoom-out-content-height',\n\t\t\t`${ contentHeight }px`\n\t\t);\n\t\tiframeDocument.documentElement.style.setProperty(\n\t\t\t'--wp-block-editor-iframe-zoom-out-inner-height',\n\t\t\t`${ iframeWindowInnerHeight }px`\n\t\t);\n\t\tiframeDocument.documentElement.style.setProperty(\n\t\t\t'--wp-block-editor-iframe-zoom-out-container-width',\n\t\t\t`${ containerWidth }px`\n\t\t);\n\t\tiframeDocument.documentElement.style.setProperty(\n\t\t\t'--wp-block-editor-iframe-zoom-out-prev-container-width',\n\t\t\t`${ prevContainerWidthRef.current }px`\n\t\t);\n\n\t\treturn () => {\n\t\t\tiframeDocument.documentElement.classList.remove( 'is-zoomed-out' );\n\n\t\t\tiframeDocument.documentElement.style.removeProperty(\n\t\t\t\t'--wp-block-editor-iframe-zoom-out-scale'\n\t\t\t);\n\t\t\tiframeDocument.documentElement.style.removeProperty(\n\t\t\t\t'--wp-block-editor-iframe-zoom-out-frame-size'\n\t\t\t);\n\t\t\tiframeDocument.documentElement.style.removeProperty(\n\t\t\t\t'--wp-block-editor-iframe-zoom-out-content-height'\n\t\t\t);\n\t\t\tiframeDocument.documentElement.style.removeProperty(\n\t\t\t\t'--wp-block-editor-iframe-zoom-out-inner-height'\n\t\t\t);\n\t\t\tiframeDocument.documentElement.style.removeProperty(\n\t\t\t\t'--wp-block-editor-iframe-zoom-out-container-width'\n\t\t\t);\n\t\t\tiframeDocument.documentElement.style.removeProperty(\n\t\t\t\t'--wp-block-editor-iframe-zoom-out-prev-container-width'\n\t\t\t);\n\t\t};\n\t}, [\n\t\tscale,\n\t\tframeSize,\n\t\tiframeDocument,\n\t\tiframeWindowInnerHeight,\n\t\tcontentHeight,\n\t\tcontainerWidth,\n\t\twindowInnerWidth,\n\t\tisZoomedOut,\n\t] );\n\n\t// Make sure to not render the before and after focusable div elements in view\n\t// mode. They're only needed to capture focus in edit mode.\n\tconst shouldRenderFocusCaptureElements = tabIndex >= 0 && ! isPreviewMode;\n\n\tconst iframe = (\n\t\t<>\n\t\t\t{ shouldRenderFocusCaptureElements && before }\n\t\t\t{ /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */ }\n\t\t\t<iframe\n\t\t\t\t{ ...props }\n\t\t\t\tstyle={ {\n\t\t\t\t\t...props.style,\n\t\t\t\t\theight: props.style?.height,\n\t\t\t\t} }\n\t\t\t\tref={ useMergeRefs( [ ref, setRef ] ) }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t// Correct doctype is required to enable rendering in standards\n\t\t\t\t// mode. Also preload the styles to avoid a flash of unstyled\n\t\t\t\t// content.\n\t\t\t\tsrc={ src }\n\t\t\t\ttitle={ title }\n\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\tif ( props.onKeyDown ) {\n\t\t\t\t\t\tprops.onKeyDown( event );\n\t\t\t\t\t}\n\t\t\t\t\t// If the event originates from inside the iframe, it means\n\t\t\t\t\t// it bubbled through the portal, but only with React\n\t\t\t\t\t// events. We need to to bubble native events as well,\n\t\t\t\t\t// though by doing so we also trigger another React event,\n\t\t\t\t\t// so we need to stop the propagation of this event to avoid\n\t\t\t\t\t// duplication.\n\t\t\t\t\tif (\n\t\t\t\t\t\tevent.currentTarget.ownerDocument !==\n\t\t\t\t\t\tevent.target.ownerDocument\n\t\t\t\t\t) {\n\t\t\t\t\t\t// We should only stop propagation of the React event,\n\t\t\t\t\t\t// the native event should further bubble inside the\n\t\t\t\t\t\t// iframe to the document and window.\n\t\t\t\t\t\t// Alternatively, we could consider redispatching the\n\t\t\t\t\t\t// native event in the iframe.\n\t\t\t\t\t\tconst { stopPropagation } = event.nativeEvent;\n\t\t\t\t\t\tevent.nativeEvent.stopPropagation = () => {};\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\tevent.nativeEvent.stopPropagation = stopPropagation;\n\t\t\t\t\t\tbubbleEvent(\n\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\twindow.KeyboardEvent,\n\t\t\t\t\t\t\tevent.currentTarget\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ iframeDocument &&\n\t\t\t\t\tcreatePortal(\n\t\t\t\t\t\t// We want to prevent React events from bubbling throught the iframe\n\t\t\t\t\t\t// we bubble these manually.\n\t\t\t\t\t\t/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n\t\t\t\t\t\t<body\n\t\t\t\t\t\t\tref={ bodyRef }\n\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t'block-editor-iframe__body',\n\t\t\t\t\t\t\t\t'editor-styles-wrapper',\n\t\t\t\t\t\t\t\t...bodyClasses\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ contentResizeListener }\n\t\t\t\t\t\t\t<StyleProvider document={ iframeDocument }>\n\t\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t</StyleProvider>\n\t\t\t\t\t\t</body>,\n\t\t\t\t\t\tiframeDocument.documentElement\n\t\t\t\t\t) }\n\t\t\t</iframe>\n\t\t\t{ shouldRenderFocusCaptureElements && after }\n\t\t</>\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-iframe__container\" ref={ windowResizeRef }>\n\t\t\t{ containerResizeListener }\n\t\t\t<div\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'block-editor-iframe__scale-container',\n\t\t\t\t\tisZoomedOut && 'is-zoomed-out'\n\t\t\t\t) }\n\t\t\t\tstyle={ {\n\t\t\t\t\t'--wp-block-editor-iframe-zoom-out-container-width':\n\t\t\t\t\t\tisZoomedOut && `${ containerWidth }px`,\n\t\t\t\t\t'--wp-block-editor-iframe-zoom-out-prev-container-width':\n\t\t\t\t\t\tisZoomedOut && `${ prevContainerWidthRef.current }px`,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ iframe }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction IframeIfReady( props, ref ) {\n\tconst isInitialised = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().__internalIsInitialized,\n\t\t[]\n\t);\n\n\t// We shouldn't render the iframe until the editor settings are initialised.\n\t// The initial settings are needed to get the styles for the srcDoc, which\n\t// cannot be changed after the iframe is mounted. srcDoc is used to to set\n\t// the initial iframe HTML, which is required to avoid a flash of unstyled\n\t// content.\n\tif ( ! isInitialised ) {\n\t\treturn null;\n\t}\n\n\treturn <Iframe { ...props } forwardedRef={ ref } />;\n}\n\nexport default forwardRef( IframeIfReady );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_i18n","_compose","_components","_data","_blockSelectionClearer","_writingFlow","_getCompatibilityStyles","_store","_jsxRuntime","bubbleEvent","event","Constructor","frame","init","key","contentDocument","defaultView","MouseEvent","rect","getBoundingClientRect","clientX","left","clientY","top","newEvent","type","defaultPrevented","preventDefault","cancelled","dispatchEvent","useBubbleEvents","iframeDocument","useRefEffect","frameElement","html","documentElement","eventTypes","handlers","name","prototype","Object","getPrototypeOf","constructorName","constructor","window","addEventListener","removeEventListener","Iframe","contentRef","children","tabIndex","scale","frameSize","readonly","forwardedRef","ref","title","__","props","resolvedAssets","isPreviewMode","useSelect","select","getSettings","blockEditorStore","settings","__unstableResolvedAssets","__unstableIsPreviewMode","styles","scripts","setIframeDocument","useState","initialContainerWidth","useRef","bodyClasses","setBodyClasses","clearerRef","useBlockSelectionClearer","before","writingFlowRef","after","useWritingFlow","contentResizeListener","height","contentHeight","useResizeObserver","containerResizeListener","width","containerWidth","setRef","node","_load","iFrameDocument","preventFileDropDefault","onLoad","ownerDocument","classList","add","Array","from","body","filter","startsWith","dir","compatStyle","getCompatibilityStyles","getElementById","id","head","appendChild","cloneNode","console","warn","iframeWindowInnerHeight","setIframeWindowInnerHeight","iframeResizeRef","nodeWindow","innerHeight","onResize","windowInnerWidth","setWindowInnerWidth","windowResizeRef","innerWidth","isZoomedOut","useEffect","current","disabledRef","useDisabled","isDisabled","bodyRef","useMergeRefs","src","cleanup","useMemo","_src","URL","createObjectURL","Blob","revokeObjectURL","zoomOutAnimationClassnameRef","handleZoomOutAnimationClassname","clearTimeout","setTimeout","remove","maxWidth","style","setProperty","Math","min","parseInt","max","removeProperty","shouldRenderFocusCaptureElements","iframe","jsxs","Fragment","jsx","border","onKeyDown","currentTarget","target","stopPropagation","nativeEvent","KeyboardEvent","createPortal","className","clsx","__experimentalStyleProvider","document","IframeIfReady","isInitialised","__internalIsInitialized","_default","exports","default","forwardRef"],"sources":["@wordpress/block-editor/src/components/iframe/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tcreatePortal,\n\tforwardRef,\n\tuseMemo,\n\tuseEffect,\n\tuseRef,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseResizeObserver,\n\tuseMergeRefs,\n\tuseRefEffect,\n\tuseDisabled,\n} from '@wordpress/compose';\nimport { __experimentalStyleProvider as StyleProvider } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useWritingFlow } from '../writing-flow';\nimport { getCompatibilityStyles } from './get-compatibility-styles';\nimport { store as blockEditorStore } from '../../store';\n\nfunction bubbleEvent( event, Constructor, frame ) {\n\tconst init = {};\n\n\tfor ( const key in event ) {\n\t\tinit[ key ] = event[ key ];\n\t}\n\n\t// Check if the event is a MouseEvent generated within the iframe.\n\t// If so, adjust the coordinates to be relative to the position of\n\t// the iframe. This ensures that components such as Draggable\n\t// receive coordinates relative to the window, instead of relative\n\t// to the iframe. Without this, the Draggable event handler would\n\t// result in components \"jumping\" position as soon as the user\n\t// drags over the iframe.\n\tif ( event instanceof frame.contentDocument.defaultView.MouseEvent ) {\n\t\tconst rect = frame.getBoundingClientRect();\n\t\tinit.clientX += rect.left;\n\t\tinit.clientY += rect.top;\n\t}\n\n\tconst newEvent = new Constructor( event.type, init );\n\tif ( init.defaultPrevented ) {\n\t\tnewEvent.preventDefault();\n\t}\n\tconst cancelled = ! frame.dispatchEvent( newEvent );\n\n\tif ( cancelled ) {\n\t\tevent.preventDefault();\n\t}\n}\n\n/**\n * Bubbles some event types (keydown, keypress, and dragover) to parent document\n * document to ensure that the keyboard shortcuts and drag and drop work.\n *\n * Ideally, we should remove event bubbling in the future. Keyboard shortcuts\n * should be context dependent, e.g. actions on blocks like Cmd+A should not\n * work globally outside the block editor.\n *\n * @param {Document} iframeDocument Document to attach listeners to.\n */\nfunction useBubbleEvents( iframeDocument ) {\n\treturn useRefEffect( () => {\n\t\tconst { defaultView } = iframeDocument;\n\t\tif ( ! defaultView ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { frameElement } = defaultView;\n\t\tconst html = iframeDocument.documentElement;\n\t\tconst eventTypes = [ 'dragover', 'mousemove' ];\n\t\tconst handlers = {};\n\t\tfor ( const name of eventTypes ) {\n\t\t\thandlers[ name ] = ( event ) => {\n\t\t\t\tconst prototype = Object.getPrototypeOf( event );\n\t\t\t\tconst constructorName = prototype.constructor.name;\n\t\t\t\tconst Constructor = window[ constructorName ];\n\t\t\t\tbubbleEvent( event, Constructor, frameElement );\n\t\t\t};\n\t\t\thtml.addEventListener( name, handlers[ name ] );\n\t\t}\n\n\t\treturn () => {\n\t\t\tfor ( const name of eventTypes ) {\n\t\t\t\thtml.removeEventListener( name, handlers[ name ] );\n\t\t\t}\n\t\t};\n\t} );\n}\n\nfunction Iframe( {\n\tcontentRef,\n\tchildren,\n\ttabIndex = 0,\n\tscale = 1,\n\tframeSize = 0,\n\treadonly,\n\tforwardedRef: ref,\n\ttitle = __( 'Editor canvas' ),\n\t...props\n} ) {\n\tconst { resolvedAssets, isPreviewMode } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst settings = getSettings();\n\t\treturn {\n\t\t\tresolvedAssets: settings.__unstableResolvedAssets,\n\t\t\tisPreviewMode: settings.__unstableIsPreviewMode,\n\t\t};\n\t}, [] );\n\tconst { styles = '', scripts = '' } = resolvedAssets;\n\tconst [ iframeDocument, setIframeDocument ] = useState();\n\tconst initialContainerWidth = useRef();\n\tconst [ bodyClasses, setBodyClasses ] = useState( [] );\n\tconst clearerRef = useBlockSelectionClearer();\n\tconst [ before, writingFlowRef, after ] = useWritingFlow();\n\tconst [ contentResizeListener, { height: contentHeight } ] =\n\t\tuseResizeObserver();\n\tconst [ containerResizeListener, { width: containerWidth } ] =\n\t\tuseResizeObserver();\n\n\tconst setRef = useRefEffect( ( node ) => {\n\t\tnode._load = () => {\n\t\t\tsetIframeDocument( node.contentDocument );\n\t\t};\n\t\tlet iFrameDocument;\n\t\t// Prevent the default browser action for files dropped outside of dropzones.\n\t\tfunction preventFileDropDefault( event ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tfunction onLoad() {\n\t\t\tconst { contentDocument, ownerDocument } = node;\n\t\t\tconst { documentElement } = contentDocument;\n\t\t\tiFrameDocument = contentDocument;\n\n\t\t\tdocumentElement.classList.add( 'block-editor-iframe__html' );\n\n\t\t\tclearerRef( documentElement );\n\n\t\t\t// Ideally ALL classes that are added through get_body_class should\n\t\t\t// be added in the editor too, which we'll somehow have to get from\n\t\t\t// the server in the future (which will run the PHP filters).\n\t\t\tsetBodyClasses(\n\t\t\t\tArray.from( ownerDocument.body.classList ).filter(\n\t\t\t\t\t( name ) =>\n\t\t\t\t\t\tname.startsWith( 'admin-color-' ) ||\n\t\t\t\t\t\tname.startsWith( 'post-type-' ) ||\n\t\t\t\t\t\tname === 'wp-embed-responsive'\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tcontentDocument.dir = ownerDocument.dir;\n\n\t\t\tfor ( const compatStyle of getCompatibilityStyles() ) {\n\t\t\t\tif ( contentDocument.getElementById( compatStyle.id ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcontentDocument.head.appendChild(\n\t\t\t\t\tcompatStyle.cloneNode( true )\n\t\t\t\t);\n\n\t\t\t\tif ( ! isPreviewMode ) {\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`${ compatStyle.id } was added to the iframe incorrectly. Please use block.json or enqueue_block_assets to add styles to the iframe.`,\n\t\t\t\t\t\tcompatStyle\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tiFrameDocument.addEventListener(\n\t\t\t\t'dragover',\n\t\t\t\tpreventFileDropDefault,\n\t\t\t\tfalse\n\t\t\t);\n\t\t\tiFrameDocument.addEventListener(\n\t\t\t\t'drop',\n\t\t\t\tpreventFileDropDefault,\n\t\t\t\tfalse\n\t\t\t);\n\t\t}\n\n\t\tnode.addEventListener( 'load', onLoad );\n\n\t\treturn () => {\n\t\t\tdelete node._load;\n\t\t\tnode.removeEventListener( 'load', onLoad );\n\t\t\tiFrameDocument?.removeEventListener(\n\t\t\t\t'dragover',\n\t\t\t\tpreventFileDropDefault\n\t\t\t);\n\t\t\tiFrameDocument?.removeEventListener(\n\t\t\t\t'drop',\n\t\t\t\tpreventFileDropDefault\n\t\t\t);\n\t\t};\n\t}, [] );\n\n\tconst [ iframeWindowInnerHeight, setIframeWindowInnerHeight ] = useState();\n\n\tconst iframeResizeRef = useRefEffect( ( node ) => {\n\t\tconst nodeWindow = node.ownerDocument.defaultView;\n\n\t\tsetIframeWindowInnerHeight( nodeWindow.innerHeight );\n\t\tconst onResize = () => {\n\t\t\tsetIframeWindowInnerHeight( nodeWindow.innerHeight );\n\t\t};\n\t\tnodeWindow.addEventListener( 'resize', onResize );\n\t\treturn () => {\n\t\t\tnodeWindow.removeEventListener( 'resize', onResize );\n\t\t};\n\t}, [] );\n\n\tconst [ windowInnerWidth, setWindowInnerWidth ] = useState();\n\n\tconst windowResizeRef = useRefEffect( ( node ) => {\n\t\tconst nodeWindow = node.ownerDocument.defaultView;\n\n\t\tsetWindowInnerWidth( nodeWindow.innerWidth );\n\t\tconst onResize = () => {\n\t\t\tsetWindowInnerWidth( nodeWindow.innerWidth );\n\t\t};\n\t\tnodeWindow.addEventListener( 'resize', onResize );\n\t\treturn () => {\n\t\t\tnodeWindow.removeEventListener( 'resize', onResize );\n\t\t};\n\t}, [] );\n\n\tconst isZoomedOut = scale !== 1;\n\n\tuseEffect( () => {\n\t\tif ( ! isZoomedOut ) {\n\t\t\tinitialContainerWidth.current = containerWidth;\n\t\t}\n\t}, [ containerWidth, isZoomedOut ] );\n\n\tconst disabledRef = useDisabled( { isDisabled: ! readonly } );\n\tconst bodyRef = useMergeRefs( [\n\t\tuseBubbleEvents( iframeDocument ),\n\t\tcontentRef,\n\t\tclearerRef,\n\t\twritingFlowRef,\n\t\tdisabledRef,\n\t\t// Avoid resize listeners when not needed, these will trigger\n\t\t// unnecessary re-renders when animating the iframe width, or when\n\t\t// expanding preview iframes.\n\t\tisZoomedOut ? iframeResizeRef : null,\n\t] );\n\n\t// Correct doctype is required to enable rendering in standards\n\t// mode. Also preload the styles to avoid a flash of unstyled\n\t// content.\n\tconst html = `<!doctype html>\n<html>\n\t<head>\n\t\t<meta charset=\"utf-8\">\n\t\t<script>window.frameElement._load()</script>\n\t\t<style>\n\t\t\thtml{\n\t\t\t\theight: auto !important;\n\t\t\t\tmin-height: 100%;\n\t\t\t}\n\t\t\t/* Lowest specificity to not override global styles */\n\t\t\t:where(body) {\n\t\t\t\tmargin: 0;\n\t\t\t\t/* Default background color in case zoom out mode background\n\t\t\t\tcolors the html element */\n\t\t\t\tbackground-color: white;\n\t\t\t}\n\t\t</style>\n\t\t${ styles }\n\t\t${ scripts }\n\t</head>\n\t<body>\n\t\t<script>document.currentScript.parentElement.remove()</script>\n\t</body>\n</html>`;\n\n\tconst [ src, cleanup ] = useMemo( () => {\n\t\tconst _src = URL.createObjectURL(\n\t\t\tnew window.Blob( [ html ], { type: 'text/html' } )\n\t\t);\n\t\treturn [ _src, () => URL.revokeObjectURL( _src ) ];\n\t}, [ html ] );\n\n\tuseEffect( () => cleanup, [ cleanup ] );\n\n\tconst zoomOutAnimationClassnameRef = useRef( null );\n\tconst handleZoomOutAnimationClassname = () => {\n\t\tclearTimeout( zoomOutAnimationClassnameRef.current );\n\n\t\tiframeDocument.documentElement.classList.add( 'zoom-out-animation' );\n\n\t\tzoomOutAnimationClassnameRef.current = setTimeout( () => {\n\t\t\tiframeDocument.documentElement.classList.remove(\n\t\t\t\t'zoom-out-animation'\n\t\t\t);\n\t\t}, 400 ); // 400ms should match the animation speed used in components/iframe/content.scss\n\t};\n\n\t// Toggle zoom out CSS Classes only when zoom out mode changes. We could add these into the useEffect\n\t// that controls settings the CSS variables, but then we would need to do more work to ensure we're\n\t// only toggling these when the zoom out mode changes, as that useEffect is also triggered by a large\n\t// number of dependencies.\n\tuseEffect( () => {\n\t\tif ( ! iframeDocument || ! isZoomedOut ) {\n\t\t\treturn;\n\t\t}\n\n\t\thandleZoomOutAnimationClassname();\n\t\tiframeDocument.documentElement.classList.add( 'is-zoomed-out' );\n\n\t\treturn () => {\n\t\t\thandleZoomOutAnimationClassname();\n\t\t\tiframeDocument.documentElement.classList.remove( 'is-zoomed-out' );\n\t\t};\n\t}, [ iframeDocument, isZoomedOut ] );\n\n\t// Calculate the scaling and CSS variables for the zoom out canvas\n\tuseEffect( () => {\n\t\tif ( ! iframeDocument || ! isZoomedOut ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst maxWidth = 750;\n\t\t// Note: When we initialize the zoom out when the canvas is smaller (sidebars open),\n\t\t// initialContainerWidth will be smaller than the full page, and reflow will happen\n\t\t// when the canvas area becomes larger due to sidebars closing. This is a known but\n\t\t// minor divergence for now.\n\n\t\t// This scaling calculation has to happen within the JS because CSS calc() can\n\t\t// only divide and multiply by a unitless value. I.e. calc( 100px / 2 ) is valid\n\t\t// but calc( 100px / 2px ) is not.\n\t\tiframeDocument.documentElement.style.setProperty(\n\t\t\t'--wp-block-editor-iframe-zoom-out-scale',\n\t\t\tscale === 'default'\n\t\t\t\t? ( Math.min( containerWidth, maxWidth ) -\n\t\t\t\t\t\tparseInt( frameSize ) * 2 ) /\n\t\t\t\t\t\tMath.max(\n\t\t\t\t\t\t\tinitialContainerWidth.current,\n\t\t\t\t\t\t\tcontainerWidth\n\t\t\t\t\t\t)\n\t\t\t\t: scale\n\t\t);\n\n\t\t// frameSize has to be a px value for the scaling and frame size to be computed correctly.\n\t\tiframeDocument.documentElement.style.setProperty(\n\t\t\t'--wp-block-editor-iframe-zoom-out-frame-size',\n\t\t\ttypeof frameSize === 'number' ? `${ frameSize }px` : frameSize\n\t\t);\n\t\tiframeDocument.documentElement.style.setProperty(\n\t\t\t'--wp-block-editor-iframe-zoom-out-content-height',\n\t\t\t`${ contentHeight }px`\n\t\t);\n\t\tiframeDocument.documentElement.style.setProperty(\n\t\t\t'--wp-block-editor-iframe-zoom-out-inner-height',\n\t\t\t`${ iframeWindowInnerHeight }px`\n\t\t);\n\t\tiframeDocument.documentElement.style.setProperty(\n\t\t\t'--wp-block-editor-iframe-zoom-out-container-width',\n\t\t\t`${ containerWidth }px`\n\t\t);\n\t\tiframeDocument.documentElement.style.setProperty(\n\t\t\t'--wp-block-editor-iframe-zoom-out-outer-container-width',\n\t\t\t`${ Math.max( initialContainerWidth.current, containerWidth ) }px`\n\t\t);\n\n\t\t// iframeDocument.documentElement.style.setProperty(\n\t\t// \t'--wp-block-editor-iframe-zoom-out-outer-container-width',\n\t\t// \t`${ Math.max( initialContainerWidth.current, containerWidth ) }px`\n\t\t// );\n\n\t\treturn () => {\n\t\t\tiframeDocument.documentElement.style.removeProperty(\n\t\t\t\t'--wp-block-editor-iframe-zoom-out-scale'\n\t\t\t);\n\t\t\tiframeDocument.documentElement.style.removeProperty(\n\t\t\t\t'--wp-block-editor-iframe-zoom-out-frame-size'\n\t\t\t);\n\t\t\tiframeDocument.documentElement.style.removeProperty(\n\t\t\t\t'--wp-block-editor-iframe-zoom-out-content-height'\n\t\t\t);\n\t\t\tiframeDocument.documentElement.style.removeProperty(\n\t\t\t\t'--wp-block-editor-iframe-zoom-out-inner-height'\n\t\t\t);\n\t\t\tiframeDocument.documentElement.style.removeProperty(\n\t\t\t\t'--wp-block-editor-iframe-zoom-out-container-width'\n\t\t\t);\n\t\t\tiframeDocument.documentElement.style.removeProperty(\n\t\t\t\t'--wp-block-editor-iframe-zoom-out-outer-container-width'\n\t\t\t);\n\t\t};\n\t}, [\n\t\tscale,\n\t\tframeSize,\n\t\tiframeDocument,\n\t\tiframeWindowInnerHeight,\n\t\tcontentHeight,\n\t\tcontainerWidth,\n\t\twindowInnerWidth,\n\t\tisZoomedOut,\n\t] );\n\n\t// Make sure to not render the before and after focusable div elements in view\n\t// mode. They're only needed to capture focus in edit mode.\n\tconst shouldRenderFocusCaptureElements = tabIndex >= 0 && ! isPreviewMode;\n\n\tconst iframe = (\n\t\t<>\n\t\t\t{ shouldRenderFocusCaptureElements && before }\n\t\t\t{ /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */ }\n\t\t\t<iframe\n\t\t\t\t{ ...props }\n\t\t\t\tstyle={ {\n\t\t\t\t\t...props.style,\n\t\t\t\t\theight: props.style?.height,\n\t\t\t\t\tborder: 0,\n\t\t\t\t} }\n\t\t\t\tref={ useMergeRefs( [ ref, setRef ] ) }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t// Correct doctype is required to enable rendering in standards\n\t\t\t\t// mode. Also preload the styles to avoid a flash of unstyled\n\t\t\t\t// content.\n\t\t\t\tsrc={ src }\n\t\t\t\ttitle={ title }\n\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\tif ( props.onKeyDown ) {\n\t\t\t\t\t\tprops.onKeyDown( event );\n\t\t\t\t\t}\n\t\t\t\t\t// If the event originates from inside the iframe, it means\n\t\t\t\t\t// it bubbled through the portal, but only with React\n\t\t\t\t\t// events. We need to to bubble native events as well,\n\t\t\t\t\t// though by doing so we also trigger another React event,\n\t\t\t\t\t// so we need to stop the propagation of this event to avoid\n\t\t\t\t\t// duplication.\n\t\t\t\t\tif (\n\t\t\t\t\t\tevent.currentTarget.ownerDocument !==\n\t\t\t\t\t\tevent.target.ownerDocument\n\t\t\t\t\t) {\n\t\t\t\t\t\t// We should only stop propagation of the React event,\n\t\t\t\t\t\t// the native event should further bubble inside the\n\t\t\t\t\t\t// iframe to the document and window.\n\t\t\t\t\t\t// Alternatively, we could consider redispatching the\n\t\t\t\t\t\t// native event in the iframe.\n\t\t\t\t\t\tconst { stopPropagation } = event.nativeEvent;\n\t\t\t\t\t\tevent.nativeEvent.stopPropagation = () => {};\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\tevent.nativeEvent.stopPropagation = stopPropagation;\n\t\t\t\t\t\tbubbleEvent(\n\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\twindow.KeyboardEvent,\n\t\t\t\t\t\t\tevent.currentTarget\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ iframeDocument &&\n\t\t\t\t\tcreatePortal(\n\t\t\t\t\t\t// We want to prevent React events from bubbling throught the iframe\n\t\t\t\t\t\t// we bubble these manually.\n\t\t\t\t\t\t/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n\t\t\t\t\t\t<body\n\t\t\t\t\t\t\tref={ bodyRef }\n\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t'block-editor-iframe__body',\n\t\t\t\t\t\t\t\t'editor-styles-wrapper',\n\t\t\t\t\t\t\t\t...bodyClasses\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ contentResizeListener }\n\t\t\t\t\t\t\t<StyleProvider document={ iframeDocument }>\n\t\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t</StyleProvider>\n\t\t\t\t\t\t</body>,\n\t\t\t\t\t\tiframeDocument.documentElement\n\t\t\t\t\t) }\n\t\t\t</iframe>\n\t\t\t{ shouldRenderFocusCaptureElements && after }\n\t\t</>\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-iframe__container\" ref={ windowResizeRef }>\n\t\t\t{ containerResizeListener }\n\t\t\t<div\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'block-editor-iframe__scale-container',\n\t\t\t\t\tisZoomedOut && 'is-zoomed-out'\n\t\t\t\t) }\n\t\t\t\tstyle={ {\n\t\t\t\t\t'--wp-block-editor-iframe-zoom-out-outer-container-width':\n\t\t\t\t\t\tisZoomedOut &&\n\t\t\t\t\t\t`${ Math.max(\n\t\t\t\t\t\t\tinitialContainerWidth.current,\n\t\t\t\t\t\t\tcontainerWidth\n\t\t\t\t\t\t) }px`,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ iframe }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction IframeIfReady( props, ref ) {\n\tconst isInitialised = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().__internalIsInitialized,\n\t\t[]\n\t);\n\n\t// We shouldn't render the iframe until the editor settings are initialised.\n\t// The initial settings are needed to get the styles for the srcDoc, which\n\t// cannot be changed after the iframe is mounted. srcDoc is used to to set\n\t// the initial iframe HTML, which is required to avoid a flash of unstyled\n\t// content.\n\tif ( ! isInitialised ) {\n\t\treturn null;\n\t}\n\n\treturn <Iframe { ...props } forwardedRef={ ref } />;\n}\n\nexport default forwardRef( IframeIfReady );\n"],"mappings":"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","ignoreList":[]}
@@ -77,7 +77,7 @@ function useSaveImage({
77
77
  url: response.source_url
78
78
  });
79
79
  }).catch(error => {
80
- createErrorNotice((0, _i18n.sprintf)( /* translators: 1. Error message */
80
+ createErrorNotice((0, _i18n.sprintf)(/* translators: 1. Error message */
81
81
  (0, _i18n.__)('Could not edit image. %s'), (0, _dom.__unstableStripHTML)(error.message)), {
82
82
  id: 'image-editing-error',
83
83
  type: 'snackbar'
@@ -1 +1 @@
1
- {"version":3,"names":["_apiFetch","_interopRequireDefault","require","_data","_element","_i18n","_notices","_dom","useSaveImage","crop","rotation","url","id","onSaveImage","onFinishEditing","createErrorNotice","useDispatch","noticesStore","isInProgress","setIsInProgress","useState","cancel","useCallback","apply","modifiers","push","type","args","angle","width","height","left","x","top","y","length","apiFetch","path","method","data","src","then","response","source_url","catch","error","sprintf","__","stripHTML","message","finally","useMemo"],"sources":["@wordpress/block-editor/src/components/image-editor/use-save-image.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\n// Disable Reason: Needs to be refactored.\n// eslint-disable-next-line no-restricted-imports\nimport apiFetch from '@wordpress/api-fetch';\nimport { useDispatch } from '@wordpress/data';\nimport { useCallback, useMemo, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\nexport default function useSaveImage( {\n\tcrop,\n\trotation,\n\turl,\n\tid,\n\tonSaveImage,\n\tonFinishEditing,\n} ) {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst [ isInProgress, setIsInProgress ] = useState( false );\n\n\tconst cancel = useCallback( () => {\n\t\tsetIsInProgress( false );\n\t\tonFinishEditing();\n\t}, [ onFinishEditing ] );\n\n\tconst apply = useCallback( () => {\n\t\tsetIsInProgress( true );\n\n\t\tconst modifiers = [];\n\n\t\tif ( rotation > 0 ) {\n\t\t\tmodifiers.push( {\n\t\t\t\ttype: 'rotate',\n\t\t\t\targs: {\n\t\t\t\t\tangle: rotation,\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\t// The crop script may return some very small, sub-pixel values when the image was not cropped.\n\t\t// Crop only when the new size has changed by more than 0.1%.\n\t\tif ( crop.width < 99.9 || crop.height < 99.9 ) {\n\t\t\tmodifiers.push( {\n\t\t\t\ttype: 'crop',\n\t\t\t\targs: {\n\t\t\t\t\tleft: crop.x,\n\t\t\t\t\ttop: crop.y,\n\t\t\t\t\twidth: crop.width,\n\t\t\t\t\theight: crop.height,\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tif ( modifiers.length === 0 ) {\n\t\t\t// No changes to apply.\n\t\t\tsetIsInProgress( false );\n\t\t\tonFinishEditing();\n\t\t\treturn;\n\t\t}\n\n\t\tapiFetch( {\n\t\t\tpath: `/wp/v2/media/${ id }/edit`,\n\t\t\tmethod: 'POST',\n\t\t\tdata: { src: url, modifiers },\n\t\t} )\n\t\t\t.then( ( response ) => {\n\t\t\t\tonSaveImage( {\n\t\t\t\t\tid: response.id,\n\t\t\t\t\turl: response.source_url,\n\t\t\t\t} );\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tcreateErrorNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: 1. Error message */\n\t\t\t\t\t\t__( 'Could not edit image. %s' ),\n\t\t\t\t\t\tstripHTML( error.message )\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'image-editing-error',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.finally( () => {\n\t\t\t\tsetIsInProgress( false );\n\t\t\t\tonFinishEditing();\n\t\t\t} );\n\t}, [\n\t\tcrop,\n\t\trotation,\n\t\tid,\n\t\turl,\n\t\tonSaveImage,\n\t\tcreateErrorNotice,\n\t\tonFinishEditing,\n\t] );\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tisInProgress,\n\t\t\tapply,\n\t\t\tcancel,\n\t\t} ),\n\t\t[ isInProgress, apply, cancel ]\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_apiFetch","_interopRequireDefault","require","_data","_element","_i18n","_notices","_dom","useSaveImage","crop","rotation","url","id","onSaveImage","onFinishEditing","createErrorNotice","useDispatch","noticesStore","isInProgress","setIsInProgress","useState","cancel","useCallback","apply","modifiers","push","type","args","angle","width","height","left","x","top","y","length","apiFetch","path","method","data","src","then","response","source_url","catch","error","sprintf","__","stripHTML","message","finally","useMemo"],"sources":["@wordpress/block-editor/src/components/image-editor/use-save-image.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\n// Disable Reason: Needs to be refactored.\n// eslint-disable-next-line no-restricted-imports\nimport apiFetch from '@wordpress/api-fetch';\nimport { useDispatch } from '@wordpress/data';\nimport { useCallback, useMemo, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\nexport default function useSaveImage( {\n\tcrop,\n\trotation,\n\turl,\n\tid,\n\tonSaveImage,\n\tonFinishEditing,\n} ) {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst [ isInProgress, setIsInProgress ] = useState( false );\n\n\tconst cancel = useCallback( () => {\n\t\tsetIsInProgress( false );\n\t\tonFinishEditing();\n\t}, [ onFinishEditing ] );\n\n\tconst apply = useCallback( () => {\n\t\tsetIsInProgress( true );\n\n\t\tconst modifiers = [];\n\n\t\tif ( rotation > 0 ) {\n\t\t\tmodifiers.push( {\n\t\t\t\ttype: 'rotate',\n\t\t\t\targs: {\n\t\t\t\t\tangle: rotation,\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\t// The crop script may return some very small, sub-pixel values when the image was not cropped.\n\t\t// Crop only when the new size has changed by more than 0.1%.\n\t\tif ( crop.width < 99.9 || crop.height < 99.9 ) {\n\t\t\tmodifiers.push( {\n\t\t\t\ttype: 'crop',\n\t\t\t\targs: {\n\t\t\t\t\tleft: crop.x,\n\t\t\t\t\ttop: crop.y,\n\t\t\t\t\twidth: crop.width,\n\t\t\t\t\theight: crop.height,\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tif ( modifiers.length === 0 ) {\n\t\t\t// No changes to apply.\n\t\t\tsetIsInProgress( false );\n\t\t\tonFinishEditing();\n\t\t\treturn;\n\t\t}\n\n\t\tapiFetch( {\n\t\t\tpath: `/wp/v2/media/${ id }/edit`,\n\t\t\tmethod: 'POST',\n\t\t\tdata: { src: url, modifiers },\n\t\t} )\n\t\t\t.then( ( response ) => {\n\t\t\t\tonSaveImage( {\n\t\t\t\t\tid: response.id,\n\t\t\t\t\turl: response.source_url,\n\t\t\t\t} );\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tcreateErrorNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: 1. Error message */\n\t\t\t\t\t\t__( 'Could not edit image. %s' ),\n\t\t\t\t\t\tstripHTML( error.message )\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'image-editing-error',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.finally( () => {\n\t\t\t\tsetIsInProgress( false );\n\t\t\t\tonFinishEditing();\n\t\t\t} );\n\t}, [\n\t\tcrop,\n\t\trotation,\n\t\tid,\n\t\turl,\n\t\tonSaveImage,\n\t\tcreateErrorNotice,\n\t\tonFinishEditing,\n\t] );\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tisInProgress,\n\t\t\tapply,\n\t\t\tcancel,\n\t\t} ),\n\t\t[ isInProgress, apply, cancel ]\n\t);\n}\n"],"mappings":";;;;;;;AAKA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,IAAA,GAAAL,OAAA;AAVA;AACA;AACA;AACA;AACA;;AAQe,SAASM,YAAYA,CAAE;EACrCC,IAAI;EACJC,QAAQ;EACRC,GAAG;EACHC,EAAE;EACFC,WAAW;EACXC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC;EAAkB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,cAAa,CAAC;EACzD,MAAM,CAAEC,YAAY,EAAEC,eAAe,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EAE3D,MAAMC,MAAM,GAAG,IAAAC,oBAAW,EAAE,MAAM;IACjCH,eAAe,CAAE,KAAM,CAAC;IACxBL,eAAe,CAAC,CAAC;EAClB,CAAC,EAAE,CAAEA,eAAe,CAAG,CAAC;EAExB,MAAMS,KAAK,GAAG,IAAAD,oBAAW,EAAE,MAAM;IAChCH,eAAe,CAAE,IAAK,CAAC;IAEvB,MAAMK,SAAS,GAAG,EAAE;IAEpB,IAAKd,QAAQ,GAAG,CAAC,EAAG;MACnBc,SAAS,CAACC,IAAI,CAAE;QACfC,IAAI,EAAE,QAAQ;QACdC,IAAI,EAAE;UACLC,KAAK,EAAElB;QACR;MACD,CAAE,CAAC;IACJ;;IAEA;IACA;IACA,IAAKD,IAAI,CAACoB,KAAK,GAAG,IAAI,IAAIpB,IAAI,CAACqB,MAAM,GAAG,IAAI,EAAG;MAC9CN,SAAS,CAACC,IAAI,CAAE;QACfC,IAAI,EAAE,MAAM;QACZC,IAAI,EAAE;UACLI,IAAI,EAAEtB,IAAI,CAACuB,CAAC;UACZC,GAAG,EAAExB,IAAI,CAACyB,CAAC;UACXL,KAAK,EAAEpB,IAAI,CAACoB,KAAK;UACjBC,MAAM,EAAErB,IAAI,CAACqB;QACd;MACD,CAAE,CAAC;IACJ;IAEA,IAAKN,SAAS,CAACW,MAAM,KAAK,CAAC,EAAG;MAC7B;MACAhB,eAAe,CAAE,KAAM,CAAC;MACxBL,eAAe,CAAC,CAAC;MACjB;IACD;IAEA,IAAAsB,iBAAQ,EAAE;MACTC,IAAI,EAAE,gBAAiBzB,EAAE,OAAQ;MACjC0B,MAAM,EAAE,MAAM;MACdC,IAAI,EAAE;QAAEC,GAAG,EAAE7B,GAAG;QAAEa;MAAU;IAC7B,CAAE,CAAC,CACDiB,IAAI,CAAIC,QAAQ,IAAM;MACtB7B,WAAW,CAAE;QACZD,EAAE,EAAE8B,QAAQ,CAAC9B,EAAE;QACfD,GAAG,EAAE+B,QAAQ,CAACC;MACf,CAAE,CAAC;IACJ,CAAE,CAAC,CACFC,KAAK,CAAIC,KAAK,IAAM;MACpB9B,iBAAiB,CAChB,IAAA+B,aAAO,EACN;MACA,IAAAC,QAAE,EAAE,0BAA2B,CAAC,EAChC,IAAAC,wBAAS,EAAEH,KAAK,CAACI,OAAQ,CAC1B,CAAC,EACD;QACCrC,EAAE,EAAE,qBAAqB;QACzBc,IAAI,EAAE;MACP,CACD,CAAC;IACF,CAAE,CAAC,CACFwB,OAAO,CAAE,MAAM;MACf/B,eAAe,CAAE,KAAM,CAAC;MACxBL,eAAe,CAAC,CAAC;IAClB,CAAE,CAAC;EACL,CAAC,EAAE,CACFL,IAAI,EACJC,QAAQ,EACRE,EAAE,EACFD,GAAG,EACHE,WAAW,EACXE,iBAAiB,EACjBD,eAAe,CACd,CAAC;EAEH,OAAO,IAAAqC,gBAAO,EACb,OAAQ;IACPjC,YAAY;IACZK,KAAK;IACLF;EACD,CAAC,CAAE,EACH,CAAEH,YAAY,EAAEK,KAAK,EAAEF,MAAM,CAC9B,CAAC;AACF","ignoreList":[]}
@@ -172,14 +172,11 @@ function useInnerBlocksProps(props = {}, options = {}) {
172
172
  const selected = (0, _data.useSelect)(select => {
173
173
  const {
174
174
  getBlockName,
175
- isBlockSelected,
176
- hasSelectedInnerBlock,
177
175
  __unstableGetEditorMode,
178
176
  getTemplateLock,
179
177
  getBlockRootClientId,
180
178
  getBlockEditingMode,
181
179
  getBlockSettings,
182
- isDragging,
183
180
  getSectionRootClientId
184
181
  } = (0, _lockUnlock.unlock)(select(_store.store));
185
182
  let _isDropZoneDisabled;
@@ -193,7 +190,6 @@ function useInnerBlocksProps(props = {}, options = {}) {
193
190
  getBlockType
194
191
  } = select(_blocks.store);
195
192
  const blockName = getBlockName(clientId);
196
- const enableClickThrough = __unstableGetEditorMode() === 'navigation';
197
193
  const blockEditingMode = getBlockEditingMode(clientId);
198
194
  const parentClientId = getBlockRootClientId(clientId);
199
195
  const [defaultLayout] = getBlockSettings(clientId, 'layout');
@@ -207,7 +203,6 @@ function useInnerBlocksProps(props = {}, options = {}) {
207
203
  }
208
204
  return {
209
205
  __experimentalCaptureToolbars: hasBlockSupport(blockName, '__experimentalExposeControlsToChildren', false),
210
- hasOverlay: blockName !== 'core/template' && !isBlockSelected(clientId) && !hasSelectedInnerBlock(clientId, true) && enableClickThrough && !isDragging(),
211
206
  name: blockName,
212
207
  blockType: getBlockType(blockName),
213
208
  parentLock: getTemplateLock(parentClientId),
@@ -218,7 +213,6 @@ function useInnerBlocksProps(props = {}, options = {}) {
218
213
  }, [clientId]);
219
214
  const {
220
215
  __experimentalCaptureToolbars,
221
- hasOverlay,
222
216
  name,
223
217
  blockType,
224
218
  parentLock,
@@ -245,9 +239,7 @@ function useInnerBlocksProps(props = {}, options = {}) {
245
239
  return {
246
240
  ...props,
247
241
  ref,
248
- className: (0, _clsx.default)(props.className, 'block-editor-block-list__layout', __unstableDisableLayoutClassNames ? '' : layoutClassNames, {
249
- 'has-overlay': hasOverlay
250
- }),
242
+ className: (0, _clsx.default)(props.className, 'block-editor-block-list__layout', __unstableDisableLayoutClassNames ? '' : layoutClassNames),
251
243
  children: clientId ? /*#__PURE__*/(0, _jsxRuntime.jsx)(InnerBlocks, {
252
244
  ...innerBlocksProps,
253
245
  clientId: clientId