@wordpress/block-editor 12.18.1 → 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 (912) 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/hooks.js +2 -3
  243. package/build/components/global-styles/hooks.js.map +1 -1
  244. package/build/components/global-styles/index.js +2 -15
  245. package/build/components/global-styles/index.js.map +1 -1
  246. package/build/components/global-styles/shadow-panel-components.js +133 -0
  247. package/build/components/global-styles/shadow-panel-components.js.map +1 -0
  248. package/build/components/global-styles/typography-panel.js +18 -36
  249. package/build/components/global-styles/typography-panel.js.map +1 -1
  250. package/build/components/global-styles/use-global-styles-output.js +1 -1
  251. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  252. package/build/components/global-styles/utils.js +38 -14
  253. package/build/components/global-styles/utils.js.map +1 -1
  254. package/build/components/iframe/index.js +1 -2
  255. package/build/components/iframe/index.js.map +1 -1
  256. package/build/components/image-editor/constants.js +3 -6
  257. package/build/components/image-editor/constants.js.map +1 -1
  258. package/build/components/image-link-destinations/index.native.js +1 -2
  259. package/build/components/image-link-destinations/index.native.js.map +1 -1
  260. package/build/components/index.js +2 -2
  261. package/build/components/index.js.map +1 -1
  262. package/build/components/index.native.js +2 -2
  263. package/build/components/index.native.js.map +1 -1
  264. package/build/components/inner-blocks/button-block-appender.js +1 -2
  265. package/build/components/inner-blocks/button-block-appender.js.map +1 -1
  266. package/build/components/inner-blocks/constants.native.js +1 -2
  267. package/build/components/inner-blocks/constants.native.js.map +1 -1
  268. package/build/components/inner-blocks/default-block-appender.js +1 -2
  269. package/build/components/inner-blocks/default-block-appender.js.map +1 -1
  270. package/build/components/inner-blocks/index.js +33 -30
  271. package/build/components/inner-blocks/index.js.map +1 -1
  272. package/build/components/inner-blocks/index.native.js +2 -6
  273. package/build/components/inner-blocks/index.native.js.map +1 -1
  274. package/build/components/inner-blocks/use-inner-block-template-sync.js +2 -3
  275. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  276. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js +1 -2
  277. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  278. package/build/components/inner-blocks/with-client-id.js +1 -2
  279. package/build/components/inner-blocks/with-client-id.js.map +1 -1
  280. package/build/components/inserter/block-patterns-explorer/index.js +1 -2
  281. package/build/components/inserter/block-patterns-explorer/index.js.map +1 -1
  282. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +1 -2
  283. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  284. package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -2
  285. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  286. package/build/components/inserter/block-patterns-tab/index.js +1 -2
  287. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  288. package/build/components/inserter/block-patterns-tab/patterns-filter.js +4 -4
  289. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  290. package/build/components/inserter/block-patterns-tab/utils.js +5 -9
  291. package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
  292. package/build/components/inserter/block-types-tab.js +1 -2
  293. package/build/components/inserter/block-types-tab.js.map +1 -1
  294. package/build/components/inserter/block-types-tab.native.js +1 -2
  295. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  296. package/build/components/inserter/hooks/use-block-type-impressions.native.js +1 -2
  297. package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  298. package/build/components/inserter/hooks/use-block-types-state.js +1 -2
  299. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  300. package/build/components/inserter/hooks/use-insertion-point.js +1 -2
  301. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  302. package/build/components/inserter/hooks/use-patterns-state.js +1 -2
  303. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  304. package/build/components/inserter/index.js +2 -4
  305. package/build/components/inserter/index.js.map +1 -1
  306. package/build/components/inserter/index.native.js +1 -2
  307. package/build/components/inserter/index.native.js.map +1 -1
  308. package/build/components/inserter/library.js +1 -2
  309. package/build/components/inserter/library.js.map +1 -1
  310. package/build/components/inserter/media-tab/media-list.js +1 -2
  311. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  312. package/build/components/inserter/media-tab/media-tab.js +1 -2
  313. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  314. package/build/components/inserter/menu.js +1 -2
  315. package/build/components/inserter/menu.js.map +1 -1
  316. package/build/components/inserter/menu.native.js +1 -2
  317. package/build/components/inserter/menu.native.js.map +1 -1
  318. package/build/components/inserter/no-results.js +1 -2
  319. package/build/components/inserter/no-results.js.map +1 -1
  320. package/build/components/inserter/no-results.native.js +1 -2
  321. package/build/components/inserter/no-results.native.js.map +1 -1
  322. package/build/components/inserter/panel.js +1 -2
  323. package/build/components/inserter/panel.js.map +1 -1
  324. package/build/components/inserter/preview-panel.js +1 -2
  325. package/build/components/inserter/preview-panel.js.map +1 -1
  326. package/build/components/inserter/quick-inserter.js +3 -2
  327. package/build/components/inserter/quick-inserter.js.map +1 -1
  328. package/build/components/inserter/reusable-blocks-tab.native.js +1 -2
  329. package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  330. package/build/components/inserter/search-items.js +0 -1
  331. package/build/components/inserter/search-items.js.map +1 -1
  332. package/build/components/inserter/search-results.js +1 -2
  333. package/build/components/inserter/search-results.js.map +1 -1
  334. package/build/components/inserter/search-results.native.js +1 -2
  335. package/build/components/inserter/search-results.native.js.map +1 -1
  336. package/build/components/inserter/tabs.js +1 -2
  337. package/build/components/inserter/tabs.js.map +1 -1
  338. package/build/components/inserter/tabs.native.js +1 -2
  339. package/build/components/inserter/tabs.native.js.map +1 -1
  340. package/build/components/inserter/tips.js +1 -2
  341. package/build/components/inserter/tips.js.map +1 -1
  342. package/build/components/inserter-button/index.native.js +1 -2
  343. package/build/components/inserter-button/index.native.js.map +1 -1
  344. package/build/components/inserter-button/sparkles.js +1 -2
  345. package/build/components/inserter-button/sparkles.js.map +1 -1
  346. package/build/components/inserter-draggable-blocks/index.js +11 -2
  347. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  348. package/build/components/inserter-list-item/index.js +1 -2
  349. package/build/components/inserter-list-item/index.js.map +1 -1
  350. package/build/components/inserter-listbox/context.js +1 -2
  351. package/build/components/inserter-listbox/context.js.map +1 -1
  352. package/build/components/inserter-listbox/group.js +1 -2
  353. package/build/components/inserter-listbox/group.js.map +1 -1
  354. package/build/components/inserter-listbox/index.js +1 -2
  355. package/build/components/inserter-listbox/index.js.map +1 -1
  356. package/build/components/inserter-listbox/item.js +1 -2
  357. package/build/components/inserter-listbox/item.js.map +1 -1
  358. package/build/components/inserter-listbox/row.js +1 -2
  359. package/build/components/inserter-listbox/row.js.map +1 -1
  360. package/build/components/inserter-menu-extension/index.js +1 -2
  361. package/build/components/inserter-menu-extension/index.js.map +1 -1
  362. package/build/components/inspector-controls/groups.js +1 -2
  363. package/build/components/inspector-controls/groups.js.map +1 -1
  364. package/build/components/inspector-controls/index.js +1 -2
  365. package/build/components/inspector-controls/index.js.map +1 -1
  366. package/build/components/inspector-controls-tabs/advanced-controls-panel.js +3 -4
  367. package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
  368. package/build/components/inspector-controls-tabs/position-controls-panel.js +1 -2
  369. package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  370. package/build/components/inspector-controls-tabs/settings-tab.js +1 -2
  371. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  372. package/build/components/inspector-controls-tabs/styles-tab.js +6 -6
  373. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  374. package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +1 -2
  375. package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -1
  376. package/build/components/inspector-controls-tabs/utils.js +3 -6
  377. package/build/components/inspector-controls-tabs/utils.js.map +1 -1
  378. package/build/components/justify-content-control/ui.js +1 -2
  379. package/build/components/justify-content-control/ui.js.map +1 -1
  380. package/build/components/keyboard-shortcuts/index.js +1 -2
  381. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  382. package/build/components/line-height-control/index.js +1 -2
  383. package/build/components/line-height-control/index.js.map +1 -1
  384. package/build/components/line-height-control/utils.js +4 -8
  385. package/build/components/line-height-control/utils.js.map +1 -1
  386. package/build/components/link-control/constants.js +7 -14
  387. package/build/components/link-control/constants.js.map +1 -1
  388. package/build/components/link-control/index.js +2 -16
  389. package/build/components/link-control/index.js.map +1 -1
  390. package/build/components/link-control/link-preview.js +13 -15
  391. package/build/components/link-control/link-preview.js.map +1 -1
  392. package/build/components/link-control/search-create-button.js +1 -2
  393. package/build/components/link-control/search-create-button.js.map +1 -1
  394. package/build/components/link-control/search-input.js +1 -2
  395. package/build/components/link-control/search-input.js.map +1 -1
  396. package/build/components/link-control/search-item.js +1 -2
  397. package/build/components/link-control/search-item.js.map +1 -1
  398. package/build/components/link-control/settings-drawer.js +1 -2
  399. package/build/components/link-control/settings-drawer.js.map +1 -1
  400. package/build/components/link-control/settings.js +1 -2
  401. package/build/components/link-control/settings.js.map +1 -1
  402. package/build/components/link-control/use-create-page.js +0 -1
  403. package/build/components/link-control/use-create-page.js.map +1 -1
  404. package/build/components/link-control/use-rich-url-data.js +1 -2
  405. package/build/components/link-control/use-rich-url-data.js.map +1 -1
  406. package/build/components/link-control/viewer-slot.js +1 -2
  407. package/build/components/link-control/viewer-slot.js.map +1 -1
  408. package/build/components/list-view/appender.js +1 -2
  409. package/build/components/list-view/appender.js.map +1 -1
  410. package/build/components/list-view/block-contents.js +1 -2
  411. package/build/components/list-view/block-contents.js.map +1 -1
  412. package/build/components/list-view/block-select-button.js +1 -2
  413. package/build/components/list-view/block-select-button.js.map +1 -1
  414. package/build/components/list-view/block.js +33 -28
  415. package/build/components/list-view/block.js.map +1 -1
  416. package/build/components/list-view/branch.js +1 -2
  417. package/build/components/list-view/branch.js.map +1 -1
  418. package/build/components/list-view/context.js +1 -2
  419. package/build/components/list-view/context.js.map +1 -1
  420. package/build/components/list-view/index.js +20 -17
  421. package/build/components/list-view/index.js.map +1 -1
  422. package/build/components/list-view/leaf.js +1 -2
  423. package/build/components/list-view/leaf.js.map +1 -1
  424. package/build/components/list-view/use-clipboard-handler.js +159 -0
  425. package/build/components/list-view/use-clipboard-handler.js.map +1 -0
  426. package/build/components/list-view/use-list-view-drop-zone.js +1 -2
  427. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  428. package/build/components/list-view/utils.js +4 -4
  429. package/build/components/list-view/utils.js.map +1 -1
  430. package/build/components/media-placeholder/index.js +1 -2
  431. package/build/components/media-placeholder/index.js.map +1 -1
  432. package/build/components/media-placeholder/index.native.js +1 -2
  433. package/build/components/media-placeholder/index.native.js.map +1 -1
  434. package/build/components/media-replace-flow/index.js +1 -2
  435. package/build/components/media-replace-flow/index.js.map +1 -1
  436. package/build/components/media-replace-flow/index.native.js +1 -2
  437. package/build/components/media-replace-flow/index.native.js.map +1 -1
  438. package/build/components/media-upload/check.js +1 -2
  439. package/build/components/media-upload/check.js.map +1 -1
  440. package/build/components/media-upload/constants.native.js +8 -16
  441. package/build/components/media-upload/constants.native.js.map +1 -1
  442. package/build/components/media-upload/index.js +1 -2
  443. package/build/components/media-upload/index.js.map +1 -1
  444. package/build/components/media-upload/index.native.js +1 -2
  445. package/build/components/media-upload/index.native.js.map +1 -1
  446. package/build/components/media-upload-progress/constants.js +6 -12
  447. package/build/components/media-upload-progress/constants.js.map +1 -1
  448. package/build/components/media-upload-progress/index.native.js +1 -2
  449. package/build/components/media-upload-progress/index.native.js.map +1 -1
  450. package/build/components/multi-selection-inspector/index.js +1 -2
  451. package/build/components/multi-selection-inspector/index.js.map +1 -1
  452. package/build/components/navigable-toolbar/index.js +5 -2
  453. package/build/components/navigable-toolbar/index.js.map +1 -1
  454. package/build/components/observe-typing/index.js +1 -2
  455. package/build/components/observe-typing/index.js.map +1 -1
  456. package/build/components/panel-color-settings/index.js +1 -2
  457. package/build/components/panel-color-settings/index.js.map +1 -1
  458. package/build/components/plain-text/index.js +1 -2
  459. package/build/components/plain-text/index.js.map +1 -1
  460. package/build/components/provider/block-refs-provider.js +1 -2
  461. package/build/components/provider/block-refs-provider.js.map +1 -1
  462. package/build/components/provider/index.js +3 -5
  463. package/build/components/provider/index.js.map +1 -1
  464. package/build/components/provider/index.native.js +2 -4
  465. package/build/components/provider/index.native.js.map +1 -1
  466. package/build/components/provider/with-registry-provider.js +1 -2
  467. package/build/components/provider/with-registry-provider.js.map +1 -1
  468. package/build/components/publish-date-time-picker/index.js +1 -2
  469. package/build/components/publish-date-time-picker/index.js.map +1 -1
  470. package/build/components/responsive-block-control/index.js +3 -7
  471. package/build/components/responsive-block-control/index.js.map +1 -1
  472. package/build/components/rich-text/embed-handler-picker.native.js +1 -2
  473. package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
  474. package/build/components/rich-text/format-edit.js +1 -2
  475. package/build/components/rich-text/format-edit.js.map +1 -1
  476. package/build/components/rich-text/format-toolbar/index.js +1 -2
  477. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  478. package/build/components/rich-text/format-toolbar/index.native.js +1 -2
  479. package/build/components/rich-text/format-toolbar/index.native.js.map +1 -1
  480. package/build/components/rich-text/format-toolbar-container.js +1 -2
  481. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  482. package/build/components/rich-text/format-toolbar-container.native.js +1 -2
  483. package/build/components/rich-text/format-toolbar-container.native.js.map +1 -1
  484. package/build/components/rich-text/index.js +7 -8
  485. package/build/components/rich-text/index.js.map +1 -1
  486. package/build/components/rich-text/index.native.js +1 -2
  487. package/build/components/rich-text/index.native.js.map +1 -1
  488. package/build/components/rich-text/multiline.js +1 -2
  489. package/build/components/rich-text/multiline.js.map +1 -1
  490. package/build/components/rich-text/native/index.native.js +1 -6
  491. package/build/components/rich-text/native/index.native.js.map +1 -1
  492. package/build/components/rich-text/native/toolbar-button-with-options.native.js +1 -2
  493. package/build/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -1
  494. package/build/components/skip-to-selected-block/index.js +1 -2
  495. package/build/components/skip-to-selected-block/index.js.map +1 -1
  496. package/build/components/spacing-sizes-control/index.js +3 -1
  497. package/build/components/spacing-sizes-control/index.js.map +1 -1
  498. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +0 -1
  499. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  500. package/build/components/spacing-sizes-control/utils.js +5 -10
  501. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  502. package/build/components/tool-selector/index.js +1 -2
  503. package/build/components/tool-selector/index.js.map +1 -1
  504. package/build/components/typewriter/index.js +1 -2
  505. package/build/components/typewriter/index.js.map +1 -1
  506. package/build/components/ungroup-button/index.native.js +1 -2
  507. package/build/components/ungroup-button/index.native.js.map +1 -1
  508. package/build/components/unsupported-block-details/index.native.js +1 -2
  509. package/build/components/unsupported-block-details/index.native.js.map +1 -1
  510. package/build/components/url-input/button.js +1 -2
  511. package/build/components/url-input/button.js.map +1 -1
  512. package/build/components/url-input/index.js +1 -2
  513. package/build/components/url-input/index.js.map +1 -1
  514. package/build/components/url-popover/image-url-input-ui.js +66 -35
  515. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  516. package/build/components/url-popover/index.js +8 -6
  517. package/build/components/url-popover/index.js.map +1 -1
  518. package/build/components/url-popover/link-editor.js +2 -1
  519. package/build/components/url-popover/link-editor.js.map +1 -1
  520. package/build/components/url-popover/link-viewer.js +2 -1
  521. package/build/components/url-popover/link-viewer.js.map +1 -1
  522. package/build/components/use-block-drop-zone/index.js +15 -5
  523. package/build/components/use-block-drop-zone/index.js.map +1 -1
  524. package/build/components/use-flash-editable-blocks/index.js +60 -0
  525. package/build/components/use-flash-editable-blocks/index.js.map +1 -0
  526. package/build/components/use-moving-animation/index.js +1 -2
  527. package/build/components/use-moving-animation/index.js.map +1 -1
  528. package/build/components/use-on-block-drop/index.js +4 -4
  529. package/build/components/use-on-block-drop/index.js.map +1 -1
  530. package/build/components/use-settings/index.js +3 -162
  531. package/build/components/use-settings/index.js.map +1 -1
  532. package/build/components/video-player/gridicon-play.native.js +1 -2
  533. package/build/components/video-player/gridicon-play.native.js.map +1 -1
  534. package/build/components/video-player/index.native.js +2 -4
  535. package/build/components/video-player/index.native.js.map +1 -1
  536. package/build/components/warning/index.js +1 -2
  537. package/build/components/warning/index.js.map +1 -1
  538. package/build/components/warning/index.native.js +1 -2
  539. package/build/components/warning/index.native.js.map +1 -1
  540. package/build/components/writing-flow/index.js +1 -2
  541. package/build/components/writing-flow/index.js.map +1 -1
  542. package/build/components/writing-flow/use-clipboard-handler.js +3 -48
  543. package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
  544. package/build/components/writing-flow/use-drag-selection.js +13 -2
  545. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  546. package/build/components/writing-flow/utils.js +86 -0
  547. package/build/components/writing-flow/utils.js.map +1 -0
  548. package/build/hooks/align.js +1 -2
  549. package/build/hooks/align.js.map +1 -1
  550. package/build/hooks/align.native.js +2 -2
  551. package/build/hooks/align.native.js.map +1 -1
  552. package/build/hooks/anchor.js +1 -2
  553. package/build/hooks/anchor.js.map +1 -1
  554. package/build/hooks/aria-label.js +1 -2
  555. package/build/hooks/aria-label.js.map +1 -1
  556. package/build/hooks/background.js +52 -14
  557. package/build/hooks/background.js.map +1 -1
  558. package/build/hooks/block-hooks.js +1 -2
  559. package/build/hooks/block-hooks.js.map +1 -1
  560. package/build/hooks/block-renaming.js +1 -2
  561. package/build/hooks/block-renaming.js.map +1 -1
  562. package/build/hooks/border.js +42 -7
  563. package/build/hooks/border.js.map +1 -1
  564. package/build/hooks/color.js +4 -6
  565. package/build/hooks/color.js.map +1 -1
  566. package/build/hooks/content-lock-ui.js +1 -2
  567. package/build/hooks/content-lock-ui.js.map +1 -1
  568. package/build/hooks/custom-class-name.js +1 -2
  569. package/build/hooks/custom-class-name.js.map +1 -1
  570. package/build/hooks/custom-class-name.native.js +1 -2
  571. package/build/hooks/custom-class-name.native.js.map +1 -1
  572. package/build/hooks/dimensions.js +5 -10
  573. package/build/hooks/dimensions.js.map +1 -1
  574. package/build/hooks/duotone.js +1 -3
  575. package/build/hooks/duotone.js.map +1 -1
  576. package/build/hooks/font-family.js +2 -4
  577. package/build/hooks/font-family.js.map +1 -1
  578. package/build/hooks/font-size.js +25 -31
  579. package/build/hooks/font-size.js.map +1 -1
  580. package/build/hooks/index.js +2 -8
  581. package/build/hooks/index.js.map +1 -1
  582. package/build/hooks/index.native.js +0 -6
  583. package/build/hooks/index.native.js.map +1 -1
  584. package/build/hooks/layout-child.js +1 -2
  585. package/build/hooks/layout-child.js.map +1 -1
  586. package/build/hooks/layout.js +2 -4
  587. package/build/hooks/layout.js.map +1 -1
  588. package/build/hooks/line-height.js +1 -2
  589. package/build/hooks/line-height.js.map +1 -1
  590. package/build/hooks/position.js +1 -2
  591. package/build/hooks/position.js.map +1 -1
  592. package/build/hooks/style.js +3 -8
  593. package/build/hooks/style.js.map +1 -1
  594. package/build/hooks/typography.js +4 -6
  595. package/build/hooks/typography.js.map +1 -1
  596. package/build/hooks/typography.native.js +3 -6
  597. package/build/hooks/typography.native.js.map +1 -1
  598. package/build/hooks/use-bindings-attributes.js +12 -11
  599. package/build/hooks/use-bindings-attributes.js.map +1 -1
  600. package/build/hooks/use-shadow-props.js +0 -15
  601. package/build/hooks/use-shadow-props.js.map +1 -1
  602. package/build/hooks/utils.js +3 -6
  603. package/build/hooks/utils.js.map +1 -1
  604. package/build/index.js +0 -7
  605. package/build/index.js.map +1 -1
  606. package/build/layouts/constrained.js +1 -2
  607. package/build/layouts/constrained.js.map +1 -1
  608. package/build/layouts/definitions.js +1 -2
  609. package/build/layouts/definitions.js.map +1 -1
  610. package/build/layouts/flex.js +1 -2
  611. package/build/layouts/flex.js.map +1 -1
  612. package/build/layouts/flow.js +1 -2
  613. package/build/layouts/flow.js.map +1 -1
  614. package/build/layouts/grid.js +1 -2
  615. package/build/layouts/grid.js.map +1 -1
  616. package/build/private-apis.js +8 -5
  617. package/build/private-apis.js.map +1 -1
  618. package/build/private-apis.native.js +3 -4
  619. package/build/private-apis.native.js.map +1 -1
  620. package/build/store/actions.js +2 -4
  621. package/build/store/actions.js.map +1 -1
  622. package/build/store/constants.js +1 -2
  623. package/build/store/constants.js.map +1 -1
  624. package/build/store/defaults.js +2 -4
  625. package/build/store/defaults.js.map +1 -1
  626. package/build/store/defaults.native.js +1 -2
  627. package/build/store/defaults.native.js.map +1 -1
  628. package/build/store/get-block-settings.js +180 -0
  629. package/build/store/get-block-settings.js.map +1 -0
  630. package/build/store/index.js +4 -6
  631. package/build/store/index.js.map +1 -1
  632. package/build/store/private-actions.js +37 -3
  633. package/build/store/private-actions.js.map +1 -1
  634. package/build/store/private-selectors.js +55 -29
  635. package/build/store/private-selectors.js.map +1 -1
  636. package/build/store/reducer.js +27 -6
  637. package/build/store/reducer.js.map +1 -1
  638. package/build/store/selectors.js +98 -102
  639. package/build/store/selectors.js.map +1 -1
  640. package/build/store/undo-ignore.js +1 -2
  641. package/build/store/undo-ignore.js.map +1 -1
  642. package/build/utils/object.js +0 -17
  643. package/build/utils/object.js.map +1 -1
  644. package/build/utils/selection.js +1 -2
  645. package/build/utils/selection.js.map +1 -1
  646. package/build/utils/transform-styles/index.js +3 -4
  647. package/build/utils/transform-styles/index.js.map +1 -1
  648. package/build-module/components/block-breadcrumb/index.js +0 -1
  649. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  650. package/build-module/components/block-inspector/index.js +10 -7
  651. package/build-module/components/block-inspector/index.js.map +1 -1
  652. package/build-module/components/block-list/block.js +32 -20
  653. package/build-module/components/block-list/block.js.map +1 -1
  654. package/build-module/components/block-list/block.native.js +6 -4
  655. package/build-module/components/block-list/block.native.js.map +1 -1
  656. package/build-module/components/block-list/index.js +18 -7
  657. package/build-module/components/block-list/index.js.map +1 -1
  658. package/build-module/components/block-list/use-block-props/index.js +8 -1
  659. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  660. package/build-module/components/block-list-appender/index.js +5 -51
  661. package/build-module/components/block-list-appender/index.js.map +1 -1
  662. package/build-module/components/block-mover/mover-description.native.js +0 -2
  663. package/build-module/components/block-mover/mover-description.native.js.map +1 -1
  664. package/build-module/components/block-popover/inbetween.js +0 -1
  665. package/build-module/components/block-popover/inbetween.js.map +1 -1
  666. package/build-module/components/block-preview/auto.js +2 -1
  667. package/build-module/components/block-preview/auto.js.map +1 -1
  668. package/build-module/components/block-removal-warning-modal/index.js +4 -2
  669. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  670. package/build-module/components/block-switcher/index.js +12 -9
  671. package/build-module/components/block-switcher/index.js.map +1 -1
  672. package/build-module/components/block-title/use-block-display-title.js +22 -28
  673. package/build-module/components/block-title/use-block-display-title.js.map +1 -1
  674. package/build-module/components/block-tools/block-selection-button.js +20 -17
  675. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  676. package/build-module/components/block-tools/index.js +2 -10
  677. package/build-module/components/block-tools/index.js.map +1 -1
  678. package/build-module/components/colors-gradients/control.js +0 -1
  679. package/build-module/components/colors-gradients/control.js.map +1 -1
  680. package/build-module/components/default-block-appender/index.js +30 -37
  681. package/build-module/components/default-block-appender/index.js.map +1 -1
  682. package/build-module/components/global-styles/border-panel.js +57 -9
  683. package/build-module/components/global-styles/border-panel.js.map +1 -1
  684. package/build-module/components/global-styles/get-global-styles-changes.js +2 -4
  685. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  686. package/build-module/components/global-styles/hooks.js +2 -3
  687. package/build-module/components/global-styles/hooks.js.map +1 -1
  688. package/build-module/components/global-styles/index.js +0 -1
  689. package/build-module/components/global-styles/index.js.map +1 -1
  690. package/build-module/components/global-styles/shadow-panel-components.js +121 -0
  691. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -0
  692. package/build-module/components/global-styles/typography-panel.js +17 -35
  693. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  694. package/build-module/components/global-styles/use-global-styles-output.js +2 -2
  695. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  696. package/build-module/components/global-styles/utils.js +30 -1
  697. package/build-module/components/global-styles/utils.js.map +1 -1
  698. package/build-module/components/inner-blocks/index.js +33 -29
  699. package/build-module/components/inner-blocks/index.js.map +1 -1
  700. package/build-module/components/inner-blocks/index.native.js +1 -4
  701. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  702. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +2 -3
  703. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  704. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +4 -4
  705. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  706. package/build-module/components/inserter/block-patterns-tab/utils.js +2 -2
  707. package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
  708. package/build-module/components/inserter/quick-inserter.js +3 -2
  709. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  710. package/build-module/components/inserter/search-items.js +0 -1
  711. package/build-module/components/inserter/search-items.js.map +1 -1
  712. package/build-module/components/inserter-draggable-blocks/index.js +12 -1
  713. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  714. package/build-module/components/inspector-controls-tabs/styles-tab.js +5 -4
  715. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  716. package/build-module/components/link-control/index.js +1 -14
  717. package/build-module/components/link-control/index.js.map +1 -1
  718. package/build-module/components/link-control/link-preview.js +16 -18
  719. package/build-module/components/link-control/link-preview.js.map +1 -1
  720. package/build-module/components/link-control/use-create-page.js +0 -1
  721. package/build-module/components/link-control/use-create-page.js.map +1 -1
  722. package/build-module/components/list-view/block.js +32 -26
  723. package/build-module/components/list-view/block.js.map +1 -1
  724. package/build-module/components/list-view/index.js +17 -11
  725. package/build-module/components/list-view/index.js.map +1 -1
  726. package/build-module/components/list-view/use-clipboard-handler.js +153 -0
  727. package/build-module/components/list-view/use-clipboard-handler.js.map +1 -0
  728. package/build-module/components/list-view/utils.js +4 -4
  729. package/build-module/components/list-view/utils.js.map +1 -1
  730. package/build-module/components/navigable-toolbar/index.js +5 -2
  731. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  732. package/build-module/components/provider/index.js +1 -1
  733. package/build-module/components/provider/index.js.map +1 -1
  734. package/build-module/components/responsive-block-control/index.js +3 -6
  735. package/build-module/components/responsive-block-control/index.js.map +1 -1
  736. package/build-module/components/rich-text/index.js +4 -2
  737. package/build-module/components/rich-text/index.js.map +1 -1
  738. package/build-module/components/rich-text/native/index.native.js +0 -4
  739. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  740. package/build-module/components/spacing-sizes-control/index.js +4 -2
  741. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  742. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +0 -1
  743. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  744. package/build-module/components/url-popover/image-url-input-ui.js +69 -38
  745. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  746. package/build-module/components/url-popover/index.js +8 -5
  747. package/build-module/components/url-popover/index.js.map +1 -1
  748. package/build-module/components/url-popover/link-editor.js +2 -1
  749. package/build-module/components/url-popover/link-editor.js.map +1 -1
  750. package/build-module/components/url-popover/link-viewer.js +2 -1
  751. package/build-module/components/url-popover/link-viewer.js.map +1 -1
  752. package/build-module/components/use-block-drop-zone/index.js +15 -5
  753. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  754. package/build-module/components/use-flash-editable-blocks/index.js +53 -0
  755. package/build-module/components/use-flash-editable-blocks/index.js.map +1 -0
  756. package/build-module/components/use-on-block-drop/index.js +4 -4
  757. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  758. package/build-module/components/use-settings/index.js +3 -159
  759. package/build-module/components/use-settings/index.js.map +1 -1
  760. package/build-module/components/writing-flow/use-clipboard-handler.js +4 -49
  761. package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
  762. package/build-module/components/writing-flow/use-drag-selection.js +13 -2
  763. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  764. package/build-module/components/writing-flow/utils.js +79 -0
  765. package/build-module/components/writing-flow/utils.js.map +1 -0
  766. package/build-module/hooks/background.js +48 -10
  767. package/build-module/hooks/background.js.map +1 -1
  768. package/build-module/hooks/border.js +38 -3
  769. package/build-module/hooks/border.js.map +1 -1
  770. package/build-module/hooks/duotone.js +0 -1
  771. package/build-module/hooks/duotone.js.map +1 -1
  772. package/build-module/hooks/font-size.js +23 -27
  773. package/build-module/hooks/font-size.js.map +1 -1
  774. package/build-module/hooks/index.js +1 -1
  775. package/build-module/hooks/index.js.map +1 -1
  776. package/build-module/hooks/index.native.js +1 -1
  777. package/build-module/hooks/index.native.js.map +1 -1
  778. package/build-module/hooks/style.js +3 -7
  779. package/build-module/hooks/style.js.map +1 -1
  780. package/build-module/hooks/use-bindings-attributes.js +10 -13
  781. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  782. package/build-module/hooks/use-shadow-props.js +0 -14
  783. package/build-module/hooks/use-shadow-props.js.map +1 -1
  784. package/build-module/hooks/utils.js +3 -6
  785. package/build-module/hooks/utils.js.map +1 -1
  786. package/build-module/index.js +1 -1
  787. package/build-module/index.js.map +1 -1
  788. package/build-module/private-apis.js +5 -1
  789. package/build-module/private-apis.js.map +1 -1
  790. package/build-module/store/get-block-settings.js +171 -0
  791. package/build-module/store/get-block-settings.js.map +1 -0
  792. package/build-module/store/private-actions.js +35 -3
  793. package/build-module/store/private-actions.js.map +1 -1
  794. package/build-module/store/private-selectors.js +42 -19
  795. package/build-module/store/private-selectors.js.map +1 -1
  796. package/build-module/store/reducer.js +24 -2
  797. package/build-module/store/reducer.js.map +1 -1
  798. package/build-module/store/selectors.js +65 -34
  799. package/build-module/store/selectors.js.map +1 -1
  800. package/build-module/utils/object.js +0 -16
  801. package/build-module/utils/object.js.map +1 -1
  802. package/build-style/content-rtl.css +23 -15
  803. package/build-style/content.css +23 -15
  804. package/build-style/style-rtl.css +97 -67
  805. package/build-style/style.css +97 -67
  806. package/package.json +31 -31
  807. package/src/components/block-canvas/style.scss +3 -3
  808. package/src/components/block-card/style.scss +3 -1
  809. package/src/components/block-controls/README.md +2 -2
  810. package/src/components/block-inspector/index.js +11 -9
  811. package/src/components/block-list/block.js +45 -20
  812. package/src/components/block-list/block.native.js +7 -4
  813. package/src/components/block-list/content.scss +23 -28
  814. package/src/components/block-list/index.js +49 -25
  815. package/src/components/block-list/use-block-props/index.js +8 -0
  816. package/src/components/block-list-appender/index.js +7 -74
  817. package/src/components/block-mover/style.scss +4 -3
  818. package/src/components/block-preview/auto.js +2 -1
  819. package/src/components/block-removal-warning-modal/index.js +17 -10
  820. package/src/components/block-switcher/index.js +22 -13
  821. package/src/components/block-title/test/index.js +86 -85
  822. package/src/components/block-title/use-block-display-title.js +25 -36
  823. package/src/components/block-toolbar/style.scss +8 -1
  824. package/src/components/block-tools/block-selection-button.js +23 -26
  825. package/src/components/block-tools/index.js +2 -12
  826. package/src/components/colors-gradients/control.js +0 -1
  827. package/src/components/default-block-appender/index.js +26 -38
  828. package/src/components/default-block-appender/test/index.js +24 -16
  829. package/src/components/font-sizes/README.MD +0 -9
  830. package/src/components/global-styles/border-panel.js +72 -1
  831. package/src/components/global-styles/get-global-styles-changes.js +2 -8
  832. package/src/components/global-styles/hooks.js +0 -2
  833. package/src/components/global-styles/index.js +0 -1
  834. package/src/components/global-styles/shadow-panel-components.js +125 -0
  835. package/src/components/global-styles/style.scss +8 -9
  836. package/src/components/global-styles/test/get-global-styles-changes.js +3 -3
  837. package/src/components/global-styles/test/use-global-styles-output.js +1 -1
  838. package/src/components/global-styles/test/utils.js +86 -0
  839. package/src/components/global-styles/typography-panel.js +14 -47
  840. package/src/components/global-styles/use-global-styles-output.js +5 -1
  841. package/src/components/global-styles/utils.js +36 -0
  842. package/src/components/inner-blocks/index.js +31 -32
  843. package/src/components/inner-blocks/index.native.js +3 -9
  844. package/src/components/inner-blocks/use-inner-block-template-sync.js +1 -3
  845. package/src/components/inserter/block-patterns-tab/patterns-filter.js +4 -10
  846. package/src/components/inserter/block-patterns-tab/utils.js +2 -2
  847. package/src/components/inserter/quick-inserter.js +4 -2
  848. package/src/components/inserter/style.scss +3 -13
  849. package/src/components/inserter-draggable-blocks/index.js +12 -1
  850. package/src/components/inspector-controls-tabs/styles-tab.js +4 -2
  851. package/src/components/link-control/index.js +1 -20
  852. package/src/components/link-control/link-preview.js +19 -24
  853. package/src/components/link-control/style.scss +5 -11
  854. package/src/components/link-control/test/index.js +11 -90
  855. package/src/components/list-view/block.js +49 -41
  856. package/src/components/list-view/index.js +22 -9
  857. package/src/components/list-view/use-clipboard-handler.js +199 -0
  858. package/src/components/list-view/utils.js +4 -4
  859. package/src/components/media-replace-flow/test/index.js +1 -1
  860. package/src/components/navigable-toolbar/index.js +8 -4
  861. package/src/components/provider/index.js +1 -1
  862. package/src/components/responsive-block-control/index.js +3 -5
  863. package/src/components/rich-text/index.js +4 -3
  864. package/src/components/spacing-sizes-control/index.js +2 -1
  865. package/src/components/url-input/style.scss +4 -2
  866. package/src/components/url-popover/image-url-input-ui.js +98 -37
  867. package/src/components/url-popover/index.js +75 -67
  868. package/src/components/url-popover/link-editor.js +1 -0
  869. package/src/components/url-popover/link-viewer.js +1 -0
  870. package/src/components/url-popover/style.scss +42 -31
  871. package/src/components/use-block-drop-zone/index.js +17 -3
  872. package/src/components/use-flash-editable-blocks/index.js +62 -0
  873. package/src/components/use-on-block-drop/index.js +11 -4
  874. package/src/components/use-settings/index.js +9 -232
  875. package/src/components/writing-flow/use-clipboard-handler.js +6 -78
  876. package/src/components/writing-flow/use-drag-selection.js +12 -3
  877. package/src/components/writing-flow/utils.js +103 -0
  878. package/src/hooks/background.js +53 -8
  879. package/src/hooks/border.js +47 -6
  880. package/src/hooks/font-size.js +33 -33
  881. package/src/hooks/index.js +1 -1
  882. package/src/hooks/index.native.js +1 -1
  883. package/src/hooks/style.js +5 -9
  884. package/src/hooks/test/background.js +50 -0
  885. package/src/hooks/test/font-size.js +164 -0
  886. package/src/hooks/use-bindings-attributes.js +10 -23
  887. package/src/hooks/use-shadow-props.js +0 -14
  888. package/src/hooks/utils.js +4 -16
  889. package/src/index.js +0 -1
  890. package/src/private-apis.js +4 -0
  891. package/src/store/get-block-settings.js +225 -0
  892. package/src/store/private-actions.js +44 -2
  893. package/src/store/private-selectors.js +53 -38
  894. package/src/store/reducer.js +29 -1
  895. package/src/store/selectors.js +74 -48
  896. package/src/store/test/get-block-settings.js +90 -0
  897. package/src/store/test/private-actions.js +18 -0
  898. package/src/store/test/private-selectors.js +19 -0
  899. package/src/store/test/reducer.js +19 -0
  900. package/src/utils/object.js +0 -16
  901. package/build/components/global-styles/effects-panel.js +0 -219
  902. package/build/components/global-styles/effects-panel.js.map +0 -1
  903. package/build/hooks/effects.js +0 -66
  904. package/build/hooks/effects.js.map +0 -1
  905. package/build-module/components/global-styles/effects-panel.js +0 -210
  906. package/build-module/components/global-styles/effects-panel.js.map +0 -1
  907. package/build-module/hooks/effects.js +0 -51
  908. package/build-module/hooks/effects.js.map +0 -1
  909. package/src/components/global-styles/effects-panel.js +0 -244
  910. package/src/components/use-settings/test/index.js +0 -141
  911. package/src/hooks/effects.js +0 -57
  912. package/src/hooks/test/effects.js +0 -39
@@ -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":";;;;;;;;;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,IAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAgBA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AACA,IAAAS,IAAA,GAAAT,OAAA;AAKA,IAAAU,kBAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,iBAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,YAAA,GAAAZ,OAAA;AACA,IAAAa,MAAA,GAAAb,OAAA;AACA,IAAAc,MAAA,GAAAd,OAAA;AAxCA;AACA;AACA;;AAGA;AACA;AACA;;AA0BA;AACA;AACA;;AAOO,MAAMe,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG,YAAY;AAC3C,MAAME,qBAAqB,GAAAD,OAAA,CAAAC,qBAAA,GAAG,OAAO;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,uBAAuBA,CAAEC,KAAK,EAAG;EAChD,MAAMC,QAAQ,GACb,CAAC,CAAED,KAAK,EAAEE,UAAU,EAAEC,eAAe,EAAEC,EAAE,IACzC,CAAC,CAAEJ,KAAK,EAAEE,UAAU,EAAEC,eAAe,EAAEE,GAAG;EAE3C,OAAOJ,QAAQ;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,sBAAsBA,CAAEN,KAAK,EAAG;EAC/C,OACCA,KAAK,EAAEE,UAAU,EAAEK,kBAAkB,KAAKC,SAAS,IACnDR,KAAK,EAAEE,UAAU,EAAEO,cAAc,KAAKD,SAAS;AAEjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,oBAAoBA,CAAEC,SAAS,EAAEC,OAAO,GAAG,KAAK,EAAG;EAClE,IAAKC,iBAAQ,CAACC,EAAE,KAAK,KAAK,EAAG;IAC5B,OAAO,KAAK;EACb;EAEA,MAAMC,OAAO,GAAG,IAAAC,uBAAe,EAAEL,SAAS,EAAEf,sBAAuB,CAAC;EAEpE,IAAKmB,OAAO,KAAK,IAAI,EAAG;IACvB,OAAO,IAAI;EACZ;EAEA,IAAKH,OAAO,KAAK,KAAK,EAAG;IACxB,OACC,CAAC,CAAEG,OAAO,EAAEZ,eAAe,IAC3B,CAAC,CAAEY,OAAO,EAAEN,cAAc,IAC1B,CAAC,CAAEM,OAAO,EAAEE,gBAAgB;EAE9B;EAEA,OAAO,CAAC,CAAEF,OAAO,GAAIH,OAAO,CAAE;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,oBAAoBA,CAAElB,KAAK,GAAG,CAAC,CAAC,EAAEmB,aAAa,EAAG;EACjEA,aAAa,CAAE;IACdnB,KAAK,EAAE,IAAAoB,uBAAgB,EAAE;MACxB,GAAGpB,KAAK;MACRE,UAAU,EAAE;QACX,GAAGF,KAAK,EAAEE,UAAU;QACpBC,eAAe,EAAEK;MAClB;IACD,CAAE;EACH,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASa,mBAAmBA,CAAErB,KAAK,GAAG,CAAC,CAAC,EAAEmB,aAAa,EAAG;EACzDA,aAAa,CAAE;IACdnB,KAAK,EAAE,IAAAoB,uBAAgB,EAAE;MACxB,GAAGpB,KAAK;MACRE,UAAU,EAAE;QACX,GAAGF,KAAK,EAAEE,UAAU;QACpBK,kBAAkB,EAAEC,SAAS;QAC7BS,gBAAgB,EAAET,SAAS;QAC3BC,cAAc,EAAED;MACjB;IACD,CAAE;EACH,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASc,yBAAyBA,CAAEtB,KAAK,EAAG;EAClD,OAAOD,uBAAuB,CAAEC,KAAM,CAAC,GAAG,gBAAgB,GAAG,EAAE;AAChE;AAEA,SAASuB,qBAAqBA,CAAE;EAAEC,KAAK;EAAEC,QAAQ;EAAEpB,GAAG,EAAEqB;AAAO,CAAC,EAAG;EAClE,MAAMC,QAAQ,GAAGH,KAAK,IAAI,IAAAI,gBAAW,EAAEF,MAAO,CAAC;EAC/C,OACC,IAAAG,MAAA,CAAAC,aAAA,EAAC7C,WAAA,CAAA8C,uBAAS;IAACC,EAAE,EAAC;EAAM,GACnB,IAAAH,MAAA,CAAAC,aAAA,EAAC7C,WAAA,CAAAgD,oBAAM;IAACC,OAAO,EAAC,YAAY;IAACF,EAAE,EAAC;EAAM,GACrC,IAAAH,MAAA,CAAAC,aAAA;IACCK,SAAS,EAAG,IAAAC,mBAAU,EACrB,mEAAmE,EACnE;MACC,WAAW,EAAEV;IACd,CACD,CAAG;IACH;EAAW,GAETA,MAAM,IACP,IAAAG,MAAA,CAAAC,aAAA;IACCK,SAAS,EAAC,2DAA2D;IACrEnC,KAAK,EAAG;MACPG,eAAe,EAAG,OAAOuB,MAAQ;IAClC;EAAG,CACH,CAEG,CAAC,EACP,IAAAG,MAAA,CAAAC,aAAA,EAAC7C,WAAA,CAAAoD,QAAQ;IAACL,EAAE,EAAC;EAAM,GAClB,IAAAH,MAAA,CAAAC,aAAA,EAAC7C,WAAA,CAAAqD,sBAAQ;IACRC,aAAa,EAAG,CAAG;IACnBJ,SAAS,EAAC;EAA+D,GAEvER,QACO,CAAC,EACX,IAAAE,MAAA,CAAAC,aAAA,EAAC7C,WAAA,CAAAuD,cAAc;IAACR,EAAE,EAAC;EAAM,GACtBP,QAAQ,GACP,IAAAgB,aAAO,GACP;EACA,IAAAC,QAAE,EAAE,oBAAqB,CAAC,EAC1BjB,QACA,CAAC,GACD,IAAAiB,QAAE,EAAE,mBAAoB,CACZ,CACP,CACH,CACE,CAAC;AAEd;AAEA,SAASC,wBAAwBA,CAAE;EAClCC,QAAQ;EACRC,gBAAgB;EAChB1B;AACD,CAAC,EAAG;EACH,MAAM;IAAEnB,KAAK;IAAE8C;EAAY,CAAC,GAAG,IAAAC,eAAS,EACrCC,MAAM,IAAM;IACb,MAAM;MAAEC,kBAAkB;MAAEC;IAAY,CAAC,GACxCF,MAAM,CAAEG,YAAiB,CAAC;IAE3B,OAAO;MACNnD,KAAK,EAAEiD,kBAAkB,CAAEL,QAAS,CAAC,EAAE5C,KAAK;MAC5C8C,WAAW,EAAEI,WAAW,CAAC,CAAC,CAACJ;IAC5B,CAAC;EACF,CAAC,EACD,CAAEF,QAAQ,CACX,CAAC;EACD,MAAM;IAAExC,EAAE;IAAEgD,KAAK;IAAE/C;EAAI,CAAC,GAAGL,KAAK,EAAEE,UAAU,EAAEC,eAAe,IAAI,CAAC,CAAC;EAEnE,MAAMkD,mBAAmB,GAAG,IAAAC,eAAM,EAAC,CAAC;EAEpC,MAAM;IAAEC;EAAkB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,cAAa,CAAC;EACzD,MAAMC,aAAa,GAAKC,OAAO,IAAM;IACpCJ,iBAAiB,CAAEI,OAAO,EAAE;MAAEC,IAAI,EAAE;IAAW,CAAE,CAAC;EACnD,CAAC;EAED,MAAMC,aAAa,GAAKC,KAAK,IAAM;IAClC,IAAK,CAAEA,KAAK,IAAI,CAAEA,KAAK,CAACzD,GAAG,EAAG;MAC7B,MAAM0D,QAAQ,GAAG;QAChB,GAAG/D,KAAK;QACRE,UAAU,EAAE;UACX,GAAGF,KAAK,EAAEE,UAAU;UACpBC,eAAe,EAAEK;QAClB;MACD,CAAC;MAED,MAAMwD,aAAa,GAAG;QACrBhE,KAAK,EAAE,IAAAoB,uBAAgB,EAAE2C,QAAS;MACnC,CAAC;MAED5C,aAAa,CAAE6C,aAAc,CAAC;MAC9B;IACD;IAEA,IAAK,IAAAC,eAAS,EAAEH,KAAK,CAACzD,GAAI,CAAC,EAAG;MAC7B;IACD;;IAEA;IACA,IACGyD,KAAK,CAACI,UAAU,IACjBJ,KAAK,CAACI,UAAU,KAAKpE,qBAAqB,IACzC,CAAEgE,KAAK,CAACI,UAAU,IACnBJ,KAAK,CAACF,IAAI,IACVE,KAAK,CAACF,IAAI,KAAK9D,qBAAuB,EACtC;MACD4D,aAAa,CACZ,IAAAhB,QAAE,EAAE,gDAAiD,CACtD,CAAC;MACD;IACD;IAEA,MAAMqB,QAAQ,GAAG;MAChB,GAAG/D,KAAK;MACRE,UAAU,EAAE;QACX,GAAGF,KAAK,EAAEE,UAAU;QACpBC,eAAe,EAAE;UAChBE,GAAG,EAAEyD,KAAK,CAACzD,GAAG;UACdD,EAAE,EAAE0D,KAAK,CAAC1D,EAAE;UACZ+D,MAAM,EAAE,MAAM;UACdf,KAAK,EAAEU,KAAK,CAACV,KAAK,IAAI5C;QACvB;MACD;IACD,CAAC;IAED,MAAMwD,aAAa,GAAG;MACrBhE,KAAK,EAAE,IAAAoB,uBAAgB,EAAE2C,QAAS;IACnC,CAAC;IAED5C,aAAa,CAAE6C,aAAc,CAAC;EAC/B,CAAC;EAED,MAAMI,WAAW,GAAKC,SAAS,IAAM;IACpCvB,WAAW,CAAE;MACZwB,YAAY,EAAE,CAAE,OAAO,CAAE;MACzBD,SAAS;MACTE,YAAYA,CAAE,CAAEC,KAAK,CAAE,EAAG;QACzB,IAAK,IAAAP,eAAS,EAAEO,KAAK,EAAEnE,GAAI,CAAC,EAAG;UAC9B;QACD;QACAwD,aAAa,CAAEW,KAAM,CAAC;MACvB,CAAC;MACDC,OAAO,EAAEf;IACV,CAAE,CAAC;EACJ,CAAC;EAED,MAAMgB,cAAc,GAAG,IAAAC,oBAAW,EAAIC,aAAa,IAAM;IACxD,OAAO;MACN,GAAGA,aAAa;MAChB5E,KAAK,EAAE;QACN,GAAG4E,aAAa,CAAC5E,KAAK;QACtBE,UAAU,EAAEM;MACb;IACD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMP,QAAQ,GAAGF,uBAAuB,CAAEC,KAAM,CAAC;EAEjD,OACC,IAAA6B,MAAA,CAAAC,aAAA,EAAC7C,WAAA,CAAA4F,4BAAc;IACd1C,SAAS,EAAC,eAAe;IACzBlC,QAAQ,EAAGA,CAAA,KAAMA,QAAU;IAC3BuB,KAAK,EAAG,IAAAkB,QAAE,EAAE,kBAAmB,CAAG;IAClCoC,UAAU,EAAGA,CAAA,KAAM5D,oBAAoB,CAAElB,KAAK,EAAEmB,aAAc,CAAG;IACjE0B,gBAAgB,EAAGA,gBAAkB;IACrC6B,cAAc,EAAGA,cAAgB;IACjCK,OAAO,EAAGnC;EAAU,GAEpB,IAAAf,MAAA,CAAAC,aAAA;IACCK,SAAS,EAAC,mEAAmE;IAC7E6C,GAAG,EAAG3B;EAAqB,GAE3B,IAAAxB,MAAA,CAAAC,aAAA,EAACtC,iBAAA,CAAAyF,OAAgB;IAChBC,OAAO,EAAG9E,EAAI;IACd+E,QAAQ,EAAG9E,GAAK;IAChBiE,YAAY,EAAG,CAAExE,qBAAqB,CAAI;IAC1CsF,MAAM,EAAC,SAAS;IAChBC,QAAQ,EAAGxB,aAAe;IAC1ByB,IAAI,EACH,IAAAzD,MAAA,CAAAC,aAAA,EAACP,qBAAqB;MACrBC,KAAK,EAAG,IAAAkB,QAAE,EAAE,kBAAmB,CAAG;MAClCjB,QAAQ,EAAG2B,KAAO;MAClB/C,GAAG,EAAGA;IAAK,CACX,CACD;IACDkF,OAAO,EAAC;EAAW,GAEjBtF,QAAQ,IACT,IAAA4B,MAAA,CAAAC,aAAA,EAAC7C,WAAA,CAAAuG,QAAQ;IACRC,OAAO,EAAGA,CAAA,KAAM;MACf,MAAM,CAAEC,YAAY,CAAE,GAAGC,UAAK,CAACC,QAAQ,CAACC,IAAI,CAC3CxC,mBAAmB,CAACyC,OACrB,CAAC;MACD;MACA;MACA;MACAJ,YAAY,EAAEC,KAAK,CAAC,CAAC;MACrBD,YAAY,EAAEK,KAAK,CAAC,CAAC;MACrB7E,oBAAoB,CAAElB,KAAK,EAAEmB,aAAc,CAAC;IAC7C;EAAG,GAED,IAAAuB,QAAE,EAAE,QAAS,CACN,CAEM,CAAC,EACnB,IAAAb,MAAA,CAAAC,aAAA,EAAC7C,WAAA,CAAA+G,QAAQ;IACR5B,WAAW,EAAGA,WAAa;IAC3B5C,KAAK,EAAG,IAAAkB,QAAE,EAAE,gBAAiB;EAAG,CAChC,CACG,CACU,CAAC;AAEnB;AAEA,SAASuD,sBAAsBA,CAAEC,KAAK,EAAG;EACxC,IAAKA,KAAK,KAAK,OAAO,IAAIA,KAAK,KAAK1F,SAAS,EAAG;IAC/C,OAAO,IAAAkC,QAAE,EAAE,gCAAiC,CAAC;EAC9C;EACA,IAAKwD,KAAK,KAAK,SAAS,EAAG;IAC1B,OAAO,IAAAxD,QAAE,EAAE,wCAAyC,CAAC;EACtD;EACA,OAAO,IAAAA,QAAE,EAAE,wBAAyB,CAAC;AACtC;AAEO,MAAMyD,0BAA0B,GAAKD,KAAK,IAAM;EACtD,IAAK,CAAEA,KAAK,IAAIE,KAAK,CAAEF,KAAK,CAACG,CAAE,CAAC,IAAID,KAAK,CAAEF,KAAK,CAACI,CAAE,CAAC,EAAG;IACtD,OAAO9F,SAAS;EACjB;EAEA,OAAQ,GAAG0F,KAAK,CAACG,CAAC,GAAG,GAAK,KAAKH,KAAK,CAACI,CAAC,GAAG,GAAK,GAAE;AACjD,CAAC;AAACzG,OAAA,CAAAsG,0BAAA,GAAAA,0BAAA;AAEK,MAAMI,0BAA0B,GAAKL,KAAK,IAAM;EACtD,IAAK,CAAEA,KAAK,EAAG;IACd,OAAO;MAAEG,CAAC,EAAE7F,SAAS;MAAE8F,CAAC,EAAE9F;IAAU,CAAC;EACtC;EAEA,IAAI,CAAE6F,CAAC,EAAEC,CAAC,CAAE,GAAGJ,KAAK,CAACM,KAAK,CAAE,GAAI,CAAC,CAACC,GAAG,CAAIC,CAAC,IAAMC,UAAU,CAAED,CAAE,CAAC,GAAG,GAAI,CAAC;EACvEL,CAAC,GAAGD,KAAK,CAAEC,CAAE,CAAC,GAAG7F,SAAS,GAAG6F,CAAC;EAC9BC,CAAC,GAAGF,KAAK,CAAEE,CAAE,CAAC,GAAGD,CAAC,GAAGC,CAAC;EAEtB,OAAO;IAAED,CAAC;IAAEC;EAAE,CAAC;AAChB,CAAC;AAACzG,OAAA,CAAA0G,0BAAA,GAAAA,0BAAA;AAEF,SAASK,uBAAuBA,CAAE;EACjChE,QAAQ;EACRC,gBAAgB;EAChB1B;AACD,CAAC,EAAG;EACH,MAAMnB,KAAK,GAAG,IAAA+C,eAAS,EACpBC,MAAM,IACPA,MAAM,CAAEG,YAAiB,CAAC,CAACF,kBAAkB,CAAEL,QAAS,CAAC,EAAE5C,KAAK,EACjE,CAAE4C,QAAQ,CACX,CAAC;EAED,MAAMiE,SAAS,GAAG7G,KAAK,EAAEE,UAAU,EAAEO,cAAc;EACnD,MAAMqG,WAAW,GAAG9G,KAAK,EAAEE,UAAU,EAAEe,gBAAgB;;EAEvD;EACA;EACA;EACA;EACA,MAAM8F,qBAAqB,GACxBF,SAAS,KAAKrG,SAAS,IACxBqG,SAAS,KAAK,OAAO,IACrBA,SAAS,KAAK,SAAS,IACxBA,SAAS,KAAK,EAAE,GACb,MAAM,GACNA,SAAS,IAAI,OAAO;;EAExB;EACA;EACA;EACA,MAAMG,kBAAkB,GACvBF,WAAW,KAAK,WAAW,IACzBC,qBAAqB,KAAK,OAAO,IAAID,WAAW,KAAKtG,SAAW,GAC/D,KAAK,GACL,IAAI;EAER,MAAMP,QAAQ,GAAGK,sBAAsB,CAAEN,KAAM,CAAC;EAEhD,MAAM0E,cAAc,GAAG,IAAAC,oBAAW,EAAIC,aAAa,IAAM;IACxD,OAAO;MACN,GAAGA,aAAa;MAChB5E,KAAK,EAAE;QACN,GAAG4E,aAAa,CAAC5E,KAAK;QACtBE,UAAU,EAAE;UACX,GAAG0E,aAAa,CAAC5E,KAAK,EAAEE,UAAU;UAClCe,gBAAgB,EAAET,SAAS;UAC3BC,cAAc,EAAED;QACjB;MACD;IACD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMyG,oBAAoB,GAAKC,IAAI,IAAM;IACxC;IACA,IAAIC,UAAU,GAAGL,WAAW;IAE5B,IAAKI,IAAI,KAAK,SAAS,EAAG;MACzBC,UAAU,GAAG,WAAW;IACzB;IAEA,IACC,CAAEJ,qBAAqB,KAAK,OAAO,IAClCA,qBAAqB,KAAK,SAAS,KACpCG,IAAI,KAAK,MAAM,EACd;MACDC,UAAU,GAAG3G,SAAS;IACvB;IAEAW,aAAa,CAAE;MACdnB,KAAK,EAAE,IAAAoB,uBAAgB,EAAE;QACxB,GAAGpB,KAAK;QACRE,UAAU,EAAE;UACX,GAAGF,KAAK,EAAEE,UAAU;UACpBe,gBAAgB,EAAEkG,UAAU;UAC5B1G,cAAc,EAAEyG;QACjB;MACD,CAAE;IACH,CAAE,CAAC;EACJ,CAAC;EAED,MAAME,wBAAwB,GAAKF,IAAI,IAAM;IAC5C/F,aAAa,CAAE;MACdnB,KAAK,EAAE,IAAAoB,uBAAgB,EAAE;QACxB,GAAGpB,KAAK;QACRE,UAAU,EAAE;UACX,GAAGF,KAAK,EAAEE,UAAU;UACpBK,kBAAkB,EAAE4F,0BAA0B,CAAEe,IAAK;QACtD;MACD,CAAE;IACH,CAAE,CAAC;EACJ,CAAC;EAED,MAAMG,gBAAgB,GAAGA,CAAA,KAAM;IAC9BlG,aAAa,CAAE;MACdnB,KAAK,EAAE,IAAAoB,uBAAgB,EAAE;QACxB,GAAGpB,KAAK;QACRE,UAAU,EAAE;UACX,GAAGF,KAAK,EAAEE,UAAU;UACpBe,gBAAgB,EACf+F,kBAAkB,KAAK,IAAI,GAAG,WAAW,GAAGxG;QAC9C;MACD,CAAE;IACH,CAAE,CAAC;EACJ,CAAC;EAED,OACC,IAAAqB,MAAA,CAAAC,aAAA,EAAC7C,WAAA,CAAAqI,oBAAM;IACNtF,EAAE,EAAGuF,wCAAgB;IACrBC,OAAO,EAAG,CAAG;IACbrF,SAAS,EAAC,eAAe;IACzBlC,QAAQ,EAAGA,CAAA,KAAMA,QAAU;IAC3BuB,KAAK,EAAG,IAAAkB,QAAE,EAAE,MAAO,CAAG;IACtBoC,UAAU,EAAGA,CAAA,KAAMzD,mBAAmB,CAAErB,KAAK,EAAEmB,aAAc,CAAG;IAChE0B,gBAAgB,EAAGA,gBAAkB;IACrC6B,cAAc,EAAGA,cAAgB;IACjCK,OAAO,EAAGnC;EAAU,GAEpB,IAAAf,MAAA,CAAAC,aAAA,EAAC7C,WAAA,CAAAwI,gBAAgB;IAChBC,qBAAqB;IACrBlG,KAAK,EAAG,IAAAkB,QAAE,EAAE,UAAW,CAAG;IAC1BrC,GAAG,EAAGL,KAAK,EAAEE,UAAU,EAAEC,eAAe,EAAEE,GAAK;IAC/C6F,KAAK,EAAGK,0BAA0B,CACjCvG,KAAK,EAAEE,UAAU,EAAEK,kBACpB,CAAG;IACHoH,QAAQ,EAAGP;EAA0B,CACrC,CAAC,EACF,IAAAvF,MAAA,CAAAC,aAAA,EAAC7C,WAAA,CAAA2I,gCAAkB;IAClBC,IAAI,EAAG,kBAAoB;IAC3BrG,KAAK,EAAG,IAAAkB,QAAE,EAAE,MAAO,CAAG;IACtBwD,KAAK,EAAGa,qBAAuB;IAC/BY,QAAQ,EAAGV,oBAAsB;IACjCa,OAAO,EAAG,IAAM;IAChBC,IAAI,EAAG9B,sBAAsB,CAAEY,SAAU;EAAG,GAE5C,IAAAhF,MAAA,CAAAC,aAAA,EAAC7C,WAAA,CAAA+I,sCAAwB;IACxBC,GAAG,EAAG,OAAS;IACf/B,KAAK,EAAG,OAAS;IACjB1E,KAAK,EAAG,IAAAkB,QAAE,EAAE,OAAQ;EAAG,CACvB,CAAC,EACF,IAAAb,MAAA,CAAAC,aAAA,EAAC7C,WAAA,CAAA+I,sCAAwB;IACxBC,GAAG,EAAG,SAAW;IACjB/B,KAAK,EAAG,SAAW;IACnB1E,KAAK,EAAG,IAAAkB,QAAE,EAAE,SAAU;EAAG,CACzB,CAAC,EACF,IAAAb,MAAA,CAAAC,aAAA,EAAC7C,WAAA,CAAA+I,sCAAwB;IACxBC,GAAG,EAAG,OAAS;IACf/B,KAAK,EAAG,MAAQ;IAChB1E,KAAK,EAAG,IAAAkB,QAAE,EAAE,OAAQ;EAAG,CACvB,CACkB,CAAC,EACnBmE,SAAS,KAAKrG,SAAS,IACzBqG,SAAS,KAAK,OAAO,IACrBA,SAAS,KAAK,SAAS,GACtB,IAAAhF,MAAA,CAAAC,aAAA,EAAC7C,WAAA,CAAAiJ,yBAAW;IACXL,IAAI,EAAG,kBAAoB;IAC3BF,QAAQ,EAAGV,oBAAsB;IACjCf,KAAK,EAAGW;EAAW,CACnB,CAAC,GACC,IAAI,EACNE,qBAAqB,KAAK,OAAO,IAClC,IAAAlF,MAAA,CAAAC,aAAA,EAAC7C,WAAA,CAAAkJ,aAAa;IACb3G,KAAK,EAAG,IAAAkB,QAAE,EAAE,QAAS,CAAG;IACxB0F,OAAO,EAAGpB,kBAAoB;IAC9BW,QAAQ,EAAGN;EAAkB,CAC7B,CAEK,CAAC;AAEX;AAEO,SAASgB,oBAAoBA,CAAEC,KAAK,EAAG;EAC7C,MAAM,CAAEnI,eAAe,EAAEM,cAAc,CAAE,GAAG,IAAA8H,wBAAW,EACtD,4BAA4B,EAC5B,2BACD,CAAC;EAED,IACC,CAAEpI,eAAe,IACjB,CAAEO,oBAAoB,CAAE4H,KAAK,CAAChD,IAAI,EAAE,iBAAkB,CAAC,EACtD;IACD,OAAO,IAAI;EACZ;EAEA,MAAMkD,kBAAkB,GAAG,CAAC,EAC3B/H,cAAc,IAAIC,oBAAoB,CAAE4H,KAAK,CAAChD,IAAI,EAAE,gBAAiB,CAAC,CACtE;EAED,MAAMmD,eAAe,GAAG,IAAAzH,uBAAe,EAAEsH,KAAK,CAAChD,IAAI,EAAE,CACpD1F,sBAAsB,EACtB,+BAA+B,CAC9B,CAAC;EAEH,OACC,IAAAiC,MAAA,CAAAC,aAAA,EAACvC,kBAAA,CAAA0F,OAAiB;IAACyD,KAAK,EAAC;EAAY,GACpC,IAAA7G,MAAA,CAAAC,aAAA,EAACa,wBAAwB;IACxBE,gBAAgB,EAAG4F,eAAe,EAAEtI,eAAiB;IAAA,GAChDmI;EAAK,CACV,CAAC,EACAE,kBAAkB,IACnB,IAAA3G,MAAA,CAAAC,aAAA,EAAC8E,uBAAuB;IACvB/D,gBAAgB,EAAG4F,eAAe,EAAEhI,cAAgB;IAAA,GAC/C6H;EAAK,CACV,CAEgB,CAAC;AAEtB"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_blocks","_components","_element","_hooks","_data","_colors","_inspectorControls","_useMultipleOriginColorsAndGradients","_utils","_globalStyles","_store","BORDER_SUPPORT_KEY","exports","getColorByProperty","colors","property","value","matchedColor","some","origin","color","getMultiOriginColor","namedColor","customColor","colorObject","undefined","getColorSlugFromVariable","exec","styleToAttributes","style","hasSplitBorders","border","borderColor","borderColorValue","borderColorSlug","startsWith","substring","length","updatedStyle","cleanEmptyObject","attributesToStyle","attributes","BordersInspectorControl","children","resetAllFilter","attributesResetAllFilter","useCallback","existingStyle","_react","createElement","default","group","BorderPanel","clientId","name","setAttributes","settings","isEnabled","useHasBorderPanel","selector","select","blockEditorStore","getBlockAttributes","useSelect","useMemo","onChange","newStyle","defaultControls","getBlockSupport","as","panelId","hasBorderSupport","blockName","feature","Platform","OS","support","radius","width","removeBorderAttribute","attribute","addAttributes","type","addSaveProps","props","blockNameOrType","shouldSkipSerialization","borderClasses","getBorderClasses","newClassName","classnames","className","borderColorClass","getColorClassName","useBlockProps","useMultipleOriginColorsAndGradients","borderTopColor","top","borderRightColor","right","borderBottomColor","bottom","borderLeftColor","left","extraStyles","_default","attributeKeys","hasSupport","addFilter"],"sources":["@wordpress/block-editor/src/hooks/border.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { __experimentalHasSplitBorders as hasSplitBorders } from '@wordpress/components';\nimport { Platform, useCallback, useMemo } from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { getColorClassName } from '../components/colors';\nimport InspectorControls from '../components/inspector-controls';\nimport useMultipleOriginColorsAndGradients from '../components/colors-gradients/use-multiple-origin-colors-and-gradients';\nimport { cleanEmptyObject, shouldSkipSerialization } from './utils';\nimport {\n\tuseHasBorderPanel,\n\tBorderPanel as StylesBorderPanel,\n} from '../components/global-styles';\nimport { store as blockEditorStore } from '../store';\n\nexport const BORDER_SUPPORT_KEY = '__experimentalBorder';\n\nconst getColorByProperty = ( colors, property, value ) => {\n\tlet matchedColor;\n\n\tcolors.some( ( origin ) =>\n\t\torigin.colors.some( ( color ) => {\n\t\t\tif ( color[ property ] === value ) {\n\t\t\t\tmatchedColor = color;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t} )\n\t);\n\n\treturn matchedColor;\n};\n\nexport const getMultiOriginColor = ( { colors, namedColor, customColor } ) => {\n\t// Search each origin (default, theme, or user) for matching color by name.\n\tif ( namedColor ) {\n\t\tconst colorObject = getColorByProperty( colors, 'slug', namedColor );\n\t\tif ( colorObject ) {\n\t\t\treturn colorObject;\n\t\t}\n\t}\n\n\t// Skip if no custom color or matching named color.\n\tif ( ! customColor ) {\n\t\treturn { color: undefined };\n\t}\n\n\t// Attempt to find color via custom color value or build new object.\n\tconst colorObject = getColorByProperty( colors, 'color', customColor );\n\treturn colorObject ? colorObject : { color: customColor };\n};\n\nfunction getColorSlugFromVariable( value ) {\n\tconst namedColor = /var:preset\\|color\\|(.+)/.exec( value );\n\tif ( namedColor && namedColor[ 1 ] ) {\n\t\treturn namedColor[ 1 ];\n\t}\n\treturn null;\n}\n\nfunction styleToAttributes( style ) {\n\tif ( hasSplitBorders( style?.border ) ) {\n\t\treturn {\n\t\t\tstyle,\n\t\t\tborderColor: undefined,\n\t\t};\n\t}\n\n\tconst borderColorValue = style?.border?.color;\n\tconst borderColorSlug = borderColorValue?.startsWith( 'var:preset|color|' )\n\t\t? borderColorValue.substring( 'var:preset|color|'.length )\n\t\t: undefined;\n\tconst updatedStyle = { ...style };\n\tupdatedStyle.border = {\n\t\t...updatedStyle.border,\n\t\tcolor: borderColorSlug ? undefined : borderColorValue,\n\t};\n\treturn {\n\t\tstyle: cleanEmptyObject( updatedStyle ),\n\t\tborderColor: borderColorSlug,\n\t};\n}\n\nfunction attributesToStyle( attributes ) {\n\tif ( hasSplitBorders( attributes.style?.border ) ) {\n\t\treturn attributes.style;\n\t}\n\treturn {\n\t\t...attributes.style,\n\t\tborder: {\n\t\t\t...attributes.style?.border,\n\t\t\tcolor: attributes.borderColor\n\t\t\t\t? 'var:preset|color|' + attributes.borderColor\n\t\t\t\t: attributes.style?.border?.color,\n\t\t},\n\t};\n}\n\nfunction BordersInspectorControl( { children, resetAllFilter } ) {\n\tconst attributesResetAllFilter = useCallback(\n\t\t( attributes ) => {\n\t\t\tconst existingStyle = attributesToStyle( attributes );\n\t\t\tconst updatedStyle = resetAllFilter( existingStyle );\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\t...styleToAttributes( updatedStyle ),\n\t\t\t};\n\t\t},\n\t\t[ resetAllFilter ]\n\t);\n\n\treturn (\n\t\t<InspectorControls\n\t\t\tgroup=\"border\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function BorderPanel( { clientId, name, setAttributes, settings } ) {\n\tconst isEnabled = useHasBorderPanel( settings );\n\tfunction selector( select ) {\n\t\tconst { style, borderColor } =\n\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId ) || {};\n\t\treturn { style, borderColor };\n\t}\n\tconst { style, borderColor } = useSelect( selector, [ clientId ] );\n\tconst value = useMemo( () => {\n\t\treturn attributesToStyle( { style, borderColor } );\n\t}, [ style, borderColor ] );\n\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( styleToAttributes( newStyle ) );\n\t};\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst defaultControls = getBlockSupport( name, [\n\t\tBORDER_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\treturn (\n\t\t<StylesBorderPanel\n\t\t\tas={ BordersInspectorControl }\n\t\t\tpanelId={ clientId }\n\t\t\tsettings={ settings }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tdefaultControls={ defaultControls }\n\t\t/>\n\t);\n}\n\n/**\n * Determine whether there is block support for border properties.\n *\n * @param {string} blockName Block name.\n * @param {string} feature Border feature to check support for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasBorderSupport( blockName, feature = 'any' ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst support = getBlockSupport( blockName, BORDER_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn !! (\n\t\t\tsupport?.color ||\n\t\t\tsupport?.radius ||\n\t\t\tsupport?.width ||\n\t\t\tsupport?.style\n\t\t);\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\n/**\n * Returns a new style object where the specified border attribute has been\n * removed.\n *\n * @param {Object} style Styles from block attributes.\n * @param {string} attribute The border style attribute to clear.\n *\n * @return {Object} Style object with the specified attribute removed.\n */\nexport function removeBorderAttribute( style, attribute ) {\n\treturn cleanEmptyObject( {\n\t\t...style,\n\t\tborder: {\n\t\t\t...style?.border,\n\t\t\t[ attribute ]: undefined,\n\t\t},\n\t} );\n}\n\n/**\n * Filters registered block settings, extending attributes to include\n * `borderColor` if needed.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Updated block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasBorderSupport( settings, 'color' ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify default value if needed.\n\tif ( settings.attributes.borderColor ) {\n\t\treturn settings;\n\t}\n\n\t// Add new borderColor attribute to block settings.\n\treturn {\n\t\t...settings,\n\t\tattributes: {\n\t\t\t...settings.attributes,\n\t\t\tborderColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t};\n}\n\n/**\n * Override props assigned to save component to inject border color.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object|string} blockNameOrType Block type definition.\n * @param {Object} attributes Block's attributes.\n *\n * @return {Object} Filtered props to apply to save element.\n */\nfunction addSaveProps( props, blockNameOrType, attributes ) {\n\tif (\n\t\t! hasBorderSupport( blockNameOrType, 'color' ) ||\n\t\tshouldSkipSerialization( blockNameOrType, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst borderClasses = getBorderClasses( attributes );\n\tconst newClassName = classnames( props.className, borderClasses );\n\n\t// If we are clearing the last of the previous classes in `className`\n\t// set it to `undefined` to avoid rendering empty DOM attributes.\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Generates a CSS class name consisting of all the applicable border color\n * classes given the current block attributes.\n *\n * @param {Object} attributes Block's attributes.\n *\n * @return {string} CSS class name.\n */\nexport function getBorderClasses( attributes ) {\n\tconst { borderColor, style } = attributes;\n\tconst borderColorClass = getColorClassName( 'border-color', borderColor );\n\n\treturn classnames( {\n\t\t'has-border-color': borderColor || style?.border?.color,\n\t\t[ borderColorClass ]: !! borderColorClass,\n\t} );\n}\n\nfunction useBlockProps( { name, borderColor, style } ) {\n\tconst { colors } = useMultipleOriginColorsAndGradients();\n\n\tif (\n\t\t! hasBorderSupport( name, 'color' ) ||\n\t\tshouldSkipSerialization( name, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn {};\n\t}\n\n\tconst { color: borderColorValue } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: borderColor,\n\t} );\n\tconst { color: borderTopColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.top?.color ),\n\t} );\n\tconst { color: borderRightColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.right?.color ),\n\t} );\n\n\tconst { color: borderBottomColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.bottom?.color ),\n\t} );\n\tconst { color: borderLeftColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.left?.color ),\n\t} );\n\n\tconst extraStyles = {\n\t\tborderTopColor: borderTopColor || borderColorValue,\n\t\tborderRightColor: borderRightColor || borderColorValue,\n\t\tborderBottomColor: borderBottomColor || borderColorValue,\n\t\tborderLeftColor: borderLeftColor || borderColorValue,\n\t};\n\n\treturn addSaveProps(\n\t\t{ style: cleanEmptyObject( extraStyles ) || {} },\n\t\tname,\n\t\t{ borderColor, style }\n\t);\n}\n\nexport default {\n\tuseBlockProps,\n\taddSaveProps,\n\tattributeKeys: [ 'borderColor', 'style' ],\n\thasSupport( name ) {\n\t\treturn hasBorderSupport( name, 'color' );\n\t},\n};\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/border/addAttributes',\n\taddAttributes\n);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_blocks","_components","_element","_hooks","_data","_colors","_inspectorControls","_useMultipleOriginColorsAndGradients","_utils","_globalStyles","_store","_i18n","BORDER_SUPPORT_KEY","exports","SHADOW_SUPPORT_KEY","getColorByProperty","colors","property","value","matchedColor","some","origin","color","getMultiOriginColor","namedColor","customColor","colorObject","undefined","getColorSlugFromVariable","exec","styleToAttributes","style","hasSplitBorders","border","borderColor","borderColorValue","borderColorSlug","startsWith","substring","length","updatedStyle","cleanEmptyObject","attributesToStyle","attributes","BordersInspectorControl","label","children","resetAllFilter","attributesResetAllFilter","useCallback","existingStyle","_react","createElement","default","group","BorderPanel","clientId","name","setAttributes","settings","isEnabled","useHasBorderPanel","selector","select","blockEditorStore","getBlockAttributes","useSelect","useMemo","onChange","newStyle","defaultControls","getBlockSupport","as","panelId","hasBorderSupport","blockName","feature","Platform","OS","support","radius","width","hasShadowSupport","hasBlockSupport","getBorderPanelLabel","hasBorderControl","hasShadowControl","__","removeBorderAttribute","attribute","addAttributes","type","addSaveProps","props","blockNameOrType","shouldSkipSerialization","borderClasses","getBorderClasses","newClassName","classnames","className","borderColorClass","getColorClassName","useBlockProps","useMultipleOriginColorsAndGradients","borderTopColor","top","borderRightColor","right","borderBottomColor","bottom","borderLeftColor","left","extraStyles","_default","attributeKeys","hasSupport","addFilter"],"sources":["@wordpress/block-editor/src/hooks/border.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, getBlockSupport } from '@wordpress/blocks';\nimport { __experimentalHasSplitBorders as hasSplitBorders } from '@wordpress/components';\nimport { Platform, useCallback, useMemo } from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { getColorClassName } from '../components/colors';\nimport InspectorControls from '../components/inspector-controls';\nimport useMultipleOriginColorsAndGradients from '../components/colors-gradients/use-multiple-origin-colors-and-gradients';\nimport { cleanEmptyObject, shouldSkipSerialization } from './utils';\nimport {\n\tuseHasBorderPanel,\n\tBorderPanel as StylesBorderPanel,\n} from '../components/global-styles';\nimport { store as blockEditorStore } from '../store';\nimport { __ } from '@wordpress/i18n';\n\nexport const BORDER_SUPPORT_KEY = '__experimentalBorder';\nexport const SHADOW_SUPPORT_KEY = 'shadow';\n\nconst getColorByProperty = ( colors, property, value ) => {\n\tlet matchedColor;\n\n\tcolors.some( ( origin ) =>\n\t\torigin.colors.some( ( color ) => {\n\t\t\tif ( color[ property ] === value ) {\n\t\t\t\tmatchedColor = color;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t} )\n\t);\n\n\treturn matchedColor;\n};\n\nexport const getMultiOriginColor = ( { colors, namedColor, customColor } ) => {\n\t// Search each origin (default, theme, or user) for matching color by name.\n\tif ( namedColor ) {\n\t\tconst colorObject = getColorByProperty( colors, 'slug', namedColor );\n\t\tif ( colorObject ) {\n\t\t\treturn colorObject;\n\t\t}\n\t}\n\n\t// Skip if no custom color or matching named color.\n\tif ( ! customColor ) {\n\t\treturn { color: undefined };\n\t}\n\n\t// Attempt to find color via custom color value or build new object.\n\tconst colorObject = getColorByProperty( colors, 'color', customColor );\n\treturn colorObject ? colorObject : { color: customColor };\n};\n\nfunction getColorSlugFromVariable( value ) {\n\tconst namedColor = /var:preset\\|color\\|(.+)/.exec( value );\n\tif ( namedColor && namedColor[ 1 ] ) {\n\t\treturn namedColor[ 1 ];\n\t}\n\treturn null;\n}\n\nfunction styleToAttributes( style ) {\n\tif ( hasSplitBorders( style?.border ) ) {\n\t\treturn {\n\t\t\tstyle,\n\t\t\tborderColor: undefined,\n\t\t};\n\t}\n\n\tconst borderColorValue = style?.border?.color;\n\tconst borderColorSlug = borderColorValue?.startsWith( 'var:preset|color|' )\n\t\t? borderColorValue.substring( 'var:preset|color|'.length )\n\t\t: undefined;\n\tconst updatedStyle = { ...style };\n\tupdatedStyle.border = {\n\t\t...updatedStyle.border,\n\t\tcolor: borderColorSlug ? undefined : borderColorValue,\n\t};\n\treturn {\n\t\tstyle: cleanEmptyObject( updatedStyle ),\n\t\tborderColor: borderColorSlug,\n\t};\n}\n\nfunction attributesToStyle( attributes ) {\n\tif ( hasSplitBorders( attributes.style?.border ) ) {\n\t\treturn attributes.style;\n\t}\n\treturn {\n\t\t...attributes.style,\n\t\tborder: {\n\t\t\t...attributes.style?.border,\n\t\t\tcolor: attributes.borderColor\n\t\t\t\t? 'var:preset|color|' + attributes.borderColor\n\t\t\t\t: attributes.style?.border?.color,\n\t\t},\n\t};\n}\n\nfunction BordersInspectorControl( { label, children, resetAllFilter } ) {\n\tconst attributesResetAllFilter = useCallback(\n\t\t( attributes ) => {\n\t\t\tconst existingStyle = attributesToStyle( attributes );\n\t\t\tconst updatedStyle = resetAllFilter( existingStyle );\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\t...styleToAttributes( updatedStyle ),\n\t\t\t};\n\t\t},\n\t\t[ resetAllFilter ]\n\t);\n\n\treturn (\n\t\t<InspectorControls\n\t\t\tgroup=\"border\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t\tlabel={ label }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function BorderPanel( { clientId, name, setAttributes, settings } ) {\n\tconst isEnabled = useHasBorderPanel( settings );\n\tfunction selector( select ) {\n\t\tconst { style, borderColor } =\n\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId ) || {};\n\t\treturn { style, borderColor };\n\t}\n\tconst { style, borderColor } = useSelect( selector, [ clientId ] );\n\tconst value = useMemo( () => {\n\t\treturn attributesToStyle( { style, borderColor } );\n\t}, [ style, borderColor ] );\n\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( styleToAttributes( newStyle ) );\n\t};\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst defaultControls = {\n\t\t...getBlockSupport( name, [\n\t\t\tBORDER_SUPPORT_KEY,\n\t\t\t'__experimentalDefaultControls',\n\t\t] ),\n\t\t...getBlockSupport( name, [\n\t\t\tSHADOW_SUPPORT_KEY,\n\t\t\t'__experimentalDefaultControls',\n\t\t] ),\n\t};\n\n\treturn (\n\t\t<StylesBorderPanel\n\t\t\tas={ BordersInspectorControl }\n\t\t\tpanelId={ clientId }\n\t\t\tsettings={ settings }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tdefaultControls={ defaultControls }\n\t\t/>\n\t);\n}\n\n/**\n * Determine whether there is block support for border properties.\n *\n * @param {string} blockName Block name.\n * @param {string} feature Border feature to check support for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasBorderSupport( blockName, feature = 'any' ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst support = getBlockSupport( blockName, BORDER_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn !! (\n\t\t\tsupport?.color ||\n\t\t\tsupport?.radius ||\n\t\t\tsupport?.width ||\n\t\t\tsupport?.style\n\t\t);\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\n/**\n * Determine whether there is block support for shadow properties.\n *\n * @param {string} blockName Block name.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasShadowSupport( blockName ) {\n\treturn hasBlockSupport( blockName, SHADOW_SUPPORT_KEY );\n}\n\nexport function getBorderPanelLabel( {\n\tblockName,\n\thasBorderControl,\n\thasShadowControl,\n} = {} ) {\n\tif ( ! hasBorderControl && ! hasShadowControl && blockName ) {\n\t\thasBorderControl = hasBorderSupport( blockName );\n\t\thasShadowControl = hasShadowSupport( blockName );\n\t}\n\n\tif ( hasBorderControl && hasShadowControl ) {\n\t\treturn __( 'Border & Shadow' );\n\t}\n\n\tif ( hasShadowControl ) {\n\t\treturn __( 'Shadow' );\n\t}\n\n\treturn __( 'Border' );\n}\n\n/**\n * Returns a new style object where the specified border attribute has been\n * removed.\n *\n * @param {Object} style Styles from block attributes.\n * @param {string} attribute The border style attribute to clear.\n *\n * @return {Object} Style object with the specified attribute removed.\n */\nexport function removeBorderAttribute( style, attribute ) {\n\treturn cleanEmptyObject( {\n\t\t...style,\n\t\tborder: {\n\t\t\t...style?.border,\n\t\t\t[ attribute ]: undefined,\n\t\t},\n\t} );\n}\n\n/**\n * Filters registered block settings, extending attributes to include\n * `borderColor` if needed.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Updated block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasBorderSupport( settings, 'color' ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify default value if needed.\n\tif ( settings.attributes.borderColor ) {\n\t\treturn settings;\n\t}\n\n\t// Add new borderColor attribute to block settings.\n\treturn {\n\t\t...settings,\n\t\tattributes: {\n\t\t\t...settings.attributes,\n\t\t\tborderColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t};\n}\n\n/**\n * Override props assigned to save component to inject border color.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object|string} blockNameOrType Block type definition.\n * @param {Object} attributes Block's attributes.\n *\n * @return {Object} Filtered props to apply to save element.\n */\nfunction addSaveProps( props, blockNameOrType, attributes ) {\n\tif (\n\t\t! hasBorderSupport( blockNameOrType, 'color' ) ||\n\t\tshouldSkipSerialization( blockNameOrType, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst borderClasses = getBorderClasses( attributes );\n\tconst newClassName = classnames( props.className, borderClasses );\n\n\t// If we are clearing the last of the previous classes in `className`\n\t// set it to `undefined` to avoid rendering empty DOM attributes.\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Generates a CSS class name consisting of all the applicable border color\n * classes given the current block attributes.\n *\n * @param {Object} attributes Block's attributes.\n *\n * @return {string} CSS class name.\n */\nexport function getBorderClasses( attributes ) {\n\tconst { borderColor, style } = attributes;\n\tconst borderColorClass = getColorClassName( 'border-color', borderColor );\n\n\treturn classnames( {\n\t\t'has-border-color': borderColor || style?.border?.color,\n\t\t[ borderColorClass ]: !! borderColorClass,\n\t} );\n}\n\nfunction useBlockProps( { name, borderColor, style } ) {\n\tconst { colors } = useMultipleOriginColorsAndGradients();\n\n\tif (\n\t\t! hasBorderSupport( name, 'color' ) ||\n\t\tshouldSkipSerialization( name, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn {};\n\t}\n\n\tconst { color: borderColorValue } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: borderColor,\n\t} );\n\tconst { color: borderTopColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.top?.color ),\n\t} );\n\tconst { color: borderRightColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.right?.color ),\n\t} );\n\n\tconst { color: borderBottomColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.bottom?.color ),\n\t} );\n\tconst { color: borderLeftColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.left?.color ),\n\t} );\n\n\tconst extraStyles = {\n\t\tborderTopColor: borderTopColor || borderColorValue,\n\t\tborderRightColor: borderRightColor || borderColorValue,\n\t\tborderBottomColor: borderBottomColor || borderColorValue,\n\t\tborderLeftColor: borderLeftColor || borderColorValue,\n\t};\n\n\treturn addSaveProps(\n\t\t{ style: cleanEmptyObject( extraStyles ) || {} },\n\t\tname,\n\t\t{ borderColor, style }\n\t);\n}\n\nexport default {\n\tuseBlockProps,\n\taddSaveProps,\n\tattributeKeys: [ 'borderColor', 'style' ],\n\thasSupport( name ) {\n\t\treturn hasBorderSupport( name, 'color' );\n\t},\n};\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/border/addAttributes',\n\taddAttributes\n);\n"],"mappings":"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"}
@@ -24,8 +24,8 @@ var _inspectorControls = _interopRequireDefault(require("../components/inspector
24
24
  var _colorPanel = _interopRequireWildcard(require("../components/global-styles/color-panel"));
25
25
  var _contrastChecker = _interopRequireDefault(require("./contrast-checker"));
26
26
  var _store = require("../store");
27
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
28
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
28
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
29
29
  /**
30
30
  * External dependencies
31
31
  */
@@ -38,8 +38,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
38
38
  * Internal dependencies
39
39
  */
40
40
 
41
- const COLOR_SUPPORT_KEY = 'color';
42
- exports.COLOR_SUPPORT_KEY = COLOR_SUPPORT_KEY;
41
+ const COLOR_SUPPORT_KEY = exports.COLOR_SUPPORT_KEY = 'color';
43
42
  const hasColorSupport = blockNameOrType => {
44
43
  const colorSupport = (0, _blocks.getBlockSupport)(blockNameOrType, COLOR_SUPPORT_KEY);
45
44
  return colorSupport && (colorSupport.link === true || colorSupport.gradient === true || colorSupport.background !== false || colorSupport.text !== false);
@@ -289,13 +288,12 @@ function useBlockProps({
289
288
  !hasBackgroundValue && (0, _background.getBackgroundImageClasses)(style))
290
289
  };
291
290
  }
292
- var _default = {
291
+ var _default = exports.default = {
293
292
  useBlockProps,
294
293
  addSaveProps,
295
294
  attributeKeys: ['backgroundColor', 'textColor', 'gradient', 'style'],
296
295
  hasSupport: hasColorSupport
297
296
  };
298
- exports.default = _default;
299
297
  const MIGRATION_PATHS = {
300
298
  linkColor: [['style', 'elements', 'link', 'color', 'text']],
301
299
  textColor: [['textColor'], ['style', 'color', 'text']],