@wordpress/block-editor 8.0.1 → 8.0.2

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 (1126) hide show
  1. package/build/components/alignment-control/ui.js +11 -9
  2. package/build/components/alignment-control/ui.js.map +1 -1
  3. package/build/components/autocomplete/index.js +5 -4
  4. package/build/components/autocomplete/index.js.map +1 -1
  5. package/build/components/block-actions/index.js +12 -8
  6. package/build/components/block-actions/index.js.map +1 -1
  7. package/build/components/block-alignment-control/ui.js +21 -17
  8. package/build/components/block-alignment-control/ui.js.map +1 -1
  9. package/build/components/block-alignment-control/use-available-alignments.js +9 -4
  10. package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
  11. package/build/components/block-alignment-matrix-control/index.js +6 -4
  12. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  13. package/build/components/block-breadcrumb/index.js +4 -3
  14. package/build/components/block-breadcrumb/index.js.map +1 -1
  15. package/build/components/block-caption/index.native.js +34 -29
  16. package/build/components/block-caption/index.native.js.map +1 -1
  17. package/build/components/block-card/index.js +8 -6
  18. package/build/components/block-card/index.js.map +1 -1
  19. package/build/components/block-compare/block-view.js +9 -8
  20. package/build/components/block-compare/block-view.js.map +1 -1
  21. package/build/components/block-compare/index.js +9 -7
  22. package/build/components/block-compare/index.js.map +1 -1
  23. package/build/components/block-content-overlay/index.js +7 -6
  24. package/build/components/block-content-overlay/index.js.map +1 -1
  25. package/build/components/block-context/index.js +5 -4
  26. package/build/components/block-context/index.js.map +1 -1
  27. package/build/components/block-controls/fill.js +7 -6
  28. package/build/components/block-controls/fill.js.map +1 -1
  29. package/build/components/block-controls/slot.js +5 -4
  30. package/build/components/block-controls/slot.js.map +1 -1
  31. package/build/components/block-controls/slot.native.js +5 -4
  32. package/build/components/block-controls/slot.native.js.map +1 -1
  33. package/build/components/block-draggable/draggable-chip.js +5 -4
  34. package/build/components/block-draggable/draggable-chip.js.map +1 -1
  35. package/build/components/block-draggable/index.js +13 -11
  36. package/build/components/block-draggable/index.js.map +1 -1
  37. package/build/components/block-edit/context.js +1 -1
  38. package/build/components/block-full-height-alignment-control/index.js +7 -6
  39. package/build/components/block-full-height-alignment-control/index.js.map +1 -1
  40. package/build/components/block-icon/index.js +7 -5
  41. package/build/components/block-icon/index.js.map +1 -1
  42. package/build/components/block-icon/index.native.js +8 -6
  43. package/build/components/block-icon/index.native.js.map +1 -1
  44. package/build/components/block-inspector/index.js +20 -15
  45. package/build/components/block-inspector/index.js.map +1 -1
  46. package/build/components/block-list/block-html.js +4 -3
  47. package/build/components/block-list/block-html.js.map +1 -1
  48. package/build/components/block-list/block-invalid-warning.js +28 -20
  49. package/build/components/block-list/block-invalid-warning.js.map +1 -1
  50. package/build/components/block-list/block-invalid-warning.native.js +5 -4
  51. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  52. package/build/components/block-list/block-list-item.native.js +6 -5
  53. package/build/components/block-list/block-list-item.native.js.map +1 -1
  54. package/build/components/block-list/block-selection-button.native.js +11 -9
  55. package/build/components/block-list/block-selection-button.native.js.map +1 -1
  56. package/build/components/block-list/block.js +40 -33
  57. package/build/components/block-list/block.js.map +1 -1
  58. package/build/components/block-list/block.native.js +35 -29
  59. package/build/components/block-list/block.native.js.map +1 -1
  60. package/build/components/block-list/index.js +14 -12
  61. package/build/components/block-list/index.js.map +1 -1
  62. package/build/components/block-list/index.native.js +22 -17
  63. package/build/components/block-list/index.native.js.map +1 -1
  64. package/build/components/block-list/insertion-point.native.js +4 -3
  65. package/build/components/block-list/insertion-point.native.js.map +1 -1
  66. package/build/components/block-list/layout.js +8 -6
  67. package/build/components/block-list/layout.js.map +1 -1
  68. package/build/components/block-list/subdirectory-icon.js +13 -10
  69. package/build/components/block-list/subdirectory-icon.js.map +1 -1
  70. package/build/components/block-list/use-block-props/index.js +5 -3
  71. package/build/components/block-list/use-block-props/index.js.map +1 -1
  72. package/build/components/block-list/use-block-props/index.native.js +2 -1
  73. package/build/components/block-list/use-block-props/index.native.js.map +1 -1
  74. package/build/components/block-list/use-block-props/use-block-refs.js +2 -2
  75. package/build/components/block-list/use-block-props/use-multi-selection.js +9 -6
  76. package/build/components/block-list/use-block-props/use-multi-selection.js.map +1 -1
  77. package/build/components/block-list-appender/index.js +16 -13
  78. package/build/components/block-list-appender/index.js.map +1 -1
  79. package/build/components/block-list-appender/index.native.js +14 -11
  80. package/build/components/block-list-appender/index.native.js.map +1 -1
  81. package/build/components/block-media-update-progress/index.native.js +1 -1
  82. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +46 -42
  83. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  84. package/build/components/block-mobile-toolbar/index.js +4 -3
  85. package/build/components/block-mobile-toolbar/index.js.map +1 -1
  86. package/build/components/block-mobile-toolbar/index.native.js +33 -25
  87. package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
  88. package/build/components/block-mover/button.js +8 -7
  89. package/build/components/block-mover/button.js.map +1 -1
  90. package/build/components/block-mover/index.js +15 -13
  91. package/build/components/block-mover/index.js.map +1 -1
  92. package/build/components/block-mover/index.native.js +23 -20
  93. package/build/components/block-mover/index.native.js.map +1 -1
  94. package/build/components/block-mover/mover-description.native.js +10 -7
  95. package/build/components/block-mover/mover-description.native.js.map +1 -1
  96. package/build/components/block-navigation/dropdown.js +26 -21
  97. package/build/components/block-navigation/dropdown.js.map +1 -1
  98. package/build/components/block-pattern-setup/index.js +26 -22
  99. package/build/components/block-pattern-setup/index.js.map +1 -1
  100. package/build/components/block-pattern-setup/setup-toolbar.js +46 -39
  101. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  102. package/build/components/block-patterns-list/index.js +44 -39
  103. package/build/components/block-patterns-list/index.js.map +1 -1
  104. package/build/components/block-preview/auto.js +5 -4
  105. package/build/components/block-preview/auto.js.map +1 -1
  106. package/build/components/block-preview/index.js +8 -7
  107. package/build/components/block-preview/index.js.map +1 -1
  108. package/build/components/block-preview/live.js +4 -3
  109. package/build/components/block-preview/live.js.map +1 -1
  110. package/build/components/block-selection-clearer/index.js +1 -1
  111. package/build/components/block-settings/button.native.js +10 -7
  112. package/build/components/block-settings/button.native.js.map +1 -1
  113. package/build/components/block-settings/container.native.js +7 -6
  114. package/build/components/block-settings/container.native.js.map +1 -1
  115. package/build/components/block-settings/index.native.js +4 -2
  116. package/build/components/block-settings/index.native.js.map +1 -1
  117. package/build/components/block-settings-menu/block-convert-button.js +7 -5
  118. package/build/components/block-settings-menu/block-convert-button.js.map +1 -1
  119. package/build/components/block-settings-menu/block-html-convert-button.js +14 -10
  120. package/build/components/block-settings-menu/block-html-convert-button.js.map +1 -1
  121. package/build/components/block-settings-menu/block-mode-toggle.js +25 -19
  122. package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  123. package/build/components/block-settings-menu/block-settings-dropdown.js +74 -66
  124. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  125. package/build/components/block-settings-menu/index.js +5 -4
  126. package/build/components/block-settings-menu/index.js.map +1 -1
  127. package/build/components/block-settings-menu-controls/index.js +8 -6
  128. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  129. package/build/components/block-styles/index.js +20 -17
  130. package/build/components/block-styles/index.js.map +1 -1
  131. package/build/components/block-styles/index.native.js +6 -4
  132. package/build/components/block-styles/index.native.js.map +1 -1
  133. package/build/components/block-styles/preview.native.js +7 -6
  134. package/build/components/block-styles/preview.native.js.map +1 -1
  135. package/build/components/block-switcher/block-styles-menu.js +5 -4
  136. package/build/components/block-switcher/block-styles-menu.js.map +1 -1
  137. package/build/components/block-switcher/block-transformations-menu.js +7 -6
  138. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  139. package/build/components/block-switcher/block-transformations-menu.native.js +9 -8
  140. package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  141. package/build/components/block-switcher/index.js +42 -34
  142. package/build/components/block-switcher/index.js.map +1 -1
  143. package/build/components/block-switcher/pattern-transformations-menu.js +22 -18
  144. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  145. package/build/components/block-switcher/preview-block-popover.js +4 -3
  146. package/build/components/block-switcher/preview-block-popover.js.map +1 -1
  147. package/build/components/block-switcher/use-transformed-patterns.js +1 -1
  148. package/build/components/block-switcher/utils.js +2 -1
  149. package/build/components/block-switcher/utils.js.map +1 -1
  150. package/build/components/block-title/index.js +4 -3
  151. package/build/components/block-title/index.js.map +1 -1
  152. package/build/components/block-toolbar/index.js +4 -3
  153. package/build/components/block-toolbar/index.js.map +1 -1
  154. package/build/components/block-toolbar/utils.js +13 -11
  155. package/build/components/block-toolbar/utils.js.map +1 -1
  156. package/build/components/block-tools/back-compat.js +8 -5
  157. package/build/components/block-tools/back-compat.js.map +1 -1
  158. package/build/components/block-tools/block-contextual-toolbar.js +6 -5
  159. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  160. package/build/components/block-tools/block-popover.js +15 -13
  161. package/build/components/block-tools/block-popover.js.map +1 -1
  162. package/build/components/block-tools/block-selection-button.js +6 -5
  163. package/build/components/block-tools/block-selection-button.js.map +1 -1
  164. package/build/components/block-tools/index.js +6 -5
  165. package/build/components/block-tools/index.js.map +1 -1
  166. package/build/components/block-tools/insertion-point.js +12 -10
  167. package/build/components/block-tools/insertion-point.js.map +1 -1
  168. package/build/components/block-types-list/index.js +9 -8
  169. package/build/components/block-types-list/index.js.map +1 -1
  170. package/build/components/block-types-list/index.native.js +19 -15
  171. package/build/components/block-types-list/index.native.js.map +1 -1
  172. package/build/components/block-variation-picker/index.js +9 -8
  173. package/build/components/block-variation-picker/index.js.map +1 -1
  174. package/build/components/block-variation-picker/index.native.js +9 -7
  175. package/build/components/block-variation-picker/index.native.js.map +1 -1
  176. package/build/components/block-variation-transforms/index.js +22 -15
  177. package/build/components/block-variation-transforms/index.js.map +1 -1
  178. package/build/components/block-vertical-alignment-control/ui.js +9 -7
  179. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  180. package/build/components/border-radius-control/all-input-control.js +6 -5
  181. package/build/components/border-radius-control/all-input-control.js.map +1 -1
  182. package/build/components/border-radius-control/index.js +5 -4
  183. package/build/components/border-radius-control/index.js.map +1 -1
  184. package/build/components/border-radius-control/input-controls.js +16 -11
  185. package/build/components/border-radius-control/input-controls.js.map +1 -1
  186. package/build/components/border-radius-control/linked-button.js +5 -4
  187. package/build/components/border-radius-control/linked-button.js.map +1 -1
  188. package/build/components/border-radius-control/utils.js +10 -5
  189. package/build/components/border-radius-control/utils.js.map +1 -1
  190. package/build/components/border-style-control/index.js +5 -4
  191. package/build/components/border-style-control/index.js.map +1 -1
  192. package/build/components/button-block-appender/index.js +15 -13
  193. package/build/components/button-block-appender/index.js.map +1 -1
  194. package/build/components/button-block-appender/index.native.js +28 -24
  195. package/build/components/button-block-appender/index.native.js.map +1 -1
  196. package/build/components/caption/index.native.js +44 -41
  197. package/build/components/caption/index.native.js.map +1 -1
  198. package/build/components/color-palette/control.js +6 -5
  199. package/build/components/color-palette/control.js.map +1 -1
  200. package/build/components/color-style-selector/index.js +43 -34
  201. package/build/components/color-style-selector/index.js.map +1 -1
  202. package/build/components/colors/color-panel.js +21 -18
  203. package/build/components/colors/color-panel.js.map +1 -1
  204. package/build/components/colors/index.js +10 -8
  205. package/build/components/colors/index.js.map +1 -1
  206. package/build/components/colors/utils.js +7 -4
  207. package/build/components/colors/utils.js.map +1 -1
  208. package/build/components/colors/with-colors.js +17 -6
  209. package/build/components/colors/with-colors.js.map +1 -1
  210. package/build/components/colors-gradients/control.js +16 -15
  211. package/build/components/colors-gradients/control.js.map +1 -1
  212. package/build/components/colors-gradients/panel-color-gradient-settings.js +30 -25
  213. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  214. package/build/components/colors-gradients/panel-color-gradient-settings.native.js +28 -24
  215. package/build/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  216. package/build/components/contrast-checker/index.js +18 -15
  217. package/build/components/contrast-checker/index.js.map +1 -1
  218. package/build/components/convert-to-group-buttons/index.js +9 -8
  219. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  220. package/build/components/copy-handler/index.js +6 -5
  221. package/build/components/copy-handler/index.js.map +1 -1
  222. package/build/components/default-block-appender/index.js +10 -8
  223. package/build/components/default-block-appender/index.js.map +1 -1
  224. package/build/components/default-block-appender/index.native.js +10 -8
  225. package/build/components/default-block-appender/index.native.js.map +1 -1
  226. package/build/components/default-style-picker/index.js +14 -10
  227. package/build/components/default-style-picker/index.js.map +1 -1
  228. package/build/components/duotone-control/index.js +15 -12
  229. package/build/components/duotone-control/index.js.map +1 -1
  230. package/build/components/editable-text/index.js +6 -5
  231. package/build/components/editable-text/index.js.map +1 -1
  232. package/build/components/editor-styles/index.js +4 -3
  233. package/build/components/editor-styles/index.js.map +1 -1
  234. package/build/components/floating-toolbar/index.native.js +8 -7
  235. package/build/components/floating-toolbar/index.native.js.map +1 -1
  236. package/build/components/font-appearance-control/index.js +26 -19
  237. package/build/components/font-appearance-control/index.js.map +1 -1
  238. package/build/components/font-family/index.js +12 -10
  239. package/build/components/font-family/index.js.map +1 -1
  240. package/build/components/font-sizes/index.js +6 -6
  241. package/build/components/font-sizes/index.native.js +6 -6
  242. package/build/components/font-sizes/utils.js +2 -2
  243. package/build/components/font-sizes/with-font-sizes.js +11 -5
  244. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  245. package/build/components/gradients/use-gradient.js +7 -6
  246. package/build/components/gradients/use-gradient.js.map +1 -1
  247. package/build/components/iframe/index.js +28 -22
  248. package/build/components/iframe/index.js.map +1 -1
  249. package/build/components/image-editor/aspect-ratio-dropdown.js +90 -82
  250. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  251. package/build/components/image-editor/constants.js +1 -1
  252. package/build/components/image-editor/context.js +11 -10
  253. package/build/components/image-editor/context.js.map +1 -1
  254. package/build/components/image-editor/cropper.js +9 -8
  255. package/build/components/image-editor/cropper.js.map +1 -1
  256. package/build/components/image-editor/index.js +10 -9
  257. package/build/components/image-editor/index.js.map +1 -1
  258. package/build/components/image-editor/use-save-image.js +12 -11
  259. package/build/components/image-editor/use-save-image.js.map +1 -1
  260. package/build/components/image-editor/use-transform-image.js +6 -5
  261. package/build/components/image-editor/use-transform-image.js.map +1 -1
  262. package/build/components/image-editor/zoom-dropdown.js +13 -10
  263. package/build/components/image-editor/zoom-dropdown.js.map +1 -1
  264. package/build/components/image-size-control/index.js +12 -11
  265. package/build/components/image-size-control/index.js.map +1 -1
  266. package/build/components/index.js +210 -208
  267. package/build/components/index.js.map +1 -1
  268. package/build/components/index.native.js +112 -110
  269. package/build/components/index.native.js.map +1 -1
  270. package/build/components/inner-blocks/button-block-appender.js +8 -7
  271. package/build/components/inner-blocks/button-block-appender.js.map +1 -1
  272. package/build/components/inner-blocks/default-block-appender.js +9 -7
  273. package/build/components/inner-blocks/default-block-appender.js.map +1 -1
  274. package/build/components/inner-blocks/index.js +4 -2
  275. package/build/components/inner-blocks/index.js.map +1 -1
  276. package/build/components/inner-blocks/index.native.js +4 -2
  277. package/build/components/inner-blocks/index.native.js.map +1 -1
  278. package/build/components/inserter/block-patterns-explorer/explorer.js +10 -8
  279. package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  280. package/build/components/inserter/block-patterns-explorer/patterns-list.js +12 -9
  281. package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  282. package/build/components/inserter/block-patterns-explorer/sidebar.js +24 -20
  283. package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  284. package/build/components/inserter/block-patterns-tab.js +26 -20
  285. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  286. package/build/components/inserter/block-types-tab.js +9 -7
  287. package/build/components/inserter/block-types-tab.js.map +1 -1
  288. package/build/components/inserter/block-types-tab.native.js +9 -8
  289. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  290. package/build/components/inserter/hooks/use-block-type-impressions.native.js +5 -3
  291. package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  292. package/build/components/inserter/hooks/use-block-types-state.js +6 -5
  293. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  294. package/build/components/inserter/hooks/use-insertion-point.js +11 -9
  295. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  296. package/build/components/inserter/index.js +36 -28
  297. package/build/components/inserter/index.js.map +1 -1
  298. package/build/components/inserter/index.native.js +46 -37
  299. package/build/components/inserter/index.native.js.map +1 -1
  300. package/build/components/inserter/library.js +12 -11
  301. package/build/components/inserter/library.js.map +1 -1
  302. package/build/components/inserter/menu.js +12 -11
  303. package/build/components/inserter/menu.js.map +1 -1
  304. package/build/components/inserter/menu.native.js +31 -27
  305. package/build/components/inserter/menu.native.js.map +1 -1
  306. package/build/components/inserter/panel.js +6 -5
  307. package/build/components/inserter/panel.js.map +1 -1
  308. package/build/components/inserter/pattern-panel.js +7 -6
  309. package/build/components/inserter/pattern-panel.js.map +1 -1
  310. package/build/components/inserter/preview-panel.js +4 -3
  311. package/build/components/inserter/preview-panel.js.map +1 -1
  312. package/build/components/inserter/quick-inserter.js +7 -6
  313. package/build/components/inserter/quick-inserter.js.map +1 -1
  314. package/build/components/inserter/reusable-blocks-tab.js +18 -13
  315. package/build/components/inserter/reusable-blocks-tab.js.map +1 -1
  316. package/build/components/inserter/reusable-blocks-tab.native.js +6 -5
  317. package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  318. package/build/components/inserter/search-items.js +23 -7
  319. package/build/components/inserter/search-items.js.map +1 -1
  320. package/build/components/inserter/search-results.js +15 -14
  321. package/build/components/inserter/search-results.js.map +1 -1
  322. package/build/components/inserter/search-results.native.js +11 -10
  323. package/build/components/inserter/search-results.native.js.map +1 -1
  324. package/build/components/inserter/tabs.js +7 -6
  325. package/build/components/inserter/tabs.js.map +1 -1
  326. package/build/components/inserter/tabs.native.js +55 -37
  327. package/build/components/inserter/tabs.native.js.map +1 -1
  328. package/build/components/inserter/utils.native.js +10 -8
  329. package/build/components/inserter/utils.native.js.map +1 -1
  330. package/build/components/inserter-draggable-blocks/index.js +12 -10
  331. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  332. package/build/components/inserter-list-item/index.js +79 -73
  333. package/build/components/inserter-list-item/index.js.map +1 -1
  334. package/build/components/inserter-listbox/index.js +8 -7
  335. package/build/components/inserter-listbox/index.js.map +1 -1
  336. package/build/components/inserter-listbox/item.js +7 -6
  337. package/build/components/inserter-listbox/item.js.map +1 -1
  338. package/build/components/inspector-controls/block-support-slot-container.js +5 -4
  339. package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
  340. package/build/components/inspector-controls/block-support-tools-panel.js +8 -6
  341. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  342. package/build/components/inspector-controls/fill.js +5 -4
  343. package/build/components/inspector-controls/fill.js.map +1 -1
  344. package/build/components/inspector-controls/fill.native.js +6 -5
  345. package/build/components/inspector-controls/fill.native.js.map +1 -1
  346. package/build/components/inspector-controls/slot.js +7 -6
  347. package/build/components/inspector-controls/slot.js.map +1 -1
  348. package/build/components/inspector-controls/slot.native.js +5 -4
  349. package/build/components/inspector-controls/slot.native.js.map +1 -1
  350. package/build/components/justify-content-control/ui.js +10 -8
  351. package/build/components/justify-content-control/ui.js.map +1 -1
  352. package/build/components/letter-spacing-control/index.js +6 -5
  353. package/build/components/letter-spacing-control/index.js.map +1 -1
  354. package/build/components/line-height-control/index.js +5 -4
  355. package/build/components/line-height-control/index.js.map +1 -1
  356. package/build/components/line-height-control/index.native.js +5 -4
  357. package/build/components/line-height-control/index.native.js.map +1 -1
  358. package/build/components/line-height-control/utils.js +1 -1
  359. package/build/components/link-control/index.js +25 -23
  360. package/build/components/link-control/index.js.map +1 -1
  361. package/build/components/link-control/link-preview.js +8 -7
  362. package/build/components/link-control/link-preview.js.map +1 -1
  363. package/build/components/link-control/search-create-button.js +9 -7
  364. package/build/components/link-control/search-create-button.js.map +1 -1
  365. package/build/components/link-control/search-input.js +21 -20
  366. package/build/components/link-control/search-input.js.map +1 -1
  367. package/build/components/link-control/search-item.js +10 -9
  368. package/build/components/link-control/search-item.js.map +1 -1
  369. package/build/components/link-control/search-results.js +15 -14
  370. package/build/components/link-control/search-results.js.map +1 -1
  371. package/build/components/link-control/settings-drawer.js +7 -5
  372. package/build/components/link-control/settings-drawer.js.map +1 -1
  373. package/build/components/link-control/use-search-handler.js +5 -4
  374. package/build/components/link-control/use-search-handler.js.map +1 -1
  375. package/build/components/link-control/viewer-slot.js +1 -1
  376. package/build/components/list-view/appender.js +27 -23
  377. package/build/components/list-view/appender.js.map +1 -1
  378. package/build/components/list-view/block-contents.js +32 -28
  379. package/build/components/list-view/block-contents.js.map +1 -1
  380. package/build/components/list-view/block-select-button.js +18 -17
  381. package/build/components/list-view/block-select-button.js.map +1 -1
  382. package/build/components/list-view/block.js +79 -66
  383. package/build/components/list-view/block.js.map +1 -1
  384. package/build/components/list-view/drop-indicator.js +5 -4
  385. package/build/components/list-view/drop-indicator.js.map +1 -1
  386. package/build/components/list-view/expander.js +4 -3
  387. package/build/components/list-view/expander.js.map +1 -1
  388. package/build/components/list-view/index.js +11 -10
  389. package/build/components/list-view/index.js.map +1 -1
  390. package/build/components/list-view/leaf.js +11 -10
  391. package/build/components/list-view/leaf.js.map +1 -1
  392. package/build/components/list-view/list-item.js +8 -7
  393. package/build/components/list-view/list-item.js.map +1 -1
  394. package/build/components/media-placeholder/index.js +86 -68
  395. package/build/components/media-placeholder/index.js.map +1 -1
  396. package/build/components/media-placeholder/index.native.js +5 -4
  397. package/build/components/media-placeholder/index.native.js.map +1 -1
  398. package/build/components/media-replace-flow/index.js +85 -72
  399. package/build/components/media-replace-flow/index.js.map +1 -1
  400. package/build/components/media-upload/check.js +5 -4
  401. package/build/components/media-upload/check.js.map +1 -1
  402. package/build/components/media-upload/index.native.js +1 -1
  403. package/build/components/media-upload-progress/index.native.js +1 -1
  404. package/build/components/multi-selection-inspector/index.js +4 -3
  405. package/build/components/multi-selection-inspector/index.js.map +1 -1
  406. package/build/components/navigable-toolbar/index.js +8 -7
  407. package/build/components/navigable-toolbar/index.js.map +1 -1
  408. package/build/components/observe-typing/index.js +5 -4
  409. package/build/components/observe-typing/index.js.map +1 -1
  410. package/build/components/panel-color-settings/index.js +16 -12
  411. package/build/components/panel-color-settings/index.js.map +1 -1
  412. package/build/components/plain-text/index.js +6 -4
  413. package/build/components/plain-text/index.js.map +1 -1
  414. package/build/components/preview-options/index.js +8 -7
  415. package/build/components/preview-options/index.js.map +1 -1
  416. package/build/components/provider/block-refs-provider.js +5 -4
  417. package/build/components/provider/block-refs-provider.js.map +1 -1
  418. package/build/components/provider/use-block-sync.js +8 -7
  419. package/build/components/provider/use-block-sync.js.map +1 -1
  420. package/build/components/provider/with-registry-provider.js +7 -5
  421. package/build/components/provider/with-registry-provider.js.map +1 -1
  422. package/build/components/responsive-block-control/label.js +6 -5
  423. package/build/components/responsive-block-control/label.js.map +1 -1
  424. package/build/components/rich-text/embed-handler-picker.native.js +7 -5
  425. package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
  426. package/build/components/rich-text/file-paste-handler.js +6 -3
  427. package/build/components/rich-text/file-paste-handler.js.map +1 -1
  428. package/build/components/rich-text/format-edit.js +8 -7
  429. package/build/components/rich-text/format-edit.js.map +1 -1
  430. package/build/components/rich-text/format-toolbar/index.js +18 -9
  431. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  432. package/build/components/rich-text/format-toolbar-container.js +6 -4
  433. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  434. package/build/components/rich-text/index.js +45 -41
  435. package/build/components/rich-text/index.js.map +1 -1
  436. package/build/components/rich-text/index.native.js +145 -122
  437. package/build/components/rich-text/index.native.js.map +1 -1
  438. package/build/components/rich-text/input-event.js +5 -4
  439. package/build/components/rich-text/input-event.js.map +1 -1
  440. package/build/components/rich-text/shortcut.js +6 -5
  441. package/build/components/rich-text/shortcut.js.map +1 -1
  442. package/build/components/rich-text/split-value.js +10 -8
  443. package/build/components/rich-text/split-value.js.map +1 -1
  444. package/build/components/rich-text/toolbar-button.js +7 -6
  445. package/build/components/rich-text/toolbar-button.js.map +1 -1
  446. package/build/components/rich-text/use-caret-in-format.js +4 -3
  447. package/build/components/rich-text/use-caret-in-format.js.map +1 -1
  448. package/build/components/rich-text/use-enter.js +6 -3
  449. package/build/components/rich-text/use-enter.js.map +1 -1
  450. package/build/components/rich-text/use-format-types.js +13 -10
  451. package/build/components/rich-text/use-format-types.js.map +1 -1
  452. package/build/components/rich-text/use-input-rules.js +15 -9
  453. package/build/components/rich-text/use-input-rules.js.map +1 -1
  454. package/build/components/rich-text/use-mark-persistent.js +5 -4
  455. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  456. package/build/components/rich-text/use-paste-handler.js +28 -4
  457. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  458. package/build/components/rich-text/utils.js +9 -7
  459. package/build/components/rich-text/utils.js.map +1 -1
  460. package/build/components/skip-to-selected-block/index.js +4 -3
  461. package/build/components/skip-to-selected-block/index.js.map +1 -1
  462. package/build/components/text-decoration-control/index.js +5 -4
  463. package/build/components/text-decoration-control/index.js.map +1 -1
  464. package/build/components/text-transform-control/index.js +5 -4
  465. package/build/components/text-transform-control/index.js.map +1 -1
  466. package/build/components/tool-selector/index.js +16 -13
  467. package/build/components/tool-selector/index.js.map +1 -1
  468. package/build/components/typewriter/index.js +10 -7
  469. package/build/components/typewriter/index.js.map +1 -1
  470. package/build/components/ungroup-button/index.native.js +12 -9
  471. package/build/components/ungroup-button/index.native.js.map +1 -1
  472. package/build/components/unit-control/index.js +5 -4
  473. package/build/components/unit-control/index.js.map +1 -1
  474. package/build/components/url-input/index.js +12 -9
  475. package/build/components/url-input/index.js.map +1 -1
  476. package/build/components/url-input/index.native.js +8 -6
  477. package/build/components/url-input/index.native.js.map +1 -1
  478. package/build/components/url-popover/image-url-input-ui.js +12 -11
  479. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  480. package/build/components/url-popover/index.js +9 -8
  481. package/build/components/url-popover/index.js.map +1 -1
  482. package/build/components/url-popover/link-editor.js +8 -7
  483. package/build/components/url-popover/link-editor.js.map +1 -1
  484. package/build/components/url-popover/link-viewer-url.js +6 -5
  485. package/build/components/url-popover/link-viewer-url.js.map +1 -1
  486. package/build/components/url-popover/link-viewer.js +9 -8
  487. package/build/components/url-popover/link-viewer.js.map +1 -1
  488. package/build/components/use-block-drop-zone/index.js +9 -8
  489. package/build/components/use-block-drop-zone/index.js.map +1 -1
  490. package/build/components/use-moving-animation/index.js +17 -13
  491. package/build/components/use-moving-animation/index.js.map +1 -1
  492. package/build/components/use-no-recursive-renders/index.js +10 -6
  493. package/build/components/use-no-recursive-renders/index.js.map +1 -1
  494. package/build/components/use-on-block-drop/index.js +2 -2
  495. package/build/components/warning/index.js +7 -6
  496. package/build/components/warning/index.js.map +1 -1
  497. package/build/components/warning/index.native.js +10 -9
  498. package/build/components/warning/index.native.js.map +1 -1
  499. package/build/components/writing-flow/index.js +6 -5
  500. package/build/components/writing-flow/index.js.map +1 -1
  501. package/build/components/writing-flow/use-arrow-nav.js +2 -2
  502. package/build/hooks/align.js +12 -7
  503. package/build/hooks/align.js.map +1 -1
  504. package/build/hooks/border.js +4 -2
  505. package/build/hooks/border.js.map +1 -1
  506. package/build/hooks/color-panel.js +7 -6
  507. package/build/hooks/color-panel.js.map +1 -1
  508. package/build/hooks/color.js +4 -3
  509. package/build/hooks/color.js.map +1 -1
  510. package/build/hooks/dimensions.js +4 -2
  511. package/build/hooks/dimensions.js.map +1 -1
  512. package/build/hooks/duotone.js +13 -10
  513. package/build/hooks/duotone.js.map +1 -1
  514. package/build/hooks/font-appearance.js +17 -14
  515. package/build/hooks/font-appearance.js.map +1 -1
  516. package/build/hooks/font-family.js +29 -20
  517. package/build/hooks/font-family.js.map +1 -1
  518. package/build/hooks/font-size.js +10 -8
  519. package/build/hooks/font-size.js.map +1 -1
  520. package/build/hooks/gap.js +10 -8
  521. package/build/hooks/gap.js.map +1 -1
  522. package/build/hooks/index.js +14 -14
  523. package/build/hooks/index.native.js +10 -10
  524. package/build/hooks/layout.js +16 -13
  525. package/build/hooks/layout.js.map +1 -1
  526. package/build/hooks/letter-spacing.js +11 -9
  527. package/build/hooks/letter-spacing.js.map +1 -1
  528. package/build/hooks/line-height.js +11 -9
  529. package/build/hooks/line-height.js.map +1 -1
  530. package/build/hooks/margin.js +10 -8
  531. package/build/hooks/margin.js.map +1 -1
  532. package/build/hooks/padding.js +10 -8
  533. package/build/hooks/padding.js.map +1 -1
  534. package/build/hooks/style.js +9 -5
  535. package/build/hooks/style.js.map +1 -1
  536. package/build/hooks/text-decoration.js +11 -9
  537. package/build/hooks/text-decoration.js.map +1 -1
  538. package/build/hooks/text-transform.js +11 -9
  539. package/build/hooks/text-transform.js.map +1 -1
  540. package/build/hooks/typography.js +3 -2
  541. package/build/hooks/typography.js.map +1 -1
  542. package/build/hooks/typography.native.js +3 -2
  543. package/build/hooks/typography.native.js.map +1 -1
  544. package/build/hooks/use-border-props.js +5 -4
  545. package/build/hooks/use-border-props.js.map +1 -1
  546. package/build/index.js +18 -18
  547. package/build/layouts/flex.js +39 -31
  548. package/build/layouts/flex.js.map +1 -1
  549. package/build/layouts/flow.js +10 -8
  550. package/build/layouts/flow.js.map +1 -1
  551. package/build/layouts/index.js +2 -1
  552. package/build/layouts/index.js.map +1 -1
  553. package/build/layouts/utils.js +2 -1
  554. package/build/layouts/utils.js.map +1 -1
  555. package/build/store/actions.js +311 -232
  556. package/build/store/actions.js.map +1 -1
  557. package/build/store/array.js +2 -1
  558. package/build/store/array.js.map +1 -1
  559. package/build/store/index.js +5 -3
  560. package/build/store/index.js.map +1 -1
  561. package/build/store/reducer.js +124 -49
  562. package/build/store/reducer.js.map +1 -1
  563. package/build/store/selectors.js +219 -141
  564. package/build/store/selectors.js.map +1 -1
  565. package/build/utils/block-variation-transforms.js +4 -3
  566. package/build/utils/block-variation-transforms.js.map +1 -1
  567. package/build/utils/dom.js +1 -1
  568. package/build/utils/get-paste-event-data.js +10 -6
  569. package/build/utils/get-paste-event-data.js.map +1 -1
  570. package/build/utils/index.js +4 -4
  571. package/build/utils/math.js +2 -1
  572. package/build/utils/math.js.map +1 -1
  573. package/build/utils/parse-css-unit-to-px.js +6 -3
  574. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  575. package/build/utils/transform-styles/index.js +8 -6
  576. package/build/utils/transform-styles/index.js.map +1 -1
  577. package/build/utils/transform-styles/transforms/wrap.js +31 -28
  578. package/build/utils/transform-styles/transforms/wrap.js.map +1 -1
  579. package/build-module/components/alignment-control/ui.js +11 -9
  580. package/build-module/components/alignment-control/ui.js.map +1 -1
  581. package/build-module/components/autocomplete/index.js +4 -3
  582. package/build-module/components/autocomplete/index.js.map +1 -1
  583. package/build-module/components/block-actions/index.js +12 -8
  584. package/build-module/components/block-actions/index.js.map +1 -1
  585. package/build-module/components/block-alignment-control/ui.js +21 -17
  586. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  587. package/build-module/components/block-alignment-control/use-available-alignments.js +9 -4
  588. package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
  589. package/build-module/components/block-alignment-matrix-control/index.js +6 -4
  590. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  591. package/build-module/components/block-breadcrumb/index.js +4 -3
  592. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  593. package/build-module/components/block-caption/index.native.js +34 -29
  594. package/build-module/components/block-caption/index.native.js.map +1 -1
  595. package/build-module/components/block-card/index.js +8 -6
  596. package/build-module/components/block-card/index.js.map +1 -1
  597. package/build-module/components/block-compare/block-view.js +9 -8
  598. package/build-module/components/block-compare/block-view.js.map +1 -1
  599. package/build-module/components/block-compare/index.js +9 -7
  600. package/build-module/components/block-compare/index.js.map +1 -1
  601. package/build-module/components/block-content-overlay/index.js +7 -6
  602. package/build-module/components/block-content-overlay/index.js.map +1 -1
  603. package/build-module/components/block-context/index.js +5 -4
  604. package/build-module/components/block-context/index.js.map +1 -1
  605. package/build-module/components/block-controls/fill.js +7 -6
  606. package/build-module/components/block-controls/fill.js.map +1 -1
  607. package/build-module/components/block-controls/slot.js +5 -4
  608. package/build-module/components/block-controls/slot.js.map +1 -1
  609. package/build-module/components/block-controls/slot.native.js +5 -4
  610. package/build-module/components/block-controls/slot.native.js.map +1 -1
  611. package/build-module/components/block-draggable/draggable-chip.js +5 -4
  612. package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
  613. package/build-module/components/block-draggable/index.js +13 -11
  614. package/build-module/components/block-draggable/index.js.map +1 -1
  615. package/build-module/components/block-full-height-alignment-control/index.js +7 -6
  616. package/build-module/components/block-full-height-alignment-control/index.js.map +1 -1
  617. package/build-module/components/block-icon/index.js +7 -5
  618. package/build-module/components/block-icon/index.js.map +1 -1
  619. package/build-module/components/block-icon/index.native.js +8 -6
  620. package/build-module/components/block-icon/index.native.js.map +1 -1
  621. package/build-module/components/block-inspector/index.js +16 -13
  622. package/build-module/components/block-inspector/index.js.map +1 -1
  623. package/build-module/components/block-list/block-html.js +4 -3
  624. package/build-module/components/block-list/block-html.js.map +1 -1
  625. package/build-module/components/block-list/block-invalid-warning.js +27 -19
  626. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  627. package/build-module/components/block-list/block-invalid-warning.native.js +5 -4
  628. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  629. package/build-module/components/block-list/block-list-item.native.js +6 -5
  630. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  631. package/build-module/components/block-list/block-selection-button.native.js +11 -9
  632. package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
  633. package/build-module/components/block-list/block.js +40 -33
  634. package/build-module/components/block-list/block.js.map +1 -1
  635. package/build-module/components/block-list/block.native.js +35 -29
  636. package/build-module/components/block-list/block.native.js.map +1 -1
  637. package/build-module/components/block-list/index.js +13 -11
  638. package/build-module/components/block-list/index.js.map +1 -1
  639. package/build-module/components/block-list/index.native.js +21 -16
  640. package/build-module/components/block-list/index.native.js.map +1 -1
  641. package/build-module/components/block-list/insertion-point.native.js +4 -3
  642. package/build-module/components/block-list/insertion-point.native.js.map +1 -1
  643. package/build-module/components/block-list/layout.js +5 -4
  644. package/build-module/components/block-list/layout.js.map +1 -1
  645. package/build-module/components/block-list/subdirectory-icon.js +13 -10
  646. package/build-module/components/block-list/subdirectory-icon.js.map +1 -1
  647. package/build-module/components/block-list/use-block-props/index.js +5 -3
  648. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  649. package/build-module/components/block-list/use-block-props/index.native.js +2 -1
  650. package/build-module/components/block-list/use-block-props/index.native.js.map +1 -1
  651. package/build-module/components/block-list/use-block-props/use-multi-selection.js +9 -6
  652. package/build-module/components/block-list/use-block-props/use-multi-selection.js.map +1 -1
  653. package/build-module/components/block-list-appender/index.js +16 -13
  654. package/build-module/components/block-list-appender/index.js.map +1 -1
  655. package/build-module/components/block-list-appender/index.native.js +14 -11
  656. package/build-module/components/block-list-appender/index.native.js.map +1 -1
  657. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +46 -42
  658. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  659. package/build-module/components/block-mobile-toolbar/index.js +4 -3
  660. package/build-module/components/block-mobile-toolbar/index.js.map +1 -1
  661. package/build-module/components/block-mobile-toolbar/index.native.js +33 -25
  662. package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
  663. package/build-module/components/block-mover/button.js +7 -6
  664. package/build-module/components/block-mover/button.js.map +1 -1
  665. package/build-module/components/block-mover/index.js +15 -13
  666. package/build-module/components/block-mover/index.js.map +1 -1
  667. package/build-module/components/block-mover/index.native.js +22 -19
  668. package/build-module/components/block-mover/index.native.js.map +1 -1
  669. package/build-module/components/block-mover/mover-description.native.js +10 -7
  670. package/build-module/components/block-mover/mover-description.native.js.map +1 -1
  671. package/build-module/components/block-navigation/dropdown.js +26 -21
  672. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  673. package/build-module/components/block-pattern-setup/index.js +26 -22
  674. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  675. package/build-module/components/block-pattern-setup/setup-toolbar.js +46 -39
  676. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  677. package/build-module/components/block-patterns-list/index.js +44 -39
  678. package/build-module/components/block-patterns-list/index.js.map +1 -1
  679. package/build-module/components/block-preview/auto.js +5 -4
  680. package/build-module/components/block-preview/auto.js.map +1 -1
  681. package/build-module/components/block-preview/index.js +8 -7
  682. package/build-module/components/block-preview/index.js.map +1 -1
  683. package/build-module/components/block-preview/live.js +4 -3
  684. package/build-module/components/block-preview/live.js.map +1 -1
  685. package/build-module/components/block-settings/button.native.js +10 -7
  686. package/build-module/components/block-settings/button.native.js.map +1 -1
  687. package/build-module/components/block-settings/container.native.js +7 -6
  688. package/build-module/components/block-settings/container.native.js.map +1 -1
  689. package/build-module/components/block-settings-menu/block-convert-button.js +7 -5
  690. package/build-module/components/block-settings-menu/block-convert-button.js.map +1 -1
  691. package/build-module/components/block-settings-menu/block-html-convert-button.js +14 -10
  692. package/build-module/components/block-settings-menu/block-html-convert-button.js.map +1 -1
  693. package/build-module/components/block-settings-menu/block-mode-toggle.js +25 -19
  694. package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  695. package/build-module/components/block-settings-menu/block-settings-dropdown.js +74 -66
  696. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  697. package/build-module/components/block-settings-menu/index.js +5 -4
  698. package/build-module/components/block-settings-menu/index.js.map +1 -1
  699. package/build-module/components/block-settings-menu-controls/index.js +8 -6
  700. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  701. package/build-module/components/block-styles/index.js +20 -17
  702. package/build-module/components/block-styles/index.js.map +1 -1
  703. package/build-module/components/block-styles/index.native.js +6 -4
  704. package/build-module/components/block-styles/index.native.js.map +1 -1
  705. package/build-module/components/block-styles/preview.native.js +7 -6
  706. package/build-module/components/block-styles/preview.native.js.map +1 -1
  707. package/build-module/components/block-switcher/block-styles-menu.js +5 -4
  708. package/build-module/components/block-switcher/block-styles-menu.js.map +1 -1
  709. package/build-module/components/block-switcher/block-transformations-menu.js +7 -6
  710. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  711. package/build-module/components/block-switcher/block-transformations-menu.native.js +9 -8
  712. package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  713. package/build-module/components/block-switcher/index.js +41 -33
  714. package/build-module/components/block-switcher/index.js.map +1 -1
  715. package/build-module/components/block-switcher/pattern-transformations-menu.js +22 -18
  716. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  717. package/build-module/components/block-switcher/preview-block-popover.js +4 -3
  718. package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
  719. package/build-module/components/block-switcher/utils.js +2 -1
  720. package/build-module/components/block-switcher/utils.js.map +1 -1
  721. package/build-module/components/block-title/index.js +4 -3
  722. package/build-module/components/block-title/index.js.map +1 -1
  723. package/build-module/components/block-toolbar/index.js +4 -3
  724. package/build-module/components/block-toolbar/index.js.map +1 -1
  725. package/build-module/components/block-toolbar/utils.js +13 -11
  726. package/build-module/components/block-toolbar/utils.js.map +1 -1
  727. package/build-module/components/block-tools/back-compat.js +4 -3
  728. package/build-module/components/block-tools/back-compat.js.map +1 -1
  729. package/build-module/components/block-tools/block-contextual-toolbar.js +6 -5
  730. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  731. package/build-module/components/block-tools/block-popover.js +15 -13
  732. package/build-module/components/block-tools/block-popover.js.map +1 -1
  733. package/build-module/components/block-tools/block-selection-button.js +6 -5
  734. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  735. package/build-module/components/block-tools/index.js +6 -5
  736. package/build-module/components/block-tools/index.js.map +1 -1
  737. package/build-module/components/block-tools/insertion-point.js +11 -9
  738. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  739. package/build-module/components/block-types-list/index.js +9 -8
  740. package/build-module/components/block-types-list/index.js.map +1 -1
  741. package/build-module/components/block-types-list/index.native.js +19 -15
  742. package/build-module/components/block-types-list/index.native.js.map +1 -1
  743. package/build-module/components/block-variation-picker/index.js +9 -8
  744. package/build-module/components/block-variation-picker/index.js.map +1 -1
  745. package/build-module/components/block-variation-picker/index.native.js +9 -7
  746. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  747. package/build-module/components/block-variation-transforms/index.js +22 -15
  748. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  749. package/build-module/components/block-vertical-alignment-control/ui.js +9 -7
  750. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  751. package/build-module/components/border-radius-control/all-input-control.js +6 -5
  752. package/build-module/components/border-radius-control/all-input-control.js.map +1 -1
  753. package/build-module/components/border-radius-control/index.js +5 -4
  754. package/build-module/components/border-radius-control/index.js.map +1 -1
  755. package/build-module/components/border-radius-control/input-controls.js +16 -11
  756. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  757. package/build-module/components/border-radius-control/linked-button.js +5 -4
  758. package/build-module/components/border-radius-control/linked-button.js.map +1 -1
  759. package/build-module/components/border-radius-control/utils.js +8 -3
  760. package/build-module/components/border-radius-control/utils.js.map +1 -1
  761. package/build-module/components/border-style-control/index.js +5 -4
  762. package/build-module/components/border-style-control/index.js.map +1 -1
  763. package/build-module/components/button-block-appender/index.js +15 -13
  764. package/build-module/components/button-block-appender/index.js.map +1 -1
  765. package/build-module/components/button-block-appender/index.native.js +28 -24
  766. package/build-module/components/button-block-appender/index.native.js.map +1 -1
  767. package/build-module/components/caption/index.native.js +44 -41
  768. package/build-module/components/caption/index.native.js.map +1 -1
  769. package/build-module/components/color-palette/control.js +6 -5
  770. package/build-module/components/color-palette/control.js.map +1 -1
  771. package/build-module/components/color-style-selector/index.js +43 -34
  772. package/build-module/components/color-style-selector/index.js.map +1 -1
  773. package/build-module/components/colors/color-panel.js +21 -18
  774. package/build-module/components/colors/color-panel.js.map +1 -1
  775. package/build-module/components/colors/utils.js +6 -3
  776. package/build-module/components/colors/utils.js.map +1 -1
  777. package/build-module/components/colors/with-colors.js +17 -6
  778. package/build-module/components/colors/with-colors.js.map +1 -1
  779. package/build-module/components/colors-gradients/control.js +16 -15
  780. package/build-module/components/colors-gradients/control.js.map +1 -1
  781. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +30 -25
  782. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  783. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js +28 -24
  784. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  785. package/build-module/components/contrast-checker/index.js +18 -15
  786. package/build-module/components/contrast-checker/index.js.map +1 -1
  787. package/build-module/components/convert-to-group-buttons/index.js +9 -8
  788. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  789. package/build-module/components/copy-handler/index.js +4 -3
  790. package/build-module/components/copy-handler/index.js.map +1 -1
  791. package/build-module/components/default-block-appender/index.js +10 -8
  792. package/build-module/components/default-block-appender/index.js.map +1 -1
  793. package/build-module/components/default-block-appender/index.native.js +10 -8
  794. package/build-module/components/default-block-appender/index.native.js.map +1 -1
  795. package/build-module/components/default-style-picker/index.js +14 -10
  796. package/build-module/components/default-style-picker/index.js.map +1 -1
  797. package/build-module/components/duotone-control/index.js +15 -12
  798. package/build-module/components/duotone-control/index.js.map +1 -1
  799. package/build-module/components/editable-text/index.js +6 -5
  800. package/build-module/components/editable-text/index.js.map +1 -1
  801. package/build-module/components/editor-styles/index.js +4 -3
  802. package/build-module/components/editor-styles/index.js.map +1 -1
  803. package/build-module/components/floating-toolbar/index.native.js +8 -7
  804. package/build-module/components/floating-toolbar/index.native.js.map +1 -1
  805. package/build-module/components/font-appearance-control/index.js +26 -19
  806. package/build-module/components/font-appearance-control/index.js.map +1 -1
  807. package/build-module/components/font-family/index.js +12 -10
  808. package/build-module/components/font-family/index.js.map +1 -1
  809. package/build-module/components/font-sizes/with-font-sizes.js +11 -5
  810. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  811. package/build-module/components/gradients/use-gradient.js +5 -4
  812. package/build-module/components/gradients/use-gradient.js.map +1 -1
  813. package/build-module/components/iframe/index.js +28 -22
  814. package/build-module/components/iframe/index.js.map +1 -1
  815. package/build-module/components/image-editor/aspect-ratio-dropdown.js +90 -82
  816. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  817. package/build-module/components/image-editor/context.js +11 -10
  818. package/build-module/components/image-editor/context.js.map +1 -1
  819. package/build-module/components/image-editor/cropper.js +9 -8
  820. package/build-module/components/image-editor/cropper.js.map +1 -1
  821. package/build-module/components/image-editor/index.js +9 -8
  822. package/build-module/components/image-editor/index.js.map +1 -1
  823. package/build-module/components/image-editor/use-save-image.js +12 -11
  824. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  825. package/build-module/components/image-editor/use-transform-image.js +6 -5
  826. package/build-module/components/image-editor/use-transform-image.js.map +1 -1
  827. package/build-module/components/image-editor/zoom-dropdown.js +13 -10
  828. package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
  829. package/build-module/components/image-size-control/index.js +12 -11
  830. package/build-module/components/image-size-control/index.js.map +1 -1
  831. package/build-module/components/inner-blocks/button-block-appender.js +8 -7
  832. package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
  833. package/build-module/components/inner-blocks/default-block-appender.js +9 -7
  834. package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
  835. package/build-module/components/inner-blocks/index.js +3 -1
  836. package/build-module/components/inner-blocks/index.js.map +1 -1
  837. package/build-module/components/inner-blocks/index.native.js +3 -1
  838. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  839. package/build-module/components/inserter/block-patterns-explorer/explorer.js +10 -8
  840. package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  841. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +12 -9
  842. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  843. package/build-module/components/inserter/block-patterns-explorer/sidebar.js +24 -20
  844. package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  845. package/build-module/components/inserter/block-patterns-tab.js +26 -20
  846. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  847. package/build-module/components/inserter/block-types-tab.js +9 -7
  848. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  849. package/build-module/components/inserter/block-types-tab.native.js +9 -8
  850. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  851. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js +5 -3
  852. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  853. package/build-module/components/inserter/hooks/use-block-types-state.js +6 -5
  854. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  855. package/build-module/components/inserter/hooks/use-insertion-point.js +11 -9
  856. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  857. package/build-module/components/inserter/index.js +36 -28
  858. package/build-module/components/inserter/index.js.map +1 -1
  859. package/build-module/components/inserter/index.native.js +46 -37
  860. package/build-module/components/inserter/index.native.js.map +1 -1
  861. package/build-module/components/inserter/library.js +12 -11
  862. package/build-module/components/inserter/library.js.map +1 -1
  863. package/build-module/components/inserter/menu.js +12 -11
  864. package/build-module/components/inserter/menu.js.map +1 -1
  865. package/build-module/components/inserter/menu.native.js +31 -27
  866. package/build-module/components/inserter/menu.native.js.map +1 -1
  867. package/build-module/components/inserter/panel.js +6 -5
  868. package/build-module/components/inserter/panel.js.map +1 -1
  869. package/build-module/components/inserter/pattern-panel.js +7 -6
  870. package/build-module/components/inserter/pattern-panel.js.map +1 -1
  871. package/build-module/components/inserter/preview-panel.js +4 -3
  872. package/build-module/components/inserter/preview-panel.js.map +1 -1
  873. package/build-module/components/inserter/quick-inserter.js +7 -6
  874. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  875. package/build-module/components/inserter/reusable-blocks-tab.js +18 -13
  876. package/build-module/components/inserter/reusable-blocks-tab.js.map +1 -1
  877. package/build-module/components/inserter/reusable-blocks-tab.native.js +6 -5
  878. package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  879. package/build-module/components/inserter/search-items.js +23 -7
  880. package/build-module/components/inserter/search-items.js.map +1 -1
  881. package/build-module/components/inserter/search-results.js +15 -14
  882. package/build-module/components/inserter/search-results.js.map +1 -1
  883. package/build-module/components/inserter/search-results.native.js +11 -10
  884. package/build-module/components/inserter/search-results.native.js.map +1 -1
  885. package/build-module/components/inserter/tabs.js +7 -6
  886. package/build-module/components/inserter/tabs.js.map +1 -1
  887. package/build-module/components/inserter/tabs.native.js +55 -37
  888. package/build-module/components/inserter/tabs.native.js.map +1 -1
  889. package/build-module/components/inserter/utils.native.js +10 -8
  890. package/build-module/components/inserter/utils.native.js.map +1 -1
  891. package/build-module/components/inserter-draggable-blocks/index.js +12 -10
  892. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  893. package/build-module/components/inserter-list-item/index.js +75 -69
  894. package/build-module/components/inserter-list-item/index.js.map +1 -1
  895. package/build-module/components/inserter-listbox/index.js +4 -3
  896. package/build-module/components/inserter-listbox/index.js.map +1 -1
  897. package/build-module/components/inserter-listbox/item.js +7 -6
  898. package/build-module/components/inserter-listbox/item.js.map +1 -1
  899. package/build-module/components/inspector-controls/block-support-slot-container.js +5 -4
  900. package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -1
  901. package/build-module/components/inspector-controls/block-support-tools-panel.js +8 -6
  902. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  903. package/build-module/components/inspector-controls/fill.js +5 -4
  904. package/build-module/components/inspector-controls/fill.js.map +1 -1
  905. package/build-module/components/inspector-controls/fill.native.js +6 -5
  906. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  907. package/build-module/components/inspector-controls/slot.js +7 -6
  908. package/build-module/components/inspector-controls/slot.js.map +1 -1
  909. package/build-module/components/inspector-controls/slot.native.js +5 -4
  910. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  911. package/build-module/components/justify-content-control/ui.js +10 -8
  912. package/build-module/components/justify-content-control/ui.js.map +1 -1
  913. package/build-module/components/letter-spacing-control/index.js +6 -5
  914. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  915. package/build-module/components/line-height-control/index.js +5 -4
  916. package/build-module/components/line-height-control/index.js.map +1 -1
  917. package/build-module/components/line-height-control/index.native.js +5 -4
  918. package/build-module/components/line-height-control/index.native.js.map +1 -1
  919. package/build-module/components/link-control/index.js +25 -23
  920. package/build-module/components/link-control/index.js.map +1 -1
  921. package/build-module/components/link-control/link-preview.js +8 -7
  922. package/build-module/components/link-control/link-preview.js.map +1 -1
  923. package/build-module/components/link-control/search-create-button.js +9 -7
  924. package/build-module/components/link-control/search-create-button.js.map +1 -1
  925. package/build-module/components/link-control/search-input.js +21 -20
  926. package/build-module/components/link-control/search-input.js.map +1 -1
  927. package/build-module/components/link-control/search-item.js +10 -9
  928. package/build-module/components/link-control/search-item.js.map +1 -1
  929. package/build-module/components/link-control/search-results.js +15 -14
  930. package/build-module/components/link-control/search-results.js.map +1 -1
  931. package/build-module/components/link-control/settings-drawer.js +7 -5
  932. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  933. package/build-module/components/link-control/use-search-handler.js +4 -3
  934. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  935. package/build-module/components/list-view/appender.js +27 -23
  936. package/build-module/components/list-view/appender.js.map +1 -1
  937. package/build-module/components/list-view/block-contents.js +32 -28
  938. package/build-module/components/list-view/block-contents.js.map +1 -1
  939. package/build-module/components/list-view/block-select-button.js +18 -17
  940. package/build-module/components/list-view/block-select-button.js.map +1 -1
  941. package/build-module/components/list-view/block.js +79 -66
  942. package/build-module/components/list-view/block.js.map +1 -1
  943. package/build-module/components/list-view/drop-indicator.js +5 -4
  944. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  945. package/build-module/components/list-view/expander.js +4 -3
  946. package/build-module/components/list-view/expander.js.map +1 -1
  947. package/build-module/components/list-view/index.js +11 -10
  948. package/build-module/components/list-view/index.js.map +1 -1
  949. package/build-module/components/list-view/leaf.js +11 -10
  950. package/build-module/components/list-view/leaf.js.map +1 -1
  951. package/build-module/components/list-view/list-item.js +8 -7
  952. package/build-module/components/list-view/list-item.js.map +1 -1
  953. package/build-module/components/media-placeholder/index.js +86 -68
  954. package/build-module/components/media-placeholder/index.js.map +1 -1
  955. package/build-module/components/media-placeholder/index.native.js +5 -4
  956. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  957. package/build-module/components/media-replace-flow/index.js +85 -72
  958. package/build-module/components/media-replace-flow/index.js.map +1 -1
  959. package/build-module/components/media-upload/check.js +5 -4
  960. package/build-module/components/media-upload/check.js.map +1 -1
  961. package/build-module/components/multi-selection-inspector/index.js +4 -3
  962. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  963. package/build-module/components/navigable-toolbar/index.js +8 -7
  964. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  965. package/build-module/components/observe-typing/index.js +4 -3
  966. package/build-module/components/observe-typing/index.js.map +1 -1
  967. package/build-module/components/panel-color-settings/index.js +16 -12
  968. package/build-module/components/panel-color-settings/index.js.map +1 -1
  969. package/build-module/components/plain-text/index.js +6 -4
  970. package/build-module/components/plain-text/index.js.map +1 -1
  971. package/build-module/components/preview-options/index.js +8 -7
  972. package/build-module/components/preview-options/index.js.map +1 -1
  973. package/build-module/components/provider/block-refs-provider.js +4 -3
  974. package/build-module/components/provider/block-refs-provider.js.map +1 -1
  975. package/build-module/components/provider/use-block-sync.js +8 -7
  976. package/build-module/components/provider/use-block-sync.js.map +1 -1
  977. package/build-module/components/provider/with-registry-provider.js +7 -5
  978. package/build-module/components/provider/with-registry-provider.js.map +1 -1
  979. package/build-module/components/responsive-block-control/label.js +6 -5
  980. package/build-module/components/responsive-block-control/label.js.map +1 -1
  981. package/build-module/components/rich-text/embed-handler-picker.native.js +7 -5
  982. package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -1
  983. package/build-module/components/rich-text/file-paste-handler.js +6 -3
  984. package/build-module/components/rich-text/file-paste-handler.js.map +1 -1
  985. package/build-module/components/rich-text/format-edit.js +8 -7
  986. package/build-module/components/rich-text/format-edit.js.map +1 -1
  987. package/build-module/components/rich-text/format-toolbar/index.js +18 -9
  988. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  989. package/build-module/components/rich-text/format-toolbar-container.js +6 -4
  990. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  991. package/build-module/components/rich-text/index.js +44 -40
  992. package/build-module/components/rich-text/index.js.map +1 -1
  993. package/build-module/components/rich-text/index.native.js +145 -122
  994. package/build-module/components/rich-text/index.native.js.map +1 -1
  995. package/build-module/components/rich-text/input-event.js +5 -4
  996. package/build-module/components/rich-text/input-event.js.map +1 -1
  997. package/build-module/components/rich-text/shortcut.js +6 -5
  998. package/build-module/components/rich-text/shortcut.js.map +1 -1
  999. package/build-module/components/rich-text/split-value.js +10 -8
  1000. package/build-module/components/rich-text/split-value.js.map +1 -1
  1001. package/build-module/components/rich-text/toolbar-button.js +7 -6
  1002. package/build-module/components/rich-text/toolbar-button.js.map +1 -1
  1003. package/build-module/components/rich-text/use-caret-in-format.js +4 -3
  1004. package/build-module/components/rich-text/use-caret-in-format.js.map +1 -1
  1005. package/build-module/components/rich-text/use-enter.js +6 -3
  1006. package/build-module/components/rich-text/use-enter.js.map +1 -1
  1007. package/build-module/components/rich-text/use-format-types.js +13 -10
  1008. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  1009. package/build-module/components/rich-text/use-input-rules.js +15 -9
  1010. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  1011. package/build-module/components/rich-text/use-mark-persistent.js +5 -4
  1012. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  1013. package/build-module/components/rich-text/use-paste-handler.js +28 -4
  1014. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  1015. package/build-module/components/rich-text/utils.js +7 -5
  1016. package/build-module/components/rich-text/utils.js.map +1 -1
  1017. package/build-module/components/skip-to-selected-block/index.js +4 -3
  1018. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  1019. package/build-module/components/text-decoration-control/index.js +5 -4
  1020. package/build-module/components/text-decoration-control/index.js.map +1 -1
  1021. package/build-module/components/text-transform-control/index.js +5 -4
  1022. package/build-module/components/text-transform-control/index.js.map +1 -1
  1023. package/build-module/components/tool-selector/index.js +16 -13
  1024. package/build-module/components/tool-selector/index.js.map +1 -1
  1025. package/build-module/components/typewriter/index.js +9 -6
  1026. package/build-module/components/typewriter/index.js.map +1 -1
  1027. package/build-module/components/ungroup-button/index.native.js +12 -9
  1028. package/build-module/components/ungroup-button/index.native.js.map +1 -1
  1029. package/build-module/components/unit-control/index.js +5 -4
  1030. package/build-module/components/unit-control/index.js.map +1 -1
  1031. package/build-module/components/url-input/index.js +12 -9
  1032. package/build-module/components/url-input/index.js.map +1 -1
  1033. package/build-module/components/url-input/index.native.js +8 -6
  1034. package/build-module/components/url-input/index.native.js.map +1 -1
  1035. package/build-module/components/url-popover/image-url-input-ui.js +12 -11
  1036. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  1037. package/build-module/components/url-popover/index.js +9 -8
  1038. package/build-module/components/url-popover/index.js.map +1 -1
  1039. package/build-module/components/url-popover/link-editor.js +8 -7
  1040. package/build-module/components/url-popover/link-editor.js.map +1 -1
  1041. package/build-module/components/url-popover/link-viewer-url.js +6 -5
  1042. package/build-module/components/url-popover/link-viewer-url.js.map +1 -1
  1043. package/build-module/components/url-popover/link-viewer.js +9 -8
  1044. package/build-module/components/url-popover/link-viewer.js.map +1 -1
  1045. package/build-module/components/use-block-drop-zone/index.js +8 -7
  1046. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  1047. package/build-module/components/use-moving-animation/index.js +17 -13
  1048. package/build-module/components/use-moving-animation/index.js.map +1 -1
  1049. package/build-module/components/use-no-recursive-renders/index.js +10 -6
  1050. package/build-module/components/use-no-recursive-renders/index.js.map +1 -1
  1051. package/build-module/components/warning/index.js +7 -6
  1052. package/build-module/components/warning/index.js.map +1 -1
  1053. package/build-module/components/warning/index.native.js +10 -9
  1054. package/build-module/components/warning/index.native.js.map +1 -1
  1055. package/build-module/components/writing-flow/index.js +5 -4
  1056. package/build-module/components/writing-flow/index.js.map +1 -1
  1057. package/build-module/hooks/align.js +9 -4
  1058. package/build-module/hooks/align.js.map +1 -1
  1059. package/build-module/hooks/border.js +3 -1
  1060. package/build-module/hooks/border.js.map +1 -1
  1061. package/build-module/hooks/color-panel.js +7 -6
  1062. package/build-module/hooks/color-panel.js.map +1 -1
  1063. package/build-module/hooks/dimensions.js +2 -1
  1064. package/build-module/hooks/dimensions.js.map +1 -1
  1065. package/build-module/hooks/duotone.js +13 -10
  1066. package/build-module/hooks/duotone.js.map +1 -1
  1067. package/build-module/hooks/font-appearance.js +13 -10
  1068. package/build-module/hooks/font-appearance.js.map +1 -1
  1069. package/build-module/hooks/font-family.js +27 -18
  1070. package/build-module/hooks/font-family.js.map +1 -1
  1071. package/build-module/hooks/font-size.js +9 -7
  1072. package/build-module/hooks/font-size.js.map +1 -1
  1073. package/build-module/hooks/gap.js +9 -7
  1074. package/build-module/hooks/gap.js.map +1 -1
  1075. package/build-module/hooks/layout.js +16 -13
  1076. package/build-module/hooks/layout.js.map +1 -1
  1077. package/build-module/hooks/letter-spacing.js +9 -7
  1078. package/build-module/hooks/letter-spacing.js.map +1 -1
  1079. package/build-module/hooks/line-height.js +9 -7
  1080. package/build-module/hooks/line-height.js.map +1 -1
  1081. package/build-module/hooks/margin.js +9 -7
  1082. package/build-module/hooks/margin.js.map +1 -1
  1083. package/build-module/hooks/padding.js +9 -7
  1084. package/build-module/hooks/padding.js.map +1 -1
  1085. package/build-module/hooks/style.js +7 -3
  1086. package/build-module/hooks/style.js.map +1 -1
  1087. package/build-module/hooks/text-decoration.js +9 -7
  1088. package/build-module/hooks/text-decoration.js.map +1 -1
  1089. package/build-module/hooks/text-transform.js +9 -7
  1090. package/build-module/hooks/text-transform.js.map +1 -1
  1091. package/build-module/hooks/typography.js +2 -1
  1092. package/build-module/hooks/typography.js.map +1 -1
  1093. package/build-module/hooks/typography.native.js +2 -1
  1094. package/build-module/hooks/typography.native.js.map +1 -1
  1095. package/build-module/hooks/use-border-props.js +5 -4
  1096. package/build-module/hooks/use-border-props.js.map +1 -1
  1097. package/build-module/layouts/flex.js +39 -31
  1098. package/build-module/layouts/flex.js.map +1 -1
  1099. package/build-module/layouts/flow.js +10 -8
  1100. package/build-module/layouts/flow.js.map +1 -1
  1101. package/build-module/layouts/index.js +2 -1
  1102. package/build-module/layouts/index.js.map +1 -1
  1103. package/build-module/layouts/utils.js +2 -1
  1104. package/build-module/layouts/utils.js.map +1 -1
  1105. package/build-module/store/actions.js +271 -206
  1106. package/build-module/store/actions.js.map +1 -1
  1107. package/build-module/store/array.js +2 -1
  1108. package/build-module/store/array.js.map +1 -1
  1109. package/build-module/store/reducer.js +108 -34
  1110. package/build-module/store/reducer.js.map +1 -1
  1111. package/build-module/store/selectors.js +158 -90
  1112. package/build-module/store/selectors.js.map +1 -1
  1113. package/build-module/utils/block-variation-transforms.js +4 -3
  1114. package/build-module/utils/block-variation-transforms.js.map +1 -1
  1115. package/build-module/utils/get-paste-event-data.js +10 -6
  1116. package/build-module/utils/get-paste-event-data.js.map +1 -1
  1117. package/build-module/utils/math.js +2 -1
  1118. package/build-module/utils/math.js.map +1 -1
  1119. package/build-module/utils/parse-css-unit-to-px.js +5 -2
  1120. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  1121. package/build-module/utils/transform-styles/index.js +8 -6
  1122. package/build-module/utils/transform-styles/index.js.map +1 -1
  1123. package/build-module/utils/transform-styles/transforms/wrap.js +28 -25
  1124. package/build-module/utils/transform-styles/transforms/wrap.js.map +1 -1
  1125. package/package.json +27 -27
  1126. package/src/components/rich-text/use-paste-handler.js +22 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/color.js"],"names":["COLOR_SUPPORT_KEY","EMPTY_ARRAY","hasColorSupport","blockType","colorSupport","link","gradient","background","text","shouldSkipSerialization","__experimentalSkipSerialization","hasLinkColorSupport","Platform","OS","hasGradientSupport","gradients","hasBackgroundColorSupport","hasTextColorSupport","addAttributes","settings","attributes","backgroundColor","Object","assign","type","textColor","addSaveProps","props","hasGradient","style","backgroundClass","gradientClass","textClass","newClassName","className","color","elements","undefined","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","getLinkColorFromAttributeValue","colors","value","attributeParsed","exec","immutableSet","object","path","clone","ColorEdit","name","blockName","solids","areCustomSolidsEnabled","areCustomGradientsEnabled","isLinkEnabled","isTextEnabled","isBackgroundEnabled","localAttributes","current","hasLinkColor","length","hasTextColor","hasBackgroundColor","hasGradientColor","gradientValue","onChangeColor","colorObject","attributeName","newStyle","slug","newNamedColor","newAttributes","setAttributes","onChangeGradient","onChangeLinkColor","newLinkColorValue","clientId","label","onColorChange","colorValue","onGradientChange","clearable","withColorPaletteStyles","BlockListBlock","extraStyles","wrapperProps"],"mappings":";;;;;;;;;;;;AAYA;;;;AATA;;AACA;;AAKA;;AACA;;AACA;;AAEA;;AAKA;;AAKA;;AAKA;;AACA;;AACA;;AA9BA;AACA;AACA;;AAIA;AACA;AACA;;AAOA;AACA;AACA;AAeO,MAAMA,iBAAiB,GAAG,OAA1B;;AACP,MAAMC,WAAW,GAAG,EAApB;;AAEA,MAAMC,eAAe,GAAKC,SAAF,IAAiB;AACxC,QAAMC,YAAY,GAAG,6BAAiBD,SAAjB,EAA4BH,iBAA5B,CAArB;AACA,SACCI,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,uBAAuB,GAAKN,SAAF,IAAiB;AAChD,QAAMC,YAAY,GAAG,6BAAiBD,SAAjB,EAA4BH,iBAA5B,CAArB;AAEA,SAAOI,YAAP,aAAOA,YAAP,uBAAOA,YAAY,CAAEM,+BAArB;AACA,CAJD;;AAMA,MAAMC,mBAAmB,GAAKR,SAAF,IAAiB;AAC5C,MAAKS,kBAASC,EAAT,KAAgB,KAArB,EAA6B;AAC5B,WAAO,KAAP;AACA;;AAED,QAAMT,YAAY,GAAG,6BAAiBD,SAAjB,EAA4BH,iBAA5B,CAArB;AAEA,SAAO,sBAAUI,YAAV,KAA4B,CAAC,CAAEA,YAAY,CAACC,IAAnD;AACA,CARD;;AAUA,MAAMS,kBAAkB,GAAKX,SAAF,IAAiB;AAC3C,QAAMC,YAAY,GAAG,6BAAiBD,SAAjB,EAA4BH,iBAA5B,CAArB;AAEA,SAAO,sBAAUI,YAAV,KAA4B,CAAC,CAAEA,YAAY,CAACW,SAAnD;AACA,CAJD;;AAMA,MAAMC,yBAAyB,GAAKb,SAAF,IAAiB;AAClD,QAAMC,YAAY,GAAG,6BAAiBD,SAAjB,EAA4BH,iBAA5B,CAArB;AAEA,SAAOI,YAAY,IAAIA,YAAY,CAACG,UAAb,KAA4B,KAAnD;AACA,CAJD;;AAMA,MAAMU,mBAAmB,GAAKd,SAAF,IAAiB;AAC5C,QAAMC,YAAY,GAAG,6BAAiBD,SAAjB,EAA4BH,iBAA5B,CAArB;AAEA,SAAOI,YAAY,IAAIA,YAAY,CAACI,IAAb,KAAsB,KAA7C;AACA,CAJD;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASU,aAAT,CAAwBC,QAAxB,EAAmC;AAClC,MAAK,CAAEjB,eAAe,CAAEiB,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,CAAoBd,QAA7D,EAAwE;AACvEgB,IAAAA,MAAM,CAACC,MAAP,CAAeJ,QAAQ,CAACC,UAAxB,EAAoC;AACnCd,MAAAA,QAAQ,EAAE;AACTkB,QAAAA,IAAI,EAAE;AADG;AADyB,KAApC;AAKA;;AAED,SAAOL,QAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASO,YAAT,CAAuBC,KAAvB,EAA8BxB,SAA9B,EAAyCiB,UAAzC,EAAsD;AAAA;;AAC5D,MACC,CAAElB,eAAe,CAAEC,SAAF,CAAjB,IACAM,uBAAuB,CAAEN,SAAF,CAFxB,EAGE;AACD,WAAOwB,KAAP;AACA;;AAED,QAAMC,WAAW,GAAGd,kBAAkB,CAAEX,SAAF,CAAtC,CAR4D,CAU5D;;AACA,QAAM;AAAEkB,IAAAA,eAAF;AAAmBI,IAAAA,SAAnB;AAA8BnB,IAAAA,QAA9B;AAAwCuB,IAAAA;AAAxC,MAAkDT,UAAxD;AAEA,QAAMU,eAAe,GAAG,+BACvB,kBADuB,EAEvBT,eAFuB,CAAxB;AAIA,QAAMU,aAAa,GAAG,+CAAgCzB,QAAhC,CAAtB;AACA,QAAM0B,SAAS,GAAG,+BAAmB,OAAnB,EAA4BP,SAA5B,CAAlB;AACA,QAAMQ,YAAY,GAAG,yBACpBN,KAAK,CAACO,SADc,EAEpBF,SAFoB,EAGpBD,aAHoB,EAIpB;AACC;AACA,KAAED,eAAF,GACC,CAAE,CAAEF,WAAF,IAAiB,EAAEC,KAAF,aAAEA,KAAF,+BAAEA,KAAK,CAAEM,KAAT,yCAAE,aAAc7B,QAAhB,CAAnB,KACA,CAAC,CAAEwB,eAJL;AAKC,sBAAkBL,SAAS,KAAII,KAAJ,aAAIA,KAAJ,wCAAIA,KAAK,CAAEM,KAAX,kDAAI,cAAc3B,IAAlB,CAL5B;AAMC,sBACCa,eAAe,KACfQ,KADe,aACfA,KADe,wCACfA,KAAK,CAAEM,KADQ,kDACf,cAAc5B,UADC,CAAf,IAEEqB,WAAW,KAAMtB,QAAQ,KAAIuB,KAAJ,aAAIA,KAAJ,wCAAIA,KAAK,CAAEM,KAAX,kDAAI,cAAc7B,QAAlB,CAAd,CATf;AAUC,sBAAkBuB,KAAlB,aAAkBA,KAAlB,0CAAkBA,KAAK,CAAEO,QAAzB,4EAAkB,gBAAiB/B,IAAnC,yDAAkB,qBAAuB8B;AAV1C,GAJoB,CAArB;AAiBAR,EAAAA,KAAK,CAACO,SAAN,GAAkBD,YAAY,GAAGA,YAAH,GAAkBI,SAAhD;AAEA,SAAOV,KAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASW,YAAT,CAAuBnB,QAAvB,EAAkC;AACxC,MACC,CAAEjB,eAAe,CAAEiB,QAAF,CAAjB,IACAV,uBAAuB,CAAEU,QAAF,CAFxB,EAGE;AACD,WAAOA,QAAP;AACA;;AACD,QAAMoB,2BAA2B,GAAGpB,QAAQ,CAACqB,mBAA7C;;AACArB,EAAAA,QAAQ,CAACqB,mBAAT,GAAiCpB,UAAF,IAAkB;AAChD,QAAIO,KAAK,GAAG,EAAZ;;AACA,QAAKY,2BAAL,EAAmC;AAClCZ,MAAAA,KAAK,GAAGY,2BAA2B,CAAEnB,UAAF,CAAnC;AACA;;AACD,WAAOM,YAAY,CAAEC,KAAF,EAASR,QAAT,EAAmBC,UAAnB,CAAnB;AACA,GAND;;AAQA,SAAOD,QAAP;AACA;;AAED,MAAMsB,8BAA8B,GAAG,CAAEC,MAAF,EAAUC,KAAV,KAAqB;AAC3D,QAAMC,eAAe,GAAG,0BAA0BC,IAA1B,CAAgCF,KAAhC,CAAxB;;AACA,MAAKC,eAAe,IAAIA,eAAe,CAAE,CAAF,CAAvC,EAA+C;AAC9C,WAAO,6CAAiCF,MAAjC,EAAyCE,eAAe,CAAE,CAAF,CAAxD,EACLT,KADF;AAEA;;AACD,SAAOQ,KAAP;AACA,CAPD;;AASA,SAASG,YAAT,CAAuBC,MAAvB,EAA+BC,IAA/B,EAAqCL,KAArC,EAA6C;AAC5C,SAAO,qBAASI,MAAM,GAAG,mBAAOA,MAAP,CAAH,GAAqB,EAApC,EAAwCC,IAAxC,EAA8CL,KAA9C,EAAqDM,aAArD,CAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,SAAT,CAAoBvB,KAApB,EAA4B;AAAA;;AAClC,QAAM;AAAEwB,IAAAA,IAAI,EAAEC,SAAR;AAAmBhC,IAAAA;AAAnB,MAAkCO,KAAxC;AACA,QAAM0B,MAAM,GAAG,yBAAY,eAAZ,KAAiCpD,WAAhD;AACA,QAAMc,SAAS,GAAG,yBAAY,iBAAZ,KAAmCd,WAArD;AACA,QAAMqD,sBAAsB,GAAG,yBAAY,cAAZ,CAA/B;AACA,QAAMC,yBAAyB,GAAG,yBAAY,sBAAZ,CAAlC;AACA,QAAMC,aAAa,GAAG,yBAAY,YAAZ,CAAtB;AACA,QAAMC,aAAa,GAAG,yBAAY,YAAZ,CAAtB;AACA,QAAMC,mBAAmB,GAAG,yBAAY,kBAAZ,CAA5B,CARkC,CAUlC;AACA;AACA;AACA;;AACA,QAAMC,eAAe,GAAG,qBAAQvC,UAAR,CAAxB;AACA,0BAAW,MAAM;AAChBuC,IAAAA,eAAe,CAACC,OAAhB,GAA0BxC,UAA1B;AACA,GAFD,EAEG,CAAEA,UAAF,CAFH;;AAIA,MAAK,CAAElB,eAAe,CAAEkD,SAAF,CAAtB,EAAsC;AACrC,WAAO,IAAP;AACA;;AAED,QAAMS,YAAY,GACjBlD,mBAAmB,CAAEyC,SAAF,CAAnB,IACAI,aADA,KAEEH,MAAM,CAACS,MAAP,GAAgB,CAAhB,IAAqBR,sBAFvB,CADD;AAIA,QAAMS,YAAY,GACjB9C,mBAAmB,CAAEmC,SAAF,CAAnB,IACAK,aADA,KAEEJ,MAAM,CAACS,MAAP,GAAgB,CAAhB,IAAqBR,sBAFvB,CADD;AAIA,QAAMU,kBAAkB,GACvBhD,yBAAyB,CAAEoC,SAAF,CAAzB,IACAM,mBADA,KAEEL,MAAM,CAACS,MAAP,GAAgB,CAAhB,IAAqBR,sBAFvB,CADD;AAIA,QAAMW,gBAAgB,GACrBnD,kBAAkB,CAAEsC,SAAF,CAAlB,KACErC,SAAS,CAAC+C,MAAV,GAAmB,CAAnB,IAAwBP,yBAD1B,CADD;;AAIA,MACC,CAAEM,YAAF,IACA,CAAEE,YADF,IAEA,CAAEC,kBAFF,IAGA,CAAEC,gBAJH,EAKE;AACD,WAAO,IAAP;AACA;;AAED,QAAM;AAAEpC,IAAAA,KAAF;AAASJ,IAAAA,SAAT;AAAoBJ,IAAAA,eAApB;AAAqCf,IAAAA;AAArC,MAAkDc,UAAxD;AACA,MAAI8C,aAAJ;;AACA,MAAKD,gBAAgB,IAAI3D,QAAzB,EAAoC;AACnC4D,IAAAA,aAAa,GAAG,uCAAwBnD,SAAxB,EAAmCT,QAAnC,CAAhB;AACA,GAFD,MAEO,IAAK2D,gBAAL,EAAwB;AAAA;;AAC9BC,IAAAA,aAAa,GAAGrC,KAAH,aAAGA,KAAH,wCAAGA,KAAK,CAAEM,KAAV,kDAAG,cAAc7B,QAA9B;AACA;;AAED,QAAM6D,aAAa,GAAKhB,IAAF,IAAcR,KAAF,IAAa;AAAA;;AAC9C,UAAMyB,WAAW,GAAG,wCAA4Bf,MAA5B,EAAoCV,KAApC,CAApB;AACA,UAAM0B,aAAa,GAAGlB,IAAI,GAAG,OAA7B;AACA,UAAMmB,QAAQ,GAAG,EAChB,GAAGX,eAAe,CAACC,OAAhB,CAAwB/B,KADX;AAEhBM,MAAAA,KAAK,EAAE,EACN,6BAAGwB,eAAe,CAACC,OAAnB,oFAAG,sBAAyB/B,KAA5B,2DAAG,uBAAgCM,KAAnC,CADM;AAEN,SAAEgB,IAAF,GAAUiB,WAAW,SAAX,IAAAA,WAAW,WAAX,IAAAA,WAAW,CAAEG,IAAb,GAAoBlC,SAApB,GAAgCM;AAFpC;AAFS,KAAjB;AAQA,UAAM6B,aAAa,GAAGJ,WAAW,SAAX,IAAAA,WAAW,WAAX,IAAAA,WAAW,CAAEG,IAAb,GAAoBH,WAAW,CAACG,IAAhC,GAAuClC,SAA7D;AACA,UAAMoC,aAAa,GAAG;AACrB5C,MAAAA,KAAK,EAAE,6BAAkByC,QAAlB,CADc;AAErB,OAAED,aAAF,GAAmBG;AAFE,KAAtB;AAKA7C,IAAAA,KAAK,CAAC+C,aAAN,CAAqBD,aAArB;AACAd,IAAAA,eAAe,CAACC,OAAhB,GAA0B,EACzB,GAAGD,eAAe,CAACC,OADM;AAEzB,SAAGa;AAFsB,KAA1B;AAIA,GAtBD;;AAwBA,QAAME,gBAAgB,GAAKhC,KAAF,IAAa;AACrC,UAAM4B,IAAI,GAAG,uCAAwBxD,SAAxB,EAAmC4B,KAAnC,CAAb;AACA,QAAI8B,aAAJ;;AACA,QAAKF,IAAL,EAAY;AAAA;;AACX,YAAMD,QAAQ,GAAG,EAChB,8BAAGX,eAAe,CAACC,OAAnB,2DAAG,uBAAyB/B,KAA5B,CADgB;AAEhBM,QAAAA,KAAK,EAAE,EACN,8BAAGwB,eAAe,CAACC,OAAnB,qFAAG,uBAAyB/B,KAA5B,2DAAG,uBAAgCM,KAAnC,CADM;AAEN7B,UAAAA,QAAQ,EAAE+B;AAFJ;AAFS,OAAjB;AAOAoC,MAAAA,aAAa,GAAG;AACf5C,QAAAA,KAAK,EAAE,6BAAkByC,QAAlB,CADQ;AAEfhE,QAAAA,QAAQ,EAAEiE;AAFK,OAAhB;AAIA,KAZD,MAYO;AAAA;;AACN,YAAMD,QAAQ,GAAG,EAChB,8BAAGX,eAAe,CAACC,OAAnB,2DAAG,uBAAyB/B,KAA5B,CADgB;AAEhBM,QAAAA,KAAK,EAAE,EACN,8BAAGwB,eAAe,CAACC,OAAnB,qFAAG,uBAAyB/B,KAA5B,2DAAG,uBAAgCM,KAAnC,CADM;AAEN7B,UAAAA,QAAQ,EAAEqC;AAFJ;AAFS,OAAjB;AAOA8B,MAAAA,aAAa,GAAG;AACf5C,QAAAA,KAAK,EAAE,6BAAkByC,QAAlB,CADQ;AAEfhE,QAAAA,QAAQ,EAAE+B;AAFK,OAAhB;AAIA;;AACDV,IAAAA,KAAK,CAAC+C,aAAN,CAAqBD,aAArB;AACAd,IAAAA,eAAe,CAACC,OAAhB,GAA0B,EACzB,GAAGD,eAAe,CAACC,OADM;AAEzB,SAAGa;AAFsB,KAA1B;AAIA,GAjCD;;AAmCA,QAAMG,iBAAiB,GAAKjC,KAAF,IAAa;AACtC,UAAMyB,WAAW,GAAG,wCAA4Bf,MAA5B,EAAoCV,KAApC,CAApB;AACA,UAAMkC,iBAAiB,GAAGT,WAAW,SAAX,IAAAA,WAAW,WAAX,IAAAA,WAAW,CAAEG,IAAb,GACtB,oBAAoBH,WAAW,CAACG,IAAM,EADhB,GAEvB5B,KAFH;AAIA,UAAM2B,QAAQ,GAAG,6BAChBxB,YAAY,CACXjB,KADW,EAEX,CAAE,UAAF,EAAc,MAAd,EAAsB,OAAtB,EAA+B,MAA/B,CAFW,EAGXgD,iBAHW,CADI,CAAjB;AAOAlD,IAAAA,KAAK,CAAC+C,aAAN,CAAqB;AAAE7C,MAAAA,KAAK,EAAEyC;AAAT,KAArB;AACA,GAdD;;AAgBA,SACC,4BAAC,mBAAD;AACC,IAAA,sBAAsB,EACrB;AACA1D,sBAASC,EAAT,KAAgB,KAAhB,IAAyB,CAAEP,QAA3B,IAAuC,EAAEuB,KAAF,aAAEA,KAAF,gCAAEA,KAAK,CAAEM,KAAT,0CAAE,cAAc7B,QAAhB,CAHzC;AAKC,IAAA,QAAQ,EAAGqB,KAAK,CAACmD,QALlB;AAMC,IAAA,QAAQ,EAAG,CACV,IAAKf,YAAY,GACd,CACA;AACCgB,MAAAA,KAAK,EAAE,cAAI,YAAJ,CADR;AAECC,MAAAA,aAAa,EAAEb,aAAa,CAAE,MAAF,CAF7B;AAGCc,MAAAA,UAAU,EAAE,6CACX5B,MADW,EAEX5B,SAFW,EAGXI,KAHW,aAGXA,KAHW,wCAGXA,KAAK,CAAEM,KAHI,kDAGX,cAAc3B,IAHH,EAIV2B;AAPH,KADA,CADc,GAYd,EAZH,CADU,EAcV,IAAK6B,kBAAkB,IAAIC,gBAAtB,GACF,CACA;AACCc,MAAAA,KAAK,EAAE,cAAI,kBAAJ,CADR;AAECC,MAAAA,aAAa,EAAEhB,kBAAkB,GAC9BG,aAAa,CAAE,YAAF,CADiB,GAE9B9B,SAJJ;AAKC4C,MAAAA,UAAU,EAAE,6CACX5B,MADW,EAEXhC,eAFW,EAGXQ,KAHW,aAGXA,KAHW,wCAGXA,KAAK,CAAEM,KAHI,kDAGX,cAAc5B,UAHH,EAIV4B,KATH;AAUC+B,MAAAA,aAVD;AAWCgB,MAAAA,gBAAgB,EAAEjB,gBAAgB,GAC/BU,gBAD+B,GAE/BtC;AAbJ,KADA,CADE,GAkBF,EAlBH,CAdU,EAiCV,IAAKwB,YAAY,GACd,CACA;AACCkB,MAAAA,KAAK,EAAE,cAAI,YAAJ,CADR;AAECC,MAAAA,aAAa,EAAEJ,iBAFhB;AAGCK,MAAAA,UAAU,EAAExC,8BAA8B,CACzCY,MADyC,EAEzCxB,KAFyC,aAEzCA,KAFyC,2CAEzCA,KAAK,CAAEO,QAFkC,8EAEzC,iBAAiB/B,IAFwB,oFAEzC,sBAAuB8B,KAFkB,2DAEzC,uBAA8B3B,IAFW,CAH3C;AAOC2E,MAAAA,SAAS,EAAE,CAAC,EAAEtD,KAAF,aAAEA,KAAF,mCAAEA,KAAK,CAAEO,QAAT,sEAAE,iBAAiB/B,IAAnB,4EAAE,sBAAuB8B,KAAzB,mDAAE,uBACX3B,IADS;AAPb,KADA,CADc,GAad,EAbH,CAjCU;AANZ,IADD;AAyDA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,MAAM4E,sBAAsB,GAAG,yCACnCC,cAAF,IAAwB1D,KAAF,IAAa;AAAA;;AAClC,QAAM;AAAEwB,IAAAA,IAAF;AAAQ/B,IAAAA;AAAR,MAAuBO,KAA7B;AACA,QAAM;AAAEN,IAAAA,eAAF;AAAmBI,IAAAA;AAAnB,MAAiCL,UAAvC;AACA,QAAMsB,MAAM,GAAG,yBAAY,eAAZ,KAAiCzC,WAAhD;;AACA,MAAK,CAAEC,eAAe,CAAEiD,IAAF,CAAjB,IAA6B1C,uBAAuB,CAAE0C,IAAF,CAAzD,EAAoE;AACnE,WAAO,4BAAC,cAAD,EAAqBxB,KAArB,CAAP;AACA;;AAED,QAAM2D,WAAW,GAAG;AACnBnD,IAAAA,KAAK,EAAEV,SAAS,4BACb,6CAAiCiB,MAAjC,EAAyCjB,SAAzC,CADa,0DACb,sBAAsDU,KADzC,GAEbE,SAHgB;AAInBhB,IAAAA,eAAe,EAAEA,eAAe,6BAC7B,6CAAiCqB,MAAjC,EAAyCrB,eAAzC,CAD6B,2DAC7B,uBACEc,KAF2B,GAG7BE;AAPgB,GAApB;AAUA,MAAIkD,YAAY,GAAG5D,KAAK,CAAC4D,YAAzB;AACAA,EAAAA,YAAY,GAAG,EACd,GAAG5D,KAAK,CAAC4D,YADK;AAEd1D,IAAAA,KAAK,EAAE,EACN,GAAGyD,WADG;AAEN,iCAAG3D,KAAK,CAAC4D,YAAT,wDAAG,oBAAoB1D,KAAvB;AAFM;AAFO,GAAf;AAQA,SAAO,4BAAC,cAAD,6BAAqBF,KAArB;AAA6B,IAAA,YAAY,EAAG4D;AAA5C,KAAP;AACA,CA7BoC,CAA/B;;AAgCP,sBACC,0BADD,EAEC,yBAFD,EAGCrE,aAHD;AAMA,sBACC,kCADD,EAEC,yBAFD,EAGCQ,YAHD;AAMA,sBACC,0BADD,EAEC,yBAFD,EAGCY,YAHD;AAMA,sBACC,uBADD,EAEC,sCAFD,EAGC8C,sBAHD","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { isObject, setWith, clone } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport { useRef, useEffect, Platform } from '@wordpress/element';\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetColorClassName,\n\tgetColorObjectByColorValue,\n\tgetColorObjectByAttributeValues,\n} from '../components/colors';\nimport {\n\t__experimentalGetGradientClass,\n\tgetGradientValueBySlug,\n\tgetGradientSlugByValue,\n} from '../components/gradients';\nimport { cleanEmptyObject } from './utils';\nimport ColorPanel from './color-panel';\nimport useSetting from '../components/use-setting';\n\nexport const COLOR_SUPPORT_KEY = 'color';\nconst EMPTY_ARRAY = [];\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 shouldSkipSerialization = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport?.__experimentalSkipSerialization;\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 isObject( colorSupport ) && !! colorSupport.link;\n};\n\nconst hasGradientSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn isObject( colorSupport ) && !! colorSupport.gradients;\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 )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst hasGradient = hasGradientSupport( blockType );\n\n\t// I'd have prefered to avoid the \"style\" attribute usage here\n\tconst { backgroundColor, textColor, gradient, style } = attributes;\n\n\tconst backgroundClass = getColorClassName(\n\t\t'background-color',\n\t\tbackgroundColor\n\t);\n\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\tconst textClass = getColorClassName( 'color', textColor );\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': textColor || style?.color?.text,\n\t\t\t'has-background':\n\t\t\t\tbackgroundColor ||\n\t\t\t\tstyle?.color?.background ||\n\t\t\t\t( hasGradient && ( gradient || style?.color?.gradient ) ),\n\t\t\t'has-link-color': 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 extand 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 )\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\nconst getLinkColorFromAttributeValue = ( colors, value ) => {\n\tconst attributeParsed = /var:preset\\|color\\|(.+)/.exec( value );\n\tif ( attributeParsed && attributeParsed[ 1 ] ) {\n\t\treturn getColorObjectByAttributeValues( colors, attributeParsed[ 1 ] )\n\t\t\t.color;\n\t}\n\treturn value;\n};\n\nfunction immutableSet( object, path, value ) {\n\treturn setWith( object ? clone( object ) : {}, path, value, clone );\n}\n\n/**\n * Inspector control panel containing the color related configuration\n *\n * @param {Object} props\n *\n * @return {WPElement} Color edit element.\n */\nexport function ColorEdit( props ) {\n\tconst { name: blockName, attributes } = props;\n\tconst solids = useSetting( 'color.palette' ) || EMPTY_ARRAY;\n\tconst gradients = useSetting( 'color.gradients' ) || EMPTY_ARRAY;\n\tconst areCustomSolidsEnabled = useSetting( 'color.custom' );\n\tconst areCustomGradientsEnabled = useSetting( 'color.customGradient' );\n\tconst isLinkEnabled = useSetting( 'color.link' );\n\tconst isTextEnabled = useSetting( 'color.text' );\n\tconst isBackgroundEnabled = useSetting( 'color.background' );\n\n\t// Shouldn't be needed but right now the ColorGradientsPanel\n\t// can trigger both onChangeColor and onChangeBackground\n\t// synchronously causing our two callbacks to override changes\n\t// from each other.\n\tconst localAttributes = useRef( attributes );\n\tuseEffect( () => {\n\t\tlocalAttributes.current = attributes;\n\t}, [ attributes ] );\n\n\tif ( ! hasColorSupport( blockName ) ) {\n\t\treturn null;\n\t}\n\n\tconst hasLinkColor =\n\t\thasLinkColorSupport( blockName ) &&\n\t\tisLinkEnabled &&\n\t\t( solids.length > 0 || areCustomSolidsEnabled );\n\tconst hasTextColor =\n\t\thasTextColorSupport( blockName ) &&\n\t\tisTextEnabled &&\n\t\t( solids.length > 0 || areCustomSolidsEnabled );\n\tconst hasBackgroundColor =\n\t\thasBackgroundColorSupport( blockName ) &&\n\t\tisBackgroundEnabled &&\n\t\t( solids.length > 0 || areCustomSolidsEnabled );\n\tconst hasGradientColor =\n\t\thasGradientSupport( blockName ) &&\n\t\t( gradients.length > 0 || areCustomGradientsEnabled );\n\n\tif (\n\t\t! hasLinkColor &&\n\t\t! hasTextColor &&\n\t\t! hasBackgroundColor &&\n\t\t! hasGradientColor\n\t) {\n\t\treturn null;\n\t}\n\n\tconst { style, textColor, backgroundColor, gradient } = attributes;\n\tlet gradientValue;\n\tif ( hasGradientColor && gradient ) {\n\t\tgradientValue = getGradientValueBySlug( gradients, gradient );\n\t} else if ( hasGradientColor ) {\n\t\tgradientValue = style?.color?.gradient;\n\t}\n\n\tconst onChangeColor = ( name ) => ( value ) => {\n\t\tconst colorObject = getColorObjectByColorValue( solids, value );\n\t\tconst attributeName = name + 'Color';\n\t\tconst newStyle = {\n\t\t\t...localAttributes.current.style,\n\t\t\tcolor: {\n\t\t\t\t...localAttributes.current?.style?.color,\n\t\t\t\t[ name ]: colorObject?.slug ? undefined : value,\n\t\t\t},\n\t\t};\n\n\t\tconst newNamedColor = colorObject?.slug ? colorObject.slug : undefined;\n\t\tconst newAttributes = {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t[ attributeName ]: newNamedColor,\n\t\t};\n\n\t\tprops.setAttributes( newAttributes );\n\t\tlocalAttributes.current = {\n\t\t\t...localAttributes.current,\n\t\t\t...newAttributes,\n\t\t};\n\t};\n\n\tconst onChangeGradient = ( value ) => {\n\t\tconst slug = getGradientSlugByValue( gradients, value );\n\t\tlet newAttributes;\n\t\tif ( slug ) {\n\t\t\tconst newStyle = {\n\t\t\t\t...localAttributes.current?.style,\n\t\t\t\tcolor: {\n\t\t\t\t\t...localAttributes.current?.style?.color,\n\t\t\t\t\tgradient: undefined,\n\t\t\t\t},\n\t\t\t};\n\t\t\tnewAttributes = {\n\t\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t\tgradient: slug,\n\t\t\t};\n\t\t} else {\n\t\t\tconst newStyle = {\n\t\t\t\t...localAttributes.current?.style,\n\t\t\t\tcolor: {\n\t\t\t\t\t...localAttributes.current?.style?.color,\n\t\t\t\t\tgradient: value,\n\t\t\t\t},\n\t\t\t};\n\t\t\tnewAttributes = {\n\t\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t\tgradient: undefined,\n\t\t\t};\n\t\t}\n\t\tprops.setAttributes( newAttributes );\n\t\tlocalAttributes.current = {\n\t\t\t...localAttributes.current,\n\t\t\t...newAttributes,\n\t\t};\n\t};\n\n\tconst onChangeLinkColor = ( value ) => {\n\t\tconst colorObject = getColorObjectByColorValue( solids, value );\n\t\tconst newLinkColorValue = colorObject?.slug\n\t\t\t? `var:preset|color|${ colorObject.slug }`\n\t\t\t: value;\n\n\t\tconst newStyle = cleanEmptyObject(\n\t\t\timmutableSet(\n\t\t\t\tstyle,\n\t\t\t\t[ 'elements', 'link', 'color', 'text' ],\n\t\t\t\tnewLinkColorValue\n\t\t\t)\n\t\t);\n\t\tprops.setAttributes( { style: newStyle } );\n\t};\n\n\treturn (\n\t\t<ColorPanel\n\t\t\tenableContrastChecking={\n\t\t\t\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\t\t\t\tPlatform.OS === 'web' && ! gradient && ! style?.color?.gradient\n\t\t\t}\n\t\t\tclientId={ props.clientId }\n\t\t\tsettings={ [\n\t\t\t\t...( hasTextColor\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Text color' ),\n\t\t\t\t\t\t\t\tonColorChange: onChangeColor( 'text' ),\n\t\t\t\t\t\t\t\tcolorValue: getColorObjectByAttributeValues(\n\t\t\t\t\t\t\t\t\tsolids,\n\t\t\t\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\t\t\t\tstyle?.color?.text\n\t\t\t\t\t\t\t\t).color,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [] ),\n\t\t\t\t...( hasBackgroundColor || hasGradientColor\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Background color' ),\n\t\t\t\t\t\t\t\tonColorChange: hasBackgroundColor\n\t\t\t\t\t\t\t\t\t? onChangeColor( 'background' )\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\tcolorValue: getColorObjectByAttributeValues(\n\t\t\t\t\t\t\t\t\tsolids,\n\t\t\t\t\t\t\t\t\tbackgroundColor,\n\t\t\t\t\t\t\t\t\tstyle?.color?.background\n\t\t\t\t\t\t\t\t).color,\n\t\t\t\t\t\t\t\tgradientValue,\n\t\t\t\t\t\t\t\tonGradientChange: hasGradientColor\n\t\t\t\t\t\t\t\t\t? onChangeGradient\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [] ),\n\t\t\t\t...( hasLinkColor\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Link Color' ),\n\t\t\t\t\t\t\t\tonColorChange: onChangeLinkColor,\n\t\t\t\t\t\t\t\tcolorValue: getLinkColorFromAttributeValue(\n\t\t\t\t\t\t\t\t\tsolids,\n\t\t\t\t\t\t\t\t\tstyle?.elements?.link?.color?.text\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tclearable: !! style?.elements?.link?.color\n\t\t\t\t\t\t\t\t\t?.text,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [] ),\n\t\t\t] }\n\t\t/>\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 colors = useSetting( 'color.palette' ) || EMPTY_ARRAY;\n\t\tif ( ! hasColorSupport( name ) || shouldSkipSerialization( name ) ) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\n\t\tconst extraStyles = {\n\t\t\tcolor: textColor\n\t\t\t\t? getColorObjectByAttributeValues( colors, textColor )?.color\n\t\t\t\t: undefined,\n\t\t\tbackgroundColor: backgroundColor\n\t\t\t\t? getColorObjectByAttributeValues( colors, backgroundColor )\n\t\t\t\t\t\t?.color\n\t\t\t\t: undefined,\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\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"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/color.js"],"names":["COLOR_SUPPORT_KEY","EMPTY_ARRAY","hasColorSupport","blockType","colorSupport","link","gradient","background","text","shouldSkipSerialization","__experimentalSkipSerialization","hasLinkColorSupport","Platform","OS","hasGradientSupport","gradients","hasBackgroundColorSupport","hasTextColorSupport","addAttributes","settings","attributes","backgroundColor","Object","assign","type","textColor","addSaveProps","props","hasGradient","style","backgroundClass","gradientClass","textClass","newClassName","className","color","elements","undefined","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","getLinkColorFromAttributeValue","colors","value","attributeParsed","exec","immutableSet","object","path","clone","ColorEdit","name","blockName","solids","areCustomSolidsEnabled","areCustomGradientsEnabled","isLinkEnabled","isTextEnabled","isBackgroundEnabled","localAttributes","current","hasLinkColor","length","hasTextColor","hasBackgroundColor","hasGradientColor","gradientValue","onChangeColor","colorObject","attributeName","newStyle","slug","newNamedColor","newAttributes","setAttributes","onChangeGradient","onChangeLinkColor","newLinkColorValue","clientId","label","onColorChange","colorValue","onGradientChange","clearable","withColorPaletteStyles","BlockListBlock","extraStyles","wrapperProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { isObject, setWith, clone } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport { useRef, useEffect, Platform } from '@wordpress/element';\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetColorClassName,\n\tgetColorObjectByColorValue,\n\tgetColorObjectByAttributeValues,\n} from '../components/colors';\nimport {\n\t__experimentalGetGradientClass,\n\tgetGradientValueBySlug,\n\tgetGradientSlugByValue,\n} from '../components/gradients';\nimport { cleanEmptyObject } from './utils';\nimport ColorPanel from './color-panel';\nimport useSetting from '../components/use-setting';\n\nexport const COLOR_SUPPORT_KEY = 'color';\nconst EMPTY_ARRAY = [];\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 shouldSkipSerialization = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport?.__experimentalSkipSerialization;\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 isObject( colorSupport ) && !! colorSupport.link;\n};\n\nconst hasGradientSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn isObject( colorSupport ) && !! colorSupport.gradients;\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 )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst hasGradient = hasGradientSupport( blockType );\n\n\t// I'd have prefered to avoid the \"style\" attribute usage here\n\tconst { backgroundColor, textColor, gradient, style } = attributes;\n\n\tconst backgroundClass = getColorClassName(\n\t\t'background-color',\n\t\tbackgroundColor\n\t);\n\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\tconst textClass = getColorClassName( 'color', textColor );\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': textColor || style?.color?.text,\n\t\t\t'has-background':\n\t\t\t\tbackgroundColor ||\n\t\t\t\tstyle?.color?.background ||\n\t\t\t\t( hasGradient && ( gradient || style?.color?.gradient ) ),\n\t\t\t'has-link-color': 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 extand 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 )\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\nconst getLinkColorFromAttributeValue = ( colors, value ) => {\n\tconst attributeParsed = /var:preset\\|color\\|(.+)/.exec( value );\n\tif ( attributeParsed && attributeParsed[ 1 ] ) {\n\t\treturn getColorObjectByAttributeValues( colors, attributeParsed[ 1 ] )\n\t\t\t.color;\n\t}\n\treturn value;\n};\n\nfunction immutableSet( object, path, value ) {\n\treturn setWith( object ? clone( object ) : {}, path, value, clone );\n}\n\n/**\n * Inspector control panel containing the color related configuration\n *\n * @param {Object} props\n *\n * @return {WPElement} Color edit element.\n */\nexport function ColorEdit( props ) {\n\tconst { name: blockName, attributes } = props;\n\tconst solids = useSetting( 'color.palette' ) || EMPTY_ARRAY;\n\tconst gradients = useSetting( 'color.gradients' ) || EMPTY_ARRAY;\n\tconst areCustomSolidsEnabled = useSetting( 'color.custom' );\n\tconst areCustomGradientsEnabled = useSetting( 'color.customGradient' );\n\tconst isLinkEnabled = useSetting( 'color.link' );\n\tconst isTextEnabled = useSetting( 'color.text' );\n\tconst isBackgroundEnabled = useSetting( 'color.background' );\n\n\t// Shouldn't be needed but right now the ColorGradientsPanel\n\t// can trigger both onChangeColor and onChangeBackground\n\t// synchronously causing our two callbacks to override changes\n\t// from each other.\n\tconst localAttributes = useRef( attributes );\n\tuseEffect( () => {\n\t\tlocalAttributes.current = attributes;\n\t}, [ attributes ] );\n\n\tif ( ! hasColorSupport( blockName ) ) {\n\t\treturn null;\n\t}\n\n\tconst hasLinkColor =\n\t\thasLinkColorSupport( blockName ) &&\n\t\tisLinkEnabled &&\n\t\t( solids.length > 0 || areCustomSolidsEnabled );\n\tconst hasTextColor =\n\t\thasTextColorSupport( blockName ) &&\n\t\tisTextEnabled &&\n\t\t( solids.length > 0 || areCustomSolidsEnabled );\n\tconst hasBackgroundColor =\n\t\thasBackgroundColorSupport( blockName ) &&\n\t\tisBackgroundEnabled &&\n\t\t( solids.length > 0 || areCustomSolidsEnabled );\n\tconst hasGradientColor =\n\t\thasGradientSupport( blockName ) &&\n\t\t( gradients.length > 0 || areCustomGradientsEnabled );\n\n\tif (\n\t\t! hasLinkColor &&\n\t\t! hasTextColor &&\n\t\t! hasBackgroundColor &&\n\t\t! hasGradientColor\n\t) {\n\t\treturn null;\n\t}\n\n\tconst { style, textColor, backgroundColor, gradient } = attributes;\n\tlet gradientValue;\n\tif ( hasGradientColor && gradient ) {\n\t\tgradientValue = getGradientValueBySlug( gradients, gradient );\n\t} else if ( hasGradientColor ) {\n\t\tgradientValue = style?.color?.gradient;\n\t}\n\n\tconst onChangeColor = ( name ) => ( value ) => {\n\t\tconst colorObject = getColorObjectByColorValue( solids, value );\n\t\tconst attributeName = name + 'Color';\n\t\tconst newStyle = {\n\t\t\t...localAttributes.current.style,\n\t\t\tcolor: {\n\t\t\t\t...localAttributes.current?.style?.color,\n\t\t\t\t[ name ]: colorObject?.slug ? undefined : value,\n\t\t\t},\n\t\t};\n\n\t\tconst newNamedColor = colorObject?.slug ? colorObject.slug : undefined;\n\t\tconst newAttributes = {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t[ attributeName ]: newNamedColor,\n\t\t};\n\n\t\tprops.setAttributes( newAttributes );\n\t\tlocalAttributes.current = {\n\t\t\t...localAttributes.current,\n\t\t\t...newAttributes,\n\t\t};\n\t};\n\n\tconst onChangeGradient = ( value ) => {\n\t\tconst slug = getGradientSlugByValue( gradients, value );\n\t\tlet newAttributes;\n\t\tif ( slug ) {\n\t\t\tconst newStyle = {\n\t\t\t\t...localAttributes.current?.style,\n\t\t\t\tcolor: {\n\t\t\t\t\t...localAttributes.current?.style?.color,\n\t\t\t\t\tgradient: undefined,\n\t\t\t\t},\n\t\t\t};\n\t\t\tnewAttributes = {\n\t\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t\tgradient: slug,\n\t\t\t};\n\t\t} else {\n\t\t\tconst newStyle = {\n\t\t\t\t...localAttributes.current?.style,\n\t\t\t\tcolor: {\n\t\t\t\t\t...localAttributes.current?.style?.color,\n\t\t\t\t\tgradient: value,\n\t\t\t\t},\n\t\t\t};\n\t\t\tnewAttributes = {\n\t\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t\tgradient: undefined,\n\t\t\t};\n\t\t}\n\t\tprops.setAttributes( newAttributes );\n\t\tlocalAttributes.current = {\n\t\t\t...localAttributes.current,\n\t\t\t...newAttributes,\n\t\t};\n\t};\n\n\tconst onChangeLinkColor = ( value ) => {\n\t\tconst colorObject = getColorObjectByColorValue( solids, value );\n\t\tconst newLinkColorValue = colorObject?.slug\n\t\t\t? `var:preset|color|${ colorObject.slug }`\n\t\t\t: value;\n\n\t\tconst newStyle = cleanEmptyObject(\n\t\t\timmutableSet(\n\t\t\t\tstyle,\n\t\t\t\t[ 'elements', 'link', 'color', 'text' ],\n\t\t\t\tnewLinkColorValue\n\t\t\t)\n\t\t);\n\t\tprops.setAttributes( { style: newStyle } );\n\t};\n\n\treturn (\n\t\t<ColorPanel\n\t\t\tenableContrastChecking={\n\t\t\t\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\t\t\t\tPlatform.OS === 'web' && ! gradient && ! style?.color?.gradient\n\t\t\t}\n\t\t\tclientId={ props.clientId }\n\t\t\tsettings={ [\n\t\t\t\t...( hasTextColor\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Text color' ),\n\t\t\t\t\t\t\t\tonColorChange: onChangeColor( 'text' ),\n\t\t\t\t\t\t\t\tcolorValue: getColorObjectByAttributeValues(\n\t\t\t\t\t\t\t\t\tsolids,\n\t\t\t\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\t\t\t\tstyle?.color?.text\n\t\t\t\t\t\t\t\t).color,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [] ),\n\t\t\t\t...( hasBackgroundColor || hasGradientColor\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Background color' ),\n\t\t\t\t\t\t\t\tonColorChange: hasBackgroundColor\n\t\t\t\t\t\t\t\t\t? onChangeColor( 'background' )\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\tcolorValue: getColorObjectByAttributeValues(\n\t\t\t\t\t\t\t\t\tsolids,\n\t\t\t\t\t\t\t\t\tbackgroundColor,\n\t\t\t\t\t\t\t\t\tstyle?.color?.background\n\t\t\t\t\t\t\t\t).color,\n\t\t\t\t\t\t\t\tgradientValue,\n\t\t\t\t\t\t\t\tonGradientChange: hasGradientColor\n\t\t\t\t\t\t\t\t\t? onChangeGradient\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [] ),\n\t\t\t\t...( hasLinkColor\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Link Color' ),\n\t\t\t\t\t\t\t\tonColorChange: onChangeLinkColor,\n\t\t\t\t\t\t\t\tcolorValue: getLinkColorFromAttributeValue(\n\t\t\t\t\t\t\t\t\tsolids,\n\t\t\t\t\t\t\t\t\tstyle?.elements?.link?.color?.text\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tclearable: !! style?.elements?.link?.color\n\t\t\t\t\t\t\t\t\t?.text,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [] ),\n\t\t\t] }\n\t\t/>\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 colors = useSetting( 'color.palette' ) || EMPTY_ARRAY;\n\t\tif ( ! hasColorSupport( name ) || shouldSkipSerialization( name ) ) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\n\t\tconst extraStyles = {\n\t\t\tcolor: textColor\n\t\t\t\t? getColorObjectByAttributeValues( colors, textColor )?.color\n\t\t\t\t: undefined,\n\t\t\tbackgroundColor: backgroundColor\n\t\t\t\t? getColorObjectByAttributeValues( colors, backgroundColor )\n\t\t\t\t\t\t?.color\n\t\t\t\t: undefined,\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\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"]}
@@ -5,11 +5,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.AXIAL_SIDES = exports.ALL_SIDES = void 0;
8
9
  exports.DimensionsPanel = DimensionsPanel;
10
+ exports.SPACING_SUPPORT_KEY = void 0;
9
11
  exports.hasDimensionsSupport = hasDimensionsSupport;
10
12
  exports.useCustomSides = useCustomSides;
11
13
  exports.useIsDimensionsSupportValid = useIsDimensionsSupportValid;
12
- exports.AXIAL_SIDES = exports.ALL_SIDES = exports.SPACING_SUPPORT_KEY = void 0;
13
14
 
14
15
  var _element = require("@wordpress/element");
15
16
 
@@ -124,7 +125,8 @@ function hasDimensionsSupport(blockName) {
124
125
  */
125
126
 
126
127
 
127
- const useIsDimensionsDisabled = (props = {}) => {
128
+ const useIsDimensionsDisabled = function () {
129
+ let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
128
130
  const gapDisabled = (0, _gap.useIsGapDisabled)(props);
129
131
  const paddingDisabled = (0, _padding.useIsPaddingDisabled)(props);
130
132
  const marginDisabled = (0, _margin.useIsMarginDisabled)(props);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/dimensions.js"],"names":["SPACING_SUPPORT_KEY","ALL_SIDES","AXIAL_SIDES","DimensionsPanel","props","isGapDisabled","isPaddingDisabled","isMarginDisabled","isDisabled","useIsDimensionsDisabled","isSupported","hasDimensionsSupport","name","defaultSpacingControls","createResetAllFilter","attribute","newAttributes","style","spacing","undefined","padding","clientId","margin","blockGap","blockName","Platform","OS","gapDisabled","paddingDisabled","marginDisabled","useCustomSides","feature","support","useIsDimensionsSupportValid","sides","some","side","includes","console","warn"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';\nimport { Platform } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { getBlockSupport } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport {\n\tGapEdit,\n\thasGapSupport,\n\thasGapValue,\n\tresetGap,\n\tuseIsGapDisabled,\n} from './gap';\nimport {\n\tMarginEdit,\n\thasMarginSupport,\n\thasMarginValue,\n\tresetMargin,\n\tuseIsMarginDisabled,\n} from './margin';\nimport {\n\tPaddingEdit,\n\thasPaddingSupport,\n\thasPaddingValue,\n\tresetPadding,\n\tuseIsPaddingDisabled,\n} from './padding';\n\nexport const SPACING_SUPPORT_KEY = 'spacing';\nexport const ALL_SIDES = [ 'top', 'right', 'bottom', 'left' ];\nexport const AXIAL_SIDES = [ 'vertical', 'horizontal' ];\n\n/**\n * Inspector controls for dimensions support.\n *\n * @param {Object} props Block props.\n *\n * @return {WPElement} Inspector controls for spacing support features.\n */\nexport function DimensionsPanel( props ) {\n\tconst isGapDisabled = useIsGapDisabled( props );\n\tconst isPaddingDisabled = useIsPaddingDisabled( props );\n\tconst isMarginDisabled = useIsMarginDisabled( props );\n\tconst isDisabled = useIsDimensionsDisabled( props );\n\tconst isSupported = hasDimensionsSupport( props.name );\n\n\tif ( isDisabled || ! isSupported ) {\n\t\treturn null;\n\t}\n\n\tconst defaultSpacingControls = getBlockSupport( props.name, [\n\t\tSPACING_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\tconst createResetAllFilter = ( attribute ) => ( newAttributes ) => ( {\n\t\t...newAttributes,\n\t\tstyle: {\n\t\t\t...newAttributes.style,\n\t\t\tspacing: {\n\t\t\t\t...newAttributes.style?.spacing,\n\t\t\t\t[ attribute ]: undefined,\n\t\t\t},\n\t\t},\n\t} );\n\n\treturn (\n\t\t<InspectorControls __experimentalGroup=\"dimensions\">\n\t\t\t{ ! isPaddingDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasPaddingValue( props ) }\n\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\tonDeselect={ () => resetPadding( props ) }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'padding' ) }\n\t\t\t\t\tisShownByDefault={ defaultSpacingControls?.padding }\n\t\t\t\t\tpanelId={ props.clientId }\n\t\t\t\t>\n\t\t\t\t\t<PaddingEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isMarginDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasMarginValue( props ) }\n\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\tonDeselect={ () => resetMargin( props ) }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'margin' ) }\n\t\t\t\t\tisShownByDefault={ defaultSpacingControls?.margin }\n\t\t\t\t\tpanelId={ props.clientId }\n\t\t\t\t>\n\t\t\t\t\t<MarginEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isGapDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasGapValue( props ) }\n\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\tonDeselect={ () => resetGap( props ) }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'blockGap' ) }\n\t\t\t\t\tisShownByDefault={ defaultSpacingControls?.blockGap }\n\t\t\t\t\tpanelId={ props.clientId }\n\t\t\t\t>\n\t\t\t\t\t<GapEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n}\n\n/**\n * Determine whether there is dimensions related block support.\n *\n * @param {string} blockName Block name.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasDimensionsSupport( blockName ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\treturn (\n\t\thasGapSupport( blockName ) ||\n\t\thasPaddingSupport( blockName ) ||\n\t\thasMarginSupport( blockName )\n\t);\n}\n\n/**\n * Determines whether dimensions support has been disabled.\n *\n * @param {Object} props Block properties.\n *\n * @return {boolean} If spacing support is completely disabled.\n */\nconst useIsDimensionsDisabled = ( props = {} ) => {\n\tconst gapDisabled = useIsGapDisabled( props );\n\tconst paddingDisabled = useIsPaddingDisabled( props );\n\tconst marginDisabled = useIsMarginDisabled( props );\n\n\treturn gapDisabled && paddingDisabled && marginDisabled;\n};\n\n/**\n * Custom hook to retrieve which padding/margin is supported\n * e.g. top, right, bottom or left.\n *\n * Sides are opted into by default. It is only if a specific side is set to\n * false that it is omitted.\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 {Object} Sides supporting custom margin.\n */\nexport function useCustomSides( blockName, feature ) {\n\tconst support = getBlockSupport( blockName, SPACING_SUPPORT_KEY );\n\n\t// Skip when setting is boolean as theme isn't setting arbitrary sides.\n\tif ( ! support || typeof support[ feature ] === 'boolean' ) {\n\t\treturn;\n\t}\n\n\treturn support[ feature ];\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\treturn true;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/dimensions.js"],"names":["SPACING_SUPPORT_KEY","ALL_SIDES","AXIAL_SIDES","DimensionsPanel","props","isGapDisabled","isPaddingDisabled","isMarginDisabled","isDisabled","useIsDimensionsDisabled","isSupported","hasDimensionsSupport","name","defaultSpacingControls","createResetAllFilter","attribute","newAttributes","style","spacing","undefined","padding","clientId","margin","blockGap","blockName","Platform","OS","gapDisabled","paddingDisabled","marginDisabled","useCustomSides","feature","support","useIsDimensionsSupportValid","sides","some","side","includes","console","warn"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';\nimport { Platform } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { getBlockSupport } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport {\n\tGapEdit,\n\thasGapSupport,\n\thasGapValue,\n\tresetGap,\n\tuseIsGapDisabled,\n} from './gap';\nimport {\n\tMarginEdit,\n\thasMarginSupport,\n\thasMarginValue,\n\tresetMargin,\n\tuseIsMarginDisabled,\n} from './margin';\nimport {\n\tPaddingEdit,\n\thasPaddingSupport,\n\thasPaddingValue,\n\tresetPadding,\n\tuseIsPaddingDisabled,\n} from './padding';\n\nexport const SPACING_SUPPORT_KEY = 'spacing';\nexport const ALL_SIDES = [ 'top', 'right', 'bottom', 'left' ];\nexport const AXIAL_SIDES = [ 'vertical', 'horizontal' ];\n\n/**\n * Inspector controls for dimensions support.\n *\n * @param {Object} props Block props.\n *\n * @return {WPElement} Inspector controls for spacing support features.\n */\nexport function DimensionsPanel( props ) {\n\tconst isGapDisabled = useIsGapDisabled( props );\n\tconst isPaddingDisabled = useIsPaddingDisabled( props );\n\tconst isMarginDisabled = useIsMarginDisabled( props );\n\tconst isDisabled = useIsDimensionsDisabled( props );\n\tconst isSupported = hasDimensionsSupport( props.name );\n\n\tif ( isDisabled || ! isSupported ) {\n\t\treturn null;\n\t}\n\n\tconst defaultSpacingControls = getBlockSupport( props.name, [\n\t\tSPACING_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\tconst createResetAllFilter = ( attribute ) => ( newAttributes ) => ( {\n\t\t...newAttributes,\n\t\tstyle: {\n\t\t\t...newAttributes.style,\n\t\t\tspacing: {\n\t\t\t\t...newAttributes.style?.spacing,\n\t\t\t\t[ attribute ]: undefined,\n\t\t\t},\n\t\t},\n\t} );\n\n\treturn (\n\t\t<InspectorControls __experimentalGroup=\"dimensions\">\n\t\t\t{ ! isPaddingDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasPaddingValue( props ) }\n\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\tonDeselect={ () => resetPadding( props ) }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'padding' ) }\n\t\t\t\t\tisShownByDefault={ defaultSpacingControls?.padding }\n\t\t\t\t\tpanelId={ props.clientId }\n\t\t\t\t>\n\t\t\t\t\t<PaddingEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isMarginDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasMarginValue( props ) }\n\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\tonDeselect={ () => resetMargin( props ) }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'margin' ) }\n\t\t\t\t\tisShownByDefault={ defaultSpacingControls?.margin }\n\t\t\t\t\tpanelId={ props.clientId }\n\t\t\t\t>\n\t\t\t\t\t<MarginEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isGapDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasGapValue( props ) }\n\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\tonDeselect={ () => resetGap( props ) }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'blockGap' ) }\n\t\t\t\t\tisShownByDefault={ defaultSpacingControls?.blockGap }\n\t\t\t\t\tpanelId={ props.clientId }\n\t\t\t\t>\n\t\t\t\t\t<GapEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n}\n\n/**\n * Determine whether there is dimensions related block support.\n *\n * @param {string} blockName Block name.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasDimensionsSupport( blockName ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\treturn (\n\t\thasGapSupport( blockName ) ||\n\t\thasPaddingSupport( blockName ) ||\n\t\thasMarginSupport( blockName )\n\t);\n}\n\n/**\n * Determines whether dimensions support has been disabled.\n *\n * @param {Object} props Block properties.\n *\n * @return {boolean} If spacing support is completely disabled.\n */\nconst useIsDimensionsDisabled = ( props = {} ) => {\n\tconst gapDisabled = useIsGapDisabled( props );\n\tconst paddingDisabled = useIsPaddingDisabled( props );\n\tconst marginDisabled = useIsMarginDisabled( props );\n\n\treturn gapDisabled && paddingDisabled && marginDisabled;\n};\n\n/**\n * Custom hook to retrieve which padding/margin is supported\n * e.g. top, right, bottom or left.\n *\n * Sides are opted into by default. It is only if a specific side is set to\n * false that it is omitted.\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 {Object} Sides supporting custom margin.\n */\nexport function useCustomSides( blockName, feature ) {\n\tconst support = getBlockSupport( blockName, SPACING_SUPPORT_KEY );\n\n\t// Skip when setting is boolean as theme isn't setting arbitrary sides.\n\tif ( ! support || typeof support[ feature ] === 'boolean' ) {\n\t\treturn;\n\t}\n\n\treturn support[ feature ];\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\treturn true;\n}\n"]}
@@ -50,7 +50,8 @@ const EMPTY_ARRAY = [];
50
50
  * @return {Object} R, G, and B values.
51
51
  */
52
52
 
53
- function getValuesFromColors(colors = []) {
53
+ function getValuesFromColors() {
54
+ let colors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
54
55
  const values = {
55
56
  r: [],
56
57
  g: [],
@@ -88,11 +89,12 @@ function getValuesFromColors(colors = []) {
88
89
  */
89
90
 
90
91
 
91
- function DuotoneFilter({
92
- selector,
93
- id,
94
- values
95
- }) {
92
+ function DuotoneFilter(_ref) {
93
+ let {
94
+ selector,
95
+ id,
96
+ values
97
+ } = _ref;
96
98
  const stylesheet = `
97
99
  ${selector} {
98
100
  filter: url( #${id} );
@@ -145,12 +147,13 @@ ${selector} {
145
147
  }));
146
148
  }
147
149
 
148
- function DuotonePanel({
149
- attributes,
150
- setAttributes
151
- }) {
150
+ function DuotonePanel(_ref2) {
152
151
  var _style$color;
153
152
 
153
+ let {
154
+ attributes,
155
+ setAttributes
156
+ } = _ref2;
154
157
  const style = attributes === null || attributes === void 0 ? void 0 : attributes.style;
155
158
  const duotone = style === null || style === void 0 ? void 0 : (_style$color = style.color) === null || _style$color === void 0 ? void 0 : _style$color.duotone;
156
159
  const duotonePalette = (0, _components2.useSetting)('color.duotone') || EMPTY_ARRAY;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/duotone.js"],"names":["EMPTY_ARRAY","namesPlugin","getValuesFromColors","colors","values","r","g","b","a","forEach","color","rgbColor","toRgb","push","DuotoneFilter","selector","id","stylesheet","visibility","position","left","overflow","join","__html","DuotonePanel","attributes","setAttributes","style","duotone","duotonePalette","colorPalette","disableCustomColors","disableCustomDuotone","length","newDuotone","newStyle","addDuotoneAttributes","settings","Object","assign","type","withDuotoneControls","BlockEdit","props","hasDuotoneSupport","name","scopeSelector","scope","scopes","split","selectors","selectorsScoped","outer","inner","trim","withDuotoneStyles","BlockListBlock","duotoneSupport","selectorsGroup","className","element","BlockList","__unstableElementContext"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport { SVG } from '@wordpress/components';\nimport { createHigherOrderComponent, useInstanceId } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\nimport { useContext, createPortal } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tBlockControls,\n\t__experimentalDuotoneControl as DuotoneControl,\n\tuseSetting,\n} from '../components';\nimport BlockList from '../components/block-list';\n\nconst EMPTY_ARRAY = [];\n\nextend( [ namesPlugin ] );\n\n/**\n * Convert a list of colors to an object of R, G, and B values.\n *\n * @param {string[]} colors Array of RBG color strings.\n *\n * @return {Object} R, G, and B values.\n */\nexport function getValuesFromColors( colors = [] ) {\n\tconst values = { r: [], g: [], b: [], a: [] };\n\n\tcolors.forEach( ( color ) => {\n\t\tconst rgbColor = colord( color ).toRgb();\n\t\tvalues.r.push( rgbColor.r / 255 );\n\t\tvalues.g.push( rgbColor.g / 255 );\n\t\tvalues.b.push( rgbColor.b / 255 );\n\t\tvalues.a.push( rgbColor.a );\n\t} );\n\n\treturn values;\n}\n\n/**\n * Values for the SVG `feComponentTransfer`.\n *\n * @typedef Values {Object}\n * @property {number[]} r Red values.\n * @property {number[]} g Green values.\n * @property {number[]} b Blue values.\n * @property {number[]} a Alpha values.\n */\n\n/**\n * SVG and stylesheet needed for rendering the duotone filter.\n *\n * @param {Object} props Duotone props.\n * @param {string} props.selector Selector to apply the filter to.\n * @param {string} props.id Unique id for this duotone filter.\n * @param {Values} props.values R, G, B, and A values to filter with.\n *\n * @return {WPElement} Duotone element.\n */\nfunction DuotoneFilter( { selector, id, values } ) {\n\tconst stylesheet = `\n${ selector } {\n\tfilter: url( #${ id } );\n}\n`;\n\n\treturn (\n\t\t<>\n\t\t\t<SVG\n\t\t\t\txmlnsXlink=\"http://www.w3.org/1999/xlink\"\n\t\t\t\tviewBox=\"0 0 0 0\"\n\t\t\t\twidth=\"0\"\n\t\t\t\theight=\"0\"\n\t\t\t\tfocusable=\"false\"\n\t\t\t\trole=\"none\"\n\t\t\t\tstyle={ {\n\t\t\t\t\tvisibility: 'hidden',\n\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\tleft: '-9999px',\n\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<defs>\n\t\t\t\t\t<filter id={ id }>\n\t\t\t\t\t\t<feColorMatrix\n\t\t\t\t\t\t\t// Use sRGB instead of linearRGB so transparency looks correct.\n\t\t\t\t\t\t\tcolorInterpolationFilters=\"sRGB\"\n\t\t\t\t\t\t\ttype=\"matrix\"\n\t\t\t\t\t\t\t// Use perceptual brightness to convert to grayscale.\n\t\t\t\t\t\t\tvalues=\"\n\t\t\t\t\t\t\t\t.299 .587 .114 0 0\n\t\t\t\t\t\t\t\t.299 .587 .114 0 0\n\t\t\t\t\t\t\t\t.299 .587 .114 0 0\n\t\t\t\t\t\t\t\t.299 .587 .114 0 0\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<feComponentTransfer\n\t\t\t\t\t\t\t// Use sRGB instead of linearRGB to be consistent with how CSS gradients work.\n\t\t\t\t\t\t\tcolorInterpolationFilters=\"sRGB\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<feFuncR\n\t\t\t\t\t\t\t\ttype=\"table\"\n\t\t\t\t\t\t\t\ttableValues={ values.r.join( ' ' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<feFuncG\n\t\t\t\t\t\t\t\ttype=\"table\"\n\t\t\t\t\t\t\t\ttableValues={ values.g.join( ' ' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<feFuncB\n\t\t\t\t\t\t\t\ttype=\"table\"\n\t\t\t\t\t\t\t\ttableValues={ values.b.join( ' ' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<feFuncA\n\t\t\t\t\t\t\t\ttype=\"table\"\n\t\t\t\t\t\t\t\ttableValues={ values.a.join( ' ' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</feComponentTransfer>\n\t\t\t\t\t\t<feComposite\n\t\t\t\t\t\t\t// Re-mask the image with the original transparency since the feColorMatrix above loses that information.\n\t\t\t\t\t\t\tin2=\"SourceGraphic\"\n\t\t\t\t\t\t\toperator=\"in\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</filter>\n\t\t\t\t</defs>\n\t\t\t</SVG>\n\t\t\t<style dangerouslySetInnerHTML={ { __html: stylesheet } } />\n\t\t</>\n\t);\n}\n\nfunction DuotonePanel( { attributes, setAttributes } ) {\n\tconst style = attributes?.style;\n\tconst duotone = style?.color?.duotone;\n\n\tconst duotonePalette = useSetting( 'color.duotone' ) || EMPTY_ARRAY;\n\tconst colorPalette = useSetting( 'color.palette' ) || EMPTY_ARRAY;\n\tconst disableCustomColors = ! useSetting( 'color.custom' );\n\tconst disableCustomDuotone =\n\t\t! useSetting( 'color.customDuotone' ) ||\n\t\t( colorPalette?.length === 0 && disableCustomColors );\n\n\tif ( duotonePalette?.length === 0 && disableCustomDuotone ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockControls group=\"block\" __experimentalShareWithChildBlocks>\n\t\t\t<DuotoneControl\n\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\tdisableCustomDuotone={ disableCustomDuotone }\n\t\t\t\tdisableCustomColors={ disableCustomColors }\n\t\t\t\tvalue={ duotone }\n\t\t\t\tonChange={ ( newDuotone ) => {\n\t\t\t\t\tconst newStyle = {\n\t\t\t\t\t\t...style,\n\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t...style?.color,\n\t\t\t\t\t\t\tduotone: newDuotone,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t\tsetAttributes( { style: newStyle } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</BlockControls>\n\t);\n}\n\n/**\n * Filters registered block settings, extending attributes to include\n * the `duotone` attribute.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addDuotoneAttributes( settings ) {\n\tif ( ! hasBlockSupport( settings, 'color.__experimentalDuotone' ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify their own attribute definition with default\n\t// values if needed.\n\tif ( ! settings.attributes.style ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tstyle: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override the default edit UI to include toolbar controls for duotone if the\n * block supports duotone.\n *\n * @param {Function} BlockEdit Original component.\n *\n * @return {Function} Wrapped component.\n */\nconst withDuotoneControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst hasDuotoneSupport = hasBlockSupport(\n\t\t\tprops.name,\n\t\t\t'color.__experimentalDuotone'\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit { ...props } />\n\t\t\t\t{ hasDuotoneSupport && <DuotonePanel { ...props } /> }\n\t\t\t</>\n\t\t);\n\t},\n\t'withDuotoneControls'\n);\n\n/**\n * Function that scopes a selector with another one. This works a bit like\n * SCSS nesting except the `&` operator isn't supported.\n *\n * @example\n * ```js\n * const scope = '.a, .b .c';\n * const selector = '> .x, .y';\n * const merged = scopeSelector( scope, selector );\n * // merged is '.a > .x, .a .y, .b .c > .x, .b .c .y'\n * ```\n *\n * @param {string} scope Selector to scope to.\n * @param {string} selector Original selector.\n *\n * @return {string} Scoped selector.\n */\nfunction scopeSelector( scope, selector ) {\n\tconst scopes = scope.split( ',' );\n\tconst selectors = selector.split( ',' );\n\n\tconst selectorsScoped = [];\n\tscopes.forEach( ( outer ) => {\n\t\tselectors.forEach( ( inner ) => {\n\t\t\tselectorsScoped.push( `${ outer.trim() } ${ inner.trim() }` );\n\t\t} );\n\t} );\n\n\treturn selectorsScoped.join( ', ' );\n}\n\n/**\n * Override the default block element to include duotone styles.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nconst withDuotoneStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst duotoneSupport = getBlockSupport(\n\t\t\tprops.name,\n\t\t\t'color.__experimentalDuotone'\n\t\t);\n\t\tconst values = props?.attributes?.style?.color?.duotone;\n\n\t\tif ( ! duotoneSupport || ! values ) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\n\t\tconst id = `wp-duotone-${ useInstanceId( BlockListBlock ) }`;\n\n\t\t// Extra .editor-styles-wrapper specificity is needed in the editor\n\t\t// since we're not using inline styles to apply the filter. We need to\n\t\t// override duotone applied by global styles and theme.json.\n\t\tconst selectorsGroup = scopeSelector(\n\t\t\t`.editor-styles-wrapper .${ id }`,\n\t\t\tduotoneSupport\n\t\t);\n\n\t\tconst className = classnames( props?.className, id );\n\n\t\tconst element = useContext( BlockList.__unstableElementContext );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ element &&\n\t\t\t\t\tcreatePortal(\n\t\t\t\t\t\t<DuotoneFilter\n\t\t\t\t\t\t\tselector={ selectorsGroup }\n\t\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\t\tvalues={ getValuesFromColors( values ) }\n\t\t\t\t\t\t/>,\n\t\t\t\t\t\telement\n\t\t\t\t\t) }\n\t\t\t\t<BlockListBlock { ...props } className={ className } />\n\t\t\t</>\n\t\t);\n\t},\n\t'withDuotoneStyles'\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/editor/duotone/add-attributes',\n\taddDuotoneAttributes\n);\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/duotone/with-editor-controls',\n\twithDuotoneControls\n);\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/editor/duotone/with-styles',\n\twithDuotoneStyles\n);\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/duotone.js"],"names":["EMPTY_ARRAY","namesPlugin","getValuesFromColors","colors","values","r","g","b","a","forEach","color","rgbColor","toRgb","push","DuotoneFilter","selector","id","stylesheet","visibility","position","left","overflow","join","__html","DuotonePanel","attributes","setAttributes","style","duotone","duotonePalette","colorPalette","disableCustomColors","disableCustomDuotone","length","newDuotone","newStyle","addDuotoneAttributes","settings","Object","assign","type","withDuotoneControls","BlockEdit","props","hasDuotoneSupport","name","scopeSelector","scope","scopes","split","selectors","selectorsScoped","outer","inner","trim","withDuotoneStyles","BlockListBlock","duotoneSupport","selectorsGroup","className","element","BlockList","__unstableElementContext"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport { SVG } from '@wordpress/components';\nimport { createHigherOrderComponent, useInstanceId } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\nimport { useContext, createPortal } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tBlockControls,\n\t__experimentalDuotoneControl as DuotoneControl,\n\tuseSetting,\n} from '../components';\nimport BlockList from '../components/block-list';\n\nconst EMPTY_ARRAY = [];\n\nextend( [ namesPlugin ] );\n\n/**\n * Convert a list of colors to an object of R, G, and B values.\n *\n * @param {string[]} colors Array of RBG color strings.\n *\n * @return {Object} R, G, and B values.\n */\nexport function getValuesFromColors( colors = [] ) {\n\tconst values = { r: [], g: [], b: [], a: [] };\n\n\tcolors.forEach( ( color ) => {\n\t\tconst rgbColor = colord( color ).toRgb();\n\t\tvalues.r.push( rgbColor.r / 255 );\n\t\tvalues.g.push( rgbColor.g / 255 );\n\t\tvalues.b.push( rgbColor.b / 255 );\n\t\tvalues.a.push( rgbColor.a );\n\t} );\n\n\treturn values;\n}\n\n/**\n * Values for the SVG `feComponentTransfer`.\n *\n * @typedef Values {Object}\n * @property {number[]} r Red values.\n * @property {number[]} g Green values.\n * @property {number[]} b Blue values.\n * @property {number[]} a Alpha values.\n */\n\n/**\n * SVG and stylesheet needed for rendering the duotone filter.\n *\n * @param {Object} props Duotone props.\n * @param {string} props.selector Selector to apply the filter to.\n * @param {string} props.id Unique id for this duotone filter.\n * @param {Values} props.values R, G, B, and A values to filter with.\n *\n * @return {WPElement} Duotone element.\n */\nfunction DuotoneFilter( { selector, id, values } ) {\n\tconst stylesheet = `\n${ selector } {\n\tfilter: url( #${ id } );\n}\n`;\n\n\treturn (\n\t\t<>\n\t\t\t<SVG\n\t\t\t\txmlnsXlink=\"http://www.w3.org/1999/xlink\"\n\t\t\t\tviewBox=\"0 0 0 0\"\n\t\t\t\twidth=\"0\"\n\t\t\t\theight=\"0\"\n\t\t\t\tfocusable=\"false\"\n\t\t\t\trole=\"none\"\n\t\t\t\tstyle={ {\n\t\t\t\t\tvisibility: 'hidden',\n\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\tleft: '-9999px',\n\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<defs>\n\t\t\t\t\t<filter id={ id }>\n\t\t\t\t\t\t<feColorMatrix\n\t\t\t\t\t\t\t// Use sRGB instead of linearRGB so transparency looks correct.\n\t\t\t\t\t\t\tcolorInterpolationFilters=\"sRGB\"\n\t\t\t\t\t\t\ttype=\"matrix\"\n\t\t\t\t\t\t\t// Use perceptual brightness to convert to grayscale.\n\t\t\t\t\t\t\tvalues=\"\n\t\t\t\t\t\t\t\t.299 .587 .114 0 0\n\t\t\t\t\t\t\t\t.299 .587 .114 0 0\n\t\t\t\t\t\t\t\t.299 .587 .114 0 0\n\t\t\t\t\t\t\t\t.299 .587 .114 0 0\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<feComponentTransfer\n\t\t\t\t\t\t\t// Use sRGB instead of linearRGB to be consistent with how CSS gradients work.\n\t\t\t\t\t\t\tcolorInterpolationFilters=\"sRGB\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<feFuncR\n\t\t\t\t\t\t\t\ttype=\"table\"\n\t\t\t\t\t\t\t\ttableValues={ values.r.join( ' ' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<feFuncG\n\t\t\t\t\t\t\t\ttype=\"table\"\n\t\t\t\t\t\t\t\ttableValues={ values.g.join( ' ' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<feFuncB\n\t\t\t\t\t\t\t\ttype=\"table\"\n\t\t\t\t\t\t\t\ttableValues={ values.b.join( ' ' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<feFuncA\n\t\t\t\t\t\t\t\ttype=\"table\"\n\t\t\t\t\t\t\t\ttableValues={ values.a.join( ' ' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</feComponentTransfer>\n\t\t\t\t\t\t<feComposite\n\t\t\t\t\t\t\t// Re-mask the image with the original transparency since the feColorMatrix above loses that information.\n\t\t\t\t\t\t\tin2=\"SourceGraphic\"\n\t\t\t\t\t\t\toperator=\"in\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</filter>\n\t\t\t\t</defs>\n\t\t\t</SVG>\n\t\t\t<style dangerouslySetInnerHTML={ { __html: stylesheet } } />\n\t\t</>\n\t);\n}\n\nfunction DuotonePanel( { attributes, setAttributes } ) {\n\tconst style = attributes?.style;\n\tconst duotone = style?.color?.duotone;\n\n\tconst duotonePalette = useSetting( 'color.duotone' ) || EMPTY_ARRAY;\n\tconst colorPalette = useSetting( 'color.palette' ) || EMPTY_ARRAY;\n\tconst disableCustomColors = ! useSetting( 'color.custom' );\n\tconst disableCustomDuotone =\n\t\t! useSetting( 'color.customDuotone' ) ||\n\t\t( colorPalette?.length === 0 && disableCustomColors );\n\n\tif ( duotonePalette?.length === 0 && disableCustomDuotone ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockControls group=\"block\" __experimentalShareWithChildBlocks>\n\t\t\t<DuotoneControl\n\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\tdisableCustomDuotone={ disableCustomDuotone }\n\t\t\t\tdisableCustomColors={ disableCustomColors }\n\t\t\t\tvalue={ duotone }\n\t\t\t\tonChange={ ( newDuotone ) => {\n\t\t\t\t\tconst newStyle = {\n\t\t\t\t\t\t...style,\n\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t...style?.color,\n\t\t\t\t\t\t\tduotone: newDuotone,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t\tsetAttributes( { style: newStyle } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</BlockControls>\n\t);\n}\n\n/**\n * Filters registered block settings, extending attributes to include\n * the `duotone` attribute.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addDuotoneAttributes( settings ) {\n\tif ( ! hasBlockSupport( settings, 'color.__experimentalDuotone' ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify their own attribute definition with default\n\t// values if needed.\n\tif ( ! settings.attributes.style ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tstyle: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override the default edit UI to include toolbar controls for duotone if the\n * block supports duotone.\n *\n * @param {Function} BlockEdit Original component.\n *\n * @return {Function} Wrapped component.\n */\nconst withDuotoneControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst hasDuotoneSupport = hasBlockSupport(\n\t\t\tprops.name,\n\t\t\t'color.__experimentalDuotone'\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit { ...props } />\n\t\t\t\t{ hasDuotoneSupport && <DuotonePanel { ...props } /> }\n\t\t\t</>\n\t\t);\n\t},\n\t'withDuotoneControls'\n);\n\n/**\n * Function that scopes a selector with another one. This works a bit like\n * SCSS nesting except the `&` operator isn't supported.\n *\n * @example\n * ```js\n * const scope = '.a, .b .c';\n * const selector = '> .x, .y';\n * const merged = scopeSelector( scope, selector );\n * // merged is '.a > .x, .a .y, .b .c > .x, .b .c .y'\n * ```\n *\n * @param {string} scope Selector to scope to.\n * @param {string} selector Original selector.\n *\n * @return {string} Scoped selector.\n */\nfunction scopeSelector( scope, selector ) {\n\tconst scopes = scope.split( ',' );\n\tconst selectors = selector.split( ',' );\n\n\tconst selectorsScoped = [];\n\tscopes.forEach( ( outer ) => {\n\t\tselectors.forEach( ( inner ) => {\n\t\t\tselectorsScoped.push( `${ outer.trim() } ${ inner.trim() }` );\n\t\t} );\n\t} );\n\n\treturn selectorsScoped.join( ', ' );\n}\n\n/**\n * Override the default block element to include duotone styles.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nconst withDuotoneStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst duotoneSupport = getBlockSupport(\n\t\t\tprops.name,\n\t\t\t'color.__experimentalDuotone'\n\t\t);\n\t\tconst values = props?.attributes?.style?.color?.duotone;\n\n\t\tif ( ! duotoneSupport || ! values ) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\n\t\tconst id = `wp-duotone-${ useInstanceId( BlockListBlock ) }`;\n\n\t\t// Extra .editor-styles-wrapper specificity is needed in the editor\n\t\t// since we're not using inline styles to apply the filter. We need to\n\t\t// override duotone applied by global styles and theme.json.\n\t\tconst selectorsGroup = scopeSelector(\n\t\t\t`.editor-styles-wrapper .${ id }`,\n\t\t\tduotoneSupport\n\t\t);\n\n\t\tconst className = classnames( props?.className, id );\n\n\t\tconst element = useContext( BlockList.__unstableElementContext );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ element &&\n\t\t\t\t\tcreatePortal(\n\t\t\t\t\t\t<DuotoneFilter\n\t\t\t\t\t\t\tselector={ selectorsGroup }\n\t\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\t\tvalues={ getValuesFromColors( values ) }\n\t\t\t\t\t\t/>,\n\t\t\t\t\t\telement\n\t\t\t\t\t) }\n\t\t\t\t<BlockListBlock { ...props } className={ className } />\n\t\t\t</>\n\t\t);\n\t},\n\t'withDuotoneStyles'\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/editor/duotone/add-attributes',\n\taddDuotoneAttributes\n);\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/duotone/with-editor-controls',\n\twithDuotoneControls\n);\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/editor/duotone/with-styles',\n\twithDuotoneStyles\n);\n"]}
@@ -5,13 +5,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.FONT_WEIGHT_SUPPORT_KEY = exports.FONT_STYLE_SUPPORT_KEY = void 0;
8
9
  exports.FontAppearanceEdit = FontAppearanceEdit;
9
- exports.useIsFontStyleDisabled = useIsFontStyleDisabled;
10
- exports.useIsFontWeightDisabled = useIsFontWeightDisabled;
11
- exports.useIsFontAppearanceDisabled = useIsFontAppearanceDisabled;
12
10
  exports.hasFontAppearanceValue = hasFontAppearanceValue;
13
11
  exports.resetFontAppearance = resetFontAppearance;
14
- exports.FONT_WEIGHT_SUPPORT_KEY = exports.FONT_STYLE_SUPPORT_KEY = void 0;
12
+ exports.useIsFontAppearanceDisabled = useIsFontAppearanceDisabled;
13
+ exports.useIsFontStyleDisabled = useIsFontStyleDisabled;
14
+ exports.useIsFontWeightDisabled = useIsFontWeightDisabled;
15
15
 
16
16
  var _element = require("@wordpress/element");
17
17
 
@@ -97,9 +97,10 @@ function FontAppearanceEdit(props) {
97
97
  */
98
98
 
99
99
 
100
- function useIsFontStyleDisabled({
101
- name: blockName
102
- } = {}) {
100
+ function useIsFontStyleDisabled() {
101
+ let {
102
+ name: blockName
103
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
103
104
  const styleSupport = (0, _blocks.hasBlockSupport)(blockName, FONT_STYLE_SUPPORT_KEY);
104
105
  const hasFontStyles = (0, _useSetting.default)('typography.fontStyle');
105
106
  return !styleSupport || !hasFontStyles;
@@ -115,9 +116,10 @@ function useIsFontStyleDisabled({
115
116
  */
116
117
 
117
118
 
118
- function useIsFontWeightDisabled({
119
- name: blockName
120
- } = {}) {
119
+ function useIsFontWeightDisabled() {
120
+ let {
121
+ name: blockName
122
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
121
123
  const weightSupport = (0, _blocks.hasBlockSupport)(blockName, FONT_WEIGHT_SUPPORT_KEY);
122
124
  const hasFontWeights = (0, _useSetting.default)('typography.fontWeight');
123
125
  return !weightSupport || !hasFontWeights;
@@ -165,10 +167,11 @@ function hasFontAppearanceValue(props) {
165
167
  */
166
168
 
167
169
 
168
- function resetFontAppearance({
169
- attributes = {},
170
- setAttributes
171
- }) {
170
+ function resetFontAppearance(_ref) {
171
+ let {
172
+ attributes = {},
173
+ setAttributes
174
+ } = _ref;
172
175
  const {
173
176
  style
174
177
  } = attributes;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/font-appearance.js"],"names":["FONT_STYLE_SUPPORT_KEY","FONT_WEIGHT_SUPPORT_KEY","FontAppearanceEdit","props","attributes","style","setAttributes","hasFontStyles","useIsFontStyleDisabled","hasFontWeights","useIsFontWeightDisabled","onChange","newStyles","typography","fontStyle","fontWeight","name","blockName","styleSupport","weightSupport","useIsFontAppearanceDisabled","stylesDisabled","weightsDisabled","hasFontAppearanceValue","resetFontAppearance","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { hasBlockSupport } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport FontAppearanceControl from '../components/font-appearance-control';\nimport useSetting from '../components/use-setting';\nimport { cleanEmptyObject } from './utils';\n\n/**\n * Key within block settings' support array indicating support for font style.\n */\nexport const FONT_STYLE_SUPPORT_KEY = 'typography.__experimentalFontStyle';\n\n/**\n * Key within block settings' support array indicating support for font weight.\n */\nexport const FONT_WEIGHT_SUPPORT_KEY = 'typography.__experimentalFontWeight';\n\n/**\n * Inspector control panel containing the font appearance options.\n *\n * @param {Object} props Block properties.\n *\n * @return {WPElement} Font appearance edit element.\n */\nexport function FontAppearanceEdit( props ) {\n\tconst {\n\t\tattributes: { style },\n\t\tsetAttributes,\n\t} = props;\n\n\tconst hasFontStyles = ! useIsFontStyleDisabled( props );\n\tconst hasFontWeights = ! useIsFontWeightDisabled( props );\n\n\tconst onChange = ( newStyles ) => {\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t...style,\n\t\t\t\ttypography: {\n\t\t\t\t\t...style?.typography,\n\t\t\t\t\tfontStyle: newStyles.fontStyle,\n\t\t\t\t\tfontWeight: newStyles.fontWeight,\n\t\t\t\t},\n\t\t\t} ),\n\t\t} );\n\t};\n\n\tconst fontStyle = style?.typography?.fontStyle;\n\tconst fontWeight = style?.typography?.fontWeight;\n\n\treturn (\n\t\t<FontAppearanceControl\n\t\t\tonChange={ onChange }\n\t\t\thasFontStyles={ hasFontStyles }\n\t\t\thasFontWeights={ hasFontWeights }\n\t\t\tvalue={ { fontStyle, fontWeight } }\n\t\t/>\n\t);\n}\n\n/**\n * Checks if font style support has been disabled either by not opting in for\n * support or by failing to provide preset styles.\n *\n * @param {Object} props Block properties.\n * @param {string} props.name Name for the block type.\n *\n * @return {boolean} Whether font style support has been disabled.\n */\nexport function useIsFontStyleDisabled( { name: blockName } = {} ) {\n\tconst styleSupport = hasBlockSupport( blockName, FONT_STYLE_SUPPORT_KEY );\n\tconst hasFontStyles = useSetting( 'typography.fontStyle' );\n\n\treturn ! styleSupport || ! hasFontStyles;\n}\n\n/**\n * Checks if font weight support has been disabled either by not opting in for\n * support or by failing to provide preset weights.\n *\n * @param {Object} props Block properties.\n * @param {string} props.name Name for the block type.\n *\n * @return {boolean} Whether font weight support has been disabled.\n */\nexport function useIsFontWeightDisabled( { name: blockName } = {} ) {\n\tconst weightSupport = hasBlockSupport( blockName, FONT_WEIGHT_SUPPORT_KEY );\n\tconst hasFontWeights = useSetting( 'typography.fontWeight' );\n\n\treturn ! weightSupport || ! hasFontWeights;\n}\n\n/**\n * Checks if font appearance support has been disabled.\n *\n * @param {Object} props Block properties.\n *\n * @return {boolean} Whether font appearance support has been disabled.\n */\nexport function useIsFontAppearanceDisabled( props ) {\n\tconst stylesDisabled = useIsFontStyleDisabled( props );\n\tconst weightsDisabled = useIsFontWeightDisabled( props );\n\n\treturn stylesDisabled && weightsDisabled;\n}\n\n/**\n * Checks if there is either a font style or weight value set within the\n * typography styles.\n *\n * @param {Object} props Block props.\n * @return {boolean} Whether or not the block has a font style or weight.\n */\nexport function hasFontAppearanceValue( props ) {\n\tconst { fontStyle, fontWeight } = props.attributes.style?.typography || {};\n\treturn !! fontStyle || !! fontWeight;\n}\n\n/**\n * Resets the font style and weight block support attributes. This can be used\n * when disabling the font appearance support controls for a block via a\n * progressive discovery panel.\n *\n * @param {Object} props Block props.\n * @param {Object} props.attributes Block's attributes.\n * @param {Object} props.setAttributes Function to set block's attributes.\n */\nexport function resetFontAppearance( { attributes = {}, setAttributes } ) {\n\tconst { style } = attributes;\n\n\tsetAttributes( {\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...style,\n\t\t\ttypography: {\n\t\t\t\t...style?.typography,\n\t\t\t\tfontStyle: undefined,\n\t\t\t\tfontWeight: undefined,\n\t\t\t},\n\t\t} ),\n\t} );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/font-appearance.js"],"names":["FONT_STYLE_SUPPORT_KEY","FONT_WEIGHT_SUPPORT_KEY","FontAppearanceEdit","props","attributes","style","setAttributes","hasFontStyles","useIsFontStyleDisabled","hasFontWeights","useIsFontWeightDisabled","onChange","newStyles","typography","fontStyle","fontWeight","name","blockName","styleSupport","weightSupport","useIsFontAppearanceDisabled","stylesDisabled","weightsDisabled","hasFontAppearanceValue","resetFontAppearance","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { hasBlockSupport } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport FontAppearanceControl from '../components/font-appearance-control';\nimport useSetting from '../components/use-setting';\nimport { cleanEmptyObject } from './utils';\n\n/**\n * Key within block settings' support array indicating support for font style.\n */\nexport const FONT_STYLE_SUPPORT_KEY = 'typography.__experimentalFontStyle';\n\n/**\n * Key within block settings' support array indicating support for font weight.\n */\nexport const FONT_WEIGHT_SUPPORT_KEY = 'typography.__experimentalFontWeight';\n\n/**\n * Inspector control panel containing the font appearance options.\n *\n * @param {Object} props Block properties.\n *\n * @return {WPElement} Font appearance edit element.\n */\nexport function FontAppearanceEdit( props ) {\n\tconst {\n\t\tattributes: { style },\n\t\tsetAttributes,\n\t} = props;\n\n\tconst hasFontStyles = ! useIsFontStyleDisabled( props );\n\tconst hasFontWeights = ! useIsFontWeightDisabled( props );\n\n\tconst onChange = ( newStyles ) => {\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t...style,\n\t\t\t\ttypography: {\n\t\t\t\t\t...style?.typography,\n\t\t\t\t\tfontStyle: newStyles.fontStyle,\n\t\t\t\t\tfontWeight: newStyles.fontWeight,\n\t\t\t\t},\n\t\t\t} ),\n\t\t} );\n\t};\n\n\tconst fontStyle = style?.typography?.fontStyle;\n\tconst fontWeight = style?.typography?.fontWeight;\n\n\treturn (\n\t\t<FontAppearanceControl\n\t\t\tonChange={ onChange }\n\t\t\thasFontStyles={ hasFontStyles }\n\t\t\thasFontWeights={ hasFontWeights }\n\t\t\tvalue={ { fontStyle, fontWeight } }\n\t\t/>\n\t);\n}\n\n/**\n * Checks if font style support has been disabled either by not opting in for\n * support or by failing to provide preset styles.\n *\n * @param {Object} props Block properties.\n * @param {string} props.name Name for the block type.\n *\n * @return {boolean} Whether font style support has been disabled.\n */\nexport function useIsFontStyleDisabled( { name: blockName } = {} ) {\n\tconst styleSupport = hasBlockSupport( blockName, FONT_STYLE_SUPPORT_KEY );\n\tconst hasFontStyles = useSetting( 'typography.fontStyle' );\n\n\treturn ! styleSupport || ! hasFontStyles;\n}\n\n/**\n * Checks if font weight support has been disabled either by not opting in for\n * support or by failing to provide preset weights.\n *\n * @param {Object} props Block properties.\n * @param {string} props.name Name for the block type.\n *\n * @return {boolean} Whether font weight support has been disabled.\n */\nexport function useIsFontWeightDisabled( { name: blockName } = {} ) {\n\tconst weightSupport = hasBlockSupport( blockName, FONT_WEIGHT_SUPPORT_KEY );\n\tconst hasFontWeights = useSetting( 'typography.fontWeight' );\n\n\treturn ! weightSupport || ! hasFontWeights;\n}\n\n/**\n * Checks if font appearance support has been disabled.\n *\n * @param {Object} props Block properties.\n *\n * @return {boolean} Whether font appearance support has been disabled.\n */\nexport function useIsFontAppearanceDisabled( props ) {\n\tconst stylesDisabled = useIsFontStyleDisabled( props );\n\tconst weightsDisabled = useIsFontWeightDisabled( props );\n\n\treturn stylesDisabled && weightsDisabled;\n}\n\n/**\n * Checks if there is either a font style or weight value set within the\n * typography styles.\n *\n * @param {Object} props Block props.\n * @return {boolean} Whether or not the block has a font style or weight.\n */\nexport function hasFontAppearanceValue( props ) {\n\tconst { fontStyle, fontWeight } = props.attributes.style?.typography || {};\n\treturn !! fontStyle || !! fontWeight;\n}\n\n/**\n * Resets the font style and weight block support attributes. This can be used\n * when disabling the font appearance support controls for a block via a\n * progressive discovery panel.\n *\n * @param {Object} props Block props.\n * @param {Object} props.attributes Block's attributes.\n * @param {Object} props.setAttributes Function to set block's attributes.\n */\nexport function resetFontAppearance( { attributes = {}, setAttributes } ) {\n\tconst { style } = attributes;\n\n\tsetAttributes( {\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...style,\n\t\t\ttypography: {\n\t\t\t\t...style?.typography,\n\t\t\t\tfontStyle: undefined,\n\t\t\t\tfontWeight: undefined,\n\t\t\t},\n\t\t} ),\n\t} );\n}\n"]}
@@ -5,11 +5,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.FONT_FAMILY_SUPPORT_KEY = void 0;
8
9
  exports.FontFamilyEdit = FontFamilyEdit;
9
- exports.useIsFontFamilyDisabled = useIsFontFamilyDisabled;
10
10
  exports.hasFontFamilyValue = hasFontFamilyValue;
11
11
  exports.resetFontFamily = resetFontFamily;
12
- exports.FONT_FAMILY_SUPPORT_KEY = void 0;
12
+ exports.useIsFontFamilyDisabled = useIsFontFamilyDisabled;
13
13
 
14
14
  var _element = require("@wordpress/element");
15
15
 
@@ -123,23 +123,30 @@ function addEditProps(settings) {
123
123
  return settings;
124
124
  }
125
125
 
126
- function FontFamilyEdit({
127
- setAttributes,
128
- attributes: {
129
- fontFamily
130
- }
131
- }) {
126
+ function FontFamilyEdit(_ref) {
132
127
  var _find;
133
128
 
129
+ let {
130
+ setAttributes,
131
+ attributes: {
132
+ fontFamily
133
+ }
134
+ } = _ref;
134
135
  const fontFamilies = (0, _useSetting.default)('typography.fontFamilies');
135
- const value = (_find = (0, _lodash.find)(fontFamilies, ({
136
- slug
137
- }) => fontFamily === slug)) === null || _find === void 0 ? void 0 : _find.fontFamily;
136
+ const value = (_find = (0, _lodash.find)(fontFamilies, _ref2 => {
137
+ let {
138
+ slug
139
+ } = _ref2;
140
+ return fontFamily === slug;
141
+ })) === null || _find === void 0 ? void 0 : _find.fontFamily;
138
142
 
139
143
  function onChange(newValue) {
140
- const predefinedFontFamily = (0, _lodash.find)(fontFamilies, ({
141
- fontFamily: f
142
- }) => f === newValue);
144
+ const predefinedFontFamily = (0, _lodash.find)(fontFamilies, _ref3 => {
145
+ let {
146
+ fontFamily: f
147
+ } = _ref3;
148
+ return f === newValue;
149
+ });
143
150
  setAttributes({
144
151
  fontFamily: predefinedFontFamily === null || predefinedFontFamily === void 0 ? void 0 : predefinedFontFamily.slug
145
152
  });
@@ -160,9 +167,10 @@ function FontFamilyEdit({
160
167
  */
161
168
 
162
169
 
163
- function useIsFontFamilyDisabled({
164
- name
165
- }) {
170
+ function useIsFontFamilyDisabled(_ref4) {
171
+ let {
172
+ name
173
+ } = _ref4;
166
174
  const fontFamilies = (0, _useSetting.default)('typography.fontFamilies');
167
175
  return !fontFamilies || fontFamilies.length === 0 || !(0, _blocks.hasBlockSupport)(name, FONT_FAMILY_SUPPORT_KEY);
168
176
  }
@@ -187,9 +195,10 @@ function hasFontFamilyValue(props) {
187
195
  */
188
196
 
189
197
 
190
- function resetFontFamily({
191
- setAttributes
192
- }) {
198
+ function resetFontFamily(_ref5) {
199
+ let {
200
+ setAttributes
201
+ } = _ref5;
193
202
  setAttributes({
194
203
  fontFamily: undefined
195
204
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/font-family.js"],"names":["FONT_FAMILY_SUPPORT_KEY","addAttributes","settings","attributes","fontFamily","Object","assign","type","addSaveProps","props","blockType","classes","TokenList","className","add","newClassName","value","undefined","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","FontFamilyEdit","setAttributes","fontFamilies","slug","onChange","newValue","predefinedFontFamily","f","useIsFontFamilyDisabled","name","length","hasFontFamilyValue","resetFontFamily"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find, kebabCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport TokenList from '@wordpress/token-list';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../components/use-setting';\nimport FontFamilyControl from '../components/font-family';\n\nexport const FONT_FAMILY_SUPPORT_KEY = 'typography.__experimentalFontFamily';\n\n/**\n * Filters registered block settings, extending attributes to include\n * the `fontFamily` attribute.\n *\n * @param {Object} settings Original block settings\n * @return {Object} Filtered block settings\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasBlockSupport( settings, FONT_FAMILY_SUPPORT_KEY ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify a default value if needed.\n\tif ( ! settings.attributes.fontFamily ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tfontFamily: {\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 font family.\n *\n * @param {Object} props Additional props applied to save element\n * @param {Object} blockType Block type\n * @param {Object} attributes Block attributes\n * @return {Object} Filtered props applied to save element\n */\nfunction addSaveProps( props, blockType, attributes ) {\n\tif ( ! hasBlockSupport( blockType, FONT_FAMILY_SUPPORT_KEY ) ) {\n\t\treturn props;\n\t}\n\n\tif (\n\t\thasBlockSupport(\n\t\t\tblockType,\n\t\t\t'typography.__experimentalSkipSerialization'\n\t\t)\n\t) {\n\t\treturn props;\n\t}\n\n\tif ( ! attributes?.fontFamily ) {\n\t\treturn props;\n\t}\n\n\t// Use TokenList to dedupe classes.\n\tconst classes = new TokenList( props.className );\n\tclasses.add( `has-${ kebabCase( attributes?.fontFamily ) }-font-family` );\n\tconst newClassName = classes.value;\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Filters registered block settings to expand the block edit wrapper\n * by applying the desired styles and classnames.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addEditProps( settings ) {\n\tif ( ! hasBlockSupport( settings, FONT_FAMILY_SUPPORT_KEY ) ) {\n\t\treturn settings;\n\t}\n\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\nexport function FontFamilyEdit( {\n\tsetAttributes,\n\tattributes: { fontFamily },\n} ) {\n\tconst fontFamilies = useSetting( 'typography.fontFamilies' );\n\n\tconst value = find( fontFamilies, ( { slug } ) => fontFamily === slug )\n\t\t?.fontFamily;\n\n\tfunction onChange( newValue ) {\n\t\tconst predefinedFontFamily = find(\n\t\t\tfontFamilies,\n\t\t\t( { fontFamily: f } ) => f === newValue\n\t\t);\n\t\tsetAttributes( {\n\t\t\tfontFamily: predefinedFontFamily?.slug,\n\t\t} );\n\t}\n\n\treturn (\n\t\t<FontFamilyControl\n\t\t\tclassName=\"block-editor-hooks-font-family-control\"\n\t\t\tfontFamilies={ fontFamilies }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\n/**\n * Custom hook that checks if font-family functionality is disabled.\n *\n * @param {string} name The name of the block.\n * @return {boolean} Whether setting is disabled.\n */\nexport function useIsFontFamilyDisabled( { name } ) {\n\tconst fontFamilies = useSetting( 'typography.fontFamilies' );\n\treturn (\n\t\t! fontFamilies ||\n\t\tfontFamilies.length === 0 ||\n\t\t! hasBlockSupport( name, FONT_FAMILY_SUPPORT_KEY )\n\t);\n}\n\n/**\n * Checks if there is a current value set for the font family block support.\n *\n * @param {Object} props Block props.\n * @return {boolean} Whether or not the block has a font family value set.\n */\nexport function hasFontFamilyValue( props ) {\n\treturn !! props.attributes.fontFamily;\n}\n\n/**\n * Resets the font family block support attribute. This can be used when\n * disabling the font family support controls for a block via a progressive\n * discovery panel.\n *\n * @param {Object} props Block props.\n * @param {Object} props.setAttributes Function to set block's attributes.\n */\nexport function resetFontFamily( { setAttributes } ) {\n\tsetAttributes( { fontFamily: undefined } );\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/fontFamily/addAttribute',\n\taddAttributes\n);\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/fontFamily/addSaveProps',\n\taddSaveProps\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/fontFamily/addEditProps',\n\taddEditProps\n);\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/font-family.js"],"names":["FONT_FAMILY_SUPPORT_KEY","addAttributes","settings","attributes","fontFamily","Object","assign","type","addSaveProps","props","blockType","classes","TokenList","className","add","newClassName","value","undefined","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","FontFamilyEdit","setAttributes","fontFamilies","slug","onChange","newValue","predefinedFontFamily","f","useIsFontFamilyDisabled","name","length","hasFontFamilyValue","resetFontFamily"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find, kebabCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport TokenList from '@wordpress/token-list';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../components/use-setting';\nimport FontFamilyControl from '../components/font-family';\n\nexport const FONT_FAMILY_SUPPORT_KEY = 'typography.__experimentalFontFamily';\n\n/**\n * Filters registered block settings, extending attributes to include\n * the `fontFamily` attribute.\n *\n * @param {Object} settings Original block settings\n * @return {Object} Filtered block settings\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasBlockSupport( settings, FONT_FAMILY_SUPPORT_KEY ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify a default value if needed.\n\tif ( ! settings.attributes.fontFamily ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tfontFamily: {\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 font family.\n *\n * @param {Object} props Additional props applied to save element\n * @param {Object} blockType Block type\n * @param {Object} attributes Block attributes\n * @return {Object} Filtered props applied to save element\n */\nfunction addSaveProps( props, blockType, attributes ) {\n\tif ( ! hasBlockSupport( blockType, FONT_FAMILY_SUPPORT_KEY ) ) {\n\t\treturn props;\n\t}\n\n\tif (\n\t\thasBlockSupport(\n\t\t\tblockType,\n\t\t\t'typography.__experimentalSkipSerialization'\n\t\t)\n\t) {\n\t\treturn props;\n\t}\n\n\tif ( ! attributes?.fontFamily ) {\n\t\treturn props;\n\t}\n\n\t// Use TokenList to dedupe classes.\n\tconst classes = new TokenList( props.className );\n\tclasses.add( `has-${ kebabCase( attributes?.fontFamily ) }-font-family` );\n\tconst newClassName = classes.value;\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Filters registered block settings to expand the block edit wrapper\n * by applying the desired styles and classnames.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addEditProps( settings ) {\n\tif ( ! hasBlockSupport( settings, FONT_FAMILY_SUPPORT_KEY ) ) {\n\t\treturn settings;\n\t}\n\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\nexport function FontFamilyEdit( {\n\tsetAttributes,\n\tattributes: { fontFamily },\n} ) {\n\tconst fontFamilies = useSetting( 'typography.fontFamilies' );\n\n\tconst value = find( fontFamilies, ( { slug } ) => fontFamily === slug )\n\t\t?.fontFamily;\n\n\tfunction onChange( newValue ) {\n\t\tconst predefinedFontFamily = find(\n\t\t\tfontFamilies,\n\t\t\t( { fontFamily: f } ) => f === newValue\n\t\t);\n\t\tsetAttributes( {\n\t\t\tfontFamily: predefinedFontFamily?.slug,\n\t\t} );\n\t}\n\n\treturn (\n\t\t<FontFamilyControl\n\t\t\tclassName=\"block-editor-hooks-font-family-control\"\n\t\t\tfontFamilies={ fontFamilies }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\n/**\n * Custom hook that checks if font-family functionality is disabled.\n *\n * @param {string} name The name of the block.\n * @return {boolean} Whether setting is disabled.\n */\nexport function useIsFontFamilyDisabled( { name } ) {\n\tconst fontFamilies = useSetting( 'typography.fontFamilies' );\n\treturn (\n\t\t! fontFamilies ||\n\t\tfontFamilies.length === 0 ||\n\t\t! hasBlockSupport( name, FONT_FAMILY_SUPPORT_KEY )\n\t);\n}\n\n/**\n * Checks if there is a current value set for the font family block support.\n *\n * @param {Object} props Block props.\n * @return {boolean} Whether or not the block has a font family value set.\n */\nexport function hasFontFamilyValue( props ) {\n\treturn !! props.attributes.fontFamily;\n}\n\n/**\n * Resets the font family block support attribute. This can be used when\n * disabling the font family support controls for a block via a progressive\n * discovery panel.\n *\n * @param {Object} props Block props.\n * @param {Object} props.setAttributes Function to set block's attributes.\n */\nexport function resetFontFamily( { setAttributes } ) {\n\tsetAttributes( { fontFamily: undefined } );\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/fontFamily/addAttribute',\n\taddAttributes\n);\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/fontFamily/addSaveProps',\n\taddSaveProps\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/fontFamily/addEditProps',\n\taddEditProps\n);\n"]}
@@ -5,11 +5,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.FONT_SIZE_SUPPORT_KEY = void 0;
8
9
  exports.FontSizeEdit = FontSizeEdit;
9
10
  exports.hasFontSizeValue = hasFontSizeValue;
10
11
  exports.resetFontSize = resetFontSize;
11
12
  exports.useIsFontSizeDisabled = useIsFontSizeDisabled;
12
- exports.FONT_SIZE_SUPPORT_KEY = void 0;
13
13
 
14
14
  var _element = require("@wordpress/element");
15
15
 
@@ -187,10 +187,11 @@ function hasFontSizeValue(props) {
187
187
  */
188
188
 
189
189
 
190
- function resetFontSize({
191
- attributes = {},
192
- setAttributes
193
- }) {
190
+ function resetFontSize(_ref) {
191
+ let {
192
+ attributes = {},
193
+ setAttributes
194
+ } = _ref;
194
195
  const {
195
196
  style
196
197
  } = attributes;
@@ -211,9 +212,10 @@ function resetFontSize({
211
212
  */
212
213
 
213
214
 
214
- function useIsFontSizeDisabled({
215
- name: blockName
216
- } = {}) {
215
+ function useIsFontSizeDisabled() {
216
+ let {
217
+ name: blockName
218
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
217
219
  const fontSizes = (0, _useSetting.default)('typography.fontSizes');
218
220
  const hasFontSizes = !!(fontSizes !== null && fontSizes !== void 0 && fontSizes.length);
219
221
  return !(0, _blocks.hasBlockSupport)(blockName, FONT_SIZE_SUPPORT_KEY) || !hasFontSizes;