@wordpress/block-editor 12.23.0 → 12.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1403) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +4 -0
  3. package/build/autocompleters/block.js.map +1 -1
  4. package/build/autocompleters/link.js.map +1 -1
  5. package/build/components/alignment-control/index.js.map +1 -1
  6. package/build/components/alignment-control/ui.js.map +1 -1
  7. package/build/components/autocomplete/index.js.map +1 -1
  8. package/build/components/block-actions/index.js.map +1 -1
  9. package/build/components/block-alignment-control/constants.js.map +1 -1
  10. package/build/components/block-alignment-control/index.js.map +1 -1
  11. package/build/components/block-alignment-control/ui.js.map +1 -1
  12. package/build/components/block-alignment-control/ui.native.js.map +1 -1
  13. package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
  14. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  15. package/build/components/block-bindings-toolbar-indicator/index.js.map +1 -1
  16. package/build/components/block-breadcrumb/index.js.map +1 -1
  17. package/build/components/block-canvas/index.js.map +1 -1
  18. package/build/components/block-caption/index.native.js.map +1 -1
  19. package/build/components/block-card/index.js.map +1 -1
  20. package/build/components/block-compare/block-view.js.map +1 -1
  21. package/build/components/block-compare/index.js.map +1 -1
  22. package/build/components/block-content-overlay/index.js.map +1 -1
  23. package/build/components/block-context/index.js.map +1 -1
  24. package/build/components/block-controls/fill.js.map +1 -1
  25. package/build/components/block-controls/groups.js.map +1 -1
  26. package/build/components/block-controls/hook.js.map +1 -1
  27. package/build/components/block-controls/index.js.map +1 -1
  28. package/build/components/block-controls/slot.js.map +1 -1
  29. package/build/components/block-controls/slot.native.js.map +1 -1
  30. package/build/components/block-controls/use-has-block-controls.js.map +1 -1
  31. package/build/components/block-draggable/draggable-chip.js.map +1 -1
  32. package/build/components/block-draggable/draggable-chip.native.js.map +1 -1
  33. package/build/components/block-draggable/dropping-insertion-point.native.js +1 -1
  34. package/build/components/block-draggable/dropping-insertion-point.native.js.map +1 -1
  35. package/build/components/block-draggable/index.js.map +1 -1
  36. package/build/components/block-draggable/index.native.js +1 -1
  37. package/build/components/block-draggable/index.native.js.map +1 -1
  38. package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  39. package/build/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -1
  40. package/build/components/block-edit/context.js +2 -1
  41. package/build/components/block-edit/context.js.map +1 -1
  42. package/build/components/block-edit/edit.js.map +1 -1
  43. package/build/components/block-edit/edit.native.js.map +1 -1
  44. package/build/components/block-edit/index.js +4 -2
  45. package/build/components/block-edit/index.js.map +1 -1
  46. package/build/components/block-edit-visually-button/index.js.map +1 -1
  47. package/build/components/block-editing-mode/index.js.map +1 -1
  48. package/build/components/block-full-height-alignment-control/index.js.map +1 -1
  49. package/build/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -1
  50. package/build/components/block-heading-level-dropdown/index.js.map +1 -1
  51. package/build/components/block-heading-level-dropdown/index.native.js.map +1 -1
  52. package/build/components/block-icon/index.js.map +1 -1
  53. package/build/components/block-icon/index.native.js.map +1 -1
  54. package/build/components/block-info-slot-fill/index.js.map +1 -1
  55. package/build/components/block-inspector/index.js +5 -4
  56. package/build/components/block-inspector/index.js.map +1 -1
  57. package/build/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -1
  58. package/build/components/block-list/block-crash-boundary.js.map +1 -1
  59. package/build/components/block-list/block-crash-boundary.native.js.map +1 -1
  60. package/build/components/block-list/block-crash-warning.js.map +1 -1
  61. package/build/components/block-list/block-crash-warning.native.js.map +1 -1
  62. package/build/components/block-list/block-html.js.map +1 -1
  63. package/build/components/block-list/block-invalid-warning.js.map +1 -1
  64. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  65. package/build/components/block-list/block-list-context.native.js.map +1 -1
  66. package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
  67. package/build/components/block-list/block-list-item.native.js.map +1 -1
  68. package/build/components/block-list/block-outline.native.js.map +1 -1
  69. package/build/components/block-list/block-selection-button.native.js.map +1 -1
  70. package/build/components/block-list/block.js +44 -26
  71. package/build/components/block-list/block.js.map +1 -1
  72. package/build/components/block-list/block.native.js +2 -2
  73. package/build/components/block-list/block.native.js.map +1 -1
  74. package/build/components/block-list/grid-item.native.js.map +1 -1
  75. package/build/components/block-list/index.js +16 -5
  76. package/build/components/block-list/index.js.map +1 -1
  77. package/build/components/block-list/index.native.js.map +1 -1
  78. package/build/components/block-list/insertion-point.native.js.map +1 -1
  79. package/build/components/block-list/layout.js.map +1 -1
  80. package/build/components/block-list/private-block-context.js.map +1 -1
  81. package/build/components/block-list/subdirectory-icon.js.map +1 -1
  82. package/build/components/block-list/use-block-props/index.js +2 -1
  83. package/build/components/block-list/use-block-props/index.js.map +1 -1
  84. package/build/components/block-list/use-block-props/index.native.js.map +1 -1
  85. package/build/components/block-list/use-block-props/use-block-moving-mode-class-names.js.map +1 -1
  86. package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  87. package/build/components/block-list/use-block-props/use-focus-first-element.js +3 -2
  88. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  89. package/build/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
  90. package/build/components/block-list/use-block-props/use-intersection-observer.js.map +1 -1
  91. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  92. package/build/components/block-list/use-block-props/use-nav-mode-exit.js.map +1 -1
  93. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  94. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  95. package/build/components/block-list/use-scroll-upon-insertion.native.js.map +1 -1
  96. package/build/components/block-list-appender/index.js.map +1 -1
  97. package/build/components/block-list-appender/index.native.js.map +1 -1
  98. package/build/components/block-lock/index.js.map +1 -1
  99. package/build/components/block-lock/menu-item.js.map +1 -1
  100. package/build/components/block-lock/modal.js.map +1 -1
  101. package/build/components/block-lock/toolbar.js.map +1 -1
  102. package/build/components/block-lock/use-block-lock.js.map +1 -1
  103. package/build/components/block-media-update-progress/index.native.js.map +1 -1
  104. package/build/components/block-mover/button.js.map +1 -1
  105. package/build/components/block-mover/index.js.map +1 -1
  106. package/build/components/block-mover/index.native.js.map +1 -1
  107. package/build/components/block-mover/mover-description.js.map +1 -1
  108. package/build/components/block-mover/mover-description.native.js.map +1 -1
  109. package/build/components/block-navigation/dropdown.js.map +1 -1
  110. package/build/components/block-parent-selector/index.js.map +1 -1
  111. package/build/components/block-pattern-setup/constants.js.map +1 -1
  112. package/build/components/block-pattern-setup/index.js.map +1 -1
  113. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  114. package/build/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
  115. package/build/components/block-patterns-list/index.js.map +1 -1
  116. package/build/components/block-patterns-paging/index.js +8 -4
  117. package/build/components/block-patterns-paging/index.js.map +1 -1
  118. package/build/components/block-popover/cover.js.map +1 -1
  119. package/build/components/block-popover/drop-zone.js.map +1 -1
  120. package/build/components/block-popover/inbetween.js.map +1 -1
  121. package/build/components/block-popover/index.js.map +1 -1
  122. package/build/components/block-popover/use-popover-scroll.js.map +1 -1
  123. package/build/components/block-preview/auto.js.map +1 -1
  124. package/build/components/block-preview/index.js.map +1 -1
  125. package/build/components/block-quick-navigation/index.js.map +1 -1
  126. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  127. package/build/components/block-rename/index.js.map +1 -1
  128. package/build/components/block-rename/is-empty-string.js.map +1 -1
  129. package/build/components/block-rename/modal.js +13 -9
  130. package/build/components/block-rename/modal.js.map +1 -1
  131. package/build/components/block-rename/rename-control.js +3 -1
  132. package/build/components/block-rename/rename-control.js.map +1 -1
  133. package/build/components/block-rename/use-block-rename.js.map +1 -1
  134. package/build/components/block-selection-clearer/index.js.map +1 -1
  135. package/build/components/block-settings/button.native.js.map +1 -1
  136. package/build/components/block-settings/container.native.js.map +1 -1
  137. package/build/components/block-settings/index.native.js +1 -1
  138. package/build/components/block-settings/index.native.js.map +1 -1
  139. package/build/components/block-settings-menu/block-html-convert-button.js.map +1 -1
  140. package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  141. package/build/components/block-settings-menu/block-parent-selector-menu-item.js.map +1 -1
  142. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  143. package/build/components/block-settings-menu/block-settings-menu-first-item.js.map +1 -1
  144. package/build/components/block-settings-menu/index.js.map +1 -1
  145. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  146. package/build/components/block-styles/index.js.map +1 -1
  147. package/build/components/block-styles/index.native.js.map +1 -1
  148. package/build/components/block-styles/menu-items.js.map +1 -1
  149. package/build/components/block-styles/preview-panel.js.map +1 -1
  150. package/build/components/block-styles/preview.native.js.map +1 -1
  151. package/build/components/block-styles/use-styles-for-block.js.map +1 -1
  152. package/build/components/block-styles/utils.js.map +1 -1
  153. package/build/components/block-switcher/block-styles-menu.js.map +1 -1
  154. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  155. package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  156. package/build/components/block-switcher/block-variation-transformations.js.map +1 -1
  157. package/build/components/block-switcher/index.js.map +1 -1
  158. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  159. package/build/components/block-switcher/preview-block-popover.js.map +1 -1
  160. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  161. package/build/components/block-switcher/utils.js.map +1 -1
  162. package/build/components/block-title/index.js.map +1 -1
  163. package/build/components/block-title/use-block-display-title.js.map +1 -1
  164. package/build/components/block-toolbar/block-name-context.js.map +1 -1
  165. package/build/components/block-toolbar/block-toolbar-last-item.js.map +1 -1
  166. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  167. package/build/components/block-toolbar/index.js +1 -1
  168. package/build/components/block-toolbar/index.js.map +1 -1
  169. package/build/components/block-toolbar/index.native.js.map +1 -1
  170. package/build/components/block-toolbar/shuffle.js.map +1 -1
  171. package/build/components/block-toolbar/use-has-block-toolbar.js +6 -3
  172. package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  173. package/build/components/block-toolbar/utils.js.map +1 -1
  174. package/build/components/block-tools/block-selection-button.js +16 -12
  175. package/build/components/block-tools/block-selection-button.js.map +1 -1
  176. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  177. package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
  178. package/build/components/block-tools/empty-block-inserter.js.map +1 -1
  179. package/build/components/block-tools/index.js +1 -1
  180. package/build/components/block-tools/index.js.map +1 -1
  181. package/build/components/block-tools/insertion-point.js.map +1 -1
  182. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  183. package/build/components/block-tools/use-selected-block-tool-props.js.map +1 -1
  184. package/build/components/block-tools/use-show-block-tools.js +7 -13
  185. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  186. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  187. package/build/components/block-types-list/index.js.map +1 -1
  188. package/build/components/block-types-list/index.native.js.map +1 -1
  189. package/build/components/block-variation-picker/index.js.map +1 -1
  190. package/build/components/block-variation-picker/index.native.js.map +1 -1
  191. package/build/components/block-variation-transforms/index.js +4 -1
  192. package/build/components/block-variation-transforms/index.js.map +1 -1
  193. package/build/components/block-vertical-alignment-control/icons.js.map +1 -1
  194. package/build/components/block-vertical-alignment-control/index.js.map +1 -1
  195. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  196. package/build/components/border-radius-control/all-input-control.js.map +1 -1
  197. package/build/components/border-radius-control/index.js.map +1 -1
  198. package/build/components/border-radius-control/input-controls.js.map +1 -1
  199. package/build/components/border-radius-control/linked-button.js.map +1 -1
  200. package/build/components/border-radius-control/utils.js.map +1 -1
  201. package/build/components/button-block-appender/index.js.map +1 -1
  202. package/build/components/button-block-appender/index.native.js +11 -1
  203. package/build/components/button-block-appender/index.native.js.map +1 -1
  204. package/build/components/caption/index.native.js.map +1 -1
  205. package/build/components/child-layout-control/index.js.map +1 -1
  206. package/build/components/color-palette/control.js.map +1 -1
  207. package/build/components/color-palette/index.js.map +1 -1
  208. package/build/components/color-palette/with-color-context.js.map +1 -1
  209. package/build/components/color-style-selector/index.js.map +1 -1
  210. package/build/components/colors/index.js +1 -1
  211. package/build/components/colors/index.js.map +1 -1
  212. package/build/components/colors/utils.js.map +1 -1
  213. package/build/components/colors/with-colors.js.map +1 -1
  214. package/build/components/colors-gradients/control.js.map +1 -1
  215. package/build/components/colors-gradients/dropdown.js.map +1 -1
  216. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  217. package/build/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  218. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  219. package/build/components/contrast-checker/index.js.map +1 -1
  220. package/build/components/contrast-checker/index.native.js.map +1 -1
  221. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  222. package/build/components/convert-to-group-buttons/index.native.js.map +1 -1
  223. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  224. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  225. package/build/components/copy-handler/index.js.map +1 -1
  226. package/build/components/date-format-picker/index.js.map +1 -1
  227. package/build/components/default-block-appender/index.js.map +1 -1
  228. package/build/components/default-block-appender/index.native.js.map +1 -1
  229. package/build/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
  230. package/build/components/dimensions-tool/index.js.map +1 -1
  231. package/build/components/dimensions-tool/scale-tool.js.map +1 -1
  232. package/build/components/dimensions-tool/width-height-tool.js +6 -2
  233. package/build/components/dimensions-tool/width-height-tool.js.map +1 -1
  234. package/build/components/duotone/utils.js.map +1 -1
  235. package/build/components/duotone-control/index.js.map +1 -1
  236. package/build/components/editable-text/index.js.map +1 -1
  237. package/build/components/editor-styles/index.js +2 -1
  238. package/build/components/editor-styles/index.js.map +1 -1
  239. package/build/components/floating-toolbar/index.native.js.map +1 -1
  240. package/build/components/floating-toolbar/nav-up-icon.js.map +1 -1
  241. package/build/components/font-appearance-control/index.js.map +1 -1
  242. package/build/components/font-family/index.js.map +1 -1
  243. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  244. package/build/components/font-sizes/font-size-picker.js.map +1 -1
  245. package/build/components/font-sizes/index.js.map +1 -1
  246. package/build/components/font-sizes/index.native.js.map +1 -1
  247. package/build/components/font-sizes/utils.js.map +1 -1
  248. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  249. package/build/components/global-styles/advanced-panel.js.map +1 -1
  250. package/build/components/global-styles/background-panel.js +19 -16
  251. package/build/components/global-styles/background-panel.js.map +1 -1
  252. package/build/components/global-styles/border-panel.js.map +1 -1
  253. package/build/components/global-styles/color-panel.js.map +1 -1
  254. package/build/components/global-styles/color-panel.native.js.map +1 -1
  255. package/build/components/global-styles/context.js.map +1 -1
  256. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  257. package/build/components/global-styles/filters-panel.js.map +1 -1
  258. package/build/components/global-styles/get-block-css-selector.js.map +1 -1
  259. package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
  260. package/build/components/global-styles/hooks.js.map +1 -1
  261. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  262. package/build/components/global-styles/index.js +1 -1
  263. package/build/components/global-styles/index.js.map +1 -1
  264. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  265. package/build/components/global-styles/typography-panel.js.map +1 -1
  266. package/build/components/global-styles/typography-utils.js.map +1 -1
  267. package/build/components/global-styles/use-global-styles-output.js +4 -4
  268. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  269. package/build/components/global-styles/utils.js.map +1 -1
  270. package/build/components/gradients/index.js.map +1 -1
  271. package/build/components/gradients/index.native.js.map +1 -1
  272. package/build/components/gradients/use-gradient.js.map +1 -1
  273. package/build/components/gradients/with-gradient.js.map +1 -1
  274. package/build/components/grid-visualizer/grid-item-resizer.js.map +1 -1
  275. package/build/components/grid-visualizer/grid-visualizer.js.map +1 -1
  276. package/build/components/grid-visualizer/index.js.map +1 -1
  277. package/build/components/grid-visualizer/utils.js.map +1 -1
  278. package/build/components/height-control/index.js.map +1 -1
  279. package/build/components/iframe/get-compatibility-styles.js.map +1 -1
  280. package/build/components/iframe/index.js +12 -13
  281. package/build/components/iframe/index.js.map +1 -1
  282. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  283. package/build/components/image-editor/constants.js.map +1 -1
  284. package/build/components/image-editor/context.js.map +1 -1
  285. package/build/components/image-editor/cropper.js +6 -2
  286. package/build/components/image-editor/cropper.js.map +1 -1
  287. package/build/components/image-editor/form-controls.js.map +1 -1
  288. package/build/components/image-editor/index.js +0 -2
  289. package/build/components/image-editor/index.js.map +1 -1
  290. package/build/components/image-editor/rotation-button.js.map +1 -1
  291. package/build/components/image-editor/use-save-image.js.map +1 -1
  292. package/build/components/image-editor/use-transform-image.js.map +1 -1
  293. package/build/components/image-editor/zoom-dropdown.js.map +1 -1
  294. package/build/components/image-link-destinations/index.native.js.map +1 -1
  295. package/build/components/image-size-control/index.js.map +1 -1
  296. package/build/components/image-size-control/use-dimension-handler.js.map +1 -1
  297. package/build/components/index.js +1 -1
  298. package/build/components/index.js.map +1 -1
  299. package/build/components/index.native.js +1 -1
  300. package/build/components/index.native.js.map +1 -1
  301. package/build/components/inner-blocks/button-block-appender.js.map +1 -1
  302. package/build/components/inner-blocks/constants.native.js.map +1 -1
  303. package/build/components/inner-blocks/default-block-appender.js.map +1 -1
  304. package/build/components/inner-blocks/index.js.map +1 -1
  305. package/build/components/inner-blocks/index.native.js.map +1 -1
  306. package/build/components/inner-blocks/use-block-context.js.map +1 -1
  307. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  308. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  309. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  310. package/build/components/inner-blocks/with-client-id.js.map +1 -1
  311. package/build/components/inserter/block-patterns-explorer/index.js.map +1 -1
  312. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  313. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  314. package/build/components/inserter/block-patterns-tab/index.js +31 -18
  315. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  316. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +2 -24
  317. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  318. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -3
  319. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  320. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  321. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  322. package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
  323. package/build/components/inserter/block-types-tab.js.map +1 -1
  324. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  325. package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  326. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  327. package/build/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
  328. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  329. package/build/components/inserter/hooks/use-patterns-paging.js.map +1 -1
  330. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  331. package/build/components/inserter/index.js.map +1 -1
  332. package/build/components/inserter/index.native.js.map +1 -1
  333. package/build/components/inserter/library.js.map +1 -1
  334. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  335. package/build/components/inserter/media-tab/index.js.map +1 -1
  336. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  337. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  338. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  339. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  340. package/build/components/inserter/media-tab/utils.js.map +1 -1
  341. package/build/components/inserter/menu.js +17 -11
  342. package/build/components/inserter/menu.js.map +1 -1
  343. package/build/components/inserter/menu.native.js.map +1 -1
  344. package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
  345. package/build/components/inserter/no-results.js.map +1 -1
  346. package/build/components/inserter/no-results.native.js.map +1 -1
  347. package/build/components/inserter/panel.js.map +1 -1
  348. package/build/components/inserter/preview-panel.js.map +1 -1
  349. package/build/components/inserter/quick-inserter.js.map +1 -1
  350. package/build/components/inserter/reusable-block-rename-hint.js.map +1 -1
  351. package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  352. package/build/components/inserter/search-items.js.map +1 -1
  353. package/build/components/inserter/search-results.js.map +1 -1
  354. package/build/components/inserter/search-results.native.js.map +1 -1
  355. package/build/components/inserter/tabs.js +7 -3
  356. package/build/components/inserter/tabs.js.map +1 -1
  357. package/build/components/inserter/tabs.native.js.map +1 -1
  358. package/build/components/inserter/tips.js.map +1 -1
  359. package/build/components/inserter/utils.native.js.map +1 -1
  360. package/build/components/inserter-button/index.native.js.map +1 -1
  361. package/build/components/inserter-button/sparkles.js.map +1 -1
  362. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  363. package/build/components/inserter-list-item/index.js.map +1 -1
  364. package/build/components/inserter-listbox/context.js.map +1 -1
  365. package/build/components/inserter-listbox/group.js.map +1 -1
  366. package/build/components/inserter-listbox/index.js.map +1 -1
  367. package/build/components/inserter-listbox/item.js.map +1 -1
  368. package/build/components/inserter-listbox/row.js.map +1 -1
  369. package/build/components/inserter-menu-extension/index.js.map +1 -1
  370. package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
  371. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  372. package/build/components/inspector-controls/fill.js.map +1 -1
  373. package/build/components/inspector-controls/fill.native.js.map +1 -1
  374. package/build/components/inspector-controls/groups.js.map +1 -1
  375. package/build/components/inspector-controls/index.js.map +1 -1
  376. package/build/components/inspector-controls/slot.js.map +1 -1
  377. package/build/components/inspector-controls/slot.native.js.map +1 -1
  378. package/build/components/inspector-controls-tabs/advanced-controls-panel.js +1 -1
  379. package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
  380. package/build/components/inspector-controls-tabs/advanced-controls-panel.native.js.map +1 -1
  381. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  382. package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  383. package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +1 -1
  384. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  385. package/build/components/inspector-controls-tabs/styles-tab.js +1 -1
  386. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  387. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  388. package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -1
  389. package/build/components/inspector-controls-tabs/utils.js.map +1 -1
  390. package/build/components/inspector-popover-header/index.js.map +1 -1
  391. package/build/components/justify-content-control/index.js.map +1 -1
  392. package/build/components/justify-content-control/ui.js.map +1 -1
  393. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  394. package/build/components/letter-spacing-control/index.js.map +1 -1
  395. package/build/components/line-height-control/index.js.map +1 -1
  396. package/build/components/line-height-control/index.native.js.map +1 -1
  397. package/build/components/line-height-control/utils.js.map +1 -1
  398. package/build/components/link-control/constants.js.map +1 -1
  399. package/build/components/link-control/index.js.map +1 -1
  400. package/build/components/link-control/is-url-like.js.map +1 -1
  401. package/build/components/link-control/link-preview.js.map +1 -1
  402. package/build/components/link-control/search-create-button.js.map +1 -1
  403. package/build/components/link-control/search-input.js.map +1 -1
  404. package/build/components/link-control/search-item.js.map +1 -1
  405. package/build/components/link-control/search-results.js.map +1 -1
  406. package/build/components/link-control/settings-drawer.js.map +1 -1
  407. package/build/components/link-control/settings.js.map +1 -1
  408. package/build/components/link-control/use-create-page.js.map +1 -1
  409. package/build/components/link-control/use-internal-value.js.map +1 -1
  410. package/build/components/link-control/use-rich-url-data.js.map +1 -1
  411. package/build/components/link-control/use-search-handler.js.map +1 -1
  412. package/build/components/link-control/viewer-slot.js.map +1 -1
  413. package/build/components/list-view/appender.js.map +1 -1
  414. package/build/components/list-view/aria-referenced-text.js.map +1 -1
  415. package/build/components/list-view/block-contents.js.map +1 -1
  416. package/build/components/list-view/block-select-button.js +29 -1
  417. package/build/components/list-view/block-select-button.js.map +1 -1
  418. package/build/components/list-view/block.js.map +1 -1
  419. package/build/components/list-view/branch.js.map +1 -1
  420. package/build/components/list-view/context.js.map +1 -1
  421. package/build/components/list-view/drop-indicator.js.map +1 -1
  422. package/build/components/list-view/expander.js.map +1 -1
  423. package/build/components/list-view/index.js.map +1 -1
  424. package/build/components/list-view/leaf.js.map +1 -1
  425. package/build/components/list-view/use-block-selection.js.map +1 -1
  426. package/build/components/list-view/use-clipboard-handler.js.map +1 -1
  427. package/build/components/list-view/use-list-view-block-indexes.js.map +1 -1
  428. package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
  429. package/build/components/list-view/use-list-view-collapse-items.js.map +1 -1
  430. package/build/components/list-view/use-list-view-drop-zone.js +5 -0
  431. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  432. package/build/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  433. package/build/components/list-view/use-list-view-images.js.map +1 -1
  434. package/build/components/list-view/use-list-view-scroll-into-view.js.map +1 -1
  435. package/build/components/list-view/utils.js.map +1 -1
  436. package/build/components/media-placeholder/index.js.map +1 -1
  437. package/build/components/media-placeholder/index.native.js.map +1 -1
  438. package/build/components/media-replace-flow/index.js.map +1 -1
  439. package/build/components/media-replace-flow/index.native.js.map +1 -1
  440. package/build/components/media-upload/check.js.map +1 -1
  441. package/build/components/media-upload/constants.native.js.map +1 -1
  442. package/build/components/media-upload/index.js.map +1 -1
  443. package/build/components/media-upload/index.native.js.map +1 -1
  444. package/build/components/media-upload-progress/constants.js.map +1 -1
  445. package/build/components/media-upload-progress/index.native.js.map +1 -1
  446. package/build/components/multi-selection-inspector/index.js.map +1 -1
  447. package/build/components/navigable-toolbar/index.js.map +1 -1
  448. package/build/components/observe-typing/index.js.map +1 -1
  449. package/build/components/panel-color-settings/index.js.map +1 -1
  450. package/build/components/plain-text/index.js.map +1 -1
  451. package/build/components/plain-text/index.native.js.map +1 -1
  452. package/build/components/preview-options/index.js.map +1 -1
  453. package/build/components/provider/block-refs-provider.js.map +1 -1
  454. package/build/components/provider/index.js.map +1 -1
  455. package/build/components/provider/index.native.js.map +1 -1
  456. package/build/components/provider/use-block-sync.js.map +1 -1
  457. package/build/components/provider/with-registry-provider.js.map +1 -1
  458. package/build/components/publish-date-time-picker/index.js.map +1 -1
  459. package/build/components/recursion-provider/index.js +2 -2
  460. package/build/components/recursion-provider/index.js.map +1 -1
  461. package/build/components/resizable-box-popover/index.js.map +1 -1
  462. package/build/components/resolution-tool/index.js.map +1 -1
  463. package/build/components/responsive-block-control/index.js.map +1 -1
  464. package/build/components/responsive-block-control/label.js.map +1 -1
  465. package/build/components/rich-text/content.js +26 -19
  466. package/build/components/rich-text/content.js.map +1 -1
  467. package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
  468. package/build/components/rich-text/file-paste-handler.native.js.map +1 -1
  469. package/build/components/rich-text/format-edit.js.map +1 -1
  470. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  471. package/build/components/rich-text/format-toolbar/index.native.js.map +1 -1
  472. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  473. package/build/components/rich-text/format-toolbar-container.native.js.map +1 -1
  474. package/build/components/rich-text/get-rich-text-values.js.map +1 -1
  475. package/build/components/rich-text/index.js +40 -0
  476. package/build/components/rich-text/index.js.map +1 -1
  477. package/build/components/rich-text/index.native.js +3 -1
  478. package/build/components/rich-text/index.native.js.map +1 -1
  479. package/build/components/rich-text/input-event.js.map +1 -1
  480. package/build/components/rich-text/input-event.native.js.map +1 -1
  481. package/build/components/rich-text/multiline.js.map +1 -1
  482. package/build/components/rich-text/native/format-edit.js.map +1 -1
  483. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  484. package/build/components/rich-text/native/index.js.map +1 -1
  485. package/build/components/rich-text/native/index.native.js.map +1 -1
  486. package/build/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -1
  487. package/build/components/rich-text/native/use-format-types.js.map +1 -1
  488. package/build/components/rich-text/prevent-event-discovery.js.map +1 -1
  489. package/build/components/rich-text/remove-browser-shortcuts.native.js.map +1 -1
  490. package/build/components/rich-text/shortcut.js.map +1 -1
  491. package/build/components/rich-text/shortcut.native.js.map +1 -1
  492. package/build/components/rich-text/split-value.js.map +1 -1
  493. package/build/components/rich-text/toolbar-button.js.map +1 -1
  494. package/build/components/rich-text/use-before-input-rules.js.map +1 -1
  495. package/build/components/rich-text/use-delete.js.map +1 -1
  496. package/build/components/rich-text/use-enter.js.map +1 -1
  497. package/build/components/rich-text/use-firefox-compat.js.map +1 -1
  498. package/build/components/rich-text/use-format-types.js.map +1 -1
  499. package/build/components/rich-text/use-input-events.js.map +1 -1
  500. package/build/components/rich-text/use-input-rules.js.map +1 -1
  501. package/build/components/rich-text/use-insert-replacement-text.js.map +1 -1
  502. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  503. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  504. package/build/components/rich-text/use-remove-browser-shortcuts.js.map +1 -1
  505. package/build/components/rich-text/use-shortcuts.js.map +1 -1
  506. package/build/components/rich-text/use-undo-automatic-change.js +1 -1
  507. package/build/components/rich-text/use-undo-automatic-change.js.map +1 -1
  508. package/build/components/rich-text/utils.js.map +1 -1
  509. package/build/components/rich-text/with-deprecations.js.map +1 -1
  510. package/build/components/selection-scroll-into-view/index.js.map +1 -1
  511. package/build/components/skip-to-selected-block/index.js.map +1 -1
  512. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  513. package/build/components/spacing-sizes-control/index.js.map +1 -1
  514. package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  515. package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  516. package/build/components/spacing-sizes-control/input-controls/single.js.map +1 -1
  517. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  518. package/build/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
  519. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  520. package/build/components/text-decoration-control/index.js.map +1 -1
  521. package/build/components/text-transform-control/index.js.map +1 -1
  522. package/build/components/tool-selector/index.js.map +1 -1
  523. package/build/components/typewriter/index.js.map +1 -1
  524. package/build/components/ungroup-button/index.native.js.map +1 -1
  525. package/build/components/unit-control/index.js.map +1 -1
  526. package/build/components/unsupported-block-details/index.native.js.map +1 -1
  527. package/build/components/url-input/button.js.map +1 -1
  528. package/build/components/url-input/index.js.map +1 -1
  529. package/build/components/url-input/index.native.js.map +1 -1
  530. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  531. package/build/components/url-popover/index.js.map +1 -1
  532. package/build/components/url-popover/link-editor.js.map +1 -1
  533. package/build/components/url-popover/link-viewer-url.js.map +1 -1
  534. package/build/components/url-popover/link-viewer.js.map +1 -1
  535. package/build/components/use-block-commands/index.js +20 -2
  536. package/build/components/use-block-commands/index.js.map +1 -1
  537. package/build/components/use-block-display-information/index.js.map +1 -1
  538. package/build/components/use-block-drop-zone/index.js.map +1 -1
  539. package/build/components/use-block-drop-zone/index.native.js.map +1 -1
  540. package/build/components/use-flash-editable-blocks/index.js.map +1 -1
  541. package/build/components/use-moving-animation/index.js.map +1 -1
  542. package/build/components/use-on-block-drop/index.js.map +1 -1
  543. package/build/components/use-on-block-drop/index.native.js.map +1 -1
  544. package/build/components/use-on-block-drop/types.js.map +1 -1
  545. package/build/components/use-paste-styles/index.js +1 -0
  546. package/build/components/use-paste-styles/index.js.map +1 -1
  547. package/build/components/use-resize-canvas/index.js.map +1 -1
  548. package/build/components/use-settings/index.js.map +1 -1
  549. package/build/components/use-unsupported-block-editor/index.native.js.map +1 -1
  550. package/build/components/video-player/gridicon-play.native.js.map +1 -1
  551. package/build/components/video-player/index.native.js.map +1 -1
  552. package/build/components/warning/index.js.map +1 -1
  553. package/build/components/warning/index.native.js.map +1 -1
  554. package/build/components/writing-flow/index.js.map +1 -1
  555. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  556. package/build/components/writing-flow/use-click-selection.js.map +1 -1
  557. package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
  558. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  559. package/build/components/writing-flow/use-input.js.map +1 -1
  560. package/build/components/writing-flow/use-multi-selection.js.map +1 -1
  561. package/build/components/writing-flow/use-select-all.js.map +1 -1
  562. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  563. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  564. package/build/components/writing-flow/utils.js.map +1 -1
  565. package/build/components/writing-mode-control/index.js.map +1 -1
  566. package/build/elements/index.js.map +1 -1
  567. package/build/hooks/align.js.map +1 -1
  568. package/build/hooks/align.native.js +1 -1
  569. package/build/hooks/align.native.js.map +1 -1
  570. package/build/hooks/anchor.js.map +1 -1
  571. package/build/hooks/aria-label.js.map +1 -1
  572. package/build/hooks/background.js +3 -3
  573. package/build/hooks/background.js.map +1 -1
  574. package/build/hooks/block-hooks.js.map +1 -1
  575. package/build/hooks/block-renaming.js +0 -37
  576. package/build/hooks/block-renaming.js.map +1 -1
  577. package/build/hooks/border.js.map +1 -1
  578. package/build/hooks/color.js +1 -1
  579. package/build/hooks/color.js.map +1 -1
  580. package/build/hooks/compat.js.map +1 -1
  581. package/build/hooks/content-lock-ui.js +5 -5
  582. package/build/hooks/content-lock-ui.js.map +1 -1
  583. package/build/hooks/contrast-checker.js.map +1 -1
  584. package/build/hooks/custom-class-name.js.map +1 -1
  585. package/build/hooks/custom-class-name.native.js.map +1 -1
  586. package/build/hooks/dimensions.js.map +1 -1
  587. package/build/hooks/duotone.js.map +1 -1
  588. package/build/hooks/font-family.js.map +1 -1
  589. package/build/hooks/font-size.js.map +1 -1
  590. package/build/hooks/gap.js.map +1 -1
  591. package/build/hooks/generated-class-name.js.map +1 -1
  592. package/build/hooks/index.js +6 -5
  593. package/build/hooks/index.js.map +1 -1
  594. package/build/hooks/index.native.js.map +1 -1
  595. package/build/hooks/layout-child.js.map +1 -1
  596. package/build/hooks/layout.js +38 -19
  597. package/build/hooks/layout.js.map +1 -1
  598. package/build/hooks/layout.native.js.map +1 -1
  599. package/build/hooks/line-height.js.map +1 -1
  600. package/build/hooks/lock.js.map +1 -1
  601. package/build/hooks/metadata.js.map +1 -1
  602. package/build/hooks/position.js.map +1 -1
  603. package/build/hooks/settings.js.map +1 -1
  604. package/build/hooks/spacing-visualizer.js.map +1 -1
  605. package/build/hooks/style.js.map +1 -1
  606. package/build/hooks/supports.js +27 -4
  607. package/build/hooks/supports.js.map +1 -1
  608. package/build/hooks/text-align.js +156 -0
  609. package/build/hooks/text-align.js.map +1 -0
  610. package/build/hooks/typography.js +3 -2
  611. package/build/hooks/typography.js.map +1 -1
  612. package/build/hooks/typography.native.js.map +1 -1
  613. package/build/hooks/use-bindings-attributes.js +66 -129
  614. package/build/hooks/use-bindings-attributes.js.map +1 -1
  615. package/build/hooks/use-border-props.js.map +1 -1
  616. package/build/hooks/use-cached-truthy.js.map +1 -1
  617. package/build/hooks/use-color-props.js.map +1 -1
  618. package/build/hooks/use-editor-wrapper-styles.native.js.map +1 -1
  619. package/build/hooks/use-shadow-props.js.map +1 -1
  620. package/build/hooks/use-spacing-props.js.map +1 -1
  621. package/build/hooks/use-typography-props.js +2 -1
  622. package/build/hooks/use-typography-props.js.map +1 -1
  623. package/build/hooks/use-zoom-out.js +22 -15
  624. package/build/hooks/use-zoom-out.js.map +1 -1
  625. package/build/hooks/utils.js +29 -5
  626. package/build/hooks/utils.js.map +1 -1
  627. package/build/index.js.map +1 -1
  628. package/build/index.native.js.map +1 -1
  629. package/build/layouts/constrained.js.map +1 -1
  630. package/build/layouts/definitions.js +8 -6
  631. package/build/layouts/definitions.js.map +1 -1
  632. package/build/layouts/flex.js.map +1 -1
  633. package/build/layouts/flow.js.map +1 -1
  634. package/build/layouts/grid.js +52 -9
  635. package/build/layouts/grid.js.map +1 -1
  636. package/build/layouts/index.js.map +1 -1
  637. package/build/layouts/utils.js.map +1 -1
  638. package/build/lock-unlock.js.map +1 -1
  639. package/build/private-apis.js +1 -1
  640. package/build/private-apis.js.map +1 -1
  641. package/build/private-apis.native.js +1 -1
  642. package/build/private-apis.native.js.map +1 -1
  643. package/build/store/actions.js +18 -4
  644. package/build/store/actions.js.map +1 -1
  645. package/build/store/array.js.map +1 -1
  646. package/build/store/constants.js.map +1 -1
  647. package/build/store/defaults.js.map +1 -1
  648. package/build/store/defaults.native.js.map +1 -1
  649. package/build/store/get-block-settings.js.map +1 -1
  650. package/build/store/index.js +1 -1
  651. package/build/store/index.js.map +1 -1
  652. package/build/store/private-actions.js +5 -2
  653. package/build/store/private-actions.js.map +1 -1
  654. package/build/store/private-keys.js.map +1 -1
  655. package/build/store/private-selectors.js +94 -38
  656. package/build/store/private-selectors.js.map +1 -1
  657. package/build/store/reducer.js.map +1 -1
  658. package/build/store/selectors.js +122 -81
  659. package/build/store/selectors.js.map +1 -1
  660. package/build/store/undo-ignore.js.map +1 -1
  661. package/build/store/utils.js.map +1 -1
  662. package/build/utils/dom.js.map +1 -1
  663. package/build/utils/get-px-from-css-unit.js.map +1 -1
  664. package/build/utils/index.js.map +1 -1
  665. package/build/utils/math.js.map +1 -1
  666. package/build/utils/object.js.map +1 -1
  667. package/build/utils/order-inserter-block-items.js.map +1 -1
  668. package/build/utils/pasting.js.map +1 -1
  669. package/build/utils/selection.js.map +1 -1
  670. package/build/utils/sorting.js.map +1 -1
  671. package/build/utils/transform-styles/index.js +1 -1
  672. package/build/utils/transform-styles/index.js.map +1 -1
  673. package/build/utils/use-notify-copy.js.map +1 -1
  674. package/build-module/autocompleters/block.js.map +1 -1
  675. package/build-module/autocompleters/link.js.map +1 -1
  676. package/build-module/components/alignment-control/index.js.map +1 -1
  677. package/build-module/components/alignment-control/ui.js.map +1 -1
  678. package/build-module/components/autocomplete/index.js.map +1 -1
  679. package/build-module/components/block-actions/index.js.map +1 -1
  680. package/build-module/components/block-alignment-control/constants.js.map +1 -1
  681. package/build-module/components/block-alignment-control/index.js.map +1 -1
  682. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  683. package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
  684. package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
  685. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  686. package/build-module/components/block-bindings-toolbar-indicator/index.js.map +1 -1
  687. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  688. package/build-module/components/block-canvas/index.js.map +1 -1
  689. package/build-module/components/block-caption/index.native.js.map +1 -1
  690. package/build-module/components/block-card/index.js.map +1 -1
  691. package/build-module/components/block-compare/block-view.js.map +1 -1
  692. package/build-module/components/block-compare/index.js.map +1 -1
  693. package/build-module/components/block-content-overlay/index.js.map +1 -1
  694. package/build-module/components/block-context/index.js.map +1 -1
  695. package/build-module/components/block-controls/fill.js.map +1 -1
  696. package/build-module/components/block-controls/groups.js.map +1 -1
  697. package/build-module/components/block-controls/hook.js.map +1 -1
  698. package/build-module/components/block-controls/index.js.map +1 -1
  699. package/build-module/components/block-controls/slot.js.map +1 -1
  700. package/build-module/components/block-controls/slot.native.js.map +1 -1
  701. package/build-module/components/block-controls/use-has-block-controls.js.map +1 -1
  702. package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
  703. package/build-module/components/block-draggable/draggable-chip.native.js.map +1 -1
  704. package/build-module/components/block-draggable/dropping-insertion-point.native.js.map +1 -1
  705. package/build-module/components/block-draggable/index.js.map +1 -1
  706. package/build-module/components/block-draggable/index.native.js.map +1 -1
  707. package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  708. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -1
  709. package/build-module/components/block-edit/context.js +1 -0
  710. package/build-module/components/block-edit/context.js.map +1 -1
  711. package/build-module/components/block-edit/edit.js.map +1 -1
  712. package/build-module/components/block-edit/edit.native.js.map +1 -1
  713. package/build-module/components/block-edit/index.js +5 -3
  714. package/build-module/components/block-edit/index.js.map +1 -1
  715. package/build-module/components/block-edit-visually-button/index.js.map +1 -1
  716. package/build-module/components/block-editing-mode/index.js.map +1 -1
  717. package/build-module/components/block-full-height-alignment-control/index.js.map +1 -1
  718. package/build-module/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -1
  719. package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
  720. package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -1
  721. package/build-module/components/block-icon/index.js.map +1 -1
  722. package/build-module/components/block-icon/index.native.js.map +1 -1
  723. package/build-module/components/block-info-slot-fill/index.js.map +1 -1
  724. package/build-module/components/block-inspector/index.js +5 -4
  725. package/build-module/components/block-inspector/index.js.map +1 -1
  726. package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -1
  727. package/build-module/components/block-list/block-crash-boundary.js.map +1 -1
  728. package/build-module/components/block-list/block-crash-boundary.native.js.map +1 -1
  729. package/build-module/components/block-list/block-crash-warning.js.map +1 -1
  730. package/build-module/components/block-list/block-crash-warning.native.js.map +1 -1
  731. package/build-module/components/block-list/block-html.js.map +1 -1
  732. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  733. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  734. package/build-module/components/block-list/block-list-context.native.js.map +1 -1
  735. package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
  736. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  737. package/build-module/components/block-list/block-outline.native.js.map +1 -1
  738. package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
  739. package/build-module/components/block-list/block.js +44 -26
  740. package/build-module/components/block-list/block.js.map +1 -1
  741. package/build-module/components/block-list/block.native.js +2 -2
  742. package/build-module/components/block-list/block.native.js.map +1 -1
  743. package/build-module/components/block-list/grid-item.native.js.map +1 -1
  744. package/build-module/components/block-list/index.js +16 -5
  745. package/build-module/components/block-list/index.js.map +1 -1
  746. package/build-module/components/block-list/index.native.js.map +1 -1
  747. package/build-module/components/block-list/insertion-point.native.js.map +1 -1
  748. package/build-module/components/block-list/layout.js.map +1 -1
  749. package/build-module/components/block-list/private-block-context.js.map +1 -1
  750. package/build-module/components/block-list/subdirectory-icon.js.map +1 -1
  751. package/build-module/components/block-list/use-block-props/index.js +2 -1
  752. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  753. package/build-module/components/block-list/use-block-props/index.native.js.map +1 -1
  754. package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.js.map +1 -1
  755. package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  756. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +3 -2
  757. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  758. package/build-module/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
  759. package/build-module/components/block-list/use-block-props/use-intersection-observer.js.map +1 -1
  760. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  761. package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js.map +1 -1
  762. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  763. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  764. package/build-module/components/block-list/use-scroll-upon-insertion.native.js.map +1 -1
  765. package/build-module/components/block-list-appender/index.js.map +1 -1
  766. package/build-module/components/block-list-appender/index.native.js.map +1 -1
  767. package/build-module/components/block-lock/index.js.map +1 -1
  768. package/build-module/components/block-lock/menu-item.js.map +1 -1
  769. package/build-module/components/block-lock/modal.js.map +1 -1
  770. package/build-module/components/block-lock/toolbar.js.map +1 -1
  771. package/build-module/components/block-lock/use-block-lock.js.map +1 -1
  772. package/build-module/components/block-media-update-progress/index.native.js.map +1 -1
  773. package/build-module/components/block-mover/button.js.map +1 -1
  774. package/build-module/components/block-mover/index.js.map +1 -1
  775. package/build-module/components/block-mover/index.native.js.map +1 -1
  776. package/build-module/components/block-mover/mover-description.js.map +1 -1
  777. package/build-module/components/block-mover/mover-description.native.js.map +1 -1
  778. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  779. package/build-module/components/block-parent-selector/index.js.map +1 -1
  780. package/build-module/components/block-pattern-setup/constants.js.map +1 -1
  781. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  782. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  783. package/build-module/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
  784. package/build-module/components/block-patterns-list/index.js.map +1 -1
  785. package/build-module/components/block-patterns-paging/index.js +8 -4
  786. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  787. package/build-module/components/block-popover/cover.js.map +1 -1
  788. package/build-module/components/block-popover/drop-zone.js.map +1 -1
  789. package/build-module/components/block-popover/inbetween.js.map +1 -1
  790. package/build-module/components/block-popover/index.js.map +1 -1
  791. package/build-module/components/block-popover/use-popover-scroll.js.map +1 -1
  792. package/build-module/components/block-preview/auto.js.map +1 -1
  793. package/build-module/components/block-preview/index.js.map +1 -1
  794. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  795. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  796. package/build-module/components/block-rename/index.js.map +1 -1
  797. package/build-module/components/block-rename/is-empty-string.js.map +1 -1
  798. package/build-module/components/block-rename/modal.js +14 -10
  799. package/build-module/components/block-rename/modal.js.map +1 -1
  800. package/build-module/components/block-rename/rename-control.js +3 -1
  801. package/build-module/components/block-rename/rename-control.js.map +1 -1
  802. package/build-module/components/block-rename/use-block-rename.js.map +1 -1
  803. package/build-module/components/block-selection-clearer/index.js.map +1 -1
  804. package/build-module/components/block-settings/button.native.js.map +1 -1
  805. package/build-module/components/block-settings/container.native.js.map +1 -1
  806. package/build-module/components/block-settings/index.native.js.map +1 -1
  807. package/build-module/components/block-settings-menu/block-html-convert-button.js.map +1 -1
  808. package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  809. package/build-module/components/block-settings-menu/block-parent-selector-menu-item.js.map +1 -1
  810. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  811. package/build-module/components/block-settings-menu/block-settings-menu-first-item.js.map +1 -1
  812. package/build-module/components/block-settings-menu/index.js.map +1 -1
  813. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  814. package/build-module/components/block-styles/index.js.map +1 -1
  815. package/build-module/components/block-styles/index.native.js.map +1 -1
  816. package/build-module/components/block-styles/menu-items.js.map +1 -1
  817. package/build-module/components/block-styles/preview-panel.js.map +1 -1
  818. package/build-module/components/block-styles/preview.native.js.map +1 -1
  819. package/build-module/components/block-styles/use-styles-for-block.js.map +1 -1
  820. package/build-module/components/block-styles/utils.js.map +1 -1
  821. package/build-module/components/block-switcher/block-styles-menu.js.map +1 -1
  822. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  823. package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  824. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
  825. package/build-module/components/block-switcher/index.js.map +1 -1
  826. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  827. package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
  828. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  829. package/build-module/components/block-switcher/utils.js.map +1 -1
  830. package/build-module/components/block-title/index.js.map +1 -1
  831. package/build-module/components/block-title/use-block-display-title.js.map +1 -1
  832. package/build-module/components/block-toolbar/block-name-context.js.map +1 -1
  833. package/build-module/components/block-toolbar/block-toolbar-last-item.js.map +1 -1
  834. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  835. package/build-module/components/block-toolbar/index.js +1 -1
  836. package/build-module/components/block-toolbar/index.js.map +1 -1
  837. package/build-module/components/block-toolbar/index.native.js.map +1 -1
  838. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  839. package/build-module/components/block-toolbar/use-has-block-toolbar.js +6 -3
  840. package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  841. package/build-module/components/block-toolbar/utils.js.map +1 -1
  842. package/build-module/components/block-tools/block-selection-button.js +16 -12
  843. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  844. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  845. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
  846. package/build-module/components/block-tools/empty-block-inserter.js.map +1 -1
  847. package/build-module/components/block-tools/index.js.map +1 -1
  848. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  849. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  850. package/build-module/components/block-tools/use-selected-block-tool-props.js.map +1 -1
  851. package/build-module/components/block-tools/use-show-block-tools.js +7 -13
  852. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  853. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  854. package/build-module/components/block-types-list/index.js.map +1 -1
  855. package/build-module/components/block-types-list/index.native.js.map +1 -1
  856. package/build-module/components/block-variation-picker/index.js.map +1 -1
  857. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  858. package/build-module/components/block-variation-transforms/index.js +4 -1
  859. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  860. package/build-module/components/block-vertical-alignment-control/icons.js.map +1 -1
  861. package/build-module/components/block-vertical-alignment-control/index.js.map +1 -1
  862. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  863. package/build-module/components/border-radius-control/all-input-control.js.map +1 -1
  864. package/build-module/components/border-radius-control/index.js.map +1 -1
  865. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  866. package/build-module/components/border-radius-control/linked-button.js.map +1 -1
  867. package/build-module/components/border-radius-control/utils.js.map +1 -1
  868. package/build-module/components/button-block-appender/index.js.map +1 -1
  869. package/build-module/components/button-block-appender/index.native.js +11 -1
  870. package/build-module/components/button-block-appender/index.native.js.map +1 -1
  871. package/build-module/components/caption/index.native.js.map +1 -1
  872. package/build-module/components/child-layout-control/index.js.map +1 -1
  873. package/build-module/components/color-palette/control.js.map +1 -1
  874. package/build-module/components/color-palette/index.js.map +1 -1
  875. package/build-module/components/color-palette/with-color-context.js.map +1 -1
  876. package/build-module/components/color-style-selector/index.js.map +1 -1
  877. package/build-module/components/colors/index.js.map +1 -1
  878. package/build-module/components/colors/utils.js.map +1 -1
  879. package/build-module/components/colors/with-colors.js.map +1 -1
  880. package/build-module/components/colors-gradients/control.js.map +1 -1
  881. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  882. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  883. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  884. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  885. package/build-module/components/contrast-checker/index.js.map +1 -1
  886. package/build-module/components/contrast-checker/index.native.js.map +1 -1
  887. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  888. package/build-module/components/convert-to-group-buttons/index.native.js.map +1 -1
  889. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  890. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  891. package/build-module/components/copy-handler/index.js.map +1 -1
  892. package/build-module/components/date-format-picker/index.js.map +1 -1
  893. package/build-module/components/default-block-appender/index.js.map +1 -1
  894. package/build-module/components/default-block-appender/index.native.js.map +1 -1
  895. package/build-module/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
  896. package/build-module/components/dimensions-tool/index.js.map +1 -1
  897. package/build-module/components/dimensions-tool/scale-tool.js.map +1 -1
  898. package/build-module/components/dimensions-tool/width-height-tool.js.map +1 -1
  899. package/build-module/components/duotone/utils.js.map +1 -1
  900. package/build-module/components/duotone-control/index.js.map +1 -1
  901. package/build-module/components/editable-text/index.js.map +1 -1
  902. package/build-module/components/editor-styles/index.js +3 -2
  903. package/build-module/components/editor-styles/index.js.map +1 -1
  904. package/build-module/components/floating-toolbar/index.native.js.map +1 -1
  905. package/build-module/components/floating-toolbar/nav-up-icon.js.map +1 -1
  906. package/build-module/components/font-appearance-control/index.js.map +1 -1
  907. package/build-module/components/font-family/index.js.map +1 -1
  908. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  909. package/build-module/components/font-sizes/font-size-picker.js.map +1 -1
  910. package/build-module/components/font-sizes/index.js.map +1 -1
  911. package/build-module/components/font-sizes/index.native.js.map +1 -1
  912. package/build-module/components/font-sizes/utils.js.map +1 -1
  913. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  914. package/build-module/components/global-styles/advanced-panel.js.map +1 -1
  915. package/build-module/components/global-styles/background-panel.js +19 -16
  916. package/build-module/components/global-styles/background-panel.js.map +1 -1
  917. package/build-module/components/global-styles/border-panel.js.map +1 -1
  918. package/build-module/components/global-styles/color-panel.js.map +1 -1
  919. package/build-module/components/global-styles/color-panel.native.js.map +1 -1
  920. package/build-module/components/global-styles/context.js.map +1 -1
  921. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  922. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  923. package/build-module/components/global-styles/get-block-css-selector.js.map +1 -1
  924. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  925. package/build-module/components/global-styles/hooks.js.map +1 -1
  926. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  927. package/build-module/components/global-styles/index.js.map +1 -1
  928. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  929. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  930. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  931. package/build-module/components/global-styles/use-global-styles-output.js +4 -4
  932. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  933. package/build-module/components/global-styles/utils.js.map +1 -1
  934. package/build-module/components/gradients/index.js.map +1 -1
  935. package/build-module/components/gradients/index.native.js.map +1 -1
  936. package/build-module/components/gradients/use-gradient.js.map +1 -1
  937. package/build-module/components/gradients/with-gradient.js.map +1 -1
  938. package/build-module/components/grid-visualizer/grid-item-resizer.js.map +1 -1
  939. package/build-module/components/grid-visualizer/grid-visualizer.js.map +1 -1
  940. package/build-module/components/grid-visualizer/index.js.map +1 -1
  941. package/build-module/components/grid-visualizer/utils.js.map +1 -1
  942. package/build-module/components/height-control/index.js.map +1 -1
  943. package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
  944. package/build-module/components/iframe/index.js +12 -13
  945. package/build-module/components/iframe/index.js.map +1 -1
  946. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  947. package/build-module/components/image-editor/constants.js.map +1 -1
  948. package/build-module/components/image-editor/context.js.map +1 -1
  949. package/build-module/components/image-editor/cropper.js +7 -3
  950. package/build-module/components/image-editor/cropper.js.map +1 -1
  951. package/build-module/components/image-editor/form-controls.js.map +1 -1
  952. package/build-module/components/image-editor/index.js +0 -2
  953. package/build-module/components/image-editor/index.js.map +1 -1
  954. package/build-module/components/image-editor/rotation-button.js.map +1 -1
  955. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  956. package/build-module/components/image-editor/use-transform-image.js.map +1 -1
  957. package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
  958. package/build-module/components/image-link-destinations/index.native.js.map +1 -1
  959. package/build-module/components/image-size-control/index.js.map +1 -1
  960. package/build-module/components/image-size-control/use-dimension-handler.js.map +1 -1
  961. package/build-module/components/index.js.map +1 -1
  962. package/build-module/components/index.native.js.map +1 -1
  963. package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
  964. package/build-module/components/inner-blocks/constants.native.js.map +1 -1
  965. package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
  966. package/build-module/components/inner-blocks/index.js.map +1 -1
  967. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  968. package/build-module/components/inner-blocks/use-block-context.js.map +1 -1
  969. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  970. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  971. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  972. package/build-module/components/inner-blocks/with-client-id.js.map +1 -1
  973. package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -1
  974. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  975. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  976. package/build-module/components/inserter/block-patterns-tab/index.js +32 -19
  977. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  978. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +2 -24
  979. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  980. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +2 -4
  981. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  982. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  983. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  984. package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
  985. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  986. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  987. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  988. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  989. package/build-module/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
  990. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  991. package/build-module/components/inserter/hooks/use-patterns-paging.js.map +1 -1
  992. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  993. package/build-module/components/inserter/index.js.map +1 -1
  994. package/build-module/components/inserter/index.native.js.map +1 -1
  995. package/build-module/components/inserter/library.js.map +1 -1
  996. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  997. package/build-module/components/inserter/media-tab/index.js.map +1 -1
  998. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  999. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  1000. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  1001. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  1002. package/build-module/components/inserter/media-tab/utils.js.map +1 -1
  1003. package/build-module/components/inserter/menu.js +17 -11
  1004. package/build-module/components/inserter/menu.js.map +1 -1
  1005. package/build-module/components/inserter/menu.native.js.map +1 -1
  1006. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
  1007. package/build-module/components/inserter/no-results.js.map +1 -1
  1008. package/build-module/components/inserter/no-results.native.js.map +1 -1
  1009. package/build-module/components/inserter/panel.js.map +1 -1
  1010. package/build-module/components/inserter/preview-panel.js.map +1 -1
  1011. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  1012. package/build-module/components/inserter/reusable-block-rename-hint.js.map +1 -1
  1013. package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  1014. package/build-module/components/inserter/search-items.js.map +1 -1
  1015. package/build-module/components/inserter/search-results.js.map +1 -1
  1016. package/build-module/components/inserter/search-results.native.js.map +1 -1
  1017. package/build-module/components/inserter/tabs.js +7 -3
  1018. package/build-module/components/inserter/tabs.js.map +1 -1
  1019. package/build-module/components/inserter/tabs.native.js.map +1 -1
  1020. package/build-module/components/inserter/tips.js.map +1 -1
  1021. package/build-module/components/inserter/utils.native.js.map +1 -1
  1022. package/build-module/components/inserter-button/index.native.js.map +1 -1
  1023. package/build-module/components/inserter-button/sparkles.js.map +1 -1
  1024. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  1025. package/build-module/components/inserter-list-item/index.js.map +1 -1
  1026. package/build-module/components/inserter-listbox/context.js.map +1 -1
  1027. package/build-module/components/inserter-listbox/group.js.map +1 -1
  1028. package/build-module/components/inserter-listbox/index.js.map +1 -1
  1029. package/build-module/components/inserter-listbox/item.js.map +1 -1
  1030. package/build-module/components/inserter-listbox/row.js.map +1 -1
  1031. package/build-module/components/inserter-menu-extension/index.js.map +1 -1
  1032. package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -1
  1033. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  1034. package/build-module/components/inspector-controls/fill.js.map +1 -1
  1035. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  1036. package/build-module/components/inspector-controls/groups.js.map +1 -1
  1037. package/build-module/components/inspector-controls/index.js.map +1 -1
  1038. package/build-module/components/inspector-controls/slot.js.map +1 -1
  1039. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  1040. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
  1041. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.native.js.map +1 -1
  1042. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  1043. package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  1044. package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +1 -1
  1045. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  1046. package/build-module/components/inspector-controls-tabs/styles-tab.js +1 -1
  1047. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  1048. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  1049. package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -1
  1050. package/build-module/components/inspector-controls-tabs/utils.js.map +1 -1
  1051. package/build-module/components/inspector-popover-header/index.js.map +1 -1
  1052. package/build-module/components/justify-content-control/index.js.map +1 -1
  1053. package/build-module/components/justify-content-control/ui.js.map +1 -1
  1054. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  1055. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  1056. package/build-module/components/line-height-control/index.js.map +1 -1
  1057. package/build-module/components/line-height-control/index.native.js.map +1 -1
  1058. package/build-module/components/line-height-control/utils.js.map +1 -1
  1059. package/build-module/components/link-control/constants.js.map +1 -1
  1060. package/build-module/components/link-control/index.js.map +1 -1
  1061. package/build-module/components/link-control/is-url-like.js.map +1 -1
  1062. package/build-module/components/link-control/link-preview.js.map +1 -1
  1063. package/build-module/components/link-control/search-create-button.js.map +1 -1
  1064. package/build-module/components/link-control/search-input.js.map +1 -1
  1065. package/build-module/components/link-control/search-item.js.map +1 -1
  1066. package/build-module/components/link-control/search-results.js.map +1 -1
  1067. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  1068. package/build-module/components/link-control/settings.js.map +1 -1
  1069. package/build-module/components/link-control/use-create-page.js.map +1 -1
  1070. package/build-module/components/link-control/use-internal-value.js.map +1 -1
  1071. package/build-module/components/link-control/use-rich-url-data.js.map +1 -1
  1072. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  1073. package/build-module/components/link-control/viewer-slot.js.map +1 -1
  1074. package/build-module/components/list-view/appender.js.map +1 -1
  1075. package/build-module/components/list-view/aria-referenced-text.js.map +1 -1
  1076. package/build-module/components/list-view/block-contents.js.map +1 -1
  1077. package/build-module/components/list-view/block-select-button.js +29 -1
  1078. package/build-module/components/list-view/block-select-button.js.map +1 -1
  1079. package/build-module/components/list-view/block.js.map +1 -1
  1080. package/build-module/components/list-view/branch.js.map +1 -1
  1081. package/build-module/components/list-view/context.js.map +1 -1
  1082. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  1083. package/build-module/components/list-view/expander.js.map +1 -1
  1084. package/build-module/components/list-view/index.js.map +1 -1
  1085. package/build-module/components/list-view/leaf.js.map +1 -1
  1086. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  1087. package/build-module/components/list-view/use-clipboard-handler.js.map +1 -1
  1088. package/build-module/components/list-view/use-list-view-block-indexes.js.map +1 -1
  1089. package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
  1090. package/build-module/components/list-view/use-list-view-collapse-items.js.map +1 -1
  1091. package/build-module/components/list-view/use-list-view-drop-zone.js +5 -0
  1092. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  1093. package/build-module/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  1094. package/build-module/components/list-view/use-list-view-images.js.map +1 -1
  1095. package/build-module/components/list-view/use-list-view-scroll-into-view.js.map +1 -1
  1096. package/build-module/components/list-view/utils.js.map +1 -1
  1097. package/build-module/components/media-placeholder/index.js.map +1 -1
  1098. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  1099. package/build-module/components/media-replace-flow/index.js.map +1 -1
  1100. package/build-module/components/media-replace-flow/index.native.js.map +1 -1
  1101. package/build-module/components/media-upload/check.js.map +1 -1
  1102. package/build-module/components/media-upload/constants.native.js.map +1 -1
  1103. package/build-module/components/media-upload/index.js.map +1 -1
  1104. package/build-module/components/media-upload/index.native.js.map +1 -1
  1105. package/build-module/components/media-upload-progress/constants.js.map +1 -1
  1106. package/build-module/components/media-upload-progress/index.native.js.map +1 -1
  1107. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  1108. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  1109. package/build-module/components/observe-typing/index.js.map +1 -1
  1110. package/build-module/components/panel-color-settings/index.js.map +1 -1
  1111. package/build-module/components/plain-text/index.js.map +1 -1
  1112. package/build-module/components/plain-text/index.native.js.map +1 -1
  1113. package/build-module/components/preview-options/index.js.map +1 -1
  1114. package/build-module/components/provider/block-refs-provider.js.map +1 -1
  1115. package/build-module/components/provider/index.js.map +1 -1
  1116. package/build-module/components/provider/index.native.js.map +1 -1
  1117. package/build-module/components/provider/use-block-sync.js.map +1 -1
  1118. package/build-module/components/provider/with-registry-provider.js.map +1 -1
  1119. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  1120. package/build-module/components/recursion-provider/index.js +2 -2
  1121. package/build-module/components/recursion-provider/index.js.map +1 -1
  1122. package/build-module/components/resizable-box-popover/index.js.map +1 -1
  1123. package/build-module/components/resolution-tool/index.js.map +1 -1
  1124. package/build-module/components/responsive-block-control/index.js.map +1 -1
  1125. package/build-module/components/responsive-block-control/label.js.map +1 -1
  1126. package/build-module/components/rich-text/content.js +25 -19
  1127. package/build-module/components/rich-text/content.js.map +1 -1
  1128. package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -1
  1129. package/build-module/components/rich-text/file-paste-handler.native.js.map +1 -1
  1130. package/build-module/components/rich-text/format-edit.js.map +1 -1
  1131. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  1132. package/build-module/components/rich-text/format-toolbar/index.native.js.map +1 -1
  1133. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  1134. package/build-module/components/rich-text/format-toolbar-container.native.js.map +1 -1
  1135. package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
  1136. package/build-module/components/rich-text/index.js +42 -2
  1137. package/build-module/components/rich-text/index.js.map +1 -1
  1138. package/build-module/components/rich-text/index.native.js +3 -1
  1139. package/build-module/components/rich-text/index.native.js.map +1 -1
  1140. package/build-module/components/rich-text/input-event.js.map +1 -1
  1141. package/build-module/components/rich-text/input-event.native.js.map +1 -1
  1142. package/build-module/components/rich-text/multiline.js.map +1 -1
  1143. package/build-module/components/rich-text/native/format-edit.js.map +1 -1
  1144. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  1145. package/build-module/components/rich-text/native/index.js.map +1 -1
  1146. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  1147. package/build-module/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -1
  1148. package/build-module/components/rich-text/native/use-format-types.js.map +1 -1
  1149. package/build-module/components/rich-text/prevent-event-discovery.js.map +1 -1
  1150. package/build-module/components/rich-text/remove-browser-shortcuts.native.js.map +1 -1
  1151. package/build-module/components/rich-text/shortcut.js.map +1 -1
  1152. package/build-module/components/rich-text/shortcut.native.js.map +1 -1
  1153. package/build-module/components/rich-text/split-value.js.map +1 -1
  1154. package/build-module/components/rich-text/toolbar-button.js.map +1 -1
  1155. package/build-module/components/rich-text/use-before-input-rules.js.map +1 -1
  1156. package/build-module/components/rich-text/use-delete.js.map +1 -1
  1157. package/build-module/components/rich-text/use-enter.js.map +1 -1
  1158. package/build-module/components/rich-text/use-firefox-compat.js.map +1 -1
  1159. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  1160. package/build-module/components/rich-text/use-input-events.js.map +1 -1
  1161. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  1162. package/build-module/components/rich-text/use-insert-replacement-text.js.map +1 -1
  1163. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  1164. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  1165. package/build-module/components/rich-text/use-remove-browser-shortcuts.js.map +1 -1
  1166. package/build-module/components/rich-text/use-shortcuts.js.map +1 -1
  1167. package/build-module/components/rich-text/use-undo-automatic-change.js +2 -2
  1168. package/build-module/components/rich-text/use-undo-automatic-change.js.map +1 -1
  1169. package/build-module/components/rich-text/utils.js.map +1 -1
  1170. package/build-module/components/rich-text/with-deprecations.js.map +1 -1
  1171. package/build-module/components/selection-scroll-into-view/index.js.map +1 -1
  1172. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  1173. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  1174. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  1175. package/build-module/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  1176. package/build-module/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  1177. package/build-module/components/spacing-sizes-control/input-controls/single.js.map +1 -1
  1178. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  1179. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
  1180. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  1181. package/build-module/components/text-decoration-control/index.js.map +1 -1
  1182. package/build-module/components/text-transform-control/index.js.map +1 -1
  1183. package/build-module/components/tool-selector/index.js.map +1 -1
  1184. package/build-module/components/typewriter/index.js.map +1 -1
  1185. package/build-module/components/ungroup-button/index.native.js.map +1 -1
  1186. package/build-module/components/unit-control/index.js.map +1 -1
  1187. package/build-module/components/unsupported-block-details/index.native.js.map +1 -1
  1188. package/build-module/components/url-input/button.js.map +1 -1
  1189. package/build-module/components/url-input/index.js.map +1 -1
  1190. package/build-module/components/url-input/index.native.js.map +1 -1
  1191. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  1192. package/build-module/components/url-popover/index.js.map +1 -1
  1193. package/build-module/components/url-popover/link-editor.js.map +1 -1
  1194. package/build-module/components/url-popover/link-viewer-url.js.map +1 -1
  1195. package/build-module/components/url-popover/link-viewer.js.map +1 -1
  1196. package/build-module/components/use-block-commands/index.js +20 -2
  1197. package/build-module/components/use-block-commands/index.js.map +1 -1
  1198. package/build-module/components/use-block-display-information/index.js.map +1 -1
  1199. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  1200. package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
  1201. package/build-module/components/use-flash-editable-blocks/index.js.map +1 -1
  1202. package/build-module/components/use-moving-animation/index.js.map +1 -1
  1203. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  1204. package/build-module/components/use-on-block-drop/index.native.js.map +1 -1
  1205. package/build-module/components/use-on-block-drop/types.js.map +1 -1
  1206. package/build-module/components/use-paste-styles/index.js +2 -1
  1207. package/build-module/components/use-paste-styles/index.js.map +1 -1
  1208. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  1209. package/build-module/components/use-settings/index.js.map +1 -1
  1210. package/build-module/components/use-unsupported-block-editor/index.native.js.map +1 -1
  1211. package/build-module/components/video-player/gridicon-play.native.js.map +1 -1
  1212. package/build-module/components/video-player/index.native.js.map +1 -1
  1213. package/build-module/components/warning/index.js.map +1 -1
  1214. package/build-module/components/warning/index.native.js.map +1 -1
  1215. package/build-module/components/writing-flow/index.js.map +1 -1
  1216. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  1217. package/build-module/components/writing-flow/use-click-selection.js.map +1 -1
  1218. package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
  1219. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  1220. package/build-module/components/writing-flow/use-input.js.map +1 -1
  1221. package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
  1222. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  1223. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  1224. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  1225. package/build-module/components/writing-flow/utils.js.map +1 -1
  1226. package/build-module/components/writing-mode-control/index.js.map +1 -1
  1227. package/build-module/elements/index.js.map +1 -1
  1228. package/build-module/hooks/align.js.map +1 -1
  1229. package/build-module/hooks/align.native.js.map +1 -1
  1230. package/build-module/hooks/anchor.js.map +1 -1
  1231. package/build-module/hooks/aria-label.js.map +1 -1
  1232. package/build-module/hooks/background.js +2 -2
  1233. package/build-module/hooks/background.js.map +1 -1
  1234. package/build-module/hooks/block-hooks.js.map +1 -1
  1235. package/build-module/hooks/block-renaming.js +0 -36
  1236. package/build-module/hooks/block-renaming.js.map +1 -1
  1237. package/build-module/hooks/border.js.map +1 -1
  1238. package/build-module/hooks/color.js.map +1 -1
  1239. package/build-module/hooks/compat.js.map +1 -1
  1240. package/build-module/hooks/content-lock-ui.js +5 -5
  1241. package/build-module/hooks/content-lock-ui.js.map +1 -1
  1242. package/build-module/hooks/contrast-checker.js.map +1 -1
  1243. package/build-module/hooks/custom-class-name.js.map +1 -1
  1244. package/build-module/hooks/custom-class-name.native.js.map +1 -1
  1245. package/build-module/hooks/dimensions.js.map +1 -1
  1246. package/build-module/hooks/duotone.js.map +1 -1
  1247. package/build-module/hooks/font-family.js.map +1 -1
  1248. package/build-module/hooks/font-size.js.map +1 -1
  1249. package/build-module/hooks/gap.js.map +1 -1
  1250. package/build-module/hooks/generated-class-name.js.map +1 -1
  1251. package/build-module/hooks/index.js +5 -4
  1252. package/build-module/hooks/index.js.map +1 -1
  1253. package/build-module/hooks/index.native.js.map +1 -1
  1254. package/build-module/hooks/layout-child.js.map +1 -1
  1255. package/build-module/hooks/layout.js +38 -19
  1256. package/build-module/hooks/layout.js.map +1 -1
  1257. package/build-module/hooks/layout.native.js.map +1 -1
  1258. package/build-module/hooks/line-height.js.map +1 -1
  1259. package/build-module/hooks/lock.js.map +1 -1
  1260. package/build-module/hooks/metadata.js.map +1 -1
  1261. package/build-module/hooks/position.js.map +1 -1
  1262. package/build-module/hooks/settings.js.map +1 -1
  1263. package/build-module/hooks/spacing-visualizer.js.map +1 -1
  1264. package/build-module/hooks/style.js.map +1 -1
  1265. package/build-module/hooks/supports.js +22 -1
  1266. package/build-module/hooks/supports.js.map +1 -1
  1267. package/build-module/hooks/text-align.js +145 -0
  1268. package/build-module/hooks/text-align.js.map +1 -0
  1269. package/build-module/hooks/typography.js +2 -1
  1270. package/build-module/hooks/typography.js.map +1 -1
  1271. package/build-module/hooks/typography.native.js.map +1 -1
  1272. package/build-module/hooks/use-bindings-attributes.js +68 -132
  1273. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  1274. package/build-module/hooks/use-border-props.js.map +1 -1
  1275. package/build-module/hooks/use-cached-truthy.js.map +1 -1
  1276. package/build-module/hooks/use-color-props.js.map +1 -1
  1277. package/build-module/hooks/use-editor-wrapper-styles.native.js.map +1 -1
  1278. package/build-module/hooks/use-shadow-props.js.map +1 -1
  1279. package/build-module/hooks/use-spacing-props.js.map +1 -1
  1280. package/build-module/hooks/use-typography-props.js +2 -1
  1281. package/build-module/hooks/use-typography-props.js.map +1 -1
  1282. package/build-module/hooks/use-zoom-out.js +23 -16
  1283. package/build-module/hooks/use-zoom-out.js.map +1 -1
  1284. package/build-module/hooks/utils.js +30 -6
  1285. package/build-module/hooks/utils.js.map +1 -1
  1286. package/build-module/index.js.map +1 -1
  1287. package/build-module/index.native.js.map +1 -1
  1288. package/build-module/layouts/constrained.js.map +1 -1
  1289. package/build-module/layouts/definitions.js +8 -6
  1290. package/build-module/layouts/definitions.js.map +1 -1
  1291. package/build-module/layouts/flex.js.map +1 -1
  1292. package/build-module/layouts/flow.js.map +1 -1
  1293. package/build-module/layouts/grid.js +52 -9
  1294. package/build-module/layouts/grid.js.map +1 -1
  1295. package/build-module/layouts/index.js.map +1 -1
  1296. package/build-module/layouts/utils.js.map +1 -1
  1297. package/build-module/lock-unlock.js.map +1 -1
  1298. package/build-module/private-apis.js.map +1 -1
  1299. package/build-module/private-apis.native.js.map +1 -1
  1300. package/build-module/store/actions.js +18 -4
  1301. package/build-module/store/actions.js.map +1 -1
  1302. package/build-module/store/array.js.map +1 -1
  1303. package/build-module/store/constants.js.map +1 -1
  1304. package/build-module/store/defaults.js.map +1 -1
  1305. package/build-module/store/defaults.native.js.map +1 -1
  1306. package/build-module/store/get-block-settings.js.map +1 -1
  1307. package/build-module/store/index.js.map +1 -1
  1308. package/build-module/store/private-actions.js +5 -2
  1309. package/build-module/store/private-actions.js.map +1 -1
  1310. package/build-module/store/private-keys.js.map +1 -1
  1311. package/build-module/store/private-selectors.js +87 -33
  1312. package/build-module/store/private-selectors.js.map +1 -1
  1313. package/build-module/store/reducer.js.map +1 -1
  1314. package/build-module/store/selectors.js +95 -55
  1315. package/build-module/store/selectors.js.map +1 -1
  1316. package/build-module/store/undo-ignore.js.map +1 -1
  1317. package/build-module/store/utils.js.map +1 -1
  1318. package/build-module/utils/dom.js.map +1 -1
  1319. package/build-module/utils/get-px-from-css-unit.js.map +1 -1
  1320. package/build-module/utils/index.js.map +1 -1
  1321. package/build-module/utils/math.js.map +1 -1
  1322. package/build-module/utils/object.js.map +1 -1
  1323. package/build-module/utils/order-inserter-block-items.js.map +1 -1
  1324. package/build-module/utils/pasting.js.map +1 -1
  1325. package/build-module/utils/selection.js.map +1 -1
  1326. package/build-module/utils/sorting.js.map +1 -1
  1327. package/build-module/utils/transform-styles/index.js.map +1 -1
  1328. package/build-module/utils/use-notify-copy.js.map +1 -1
  1329. package/build-style/content-rtl.css +36 -18
  1330. package/build-style/content.css +36 -18
  1331. package/build-style/default-editor-styles-rtl.css +1 -1
  1332. package/build-style/default-editor-styles.css +1 -1
  1333. package/build-style/style-rtl.css +73 -58
  1334. package/build-style/style.css +73 -58
  1335. package/package.json +32 -33
  1336. package/src/components/block-bindings-toolbar-indicator/style.scss +1 -1
  1337. package/src/components/block-edit/context.js +1 -0
  1338. package/src/components/block-edit/index.js +4 -0
  1339. package/src/components/block-inspector/index.js +6 -4
  1340. package/src/components/block-list/block.js +50 -27
  1341. package/src/components/block-list/block.native.js +3 -2
  1342. package/src/components/block-list/content.scss +37 -19
  1343. package/src/components/block-list/index.js +22 -6
  1344. package/src/components/block-list/use-block-props/index.js +5 -1
  1345. package/src/components/block-list/use-block-props/use-focus-first-element.js +7 -3
  1346. package/src/components/block-patterns-paging/index.js +4 -0
  1347. package/src/components/block-rename/modal.js +17 -13
  1348. package/src/components/block-rename/rename-control.js +8 -1
  1349. package/src/components/block-toolbar/index.js +26 -22
  1350. package/src/components/block-toolbar/use-has-block-toolbar.js +5 -3
  1351. package/src/components/block-tools/block-selection-button.js +55 -43
  1352. package/src/components/block-tools/use-show-block-tools.js +4 -7
  1353. package/src/components/block-variation-transforms/index.js +3 -1
  1354. package/src/components/button-block-appender/index.native.js +16 -1
  1355. package/src/components/default-block-appender/content.scss +1 -1
  1356. package/src/components/editor-styles/index.js +4 -2
  1357. package/src/components/global-styles/background-panel.js +30 -26
  1358. package/src/components/global-styles/style.scss +2 -8
  1359. package/src/components/global-styles/test/use-global-styles-output.js +8 -17
  1360. package/src/components/global-styles/use-global-styles-output.js +5 -5
  1361. package/src/components/iframe/index.js +20 -27
  1362. package/src/components/image-editor/cropper.js +11 -2
  1363. package/src/components/image-editor/index.js +0 -2
  1364. package/src/components/inserter/block-patterns-tab/index.js +53 -39
  1365. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +9 -36
  1366. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +2 -2
  1367. package/src/components/inserter/menu.js +27 -16
  1368. package/src/components/inserter/style.scss +83 -59
  1369. package/src/components/inserter/tabs.js +7 -2
  1370. package/src/components/inspector-controls-tabs/styles-tab.js +1 -1
  1371. package/src/components/link-control/style.scss +10 -2
  1372. package/src/components/link-control/test/index.js +1 -1
  1373. package/src/components/list-view/block-select-button.js +31 -2
  1374. package/src/components/list-view/use-list-view-drop-zone.js +5 -0
  1375. package/src/components/recursion-provider/index.js +2 -2
  1376. package/src/components/rich-text/README.md +4 -0
  1377. package/src/components/rich-text/content.js +26 -19
  1378. package/src/components/rich-text/index.js +46 -2
  1379. package/src/components/rich-text/index.native.js +3 -1
  1380. package/src/components/rich-text/use-undo-automatic-change.js +2 -6
  1381. package/src/components/use-block-commands/index.js +46 -28
  1382. package/src/components/use-paste-styles/index.js +2 -0
  1383. package/src/hooks/background.js +2 -2
  1384. package/src/hooks/block-renaming.js +0 -33
  1385. package/src/hooks/content-lock-ui.js +5 -7
  1386. package/src/hooks/index.js +5 -2
  1387. package/src/hooks/layout.js +57 -25
  1388. package/src/hooks/supports.js +24 -0
  1389. package/src/hooks/test/text-align.js +114 -0
  1390. package/src/hooks/test/use-typography-props.js +3 -1
  1391. package/src/hooks/text-align.js +178 -0
  1392. package/src/hooks/typography.js +2 -0
  1393. package/src/hooks/use-bindings-attributes.js +90 -161
  1394. package/src/hooks/use-typography-props.js +4 -1
  1395. package/src/hooks/use-zoom-out.js +25 -15
  1396. package/src/hooks/utils.js +41 -3
  1397. package/src/layouts/definitions.js +6 -6
  1398. package/src/layouts/grid.js +106 -47
  1399. package/src/store/actions.js +22 -6
  1400. package/src/store/private-actions.js +6 -3
  1401. package/src/store/private-selectors.js +127 -35
  1402. package/src/store/selectors.js +142 -86
  1403. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_MAXIMUM_VIEWPORT_WIDTH","DEFAULT_MINIMUM_VIEWPORT_WIDTH","DEFAULT_SCALE_FACTOR","DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MIN","DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MAX","DEFAULT_MINIMUM_FONT_SIZE_LIMIT","getComputedFluidTypographyValue","minimumFontSize","maximumFontSize","fontSize","minimumViewportWidth","maximumViewportWidth","scaleFactor","minimumFontSizeLimit","getTypographyValueAndUnit","fontSizeParsed","unit","minimumFontSizeLimitParsed","coerceTo","value","fontSizeValueInPx","minimumFontSizeFactor","Math","min","max","log2","calculatedMinimumFontSize","roundToPrecision","minimumFontSizeParsed","fontSizeUnit","maximumFontSizeParsed","minimumFontSizeRem","maximumViewportWidthParsed","minimumViewportWidthParsed","linearDenominator","minViewportWidthOffsetValue","viewportWidthOffset","linearFactor","linearFactorScaled","fluidTargetFontSize","rawValue","options","isFinite","rootSizeValue","acceptableUnits","acceptableUnitsGroup","join","regexUnits","RegExp","matches","match","length","returnValue","parseFloat","digits","base","pow","Number","round","undefined"],"sources":["@wordpress/block-editor/src/components/font-sizes/fluid-utils.js"],"sourcesContent":["/**\n * The fluid utilities must match the backend equivalent.\n * See: gutenberg_get_typography_font_size_value() in lib/block-supports/typography.php\n * ---------------------------------------------------------------\n */\n\n// Defaults.\nconst DEFAULT_MAXIMUM_VIEWPORT_WIDTH = '1600px';\nconst DEFAULT_MINIMUM_VIEWPORT_WIDTH = '320px';\nconst DEFAULT_SCALE_FACTOR = 1;\nconst DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MIN = 0.25;\nconst DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MAX = 0.75;\nconst DEFAULT_MINIMUM_FONT_SIZE_LIMIT = '14px';\n\n/**\n * Computes a fluid font-size value that uses clamp(). A minimum and maximum\n * font size OR a single font size can be specified.\n *\n * If a single font size is specified, it is scaled up and down using a logarithmic scale.\n *\n * @example\n * ```js\n * // Calculate fluid font-size value from a minimum and maximum value.\n * const fontSize = getComputedFluidTypographyValue( {\n * minimumFontSize: '20px',\n * maximumFontSize: '45px'\n * } );\n * // Calculate fluid font-size value from a single font size.\n * const fontSize = getComputedFluidTypographyValue( {\n * fontSize: '30px',\n * } );\n * ```\n *\n * @param {Object} args\n * @param {?string} args.minimumViewportWidth Minimum viewport size from which type will have fluidity. Optional if fontSize is specified.\n * @param {?string} args.maximumViewportWidth Maximum size up to which type will have fluidity. Optional if fontSize is specified.\n * @param {string|number} [args.fontSize] Size to derive maximumFontSize and minimumFontSize from, if necessary. Optional if minimumFontSize and maximumFontSize are specified.\n * @param {?string} args.maximumFontSize Maximum font size for any clamp() calculation. Optional.\n * @param {?string} args.minimumFontSize Minimum font size for any clamp() calculation. Optional.\n * @param {?number} args.scaleFactor A scale factor to determine how fast a font scales within boundaries. Optional.\n * @param {?string} args.minimumFontSizeLimit The smallest a calculated font size may be. Optional.\n *\n * @return {string|null} A font-size value using clamp().\n */\nexport function getComputedFluidTypographyValue( {\n\tminimumFontSize,\n\tmaximumFontSize,\n\tfontSize,\n\tminimumViewportWidth = DEFAULT_MINIMUM_VIEWPORT_WIDTH,\n\tmaximumViewportWidth = DEFAULT_MAXIMUM_VIEWPORT_WIDTH,\n\tscaleFactor = DEFAULT_SCALE_FACTOR,\n\tminimumFontSizeLimit,\n} ) {\n\t// Validate incoming settings and set defaults.\n\tminimumFontSizeLimit = !! getTypographyValueAndUnit( minimumFontSizeLimit )\n\t\t? minimumFontSizeLimit\n\t\t: DEFAULT_MINIMUM_FONT_SIZE_LIMIT;\n\n\t/*\n\t * Calculates missing minimumFontSize and maximumFontSize from\n\t * defaultFontSize if provided.\n\t */\n\tif ( fontSize ) {\n\t\t// Parses default font size.\n\t\tconst fontSizeParsed = getTypographyValueAndUnit( fontSize );\n\n\t\t// Protect against invalid units.\n\t\tif ( ! fontSizeParsed?.unit ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Parses the minimum font size limit, so we can perform checks using it.\n\t\tconst minimumFontSizeLimitParsed = getTypographyValueAndUnit(\n\t\t\tminimumFontSizeLimit,\n\t\t\t{\n\t\t\t\tcoerceTo: fontSizeParsed.unit,\n\t\t\t}\n\t\t);\n\n\t\t// Don't enforce minimum font size if a font size has explicitly set a min and max value.\n\t\tif (\n\t\t\t!! minimumFontSizeLimitParsed?.value &&\n\t\t\t! minimumFontSize &&\n\t\t\t! maximumFontSize\n\t\t) {\n\t\t\t/*\n\t\t\t * If a minimum size was not passed to this function\n\t\t\t * and the user-defined font size is lower than $minimum_font_size_limit,\n\t\t\t * do not calculate a fluid value.\n\t\t\t */\n\t\t\tif ( fontSizeParsed?.value <= minimumFontSizeLimitParsed?.value ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\t// If no fluid max font size is available use the incoming value.\n\t\tif ( ! maximumFontSize ) {\n\t\t\tmaximumFontSize = `${ fontSizeParsed.value }${ fontSizeParsed.unit }`;\n\t\t}\n\n\t\t/*\n\t\t * If no minimumFontSize is provided, create one using\n\t\t * the given font size multiplied by the min font size scale factor.\n\t\t */\n\t\tif ( ! minimumFontSize ) {\n\t\t\tconst fontSizeValueInPx =\n\t\t\t\tfontSizeParsed.unit === 'px'\n\t\t\t\t\t? fontSizeParsed.value\n\t\t\t\t\t: fontSizeParsed.value * 16;\n\n\t\t\t/*\n\t\t\t * The scale factor is a multiplier that affects how quickly the curve will move towards the minimum,\n\t\t\t * that is, how quickly the size factor reaches 0 given increasing font size values.\n\t\t\t * For a - b * log2(), lower values of b will make the curve move towards the minimum faster.\n\t\t\t * The scale factor is constrained between min and max values.\n\t\t\t */\n\t\t\tconst minimumFontSizeFactor = Math.min(\n\t\t\t\tMath.max(\n\t\t\t\t\t1 - 0.075 * Math.log2( fontSizeValueInPx ),\n\t\t\t\t\tDEFAULT_MINIMUM_FONT_SIZE_FACTOR_MIN\n\t\t\t\t),\n\t\t\t\tDEFAULT_MINIMUM_FONT_SIZE_FACTOR_MAX\n\t\t\t);\n\n\t\t\t// Calculates the minimum font size.\n\t\t\tconst calculatedMinimumFontSize = roundToPrecision(\n\t\t\t\tfontSizeParsed.value * minimumFontSizeFactor,\n\t\t\t\t3\n\t\t\t);\n\n\t\t\t// Only use calculated min font size if it's > $minimum_font_size_limit value.\n\t\t\tif (\n\t\t\t\t!! minimumFontSizeLimitParsed?.value &&\n\t\t\t\tcalculatedMinimumFontSize < minimumFontSizeLimitParsed?.value\n\t\t\t) {\n\t\t\t\tminimumFontSize = `${ minimumFontSizeLimitParsed.value }${ minimumFontSizeLimitParsed.unit }`;\n\t\t\t} else {\n\t\t\t\tminimumFontSize = `${ calculatedMinimumFontSize }${ fontSizeParsed.unit }`;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Grab the minimum font size and normalize it in order to use the value for calculations.\n\tconst minimumFontSizeParsed = getTypographyValueAndUnit( minimumFontSize );\n\n\t// We get a 'preferred' unit to keep units consistent when calculating,\n\t// otherwise the result will not be accurate.\n\tconst fontSizeUnit = minimumFontSizeParsed?.unit || 'rem';\n\n\t// Grabs the maximum font size and normalize it in order to use the value for calculations.\n\tconst maximumFontSizeParsed = getTypographyValueAndUnit( maximumFontSize, {\n\t\tcoerceTo: fontSizeUnit,\n\t} );\n\n\t// Checks for mandatory min and max sizes, and protects against unsupported units.\n\tif ( ! minimumFontSizeParsed || ! maximumFontSizeParsed ) {\n\t\treturn null;\n\t}\n\n\t// Uses rem for accessible fluid target font scaling.\n\tconst minimumFontSizeRem = getTypographyValueAndUnit( minimumFontSize, {\n\t\tcoerceTo: 'rem',\n\t} );\n\n\t// Viewport widths defined for fluid typography. Normalize units\n\tconst maximumViewportWidthParsed = getTypographyValueAndUnit(\n\t\tmaximumViewportWidth,\n\t\t{ coerceTo: fontSizeUnit }\n\t);\n\tconst minimumViewportWidthParsed = getTypographyValueAndUnit(\n\t\tminimumViewportWidth,\n\t\t{ coerceTo: fontSizeUnit }\n\t);\n\n\t// Protect against unsupported units.\n\tif (\n\t\t! maximumViewportWidthParsed ||\n\t\t! minimumViewportWidthParsed ||\n\t\t! minimumFontSizeRem\n\t) {\n\t\treturn null;\n\t}\n\n\t// Calculates the linear factor denominator. If it's 0, we cannot calculate a fluid value.\n\tconst linearDenominator =\n\t\tmaximumViewportWidthParsed.value - minimumViewportWidthParsed.value;\n\tif ( ! linearDenominator ) {\n\t\treturn null;\n\t}\n\n\t// Build CSS rule.\n\t// Borrowed from https://websemantics.uk/tools/responsive-font-calculator/.\n\tconst minViewportWidthOffsetValue = roundToPrecision(\n\t\tminimumViewportWidthParsed.value / 100,\n\t\t3\n\t);\n\n\tconst viewportWidthOffset =\n\t\troundToPrecision( minViewportWidthOffsetValue, 3 ) + fontSizeUnit;\n\tconst linearFactor =\n\t\t100 *\n\t\t( ( maximumFontSizeParsed.value - minimumFontSizeParsed.value ) /\n\t\t\tlinearDenominator );\n\tconst linearFactorScaled = roundToPrecision(\n\t\t( linearFactor || 1 ) * scaleFactor,\n\t\t3\n\t);\n\tconst fluidTargetFontSize = `${ minimumFontSizeRem.value }${ minimumFontSizeRem.unit } + ((1vw - ${ viewportWidthOffset }) * ${ linearFactorScaled })`;\n\n\treturn `clamp(${ minimumFontSize }, ${ fluidTargetFontSize }, ${ maximumFontSize })`;\n}\n\n/**\n * Internal method that checks a string for a unit and value and returns an array consisting of `'value'` and `'unit'`, e.g., [ '42', 'rem' ].\n * A raw font size of `value + unit` is expected. If the value is an integer, it will convert to `value + 'px'`.\n *\n * @param {string|number} rawValue Raw size value from theme.json.\n * @param {Object|undefined} options Calculation options.\n *\n * @return {{ unit: string, value: number }|null} An object consisting of `'value'` and `'unit'` properties.\n */\nexport function getTypographyValueAndUnit( rawValue, options = {} ) {\n\tif ( typeof rawValue !== 'string' && typeof rawValue !== 'number' ) {\n\t\treturn null;\n\t}\n\n\t// Converts numeric values to pixel values by default.\n\tif ( isFinite( rawValue ) ) {\n\t\trawValue = `${ rawValue }px`;\n\t}\n\n\tconst { coerceTo, rootSizeValue, acceptableUnits } = {\n\t\tcoerceTo: '',\n\t\t// Default browser font size. Later we could inject some JS to compute this `getComputedStyle( document.querySelector( \"html\" ) ).fontSize`.\n\t\trootSizeValue: 16,\n\t\tacceptableUnits: [ 'rem', 'px', 'em' ],\n\t\t...options,\n\t};\n\n\tconst acceptableUnitsGroup = acceptableUnits?.join( '|' );\n\tconst regexUnits = new RegExp(\n\t\t`^(\\\\d*\\\\.?\\\\d+)(${ acceptableUnitsGroup }){1,1}$`\n\t);\n\n\tconst matches = rawValue.match( regexUnits );\n\n\t// We need a number value and a unit.\n\tif ( ! matches || matches.length < 3 ) {\n\t\treturn null;\n\t}\n\n\tlet [ , value, unit ] = matches;\n\n\tlet returnValue = parseFloat( value );\n\n\tif ( 'px' === coerceTo && ( 'em' === unit || 'rem' === unit ) ) {\n\t\treturnValue = returnValue * rootSizeValue;\n\t\tunit = coerceTo;\n\t}\n\n\tif ( 'px' === unit && ( 'em' === coerceTo || 'rem' === coerceTo ) ) {\n\t\treturnValue = returnValue / rootSizeValue;\n\t\tunit = coerceTo;\n\t}\n\n\t/*\n\t * No calculation is required if swapping between em and rem yet,\n\t * since we assume a root size value. Later we might like to differentiate between\n\t * :root font size (rem) and parent element font size (em) relativity.\n\t */\n\tif (\n\t\t( 'em' === coerceTo || 'rem' === coerceTo ) &&\n\t\t( 'em' === unit || 'rem' === unit )\n\t) {\n\t\tunit = coerceTo;\n\t}\n\n\treturn {\n\t\tvalue: roundToPrecision( returnValue, 3 ),\n\t\tunit,\n\t};\n}\n\n/**\n * Returns a value rounded to defined precision.\n * Returns `undefined` if the value is not a valid finite number.\n *\n * @param {number} value Raw value.\n * @param {number} digits The number of digits to appear after the decimal point\n *\n * @return {number|undefined} Value rounded to standard precision.\n */\nexport function roundToPrecision( value, digits = 3 ) {\n\tconst base = Math.pow( 10, digits );\n\treturn Number.isFinite( value )\n\t\t? parseFloat( Math.round( value * base ) / base )\n\t\t: undefined;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["DEFAULT_MAXIMUM_VIEWPORT_WIDTH","DEFAULT_MINIMUM_VIEWPORT_WIDTH","DEFAULT_SCALE_FACTOR","DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MIN","DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MAX","DEFAULT_MINIMUM_FONT_SIZE_LIMIT","getComputedFluidTypographyValue","minimumFontSize","maximumFontSize","fontSize","minimumViewportWidth","maximumViewportWidth","scaleFactor","minimumFontSizeLimit","getTypographyValueAndUnit","fontSizeParsed","unit","minimumFontSizeLimitParsed","coerceTo","value","fontSizeValueInPx","minimumFontSizeFactor","Math","min","max","log2","calculatedMinimumFontSize","roundToPrecision","minimumFontSizeParsed","fontSizeUnit","maximumFontSizeParsed","minimumFontSizeRem","maximumViewportWidthParsed","minimumViewportWidthParsed","linearDenominator","minViewportWidthOffsetValue","viewportWidthOffset","linearFactor","linearFactorScaled","fluidTargetFontSize","rawValue","options","isFinite","rootSizeValue","acceptableUnits","acceptableUnitsGroup","join","regexUnits","RegExp","matches","match","length","returnValue","parseFloat","digits","base","pow","Number","round","undefined"],"sources":["@wordpress/block-editor/src/components/font-sizes/fluid-utils.js"],"sourcesContent":["/**\n * The fluid utilities must match the backend equivalent.\n * See: gutenberg_get_typography_font_size_value() in lib/block-supports/typography.php\n * ---------------------------------------------------------------\n */\n\n// Defaults.\nconst DEFAULT_MAXIMUM_VIEWPORT_WIDTH = '1600px';\nconst DEFAULT_MINIMUM_VIEWPORT_WIDTH = '320px';\nconst DEFAULT_SCALE_FACTOR = 1;\nconst DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MIN = 0.25;\nconst DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MAX = 0.75;\nconst DEFAULT_MINIMUM_FONT_SIZE_LIMIT = '14px';\n\n/**\n * Computes a fluid font-size value that uses clamp(). A minimum and maximum\n * font size OR a single font size can be specified.\n *\n * If a single font size is specified, it is scaled up and down using a logarithmic scale.\n *\n * @example\n * ```js\n * // Calculate fluid font-size value from a minimum and maximum value.\n * const fontSize = getComputedFluidTypographyValue( {\n * minimumFontSize: '20px',\n * maximumFontSize: '45px'\n * } );\n * // Calculate fluid font-size value from a single font size.\n * const fontSize = getComputedFluidTypographyValue( {\n * fontSize: '30px',\n * } );\n * ```\n *\n * @param {Object} args\n * @param {?string} args.minimumViewportWidth Minimum viewport size from which type will have fluidity. Optional if fontSize is specified.\n * @param {?string} args.maximumViewportWidth Maximum size up to which type will have fluidity. Optional if fontSize is specified.\n * @param {string|number} [args.fontSize] Size to derive maximumFontSize and minimumFontSize from, if necessary. Optional if minimumFontSize and maximumFontSize are specified.\n * @param {?string} args.maximumFontSize Maximum font size for any clamp() calculation. Optional.\n * @param {?string} args.minimumFontSize Minimum font size for any clamp() calculation. Optional.\n * @param {?number} args.scaleFactor A scale factor to determine how fast a font scales within boundaries. Optional.\n * @param {?string} args.minimumFontSizeLimit The smallest a calculated font size may be. Optional.\n *\n * @return {string|null} A font-size value using clamp().\n */\nexport function getComputedFluidTypographyValue( {\n\tminimumFontSize,\n\tmaximumFontSize,\n\tfontSize,\n\tminimumViewportWidth = DEFAULT_MINIMUM_VIEWPORT_WIDTH,\n\tmaximumViewportWidth = DEFAULT_MAXIMUM_VIEWPORT_WIDTH,\n\tscaleFactor = DEFAULT_SCALE_FACTOR,\n\tminimumFontSizeLimit,\n} ) {\n\t// Validate incoming settings and set defaults.\n\tminimumFontSizeLimit = !! getTypographyValueAndUnit( minimumFontSizeLimit )\n\t\t? minimumFontSizeLimit\n\t\t: DEFAULT_MINIMUM_FONT_SIZE_LIMIT;\n\n\t/*\n\t * Calculates missing minimumFontSize and maximumFontSize from\n\t * defaultFontSize if provided.\n\t */\n\tif ( fontSize ) {\n\t\t// Parses default font size.\n\t\tconst fontSizeParsed = getTypographyValueAndUnit( fontSize );\n\n\t\t// Protect against invalid units.\n\t\tif ( ! fontSizeParsed?.unit ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Parses the minimum font size limit, so we can perform checks using it.\n\t\tconst minimumFontSizeLimitParsed = getTypographyValueAndUnit(\n\t\t\tminimumFontSizeLimit,\n\t\t\t{\n\t\t\t\tcoerceTo: fontSizeParsed.unit,\n\t\t\t}\n\t\t);\n\n\t\t// Don't enforce minimum font size if a font size has explicitly set a min and max value.\n\t\tif (\n\t\t\t!! minimumFontSizeLimitParsed?.value &&\n\t\t\t! minimumFontSize &&\n\t\t\t! maximumFontSize\n\t\t) {\n\t\t\t/*\n\t\t\t * If a minimum size was not passed to this function\n\t\t\t * and the user-defined font size is lower than $minimum_font_size_limit,\n\t\t\t * do not calculate a fluid value.\n\t\t\t */\n\t\t\tif ( fontSizeParsed?.value <= minimumFontSizeLimitParsed?.value ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\t// If no fluid max font size is available use the incoming value.\n\t\tif ( ! maximumFontSize ) {\n\t\t\tmaximumFontSize = `${ fontSizeParsed.value }${ fontSizeParsed.unit }`;\n\t\t}\n\n\t\t/*\n\t\t * If no minimumFontSize is provided, create one using\n\t\t * the given font size multiplied by the min font size scale factor.\n\t\t */\n\t\tif ( ! minimumFontSize ) {\n\t\t\tconst fontSizeValueInPx =\n\t\t\t\tfontSizeParsed.unit === 'px'\n\t\t\t\t\t? fontSizeParsed.value\n\t\t\t\t\t: fontSizeParsed.value * 16;\n\n\t\t\t/*\n\t\t\t * The scale factor is a multiplier that affects how quickly the curve will move towards the minimum,\n\t\t\t * that is, how quickly the size factor reaches 0 given increasing font size values.\n\t\t\t * For a - b * log2(), lower values of b will make the curve move towards the minimum faster.\n\t\t\t * The scale factor is constrained between min and max values.\n\t\t\t */\n\t\t\tconst minimumFontSizeFactor = Math.min(\n\t\t\t\tMath.max(\n\t\t\t\t\t1 - 0.075 * Math.log2( fontSizeValueInPx ),\n\t\t\t\t\tDEFAULT_MINIMUM_FONT_SIZE_FACTOR_MIN\n\t\t\t\t),\n\t\t\t\tDEFAULT_MINIMUM_FONT_SIZE_FACTOR_MAX\n\t\t\t);\n\n\t\t\t// Calculates the minimum font size.\n\t\t\tconst calculatedMinimumFontSize = roundToPrecision(\n\t\t\t\tfontSizeParsed.value * minimumFontSizeFactor,\n\t\t\t\t3\n\t\t\t);\n\n\t\t\t// Only use calculated min font size if it's > $minimum_font_size_limit value.\n\t\t\tif (\n\t\t\t\t!! minimumFontSizeLimitParsed?.value &&\n\t\t\t\tcalculatedMinimumFontSize < minimumFontSizeLimitParsed?.value\n\t\t\t) {\n\t\t\t\tminimumFontSize = `${ minimumFontSizeLimitParsed.value }${ minimumFontSizeLimitParsed.unit }`;\n\t\t\t} else {\n\t\t\t\tminimumFontSize = `${ calculatedMinimumFontSize }${ fontSizeParsed.unit }`;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Grab the minimum font size and normalize it in order to use the value for calculations.\n\tconst minimumFontSizeParsed = getTypographyValueAndUnit( minimumFontSize );\n\n\t// We get a 'preferred' unit to keep units consistent when calculating,\n\t// otherwise the result will not be accurate.\n\tconst fontSizeUnit = minimumFontSizeParsed?.unit || 'rem';\n\n\t// Grabs the maximum font size and normalize it in order to use the value for calculations.\n\tconst maximumFontSizeParsed = getTypographyValueAndUnit( maximumFontSize, {\n\t\tcoerceTo: fontSizeUnit,\n\t} );\n\n\t// Checks for mandatory min and max sizes, and protects against unsupported units.\n\tif ( ! minimumFontSizeParsed || ! maximumFontSizeParsed ) {\n\t\treturn null;\n\t}\n\n\t// Uses rem for accessible fluid target font scaling.\n\tconst minimumFontSizeRem = getTypographyValueAndUnit( minimumFontSize, {\n\t\tcoerceTo: 'rem',\n\t} );\n\n\t// Viewport widths defined for fluid typography. Normalize units\n\tconst maximumViewportWidthParsed = getTypographyValueAndUnit(\n\t\tmaximumViewportWidth,\n\t\t{ coerceTo: fontSizeUnit }\n\t);\n\tconst minimumViewportWidthParsed = getTypographyValueAndUnit(\n\t\tminimumViewportWidth,\n\t\t{ coerceTo: fontSizeUnit }\n\t);\n\n\t// Protect against unsupported units.\n\tif (\n\t\t! maximumViewportWidthParsed ||\n\t\t! minimumViewportWidthParsed ||\n\t\t! minimumFontSizeRem\n\t) {\n\t\treturn null;\n\t}\n\n\t// Calculates the linear factor denominator. If it's 0, we cannot calculate a fluid value.\n\tconst linearDenominator =\n\t\tmaximumViewportWidthParsed.value - minimumViewportWidthParsed.value;\n\tif ( ! linearDenominator ) {\n\t\treturn null;\n\t}\n\n\t// Build CSS rule.\n\t// Borrowed from https://websemantics.uk/tools/responsive-font-calculator/.\n\tconst minViewportWidthOffsetValue = roundToPrecision(\n\t\tminimumViewportWidthParsed.value / 100,\n\t\t3\n\t);\n\n\tconst viewportWidthOffset =\n\t\troundToPrecision( minViewportWidthOffsetValue, 3 ) + fontSizeUnit;\n\tconst linearFactor =\n\t\t100 *\n\t\t( ( maximumFontSizeParsed.value - minimumFontSizeParsed.value ) /\n\t\t\tlinearDenominator );\n\tconst linearFactorScaled = roundToPrecision(\n\t\t( linearFactor || 1 ) * scaleFactor,\n\t\t3\n\t);\n\tconst fluidTargetFontSize = `${ minimumFontSizeRem.value }${ minimumFontSizeRem.unit } + ((1vw - ${ viewportWidthOffset }) * ${ linearFactorScaled })`;\n\n\treturn `clamp(${ minimumFontSize }, ${ fluidTargetFontSize }, ${ maximumFontSize })`;\n}\n\n/**\n * Internal method that checks a string for a unit and value and returns an array consisting of `'value'` and `'unit'`, e.g., [ '42', 'rem' ].\n * A raw font size of `value + unit` is expected. If the value is an integer, it will convert to `value + 'px'`.\n *\n * @param {string|number} rawValue Raw size value from theme.json.\n * @param {Object|undefined} options Calculation options.\n *\n * @return {{ unit: string, value: number }|null} An object consisting of `'value'` and `'unit'` properties.\n */\nexport function getTypographyValueAndUnit( rawValue, options = {} ) {\n\tif ( typeof rawValue !== 'string' && typeof rawValue !== 'number' ) {\n\t\treturn null;\n\t}\n\n\t// Converts numeric values to pixel values by default.\n\tif ( isFinite( rawValue ) ) {\n\t\trawValue = `${ rawValue }px`;\n\t}\n\n\tconst { coerceTo, rootSizeValue, acceptableUnits } = {\n\t\tcoerceTo: '',\n\t\t// Default browser font size. Later we could inject some JS to compute this `getComputedStyle( document.querySelector( \"html\" ) ).fontSize`.\n\t\trootSizeValue: 16,\n\t\tacceptableUnits: [ 'rem', 'px', 'em' ],\n\t\t...options,\n\t};\n\n\tconst acceptableUnitsGroup = acceptableUnits?.join( '|' );\n\tconst regexUnits = new RegExp(\n\t\t`^(\\\\d*\\\\.?\\\\d+)(${ acceptableUnitsGroup }){1,1}$`\n\t);\n\n\tconst matches = rawValue.match( regexUnits );\n\n\t// We need a number value and a unit.\n\tif ( ! matches || matches.length < 3 ) {\n\t\treturn null;\n\t}\n\n\tlet [ , value, unit ] = matches;\n\n\tlet returnValue = parseFloat( value );\n\n\tif ( 'px' === coerceTo && ( 'em' === unit || 'rem' === unit ) ) {\n\t\treturnValue = returnValue * rootSizeValue;\n\t\tunit = coerceTo;\n\t}\n\n\tif ( 'px' === unit && ( 'em' === coerceTo || 'rem' === coerceTo ) ) {\n\t\treturnValue = returnValue / rootSizeValue;\n\t\tunit = coerceTo;\n\t}\n\n\t/*\n\t * No calculation is required if swapping between em and rem yet,\n\t * since we assume a root size value. Later we might like to differentiate between\n\t * :root font size (rem) and parent element font size (em) relativity.\n\t */\n\tif (\n\t\t( 'em' === coerceTo || 'rem' === coerceTo ) &&\n\t\t( 'em' === unit || 'rem' === unit )\n\t) {\n\t\tunit = coerceTo;\n\t}\n\n\treturn {\n\t\tvalue: roundToPrecision( returnValue, 3 ),\n\t\tunit,\n\t};\n}\n\n/**\n * Returns a value rounded to defined precision.\n * Returns `undefined` if the value is not a valid finite number.\n *\n * @param {number} value Raw value.\n * @param {number} digits The number of digits to appear after the decimal point\n *\n * @return {number|undefined} Value rounded to standard precision.\n */\nexport function roundToPrecision( value, digits = 3 ) {\n\tconst base = Math.pow( 10, digits );\n\treturn Number.isFinite( value )\n\t\t? parseFloat( Math.round( value * base ) / base )\n\t\t: undefined;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAMA,8BAA8B,GAAG,QAAQ;AAC/C,MAAMC,8BAA8B,GAAG,OAAO;AAC9C,MAAMC,oBAAoB,GAAG,CAAC;AAC9B,MAAMC,oCAAoC,GAAG,IAAI;AACjD,MAAMC,oCAAoC,GAAG,IAAI;AACjD,MAAMC,+BAA+B,GAAG,MAAM;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,+BAA+BA,CAAE;EAChDC,eAAe;EACfC,eAAe;EACfC,QAAQ;EACRC,oBAAoB,GAAGT,8BAA8B;EACrDU,oBAAoB,GAAGX,8BAA8B;EACrDY,WAAW,GAAGV,oBAAoB;EAClCW;AACD,CAAC,EAAG;EACH;EACAA,oBAAoB,GAAG,CAAC,CAAEC,yBAAyB,CAAED,oBAAqB,CAAC,GACxEA,oBAAoB,GACpBR,+BAA+B;;EAElC;AACD;AACA;AACA;EACC,IAAKI,QAAQ,EAAG;IACf;IACA,MAAMM,cAAc,GAAGD,yBAAyB,CAAEL,QAAS,CAAC;;IAE5D;IACA,IAAK,CAAEM,cAAc,EAAEC,IAAI,EAAG;MAC7B,OAAO,IAAI;IACZ;;IAEA;IACA,MAAMC,0BAA0B,GAAGH,yBAAyB,CAC3DD,oBAAoB,EACpB;MACCK,QAAQ,EAAEH,cAAc,CAACC;IAC1B,CACD,CAAC;;IAED;IACA,IACC,CAAC,CAAEC,0BAA0B,EAAEE,KAAK,IACpC,CAAEZ,eAAe,IACjB,CAAEC,eAAe,EAChB;MACD;AACH;AACA;AACA;AACA;MACG,IAAKO,cAAc,EAAEI,KAAK,IAAIF,0BAA0B,EAAEE,KAAK,EAAG;QACjE,OAAO,IAAI;MACZ;IACD;;IAEA;IACA,IAAK,CAAEX,eAAe,EAAG;MACxBA,eAAe,GAAI,GAAGO,cAAc,CAACI,KAAO,GAAGJ,cAAc,CAACC,IAAM,EAAC;IACtE;;IAEA;AACF;AACA;AACA;IACE,IAAK,CAAET,eAAe,EAAG;MACxB,MAAMa,iBAAiB,GACtBL,cAAc,CAACC,IAAI,KAAK,IAAI,GACzBD,cAAc,CAACI,KAAK,GACpBJ,cAAc,CAACI,KAAK,GAAG,EAAE;;MAE7B;AACH;AACA;AACA;AACA;AACA;MACG,MAAME,qBAAqB,GAAGC,IAAI,CAACC,GAAG,CACrCD,IAAI,CAACE,GAAG,CACP,CAAC,GAAG,KAAK,GAAGF,IAAI,CAACG,IAAI,CAAEL,iBAAkB,CAAC,EAC1CjB,oCACD,CAAC,EACDC,oCACD,CAAC;;MAED;MACA,MAAMsB,yBAAyB,GAAGC,gBAAgB,CACjDZ,cAAc,CAACI,KAAK,GAAGE,qBAAqB,EAC5C,CACD,CAAC;;MAED;MACA,IACC,CAAC,CAAEJ,0BAA0B,EAAEE,KAAK,IACpCO,yBAAyB,GAAGT,0BAA0B,EAAEE,KAAK,EAC5D;QACDZ,eAAe,GAAI,GAAGU,0BAA0B,CAACE,KAAO,GAAGF,0BAA0B,CAACD,IAAM,EAAC;MAC9F,CAAC,MAAM;QACNT,eAAe,GAAI,GAAGmB,yBAA2B,GAAGX,cAAc,CAACC,IAAM,EAAC;MAC3E;IACD;EACD;;EAEA;EACA,MAAMY,qBAAqB,GAAGd,yBAAyB,CAAEP,eAAgB,CAAC;;EAE1E;EACA;EACA,MAAMsB,YAAY,GAAGD,qBAAqB,EAAEZ,IAAI,IAAI,KAAK;;EAEzD;EACA,MAAMc,qBAAqB,GAAGhB,yBAAyB,CAAEN,eAAe,EAAE;IACzEU,QAAQ,EAAEW;EACX,CAAE,CAAC;;EAEH;EACA,IAAK,CAAED,qBAAqB,IAAI,CAAEE,qBAAqB,EAAG;IACzD,OAAO,IAAI;EACZ;;EAEA;EACA,MAAMC,kBAAkB,GAAGjB,yBAAyB,CAAEP,eAAe,EAAE;IACtEW,QAAQ,EAAE;EACX,CAAE,CAAC;;EAEH;EACA,MAAMc,0BAA0B,GAAGlB,yBAAyB,CAC3DH,oBAAoB,EACpB;IAAEO,QAAQ,EAAEW;EAAa,CAC1B,CAAC;EACD,MAAMI,0BAA0B,GAAGnB,yBAAyB,CAC3DJ,oBAAoB,EACpB;IAAEQ,QAAQ,EAAEW;EAAa,CAC1B,CAAC;;EAED;EACA,IACC,CAAEG,0BAA0B,IAC5B,CAAEC,0BAA0B,IAC5B,CAAEF,kBAAkB,EACnB;IACD,OAAO,IAAI;EACZ;;EAEA;EACA,MAAMG,iBAAiB,GACtBF,0BAA0B,CAACb,KAAK,GAAGc,0BAA0B,CAACd,KAAK;EACpE,IAAK,CAAEe,iBAAiB,EAAG;IAC1B,OAAO,IAAI;EACZ;;EAEA;EACA;EACA,MAAMC,2BAA2B,GAAGR,gBAAgB,CACnDM,0BAA0B,CAACd,KAAK,GAAG,GAAG,EACtC,CACD,CAAC;EAED,MAAMiB,mBAAmB,GACxBT,gBAAgB,CAAEQ,2BAA2B,EAAE,CAAE,CAAC,GAAGN,YAAY;EAClE,MAAMQ,YAAY,GACjB,GAAG,IACD,CAAEP,qBAAqB,CAACX,KAAK,GAAGS,qBAAqB,CAACT,KAAK,IAC5De,iBAAiB,CAAE;EACrB,MAAMI,kBAAkB,GAAGX,gBAAgB,CAC1C,CAAEU,YAAY,IAAI,CAAC,IAAKzB,WAAW,EACnC,CACD,CAAC;EACD,MAAM2B,mBAAmB,GAAI,GAAGR,kBAAkB,CAACZ,KAAO,GAAGY,kBAAkB,CAACf,IAAM,cAAcoB,mBAAqB,OAAOE,kBAAoB,GAAE;EAEtJ,OAAQ,SAAS/B,eAAiB,KAAKgC,mBAAqB,KAAK/B,eAAiB,GAAE;AACrF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,yBAAyBA,CAAE0B,QAAQ,EAAEC,OAAO,GAAG,CAAC,CAAC,EAAG;EACnE,IAAK,OAAOD,QAAQ,KAAK,QAAQ,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAG;IACnE,OAAO,IAAI;EACZ;;EAEA;EACA,IAAKE,QAAQ,CAAEF,QAAS,CAAC,EAAG;IAC3BA,QAAQ,GAAI,GAAGA,QAAU,IAAG;EAC7B;EAEA,MAAM;IAAEtB,QAAQ;IAAEyB,aAAa;IAAEC;EAAgB,CAAC,GAAG;IACpD1B,QAAQ,EAAE,EAAE;IACZ;IACAyB,aAAa,EAAE,EAAE;IACjBC,eAAe,EAAE,CAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAE;IACtC,GAAGH;EACJ,CAAC;EAED,MAAMI,oBAAoB,GAAGD,eAAe,EAAEE,IAAI,CAAE,GAAI,CAAC;EACzD,MAAMC,UAAU,GAAG,IAAIC,MAAM,CAC3B,mBAAmBH,oBAAsB,SAC3C,CAAC;EAED,MAAMI,OAAO,GAAGT,QAAQ,CAACU,KAAK,CAAEH,UAAW,CAAC;;EAE5C;EACA,IAAK,CAAEE,OAAO,IAAIA,OAAO,CAACE,MAAM,GAAG,CAAC,EAAG;IACtC,OAAO,IAAI;EACZ;EAEA,IAAI,GAAIhC,KAAK,EAAEH,IAAI,CAAE,GAAGiC,OAAO;EAE/B,IAAIG,WAAW,GAAGC,UAAU,CAAElC,KAAM,CAAC;EAErC,IAAK,IAAI,KAAKD,QAAQ,KAAM,IAAI,KAAKF,IAAI,IAAI,KAAK,KAAKA,IAAI,CAAE,EAAG;IAC/DoC,WAAW,GAAGA,WAAW,GAAGT,aAAa;IACzC3B,IAAI,GAAGE,QAAQ;EAChB;EAEA,IAAK,IAAI,KAAKF,IAAI,KAAM,IAAI,KAAKE,QAAQ,IAAI,KAAK,KAAKA,QAAQ,CAAE,EAAG;IACnEkC,WAAW,GAAGA,WAAW,GAAGT,aAAa;IACzC3B,IAAI,GAAGE,QAAQ;EAChB;;EAEA;AACD;AACA;AACA;AACA;EACC,IACC,CAAE,IAAI,KAAKA,QAAQ,IAAI,KAAK,KAAKA,QAAQ,MACvC,IAAI,KAAKF,IAAI,IAAI,KAAK,KAAKA,IAAI,CAAE,EAClC;IACDA,IAAI,GAAGE,QAAQ;EAChB;EAEA,OAAO;IACNC,KAAK,EAAEQ,gBAAgB,CAAEyB,WAAW,EAAE,CAAE,CAAC;IACzCpC;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASW,gBAAgBA,CAAER,KAAK,EAAEmC,MAAM,GAAG,CAAC,EAAG;EACrD,MAAMC,IAAI,GAAGjC,IAAI,CAACkC,GAAG,CAAE,EAAE,EAAEF,MAAO,CAAC;EACnC,OAAOG,MAAM,CAACf,QAAQ,CAAEvB,KAAM,CAAC,GAC5BkC,UAAU,CAAE/B,IAAI,CAACoC,KAAK,CAAEvC,KAAK,GAAGoC,IAAK,CAAC,GAAGA,IAAK,CAAC,GAC/CI,SAAS;AACb","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["FontSizePicker","BaseFontSizePicker","useSettings","props","fontSizes","customFontSize","createElement","disableCustomFontSizes"],"sources":["@wordpress/block-editor/src/components/font-sizes/font-size-picker.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { FontSizePicker as BaseFontSizePicker } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../use-settings';\n\nfunction FontSizePicker( props ) {\n\tconst [ fontSizes, customFontSize ] = useSettings(\n\t\t'typography.fontSizes',\n\t\t'typography.customFontSize'\n\t);\n\n\treturn (\n\t\t<BaseFontSizePicker\n\t\t\t{ ...props }\n\t\t\tfontSizes={ fontSizes }\n\t\t\tdisableCustomFontSizes={ ! customFontSize }\n\t\t/>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/font-sizes/README.md\n */\nexport default FontSizePicker;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,cAAc,IAAIC,kBAAkB,QAAQ,uBAAuB;;AAE5E;AACA;AACA;AACA,SAASC,WAAW,QAAQ,iBAAiB;AAE7C,SAASF,cAAcA,CAAEG,KAAK,EAAG;EAChC,MAAM,CAAEC,SAAS,EAAEC,cAAc,CAAE,GAAGH,WAAW,CAChD,sBAAsB,EACtB,2BACD,CAAC;EAED,OACCI,aAAA,CAACL,kBAAkB;IAAA,GACbE,KAAK;IACVC,SAAS,EAAGA,SAAW;IACvBG,sBAAsB,EAAG,CAAEF;EAAgB,CAC3C,CAAC;AAEJ;;AAEA;AACA;AACA;AACA,eAAeL,cAAc"}
1
+ {"version":3,"names":["FontSizePicker","BaseFontSizePicker","useSettings","props","fontSizes","customFontSize","createElement","disableCustomFontSizes"],"sources":["@wordpress/block-editor/src/components/font-sizes/font-size-picker.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { FontSizePicker as BaseFontSizePicker } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../use-settings';\n\nfunction FontSizePicker( props ) {\n\tconst [ fontSizes, customFontSize ] = useSettings(\n\t\t'typography.fontSizes',\n\t\t'typography.customFontSize'\n\t);\n\n\treturn (\n\t\t<BaseFontSizePicker\n\t\t\t{ ...props }\n\t\t\tfontSizes={ fontSizes }\n\t\t\tdisableCustomFontSizes={ ! customFontSize }\n\t\t/>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/font-sizes/README.md\n */\nexport default FontSizePicker;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,cAAc,IAAIC,kBAAkB,QAAQ,uBAAuB;;AAE5E;AACA;AACA;AACA,SAASC,WAAW,QAAQ,iBAAiB;AAE7C,SAASF,cAAcA,CAAEG,KAAK,EAAG;EAChC,MAAM,CAAEC,SAAS,EAAEC,cAAc,CAAE,GAAGH,WAAW,CAChD,sBAAsB,EACtB,2BACD,CAAC;EAED,OACCI,aAAA,CAACL,kBAAkB;IAAA,GACbE,KAAK;IACVC,SAAS,EAAGA,SAAW;IACvBG,sBAAsB,EAAG,CAAEF;EAAgB,CAC3C,CAAC;AAEJ;;AAEA;AACA;AACA;AACA,eAAeL,cAAc","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["getFontSize","getFontSizeClass","getFontSizeObjectByValue","getComputedFluidTypographyValue","default","FontSizePicker","withFontSizes"],"sources":["@wordpress/block-editor/src/components/font-sizes/index.js"],"sourcesContent":["export {\n\tgetFontSize,\n\tgetFontSizeClass,\n\tgetFontSizeObjectByValue,\n} from './utils';\nexport { getComputedFluidTypographyValue } from './fluid-utils';\nexport { default as FontSizePicker } from './font-size-picker';\nexport { default as withFontSizes } from './with-font-sizes';\n"],"mappings":"AAAA,SACCA,WAAW,EACXC,gBAAgB,EAChBC,wBAAwB,QAClB,SAAS;AAChB,SAASC,+BAA+B,QAAQ,eAAe;AAC/D,SAASC,OAAO,IAAIC,cAAc,QAAQ,oBAAoB;AAC9D,SAASD,OAAO,IAAIE,aAAa,QAAQ,mBAAmB"}
1
+ {"version":3,"names":["getFontSize","getFontSizeClass","getFontSizeObjectByValue","getComputedFluidTypographyValue","default","FontSizePicker","withFontSizes"],"sources":["@wordpress/block-editor/src/components/font-sizes/index.js"],"sourcesContent":["export {\n\tgetFontSize,\n\tgetFontSizeClass,\n\tgetFontSizeObjectByValue,\n} from './utils';\nexport { getComputedFluidTypographyValue } from './fluid-utils';\nexport { default as FontSizePicker } from './font-size-picker';\nexport { default as withFontSizes } from './with-font-sizes';\n"],"mappings":"AAAA,SACCA,WAAW,EACXC,gBAAgB,EAChBC,wBAAwB,QAClB,SAAS;AAChB,SAASC,+BAA+B,QAAQ,eAAe;AAC/D,SAASC,OAAO,IAAIC,cAAc,QAAQ,oBAAoB;AAC9D,SAASD,OAAO,IAAIE,aAAa,QAAQ,mBAAmB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["getFontSize","getFontSizeClass","getFontSizeObjectByValue","default","FontSizePicker","withFontSizes"],"sources":["@wordpress/block-editor/src/components/font-sizes/index.native.js"],"sourcesContent":["export {\n\tgetFontSize,\n\tgetFontSizeClass,\n\tgetFontSizeObjectByValue,\n} from './utils';\nexport { default as FontSizePicker } from './font-size-picker';\nexport { default as withFontSizes } from './with-font-sizes';\n"],"mappings":"AAAA,SACCA,WAAW,EACXC,gBAAgB,EAChBC,wBAAwB,QAClB,SAAS;AAChB,SAASC,OAAO,IAAIC,cAAc,QAAQ,oBAAoB;AAC9D,SAASD,OAAO,IAAIE,aAAa,QAAQ,mBAAmB"}
1
+ {"version":3,"names":["getFontSize","getFontSizeClass","getFontSizeObjectByValue","default","FontSizePicker","withFontSizes"],"sources":["@wordpress/block-editor/src/components/font-sizes/index.native.js"],"sourcesContent":["export {\n\tgetFontSize,\n\tgetFontSizeClass,\n\tgetFontSizeObjectByValue,\n} from './utils';\nexport { default as FontSizePicker } from './font-size-picker';\nexport { default as withFontSizes } from './with-font-sizes';\n"],"mappings":"AAAA,SACCA,WAAW,EACXC,gBAAgB,EAChBC,wBAAwB,QAClB,SAAS;AAChB,SAASC,OAAO,IAAIC,cAAc,QAAQ,oBAAoB;AAC9D,SAASD,OAAO,IAAIE,aAAa,QAAQ,mBAAmB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["privateApis","componentsPrivateApis","unlock","getFontSize","fontSizes","fontSizeAttribute","customFontSizeAttribute","fontSizeObject","find","slug","size","getFontSizeObjectByValue","value","getFontSizeClass","fontSizeSlug","kebabCase"],"sources":["@wordpress/block-editor/src/components/font-sizes/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Returns the font size object based on an array of named font sizes and the namedFontSize and customFontSize values.\n * \tIf namedFontSize is undefined or not found in fontSizes an object with just the size value based on customFontSize is returned.\n *\n * @param {Array} fontSizes Array of font size objects containing at least the \"name\" and \"size\" values as properties.\n * @param {?string} fontSizeAttribute Content of the font size attribute (slug).\n * @param {?number} customFontSizeAttribute Contents of the custom font size attribute (value).\n *\n * @return {?Object} If fontSizeAttribute is set and an equal slug is found in fontSizes it returns the font size object for that slug.\n * \t\t\t\t\t Otherwise, an object with just the size value based on customFontSize is returned.\n */\nexport const getFontSize = (\n\tfontSizes,\n\tfontSizeAttribute,\n\tcustomFontSizeAttribute\n) => {\n\tif ( fontSizeAttribute ) {\n\t\tconst fontSizeObject = fontSizes?.find(\n\t\t\t( { slug } ) => slug === fontSizeAttribute\n\t\t);\n\t\tif ( fontSizeObject ) {\n\t\t\treturn fontSizeObject;\n\t\t}\n\t}\n\treturn {\n\t\tsize: customFontSizeAttribute,\n\t};\n};\n\n/**\n * Returns the corresponding font size object for a given value.\n *\n * @param {Array} fontSizes Array of font size objects.\n * @param {number} value Font size value.\n *\n * @return {Object} Font size object.\n */\nexport function getFontSizeObjectByValue( fontSizes, value ) {\n\tconst fontSizeObject = fontSizes?.find( ( { size } ) => size === value );\n\tif ( fontSizeObject ) {\n\t\treturn fontSizeObject;\n\t}\n\n\treturn {\n\t\tsize: value,\n\t};\n}\n\n/**\n * Returns a class based on fontSizeName.\n *\n * @param {string} fontSizeSlug Slug of the fontSize.\n *\n * @return {string | undefined} String with the class corresponding to the fontSize passed.\n * The class is generated by appending 'has-' followed by fontSizeSlug in kebabCase and ending with '-font-size'.\n */\nexport function getFontSizeClass( fontSizeSlug ) {\n\tif ( ! fontSizeSlug ) {\n\t\treturn;\n\t}\n\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\treturn `has-${ kebabCase( fontSizeSlug ) }-font-size`;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,IAAIC,qBAAqB,QAAQ,uBAAuB;;AAE5E;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAGA,CAC1BC,SAAS,EACTC,iBAAiB,EACjBC,uBAAuB,KACnB;EACJ,IAAKD,iBAAiB,EAAG;IACxB,MAAME,cAAc,GAAGH,SAAS,EAAEI,IAAI,CACrC,CAAE;MAAEC;IAAK,CAAC,KAAMA,IAAI,KAAKJ,iBAC1B,CAAC;IACD,IAAKE,cAAc,EAAG;MACrB,OAAOA,cAAc;IACtB;EACD;EACA,OAAO;IACNG,IAAI,EAAEJ;EACP,CAAC;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,wBAAwBA,CAAEP,SAAS,EAAEQ,KAAK,EAAG;EAC5D,MAAML,cAAc,GAAGH,SAAS,EAAEI,IAAI,CAAE,CAAE;IAAEE;EAAK,CAAC,KAAMA,IAAI,KAAKE,KAAM,CAAC;EACxE,IAAKL,cAAc,EAAG;IACrB,OAAOA,cAAc;EACtB;EAEA,OAAO;IACNG,IAAI,EAAEE;EACP,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAEC,YAAY,EAAG;EAChD,IAAK,CAAEA,YAAY,EAAG;IACrB;EACD;EAEA,MAAM;IAAEC;EAAU,CAAC,GAAGb,MAAM,CAAED,qBAAsB,CAAC;EACrD,OAAQ,OAAOc,SAAS,CAAED,YAAa,CAAG,YAAW;AACtD"}
1
+ {"version":3,"names":["privateApis","componentsPrivateApis","unlock","getFontSize","fontSizes","fontSizeAttribute","customFontSizeAttribute","fontSizeObject","find","slug","size","getFontSizeObjectByValue","value","getFontSizeClass","fontSizeSlug","kebabCase"],"sources":["@wordpress/block-editor/src/components/font-sizes/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Returns the font size object based on an array of named font sizes and the namedFontSize and customFontSize values.\n * \tIf namedFontSize is undefined or not found in fontSizes an object with just the size value based on customFontSize is returned.\n *\n * @param {Array} fontSizes Array of font size objects containing at least the \"name\" and \"size\" values as properties.\n * @param {?string} fontSizeAttribute Content of the font size attribute (slug).\n * @param {?number} customFontSizeAttribute Contents of the custom font size attribute (value).\n *\n * @return {?Object} If fontSizeAttribute is set and an equal slug is found in fontSizes it returns the font size object for that slug.\n * \t\t\t\t\t Otherwise, an object with just the size value based on customFontSize is returned.\n */\nexport const getFontSize = (\n\tfontSizes,\n\tfontSizeAttribute,\n\tcustomFontSizeAttribute\n) => {\n\tif ( fontSizeAttribute ) {\n\t\tconst fontSizeObject = fontSizes?.find(\n\t\t\t( { slug } ) => slug === fontSizeAttribute\n\t\t);\n\t\tif ( fontSizeObject ) {\n\t\t\treturn fontSizeObject;\n\t\t}\n\t}\n\treturn {\n\t\tsize: customFontSizeAttribute,\n\t};\n};\n\n/**\n * Returns the corresponding font size object for a given value.\n *\n * @param {Array} fontSizes Array of font size objects.\n * @param {number} value Font size value.\n *\n * @return {Object} Font size object.\n */\nexport function getFontSizeObjectByValue( fontSizes, value ) {\n\tconst fontSizeObject = fontSizes?.find( ( { size } ) => size === value );\n\tif ( fontSizeObject ) {\n\t\treturn fontSizeObject;\n\t}\n\n\treturn {\n\t\tsize: value,\n\t};\n}\n\n/**\n * Returns a class based on fontSizeName.\n *\n * @param {string} fontSizeSlug Slug of the fontSize.\n *\n * @return {string | undefined} String with the class corresponding to the fontSize passed.\n * The class is generated by appending 'has-' followed by fontSizeSlug in kebabCase and ending with '-font-size'.\n */\nexport function getFontSizeClass( fontSizeSlug ) {\n\tif ( ! fontSizeSlug ) {\n\t\treturn;\n\t}\n\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\treturn `has-${ kebabCase( fontSizeSlug ) }-font-size`;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,IAAIC,qBAAqB,QAAQ,uBAAuB;;AAE5E;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAGA,CAC1BC,SAAS,EACTC,iBAAiB,EACjBC,uBAAuB,KACnB;EACJ,IAAKD,iBAAiB,EAAG;IACxB,MAAME,cAAc,GAAGH,SAAS,EAAEI,IAAI,CACrC,CAAE;MAAEC;IAAK,CAAC,KAAMA,IAAI,KAAKJ,iBAC1B,CAAC;IACD,IAAKE,cAAc,EAAG;MACrB,OAAOA,cAAc;IACtB;EACD;EACA,OAAO;IACNG,IAAI,EAAEJ;EACP,CAAC;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,wBAAwBA,CAAEP,SAAS,EAAEQ,KAAK,EAAG;EAC5D,MAAML,cAAc,GAAGH,SAAS,EAAEI,IAAI,CAAE,CAAE;IAAEE;EAAK,CAAC,KAAMA,IAAI,KAAKE,KAAM,CAAC;EACxE,IAAKL,cAAc,EAAG;IACrB,OAAOA,cAAc;EACtB;EAEA,OAAO;IACNG,IAAI,EAAEE;EACP,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAEC,YAAY,EAAG;EAChD,IAAK,CAAEA,YAAY,EAAG;IACrB;EACD;EAEA,MAAM;IAAEC;EAAU,CAAC,GAAGb,MAAM,CAAED,qBAAsB,CAAC;EACrD,OAAQ,OAAOc,SAAS,CAAED,YAAa,CAAG,YAAW;AACtD","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["createHigherOrderComponent","compose","Component","getFontSize","getFontSizeClass","useSettings","DEFAULT_FONT_SIZES","upperFirst","firstLetter","rest","toUpperCase","join","fontSizeNames","fontSizeAttributeNames","reduce","fontSizeAttributeNamesAccumulator","fontSizeAttributeName","WrappedComponent","props","fontSizes","createElement","constructor","setters","createSetters","state","Object","entries","settersAccumulator","customFontSizeAttributeName","upperFirstFontSizeAttributeName","createSetFontSize","fontSizeValue","fontSizeObject","find","size","Number","setAttributes","slug","undefined","getDerivedStateFromProps","attributes","previousState","didAttributesChange","values","some","newState","filter","key","value","newStateAccumulator","fontSizeAttributeValue","class","render"],"sources":["@wordpress/block-editor/src/components/font-sizes/with-font-sizes.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent, compose } from '@wordpress/compose';\nimport { Component } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getFontSize, getFontSizeClass } from './utils';\nimport { useSettings } from '../use-settings';\n\nconst DEFAULT_FONT_SIZES = [];\n\n/**\n * Capitalizes the first letter in a string.\n *\n * @param {string} str The string whose first letter the function will capitalize.\n *\n * @return {string} Capitalized string.\n */\nconst upperFirst = ( [ firstLetter, ...rest ] ) =>\n\tfirstLetter.toUpperCase() + rest.join( '' );\n\n/**\n * Higher-order component, which handles font size logic for class generation,\n * font size value retrieval, and font size change handling.\n *\n * @param {...(Object|string)} fontSizeNames The arguments should all be strings.\n * Each string contains the font size\n * attribute name e.g: 'fontSize'.\n *\n * @return {Function} Higher-order component.\n */\nexport default ( ...fontSizeNames ) => {\n\t/*\n\t * Computes an object whose key is the font size attribute name as passed in the array,\n\t * and the value is the custom font size attribute name.\n\t * Custom font size is automatically compted by appending custom followed by the font size attribute name in with the first letter capitalized.\n\t */\n\tconst fontSizeAttributeNames = fontSizeNames.reduce(\n\t\t( fontSizeAttributeNamesAccumulator, fontSizeAttributeName ) => {\n\t\t\tfontSizeAttributeNamesAccumulator[\n\t\t\t\tfontSizeAttributeName\n\t\t\t] = `custom${ upperFirst( fontSizeAttributeName ) }`;\n\t\t\treturn fontSizeAttributeNamesAccumulator;\n\t\t},\n\t\t{}\n\t);\n\n\treturn createHigherOrderComponent(\n\t\tcompose( [\n\t\t\tcreateHigherOrderComponent(\n\t\t\t\t( WrappedComponent ) => ( props ) => {\n\t\t\t\t\tconst [ fontSizes ] = useSettings( 'typography.fontSizes' );\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\tfontSizes={ fontSizes || DEFAULT_FONT_SIZES }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\t'withFontSizes'\n\t\t\t),\n\t\t\t( WrappedComponent ) => {\n\t\t\t\treturn class extends Component {\n\t\t\t\t\tconstructor( props ) {\n\t\t\t\t\t\tsuper( props );\n\n\t\t\t\t\t\tthis.setters = this.createSetters();\n\n\t\t\t\t\t\tthis.state = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSetters() {\n\t\t\t\t\t\treturn Object.entries( fontSizeAttributeNames ).reduce(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tsettersAccumulator,\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tconst upperFirstFontSizeAttributeName =\n\t\t\t\t\t\t\t\t\tupperFirst( fontSizeAttributeName );\n\t\t\t\t\t\t\t\tsettersAccumulator[\n\t\t\t\t\t\t\t\t\t`set${ upperFirstFontSizeAttributeName }`\n\t\t\t\t\t\t\t\t] = this.createSetFontSize(\n\t\t\t\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn settersAccumulator;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSetFontSize(\n\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn ( fontSizeValue ) => {\n\t\t\t\t\t\t\tconst fontSizeObject = this.props.fontSizes?.find(\n\t\t\t\t\t\t\t\t( { size } ) => size === Number( fontSizeValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tthis.props.setAttributes( {\n\t\t\t\t\t\t\t\t[ fontSizeAttributeName ]:\n\t\t\t\t\t\t\t\t\tfontSizeObject && fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t? fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t[ customFontSizeAttributeName ]:\n\t\t\t\t\t\t\t\t\tfontSizeObject && fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t: fontSizeValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tstatic getDerivedStateFromProps(\n\t\t\t\t\t\t{ attributes, fontSizes },\n\t\t\t\t\t\tpreviousState\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst didAttributesChange = (\n\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\tif ( previousState[ fontSizeAttributeName ] ) {\n\t\t\t\t\t\t\t\t// If new font size is name compare with the previous slug.\n\t\t\t\t\t\t\t\tif ( attributes[ fontSizeAttributeName ] ) {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\tattributes[ fontSizeAttributeName ] !==\n\t\t\t\t\t\t\t\t\t\tpreviousState[ fontSizeAttributeName ]\n\t\t\t\t\t\t\t\t\t\t\t.slug\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// If font size is not named, update when the font size value changes.\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tpreviousState[ fontSizeAttributeName ]\n\t\t\t\t\t\t\t\t\t\t.size !==\n\t\t\t\t\t\t\t\t\tattributes[ customFontSizeAttributeName ]\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// In this case we need to build the font size object.\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! Object.values( fontSizeAttributeNames ).some(\n\t\t\t\t\t\t\t\tdidAttributesChange\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst newState = Object.entries(\n\t\t\t\t\t\t\tfontSizeAttributeNames\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.filter( ( [ key, value ] ) =>\n\t\t\t\t\t\t\t\tdidAttributesChange( value, key )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.reduce(\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\tnewStateAccumulator,\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\tconst fontSizeAttributeValue =\n\t\t\t\t\t\t\t\t\t\tattributes[ fontSizeAttributeName ];\n\t\t\t\t\t\t\t\t\tconst fontSizeObject = getFontSize(\n\t\t\t\t\t\t\t\t\t\tfontSizes,\n\t\t\t\t\t\t\t\t\t\tfontSizeAttributeValue,\n\t\t\t\t\t\t\t\t\t\tattributes[\n\t\t\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tnewStateAccumulator[\n\t\t\t\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t\t\t\t] = {\n\t\t\t\t\t\t\t\t\t\t...fontSizeObject,\n\t\t\t\t\t\t\t\t\t\tclass: getFontSizeClass(\n\t\t\t\t\t\t\t\t\t\t\tfontSizeAttributeValue\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\treturn newStateAccumulator;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...previousState,\n\t\t\t\t\t\t\t...newState,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\trender() {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t\t...this.props,\n\t\t\t\t\t\t\t\t\tfontSizes: undefined,\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t...this.setters,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\t\t] ),\n\t\t'withFontSizes'\n\t);\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["createHigherOrderComponent","compose","Component","getFontSize","getFontSizeClass","useSettings","DEFAULT_FONT_SIZES","upperFirst","firstLetter","rest","toUpperCase","join","fontSizeNames","fontSizeAttributeNames","reduce","fontSizeAttributeNamesAccumulator","fontSizeAttributeName","WrappedComponent","props","fontSizes","createElement","constructor","setters","createSetters","state","Object","entries","settersAccumulator","customFontSizeAttributeName","upperFirstFontSizeAttributeName","createSetFontSize","fontSizeValue","fontSizeObject","find","size","Number","setAttributes","slug","undefined","getDerivedStateFromProps","attributes","previousState","didAttributesChange","values","some","newState","filter","key","value","newStateAccumulator","fontSizeAttributeValue","class","render"],"sources":["@wordpress/block-editor/src/components/font-sizes/with-font-sizes.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent, compose } from '@wordpress/compose';\nimport { Component } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getFontSize, getFontSizeClass } from './utils';\nimport { useSettings } from '../use-settings';\n\nconst DEFAULT_FONT_SIZES = [];\n\n/**\n * Capitalizes the first letter in a string.\n *\n * @param {string} str The string whose first letter the function will capitalize.\n *\n * @return {string} Capitalized string.\n */\nconst upperFirst = ( [ firstLetter, ...rest ] ) =>\n\tfirstLetter.toUpperCase() + rest.join( '' );\n\n/**\n * Higher-order component, which handles font size logic for class generation,\n * font size value retrieval, and font size change handling.\n *\n * @param {...(Object|string)} fontSizeNames The arguments should all be strings.\n * Each string contains the font size\n * attribute name e.g: 'fontSize'.\n *\n * @return {Function} Higher-order component.\n */\nexport default ( ...fontSizeNames ) => {\n\t/*\n\t * Computes an object whose key is the font size attribute name as passed in the array,\n\t * and the value is the custom font size attribute name.\n\t * Custom font size is automatically compted by appending custom followed by the font size attribute name in with the first letter capitalized.\n\t */\n\tconst fontSizeAttributeNames = fontSizeNames.reduce(\n\t\t( fontSizeAttributeNamesAccumulator, fontSizeAttributeName ) => {\n\t\t\tfontSizeAttributeNamesAccumulator[\n\t\t\t\tfontSizeAttributeName\n\t\t\t] = `custom${ upperFirst( fontSizeAttributeName ) }`;\n\t\t\treturn fontSizeAttributeNamesAccumulator;\n\t\t},\n\t\t{}\n\t);\n\n\treturn createHigherOrderComponent(\n\t\tcompose( [\n\t\t\tcreateHigherOrderComponent(\n\t\t\t\t( WrappedComponent ) => ( props ) => {\n\t\t\t\t\tconst [ fontSizes ] = useSettings( 'typography.fontSizes' );\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\tfontSizes={ fontSizes || DEFAULT_FONT_SIZES }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\t'withFontSizes'\n\t\t\t),\n\t\t\t( WrappedComponent ) => {\n\t\t\t\treturn class extends Component {\n\t\t\t\t\tconstructor( props ) {\n\t\t\t\t\t\tsuper( props );\n\n\t\t\t\t\t\tthis.setters = this.createSetters();\n\n\t\t\t\t\t\tthis.state = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSetters() {\n\t\t\t\t\t\treturn Object.entries( fontSizeAttributeNames ).reduce(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tsettersAccumulator,\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tconst upperFirstFontSizeAttributeName =\n\t\t\t\t\t\t\t\t\tupperFirst( fontSizeAttributeName );\n\t\t\t\t\t\t\t\tsettersAccumulator[\n\t\t\t\t\t\t\t\t\t`set${ upperFirstFontSizeAttributeName }`\n\t\t\t\t\t\t\t\t] = this.createSetFontSize(\n\t\t\t\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn settersAccumulator;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSetFontSize(\n\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn ( fontSizeValue ) => {\n\t\t\t\t\t\t\tconst fontSizeObject = this.props.fontSizes?.find(\n\t\t\t\t\t\t\t\t( { size } ) => size === Number( fontSizeValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tthis.props.setAttributes( {\n\t\t\t\t\t\t\t\t[ fontSizeAttributeName ]:\n\t\t\t\t\t\t\t\t\tfontSizeObject && fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t? fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t[ customFontSizeAttributeName ]:\n\t\t\t\t\t\t\t\t\tfontSizeObject && fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t: fontSizeValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tstatic getDerivedStateFromProps(\n\t\t\t\t\t\t{ attributes, fontSizes },\n\t\t\t\t\t\tpreviousState\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst didAttributesChange = (\n\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\tif ( previousState[ fontSizeAttributeName ] ) {\n\t\t\t\t\t\t\t\t// If new font size is name compare with the previous slug.\n\t\t\t\t\t\t\t\tif ( attributes[ fontSizeAttributeName ] ) {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\tattributes[ fontSizeAttributeName ] !==\n\t\t\t\t\t\t\t\t\t\tpreviousState[ fontSizeAttributeName ]\n\t\t\t\t\t\t\t\t\t\t\t.slug\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// If font size is not named, update when the font size value changes.\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tpreviousState[ fontSizeAttributeName ]\n\t\t\t\t\t\t\t\t\t\t.size !==\n\t\t\t\t\t\t\t\t\tattributes[ customFontSizeAttributeName ]\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// In this case we need to build the font size object.\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! Object.values( fontSizeAttributeNames ).some(\n\t\t\t\t\t\t\t\tdidAttributesChange\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst newState = Object.entries(\n\t\t\t\t\t\t\tfontSizeAttributeNames\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.filter( ( [ key, value ] ) =>\n\t\t\t\t\t\t\t\tdidAttributesChange( value, key )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.reduce(\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\tnewStateAccumulator,\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\tconst fontSizeAttributeValue =\n\t\t\t\t\t\t\t\t\t\tattributes[ fontSizeAttributeName ];\n\t\t\t\t\t\t\t\t\tconst fontSizeObject = getFontSize(\n\t\t\t\t\t\t\t\t\t\tfontSizes,\n\t\t\t\t\t\t\t\t\t\tfontSizeAttributeValue,\n\t\t\t\t\t\t\t\t\t\tattributes[\n\t\t\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tnewStateAccumulator[\n\t\t\t\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t\t\t\t] = {\n\t\t\t\t\t\t\t\t\t\t...fontSizeObject,\n\t\t\t\t\t\t\t\t\t\tclass: getFontSizeClass(\n\t\t\t\t\t\t\t\t\t\t\tfontSizeAttributeValue\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\treturn newStateAccumulator;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...previousState,\n\t\t\t\t\t\t\t...newState,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\trender() {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t\t...this.props,\n\t\t\t\t\t\t\t\t\tfontSizes: undefined,\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t...this.setters,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\t\t] ),\n\t\t'withFontSizes'\n\t);\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["TextareaControl","Notice","__experimentalVStack","VStack","useState","__","default","transformStyles","AdvancedPanel","value","onChange","inheritedValue","cssError","setCSSError","customCSS","css","handleOnChange","newValue","transformed","handleOnBlur","event","target","createElement","spacing","status","onRemove","label","__nextHasNoMarginBottom","onBlur","className","spellCheck"],"sources":["@wordpress/block-editor/src/components/global-styles/advanced-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tTextareaControl,\n\tNotice,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { default as transformStyles } from '../../utils/transform-styles';\n\nexport default function AdvancedPanel( {\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n} ) {\n\t// Custom CSS\n\tconst [ cssError, setCSSError ] = useState( null );\n\tconst customCSS = inheritedValue?.css;\n\tfunction handleOnChange( newValue ) {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\tcss: newValue,\n\t\t} );\n\t\tif ( cssError ) {\n\t\t\t// Check if the new value is valid CSS, and pass a wrapping selector\n\t\t\t// to ensure that `transformStyles` validates the CSS. Note that the\n\t\t\t// wrapping selector here is not used in the actual output of any styles.\n\t\t\tconst [ transformed ] = transformStyles(\n\t\t\t\t[ { css: newValue } ],\n\t\t\t\t'.for-validation-only'\n\t\t\t);\n\t\t\tif ( transformed ) {\n\t\t\t\tsetCSSError( null );\n\t\t\t}\n\t\t}\n\t}\n\tfunction handleOnBlur( event ) {\n\t\tif ( ! event?.target?.value ) {\n\t\t\tsetCSSError( null );\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if the new value is valid CSS, and pass a wrapping selector\n\t\t// to ensure that `transformStyles` validates the CSS. Note that the\n\t\t// wrapping selector here is not used in the actual output of any styles.\n\t\tconst [ transformed ] = transformStyles(\n\t\t\t[ { css: event.target.value } ],\n\t\t\t'.for-validation-only'\n\t\t);\n\n\t\tsetCSSError(\n\t\t\ttransformed === null\n\t\t\t\t? __( 'There is an error with your CSS structure.' )\n\t\t\t\t: null\n\t\t);\n\t}\n\n\treturn (\n\t\t<VStack spacing={ 3 }>\n\t\t\t{ cssError && (\n\t\t\t\t<Notice status=\"error\" onRemove={ () => setCSSError( null ) }>\n\t\t\t\t\t{ cssError }\n\t\t\t\t</Notice>\n\t\t\t) }\n\t\t\t<TextareaControl\n\t\t\t\tlabel={ __( 'Additional CSS' ) }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tvalue={ customCSS }\n\t\t\t\tonChange={ ( newValue ) => handleOnChange( newValue ) }\n\t\t\t\tonBlur={ handleOnBlur }\n\t\t\t\tclassName=\"block-editor-global-styles-advanced-panel__custom-css-input\"\n\t\t\t\tspellCheck={ false }\n\t\t\t/>\n\t\t</VStack>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,eAAe,EACfC,MAAM,EACNC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAC9B,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,SAASC,OAAO,IAAIC,eAAe,QAAQ,8BAA8B;AAEzE,eAAe,SAASC,aAAaA,CAAE;EACtCC,KAAK;EACLC,QAAQ;EACRC,cAAc,GAAGF;AAClB,CAAC,EAAG;EACH;EACA,MAAM,CAAEG,QAAQ,EAAEC,WAAW,CAAE,GAAGT,QAAQ,CAAE,IAAK,CAAC;EAClD,MAAMU,SAAS,GAAGH,cAAc,EAAEI,GAAG;EACrC,SAASC,cAAcA,CAAEC,QAAQ,EAAG;IACnCP,QAAQ,CAAE;MACT,GAAGD,KAAK;MACRM,GAAG,EAAEE;IACN,CAAE,CAAC;IACH,IAAKL,QAAQ,EAAG;MACf;MACA;MACA;MACA,MAAM,CAAEM,WAAW,CAAE,GAAGX,eAAe,CACtC,CAAE;QAAEQ,GAAG,EAAEE;MAAS,CAAC,CAAE,EACrB,sBACD,CAAC;MACD,IAAKC,WAAW,EAAG;QAClBL,WAAW,CAAE,IAAK,CAAC;MACpB;IACD;EACD;EACA,SAASM,YAAYA,CAAEC,KAAK,EAAG;IAC9B,IAAK,CAAEA,KAAK,EAAEC,MAAM,EAAEZ,KAAK,EAAG;MAC7BI,WAAW,CAAE,IAAK,CAAC;MACnB;IACD;;IAEA;IACA;IACA;IACA,MAAM,CAAEK,WAAW,CAAE,GAAGX,eAAe,CACtC,CAAE;MAAEQ,GAAG,EAAEK,KAAK,CAACC,MAAM,CAACZ;IAAM,CAAC,CAAE,EAC/B,sBACD,CAAC;IAEDI,WAAW,CACVK,WAAW,KAAK,IAAI,GACjBb,EAAE,CAAE,4CAA6C,CAAC,GAClD,IACJ,CAAC;EACF;EAEA,OACCiB,aAAA,CAACnB,MAAM;IAACoB,OAAO,EAAG;EAAG,GAClBX,QAAQ,IACTU,aAAA,CAACrB,MAAM;IAACuB,MAAM,EAAC,OAAO;IAACC,QAAQ,EAAGA,CAAA,KAAMZ,WAAW,CAAE,IAAK;EAAG,GAC1DD,QACK,CACR,EACDU,aAAA,CAACtB,eAAe;IACf0B,KAAK,EAAGrB,EAAE,CAAE,gBAAiB,CAAG;IAChCsB,uBAAuB;IACvBlB,KAAK,EAAGK,SAAW;IACnBJ,QAAQ,EAAKO,QAAQ,IAAMD,cAAc,CAAEC,QAAS,CAAG;IACvDW,MAAM,EAAGT,YAAc;IACvBU,SAAS,EAAC,6DAA6D;IACvEC,UAAU,EAAG;EAAO,CACpB,CACM,CAAC;AAEX"}
1
+ {"version":3,"names":["TextareaControl","Notice","__experimentalVStack","VStack","useState","__","default","transformStyles","AdvancedPanel","value","onChange","inheritedValue","cssError","setCSSError","customCSS","css","handleOnChange","newValue","transformed","handleOnBlur","event","target","createElement","spacing","status","onRemove","label","__nextHasNoMarginBottom","onBlur","className","spellCheck"],"sources":["@wordpress/block-editor/src/components/global-styles/advanced-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tTextareaControl,\n\tNotice,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { default as transformStyles } from '../../utils/transform-styles';\n\nexport default function AdvancedPanel( {\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n} ) {\n\t// Custom CSS\n\tconst [ cssError, setCSSError ] = useState( null );\n\tconst customCSS = inheritedValue?.css;\n\tfunction handleOnChange( newValue ) {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\tcss: newValue,\n\t\t} );\n\t\tif ( cssError ) {\n\t\t\t// Check if the new value is valid CSS, and pass a wrapping selector\n\t\t\t// to ensure that `transformStyles` validates the CSS. Note that the\n\t\t\t// wrapping selector here is not used in the actual output of any styles.\n\t\t\tconst [ transformed ] = transformStyles(\n\t\t\t\t[ { css: newValue } ],\n\t\t\t\t'.for-validation-only'\n\t\t\t);\n\t\t\tif ( transformed ) {\n\t\t\t\tsetCSSError( null );\n\t\t\t}\n\t\t}\n\t}\n\tfunction handleOnBlur( event ) {\n\t\tif ( ! event?.target?.value ) {\n\t\t\tsetCSSError( null );\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if the new value is valid CSS, and pass a wrapping selector\n\t\t// to ensure that `transformStyles` validates the CSS. Note that the\n\t\t// wrapping selector here is not used in the actual output of any styles.\n\t\tconst [ transformed ] = transformStyles(\n\t\t\t[ { css: event.target.value } ],\n\t\t\t'.for-validation-only'\n\t\t);\n\n\t\tsetCSSError(\n\t\t\ttransformed === null\n\t\t\t\t? __( 'There is an error with your CSS structure.' )\n\t\t\t\t: null\n\t\t);\n\t}\n\n\treturn (\n\t\t<VStack spacing={ 3 }>\n\t\t\t{ cssError && (\n\t\t\t\t<Notice status=\"error\" onRemove={ () => setCSSError( null ) }>\n\t\t\t\t\t{ cssError }\n\t\t\t\t</Notice>\n\t\t\t) }\n\t\t\t<TextareaControl\n\t\t\t\tlabel={ __( 'Additional CSS' ) }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tvalue={ customCSS }\n\t\t\t\tonChange={ ( newValue ) => handleOnChange( newValue ) }\n\t\t\t\tonBlur={ handleOnBlur }\n\t\t\t\tclassName=\"block-editor-global-styles-advanced-panel__custom-css-input\"\n\t\t\t\tspellCheck={ false }\n\t\t\t/>\n\t\t</VStack>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,eAAe,EACfC,MAAM,EACNC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAC9B,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,SAASC,OAAO,IAAIC,eAAe,QAAQ,8BAA8B;AAEzE,eAAe,SAASC,aAAaA,CAAE;EACtCC,KAAK;EACLC,QAAQ;EACRC,cAAc,GAAGF;AAClB,CAAC,EAAG;EACH;EACA,MAAM,CAAEG,QAAQ,EAAEC,WAAW,CAAE,GAAGT,QAAQ,CAAE,IAAK,CAAC;EAClD,MAAMU,SAAS,GAAGH,cAAc,EAAEI,GAAG;EACrC,SAASC,cAAcA,CAAEC,QAAQ,EAAG;IACnCP,QAAQ,CAAE;MACT,GAAGD,KAAK;MACRM,GAAG,EAAEE;IACN,CAAE,CAAC;IACH,IAAKL,QAAQ,EAAG;MACf;MACA;MACA;MACA,MAAM,CAAEM,WAAW,CAAE,GAAGX,eAAe,CACtC,CAAE;QAAEQ,GAAG,EAAEE;MAAS,CAAC,CAAE,EACrB,sBACD,CAAC;MACD,IAAKC,WAAW,EAAG;QAClBL,WAAW,CAAE,IAAK,CAAC;MACpB;IACD;EACD;EACA,SAASM,YAAYA,CAAEC,KAAK,EAAG;IAC9B,IAAK,CAAEA,KAAK,EAAEC,MAAM,EAAEZ,KAAK,EAAG;MAC7BI,WAAW,CAAE,IAAK,CAAC;MACnB;IACD;;IAEA;IACA;IACA;IACA,MAAM,CAAEK,WAAW,CAAE,GAAGX,eAAe,CACtC,CAAE;MAAEQ,GAAG,EAAEK,KAAK,CAACC,MAAM,CAACZ;IAAM,CAAC,CAAE,EAC/B,sBACD,CAAC;IAEDI,WAAW,CACVK,WAAW,KAAK,IAAI,GACjBb,EAAE,CAAE,4CAA6C,CAAC,GAClD,IACJ,CAAC;EACF;EAEA,OACCiB,aAAA,CAACnB,MAAM;IAACoB,OAAO,EAAG;EAAG,GAClBX,QAAQ,IACTU,aAAA,CAACrB,MAAM;IAACuB,MAAM,EAAC,OAAO;IAACC,QAAQ,EAAGA,CAAA,KAAMZ,WAAW,CAAE,IAAK;EAAG,GAC1DD,QACK,CACR,EACDU,aAAA,CAACtB,eAAe;IACf0B,KAAK,EAAGrB,EAAE,CAAE,gBAAiB,CAAG;IAChCsB,uBAAuB;IACvBlB,KAAK,EAAGK,SAAW;IACnBJ,QAAQ,EAAKO,QAAQ,IAAMD,cAAc,CAAEC,QAAS,CAAG;IACvDW,MAAM,EAAGT,YAAc;IACvBU,SAAS,EAAC,6DAA6D;IACvEC,UAAU,EAAG;EAAO,CACpB,CACM,CAAC;AAEX","ignoreList":[]}
@@ -24,6 +24,10 @@ import { setImmutably } from '../../utils/object';
24
24
  import MediaReplaceFlow from '../media-replace-flow';
25
25
  import { store as blockEditorStore } from '../../store';
26
26
  const IMAGE_BACKGROUND_TYPE = 'image';
27
+ const DEFAULT_CONTROLS = {
28
+ backgroundImage: true,
29
+ backgroundSize: false
30
+ };
27
31
 
28
32
  /**
29
33
  * Checks site settings to see if the background panel may be used.
@@ -118,18 +122,18 @@ function InspectorImagePreview({
118
122
  filename,
119
123
  url: imgUrl
120
124
  }) {
121
- const imgLabel = label || getFilename(imgUrl);
125
+ const imgLabel = label || getFilename(imgUrl) || __('Add background image');
122
126
  return createElement(ItemGroup, {
123
127
  as: "span"
124
128
  }, createElement(HStack, {
125
- justify: "flex-start",
129
+ justify: imgUrl ? 'flex-start' : 'center',
126
130
  as: "span"
127
- }, createElement("span", {
131
+ }, imgUrl && createElement("span", {
128
132
  className: classnames('block-editor-global-styles-background-panel__inspector-image-indicator-wrapper', {
129
133
  'has-image': imgUrl
130
134
  }),
131
135
  "aria-hidden": true
132
- }, imgUrl && createElement("span", {
136
+ }, createElement("span", {
133
137
  className: "block-editor-global-styles-background-panel__inspector-image-indicator",
134
138
  style: {
135
139
  backgroundImage: `url(${imgUrl})`
@@ -192,7 +196,7 @@ function BackgroundImageToolsPanelItem({
192
196
  };
193
197
  const onFilesDrop = filesList => {
194
198
  mediaUpload({
195
- allowedTypes: ['image'],
199
+ allowedTypes: [IMAGE_BACKGROUND_TYPE],
196
200
  filesList,
197
201
  onFileChange([image]) {
198
202
  if (isBlobURL(image?.url)) {
@@ -231,7 +235,7 @@ function BackgroundImageToolsPanelItem({
231
235
  accept: "image/*",
232
236
  onSelect: onSelectMedia,
233
237
  name: createElement(InspectorImagePreview, {
234
- label: __('Background image'),
238
+ label: title,
235
239
  filename: title || __('Untitled'),
236
240
  url: url
237
241
  }),
@@ -356,7 +360,7 @@ function BackgroundSizeToolsPanelItem({
356
360
  key: 'fixed',
357
361
  value: 'auto',
358
362
  label: __('Fixed')
359
- })), sizeValue !== undefined && sizeValue !== 'cover' && sizeValue !== 'contain' ? createElement(UnitControl, {
363
+ })), currentValueForToggle !== undefined && currentValueForToggle !== 'cover' && currentValueForToggle !== 'contain' ? createElement(UnitControl, {
360
364
  size: '__unstable-large',
361
365
  onChange: updateBackgroundSize,
362
366
  value: sizeValue
@@ -371,7 +375,8 @@ function BackgroundToolsPanel({
371
375
  onChange,
372
376
  value,
373
377
  panelId,
374
- children
378
+ children,
379
+ headerLabel
375
380
  }) {
376
381
  const resetAll = () => {
377
382
  const updatedValue = resetAllFilter(value);
@@ -379,17 +384,13 @@ function BackgroundToolsPanel({
379
384
  };
380
385
  return createElement(VStack, {
381
386
  as: ToolsPanel,
382
- spacing: 6,
383
- label: __('Background'),
387
+ spacing: 4,
388
+ label: headerLabel,
384
389
  resetAll: resetAll,
385
390
  panelId: panelId,
386
391
  dropdownMenuProps: TOOLSPANEL_DROPDOWNMENU_PROPS
387
392
  }, children);
388
393
  }
389
- const DEFAULT_CONTROLS = {
390
- backgroundImage: true,
391
- backgroundSize: true
392
- };
393
394
  export default function BackgroundPanel({
394
395
  as: Wrapper = BackgroundToolsPanel,
395
396
  value,
@@ -398,7 +399,8 @@ export default function BackgroundPanel({
398
399
  settings,
399
400
  panelId,
400
401
  defaultControls = DEFAULT_CONTROLS,
401
- defaultValues = {}
402
+ defaultValues = {},
403
+ headerLabel = __('Background image')
402
404
  }) {
403
405
  const resetAllFilter = useCallback(previousValue => {
404
406
  return {
@@ -411,7 +413,8 @@ export default function BackgroundPanel({
411
413
  resetAllFilter: resetAllFilter,
412
414
  value: value,
413
415
  onChange: onChange,
414
- panelId: panelId
416
+ panelId: panelId,
417
+ headerLabel: headerLabel
415
418
  }, createElement(BackgroundImageToolsPanelItem, {
416
419
  onChange: onChange,
417
420
  panelId: panelId,
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__experimentalVStack","VStack","DropZone","FlexItem","FocalPointPicker","MenuItem","VisuallyHidden","__experimentalItemGroup","ItemGroup","__experimentalHStack","HStack","__experimentalTruncate","Truncate","__","sprintf","store","noticesStore","getFilename","useCallback","Platform","useRef","useDispatch","useSelect","focus","isBlobURL","TOOLSPANEL_DROPDOWNMENU_PROPS","setImmutably","MediaReplaceFlow","blockEditorStore","IMAGE_BACKGROUND_TYPE","useHasBackgroundPanel","settings","OS","background","backgroundImage","hasBackgroundSizeValue","style","backgroundPosition","undefined","backgroundSize","hasBackgroundImageValue","id","url","backgroundSizeHelpText","value","coordsToBackgroundPosition","isNaN","x","y","backgroundPositionToCoords","split","map","v","parseFloat","InspectorImagePreview","label","filename","imgUrl","imgLabel","createElement","as","justify","className","numberOfLines","BackgroundImageToolsPanelItem","panelId","isShownByDefault","onChange","inheritedValue","mediaUpload","select","getSettings","title","replaceContainerRef","createErrorNotice","onUploadError","message","type","resetBackgroundImage","onSelectMedia","media","media_type","source","onFilesDrop","filesList","allowedTypes","onFileChange","image","onError","resetAllFilter","previousValue","hasValue","onDeselect","ref","mediaId","mediaURL","accept","onSelect","name","variant","onClick","toggleButton","tabbable","find","current","click","BackgroundSizeToolsPanelItem","defaultValues","sizeValue","repeatValue","backgroundRepeat","imageValue","positionValue","currentValueForToggle","repeatCheckedValue","updateBackgroundSize","next","nextRepeat","updateBackgroundPosition","toggleIsRepeated","resetBackgroundSize","spacing","__next40pxDefaultSize","size","isBlock","help","key","checked","BackgroundToolsPanel","children","resetAll","updatedValue","dropdownMenuProps","DEFAULT_CONTROLS","BackgroundPanel","Wrapper","defaultControls","shouldShowBackgroundSizeControls"],"sources":["@wordpress/block-editor/src/components/global-styles/background-panel.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalVStack as VStack,\n\tDropZone,\n\tFlexItem,\n\tFocalPointPicker,\n\tMenuItem,\n\tVisuallyHidden,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { getFilename } from '@wordpress/url';\nimport { useCallback, Platform, useRef } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { focus } from '@wordpress/dom';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';\nimport { setImmutably } from '../../utils/object';\nimport MediaReplaceFlow from '../media-replace-flow';\nimport { store as blockEditorStore } from '../../store';\n\nconst IMAGE_BACKGROUND_TYPE = 'image';\n\n/**\n * Checks site settings to see if the background panel may be used.\n * `settings.background.backgroundSize` exists also,\n * but can only be used if settings?.background?.backgroundImage is `true`.\n *\n * @param {Object} settings Site settings\n * @return {boolean} Whether site settings has activated background panel.\n */\nexport function useHasBackgroundPanel( settings ) {\n\treturn Platform.OS === 'web' && settings?.background?.backgroundImage;\n}\n\n/**\n * Checks if there is a current value in the background size block support\n * attributes. Background size values include background size as well\n * as background position.\n *\n * @param {Object} style Style attribute.\n * @return {boolean} Whether the block has a background size value set.\n */\nexport function hasBackgroundSizeValue( style ) {\n\treturn (\n\t\tstyle?.background?.backgroundPosition !== undefined ||\n\t\tstyle?.background?.backgroundSize !== undefined\n\t);\n}\n\n/**\n * Checks if there is a current value in the background image block support\n * attributes.\n *\n * @param {Object} style Style attribute.\n * @return {boolean} Whether the block has a background image value set.\n */\nexport function hasBackgroundImageValue( style ) {\n\treturn (\n\t\t!! style?.background?.backgroundImage?.id ||\n\t\t!! style?.background?.backgroundImage?.url\n\t);\n}\n\n/**\n * Get the help text for the background size control.\n *\n * @param {string} value backgroundSize value.\n * @return {string} Translated help text.\n */\nfunction backgroundSizeHelpText( value ) {\n\tif ( value === 'cover' || value === undefined ) {\n\t\treturn __( 'Image covers the space evenly.' );\n\t}\n\tif ( value === 'contain' ) {\n\t\treturn __( 'Image is contained without distortion.' );\n\t}\n\treturn __( 'Specify a fixed width.' );\n}\n\n/**\n * Converts decimal x and y coords from FocalPointPicker to percentage-based values\n * to use as backgroundPosition value.\n *\n * @param {{x?:number, y?:number}} value FocalPointPicker coords.\n * @return {string} \t\t\t\t backgroundPosition value.\n */\nexport const coordsToBackgroundPosition = ( value ) => {\n\tif ( ! value || ( isNaN( value.x ) && isNaN( value.y ) ) ) {\n\t\treturn undefined;\n\t}\n\n\tconst x = isNaN( value.x ) ? 0.5 : value.x;\n\tconst y = isNaN( value.y ) ? 0.5 : value.y;\n\n\treturn `${ x * 100 }% ${ y * 100 }%`;\n};\n\n/**\n * Converts backgroundPosition value to x and y coords for FocalPointPicker.\n *\n * @param {string} value backgroundPosition value.\n * @return {{x?:number, y?:number}} FocalPointPicker coords.\n */\nexport const backgroundPositionToCoords = ( value ) => {\n\tif ( ! value ) {\n\t\treturn { x: undefined, y: undefined };\n\t}\n\n\tlet [ x, y ] = value.split( ' ' ).map( ( v ) => parseFloat( v ) / 100 );\n\tx = isNaN( x ) ? undefined : x;\n\ty = isNaN( y ) ? x : y;\n\n\treturn { x, y };\n};\n\nfunction InspectorImagePreview( { label, filename, url: imgUrl } ) {\n\tconst imgLabel = label || getFilename( imgUrl );\n\treturn (\n\t\t<ItemGroup as=\"span\">\n\t\t\t<HStack justify=\"flex-start\" as=\"span\">\n\t\t\t\t<span\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'block-editor-global-styles-background-panel__inspector-image-indicator-wrapper',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-image': imgUrl,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\taria-hidden\n\t\t\t\t>\n\t\t\t\t\t{ imgUrl && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tbackgroundImage: `url(${ imgUrl })`,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t\t<FlexItem as=\"span\">\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ imgLabel }\n\t\t\t\t\t</Truncate>\n\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t{ filename\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: file name */\n\t\t\t\t\t\t\t\t\t__( 'Selected image: %s' ),\n\t\t\t\t\t\t\t\t\tfilename\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'No image selected' ) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</ItemGroup>\n\t);\n}\n\nfunction BackgroundImageToolsPanelItem( {\n\tpanelId,\n\tisShownByDefault,\n\tonChange,\n\tstyle,\n\tinheritedValue,\n} ) {\n\tconst mediaUpload = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().mediaUpload,\n\t\t[]\n\t);\n\n\tconst { id, title, url } = style?.background?.backgroundImage || {\n\t\t...inheritedValue?.background?.backgroundImage,\n\t};\n\n\tconst replaceContainerRef = useRef();\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst resetBackgroundImage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundImage' ],\n\t\t\t\tundefined\n\t\t\t)\n\t\t);\n\n\tconst onSelectMedia = ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tresetBackgroundImage();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// For media selections originated from a file upload.\n\t\tif (\n\t\t\t( media.media_type &&\n\t\t\t\tmedia.media_type !== IMAGE_BACKGROUND_TYPE ) ||\n\t\t\t( ! media.media_type &&\n\t\t\t\tmedia.type &&\n\t\t\t\tmedia.type !== IMAGE_BACKGROUND_TYPE )\n\t\t) {\n\t\t\tonUploadError(\n\t\t\t\t__( 'Only images can be used as a background image.' )\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background', 'backgroundImage' ], {\n\t\t\t\turl: media.url,\n\t\t\t\tid: media.id,\n\t\t\t\tsource: 'file',\n\t\t\t\ttitle: media.title || undefined,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst onFilesDrop = ( filesList ) => {\n\t\tmediaUpload( {\n\t\t\tallowedTypes: [ 'image' ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonSelectMedia( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t} );\n\t};\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tstyle: {\n\t\t\t\t...previousValue.style,\n\t\t\t\tbackground: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst hasValue =\n\t\thasBackgroundImageValue( style ) ||\n\t\thasBackgroundImageValue( inheritedValue );\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\tclassName=\"single-column\"\n\t\t\thasValue={ () => hasValue }\n\t\t\tlabel={ __( 'Background image' ) }\n\t\t\tonDeselect={ resetBackgroundImage }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-media-replace-container\"\n\t\t\t\tref={ replaceContainerRef }\n\t\t\t>\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\tallowedTypes={ [ IMAGE_BACKGROUND_TYPE ] }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\tname={\n\t\t\t\t\t\t<InspectorImagePreview\n\t\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t\t\tfilename={ title || __( 'Untitled' ) }\n\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t>\n\t\t\t\t\t{ hasValue && (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst [ toggleButton ] = focus.tabbable.find(\n\t\t\t\t\t\t\t\t\treplaceContainerRef.current\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t// Focus the toggle button and close the dropdown menu.\n\t\t\t\t\t\t\t\t// This ensures similar behaviour as to selecting an image, where the dropdown is\n\t\t\t\t\t\t\t\t// closed and focus is redirected to the dropdown toggle button.\n\t\t\t\t\t\t\t\ttoggleButton?.focus();\n\t\t\t\t\t\t\t\ttoggleButton?.click();\n\t\t\t\t\t\t\t\tresetBackgroundImage();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset ' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t) }\n\t\t\t\t</MediaReplaceFlow>\n\t\t\t\t<DropZone\n\t\t\t\t\tonFilesDrop={ onFilesDrop }\n\t\t\t\t\tlabel={ __( 'Drop to upload' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</ToolsPanelItem>\n\t);\n}\n\nfunction BackgroundSizeToolsPanelItem( {\n\tpanelId,\n\tisShownByDefault,\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tdefaultValues,\n} ) {\n\tconst sizeValue =\n\t\tstyle?.background?.backgroundSize ||\n\t\tinheritedValue?.background?.backgroundSize;\n\tconst repeatValue =\n\t\tstyle?.background?.backgroundRepeat ||\n\t\tinheritedValue?.background?.backgroundRepeat;\n\tconst imageValue =\n\t\tstyle?.background?.backgroundImage?.url ||\n\t\tinheritedValue?.background?.backgroundImage?.url;\n\tconst positionValue =\n\t\tstyle?.background?.backgroundPosition ||\n\t\tinheritedValue?.background?.backgroundPosition;\n\n\t/*\n\t * An `undefined` value is replaced with any supplied\n\t * default control value for the toggle group control.\n\t * An empty string is treated as `auto` - this allows a user\n\t * to select \"Size\" and then enter a custom value, with an\n\t * empty value being treated as `auto`.\n\t */\n\tconst currentValueForToggle =\n\t\t( sizeValue !== undefined &&\n\t\t\tsizeValue !== 'cover' &&\n\t\t\tsizeValue !== 'contain' ) ||\n\t\tsizeValue === ''\n\t\t\t? 'auto'\n\t\t\t: sizeValue || defaultValues?.backgroundSize;\n\n\t/*\n\t * If the current value is `cover` and the repeat value is `undefined`, then\n\t * the toggle should be unchecked as the default state. Otherwise, the toggle\n\t * should reflect the current repeat value.\n\t */\n\tconst repeatCheckedValue = ! (\n\t\trepeatValue === 'no-repeat' ||\n\t\t( currentValueForToggle === 'cover' && repeatValue === undefined )\n\t);\n\n\tconst hasValue = hasBackgroundSizeValue( style );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tstyle: {\n\t\t\t\t...previousValue.style,\n\t\t\t\tbackground: {\n\t\t\t\t\t...previousValue.style?.background,\n\t\t\t\t\tbackgroundRepeat: undefined,\n\t\t\t\t\tbackgroundSize: undefined,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst updateBackgroundSize = ( next ) => {\n\t\t// When switching to 'contain' toggle the repeat off.\n\t\tlet nextRepeat = repeatValue;\n\n\t\tif ( next === 'contain' ) {\n\t\t\tnextRepeat = 'no-repeat';\n\t\t}\n\n\t\tif ( next === 'cover' ) {\n\t\t\tnextRepeat = undefined;\n\t\t}\n\n\t\tif (\n\t\t\t( currentValueForToggle === 'cover' ||\n\t\t\t\tcurrentValueForToggle === 'contain' ) &&\n\t\t\tnext === 'auto'\n\t\t) {\n\t\t\tnextRepeat = undefined;\n\t\t}\n\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundRepeat: nextRepeat,\n\t\t\t\tbackgroundSize: next,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst updateBackgroundPosition = ( next ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundPosition' ],\n\t\t\t\tcoordsToBackgroundPosition( next )\n\t\t\t)\n\t\t);\n\t};\n\n\tconst toggleIsRepeated = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundRepeat' ],\n\t\t\t\trepeatCheckedValue === true ? 'no-repeat' : undefined\n\t\t\t)\n\t\t);\n\n\tconst resetBackgroundSize = () =>\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundPosition: undefined,\n\t\t\t\tbackgroundRepeat: undefined,\n\t\t\t\tbackgroundSize: undefined,\n\t\t\t} )\n\t\t);\n\n\treturn (\n\t\t<VStack\n\t\t\tas={ ToolsPanelItem }\n\t\t\tspacing={ 2 }\n\t\t\tclassName=\"single-column\"\n\t\t\thasValue={ () => hasValue }\n\t\t\tlabel={ __( 'Size' ) }\n\t\t\tonDeselect={ resetBackgroundSize }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<FocalPointPicker\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Position' ) }\n\t\t\t\turl={ imageValue }\n\t\t\t\tvalue={ backgroundPositionToCoords( positionValue ) }\n\t\t\t\tonChange={ updateBackgroundPosition }\n\t\t\t/>\n\t\t\t<ToggleGroupControl\n\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\tvalue={ currentValueForToggle }\n\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\tisBlock\n\t\t\t\thelp={ backgroundSizeHelpText( sizeValue ) }\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ 'cover' }\n\t\t\t\t\tvalue={ 'cover' }\n\t\t\t\t\tlabel={ __( 'Cover' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ 'contain' }\n\t\t\t\t\tvalue={ 'contain' }\n\t\t\t\t\tlabel={ __( 'Contain' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ 'fixed' }\n\t\t\t\t\tvalue={ 'auto' }\n\t\t\t\t\tlabel={ __( 'Fixed' ) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t{ sizeValue !== undefined &&\n\t\t\tsizeValue !== 'cover' &&\n\t\t\tsizeValue !== 'contain' ? (\n\t\t\t\t<UnitControl\n\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\t\tvalue={ sizeValue }\n\t\t\t\t/>\n\t\t\t) : null }\n\t\t\t{ currentValueForToggle !== 'cover' && (\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Repeat' ) }\n\t\t\t\t\tchecked={ repeatCheckedValue }\n\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nfunction BackgroundToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<VStack\n\t\t\tas={ ToolsPanel }\n\t\t\tspacing={ 6 }\n\t\t\tlabel={ __( 'Background' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</VStack>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tbackgroundImage: true,\n\tbackgroundSize: true,\n};\n\nexport default function BackgroundPanel( {\n\tas: Wrapper = BackgroundToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n\tdefaultValues = {},\n} ) {\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tbackground: {},\n\t\t};\n\t}, [] );\n\tconst shouldShowBackgroundSizeControls =\n\t\tsettings?.background?.backgroundSize;\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<BackgroundImageToolsPanelItem\n\t\t\t\tonChange={ onChange }\n\t\t\t\tpanelId={ panelId }\n\t\t\t\tisShownByDefault={ defaultControls.backgroundImage }\n\t\t\t\tstyle={ value }\n\t\t\t\tinheritedValue={ inheritedValue }\n\t\t\t/>\n\t\t\t{ shouldShowBackgroundSizeControls && (\n\t\t\t\t<BackgroundSizeToolsPanelItem\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t\tisShownByDefault={ defaultControls.backgroundSize }\n\t\t\t\t\tstyle={ value }\n\t\t\t\t\tinheritedValue={ inheritedValue }\n\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__experimentalVStack","VStack","DropZone","FlexItem","FocalPointPicker","MenuItem","VisuallyHidden","__experimentalItemGroup","ItemGroup","__experimentalHStack","HStack","__experimentalTruncate","Truncate","__","sprintf","store","noticesStore","getFilename","useCallback","Platform","useRef","useDispatch","useSelect","focus","isBlobURL","TOOLSPANEL_DROPDOWNMENU_PROPS","setImmutably","MediaReplaceFlow","blockEditorStore","IMAGE_BACKGROUND_TYPE","DEFAULT_CONTROLS","backgroundImage","backgroundSize","useHasBackgroundPanel","settings","OS","background","hasBackgroundSizeValue","style","backgroundPosition","undefined","hasBackgroundImageValue","id","url","backgroundSizeHelpText","value","coordsToBackgroundPosition","isNaN","x","y","backgroundPositionToCoords","split","map","v","parseFloat","InspectorImagePreview","label","filename","imgUrl","imgLabel","createElement","as","justify","className","numberOfLines","BackgroundImageToolsPanelItem","panelId","isShownByDefault","onChange","inheritedValue","mediaUpload","select","getSettings","title","replaceContainerRef","createErrorNotice","onUploadError","message","type","resetBackgroundImage","onSelectMedia","media","media_type","source","onFilesDrop","filesList","allowedTypes","onFileChange","image","onError","resetAllFilter","previousValue","hasValue","onDeselect","ref","mediaId","mediaURL","accept","onSelect","name","variant","onClick","toggleButton","tabbable","find","current","click","BackgroundSizeToolsPanelItem","defaultValues","sizeValue","repeatValue","backgroundRepeat","imageValue","positionValue","currentValueForToggle","repeatCheckedValue","updateBackgroundSize","next","nextRepeat","updateBackgroundPosition","toggleIsRepeated","resetBackgroundSize","spacing","__next40pxDefaultSize","size","isBlock","help","key","checked","BackgroundToolsPanel","children","headerLabel","resetAll","updatedValue","dropdownMenuProps","BackgroundPanel","Wrapper","defaultControls","shouldShowBackgroundSizeControls"],"sources":["@wordpress/block-editor/src/components/global-styles/background-panel.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalVStack as VStack,\n\tDropZone,\n\tFlexItem,\n\tFocalPointPicker,\n\tMenuItem,\n\tVisuallyHidden,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { getFilename } from '@wordpress/url';\nimport { useCallback, Platform, useRef } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { focus } from '@wordpress/dom';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';\nimport { setImmutably } from '../../utils/object';\nimport MediaReplaceFlow from '../media-replace-flow';\nimport { store as blockEditorStore } from '../../store';\n\nconst IMAGE_BACKGROUND_TYPE = 'image';\nconst DEFAULT_CONTROLS = {\n\tbackgroundImage: true,\n\tbackgroundSize: false,\n};\n\n/**\n * Checks site settings to see if the background panel may be used.\n * `settings.background.backgroundSize` exists also,\n * but can only be used if settings?.background?.backgroundImage is `true`.\n *\n * @param {Object} settings Site settings\n * @return {boolean} Whether site settings has activated background panel.\n */\nexport function useHasBackgroundPanel( settings ) {\n\treturn Platform.OS === 'web' && settings?.background?.backgroundImage;\n}\n\n/**\n * Checks if there is a current value in the background size block support\n * attributes. Background size values include background size as well\n * as background position.\n *\n * @param {Object} style Style attribute.\n * @return {boolean} Whether the block has a background size value set.\n */\nexport function hasBackgroundSizeValue( style ) {\n\treturn (\n\t\tstyle?.background?.backgroundPosition !== undefined ||\n\t\tstyle?.background?.backgroundSize !== undefined\n\t);\n}\n\n/**\n * Checks if there is a current value in the background image block support\n * attributes.\n *\n * @param {Object} style Style attribute.\n * @return {boolean} Whether the block has a background image value set.\n */\nexport function hasBackgroundImageValue( style ) {\n\treturn (\n\t\t!! style?.background?.backgroundImage?.id ||\n\t\t!! style?.background?.backgroundImage?.url\n\t);\n}\n\n/**\n * Get the help text for the background size control.\n *\n * @param {string} value backgroundSize value.\n * @return {string} Translated help text.\n */\nfunction backgroundSizeHelpText( value ) {\n\tif ( value === 'cover' || value === undefined ) {\n\t\treturn __( 'Image covers the space evenly.' );\n\t}\n\tif ( value === 'contain' ) {\n\t\treturn __( 'Image is contained without distortion.' );\n\t}\n\treturn __( 'Specify a fixed width.' );\n}\n\n/**\n * Converts decimal x and y coords from FocalPointPicker to percentage-based values\n * to use as backgroundPosition value.\n *\n * @param {{x?:number, y?:number}} value FocalPointPicker coords.\n * @return {string} \t\t\t\t backgroundPosition value.\n */\nexport const coordsToBackgroundPosition = ( value ) => {\n\tif ( ! value || ( isNaN( value.x ) && isNaN( value.y ) ) ) {\n\t\treturn undefined;\n\t}\n\n\tconst x = isNaN( value.x ) ? 0.5 : value.x;\n\tconst y = isNaN( value.y ) ? 0.5 : value.y;\n\n\treturn `${ x * 100 }% ${ y * 100 }%`;\n};\n\n/**\n * Converts backgroundPosition value to x and y coords for FocalPointPicker.\n *\n * @param {string} value backgroundPosition value.\n * @return {{x?:number, y?:number}} FocalPointPicker coords.\n */\nexport const backgroundPositionToCoords = ( value ) => {\n\tif ( ! value ) {\n\t\treturn { x: undefined, y: undefined };\n\t}\n\n\tlet [ x, y ] = value.split( ' ' ).map( ( v ) => parseFloat( v ) / 100 );\n\tx = isNaN( x ) ? undefined : x;\n\ty = isNaN( y ) ? x : y;\n\n\treturn { x, y };\n};\n\nfunction InspectorImagePreview( { label, filename, url: imgUrl } ) {\n\tconst imgLabel =\n\t\tlabel || getFilename( imgUrl ) || __( 'Add background image' );\n\n\treturn (\n\t\t<ItemGroup as=\"span\">\n\t\t\t<HStack justify={ imgUrl ? 'flex-start' : 'center' } as=\"span\">\n\t\t\t\t{ imgUrl && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-global-styles-background-panel__inspector-image-indicator-wrapper',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'has-image': imgUrl,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tbackgroundImage: `url(${ imgUrl })`,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<FlexItem as=\"span\">\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ imgLabel }\n\t\t\t\t\t</Truncate>\n\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t{ filename\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: file name */\n\t\t\t\t\t\t\t\t\t__( 'Selected image: %s' ),\n\t\t\t\t\t\t\t\t\tfilename\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'No image selected' ) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</ItemGroup>\n\t);\n}\n\nfunction BackgroundImageToolsPanelItem( {\n\tpanelId,\n\tisShownByDefault,\n\tonChange,\n\tstyle,\n\tinheritedValue,\n} ) {\n\tconst mediaUpload = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().mediaUpload,\n\t\t[]\n\t);\n\n\tconst { id, title, url } = style?.background?.backgroundImage || {\n\t\t...inheritedValue?.background?.backgroundImage,\n\t};\n\n\tconst replaceContainerRef = useRef();\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst resetBackgroundImage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundImage' ],\n\t\t\t\tundefined\n\t\t\t)\n\t\t);\n\n\tconst onSelectMedia = ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tresetBackgroundImage();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// For media selections originated from a file upload.\n\t\tif (\n\t\t\t( media.media_type &&\n\t\t\t\tmedia.media_type !== IMAGE_BACKGROUND_TYPE ) ||\n\t\t\t( ! media.media_type &&\n\t\t\t\tmedia.type &&\n\t\t\t\tmedia.type !== IMAGE_BACKGROUND_TYPE )\n\t\t) {\n\t\t\tonUploadError(\n\t\t\t\t__( 'Only images can be used as a background image.' )\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background', 'backgroundImage' ], {\n\t\t\t\turl: media.url,\n\t\t\t\tid: media.id,\n\t\t\t\tsource: 'file',\n\t\t\t\ttitle: media.title || undefined,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst onFilesDrop = ( filesList ) => {\n\t\tmediaUpload( {\n\t\t\tallowedTypes: [ IMAGE_BACKGROUND_TYPE ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonSelectMedia( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t} );\n\t};\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tstyle: {\n\t\t\t\t...previousValue.style,\n\t\t\t\tbackground: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst hasValue =\n\t\thasBackgroundImageValue( style ) ||\n\t\thasBackgroundImageValue( inheritedValue );\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\tclassName=\"single-column\"\n\t\t\thasValue={ () => hasValue }\n\t\t\tlabel={ __( 'Background image' ) }\n\t\t\tonDeselect={ resetBackgroundImage }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-media-replace-container\"\n\t\t\t\tref={ replaceContainerRef }\n\t\t\t>\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\tallowedTypes={ [ IMAGE_BACKGROUND_TYPE ] }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\tname={\n\t\t\t\t\t\t<InspectorImagePreview\n\t\t\t\t\t\t\tlabel={ title }\n\t\t\t\t\t\t\tfilename={ title || __( 'Untitled' ) }\n\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t>\n\t\t\t\t\t{ hasValue && (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst [ toggleButton ] = focus.tabbable.find(\n\t\t\t\t\t\t\t\t\treplaceContainerRef.current\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t// Focus the toggle button and close the dropdown menu.\n\t\t\t\t\t\t\t\t// This ensures similar behaviour as to selecting an image, where the dropdown is\n\t\t\t\t\t\t\t\t// closed and focus is redirected to the dropdown toggle button.\n\t\t\t\t\t\t\t\ttoggleButton?.focus();\n\t\t\t\t\t\t\t\ttoggleButton?.click();\n\t\t\t\t\t\t\t\tresetBackgroundImage();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset ' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t) }\n\t\t\t\t</MediaReplaceFlow>\n\t\t\t\t<DropZone\n\t\t\t\t\tonFilesDrop={ onFilesDrop }\n\t\t\t\t\tlabel={ __( 'Drop to upload' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</ToolsPanelItem>\n\t);\n}\n\nfunction BackgroundSizeToolsPanelItem( {\n\tpanelId,\n\tisShownByDefault,\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tdefaultValues,\n} ) {\n\tconst sizeValue =\n\t\tstyle?.background?.backgroundSize ||\n\t\tinheritedValue?.background?.backgroundSize;\n\tconst repeatValue =\n\t\tstyle?.background?.backgroundRepeat ||\n\t\tinheritedValue?.background?.backgroundRepeat;\n\tconst imageValue =\n\t\tstyle?.background?.backgroundImage?.url ||\n\t\tinheritedValue?.background?.backgroundImage?.url;\n\tconst positionValue =\n\t\tstyle?.background?.backgroundPosition ||\n\t\tinheritedValue?.background?.backgroundPosition;\n\n\t/*\n\t * An `undefined` value is replaced with any supplied\n\t * default control value for the toggle group control.\n\t * An empty string is treated as `auto` - this allows a user\n\t * to select \"Size\" and then enter a custom value, with an\n\t * empty value being treated as `auto`.\n\t */\n\tconst currentValueForToggle =\n\t\t( sizeValue !== undefined &&\n\t\t\tsizeValue !== 'cover' &&\n\t\t\tsizeValue !== 'contain' ) ||\n\t\tsizeValue === ''\n\t\t\t? 'auto'\n\t\t\t: sizeValue || defaultValues?.backgroundSize;\n\n\t/*\n\t * If the current value is `cover` and the repeat value is `undefined`, then\n\t * the toggle should be unchecked as the default state. Otherwise, the toggle\n\t * should reflect the current repeat value.\n\t */\n\tconst repeatCheckedValue = ! (\n\t\trepeatValue === 'no-repeat' ||\n\t\t( currentValueForToggle === 'cover' && repeatValue === undefined )\n\t);\n\n\tconst hasValue = hasBackgroundSizeValue( style );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tstyle: {\n\t\t\t\t...previousValue.style,\n\t\t\t\tbackground: {\n\t\t\t\t\t...previousValue.style?.background,\n\t\t\t\t\tbackgroundRepeat: undefined,\n\t\t\t\t\tbackgroundSize: undefined,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst updateBackgroundSize = ( next ) => {\n\t\t// When switching to 'contain' toggle the repeat off.\n\t\tlet nextRepeat = repeatValue;\n\n\t\tif ( next === 'contain' ) {\n\t\t\tnextRepeat = 'no-repeat';\n\t\t}\n\n\t\tif ( next === 'cover' ) {\n\t\t\tnextRepeat = undefined;\n\t\t}\n\n\t\tif (\n\t\t\t( currentValueForToggle === 'cover' ||\n\t\t\t\tcurrentValueForToggle === 'contain' ) &&\n\t\t\tnext === 'auto'\n\t\t) {\n\t\t\tnextRepeat = undefined;\n\t\t}\n\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundRepeat: nextRepeat,\n\t\t\t\tbackgroundSize: next,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst updateBackgroundPosition = ( next ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundPosition' ],\n\t\t\t\tcoordsToBackgroundPosition( next )\n\t\t\t)\n\t\t);\n\t};\n\n\tconst toggleIsRepeated = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundRepeat' ],\n\t\t\t\trepeatCheckedValue === true ? 'no-repeat' : undefined\n\t\t\t)\n\t\t);\n\n\tconst resetBackgroundSize = () =>\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundPosition: undefined,\n\t\t\t\tbackgroundRepeat: undefined,\n\t\t\t\tbackgroundSize: undefined,\n\t\t\t} )\n\t\t);\n\n\treturn (\n\t\t<VStack\n\t\t\tas={ ToolsPanelItem }\n\t\t\tspacing={ 2 }\n\t\t\tclassName=\"single-column\"\n\t\t\thasValue={ () => hasValue }\n\t\t\tlabel={ __( 'Size' ) }\n\t\t\tonDeselect={ resetBackgroundSize }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<FocalPointPicker\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Position' ) }\n\t\t\t\turl={ imageValue }\n\t\t\t\tvalue={ backgroundPositionToCoords( positionValue ) }\n\t\t\t\tonChange={ updateBackgroundPosition }\n\t\t\t/>\n\t\t\t<ToggleGroupControl\n\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\tvalue={ currentValueForToggle }\n\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\tisBlock\n\t\t\t\thelp={ backgroundSizeHelpText( sizeValue ) }\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ 'cover' }\n\t\t\t\t\tvalue={ 'cover' }\n\t\t\t\t\tlabel={ __( 'Cover' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ 'contain' }\n\t\t\t\t\tvalue={ 'contain' }\n\t\t\t\t\tlabel={ __( 'Contain' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ 'fixed' }\n\t\t\t\t\tvalue={ 'auto' }\n\t\t\t\t\tlabel={ __( 'Fixed' ) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t{ currentValueForToggle !== undefined &&\n\t\t\tcurrentValueForToggle !== 'cover' &&\n\t\t\tcurrentValueForToggle !== 'contain' ? (\n\t\t\t\t<UnitControl\n\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\t\tvalue={ sizeValue }\n\t\t\t\t/>\n\t\t\t) : null }\n\t\t\t{ currentValueForToggle !== 'cover' && (\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Repeat' ) }\n\t\t\t\t\tchecked={ repeatCheckedValue }\n\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nfunction BackgroundToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n\theaderLabel,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<VStack\n\t\t\tas={ ToolsPanel }\n\t\t\tspacing={ 4 }\n\t\t\tlabel={ headerLabel }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</VStack>\n\t);\n}\n\nexport default function BackgroundPanel( {\n\tas: Wrapper = BackgroundToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n\tdefaultValues = {},\n\theaderLabel = __( 'Background image' ),\n} ) {\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tbackground: {},\n\t\t};\n\t}, [] );\n\tconst shouldShowBackgroundSizeControls =\n\t\tsettings?.background?.backgroundSize;\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t\theaderLabel={ headerLabel }\n\t\t>\n\t\t\t<BackgroundImageToolsPanelItem\n\t\t\t\tonChange={ onChange }\n\t\t\t\tpanelId={ panelId }\n\t\t\t\tisShownByDefault={ defaultControls.backgroundImage }\n\t\t\t\tstyle={ value }\n\t\t\t\tinheritedValue={ inheritedValue }\n\t\t\t/>\n\t\t\t{ shouldShowBackgroundSizeControls && (\n\t\t\t\t<BackgroundSizeToolsPanelItem\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t\tisShownByDefault={ defaultControls.backgroundSize }\n\t\t\t\t\tstyle={ value }\n\t\t\t\t\tinheritedValue={ inheritedValue }\n\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalBorderBoxControl","BorderBoxControl","__experimentalHasSplitBorders","hasSplitBorders","__experimentalIsDefinedBorder","isDefinedBorder","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalItemGroup","ItemGroup","BaseControl","useCallback","useMemo","__","BorderRadiusControl","useColorsPerOrigin","getValueFromVariable","TOOLSPANEL_DROPDOWNMENU_PROPS","overrideOrigins","setImmutably","useBorderPanelLabel","ShadowPopover","useShadowPresets","useHasBorderPanel","settings","controls","Object","values","useHasBorderPanelControls","some","Boolean","hasBorderColor","useHasBorderColorControl","hasBorderRadius","useHasBorderRadiusControl","hasBorderStyle","useHasBorderStyleControl","hasBorderWidth","useHasBorderWidthControl","hasShadow","useHasShadowControl","border","color","radius","style","width","shadows","shadow","length","BorderToolsPanel","resetAllFilter","onChange","value","panelId","children","label","resetAll","updatedValue","createElement","dropdownMenuProps","DEFAULT_CONTROLS","BorderPanel","as","Wrapper","inheritedValue","name","defaultControls","_settings$shadow$pres","_overrideOrigins","colors","decodeValue","rawValue","encodeColorValue","colorValue","allColors","flatMap","originColors","colorObject","find","slug","borderValue","forEach","side","undefined","setBorder","newBorder","showBorderColor","showBorderStyle","showBorderWidth","showBorderRadius","borderRadiusValues","setBorderRadius","newBorderRadius","borderValues","entries","hasShadowControl","shadowPresets","presets","overriddenShadowPresets","setShadow","newValue","shadowName","resetShadow","resetBorder","onBorderChange","updatedBorder","previousValue","showBorderByDefault","hasBorderControl","blockName","hasValue","onDeselect","isShownByDefault","enableAlpha","enableStyle","popoverOffset","popoverPlacement","__experimentalIsRenderedInSidebar","size","hideLabelFromVision","VisualLabel","isBordered","isSeparated","onShadowChange"],"sources":["@wordpress/block-editor/src/components/global-styles/border-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalBorderBoxControl as BorderBoxControl,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n\t__experimentalIsDefinedBorder as isDefinedBorder,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalItemGroup as ItemGroup,\n\tBaseControl,\n} from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BorderRadiusControl from '../border-radius-control';\nimport { useColorsPerOrigin } from './hooks';\nimport { getValueFromVariable, TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';\nimport { overrideOrigins } from '../../store/get-block-settings';\nimport { setImmutably } from '../../utils/object';\nimport { useBorderPanelLabel } from '../../hooks/border';\nimport { ShadowPopover, useShadowPresets } from './shadow-panel-components';\n\nexport function useHasBorderPanel( settings ) {\n\tconst controls = Object.values( useHasBorderPanelControls( settings ) );\n\treturn controls.some( Boolean );\n}\n\nexport function useHasBorderPanelControls( settings ) {\n\tconst controls = {\n\t\thasBorderColor: useHasBorderColorControl( settings ),\n\t\thasBorderRadius: useHasBorderRadiusControl( settings ),\n\t\thasBorderStyle: useHasBorderStyleControl( settings ),\n\t\thasBorderWidth: useHasBorderWidthControl( settings ),\n\t\thasShadow: useHasShadowControl( settings ),\n\t};\n\n\treturn controls;\n}\n\nfunction useHasBorderColorControl( settings ) {\n\treturn settings?.border?.color;\n}\n\nfunction useHasBorderRadiusControl( settings ) {\n\treturn settings?.border?.radius;\n}\n\nfunction useHasBorderStyleControl( settings ) {\n\treturn settings?.border?.style;\n}\n\nfunction useHasBorderWidthControl( settings ) {\n\treturn settings?.border?.width;\n}\n\nfunction useHasShadowControl( settings ) {\n\tconst shadows = useShadowPresets( settings );\n\treturn !! settings?.shadow && shadows.length > 0;\n}\n\nfunction BorderToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n\tlabel,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ label }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tradius: true,\n\tcolor: true,\n\twidth: true,\n\tshadow: false,\n};\n\nexport default function BorderPanel( {\n\tas: Wrapper = BorderToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tname,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst decodeValue = useCallback(\n\t\t( rawValue ) => getValueFromVariable( { settings }, '', rawValue ),\n\t\t[ settings ]\n\t);\n\tconst encodeColorValue = ( colorValue ) => {\n\t\tconst allColors = colors.flatMap(\n\t\t\t( { colors: originColors } ) => originColors\n\t\t);\n\t\tconst colorObject = allColors.find(\n\t\t\t( { color } ) => color === colorValue\n\t\t);\n\t\treturn colorObject\n\t\t\t? 'var:preset|color|' + colorObject.slug\n\t\t\t: colorValue;\n\t};\n\tconst border = useMemo( () => {\n\t\tif ( hasSplitBorders( inheritedValue?.border ) ) {\n\t\t\tconst borderValue = { ...inheritedValue?.border };\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tborderValue[ side ] = {\n\t\t\t\t\t...borderValue[ side ],\n\t\t\t\t\tcolor: decodeValue( borderValue[ side ]?.color ),\n\t\t\t\t};\n\t\t\t} );\n\t\t\treturn borderValue;\n\t\t}\n\t\treturn {\n\t\t\t...inheritedValue?.border,\n\t\t\tcolor: inheritedValue?.border?.color\n\t\t\t\t? decodeValue( inheritedValue?.border?.color )\n\t\t\t\t: undefined,\n\t\t};\n\t}, [ inheritedValue?.border, decodeValue ] );\n\tconst setBorder = ( newBorder ) =>\n\t\tonChange( { ...value, border: newBorder } );\n\tconst showBorderColor = useHasBorderColorControl( settings );\n\tconst showBorderStyle = useHasBorderStyleControl( settings );\n\tconst showBorderWidth = useHasBorderWidthControl( settings );\n\n\t// Border radius.\n\tconst showBorderRadius = useHasBorderRadiusControl( settings );\n\tconst borderRadiusValues = decodeValue( border?.radius );\n\tconst setBorderRadius = ( newBorderRadius ) =>\n\t\tsetBorder( { ...border, radius: newBorderRadius } );\n\tconst hasBorderRadius = () => {\n\t\tconst borderValues = value?.border?.radius;\n\t\tif ( typeof borderValues === 'object' ) {\n\t\t\treturn Object.entries( borderValues ).some( Boolean );\n\t\t}\n\t\treturn !! borderValues;\n\t};\n\tconst hasShadowControl = useHasShadowControl( settings );\n\n\t// Shadow\n\tconst shadow = decodeValue( inheritedValue?.shadow );\n\tconst shadowPresets = settings?.shadow?.presets ?? {};\n\tconst overriddenShadowPresets = overrideOrigins( shadowPresets ) ?? [];\n\tconst setShadow = ( newValue ) => {\n\t\tconst slug = overriddenShadowPresets?.find(\n\t\t\t( { shadow: shadowName } ) => shadowName === newValue\n\t\t)?.slug;\n\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'shadow' ],\n\t\t\t\tslug ? `var:preset|shadow|${ slug }` : newValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasShadow = () => !! value?.shadow;\n\tconst resetShadow = () => setShadow( undefined );\n\n\tconst resetBorder = () => {\n\t\tif ( hasBorderRadius() ) {\n\t\t\treturn setBorder( { radius: value?.border?.radius } );\n\t\t}\n\n\t\tsetBorder( undefined );\n\t};\n\n\tconst onBorderChange = ( newBorder ) => {\n\t\t// Ensure we have a visible border style when a border width or\n\t\t// color is being selected.\n\t\tconst updatedBorder = { ...newBorder };\n\n\t\tif ( hasSplitBorders( updatedBorder ) ) {\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tif ( updatedBorder[ side ] ) {\n\t\t\t\t\tupdatedBorder[ side ] = {\n\t\t\t\t\t\t...updatedBorder[ side ],\n\t\t\t\t\t\tcolor: encodeColorValue( updatedBorder[ side ]?.color ),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} );\n\t\t} else if ( updatedBorder ) {\n\t\t\tupdatedBorder.color = encodeColorValue( updatedBorder.color );\n\t\t}\n\n\t\t// As radius is maintained separately to color, style, and width\n\t\t// maintain its value. Undefined values here will be cleaned when\n\t\t// global styles are saved.\n\t\tsetBorder( { radius: border?.radius, ...updatedBorder } );\n\t};\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tborder: undefined,\n\t\t\tshadow: undefined,\n\t\t};\n\t}, [] );\n\n\tconst showBorderByDefault =\n\t\tdefaultControls?.color || defaultControls?.width;\n\n\tconst hasBorderControl =\n\t\tshowBorderColor ||\n\t\tshowBorderStyle ||\n\t\tshowBorderWidth ||\n\t\tshowBorderRadius;\n\n\tconst label = useBorderPanelLabel( {\n\t\tblockName: name,\n\t\thasShadowControl,\n\t\thasBorderControl,\n\t} );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t\tlabel={ label }\n\t\t>\n\t\t\t{ ( showBorderWidth || showBorderColor ) && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => isDefinedBorder( value?.border ) }\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\tonDeselect={ () => resetBorder() }\n\t\t\t\t\tisShownByDefault={ showBorderByDefault }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderBoxControl\n\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\tenableAlpha\n\t\t\t\t\t\tenableStyle={ showBorderStyle }\n\t\t\t\t\t\tonChange={ onBorderChange }\n\t\t\t\t\t\tpopoverOffset={ 40 }\n\t\t\t\t\t\tpopoverPlacement=\"left-start\"\n\t\t\t\t\t\tvalue={ border }\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\thideLabelFromVision={ ! hasShadowControl }\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showBorderRadius && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasBorderRadius }\n\t\t\t\t\tlabel={ __( 'Radius' ) }\n\t\t\t\t\tonDeselect={ () => setBorderRadius( undefined ) }\n\t\t\t\t\tisShownByDefault={ defaultControls.radius }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderRadiusControl\n\t\t\t\t\t\tvalues={ borderRadiusValues }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tsetBorderRadius( newValue || undefined );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasShadowControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Shadow' ) }\n\t\t\t\t\thasValue={ hasShadow }\n\t\t\t\t\tonDeselect={ resetShadow }\n\t\t\t\t\tisShownByDefault={ defaultControls.shadow }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ hasBorderControl ? (\n\t\t\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t\t\t{ __( 'Shadow' ) }\n\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t) : null }\n\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\t\tonShadowChange={ setShadow }\n\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["__experimentalBorderBoxControl","BorderBoxControl","__experimentalHasSplitBorders","hasSplitBorders","__experimentalIsDefinedBorder","isDefinedBorder","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalItemGroup","ItemGroup","BaseControl","useCallback","useMemo","__","BorderRadiusControl","useColorsPerOrigin","getValueFromVariable","TOOLSPANEL_DROPDOWNMENU_PROPS","overrideOrigins","setImmutably","useBorderPanelLabel","ShadowPopover","useShadowPresets","useHasBorderPanel","settings","controls","Object","values","useHasBorderPanelControls","some","Boolean","hasBorderColor","useHasBorderColorControl","hasBorderRadius","useHasBorderRadiusControl","hasBorderStyle","useHasBorderStyleControl","hasBorderWidth","useHasBorderWidthControl","hasShadow","useHasShadowControl","border","color","radius","style","width","shadows","shadow","length","BorderToolsPanel","resetAllFilter","onChange","value","panelId","children","label","resetAll","updatedValue","createElement","dropdownMenuProps","DEFAULT_CONTROLS","BorderPanel","as","Wrapper","inheritedValue","name","defaultControls","_settings$shadow$pres","_overrideOrigins","colors","decodeValue","rawValue","encodeColorValue","colorValue","allColors","flatMap","originColors","colorObject","find","slug","borderValue","forEach","side","undefined","setBorder","newBorder","showBorderColor","showBorderStyle","showBorderWidth","showBorderRadius","borderRadiusValues","setBorderRadius","newBorderRadius","borderValues","entries","hasShadowControl","shadowPresets","presets","overriddenShadowPresets","setShadow","newValue","shadowName","resetShadow","resetBorder","onBorderChange","updatedBorder","previousValue","showBorderByDefault","hasBorderControl","blockName","hasValue","onDeselect","isShownByDefault","enableAlpha","enableStyle","popoverOffset","popoverPlacement","__experimentalIsRenderedInSidebar","size","hideLabelFromVision","VisualLabel","isBordered","isSeparated","onShadowChange"],"sources":["@wordpress/block-editor/src/components/global-styles/border-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalBorderBoxControl as BorderBoxControl,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n\t__experimentalIsDefinedBorder as isDefinedBorder,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalItemGroup as ItemGroup,\n\tBaseControl,\n} from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BorderRadiusControl from '../border-radius-control';\nimport { useColorsPerOrigin } from './hooks';\nimport { getValueFromVariable, TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';\nimport { overrideOrigins } from '../../store/get-block-settings';\nimport { setImmutably } from '../../utils/object';\nimport { useBorderPanelLabel } from '../../hooks/border';\nimport { ShadowPopover, useShadowPresets } from './shadow-panel-components';\n\nexport function useHasBorderPanel( settings ) {\n\tconst controls = Object.values( useHasBorderPanelControls( settings ) );\n\treturn controls.some( Boolean );\n}\n\nexport function useHasBorderPanelControls( settings ) {\n\tconst controls = {\n\t\thasBorderColor: useHasBorderColorControl( settings ),\n\t\thasBorderRadius: useHasBorderRadiusControl( settings ),\n\t\thasBorderStyle: useHasBorderStyleControl( settings ),\n\t\thasBorderWidth: useHasBorderWidthControl( settings ),\n\t\thasShadow: useHasShadowControl( settings ),\n\t};\n\n\treturn controls;\n}\n\nfunction useHasBorderColorControl( settings ) {\n\treturn settings?.border?.color;\n}\n\nfunction useHasBorderRadiusControl( settings ) {\n\treturn settings?.border?.radius;\n}\n\nfunction useHasBorderStyleControl( settings ) {\n\treturn settings?.border?.style;\n}\n\nfunction useHasBorderWidthControl( settings ) {\n\treturn settings?.border?.width;\n}\n\nfunction useHasShadowControl( settings ) {\n\tconst shadows = useShadowPresets( settings );\n\treturn !! settings?.shadow && shadows.length > 0;\n}\n\nfunction BorderToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n\tlabel,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ label }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tradius: true,\n\tcolor: true,\n\twidth: true,\n\tshadow: false,\n};\n\nexport default function BorderPanel( {\n\tas: Wrapper = BorderToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tname,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst decodeValue = useCallback(\n\t\t( rawValue ) => getValueFromVariable( { settings }, '', rawValue ),\n\t\t[ settings ]\n\t);\n\tconst encodeColorValue = ( colorValue ) => {\n\t\tconst allColors = colors.flatMap(\n\t\t\t( { colors: originColors } ) => originColors\n\t\t);\n\t\tconst colorObject = allColors.find(\n\t\t\t( { color } ) => color === colorValue\n\t\t);\n\t\treturn colorObject\n\t\t\t? 'var:preset|color|' + colorObject.slug\n\t\t\t: colorValue;\n\t};\n\tconst border = useMemo( () => {\n\t\tif ( hasSplitBorders( inheritedValue?.border ) ) {\n\t\t\tconst borderValue = { ...inheritedValue?.border };\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tborderValue[ side ] = {\n\t\t\t\t\t...borderValue[ side ],\n\t\t\t\t\tcolor: decodeValue( borderValue[ side ]?.color ),\n\t\t\t\t};\n\t\t\t} );\n\t\t\treturn borderValue;\n\t\t}\n\t\treturn {\n\t\t\t...inheritedValue?.border,\n\t\t\tcolor: inheritedValue?.border?.color\n\t\t\t\t? decodeValue( inheritedValue?.border?.color )\n\t\t\t\t: undefined,\n\t\t};\n\t}, [ inheritedValue?.border, decodeValue ] );\n\tconst setBorder = ( newBorder ) =>\n\t\tonChange( { ...value, border: newBorder } );\n\tconst showBorderColor = useHasBorderColorControl( settings );\n\tconst showBorderStyle = useHasBorderStyleControl( settings );\n\tconst showBorderWidth = useHasBorderWidthControl( settings );\n\n\t// Border radius.\n\tconst showBorderRadius = useHasBorderRadiusControl( settings );\n\tconst borderRadiusValues = decodeValue( border?.radius );\n\tconst setBorderRadius = ( newBorderRadius ) =>\n\t\tsetBorder( { ...border, radius: newBorderRadius } );\n\tconst hasBorderRadius = () => {\n\t\tconst borderValues = value?.border?.radius;\n\t\tif ( typeof borderValues === 'object' ) {\n\t\t\treturn Object.entries( borderValues ).some( Boolean );\n\t\t}\n\t\treturn !! borderValues;\n\t};\n\tconst hasShadowControl = useHasShadowControl( settings );\n\n\t// Shadow\n\tconst shadow = decodeValue( inheritedValue?.shadow );\n\tconst shadowPresets = settings?.shadow?.presets ?? {};\n\tconst overriddenShadowPresets = overrideOrigins( shadowPresets ) ?? [];\n\tconst setShadow = ( newValue ) => {\n\t\tconst slug = overriddenShadowPresets?.find(\n\t\t\t( { shadow: shadowName } ) => shadowName === newValue\n\t\t)?.slug;\n\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'shadow' ],\n\t\t\t\tslug ? `var:preset|shadow|${ slug }` : newValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasShadow = () => !! value?.shadow;\n\tconst resetShadow = () => setShadow( undefined );\n\n\tconst resetBorder = () => {\n\t\tif ( hasBorderRadius() ) {\n\t\t\treturn setBorder( { radius: value?.border?.radius } );\n\t\t}\n\n\t\tsetBorder( undefined );\n\t};\n\n\tconst onBorderChange = ( newBorder ) => {\n\t\t// Ensure we have a visible border style when a border width or\n\t\t// color is being selected.\n\t\tconst updatedBorder = { ...newBorder };\n\n\t\tif ( hasSplitBorders( updatedBorder ) ) {\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tif ( updatedBorder[ side ] ) {\n\t\t\t\t\tupdatedBorder[ side ] = {\n\t\t\t\t\t\t...updatedBorder[ side ],\n\t\t\t\t\t\tcolor: encodeColorValue( updatedBorder[ side ]?.color ),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} );\n\t\t} else if ( updatedBorder ) {\n\t\t\tupdatedBorder.color = encodeColorValue( updatedBorder.color );\n\t\t}\n\n\t\t// As radius is maintained separately to color, style, and width\n\t\t// maintain its value. Undefined values here will be cleaned when\n\t\t// global styles are saved.\n\t\tsetBorder( { radius: border?.radius, ...updatedBorder } );\n\t};\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tborder: undefined,\n\t\t\tshadow: undefined,\n\t\t};\n\t}, [] );\n\n\tconst showBorderByDefault =\n\t\tdefaultControls?.color || defaultControls?.width;\n\n\tconst hasBorderControl =\n\t\tshowBorderColor ||\n\t\tshowBorderStyle ||\n\t\tshowBorderWidth ||\n\t\tshowBorderRadius;\n\n\tconst label = useBorderPanelLabel( {\n\t\tblockName: name,\n\t\thasShadowControl,\n\t\thasBorderControl,\n\t} );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t\tlabel={ label }\n\t\t>\n\t\t\t{ ( showBorderWidth || showBorderColor ) && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => isDefinedBorder( value?.border ) }\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\tonDeselect={ () => resetBorder() }\n\t\t\t\t\tisShownByDefault={ showBorderByDefault }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderBoxControl\n\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\tenableAlpha\n\t\t\t\t\t\tenableStyle={ showBorderStyle }\n\t\t\t\t\t\tonChange={ onBorderChange }\n\t\t\t\t\t\tpopoverOffset={ 40 }\n\t\t\t\t\t\tpopoverPlacement=\"left-start\"\n\t\t\t\t\t\tvalue={ border }\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\thideLabelFromVision={ ! hasShadowControl }\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showBorderRadius && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasBorderRadius }\n\t\t\t\t\tlabel={ __( 'Radius' ) }\n\t\t\t\t\tonDeselect={ () => setBorderRadius( undefined ) }\n\t\t\t\t\tisShownByDefault={ defaultControls.radius }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderRadiusControl\n\t\t\t\t\t\tvalues={ borderRadiusValues }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tsetBorderRadius( newValue || undefined );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasShadowControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Shadow' ) }\n\t\t\t\t\thasValue={ hasShadow }\n\t\t\t\t\tonDeselect={ resetShadow }\n\t\t\t\t\tisShownByDefault={ defaultControls.shadow }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ hasBorderControl ? (\n\t\t\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t\t\t{ __( 'Shadow' ) }\n\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t) : null }\n\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\t\tonShadowChange={ setShadow }\n\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}