@wordpress/block-editor 12.25.0 → 12.26.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 (674) hide show
  1. package/CHANGELOG.md +9 -3
  2. package/README.md +6 -0
  3. package/build/components/block-actions/index.js +4 -2
  4. package/build/components/block-actions/index.js.map +1 -1
  5. package/build/components/block-alignment-control/ui.js +2 -2
  6. package/build/components/block-alignment-control/ui.js.map +1 -1
  7. package/build/components/block-card/index.js +2 -2
  8. package/build/components/block-card/index.js.map +1 -1
  9. package/build/components/block-compare/index.js +2 -2
  10. package/build/components/block-compare/index.js.map +1 -1
  11. package/build/components/block-edit/edit.js +2 -2
  12. package/build/components/block-edit/edit.js.map +1 -1
  13. package/build/components/block-icon/index.js +2 -2
  14. package/build/components/block-icon/index.js.map +1 -1
  15. package/build/components/block-inspector/index.js +1 -1
  16. package/build/components/block-inspector/index.js.map +1 -1
  17. package/build/components/block-list/block.js +4 -4
  18. package/build/components/block-list/block.js.map +1 -1
  19. package/build/components/block-list/block.native.js +2 -2
  20. package/build/components/block-list/block.native.js.map +1 -1
  21. package/build/components/block-list/index.js +2 -2
  22. package/build/components/block-list/index.js.map +1 -1
  23. package/build/components/block-list/use-block-props/index.js +5 -2
  24. package/build/components/block-list/use-block-props/index.js.map +1 -1
  25. package/build/components/block-list/use-block-props/use-scroll-into-view.js +44 -0
  26. package/build/components/block-list/use-block-props/use-scroll-into-view.js.map +1 -0
  27. package/build/components/block-list-appender/index.js +2 -2
  28. package/build/components/block-list-appender/index.js.map +1 -1
  29. package/build/components/block-mover/button.js +2 -2
  30. package/build/components/block-mover/button.js.map +1 -1
  31. package/build/components/block-mover/index.js +2 -2
  32. package/build/components/block-mover/index.js.map +1 -1
  33. package/build/components/block-patterns-list/index.js +26 -5
  34. package/build/components/block-patterns-list/index.js.map +1 -1
  35. package/build/components/block-popover/cover.js +9 -6
  36. package/build/components/block-popover/cover.js.map +1 -1
  37. package/build/components/block-popover/inbetween.js +2 -2
  38. package/build/components/block-popover/inbetween.js.map +1 -1
  39. package/build/components/block-popover/index.js +22 -4
  40. package/build/components/block-popover/index.js.map +1 -1
  41. package/build/components/block-preview/index.js +2 -2
  42. package/build/components/block-preview/index.js.map +1 -1
  43. package/build/components/block-settings-menu/block-settings-dropdown.js +8 -5
  44. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  45. package/build/components/block-settings-menu-controls/index.js +10 -7
  46. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  47. package/build/components/block-styles/index.js +2 -2
  48. package/build/components/block-styles/index.js.map +1 -1
  49. package/build/components/block-toolbar/index.js +3 -3
  50. package/build/components/block-toolbar/index.js.map +1 -1
  51. package/build/components/block-tools/block-selection-button.js +2 -2
  52. package/build/components/block-tools/block-selection-button.js.map +1 -1
  53. package/build/components/block-tools/block-toolbar-breadcrumb.js +4 -4
  54. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  55. package/build/components/block-tools/block-toolbar-popover.js +2 -2
  56. package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
  57. package/build/components/block-tools/empty-block-inserter.js +2 -2
  58. package/build/components/block-tools/empty-block-inserter.js.map +1 -1
  59. package/build/components/block-tools/index.js +20 -1
  60. package/build/components/block-tools/index.js.map +1 -1
  61. package/build/components/block-tools/insertion-point.js +4 -4
  62. package/build/components/block-tools/insertion-point.js.map +1 -1
  63. package/build/components/block-tools/zoom-out-mode-inserters.js +66 -22
  64. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  65. package/build/components/block-variation-picker/index.js +2 -2
  66. package/build/components/block-variation-picker/index.js.map +1 -1
  67. package/build/components/button-block-appender/index.js +2 -2
  68. package/build/components/button-block-appender/index.js.map +1 -1
  69. package/build/components/child-layout-control/index.js +2 -2
  70. package/build/components/child-layout-control/index.js.map +1 -1
  71. package/build/components/colors-gradients/control.js +3 -3
  72. package/build/components/colors-gradients/control.js.map +1 -1
  73. package/build/components/colors-gradients/dropdown.js +2 -2
  74. package/build/components/colors-gradients/dropdown.js.map +1 -1
  75. package/build/components/colors-gradients/panel-color-gradient-settings.js +2 -2
  76. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  77. package/build/components/convert-to-group-buttons/index.js +6 -0
  78. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  79. package/build/components/default-block-appender/index.js +2 -2
  80. package/build/components/default-block-appender/index.js.map +1 -1
  81. package/build/components/dimensions-tool/aspect-ratio-tool.js +30 -36
  82. package/build/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
  83. package/build/components/global-styles/background-panel.js +3 -3
  84. package/build/components/global-styles/background-panel.js.map +1 -1
  85. package/build/components/global-styles/color-panel.js +3 -3
  86. package/build/components/global-styles/color-panel.js.map +1 -1
  87. package/build/components/global-styles/dimensions-panel.js +4 -4
  88. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  89. package/build/components/global-styles/filters-panel.js +2 -2
  90. package/build/components/global-styles/filters-panel.js.map +1 -1
  91. package/build/components/global-styles/shadow-panel-components.js +4 -4
  92. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  93. package/build/components/global-styles/use-global-styles-output.js +1 -1
  94. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  95. package/build/components/grid-visualizer/grid-item-resizer.js +141 -24
  96. package/build/components/grid-visualizer/grid-item-resizer.js.map +1 -1
  97. package/build/components/grid-visualizer/grid-visualizer.js +11 -5
  98. package/build/components/grid-visualizer/grid-visualizer.js.map +1 -1
  99. package/build/components/iframe/index.js +69 -30
  100. package/build/components/iframe/index.js.map +1 -1
  101. package/build/components/image-editor/aspect-ratio-dropdown.js +53 -36
  102. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  103. package/build/components/image-editor/cropper.js +2 -2
  104. package/build/components/image-editor/cropper.js.map +1 -1
  105. package/build/components/image-editor/index.js +1 -1
  106. package/build/components/image-editor/index.js.map +1 -1
  107. package/build/components/index.js +8 -0
  108. package/build/components/index.js.map +1 -1
  109. package/build/components/inner-blocks/button-block-appender.js +2 -2
  110. package/build/components/inner-blocks/button-block-appender.js.map +1 -1
  111. package/build/components/inner-blocks/index.js +22 -21
  112. package/build/components/inner-blocks/index.js.map +1 -1
  113. package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
  114. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  115. package/build/components/inserter/block-patterns-tab/index.js +9 -0
  116. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  117. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -1
  118. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  119. package/build/components/inserter/block-types-tab.js +5 -3
  120. package/build/components/inserter/block-types-tab.js.map +1 -1
  121. package/build/components/inserter/hooks/use-insertion-point.js +11 -2
  122. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  123. package/build/components/inserter/hooks/use-patterns-state.js +12 -5
  124. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  125. package/build/components/inserter/index.js +2 -2
  126. package/build/components/inserter/index.js.map +1 -1
  127. package/build/components/inserter/library.js +8 -2
  128. package/build/components/inserter/library.js.map +1 -1
  129. package/build/components/inserter/media-tab/media-preview.js +2 -2
  130. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  131. package/build/components/inserter/menu.js +72 -56
  132. package/build/components/inserter/menu.js.map +1 -1
  133. package/build/components/inserter/quick-inserter.js +2 -2
  134. package/build/components/inserter/quick-inserter.js.map +1 -1
  135. package/build/components/inserter/tabs.js +17 -5
  136. package/build/components/inserter/tabs.js.map +1 -1
  137. package/build/components/inserter-list-item/index.js +3 -3
  138. package/build/components/inserter-list-item/index.js.map +1 -1
  139. package/build/components/keyboard-shortcuts/index.js +9 -0
  140. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  141. package/build/components/link-control/index.js +2 -2
  142. package/build/components/link-control/index.js.map +1 -1
  143. package/build/components/link-control/link-preview.js +3 -3
  144. package/build/components/link-control/link-preview.js.map +1 -1
  145. package/build/components/link-control/search-results.js +2 -2
  146. package/build/components/link-control/search-results.js.map +1 -1
  147. package/build/components/list-view/block-contents.js +2 -2
  148. package/build/components/list-view/block-contents.js.map +1 -1
  149. package/build/components/list-view/block-select-button.js +11 -3
  150. package/build/components/list-view/block-select-button.js.map +1 -1
  151. package/build/components/list-view/block.js +35 -12
  152. package/build/components/list-view/block.js.map +1 -1
  153. package/build/components/list-view/drop-indicator.js +3 -3
  154. package/build/components/list-view/drop-indicator.js.map +1 -1
  155. package/build/components/list-view/index.js +2 -2
  156. package/build/components/list-view/index.js.map +1 -1
  157. package/build/components/list-view/leaf.js +2 -2
  158. package/build/components/list-view/leaf.js.map +1 -1
  159. package/build/components/media-placeholder/index.js +4 -4
  160. package/build/components/media-placeholder/index.js.map +1 -1
  161. package/build/components/media-replace-flow/index.js +2 -2
  162. package/build/components/media-replace-flow/index.js.map +1 -1
  163. package/build/components/plain-text/index.js +2 -2
  164. package/build/components/plain-text/index.js.map +1 -1
  165. package/build/components/provider/use-block-sync.js +18 -0
  166. package/build/components/provider/use-block-sync.js.map +1 -1
  167. package/build/components/responsive-block-control/index.js +2 -2
  168. package/build/components/responsive-block-control/index.js.map +1 -1
  169. package/build/components/rich-text/event-listeners/enter.js +33 -42
  170. package/build/components/rich-text/event-listeners/enter.js.map +1 -1
  171. package/build/components/rich-text/event-listeners/paste-handler.js +22 -42
  172. package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  173. package/build/components/rich-text/format-toolbar/index.js +2 -2
  174. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  175. package/build/components/rich-text/index.js +9 -2
  176. package/build/components/rich-text/index.js.map +1 -1
  177. package/build/components/rich-text/index.native.js +2 -2
  178. package/build/components/rich-text/index.native.js.map +1 -1
  179. package/build/components/rich-text/multiline.js +30 -2
  180. package/build/components/rich-text/multiline.js.map +1 -1
  181. package/build/components/segmented-text-control/index.js +2 -2
  182. package/build/components/segmented-text-control/index.js.map +1 -1
  183. package/build/components/text-alignment-control/index.js +2 -2
  184. package/build/components/text-alignment-control/index.js.map +1 -1
  185. package/build/components/text-decoration-control/index.js +2 -2
  186. package/build/components/text-decoration-control/index.js.map +1 -1
  187. package/build/components/text-transform-control/index.js +2 -2
  188. package/build/components/text-transform-control/index.js.map +1 -1
  189. package/build/components/url-input/index.js +4 -4
  190. package/build/components/url-input/index.js.map +1 -1
  191. package/build/components/url-popover/link-editor.js +2 -2
  192. package/build/components/url-popover/link-editor.js.map +1 -1
  193. package/build/components/url-popover/link-viewer-url.js +2 -2
  194. package/build/components/url-popover/link-viewer-url.js.map +1 -1
  195. package/build/components/url-popover/link-viewer.js +2 -2
  196. package/build/components/url-popover/link-viewer.js.map +1 -1
  197. package/build/components/warning/index.js +2 -2
  198. package/build/components/warning/index.js.map +1 -1
  199. package/build/components/writing-flow/index.js +2 -2
  200. package/build/components/writing-flow/index.js.map +1 -1
  201. package/build/components/writing-flow/use-clipboard-handler.js +77 -30
  202. package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
  203. package/build/components/writing-flow/use-input.js +44 -2
  204. package/build/components/writing-flow/use-input.js.map +1 -1
  205. package/build/components/writing-flow/use-tab-nav.js +6 -1
  206. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  207. package/build/components/writing-mode-control/index.js +2 -2
  208. package/build/components/writing-mode-control/index.js.map +1 -1
  209. package/build/hooks/align.js +2 -2
  210. package/build/hooks/align.js.map +1 -1
  211. package/build/hooks/background.js +1 -1
  212. package/build/hooks/background.js.map +1 -1
  213. package/build/hooks/border.js +3 -3
  214. package/build/hooks/border.js.map +1 -1
  215. package/build/hooks/color.js +3 -3
  216. package/build/hooks/color.js.map +1 -1
  217. package/build/hooks/content-lock-ui.js +5 -28
  218. package/build/hooks/content-lock-ui.js.map +1 -1
  219. package/build/hooks/custom-class-name.js +2 -2
  220. package/build/hooks/custom-class-name.js.map +1 -1
  221. package/build/hooks/custom-class-name.native.js +2 -2
  222. package/build/hooks/custom-class-name.native.js.map +1 -1
  223. package/build/hooks/dimensions.js +2 -2
  224. package/build/hooks/dimensions.js.map +1 -1
  225. package/build/hooks/layout-child.js +16 -8
  226. package/build/hooks/layout-child.js.map +1 -1
  227. package/build/hooks/layout.js +2 -2
  228. package/build/hooks/layout.js.map +1 -1
  229. package/build/hooks/position.js +2 -2
  230. package/build/hooks/position.js.map +1 -1
  231. package/build/hooks/text-align.js +3 -3
  232. package/build/hooks/text-align.js.map +1 -1
  233. package/build/hooks/use-bindings-attributes.js +39 -13
  234. package/build/hooks/use-bindings-attributes.js.map +1 -1
  235. package/build/hooks/use-color-props.js +2 -2
  236. package/build/hooks/use-color-props.js.map +1 -1
  237. package/build/hooks/use-typography-props.js +2 -2
  238. package/build/hooks/use-typography-props.js.map +1 -1
  239. package/build/hooks/utils.js +2 -2
  240. package/build/hooks/utils.js.map +1 -1
  241. package/build/layouts/grid.js +7 -6
  242. package/build/layouts/grid.js.map +1 -1
  243. package/build/private-apis.js +4 -1
  244. package/build/private-apis.js.map +1 -1
  245. package/build/store/actions.js +134 -40
  246. package/build/store/actions.js.map +1 -1
  247. package/build/store/private-actions.js +26 -1
  248. package/build/store/private-actions.js.map +1 -1
  249. package/build/store/private-keys.js +2 -1
  250. package/build/store/private-keys.js.map +1 -1
  251. package/build/store/private-selectors.js +6 -0
  252. package/build/store/private-selectors.js.map +1 -1
  253. package/build/store/selectors.js +4 -1
  254. package/build/store/selectors.js.map +1 -1
  255. package/build/utils/selection.js +8 -0
  256. package/build/utils/selection.js.map +1 -1
  257. package/build/utils/transform-styles/index.js +12 -7
  258. package/build/utils/transform-styles/index.js.map +1 -1
  259. package/build-module/components/block-actions/index.js +4 -2
  260. package/build-module/components/block-actions/index.js.map +1 -1
  261. package/build-module/components/block-alignment-control/ui.js +2 -2
  262. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  263. package/build-module/components/block-card/index.js +2 -2
  264. package/build-module/components/block-card/index.js.map +1 -1
  265. package/build-module/components/block-compare/index.js +2 -2
  266. package/build-module/components/block-compare/index.js.map +1 -1
  267. package/build-module/components/block-edit/edit.js +2 -2
  268. package/build-module/components/block-edit/edit.js.map +1 -1
  269. package/build-module/components/block-icon/index.js +2 -2
  270. package/build-module/components/block-icon/index.js.map +1 -1
  271. package/build-module/components/block-inspector/index.js +1 -1
  272. package/build-module/components/block-inspector/index.js.map +1 -1
  273. package/build-module/components/block-list/block.js +4 -4
  274. package/build-module/components/block-list/block.js.map +1 -1
  275. package/build-module/components/block-list/block.native.js +2 -2
  276. package/build-module/components/block-list/block.native.js.map +1 -1
  277. package/build-module/components/block-list/index.js +2 -2
  278. package/build-module/components/block-list/index.js.map +1 -1
  279. package/build-module/components/block-list/use-block-props/index.js +5 -2
  280. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  281. package/build-module/components/block-list/use-block-props/use-scroll-into-view.js +37 -0
  282. package/build-module/components/block-list/use-block-props/use-scroll-into-view.js.map +1 -0
  283. package/build-module/components/block-list-appender/index.js +2 -2
  284. package/build-module/components/block-list-appender/index.js.map +1 -1
  285. package/build-module/components/block-mover/button.js +2 -2
  286. package/build-module/components/block-mover/button.js.map +1 -1
  287. package/build-module/components/block-mover/index.js +2 -2
  288. package/build-module/components/block-mover/index.js.map +1 -1
  289. package/build-module/components/block-patterns-list/index.js +27 -6
  290. package/build-module/components/block-patterns-list/index.js.map +1 -1
  291. package/build-module/components/block-popover/cover.js +9 -5
  292. package/build-module/components/block-popover/cover.js.map +1 -1
  293. package/build-module/components/block-popover/inbetween.js +2 -2
  294. package/build-module/components/block-popover/inbetween.js.map +1 -1
  295. package/build-module/components/block-popover/index.js +21 -3
  296. package/build-module/components/block-popover/index.js.map +1 -1
  297. package/build-module/components/block-preview/index.js +2 -2
  298. package/build-module/components/block-preview/index.js.map +1 -1
  299. package/build-module/components/block-settings-menu/block-settings-dropdown.js +8 -5
  300. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  301. package/build-module/components/block-settings-menu-controls/index.js +10 -7
  302. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  303. package/build-module/components/block-styles/index.js +2 -2
  304. package/build-module/components/block-styles/index.js.map +1 -1
  305. package/build-module/components/block-toolbar/index.js +3 -3
  306. package/build-module/components/block-toolbar/index.js.map +1 -1
  307. package/build-module/components/block-tools/block-selection-button.js +2 -2
  308. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  309. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +4 -4
  310. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  311. package/build-module/components/block-tools/block-toolbar-popover.js +2 -2
  312. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
  313. package/build-module/components/block-tools/empty-block-inserter.js +2 -2
  314. package/build-module/components/block-tools/empty-block-inserter.js.map +1 -1
  315. package/build-module/components/block-tools/index.js +20 -1
  316. package/build-module/components/block-tools/index.js.map +1 -1
  317. package/build-module/components/block-tools/insertion-point.js +4 -4
  318. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  319. package/build-module/components/block-tools/zoom-out-mode-inserters.js +67 -23
  320. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  321. package/build-module/components/block-variation-picker/index.js +2 -2
  322. package/build-module/components/block-variation-picker/index.js.map +1 -1
  323. package/build-module/components/button-block-appender/index.js +2 -2
  324. package/build-module/components/button-block-appender/index.js.map +1 -1
  325. package/build-module/components/child-layout-control/index.js +2 -2
  326. package/build-module/components/child-layout-control/index.js.map +1 -1
  327. package/build-module/components/colors-gradients/control.js +3 -3
  328. package/build-module/components/colors-gradients/control.js.map +1 -1
  329. package/build-module/components/colors-gradients/dropdown.js +2 -2
  330. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  331. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +2 -2
  332. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  333. package/build-module/components/convert-to-group-buttons/index.js +7 -1
  334. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  335. package/build-module/components/default-block-appender/index.js +2 -2
  336. package/build-module/components/default-block-appender/index.js.map +1 -1
  337. package/build-module/components/dimensions-tool/aspect-ratio-tool.js +30 -36
  338. package/build-module/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
  339. package/build-module/components/global-styles/background-panel.js +3 -3
  340. package/build-module/components/global-styles/background-panel.js.map +1 -1
  341. package/build-module/components/global-styles/color-panel.js +3 -3
  342. package/build-module/components/global-styles/color-panel.js.map +1 -1
  343. package/build-module/components/global-styles/dimensions-panel.js +4 -4
  344. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  345. package/build-module/components/global-styles/filters-panel.js +2 -2
  346. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  347. package/build-module/components/global-styles/shadow-panel-components.js +4 -4
  348. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  349. package/build-module/components/global-styles/use-global-styles-output.js +1 -1
  350. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  351. package/build-module/components/grid-visualizer/grid-item-resizer.js +141 -24
  352. package/build-module/components/grid-visualizer/grid-item-resizer.js.map +1 -1
  353. package/build-module/components/grid-visualizer/grid-visualizer.js +12 -6
  354. package/build-module/components/grid-visualizer/grid-visualizer.js.map +1 -1
  355. package/build-module/components/iframe/index.js +70 -31
  356. package/build-module/components/iframe/index.js.map +1 -1
  357. package/build-module/components/image-editor/aspect-ratio-dropdown.js +52 -36
  358. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  359. package/build-module/components/image-editor/cropper.js +2 -2
  360. package/build-module/components/image-editor/cropper.js.map +1 -1
  361. package/build-module/components/image-editor/index.js +1 -1
  362. package/build-module/components/image-editor/index.js.map +1 -1
  363. package/build-module/components/index.js +1 -0
  364. package/build-module/components/index.js.map +1 -1
  365. package/build-module/components/inner-blocks/button-block-appender.js +2 -2
  366. package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
  367. package/build-module/components/inner-blocks/index.js +22 -21
  368. package/build-module/components/inner-blocks/index.js.map +1 -1
  369. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
  370. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  371. package/build-module/components/inserter/block-patterns-tab/index.js +10 -1
  372. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  373. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -1
  374. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  375. package/build-module/components/inserter/block-types-tab.js +6 -4
  376. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  377. package/build-module/components/inserter/hooks/use-insertion-point.js +11 -2
  378. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  379. package/build-module/components/inserter/hooks/use-patterns-state.js +12 -5
  380. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  381. package/build-module/components/inserter/index.js +2 -2
  382. package/build-module/components/inserter/index.js.map +1 -1
  383. package/build-module/components/inserter/library.js +8 -2
  384. package/build-module/components/inserter/library.js.map +1 -1
  385. package/build-module/components/inserter/media-tab/media-preview.js +2 -2
  386. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  387. package/build-module/components/inserter/menu.js +72 -56
  388. package/build-module/components/inserter/menu.js.map +1 -1
  389. package/build-module/components/inserter/quick-inserter.js +2 -2
  390. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  391. package/build-module/components/inserter/tabs.js +18 -6
  392. package/build-module/components/inserter/tabs.js.map +1 -1
  393. package/build-module/components/inserter-list-item/index.js +3 -3
  394. package/build-module/components/inserter-list-item/index.js.map +1 -1
  395. package/build-module/components/keyboard-shortcuts/index.js +9 -0
  396. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  397. package/build-module/components/link-control/index.js +2 -2
  398. package/build-module/components/link-control/index.js.map +1 -1
  399. package/build-module/components/link-control/link-preview.js +3 -3
  400. package/build-module/components/link-control/link-preview.js.map +1 -1
  401. package/build-module/components/link-control/search-results.js +2 -2
  402. package/build-module/components/link-control/search-results.js.map +1 -1
  403. package/build-module/components/list-view/block-contents.js +2 -2
  404. package/build-module/components/list-view/block-contents.js.map +1 -1
  405. package/build-module/components/list-view/block-select-button.js +11 -3
  406. package/build-module/components/list-view/block-select-button.js.map +1 -1
  407. package/build-module/components/list-view/block.js +36 -13
  408. package/build-module/components/list-view/block.js.map +1 -1
  409. package/build-module/components/list-view/drop-indicator.js +3 -3
  410. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  411. package/build-module/components/list-view/index.js +2 -2
  412. package/build-module/components/list-view/index.js.map +1 -1
  413. package/build-module/components/list-view/leaf.js +2 -2
  414. package/build-module/components/list-view/leaf.js.map +1 -1
  415. package/build-module/components/media-placeholder/index.js +4 -4
  416. package/build-module/components/media-placeholder/index.js.map +1 -1
  417. package/build-module/components/media-replace-flow/index.js +2 -2
  418. package/build-module/components/media-replace-flow/index.js.map +1 -1
  419. package/build-module/components/plain-text/index.js +2 -2
  420. package/build-module/components/plain-text/index.js.map +1 -1
  421. package/build-module/components/provider/use-block-sync.js +19 -1
  422. package/build-module/components/provider/use-block-sync.js.map +1 -1
  423. package/build-module/components/responsive-block-control/index.js +2 -2
  424. package/build-module/components/responsive-block-control/index.js.map +1 -1
  425. package/build-module/components/rich-text/event-listeners/enter.js +33 -43
  426. package/build-module/components/rich-text/event-listeners/enter.js.map +1 -1
  427. package/build-module/components/rich-text/event-listeners/paste-handler.js +23 -43
  428. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  429. package/build-module/components/rich-text/format-toolbar/index.js +2 -2
  430. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  431. package/build-module/components/rich-text/index.js +9 -2
  432. package/build-module/components/rich-text/index.js.map +1 -1
  433. package/build-module/components/rich-text/index.native.js +2 -2
  434. package/build-module/components/rich-text/index.native.js.map +1 -1
  435. package/build-module/components/rich-text/multiline.js +31 -3
  436. package/build-module/components/rich-text/multiline.js.map +1 -1
  437. package/build-module/components/segmented-text-control/index.js +2 -2
  438. package/build-module/components/segmented-text-control/index.js.map +1 -1
  439. package/build-module/components/text-alignment-control/index.js +2 -2
  440. package/build-module/components/text-alignment-control/index.js.map +1 -1
  441. package/build-module/components/text-decoration-control/index.js +2 -2
  442. package/build-module/components/text-decoration-control/index.js.map +1 -1
  443. package/build-module/components/text-transform-control/index.js +2 -2
  444. package/build-module/components/text-transform-control/index.js.map +1 -1
  445. package/build-module/components/url-input/index.js +4 -4
  446. package/build-module/components/url-input/index.js.map +1 -1
  447. package/build-module/components/url-popover/link-editor.js +2 -2
  448. package/build-module/components/url-popover/link-editor.js.map +1 -1
  449. package/build-module/components/url-popover/link-viewer-url.js +2 -2
  450. package/build-module/components/url-popover/link-viewer-url.js.map +1 -1
  451. package/build-module/components/url-popover/link-viewer.js +2 -2
  452. package/build-module/components/url-popover/link-viewer.js.map +1 -1
  453. package/build-module/components/warning/index.js +2 -2
  454. package/build-module/components/warning/index.js.map +1 -1
  455. package/build-module/components/writing-flow/index.js +2 -2
  456. package/build-module/components/writing-flow/index.js.map +1 -1
  457. package/build-module/components/writing-flow/use-clipboard-handler.js +78 -31
  458. package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
  459. package/build-module/components/writing-flow/use-input.js +45 -3
  460. package/build-module/components/writing-flow/use-input.js.map +1 -1
  461. package/build-module/components/writing-flow/use-tab-nav.js +6 -1
  462. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  463. package/build-module/components/writing-mode-control/index.js +2 -2
  464. package/build-module/components/writing-mode-control/index.js.map +1 -1
  465. package/build-module/hooks/align.js +2 -2
  466. package/build-module/hooks/align.js.map +1 -1
  467. package/build-module/hooks/background.js +1 -1
  468. package/build-module/hooks/background.js.map +1 -1
  469. package/build-module/hooks/border.js +3 -3
  470. package/build-module/hooks/border.js.map +1 -1
  471. package/build-module/hooks/color.js +3 -3
  472. package/build-module/hooks/color.js.map +1 -1
  473. package/build-module/hooks/content-lock-ui.js +5 -28
  474. package/build-module/hooks/content-lock-ui.js.map +1 -1
  475. package/build-module/hooks/custom-class-name.js +2 -2
  476. package/build-module/hooks/custom-class-name.js.map +1 -1
  477. package/build-module/hooks/custom-class-name.native.js +2 -2
  478. package/build-module/hooks/custom-class-name.native.js.map +1 -1
  479. package/build-module/hooks/dimensions.js +2 -2
  480. package/build-module/hooks/dimensions.js.map +1 -1
  481. package/build-module/hooks/layout-child.js +16 -8
  482. package/build-module/hooks/layout-child.js.map +1 -1
  483. package/build-module/hooks/layout.js +2 -2
  484. package/build-module/hooks/layout.js.map +1 -1
  485. package/build-module/hooks/position.js +2 -2
  486. package/build-module/hooks/position.js.map +1 -1
  487. package/build-module/hooks/text-align.js +3 -3
  488. package/build-module/hooks/text-align.js.map +1 -1
  489. package/build-module/hooks/use-bindings-attributes.js +39 -13
  490. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  491. package/build-module/hooks/use-color-props.js +2 -2
  492. package/build-module/hooks/use-color-props.js.map +1 -1
  493. package/build-module/hooks/use-typography-props.js +2 -2
  494. package/build-module/hooks/use-typography-props.js.map +1 -1
  495. package/build-module/hooks/utils.js +2 -2
  496. package/build-module/hooks/utils.js.map +1 -1
  497. package/build-module/layouts/grid.js +7 -6
  498. package/build-module/layouts/grid.js.map +1 -1
  499. package/build-module/private-apis.js +5 -2
  500. package/build-module/private-apis.js.map +1 -1
  501. package/build-module/store/actions.js +136 -42
  502. package/build-module/store/actions.js.map +1 -1
  503. package/build-module/store/private-actions.js +24 -0
  504. package/build-module/store/private-actions.js.map +1 -1
  505. package/build-module/store/private-keys.js +1 -0
  506. package/build-module/store/private-keys.js.map +1 -1
  507. package/build-module/store/private-selectors.js +5 -0
  508. package/build-module/store/private-selectors.js.map +1 -1
  509. package/build-module/store/selectors.js +4 -1
  510. package/build-module/store/selectors.js.map +1 -1
  511. package/build-module/utils/selection.js +7 -0
  512. package/build-module/utils/selection.js.map +1 -1
  513. package/build-module/utils/transform-styles/index.js +12 -7
  514. package/build-module/utils/transform-styles/index.js.map +1 -1
  515. package/build-style/content-rtl.css +89 -96
  516. package/build-style/content.css +89 -96
  517. package/build-style/style-rtl.css +14 -4
  518. package/build-style/style.css +14 -4
  519. package/build-types/components/block-context/index.d.ts +1 -1
  520. package/build-types/components/block-context/index.d.ts.map +1 -1
  521. package/package.json +32 -32
  522. package/src/components/block-actions/index.js +5 -1
  523. package/src/components/block-alignment-control/ui.js +2 -2
  524. package/src/components/block-card/index.js +2 -2
  525. package/src/components/block-compare/index.js +2 -2
  526. package/src/components/block-content-overlay/content.scss +4 -37
  527. package/src/components/block-draggable/test/helpers.native.js +8 -8
  528. package/src/components/block-edit/edit.js +2 -2
  529. package/src/components/block-icon/index.js +2 -2
  530. package/src/components/block-inspector/index.js +2 -1
  531. package/src/components/block-list/block.js +4 -4
  532. package/src/components/block-list/block.native.js +2 -2
  533. package/src/components/block-list/content.scss +46 -73
  534. package/src/components/block-list/index.js +2 -2
  535. package/src/components/block-list/use-block-props/index.js +4 -2
  536. package/src/components/block-list/use-block-props/use-scroll-into-view.js +38 -0
  537. package/src/components/block-list-appender/index.js +2 -2
  538. package/src/components/block-mover/button.js +2 -2
  539. package/src/components/block-mover/index.js +2 -2
  540. package/src/components/block-patterns-list/index.js +29 -4
  541. package/src/components/block-popover/README.md +1 -1
  542. package/src/components/block-popover/cover.js +22 -7
  543. package/src/components/block-popover/inbetween.js +2 -2
  544. package/src/components/block-popover/index.js +24 -6
  545. package/src/components/block-preview/index.js +2 -2
  546. package/src/components/block-settings-menu/block-settings-dropdown.js +14 -6
  547. package/src/components/block-settings-menu-controls/index.js +25 -16
  548. package/src/components/block-styles/index.js +2 -2
  549. package/src/components/block-toolbar/index.js +3 -3
  550. package/src/components/block-tools/block-selection-button.js +2 -2
  551. package/src/components/block-tools/block-toolbar-breadcrumb.js +5 -5
  552. package/src/components/block-tools/block-toolbar-popover.js +4 -7
  553. package/src/components/block-tools/empty-block-inserter.js +2 -2
  554. package/src/components/block-tools/index.js +24 -3
  555. package/src/components/block-tools/insertion-point.js +4 -4
  556. package/src/components/block-tools/style.scss +8 -0
  557. package/src/components/block-tools/zoom-out-mode-inserters.js +73 -21
  558. package/src/components/block-variation-picker/index.js +2 -2
  559. package/src/components/button-block-appender/index.js +2 -2
  560. package/src/components/child-layout-control/index.js +14 -2
  561. package/src/components/colors-gradients/control.js +3 -3
  562. package/src/components/colors-gradients/dropdown.js +2 -2
  563. package/src/components/colors-gradients/panel-color-gradient-settings.js +2 -2
  564. package/src/components/colors-gradients/test/control.js +3 -3
  565. package/src/components/convert-to-group-buttons/index.js +10 -1
  566. package/src/components/default-block-appender/index.js +2 -2
  567. package/src/components/dimensions-tool/aspect-ratio-tool.js +40 -67
  568. package/src/components/dimensions-tool/test/index.js +10 -0
  569. package/src/components/editable-text/README.md +0 -4
  570. package/src/components/global-styles/background-panel.js +3 -3
  571. package/src/components/global-styles/color-panel.js +3 -3
  572. package/src/components/global-styles/dimensions-panel.js +4 -4
  573. package/src/components/global-styles/filters-panel.js +2 -2
  574. package/src/components/global-styles/shadow-panel-components.js +6 -9
  575. package/src/components/global-styles/test/get-global-styles-changes.js +0 -2
  576. package/src/components/global-styles/test/use-global-styles-output.js +5 -5
  577. package/src/components/global-styles/use-global-styles-output.js +1 -1
  578. package/src/components/grid-visualizer/grid-item-resizer.js +169 -40
  579. package/src/components/grid-visualizer/grid-visualizer.js +19 -6
  580. package/src/components/iframe/content.scss +63 -0
  581. package/src/components/iframe/index.js +119 -39
  582. package/src/components/image-editor/aspect-ratio-dropdown.js +91 -59
  583. package/src/components/image-editor/cropper.js +2 -2
  584. package/src/components/image-editor/index.js +1 -1
  585. package/src/components/image-editor/test/index.js +22 -0
  586. package/src/components/index.js +1 -0
  587. package/src/components/inner-blocks/button-block-appender.js +2 -2
  588. package/src/components/inner-blocks/index.js +19 -17
  589. package/src/components/inserter/block-patterns-explorer/pattern-list.js +2 -1
  590. package/src/components/inserter/block-patterns-tab/index.js +17 -1
  591. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +2 -1
  592. package/src/components/inserter/block-types-tab.js +7 -9
  593. package/src/components/inserter/hooks/use-insertion-point.js +15 -1
  594. package/src/components/inserter/hooks/use-patterns-state.js +18 -5
  595. package/src/components/inserter/index.js +4 -5
  596. package/src/components/inserter/library.js +6 -0
  597. package/src/components/inserter/media-tab/media-preview.js +2 -2
  598. package/src/components/inserter/menu.js +113 -107
  599. package/src/components/inserter/quick-inserter.js +2 -2
  600. package/src/components/inserter/style.scss +6 -8
  601. package/src/components/inserter/tabs.js +29 -15
  602. package/src/components/inserter-list-item/index.js +3 -3
  603. package/src/components/keyboard-shortcuts/index.js +12 -0
  604. package/src/components/line-height-control/test/index.js +16 -14
  605. package/src/components/link-control/index.js +2 -2
  606. package/src/components/link-control/link-preview.js +3 -3
  607. package/src/components/link-control/search-results.js +2 -2
  608. package/src/components/list-view/block-contents.js +2 -2
  609. package/src/components/list-view/block-select-button.js +14 -3
  610. package/src/components/list-view/block.js +54 -30
  611. package/src/components/list-view/drop-indicator.js +3 -3
  612. package/src/components/list-view/index.js +2 -2
  613. package/src/components/list-view/leaf.js +2 -5
  614. package/src/components/media-placeholder/index.js +4 -4
  615. package/src/components/media-replace-flow/index.js +2 -2
  616. package/src/components/plain-text/index.js +2 -2
  617. package/src/components/provider/use-block-sync.js +27 -1
  618. package/src/components/responsive-block-control/index.js +2 -2
  619. package/src/components/rich-text/README.md +0 -8
  620. package/src/components/rich-text/event-listeners/enter.js +28 -48
  621. package/src/components/rich-text/event-listeners/paste-handler.js +21 -58
  622. package/src/components/rich-text/format-toolbar/index.js +2 -2
  623. package/src/components/rich-text/index.js +10 -3
  624. package/src/components/rich-text/index.native.js +2 -2
  625. package/src/components/rich-text/multiline.js +31 -3
  626. package/src/components/segmented-text-control/index.js +2 -2
  627. package/src/components/text-alignment-control/index.js +2 -2
  628. package/src/components/text-decoration-control/index.js +2 -2
  629. package/src/components/text-transform-control/index.js +2 -2
  630. package/src/components/url-input/index.js +4 -4
  631. package/src/components/url-popover/link-editor.js +2 -2
  632. package/src/components/url-popover/link-viewer-url.js +2 -2
  633. package/src/components/url-popover/link-viewer.js +2 -2
  634. package/src/components/warning/index.js +2 -2
  635. package/src/components/writing-flow/index.js +2 -2
  636. package/src/components/writing-flow/use-clipboard-handler.js +107 -47
  637. package/src/components/writing-flow/use-input.js +75 -1
  638. package/src/components/writing-flow/use-tab-nav.js +10 -1
  639. package/src/components/writing-mode-control/index.js +2 -5
  640. package/src/content.scss +1 -0
  641. package/src/hooks/align.js +2 -2
  642. package/src/hooks/background.js +1 -1
  643. package/src/hooks/border.js +3 -3
  644. package/src/hooks/color.js +12 -19
  645. package/src/hooks/color.scss +1 -0
  646. package/src/hooks/content-lock-ui.js +16 -33
  647. package/src/hooks/custom-class-name.js +2 -2
  648. package/src/hooks/custom-class-name.native.js +2 -2
  649. package/src/hooks/dimensions.js +2 -2
  650. package/src/hooks/layout-child.js +34 -20
  651. package/src/hooks/layout.js +2 -2
  652. package/src/hooks/position.js +2 -2
  653. package/src/hooks/text-align.js +3 -3
  654. package/src/hooks/use-bindings-attributes.js +48 -16
  655. package/src/hooks/use-color-props.js +2 -2
  656. package/src/hooks/use-typography-props.js +2 -2
  657. package/src/hooks/utils.js +2 -2
  658. package/src/layouts/grid.js +3 -7
  659. package/src/private-apis.js +4 -0
  660. package/src/store/actions.js +225 -70
  661. package/src/store/private-actions.js +24 -0
  662. package/src/store/private-keys.js +1 -0
  663. package/src/store/private-selectors.js +15 -0
  664. package/src/store/selectors.js +4 -2
  665. package/src/utils/selection.js +8 -0
  666. package/src/utils/test/__snapshots__/transform-styles.js.snap +6 -0
  667. package/src/utils/test/transform-styles.js +14 -0
  668. package/src/utils/transform-styles/index.js +12 -9
  669. package/tsconfig.tsbuildinfo +1 -1
  670. package/build/components/rich-text/split-value.js +0 -81
  671. package/build/components/rich-text/split-value.js.map +0 -1
  672. package/build-module/components/rich-text/split-value.js +0 -75
  673. package/build-module/components/rich-text/split-value.js.map +0 -1
  674. package/src/components/rich-text/split-value.js +0 -64
@@ -1 +1 @@
1
- {"version":3,"names":["getBlockSupport","memo","useMemo","useEffect","useId","useState","useDispatch","useRegistry","createHigherOrderComponent","addFilter","useBlockEditContext","mayDisplayControlsKey","mayDisplayParentControlsKey","useSettings","useSettingsForBlockElement","getValueFromObjectPath","setImmutably","store","blockEditorStore","unlock","classnames","cleanEmptyObject","object","Array","isArray","cleanedNestedObjects","Object","entries","map","key","value","filter","undefined","length","fromEntries","transformStyles","activeSupports","migrationPaths","result","source","index","results","values","every","isActive","innerBlocks","referenceBlockAttributes","attributes","returnBlock","forEach","support","path","styleValue","shouldSkipSerialization","blockNameOrType","featureSet","feature","skipSerialization","__experimentalSkipSerialization","includes","pendingStyleOverrides","WeakMap","useStyleOverride","id","css","assets","__unstableType","clientId","setStyleOverride","deleteStyleOverride","registry","fallbackId","_id","override","get","set","push","window","queueMicrotask","batch","args","isPending","find","currentId","useBlockSettings","name","parentLayout","backgroundImage","backgroundSize","customFontFamilies","defaultFontFamilies","themeFontFamilies","defaultFontSizesEnabled","customFontSizes","defaultFontSizes","themeFontSizes","customFontSize","fontStyle","fontWeight","lineHeight","textAlign","textColumns","textDecoration","writingMode","textTransform","letterSpacing","padding","margin","blockGap","spacingSizes","units","aspectRatio","minHeight","layout","borderColor","borderRadius","borderStyle","borderWidth","customColorsEnabled","customColors","customDuotone","themeColors","defaultColors","defaultPalette","defaultDuotone","userDuotonePalette","themeDuotonePalette","defaultDuotonePalette","userGradientPalette","themeGradientPalette","defaultGradientPalette","defaultGradients","areCustomGradientsEnabled","isBackgroundEnabled","isLinkEnabled","isTextEnabled","isHeadingEnabled","isButtonEnabled","shadow","rawSettings","background","color","palette","custom","theme","default","gradients","duotone","customGradient","link","heading","button","text","typography","fontFamilies","fontSizes","spacing","border","radius","style","width","dimensions","createBlockEditFilter","features","settings","Edit","edit","withBlockEditHooks","OriginalBlockEdit","props","context","i","hasSupport","attributeKeys","shareWithChildBlocks","shouldDisplayControls","neededProps","createElement","isSelected","setAttributes","__unstableParentLayout","BlockProps","useBlockProps","setAllWrapperProps","wrapperProps","setWrapperProps","next","prev","nextAll","BlockPropsPure","createBlockListBlockFilter","withBlockListBlockHooks","BlockListBlock","allWrapperProps","fill","keys","Boolean","reduce","acc","className","createBlockSaveFilter","extraPropsFromHooks","accu","addSaveProps","neededAttributes","hasOwnProperty"],"sources":["@wordpress/block-editor/src/hooks/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { memo, useMemo, useEffect, useId, useState } from '@wordpress/element';\nimport { useDispatch, useRegistry } from '@wordpress/data';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseBlockEditContext,\n\tmayDisplayControlsKey,\n\tmayDisplayParentControlsKey,\n} from '../components/block-edit/context';\nimport { useSettings } from '../components';\nimport { useSettingsForBlockElement } from '../components/global-styles/hooks';\nimport { getValueFromObjectPath, setImmutably } from '../utils/object';\nimport { store as blockEditorStore } from '../store';\nimport { unlock } from '../lock-unlock';\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * Removed falsy values from nested object.\n *\n * @param {*} object\n * @return {*} Object cleaned from falsy values\n */\nexport const cleanEmptyObject = ( object ) => {\n\tif (\n\t\tobject === null ||\n\t\ttypeof object !== 'object' ||\n\t\tArray.isArray( object )\n\t) {\n\t\treturn object;\n\t}\n\n\tconst cleanedNestedObjects = Object.entries( object )\n\t\t.map( ( [ key, value ] ) => [ key, cleanEmptyObject( value ) ] )\n\t\t.filter( ( [ , value ] ) => value !== undefined );\n\treturn ! cleanedNestedObjects.length\n\t\t? undefined\n\t\t: Object.fromEntries( cleanedNestedObjects );\n};\n\nexport function transformStyles(\n\tactiveSupports,\n\tmigrationPaths,\n\tresult,\n\tsource,\n\tindex,\n\tresults\n) {\n\t// If there are no active supports return early.\n\tif (\n\t\tObject.values( activeSupports ?? {} ).every(\n\t\t\t( isActive ) => ! isActive\n\t\t)\n\t) {\n\t\treturn result;\n\t}\n\t// If the condition verifies we are probably in the presence of a wrapping transform\n\t// e.g: nesting paragraphs in a group or columns and in that case the styles should not be transformed.\n\tif ( results.length === 1 && result.innerBlocks.length === source.length ) {\n\t\treturn result;\n\t}\n\t// For cases where we have a transform from one block to multiple blocks\n\t// or multiple blocks to one block we apply the styles of the first source block\n\t// to the result(s).\n\tlet referenceBlockAttributes = source[ 0 ]?.attributes;\n\t// If we are in presence of transform between more than one block in the source\n\t// that has more than one block in the result\n\t// we apply the styles on source N to the result N,\n\t// if source N does not exists we do nothing.\n\tif ( results.length > 1 && source.length > 1 ) {\n\t\tif ( source[ index ] ) {\n\t\t\treferenceBlockAttributes = source[ index ]?.attributes;\n\t\t} else {\n\t\t\treturn result;\n\t\t}\n\t}\n\tlet returnBlock = result;\n\tObject.entries( activeSupports ).forEach( ( [ support, isActive ] ) => {\n\t\tif ( isActive ) {\n\t\t\tmigrationPaths[ support ].forEach( ( path ) => {\n\t\t\t\tconst styleValue = getValueFromObjectPath(\n\t\t\t\t\treferenceBlockAttributes,\n\t\t\t\t\tpath\n\t\t\t\t);\n\t\t\t\tif ( styleValue ) {\n\t\t\t\t\treturnBlock = {\n\t\t\t\t\t\t...returnBlock,\n\t\t\t\t\t\tattributes: setImmutably(\n\t\t\t\t\t\t\treturnBlock.attributes,\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\tstyleValue\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}\n\t} );\n\treturn returnBlock;\n}\n\n/**\n * Check whether serialization of specific block support feature or set should\n * be skipped.\n *\n * @param {string|Object} blockNameOrType Block name or block type object.\n * @param {string} featureSet Name of block support feature set.\n * @param {string} feature Name of the individual feature to check.\n *\n * @return {boolean} Whether serialization should occur.\n */\nexport function shouldSkipSerialization(\n\tblockNameOrType,\n\tfeatureSet,\n\tfeature\n) {\n\tconst support = getBlockSupport( blockNameOrType, featureSet );\n\tconst skipSerialization = support?.__experimentalSkipSerialization;\n\n\tif ( Array.isArray( skipSerialization ) ) {\n\t\treturn skipSerialization.includes( feature );\n\t}\n\n\treturn skipSerialization;\n}\n\nconst pendingStyleOverrides = new WeakMap();\n\nexport function useStyleOverride( {\n\tid,\n\tcss,\n\tassets,\n\t__unstableType,\n\tclientId,\n} = {} ) {\n\tconst { setStyleOverride, deleteStyleOverride } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\tconst registry = useRegistry();\n\tconst fallbackId = useId();\n\tuseEffect( () => {\n\t\t// Unmount if there is CSS and assets are empty.\n\t\tif ( ! css && ! assets ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst _id = id || fallbackId;\n\t\tconst override = {\n\t\t\tid,\n\t\t\tcss,\n\t\t\tassets,\n\t\t\t__unstableType,\n\t\t\tclientId,\n\t\t};\n\t\t// Batch updates to style overrides to avoid triggering cascading renders\n\t\t// for each style override block included in a tree and optimize initial render.\n\t\tif ( ! pendingStyleOverrides.get( registry ) ) {\n\t\t\tpendingStyleOverrides.set( registry, [] );\n\t\t}\n\t\tpendingStyleOverrides.get( registry ).push( [ _id, override ] );\n\t\twindow.queueMicrotask( () => {\n\t\t\tif ( pendingStyleOverrides.get( registry )?.length ) {\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\tpendingStyleOverrides.get( registry ).forEach( ( args ) => {\n\t\t\t\t\t\tsetStyleOverride( ...args );\n\t\t\t\t\t} );\n\t\t\t\t\tpendingStyleOverrides.set( registry, [] );\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\treturn () => {\n\t\t\tconst isPending = pendingStyleOverrides\n\t\t\t\t.get( registry )\n\t\t\t\t?.find( ( [ currentId ] ) => currentId === _id );\n\t\t\tif ( isPending ) {\n\t\t\t\tpendingStyleOverrides.set(\n\t\t\t\t\tregistry,\n\t\t\t\t\tpendingStyleOverrides\n\t\t\t\t\t\t.get( registry )\n\t\t\t\t\t\t.filter( ( [ currentId ] ) => currentId !== _id )\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdeleteStyleOverride( _id );\n\t\t\t}\n\t\t};\n\t}, [\n\t\tid,\n\t\tcss,\n\t\tclientId,\n\t\tassets,\n\t\t__unstableType,\n\t\tfallbackId,\n\t\tsetStyleOverride,\n\t\tdeleteStyleOverride,\n\t\tregistry,\n\t] );\n}\n\n/**\n * Based on the block and its context, returns an object of all the block settings.\n * This object can be passed as a prop to all the Styles UI components\n * (TypographyPanel, DimensionsPanel...).\n *\n * @param {string} name Block name.\n * @param {*} parentLayout Parent layout.\n *\n * @return {Object} Settings object.\n */\nexport function useBlockSettings( name, parentLayout ) {\n\tconst [\n\t\tbackgroundImage,\n\t\tbackgroundSize,\n\t\tcustomFontFamilies,\n\t\tdefaultFontFamilies,\n\t\tthemeFontFamilies,\n\t\tdefaultFontSizesEnabled,\n\t\tcustomFontSizes,\n\t\tdefaultFontSizes,\n\t\tthemeFontSizes,\n\t\tcustomFontSize,\n\t\tfontStyle,\n\t\tfontWeight,\n\t\tlineHeight,\n\t\ttextAlign,\n\t\ttextColumns,\n\t\ttextDecoration,\n\t\twritingMode,\n\t\ttextTransform,\n\t\tletterSpacing,\n\t\tpadding,\n\t\tmargin,\n\t\tblockGap,\n\t\tspacingSizes,\n\t\tunits,\n\t\taspectRatio,\n\t\tminHeight,\n\t\tlayout,\n\t\tborderColor,\n\t\tborderRadius,\n\t\tborderStyle,\n\t\tborderWidth,\n\t\tcustomColorsEnabled,\n\t\tcustomColors,\n\t\tcustomDuotone,\n\t\tthemeColors,\n\t\tdefaultColors,\n\t\tdefaultPalette,\n\t\tdefaultDuotone,\n\t\tuserDuotonePalette,\n\t\tthemeDuotonePalette,\n\t\tdefaultDuotonePalette,\n\t\tuserGradientPalette,\n\t\tthemeGradientPalette,\n\t\tdefaultGradientPalette,\n\t\tdefaultGradients,\n\t\tareCustomGradientsEnabled,\n\t\tisBackgroundEnabled,\n\t\tisLinkEnabled,\n\t\tisTextEnabled,\n\t\tisHeadingEnabled,\n\t\tisButtonEnabled,\n\t\tshadow,\n\t] = useSettings(\n\t\t'background.backgroundImage',\n\t\t'background.backgroundSize',\n\t\t'typography.fontFamilies.custom',\n\t\t'typography.fontFamilies.default',\n\t\t'typography.fontFamilies.theme',\n\t\t'typography.defaultFontSizes',\n\t\t'typography.fontSizes.custom',\n\t\t'typography.fontSizes.default',\n\t\t'typography.fontSizes.theme',\n\t\t'typography.customFontSize',\n\t\t'typography.fontStyle',\n\t\t'typography.fontWeight',\n\t\t'typography.lineHeight',\n\t\t'typography.textAlign',\n\t\t'typography.textColumns',\n\t\t'typography.textDecoration',\n\t\t'typography.writingMode',\n\t\t'typography.textTransform',\n\t\t'typography.letterSpacing',\n\t\t'spacing.padding',\n\t\t'spacing.margin',\n\t\t'spacing.blockGap',\n\t\t'spacing.spacingSizes',\n\t\t'spacing.units',\n\t\t'dimensions.aspectRatio',\n\t\t'dimensions.minHeight',\n\t\t'layout',\n\t\t'border.color',\n\t\t'border.radius',\n\t\t'border.style',\n\t\t'border.width',\n\t\t'color.custom',\n\t\t'color.palette.custom',\n\t\t'color.customDuotone',\n\t\t'color.palette.theme',\n\t\t'color.palette.default',\n\t\t'color.defaultPalette',\n\t\t'color.defaultDuotone',\n\t\t'color.duotone.custom',\n\t\t'color.duotone.theme',\n\t\t'color.duotone.default',\n\t\t'color.gradients.custom',\n\t\t'color.gradients.theme',\n\t\t'color.gradients.default',\n\t\t'color.defaultGradients',\n\t\t'color.customGradient',\n\t\t'color.background',\n\t\t'color.link',\n\t\t'color.text',\n\t\t'color.heading',\n\t\t'color.button',\n\t\t'shadow'\n\t);\n\n\tconst rawSettings = useMemo( () => {\n\t\treturn {\n\t\t\tbackground: {\n\t\t\t\tbackgroundImage,\n\t\t\t\tbackgroundSize,\n\t\t\t},\n\t\t\tcolor: {\n\t\t\t\tpalette: {\n\t\t\t\t\tcustom: customColors,\n\t\t\t\t\ttheme: themeColors,\n\t\t\t\t\tdefault: defaultColors,\n\t\t\t\t},\n\t\t\t\tgradients: {\n\t\t\t\t\tcustom: userGradientPalette,\n\t\t\t\t\ttheme: themeGradientPalette,\n\t\t\t\t\tdefault: defaultGradientPalette,\n\t\t\t\t},\n\t\t\t\tduotone: {\n\t\t\t\t\tcustom: userDuotonePalette,\n\t\t\t\t\ttheme: themeDuotonePalette,\n\t\t\t\t\tdefault: defaultDuotonePalette,\n\t\t\t\t},\n\t\t\t\tdefaultGradients,\n\t\t\t\tdefaultPalette,\n\t\t\t\tdefaultDuotone,\n\t\t\t\tcustom: customColorsEnabled,\n\t\t\t\tcustomGradient: areCustomGradientsEnabled,\n\t\t\t\tcustomDuotone,\n\t\t\t\tbackground: isBackgroundEnabled,\n\t\t\t\tlink: isLinkEnabled,\n\t\t\t\theading: isHeadingEnabled,\n\t\t\t\tbutton: isButtonEnabled,\n\t\t\t\ttext: isTextEnabled,\n\t\t\t},\n\t\t\ttypography: {\n\t\t\t\tfontFamilies: {\n\t\t\t\t\tcustom: customFontFamilies,\n\t\t\t\t\tdefault: defaultFontFamilies,\n\t\t\t\t\ttheme: themeFontFamilies,\n\t\t\t\t},\n\t\t\t\tfontSizes: {\n\t\t\t\t\tcustom: customFontSizes,\n\t\t\t\t\tdefault: defaultFontSizes,\n\t\t\t\t\ttheme: themeFontSizes,\n\t\t\t\t},\n\t\t\t\tcustomFontSize,\n\t\t\t\tdefaultFontSizes: defaultFontSizesEnabled,\n\t\t\t\tfontStyle,\n\t\t\t\tfontWeight,\n\t\t\t\tlineHeight,\n\t\t\t\ttextAlign,\n\t\t\t\ttextColumns,\n\t\t\t\ttextDecoration,\n\t\t\t\ttextTransform,\n\t\t\t\tletterSpacing,\n\t\t\t\twritingMode,\n\t\t\t},\n\t\t\tspacing: {\n\t\t\t\tspacingSizes: {\n\t\t\t\t\tcustom: spacingSizes,\n\t\t\t\t},\n\t\t\t\tpadding,\n\t\t\t\tmargin,\n\t\t\t\tblockGap,\n\t\t\t\tunits,\n\t\t\t},\n\t\t\tborder: {\n\t\t\t\tcolor: borderColor,\n\t\t\t\tradius: borderRadius,\n\t\t\t\tstyle: borderStyle,\n\t\t\t\twidth: borderWidth,\n\t\t\t},\n\t\t\tdimensions: {\n\t\t\t\taspectRatio,\n\t\t\t\tminHeight,\n\t\t\t},\n\t\t\tlayout,\n\t\t\tparentLayout,\n\t\t\tshadow,\n\t\t};\n\t}, [\n\t\tbackgroundImage,\n\t\tbackgroundSize,\n\t\tcustomFontFamilies,\n\t\tdefaultFontFamilies,\n\t\tthemeFontFamilies,\n\t\tdefaultFontSizesEnabled,\n\t\tcustomFontSizes,\n\t\tdefaultFontSizes,\n\t\tthemeFontSizes,\n\t\tcustomFontSize,\n\t\tfontStyle,\n\t\tfontWeight,\n\t\tlineHeight,\n\t\ttextAlign,\n\t\ttextColumns,\n\t\ttextDecoration,\n\t\ttextTransform,\n\t\tletterSpacing,\n\t\twritingMode,\n\t\tpadding,\n\t\tmargin,\n\t\tblockGap,\n\t\tspacingSizes,\n\t\tunits,\n\t\taspectRatio,\n\t\tminHeight,\n\t\tlayout,\n\t\tparentLayout,\n\t\tborderColor,\n\t\tborderRadius,\n\t\tborderStyle,\n\t\tborderWidth,\n\t\tcustomColorsEnabled,\n\t\tcustomColors,\n\t\tcustomDuotone,\n\t\tthemeColors,\n\t\tdefaultColors,\n\t\tdefaultPalette,\n\t\tdefaultDuotone,\n\t\tuserDuotonePalette,\n\t\tthemeDuotonePalette,\n\t\tdefaultDuotonePalette,\n\t\tuserGradientPalette,\n\t\tthemeGradientPalette,\n\t\tdefaultGradientPalette,\n\t\tdefaultGradients,\n\t\tareCustomGradientsEnabled,\n\t\tisBackgroundEnabled,\n\t\tisLinkEnabled,\n\t\tisTextEnabled,\n\t\tisHeadingEnabled,\n\t\tisButtonEnabled,\n\t\tshadow,\n\t] );\n\n\treturn useSettingsForBlockElement( rawSettings, name );\n}\n\nexport function createBlockEditFilter( features ) {\n\t// We don't want block controls to re-render when typing inside a block.\n\t// `memo` will prevent re-renders unless props change, so only pass the\n\t// needed props and not the whole attributes object.\n\tfeatures = features.map( ( settings ) => {\n\t\treturn { ...settings, Edit: memo( settings.edit ) };\n\t} );\n\tconst withBlockEditHooks = createHigherOrderComponent(\n\t\t( OriginalBlockEdit ) => ( props ) => {\n\t\t\tconst context = useBlockEditContext();\n\t\t\t// CAUTION: code added before this line will be executed for all\n\t\t\t// blocks, not just those that support the feature! Code added\n\t\t\t// above this line should be carefully evaluated for its impact on\n\t\t\t// performance.\n\t\t\treturn [\n\t\t\t\t...features.map( ( feature, i ) => {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tEdit,\n\t\t\t\t\t\thasSupport,\n\t\t\t\t\t\tattributeKeys = [],\n\t\t\t\t\t\tshareWithChildBlocks,\n\t\t\t\t\t} = feature;\n\t\t\t\t\tconst shouldDisplayControls =\n\t\t\t\t\t\tcontext[ mayDisplayControlsKey ] ||\n\t\t\t\t\t\t( context[ mayDisplayParentControlsKey ] &&\n\t\t\t\t\t\t\tshareWithChildBlocks );\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t! shouldDisplayControls ||\n\t\t\t\t\t\t! hasSupport( props.name )\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst neededProps = {};\n\t\t\t\t\tfor ( const key of attributeKeys ) {\n\t\t\t\t\t\tif ( props.attributes[ key ] ) {\n\t\t\t\t\t\t\tneededProps[ key ] = props.attributes[ key ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Edit\n\t\t\t\t\t\t\t// We can use the index because the array length\n\t\t\t\t\t\t\t// is fixed per page load right now.\n\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t\tname={ props.name }\n\t\t\t\t\t\t\tisSelected={ props.isSelected }\n\t\t\t\t\t\t\tclientId={ props.clientId }\n\t\t\t\t\t\t\tsetAttributes={ props.setAttributes }\n\t\t\t\t\t\t\t__unstableParentLayout={\n\t\t\t\t\t\t\t\tprops.__unstableParentLayout\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// This component is pure, so only pass needed\n\t\t\t\t\t\t\t// props!!!\n\t\t\t\t\t\t\t{ ...neededProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ),\n\t\t\t\t<OriginalBlockEdit key=\"edit\" { ...props } />,\n\t\t\t];\n\t\t},\n\t\t'withBlockEditHooks'\n\t);\n\taddFilter( 'editor.BlockEdit', 'core/editor/hooks', withBlockEditHooks );\n}\n\nfunction BlockProps( { index, useBlockProps, setAllWrapperProps, ...props } ) {\n\tconst wrapperProps = useBlockProps( props );\n\tconst setWrapperProps = ( next ) =>\n\t\tsetAllWrapperProps( ( prev ) => {\n\t\t\tconst nextAll = [ ...prev ];\n\t\t\tnextAll[ index ] = next;\n\t\t\treturn nextAll;\n\t\t} );\n\t// Setting state after every render is fine because this component is\n\t// pure and will only re-render when needed props change.\n\tuseEffect( () => {\n\t\t// We could shallow compare the props, but since this component only\n\t\t// changes when needed attributes change, the benefit is probably small.\n\t\tsetWrapperProps( wrapperProps );\n\t\treturn () => {\n\t\t\tsetWrapperProps( undefined );\n\t\t};\n\t} );\n\treturn null;\n}\n\nconst BlockPropsPure = memo( BlockProps );\n\nexport function createBlockListBlockFilter( features ) {\n\tconst withBlockListBlockHooks = createHigherOrderComponent(\n\t\t( BlockListBlock ) => ( props ) => {\n\t\t\tconst [ allWrapperProps, setAllWrapperProps ] = useState(\n\t\t\t\tArray( features.length ).fill( undefined )\n\t\t\t);\n\t\t\treturn [\n\t\t\t\t...features.map( ( feature, i ) => {\n\t\t\t\t\tconst {\n\t\t\t\t\t\thasSupport,\n\t\t\t\t\t\tattributeKeys = [],\n\t\t\t\t\t\tuseBlockProps,\n\t\t\t\t\t} = feature;\n\n\t\t\t\t\tconst neededProps = {};\n\t\t\t\t\tfor ( const key of attributeKeys ) {\n\t\t\t\t\t\tif ( props.attributes[ key ] ) {\n\t\t\t\t\t\t\tneededProps[ key ] = props.attributes[ key ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t// Skip rendering if none of the needed attributes are\n\t\t\t\t\t\t// set.\n\t\t\t\t\t\t! Object.keys( neededProps ).length ||\n\t\t\t\t\t\t! hasSupport( props.name )\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<BlockPropsPure\n\t\t\t\t\t\t\t// We can use the index because the array length\n\t\t\t\t\t\t\t// is fixed per page load right now.\n\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t\tindex={ i }\n\t\t\t\t\t\t\tuseBlockProps={ useBlockProps }\n\t\t\t\t\t\t\t// This component is pure, so we must pass a stable\n\t\t\t\t\t\t\t// function reference.\n\t\t\t\t\t\t\tsetAllWrapperProps={ setAllWrapperProps }\n\t\t\t\t\t\t\tname={ props.name }\n\t\t\t\t\t\t\t// This component is pure, so only pass needed\n\t\t\t\t\t\t\t// props!!!\n\t\t\t\t\t\t\t{ ...neededProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ),\n\t\t\t\t<BlockListBlock\n\t\t\t\t\tkey=\"edit\"\n\t\t\t\t\t{ ...props }\n\t\t\t\t\twrapperProps={ allWrapperProps\n\t\t\t\t\t\t.filter( Boolean )\n\t\t\t\t\t\t.reduce( ( acc, wrapperProps ) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t\t\t...wrapperProps,\n\t\t\t\t\t\t\t\tclassName: classnames(\n\t\t\t\t\t\t\t\t\tacc.className,\n\t\t\t\t\t\t\t\t\twrapperProps.className\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t\t...acc.style,\n\t\t\t\t\t\t\t\t\t...wrapperProps.style,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}, props.wrapperProps || {} ) }\n\t\t\t\t/>,\n\t\t\t];\n\t\t},\n\t\t'withBlockListBlockHooks'\n\t);\n\taddFilter(\n\t\t'editor.BlockListBlock',\n\t\t'core/editor/hooks',\n\t\twithBlockListBlockHooks\n\t);\n}\n\nexport function createBlockSaveFilter( features ) {\n\tfunction extraPropsFromHooks( props, name, attributes ) {\n\t\treturn features.reduce( ( accu, feature ) => {\n\t\t\tconst { hasSupport, attributeKeys = [], addSaveProps } = feature;\n\n\t\t\tconst neededAttributes = {};\n\t\t\tfor ( const key of attributeKeys ) {\n\t\t\t\tif ( attributes[ key ] ) {\n\t\t\t\t\tneededAttributes[ key ] = attributes[ key ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// Skip rendering if none of the needed attributes are\n\t\t\t\t// set.\n\t\t\t\t! Object.keys( neededAttributes ).length ||\n\t\t\t\t! hasSupport( name )\n\t\t\t) {\n\t\t\t\treturn accu;\n\t\t\t}\n\n\t\t\treturn addSaveProps( accu, name, neededAttributes );\n\t\t}, props );\n\t}\n\taddFilter(\n\t\t'blocks.getSaveContent.extraProps',\n\t\t'core/editor/hooks',\n\t\textraPropsFromHooks,\n\t\t0\n\t);\n\taddFilter(\n\t\t'blocks.getSaveContent.extraProps',\n\t\t'core/editor/hooks',\n\t\t( props ) => {\n\t\t\t// Previously we had a filter deleting the className if it was an empty\n\t\t\t// string. That filter is no longer running, so now we need to delete it\n\t\t\t// here.\n\t\t\tif ( props.hasOwnProperty( 'className' ) && ! props.className ) {\n\t\t\t\tdelete props.className;\n\t\t\t}\n\n\t\t\treturn props;\n\t\t}\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getBlockSupport","memo","useMemo","useEffect","useId","useState","useDispatch","useRegistry","createHigherOrderComponent","addFilter","useBlockEditContext","mayDisplayControlsKey","mayDisplayParentControlsKey","useSettings","useSettingsForBlockElement","getValueFromObjectPath","setImmutably","store","blockEditorStore","unlock","clsx","cleanEmptyObject","object","Array","isArray","cleanedNestedObjects","Object","entries","map","key","value","filter","undefined","length","fromEntries","transformStyles","activeSupports","migrationPaths","result","source","index","results","values","every","isActive","innerBlocks","referenceBlockAttributes","attributes","returnBlock","forEach","support","path","styleValue","shouldSkipSerialization","blockNameOrType","featureSet","feature","skipSerialization","__experimentalSkipSerialization","includes","pendingStyleOverrides","WeakMap","useStyleOverride","id","css","assets","__unstableType","clientId","setStyleOverride","deleteStyleOverride","registry","fallbackId","_id","override","get","set","push","window","queueMicrotask","batch","args","isPending","find","currentId","useBlockSettings","name","parentLayout","backgroundImage","backgroundSize","customFontFamilies","defaultFontFamilies","themeFontFamilies","defaultFontSizesEnabled","customFontSizes","defaultFontSizes","themeFontSizes","customFontSize","fontStyle","fontWeight","lineHeight","textAlign","textColumns","textDecoration","writingMode","textTransform","letterSpacing","padding","margin","blockGap","spacingSizes","units","aspectRatio","minHeight","layout","borderColor","borderRadius","borderStyle","borderWidth","customColorsEnabled","customColors","customDuotone","themeColors","defaultColors","defaultPalette","defaultDuotone","userDuotonePalette","themeDuotonePalette","defaultDuotonePalette","userGradientPalette","themeGradientPalette","defaultGradientPalette","defaultGradients","areCustomGradientsEnabled","isBackgroundEnabled","isLinkEnabled","isTextEnabled","isHeadingEnabled","isButtonEnabled","shadow","rawSettings","background","color","palette","custom","theme","default","gradients","duotone","customGradient","link","heading","button","text","typography","fontFamilies","fontSizes","spacing","border","radius","style","width","dimensions","createBlockEditFilter","features","settings","Edit","edit","withBlockEditHooks","OriginalBlockEdit","props","context","i","hasSupport","attributeKeys","shareWithChildBlocks","shouldDisplayControls","neededProps","createElement","isSelected","setAttributes","__unstableParentLayout","BlockProps","useBlockProps","setAllWrapperProps","wrapperProps","setWrapperProps","next","prev","nextAll","BlockPropsPure","createBlockListBlockFilter","withBlockListBlockHooks","BlockListBlock","allWrapperProps","fill","keys","Boolean","reduce","acc","className","createBlockSaveFilter","extraPropsFromHooks","accu","addSaveProps","neededAttributes","hasOwnProperty"],"sources":["@wordpress/block-editor/src/hooks/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { memo, useMemo, useEffect, useId, useState } from '@wordpress/element';\nimport { useDispatch, useRegistry } from '@wordpress/data';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseBlockEditContext,\n\tmayDisplayControlsKey,\n\tmayDisplayParentControlsKey,\n} from '../components/block-edit/context';\nimport { useSettings } from '../components';\nimport { useSettingsForBlockElement } from '../components/global-styles/hooks';\nimport { getValueFromObjectPath, setImmutably } from '../utils/object';\nimport { store as blockEditorStore } from '../store';\nimport { unlock } from '../lock-unlock';\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * Removed falsy values from nested object.\n *\n * @param {*} object\n * @return {*} Object cleaned from falsy values\n */\nexport const cleanEmptyObject = ( object ) => {\n\tif (\n\t\tobject === null ||\n\t\ttypeof object !== 'object' ||\n\t\tArray.isArray( object )\n\t) {\n\t\treturn object;\n\t}\n\n\tconst cleanedNestedObjects = Object.entries( object )\n\t\t.map( ( [ key, value ] ) => [ key, cleanEmptyObject( value ) ] )\n\t\t.filter( ( [ , value ] ) => value !== undefined );\n\treturn ! cleanedNestedObjects.length\n\t\t? undefined\n\t\t: Object.fromEntries( cleanedNestedObjects );\n};\n\nexport function transformStyles(\n\tactiveSupports,\n\tmigrationPaths,\n\tresult,\n\tsource,\n\tindex,\n\tresults\n) {\n\t// If there are no active supports return early.\n\tif (\n\t\tObject.values( activeSupports ?? {} ).every(\n\t\t\t( isActive ) => ! isActive\n\t\t)\n\t) {\n\t\treturn result;\n\t}\n\t// If the condition verifies we are probably in the presence of a wrapping transform\n\t// e.g: nesting paragraphs in a group or columns and in that case the styles should not be transformed.\n\tif ( results.length === 1 && result.innerBlocks.length === source.length ) {\n\t\treturn result;\n\t}\n\t// For cases where we have a transform from one block to multiple blocks\n\t// or multiple blocks to one block we apply the styles of the first source block\n\t// to the result(s).\n\tlet referenceBlockAttributes = source[ 0 ]?.attributes;\n\t// If we are in presence of transform between more than one block in the source\n\t// that has more than one block in the result\n\t// we apply the styles on source N to the result N,\n\t// if source N does not exists we do nothing.\n\tif ( results.length > 1 && source.length > 1 ) {\n\t\tif ( source[ index ] ) {\n\t\t\treferenceBlockAttributes = source[ index ]?.attributes;\n\t\t} else {\n\t\t\treturn result;\n\t\t}\n\t}\n\tlet returnBlock = result;\n\tObject.entries( activeSupports ).forEach( ( [ support, isActive ] ) => {\n\t\tif ( isActive ) {\n\t\t\tmigrationPaths[ support ].forEach( ( path ) => {\n\t\t\t\tconst styleValue = getValueFromObjectPath(\n\t\t\t\t\treferenceBlockAttributes,\n\t\t\t\t\tpath\n\t\t\t\t);\n\t\t\t\tif ( styleValue ) {\n\t\t\t\t\treturnBlock = {\n\t\t\t\t\t\t...returnBlock,\n\t\t\t\t\t\tattributes: setImmutably(\n\t\t\t\t\t\t\treturnBlock.attributes,\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\tstyleValue\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}\n\t} );\n\treturn returnBlock;\n}\n\n/**\n * Check whether serialization of specific block support feature or set should\n * be skipped.\n *\n * @param {string|Object} blockNameOrType Block name or block type object.\n * @param {string} featureSet Name of block support feature set.\n * @param {string} feature Name of the individual feature to check.\n *\n * @return {boolean} Whether serialization should occur.\n */\nexport function shouldSkipSerialization(\n\tblockNameOrType,\n\tfeatureSet,\n\tfeature\n) {\n\tconst support = getBlockSupport( blockNameOrType, featureSet );\n\tconst skipSerialization = support?.__experimentalSkipSerialization;\n\n\tif ( Array.isArray( skipSerialization ) ) {\n\t\treturn skipSerialization.includes( feature );\n\t}\n\n\treturn skipSerialization;\n}\n\nconst pendingStyleOverrides = new WeakMap();\n\nexport function useStyleOverride( {\n\tid,\n\tcss,\n\tassets,\n\t__unstableType,\n\tclientId,\n} = {} ) {\n\tconst { setStyleOverride, deleteStyleOverride } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\tconst registry = useRegistry();\n\tconst fallbackId = useId();\n\tuseEffect( () => {\n\t\t// Unmount if there is CSS and assets are empty.\n\t\tif ( ! css && ! assets ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst _id = id || fallbackId;\n\t\tconst override = {\n\t\t\tid,\n\t\t\tcss,\n\t\t\tassets,\n\t\t\t__unstableType,\n\t\t\tclientId,\n\t\t};\n\t\t// Batch updates to style overrides to avoid triggering cascading renders\n\t\t// for each style override block included in a tree and optimize initial render.\n\t\tif ( ! pendingStyleOverrides.get( registry ) ) {\n\t\t\tpendingStyleOverrides.set( registry, [] );\n\t\t}\n\t\tpendingStyleOverrides.get( registry ).push( [ _id, override ] );\n\t\twindow.queueMicrotask( () => {\n\t\t\tif ( pendingStyleOverrides.get( registry )?.length ) {\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\tpendingStyleOverrides.get( registry ).forEach( ( args ) => {\n\t\t\t\t\t\tsetStyleOverride( ...args );\n\t\t\t\t\t} );\n\t\t\t\t\tpendingStyleOverrides.set( registry, [] );\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\treturn () => {\n\t\t\tconst isPending = pendingStyleOverrides\n\t\t\t\t.get( registry )\n\t\t\t\t?.find( ( [ currentId ] ) => currentId === _id );\n\t\t\tif ( isPending ) {\n\t\t\t\tpendingStyleOverrides.set(\n\t\t\t\t\tregistry,\n\t\t\t\t\tpendingStyleOverrides\n\t\t\t\t\t\t.get( registry )\n\t\t\t\t\t\t.filter( ( [ currentId ] ) => currentId !== _id )\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdeleteStyleOverride( _id );\n\t\t\t}\n\t\t};\n\t}, [\n\t\tid,\n\t\tcss,\n\t\tclientId,\n\t\tassets,\n\t\t__unstableType,\n\t\tfallbackId,\n\t\tsetStyleOverride,\n\t\tdeleteStyleOverride,\n\t\tregistry,\n\t] );\n}\n\n/**\n * Based on the block and its context, returns an object of all the block settings.\n * This object can be passed as a prop to all the Styles UI components\n * (TypographyPanel, DimensionsPanel...).\n *\n * @param {string} name Block name.\n * @param {*} parentLayout Parent layout.\n *\n * @return {Object} Settings object.\n */\nexport function useBlockSettings( name, parentLayout ) {\n\tconst [\n\t\tbackgroundImage,\n\t\tbackgroundSize,\n\t\tcustomFontFamilies,\n\t\tdefaultFontFamilies,\n\t\tthemeFontFamilies,\n\t\tdefaultFontSizesEnabled,\n\t\tcustomFontSizes,\n\t\tdefaultFontSizes,\n\t\tthemeFontSizes,\n\t\tcustomFontSize,\n\t\tfontStyle,\n\t\tfontWeight,\n\t\tlineHeight,\n\t\ttextAlign,\n\t\ttextColumns,\n\t\ttextDecoration,\n\t\twritingMode,\n\t\ttextTransform,\n\t\tletterSpacing,\n\t\tpadding,\n\t\tmargin,\n\t\tblockGap,\n\t\tspacingSizes,\n\t\tunits,\n\t\taspectRatio,\n\t\tminHeight,\n\t\tlayout,\n\t\tborderColor,\n\t\tborderRadius,\n\t\tborderStyle,\n\t\tborderWidth,\n\t\tcustomColorsEnabled,\n\t\tcustomColors,\n\t\tcustomDuotone,\n\t\tthemeColors,\n\t\tdefaultColors,\n\t\tdefaultPalette,\n\t\tdefaultDuotone,\n\t\tuserDuotonePalette,\n\t\tthemeDuotonePalette,\n\t\tdefaultDuotonePalette,\n\t\tuserGradientPalette,\n\t\tthemeGradientPalette,\n\t\tdefaultGradientPalette,\n\t\tdefaultGradients,\n\t\tareCustomGradientsEnabled,\n\t\tisBackgroundEnabled,\n\t\tisLinkEnabled,\n\t\tisTextEnabled,\n\t\tisHeadingEnabled,\n\t\tisButtonEnabled,\n\t\tshadow,\n\t] = useSettings(\n\t\t'background.backgroundImage',\n\t\t'background.backgroundSize',\n\t\t'typography.fontFamilies.custom',\n\t\t'typography.fontFamilies.default',\n\t\t'typography.fontFamilies.theme',\n\t\t'typography.defaultFontSizes',\n\t\t'typography.fontSizes.custom',\n\t\t'typography.fontSizes.default',\n\t\t'typography.fontSizes.theme',\n\t\t'typography.customFontSize',\n\t\t'typography.fontStyle',\n\t\t'typography.fontWeight',\n\t\t'typography.lineHeight',\n\t\t'typography.textAlign',\n\t\t'typography.textColumns',\n\t\t'typography.textDecoration',\n\t\t'typography.writingMode',\n\t\t'typography.textTransform',\n\t\t'typography.letterSpacing',\n\t\t'spacing.padding',\n\t\t'spacing.margin',\n\t\t'spacing.blockGap',\n\t\t'spacing.spacingSizes',\n\t\t'spacing.units',\n\t\t'dimensions.aspectRatio',\n\t\t'dimensions.minHeight',\n\t\t'layout',\n\t\t'border.color',\n\t\t'border.radius',\n\t\t'border.style',\n\t\t'border.width',\n\t\t'color.custom',\n\t\t'color.palette.custom',\n\t\t'color.customDuotone',\n\t\t'color.palette.theme',\n\t\t'color.palette.default',\n\t\t'color.defaultPalette',\n\t\t'color.defaultDuotone',\n\t\t'color.duotone.custom',\n\t\t'color.duotone.theme',\n\t\t'color.duotone.default',\n\t\t'color.gradients.custom',\n\t\t'color.gradients.theme',\n\t\t'color.gradients.default',\n\t\t'color.defaultGradients',\n\t\t'color.customGradient',\n\t\t'color.background',\n\t\t'color.link',\n\t\t'color.text',\n\t\t'color.heading',\n\t\t'color.button',\n\t\t'shadow'\n\t);\n\n\tconst rawSettings = useMemo( () => {\n\t\treturn {\n\t\t\tbackground: {\n\t\t\t\tbackgroundImage,\n\t\t\t\tbackgroundSize,\n\t\t\t},\n\t\t\tcolor: {\n\t\t\t\tpalette: {\n\t\t\t\t\tcustom: customColors,\n\t\t\t\t\ttheme: themeColors,\n\t\t\t\t\tdefault: defaultColors,\n\t\t\t\t},\n\t\t\t\tgradients: {\n\t\t\t\t\tcustom: userGradientPalette,\n\t\t\t\t\ttheme: themeGradientPalette,\n\t\t\t\t\tdefault: defaultGradientPalette,\n\t\t\t\t},\n\t\t\t\tduotone: {\n\t\t\t\t\tcustom: userDuotonePalette,\n\t\t\t\t\ttheme: themeDuotonePalette,\n\t\t\t\t\tdefault: defaultDuotonePalette,\n\t\t\t\t},\n\t\t\t\tdefaultGradients,\n\t\t\t\tdefaultPalette,\n\t\t\t\tdefaultDuotone,\n\t\t\t\tcustom: customColorsEnabled,\n\t\t\t\tcustomGradient: areCustomGradientsEnabled,\n\t\t\t\tcustomDuotone,\n\t\t\t\tbackground: isBackgroundEnabled,\n\t\t\t\tlink: isLinkEnabled,\n\t\t\t\theading: isHeadingEnabled,\n\t\t\t\tbutton: isButtonEnabled,\n\t\t\t\ttext: isTextEnabled,\n\t\t\t},\n\t\t\ttypography: {\n\t\t\t\tfontFamilies: {\n\t\t\t\t\tcustom: customFontFamilies,\n\t\t\t\t\tdefault: defaultFontFamilies,\n\t\t\t\t\ttheme: themeFontFamilies,\n\t\t\t\t},\n\t\t\t\tfontSizes: {\n\t\t\t\t\tcustom: customFontSizes,\n\t\t\t\t\tdefault: defaultFontSizes,\n\t\t\t\t\ttheme: themeFontSizes,\n\t\t\t\t},\n\t\t\t\tcustomFontSize,\n\t\t\t\tdefaultFontSizes: defaultFontSizesEnabled,\n\t\t\t\tfontStyle,\n\t\t\t\tfontWeight,\n\t\t\t\tlineHeight,\n\t\t\t\ttextAlign,\n\t\t\t\ttextColumns,\n\t\t\t\ttextDecoration,\n\t\t\t\ttextTransform,\n\t\t\t\tletterSpacing,\n\t\t\t\twritingMode,\n\t\t\t},\n\t\t\tspacing: {\n\t\t\t\tspacingSizes: {\n\t\t\t\t\tcustom: spacingSizes,\n\t\t\t\t},\n\t\t\t\tpadding,\n\t\t\t\tmargin,\n\t\t\t\tblockGap,\n\t\t\t\tunits,\n\t\t\t},\n\t\t\tborder: {\n\t\t\t\tcolor: borderColor,\n\t\t\t\tradius: borderRadius,\n\t\t\t\tstyle: borderStyle,\n\t\t\t\twidth: borderWidth,\n\t\t\t},\n\t\t\tdimensions: {\n\t\t\t\taspectRatio,\n\t\t\t\tminHeight,\n\t\t\t},\n\t\t\tlayout,\n\t\t\tparentLayout,\n\t\t\tshadow,\n\t\t};\n\t}, [\n\t\tbackgroundImage,\n\t\tbackgroundSize,\n\t\tcustomFontFamilies,\n\t\tdefaultFontFamilies,\n\t\tthemeFontFamilies,\n\t\tdefaultFontSizesEnabled,\n\t\tcustomFontSizes,\n\t\tdefaultFontSizes,\n\t\tthemeFontSizes,\n\t\tcustomFontSize,\n\t\tfontStyle,\n\t\tfontWeight,\n\t\tlineHeight,\n\t\ttextAlign,\n\t\ttextColumns,\n\t\ttextDecoration,\n\t\ttextTransform,\n\t\tletterSpacing,\n\t\twritingMode,\n\t\tpadding,\n\t\tmargin,\n\t\tblockGap,\n\t\tspacingSizes,\n\t\tunits,\n\t\taspectRatio,\n\t\tminHeight,\n\t\tlayout,\n\t\tparentLayout,\n\t\tborderColor,\n\t\tborderRadius,\n\t\tborderStyle,\n\t\tborderWidth,\n\t\tcustomColorsEnabled,\n\t\tcustomColors,\n\t\tcustomDuotone,\n\t\tthemeColors,\n\t\tdefaultColors,\n\t\tdefaultPalette,\n\t\tdefaultDuotone,\n\t\tuserDuotonePalette,\n\t\tthemeDuotonePalette,\n\t\tdefaultDuotonePalette,\n\t\tuserGradientPalette,\n\t\tthemeGradientPalette,\n\t\tdefaultGradientPalette,\n\t\tdefaultGradients,\n\t\tareCustomGradientsEnabled,\n\t\tisBackgroundEnabled,\n\t\tisLinkEnabled,\n\t\tisTextEnabled,\n\t\tisHeadingEnabled,\n\t\tisButtonEnabled,\n\t\tshadow,\n\t] );\n\n\treturn useSettingsForBlockElement( rawSettings, name );\n}\n\nexport function createBlockEditFilter( features ) {\n\t// We don't want block controls to re-render when typing inside a block.\n\t// `memo` will prevent re-renders unless props change, so only pass the\n\t// needed props and not the whole attributes object.\n\tfeatures = features.map( ( settings ) => {\n\t\treturn { ...settings, Edit: memo( settings.edit ) };\n\t} );\n\tconst withBlockEditHooks = createHigherOrderComponent(\n\t\t( OriginalBlockEdit ) => ( props ) => {\n\t\t\tconst context = useBlockEditContext();\n\t\t\t// CAUTION: code added before this line will be executed for all\n\t\t\t// blocks, not just those that support the feature! Code added\n\t\t\t// above this line should be carefully evaluated for its impact on\n\t\t\t// performance.\n\t\t\treturn [\n\t\t\t\t...features.map( ( feature, i ) => {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tEdit,\n\t\t\t\t\t\thasSupport,\n\t\t\t\t\t\tattributeKeys = [],\n\t\t\t\t\t\tshareWithChildBlocks,\n\t\t\t\t\t} = feature;\n\t\t\t\t\tconst shouldDisplayControls =\n\t\t\t\t\t\tcontext[ mayDisplayControlsKey ] ||\n\t\t\t\t\t\t( context[ mayDisplayParentControlsKey ] &&\n\t\t\t\t\t\t\tshareWithChildBlocks );\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t! shouldDisplayControls ||\n\t\t\t\t\t\t! hasSupport( props.name )\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst neededProps = {};\n\t\t\t\t\tfor ( const key of attributeKeys ) {\n\t\t\t\t\t\tif ( props.attributes[ key ] ) {\n\t\t\t\t\t\t\tneededProps[ key ] = props.attributes[ key ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Edit\n\t\t\t\t\t\t\t// We can use the index because the array length\n\t\t\t\t\t\t\t// is fixed per page load right now.\n\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t\tname={ props.name }\n\t\t\t\t\t\t\tisSelected={ props.isSelected }\n\t\t\t\t\t\t\tclientId={ props.clientId }\n\t\t\t\t\t\t\tsetAttributes={ props.setAttributes }\n\t\t\t\t\t\t\t__unstableParentLayout={\n\t\t\t\t\t\t\t\tprops.__unstableParentLayout\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// This component is pure, so only pass needed\n\t\t\t\t\t\t\t// props!!!\n\t\t\t\t\t\t\t{ ...neededProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ),\n\t\t\t\t<OriginalBlockEdit key=\"edit\" { ...props } />,\n\t\t\t];\n\t\t},\n\t\t'withBlockEditHooks'\n\t);\n\taddFilter( 'editor.BlockEdit', 'core/editor/hooks', withBlockEditHooks );\n}\n\nfunction BlockProps( { index, useBlockProps, setAllWrapperProps, ...props } ) {\n\tconst wrapperProps = useBlockProps( props );\n\tconst setWrapperProps = ( next ) =>\n\t\tsetAllWrapperProps( ( prev ) => {\n\t\t\tconst nextAll = [ ...prev ];\n\t\t\tnextAll[ index ] = next;\n\t\t\treturn nextAll;\n\t\t} );\n\t// Setting state after every render is fine because this component is\n\t// pure and will only re-render when needed props change.\n\tuseEffect( () => {\n\t\t// We could shallow compare the props, but since this component only\n\t\t// changes when needed attributes change, the benefit is probably small.\n\t\tsetWrapperProps( wrapperProps );\n\t\treturn () => {\n\t\t\tsetWrapperProps( undefined );\n\t\t};\n\t} );\n\treturn null;\n}\n\nconst BlockPropsPure = memo( BlockProps );\n\nexport function createBlockListBlockFilter( features ) {\n\tconst withBlockListBlockHooks = createHigherOrderComponent(\n\t\t( BlockListBlock ) => ( props ) => {\n\t\t\tconst [ allWrapperProps, setAllWrapperProps ] = useState(\n\t\t\t\tArray( features.length ).fill( undefined )\n\t\t\t);\n\t\t\treturn [\n\t\t\t\t...features.map( ( feature, i ) => {\n\t\t\t\t\tconst {\n\t\t\t\t\t\thasSupport,\n\t\t\t\t\t\tattributeKeys = [],\n\t\t\t\t\t\tuseBlockProps,\n\t\t\t\t\t} = feature;\n\n\t\t\t\t\tconst neededProps = {};\n\t\t\t\t\tfor ( const key of attributeKeys ) {\n\t\t\t\t\t\tif ( props.attributes[ key ] ) {\n\t\t\t\t\t\t\tneededProps[ key ] = props.attributes[ key ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t// Skip rendering if none of the needed attributes are\n\t\t\t\t\t\t// set.\n\t\t\t\t\t\t! Object.keys( neededProps ).length ||\n\t\t\t\t\t\t! hasSupport( props.name )\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<BlockPropsPure\n\t\t\t\t\t\t\t// We can use the index because the array length\n\t\t\t\t\t\t\t// is fixed per page load right now.\n\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t\tindex={ i }\n\t\t\t\t\t\t\tuseBlockProps={ useBlockProps }\n\t\t\t\t\t\t\t// This component is pure, so we must pass a stable\n\t\t\t\t\t\t\t// function reference.\n\t\t\t\t\t\t\tsetAllWrapperProps={ setAllWrapperProps }\n\t\t\t\t\t\t\tname={ props.name }\n\t\t\t\t\t\t\t// This component is pure, so only pass needed\n\t\t\t\t\t\t\t// props!!!\n\t\t\t\t\t\t\t{ ...neededProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ),\n\t\t\t\t<BlockListBlock\n\t\t\t\t\tkey=\"edit\"\n\t\t\t\t\t{ ...props }\n\t\t\t\t\twrapperProps={ allWrapperProps\n\t\t\t\t\t\t.filter( Boolean )\n\t\t\t\t\t\t.reduce( ( acc, wrapperProps ) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t\t\t...wrapperProps,\n\t\t\t\t\t\t\t\tclassName: clsx(\n\t\t\t\t\t\t\t\t\tacc.className,\n\t\t\t\t\t\t\t\t\twrapperProps.className\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t\t...acc.style,\n\t\t\t\t\t\t\t\t\t...wrapperProps.style,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}, props.wrapperProps || {} ) }\n\t\t\t\t/>,\n\t\t\t];\n\t\t},\n\t\t'withBlockListBlockHooks'\n\t);\n\taddFilter(\n\t\t'editor.BlockListBlock',\n\t\t'core/editor/hooks',\n\t\twithBlockListBlockHooks\n\t);\n}\n\nexport function createBlockSaveFilter( features ) {\n\tfunction extraPropsFromHooks( props, name, attributes ) {\n\t\treturn features.reduce( ( accu, feature ) => {\n\t\t\tconst { hasSupport, attributeKeys = [], addSaveProps } = feature;\n\n\t\t\tconst neededAttributes = {};\n\t\t\tfor ( const key of attributeKeys ) {\n\t\t\t\tif ( attributes[ key ] ) {\n\t\t\t\t\tneededAttributes[ key ] = attributes[ key ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// Skip rendering if none of the needed attributes are\n\t\t\t\t// set.\n\t\t\t\t! Object.keys( neededAttributes ).length ||\n\t\t\t\t! hasSupport( name )\n\t\t\t) {\n\t\t\t\treturn accu;\n\t\t\t}\n\n\t\t\treturn addSaveProps( accu, name, neededAttributes );\n\t\t}, props );\n\t}\n\taddFilter(\n\t\t'blocks.getSaveContent.extraProps',\n\t\t'core/editor/hooks',\n\t\textraPropsFromHooks,\n\t\t0\n\t);\n\taddFilter(\n\t\t'blocks.getSaveContent.extraProps',\n\t\t'core/editor/hooks',\n\t\t( props ) => {\n\t\t\t// Previously we had a filter deleting the className if it was an empty\n\t\t\t// string. That filter is no longer running, so now we need to delete it\n\t\t\t// here.\n\t\t\tif ( props.hasOwnProperty( 'className' ) && ! props.className ) {\n\t\t\t\tdelete props.className;\n\t\t\t}\n\n\t\t\treturn props;\n\t\t}\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -63,7 +63,6 @@ export default {
63
63
  inspectorControls: function GridLayoutInspectorControls({
64
64
  layout = {},
65
65
  onChange,
66
- clientId,
67
66
  layoutBlockSupport = {}
68
67
  }) {
69
68
  const {
@@ -79,12 +78,14 @@ export default {
79
78
  }) : createElement(GridLayoutMinimumWidthControl, {
80
79
  layout: layout,
81
80
  onChange: onChange
82
- }), window.__experimentalEnableGridInteractivity && createElement(GridVisualizer, {
83
- clientId: clientId
84
81
  }));
85
82
  },
86
- toolBarControls: function GridLayoutToolbarControls() {
87
- return null;
83
+ toolBarControls: function GridLayoutToolbarControls({
84
+ clientId
85
+ }) {
86
+ return createElement(GridVisualizer, {
87
+ clientId: clientId
88
+ });
88
89
  },
89
90
  getLayoutStyle: function getLayoutStyle({
90
91
  selector,
@@ -111,7 +112,7 @@ export default {
111
112
  rules.push(`grid-template-rows: repeat(${rowCount}, minmax(0, 1fr))`);
112
113
  }
113
114
  } else if (minimumColumnWidth) {
114
- rules.push(`grid-template-columns: repeat(auto-fill, minmax(min(${minimumColumnWidth}, 100%), 1fr))`, `container-type: inline-size`);
115
+ rules.push(`grid-template-columns: repeat(auto-fill, minmax(min(${minimumColumnWidth}, 100%), 1fr))`, 'container-type: inline-size');
115
116
  }
116
117
  if (rules.length) {
117
118
  // Reason to disable: the extra line breaks added by prettier mess with the unit tests.
@@ -1 +1 @@
1
- {"version":3,"names":["__","BaseControl","Flex","FlexItem","RangeControl","__experimentalNumberControl","NumberControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__experimentalParseQuantityAndUnitFromRawValue","parseQuantityAndUnitFromRawValue","useState","appendSelectors","getBlockGapCSS","getGapCSSValue","shouldSkipSerialization","LAYOUT_DEFINITIONS","GridVisualizer","RANGE_CONTROL_MAX_VALUES","px","vw","vh","em","rem","svw","lvw","dvw","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","units","value","label","default","name","inspectorControls","GridLayoutInspectorControls","layout","onChange","clientId","layoutBlockSupport","allowSizingOnChildren","createElement","Fragment","GridLayoutTypeControl","columnCount","GridLayoutColumnsAndRowsControl","GridLayoutMinimumWidthControl","window","__experimentalEnableGridInteractivity","toolBarControls","GridLayoutToolbarControls","getLayoutStyle","selector","style","blockName","hasBlockGapSupport","layoutDefinitions","minimumColumnWidth","rowCount","blockGapValue","spacing","blockGap","undefined","output","rules","push","length","join","getOrientation","getAlignments","quantity","unit","handleSliderChange","next","handleUnitChange","newUnit","newValue","includes","toFixed","Math","round","VisualLabel","as","gap","isBlock","size","onUnitChange","min","hideLabelFromVision","max","withInputField","validValue","parseInt","tempColumnCount","setTempColumnCount","tempMinimumColumnWidth","setTempMinimumColumnWidth","isManual","onChangeType","__nextHasNoMarginBottom","key"],"sources":["@wordpress/block-editor/src/layouts/grid.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nimport {\n\tBaseControl,\n\tFlex,\n\tFlexItem,\n\tRangeControl,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { appendSelectors, getBlockGapCSS } from './utils';\nimport { getGapCSSValue } from '../hooks/gap';\nimport { shouldSkipSerialization } from '../hooks/utils';\nimport { LAYOUT_DEFINITIONS } from './definitions';\nimport { GridVisualizer } from '../components/grid-visualizer';\n\nconst RANGE_CONTROL_MAX_VALUES = {\n\tpx: 600,\n\t'%': 100,\n\tvw: 100,\n\tvh: 100,\n\tem: 38,\n\trem: 38,\n\tsvw: 100,\n\tlvw: 100,\n\tdvw: 100,\n\tsvh: 100,\n\tlvh: 100,\n\tdvh: 100,\n\tvi: 100,\n\tsvi: 100,\n\tlvi: 100,\n\tdvi: 100,\n\tvb: 100,\n\tsvb: 100,\n\tlvb: 100,\n\tdvb: 100,\n\tvmin: 100,\n\tsvmin: 100,\n\tlvmin: 100,\n\tdvmin: 100,\n\tvmax: 100,\n\tsvmax: 100,\n\tlvmax: 100,\n\tdvmax: 100,\n};\n\nconst units = [\n\t{ value: 'px', label: 'px', default: 0 },\n\t{ value: 'rem', label: 'rem', default: 0 },\n\t{ value: 'em', label: 'em', default: 0 },\n];\n\nexport default {\n\tname: 'grid',\n\tlabel: __( 'Grid' ),\n\tinspectorControls: function GridLayoutInspectorControls( {\n\t\tlayout = {},\n\t\tonChange,\n\t\tclientId,\n\t\tlayoutBlockSupport = {},\n\t} ) {\n\t\tconst { allowSizingOnChildren = false } = layoutBlockSupport;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<GridLayoutTypeControl\n\t\t\t\t\tlayout={ layout }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t\t{ layout?.columnCount ? (\n\t\t\t\t\t<GridLayoutColumnsAndRowsControl\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tallowSizingOnChildren={ allowSizingOnChildren }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<GridLayoutMinimumWidthControl\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ window.__experimentalEnableGridInteractivity && (\n\t\t\t\t\t<GridVisualizer clientId={ clientId } />\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t},\n\ttoolBarControls: function GridLayoutToolbarControls() {\n\t\treturn null;\n\t},\n\tgetLayoutStyle: function getLayoutStyle( {\n\t\tselector,\n\t\tlayout,\n\t\tstyle,\n\t\tblockName,\n\t\thasBlockGapSupport,\n\t\tlayoutDefinitions = LAYOUT_DEFINITIONS,\n\t} ) {\n\t\tconst {\n\t\t\tminimumColumnWidth = '12rem',\n\t\t\tcolumnCount = null,\n\t\t\trowCount = null,\n\t\t} = layout;\n\n\t\t// If a block's block.json skips serialization for spacing or spacing.blockGap,\n\t\t// don't apply the user-defined value to the styles.\n\t\tconst blockGapValue =\n\t\t\tstyle?.spacing?.blockGap &&\n\t\t\t! shouldSkipSerialization( blockName, 'spacing', 'blockGap' )\n\t\t\t\t? getGapCSSValue( style?.spacing?.blockGap, '0.5em' )\n\t\t\t\t: undefined;\n\n\t\tlet output = '';\n\t\tconst rules = [];\n\n\t\tif ( columnCount ) {\n\t\t\trules.push(\n\t\t\t\t`grid-template-columns: repeat(${ columnCount }, minmax(0, 1fr))`\n\t\t\t);\n\t\t\tif ( rowCount ) {\n\t\t\t\trules.push(\n\t\t\t\t\t`grid-template-rows: repeat(${ rowCount }, minmax(0, 1fr))`\n\t\t\t\t);\n\t\t\t}\n\t\t} else if ( minimumColumnWidth ) {\n\t\t\trules.push(\n\t\t\t\t`grid-template-columns: repeat(auto-fill, minmax(min(${ minimumColumnWidth }, 100%), 1fr))`,\n\t\t\t\t`container-type: inline-size`\n\t\t\t);\n\t\t}\n\n\t\tif ( rules.length ) {\n\t\t\t// Reason to disable: the extra line breaks added by prettier mess with the unit tests.\n\t\t\t// eslint-disable-next-line prettier/prettier\n\t\t\toutput = `${ appendSelectors( selector ) } { ${ rules.join(\n\t\t\t\t'; '\n\t\t\t) }; }`;\n\t\t}\n\n\t\t// Output blockGap styles based on rules contained in layout definitions in theme.json.\n\t\tif ( hasBlockGapSupport && blockGapValue ) {\n\t\t\toutput += getBlockGapCSS(\n\t\t\t\tselector,\n\t\t\t\tlayoutDefinitions,\n\t\t\t\t'grid',\n\t\t\t\tblockGapValue\n\t\t\t);\n\t\t}\n\t\treturn output;\n\t},\n\tgetOrientation() {\n\t\treturn 'horizontal';\n\t},\n\tgetAlignments() {\n\t\treturn [];\n\t},\n};\n\n// Enables setting minimum width of grid items.\nfunction GridLayoutMinimumWidthControl( { layout, onChange } ) {\n\tconst { minimumColumnWidth: value = '12rem' } = layout;\n\tconst [ quantity, unit ] = parseQuantityAndUnitFromRawValue( value );\n\n\tconst handleSliderChange = ( next ) => {\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tminimumColumnWidth: [ next, unit ].join( '' ),\n\t\t} );\n\t};\n\n\t// Mostly copied from HeightControl.\n\tconst handleUnitChange = ( newUnit ) => {\n\t\t// Attempt to smooth over differences between currentUnit and newUnit.\n\t\t// This should slightly improve the experience of switching between unit types.\n\t\tlet newValue;\n\n\t\tif ( [ 'em', 'rem' ].includes( newUnit ) && unit === 'px' ) {\n\t\t\t// Convert pixel value to an approximate of the new unit, assuming a root size of 16px.\n\t\t\tnewValue = ( quantity / 16 ).toFixed( 2 ) + newUnit;\n\t\t} else if ( [ 'em', 'rem' ].includes( unit ) && newUnit === 'px' ) {\n\t\t\t// Convert to pixel value assuming a root size of 16px.\n\t\t\tnewValue = Math.round( quantity * 16 ) + newUnit;\n\t\t}\n\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tminimumColumnWidth: newValue,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<fieldset>\n\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t{ __( 'Minimum column width' ) }\n\t\t\t</BaseControl.VisualLabel>\n\t\t\t<Flex gap={ 4 }>\n\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\tminimumColumnWidth: newValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonUnitChange={ handleUnitChange }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tlabel={ __( 'Minimum column width' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tonChange={ handleSliderChange }\n\t\t\t\t\t\tvalue={ quantity }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ RANGE_CONTROL_MAX_VALUES[ unit ] || 600 }\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\tlabel={ __( 'Minimum column width' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</fieldset>\n\t);\n}\n\n// Enables setting number of grid columns\nfunction GridLayoutColumnsAndRowsControl( {\n\tlayout,\n\tonChange,\n\tallowSizingOnChildren,\n} ) {\n\tconst { columnCount = 3, rowCount } = layout;\n\n\treturn (\n\t\t<>\n\t\t\t<fieldset>\n\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t{ __( 'Columns' ) }\n\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t<Flex gap={ 4 }>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * If the input is cleared, avoid switching\n\t\t\t\t\t\t\t\t * back to \"Auto\" by setting a value of \"1\".\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\tconst validValue = value !== '' ? value : '1';\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\tcolumnCount: validValue,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ columnCount }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tvalue={ parseInt( columnCount, 10 ) } // RangeControl can't deal with strings.\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\tcolumnCount: value,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ 16 }\n\t\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</fieldset>\n\t\t\t{ allowSizingOnChildren &&\n\t\t\t\twindow.__experimentalEnableGridInteractivity && (\n\t\t\t\t\t<fieldset>\n\t\t\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t\t\t{ __( 'Rows' ) }\n\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t<Flex gap={ 4 }>\n\t\t\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\t\trowCount: value,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tvalue={ rowCount }\n\t\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Rows' ) }\n\t\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t\tvalue={ parseInt( rowCount, 10 ) } // RangeControl can't deal with strings.\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\t\trowCount: value,\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\t\tmax={ 16 }\n\t\t\t\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Rows' ) }\n\t\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t</fieldset>\n\t\t\t\t) }\n\t\t</>\n\t);\n}\n\n// Enables switching between grid types\nfunction GridLayoutTypeControl( { layout, onChange } ) {\n\tconst { columnCount, minimumColumnWidth } = layout;\n\n\t/**\n\t * When switching, temporarily save any custom values set on the\n\t * previous type so we can switch back without loss.\n\t */\n\tconst [ tempColumnCount, setTempColumnCount ] = useState(\n\t\tcolumnCount || 3\n\t);\n\tconst [ tempMinimumColumnWidth, setTempMinimumColumnWidth ] = useState(\n\t\tminimumColumnWidth || '12rem'\n\t);\n\n\tconst isManual = !! columnCount ? 'manual' : 'auto';\n\n\tconst onChangeType = ( value ) => {\n\t\tif ( value === 'manual' ) {\n\t\t\tsetTempMinimumColumnWidth( minimumColumnWidth || '12rem' );\n\t\t} else {\n\t\t\tsetTempColumnCount( columnCount || 3 );\n\t\t}\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tcolumnCount: value === 'manual' ? tempColumnCount : null,\n\t\t\tminimumColumnWidth:\n\t\t\t\tvalue === 'auto' ? tempMinimumColumnWidth : null,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Type' ) }\n\t\t\tvalue={ isManual }\n\t\t\tonChange={ onChangeType }\n\t\t\tisBlock\n\t\t>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tkey={ 'auto' }\n\t\t\t\tvalue=\"auto\"\n\t\t\t\tlabel={ __( 'Auto' ) }\n\t\t\t/>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tkey={ 'manual' }\n\t\t\t\tvalue=\"manual\"\n\t\t\t\tlabel={ __( 'Manual' ) }\n\t\t\t/>\n\t\t</ToggleGroupControl>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__","BaseControl","Flex","FlexItem","RangeControl","__experimentalNumberControl","NumberControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__experimentalParseQuantityAndUnitFromRawValue","parseQuantityAndUnitFromRawValue","useState","appendSelectors","getBlockGapCSS","getGapCSSValue","shouldSkipSerialization","LAYOUT_DEFINITIONS","GridVisualizer","RANGE_CONTROL_MAX_VALUES","px","vw","vh","em","rem","svw","lvw","dvw","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","units","value","label","default","name","inspectorControls","GridLayoutInspectorControls","layout","onChange","layoutBlockSupport","allowSizingOnChildren","createElement","Fragment","GridLayoutTypeControl","columnCount","GridLayoutColumnsAndRowsControl","GridLayoutMinimumWidthControl","toolBarControls","GridLayoutToolbarControls","clientId","getLayoutStyle","selector","style","blockName","hasBlockGapSupport","layoutDefinitions","minimumColumnWidth","rowCount","blockGapValue","spacing","blockGap","undefined","output","rules","push","length","join","getOrientation","getAlignments","quantity","unit","handleSliderChange","next","handleUnitChange","newUnit","newValue","includes","toFixed","Math","round","VisualLabel","as","gap","isBlock","size","onUnitChange","min","hideLabelFromVision","max","withInputField","validValue","parseInt","window","__experimentalEnableGridInteractivity","tempColumnCount","setTempColumnCount","tempMinimumColumnWidth","setTempMinimumColumnWidth","isManual","onChangeType","__nextHasNoMarginBottom","key"],"sources":["@wordpress/block-editor/src/layouts/grid.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nimport {\n\tBaseControl,\n\tFlex,\n\tFlexItem,\n\tRangeControl,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { appendSelectors, getBlockGapCSS } from './utils';\nimport { getGapCSSValue } from '../hooks/gap';\nimport { shouldSkipSerialization } from '../hooks/utils';\nimport { LAYOUT_DEFINITIONS } from './definitions';\nimport { GridVisualizer } from '../components/grid-visualizer';\n\nconst RANGE_CONTROL_MAX_VALUES = {\n\tpx: 600,\n\t'%': 100,\n\tvw: 100,\n\tvh: 100,\n\tem: 38,\n\trem: 38,\n\tsvw: 100,\n\tlvw: 100,\n\tdvw: 100,\n\tsvh: 100,\n\tlvh: 100,\n\tdvh: 100,\n\tvi: 100,\n\tsvi: 100,\n\tlvi: 100,\n\tdvi: 100,\n\tvb: 100,\n\tsvb: 100,\n\tlvb: 100,\n\tdvb: 100,\n\tvmin: 100,\n\tsvmin: 100,\n\tlvmin: 100,\n\tdvmin: 100,\n\tvmax: 100,\n\tsvmax: 100,\n\tlvmax: 100,\n\tdvmax: 100,\n};\n\nconst units = [\n\t{ value: 'px', label: 'px', default: 0 },\n\t{ value: 'rem', label: 'rem', default: 0 },\n\t{ value: 'em', label: 'em', default: 0 },\n];\n\nexport default {\n\tname: 'grid',\n\tlabel: __( 'Grid' ),\n\tinspectorControls: function GridLayoutInspectorControls( {\n\t\tlayout = {},\n\t\tonChange,\n\t\tlayoutBlockSupport = {},\n\t} ) {\n\t\tconst { allowSizingOnChildren = false } = layoutBlockSupport;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<GridLayoutTypeControl\n\t\t\t\t\tlayout={ layout }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t\t{ layout?.columnCount ? (\n\t\t\t\t\t<GridLayoutColumnsAndRowsControl\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tallowSizingOnChildren={ allowSizingOnChildren }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<GridLayoutMinimumWidthControl\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t},\n\ttoolBarControls: function GridLayoutToolbarControls( { clientId } ) {\n\t\treturn <GridVisualizer clientId={ clientId } />;\n\t},\n\tgetLayoutStyle: function getLayoutStyle( {\n\t\tselector,\n\t\tlayout,\n\t\tstyle,\n\t\tblockName,\n\t\thasBlockGapSupport,\n\t\tlayoutDefinitions = LAYOUT_DEFINITIONS,\n\t} ) {\n\t\tconst {\n\t\t\tminimumColumnWidth = '12rem',\n\t\t\tcolumnCount = null,\n\t\t\trowCount = null,\n\t\t} = layout;\n\n\t\t// If a block's block.json skips serialization for spacing or spacing.blockGap,\n\t\t// don't apply the user-defined value to the styles.\n\t\tconst blockGapValue =\n\t\t\tstyle?.spacing?.blockGap &&\n\t\t\t! shouldSkipSerialization( blockName, 'spacing', 'blockGap' )\n\t\t\t\t? getGapCSSValue( style?.spacing?.blockGap, '0.5em' )\n\t\t\t\t: undefined;\n\n\t\tlet output = '';\n\t\tconst rules = [];\n\n\t\tif ( columnCount ) {\n\t\t\trules.push(\n\t\t\t\t`grid-template-columns: repeat(${ columnCount }, minmax(0, 1fr))`\n\t\t\t);\n\t\t\tif ( rowCount ) {\n\t\t\t\trules.push(\n\t\t\t\t\t`grid-template-rows: repeat(${ rowCount }, minmax(0, 1fr))`\n\t\t\t\t);\n\t\t\t}\n\t\t} else if ( minimumColumnWidth ) {\n\t\t\trules.push(\n\t\t\t\t`grid-template-columns: repeat(auto-fill, minmax(min(${ minimumColumnWidth }, 100%), 1fr))`,\n\t\t\t\t'container-type: inline-size'\n\t\t\t);\n\t\t}\n\n\t\tif ( rules.length ) {\n\t\t\t// Reason to disable: the extra line breaks added by prettier mess with the unit tests.\n\t\t\t// eslint-disable-next-line prettier/prettier\n\t\t\toutput = `${ appendSelectors( selector ) } { ${ rules.join(\n\t\t\t\t'; '\n\t\t\t) }; }`;\n\t\t}\n\n\t\t// Output blockGap styles based on rules contained in layout definitions in theme.json.\n\t\tif ( hasBlockGapSupport && blockGapValue ) {\n\t\t\toutput += getBlockGapCSS(\n\t\t\t\tselector,\n\t\t\t\tlayoutDefinitions,\n\t\t\t\t'grid',\n\t\t\t\tblockGapValue\n\t\t\t);\n\t\t}\n\t\treturn output;\n\t},\n\tgetOrientation() {\n\t\treturn 'horizontal';\n\t},\n\tgetAlignments() {\n\t\treturn [];\n\t},\n};\n\n// Enables setting minimum width of grid items.\nfunction GridLayoutMinimumWidthControl( { layout, onChange } ) {\n\tconst { minimumColumnWidth: value = '12rem' } = layout;\n\tconst [ quantity, unit ] = parseQuantityAndUnitFromRawValue( value );\n\n\tconst handleSliderChange = ( next ) => {\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tminimumColumnWidth: [ next, unit ].join( '' ),\n\t\t} );\n\t};\n\n\t// Mostly copied from HeightControl.\n\tconst handleUnitChange = ( newUnit ) => {\n\t\t// Attempt to smooth over differences between currentUnit and newUnit.\n\t\t// This should slightly improve the experience of switching between unit types.\n\t\tlet newValue;\n\n\t\tif ( [ 'em', 'rem' ].includes( newUnit ) && unit === 'px' ) {\n\t\t\t// Convert pixel value to an approximate of the new unit, assuming a root size of 16px.\n\t\t\tnewValue = ( quantity / 16 ).toFixed( 2 ) + newUnit;\n\t\t} else if ( [ 'em', 'rem' ].includes( unit ) && newUnit === 'px' ) {\n\t\t\t// Convert to pixel value assuming a root size of 16px.\n\t\t\tnewValue = Math.round( quantity * 16 ) + newUnit;\n\t\t}\n\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tminimumColumnWidth: newValue,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<fieldset>\n\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t{ __( 'Minimum column width' ) }\n\t\t\t</BaseControl.VisualLabel>\n\t\t\t<Flex gap={ 4 }>\n\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\tminimumColumnWidth: newValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonUnitChange={ handleUnitChange }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tlabel={ __( 'Minimum column width' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tonChange={ handleSliderChange }\n\t\t\t\t\t\tvalue={ quantity }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ RANGE_CONTROL_MAX_VALUES[ unit ] || 600 }\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\tlabel={ __( 'Minimum column width' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</fieldset>\n\t);\n}\n\n// Enables setting number of grid columns\nfunction GridLayoutColumnsAndRowsControl( {\n\tlayout,\n\tonChange,\n\tallowSizingOnChildren,\n} ) {\n\tconst { columnCount = 3, rowCount } = layout;\n\n\treturn (\n\t\t<>\n\t\t\t<fieldset>\n\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t{ __( 'Columns' ) }\n\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t<Flex gap={ 4 }>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * If the input is cleared, avoid switching\n\t\t\t\t\t\t\t\t * back to \"Auto\" by setting a value of \"1\".\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\tconst validValue = value !== '' ? value : '1';\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\tcolumnCount: validValue,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ columnCount }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tvalue={ parseInt( columnCount, 10 ) } // RangeControl can't deal with strings.\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\tcolumnCount: value,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ 16 }\n\t\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</fieldset>\n\t\t\t{ allowSizingOnChildren &&\n\t\t\t\twindow.__experimentalEnableGridInteractivity && (\n\t\t\t\t\t<fieldset>\n\t\t\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t\t\t{ __( 'Rows' ) }\n\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t<Flex gap={ 4 }>\n\t\t\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\t\trowCount: value,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tvalue={ rowCount }\n\t\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Rows' ) }\n\t\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t\tvalue={ parseInt( rowCount, 10 ) } // RangeControl can't deal with strings.\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\t\trowCount: value,\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\t\tmax={ 16 }\n\t\t\t\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Rows' ) }\n\t\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t</fieldset>\n\t\t\t\t) }\n\t\t</>\n\t);\n}\n\n// Enables switching between grid types\nfunction GridLayoutTypeControl( { layout, onChange } ) {\n\tconst { columnCount, minimumColumnWidth } = layout;\n\n\t/**\n\t * When switching, temporarily save any custom values set on the\n\t * previous type so we can switch back without loss.\n\t */\n\tconst [ tempColumnCount, setTempColumnCount ] = useState(\n\t\tcolumnCount || 3\n\t);\n\tconst [ tempMinimumColumnWidth, setTempMinimumColumnWidth ] = useState(\n\t\tminimumColumnWidth || '12rem'\n\t);\n\n\tconst isManual = !! columnCount ? 'manual' : 'auto';\n\n\tconst onChangeType = ( value ) => {\n\t\tif ( value === 'manual' ) {\n\t\t\tsetTempMinimumColumnWidth( minimumColumnWidth || '12rem' );\n\t\t} else {\n\t\t\tsetTempColumnCount( columnCount || 3 );\n\t\t}\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tcolumnCount: value === 'manual' ? tempColumnCount : null,\n\t\t\tminimumColumnWidth:\n\t\t\t\tvalue === 'auto' ? tempMinimumColumnWidth : null,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Type' ) }\n\t\t\tvalue={ isManual }\n\t\t\tonChange={ onChangeType }\n\t\t\tisBlock\n\t\t>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tkey={ 'auto' }\n\t\t\t\tvalue=\"auto\"\n\t\t\t\tlabel={ __( 'Auto' ) }\n\t\t\t/>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tkey={ 'manual' }\n\t\t\t\tvalue=\"manual\"\n\t\t\t\tlabel={ __( 'Manual' ) }\n\t\t\t/>\n\t\t</ToggleGroupControl>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -25,9 +25,10 @@ import { usesContextKey } from './components/rich-text/format-edit';
25
25
  import { ExperimentalBlockCanvas } from './components/block-canvas';
26
26
  import { getDuotoneFilter } from './components/duotone/utils';
27
27
  import { useFlashEditableBlocks } from './components/use-flash-editable-blocks';
28
- import { selectBlockPatternsKey, reusableBlocksSelectKey } from './store/private-keys';
28
+ import { selectBlockPatternsKey, reusableBlocksSelectKey, globalStylesDataKey } from './store/private-keys';
29
29
  import { requiresWrapperOnCopy } from './components/writing-flow/utils';
30
30
  import { PrivateRichText } from './components/rich-text/';
31
+ import { PrivateBlockPopover } from './components/block-popover';
31
32
 
32
33
  /**
33
34
  * Private @wordpress/block-editor APIs.
@@ -62,9 +63,11 @@ lock(privateApis, {
62
63
  useReusableBlocksRenameHint,
63
64
  usesContextKey,
64
65
  useFlashEditableBlocks,
66
+ globalStylesDataKey,
65
67
  selectBlockPatternsKey,
66
68
  requiresWrapperOnCopy,
67
69
  PrivateRichText,
68
- reusableBlocksSelectKey
70
+ reusableBlocksSelectKey,
71
+ PrivateBlockPopover
69
72
  });
70
73
  //# sourceMappingURL=private-apis.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["globalStyles","ExperimentalBlockEditorProvider","lock","getRichTextValues","ResizableBoxPopover","ComposedPrivateInserter","PrivateInserter","default","PrivateQuickInserter","extractWords","getNormalizedSearchTerms","normalizeString","PrivateListView","BlockInfo","useHasBlockToolbar","cleanEmptyObject","useStyleOverride","BlockQuickNavigation","LayoutStyle","BlockRemovalWarningModal","useLayoutClasses","useLayoutStyles","DimensionsTool","ResolutionTool","TextAlignmentControl","ReusableBlocksRenameHint","useReusableBlocksRenameHint","usesContextKey","ExperimentalBlockCanvas","getDuotoneFilter","useFlashEditableBlocks","selectBlockPatternsKey","reusableBlocksSelectKey","requiresWrapperOnCopy","PrivateRichText","privateApis"],"sources":["@wordpress/block-editor/src/private-apis.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport * as globalStyles from './components/global-styles';\nimport { ExperimentalBlockEditorProvider } from './components/provider';\nimport { lock } from './lock-unlock';\nimport { getRichTextValues } from './components/rich-text/get-rich-text-values';\nimport ResizableBoxPopover from './components/resizable-box-popover';\nimport { ComposedPrivateInserter as PrivateInserter } from './components/inserter';\nimport { default as PrivateQuickInserter } from './components/inserter/quick-inserter';\nimport {\n\textractWords,\n\tgetNormalizedSearchTerms,\n\tnormalizeString,\n} from './components/inserter/search-items';\nimport { PrivateListView } from './components/list-view';\nimport BlockInfo from './components/block-info-slot-fill';\nimport { useHasBlockToolbar } from './components/block-toolbar/use-has-block-toolbar';\nimport { cleanEmptyObject, useStyleOverride } from './hooks/utils';\nimport BlockQuickNavigation from './components/block-quick-navigation';\nimport { LayoutStyle } from './components/block-list/layout';\nimport { BlockRemovalWarningModal } from './components/block-removal-warning-modal';\nimport { useLayoutClasses, useLayoutStyles } from './hooks';\nimport DimensionsTool from './components/dimensions-tool';\nimport ResolutionTool from './components/resolution-tool';\nimport TextAlignmentControl from './components/text-alignment-control';\nimport {\n\tdefault as ReusableBlocksRenameHint,\n\tuseReusableBlocksRenameHint,\n} from './components/inserter/reusable-block-rename-hint';\nimport { usesContextKey } from './components/rich-text/format-edit';\nimport { ExperimentalBlockCanvas } from './components/block-canvas';\nimport { getDuotoneFilter } from './components/duotone/utils';\nimport { useFlashEditableBlocks } from './components/use-flash-editable-blocks';\nimport {\n\tselectBlockPatternsKey,\n\treusableBlocksSelectKey,\n} from './store/private-keys';\nimport { requiresWrapperOnCopy } from './components/writing-flow/utils';\nimport { PrivateRichText } from './components/rich-text/';\n\n/**\n * Private @wordpress/block-editor APIs.\n */\nexport const privateApis = {};\nlock( privateApis, {\n\t...globalStyles,\n\tExperimentalBlockCanvas,\n\tExperimentalBlockEditorProvider,\n\tgetDuotoneFilter,\n\tgetRichTextValues,\n\tPrivateInserter,\n\tPrivateQuickInserter,\n\textractWords,\n\tgetNormalizedSearchTerms,\n\tnormalizeString,\n\tPrivateListView,\n\tResizableBoxPopover,\n\tBlockInfo,\n\tuseHasBlockToolbar,\n\tcleanEmptyObject,\n\tuseStyleOverride,\n\tBlockQuickNavigation,\n\tLayoutStyle,\n\tBlockRemovalWarningModal,\n\tuseLayoutClasses,\n\tuseLayoutStyles,\n\tDimensionsTool,\n\tResolutionTool,\n\tTextAlignmentControl,\n\tReusableBlocksRenameHint,\n\tuseReusableBlocksRenameHint,\n\tusesContextKey,\n\tuseFlashEditableBlocks,\n\tselectBlockPatternsKey,\n\trequiresWrapperOnCopy,\n\tPrivateRichText,\n\treusableBlocksSelectKey,\n} );\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,KAAKA,YAAY,MAAM,4BAA4B;AAC1D,SAASC,+BAA+B,QAAQ,uBAAuB;AACvE,SAASC,IAAI,QAAQ,eAAe;AACpC,SAASC,iBAAiB,QAAQ,6CAA6C;AAC/E,OAAOC,mBAAmB,MAAM,oCAAoC;AACpE,SAASC,uBAAuB,IAAIC,eAAe,QAAQ,uBAAuB;AAClF,SAASC,OAAO,IAAIC,oBAAoB,QAAQ,sCAAsC;AACtF,SACCC,YAAY,EACZC,wBAAwB,EACxBC,eAAe,QACT,oCAAoC;AAC3C,SAASC,eAAe,QAAQ,wBAAwB;AACxD,OAAOC,SAAS,MAAM,mCAAmC;AACzD,SAASC,kBAAkB,QAAQ,kDAAkD;AACrF,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,eAAe;AAClE,OAAOC,oBAAoB,MAAM,qCAAqC;AACtE,SAASC,WAAW,QAAQ,gCAAgC;AAC5D,SAASC,wBAAwB,QAAQ,0CAA0C;AACnF,SAASC,gBAAgB,EAAEC,eAAe,QAAQ,SAAS;AAC3D,OAAOC,cAAc,MAAM,8BAA8B;AACzD,OAAOC,cAAc,MAAM,8BAA8B;AACzD,OAAOC,oBAAoB,MAAM,qCAAqC;AACtE,SACCjB,OAAO,IAAIkB,wBAAwB,EACnCC,2BAA2B,QACrB,kDAAkD;AACzD,SAASC,cAAc,QAAQ,oCAAoC;AACnE,SAASC,uBAAuB,QAAQ,2BAA2B;AACnE,SAASC,gBAAgB,QAAQ,4BAA4B;AAC7D,SAASC,sBAAsB,QAAQ,wCAAwC;AAC/E,SACCC,sBAAsB,EACtBC,uBAAuB,QACjB,sBAAsB;AAC7B,SAASC,qBAAqB,QAAQ,iCAAiC;AACvE,SAASC,eAAe,QAAQ,yBAAyB;;AAEzD;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAG,CAAC,CAAC;AAC7BjC,IAAI,CAAEiC,WAAW,EAAE;EAClB,GAAGnC,YAAY;EACf4B,uBAAuB;EACvB3B,+BAA+B;EAC/B4B,gBAAgB;EAChB1B,iBAAiB;EACjBG,eAAe;EACfE,oBAAoB;EACpBC,YAAY;EACZC,wBAAwB;EACxBC,eAAe;EACfC,eAAe;EACfR,mBAAmB;EACnBS,SAAS;EACTC,kBAAkB;EAClBC,gBAAgB;EAChBC,gBAAgB;EAChBC,oBAAoB;EACpBC,WAAW;EACXC,wBAAwB;EACxBC,gBAAgB;EAChBC,eAAe;EACfC,cAAc;EACdC,cAAc;EACdC,oBAAoB;EACpBC,wBAAwB;EACxBC,2BAA2B;EAC3BC,cAAc;EACdG,sBAAsB;EACtBC,sBAAsB;EACtBE,qBAAqB;EACrBC,eAAe;EACfF;AACD,CAAE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["globalStyles","ExperimentalBlockEditorProvider","lock","getRichTextValues","ResizableBoxPopover","ComposedPrivateInserter","PrivateInserter","default","PrivateQuickInserter","extractWords","getNormalizedSearchTerms","normalizeString","PrivateListView","BlockInfo","useHasBlockToolbar","cleanEmptyObject","useStyleOverride","BlockQuickNavigation","LayoutStyle","BlockRemovalWarningModal","useLayoutClasses","useLayoutStyles","DimensionsTool","ResolutionTool","TextAlignmentControl","ReusableBlocksRenameHint","useReusableBlocksRenameHint","usesContextKey","ExperimentalBlockCanvas","getDuotoneFilter","useFlashEditableBlocks","selectBlockPatternsKey","reusableBlocksSelectKey","globalStylesDataKey","requiresWrapperOnCopy","PrivateRichText","PrivateBlockPopover","privateApis"],"sources":["@wordpress/block-editor/src/private-apis.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport * as globalStyles from './components/global-styles';\nimport { ExperimentalBlockEditorProvider } from './components/provider';\nimport { lock } from './lock-unlock';\nimport { getRichTextValues } from './components/rich-text/get-rich-text-values';\nimport ResizableBoxPopover from './components/resizable-box-popover';\nimport { ComposedPrivateInserter as PrivateInserter } from './components/inserter';\nimport { default as PrivateQuickInserter } from './components/inserter/quick-inserter';\nimport {\n\textractWords,\n\tgetNormalizedSearchTerms,\n\tnormalizeString,\n} from './components/inserter/search-items';\nimport { PrivateListView } from './components/list-view';\nimport BlockInfo from './components/block-info-slot-fill';\nimport { useHasBlockToolbar } from './components/block-toolbar/use-has-block-toolbar';\nimport { cleanEmptyObject, useStyleOverride } from './hooks/utils';\nimport BlockQuickNavigation from './components/block-quick-navigation';\nimport { LayoutStyle } from './components/block-list/layout';\nimport { BlockRemovalWarningModal } from './components/block-removal-warning-modal';\nimport { useLayoutClasses, useLayoutStyles } from './hooks';\nimport DimensionsTool from './components/dimensions-tool';\nimport ResolutionTool from './components/resolution-tool';\nimport TextAlignmentControl from './components/text-alignment-control';\nimport {\n\tdefault as ReusableBlocksRenameHint,\n\tuseReusableBlocksRenameHint,\n} from './components/inserter/reusable-block-rename-hint';\nimport { usesContextKey } from './components/rich-text/format-edit';\nimport { ExperimentalBlockCanvas } from './components/block-canvas';\nimport { getDuotoneFilter } from './components/duotone/utils';\nimport { useFlashEditableBlocks } from './components/use-flash-editable-blocks';\nimport {\n\tselectBlockPatternsKey,\n\treusableBlocksSelectKey,\n\tglobalStylesDataKey,\n} from './store/private-keys';\nimport { requiresWrapperOnCopy } from './components/writing-flow/utils';\nimport { PrivateRichText } from './components/rich-text/';\nimport { PrivateBlockPopover } from './components/block-popover';\n\n/**\n * Private @wordpress/block-editor APIs.\n */\nexport const privateApis = {};\nlock( privateApis, {\n\t...globalStyles,\n\tExperimentalBlockCanvas,\n\tExperimentalBlockEditorProvider,\n\tgetDuotoneFilter,\n\tgetRichTextValues,\n\tPrivateInserter,\n\tPrivateQuickInserter,\n\textractWords,\n\tgetNormalizedSearchTerms,\n\tnormalizeString,\n\tPrivateListView,\n\tResizableBoxPopover,\n\tBlockInfo,\n\tuseHasBlockToolbar,\n\tcleanEmptyObject,\n\tuseStyleOverride,\n\tBlockQuickNavigation,\n\tLayoutStyle,\n\tBlockRemovalWarningModal,\n\tuseLayoutClasses,\n\tuseLayoutStyles,\n\tDimensionsTool,\n\tResolutionTool,\n\tTextAlignmentControl,\n\tReusableBlocksRenameHint,\n\tuseReusableBlocksRenameHint,\n\tusesContextKey,\n\tuseFlashEditableBlocks,\n\tglobalStylesDataKey,\n\tselectBlockPatternsKey,\n\trequiresWrapperOnCopy,\n\tPrivateRichText,\n\treusableBlocksSelectKey,\n\tPrivateBlockPopover,\n} );\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,KAAKA,YAAY,MAAM,4BAA4B;AAC1D,SAASC,+BAA+B,QAAQ,uBAAuB;AACvE,SAASC,IAAI,QAAQ,eAAe;AACpC,SAASC,iBAAiB,QAAQ,6CAA6C;AAC/E,OAAOC,mBAAmB,MAAM,oCAAoC;AACpE,SAASC,uBAAuB,IAAIC,eAAe,QAAQ,uBAAuB;AAClF,SAASC,OAAO,IAAIC,oBAAoB,QAAQ,sCAAsC;AACtF,SACCC,YAAY,EACZC,wBAAwB,EACxBC,eAAe,QACT,oCAAoC;AAC3C,SAASC,eAAe,QAAQ,wBAAwB;AACxD,OAAOC,SAAS,MAAM,mCAAmC;AACzD,SAASC,kBAAkB,QAAQ,kDAAkD;AACrF,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,eAAe;AAClE,OAAOC,oBAAoB,MAAM,qCAAqC;AACtE,SAASC,WAAW,QAAQ,gCAAgC;AAC5D,SAASC,wBAAwB,QAAQ,0CAA0C;AACnF,SAASC,gBAAgB,EAAEC,eAAe,QAAQ,SAAS;AAC3D,OAAOC,cAAc,MAAM,8BAA8B;AACzD,OAAOC,cAAc,MAAM,8BAA8B;AACzD,OAAOC,oBAAoB,MAAM,qCAAqC;AACtE,SACCjB,OAAO,IAAIkB,wBAAwB,EACnCC,2BAA2B,QACrB,kDAAkD;AACzD,SAASC,cAAc,QAAQ,oCAAoC;AACnE,SAASC,uBAAuB,QAAQ,2BAA2B;AACnE,SAASC,gBAAgB,QAAQ,4BAA4B;AAC7D,SAASC,sBAAsB,QAAQ,wCAAwC;AAC/E,SACCC,sBAAsB,EACtBC,uBAAuB,EACvBC,mBAAmB,QACb,sBAAsB;AAC7B,SAASC,qBAAqB,QAAQ,iCAAiC;AACvE,SAASC,eAAe,QAAQ,yBAAyB;AACzD,SAASC,mBAAmB,QAAQ,4BAA4B;;AAEhE;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAG,CAAC,CAAC;AAC7BnC,IAAI,CAAEmC,WAAW,EAAE;EAClB,GAAGrC,YAAY;EACf4B,uBAAuB;EACvB3B,+BAA+B;EAC/B4B,gBAAgB;EAChB1B,iBAAiB;EACjBG,eAAe;EACfE,oBAAoB;EACpBC,YAAY;EACZC,wBAAwB;EACxBC,eAAe;EACfC,eAAe;EACfR,mBAAmB;EACnBS,SAAS;EACTC,kBAAkB;EAClBC,gBAAgB;EAChBC,gBAAgB;EAChBC,oBAAoB;EACpBC,WAAW;EACXC,wBAAwB;EACxBC,gBAAgB;EAChBC,eAAe;EACfC,cAAc;EACdC,cAAc;EACdC,oBAAoB;EACpBC,wBAAwB;EACxBC,2BAA2B;EAC3BC,cAAc;EACdG,sBAAsB;EACtBG,mBAAmB;EACnBF,sBAAsB;EACtBG,qBAAqB;EACrBC,eAAe;EACfH,uBAAuB;EACvBI;AACD,CAAE,CAAC","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
5
- import { cloneBlock, __experimentalCloneSanitizedBlock, createBlock, doBlocksMatchTemplate, getBlockType, getDefaultBlockName, hasBlockSupport, switchToBlockType, synchronizeBlocksWithTemplate, getBlockSupport, isUnmodifiedDefaultBlock } from '@wordpress/blocks';
5
+ import { cloneBlock, __experimentalCloneSanitizedBlock, createBlock, doBlocksMatchTemplate, getBlockType, getDefaultBlockName, hasBlockSupport, switchToBlockType, synchronizeBlocksWithTemplate, getBlockSupport, isUnmodifiedDefaultBlock, isUnmodifiedBlock } from '@wordpress/blocks';
6
6
  import { speak } from '@wordpress/a11y';
7
7
  import { __, _n, sprintf } from '@wordpress/i18n';
8
8
  import { create, insert, remove, toHTMLString } from '@wordpress/rich-text';
@@ -11,7 +11,7 @@ import deprecated from '@wordpress/deprecated';
11
11
  /**
12
12
  * Internal dependencies
13
13
  */
14
- import { retrieveSelectedAttribute, START_OF_SELECTED_AREA } from '../utils/selection';
14
+ import { retrieveSelectedAttribute, findRichTextAttributeKey, START_OF_SELECTED_AREA } from '../utils/selection';
15
15
  import { __experimentalUpdateSettings, privateRemoveBlocks } from './private-actions';
16
16
  import { STORE_NAME } from './constants';
17
17
  import { unlock } from '../lock-unlock';
@@ -704,21 +704,15 @@ export const __unstableDeleteSelection = isForward => ({
704
704
 
705
705
  /**
706
706
  * Split the current selection.
707
+ * @param {?Array} blocks
707
708
  */
708
- export const __unstableSplitSelection = () => ({
709
+ export const __unstableSplitSelection = (blocks = []) => ({
710
+ registry,
709
711
  select,
710
712
  dispatch
711
713
  }) => {
712
714
  const selectionAnchor = select.getSelectionStart();
713
715
  const selectionFocus = select.getSelectionEnd();
714
- if (selectionAnchor.clientId === selectionFocus.clientId) {
715
- return;
716
- }
717
-
718
- // Can't split if the selection is not set.
719
- if (!selectionAnchor.attributeKey || !selectionFocus.attributeKey || typeof selectionAnchor.offset === 'undefined' || typeof selectionFocus.offset === 'undefined') {
720
- return;
721
- }
722
716
  const anchorRootClientId = select.getBlockRootClientId(selectionAnchor.clientId);
723
717
  const focusRootClientId = select.getBlockRootClientId(selectionFocus.clientId);
724
718
 
@@ -744,8 +738,47 @@ export const __unstableSplitSelection = () => ({
744
738
  const selectionB = selectionEnd;
745
739
  const blockA = select.getBlock(selectionA.clientId);
746
740
  const blockB = select.getBlock(selectionB.clientId);
747
- const htmlA = blockA.attributes[selectionA.attributeKey];
748
- const htmlB = blockB.attributes[selectionB.attributeKey];
741
+ const blockAType = getBlockType(blockA.name);
742
+ const blockBType = getBlockType(blockB.name);
743
+ const attributeKeyA = typeof selectionA.attributeKey === 'string' ? selectionA.attributeKey : findRichTextAttributeKey(blockAType);
744
+ const attributeKeyB = typeof selectionB.attributeKey === 'string' ? selectionB.attributeKey : findRichTextAttributeKey(blockBType);
745
+
746
+ // Can't split if the selection is not set.
747
+ if (!attributeKeyA || !attributeKeyB || typeof selectionAnchor.offset === 'undefined' || typeof selectionFocus.offset === 'undefined') {
748
+ return;
749
+ }
750
+
751
+ // We can do some short-circuiting if the selection is collapsed.
752
+ if (selectionA.clientId === selectionB.clientId && attributeKeyA === attributeKeyB && selectionA.offset === selectionB.offset) {
753
+ // If an unmodified default block is selected, replace it. We don't
754
+ // want to be converting into a default block.
755
+ if (blocks.length) {
756
+ if (isUnmodifiedDefaultBlock(blockA)) {
757
+ dispatch.replaceBlocks([selectionA.clientId], blocks, blocks.length - 1, -1);
758
+ return;
759
+ }
760
+ }
761
+
762
+ // If selection is at the start or end, we can simply insert an
763
+ // empty block, provided this block has no inner blocks.
764
+ else if (!select.getBlockOrder(selectionA.clientId).length) {
765
+ function createEmpty() {
766
+ const defaultBlockName = getDefaultBlockName();
767
+ return select.canInsertBlockType(defaultBlockName, anchorRootClientId) ? createBlock(defaultBlockName) : createBlock(select.getBlockName(selectionA.clientId));
768
+ }
769
+ const length = select.getBlockAttributes(selectionA.clientId)[attributeKeyA].length;
770
+ if (selectionA.offset === 0 && length) {
771
+ dispatch.insertBlocks([createEmpty()], select.getBlockIndex(selectionA.clientId), anchorRootClientId, false);
772
+ return;
773
+ }
774
+ if (selectionA.offset === length) {
775
+ dispatch.insertBlocks([createEmpty()], select.getBlockIndex(selectionA.clientId) + 1, anchorRootClientId);
776
+ return;
777
+ }
778
+ }
779
+ }
780
+ const htmlA = blockA.attributes[attributeKeyA];
781
+ const htmlB = blockB.attributes[attributeKeyB];
749
782
  let valueA = create({
750
783
  html: htmlA
751
784
  });
@@ -754,25 +787,97 @@ export const __unstableSplitSelection = () => ({
754
787
  });
755
788
  valueA = remove(valueA, selectionA.offset, valueA.text.length);
756
789
  valueB = remove(valueB, 0, selectionB.offset);
757
- dispatch.replaceBlocks(select.getSelectedBlockClientIds(), [{
790
+ let head = {
758
791
  // Preserve the original client ID.
759
792
  ...blockA,
793
+ // If both start and end are the same, should only copy innerBlocks
794
+ // once.
795
+ innerBlocks: blockA.clientId === blockB.clientId ? [] : blockA.innerBlocks,
760
796
  attributes: {
761
797
  ...blockA.attributes,
762
- [selectionA.attributeKey]: toHTMLString({
798
+ [attributeKeyA]: toHTMLString({
763
799
  value: valueA
764
800
  })
765
801
  }
766
- }, {
767
- // Preserve the original client ID.
802
+ };
803
+ const tail = {
768
804
  ...blockB,
805
+ // Only preserve the original client ID if the end is different.
806
+ clientId: blockA.clientId === blockB.clientId ? createBlock(blockB.name).clientId : blockB.clientId,
769
807
  attributes: {
770
808
  ...blockB.attributes,
771
- [selectionB.attributeKey]: toHTMLString({
809
+ [attributeKeyB]: toHTMLString({
772
810
  value: valueB
773
811
  })
774
812
  }
775
- }]);
813
+ };
814
+ if (!blocks.length) {
815
+ dispatch.replaceBlocks(select.getSelectedBlockClientIds(), [head, tail]);
816
+ return;
817
+ }
818
+ let selection;
819
+ const output = [];
820
+ const clonedBlocks = [...blocks];
821
+ const firstBlock = clonedBlocks.shift();
822
+ const headType = getBlockType(head.name);
823
+ const firstBlocks = headType.merge && firstBlock.name === headType.name ? [firstBlock] : switchToBlockType(firstBlock, headType.name);
824
+ if (firstBlocks?.length) {
825
+ const first = firstBlocks.shift();
826
+ head = {
827
+ ...head,
828
+ attributes: headType.merge(head.attributes, first.attributes)
829
+ };
830
+ output.push(head);
831
+ selection = {
832
+ clientId: head.clientId,
833
+ attributeKey: attributeKeyA,
834
+ offset: create({
835
+ html: head.attributes[attributeKeyA]
836
+ }).text.length
837
+ };
838
+ clonedBlocks.unshift(...firstBlocks);
839
+ } else {
840
+ if (!isUnmodifiedBlock(head)) {
841
+ output.push(head);
842
+ }
843
+ output.push(firstBlock);
844
+ }
845
+ const lastBlock = clonedBlocks.pop();
846
+ const tailType = getBlockType(tail.name);
847
+ if (clonedBlocks.length) {
848
+ output.push(...clonedBlocks);
849
+ }
850
+ if (lastBlock) {
851
+ const lastBlocks = tailType.merge && tailType.name === lastBlock.name ? [lastBlock] : switchToBlockType(lastBlock, tailType.name);
852
+ if (lastBlocks?.length) {
853
+ const last = lastBlocks.pop();
854
+ output.push({
855
+ ...tail,
856
+ attributes: tailType.merge(last.attributes, tail.attributes)
857
+ });
858
+ output.push(...lastBlocks);
859
+ selection = {
860
+ clientId: tail.clientId,
861
+ attributeKey: attributeKeyB,
862
+ offset: create({
863
+ html: last.attributes[attributeKeyB]
864
+ }).text.length
865
+ };
866
+ } else {
867
+ output.push(lastBlock);
868
+ if (!isUnmodifiedBlock(tail)) {
869
+ output.push(tail);
870
+ }
871
+ }
872
+ } else if (!isUnmodifiedBlock(tail)) {
873
+ output.push(tail);
874
+ }
875
+ registry.batch(() => {
876
+ dispatch.replaceBlocks(select.getSelectedBlockClientIds(), output, output.length - 1, 0);
877
+ if (selection) {
878
+ dispatch.selectionChange(selection.clientId, selection.attributeKey, selection.offset, selection.offset);
879
+ }
880
+ });
776
881
  };
777
882
 
778
883
  /**
@@ -1241,33 +1346,22 @@ export const __unstableSetEditorMode = mode => ({
1241
1346
  // When switching to zoom-out mode, we need to select the parent section
1242
1347
  if (mode === 'zoom-out') {
1243
1348
  const firstSelectedClientId = select.getBlockSelectionStart();
1244
- const allBlocks = select.getBlocks();
1245
1349
  const {
1246
1350
  sectionRootClientId
1247
1351
  } = unlock(registry.select(STORE_NAME).getSettings());
1248
- if (sectionRootClientId) {
1249
- const sectionClientIds = select.getBlockOrder(sectionRootClientId);
1250
- const lastSectionClientId = sectionClientIds[sectionClientIds.length - 1];
1251
- if (sectionClientIds) {
1252
- if (firstSelectedClientId) {
1253
- const parents = select.getBlockParents(firstSelectedClientId);
1254
- const firstSectionClientId = parents.find(parent => sectionClientIds.includes(parent));
1255
- if (firstSectionClientId) {
1256
- dispatch.selectBlock(firstSectionClientId);
1257
- } else {
1258
- dispatch.selectBlock(lastSectionClientId);
1259
- }
1260
- } else {
1261
- dispatch.selectBlock(lastSectionClientId);
1262
- }
1352
+ if (firstSelectedClientId) {
1353
+ let sectionClientId;
1354
+ if (sectionRootClientId) {
1355
+ const sectionClientIds = select.getBlockOrder(sectionRootClientId);
1356
+ sectionClientId = select.getBlockParents(firstSelectedClientId).find(parent => sectionClientIds.includes(parent));
1357
+ } else {
1358
+ sectionClientId = select.getBlockHierarchyRootClientId(firstSelectedClientId);
1359
+ }
1360
+ if (sectionClientId) {
1361
+ dispatch.selectBlock(sectionClientId);
1362
+ } else {
1363
+ dispatch.clearSelectedBlock();
1263
1364
  }
1264
- } else if (firstSelectedClientId) {
1265
- const rootClientId = select.getBlockHierarchyRootClientId(firstSelectedClientId);
1266
- dispatch.selectBlock(rootClientId);
1267
- } else {
1268
- // If there's no block selected and no sectionRootClientId, select the last root block.
1269
- const lastRootBlock = allBlocks[allBlocks.length - 1];
1270
- dispatch.selectBlock(lastRootBlock?.clientId);
1271
1365
  }
1272
1366
  }
1273
1367
  dispatch({