@wordpress/block-editor 14.4.0 → 14.6.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 (1056) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +4 -8
  3. package/build/autocompleters/block.js +13 -5
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/background-image-control/index.js +1 -1
  6. package/build/components/background-image-control/index.js.map +1 -1
  7. package/build/components/block-canvas/index.js +10 -0
  8. package/build/components/block-canvas/index.js.map +1 -1
  9. package/build/components/block-card/index.js +2 -2
  10. package/build/components/block-card/index.js.map +1 -1
  11. package/build/components/block-controls/slot.js.map +1 -1
  12. package/build/components/block-controls/slot.native.js.map +1 -1
  13. package/build/components/block-draggable/draggable-chip.js +1 -1
  14. package/build/components/block-draggable/draggable-chip.js.map +1 -1
  15. package/build/components/block-full-height-alignment-control/index.js +1 -1
  16. package/build/components/block-full-height-alignment-control/index.js.map +1 -1
  17. package/build/components/block-list/block-invalid-warning.native.js +1 -1
  18. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  19. package/build/components/block-list/block-list-item.native.js.map +1 -1
  20. package/build/components/block-list/block.js +1 -1
  21. package/build/components/block-list/block.js.map +1 -1
  22. package/build/components/block-list/block.native.js +1 -7
  23. package/build/components/block-list/block.native.js.map +1 -1
  24. package/build/components/block-list/index.js +6 -5
  25. package/build/components/block-list/index.js.map +1 -1
  26. package/build/components/block-list/index.native.js.map +1 -1
  27. package/build/components/block-list/use-block-props/index.js +1 -2
  28. package/build/components/block-list/use-block-props/index.js.map +1 -1
  29. package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -3
  30. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  31. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +11 -6
  32. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  33. package/build/components/block-list/use-in-between-inserter.js +1 -1
  34. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  35. package/build/components/block-list/zoom-out-separator.js +10 -7
  36. package/build/components/block-list/zoom-out-separator.js.map +1 -1
  37. package/build/components/block-lock/modal.js +1 -1
  38. package/build/components/block-lock/modal.js.map +1 -1
  39. package/build/components/block-mover/button.js.map +1 -1
  40. package/build/components/block-parent-selector/index.js +1 -1
  41. package/build/components/block-parent-selector/index.js.map +1 -1
  42. package/build/components/block-pattern-setup/index.js.map +1 -1
  43. package/build/components/block-patterns-list/index.js.map +1 -1
  44. package/build/components/block-patterns-paging/index.js +1 -1
  45. package/build/components/block-patterns-paging/index.js.map +1 -1
  46. package/build/components/block-popover/index.js +1 -1
  47. package/build/components/block-popover/index.js.map +1 -1
  48. package/build/components/block-preview/auto.js +1 -4
  49. package/build/components/block-preview/auto.js.map +1 -1
  50. package/build/components/block-preview/index.js +2 -2
  51. package/build/components/block-preview/index.js.map +1 -1
  52. package/build/components/block-rename/modal.js +2 -2
  53. package/build/components/block-rename/modal.js.map +1 -1
  54. package/build/components/block-settings-menu/block-parent-selector-menu-item.js +1 -1
  55. package/build/components/block-settings-menu/block-parent-selector-menu-item.js.map +1 -1
  56. package/build/components/block-settings-menu/block-settings-dropdown.js +5 -0
  57. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  58. package/build/components/block-settings-menu/index.js +4 -3
  59. package/build/components/block-settings-menu/index.js.map +1 -1
  60. package/build/components/block-switcher/block-transformations-menu.native.js +1 -1
  61. package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  62. package/build/components/block-switcher/index.js +2 -1
  63. package/build/components/block-switcher/index.js.map +1 -1
  64. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  65. package/build/components/block-switcher/use-transformed-patterns.js +1 -0
  66. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  67. package/build/components/block-switcher/utils.js +1 -0
  68. package/build/components/block-switcher/utils.js.map +1 -1
  69. package/build/components/block-toolbar/change-design.js +122 -0
  70. package/build/components/block-toolbar/change-design.js.map +1 -0
  71. package/build/components/block-toolbar/index.js +19 -7
  72. package/build/components/block-toolbar/index.js.map +1 -1
  73. package/build/components/block-tools/index.js +4 -17
  74. package/build/components/block-tools/index.js.map +1 -1
  75. package/build/components/block-tools/insertion-point.js +4 -3
  76. package/build/components/block-tools/insertion-point.js.map +1 -1
  77. package/build/components/block-tools/use-show-block-tools.js +4 -6
  78. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  79. package/build/components/block-tools/zoom-out-mode-inserters.js +20 -29
  80. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  81. package/build/components/block-types-list/index.js.map +1 -1
  82. package/build/components/block-types-list/index.native.js.map +1 -1
  83. package/build/components/block-variation-transforms/index.js +3 -2
  84. package/build/components/block-variation-transforms/index.js.map +1 -1
  85. package/build/components/block-vertical-alignment-control/ui.js +6 -10
  86. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  87. package/build/components/border-radius-control/index.js.map +1 -1
  88. package/build/components/border-radius-control/linked-button.js +7 -10
  89. package/build/components/border-radius-control/linked-button.js.map +1 -1
  90. package/build/components/border-radius-control/utils.js.map +1 -1
  91. package/build/components/button-block-appender/index.js.map +1 -1
  92. package/build/components/collab/block-comment-icon-slot.js +18 -0
  93. package/build/components/collab/block-comment-icon-slot.js.map +1 -0
  94. package/build/components/collab/block-comment-icon-toolbar-slot.js +18 -0
  95. package/build/components/collab/block-comment-icon-toolbar-slot.js.map +1 -0
  96. package/build/components/color-style-selector/index.js.map +1 -1
  97. package/build/components/colors/utils.js.map +1 -1
  98. package/build/components/colors/with-colors.js.map +1 -1
  99. package/build/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  100. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +7 -1
  101. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  102. package/build/components/convert-to-group-buttons/toolbar.js +4 -4
  103. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  104. package/build/components/date-format-picker/index.js +1 -0
  105. package/build/components/date-format-picker/index.js.map +1 -1
  106. package/build/components/duotone/utils.js.map +1 -1
  107. package/build/components/duotone-control/index.js.map +1 -1
  108. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  109. package/build/components/font-sizes/utils.js.map +1 -1
  110. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  111. package/build/components/global-styles/border-panel.js.map +1 -1
  112. package/build/components/global-styles/color-panel.js +1 -4
  113. package/build/components/global-styles/color-panel.js.map +1 -1
  114. package/build/components/global-styles/filters-panel.js.map +1 -1
  115. package/build/components/global-styles/get-block-css-selector.js.map +1 -1
  116. package/build/components/global-styles/get-global-styles-changes.js +2 -1
  117. package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
  118. package/build/components/global-styles/hooks.js.map +1 -1
  119. package/build/components/global-styles/typography-panel.js.map +1 -1
  120. package/build/components/global-styles/use-global-styles-context.native.js +6 -0
  121. package/build/components/global-styles/use-global-styles-context.native.js.map +1 -1
  122. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  123. package/build/components/global-styles/utils.js.map +1 -1
  124. package/build/components/gradients/use-gradient.js.map +1 -1
  125. package/build/components/grid/grid-item-movers.js.map +1 -1
  126. package/build/components/grid/grid-visualizer.js.map +1 -1
  127. package/build/components/iframe/index.js +46 -11
  128. package/build/components/iframe/index.js.map +1 -1
  129. package/build/components/image-editor/use-save-image.js +1 -1
  130. package/build/components/image-editor/use-save-image.js.map +1 -1
  131. package/build/components/image-size-control/index.js +61 -20
  132. package/build/components/image-size-control/index.js.map +1 -1
  133. package/build/components/inner-blocks/index.js +9 -5
  134. package/build/components/inner-blocks/index.js.map +1 -1
  135. package/build/components/inner-blocks/use-nested-settings-update.js +15 -8
  136. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  137. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +1 -1
  138. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  139. package/build/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  140. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  141. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +2 -2
  142. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  143. package/build/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
  144. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  145. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +1 -1
  146. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  147. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  148. package/build/components/inserter/category-tabs/index.js +16 -12
  149. package/build/components/inserter/category-tabs/index.js.map +1 -1
  150. package/build/components/inserter/hooks/use-block-types-state.js +1 -1
  151. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  152. package/build/components/inserter/hooks/use-patterns-state.js +1 -1
  153. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  154. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  155. package/build/components/inserter/media-tab/media-preview.js +1 -1
  156. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  157. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  158. package/build/components/inserter/media-tab/utils.js.map +1 -1
  159. package/build/components/inserter/menu.js +8 -3
  160. package/build/components/inserter/menu.js.map +1 -1
  161. package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
  162. package/build/components/inserter/preview-panel.js.map +1 -1
  163. package/build/components/inserter/quick-inserter.js +1 -1
  164. package/build/components/inserter/quick-inserter.js.map +1 -1
  165. package/build/components/inserter/search-results.js +1 -1
  166. package/build/components/inserter/search-results.js.map +1 -1
  167. package/build/components/inserter/tabs.native.js.map +1 -1
  168. package/build/components/inserter-button/index.native.js +1 -1
  169. package/build/components/inserter-button/index.native.js.map +1 -1
  170. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  171. package/build/components/inspector-controls/fill.js.map +1 -1
  172. package/build/components/inspector-controls/fill.native.js.map +1 -1
  173. package/build/components/inspector-controls/slot.js.map +1 -1
  174. package/build/components/inspector-controls/slot.native.js.map +1 -1
  175. package/build/components/inspector-controls-tabs/index.js +0 -2
  176. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  177. package/build/components/inspector-controls-tabs/utils.js +3 -6
  178. package/build/components/inspector-controls-tabs/utils.js.map +1 -1
  179. package/build/components/line-height-control/index.js.map +1 -1
  180. package/build/components/link-control/is-url-like.js.map +1 -1
  181. package/build/components/link-control/link-preview.js +12 -9
  182. package/build/components/link-control/link-preview.js.map +1 -1
  183. package/build/components/link-control/search-create-button.js +1 -1
  184. package/build/components/link-control/search-create-button.js.map +1 -1
  185. package/build/components/link-control/search-input.js +3 -5
  186. package/build/components/link-control/search-input.js.map +1 -1
  187. package/build/components/link-control/search-results.js +5 -15
  188. package/build/components/link-control/search-results.js.map +1 -1
  189. package/build/components/link-control/settings-drawer.js.map +1 -1
  190. package/build/components/link-control/use-rich-url-data.js.map +1 -1
  191. package/build/components/list-view/appender.js +5 -4
  192. package/build/components/list-view/appender.js.map +1 -1
  193. package/build/components/list-view/block-select-button.js.map +1 -1
  194. package/build/components/list-view/block.js.map +1 -1
  195. package/build/components/list-view/branch.js +6 -5
  196. package/build/components/list-view/branch.js.map +1 -1
  197. package/build/components/list-view/drop-indicator.js.map +1 -1
  198. package/build/components/list-view/index.js +1 -2
  199. package/build/components/list-view/index.js.map +1 -1
  200. package/build/components/list-view/use-block-selection.js +2 -2
  201. package/build/components/list-view/use-block-selection.js.map +1 -1
  202. package/build/components/list-view/utils.js +1 -1
  203. package/build/components/list-view/utils.js.map +1 -1
  204. package/build/components/media-placeholder/index.native.js +1 -1
  205. package/build/components/media-placeholder/index.native.js.map +1 -1
  206. package/build/components/media-replace-flow/index.js.map +1 -1
  207. package/build/components/multi-selection-inspector/index.js +2 -2
  208. package/build/components/multi-selection-inspector/index.js.map +1 -1
  209. package/build/components/observe-typing/index.js +1 -0
  210. package/build/components/observe-typing/index.js.map +1 -1
  211. package/build/components/provider/index.js +1 -1
  212. package/build/components/provider/index.js.map +1 -1
  213. package/build/components/recursion-provider/index.js +1 -0
  214. package/build/components/recursion-provider/index.js.map +1 -1
  215. package/build/components/responsive-block-control/index.js +3 -3
  216. package/build/components/responsive-block-control/index.js.map +1 -1
  217. package/build/components/responsive-block-control/label.js +1 -1
  218. package/build/components/responsive-block-control/label.js.map +1 -1
  219. package/build/components/rich-text/content.js.map +1 -1
  220. package/build/components/rich-text/event-listeners/index.js +3 -1
  221. package/build/components/rich-text/event-listeners/index.js.map +1 -1
  222. package/build/components/rich-text/file-paste-handler.native.js.map +1 -1
  223. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  224. package/build/components/rich-text/format-toolbar/index.native.js.map +1 -1
  225. package/build/components/rich-text/index.js +3 -2
  226. package/build/components/rich-text/index.js.map +1 -1
  227. package/build/components/rich-text/index.native.js +2 -6
  228. package/build/components/rich-text/index.native.js.map +1 -1
  229. package/build/components/rich-text/multiline.js.map +1 -1
  230. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  231. package/build/components/rich-text/native/index.native.js.map +1 -1
  232. package/build/components/rich-text/native/use-format-types.js +1 -0
  233. package/build/components/rich-text/native/use-format-types.js.map +1 -1
  234. package/build/components/rich-text/toolbar-button.js.map +1 -1
  235. package/build/components/rich-text/use-format-types.js +1 -0
  236. package/build/components/rich-text/use-format-types.js.map +1 -1
  237. package/build/components/spacing-sizes-control/index.js +2 -2
  238. package/build/components/spacing-sizes-control/index.js.map +1 -1
  239. package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  240. package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  241. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +3 -3
  242. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  243. package/build/components/spacing-sizes-control/linked-button.js +1 -5
  244. package/build/components/spacing-sizes-control/linked-button.js.map +1 -1
  245. package/build/components/spacing-sizes-control/utils.js +1 -0
  246. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  247. package/build/components/tool-selector/index.js +8 -5
  248. package/build/components/tool-selector/index.js.map +1 -1
  249. package/build/components/typewriter/index.js +1 -0
  250. package/build/components/typewriter/index.js.map +1 -1
  251. package/build/components/unsupported-block-details/index.native.js.map +1 -1
  252. package/build/components/url-input/index.js +1 -1
  253. package/build/components/url-input/index.js.map +1 -1
  254. package/build/components/use-block-commands/index.js +1 -1
  255. package/build/components/use-block-commands/index.js.map +1 -1
  256. package/build/components/use-block-drop-zone/index.js +5 -5
  257. package/build/components/use-block-drop-zone/index.js.map +1 -1
  258. package/build/components/use-block-drop-zone/index.native.js +0 -1
  259. package/build/components/use-block-drop-zone/index.native.js.map +1 -1
  260. package/build/components/use-flash-editable-blocks/index.js.map +1 -1
  261. package/build/components/use-moving-animation/index.js +1 -3
  262. package/build/components/use-moving-animation/index.js.map +1 -1
  263. package/build/components/use-resize-canvas/index.js +1 -2
  264. package/build/components/use-resize-canvas/index.js.map +1 -1
  265. package/build/components/use-settings/index.js +1 -3
  266. package/build/components/use-settings/index.js.map +1 -1
  267. package/build/components/writing-flow/index.js +5 -3
  268. package/build/components/writing-flow/index.js.map +1 -1
  269. package/build/components/writing-flow/use-tab-nav.js +20 -5
  270. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  271. package/build/hooks/align.js.map +1 -1
  272. package/build/hooks/block-bindings.js +19 -8
  273. package/build/hooks/block-bindings.js.map +1 -1
  274. package/build/hooks/block-hooks.js +1 -1
  275. package/build/hooks/block-hooks.js.map +1 -1
  276. package/build/hooks/block-style-variation.js.map +1 -1
  277. package/build/hooks/contrast-checker.js +0 -1
  278. package/build/hooks/contrast-checker.js.map +1 -1
  279. package/build/hooks/duotone.js +2 -2
  280. package/build/hooks/duotone.js.map +1 -1
  281. package/build/hooks/font-family.js.map +1 -1
  282. package/build/hooks/gap.js.map +1 -1
  283. package/build/hooks/generated-class-name.js +1 -0
  284. package/build/hooks/generated-class-name.js.map +1 -1
  285. package/build/hooks/grid-visualizer.js +13 -11
  286. package/build/hooks/grid-visualizer.js.map +1 -1
  287. package/build/hooks/layout-child.js +41 -3
  288. package/build/hooks/layout-child.js.map +1 -1
  289. package/build/hooks/layout.js.map +1 -1
  290. package/build/hooks/position.js +1 -1
  291. package/build/hooks/position.js.map +1 -1
  292. package/build/hooks/spacing-visualizer.js.map +1 -1
  293. package/build/hooks/style.js +4 -1
  294. package/build/hooks/style.js.map +1 -1
  295. package/build/hooks/text-align.js.map +1 -1
  296. package/build/hooks/use-typography-props.js.map +1 -1
  297. package/build/hooks/use-zoom-out.js +17 -18
  298. package/build/hooks/use-zoom-out.js.map +1 -1
  299. package/build/index.js +0 -7
  300. package/build/index.js.map +1 -1
  301. package/build/layouts/constrained.js.map +1 -1
  302. package/build/layouts/flex.js.map +1 -1
  303. package/build/layouts/grid.js.map +1 -1
  304. package/build/layouts/utils.js.map +1 -1
  305. package/build/private-apis.js +6 -1
  306. package/build/private-apis.js.map +1 -1
  307. package/build/store/actions.js +6 -38
  308. package/build/store/actions.js.map +1 -1
  309. package/build/store/defaults.js +1 -1
  310. package/build/store/defaults.js.map +1 -1
  311. package/build/store/private-actions.js +57 -8
  312. package/build/store/private-actions.js.map +1 -1
  313. package/build/store/private-selectors.js +9 -21
  314. package/build/store/private-selectors.js.map +1 -1
  315. package/build/store/reducer.js +18 -24
  316. package/build/store/reducer.js.map +1 -1
  317. package/build/store/selectors.js +66 -22
  318. package/build/store/selectors.js.map +1 -1
  319. package/build/utils/block-bindings.js +9 -6
  320. package/build/utils/block-bindings.js.map +1 -1
  321. package/build/utils/dom.js +16 -1
  322. package/build/utils/dom.js.map +1 -1
  323. package/build/utils/get-font-styles-and-weights.js +2 -2
  324. package/build/utils/get-font-styles-and-weights.js.map +1 -1
  325. package/build/utils/object.js +1 -0
  326. package/build/utils/object.js.map +1 -1
  327. package/build/utils/pasting.js.map +1 -1
  328. package/build/utils/transform-styles/index.js +4 -3
  329. package/build/utils/transform-styles/index.js.map +1 -1
  330. package/build-module/autocompleters/block.js +15 -9
  331. package/build-module/autocompleters/block.js.map +1 -1
  332. package/build-module/autocompleters/link.js +1 -3
  333. package/build-module/autocompleters/link.js.map +1 -1
  334. package/build-module/components/audio-player/index.native.js +1 -2
  335. package/build-module/components/audio-player/index.native.js.map +1 -1
  336. package/build-module/components/background-image-control/index.js +2 -3
  337. package/build-module/components/background-image-control/index.js.map +1 -1
  338. package/build-module/components/block-alignment-control/ui.js +1 -2
  339. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  340. package/build-module/components/block-breadcrumb/index.js +1 -2
  341. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  342. package/build-module/components/block-canvas/index.js +12 -3
  343. package/build-module/components/block-canvas/index.js.map +1 -1
  344. package/build-module/components/block-card/index.js +4 -5
  345. package/build-module/components/block-card/index.js.map +1 -1
  346. package/build-module/components/block-compare/block-view.js +1 -2
  347. package/build-module/components/block-compare/block-view.js.map +1 -1
  348. package/build-module/components/block-compare/index.js +1 -2
  349. package/build-module/components/block-compare/index.js.map +1 -1
  350. package/build-module/components/block-controls/fill.js +1 -3
  351. package/build-module/components/block-controls/fill.js.map +1 -1
  352. package/build-module/components/block-controls/slot.js.map +1 -1
  353. package/build-module/components/block-controls/slot.native.js.map +1 -1
  354. package/build-module/components/block-draggable/draggable-chip.js +2 -3
  355. package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
  356. package/build-module/components/block-draggable/draggable-chip.native.js +1 -2
  357. package/build-module/components/block-draggable/draggable-chip.native.js.map +1 -1
  358. package/build-module/components/block-draggable/index.native.js +1 -3
  359. package/build-module/components/block-draggable/index.native.js.map +1 -1
  360. package/build-module/components/block-edit/index.js +1 -2
  361. package/build-module/components/block-edit/index.js.map +1 -1
  362. package/build-module/components/block-edit/multiple-usage-warning.js +1 -2
  363. package/build-module/components/block-edit/multiple-usage-warning.js.map +1 -1
  364. package/build-module/components/block-full-height-alignment-control/index.js +1 -1
  365. package/build-module/components/block-full-height-alignment-control/index.js.map +1 -1
  366. package/build-module/components/block-inspector/index.js +1 -3
  367. package/build-module/components/block-inspector/index.js.map +1 -1
  368. package/build-module/components/block-list/block-crash-warning.js +1 -1
  369. package/build-module/components/block-list/block-crash-warning.js.map +1 -1
  370. package/build-module/components/block-list/block-crash-warning.native.js +1 -1
  371. package/build-module/components/block-list/block-crash-warning.native.js.map +1 -1
  372. package/build-module/components/block-list/block-invalid-warning.js +1 -3
  373. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  374. package/build-module/components/block-list/block-invalid-warning.native.js +1 -1
  375. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  376. package/build-module/components/block-list/block-list-item.native.js +1 -2
  377. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  378. package/build-module/components/block-list/block-selection-button.native.js +1 -2
  379. package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
  380. package/build-module/components/block-list/block.js +2 -4
  381. package/build-module/components/block-list/block.js.map +1 -1
  382. package/build-module/components/block-list/block.native.js +2 -9
  383. package/build-module/components/block-list/block.native.js.map +1 -1
  384. package/build-module/components/block-list/index.js +7 -7
  385. package/build-module/components/block-list/index.js.map +1 -1
  386. package/build-module/components/block-list/index.native.js +1 -3
  387. package/build-module/components/block-list/index.native.js.map +1 -1
  388. package/build-module/components/block-list/insertion-point.native.js +1 -2
  389. package/build-module/components/block-list/insertion-point.native.js.map +1 -1
  390. package/build-module/components/block-list/use-block-props/index.js +1 -2
  391. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  392. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -3
  393. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  394. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +11 -6
  395. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  396. package/build-module/components/block-list/use-in-between-inserter.js +1 -1
  397. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  398. package/build-module/components/block-list/zoom-out-separator.js +10 -7
  399. package/build-module/components/block-list/zoom-out-separator.js.map +1 -1
  400. package/build-module/components/block-lock/menu-item.js +1 -3
  401. package/build-module/components/block-lock/menu-item.js.map +1 -1
  402. package/build-module/components/block-lock/modal.js +2 -3
  403. package/build-module/components/block-lock/modal.js.map +1 -1
  404. package/build-module/components/block-lock/toolbar.js +1 -3
  405. package/build-module/components/block-lock/toolbar.js.map +1 -1
  406. package/build-module/components/block-media-update-progress/index.native.js +1 -2
  407. package/build-module/components/block-media-update-progress/index.native.js.map +1 -1
  408. package/build-module/components/block-mover/button.js +1 -3
  409. package/build-module/components/block-mover/button.js.map +1 -1
  410. package/build-module/components/block-mover/index.js +1 -2
  411. package/build-module/components/block-mover/index.js.map +1 -1
  412. package/build-module/components/block-mover/index.native.js +1 -2
  413. package/build-module/components/block-mover/index.native.js.map +1 -1
  414. package/build-module/components/block-navigation/dropdown.js +1 -2
  415. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  416. package/build-module/components/block-parent-selector/index.js +1 -1
  417. package/build-module/components/block-parent-selector/index.js.map +1 -1
  418. package/build-module/components/block-pattern-setup/index.js +1 -3
  419. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  420. package/build-module/components/block-pattern-setup/setup-toolbar.js +1 -2
  421. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  422. package/build-module/components/block-patterns-list/index.js +1 -3
  423. package/build-module/components/block-patterns-list/index.js.map +1 -1
  424. package/build-module/components/block-patterns-paging/index.js +2 -3
  425. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  426. package/build-module/components/block-popover/index.js +1 -1
  427. package/build-module/components/block-popover/index.js.map +1 -1
  428. package/build-module/components/block-preview/auto.js +2 -7
  429. package/build-module/components/block-preview/auto.js.map +1 -1
  430. package/build-module/components/block-preview/index.js +3 -4
  431. package/build-module/components/block-preview/index.js.map +1 -1
  432. package/build-module/components/block-quick-navigation/index.js +1 -2
  433. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  434. package/build-module/components/block-removal-warning-modal/index.js +1 -2
  435. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  436. package/build-module/components/block-rename/modal.js +3 -4
  437. package/build-module/components/block-rename/modal.js.map +1 -1
  438. package/build-module/components/block-rename/rename-control.js +1 -3
  439. package/build-module/components/block-rename/rename-control.js.map +1 -1
  440. package/build-module/components/block-settings/container.native.js +1 -3
  441. package/build-module/components/block-settings/container.native.js.map +1 -1
  442. package/build-module/components/block-settings-menu/block-parent-selector-menu-item.js +1 -1
  443. package/build-module/components/block-settings-menu/block-parent-selector-menu-item.js.map +1 -1
  444. package/build-module/components/block-settings-menu/block-settings-dropdown.js +6 -3
  445. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  446. package/build-module/components/block-settings-menu/index.js +5 -4
  447. package/build-module/components/block-settings-menu/index.js.map +1 -1
  448. package/build-module/components/block-settings-menu-controls/index.js +1 -2
  449. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  450. package/build-module/components/block-styles/index.js +1 -2
  451. package/build-module/components/block-styles/index.js.map +1 -1
  452. package/build-module/components/block-styles/menu-items.js +1 -2
  453. package/build-module/components/block-styles/menu-items.js.map +1 -1
  454. package/build-module/components/block-styles/preview.native.js +1 -2
  455. package/build-module/components/block-styles/preview.native.js.map +1 -1
  456. package/build-module/components/block-switcher/block-transformations-menu.js +1 -3
  457. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  458. package/build-module/components/block-switcher/block-transformations-menu.native.js +1 -1
  459. package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  460. package/build-module/components/block-switcher/block-variation-transformations.js +1 -3
  461. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
  462. package/build-module/components/block-switcher/index.js +3 -4
  463. package/build-module/components/block-switcher/index.js.map +1 -1
  464. package/build-module/components/block-switcher/pattern-transformations-menu.js +1 -2
  465. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  466. package/build-module/components/block-switcher/preview-block-popover.js +1 -2
  467. package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
  468. package/build-module/components/block-switcher/use-transformed-patterns.js +1 -0
  469. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  470. package/build-module/components/block-switcher/utils.js +1 -0
  471. package/build-module/components/block-switcher/utils.js.map +1 -1
  472. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +1 -2
  473. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  474. package/build-module/components/block-toolbar/change-design.js +114 -0
  475. package/build-module/components/block-toolbar/change-design.js.map +1 -0
  476. package/build-module/components/block-toolbar/index.js +20 -10
  477. package/build-module/components/block-toolbar/index.js.map +1 -1
  478. package/build-module/components/block-toolbar/index.native.js +1 -3
  479. package/build-module/components/block-toolbar/index.native.js.map +1 -1
  480. package/build-module/components/block-tools/index.js +5 -19
  481. package/build-module/components/block-tools/index.js.map +1 -1
  482. package/build-module/components/block-tools/insertion-point.js +5 -5
  483. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  484. package/build-module/components/block-tools/use-show-block-tools.js +4 -6
  485. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  486. package/build-module/components/block-tools/zoom-out-mode-inserters.js +20 -29
  487. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  488. package/build-module/components/block-types-list/index.js +1 -2
  489. package/build-module/components/block-types-list/index.js.map +1 -1
  490. package/build-module/components/block-types-list/index.native.js +1 -2
  491. package/build-module/components/block-types-list/index.native.js.map +1 -1
  492. package/build-module/components/block-variation-picker/index.js +1 -2
  493. package/build-module/components/block-variation-picker/index.js.map +1 -1
  494. package/build-module/components/block-variation-picker/index.native.js +1 -2
  495. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  496. package/build-module/components/block-variation-transforms/index.js +4 -4
  497. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  498. package/build-module/components/block-vertical-alignment-control/ui.js +6 -10
  499. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  500. package/build-module/components/border-radius-control/index.js +1 -3
  501. package/build-module/components/border-radius-control/index.js.map +1 -1
  502. package/build-module/components/border-radius-control/linked-button.js +8 -11
  503. package/build-module/components/border-radius-control/linked-button.js.map +1 -1
  504. package/build-module/components/border-radius-control/utils.js.map +1 -1
  505. package/build-module/components/button-block-appender/index.js.map +1 -1
  506. package/build-module/components/button-block-appender/index.native.js +1 -2
  507. package/build-module/components/button-block-appender/index.native.js.map +1 -1
  508. package/build-module/components/child-layout-control/index.js +1 -3
  509. package/build-module/components/child-layout-control/index.js.map +1 -1
  510. package/build-module/components/collab/block-comment-icon-slot.js +11 -0
  511. package/build-module/components/collab/block-comment-icon-slot.js.map +1 -0
  512. package/build-module/components/collab/block-comment-icon-toolbar-slot.js +11 -0
  513. package/build-module/components/collab/block-comment-icon-toolbar-slot.js.map +1 -0
  514. package/build-module/components/color-style-selector/index.js.map +1 -1
  515. package/build-module/components/colors/utils.js.map +1 -1
  516. package/build-module/components/colors/with-colors.js.map +1 -1
  517. package/build-module/components/colors-gradients/control.js +1 -2
  518. package/build-module/components/colors-gradients/control.js.map +1 -1
  519. package/build-module/components/colors-gradients/dropdown.js +1 -3
  520. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  521. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +1 -3
  522. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  523. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js +1 -3
  524. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  525. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +7 -1
  526. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  527. package/build-module/components/contrast-checker/index.native.js +1 -2
  528. package/build-module/components/contrast-checker/index.native.js.map +1 -1
  529. package/build-module/components/convert-to-group-buttons/index.js +1 -3
  530. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  531. package/build-module/components/convert-to-group-buttons/toolbar.js +5 -6
  532. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  533. package/build-module/components/date-format-picker/index.js +2 -2
  534. package/build-module/components/date-format-picker/index.js.map +1 -1
  535. package/build-module/components/default-block-appender/index.js +1 -2
  536. package/build-module/components/default-block-appender/index.js.map +1 -1
  537. package/build-module/components/dimensions-tool/index.js +1 -3
  538. package/build-module/components/dimensions-tool/index.js.map +1 -1
  539. package/build-module/components/dimensions-tool/width-height-tool.js +1 -3
  540. package/build-module/components/dimensions-tool/width-height-tool.js.map +1 -1
  541. package/build-module/components/duotone/utils.js.map +1 -1
  542. package/build-module/components/duotone-control/index.js +1 -2
  543. package/build-module/components/duotone-control/index.js.map +1 -1
  544. package/build-module/components/editor-styles/index.js +1 -3
  545. package/build-module/components/editor-styles/index.js.map +1 -1
  546. package/build-module/components/floating-toolbar/index.native.js +1 -2
  547. package/build-module/components/floating-toolbar/index.native.js.map +1 -1
  548. package/build-module/components/floating-toolbar/nav-up-icon.js +1 -2
  549. package/build-module/components/floating-toolbar/nav-up-icon.js.map +1 -1
  550. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  551. package/build-module/components/font-sizes/utils.js.map +1 -1
  552. package/build-module/components/font-sizes/with-font-sizes.js +2 -2
  553. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  554. package/build-module/components/global-styles/advanced-panel.js +1 -2
  555. package/build-module/components/global-styles/advanced-panel.js.map +1 -1
  556. package/build-module/components/global-styles/border-panel.js +1 -2
  557. package/build-module/components/global-styles/border-panel.js.map +1 -1
  558. package/build-module/components/global-styles/color-panel.js +3 -7
  559. package/build-module/components/global-styles/color-panel.js.map +1 -1
  560. package/build-module/components/global-styles/dimensions-panel.js +1 -2
  561. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  562. package/build-module/components/global-styles/filters-panel.js +1 -2
  563. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  564. package/build-module/components/global-styles/get-block-css-selector.js.map +1 -1
  565. package/build-module/components/global-styles/get-global-styles-changes.js +2 -1
  566. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  567. package/build-module/components/global-styles/hooks.js.map +1 -1
  568. package/build-module/components/global-styles/image-settings-panel.js +1 -2
  569. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  570. package/build-module/components/global-styles/shadow-panel-components.js +1 -2
  571. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  572. package/build-module/components/global-styles/typography-panel.js +1 -2
  573. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  574. package/build-module/components/global-styles/use-global-styles-context.native.js +6 -0
  575. package/build-module/components/global-styles/use-global-styles-context.native.js.map +1 -1
  576. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  577. package/build-module/components/global-styles/utils.js.map +1 -1
  578. package/build-module/components/gradients/use-gradient.js.map +1 -1
  579. package/build-module/components/grid/grid-item-movers.js +1 -3
  580. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  581. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  582. package/build-module/components/height-control/index.js +1 -2
  583. package/build-module/components/height-control/index.js.map +1 -1
  584. package/build-module/components/iframe/index.js +47 -14
  585. package/build-module/components/iframe/index.js.map +1 -1
  586. package/build-module/components/image-editor/aspect-ratio-dropdown.js +1 -3
  587. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  588. package/build-module/components/image-editor/cropper.js +1 -3
  589. package/build-module/components/image-editor/cropper.js.map +1 -1
  590. package/build-module/components/image-editor/form-controls.js +1 -3
  591. package/build-module/components/image-editor/form-controls.js.map +1 -1
  592. package/build-module/components/image-editor/index.js +1 -2
  593. package/build-module/components/image-editor/index.js.map +1 -1
  594. package/build-module/components/image-editor/use-save-image.js +1 -1
  595. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  596. package/build-module/components/image-link-destinations/index.native.js +1 -3
  597. package/build-module/components/image-link-destinations/index.native.js.map +1 -1
  598. package/build-module/components/image-size-control/index.js +63 -24
  599. package/build-module/components/image-size-control/index.js.map +1 -1
  600. package/build-module/components/inner-blocks/index.js +9 -5
  601. package/build-module/components/inner-blocks/index.js.map +1 -1
  602. package/build-module/components/inner-blocks/use-nested-settings-update.js +16 -9
  603. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  604. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js +1 -2
  605. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  606. package/build-module/components/inserter/block-patterns-explorer/index.js +1 -2
  607. package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -1
  608. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +2 -3
  609. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  610. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +3 -5
  611. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  612. package/build-module/components/inserter/block-patterns-tab/index.js +1 -3
  613. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  614. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +3 -5
  615. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  616. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +2 -4
  617. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  618. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +1 -1
  619. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  620. package/build-module/components/inserter/block-types-tab.js +1 -3
  621. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  622. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  623. package/build-module/components/inserter/category-tabs/index.js +18 -15
  624. package/build-module/components/inserter/category-tabs/index.js.map +1 -1
  625. package/build-module/components/inserter/hooks/use-block-types-state.js +1 -1
  626. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  627. package/build-module/components/inserter/hooks/use-patterns-state.js +1 -1
  628. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  629. package/build-module/components/inserter/index.native.js +1 -3
  630. package/build-module/components/inserter/index.native.js.map +1 -1
  631. package/build-module/components/inserter/media-tab/media-panel.js +1 -2
  632. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  633. package/build-module/components/inserter/media-tab/media-preview.js +2 -4
  634. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  635. package/build-module/components/inserter/media-tab/media-tab.js +1 -3
  636. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  637. package/build-module/components/inserter/media-tab/utils.js.map +1 -1
  638. package/build-module/components/inserter/menu.js +10 -7
  639. package/build-module/components/inserter/menu.js.map +1 -1
  640. package/build-module/components/inserter/menu.native.js +1 -3
  641. package/build-module/components/inserter/menu.native.js.map +1 -1
  642. package/build-module/components/inserter/mobile-tab-navigation.js +1 -2
  643. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
  644. package/build-module/components/inserter/no-results.js +1 -2
  645. package/build-module/components/inserter/no-results.js.map +1 -1
  646. package/build-module/components/inserter/no-results.native.js +1 -2
  647. package/build-module/components/inserter/no-results.native.js.map +1 -1
  648. package/build-module/components/inserter/panel.js +1 -3
  649. package/build-module/components/inserter/panel.js.map +1 -1
  650. package/build-module/components/inserter/preview-panel.js +1 -2
  651. package/build-module/components/inserter/preview-panel.js.map +1 -1
  652. package/build-module/components/inserter/quick-inserter.js +2 -3
  653. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  654. package/build-module/components/inserter/search-results.js +2 -3
  655. package/build-module/components/inserter/search-results.js.map +1 -1
  656. package/build-module/components/inserter/tabs.native.js.map +1 -1
  657. package/build-module/components/inserter-button/index.native.js +2 -3
  658. package/build-module/components/inserter-button/index.native.js.map +1 -1
  659. package/build-module/components/inserter-list-item/index.js +1 -2
  660. package/build-module/components/inserter-list-item/index.js.map +1 -1
  661. package/build-module/components/inserter-listbox/index.js +1 -2
  662. package/build-module/components/inserter-listbox/index.js.map +1 -1
  663. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  664. package/build-module/components/inspector-controls/fill.js.map +1 -1
  665. package/build-module/components/inspector-controls/fill.native.js +1 -3
  666. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  667. package/build-module/components/inspector-controls/slot.js.map +1 -1
  668. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  669. package/build-module/components/inspector-controls-tabs/index.js +1 -4
  670. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  671. package/build-module/components/inspector-controls-tabs/settings-tab.js +1 -3
  672. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  673. package/build-module/components/inspector-controls-tabs/styles-tab.js +1 -3
  674. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  675. package/build-module/components/inspector-controls-tabs/utils.js +3 -6
  676. package/build-module/components/inspector-controls-tabs/utils.js.map +1 -1
  677. package/build-module/components/inspector-popover-header/index.js +1 -2
  678. package/build-module/components/inspector-popover-header/index.js.map +1 -1
  679. package/build-module/components/line-height-control/index.js.map +1 -1
  680. package/build-module/components/link-control/index.js +1 -3
  681. package/build-module/components/link-control/index.js.map +1 -1
  682. package/build-module/components/link-control/is-url-like.js.map +1 -1
  683. package/build-module/components/link-control/link-preview.js +14 -13
  684. package/build-module/components/link-control/link-preview.js.map +1 -1
  685. package/build-module/components/link-control/search-create-button.js +1 -1
  686. package/build-module/components/link-control/search-create-button.js.map +1 -1
  687. package/build-module/components/link-control/search-input.js +4 -7
  688. package/build-module/components/link-control/search-input.js.map +1 -1
  689. package/build-module/components/link-control/search-results.js +6 -17
  690. package/build-module/components/link-control/search-results.js.map +1 -1
  691. package/build-module/components/link-control/settings-drawer.js +1 -3
  692. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  693. package/build-module/components/link-control/settings.js +1 -2
  694. package/build-module/components/link-control/settings.js.map +1 -1
  695. package/build-module/components/link-control/use-rich-url-data.js.map +1 -1
  696. package/build-module/components/list-view/appender.js +6 -6
  697. package/build-module/components/list-view/appender.js.map +1 -1
  698. package/build-module/components/list-view/block-contents.js +1 -3
  699. package/build-module/components/list-view/block-contents.js.map +1 -1
  700. package/build-module/components/list-view/block-select-button.js +1 -2
  701. package/build-module/components/list-view/block-select-button.js.map +1 -1
  702. package/build-module/components/list-view/block.js +1 -3
  703. package/build-module/components/list-view/block.js.map +1 -1
  704. package/build-module/components/list-view/branch.js +8 -9
  705. package/build-module/components/list-view/branch.js.map +1 -1
  706. package/build-module/components/list-view/drop-indicator.js +1 -2
  707. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  708. package/build-module/components/list-view/index.js +2 -4
  709. package/build-module/components/list-view/index.js.map +1 -1
  710. package/build-module/components/list-view/use-block-selection.js +2 -2
  711. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  712. package/build-module/components/list-view/utils.js +1 -1
  713. package/build-module/components/list-view/utils.js.map +1 -1
  714. package/build-module/components/media-placeholder/index.js +1 -3
  715. package/build-module/components/media-placeholder/index.js.map +1 -1
  716. package/build-module/components/media-placeholder/index.native.js +2 -4
  717. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  718. package/build-module/components/media-replace-flow/index.js +1 -3
  719. package/build-module/components/media-replace-flow/index.js.map +1 -1
  720. package/build-module/components/media-upload/index.native.js +1 -3
  721. package/build-module/components/media-upload/index.native.js.map +1 -1
  722. package/build-module/components/media-upload-progress/index.native.js +1 -2
  723. package/build-module/components/media-upload-progress/index.native.js.map +1 -1
  724. package/build-module/components/multi-selection-inspector/index.js +3 -4
  725. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  726. package/build-module/components/observe-typing/index.js +1 -0
  727. package/build-module/components/observe-typing/index.js.map +1 -1
  728. package/build-module/components/provider/index.js +2 -3
  729. package/build-module/components/provider/index.js.map +1 -1
  730. package/build-module/components/publish-date-time-picker/index.js +1 -2
  731. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  732. package/build-module/components/recursion-provider/index.js +1 -0
  733. package/build-module/components/recursion-provider/index.js.map +1 -1
  734. package/build-module/components/responsive-block-control/index.js +4 -5
  735. package/build-module/components/responsive-block-control/index.js.map +1 -1
  736. package/build-module/components/responsive-block-control/label.js +2 -4
  737. package/build-module/components/responsive-block-control/label.js.map +1 -1
  738. package/build-module/components/rich-text/content.js.map +1 -1
  739. package/build-module/components/rich-text/event-listeners/before-input-rules.js +2 -2
  740. package/build-module/components/rich-text/event-listeners/before-input-rules.js.map +1 -1
  741. package/build-module/components/rich-text/event-listeners/delete.js +2 -2
  742. package/build-module/components/rich-text/event-listeners/delete.js.map +1 -1
  743. package/build-module/components/rich-text/event-listeners/enter.js +2 -2
  744. package/build-module/components/rich-text/event-listeners/enter.js.map +1 -1
  745. package/build-module/components/rich-text/event-listeners/firefox-compat.js +2 -2
  746. package/build-module/components/rich-text/event-listeners/firefox-compat.js.map +1 -1
  747. package/build-module/components/rich-text/event-listeners/index.js +4 -2
  748. package/build-module/components/rich-text/event-listeners/index.js.map +1 -1
  749. package/build-module/components/rich-text/event-listeners/input-events.js +2 -2
  750. package/build-module/components/rich-text/event-listeners/input-events.js.map +1 -1
  751. package/build-module/components/rich-text/event-listeners/input-rules.js +2 -2
  752. package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -1
  753. package/build-module/components/rich-text/event-listeners/insert-replacement-text.js +2 -2
  754. package/build-module/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -1
  755. package/build-module/components/rich-text/event-listeners/paste-handler.js +2 -2
  756. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  757. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js +2 -2
  758. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -1
  759. package/build-module/components/rich-text/event-listeners/shortcuts.js +2 -2
  760. package/build-module/components/rich-text/event-listeners/shortcuts.js.map +1 -1
  761. package/build-module/components/rich-text/event-listeners/undo-automatic-change.js +2 -2
  762. package/build-module/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -1
  763. package/build-module/components/rich-text/file-paste-handler.native.js.map +1 -1
  764. package/build-module/components/rich-text/format-toolbar/index.js +1 -3
  765. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  766. package/build-module/components/rich-text/format-toolbar/index.native.js +1 -3
  767. package/build-module/components/rich-text/format-toolbar/index.native.js.map +1 -1
  768. package/build-module/components/rich-text/index.js +4 -5
  769. package/build-module/components/rich-text/index.js.map +1 -1
  770. package/build-module/components/rich-text/index.native.js +3 -9
  771. package/build-module/components/rich-text/index.native.js.map +1 -1
  772. package/build-module/components/rich-text/multiline.js.map +1 -1
  773. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  774. package/build-module/components/rich-text/native/index.js +1 -1
  775. package/build-module/components/rich-text/native/index.js.map +1 -1
  776. package/build-module/components/rich-text/native/index.native.js +1 -3
  777. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  778. package/build-module/components/rich-text/native/toolbar-button-with-options.native.js +1 -3
  779. package/build-module/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -1
  780. package/build-module/components/rich-text/native/use-format-types.js +1 -0
  781. package/build-module/components/rich-text/native/use-format-types.js.map +1 -1
  782. package/build-module/components/rich-text/toolbar-button.js.map +1 -1
  783. package/build-module/components/rich-text/use-format-types.js +1 -0
  784. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  785. package/build-module/components/spacing-sizes-control/index.js +4 -5
  786. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  787. package/build-module/components/spacing-sizes-control/input-controls/axial.js +1 -2
  788. package/build-module/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  789. package/build-module/components/spacing-sizes-control/input-controls/separated.js +1 -2
  790. package/build-module/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  791. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +5 -7
  792. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  793. package/build-module/components/spacing-sizes-control/linked-button.js +2 -6
  794. package/build-module/components/spacing-sizes-control/linked-button.js.map +1 -1
  795. package/build-module/components/spacing-sizes-control/utils.js +1 -0
  796. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  797. package/build-module/components/tabbed-sidebar/index.js +1 -2
  798. package/build-module/components/tabbed-sidebar/index.js.map +1 -1
  799. package/build-module/components/tool-selector/index.js +9 -8
  800. package/build-module/components/tool-selector/index.js.map +1 -1
  801. package/build-module/components/typewriter/index.js +1 -0
  802. package/build-module/components/typewriter/index.js.map +1 -1
  803. package/build-module/components/unsupported-block-details/index.native.js +1 -2
  804. package/build-module/components/unsupported-block-details/index.native.js.map +1 -1
  805. package/build-module/components/url-input/button.js +1 -2
  806. package/build-module/components/url-input/button.js.map +1 -1
  807. package/build-module/components/url-input/index.js +2 -4
  808. package/build-module/components/url-input/index.js.map +1 -1
  809. package/build-module/components/url-popover/image-url-input-ui.js +1 -3
  810. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  811. package/build-module/components/url-popover/index.js +1 -2
  812. package/build-module/components/url-popover/index.js.map +1 -1
  813. package/build-module/components/url-popover/link-editor.js +1 -2
  814. package/build-module/components/url-popover/link-editor.js.map +1 -1
  815. package/build-module/components/url-popover/link-viewer.js +1 -2
  816. package/build-module/components/url-popover/link-viewer.js.map +1 -1
  817. package/build-module/components/use-block-commands/index.js +1 -1
  818. package/build-module/components/use-block-commands/index.js.map +1 -1
  819. package/build-module/components/use-block-drop-zone/index.js +5 -5
  820. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  821. package/build-module/components/use-block-drop-zone/index.native.js +0 -1
  822. package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
  823. package/build-module/components/use-flash-editable-blocks/index.js.map +1 -1
  824. package/build-module/components/use-moving-animation/index.js +1 -3
  825. package/build-module/components/use-moving-animation/index.js.map +1 -1
  826. package/build-module/components/use-resize-canvas/index.js +1 -2
  827. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  828. package/build-module/components/use-settings/index.js +1 -3
  829. package/build-module/components/use-settings/index.js.map +1 -1
  830. package/build-module/components/video-player/index.native.js +1 -2
  831. package/build-module/components/video-player/index.native.js.map +1 -1
  832. package/build-module/components/warning/index.js +1 -2
  833. package/build-module/components/warning/index.js.map +1 -1
  834. package/build-module/components/warning/index.native.js +1 -2
  835. package/build-module/components/warning/index.native.js.map +1 -1
  836. package/build-module/components/writing-flow/index.js +6 -6
  837. package/build-module/components/writing-flow/index.js.map +1 -1
  838. package/build-module/components/writing-flow/use-tab-nav.js +20 -5
  839. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  840. package/build-module/hooks/align.js.map +1 -1
  841. package/build-module/hooks/anchor.js +1 -3
  842. package/build-module/hooks/anchor.js.map +1 -1
  843. package/build-module/hooks/block-bindings.js +21 -12
  844. package/build-module/hooks/block-bindings.js.map +1 -1
  845. package/build-module/hooks/block-hooks.js +2 -3
  846. package/build-module/hooks/block-hooks.js.map +1 -1
  847. package/build-module/hooks/block-style-variation.js +1 -2
  848. package/build-module/hooks/block-style-variation.js.map +1 -1
  849. package/build-module/hooks/contrast-checker.js +0 -1
  850. package/build-module/hooks/contrast-checker.js.map +1 -1
  851. package/build-module/hooks/dimensions.js +1 -3
  852. package/build-module/hooks/dimensions.js.map +1 -1
  853. package/build-module/hooks/duotone.js +3 -5
  854. package/build-module/hooks/duotone.js.map +1 -1
  855. package/build-module/hooks/font-family.js.map +1 -1
  856. package/build-module/hooks/gap.js.map +1 -1
  857. package/build-module/hooks/generated-class-name.js +1 -0
  858. package/build-module/hooks/generated-class-name.js.map +1 -1
  859. package/build-module/hooks/grid-visualizer.js +14 -14
  860. package/build-module/hooks/grid-visualizer.js.map +1 -1
  861. package/build-module/hooks/layout-child.js +42 -6
  862. package/build-module/hooks/layout-child.js.map +1 -1
  863. package/build-module/hooks/layout.js +1 -3
  864. package/build-module/hooks/layout.js.map +1 -1
  865. package/build-module/hooks/position.js +1 -1
  866. package/build-module/hooks/position.js.map +1 -1
  867. package/build-module/hooks/spacing-visualizer.js.map +1 -1
  868. package/build-module/hooks/style.js +5 -4
  869. package/build-module/hooks/style.js.map +1 -1
  870. package/build-module/hooks/text-align.js.map +1 -1
  871. package/build-module/hooks/typography.native.js +1 -2
  872. package/build-module/hooks/typography.native.js.map +1 -1
  873. package/build-module/hooks/use-bindings-attributes.js +1 -2
  874. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  875. package/build-module/hooks/use-typography-props.js.map +1 -1
  876. package/build-module/hooks/use-zoom-out.js +18 -19
  877. package/build-module/hooks/use-zoom-out.js.map +1 -1
  878. package/build-module/index.js +1 -1
  879. package/build-module/index.js.map +1 -1
  880. package/build-module/layouts/constrained.js +1 -3
  881. package/build-module/layouts/constrained.js.map +1 -1
  882. package/build-module/layouts/flex.js +1 -3
  883. package/build-module/layouts/flex.js.map +1 -1
  884. package/build-module/layouts/grid.js +1 -3
  885. package/build-module/layouts/grid.js.map +1 -1
  886. package/build-module/layouts/utils.js.map +1 -1
  887. package/build-module/private-apis.js +7 -3
  888. package/build-module/private-apis.js.map +1 -1
  889. package/build-module/store/actions.js +6 -38
  890. package/build-module/store/actions.js.map +1 -1
  891. package/build-module/store/defaults.js +1 -1
  892. package/build-module/store/defaults.js.map +1 -1
  893. package/build-module/store/private-actions.js +54 -7
  894. package/build-module/store/private-actions.js.map +1 -1
  895. package/build-module/store/private-selectors.js +9 -20
  896. package/build-module/store/private-selectors.js.map +1 -1
  897. package/build-module/store/reducer.js +17 -22
  898. package/build-module/store/reducer.js.map +1 -1
  899. package/build-module/store/selectors.js +66 -20
  900. package/build-module/store/selectors.js.map +1 -1
  901. package/build-module/utils/block-bindings.js +9 -6
  902. package/build-module/utils/block-bindings.js.map +1 -1
  903. package/build-module/utils/dom.js +16 -1
  904. package/build-module/utils/dom.js.map +1 -1
  905. package/build-module/utils/get-font-styles-and-weights.js +3 -3
  906. package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
  907. package/build-module/utils/get-px-from-css-unit.js +1 -1
  908. package/build-module/utils/get-px-from-css-unit.js.map +1 -1
  909. package/build-module/utils/object.js +1 -0
  910. package/build-module/utils/object.js.map +1 -1
  911. package/build-module/utils/pasting.js.map +1 -1
  912. package/build-module/utils/transform-styles/index.js +3 -2
  913. package/build-module/utils/transform-styles/index.js.map +1 -1
  914. package/build-style/content-rtl.css +19 -27
  915. package/build-style/content.css +19 -27
  916. package/build-style/style-rtl.css +47 -54
  917. package/build-style/style.css +47 -54
  918. package/build-types/utils/dom.d.ts.map +1 -1
  919. package/package.json +34 -33
  920. package/src/autocompleters/block.js +16 -7
  921. package/src/components/block-canvas/index.js +17 -1
  922. package/src/components/block-canvas/style.scss +1 -0
  923. package/src/components/block-card/index.js +3 -3
  924. package/src/components/block-full-height-alignment-control/index.js +1 -1
  925. package/src/components/block-inspector/style.scss +0 -6
  926. package/src/components/block-list/block.js +1 -2
  927. package/src/components/block-list/block.native.js +0 -4
  928. package/src/components/block-list/content.scss +4 -3
  929. package/src/components/block-list/index.js +4 -4
  930. package/src/components/block-list/use-block-props/index.js +0 -2
  931. package/src/components/block-list/use-block-props/use-focus-first-element.js +5 -3
  932. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +12 -4
  933. package/src/components/block-list/use-in-between-inserter.js +1 -1
  934. package/src/components/block-list/zoom-out-separator.js +8 -6
  935. package/src/components/block-patterns-list/stories/fixtures.js +834 -0
  936. package/src/components/block-patterns-list/stories/index.story.js +81 -0
  937. package/src/components/block-patterns-list/style.scss +2 -0
  938. package/src/components/block-patterns-paging/index.js +1 -1
  939. package/src/components/block-popover/index.js +2 -2
  940. package/src/components/block-preview/auto.js +1 -4
  941. package/src/components/block-preview/index.js +2 -2
  942. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -0
  943. package/src/components/block-settings-menu/index.js +3 -0
  944. package/src/components/block-toolbar/change-design.js +133 -0
  945. package/src/components/block-toolbar/index.js +25 -8
  946. package/src/components/block-toolbar/style.scss +16 -0
  947. package/src/components/block-tools/index.js +4 -28
  948. package/src/components/block-tools/insertion-point.js +4 -3
  949. package/src/components/block-tools/style.scss +0 -20
  950. package/src/components/block-tools/use-show-block-tools.js +2 -8
  951. package/src/components/block-tools/zoom-out-mode-inserters.js +25 -40
  952. package/src/components/block-variation-transforms/index.js +2 -2
  953. package/src/components/block-vertical-alignment-control/ui.js +11 -15
  954. package/src/components/border-radius-control/linked-button.js +9 -11
  955. package/src/components/collab/block-comment-icon-slot.js +12 -0
  956. package/src/components/collab/block-comment-icon-toolbar-slot.js +12 -0
  957. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +7 -1
  958. package/src/components/convert-to-group-buttons/toolbar.js +4 -4
  959. package/src/components/global-styles/color-panel.js +2 -10
  960. package/src/components/global-styles/test/use-global-styles-context.native.js +1 -0
  961. package/src/components/global-styles/use-global-styles-context.native.js +6 -0
  962. package/src/components/iframe/content.scss +22 -32
  963. package/src/components/iframe/index.js +62 -15
  964. package/src/components/iframe/style.scss +17 -0
  965. package/src/components/image-size-control/index.js +74 -43
  966. package/src/components/image-size-control/test/index.js +5 -63
  967. package/src/components/inner-blocks/index.js +12 -6
  968. package/src/components/inner-blocks/use-nested-settings-update.js +16 -10
  969. package/src/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +1 -1
  970. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +2 -3
  971. package/src/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
  972. package/src/components/inserter/category-tabs/index.js +17 -13
  973. package/src/components/inserter/menu.js +12 -5
  974. package/src/components/inserter/quick-inserter.js +1 -1
  975. package/src/components/inserter/style.scss +14 -41
  976. package/src/components/inserter-button/index.native.js +1 -1
  977. package/src/components/inspector-controls-tabs/index.js +1 -6
  978. package/src/components/inspector-controls-tabs/utils.js +0 -3
  979. package/src/components/link-control/link-preview.js +15 -8
  980. package/src/components/link-control/search-input.js +4 -5
  981. package/src/components/link-control/search-results.js +2 -13
  982. package/src/components/link-control/test/index.js +147 -70
  983. package/src/components/list-view/appender.js +5 -6
  984. package/src/components/list-view/branch.js +8 -6
  985. package/src/components/list-view/index.js +1 -2
  986. package/src/components/media-replace-flow/test/index.js +1 -1
  987. package/src/components/provider/index.js +1 -3
  988. package/src/components/provider/test/experimental-provider.js +43 -1
  989. package/src/components/responsive-block-control/style.scss +0 -1
  990. package/src/components/rich-text/event-listeners/index.js +4 -2
  991. package/src/components/rich-text/index.native.js +0 -2
  992. package/src/components/rich-text/style.scss +5 -0
  993. package/src/components/spacing-sizes-control/index.js +3 -3
  994. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -4
  995. package/src/components/spacing-sizes-control/linked-button.js +2 -12
  996. package/src/components/tool-selector/index.js +6 -5
  997. package/src/components/url-input/index.js +1 -1
  998. package/src/components/use-block-commands/index.js +1 -1
  999. package/src/components/use-block-drop-zone/index.js +5 -5
  1000. package/src/components/use-block-drop-zone/index.native.js +0 -1
  1001. package/src/components/use-moving-animation/index.js +0 -1
  1002. package/src/components/use-resize-canvas/index.js +1 -3
  1003. package/src/components/use-settings/index.js +0 -1
  1004. package/src/components/writing-flow/index.js +5 -3
  1005. package/src/components/writing-flow/use-tab-nav.js +27 -4
  1006. package/src/hooks/block-bindings.js +48 -31
  1007. package/src/hooks/contrast-checker.js +0 -1
  1008. package/src/hooks/duotone.js +2 -2
  1009. package/src/hooks/grid-visualizer.js +23 -9
  1010. package/src/hooks/layout-child.js +48 -3
  1011. package/src/hooks/style.js +7 -3
  1012. package/src/hooks/use-zoom-out.js +20 -24
  1013. package/src/index.js +0 -1
  1014. package/src/private-apis.js +6 -1
  1015. package/src/store/actions.js +5 -53
  1016. package/src/store/defaults.js +2 -1
  1017. package/src/store/private-actions.js +71 -8
  1018. package/src/store/private-selectors.js +9 -19
  1019. package/src/store/reducer.js +25 -28
  1020. package/src/store/selectors.js +82 -20
  1021. package/src/store/test/actions.js +41 -0
  1022. package/src/store/test/private-selectors.js +7 -1
  1023. package/src/store/test/reducer.js +23 -0
  1024. package/src/store/test/selectors.js +13 -2
  1025. package/src/style.scss +1 -0
  1026. package/src/utils/block-bindings.js +9 -6
  1027. package/src/utils/dom.js +22 -2
  1028. package/src/utils/get-font-styles-and-weights.js +2 -2
  1029. package/src/utils/test/use-block-bindings-utils.js +174 -0
  1030. package/src/utils/transform-styles/index.js +3 -2
  1031. package/tsconfig.tsbuildinfo +1 -1
  1032. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +0 -57
  1033. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +0 -1
  1034. package/build/components/block-toolbar/shuffle.js +0 -110
  1035. package/build/components/block-toolbar/shuffle.js.map +0 -1
  1036. package/build/components/block-tools/zoom-out-popover.js +0 -57
  1037. package/build/components/block-tools/zoom-out-popover.js.map +0 -1
  1038. package/build/components/block-tools/zoom-out-toolbar.js +0 -149
  1039. package/build/components/block-tools/zoom-out-toolbar.js.map +0 -1
  1040. package/build/components/block-vertical-alignment-control/icons.js +0 -48
  1041. package/build/components/block-vertical-alignment-control/icons.js.map +0 -1
  1042. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +0 -51
  1043. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +0 -1
  1044. package/build-module/components/block-toolbar/shuffle.js +0 -103
  1045. package/build-module/components/block-toolbar/shuffle.js.map +0 -1
  1046. package/build-module/components/block-tools/zoom-out-popover.js +0 -48
  1047. package/build-module/components/block-tools/zoom-out-popover.js.map +0 -1
  1048. package/build-module/components/block-tools/zoom-out-toolbar.js +0 -142
  1049. package/build-module/components/block-tools/zoom-out-toolbar.js.map +0 -1
  1050. package/build-module/components/block-vertical-alignment-control/icons.js +0 -41
  1051. package/build-module/components/block-vertical-alignment-control/icons.js.map +0 -1
  1052. package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +0 -65
  1053. package/src/components/block-toolbar/shuffle.js +0 -111
  1054. package/src/components/block-tools/zoom-out-popover.js +0 -46
  1055. package/src/components/block-tools/zoom-out-toolbar.js +0 -156
  1056. package/src/components/block-vertical-alignment-control/icons.js +0 -34
@@ -1 +1 @@
1
- {"version":3,"names":["__","Fragment","useMemo","PanelBody","ToggleControl","createBlock","store","blocksStore","useDispatch","useSelect","InspectorControls","blockEditorStore","jsx","_jsx","jsxs","_jsxs","EMPTY_OBJECT","BlockHooksControlPure","name","clientId","metadata","ignoredHookedBlocks","blockTypes","select","getBlockTypes","hookedBlocksForCurrentBlock","filter","blockName","blockHooks","includes","hookedBlockClientIds","getBlocks","getBlockRootClientId","getGlobalBlockCount","rootClientId","_hookedBlockClientIds","reduce","clientIds","block","relativePosition","candidates","undefined","hookedBlock","find","candidate","Object","values","length","getBlockIndex","getBlockCount","insertBlock","removeBlock","groupedHookedBlocks","groups","namespace","split","push","insertBlockIntoDesignatedLocation","blockIndex","innerBlocksLength","children","className","title","initialOpen","keys","map","vendor","checked","__nextHasNoMarginBottom","label","onChange","edit","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/block-hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Fragment, useMemo } from '@wordpress/element';\nimport { PanelBody, ToggleControl } from '@wordpress/components';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { InspectorControls } from '../components';\nimport { store as blockEditorStore } from '../store';\n\nconst EMPTY_OBJECT = {};\n\nfunction BlockHooksControlPure( {\n\tname,\n\tclientId,\n\tmetadata: { ignoredHookedBlocks = [] } = {},\n} ) {\n\tconst blockTypes = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockTypes(),\n\t\t[]\n\t);\n\n\t// A hooked block added via a filter will not be exposed through a block\n\t// type's `blockHooks` property; however, if the containing layout has been\n\t// modified, it will be present in the anchor block's `ignoredHookedBlocks`\n\t// metadata.\n\tconst hookedBlocksForCurrentBlock = useMemo(\n\t\t() =>\n\t\t\tblockTypes?.filter(\n\t\t\t\t( { name: blockName, blockHooks } ) =>\n\t\t\t\t\t( blockHooks && name in blockHooks ) ||\n\t\t\t\t\tignoredHookedBlocks.includes( blockName )\n\t\t\t),\n\t\t[ blockTypes, name, ignoredHookedBlocks ]\n\t);\n\n\tconst hookedBlockClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks, getBlockRootClientId, getGlobalBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst _hookedBlockClientIds = hookedBlocksForCurrentBlock.reduce(\n\t\t\t\t( clientIds, block ) => {\n\t\t\t\t\t// If the block doesn't exist anywhere in the block tree,\n\t\t\t\t\t// we know that we have to set the toggle to disabled.\n\t\t\t\t\tif ( getGlobalBlockCount( block.name ) === 0 ) {\n\t\t\t\t\t\treturn clientIds;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst relativePosition = block?.blockHooks?.[ name ];\n\t\t\t\t\tlet candidates;\n\n\t\t\t\t\tswitch ( relativePosition ) {\n\t\t\t\t\t\tcase 'before':\n\t\t\t\t\t\tcase 'after':\n\t\t\t\t\t\t\t// Any of the current block's siblings (with the right block type) qualifies\n\t\t\t\t\t\t\t// as a hooked block (inserted `before` or `after` the current one), as the block\n\t\t\t\t\t\t\t// might've been automatically inserted and then moved around a bit by the user.\n\t\t\t\t\t\t\tcandidates = getBlocks( rootClientId );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'first_child':\n\t\t\t\t\t\tcase 'last_child':\n\t\t\t\t\t\t\t// Any of the current block's child blocks (with the right block type) qualifies\n\t\t\t\t\t\t\t// as a hooked first or last child block, as the block might've been automatically\n\t\t\t\t\t\t\t// inserted and then moved around a bit by the user.\n\t\t\t\t\t\t\tcandidates = getBlocks( clientId );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase undefined:\n\t\t\t\t\t\t\t// If we haven't found a blockHooks field with a relative position for the hooked\n\t\t\t\t\t\t\t// block, it means that it was added by a filter. In this case, we look for the block\n\t\t\t\t\t\t\t// both among the current block's siblings and its children.\n\t\t\t\t\t\t\tcandidates = [\n\t\t\t\t\t\t\t\t...getBlocks( rootClientId ),\n\t\t\t\t\t\t\t\t...getBlocks( clientId ),\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst hookedBlock = candidates?.find(\n\t\t\t\t\t\t( candidate ) => candidate.name === block.name\n\t\t\t\t\t);\n\n\t\t\t\t\t// If the block exists in the designated location, we consider it hooked\n\t\t\t\t\t// and show the toggle as enabled.\n\t\t\t\t\tif ( hookedBlock ) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...clientIds,\n\t\t\t\t\t\t\t[ block.name ]: hookedBlock.clientId,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\t// If no hooked block was found in any of its designated locations,\n\t\t\t\t\t// we set the toggle to disabled.\n\t\t\t\t\treturn clientIds;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\n\t\t\tif ( Object.values( _hookedBlockClientIds ).length > 0 ) {\n\t\t\t\treturn _hookedBlockClientIds;\n\t\t\t}\n\n\t\t\treturn EMPTY_OBJECT;\n\t\t},\n\t\t[ hookedBlocksForCurrentBlock, name, clientId ]\n\t);\n\n\tconst { getBlockIndex, getBlockCount, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { insertBlock, removeBlock } = useDispatch( blockEditorStore );\n\n\tif ( ! hookedBlocksForCurrentBlock.length ) {\n\t\treturn null;\n\t}\n\n\t// Group by block namespace (i.e. prefix before the slash).\n\tconst groupedHookedBlocks = hookedBlocksForCurrentBlock.reduce(\n\t\t( groups, block ) => {\n\t\t\tconst [ namespace ] = block.name.split( '/' );\n\t\t\tif ( ! groups[ namespace ] ) {\n\t\t\t\tgroups[ namespace ] = [];\n\t\t\t}\n\t\t\tgroups[ namespace ].push( block );\n\t\t\treturn groups;\n\t\t},\n\t\t{}\n\t);\n\n\tconst insertBlockIntoDesignatedLocation = ( block, relativePosition ) => {\n\t\tconst blockIndex = getBlockIndex( clientId );\n\t\tconst innerBlocksLength = getBlockCount( clientId );\n\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\tswitch ( relativePosition ) {\n\t\t\tcase 'before':\n\t\t\tcase 'after':\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\trelativePosition === 'after' ? blockIndex + 1 : blockIndex,\n\t\t\t\t\trootClientId, // Insert as a child of the current block's parent\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\n\t\t\tcase 'first_child':\n\t\t\tcase 'last_child':\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\t// TODO: It'd be great if insertBlock() would accept negative indices for insertion.\n\t\t\t\t\trelativePosition === 'first_child' ? 0 : innerBlocksLength,\n\t\t\t\t\tclientId, // Insert as a child of the current block.\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\n\t\t\tcase undefined:\n\t\t\t\t// If we do not know the relative position, it is because the block was\n\t\t\t\t// added via a filter. In this case, we default to inserting it after the\n\t\t\t\t// current block.\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\tblockIndex + 1,\n\t\t\t\t\trootClientId, // Insert as a child of the current block's parent\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<PanelBody\n\t\t\t\tclassName=\"block-editor-hooks__block-hooks\"\n\t\t\t\ttitle={ __( 'Plugins' ) }\n\t\t\t\tinitialOpen\n\t\t\t>\n\t\t\t\t<p className=\"block-editor-hooks__block-hooks-helptext\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Manage the inclusion of blocks added automatically by plugins.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t{ Object.keys( groupedHookedBlocks ).map( ( vendor ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Fragment key={ vendor }>\n\t\t\t\t\t\t\t<h3>{ vendor }</h3>\n\t\t\t\t\t\t\t{ groupedHookedBlocks[ vendor ].map( ( block ) => {\n\t\t\t\t\t\t\t\tconst checked =\n\t\t\t\t\t\t\t\t\tblock.name in hookedBlockClientIds;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tchecked={ checked }\n\t\t\t\t\t\t\t\t\t\tkey={ block.title }\n\t\t\t\t\t\t\t\t\t\tlabel={ block.title }\n\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\tif ( ! checked ) {\n\t\t\t\t\t\t\t\t\t\t\t\t// Create and insert block.\n\t\t\t\t\t\t\t\t\t\t\t\tconst relativePosition =\n\t\t\t\t\t\t\t\t\t\t\t\t\tblock.blockHooks[ name ];\n\t\t\t\t\t\t\t\t\t\t\t\tinsertBlockIntoDesignatedLocation(\n\t\t\t\t\t\t\t\t\t\t\t\t\tcreateBlock( block.name ),\n\t\t\t\t\t\t\t\t\t\t\t\t\trelativePosition\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Remove block.\n\t\t\t\t\t\t\t\t\t\t\tremoveBlock(\n\t\t\t\t\t\t\t\t\t\t\t\thookedBlockClientIds[\n\t\t\t\t\t\t\t\t\t\t\t\t\tblock.name\n\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t\t\t\t);\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);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n}\n\nexport default {\n\tedit: BlockHooksControlPure,\n\tattributeKeys: [ 'metadata' ],\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__","Fragment","useMemo","PanelBody","ToggleControl","createBlock","store","blocksStore","useDispatch","useSelect","InspectorControls","blockEditorStore","jsx","_jsx","jsxs","_jsxs","EMPTY_OBJECT","BlockHooksControlPure","name","clientId","metadata","ignoredHookedBlocks","blockTypes","select","getBlockTypes","hookedBlocksForCurrentBlock","filter","blockName","blockHooks","includes","hookedBlockClientIds","getBlocks","getBlockRootClientId","getGlobalBlockCount","rootClientId","_hookedBlockClientIds","reduce","clientIds","block","relativePosition","candidates","undefined","hookedBlock","find","candidate","Object","values","length","getBlockIndex","getBlockCount","insertBlock","removeBlock","groupedHookedBlocks","groups","namespace","split","push","insertBlockIntoDesignatedLocation","blockIndex","innerBlocksLength","children","className","title","initialOpen","keys","map","vendor","checked","__nextHasNoMarginBottom","label","onChange","edit","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/block-hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Fragment, useMemo } from '@wordpress/element';\nimport { PanelBody, ToggleControl } from '@wordpress/components';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { InspectorControls } from '../components';\nimport { store as blockEditorStore } from '../store';\n\nconst EMPTY_OBJECT = {};\n\nfunction BlockHooksControlPure( {\n\tname,\n\tclientId,\n\tmetadata: { ignoredHookedBlocks = [] } = {},\n} ) {\n\tconst blockTypes = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockTypes(),\n\t\t[]\n\t);\n\n\t// A hooked block added via a filter will not be exposed through a block\n\t// type's `blockHooks` property; however, if the containing layout has been\n\t// modified, it will be present in the anchor block's `ignoredHookedBlocks`\n\t// metadata.\n\tconst hookedBlocksForCurrentBlock = useMemo(\n\t\t() =>\n\t\t\tblockTypes?.filter(\n\t\t\t\t( { name: blockName, blockHooks } ) =>\n\t\t\t\t\t( blockHooks && name in blockHooks ) ||\n\t\t\t\t\tignoredHookedBlocks.includes( blockName )\n\t\t\t),\n\t\t[ blockTypes, name, ignoredHookedBlocks ]\n\t);\n\n\tconst hookedBlockClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks, getBlockRootClientId, getGlobalBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst _hookedBlockClientIds = hookedBlocksForCurrentBlock.reduce(\n\t\t\t\t( clientIds, block ) => {\n\t\t\t\t\t// If the block doesn't exist anywhere in the block tree,\n\t\t\t\t\t// we know that we have to set the toggle to disabled.\n\t\t\t\t\tif ( getGlobalBlockCount( block.name ) === 0 ) {\n\t\t\t\t\t\treturn clientIds;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst relativePosition = block?.blockHooks?.[ name ];\n\t\t\t\t\tlet candidates;\n\n\t\t\t\t\tswitch ( relativePosition ) {\n\t\t\t\t\t\tcase 'before':\n\t\t\t\t\t\tcase 'after':\n\t\t\t\t\t\t\t// Any of the current block's siblings (with the right block type) qualifies\n\t\t\t\t\t\t\t// as a hooked block (inserted `before` or `after` the current one), as the block\n\t\t\t\t\t\t\t// might've been automatically inserted and then moved around a bit by the user.\n\t\t\t\t\t\t\tcandidates = getBlocks( rootClientId );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'first_child':\n\t\t\t\t\t\tcase 'last_child':\n\t\t\t\t\t\t\t// Any of the current block's child blocks (with the right block type) qualifies\n\t\t\t\t\t\t\t// as a hooked first or last child block, as the block might've been automatically\n\t\t\t\t\t\t\t// inserted and then moved around a bit by the user.\n\t\t\t\t\t\t\tcandidates = getBlocks( clientId );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase undefined:\n\t\t\t\t\t\t\t// If we haven't found a blockHooks field with a relative position for the hooked\n\t\t\t\t\t\t\t// block, it means that it was added by a filter. In this case, we look for the block\n\t\t\t\t\t\t\t// both among the current block's siblings and its children.\n\t\t\t\t\t\t\tcandidates = [\n\t\t\t\t\t\t\t\t...getBlocks( rootClientId ),\n\t\t\t\t\t\t\t\t...getBlocks( clientId ),\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst hookedBlock = candidates?.find(\n\t\t\t\t\t\t( candidate ) => candidate.name === block.name\n\t\t\t\t\t);\n\n\t\t\t\t\t// If the block exists in the designated location, we consider it hooked\n\t\t\t\t\t// and show the toggle as enabled.\n\t\t\t\t\tif ( hookedBlock ) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...clientIds,\n\t\t\t\t\t\t\t[ block.name ]: hookedBlock.clientId,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\t// If no hooked block was found in any of its designated locations,\n\t\t\t\t\t// we set the toggle to disabled.\n\t\t\t\t\treturn clientIds;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\n\t\t\tif ( Object.values( _hookedBlockClientIds ).length > 0 ) {\n\t\t\t\treturn _hookedBlockClientIds;\n\t\t\t}\n\n\t\t\treturn EMPTY_OBJECT;\n\t\t},\n\t\t[ hookedBlocksForCurrentBlock, name, clientId ]\n\t);\n\n\tconst { getBlockIndex, getBlockCount, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { insertBlock, removeBlock } = useDispatch( blockEditorStore );\n\n\tif ( ! hookedBlocksForCurrentBlock.length ) {\n\t\treturn null;\n\t}\n\n\t// Group by block namespace (i.e. prefix before the slash).\n\tconst groupedHookedBlocks = hookedBlocksForCurrentBlock.reduce(\n\t\t( groups, block ) => {\n\t\t\tconst [ namespace ] = block.name.split( '/' );\n\t\t\tif ( ! groups[ namespace ] ) {\n\t\t\t\tgroups[ namespace ] = [];\n\t\t\t}\n\t\t\tgroups[ namespace ].push( block );\n\t\t\treturn groups;\n\t\t},\n\t\t{}\n\t);\n\n\tconst insertBlockIntoDesignatedLocation = ( block, relativePosition ) => {\n\t\tconst blockIndex = getBlockIndex( clientId );\n\t\tconst innerBlocksLength = getBlockCount( clientId );\n\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\tswitch ( relativePosition ) {\n\t\t\tcase 'before':\n\t\t\tcase 'after':\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\trelativePosition === 'after' ? blockIndex + 1 : blockIndex,\n\t\t\t\t\trootClientId, // Insert as a child of the current block's parent\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\n\t\t\tcase 'first_child':\n\t\t\tcase 'last_child':\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\t// TODO: It'd be great if insertBlock() would accept negative indices for insertion.\n\t\t\t\t\trelativePosition === 'first_child' ? 0 : innerBlocksLength,\n\t\t\t\t\tclientId, // Insert as a child of the current block.\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\n\t\t\tcase undefined:\n\t\t\t\t// If we do not know the relative position, it is because the block was\n\t\t\t\t// added via a filter. In this case, we default to inserting it after the\n\t\t\t\t// current block.\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\tblockIndex + 1,\n\t\t\t\t\trootClientId, // Insert as a child of the current block's parent\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<PanelBody\n\t\t\t\tclassName=\"block-editor-hooks__block-hooks\"\n\t\t\t\ttitle={ __( 'Plugins' ) }\n\t\t\t\tinitialOpen\n\t\t\t>\n\t\t\t\t<p className=\"block-editor-hooks__block-hooks-helptext\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Manage the inclusion of blocks added automatically by plugins.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t{ Object.keys( groupedHookedBlocks ).map( ( vendor ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Fragment key={ vendor }>\n\t\t\t\t\t\t\t<h3>{ vendor }</h3>\n\t\t\t\t\t\t\t{ groupedHookedBlocks[ vendor ].map( ( block ) => {\n\t\t\t\t\t\t\t\tconst checked =\n\t\t\t\t\t\t\t\t\tblock.name in hookedBlockClientIds;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tchecked={ checked }\n\t\t\t\t\t\t\t\t\t\tkey={ block.title }\n\t\t\t\t\t\t\t\t\t\tlabel={ block.title }\n\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\tif ( ! checked ) {\n\t\t\t\t\t\t\t\t\t\t\t\t// Create and insert block.\n\t\t\t\t\t\t\t\t\t\t\t\tconst relativePosition =\n\t\t\t\t\t\t\t\t\t\t\t\t\tblock.blockHooks[ name ];\n\t\t\t\t\t\t\t\t\t\t\t\tinsertBlockIntoDesignatedLocation(\n\t\t\t\t\t\t\t\t\t\t\t\t\tcreateBlock( block.name ),\n\t\t\t\t\t\t\t\t\t\t\t\t\trelativePosition\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Remove block.\n\t\t\t\t\t\t\t\t\t\t\tremoveBlock(\n\t\t\t\t\t\t\t\t\t\t\t\thookedBlockClientIds[\n\t\t\t\t\t\t\t\t\t\t\t\t\tblock.name\n\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t\t\t\t);\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);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n}\n\nexport default {\n\tedit: BlockHooksControlPure,\n\tattributeKeys: [ 'metadata' ],\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
@@ -14,8 +14,7 @@ import { getValueFromObjectPath } from '../utils/object';
14
14
  import { store as blockEditorStore } from '../store';
15
15
  import { globalStylesDataKey } from '../store/private-keys';
16
16
  import { unlock } from '../lock-unlock';
17
- import { jsx as _jsx } from "react/jsx-runtime";
18
- import { Fragment as _Fragment } from "react/jsx-runtime";
17
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
19
18
  const VARIATION_PREFIX = 'is-style-';
20
19
  function getVariationMatches(className) {
21
20
  if (!className) {
@@ -1 +1 @@
1
- {"version":3,"names":["getBlockTypes","store","blocksStore","useSelect","useContext","useMemo","GlobalStylesContext","toStyles","getBlockSelectors","usePrivateStyleOverride","getValueFromObjectPath","blockEditorStore","globalStylesDataKey","unlock","jsx","_jsx","Fragment","_Fragment","VARIATION_PREFIX","getVariationMatches","className","split","reduce","matches","name","startsWith","match","slice","length","push","getVariationNameFromClass","registeredStyles","variation","some","style","OverrideStyles","override","__unstableBlockStyleVariationOverridesWithConfig","config","getBlockStyles","overrides","select","getStyleOverrides","getBlockName","overridesWithConfig","newOverrides","overriddenClientIds","clientId","includes","blockName","configStyles","styles","blocks","variations","variationConfig","settings","blockSelectors","hasBlockGapSupport","hasFallbackGapSupport","disableLayoutStyles","disableRootPadding","variationStyles","blockGap","blockStyles","layoutStyles","marginReset","presets","rootPadding","id","css","__unstableType","children","map","getVariationStylesWithRefValues","globalStyles","replaceRefs","Object","keys","forEach","key","value","ref","undefined","trim","refValue","JSON","parse","stringify","useBlockStyleVariation","merged","mergedConfig","globalSettings","getSettings","__experimentalFeatures","_mergedConfig$setting","_mergedConfig$styles","_mergedConfig$setting2","useBlockProps","variationClass","hasSupport","attributeKeys","isMatch"],"sources":["@wordpress/block-editor/src/hooks/block-style-variation.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockTypes, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tGlobalStylesContext,\n\ttoStyles,\n\tgetBlockSelectors,\n} from '../components/global-styles';\nimport { usePrivateStyleOverride } from './utils';\nimport { getValueFromObjectPath } from '../utils/object';\nimport { store as blockEditorStore } from '../store';\nimport { globalStylesDataKey } from '../store/private-keys';\nimport { unlock } from '../lock-unlock';\n\nconst VARIATION_PREFIX = 'is-style-';\n\nfunction getVariationMatches( className ) {\n\tif ( ! className ) {\n\t\treturn [];\n\t}\n\treturn className.split( /\\s+/ ).reduce( ( matches, name ) => {\n\t\tif ( name.startsWith( VARIATION_PREFIX ) ) {\n\t\t\tconst match = name.slice( VARIATION_PREFIX.length );\n\t\t\tif ( match !== 'default' ) {\n\t\t\t\tmatches.push( match );\n\t\t\t}\n\t\t}\n\t\treturn matches;\n\t}, [] );\n}\n\n/**\n * Get the first block style variation that has been registered from the class string.\n *\n * @param {string} className CSS class string for a block.\n * @param {Array} registeredStyles Currently registered block styles.\n *\n * @return {string|null} The name of the first registered variation.\n */\nfunction getVariationNameFromClass( className, registeredStyles = [] ) {\n\t// The global flag affects how capturing groups work in JS. So the regex\n\t// below will only return full CSS classes not just the variation name.\n\tconst matches = getVariationMatches( className );\n\n\tif ( ! matches ) {\n\t\treturn null;\n\t}\n\n\tfor ( const variation of matches ) {\n\t\tif ( registeredStyles.some( ( style ) => style.name === variation ) ) {\n\t\t\treturn variation;\n\t\t}\n\t}\n\treturn null;\n}\n\n// A helper component to apply a style override using the useStyleOverride hook.\nfunction OverrideStyles( { override } ) {\n\tusePrivateStyleOverride( override );\n}\n\n/**\n * This component is used to generate new block style variation overrides\n * based on an incoming theme config. If a matching style is found in the config,\n * a new override is created and returned. The overrides can be used in conjunction with\n * useStyleOverride to apply the new styles to the editor. Its use is\n * subject to change.\n *\n * @param {Object} props Props.\n * @param {Object} props.config A global styles object, containing settings and styles.\n * @return {JSX.Element|undefined} An array of new block variation overrides.\n */\nexport function __unstableBlockStyleVariationOverridesWithConfig( { config } ) {\n\tconst { getBlockStyles, overrides } = useSelect(\n\t\t( select ) => ( {\n\t\t\tgetBlockStyles: select( blocksStore ).getBlockStyles,\n\t\t\toverrides: unlock( select( blockEditorStore ) ).getStyleOverrides(),\n\t\t} ),\n\t\t[]\n\t);\n\tconst { getBlockName } = useSelect( blockEditorStore );\n\n\tconst overridesWithConfig = useMemo( () => {\n\t\tif ( ! overrides?.length ) {\n\t\t\treturn;\n\t\t}\n\t\tconst newOverrides = [];\n\t\tconst overriddenClientIds = [];\n\t\tfor ( const [ , override ] of overrides ) {\n\t\t\tif (\n\t\t\t\toverride?.variation &&\n\t\t\t\toverride?.clientId &&\n\t\t\t\t/*\n\t\t\t\t * Because this component overwrites existing style overrides,\n\t\t\t\t * filter out any overrides that are already present in the store.\n\t\t\t\t */\n\t\t\t\t! overriddenClientIds.includes( override.clientId )\n\t\t\t) {\n\t\t\t\tconst blockName = getBlockName( override.clientId );\n\t\t\t\tconst configStyles =\n\t\t\t\t\tconfig?.styles?.blocks?.[ blockName ]?.variations?.[\n\t\t\t\t\t\toverride.variation\n\t\t\t\t\t];\n\t\t\t\tif ( configStyles ) {\n\t\t\t\t\tconst variationConfig = {\n\t\t\t\t\t\tsettings: config?.settings,\n\t\t\t\t\t\t// The variation style data is all that is needed to generate\n\t\t\t\t\t\t// the styles for the current application to a block. The variation\n\t\t\t\t\t\t// name is updated to match the instance specific class name.\n\t\t\t\t\t\tstyles: {\n\t\t\t\t\t\t\tblocks: {\n\t\t\t\t\t\t\t\t[ blockName ]: {\n\t\t\t\t\t\t\t\t\tvariations: {\n\t\t\t\t\t\t\t\t\t\t[ `${ override.variation }-${ override.clientId }` ]:\n\t\t\t\t\t\t\t\t\t\t\tconfigStyles,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t\tconst blockSelectors = getBlockSelectors(\n\t\t\t\t\t\tgetBlockTypes(),\n\t\t\t\t\t\tgetBlockStyles,\n\t\t\t\t\t\toverride.clientId\n\t\t\t\t\t);\n\t\t\t\t\tconst hasBlockGapSupport = false;\n\t\t\t\t\tconst hasFallbackGapSupport = true;\n\t\t\t\t\tconst disableLayoutStyles = true;\n\t\t\t\t\tconst disableRootPadding = true;\n\t\t\t\t\tconst variationStyles = toStyles(\n\t\t\t\t\t\tvariationConfig,\n\t\t\t\t\t\tblockSelectors,\n\t\t\t\t\t\thasBlockGapSupport,\n\t\t\t\t\t\thasFallbackGapSupport,\n\t\t\t\t\t\tdisableLayoutStyles,\n\t\t\t\t\t\tdisableRootPadding,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tblockGap: false,\n\t\t\t\t\t\t\tblockStyles: true,\n\t\t\t\t\t\t\tlayoutStyles: false,\n\t\t\t\t\t\t\tmarginReset: false,\n\t\t\t\t\t\t\tpresets: false,\n\t\t\t\t\t\t\trootPadding: false,\n\t\t\t\t\t\t\tvariationStyles: true,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\tnewOverrides.push( {\n\t\t\t\t\t\tid: `${ override.variation }-${ override.clientId }`,\n\t\t\t\t\t\tcss: variationStyles,\n\t\t\t\t\t\t__unstableType: 'variation',\n\t\t\t\t\t\tvariation: override.variation,\n\t\t\t\t\t\t// The clientId will be stored with the override and used to ensure\n\t\t\t\t\t\t// the order of overrides matches the order of blocks so that the\n\t\t\t\t\t\t// correct CSS cascade is maintained.\n\t\t\t\t\t\tclientId: override.clientId,\n\t\t\t\t\t} );\n\t\t\t\t\toverriddenClientIds.push( override.clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn newOverrides;\n\t}, [ config, overrides, getBlockStyles, getBlockName ] );\n\n\tif ( ! overridesWithConfig || ! overridesWithConfig.length ) {\n\t\treturn;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ overridesWithConfig.map( ( override ) => (\n\t\t\t\t<OverrideStyles key={ override.id } override={ override } />\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\n/**\n * Retrieves any variation styles data and resolves any referenced values.\n *\n * @param {Object} globalStyles A complete global styles object, containing settings and styles.\n * @param {string} name The name of the desired block type.\n * @param {variation} variation The of the block style variation to retrieve data for.\n *\n * @return {Object|undefined} The global styles data for the specified variation.\n */\nexport function getVariationStylesWithRefValues(\n\tglobalStyles,\n\tname,\n\tvariation\n) {\n\tif ( ! globalStyles?.styles?.blocks?.[ name ]?.variations?.[ variation ] ) {\n\t\treturn;\n\t}\n\n\t// Helper to recursively look for `ref` values to resolve.\n\tconst replaceRefs = ( variationStyles ) => {\n\t\tObject.keys( variationStyles ).forEach( ( key ) => {\n\t\t\tconst value = variationStyles[ key ];\n\n\t\t\t// Only process objects.\n\t\t\tif ( typeof value === 'object' && value !== null ) {\n\t\t\t\t// Process `ref` value if present.\n\t\t\t\tif ( value.ref !== undefined ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof value.ref !== 'string' ||\n\t\t\t\t\t\tvalue.ref.trim() === ''\n\t\t\t\t\t) {\n\t\t\t\t\t\t// Remove invalid ref.\n\t\t\t\t\t\tdelete variationStyles[ key ];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Resolve `ref` value.\n\t\t\t\t\t\tconst refValue = getValueFromObjectPath(\n\t\t\t\t\t\t\tglobalStyles,\n\t\t\t\t\t\t\tvalue.ref\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif ( refValue ) {\n\t\t\t\t\t\t\tvariationStyles[ key ] = refValue;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdelete variationStyles[ key ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Recursively resolve `ref` values in nested objects.\n\t\t\t\t\treplaceRefs( value );\n\n\t\t\t\t\t// After recursion, if value is empty due to explicitly\n\t\t\t\t\t// `undefined` ref value, remove it.\n\t\t\t\t\tif ( Object.keys( value ).length === 0 ) {\n\t\t\t\t\t\tdelete variationStyles[ key ];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t};\n\n\t// Deep clone variation node to avoid mutating it within global styles and losing refs.\n\tconst styles = JSON.parse(\n\t\tJSON.stringify(\n\t\t\tglobalStyles.styles.blocks[ name ].variations[ variation ]\n\t\t)\n\t);\n\treplaceRefs( styles );\n\n\treturn styles;\n}\n\nfunction useBlockStyleVariation( name, variation, clientId ) {\n\t// Prefer global styles data in GlobalStylesContext, which are available\n\t// if in the site editor. Otherwise fall back to whatever is in the\n\t// editor settings and available in the post editor.\n\tconst { merged: mergedConfig } = useContext( GlobalStylesContext );\n\tconst { globalSettings, globalStyles } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\treturn {\n\t\t\tglobalSettings: settings.__experimentalFeatures,\n\t\t\tglobalStyles: settings[ globalStylesDataKey ],\n\t\t};\n\t}, [] );\n\n\treturn useMemo( () => {\n\t\tconst variationStyles = getVariationStylesWithRefValues(\n\t\t\t{\n\t\t\t\tsettings: mergedConfig?.settings ?? globalSettings,\n\t\t\t\tstyles: mergedConfig?.styles ?? globalStyles,\n\t\t\t},\n\t\t\tname,\n\t\t\tvariation\n\t\t);\n\n\t\treturn {\n\t\t\tsettings: mergedConfig?.settings ?? globalSettings,\n\t\t\t// The variation style data is all that is needed to generate\n\t\t\t// the styles for the current application to a block. The variation\n\t\t\t// name is updated to match the instance specific class name.\n\t\t\tstyles: {\n\t\t\t\tblocks: {\n\t\t\t\t\t[ name ]: {\n\t\t\t\t\t\tvariations: {\n\t\t\t\t\t\t\t[ `${ variation }-${ clientId }` ]: variationStyles,\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\t\tmergedConfig,\n\t\tglobalSettings,\n\t\tglobalStyles,\n\t\tvariation,\n\t\tclientId,\n\t\tname,\n\t] );\n}\n\n// Rather than leveraging `useInstanceId` here, the `clientId` is used.\n// This is so that the variation style override's ID is predictable\n// when the order of applied style variations changes.\nfunction useBlockProps( { name, className, clientId } ) {\n\tconst { getBlockStyles } = useSelect( blocksStore );\n\n\tconst registeredStyles = getBlockStyles( name );\n\tconst variation = getVariationNameFromClass( className, registeredStyles );\n\tconst variationClass = `${ VARIATION_PREFIX }${ variation }-${ clientId }`;\n\n\tconst { settings, styles } = useBlockStyleVariation(\n\t\tname,\n\t\tvariation,\n\t\tclientId\n\t);\n\n\tconst variationStyles = useMemo( () => {\n\t\tif ( ! variation ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst variationConfig = { settings, styles };\n\t\tconst blockSelectors = getBlockSelectors(\n\t\t\tgetBlockTypes(),\n\t\t\tgetBlockStyles,\n\t\t\tclientId\n\t\t);\n\t\tconst hasBlockGapSupport = false;\n\t\tconst hasFallbackGapSupport = true;\n\t\tconst disableLayoutStyles = true;\n\t\tconst disableRootPadding = true;\n\n\t\treturn toStyles(\n\t\t\tvariationConfig,\n\t\t\tblockSelectors,\n\t\t\thasBlockGapSupport,\n\t\t\thasFallbackGapSupport,\n\t\t\tdisableLayoutStyles,\n\t\t\tdisableRootPadding,\n\t\t\t{\n\t\t\t\tblockGap: false,\n\t\t\t\tblockStyles: true,\n\t\t\t\tlayoutStyles: false,\n\t\t\t\tmarginReset: false,\n\t\t\t\tpresets: false,\n\t\t\t\trootPadding: false,\n\t\t\t\tvariationStyles: true,\n\t\t\t}\n\t\t);\n\t}, [ variation, settings, styles, getBlockStyles, clientId ] );\n\n\tusePrivateStyleOverride( {\n\t\tid: `variation-${ clientId }`,\n\t\tcss: variationStyles,\n\t\t__unstableType: 'variation',\n\t\tvariation,\n\t\t// The clientId will be stored with the override and used to ensure\n\t\t// the order of overrides matches the order of blocks so that the\n\t\t// correct CSS cascade is maintained.\n\t\tclientId,\n\t} );\n\n\treturn variation ? { className: variationClass } : {};\n}\n\nexport default {\n\thasSupport: () => true,\n\tattributeKeys: [ 'className' ],\n\tisMatch: ( { className } ) => getVariationMatches( className ).length > 0,\n\tuseBlockProps,\n};\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,aAAa,EAAEC,KAAK,IAAIC,WAAW,QAAQ,mBAAmB;AACvE,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,UAAU,EAAEC,OAAO,QAAQ,oBAAoB;;AAExD;AACA;AACA;AACA,SACCC,mBAAmB,EACnBC,QAAQ,EACRC,iBAAiB,QACX,6BAA6B;AACpC,SAASC,uBAAuB,QAAQ,SAAS;AACjD,SAASC,sBAAsB,QAAQ,iBAAiB;AACxD,SAAST,KAAK,IAAIU,gBAAgB,QAAQ,UAAU;AACpD,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,MAAM,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAExC,MAAMC,gBAAgB,GAAG,WAAW;AAEpC,SAASC,mBAAmBA,CAAEC,SAAS,EAAG;EACzC,IAAK,CAAEA,SAAS,EAAG;IAClB,OAAO,EAAE;EACV;EACA,OAAOA,SAAS,CAACC,KAAK,CAAE,KAAM,CAAC,CAACC,MAAM,CAAE,CAAEC,OAAO,EAAEC,IAAI,KAAM;IAC5D,IAAKA,IAAI,CAACC,UAAU,CAAEP,gBAAiB,CAAC,EAAG;MAC1C,MAAMQ,KAAK,GAAGF,IAAI,CAACG,KAAK,CAAET,gBAAgB,CAACU,MAAO,CAAC;MACnD,IAAKF,KAAK,KAAK,SAAS,EAAG;QAC1BH,OAAO,CAACM,IAAI,CAAEH,KAAM,CAAC;MACtB;IACD;IACA,OAAOH,OAAO;EACf,CAAC,EAAE,EAAG,CAAC;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASO,yBAAyBA,CAAEV,SAAS,EAAEW,gBAAgB,GAAG,EAAE,EAAG;EACtE;EACA;EACA,MAAMR,OAAO,GAAGJ,mBAAmB,CAAEC,SAAU,CAAC;EAEhD,IAAK,CAAEG,OAAO,EAAG;IAChB,OAAO,IAAI;EACZ;EAEA,KAAM,MAAMS,SAAS,IAAIT,OAAO,EAAG;IAClC,IAAKQ,gBAAgB,CAACE,IAAI,CAAIC,KAAK,IAAMA,KAAK,CAACV,IAAI,KAAKQ,SAAU,CAAC,EAAG;MACrE,OAAOA,SAAS;IACjB;EACD;EACA,OAAO,IAAI;AACZ;;AAEA;AACA,SAASG,cAAcA,CAAE;EAAEC;AAAS,CAAC,EAAG;EACvC3B,uBAAuB,CAAE2B,QAAS,CAAC;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gDAAgDA,CAAE;EAAEC;AAAO,CAAC,EAAG;EAC9E,MAAM;IAAEC,cAAc;IAAEC;EAAU,CAAC,GAAGrC,SAAS,CAC5CsC,MAAM,KAAQ;IACfF,cAAc,EAAEE,MAAM,CAAEvC,WAAY,CAAC,CAACqC,cAAc;IACpDC,SAAS,EAAE3B,MAAM,CAAE4B,MAAM,CAAE9B,gBAAiB,CAAE,CAAC,CAAC+B,iBAAiB,CAAC;EACnE,CAAC,CAAE,EACH,EACD,CAAC;EACD,MAAM;IAAEC;EAAa,CAAC,GAAGxC,SAAS,CAAEQ,gBAAiB,CAAC;EAEtD,MAAMiC,mBAAmB,GAAGvC,OAAO,CAAE,MAAM;IAC1C,IAAK,CAAEmC,SAAS,EAAEZ,MAAM,EAAG;MAC1B;IACD;IACA,MAAMiB,YAAY,GAAG,EAAE;IACvB,MAAMC,mBAAmB,GAAG,EAAE;IAC9B,KAAM,MAAM,GAAIV,QAAQ,CAAE,IAAII,SAAS,EAAG;MACzC,IACCJ,QAAQ,EAAEJ,SAAS,IACnBI,QAAQ,EAAEW,QAAQ;MAClB;AACJ;AACA;AACA;MACI,CAAED,mBAAmB,CAACE,QAAQ,CAAEZ,QAAQ,CAACW,QAAS,CAAC,EAClD;QACD,MAAME,SAAS,GAAGN,YAAY,CAAEP,QAAQ,CAACW,QAAS,CAAC;QACnD,MAAMG,YAAY,GACjBZ,MAAM,EAAEa,MAAM,EAAEC,MAAM,GAAIH,SAAS,CAAE,EAAEI,UAAU,GAChDjB,QAAQ,CAACJ,SAAS,CAClB;QACF,IAAKkB,YAAY,EAAG;UACnB,MAAMI,eAAe,GAAG;YACvBC,QAAQ,EAAEjB,MAAM,EAAEiB,QAAQ;YAC1B;YACA;YACA;YACAJ,MAAM,EAAE;cACPC,MAAM,EAAE;gBACP,CAAEH,SAAS,GAAI;kBACdI,UAAU,EAAE;oBACX,CAAG,GAAGjB,QAAQ,CAACJ,SAAW,IAAII,QAAQ,CAACW,QAAU,EAAC,GACjDG;kBACF;gBACD;cACD;YACD;UACD,CAAC;UACD,MAAMM,cAAc,GAAGhD,iBAAiB,CACvCR,aAAa,CAAC,CAAC,EACfuC,cAAc,EACdH,QAAQ,CAACW,QACV,CAAC;UACD,MAAMU,kBAAkB,GAAG,KAAK;UAChC,MAAMC,qBAAqB,GAAG,IAAI;UAClC,MAAMC,mBAAmB,GAAG,IAAI;UAChC,MAAMC,kBAAkB,GAAG,IAAI;UAC/B,MAAMC,eAAe,GAAGtD,QAAQ,CAC/B+C,eAAe,EACfE,cAAc,EACdC,kBAAkB,EAClBC,qBAAqB,EACrBC,mBAAmB,EACnBC,kBAAkB,EAClB;YACCE,QAAQ,EAAE,KAAK;YACfC,WAAW,EAAE,IAAI;YACjBC,YAAY,EAAE,KAAK;YACnBC,WAAW,EAAE,KAAK;YAClBC,OAAO,EAAE,KAAK;YACdC,WAAW,EAAE,KAAK;YAClBN,eAAe,EAAE;UAClB,CACD,CAAC;UACDhB,YAAY,CAAChB,IAAI,CAAE;YAClBuC,EAAE,EAAG,GAAGhC,QAAQ,CAACJ,SAAW,IAAII,QAAQ,CAACW,QAAU,EAAC;YACpDsB,GAAG,EAAER,eAAe;YACpBS,cAAc,EAAE,WAAW;YAC3BtC,SAAS,EAAEI,QAAQ,CAACJ,SAAS;YAC7B;YACA;YACA;YACAe,QAAQ,EAAEX,QAAQ,CAACW;UACpB,CAAE,CAAC;UACHD,mBAAmB,CAACjB,IAAI,CAAEO,QAAQ,CAACW,QAAS,CAAC;QAC9C;MACD;IACD;IACA,OAAOF,YAAY;EACpB,CAAC,EAAE,CAAEP,MAAM,EAAEE,SAAS,EAAED,cAAc,EAAEI,YAAY,CAAG,CAAC;EAExD,IAAK,CAAEC,mBAAmB,IAAI,CAAEA,mBAAmB,CAAChB,MAAM,EAAG;IAC5D;EACD;EAEA,oBACCb,IAAA,CAAAE,SAAA;IAAAsD,QAAA,EACG3B,mBAAmB,CAAC4B,GAAG,CAAIpC,QAAQ,iBACpCrB,IAAA,CAACoB,cAAc;MAAqBC,QAAQ,EAAGA;IAAU,GAAnCA,QAAQ,CAACgC,EAA4B,CAC1D;EAAC,CACF,CAAC;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,+BAA+BA,CAC9CC,YAAY,EACZlD,IAAI,EACJQ,SAAS,EACR;EACD,IAAK,CAAE0C,YAAY,EAAEvB,MAAM,EAAEC,MAAM,GAAI5B,IAAI,CAAE,EAAE6B,UAAU,GAAIrB,SAAS,CAAE,EAAG;IAC1E;EACD;;EAEA;EACA,MAAM2C,WAAW,GAAKd,eAAe,IAAM;IAC1Ce,MAAM,CAACC,IAAI,CAAEhB,eAAgB,CAAC,CAACiB,OAAO,CAAIC,GAAG,IAAM;MAClD,MAAMC,KAAK,GAAGnB,eAAe,CAAEkB,GAAG,CAAE;;MAEpC;MACA,IAAK,OAAOC,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,EAAG;QAClD;QACA,IAAKA,KAAK,CAACC,GAAG,KAAKC,SAAS,EAAG;UAC9B,IACC,OAAOF,KAAK,CAACC,GAAG,KAAK,QAAQ,IAC7BD,KAAK,CAACC,GAAG,CAACE,IAAI,CAAC,CAAC,KAAK,EAAE,EACtB;YACD;YACA,OAAOtB,eAAe,CAAEkB,GAAG,CAAE;UAC9B,CAAC,MAAM;YACN;YACA,MAAMK,QAAQ,GAAG1E,sBAAsB,CACtCgE,YAAY,EACZM,KAAK,CAACC,GACP,CAAC;YAED,IAAKG,QAAQ,EAAG;cACfvB,eAAe,CAAEkB,GAAG,CAAE,GAAGK,QAAQ;YAClC,CAAC,MAAM;cACN,OAAOvB,eAAe,CAAEkB,GAAG,CAAE;YAC9B;UACD;QACD,CAAC,MAAM;UACN;UACAJ,WAAW,CAAEK,KAAM,CAAC;;UAEpB;UACA;UACA,IAAKJ,MAAM,CAACC,IAAI,CAAEG,KAAM,CAAC,CAACpD,MAAM,KAAK,CAAC,EAAG;YACxC,OAAOiC,eAAe,CAAEkB,GAAG,CAAE;UAC9B;QACD;MACD;IACD,CAAE,CAAC;EACJ,CAAC;;EAED;EACA,MAAM5B,MAAM,GAAGkC,IAAI,CAACC,KAAK,CACxBD,IAAI,CAACE,SAAS,CACbb,YAAY,CAACvB,MAAM,CAACC,MAAM,CAAE5B,IAAI,CAAE,CAAC6B,UAAU,CAAErB,SAAS,CACzD,CACD,CAAC;EACD2C,WAAW,CAAExB,MAAO,CAAC;EAErB,OAAOA,MAAM;AACd;AAEA,SAASqC,sBAAsBA,CAAEhE,IAAI,EAAEQ,SAAS,EAAEe,QAAQ,EAAG;EAC5D;EACA;EACA;EACA,MAAM;IAAE0C,MAAM,EAAEC;EAAa,CAAC,GAAGtF,UAAU,CAAEE,mBAAoB,CAAC;EAClE,MAAM;IAAEqF,cAAc;IAAEjB;EAAa,CAAC,GAAGvE,SAAS,CAAIsC,MAAM,IAAM;IACjE,MAAMc,QAAQ,GAAGd,MAAM,CAAE9B,gBAAiB,CAAC,CAACiF,WAAW,CAAC,CAAC;IACzD,OAAO;MACND,cAAc,EAAEpC,QAAQ,CAACsC,sBAAsB;MAC/CnB,YAAY,EAAEnB,QAAQ,CAAE3C,mBAAmB;IAC5C,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,OAAOP,OAAO,CAAE,MAAM;IAAA,IAAAyF,qBAAA,EAAAC,oBAAA,EAAAC,sBAAA;IACrB,MAAMnC,eAAe,GAAGY,+BAA+B,CACtD;MACClB,QAAQ,GAAAuC,qBAAA,GAAEJ,YAAY,EAAEnC,QAAQ,cAAAuC,qBAAA,cAAAA,qBAAA,GAAIH,cAAc;MAClDxC,MAAM,GAAA4C,oBAAA,GAAEL,YAAY,EAAEvC,MAAM,cAAA4C,oBAAA,cAAAA,oBAAA,GAAIrB;IACjC,CAAC,EACDlD,IAAI,EACJQ,SACD,CAAC;IAED,OAAO;MACNuB,QAAQ,GAAAyC,sBAAA,GAAEN,YAAY,EAAEnC,QAAQ,cAAAyC,sBAAA,cAAAA,sBAAA,GAAIL,cAAc;MAClD;MACA;MACA;MACAxC,MAAM,EAAE;QACPC,MAAM,EAAE;UACP,CAAE5B,IAAI,GAAI;YACT6B,UAAU,EAAE;cACX,CAAG,GAAGrB,SAAW,IAAIe,QAAU,EAAC,GAAIc;YACrC;UACD;QACD;MACD;IACD,CAAC;EACF,CAAC,EAAE,CACF6B,YAAY,EACZC,cAAc,EACdjB,YAAY,EACZ1C,SAAS,EACTe,QAAQ,EACRvB,IAAI,CACH,CAAC;AACJ;;AAEA;AACA;AACA;AACA,SAASyE,aAAaA,CAAE;EAAEzE,IAAI;EAAEJ,SAAS;EAAE2B;AAAS,CAAC,EAAG;EACvD,MAAM;IAAER;EAAe,CAAC,GAAGpC,SAAS,CAAED,WAAY,CAAC;EAEnD,MAAM6B,gBAAgB,GAAGQ,cAAc,CAAEf,IAAK,CAAC;EAC/C,MAAMQ,SAAS,GAAGF,yBAAyB,CAAEV,SAAS,EAAEW,gBAAiB,CAAC;EAC1E,MAAMmE,cAAc,GAAI,GAAGhF,gBAAkB,GAAGc,SAAW,IAAIe,QAAU,EAAC;EAE1E,MAAM;IAAEQ,QAAQ;IAAEJ;EAAO,CAAC,GAAGqC,sBAAsB,CAClDhE,IAAI,EACJQ,SAAS,EACTe,QACD,CAAC;EAED,MAAMc,eAAe,GAAGxD,OAAO,CAAE,MAAM;IACtC,IAAK,CAAE2B,SAAS,EAAG;MAClB;IACD;IAEA,MAAMsB,eAAe,GAAG;MAAEC,QAAQ;MAAEJ;IAAO,CAAC;IAC5C,MAAMK,cAAc,GAAGhD,iBAAiB,CACvCR,aAAa,CAAC,CAAC,EACfuC,cAAc,EACdQ,QACD,CAAC;IACD,MAAMU,kBAAkB,GAAG,KAAK;IAChC,MAAMC,qBAAqB,GAAG,IAAI;IAClC,MAAMC,mBAAmB,GAAG,IAAI;IAChC,MAAMC,kBAAkB,GAAG,IAAI;IAE/B,OAAOrD,QAAQ,CACd+C,eAAe,EACfE,cAAc,EACdC,kBAAkB,EAClBC,qBAAqB,EACrBC,mBAAmB,EACnBC,kBAAkB,EAClB;MACCE,QAAQ,EAAE,KAAK;MACfC,WAAW,EAAE,IAAI;MACjBC,YAAY,EAAE,KAAK;MACnBC,WAAW,EAAE,KAAK;MAClBC,OAAO,EAAE,KAAK;MACdC,WAAW,EAAE,KAAK;MAClBN,eAAe,EAAE;IAClB,CACD,CAAC;EACF,CAAC,EAAE,CAAE7B,SAAS,EAAEuB,QAAQ,EAAEJ,MAAM,EAAEZ,cAAc,EAAEQ,QAAQ,CAAG,CAAC;EAE9DtC,uBAAuB,CAAE;IACxB2D,EAAE,EAAG,aAAarB,QAAU,EAAC;IAC7BsB,GAAG,EAAER,eAAe;IACpBS,cAAc,EAAE,WAAW;IAC3BtC,SAAS;IACT;IACA;IACA;IACAe;EACD,CAAE,CAAC;EAEH,OAAOf,SAAS,GAAG;IAAEZ,SAAS,EAAE8E;EAAe,CAAC,GAAG,CAAC,CAAC;AACtD;AAEA,eAAe;EACdC,UAAU,EAAEA,CAAA,KAAM,IAAI;EACtBC,aAAa,EAAE,CAAE,WAAW,CAAE;EAC9BC,OAAO,EAAEA,CAAE;IAAEjF;EAAU,CAAC,KAAMD,mBAAmB,CAAEC,SAAU,CAAC,CAACQ,MAAM,GAAG,CAAC;EACzEqE;AACD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["getBlockTypes","store","blocksStore","useSelect","useContext","useMemo","GlobalStylesContext","toStyles","getBlockSelectors","usePrivateStyleOverride","getValueFromObjectPath","blockEditorStore","globalStylesDataKey","unlock","jsx","_jsx","Fragment","_Fragment","VARIATION_PREFIX","getVariationMatches","className","split","reduce","matches","name","startsWith","match","slice","length","push","getVariationNameFromClass","registeredStyles","variation","some","style","OverrideStyles","override","__unstableBlockStyleVariationOverridesWithConfig","config","getBlockStyles","overrides","select","getStyleOverrides","getBlockName","overridesWithConfig","newOverrides","overriddenClientIds","clientId","includes","blockName","configStyles","styles","blocks","variations","variationConfig","settings","blockSelectors","hasBlockGapSupport","hasFallbackGapSupport","disableLayoutStyles","disableRootPadding","variationStyles","blockGap","blockStyles","layoutStyles","marginReset","presets","rootPadding","id","css","__unstableType","children","map","getVariationStylesWithRefValues","globalStyles","replaceRefs","Object","keys","forEach","key","value","ref","undefined","trim","refValue","JSON","parse","stringify","useBlockStyleVariation","merged","mergedConfig","globalSettings","getSettings","__experimentalFeatures","_mergedConfig$setting","_mergedConfig$styles","_mergedConfig$setting2","useBlockProps","variationClass","hasSupport","attributeKeys","isMatch"],"sources":["@wordpress/block-editor/src/hooks/block-style-variation.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockTypes, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tGlobalStylesContext,\n\ttoStyles,\n\tgetBlockSelectors,\n} from '../components/global-styles';\nimport { usePrivateStyleOverride } from './utils';\nimport { getValueFromObjectPath } from '../utils/object';\nimport { store as blockEditorStore } from '../store';\nimport { globalStylesDataKey } from '../store/private-keys';\nimport { unlock } from '../lock-unlock';\n\nconst VARIATION_PREFIX = 'is-style-';\n\nfunction getVariationMatches( className ) {\n\tif ( ! className ) {\n\t\treturn [];\n\t}\n\treturn className.split( /\\s+/ ).reduce( ( matches, name ) => {\n\t\tif ( name.startsWith( VARIATION_PREFIX ) ) {\n\t\t\tconst match = name.slice( VARIATION_PREFIX.length );\n\t\t\tif ( match !== 'default' ) {\n\t\t\t\tmatches.push( match );\n\t\t\t}\n\t\t}\n\t\treturn matches;\n\t}, [] );\n}\n\n/**\n * Get the first block style variation that has been registered from the class string.\n *\n * @param {string} className CSS class string for a block.\n * @param {Array} registeredStyles Currently registered block styles.\n *\n * @return {string|null} The name of the first registered variation.\n */\nfunction getVariationNameFromClass( className, registeredStyles = [] ) {\n\t// The global flag affects how capturing groups work in JS. So the regex\n\t// below will only return full CSS classes not just the variation name.\n\tconst matches = getVariationMatches( className );\n\n\tif ( ! matches ) {\n\t\treturn null;\n\t}\n\n\tfor ( const variation of matches ) {\n\t\tif ( registeredStyles.some( ( style ) => style.name === variation ) ) {\n\t\t\treturn variation;\n\t\t}\n\t}\n\treturn null;\n}\n\n// A helper component to apply a style override using the useStyleOverride hook.\nfunction OverrideStyles( { override } ) {\n\tusePrivateStyleOverride( override );\n}\n\n/**\n * This component is used to generate new block style variation overrides\n * based on an incoming theme config. If a matching style is found in the config,\n * a new override is created and returned. The overrides can be used in conjunction with\n * useStyleOverride to apply the new styles to the editor. Its use is\n * subject to change.\n *\n * @param {Object} props Props.\n * @param {Object} props.config A global styles object, containing settings and styles.\n * @return {JSX.Element|undefined} An array of new block variation overrides.\n */\nexport function __unstableBlockStyleVariationOverridesWithConfig( { config } ) {\n\tconst { getBlockStyles, overrides } = useSelect(\n\t\t( select ) => ( {\n\t\t\tgetBlockStyles: select( blocksStore ).getBlockStyles,\n\t\t\toverrides: unlock( select( blockEditorStore ) ).getStyleOverrides(),\n\t\t} ),\n\t\t[]\n\t);\n\tconst { getBlockName } = useSelect( blockEditorStore );\n\n\tconst overridesWithConfig = useMemo( () => {\n\t\tif ( ! overrides?.length ) {\n\t\t\treturn;\n\t\t}\n\t\tconst newOverrides = [];\n\t\tconst overriddenClientIds = [];\n\t\tfor ( const [ , override ] of overrides ) {\n\t\t\tif (\n\t\t\t\toverride?.variation &&\n\t\t\t\toverride?.clientId &&\n\t\t\t\t/*\n\t\t\t\t * Because this component overwrites existing style overrides,\n\t\t\t\t * filter out any overrides that are already present in the store.\n\t\t\t\t */\n\t\t\t\t! overriddenClientIds.includes( override.clientId )\n\t\t\t) {\n\t\t\t\tconst blockName = getBlockName( override.clientId );\n\t\t\t\tconst configStyles =\n\t\t\t\t\tconfig?.styles?.blocks?.[ blockName ]?.variations?.[\n\t\t\t\t\t\toverride.variation\n\t\t\t\t\t];\n\t\t\t\tif ( configStyles ) {\n\t\t\t\t\tconst variationConfig = {\n\t\t\t\t\t\tsettings: config?.settings,\n\t\t\t\t\t\t// The variation style data is all that is needed to generate\n\t\t\t\t\t\t// the styles for the current application to a block. The variation\n\t\t\t\t\t\t// name is updated to match the instance specific class name.\n\t\t\t\t\t\tstyles: {\n\t\t\t\t\t\t\tblocks: {\n\t\t\t\t\t\t\t\t[ blockName ]: {\n\t\t\t\t\t\t\t\t\tvariations: {\n\t\t\t\t\t\t\t\t\t\t[ `${ override.variation }-${ override.clientId }` ]:\n\t\t\t\t\t\t\t\t\t\t\tconfigStyles,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t\tconst blockSelectors = getBlockSelectors(\n\t\t\t\t\t\tgetBlockTypes(),\n\t\t\t\t\t\tgetBlockStyles,\n\t\t\t\t\t\toverride.clientId\n\t\t\t\t\t);\n\t\t\t\t\tconst hasBlockGapSupport = false;\n\t\t\t\t\tconst hasFallbackGapSupport = true;\n\t\t\t\t\tconst disableLayoutStyles = true;\n\t\t\t\t\tconst disableRootPadding = true;\n\t\t\t\t\tconst variationStyles = toStyles(\n\t\t\t\t\t\tvariationConfig,\n\t\t\t\t\t\tblockSelectors,\n\t\t\t\t\t\thasBlockGapSupport,\n\t\t\t\t\t\thasFallbackGapSupport,\n\t\t\t\t\t\tdisableLayoutStyles,\n\t\t\t\t\t\tdisableRootPadding,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tblockGap: false,\n\t\t\t\t\t\t\tblockStyles: true,\n\t\t\t\t\t\t\tlayoutStyles: false,\n\t\t\t\t\t\t\tmarginReset: false,\n\t\t\t\t\t\t\tpresets: false,\n\t\t\t\t\t\t\trootPadding: false,\n\t\t\t\t\t\t\tvariationStyles: true,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\tnewOverrides.push( {\n\t\t\t\t\t\tid: `${ override.variation }-${ override.clientId }`,\n\t\t\t\t\t\tcss: variationStyles,\n\t\t\t\t\t\t__unstableType: 'variation',\n\t\t\t\t\t\tvariation: override.variation,\n\t\t\t\t\t\t// The clientId will be stored with the override and used to ensure\n\t\t\t\t\t\t// the order of overrides matches the order of blocks so that the\n\t\t\t\t\t\t// correct CSS cascade is maintained.\n\t\t\t\t\t\tclientId: override.clientId,\n\t\t\t\t\t} );\n\t\t\t\t\toverriddenClientIds.push( override.clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn newOverrides;\n\t}, [ config, overrides, getBlockStyles, getBlockName ] );\n\n\tif ( ! overridesWithConfig || ! overridesWithConfig.length ) {\n\t\treturn;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ overridesWithConfig.map( ( override ) => (\n\t\t\t\t<OverrideStyles key={ override.id } override={ override } />\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\n/**\n * Retrieves any variation styles data and resolves any referenced values.\n *\n * @param {Object} globalStyles A complete global styles object, containing settings and styles.\n * @param {string} name The name of the desired block type.\n * @param {variation} variation The of the block style variation to retrieve data for.\n *\n * @return {Object|undefined} The global styles data for the specified variation.\n */\nexport function getVariationStylesWithRefValues(\n\tglobalStyles,\n\tname,\n\tvariation\n) {\n\tif ( ! globalStyles?.styles?.blocks?.[ name ]?.variations?.[ variation ] ) {\n\t\treturn;\n\t}\n\n\t// Helper to recursively look for `ref` values to resolve.\n\tconst replaceRefs = ( variationStyles ) => {\n\t\tObject.keys( variationStyles ).forEach( ( key ) => {\n\t\t\tconst value = variationStyles[ key ];\n\n\t\t\t// Only process objects.\n\t\t\tif ( typeof value === 'object' && value !== null ) {\n\t\t\t\t// Process `ref` value if present.\n\t\t\t\tif ( value.ref !== undefined ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof value.ref !== 'string' ||\n\t\t\t\t\t\tvalue.ref.trim() === ''\n\t\t\t\t\t) {\n\t\t\t\t\t\t// Remove invalid ref.\n\t\t\t\t\t\tdelete variationStyles[ key ];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Resolve `ref` value.\n\t\t\t\t\t\tconst refValue = getValueFromObjectPath(\n\t\t\t\t\t\t\tglobalStyles,\n\t\t\t\t\t\t\tvalue.ref\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif ( refValue ) {\n\t\t\t\t\t\t\tvariationStyles[ key ] = refValue;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdelete variationStyles[ key ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Recursively resolve `ref` values in nested objects.\n\t\t\t\t\treplaceRefs( value );\n\n\t\t\t\t\t// After recursion, if value is empty due to explicitly\n\t\t\t\t\t// `undefined` ref value, remove it.\n\t\t\t\t\tif ( Object.keys( value ).length === 0 ) {\n\t\t\t\t\t\tdelete variationStyles[ key ];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t};\n\n\t// Deep clone variation node to avoid mutating it within global styles and losing refs.\n\tconst styles = JSON.parse(\n\t\tJSON.stringify(\n\t\t\tglobalStyles.styles.blocks[ name ].variations[ variation ]\n\t\t)\n\t);\n\treplaceRefs( styles );\n\n\treturn styles;\n}\n\nfunction useBlockStyleVariation( name, variation, clientId ) {\n\t// Prefer global styles data in GlobalStylesContext, which are available\n\t// if in the site editor. Otherwise fall back to whatever is in the\n\t// editor settings and available in the post editor.\n\tconst { merged: mergedConfig } = useContext( GlobalStylesContext );\n\tconst { globalSettings, globalStyles } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\treturn {\n\t\t\tglobalSettings: settings.__experimentalFeatures,\n\t\t\tglobalStyles: settings[ globalStylesDataKey ],\n\t\t};\n\t}, [] );\n\n\treturn useMemo( () => {\n\t\tconst variationStyles = getVariationStylesWithRefValues(\n\t\t\t{\n\t\t\t\tsettings: mergedConfig?.settings ?? globalSettings,\n\t\t\t\tstyles: mergedConfig?.styles ?? globalStyles,\n\t\t\t},\n\t\t\tname,\n\t\t\tvariation\n\t\t);\n\n\t\treturn {\n\t\t\tsettings: mergedConfig?.settings ?? globalSettings,\n\t\t\t// The variation style data is all that is needed to generate\n\t\t\t// the styles for the current application to a block. The variation\n\t\t\t// name is updated to match the instance specific class name.\n\t\t\tstyles: {\n\t\t\t\tblocks: {\n\t\t\t\t\t[ name ]: {\n\t\t\t\t\t\tvariations: {\n\t\t\t\t\t\t\t[ `${ variation }-${ clientId }` ]: variationStyles,\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\t\tmergedConfig,\n\t\tglobalSettings,\n\t\tglobalStyles,\n\t\tvariation,\n\t\tclientId,\n\t\tname,\n\t] );\n}\n\n// Rather than leveraging `useInstanceId` here, the `clientId` is used.\n// This is so that the variation style override's ID is predictable\n// when the order of applied style variations changes.\nfunction useBlockProps( { name, className, clientId } ) {\n\tconst { getBlockStyles } = useSelect( blocksStore );\n\n\tconst registeredStyles = getBlockStyles( name );\n\tconst variation = getVariationNameFromClass( className, registeredStyles );\n\tconst variationClass = `${ VARIATION_PREFIX }${ variation }-${ clientId }`;\n\n\tconst { settings, styles } = useBlockStyleVariation(\n\t\tname,\n\t\tvariation,\n\t\tclientId\n\t);\n\n\tconst variationStyles = useMemo( () => {\n\t\tif ( ! variation ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst variationConfig = { settings, styles };\n\t\tconst blockSelectors = getBlockSelectors(\n\t\t\tgetBlockTypes(),\n\t\t\tgetBlockStyles,\n\t\t\tclientId\n\t\t);\n\t\tconst hasBlockGapSupport = false;\n\t\tconst hasFallbackGapSupport = true;\n\t\tconst disableLayoutStyles = true;\n\t\tconst disableRootPadding = true;\n\n\t\treturn toStyles(\n\t\t\tvariationConfig,\n\t\t\tblockSelectors,\n\t\t\thasBlockGapSupport,\n\t\t\thasFallbackGapSupport,\n\t\t\tdisableLayoutStyles,\n\t\t\tdisableRootPadding,\n\t\t\t{\n\t\t\t\tblockGap: false,\n\t\t\t\tblockStyles: true,\n\t\t\t\tlayoutStyles: false,\n\t\t\t\tmarginReset: false,\n\t\t\t\tpresets: false,\n\t\t\t\trootPadding: false,\n\t\t\t\tvariationStyles: true,\n\t\t\t}\n\t\t);\n\t}, [ variation, settings, styles, getBlockStyles, clientId ] );\n\n\tusePrivateStyleOverride( {\n\t\tid: `variation-${ clientId }`,\n\t\tcss: variationStyles,\n\t\t__unstableType: 'variation',\n\t\tvariation,\n\t\t// The clientId will be stored with the override and used to ensure\n\t\t// the order of overrides matches the order of blocks so that the\n\t\t// correct CSS cascade is maintained.\n\t\tclientId,\n\t} );\n\n\treturn variation ? { className: variationClass } : {};\n}\n\nexport default {\n\thasSupport: () => true,\n\tattributeKeys: [ 'className' ],\n\tisMatch: ( { className } ) => getVariationMatches( className ).length > 0,\n\tuseBlockProps,\n};\n"],"mappings":"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","ignoreList":[]}
@@ -22,7 +22,6 @@ export default function BlockColorContrastChecker({
22
22
 
23
23
  // There are so many things that can change the color of a block
24
24
  // So we perform this check on every render.
25
- // eslint-disable-next-line react-hooks/exhaustive-deps
26
25
  useEffect(() => {
27
26
  if (!blockEl) {
28
27
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["useState","useEffect","ContrastChecker","useBlockElement","jsx","_jsx","getComputedStyle","node","ownerDocument","defaultView","BlockColorContrastChecker","clientId","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedLinkColor","setDetectedLinkColor","blockEl","color","firstLinkElement","querySelector","innerText","backgroundColorNode","backgroundColor","parentNode","nodeType","ELEMENT_NODE","textColor","enableAlphaChecker","linkColor"],"sources":["@wordpress/block-editor/src/hooks/contrast-checker.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ContrastChecker from '../components/contrast-checker';\nimport { useBlockElement } from '../components/block-list/use-block-props/use-block-refs';\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nexport default function BlockColorContrastChecker( { clientId } ) {\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [ detectedLinkColor, setDetectedLinkColor ] = useState();\n\tconst blockEl = useBlockElement( clientId );\n\n\t// There are so many things that can change the color of a block\n\t// So we perform this check on every render.\n\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\tuseEffect( () => {\n\t\tif ( ! blockEl ) {\n\t\t\treturn;\n\t\t}\n\t\tsetDetectedColor( getComputedStyle( blockEl ).color );\n\n\t\tconst firstLinkElement = blockEl.querySelector( 'a' );\n\t\tif ( firstLinkElement && !! firstLinkElement.innerText ) {\n\t\t\tsetDetectedLinkColor( getComputedStyle( firstLinkElement ).color );\n\t\t}\n\n\t\tlet backgroundColorNode = blockEl;\n\t\tlet backgroundColor =\n\t\t\tgetComputedStyle( backgroundColorNode ).backgroundColor;\n\t\twhile (\n\t\t\tbackgroundColor === 'rgba(0, 0, 0, 0)' &&\n\t\t\tbackgroundColorNode.parentNode &&\n\t\t\tbackgroundColorNode.parentNode.nodeType ===\n\t\t\t\tbackgroundColorNode.parentNode.ELEMENT_NODE\n\t\t) {\n\t\t\tbackgroundColorNode = backgroundColorNode.parentNode;\n\t\t\tbackgroundColor =\n\t\t\t\tgetComputedStyle( backgroundColorNode ).backgroundColor;\n\t\t}\n\n\t\tsetDetectedBackgroundColor( backgroundColor );\n\t}, [ blockEl ] );\n\n\treturn (\n\t\t<ContrastChecker\n\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\ttextColor={ detectedColor }\n\t\t\tenableAlphaChecker\n\t\t\tlinkColor={ detectedLinkColor }\n\t\t/>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAQ,EAAEC,SAAS,QAAQ,oBAAoB;;AAExD;AACA;AACA;AACA,OAAOC,eAAe,MAAM,gCAAgC;AAC5D,SAASC,eAAe,QAAQ,yDAAyD;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1F,SAASC,gBAAgBA,CAAEC,IAAI,EAAG;EACjC,OAAOA,IAAI,CAACC,aAAa,CAACC,WAAW,CAACH,gBAAgB,CAAEC,IAAK,CAAC;AAC/D;AAEA,eAAe,SAASG,yBAAyBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EACjE,MAAM,CAAEC,uBAAuB,EAAEC,0BAA0B,CAAE,GAAGb,QAAQ,CAAC,CAAC;EAC1E,MAAM,CAAEc,aAAa,EAAEC,gBAAgB,CAAE,GAAGf,QAAQ,CAAC,CAAC;EACtD,MAAM,CAAEgB,iBAAiB,EAAEC,oBAAoB,CAAE,GAAGjB,QAAQ,CAAC,CAAC;EAC9D,MAAMkB,OAAO,GAAGf,eAAe,CAAEQ,QAAS,CAAC;;EAE3C;EACA;EACA;EACAV,SAAS,CAAE,MAAM;IAChB,IAAK,CAAEiB,OAAO,EAAG;MAChB;IACD;IACAH,gBAAgB,CAAET,gBAAgB,CAAEY,OAAQ,CAAC,CAACC,KAAM,CAAC;IAErD,MAAMC,gBAAgB,GAAGF,OAAO,CAACG,aAAa,CAAE,GAAI,CAAC;IACrD,IAAKD,gBAAgB,IAAI,CAAC,CAAEA,gBAAgB,CAACE,SAAS,EAAG;MACxDL,oBAAoB,CAAEX,gBAAgB,CAAEc,gBAAiB,CAAC,CAACD,KAAM,CAAC;IACnE;IAEA,IAAII,mBAAmB,GAAGL,OAAO;IACjC,IAAIM,eAAe,GAClBlB,gBAAgB,CAAEiB,mBAAoB,CAAC,CAACC,eAAe;IACxD,OACCA,eAAe,KAAK,kBAAkB,IACtCD,mBAAmB,CAACE,UAAU,IAC9BF,mBAAmB,CAACE,UAAU,CAACC,QAAQ,KACtCH,mBAAmB,CAACE,UAAU,CAACE,YAAY,EAC3C;MACDJ,mBAAmB,GAAGA,mBAAmB,CAACE,UAAU;MACpDD,eAAe,GACdlB,gBAAgB,CAAEiB,mBAAoB,CAAC,CAACC,eAAe;IACzD;IAEAX,0BAA0B,CAAEW,eAAgB,CAAC;EAC9C,CAAC,EAAE,CAAEN,OAAO,CAAG,CAAC;EAEhB,oBACCb,IAAA,CAACH,eAAe;IACfsB,eAAe,EAAGZ,uBAAyB;IAC3CgB,SAAS,EAAGd,aAAe;IAC3Be,kBAAkB;IAClBC,SAAS,EAAGd;EAAmB,CAC/B,CAAC;AAEJ","ignoreList":[]}
1
+ {"version":3,"names":["useState","useEffect","ContrastChecker","useBlockElement","jsx","_jsx","getComputedStyle","node","ownerDocument","defaultView","BlockColorContrastChecker","clientId","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedLinkColor","setDetectedLinkColor","blockEl","color","firstLinkElement","querySelector","innerText","backgroundColorNode","backgroundColor","parentNode","nodeType","ELEMENT_NODE","textColor","enableAlphaChecker","linkColor"],"sources":["@wordpress/block-editor/src/hooks/contrast-checker.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ContrastChecker from '../components/contrast-checker';\nimport { useBlockElement } from '../components/block-list/use-block-props/use-block-refs';\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nexport default function BlockColorContrastChecker( { clientId } ) {\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [ detectedLinkColor, setDetectedLinkColor ] = useState();\n\tconst blockEl = useBlockElement( clientId );\n\n\t// There are so many things that can change the color of a block\n\t// So we perform this check on every render.\n\tuseEffect( () => {\n\t\tif ( ! blockEl ) {\n\t\t\treturn;\n\t\t}\n\t\tsetDetectedColor( getComputedStyle( blockEl ).color );\n\n\t\tconst firstLinkElement = blockEl.querySelector( 'a' );\n\t\tif ( firstLinkElement && !! firstLinkElement.innerText ) {\n\t\t\tsetDetectedLinkColor( getComputedStyle( firstLinkElement ).color );\n\t\t}\n\n\t\tlet backgroundColorNode = blockEl;\n\t\tlet backgroundColor =\n\t\t\tgetComputedStyle( backgroundColorNode ).backgroundColor;\n\t\twhile (\n\t\t\tbackgroundColor === 'rgba(0, 0, 0, 0)' &&\n\t\t\tbackgroundColorNode.parentNode &&\n\t\t\tbackgroundColorNode.parentNode.nodeType ===\n\t\t\t\tbackgroundColorNode.parentNode.ELEMENT_NODE\n\t\t) {\n\t\t\tbackgroundColorNode = backgroundColorNode.parentNode;\n\t\t\tbackgroundColor =\n\t\t\t\tgetComputedStyle( backgroundColorNode ).backgroundColor;\n\t\t}\n\n\t\tsetDetectedBackgroundColor( backgroundColor );\n\t}, [ blockEl ] );\n\n\treturn (\n\t\t<ContrastChecker\n\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\ttextColor={ detectedColor }\n\t\t\tenableAlphaChecker\n\t\t\tlinkColor={ detectedLinkColor }\n\t\t/>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAQ,EAAEC,SAAS,QAAQ,oBAAoB;;AAExD;AACA;AACA;AACA,OAAOC,eAAe,MAAM,gCAAgC;AAC5D,SAASC,eAAe,QAAQ,yDAAyD;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1F,SAASC,gBAAgBA,CAAEC,IAAI,EAAG;EACjC,OAAOA,IAAI,CAACC,aAAa,CAACC,WAAW,CAACH,gBAAgB,CAAEC,IAAK,CAAC;AAC/D;AAEA,eAAe,SAASG,yBAAyBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EACjE,MAAM,CAAEC,uBAAuB,EAAEC,0BAA0B,CAAE,GAAGb,QAAQ,CAAC,CAAC;EAC1E,MAAM,CAAEc,aAAa,EAAEC,gBAAgB,CAAE,GAAGf,QAAQ,CAAC,CAAC;EACtD,MAAM,CAAEgB,iBAAiB,EAAEC,oBAAoB,CAAE,GAAGjB,QAAQ,CAAC,CAAC;EAC9D,MAAMkB,OAAO,GAAGf,eAAe,CAAEQ,QAAS,CAAC;;EAE3C;EACA;EACAV,SAAS,CAAE,MAAM;IAChB,IAAK,CAAEiB,OAAO,EAAG;MAChB;IACD;IACAH,gBAAgB,CAAET,gBAAgB,CAAEY,OAAQ,CAAC,CAACC,KAAM,CAAC;IAErD,MAAMC,gBAAgB,GAAGF,OAAO,CAACG,aAAa,CAAE,GAAI,CAAC;IACrD,IAAKD,gBAAgB,IAAI,CAAC,CAAEA,gBAAgB,CAACE,SAAS,EAAG;MACxDL,oBAAoB,CAAEX,gBAAgB,CAAEc,gBAAiB,CAAC,CAACD,KAAM,CAAC;IACnE;IAEA,IAAII,mBAAmB,GAAGL,OAAO;IACjC,IAAIM,eAAe,GAClBlB,gBAAgB,CAAEiB,mBAAoB,CAAC,CAACC,eAAe;IACxD,OACCA,eAAe,KAAK,kBAAkB,IACtCD,mBAAmB,CAACE,UAAU,IAC9BF,mBAAmB,CAACE,UAAU,CAACC,QAAQ,KACtCH,mBAAmB,CAACE,UAAU,CAACE,YAAY,EAC3C;MACDJ,mBAAmB,GAAGA,mBAAmB,CAACE,UAAU;MACpDD,eAAe,GACdlB,gBAAgB,CAAEiB,mBAAoB,CAAC,CAACC,eAAe;IACzD;IAEAX,0BAA0B,CAAEW,eAAgB,CAAC;EAC9C,CAAC,EAAE,CAAEN,OAAO,CAAG,CAAC;EAEhB,oBACCb,IAAA,CAACH,eAAe;IACfsB,eAAe,EAAGZ,uBAAyB;IAC3CgB,SAAS,EAAGd,aAAe;IAC3Be,kBAAkB;IAClBC,SAAS,EAAGd;EAAmB,CAC/B,CAAC;AAEJ","ignoreList":[]}
@@ -20,9 +20,7 @@ import { MarginVisualizer, PaddingVisualizer } from './spacing-visualizer';
20
20
  import { store as blockEditorStore } from '../store';
21
21
  import { unlock } from '../lock-unlock';
22
22
  import { cleanEmptyObject, shouldSkipSerialization } from './utils';
23
- import { jsx as _jsx } from "react/jsx-runtime";
24
- import { Fragment as _Fragment } from "react/jsx-runtime";
25
- import { jsxs as _jsxs } from "react/jsx-runtime";
23
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
26
24
  export const DIMENSIONS_SUPPORT_KEY = 'dimensions';
27
25
  export const SPACING_SUPPORT_KEY = 'spacing';
28
26
  export const ALL_SIDES = ['top', 'right', 'bottom', 'left'];
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","Platform","useState","useEffect","useCallback","useDispatch","useSelect","getBlockSupport","deprecated","InspectorControls","DimensionsPanel","StylesDimensionsPanel","useHasDimensionsPanel","MarginVisualizer","PaddingVisualizer","store","blockEditorStore","unlock","cleanEmptyObject","shouldSkipSerialization","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DIMENSIONS_SUPPORT_KEY","SPACING_SUPPORT_KEY","ALL_SIDES","AXIAL_SIDES","useVisualizer","property","setProperty","hideBlockInterface","showBlockInterface","DimensionsInspectorControl","children","resetAllFilter","attributesResetAllFilter","attributes","existingStyle","style","updatedStyle","group","clientId","name","setAttributes","settings","isEnabled","value","select","getBlockAttributes","visualizedProperty","setVisualizedProperty","onChange","newStyle","defaultDimensionsControls","defaultSpacingControls","defaultControls","as","panelId","onVisualize","spacing","padding","forceShow","margin","hasDimensionsSupport","blockName","feature","OS","support","aspectRatio","minHeight","useBlockProps","attributeKeys","hasSupport","className","dimensions","inlineStyleOverrides","useCustomSides","since","version"],"sources":["@wordpress/block-editor/src/hooks/dimensions.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { Platform, useState, useEffect, useCallback } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport {\n\tDimensionsPanel as StylesDimensionsPanel,\n\tuseHasDimensionsPanel,\n} from '../components/global-styles';\nimport { MarginVisualizer, PaddingVisualizer } from './spacing-visualizer';\nimport { store as blockEditorStore } from '../store';\nimport { unlock } from '../lock-unlock';\nimport { cleanEmptyObject, shouldSkipSerialization } from './utils';\n\nexport const DIMENSIONS_SUPPORT_KEY = 'dimensions';\nexport const SPACING_SUPPORT_KEY = 'spacing';\nexport const ALL_SIDES = [ 'top', 'right', 'bottom', 'left' ];\nexport const AXIAL_SIDES = [ 'vertical', 'horizontal' ];\n\nfunction useVisualizer() {\n\tconst [ property, setProperty ] = useState( false );\n\tconst { hideBlockInterface, showBlockInterface } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\tuseEffect( () => {\n\t\tif ( ! property ) {\n\t\t\tshowBlockInterface();\n\t\t} else {\n\t\t\thideBlockInterface();\n\t\t}\n\t}, [ property, showBlockInterface, hideBlockInterface ] );\n\n\treturn [ property, setProperty ];\n}\n\nfunction DimensionsInspectorControl( { children, resetAllFilter } ) {\n\tconst attributesResetAllFilter = useCallback(\n\t\t( attributes ) => {\n\t\t\tconst existingStyle = attributes.style;\n\t\t\tconst updatedStyle = resetAllFilter( existingStyle );\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\tstyle: updatedStyle,\n\t\t\t};\n\t\t},\n\t\t[ resetAllFilter ]\n\t);\n\n\treturn (\n\t\t<InspectorControls\n\t\t\tgroup=\"dimensions\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function DimensionsPanel( { clientId, name, setAttributes, settings } ) {\n\tconst isEnabled = useHasDimensionsPanel( settings );\n\tconst value = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId )?.style,\n\t\t[ clientId ]\n\t);\n\tconst [ visualizedProperty, setVisualizedProperty ] = useVisualizer();\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t} );\n\t};\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst defaultDimensionsControls = getBlockSupport( name, [\n\t\tDIMENSIONS_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\tconst defaultSpacingControls = getBlockSupport( name, [\n\t\tSPACING_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\tconst defaultControls = {\n\t\t...defaultDimensionsControls,\n\t\t...defaultSpacingControls,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<StylesDimensionsPanel\n\t\t\t\tas={ DimensionsInspectorControl }\n\t\t\t\tpanelId={ clientId }\n\t\t\t\tsettings={ settings }\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tdefaultControls={ defaultControls }\n\t\t\t\tonVisualize={ setVisualizedProperty }\n\t\t\t/>\n\t\t\t{ !! settings?.spacing?.padding && (\n\t\t\t\t<PaddingVisualizer\n\t\t\t\t\tforceShow={ visualizedProperty === 'padding' }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! settings?.spacing?.margin && (\n\t\t\t\t<MarginVisualizer\n\t\t\t\t\tforceShow={ visualizedProperty === 'margin' }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\n/**\n * Determine whether there is block support for dimensions.\n *\n * @param {string} blockName Block name.\n * @param {string} feature Background image feature to check for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasDimensionsSupport( blockName, feature = 'any' ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst support = getBlockSupport( blockName, DIMENSIONS_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn !! ( support?.aspectRatio || !! support?.minHeight );\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\nexport default {\n\tuseBlockProps,\n\tattributeKeys: [ 'minHeight', 'style' ],\n\thasSupport( name ) {\n\t\treturn hasDimensionsSupport( name, 'aspectRatio' );\n\t},\n};\n\nfunction useBlockProps( { name, minHeight, style } ) {\n\tif (\n\t\t! hasDimensionsSupport( name, 'aspectRatio' ) ||\n\t\tshouldSkipSerialization( name, DIMENSIONS_SUPPORT_KEY, 'aspectRatio' )\n\t) {\n\t\treturn {};\n\t}\n\n\tconst className = clsx( {\n\t\t'has-aspect-ratio': !! style?.dimensions?.aspectRatio,\n\t} );\n\n\t// Allow dimensions-based inline style overrides to override any global styles rules that\n\t// might be set for the block, and therefore affect the display of the aspect ratio.\n\tconst inlineStyleOverrides = {};\n\n\t// Apply rules to unset incompatible styles.\n\t// Note that a set `aspectRatio` will win out if both an aspect ratio and a minHeight are set.\n\t// This is because the aspect ratio is a newer block support, so (in theory) any aspect ratio\n\t// that is set should be intentional and should override any existing minHeight. The Cover block\n\t// and dimensions controls have logic that will manually clear the aspect ratio if a minHeight\n\t// is set.\n\tif ( style?.dimensions?.aspectRatio ) {\n\t\t// To ensure the aspect ratio does not get overridden by `minHeight` unset any existing rule.\n\t\tinlineStyleOverrides.minHeight = 'unset';\n\t} else if ( minHeight || style?.dimensions?.minHeight ) {\n\t\t// To ensure the minHeight does not get overridden by `aspectRatio` unset any existing rule.\n\t\tinlineStyleOverrides.aspectRatio = 'unset';\n\t}\n\n\treturn { className, style: inlineStyleOverrides };\n}\n\n/**\n * @deprecated\n */\nexport function useCustomSides() {\n\tdeprecated( 'wp.blockEditor.__experimentalUseCustomSides', {\n\t\tsince: '6.3',\n\t\tversion: '6.4',\n\t} );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","Platform","useState","useEffect","useCallback","useDispatch","useSelect","getBlockSupport","deprecated","InspectorControls","DimensionsPanel","StylesDimensionsPanel","useHasDimensionsPanel","MarginVisualizer","PaddingVisualizer","store","blockEditorStore","unlock","cleanEmptyObject","shouldSkipSerialization","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DIMENSIONS_SUPPORT_KEY","SPACING_SUPPORT_KEY","ALL_SIDES","AXIAL_SIDES","useVisualizer","property","setProperty","hideBlockInterface","showBlockInterface","DimensionsInspectorControl","children","resetAllFilter","attributesResetAllFilter","attributes","existingStyle","style","updatedStyle","group","clientId","name","setAttributes","settings","isEnabled","value","select","getBlockAttributes","visualizedProperty","setVisualizedProperty","onChange","newStyle","defaultDimensionsControls","defaultSpacingControls","defaultControls","as","panelId","onVisualize","spacing","padding","forceShow","margin","hasDimensionsSupport","blockName","feature","OS","support","aspectRatio","minHeight","useBlockProps","attributeKeys","hasSupport","className","dimensions","inlineStyleOverrides","useCustomSides","since","version"],"sources":["@wordpress/block-editor/src/hooks/dimensions.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { Platform, useState, useEffect, useCallback } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport {\n\tDimensionsPanel as StylesDimensionsPanel,\n\tuseHasDimensionsPanel,\n} from '../components/global-styles';\nimport { MarginVisualizer, PaddingVisualizer } from './spacing-visualizer';\nimport { store as blockEditorStore } from '../store';\nimport { unlock } from '../lock-unlock';\nimport { cleanEmptyObject, shouldSkipSerialization } from './utils';\n\nexport const DIMENSIONS_SUPPORT_KEY = 'dimensions';\nexport const SPACING_SUPPORT_KEY = 'spacing';\nexport const ALL_SIDES = [ 'top', 'right', 'bottom', 'left' ];\nexport const AXIAL_SIDES = [ 'vertical', 'horizontal' ];\n\nfunction useVisualizer() {\n\tconst [ property, setProperty ] = useState( false );\n\tconst { hideBlockInterface, showBlockInterface } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\tuseEffect( () => {\n\t\tif ( ! property ) {\n\t\t\tshowBlockInterface();\n\t\t} else {\n\t\t\thideBlockInterface();\n\t\t}\n\t}, [ property, showBlockInterface, hideBlockInterface ] );\n\n\treturn [ property, setProperty ];\n}\n\nfunction DimensionsInspectorControl( { children, resetAllFilter } ) {\n\tconst attributesResetAllFilter = useCallback(\n\t\t( attributes ) => {\n\t\t\tconst existingStyle = attributes.style;\n\t\t\tconst updatedStyle = resetAllFilter( existingStyle );\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\tstyle: updatedStyle,\n\t\t\t};\n\t\t},\n\t\t[ resetAllFilter ]\n\t);\n\n\treturn (\n\t\t<InspectorControls\n\t\t\tgroup=\"dimensions\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function DimensionsPanel( { clientId, name, setAttributes, settings } ) {\n\tconst isEnabled = useHasDimensionsPanel( settings );\n\tconst value = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId )?.style,\n\t\t[ clientId ]\n\t);\n\tconst [ visualizedProperty, setVisualizedProperty ] = useVisualizer();\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t} );\n\t};\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst defaultDimensionsControls = getBlockSupport( name, [\n\t\tDIMENSIONS_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\tconst defaultSpacingControls = getBlockSupport( name, [\n\t\tSPACING_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\tconst defaultControls = {\n\t\t...defaultDimensionsControls,\n\t\t...defaultSpacingControls,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<StylesDimensionsPanel\n\t\t\t\tas={ DimensionsInspectorControl }\n\t\t\t\tpanelId={ clientId }\n\t\t\t\tsettings={ settings }\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tdefaultControls={ defaultControls }\n\t\t\t\tonVisualize={ setVisualizedProperty }\n\t\t\t/>\n\t\t\t{ !! settings?.spacing?.padding && (\n\t\t\t\t<PaddingVisualizer\n\t\t\t\t\tforceShow={ visualizedProperty === 'padding' }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! settings?.spacing?.margin && (\n\t\t\t\t<MarginVisualizer\n\t\t\t\t\tforceShow={ visualizedProperty === 'margin' }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\n/**\n * Determine whether there is block support for dimensions.\n *\n * @param {string} blockName Block name.\n * @param {string} feature Background image feature to check for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasDimensionsSupport( blockName, feature = 'any' ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst support = getBlockSupport( blockName, DIMENSIONS_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn !! ( support?.aspectRatio || !! support?.minHeight );\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\nexport default {\n\tuseBlockProps,\n\tattributeKeys: [ 'minHeight', 'style' ],\n\thasSupport( name ) {\n\t\treturn hasDimensionsSupport( name, 'aspectRatio' );\n\t},\n};\n\nfunction useBlockProps( { name, minHeight, style } ) {\n\tif (\n\t\t! hasDimensionsSupport( name, 'aspectRatio' ) ||\n\t\tshouldSkipSerialization( name, DIMENSIONS_SUPPORT_KEY, 'aspectRatio' )\n\t) {\n\t\treturn {};\n\t}\n\n\tconst className = clsx( {\n\t\t'has-aspect-ratio': !! style?.dimensions?.aspectRatio,\n\t} );\n\n\t// Allow dimensions-based inline style overrides to override any global styles rules that\n\t// might be set for the block, and therefore affect the display of the aspect ratio.\n\tconst inlineStyleOverrides = {};\n\n\t// Apply rules to unset incompatible styles.\n\t// Note that a set `aspectRatio` will win out if both an aspect ratio and a minHeight are set.\n\t// This is because the aspect ratio is a newer block support, so (in theory) any aspect ratio\n\t// that is set should be intentional and should override any existing minHeight. The Cover block\n\t// and dimensions controls have logic that will manually clear the aspect ratio if a minHeight\n\t// is set.\n\tif ( style?.dimensions?.aspectRatio ) {\n\t\t// To ensure the aspect ratio does not get overridden by `minHeight` unset any existing rule.\n\t\tinlineStyleOverrides.minHeight = 'unset';\n\t} else if ( minHeight || style?.dimensions?.minHeight ) {\n\t\t// To ensure the minHeight does not get overridden by `aspectRatio` unset any existing rule.\n\t\tinlineStyleOverrides.aspectRatio = 'unset';\n\t}\n\n\treturn { className, style: inlineStyleOverrides };\n}\n\n/**\n * @deprecated\n */\nexport function useCustomSides() {\n\tdeprecated( 'wp.blockEditor.__experimentalUseCustomSides', {\n\t\tsince: '6.3',\n\t\tversion: '6.4',\n\t} );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -23,9 +23,7 @@ import { useBlockSettings, usePrivateStyleOverride } from './utils';
23
23
  import { default as StylesFiltersPanel } from '../components/global-styles/filters-panel';
24
24
  import { useBlockEditingMode } from '../components/block-editing-mode';
25
25
  import { useBlockElement } from '../components/block-list/use-block-props/use-block-refs';
26
- import { jsx as _jsx } from "react/jsx-runtime";
27
- import { Fragment as _Fragment } from "react/jsx-runtime";
28
- import { jsxs as _jsxs } from "react/jsx-runtime";
26
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
29
27
  const EMPTY_ARRAY = [];
30
28
 
31
29
  // Safari does not always update the duotone filter when the duotone colors
@@ -240,12 +238,12 @@ function useDuotoneStyles({
240
238
  // `inline-block` is used instead of `none` to ensure that scroll
241
239
  // position is not affected, as `none` results in the editor
242
240
  // scrolling to the top of the block.
243
- blockElement.style.display = 'inline-block';
241
+ blockElement.style.setProperty('display', 'inline-block');
244
242
  // Simply accessing el.offsetHeight flushes layout and style changes
245
243
  // in WebKit without having to wait for setTimeout.
246
244
  // eslint-disable-next-line no-unused-expressions
247
245
  blockElement.offsetHeight;
248
- blockElement.style.display = display;
246
+ blockElement.style.setProperty('display', display);
249
247
  }
250
248
  // `colors` must be a dependency so this effect runs when the colors
251
249
  // change in Safari.
@@ -1 +1 @@
1
- {"version":3,"names":["extend","namesPlugin","getBlockSupport","getBlockType","hasBlockSupport","useInstanceId","addFilter","useMemo","useEffect","BlockControls","InspectorControls","__experimentalDuotoneControl","DuotoneControl","useSettings","getDuotoneFilter","getDuotoneStylesheet","getDuotoneUnsetStylesheet","getBlockCSSSelector","scopeSelector","useBlockSettings","usePrivateStyleOverride","default","StylesFiltersPanel","useBlockEditingMode","useBlockElement","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","EMPTY_ARRAY","isSafari","window","navigator","userAgent","includes","useMultiOriginPresets","presetSetting","defaultSetting","enableDefault","userPresets","themePresets","defaultPresets","getColorsFromDuotonePreset","duotone","duotonePalette","preset","find","slug","colors","undefined","getDuotonePresetFromColors","Array","isArray","duotonePreset","every","val","index","DuotonePanelPure","style","setAttributes","name","duotoneStyle","color","settings","blockEditingMode","colorPalette","enableCustomColors","enableCustomDuotone","disableCustomColors","disableCustomDuotone","length","duotonePresetOrColors","children","group","value","filter","onChange","newDuotone","newStyle","__experimentalShareWithChildBlocks","maybePreset","shareWithChildBlocks","edit","useBlockProps","attributeKeys","hasSupport","addDuotoneAttributes","attributes","Object","assign","type","useDuotoneStyles","clientId","id","filterId","selector","duotoneSelector","attribute","duotoneAttr","isCustom","isPreset","isCSS","selectors","split","selectorsScoped","map","selectorPart","trim","join","isValidFilter","css","__unstableType","assets","blockElement","display","offsetHeight","DUOTONE_BLOCK_PROPS_REFERENCE","blockType","duotoneSupport","experimentalDuotone","rootSelector","fallback","filterClass","shouldRender","className"],"sources":["@wordpress/block-editor/src/hooks/duotone.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockSupport,\n\tgetBlockType,\n\thasBlockSupport,\n} from '@wordpress/blocks';\nimport { useInstanceId } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\nimport { useMemo, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tBlockControls,\n\tInspectorControls,\n\t__experimentalDuotoneControl as DuotoneControl,\n\tuseSettings,\n} from '../components';\nimport {\n\tgetDuotoneFilter,\n\tgetDuotoneStylesheet,\n\tgetDuotoneUnsetStylesheet,\n} from '../components/duotone/utils';\nimport { getBlockCSSSelector } from '../components/global-styles/get-block-css-selector';\nimport { scopeSelector } from '../components/global-styles/utils';\nimport { useBlockSettings, usePrivateStyleOverride } from './utils';\nimport { default as StylesFiltersPanel } from '../components/global-styles/filters-panel';\nimport { useBlockEditingMode } from '../components/block-editing-mode';\nimport { useBlockElement } from '../components/block-list/use-block-props/use-block-refs';\n\nconst EMPTY_ARRAY = [];\n\n// Safari does not always update the duotone filter when the duotone colors\n// are changed. This browser check is later used to force a re-render of the block\n// element to ensure the duotone filter is updated. The check is included at the\n// root of this file as it only needs to be run once per page load.\nconst isSafari =\n\twindow?.navigator.userAgent &&\n\twindow.navigator.userAgent.includes( 'Safari' ) &&\n\t! window.navigator.userAgent.includes( 'Chrome' ) &&\n\t! window.navigator.userAgent.includes( 'Chromium' );\n\nextend( [ namesPlugin ] );\n\nfunction useMultiOriginPresets( { presetSetting, defaultSetting } ) {\n\tconst [ enableDefault, userPresets, themePresets, defaultPresets ] =\n\t\tuseSettings(\n\t\t\tdefaultSetting,\n\t\t\t`${ presetSetting }.custom`,\n\t\t\t`${ presetSetting }.theme`,\n\t\t\t`${ presetSetting }.default`\n\t\t);\n\treturn useMemo(\n\t\t() => [\n\t\t\t...( userPresets || EMPTY_ARRAY ),\n\t\t\t...( themePresets || EMPTY_ARRAY ),\n\t\t\t...( ( enableDefault && defaultPresets ) || EMPTY_ARRAY ),\n\t\t],\n\t\t[ enableDefault, userPresets, themePresets, defaultPresets ]\n\t);\n}\n\nexport function getColorsFromDuotonePreset( duotone, duotonePalette ) {\n\tif ( ! duotone ) {\n\t\treturn;\n\t}\n\tconst preset = duotonePalette?.find( ( { slug } ) => {\n\t\treturn duotone === `var:preset|duotone|${ slug }`;\n\t} );\n\n\treturn preset ? preset.colors : undefined;\n}\n\nexport function getDuotonePresetFromColors( colors, duotonePalette ) {\n\tif ( ! colors || ! Array.isArray( colors ) ) {\n\t\treturn;\n\t}\n\n\tconst preset = duotonePalette?.find( ( duotonePreset ) => {\n\t\treturn duotonePreset?.colors?.every(\n\t\t\t( val, index ) => val === colors[ index ]\n\t\t);\n\t} );\n\n\treturn preset ? `var:preset|duotone|${ preset.slug }` : undefined;\n}\n\nfunction DuotonePanelPure( { style, setAttributes, name } ) {\n\tconst duotoneStyle = style?.color?.duotone;\n\tconst settings = useBlockSettings( name );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst duotonePalette = useMultiOriginPresets( {\n\t\tpresetSetting: 'color.duotone',\n\t\tdefaultSetting: 'color.defaultDuotone',\n\t} );\n\tconst colorPalette = useMultiOriginPresets( {\n\t\tpresetSetting: 'color.palette',\n\t\tdefaultSetting: 'color.defaultPalette',\n\t} );\n\tconst [ enableCustomColors, enableCustomDuotone ] = useSettings(\n\t\t'color.custom',\n\t\t'color.customDuotone'\n\t);\n\tconst disableCustomColors = ! enableCustomColors;\n\tconst disableCustomDuotone =\n\t\t! enableCustomDuotone ||\n\t\t( colorPalette?.length === 0 && disableCustomColors );\n\n\tif ( duotonePalette?.length === 0 && disableCustomDuotone ) {\n\t\treturn null;\n\t}\n\n\tif ( blockEditingMode !== 'default' ) {\n\t\treturn null;\n\t}\n\n\tconst duotonePresetOrColors = ! Array.isArray( duotoneStyle )\n\t\t? getColorsFromDuotonePreset( duotoneStyle, duotonePalette )\n\t\t: duotoneStyle;\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls group=\"filter\">\n\t\t\t\t<StylesFiltersPanel\n\t\t\t\t\tvalue={ { filter: { duotone: duotonePresetOrColors } } }\n\t\t\t\t\tonChange={ ( newDuotone ) => {\n\t\t\t\t\t\tconst newStyle = {\n\t\t\t\t\t\t\t...style,\n\t\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t\t...newDuotone?.filter,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t\tsetAttributes( { style: newStyle } );\n\t\t\t\t\t} }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"block\" __experimentalShareWithChildBlocks>\n\t\t\t\t<DuotoneControl\n\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\tdisableCustomDuotone={ disableCustomDuotone }\n\t\t\t\t\tdisableCustomColors={ disableCustomColors }\n\t\t\t\t\tvalue={ duotonePresetOrColors }\n\t\t\t\t\tonChange={ ( newDuotone ) => {\n\t\t\t\t\t\tconst maybePreset = getDuotonePresetFromColors(\n\t\t\t\t\t\t\tnewDuotone,\n\t\t\t\t\t\t\tduotonePalette\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst newStyle = {\n\t\t\t\t\t\t\t...style,\n\t\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t\t...style?.color,\n\t\t\t\t\t\t\t\tduotone: maybePreset ?? newDuotone, // use preset or fallback to custom colors.\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t\tsetAttributes( { style: newStyle } );\n\t\t\t\t\t} }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t</>\n\t);\n}\n\nexport default {\n\tshareWithChildBlocks: true,\n\tedit: DuotonePanelPure,\n\tuseBlockProps,\n\tattributeKeys: [ 'style' ],\n\thasSupport( name ) {\n\t\treturn hasBlockSupport( name, 'filter.duotone' );\n\t},\n};\n\n/**\n * Filters registered block settings, extending attributes to include\n * the `duotone` attribute.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addDuotoneAttributes( settings ) {\n\t// Previous `color.__experimentalDuotone` support flag is migrated via\n\t// block_type_metadata_settings filter in `lib/block-supports/duotone.php`.\n\tif ( ! hasBlockSupport( settings, 'filter.duotone' ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify their own attribute definition with default\n\t// values if needed.\n\tif ( ! settings.attributes.style ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tstyle: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\nfunction useDuotoneStyles( {\n\tclientId,\n\tid: filterId,\n\tselector: duotoneSelector,\n\tattribute: duotoneAttr,\n} ) {\n\tconst duotonePalette = useMultiOriginPresets( {\n\t\tpresetSetting: 'color.duotone',\n\t\tdefaultSetting: 'color.defaultDuotone',\n\t} );\n\n\t// Possible values for duotone attribute:\n\t// 1. Array of colors - e.g. ['#000000', '#ffffff'].\n\t// 2. Variable for an existing Duotone preset - e.g. 'var:preset|duotone|green-blue' or 'var(--wp--preset--duotone--green-blue)''\n\t// 3. A CSS string - e.g. 'unset' to remove globally applied duotone.\n\tconst isCustom = Array.isArray( duotoneAttr );\n\tconst duotonePreset = isCustom\n\t\t? undefined\n\t\t: getColorsFromDuotonePreset( duotoneAttr, duotonePalette );\n\tconst isPreset = typeof duotoneAttr === 'string' && duotonePreset;\n\tconst isCSS = typeof duotoneAttr === 'string' && ! isPreset;\n\n\t// Match the structure of WP_Duotone_Gutenberg::render_duotone_support() in PHP.\n\tlet colors = null;\n\tif ( isPreset ) {\n\t\t// Array of colors.\n\t\tcolors = duotonePreset;\n\t} else if ( isCSS ) {\n\t\t// CSS filter property string (e.g. 'unset').\n\t\tcolors = duotoneAttr;\n\t} else if ( isCustom ) {\n\t\t// Array of colors.\n\t\tcolors = duotoneAttr;\n\t}\n\n\t// Build the CSS selectors to which the filter will be applied.\n\tconst selectors = duotoneSelector.split( ',' );\n\n\tconst selectorsScoped = selectors.map( ( selectorPart ) => {\n\t\t// Assuming the selector part is a subclass selector (not a tag name)\n\t\t// so we can prepend the filter id class. If we want to support elements\n\t\t// such as `img` or namespaces, we'll need to add a case for that here.\n\t\treturn `.${ filterId }${ selectorPart.trim() }`;\n\t} );\n\n\tconst selector = selectorsScoped.join( ', ' );\n\n\tconst isValidFilter = Array.isArray( colors ) || colors === 'unset';\n\n\tusePrivateStyleOverride(\n\t\tisValidFilter\n\t\t\t? {\n\t\t\t\t\tcss:\n\t\t\t\t\t\tcolors !== 'unset'\n\t\t\t\t\t\t\t? getDuotoneStylesheet( selector, filterId )\n\t\t\t\t\t\t\t: getDuotoneUnsetStylesheet( selector ),\n\t\t\t\t\t__unstableType: 'presets',\n\t\t\t }\n\t\t\t: undefined\n\t);\n\tusePrivateStyleOverride(\n\t\tisValidFilter\n\t\t\t? {\n\t\t\t\t\tassets:\n\t\t\t\t\t\tcolors !== 'unset'\n\t\t\t\t\t\t\t? getDuotoneFilter( filterId, colors )\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\t__unstableType: 'svgs',\n\t\t\t }\n\t\t\t: undefined\n\t);\n\n\tconst blockElement = useBlockElement( clientId );\n\n\tuseEffect( () => {\n\t\tif ( ! isValidFilter ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Safari does not always update the duotone filter when the duotone\n\t\t// colors are changed. When using Safari, force the block element to be\n\t\t// repainted by the browser to ensure any changes are reflected\n\t\t// visually. This logic matches that used on the site frontend in\n\t\t// `block-supports/duotone.php`.\n\t\tif ( blockElement && isSafari ) {\n\t\t\tconst display = blockElement.style.display;\n\t\t\t// Switch to `inline-block` to force a repaint. In the editor,\n\t\t\t// `inline-block` is used instead of `none` to ensure that scroll\n\t\t\t// position is not affected, as `none` results in the editor\n\t\t\t// scrolling to the top of the block.\n\t\t\tblockElement.style.display = 'inline-block';\n\t\t\t// Simply accessing el.offsetHeight flushes layout and style changes\n\t\t\t// in WebKit without having to wait for setTimeout.\n\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\tblockElement.offsetHeight;\n\t\t\tblockElement.style.display = display;\n\t\t}\n\t\t// `colors` must be a dependency so this effect runs when the colors\n\t\t// change in Safari.\n\t}, [ isValidFilter, blockElement, colors ] );\n}\n\n// Used for generating the instance ID\nconst DUOTONE_BLOCK_PROPS_REFERENCE = {};\n\nfunction useBlockProps( { clientId, name, style } ) {\n\tconst id = useInstanceId( DUOTONE_BLOCK_PROPS_REFERENCE );\n\tconst selector = useMemo( () => {\n\t\tconst blockType = getBlockType( name );\n\n\t\tif ( blockType ) {\n\t\t\t// Backwards compatibility for `supports.color.__experimentalDuotone`\n\t\t\t// is provided via the `block_type_metadata_settings` filter. If\n\t\t\t// `supports.filter.duotone` has not been set and the\n\t\t\t// experimental property has been, the experimental property\n\t\t\t// value is copied into `supports.filter.duotone`.\n\t\t\tconst duotoneSupport = getBlockSupport(\n\t\t\t\tblockType,\n\t\t\t\t'filter.duotone',\n\t\t\t\tfalse\n\t\t\t);\n\t\t\tif ( ! duotoneSupport ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// If the experimental duotone support was set, that value is\n\t\t\t// to be treated as a selector and requires scoping.\n\t\t\tconst experimentalDuotone = getBlockSupport(\n\t\t\t\tblockType,\n\t\t\t\t'color.__experimentalDuotone',\n\t\t\t\tfalse\n\t\t\t);\n\t\t\tif ( experimentalDuotone ) {\n\t\t\t\tconst rootSelector = getBlockCSSSelector( blockType );\n\t\t\t\treturn typeof experimentalDuotone === 'string'\n\t\t\t\t\t? scopeSelector( rootSelector, experimentalDuotone )\n\t\t\t\t\t: rootSelector;\n\t\t\t}\n\n\t\t\t// Regular filter.duotone support uses filter.duotone selectors with fallbacks.\n\t\t\treturn getBlockCSSSelector( blockType, 'filter.duotone', {\n\t\t\t\tfallback: true,\n\t\t\t} );\n\t\t}\n\t}, [ name ] );\n\n\tconst attribute = style?.color?.duotone;\n\n\tconst filterClass = `wp-duotone-${ id }`;\n\n\tconst shouldRender = selector && attribute;\n\n\tuseDuotoneStyles( {\n\t\tclientId,\n\t\tid: filterClass,\n\t\tselector,\n\t\tattribute,\n\t} );\n\n\treturn {\n\t\tclassName: shouldRender ? filterClass : '',\n\t};\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/editor/duotone/add-attributes',\n\taddDuotoneAttributes\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["extend","namesPlugin","getBlockSupport","getBlockType","hasBlockSupport","useInstanceId","addFilter","useMemo","useEffect","BlockControls","InspectorControls","__experimentalDuotoneControl","DuotoneControl","useSettings","getDuotoneFilter","getDuotoneStylesheet","getDuotoneUnsetStylesheet","getBlockCSSSelector","scopeSelector","useBlockSettings","usePrivateStyleOverride","default","StylesFiltersPanel","useBlockEditingMode","useBlockElement","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","EMPTY_ARRAY","isSafari","window","navigator","userAgent","includes","useMultiOriginPresets","presetSetting","defaultSetting","enableDefault","userPresets","themePresets","defaultPresets","getColorsFromDuotonePreset","duotone","duotonePalette","preset","find","slug","colors","undefined","getDuotonePresetFromColors","Array","isArray","duotonePreset","every","val","index","DuotonePanelPure","style","setAttributes","name","duotoneStyle","color","settings","blockEditingMode","colorPalette","enableCustomColors","enableCustomDuotone","disableCustomColors","disableCustomDuotone","length","duotonePresetOrColors","children","group","value","filter","onChange","newDuotone","newStyle","__experimentalShareWithChildBlocks","maybePreset","shareWithChildBlocks","edit","useBlockProps","attributeKeys","hasSupport","addDuotoneAttributes","attributes","Object","assign","type","useDuotoneStyles","clientId","id","filterId","selector","duotoneSelector","attribute","duotoneAttr","isCustom","isPreset","isCSS","selectors","split","selectorsScoped","map","selectorPart","trim","join","isValidFilter","css","__unstableType","assets","blockElement","display","setProperty","offsetHeight","DUOTONE_BLOCK_PROPS_REFERENCE","blockType","duotoneSupport","experimentalDuotone","rootSelector","fallback","filterClass","shouldRender","className"],"sources":["@wordpress/block-editor/src/hooks/duotone.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockSupport,\n\tgetBlockType,\n\thasBlockSupport,\n} from '@wordpress/blocks';\nimport { useInstanceId } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\nimport { useMemo, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tBlockControls,\n\tInspectorControls,\n\t__experimentalDuotoneControl as DuotoneControl,\n\tuseSettings,\n} from '../components';\nimport {\n\tgetDuotoneFilter,\n\tgetDuotoneStylesheet,\n\tgetDuotoneUnsetStylesheet,\n} from '../components/duotone/utils';\nimport { getBlockCSSSelector } from '../components/global-styles/get-block-css-selector';\nimport { scopeSelector } from '../components/global-styles/utils';\nimport { useBlockSettings, usePrivateStyleOverride } from './utils';\nimport { default as StylesFiltersPanel } from '../components/global-styles/filters-panel';\nimport { useBlockEditingMode } from '../components/block-editing-mode';\nimport { useBlockElement } from '../components/block-list/use-block-props/use-block-refs';\n\nconst EMPTY_ARRAY = [];\n\n// Safari does not always update the duotone filter when the duotone colors\n// are changed. This browser check is later used to force a re-render of the block\n// element to ensure the duotone filter is updated. The check is included at the\n// root of this file as it only needs to be run once per page load.\nconst isSafari =\n\twindow?.navigator.userAgent &&\n\twindow.navigator.userAgent.includes( 'Safari' ) &&\n\t! window.navigator.userAgent.includes( 'Chrome' ) &&\n\t! window.navigator.userAgent.includes( 'Chromium' );\n\nextend( [ namesPlugin ] );\n\nfunction useMultiOriginPresets( { presetSetting, defaultSetting } ) {\n\tconst [ enableDefault, userPresets, themePresets, defaultPresets ] =\n\t\tuseSettings(\n\t\t\tdefaultSetting,\n\t\t\t`${ presetSetting }.custom`,\n\t\t\t`${ presetSetting }.theme`,\n\t\t\t`${ presetSetting }.default`\n\t\t);\n\treturn useMemo(\n\t\t() => [\n\t\t\t...( userPresets || EMPTY_ARRAY ),\n\t\t\t...( themePresets || EMPTY_ARRAY ),\n\t\t\t...( ( enableDefault && defaultPresets ) || EMPTY_ARRAY ),\n\t\t],\n\t\t[ enableDefault, userPresets, themePresets, defaultPresets ]\n\t);\n}\n\nexport function getColorsFromDuotonePreset( duotone, duotonePalette ) {\n\tif ( ! duotone ) {\n\t\treturn;\n\t}\n\tconst preset = duotonePalette?.find( ( { slug } ) => {\n\t\treturn duotone === `var:preset|duotone|${ slug }`;\n\t} );\n\n\treturn preset ? preset.colors : undefined;\n}\n\nexport function getDuotonePresetFromColors( colors, duotonePalette ) {\n\tif ( ! colors || ! Array.isArray( colors ) ) {\n\t\treturn;\n\t}\n\n\tconst preset = duotonePalette?.find( ( duotonePreset ) => {\n\t\treturn duotonePreset?.colors?.every(\n\t\t\t( val, index ) => val === colors[ index ]\n\t\t);\n\t} );\n\n\treturn preset ? `var:preset|duotone|${ preset.slug }` : undefined;\n}\n\nfunction DuotonePanelPure( { style, setAttributes, name } ) {\n\tconst duotoneStyle = style?.color?.duotone;\n\tconst settings = useBlockSettings( name );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst duotonePalette = useMultiOriginPresets( {\n\t\tpresetSetting: 'color.duotone',\n\t\tdefaultSetting: 'color.defaultDuotone',\n\t} );\n\tconst colorPalette = useMultiOriginPresets( {\n\t\tpresetSetting: 'color.palette',\n\t\tdefaultSetting: 'color.defaultPalette',\n\t} );\n\tconst [ enableCustomColors, enableCustomDuotone ] = useSettings(\n\t\t'color.custom',\n\t\t'color.customDuotone'\n\t);\n\tconst disableCustomColors = ! enableCustomColors;\n\tconst disableCustomDuotone =\n\t\t! enableCustomDuotone ||\n\t\t( colorPalette?.length === 0 && disableCustomColors );\n\n\tif ( duotonePalette?.length === 0 && disableCustomDuotone ) {\n\t\treturn null;\n\t}\n\n\tif ( blockEditingMode !== 'default' ) {\n\t\treturn null;\n\t}\n\n\tconst duotonePresetOrColors = ! Array.isArray( duotoneStyle )\n\t\t? getColorsFromDuotonePreset( duotoneStyle, duotonePalette )\n\t\t: duotoneStyle;\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls group=\"filter\">\n\t\t\t\t<StylesFiltersPanel\n\t\t\t\t\tvalue={ { filter: { duotone: duotonePresetOrColors } } }\n\t\t\t\t\tonChange={ ( newDuotone ) => {\n\t\t\t\t\t\tconst newStyle = {\n\t\t\t\t\t\t\t...style,\n\t\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t\t...newDuotone?.filter,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t\tsetAttributes( { style: newStyle } );\n\t\t\t\t\t} }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"block\" __experimentalShareWithChildBlocks>\n\t\t\t\t<DuotoneControl\n\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\tdisableCustomDuotone={ disableCustomDuotone }\n\t\t\t\t\tdisableCustomColors={ disableCustomColors }\n\t\t\t\t\tvalue={ duotonePresetOrColors }\n\t\t\t\t\tonChange={ ( newDuotone ) => {\n\t\t\t\t\t\tconst maybePreset = getDuotonePresetFromColors(\n\t\t\t\t\t\t\tnewDuotone,\n\t\t\t\t\t\t\tduotonePalette\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst newStyle = {\n\t\t\t\t\t\t\t...style,\n\t\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t\t...style?.color,\n\t\t\t\t\t\t\t\tduotone: maybePreset ?? newDuotone, // use preset or fallback to custom colors.\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t\tsetAttributes( { style: newStyle } );\n\t\t\t\t\t} }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t</>\n\t);\n}\n\nexport default {\n\tshareWithChildBlocks: true,\n\tedit: DuotonePanelPure,\n\tuseBlockProps,\n\tattributeKeys: [ 'style' ],\n\thasSupport( name ) {\n\t\treturn hasBlockSupport( name, 'filter.duotone' );\n\t},\n};\n\n/**\n * Filters registered block settings, extending attributes to include\n * the `duotone` attribute.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addDuotoneAttributes( settings ) {\n\t// Previous `color.__experimentalDuotone` support flag is migrated via\n\t// block_type_metadata_settings filter in `lib/block-supports/duotone.php`.\n\tif ( ! hasBlockSupport( settings, 'filter.duotone' ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify their own attribute definition with default\n\t// values if needed.\n\tif ( ! settings.attributes.style ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tstyle: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\nfunction useDuotoneStyles( {\n\tclientId,\n\tid: filterId,\n\tselector: duotoneSelector,\n\tattribute: duotoneAttr,\n} ) {\n\tconst duotonePalette = useMultiOriginPresets( {\n\t\tpresetSetting: 'color.duotone',\n\t\tdefaultSetting: 'color.defaultDuotone',\n\t} );\n\n\t// Possible values for duotone attribute:\n\t// 1. Array of colors - e.g. ['#000000', '#ffffff'].\n\t// 2. Variable for an existing Duotone preset - e.g. 'var:preset|duotone|green-blue' or 'var(--wp--preset--duotone--green-blue)''\n\t// 3. A CSS string - e.g. 'unset' to remove globally applied duotone.\n\tconst isCustom = Array.isArray( duotoneAttr );\n\tconst duotonePreset = isCustom\n\t\t? undefined\n\t\t: getColorsFromDuotonePreset( duotoneAttr, duotonePalette );\n\tconst isPreset = typeof duotoneAttr === 'string' && duotonePreset;\n\tconst isCSS = typeof duotoneAttr === 'string' && ! isPreset;\n\n\t// Match the structure of WP_Duotone_Gutenberg::render_duotone_support() in PHP.\n\tlet colors = null;\n\tif ( isPreset ) {\n\t\t// Array of colors.\n\t\tcolors = duotonePreset;\n\t} else if ( isCSS ) {\n\t\t// CSS filter property string (e.g. 'unset').\n\t\tcolors = duotoneAttr;\n\t} else if ( isCustom ) {\n\t\t// Array of colors.\n\t\tcolors = duotoneAttr;\n\t}\n\n\t// Build the CSS selectors to which the filter will be applied.\n\tconst selectors = duotoneSelector.split( ',' );\n\n\tconst selectorsScoped = selectors.map( ( selectorPart ) => {\n\t\t// Assuming the selector part is a subclass selector (not a tag name)\n\t\t// so we can prepend the filter id class. If we want to support elements\n\t\t// such as `img` or namespaces, we'll need to add a case for that here.\n\t\treturn `.${ filterId }${ selectorPart.trim() }`;\n\t} );\n\n\tconst selector = selectorsScoped.join( ', ' );\n\n\tconst isValidFilter = Array.isArray( colors ) || colors === 'unset';\n\n\tusePrivateStyleOverride(\n\t\tisValidFilter\n\t\t\t? {\n\t\t\t\t\tcss:\n\t\t\t\t\t\tcolors !== 'unset'\n\t\t\t\t\t\t\t? getDuotoneStylesheet( selector, filterId )\n\t\t\t\t\t\t\t: getDuotoneUnsetStylesheet( selector ),\n\t\t\t\t\t__unstableType: 'presets',\n\t\t\t }\n\t\t\t: undefined\n\t);\n\tusePrivateStyleOverride(\n\t\tisValidFilter\n\t\t\t? {\n\t\t\t\t\tassets:\n\t\t\t\t\t\tcolors !== 'unset'\n\t\t\t\t\t\t\t? getDuotoneFilter( filterId, colors )\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\t__unstableType: 'svgs',\n\t\t\t }\n\t\t\t: undefined\n\t);\n\n\tconst blockElement = useBlockElement( clientId );\n\n\tuseEffect( () => {\n\t\tif ( ! isValidFilter ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Safari does not always update the duotone filter when the duotone\n\t\t// colors are changed. When using Safari, force the block element to be\n\t\t// repainted by the browser to ensure any changes are reflected\n\t\t// visually. This logic matches that used on the site frontend in\n\t\t// `block-supports/duotone.php`.\n\t\tif ( blockElement && isSafari ) {\n\t\t\tconst display = blockElement.style.display;\n\t\t\t// Switch to `inline-block` to force a repaint. In the editor,\n\t\t\t// `inline-block` is used instead of `none` to ensure that scroll\n\t\t\t// position is not affected, as `none` results in the editor\n\t\t\t// scrolling to the top of the block.\n\t\t\tblockElement.style.setProperty( 'display', 'inline-block' );\n\t\t\t// Simply accessing el.offsetHeight flushes layout and style changes\n\t\t\t// in WebKit without having to wait for setTimeout.\n\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\tblockElement.offsetHeight;\n\t\t\tblockElement.style.setProperty( 'display', display );\n\t\t}\n\t\t// `colors` must be a dependency so this effect runs when the colors\n\t\t// change in Safari.\n\t}, [ isValidFilter, blockElement, colors ] );\n}\n\n// Used for generating the instance ID\nconst DUOTONE_BLOCK_PROPS_REFERENCE = {};\n\nfunction useBlockProps( { clientId, name, style } ) {\n\tconst id = useInstanceId( DUOTONE_BLOCK_PROPS_REFERENCE );\n\tconst selector = useMemo( () => {\n\t\tconst blockType = getBlockType( name );\n\n\t\tif ( blockType ) {\n\t\t\t// Backwards compatibility for `supports.color.__experimentalDuotone`\n\t\t\t// is provided via the `block_type_metadata_settings` filter. If\n\t\t\t// `supports.filter.duotone` has not been set and the\n\t\t\t// experimental property has been, the experimental property\n\t\t\t// value is copied into `supports.filter.duotone`.\n\t\t\tconst duotoneSupport = getBlockSupport(\n\t\t\t\tblockType,\n\t\t\t\t'filter.duotone',\n\t\t\t\tfalse\n\t\t\t);\n\t\t\tif ( ! duotoneSupport ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// If the experimental duotone support was set, that value is\n\t\t\t// to be treated as a selector and requires scoping.\n\t\t\tconst experimentalDuotone = getBlockSupport(\n\t\t\t\tblockType,\n\t\t\t\t'color.__experimentalDuotone',\n\t\t\t\tfalse\n\t\t\t);\n\t\t\tif ( experimentalDuotone ) {\n\t\t\t\tconst rootSelector = getBlockCSSSelector( blockType );\n\t\t\t\treturn typeof experimentalDuotone === 'string'\n\t\t\t\t\t? scopeSelector( rootSelector, experimentalDuotone )\n\t\t\t\t\t: rootSelector;\n\t\t\t}\n\n\t\t\t// Regular filter.duotone support uses filter.duotone selectors with fallbacks.\n\t\t\treturn getBlockCSSSelector( blockType, 'filter.duotone', {\n\t\t\t\tfallback: true,\n\t\t\t} );\n\t\t}\n\t}, [ name ] );\n\n\tconst attribute = style?.color?.duotone;\n\n\tconst filterClass = `wp-duotone-${ id }`;\n\n\tconst shouldRender = selector && attribute;\n\n\tuseDuotoneStyles( {\n\t\tclientId,\n\t\tid: filterClass,\n\t\tselector,\n\t\tattribute,\n\t} );\n\n\treturn {\n\t\tclassName: shouldRender ? filterClass : '',\n\t};\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/editor/duotone/add-attributes',\n\taddDuotoneAttributes\n);\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,MAAM,QAAQ,QAAQ;AAC/B,OAAOC,WAAW,MAAM,sBAAsB;;AAE9C;AACA;AACA;AACA,SACCC,eAAe,EACfC,YAAY,EACZC,eAAe,QACT,mBAAmB;AAC1B,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,OAAO,EAAEC,SAAS,QAAQ,oBAAoB;;AAEvD;AACA;AACA;AACA,SACCC,aAAa,EACbC,iBAAiB,EACjBC,4BAA4B,IAAIC,cAAc,EAC9CC,WAAW,QACL,eAAe;AACtB,SACCC,gBAAgB,EAChBC,oBAAoB,EACpBC,yBAAyB,QACnB,6BAA6B;AACpC,SAASC,mBAAmB,QAAQ,oDAAoD;AACxF,SAASC,aAAa,QAAQ,mCAAmC;AACjE,SAASC,gBAAgB,EAAEC,uBAAuB,QAAQ,SAAS;AACnE,SAASC,OAAO,IAAIC,kBAAkB,QAAQ,2CAA2C;AACzF,SAASC,mBAAmB,QAAQ,kCAAkC;AACtE,SAASC,eAAe,QAAQ,yDAAyD;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAE1F,MAAMC,WAAW,GAAG,EAAE;;AAEtB;AACA;AACA;AACA;AACA,MAAMC,QAAQ,GACbC,MAAM,EAAEC,SAAS,CAACC,SAAS,IAC3BF,MAAM,CAACC,SAAS,CAACC,SAAS,CAACC,QAAQ,CAAE,QAAS,CAAC,IAC/C,CAAEH,MAAM,CAACC,SAAS,CAACC,SAAS,CAACC,QAAQ,CAAE,QAAS,CAAC,IACjD,CAAEH,MAAM,CAACC,SAAS,CAACC,SAAS,CAACC,QAAQ,CAAE,UAAW,CAAC;AAEpDpC,MAAM,CAAE,CAAEC,WAAW,CAAG,CAAC;AAEzB,SAASoC,qBAAqBA,CAAE;EAAEC,aAAa;EAAEC;AAAe,CAAC,EAAG;EACnE,MAAM,CAAEC,aAAa,EAAEC,WAAW,EAAEC,YAAY,EAAEC,cAAc,CAAE,GACjE9B,WAAW,CACV0B,cAAc,EACd,GAAID,aAAa,SAAU,EAC3B,GAAIA,aAAa,QAAS,EAC1B,GAAIA,aAAa,UAClB,CAAC;EACF,OAAO/B,OAAO,CACb,MAAM,CACL,IAAKkC,WAAW,IAAIV,WAAW,CAAE,EACjC,IAAKW,YAAY,IAAIX,WAAW,CAAE,EAClC,IAAOS,aAAa,IAAIG,cAAc,IAAMZ,WAAW,CAAE,CACzD,EACD,CAAES,aAAa,EAAEC,WAAW,EAAEC,YAAY,EAAEC,cAAc,CAC3D,CAAC;AACF;AAEA,OAAO,SAASC,0BAA0BA,CAAEC,OAAO,EAAEC,cAAc,EAAG;EACrE,IAAK,CAAED,OAAO,EAAG;IAChB;EACD;EACA,MAAME,MAAM,GAAGD,cAAc,EAAEE,IAAI,CAAE,CAAE;IAAEC;EAAK,CAAC,KAAM;IACpD,OAAOJ,OAAO,KAAK,sBAAuBI,IAAI,EAAG;EAClD,CAAE,CAAC;EAEH,OAAOF,MAAM,GAAGA,MAAM,CAACG,MAAM,GAAGC,SAAS;AAC1C;AAEA,OAAO,SAASC,0BAA0BA,CAAEF,MAAM,EAAEJ,cAAc,EAAG;EACpE,IAAK,CAAEI,MAAM,IAAI,CAAEG,KAAK,CAACC,OAAO,CAAEJ,MAAO,CAAC,EAAG;IAC5C;EACD;EAEA,MAAMH,MAAM,GAAGD,cAAc,EAAEE,IAAI,CAAIO,aAAa,IAAM;IACzD,OAAOA,aAAa,EAAEL,MAAM,EAAEM,KAAK,CAClC,CAAEC,GAAG,EAAEC,KAAK,KAAMD,GAAG,KAAKP,MAAM,CAAEQ,KAAK,CACxC,CAAC;EACF,CAAE,CAAC;EAEH,OAAOX,MAAM,GAAG,sBAAuBA,MAAM,CAACE,IAAI,EAAG,GAAGE,SAAS;AAClE;AAEA,SAASQ,gBAAgBA,CAAE;EAAEC,KAAK;EAAEC,aAAa;EAAEC;AAAK,CAAC,EAAG;EAC3D,MAAMC,YAAY,GAAGH,KAAK,EAAEI,KAAK,EAAEnB,OAAO;EAC1C,MAAMoB,QAAQ,GAAG9C,gBAAgB,CAAE2C,IAAK,CAAC;EACzC,MAAMI,gBAAgB,GAAG3C,mBAAmB,CAAC,CAAC;EAE9C,MAAMuB,cAAc,GAAGT,qBAAqB,CAAE;IAC7CC,aAAa,EAAE,eAAe;IAC9BC,cAAc,EAAE;EACjB,CAAE,CAAC;EACH,MAAM4B,YAAY,GAAG9B,qBAAqB,CAAE;IAC3CC,aAAa,EAAE,eAAe;IAC9BC,cAAc,EAAE;EACjB,CAAE,CAAC;EACH,MAAM,CAAE6B,kBAAkB,EAAEC,mBAAmB,CAAE,GAAGxD,WAAW,CAC9D,cAAc,EACd,qBACD,CAAC;EACD,MAAMyD,mBAAmB,GAAG,CAAEF,kBAAkB;EAChD,MAAMG,oBAAoB,GACzB,CAAEF,mBAAmB,IACnBF,YAAY,EAAEK,MAAM,KAAK,CAAC,IAAIF,mBAAqB;EAEtD,IAAKxB,cAAc,EAAE0B,MAAM,KAAK,CAAC,IAAID,oBAAoB,EAAG;IAC3D,OAAO,IAAI;EACZ;EAEA,IAAKL,gBAAgB,KAAK,SAAS,EAAG;IACrC,OAAO,IAAI;EACZ;EAEA,MAAMO,qBAAqB,GAAG,CAAEpB,KAAK,CAACC,OAAO,CAAES,YAAa,CAAC,GAC1DnB,0BAA0B,CAAEmB,YAAY,EAAEjB,cAAe,CAAC,GAC1DiB,YAAY;EAEf,oBACCjC,KAAA,CAAAF,SAAA;IAAA8C,QAAA,gBACChD,IAAA,CAAChB,iBAAiB;MAACiE,KAAK,EAAC,QAAQ;MAAAD,QAAA,eAChChD,IAAA,CAACJ,kBAAkB;QAClBsD,KAAK,EAAG;UAAEC,MAAM,EAAE;YAAEhC,OAAO,EAAE4B;UAAsB;QAAE,CAAG;QACxDK,QAAQ,EAAKC,UAAU,IAAM;UAC5B,MAAMC,QAAQ,GAAG;YAChB,GAAGpB,KAAK;YACRI,KAAK,EAAE;cACN,GAAGe,UAAU,EAAEF;YAChB;UACD,CAAC;UACDhB,aAAa,CAAE;YAAED,KAAK,EAAEoB;UAAS,CAAE,CAAC;QACrC,CAAG;QACHf,QAAQ,EAAGA;MAAU,CACrB;IAAC,CACgB,CAAC,eACpBvC,IAAA,CAACjB,aAAa;MAACkE,KAAK,EAAC,OAAO;MAACM,kCAAkC;MAAAP,QAAA,eAC9DhD,IAAA,CAACd,cAAc;QACdkC,cAAc,EAAGA,cAAgB;QACjCqB,YAAY,EAAGA,YAAc;QAC7BI,oBAAoB,EAAGA,oBAAsB;QAC7CD,mBAAmB,EAAGA,mBAAqB;QAC3CM,KAAK,EAAGH,qBAAuB;QAC/BK,QAAQ,EAAKC,UAAU,IAAM;UAC5B,MAAMG,WAAW,GAAG9B,0BAA0B,CAC7C2B,UAAU,EACVjC,cACD,CAAC;UAED,MAAMkC,QAAQ,GAAG;YAChB,GAAGpB,KAAK;YACRI,KAAK,EAAE;cACN,GAAGJ,KAAK,EAAEI,KAAK;cACfnB,OAAO,EAAEqC,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAIH,UAAU,CAAE;YACrC;UACD,CAAC;UACDlB,aAAa,CAAE;YAAED,KAAK,EAAEoB;UAAS,CAAE,CAAC;QACrC,CAAG;QACHf,QAAQ,EAAGA;MAAU,CACrB;IAAC,CACY,CAAC;EAAA,CACf,CAAC;AAEL;AAEA,eAAe;EACdkB,oBAAoB,EAAE,IAAI;EAC1BC,IAAI,EAAEzB,gBAAgB;EACtB0B,aAAa;EACbC,aAAa,EAAE,CAAE,OAAO,CAAE;EAC1BC,UAAUA,CAAEzB,IAAI,EAAG;IAClB,OAAO1D,eAAe,CAAE0D,IAAI,EAAE,gBAAiB,CAAC;EACjD;AACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS0B,oBAAoBA,CAAEvB,QAAQ,EAAG;EACzC;EACA;EACA,IAAK,CAAE7D,eAAe,CAAE6D,QAAQ,EAAE,gBAAiB,CAAC,EAAG;IACtD,OAAOA,QAAQ;EAChB;;EAEA;EACA;EACA,IAAK,CAAEA,QAAQ,CAACwB,UAAU,CAAC7B,KAAK,EAAG;IAClC8B,MAAM,CAACC,MAAM,CAAE1B,QAAQ,CAACwB,UAAU,EAAE;MACnC7B,KAAK,EAAE;QACNgC,IAAI,EAAE;MACP;IACD,CAAE,CAAC;EACJ;EAEA,OAAO3B,QAAQ;AAChB;AAEA,SAAS4B,gBAAgBA,CAAE;EAC1BC,QAAQ;EACRC,EAAE,EAAEC,QAAQ;EACZC,QAAQ,EAAEC,eAAe;EACzBC,SAAS,EAAEC;AACZ,CAAC,EAAG;EACH,MAAMtD,cAAc,GAAGT,qBAAqB,CAAE;IAC7CC,aAAa,EAAE,eAAe;IAC9BC,cAAc,EAAE;EACjB,CAAE,CAAC;;EAEH;EACA;EACA;EACA;EACA,MAAM8D,QAAQ,GAAGhD,KAAK,CAACC,OAAO,CAAE8C,WAAY,CAAC;EAC7C,MAAM7C,aAAa,GAAG8C,QAAQ,GAC3BlD,SAAS,GACTP,0BAA0B,CAAEwD,WAAW,EAAEtD,cAAe,CAAC;EAC5D,MAAMwD,QAAQ,GAAG,OAAOF,WAAW,KAAK,QAAQ,IAAI7C,aAAa;EACjE,MAAMgD,KAAK,GAAG,OAAOH,WAAW,KAAK,QAAQ,IAAI,CAAEE,QAAQ;;EAE3D;EACA,IAAIpD,MAAM,GAAG,IAAI;EACjB,IAAKoD,QAAQ,EAAG;IACf;IACApD,MAAM,GAAGK,aAAa;EACvB,CAAC,MAAM,IAAKgD,KAAK,EAAG;IACnB;IACArD,MAAM,GAAGkD,WAAW;EACrB,CAAC,MAAM,IAAKC,QAAQ,EAAG;IACtB;IACAnD,MAAM,GAAGkD,WAAW;EACrB;;EAEA;EACA,MAAMI,SAAS,GAAGN,eAAe,CAACO,KAAK,CAAE,GAAI,CAAC;EAE9C,MAAMC,eAAe,GAAGF,SAAS,CAACG,GAAG,CAAIC,YAAY,IAAM;IAC1D;IACA;IACA;IACA,OAAO,IAAKZ,QAAQ,GAAKY,YAAY,CAACC,IAAI,CAAC,CAAC,EAAG;EAChD,CAAE,CAAC;EAEH,MAAMZ,QAAQ,GAAGS,eAAe,CAACI,IAAI,CAAE,IAAK,CAAC;EAE7C,MAAMC,aAAa,GAAG1D,KAAK,CAACC,OAAO,CAAEJ,MAAO,CAAC,IAAIA,MAAM,KAAK,OAAO;EAEnE9B,uBAAuB,CACtB2F,aAAa,GACV;IACAC,GAAG,EACF9D,MAAM,KAAK,OAAO,GACfnC,oBAAoB,CAAEkF,QAAQ,EAAED,QAAS,CAAC,GAC1ChF,yBAAyB,CAAEiF,QAAS,CAAC;IACzCgB,cAAc,EAAE;EAChB,CAAC,GACD9D,SACJ,CAAC;EACD/B,uBAAuB,CACtB2F,aAAa,GACV;IACAG,MAAM,EACLhE,MAAM,KAAK,OAAO,GACfpC,gBAAgB,CAAEkF,QAAQ,EAAE9C,MAAO,CAAC,GACpC,EAAE;IACN+D,cAAc,EAAE;EAChB,CAAC,GACD9D,SACJ,CAAC;EAED,MAAMgE,YAAY,GAAG3F,eAAe,CAAEsE,QAAS,CAAC;EAEhDtF,SAAS,CAAE,MAAM;IAChB,IAAK,CAAEuG,aAAa,EAAG;MACtB;IACD;;IAEA;IACA;IACA;IACA;IACA;IACA,IAAKI,YAAY,IAAInF,QAAQ,EAAG;MAC/B,MAAMoF,OAAO,GAAGD,YAAY,CAACvD,KAAK,CAACwD,OAAO;MAC1C;MACA;MACA;MACA;MACAD,YAAY,CAACvD,KAAK,CAACyD,WAAW,CAAE,SAAS,EAAE,cAAe,CAAC;MAC3D;MACA;MACA;MACAF,YAAY,CAACG,YAAY;MACzBH,YAAY,CAACvD,KAAK,CAACyD,WAAW,CAAE,SAAS,EAAED,OAAQ,CAAC;IACrD;IACA;IACA;EACD,CAAC,EAAE,CAAEL,aAAa,EAAEI,YAAY,EAAEjE,MAAM,CAAG,CAAC;AAC7C;;AAEA;AACA,MAAMqE,6BAA6B,GAAG,CAAC,CAAC;AAExC,SAASlC,aAAaA,CAAE;EAAES,QAAQ;EAAEhC,IAAI;EAAEF;AAAM,CAAC,EAAG;EACnD,MAAMmC,EAAE,GAAG1F,aAAa,CAAEkH,6BAA8B,CAAC;EACzD,MAAMtB,QAAQ,GAAG1F,OAAO,CAAE,MAAM;IAC/B,MAAMiH,SAAS,GAAGrH,YAAY,CAAE2D,IAAK,CAAC;IAEtC,IAAK0D,SAAS,EAAG;MAChB;MACA;MACA;MACA;MACA;MACA,MAAMC,cAAc,GAAGvH,eAAe,CACrCsH,SAAS,EACT,gBAAgB,EAChB,KACD,CAAC;MACD,IAAK,CAAEC,cAAc,EAAG;QACvB,OAAO,IAAI;MACZ;;MAEA;MACA;MACA,MAAMC,mBAAmB,GAAGxH,eAAe,CAC1CsH,SAAS,EACT,6BAA6B,EAC7B,KACD,CAAC;MACD,IAAKE,mBAAmB,EAAG;QAC1B,MAAMC,YAAY,GAAG1G,mBAAmB,CAAEuG,SAAU,CAAC;QACrD,OAAO,OAAOE,mBAAmB,KAAK,QAAQ,GAC3CxG,aAAa,CAAEyG,YAAY,EAAED,mBAAoB,CAAC,GAClDC,YAAY;MAChB;;MAEA;MACA,OAAO1G,mBAAmB,CAAEuG,SAAS,EAAE,gBAAgB,EAAE;QACxDI,QAAQ,EAAE;MACX,CAAE,CAAC;IACJ;EACD,CAAC,EAAE,CAAE9D,IAAI,CAAG,CAAC;EAEb,MAAMqC,SAAS,GAAGvC,KAAK,EAAEI,KAAK,EAAEnB,OAAO;EAEvC,MAAMgF,WAAW,GAAG,cAAe9B,EAAE,EAAG;EAExC,MAAM+B,YAAY,GAAG7B,QAAQ,IAAIE,SAAS;EAE1CN,gBAAgB,CAAE;IACjBC,QAAQ;IACRC,EAAE,EAAE8B,WAAW;IACf5B,QAAQ;IACRE;EACD,CAAE,CAAC;EAEH,OAAO;IACN4B,SAAS,EAAED,YAAY,GAAGD,WAAW,GAAG;EACzC,CAAC;AACF;AAEAvH,SAAS,CACR,0BAA0B,EAC1B,oCAAoC,EACpCkF,oBACD,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["addFilter","hasBlockSupport","TokenList","privateApis","componentsPrivateApis","shouldSkipSerialization","TYPOGRAPHY_SUPPORT_KEY","unlock","FONT_FAMILY_SUPPORT_KEY","kebabCase","addAttributes","settings","attributes","fontFamily","Object","assign","type","addSaveProps","props","blockType","classes","className","add","newClassName","value","undefined","useBlockProps","name","attributeKeys","hasSupport","resetFontFamily","setAttributes"],"sources":["@wordpress/block-editor/src/hooks/font-family.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport TokenList from '@wordpress/token-list';\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { shouldSkipSerialization } from './utils';\nimport { TYPOGRAPHY_SUPPORT_KEY } from './typography';\nimport { unlock } from '../lock-unlock';\n\nexport const FONT_FAMILY_SUPPORT_KEY = 'typography.__experimentalFontFamily';\nconst { kebabCase } = unlock( componentsPrivateApis );\n\n/**\n * Filters registered block settings, extending attributes to include\n * the `fontFamily` attribute.\n *\n * @param {Object} settings Original block settings\n * @return {Object} Filtered block settings\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasBlockSupport( settings, FONT_FAMILY_SUPPORT_KEY ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify a default value if needed.\n\tif ( ! settings.attributes.fontFamily ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tfontFamily: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override props assigned to save component to inject font family.\n *\n * @param {Object} props Additional props applied to save element\n * @param {Object} blockType Block type\n * @param {Object} attributes Block attributes\n * @return {Object} Filtered props applied to save element\n */\nfunction addSaveProps( props, blockType, attributes ) {\n\tif ( ! hasBlockSupport( blockType, FONT_FAMILY_SUPPORT_KEY ) ) {\n\t\treturn props;\n\t}\n\n\tif (\n\t\tshouldSkipSerialization(\n\t\t\tblockType,\n\t\t\tTYPOGRAPHY_SUPPORT_KEY,\n\t\t\t'fontFamily'\n\t\t)\n\t) {\n\t\treturn props;\n\t}\n\n\tif ( ! attributes?.fontFamily ) {\n\t\treturn props;\n\t}\n\n\t// Use TokenList to dedupe classes.\n\tconst classes = new TokenList( props.className );\n\tclasses.add( `has-${ kebabCase( attributes?.fontFamily ) }-font-family` );\n\tconst newClassName = classes.value;\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\nfunction useBlockProps( { name, fontFamily } ) {\n\treturn addSaveProps( {}, name, { fontFamily } );\n}\n\nexport default {\n\tuseBlockProps,\n\taddSaveProps,\n\tattributeKeys: [ 'fontFamily' ],\n\thasSupport( name ) {\n\t\treturn hasBlockSupport( name, FONT_FAMILY_SUPPORT_KEY );\n\t},\n};\n\n/**\n * Resets the font family block support attribute. This can be used when\n * disabling the font family support controls for a block via a progressive\n * discovery panel.\n *\n * @param {Object} props Block props.\n * @param {Object} props.setAttributes Function to set block's attributes.\n */\nexport function resetFontFamily( { setAttributes } ) {\n\tsetAttributes( { fontFamily: undefined } );\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/fontFamily/addAttribute',\n\taddAttributes\n);\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,eAAe,QAAQ,mBAAmB;AACnD,OAAOC,SAAS,MAAM,uBAAuB;AAC7C,SAASC,WAAW,IAAIC,qBAAqB,QAAQ,uBAAuB;;AAE5E;AACA;AACA;AACA,SAASC,uBAAuB,QAAQ,SAAS;AACjD,SAASC,sBAAsB,QAAQ,cAAc;AACrD,SAASC,MAAM,QAAQ,gBAAgB;AAEvC,OAAO,MAAMC,uBAAuB,GAAG,qCAAqC;AAC5E,MAAM;EAAEC;AAAU,CAAC,GAAGF,MAAM,CAAEH,qBAAsB,CAAC;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASM,aAAaA,CAAEC,QAAQ,EAAG;EAClC,IAAK,CAAEV,eAAe,CAAEU,QAAQ,EAAEH,uBAAwB,CAAC,EAAG;IAC7D,OAAOG,QAAQ;EAChB;;EAEA;EACA,IAAK,CAAEA,QAAQ,CAACC,UAAU,CAACC,UAAU,EAAG;IACvCC,MAAM,CAACC,MAAM,CAAEJ,QAAQ,CAACC,UAAU,EAAE;MACnCC,UAAU,EAAE;QACXG,IAAI,EAAE;MACP;IACD,CAAE,CAAC;EACJ;EAEA,OAAOL,QAAQ;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASM,YAAYA,CAAEC,KAAK,EAAEC,SAAS,EAAEP,UAAU,EAAG;EACrD,IAAK,CAAEX,eAAe,CAAEkB,SAAS,EAAEX,uBAAwB,CAAC,EAAG;IAC9D,OAAOU,KAAK;EACb;EAEA,IACCb,uBAAuB,CACtBc,SAAS,EACTb,sBAAsB,EACtB,YACD,CAAC,EACA;IACD,OAAOY,KAAK;EACb;EAEA,IAAK,CAAEN,UAAU,EAAEC,UAAU,EAAG;IAC/B,OAAOK,KAAK;EACb;;EAEA;EACA,MAAME,OAAO,GAAG,IAAIlB,SAAS,CAAEgB,KAAK,CAACG,SAAU,CAAC;EAChDD,OAAO,CAACE,GAAG,CAAG,OAAOb,SAAS,CAAEG,UAAU,EAAEC,UAAW,CAAG,cAAc,CAAC;EACzE,MAAMU,YAAY,GAAGH,OAAO,CAACI,KAAK;EAClCN,KAAK,CAACG,SAAS,GAAGE,YAAY,GAAGA,YAAY,GAAGE,SAAS;EAEzD,OAAOP,KAAK;AACb;AAEA,SAASQ,aAAaA,CAAE;EAAEC,IAAI;EAAEd;AAAW,CAAC,EAAG;EAC9C,OAAOI,YAAY,CAAE,CAAC,CAAC,EAAEU,IAAI,EAAE;IAAEd;EAAW,CAAE,CAAC;AAChD;AAEA,eAAe;EACda,aAAa;EACbT,YAAY;EACZW,aAAa,EAAE,CAAE,YAAY,CAAE;EAC/BC,UAAUA,CAAEF,IAAI,EAAG;IAClB,OAAO1B,eAAe,CAAE0B,IAAI,EAAEnB,uBAAwB,CAAC;EACxD;AACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASsB,eAAeA,CAAE;EAAEC;AAAc,CAAC,EAAG;EACpDA,aAAa,CAAE;IAAElB,UAAU,EAAEY;EAAU,CAAE,CAAC;AAC3C;AAEAzB,SAAS,CACR,0BAA0B,EAC1B,8BAA8B,EAC9BU,aACD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["addFilter","hasBlockSupport","TokenList","privateApis","componentsPrivateApis","shouldSkipSerialization","TYPOGRAPHY_SUPPORT_KEY","unlock","FONT_FAMILY_SUPPORT_KEY","kebabCase","addAttributes","settings","attributes","fontFamily","Object","assign","type","addSaveProps","props","blockType","classes","className","add","newClassName","value","undefined","useBlockProps","name","attributeKeys","hasSupport","resetFontFamily","setAttributes"],"sources":["@wordpress/block-editor/src/hooks/font-family.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport TokenList from '@wordpress/token-list';\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { shouldSkipSerialization } from './utils';\nimport { TYPOGRAPHY_SUPPORT_KEY } from './typography';\nimport { unlock } from '../lock-unlock';\n\nexport const FONT_FAMILY_SUPPORT_KEY = 'typography.__experimentalFontFamily';\nconst { kebabCase } = unlock( componentsPrivateApis );\n\n/**\n * Filters registered block settings, extending attributes to include\n * the `fontFamily` attribute.\n *\n * @param {Object} settings Original block settings\n * @return {Object} Filtered block settings\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasBlockSupport( settings, FONT_FAMILY_SUPPORT_KEY ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify a default value if needed.\n\tif ( ! settings.attributes.fontFamily ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tfontFamily: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override props assigned to save component to inject font family.\n *\n * @param {Object} props Additional props applied to save element\n * @param {Object} blockType Block type\n * @param {Object} attributes Block attributes\n * @return {Object} Filtered props applied to save element\n */\nfunction addSaveProps( props, blockType, attributes ) {\n\tif ( ! hasBlockSupport( blockType, FONT_FAMILY_SUPPORT_KEY ) ) {\n\t\treturn props;\n\t}\n\n\tif (\n\t\tshouldSkipSerialization(\n\t\t\tblockType,\n\t\t\tTYPOGRAPHY_SUPPORT_KEY,\n\t\t\t'fontFamily'\n\t\t)\n\t) {\n\t\treturn props;\n\t}\n\n\tif ( ! attributes?.fontFamily ) {\n\t\treturn props;\n\t}\n\n\t// Use TokenList to dedupe classes.\n\tconst classes = new TokenList( props.className );\n\tclasses.add( `has-${ kebabCase( attributes?.fontFamily ) }-font-family` );\n\tconst newClassName = classes.value;\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\nfunction useBlockProps( { name, fontFamily } ) {\n\treturn addSaveProps( {}, name, { fontFamily } );\n}\n\nexport default {\n\tuseBlockProps,\n\taddSaveProps,\n\tattributeKeys: [ 'fontFamily' ],\n\thasSupport( name ) {\n\t\treturn hasBlockSupport( name, FONT_FAMILY_SUPPORT_KEY );\n\t},\n};\n\n/**\n * Resets the font family block support attribute. This can be used when\n * disabling the font family support controls for a block via a progressive\n * discovery panel.\n *\n * @param {Object} props Block props.\n * @param {Object} props.setAttributes Function to set block's attributes.\n */\nexport function resetFontFamily( { setAttributes } ) {\n\tsetAttributes( { fontFamily: undefined } );\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/fontFamily/addAttribute',\n\taddAttributes\n);\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,eAAe,QAAQ,mBAAmB;AACnD,OAAOC,SAAS,MAAM,uBAAuB;AAC7C,SAASC,WAAW,IAAIC,qBAAqB,QAAQ,uBAAuB;;AAE5E;AACA;AACA;AACA,SAASC,uBAAuB,QAAQ,SAAS;AACjD,SAASC,sBAAsB,QAAQ,cAAc;AACrD,SAASC,MAAM,QAAQ,gBAAgB;AAEvC,OAAO,MAAMC,uBAAuB,GAAG,qCAAqC;AAC5E,MAAM;EAAEC;AAAU,CAAC,GAAGF,MAAM,CAAEH,qBAAsB,CAAC;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASM,aAAaA,CAAEC,QAAQ,EAAG;EAClC,IAAK,CAAEV,eAAe,CAAEU,QAAQ,EAAEH,uBAAwB,CAAC,EAAG;IAC7D,OAAOG,QAAQ;EAChB;;EAEA;EACA,IAAK,CAAEA,QAAQ,CAACC,UAAU,CAACC,UAAU,EAAG;IACvCC,MAAM,CAACC,MAAM,CAAEJ,QAAQ,CAACC,UAAU,EAAE;MACnCC,UAAU,EAAE;QACXG,IAAI,EAAE;MACP;IACD,CAAE,CAAC;EACJ;EAEA,OAAOL,QAAQ;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASM,YAAYA,CAAEC,KAAK,EAAEC,SAAS,EAAEP,UAAU,EAAG;EACrD,IAAK,CAAEX,eAAe,CAAEkB,SAAS,EAAEX,uBAAwB,CAAC,EAAG;IAC9D,OAAOU,KAAK;EACb;EAEA,IACCb,uBAAuB,CACtBc,SAAS,EACTb,sBAAsB,EACtB,YACD,CAAC,EACA;IACD,OAAOY,KAAK;EACb;EAEA,IAAK,CAAEN,UAAU,EAAEC,UAAU,EAAG;IAC/B,OAAOK,KAAK;EACb;;EAEA;EACA,MAAME,OAAO,GAAG,IAAIlB,SAAS,CAAEgB,KAAK,CAACG,SAAU,CAAC;EAChDD,OAAO,CAACE,GAAG,CAAE,OAAQb,SAAS,CAAEG,UAAU,EAAEC,UAAW,CAAC,cAAgB,CAAC;EACzE,MAAMU,YAAY,GAAGH,OAAO,CAACI,KAAK;EAClCN,KAAK,CAACG,SAAS,GAAGE,YAAY,GAAGA,YAAY,GAAGE,SAAS;EAEzD,OAAOP,KAAK;AACb;AAEA,SAASQ,aAAaA,CAAE;EAAEC,IAAI;EAAEd;AAAW,CAAC,EAAG;EAC9C,OAAOI,YAAY,CAAE,CAAC,CAAC,EAAEU,IAAI,EAAE;IAAEd;EAAW,CAAE,CAAC;AAChD;AAEA,eAAe;EACda,aAAa;EACbT,YAAY;EACZW,aAAa,EAAE,CAAE,YAAY,CAAE;EAC/BC,UAAUA,CAAEF,IAAI,EAAG;IAClB,OAAO1B,eAAe,CAAE0B,IAAI,EAAEnB,uBAAwB,CAAC;EACxD;AACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASsB,eAAeA,CAAE;EAAEC;AAAc,CAAC,EAAG;EACpDA,aAAa,CAAE;IAAElB,UAAU,EAAEY;EAAU,CAAE,CAAC;AAC3C;AAEAzB,SAAS,CACR,0BAA0B,EAC1B,8BAA8B,EAC9BU,aACD,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["getSpacingPresetCssVar","getGapBoxControlValueFromStyle","blockGapValue","isValueString","top","left","getGapCSSValue","defaultValue","blockGapBoxControlValue","row","column"],"sources":["@wordpress/block-editor/src/hooks/gap.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { getSpacingPresetCssVar } from '../components/spacing-sizes-control/utils';\n\n/**\n * Returns a BoxControl object value from a given blockGap style value.\n * The string check is for backwards compatibility before Gutenberg supported\n * split gap values (row and column) and the value was a string n + unit.\n *\n * @param {string? | Object?} blockGapValue A block gap string or axial object value, e.g., '10px' or { top: '10px', left: '10px'}.\n * @return {Object|null} A value to pass to the BoxControl component.\n */\nexport function getGapBoxControlValueFromStyle( blockGapValue ) {\n\tif ( ! blockGapValue ) {\n\t\treturn null;\n\t}\n\n\tconst isValueString = typeof blockGapValue === 'string';\n\treturn {\n\t\ttop: isValueString ? blockGapValue : blockGapValue?.top,\n\t\tleft: isValueString ? blockGapValue : blockGapValue?.left,\n\t};\n}\n\n/**\n * Returns a CSS value for the `gap` property from a given blockGap style.\n *\n * @param {string? | Object?} blockGapValue A block gap string or axial object value, e.g., '10px' or { top: '10px', left: '10px'}.\n * @param {string?} defaultValue A default gap value.\n * @return {string|null} The concatenated gap value (row and column).\n */\nexport function getGapCSSValue( blockGapValue, defaultValue = '0' ) {\n\tconst blockGapBoxControlValue =\n\t\tgetGapBoxControlValueFromStyle( blockGapValue );\n\tif ( ! blockGapBoxControlValue ) {\n\t\treturn null;\n\t}\n\n\tconst row =\n\t\tgetSpacingPresetCssVar( blockGapBoxControlValue?.top ) || defaultValue;\n\tconst column =\n\t\tgetSpacingPresetCssVar( blockGapBoxControlValue?.left ) || defaultValue;\n\n\treturn row === column ? row : `${ row } ${ column }`;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,sBAAsB,QAAQ,2CAA2C;;AAElF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,8BAA8BA,CAAEC,aAAa,EAAG;EAC/D,IAAK,CAAEA,aAAa,EAAG;IACtB,OAAO,IAAI;EACZ;EAEA,MAAMC,aAAa,GAAG,OAAOD,aAAa,KAAK,QAAQ;EACvD,OAAO;IACNE,GAAG,EAAED,aAAa,GAAGD,aAAa,GAAGA,aAAa,EAAEE,GAAG;IACvDC,IAAI,EAAEF,aAAa,GAAGD,aAAa,GAAGA,aAAa,EAAEG;EACtD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAEJ,aAAa,EAAEK,YAAY,GAAG,GAAG,EAAG;EACnE,MAAMC,uBAAuB,GAC5BP,8BAA8B,CAAEC,aAAc,CAAC;EAChD,IAAK,CAAEM,uBAAuB,EAAG;IAChC,OAAO,IAAI;EACZ;EAEA,MAAMC,GAAG,GACRT,sBAAsB,CAAEQ,uBAAuB,EAAEJ,GAAI,CAAC,IAAIG,YAAY;EACvE,MAAMG,MAAM,GACXV,sBAAsB,CAAEQ,uBAAuB,EAAEH,IAAK,CAAC,IAAIE,YAAY;EAExE,OAAOE,GAAG,KAAKC,MAAM,GAAGD,GAAG,GAAI,GAAGA,GAAK,IAAIC,MAAQ,EAAC;AACrD","ignoreList":[]}
1
+ {"version":3,"names":["getSpacingPresetCssVar","getGapBoxControlValueFromStyle","blockGapValue","isValueString","top","left","getGapCSSValue","defaultValue","blockGapBoxControlValue","row","column"],"sources":["@wordpress/block-editor/src/hooks/gap.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { getSpacingPresetCssVar } from '../components/spacing-sizes-control/utils';\n\n/**\n * Returns a BoxControl object value from a given blockGap style value.\n * The string check is for backwards compatibility before Gutenberg supported\n * split gap values (row and column) and the value was a string n + unit.\n *\n * @param {string? | Object?} blockGapValue A block gap string or axial object value, e.g., '10px' or { top: '10px', left: '10px'}.\n * @return {Object|null} A value to pass to the BoxControl component.\n */\nexport function getGapBoxControlValueFromStyle( blockGapValue ) {\n\tif ( ! blockGapValue ) {\n\t\treturn null;\n\t}\n\n\tconst isValueString = typeof blockGapValue === 'string';\n\treturn {\n\t\ttop: isValueString ? blockGapValue : blockGapValue?.top,\n\t\tleft: isValueString ? blockGapValue : blockGapValue?.left,\n\t};\n}\n\n/**\n * Returns a CSS value for the `gap` property from a given blockGap style.\n *\n * @param {string? | Object?} blockGapValue A block gap string or axial object value, e.g., '10px' or { top: '10px', left: '10px'}.\n * @param {string?} defaultValue A default gap value.\n * @return {string|null} The concatenated gap value (row and column).\n */\nexport function getGapCSSValue( blockGapValue, defaultValue = '0' ) {\n\tconst blockGapBoxControlValue =\n\t\tgetGapBoxControlValueFromStyle( blockGapValue );\n\tif ( ! blockGapBoxControlValue ) {\n\t\treturn null;\n\t}\n\n\tconst row =\n\t\tgetSpacingPresetCssVar( blockGapBoxControlValue?.top ) || defaultValue;\n\tconst column =\n\t\tgetSpacingPresetCssVar( blockGapBoxControlValue?.left ) || defaultValue;\n\n\treturn row === column ? row : `${ row } ${ column }`;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,sBAAsB,QAAQ,2CAA2C;;AAElF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,8BAA8BA,CAAEC,aAAa,EAAG;EAC/D,IAAK,CAAEA,aAAa,EAAG;IACtB,OAAO,IAAI;EACZ;EAEA,MAAMC,aAAa,GAAG,OAAOD,aAAa,KAAK,QAAQ;EACvD,OAAO;IACNE,GAAG,EAAED,aAAa,GAAGD,aAAa,GAAGA,aAAa,EAAEE,GAAG;IACvDC,IAAI,EAAEF,aAAa,GAAGD,aAAa,GAAGA,aAAa,EAAEG;EACtD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAEJ,aAAa,EAAEK,YAAY,GAAG,GAAG,EAAG;EACnE,MAAMC,uBAAuB,GAC5BP,8BAA8B,CAAEC,aAAc,CAAC;EAChD,IAAK,CAAEM,uBAAuB,EAAG;IAChC,OAAO,IAAI;EACZ;EAEA,MAAMC,GAAG,GACRT,sBAAsB,CAAEQ,uBAAuB,EAAEJ,GAAI,CAAC,IAAIG,YAAY;EACvE,MAAMG,MAAM,GACXV,sBAAsB,CAAEQ,uBAAuB,EAAEH,IAAK,CAAC,IAAIE,YAAY;EAExE,OAAOE,GAAG,KAAKC,MAAM,GAAGD,GAAG,GAAG,GAAIA,GAAG,IAAMC,MAAM,EAAG;AACrD","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  /**
2
3
  * WordPress dependencies
3
4
  */
@@ -1 +1 @@
1
- {"version":3,"names":["addFilter","hasBlockSupport","getBlockDefaultClassName","addGeneratedClassName","extraProps","blockType","className","Set","name","split","join","trim"],"sources":["@wordpress/block-editor/src/hooks/generated-class-name.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { hasBlockSupport, getBlockDefaultClassName } from '@wordpress/blocks';\n\n/**\n * Override props assigned to save component to inject generated className if\n * block supports it. This is only applied if the block's save result is an\n * element and not a markup string.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addGeneratedClassName( extraProps, blockType ) {\n\t// Adding the generated className.\n\tif ( hasBlockSupport( blockType, 'className', true ) ) {\n\t\tif ( typeof extraProps.className === 'string' ) {\n\t\t\t// We have some extra classes and want to add the default classname\n\t\t\t// We use uniq to prevent duplicate classnames.\n\n\t\t\textraProps.className = [\n\t\t\t\t...new Set( [\n\t\t\t\t\tgetBlockDefaultClassName( blockType.name ),\n\t\t\t\t\t...extraProps.className.split( ' ' ),\n\t\t\t\t] ),\n\t\t\t]\n\t\t\t\t.join( ' ' )\n\t\t\t\t.trim();\n\t\t} else {\n\t\t\t// There is no string in the className variable,\n\t\t\t// so we just dump the default name in there.\n\t\t\textraProps.className = getBlockDefaultClassName( blockType.name );\n\t\t}\n\t}\n\treturn extraProps;\n}\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/generated-class-name/save-props',\n\taddGeneratedClassName\n);\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,eAAe,EAAEC,wBAAwB,QAAQ,mBAAmB;;AAE7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAEC,UAAU,EAAEC,SAAS,EAAG;EAC9D;EACA,IAAKJ,eAAe,CAAEI,SAAS,EAAE,WAAW,EAAE,IAAK,CAAC,EAAG;IACtD,IAAK,OAAOD,UAAU,CAACE,SAAS,KAAK,QAAQ,EAAG;MAC/C;MACA;;MAEAF,UAAU,CAACE,SAAS,GAAG,CACtB,GAAG,IAAIC,GAAG,CAAE,CACXL,wBAAwB,CAAEG,SAAS,CAACG,IAAK,CAAC,EAC1C,GAAGJ,UAAU,CAACE,SAAS,CAACG,KAAK,CAAE,GAAI,CAAC,CACnC,CAAC,CACH,CACCC,IAAI,CAAE,GAAI,CAAC,CACXC,IAAI,CAAC,CAAC;IACT,CAAC,MAAM;MACN;MACA;MACAP,UAAU,CAACE,SAAS,GAAGJ,wBAAwB,CAAEG,SAAS,CAACG,IAAK,CAAC;IAClE;EACD;EACA,OAAOJ,UAAU;AAClB;AAEAJ,SAAS,CACR,kCAAkC,EAClC,sCAAsC,EACtCG,qBACD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["addFilter","hasBlockSupport","getBlockDefaultClassName","addGeneratedClassName","extraProps","blockType","className","Set","name","split","join","trim"],"sources":["@wordpress/block-editor/src/hooks/generated-class-name.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { hasBlockSupport, getBlockDefaultClassName } from '@wordpress/blocks';\n\n/**\n * Override props assigned to save component to inject generated className if\n * block supports it. This is only applied if the block's save result is an\n * element and not a markup string.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addGeneratedClassName( extraProps, blockType ) {\n\t// Adding the generated className.\n\tif ( hasBlockSupport( blockType, 'className', true ) ) {\n\t\tif ( typeof extraProps.className === 'string' ) {\n\t\t\t// We have some extra classes and want to add the default classname\n\t\t\t// We use uniq to prevent duplicate classnames.\n\n\t\t\textraProps.className = [\n\t\t\t\t...new Set( [\n\t\t\t\t\tgetBlockDefaultClassName( blockType.name ),\n\t\t\t\t\t...extraProps.className.split( ' ' ),\n\t\t\t\t] ),\n\t\t\t]\n\t\t\t\t.join( ' ' )\n\t\t\t\t.trim();\n\t\t} else {\n\t\t\t// There is no string in the className variable,\n\t\t\t// so we just dump the default name in there.\n\t\t\textraProps.className = getBlockDefaultClassName( blockType.name );\n\t\t}\n\t}\n\treturn extraProps;\n}\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/generated-class-name/save-props',\n\taddGeneratedClassName\n);\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,eAAe,EAAEC,wBAAwB,QAAQ,mBAAmB;;AAE7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAEC,UAAU,EAAEC,SAAS,EAAG;EAC9D;EACA,IAAKJ,eAAe,CAAEI,SAAS,EAAE,WAAW,EAAE,IAAK,CAAC,EAAG;IACtD,IAAK,OAAOD,UAAU,CAACE,SAAS,KAAK,QAAQ,EAAG;MAC/C;MACA;;MAEAF,UAAU,CAACE,SAAS,GAAG,CACtB,GAAG,IAAIC,GAAG,CAAE,CACXL,wBAAwB,CAAEG,SAAS,CAACG,IAAK,CAAC,EAC1C,GAAGJ,UAAU,CAACE,SAAS,CAACG,KAAK,CAAE,GAAI,CAAC,CACnC,CAAC,CACH,CACCC,IAAI,CAAE,GAAI,CAAC,CACXC,IAAI,CAAC,CAAC;IACT,CAAC,MAAM;MACN;MACA;MACAP,UAAU,CAACE,SAAS,GAAGJ,wBAAwB,CAAEG,SAAS,CAACG,IAAK,CAAC;IAClE;EACD;EACA,OAAOJ,UAAU;AAClB;AAEAJ,SAAS,CACR,kCAAkC,EAClC,sCAAsC,EACtCG,qBACD,CAAC","ignoreList":[]}
@@ -10,9 +10,7 @@ import { useSelect } from '@wordpress/data';
10
10
  */
11
11
  import { GridVisualizer, useGridLayoutSync } from '../components/grid';
12
12
  import { store as blockEditorStore } from '../store';
13
- import { jsx as _jsx } from "react/jsx-runtime";
14
- import { Fragment as _Fragment } from "react/jsx-runtime";
15
- import { jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
16
14
  function GridLayoutSync(props) {
17
15
  useGridLayoutSync(props);
18
16
  }
@@ -20,23 +18,25 @@ function GridTools({
20
18
  clientId,
21
19
  layout
22
20
  }) {
23
- const {
24
- isSelected,
25
- isDragging
26
- } = useSelect(select => {
21
+ const isVisible = useSelect(select => {
27
22
  const {
28
23
  isBlockSelected,
29
- isDraggingBlocks
24
+ isDraggingBlocks,
25
+ getTemplateLock,
26
+ getBlockEditingMode
30
27
  } = select(blockEditorStore);
31
- return {
32
- isSelected: isBlockSelected(clientId),
33
- isDragging: isDraggingBlocks()
34
- };
35
- });
28
+
29
+ // These calls are purposely ordered from least expensive to most expensive.
30
+ // Hides the visualizer in cases where the user is not or cannot interact with it.
31
+ if (!isDraggingBlocks() && !isBlockSelected(clientId) || getTemplateLock(clientId) || getBlockEditingMode(clientId) !== 'default') {
32
+ return false;
33
+ }
34
+ return true;
35
+ }, [clientId]);
36
36
  return /*#__PURE__*/_jsxs(_Fragment, {
37
37
  children: [/*#__PURE__*/_jsx(GridLayoutSync, {
38
38
  clientId: clientId
39
- }), (isSelected || isDragging) && /*#__PURE__*/_jsx(GridVisualizer, {
39
+ }), isVisible && /*#__PURE__*/_jsx(GridVisualizer, {
40
40
  clientId: clientId,
41
41
  parentLayout: layout
42
42
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["createHigherOrderComponent","addFilter","useSelect","GridVisualizer","useGridLayoutSync","store","blockEditorStore","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","GridLayoutSync","props","GridTools","clientId","layout","isSelected","isDragging","select","isBlockSelected","isDraggingBlocks","children","parentLayout","addGridVisualizerToBlockEdit","BlockEdit","attributes","type"],"sources":["@wordpress/block-editor/src/hooks/grid-visualizer.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { GridVisualizer, useGridLayoutSync } from '../components/grid';\nimport { store as blockEditorStore } from '../store';\n\nfunction GridLayoutSync( props ) {\n\tuseGridLayoutSync( props );\n}\n\nfunction GridTools( { clientId, layout } ) {\n\tconst { isSelected, isDragging } = useSelect( ( select ) => {\n\t\tconst { isBlockSelected, isDraggingBlocks } =\n\t\t\tselect( blockEditorStore );\n\n\t\treturn {\n\t\t\tisSelected: isBlockSelected( clientId ),\n\t\t\tisDragging: isDraggingBlocks(),\n\t\t};\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<GridLayoutSync clientId={ clientId } />\n\t\t\t{ ( isSelected || isDragging ) && (\n\t\t\t\t<GridVisualizer clientId={ clientId } parentLayout={ layout } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nconst addGridVisualizerToBlockEdit = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tif ( props.attributes.layout?.type !== 'grid' ) {\n\t\t\treturn <BlockEdit key=\"edit\" { ...props } />;\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<GridTools\n\t\t\t\t\tclientId={ props.clientId }\n\t\t\t\t\tlayout={ props.attributes.layout }\n\t\t\t\t/>\n\t\t\t\t<BlockEdit key=\"edit\" { ...props } />\n\t\t\t</>\n\t\t);\n\t},\n\t'addGridVisualizerToBlockEdit'\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/grid-visualizer',\n\taddGridVisualizerToBlockEdit\n);\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,0BAA0B,QAAQ,oBAAoB;AAC/D,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA,SAASC,cAAc,EAAEC,iBAAiB,QAAQ,oBAAoB;AACtE,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAErD,SAASC,cAAcA,CAAEC,KAAK,EAAG;EAChCV,iBAAiB,CAAEU,KAAM,CAAC;AAC3B;AAEA,SAASC,SAASA,CAAE;EAAEC,QAAQ;EAAEC;AAAO,CAAC,EAAG;EAC1C,MAAM;IAAEC,UAAU;IAAEC;EAAW,CAAC,GAAGjB,SAAS,CAAIkB,MAAM,IAAM;IAC3D,MAAM;MAAEC,eAAe;MAAEC;IAAiB,CAAC,GAC1CF,MAAM,CAAEd,gBAAiB,CAAC;IAE3B,OAAO;MACNY,UAAU,EAAEG,eAAe,CAAEL,QAAS,CAAC;MACvCG,UAAU,EAAEG,gBAAgB,CAAC;IAC9B,CAAC;EACF,CAAE,CAAC;EAEH,oBACCV,KAAA,CAAAF,SAAA;IAAAa,QAAA,gBACCf,IAAA,CAACK,cAAc;MAACG,QAAQ,EAAGA;IAAU,CAAE,CAAC,EACtC,CAAEE,UAAU,IAAIC,UAAU,kBAC3BX,IAAA,CAACL,cAAc;MAACa,QAAQ,EAAGA,QAAU;MAACQ,YAAY,EAAGP;IAAQ,CAAE,CAC/D;EAAA,CACA,CAAC;AAEL;AAEA,MAAMQ,4BAA4B,GAAGzB,0BAA0B,CAC5D0B,SAAS,IAAQZ,KAAK,IAAM;EAC7B,IAAKA,KAAK,CAACa,UAAU,CAACV,MAAM,EAAEW,IAAI,KAAK,MAAM,EAAG;IAC/C,oBAAOpB,IAAA,CAACkB,SAAS;MAAA,GAAiBZ;IAAK,GAAjB,MAAqB,CAAC;EAC7C;EAEA,oBACCF,KAAA,CAAAF,SAAA;IAAAa,QAAA,gBACCf,IAAA,CAACO,SAAS;MACTC,QAAQ,EAAGF,KAAK,CAACE,QAAU;MAC3BC,MAAM,EAAGH,KAAK,CAACa,UAAU,CAACV;IAAQ,CAClC,CAAC,eACFT,IAAA,CAACkB,SAAS;MAAA,GAAiBZ;IAAK,GAAjB,MAAqB,CAAC;EAAA,CACpC,CAAC;AAEL,CAAC,EACD,8BACD,CAAC;AAEDb,SAAS,CACR,kBAAkB,EAClB,6BAA6B,EAC7BwB,4BACD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createHigherOrderComponent","addFilter","useSelect","GridVisualizer","useGridLayoutSync","store","blockEditorStore","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","GridLayoutSync","props","GridTools","clientId","layout","isVisible","select","isBlockSelected","isDraggingBlocks","getTemplateLock","getBlockEditingMode","children","parentLayout","addGridVisualizerToBlockEdit","BlockEdit","attributes","type"],"sources":["@wordpress/block-editor/src/hooks/grid-visualizer.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { GridVisualizer, useGridLayoutSync } from '../components/grid';\nimport { store as blockEditorStore } from '../store';\n\nfunction GridLayoutSync( props ) {\n\tuseGridLayoutSync( props );\n}\n\nfunction GridTools( { clientId, layout } ) {\n\tconst isVisible = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockSelected,\n\t\t\t\tisDraggingBlocks,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\t// These calls are purposely ordered from least expensive to most expensive.\n\t\t\t// Hides the visualizer in cases where the user is not or cannot interact with it.\n\t\t\tif (\n\t\t\t\t( ! isDraggingBlocks() && ! isBlockSelected( clientId ) ) ||\n\t\t\t\tgetTemplateLock( clientId ) ||\n\t\t\t\tgetBlockEditingMode( clientId ) !== 'default'\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<GridLayoutSync clientId={ clientId } />\n\t\t\t{ isVisible && (\n\t\t\t\t<GridVisualizer clientId={ clientId } parentLayout={ layout } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nconst addGridVisualizerToBlockEdit = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tif ( props.attributes.layout?.type !== 'grid' ) {\n\t\t\treturn <BlockEdit key=\"edit\" { ...props } />;\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<GridTools\n\t\t\t\t\tclientId={ props.clientId }\n\t\t\t\t\tlayout={ props.attributes.layout }\n\t\t\t\t/>\n\t\t\t\t<BlockEdit key=\"edit\" { ...props } />\n\t\t\t</>\n\t\t);\n\t},\n\t'addGridVisualizerToBlockEdit'\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/grid-visualizer',\n\taddGridVisualizerToBlockEdit\n);\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,0BAA0B,QAAQ,oBAAoB;AAC/D,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA,SAASC,cAAc,EAAEC,iBAAiB,QAAQ,oBAAoB;AACtE,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAErD,SAASC,cAAcA,CAAEC,KAAK,EAAG;EAChCV,iBAAiB,CAAEU,KAAM,CAAC;AAC3B;AAEA,SAASC,SAASA,CAAE;EAAEC,QAAQ;EAAEC;AAAO,CAAC,EAAG;EAC1C,MAAMC,SAAS,GAAGhB,SAAS,CACxBiB,MAAM,IAAM;IACb,MAAM;MACLC,eAAe;MACfC,gBAAgB;MAChBC,eAAe;MACfC;IACD,CAAC,GAAGJ,MAAM,CAAEb,gBAAiB,CAAC;;IAE9B;IACA;IACA,IACG,CAAEe,gBAAgB,CAAC,CAAC,IAAI,CAAED,eAAe,CAAEJ,QAAS,CAAC,IACvDM,eAAe,CAAEN,QAAS,CAAC,IAC3BO,mBAAmB,CAAEP,QAAS,CAAC,KAAK,SAAS,EAC5C;MACD,OAAO,KAAK;IACb;IAEA,OAAO,IAAI;EACZ,CAAC,EACD,CAAEA,QAAQ,CACX,CAAC;EAED,oBACCJ,KAAA,CAAAF,SAAA;IAAAc,QAAA,gBACChB,IAAA,CAACK,cAAc;MAACG,QAAQ,EAAGA;IAAU,CAAE,CAAC,EACtCE,SAAS,iBACVV,IAAA,CAACL,cAAc;MAACa,QAAQ,EAAGA,QAAU;MAACS,YAAY,EAAGR;IAAQ,CAAE,CAC/D;EAAA,CACA,CAAC;AAEL;AAEA,MAAMS,4BAA4B,GAAG1B,0BAA0B,CAC5D2B,SAAS,IAAQb,KAAK,IAAM;EAC7B,IAAKA,KAAK,CAACc,UAAU,CAACX,MAAM,EAAEY,IAAI,KAAK,MAAM,EAAG;IAC/C,oBAAOrB,IAAA,CAACmB,SAAS;MAAA,GAAiBb;IAAK,GAAjB,MAAqB,CAAC;EAC7C;EAEA,oBACCF,KAAA,CAAAF,SAAA;IAAAc,QAAA,gBACChB,IAAA,CAACO,SAAS;MACTC,QAAQ,EAAGF,KAAK,CAACE,QAAU;MAC3BC,MAAM,EAAGH,KAAK,CAACc,UAAU,CAACX;IAAQ,CAClC,CAAC,eACFT,IAAA,CAACmB,SAAS;MAAA,GAAiBb;IAAK,GAAjB,MAAqB,CAAC;EAAA,CACpC,CAAC;AAEL,CAAC,EACD,8BACD,CAAC;AAEDb,SAAS,CACR,kBAAkB,EAClB,6BAA6B,EAC7ByB,4BACD,CAAC","ignoreList":[]}