@wordpress/block-editor 12.15.0 → 12.16.1-next.79a6196f.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 (927) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/LICENSE.md +1 -1
  3. package/README.md +12 -10
  4. package/build/components/block-canvas/index.js +21 -7
  5. package/build/components/block-canvas/index.js.map +1 -1
  6. package/build/components/block-card/index.js +2 -2
  7. package/build/components/block-card/index.js.map +1 -1
  8. package/build/components/block-controls/hook.js +3 -23
  9. package/build/components/block-controls/hook.js.map +1 -1
  10. package/build/components/block-draggable/draggable-chip.js +6 -1
  11. package/build/components/block-draggable/draggable-chip.js.map +1 -1
  12. package/build/components/block-draggable/index.js +76 -6
  13. package/build/components/block-draggable/index.js.map +1 -1
  14. package/build/components/block-draggable/index.native.js +0 -6
  15. package/build/components/block-draggable/index.native.js.map +1 -1
  16. package/build/components/block-draggable/use-scroll-when-dragging.native.js +1 -1
  17. package/build/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -1
  18. package/build/components/block-edit/context.js +5 -1
  19. package/build/components/block-edit/context.js.map +1 -1
  20. package/build/components/block-edit/index.js +18 -9
  21. package/build/components/block-edit/index.js.map +1 -1
  22. package/build/components/block-editing-mode/index.js +2 -3
  23. package/build/components/block-editing-mode/index.js.map +1 -1
  24. package/build/components/block-info-slot-fill/index.js +3 -4
  25. package/build/components/block-info-slot-fill/index.js.map +1 -1
  26. package/build/components/block-inspector/index.js +1 -1
  27. package/build/components/block-inspector/index.js.map +1 -1
  28. package/build/components/block-list/block-list-item-cell.native.js +1 -0
  29. package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
  30. package/build/components/block-list/block.js +257 -95
  31. package/build/components/block-list/block.js.map +1 -1
  32. package/build/components/block-list/block.native.js +58 -23
  33. package/build/components/block-list/block.native.js.map +1 -1
  34. package/build/components/block-list/index.native.js +3 -5
  35. package/build/components/block-list/index.native.js.map +1 -1
  36. package/build/components/block-list/private-block-context.js +14 -0
  37. package/build/components/block-list/private-block-context.js.map +1 -0
  38. package/build/components/block-list/use-block-props/index.js +49 -69
  39. package/build/components/block-list/use-block-props/index.js.map +1 -1
  40. package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  41. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  42. package/build/components/block-list/use-block-props/use-is-hovered.js +4 -14
  43. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  44. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  45. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  46. package/build/components/block-list/use-in-between-inserter.js +3 -2
  47. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  48. package/build/components/block-list/use-scroll-upon-insertion.native.js +41 -0
  49. package/build/components/block-list/use-scroll-upon-insertion.native.js.map +1 -0
  50. package/build/components/block-lock/toolbar.js +21 -27
  51. package/build/components/block-lock/toolbar.js.map +1 -1
  52. package/build/components/block-mover/index.js +2 -1
  53. package/build/components/block-mover/index.js.map +1 -1
  54. package/build/components/block-patterns-list/index.js +5 -5
  55. package/build/components/block-patterns-list/index.js.map +1 -1
  56. package/build/components/block-removal-warning-modal/index.js +2 -9
  57. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  58. package/build/components/block-rename/modal.js +3 -0
  59. package/build/components/block-rename/modal.js.map +1 -1
  60. package/build/components/block-settings/container.native.js +6 -4
  61. package/build/components/block-settings/container.native.js.map +1 -1
  62. package/build/components/block-styles/index.js +1 -1
  63. package/build/components/block-styles/index.js.map +1 -1
  64. package/build/components/block-styles/index.native.js +3 -2
  65. package/build/components/block-styles/index.native.js.map +1 -1
  66. package/build/components/block-switcher/index.js +4 -4
  67. package/build/components/block-switcher/index.js.map +1 -1
  68. package/build/components/block-toolbar/index.js +90 -29
  69. package/build/components/block-toolbar/index.js.map +1 -1
  70. package/build/components/block-tools/block-toolbar-breadcrumb.js +49 -0
  71. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  72. package/build/components/block-tools/block-toolbar-popover.js +84 -0
  73. package/build/components/block-tools/block-toolbar-popover.js.map +1 -0
  74. package/build/components/block-tools/index.js +27 -24
  75. package/build/components/block-tools/index.js.map +1 -1
  76. package/build/components/block-types-list/index.native.js +4 -3
  77. package/build/components/block-types-list/index.native.js.map +1 -1
  78. package/build/components/block-variation-picker/index.native.js +2 -1
  79. package/build/components/block-variation-picker/index.native.js.map +1 -1
  80. package/build/components/block-variation-transforms/index.js +29 -2
  81. package/build/components/block-variation-transforms/index.js.map +1 -1
  82. package/build/components/border-radius-control/linked-button.js +1 -1
  83. package/build/components/border-radius-control/linked-button.js.map +1 -1
  84. package/build/components/colors/utils.js +10 -2
  85. package/build/components/colors/utils.js.map +1 -1
  86. package/build/components/colors/with-colors.js +6 -2
  87. package/build/components/colors/with-colors.js.map +1 -1
  88. package/build/components/colors-gradients/control.js +28 -17
  89. package/build/components/colors-gradients/control.js.map +1 -1
  90. package/build/components/duotone-control/index.js +1 -4
  91. package/build/components/duotone-control/index.js.map +1 -1
  92. package/build/components/font-sizes/utils.js +10 -2
  93. package/build/components/font-sizes/utils.js.map +1 -1
  94. package/build/components/global-styles/border-panel.js +2 -1
  95. package/build/components/global-styles/border-panel.js.map +1 -1
  96. package/build/components/global-styles/color-panel.js +24 -21
  97. package/build/components/global-styles/color-panel.js.map +1 -1
  98. package/build/components/global-styles/dimensions-panel.js +4 -3
  99. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  100. package/build/components/global-styles/effects-panel.js +2 -1
  101. package/build/components/global-styles/effects-panel.js.map +1 -1
  102. package/build/components/global-styles/filters-panel.js +6 -3
  103. package/build/components/global-styles/filters-panel.js.map +1 -1
  104. package/build/components/global-styles/get-global-styles-changes.js +192 -0
  105. package/build/components/global-styles/get-global-styles-changes.js.map +1 -0
  106. package/build/components/global-styles/hooks.js +3 -2
  107. package/build/components/global-styles/hooks.js.map +1 -1
  108. package/build/components/global-styles/image-settings-panel.js +7 -1
  109. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  110. package/build/components/global-styles/index.js +7 -0
  111. package/build/components/global-styles/index.js.map +1 -1
  112. package/build/components/global-styles/typography-panel.js +43 -36
  113. package/build/components/global-styles/typography-panel.js.map +1 -1
  114. package/build/components/global-styles/use-global-styles-output.js +22 -8
  115. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  116. package/build/components/global-styles/utils.js +8 -1
  117. package/build/components/global-styles/utils.js.map +1 -1
  118. package/build/components/height-control/index.js +6 -2
  119. package/build/components/height-control/index.js.map +1 -1
  120. package/build/components/image-link-destinations/index.native.js +118 -0
  121. package/build/components/image-link-destinations/index.native.js.map +1 -0
  122. package/build/components/image-size-control/index.js +2 -2
  123. package/build/components/image-size-control/index.js.map +1 -1
  124. package/build/components/index.native.js +14 -5
  125. package/build/components/index.native.js.map +1 -1
  126. package/build/components/inner-blocks/index.js +61 -22
  127. package/build/components/inner-blocks/index.js.map +1 -1
  128. package/build/components/inner-blocks/index.native.js +18 -4
  129. package/build/components/inner-blocks/index.native.js.map +1 -1
  130. package/build/components/inner-blocks/use-inner-block-template-sync.js +5 -6
  131. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  132. package/build/components/inner-blocks/use-nested-settings-update.js +5 -9
  133. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  134. package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
  135. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  136. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +10 -9
  137. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  138. package/build/components/inserter/block-patterns-tab/patterns-filter.js +10 -10
  139. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  140. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +9 -9
  141. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  142. package/build/components/inserter/block-patterns-tab/utils.js +10 -14
  143. package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
  144. package/build/components/inserter/hooks/use-block-types-state.js +4 -14
  145. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  146. package/build/components/inserter/hooks/use-patterns-state.js +1 -1
  147. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  148. package/build/components/inserter/index.js +1 -2
  149. package/build/components/inserter/index.js.map +1 -1
  150. package/build/components/inserter/library.js +3 -7
  151. package/build/components/inserter/library.js.map +1 -1
  152. package/build/components/inserter/media-tab/media-panel.js +2 -2
  153. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  154. package/build/components/inserter/menu.js +26 -33
  155. package/build/components/inserter/menu.js.map +1 -1
  156. package/build/components/inserter/preview-panel.js +2 -2
  157. package/build/components/inserter/preview-panel.js.map +1 -1
  158. package/build/components/inserter/tabs.js +21 -21
  159. package/build/components/inserter/tabs.js.map +1 -1
  160. package/build/components/inserter-button/index.native.js +98 -0
  161. package/build/components/inserter-button/index.native.js.map +1 -0
  162. package/build/components/inserter-button/sparkles.js +23 -0
  163. package/build/components/inserter-button/sparkles.js.map +1 -0
  164. package/build/components/inserter-draggable-blocks/index.js +8 -4
  165. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  166. package/build/components/inserter-list-item/index.js +2 -4
  167. package/build/components/inserter-list-item/index.js.map +1 -1
  168. package/build/components/inspector-controls/block-support-tools-panel.js +3 -1
  169. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  170. package/build/components/inspector-controls/fill.js +3 -3
  171. package/build/components/inspector-controls/fill.js.map +1 -1
  172. package/build/components/inspector-controls/fill.native.js +3 -3
  173. package/build/components/inspector-controls/fill.native.js.map +1 -1
  174. package/build/components/inspector-controls-tabs/index.js +34 -23
  175. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  176. package/build/components/list-view/block-select-button.js +4 -0
  177. package/build/components/list-view/block-select-button.js.map +1 -1
  178. package/build/components/list-view/block.js +57 -3
  179. package/build/components/list-view/block.js.map +1 -1
  180. package/build/components/media-upload-progress/constants.js +19 -0
  181. package/build/components/media-upload-progress/constants.js.map +1 -0
  182. package/build/components/media-upload-progress/index.native.js +42 -17
  183. package/build/components/media-upload-progress/index.native.js.map +1 -1
  184. package/build/components/navigable-toolbar/index.js +11 -16
  185. package/build/components/navigable-toolbar/index.js.map +1 -1
  186. package/build/components/plain-text/index.native.js +8 -3
  187. package/build/components/plain-text/index.native.js.map +1 -1
  188. package/build/components/preview-options/index.js +6 -62
  189. package/build/components/preview-options/index.js.map +1 -1
  190. package/build/components/provider/index.js +3 -1
  191. package/build/components/provider/index.js.map +1 -1
  192. package/build/components/provider/use-block-sync.js +7 -1
  193. package/build/components/provider/use-block-sync.js.map +1 -1
  194. package/build/components/rich-text/content.js +26 -23
  195. package/build/components/rich-text/content.js.map +1 -1
  196. package/build/components/rich-text/get-rich-text-values.js +2 -1
  197. package/build/components/rich-text/get-rich-text-values.js.map +1 -1
  198. package/build/components/rich-text/index.js +19 -37
  199. package/build/components/rich-text/index.js.map +1 -1
  200. package/build/components/rich-text/index.native.js +9 -16
  201. package/build/components/rich-text/index.native.js.map +1 -1
  202. package/build/components/rich-text/native/get-format-colors.native.js +22 -24
  203. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  204. package/build/components/rich-text/native/index.native.js +22 -57
  205. package/build/components/rich-text/native/index.native.js.map +1 -1
  206. package/build/components/rich-text/use-input-rules.js +7 -3
  207. package/build/components/rich-text/use-input-rules.js.map +1 -1
  208. package/build/components/rich-text/use-mark-persistent.js +1 -1
  209. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  210. package/build/components/rich-text/with-deprecations.js +50 -0
  211. package/build/components/rich-text/with-deprecations.js.map +1 -0
  212. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  213. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  214. package/build/components/url-input/index.js +9 -6
  215. package/build/components/url-input/index.js.map +1 -1
  216. package/build/components/use-block-commands/index.js +14 -18
  217. package/build/components/use-block-commands/index.js.map +1 -1
  218. package/build/components/use-block-drop-zone/index.js +108 -17
  219. package/build/components/use-block-drop-zone/index.js.map +1 -1
  220. package/build/components/use-moving-animation/index.js +100 -92
  221. package/build/components/use-moving-animation/index.js.map +1 -1
  222. package/build/components/use-on-block-drop/index.js +9 -12
  223. package/build/components/use-on-block-drop/index.js.map +1 -1
  224. package/build/components/use-resize-canvas/index.js +4 -1
  225. package/build/components/use-resize-canvas/index.js.map +1 -1
  226. package/build/components/use-settings/index.js +14 -0
  227. package/build/components/use-settings/index.js.map +1 -1
  228. package/build/components/writing-flow/index.js +0 -1
  229. package/build/components/writing-flow/index.js.map +1 -1
  230. package/build/components/writing-flow/use-drag-selection.js +15 -4
  231. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  232. package/build/components/writing-flow/use-selection-observer.js +73 -27
  233. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  234. package/build/components/writing-flow/use-tab-nav.js +7 -4
  235. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  236. package/build/hooks/align.js +21 -69
  237. package/build/hooks/align.js.map +1 -1
  238. package/build/hooks/align.native.js +11 -1
  239. package/build/hooks/align.native.js.map +1 -1
  240. package/build/hooks/anchor.js +14 -30
  241. package/build/hooks/anchor.js.map +1 -1
  242. package/build/hooks/aria-label.js +9 -1
  243. package/build/hooks/aria-label.js.map +1 -1
  244. package/build/hooks/background.js +198 -36
  245. package/build/hooks/background.js.map +1 -1
  246. package/build/hooks/block-hooks.js +24 -32
  247. package/build/hooks/block-hooks.js.map +1 -1
  248. package/build/hooks/block-renaming.js +18 -22
  249. package/build/hooks/block-renaming.js.map +1 -1
  250. package/build/hooks/border.js +53 -80
  251. package/build/hooks/border.js.map +1 -1
  252. package/build/hooks/color.js +79 -90
  253. package/build/hooks/color.js.map +1 -1
  254. package/build/hooks/content-lock-ui.js +29 -29
  255. package/build/hooks/content-lock-ui.js.map +1 -1
  256. package/build/hooks/custom-class-name.js +13 -30
  257. package/build/hooks/custom-class-name.js.map +1 -1
  258. package/build/hooks/custom-class-name.native.js +9 -1
  259. package/build/hooks/custom-class-name.native.js.map +1 -1
  260. package/build/hooks/dimensions.js +13 -14
  261. package/build/hooks/dimensions.js.map +1 -1
  262. package/build/hooks/duotone.js +31 -61
  263. package/build/hooks/duotone.js.map +1 -1
  264. package/build/hooks/font-family.js +23 -28
  265. package/build/hooks/font-family.js.map +1 -1
  266. package/build/hooks/font-size.js +52 -120
  267. package/build/hooks/font-size.js.map +1 -1
  268. package/build/hooks/index.js +27 -16
  269. package/build/hooks/index.js.map +1 -1
  270. package/build/hooks/index.native.js +15 -6
  271. package/build/hooks/index.native.js.map +1 -1
  272. package/build/hooks/layout-child.js +68 -0
  273. package/build/hooks/layout-child.js.map +1 -0
  274. package/build/hooks/layout.js +25 -104
  275. package/build/hooks/layout.js.map +1 -1
  276. package/build/hooks/padding.js +2 -2
  277. package/build/hooks/padding.js.map +1 -1
  278. package/build/hooks/position.js +40 -62
  279. package/build/hooks/position.js.map +1 -1
  280. package/build/hooks/style.js +52 -89
  281. package/build/hooks/style.js.map +1 -1
  282. package/build/hooks/typography.js +25 -10
  283. package/build/hooks/typography.js.map +1 -1
  284. package/build/hooks/typography.native.js +43 -18
  285. package/build/hooks/typography.native.js.map +1 -1
  286. package/build/hooks/use-typography-props.js +10 -2
  287. package/build/hooks/use-typography-props.js.map +1 -1
  288. package/build/hooks/utils.js +200 -10
  289. package/build/hooks/utils.js.map +1 -1
  290. package/build/private-apis.js +2 -6
  291. package/build/private-apis.js.map +1 -1
  292. package/build/private-apis.native.js +0 -2
  293. package/build/private-apis.native.js.map +1 -1
  294. package/build/store/actions.js +0 -16
  295. package/build/store/actions.js.map +1 -1
  296. package/build/store/private-actions.js +54 -0
  297. package/build/store/private-actions.js.map +1 -1
  298. package/build/store/private-selectors.js +46 -0
  299. package/build/store/private-selectors.js.map +1 -1
  300. package/build/store/reducer.js +18 -2
  301. package/build/store/reducer.js.map +1 -1
  302. package/build/store/selectors.js +11 -73
  303. package/build/store/selectors.js.map +1 -1
  304. package/build/store/undo-ignore.js +12 -0
  305. package/build/store/undo-ignore.js.map +1 -0
  306. package/build/store/utils.js +66 -0
  307. package/build/store/utils.js.map +1 -0
  308. package/build/utils/get-px-from-css-unit.js +16 -0
  309. package/build/utils/get-px-from-css-unit.js.map +1 -0
  310. package/build/utils/index.js +2 -2
  311. package/build/utils/index.js.map +1 -1
  312. package/build/utils/object.js +38 -99
  313. package/build/utils/object.js.map +1 -1
  314. package/build/utils/selection.js +9 -1
  315. package/build/utils/selection.js.map +1 -1
  316. package/build/utils/use-can-block-toolbar-be-focused.js +46 -0
  317. package/build/utils/use-can-block-toolbar-be-focused.js.map +1 -0
  318. package/build-module/components/block-canvas/index.js +22 -8
  319. package/build-module/components/block-canvas/index.js.map +1 -1
  320. package/build-module/components/block-card/index.js +2 -2
  321. package/build-module/components/block-card/index.js.map +1 -1
  322. package/build-module/components/block-controls/hook.js +4 -24
  323. package/build-module/components/block-controls/hook.js.map +1 -1
  324. package/build-module/components/block-draggable/draggable-chip.js +6 -1
  325. package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
  326. package/build-module/components/block-draggable/index.js +76 -6
  327. package/build-module/components/block-draggable/index.js.map +1 -1
  328. package/build-module/components/block-draggable/index.native.js +1 -7
  329. package/build-module/components/block-draggable/index.native.js.map +1 -1
  330. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js +1 -1
  331. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -1
  332. package/build-module/components/block-edit/context.js +2 -0
  333. package/build-module/components/block-edit/context.js.map +1 -1
  334. package/build-module/components/block-edit/index.js +19 -10
  335. package/build-module/components/block-edit/index.js.map +1 -1
  336. package/build-module/components/block-editing-mode/index.js +3 -4
  337. package/build-module/components/block-editing-mode/index.js.map +1 -1
  338. package/build-module/components/block-info-slot-fill/index.js +3 -3
  339. package/build-module/components/block-info-slot-fill/index.js.map +1 -1
  340. package/build-module/components/block-inspector/index.js +1 -1
  341. package/build-module/components/block-inspector/index.js.map +1 -1
  342. package/build-module/components/block-list/block-list-item-cell.native.js +1 -0
  343. package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
  344. package/build-module/components/block-list/block.js +261 -99
  345. package/build-module/components/block-list/block.js.map +1 -1
  346. package/build-module/components/block-list/block.native.js +60 -25
  347. package/build-module/components/block-list/block.native.js.map +1 -1
  348. package/build-module/components/block-list/index.native.js +3 -5
  349. package/build-module/components/block-list/index.native.js.map +1 -1
  350. package/build-module/components/block-list/private-block-context.js +6 -0
  351. package/build-module/components/block-list/private-block-context.js.map +1 -0
  352. package/build-module/components/block-list/use-block-props/index.js +50 -70
  353. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  354. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  355. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  356. package/build-module/components/block-list/use-block-props/use-is-hovered.js +4 -14
  357. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  358. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  359. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  360. package/build-module/components/block-list/use-in-between-inserter.js +3 -2
  361. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  362. package/build-module/components/block-list/use-scroll-upon-insertion.native.js +33 -0
  363. package/build-module/components/block-list/use-scroll-upon-insertion.native.js.map +1 -0
  364. package/build-module/components/block-lock/toolbar.js +22 -28
  365. package/build-module/components/block-lock/toolbar.js.map +1 -1
  366. package/build-module/components/block-mover/index.js +2 -1
  367. package/build-module/components/block-mover/index.js.map +1 -1
  368. package/build-module/components/block-patterns-list/index.js +6 -6
  369. package/build-module/components/block-patterns-list/index.js.map +1 -1
  370. package/build-module/components/block-removal-warning-modal/index.js +3 -10
  371. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  372. package/build-module/components/block-rename/modal.js +3 -0
  373. package/build-module/components/block-rename/modal.js.map +1 -1
  374. package/build-module/components/block-settings/container.native.js +4 -2
  375. package/build-module/components/block-settings/container.native.js.map +1 -1
  376. package/build-module/components/block-styles/index.js +1 -1
  377. package/build-module/components/block-styles/index.js.map +1 -1
  378. package/build-module/components/block-styles/index.native.js +3 -2
  379. package/build-module/components/block-styles/index.native.js.map +1 -1
  380. package/build-module/components/block-switcher/index.js +4 -4
  381. package/build-module/components/block-switcher/index.js.map +1 -1
  382. package/build-module/components/block-toolbar/index.js +89 -27
  383. package/build-module/components/block-toolbar/index.js.map +1 -1
  384. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +41 -0
  385. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  386. package/build-module/components/block-tools/block-toolbar-popover.js +74 -0
  387. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -0
  388. package/build-module/components/block-tools/index.js +27 -24
  389. package/build-module/components/block-tools/index.js.map +1 -1
  390. package/build-module/components/block-types-list/index.native.js +2 -1
  391. package/build-module/components/block-types-list/index.native.js.map +1 -1
  392. package/build-module/components/block-variation-picker/index.native.js +2 -1
  393. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  394. package/build-module/components/block-variation-transforms/index.js +30 -3
  395. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  396. package/build-module/components/border-radius-control/linked-button.js +1 -1
  397. package/build-module/components/border-radius-control/linked-button.js.map +1 -1
  398. package/build-module/components/colors/utils.js +9 -1
  399. package/build-module/components/colors/utils.js.map +1 -1
  400. package/build-module/components/colors/with-colors.js +5 -1
  401. package/build-module/components/colors/with-colors.js.map +1 -1
  402. package/build-module/components/colors-gradients/control.js +29 -18
  403. package/build-module/components/colors-gradients/control.js.map +1 -1
  404. package/build-module/components/duotone-control/index.js +1 -4
  405. package/build-module/components/duotone-control/index.js.map +1 -1
  406. package/build-module/components/font-sizes/utils.js +9 -1
  407. package/build-module/components/font-sizes/utils.js.map +1 -1
  408. package/build-module/components/global-styles/border-panel.js +3 -2
  409. package/build-module/components/global-styles/border-panel.js.map +1 -1
  410. package/build-module/components/global-styles/color-panel.js +26 -23
  411. package/build-module/components/global-styles/color-panel.js.map +1 -1
  412. package/build-module/components/global-styles/dimensions-panel.js +5 -4
  413. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  414. package/build-module/components/global-styles/effects-panel.js +3 -2
  415. package/build-module/components/global-styles/effects-panel.js.map +1 -1
  416. package/build-module/components/global-styles/filters-panel.js +8 -5
  417. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  418. package/build-module/components/global-styles/get-global-styles-changes.js +184 -0
  419. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -0
  420. package/build-module/components/global-styles/hooks.js +3 -2
  421. package/build-module/components/global-styles/hooks.js.map +1 -1
  422. package/build-module/components/global-styles/image-settings-panel.js +7 -1
  423. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  424. package/build-module/components/global-styles/index.js +1 -0
  425. package/build-module/components/global-styles/index.js.map +1 -1
  426. package/build-module/components/global-styles/typography-panel.js +45 -38
  427. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  428. package/build-module/components/global-styles/use-global-styles-output.js +15 -1
  429. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  430. package/build-module/components/global-styles/utils.js +7 -0
  431. package/build-module/components/global-styles/utils.js.map +1 -1
  432. package/build-module/components/height-control/index.js +6 -2
  433. package/build-module/components/height-control/index.js.map +1 -1
  434. package/build-module/components/image-link-destinations/index.native.js +109 -0
  435. package/build-module/components/image-link-destinations/index.native.js.map +1 -0
  436. package/build-module/components/image-size-control/index.js +2 -2
  437. package/build-module/components/image-size-control/index.js.map +1 -1
  438. package/build-module/components/index.native.js +3 -1
  439. package/build-module/components/index.native.js.map +1 -1
  440. package/build-module/components/inner-blocks/index.js +62 -23
  441. package/build-module/components/inner-blocks/index.js.map +1 -1
  442. package/build-module/components/inner-blocks/index.native.js +18 -4
  443. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  444. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +5 -6
  445. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  446. package/build-module/components/inner-blocks/use-nested-settings-update.js +6 -10
  447. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  448. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  449. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  450. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +11 -10
  451. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  452. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +11 -11
  453. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  454. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +11 -11
  455. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  456. package/build-module/components/inserter/block-patterns-tab/utils.js +7 -11
  457. package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
  458. package/build-module/components/inserter/hooks/use-block-types-state.js +4 -14
  459. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  460. package/build-module/components/inserter/hooks/use-patterns-state.js +2 -2
  461. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  462. package/build-module/components/inserter/index.js +1 -2
  463. package/build-module/components/inserter/index.js.map +1 -1
  464. package/build-module/components/inserter/library.js +3 -7
  465. package/build-module/components/inserter/library.js.map +1 -1
  466. package/build-module/components/inserter/media-tab/media-panel.js +1 -1
  467. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  468. package/build-module/components/inserter/menu.js +26 -33
  469. package/build-module/components/inserter/menu.js.map +1 -1
  470. package/build-module/components/inserter/preview-panel.js +2 -2
  471. package/build-module/components/inserter/preview-panel.js.map +1 -1
  472. package/build-module/components/inserter/tabs.js +22 -22
  473. package/build-module/components/inserter/tabs.js.map +1 -1
  474. package/build-module/components/inserter-button/index.native.js +89 -0
  475. package/build-module/components/inserter-button/index.native.js.map +1 -0
  476. package/build-module/components/inserter-button/sparkles.js +15 -0
  477. package/build-module/components/inserter-button/sparkles.js.map +1 -0
  478. package/build-module/components/inserter-draggable-blocks/index.js +9 -5
  479. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  480. package/build-module/components/inserter-list-item/index.js +2 -4
  481. package/build-module/components/inserter-list-item/index.js.map +1 -1
  482. package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -1
  483. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  484. package/build-module/components/inspector-controls/fill.js +3 -3
  485. package/build-module/components/inspector-controls/fill.js.map +1 -1
  486. package/build-module/components/inspector-controls/fill.native.js +3 -3
  487. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  488. package/build-module/components/inspector-controls-tabs/index.js +35 -24
  489. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  490. package/build-module/components/list-view/block-select-button.js +4 -0
  491. package/build-module/components/list-view/block-select-button.js.map +1 -1
  492. package/build-module/components/list-view/block.js +58 -4
  493. package/build-module/components/list-view/block.js.map +1 -1
  494. package/build-module/components/media-upload-progress/constants.js +7 -0
  495. package/build-module/components/media-upload-progress/constants.js.map +1 -0
  496. package/build-module/components/media-upload-progress/index.native.js +37 -8
  497. package/build-module/components/media-upload-progress/index.native.js.map +1 -1
  498. package/build-module/components/navigable-toolbar/index.js +11 -16
  499. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  500. package/build-module/components/plain-text/index.native.js +6 -1
  501. package/build-module/components/plain-text/index.native.js.map +1 -1
  502. package/build-module/components/preview-options/index.js +6 -62
  503. package/build-module/components/preview-options/index.js.map +1 -1
  504. package/build-module/components/provider/index.js +3 -1
  505. package/build-module/components/provider/index.js.map +1 -1
  506. package/build-module/components/provider/use-block-sync.js +7 -1
  507. package/build-module/components/provider/use-block-sync.js.map +1 -1
  508. package/build-module/components/rich-text/content.js +25 -21
  509. package/build-module/components/rich-text/content.js.map +1 -1
  510. package/build-module/components/rich-text/get-rich-text-values.js +2 -1
  511. package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
  512. package/build-module/components/rich-text/index.js +21 -39
  513. package/build-module/components/rich-text/index.js.map +1 -1
  514. package/build-module/components/rich-text/index.native.js +10 -18
  515. package/build-module/components/rich-text/index.native.js.map +1 -1
  516. package/build-module/components/rich-text/native/get-format-colors.native.js +22 -24
  517. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  518. package/build-module/components/rich-text/native/index.native.js +22 -56
  519. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  520. package/build-module/components/rich-text/use-input-rules.js +7 -3
  521. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  522. package/build-module/components/rich-text/use-mark-persistent.js +1 -1
  523. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  524. package/build-module/components/rich-text/with-deprecations.js +42 -0
  525. package/build-module/components/rich-text/with-deprecations.js.map +1 -0
  526. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  527. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  528. package/build-module/components/url-input/index.js +9 -6
  529. package/build-module/components/url-input/index.js.map +1 -1
  530. package/build-module/components/use-block-commands/index.js +14 -18
  531. package/build-module/components/use-block-commands/index.js.map +1 -1
  532. package/build-module/components/use-block-drop-zone/index.js +107 -18
  533. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  534. package/build-module/components/use-moving-animation/index.js +102 -94
  535. package/build-module/components/use-moving-animation/index.js.map +1 -1
  536. package/build-module/components/use-on-block-drop/index.js +9 -12
  537. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  538. package/build-module/components/use-resize-canvas/index.js +4 -1
  539. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  540. package/build-module/components/use-settings/index.js +13 -1
  541. package/build-module/components/use-settings/index.js.map +1 -1
  542. package/build-module/components/writing-flow/index.js +0 -1
  543. package/build-module/components/writing-flow/index.js.map +1 -1
  544. package/build-module/components/writing-flow/use-drag-selection.js +15 -4
  545. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  546. package/build-module/components/writing-flow/use-selection-observer.js +73 -27
  547. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  548. package/build-module/components/writing-flow/use-tab-nav.js +7 -4
  549. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  550. package/build-module/hooks/align.js +20 -67
  551. package/build-module/hooks/align.js.map +1 -1
  552. package/build-module/hooks/align.native.js +1 -0
  553. package/build-module/hooks/align.native.js.map +1 -1
  554. package/build-module/hooks/anchor.js +12 -27
  555. package/build-module/hooks/anchor.js.map +1 -1
  556. package/build-module/hooks/aria-label.js +7 -1
  557. package/build-module/hooks/aria-label.js.map +1 -1
  558. package/build-module/hooks/background.js +197 -37
  559. package/build-module/hooks/background.js.map +1 -1
  560. package/build-module/hooks/block-hooks.js +22 -30
  561. package/build-module/hooks/block-hooks.js.map +1 -1
  562. package/build-module/hooks/block-renaming.js +17 -21
  563. package/build-module/hooks/block-renaming.js.map +1 -1
  564. package/build-module/hooks/border.js +52 -79
  565. package/build-module/hooks/border.js.map +1 -1
  566. package/build-module/hooks/color.js +78 -88
  567. package/build-module/hooks/color.js.map +1 -1
  568. package/build-module/hooks/content-lock-ui.js +27 -27
  569. package/build-module/hooks/content-lock-ui.js.map +1 -1
  570. package/build-module/hooks/custom-class-name.js +12 -28
  571. package/build-module/hooks/custom-class-name.js.map +1 -1
  572. package/build-module/hooks/custom-class-name.native.js +7 -1
  573. package/build-module/hooks/custom-class-name.native.js.map +1 -1
  574. package/build-module/hooks/dimensions.js +15 -16
  575. package/build-module/hooks/dimensions.js.map +1 -1
  576. package/build-module/hooks/duotone.js +30 -61
  577. package/build-module/hooks/duotone.js.map +1 -1
  578. package/build-module/hooks/font-family.js +20 -25
  579. package/build-module/hooks/font-family.js.map +1 -1
  580. package/build-module/hooks/font-size.js +50 -120
  581. package/build-module/hooks/font-size.js.map +1 -1
  582. package/build-module/hooks/index.js +20 -16
  583. package/build-module/hooks/index.js.map +1 -1
  584. package/build-module/hooks/index.native.js +10 -6
  585. package/build-module/hooks/index.native.js.map +1 -1
  586. package/build-module/hooks/layout-child.js +60 -0
  587. package/build-module/hooks/layout-child.js.map +1 -0
  588. package/build-module/hooks/layout.js +21 -100
  589. package/build-module/hooks/layout.js.map +1 -1
  590. package/build-module/hooks/padding.js +2 -2
  591. package/build-module/hooks/padding.js.map +1 -1
  592. package/build-module/hooks/position.js +38 -59
  593. package/build-module/hooks/position.js.map +1 -1
  594. package/build-module/hooks/style.js +52 -85
  595. package/build-module/hooks/style.js.map +1 -1
  596. package/build-module/hooks/typography.js +26 -11
  597. package/build-module/hooks/typography.js.map +1 -1
  598. package/build-module/hooks/typography.native.js +43 -17
  599. package/build-module/hooks/typography.native.js.map +1 -1
  600. package/build-module/hooks/use-typography-props.js +9 -1
  601. package/build-module/hooks/use-typography-props.js.map +1 -1
  602. package/build-module/hooks/utils.js +194 -9
  603. package/build-module/hooks/utils.js.map +1 -1
  604. package/build-module/private-apis.js +2 -6
  605. package/build-module/private-apis.js.map +1 -1
  606. package/build-module/private-apis.native.js +0 -2
  607. package/build-module/private-apis.native.js.map +1 -1
  608. package/build-module/store/actions.js +0 -15
  609. package/build-module/store/actions.js.map +1 -1
  610. package/build-module/store/private-actions.js +52 -0
  611. package/build-module/store/private-actions.js.map +1 -1
  612. package/build-module/store/private-selectors.js +44 -1
  613. package/build-module/store/private-selectors.js.map +1 -1
  614. package/build-module/store/reducer.js +18 -2
  615. package/build-module/store/reducer.js.map +1 -1
  616. package/build-module/store/selectors.js +4 -65
  617. package/build-module/store/selectors.js.map +1 -1
  618. package/build-module/store/undo-ignore.js +5 -0
  619. package/build-module/store/undo-ignore.js.map +1 -0
  620. package/build-module/store/utils.js +56 -0
  621. package/build-module/store/utils.js.map +1 -0
  622. package/build-module/utils/get-px-from-css-unit.js +9 -0
  623. package/build-module/utils/get-px-from-css-unit.js.map +1 -0
  624. package/build-module/utils/index.js +1 -1
  625. package/build-module/utils/index.js.map +1 -1
  626. package/build-module/utils/object.js +37 -97
  627. package/build-module/utils/object.js.map +1 -1
  628. package/build-module/utils/selection.js +9 -1
  629. package/build-module/utils/selection.js.map +1 -1
  630. package/build-module/utils/use-can-block-toolbar-be-focused.js +40 -0
  631. package/build-module/utils/use-can-block-toolbar-be-focused.js.map +1 -0
  632. package/build-style/content-rtl.css +7 -6
  633. package/build-style/content.css +7 -6
  634. package/build-style/style-rtl.css +164 -301
  635. package/build-style/style.css +164 -301
  636. package/package.json +31 -31
  637. package/src/components/alignment-control/README.md +0 -5
  638. package/src/components/block-alignment-control/README.md +0 -5
  639. package/src/components/block-alignment-matrix-control/README.md +0 -10
  640. package/src/components/block-breadcrumb/README.md +0 -5
  641. package/src/components/block-canvas/index.js +29 -17
  642. package/src/components/block-canvas/style.scss +6 -0
  643. package/src/components/block-caption/README.md +2 -7
  644. package/src/components/block-card/README.md +0 -5
  645. package/src/components/block-card/index.js +6 -4
  646. package/src/components/block-card/style.scss +7 -3
  647. package/src/components/block-controls/hook.js +8 -30
  648. package/src/components/block-controls/test/index.js +3 -3
  649. package/src/components/block-draggable/draggable-chip.js +11 -1
  650. package/src/components/block-draggable/index.js +116 -4
  651. package/src/components/block-draggable/index.native.js +0 -5
  652. package/src/components/block-draggable/style.scss +35 -0
  653. package/src/components/block-draggable/test/helpers.native.js +8 -7
  654. package/src/components/block-draggable/use-scroll-when-dragging.native.js +1 -1
  655. package/src/components/block-edit/context.js +3 -0
  656. package/src/components/block-edit/index.js +36 -10
  657. package/src/components/block-editing-mode/index.js +3 -3
  658. package/src/components/block-icon/README.md +0 -5
  659. package/src/components/block-info-slot-fill/index.js +6 -3
  660. package/src/components/block-inspector/README.md +0 -5
  661. package/src/components/block-inspector/index.js +3 -1
  662. package/src/components/block-inspector/style.scss +0 -4
  663. package/src/components/block-list/block-list-item-cell.native.js +5 -1
  664. package/src/components/block-list/block.js +309 -104
  665. package/src/components/block-list/block.native.js +69 -21
  666. package/src/components/block-list/content.scss +14 -10
  667. package/src/components/block-list/index.native.js +3 -5
  668. package/src/components/block-list/{block-list-block-context.js → private-block-context.js} +1 -1
  669. package/src/components/block-list/use-block-props/index.js +43 -86
  670. package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -34
  671. package/src/components/block-list/use-block-props/use-is-hovered.js +2 -13
  672. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +1 -5
  673. package/src/components/block-list/use-in-between-inserter.js +4 -1
  674. package/src/components/block-list/use-scroll-upon-insertion.native.js +52 -0
  675. package/src/components/block-lock/toolbar.js +23 -34
  676. package/src/components/block-mover/README.md +0 -5
  677. package/src/components/block-mover/index.js +1 -1
  678. package/src/components/block-parent-selector/README.md +0 -5
  679. package/src/components/block-patterns-list/README.md +0 -5
  680. package/src/components/block-patterns-list/index.js +9 -6
  681. package/src/components/block-removal-warning-modal/index.js +7 -14
  682. package/src/components/block-rename/modal.js +7 -1
  683. package/src/components/block-settings/container.native.js +3 -5
  684. package/src/components/block-styles/index.js +1 -1
  685. package/src/components/block-styles/index.native.js +4 -2
  686. package/src/components/block-styles/style.scss +0 -11
  687. package/src/components/block-switcher/index.js +49 -59
  688. package/src/components/block-switcher/test/__snapshots__/index.js.snap +3 -1
  689. package/src/components/block-toolbar/README.md +0 -5
  690. package/src/components/block-toolbar/index.js +179 -95
  691. package/src/components/block-toolbar/style.scss +50 -66
  692. package/src/components/block-tools/block-toolbar-breadcrumb.js +46 -0
  693. package/src/components/block-tools/block-toolbar-popover.js +84 -0
  694. package/src/components/block-tools/index.js +42 -29
  695. package/src/components/block-tools/style.scss +60 -172
  696. package/src/components/block-types-list/README.md +0 -5
  697. package/src/components/block-types-list/index.native.js +2 -1
  698. package/src/components/block-variation-picker/README.md +0 -5
  699. package/src/components/block-variation-picker/index.native.js +1 -1
  700. package/src/components/block-variation-transforms/README.md +0 -5
  701. package/src/components/block-variation-transforms/index.js +49 -3
  702. package/src/components/border-radius-control/linked-button.js +1 -1
  703. package/src/components/caption/README.md +0 -5
  704. package/src/components/color-palette/test/__snapshots__/control.js.snap +0 -1
  705. package/src/components/colors/utils.js +8 -1
  706. package/src/components/colors/with-colors.js +3 -1
  707. package/src/components/colors-gradients/control.js +49 -30
  708. package/src/components/colors-gradients/style.scss +0 -7
  709. package/src/components/contrast-checker/README.md +0 -4
  710. package/src/components/copy-handler/README.md +0 -10
  711. package/src/components/duotone-control/index.js +2 -5
  712. package/src/components/duotone-control/style.scss +1 -6
  713. package/src/components/font-sizes/utils.js +7 -1
  714. package/src/components/global-styles/border-panel.js +2 -1
  715. package/src/components/global-styles/color-panel.js +36 -26
  716. package/src/components/global-styles/dimensions-panel.js +4 -3
  717. package/src/components/global-styles/effects-panel.js +2 -1
  718. package/src/components/global-styles/filters-panel.js +6 -5
  719. package/src/components/global-styles/get-global-styles-changes.js +210 -0
  720. package/src/components/global-styles/hooks.js +5 -0
  721. package/src/components/global-styles/image-settings-panel.js +6 -0
  722. package/src/components/global-styles/index.js +1 -0
  723. package/src/components/global-styles/test/get-global-styles-changes.js +234 -0
  724. package/src/components/global-styles/typography-panel.js +60 -47
  725. package/src/components/global-styles/use-global-styles-output.js +9 -5
  726. package/src/components/global-styles/utils.js +7 -0
  727. package/src/components/height-control/README.md +2 -7
  728. package/src/components/height-control/index.js +4 -0
  729. package/src/components/image-link-destinations/index.native.js +152 -0
  730. package/src/components/image-link-destinations/style.native.scss +16 -0
  731. package/src/components/image-size-control/index.js +5 -2
  732. package/src/components/index.native.js +3 -2
  733. package/src/components/inner-blocks/README.md +13 -2
  734. package/src/components/inner-blocks/index.js +68 -29
  735. package/src/components/inner-blocks/index.native.js +19 -7
  736. package/src/components/inner-blocks/use-inner-block-template-sync.js +5 -7
  737. package/src/components/inner-blocks/use-nested-settings-update.js +6 -13
  738. package/src/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  739. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +15 -15
  740. package/src/components/inserter/block-patterns-tab/patterns-filter.js +15 -13
  741. package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +15 -18
  742. package/src/components/inserter/block-patterns-tab/utils.js +11 -12
  743. package/src/components/inserter/hooks/use-block-types-state.js +9 -11
  744. package/src/components/inserter/hooks/use-patterns-state.js +2 -2
  745. package/src/components/inserter/index.js +0 -1
  746. package/src/components/inserter/library.js +2 -8
  747. package/src/components/inserter/media-tab/media-panel.js +1 -1
  748. package/src/components/inserter/menu.js +26 -36
  749. package/src/components/inserter/preview-panel.js +2 -2
  750. package/src/components/inserter/style.scss +21 -21
  751. package/src/components/inserter/tabs.js +34 -25
  752. package/src/components/inserter-button/README.md +62 -0
  753. package/src/components/inserter-button/index.native.js +116 -0
  754. package/src/components/inserter-button/sparkles.js +15 -0
  755. package/src/components/inserter-button/style.native.scss +72 -0
  756. package/src/components/inserter-draggable-blocks/index.js +18 -5
  757. package/src/components/inserter-list-item/index.js +6 -6
  758. package/src/components/inspector-controls/block-support-tools-panel.js +2 -0
  759. package/src/components/inspector-controls/fill.js +6 -3
  760. package/src/components/inspector-controls/fill.native.js +6 -3
  761. package/src/components/inspector-controls-tabs/index.js +39 -28
  762. package/src/components/inspector-controls-tabs/style.scss +3 -2
  763. package/src/components/letter-spacing-control/README.md +0 -5
  764. package/src/components/line-height-control/README.md +0 -5
  765. package/src/components/link-control/style.scss +1 -1
  766. package/src/components/link-control/test/index.js +1 -1
  767. package/src/components/list-view/README.md +0 -5
  768. package/src/components/list-view/block-select-button.js +4 -0
  769. package/src/components/list-view/block.js +73 -2
  770. package/src/components/list-view/style.scss +6 -0
  771. package/src/components/media-upload-progress/constants.js +6 -0
  772. package/src/components/media-upload-progress/index.native.js +66 -14
  773. package/src/components/media-upload-progress/test/index.native.js +2 -2
  774. package/src/components/multi-selection-inspector/README.md +0 -5
  775. package/src/components/navigable-toolbar/README.md +2 -0
  776. package/src/components/navigable-toolbar/index.js +15 -13
  777. package/src/components/plain-text/index.native.js +6 -1
  778. package/src/components/preview-options/index.js +6 -86
  779. package/src/components/provider/index.js +1 -1
  780. package/src/components/provider/test/use-block-sync.js +20 -17
  781. package/src/components/provider/use-block-sync.js +6 -0
  782. package/src/components/rich-text/content.js +27 -20
  783. package/src/components/rich-text/get-rich-text-values.js +6 -1
  784. package/src/components/rich-text/index.js +23 -52
  785. package/src/components/rich-text/index.native.js +8 -25
  786. package/src/components/rich-text/native/get-format-colors.native.js +33 -40
  787. package/src/components/rich-text/native/index.native.js +22 -71
  788. package/src/components/rich-text/native/test/__snapshots__/index.native.js.snap +3 -3
  789. package/src/components/rich-text/native/test/index.native.js +72 -5
  790. package/src/components/rich-text/use-input-rules.js +8 -3
  791. package/src/components/rich-text/use-mark-persistent.js +1 -2
  792. package/src/components/rich-text/with-deprecations.js +51 -0
  793. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  794. package/src/components/text-decoration-control/README.md +40 -0
  795. package/src/components/text-transform-control/README.md +0 -4
  796. package/src/components/ungroup-button/README.md +0 -5
  797. package/src/components/unit-control/README.md +0 -4
  798. package/src/components/url-input/index.js +11 -11
  799. package/src/components/use-block-commands/index.js +18 -21
  800. package/src/components/use-block-drop-zone/index.js +181 -30
  801. package/src/components/use-moving-animation/index.js +107 -103
  802. package/src/components/use-on-block-drop/index.js +9 -24
  803. package/src/components/use-on-block-drop/test/index.js +12 -26
  804. package/src/components/use-resize-canvas/README.md +3 -7
  805. package/src/components/use-resize-canvas/index.js +4 -1
  806. package/src/components/use-settings/README.md +0 -4
  807. package/src/components/use-settings/index.js +15 -1
  808. package/src/components/writing-flow/index.js +0 -1
  809. package/src/components/writing-flow/use-drag-selection.js +18 -4
  810. package/src/components/writing-flow/use-selection-observer.js +99 -37
  811. package/src/components/writing-flow/use-tab-nav.js +7 -7
  812. package/src/hooks/align.js +16 -81
  813. package/src/hooks/align.native.js +1 -0
  814. package/src/hooks/anchor.js +14 -38
  815. package/src/hooks/aria-label.js +8 -5
  816. package/src/hooks/background.js +269 -32
  817. package/src/hooks/block-hooks.js +22 -51
  818. package/src/hooks/block-renaming.js +23 -37
  819. package/src/hooks/border.js +62 -124
  820. package/src/hooks/color.js +111 -138
  821. package/src/hooks/content-lock-ui.js +110 -122
  822. package/src/hooks/custom-class-name.js +9 -45
  823. package/src/hooks/custom-class-name.native.js +8 -5
  824. package/src/hooks/dimensions.js +14 -16
  825. package/src/hooks/duotone.js +70 -127
  826. package/src/hooks/font-family.js +14 -36
  827. package/src/hooks/font-size.js +67 -168
  828. package/src/hooks/index.js +58 -16
  829. package/src/hooks/index.native.js +22 -6
  830. package/src/hooks/layout-child.js +53 -0
  831. package/src/hooks/layout.js +17 -103
  832. package/src/hooks/padding.js +2 -2
  833. package/src/hooks/position.js +50 -90
  834. package/src/hooks/style.js +118 -193
  835. package/src/hooks/test/align.js +1 -178
  836. package/src/hooks/test/anchor.js +4 -9
  837. package/src/hooks/test/custom-class-name.js +3 -8
  838. package/src/hooks/test/style.js +4 -14
  839. package/src/hooks/typography.js +14 -16
  840. package/src/hooks/typography.native.js +31 -33
  841. package/src/hooks/use-typography-props.js +7 -1
  842. package/src/hooks/utils.js +261 -10
  843. package/src/private-apis.js +2 -6
  844. package/src/private-apis.native.js +0 -2
  845. package/src/store/actions.js +0 -15
  846. package/src/store/private-actions.js +48 -0
  847. package/src/store/private-selectors.js +56 -0
  848. package/src/store/reducer.js +20 -1
  849. package/src/store/selectors.js +10 -82
  850. package/src/store/undo-ignore.js +4 -0
  851. package/src/store/utils.js +74 -0
  852. package/src/style.scss +1 -2
  853. package/src/utils/get-px-from-css-unit.js +8 -0
  854. package/src/utils/index.js +1 -1
  855. package/src/utils/object.js +34 -104
  856. package/src/utils/selection.js +9 -2
  857. package/src/utils/test/object.js +1 -96
  858. package/src/utils/use-can-block-toolbar-be-focused.js +48 -0
  859. package/build/components/block-list/block-list-block-context.js +0 -14
  860. package/build/components/block-list/block-list-block-context.js.map +0 -1
  861. package/build/components/block-list/use-block-props/use-block-class-names.js +0 -67
  862. package/build/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  863. package/build/components/block-list/use-block-props/use-block-custom-class-name.js +0 -46
  864. package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  865. package/build/components/block-list/use-block-props/use-block-default-class-name.js +0 -37
  866. package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  867. package/build/components/block-tools/back-compat.js +0 -45
  868. package/build/components/block-tools/back-compat.js.map +0 -1
  869. package/build/components/block-tools/block-contextual-toolbar.js +0 -91
  870. package/build/components/block-tools/block-contextual-toolbar.js.map +0 -1
  871. package/build/components/block-tools/selected-block-tools.js +0 -113
  872. package/build/components/block-tools/selected-block-tools.js.map +0 -1
  873. package/build/components/inserter/hooks/use-debounced-input.js +0 -22
  874. package/build/components/inserter/hooks/use-debounced-input.js.map +0 -1
  875. package/build/components/use-display-block-controls/index.js +0 -39
  876. package/build/components/use-display-block-controls/index.js.map +0 -1
  877. package/build/components/use-display-block-controls/index.native.js +0 -39
  878. package/build/components/use-display-block-controls/index.native.js.map +0 -1
  879. package/build/hooks/custom-fields.js +0 -120
  880. package/build/hooks/custom-fields.js.map +0 -1
  881. package/build/utils/parse-css-unit-to-px.js +0 -302
  882. package/build/utils/parse-css-unit-to-px.js.map +0 -1
  883. package/build/utils/use-should-contextual-toolbar-show.js +0 -63
  884. package/build/utils/use-should-contextual-toolbar-show.js.map +0 -1
  885. package/build-module/components/block-list/block-list-block-context.js +0 -6
  886. package/build-module/components/block-list/block-list-block-context.js.map +0 -1
  887. package/build-module/components/block-list/use-block-props/use-block-class-names.js +0 -60
  888. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  889. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +0 -40
  890. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  891. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +0 -31
  892. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  893. package/build-module/components/block-tools/back-compat.js +0 -35
  894. package/build-module/components/block-tools/back-compat.js.map +0 -1
  895. package/build-module/components/block-tools/block-contextual-toolbar.js +0 -83
  896. package/build-module/components/block-tools/block-contextual-toolbar.js.map +0 -1
  897. package/build-module/components/block-tools/selected-block-tools.js +0 -105
  898. package/build-module/components/block-tools/selected-block-tools.js.map +0 -1
  899. package/build-module/components/inserter/hooks/use-debounced-input.js +0 -15
  900. package/build-module/components/inserter/hooks/use-debounced-input.js.map +0 -1
  901. package/build-module/components/use-display-block-controls/index.js +0 -32
  902. package/build-module/components/use-display-block-controls/index.js.map +0 -1
  903. package/build-module/components/use-display-block-controls/index.native.js +0 -32
  904. package/build-module/components/use-display-block-controls/index.native.js.map +0 -1
  905. package/build-module/hooks/custom-fields.js +0 -118
  906. package/build-module/hooks/custom-fields.js.map +0 -1
  907. package/build-module/utils/parse-css-unit-to-px.js +0 -294
  908. package/build-module/utils/parse-css-unit-to-px.js.map +0 -1
  909. package/build-module/utils/use-should-contextual-toolbar-show.js +0 -57
  910. package/build-module/utils/use-should-contextual-toolbar-show.js.map +0 -1
  911. package/src/components/block-list/use-block-props/use-block-class-names.js +0 -66
  912. package/src/components/block-list/use-block-props/use-block-custom-class-name.js +0 -44
  913. package/src/components/block-list/use-block-props/use-block-default-class-name.js +0 -35
  914. package/src/components/block-parent-selector/style.scss +0 -11
  915. package/src/components/block-tools/back-compat.js +0 -35
  916. package/src/components/block-tools/block-contextual-toolbar.js +0 -100
  917. package/src/components/block-tools/selected-block-tools.js +0 -127
  918. package/src/components/inserter/hooks/use-debounced-input.js +0 -18
  919. package/src/components/preview-options/README.md +0 -94
  920. package/src/components/preview-options/style.scss +0 -64
  921. package/src/components/use-display-block-controls/index.js +0 -36
  922. package/src/components/use-display-block-controls/index.native.js +0 -37
  923. package/src/hooks/custom-fields.js +0 -142
  924. package/src/hooks/test/color.js +0 -112
  925. package/src/utils/parse-css-unit-to-px.js +0 -329
  926. package/src/utils/test/parse-css-unit-to-px.js +0 -172
  927. package/src/utils/use-should-contextual-toolbar-show.js +0 -85
@@ -1,10 +1,9 @@
1
- import { createElement, Fragment } from "react";
1
+ import { createElement } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
5
5
  import { addFilter } from '@wordpress/hooks';
6
6
  import { hasBlockSupport } from '@wordpress/blocks';
7
- import { createHigherOrderComponent } from '@wordpress/compose';
8
7
  import { __ } from '@wordpress/i18n';
9
8
  import { TextControl } from '@wordpress/components';
10
9
 
@@ -12,7 +11,6 @@ import { TextControl } from '@wordpress/components';
12
11
  * Internal dependencies
13
12
  */
14
13
  import { InspectorControls } from '../components';
15
- import { useBlockRename } from '../components/block-rename';
16
14
 
17
15
  /**
18
16
  * Filters registered block settings, adding an `__experimentalLabel` callback if one does not already exist.
@@ -46,35 +44,33 @@ export function addLabelCallback(settings) {
46
44
  }
47
45
  return settings;
48
46
  }
49
- export const withBlockRenameControl = createHigherOrderComponent(BlockEdit => props => {
50
- const {
51
- name,
52
- attributes,
53
- setAttributes,
54
- isSelected
55
- } = props;
56
- const {
57
- canRename
58
- } = useBlockRename(name);
59
- return createElement(Fragment, null, isSelected && canRename && createElement(InspectorControls, {
47
+ function BlockRenameControlPure({
48
+ metadata,
49
+ setAttributes
50
+ }) {
51
+ return createElement(InspectorControls, {
60
52
  group: "advanced"
61
53
  }, createElement(TextControl, {
62
54
  __nextHasNoMarginBottom: true,
55
+ __next40pxDefaultSize: true,
63
56
  label: __('Block name'),
64
- value: attributes?.metadata?.name || '',
57
+ value: metadata?.name || '',
65
58
  onChange: newName => {
66
59
  setAttributes({
67
60
  metadata: {
68
- ...attributes?.metadata,
61
+ ...metadata,
69
62
  name: newName
70
63
  }
71
64
  });
72
65
  }
73
- })), createElement(BlockEdit, {
74
- key: "edit",
75
- ...props
76
66
  }));
77
- }, 'withToolbarControls');
78
- addFilter('editor.BlockEdit', 'core/block-rename-ui/with-block-rename-control', withBlockRenameControl);
67
+ }
68
+ export default {
69
+ edit: BlockRenameControlPure,
70
+ attributeKeys: ['metadata'],
71
+ hasSupport(name) {
72
+ return hasBlockSupport(name, 'renaming', true);
73
+ }
74
+ };
79
75
  addFilter('blocks.registerBlockType', 'core/metadata/addLabelCallback', addLabelCallback);
80
76
  //# sourceMappingURL=block-renaming.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["addFilter","hasBlockSupport","createHigherOrderComponent","__","TextControl","InspectorControls","useBlockRename","addLabelCallback","settings","__experimentalLabel","supportsBlockNaming","attributes","context","metadata","name","withBlockRenameControl","BlockEdit","props","setAttributes","isSelected","canRename","createElement","Fragment","group","__nextHasNoMarginBottom","label","value","onChange","newName","key"],"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 { createHigherOrderComponent } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { TextControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { InspectorControls } from '../components';\nimport { useBlockRename } from '../components/block-rename';\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\nexport const withBlockRenameControl = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { name, attributes, setAttributes, isSelected } = props;\n\n\t\tconst { canRename } = useBlockRename( name );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ isSelected && canRename && (\n\t\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Block name' ) }\n\t\t\t\t\t\t\tvalue={ attributes?.metadata?.name || '' }\n\t\t\t\t\t\t\tonChange={ ( newName ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\t\t\t\t...attributes?.metadata,\n\t\t\t\t\t\t\t\t\t\tname: newName,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\t\t\t\t<BlockEdit key=\"edit\" { ...props } />\n\t\t\t</>\n\t\t);\n\t},\n\t'withToolbarControls'\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/block-rename-ui/with-block-rename-control',\n\twithBlockRenameControl\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/metadata/addLabelCallback',\n\taddLabelCallback\n);\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,0BAA0B,QAAQ,oBAAoB;AAC/D,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,QAAQ,uBAAuB;;AAEnD;AACA;AACA;AACA,SAASC,iBAAiB,QAAQ,eAAe;AACjD,SAASC,cAAc,QAAQ,4BAA4B;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAEC,QAAQ,EAAG;EAC5C;EACA,IAAKA,QAAQ,CAACC,mBAAmB,EAAG;IACnC,OAAOD,QAAQ;EAChB;EAEA,MAAME,mBAAmB,GAAGT,eAAe,CAC1CO,QAAQ,EACR,UAAU,EACV,IAAI,CAAC;EACN,CAAC;;EAED;EACA,IAAKE,mBAAmB,EAAG;IAC1BF,QAAQ,CAACC,mBAAmB,GAAG,CAAEE,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,OAAON,QAAQ;AAChB;AAEA,OAAO,MAAMO,sBAAsB,GAAGb,0BAA0B,CAC7Dc,SAAS,IAAQC,KAAK,IAAM;EAC7B,MAAM;IAAEH,IAAI;IAAEH,UAAU;IAAEO,aAAa;IAAEC;EAAW,CAAC,GAAGF,KAAK;EAE7D,MAAM;IAAEG;EAAU,CAAC,GAAGd,cAAc,CAAEQ,IAAK,CAAC;EAE5C,OACCO,aAAA,CAAAC,QAAA,QACGH,UAAU,IAAIC,SAAS,IACxBC,aAAA,CAAChB,iBAAiB;IAACkB,KAAK,EAAC;EAAU,GAClCF,aAAA,CAACjB,WAAW;IACXoB,uBAAuB;IACvBC,KAAK,EAAGtB,EAAE,CAAE,YAAa,CAAG;IAC5BuB,KAAK,EAAGf,UAAU,EAAEE,QAAQ,EAAEC,IAAI,IAAI,EAAI;IAC1Ca,QAAQ,EAAKC,OAAO,IAAM;MACzBV,aAAa,CAAE;QACdL,QAAQ,EAAE;UACT,GAAGF,UAAU,EAAEE,QAAQ;UACvBC,IAAI,EAAEc;QACP;MACD,CAAE,CAAC;IACJ;EAAG,CACH,CACiB,CACnB,EACDP,aAAA,CAACL,SAAS;IAACa,GAAG,EAAC,MAAM;IAAA,GAAMZ;EAAK,CAAI,CACnC,CAAC;AAEL,CAAC,EACD,qBACD,CAAC;AAEDjB,SAAS,CACR,kBAAkB,EAClB,gDAAgD,EAChDe,sBACD,CAAC;AAEDf,SAAS,CACR,0BAA0B,EAC1B,gCAAgC,EAChCO,gBACD,CAAC"}
1
+ {"version":3,"names":["addFilter","hasBlockSupport","__","TextControl","InspectorControls","addLabelCallback","settings","__experimentalLabel","supportsBlockNaming","attributes","context","metadata","name","BlockRenameControlPure","setAttributes","createElement","group","__nextHasNoMarginBottom","__next40pxDefaultSize","label","value","onChange","newName","edit","attributeKeys","hasSupport"],"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":";AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,QAAQ,uBAAuB;;AAEnD;AACA;AACA;AACA,SAASC,iBAAiB,QAAQ,eAAe;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAEC,QAAQ,EAAG;EAC5C;EACA,IAAKA,QAAQ,CAACC,mBAAmB,EAAG;IACnC,OAAOD,QAAQ;EAChB;EAEA,MAAME,mBAAmB,GAAGP,eAAe,CAC1CK,QAAQ,EACR,UAAU,EACV,IAAI,CAAC;EACN,CAAC;;EAED;EACA,IAAKE,mBAAmB,EAAG;IAC1BF,QAAQ,CAACC,mBAAmB,GAAG,CAAEE,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,OAAON,QAAQ;AAChB;AAEA,SAASO,sBAAsBA,CAAE;EAAEF,QAAQ;EAAEG;AAAc,CAAC,EAAG;EAC9D,OACCC,aAAA,CAACX,iBAAiB;IAACY,KAAK,EAAC;EAAU,GAClCD,aAAA,CAACZ,WAAW;IACXc,uBAAuB;IACvBC,qBAAqB;IACrBC,KAAK,EAAGjB,EAAE,CAAE,YAAa,CAAG;IAC5BkB,KAAK,EAAGT,QAAQ,EAAEC,IAAI,IAAI,EAAI;IAC9BS,QAAQ,EAAKC,OAAO,IAAM;MACzBR,aAAa,CAAE;QACdH,QAAQ,EAAE;UAAE,GAAGA,QAAQ;UAAEC,IAAI,EAAEU;QAAQ;MACxC,CAAE,CAAC;IACJ;EAAG,CACH,CACiB,CAAC;AAEtB;AAEA,eAAe;EACdC,IAAI,EAAEV,sBAAsB;EAC5BW,aAAa,EAAE,CAAE,UAAU,CAAE;EAC7BC,UAAUA,CAAEb,IAAI,EAAG;IAClB,OAAOX,eAAe,CAAEW,IAAI,EAAE,UAAU,EAAE,IAAK,CAAC;EACjD;AACD,CAAC;AAEDZ,SAAS,CACR,0BAA0B,EAC1B,gCAAgC,EAChCK,gBACD,CAAC"}
@@ -9,9 +9,9 @@ import classnames from 'classnames';
9
9
  */
10
10
  import { getBlockSupport } from '@wordpress/blocks';
11
11
  import { __experimentalHasSplitBorders as hasSplitBorders } from '@wordpress/components';
12
- import { createHigherOrderComponent } from '@wordpress/compose';
13
12
  import { Platform, useCallback, useMemo } from '@wordpress/element';
14
13
  import { addFilter } from '@wordpress/hooks';
14
+ import { useSelect } from '@wordpress/data';
15
15
 
16
16
  /**
17
17
  * Internal dependencies
@@ -19,8 +19,9 @@ import { addFilter } from '@wordpress/hooks';
19
19
  import { getColorClassName } from '../components/colors';
20
20
  import InspectorControls from '../components/inspector-controls';
21
21
  import useMultipleOriginColorsAndGradients from '../components/colors-gradients/use-multiple-origin-colors-and-gradients';
22
- import { cleanEmptyObject, shouldSkipSerialization, useBlockSettings } from './utils';
22
+ import { cleanEmptyObject, shouldSkipSerialization } from './utils';
23
23
  import { useHasBorderPanel, BorderPanel as StylesBorderPanel } from '../components/global-styles';
24
+ import { store as blockEditorStore } from '../store';
24
25
  export const BORDER_SUPPORT_KEY = '__experimentalBorder';
25
26
  const getColorByProperty = (colors, property, value) => {
26
27
  let matchedColor;
@@ -116,28 +117,40 @@ function BordersInspectorControl({
116
117
  resetAllFilter: attributesResetAllFilter
117
118
  }, children);
118
119
  }
119
- export function BorderPanel(props) {
120
- const {
121
- clientId,
122
- name,
123
- attributes,
124
- setAttributes
125
- } = props;
126
- const settings = useBlockSettings(name);
120
+ export function BorderPanel({
121
+ clientId,
122
+ name,
123
+ setAttributes,
124
+ settings
125
+ }) {
127
126
  const isEnabled = useHasBorderPanel(settings);
127
+ function selector(select) {
128
+ const {
129
+ style,
130
+ borderColor
131
+ } = select(blockEditorStore).getBlockAttributes(clientId) || {};
132
+ return {
133
+ style,
134
+ borderColor
135
+ };
136
+ }
137
+ const {
138
+ style,
139
+ borderColor
140
+ } = useSelect(selector, [clientId]);
128
141
  const value = useMemo(() => {
129
142
  return attributesToStyle({
130
- style: attributes.style,
131
- borderColor: attributes.borderColor
143
+ style,
144
+ borderColor
132
145
  });
133
- }, [attributes.style, attributes.borderColor]);
146
+ }, [style, borderColor]);
134
147
  const onChange = newStyle => {
135
148
  setAttributes(styleToAttributes(newStyle));
136
149
  };
137
150
  if (!isEnabled) {
138
151
  return null;
139
152
  }
140
- const defaultControls = getBlockSupport(props.name, [BORDER_SUPPORT_KEY, '__experimentalDefaultControls']);
153
+ const defaultControls = getBlockSupport(name, [BORDER_SUPPORT_KEY, '__experimentalDefaultControls']);
141
154
  return createElement(StylesBorderPanel, {
142
155
  as: BordersInspectorControl,
143
156
  panelId: clientId,
@@ -222,14 +235,14 @@ function addAttributes(settings) {
222
235
  /**
223
236
  * Override props assigned to save component to inject border color.
224
237
  *
225
- * @param {Object} props Additional props applied to save element.
226
- * @param {Object} blockType Block type definition.
227
- * @param {Object} attributes Block's attributes.
238
+ * @param {Object} props Additional props applied to save element.
239
+ * @param {Object|string} blockNameOrType Block type definition.
240
+ * @param {Object} attributes Block's attributes.
228
241
  *
229
242
  * @return {Object} Filtered props to apply to save element.
230
243
  */
231
- function addSaveProps(props, blockType, attributes) {
232
- if (!hasBorderSupport(blockType, 'color') || shouldSkipSerialization(blockType, BORDER_SUPPORT_KEY, 'color')) {
244
+ function addSaveProps(props, blockNameOrType, attributes) {
245
+ if (!hasBorderSupport(blockNameOrType, 'color') || shouldSkipSerialization(blockNameOrType, BORDER_SUPPORT_KEY, 'color')) {
233
246
  return props;
234
247
  }
235
248
  const borderClasses = getBorderClasses(attributes);
@@ -260,54 +273,16 @@ export function getBorderClasses(attributes) {
260
273
  [borderColorClass]: !!borderColorClass
261
274
  });
262
275
  }
263
-
264
- /**
265
- * Filters the registered block settings to apply border color styles and
266
- * classnames to the block edit wrapper.
267
- *
268
- * @param {Object} settings Original block settings.
269
- *
270
- * @return {Object} Filtered block settings.
271
- */
272
- function addEditProps(settings) {
273
- if (!hasBorderSupport(settings, 'color') || shouldSkipSerialization(settings, BORDER_SUPPORT_KEY, 'color')) {
274
- return settings;
275
- }
276
- const existingGetEditWrapperProps = settings.getEditWrapperProps;
277
- settings.getEditWrapperProps = attributes => {
278
- let props = {};
279
- if (existingGetEditWrapperProps) {
280
- props = existingGetEditWrapperProps(attributes);
281
- }
282
- return addSaveProps(props, settings, attributes);
283
- };
284
- return settings;
285
- }
286
-
287
- /**
288
- * This adds inline styles for color palette colors.
289
- * Ideally, this is not needed and themes should load their palettes on the editor.
290
- *
291
- * @param {Function} BlockListBlock Original component.
292
- *
293
- * @return {Function} Wrapped component.
294
- */
295
- export const withBorderColorPaletteStyles = createHigherOrderComponent(BlockListBlock => props => {
296
- const {
297
- name,
298
- attributes
299
- } = props;
300
- const {
301
- borderColor,
302
- style
303
- } = attributes;
276
+ function useBlockProps({
277
+ name,
278
+ borderColor,
279
+ style
280
+ }) {
304
281
  const {
305
282
  colors
306
283
  } = useMultipleOriginColorsAndGradients();
307
284
  if (!hasBorderSupport(name, 'color') || shouldSkipSerialization(name, BORDER_SUPPORT_KEY, 'color')) {
308
- return createElement(BlockListBlock, {
309
- ...props
310
- });
285
+ return {};
311
286
  }
312
287
  const {
313
288
  color: borderColorValue
@@ -345,22 +320,20 @@ export const withBorderColorPaletteStyles = createHigherOrderComponent(BlockList
345
320
  borderBottomColor: borderBottomColor || borderColorValue,
346
321
  borderLeftColor: borderLeftColor || borderColorValue
347
322
  };
348
- const cleanedExtraStyles = cleanEmptyObject(extraStyles) || {};
349
- let wrapperProps = props.wrapperProps;
350
- wrapperProps = {
351
- ...props.wrapperProps,
352
- style: {
353
- ...props.wrapperProps?.style,
354
- ...cleanedExtraStyles
355
- }
356
- };
357
- return createElement(BlockListBlock, {
358
- ...props,
359
- wrapperProps: wrapperProps
323
+ return addSaveProps({
324
+ style: cleanEmptyObject(extraStyles) || {}
325
+ }, name, {
326
+ borderColor,
327
+ style
360
328
  });
361
- }, 'withBorderColorPaletteStyles');
329
+ }
330
+ export default {
331
+ useBlockProps,
332
+ addSaveProps,
333
+ attributeKeys: ['borderColor', 'style'],
334
+ hasSupport(name) {
335
+ return hasBorderSupport(name, 'color');
336
+ }
337
+ };
362
338
  addFilter('blocks.registerBlockType', 'core/border/addAttributes', addAttributes);
363
- addFilter('blocks.getSaveContent.extraProps', 'core/border/addSaveProps', addSaveProps);
364
- addFilter('blocks.registerBlockType', 'core/border/addEditProps', addEditProps);
365
- addFilter('editor.BlockListBlock', 'core/border/with-border-color-palette-styles', withBorderColorPaletteStyles);
366
339
  //# sourceMappingURL=border.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","getBlockSupport","__experimentalHasSplitBorders","hasSplitBorders","createHigherOrderComponent","Platform","useCallback","useMemo","addFilter","getColorClassName","InspectorControls","useMultipleOriginColorsAndGradients","cleanEmptyObject","shouldSkipSerialization","useBlockSettings","useHasBorderPanel","BorderPanel","StylesBorderPanel","BORDER_SUPPORT_KEY","getColorByProperty","colors","property","value","matchedColor","some","origin","color","getMultiOriginColor","namedColor","customColor","colorObject","undefined","getColorSlugFromVariable","exec","styleToAttributes","style","border","borderColor","borderColorValue","borderColorSlug","startsWith","substring","length","updatedStyle","attributesToStyle","attributes","BordersInspectorControl","children","resetAllFilter","attributesResetAllFilter","existingStyle","createElement","group","props","clientId","name","setAttributes","settings","isEnabled","onChange","newStyle","defaultControls","as","panelId","hasBorderSupport","blockName","feature","OS","support","radius","width","removeBorderAttribute","attribute","addAttributes","type","addSaveProps","blockType","borderClasses","getBorderClasses","newClassName","className","borderColorClass","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","withBorderColorPaletteStyles","BlockListBlock","borderTopColor","top","borderRightColor","right","borderBottomColor","bottom","borderLeftColor","left","extraStyles","cleanedExtraStyles","wrapperProps"],"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 { createHigherOrderComponent } from '@wordpress/compose';\nimport { Platform, useCallback, useMemo } from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\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 {\n\tcleanEmptyObject,\n\tshouldSkipSerialization,\n\tuseBlockSettings,\n} from './utils';\nimport {\n\tuseHasBorderPanel,\n\tBorderPanel as StylesBorderPanel,\n} from '../components/global-styles';\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( props ) {\n\tconst { clientId, name, attributes, setAttributes } = props;\n\tconst settings = useBlockSettings( name );\n\tconst isEnabled = useHasBorderPanel( settings );\n\tconst value = useMemo( () => {\n\t\treturn attributesToStyle( {\n\t\t\tstyle: attributes.style,\n\t\t\tborderColor: attributes.borderColor,\n\t\t} );\n\t}, [ attributes.style, attributes.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( props.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} blockType 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, blockType, attributes ) {\n\tif (\n\t\t! hasBorderSupport( blockType, 'color' ) ||\n\t\tshouldSkipSerialization( blockType, 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\n/**\n * Filters the registered block settings to apply border color styles and\n * classnames to the block edit wrapper.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addEditProps( settings ) {\n\tif (\n\t\t! hasBorderSupport( settings, 'color' ) ||\n\t\tshouldSkipSerialization( settings, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn settings;\n\t}\n\n\tconst existingGetEditWrapperProps = settings.getEditWrapperProps;\n\tsettings.getEditWrapperProps = ( attributes ) => {\n\t\tlet props = {};\n\n\t\tif ( existingGetEditWrapperProps ) {\n\t\t\tprops = existingGetEditWrapperProps( attributes );\n\t\t}\n\n\t\treturn addSaveProps( props, settings, attributes );\n\t};\n\n\treturn settings;\n}\n\n/**\n * This adds inline styles for color palette colors.\n * Ideally, this is not needed and themes should load their palettes on the editor.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withBorderColorPaletteStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst { borderColor, style } = attributes;\n\t\tconst { colors } = useMultipleOriginColorsAndGradients();\n\n\t\tif (\n\t\t\t! hasBorderSupport( name, 'color' ) ||\n\t\t\tshouldSkipSerialization( name, BORDER_SUPPORT_KEY, 'color' )\n\t\t) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\n\t\tconst { color: borderColorValue } = getMultiOriginColor( {\n\t\t\tcolors,\n\t\t\tnamedColor: borderColor,\n\t\t} );\n\t\tconst { color: borderTopColor } = getMultiOriginColor( {\n\t\t\tcolors,\n\t\t\tnamedColor: getColorSlugFromVariable( style?.border?.top?.color ),\n\t\t} );\n\t\tconst { color: borderRightColor } = getMultiOriginColor( {\n\t\t\tcolors,\n\t\t\tnamedColor: getColorSlugFromVariable( style?.border?.right?.color ),\n\t\t} );\n\n\t\tconst { color: borderBottomColor } = getMultiOriginColor( {\n\t\t\tcolors,\n\t\t\tnamedColor: getColorSlugFromVariable(\n\t\t\t\tstyle?.border?.bottom?.color\n\t\t\t),\n\t\t} );\n\t\tconst { color: borderLeftColor } = getMultiOriginColor( {\n\t\t\tcolors,\n\t\t\tnamedColor: getColorSlugFromVariable( style?.border?.left?.color ),\n\t\t} );\n\n\t\tconst extraStyles = {\n\t\t\tborderTopColor: borderTopColor || borderColorValue,\n\t\t\tborderRightColor: borderRightColor || borderColorValue,\n\t\t\tborderBottomColor: borderBottomColor || borderColorValue,\n\t\t\tborderLeftColor: borderLeftColor || borderColorValue,\n\t\t};\n\t\tconst cleanedExtraStyles = cleanEmptyObject( extraStyles ) || {};\n\n\t\tlet wrapperProps = props.wrapperProps;\n\t\twrapperProps = {\n\t\t\t...props.wrapperProps,\n\t\t\tstyle: {\n\t\t\t\t...props.wrapperProps?.style,\n\t\t\t\t...cleanedExtraStyles,\n\t\t\t},\n\t\t};\n\n\t\treturn <BlockListBlock { ...props } wrapperProps={ wrapperProps } />;\n\t},\n\t'withBorderColorPaletteStyles'\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/border/addAttributes',\n\taddAttributes\n);\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/border/addSaveProps',\n\taddSaveProps\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/border/addEditProps',\n\taddEditProps\n);\n\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/border/with-border-color-palette-styles',\n\twithBorderColorPaletteStyles\n);\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","getBlockSupport","__experimentalHasSplitBorders","hasSplitBorders","Platform","useCallback","useMemo","addFilter","useSelect","getColorClassName","InspectorControls","useMultipleOriginColorsAndGradients","cleanEmptyObject","shouldSkipSerialization","useHasBorderPanel","BorderPanel","StylesBorderPanel","store","blockEditorStore","BORDER_SUPPORT_KEY","getColorByProperty","colors","property","value","matchedColor","some","origin","color","getMultiOriginColor","namedColor","customColor","colorObject","undefined","getColorSlugFromVariable","exec","styleToAttributes","style","border","borderColor","borderColorValue","borderColorSlug","startsWith","substring","length","updatedStyle","attributesToStyle","attributes","BordersInspectorControl","children","resetAllFilter","attributesResetAllFilter","existingStyle","createElement","group","clientId","name","setAttributes","settings","isEnabled","selector","select","getBlockAttributes","onChange","newStyle","defaultControls","as","panelId","hasBorderSupport","blockName","feature","OS","support","radius","width","removeBorderAttribute","attribute","addAttributes","type","addSaveProps","props","blockNameOrType","borderClasses","getBorderClasses","newClassName","className","borderColorClass","useBlockProps","borderTopColor","top","borderRightColor","right","borderBottomColor","bottom","borderLeftColor","left","extraStyles","attributeKeys","hasSupport"],"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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"}
@@ -10,21 +10,23 @@ import classnames from 'classnames';
10
10
  import { addFilter } from '@wordpress/hooks';
11
11
  import { getBlockSupport } from '@wordpress/blocks';
12
12
  import { useMemo, Platform, useCallback } from '@wordpress/element';
13
- import { createHigherOrderComponent } from '@wordpress/compose';
13
+ import { useSelect } from '@wordpress/data';
14
14
 
15
15
  /**
16
16
  * Internal dependencies
17
17
  */
18
18
  import { getColorClassName, getColorObjectByAttributeValues } from '../components/colors';
19
19
  import { __experimentalGetGradientClass } from '../components/gradients';
20
- import { cleanEmptyObject, transformStyles, shouldSkipSerialization, useBlockSettings } from './utils';
20
+ import { cleanEmptyObject, transformStyles, shouldSkipSerialization } from './utils';
21
+ import { getBackgroundImageClasses } from './background';
21
22
  import { useSettings } from '../components/use-settings';
22
23
  import InspectorControls from '../components/inspector-controls';
23
24
  import { useHasColorPanel, default as StylesColorPanel } from '../components/global-styles/color-panel';
24
25
  import BlockColorContrastChecker from './contrast-checker';
26
+ import { store as blockEditorStore } from '../store';
25
27
  export const COLOR_SUPPORT_KEY = 'color';
26
- const hasColorSupport = blockType => {
27
- const colorSupport = getBlockSupport(blockType, COLOR_SUPPORT_KEY);
28
+ const hasColorSupport = blockNameOrType => {
29
+ const colorSupport = getBlockSupport(blockNameOrType, COLOR_SUPPORT_KEY);
28
30
  return colorSupport && (colorSupport.link === true || colorSupport.gradient === true || colorSupport.background !== false || colorSupport.text !== false);
29
31
  };
30
32
  const hasLinkColorSupport = blockType => {
@@ -34,8 +36,8 @@ const hasLinkColorSupport = blockType => {
34
36
  const colorSupport = getBlockSupport(blockType, COLOR_SUPPORT_KEY);
35
37
  return colorSupport !== null && typeof colorSupport === 'object' && !!colorSupport.link;
36
38
  };
37
- const hasGradientSupport = blockType => {
38
- const colorSupport = getBlockSupport(blockType, COLOR_SUPPORT_KEY);
39
+ const hasGradientSupport = blockNameOrType => {
40
+ const colorSupport = getBlockSupport(blockNameOrType, COLOR_SUPPORT_KEY);
39
41
  return colorSupport !== null && typeof colorSupport === 'object' && !!colorSupport.gradients;
40
42
  };
41
43
  const hasBackgroundColorSupport = blockType => {
@@ -88,17 +90,17 @@ function addAttributes(settings) {
88
90
  /**
89
91
  * Override props assigned to save component to inject colors classnames.
90
92
  *
91
- * @param {Object} props Additional props applied to save element.
92
- * @param {Object} blockType Block type.
93
- * @param {Object} attributes Block attributes.
93
+ * @param {Object} props Additional props applied to save element.
94
+ * @param {Object|string} blockNameOrType Block type.
95
+ * @param {Object} attributes Block attributes.
94
96
  *
95
97
  * @return {Object} Filtered props applied to save element.
96
98
  */
97
- export function addSaveProps(props, blockType, attributes) {
98
- if (!hasColorSupport(blockType) || shouldSkipSerialization(blockType, COLOR_SUPPORT_KEY)) {
99
+ export function addSaveProps(props, blockNameOrType, attributes) {
100
+ if (!hasColorSupport(blockNameOrType) || shouldSkipSerialization(blockNameOrType, COLOR_SUPPORT_KEY)) {
99
101
  return props;
100
102
  }
101
- const hasGradient = hasGradientSupport(blockType);
103
+ const hasGradient = hasGradientSupport(blockNameOrType);
102
104
 
103
105
  // I'd have preferred to avoid the "style" attribute usage here
104
106
  const {
@@ -107,7 +109,7 @@ export function addSaveProps(props, blockType, attributes) {
107
109
  gradient,
108
110
  style
109
111
  } = attributes;
110
- const shouldSerialize = feature => !shouldSkipSerialization(blockType, COLOR_SUPPORT_KEY, feature);
112
+ const shouldSerialize = feature => !shouldSkipSerialization(blockNameOrType, COLOR_SUPPORT_KEY, feature);
111
113
 
112
114
  // Primary color classes must come before the `has-text-color`,
113
115
  // `has-background` and `has-link-color` classes to maintain backwards
@@ -127,29 +129,6 @@ export function addSaveProps(props, blockType, attributes) {
127
129
  props.className = newClassName ? newClassName : undefined;
128
130
  return props;
129
131
  }
130
-
131
- /**
132
- * Filters registered block settings to extend the block edit wrapper
133
- * to apply the desired styles and classnames properly.
134
- *
135
- * @param {Object} settings Original block settings.
136
- *
137
- * @return {Object} Filtered block settings.
138
- */
139
- export function addEditProps(settings) {
140
- if (!hasColorSupport(settings) || shouldSkipSerialization(settings, COLOR_SUPPORT_KEY)) {
141
- return settings;
142
- }
143
- const existingGetEditWrapperProps = settings.getEditWrapperProps;
144
- settings.getEditWrapperProps = attributes => {
145
- let props = {};
146
- if (existingGetEditWrapperProps) {
147
- props = existingGetEditWrapperProps(attributes);
148
- }
149
- return addSaveProps(props, settings, attributes);
150
- };
151
- return settings;
152
- }
153
132
  function styleToAttributes(style) {
154
133
  const textColorValue = style?.color?.text;
155
134
  const textColorSlug = textColorValue?.startsWith('var:preset|color|') ? textColorValue.substring('var:preset|color|'.length) : undefined;
@@ -201,35 +180,53 @@ function ColorInspectorControl({
201
180
  resetAllFilter: attributesResetAllFilter
202
181
  }, children);
203
182
  }
204
- export function ColorEdit(props) {
205
- const {
206
- clientId,
207
- name,
208
- attributes,
209
- setAttributes
210
- } = props;
211
- const settings = useBlockSettings(name);
183
+ export function ColorEdit({
184
+ clientId,
185
+ name,
186
+ setAttributes,
187
+ settings
188
+ }) {
212
189
  const isEnabled = useHasColorPanel(settings);
190
+ function selector(select) {
191
+ const {
192
+ style,
193
+ textColor,
194
+ backgroundColor,
195
+ gradient
196
+ } = select(blockEditorStore).getBlockAttributes(clientId) || {};
197
+ return {
198
+ style,
199
+ textColor,
200
+ backgroundColor,
201
+ gradient
202
+ };
203
+ }
204
+ const {
205
+ style,
206
+ textColor,
207
+ backgroundColor,
208
+ gradient
209
+ } = useSelect(selector, [clientId]);
213
210
  const value = useMemo(() => {
214
211
  return attributesToStyle({
215
- style: attributes.style,
216
- textColor: attributes.textColor,
217
- backgroundColor: attributes.backgroundColor,
218
- gradient: attributes.gradient
212
+ style,
213
+ textColor,
214
+ backgroundColor,
215
+ gradient
219
216
  });
220
- }, [attributes.style, attributes.textColor, attributes.backgroundColor, attributes.gradient]);
217
+ }, [style, textColor, backgroundColor, gradient]);
221
218
  const onChange = newStyle => {
222
219
  setAttributes(styleToAttributes(newStyle));
223
220
  };
224
221
  if (!isEnabled) {
225
222
  return null;
226
223
  }
227
- const defaultControls = getBlockSupport(props.name, [COLOR_SUPPORT_KEY, '__experimentalDefaultControls']);
224
+ const defaultControls = getBlockSupport(name, [COLOR_SUPPORT_KEY, '__experimentalDefaultControls']);
228
225
  const enableContrastChecking = Platform.OS === 'web' && !value?.color?.gradient && (settings?.color?.text || settings?.color?.link) &&
229
226
  // Contrast checking is enabled by default.
230
227
  // Deactivating it requires `enableContrastChecker` to have
231
228
  // an explicit value of `false`.
232
- false !== getBlockSupport(props.name, [COLOR_SUPPORT_KEY, 'enableContrastChecker']);
229
+ false !== getBlockSupport(name, [COLOR_SUPPORT_KEY, 'enableContrastChecker']);
233
230
  return createElement(StylesColorPanel, {
234
231
  as: ColorInspectorControl,
235
232
  panelId: clientId,
@@ -237,35 +234,22 @@ export function ColorEdit(props) {
237
234
  value: value,
238
235
  onChange: onChange,
239
236
  defaultControls: defaultControls,
240
- enableContrastChecker: false !== getBlockSupport(props.name, [COLOR_SUPPORT_KEY, 'enableContrastChecker'])
237
+ enableContrastChecker: false !== getBlockSupport(name, [COLOR_SUPPORT_KEY, 'enableContrastChecker'])
241
238
  }, enableContrastChecking && createElement(BlockColorContrastChecker, {
242
239
  clientId: clientId
243
240
  }));
244
241
  }
245
-
246
- /**
247
- * This adds inline styles for color palette colors.
248
- * Ideally, this is not needed and themes should load their palettes on the editor.
249
- *
250
- * @param {Function} BlockListBlock Original component.
251
- *
252
- * @return {Function} Wrapped component.
253
- */
254
- export const withColorPaletteStyles = createHigherOrderComponent(BlockListBlock => props => {
255
- const {
256
- name,
257
- attributes
258
- } = props;
259
- const {
260
- backgroundColor,
261
- textColor
262
- } = attributes;
242
+ function useBlockProps({
243
+ name,
244
+ backgroundColor,
245
+ textColor,
246
+ gradient,
247
+ style
248
+ }) {
263
249
  const [userPalette, themePalette, defaultPalette] = useSettings('color.palette.custom', 'color.palette.theme', 'color.palette.default');
264
250
  const colors = useMemo(() => [...(userPalette || []), ...(themePalette || []), ...(defaultPalette || [])], [userPalette, themePalette, defaultPalette]);
265
251
  if (!hasColorSupport(name) || shouldSkipSerialization(name, COLOR_SUPPORT_KEY)) {
266
- return createElement(BlockListBlock, {
267
- ...props
268
- });
252
+ return {};
269
253
  }
270
254
  const extraStyles = {};
271
255
  if (textColor && !shouldSkipSerialization(name, COLOR_SUPPORT_KEY, 'text')) {
@@ -274,19 +258,28 @@ export const withColorPaletteStyles = createHigherOrderComponent(BlockListBlock
274
258
  if (backgroundColor && !shouldSkipSerialization(name, COLOR_SUPPORT_KEY, 'background')) {
275
259
  extraStyles.backgroundColor = getColorObjectByAttributeValues(colors, backgroundColor)?.color;
276
260
  }
277
- let wrapperProps = props.wrapperProps;
278
- wrapperProps = {
279
- ...props.wrapperProps,
280
- style: {
281
- ...extraStyles,
282
- ...props.wrapperProps?.style
283
- }
284
- };
285
- return createElement(BlockListBlock, {
286
- ...props,
287
- wrapperProps: wrapperProps
261
+ const saveProps = addSaveProps({
262
+ style: extraStyles
263
+ }, name, {
264
+ textColor,
265
+ backgroundColor,
266
+ gradient,
267
+ style
288
268
  });
289
- }, 'withColorPaletteStyles');
269
+ const hasBackgroundValue = backgroundColor || style?.color?.background || gradient || style?.color?.gradient;
270
+ return {
271
+ ...saveProps,
272
+ className: classnames(saveProps.className,
273
+ // Add background image classes in the editor, if not already handled by background color values.
274
+ !hasBackgroundValue && getBackgroundImageClasses(style))
275
+ };
276
+ }
277
+ export default {
278
+ useBlockProps,
279
+ addSaveProps,
280
+ attributeKeys: ['backgroundColor', 'textColor', 'gradient', 'style'],
281
+ hasSupport: hasColorSupport
282
+ };
290
283
  const MIGRATION_PATHS = {
291
284
  linkColor: [['style', 'elements', 'link', 'color', 'text']],
292
285
  textColor: [['textColor'], ['style', 'color', 'text']],
@@ -304,8 +297,5 @@ export function addTransforms(result, source, index, results) {
304
297
  return transformStyles(activeSupports, MIGRATION_PATHS, result, source, index, results);
305
298
  }
306
299
  addFilter('blocks.registerBlockType', 'core/color/addAttribute', addAttributes);
307
- addFilter('blocks.getSaveContent.extraProps', 'core/color/addSaveProps', addSaveProps);
308
- addFilter('blocks.registerBlockType', 'core/color/addEditProps', addEditProps);
309
- addFilter('editor.BlockListBlock', 'core/color/with-color-palette-styles', withColorPaletteStyles);
310
300
  addFilter('blocks.switchToBlockType.transformedBlock', 'core/color/addTransforms', addTransforms);
311
301
  //# sourceMappingURL=color.js.map