@wordpress/block-editor 12.18.2 → 12.19.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 (870) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/autocompleters/block.js +1 -2
  3. package/build/autocompleters/block.js.map +1 -1
  4. package/build/autocompleters/link.js +1 -2
  5. package/build/autocompleters/link.js.map +1 -1
  6. package/build/components/alignment-control/ui.js +1 -2
  7. package/build/components/alignment-control/ui.js.map +1 -1
  8. package/build/components/autocomplete/index.js +1 -2
  9. package/build/components/autocomplete/index.js.map +1 -1
  10. package/build/components/block-alignment-control/constants.js +2 -4
  11. package/build/components/block-alignment-control/constants.js.map +1 -1
  12. package/build/components/block-alignment-control/ui.js +1 -2
  13. package/build/components/block-alignment-control/ui.js.map +1 -1
  14. package/build/components/block-alignment-control/ui.native.js +1 -2
  15. package/build/components/block-alignment-control/ui.native.js.map +1 -1
  16. package/build/components/block-alignment-matrix-control/index.js +1 -2
  17. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  18. package/build/components/block-breadcrumb/index.js +1 -2
  19. package/build/components/block-breadcrumb/index.js.map +1 -1
  20. package/build/components/block-canvas/index.js +1 -2
  21. package/build/components/block-canvas/index.js.map +1 -1
  22. package/build/components/block-caption/index.native.js +1 -2
  23. package/build/components/block-caption/index.native.js.map +1 -1
  24. package/build/components/block-card/index.js +1 -2
  25. package/build/components/block-card/index.js.map +1 -1
  26. package/build/components/block-compare/index.js +1 -2
  27. package/build/components/block-compare/index.js.map +1 -1
  28. package/build/components/block-context/index.js +1 -2
  29. package/build/components/block-context/index.js.map +1 -1
  30. package/build/components/block-controls/groups.js +1 -2
  31. package/build/components/block-controls/groups.js.map +1 -1
  32. package/build/components/block-controls/index.js +1 -2
  33. package/build/components/block-controls/index.js.map +1 -1
  34. package/build/components/block-draggable/dropping-insertion-point.native.js +2 -2
  35. package/build/components/block-draggable/dropping-insertion-point.native.js.map +1 -1
  36. package/build/components/block-draggable/index.js +1 -2
  37. package/build/components/block-draggable/index.js.map +1 -1
  38. package/build/components/block-draggable/index.native.js +3 -4
  39. package/build/components/block-draggable/index.native.js.map +1 -1
  40. package/build/components/block-edit/context.js +4 -8
  41. package/build/components/block-edit/context.js.map +1 -1
  42. package/build/components/block-edit/edit.js +1 -2
  43. package/build/components/block-edit/edit.js.map +1 -1
  44. package/build/components/block-edit/edit.native.js +1 -2
  45. package/build/components/block-edit/edit.native.js.map +1 -1
  46. package/build/components/block-full-height-alignment-control/index.js +1 -2
  47. package/build/components/block-full-height-alignment-control/index.js.map +1 -1
  48. package/build/components/block-icon/index.js +1 -2
  49. package/build/components/block-icon/index.js.map +1 -1
  50. package/build/components/block-icon/index.native.js +1 -2
  51. package/build/components/block-icon/index.native.js.map +1 -1
  52. package/build/components/block-info-slot-fill/index.js +1 -2
  53. package/build/components/block-info-slot-fill/index.js.map +1 -1
  54. package/build/components/block-inspector/index.js +11 -9
  55. package/build/components/block-inspector/index.js.map +1 -1
  56. package/build/components/block-list/block-crash-boundary.js +1 -2
  57. package/build/components/block-list/block-crash-boundary.js.map +1 -1
  58. package/build/components/block-list/block-html.js +1 -2
  59. package/build/components/block-list/block-html.js.map +1 -1
  60. package/build/components/block-list/block-list-context.native.js +1 -2
  61. package/build/components/block-list/block-list-context.native.js.map +1 -1
  62. package/build/components/block-list/block-list-item-cell.native.js +1 -2
  63. package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
  64. package/build/components/block-list/block-list-item.native.js +1 -2
  65. package/build/components/block-list/block-list-item.native.js.map +1 -1
  66. package/build/components/block-list/block-outline.native.js +1 -2
  67. package/build/components/block-list/block-outline.native.js.map +1 -1
  68. package/build/components/block-list/block-selection-button.native.js +1 -2
  69. package/build/components/block-list/block-selection-button.native.js.map +1 -1
  70. package/build/components/block-list/block.js +32 -21
  71. package/build/components/block-list/block.js.map +1 -1
  72. package/build/components/block-list/block.native.js +7 -6
  73. package/build/components/block-list/block.native.js.map +1 -1
  74. package/build/components/block-list/grid-item.native.js +1 -2
  75. package/build/components/block-list/grid-item.native.js.map +1 -1
  76. package/build/components/block-list/index.js +19 -9
  77. package/build/components/block-list/index.js.map +1 -1
  78. package/build/components/block-list/insertion-point.native.js +1 -2
  79. package/build/components/block-list/insertion-point.native.js.map +1 -1
  80. package/build/components/block-list/layout.js +2 -4
  81. package/build/components/block-list/layout.js.map +1 -1
  82. package/build/components/block-list/private-block-context.js +1 -2
  83. package/build/components/block-list/private-block-context.js.map +1 -1
  84. package/build/components/block-list/subdirectory-icon.js +1 -2
  85. package/build/components/block-list/subdirectory-icon.js.map +1 -1
  86. package/build/components/block-list/use-block-props/index.js +8 -1
  87. package/build/components/block-list/use-block-props/index.js.map +1 -1
  88. package/build/components/block-list/use-scroll-upon-insertion.native.js +1 -2
  89. package/build/components/block-list/use-scroll-upon-insertion.native.js.map +1 -1
  90. package/build/components/block-list-appender/index.js +5 -52
  91. package/build/components/block-list-appender/index.js.map +1 -1
  92. package/build/components/block-media-update-progress/index.native.js +11 -22
  93. package/build/components/block-media-update-progress/index.native.js.map +1 -1
  94. package/build/components/block-mover/button.js +2 -4
  95. package/build/components/block-mover/button.js.map +1 -1
  96. package/build/components/block-mover/index.js +1 -2
  97. package/build/components/block-mover/index.js.map +1 -1
  98. package/build/components/block-mover/index.native.js +3 -6
  99. package/build/components/block-mover/index.native.js.map +1 -1
  100. package/build/components/block-mover/mover-description.native.js +0 -2
  101. package/build/components/block-mover/mover-description.native.js.map +1 -1
  102. package/build/components/block-navigation/dropdown.js +1 -2
  103. package/build/components/block-navigation/dropdown.js.map +1 -1
  104. package/build/components/block-pattern-setup/constants.js +1 -2
  105. package/build/components/block-pattern-setup/constants.js.map +1 -1
  106. package/build/components/block-pattern-setup/index.js +1 -2
  107. package/build/components/block-pattern-setup/index.js.map +1 -1
  108. package/build/components/block-pattern-setup/setup-toolbar.js +1 -2
  109. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  110. package/build/components/block-pattern-setup/use-patterns-setup.js +1 -2
  111. package/build/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
  112. package/build/components/block-patterns-list/index.js +1 -2
  113. package/build/components/block-patterns-list/index.js.map +1 -1
  114. package/build/components/block-popover/drop-zone.js +1 -2
  115. package/build/components/block-popover/drop-zone.js.map +1 -1
  116. package/build/components/block-popover/inbetween.js +2 -4
  117. package/build/components/block-popover/inbetween.js.map +1 -1
  118. package/build/components/block-popover/index.js +1 -2
  119. package/build/components/block-popover/index.js.map +1 -1
  120. package/build/components/block-popover/use-popover-scroll.js +1 -2
  121. package/build/components/block-popover/use-popover-scroll.js.map +1 -1
  122. package/build/components/block-preview/auto.js +2 -1
  123. package/build/components/block-preview/auto.js.map +1 -1
  124. package/build/components/block-preview/index.js +1 -2
  125. package/build/components/block-preview/index.js.map +1 -1
  126. package/build/components/block-removal-warning-modal/index.js +4 -2
  127. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  128. package/build/components/block-settings/button.native.js +1 -2
  129. package/build/components/block-settings/button.native.js.map +1 -1
  130. package/build/components/block-settings/container.native.js +1 -2
  131. package/build/components/block-settings/container.native.js.map +1 -1
  132. package/build/components/block-settings/index.native.js +2 -2
  133. package/build/components/block-settings/index.native.js.map +1 -1
  134. package/build/components/block-settings-menu/block-html-convert-button.js +1 -2
  135. package/build/components/block-settings-menu/block-html-convert-button.js.map +1 -1
  136. package/build/components/block-settings-menu/block-mode-toggle.js +1 -2
  137. package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  138. package/build/components/block-settings-menu/block-settings-dropdown.js +1 -2
  139. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  140. package/build/components/block-settings-menu/block-settings-menu-first-item.js +1 -2
  141. package/build/components/block-settings-menu/block-settings-menu-first-item.js.map +1 -1
  142. package/build/components/block-settings-menu/index.js +1 -2
  143. package/build/components/block-settings-menu/index.js.map +1 -1
  144. package/build/components/block-settings-menu-controls/index.js +1 -2
  145. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  146. package/build/components/block-styles/index.js +1 -2
  147. package/build/components/block-styles/index.js.map +1 -1
  148. package/build/components/block-styles/index.native.js +1 -2
  149. package/build/components/block-styles/index.native.js.map +1 -1
  150. package/build/components/block-styles/preview.native.js +1 -2
  151. package/build/components/block-styles/preview.native.js.map +1 -1
  152. package/build/components/block-switcher/block-transformations-menu.js +1 -2
  153. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  154. package/build/components/block-switcher/block-transformations-menu.native.js +1 -2
  155. package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  156. package/build/components/block-switcher/block-variation-transformations.js +1 -2
  157. package/build/components/block-switcher/block-variation-transformations.js.map +1 -1
  158. package/build/components/block-switcher/index.js +13 -11
  159. package/build/components/block-switcher/index.js.map +1 -1
  160. package/build/components/block-switcher/pattern-transformations-menu.js +1 -2
  161. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  162. package/build/components/block-switcher/use-transformed-patterns.js +1 -2
  163. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  164. package/build/components/block-title/use-block-display-title.js +21 -28
  165. package/build/components/block-title/use-block-display-title.js.map +1 -1
  166. package/build/components/block-toolbar/block-name-context.js +1 -2
  167. package/build/components/block-toolbar/block-name-context.js.map +1 -1
  168. package/build/components/block-toolbar/block-toolbar-last-item.js +1 -2
  169. package/build/components/block-toolbar/block-toolbar-last-item.js.map +1 -1
  170. package/build/components/block-toolbar/block-toolbar-menu.native.js +1 -2
  171. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  172. package/build/components/block-tools/block-selection-button.js +20 -18
  173. package/build/components/block-tools/block-selection-button.js.map +1 -1
  174. package/build/components/block-tools/index.js +4 -12
  175. package/build/components/block-tools/index.js.map +1 -1
  176. package/build/components/block-tools/insertion-point.js +1 -2
  177. package/build/components/block-tools/insertion-point.js.map +1 -1
  178. package/build/components/block-tools/zoom-out-mode-inserters.js +1 -2
  179. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  180. package/build/components/block-types-list/index.js +1 -2
  181. package/build/components/block-types-list/index.js.map +1 -1
  182. package/build/components/block-variation-picker/index.js +1 -2
  183. package/build/components/block-variation-picker/index.js.map +1 -1
  184. package/build/components/block-variation-picker/index.native.js +1 -2
  185. package/build/components/block-variation-picker/index.native.js.map +1 -1
  186. package/build/components/block-variation-transforms/index.js +1 -2
  187. package/build/components/block-variation-transforms/index.js.map +1 -1
  188. package/build/components/block-vertical-alignment-control/icons.js +5 -10
  189. package/build/components/block-vertical-alignment-control/icons.js.map +1 -1
  190. package/build/components/block-vertical-alignment-control/ui.js +1 -2
  191. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  192. package/build/components/button-block-appender/index.js +2 -4
  193. package/build/components/button-block-appender/index.js.map +1 -1
  194. package/build/components/button-block-appender/index.native.js +1 -2
  195. package/build/components/button-block-appender/index.native.js.map +1 -1
  196. package/build/components/caption/index.native.js +1 -2
  197. package/build/components/caption/index.native.js.map +1 -1
  198. package/build/components/color-palette/index.js +1 -2
  199. package/build/components/color-palette/index.js.map +1 -1
  200. package/build/components/color-palette/with-color-context.js +1 -2
  201. package/build/components/color-palette/with-color-context.js.map +1 -1
  202. package/build/components/color-style-selector/index.js +1 -2
  203. package/build/components/color-style-selector/index.js.map +1 -1
  204. package/build/components/colors/index.js +2 -2
  205. package/build/components/colors/index.js.map +1 -1
  206. package/build/components/colors-gradients/control.js +1 -3
  207. package/build/components/colors-gradients/control.js.map +1 -1
  208. package/build/components/colors-gradients/panel-color-gradient-settings.js +1 -2
  209. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  210. package/build/components/contrast-checker/index.js +1 -2
  211. package/build/components/contrast-checker/index.js.map +1 -1
  212. package/build/components/contrast-checker/index.native.js +1 -2
  213. package/build/components/contrast-checker/index.native.js.map +1 -1
  214. package/build/components/convert-to-group-buttons/toolbar.js +1 -2
  215. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  216. package/build/components/default-block-appender/index.js +31 -40
  217. package/build/components/default-block-appender/index.js.map +1 -1
  218. package/build/components/default-block-appender/index.native.js +1 -2
  219. package/build/components/default-block-appender/index.native.js.map +1 -1
  220. package/build/components/dimensions-tool/aspect-ratio-tool.js +2 -2
  221. package/build/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
  222. package/build/components/dimensions-tool/index.js +1 -2
  223. package/build/components/dimensions-tool/index.js.map +1 -1
  224. package/build/components/duotone-control/index.js +1 -2
  225. package/build/components/duotone-control/index.js.map +1 -1
  226. package/build/components/editable-text/index.js +1 -2
  227. package/build/components/editable-text/index.js.map +1 -1
  228. package/build/components/floating-toolbar/index.native.js +1 -2
  229. package/build/components/floating-toolbar/index.native.js.map +1 -1
  230. package/build/components/floating-toolbar/nav-up-icon.js +1 -2
  231. package/build/components/floating-toolbar/nav-up-icon.js.map +1 -1
  232. package/build/components/font-sizes/font-size-picker.js +1 -2
  233. package/build/components/font-sizes/font-size-picker.js.map +1 -1
  234. package/build/components/global-styles/border-panel.js +56 -8
  235. package/build/components/global-styles/border-panel.js.map +1 -1
  236. package/build/components/global-styles/color-panel.native.js +1 -2
  237. package/build/components/global-styles/color-panel.native.js.map +1 -1
  238. package/build/components/global-styles/context.js +2 -4
  239. package/build/components/global-styles/context.js.map +1 -1
  240. package/build/components/global-styles/get-global-styles-changes.js +2 -4
  241. package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
  242. package/build/components/global-styles/index.js +2 -15
  243. package/build/components/global-styles/index.js.map +1 -1
  244. package/build/components/global-styles/shadow-panel-components.js +133 -0
  245. package/build/components/global-styles/shadow-panel-components.js.map +1 -0
  246. package/build/components/global-styles/typography-panel.js +6 -7
  247. package/build/components/global-styles/typography-panel.js.map +1 -1
  248. package/build/components/global-styles/use-global-styles-output.js +1 -1
  249. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  250. package/build/components/global-styles/utils.js +38 -14
  251. package/build/components/global-styles/utils.js.map +1 -1
  252. package/build/components/iframe/index.js +1 -2
  253. package/build/components/iframe/index.js.map +1 -1
  254. package/build/components/image-editor/constants.js +3 -6
  255. package/build/components/image-editor/constants.js.map +1 -1
  256. package/build/components/image-link-destinations/index.native.js +1 -2
  257. package/build/components/image-link-destinations/index.native.js.map +1 -1
  258. package/build/components/index.js +2 -2
  259. package/build/components/index.js.map +1 -1
  260. package/build/components/index.native.js +2 -2
  261. package/build/components/index.native.js.map +1 -1
  262. package/build/components/inner-blocks/button-block-appender.js +1 -2
  263. package/build/components/inner-blocks/button-block-appender.js.map +1 -1
  264. package/build/components/inner-blocks/constants.native.js +1 -2
  265. package/build/components/inner-blocks/constants.native.js.map +1 -1
  266. package/build/components/inner-blocks/default-block-appender.js +1 -2
  267. package/build/components/inner-blocks/default-block-appender.js.map +1 -1
  268. package/build/components/inner-blocks/index.js +33 -30
  269. package/build/components/inner-blocks/index.js.map +1 -1
  270. package/build/components/inner-blocks/index.native.js +2 -6
  271. package/build/components/inner-blocks/index.native.js.map +1 -1
  272. package/build/components/inner-blocks/use-inner-block-template-sync.js +2 -3
  273. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  274. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js +1 -2
  275. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  276. package/build/components/inner-blocks/with-client-id.js +1 -2
  277. package/build/components/inner-blocks/with-client-id.js.map +1 -1
  278. package/build/components/inserter/block-patterns-explorer/index.js +1 -2
  279. package/build/components/inserter/block-patterns-explorer/index.js.map +1 -1
  280. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +1 -2
  281. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  282. package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -2
  283. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  284. package/build/components/inserter/block-patterns-tab/index.js +1 -2
  285. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  286. package/build/components/inserter/block-patterns-tab/patterns-filter.js +4 -4
  287. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  288. package/build/components/inserter/block-patterns-tab/utils.js +5 -9
  289. package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
  290. package/build/components/inserter/block-types-tab.js +1 -2
  291. package/build/components/inserter/block-types-tab.js.map +1 -1
  292. package/build/components/inserter/block-types-tab.native.js +1 -2
  293. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  294. package/build/components/inserter/hooks/use-block-type-impressions.native.js +1 -2
  295. package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  296. package/build/components/inserter/hooks/use-block-types-state.js +1 -2
  297. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  298. package/build/components/inserter/hooks/use-insertion-point.js +1 -2
  299. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  300. package/build/components/inserter/hooks/use-patterns-state.js +1 -2
  301. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  302. package/build/components/inserter/index.js +2 -4
  303. package/build/components/inserter/index.js.map +1 -1
  304. package/build/components/inserter/index.native.js +1 -2
  305. package/build/components/inserter/index.native.js.map +1 -1
  306. package/build/components/inserter/library.js +1 -2
  307. package/build/components/inserter/library.js.map +1 -1
  308. package/build/components/inserter/media-tab/media-list.js +1 -2
  309. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  310. package/build/components/inserter/media-tab/media-tab.js +1 -2
  311. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  312. package/build/components/inserter/menu.js +1 -2
  313. package/build/components/inserter/menu.js.map +1 -1
  314. package/build/components/inserter/menu.native.js +1 -2
  315. package/build/components/inserter/menu.native.js.map +1 -1
  316. package/build/components/inserter/no-results.js +1 -2
  317. package/build/components/inserter/no-results.js.map +1 -1
  318. package/build/components/inserter/no-results.native.js +1 -2
  319. package/build/components/inserter/no-results.native.js.map +1 -1
  320. package/build/components/inserter/panel.js +1 -2
  321. package/build/components/inserter/panel.js.map +1 -1
  322. package/build/components/inserter/preview-panel.js +1 -2
  323. package/build/components/inserter/preview-panel.js.map +1 -1
  324. package/build/components/inserter/quick-inserter.js +3 -2
  325. package/build/components/inserter/quick-inserter.js.map +1 -1
  326. package/build/components/inserter/reusable-blocks-tab.native.js +1 -2
  327. package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  328. package/build/components/inserter/search-items.js +0 -1
  329. package/build/components/inserter/search-items.js.map +1 -1
  330. package/build/components/inserter/search-results.js +1 -2
  331. package/build/components/inserter/search-results.js.map +1 -1
  332. package/build/components/inserter/search-results.native.js +1 -2
  333. package/build/components/inserter/search-results.native.js.map +1 -1
  334. package/build/components/inserter/tabs.js +1 -2
  335. package/build/components/inserter/tabs.js.map +1 -1
  336. package/build/components/inserter/tabs.native.js +1 -2
  337. package/build/components/inserter/tabs.native.js.map +1 -1
  338. package/build/components/inserter/tips.js +1 -2
  339. package/build/components/inserter/tips.js.map +1 -1
  340. package/build/components/inserter-button/index.native.js +1 -2
  341. package/build/components/inserter-button/index.native.js.map +1 -1
  342. package/build/components/inserter-button/sparkles.js +1 -2
  343. package/build/components/inserter-button/sparkles.js.map +1 -1
  344. package/build/components/inserter-draggable-blocks/index.js +11 -2
  345. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  346. package/build/components/inserter-list-item/index.js +1 -2
  347. package/build/components/inserter-list-item/index.js.map +1 -1
  348. package/build/components/inserter-listbox/context.js +1 -2
  349. package/build/components/inserter-listbox/context.js.map +1 -1
  350. package/build/components/inserter-listbox/group.js +1 -2
  351. package/build/components/inserter-listbox/group.js.map +1 -1
  352. package/build/components/inserter-listbox/index.js +1 -2
  353. package/build/components/inserter-listbox/index.js.map +1 -1
  354. package/build/components/inserter-listbox/item.js +1 -2
  355. package/build/components/inserter-listbox/item.js.map +1 -1
  356. package/build/components/inserter-listbox/row.js +1 -2
  357. package/build/components/inserter-listbox/row.js.map +1 -1
  358. package/build/components/inserter-menu-extension/index.js +1 -2
  359. package/build/components/inserter-menu-extension/index.js.map +1 -1
  360. package/build/components/inspector-controls/groups.js +1 -2
  361. package/build/components/inspector-controls/groups.js.map +1 -1
  362. package/build/components/inspector-controls/index.js +1 -2
  363. package/build/components/inspector-controls/index.js.map +1 -1
  364. package/build/components/inspector-controls-tabs/advanced-controls-panel.js +3 -4
  365. package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
  366. package/build/components/inspector-controls-tabs/position-controls-panel.js +1 -2
  367. package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  368. package/build/components/inspector-controls-tabs/settings-tab.js +1 -2
  369. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  370. package/build/components/inspector-controls-tabs/styles-tab.js +6 -6
  371. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  372. package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +1 -2
  373. package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -1
  374. package/build/components/inspector-controls-tabs/utils.js +3 -6
  375. package/build/components/inspector-controls-tabs/utils.js.map +1 -1
  376. package/build/components/justify-content-control/ui.js +1 -2
  377. package/build/components/justify-content-control/ui.js.map +1 -1
  378. package/build/components/keyboard-shortcuts/index.js +1 -2
  379. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  380. package/build/components/line-height-control/index.js +1 -2
  381. package/build/components/line-height-control/index.js.map +1 -1
  382. package/build/components/line-height-control/utils.js +4 -8
  383. package/build/components/line-height-control/utils.js.map +1 -1
  384. package/build/components/link-control/constants.js +7 -14
  385. package/build/components/link-control/constants.js.map +1 -1
  386. package/build/components/link-control/index.js +2 -16
  387. package/build/components/link-control/index.js.map +1 -1
  388. package/build/components/link-control/link-preview.js +13 -15
  389. package/build/components/link-control/link-preview.js.map +1 -1
  390. package/build/components/link-control/search-create-button.js +1 -2
  391. package/build/components/link-control/search-create-button.js.map +1 -1
  392. package/build/components/link-control/search-input.js +1 -2
  393. package/build/components/link-control/search-input.js.map +1 -1
  394. package/build/components/link-control/search-item.js +1 -2
  395. package/build/components/link-control/search-item.js.map +1 -1
  396. package/build/components/link-control/settings-drawer.js +1 -2
  397. package/build/components/link-control/settings-drawer.js.map +1 -1
  398. package/build/components/link-control/settings.js +1 -2
  399. package/build/components/link-control/settings.js.map +1 -1
  400. package/build/components/link-control/use-create-page.js +0 -1
  401. package/build/components/link-control/use-create-page.js.map +1 -1
  402. package/build/components/link-control/use-rich-url-data.js +1 -2
  403. package/build/components/link-control/use-rich-url-data.js.map +1 -1
  404. package/build/components/link-control/viewer-slot.js +1 -2
  405. package/build/components/link-control/viewer-slot.js.map +1 -1
  406. package/build/components/list-view/appender.js +1 -2
  407. package/build/components/list-view/appender.js.map +1 -1
  408. package/build/components/list-view/block-contents.js +1 -2
  409. package/build/components/list-view/block-contents.js.map +1 -1
  410. package/build/components/list-view/block-select-button.js +1 -2
  411. package/build/components/list-view/block-select-button.js.map +1 -1
  412. package/build/components/list-view/block.js +33 -28
  413. package/build/components/list-view/block.js.map +1 -1
  414. package/build/components/list-view/branch.js +1 -2
  415. package/build/components/list-view/branch.js.map +1 -1
  416. package/build/components/list-view/context.js +1 -2
  417. package/build/components/list-view/context.js.map +1 -1
  418. package/build/components/list-view/index.js +20 -17
  419. package/build/components/list-view/index.js.map +1 -1
  420. package/build/components/list-view/leaf.js +1 -2
  421. package/build/components/list-view/leaf.js.map +1 -1
  422. package/build/components/list-view/use-clipboard-handler.js +159 -0
  423. package/build/components/list-view/use-clipboard-handler.js.map +1 -0
  424. package/build/components/list-view/use-list-view-drop-zone.js +1 -2
  425. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  426. package/build/components/list-view/utils.js +4 -4
  427. package/build/components/list-view/utils.js.map +1 -1
  428. package/build/components/media-placeholder/index.js +1 -2
  429. package/build/components/media-placeholder/index.js.map +1 -1
  430. package/build/components/media-placeholder/index.native.js +1 -2
  431. package/build/components/media-placeholder/index.native.js.map +1 -1
  432. package/build/components/media-replace-flow/index.js +1 -2
  433. package/build/components/media-replace-flow/index.js.map +1 -1
  434. package/build/components/media-replace-flow/index.native.js +1 -2
  435. package/build/components/media-replace-flow/index.native.js.map +1 -1
  436. package/build/components/media-upload/check.js +1 -2
  437. package/build/components/media-upload/check.js.map +1 -1
  438. package/build/components/media-upload/constants.native.js +8 -16
  439. package/build/components/media-upload/constants.native.js.map +1 -1
  440. package/build/components/media-upload/index.js +1 -2
  441. package/build/components/media-upload/index.js.map +1 -1
  442. package/build/components/media-upload/index.native.js +1 -2
  443. package/build/components/media-upload/index.native.js.map +1 -1
  444. package/build/components/media-upload-progress/constants.js +6 -12
  445. package/build/components/media-upload-progress/constants.js.map +1 -1
  446. package/build/components/media-upload-progress/index.native.js +1 -2
  447. package/build/components/media-upload-progress/index.native.js.map +1 -1
  448. package/build/components/multi-selection-inspector/index.js +1 -2
  449. package/build/components/multi-selection-inspector/index.js.map +1 -1
  450. package/build/components/navigable-toolbar/index.js +5 -2
  451. package/build/components/navigable-toolbar/index.js.map +1 -1
  452. package/build/components/observe-typing/index.js +1 -2
  453. package/build/components/observe-typing/index.js.map +1 -1
  454. package/build/components/panel-color-settings/index.js +1 -2
  455. package/build/components/panel-color-settings/index.js.map +1 -1
  456. package/build/components/plain-text/index.js +1 -2
  457. package/build/components/plain-text/index.js.map +1 -1
  458. package/build/components/provider/block-refs-provider.js +1 -2
  459. package/build/components/provider/block-refs-provider.js.map +1 -1
  460. package/build/components/provider/index.js +3 -5
  461. package/build/components/provider/index.js.map +1 -1
  462. package/build/components/provider/index.native.js +2 -4
  463. package/build/components/provider/index.native.js.map +1 -1
  464. package/build/components/provider/with-registry-provider.js +1 -2
  465. package/build/components/provider/with-registry-provider.js.map +1 -1
  466. package/build/components/publish-date-time-picker/index.js +1 -2
  467. package/build/components/publish-date-time-picker/index.js.map +1 -1
  468. package/build/components/responsive-block-control/index.js +3 -7
  469. package/build/components/responsive-block-control/index.js.map +1 -1
  470. package/build/components/rich-text/embed-handler-picker.native.js +1 -2
  471. package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
  472. package/build/components/rich-text/format-edit.js +1 -2
  473. package/build/components/rich-text/format-edit.js.map +1 -1
  474. package/build/components/rich-text/format-toolbar/index.js +1 -2
  475. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  476. package/build/components/rich-text/format-toolbar/index.native.js +1 -2
  477. package/build/components/rich-text/format-toolbar/index.native.js.map +1 -1
  478. package/build/components/rich-text/format-toolbar-container.js +1 -2
  479. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  480. package/build/components/rich-text/format-toolbar-container.native.js +1 -2
  481. package/build/components/rich-text/format-toolbar-container.native.js.map +1 -1
  482. package/build/components/rich-text/index.js +6 -7
  483. package/build/components/rich-text/index.js.map +1 -1
  484. package/build/components/rich-text/index.native.js +1 -2
  485. package/build/components/rich-text/index.native.js.map +1 -1
  486. package/build/components/rich-text/multiline.js +1 -2
  487. package/build/components/rich-text/multiline.js.map +1 -1
  488. package/build/components/rich-text/native/index.native.js +1 -6
  489. package/build/components/rich-text/native/index.native.js.map +1 -1
  490. package/build/components/rich-text/native/toolbar-button-with-options.native.js +1 -2
  491. package/build/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -1
  492. package/build/components/skip-to-selected-block/index.js +1 -2
  493. package/build/components/skip-to-selected-block/index.js.map +1 -1
  494. package/build/components/spacing-sizes-control/index.js +3 -1
  495. package/build/components/spacing-sizes-control/index.js.map +1 -1
  496. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +0 -1
  497. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  498. package/build/components/spacing-sizes-control/utils.js +5 -10
  499. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  500. package/build/components/tool-selector/index.js +1 -2
  501. package/build/components/tool-selector/index.js.map +1 -1
  502. package/build/components/typewriter/index.js +1 -2
  503. package/build/components/typewriter/index.js.map +1 -1
  504. package/build/components/ungroup-button/index.native.js +1 -2
  505. package/build/components/ungroup-button/index.native.js.map +1 -1
  506. package/build/components/unsupported-block-details/index.native.js +1 -2
  507. package/build/components/unsupported-block-details/index.native.js.map +1 -1
  508. package/build/components/url-input/button.js +1 -2
  509. package/build/components/url-input/button.js.map +1 -1
  510. package/build/components/url-input/index.js +1 -2
  511. package/build/components/url-input/index.js.map +1 -1
  512. package/build/components/url-popover/image-url-input-ui.js +18 -8
  513. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  514. package/build/components/url-popover/index.js +5 -5
  515. package/build/components/url-popover/index.js.map +1 -1
  516. package/build/components/use-block-drop-zone/index.js +15 -5
  517. package/build/components/use-block-drop-zone/index.js.map +1 -1
  518. package/build/components/use-flash-editable-blocks/index.js +60 -0
  519. package/build/components/use-flash-editable-blocks/index.js.map +1 -0
  520. package/build/components/use-moving-animation/index.js +1 -2
  521. package/build/components/use-moving-animation/index.js.map +1 -1
  522. package/build/components/use-on-block-drop/index.js +4 -4
  523. package/build/components/use-on-block-drop/index.js.map +1 -1
  524. package/build/components/use-settings/index.js +3 -162
  525. package/build/components/use-settings/index.js.map +1 -1
  526. package/build/components/video-player/gridicon-play.native.js +1 -2
  527. package/build/components/video-player/gridicon-play.native.js.map +1 -1
  528. package/build/components/video-player/index.native.js +2 -4
  529. package/build/components/video-player/index.native.js.map +1 -1
  530. package/build/components/warning/index.js +1 -2
  531. package/build/components/warning/index.js.map +1 -1
  532. package/build/components/warning/index.native.js +1 -2
  533. package/build/components/warning/index.native.js.map +1 -1
  534. package/build/components/writing-flow/index.js +1 -2
  535. package/build/components/writing-flow/index.js.map +1 -1
  536. package/build/components/writing-flow/use-clipboard-handler.js +3 -48
  537. package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
  538. package/build/components/writing-flow/use-drag-selection.js +13 -2
  539. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  540. package/build/components/writing-flow/utils.js +86 -0
  541. package/build/components/writing-flow/utils.js.map +1 -0
  542. package/build/hooks/align.js +1 -2
  543. package/build/hooks/align.js.map +1 -1
  544. package/build/hooks/align.native.js +2 -2
  545. package/build/hooks/align.native.js.map +1 -1
  546. package/build/hooks/anchor.js +1 -2
  547. package/build/hooks/anchor.js.map +1 -1
  548. package/build/hooks/aria-label.js +1 -2
  549. package/build/hooks/aria-label.js.map +1 -1
  550. package/build/hooks/background.js +52 -14
  551. package/build/hooks/background.js.map +1 -1
  552. package/build/hooks/block-hooks.js +1 -2
  553. package/build/hooks/block-hooks.js.map +1 -1
  554. package/build/hooks/block-renaming.js +1 -2
  555. package/build/hooks/block-renaming.js.map +1 -1
  556. package/build/hooks/border.js +42 -7
  557. package/build/hooks/border.js.map +1 -1
  558. package/build/hooks/color.js +4 -6
  559. package/build/hooks/color.js.map +1 -1
  560. package/build/hooks/content-lock-ui.js +1 -2
  561. package/build/hooks/content-lock-ui.js.map +1 -1
  562. package/build/hooks/custom-class-name.js +1 -2
  563. package/build/hooks/custom-class-name.js.map +1 -1
  564. package/build/hooks/custom-class-name.native.js +1 -2
  565. package/build/hooks/custom-class-name.native.js.map +1 -1
  566. package/build/hooks/dimensions.js +5 -10
  567. package/build/hooks/dimensions.js.map +1 -1
  568. package/build/hooks/duotone.js +1 -3
  569. package/build/hooks/duotone.js.map +1 -1
  570. package/build/hooks/font-family.js +2 -4
  571. package/build/hooks/font-family.js.map +1 -1
  572. package/build/hooks/font-size.js +25 -31
  573. package/build/hooks/font-size.js.map +1 -1
  574. package/build/hooks/index.js +2 -2
  575. package/build/hooks/index.js.map +1 -1
  576. package/build/hooks/layout-child.js +1 -2
  577. package/build/hooks/layout-child.js.map +1 -1
  578. package/build/hooks/layout.js +2 -4
  579. package/build/hooks/layout.js.map +1 -1
  580. package/build/hooks/line-height.js +1 -2
  581. package/build/hooks/line-height.js.map +1 -1
  582. package/build/hooks/position.js +1 -2
  583. package/build/hooks/position.js.map +1 -1
  584. package/build/hooks/style.js +3 -8
  585. package/build/hooks/style.js.map +1 -1
  586. package/build/hooks/typography.js +4 -6
  587. package/build/hooks/typography.js.map +1 -1
  588. package/build/hooks/typography.native.js +3 -6
  589. package/build/hooks/typography.native.js.map +1 -1
  590. package/build/hooks/use-bindings-attributes.js +10 -9
  591. package/build/hooks/use-bindings-attributes.js.map +1 -1
  592. package/build/layouts/constrained.js +1 -2
  593. package/build/layouts/constrained.js.map +1 -1
  594. package/build/layouts/definitions.js +1 -2
  595. package/build/layouts/definitions.js.map +1 -1
  596. package/build/layouts/flex.js +1 -2
  597. package/build/layouts/flex.js.map +1 -1
  598. package/build/layouts/flow.js +1 -2
  599. package/build/layouts/flow.js.map +1 -1
  600. package/build/layouts/grid.js +1 -2
  601. package/build/layouts/grid.js.map +1 -1
  602. package/build/private-apis.js +8 -5
  603. package/build/private-apis.js.map +1 -1
  604. package/build/private-apis.native.js +3 -4
  605. package/build/private-apis.native.js.map +1 -1
  606. package/build/store/actions.js +2 -4
  607. package/build/store/actions.js.map +1 -1
  608. package/build/store/constants.js +1 -2
  609. package/build/store/constants.js.map +1 -1
  610. package/build/store/defaults.js +2 -4
  611. package/build/store/defaults.js.map +1 -1
  612. package/build/store/defaults.native.js +1 -2
  613. package/build/store/defaults.native.js.map +1 -1
  614. package/build/store/get-block-settings.js +180 -0
  615. package/build/store/get-block-settings.js.map +1 -0
  616. package/build/store/index.js +4 -6
  617. package/build/store/index.js.map +1 -1
  618. package/build/store/private-actions.js +37 -3
  619. package/build/store/private-actions.js.map +1 -1
  620. package/build/store/private-selectors.js +55 -29
  621. package/build/store/private-selectors.js.map +1 -1
  622. package/build/store/reducer.js +27 -6
  623. package/build/store/reducer.js.map +1 -1
  624. package/build/store/selectors.js +98 -102
  625. package/build/store/selectors.js.map +1 -1
  626. package/build/store/undo-ignore.js +1 -2
  627. package/build/store/undo-ignore.js.map +1 -1
  628. package/build/utils/selection.js +1 -2
  629. package/build/utils/selection.js.map +1 -1
  630. package/build/utils/transform-styles/index.js +3 -4
  631. package/build/utils/transform-styles/index.js.map +1 -1
  632. package/build-module/components/block-breadcrumb/index.js +0 -1
  633. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  634. package/build-module/components/block-inspector/index.js +10 -7
  635. package/build-module/components/block-inspector/index.js.map +1 -1
  636. package/build-module/components/block-list/block.js +32 -20
  637. package/build-module/components/block-list/block.js.map +1 -1
  638. package/build-module/components/block-list/block.native.js +6 -4
  639. package/build-module/components/block-list/block.native.js.map +1 -1
  640. package/build-module/components/block-list/index.js +18 -7
  641. package/build-module/components/block-list/index.js.map +1 -1
  642. package/build-module/components/block-list/use-block-props/index.js +8 -1
  643. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  644. package/build-module/components/block-list-appender/index.js +5 -51
  645. package/build-module/components/block-list-appender/index.js.map +1 -1
  646. package/build-module/components/block-mover/mover-description.native.js +0 -2
  647. package/build-module/components/block-mover/mover-description.native.js.map +1 -1
  648. package/build-module/components/block-popover/inbetween.js +0 -1
  649. package/build-module/components/block-popover/inbetween.js.map +1 -1
  650. package/build-module/components/block-preview/auto.js +2 -1
  651. package/build-module/components/block-preview/auto.js.map +1 -1
  652. package/build-module/components/block-removal-warning-modal/index.js +4 -2
  653. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  654. package/build-module/components/block-switcher/index.js +12 -9
  655. package/build-module/components/block-switcher/index.js.map +1 -1
  656. package/build-module/components/block-title/use-block-display-title.js +22 -28
  657. package/build-module/components/block-title/use-block-display-title.js.map +1 -1
  658. package/build-module/components/block-tools/block-selection-button.js +20 -17
  659. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  660. package/build-module/components/block-tools/index.js +2 -10
  661. package/build-module/components/block-tools/index.js.map +1 -1
  662. package/build-module/components/colors-gradients/control.js +0 -1
  663. package/build-module/components/colors-gradients/control.js.map +1 -1
  664. package/build-module/components/default-block-appender/index.js +30 -37
  665. package/build-module/components/default-block-appender/index.js.map +1 -1
  666. package/build-module/components/global-styles/border-panel.js +57 -9
  667. package/build-module/components/global-styles/border-panel.js.map +1 -1
  668. package/build-module/components/global-styles/get-global-styles-changes.js +2 -4
  669. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  670. package/build-module/components/global-styles/index.js +0 -1
  671. package/build-module/components/global-styles/index.js.map +1 -1
  672. package/build-module/components/global-styles/shadow-panel-components.js +121 -0
  673. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -0
  674. package/build-module/components/global-styles/typography-panel.js +2 -3
  675. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  676. package/build-module/components/global-styles/use-global-styles-output.js +2 -2
  677. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  678. package/build-module/components/global-styles/utils.js +30 -1
  679. package/build-module/components/global-styles/utils.js.map +1 -1
  680. package/build-module/components/inner-blocks/index.js +33 -29
  681. package/build-module/components/inner-blocks/index.js.map +1 -1
  682. package/build-module/components/inner-blocks/index.native.js +1 -4
  683. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  684. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +2 -3
  685. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  686. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +4 -4
  687. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  688. package/build-module/components/inserter/block-patterns-tab/utils.js +2 -2
  689. package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
  690. package/build-module/components/inserter/quick-inserter.js +3 -2
  691. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  692. package/build-module/components/inserter/search-items.js +0 -1
  693. package/build-module/components/inserter/search-items.js.map +1 -1
  694. package/build-module/components/inserter-draggable-blocks/index.js +12 -1
  695. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  696. package/build-module/components/inspector-controls-tabs/styles-tab.js +5 -4
  697. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  698. package/build-module/components/link-control/index.js +1 -14
  699. package/build-module/components/link-control/index.js.map +1 -1
  700. package/build-module/components/link-control/link-preview.js +16 -18
  701. package/build-module/components/link-control/link-preview.js.map +1 -1
  702. package/build-module/components/link-control/use-create-page.js +0 -1
  703. package/build-module/components/link-control/use-create-page.js.map +1 -1
  704. package/build-module/components/list-view/block.js +32 -26
  705. package/build-module/components/list-view/block.js.map +1 -1
  706. package/build-module/components/list-view/index.js +17 -11
  707. package/build-module/components/list-view/index.js.map +1 -1
  708. package/build-module/components/list-view/use-clipboard-handler.js +153 -0
  709. package/build-module/components/list-view/use-clipboard-handler.js.map +1 -0
  710. package/build-module/components/list-view/utils.js +4 -4
  711. package/build-module/components/list-view/utils.js.map +1 -1
  712. package/build-module/components/navigable-toolbar/index.js +5 -2
  713. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  714. package/build-module/components/provider/index.js +1 -1
  715. package/build-module/components/provider/index.js.map +1 -1
  716. package/build-module/components/responsive-block-control/index.js +3 -6
  717. package/build-module/components/responsive-block-control/index.js.map +1 -1
  718. package/build-module/components/rich-text/index.js +3 -1
  719. package/build-module/components/rich-text/index.js.map +1 -1
  720. package/build-module/components/rich-text/native/index.native.js +0 -4
  721. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  722. package/build-module/components/spacing-sizes-control/index.js +4 -2
  723. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  724. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +0 -1
  725. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  726. package/build-module/components/url-popover/image-url-input-ui.js +21 -11
  727. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  728. package/build-module/components/url-popover/index.js +5 -4
  729. package/build-module/components/url-popover/index.js.map +1 -1
  730. package/build-module/components/use-block-drop-zone/index.js +15 -5
  731. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  732. package/build-module/components/use-flash-editable-blocks/index.js +53 -0
  733. package/build-module/components/use-flash-editable-blocks/index.js.map +1 -0
  734. package/build-module/components/use-on-block-drop/index.js +4 -4
  735. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  736. package/build-module/components/use-settings/index.js +3 -159
  737. package/build-module/components/use-settings/index.js.map +1 -1
  738. package/build-module/components/writing-flow/use-clipboard-handler.js +4 -49
  739. package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
  740. package/build-module/components/writing-flow/use-drag-selection.js +13 -2
  741. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  742. package/build-module/components/writing-flow/utils.js +79 -0
  743. package/build-module/components/writing-flow/utils.js.map +1 -0
  744. package/build-module/hooks/background.js +48 -10
  745. package/build-module/hooks/background.js.map +1 -1
  746. package/build-module/hooks/border.js +38 -3
  747. package/build-module/hooks/border.js.map +1 -1
  748. package/build-module/hooks/duotone.js +0 -1
  749. package/build-module/hooks/duotone.js.map +1 -1
  750. package/build-module/hooks/font-size.js +23 -27
  751. package/build-module/hooks/font-size.js.map +1 -1
  752. package/build-module/hooks/style.js +3 -7
  753. package/build-module/hooks/style.js.map +1 -1
  754. package/build-module/hooks/use-bindings-attributes.js +8 -11
  755. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  756. package/build-module/private-apis.js +5 -1
  757. package/build-module/private-apis.js.map +1 -1
  758. package/build-module/store/get-block-settings.js +171 -0
  759. package/build-module/store/get-block-settings.js.map +1 -0
  760. package/build-module/store/private-actions.js +35 -3
  761. package/build-module/store/private-actions.js.map +1 -1
  762. package/build-module/store/private-selectors.js +42 -19
  763. package/build-module/store/private-selectors.js.map +1 -1
  764. package/build-module/store/reducer.js +24 -2
  765. package/build-module/store/reducer.js.map +1 -1
  766. package/build-module/store/selectors.js +65 -34
  767. package/build-module/store/selectors.js.map +1 -1
  768. package/build-style/content-rtl.css +23 -15
  769. package/build-style/content.css +23 -15
  770. package/build-style/style-rtl.css +66 -53
  771. package/build-style/style.css +66 -53
  772. package/package.json +31 -31
  773. package/src/components/block-canvas/style.scss +1 -1
  774. package/src/components/block-card/style.scss +3 -1
  775. package/src/components/block-controls/README.md +2 -2
  776. package/src/components/block-inspector/index.js +11 -9
  777. package/src/components/block-list/block.js +45 -20
  778. package/src/components/block-list/block.native.js +7 -4
  779. package/src/components/block-list/content.scss +23 -28
  780. package/src/components/block-list/index.js +49 -25
  781. package/src/components/block-list/use-block-props/index.js +8 -0
  782. package/src/components/block-list-appender/index.js +7 -74
  783. package/src/components/block-mover/style.scss +4 -3
  784. package/src/components/block-preview/auto.js +2 -1
  785. package/src/components/block-removal-warning-modal/index.js +17 -10
  786. package/src/components/block-switcher/index.js +22 -13
  787. package/src/components/block-title/test/index.js +86 -85
  788. package/src/components/block-title/use-block-display-title.js +25 -36
  789. package/src/components/block-toolbar/style.scss +8 -1
  790. package/src/components/block-tools/block-selection-button.js +23 -26
  791. package/src/components/block-tools/index.js +2 -12
  792. package/src/components/colors-gradients/control.js +0 -1
  793. package/src/components/default-block-appender/index.js +26 -38
  794. package/src/components/default-block-appender/test/index.js +24 -16
  795. package/src/components/font-sizes/README.MD +0 -9
  796. package/src/components/global-styles/border-panel.js +72 -1
  797. package/src/components/global-styles/get-global-styles-changes.js +2 -8
  798. package/src/components/global-styles/index.js +0 -1
  799. package/src/components/global-styles/shadow-panel-components.js +125 -0
  800. package/src/components/global-styles/style.scss +8 -9
  801. package/src/components/global-styles/test/get-global-styles-changes.js +3 -3
  802. package/src/components/global-styles/test/use-global-styles-output.js +1 -1
  803. package/src/components/global-styles/test/utils.js +86 -0
  804. package/src/components/global-styles/typography-panel.js +1 -2
  805. package/src/components/global-styles/use-global-styles-output.js +5 -1
  806. package/src/components/global-styles/utils.js +36 -0
  807. package/src/components/inner-blocks/index.js +31 -32
  808. package/src/components/inner-blocks/index.native.js +3 -9
  809. package/src/components/inner-blocks/use-inner-block-template-sync.js +1 -3
  810. package/src/components/inserter/block-patterns-tab/patterns-filter.js +4 -10
  811. package/src/components/inserter/block-patterns-tab/utils.js +2 -2
  812. package/src/components/inserter/quick-inserter.js +4 -2
  813. package/src/components/inserter/style.scss +3 -13
  814. package/src/components/inserter-draggable-blocks/index.js +12 -1
  815. package/src/components/inspector-controls-tabs/styles-tab.js +4 -2
  816. package/src/components/link-control/index.js +1 -20
  817. package/src/components/link-control/link-preview.js +19 -24
  818. package/src/components/link-control/style.scss +5 -11
  819. package/src/components/link-control/test/index.js +11 -90
  820. package/src/components/list-view/block.js +49 -41
  821. package/src/components/list-view/index.js +22 -9
  822. package/src/components/list-view/use-clipboard-handler.js +199 -0
  823. package/src/components/list-view/utils.js +4 -4
  824. package/src/components/media-replace-flow/style.scss +1 -1
  825. package/src/components/media-replace-flow/test/index.js +1 -1
  826. package/src/components/navigable-toolbar/index.js +8 -4
  827. package/src/components/provider/index.js +1 -1
  828. package/src/components/responsive-block-control/index.js +3 -5
  829. package/src/components/rich-text/index.js +3 -1
  830. package/src/components/spacing-sizes-control/index.js +2 -1
  831. package/src/components/url-input/style.scss +4 -2
  832. package/src/components/url-popover/image-url-input-ui.js +22 -10
  833. package/src/components/url-popover/index.js +75 -69
  834. package/src/components/url-popover/style.scss +12 -21
  835. package/src/components/use-block-drop-zone/index.js +17 -3
  836. package/src/components/use-flash-editable-blocks/index.js +62 -0
  837. package/src/components/use-on-block-drop/index.js +11 -4
  838. package/src/components/use-settings/index.js +9 -232
  839. package/src/components/writing-flow/use-clipboard-handler.js +6 -78
  840. package/src/components/writing-flow/use-drag-selection.js +12 -3
  841. package/src/components/writing-flow/utils.js +103 -0
  842. package/src/hooks/background.js +53 -8
  843. package/src/hooks/border.js +47 -6
  844. package/src/hooks/font-size.js +33 -33
  845. package/src/hooks/style.js +5 -9
  846. package/src/hooks/test/background.js +50 -0
  847. package/src/hooks/test/font-size.js +164 -0
  848. package/src/hooks/use-bindings-attributes.js +8 -18
  849. package/src/private-apis.js +4 -0
  850. package/src/store/get-block-settings.js +225 -0
  851. package/src/store/private-actions.js +44 -2
  852. package/src/store/private-selectors.js +53 -38
  853. package/src/store/reducer.js +29 -1
  854. package/src/store/selectors.js +74 -48
  855. package/src/store/test/get-block-settings.js +90 -0
  856. package/src/store/test/private-actions.js +18 -0
  857. package/src/store/test/private-selectors.js +19 -0
  858. package/src/store/test/reducer.js +19 -0
  859. package/build/components/global-styles/effects-panel.js +0 -219
  860. package/build/components/global-styles/effects-panel.js.map +0 -1
  861. package/build/hooks/effects.js +0 -66
  862. package/build/hooks/effects.js.map +0 -1
  863. package/build-module/components/global-styles/effects-panel.js +0 -210
  864. package/build-module/components/global-styles/effects-panel.js.map +0 -1
  865. package/build-module/hooks/effects.js +0 -51
  866. package/build-module/hooks/effects.js.map +0 -1
  867. package/src/components/global-styles/effects-panel.js +0 -244
  868. package/src/components/use-settings/test/index.js +0 -141
  869. package/src/hooks/effects.js +0 -57
  870. package/src/hooks/test/effects.js +0 -39
@@ -1 +1 @@
1
- {"version":3,"names":["_hooks","require","_components","_i18n","_blocks","_element","_components2","_blockEditingMode","ANCHOR_REGEX","ANCHOR_SCHEMA","type","source","attribute","selector","addAttribute","settings","_settings$attributes$","attributes","anchor","hasBlockSupport","BlockEditAnchorControlPure","name","blockName","setAttributes","blockEditingMode","useBlockEditingMode","isWeb","Platform","OS","textControl","_react","createElement","TextControl","__nextHasNoMarginBottom","__next40pxDefaultSize","className","label","__","help","Fragment","ExternalLink","href","value","placeholder","onChange","nextValue","replace","autoCapitalize","autoComplete","InspectorControls","group","PanelBody","title","_default","addSaveProps","edit","attributeKeys","hasSupport","exports","default","extraProps","blockType","id","addFilter"],"sources":["@wordpress/block-editor/src/hooks/anchor.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { PanelBody, TextControl, ExternalLink } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport { Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { InspectorControls } from '../components';\nimport { useBlockEditingMode } from '../components/block-editing-mode';\n\n/**\n * Regular expression matching invalid anchor characters for replacement.\n *\n * @type {RegExp}\n */\nconst ANCHOR_REGEX = /[\\s#]/g;\n\nconst ANCHOR_SCHEMA = {\n\ttype: 'string',\n\tsource: 'attribute',\n\tattribute: 'id',\n\tselector: '*',\n};\n\n/**\n * Filters registered block settings, extending attributes with anchor using ID\n * of the first node.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addAttribute( settings ) {\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( 'type' in ( settings.attributes?.anchor ?? {} ) ) {\n\t\treturn settings;\n\t}\n\tif ( hasBlockSupport( settings, 'anchor' ) ) {\n\t\t// Gracefully handle if settings.attributes is undefined.\n\t\tsettings.attributes = {\n\t\t\t...settings.attributes,\n\t\t\tanchor: ANCHOR_SCHEMA,\n\t\t};\n\t}\n\n\treturn settings;\n}\n\nfunction BlockEditAnchorControlPure( {\n\tname: blockName,\n\tanchor,\n\tsetAttributes,\n} ) {\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst isWeb = Platform.OS === 'web';\n\tconst textControl = (\n\t\t<TextControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName=\"html-anchor-control\"\n\t\t\tlabel={ __( 'HTML anchor' ) }\n\t\t\thelp={\n\t\t\t\t<>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Enter a word or two — without spaces — to make a unique web address just for this block, called an “anchor.” Then, you’ll be able to link directly to this section of your page.'\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ isWeb && (\n\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/page-jumps/'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Learn more about anchors' ) }\n\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t}\n\t\t\tvalue={ anchor || '' }\n\t\t\tplaceholder={ ! isWeb ? __( 'Add an anchor' ) : null }\n\t\t\tonChange={ ( nextValue ) => {\n\t\t\t\tnextValue = nextValue.replace( ANCHOR_REGEX, '-' );\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tanchor: nextValue,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tautoCapitalize=\"none\"\n\t\t\tautoComplete=\"off\"\n\t\t/>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ isWeb && blockEditingMode === 'default' && (\n\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t{ textControl }\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t{ /*\n\t\t\t * We plan to remove scoping anchors to 'core/heading' to support\n\t\t\t * anchors for all eligble blocks. Additionally we plan to explore\n\t\t\t * leveraging InspectorAdvancedControls instead of a custom\n\t\t\t * PanelBody title. https://github.com/WordPress/gutenberg/issues/28363\n\t\t\t */ }\n\t\t\t{ ! isWeb && blockName === 'core/heading' && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Heading settings' ) }>\n\t\t\t\t\t\t{ textControl }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default {\n\taddSaveProps,\n\tedit: BlockEditAnchorControlPure,\n\tattributeKeys: [ 'anchor' ],\n\thasSupport( name ) {\n\t\treturn hasBlockSupport( name, 'anchor' );\n\t},\n};\n\n/**\n * Override props assigned to save component to inject anchor ID, if block\n * supports anchor. 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 * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addSaveProps( extraProps, blockType, attributes ) {\n\tif ( hasBlockSupport( blockType, 'anchor' ) ) {\n\t\textraProps.id = attributes.anchor === '' ? null : attributes.anchor;\n\t}\n\n\treturn extraProps;\n}\n\naddFilter( 'blocks.registerBlockType', 'core/anchor/attribute', addAttribute );\n"],"mappings":"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"}
1
+ {"version":3,"names":["_hooks","require","_components","_i18n","_blocks","_element","_components2","_blockEditingMode","ANCHOR_REGEX","ANCHOR_SCHEMA","type","source","attribute","selector","addAttribute","settings","_settings$attributes$","attributes","anchor","hasBlockSupport","BlockEditAnchorControlPure","name","blockName","setAttributes","blockEditingMode","useBlockEditingMode","isWeb","Platform","OS","textControl","_react","createElement","TextControl","__nextHasNoMarginBottom","__next40pxDefaultSize","className","label","__","help","Fragment","ExternalLink","href","value","placeholder","onChange","nextValue","replace","autoCapitalize","autoComplete","InspectorControls","group","PanelBody","title","_default","exports","default","addSaveProps","edit","attributeKeys","hasSupport","extraProps","blockType","id","addFilter"],"sources":["@wordpress/block-editor/src/hooks/anchor.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { PanelBody, TextControl, ExternalLink } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport { Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { InspectorControls } from '../components';\nimport { useBlockEditingMode } from '../components/block-editing-mode';\n\n/**\n * Regular expression matching invalid anchor characters for replacement.\n *\n * @type {RegExp}\n */\nconst ANCHOR_REGEX = /[\\s#]/g;\n\nconst ANCHOR_SCHEMA = {\n\ttype: 'string',\n\tsource: 'attribute',\n\tattribute: 'id',\n\tselector: '*',\n};\n\n/**\n * Filters registered block settings, extending attributes with anchor using ID\n * of the first node.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addAttribute( settings ) {\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( 'type' in ( settings.attributes?.anchor ?? {} ) ) {\n\t\treturn settings;\n\t}\n\tif ( hasBlockSupport( settings, 'anchor' ) ) {\n\t\t// Gracefully handle if settings.attributes is undefined.\n\t\tsettings.attributes = {\n\t\t\t...settings.attributes,\n\t\t\tanchor: ANCHOR_SCHEMA,\n\t\t};\n\t}\n\n\treturn settings;\n}\n\nfunction BlockEditAnchorControlPure( {\n\tname: blockName,\n\tanchor,\n\tsetAttributes,\n} ) {\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst isWeb = Platform.OS === 'web';\n\tconst textControl = (\n\t\t<TextControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName=\"html-anchor-control\"\n\t\t\tlabel={ __( 'HTML anchor' ) }\n\t\t\thelp={\n\t\t\t\t<>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Enter a word or two — without spaces — to make a unique web address just for this block, called an “anchor.” Then, you’ll be able to link directly to this section of your page.'\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ isWeb && (\n\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/page-jumps/'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Learn more about anchors' ) }\n\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t}\n\t\t\tvalue={ anchor || '' }\n\t\t\tplaceholder={ ! isWeb ? __( 'Add an anchor' ) : null }\n\t\t\tonChange={ ( nextValue ) => {\n\t\t\t\tnextValue = nextValue.replace( ANCHOR_REGEX, '-' );\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tanchor: nextValue,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tautoCapitalize=\"none\"\n\t\t\tautoComplete=\"off\"\n\t\t/>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ isWeb && blockEditingMode === 'default' && (\n\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t{ textControl }\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t{ /*\n\t\t\t * We plan to remove scoping anchors to 'core/heading' to support\n\t\t\t * anchors for all eligble blocks. Additionally we plan to explore\n\t\t\t * leveraging InspectorAdvancedControls instead of a custom\n\t\t\t * PanelBody title. https://github.com/WordPress/gutenberg/issues/28363\n\t\t\t */ }\n\t\t\t{ ! isWeb && blockName === 'core/heading' && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Heading settings' ) }>\n\t\t\t\t\t\t{ textControl }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default {\n\taddSaveProps,\n\tedit: BlockEditAnchorControlPure,\n\tattributeKeys: [ 'anchor' ],\n\thasSupport( name ) {\n\t\treturn hasBlockSupport( name, 'anchor' );\n\t},\n};\n\n/**\n * Override props assigned to save component to inject anchor ID, if block\n * supports anchor. 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 * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addSaveProps( extraProps, blockType, attributes ) {\n\tif ( hasBlockSupport( blockType, 'anchor' ) ) {\n\t\textraProps.id = attributes.anchor === '' ? null : attributes.anchor;\n\t}\n\n\treturn extraProps;\n}\n\naddFilter( 'blocks.registerBlockType', 'core/anchor/attribute', addAttribute );\n"],"mappings":"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"}
@@ -59,13 +59,12 @@ function addSaveProps(extraProps, blockType, attributes) {
59
59
  }
60
60
  return extraProps;
61
61
  }
62
- var _default = {
62
+ var _default = exports.default = {
63
63
  addSaveProps,
64
64
  attributeKeys: ['ariaLabel'],
65
65
  hasSupport(name) {
66
66
  return (0, _blocks.hasBlockSupport)(name, 'ariaLabel');
67
67
  }
68
68
  };
69
- exports.default = _default;
70
69
  (0, _hooks.addFilter)('blocks.registerBlockType', 'core/ariaLabel/attribute', addAttribute);
71
70
  //# sourceMappingURL=aria-label.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_hooks","require","_blocks","ARIA_LABEL_SCHEMA","type","source","attribute","selector","addAttribute","settings","attributes","ariaLabel","hasBlockSupport","addSaveProps","extraProps","blockType","_default","attributeKeys","hasSupport","name","exports","default","addFilter"],"sources":["@wordpress/block-editor/src/hooks/aria-label.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { hasBlockSupport } from '@wordpress/blocks';\n\nconst ARIA_LABEL_SCHEMA = {\n\ttype: 'string',\n\tsource: 'attribute',\n\tattribute: 'aria-label',\n\tselector: '*',\n};\n\n/**\n * Filters registered block settings, extending attributes with ariaLabel using aria-label\n * of the first node.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addAttribute( settings ) {\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( settings?.attributes?.ariaLabel?.type ) {\n\t\treturn settings;\n\t}\n\tif ( hasBlockSupport( settings, 'ariaLabel' ) ) {\n\t\t// Gracefully handle if settings.attributes is undefined.\n\t\tsettings.attributes = {\n\t\t\t...settings.attributes,\n\t\t\tariaLabel: ARIA_LABEL_SCHEMA,\n\t\t};\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override props assigned to save component to inject aria-label, if block\n * supports ariaLabel. 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 * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addSaveProps( extraProps, blockType, attributes ) {\n\tif ( hasBlockSupport( blockType, 'ariaLabel' ) ) {\n\t\textraProps[ 'aria-label' ] =\n\t\t\tattributes.ariaLabel === '' ? null : attributes.ariaLabel;\n\t}\n\n\treturn extraProps;\n}\n\nexport default {\n\taddSaveProps,\n\tattributeKeys: [ 'ariaLabel' ],\n\thasSupport( name ) {\n\t\treturn hasBlockSupport( name, 'ariaLabel' );\n\t},\n};\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/ariaLabel/attribute',\n\taddAttribute\n);\n"],"mappings":";;;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIA,MAAME,iBAAiB,GAAG;EACzBC,IAAI,EAAE,QAAQ;EACdC,MAAM,EAAE,WAAW;EACnBC,SAAS,EAAE,YAAY;EACvBC,QAAQ,EAAE;AACX,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,YAAYA,CAAEC,QAAQ,EAAG;EACxC;EACA,IAAKA,QAAQ,EAAEC,UAAU,EAAEC,SAAS,EAAEP,IAAI,EAAG;IAC5C,OAAOK,QAAQ;EAChB;EACA,IAAK,IAAAG,uBAAe,EAAEH,QAAQ,EAAE,WAAY,CAAC,EAAG;IAC/C;IACAA,QAAQ,CAACC,UAAU,GAAG;MACrB,GAAGD,QAAQ,CAACC,UAAU;MACtBC,SAAS,EAAER;IACZ,CAAC;EACF;EAEA,OAAOM,QAAQ;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,YAAYA,CAAEC,UAAU,EAAEC,SAAS,EAAEL,UAAU,EAAG;EACjE,IAAK,IAAAE,uBAAe,EAAEG,SAAS,EAAE,WAAY,CAAC,EAAG;IAChDD,UAAU,CAAE,YAAY,CAAE,GACzBJ,UAAU,CAACC,SAAS,KAAK,EAAE,GAAG,IAAI,GAAGD,UAAU,CAACC,SAAS;EAC3D;EAEA,OAAOG,UAAU;AAClB;AAAC,IAAAE,QAAA,GAEc;EACdH,YAAY;EACZI,aAAa,EAAE,CAAE,WAAW,CAAE;EAC9BC,UAAUA,CAAEC,IAAI,EAAG;IAClB,OAAO,IAAAP,uBAAe,EAAEO,IAAI,EAAE,WAAY,CAAC;EAC5C;AACD,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAL,QAAA;AAED,IAAAM,gBAAS,EACR,0BAA0B,EAC1B,0BAA0B,EAC1Bd,YACD,CAAC"}
1
+ {"version":3,"names":["_hooks","require","_blocks","ARIA_LABEL_SCHEMA","type","source","attribute","selector","addAttribute","settings","attributes","ariaLabel","hasBlockSupport","addSaveProps","extraProps","blockType","_default","exports","default","attributeKeys","hasSupport","name","addFilter"],"sources":["@wordpress/block-editor/src/hooks/aria-label.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { hasBlockSupport } from '@wordpress/blocks';\n\nconst ARIA_LABEL_SCHEMA = {\n\ttype: 'string',\n\tsource: 'attribute',\n\tattribute: 'aria-label',\n\tselector: '*',\n};\n\n/**\n * Filters registered block settings, extending attributes with ariaLabel using aria-label\n * of the first node.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addAttribute( settings ) {\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( settings?.attributes?.ariaLabel?.type ) {\n\t\treturn settings;\n\t}\n\tif ( hasBlockSupport( settings, 'ariaLabel' ) ) {\n\t\t// Gracefully handle if settings.attributes is undefined.\n\t\tsettings.attributes = {\n\t\t\t...settings.attributes,\n\t\t\tariaLabel: ARIA_LABEL_SCHEMA,\n\t\t};\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override props assigned to save component to inject aria-label, if block\n * supports ariaLabel. 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 * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addSaveProps( extraProps, blockType, attributes ) {\n\tif ( hasBlockSupport( blockType, 'ariaLabel' ) ) {\n\t\textraProps[ 'aria-label' ] =\n\t\t\tattributes.ariaLabel === '' ? null : attributes.ariaLabel;\n\t}\n\n\treturn extraProps;\n}\n\nexport default {\n\taddSaveProps,\n\tattributeKeys: [ 'ariaLabel' ],\n\thasSupport( name ) {\n\t\treturn hasBlockSupport( name, 'ariaLabel' );\n\t},\n};\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/ariaLabel/attribute',\n\taddAttribute\n);\n"],"mappings":";;;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIA,MAAME,iBAAiB,GAAG;EACzBC,IAAI,EAAE,QAAQ;EACdC,MAAM,EAAE,WAAW;EACnBC,SAAS,EAAE,YAAY;EACvBC,QAAQ,EAAE;AACX,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,YAAYA,CAAEC,QAAQ,EAAG;EACxC;EACA,IAAKA,QAAQ,EAAEC,UAAU,EAAEC,SAAS,EAAEP,IAAI,EAAG;IAC5C,OAAOK,QAAQ;EAChB;EACA,IAAK,IAAAG,uBAAe,EAAEH,QAAQ,EAAE,WAAY,CAAC,EAAG;IAC/C;IACAA,QAAQ,CAACC,UAAU,GAAG;MACrB,GAAGD,QAAQ,CAACC,UAAU;MACtBC,SAAS,EAAER;IACZ,CAAC;EACF;EAEA,OAAOM,QAAQ;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,YAAYA,CAAEC,UAAU,EAAEC,SAAS,EAAEL,UAAU,EAAG;EACjE,IAAK,IAAAE,uBAAe,EAAEG,SAAS,EAAE,WAAY,CAAC,EAAG;IAChDD,UAAU,CAAE,YAAY,CAAE,GACzBJ,UAAU,CAACC,SAAS,KAAK,EAAE,GAAG,IAAI,GAAGD,UAAU,CAACC,SAAS;EAC3D;EAEA,OAAOG,UAAU;AAClB;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc;EACdL,YAAY;EACZM,aAAa,EAAE,CAAE,WAAW,CAAE;EAC9BC,UAAUA,CAAEC,IAAI,EAAG;IAClB,OAAO,IAAAT,uBAAe,EAAES,IAAI,EAAE,WAAY,CAAC;EAC5C;AACD,CAAC;AAED,IAAAC,gBAAS,EACR,0BAA0B,EAC1B,0BAA0B,EAC1Bd,YACD,CAAC"}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.BACKGROUND_SUPPORT_KEY = void 0;
8
8
  exports.BackgroundImagePanel = BackgroundImagePanel;
9
- exports.IMAGE_BACKGROUND_TYPE = void 0;
9
+ exports.coordsToBackgroundPosition = exports.backgroundPositionToCoords = exports.IMAGE_BACKGROUND_TYPE = void 0;
10
10
  exports.getBackgroundImageClasses = getBackgroundImageClasses;
11
11
  exports.hasBackgroundImageValue = hasBackgroundImageValue;
12
12
  exports.hasBackgroundSizeValue = hasBackgroundSizeValue;
@@ -40,9 +40,8 @@ var _store = require("../store");
40
40
  * Internal dependencies
41
41
  */
42
42
 
43
- const BACKGROUND_SUPPORT_KEY = 'background';
44
- exports.BACKGROUND_SUPPORT_KEY = BACKGROUND_SUPPORT_KEY;
45
- const IMAGE_BACKGROUND_TYPE = 'image';
43
+ const BACKGROUND_SUPPORT_KEY = exports.BACKGROUND_SUPPORT_KEY = 'background';
44
+ const IMAGE_BACKGROUND_TYPE = exports.IMAGE_BACKGROUND_TYPE = 'image';
46
45
 
47
46
  /**
48
47
  * Checks if there is a current value in the background image block support
@@ -51,7 +50,6 @@ const IMAGE_BACKGROUND_TYPE = 'image';
51
50
  * @param {Object} style Style attribute.
52
51
  * @return {boolean} Whether or not the block has a background image value set.
53
52
  */
54
- exports.IMAGE_BACKGROUND_TYPE = IMAGE_BACKGROUND_TYPE;
55
53
  function hasBackgroundImageValue(style) {
56
54
  const hasValue = !!style?.background?.backgroundImage?.id || !!style?.background?.backgroundImage?.url;
57
55
  return hasValue;
@@ -59,13 +57,14 @@ function hasBackgroundImageValue(style) {
59
57
 
60
58
  /**
61
59
  * Checks if there is a current value in the background size block support
62
- * attributes.
60
+ * attributes. Background size values include background size as well
61
+ * as background position.
63
62
  *
64
63
  * @param {Object} style Style attribute.
65
64
  * @return {boolean} Whether or not the block has a background size value set.
66
65
  */
67
66
  function hasBackgroundSizeValue(style) {
68
- return style?.background?.backgroundSize !== undefined;
67
+ return style?.background?.backgroundPosition !== undefined || style?.background?.backgroundSize !== undefined;
69
68
  }
70
69
 
71
70
  /**
@@ -122,6 +121,7 @@ function resetBackgroundSize(style = {}, setAttributes) {
122
121
  ...style,
123
122
  background: {
124
123
  ...style?.background,
124
+ backgroundPosition: undefined,
125
125
  backgroundRepeat: undefined,
126
126
  backgroundSize: undefined
127
127
  }
@@ -306,13 +306,36 @@ function BackgroundImagePanelItem({
306
306
  }
307
307
  function backgroundSizeHelpText(value) {
308
308
  if (value === 'cover' || value === undefined) {
309
- return (0, _i18n.__)('Stretch image to cover the block.');
309
+ return (0, _i18n.__)('Image covers the space evenly.');
310
310
  }
311
311
  if (value === 'contain') {
312
- return (0, _i18n.__)('Resize image to fit without cropping.');
312
+ return (0, _i18n.__)('Image is contained without distortion.');
313
313
  }
314
- return (0, _i18n.__)('Set a fixed width.');
314
+ return (0, _i18n.__)('Specify a fixed width.');
315
315
  }
316
+ const coordsToBackgroundPosition = value => {
317
+ if (!value || isNaN(value.x) || isNaN(value.y)) {
318
+ return undefined;
319
+ }
320
+ return `${value.x * 100}% ${value.y * 100}%`;
321
+ };
322
+ exports.coordsToBackgroundPosition = coordsToBackgroundPosition;
323
+ const backgroundPositionToCoords = value => {
324
+ if (!value) {
325
+ return {
326
+ x: undefined,
327
+ y: undefined
328
+ };
329
+ }
330
+ let [x, y] = value.split(' ').map(v => parseFloat(v) / 100);
331
+ x = isNaN(x) ? undefined : x;
332
+ y = isNaN(y) ? x : y;
333
+ return {
334
+ x,
335
+ y
336
+ };
337
+ };
338
+ exports.backgroundPositionToCoords = backgroundPositionToCoords;
316
339
  function BackgroundSizePanelItem({
317
340
  clientId,
318
341
  isShownByDefault,
@@ -366,6 +389,17 @@ function BackgroundSizePanelItem({
366
389
  })
367
390
  });
368
391
  };
392
+ const updateBackgroundPosition = next => {
393
+ setAttributes({
394
+ style: (0, _utils.cleanEmptyObject)({
395
+ ...style,
396
+ background: {
397
+ ...style?.background,
398
+ backgroundPosition: coordsToBackgroundPosition(next)
399
+ }
400
+ })
401
+ });
402
+ };
369
403
  const toggleIsRepeated = () => {
370
404
  setAttributes({
371
405
  style: (0, _utils.cleanEmptyObject)({
@@ -387,8 +421,13 @@ function BackgroundSizePanelItem({
387
421
  isShownByDefault: isShownByDefault,
388
422
  resetAllFilter: resetAllFilter,
389
423
  panelId: clientId
390
- }, (0, _react.createElement)(_components.__experimentalToggleGroupControl, {
391
- __nextHasNoMarginBottom: true,
424
+ }, (0, _react.createElement)(_components.FocalPointPicker, {
425
+ __next40pxDefaultSize: true,
426
+ label: (0, _i18n.__)('Position'),
427
+ url: style?.background?.backgroundImage?.url,
428
+ value: backgroundPositionToCoords(style?.background?.backgroundPosition),
429
+ onChange: updateBackgroundPosition
430
+ }), (0, _react.createElement)(_components.__experimentalToggleGroupControl, {
392
431
  size: '__unstable-large',
393
432
  label: (0, _i18n.__)('Size'),
394
433
  value: currentValueForToggle,
@@ -412,8 +451,7 @@ function BackgroundSizePanelItem({
412
451
  onChange: updateBackgroundSize,
413
452
  value: sizeValue
414
453
  }) : null, currentValueForToggle !== 'cover' && (0, _react.createElement)(_components.ToggleControl, {
415
- __nextHasNoMarginBottom: true,
416
- label: (0, _i18n.__)('Repeat image'),
454
+ label: (0, _i18n.__)('Repeat'),
417
455
  checked: repeatCheckedValue,
418
456
  onChange: toggleIsRepeated
419
457
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_blob","_blocks","_dom","_components","_data","_element","_i18n","_notices","_url","_inspectorControls","_mediaReplaceFlow","_useSettings","_utils","_store","BACKGROUND_SUPPORT_KEY","exports","IMAGE_BACKGROUND_TYPE","hasBackgroundImageValue","style","hasValue","background","backgroundImage","id","url","hasBackgroundSizeValue","backgroundSize","undefined","hasBackgroundSupport","blockName","feature","Platform","OS","support","getBlockSupport","backgroundRepeat","resetBackgroundImage","setAttributes","cleanEmptyObject","resetBackgroundSize","getBackgroundImageClasses","InspectorImagePreview","label","filename","imgUrl","imgLabel","getFilename","_react","createElement","__experimentalItemGroup","as","__experimentalHStack","justify","className","classnames","FlexItem","__experimentalTruncate","numberOfLines","VisuallyHidden","sprintf","__","BackgroundImagePanelItem","clientId","isShownByDefault","mediaUpload","useSelect","select","getBlockAttributes","getSettings","blockEditorStore","title","replaceContainerRef","useRef","createErrorNotice","useDispatch","noticesStore","onUploadError","message","type","onSelectMedia","media","newStyle","newAttributes","isBlobURL","media_type","source","onFilesDrop","filesList","allowedTypes","onFileChange","image","onError","resetAllFilter","useCallback","previousValue","__experimentalToolsPanelItem","onDeselect","panelId","ref","default","mediaId","mediaURL","accept","onSelect","name","variant","MenuItem","onClick","toggleButton","focus","tabbable","find","current","click","DropZone","backgroundSizeHelpText","value","BackgroundSizePanelItem","sizeValue","repeatValue","currentValueForToggle","repeatCheckedValue","updateBackgroundSize","next","nextRepeat","toggleIsRepeated","__experimentalVStack","ToolsPanelItem","spacing","__experimentalToggleGroupControl","__nextHasNoMarginBottom","size","onChange","isBlock","help","__experimentalToggleGroupControlOption","key","__experimentalUnitControl","ToggleControl","checked","BackgroundImagePanel","props","useSettings","showBackgroundSize","defaultControls","group"],"sources":["@wordpress/block-editor/src/hooks/background.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { focus } from '@wordpress/dom';\nimport {\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalVStack as VStack,\n\tDropZone,\n\tFlexItem,\n\tMenuItem,\n\tVisuallyHidden,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { Platform, useCallback, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport MediaReplaceFlow from '../components/media-replace-flow';\nimport { useSettings } from '../components/use-settings';\nimport { cleanEmptyObject } from './utils';\nimport { store as blockEditorStore } from '../store';\n\nexport const BACKGROUND_SUPPORT_KEY = 'background';\nexport const IMAGE_BACKGROUND_TYPE = 'image';\n\n/**\n * Checks if there is a current value in the background image block support\n * attributes.\n *\n * @param {Object} style Style attribute.\n * @return {boolean} Whether or not the block has a background image value set.\n */\nexport function hasBackgroundImageValue( style ) {\n\tconst hasValue =\n\t\t!! style?.background?.backgroundImage?.id ||\n\t\t!! style?.background?.backgroundImage?.url;\n\n\treturn hasValue;\n}\n\n/**\n * Checks if there is a current value in the background size block support\n * attributes.\n *\n * @param {Object} style Style attribute.\n * @return {boolean} Whether or not the block has a background size value set.\n */\nexport function hasBackgroundSizeValue( style ) {\n\treturn style?.background?.backgroundSize !== undefined;\n}\n\n/**\n * Determine whether there is block support for background.\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 hasBackgroundSupport( blockName, feature = 'any' ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst support = getBlockSupport( blockName, BACKGROUND_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn (\n\t\t\t!! support?.backgroundImage ||\n\t\t\t!! support?.backgroundSize ||\n\t\t\t!! support?.backgroundRepeat\n\t\t);\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\n/**\n * Resets the background image block support attributes. This can be used when disabling\n * the background image controls for a block via a `ToolsPanel`.\n *\n * @param {Object} style Style attribute.\n * @param {Function} setAttributes Function to set block's attributes.\n */\nexport function resetBackgroundImage( style = {}, setAttributes ) {\n\tsetAttributes( {\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...style,\n\t\t\tbackground: {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundImage: undefined,\n\t\t\t},\n\t\t} ),\n\t} );\n}\n\n/**\n * Resets the background size block support attributes. This can be used when disabling\n * the background size controls for a block via a `ToolsPanel`.\n *\n * @param {Object} style Style attribute.\n * @param {Function} setAttributes Function to set block's attributes.\n */\nfunction resetBackgroundSize( style = {}, setAttributes ) {\n\tsetAttributes( {\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...style,\n\t\t\tbackground: {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundRepeat: undefined,\n\t\t\t\tbackgroundSize: undefined,\n\t\t\t},\n\t\t} ),\n\t} );\n}\n\n/**\n * Generates a CSS class name if an background image is set.\n *\n * @param {Object} style A block's style attribute.\n *\n * @return {string} CSS class name.\n */\nexport function getBackgroundImageClasses( style ) {\n\treturn hasBackgroundImageValue( style ) ? 'has-background' : '';\n}\n\nfunction InspectorImagePreview( { label, filename, url: imgUrl } ) {\n\tconst imgLabel = label || getFilename( imgUrl );\n\treturn (\n\t\t<ItemGroup as=\"span\">\n\t\t\t<HStack justify=\"flex-start\" as=\"span\">\n\t\t\t\t<span\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'block-editor-hooks__background__inspector-image-indicator-wrapper',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-image': imgUrl,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\taria-hidden\n\t\t\t\t>\n\t\t\t\t\t{ imgUrl && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-hooks__background__inspector-image-indicator\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tbackgroundImage: `url(${ imgUrl })`,\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</span>\n\t\t\t\t<FlexItem as=\"span\">\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-editor-hooks__background__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ imgLabel }\n\t\t\t\t\t</Truncate>\n\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t{ filename\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: file name */\n\t\t\t\t\t\t\t\t\t__( 'Selected image: %s' ),\n\t\t\t\t\t\t\t\t\tfilename\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'No image selected' ) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</ItemGroup>\n\t);\n}\n\nfunction BackgroundImagePanelItem( {\n\tclientId,\n\tisShownByDefault,\n\tsetAttributes,\n} ) {\n\tconst { style, mediaUpload } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tstyle: getBlockAttributes( clientId )?.style,\n\t\t\t\tmediaUpload: getSettings().mediaUpload,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { id, title, url } = style?.background?.backgroundImage || {};\n\n\tconst replaceContainerRef = useRef();\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst onSelectMedia = ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tconst newStyle = {\n\t\t\t\t...style,\n\t\t\t\tbackground: {\n\t\t\t\t\t...style?.background,\n\t\t\t\t\tbackgroundImage: undefined,\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tconst newAttributes = {\n\t\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t};\n\n\t\t\tsetAttributes( newAttributes );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// For media selections originated from a file upload.\n\t\tif (\n\t\t\t( media.media_type &&\n\t\t\t\tmedia.media_type !== IMAGE_BACKGROUND_TYPE ) ||\n\t\t\t( ! media.media_type &&\n\t\t\t\tmedia.type &&\n\t\t\t\tmedia.type !== IMAGE_BACKGROUND_TYPE )\n\t\t) {\n\t\t\tonUploadError(\n\t\t\t\t__( 'Only images can be used as a background image.' )\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst newStyle = {\n\t\t\t...style,\n\t\t\tbackground: {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundImage: {\n\t\t\t\t\turl: media.url,\n\t\t\t\t\tid: media.id,\n\t\t\t\t\tsource: 'file',\n\t\t\t\t\ttitle: media.title || undefined,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\tconst newAttributes = {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t};\n\n\t\tsetAttributes( newAttributes );\n\t};\n\n\tconst onFilesDrop = ( filesList ) => {\n\t\tmediaUpload( {\n\t\t\tallowedTypes: [ 'image' ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonSelectMedia( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t} );\n\t};\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tstyle: {\n\t\t\t\t...previousValue.style,\n\t\t\t\tbackground: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst hasValue = hasBackgroundImageValue( style );\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\tclassName=\"single-column\"\n\t\t\thasValue={ () => hasValue }\n\t\t\tlabel={ __( 'Background image' ) }\n\t\t\tonDeselect={ () => resetBackgroundImage( style, setAttributes ) }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tpanelId={ clientId }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName=\"block-editor-hooks__background__inspector-media-replace-container\"\n\t\t\t\tref={ replaceContainerRef }\n\t\t\t>\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\tallowedTypes={ [ IMAGE_BACKGROUND_TYPE ] }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\tname={\n\t\t\t\t\t\t<InspectorImagePreview\n\t\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t\t\tfilename={ title }\n\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t>\n\t\t\t\t\t{ hasValue && (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst [ toggleButton ] = focus.tabbable.find(\n\t\t\t\t\t\t\t\t\treplaceContainerRef.current\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t// Focus the toggle button and close the dropdown menu.\n\t\t\t\t\t\t\t\t// This ensures similar behaviour as to selecting an image, where the dropdown is\n\t\t\t\t\t\t\t\t// closed and focus is redirected to the dropdown toggle button.\n\t\t\t\t\t\t\t\ttoggleButton?.focus();\n\t\t\t\t\t\t\t\ttoggleButton?.click();\n\t\t\t\t\t\t\t\tresetBackgroundImage( style, setAttributes );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset ' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t) }\n\t\t\t\t</MediaReplaceFlow>\n\t\t\t\t<DropZone\n\t\t\t\t\tonFilesDrop={ onFilesDrop }\n\t\t\t\t\tlabel={ __( 'Drop to upload' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</ToolsPanelItem>\n\t);\n}\n\nfunction backgroundSizeHelpText( value ) {\n\tif ( value === 'cover' || value === undefined ) {\n\t\treturn __( 'Stretch image to cover the block.' );\n\t}\n\tif ( value === 'contain' ) {\n\t\treturn __( 'Resize image to fit without cropping.' );\n\t}\n\treturn __( 'Set a fixed width.' );\n}\n\nfunction BackgroundSizePanelItem( {\n\tclientId,\n\tisShownByDefault,\n\tsetAttributes,\n} ) {\n\tconst style = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId )?.style,\n\t\t[ clientId ]\n\t);\n\n\tconst sizeValue = style?.background?.backgroundSize;\n\tconst repeatValue = style?.background?.backgroundRepeat;\n\n\t// An `undefined` value is treated as `cover` by the toggle group control.\n\t// An empty string is treated as `auto` by the toggle group control. This\n\t// allows a user to select \"Size\" and then enter a custom value, with an\n\t// empty value being treated as `auto`.\n\tconst currentValueForToggle =\n\t\t( sizeValue !== undefined &&\n\t\t\tsizeValue !== 'cover' &&\n\t\t\tsizeValue !== 'contain' ) ||\n\t\tsizeValue === ''\n\t\t\t? 'auto'\n\t\t\t: sizeValue || 'cover';\n\n\t// If the current value is `cover` and the repeat value is `undefined`, then\n\t// the toggle should be unchecked as the default state. Otherwise, the toggle\n\t// should reflect the current repeat value.\n\tconst repeatCheckedValue =\n\t\trepeatValue === 'no-repeat' ||\n\t\t( currentValueForToggle === 'cover' && repeatValue === undefined )\n\t\t\t? false\n\t\t\t: true;\n\n\tconst hasValue = hasBackgroundSizeValue( style );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tstyle: {\n\t\t\t\t...previousValue.style,\n\t\t\t\tbackground: {\n\t\t\t\t\t...previousValue.style?.background,\n\t\t\t\t\tbackgroundRepeat: undefined,\n\t\t\t\t\tbackgroundSize: undefined,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst updateBackgroundSize = ( next ) => {\n\t\t// When switching to 'contain' toggle the repeat off.\n\t\tlet nextRepeat = repeatValue;\n\n\t\tif ( next === 'contain' ) {\n\t\t\tnextRepeat = 'no-repeat';\n\t\t}\n\n\t\tif (\n\t\t\t( currentValueForToggle === 'cover' ||\n\t\t\t\tcurrentValueForToggle === 'contain' ) &&\n\t\t\tnext === 'auto'\n\t\t) {\n\t\t\tnextRepeat = undefined;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t...style,\n\t\t\t\tbackground: {\n\t\t\t\t\t...style?.background,\n\t\t\t\t\tbackgroundRepeat: nextRepeat,\n\t\t\t\t\tbackgroundSize: next,\n\t\t\t\t},\n\t\t\t} ),\n\t\t} );\n\t};\n\n\tconst toggleIsRepeated = () => {\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t...style,\n\t\t\t\tbackground: {\n\t\t\t\t\t...style?.background,\n\t\t\t\t\tbackgroundRepeat:\n\t\t\t\t\t\trepeatCheckedValue === true ? 'no-repeat' : undefined,\n\t\t\t\t},\n\t\t\t} ),\n\t\t} );\n\t};\n\n\treturn (\n\t\t<VStack\n\t\t\tas={ ToolsPanelItem }\n\t\t\tspacing={ 2 }\n\t\t\tclassName=\"single-column\"\n\t\t\thasValue={ () => hasValue }\n\t\t\tlabel={ __( 'Size' ) }\n\t\t\tonDeselect={ () => resetBackgroundSize( style, setAttributes ) }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tpanelId={ clientId }\n\t\t>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\tvalue={ currentValueForToggle }\n\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\tisBlock={ true }\n\t\t\t\thelp={ backgroundSizeHelpText( sizeValue ) }\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ 'cover' }\n\t\t\t\t\tvalue={ 'cover' }\n\t\t\t\t\tlabel={ __( 'Cover' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ 'contain' }\n\t\t\t\t\tvalue={ 'contain' }\n\t\t\t\t\tlabel={ __( 'Contain' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ 'fixed' }\n\t\t\t\t\tvalue={ 'auto' }\n\t\t\t\t\tlabel={ __( 'Fixed' ) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t{ sizeValue !== undefined &&\n\t\t\tsizeValue !== 'cover' &&\n\t\t\tsizeValue !== 'contain' ? (\n\t\t\t\t<UnitControl\n\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\t\tvalue={ sizeValue }\n\t\t\t\t/>\n\t\t\t) : null }\n\t\t\t{ currentValueForToggle !== 'cover' && (\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Repeat image' ) }\n\t\t\t\t\tchecked={ repeatCheckedValue }\n\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport function BackgroundImagePanel( props ) {\n\tconst [ backgroundImage, backgroundSize ] = useSettings(\n\t\t'background.backgroundImage',\n\t\t'background.backgroundSize'\n\t);\n\n\tif (\n\t\t! backgroundImage ||\n\t\t! hasBackgroundSupport( props.name, 'backgroundImage' )\n\t) {\n\t\treturn null;\n\t}\n\n\tconst showBackgroundSize = !! (\n\t\tbackgroundSize && hasBackgroundSupport( props.name, 'backgroundSize' )\n\t);\n\n\tconst defaultControls = getBlockSupport( props.name, [\n\t\tBACKGROUND_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\treturn (\n\t\t<InspectorControls group=\"background\">\n\t\t\t<BackgroundImagePanelItem\n\t\t\t\tisShownByDefault={ defaultControls?.backgroundImage }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t\t{ showBackgroundSize && (\n\t\t\t\t<BackgroundSizePanelItem\n\t\t\t\t\tisShownByDefault={ defaultControls?.backgroundSize }\n\t\t\t\t\t{ ...props }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_blob","_blocks","_dom","_components","_data","_element","_i18n","_notices","_url","_inspectorControls","_mediaReplaceFlow","_useSettings","_utils","_store","BACKGROUND_SUPPORT_KEY","exports","IMAGE_BACKGROUND_TYPE","hasBackgroundImageValue","style","hasValue","background","backgroundImage","id","url","hasBackgroundSizeValue","backgroundPosition","undefined","backgroundSize","hasBackgroundSupport","blockName","feature","Platform","OS","support","getBlockSupport","backgroundRepeat","resetBackgroundImage","setAttributes","cleanEmptyObject","resetBackgroundSize","getBackgroundImageClasses","InspectorImagePreview","label","filename","imgUrl","imgLabel","getFilename","_react","createElement","__experimentalItemGroup","as","__experimentalHStack","justify","className","classnames","FlexItem","__experimentalTruncate","numberOfLines","VisuallyHidden","sprintf","__","BackgroundImagePanelItem","clientId","isShownByDefault","mediaUpload","useSelect","select","getBlockAttributes","getSettings","blockEditorStore","title","replaceContainerRef","useRef","createErrorNotice","useDispatch","noticesStore","onUploadError","message","type","onSelectMedia","media","newStyle","newAttributes","isBlobURL","media_type","source","onFilesDrop","filesList","allowedTypes","onFileChange","image","onError","resetAllFilter","useCallback","previousValue","__experimentalToolsPanelItem","onDeselect","panelId","ref","default","mediaId","mediaURL","accept","onSelect","name","variant","MenuItem","onClick","toggleButton","focus","tabbable","find","current","click","DropZone","backgroundSizeHelpText","value","coordsToBackgroundPosition","isNaN","x","y","backgroundPositionToCoords","split","map","v","parseFloat","BackgroundSizePanelItem","sizeValue","repeatValue","currentValueForToggle","repeatCheckedValue","updateBackgroundSize","next","nextRepeat","updateBackgroundPosition","toggleIsRepeated","__experimentalVStack","ToolsPanelItem","spacing","FocalPointPicker","__next40pxDefaultSize","onChange","__experimentalToggleGroupControl","size","isBlock","help","__experimentalToggleGroupControlOption","key","__experimentalUnitControl","ToggleControl","checked","BackgroundImagePanel","props","useSettings","showBackgroundSize","defaultControls","group"],"sources":["@wordpress/block-editor/src/hooks/background.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { focus } from '@wordpress/dom';\nimport {\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalVStack as VStack,\n\tDropZone,\n\tFlexItem,\n\tFocalPointPicker,\n\tMenuItem,\n\tVisuallyHidden,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { Platform, useCallback, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport MediaReplaceFlow from '../components/media-replace-flow';\nimport { useSettings } from '../components/use-settings';\nimport { cleanEmptyObject } from './utils';\nimport { store as blockEditorStore } from '../store';\n\nexport const BACKGROUND_SUPPORT_KEY = 'background';\nexport const IMAGE_BACKGROUND_TYPE = 'image';\n\n/**\n * Checks if there is a current value in the background image block support\n * attributes.\n *\n * @param {Object} style Style attribute.\n * @return {boolean} Whether or not the block has a background image value set.\n */\nexport function hasBackgroundImageValue( style ) {\n\tconst hasValue =\n\t\t!! style?.background?.backgroundImage?.id ||\n\t\t!! style?.background?.backgroundImage?.url;\n\n\treturn hasValue;\n}\n\n/**\n * Checks if there is a current value in the background size block support\n * attributes. Background size values include background size as well\n * as background position.\n *\n * @param {Object} style Style attribute.\n * @return {boolean} Whether or not the block has a background size value set.\n */\nexport function hasBackgroundSizeValue( style ) {\n\treturn (\n\t\tstyle?.background?.backgroundPosition !== undefined ||\n\t\tstyle?.background?.backgroundSize !== undefined\n\t);\n}\n\n/**\n * Determine whether there is block support for background.\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 hasBackgroundSupport( blockName, feature = 'any' ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst support = getBlockSupport( blockName, BACKGROUND_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn (\n\t\t\t!! support?.backgroundImage ||\n\t\t\t!! support?.backgroundSize ||\n\t\t\t!! support?.backgroundRepeat\n\t\t);\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\n/**\n * Resets the background image block support attributes. This can be used when disabling\n * the background image controls for a block via a `ToolsPanel`.\n *\n * @param {Object} style Style attribute.\n * @param {Function} setAttributes Function to set block's attributes.\n */\nexport function resetBackgroundImage( style = {}, setAttributes ) {\n\tsetAttributes( {\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...style,\n\t\t\tbackground: {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundImage: undefined,\n\t\t\t},\n\t\t} ),\n\t} );\n}\n\n/**\n * Resets the background size block support attributes. This can be used when disabling\n * the background size controls for a block via a `ToolsPanel`.\n *\n * @param {Object} style Style attribute.\n * @param {Function} setAttributes Function to set block's attributes.\n */\nfunction resetBackgroundSize( style = {}, setAttributes ) {\n\tsetAttributes( {\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...style,\n\t\t\tbackground: {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundPosition: undefined,\n\t\t\t\tbackgroundRepeat: undefined,\n\t\t\t\tbackgroundSize: undefined,\n\t\t\t},\n\t\t} ),\n\t} );\n}\n\n/**\n * Generates a CSS class name if an background image is set.\n *\n * @param {Object} style A block's style attribute.\n *\n * @return {string} CSS class name.\n */\nexport function getBackgroundImageClasses( style ) {\n\treturn hasBackgroundImageValue( style ) ? 'has-background' : '';\n}\n\nfunction InspectorImagePreview( { label, filename, url: imgUrl } ) {\n\tconst imgLabel = label || getFilename( imgUrl );\n\treturn (\n\t\t<ItemGroup as=\"span\">\n\t\t\t<HStack justify=\"flex-start\" as=\"span\">\n\t\t\t\t<span\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'block-editor-hooks__background__inspector-image-indicator-wrapper',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-image': imgUrl,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\taria-hidden\n\t\t\t\t>\n\t\t\t\t\t{ imgUrl && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-hooks__background__inspector-image-indicator\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tbackgroundImage: `url(${ imgUrl })`,\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</span>\n\t\t\t\t<FlexItem as=\"span\">\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-editor-hooks__background__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ imgLabel }\n\t\t\t\t\t</Truncate>\n\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t{ filename\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: file name */\n\t\t\t\t\t\t\t\t\t__( 'Selected image: %s' ),\n\t\t\t\t\t\t\t\t\tfilename\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'No image selected' ) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</ItemGroup>\n\t);\n}\n\nfunction BackgroundImagePanelItem( {\n\tclientId,\n\tisShownByDefault,\n\tsetAttributes,\n} ) {\n\tconst { style, mediaUpload } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tstyle: getBlockAttributes( clientId )?.style,\n\t\t\t\tmediaUpload: getSettings().mediaUpload,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { id, title, url } = style?.background?.backgroundImage || {};\n\n\tconst replaceContainerRef = useRef();\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst onSelectMedia = ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tconst newStyle = {\n\t\t\t\t...style,\n\t\t\t\tbackground: {\n\t\t\t\t\t...style?.background,\n\t\t\t\t\tbackgroundImage: undefined,\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tconst newAttributes = {\n\t\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t};\n\n\t\t\tsetAttributes( newAttributes );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// For media selections originated from a file upload.\n\t\tif (\n\t\t\t( media.media_type &&\n\t\t\t\tmedia.media_type !== IMAGE_BACKGROUND_TYPE ) ||\n\t\t\t( ! media.media_type &&\n\t\t\t\tmedia.type &&\n\t\t\t\tmedia.type !== IMAGE_BACKGROUND_TYPE )\n\t\t) {\n\t\t\tonUploadError(\n\t\t\t\t__( 'Only images can be used as a background image.' )\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst newStyle = {\n\t\t\t...style,\n\t\t\tbackground: {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundImage: {\n\t\t\t\t\turl: media.url,\n\t\t\t\t\tid: media.id,\n\t\t\t\t\tsource: 'file',\n\t\t\t\t\ttitle: media.title || undefined,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\tconst newAttributes = {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t};\n\n\t\tsetAttributes( newAttributes );\n\t};\n\n\tconst onFilesDrop = ( filesList ) => {\n\t\tmediaUpload( {\n\t\t\tallowedTypes: [ 'image' ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonSelectMedia( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t} );\n\t};\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tstyle: {\n\t\t\t\t...previousValue.style,\n\t\t\t\tbackground: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst hasValue = hasBackgroundImageValue( style );\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\tclassName=\"single-column\"\n\t\t\thasValue={ () => hasValue }\n\t\t\tlabel={ __( 'Background image' ) }\n\t\t\tonDeselect={ () => resetBackgroundImage( style, setAttributes ) }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tpanelId={ clientId }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName=\"block-editor-hooks__background__inspector-media-replace-container\"\n\t\t\t\tref={ replaceContainerRef }\n\t\t\t>\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\tallowedTypes={ [ IMAGE_BACKGROUND_TYPE ] }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\tname={\n\t\t\t\t\t\t<InspectorImagePreview\n\t\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t\t\tfilename={ title }\n\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t>\n\t\t\t\t\t{ hasValue && (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst [ toggleButton ] = focus.tabbable.find(\n\t\t\t\t\t\t\t\t\treplaceContainerRef.current\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t// Focus the toggle button and close the dropdown menu.\n\t\t\t\t\t\t\t\t// This ensures similar behaviour as to selecting an image, where the dropdown is\n\t\t\t\t\t\t\t\t// closed and focus is redirected to the dropdown toggle button.\n\t\t\t\t\t\t\t\ttoggleButton?.focus();\n\t\t\t\t\t\t\t\ttoggleButton?.click();\n\t\t\t\t\t\t\t\tresetBackgroundImage( style, setAttributes );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset ' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t) }\n\t\t\t\t</MediaReplaceFlow>\n\t\t\t\t<DropZone\n\t\t\t\t\tonFilesDrop={ onFilesDrop }\n\t\t\t\t\tlabel={ __( 'Drop to upload' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</ToolsPanelItem>\n\t);\n}\n\nfunction backgroundSizeHelpText( value ) {\n\tif ( value === 'cover' || value === undefined ) {\n\t\treturn __( 'Image covers the space evenly.' );\n\t}\n\tif ( value === 'contain' ) {\n\t\treturn __( 'Image is contained without distortion.' );\n\t}\n\treturn __( 'Specify a fixed width.' );\n}\n\nexport const coordsToBackgroundPosition = ( value ) => {\n\tif ( ! value || isNaN( value.x ) || isNaN( value.y ) ) {\n\t\treturn undefined;\n\t}\n\n\treturn `${ value.x * 100 }% ${ value.y * 100 }%`;\n};\n\nexport const backgroundPositionToCoords = ( value ) => {\n\tif ( ! value ) {\n\t\treturn { x: undefined, y: undefined };\n\t}\n\n\tlet [ x, y ] = value.split( ' ' ).map( ( v ) => parseFloat( v ) / 100 );\n\tx = isNaN( x ) ? undefined : x;\n\ty = isNaN( y ) ? x : y;\n\n\treturn { x, y };\n};\n\nfunction BackgroundSizePanelItem( {\n\tclientId,\n\tisShownByDefault,\n\tsetAttributes,\n} ) {\n\tconst style = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId )?.style,\n\t\t[ clientId ]\n\t);\n\n\tconst sizeValue = style?.background?.backgroundSize;\n\tconst repeatValue = style?.background?.backgroundRepeat;\n\n\t// An `undefined` value is treated as `cover` by the toggle group control.\n\t// An empty string is treated as `auto` by the toggle group control. This\n\t// allows a user to select \"Size\" and then enter a custom value, with an\n\t// empty value being treated as `auto`.\n\tconst currentValueForToggle =\n\t\t( sizeValue !== undefined &&\n\t\t\tsizeValue !== 'cover' &&\n\t\t\tsizeValue !== 'contain' ) ||\n\t\tsizeValue === ''\n\t\t\t? 'auto'\n\t\t\t: sizeValue || 'cover';\n\n\t// If the current value is `cover` and the repeat value is `undefined`, then\n\t// the toggle should be unchecked as the default state. Otherwise, the toggle\n\t// should reflect the current repeat value.\n\tconst repeatCheckedValue =\n\t\trepeatValue === 'no-repeat' ||\n\t\t( currentValueForToggle === 'cover' && repeatValue === undefined )\n\t\t\t? false\n\t\t\t: true;\n\n\tconst hasValue = hasBackgroundSizeValue( style );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tstyle: {\n\t\t\t\t...previousValue.style,\n\t\t\t\tbackground: {\n\t\t\t\t\t...previousValue.style?.background,\n\t\t\t\t\tbackgroundRepeat: undefined,\n\t\t\t\t\tbackgroundSize: undefined,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst updateBackgroundSize = ( next ) => {\n\t\t// When switching to 'contain' toggle the repeat off.\n\t\tlet nextRepeat = repeatValue;\n\n\t\tif ( next === 'contain' ) {\n\t\t\tnextRepeat = 'no-repeat';\n\t\t}\n\n\t\tif (\n\t\t\t( currentValueForToggle === 'cover' ||\n\t\t\t\tcurrentValueForToggle === 'contain' ) &&\n\t\t\tnext === 'auto'\n\t\t) {\n\t\t\tnextRepeat = undefined;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t...style,\n\t\t\t\tbackground: {\n\t\t\t\t\t...style?.background,\n\t\t\t\t\tbackgroundRepeat: nextRepeat,\n\t\t\t\t\tbackgroundSize: next,\n\t\t\t\t},\n\t\t\t} ),\n\t\t} );\n\t};\n\n\tconst updateBackgroundPosition = ( next ) => {\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t...style,\n\t\t\t\tbackground: {\n\t\t\t\t\t...style?.background,\n\t\t\t\t\tbackgroundPosition: coordsToBackgroundPosition( next ),\n\t\t\t\t},\n\t\t\t} ),\n\t\t} );\n\t};\n\n\tconst toggleIsRepeated = () => {\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t...style,\n\t\t\t\tbackground: {\n\t\t\t\t\t...style?.background,\n\t\t\t\t\tbackgroundRepeat:\n\t\t\t\t\t\trepeatCheckedValue === true ? 'no-repeat' : undefined,\n\t\t\t\t},\n\t\t\t} ),\n\t\t} );\n\t};\n\n\treturn (\n\t\t<VStack\n\t\t\tas={ ToolsPanelItem }\n\t\t\tspacing={ 2 }\n\t\t\tclassName=\"single-column\"\n\t\t\thasValue={ () => hasValue }\n\t\t\tlabel={ __( 'Size' ) }\n\t\t\tonDeselect={ () => resetBackgroundSize( style, setAttributes ) }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tpanelId={ clientId }\n\t\t>\n\t\t\t<FocalPointPicker\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Position' ) }\n\t\t\t\turl={ style?.background?.backgroundImage?.url }\n\t\t\t\tvalue={ backgroundPositionToCoords(\n\t\t\t\t\tstyle?.background?.backgroundPosition\n\t\t\t\t) }\n\t\t\t\tonChange={ updateBackgroundPosition }\n\t\t\t/>\n\t\t\t<ToggleGroupControl\n\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\tvalue={ currentValueForToggle }\n\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\tisBlock={ true }\n\t\t\t\thelp={ backgroundSizeHelpText( sizeValue ) }\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ 'cover' }\n\t\t\t\t\tvalue={ 'cover' }\n\t\t\t\t\tlabel={ __( 'Cover' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ 'contain' }\n\t\t\t\t\tvalue={ 'contain' }\n\t\t\t\t\tlabel={ __( 'Contain' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ 'fixed' }\n\t\t\t\t\tvalue={ 'auto' }\n\t\t\t\t\tlabel={ __( 'Fixed' ) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t{ sizeValue !== undefined &&\n\t\t\tsizeValue !== 'cover' &&\n\t\t\tsizeValue !== 'contain' ? (\n\t\t\t\t<UnitControl\n\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\t\tvalue={ sizeValue }\n\t\t\t\t/>\n\t\t\t) : null }\n\t\t\t{ currentValueForToggle !== 'cover' && (\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Repeat' ) }\n\t\t\t\t\tchecked={ repeatCheckedValue }\n\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport function BackgroundImagePanel( props ) {\n\tconst [ backgroundImage, backgroundSize ] = useSettings(\n\t\t'background.backgroundImage',\n\t\t'background.backgroundSize'\n\t);\n\n\tif (\n\t\t! backgroundImage ||\n\t\t! hasBackgroundSupport( props.name, 'backgroundImage' )\n\t) {\n\t\treturn null;\n\t}\n\n\tconst showBackgroundSize = !! (\n\t\tbackgroundSize && hasBackgroundSupport( props.name, 'backgroundSize' )\n\t);\n\n\tconst defaultControls = getBlockSupport( props.name, [\n\t\tBACKGROUND_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\treturn (\n\t\t<InspectorControls group=\"background\">\n\t\t\t<BackgroundImagePanelItem\n\t\t\t\tisShownByDefault={ defaultControls?.backgroundImage }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t\t{ showBackgroundSize && (\n\t\t\t\t<BackgroundSizePanelItem\n\t\t\t\t\tisShownByDefault={ defaultControls?.backgroundSize }\n\t\t\t\t\t{ ...props }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n}\n"],"mappings":"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"}
@@ -161,11 +161,10 @@ function BlockHooksControlPure({
161
161
  }));
162
162
  })));
163
163
  }
164
- var _default = {
164
+ var _default = exports.default = {
165
165
  edit: BlockHooksControlPure,
166
166
  hasSupport() {
167
167
  return true;
168
168
  }
169
169
  };
170
- exports.default = _default;
171
170
  //# sourceMappingURL=block-hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_element","_components","_blocks","_data","_components2","_store","EMPTY_OBJECT","BlockHooksControlPure","name","clientId","blockTypes","useSelect","select","blocksStore","getBlockTypes","hookedBlocksForCurrentBlock","useMemo","filter","blockHooks","blockIndex","rootClientId","innerBlocksLength","getBlock","getBlockIndex","getBlockRootClientId","blockEditorStore","innerBlocks","length","hookedBlockClientIds","getGlobalBlockCount","_hookedBlockClientIds","reduce","clientIds","block","relativePosition","candidates","hookedBlock","find","candidate","Object","values","insertBlock","removeBlock","useDispatch","groupedHookedBlocks","groups","namespace","split","push","insertBlockIntoDesignatedLocation","_react","createElement","InspectorControls","PanelBody","className","title","__","initialOpen","keys","map","vendor","Fragment","key","checked","ToggleControl","label","__experimentalHStack","justify","BlockIcon","icon","onChange","createBlock","_default","edit","hasSupport","exports","default"],"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 {\n\t__experimentalHStack as HStack,\n\tPanelBody,\n\tToggleControl,\n} from '@wordpress/components';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { BlockIcon, InspectorControls } from '../components';\nimport { store as blockEditorStore } from '../store';\n\nconst EMPTY_OBJECT = {};\n\nfunction BlockHooksControlPure( { name, clientId } ) {\n\tconst blockTypes = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockTypes(),\n\t\t[]\n\t);\n\n\tconst hookedBlocksForCurrentBlock = useMemo(\n\t\t() =>\n\t\t\tblockTypes?.filter(\n\t\t\t\t( { blockHooks } ) => blockHooks && name in blockHooks\n\t\t\t),\n\t\t[ blockTypes, name ]\n\t);\n\n\tconst { blockIndex, rootClientId, innerBlocksLength } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlockIndex, getBlockRootClientId } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tblockIndex: getBlockIndex( clientId ),\n\t\t\t\tinnerBlocksLength: getBlock( clientId )?.innerBlocks?.length,\n\t\t\t\trootClientId: getBlockRootClientId( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst hookedBlockClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getGlobalBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\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 = getBlock( rootClientId )?.innerBlocks;\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 = getBlock( clientId ).innerBlocks;\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, rootClientId ]\n\t);\n\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\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\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={ true }\n\t\t\t>\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\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={\n\t\t\t\t\t\t\t\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ block.icon }\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\t<span>{ block.title }</span>\n\t\t\t\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t\t\t}\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\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_element","_components","_blocks","_data","_components2","_store","EMPTY_OBJECT","BlockHooksControlPure","name","clientId","blockTypes","useSelect","select","blocksStore","getBlockTypes","hookedBlocksForCurrentBlock","useMemo","filter","blockHooks","blockIndex","rootClientId","innerBlocksLength","getBlock","getBlockIndex","getBlockRootClientId","blockEditorStore","innerBlocks","length","hookedBlockClientIds","getGlobalBlockCount","_hookedBlockClientIds","reduce","clientIds","block","relativePosition","candidates","hookedBlock","find","candidate","Object","values","insertBlock","removeBlock","useDispatch","groupedHookedBlocks","groups","namespace","split","push","insertBlockIntoDesignatedLocation","_react","createElement","InspectorControls","PanelBody","className","title","__","initialOpen","keys","map","vendor","Fragment","key","checked","ToggleControl","label","__experimentalHStack","justify","BlockIcon","icon","onChange","createBlock","_default","exports","default","edit","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 {\n\t__experimentalHStack as HStack,\n\tPanelBody,\n\tToggleControl,\n} from '@wordpress/components';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { BlockIcon, InspectorControls } from '../components';\nimport { store as blockEditorStore } from '../store';\n\nconst EMPTY_OBJECT = {};\n\nfunction BlockHooksControlPure( { name, clientId } ) {\n\tconst blockTypes = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockTypes(),\n\t\t[]\n\t);\n\n\tconst hookedBlocksForCurrentBlock = useMemo(\n\t\t() =>\n\t\t\tblockTypes?.filter(\n\t\t\t\t( { blockHooks } ) => blockHooks && name in blockHooks\n\t\t\t),\n\t\t[ blockTypes, name ]\n\t);\n\n\tconst { blockIndex, rootClientId, innerBlocksLength } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlockIndex, getBlockRootClientId } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tblockIndex: getBlockIndex( clientId ),\n\t\t\t\tinnerBlocksLength: getBlock( clientId )?.innerBlocks?.length,\n\t\t\t\trootClientId: getBlockRootClientId( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst hookedBlockClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getGlobalBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\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 = getBlock( rootClientId )?.innerBlocks;\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 = getBlock( clientId ).innerBlocks;\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, rootClientId ]\n\t);\n\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\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\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={ true }\n\t\t\t>\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\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={\n\t\t\t\t\t\t\t\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ block.icon }\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\t<span>{ block.title }</span>\n\t\t\t\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t\t\t}\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\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"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"}
@@ -72,13 +72,12 @@ function BlockRenameControlPure({
72
72
  }
73
73
  }));
74
74
  }
75
- var _default = {
75
+ var _default = exports.default = {
76
76
  edit: BlockRenameControlPure,
77
77
  attributeKeys: ['metadata'],
78
78
  hasSupport(name) {
79
79
  return (0, _blocks.hasBlockSupport)(name, 'renaming', true);
80
80
  }
81
81
  };
82
- exports.default = _default;
83
82
  (0, _hooks.addFilter)('blocks.registerBlockType', 'core/metadata/addLabelCallback', addLabelCallback);
84
83
  //# sourceMappingURL=block-renaming.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_hooks","require","_blocks","_i18n","_components","_components2","addLabelCallback","settings","__experimentalLabel","supportsBlockNaming","hasBlockSupport","attributes","context","metadata","name","BlockRenameControlPure","setAttributes","_react","createElement","InspectorControls","group","TextControl","__nextHasNoMarginBottom","__next40pxDefaultSize","label","__","value","onChange","newName","_default","edit","attributeKeys","hasSupport","exports","default","addFilter"],"sources":["@wordpress/block-editor/src/hooks/block-renaming.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport { TextControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { InspectorControls } from '../components';\n\n/**\n * Filters registered block settings, adding an `__experimentalLabel` callback if one does not already exist.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addLabelCallback( settings ) {\n\t// If blocks provide their own label callback, do not override it.\n\tif ( settings.__experimentalLabel ) {\n\t\treturn settings;\n\t}\n\n\tconst supportsBlockNaming = hasBlockSupport(\n\t\tsettings,\n\t\t'renaming',\n\t\ttrue // default value\n\t);\n\n\t// Check whether block metadata is supported before using it.\n\tif ( supportsBlockNaming ) {\n\t\tsettings.__experimentalLabel = ( attributes, { context } ) => {\n\t\t\tconst { metadata } = attributes;\n\n\t\t\t// In the list view, use the block's name attribute as the label.\n\t\t\tif ( context === 'list-view' && metadata?.name ) {\n\t\t\t\treturn metadata.name;\n\t\t\t}\n\t\t};\n\t}\n\n\treturn settings;\n}\n\nfunction BlockRenameControlPure( { metadata, setAttributes } ) {\n\treturn (\n\t\t<InspectorControls group=\"advanced\">\n\t\t\t<TextControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Block name' ) }\n\t\t\t\tvalue={ metadata?.name || '' }\n\t\t\t\tonChange={ ( newName ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tmetadata: { ...metadata, name: newName },\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</InspectorControls>\n\t);\n}\n\nexport default {\n\tedit: BlockRenameControlPure,\n\tattributeKeys: [ 'metadata' ],\n\thasSupport( name ) {\n\t\treturn hasBlockSupport( name, 'renaming', true );\n\t},\n};\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/metadata/addLabelCallback',\n\taddLabelCallback\n);\n"],"mappings":";;;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAKA,IAAAI,YAAA,GAAAJ,OAAA;AAXA;AACA;AACA;;AAMA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,gBAAgBA,CAAEC,QAAQ,EAAG;EAC5C;EACA,IAAKA,QAAQ,CAACC,mBAAmB,EAAG;IACnC,OAAOD,QAAQ;EAChB;EAEA,MAAME,mBAAmB,GAAG,IAAAC,uBAAe,EAC1CH,QAAQ,EACR,UAAU,EACV,IAAI,CAAC;EACN,CAAC;;EAED;EACA,IAAKE,mBAAmB,EAAG;IAC1BF,QAAQ,CAACC,mBAAmB,GAAG,CAAEG,UAAU,EAAE;MAAEC;IAAQ,CAAC,KAAM;MAC7D,MAAM;QAAEC;MAAS,CAAC,GAAGF,UAAU;;MAE/B;MACA,IAAKC,OAAO,KAAK,WAAW,IAAIC,QAAQ,EAAEC,IAAI,EAAG;QAChD,OAAOD,QAAQ,CAACC,IAAI;MACrB;IACD,CAAC;EACF;EAEA,OAAOP,QAAQ;AAChB;AAEA,SAASQ,sBAAsBA,CAAE;EAAEF,QAAQ;EAAEG;AAAc,CAAC,EAAG;EAC9D,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACb,YAAA,CAAAc,iBAAiB;IAACC,KAAK,EAAC;EAAU,GAClC,IAAAH,MAAA,CAAAC,aAAA,EAACd,WAAA,CAAAiB,WAAW;IACXC,uBAAuB;IACvBC,qBAAqB;IACrBC,KAAK,EAAG,IAAAC,QAAE,EAAE,YAAa,CAAG;IAC5BC,KAAK,EAAGb,QAAQ,EAAEC,IAAI,IAAI,EAAI;IAC9Ba,QAAQ,EAAKC,OAAO,IAAM;MACzBZ,aAAa,CAAE;QACdH,QAAQ,EAAE;UAAE,GAAGA,QAAQ;UAAEC,IAAI,EAAEc;QAAQ;MACxC,CAAE,CAAC;IACJ;EAAG,CACH,CACiB,CAAC;AAEtB;AAAC,IAAAC,QAAA,GAEc;EACdC,IAAI,EAAEf,sBAAsB;EAC5BgB,aAAa,EAAE,CAAE,UAAU,CAAE;EAC7BC,UAAUA,CAAElB,IAAI,EAAG;IAClB,OAAO,IAAAJ,uBAAe,EAAEI,IAAI,EAAE,UAAU,EAAE,IAAK,CAAC;EACjD;AACD,CAAC;AAAAmB,OAAA,CAAAC,OAAA,GAAAL,QAAA;AAED,IAAAM,gBAAS,EACR,0BAA0B,EAC1B,gCAAgC,EAChC7B,gBACD,CAAC"}
1
+ {"version":3,"names":["_hooks","require","_blocks","_i18n","_components","_components2","addLabelCallback","settings","__experimentalLabel","supportsBlockNaming","hasBlockSupport","attributes","context","metadata","name","BlockRenameControlPure","setAttributes","_react","createElement","InspectorControls","group","TextControl","__nextHasNoMarginBottom","__next40pxDefaultSize","label","__","value","onChange","newName","_default","exports","default","edit","attributeKeys","hasSupport","addFilter"],"sources":["@wordpress/block-editor/src/hooks/block-renaming.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport { TextControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { InspectorControls } from '../components';\n\n/**\n * Filters registered block settings, adding an `__experimentalLabel` callback if one does not already exist.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addLabelCallback( settings ) {\n\t// If blocks provide their own label callback, do not override it.\n\tif ( settings.__experimentalLabel ) {\n\t\treturn settings;\n\t}\n\n\tconst supportsBlockNaming = hasBlockSupport(\n\t\tsettings,\n\t\t'renaming',\n\t\ttrue // default value\n\t);\n\n\t// Check whether block metadata is supported before using it.\n\tif ( supportsBlockNaming ) {\n\t\tsettings.__experimentalLabel = ( attributes, { context } ) => {\n\t\t\tconst { metadata } = attributes;\n\n\t\t\t// In the list view, use the block's name attribute as the label.\n\t\t\tif ( context === 'list-view' && metadata?.name ) {\n\t\t\t\treturn metadata.name;\n\t\t\t}\n\t\t};\n\t}\n\n\treturn settings;\n}\n\nfunction BlockRenameControlPure( { metadata, setAttributes } ) {\n\treturn (\n\t\t<InspectorControls group=\"advanced\">\n\t\t\t<TextControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Block name' ) }\n\t\t\t\tvalue={ metadata?.name || '' }\n\t\t\t\tonChange={ ( newName ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tmetadata: { ...metadata, name: newName },\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</InspectorControls>\n\t);\n}\n\nexport default {\n\tedit: BlockRenameControlPure,\n\tattributeKeys: [ 'metadata' ],\n\thasSupport( name ) {\n\t\treturn hasBlockSupport( name, 'renaming', true );\n\t},\n};\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/metadata/addLabelCallback',\n\taddLabelCallback\n);\n"],"mappings":";;;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAKA,IAAAI,YAAA,GAAAJ,OAAA;AAXA;AACA;AACA;;AAMA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,gBAAgBA,CAAEC,QAAQ,EAAG;EAC5C;EACA,IAAKA,QAAQ,CAACC,mBAAmB,EAAG;IACnC,OAAOD,QAAQ;EAChB;EAEA,MAAME,mBAAmB,GAAG,IAAAC,uBAAe,EAC1CH,QAAQ,EACR,UAAU,EACV,IAAI,CAAC;EACN,CAAC;;EAED;EACA,IAAKE,mBAAmB,EAAG;IAC1BF,QAAQ,CAACC,mBAAmB,GAAG,CAAEG,UAAU,EAAE;MAAEC;IAAQ,CAAC,KAAM;MAC7D,MAAM;QAAEC;MAAS,CAAC,GAAGF,UAAU;;MAE/B;MACA,IAAKC,OAAO,KAAK,WAAW,IAAIC,QAAQ,EAAEC,IAAI,EAAG;QAChD,OAAOD,QAAQ,CAACC,IAAI;MACrB;IACD,CAAC;EACF;EAEA,OAAOP,QAAQ;AAChB;AAEA,SAASQ,sBAAsBA,CAAE;EAAEF,QAAQ;EAAEG;AAAc,CAAC,EAAG;EAC9D,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACb,YAAA,CAAAc,iBAAiB;IAACC,KAAK,EAAC;EAAU,GAClC,IAAAH,MAAA,CAAAC,aAAA,EAACd,WAAA,CAAAiB,WAAW;IACXC,uBAAuB;IACvBC,qBAAqB;IACrBC,KAAK,EAAG,IAAAC,QAAE,EAAE,YAAa,CAAG;IAC5BC,KAAK,EAAGb,QAAQ,EAAEC,IAAI,IAAI,EAAI;IAC9Ba,QAAQ,EAAKC,OAAO,IAAM;MACzBZ,aAAa,CAAE;QACdH,QAAQ,EAAE;UAAE,GAAGA,QAAQ;UAAEC,IAAI,EAAEc;QAAQ;MACxC,CAAE,CAAC;IACJ;EAAG,CACH,CACiB,CAAC;AAEtB;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc;EACdC,IAAI,EAAEjB,sBAAsB;EAC5BkB,aAAa,EAAE,CAAE,UAAU,CAAE;EAC7BC,UAAUA,CAAEpB,IAAI,EAAG;IAClB,OAAO,IAAAJ,uBAAe,EAAEI,IAAI,EAAE,UAAU,EAAE,IAAK,CAAC;EACjD;AACD,CAAC;AAED,IAAAqB,gBAAS,EACR,0BAA0B,EAC1B,gCAAgC,EAChC7B,gBACD,CAAC"}
@@ -6,10 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.BORDER_SUPPORT_KEY = void 0;
8
8
  exports.BorderPanel = BorderPanel;
9
- exports.default = void 0;
9
+ exports.default = exports.SHADOW_SUPPORT_KEY = void 0;
10
10
  exports.getBorderClasses = getBorderClasses;
11
+ exports.getBorderPanelLabel = getBorderPanelLabel;
11
12
  exports.getMultiOriginColor = void 0;
12
13
  exports.hasBorderSupport = hasBorderSupport;
14
+ exports.hasShadowSupport = hasShadowSupport;
13
15
  exports.removeBorderAttribute = removeBorderAttribute;
14
16
  var _react = require("react");
15
17
  var _classnames = _interopRequireDefault(require("classnames"));
@@ -24,6 +26,7 @@ var _useMultipleOriginColorsAndGradients = _interopRequireDefault(require("../co
24
26
  var _utils = require("./utils");
25
27
  var _globalStyles = require("../components/global-styles");
26
28
  var _store = require("../store");
29
+ var _i18n = require("@wordpress/i18n");
27
30
  /**
28
31
  * External dependencies
29
32
  */
@@ -36,8 +39,8 @@ var _store = require("../store");
36
39
  * Internal dependencies
37
40
  */
38
41
 
39
- const BORDER_SUPPORT_KEY = '__experimentalBorder';
40
- exports.BORDER_SUPPORT_KEY = BORDER_SUPPORT_KEY;
42
+ const BORDER_SUPPORT_KEY = exports.BORDER_SUPPORT_KEY = '__experimentalBorder';
43
+ const SHADOW_SUPPORT_KEY = exports.SHADOW_SUPPORT_KEY = 'shadow';
41
44
  const getColorByProperty = (colors, property, value) => {
42
45
  let matchedColor;
43
46
  colors.some(origin => origin.colors.some(color => {
@@ -117,6 +120,7 @@ function attributesToStyle(attributes) {
117
120
  };
118
121
  }
119
122
  function BordersInspectorControl({
123
+ label,
120
124
  children,
121
125
  resetAllFilter
122
126
  }) {
@@ -130,7 +134,8 @@ function BordersInspectorControl({
130
134
  }, [resetAllFilter]);
131
135
  return (0, _react.createElement)(_inspectorControls.default, {
132
136
  group: "border",
133
- resetAllFilter: attributesResetAllFilter
137
+ resetAllFilter: attributesResetAllFilter,
138
+ label: label
134
139
  }, children);
135
140
  }
136
141
  function BorderPanel({
@@ -166,7 +171,10 @@ function BorderPanel({
166
171
  if (!isEnabled) {
167
172
  return null;
168
173
  }
169
- const defaultControls = (0, _blocks.getBlockSupport)(name, [BORDER_SUPPORT_KEY, '__experimentalDefaultControls']);
174
+ const defaultControls = {
175
+ ...(0, _blocks.getBlockSupport)(name, [BORDER_SUPPORT_KEY, '__experimentalDefaultControls']),
176
+ ...(0, _blocks.getBlockSupport)(name, [SHADOW_SUPPORT_KEY, '__experimentalDefaultControls'])
177
+ };
170
178
  return (0, _react.createElement)(_globalStyles.BorderPanel, {
171
179
  as: BordersInspectorControl,
172
180
  panelId: clientId,
@@ -199,6 +207,34 @@ function hasBorderSupport(blockName, feature = 'any') {
199
207
  return !!support?.[feature];
200
208
  }
201
209
 
210
+ /**
211
+ * Determine whether there is block support for shadow properties.
212
+ *
213
+ * @param {string} blockName Block name.
214
+ *
215
+ * @return {boolean} Whether there is support.
216
+ */
217
+ function hasShadowSupport(blockName) {
218
+ return (0, _blocks.hasBlockSupport)(blockName, SHADOW_SUPPORT_KEY);
219
+ }
220
+ function getBorderPanelLabel({
221
+ blockName,
222
+ hasBorderControl,
223
+ hasShadowControl
224
+ } = {}) {
225
+ if (!hasBorderControl && !hasShadowControl && blockName) {
226
+ hasBorderControl = hasBorderSupport(blockName);
227
+ hasShadowControl = hasShadowSupport(blockName);
228
+ }
229
+ if (hasBorderControl && hasShadowControl) {
230
+ return (0, _i18n.__)('Border & Shadow');
231
+ }
232
+ if (hasShadowControl) {
233
+ return (0, _i18n.__)('Shadow');
234
+ }
235
+ return (0, _i18n.__)('Border');
236
+ }
237
+
202
238
  /**
203
239
  * Returns a new style object where the specified border attribute has been
204
240
  * removed.
@@ -343,7 +379,7 @@ function useBlockProps({
343
379
  style
344
380
  });
345
381
  }
346
- var _default = {
382
+ var _default = exports.default = {
347
383
  useBlockProps,
348
384
  addSaveProps,
349
385
  attributeKeys: ['borderColor', 'style'],
@@ -351,6 +387,5 @@ var _default = {
351
387
  return hasBorderSupport(name, 'color');
352
388
  }
353
389
  };
354
- exports.default = _default;
355
390
  (0, _hooks.addFilter)('blocks.registerBlockType', 'core/border/addAttributes', addAttributes);
356
391
  //# sourceMappingURL=border.js.map