@wordpress/block-editor 12.0.0 → 12.2.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 (627) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/build/autocompleters/block.js +13 -5
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/block-breadcrumb/index.js +6 -3
  6. package/build/components/block-breadcrumb/index.js.map +1 -1
  7. package/build/components/block-controls/slot.js +12 -4
  8. package/build/components/block-controls/slot.js.map +1 -1
  9. package/build/components/block-controls/slot.native.js +10 -1
  10. package/build/components/block-controls/slot.native.js.map +1 -1
  11. package/build/components/block-draggable/index.js +11 -7
  12. package/build/components/block-draggable/index.js.map +1 -1
  13. package/build/components/block-draggable/use-scroll-when-dragging.js +2 -2
  14. package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  15. package/build/components/block-editing-mode/index.js +84 -0
  16. package/build/components/block-editing-mode/index.js.map +1 -0
  17. package/build/components/block-list/block-invalid-warning.native.js +15 -7
  18. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  19. package/build/components/block-list/block-list-block-context.js +15 -0
  20. package/build/components/block-list/block-list-block-context.js.map +1 -0
  21. package/build/components/block-list/block-list-item-cell.native.js +15 -2
  22. package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
  23. package/build/components/block-list/block-list-item.native.js +158 -195
  24. package/build/components/block-list/block-list-item.native.js.map +1 -1
  25. package/build/components/block-list/block-outline.native.js +57 -0
  26. package/build/components/block-list/block-outline.native.js.map +1 -0
  27. package/build/components/block-list/block.js +29 -37
  28. package/build/components/block-list/block.js.map +1 -1
  29. package/build/components/block-list/block.native.js +347 -311
  30. package/build/components/block-list/block.native.js.map +1 -1
  31. package/build/components/block-list/index.native.js +260 -357
  32. package/build/components/block-list/index.native.js.map +1 -1
  33. package/build/components/block-list/insertion-point.native.js +4 -2
  34. package/build/components/block-list/insertion-point.native.js.map +1 -1
  35. package/build/components/block-list/use-block-props/index.js +2 -2
  36. package/build/components/block-list/use-block-props/index.js.map +1 -1
  37. package/build/components/block-list/use-in-between-inserter.js +7 -5
  38. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  39. package/build/components/block-list-appender/index.js +15 -1
  40. package/build/components/block-list-appender/index.js.map +1 -1
  41. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +19 -4
  42. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  43. package/build/components/block-settings-menu/block-settings-dropdown.js +8 -10
  44. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  45. package/build/components/block-settings-menu-controls/index.js +15 -4
  46. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  47. package/build/components/block-styles/preview-panel.js +1 -2
  48. package/build/components/block-styles/preview-panel.js.map +1 -1
  49. package/build/components/block-switcher/block-transformations-menu.js +8 -0
  50. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  51. package/build/components/block-switcher/block-variation-transformations.js +125 -0
  52. package/build/components/block-switcher/block-variation-transformations.js.map +1 -0
  53. package/build/components/block-switcher/index.js +34 -12
  54. package/build/components/block-switcher/index.js.map +1 -1
  55. package/build/components/block-switcher/pattern-transformations-menu.js +3 -3
  56. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  57. package/build/components/block-toolbar/index.js +9 -7
  58. package/build/components/block-toolbar/index.js.map +1 -1
  59. package/build/components/block-tools/block-contextual-toolbar.js +22 -65
  60. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  61. package/build/components/block-tools/insertion-point.js +11 -5
  62. package/build/components/block-tools/insertion-point.js.map +1 -1
  63. package/build/components/block-tools/selected-block-popover.js +3 -8
  64. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  65. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
  66. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  67. package/build/components/convert-to-group-buttons/index.js +7 -2
  68. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  69. package/build/components/convert-to-group-buttons/index.native.js +87 -3
  70. package/build/components/convert-to-group-buttons/index.native.js.map +1 -1
  71. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +23 -37
  72. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  73. package/build/components/global-styles/advanced-panel.js +86 -0
  74. package/build/components/global-styles/advanced-panel.js.map +1 -0
  75. package/build/components/global-styles/color-panel.js +4 -1
  76. package/build/components/global-styles/color-panel.js.map +1 -1
  77. package/build/components/global-styles/dimensions-panel.js +9 -8
  78. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  79. package/build/components/global-styles/hooks.js +1 -2
  80. package/build/components/global-styles/hooks.js.map +1 -1
  81. package/build/components/global-styles/index.js +24 -0
  82. package/build/components/global-styles/index.js.map +1 -1
  83. package/build/components/global-styles/typography-panel.js +1 -1
  84. package/build/components/global-styles/typography-panel.js.map +1 -1
  85. package/build/components/global-styles/use-global-styles-output.js +27 -4
  86. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  87. package/build/components/global-styles/utils.js +30 -0
  88. package/build/components/global-styles/utils.js.map +1 -1
  89. package/build/components/iframe/index.js +14 -7
  90. package/build/components/iframe/index.js.map +1 -1
  91. package/build/components/image-editor/use-save-image.js +24 -8
  92. package/build/components/image-editor/use-save-image.js.map +1 -1
  93. package/build/components/inner-blocks/index.js +2 -1
  94. package/build/components/inner-blocks/index.js.map +1 -1
  95. package/build/components/inner-blocks/index.native.js +7 -7
  96. package/build/components/inner-blocks/index.native.js.map +1 -1
  97. package/build/components/inner-blocks/use-nested-settings-update.js +13 -5
  98. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  99. package/build/components/inserter/index.js +3 -7
  100. package/build/components/inserter/index.js.map +1 -1
  101. package/build/components/inserter/quick-inserter.js +2 -4
  102. package/build/components/inserter/quick-inserter.js.map +1 -1
  103. package/build/components/inserter/search-results.js +19 -6
  104. package/build/components/inserter/search-results.js.map +1 -1
  105. package/build/components/inserter-draggable-blocks/index.js +5 -0
  106. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  107. package/build/components/inspector-controls/fill.js +1 -1
  108. package/build/components/inspector-controls/fill.js.map +1 -1
  109. package/build/components/inspector-controls/fill.native.js +1 -1
  110. package/build/components/inspector-controls/fill.native.js.map +1 -1
  111. package/build/components/inspector-controls/slot.js +3 -6
  112. package/build/components/inspector-controls/slot.js.map +1 -1
  113. package/build/components/inspector-controls/slot.native.js +1 -1
  114. package/build/components/inspector-controls/slot.native.js.map +1 -1
  115. package/build/components/line-height-control/index.js +7 -2
  116. package/build/components/line-height-control/index.js.map +1 -1
  117. package/build/components/link-control/use-internal-input-value.js +9 -8
  118. package/build/components/link-control/use-internal-input-value.js.map +1 -1
  119. package/build/components/list-view/appender.js +6 -1
  120. package/build/components/list-view/appender.js.map +1 -1
  121. package/build/components/list-view/block-contents.js +9 -2
  122. package/build/components/list-view/block-contents.js.map +1 -1
  123. package/build/components/list-view/block-select-button.js +2 -1
  124. package/build/components/list-view/block-select-button.js.map +1 -1
  125. package/build/components/list-view/block.js +25 -29
  126. package/build/components/list-view/block.js.map +1 -1
  127. package/build/components/list-view/branch.js +1 -3
  128. package/build/components/list-view/branch.js.map +1 -1
  129. package/build/components/list-view/index.js +43 -22
  130. package/build/components/list-view/index.js.map +1 -1
  131. package/build/components/list-view/use-list-view-client-ids.js +27 -3
  132. package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
  133. package/build/components/list-view/use-list-view-drop-zone.js +163 -11
  134. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  135. package/build/components/media-placeholder/index.js +68 -7
  136. package/build/components/media-placeholder/index.js.map +1 -1
  137. package/build/components/multi-selection-inspector/index.js +2 -2
  138. package/build/components/multi-selection-inspector/index.js.map +1 -1
  139. package/build/components/preview-options/index.js +6 -1
  140. package/build/components/preview-options/index.js.map +1 -1
  141. package/build/components/publish-date-time-picker/index.js +0 -2
  142. package/build/components/publish-date-time-picker/index.js.map +1 -1
  143. package/build/components/spacing-sizes-control/spacing-input-control.js +1 -1
  144. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  145. package/build/components/url-input/index.js +4 -2
  146. package/build/components/url-input/index.js.map +1 -1
  147. package/build/components/use-block-drop-zone/index.js +25 -15
  148. package/build/components/use-block-drop-zone/index.js.map +1 -1
  149. package/build/components/use-resize-canvas/index.js +8 -1
  150. package/build/components/use-resize-canvas/index.js.map +1 -1
  151. package/build/components/writing-flow/use-arrow-nav.js +13 -7
  152. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  153. package/build/hooks/align.js +4 -8
  154. package/build/hooks/align.js.map +1 -1
  155. package/build/hooks/behaviors.js +115 -0
  156. package/build/hooks/behaviors.js.map +1 -0
  157. package/build/hooks/border.js +1 -1
  158. package/build/hooks/border.js.map +1 -1
  159. package/build/hooks/color.js +1 -1
  160. package/build/hooks/color.js.map +1 -1
  161. package/build/hooks/content-lock-ui.js +8 -12
  162. package/build/hooks/content-lock-ui.js.map +1 -1
  163. package/build/hooks/dimensions.js +0 -30
  164. package/build/hooks/dimensions.js.map +1 -1
  165. package/build/hooks/duotone.js +5 -9
  166. package/build/hooks/duotone.js.map +1 -1
  167. package/build/hooks/index.js +2 -0
  168. package/build/hooks/index.js.map +1 -1
  169. package/build/hooks/index.native.js +8 -0
  170. package/build/hooks/index.native.js.map +1 -1
  171. package/build/hooks/layout.js +10 -11
  172. package/build/hooks/layout.js.map +1 -1
  173. package/build/hooks/position.js +1 -1
  174. package/build/hooks/position.js.map +1 -1
  175. package/build/hooks/style.js +1 -1
  176. package/build/hooks/style.js.map +1 -1
  177. package/build/hooks/use-editor-wrapper-styles.native.js +255 -0
  178. package/build/hooks/use-editor-wrapper-styles.native.js.map +1 -0
  179. package/build/hooks/use-typography-props.js +14 -10
  180. package/build/hooks/use-typography-props.js.map +1 -1
  181. package/build/index.native.js +31 -0
  182. package/build/index.native.js.map +1 -0
  183. package/build/private-apis.js +4 -7
  184. package/build/private-apis.js.map +1 -1
  185. package/build/store/private-actions.js +46 -0
  186. package/build/store/private-actions.js.map +1 -1
  187. package/build/store/private-selectors.js +88 -0
  188. package/build/store/private-selectors.js.map +1 -1
  189. package/build/store/reducer.js +36 -1
  190. package/build/store/reducer.js.map +1 -1
  191. package/build/store/selectors.js +28 -18
  192. package/build/store/selectors.js.map +1 -1
  193. package/build/utils/order-inserter-block-items.js +41 -0
  194. package/build/utils/order-inserter-block-items.js.map +1 -0
  195. package/build/utils/use-should-contextual-toolbar-show.js +16 -12
  196. package/build/utils/use-should-contextual-toolbar-show.js.map +1 -1
  197. package/build-module/autocompleters/block.js +12 -5
  198. package/build-module/autocompleters/block.js.map +1 -1
  199. package/build-module/components/block-breadcrumb/index.js +5 -3
  200. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  201. package/build-module/components/block-controls/slot.js +11 -4
  202. package/build-module/components/block-controls/slot.js.map +1 -1
  203. package/build-module/components/block-controls/slot.native.js +9 -1
  204. package/build-module/components/block-controls/slot.native.js.map +1 -1
  205. package/build-module/components/block-draggable/index.js +10 -6
  206. package/build-module/components/block-draggable/index.js.map +1 -1
  207. package/build-module/components/block-draggable/use-scroll-when-dragging.js +2 -2
  208. package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  209. package/build-module/components/block-editing-mode/index.js +72 -0
  210. package/build-module/components/block-editing-mode/index.js.map +1 -0
  211. package/build-module/components/block-list/block-invalid-warning.native.js +16 -8
  212. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  213. package/build-module/components/block-list/block-list-block-context.js +6 -0
  214. package/build-module/components/block-list/block-list-block-context.js.map +1 -0
  215. package/build-module/components/block-list/block-list-item-cell.native.js +13 -2
  216. package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
  217. package/build-module/components/block-list/block-list-item.native.js +160 -190
  218. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  219. package/build-module/components/block-list/block-outline.native.js +44 -0
  220. package/build-module/components/block-list/block-outline.native.js.map +1 -0
  221. package/build-module/components/block-list/block.js +26 -34
  222. package/build-module/components/block-list/block.js.map +1 -1
  223. package/build-module/components/block-list/block.native.js +345 -310
  224. package/build-module/components/block-list/block.native.js.map +1 -1
  225. package/build-module/components/block-list/index.native.js +263 -355
  226. package/build-module/components/block-list/index.native.js.map +1 -1
  227. package/build-module/components/block-list/insertion-point.native.js +4 -2
  228. package/build-module/components/block-list/insertion-point.native.js.map +1 -1
  229. package/build-module/components/block-list/use-block-props/index.js +1 -1
  230. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  231. package/build-module/components/block-list/use-in-between-inserter.js +6 -5
  232. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  233. package/build-module/components/block-list-appender/index.js +15 -1
  234. package/build-module/components/block-list-appender/index.js.map +1 -1
  235. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +18 -4
  236. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  237. package/build-module/components/block-settings-menu/block-settings-dropdown.js +8 -9
  238. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  239. package/build-module/components/block-settings-menu-controls/index.js +13 -5
  240. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  241. package/build-module/components/block-styles/preview-panel.js +1 -2
  242. package/build-module/components/block-styles/preview-panel.js.map +1 -1
  243. package/build-module/components/block-switcher/block-transformations-menu.js +7 -0
  244. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  245. package/build-module/components/block-switcher/block-variation-transformations.js +108 -0
  246. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -0
  247. package/build-module/components/block-switcher/index.js +33 -12
  248. package/build-module/components/block-switcher/index.js.map +1 -1
  249. package/build-module/components/block-switcher/pattern-transformations-menu.js +3 -3
  250. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  251. package/build-module/components/block-toolbar/index.js +8 -7
  252. package/build-module/components/block-toolbar/index.js.map +1 -1
  253. package/build-module/components/block-tools/block-contextual-toolbar.js +22 -65
  254. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  255. package/build-module/components/block-tools/insertion-point.js +11 -5
  256. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  257. package/build-module/components/block-tools/selected-block-popover.js +3 -7
  258. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  259. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
  260. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  261. package/build-module/components/convert-to-group-buttons/index.js +7 -2
  262. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  263. package/build-module/components/convert-to-group-buttons/index.native.js +76 -1
  264. package/build-module/components/convert-to-group-buttons/index.native.js.map +1 -1
  265. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +22 -36
  266. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  267. package/build-module/components/global-styles/advanced-panel.js +74 -0
  268. package/build-module/components/global-styles/advanced-panel.js.map +1 -0
  269. package/build-module/components/global-styles/color-panel.js +5 -2
  270. package/build-module/components/global-styles/color-panel.js.map +1 -1
  271. package/build-module/components/global-styles/dimensions-panel.js +9 -8
  272. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  273. package/build-module/components/global-styles/hooks.js +1 -2
  274. package/build-module/components/global-styles/hooks.js.map +1 -1
  275. package/build-module/components/global-styles/index.js +3 -1
  276. package/build-module/components/global-styles/index.js.map +1 -1
  277. package/build-module/components/global-styles/typography-panel.js +1 -1
  278. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  279. package/build-module/components/global-styles/use-global-styles-output.js +25 -4
  280. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  281. package/build-module/components/global-styles/utils.js +25 -0
  282. package/build-module/components/global-styles/utils.js.map +1 -1
  283. package/build-module/components/iframe/index.js +15 -8
  284. package/build-module/components/iframe/index.js.map +1 -1
  285. package/build-module/components/image-editor/use-save-image.js +24 -8
  286. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  287. package/build-module/components/inner-blocks/index.js +2 -1
  288. package/build-module/components/inner-blocks/index.js.map +1 -1
  289. package/build-module/components/inner-blocks/index.native.js +7 -6
  290. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  291. package/build-module/components/inner-blocks/use-nested-settings-update.js +13 -5
  292. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  293. package/build-module/components/inserter/index.js +3 -7
  294. package/build-module/components/inserter/index.js.map +1 -1
  295. package/build-module/components/inserter/quick-inserter.js +2 -4
  296. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  297. package/build-module/components/inserter/search-results.js +16 -6
  298. package/build-module/components/inserter/search-results.js.map +1 -1
  299. package/build-module/components/inserter-draggable-blocks/index.js +4 -0
  300. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  301. package/build-module/components/inspector-controls/fill.js +1 -1
  302. package/build-module/components/inspector-controls/fill.js.map +1 -1
  303. package/build-module/components/inspector-controls/fill.native.js +1 -1
  304. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  305. package/build-module/components/inspector-controls/slot.js +4 -7
  306. package/build-module/components/inspector-controls/slot.js.map +1 -1
  307. package/build-module/components/inspector-controls/slot.native.js +1 -1
  308. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  309. package/build-module/components/line-height-control/index.js +7 -2
  310. package/build-module/components/line-height-control/index.js.map +1 -1
  311. package/build-module/components/link-control/use-internal-input-value.js +9 -8
  312. package/build-module/components/link-control/use-internal-input-value.js.map +1 -1
  313. package/build-module/components/list-view/appender.js +6 -2
  314. package/build-module/components/list-view/appender.js.map +1 -1
  315. package/build-module/components/list-view/block-contents.js +9 -3
  316. package/build-module/components/list-view/block-contents.js.map +1 -1
  317. package/build-module/components/list-view/block-select-button.js +2 -1
  318. package/build-module/components/list-view/block-select-button.js.map +1 -1
  319. package/build-module/components/list-view/block.js +24 -29
  320. package/build-module/components/list-view/block.js.map +1 -1
  321. package/build-module/components/list-view/branch.js +1 -3
  322. package/build-module/components/list-view/branch.js.map +1 -1
  323. package/build-module/components/list-view/index.js +44 -23
  324. package/build-module/components/list-view/index.js.map +1 -1
  325. package/build-module/components/list-view/use-list-view-client-ids.js +26 -3
  326. package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
  327. package/build-module/components/list-view/use-list-view-drop-zone.js +160 -11
  328. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  329. package/build-module/components/media-placeholder/index.js +66 -7
  330. package/build-module/components/media-placeholder/index.js.map +1 -1
  331. package/build-module/components/multi-selection-inspector/index.js +2 -2
  332. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  333. package/build-module/components/preview-options/index.js +7 -2
  334. package/build-module/components/preview-options/index.js.map +1 -1
  335. package/build-module/components/publish-date-time-picker/index.js +0 -2
  336. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  337. package/build-module/components/spacing-sizes-control/spacing-input-control.js +1 -1
  338. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  339. package/build-module/components/url-input/index.js +4 -2
  340. package/build-module/components/url-input/index.js.map +1 -1
  341. package/build-module/components/use-block-drop-zone/index.js +25 -16
  342. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  343. package/build-module/components/use-resize-canvas/index.js +8 -1
  344. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  345. package/build-module/components/writing-flow/use-arrow-nav.js +13 -7
  346. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  347. package/build-module/hooks/align.js +4 -7
  348. package/build-module/hooks/align.js.map +1 -1
  349. package/build-module/hooks/behaviors.js +97 -0
  350. package/build-module/hooks/behaviors.js.map +1 -0
  351. package/build-module/hooks/border.js +1 -1
  352. package/build-module/hooks/border.js.map +1 -1
  353. package/build-module/hooks/color.js +1 -1
  354. package/build-module/hooks/color.js.map +1 -1
  355. package/build-module/hooks/content-lock-ui.js +8 -11
  356. package/build-module/hooks/content-lock-ui.js.map +1 -1
  357. package/build-module/hooks/dimensions.js +0 -28
  358. package/build-module/hooks/dimensions.js.map +1 -1
  359. package/build-module/hooks/duotone.js +4 -7
  360. package/build-module/hooks/duotone.js.map +1 -1
  361. package/build-module/hooks/index.js +1 -0
  362. package/build-module/hooks/index.js.map +1 -1
  363. package/build-module/hooks/index.native.js +1 -0
  364. package/build-module/hooks/index.native.js.map +1 -1
  365. package/build-module/hooks/layout.js +9 -11
  366. package/build-module/hooks/layout.js.map +1 -1
  367. package/build-module/hooks/position.js +1 -1
  368. package/build-module/hooks/position.js.map +1 -1
  369. package/build-module/hooks/style.js +1 -1
  370. package/build-module/hooks/style.js.map +1 -1
  371. package/build-module/hooks/use-editor-wrapper-styles.native.js +242 -0
  372. package/build-module/hooks/use-editor-wrapper-styles.native.js.map +1 -0
  373. package/build-module/hooks/use-typography-props.js +14 -10
  374. package/build-module/hooks/use-typography-props.js.map +1 -1
  375. package/build-module/index.native.js +6 -0
  376. package/build-module/index.native.js.map +1 -0
  377. package/build-module/private-apis.js +3 -5
  378. package/build-module/private-apis.js.map +1 -1
  379. package/build-module/store/private-actions.js +42 -0
  380. package/build-module/store/private-actions.js.map +1 -1
  381. package/build-module/store/private-selectors.js +79 -0
  382. package/build-module/store/private-selectors.js.map +1 -1
  383. package/build-module/store/reducer.js +34 -1
  384. package/build-module/store/reducer.js.map +1 -1
  385. package/build-module/store/selectors.js +26 -17
  386. package/build-module/store/selectors.js.map +1 -1
  387. package/build-module/utils/order-inserter-block-items.js +32 -0
  388. package/build-module/utils/order-inserter-block-items.js.map +1 -0
  389. package/build-module/utils/use-should-contextual-toolbar-show.js +16 -12
  390. package/build-module/utils/use-should-contextual-toolbar-show.js.map +1 -1
  391. package/build-style/content-rtl.css +32 -14
  392. package/build-style/content.css +32 -14
  393. package/build-style/default-editor-styles-rtl.css +1 -1
  394. package/build-style/default-editor-styles.css +1 -1
  395. package/build-style/style-rtl.css +56 -77
  396. package/build-style/style.css +57 -77
  397. package/package.json +32 -31
  398. package/src/autocompleters/block.js +15 -7
  399. package/src/components/block-breadcrumb/index.js +11 -3
  400. package/src/components/block-breadcrumb/style.scss +2 -1
  401. package/src/components/block-controls/slot.js +8 -4
  402. package/src/components/block-controls/slot.native.js +6 -1
  403. package/src/components/block-draggable/index.js +10 -6
  404. package/src/components/block-draggable/use-scroll-when-dragging.js +8 -2
  405. package/src/components/block-editing-mode/index.js +71 -0
  406. package/src/components/block-list/block-invalid-warning.native.js +17 -9
  407. package/src/components/block-list/block-list-block-context.js +6 -0
  408. package/src/components/block-list/block-list-item-cell.native.js +10 -1
  409. package/src/components/block-list/block-list-item.native.js +180 -208
  410. package/src/components/block-list/block-outline.native.js +58 -0
  411. package/src/components/block-list/block.js +38 -56
  412. package/src/components/block-list/block.native.js +531 -501
  413. package/src/components/block-list/content.scss +5 -6
  414. package/src/components/block-list/index.native.js +324 -382
  415. package/src/components/block-list/insertion-point.native.js +2 -2
  416. package/src/components/block-list/test/block-invalid-warning.native.js +48 -0
  417. package/src/components/block-list/test/index.native.js +205 -0
  418. package/src/components/block-list/use-block-props/index.js +1 -1
  419. package/src/components/block-list/use-in-between-inserter.js +7 -3
  420. package/src/components/block-list-appender/index.js +22 -4
  421. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +26 -1
  422. package/src/components/block-mover/style.scss +1 -0
  423. package/src/components/block-pattern-setup/style.scss +1 -4
  424. package/src/components/block-patterns-list/style.scss +1 -4
  425. package/src/components/block-settings-menu/block-settings-dropdown.js +10 -17
  426. package/src/components/block-settings-menu-controls/index.js +24 -4
  427. package/src/components/block-styles/preview-panel.js +1 -3
  428. package/src/components/block-styles/style.scss +4 -4
  429. package/src/components/block-switcher/block-transformations-menu.js +12 -0
  430. package/src/components/block-switcher/block-variation-transformations.js +115 -0
  431. package/src/components/block-switcher/index.js +38 -5
  432. package/src/components/block-switcher/pattern-transformations-menu.js +5 -5
  433. package/src/components/block-switcher/style.scss +6 -5
  434. package/src/components/block-toolbar/index.js +10 -11
  435. package/src/components/block-tools/block-contextual-toolbar.js +32 -67
  436. package/src/components/block-tools/insertion-point.js +23 -9
  437. package/src/components/block-tools/selected-block-popover.js +3 -5
  438. package/src/components/block-tools/style.scss +8 -0
  439. package/src/components/button-block-appender/content.scss +22 -0
  440. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +16 -2
  441. package/src/components/convert-to-group-buttons/index.js +9 -2
  442. package/src/components/convert-to-group-buttons/index.native.js +79 -1
  443. package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +32 -38
  444. package/src/components/global-styles/advanced-panel.js +82 -0
  445. package/src/components/global-styles/color-panel.js +6 -1
  446. package/src/components/global-styles/dimensions-panel.js +9 -8
  447. package/src/components/global-styles/hooks.js +1 -5
  448. package/src/components/global-styles/index.js +6 -1
  449. package/src/components/global-styles/style.scss +17 -0
  450. package/src/components/global-styles/test/utils.js +57 -1
  451. package/src/components/global-styles/typography-panel.js +1 -1
  452. package/src/components/global-styles/use-global-styles-output.js +21 -3
  453. package/src/components/global-styles/utils.js +27 -0
  454. package/src/components/iframe/index.js +22 -12
  455. package/src/components/image-editor/use-save-image.js +20 -9
  456. package/src/components/inner-blocks/README.md +5 -0
  457. package/src/components/inner-blocks/index.js +2 -0
  458. package/src/components/inner-blocks/index.native.js +16 -6
  459. package/src/components/inner-blocks/use-nested-settings-update.js +20 -3
  460. package/src/components/inserter/index.js +1 -9
  461. package/src/components/inserter/quick-inserter.js +0 -2
  462. package/src/components/inserter/search-results.js +32 -6
  463. package/src/components/inserter-draggable-blocks/index.js +4 -0
  464. package/src/components/inspector-controls/fill.js +1 -1
  465. package/src/components/inspector-controls/fill.native.js +1 -1
  466. package/src/components/inspector-controls/slot.js +4 -9
  467. package/src/components/inspector-controls/slot.native.js +1 -1
  468. package/src/components/line-height-control/index.js +7 -2
  469. package/src/components/line-height-control/stories/index.js +1 -1
  470. package/src/components/link-control/test/index.js +42 -0
  471. package/src/components/link-control/use-internal-input-value.js +8 -7
  472. package/src/components/list-view/appender.js +3 -2
  473. package/src/components/list-view/block-contents.js +32 -20
  474. package/src/components/list-view/block-select-button.js +5 -1
  475. package/src/components/list-view/block.js +34 -37
  476. package/src/components/list-view/branch.js +1 -7
  477. package/src/components/list-view/index.js +42 -17
  478. package/src/components/list-view/style.scss +7 -7
  479. package/src/components/list-view/test/use-list-view-drop-zone.js +88 -12
  480. package/src/components/list-view/use-list-view-client-ids.js +21 -4
  481. package/src/components/list-view/use-list-view-drop-zone.js +194 -11
  482. package/src/components/media-placeholder/index.js +74 -1
  483. package/src/components/multi-selection-inspector/index.js +2 -2
  484. package/src/components/preview-options/index.js +9 -2
  485. package/src/components/publish-date-time-picker/index.js +0 -2
  486. package/src/components/spacing-sizes-control/spacing-input-control.js +1 -0
  487. package/src/components/url-input/README.md +6 -0
  488. package/src/components/url-input/index.js +2 -2
  489. package/src/components/use-block-drop-zone/index.js +31 -17
  490. package/src/components/use-resize-canvas/index.js +9 -1
  491. package/src/components/writing-flow/test/index.js +15 -0
  492. package/src/components/writing-flow/use-arrow-nav.js +17 -4
  493. package/src/hooks/align.js +5 -12
  494. package/src/hooks/behaviors.js +104 -0
  495. package/src/hooks/border.js +2 -1
  496. package/src/hooks/color.js +2 -1
  497. package/src/hooks/content-lock-ui.js +3 -15
  498. package/src/hooks/dimensions.js +0 -40
  499. package/src/hooks/duotone.js +4 -11
  500. package/src/hooks/index.js +1 -0
  501. package/src/hooks/index.native.js +1 -0
  502. package/src/hooks/layout.js +14 -20
  503. package/src/hooks/position.js +2 -1
  504. package/src/hooks/style.js +2 -1
  505. package/src/hooks/test/use-editor-wrapper-styles.native.js +282 -0
  506. package/src/hooks/test/use-typography-props.js +47 -2
  507. package/src/hooks/use-editor-wrapper-styles.native.js +250 -0
  508. package/src/hooks/use-editor-wrapper-styles.native.scss +11 -0
  509. package/src/hooks/use-typography-props.js +10 -11
  510. package/src/index.native.js +6 -0
  511. package/src/private-apis.js +2 -4
  512. package/src/store/private-actions.js +39 -0
  513. package/src/store/private-selectors.js +95 -0
  514. package/src/store/reducer.js +27 -0
  515. package/src/store/selectors.js +25 -15
  516. package/src/store/test/private-actions.js +32 -1
  517. package/src/store/test/private-selectors.js +158 -0
  518. package/src/store/test/reducer.js +48 -0
  519. package/src/style.scss +0 -3
  520. package/src/utils/order-inserter-block-items.js +26 -0
  521. package/src/utils/use-should-contextual-toolbar-show.js +19 -9
  522. package/tsconfig.json +1 -0
  523. package/tsconfig.tsbuildinfo +1 -1
  524. package/build/components/block-list/block-list-compact.native.js +0 -75
  525. package/build/components/block-list/block-list-compact.native.js.map +0 -1
  526. package/build/components/off-canvas-editor/appender.js +0 -125
  527. package/build/components/off-canvas-editor/appender.js.map +0 -1
  528. package/build/components/off-canvas-editor/block-contents.js +0 -141
  529. package/build/components/off-canvas-editor/block-contents.js.map +0 -1
  530. package/build/components/off-canvas-editor/block-select-button.js +0 -126
  531. package/build/components/off-canvas-editor/block-select-button.js.map +0 -1
  532. package/build/components/off-canvas-editor/block.js +0 -297
  533. package/build/components/off-canvas-editor/block.js.map +0 -1
  534. package/build/components/off-canvas-editor/branch.js +0 -197
  535. package/build/components/off-canvas-editor/branch.js.map +0 -1
  536. package/build/components/off-canvas-editor/context.js +0 -19
  537. package/build/components/off-canvas-editor/context.js.map +0 -1
  538. package/build/components/off-canvas-editor/drop-indicator.js +0 -118
  539. package/build/components/off-canvas-editor/drop-indicator.js.map +0 -1
  540. package/build/components/off-canvas-editor/expander.js +0 -41
  541. package/build/components/off-canvas-editor/expander.js.map +0 -1
  542. package/build/components/off-canvas-editor/index.js +0 -236
  543. package/build/components/off-canvas-editor/index.js.map +0 -1
  544. package/build/components/off-canvas-editor/leaf-more-menu.js +0 -146
  545. package/build/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
  546. package/build/components/off-canvas-editor/leaf.js +0 -60
  547. package/build/components/off-canvas-editor/leaf.js.map +0 -1
  548. package/build/components/off-canvas-editor/link-ui.js +0 -186
  549. package/build/components/off-canvas-editor/link-ui.js.map +0 -1
  550. package/build/components/off-canvas-editor/update-attributes.js +0 -108
  551. package/build/components/off-canvas-editor/update-attributes.js.map +0 -1
  552. package/build/components/off-canvas-editor/use-block-selection.js +0 -139
  553. package/build/components/off-canvas-editor/use-block-selection.js.map +0 -1
  554. package/build/components/off-canvas-editor/use-inserted-block.js +0 -58
  555. package/build/components/off-canvas-editor/use-inserted-block.js.map +0 -1
  556. package/build/components/off-canvas-editor/use-list-view-client-ids.js +0 -33
  557. package/build/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
  558. package/build/components/off-canvas-editor/use-list-view-drop-zone.js +0 -235
  559. package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
  560. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -60
  561. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
  562. package/build/components/off-canvas-editor/utils.js +0 -60
  563. package/build/components/off-canvas-editor/utils.js.map +0 -1
  564. package/build-module/components/block-list/block-list-compact.native.js +0 -60
  565. package/build-module/components/block-list/block-list-compact.native.js.map +0 -1
  566. package/build-module/components/off-canvas-editor/appender.js +0 -108
  567. package/build-module/components/off-canvas-editor/appender.js.map +0 -1
  568. package/build-module/components/off-canvas-editor/block-contents.js +0 -121
  569. package/build-module/components/off-canvas-editor/block-contents.js.map +0 -1
  570. package/build-module/components/off-canvas-editor/block-select-button.js +0 -107
  571. package/build-module/components/off-canvas-editor/block-select-button.js.map +0 -1
  572. package/build-module/components/off-canvas-editor/block.js +0 -273
  573. package/build-module/components/off-canvas-editor/block.js.map +0 -1
  574. package/build-module/components/off-canvas-editor/branch.js +0 -179
  575. package/build-module/components/off-canvas-editor/branch.js.map +0 -1
  576. package/build-module/components/off-canvas-editor/context.js +0 -7
  577. package/build-module/components/off-canvas-editor/context.js.map +0 -1
  578. package/build-module/components/off-canvas-editor/drop-indicator.js +0 -111
  579. package/build-module/components/off-canvas-editor/drop-indicator.js.map +0 -1
  580. package/build-module/components/off-canvas-editor/expander.js +0 -32
  581. package/build-module/components/off-canvas-editor/expander.js.map +0 -1
  582. package/build-module/components/off-canvas-editor/index.js +0 -213
  583. package/build-module/components/off-canvas-editor/index.js.map +0 -1
  584. package/build-module/components/off-canvas-editor/leaf-more-menu.js +0 -128
  585. package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
  586. package/build-module/components/off-canvas-editor/leaf.js +0 -45
  587. package/build-module/components/off-canvas-editor/leaf.js.map +0 -1
  588. package/build-module/components/off-canvas-editor/link-ui.js +0 -166
  589. package/build-module/components/off-canvas-editor/link-ui.js.map +0 -1
  590. package/build-module/components/off-canvas-editor/update-attributes.js +0 -97
  591. package/build-module/components/off-canvas-editor/update-attributes.js.map +0 -1
  592. package/build-module/components/off-canvas-editor/use-block-selection.js +0 -124
  593. package/build-module/components/off-canvas-editor/use-block-selection.js.map +0 -1
  594. package/build-module/components/off-canvas-editor/use-inserted-block.js +0 -47
  595. package/build-module/components/off-canvas-editor/use-inserted-block.js.map +0 -1
  596. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js +0 -24
  597. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
  598. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +0 -220
  599. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
  600. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -50
  601. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
  602. package/build-module/components/off-canvas-editor/utils.js +0 -44
  603. package/build-module/components/off-canvas-editor/utils.js.map +0 -1
  604. package/src/components/block-list/block-list-compact.native.js +0 -63
  605. package/src/components/off-canvas-editor/README.md +0 -5
  606. package/src/components/off-canvas-editor/appender.js +0 -124
  607. package/src/components/off-canvas-editor/block-contents.js +0 -156
  608. package/src/components/off-canvas-editor/block-select-button.js +0 -128
  609. package/src/components/off-canvas-editor/block.js +0 -347
  610. package/src/components/off-canvas-editor/branch.js +0 -238
  611. package/src/components/off-canvas-editor/context.js +0 -8
  612. package/src/components/off-canvas-editor/drop-indicator.js +0 -126
  613. package/src/components/off-canvas-editor/expander.js +0 -26
  614. package/src/components/off-canvas-editor/index.js +0 -271
  615. package/src/components/off-canvas-editor/leaf-more-menu.js +0 -157
  616. package/src/components/off-canvas-editor/leaf.js +0 -52
  617. package/src/components/off-canvas-editor/link-ui.js +0 -167
  618. package/src/components/off-canvas-editor/style.scss +0 -34
  619. package/src/components/off-canvas-editor/test/use-inserted-block.js +0 -108
  620. package/src/components/off-canvas-editor/test/utils.js +0 -50
  621. package/src/components/off-canvas-editor/update-attributes.js +0 -99
  622. package/src/components/off-canvas-editor/use-block-selection.js +0 -169
  623. package/src/components/off-canvas-editor/use-inserted-block.js +0 -47
  624. package/src/components/off-canvas-editor/use-list-view-client-ids.js +0 -29
  625. package/src/components/off-canvas-editor/use-list-view-drop-zone.js +0 -260
  626. package/src/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -58
  627. package/src/components/off-canvas-editor/utils.js +0 -58
@@ -0,0 +1,97 @@
1
+ import { createElement, Fragment } from "@wordpress/element";
2
+
3
+ /**
4
+ * WordPress dependencies
5
+ */
6
+ import { addFilter } from '@wordpress/hooks';
7
+ import { SelectControl } from '@wordpress/components';
8
+ import { __ } from '@wordpress/i18n';
9
+ import { createHigherOrderComponent } from '@wordpress/compose';
10
+ import { select } from '@wordpress/data';
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+
15
+ import { InspectorControls } from '../components';
16
+ import { store as blockEditorStore } from '../store';
17
+ /**
18
+ * External dependencies
19
+ */
20
+
21
+ import merge from 'deepmerge';
22
+ /**
23
+ * Override the default edit UI to include a new block inspector control for
24
+ * assigning behaviors to blocks if behaviors are enabled in the theme.json.
25
+ *
26
+ * Currently, only the `core/image` block is supported.
27
+ *
28
+ * @param {WPComponent} BlockEdit Original component.
29
+ *
30
+ * @return {WPComponent} Wrapped component.
31
+ */
32
+
33
+ export const withBehaviors = createHigherOrderComponent(BlockEdit => {
34
+ return props => {
35
+ var _select$getSettings, _select$getSettings$_, _select$getSettings$_2, _select$getSettings$_3, _select$getBehaviors, _select$getBehaviors$;
36
+
37
+ // Only add behaviors to the core/image block.
38
+ if (props.name !== 'core/image') {
39
+ return createElement(BlockEdit, props);
40
+ }
41
+
42
+ const settings = (_select$getSettings = select(blockEditorStore).getSettings()) === null || _select$getSettings === void 0 ? void 0 : (_select$getSettings$_ = _select$getSettings.__experimentalFeatures) === null || _select$getSettings$_ === void 0 ? void 0 : (_select$getSettings$_2 = _select$getSettings$_.blocks) === null || _select$getSettings$_2 === void 0 ? void 0 : (_select$getSettings$_3 = _select$getSettings$_2[props.name]) === null || _select$getSettings$_3 === void 0 ? void 0 : _select$getSettings$_3.behaviors;
43
+
44
+ if (!settings || // If every behavior is disabled, do not show the behaviors inspector control.
45
+ Object.entries(settings).every(_ref => {
46
+ let [, value] = _ref;
47
+ return !value;
48
+ })) {
49
+ return createElement(BlockEdit, props);
50
+ }
51
+
52
+ const {
53
+ behaviors: blockBehaviors
54
+ } = props.attributes; // Get the theme behaviors for the block from the theme.json.
55
+
56
+ const themeBehaviors = (_select$getBehaviors = select(blockEditorStore).getBehaviors()) === null || _select$getBehaviors === void 0 ? void 0 : (_select$getBehaviors$ = _select$getBehaviors.blocks) === null || _select$getBehaviors$ === void 0 ? void 0 : _select$getBehaviors$[props.name]; // Block behaviors take precedence over theme behaviors.
57
+
58
+ const behaviors = merge(themeBehaviors, blockBehaviors || {});
59
+ return createElement(Fragment, null, createElement(BlockEdit, props), createElement(InspectorControls, {
60
+ group: "advanced"
61
+ }, createElement(SelectControl, {
62
+ __nextHasNoMarginBottom: true,
63
+ label: __('Behaviors') // At the moment we are only supporting one behavior (Lightbox)
64
+ ,
65
+ value: behaviors !== null && behaviors !== void 0 && behaviors.lightbox ? 'lightbox' : '',
66
+ options: Object.entries(settings).filter(_ref2 => {
67
+ let [, behaviorValue] = _ref2;
68
+ return behaviorValue;
69
+ }) // Filter out behaviors that are disabled.
70
+ .map(_ref3 => {
71
+ let [behaviorName] = _ref3;
72
+ return {
73
+ value: behaviorName,
74
+ label: // Capitalize the first letter of the behavior name.
75
+ behaviorName[0].toUpperCase() + behaviorName.slice(1).toLowerCase()
76
+ };
77
+ }).concat({
78
+ value: '',
79
+ label: __('No behaviors')
80
+ }),
81
+ onChange: nextValue => {
82
+ // If the user selects something, it means that they want to
83
+ // change the default value (true) so we save it in the attributes.
84
+ props.setAttributes({
85
+ behaviors: {
86
+ lightbox: nextValue === 'lightbox'
87
+ }
88
+ });
89
+ },
90
+ hideCancelButton: true,
91
+ help: __('Add behaviors.'),
92
+ size: "__unstable-large"
93
+ })));
94
+ };
95
+ }, 'withBehaviors');
96
+ addFilter('editor.BlockEdit', 'core/behaviors/with-inspector-control', withBehaviors);
97
+ //# sourceMappingURL=behaviors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/behaviors.js"],"names":["addFilter","SelectControl","__","createHigherOrderComponent","select","InspectorControls","store","blockEditorStore","merge","withBehaviors","BlockEdit","props","name","settings","getSettings","__experimentalFeatures","blocks","behaviors","Object","entries","every","value","blockBehaviors","attributes","themeBehaviors","getBehaviors","lightbox","filter","behaviorValue","map","behaviorName","label","toUpperCase","slice","toLowerCase","concat","nextValue","setAttributes"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,kBAA1B;AACA,SAASC,aAAT,QAA8B,uBAA9B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,0BAAT,QAA2C,oBAA3C;AACA,SAASC,MAAT,QAAuB,iBAAvB;AAEA;AACA;AACA;;AACA,SAASC,iBAAT,QAAkC,eAAlC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,UAA1C;AAEA;AACA;AACA;;AACA,OAAOC,KAAP,MAAkB,WAAlB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,aAAa,GAAGN,0BAA0B,CAAIO,SAAF,IAAiB;AACzE,SAASC,KAAF,IAAa;AAAA;;AACnB;AACA,QAAKA,KAAK,CAACC,IAAN,KAAe,YAApB,EAAmC;AAClC,aAAO,cAAC,SAAD,EAAgBD,KAAhB,CAAP;AACA;;AAED,UAAME,QAAQ,0BACbT,MAAM,CAAEG,gBAAF,CAAN,CAA2BO,WAA3B,EADa,iFACb,oBAA0CC,sBAD7B,oFACb,sBACGC,MAFU,qFACb,uBACaL,KAAK,CAACC,IADnB,CADa,2DACb,uBAC2BK,SAF5B;;AAIA,QACC,CAAEJ,QAAF,IACA;AACAK,IAAAA,MAAM,CAACC,OAAP,CAAgBN,QAAhB,EAA2BO,KAA3B,CAAkC;AAAA,UAAE,GAAIC,KAAJ,CAAF;AAAA,aAAmB,CAAEA,KAArB;AAAA,KAAlC,CAHD,EAIE;AACD,aAAO,cAAC,SAAD,EAAgBV,KAAhB,CAAP;AACA;;AAED,UAAM;AAAEM,MAAAA,SAAS,EAAEK;AAAb,QAAgCX,KAAK,CAACY,UAA5C,CAlBmB,CAoBnB;;AACA,UAAMC,cAAc,2BACnBpB,MAAM,CAAEG,gBAAF,CAAN,CAA2BkB,YAA3B,EADmB,kFACnB,qBAA2CT,MADxB,0DACnB,sBAAqDL,KAAK,CAACC,IAA3D,CADD,CArBmB,CAwBnB;;AACA,UAAMK,SAAS,GAAGT,KAAK,CAAEgB,cAAF,EAAkBF,cAAc,IAAI,EAApC,CAAvB;AAEA,WACC,8BACC,cAAC,SAAD,EAAgBX,KAAhB,CADD,EAEC,cAAC,iBAAD;AAAmB,MAAA,KAAK,EAAC;AAAzB,OACC,cAAC,aAAD;AACC,MAAA,uBAAuB,MADxB;AAEC,MAAA,KAAK,EAAGT,EAAE,CAAE,WAAF,CAFX,CAGC;AAHD;AAIC,MAAA,KAAK,EAAGe,SAAS,SAAT,IAAAA,SAAS,WAAT,IAAAA,SAAS,CAAES,QAAX,GAAsB,UAAtB,GAAmC,EAJ5C;AAKC,MAAA,OAAO,EAAGR,MAAM,CAACC,OAAP,CAAgBN,QAAhB,EACRc,MADQ,CACA;AAAA,YAAE,GAAIC,aAAJ,CAAF;AAAA,eAA2BA,aAA3B;AAAA,OADA,EAC2C;AAD3C,OAERC,GAFQ,CAEH;AAAA,YAAE,CAAEC,YAAF,CAAF;AAAA,eAA0B;AAC/BT,UAAAA,KAAK,EAAES,YADwB;AAE/BC,UAAAA,KAAK,EACJ;AACAD,UAAAA,YAAY,CAAE,CAAF,CAAZ,CAAkBE,WAAlB,KACAF,YAAY,CAACG,KAAb,CAAoB,CAApB,EAAwBC,WAAxB;AAL8B,SAA1B;AAAA,OAFG,EASRC,MATQ,CASA;AACRd,QAAAA,KAAK,EAAE,EADC;AAERU,QAAAA,KAAK,EAAE7B,EAAE,CAAE,cAAF;AAFD,OATA,CALX;AAkBC,MAAA,QAAQ,EAAKkC,SAAF,IAAiB;AAC3B;AACA;AACAzB,QAAAA,KAAK,CAAC0B,aAAN,CAAqB;AACpBpB,UAAAA,SAAS,EAAE;AACVS,YAAAA,QAAQ,EAAEU,SAAS,KAAK;AADd;AADS,SAArB;AAKA,OA1BF;AA2BC,MAAA,gBAAgB,EAAG,IA3BpB;AA4BC,MAAA,IAAI,EAAGlC,EAAE,CAAE,gBAAF,CA5BV;AA6BC,MAAA,IAAI,EAAC;AA7BN,MADD,CAFD,CADD;AAsCA,GAjED;AAkEA,CAnEsD,EAmEpD,eAnEoD,CAAhD;AAqEPF,SAAS,CACR,kBADQ,EAER,uCAFQ,EAGRS,aAHQ,CAAT","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { SelectControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { select } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { InspectorControls } from '../components';\nimport { store as blockEditorStore } from '../store';\n\n/**\n * External dependencies\n */\nimport merge from 'deepmerge';\n\n/**\n * Override the default edit UI to include a new block inspector control for\n * assigning behaviors to blocks if behaviors are enabled in the theme.json.\n *\n * Currently, only the `core/image` block is supported.\n *\n * @param {WPComponent} BlockEdit Original component.\n *\n * @return {WPComponent} Wrapped component.\n */\nexport const withBehaviors = createHigherOrderComponent( ( BlockEdit ) => {\n\treturn ( props ) => {\n\t\t// Only add behaviors to the core/image block.\n\t\tif ( props.name !== 'core/image' ) {\n\t\t\treturn <BlockEdit { ...props } />;\n\t\t}\n\n\t\tconst settings =\n\t\t\tselect( blockEditorStore ).getSettings()?.__experimentalFeatures\n\t\t\t\t?.blocks?.[ props.name ]?.behaviors;\n\n\t\tif (\n\t\t\t! settings ||\n\t\t\t// If every behavior is disabled, do not show the behaviors inspector control.\n\t\t\tObject.entries( settings ).every( ( [ , value ] ) => ! value )\n\t\t) {\n\t\t\treturn <BlockEdit { ...props } />;\n\t\t}\n\n\t\tconst { behaviors: blockBehaviors } = props.attributes;\n\n\t\t// Get the theme behaviors for the block from the theme.json.\n\t\tconst themeBehaviors =\n\t\t\tselect( blockEditorStore ).getBehaviors()?.blocks?.[ props.name ];\n\n\t\t// Block behaviors take precedence over theme behaviors.\n\t\tconst behaviors = merge( themeBehaviors, blockBehaviors || {} );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit { ...props } />\n\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Behaviors' ) }\n\t\t\t\t\t\t// At the moment we are only supporting one behavior (Lightbox)\n\t\t\t\t\t\tvalue={ behaviors?.lightbox ? 'lightbox' : '' }\n\t\t\t\t\t\toptions={ Object.entries( settings )\n\t\t\t\t\t\t\t.filter( ( [ , behaviorValue ] ) => behaviorValue ) // Filter out behaviors that are disabled.\n\t\t\t\t\t\t\t.map( ( [ behaviorName ] ) => ( {\n\t\t\t\t\t\t\t\tvalue: behaviorName,\n\t\t\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\t\t\t// Capitalize the first letter of the behavior name.\n\t\t\t\t\t\t\t\t\tbehaviorName[ 0 ].toUpperCase() +\n\t\t\t\t\t\t\t\t\tbehaviorName.slice( 1 ).toLowerCase(),\n\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t.concat( {\n\t\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\t\tlabel: __( 'No behaviors' ),\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\tonChange={ ( nextValue ) => {\n\t\t\t\t\t\t\t// If the user selects something, it means that they want to\n\t\t\t\t\t\t\t// change the default value (true) so we save it in the attributes.\n\t\t\t\t\t\t\tprops.setAttributes( {\n\t\t\t\t\t\t\t\tbehaviors: {\n\t\t\t\t\t\t\t\t\tlightbox: nextValue === 'lightbox',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\thelp={ __( 'Add behaviors.' ) }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t</InspectorControls>\n\t\t\t</>\n\t\t);\n\t};\n}, 'withBehaviors' );\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/behaviors/with-inspector-control',\n\twithBehaviors\n);\n"]}
@@ -388,7 +388,7 @@ export const withBorderColorPaletteStyles = createHigherOrderComponent(BlockList
388
388
  return createElement(BlockListBlock, _extends({}, props, {
389
389
  wrapperProps: wrapperProps
390
390
  }));
391
- });
391
+ }, 'withBorderColorPaletteStyles');
392
392
  addFilter('blocks.registerBlockType', 'core/border/addAttributes', addAttributes);
393
393
  addFilter('blocks.getSaveContent.extraProps', 'core/border/addSaveProps', addSaveProps);
394
394
  addFilter('blocks.registerBlockType', 'core/border/addEditProps', addEditProps);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/border.js"],"names":["classnames","getBlockSupport","__experimentalHasSplitBorders","hasSplitBorders","createHigherOrderComponent","Platform","useCallback","useMemo","addFilter","getColorClassName","InspectorControls","useMultipleOriginColorsAndGradients","cleanEmptyObject","shouldSkipSerialization","useBlockSettings","useHasBorderPanel","BorderPanel","StylesBorderPanel","BORDER_SUPPORT_KEY","getColorByProperty","colors","property","value","matchedColor","some","origin","color","getMultiOriginColor","namedColor","customColor","colorObject","undefined","getColorSlugFromVariable","exec","styleToAttributes","style","border","borderColor","borderColorValue","borderColorSlug","startsWith","substring","length","updatedStyle","attributesToStyle","attributes","BordersInspectorControl","children","resetAllFilter","attributesResetAllFilter","existingStyle","props","clientId","name","setAttributes","settings","isEnabled","onChange","newStyle","defaultControls","hasBorderSupport","blockName","feature","OS","support","radius","width","removeBorderAttribute","attribute","addAttributes","type","addSaveProps","blockType","borderClasses","getBorderClasses","newClassName","className","borderColorClass","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","withBorderColorPaletteStyles","BlockListBlock","borderTopColor","top","borderRightColor","right","borderBottomColor","bottom","borderLeftColor","left","extraStyles","wrapperProps"],"mappings":"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","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\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...extraStyles,\n\t\t\t},\n\t\t};\n\n\t\treturn <BlockListBlock { ...props } wrapperProps={ wrapperProps } />;\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\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"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/border.js"],"names":["classnames","getBlockSupport","__experimentalHasSplitBorders","hasSplitBorders","createHigherOrderComponent","Platform","useCallback","useMemo","addFilter","getColorClassName","InspectorControls","useMultipleOriginColorsAndGradients","cleanEmptyObject","shouldSkipSerialization","useBlockSettings","useHasBorderPanel","BorderPanel","StylesBorderPanel","BORDER_SUPPORT_KEY","getColorByProperty","colors","property","value","matchedColor","some","origin","color","getMultiOriginColor","namedColor","customColor","colorObject","undefined","getColorSlugFromVariable","exec","styleToAttributes","style","border","borderColor","borderColorValue","borderColorSlug","startsWith","substring","length","updatedStyle","attributesToStyle","attributes","BordersInspectorControl","children","resetAllFilter","attributesResetAllFilter","existingStyle","props","clientId","name","setAttributes","settings","isEnabled","onChange","newStyle","defaultControls","hasBorderSupport","blockName","feature","OS","support","radius","width","removeBorderAttribute","attribute","addAttributes","type","addSaveProps","blockType","borderClasses","getBorderClasses","newClassName","className","borderColorClass","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","withBorderColorPaletteStyles","BlockListBlock","borderTopColor","top","borderRightColor","right","borderBottomColor","bottom","borderLeftColor","left","extraStyles","wrapperProps"],"mappings":"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","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\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...extraStyles,\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"]}
@@ -323,7 +323,7 @@ export const withColorPaletteStyles = createHigherOrderComponent(BlockListBlock
323
323
  return createElement(BlockListBlock, _extends({}, props, {
324
324
  wrapperProps: wrapperProps
325
325
  }));
326
- });
326
+ }, 'withColorPaletteStyles');
327
327
  const MIGRATION_PATHS = {
328
328
  linkColor: [['style', 'elements', 'link', 'color', 'text']],
329
329
  textColor: [['textColor'], ['style', 'color', 'text']],
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/color.js"],"names":["classnames","addFilter","getBlockSupport","useMemo","Platform","useCallback","createHigherOrderComponent","getColorClassName","getColorObjectByAttributeValues","__experimentalGetGradientClass","cleanEmptyObject","transformStyles","shouldSkipSerialization","useBlockSettings","useSetting","InspectorControls","useHasColorPanel","default","StylesColorPanel","BlockColorContrastChecker","COLOR_SUPPORT_KEY","hasColorSupport","blockType","colorSupport","link","gradient","background","text","hasLinkColorSupport","OS","hasGradientSupport","gradients","hasBackgroundColorSupport","hasTextColorSupport","addAttributes","settings","attributes","backgroundColor","Object","assign","type","textColor","addSaveProps","props","hasGradient","style","shouldSerialize","feature","textClass","undefined","gradientClass","backgroundClass","serializeHasBackground","hasBackground","color","newClassName","className","elements","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","styleToAttributes","textColorValue","textColorSlug","startsWith","substring","length","backgroundColorValue","backgroundColorSlug","gradientValue","gradientSlug","updatedStyle","attributesToStyle","ColorInspectorControl","children","resetAllFilter","attributesResetAllFilter","existingStyle","ColorEdit","clientId","name","setAttributes","isEnabled","value","onChange","newStyle","defaultControls","enableContrastChecking","withColorPaletteStyles","BlockListBlock","userPalette","themePalette","defaultPalette","colors","extraStyles","wrapperProps","MIGRATION_PATHS","linkColor","addTransforms","result","source","index","results","destinationBlockType","activeSupports"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,kBAA1B;AACA,SAASC,eAAT,QAAgC,mBAAhC;AACA,SAASC,OAAT,EAAkBC,QAAlB,EAA4BC,WAA5B,QAA+C,oBAA/C;AACA,SAASC,0BAAT,QAA2C,oBAA3C;AAEA;AACA;AACA;;AACA,SACCC,iBADD,EAECC,+BAFD,QAGO,sBAHP;AAIA,SAASC,8BAAT,QAA+C,yBAA/C;AACA,SACCC,gBADD,EAECC,eAFD,EAGCC,uBAHD,EAICC,gBAJD,QAKO,SALP;AAMA,OAAOC,UAAP,MAAuB,2BAAvB;AACA,OAAOC,iBAAP,MAA8B,kCAA9B;AACA,SACCC,gBADD,EAECC,OAAO,IAAIC,gBAFZ,QAGO,yCAHP;AAIA,OAAOC,yBAAP,MAAsC,oBAAtC;AAEA,OAAO,MAAMC,iBAAiB,GAAG,OAA1B;;AAEP,MAAMC,eAAe,GAAKC,SAAF,IAAiB;AACxC,QAAMC,YAAY,GAAGrB,eAAe,CAAEoB,SAAF,EAAaF,iBAAb,CAApC;AACA,SACCG,YAAY,KACVA,YAAY,CAACC,IAAb,KAAsB,IAAtB,IACDD,YAAY,CAACE,QAAb,KAA0B,IADzB,IAEDF,YAAY,CAACG,UAAb,KAA4B,KAF3B,IAGDH,YAAY,CAACI,IAAb,KAAsB,KAJX,CADb;AAOA,CATD;;AAWA,MAAMC,mBAAmB,GAAKN,SAAF,IAAiB;AAC5C,MAAKlB,QAAQ,CAACyB,EAAT,KAAgB,KAArB,EAA6B;AAC5B,WAAO,KAAP;AACA;;AAED,QAAMN,YAAY,GAAGrB,eAAe,CAAEoB,SAAF,EAAaF,iBAAb,CAApC;AAEA,SACCG,YAAY,KAAK,IAAjB,IACA,OAAOA,YAAP,KAAwB,QADxB,IAEA,CAAC,CAAEA,YAAY,CAACC,IAHjB;AAKA,CAZD;;AAcA,MAAMM,kBAAkB,GAAKR,SAAF,IAAiB;AAC3C,QAAMC,YAAY,GAAGrB,eAAe,CAAEoB,SAAF,EAAaF,iBAAb,CAApC;AAEA,SACCG,YAAY,KAAK,IAAjB,IACA,OAAOA,YAAP,KAAwB,QADxB,IAEA,CAAC,CAAEA,YAAY,CAACQ,SAHjB;AAKA,CARD;;AAUA,MAAMC,yBAAyB,GAAKV,SAAF,IAAiB;AAClD,QAAMC,YAAY,GAAGrB,eAAe,CAAEoB,SAAF,EAAaF,iBAAb,CAApC;AAEA,SAAOG,YAAY,IAAIA,YAAY,CAACG,UAAb,KAA4B,KAAnD;AACA,CAJD;;AAMA,MAAMO,mBAAmB,GAAKX,SAAF,IAAiB;AAC5C,QAAMC,YAAY,GAAGrB,eAAe,CAAEoB,SAAF,EAAaF,iBAAb,CAApC;AAEA,SAAOG,YAAY,IAAIA,YAAY,CAACI,IAAb,KAAsB,KAA7C;AACA,CAJD;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASO,aAAT,CAAwBC,QAAxB,EAAmC;AAClC,MAAK,CAAEd,eAAe,CAAEc,QAAF,CAAtB,EAAqC;AACpC,WAAOA,QAAP;AACA,GAHiC,CAKlC;;;AACA,MAAK,CAAEA,QAAQ,CAACC,UAAT,CAAoBC,eAA3B,EAA6C;AAC5CC,IAAAA,MAAM,CAACC,MAAP,CAAeJ,QAAQ,CAACC,UAAxB,EAAoC;AACnCC,MAAAA,eAAe,EAAE;AAChBG,QAAAA,IAAI,EAAE;AADU;AADkB,KAApC;AAKA;;AACD,MAAK,CAAEL,QAAQ,CAACC,UAAT,CAAoBK,SAA3B,EAAuC;AACtCH,IAAAA,MAAM,CAACC,MAAP,CAAeJ,QAAQ,CAACC,UAAxB,EAAoC;AACnCK,MAAAA,SAAS,EAAE;AACVD,QAAAA,IAAI,EAAE;AADI;AADwB,KAApC;AAKA;;AAED,MAAKV,kBAAkB,CAAEK,QAAF,CAAlB,IAAkC,CAAEA,QAAQ,CAACC,UAAT,CAAoBX,QAA7D,EAAwE;AACvEa,IAAAA,MAAM,CAACC,MAAP,CAAeJ,QAAQ,CAACC,UAAxB,EAAoC;AACnCX,MAAAA,QAAQ,EAAE;AACTe,QAAAA,IAAI,EAAE;AADG;AADyB,KAApC;AAKA;;AAED,SAAOL,QAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,OAAO,SAASO,YAAT,CAAuBC,KAAvB,EAA8BrB,SAA9B,EAAyCc,UAAzC,EAAsD;AAAA;;AAC5D,MACC,CAAEf,eAAe,CAAEC,SAAF,CAAjB,IACAV,uBAAuB,CAAEU,SAAF,EAAaF,iBAAb,CAFxB,EAGE;AACD,WAAOuB,KAAP;AACA;;AAED,QAAMC,WAAW,GAAGd,kBAAkB,CAAER,SAAF,CAAtC,CAR4D,CAU5D;;AACA,QAAM;AAAEe,IAAAA,eAAF;AAAmBI,IAAAA,SAAnB;AAA8BhB,IAAAA,QAA9B;AAAwCoB,IAAAA;AAAxC,MAAkDT,UAAxD;;AAEA,QAAMU,eAAe,GAAKC,OAAF,IACvB,CAAEnC,uBAAuB,CAAEU,SAAF,EAAaF,iBAAb,EAAgC2B,OAAhC,CAD1B,CAb4D,CAgB5D;AACA;AACA;;;AACA,QAAMC,SAAS,GAAGF,eAAe,CAAE,MAAF,CAAf,GACfvC,iBAAiB,CAAE,OAAF,EAAWkC,SAAX,CADF,GAEfQ,SAFH;AAIA,QAAMC,aAAa,GAAGJ,eAAe,CAAE,WAAF,CAAf,GACnBrC,8BAA8B,CAAEgB,QAAF,CADX,GAEnBwB,SAFH;AAIA,QAAME,eAAe,GAAGL,eAAe,CAAE,YAAF,CAAf,GACrBvC,iBAAiB,CAAE,kBAAF,EAAsB8B,eAAtB,CADI,GAErBY,SAFH;AAIA,QAAMG,sBAAsB,GAC3BN,eAAe,CAAE,YAAF,CAAf,IAAmCA,eAAe,CAAE,WAAF,CADnD;AAEA,QAAMO,aAAa,GAClBhB,eAAe,KACfQ,KADe,aACfA,KADe,uCACfA,KAAK,CAAES,KADQ,iDACf,aAAc5B,UADC,CAAf,IAEEkB,WAAW,KAAMnB,QAAQ,KAAIoB,KAAJ,aAAIA,KAAJ,wCAAIA,KAAK,CAAES,KAAX,kDAAI,cAAc7B,QAAlB,CAAd,CAHd;AAKA,QAAM8B,YAAY,GAAGvD,UAAU,CAC9B2C,KAAK,CAACa,SADwB,EAE9BR,SAF8B,EAG9BE,aAH8B,EAI9B;AACC;AACA,KAAEC,eAAF,GACC,CAAE,CAAEP,WAAF,IAAiB,EAAEC,KAAF,aAAEA,KAAF,gCAAEA,KAAK,CAAES,KAAT,0CAAE,cAAc7B,QAAhB,CAAnB,KACA,CAAC,CAAE0B,eAJL;AAKC,sBACCL,eAAe,CAAE,MAAF,CAAf,KACEL,SAAS,KAAII,KAAJ,aAAIA,KAAJ,wCAAIA,KAAK,CAAES,KAAX,kDAAI,cAAc3B,IAAlB,CADX,CANF;AAQC,sBAAkByB,sBAAsB,IAAIC,aAR7C;AASC,sBACCP,eAAe,CAAE,MAAF,CAAf,KAA6BD,KAA7B,aAA6BA,KAA7B,0CAA6BA,KAAK,CAAEY,QAApC,4EAA6B,gBAAiBjC,IAA9C,yDAA6B,qBAAuB8B,KAApD;AAVF,GAJ8B,CAA/B;AAiBAX,EAAAA,KAAK,CAACa,SAAN,GAAkBD,YAAY,GAAGA,YAAH,GAAkBN,SAAhD;AAEA,SAAON,KAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASe,YAAT,CAAuBvB,QAAvB,EAAkC;AACxC,MACC,CAAEd,eAAe,CAAEc,QAAF,CAAjB,IACAvB,uBAAuB,CAAEuB,QAAF,EAAYf,iBAAZ,CAFxB,EAGE;AACD,WAAOe,QAAP;AACA;;AACD,QAAMwB,2BAA2B,GAAGxB,QAAQ,CAACyB,mBAA7C;;AACAzB,EAAAA,QAAQ,CAACyB,mBAAT,GAAiCxB,UAAF,IAAkB;AAChD,QAAIO,KAAK,GAAG,EAAZ;;AACA,QAAKgB,2BAAL,EAAmC;AAClChB,MAAAA,KAAK,GAAGgB,2BAA2B,CAAEvB,UAAF,CAAnC;AACA;;AACD,WAAOM,YAAY,CAAEC,KAAF,EAASR,QAAT,EAAmBC,UAAnB,CAAnB;AACA,GAND;;AAQA,SAAOD,QAAP;AACA;;AAED,SAAS0B,iBAAT,CAA4BhB,KAA5B,EAAoC;AAAA;;AACnC,QAAMiB,cAAc,GAAGjB,KAAH,aAAGA,KAAH,wCAAGA,KAAK,CAAES,KAAV,kDAAG,cAAc3B,IAArC;AACA,QAAMoC,aAAa,GAAGD,cAAc,SAAd,IAAAA,cAAc,WAAd,IAAAA,cAAc,CAAEE,UAAhB,CAA4B,mBAA5B,IACnBF,cAAc,CAACG,SAAf,CAA0B,oBAAoBC,MAA9C,CADmB,GAEnBjB,SAFH;AAGA,QAAMkB,oBAAoB,GAAGtB,KAAH,aAAGA,KAAH,wCAAGA,KAAK,CAAES,KAAV,kDAAG,cAAc5B,UAA3C;AACA,QAAM0C,mBAAmB,GAAGD,oBAAoB,SAApB,IAAAA,oBAAoB,WAApB,IAAAA,oBAAoB,CAAEH,UAAtB,CAC3B,mBAD2B,IAGzBG,oBAAoB,CAACF,SAArB,CAAgC,oBAAoBC,MAApD,CAHyB,GAIzBjB,SAJH;AAKA,QAAMoB,aAAa,GAAGxB,KAAH,aAAGA,KAAH,wCAAGA,KAAK,CAAES,KAAV,kDAAG,cAAc7B,QAApC;AACA,QAAM6C,YAAY,GAAGD,aAAa,SAAb,IAAAA,aAAa,WAAb,IAAAA,aAAa,CAAEL,UAAf,CAA2B,sBAA3B,IAClBK,aAAa,CAACJ,SAAd,CAAyB,uBAAuBC,MAAhD,CADkB,GAElBjB,SAFH;AAGA,QAAMsB,YAAY,GAAG,EAAE,GAAG1B;AAAL,GAArB;AACA0B,EAAAA,YAAY,CAACjB,KAAb,GAAqB,EACpB,GAAGiB,YAAY,CAACjB,KADI;AAEpB3B,IAAAA,IAAI,EAAEoC,aAAa,GAAGd,SAAH,GAAea,cAFd;AAGpBpC,IAAAA,UAAU,EAAE0C,mBAAmB,GAAGnB,SAAH,GAAekB,oBAH1B;AAIpB1C,IAAAA,QAAQ,EAAE6C,YAAY,GAAGrB,SAAH,GAAeoB;AAJjB,GAArB;AAMA,SAAO;AACNxB,IAAAA,KAAK,EAAEnC,gBAAgB,CAAE6D,YAAF,CADjB;AAEN9B,IAAAA,SAAS,EAAEsB,aAFL;AAGN1B,IAAAA,eAAe,EAAE+B,mBAHX;AAIN3C,IAAAA,QAAQ,EAAE6C;AAJJ,GAAP;AAMA;;AAED,SAASE,iBAAT,CAA4BpC,UAA5B,EAAyC;AAAA;;AACxC,SAAO,EACN,GAAGA,UAAU,CAACS,KADR;AAENS,IAAAA,KAAK,EAAE,EACN,yBAAGlB,UAAU,CAACS,KAAd,sDAAG,kBAAkBS,KAArB,CADM;AAEN3B,MAAAA,IAAI,EAAES,UAAU,CAACK,SAAX,GACH,sBAAsBL,UAAU,CAACK,SAD9B,yBAEHL,UAAU,CAACS,KAFR,gFAEH,mBAAkBS,KAFf,0DAEH,sBAAyB3B,IAJtB;AAKND,MAAAA,UAAU,EAAEU,UAAU,CAACC,eAAX,GACT,sBAAsBD,UAAU,CAACC,eADxB,yBAETD,UAAU,CAACS,KAFF,gFAET,mBAAkBS,KAFT,0DAET,sBAAyB5B,UAPtB;AAQND,MAAAA,QAAQ,EAAEW,UAAU,CAACX,QAAX,GACP,yBAAyBW,UAAU,CAACX,QAD7B,yBAEPW,UAAU,CAACS,KAFJ,gFAEP,mBAAkBS,KAFX,0DAEP,sBAAyB7B;AAVtB;AAFD,GAAP;AAeA;;AAED,SAASgD,qBAAT,OAA+D;AAAA,MAA/B;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAA+B;AAC9D,QAAMC,wBAAwB,GAAGvE,WAAW,CACzC+B,UAAF,IAAkB;AACjB,UAAMyC,aAAa,GAAGL,iBAAiB,CAAEpC,UAAF,CAAvC;AACA,UAAMmC,YAAY,GAAGI,cAAc,CAAEE,aAAF,CAAnC;AACA,WAAO,EACN,GAAGzC,UADG;AAEN,SAAGyB,iBAAiB,CAAEU,YAAF;AAFd,KAAP;AAIA,GAR0C,EAS3C,CAAEI,cAAF,CAT2C,CAA5C;AAYA,SACC,cAAC,iBAAD;AACC,IAAA,KAAK,EAAC,OADP;AAEC,IAAA,cAAc,EAAGC;AAFlB,KAIGF,QAJH,CADD;AAQA;;AAED,OAAO,SAASI,SAAT,CAAoBnC,KAApB,EAA4B;AAAA;;AAClC,QAAM;AAAEoC,IAAAA,QAAF;AAAYC,IAAAA,IAAZ;AAAkB5C,IAAAA,UAAlB;AAA8B6C,IAAAA;AAA9B,MAAgDtC,KAAtD;AACA,QAAMR,QAAQ,GAAGtB,gBAAgB,CAAEmE,IAAF,CAAjC;AACA,QAAME,SAAS,GAAGlE,gBAAgB,CAAEmB,QAAF,CAAlC;AACA,QAAMgD,KAAK,GAAGhF,OAAO,CAAE,MAAM;AAC5B,WAAOqE,iBAAiB,CAAE;AACzB3B,MAAAA,KAAK,EAAET,UAAU,CAACS,KADO;AAEzBJ,MAAAA,SAAS,EAAEL,UAAU,CAACK,SAFG;AAGzBJ,MAAAA,eAAe,EAAED,UAAU,CAACC,eAHH;AAIzBZ,MAAAA,QAAQ,EAAEW,UAAU,CAACX;AAJI,KAAF,CAAxB;AAMA,GAPoB,EAOlB,CACFW,UAAU,CAACS,KADT,EAEFT,UAAU,CAACK,SAFT,EAGFL,UAAU,CAACC,eAHT,EAIFD,UAAU,CAACX,QAJT,CAPkB,CAArB;;AAcA,QAAM2D,QAAQ,GAAKC,QAAF,IAAgB;AAChCJ,IAAAA,aAAa,CAAEpB,iBAAiB,CAAEwB,QAAF,CAAnB,CAAb;AACA,GAFD;;AAIA,MAAK,CAAEH,SAAP,EAAmB;AAClB,WAAO,IAAP;AACA;;AAED,QAAMI,eAAe,GAAGpF,eAAe,CAAEyC,KAAK,CAACqC,IAAR,EAAc,CACpD5D,iBADoD,EAEpD,+BAFoD,CAAd,CAAvC;AAKA,QAAMmE,sBAAsB,GAC3BnF,QAAQ,CAACyB,EAAT,KAAgB,KAAhB,IACA,EAAEsD,KAAF,aAAEA,KAAF,+BAAEA,KAAK,CAAE7B,KAAT,yCAAE,aAAc7B,QAAhB,CADA,KAEE,CAAAU,QAAQ,SAAR,IAAAA,QAAQ,WAAR,+BAAAA,QAAQ,CAAEmB,KAAV,oEAAiB3B,IAAjB,MAAyBQ,QAAzB,aAAyBA,QAAzB,2CAAyBA,QAAQ,CAAEmB,KAAnC,qDAAyB,iBAAiB9B,IAA1C,CAFF,KAGA;AACA;AACA;AACA,YACCtB,eAAe,CAAEyC,KAAK,CAACqC,IAAR,EAAc,CAC5B5D,iBAD4B,EAE5B,uBAF4B,CAAd,CARjB;AAaA,SACC,cAAC,gBAAD;AACC,IAAA,EAAE,EAAGqD,qBADN;AAEC,IAAA,OAAO,EAAGM,QAFX;AAGC,IAAA,QAAQ,EAAG5C,QAHZ;AAIC,IAAA,KAAK,EAAGgD,KAJT;AAKC,IAAA,QAAQ,EAAGC,QALZ;AAMC,IAAA,eAAe,EAAGE,eANnB;AAOC,IAAA,qBAAqB,EACpB,UACApF,eAAe,CAAEyC,KAAK,CAACqC,IAAR,EAAc,CAC5B5D,iBAD4B,EAE5B,uBAF4B,CAAd;AATjB,KAeGmE,sBAAsB,IACvB,cAAC,yBAAD;AAA2B,IAAA,QAAQ,EAAGR;AAAtC,IAhBF,CADD;AAqBA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMS,sBAAsB,GAAGlF,0BAA0B,CAC7DmF,cAAF,IAAwB9C,KAAF,IAAa;AAAA;;AAClC,QAAM;AAAEqC,IAAAA,IAAF;AAAQ5C,IAAAA;AAAR,MAAuBO,KAA7B;AACA,QAAM;AAAEN,IAAAA,eAAF;AAAmBI,IAAAA;AAAnB,MAAiCL,UAAvC;AACA,QAAMsD,WAAW,GAAG5E,UAAU,CAAE,sBAAF,CAA9B;AACA,QAAM6E,YAAY,GAAG7E,UAAU,CAAE,qBAAF,CAA/B;AACA,QAAM8E,cAAc,GAAG9E,UAAU,CAAE,uBAAF,CAAjC;AACA,QAAM+E,MAAM,GAAG1F,OAAO,CACrB,MAAM,CACL,IAAKuF,WAAW,IAAI,EAApB,CADK,EAEL,IAAKC,YAAY,IAAI,EAArB,CAFK,EAGL,IAAKC,cAAc,IAAI,EAAvB,CAHK,CADe,EAMrB,CAAEF,WAAF,EAAeC,YAAf,EAA6BC,cAA7B,CANqB,CAAtB;;AAQA,MACC,CAAEvE,eAAe,CAAE2D,IAAF,CAAjB,IACApE,uBAAuB,CAAEoE,IAAF,EAAQ5D,iBAAR,CAFxB,EAGE;AACD,WAAO,cAAC,cAAD,EAAqBuB,KAArB,CAAP;AACA;;AACD,QAAMmD,WAAW,GAAG,EAApB;;AAEA,MACCrD,SAAS,IACT,CAAE7B,uBAAuB,CAAEoE,IAAF,EAAQ5D,iBAAR,EAA2B,MAA3B,CAF1B,EAGE;AAAA;;AACD0E,IAAAA,WAAW,CAACxC,KAAZ,4BAAoB9C,+BAA+B,CAClDqF,MADkD,EAElDpD,SAFkD,CAAnD,0DAAoB,sBAGjBa,KAHH;AAIA;;AACD,MACCjB,eAAe,IACf,CAAEzB,uBAAuB,CAAEoE,IAAF,EAAQ5D,iBAAR,EAA2B,YAA3B,CAF1B,EAGE;AAAA;;AACD0E,IAAAA,WAAW,CAACzD,eAAZ,6BAA8B7B,+BAA+B,CAC5DqF,MAD4D,EAE5DxD,eAF4D,CAA7D,2DAA8B,uBAG3BiB,KAHH;AAIA;;AAED,MAAIyC,YAAY,GAAGpD,KAAK,CAACoD,YAAzB;AACAA,EAAAA,YAAY,GAAG,EACd,GAAGpD,KAAK,CAACoD,YADK;AAEdlD,IAAAA,KAAK,EAAE,EACN,GAAGiD,WADG;AAEN,iCAAGnD,KAAK,CAACoD,YAAT,wDAAG,oBAAoBlD,KAAvB;AAFM;AAFO,GAAf;AAQA,SAAO,cAAC,cAAD,eAAqBF,KAArB;AAA6B,IAAA,YAAY,EAAGoD;AAA5C,KAAP;AACA,CApD8D,CAAzD;AAuDP,MAAMC,eAAe,GAAG;AACvBC,EAAAA,SAAS,EAAE,CAAE,CAAE,OAAF,EAAW,UAAX,EAAuB,MAAvB,EAA+B,OAA/B,EAAwC,MAAxC,CAAF,CADY;AAEvBxD,EAAAA,SAAS,EAAE,CAAE,CAAE,WAAF,CAAF,EAAmB,CAAE,OAAF,EAAW,OAAX,EAAoB,MAApB,CAAnB,CAFY;AAGvBJ,EAAAA,eAAe,EAAE,CAChB,CAAE,iBAAF,CADgB,EAEhB,CAAE,OAAF,EAAW,OAAX,EAAoB,YAApB,CAFgB,CAHM;AAOvBZ,EAAAA,QAAQ,EAAE,CAAE,CAAE,UAAF,CAAF,EAAkB,CAAE,OAAF,EAAW,OAAX,EAAoB,UAApB,CAAlB;AAPa,CAAxB;AAUA,OAAO,SAASyE,aAAT,CAAwBC,MAAxB,EAAgCC,MAAhC,EAAwCC,KAAxC,EAA+CC,OAA/C,EAAyD;AAC/D,QAAMC,oBAAoB,GAAGJ,MAAM,CAACnB,IAApC;AACA,QAAMwB,cAAc,GAAG;AACtBP,IAAAA,SAAS,EAAErE,mBAAmB,CAAE2E,oBAAF,CADR;AAEtB9D,IAAAA,SAAS,EAAER,mBAAmB,CAAEsE,oBAAF,CAFR;AAGtBlE,IAAAA,eAAe,EAAEL,yBAAyB,CAAEuE,oBAAF,CAHpB;AAItB9E,IAAAA,QAAQ,EAAEK,kBAAkB,CAAEyE,oBAAF;AAJN,GAAvB;AAMA,SAAO5F,eAAe,CACrB6F,cADqB,EAErBR,eAFqB,EAGrBG,MAHqB,EAIrBC,MAJqB,EAKrBC,KALqB,EAMrBC,OANqB,CAAtB;AAQA;AAEDrG,SAAS,CACR,0BADQ,EAER,yBAFQ,EAGRiC,aAHQ,CAAT;AAMAjC,SAAS,CACR,kCADQ,EAER,yBAFQ,EAGRyC,YAHQ,CAAT;AAMAzC,SAAS,CACR,0BADQ,EAER,yBAFQ,EAGRyD,YAHQ,CAAT;AAMAzD,SAAS,CACR,uBADQ,EAER,sCAFQ,EAGRuF,sBAHQ,CAAT;AAMAvF,SAAS,CACR,2CADQ,EAER,0BAFQ,EAGRiG,aAHQ,CAAT","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 useSetting from '../components/use-setting';\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 = useSetting( 'color.palette.custom' );\n\t\tconst themePalette = useSetting( 'color.palette.theme' );\n\t\tconst defaultPalette = useSetting( 'color.palette.default' );\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);\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"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/color.js"],"names":["classnames","addFilter","getBlockSupport","useMemo","Platform","useCallback","createHigherOrderComponent","getColorClassName","getColorObjectByAttributeValues","__experimentalGetGradientClass","cleanEmptyObject","transformStyles","shouldSkipSerialization","useBlockSettings","useSetting","InspectorControls","useHasColorPanel","default","StylesColorPanel","BlockColorContrastChecker","COLOR_SUPPORT_KEY","hasColorSupport","blockType","colorSupport","link","gradient","background","text","hasLinkColorSupport","OS","hasGradientSupport","gradients","hasBackgroundColorSupport","hasTextColorSupport","addAttributes","settings","attributes","backgroundColor","Object","assign","type","textColor","addSaveProps","props","hasGradient","style","shouldSerialize","feature","textClass","undefined","gradientClass","backgroundClass","serializeHasBackground","hasBackground","color","newClassName","className","elements","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","styleToAttributes","textColorValue","textColorSlug","startsWith","substring","length","backgroundColorValue","backgroundColorSlug","gradientValue","gradientSlug","updatedStyle","attributesToStyle","ColorInspectorControl","children","resetAllFilter","attributesResetAllFilter","existingStyle","ColorEdit","clientId","name","setAttributes","isEnabled","value","onChange","newStyle","defaultControls","enableContrastChecking","withColorPaletteStyles","BlockListBlock","userPalette","themePalette","defaultPalette","colors","extraStyles","wrapperProps","MIGRATION_PATHS","linkColor","addTransforms","result","source","index","results","destinationBlockType","activeSupports"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,kBAA1B;AACA,SAASC,eAAT,QAAgC,mBAAhC;AACA,SAASC,OAAT,EAAkBC,QAAlB,EAA4BC,WAA5B,QAA+C,oBAA/C;AACA,SAASC,0BAAT,QAA2C,oBAA3C;AAEA;AACA;AACA;;AACA,SACCC,iBADD,EAECC,+BAFD,QAGO,sBAHP;AAIA,SAASC,8BAAT,QAA+C,yBAA/C;AACA,SACCC,gBADD,EAECC,eAFD,EAGCC,uBAHD,EAICC,gBAJD,QAKO,SALP;AAMA,OAAOC,UAAP,MAAuB,2BAAvB;AACA,OAAOC,iBAAP,MAA8B,kCAA9B;AACA,SACCC,gBADD,EAECC,OAAO,IAAIC,gBAFZ,QAGO,yCAHP;AAIA,OAAOC,yBAAP,MAAsC,oBAAtC;AAEA,OAAO,MAAMC,iBAAiB,GAAG,OAA1B;;AAEP,MAAMC,eAAe,GAAKC,SAAF,IAAiB;AACxC,QAAMC,YAAY,GAAGrB,eAAe,CAAEoB,SAAF,EAAaF,iBAAb,CAApC;AACA,SACCG,YAAY,KACVA,YAAY,CAACC,IAAb,KAAsB,IAAtB,IACDD,YAAY,CAACE,QAAb,KAA0B,IADzB,IAEDF,YAAY,CAACG,UAAb,KAA4B,KAF3B,IAGDH,YAAY,CAACI,IAAb,KAAsB,KAJX,CADb;AAOA,CATD;;AAWA,MAAMC,mBAAmB,GAAKN,SAAF,IAAiB;AAC5C,MAAKlB,QAAQ,CAACyB,EAAT,KAAgB,KAArB,EAA6B;AAC5B,WAAO,KAAP;AACA;;AAED,QAAMN,YAAY,GAAGrB,eAAe,CAAEoB,SAAF,EAAaF,iBAAb,CAApC;AAEA,SACCG,YAAY,KAAK,IAAjB,IACA,OAAOA,YAAP,KAAwB,QADxB,IAEA,CAAC,CAAEA,YAAY,CAACC,IAHjB;AAKA,CAZD;;AAcA,MAAMM,kBAAkB,GAAKR,SAAF,IAAiB;AAC3C,QAAMC,YAAY,GAAGrB,eAAe,CAAEoB,SAAF,EAAaF,iBAAb,CAApC;AAEA,SACCG,YAAY,KAAK,IAAjB,IACA,OAAOA,YAAP,KAAwB,QADxB,IAEA,CAAC,CAAEA,YAAY,CAACQ,SAHjB;AAKA,CARD;;AAUA,MAAMC,yBAAyB,GAAKV,SAAF,IAAiB;AAClD,QAAMC,YAAY,GAAGrB,eAAe,CAAEoB,SAAF,EAAaF,iBAAb,CAApC;AAEA,SAAOG,YAAY,IAAIA,YAAY,CAACG,UAAb,KAA4B,KAAnD;AACA,CAJD;;AAMA,MAAMO,mBAAmB,GAAKX,SAAF,IAAiB;AAC5C,QAAMC,YAAY,GAAGrB,eAAe,CAAEoB,SAAF,EAAaF,iBAAb,CAApC;AAEA,SAAOG,YAAY,IAAIA,YAAY,CAACI,IAAb,KAAsB,KAA7C;AACA,CAJD;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASO,aAAT,CAAwBC,QAAxB,EAAmC;AAClC,MAAK,CAAEd,eAAe,CAAEc,QAAF,CAAtB,EAAqC;AACpC,WAAOA,QAAP;AACA,GAHiC,CAKlC;;;AACA,MAAK,CAAEA,QAAQ,CAACC,UAAT,CAAoBC,eAA3B,EAA6C;AAC5CC,IAAAA,MAAM,CAACC,MAAP,CAAeJ,QAAQ,CAACC,UAAxB,EAAoC;AACnCC,MAAAA,eAAe,EAAE;AAChBG,QAAAA,IAAI,EAAE;AADU;AADkB,KAApC;AAKA;;AACD,MAAK,CAAEL,QAAQ,CAACC,UAAT,CAAoBK,SAA3B,EAAuC;AACtCH,IAAAA,MAAM,CAACC,MAAP,CAAeJ,QAAQ,CAACC,UAAxB,EAAoC;AACnCK,MAAAA,SAAS,EAAE;AACVD,QAAAA,IAAI,EAAE;AADI;AADwB,KAApC;AAKA;;AAED,MAAKV,kBAAkB,CAAEK,QAAF,CAAlB,IAAkC,CAAEA,QAAQ,CAACC,UAAT,CAAoBX,QAA7D,EAAwE;AACvEa,IAAAA,MAAM,CAACC,MAAP,CAAeJ,QAAQ,CAACC,UAAxB,EAAoC;AACnCX,MAAAA,QAAQ,EAAE;AACTe,QAAAA,IAAI,EAAE;AADG;AADyB,KAApC;AAKA;;AAED,SAAOL,QAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,OAAO,SAASO,YAAT,CAAuBC,KAAvB,EAA8BrB,SAA9B,EAAyCc,UAAzC,EAAsD;AAAA;;AAC5D,MACC,CAAEf,eAAe,CAAEC,SAAF,CAAjB,IACAV,uBAAuB,CAAEU,SAAF,EAAaF,iBAAb,CAFxB,EAGE;AACD,WAAOuB,KAAP;AACA;;AAED,QAAMC,WAAW,GAAGd,kBAAkB,CAAER,SAAF,CAAtC,CAR4D,CAU5D;;AACA,QAAM;AAAEe,IAAAA,eAAF;AAAmBI,IAAAA,SAAnB;AAA8BhB,IAAAA,QAA9B;AAAwCoB,IAAAA;AAAxC,MAAkDT,UAAxD;;AAEA,QAAMU,eAAe,GAAKC,OAAF,IACvB,CAAEnC,uBAAuB,CAAEU,SAAF,EAAaF,iBAAb,EAAgC2B,OAAhC,CAD1B,CAb4D,CAgB5D;AACA;AACA;;;AACA,QAAMC,SAAS,GAAGF,eAAe,CAAE,MAAF,CAAf,GACfvC,iBAAiB,CAAE,OAAF,EAAWkC,SAAX,CADF,GAEfQ,SAFH;AAIA,QAAMC,aAAa,GAAGJ,eAAe,CAAE,WAAF,CAAf,GACnBrC,8BAA8B,CAAEgB,QAAF,CADX,GAEnBwB,SAFH;AAIA,QAAME,eAAe,GAAGL,eAAe,CAAE,YAAF,CAAf,GACrBvC,iBAAiB,CAAE,kBAAF,EAAsB8B,eAAtB,CADI,GAErBY,SAFH;AAIA,QAAMG,sBAAsB,GAC3BN,eAAe,CAAE,YAAF,CAAf,IAAmCA,eAAe,CAAE,WAAF,CADnD;AAEA,QAAMO,aAAa,GAClBhB,eAAe,KACfQ,KADe,aACfA,KADe,uCACfA,KAAK,CAAES,KADQ,iDACf,aAAc5B,UADC,CAAf,IAEEkB,WAAW,KAAMnB,QAAQ,KAAIoB,KAAJ,aAAIA,KAAJ,wCAAIA,KAAK,CAAES,KAAX,kDAAI,cAAc7B,QAAlB,CAAd,CAHd;AAKA,QAAM8B,YAAY,GAAGvD,UAAU,CAC9B2C,KAAK,CAACa,SADwB,EAE9BR,SAF8B,EAG9BE,aAH8B,EAI9B;AACC;AACA,KAAEC,eAAF,GACC,CAAE,CAAEP,WAAF,IAAiB,EAAEC,KAAF,aAAEA,KAAF,gCAAEA,KAAK,CAAES,KAAT,0CAAE,cAAc7B,QAAhB,CAAnB,KACA,CAAC,CAAE0B,eAJL;AAKC,sBACCL,eAAe,CAAE,MAAF,CAAf,KACEL,SAAS,KAAII,KAAJ,aAAIA,KAAJ,wCAAIA,KAAK,CAAES,KAAX,kDAAI,cAAc3B,IAAlB,CADX,CANF;AAQC,sBAAkByB,sBAAsB,IAAIC,aAR7C;AASC,sBACCP,eAAe,CAAE,MAAF,CAAf,KAA6BD,KAA7B,aAA6BA,KAA7B,0CAA6BA,KAAK,CAAEY,QAApC,4EAA6B,gBAAiBjC,IAA9C,yDAA6B,qBAAuB8B,KAApD;AAVF,GAJ8B,CAA/B;AAiBAX,EAAAA,KAAK,CAACa,SAAN,GAAkBD,YAAY,GAAGA,YAAH,GAAkBN,SAAhD;AAEA,SAAON,KAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASe,YAAT,CAAuBvB,QAAvB,EAAkC;AACxC,MACC,CAAEd,eAAe,CAAEc,QAAF,CAAjB,IACAvB,uBAAuB,CAAEuB,QAAF,EAAYf,iBAAZ,CAFxB,EAGE;AACD,WAAOe,QAAP;AACA;;AACD,QAAMwB,2BAA2B,GAAGxB,QAAQ,CAACyB,mBAA7C;;AACAzB,EAAAA,QAAQ,CAACyB,mBAAT,GAAiCxB,UAAF,IAAkB;AAChD,QAAIO,KAAK,GAAG,EAAZ;;AACA,QAAKgB,2BAAL,EAAmC;AAClChB,MAAAA,KAAK,GAAGgB,2BAA2B,CAAEvB,UAAF,CAAnC;AACA;;AACD,WAAOM,YAAY,CAAEC,KAAF,EAASR,QAAT,EAAmBC,UAAnB,CAAnB;AACA,GAND;;AAQA,SAAOD,QAAP;AACA;;AAED,SAAS0B,iBAAT,CAA4BhB,KAA5B,EAAoC;AAAA;;AACnC,QAAMiB,cAAc,GAAGjB,KAAH,aAAGA,KAAH,wCAAGA,KAAK,CAAES,KAAV,kDAAG,cAAc3B,IAArC;AACA,QAAMoC,aAAa,GAAGD,cAAc,SAAd,IAAAA,cAAc,WAAd,IAAAA,cAAc,CAAEE,UAAhB,CAA4B,mBAA5B,IACnBF,cAAc,CAACG,SAAf,CAA0B,oBAAoBC,MAA9C,CADmB,GAEnBjB,SAFH;AAGA,QAAMkB,oBAAoB,GAAGtB,KAAH,aAAGA,KAAH,wCAAGA,KAAK,CAAES,KAAV,kDAAG,cAAc5B,UAA3C;AACA,QAAM0C,mBAAmB,GAAGD,oBAAoB,SAApB,IAAAA,oBAAoB,WAApB,IAAAA,oBAAoB,CAAEH,UAAtB,CAC3B,mBAD2B,IAGzBG,oBAAoB,CAACF,SAArB,CAAgC,oBAAoBC,MAApD,CAHyB,GAIzBjB,SAJH;AAKA,QAAMoB,aAAa,GAAGxB,KAAH,aAAGA,KAAH,wCAAGA,KAAK,CAAES,KAAV,kDAAG,cAAc7B,QAApC;AACA,QAAM6C,YAAY,GAAGD,aAAa,SAAb,IAAAA,aAAa,WAAb,IAAAA,aAAa,CAAEL,UAAf,CAA2B,sBAA3B,IAClBK,aAAa,CAACJ,SAAd,CAAyB,uBAAuBC,MAAhD,CADkB,GAElBjB,SAFH;AAGA,QAAMsB,YAAY,GAAG,EAAE,GAAG1B;AAAL,GAArB;AACA0B,EAAAA,YAAY,CAACjB,KAAb,GAAqB,EACpB,GAAGiB,YAAY,CAACjB,KADI;AAEpB3B,IAAAA,IAAI,EAAEoC,aAAa,GAAGd,SAAH,GAAea,cAFd;AAGpBpC,IAAAA,UAAU,EAAE0C,mBAAmB,GAAGnB,SAAH,GAAekB,oBAH1B;AAIpB1C,IAAAA,QAAQ,EAAE6C,YAAY,GAAGrB,SAAH,GAAeoB;AAJjB,GAArB;AAMA,SAAO;AACNxB,IAAAA,KAAK,EAAEnC,gBAAgB,CAAE6D,YAAF,CADjB;AAEN9B,IAAAA,SAAS,EAAEsB,aAFL;AAGN1B,IAAAA,eAAe,EAAE+B,mBAHX;AAIN3C,IAAAA,QAAQ,EAAE6C;AAJJ,GAAP;AAMA;;AAED,SAASE,iBAAT,CAA4BpC,UAA5B,EAAyC;AAAA;;AACxC,SAAO,EACN,GAAGA,UAAU,CAACS,KADR;AAENS,IAAAA,KAAK,EAAE,EACN,yBAAGlB,UAAU,CAACS,KAAd,sDAAG,kBAAkBS,KAArB,CADM;AAEN3B,MAAAA,IAAI,EAAES,UAAU,CAACK,SAAX,GACH,sBAAsBL,UAAU,CAACK,SAD9B,yBAEHL,UAAU,CAACS,KAFR,gFAEH,mBAAkBS,KAFf,0DAEH,sBAAyB3B,IAJtB;AAKND,MAAAA,UAAU,EAAEU,UAAU,CAACC,eAAX,GACT,sBAAsBD,UAAU,CAACC,eADxB,yBAETD,UAAU,CAACS,KAFF,gFAET,mBAAkBS,KAFT,0DAET,sBAAyB5B,UAPtB;AAQND,MAAAA,QAAQ,EAAEW,UAAU,CAACX,QAAX,GACP,yBAAyBW,UAAU,CAACX,QAD7B,yBAEPW,UAAU,CAACS,KAFJ,gFAEP,mBAAkBS,KAFX,0DAEP,sBAAyB7B;AAVtB;AAFD,GAAP;AAeA;;AAED,SAASgD,qBAAT,OAA+D;AAAA,MAA/B;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAA+B;AAC9D,QAAMC,wBAAwB,GAAGvE,WAAW,CACzC+B,UAAF,IAAkB;AACjB,UAAMyC,aAAa,GAAGL,iBAAiB,CAAEpC,UAAF,CAAvC;AACA,UAAMmC,YAAY,GAAGI,cAAc,CAAEE,aAAF,CAAnC;AACA,WAAO,EACN,GAAGzC,UADG;AAEN,SAAGyB,iBAAiB,CAAEU,YAAF;AAFd,KAAP;AAIA,GAR0C,EAS3C,CAAEI,cAAF,CAT2C,CAA5C;AAYA,SACC,cAAC,iBAAD;AACC,IAAA,KAAK,EAAC,OADP;AAEC,IAAA,cAAc,EAAGC;AAFlB,KAIGF,QAJH,CADD;AAQA;;AAED,OAAO,SAASI,SAAT,CAAoBnC,KAApB,EAA4B;AAAA;;AAClC,QAAM;AAAEoC,IAAAA,QAAF;AAAYC,IAAAA,IAAZ;AAAkB5C,IAAAA,UAAlB;AAA8B6C,IAAAA;AAA9B,MAAgDtC,KAAtD;AACA,QAAMR,QAAQ,GAAGtB,gBAAgB,CAAEmE,IAAF,CAAjC;AACA,QAAME,SAAS,GAAGlE,gBAAgB,CAAEmB,QAAF,CAAlC;AACA,QAAMgD,KAAK,GAAGhF,OAAO,CAAE,MAAM;AAC5B,WAAOqE,iBAAiB,CAAE;AACzB3B,MAAAA,KAAK,EAAET,UAAU,CAACS,KADO;AAEzBJ,MAAAA,SAAS,EAAEL,UAAU,CAACK,SAFG;AAGzBJ,MAAAA,eAAe,EAAED,UAAU,CAACC,eAHH;AAIzBZ,MAAAA,QAAQ,EAAEW,UAAU,CAACX;AAJI,KAAF,CAAxB;AAMA,GAPoB,EAOlB,CACFW,UAAU,CAACS,KADT,EAEFT,UAAU,CAACK,SAFT,EAGFL,UAAU,CAACC,eAHT,EAIFD,UAAU,CAACX,QAJT,CAPkB,CAArB;;AAcA,QAAM2D,QAAQ,GAAKC,QAAF,IAAgB;AAChCJ,IAAAA,aAAa,CAAEpB,iBAAiB,CAAEwB,QAAF,CAAnB,CAAb;AACA,GAFD;;AAIA,MAAK,CAAEH,SAAP,EAAmB;AAClB,WAAO,IAAP;AACA;;AAED,QAAMI,eAAe,GAAGpF,eAAe,CAAEyC,KAAK,CAACqC,IAAR,EAAc,CACpD5D,iBADoD,EAEpD,+BAFoD,CAAd,CAAvC;AAKA,QAAMmE,sBAAsB,GAC3BnF,QAAQ,CAACyB,EAAT,KAAgB,KAAhB,IACA,EAAEsD,KAAF,aAAEA,KAAF,+BAAEA,KAAK,CAAE7B,KAAT,yCAAE,aAAc7B,QAAhB,CADA,KAEE,CAAAU,QAAQ,SAAR,IAAAA,QAAQ,WAAR,+BAAAA,QAAQ,CAAEmB,KAAV,oEAAiB3B,IAAjB,MAAyBQ,QAAzB,aAAyBA,QAAzB,2CAAyBA,QAAQ,CAAEmB,KAAnC,qDAAyB,iBAAiB9B,IAA1C,CAFF,KAGA;AACA;AACA;AACA,YACCtB,eAAe,CAAEyC,KAAK,CAACqC,IAAR,EAAc,CAC5B5D,iBAD4B,EAE5B,uBAF4B,CAAd,CARjB;AAaA,SACC,cAAC,gBAAD;AACC,IAAA,EAAE,EAAGqD,qBADN;AAEC,IAAA,OAAO,EAAGM,QAFX;AAGC,IAAA,QAAQ,EAAG5C,QAHZ;AAIC,IAAA,KAAK,EAAGgD,KAJT;AAKC,IAAA,QAAQ,EAAGC,QALZ;AAMC,IAAA,eAAe,EAAGE,eANnB;AAOC,IAAA,qBAAqB,EACpB,UACApF,eAAe,CAAEyC,KAAK,CAACqC,IAAR,EAAc,CAC5B5D,iBAD4B,EAE5B,uBAF4B,CAAd;AATjB,KAeGmE,sBAAsB,IACvB,cAAC,yBAAD;AAA2B,IAAA,QAAQ,EAAGR;AAAtC,IAhBF,CADD;AAqBA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMS,sBAAsB,GAAGlF,0BAA0B,CAC7DmF,cAAF,IAAwB9C,KAAF,IAAa;AAAA;;AAClC,QAAM;AAAEqC,IAAAA,IAAF;AAAQ5C,IAAAA;AAAR,MAAuBO,KAA7B;AACA,QAAM;AAAEN,IAAAA,eAAF;AAAmBI,IAAAA;AAAnB,MAAiCL,UAAvC;AACA,QAAMsD,WAAW,GAAG5E,UAAU,CAAE,sBAAF,CAA9B;AACA,QAAM6E,YAAY,GAAG7E,UAAU,CAAE,qBAAF,CAA/B;AACA,QAAM8E,cAAc,GAAG9E,UAAU,CAAE,uBAAF,CAAjC;AACA,QAAM+E,MAAM,GAAG1F,OAAO,CACrB,MAAM,CACL,IAAKuF,WAAW,IAAI,EAApB,CADK,EAEL,IAAKC,YAAY,IAAI,EAArB,CAFK,EAGL,IAAKC,cAAc,IAAI,EAAvB,CAHK,CADe,EAMrB,CAAEF,WAAF,EAAeC,YAAf,EAA6BC,cAA7B,CANqB,CAAtB;;AAQA,MACC,CAAEvE,eAAe,CAAE2D,IAAF,CAAjB,IACApE,uBAAuB,CAAEoE,IAAF,EAAQ5D,iBAAR,CAFxB,EAGE;AACD,WAAO,cAAC,cAAD,EAAqBuB,KAArB,CAAP;AACA;;AACD,QAAMmD,WAAW,GAAG,EAApB;;AAEA,MACCrD,SAAS,IACT,CAAE7B,uBAAuB,CAAEoE,IAAF,EAAQ5D,iBAAR,EAA2B,MAA3B,CAF1B,EAGE;AAAA;;AACD0E,IAAAA,WAAW,CAACxC,KAAZ,4BAAoB9C,+BAA+B,CAClDqF,MADkD,EAElDpD,SAFkD,CAAnD,0DAAoB,sBAGjBa,KAHH;AAIA;;AACD,MACCjB,eAAe,IACf,CAAEzB,uBAAuB,CAAEoE,IAAF,EAAQ5D,iBAAR,EAA2B,YAA3B,CAF1B,EAGE;AAAA;;AACD0E,IAAAA,WAAW,CAACzD,eAAZ,6BAA8B7B,+BAA+B,CAC5DqF,MAD4D,EAE5DxD,eAF4D,CAA7D,2DAA8B,uBAG3BiB,KAHH;AAIA;;AAED,MAAIyC,YAAY,GAAGpD,KAAK,CAACoD,YAAzB;AACAA,EAAAA,YAAY,GAAG,EACd,GAAGpD,KAAK,CAACoD,YADK;AAEdlD,IAAAA,KAAK,EAAE,EACN,GAAGiD,WADG;AAEN,iCAAGnD,KAAK,CAACoD,YAAT,wDAAG,oBAAoBlD,KAAvB;AAFM;AAFO,GAAf;AAQA,SAAO,cAAC,cAAD,eAAqBF,KAArB;AAA6B,IAAA,YAAY,EAAGoD;AAA5C,KAAP;AACA,CApD8D,EAqD/D,wBArD+D,CAAzD;AAwDP,MAAMC,eAAe,GAAG;AACvBC,EAAAA,SAAS,EAAE,CAAE,CAAE,OAAF,EAAW,UAAX,EAAuB,MAAvB,EAA+B,OAA/B,EAAwC,MAAxC,CAAF,CADY;AAEvBxD,EAAAA,SAAS,EAAE,CAAE,CAAE,WAAF,CAAF,EAAmB,CAAE,OAAF,EAAW,OAAX,EAAoB,MAApB,CAAnB,CAFY;AAGvBJ,EAAAA,eAAe,EAAE,CAChB,CAAE,iBAAF,CADgB,EAEhB,CAAE,OAAF,EAAW,OAAX,EAAoB,YAApB,CAFgB,CAHM;AAOvBZ,EAAAA,QAAQ,EAAE,CAAE,CAAE,UAAF,CAAF,EAAkB,CAAE,OAAF,EAAW,OAAX,EAAoB,UAApB,CAAlB;AAPa,CAAxB;AAUA,OAAO,SAASyE,aAAT,CAAwBC,MAAxB,EAAgCC,MAAhC,EAAwCC,KAAxC,EAA+CC,OAA/C,EAAyD;AAC/D,QAAMC,oBAAoB,GAAGJ,MAAM,CAACnB,IAApC;AACA,QAAMwB,cAAc,GAAG;AACtBP,IAAAA,SAAS,EAAErE,mBAAmB,CAAE2E,oBAAF,CADR;AAEtB9D,IAAAA,SAAS,EAAER,mBAAmB,CAAEsE,oBAAF,CAFR;AAGtBlE,IAAAA,eAAe,EAAEL,yBAAyB,CAAEuE,oBAAF,CAHpB;AAItB9E,IAAAA,QAAQ,EAAEK,kBAAkB,CAAEyE,oBAAF;AAJN,GAAvB;AAMA,SAAO5F,eAAe,CACrB6F,cADqB,EAErBR,eAFqB,EAGrBG,MAHqB,EAIrBC,MAJqB,EAKrBC,KALqB,EAMrBC,OANqB,CAAtB;AAQA;AAEDrG,SAAS,CACR,0BADQ,EAER,yBAFQ,EAGRiC,aAHQ,CAAT;AAMAjC,SAAS,CACR,kCADQ,EAER,yBAFQ,EAGRyC,YAHQ,CAAT;AAMAzC,SAAS,CACR,0BADQ,EAER,yBAFQ,EAGRyD,YAHQ,CAAT;AAMAzD,SAAS,CACR,uBADQ,EAER,sCAFQ,EAGRuF,sBAHQ,CAAT;AAMAvF,SAAS,CACR,2CADQ,EAER,0BAFQ,EAGRiG,aAHQ,CAAT","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 useSetting from '../components/use-setting';\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 = useSetting( 'color.palette.custom' );\n\t\tconst themePalette = useSetting( 'color.palette.theme' );\n\t\tconst defaultPalette = useSetting( 'color.palette.default' );\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"]}
@@ -16,11 +16,6 @@ import { useEffect, useRef, useCallback } from '@wordpress/element';
16
16
 
17
17
  import { store as blockEditorStore } from '../store';
18
18
  import { BlockControls, BlockSettingsMenuControls } from '../components';
19
- /**
20
- * External dependencies
21
- */
22
-
23
- import classnames from 'classnames';
24
19
 
25
20
  function StopEditingAsBlocksOnOutsideSelect(_ref) {
26
21
  let {
@@ -38,7 +33,7 @@ function StopEditingAsBlocksOnOutsideSelect(_ref) {
38
33
  if (!isBlockOrDescendantSelected) {
39
34
  stopEditingAsBlock();
40
35
  }
41
- }, [isBlockOrDescendantSelected]);
36
+ }, [isBlockOrDescendantSelected, stopEditingAsBlock]);
42
37
  return null;
43
38
  }
44
39
 
@@ -88,10 +83,12 @@ export const withBlockControls = createHigherOrderComponent(BlockEdit => props =
88
83
  });
89
84
 
90
85
  __unstableSetTemporarilyEditingAsBlocks();
91
- }, [props.clientId, focusModeToRevert, updateSettings, updateBlockListSettings, getBlockListSettings, __unstableMarkNextChangeAsNotPersistent, updateBlockAttributes, __unstableSetTemporarilyEditingAsBlocks]);
86
+ }, [props.clientId, updateSettings, updateBlockListSettings, getBlockListSettings, __unstableMarkNextChangeAsNotPersistent, updateBlockAttributes, __unstableSetTemporarilyEditingAsBlocks]);
92
87
 
93
88
  if (!isContentLocked && !isEditingAsBlocks) {
94
- return createElement(BlockEdit, props);
89
+ return createElement(BlockEdit, _extends({
90
+ key: "edit"
91
+ }, props));
95
92
  }
96
93
 
97
94
  const showStopEditingAsBlocks = isEditingAsBlocks && !isContentLocked;
@@ -129,9 +126,9 @@ export const withBlockControls = createHigherOrderComponent(BlockEdit => props =
129
126
  onClose();
130
127
  }
131
128
  }, __('Modify'));
132
- }), createElement(BlockEdit, _extends({}, props, {
133
- className: classnames(props.className, isEditingAsBlocks && 'is-content-locked-editing-as-blocks')
134
- })));
129
+ }), createElement(BlockEdit, _extends({
130
+ key: "edit"
131
+ }, props)));
135
132
  }, 'withToolbarControls');
136
133
  addFilter('editor.BlockEdit', 'core/content-lock-ui/with-block-controls', withBlockControls);
137
134
  //# sourceMappingURL=content-lock-ui.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/content-lock-ui.js"],"names":["ToolbarButton","MenuItem","createHigherOrderComponent","useDispatch","useSelect","addFilter","__","useEffect","useRef","useCallback","store","blockEditorStore","BlockControls","BlockSettingsMenuControls","classnames","StopEditingAsBlocksOnOutsideSelect","clientId","stopEditingAsBlock","isBlockOrDescendantSelected","select","isBlockSelected","hasSelectedInnerBlock","withBlockControls","BlockEdit","props","getBlockListSettings","getSettings","focusModeToRevert","templateLock","isLockedByParent","isEditingAsBlocks","__unstableGetContentLockingParent","getTemplateLock","__unstableGetTemporarilyEditingAsBlocks","updateSettings","updateBlockListSettings","__unstableSetTemporarilyEditingAsBlocks","isContentLocked","__unstableMarkNextChangeAsNotPersistent","updateBlockAttributes","focusMode","current","showStopEditingAsBlocks","showStartEditingAsBlocks","isSelected","onClose","undefined","className"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ToolbarButton, MenuItem } from '@wordpress/components';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { addFilter } from '@wordpress/hooks';\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useRef, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { BlockControls, BlockSettingsMenuControls } from '../components';\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\nfunction StopEditingAsBlocksOnOutsideSelect( {\n\tclientId,\n\tstopEditingAsBlock,\n} ) {\n\tconst isBlockOrDescendantSelected = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isBlockSelected, hasSelectedInnerBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\tisBlockSelected( clientId ) ||\n\t\t\t\thasSelectedInnerBlock( clientId, true )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\tuseEffect( () => {\n\t\tif ( ! isBlockOrDescendantSelected ) {\n\t\t\tstopEditingAsBlock();\n\t\t}\n\t}, [ isBlockOrDescendantSelected ] );\n\treturn null;\n}\n\nexport const withBlockControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { getBlockListSettings, getSettings } =\n\t\t\tuseSelect( blockEditorStore );\n\t\tconst focusModeToRevert = useRef();\n\t\tconst { templateLock, isLockedByParent, isEditingAsBlocks } = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\t__unstableGetContentLockingParent,\n\t\t\t\t\tgetTemplateLock,\n\t\t\t\t\t__unstableGetTemporarilyEditingAsBlocks,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\treturn {\n\t\t\t\t\ttemplateLock: getTemplateLock( props.clientId ),\n\t\t\t\t\tisLockedByParent: !! __unstableGetContentLockingParent(\n\t\t\t\t\t\tprops.clientId\n\t\t\t\t\t),\n\t\t\t\t\tisEditingAsBlocks:\n\t\t\t\t\t\t__unstableGetTemporarilyEditingAsBlocks() ===\n\t\t\t\t\t\tprops.clientId,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ props.clientId ]\n\t\t);\n\n\t\tconst {\n\t\t\tupdateSettings,\n\t\t\tupdateBlockListSettings,\n\t\t\t__unstableSetTemporarilyEditingAsBlocks,\n\t\t} = useDispatch( blockEditorStore );\n\t\tconst isContentLocked =\n\t\t\t! isLockedByParent && templateLock === 'contentOnly';\n\t\tconst {\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t\tupdateBlockAttributes,\n\t\t} = useDispatch( blockEditorStore );\n\n\t\tconst stopEditingAsBlock = useCallback( () => {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( props.clientId, {\n\t\t\t\ttemplateLock: 'contentOnly',\n\t\t\t} );\n\t\t\tupdateBlockListSettings( props.clientId, {\n\t\t\t\t...getBlockListSettings( props.clientId ),\n\t\t\t\ttemplateLock: 'contentOnly',\n\t\t\t} );\n\t\t\tupdateSettings( { focusMode: focusModeToRevert.current } );\n\t\t\t__unstableSetTemporarilyEditingAsBlocks();\n\t\t}, [\n\t\t\tprops.clientId,\n\t\t\tfocusModeToRevert,\n\t\t\tupdateSettings,\n\t\t\tupdateBlockListSettings,\n\t\t\tgetBlockListSettings,\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t\tupdateBlockAttributes,\n\t\t\t__unstableSetTemporarilyEditingAsBlocks,\n\t\t] );\n\n\t\tif ( ! isContentLocked && ! isEditingAsBlocks ) {\n\t\t\treturn <BlockEdit { ...props } />;\n\t\t}\n\n\t\tconst showStopEditingAsBlocks = isEditingAsBlocks && ! isContentLocked;\n\t\tconst showStartEditingAsBlocks =\n\t\t\t! isEditingAsBlocks && isContentLocked && props.isSelected;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ showStopEditingAsBlocks && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<StopEditingAsBlocksOnOutsideSelect\n\t\t\t\t\t\t\tclientId={ props.clientId }\n\t\t\t\t\t\t\tstopEditingAsBlock={ stopEditingAsBlock }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tstopEditingAsBlock();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t</BlockControls>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ showStartEditingAsBlocks && (\n\t\t\t\t\t<BlockSettingsMenuControls>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\t\tupdateBlockAttributes( props.clientId, {\n\t\t\t\t\t\t\t\t\t\ttemplateLock: undefined,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\tupdateBlockListSettings( props.clientId, {\n\t\t\t\t\t\t\t\t\t\t...getBlockListSettings(\n\t\t\t\t\t\t\t\t\t\t\tprops.clientId\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\ttemplateLock: false,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\tfocusModeToRevert.current =\n\t\t\t\t\t\t\t\t\t\tgetSettings().focusMode;\n\t\t\t\t\t\t\t\t\tupdateSettings( { focusMode: true } );\n\t\t\t\t\t\t\t\t\t__unstableSetTemporarilyEditingAsBlocks(\n\t\t\t\t\t\t\t\t\t\tprops.clientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Modify' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockSettingsMenuControls>\n\t\t\t\t) }\n\t\t\t\t<BlockEdit\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tprops.className,\n\t\t\t\t\t\tisEditingAsBlocks &&\n\t\t\t\t\t\t\t'is-content-locked-editing-as-blocks'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t},\n\t'withToolbarControls'\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/content-lock-ui/with-block-controls',\n\twithBlockControls\n);\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/content-lock-ui.js"],"names":["ToolbarButton","MenuItem","createHigherOrderComponent","useDispatch","useSelect","addFilter","__","useEffect","useRef","useCallback","store","blockEditorStore","BlockControls","BlockSettingsMenuControls","StopEditingAsBlocksOnOutsideSelect","clientId","stopEditingAsBlock","isBlockOrDescendantSelected","select","isBlockSelected","hasSelectedInnerBlock","withBlockControls","BlockEdit","props","getBlockListSettings","getSettings","focusModeToRevert","templateLock","isLockedByParent","isEditingAsBlocks","__unstableGetContentLockingParent","getTemplateLock","__unstableGetTemporarilyEditingAsBlocks","updateSettings","updateBlockListSettings","__unstableSetTemporarilyEditingAsBlocks","isContentLocked","__unstableMarkNextChangeAsNotPersistent","updateBlockAttributes","focusMode","current","showStopEditingAsBlocks","showStartEditingAsBlocks","isSelected","onClose","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ToolbarButton, MenuItem } from '@wordpress/components';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { addFilter } from '@wordpress/hooks';\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useRef, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { BlockControls, BlockSettingsMenuControls } from '../components';\n\nfunction StopEditingAsBlocksOnOutsideSelect( {\n\tclientId,\n\tstopEditingAsBlock,\n} ) {\n\tconst isBlockOrDescendantSelected = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isBlockSelected, hasSelectedInnerBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\tisBlockSelected( clientId ) ||\n\t\t\t\thasSelectedInnerBlock( clientId, true )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\tuseEffect( () => {\n\t\tif ( ! isBlockOrDescendantSelected ) {\n\t\t\tstopEditingAsBlock();\n\t\t}\n\t}, [ isBlockOrDescendantSelected, stopEditingAsBlock ] );\n\treturn null;\n}\n\nexport const withBlockControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { getBlockListSettings, getSettings } =\n\t\t\tuseSelect( blockEditorStore );\n\t\tconst focusModeToRevert = useRef();\n\t\tconst { templateLock, isLockedByParent, isEditingAsBlocks } = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\t__unstableGetContentLockingParent,\n\t\t\t\t\tgetTemplateLock,\n\t\t\t\t\t__unstableGetTemporarilyEditingAsBlocks,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\treturn {\n\t\t\t\t\ttemplateLock: getTemplateLock( props.clientId ),\n\t\t\t\t\tisLockedByParent: !! __unstableGetContentLockingParent(\n\t\t\t\t\t\tprops.clientId\n\t\t\t\t\t),\n\t\t\t\t\tisEditingAsBlocks:\n\t\t\t\t\t\t__unstableGetTemporarilyEditingAsBlocks() ===\n\t\t\t\t\t\tprops.clientId,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ props.clientId ]\n\t\t);\n\n\t\tconst {\n\t\t\tupdateSettings,\n\t\t\tupdateBlockListSettings,\n\t\t\t__unstableSetTemporarilyEditingAsBlocks,\n\t\t} = useDispatch( blockEditorStore );\n\t\tconst isContentLocked =\n\t\t\t! isLockedByParent && templateLock === 'contentOnly';\n\t\tconst {\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t\tupdateBlockAttributes,\n\t\t} = useDispatch( blockEditorStore );\n\n\t\tconst stopEditingAsBlock = useCallback( () => {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( props.clientId, {\n\t\t\t\ttemplateLock: 'contentOnly',\n\t\t\t} );\n\t\t\tupdateBlockListSettings( props.clientId, {\n\t\t\t\t...getBlockListSettings( props.clientId ),\n\t\t\t\ttemplateLock: 'contentOnly',\n\t\t\t} );\n\t\t\tupdateSettings( { focusMode: focusModeToRevert.current } );\n\t\t\t__unstableSetTemporarilyEditingAsBlocks();\n\t\t}, [\n\t\t\tprops.clientId,\n\t\t\tupdateSettings,\n\t\t\tupdateBlockListSettings,\n\t\t\tgetBlockListSettings,\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t\tupdateBlockAttributes,\n\t\t\t__unstableSetTemporarilyEditingAsBlocks,\n\t\t] );\n\n\t\tif ( ! isContentLocked && ! isEditingAsBlocks ) {\n\t\t\treturn <BlockEdit key=\"edit\" { ...props } />;\n\t\t}\n\n\t\tconst showStopEditingAsBlocks = isEditingAsBlocks && ! isContentLocked;\n\t\tconst showStartEditingAsBlocks =\n\t\t\t! isEditingAsBlocks && isContentLocked && props.isSelected;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ showStopEditingAsBlocks && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<StopEditingAsBlocksOnOutsideSelect\n\t\t\t\t\t\t\tclientId={ props.clientId }\n\t\t\t\t\t\t\tstopEditingAsBlock={ stopEditingAsBlock }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tstopEditingAsBlock();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t</BlockControls>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ showStartEditingAsBlocks && (\n\t\t\t\t\t<BlockSettingsMenuControls>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\t\tupdateBlockAttributes( props.clientId, {\n\t\t\t\t\t\t\t\t\t\ttemplateLock: undefined,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\tupdateBlockListSettings( props.clientId, {\n\t\t\t\t\t\t\t\t\t\t...getBlockListSettings(\n\t\t\t\t\t\t\t\t\t\t\tprops.clientId\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\ttemplateLock: false,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\tfocusModeToRevert.current =\n\t\t\t\t\t\t\t\t\t\tgetSettings().focusMode;\n\t\t\t\t\t\t\t\t\tupdateSettings( { focusMode: true } );\n\t\t\t\t\t\t\t\t\t__unstableSetTemporarilyEditingAsBlocks(\n\t\t\t\t\t\t\t\t\t\tprops.clientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Modify' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockSettingsMenuControls>\n\t\t\t\t) }\n\t\t\t\t<BlockEdit key=\"edit\" { ...props } />\n\t\t\t</>\n\t\t);\n\t},\n\t'withToolbarControls'\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/content-lock-ui/with-block-controls',\n\twithBlockControls\n);\n"]}
@@ -112,32 +112,4 @@ export function useCustomSides() {
112
112
  version: '6.4'
113
113
  });
114
114
  }
115
- /**
116
- * Custom hook to determine whether the sides configured in the
117
- * block support are valid. A dimension property cannot declare
118
- * support for a mix of axial and individual sides.
119
- *
120
- * @param {string} blockName Block name.
121
- * @param {string} feature The feature custom sides relate to e.g. padding or margins.
122
- *
123
- * @return {boolean} If the feature has a valid configuration of sides.
124
- */
125
-
126
- export function useIsDimensionsSupportValid(blockName, feature) {
127
- const sides = useCustomSides(blockName, feature);
128
-
129
- if (sides && sides.some(side => ALL_SIDES.includes(side)) && sides.some(side => AXIAL_SIDES.includes(side))) {
130
- // eslint-disable-next-line no-console
131
- console.warn(`The ${feature} support for the "${blockName}" block can not be configured to support both axial and arbitrary sides.`);
132
- return false;
133
- }
134
-
135
- if (sides !== null && sides !== void 0 && sides.length && feature === 'blockGap' && !AXIAL_SIDES.every(side => sides.includes(side))) {
136
- // eslint-disable-next-line no-console
137
- console.warn(`The ${feature} support for the "${blockName}" block can not be configured to support arbitrary sides.`);
138
- return false;
139
- }
140
-
141
- return true;
142
- }
143
115
  //# sourceMappingURL=dimensions.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/dimensions.js"],"names":["useState","useEffect","useCallback","useDispatch","getBlockSupport","deprecated","InspectorControls","DimensionsPanel","StylesDimensionsPanel","useHasDimensionsPanel","MarginVisualizer","PaddingVisualizer","store","blockEditorStore","unlock","cleanEmptyObject","useBlockSettings","DIMENSIONS_SUPPORT_KEY","SPACING_SUPPORT_KEY","ALL_SIDES","AXIAL_SIDES","useVisualizer","property","setProperty","hideBlockInterface","showBlockInterface","DimensionsInspectorControl","children","resetAllFilter","attributesResetAllFilter","attributes","existingStyle","style","updatedStyle","props","clientId","name","setAttributes","__unstableParentLayout","settings","isEnabled","value","visualizedProperty","setVisualizedProperty","onChange","newStyle","defaultDimensionsControls","defaultSpacingControls","defaultControls","spacing","padding","margin","useCustomSides","since","version","useIsDimensionsSupportValid","blockName","feature","sides","some","side","includes","console","warn","length","every"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useCallback } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport {\n\tDimensionsPanel as StylesDimensionsPanel,\n\tuseHasDimensionsPanel,\n} from '../components/global-styles';\nimport { MarginVisualizer } from './margin';\nimport { PaddingVisualizer } from './padding';\nimport { store as blockEditorStore } from '../store';\nimport { unlock } from '../lock-unlock';\n\nimport { cleanEmptyObject, useBlockSettings } from './utils';\n\nexport const DIMENSIONS_SUPPORT_KEY = 'dimensions';\nexport const SPACING_SUPPORT_KEY = 'spacing';\nexport const ALL_SIDES = [ 'top', 'right', 'bottom', 'left' ];\nexport const AXIAL_SIDES = [ 'vertical', 'horizontal' ];\n\nfunction useVisualizer() {\n\tconst [ property, setProperty ] = useState( false );\n\tconst { hideBlockInterface, showBlockInterface } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\tuseEffect( () => {\n\t\tif ( ! property ) {\n\t\t\tshowBlockInterface();\n\t\t} else {\n\t\t\thideBlockInterface();\n\t\t}\n\t}, [ property, showBlockInterface, hideBlockInterface ] );\n\n\treturn [ property, setProperty ];\n}\n\nfunction DimensionsInspectorControl( { children, resetAllFilter } ) {\n\tconst attributesResetAllFilter = useCallback(\n\t\t( attributes ) => {\n\t\t\tconst existingStyle = attributes.style;\n\t\t\tconst updatedStyle = resetAllFilter( existingStyle );\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\tstyle: updatedStyle,\n\t\t\t};\n\t\t},\n\t\t[ resetAllFilter ]\n\t);\n\n\treturn (\n\t\t<InspectorControls\n\t\t\tgroup=\"dimensions\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function DimensionsPanel( props ) {\n\tconst {\n\t\tclientId,\n\t\tname,\n\t\tattributes,\n\t\tsetAttributes,\n\t\t__unstableParentLayout,\n\t} = props;\n\tconst settings = useBlockSettings( name, __unstableParentLayout );\n\tconst isEnabled = useHasDimensionsPanel( settings );\n\tconst value = attributes.style;\n\tconst [ visualizedProperty, setVisualizedProperty ] = useVisualizer();\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t} );\n\t};\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst defaultDimensionsControls = getBlockSupport( props.name, [\n\t\tDIMENSIONS_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\tconst defaultSpacingControls = getBlockSupport( props.name, [\n\t\tSPACING_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\tconst defaultControls = {\n\t\t...defaultDimensionsControls,\n\t\t...defaultSpacingControls,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<StylesDimensionsPanel\n\t\t\t\tas={ DimensionsInspectorControl }\n\t\t\t\tpanelId={ clientId }\n\t\t\t\tsettings={ settings }\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tdefaultControls={ defaultControls }\n\t\t\t\tonVisualize={ setVisualizedProperty }\n\t\t\t/>\n\t\t\t{ !! settings?.spacing?.padding && (\n\t\t\t\t<PaddingVisualizer\n\t\t\t\t\tforceShow={ visualizedProperty === 'padding' }\n\t\t\t\t\t{ ...props }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! settings?.spacing?.margin && (\n\t\t\t\t<MarginVisualizer\n\t\t\t\t\tforceShow={ visualizedProperty === 'margin' }\n\t\t\t\t\t{ ...props }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\n/**\n * @deprecated\n */\nexport function useCustomSides() {\n\tdeprecated( 'wp.blockEditor.__experimentalUseCustomSides', {\n\t\tsince: '6.3',\n\t\tversion: '6.4',\n\t} );\n}\n\n/**\n * Custom hook to determine whether the sides configured in the\n * block support are valid. A dimension property cannot declare\n * support for a mix of axial and individual sides.\n *\n * @param {string} blockName Block name.\n * @param {string} feature The feature custom sides relate to e.g. padding or margins.\n *\n * @return {boolean} If the feature has a valid configuration of sides.\n */\nexport function useIsDimensionsSupportValid( blockName, feature ) {\n\tconst sides = useCustomSides( blockName, feature );\n\n\tif (\n\t\tsides &&\n\t\tsides.some( ( side ) => ALL_SIDES.includes( side ) ) &&\n\t\tsides.some( ( side ) => AXIAL_SIDES.includes( side ) )\n\t) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(\n\t\t\t`The ${ feature } support for the \"${ blockName }\" block can not be configured to support both axial and arbitrary sides.`\n\t\t);\n\t\treturn false;\n\t}\n\n\tif (\n\t\tsides?.length &&\n\t\tfeature === 'blockGap' &&\n\t\t! AXIAL_SIDES.every( ( side ) => sides.includes( side ) )\n\t) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(\n\t\t\t`The ${ feature } support for the \"${ blockName }\" block can not be configured to support arbitrary sides.`\n\t\t);\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/dimensions.js"],"names":["useState","useEffect","useCallback","useDispatch","getBlockSupport","deprecated","InspectorControls","DimensionsPanel","StylesDimensionsPanel","useHasDimensionsPanel","MarginVisualizer","PaddingVisualizer","store","blockEditorStore","unlock","cleanEmptyObject","useBlockSettings","DIMENSIONS_SUPPORT_KEY","SPACING_SUPPORT_KEY","ALL_SIDES","AXIAL_SIDES","useVisualizer","property","setProperty","hideBlockInterface","showBlockInterface","DimensionsInspectorControl","children","resetAllFilter","attributesResetAllFilter","attributes","existingStyle","style","updatedStyle","props","clientId","name","setAttributes","__unstableParentLayout","settings","isEnabled","value","visualizedProperty","setVisualizedProperty","onChange","newStyle","defaultDimensionsControls","defaultSpacingControls","defaultControls","spacing","padding","margin","useCustomSides","since","version"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useCallback } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport {\n\tDimensionsPanel as StylesDimensionsPanel,\n\tuseHasDimensionsPanel,\n} from '../components/global-styles';\nimport { MarginVisualizer } from './margin';\nimport { PaddingVisualizer } from './padding';\nimport { store as blockEditorStore } from '../store';\nimport { unlock } from '../lock-unlock';\n\nimport { cleanEmptyObject, useBlockSettings } from './utils';\n\nexport const DIMENSIONS_SUPPORT_KEY = 'dimensions';\nexport const SPACING_SUPPORT_KEY = 'spacing';\nexport const ALL_SIDES = [ 'top', 'right', 'bottom', 'left' ];\nexport const AXIAL_SIDES = [ 'vertical', 'horizontal' ];\n\nfunction useVisualizer() {\n\tconst [ property, setProperty ] = useState( false );\n\tconst { hideBlockInterface, showBlockInterface } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\tuseEffect( () => {\n\t\tif ( ! property ) {\n\t\t\tshowBlockInterface();\n\t\t} else {\n\t\t\thideBlockInterface();\n\t\t}\n\t}, [ property, showBlockInterface, hideBlockInterface ] );\n\n\treturn [ property, setProperty ];\n}\n\nfunction DimensionsInspectorControl( { children, resetAllFilter } ) {\n\tconst attributesResetAllFilter = useCallback(\n\t\t( attributes ) => {\n\t\t\tconst existingStyle = attributes.style;\n\t\t\tconst updatedStyle = resetAllFilter( existingStyle );\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\tstyle: updatedStyle,\n\t\t\t};\n\t\t},\n\t\t[ resetAllFilter ]\n\t);\n\n\treturn (\n\t\t<InspectorControls\n\t\t\tgroup=\"dimensions\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function DimensionsPanel( props ) {\n\tconst {\n\t\tclientId,\n\t\tname,\n\t\tattributes,\n\t\tsetAttributes,\n\t\t__unstableParentLayout,\n\t} = props;\n\tconst settings = useBlockSettings( name, __unstableParentLayout );\n\tconst isEnabled = useHasDimensionsPanel( settings );\n\tconst value = attributes.style;\n\tconst [ visualizedProperty, setVisualizedProperty ] = useVisualizer();\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t} );\n\t};\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst defaultDimensionsControls = getBlockSupport( props.name, [\n\t\tDIMENSIONS_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\tconst defaultSpacingControls = getBlockSupport( props.name, [\n\t\tSPACING_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\tconst defaultControls = {\n\t\t...defaultDimensionsControls,\n\t\t...defaultSpacingControls,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<StylesDimensionsPanel\n\t\t\t\tas={ DimensionsInspectorControl }\n\t\t\t\tpanelId={ clientId }\n\t\t\t\tsettings={ settings }\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tdefaultControls={ defaultControls }\n\t\t\t\tonVisualize={ setVisualizedProperty }\n\t\t\t/>\n\t\t\t{ !! settings?.spacing?.padding && (\n\t\t\t\t<PaddingVisualizer\n\t\t\t\t\tforceShow={ visualizedProperty === 'padding' }\n\t\t\t\t\t{ ...props }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! settings?.spacing?.margin && (\n\t\t\t\t<MarginVisualizer\n\t\t\t\t\tforceShow={ visualizedProperty === 'margin' }\n\t\t\t\t\t{ ...props }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\n/**\n * @deprecated\n */\nexport function useCustomSides() {\n\tdeprecated( 'wp.blockEditor.__experimentalUseCustomSides', {\n\t\tsince: '6.3',\n\t\tversion: '6.4',\n\t} );\n}\n"]}
@@ -15,7 +15,6 @@ import { getBlockSupport, getBlockType, hasBlockSupport } from '@wordpress/block
15
15
  import { createHigherOrderComponent, useInstanceId } from '@wordpress/compose';
16
16
  import { addFilter } from '@wordpress/hooks';
17
17
  import { useMemo, useContext, createPortal } from '@wordpress/element';
18
- import { useSelect } from '@wordpress/data';
19
18
  /**
20
19
  * Internal dependencies
21
20
  */
@@ -26,8 +25,8 @@ import { __unstableDuotoneFilter as DuotoneFilter, __unstableDuotoneStylesheet a
26
25
  import { getBlockCSSSelector } from '../components/global-styles/get-block-css-selector';
27
26
  import { scopeSelector } from '../components/global-styles/utils';
28
27
  import { useBlockSettings } from './utils';
29
- import { store as blockEditorStore } from '../store';
30
28
  import { default as StylesFiltersPanel } from '../components/global-styles/filters-panel';
29
+ import { useBlockEditingMode } from '../components/block-editing-mode';
31
30
  const EMPTY_ARRAY = [];
32
31
  extend([namesPlugin]);
33
32
  /**
@@ -137,7 +136,7 @@ function DuotonePanel(_ref4) {
137
136
  }
138
137
  },
139
138
  onChange: newDuotone => {
140
- const newStyle = {
139
+ const newStyle = { ...style,
141
140
  color: { ...(newDuotone === null || newDuotone === void 0 ? void 0 : newDuotone.filter)
142
141
  }
143
142
  };
@@ -213,14 +212,12 @@ const withDuotoneControls = createHigherOrderComponent(BlockEdit => props => {
213
212
  // Previous `color.__experimentalDuotone` support flag is migrated via
214
213
  // block_type_metadata_settings filter in `lib/block-supports/duotone.php`.
215
214
  const hasDuotoneSupport = hasBlockSupport(props.name, 'filter.duotone');
216
- const isContentLocked = useSelect(select => {
217
- return select(blockEditorStore).__unstableGetContentLockingParent(props.clientId);
218
- }, [props.clientId]); // CAUTION: code added before this line will be executed
215
+ const blockEditingMode = useBlockEditingMode(); // CAUTION: code added before this line will be executed
219
216
  // for all blocks, not just those that support duotone. Code added
220
217
  // above this line should be carefully evaluated for its impact on
221
218
  // performance.
222
219
 
223
- return createElement(Fragment, null, hasDuotoneSupport && !isContentLocked && createElement(DuotonePanel, props), createElement(BlockEdit, props));
220
+ return createElement(Fragment, null, hasDuotoneSupport && blockEditingMode === 'default' && createElement(DuotonePanel, props), createElement(BlockEdit, props));
224
221
  }, 'withDuotoneControls');
225
222
 
226
223
  function DuotoneStyles(_ref5) {