@wordpress/block-editor 14.8.1-next.cd6172eb0.0 → 14.10.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 (1161) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/LICENSE.md +1 -1
  3. package/README.md +48 -0
  4. package/build/autocompleters/block.js +1 -0
  5. package/build/autocompleters/block.js.map +1 -1
  6. package/build/autocompleters/link.js +1 -0
  7. package/build/autocompleters/link.js.map +1 -1
  8. package/build/components/alignment-control/ui.js +1 -0
  9. package/build/components/alignment-control/ui.js.map +1 -1
  10. package/build/components/audio-player/index.native.js +1 -1
  11. package/build/components/audio-player/index.native.js.map +1 -1
  12. package/build/components/autocomplete/index.js +1 -0
  13. package/build/components/autocomplete/index.js.map +1 -1
  14. package/build/components/background-image-control/index.js +5 -0
  15. package/build/components/background-image-control/index.js.map +1 -1
  16. package/build/components/block-actions/index.js +1 -0
  17. package/build/components/block-actions/index.js.map +1 -1
  18. package/build/components/block-alignment-control/ui.js +1 -0
  19. package/build/components/block-alignment-control/ui.js.map +1 -1
  20. package/build/components/block-alignment-control/ui.native.js +1 -0
  21. package/build/components/block-alignment-control/ui.native.js.map +1 -1
  22. package/build/components/block-alignment-control/use-available-alignments.js +1 -0
  23. package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
  24. package/build/components/block-alignment-matrix-control/index.js +32 -0
  25. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  26. package/build/components/block-breadcrumb/index.js +1 -0
  27. package/build/components/block-breadcrumb/index.js.map +1 -1
  28. package/build/components/block-card/index.js +45 -8
  29. package/build/components/block-card/index.js.map +1 -1
  30. package/build/components/block-compare/index.js +1 -0
  31. package/build/components/block-compare/index.js.map +1 -1
  32. package/build/components/block-controls/fill.js +1 -0
  33. package/build/components/block-controls/fill.js.map +1 -1
  34. package/build/components/block-edit/edit.js +148 -10
  35. package/build/components/block-edit/edit.js.map +1 -1
  36. package/build/components/block-edit/edit.native.js +1 -0
  37. package/build/components/block-edit/edit.native.js.map +1 -1
  38. package/build/components/block-heading-level-dropdown/index.js +1 -0
  39. package/build/components/block-heading-level-dropdown/index.js.map +1 -1
  40. package/build/components/block-heading-level-dropdown/index.native.js +1 -0
  41. package/build/components/block-heading-level-dropdown/index.native.js.map +1 -1
  42. package/build/components/block-inspector/index.js +1 -0
  43. package/build/components/block-inspector/index.js.map +1 -1
  44. package/build/components/block-list/block-invalid-warning.js +1 -0
  45. package/build/components/block-list/block-invalid-warning.js.map +1 -1
  46. package/build/components/block-list/block-list-context.native.js +1 -0
  47. package/build/components/block-list/block-list-context.native.js.map +1 -1
  48. package/build/components/block-list/block.js +1 -0
  49. package/build/components/block-list/block.js.map +1 -1
  50. package/build/components/block-list/block.native.js +1 -0
  51. package/build/components/block-list/block.native.js.map +1 -1
  52. package/build/components/block-list/index.js +2 -2
  53. package/build/components/block-list/index.js.map +1 -1
  54. package/build/components/block-list/index.native.js +1 -0
  55. package/build/components/block-list/index.native.js.map +1 -1
  56. package/build/components/block-list/use-block-props/index.js +4 -5
  57. package/build/components/block-list/use-block-props/index.js.map +1 -1
  58. package/build/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +61 -8
  59. package/build/components/block-list/use-block-props/use-firefox-draggable-compatibility.js.map +1 -1
  60. package/build/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  61. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  62. package/build/components/block-list/use-in-between-inserter.js +1 -0
  63. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  64. package/build/components/block-list/zoom-out-separator.js +20 -3
  65. package/build/components/block-list/zoom-out-separator.js.map +1 -1
  66. package/build/components/block-lock/modal.js +5 -4
  67. package/build/components/block-lock/modal.js.map +1 -1
  68. package/build/components/block-manager/category.js +1 -0
  69. package/build/components/block-manager/category.js.map +1 -1
  70. package/build/components/block-manager/checklist.js +1 -0
  71. package/build/components/block-manager/checklist.js.map +1 -1
  72. package/build/components/block-manager/index.js +1 -0
  73. package/build/components/block-manager/index.js.map +1 -1
  74. package/build/components/block-media-update-progress/index.native.js +1 -0
  75. package/build/components/block-media-update-progress/index.native.js.map +1 -1
  76. package/build/components/block-mover/index.native.js +1 -0
  77. package/build/components/block-mover/index.native.js.map +1 -1
  78. package/build/components/block-mover/mover-description.native.js +1 -0
  79. package/build/components/block-mover/mover-description.native.js.map +1 -1
  80. package/build/components/block-parent-selector/index.js +2 -15
  81. package/build/components/block-parent-selector/index.js.map +1 -1
  82. package/build/components/block-pattern-setup/index.js +1 -0
  83. package/build/components/block-pattern-setup/index.js.map +1 -1
  84. package/build/components/block-pattern-setup/use-patterns-setup.js +1 -0
  85. package/build/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
  86. package/build/components/block-patterns-list/index.js +1 -0
  87. package/build/components/block-patterns-list/index.js.map +1 -1
  88. package/build/components/block-quick-navigation/index.js +1 -0
  89. package/build/components/block-quick-navigation/index.js.map +1 -1
  90. package/build/components/block-rename/rename-control.js +1 -0
  91. package/build/components/block-rename/rename-control.js.map +1 -1
  92. package/build/components/block-settings-menu/block-settings-dropdown.js +6 -8
  93. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  94. package/build/components/block-styles/index.js +1 -0
  95. package/build/components/block-styles/index.js.map +1 -1
  96. package/build/components/block-styles/index.native.js +1 -0
  97. package/build/components/block-styles/index.native.js.map +1 -1
  98. package/build/components/block-styles/menu-items.js +1 -0
  99. package/build/components/block-styles/menu-items.js.map +1 -1
  100. package/build/components/block-styles/preview.native.js +1 -0
  101. package/build/components/block-styles/preview.native.js.map +1 -1
  102. package/build/components/block-styles/utils.js +3 -3
  103. package/build/components/block-styles/utils.js.map +1 -1
  104. package/build/components/block-switcher/block-transformations-menu.js +1 -0
  105. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  106. package/build/components/block-switcher/block-transformations-menu.native.js +1 -0
  107. package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  108. package/build/components/block-switcher/block-variation-transformations.js +1 -0
  109. package/build/components/block-switcher/block-variation-transformations.js.map +1 -1
  110. package/build/components/block-switcher/index.js +1 -0
  111. package/build/components/block-switcher/index.js.map +1 -1
  112. package/build/components/block-switcher/pattern-transformations-menu.js +1 -0
  113. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  114. package/build/components/block-switcher/use-transformed-patterns.js +1 -0
  115. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  116. package/build/components/block-switcher/utils.js +1 -0
  117. package/build/components/block-switcher/utils.js.map +1 -1
  118. package/build/components/block-toolbar/block-toolbar-menu.native.js +1 -0
  119. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  120. package/build/components/block-toolbar/change-design.js +1 -0
  121. package/build/components/block-toolbar/change-design.js.map +1 -1
  122. package/build/components/block-toolbar/index.js +2 -1
  123. package/build/components/block-toolbar/index.js.map +1 -1
  124. package/build/components/block-tools/use-selected-block-tool-props.js +1 -0
  125. package/build/components/block-tools/use-selected-block-tool-props.js.map +1 -1
  126. package/build/components/block-tools/zoom-out-mode-inserters.js +19 -6
  127. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  128. package/build/components/block-types-list/index.js +1 -0
  129. package/build/components/block-types-list/index.js.map +1 -1
  130. package/build/components/block-variation-picker/index.js +1 -0
  131. package/build/components/block-variation-picker/index.js.map +1 -1
  132. package/build/components/block-variation-picker/index.native.js +1 -0
  133. package/build/components/block-variation-picker/index.native.js.map +1 -1
  134. package/build/components/block-variation-transforms/index.js +1 -0
  135. package/build/components/block-variation-transforms/index.js.map +1 -1
  136. package/build/components/block-vertical-alignment-control/ui.js +1 -0
  137. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  138. package/build/components/border-radius-control/index.js +1 -0
  139. package/build/components/border-radius-control/index.js.map +1 -1
  140. package/build/components/border-radius-control/input-controls.js +1 -0
  141. package/build/components/border-radius-control/input-controls.js.map +1 -1
  142. package/build/components/border-radius-control/utils.js +1 -0
  143. package/build/components/border-radius-control/utils.js.map +1 -1
  144. package/build/components/button-block-appender/index.js +1 -5
  145. package/build/components/button-block-appender/index.js.map +1 -1
  146. package/build/components/child-layout-control/index.js +6 -0
  147. package/build/components/child-layout-control/index.js.map +1 -1
  148. package/build/components/colors/utils.js +1 -0
  149. package/build/components/colors/utils.js.map +1 -1
  150. package/build/components/colors/with-colors.js +1 -0
  151. package/build/components/colors/with-colors.js.map +1 -1
  152. package/build/components/colors-gradients/dropdown.js +52 -11
  153. package/build/components/colors-gradients/dropdown.js.map +1 -1
  154. package/build/components/colors-gradients/panel-color-gradient-settings.js +1 -0
  155. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  156. package/build/components/colors-gradients/panel-color-gradient-settings.native.js +1 -0
  157. package/build/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  158. package/build/components/contrast-checker/index.native.js +1 -1
  159. package/build/components/contrast-checker/index.native.js.map +1 -1
  160. package/build/components/convert-to-group-buttons/toolbar.js +1 -0
  161. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  162. package/build/components/date-format-picker/index.js +8 -16
  163. package/build/components/date-format-picker/index.js.map +1 -1
  164. package/build/components/dimensions-tool/scale-tool.js +1 -0
  165. package/build/components/dimensions-tool/scale-tool.js.map +1 -1
  166. package/build/components/duotone/utils.js +1 -0
  167. package/build/components/duotone/utils.js.map +1 -1
  168. package/build/components/editor-styles/index.js +1 -0
  169. package/build/components/editor-styles/index.js.map +1 -1
  170. package/build/components/font-appearance-control/index.js +10 -0
  171. package/build/components/font-appearance-control/index.js.map +1 -1
  172. package/build/components/font-family/index.js +11 -1
  173. package/build/components/font-family/index.js.map +1 -1
  174. package/build/components/font-sizes/with-font-sizes.js +1 -0
  175. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  176. package/build/components/global-styles/border-panel.js +1 -0
  177. package/build/components/global-styles/border-panel.js.map +1 -1
  178. package/build/components/global-styles/color-panel.js +28 -8
  179. package/build/components/global-styles/color-panel.js.map +1 -1
  180. package/build/components/global-styles/color-panel.native.js +1 -0
  181. package/build/components/global-styles/color-panel.native.js.map +1 -1
  182. package/build/components/global-styles/dimensions-panel.js +1 -0
  183. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  184. package/build/components/global-styles/filters-panel.js +3 -2
  185. package/build/components/global-styles/filters-panel.js.map +1 -1
  186. package/build/components/global-styles/get-global-styles-changes.js +1 -0
  187. package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
  188. package/build/components/global-styles/shadow-panel-components.js +1 -0
  189. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  190. package/build/components/global-styles/typography-utils.js +2 -1
  191. package/build/components/global-styles/typography-utils.js.map +1 -1
  192. package/build/components/global-styles/use-global-styles-context.native.js +1 -0
  193. package/build/components/global-styles/use-global-styles-context.native.js.map +1 -1
  194. package/build/components/global-styles/use-global-styles-output.js +2 -1
  195. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  196. package/build/components/global-styles/utils.js +1 -0
  197. package/build/components/global-styles/utils.js.map +1 -1
  198. package/build/components/grid/grid-visualizer.js +10 -0
  199. package/build/components/grid/grid-visualizer.js.map +1 -1
  200. package/build/components/grid/use-grid-layout-sync.js +1 -0
  201. package/build/components/grid/use-grid-layout-sync.js.map +1 -1
  202. package/build/components/grid/utils.js +13 -1
  203. package/build/components/grid/utils.js.map +1 -1
  204. package/build/components/iframe/get-compatibility-styles.js +1 -0
  205. package/build/components/iframe/get-compatibility-styles.js.map +1 -1
  206. package/build/components/iframe/index.js +1 -1
  207. package/build/components/iframe/index.js.map +1 -1
  208. package/build/components/image-editor/aspect-ratio-dropdown.js +1 -0
  209. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  210. package/build/components/index.js +15 -8
  211. package/build/components/index.js.map +1 -1
  212. package/build/components/inner-blocks/use-block-context.js +1 -0
  213. package/build/components/inner-blocks/use-block-context.js.map +1 -1
  214. package/build/components/inner-blocks/use-inner-block-template-sync.js +11 -11
  215. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  216. package/build/components/inserter/block-patterns-explorer/index.js +1 -1
  217. package/build/components/inserter/block-patterns-explorer/index.js.map +1 -1
  218. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +1 -0
  219. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  220. package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -0
  221. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  222. package/build/components/inserter/block-patterns-tab/index.js +1 -1
  223. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  224. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +5 -4
  225. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  226. package/build/components/inserter/block-patterns-tab/patterns-filter.js +2 -2
  227. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  228. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +1 -0
  229. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  230. package/build/components/inserter/block-types-tab.js +2 -1
  231. package/build/components/inserter/block-types-tab.js.map +1 -1
  232. package/build/components/inserter/block-types-tab.native.js +1 -0
  233. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  234. package/build/components/inserter/category-tabs/index.js +2 -2
  235. package/build/components/inserter/category-tabs/index.js.map +1 -1
  236. package/build/components/inserter/hooks/use-block-type-impressions.native.js +1 -0
  237. package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  238. package/build/components/inserter/hooks/use-patterns-state.js +1 -0
  239. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  240. package/build/components/inserter/index.js +7 -15
  241. package/build/components/inserter/index.js.map +1 -1
  242. package/build/components/inserter/index.native.js +1 -0
  243. package/build/components/inserter/index.native.js.map +1 -1
  244. package/build/components/inserter/media-tab/hooks.js +1 -0
  245. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  246. package/build/components/inserter/media-tab/media-list.js +1 -0
  247. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  248. package/build/components/inserter/media-tab/media-tab.js +1 -0
  249. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  250. package/build/components/inserter/menu.js +1 -0
  251. package/build/components/inserter/menu.js.map +1 -1
  252. package/build/components/inserter/mobile-tab-navigation.js +1 -0
  253. package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
  254. package/build/components/inserter/quick-inserter.js +2 -13
  255. package/build/components/inserter/quick-inserter.js.map +1 -1
  256. package/build/components/inserter/search-items.js +1 -0
  257. package/build/components/inserter/search-items.js.map +1 -1
  258. package/build/components/inserter/search-results.js +1 -0
  259. package/build/components/inserter/search-results.js.map +1 -1
  260. package/build/components/inserter/tabs.native.js +1 -0
  261. package/build/components/inserter/tabs.native.js.map +1 -1
  262. package/build/components/inserter/utils.native.js +1 -0
  263. package/build/components/inserter/utils.native.js.map +1 -1
  264. package/build/components/inspector-controls/block-support-tools-panel.js +1 -0
  265. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  266. package/build/components/inspector-controls/fill.js +1 -0
  267. package/build/components/inspector-controls/fill.js.map +1 -1
  268. package/build/components/inspector-controls/slot.js +2 -13
  269. package/build/components/inspector-controls/slot.js.map +1 -1
  270. package/build/components/inspector-controls-tabs/index.js +1 -0
  271. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  272. package/build/components/inspector-controls-tabs/position-controls-panel.js +1 -0
  273. package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  274. package/build/components/inspector-popover-header/index.js +1 -0
  275. package/build/components/inspector-popover-header/index.js.map +1 -1
  276. package/build/components/justify-content-control/ui.js +1 -0
  277. package/build/components/justify-content-control/ui.js.map +1 -1
  278. package/build/components/keyboard-shortcuts/index.js +2 -2
  279. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  280. package/build/components/line-height-control/index.js +9 -0
  281. package/build/components/line-height-control/index.js.map +1 -1
  282. package/build/components/link-control/index.js +13 -1
  283. package/build/components/link-control/index.js.map +1 -1
  284. package/build/components/link-control/search-input.js +11 -1
  285. package/build/components/link-control/search-input.js.map +1 -1
  286. package/build/components/link-control/search-item.js +12 -1
  287. package/build/components/link-control/search-item.js.map +1 -1
  288. package/build/components/link-control/search-results.js +13 -1
  289. package/build/components/link-control/search-results.js.map +1 -1
  290. package/build/components/link-control/settings.js +1 -0
  291. package/build/components/link-control/settings.js.map +1 -1
  292. package/build/components/link-control/use-internal-value.js +1 -0
  293. package/build/components/link-control/use-internal-value.js.map +1 -1
  294. package/build/components/link-control/use-search-handler.js +1 -0
  295. package/build/components/link-control/use-search-handler.js.map +1 -1
  296. package/build/components/list-view/block-select-button.js +1 -0
  297. package/build/components/list-view/block-select-button.js.map +1 -1
  298. package/build/components/list-view/block.js +1 -0
  299. package/build/components/list-view/block.js.map +1 -1
  300. package/build/components/list-view/branch.js +1 -0
  301. package/build/components/list-view/branch.js.map +1 -1
  302. package/build/components/list-view/index.js +1 -0
  303. package/build/components/list-view/index.js.map +1 -1
  304. package/build/components/list-view/use-block-selection.js +1 -0
  305. package/build/components/list-view/use-block-selection.js.map +1 -1
  306. package/build/components/list-view/use-clipboard-handler.js +1 -0
  307. package/build/components/list-view/use-clipboard-handler.js.map +1 -1
  308. package/build/components/list-view/use-list-view-block-indexes.js +1 -0
  309. package/build/components/list-view/use-list-view-block-indexes.js.map +1 -1
  310. package/build/components/list-view/use-list-view-drop-zone.js +1 -0
  311. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  312. package/build/components/list-view/utils.js +1 -0
  313. package/build/components/list-view/utils.js.map +1 -1
  314. package/build/components/media-placeholder/index.js +3 -2
  315. package/build/components/media-placeholder/index.js.map +1 -1
  316. package/build/components/media-placeholder/index.native.js +1 -0
  317. package/build/components/media-placeholder/index.native.js.map +1 -1
  318. package/build/components/media-replace-flow/index.js +27 -26
  319. package/build/components/media-replace-flow/index.js.map +1 -1
  320. package/build/components/media-upload/index.native.js +1 -0
  321. package/build/components/media-upload/index.native.js.map +1 -1
  322. package/build/components/multi-selection-inspector/index.js +9 -25
  323. package/build/components/multi-selection-inspector/index.js.map +1 -1
  324. package/build/components/navigable-toolbar/index.js +1 -0
  325. package/build/components/navigable-toolbar/index.js.map +1 -1
  326. package/build/components/panel-color-settings/index.js +1 -0
  327. package/build/components/panel-color-settings/index.js.map +1 -1
  328. package/build/components/plain-text/index.js +34 -0
  329. package/build/components/plain-text/index.js.map +1 -1
  330. package/build/components/provider/index.js +61 -5
  331. package/build/components/provider/index.js.map +1 -1
  332. package/build/components/provider/use-block-sync.js +1 -0
  333. package/build/components/provider/use-block-sync.js.map +1 -1
  334. package/build/components/provider/use-media-upload-settings.js +28 -0
  335. package/build/components/provider/use-media-upload-settings.js.map +1 -0
  336. package/build/components/resolution-tool/index.js +3 -1
  337. package/build/components/resolution-tool/index.js.map +1 -1
  338. package/build/components/responsive-block-control/index.js +2 -1
  339. package/build/components/responsive-block-control/index.js.map +1 -1
  340. package/build/components/rich-text/embed-handler-picker.native.js +1 -0
  341. package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
  342. package/build/components/rich-text/event-listeners/before-input-rules.js +1 -0
  343. package/build/components/rich-text/event-listeners/before-input-rules.js.map +1 -1
  344. package/build/components/rich-text/event-listeners/delete.js +7 -1
  345. package/build/components/rich-text/event-listeners/delete.js.map +1 -1
  346. package/build/components/rich-text/event-listeners/index.js +1 -0
  347. package/build/components/rich-text/event-listeners/index.js.map +1 -1
  348. package/build/components/rich-text/event-listeners/input-rules.js +1 -0
  349. package/build/components/rich-text/event-listeners/input-rules.js.map +1 -1
  350. package/build/components/rich-text/event-listeners/paste-handler.js +1 -0
  351. package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  352. package/build/components/rich-text/file-paste-handler.native.js +1 -0
  353. package/build/components/rich-text/file-paste-handler.native.js.map +1 -1
  354. package/build/components/rich-text/format-edit.js +1 -0
  355. package/build/components/rich-text/format-edit.js.map +1 -1
  356. package/build/components/rich-text/format-toolbar/index.js +1 -0
  357. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  358. package/build/components/rich-text/index.js +3 -2
  359. package/build/components/rich-text/index.js.map +1 -1
  360. package/build/components/rich-text/index.native.js +1 -0
  361. package/build/components/rich-text/index.native.js.map +1 -1
  362. package/build/components/rich-text/multiline.js +1 -0
  363. package/build/components/rich-text/multiline.js.map +1 -1
  364. package/build/components/rich-text/native/format-edit.js +1 -0
  365. package/build/components/rich-text/native/format-edit.js.map +1 -1
  366. package/build/components/rich-text/native/get-format-colors.native.js +1 -0
  367. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  368. package/build/components/rich-text/native/index.native.js +1 -0
  369. package/build/components/rich-text/native/index.native.js.map +1 -1
  370. package/build/components/rich-text/native/toolbar-button-with-options.native.js +1 -0
  371. package/build/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -1
  372. package/build/components/rich-text/native/use-format-types.js +1 -0
  373. package/build/components/rich-text/native/use-format-types.js.map +1 -1
  374. package/build/components/rich-text/use-format-types.js +1 -0
  375. package/build/components/rich-text/use-format-types.js.map +1 -1
  376. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -0
  377. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  378. package/build/components/spacing-sizes-control/input-controls/axial.js +1 -0
  379. package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  380. package/build/components/spacing-sizes-control/input-controls/separated.js +1 -0
  381. package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  382. package/build/components/spacing-sizes-control/input-controls/single.js +1 -0
  383. package/build/components/spacing-sizes-control/input-controls/single.js.map +1 -1
  384. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -0
  385. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  386. package/build/components/spacing-sizes-control/utils.js +1 -0
  387. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  388. package/build/components/tabbed-sidebar/index.js +1 -0
  389. package/build/components/tabbed-sidebar/index.js.map +1 -1
  390. package/build/components/text-alignment-control/index.js +1 -0
  391. package/build/components/text-alignment-control/index.js.map +1 -1
  392. package/build/components/text-decoration-control/index.js +1 -0
  393. package/build/components/text-decoration-control/index.js.map +1 -1
  394. package/build/components/text-transform-control/index.js +1 -0
  395. package/build/components/text-transform-control/index.js.map +1 -1
  396. package/build/components/unsupported-block-details/index.native.js +1 -0
  397. package/build/components/unsupported-block-details/index.native.js.map +1 -1
  398. package/build/components/url-input/index.js +1 -0
  399. package/build/components/url-input/index.js.map +1 -1
  400. package/build/components/url-popover/image-url-input-ui.js +1 -0
  401. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  402. package/build/components/use-block-commands/index.js +1 -0
  403. package/build/components/use-block-commands/index.js.map +1 -1
  404. package/build/components/use-block-drop-zone/index.js +3 -1
  405. package/build/components/use-block-drop-zone/index.js.map +1 -1
  406. package/build/components/use-block-drop-zone/index.native.js +1 -0
  407. package/build/components/use-block-drop-zone/index.native.js.map +1 -1
  408. package/build/components/use-flash-editable-blocks/index.js +1 -0
  409. package/build/components/use-flash-editable-blocks/index.js.map +1 -1
  410. package/build/components/use-on-block-drop/index.js +1 -0
  411. package/build/components/use-on-block-drop/index.js.map +1 -1
  412. package/build/components/use-on-block-drop/index.native.js +1 -0
  413. package/build/components/use-on-block-drop/index.native.js.map +1 -1
  414. package/build/components/use-paste-styles/index.js +1 -0
  415. package/build/components/use-paste-styles/index.js.map +1 -1
  416. package/build/components/warning/index.js +3 -3
  417. package/build/components/warning/index.js.map +1 -1
  418. package/build/components/writing-flow/use-arrow-nav.js +1 -0
  419. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  420. package/build/components/writing-flow/use-clipboard-handler.js +1 -0
  421. package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
  422. package/build/components/writing-flow/use-input.js +1 -0
  423. package/build/components/writing-flow/use-input.js.map +1 -1
  424. package/build/components/writing-flow/use-tab-nav.js +1 -0
  425. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  426. package/build/components/writing-flow/utils.js +1 -0
  427. package/build/components/writing-flow/utils.js.map +1 -1
  428. package/build/components/writing-mode-control/index.js +1 -0
  429. package/build/components/writing-mode-control/index.js.map +1 -1
  430. package/build/hooks/align.js +1 -0
  431. package/build/hooks/align.js.map +1 -1
  432. package/build/hooks/align.native.js +1 -0
  433. package/build/hooks/align.native.js.map +1 -1
  434. package/build/hooks/background.js +2 -0
  435. package/build/hooks/background.js.map +1 -1
  436. package/build/hooks/block-bindings.js +16 -14
  437. package/build/hooks/block-bindings.js.map +1 -1
  438. package/build/hooks/block-hooks.js +1 -0
  439. package/build/hooks/block-hooks.js.map +1 -1
  440. package/build/hooks/block-style-variation.js +1 -0
  441. package/build/hooks/block-style-variation.js.map +1 -1
  442. package/build/hooks/border.js +4 -3
  443. package/build/hooks/border.js.map +1 -1
  444. package/build/hooks/color.js +1 -1
  445. package/build/hooks/color.js.map +1 -1
  446. package/build/hooks/dimensions.js +2 -2
  447. package/build/hooks/dimensions.js.map +1 -1
  448. package/build/hooks/duotone.js +1 -0
  449. package/build/hooks/duotone.js.map +1 -1
  450. package/build/hooks/font-family.js +1 -1
  451. package/build/hooks/font-family.js.map +1 -1
  452. package/build/hooks/gap.js +2 -2
  453. package/build/hooks/gap.js.map +1 -1
  454. package/build/hooks/index.js +1 -1
  455. package/build/hooks/index.js.map +1 -1
  456. package/build/hooks/index.native.js +7 -0
  457. package/build/hooks/index.native.js.map +1 -1
  458. package/build/hooks/layout.js +1 -0
  459. package/build/hooks/layout.js.map +1 -1
  460. package/build/hooks/position.js +1 -0
  461. package/build/hooks/position.js.map +1 -1
  462. package/build/hooks/style.js +7 -6
  463. package/build/hooks/style.js.map +1 -1
  464. package/build/hooks/supports.js +8 -7
  465. package/build/hooks/supports.js.map +1 -1
  466. package/build/hooks/text-align.js +1 -0
  467. package/build/hooks/text-align.js.map +1 -1
  468. package/build/hooks/typography.js +7 -6
  469. package/build/hooks/typography.js.map +1 -1
  470. package/build/hooks/use-zoom-out.js +58 -14
  471. package/build/hooks/use-zoom-out.js.map +1 -1
  472. package/build/hooks/utils.js +2 -1
  473. package/build/hooks/utils.js.map +1 -1
  474. package/build/layouts/constrained.js +1 -0
  475. package/build/layouts/constrained.js.map +1 -1
  476. package/build/layouts/flex.js +1 -0
  477. package/build/layouts/flex.js.map +1 -1
  478. package/build/layouts/flow.js +1 -0
  479. package/build/layouts/flow.js.map +1 -1
  480. package/build/layouts/index.js +1 -0
  481. package/build/layouts/index.js.map +1 -1
  482. package/build/layouts/utils.js +1 -0
  483. package/build/layouts/utils.js.map +1 -1
  484. package/build/store/actions.js +1 -0
  485. package/build/store/actions.js.map +1 -1
  486. package/build/store/get-block-settings.js +1 -0
  487. package/build/store/get-block-settings.js.map +1 -1
  488. package/build/store/private-actions.js +2 -1
  489. package/build/store/private-actions.js.map +1 -1
  490. package/build/store/private-selectors.js +12 -1
  491. package/build/store/private-selectors.js.map +1 -1
  492. package/build/store/reducer.js +94 -12
  493. package/build/store/reducer.js.map +1 -1
  494. package/build/store/selectors.js +19 -23
  495. package/build/store/selectors.js.map +1 -1
  496. package/build/store/utils.js +1 -0
  497. package/build/store/utils.js.map +1 -1
  498. package/build/utils/block-bindings.js +96 -0
  499. package/build/utils/block-bindings.js.map +1 -1
  500. package/build/utils/get-editor-region.js +1 -0
  501. package/build/utils/get-editor-region.js.map +1 -1
  502. package/build/utils/get-font-styles-and-weights.js +1 -0
  503. package/build/utils/get-font-styles-and-weights.js.map +1 -1
  504. package/build/utils/math.js +1 -0
  505. package/build/utils/math.js.map +1 -1
  506. package/build/utils/object.js +1 -0
  507. package/build/utils/object.js.map +1 -1
  508. package/build/utils/selection.js +1 -0
  509. package/build/utils/selection.js.map +1 -1
  510. package/build/utils/transform-styles/index.js +1 -0
  511. package/build/utils/transform-styles/index.js.map +1 -1
  512. package/build-module/autocompleters/block.js +1 -0
  513. package/build-module/autocompleters/block.js.map +1 -1
  514. package/build-module/autocompleters/link.js +1 -0
  515. package/build-module/autocompleters/link.js.map +1 -1
  516. package/build-module/components/alignment-control/ui.js +1 -0
  517. package/build-module/components/alignment-control/ui.js.map +1 -1
  518. package/build-module/components/audio-player/index.native.js +2 -2
  519. package/build-module/components/audio-player/index.native.js.map +1 -1
  520. package/build-module/components/autocomplete/index.js +1 -0
  521. package/build-module/components/autocomplete/index.js.map +1 -1
  522. package/build-module/components/background-image-control/index.js +6 -1
  523. package/build-module/components/background-image-control/index.js.map +1 -1
  524. package/build-module/components/block-actions/index.js +1 -0
  525. package/build-module/components/block-actions/index.js.map +1 -1
  526. package/build-module/components/block-alignment-control/ui.js +1 -0
  527. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  528. package/build-module/components/block-alignment-control/ui.native.js +1 -0
  529. package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
  530. package/build-module/components/block-alignment-control/use-available-alignments.js +1 -0
  531. package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
  532. package/build-module/components/block-alignment-matrix-control/index.js +32 -0
  533. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  534. package/build-module/components/block-breadcrumb/index.js +1 -0
  535. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  536. package/build-module/components/block-card/index.js +45 -8
  537. package/build-module/components/block-card/index.js.map +1 -1
  538. package/build-module/components/block-compare/index.js +1 -0
  539. package/build-module/components/block-compare/index.js.map +1 -1
  540. package/build-module/components/block-controls/fill.js +1 -0
  541. package/build-module/components/block-controls/fill.js.map +1 -1
  542. package/build-module/components/block-edit/edit.js +149 -11
  543. package/build-module/components/block-edit/edit.js.map +1 -1
  544. package/build-module/components/block-edit/edit.native.js +1 -0
  545. package/build-module/components/block-edit/edit.native.js.map +1 -1
  546. package/build-module/components/block-heading-level-dropdown/index.js +1 -0
  547. package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
  548. package/build-module/components/block-heading-level-dropdown/index.native.js +1 -0
  549. package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -1
  550. package/build-module/components/block-inspector/index.js +1 -0
  551. package/build-module/components/block-inspector/index.js.map +1 -1
  552. package/build-module/components/block-list/block-invalid-warning.js +1 -0
  553. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  554. package/build-module/components/block-list/block-list-context.native.js +1 -0
  555. package/build-module/components/block-list/block-list-context.native.js.map +1 -1
  556. package/build-module/components/block-list/block.js +1 -0
  557. package/build-module/components/block-list/block.js.map +1 -1
  558. package/build-module/components/block-list/block.native.js +1 -0
  559. package/build-module/components/block-list/block.native.js.map +1 -1
  560. package/build-module/components/block-list/index.js +3 -3
  561. package/build-module/components/block-list/index.js.map +1 -1
  562. package/build-module/components/block-list/index.native.js +1 -0
  563. package/build-module/components/block-list/index.native.js.map +1 -1
  564. package/build-module/components/block-list/use-block-props/index.js +3 -4
  565. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  566. package/build-module/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +60 -8
  567. package/build-module/components/block-list/use-block-props/use-firefox-draggable-compatibility.js.map +1 -1
  568. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  569. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  570. package/build-module/components/block-list/use-in-between-inserter.js +1 -0
  571. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  572. package/build-module/components/block-list/zoom-out-separator.js +20 -3
  573. package/build-module/components/block-list/zoom-out-separator.js.map +1 -1
  574. package/build-module/components/block-lock/modal.js +5 -4
  575. package/build-module/components/block-lock/modal.js.map +1 -1
  576. package/build-module/components/block-manager/category.js +1 -0
  577. package/build-module/components/block-manager/category.js.map +1 -1
  578. package/build-module/components/block-manager/checklist.js +1 -0
  579. package/build-module/components/block-manager/checklist.js.map +1 -1
  580. package/build-module/components/block-manager/index.js +1 -0
  581. package/build-module/components/block-manager/index.js.map +1 -1
  582. package/build-module/components/block-media-update-progress/index.native.js +1 -0
  583. package/build-module/components/block-media-update-progress/index.native.js.map +1 -1
  584. package/build-module/components/block-mover/index.native.js +1 -0
  585. package/build-module/components/block-mover/index.native.js.map +1 -1
  586. package/build-module/components/block-mover/mover-description.native.js +1 -0
  587. package/build-module/components/block-mover/mover-description.native.js.map +1 -1
  588. package/build-module/components/block-parent-selector/index.js +2 -15
  589. package/build-module/components/block-parent-selector/index.js.map +1 -1
  590. package/build-module/components/block-pattern-setup/index.js +1 -0
  591. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  592. package/build-module/components/block-pattern-setup/use-patterns-setup.js +1 -0
  593. package/build-module/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
  594. package/build-module/components/block-patterns-list/index.js +1 -0
  595. package/build-module/components/block-patterns-list/index.js.map +1 -1
  596. package/build-module/components/block-quick-navigation/index.js +1 -0
  597. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  598. package/build-module/components/block-rename/rename-control.js +1 -0
  599. package/build-module/components/block-rename/rename-control.js.map +1 -1
  600. package/build-module/components/block-settings-menu/block-settings-dropdown.js +6 -8
  601. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  602. package/build-module/components/block-styles/index.js +1 -0
  603. package/build-module/components/block-styles/index.js.map +1 -1
  604. package/build-module/components/block-styles/index.native.js +1 -0
  605. package/build-module/components/block-styles/index.native.js.map +1 -1
  606. package/build-module/components/block-styles/menu-items.js +1 -0
  607. package/build-module/components/block-styles/menu-items.js.map +1 -1
  608. package/build-module/components/block-styles/preview.native.js +1 -0
  609. package/build-module/components/block-styles/preview.native.js.map +1 -1
  610. package/build-module/components/block-styles/utils.js +3 -3
  611. package/build-module/components/block-styles/utils.js.map +1 -1
  612. package/build-module/components/block-switcher/block-transformations-menu.js +1 -0
  613. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  614. package/build-module/components/block-switcher/block-transformations-menu.native.js +1 -0
  615. package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  616. package/build-module/components/block-switcher/block-variation-transformations.js +1 -0
  617. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
  618. package/build-module/components/block-switcher/index.js +1 -0
  619. package/build-module/components/block-switcher/index.js.map +1 -1
  620. package/build-module/components/block-switcher/pattern-transformations-menu.js +1 -0
  621. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  622. package/build-module/components/block-switcher/use-transformed-patterns.js +1 -0
  623. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  624. package/build-module/components/block-switcher/utils.js +1 -0
  625. package/build-module/components/block-switcher/utils.js.map +1 -1
  626. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +1 -0
  627. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  628. package/build-module/components/block-toolbar/change-design.js +1 -0
  629. package/build-module/components/block-toolbar/change-design.js.map +1 -1
  630. package/build-module/components/block-toolbar/index.js +2 -1
  631. package/build-module/components/block-toolbar/index.js.map +1 -1
  632. package/build-module/components/block-tools/use-selected-block-tool-props.js +1 -0
  633. package/build-module/components/block-tools/use-selected-block-tool-props.js.map +1 -1
  634. package/build-module/components/block-tools/zoom-out-mode-inserters.js +19 -6
  635. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  636. package/build-module/components/block-types-list/index.js +1 -0
  637. package/build-module/components/block-types-list/index.js.map +1 -1
  638. package/build-module/components/block-variation-picker/index.js +1 -0
  639. package/build-module/components/block-variation-picker/index.js.map +1 -1
  640. package/build-module/components/block-variation-picker/index.native.js +1 -0
  641. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  642. package/build-module/components/block-variation-transforms/index.js +1 -0
  643. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  644. package/build-module/components/block-vertical-alignment-control/ui.js +1 -0
  645. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  646. package/build-module/components/border-radius-control/index.js +1 -0
  647. package/build-module/components/border-radius-control/index.js.map +1 -1
  648. package/build-module/components/border-radius-control/input-controls.js +1 -0
  649. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  650. package/build-module/components/border-radius-control/utils.js +1 -0
  651. package/build-module/components/border-radius-control/utils.js.map +1 -1
  652. package/build-module/components/button-block-appender/index.js +2 -6
  653. package/build-module/components/button-block-appender/index.js.map +1 -1
  654. package/build-module/components/child-layout-control/index.js +7 -1
  655. package/build-module/components/child-layout-control/index.js.map +1 -1
  656. package/build-module/components/colors/utils.js +1 -0
  657. package/build-module/components/colors/utils.js.map +1 -1
  658. package/build-module/components/colors/with-colors.js +1 -0
  659. package/build-module/components/colors/with-colors.js.map +1 -1
  660. package/build-module/components/colors-gradients/dropdown.js +52 -11
  661. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  662. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +1 -0
  663. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  664. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js +1 -0
  665. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  666. package/build-module/components/contrast-checker/index.native.js +2 -2
  667. package/build-module/components/contrast-checker/index.native.js.map +1 -1
  668. package/build-module/components/convert-to-group-buttons/toolbar.js +1 -0
  669. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  670. package/build-module/components/date-format-picker/index.js +8 -16
  671. package/build-module/components/date-format-picker/index.js.map +1 -1
  672. package/build-module/components/dimensions-tool/scale-tool.js +1 -0
  673. package/build-module/components/dimensions-tool/scale-tool.js.map +1 -1
  674. package/build-module/components/duotone/utils.js +1 -0
  675. package/build-module/components/duotone/utils.js.map +1 -1
  676. package/build-module/components/editor-styles/index.js +1 -0
  677. package/build-module/components/editor-styles/index.js.map +1 -1
  678. package/build-module/components/font-appearance-control/index.js +9 -0
  679. package/build-module/components/font-appearance-control/index.js.map +1 -1
  680. package/build-module/components/font-family/index.js +11 -1
  681. package/build-module/components/font-family/index.js.map +1 -1
  682. package/build-module/components/font-sizes/with-font-sizes.js +1 -0
  683. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  684. package/build-module/components/global-styles/border-panel.js +1 -0
  685. package/build-module/components/global-styles/border-panel.js.map +1 -1
  686. package/build-module/components/global-styles/color-panel.js +30 -10
  687. package/build-module/components/global-styles/color-panel.js.map +1 -1
  688. package/build-module/components/global-styles/color-panel.native.js +1 -0
  689. package/build-module/components/global-styles/color-panel.native.js.map +1 -1
  690. package/build-module/components/global-styles/dimensions-panel.js +1 -0
  691. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  692. package/build-module/components/global-styles/filters-panel.js +4 -3
  693. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  694. package/build-module/components/global-styles/get-global-styles-changes.js +1 -0
  695. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  696. package/build-module/components/global-styles/shadow-panel-components.js +1 -0
  697. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  698. package/build-module/components/global-styles/typography-utils.js +2 -1
  699. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  700. package/build-module/components/global-styles/use-global-styles-context.native.js +1 -0
  701. package/build-module/components/global-styles/use-global-styles-context.native.js.map +1 -1
  702. package/build-module/components/global-styles/use-global-styles-output.js +2 -1
  703. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  704. package/build-module/components/global-styles/utils.js +1 -0
  705. package/build-module/components/global-styles/utils.js.map +1 -1
  706. package/build-module/components/grid/grid-visualizer.js +10 -0
  707. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  708. package/build-module/components/grid/use-grid-layout-sync.js +1 -0
  709. package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
  710. package/build-module/components/grid/utils.js +13 -1
  711. package/build-module/components/grid/utils.js.map +1 -1
  712. package/build-module/components/iframe/get-compatibility-styles.js +1 -0
  713. package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
  714. package/build-module/components/iframe/index.js +1 -1
  715. package/build-module/components/iframe/index.js.map +1 -1
  716. package/build-module/components/image-editor/aspect-ratio-dropdown.js +1 -0
  717. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  718. package/build-module/components/index.js +4 -4
  719. package/build-module/components/index.js.map +1 -1
  720. package/build-module/components/inner-blocks/use-block-context.js +1 -0
  721. package/build-module/components/inner-blocks/use-block-context.js.map +1 -1
  722. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +12 -12
  723. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  724. package/build-module/components/inserter/block-patterns-explorer/index.js +1 -1
  725. package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -1
  726. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +1 -0
  727. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  728. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +1 -0
  729. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  730. package/build-module/components/inserter/block-patterns-tab/index.js +1 -1
  731. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  732. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +5 -4
  733. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  734. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +2 -2
  735. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  736. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +1 -0
  737. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  738. package/build-module/components/inserter/block-types-tab.js +2 -1
  739. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  740. package/build-module/components/inserter/block-types-tab.native.js +1 -0
  741. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  742. package/build-module/components/inserter/category-tabs/index.js +2 -2
  743. package/build-module/components/inserter/category-tabs/index.js.map +1 -1
  744. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js +1 -0
  745. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  746. package/build-module/components/inserter/hooks/use-patterns-state.js +1 -0
  747. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  748. package/build-module/components/inserter/index.js +7 -15
  749. package/build-module/components/inserter/index.js.map +1 -1
  750. package/build-module/components/inserter/index.native.js +1 -0
  751. package/build-module/components/inserter/index.native.js.map +1 -1
  752. package/build-module/components/inserter/media-tab/hooks.js +1 -0
  753. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  754. package/build-module/components/inserter/media-tab/media-list.js +1 -0
  755. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  756. package/build-module/components/inserter/media-tab/media-tab.js +1 -0
  757. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  758. package/build-module/components/inserter/menu.js +1 -0
  759. package/build-module/components/inserter/menu.js.map +1 -1
  760. package/build-module/components/inserter/mobile-tab-navigation.js +1 -0
  761. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
  762. package/build-module/components/inserter/quick-inserter.js +2 -13
  763. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  764. package/build-module/components/inserter/search-items.js +1 -0
  765. package/build-module/components/inserter/search-items.js.map +1 -1
  766. package/build-module/components/inserter/search-results.js +1 -0
  767. package/build-module/components/inserter/search-results.js.map +1 -1
  768. package/build-module/components/inserter/tabs.native.js +1 -0
  769. package/build-module/components/inserter/tabs.native.js.map +1 -1
  770. package/build-module/components/inserter/utils.native.js +1 -0
  771. package/build-module/components/inserter/utils.native.js.map +1 -1
  772. package/build-module/components/inspector-controls/block-support-tools-panel.js +1 -0
  773. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  774. package/build-module/components/inspector-controls/fill.js +1 -0
  775. package/build-module/components/inspector-controls/fill.js.map +1 -1
  776. package/build-module/components/inspector-controls/slot.js +3 -14
  777. package/build-module/components/inspector-controls/slot.js.map +1 -1
  778. package/build-module/components/inspector-controls-tabs/index.js +1 -0
  779. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  780. package/build-module/components/inspector-controls-tabs/position-controls-panel.js +1 -0
  781. package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  782. package/build-module/components/inspector-popover-header/index.js +1 -0
  783. package/build-module/components/inspector-popover-header/index.js.map +1 -1
  784. package/build-module/components/justify-content-control/ui.js +1 -0
  785. package/build-module/components/justify-content-control/ui.js.map +1 -1
  786. package/build-module/components/keyboard-shortcuts/index.js +2 -2
  787. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  788. package/build-module/components/line-height-control/index.js +8 -0
  789. package/build-module/components/line-height-control/index.js.map +1 -1
  790. package/build-module/components/link-control/index.js +11 -0
  791. package/build-module/components/link-control/index.js.map +1 -1
  792. package/build-module/components/link-control/search-input.js +9 -0
  793. package/build-module/components/link-control/search-input.js.map +1 -1
  794. package/build-module/components/link-control/search-item.js +9 -0
  795. package/build-module/components/link-control/search-item.js.map +1 -1
  796. package/build-module/components/link-control/search-results.js +12 -1
  797. package/build-module/components/link-control/search-results.js.map +1 -1
  798. package/build-module/components/link-control/settings.js +1 -0
  799. package/build-module/components/link-control/settings.js.map +1 -1
  800. package/build-module/components/link-control/use-internal-value.js +1 -0
  801. package/build-module/components/link-control/use-internal-value.js.map +1 -1
  802. package/build-module/components/link-control/use-search-handler.js +1 -0
  803. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  804. package/build-module/components/list-view/block-select-button.js +1 -0
  805. package/build-module/components/list-view/block-select-button.js.map +1 -1
  806. package/build-module/components/list-view/block.js +1 -0
  807. package/build-module/components/list-view/block.js.map +1 -1
  808. package/build-module/components/list-view/branch.js +1 -0
  809. package/build-module/components/list-view/branch.js.map +1 -1
  810. package/build-module/components/list-view/index.js +1 -0
  811. package/build-module/components/list-view/index.js.map +1 -1
  812. package/build-module/components/list-view/use-block-selection.js +1 -0
  813. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  814. package/build-module/components/list-view/use-clipboard-handler.js +1 -0
  815. package/build-module/components/list-view/use-clipboard-handler.js.map +1 -1
  816. package/build-module/components/list-view/use-list-view-block-indexes.js +1 -0
  817. package/build-module/components/list-view/use-list-view-block-indexes.js.map +1 -1
  818. package/build-module/components/list-view/use-list-view-drop-zone.js +1 -0
  819. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  820. package/build-module/components/list-view/utils.js +1 -0
  821. package/build-module/components/list-view/utils.js.map +1 -1
  822. package/build-module/components/media-placeholder/index.js +4 -3
  823. package/build-module/components/media-placeholder/index.js.map +1 -1
  824. package/build-module/components/media-placeholder/index.native.js +1 -0
  825. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  826. package/build-module/components/media-replace-flow/index.js +29 -28
  827. package/build-module/components/media-replace-flow/index.js.map +1 -1
  828. package/build-module/components/media-upload/index.native.js +1 -0
  829. package/build-module/components/media-upload/index.native.js.map +1 -1
  830. package/build-module/components/multi-selection-inspector/index.js +9 -25
  831. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  832. package/build-module/components/navigable-toolbar/index.js +1 -0
  833. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  834. package/build-module/components/panel-color-settings/index.js +1 -0
  835. package/build-module/components/panel-color-settings/index.js.map +1 -1
  836. package/build-module/components/plain-text/index.js +34 -0
  837. package/build-module/components/plain-text/index.js.map +1 -1
  838. package/build-module/components/provider/index.js +62 -5
  839. package/build-module/components/provider/index.js.map +1 -1
  840. package/build-module/components/provider/use-block-sync.js +1 -0
  841. package/build-module/components/provider/use-block-sync.js.map +1 -1
  842. package/build-module/components/provider/use-media-upload-settings.js +22 -0
  843. package/build-module/components/provider/use-media-upload-settings.js.map +1 -0
  844. package/build-module/components/resolution-tool/index.js +3 -1
  845. package/build-module/components/resolution-tool/index.js.map +1 -1
  846. package/build-module/components/responsive-block-control/index.js +2 -1
  847. package/build-module/components/responsive-block-control/index.js.map +1 -1
  848. package/build-module/components/rich-text/embed-handler-picker.native.js +1 -0
  849. package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -1
  850. package/build-module/components/rich-text/event-listeners/before-input-rules.js +1 -0
  851. package/build-module/components/rich-text/event-listeners/before-input-rules.js.map +1 -1
  852. package/build-module/components/rich-text/event-listeners/delete.js +7 -1
  853. package/build-module/components/rich-text/event-listeners/delete.js.map +1 -1
  854. package/build-module/components/rich-text/event-listeners/index.js +1 -0
  855. package/build-module/components/rich-text/event-listeners/index.js.map +1 -1
  856. package/build-module/components/rich-text/event-listeners/input-rules.js +1 -0
  857. package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -1
  858. package/build-module/components/rich-text/event-listeners/paste-handler.js +1 -0
  859. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  860. package/build-module/components/rich-text/file-paste-handler.native.js +1 -0
  861. package/build-module/components/rich-text/file-paste-handler.native.js.map +1 -1
  862. package/build-module/components/rich-text/format-edit.js +1 -0
  863. package/build-module/components/rich-text/format-edit.js.map +1 -1
  864. package/build-module/components/rich-text/format-toolbar/index.js +1 -0
  865. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  866. package/build-module/components/rich-text/index.js +2 -1
  867. package/build-module/components/rich-text/index.js.map +1 -1
  868. package/build-module/components/rich-text/index.native.js +1 -0
  869. package/build-module/components/rich-text/index.native.js.map +1 -1
  870. package/build-module/components/rich-text/multiline.js +1 -0
  871. package/build-module/components/rich-text/multiline.js.map +1 -1
  872. package/build-module/components/rich-text/native/format-edit.js +1 -0
  873. package/build-module/components/rich-text/native/format-edit.js.map +1 -1
  874. package/build-module/components/rich-text/native/get-format-colors.native.js +1 -0
  875. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  876. package/build-module/components/rich-text/native/index.native.js +1 -0
  877. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  878. package/build-module/components/rich-text/native/toolbar-button-with-options.native.js +1 -0
  879. package/build-module/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -1
  880. package/build-module/components/rich-text/native/use-format-types.js +1 -0
  881. package/build-module/components/rich-text/native/use-format-types.js.map +1 -1
  882. package/build-module/components/rich-text/use-format-types.js +1 -0
  883. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  884. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -0
  885. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  886. package/build-module/components/spacing-sizes-control/input-controls/axial.js +1 -0
  887. package/build-module/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  888. package/build-module/components/spacing-sizes-control/input-controls/separated.js +1 -0
  889. package/build-module/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  890. package/build-module/components/spacing-sizes-control/input-controls/single.js +1 -0
  891. package/build-module/components/spacing-sizes-control/input-controls/single.js.map +1 -1
  892. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -0
  893. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  894. package/build-module/components/spacing-sizes-control/utils.js +1 -0
  895. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  896. package/build-module/components/tabbed-sidebar/index.js +1 -0
  897. package/build-module/components/tabbed-sidebar/index.js.map +1 -1
  898. package/build-module/components/text-alignment-control/index.js +1 -0
  899. package/build-module/components/text-alignment-control/index.js.map +1 -1
  900. package/build-module/components/text-decoration-control/index.js +1 -0
  901. package/build-module/components/text-decoration-control/index.js.map +1 -1
  902. package/build-module/components/text-transform-control/index.js +1 -0
  903. package/build-module/components/text-transform-control/index.js.map +1 -1
  904. package/build-module/components/unsupported-block-details/index.native.js +1 -0
  905. package/build-module/components/unsupported-block-details/index.native.js.map +1 -1
  906. package/build-module/components/url-input/index.js +1 -0
  907. package/build-module/components/url-input/index.js.map +1 -1
  908. package/build-module/components/url-popover/image-url-input-ui.js +1 -0
  909. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  910. package/build-module/components/use-block-commands/index.js +1 -0
  911. package/build-module/components/use-block-commands/index.js.map +1 -1
  912. package/build-module/components/use-block-drop-zone/index.js +3 -1
  913. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  914. package/build-module/components/use-block-drop-zone/index.native.js +1 -0
  915. package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
  916. package/build-module/components/use-flash-editable-blocks/index.js +1 -0
  917. package/build-module/components/use-flash-editable-blocks/index.js.map +1 -1
  918. package/build-module/components/use-on-block-drop/index.js +1 -0
  919. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  920. package/build-module/components/use-on-block-drop/index.native.js +1 -0
  921. package/build-module/components/use-on-block-drop/index.native.js.map +1 -1
  922. package/build-module/components/use-paste-styles/index.js +1 -0
  923. package/build-module/components/use-paste-styles/index.js.map +1 -1
  924. package/build-module/components/warning/index.js +3 -3
  925. package/build-module/components/warning/index.js.map +1 -1
  926. package/build-module/components/writing-flow/use-arrow-nav.js +1 -0
  927. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  928. package/build-module/components/writing-flow/use-clipboard-handler.js +1 -0
  929. package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
  930. package/build-module/components/writing-flow/use-input.js +1 -0
  931. package/build-module/components/writing-flow/use-input.js.map +1 -1
  932. package/build-module/components/writing-flow/use-tab-nav.js +1 -0
  933. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  934. package/build-module/components/writing-flow/utils.js +1 -0
  935. package/build-module/components/writing-flow/utils.js.map +1 -1
  936. package/build-module/components/writing-mode-control/index.js +1 -0
  937. package/build-module/components/writing-mode-control/index.js.map +1 -1
  938. package/build-module/hooks/align.js +1 -0
  939. package/build-module/hooks/align.js.map +1 -1
  940. package/build-module/hooks/align.native.js +1 -0
  941. package/build-module/hooks/align.native.js.map +1 -1
  942. package/build-module/hooks/background.js +2 -0
  943. package/build-module/hooks/background.js.map +1 -1
  944. package/build-module/hooks/block-bindings.js +14 -12
  945. package/build-module/hooks/block-bindings.js.map +1 -1
  946. package/build-module/hooks/block-hooks.js +1 -0
  947. package/build-module/hooks/block-hooks.js.map +1 -1
  948. package/build-module/hooks/block-style-variation.js +1 -0
  949. package/build-module/hooks/block-style-variation.js.map +1 -1
  950. package/build-module/hooks/border.js +4 -3
  951. package/build-module/hooks/border.js.map +1 -1
  952. package/build-module/hooks/color.js +1 -1
  953. package/build-module/hooks/color.js.map +1 -1
  954. package/build-module/hooks/dimensions.js +2 -2
  955. package/build-module/hooks/dimensions.js.map +1 -1
  956. package/build-module/hooks/duotone.js +1 -0
  957. package/build-module/hooks/duotone.js.map +1 -1
  958. package/build-module/hooks/font-family.js +1 -1
  959. package/build-module/hooks/font-family.js.map +1 -1
  960. package/build-module/hooks/gap.js +2 -2
  961. package/build-module/hooks/gap.js.map +1 -1
  962. package/build-module/hooks/index.js +1 -1
  963. package/build-module/hooks/index.js.map +1 -1
  964. package/build-module/hooks/index.native.js +1 -0
  965. package/build-module/hooks/index.native.js.map +1 -1
  966. package/build-module/hooks/layout.js +1 -0
  967. package/build-module/hooks/layout.js.map +1 -1
  968. package/build-module/hooks/position.js +1 -0
  969. package/build-module/hooks/position.js.map +1 -1
  970. package/build-module/hooks/style.js +7 -6
  971. package/build-module/hooks/style.js.map +1 -1
  972. package/build-module/hooks/supports.js +8 -7
  973. package/build-module/hooks/supports.js.map +1 -1
  974. package/build-module/hooks/text-align.js +1 -0
  975. package/build-module/hooks/text-align.js.map +1 -1
  976. package/build-module/hooks/typography.js +7 -6
  977. package/build-module/hooks/typography.js.map +1 -1
  978. package/build-module/hooks/use-zoom-out.js +58 -15
  979. package/build-module/hooks/use-zoom-out.js.map +1 -1
  980. package/build-module/hooks/utils.js +2 -1
  981. package/build-module/hooks/utils.js.map +1 -1
  982. package/build-module/layouts/constrained.js +1 -0
  983. package/build-module/layouts/constrained.js.map +1 -1
  984. package/build-module/layouts/flex.js +1 -0
  985. package/build-module/layouts/flex.js.map +1 -1
  986. package/build-module/layouts/flow.js +1 -0
  987. package/build-module/layouts/flow.js.map +1 -1
  988. package/build-module/layouts/index.js +1 -0
  989. package/build-module/layouts/index.js.map +1 -1
  990. package/build-module/layouts/utils.js +1 -0
  991. package/build-module/layouts/utils.js.map +1 -1
  992. package/build-module/store/actions.js +1 -0
  993. package/build-module/store/actions.js.map +1 -1
  994. package/build-module/store/get-block-settings.js +1 -0
  995. package/build-module/store/get-block-settings.js.map +1 -1
  996. package/build-module/store/private-actions.js +2 -1
  997. package/build-module/store/private-actions.js.map +1 -1
  998. package/build-module/store/private-selectors.js +12 -1
  999. package/build-module/store/private-selectors.js.map +1 -1
  1000. package/build-module/store/reducer.js +94 -12
  1001. package/build-module/store/reducer.js.map +1 -1
  1002. package/build-module/store/selectors.js +19 -23
  1003. package/build-module/store/selectors.js.map +1 -1
  1004. package/build-module/store/utils.js +1 -0
  1005. package/build-module/store/utils.js.map +1 -1
  1006. package/build-module/utils/block-bindings.js +91 -0
  1007. package/build-module/utils/block-bindings.js.map +1 -1
  1008. package/build-module/utils/get-editor-region.js +1 -0
  1009. package/build-module/utils/get-editor-region.js.map +1 -1
  1010. package/build-module/utils/get-font-styles-and-weights.js +1 -0
  1011. package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
  1012. package/build-module/utils/math.js +1 -0
  1013. package/build-module/utils/math.js.map +1 -1
  1014. package/build-module/utils/object.js +1 -0
  1015. package/build-module/utils/object.js.map +1 -1
  1016. package/build-module/utils/selection.js +1 -0
  1017. package/build-module/utils/selection.js.map +1 -1
  1018. package/build-module/utils/transform-styles/index.js +1 -0
  1019. package/build-module/utils/transform-styles/index.js.map +1 -1
  1020. package/build-style/content-rtl.css +1 -1
  1021. package/build-style/content.css +1 -1
  1022. package/build-style/style-rtl.css +53 -57
  1023. package/build-style/style.css +53 -57
  1024. package/package.json +33 -33
  1025. package/src/components/alignment-control/stories/aliginment-toolbar.story.js +2 -2
  1026. package/src/components/alignment-control/stories/index.story.js +2 -2
  1027. package/src/components/audio-player/index.native.js +2 -2
  1028. package/src/components/background-image-control/index.js +4 -0
  1029. package/src/components/background-image-control/style.scss +4 -2
  1030. package/src/components/block-alignment-matrix-control/README.md +29 -6
  1031. package/src/components/block-alignment-matrix-control/index.js +31 -0
  1032. package/src/components/block-alignment-matrix-control/stories/index.story.js +78 -0
  1033. package/src/components/block-card/README.md +7 -0
  1034. package/src/components/block-card/index.js +41 -12
  1035. package/src/components/block-card/stories/index.story.js +79 -0
  1036. package/src/components/block-card/style.scss +9 -1
  1037. package/src/components/block-edit/edit.js +218 -11
  1038. package/src/components/block-heading-level-dropdown/stories/index.story.js +61 -0
  1039. package/src/components/block-list/index.js +2 -7
  1040. package/src/components/block-list/use-block-props/index.js +3 -5
  1041. package/src/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +64 -6
  1042. package/src/components/block-list/zoom-out-separator.js +30 -0
  1043. package/src/components/block-lock/modal.js +4 -6
  1044. package/src/components/block-parent-selector/index.js +1 -19
  1045. package/src/components/block-patterns-list/stories/fixtures.js +1 -0
  1046. package/src/components/block-settings-menu/block-settings-dropdown.js +17 -20
  1047. package/src/components/block-styles/utils.js +3 -3
  1048. package/src/components/block-title/stories/index.story.js +76 -0
  1049. package/src/components/block-toolbar/index.js +1 -0
  1050. package/src/components/block-tools/style.scss +1 -0
  1051. package/src/components/block-tools/zoom-out-mode-inserters.js +21 -3
  1052. package/src/components/border-radius-control/README.md +59 -0
  1053. package/src/components/border-radius-control/stories/index.story.js +58 -0
  1054. package/src/components/button-block-appender/index.js +2 -7
  1055. package/src/components/child-layout-control/index.js +14 -0
  1056. package/src/components/colors-gradients/dropdown.js +57 -8
  1057. package/src/components/colors-gradients/style.scss +26 -0
  1058. package/src/components/contrast-checker/index.native.js +2 -2
  1059. package/src/components/contrast-checker/stories/index.story.js +117 -0
  1060. package/src/components/date-format-picker/README.md +6 -13
  1061. package/src/components/date-format-picker/index.js +10 -17
  1062. package/src/components/date-format-picker/stories/index.story.js +69 -0
  1063. package/src/components/date-format-picker/style.scss +3 -1
  1064. package/src/components/default-block-appender/content.scss +1 -0
  1065. package/src/components/dimensions-tool/stories/aspect-ratio-tool.story.js +3 -2
  1066. package/src/components/dimensions-tool/stories/index.story.js +3 -2
  1067. package/src/components/dimensions-tool/stories/scale-tool.story.js +3 -2
  1068. package/src/components/dimensions-tool/stories/width-height-tool.story.js +3 -2
  1069. package/src/components/font-appearance-control/index.js +15 -0
  1070. package/src/components/font-family/README.md +1 -0
  1071. package/src/components/font-family/index.js +17 -1
  1072. package/src/components/font-family/stories/index.story.js +1 -0
  1073. package/src/components/global-styles/color-panel.js +29 -7
  1074. package/src/components/global-styles/filters-panel.js +3 -6
  1075. package/src/components/global-styles/test/use-global-styles-output.js +1 -1
  1076. package/src/components/global-styles/typography-utils.js +1 -1
  1077. package/src/components/global-styles/use-global-styles-output.js +1 -1
  1078. package/src/components/grid/grid-visualizer.js +11 -0
  1079. package/src/components/grid/utils.js +19 -1
  1080. package/src/components/iframe/index.js +1 -1
  1081. package/src/components/index.js +7 -4
  1082. package/src/components/inner-blocks/use-inner-block-template-sync.js +17 -10
  1083. package/src/components/inserter/block-patterns-explorer/index.js +2 -3
  1084. package/src/components/inserter/block-patterns-tab/index.js +3 -1
  1085. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +4 -4
  1086. package/src/components/inserter/block-patterns-tab/patterns-filter.js +2 -2
  1087. package/src/components/inserter/block-types-tab.js +1 -1
  1088. package/src/components/inserter/category-tabs/index.js +3 -2
  1089. package/src/components/inserter/index.js +1 -13
  1090. package/src/components/inserter/menu.js +2 -0
  1091. package/src/components/inserter/quick-inserter.js +2 -25
  1092. package/src/components/inspector-controls/slot.js +3 -22
  1093. package/src/components/keyboard-shortcuts/index.js +2 -2
  1094. package/src/components/line-height-control/README.md +1 -0
  1095. package/src/components/line-height-control/index.js +12 -0
  1096. package/src/components/line-height-control/stories/index.story.js +1 -0
  1097. package/src/components/line-height-control/test/index.js +7 -1
  1098. package/src/components/link-control/index.js +10 -0
  1099. package/src/components/link-control/search-input.js +9 -0
  1100. package/src/components/link-control/search-item.js +9 -0
  1101. package/src/components/link-control/search-results.js +12 -1
  1102. package/src/components/list-view/style.scss +10 -5
  1103. package/src/components/media-placeholder/index.js +3 -3
  1104. package/src/components/media-replace-flow/README.md +7 -0
  1105. package/src/components/media-replace-flow/index.js +28 -36
  1106. package/src/components/media-replace-flow/style.scss +6 -6
  1107. package/src/components/multi-selection-inspector/index.js +17 -27
  1108. package/src/components/multi-selection-inspector/style.scss +0 -12
  1109. package/src/components/plain-text/README.md +2 -2
  1110. package/src/components/plain-text/index.js +34 -0
  1111. package/src/components/plain-text/stories/index.story.js +75 -0
  1112. package/src/components/provider/index.js +81 -4
  1113. package/src/components/provider/use-media-upload-settings.js +25 -0
  1114. package/src/components/resolution-tool/index.js +2 -0
  1115. package/src/components/resolution-tool/stories/index.story.js +37 -9
  1116. package/src/components/responsive-block-control/index.js +1 -1
  1117. package/src/components/rich-text/event-listeners/delete.js +6 -1
  1118. package/src/components/rich-text/index.js +1 -1
  1119. package/src/components/spacing-sizes-control/style.scss +0 -29
  1120. package/src/components/text-alignment-control/README.md +49 -0
  1121. package/src/components/text-alignment-control/stories/index.story.js +56 -18
  1122. package/src/components/text-decoration-control/README.md +0 -1
  1123. package/src/components/text-decoration-control/stories/index.story.js +51 -16
  1124. package/src/components/text-transform-control/README.md +3 -4
  1125. package/src/components/text-transform-control/stories/index.story.js +53 -16
  1126. package/src/components/use-block-drop-zone/index.js +8 -1
  1127. package/src/components/warning/index.js +3 -4
  1128. package/src/components/warning/stories/index.story.js +86 -0
  1129. package/src/components/warning/test/index.js +3 -1
  1130. package/src/components/writing-mode-control/stories/index.story.js +56 -0
  1131. package/src/hooks/background.js +6 -0
  1132. package/src/hooks/block-bindings.js +17 -18
  1133. package/src/hooks/border.js +9 -3
  1134. package/src/hooks/color.js +1 -1
  1135. package/src/hooks/dimensions.js +2 -2
  1136. package/src/hooks/font-family.js +1 -1
  1137. package/src/hooks/gap.js +2 -2
  1138. package/src/hooks/index.js +0 -1
  1139. package/src/hooks/index.native.js +1 -0
  1140. package/src/hooks/style.js +12 -6
  1141. package/src/hooks/supports.js +7 -7
  1142. package/src/hooks/test/font-size.js +15 -12
  1143. package/src/hooks/test/style.js +2 -1
  1144. package/src/hooks/typography.js +6 -6
  1145. package/src/hooks/use-zoom-out.js +56 -16
  1146. package/src/hooks/utils.js +1 -1
  1147. package/src/store/private-actions.js +1 -0
  1148. package/src/store/private-selectors.js +15 -5
  1149. package/src/store/reducer.js +112 -19
  1150. package/src/store/selectors.js +32 -32
  1151. package/src/store/test/private-selectors.js +53 -9
  1152. package/src/store/test/reducer.js +172 -166
  1153. package/src/store/test/selectors.js +24 -1
  1154. package/src/utils/block-bindings.js +95 -0
  1155. package/tsconfig.json +2 -5
  1156. package/tsconfig.tsbuildinfo +1 -1
  1157. package/build/hooks/use-bindings-attributes.js +0 -261
  1158. package/build/hooks/use-bindings-attributes.js.map +0 -1
  1159. package/build-module/hooks/use-bindings-attributes.js +0 -252
  1160. package/build-module/hooks/use-bindings-attributes.js.map +0 -1
  1161. package/src/hooks/use-bindings-attributes.js +0 -322
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  /**
2
3
  * External dependencies
3
4
  */
@@ -55,6 +56,15 @@ const GridVisualizerGrid = forwardRef(({
55
56
  observer.observe(element);
56
57
  observers.push(observer);
57
58
  }
59
+ const mutationObserver = new window.MutationObserver(() => {
60
+ setGridInfo(getGridInfo(gridElement));
61
+ });
62
+ mutationObserver.observe(gridElement, {
63
+ attributeFilter: ['style', 'class'],
64
+ childList: true,
65
+ subtree: true
66
+ });
67
+ observers.push(mutationObserver);
58
68
  return () => {
59
69
  for (const observer of observers) {
60
70
  observer.disconnect();
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","useState","useEffect","forwardRef","useMemo","useSelect","useDispatch","__experimentalUseDropZone","useDropZone","useBlockElement","BlockPopoverCover","range","GridRect","getGridInfo","store","blockEditorStore","useGetNumberOfBlocksBeforeCell","ButtonBlockAppender","unlock","jsx","_jsx","GridVisualizer","clientId","contentRef","parentLayout","isDistractionFree","select","getSettings","gridElement","isManualGrid","isManualPlacement","window","__experimentalEnableGridInteractivity","GridVisualizerGrid","gridClientId","ref","gridInfo","setGridInfo","isDroppingAllowed","setIsDroppingAllowed","observers","element","children","observer","ResizeObserver","observe","push","disconnect","onGlobalDrag","onGlobalDragEnd","document","addEventListener","removeEventListener","className","__unstablePopoverSlot","style","ManualGridVisualizer","Array","from","length","numItems","_","i","GridVisualizerCell","color","currentColor","highlightedRect","setHighlightedRect","gridItemStyles","getBlockOrder","getBlockStyles","blockOrder","occupiedRects","rects","Object","values","_style$layout","columnStart","rowStart","columnSpan","rowSpan","layout","numRows","map","row","numColumns","column","_highlightedRect$cont","isCellOccupied","some","rect","contains","isHighlighted","GridVisualizerDropZone","GridVisualizerAppender","boxShadow","useGridVisualizerDropZone","getBlockAttributes","getBlockRootClientId","canInsertBlockType","getBlockName","updateBlockAttributes","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","getNumberOfBlocksBeforeCell","useDropZoneWithValidation","validateDrag","srcClientId","blockName","attributes","isInBounds","containsRect","onDragEnter","onDragLeave","prevHighlightedRect","onDrop","rootClientId","onSelect","block","getDraggedBlockClientIds"],"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","useState","useEffect","forwardRef","useMemo","useSelect","useDispatch","__experimentalUseDropZone","useDropZone","useBlockElement","BlockPopoverCover","range","GridRect","getGridInfo","store","blockEditorStore","useGetNumberOfBlocksBeforeCell","ButtonBlockAppender","unlock","jsx","_jsx","GridVisualizer","clientId","contentRef","parentLayout","isDistractionFree","select","getSettings","gridElement","isManualGrid","isManualPlacement","window","__experimentalEnableGridInteractivity","GridVisualizerGrid","gridClientId","ref","gridInfo","setGridInfo","isDroppingAllowed","setIsDroppingAllowed","observers","element","children","observer","ResizeObserver","observe","push","mutationObserver","MutationObserver","attributeFilter","childList","subtree","disconnect","onGlobalDrag","onGlobalDragEnd","document","addEventListener","removeEventListener","className","__unstablePopoverSlot","style","ManualGridVisualizer","Array","from","length","numItems","_","i","GridVisualizerCell","color","currentColor","highlightedRect","setHighlightedRect","gridItemStyles","getBlockOrder","getBlockStyles","blockOrder","occupiedRects","rects","Object","values","_style$layout","columnStart","rowStart","columnSpan","rowSpan","layout","numRows","map","row","numColumns","column","_highlightedRect$cont","isCellOccupied","some","rect","contains","isHighlighted","GridVisualizerDropZone","GridVisualizerAppender","boxShadow","useGridVisualizerDropZone","getBlockAttributes","getBlockRootClientId","canInsertBlockType","getBlockName","updateBlockAttributes","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","getNumberOfBlocksBeforeCell","useDropZoneWithValidation","validateDrag","srcClientId","blockName","attributes","isInBounds","containsRect","onDragEnter","onDragLeave","prevHighlightedRect","onDrop","rootClientId","onSelect","block","getDraggedBlockClientIds"],"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\n\t\t\tconst mutationObserver = new window.MutationObserver( () => {\n\t\t\t\tsetGridInfo( getGridInfo( gridElement ) );\n\t\t\t} );\n\t\t\tmutationObserver.observe( gridElement, {\n\t\t\t\tattributeFilter: [ 'style', 'class' ],\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t} );\n\t\t\tobservers.push( mutationObserver );\n\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,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  /**
2
3
  * WordPress dependencies
3
4
  */
@@ -1 +1 @@
1
- {"version":3,"names":["useDispatch","useSelect","useEffect","useMemo","usePrevious","store","blockEditorStore","GridRect","setImmutably","useGridLayoutSync","clientId","gridClientId","gridLayout","blockOrder","selectedBlockLayout","select","_getBlockAttributes$l","getBlockAttributes","getBlockOrder","selectedBlock","getSelectedBlock","layout","attributes","style","getBlockRootClientId","updateBlockAttributes","__unstableMarkNextChangeAsNotPersistent","selectedBlockRect","previouslySelectedBlockRect","previousIsManualPlacement","isManualPlacement","previousBlockOrder","updates","occupiedRects","_getBlockAttributes$s","columnStart","rowStart","columnSpan","rowSpan","push","_attributes$style$lay","newColumnStart","newRowStart","placeBlock","columnCount","columnEnd","rowEnd","bottomMostRow","Math","max","map","r","rowCount","includes","_attributes$style$lay2","rootClientId","rootAttributes","type","hasEmptyLayoutAttribute","Object","keys","length","undefined","_attributes$style$lay3","gridColumnCount","blockColumnSpan","blockRowSpan","startColumn","startRow","row","column","candidateRect","some","intersectsRect"],"sources":["@wordpress/block-editor/src/components/grid/use-grid-layout-sync.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect, useMemo } from '@wordpress/element';\nimport { usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { GridRect } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nexport function useGridLayoutSync( { clientId: gridClientId } ) {\n\tconst { gridLayout, blockOrder, selectedBlockLayout } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes, getBlockOrder } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst selectedBlock = select( blockEditorStore ).getSelectedBlock();\n\t\t\treturn {\n\t\t\t\tgridLayout: getBlockAttributes( gridClientId ).layout ?? {},\n\t\t\t\tblockOrder: getBlockOrder( gridClientId ),\n\t\t\t\tselectedBlockLayout: selectedBlock?.attributes.style?.layout,\n\t\t\t};\n\t\t},\n\t\t[ gridClientId ]\n\t);\n\n\tconst { getBlockAttributes, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { updateBlockAttributes, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst selectedBlockRect = useMemo(\n\t\t() =>\n\t\t\tselectedBlockLayout ? new GridRect( selectedBlockLayout ) : null,\n\t\t[ selectedBlockLayout ]\n\t);\n\n\tconst previouslySelectedBlockRect = usePrevious( selectedBlockRect );\n\tconst previousIsManualPlacement = usePrevious(\n\t\tgridLayout.isManualPlacement\n\t);\n\tconst previousBlockOrder = usePrevious( blockOrder );\n\n\tuseEffect( () => {\n\t\tconst updates = {};\n\n\t\tif ( gridLayout.isManualPlacement ) {\n\t\t\tconst occupiedRects = [];\n\n\t\t\t// Respect the position of blocks that already have a columnStart and rowStart value.\n\t\t\tfor ( const clientId of blockOrder ) {\n\t\t\t\tconst {\n\t\t\t\t\tcolumnStart,\n\t\t\t\t\trowStart,\n\t\t\t\t\tcolumnSpan = 1,\n\t\t\t\t\trowSpan = 1,\n\t\t\t\t} = getBlockAttributes( clientId ).style?.layout ?? {};\n\t\t\t\tif ( ! columnStart || ! rowStart ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\toccupiedRects.push(\n\t\t\t\t\tnew GridRect( {\n\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\trowStart,\n\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\trowSpan,\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// When in manual mode, ensure that every block has a columnStart and rowStart value.\n\t\t\tfor ( const clientId of blockOrder ) {\n\t\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\t\tconst {\n\t\t\t\t\tcolumnStart,\n\t\t\t\t\trowStart,\n\t\t\t\t\tcolumnSpan = 1,\n\t\t\t\t\trowSpan = 1,\n\t\t\t\t} = attributes.style?.layout ?? {};\n\t\t\t\tif ( columnStart && rowStart ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst [ newColumnStart, newRowStart ] = placeBlock(\n\t\t\t\t\toccupiedRects,\n\t\t\t\t\tgridLayout.columnCount,\n\t\t\t\t\tcolumnSpan,\n\t\t\t\t\trowSpan,\n\t\t\t\t\tpreviouslySelectedBlockRect?.columnEnd,\n\t\t\t\t\tpreviouslySelectedBlockRect?.rowEnd\n\t\t\t\t);\n\t\t\t\toccupiedRects.push(\n\t\t\t\t\tnew GridRect( {\n\t\t\t\t\t\tcolumnStart: newColumnStart,\n\t\t\t\t\t\trowStart: newRowStart,\n\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\trowSpan,\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\tupdates[ clientId ] = {\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\t...attributes.style,\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t...attributes.style?.layout,\n\t\t\t\t\t\t\tcolumnStart: newColumnStart,\n\t\t\t\t\t\t\trowStart: newRowStart,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Ensure there's enough rows to fit all blocks.\n\t\t\tconst bottomMostRow = Math.max(\n\t\t\t\t...occupiedRects.map( ( r ) => r.rowEnd )\n\t\t\t);\n\t\t\tif (\n\t\t\t\t! gridLayout.rowCount ||\n\t\t\t\tgridLayout.rowCount < bottomMostRow\n\t\t\t) {\n\t\t\t\tupdates[ gridClientId ] = {\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...gridLayout,\n\t\t\t\t\t\trowCount: bottomMostRow,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Unset grid layout attributes for blocks removed from the grid.\n\t\t\tfor ( const clientId of previousBlockOrder ?? [] ) {\n\t\t\t\tif ( ! blockOrder.includes( clientId ) ) {\n\t\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\t\t\t// Block was removed from the editor, so nothing to do.\n\t\t\t\t\tif ( rootClientId === null ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check if the block is being moved to another grid.\n\t\t\t\t\t// If so, do nothing and let the new grid parent handle\n\t\t\t\t\t// the attributes.\n\t\t\t\t\tconst rootAttributes = getBlockAttributes( rootClientId );\n\t\t\t\t\tif ( rootAttributes?.layout?.type === 'grid' ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\t\t\tconst {\n\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\trowStart,\n\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t...layout\n\t\t\t\t\t} = attributes.style?.layout ?? {};\n\n\t\t\t\t\tif ( columnStart || rowStart || columnSpan || rowSpan ) {\n\t\t\t\t\t\tconst hasEmptyLayoutAttribute =\n\t\t\t\t\t\t\tObject.keys( layout ).length === 0;\n\n\t\t\t\t\t\tupdates[ clientId ] = setImmutably(\n\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t\t[ 'style', 'layout' ],\n\t\t\t\t\t\t\thasEmptyLayoutAttribute ? undefined : layout\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} else {\n\t\t\t// Remove all of the columnStart and rowStart values\n\t\t\t// when switching from manual to auto mode,\n\t\t\tif ( previousIsManualPlacement === true ) {\n\t\t\t\tfor ( const clientId of blockOrder ) {\n\t\t\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\t\t\tconst { columnStart, rowStart, ...layout } =\n\t\t\t\t\t\tattributes.style?.layout ?? {};\n\t\t\t\t\t// Only update attributes if columnStart or rowStart are set.\n\t\t\t\t\tif ( columnStart || rowStart ) {\n\t\t\t\t\t\tconst hasEmptyLayoutAttribute =\n\t\t\t\t\t\t\tObject.keys( layout ).length === 0;\n\n\t\t\t\t\t\tupdates[ clientId ] = setImmutably(\n\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t\t[ 'style', 'layout' ],\n\t\t\t\t\t\t\thasEmptyLayoutAttribute ? undefined : layout\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove row styles in auto mode\n\t\t\tif ( gridLayout.rowCount ) {\n\t\t\t\tupdates[ gridClientId ] = {\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...gridLayout,\n\t\t\t\t\t\trowCount: undefined,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( Object.keys( updates ).length ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes(\n\t\t\t\tObject.keys( updates ),\n\t\t\t\tupdates,\n\t\t\t\t/* uniqueByBlock: */ true\n\t\t\t);\n\t\t}\n\t}, [\n\t\t// Actual deps to sync:\n\t\tgridClientId,\n\t\tgridLayout,\n\t\tpreviousBlockOrder,\n\t\tblockOrder,\n\t\tpreviouslySelectedBlockRect,\n\t\tpreviousIsManualPlacement,\n\t\t// These won't change, but the linter thinks they might:\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tgetBlockAttributes,\n\t\tgetBlockRootClientId,\n\t\tupdateBlockAttributes,\n\t] );\n}\n\n/**\n * @param {GridRect[]} occupiedRects\n * @param {number} gridColumnCount\n * @param {number} blockColumnSpan\n * @param {number} blockRowSpan\n * @param {number?} startColumn\n * @param {number?} startRow\n */\nfunction placeBlock(\n\toccupiedRects,\n\tgridColumnCount,\n\tblockColumnSpan,\n\tblockRowSpan,\n\tstartColumn = 1,\n\tstartRow = 1\n) {\n\tfor ( let row = startRow; ; row++ ) {\n\t\tfor (\n\t\t\tlet column = row === startRow ? startColumn : 1;\n\t\t\tcolumn <= gridColumnCount;\n\t\t\tcolumn++\n\t\t) {\n\t\t\tconst candidateRect = new GridRect( {\n\t\t\t\tcolumnStart: column,\n\t\t\t\trowStart: row,\n\t\t\t\tcolumnSpan: blockColumnSpan,\n\t\t\t\trowSpan: blockRowSpan,\n\t\t\t} );\n\t\t\tif (\n\t\t\t\t! occupiedRects.some( ( r ) =>\n\t\t\t\t\tr.intersectsRect( candidateRect )\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn [ column, row ];\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useDispatch","useSelect","useEffect","useMemo","usePrevious","store","blockEditorStore","GridRect","setImmutably","useGridLayoutSync","clientId","gridClientId","gridLayout","blockOrder","selectedBlockLayout","select","_getBlockAttributes$l","getBlockAttributes","getBlockOrder","selectedBlock","getSelectedBlock","layout","attributes","style","getBlockRootClientId","updateBlockAttributes","__unstableMarkNextChangeAsNotPersistent","selectedBlockRect","previouslySelectedBlockRect","previousIsManualPlacement","isManualPlacement","previousBlockOrder","updates","occupiedRects","_getBlockAttributes$s","columnStart","rowStart","columnSpan","rowSpan","push","_attributes$style$lay","newColumnStart","newRowStart","placeBlock","columnCount","columnEnd","rowEnd","bottomMostRow","Math","max","map","r","rowCount","includes","_attributes$style$lay2","rootClientId","rootAttributes","type","hasEmptyLayoutAttribute","Object","keys","length","undefined","_attributes$style$lay3","gridColumnCount","blockColumnSpan","blockRowSpan","startColumn","startRow","row","column","candidateRect","some","intersectsRect"],"sources":["@wordpress/block-editor/src/components/grid/use-grid-layout-sync.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect, useMemo } from '@wordpress/element';\nimport { usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { GridRect } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nexport function useGridLayoutSync( { clientId: gridClientId } ) {\n\tconst { gridLayout, blockOrder, selectedBlockLayout } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes, getBlockOrder } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst selectedBlock = select( blockEditorStore ).getSelectedBlock();\n\t\t\treturn {\n\t\t\t\tgridLayout: getBlockAttributes( gridClientId ).layout ?? {},\n\t\t\t\tblockOrder: getBlockOrder( gridClientId ),\n\t\t\t\tselectedBlockLayout: selectedBlock?.attributes.style?.layout,\n\t\t\t};\n\t\t},\n\t\t[ gridClientId ]\n\t);\n\n\tconst { getBlockAttributes, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { updateBlockAttributes, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst selectedBlockRect = useMemo(\n\t\t() =>\n\t\t\tselectedBlockLayout ? new GridRect( selectedBlockLayout ) : null,\n\t\t[ selectedBlockLayout ]\n\t);\n\n\tconst previouslySelectedBlockRect = usePrevious( selectedBlockRect );\n\tconst previousIsManualPlacement = usePrevious(\n\t\tgridLayout.isManualPlacement\n\t);\n\tconst previousBlockOrder = usePrevious( blockOrder );\n\n\tuseEffect( () => {\n\t\tconst updates = {};\n\n\t\tif ( gridLayout.isManualPlacement ) {\n\t\t\tconst occupiedRects = [];\n\n\t\t\t// Respect the position of blocks that already have a columnStart and rowStart value.\n\t\t\tfor ( const clientId of blockOrder ) {\n\t\t\t\tconst {\n\t\t\t\t\tcolumnStart,\n\t\t\t\t\trowStart,\n\t\t\t\t\tcolumnSpan = 1,\n\t\t\t\t\trowSpan = 1,\n\t\t\t\t} = getBlockAttributes( clientId ).style?.layout ?? {};\n\t\t\t\tif ( ! columnStart || ! rowStart ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\toccupiedRects.push(\n\t\t\t\t\tnew GridRect( {\n\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\trowStart,\n\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\trowSpan,\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// When in manual mode, ensure that every block has a columnStart and rowStart value.\n\t\t\tfor ( const clientId of blockOrder ) {\n\t\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\t\tconst {\n\t\t\t\t\tcolumnStart,\n\t\t\t\t\trowStart,\n\t\t\t\t\tcolumnSpan = 1,\n\t\t\t\t\trowSpan = 1,\n\t\t\t\t} = attributes.style?.layout ?? {};\n\t\t\t\tif ( columnStart && rowStart ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst [ newColumnStart, newRowStart ] = placeBlock(\n\t\t\t\t\toccupiedRects,\n\t\t\t\t\tgridLayout.columnCount,\n\t\t\t\t\tcolumnSpan,\n\t\t\t\t\trowSpan,\n\t\t\t\t\tpreviouslySelectedBlockRect?.columnEnd,\n\t\t\t\t\tpreviouslySelectedBlockRect?.rowEnd\n\t\t\t\t);\n\t\t\t\toccupiedRects.push(\n\t\t\t\t\tnew GridRect( {\n\t\t\t\t\t\tcolumnStart: newColumnStart,\n\t\t\t\t\t\trowStart: newRowStart,\n\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\trowSpan,\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\tupdates[ clientId ] = {\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\t...attributes.style,\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t...attributes.style?.layout,\n\t\t\t\t\t\t\tcolumnStart: newColumnStart,\n\t\t\t\t\t\t\trowStart: newRowStart,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Ensure there's enough rows to fit all blocks.\n\t\t\tconst bottomMostRow = Math.max(\n\t\t\t\t...occupiedRects.map( ( r ) => r.rowEnd )\n\t\t\t);\n\t\t\tif (\n\t\t\t\t! gridLayout.rowCount ||\n\t\t\t\tgridLayout.rowCount < bottomMostRow\n\t\t\t) {\n\t\t\t\tupdates[ gridClientId ] = {\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...gridLayout,\n\t\t\t\t\t\trowCount: bottomMostRow,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Unset grid layout attributes for blocks removed from the grid.\n\t\t\tfor ( const clientId of previousBlockOrder ?? [] ) {\n\t\t\t\tif ( ! blockOrder.includes( clientId ) ) {\n\t\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\t\t\t// Block was removed from the editor, so nothing to do.\n\t\t\t\t\tif ( rootClientId === null ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check if the block is being moved to another grid.\n\t\t\t\t\t// If so, do nothing and let the new grid parent handle\n\t\t\t\t\t// the attributes.\n\t\t\t\t\tconst rootAttributes = getBlockAttributes( rootClientId );\n\t\t\t\t\tif ( rootAttributes?.layout?.type === 'grid' ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\t\t\tconst {\n\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\trowStart,\n\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t...layout\n\t\t\t\t\t} = attributes.style?.layout ?? {};\n\n\t\t\t\t\tif ( columnStart || rowStart || columnSpan || rowSpan ) {\n\t\t\t\t\t\tconst hasEmptyLayoutAttribute =\n\t\t\t\t\t\t\tObject.keys( layout ).length === 0;\n\n\t\t\t\t\t\tupdates[ clientId ] = setImmutably(\n\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t\t[ 'style', 'layout' ],\n\t\t\t\t\t\t\thasEmptyLayoutAttribute ? undefined : layout\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} else {\n\t\t\t// Remove all of the columnStart and rowStart values\n\t\t\t// when switching from manual to auto mode,\n\t\t\tif ( previousIsManualPlacement === true ) {\n\t\t\t\tfor ( const clientId of blockOrder ) {\n\t\t\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\t\t\tconst { columnStart, rowStart, ...layout } =\n\t\t\t\t\t\tattributes.style?.layout ?? {};\n\t\t\t\t\t// Only update attributes if columnStart or rowStart are set.\n\t\t\t\t\tif ( columnStart || rowStart ) {\n\t\t\t\t\t\tconst hasEmptyLayoutAttribute =\n\t\t\t\t\t\t\tObject.keys( layout ).length === 0;\n\n\t\t\t\t\t\tupdates[ clientId ] = setImmutably(\n\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t\t[ 'style', 'layout' ],\n\t\t\t\t\t\t\thasEmptyLayoutAttribute ? undefined : layout\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove row styles in auto mode\n\t\t\tif ( gridLayout.rowCount ) {\n\t\t\t\tupdates[ gridClientId ] = {\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...gridLayout,\n\t\t\t\t\t\trowCount: undefined,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( Object.keys( updates ).length ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes(\n\t\t\t\tObject.keys( updates ),\n\t\t\t\tupdates,\n\t\t\t\t/* uniqueByBlock: */ true\n\t\t\t);\n\t\t}\n\t}, [\n\t\t// Actual deps to sync:\n\t\tgridClientId,\n\t\tgridLayout,\n\t\tpreviousBlockOrder,\n\t\tblockOrder,\n\t\tpreviouslySelectedBlockRect,\n\t\tpreviousIsManualPlacement,\n\t\t// These won't change, but the linter thinks they might:\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tgetBlockAttributes,\n\t\tgetBlockRootClientId,\n\t\tupdateBlockAttributes,\n\t] );\n}\n\n/**\n * @param {GridRect[]} occupiedRects\n * @param {number} gridColumnCount\n * @param {number} blockColumnSpan\n * @param {number} blockRowSpan\n * @param {number?} startColumn\n * @param {number?} startRow\n */\nfunction placeBlock(\n\toccupiedRects,\n\tgridColumnCount,\n\tblockColumnSpan,\n\tblockRowSpan,\n\tstartColumn = 1,\n\tstartRow = 1\n) {\n\tfor ( let row = startRow; ; row++ ) {\n\t\tfor (\n\t\t\tlet column = row === startRow ? startColumn : 1;\n\t\t\tcolumn <= gridColumnCount;\n\t\t\tcolumn++\n\t\t) {\n\t\t\tconst candidateRect = new GridRect( {\n\t\t\t\tcolumnStart: column,\n\t\t\t\trowStart: row,\n\t\t\t\tcolumnSpan: blockColumnSpan,\n\t\t\t\trowSpan: blockRowSpan,\n\t\t\t} );\n\t\t\tif (\n\t\t\t\t! occupiedRects.some( ( r ) =>\n\t\t\t\t\tr.intersectsRect( candidateRect )\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn [ column, row ];\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,SAAS,EAAEC,OAAO,QAAQ,oBAAoB;AACvD,SAASC,WAAW,QAAQ,oBAAoB;;AAEhD;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,SAASC,QAAQ,QAAQ,SAAS;AAClC,SAASC,YAAY,QAAQ,oBAAoB;AAEjD,OAAO,SAASC,iBAAiBA,CAAE;EAAEC,QAAQ,EAAEC;AAAa,CAAC,EAAG;EAC/D,MAAM;IAAEC,UAAU;IAAEC,UAAU;IAAEC;EAAoB,CAAC,GAAGb,SAAS,CAC9Dc,MAAM,IAAM;IAAA,IAAAC,qBAAA;IACb,MAAM;MAAEC,kBAAkB;MAAEC;IAAc,CAAC,GAC1CH,MAAM,CAAET,gBAAiB,CAAC;IAC3B,MAAMa,aAAa,GAAGJ,MAAM,CAAET,gBAAiB,CAAC,CAACc,gBAAgB,CAAC,CAAC;IACnE,OAAO;MACNR,UAAU,GAAAI,qBAAA,GAAEC,kBAAkB,CAAEN,YAAa,CAAC,CAACU,MAAM,cAAAL,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;MAC3DH,UAAU,EAAEK,aAAa,CAAEP,YAAa,CAAC;MACzCG,mBAAmB,EAAEK,aAAa,EAAEG,UAAU,CAACC,KAAK,EAAEF;IACvD,CAAC;EACF,CAAC,EACD,CAAEV,YAAY,CACf,CAAC;EAED,MAAM;IAAEM,kBAAkB;IAAEO;EAAqB,CAAC,GACjDvB,SAAS,CAAEK,gBAAiB,CAAC;EAC9B,MAAM;IAAEmB,qBAAqB;IAAEC;EAAwC,CAAC,GACvE1B,WAAW,CAAEM,gBAAiB,CAAC;EAEhC,MAAMqB,iBAAiB,GAAGxB,OAAO,CAChC,MACCW,mBAAmB,GAAG,IAAIP,QAAQ,CAAEO,mBAAoB,CAAC,GAAG,IAAI,EACjE,CAAEA,mBAAmB,CACtB,CAAC;EAED,MAAMc,2BAA2B,GAAGxB,WAAW,CAAEuB,iBAAkB,CAAC;EACpE,MAAME,yBAAyB,GAAGzB,WAAW,CAC5CQ,UAAU,CAACkB,iBACZ,CAAC;EACD,MAAMC,kBAAkB,GAAG3B,WAAW,CAAES,UAAW,CAAC;EAEpDX,SAAS,CAAE,MAAM;IAChB,MAAM8B,OAAO,GAAG,CAAC,CAAC;IAElB,IAAKpB,UAAU,CAACkB,iBAAiB,EAAG;MACnC,MAAMG,aAAa,GAAG,EAAE;;MAExB;MACA,KAAM,MAAMvB,QAAQ,IAAIG,UAAU,EAAG;QAAA,IAAAqB,qBAAA;QACpC,MAAM;UACLC,WAAW;UACXC,QAAQ;UACRC,UAAU,GAAG,CAAC;UACdC,OAAO,GAAG;QACX,CAAC,IAAAJ,qBAAA,GAAGjB,kBAAkB,CAAEP,QAAS,CAAC,CAACa,KAAK,EAAEF,MAAM,cAAAa,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;QACtD,IAAK,CAAEC,WAAW,IAAI,CAAEC,QAAQ,EAAG;UAClC;QACD;QACAH,aAAa,CAACM,IAAI,CACjB,IAAIhC,QAAQ,CAAE;UACb4B,WAAW;UACXC,QAAQ;UACRC,UAAU;UACVC;QACD,CAAE,CACH,CAAC;MACF;;MAEA;MACA,KAAM,MAAM5B,QAAQ,IAAIG,UAAU,EAAG;QAAA,IAAA2B,qBAAA;QACpC,MAAMlB,UAAU,GAAGL,kBAAkB,CAAEP,QAAS,CAAC;QACjD,MAAM;UACLyB,WAAW;UACXC,QAAQ;UACRC,UAAU,GAAG,CAAC;UACdC,OAAO,GAAG;QACX,CAAC,IAAAE,qBAAA,GAAGlB,UAAU,CAACC,KAAK,EAAEF,MAAM,cAAAmB,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;QAClC,IAAKL,WAAW,IAAIC,QAAQ,EAAG;UAC9B;QACD;QACA,MAAM,CAAEK,cAAc,EAAEC,WAAW,CAAE,GAAGC,UAAU,CACjDV,aAAa,EACbrB,UAAU,CAACgC,WAAW,EACtBP,UAAU,EACVC,OAAO,EACPV,2BAA2B,EAAEiB,SAAS,EACtCjB,2BAA2B,EAAEkB,MAC9B,CAAC;QACDb,aAAa,CAACM,IAAI,CACjB,IAAIhC,QAAQ,CAAE;UACb4B,WAAW,EAAEM,cAAc;UAC3BL,QAAQ,EAAEM,WAAW;UACrBL,UAAU;UACVC;QACD,CAAE,CACH,CAAC;QACDN,OAAO,CAAEtB,QAAQ,CAAE,GAAG;UACrBa,KAAK,EAAE;YACN,GAAGD,UAAU,CAACC,KAAK;YACnBF,MAAM,EAAE;cACP,GAAGC,UAAU,CAACC,KAAK,EAAEF,MAAM;cAC3Bc,WAAW,EAAEM,cAAc;cAC3BL,QAAQ,EAAEM;YACX;UACD;QACD,CAAC;MACF;;MAEA;MACA,MAAMK,aAAa,GAAGC,IAAI,CAACC,GAAG,CAC7B,GAAGhB,aAAa,CAACiB,GAAG,CAAIC,CAAC,IAAMA,CAAC,CAACL,MAAO,CACzC,CAAC;MACD,IACC,CAAElC,UAAU,CAACwC,QAAQ,IACrBxC,UAAU,CAACwC,QAAQ,GAAGL,aAAa,EAClC;QACDf,OAAO,CAAErB,YAAY,CAAE,GAAG;UACzBU,MAAM,EAAE;YACP,GAAGT,UAAU;YACbwC,QAAQ,EAAEL;UACX;QACD,CAAC;MACF;;MAEA;MACA,KAAM,MAAMrC,QAAQ,IAAIqB,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,EAAE,EAAG;QAClD,IAAK,CAAElB,UAAU,CAACwC,QAAQ,CAAE3C,QAAS,CAAC,EAAG;UAAA,IAAA4C,sBAAA;UACxC,MAAMC,YAAY,GAAG/B,oBAAoB,CAAEd,QAAS,CAAC;;UAErD;UACA,IAAK6C,YAAY,KAAK,IAAI,EAAG;YAC5B;UACD;;UAEA;UACA;UACA;UACA,MAAMC,cAAc,GAAGvC,kBAAkB,CAAEsC,YAAa,CAAC;UACzD,IAAKC,cAAc,EAAEnC,MAAM,EAAEoC,IAAI,KAAK,MAAM,EAAG;YAC9C;UACD;UAEA,MAAMnC,UAAU,GAAGL,kBAAkB,CAAEP,QAAS,CAAC;UACjD,MAAM;YACLyB,WAAW;YACXC,QAAQ;YACRC,UAAU;YACVC,OAAO;YACP,GAAGjB;UACJ,CAAC,IAAAiC,sBAAA,GAAGhC,UAAU,CAACC,KAAK,EAAEF,MAAM,cAAAiC,sBAAA,cAAAA,sBAAA,GAAI,CAAC,CAAC;UAElC,IAAKnB,WAAW,IAAIC,QAAQ,IAAIC,UAAU,IAAIC,OAAO,EAAG;YACvD,MAAMoB,uBAAuB,GAC5BC,MAAM,CAACC,IAAI,CAAEvC,MAAO,CAAC,CAACwC,MAAM,KAAK,CAAC;YAEnC7B,OAAO,CAAEtB,QAAQ,CAAE,GAAGF,YAAY,CACjCc,UAAU,EACV,CAAE,OAAO,EAAE,QAAQ,CAAE,EACrBoC,uBAAuB,GAAGI,SAAS,GAAGzC,MACvC,CAAC;UACF;QACD;MACD;IACD,CAAC,MAAM;MACN;MACA;MACA,IAAKQ,yBAAyB,KAAK,IAAI,EAAG;QACzC,KAAM,MAAMnB,QAAQ,IAAIG,UAAU,EAAG;UAAA,IAAAkD,sBAAA;UACpC,MAAMzC,UAAU,GAAGL,kBAAkB,CAAEP,QAAS,CAAC;UACjD,MAAM;YAAEyB,WAAW;YAAEC,QAAQ;YAAE,GAAGf;UAAO,CAAC,IAAA0C,sBAAA,GACzCzC,UAAU,CAACC,KAAK,EAAEF,MAAM,cAAA0C,sBAAA,cAAAA,sBAAA,GAAI,CAAC,CAAC;UAC/B;UACA,IAAK5B,WAAW,IAAIC,QAAQ,EAAG;YAC9B,MAAMsB,uBAAuB,GAC5BC,MAAM,CAACC,IAAI,CAAEvC,MAAO,CAAC,CAACwC,MAAM,KAAK,CAAC;YAEnC7B,OAAO,CAAEtB,QAAQ,CAAE,GAAGF,YAAY,CACjCc,UAAU,EACV,CAAE,OAAO,EAAE,QAAQ,CAAE,EACrBoC,uBAAuB,GAAGI,SAAS,GAAGzC,MACvC,CAAC;UACF;QACD;MACD;;MAEA;MACA,IAAKT,UAAU,CAACwC,QAAQ,EAAG;QAC1BpB,OAAO,CAAErB,YAAY,CAAE,GAAG;UACzBU,MAAM,EAAE;YACP,GAAGT,UAAU;YACbwC,QAAQ,EAAEU;UACX;QACD,CAAC;MACF;IACD;IAEA,IAAKH,MAAM,CAACC,IAAI,CAAE5B,OAAQ,CAAC,CAAC6B,MAAM,EAAG;MACpCnC,uCAAuC,CAAC,CAAC;MACzCD,qBAAqB,CACpBkC,MAAM,CAACC,IAAI,CAAE5B,OAAQ,CAAC,EACtBA,OAAO,EACP,oBAAqB,IACtB,CAAC;IACF;EACD,CAAC,EAAE;EACF;EACArB,YAAY,EACZC,UAAU,EACVmB,kBAAkB,EAClBlB,UAAU,EACVe,2BAA2B,EAC3BC,yBAAyB;EACzB;EACAH,uCAAuC,EACvCT,kBAAkB,EAClBO,oBAAoB,EACpBC,qBAAqB,CACpB,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASkB,UAAUA,CAClBV,aAAa,EACb+B,eAAe,EACfC,eAAe,EACfC,YAAY,EACZC,WAAW,GAAG,CAAC,EACfC,QAAQ,GAAG,CAAC,EACX;EACD,KAAM,IAAIC,GAAG,GAAGD,QAAQ,GAAIC,GAAG,EAAE,EAAG;IACnC,KACC,IAAIC,MAAM,GAAGD,GAAG,KAAKD,QAAQ,GAAGD,WAAW,GAAG,CAAC,EAC/CG,MAAM,IAAIN,eAAe,EACzBM,MAAM,EAAE,EACP;MACD,MAAMC,aAAa,GAAG,IAAIhE,QAAQ,CAAE;QACnC4B,WAAW,EAAEmC,MAAM;QACnBlC,QAAQ,EAAEiC,GAAG;QACbhC,UAAU,EAAE4B,eAAe;QAC3B3B,OAAO,EAAE4B;MACV,CAAE,CAAC;MACH,IACC,CAAEjC,aAAa,CAACuC,IAAI,CAAIrB,CAAC,IACxBA,CAAC,CAACsB,cAAc,CAAEF,aAAc,CACjC,CAAC,EACA;QACD,OAAO,CAAED,MAAM,EAAED,GAAG,CAAE;MACvB;IACD;EACD;AACD","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  export function range(start, length) {
2
3
  return Array.from({
3
4
  length
@@ -112,6 +113,14 @@ export function getGridItemRect(gridItemElement) {
112
113
  export function getGridInfo(gridElement) {
113
114
  const gridTemplateColumns = getComputedCSS(gridElement, 'grid-template-columns');
114
115
  const gridTemplateRows = getComputedCSS(gridElement, 'grid-template-rows');
116
+ const borderTopWidth = getComputedCSS(gridElement, 'border-top-width');
117
+ const borderRightWidth = getComputedCSS(gridElement, 'border-right-width');
118
+ const borderBottomWidth = getComputedCSS(gridElement, 'border-bottom-width');
119
+ const borderLeftWidth = getComputedCSS(gridElement, 'border-left-width');
120
+ const paddingTop = getComputedCSS(gridElement, 'padding-top');
121
+ const paddingRight = getComputedCSS(gridElement, 'padding-right');
122
+ const paddingBottom = getComputedCSS(gridElement, 'padding-bottom');
123
+ const paddingLeft = getComputedCSS(gridElement, 'padding-left');
115
124
  const numColumns = gridTemplateColumns.split(' ').length;
116
125
  const numRows = gridTemplateRows.split(' ').length;
117
126
  const numItems = numColumns * numRows;
@@ -124,7 +133,10 @@ export function getGridInfo(gridElement) {
124
133
  gridTemplateColumns,
125
134
  gridTemplateRows,
126
135
  gap: getComputedCSS(gridElement, 'gap'),
127
- padding: getComputedCSS(gridElement, 'padding')
136
+ paddingTop: `calc(${paddingTop} + ${borderTopWidth})`,
137
+ paddingRight: `calc(${paddingRight} + ${borderRightWidth})`,
138
+ paddingBottom: `calc(${paddingBottom} + ${borderBottomWidth})`,
139
+ paddingLeft: `calc(${paddingLeft} + ${borderLeftWidth})`
128
140
  }
129
141
  };
130
142
  }
@@ -1 +1 @@
1
- {"version":3,"names":["range","start","length","Array","from","_","i","GridRect","constructor","columnStart","rowStart","columnEnd","rowEnd","columnSpan","rowSpan","undefined","contains","column","row","containsRect","rect","intersectsRect","getComputedCSS","element","property","ownerDocument","defaultView","getComputedStyle","getPropertyValue","getGridTracks","template","gap","tracks","size","split","previousTrack","end","parseFloat","push","getClosestTrack","position","edge","reduce","closest","track","index","Math","abs","getGridRect","gridElement","columnGap","rowGap","gridColumnTracks","gridRowTracks","left","top","right","bottom","getGridItemRect","gridItemElement","parentElement","window","DOMRect","offsetLeft","offsetTop","offsetWidth","offsetHeight","getGridInfo","gridTemplateColumns","gridTemplateRows","numColumns","numRows","numItems","currentColor","style","padding"],"sources":["@wordpress/block-editor/src/components/grid/utils.js"],"sourcesContent":["export function range( start, length ) {\n\treturn Array.from( { length }, ( _, i ) => start + i );\n}\n\nexport class GridRect {\n\tconstructor( {\n\t\tcolumnStart,\n\t\trowStart,\n\t\tcolumnEnd,\n\t\trowEnd,\n\t\tcolumnSpan,\n\t\trowSpan,\n\t} = {} ) {\n\t\tthis.columnStart = columnStart ?? 1;\n\t\tthis.rowStart = rowStart ?? 1;\n\t\tif ( columnSpan !== undefined ) {\n\t\t\tthis.columnEnd = this.columnStart + columnSpan - 1;\n\t\t} else {\n\t\t\tthis.columnEnd = columnEnd ?? this.columnStart;\n\t\t}\n\t\tif ( rowSpan !== undefined ) {\n\t\t\tthis.rowEnd = this.rowStart + rowSpan - 1;\n\t\t} else {\n\t\t\tthis.rowEnd = rowEnd ?? this.rowStart;\n\t\t}\n\t}\n\n\tget columnSpan() {\n\t\treturn this.columnEnd - this.columnStart + 1;\n\t}\n\n\tget rowSpan() {\n\t\treturn this.rowEnd - this.rowStart + 1;\n\t}\n\n\tcontains( column, row ) {\n\t\treturn (\n\t\t\tcolumn >= this.columnStart &&\n\t\t\tcolumn <= this.columnEnd &&\n\t\t\trow >= this.rowStart &&\n\t\t\trow <= this.rowEnd\n\t\t);\n\t}\n\n\tcontainsRect( rect ) {\n\t\treturn (\n\t\t\tthis.contains( rect.columnStart, rect.rowStart ) &&\n\t\t\tthis.contains( rect.columnEnd, rect.rowEnd )\n\t\t);\n\t}\n\n\tintersectsRect( rect ) {\n\t\treturn (\n\t\t\tthis.columnStart <= rect.columnEnd &&\n\t\t\tthis.columnEnd >= rect.columnStart &&\n\t\t\tthis.rowStart <= rect.rowEnd &&\n\t\t\tthis.rowEnd >= rect.rowStart\n\t\t);\n\t}\n}\n\nexport function getComputedCSS( element, property ) {\n\treturn element.ownerDocument.defaultView\n\t\t.getComputedStyle( element )\n\t\t.getPropertyValue( property );\n}\n\n/**\n * Given a grid-template-columns or grid-template-rows CSS property value, gets the start and end\n * position in pixels of each grid track.\n *\n * https://css-tricks.com/snippets/css/complete-guide-grid/#aa-grid-track\n *\n * @param {string} template The grid-template-columns or grid-template-rows CSS property value.\n * Only supports fixed sizes in pixels.\n * @param {number} gap The gap between grid tracks in pixels.\n *\n * @return {Array<{start: number, end: number}>} An array of objects with the start and end\n * position in pixels of each grid track.\n */\nexport function getGridTracks( template, gap ) {\n\tconst tracks = [];\n\tfor ( const size of template.split( ' ' ) ) {\n\t\tconst previousTrack = tracks[ tracks.length - 1 ];\n\t\tconst start = previousTrack ? previousTrack.end + gap : 0;\n\t\tconst end = start + parseFloat( size );\n\t\ttracks.push( { start, end } );\n\t}\n\treturn tracks;\n}\n\n/**\n * Given an array of grid tracks and a position in pixels, gets the index of the closest track to\n * that position.\n *\n * https://css-tricks.com/snippets/css/complete-guide-grid/#aa-grid-track\n *\n * @param {Array<{start: number, end: number}>} tracks An array of objects with the start and end\n * position in pixels of each grid track.\n * @param {number} position The position in pixels.\n * @param {string} edge The edge of the track to compare the\n * position to. Either 'start' or 'end'.\n *\n * @return {number} The index of the closest track to the position. 0-based, unlike CSS grid which\n * is 1-based.\n */\nexport function getClosestTrack( tracks, position, edge = 'start' ) {\n\treturn tracks.reduce(\n\t\t( closest, track, index ) =>\n\t\t\tMath.abs( track[ edge ] - position ) <\n\t\t\tMath.abs( tracks[ closest ][ edge ] - position )\n\t\t\t\t? index\n\t\t\t\t: closest,\n\t\t0\n\t);\n}\n\nexport function getGridRect( gridElement, rect ) {\n\tconst columnGap = parseFloat( getComputedCSS( gridElement, 'column-gap' ) );\n\tconst rowGap = parseFloat( getComputedCSS( gridElement, 'row-gap' ) );\n\tconst gridColumnTracks = getGridTracks(\n\t\tgetComputedCSS( gridElement, 'grid-template-columns' ),\n\t\tcolumnGap\n\t);\n\tconst gridRowTracks = getGridTracks(\n\t\tgetComputedCSS( gridElement, 'grid-template-rows' ),\n\t\trowGap\n\t);\n\tconst columnStart = getClosestTrack( gridColumnTracks, rect.left ) + 1;\n\tconst rowStart = getClosestTrack( gridRowTracks, rect.top ) + 1;\n\tconst columnEnd =\n\t\tgetClosestTrack( gridColumnTracks, rect.right, 'end' ) + 1;\n\tconst rowEnd = getClosestTrack( gridRowTracks, rect.bottom, 'end' ) + 1;\n\treturn new GridRect( {\n\t\tcolumnStart,\n\t\tcolumnEnd,\n\t\trowStart,\n\t\trowEnd,\n\t} );\n}\n\nexport function getGridItemRect( gridItemElement ) {\n\treturn getGridRect(\n\t\tgridItemElement.parentElement,\n\t\tnew window.DOMRect(\n\t\t\tgridItemElement.offsetLeft,\n\t\t\tgridItemElement.offsetTop,\n\t\t\tgridItemElement.offsetWidth,\n\t\t\tgridItemElement.offsetHeight\n\t\t)\n\t);\n}\n\nexport function getGridInfo( gridElement ) {\n\tconst gridTemplateColumns = getComputedCSS(\n\t\tgridElement,\n\t\t'grid-template-columns'\n\t);\n\tconst gridTemplateRows = getComputedCSS(\n\t\tgridElement,\n\t\t'grid-template-rows'\n\t);\n\tconst numColumns = gridTemplateColumns.split( ' ' ).length;\n\tconst numRows = gridTemplateRows.split( ' ' ).length;\n\tconst numItems = numColumns * numRows;\n\treturn {\n\t\tnumColumns,\n\t\tnumRows,\n\t\tnumItems,\n\t\tcurrentColor: getComputedCSS( gridElement, 'color' ),\n\t\tstyle: {\n\t\t\tgridTemplateColumns,\n\t\t\tgridTemplateRows,\n\t\t\tgap: getComputedCSS( gridElement, 'gap' ),\n\t\t\tpadding: getComputedCSS( gridElement, 'padding' ),\n\t\t},\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["range","start","length","Array","from","_","i","GridRect","constructor","columnStart","rowStart","columnEnd","rowEnd","columnSpan","rowSpan","undefined","contains","column","row","containsRect","rect","intersectsRect","getComputedCSS","element","property","ownerDocument","defaultView","getComputedStyle","getPropertyValue","getGridTracks","template","gap","tracks","size","split","previousTrack","end","parseFloat","push","getClosestTrack","position","edge","reduce","closest","track","index","Math","abs","getGridRect","gridElement","columnGap","rowGap","gridColumnTracks","gridRowTracks","left","top","right","bottom","getGridItemRect","gridItemElement","parentElement","window","DOMRect","offsetLeft","offsetTop","offsetWidth","offsetHeight","getGridInfo","gridTemplateColumns","gridTemplateRows","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","paddingTop","paddingRight","paddingBottom","paddingLeft","numColumns","numRows","numItems","currentColor","style"],"sources":["@wordpress/block-editor/src/components/grid/utils.js"],"sourcesContent":["export function range( start, length ) {\n\treturn Array.from( { length }, ( _, i ) => start + i );\n}\n\nexport class GridRect {\n\tconstructor( {\n\t\tcolumnStart,\n\t\trowStart,\n\t\tcolumnEnd,\n\t\trowEnd,\n\t\tcolumnSpan,\n\t\trowSpan,\n\t} = {} ) {\n\t\tthis.columnStart = columnStart ?? 1;\n\t\tthis.rowStart = rowStart ?? 1;\n\t\tif ( columnSpan !== undefined ) {\n\t\t\tthis.columnEnd = this.columnStart + columnSpan - 1;\n\t\t} else {\n\t\t\tthis.columnEnd = columnEnd ?? this.columnStart;\n\t\t}\n\t\tif ( rowSpan !== undefined ) {\n\t\t\tthis.rowEnd = this.rowStart + rowSpan - 1;\n\t\t} else {\n\t\t\tthis.rowEnd = rowEnd ?? this.rowStart;\n\t\t}\n\t}\n\n\tget columnSpan() {\n\t\treturn this.columnEnd - this.columnStart + 1;\n\t}\n\n\tget rowSpan() {\n\t\treturn this.rowEnd - this.rowStart + 1;\n\t}\n\n\tcontains( column, row ) {\n\t\treturn (\n\t\t\tcolumn >= this.columnStart &&\n\t\t\tcolumn <= this.columnEnd &&\n\t\t\trow >= this.rowStart &&\n\t\t\trow <= this.rowEnd\n\t\t);\n\t}\n\n\tcontainsRect( rect ) {\n\t\treturn (\n\t\t\tthis.contains( rect.columnStart, rect.rowStart ) &&\n\t\t\tthis.contains( rect.columnEnd, rect.rowEnd )\n\t\t);\n\t}\n\n\tintersectsRect( rect ) {\n\t\treturn (\n\t\t\tthis.columnStart <= rect.columnEnd &&\n\t\t\tthis.columnEnd >= rect.columnStart &&\n\t\t\tthis.rowStart <= rect.rowEnd &&\n\t\t\tthis.rowEnd >= rect.rowStart\n\t\t);\n\t}\n}\n\nexport function getComputedCSS( element, property ) {\n\treturn element.ownerDocument.defaultView\n\t\t.getComputedStyle( element )\n\t\t.getPropertyValue( property );\n}\n\n/**\n * Given a grid-template-columns or grid-template-rows CSS property value, gets the start and end\n * position in pixels of each grid track.\n *\n * https://css-tricks.com/snippets/css/complete-guide-grid/#aa-grid-track\n *\n * @param {string} template The grid-template-columns or grid-template-rows CSS property value.\n * Only supports fixed sizes in pixels.\n * @param {number} gap The gap between grid tracks in pixels.\n *\n * @return {Array<{start: number, end: number}>} An array of objects with the start and end\n * position in pixels of each grid track.\n */\nexport function getGridTracks( template, gap ) {\n\tconst tracks = [];\n\tfor ( const size of template.split( ' ' ) ) {\n\t\tconst previousTrack = tracks[ tracks.length - 1 ];\n\t\tconst start = previousTrack ? previousTrack.end + gap : 0;\n\t\tconst end = start + parseFloat( size );\n\t\ttracks.push( { start, end } );\n\t}\n\treturn tracks;\n}\n\n/**\n * Given an array of grid tracks and a position in pixels, gets the index of the closest track to\n * that position.\n *\n * https://css-tricks.com/snippets/css/complete-guide-grid/#aa-grid-track\n *\n * @param {Array<{start: number, end: number}>} tracks An array of objects with the start and end\n * position in pixels of each grid track.\n * @param {number} position The position in pixels.\n * @param {string} edge The edge of the track to compare the\n * position to. Either 'start' or 'end'.\n *\n * @return {number} The index of the closest track to the position. 0-based, unlike CSS grid which\n * is 1-based.\n */\nexport function getClosestTrack( tracks, position, edge = 'start' ) {\n\treturn tracks.reduce(\n\t\t( closest, track, index ) =>\n\t\t\tMath.abs( track[ edge ] - position ) <\n\t\t\tMath.abs( tracks[ closest ][ edge ] - position )\n\t\t\t\t? index\n\t\t\t\t: closest,\n\t\t0\n\t);\n}\n\nexport function getGridRect( gridElement, rect ) {\n\tconst columnGap = parseFloat( getComputedCSS( gridElement, 'column-gap' ) );\n\tconst rowGap = parseFloat( getComputedCSS( gridElement, 'row-gap' ) );\n\tconst gridColumnTracks = getGridTracks(\n\t\tgetComputedCSS( gridElement, 'grid-template-columns' ),\n\t\tcolumnGap\n\t);\n\tconst gridRowTracks = getGridTracks(\n\t\tgetComputedCSS( gridElement, 'grid-template-rows' ),\n\t\trowGap\n\t);\n\tconst columnStart = getClosestTrack( gridColumnTracks, rect.left ) + 1;\n\tconst rowStart = getClosestTrack( gridRowTracks, rect.top ) + 1;\n\tconst columnEnd =\n\t\tgetClosestTrack( gridColumnTracks, rect.right, 'end' ) + 1;\n\tconst rowEnd = getClosestTrack( gridRowTracks, rect.bottom, 'end' ) + 1;\n\treturn new GridRect( {\n\t\tcolumnStart,\n\t\tcolumnEnd,\n\t\trowStart,\n\t\trowEnd,\n\t} );\n}\n\nexport function getGridItemRect( gridItemElement ) {\n\treturn getGridRect(\n\t\tgridItemElement.parentElement,\n\t\tnew window.DOMRect(\n\t\t\tgridItemElement.offsetLeft,\n\t\t\tgridItemElement.offsetTop,\n\t\t\tgridItemElement.offsetWidth,\n\t\t\tgridItemElement.offsetHeight\n\t\t)\n\t);\n}\n\nexport function getGridInfo( gridElement ) {\n\tconst gridTemplateColumns = getComputedCSS(\n\t\tgridElement,\n\t\t'grid-template-columns'\n\t);\n\tconst gridTemplateRows = getComputedCSS(\n\t\tgridElement,\n\t\t'grid-template-rows'\n\t);\n\tconst borderTopWidth = getComputedCSS( gridElement, 'border-top-width' );\n\tconst borderRightWidth = getComputedCSS(\n\t\tgridElement,\n\t\t'border-right-width'\n\t);\n\tconst borderBottomWidth = getComputedCSS(\n\t\tgridElement,\n\t\t'border-bottom-width'\n\t);\n\tconst borderLeftWidth = getComputedCSS( gridElement, 'border-left-width' );\n\tconst paddingTop = getComputedCSS( gridElement, 'padding-top' );\n\tconst paddingRight = getComputedCSS( gridElement, 'padding-right' );\n\tconst paddingBottom = getComputedCSS( gridElement, 'padding-bottom' );\n\tconst paddingLeft = getComputedCSS( gridElement, 'padding-left' );\n\n\tconst numColumns = gridTemplateColumns.split( ' ' ).length;\n\tconst numRows = gridTemplateRows.split( ' ' ).length;\n\tconst numItems = numColumns * numRows;\n\treturn {\n\t\tnumColumns,\n\t\tnumRows,\n\t\tnumItems,\n\t\tcurrentColor: getComputedCSS( gridElement, 'color' ),\n\t\tstyle: {\n\t\t\tgridTemplateColumns,\n\t\t\tgridTemplateRows,\n\t\t\tgap: getComputedCSS( gridElement, 'gap' ),\n\t\t\tpaddingTop: `calc(${ paddingTop } + ${ borderTopWidth })`,\n\t\t\tpaddingRight: `calc(${ paddingRight } + ${ borderRightWidth })`,\n\t\t\tpaddingBottom: `calc(${ paddingBottom } + ${ borderBottomWidth })`,\n\t\t\tpaddingLeft: `calc(${ paddingLeft } + ${ borderLeftWidth })`,\n\t\t},\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  let compatibilityStyles = null;
2
3
 
3
4
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["compatibilityStyles","getCompatibilityStyles","Array","from","document","styleSheets","reduce","accumulator","styleSheet","cssRules","e","ownerNode","id","startsWith","matchFromRules","_cssRules","find","selectorText","conditionText","__cssRules","includes","isInline","tagName","mainStylesCssId","replace","mainStylesElement","getElementById","push","cloneNode","inlineStylesCssId","inlineStylesElement"],"sources":["@wordpress/block-editor/src/components/iframe/get-compatibility-styles.js"],"sourcesContent":["let compatibilityStyles = null;\n\n/**\n * Returns a list of stylesheets that target the editor canvas. A stylesheet is\n * considered targetting the editor a canvas if it contains the\n * `editor-styles-wrapper`, `wp-block`, or `wp-block-*` class selectors.\n *\n * Ideally, this hook should be removed in the future and styles should be added\n * explicitly as editor styles.\n */\nexport function getCompatibilityStyles() {\n\tif ( compatibilityStyles ) {\n\t\treturn compatibilityStyles;\n\t}\n\n\t// Only memoize the result once on load, since these stylesheets should not\n\t// change.\n\tcompatibilityStyles = Array.from( document.styleSheets ).reduce(\n\t\t( accumulator, styleSheet ) => {\n\t\t\ttry {\n\t\t\t\t// May fail for external styles.\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\tstyleSheet.cssRules;\n\t\t\t} catch ( e ) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\n\t\t\tconst { ownerNode, cssRules } = styleSheet;\n\n\t\t\t// Stylesheet is added by another stylesheet. See\n\t\t\t// https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet/ownerNode#notes.\n\t\t\tif ( ownerNode === null ) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\n\t\t\tif ( ! cssRules ) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\n\t\t\t// Don't try to add core WP styles. We are responsible for adding\n\t\t\t// them. This compatibility layer is only meant to add styles added\n\t\t\t// by plugins or themes.\n\t\t\tif ( ownerNode.id.startsWith( 'wp-' ) ) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\n\t\t\t// Don't try to add styles without ID. Styles enqueued via the WP dependency system will always have IDs.\n\t\t\tif ( ! ownerNode.id ) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\n\t\t\tfunction matchFromRules( _cssRules ) {\n\t\t\t\treturn Array.from( _cssRules ).find(\n\t\t\t\t\t( {\n\t\t\t\t\t\tselectorText,\n\t\t\t\t\t\tconditionText,\n\t\t\t\t\t\tcssRules: __cssRules,\n\t\t\t\t\t} ) => {\n\t\t\t\t\t\t// If the rule is conditional then it will not have selector text.\n\t\t\t\t\t\t// Recurse into child CSS ruleset to determine selector eligibility.\n\t\t\t\t\t\tif ( conditionText ) {\n\t\t\t\t\t\t\treturn matchFromRules( __cssRules );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tselectorText &&\n\t\t\t\t\t\t\t( selectorText.includes(\n\t\t\t\t\t\t\t\t'.editor-styles-wrapper'\n\t\t\t\t\t\t\t) ||\n\t\t\t\t\t\t\t\tselectorText.includes( '.wp-block' ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif ( matchFromRules( cssRules ) ) {\n\t\t\t\tconst isInline = ownerNode.tagName === 'STYLE';\n\n\t\t\t\tif ( isInline ) {\n\t\t\t\t\t// If the current target is inline,\n\t\t\t\t\t// it could be a dependency of an existing stylesheet.\n\t\t\t\t\t// Look for that dependency and add it BEFORE the current target.\n\t\t\t\t\tconst mainStylesCssId = ownerNode.id.replace(\n\t\t\t\t\t\t'-inline-css',\n\t\t\t\t\t\t'-css'\n\t\t\t\t\t);\n\t\t\t\t\tconst mainStylesElement =\n\t\t\t\t\t\tdocument.getElementById( mainStylesCssId );\n\t\t\t\t\tif ( mainStylesElement ) {\n\t\t\t\t\t\taccumulator.push( mainStylesElement.cloneNode( true ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\taccumulator.push( ownerNode.cloneNode( true ) );\n\n\t\t\t\tif ( ! isInline ) {\n\t\t\t\t\t// If the current target is not inline,\n\t\t\t\t\t// we still look for inline styles that could be relevant for the current target.\n\t\t\t\t\t// If they exist, add them AFTER the current target.\n\t\t\t\t\tconst inlineStylesCssId = ownerNode.id.replace(\n\t\t\t\t\t\t'-css',\n\t\t\t\t\t\t'-inline-css'\n\t\t\t\t\t);\n\t\t\t\t\tconst inlineStylesElement =\n\t\t\t\t\t\tdocument.getElementById( inlineStylesCssId );\n\t\t\t\t\tif ( inlineStylesElement ) {\n\t\t\t\t\t\taccumulator.push(\n\t\t\t\t\t\t\tinlineStylesElement.cloneNode( true )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n\n\treturn compatibilityStyles;\n}\n"],"mappings":"AAAA,IAAIA,mBAAmB,GAAG,IAAI;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAAA,EAAG;EACxC,IAAKD,mBAAmB,EAAG;IAC1B,OAAOA,mBAAmB;EAC3B;;EAEA;EACA;EACAA,mBAAmB,GAAGE,KAAK,CAACC,IAAI,CAAEC,QAAQ,CAACC,WAAY,CAAC,CAACC,MAAM,CAC9D,CAAEC,WAAW,EAAEC,UAAU,KAAM;IAC9B,IAAI;MACH;MACA;MACAA,UAAU,CAACC,QAAQ;IACpB,CAAC,CAAC,OAAQC,CAAC,EAAG;MACb,OAAOH,WAAW;IACnB;IAEA,MAAM;MAAEI,SAAS;MAAEF;IAAS,CAAC,GAAGD,UAAU;;IAE1C;IACA;IACA,IAAKG,SAAS,KAAK,IAAI,EAAG;MACzB,OAAOJ,WAAW;IACnB;IAEA,IAAK,CAAEE,QAAQ,EAAG;MACjB,OAAOF,WAAW;IACnB;;IAEA;IACA;IACA;IACA,IAAKI,SAAS,CAACC,EAAE,CAACC,UAAU,CAAE,KAAM,CAAC,EAAG;MACvC,OAAON,WAAW;IACnB;;IAEA;IACA,IAAK,CAAEI,SAAS,CAACC,EAAE,EAAG;MACrB,OAAOL,WAAW;IACnB;IAEA,SAASO,cAAcA,CAAEC,SAAS,EAAG;MACpC,OAAOb,KAAK,CAACC,IAAI,CAAEY,SAAU,CAAC,CAACC,IAAI,CAClC,CAAE;QACDC,YAAY;QACZC,aAAa;QACbT,QAAQ,EAAEU;MACX,CAAC,KAAM;QACN;QACA;QACA,IAAKD,aAAa,EAAG;UACpB,OAAOJ,cAAc,CAAEK,UAAW,CAAC;QACpC;QAEA,OACCF,YAAY,KACVA,YAAY,CAACG,QAAQ,CACtB,wBACD,CAAC,IACAH,YAAY,CAACG,QAAQ,CAAE,WAAY,CAAC,CAAE;MAEzC,CACD,CAAC;IACF;IAEA,IAAKN,cAAc,CAAEL,QAAS,CAAC,EAAG;MACjC,MAAMY,QAAQ,GAAGV,SAAS,CAACW,OAAO,KAAK,OAAO;MAE9C,IAAKD,QAAQ,EAAG;QACf;QACA;QACA;QACA,MAAME,eAAe,GAAGZ,SAAS,CAACC,EAAE,CAACY,OAAO,CAC3C,aAAa,EACb,MACD,CAAC;QACD,MAAMC,iBAAiB,GACtBrB,QAAQ,CAACsB,cAAc,CAAEH,eAAgB,CAAC;QAC3C,IAAKE,iBAAiB,EAAG;UACxBlB,WAAW,CAACoB,IAAI,CAAEF,iBAAiB,CAACG,SAAS,CAAE,IAAK,CAAE,CAAC;QACxD;MACD;MAEArB,WAAW,CAACoB,IAAI,CAAEhB,SAAS,CAACiB,SAAS,CAAE,IAAK,CAAE,CAAC;MAE/C,IAAK,CAAEP,QAAQ,EAAG;QACjB;QACA;QACA;QACA,MAAMQ,iBAAiB,GAAGlB,SAAS,CAACC,EAAE,CAACY,OAAO,CAC7C,MAAM,EACN,aACD,CAAC;QACD,MAAMM,mBAAmB,GACxB1B,QAAQ,CAACsB,cAAc,CAAEG,iBAAkB,CAAC;QAC7C,IAAKC,mBAAmB,EAAG;UAC1BvB,WAAW,CAACoB,IAAI,CACfG,mBAAmB,CAACF,SAAS,CAAE,IAAK,CACrC,CAAC;QACF;MACD;IACD;IAEA,OAAOrB,WAAW;EACnB,CAAC,EACD,EACD,CAAC;EAED,OAAOP,mBAAmB;AAC3B","ignoreList":[]}
1
+ {"version":3,"names":["compatibilityStyles","getCompatibilityStyles","Array","from","document","styleSheets","reduce","accumulator","styleSheet","cssRules","e","ownerNode","id","startsWith","matchFromRules","_cssRules","find","selectorText","conditionText","__cssRules","includes","isInline","tagName","mainStylesCssId","replace","mainStylesElement","getElementById","push","cloneNode","inlineStylesCssId","inlineStylesElement"],"sources":["@wordpress/block-editor/src/components/iframe/get-compatibility-styles.js"],"sourcesContent":["let compatibilityStyles = null;\n\n/**\n * Returns a list of stylesheets that target the editor canvas. A stylesheet is\n * considered targetting the editor a canvas if it contains the\n * `editor-styles-wrapper`, `wp-block`, or `wp-block-*` class selectors.\n *\n * Ideally, this hook should be removed in the future and styles should be added\n * explicitly as editor styles.\n */\nexport function getCompatibilityStyles() {\n\tif ( compatibilityStyles ) {\n\t\treturn compatibilityStyles;\n\t}\n\n\t// Only memoize the result once on load, since these stylesheets should not\n\t// change.\n\tcompatibilityStyles = Array.from( document.styleSheets ).reduce(\n\t\t( accumulator, styleSheet ) => {\n\t\t\ttry {\n\t\t\t\t// May fail for external styles.\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\tstyleSheet.cssRules;\n\t\t\t} catch ( e ) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\n\t\t\tconst { ownerNode, cssRules } = styleSheet;\n\n\t\t\t// Stylesheet is added by another stylesheet. See\n\t\t\t// https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet/ownerNode#notes.\n\t\t\tif ( ownerNode === null ) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\n\t\t\tif ( ! cssRules ) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\n\t\t\t// Don't try to add core WP styles. We are responsible for adding\n\t\t\t// them. This compatibility layer is only meant to add styles added\n\t\t\t// by plugins or themes.\n\t\t\tif ( ownerNode.id.startsWith( 'wp-' ) ) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\n\t\t\t// Don't try to add styles without ID. Styles enqueued via the WP dependency system will always have IDs.\n\t\t\tif ( ! ownerNode.id ) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\n\t\t\tfunction matchFromRules( _cssRules ) {\n\t\t\t\treturn Array.from( _cssRules ).find(\n\t\t\t\t\t( {\n\t\t\t\t\t\tselectorText,\n\t\t\t\t\t\tconditionText,\n\t\t\t\t\t\tcssRules: __cssRules,\n\t\t\t\t\t} ) => {\n\t\t\t\t\t\t// If the rule is conditional then it will not have selector text.\n\t\t\t\t\t\t// Recurse into child CSS ruleset to determine selector eligibility.\n\t\t\t\t\t\tif ( conditionText ) {\n\t\t\t\t\t\t\treturn matchFromRules( __cssRules );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tselectorText &&\n\t\t\t\t\t\t\t( selectorText.includes(\n\t\t\t\t\t\t\t\t'.editor-styles-wrapper'\n\t\t\t\t\t\t\t) ||\n\t\t\t\t\t\t\t\tselectorText.includes( '.wp-block' ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif ( matchFromRules( cssRules ) ) {\n\t\t\t\tconst isInline = ownerNode.tagName === 'STYLE';\n\n\t\t\t\tif ( isInline ) {\n\t\t\t\t\t// If the current target is inline,\n\t\t\t\t\t// it could be a dependency of an existing stylesheet.\n\t\t\t\t\t// Look for that dependency and add it BEFORE the current target.\n\t\t\t\t\tconst mainStylesCssId = ownerNode.id.replace(\n\t\t\t\t\t\t'-inline-css',\n\t\t\t\t\t\t'-css'\n\t\t\t\t\t);\n\t\t\t\t\tconst mainStylesElement =\n\t\t\t\t\t\tdocument.getElementById( mainStylesCssId );\n\t\t\t\t\tif ( mainStylesElement ) {\n\t\t\t\t\t\taccumulator.push( mainStylesElement.cloneNode( true ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\taccumulator.push( ownerNode.cloneNode( true ) );\n\n\t\t\t\tif ( ! isInline ) {\n\t\t\t\t\t// If the current target is not inline,\n\t\t\t\t\t// we still look for inline styles that could be relevant for the current target.\n\t\t\t\t\t// If they exist, add them AFTER the current target.\n\t\t\t\t\tconst inlineStylesCssId = ownerNode.id.replace(\n\t\t\t\t\t\t'-css',\n\t\t\t\t\t\t'-inline-css'\n\t\t\t\t\t);\n\t\t\t\t\tconst inlineStylesElement =\n\t\t\t\t\t\tdocument.getElementById( inlineStylesCssId );\n\t\t\t\t\tif ( inlineStylesElement ) {\n\t\t\t\t\t\taccumulator.push(\n\t\t\t\t\t\t\tinlineStylesElement.cloneNode( true )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n\n\treturn compatibilityStyles;\n}\n"],"mappings":";AAAA,IAAIA,mBAAmB,GAAG,IAAI;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAAA,EAAG;EACxC,IAAKD,mBAAmB,EAAG;IAC1B,OAAOA,mBAAmB;EAC3B;;EAEA;EACA;EACAA,mBAAmB,GAAGE,KAAK,CAACC,IAAI,CAAEC,QAAQ,CAACC,WAAY,CAAC,CAACC,MAAM,CAC9D,CAAEC,WAAW,EAAEC,UAAU,KAAM;IAC9B,IAAI;MACH;MACA;MACAA,UAAU,CAACC,QAAQ;IACpB,CAAC,CAAC,OAAQC,CAAC,EAAG;MACb,OAAOH,WAAW;IACnB;IAEA,MAAM;MAAEI,SAAS;MAAEF;IAAS,CAAC,GAAGD,UAAU;;IAE1C;IACA;IACA,IAAKG,SAAS,KAAK,IAAI,EAAG;MACzB,OAAOJ,WAAW;IACnB;IAEA,IAAK,CAAEE,QAAQ,EAAG;MACjB,OAAOF,WAAW;IACnB;;IAEA;IACA;IACA;IACA,IAAKI,SAAS,CAACC,EAAE,CAACC,UAAU,CAAE,KAAM,CAAC,EAAG;MACvC,OAAON,WAAW;IACnB;;IAEA;IACA,IAAK,CAAEI,SAAS,CAACC,EAAE,EAAG;MACrB,OAAOL,WAAW;IACnB;IAEA,SAASO,cAAcA,CAAEC,SAAS,EAAG;MACpC,OAAOb,KAAK,CAACC,IAAI,CAAEY,SAAU,CAAC,CAACC,IAAI,CAClC,CAAE;QACDC,YAAY;QACZC,aAAa;QACbT,QAAQ,EAAEU;MACX,CAAC,KAAM;QACN;QACA;QACA,IAAKD,aAAa,EAAG;UACpB,OAAOJ,cAAc,CAAEK,UAAW,CAAC;QACpC;QAEA,OACCF,YAAY,KACVA,YAAY,CAACG,QAAQ,CACtB,wBACD,CAAC,IACAH,YAAY,CAACG,QAAQ,CAAE,WAAY,CAAC,CAAE;MAEzC,CACD,CAAC;IACF;IAEA,IAAKN,cAAc,CAAEL,QAAS,CAAC,EAAG;MACjC,MAAMY,QAAQ,GAAGV,SAAS,CAACW,OAAO,KAAK,OAAO;MAE9C,IAAKD,QAAQ,EAAG;QACf;QACA;QACA;QACA,MAAME,eAAe,GAAGZ,SAAS,CAACC,EAAE,CAACY,OAAO,CAC3C,aAAa,EACb,MACD,CAAC;QACD,MAAMC,iBAAiB,GACtBrB,QAAQ,CAACsB,cAAc,CAAEH,eAAgB,CAAC;QAC3C,IAAKE,iBAAiB,EAAG;UACxBlB,WAAW,CAACoB,IAAI,CAAEF,iBAAiB,CAACG,SAAS,CAAE,IAAK,CAAE,CAAC;QACxD;MACD;MAEArB,WAAW,CAACoB,IAAI,CAAEhB,SAAS,CAACiB,SAAS,CAAE,IAAK,CAAE,CAAC;MAE/C,IAAK,CAAEP,QAAQ,EAAG;QACjB;QACA;QACA;QACA,MAAMQ,iBAAiB,GAAGlB,SAAS,CAACC,EAAE,CAACY,OAAO,CAC7C,MAAM,EACN,aACD,CAAC;QACD,MAAMM,mBAAmB,GACxB1B,QAAQ,CAACsB,cAAc,CAAEG,iBAAkB,CAAC;QAC7C,IAAKC,mBAAmB,EAAG;UAC1BvB,WAAW,CAACoB,IAAI,CACfG,mBAAmB,CAACF,SAAS,CAAE,IAAK,CACrC,CAAC;QACF;MACD;IACD;IAEA,OAAOrB,WAAW;EACnB,CAAC,EACD,EACD,CAAC;EAED,OAAOP,mBAAmB;AAC3B","ignoreList":[]}
@@ -171,7 +171,7 @@ function Iframe({
171
171
  // Appending a hash to the current URL will not reload the
172
172
  // page. This is useful for e.g. footnotes.
173
173
  const href = event.target.getAttribute('href');
174
- if (href.startsWith('#')) {
174
+ if (href?.startsWith('#')) {
175
175
  iFrameDocument.defaultView.location.hash = href.slice(1);
176
176
  }
177
177
  }
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","useState","createPortal","forwardRef","useMemo","useEffect","__","useMergeRefs","useRefEffect","useDisabled","__experimentalStyleProvider","StyleProvider","useSelect","useBlockSelectionClearer","useWritingFlow","getCompatibilityStyles","useScaleCanvas","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","bubbleEvent","event","Constructor","frame","init","key","contentDocument","defaultView","MouseEvent","rect","getBoundingClientRect","clientX","left","clientY","top","newEvent","type","defaultPrevented","preventDefault","cancelled","dispatchEvent","useBubbleEvents","iframeDocument","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","select","getSettings","settings","__unstableResolvedAssets","styles","scripts","setIframeDocument","bodyClasses","setBodyClasses","clearerRef","before","writingFlowRef","after","setRef","node","_load","iFrameDocument","preventFileDropDefault","onLoad","ownerDocument","classList","add","Array","from","body","filter","startsWith","dir","compatStyle","getElementById","id","head","appendChild","cloneNode","console","warn","target","tagName","href","getAttribute","location","hash","slice","contentResizeListener","containerResizeListener","isZoomedOut","scaleContainerWidth","parseInt","disabledRef","isDisabled","bodyRef","origin","src","cleanup","_src","URL","createObjectURL","Blob","revokeObjectURL","shouldRenderFocusCaptureElements","iframe","style","height","border","onKeyDown","currentTarget","stopPropagation","nativeEvent","KeyboardEvent","className","document","IframeIfReady","isInitialised","__internalIsInitialized"],"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} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useMergeRefs, useRefEffect, useDisabled } 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 { useScaleCanvas } from './use-scale-canvas';\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.isPreviewMode,\n\t\t};\n\t}, [] );\n\tconst { styles = '', scripts = '' } = resolvedAssets;\n\t/** @type {[Document, import('react').Dispatch<Document>]} */\n\tconst [ iframeDocument, setIframeDocument ] = useState();\n\tconst [ bodyClasses, setBodyClasses ] = useState( [] );\n\tconst clearerRef = useBlockSelectionClearer();\n\tconst [ before, writingFlowRef, after ] = useWritingFlow();\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\t// Prevent clicks on links from navigating away. Note that links\n\t\t\t// inside `contenteditable` are already disabled by the browser, so\n\t\t\t// this is for links in blocks outside of `contenteditable`.\n\t\t\tiFrameDocument.addEventListener( 'click', ( event ) => {\n\t\t\t\tif ( event.target.tagName === 'A' ) {\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t// Appending a hash to the current URL will not reload the\n\t\t\t\t\t// page. This is useful for e.g. footnotes.\n\t\t\t\t\tconst href = event.target.getAttribute( 'href' );\n\t\t\t\t\tif ( href.startsWith( '#' ) ) {\n\t\t\t\t\t\tiFrameDocument.defaultView.location.hash =\n\t\t\t\t\t\t\thref.slice( 1 );\n\t\t\t\t\t}\n\t\t\t\t}\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 {\n\t\tcontentResizeListener,\n\t\tcontainerResizeListener,\n\t\tisZoomedOut,\n\t\tscaleContainerWidth,\n\t} = useScaleCanvas( {\n\t\tscale,\n\t\tframeSize: parseInt( frameSize ),\n\t\tiframeDocument,\n\t} );\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] );\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<base href=\"${ window.location.origin }\">\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\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\">\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-scale-container-width':\n\t\t\t\t\t\tisZoomedOut && `${ scaleContainerWidth }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","useState","createPortal","forwardRef","useMemo","useEffect","__","useMergeRefs","useRefEffect","useDisabled","__experimentalStyleProvider","StyleProvider","useSelect","useBlockSelectionClearer","useWritingFlow","getCompatibilityStyles","useScaleCanvas","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","bubbleEvent","event","Constructor","frame","init","key","contentDocument","defaultView","MouseEvent","rect","getBoundingClientRect","clientX","left","clientY","top","newEvent","type","defaultPrevented","preventDefault","cancelled","dispatchEvent","useBubbleEvents","iframeDocument","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","select","getSettings","settings","__unstableResolvedAssets","styles","scripts","setIframeDocument","bodyClasses","setBodyClasses","clearerRef","before","writingFlowRef","after","setRef","node","_load","iFrameDocument","preventFileDropDefault","onLoad","ownerDocument","classList","add","Array","from","body","filter","startsWith","dir","compatStyle","getElementById","id","head","appendChild","cloneNode","console","warn","target","tagName","href","getAttribute","location","hash","slice","contentResizeListener","containerResizeListener","isZoomedOut","scaleContainerWidth","parseInt","disabledRef","isDisabled","bodyRef","origin","src","cleanup","_src","URL","createObjectURL","Blob","revokeObjectURL","shouldRenderFocusCaptureElements","iframe","style","height","border","onKeyDown","currentTarget","stopPropagation","nativeEvent","KeyboardEvent","className","document","IframeIfReady","isInitialised","__internalIsInitialized"],"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} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useMergeRefs, useRefEffect, useDisabled } 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 { useScaleCanvas } from './use-scale-canvas';\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.isPreviewMode,\n\t\t};\n\t}, [] );\n\tconst { styles = '', scripts = '' } = resolvedAssets;\n\t/** @type {[Document, import('react').Dispatch<Document>]} */\n\tconst [ iframeDocument, setIframeDocument ] = useState();\n\tconst [ bodyClasses, setBodyClasses ] = useState( [] );\n\tconst clearerRef = useBlockSelectionClearer();\n\tconst [ before, writingFlowRef, after ] = useWritingFlow();\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\t// Prevent clicks on links from navigating away. Note that links\n\t\t\t// inside `contenteditable` are already disabled by the browser, so\n\t\t\t// this is for links in blocks outside of `contenteditable`.\n\t\t\tiFrameDocument.addEventListener( 'click', ( event ) => {\n\t\t\t\tif ( event.target.tagName === 'A' ) {\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t// Appending a hash to the current URL will not reload the\n\t\t\t\t\t// page. This is useful for e.g. footnotes.\n\t\t\t\t\tconst href = event.target.getAttribute( 'href' );\n\t\t\t\t\tif ( href?.startsWith( '#' ) ) {\n\t\t\t\t\t\tiFrameDocument.defaultView.location.hash =\n\t\t\t\t\t\t\thref.slice( 1 );\n\t\t\t\t\t}\n\t\t\t\t}\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 {\n\t\tcontentResizeListener,\n\t\tcontainerResizeListener,\n\t\tisZoomedOut,\n\t\tscaleContainerWidth,\n\t} = useScaleCanvas( {\n\t\tscale,\n\t\tframeSize: parseInt( frameSize ),\n\t\tiframeDocument,\n\t} );\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] );\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<base href=\"${ window.location.origin }\">\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\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\">\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-scale-container-width':\n\t\t\t\t\t\tisZoomedOut && `${ scaleContainerWidth }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,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  /**
2
3
  * WordPress dependencies
3
4
  */
@@ -1 +1 @@
1
- {"version":3,"names":["check","aspectRatio","aspectRatioIcon","DropdownMenu","MenuGroup","MenuItem","__","useSettings","POPOVER_PROPS","useImageEditingContext","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","AspectRatioGroup","aspectRatios","isDisabled","label","onClick","value","children","map","name","slug","ratio","disabled","role","isSelected","icon","undefined","ratioToNumber","str","a","b","rest","split","Number","isNaN","length","NaN","presetRatioAsNumber","AspectRatioDropdown","toggleProps","isInProgress","aspect","setAspect","defaultAspect","defaultRatios","themeRatios","showDefaultRatios","popoverProps","onClose","newAspect","filter"],"sources":["@wordpress/block-editor/src/components/image-editor/aspect-ratio-dropdown.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { check, aspectRatio as aspectRatioIcon } from '@wordpress/icons';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../use-settings';\nimport { POPOVER_PROPS } from './constants';\nimport { useImageEditingContext } from './context';\n\nfunction AspectRatioGroup( {\n\taspectRatios,\n\tisDisabled,\n\tlabel,\n\tonClick,\n\tvalue,\n} ) {\n\treturn (\n\t\t<MenuGroup label={ label }>\n\t\t\t{ aspectRatios.map( ( { name, slug, ratio } ) => (\n\t\t\t\t<MenuItem\n\t\t\t\t\tkey={ slug }\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonClick( ratio );\n\t\t\t\t\t} }\n\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\tisSelected={ ratio === value }\n\t\t\t\t\ticon={ ratio === value ? check : undefined }\n\t\t\t\t>\n\t\t\t\t\t{ name }\n\t\t\t\t</MenuItem>\n\t\t\t) ) }\n\t\t</MenuGroup>\n\t);\n}\n\nexport function ratioToNumber( str ) {\n\t// TODO: support two-value aspect ratio?\n\t// https://css-tricks.com/almanac/properties/a/aspect-ratio/#aa-it-can-take-two-values\n\tconst [ a, b, ...rest ] = str.split( '/' ).map( Number );\n\tif (\n\t\ta <= 0 ||\n\t\tb <= 0 ||\n\t\tNumber.isNaN( a ) ||\n\t\tNumber.isNaN( b ) ||\n\t\trest.length\n\t) {\n\t\treturn NaN;\n\t}\n\treturn b ? a / b : a;\n}\n\nfunction presetRatioAsNumber( { ratio, ...rest } ) {\n\treturn {\n\t\tratio: ratioToNumber( ratio ),\n\t\t...rest,\n\t};\n}\n\nexport default function AspectRatioDropdown( { toggleProps } ) {\n\tconst { isInProgress, aspect, setAspect, defaultAspect } =\n\t\tuseImageEditingContext();\n\n\tconst [ defaultRatios, themeRatios, showDefaultRatios ] = useSettings(\n\t\t'dimensions.aspectRatios.default',\n\t\t'dimensions.aspectRatios.theme',\n\t\t'dimensions.defaultAspectRatios'\n\t);\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ aspectRatioIcon }\n\t\t\tlabel={ __( 'Aspect Ratio' ) }\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\ttoggleProps={ toggleProps }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<AspectRatioGroup\n\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\taspectRatios={ [\n\t\t\t\t\t\t\t// All ratios should be mirrored in AspectRatioTool in @wordpress/block-editor.\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tslug: 'original',\n\t\t\t\t\t\t\t\tname: __( 'Original' ),\n\t\t\t\t\t\t\t\taspect: defaultAspect,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t...( showDefaultRatios\n\t\t\t\t\t\t\t\t? defaultRatios\n\t\t\t\t\t\t\t\t\t\t.map( presetRatioAsNumber )\n\t\t\t\t\t\t\t\t\t\t.filter( ( { ratio } ) => ratio === 1 )\n\t\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{ themeRatios?.length > 0 && (\n\t\t\t\t\t\t<AspectRatioGroup\n\t\t\t\t\t\t\tlabel={ __( 'Theme' ) }\n\t\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\t\taspectRatios={ themeRatios }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showDefaultRatios && (\n\t\t\t\t\t\t<AspectRatioGroup\n\t\t\t\t\t\t\tlabel={ __( 'Landscape' ) }\n\t\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\t\taspectRatios={ defaultRatios\n\t\t\t\t\t\t\t\t.map( presetRatioAsNumber )\n\t\t\t\t\t\t\t\t.filter( ( { ratio } ) => ratio > 1 ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showDefaultRatios && (\n\t\t\t\t\t\t<AspectRatioGroup\n\t\t\t\t\t\t\tlabel={ __( 'Portrait' ) }\n\t\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\t\taspectRatios={ defaultRatios\n\t\t\t\t\t\t\t\t.map( presetRatioAsNumber )\n\t\t\t\t\t\t\t\t.filter( ( { ratio } ) => ratio < 1 ) }\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</DropdownMenu>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["check","aspectRatio","aspectRatioIcon","DropdownMenu","MenuGroup","MenuItem","__","useSettings","POPOVER_PROPS","useImageEditingContext","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","AspectRatioGroup","aspectRatios","isDisabled","label","onClick","value","children","map","name","slug","ratio","disabled","role","isSelected","icon","undefined","ratioToNumber","str","a","b","rest","split","Number","isNaN","length","NaN","presetRatioAsNumber","AspectRatioDropdown","toggleProps","isInProgress","aspect","setAspect","defaultAspect","defaultRatios","themeRatios","showDefaultRatios","popoverProps","onClose","newAspect","filter"],"sources":["@wordpress/block-editor/src/components/image-editor/aspect-ratio-dropdown.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { check, aspectRatio as aspectRatioIcon } from '@wordpress/icons';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../use-settings';\nimport { POPOVER_PROPS } from './constants';\nimport { useImageEditingContext } from './context';\n\nfunction AspectRatioGroup( {\n\taspectRatios,\n\tisDisabled,\n\tlabel,\n\tonClick,\n\tvalue,\n} ) {\n\treturn (\n\t\t<MenuGroup label={ label }>\n\t\t\t{ aspectRatios.map( ( { name, slug, ratio } ) => (\n\t\t\t\t<MenuItem\n\t\t\t\t\tkey={ slug }\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonClick( ratio );\n\t\t\t\t\t} }\n\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\tisSelected={ ratio === value }\n\t\t\t\t\ticon={ ratio === value ? check : undefined }\n\t\t\t\t>\n\t\t\t\t\t{ name }\n\t\t\t\t</MenuItem>\n\t\t\t) ) }\n\t\t</MenuGroup>\n\t);\n}\n\nexport function ratioToNumber( str ) {\n\t// TODO: support two-value aspect ratio?\n\t// https://css-tricks.com/almanac/properties/a/aspect-ratio/#aa-it-can-take-two-values\n\tconst [ a, b, ...rest ] = str.split( '/' ).map( Number );\n\tif (\n\t\ta <= 0 ||\n\t\tb <= 0 ||\n\t\tNumber.isNaN( a ) ||\n\t\tNumber.isNaN( b ) ||\n\t\trest.length\n\t) {\n\t\treturn NaN;\n\t}\n\treturn b ? a / b : a;\n}\n\nfunction presetRatioAsNumber( { ratio, ...rest } ) {\n\treturn {\n\t\tratio: ratioToNumber( ratio ),\n\t\t...rest,\n\t};\n}\n\nexport default function AspectRatioDropdown( { toggleProps } ) {\n\tconst { isInProgress, aspect, setAspect, defaultAspect } =\n\t\tuseImageEditingContext();\n\n\tconst [ defaultRatios, themeRatios, showDefaultRatios ] = useSettings(\n\t\t'dimensions.aspectRatios.default',\n\t\t'dimensions.aspectRatios.theme',\n\t\t'dimensions.defaultAspectRatios'\n\t);\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ aspectRatioIcon }\n\t\t\tlabel={ __( 'Aspect Ratio' ) }\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\ttoggleProps={ toggleProps }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<AspectRatioGroup\n\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\taspectRatios={ [\n\t\t\t\t\t\t\t// All ratios should be mirrored in AspectRatioTool in @wordpress/block-editor.\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tslug: 'original',\n\t\t\t\t\t\t\t\tname: __( 'Original' ),\n\t\t\t\t\t\t\t\taspect: defaultAspect,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t...( showDefaultRatios\n\t\t\t\t\t\t\t\t? defaultRatios\n\t\t\t\t\t\t\t\t\t\t.map( presetRatioAsNumber )\n\t\t\t\t\t\t\t\t\t\t.filter( ( { ratio } ) => ratio === 1 )\n\t\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{ themeRatios?.length > 0 && (\n\t\t\t\t\t\t<AspectRatioGroup\n\t\t\t\t\t\t\tlabel={ __( 'Theme' ) }\n\t\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\t\taspectRatios={ themeRatios }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showDefaultRatios && (\n\t\t\t\t\t\t<AspectRatioGroup\n\t\t\t\t\t\t\tlabel={ __( 'Landscape' ) }\n\t\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\t\taspectRatios={ defaultRatios\n\t\t\t\t\t\t\t\t.map( presetRatioAsNumber )\n\t\t\t\t\t\t\t\t.filter( ( { ratio } ) => ratio > 1 ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showDefaultRatios && (\n\t\t\t\t\t\t<AspectRatioGroup\n\t\t\t\t\t\t\tlabel={ __( 'Portrait' ) }\n\t\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\t\taspectRatios={ defaultRatios\n\t\t\t\t\t\t\t\t.map( presetRatioAsNumber )\n\t\t\t\t\t\t\t\t.filter( ( { ratio } ) => ratio < 1 ) }\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</DropdownMenu>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -50,10 +50,10 @@ export { default as __experimentalImageSizeControl } from './image-size-control'
50
50
  export { default as InnerBlocks, useInnerBlocksProps } from './inner-blocks';
51
51
  export { default as InspectorControls, InspectorAdvancedControls } from './inspector-controls';
52
52
  export { JustifyToolbar, JustifyContentControl } from './justify-content-control';
53
- export { default as __experimentalLinkControl } from './link-control';
54
- export { default as __experimentalLinkControlSearchInput } from './link-control/search-input';
55
- export { default as __experimentalLinkControlSearchResults } from './link-control/search-results';
56
- export { default as __experimentalLinkControlSearchItem } from './link-control/search-item';
53
+ export { default as LinkControl, DeprecatedExperimentalLinkControl as __experimentalLinkControl } from './link-control';
54
+ export { __experimentalLinkControlSearchInput } from './link-control/search-input';
55
+ export { __experimentalLinkControlSearchResults } from './link-control/search-results';
56
+ export { __experimentalLinkControlSearchItem } from './link-control/search-item';
57
57
  export { default as LineHeightControl } from './line-height-control';
58
58
  export { default as __experimentalListView } from './list-view';
59
59
  export { default as MediaReplaceFlow } from './media-replace-flow';