@wordpress/block-editor 12.14.0 → 12.16.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 (664) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +10 -5
  3. package/build/components/block-canvas/index.js +22 -6
  4. package/build/components/block-canvas/index.js.map +1 -1
  5. package/build/components/block-card/index.js +1 -1
  6. package/build/components/block-card/index.js.map +1 -1
  7. package/build/components/block-controls/hook.js +3 -23
  8. package/build/components/block-controls/hook.js.map +1 -1
  9. package/build/components/block-edit/context.js +5 -1
  10. package/build/components/block-edit/context.js.map +1 -1
  11. package/build/components/block-edit/index.js +18 -9
  12. package/build/components/block-edit/index.js.map +1 -1
  13. package/build/components/block-info-slot-fill/index.js +3 -4
  14. package/build/components/block-info-slot-fill/index.js.map +1 -1
  15. package/build/components/block-list/block.js +28 -9
  16. package/build/components/block-list/block.js.map +1 -1
  17. package/build/components/block-list/block.native.js +16 -5
  18. package/build/components/block-list/block.native.js.map +1 -1
  19. package/build/components/block-list/use-block-props/index.js +61 -18
  20. package/build/components/block-list/use-block-props/index.js.map +1 -1
  21. package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  22. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  23. package/build/components/block-list/use-block-props/use-is-hovered.js +4 -14
  24. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  25. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  26. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  27. package/build/components/block-parent-selector/index.js +1 -1
  28. package/build/components/block-parent-selector/index.js.map +1 -1
  29. package/build/components/block-pattern-setup/index.js +25 -16
  30. package/build/components/block-pattern-setup/index.js.map +1 -1
  31. package/build/components/block-pattern-setup/setup-toolbar.js +4 -2
  32. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  33. package/build/components/block-patterns-list/index.js +37 -20
  34. package/build/components/block-patterns-list/index.js.map +1 -1
  35. package/build/components/block-removal-warning-modal/index.js +2 -9
  36. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  37. package/build/components/block-rename/index.js +28 -0
  38. package/build/components/block-rename/index.js.map +1 -0
  39. package/build/components/block-rename/is-empty-string.js +10 -0
  40. package/build/components/block-rename/is-empty-string.js.map +1 -0
  41. package/build/components/block-rename/modal.js +90 -0
  42. package/build/components/block-rename/modal.js.map +1 -0
  43. package/build/components/block-rename/rename-control.js +74 -0
  44. package/build/components/block-rename/rename-control.js.map +1 -0
  45. package/build/components/block-rename/use-block-rename.js +17 -0
  46. package/build/components/block-rename/use-block-rename.js.map +1 -0
  47. package/build/components/block-settings/container.native.js +6 -4
  48. package/build/components/block-settings/container.native.js.map +1 -1
  49. package/build/components/block-settings-menu/block-settings-dropdown.js +33 -20
  50. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  51. package/build/components/block-settings-menu-controls/index.js +7 -0
  52. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  53. package/build/components/block-styles/index.js +1 -1
  54. package/build/components/block-styles/index.js.map +1 -1
  55. package/build/components/block-styles/index.native.js +3 -2
  56. package/build/components/block-styles/index.native.js.map +1 -1
  57. package/build/components/block-toolbar/block-toolbar-menu.native.js +1 -1
  58. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  59. package/build/components/block-toolbar/index.js +89 -27
  60. package/build/components/block-toolbar/index.js.map +1 -1
  61. package/build/components/block-tools/block-toolbar-breadcrumb.js +49 -0
  62. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  63. package/build/components/block-tools/block-toolbar-popover.js +86 -0
  64. package/build/components/block-tools/block-toolbar-popover.js.map +1 -0
  65. package/build/components/block-tools/index.js +27 -24
  66. package/build/components/block-tools/index.js.map +1 -1
  67. package/build/components/block-types-list/index.js +6 -2
  68. package/build/components/block-types-list/index.js.map +1 -1
  69. package/build/components/block-types-list/index.native.js +4 -3
  70. package/build/components/block-types-list/index.native.js.map +1 -1
  71. package/build/components/block-variation-picker/index.native.js +2 -1
  72. package/build/components/block-variation-picker/index.native.js.map +1 -1
  73. package/build/components/colors-gradients/control.js +28 -17
  74. package/build/components/colors-gradients/control.js.map +1 -1
  75. package/build/components/date-format-picker/index.js +8 -1
  76. package/build/components/date-format-picker/index.js.map +1 -1
  77. package/build/components/duotone-control/index.js +1 -4
  78. package/build/components/duotone-control/index.js.map +1 -1
  79. package/build/components/global-styles/advanced-panel.js +1 -1
  80. package/build/components/global-styles/advanced-panel.js.map +1 -1
  81. package/build/components/global-styles/color-panel.js +22 -20
  82. package/build/components/global-styles/color-panel.js.map +1 -1
  83. package/build/components/global-styles/filters-panel.js +9 -3
  84. package/build/components/global-styles/filters-panel.js.map +1 -1
  85. package/build/components/global-styles/typography-panel.js +20 -31
  86. package/build/components/global-styles/typography-panel.js.map +1 -1
  87. package/build/components/image-link-destinations/index.native.js +118 -0
  88. package/build/components/image-link-destinations/index.native.js.map +1 -0
  89. package/build/components/image-size-control/index.js +0 -5
  90. package/build/components/image-size-control/index.js.map +1 -1
  91. package/build/components/index.native.js +8 -0
  92. package/build/components/index.native.js.map +1 -1
  93. package/build/components/inner-blocks/index.js +3 -1
  94. package/build/components/inner-blocks/index.js.map +1 -1
  95. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js +29 -31
  96. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  97. package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
  98. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  99. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -1
  100. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  101. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +1 -1
  102. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  103. package/build/components/inserter/block-patterns-tab/utils.js +3 -4
  104. package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
  105. package/build/components/inserter/hooks/use-patterns-state.js +2 -1
  106. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  107. package/build/components/inserter/media-tab/media-panel.js +2 -2
  108. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  109. package/build/components/inserter/menu.js +14 -7
  110. package/build/components/inserter/menu.js.map +1 -1
  111. package/build/components/inserter/preview-panel.js +2 -2
  112. package/build/components/inserter/preview-panel.js.map +1 -1
  113. package/build/components/inserter-button/index.native.js +98 -0
  114. package/build/components/inserter-button/index.native.js.map +1 -0
  115. package/build/components/inserter-button/sparkles.js +23 -0
  116. package/build/components/inserter-button/sparkles.js.map +1 -0
  117. package/build/components/inserter-draggable-blocks/index.js +8 -4
  118. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  119. package/build/components/inserter-listbox/index.js +11 -6
  120. package/build/components/inserter-listbox/index.js.map +1 -1
  121. package/build/components/inserter-listbox/item.js +24 -23
  122. package/build/components/inserter-listbox/item.js.map +1 -1
  123. package/build/components/inserter-listbox/row.js +5 -5
  124. package/build/components/inserter-listbox/row.js.map +1 -1
  125. package/build/components/inspector-controls/fill.js +3 -3
  126. package/build/components/inspector-controls/fill.js.map +1 -1
  127. package/build/components/inspector-controls/fill.native.js +3 -3
  128. package/build/components/inspector-controls/fill.native.js.map +1 -1
  129. package/build/components/list-view/use-list-view-expand-selected-item.js +2 -3
  130. package/build/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  131. package/build/components/navigable-toolbar/index.js +2 -2
  132. package/build/components/navigable-toolbar/index.js.map +1 -1
  133. package/build/components/preview-options/index.js +6 -60
  134. package/build/components/preview-options/index.js.map +1 -1
  135. package/build/components/rich-text/content.js +26 -23
  136. package/build/components/rich-text/content.js.map +1 -1
  137. package/build/components/rich-text/get-rich-text-values.js +2 -1
  138. package/build/components/rich-text/get-rich-text-values.js.map +1 -1
  139. package/build/components/rich-text/index.js +2 -30
  140. package/build/components/rich-text/index.js.map +1 -1
  141. package/build/components/rich-text/index.native.js +10 -17
  142. package/build/components/rich-text/index.native.js.map +1 -1
  143. package/build/components/rich-text/native/get-format-colors.native.js +22 -24
  144. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  145. package/build/components/rich-text/native/index.native.js +41 -37
  146. package/build/components/rich-text/native/index.native.js.map +1 -1
  147. package/build/components/rich-text/use-input-rules.js +35 -2
  148. package/build/components/rich-text/use-input-rules.js.map +1 -1
  149. package/build/components/rich-text/with-deprecations.js +50 -0
  150. package/build/components/rich-text/with-deprecations.js.map +1 -0
  151. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  152. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  153. package/build/components/use-block-drop-zone/index.js +74 -9
  154. package/build/components/use-block-drop-zone/index.js.map +1 -1
  155. package/build/components/use-moving-animation/index.js +2 -1
  156. package/build/components/use-moving-animation/index.js.map +1 -1
  157. package/build/components/use-on-block-drop/index.js +1 -1
  158. package/build/components/use-on-block-drop/index.js.map +1 -1
  159. package/build/components/use-resize-canvas/index.js +4 -1
  160. package/build/components/use-resize-canvas/index.js.map +1 -1
  161. package/build/components/use-settings/index.js +16 -2
  162. package/build/components/use-settings/index.js.map +1 -1
  163. package/build/hooks/align.js +20 -68
  164. package/build/hooks/align.js.map +1 -1
  165. package/build/hooks/align.native.js +11 -1
  166. package/build/hooks/align.native.js.map +1 -1
  167. package/build/hooks/anchor.js +13 -29
  168. package/build/hooks/anchor.js.map +1 -1
  169. package/build/hooks/background.js +28 -31
  170. package/build/hooks/background.js.map +1 -1
  171. package/build/hooks/block-hooks.js +24 -32
  172. package/build/hooks/block-hooks.js.map +1 -1
  173. package/build/hooks/block-renaming.js +38 -0
  174. package/build/hooks/block-renaming.js.map +1 -1
  175. package/build/hooks/border.js +58 -80
  176. package/build/hooks/border.js.map +1 -1
  177. package/build/hooks/color.js +76 -89
  178. package/build/hooks/color.js.map +1 -1
  179. package/build/hooks/content-lock-ui.js +29 -29
  180. package/build/hooks/content-lock-ui.js.map +1 -1
  181. package/build/hooks/custom-class-name.js +12 -29
  182. package/build/hooks/custom-class-name.js.map +1 -1
  183. package/build/hooks/custom-fields.js +64 -73
  184. package/build/hooks/custom-fields.js.map +1 -1
  185. package/build/hooks/dimensions.js +21 -17
  186. package/build/hooks/dimensions.js.map +1 -1
  187. package/build/hooks/duotone.js +31 -61
  188. package/build/hooks/duotone.js.map +1 -1
  189. package/build/hooks/font-family.js +16 -25
  190. package/build/hooks/font-family.js.map +1 -1
  191. package/build/hooks/font-size.js +51 -119
  192. package/build/hooks/font-size.js.map +1 -1
  193. package/build/hooks/index.js +25 -15
  194. package/build/hooks/index.js.map +1 -1
  195. package/build/hooks/index.native.js +10 -3
  196. package/build/hooks/index.native.js.map +1 -1
  197. package/build/hooks/layout-child.js +68 -0
  198. package/build/hooks/layout-child.js.map +1 -0
  199. package/build/hooks/layout.js +29 -108
  200. package/build/hooks/layout.js.map +1 -1
  201. package/build/hooks/padding.js +2 -2
  202. package/build/hooks/padding.js.map +1 -1
  203. package/build/hooks/position.js +40 -62
  204. package/build/hooks/position.js.map +1 -1
  205. package/build/hooks/style.js +51 -88
  206. package/build/hooks/style.js.map +1 -1
  207. package/build/hooks/typography.js +34 -14
  208. package/build/hooks/typography.js.map +1 -1
  209. package/build/hooks/utils.js +154 -7
  210. package/build/hooks/utils.js.map +1 -1
  211. package/build/layouts/constrained.js +4 -3
  212. package/build/layouts/constrained.js.map +1 -1
  213. package/build/private-apis.js +0 -2
  214. package/build/private-apis.js.map +1 -1
  215. package/build/store/private-actions.js +8 -0
  216. package/build/store/private-actions.js.map +1 -1
  217. package/build/store/private-selectors.js +34 -0
  218. package/build/store/private-selectors.js.map +1 -1
  219. package/build/store/reducer.js +8 -0
  220. package/build/store/reducer.js.map +1 -1
  221. package/build/store/selectors.js +10 -58
  222. package/build/store/selectors.js.map +1 -1
  223. package/build/store/utils.js +66 -0
  224. package/build/store/utils.js.map +1 -0
  225. package/build/utils/object.js +21 -61
  226. package/build/utils/object.js.map +1 -1
  227. package/build/utils/selection.js +9 -1
  228. package/build/utils/selection.js.map +1 -1
  229. package/build/utils/transform-styles/index.js +26 -6
  230. package/build/utils/transform-styles/index.js.map +1 -1
  231. package/build-module/components/block-canvas/index.js +23 -7
  232. package/build-module/components/block-canvas/index.js.map +1 -1
  233. package/build-module/components/block-card/index.js +1 -1
  234. package/build-module/components/block-card/index.js.map +1 -1
  235. package/build-module/components/block-controls/hook.js +4 -24
  236. package/build-module/components/block-controls/hook.js.map +1 -1
  237. package/build-module/components/block-edit/context.js +2 -0
  238. package/build-module/components/block-edit/context.js.map +1 -1
  239. package/build-module/components/block-edit/index.js +19 -10
  240. package/build-module/components/block-edit/index.js.map +1 -1
  241. package/build-module/components/block-info-slot-fill/index.js +3 -3
  242. package/build-module/components/block-info-slot-fill/index.js.map +1 -1
  243. package/build-module/components/block-list/block.js +29 -10
  244. package/build-module/components/block-list/block.js.map +1 -1
  245. package/build-module/components/block-list/block.native.js +16 -5
  246. package/build-module/components/block-list/block.native.js.map +1 -1
  247. package/build-module/components/block-list/use-block-props/index.js +62 -19
  248. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  249. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  250. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  251. package/build-module/components/block-list/use-block-props/use-is-hovered.js +4 -14
  252. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  253. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  254. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  255. package/build-module/components/block-parent-selector/index.js +1 -1
  256. package/build-module/components/block-parent-selector/index.js.map +1 -1
  257. package/build-module/components/block-pattern-setup/index.js +24 -15
  258. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  259. package/build-module/components/block-pattern-setup/setup-toolbar.js +4 -2
  260. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  261. package/build-module/components/block-patterns-list/index.js +37 -20
  262. package/build-module/components/block-patterns-list/index.js.map +1 -1
  263. package/build-module/components/block-removal-warning-modal/index.js +3 -10
  264. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  265. package/build-module/components/block-rename/index.js +4 -0
  266. package/build-module/components/block-rename/index.js.map +1 -0
  267. package/build-module/components/block-rename/is-empty-string.js +4 -0
  268. package/build-module/components/block-rename/is-empty-string.js.map +1 -0
  269. package/build-module/components/block-rename/modal.js +82 -0
  270. package/build-module/components/block-rename/modal.js.map +1 -0
  271. package/build-module/components/block-rename/rename-control.js +66 -0
  272. package/build-module/components/block-rename/rename-control.js.map +1 -0
  273. package/build-module/components/block-rename/use-block-rename.js +10 -0
  274. package/build-module/components/block-rename/use-block-rename.js.map +1 -0
  275. package/build-module/components/block-settings/container.native.js +4 -2
  276. package/build-module/components/block-settings/container.native.js.map +1 -1
  277. package/build-module/components/block-settings-menu/block-settings-dropdown.js +34 -21
  278. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  279. package/build-module/components/block-settings-menu-controls/index.js +7 -0
  280. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  281. package/build-module/components/block-styles/index.js +1 -1
  282. package/build-module/components/block-styles/index.js.map +1 -1
  283. package/build-module/components/block-styles/index.native.js +3 -2
  284. package/build-module/components/block-styles/index.native.js.map +1 -1
  285. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +1 -1
  286. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  287. package/build-module/components/block-toolbar/index.js +88 -25
  288. package/build-module/components/block-toolbar/index.js.map +1 -1
  289. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +41 -0
  290. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  291. package/build-module/components/block-tools/block-toolbar-popover.js +76 -0
  292. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -0
  293. package/build-module/components/block-tools/index.js +27 -24
  294. package/build-module/components/block-tools/index.js.map +1 -1
  295. package/build-module/components/block-types-list/index.js +6 -2
  296. package/build-module/components/block-types-list/index.js.map +1 -1
  297. package/build-module/components/block-types-list/index.native.js +2 -1
  298. package/build-module/components/block-types-list/index.native.js.map +1 -1
  299. package/build-module/components/block-variation-picker/index.native.js +2 -1
  300. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  301. package/build-module/components/colors-gradients/control.js +29 -18
  302. package/build-module/components/colors-gradients/control.js.map +1 -1
  303. package/build-module/components/date-format-picker/index.js +8 -1
  304. package/build-module/components/date-format-picker/index.js.map +1 -1
  305. package/build-module/components/duotone-control/index.js +1 -4
  306. package/build-module/components/duotone-control/index.js.map +1 -1
  307. package/build-module/components/global-styles/advanced-panel.js +1 -1
  308. package/build-module/components/global-styles/advanced-panel.js.map +1 -1
  309. package/build-module/components/global-styles/color-panel.js +23 -21
  310. package/build-module/components/global-styles/color-panel.js.map +1 -1
  311. package/build-module/components/global-styles/filters-panel.js +10 -4
  312. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  313. package/build-module/components/global-styles/typography-panel.js +20 -31
  314. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  315. package/build-module/components/image-link-destinations/index.native.js +109 -0
  316. package/build-module/components/image-link-destinations/index.native.js.map +1 -0
  317. package/build-module/components/image-size-control/index.js +0 -5
  318. package/build-module/components/image-size-control/index.js.map +1 -1
  319. package/build-module/components/index.native.js +1 -0
  320. package/build-module/components/index.native.js.map +1 -1
  321. package/build-module/components/inner-blocks/index.js +3 -1
  322. package/build-module/components/inner-blocks/index.js.map +1 -1
  323. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js +30 -32
  324. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  325. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  326. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  327. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +4 -4
  328. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  329. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +2 -2
  330. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  331. package/build-module/components/inserter/block-patterns-tab/utils.js +3 -4
  332. package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
  333. package/build-module/components/inserter/hooks/use-patterns-state.js +2 -1
  334. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  335. package/build-module/components/inserter/media-tab/media-panel.js +1 -1
  336. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  337. package/build-module/components/inserter/menu.js +14 -7
  338. package/build-module/components/inserter/menu.js.map +1 -1
  339. package/build-module/components/inserter/preview-panel.js +2 -2
  340. package/build-module/components/inserter/preview-panel.js.map +1 -1
  341. package/build-module/components/inserter-button/index.native.js +89 -0
  342. package/build-module/components/inserter-button/index.native.js.map +1 -0
  343. package/build-module/components/inserter-button/sparkles.js +15 -0
  344. package/build-module/components/inserter-button/sparkles.js.map +1 -0
  345. package/build-module/components/inserter-draggable-blocks/index.js +9 -5
  346. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  347. package/build-module/components/inserter-listbox/index.js +13 -8
  348. package/build-module/components/inserter-listbox/index.js.map +1 -1
  349. package/build-module/components/inserter-listbox/item.js +25 -23
  350. package/build-module/components/inserter-listbox/item.js.map +1 -1
  351. package/build-module/components/inserter-listbox/row.js +6 -5
  352. package/build-module/components/inserter-listbox/row.js.map +1 -1
  353. package/build-module/components/inspector-controls/fill.js +3 -3
  354. package/build-module/components/inspector-controls/fill.js.map +1 -1
  355. package/build-module/components/inspector-controls/fill.native.js +3 -3
  356. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  357. package/build-module/components/list-view/use-list-view-expand-selected-item.js +2 -3
  358. package/build-module/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  359. package/build-module/components/navigable-toolbar/index.js +2 -2
  360. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  361. package/build-module/components/preview-options/index.js +6 -60
  362. package/build-module/components/preview-options/index.js.map +1 -1
  363. package/build-module/components/rich-text/content.js +25 -21
  364. package/build-module/components/rich-text/content.js.map +1 -1
  365. package/build-module/components/rich-text/get-rich-text-values.js +2 -1
  366. package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
  367. package/build-module/components/rich-text/index.js +4 -32
  368. package/build-module/components/rich-text/index.js.map +1 -1
  369. package/build-module/components/rich-text/index.native.js +11 -19
  370. package/build-module/components/rich-text/index.native.js.map +1 -1
  371. package/build-module/components/rich-text/native/get-format-colors.native.js +22 -24
  372. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  373. package/build-module/components/rich-text/native/index.native.js +41 -37
  374. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  375. package/build-module/components/rich-text/use-input-rules.js +36 -3
  376. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  377. package/build-module/components/rich-text/with-deprecations.js +42 -0
  378. package/build-module/components/rich-text/with-deprecations.js.map +1 -0
  379. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  380. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  381. package/build-module/components/use-block-drop-zone/index.js +73 -9
  382. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  383. package/build-module/components/use-moving-animation/index.js +2 -1
  384. package/build-module/components/use-moving-animation/index.js.map +1 -1
  385. package/build-module/components/use-on-block-drop/index.js +1 -1
  386. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  387. package/build-module/components/use-resize-canvas/index.js +4 -1
  388. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  389. package/build-module/components/use-settings/index.js +15 -3
  390. package/build-module/components/use-settings/index.js.map +1 -1
  391. package/build-module/hooks/align.js +19 -66
  392. package/build-module/hooks/align.js.map +1 -1
  393. package/build-module/hooks/align.native.js +1 -0
  394. package/build-module/hooks/align.native.js.map +1 -1
  395. package/build-module/hooks/anchor.js +11 -26
  396. package/build-module/hooks/anchor.js.map +1 -1
  397. package/build-module/hooks/background.js +26 -28
  398. package/build-module/hooks/background.js.map +1 -1
  399. package/build-module/hooks/block-hooks.js +22 -30
  400. package/build-module/hooks/block-hooks.js.map +1 -1
  401. package/build-module/hooks/block-renaming.js +36 -0
  402. package/build-module/hooks/block-renaming.js.map +1 -1
  403. package/build-module/hooks/border.js +57 -78
  404. package/build-module/hooks/border.js.map +1 -1
  405. package/build-module/hooks/color.js +74 -86
  406. package/build-module/hooks/color.js.map +1 -1
  407. package/build-module/hooks/content-lock-ui.js +27 -27
  408. package/build-module/hooks/content-lock-ui.js.map +1 -1
  409. package/build-module/hooks/custom-class-name.js +11 -27
  410. package/build-module/hooks/custom-class-name.js.map +1 -1
  411. package/build-module/hooks/custom-fields.js +60 -74
  412. package/build-module/hooks/custom-fields.js.map +1 -1
  413. package/build-module/hooks/dimensions.js +21 -16
  414. package/build-module/hooks/dimensions.js.map +1 -1
  415. package/build-module/hooks/duotone.js +30 -61
  416. package/build-module/hooks/duotone.js.map +1 -1
  417. package/build-module/hooks/font-family.js +14 -23
  418. package/build-module/hooks/font-family.js.map +1 -1
  419. package/build-module/hooks/font-size.js +49 -119
  420. package/build-module/hooks/font-size.js.map +1 -1
  421. package/build-module/hooks/index.js +18 -15
  422. package/build-module/hooks/index.js.map +1 -1
  423. package/build-module/hooks/index.native.js +5 -3
  424. package/build-module/hooks/index.native.js.map +1 -1
  425. package/build-module/hooks/layout-child.js +60 -0
  426. package/build-module/hooks/layout-child.js.map +1 -0
  427. package/build-module/hooks/layout.js +26 -105
  428. package/build-module/hooks/layout.js.map +1 -1
  429. package/build-module/hooks/padding.js +2 -2
  430. package/build-module/hooks/padding.js.map +1 -1
  431. package/build-module/hooks/position.js +38 -59
  432. package/build-module/hooks/position.js.map +1 -1
  433. package/build-module/hooks/style.js +51 -84
  434. package/build-module/hooks/style.js.map +1 -1
  435. package/build-module/hooks/typography.js +33 -12
  436. package/build-module/hooks/typography.js.map +1 -1
  437. package/build-module/hooks/utils.js +149 -6
  438. package/build-module/hooks/utils.js.map +1 -1
  439. package/build-module/layouts/constrained.js +4 -3
  440. package/build-module/layouts/constrained.js.map +1 -1
  441. package/build-module/private-apis.js +0 -2
  442. package/build-module/private-apis.js.map +1 -1
  443. package/build-module/store/private-actions.js +7 -0
  444. package/build-module/store/private-actions.js.map +1 -1
  445. package/build-module/store/private-selectors.js +33 -1
  446. package/build-module/store/private-selectors.js.map +1 -1
  447. package/build-module/store/reducer.js +8 -0
  448. package/build-module/store/reducer.js.map +1 -1
  449. package/build-module/store/selectors.js +3 -51
  450. package/build-module/store/selectors.js.map +1 -1
  451. package/build-module/store/utils.js +56 -0
  452. package/build-module/store/utils.js.map +1 -0
  453. package/build-module/utils/object.js +21 -60
  454. package/build-module/utils/object.js.map +1 -1
  455. package/build-module/utils/selection.js +9 -1
  456. package/build-module/utils/selection.js.map +1 -1
  457. package/build-module/utils/transform-styles/index.js +24 -7
  458. package/build-module/utils/transform-styles/index.js.map +1 -1
  459. package/build-style/content-rtl.css +6 -6
  460. package/build-style/content.css +6 -6
  461. package/build-style/style-rtl.css +123 -298
  462. package/build-style/style.css +123 -298
  463. package/package.json +31 -31
  464. package/src/components/block-canvas/index.js +31 -17
  465. package/src/components/block-caption/README.md +2 -2
  466. package/src/components/block-card/index.js +5 -3
  467. package/src/components/block-card/style.scss +7 -3
  468. package/src/components/block-controls/hook.js +8 -30
  469. package/src/components/block-controls/test/index.js +3 -3
  470. package/src/components/block-edit/context.js +3 -0
  471. package/src/components/block-edit/index.js +36 -10
  472. package/src/components/block-info-slot-fill/index.js +6 -3
  473. package/src/components/block-inspector/style.scss +0 -4
  474. package/src/components/block-list/block.js +39 -5
  475. package/src/components/block-list/block.native.js +20 -4
  476. package/src/components/block-list/use-block-props/index.js +74 -21
  477. package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -34
  478. package/src/components/block-list/use-block-props/use-is-hovered.js +2 -13
  479. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +1 -5
  480. package/src/components/block-parent-selector/index.js +1 -1
  481. package/src/components/block-pattern-setup/index.js +38 -22
  482. package/src/components/block-pattern-setup/setup-toolbar.js +2 -0
  483. package/src/components/block-pattern-setup/style.scss +4 -1
  484. package/src/components/block-patterns-list/README.md +4 -4
  485. package/src/components/block-patterns-list/index.js +61 -35
  486. package/src/components/block-patterns-list/style.scss +7 -0
  487. package/src/components/block-removal-warning-modal/index.js +7 -14
  488. package/src/components/block-rename/index.js +3 -0
  489. package/src/components/block-rename/is-empty-string.js +3 -0
  490. package/src/components/block-rename/modal.js +121 -0
  491. package/src/components/block-rename/rename-control.js +80 -0
  492. package/src/components/block-rename/use-block-rename.js +10 -0
  493. package/src/components/block-settings/container.native.js +3 -5
  494. package/src/components/block-settings-menu/block-settings-dropdown.js +38 -34
  495. package/src/components/block-settings-menu-controls/index.js +9 -0
  496. package/src/components/block-styles/index.js +1 -1
  497. package/src/components/block-styles/index.native.js +4 -2
  498. package/src/components/block-styles/style.scss +0 -11
  499. package/src/components/block-switcher/test/__snapshots__/index.js.snap +3 -1
  500. package/src/components/block-toolbar/block-toolbar-menu.native.js +1 -4
  501. package/src/components/block-toolbar/index.js +180 -95
  502. package/src/components/block-toolbar/style.scss +50 -66
  503. package/src/components/block-tools/block-toolbar-breadcrumb.js +46 -0
  504. package/src/components/block-tools/block-toolbar-popover.js +90 -0
  505. package/src/components/block-tools/index.js +42 -29
  506. package/src/components/block-tools/style.scss +60 -172
  507. package/src/components/block-types-list/index.js +5 -4
  508. package/src/components/block-types-list/index.native.js +2 -1
  509. package/src/components/block-variation-picker/index.native.js +1 -1
  510. package/src/components/button-block-appender/content.scss +2 -2
  511. package/src/components/colors-gradients/control.js +49 -30
  512. package/src/components/colors-gradients/style.scss +0 -7
  513. package/src/components/date-format-picker/index.js +7 -0
  514. package/src/components/duotone-control/index.js +2 -5
  515. package/src/components/duotone-control/style.scss +1 -6
  516. package/src/components/editable-text/README.md +0 -36
  517. package/src/components/global-styles/advanced-panel.js +1 -1
  518. package/src/components/global-styles/color-panel.js +34 -25
  519. package/src/components/global-styles/filters-panel.js +8 -4
  520. package/src/components/global-styles/typography-panel.js +23 -43
  521. package/src/components/image-link-destinations/index.native.js +152 -0
  522. package/src/components/image-link-destinations/style.native.scss +16 -0
  523. package/src/components/image-size-control/index.js +0 -6
  524. package/src/components/index.native.js +1 -0
  525. package/src/components/inner-blocks/README.md +13 -2
  526. package/src/components/inner-blocks/index.js +6 -2
  527. package/src/components/inner-blocks/warning-max-depth-exceeded.native.js +57 -33
  528. package/src/components/inserter/block-patterns-explorer/pattern-list.js +5 -1
  529. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +7 -3
  530. package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +6 -1
  531. package/src/components/inserter/block-patterns-tab/utils.js +6 -4
  532. package/src/components/inserter/hooks/use-patterns-state.js +3 -1
  533. package/src/components/inserter/media-tab/media-panel.js +1 -1
  534. package/src/components/inserter/menu.js +16 -8
  535. package/src/components/inserter/preview-panel.js +2 -2
  536. package/src/components/inserter/style.scss +15 -17
  537. package/src/components/inserter-button/README.md +62 -0
  538. package/src/components/inserter-button/index.native.js +116 -0
  539. package/src/components/inserter-button/sparkles.js +15 -0
  540. package/src/components/inserter-button/style.native.scss +72 -0
  541. package/src/components/inserter-draggable-blocks/index.js +18 -5
  542. package/src/components/inserter-listbox/index.js +11 -7
  543. package/src/components/inserter-listbox/item.js +11 -12
  544. package/src/components/inserter-listbox/row.js +6 -12
  545. package/src/components/inspector-controls/fill.js +6 -3
  546. package/src/components/inspector-controls/fill.native.js +6 -3
  547. package/src/components/link-control/style.scss +1 -1
  548. package/src/components/link-control/test/index.js +1 -1
  549. package/src/components/list-view/use-list-view-expand-selected-item.js +7 -8
  550. package/src/components/navigable-toolbar/README.md +2 -0
  551. package/src/components/navigable-toolbar/index.js +2 -2
  552. package/src/components/plain-text/README.md +0 -28
  553. package/src/components/preview-options/index.js +6 -84
  554. package/src/components/rich-text/README.md +0 -58
  555. package/src/components/rich-text/content.js +27 -20
  556. package/src/components/rich-text/get-rich-text-values.js +6 -1
  557. package/src/components/rich-text/index.js +5 -46
  558. package/src/components/rich-text/index.native.js +9 -26
  559. package/src/components/rich-text/native/get-format-colors.native.js +33 -40
  560. package/src/components/rich-text/native/index.native.js +52 -50
  561. package/src/components/rich-text/use-input-rules.js +36 -3
  562. package/src/components/rich-text/with-deprecations.js +51 -0
  563. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  564. package/src/components/url-input/README.md +1 -74
  565. package/src/components/use-block-drop-zone/index.js +118 -15
  566. package/src/components/use-moving-animation/index.js +1 -1
  567. package/src/components/use-on-block-drop/index.js +2 -1
  568. package/src/components/use-resize-canvas/README.md +3 -3
  569. package/src/components/use-resize-canvas/index.js +4 -1
  570. package/src/components/use-settings/index.js +17 -3
  571. package/src/components/use-settings/test/index.js +1 -1
  572. package/src/hooks/align.js +15 -76
  573. package/src/hooks/align.native.js +1 -0
  574. package/src/hooks/anchor.js +13 -33
  575. package/src/hooks/background.js +28 -23
  576. package/src/hooks/block-hooks.js +22 -51
  577. package/src/hooks/block-renaming.js +33 -0
  578. package/src/hooks/border.js +67 -118
  579. package/src/hooks/color.js +100 -132
  580. package/src/hooks/content-lock-ui.js +110 -122
  581. package/src/hooks/custom-class-name.js +8 -40
  582. package/src/hooks/custom-fields.js +70 -94
  583. package/src/hooks/dimensions.js +20 -16
  584. package/src/hooks/duotone.js +70 -127
  585. package/src/hooks/font-family.js +10 -29
  586. package/src/hooks/font-size.js +66 -162
  587. package/src/hooks/index.js +42 -15
  588. package/src/hooks/index.native.js +6 -3
  589. package/src/hooks/layout-child.js +53 -0
  590. package/src/hooks/layout.js +25 -110
  591. package/src/hooks/padding.js +2 -2
  592. package/src/hooks/position.js +50 -90
  593. package/src/hooks/style.js +117 -187
  594. package/src/hooks/test/__snapshots__/align.native.js.snap +5 -5
  595. package/src/hooks/test/align.js +1 -178
  596. package/src/hooks/typography.js +20 -16
  597. package/src/hooks/utils.js +187 -6
  598. package/src/layouts/constrained.js +57 -50
  599. package/src/private-apis.js +0 -2
  600. package/src/store/private-actions.js +8 -0
  601. package/src/store/private-selectors.js +45 -0
  602. package/src/store/reducer.js +8 -0
  603. package/src/store/selectors.js +5 -67
  604. package/src/store/utils.js +74 -0
  605. package/src/style.scss +1 -3
  606. package/src/utils/object.js +18 -69
  607. package/src/utils/selection.js +9 -2
  608. package/src/utils/test/transform-styles.js +49 -0
  609. package/src/utils/transform-styles/index.js +39 -13
  610. package/build/components/block-list/use-block-props/use-block-class-names.js +0 -67
  611. package/build/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  612. package/build/components/block-list/use-block-props/use-block-custom-class-name.js +0 -46
  613. package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  614. package/build/components/block-list/use-block-props/use-block-default-class-name.js +0 -37
  615. package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  616. package/build/components/block-tools/back-compat.js +0 -45
  617. package/build/components/block-tools/back-compat.js.map +0 -1
  618. package/build/components/block-tools/block-contextual-toolbar.js +0 -91
  619. package/build/components/block-tools/block-contextual-toolbar.js.map +0 -1
  620. package/build/components/block-tools/selected-block-tools.js +0 -113
  621. package/build/components/block-tools/selected-block-tools.js.map +0 -1
  622. package/build/components/inserter/hooks/use-debounced-input.js +0 -22
  623. package/build/components/inserter/hooks/use-debounced-input.js.map +0 -1
  624. package/build/components/use-display-block-controls/index.js +0 -39
  625. package/build/components/use-display-block-controls/index.js.map +0 -1
  626. package/build/components/use-display-block-controls/index.native.js +0 -39
  627. package/build/components/use-display-block-controls/index.native.js.map +0 -1
  628. package/build/hooks/block-rename-ui.js +0 -167
  629. package/build/hooks/block-rename-ui.js.map +0 -1
  630. package/build-module/components/block-list/use-block-props/use-block-class-names.js +0 -60
  631. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  632. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +0 -40
  633. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  634. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +0 -31
  635. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  636. package/build-module/components/block-tools/back-compat.js +0 -35
  637. package/build-module/components/block-tools/back-compat.js.map +0 -1
  638. package/build-module/components/block-tools/block-contextual-toolbar.js +0 -83
  639. package/build-module/components/block-tools/block-contextual-toolbar.js.map +0 -1
  640. package/build-module/components/block-tools/selected-block-tools.js +0 -105
  641. package/build-module/components/block-tools/selected-block-tools.js.map +0 -1
  642. package/build-module/components/inserter/hooks/use-debounced-input.js +0 -15
  643. package/build-module/components/inserter/hooks/use-debounced-input.js.map +0 -1
  644. package/build-module/components/use-display-block-controls/index.js +0 -32
  645. package/build-module/components/use-display-block-controls/index.js.map +0 -1
  646. package/build-module/components/use-display-block-controls/index.native.js +0 -32
  647. package/build-module/components/use-display-block-controls/index.native.js.map +0 -1
  648. package/build-module/hooks/block-rename-ui.js +0 -159
  649. package/build-module/hooks/block-rename-ui.js.map +0 -1
  650. package/src/components/block-list/use-block-props/use-block-class-names.js +0 -66
  651. package/src/components/block-list/use-block-props/use-block-custom-class-name.js +0 -44
  652. package/src/components/block-list/use-block-props/use-block-default-class-name.js +0 -35
  653. package/src/components/block-parent-selector/style.scss +0 -11
  654. package/src/components/block-tools/back-compat.js +0 -35
  655. package/src/components/block-tools/block-contextual-toolbar.js +0 -100
  656. package/src/components/block-tools/selected-block-tools.js +0 -127
  657. package/src/components/inserter/hooks/use-debounced-input.js +0 -18
  658. package/src/components/preview-options/README.md +0 -94
  659. package/src/components/preview-options/style.scss +0 -64
  660. package/src/components/use-display-block-controls/index.js +0 -36
  661. package/src/components/use-display-block-controls/index.native.js +0 -37
  662. package/src/hooks/block-rename-ui.js +0 -228
  663. package/src/hooks/test/color.js +0 -112
  664. /package/src/{hooks/block-rename-ui.scss → components/block-rename/style.scss} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_blocks","_components","_compose","_element","_hooks","_colors","_inspectorControls","_useMultipleOriginColorsAndGradients","_utils","_globalStyles","BORDER_SUPPORT_KEY","exports","getColorByProperty","colors","property","value","matchedColor","some","origin","color","getMultiOriginColor","namedColor","customColor","colorObject","undefined","getColorSlugFromVariable","exec","styleToAttributes","style","hasSplitBorders","border","borderColor","borderColorValue","borderColorSlug","startsWith","substring","length","updatedStyle","cleanEmptyObject","attributesToStyle","attributes","BordersInspectorControl","children","resetAllFilter","attributesResetAllFilter","useCallback","existingStyle","_react","createElement","default","group","BorderPanel","props","clientId","name","setAttributes","settings","useBlockSettings","isEnabled","useHasBorderPanel","useMemo","onChange","newStyle","defaultControls","getBlockSupport","as","panelId","hasBorderSupport","blockName","feature","Platform","OS","support","radius","width","removeBorderAttribute","attribute","addAttributes","type","addSaveProps","blockType","shouldSkipSerialization","borderClasses","getBorderClasses","newClassName","classnames","className","borderColorClass","getColorClassName","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","withBorderColorPaletteStyles","createHigherOrderComponent","BlockListBlock","useMultipleOriginColorsAndGradients","borderTopColor","top","borderRightColor","right","borderBottomColor","bottom","borderLeftColor","left","extraStyles","cleanedExtraStyles","wrapperProps","addFilter"],"sources":["@wordpress/block-editor/src/hooks/border.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { __experimentalHasSplitBorders as hasSplitBorders } from '@wordpress/components';\nimport { 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","_interopRequireDefault","require","_blocks","_components","_compose","_element","_hooks","_data","_colors","_inspectorControls","_useMultipleOriginColorsAndGradients","_utils","_globalStyles","_store","BORDER_SUPPORT_KEY","exports","getColorByProperty","colors","property","value","matchedColor","some","origin","color","getMultiOriginColor","namedColor","customColor","colorObject","undefined","getColorSlugFromVariable","exec","styleToAttributes","style","hasSplitBorders","border","borderColor","borderColorValue","borderColorSlug","startsWith","substring","length","updatedStyle","cleanEmptyObject","attributesToStyle","attributes","BordersInspectorControl","children","resetAllFilter","attributesResetAllFilter","useCallback","existingStyle","_react","createElement","default","group","BorderPanelPure","clientId","name","setAttributes","settings","isEnabled","useHasBorderPanel","selector","select","blockEditorStore","getBlockAttributes","useSelect","useMemo","onChange","newStyle","defaultControls","getBlockSupport","BorderPanel","as","panelId","pure","hasBorderSupport","blockName","feature","Platform","OS","support","radius","width","removeBorderAttribute","attribute","addAttributes","type","addSaveProps","props","blockNameOrType","shouldSkipSerialization","borderClasses","getBorderClasses","newClassName","classnames","className","borderColorClass","getColorClassName","useBlockProps","useMultipleOriginColorsAndGradients","borderTopColor","top","borderRightColor","right","borderBottomColor","bottom","borderLeftColor","left","extraStyles","_default","attributeKeys","hasSupport","addFilter"],"sources":["@wordpress/block-editor/src/hooks/border.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { __experimentalHasSplitBorders as hasSplitBorders } from '@wordpress/components';\nimport { pure } from '@wordpress/compose';\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\nfunction BorderPanelPure( { 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// We don't want block controls to re-render when typing inside a block. `pure`\n// will prevent re-renders unless props change, so only pass the needed props\n// and not the whole attributes object.\nexport const BorderPanel = pure( BorderPanelPure );\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\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\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/border/addSaveProps',\n\taddSaveProps\n);\n"],"mappings":";;;;;;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AAKA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,kBAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,oCAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,MAAA,GAAAV,OAAA;AACA,IAAAW,aAAA,GAAAX,OAAA;AAIA,IAAAY,MAAA,GAAAZ,OAAA;AA1BA;AACA;AACA;;AAGA;AACA;AACA;;AAQA;AACA;AACA;;AAWO,MAAMa,kBAAkB,GAAG,sBAAsB;AAACC,OAAA,CAAAD,kBAAA,GAAAA,kBAAA;AAEzD,MAAME,kBAAkB,GAAGA,CAAEC,MAAM,EAAEC,QAAQ,EAAEC,KAAK,KAAM;EACzD,IAAIC,YAAY;EAEhBH,MAAM,CAACI,IAAI,CAAIC,MAAM,IACpBA,MAAM,CAACL,MAAM,CAACI,IAAI,CAAIE,KAAK,IAAM;IAChC,IAAKA,KAAK,CAAEL,QAAQ,CAAE,KAAKC,KAAK,EAAG;MAClCC,YAAY,GAAGG,KAAK;MACpB,OAAO,IAAI;IACZ;IAEA,OAAO,KAAK;EACb,CAAE,CACH,CAAC;EAED,OAAOH,YAAY;AACpB,CAAC;AAEM,MAAMI,mBAAmB,GAAGA,CAAE;EAAEP,MAAM;EAAEQ,UAAU;EAAEC;AAAY,CAAC,KAAM;EAC7E;EACA,IAAKD,UAAU,EAAG;IACjB,MAAME,WAAW,GAAGX,kBAAkB,CAAEC,MAAM,EAAE,MAAM,EAAEQ,UAAW,CAAC;IACpE,IAAKE,WAAW,EAAG;MAClB,OAAOA,WAAW;IACnB;EACD;;EAEA;EACA,IAAK,CAAED,WAAW,EAAG;IACpB,OAAO;MAAEH,KAAK,EAAEK;IAAU,CAAC;EAC5B;;EAEA;EACA,MAAMD,WAAW,GAAGX,kBAAkB,CAAEC,MAAM,EAAE,OAAO,EAAES,WAAY,CAAC;EACtE,OAAOC,WAAW,GAAGA,WAAW,GAAG;IAAEJ,KAAK,EAAEG;EAAY,CAAC;AAC1D,CAAC;AAACX,OAAA,CAAAS,mBAAA,GAAAA,mBAAA;AAEF,SAASK,wBAAwBA,CAAEV,KAAK,EAAG;EAC1C,MAAMM,UAAU,GAAG,yBAAyB,CAACK,IAAI,CAAEX,KAAM,CAAC;EAC1D,IAAKM,UAAU,IAAIA,UAAU,CAAE,CAAC,CAAE,EAAG;IACpC,OAAOA,UAAU,CAAE,CAAC,CAAE;EACvB;EACA,OAAO,IAAI;AACZ;AAEA,SAASM,iBAAiBA,CAAEC,KAAK,EAAG;EACnC,IAAK,IAAAC,yCAAe,EAAED,KAAK,EAAEE,MAAO,CAAC,EAAG;IACvC,OAAO;MACNF,KAAK;MACLG,WAAW,EAAEP;IACd,CAAC;EACF;EAEA,MAAMQ,gBAAgB,GAAGJ,KAAK,EAAEE,MAAM,EAAEX,KAAK;EAC7C,MAAMc,eAAe,GAAGD,gBAAgB,EAAEE,UAAU,CAAE,mBAAoB,CAAC,GACxEF,gBAAgB,CAACG,SAAS,CAAE,mBAAmB,CAACC,MAAO,CAAC,GACxDZ,SAAS;EACZ,MAAMa,YAAY,GAAG;IAAE,GAAGT;EAAM,CAAC;EACjCS,YAAY,CAACP,MAAM,GAAG;IACrB,GAAGO,YAAY,CAACP,MAAM;IACtBX,KAAK,EAAEc,eAAe,GAAGT,SAAS,GAAGQ;EACtC,CAAC;EACD,OAAO;IACNJ,KAAK,EAAE,IAAAU,uBAAgB,EAAED,YAAa,CAAC;IACvCN,WAAW,EAAEE;EACd,CAAC;AACF;AAEA,SAASM,iBAAiBA,CAAEC,UAAU,EAAG;EACxC,IAAK,IAAAX,yCAAe,EAAEW,UAAU,CAACZ,KAAK,EAAEE,MAAO,CAAC,EAAG;IAClD,OAAOU,UAAU,CAACZ,KAAK;EACxB;EACA,OAAO;IACN,GAAGY,UAAU,CAACZ,KAAK;IACnBE,MAAM,EAAE;MACP,GAAGU,UAAU,CAACZ,KAAK,EAAEE,MAAM;MAC3BX,KAAK,EAAEqB,UAAU,CAACT,WAAW,GAC1B,mBAAmB,GAAGS,UAAU,CAACT,WAAW,GAC5CS,UAAU,CAACZ,KAAK,EAAEE,MAAM,EAAEX;IAC9B;EACD,CAAC;AACF;AAEA,SAASsB,uBAAuBA,CAAE;EAAEC,QAAQ;EAAEC;AAAe,CAAC,EAAG;EAChE,MAAMC,wBAAwB,GAAG,IAAAC,oBAAW,EACzCL,UAAU,IAAM;IACjB,MAAMM,aAAa,GAAGP,iBAAiB,CAAEC,UAAW,CAAC;IACrD,MAAMH,YAAY,GAAGM,cAAc,CAAEG,aAAc,CAAC;IACpD,OAAO;MACN,GAAGN,UAAU;MACb,GAAGb,iBAAiB,CAAEU,YAAa;IACpC,CAAC;EACF,CAAC,EACD,CAAEM,cAAc,CACjB,CAAC;EAED,OACC,IAAAI,MAAA,CAAAC,aAAA,EAAC3C,kBAAA,CAAA4C,OAAiB;IACjBC,KAAK,EAAC,QAAQ;IACdP,cAAc,EAAGC;EAA0B,GAEzCF,QACgB,CAAC;AAEtB;AAEA,SAASS,eAAeA,CAAE;EAAEC,QAAQ;EAAEC,IAAI;EAAEC,aAAa;EAAEC;AAAS,CAAC,EAAG;EACvE,MAAMC,SAAS,GAAG,IAAAC,+BAAiB,EAAEF,QAAS,CAAC;EAC/C,SAASG,QAAQA,CAAEC,MAAM,EAAG;IAC3B,MAAM;MAAE/B,KAAK;MAAEG;IAAY,CAAC,GAC3B4B,MAAM,CAAEC,YAAiB,CAAC,CAACC,kBAAkB,CAAET,QAAS,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO;MAAExB,KAAK;MAAEG;IAAY,CAAC;EAC9B;EACA,MAAM;IAAEH,KAAK;IAAEG;EAAY,CAAC,GAAG,IAAA+B,eAAS,EAAEJ,QAAQ,EAAE,CAAEN,QAAQ,CAAG,CAAC;EAClE,MAAMrC,KAAK,GAAG,IAAAgD,gBAAO,EAAE,MAAM;IAC5B,OAAOxB,iBAAiB,CAAE;MAAEX,KAAK;MAAEG;IAAY,CAAE,CAAC;EACnD,CAAC,EAAE,CAAEH,KAAK,EAAEG,WAAW,CAAG,CAAC;EAE3B,MAAMiC,QAAQ,GAAKC,QAAQ,IAAM;IAChCX,aAAa,CAAE3B,iBAAiB,CAAEsC,QAAS,CAAE,CAAC;EAC/C,CAAC;EAED,IAAK,CAAET,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,MAAMU,eAAe,GAAG,IAAAC,uBAAe,EAAEd,IAAI,EAAE,CAC9C3C,kBAAkB,EAClB,+BAA+B,CAC9B,CAAC;EAEH,OACC,IAAAqC,MAAA,CAAAC,aAAA,EAACxC,aAAA,CAAA4D,WAAiB;IACjBC,EAAE,EAAG5B,uBAAyB;IAC9B6B,OAAO,EAAGlB,QAAU;IACpBG,QAAQ,EAAGA,QAAU;IACrBxC,KAAK,EAAGA,KAAO;IACfiD,QAAQ,EAAGA,QAAU;IACrBE,eAAe,EAAGA;EAAiB,CACnC,CAAC;AAEJ;;AAEA;AACA;AACA;AACO,MAAME,WAAW,GAAG,IAAAG,aAAI,EAAEpB,eAAgB,CAAC;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPAxC,OAAA,CAAAyD,WAAA,GAAAA,WAAA;AAQO,SAASI,gBAAgBA,CAAEC,SAAS,EAAEC,OAAO,GAAG,KAAK,EAAG;EAC9D,IAAKC,iBAAQ,CAACC,EAAE,KAAK,KAAK,EAAG;IAC5B,OAAO,KAAK;EACb;EAEA,MAAMC,OAAO,GAAG,IAAAV,uBAAe,EAAEM,SAAS,EAAE/D,kBAAmB,CAAC;EAEhE,IAAKmE,OAAO,KAAK,IAAI,EAAG;IACvB,OAAO,IAAI;EACZ;EAEA,IAAKH,OAAO,KAAK,KAAK,EAAG;IACxB,OAAO,CAAC,EACPG,OAAO,EAAE1D,KAAK,IACd0D,OAAO,EAAEC,MAAM,IACfD,OAAO,EAAEE,KAAK,IACdF,OAAO,EAAEjD,KAAK,CACd;EACF;EAEA,OAAO,CAAC,CAAEiD,OAAO,GAAIH,OAAO,CAAE;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,qBAAqBA,CAAEpD,KAAK,EAAEqD,SAAS,EAAG;EACzD,OAAO,IAAA3C,uBAAgB,EAAE;IACxB,GAAGV,KAAK;IACRE,MAAM,EAAE;MACP,GAAGF,KAAK,EAAEE,MAAM;MAChB,CAAEmD,SAAS,GAAIzD;IAChB;EACD,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS0D,aAAaA,CAAE3B,QAAQ,EAAG;EAClC,IAAK,CAAEiB,gBAAgB,CAAEjB,QAAQ,EAAE,OAAQ,CAAC,EAAG;IAC9C,OAAOA,QAAQ;EAChB;;EAEA;EACA,IAAKA,QAAQ,CAACf,UAAU,CAACT,WAAW,EAAG;IACtC,OAAOwB,QAAQ;EAChB;;EAEA;EACA,OAAO;IACN,GAAGA,QAAQ;IACXf,UAAU,EAAE;MACX,GAAGe,QAAQ,CAACf,UAAU;MACtBT,WAAW,EAAE;QACZoD,IAAI,EAAE;MACP;IACD;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,YAAYA,CAAEC,KAAK,EAAEC,eAAe,EAAE9C,UAAU,EAAG;EAC3D,IACC,CAAEgC,gBAAgB,CAAEc,eAAe,EAAE,OAAQ,CAAC,IAC9C,IAAAC,8BAAuB,EAAED,eAAe,EAAE5E,kBAAkB,EAAE,OAAQ,CAAC,EACtE;IACD,OAAO2E,KAAK;EACb;EAEA,MAAMG,aAAa,GAAGC,gBAAgB,CAAEjD,UAAW,CAAC;EACpD,MAAMkD,YAAY,GAAG,IAAAC,mBAAU,EAAEN,KAAK,CAACO,SAAS,EAAEJ,aAAc,CAAC;;EAEjE;EACA;EACAH,KAAK,CAACO,SAAS,GAAGF,YAAY,GAAGA,YAAY,GAAGlE,SAAS;EAEzD,OAAO6D,KAAK;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,gBAAgBA,CAAEjD,UAAU,EAAG;EAC9C,MAAM;IAAET,WAAW;IAAEH;EAAM,CAAC,GAAGY,UAAU;EACzC,MAAMqD,gBAAgB,GAAG,IAAAC,yBAAiB,EAAE,cAAc,EAAE/D,WAAY,CAAC;EAEzE,OAAO,IAAA4D,mBAAU,EAAE;IAClB,kBAAkB,EAAE5D,WAAW,IAAIH,KAAK,EAAEE,MAAM,EAAEX,KAAK;IACvD,CAAE0E,gBAAgB,GAAI,CAAC,CAAEA;EAC1B,CAAE,CAAC;AACJ;AAEA,SAASE,aAAaA,CAAE;EAAE1C,IAAI;EAAEtB,WAAW;EAAEH;AAAM,CAAC,EAAG;EACtD,MAAM;IAAEf;EAAO,CAAC,GAAG,IAAAmF,4CAAmC,EAAC,CAAC;EAExD,IACC,CAAExB,gBAAgB,CAAEnB,IAAI,EAAE,OAAQ,CAAC,IACnC,IAAAkC,8BAAuB,EAAElC,IAAI,EAAE3C,kBAAkB,EAAE,OAAQ,CAAC,EAC3D;IACD,OAAO,CAAC,CAAC;EACV;EAEA,MAAM;IAAES,KAAK,EAAEa;EAAiB,CAAC,GAAGZ,mBAAmB,CAAE;IACxDP,MAAM;IACNQ,UAAU,EAAEU;EACb,CAAE,CAAC;EACH,MAAM;IAAEZ,KAAK,EAAE8E;EAAe,CAAC,GAAG7E,mBAAmB,CAAE;IACtDP,MAAM;IACNQ,UAAU,EAAEI,wBAAwB,CAAEG,KAAK,EAAEE,MAAM,EAAEoE,GAAG,EAAE/E,KAAM;EACjE,CAAE,CAAC;EACH,MAAM;IAAEA,KAAK,EAAEgF;EAAiB,CAAC,GAAG/E,mBAAmB,CAAE;IACxDP,MAAM;IACNQ,UAAU,EAAEI,wBAAwB,CAAEG,KAAK,EAAEE,MAAM,EAAEsE,KAAK,EAAEjF,KAAM;EACnE,CAAE,CAAC;EAEH,MAAM;IAAEA,KAAK,EAAEkF;EAAkB,CAAC,GAAGjF,mBAAmB,CAAE;IACzDP,MAAM;IACNQ,UAAU,EAAEI,wBAAwB,CAAEG,KAAK,EAAEE,MAAM,EAAEwE,MAAM,EAAEnF,KAAM;EACpE,CAAE,CAAC;EACH,MAAM;IAAEA,KAAK,EAAEoF;EAAgB,CAAC,GAAGnF,mBAAmB,CAAE;IACvDP,MAAM;IACNQ,UAAU,EAAEI,wBAAwB,CAAEG,KAAK,EAAEE,MAAM,EAAE0E,IAAI,EAAErF,KAAM;EAClE,CAAE,CAAC;EAEH,MAAMsF,WAAW,GAAG;IACnBR,cAAc,EAAEA,cAAc,IAAIjE,gBAAgB;IAClDmE,gBAAgB,EAAEA,gBAAgB,IAAInE,gBAAgB;IACtDqE,iBAAiB,EAAEA,iBAAiB,IAAIrE,gBAAgB;IACxDuE,eAAe,EAAEA,eAAe,IAAIvE;EACrC,CAAC;EAED,OAAOoD,YAAY,CAClB;IAAExD,KAAK,EAAE,IAAAU,uBAAgB,EAAEmE,WAAY,CAAC,IAAI,CAAC;EAAE,CAAC,EAChDpD,IAAI,EACJ;IAAEtB,WAAW;IAAEH;EAAM,CACtB,CAAC;AACF;AAAC,IAAA8E,QAAA,GAEc;EACdX,aAAa;EACbY,aAAa,EAAE,CAAE,aAAa,EAAE,OAAO,CAAE;EACzCC,UAAUA,CAAEvD,IAAI,EAAG;IAClB,OAAOmB,gBAAgB,CAAEnB,IAAI,EAAE,OAAQ,CAAC;EACzC;AACD,CAAC;AAAA1C,OAAA,CAAAsC,OAAA,GAAAyD,QAAA;AAED,IAAAG,gBAAS,EACR,0BAA0B,EAC1B,2BAA2B,EAC3B3B,aACD,CAAC;AAED,IAAA2B,gBAAS,EACR,kCAAkC,EAClC,0BAA0B,EAC1BzB,YACD,CAAC"}
@@ -4,18 +4,17 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.COLOR_SUPPORT_KEY = void 0;
8
- exports.ColorEdit = ColorEdit;
9
- exports.addEditProps = addEditProps;
7
+ exports.ColorEdit = exports.COLOR_SUPPORT_KEY = void 0;
10
8
  exports.addSaveProps = addSaveProps;
11
9
  exports.addTransforms = addTransforms;
12
- exports.withColorPaletteStyles = void 0;
10
+ exports.default = void 0;
13
11
  var _react = require("react");
14
12
  var _classnames = _interopRequireDefault(require("classnames"));
15
13
  var _hooks = require("@wordpress/hooks");
16
14
  var _blocks = require("@wordpress/blocks");
17
15
  var _element = require("@wordpress/element");
18
16
  var _compose = require("@wordpress/compose");
17
+ var _data = require("@wordpress/data");
19
18
  var _colors = require("../components/colors");
20
19
  var _gradients = require("../components/gradients");
21
20
  var _utils = require("./utils");
@@ -23,6 +22,7 @@ var _useSettings = require("../components/use-settings");
23
22
  var _inspectorControls = _interopRequireDefault(require("../components/inspector-controls"));
24
23
  var _colorPanel = _interopRequireWildcard(require("../components/global-styles/color-panel"));
25
24
  var _contrastChecker = _interopRequireDefault(require("./contrast-checker"));
25
+ var _store = require("../store");
26
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
27
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
28
28
  /**
@@ -39,8 +39,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
39
39
 
40
40
  const COLOR_SUPPORT_KEY = 'color';
41
41
  exports.COLOR_SUPPORT_KEY = COLOR_SUPPORT_KEY;
42
- const hasColorSupport = blockType => {
43
- const colorSupport = (0, _blocks.getBlockSupport)(blockType, COLOR_SUPPORT_KEY);
42
+ const hasColorSupport = blockNameOrType => {
43
+ const colorSupport = (0, _blocks.getBlockSupport)(blockNameOrType, COLOR_SUPPORT_KEY);
44
44
  return colorSupport && (colorSupport.link === true || colorSupport.gradient === true || colorSupport.background !== false || colorSupport.text !== false);
45
45
  };
46
46
  const hasLinkColorSupport = blockType => {
@@ -50,8 +50,8 @@ const hasLinkColorSupport = blockType => {
50
50
  const colorSupport = (0, _blocks.getBlockSupport)(blockType, COLOR_SUPPORT_KEY);
51
51
  return colorSupport !== null && typeof colorSupport === 'object' && !!colorSupport.link;
52
52
  };
53
- const hasGradientSupport = blockType => {
54
- const colorSupport = (0, _blocks.getBlockSupport)(blockType, COLOR_SUPPORT_KEY);
53
+ const hasGradientSupport = blockNameOrType => {
54
+ const colorSupport = (0, _blocks.getBlockSupport)(blockNameOrType, COLOR_SUPPORT_KEY);
55
55
  return colorSupport !== null && typeof colorSupport === 'object' && !!colorSupport.gradients;
56
56
  };
57
57
  const hasBackgroundColorSupport = blockType => {
@@ -104,17 +104,17 @@ function addAttributes(settings) {
104
104
  /**
105
105
  * Override props assigned to save component to inject colors classnames.
106
106
  *
107
- * @param {Object} props Additional props applied to save element.
108
- * @param {Object} blockType Block type.
109
- * @param {Object} attributes Block attributes.
107
+ * @param {Object} props Additional props applied to save element.
108
+ * @param {Object|string} blockNameOrType Block type.
109
+ * @param {Object} attributes Block attributes.
110
110
  *
111
111
  * @return {Object} Filtered props applied to save element.
112
112
  */
113
- function addSaveProps(props, blockType, attributes) {
114
- if (!hasColorSupport(blockType) || (0, _utils.shouldSkipSerialization)(blockType, COLOR_SUPPORT_KEY)) {
113
+ function addSaveProps(props, blockNameOrType, attributes) {
114
+ if (!hasColorSupport(blockNameOrType) || (0, _utils.shouldSkipSerialization)(blockNameOrType, COLOR_SUPPORT_KEY)) {
115
115
  return props;
116
116
  }
117
- const hasGradient = hasGradientSupport(blockType);
117
+ const hasGradient = hasGradientSupport(blockNameOrType);
118
118
 
119
119
  // I'd have preferred to avoid the "style" attribute usage here
120
120
  const {
@@ -123,7 +123,7 @@ function addSaveProps(props, blockType, attributes) {
123
123
  gradient,
124
124
  style
125
125
  } = attributes;
126
- const shouldSerialize = feature => !(0, _utils.shouldSkipSerialization)(blockType, COLOR_SUPPORT_KEY, feature);
126
+ const shouldSerialize = feature => !(0, _utils.shouldSkipSerialization)(blockNameOrType, COLOR_SUPPORT_KEY, feature);
127
127
 
128
128
  // Primary color classes must come before the `has-text-color`,
129
129
  // `has-background` and `has-link-color` classes to maintain backwards
@@ -143,29 +143,6 @@ function addSaveProps(props, blockType, attributes) {
143
143
  props.className = newClassName ? newClassName : undefined;
144
144
  return props;
145
145
  }
146
-
147
- /**
148
- * Filters registered block settings to extend the block edit wrapper
149
- * to apply the desired styles and classnames properly.
150
- *
151
- * @param {Object} settings Original block settings.
152
- *
153
- * @return {Object} Filtered block settings.
154
- */
155
- function addEditProps(settings) {
156
- if (!hasColorSupport(settings) || (0, _utils.shouldSkipSerialization)(settings, COLOR_SUPPORT_KEY)) {
157
- return settings;
158
- }
159
- const existingGetEditWrapperProps = settings.getEditWrapperProps;
160
- settings.getEditWrapperProps = attributes => {
161
- let props = {};
162
- if (existingGetEditWrapperProps) {
163
- props = existingGetEditWrapperProps(attributes);
164
- }
165
- return addSaveProps(props, settings, attributes);
166
- };
167
- return settings;
168
- }
169
146
  function styleToAttributes(style) {
170
147
  const textColorValue = style?.color?.text;
171
148
  const textColorSlug = textColorValue?.startsWith('var:preset|color|') ? textColorValue.substring('var:preset|color|'.length) : undefined;
@@ -217,35 +194,53 @@ function ColorInspectorControl({
217
194
  resetAllFilter: attributesResetAllFilter
218
195
  }, children);
219
196
  }
220
- function ColorEdit(props) {
221
- const {
222
- clientId,
223
- name,
224
- attributes,
225
- setAttributes
226
- } = props;
227
- const settings = (0, _utils.useBlockSettings)(name);
197
+ function ColorEditPure({
198
+ clientId,
199
+ name,
200
+ setAttributes,
201
+ settings
202
+ }) {
228
203
  const isEnabled = (0, _colorPanel.useHasColorPanel)(settings);
204
+ function selector(select) {
205
+ const {
206
+ style,
207
+ textColor,
208
+ backgroundColor,
209
+ gradient
210
+ } = select(_store.store).getBlockAttributes(clientId) || {};
211
+ return {
212
+ style,
213
+ textColor,
214
+ backgroundColor,
215
+ gradient
216
+ };
217
+ }
218
+ const {
219
+ style,
220
+ textColor,
221
+ backgroundColor,
222
+ gradient
223
+ } = (0, _data.useSelect)(selector, [clientId]);
229
224
  const value = (0, _element.useMemo)(() => {
230
225
  return attributesToStyle({
231
- style: attributes.style,
232
- textColor: attributes.textColor,
233
- backgroundColor: attributes.backgroundColor,
234
- gradient: attributes.gradient
226
+ style,
227
+ textColor,
228
+ backgroundColor,
229
+ gradient
235
230
  });
236
- }, [attributes.style, attributes.textColor, attributes.backgroundColor, attributes.gradient]);
231
+ }, [style, textColor, backgroundColor, gradient]);
237
232
  const onChange = newStyle => {
238
233
  setAttributes(styleToAttributes(newStyle));
239
234
  };
240
235
  if (!isEnabled) {
241
236
  return null;
242
237
  }
243
- const defaultControls = (0, _blocks.getBlockSupport)(props.name, [COLOR_SUPPORT_KEY, '__experimentalDefaultControls']);
238
+ const defaultControls = (0, _blocks.getBlockSupport)(name, [COLOR_SUPPORT_KEY, '__experimentalDefaultControls']);
244
239
  const enableContrastChecking = _element.Platform.OS === 'web' && !value?.color?.gradient && (settings?.color?.text || settings?.color?.link) &&
245
240
  // Contrast checking is enabled by default.
246
241
  // Deactivating it requires `enableContrastChecker` to have
247
242
  // an explicit value of `false`.
248
- false !== (0, _blocks.getBlockSupport)(props.name, [COLOR_SUPPORT_KEY, 'enableContrastChecker']);
243
+ false !== (0, _blocks.getBlockSupport)(name, [COLOR_SUPPORT_KEY, 'enableContrastChecker']);
249
244
  return (0, _react.createElement)(_colorPanel.default, {
250
245
  as: ColorInspectorControl,
251
246
  panelId: clientId,
@@ -253,35 +248,28 @@ function ColorEdit(props) {
253
248
  value: value,
254
249
  onChange: onChange,
255
250
  defaultControls: defaultControls,
256
- enableContrastChecker: false !== (0, _blocks.getBlockSupport)(props.name, [COLOR_SUPPORT_KEY, 'enableContrastChecker'])
251
+ enableContrastChecker: false !== (0, _blocks.getBlockSupport)(name, [COLOR_SUPPORT_KEY, 'enableContrastChecker'])
257
252
  }, enableContrastChecking && (0, _react.createElement)(_contrastChecker.default, {
258
253
  clientId: clientId
259
254
  }));
260
255
  }
261
256
 
262
- /**
263
- * This adds inline styles for color palette colors.
264
- * Ideally, this is not needed and themes should load their palettes on the editor.
265
- *
266
- * @param {Function} BlockListBlock Original component.
267
- *
268
- * @return {Function} Wrapped component.
269
- */
270
- const withColorPaletteStyles = (0, _compose.createHigherOrderComponent)(BlockListBlock => props => {
271
- const {
272
- name,
273
- attributes
274
- } = props;
275
- const {
276
- backgroundColor,
277
- textColor
278
- } = attributes;
257
+ // We don't want block controls to re-render when typing inside a block. `pure`
258
+ // will prevent re-renders unless props change, so only pass the needed props
259
+ // and not the whole attributes object.
260
+ const ColorEdit = (0, _compose.pure)(ColorEditPure);
261
+ exports.ColorEdit = ColorEdit;
262
+ function useBlockProps({
263
+ name,
264
+ backgroundColor,
265
+ textColor,
266
+ gradient,
267
+ style
268
+ }) {
279
269
  const [userPalette, themePalette, defaultPalette] = (0, _useSettings.useSettings)('color.palette.custom', 'color.palette.theme', 'color.palette.default');
280
270
  const colors = (0, _element.useMemo)(() => [...(userPalette || []), ...(themePalette || []), ...(defaultPalette || [])], [userPalette, themePalette, defaultPalette]);
281
271
  if (!hasColorSupport(name) || (0, _utils.shouldSkipSerialization)(name, COLOR_SUPPORT_KEY)) {
282
- return (0, _react.createElement)(BlockListBlock, {
283
- ...props
284
- });
272
+ return {};
285
273
  }
286
274
  const extraStyles = {};
287
275
  if (textColor && !(0, _utils.shouldSkipSerialization)(name, COLOR_SUPPORT_KEY, 'text')) {
@@ -290,20 +278,21 @@ const withColorPaletteStyles = (0, _compose.createHigherOrderComponent)(BlockLis
290
278
  if (backgroundColor && !(0, _utils.shouldSkipSerialization)(name, COLOR_SUPPORT_KEY, 'background')) {
291
279
  extraStyles.backgroundColor = (0, _colors.getColorObjectByAttributeValues)(colors, backgroundColor)?.color;
292
280
  }
293
- let wrapperProps = props.wrapperProps;
294
- wrapperProps = {
295
- ...props.wrapperProps,
296
- style: {
297
- ...extraStyles,
298
- ...props.wrapperProps?.style
299
- }
300
- };
301
- return (0, _react.createElement)(BlockListBlock, {
302
- ...props,
303
- wrapperProps: wrapperProps
281
+ return addSaveProps({
282
+ style: extraStyles
283
+ }, name, {
284
+ textColor,
285
+ backgroundColor,
286
+ gradient,
287
+ style
304
288
  });
305
- }, 'withColorPaletteStyles');
306
- exports.withColorPaletteStyles = withColorPaletteStyles;
289
+ }
290
+ var _default = {
291
+ useBlockProps,
292
+ attributeKeys: ['backgroundColor', 'textColor', 'gradient', 'style'],
293
+ hasSupport: hasColorSupport
294
+ };
295
+ exports.default = _default;
307
296
  const MIGRATION_PATHS = {
308
297
  linkColor: [['style', 'elements', 'link', 'color', 'text']],
309
298
  textColor: [['textColor'], ['style', 'color', 'text']],
@@ -322,7 +311,5 @@ function addTransforms(result, source, index, results) {
322
311
  }
323
312
  (0, _hooks.addFilter)('blocks.registerBlockType', 'core/color/addAttribute', addAttributes);
324
313
  (0, _hooks.addFilter)('blocks.getSaveContent.extraProps', 'core/color/addSaveProps', addSaveProps);
325
- (0, _hooks.addFilter)('blocks.registerBlockType', 'core/color/addEditProps', addEditProps);
326
- (0, _hooks.addFilter)('editor.BlockListBlock', 'core/color/with-color-palette-styles', withColorPaletteStyles);
327
314
  (0, _hooks.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/color/addTransforms', addTransforms);
328
315
  //# sourceMappingURL=color.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_hooks","_blocks","_element","_compose","_colors","_gradients","_utils","_useSettings","_inspectorControls","_colorPanel","_interopRequireWildcard","_contrastChecker","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","COLOR_SUPPORT_KEY","exports","hasColorSupport","blockType","colorSupport","getBlockSupport","link","gradient","background","text","hasLinkColorSupport","Platform","OS","hasGradientSupport","gradients","hasBackgroundColorSupport","hasTextColorSupport","addAttributes","settings","attributes","backgroundColor","assign","type","textColor","addSaveProps","props","shouldSkipSerialization","hasGradient","style","shouldSerialize","feature","textClass","getColorClassName","undefined","gradientClass","__experimentalGetGradientClass","backgroundClass","serializeHasBackground","hasBackground","color","newClassName","classnames","className","elements","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","styleToAttributes","textColorValue","textColorSlug","startsWith","substring","length","backgroundColorValue","backgroundColorSlug","gradientValue","gradientSlug","updatedStyle","cleanEmptyObject","attributesToStyle","ColorInspectorControl","children","resetAllFilter","attributesResetAllFilter","useCallback","existingStyle","_react","createElement","group","ColorEdit","clientId","name","setAttributes","useBlockSettings","isEnabled","useHasColorPanel","value","useMemo","onChange","newStyle","defaultControls","enableContrastChecking","as","panelId","enableContrastChecker","withColorPaletteStyles","createHigherOrderComponent","BlockListBlock","userPalette","themePalette","defaultPalette","useSettings","colors","extraStyles","getColorObjectByAttributeValues","wrapperProps","MIGRATION_PATHS","linkColor","addTransforms","result","source","index","results","destinationBlockType","activeSupports","transformStyles","addFilter"],"sources":["@wordpress/block-editor/src/hooks/color.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { useMemo, Platform, useCallback } from '@wordpress/element';\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetColorClassName,\n\tgetColorObjectByAttributeValues,\n} from '../components/colors';\nimport { __experimentalGetGradientClass } from '../components/gradients';\nimport {\n\tcleanEmptyObject,\n\ttransformStyles,\n\tshouldSkipSerialization,\n\tuseBlockSettings,\n} from './utils';\nimport { useSettings } from '../components/use-settings';\nimport InspectorControls from '../components/inspector-controls';\nimport {\n\tuseHasColorPanel,\n\tdefault as StylesColorPanel,\n} from '../components/global-styles/color-panel';\nimport BlockColorContrastChecker from './contrast-checker';\n\nexport const COLOR_SUPPORT_KEY = 'color';\n\nconst hasColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\treturn (\n\t\tcolorSupport &&\n\t\t( colorSupport.link === true ||\n\t\t\tcolorSupport.gradient === true ||\n\t\t\tcolorSupport.background !== false ||\n\t\t\tcolorSupport.text !== false )\n\t);\n};\n\nconst hasLinkColorSupport = ( blockType ) => {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.link\n\t);\n};\n\nconst hasGradientSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.gradients\n\t);\n};\n\nconst hasBackgroundColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.background !== false;\n};\n\nconst hasTextColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.text !== false;\n};\n\n/**\n * Filters registered block settings, extending attributes to include\n * `backgroundColor` and `textColor` attribute.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasColorSupport( settings ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( ! settings.attributes.backgroundColor ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\tif ( ! settings.attributes.textColor ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\tif ( hasGradientSupport( settings ) && ! settings.attributes.gradient ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tgradient: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override props assigned to save component to inject colors classnames.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addSaveProps( props, blockType, attributes ) {\n\tif (\n\t\t! hasColorSupport( blockType ) ||\n\t\tshouldSkipSerialization( blockType, COLOR_SUPPORT_KEY )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst hasGradient = hasGradientSupport( blockType );\n\n\t// I'd have preferred to avoid the \"style\" attribute usage here\n\tconst { backgroundColor, textColor, gradient, style } = attributes;\n\n\tconst shouldSerialize = ( feature ) =>\n\t\t! shouldSkipSerialization( blockType, COLOR_SUPPORT_KEY, feature );\n\n\t// Primary color classes must come before the `has-text-color`,\n\t// `has-background` and `has-link-color` classes to maintain backwards\n\t// compatibility and avoid block invalidations.\n\tconst textClass = shouldSerialize( 'text' )\n\t\t? getColorClassName( 'color', textColor )\n\t\t: undefined;\n\n\tconst gradientClass = shouldSerialize( 'gradients' )\n\t\t? __experimentalGetGradientClass( gradient )\n\t\t: undefined;\n\n\tconst backgroundClass = shouldSerialize( 'background' )\n\t\t? getColorClassName( 'background-color', backgroundColor )\n\t\t: undefined;\n\n\tconst serializeHasBackground =\n\t\tshouldSerialize( 'background' ) || shouldSerialize( 'gradients' );\n\tconst hasBackground =\n\t\tbackgroundColor ||\n\t\tstyle?.color?.background ||\n\t\t( hasGradient && ( gradient || style?.color?.gradient ) );\n\n\tconst newClassName = classnames(\n\t\tprops.className,\n\t\ttextClass,\n\t\tgradientClass,\n\t\t{\n\t\t\t// Don't apply the background class if there's a custom gradient.\n\t\t\t[ backgroundClass ]:\n\t\t\t\t( ! hasGradient || ! style?.color?.gradient ) &&\n\t\t\t\t!! backgroundClass,\n\t\t\t'has-text-color':\n\t\t\t\tshouldSerialize( 'text' ) &&\n\t\t\t\t( textColor || style?.color?.text ),\n\t\t\t'has-background': serializeHasBackground && hasBackground,\n\t\t\t'has-link-color':\n\t\t\t\tshouldSerialize( 'link' ) && style?.elements?.link?.color,\n\t\t}\n\t);\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Filters registered block settings to extend the block edit wrapper\n * to apply the desired styles and classnames properly.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addEditProps( settings ) {\n\tif (\n\t\t! hasColorSupport( settings ) ||\n\t\tshouldSkipSerialization( settings, COLOR_SUPPORT_KEY )\n\t) {\n\t\treturn settings;\n\t}\n\tconst existingGetEditWrapperProps = settings.getEditWrapperProps;\n\tsettings.getEditWrapperProps = ( attributes ) => {\n\t\tlet props = {};\n\t\tif ( existingGetEditWrapperProps ) {\n\t\t\tprops = existingGetEditWrapperProps( attributes );\n\t\t}\n\t\treturn addSaveProps( props, settings, attributes );\n\t};\n\n\treturn settings;\n}\n\nfunction styleToAttributes( style ) {\n\tconst textColorValue = style?.color?.text;\n\tconst textColorSlug = textColorValue?.startsWith( 'var:preset|color|' )\n\t\t? textColorValue.substring( 'var:preset|color|'.length )\n\t\t: undefined;\n\tconst backgroundColorValue = style?.color?.background;\n\tconst backgroundColorSlug = backgroundColorValue?.startsWith(\n\t\t'var:preset|color|'\n\t)\n\t\t? backgroundColorValue.substring( 'var:preset|color|'.length )\n\t\t: undefined;\n\tconst gradientValue = style?.color?.gradient;\n\tconst gradientSlug = gradientValue?.startsWith( 'var:preset|gradient|' )\n\t\t? gradientValue.substring( 'var:preset|gradient|'.length )\n\t\t: undefined;\n\tconst updatedStyle = { ...style };\n\tupdatedStyle.color = {\n\t\t...updatedStyle.color,\n\t\ttext: textColorSlug ? undefined : textColorValue,\n\t\tbackground: backgroundColorSlug ? undefined : backgroundColorValue,\n\t\tgradient: gradientSlug ? undefined : gradientValue,\n\t};\n\treturn {\n\t\tstyle: cleanEmptyObject( updatedStyle ),\n\t\ttextColor: textColorSlug,\n\t\tbackgroundColor: backgroundColorSlug,\n\t\tgradient: gradientSlug,\n\t};\n}\n\nfunction attributesToStyle( attributes ) {\n\treturn {\n\t\t...attributes.style,\n\t\tcolor: {\n\t\t\t...attributes.style?.color,\n\t\t\ttext: attributes.textColor\n\t\t\t\t? 'var:preset|color|' + attributes.textColor\n\t\t\t\t: attributes.style?.color?.text,\n\t\t\tbackground: attributes.backgroundColor\n\t\t\t\t? 'var:preset|color|' + attributes.backgroundColor\n\t\t\t\t: attributes.style?.color?.background,\n\t\t\tgradient: attributes.gradient\n\t\t\t\t? 'var:preset|gradient|' + attributes.gradient\n\t\t\t\t: attributes.style?.color?.gradient,\n\t\t},\n\t};\n}\n\nfunction ColorInspectorControl( { 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=\"color\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function ColorEdit( props ) {\n\tconst { clientId, name, attributes, setAttributes } = props;\n\tconst settings = useBlockSettings( name );\n\tconst isEnabled = useHasColorPanel( settings );\n\tconst value = useMemo( () => {\n\t\treturn attributesToStyle( {\n\t\t\tstyle: attributes.style,\n\t\t\ttextColor: attributes.textColor,\n\t\t\tbackgroundColor: attributes.backgroundColor,\n\t\t\tgradient: attributes.gradient,\n\t\t} );\n\t}, [\n\t\tattributes.style,\n\t\tattributes.textColor,\n\t\tattributes.backgroundColor,\n\t\tattributes.gradient,\n\t] );\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\tCOLOR_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\tconst enableContrastChecking =\n\t\tPlatform.OS === 'web' &&\n\t\t! value?.color?.gradient &&\n\t\t( settings?.color?.text || settings?.color?.link ) &&\n\t\t// Contrast checking is enabled by default.\n\t\t// Deactivating it requires `enableContrastChecker` to have\n\t\t// an explicit value of `false`.\n\t\tfalse !==\n\t\t\tgetBlockSupport( props.name, [\n\t\t\t\tCOLOR_SUPPORT_KEY,\n\t\t\t\t'enableContrastChecker',\n\t\t\t] );\n\n\treturn (\n\t\t<StylesColorPanel\n\t\t\tas={ ColorInspectorControl }\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\tenableContrastChecker={\n\t\t\t\tfalse !==\n\t\t\t\tgetBlockSupport( props.name, [\n\t\t\t\t\tCOLOR_SUPPORT_KEY,\n\t\t\t\t\t'enableContrastChecker',\n\t\t\t\t] )\n\t\t\t}\n\t\t>\n\t\t\t{ enableContrastChecking && (\n\t\t\t\t<BlockColorContrastChecker clientId={ clientId } />\n\t\t\t) }\n\t\t</StylesColorPanel>\n\t);\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 withColorPaletteStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst { backgroundColor, textColor } = attributes;\n\t\tconst [ userPalette, themePalette, defaultPalette ] = useSettings(\n\t\t\t'color.palette.custom',\n\t\t\t'color.palette.theme',\n\t\t\t'color.palette.default'\n\t\t);\n\n\t\tconst colors = useMemo(\n\t\t\t() => [\n\t\t\t\t...( userPalette || [] ),\n\t\t\t\t...( themePalette || [] ),\n\t\t\t\t...( defaultPalette || [] ),\n\t\t\t],\n\t\t\t[ userPalette, themePalette, defaultPalette ]\n\t\t);\n\t\tif (\n\t\t\t! hasColorSupport( name ) ||\n\t\t\tshouldSkipSerialization( name, COLOR_SUPPORT_KEY )\n\t\t) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\t\tconst extraStyles = {};\n\n\t\tif (\n\t\t\ttextColor &&\n\t\t\t! shouldSkipSerialization( name, COLOR_SUPPORT_KEY, 'text' )\n\t\t) {\n\t\t\textraStyles.color = getColorObjectByAttributeValues(\n\t\t\t\tcolors,\n\t\t\t\ttextColor\n\t\t\t)?.color;\n\t\t}\n\t\tif (\n\t\t\tbackgroundColor &&\n\t\t\t! shouldSkipSerialization( name, COLOR_SUPPORT_KEY, 'background' )\n\t\t) {\n\t\t\textraStyles.backgroundColor = getColorObjectByAttributeValues(\n\t\t\t\tcolors,\n\t\t\t\tbackgroundColor\n\t\t\t)?.color;\n\t\t}\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...extraStyles,\n\t\t\t\t...props.wrapperProps?.style,\n\t\t\t},\n\t\t};\n\n\t\treturn <BlockListBlock { ...props } wrapperProps={ wrapperProps } />;\n\t},\n\t'withColorPaletteStyles'\n);\n\nconst MIGRATION_PATHS = {\n\tlinkColor: [ [ 'style', 'elements', 'link', 'color', 'text' ] ],\n\ttextColor: [ [ 'textColor' ], [ 'style', 'color', 'text' ] ],\n\tbackgroundColor: [\n\t\t[ 'backgroundColor' ],\n\t\t[ 'style', 'color', 'background' ],\n\t],\n\tgradient: [ [ 'gradient' ], [ 'style', 'color', 'gradient' ] ],\n};\n\nexport function addTransforms( result, source, index, results ) {\n\tconst destinationBlockType = result.name;\n\tconst activeSupports = {\n\t\tlinkColor: hasLinkColorSupport( destinationBlockType ),\n\t\ttextColor: hasTextColorSupport( destinationBlockType ),\n\t\tbackgroundColor: hasBackgroundColorSupport( destinationBlockType ),\n\t\tgradient: hasGradientSupport( destinationBlockType ),\n\t};\n\treturn transformStyles(\n\t\tactiveSupports,\n\t\tMIGRATION_PATHS,\n\t\tresult,\n\t\tsource,\n\t\tindex,\n\t\tresults\n\t);\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/color/addAttribute',\n\taddAttributes\n);\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/color/addSaveProps',\n\taddSaveProps\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/color/addEditProps',\n\taddEditProps\n);\n\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/color/with-color-palette-styles',\n\twithColorPaletteStyles\n);\n\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/color/addTransforms',\n\taddTransforms\n);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_hooks","_blocks","_element","_compose","_data","_colors","_gradients","_utils","_useSettings","_inspectorControls","_colorPanel","_interopRequireWildcard","_contrastChecker","_store","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","COLOR_SUPPORT_KEY","exports","hasColorSupport","blockNameOrType","colorSupport","getBlockSupport","link","gradient","background","text","hasLinkColorSupport","blockType","Platform","OS","hasGradientSupport","gradients","hasBackgroundColorSupport","hasTextColorSupport","addAttributes","settings","attributes","backgroundColor","assign","type","textColor","addSaveProps","props","shouldSkipSerialization","hasGradient","style","shouldSerialize","feature","textClass","getColorClassName","undefined","gradientClass","__experimentalGetGradientClass","backgroundClass","serializeHasBackground","hasBackground","color","newClassName","classnames","className","elements","styleToAttributes","textColorValue","textColorSlug","startsWith","substring","length","backgroundColorValue","backgroundColorSlug","gradientValue","gradientSlug","updatedStyle","cleanEmptyObject","attributesToStyle","ColorInspectorControl","children","resetAllFilter","attributesResetAllFilter","useCallback","existingStyle","_react","createElement","group","ColorEditPure","clientId","name","setAttributes","isEnabled","useHasColorPanel","selector","select","blockEditorStore","getBlockAttributes","useSelect","value","useMemo","onChange","newStyle","defaultControls","enableContrastChecking","as","panelId","enableContrastChecker","ColorEdit","pure","useBlockProps","userPalette","themePalette","defaultPalette","useSettings","colors","extraStyles","getColorObjectByAttributeValues","_default","attributeKeys","hasSupport","MIGRATION_PATHS","linkColor","addTransforms","result","source","index","results","destinationBlockType","activeSupports","transformStyles","addFilter"],"sources":["@wordpress/block-editor/src/hooks/color.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { useMemo, Platform, useCallback } from '@wordpress/element';\nimport { pure } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetColorClassName,\n\tgetColorObjectByAttributeValues,\n} from '../components/colors';\nimport { __experimentalGetGradientClass } from '../components/gradients';\nimport {\n\tcleanEmptyObject,\n\ttransformStyles,\n\tshouldSkipSerialization,\n} from './utils';\nimport { useSettings } from '../components/use-settings';\nimport InspectorControls from '../components/inspector-controls';\nimport {\n\tuseHasColorPanel,\n\tdefault as StylesColorPanel,\n} from '../components/global-styles/color-panel';\nimport BlockColorContrastChecker from './contrast-checker';\nimport { store as blockEditorStore } from '../store';\n\nexport const COLOR_SUPPORT_KEY = 'color';\n\nconst hasColorSupport = ( blockNameOrType ) => {\n\tconst colorSupport = getBlockSupport( blockNameOrType, COLOR_SUPPORT_KEY );\n\treturn (\n\t\tcolorSupport &&\n\t\t( colorSupport.link === true ||\n\t\t\tcolorSupport.gradient === true ||\n\t\t\tcolorSupport.background !== false ||\n\t\t\tcolorSupport.text !== false )\n\t);\n};\n\nconst hasLinkColorSupport = ( blockType ) => {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.link\n\t);\n};\n\nconst hasGradientSupport = ( blockNameOrType ) => {\n\tconst colorSupport = getBlockSupport( blockNameOrType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.gradients\n\t);\n};\n\nconst hasBackgroundColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.background !== false;\n};\n\nconst hasTextColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.text !== false;\n};\n\n/**\n * Filters registered block settings, extending attributes to include\n * `backgroundColor` and `textColor` attribute.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasColorSupport( settings ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( ! settings.attributes.backgroundColor ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\tif ( ! settings.attributes.textColor ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\tif ( hasGradientSupport( settings ) && ! settings.attributes.gradient ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tgradient: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override props assigned to save component to inject colors classnames.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object|string} blockNameOrType Block type.\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addSaveProps( props, blockNameOrType, attributes ) {\n\tif (\n\t\t! hasColorSupport( blockNameOrType ) ||\n\t\tshouldSkipSerialization( blockNameOrType, COLOR_SUPPORT_KEY )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst hasGradient = hasGradientSupport( blockNameOrType );\n\n\t// I'd have preferred to avoid the \"style\" attribute usage here\n\tconst { backgroundColor, textColor, gradient, style } = attributes;\n\n\tconst shouldSerialize = ( feature ) =>\n\t\t! shouldSkipSerialization(\n\t\t\tblockNameOrType,\n\t\t\tCOLOR_SUPPORT_KEY,\n\t\t\tfeature\n\t\t);\n\n\t// Primary color classes must come before the `has-text-color`,\n\t// `has-background` and `has-link-color` classes to maintain backwards\n\t// compatibility and avoid block invalidations.\n\tconst textClass = shouldSerialize( 'text' )\n\t\t? getColorClassName( 'color', textColor )\n\t\t: undefined;\n\n\tconst gradientClass = shouldSerialize( 'gradients' )\n\t\t? __experimentalGetGradientClass( gradient )\n\t\t: undefined;\n\n\tconst backgroundClass = shouldSerialize( 'background' )\n\t\t? getColorClassName( 'background-color', backgroundColor )\n\t\t: undefined;\n\n\tconst serializeHasBackground =\n\t\tshouldSerialize( 'background' ) || shouldSerialize( 'gradients' );\n\tconst hasBackground =\n\t\tbackgroundColor ||\n\t\tstyle?.color?.background ||\n\t\t( hasGradient && ( gradient || style?.color?.gradient ) );\n\n\tconst newClassName = classnames(\n\t\tprops.className,\n\t\ttextClass,\n\t\tgradientClass,\n\t\t{\n\t\t\t// Don't apply the background class if there's a custom gradient.\n\t\t\t[ backgroundClass ]:\n\t\t\t\t( ! hasGradient || ! style?.color?.gradient ) &&\n\t\t\t\t!! backgroundClass,\n\t\t\t'has-text-color':\n\t\t\t\tshouldSerialize( 'text' ) &&\n\t\t\t\t( textColor || style?.color?.text ),\n\t\t\t'has-background': serializeHasBackground && hasBackground,\n\t\t\t'has-link-color':\n\t\t\t\tshouldSerialize( 'link' ) && style?.elements?.link?.color,\n\t\t}\n\t);\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\nfunction styleToAttributes( style ) {\n\tconst textColorValue = style?.color?.text;\n\tconst textColorSlug = textColorValue?.startsWith( 'var:preset|color|' )\n\t\t? textColorValue.substring( 'var:preset|color|'.length )\n\t\t: undefined;\n\tconst backgroundColorValue = style?.color?.background;\n\tconst backgroundColorSlug = backgroundColorValue?.startsWith(\n\t\t'var:preset|color|'\n\t)\n\t\t? backgroundColorValue.substring( 'var:preset|color|'.length )\n\t\t: undefined;\n\tconst gradientValue = style?.color?.gradient;\n\tconst gradientSlug = gradientValue?.startsWith( 'var:preset|gradient|' )\n\t\t? gradientValue.substring( 'var:preset|gradient|'.length )\n\t\t: undefined;\n\tconst updatedStyle = { ...style };\n\tupdatedStyle.color = {\n\t\t...updatedStyle.color,\n\t\ttext: textColorSlug ? undefined : textColorValue,\n\t\tbackground: backgroundColorSlug ? undefined : backgroundColorValue,\n\t\tgradient: gradientSlug ? undefined : gradientValue,\n\t};\n\treturn {\n\t\tstyle: cleanEmptyObject( updatedStyle ),\n\t\ttextColor: textColorSlug,\n\t\tbackgroundColor: backgroundColorSlug,\n\t\tgradient: gradientSlug,\n\t};\n}\n\nfunction attributesToStyle( attributes ) {\n\treturn {\n\t\t...attributes.style,\n\t\tcolor: {\n\t\t\t...attributes.style?.color,\n\t\t\ttext: attributes.textColor\n\t\t\t\t? 'var:preset|color|' + attributes.textColor\n\t\t\t\t: attributes.style?.color?.text,\n\t\t\tbackground: attributes.backgroundColor\n\t\t\t\t? 'var:preset|color|' + attributes.backgroundColor\n\t\t\t\t: attributes.style?.color?.background,\n\t\t\tgradient: attributes.gradient\n\t\t\t\t? 'var:preset|gradient|' + attributes.gradient\n\t\t\t\t: attributes.style?.color?.gradient,\n\t\t},\n\t};\n}\n\nfunction ColorInspectorControl( { 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=\"color\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nfunction ColorEditPure( { clientId, name, setAttributes, settings } ) {\n\tconst isEnabled = useHasColorPanel( settings );\n\tfunction selector( select ) {\n\t\tconst { style, textColor, backgroundColor, gradient } =\n\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId ) || {};\n\t\treturn { style, textColor, backgroundColor, gradient };\n\t}\n\tconst { style, textColor, backgroundColor, gradient } = useSelect(\n\t\tselector,\n\t\t[ clientId ]\n\t);\n\tconst value = useMemo( () => {\n\t\treturn attributesToStyle( {\n\t\t\tstyle,\n\t\t\ttextColor,\n\t\t\tbackgroundColor,\n\t\t\tgradient,\n\t\t} );\n\t}, [ style, textColor, backgroundColor, gradient ] );\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\tCOLOR_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\tconst enableContrastChecking =\n\t\tPlatform.OS === 'web' &&\n\t\t! value?.color?.gradient &&\n\t\t( settings?.color?.text || settings?.color?.link ) &&\n\t\t// Contrast checking is enabled by default.\n\t\t// Deactivating it requires `enableContrastChecker` to have\n\t\t// an explicit value of `false`.\n\t\tfalse !==\n\t\t\tgetBlockSupport( name, [\n\t\t\t\tCOLOR_SUPPORT_KEY,\n\t\t\t\t'enableContrastChecker',\n\t\t\t] );\n\n\treturn (\n\t\t<StylesColorPanel\n\t\t\tas={ ColorInspectorControl }\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\tenableContrastChecker={\n\t\t\t\tfalse !==\n\t\t\t\tgetBlockSupport( name, [\n\t\t\t\t\tCOLOR_SUPPORT_KEY,\n\t\t\t\t\t'enableContrastChecker',\n\t\t\t\t] )\n\t\t\t}\n\t\t>\n\t\t\t{ enableContrastChecking && (\n\t\t\t\t<BlockColorContrastChecker clientId={ clientId } />\n\t\t\t) }\n\t\t</StylesColorPanel>\n\t);\n}\n\n// We don't want block controls to re-render when typing inside a block. `pure`\n// will prevent re-renders unless props change, so only pass the needed props\n// and not the whole attributes object.\nexport const ColorEdit = pure( ColorEditPure );\n\nfunction useBlockProps( {\n\tname,\n\tbackgroundColor,\n\ttextColor,\n\tgradient,\n\tstyle,\n} ) {\n\tconst [ userPalette, themePalette, defaultPalette ] = useSettings(\n\t\t'color.palette.custom',\n\t\t'color.palette.theme',\n\t\t'color.palette.default'\n\t);\n\n\tconst colors = useMemo(\n\t\t() => [\n\t\t\t...( userPalette || [] ),\n\t\t\t...( themePalette || [] ),\n\t\t\t...( defaultPalette || [] ),\n\t\t],\n\t\t[ userPalette, themePalette, defaultPalette ]\n\t);\n\tif (\n\t\t! hasColorSupport( name ) ||\n\t\tshouldSkipSerialization( name, COLOR_SUPPORT_KEY )\n\t) {\n\t\treturn {};\n\t}\n\tconst extraStyles = {};\n\n\tif (\n\t\ttextColor &&\n\t\t! shouldSkipSerialization( name, COLOR_SUPPORT_KEY, 'text' )\n\t) {\n\t\textraStyles.color = getColorObjectByAttributeValues(\n\t\t\tcolors,\n\t\t\ttextColor\n\t\t)?.color;\n\t}\n\tif (\n\t\tbackgroundColor &&\n\t\t! shouldSkipSerialization( name, COLOR_SUPPORT_KEY, 'background' )\n\t) {\n\t\textraStyles.backgroundColor = getColorObjectByAttributeValues(\n\t\t\tcolors,\n\t\t\tbackgroundColor\n\t\t)?.color;\n\t}\n\n\treturn addSaveProps( { style: extraStyles }, name, {\n\t\ttextColor,\n\t\tbackgroundColor,\n\t\tgradient,\n\t\tstyle,\n\t} );\n}\n\nexport default {\n\tuseBlockProps,\n\tattributeKeys: [ 'backgroundColor', 'textColor', 'gradient', 'style' ],\n\thasSupport: hasColorSupport,\n};\n\nconst MIGRATION_PATHS = {\n\tlinkColor: [ [ 'style', 'elements', 'link', 'color', 'text' ] ],\n\ttextColor: [ [ 'textColor' ], [ 'style', 'color', 'text' ] ],\n\tbackgroundColor: [\n\t\t[ 'backgroundColor' ],\n\t\t[ 'style', 'color', 'background' ],\n\t],\n\tgradient: [ [ 'gradient' ], [ 'style', 'color', 'gradient' ] ],\n};\n\nexport function addTransforms( result, source, index, results ) {\n\tconst destinationBlockType = result.name;\n\tconst activeSupports = {\n\t\tlinkColor: hasLinkColorSupport( destinationBlockType ),\n\t\ttextColor: hasTextColorSupport( destinationBlockType ),\n\t\tbackgroundColor: hasBackgroundColorSupport( destinationBlockType ),\n\t\tgradient: hasGradientSupport( destinationBlockType ),\n\t};\n\treturn transformStyles(\n\t\tactiveSupports,\n\t\tMIGRATION_PATHS,\n\t\tresult,\n\t\tsource,\n\t\tindex,\n\t\tresults\n\t);\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/color/addAttribute',\n\taddAttributes\n);\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/color/addSaveProps',\n\taddSaveProps\n);\n\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/color/addTransforms',\n\taddTransforms\n);\n"],"mappings":"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"}
@@ -3,12 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.withContentLockControls = void 0;
6
+ exports.default = void 0;
7
7
  var _react = require("react");
8
8
  var _components = require("@wordpress/components");
9
- var _compose = require("@wordpress/compose");
10
9
  var _data = require("@wordpress/data");
11
- var _hooks = require("@wordpress/hooks");
12
10
  var _i18n = require("@wordpress/i18n");
13
11
  var _element = require("@wordpress/element");
14
12
  var _store = require("../store");
@@ -39,7 +37,10 @@ function StopEditingAsBlocksOnOutsideSelect({
39
37
  }, [isBlockOrDescendantSelected, stopEditingAsBlock]);
40
38
  return null;
41
39
  }
42
- const withContentLockControls = (0, _compose.createHigherOrderComponent)(BlockEdit => props => {
40
+ function ContentLockControlsPure({
41
+ clientId,
42
+ isSelected
43
+ }) {
43
44
  const {
44
45
  getBlockListSettings,
45
46
  getSettings
@@ -56,11 +57,11 @@ const withContentLockControls = (0, _compose.createHigherOrderComponent)(BlockEd
56
57
  __unstableGetTemporarilyEditingAsBlocks
57
58
  } = select(_store.store);
58
59
  return {
59
- templateLock: getTemplateLock(props.clientId),
60
- isLockedByParent: !!__unstableGetContentLockingParent(props.clientId),
61
- isEditingAsBlocks: __unstableGetTemporarilyEditingAsBlocks() === props.clientId
60
+ templateLock: getTemplateLock(clientId),
61
+ isLockedByParent: !!__unstableGetContentLockingParent(clientId),
62
+ isEditingAsBlocks: __unstableGetTemporarilyEditingAsBlocks() === clientId
62
63
  };
63
- }, [props.clientId]);
64
+ }, [clientId]);
64
65
  const {
65
66
  updateSettings,
66
67
  updateBlockListSettings,
@@ -73,28 +74,25 @@ const withContentLockControls = (0, _compose.createHigherOrderComponent)(BlockEd
73
74
  } = (0, _data.useDispatch)(_store.store);
74
75
  const stopEditingAsBlock = (0, _element.useCallback)(() => {
75
76
  __unstableMarkNextChangeAsNotPersistent();
76
- updateBlockAttributes(props.clientId, {
77
+ updateBlockAttributes(clientId, {
77
78
  templateLock: 'contentOnly'
78
79
  });
79
- updateBlockListSettings(props.clientId, {
80
- ...getBlockListSettings(props.clientId),
80
+ updateBlockListSettings(clientId, {
81
+ ...getBlockListSettings(clientId),
81
82
  templateLock: 'contentOnly'
82
83
  });
83
84
  updateSettings({
84
85
  focusMode: focusModeToRevert.current
85
86
  });
86
87
  __unstableSetTemporarilyEditingAsBlocks();
87
- }, [props.clientId, updateSettings, updateBlockListSettings, getBlockListSettings, __unstableMarkNextChangeAsNotPersistent, updateBlockAttributes, __unstableSetTemporarilyEditingAsBlocks]);
88
+ }, [clientId, updateSettings, updateBlockListSettings, getBlockListSettings, __unstableMarkNextChangeAsNotPersistent, updateBlockAttributes, __unstableSetTemporarilyEditingAsBlocks]);
88
89
  if (!isContentLocked && !isEditingAsBlocks) {
89
- return (0, _react.createElement)(BlockEdit, {
90
- key: "edit",
91
- ...props
92
- });
90
+ return null;
93
91
  }
94
92
  const showStopEditingAsBlocks = isEditingAsBlocks && !isContentLocked;
95
- const showStartEditingAsBlocks = !isEditingAsBlocks && isContentLocked && props.isSelected;
93
+ const showStartEditingAsBlocks = !isEditingAsBlocks && isContentLocked && isSelected;
96
94
  return (0, _react.createElement)(_react.Fragment, null, showStopEditingAsBlocks && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(StopEditingAsBlocksOnOutsideSelect, {
97
- clientId: props.clientId,
95
+ clientId: clientId,
98
96
  stopEditingAsBlock: stopEditingAsBlock
99
97
  }), (0, _react.createElement)(_components2.BlockControls, {
100
98
  group: "other"
@@ -107,25 +105,27 @@ const withContentLockControls = (0, _compose.createHigherOrderComponent)(BlockEd
107
105
  }) => (0, _react.createElement)(_components.MenuItem, {
108
106
  onClick: () => {
109
107
  __unstableMarkNextChangeAsNotPersistent();
110
- updateBlockAttributes(props.clientId, {
108
+ updateBlockAttributes(clientId, {
111
109
  templateLock: undefined
112
110
  });
113
- updateBlockListSettings(props.clientId, {
114
- ...getBlockListSettings(props.clientId),
111
+ updateBlockListSettings(clientId, {
112
+ ...getBlockListSettings(clientId),
115
113
  templateLock: false
116
114
  });
117
115
  focusModeToRevert.current = getSettings().focusMode;
118
116
  updateSettings({
119
117
  focusMode: true
120
118
  });
121
- __unstableSetTemporarilyEditingAsBlocks(props.clientId);
119
+ __unstableSetTemporarilyEditingAsBlocks(clientId);
122
120
  onClose();
123
121
  }
124
- }, (0, _i18n.__)('Modify'))), (0, _react.createElement)(BlockEdit, {
125
- key: "edit",
126
- ...props
127
- }));
128
- }, 'withContentLockControls');
129
- exports.withContentLockControls = withContentLockControls;
130
- (0, _hooks.addFilter)('editor.BlockEdit', 'core/content-lock-ui/with-block-controls', withContentLockControls);
122
+ }, (0, _i18n.__)('Modify'))));
123
+ }
124
+ var _default = {
125
+ edit: ContentLockControlsPure,
126
+ hasSupport() {
127
+ return true;
128
+ }
129
+ };
130
+ exports.default = _default;
131
131
  //# sourceMappingURL=content-lock-ui.js.map