@wordpress/block-editor 9.8.1-next.957ca95e4c.0 → 10.0.1

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 (511) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +13 -1
  3. package/build/components/alignment-control/ui.js +6 -5
  4. package/build/components/alignment-control/ui.js.map +1 -1
  5. package/build/components/autocomplete/index.js +2 -2
  6. package/build/components/autocomplete/index.js.map +1 -1
  7. package/build/components/block-actions/index.js +5 -9
  8. package/build/components/block-actions/index.js.map +1 -1
  9. package/build/components/block-alignment-control/ui.js +5 -5
  10. package/build/components/block-alignment-control/ui.js.map +1 -1
  11. package/build/components/block-content-overlay/index.js +2 -4
  12. package/build/components/block-content-overlay/index.js.map +1 -1
  13. package/build/components/block-draggable/draggable-chip.js +2 -1
  14. package/build/components/block-draggable/draggable-chip.js.map +1 -1
  15. package/build/components/block-edit/edit.js +1 -1
  16. package/build/components/block-edit/edit.js.map +1 -1
  17. package/build/components/block-inspector/index.js +125 -17
  18. package/build/components/block-inspector/index.js.map +1 -1
  19. package/build/components/block-list/block-list-compact.native.js +2 -1
  20. package/build/components/block-list/block-list-compact.native.js.map +1 -1
  21. package/build/components/block-list/block.js +40 -9
  22. package/build/components/block-list/block.js.map +1 -1
  23. package/build/components/block-list/index.js +4 -4
  24. package/build/components/block-list/index.js.map +1 -1
  25. package/build/components/block-list/use-block-props/index.js +14 -11
  26. package/build/components/block-list/use-block-props/index.js.map +1 -1
  27. package/build/components/block-list/use-block-props/use-block-class-names.js +3 -2
  28. package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  29. package/build/components/block-list/use-block-props/use-focus-first-element.js +3 -9
  30. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  31. package/build/components/block-list/use-block-props/use-is-hovered.js +1 -2
  32. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  33. package/build/components/block-list/use-in-between-inserter.js +7 -12
  34. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  35. package/build/components/block-list-appender/index.js +20 -21
  36. package/build/components/block-list-appender/index.js.map +1 -1
  37. package/build/components/block-list-appender/index.native.js +1 -7
  38. package/build/components/block-list-appender/index.native.js.map +1 -1
  39. package/build/components/block-lock/use-block-lock.js +3 -1
  40. package/build/components/block-lock/use-block-lock.js.map +1 -1
  41. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +20 -10
  42. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  43. package/build/components/block-mover/button.js +4 -6
  44. package/build/components/block-mover/button.js.map +1 -1
  45. package/build/components/block-mover/index.js +4 -6
  46. package/build/components/block-mover/index.js.map +1 -1
  47. package/build/components/block-mover/index.native.js +24 -8
  48. package/build/components/block-mover/index.native.js.map +1 -1
  49. package/build/components/block-popover/inbetween.js +82 -52
  50. package/build/components/block-popover/inbetween.js.map +1 -1
  51. package/build/components/block-popover/index.js +31 -7
  52. package/build/components/block-popover/index.js.map +1 -1
  53. package/build/components/block-preview/auto.js +4 -2
  54. package/build/components/block-preview/auto.js.map +1 -1
  55. package/build/components/block-settings-menu/block-settings-dropdown.js +3 -1
  56. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  57. package/build/components/block-settings-menu-controls/index.js +3 -1
  58. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  59. package/build/components/block-styles/preview-panel.js +7 -1
  60. package/build/components/block-styles/preview-panel.js.map +1 -1
  61. package/build/components/block-switcher/block-transformations-menu.js +114 -25
  62. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  63. package/build/components/block-toolbar/index.js +9 -8
  64. package/build/components/block-toolbar/index.js.map +1 -1
  65. package/build/components/block-tools/block-contextual-toolbar.js +3 -2
  66. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  67. package/build/components/block-tools/block-selection-button.js +13 -5
  68. package/build/components/block-tools/block-selection-button.js.map +1 -1
  69. package/build/components/block-tools/index.js +33 -15
  70. package/build/components/block-tools/index.js.map +1 -1
  71. package/build/components/block-tools/insertion-point.js +4 -9
  72. package/build/components/block-tools/insertion-point.js.map +1 -1
  73. package/build/components/block-tools/selected-block-popover.js +9 -8
  74. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  75. package/build/components/block-tools/use-block-toolbar-popover-props.js +13 -8
  76. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  77. package/build/components/block-tools/zoom-out-mode-inserters.js +71 -0
  78. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -0
  79. package/build/components/block-vertical-alignment-control/ui.js +5 -2
  80. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  81. package/build/components/border-radius-control/linked-button.js +5 -6
  82. package/build/components/border-radius-control/linked-button.js.map +1 -1
  83. package/build/components/colors-gradients/dropdown.js +1 -1
  84. package/build/components/colors-gradients/dropdown.js.map +1 -1
  85. package/build/components/convert-to-group-buttons/toolbar.js +8 -3
  86. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  87. package/build/components/iframe/index.js +31 -4
  88. package/build/components/iframe/index.js.map +1 -1
  89. package/build/components/inner-blocks/default-block-appender.js +1 -7
  90. package/build/components/inner-blocks/default-block-appender.js.map +1 -1
  91. package/build/components/inner-blocks/index.js +9 -3
  92. package/build/components/inner-blocks/index.js.map +1 -1
  93. package/build/components/inner-blocks/use-inner-block-template-sync.js +28 -17
  94. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  95. package/build/components/inner-blocks/use-nested-settings-update.js +28 -4
  96. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  97. package/build/components/inserter/index.js +3 -6
  98. package/build/components/inserter/index.js.map +1 -1
  99. package/build/components/inserter/library.js +14 -3
  100. package/build/components/inserter/library.js.map +1 -1
  101. package/build/components/inserter/menu.js +21 -8
  102. package/build/components/inserter/menu.js.map +1 -1
  103. package/build/components/inserter/preview-panel.js +1 -1
  104. package/build/components/inserter/preview-panel.js.map +1 -1
  105. package/build/components/inserter/tabs.js +11 -4
  106. package/build/components/inserter/tabs.js.map +1 -1
  107. package/build/components/link-control/link-preview.js +1 -1
  108. package/build/components/link-control/link-preview.js.map +1 -1
  109. package/build/components/link-control/search-input.js +6 -3
  110. package/build/components/link-control/search-input.js.map +1 -1
  111. package/build/components/link-control/search-item.js +36 -5
  112. package/build/components/link-control/search-item.js.map +1 -1
  113. package/build/components/list-view/block.js +23 -11
  114. package/build/components/list-view/block.js.map +1 -1
  115. package/build/components/list-view/branch.js +19 -2
  116. package/build/components/list-view/branch.js.map +1 -1
  117. package/build/components/list-view/drop-indicator.js +30 -28
  118. package/build/components/list-view/drop-indicator.js.map +1 -1
  119. package/build/components/list-view/index.js +8 -4
  120. package/build/components/list-view/index.js.map +1 -1
  121. package/build/components/list-view/use-block-selection.js +0 -1
  122. package/build/components/list-view/use-block-selection.js.map +1 -1
  123. package/build/components/provider/use-block-sync.js +1 -7
  124. package/build/components/provider/use-block-sync.js.map +1 -1
  125. package/build/components/publish-date-time-picker/index.js +1 -1
  126. package/build/components/publish-date-time-picker/index.js.map +1 -1
  127. package/build/components/rich-text/format-toolbar-container.js +9 -9
  128. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  129. package/build/components/rich-text/index.js +31 -21
  130. package/build/components/rich-text/index.js.map +1 -1
  131. package/build/components/rich-text/index.native.js +11 -20
  132. package/build/components/rich-text/index.native.js.map +1 -1
  133. package/build/components/spacing-sizes-control/linked-button.js +2 -3
  134. package/build/components/spacing-sizes-control/linked-button.js.map +1 -1
  135. package/build/components/spacing-sizes-control/utils.js +1 -4
  136. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  137. package/build/components/text-decoration-control/index.js +19 -15
  138. package/build/components/text-decoration-control/index.js.map +1 -1
  139. package/build/components/text-transform-control/index.js +25 -17
  140. package/build/components/text-transform-control/index.js.map +1 -1
  141. package/build/components/tool-selector/index.js +6 -11
  142. package/build/components/tool-selector/index.js.map +1 -1
  143. package/build/components/url-popover/image-url-input-ui.js +6 -4
  144. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  145. package/build/components/url-popover/index.js +1 -1
  146. package/build/components/url-popover/index.js.map +1 -1
  147. package/build/components/use-block-drop-zone/index.js +7 -4
  148. package/build/components/use-block-drop-zone/index.js.map +1 -1
  149. package/build/components/use-moving-animation/index.js +9 -28
  150. package/build/components/use-moving-animation/index.js.map +1 -1
  151. package/build/components/writing-flow/use-select-all.js +1 -7
  152. package/build/components/writing-flow/use-select-all.js.map +1 -1
  153. package/build/hooks/align.js +14 -2
  154. package/build/hooks/align.js.map +1 -1
  155. package/build/hooks/color-panel.js +2 -1
  156. package/build/hooks/color-panel.js.map +1 -1
  157. package/build/hooks/content-lock-ui.js +145 -0
  158. package/build/hooks/content-lock-ui.js.map +1 -0
  159. package/build/hooks/duotone.js +8 -1
  160. package/build/hooks/duotone.js.map +1 -1
  161. package/build/hooks/index.js +14 -0
  162. package/build/hooks/index.js.map +1 -1
  163. package/build/hooks/layout.js +11 -9
  164. package/build/hooks/layout.js.map +1 -1
  165. package/build/hooks/metadata-name.js +55 -0
  166. package/build/hooks/metadata-name.js.map +1 -0
  167. package/build/hooks/metadata.js +65 -0
  168. package/build/hooks/metadata.js.map +1 -0
  169. package/build/hooks/typography.js +10 -11
  170. package/build/hooks/typography.js.map +1 -1
  171. package/build/hooks/use-typography-props.js +51 -0
  172. package/build/hooks/use-typography-props.js.map +1 -0
  173. package/build/hooks/utils.js +3 -1
  174. package/build/hooks/utils.js.map +1 -1
  175. package/build/index.js +7 -0
  176. package/build/index.js.map +1 -1
  177. package/build/layouts/constrained.js +59 -20
  178. package/build/layouts/constrained.js.map +1 -1
  179. package/build/store/actions.js +65 -21
  180. package/build/store/actions.js.map +1 -1
  181. package/build/store/reducer.js +43 -19
  182. package/build/store/reducer.js.map +1 -1
  183. package/build/store/selectors.js +96 -10
  184. package/build/store/selectors.js.map +1 -1
  185. package/build/utils/parse-css-unit-to-px.js +1 -1
  186. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  187. package/build-module/components/alignment-control/ui.js +6 -5
  188. package/build-module/components/alignment-control/ui.js.map +1 -1
  189. package/build-module/components/autocomplete/index.js +2 -2
  190. package/build-module/components/autocomplete/index.js.map +1 -1
  191. package/build-module/components/block-actions/index.js +5 -8
  192. package/build-module/components/block-actions/index.js.map +1 -1
  193. package/build-module/components/block-alignment-control/ui.js +5 -5
  194. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  195. package/build-module/components/block-content-overlay/index.js +2 -4
  196. package/build-module/components/block-content-overlay/index.js.map +1 -1
  197. package/build-module/components/block-draggable/draggable-chip.js +2 -1
  198. package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
  199. package/build-module/components/block-edit/edit.js +1 -1
  200. package/build-module/components/block-edit/edit.js.map +1 -1
  201. package/build-module/components/block-inspector/index.js +127 -19
  202. package/build-module/components/block-inspector/index.js.map +1 -1
  203. package/build-module/components/block-list/block-list-compact.native.js +2 -1
  204. package/build-module/components/block-list/block-list-compact.native.js.map +1 -1
  205. package/build-module/components/block-list/block.js +41 -9
  206. package/build-module/components/block-list/block.js.map +1 -1
  207. package/build-module/components/block-list/index.js +4 -4
  208. package/build-module/components/block-list/index.js.map +1 -1
  209. package/build-module/components/block-list/use-block-props/index.js +13 -11
  210. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  211. package/build-module/components/block-list/use-block-props/use-block-class-names.js +3 -2
  212. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  213. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +3 -8
  214. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  215. package/build-module/components/block-list/use-block-props/use-is-hovered.js +1 -2
  216. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  217. package/build-module/components/block-list/use-in-between-inserter.js +7 -12
  218. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  219. package/build-module/components/block-list-appender/index.js +20 -20
  220. package/build-module/components/block-list-appender/index.js.map +1 -1
  221. package/build-module/components/block-list-appender/index.native.js +1 -6
  222. package/build-module/components/block-list-appender/index.native.js.map +1 -1
  223. package/build-module/components/block-lock/use-block-lock.js +3 -1
  224. package/build-module/components/block-lock/use-block-lock.js.map +1 -1
  225. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +20 -9
  226. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  227. package/build-module/components/block-mover/button.js +4 -5
  228. package/build-module/components/block-mover/button.js.map +1 -1
  229. package/build-module/components/block-mover/index.js +4 -5
  230. package/build-module/components/block-mover/index.js.map +1 -1
  231. package/build-module/components/block-mover/index.native.js +24 -7
  232. package/build-module/components/block-mover/index.native.js.map +1 -1
  233. package/build-module/components/block-popover/inbetween.js +83 -53
  234. package/build-module/components/block-popover/inbetween.js.map +1 -1
  235. package/build-module/components/block-popover/index.js +31 -7
  236. package/build-module/components/block-popover/index.js.map +1 -1
  237. package/build-module/components/block-preview/auto.js +4 -2
  238. package/build-module/components/block-preview/auto.js.map +1 -1
  239. package/build-module/components/block-settings-menu/block-settings-dropdown.js +3 -1
  240. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  241. package/build-module/components/block-settings-menu-controls/index.js +3 -1
  242. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  243. package/build-module/components/block-styles/preview-panel.js +6 -1
  244. package/build-module/components/block-styles/preview-panel.js.map +1 -1
  245. package/build-module/components/block-switcher/block-transformations-menu.js +115 -27
  246. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  247. package/build-module/components/block-toolbar/index.js +9 -8
  248. package/build-module/components/block-toolbar/index.js.map +1 -1
  249. package/build-module/components/block-tools/block-contextual-toolbar.js +3 -2
  250. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  251. package/build-module/components/block-tools/block-selection-button.js +12 -5
  252. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  253. package/build-module/components/block-tools/index.js +30 -15
  254. package/build-module/components/block-tools/index.js.map +1 -1
  255. package/build-module/components/block-tools/insertion-point.js +4 -9
  256. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  257. package/build-module/components/block-tools/selected-block-popover.js +9 -8
  258. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  259. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +13 -8
  260. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  261. package/build-module/components/block-tools/zoom-out-mode-inserters.js +59 -0
  262. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -0
  263. package/build-module/components/block-vertical-alignment-control/ui.js +5 -2
  264. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  265. package/build-module/components/border-radius-control/linked-button.js +5 -6
  266. package/build-module/components/border-radius-control/linked-button.js.map +1 -1
  267. package/build-module/components/colors-gradients/dropdown.js +1 -1
  268. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  269. package/build-module/components/convert-to-group-buttons/toolbar.js +8 -3
  270. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  271. package/build-module/components/iframe/index.js +32 -5
  272. package/build-module/components/iframe/index.js.map +1 -1
  273. package/build-module/components/inner-blocks/default-block-appender.js +1 -6
  274. package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
  275. package/build-module/components/inner-blocks/index.js +9 -3
  276. package/build-module/components/inner-blocks/index.js.map +1 -1
  277. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +28 -17
  278. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  279. package/build-module/components/inner-blocks/use-nested-settings-update.js +28 -4
  280. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  281. package/build-module/components/inserter/index.js +3 -6
  282. package/build-module/components/inserter/index.js.map +1 -1
  283. package/build-module/components/inserter/library.js +14 -3
  284. package/build-module/components/inserter/library.js.map +1 -1
  285. package/build-module/components/inserter/menu.js +20 -8
  286. package/build-module/components/inserter/menu.js.map +1 -1
  287. package/build-module/components/inserter/preview-panel.js +1 -1
  288. package/build-module/components/inserter/preview-panel.js.map +1 -1
  289. package/build-module/components/inserter/tabs.js +11 -4
  290. package/build-module/components/inserter/tabs.js.map +1 -1
  291. package/build-module/components/link-control/link-preview.js +1 -1
  292. package/build-module/components/link-control/link-preview.js.map +1 -1
  293. package/build-module/components/link-control/search-input.js +6 -2
  294. package/build-module/components/link-control/search-input.js.map +1 -1
  295. package/build-module/components/link-control/search-item.js +37 -6
  296. package/build-module/components/link-control/search-item.js.map +1 -1
  297. package/build-module/components/list-view/block.js +23 -11
  298. package/build-module/components/list-view/block.js.map +1 -1
  299. package/build-module/components/list-view/branch.js +19 -3
  300. package/build-module/components/list-view/branch.js.map +1 -1
  301. package/build-module/components/list-view/drop-indicator.js +30 -28
  302. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  303. package/build-module/components/list-view/index.js +8 -4
  304. package/build-module/components/list-view/index.js.map +1 -1
  305. package/build-module/components/list-view/use-block-selection.js +0 -1
  306. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  307. package/build-module/components/provider/use-block-sync.js +1 -6
  308. package/build-module/components/provider/use-block-sync.js.map +1 -1
  309. package/build-module/components/publish-date-time-picker/index.js +1 -1
  310. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  311. package/build-module/components/rich-text/format-toolbar-container.js +10 -10
  312. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  313. package/build-module/components/rich-text/index.js +31 -20
  314. package/build-module/components/rich-text/index.js.map +1 -1
  315. package/build-module/components/rich-text/index.native.js +11 -18
  316. package/build-module/components/rich-text/index.native.js.map +1 -1
  317. package/build-module/components/spacing-sizes-control/linked-button.js +2 -3
  318. package/build-module/components/spacing-sizes-control/linked-button.js.map +1 -1
  319. package/build-module/components/spacing-sizes-control/utils.js +1 -4
  320. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  321. package/build-module/components/text-decoration-control/index.js +21 -16
  322. package/build-module/components/text-decoration-control/index.js.map +1 -1
  323. package/build-module/components/text-transform-control/index.js +28 -20
  324. package/build-module/components/text-transform-control/index.js.map +1 -1
  325. package/build-module/components/tool-selector/index.js +6 -11
  326. package/build-module/components/tool-selector/index.js.map +1 -1
  327. package/build-module/components/url-popover/image-url-input-ui.js +6 -4
  328. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  329. package/build-module/components/url-popover/index.js +1 -1
  330. package/build-module/components/url-popover/index.js.map +1 -1
  331. package/build-module/components/use-block-drop-zone/index.js +7 -4
  332. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  333. package/build-module/components/use-moving-animation/index.js +9 -28
  334. package/build-module/components/use-moving-animation/index.js.map +1 -1
  335. package/build-module/components/writing-flow/use-select-all.js +1 -6
  336. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  337. package/build-module/hooks/align.js +12 -2
  338. package/build-module/hooks/align.js.map +1 -1
  339. package/build-module/hooks/color-panel.js +2 -1
  340. package/build-module/hooks/color-panel.js.map +1 -1
  341. package/build-module/hooks/content-lock-ui.js +128 -0
  342. package/build-module/hooks/content-lock-ui.js.map +1 -0
  343. package/build-module/hooks/duotone.js +6 -1
  344. package/build-module/hooks/duotone.js.map +1 -1
  345. package/build-module/hooks/index.js +4 -0
  346. package/build-module/hooks/index.js.map +1 -1
  347. package/build-module/hooks/layout.js +11 -9
  348. package/build-module/hooks/layout.js.map +1 -1
  349. package/build-module/hooks/metadata-name.js +45 -0
  350. package/build-module/hooks/metadata-name.js.map +1 -0
  351. package/build-module/hooks/metadata.js +50 -0
  352. package/build-module/hooks/metadata.js.map +1 -0
  353. package/build-module/hooks/typography.js +10 -11
  354. package/build-module/hooks/typography.js.map +1 -1
  355. package/build-module/hooks/use-typography-props.js +38 -0
  356. package/build-module/hooks/use-typography-props.js.map +1 -0
  357. package/build-module/hooks/utils.js +4 -2
  358. package/build-module/hooks/utils.js.map +1 -1
  359. package/build-module/index.js +1 -1
  360. package/build-module/index.js.map +1 -1
  361. package/build-module/layouts/constrained.js +61 -22
  362. package/build-module/layouts/constrained.js.map +1 -1
  363. package/build-module/store/actions.js +58 -20
  364. package/build-module/store/actions.js.map +1 -1
  365. package/build-module/store/reducer.js +41 -19
  366. package/build-module/store/reducer.js.map +1 -1
  367. package/build-module/store/selectors.js +81 -10
  368. package/build-module/store/selectors.js.map +1 -1
  369. package/build-module/utils/parse-css-unit-to-px.js +1 -1
  370. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  371. package/build-style/style-rtl.css +142 -46
  372. package/build-style/style.css +142 -46
  373. package/package.json +28 -28
  374. package/src/components/alignment-control/test/__snapshots__/index.js.snap +137 -108
  375. package/src/components/alignment-control/test/index.js +124 -33
  376. package/src/components/alignment-control/ui.js +8 -3
  377. package/src/components/autocomplete/index.js +2 -5
  378. package/src/components/block-actions/index.js +9 -8
  379. package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +108 -65
  380. package/src/components/block-alignment-control/test/index.js +95 -31
  381. package/src/components/block-alignment-control/ui.js +2 -2
  382. package/src/components/block-compare/test/__snapshots__/block-view.js.snap +28 -26
  383. package/src/components/block-compare/test/block-view.js +3 -3
  384. package/src/components/block-content-overlay/index.js +2 -6
  385. package/src/components/block-content-overlay/style.scss +24 -3
  386. package/src/components/block-draggable/draggable-chip.js +4 -1
  387. package/src/components/block-edit/edit.js +5 -1
  388. package/src/components/block-edit/test/edit.js +23 -21
  389. package/src/components/block-icon/test/__snapshots__/index.js.snap +22 -0
  390. package/src/components/block-icon/test/index.js +31 -16
  391. package/src/components/block-inspector/index.js +126 -12
  392. package/src/components/block-inspector/style.scss +7 -1
  393. package/src/components/block-list/block-list-compact.native.js +1 -1
  394. package/src/components/block-list/block.js +53 -13
  395. package/src/components/block-list/index.js +4 -4
  396. package/src/components/block-list/style.scss +57 -11
  397. package/src/components/block-list/test/block-list-context.native.js +11 -13
  398. package/src/components/block-list/use-block-props/index.js +10 -10
  399. package/src/components/block-list/use-block-props/use-block-class-names.js +4 -1
  400. package/src/components/block-list/use-block-props/use-focus-first-element.js +3 -8
  401. package/src/components/block-list/use-block-props/use-is-hovered.js +2 -2
  402. package/src/components/block-list/use-in-between-inserter.js +11 -13
  403. package/src/components/block-list-appender/index.js +27 -18
  404. package/src/components/block-list-appender/index.native.js +3 -6
  405. package/src/components/block-lock/use-block-lock.js +2 -0
  406. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +15 -9
  407. package/src/components/block-mover/button.js +6 -5
  408. package/src/components/block-mover/index.js +8 -7
  409. package/src/components/block-mover/index.native.js +20 -13
  410. package/src/components/block-popover/inbetween.js +124 -62
  411. package/src/components/block-popover/index.js +47 -8
  412. package/src/components/block-popover/style.scss +3 -4
  413. package/src/components/block-preview/auto.js +4 -2
  414. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -0
  415. package/src/components/block-settings-menu-controls/README.md +9 -0
  416. package/src/components/block-settings-menu-controls/index.js +13 -2
  417. package/src/components/block-styles/preview-panel.js +3 -0
  418. package/src/components/block-switcher/block-transformations-menu.js +127 -33
  419. package/src/components/block-switcher/style.scss +4 -2
  420. package/src/components/block-title/test/index.js +28 -25
  421. package/src/components/block-toolbar/index.js +27 -17
  422. package/src/components/block-tools/block-contextual-toolbar.js +10 -3
  423. package/src/components/block-tools/block-selection-button.js +35 -16
  424. package/src/components/block-tools/index.js +40 -24
  425. package/src/components/block-tools/insertion-point.js +3 -7
  426. package/src/components/block-tools/selected-block-popover.js +9 -7
  427. package/src/components/block-tools/style.scss +5 -0
  428. package/src/components/block-tools/use-block-toolbar-popover-props.js +19 -6
  429. package/src/components/block-tools/zoom-out-mode-inserters.js +57 -0
  430. package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +91 -51
  431. package/src/components/block-vertical-alignment-control/test/index.js +92 -23
  432. package/src/components/block-vertical-alignment-control/ui.js +3 -2
  433. package/src/components/border-radius-control/linked-button.js +12 -11
  434. package/src/components/color-palette/test/__snapshots__/control.js.snap +3 -12
  435. package/src/components/colors/test/with-colors.js +37 -12
  436. package/src/components/colors-gradients/dropdown.js +1 -1
  437. package/src/components/contrast-checker/test/index.js +135 -116
  438. package/src/components/convert-to-group-buttons/toolbar.js +6 -2
  439. package/src/components/default-block-appender/test/__snapshots__/index.js.snap +39 -57
  440. package/src/components/default-block-appender/test/index.js +32 -18
  441. package/src/components/font-sizes/README.MD +9 -0
  442. package/src/components/iframe/index.js +64 -5
  443. package/src/components/inner-blocks/README.md +2 -1
  444. package/src/components/inner-blocks/default-block-appender.js +1 -6
  445. package/src/components/inner-blocks/index.js +10 -2
  446. package/src/components/inner-blocks/use-inner-block-template-sync.js +40 -25
  447. package/src/components/inner-blocks/use-nested-settings-update.js +32 -3
  448. package/src/components/inserter/index.js +2 -8
  449. package/src/components/inserter/library.js +11 -5
  450. package/src/components/inserter/menu.js +42 -29
  451. package/src/components/inserter/preview-panel.js +1 -1
  452. package/src/components/inserter/stories/fixtures.js +44 -0
  453. package/src/components/inserter/stories/index.js +90 -0
  454. package/src/components/inserter/style.scss +21 -27
  455. package/src/components/inserter/tabs.js +8 -4
  456. package/src/components/link-control/link-preview.js +5 -3
  457. package/src/components/link-control/search-input.js +2 -2
  458. package/src/components/link-control/search-item.js +39 -7
  459. package/src/components/list-view/block.js +29 -10
  460. package/src/components/list-view/branch.js +27 -4
  461. package/src/components/list-view/drop-indicator.js +33 -32
  462. package/src/components/list-view/index.js +8 -3
  463. package/src/components/list-view/use-block-selection.js +0 -1
  464. package/src/components/media-placeholder/test/index.js +2 -2
  465. package/src/components/media-replace-flow/README.md +1 -1
  466. package/src/components/provider/use-block-sync.js +3 -6
  467. package/src/components/publish-date-time-picker/index.js +1 -1
  468. package/src/components/rich-text/format-toolbar-container.js +18 -10
  469. package/src/components/rich-text/index.js +26 -37
  470. package/src/components/rich-text/index.native.js +8 -21
  471. package/src/components/spacing-sizes-control/linked-button.js +2 -3
  472. package/src/components/spacing-sizes-control/style.scss +4 -1
  473. package/src/components/spacing-sizes-control/utils.js +1 -8
  474. package/src/components/text-decoration-control/index.js +31 -23
  475. package/src/components/text-decoration-control/style.scss +18 -0
  476. package/src/components/text-transform-control/index.js +42 -26
  477. package/src/components/text-transform-control/style.scss +18 -0
  478. package/src/components/tool-selector/index.js +9 -11
  479. package/src/components/url-input/test/button.js +145 -71
  480. package/src/components/url-popover/image-url-input-ui.js +5 -3
  481. package/src/components/url-popover/index.js +1 -1
  482. package/src/components/url-popover/test/__snapshots__/index.js.snap +108 -80
  483. package/src/components/url-popover/test/index.js +14 -12
  484. package/src/components/use-block-drop-zone/index.js +15 -4
  485. package/src/components/use-moving-animation/index.js +9 -24
  486. package/src/components/warning/test/__snapshots__/index.js.snap +11 -14
  487. package/src/components/warning/test/index.js +32 -29
  488. package/src/components/writing-flow/use-select-all.js +4 -6
  489. package/src/hooks/align.js +22 -13
  490. package/src/hooks/color-panel.js +2 -1
  491. package/src/hooks/content-lock-ui.js +161 -0
  492. package/src/hooks/duotone.js +13 -1
  493. package/src/hooks/index.js +4 -0
  494. package/src/hooks/layout.js +25 -19
  495. package/src/hooks/layout.scss +7 -1
  496. package/src/hooks/metadata-name.js +48 -0
  497. package/src/hooks/metadata.js +64 -0
  498. package/src/hooks/test/use-typography-props.js +28 -0
  499. package/src/hooks/typography.js +13 -14
  500. package/src/hooks/use-typography-props.js +41 -0
  501. package/src/hooks/utils.js +2 -11
  502. package/src/index.js +1 -0
  503. package/src/layouts/constrained.js +73 -24
  504. package/src/store/actions.js +45 -4
  505. package/src/store/reducer.js +36 -21
  506. package/src/store/selectors.js +99 -20
  507. package/src/store/test/reducer.js +8 -5
  508. package/src/store/test/selectors.js +4 -4
  509. package/src/style.scss +2 -0
  510. package/src/utils/parse-css-unit-to-px.js +1 -1
  511. package/src/components/colors/test/__snapshots__/with-colors.js.snap +0 -23
@@ -61,7 +61,7 @@ function useLayoutClasses(layout, layoutDefinitions) {
61
61
  layoutClassnames.push(layoutDefinitions === null || layoutDefinitions === void 0 ? void 0 : (_layoutDefinitions2 = layoutDefinitions[(layout === null || layout === void 0 ? void 0 : layout.type) || 'default']) === null || _layoutDefinitions2 === void 0 ? void 0 : _layoutDefinitions2.className);
62
62
  }
63
63
 
64
- if ((layout !== null && layout !== void 0 && layout.inherit || layout !== null && layout !== void 0 && layout.contentSize) && rootPaddingAlignment) {
64
+ if ((layout !== null && layout !== void 0 && layout.inherit || layout !== null && layout !== void 0 && layout.contentSize || (layout === null || layout === void 0 ? void 0 : layout.type) === 'constrained') && rootPaddingAlignment) {
65
65
  layoutClassnames.push('has-global-padding');
66
66
  }
67
67
 
@@ -130,6 +130,8 @@ function LayoutPanel(_ref) {
130
130
 
131
131
  const layoutType = getLayoutType(type);
132
132
  const constrainedType = getLayoutType('constrained');
133
+ const displayControlsForLegacyLayouts = !usedLayout.type && (contentSize || inherit);
134
+ const hasContentSizeOrLegacySettings = !!inherit || !!contentSize;
133
135
 
134
136
  const onChangeType = newType => setAttributes({
135
137
  layout: {
@@ -144,23 +146,23 @@ function LayoutPanel(_ref) {
144
146
  return createElement(Fragment, null, createElement(InspectorControls, null, createElement(PanelBody, {
145
147
  title: __('Layout')
146
148
  }, showInheritToggle && createElement(Fragment, null, createElement(ToggleControl, {
147
- label: __('Inner blocks respect content width'),
148
- checked: (layoutType === null || layoutType === void 0 ? void 0 : layoutType.name) === 'constrained' || !!inherit || !!contentSize,
149
+ className: "block-editor-hooks__toggle-control",
150
+ label: __('Inner blocks use content width'),
151
+ checked: (layoutType === null || layoutType === void 0 ? void 0 : layoutType.name) === 'constrained' || hasContentSizeOrLegacySettings,
149
152
  onChange: () => setAttributes({
150
153
  layout: {
151
- type: (layoutType === null || layoutType === void 0 ? void 0 : layoutType.name) === 'constrained' ? 'default' : 'constrained'
154
+ type: (layoutType === null || layoutType === void 0 ? void 0 : layoutType.name) === 'constrained' || hasContentSizeOrLegacySettings ? 'default' : 'constrained'
152
155
  }
153
- })
154
- }), createElement("p", {
155
- className: "block-editor-hooks__layout-controls-helptext"
156
- }, !!inherit || (layoutType === null || layoutType === void 0 ? void 0 : layoutType.name) === 'constrained' ? __('Nested blocks use theme content width with options for full and wide widths.') : __('Nested blocks will fill the width of this container.'))), !inherit && allowSwitching && createElement(LayoutTypeSwitcher, {
156
+ }),
157
+ help: (layoutType === null || layoutType === void 0 ? void 0 : layoutType.name) === 'constrained' || hasContentSizeOrLegacySettings ? __('Nested blocks use content width with options for full and wide widths.') : __('Nested blocks will fill the width of this container. Toggle to constrain.')
158
+ })), !inherit && allowSwitching && createElement(LayoutTypeSwitcher, {
157
159
  type: type,
158
160
  onChange: onChangeType
159
161
  }), layoutType && layoutType.name !== 'default' && createElement(layoutType.inspectorControls, {
160
162
  layout: usedLayout,
161
163
  onChange: onChangeLayout,
162
164
  layoutBlockSupport: layoutBlockSupport
163
- }), constrainedType && !!contentSize && createElement(constrainedType.inspectorControls, {
165
+ }), constrainedType && displayControlsForLegacyLayouts && createElement(constrainedType.inspectorControls, {
164
166
  layout: usedLayout,
165
167
  onChange: onChangeLayout,
166
168
  layoutBlockSupport: layoutBlockSupport
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/layout.js"],"names":["classnames","kebabCase","createHigherOrderComponent","useInstanceId","addFilter","getBlockDefaultClassName","getBlockSupport","hasBlockSupport","useSelect","Button","ButtonGroup","ToggleControl","PanelBody","__","useContext","createPortal","store","blockEditorStore","InspectorControls","useSetting","LayoutStyle","BlockList","getLayoutType","getLayoutTypes","layoutBlockSupportKey","useLayoutClasses","layout","layoutDefinitions","rootPaddingAlignment","select","getSettings","__experimentalFeatures","useRootPaddingAwareAlignments","layoutClassnames","type","className","push","inherit","contentSize","orientation","justifyContent","flexWrap","LayoutPanel","setAttributes","attributes","name","blockName","defaultThemeLayout","themeSupportsLayout","supportsLayout","layoutBlockSupport","allowSwitching","allowEditing","allowInheriting","default","defaultBlockLayout","showInheritToggle","usedLayout","layoutType","constrainedType","onChangeType","newType","onChangeLayout","newLayout","LayoutTypeSwitcher","onChange","map","label","addAttribute","settings","withInspectorControls","BlockEdit","props","supportLayout","withLayoutStyles","BlockListBlock","hasLayoutBlockSupport","disableLayoutStyles","shouldRenderLayoutStyles","id","element","__unstableElementContext","wideSize","layoutClasses","definitions","selector","blockGapSupport","hasBlockGapSupport","css","fullLayoutType","getLayoutStyle","style"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { kebabCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent, useInstanceId } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\nimport {\n\tgetBlockDefaultClassName,\n\tgetBlockSupport,\n\thasBlockSupport,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tButton,\n\tButtonGroup,\n\tToggleControl,\n\tPanelBody,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useContext, createPortal } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { InspectorControls } from '../components';\nimport useSetting from '../components/use-setting';\nimport { LayoutStyle } from '../components/block-list/layout';\nimport BlockList from '../components/block-list';\nimport { getLayoutType, getLayoutTypes } from '../layouts';\n\nconst layoutBlockSupportKey = '__experimentalLayout';\n\n/**\n * Generates the utility classnames for the given blocks layout attributes.\n * This method was primarily added to reintroduce classnames that were removed\n * in the 5.9 release (https://github.com/WordPress/gutenberg/issues/38719), rather\n * than providing an extensive list of all possible layout classes. The plan is to\n * have the style engine generate a more extensive list of utility classnames which\n * will then replace this method.\n *\n * @param { Object } layout Layout object.\n * @param { Object } layoutDefinitions An object containing layout definitions, stored in theme.json.\n *\n * @return { Array } Array of CSS classname strings.\n */\nfunction useLayoutClasses( layout, layoutDefinitions ) {\n\tconst rootPaddingAlignment = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().__experimentalFeatures\n\t\t\t?.useRootPaddingAwareAlignments;\n\t}, [] );\n\tconst layoutClassnames = [];\n\n\tif ( layoutDefinitions?.[ layout?.type || 'default' ]?.className ) {\n\t\tlayoutClassnames.push(\n\t\t\tlayoutDefinitions?.[ layout?.type || 'default' ]?.className\n\t\t);\n\t}\n\n\tif ( ( layout?.inherit || layout?.contentSize ) && rootPaddingAlignment ) {\n\t\tlayoutClassnames.push( 'has-global-padding' );\n\t}\n\n\tif ( layout?.orientation ) {\n\t\tlayoutClassnames.push( `is-${ kebabCase( layout.orientation ) }` );\n\t}\n\n\tif ( layout?.justifyContent ) {\n\t\tlayoutClassnames.push(\n\t\t\t`is-content-justification-${ kebabCase( layout.justifyContent ) }`\n\t\t);\n\t}\n\n\tif ( layout?.flexWrap && layout.flexWrap === 'nowrap' ) {\n\t\tlayoutClassnames.push( 'is-nowrap' );\n\t}\n\n\treturn layoutClassnames;\n}\n\nfunction LayoutPanel( { setAttributes, attributes, name: blockName } ) {\n\tconst { layout } = attributes;\n\tconst defaultThemeLayout = useSetting( 'layout' );\n\tconst themeSupportsLayout = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().supportsLayout;\n\t}, [] );\n\n\tconst layoutBlockSupport = getBlockSupport(\n\t\tblockName,\n\t\tlayoutBlockSupportKey,\n\t\t{}\n\t);\n\tconst {\n\t\tallowSwitching,\n\t\tallowEditing = true,\n\t\tallowInheriting = true,\n\t\tdefault: defaultBlockLayout,\n\t} = layoutBlockSupport;\n\n\tif ( ! allowEditing ) {\n\t\treturn null;\n\t}\n\n\t// Only show the inherit toggle if it's supported,\n\t// a default theme layout is set (e.g. one that provides `contentSize` and/or `wideSize` values),\n\t// and either the default / flow or the constrained layout type is in use, as the toggle switches from one to the other.\n\tconst showInheritToggle = !! (\n\t\tallowInheriting &&\n\t\t!! defaultThemeLayout &&\n\t\t( ! layout?.type ||\n\t\t\tlayout?.type === 'default' ||\n\t\t\tlayout?.type === 'constrained' ||\n\t\t\tlayout?.inherit )\n\t);\n\n\tconst usedLayout = layout || defaultBlockLayout || {};\n\tconst {\n\t\tinherit = false,\n\t\ttype = 'default',\n\t\tcontentSize = null,\n\t} = usedLayout;\n\t/**\n\t * `themeSupportsLayout` is only relevant to the `default/flow` or\n\t * `constrained` layouts and it should not be taken into account when other\n\t * `layout` types are used.\n\t */\n\tif (\n\t\t( type === 'default' || type === 'constrained' ) &&\n\t\t! themeSupportsLayout\n\t) {\n\t\treturn null;\n\t}\n\tconst layoutType = getLayoutType( type );\n\n\tconst constrainedType = getLayoutType( 'constrained' );\n\n\tconst onChangeType = ( newType ) =>\n\t\tsetAttributes( { layout: { type: newType } } );\n\tconst onChangeLayout = ( newLayout ) =>\n\t\tsetAttributes( { layout: newLayout } );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Layout' ) }>\n\t\t\t\t\t{ showInheritToggle && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t'Inner blocks respect content width'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t\t\tlayoutType?.name === 'constrained' ||\n\t\t\t\t\t\t\t\t\t!! inherit ||\n\t\t\t\t\t\t\t\t\t!! contentSize\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t\t\t\t\ttype:\n\t\t\t\t\t\t\t\t\t\t\t\tlayoutType?.name ===\n\t\t\t\t\t\t\t\t\t\t\t\t'constrained'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 'default'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: 'constrained',\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}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<p className=\"block-editor-hooks__layout-controls-helptext\">\n\t\t\t\t\t\t\t\t{ !! inherit ||\n\t\t\t\t\t\t\t\tlayoutType?.name === 'constrained'\n\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t'Nested blocks use theme content width with options for full and wide widths.'\n\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\t\t\t'Nested blocks will fill the width of this container.'\n\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! inherit && allowSwitching && (\n\t\t\t\t\t\t<LayoutTypeSwitcher\n\t\t\t\t\t\t\ttype={ type }\n\t\t\t\t\t\t\tonChange={ onChangeType }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ layoutType && layoutType.name !== 'default' && (\n\t\t\t\t\t\t<layoutType.inspectorControls\n\t\t\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\t\t\tonChange={ onChangeLayout }\n\t\t\t\t\t\t\tlayoutBlockSupport={ layoutBlockSupport }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ constrainedType && !! contentSize && (\n\t\t\t\t\t\t<constrainedType.inspectorControls\n\t\t\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\t\t\tonChange={ onChangeLayout }\n\t\t\t\t\t\t\tlayoutBlockSupport={ layoutBlockSupport }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ ! inherit && layoutType && (\n\t\t\t\t<layoutType.toolBarControls\n\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\tonChange={ onChangeLayout }\n\t\t\t\t\tlayoutBlockSupport={ layoutBlockSupport }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction LayoutTypeSwitcher( { type, onChange } ) {\n\treturn (\n\t\t<ButtonGroup>\n\t\t\t{ getLayoutTypes().map( ( { name, label } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey={ name }\n\t\t\t\t\t\tisPressed={ type === name }\n\t\t\t\t\t\tonClick={ () => onChange( name ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ButtonGroup>\n\t);\n}\n\n/**\n * Filters registered block settings, extending attributes to include `layout`.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addAttribute( settings ) {\n\tif ( 'type' in ( settings.attributes?.layout ?? {} ) ) {\n\t\treturn settings;\n\t}\n\tif ( hasBlockSupport( settings, layoutBlockSupportKey ) ) {\n\t\tsettings.attributes = {\n\t\t\t...settings.attributes,\n\t\t\tlayout: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t};\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override the default edit UI to include layout controls\n *\n * @param {Function} BlockEdit Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withInspectorControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { name: blockName } = props;\n\t\tconst supportLayout = hasBlockSupport(\n\t\t\tblockName,\n\t\t\tlayoutBlockSupportKey\n\t\t);\n\n\t\treturn [\n\t\t\tsupportLayout && <LayoutPanel key=\"layout\" { ...props } />,\n\t\t\t<BlockEdit key=\"edit\" { ...props } />,\n\t\t];\n\t},\n\t'withInspectorControls'\n);\n\n/**\n * Override the default block element to add the layout styles.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withLayoutStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst hasLayoutBlockSupport = hasBlockSupport(\n\t\t\tname,\n\t\t\tlayoutBlockSupportKey\n\t\t);\n\t\tconst disableLayoutStyles = useSelect( ( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\treturn !! getSettings().disableLayoutStyles;\n\t\t} );\n\t\tconst shouldRenderLayoutStyles =\n\t\t\thasLayoutBlockSupport && ! disableLayoutStyles;\n\t\tconst id = useInstanceId( BlockListBlock );\n\t\tconst defaultThemeLayout = useSetting( 'layout' ) || {};\n\t\tconst element = useContext( BlockList.__unstableElementContext );\n\t\tconst { layout } = attributes;\n\t\tconst { default: defaultBlockLayout } =\n\t\t\tgetBlockSupport( name, layoutBlockSupportKey ) || {};\n\t\tconst usedLayout =\n\t\t\tlayout?.inherit || layout?.contentSize || layout?.wideSize\n\t\t\t\t? { ...layout, type: 'constrained' }\n\t\t\t\t: layout || defaultBlockLayout || {};\n\t\tconst layoutClasses = hasLayoutBlockSupport\n\t\t\t? useLayoutClasses( usedLayout, defaultThemeLayout?.definitions )\n\t\t\t: null;\n\t\tconst selector = `.${ getBlockDefaultClassName(\n\t\t\tname\n\t\t) }.wp-container-${ id }`;\n\t\tconst blockGapSupport = useSetting( 'spacing.blockGap' );\n\t\tconst hasBlockGapSupport = blockGapSupport !== null;\n\n\t\t// Get CSS string for the current layout type.\n\t\t// The CSS and `style` element is only output if it is not empty.\n\t\tlet css;\n\t\tif ( shouldRenderLayoutStyles ) {\n\t\t\tconst fullLayoutType = getLayoutType(\n\t\t\t\tusedLayout?.type || 'default'\n\t\t\t);\n\t\t\tcss = fullLayoutType?.getLayoutStyle?.( {\n\t\t\t\tblockName: name,\n\t\t\t\tselector,\n\t\t\t\tlayout: usedLayout,\n\t\t\t\tlayoutDefinitions: defaultThemeLayout?.definitions,\n\t\t\t\tstyle: attributes?.style,\n\t\t\t\thasBlockGapSupport,\n\t\t\t} );\n\t\t}\n\n\t\t// Attach a `wp-container-` id-based class name as well as a layout class name such as `is-layout-flex`.\n\t\tconst className = classnames(\n\t\t\tprops?.className,\n\t\t\t{\n\t\t\t\t[ `wp-container-${ id }` ]: shouldRenderLayoutStyles && !! css, // Only attach a container class if there is generated CSS to be attached.\n\t\t\t},\n\t\t\tlayoutClasses\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ shouldRenderLayoutStyles &&\n\t\t\t\t\telement &&\n\t\t\t\t\t!! css &&\n\t\t\t\t\tcreatePortal(\n\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\tblockName={ name }\n\t\t\t\t\t\t\tselector={ selector }\n\t\t\t\t\t\t\tcss={ css }\n\t\t\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\t\t\tstyle={ attributes?.style }\n\t\t\t\t\t\t/>,\n\t\t\t\t\t\telement\n\t\t\t\t\t) }\n\t\t\t\t<BlockListBlock { ...props } className={ className } />\n\t\t\t</>\n\t\t);\n\t}\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/layout/addAttribute',\n\taddAttribute\n);\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/editor/layout/with-layout-styles',\n\twithLayoutStyles\n);\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/layout/with-inspector-controls',\n\twithInspectorControls\n);\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/layout.js"],"names":["classnames","kebabCase","createHigherOrderComponent","useInstanceId","addFilter","getBlockDefaultClassName","getBlockSupport","hasBlockSupport","useSelect","Button","ButtonGroup","ToggleControl","PanelBody","__","useContext","createPortal","store","blockEditorStore","InspectorControls","useSetting","LayoutStyle","BlockList","getLayoutType","getLayoutTypes","layoutBlockSupportKey","useLayoutClasses","layout","layoutDefinitions","rootPaddingAlignment","select","getSettings","__experimentalFeatures","useRootPaddingAwareAlignments","layoutClassnames","type","className","push","inherit","contentSize","orientation","justifyContent","flexWrap","LayoutPanel","setAttributes","attributes","name","blockName","defaultThemeLayout","themeSupportsLayout","supportsLayout","layoutBlockSupport","allowSwitching","allowEditing","allowInheriting","default","defaultBlockLayout","showInheritToggle","usedLayout","layoutType","constrainedType","displayControlsForLegacyLayouts","hasContentSizeOrLegacySettings","onChangeType","newType","onChangeLayout","newLayout","LayoutTypeSwitcher","onChange","map","label","addAttribute","settings","withInspectorControls","BlockEdit","props","supportLayout","withLayoutStyles","BlockListBlock","hasLayoutBlockSupport","disableLayoutStyles","shouldRenderLayoutStyles","id","element","__unstableElementContext","wideSize","layoutClasses","definitions","selector","blockGapSupport","hasBlockGapSupport","css","fullLayoutType","getLayoutStyle","style"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { kebabCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent, useInstanceId } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\nimport {\n\tgetBlockDefaultClassName,\n\tgetBlockSupport,\n\thasBlockSupport,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tButton,\n\tButtonGroup,\n\tToggleControl,\n\tPanelBody,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useContext, createPortal } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { InspectorControls } from '../components';\nimport useSetting from '../components/use-setting';\nimport { LayoutStyle } from '../components/block-list/layout';\nimport BlockList from '../components/block-list';\nimport { getLayoutType, getLayoutTypes } from '../layouts';\n\nconst layoutBlockSupportKey = '__experimentalLayout';\n\n/**\n * Generates the utility classnames for the given blocks layout attributes.\n * This method was primarily added to reintroduce classnames that were removed\n * in the 5.9 release (https://github.com/WordPress/gutenberg/issues/38719), rather\n * than providing an extensive list of all possible layout classes. The plan is to\n * have the style engine generate a more extensive list of utility classnames which\n * will then replace this method.\n *\n * @param { Object } layout Layout object.\n * @param { Object } layoutDefinitions An object containing layout definitions, stored in theme.json.\n *\n * @return { Array } Array of CSS classname strings.\n */\nfunction useLayoutClasses( layout, layoutDefinitions ) {\n\tconst rootPaddingAlignment = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().__experimentalFeatures\n\t\t\t?.useRootPaddingAwareAlignments;\n\t}, [] );\n\tconst layoutClassnames = [];\n\n\tif ( layoutDefinitions?.[ layout?.type || 'default' ]?.className ) {\n\t\tlayoutClassnames.push(\n\t\t\tlayoutDefinitions?.[ layout?.type || 'default' ]?.className\n\t\t);\n\t}\n\n\tif (\n\t\t( layout?.inherit ||\n\t\t\tlayout?.contentSize ||\n\t\t\tlayout?.type === 'constrained' ) &&\n\t\trootPaddingAlignment\n\t) {\n\t\tlayoutClassnames.push( 'has-global-padding' );\n\t}\n\n\tif ( layout?.orientation ) {\n\t\tlayoutClassnames.push( `is-${ kebabCase( layout.orientation ) }` );\n\t}\n\n\tif ( layout?.justifyContent ) {\n\t\tlayoutClassnames.push(\n\t\t\t`is-content-justification-${ kebabCase( layout.justifyContent ) }`\n\t\t);\n\t}\n\n\tif ( layout?.flexWrap && layout.flexWrap === 'nowrap' ) {\n\t\tlayoutClassnames.push( 'is-nowrap' );\n\t}\n\n\treturn layoutClassnames;\n}\n\nfunction LayoutPanel( { setAttributes, attributes, name: blockName } ) {\n\tconst { layout } = attributes;\n\tconst defaultThemeLayout = useSetting( 'layout' );\n\tconst themeSupportsLayout = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().supportsLayout;\n\t}, [] );\n\n\tconst layoutBlockSupport = getBlockSupport(\n\t\tblockName,\n\t\tlayoutBlockSupportKey,\n\t\t{}\n\t);\n\tconst {\n\t\tallowSwitching,\n\t\tallowEditing = true,\n\t\tallowInheriting = true,\n\t\tdefault: defaultBlockLayout,\n\t} = layoutBlockSupport;\n\n\tif ( ! allowEditing ) {\n\t\treturn null;\n\t}\n\n\t// Only show the inherit toggle if it's supported,\n\t// a default theme layout is set (e.g. one that provides `contentSize` and/or `wideSize` values),\n\t// and either the default / flow or the constrained layout type is in use, as the toggle switches from one to the other.\n\tconst showInheritToggle = !! (\n\t\tallowInheriting &&\n\t\t!! defaultThemeLayout &&\n\t\t( ! layout?.type ||\n\t\t\tlayout?.type === 'default' ||\n\t\t\tlayout?.type === 'constrained' ||\n\t\t\tlayout?.inherit )\n\t);\n\n\tconst usedLayout = layout || defaultBlockLayout || {};\n\tconst {\n\t\tinherit = false,\n\t\ttype = 'default',\n\t\tcontentSize = null,\n\t} = usedLayout;\n\t/**\n\t * `themeSupportsLayout` is only relevant to the `default/flow` or\n\t * `constrained` layouts and it should not be taken into account when other\n\t * `layout` types are used.\n\t */\n\tif (\n\t\t( type === 'default' || type === 'constrained' ) &&\n\t\t! themeSupportsLayout\n\t) {\n\t\treturn null;\n\t}\n\tconst layoutType = getLayoutType( type );\n\tconst constrainedType = getLayoutType( 'constrained' );\n\tconst displayControlsForLegacyLayouts =\n\t\t! usedLayout.type && ( contentSize || inherit );\n\tconst hasContentSizeOrLegacySettings = !! inherit || !! contentSize;\n\n\tconst onChangeType = ( newType ) =>\n\t\tsetAttributes( { layout: { type: newType } } );\n\tconst onChangeLayout = ( newLayout ) =>\n\t\tsetAttributes( { layout: newLayout } );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Layout' ) }>\n\t\t\t\t\t{ showInheritToggle && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tclassName=\"block-editor-hooks__toggle-control\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Inner blocks use content width' ) }\n\t\t\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t\t\tlayoutType?.name === 'constrained' ||\n\t\t\t\t\t\t\t\t\thasContentSizeOrLegacySettings\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t\t\t\t\ttype:\n\t\t\t\t\t\t\t\t\t\t\t\tlayoutType?.name ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t'constrained' ||\n\t\t\t\t\t\t\t\t\t\t\t\thasContentSizeOrLegacySettings\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 'default'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: 'constrained',\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}\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlayoutType?.name === 'constrained' ||\n\t\t\t\t\t\t\t\t\thasContentSizeOrLegacySettings\n\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Nested blocks use content width with options for full and wide widths.'\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Nested blocks will fill the width of this container. Toggle to constrain.'\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! inherit && allowSwitching && (\n\t\t\t\t\t\t<LayoutTypeSwitcher\n\t\t\t\t\t\t\ttype={ type }\n\t\t\t\t\t\t\tonChange={ onChangeType }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ layoutType && layoutType.name !== 'default' && (\n\t\t\t\t\t\t<layoutType.inspectorControls\n\t\t\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\t\t\tonChange={ onChangeLayout }\n\t\t\t\t\t\t\tlayoutBlockSupport={ layoutBlockSupport }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ constrainedType && displayControlsForLegacyLayouts && (\n\t\t\t\t\t\t<constrainedType.inspectorControls\n\t\t\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\t\t\tonChange={ onChangeLayout }\n\t\t\t\t\t\t\tlayoutBlockSupport={ layoutBlockSupport }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ ! inherit && layoutType && (\n\t\t\t\t<layoutType.toolBarControls\n\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\tonChange={ onChangeLayout }\n\t\t\t\t\tlayoutBlockSupport={ layoutBlockSupport }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction LayoutTypeSwitcher( { type, onChange } ) {\n\treturn (\n\t\t<ButtonGroup>\n\t\t\t{ getLayoutTypes().map( ( { name, label } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey={ name }\n\t\t\t\t\t\tisPressed={ type === name }\n\t\t\t\t\t\tonClick={ () => onChange( name ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ButtonGroup>\n\t);\n}\n\n/**\n * Filters registered block settings, extending attributes to include `layout`.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addAttribute( settings ) {\n\tif ( 'type' in ( settings.attributes?.layout ?? {} ) ) {\n\t\treturn settings;\n\t}\n\tif ( hasBlockSupport( settings, layoutBlockSupportKey ) ) {\n\t\tsettings.attributes = {\n\t\t\t...settings.attributes,\n\t\t\tlayout: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t};\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override the default edit UI to include layout controls\n *\n * @param {Function} BlockEdit Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withInspectorControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { name: blockName } = props;\n\t\tconst supportLayout = hasBlockSupport(\n\t\t\tblockName,\n\t\t\tlayoutBlockSupportKey\n\t\t);\n\n\t\treturn [\n\t\t\tsupportLayout && <LayoutPanel key=\"layout\" { ...props } />,\n\t\t\t<BlockEdit key=\"edit\" { ...props } />,\n\t\t];\n\t},\n\t'withInspectorControls'\n);\n\n/**\n * Override the default block element to add the layout styles.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withLayoutStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst hasLayoutBlockSupport = hasBlockSupport(\n\t\t\tname,\n\t\t\tlayoutBlockSupportKey\n\t\t);\n\t\tconst disableLayoutStyles = useSelect( ( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\treturn !! getSettings().disableLayoutStyles;\n\t\t} );\n\t\tconst shouldRenderLayoutStyles =\n\t\t\thasLayoutBlockSupport && ! disableLayoutStyles;\n\t\tconst id = useInstanceId( BlockListBlock );\n\t\tconst defaultThemeLayout = useSetting( 'layout' ) || {};\n\t\tconst element = useContext( BlockList.__unstableElementContext );\n\t\tconst { layout } = attributes;\n\t\tconst { default: defaultBlockLayout } =\n\t\t\tgetBlockSupport( name, layoutBlockSupportKey ) || {};\n\t\tconst usedLayout =\n\t\t\tlayout?.inherit || layout?.contentSize || layout?.wideSize\n\t\t\t\t? { ...layout, type: 'constrained' }\n\t\t\t\t: layout || defaultBlockLayout || {};\n\t\tconst layoutClasses = hasLayoutBlockSupport\n\t\t\t? useLayoutClasses( usedLayout, defaultThemeLayout?.definitions )\n\t\t\t: null;\n\t\tconst selector = `.${ getBlockDefaultClassName(\n\t\t\tname\n\t\t) }.wp-container-${ id }`;\n\t\tconst blockGapSupport = useSetting( 'spacing.blockGap' );\n\t\tconst hasBlockGapSupport = blockGapSupport !== null;\n\n\t\t// Get CSS string for the current layout type.\n\t\t// The CSS and `style` element is only output if it is not empty.\n\t\tlet css;\n\t\tif ( shouldRenderLayoutStyles ) {\n\t\t\tconst fullLayoutType = getLayoutType(\n\t\t\t\tusedLayout?.type || 'default'\n\t\t\t);\n\t\t\tcss = fullLayoutType?.getLayoutStyle?.( {\n\t\t\t\tblockName: name,\n\t\t\t\tselector,\n\t\t\t\tlayout: usedLayout,\n\t\t\t\tlayoutDefinitions: defaultThemeLayout?.definitions,\n\t\t\t\tstyle: attributes?.style,\n\t\t\t\thasBlockGapSupport,\n\t\t\t} );\n\t\t}\n\n\t\t// Attach a `wp-container-` id-based class name as well as a layout class name such as `is-layout-flex`.\n\t\tconst className = classnames(\n\t\t\tprops?.className,\n\t\t\t{\n\t\t\t\t[ `wp-container-${ id }` ]: shouldRenderLayoutStyles && !! css, // Only attach a container class if there is generated CSS to be attached.\n\t\t\t},\n\t\t\tlayoutClasses\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ shouldRenderLayoutStyles &&\n\t\t\t\t\telement &&\n\t\t\t\t\t!! css &&\n\t\t\t\t\tcreatePortal(\n\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\tblockName={ name }\n\t\t\t\t\t\t\tselector={ selector }\n\t\t\t\t\t\t\tcss={ css }\n\t\t\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\t\t\tstyle={ attributes?.style }\n\t\t\t\t\t\t/>,\n\t\t\t\t\t\telement\n\t\t\t\t\t) }\n\t\t\t\t<BlockListBlock { ...props } className={ className } />\n\t\t\t</>\n\t\t);\n\t}\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/layout/addAttribute',\n\taddAttribute\n);\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/editor/layout/with-layout-styles',\n\twithLayoutStyles\n);\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/layout/with-inspector-controls',\n\twithInspectorControls\n);\n"]}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { addFilter } from '@wordpress/hooks';
5
+ /**
6
+ * Internal dependencies
7
+ */
8
+
9
+ import { hasBlockMetadataSupport } from './metadata';
10
+ /**
11
+ * Filters registered block settings, adding an `__experimentalLabel` callback if one does not already exist.
12
+ *
13
+ * @param {Object} settings Original block settings.
14
+ *
15
+ * @return {Object} Filtered block settings.
16
+ */
17
+
18
+ export function addLabelCallback(settings) {
19
+ // If blocks provide their own label callback, do not override it.
20
+ if (settings.__experimentalLabel) {
21
+ return settings;
22
+ }
23
+
24
+ const supportsBlockNaming = hasBlockMetadataSupport(settings, 'name', false // default value
25
+ ); // Check whether block metadata is supported before using it.
26
+
27
+ if (supportsBlockNaming) {
28
+ settings.__experimentalLabel = (attributes, _ref) => {
29
+ let {
30
+ context
31
+ } = _ref;
32
+ const {
33
+ metadata
34
+ } = attributes; // In the list view, use the block's name attribute as the label.
35
+
36
+ if (context === 'list-view' && metadata !== null && metadata !== void 0 && metadata.name) {
37
+ return metadata.name;
38
+ }
39
+ };
40
+ }
41
+
42
+ return settings;
43
+ }
44
+ addFilter('blocks.registerBlockType', 'core/metadata/addLabelCallback', addLabelCallback);
45
+ //# sourceMappingURL=metadata-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/metadata-name.js"],"names":["addFilter","hasBlockMetadataSupport","addLabelCallback","settings","__experimentalLabel","supportsBlockNaming","attributes","context","metadata","name"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,kBAA1B;AACA;AACA;AACA;;AACA,SAASC,uBAAT,QAAwC,YAAxC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,gBAAT,CAA2BC,QAA3B,EAAsC;AAC5C;AACA,MAAKA,QAAQ,CAACC,mBAAd,EAAoC;AACnC,WAAOD,QAAP;AACA;;AAED,QAAME,mBAAmB,GAAGJ,uBAAuB,CAClDE,QADkD,EAElD,MAFkD,EAGlD,KAHkD,CAG5C;AAH4C,GAAnD,CAN4C,CAY5C;;AACA,MAAKE,mBAAL,EAA2B;AAC1BF,IAAAA,QAAQ,CAACC,mBAAT,GAA+B,CAAEE,UAAF,WAA+B;AAAA,UAAjB;AAAEC,QAAAA;AAAF,OAAiB;AAC7D,YAAM;AAAEC,QAAAA;AAAF,UAAeF,UAArB,CAD6D,CAG7D;;AACA,UAAKC,OAAO,KAAK,WAAZ,IAA2BC,QAA3B,aAA2BA,QAA3B,eAA2BA,QAAQ,CAAEC,IAA1C,EAAiD;AAChD,eAAOD,QAAQ,CAACC,IAAhB;AACA;AACD,KAPD;AAQA;;AAED,SAAON,QAAP;AACA;AAEDH,SAAS,CACR,0BADQ,EAER,gCAFQ,EAGRE,gBAHQ,CAAT","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\n/**\n * Internal dependencies\n */\nimport { hasBlockMetadataSupport } from './metadata';\n\n/**\n * Filters registered block settings, adding an `__experimentalLabel` callback if one does not already exist.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addLabelCallback( settings ) {\n\t// If blocks provide their own label callback, do not override it.\n\tif ( settings.__experimentalLabel ) {\n\t\treturn settings;\n\t}\n\n\tconst supportsBlockNaming = hasBlockMetadataSupport(\n\t\tsettings,\n\t\t'name',\n\t\tfalse // default value\n\t);\n\n\t// Check whether block metadata is supported before using it.\n\tif ( supportsBlockNaming ) {\n\t\tsettings.__experimentalLabel = ( attributes, { context } ) => {\n\t\t\tconst { metadata } = attributes;\n\n\t\t\t// In the list view, use the block's name attribute as the label.\n\t\t\tif ( context === 'list-view' && metadata?.name ) {\n\t\t\t\treturn metadata.name;\n\t\t\t}\n\t\t};\n\t}\n\n\treturn settings;\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/metadata/addLabelCallback',\n\taddLabelCallback\n);\n"]}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { addFilter } from '@wordpress/hooks';
5
+ import { getBlockSupport } from '@wordpress/blocks';
6
+ const META_ATTRIBUTE_NAME = 'metadata';
7
+ export function hasBlockMetadataSupport(blockType) {
8
+ let feature = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
9
+ const support = getBlockSupport(blockType, '__experimentalMetadata');
10
+ return !!(true === support || support !== null && support !== void 0 && support[feature]);
11
+ }
12
+ /**
13
+ * Filters registered block settings, extending attributes to include `metadata`.
14
+ *
15
+ * see: https://github.com/WordPress/gutenberg/pull/40393/files#r864632012
16
+ *
17
+ * @param {Object} blockTypeSettings Original block settings.
18
+ * @return {Object} Filtered block settings.
19
+ */
20
+
21
+ export function addMetaAttribute(blockTypeSettings) {
22
+ var _blockTypeSettings$at, _blockTypeSettings$at2;
23
+
24
+ // Allow blocks to specify their own attribute definition with default values if needed.
25
+ if (blockTypeSettings !== null && blockTypeSettings !== void 0 && (_blockTypeSettings$at = blockTypeSettings.attributes) !== null && _blockTypeSettings$at !== void 0 && (_blockTypeSettings$at2 = _blockTypeSettings$at[META_ATTRIBUTE_NAME]) !== null && _blockTypeSettings$at2 !== void 0 && _blockTypeSettings$at2.type) {
26
+ return blockTypeSettings;
27
+ }
28
+
29
+ const supportsBlockNaming = hasBlockMetadataSupport(blockTypeSettings, 'name', false);
30
+
31
+ if (supportsBlockNaming) {
32
+ blockTypeSettings.attributes = { ...blockTypeSettings.attributes,
33
+ [META_ATTRIBUTE_NAME]: {
34
+ type: 'object'
35
+ }
36
+ };
37
+ }
38
+
39
+ return blockTypeSettings;
40
+ }
41
+ export function addSaveProps(extraProps, blockType, attributes) {
42
+ if (hasBlockMetadataSupport(blockType)) {
43
+ extraProps[META_ATTRIBUTE_NAME] = attributes[META_ATTRIBUTE_NAME];
44
+ }
45
+
46
+ return extraProps;
47
+ }
48
+ addFilter('blocks.registerBlockType', 'core/metadata/addMetaAttribute', addMetaAttribute);
49
+ addFilter('blocks.getSaveContent.extraProps', 'core/metadata/save-props', addSaveProps);
50
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/metadata.js"],"names":["addFilter","getBlockSupport","META_ATTRIBUTE_NAME","hasBlockMetadataSupport","blockType","feature","support","addMetaAttribute","blockTypeSettings","attributes","type","supportsBlockNaming","addSaveProps","extraProps"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,kBAA1B;AACA,SAASC,eAAT,QAAgC,mBAAhC;AAEA,MAAMC,mBAAmB,GAAG,UAA5B;AAEA,OAAO,SAASC,uBAAT,CAAkCC,SAAlC,EAA4D;AAAA,MAAfC,OAAe,uEAAL,EAAK;AAClE,QAAMC,OAAO,GAAGL,eAAe,CAAEG,SAAF,EAAa,wBAAb,CAA/B;AACA,SAAO,CAAC,EAAI,SAASE,OAAT,IAAoBA,OAApB,aAAoBA,OAApB,eAAoBA,OAAO,CAAID,OAAJ,CAA/B,CAAR;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASE,gBAAT,CAA2BC,iBAA3B,EAA+C;AAAA;;AACrD;AACA,MAAKA,iBAAL,aAAKA,iBAAL,wCAAKA,iBAAiB,CAAEC,UAAxB,4EAAK,sBAAiCP,mBAAjC,CAAL,mDAAK,uBAAwDQ,IAA7D,EAAoE;AACnE,WAAOF,iBAAP;AACA;;AAED,QAAMG,mBAAmB,GAAGR,uBAAuB,CAClDK,iBADkD,EAElD,MAFkD,EAGlD,KAHkD,CAAnD;;AAMA,MAAKG,mBAAL,EAA2B;AAC1BH,IAAAA,iBAAiB,CAACC,UAAlB,GAA+B,EAC9B,GAAGD,iBAAiB,CAACC,UADS;AAE9B,OAAEP,mBAAF,GAAyB;AACxBQ,QAAAA,IAAI,EAAE;AADkB;AAFK,KAA/B;AAMA;;AAED,SAAOF,iBAAP;AACA;AAED,OAAO,SAASI,YAAT,CAAuBC,UAAvB,EAAmCT,SAAnC,EAA8CK,UAA9C,EAA2D;AACjE,MAAKN,uBAAuB,CAAEC,SAAF,CAA5B,EAA4C;AAC3CS,IAAAA,UAAU,CAAEX,mBAAF,CAAV,GAAoCO,UAAU,CAAEP,mBAAF,CAA9C;AACA;;AAED,SAAOW,UAAP;AACA;AAEDb,SAAS,CACR,0BADQ,EAER,gCAFQ,EAGRO,gBAHQ,CAAT;AAMAP,SAAS,CACR,kCADQ,EAER,0BAFQ,EAGRY,YAHQ,CAAT","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { getBlockSupport } from '@wordpress/blocks';\n\nconst META_ATTRIBUTE_NAME = 'metadata';\n\nexport function hasBlockMetadataSupport( blockType, feature = '' ) {\n\tconst support = getBlockSupport( blockType, '__experimentalMetadata' );\n\treturn !! ( true === support || support?.[ feature ] );\n}\n\n/**\n * Filters registered block settings, extending attributes to include `metadata`.\n *\n * see: https://github.com/WordPress/gutenberg/pull/40393/files#r864632012\n *\n * @param {Object} blockTypeSettings Original block settings.\n * @return {Object} Filtered block settings.\n */\nexport function addMetaAttribute( blockTypeSettings ) {\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( blockTypeSettings?.attributes?.[ META_ATTRIBUTE_NAME ]?.type ) {\n\t\treturn blockTypeSettings;\n\t}\n\n\tconst supportsBlockNaming = hasBlockMetadataSupport(\n\t\tblockTypeSettings,\n\t\t'name',\n\t\tfalse\n\t);\n\n\tif ( supportsBlockNaming ) {\n\t\tblockTypeSettings.attributes = {\n\t\t\t...blockTypeSettings.attributes,\n\t\t\t[ META_ATTRIBUTE_NAME ]: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t};\n\t}\n\n\treturn blockTypeSettings;\n}\n\nexport function addSaveProps( extraProps, blockType, attributes ) {\n\tif ( hasBlockMetadataSupport( blockType ) ) {\n\t\textraProps[ META_ATTRIBUTE_NAME ] = attributes[ META_ATTRIBUTE_NAME ];\n\t}\n\n\treturn extraProps;\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/metadata/addMetaAttribute',\n\taddMetaAttribute\n);\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/metadata/save-props',\n\taddSaveProps\n);\n"]}
@@ -109,7 +109,15 @@ export function TypographyPanel(props) {
109
109
  isShownByDefault: defaultControls === null || defaultControls === void 0 ? void 0 : defaultControls.lineHeight,
110
110
  resetAllFilter: createResetAllFilter('lineHeight'),
111
111
  panelId: clientId
112
- }, createElement(LineHeightEdit, props)), !isTextDecorationDisabled && createElement(ToolsPanelItem, {
112
+ }, createElement(LineHeightEdit, props)), !isLetterSpacingDisabled && createElement(ToolsPanelItem, {
113
+ className: "single-column",
114
+ hasValue: () => hasLetterSpacingValue(props),
115
+ label: __('Letter spacing'),
116
+ onDeselect: () => resetLetterSpacing(props),
117
+ isShownByDefault: defaultControls === null || defaultControls === void 0 ? void 0 : defaultControls.letterSpacing,
118
+ resetAllFilter: createResetAllFilter('letterSpacing'),
119
+ panelId: clientId
120
+ }, createElement(LetterSpacingEdit, props)), !isTextDecorationDisabled && createElement(ToolsPanelItem, {
113
121
  className: "single-column",
114
122
  hasValue: () => hasTextDecorationValue(props),
115
123
  label: __('Decoration'),
@@ -118,7 +126,6 @@ export function TypographyPanel(props) {
118
126
  resetAllFilter: createResetAllFilter('textDecoration'),
119
127
  panelId: clientId
120
128
  }, createElement(TextDecorationEdit, props)), !isTextTransformDisabled && createElement(ToolsPanelItem, {
121
- className: "single-column",
122
129
  hasValue: () => hasTextTransformValue(props)
123
130
  /* translators: Ensure translation is distinct from "Font size" */
124
131
  ,
@@ -127,15 +134,7 @@ export function TypographyPanel(props) {
127
134
  isShownByDefault: defaultControls === null || defaultControls === void 0 ? void 0 : defaultControls.textTransform,
128
135
  resetAllFilter: createResetAllFilter('textTransform'),
129
136
  panelId: clientId
130
- }, createElement(TextTransformEdit, props)), !isLetterSpacingDisabled && createElement(ToolsPanelItem, {
131
- className: "single-column",
132
- hasValue: () => hasLetterSpacingValue(props),
133
- label: __('Letter spacing'),
134
- onDeselect: () => resetLetterSpacing(props),
135
- isShownByDefault: defaultControls === null || defaultControls === void 0 ? void 0 : defaultControls.letterSpacing,
136
- resetAllFilter: createResetAllFilter('letterSpacing'),
137
- panelId: clientId
138
- }, createElement(LetterSpacingEdit, props)));
137
+ }, createElement(TextTransformEdit, props)));
139
138
  }
140
139
  export const hasTypographySupport = blockName => {
141
140
  return TYPOGRAPHY_SUPPORT_KEYS.some(key => hasBlockSupport(blockName, key));
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/typography.js"],"names":["getBlockSupport","hasBlockSupport","__experimentalToolsPanelItem","ToolsPanelItem","__","InspectorControls","getFontAppearanceLabel","LINE_HEIGHT_SUPPORT_KEY","LineHeightEdit","hasLineHeightValue","resetLineHeight","useIsLineHeightDisabled","FONT_STYLE_SUPPORT_KEY","FONT_WEIGHT_SUPPORT_KEY","FontAppearanceEdit","hasFontAppearanceValue","resetFontAppearance","useIsFontAppearanceDisabled","useIsFontStyleDisabled","useIsFontWeightDisabled","FONT_FAMILY_SUPPORT_KEY","FontFamilyEdit","hasFontFamilyValue","resetFontFamily","useIsFontFamilyDisabled","FONT_SIZE_SUPPORT_KEY","FontSizeEdit","hasFontSizeValue","resetFontSize","useIsFontSizeDisabled","TEXT_DECORATION_SUPPORT_KEY","TextDecorationEdit","hasTextDecorationValue","resetTextDecoration","useIsTextDecorationDisabled","TEXT_TRANSFORM_SUPPORT_KEY","TextTransformEdit","hasTextTransformValue","resetTextTransform","useIsTextTransformDisabled","LETTER_SPACING_SUPPORT_KEY","LetterSpacingEdit","hasLetterSpacingValue","resetLetterSpacing","useIsLetterSpacingDisabled","TYPOGRAPHY_SUPPORT_KEY","TYPOGRAPHY_SUPPORT_KEYS","TypographyPanel","props","clientId","isFontFamilyDisabled","isFontSizeDisabled","isFontAppearanceDisabled","isLineHeightDisabled","isTextDecorationDisabled","isTextTransformDisabled","isLetterSpacingDisabled","hasFontStyles","hasFontWeights","isDisabled","useIsTypographyDisabled","isSupported","hasTypographySupport","name","defaultControls","createResetAllFilter","attribute","newAttributes","style","typography","undefined","fontFamily","fontSize","fontAppearance","fontStyle","fontWeight","lineHeight","textDecoration","textTransform","letterSpacing","blockName","some","key","configs","filter","Boolean","length"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport { __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport { getFontAppearanceLabel } from '../components/font-appearance-control';\n\nimport {\n\tLINE_HEIGHT_SUPPORT_KEY,\n\tLineHeightEdit,\n\thasLineHeightValue,\n\tresetLineHeight,\n\tuseIsLineHeightDisabled,\n} from './line-height';\nimport {\n\tFONT_STYLE_SUPPORT_KEY,\n\tFONT_WEIGHT_SUPPORT_KEY,\n\tFontAppearanceEdit,\n\thasFontAppearanceValue,\n\tresetFontAppearance,\n\tuseIsFontAppearanceDisabled,\n\tuseIsFontStyleDisabled,\n\tuseIsFontWeightDisabled,\n} from './font-appearance';\nimport {\n\tFONT_FAMILY_SUPPORT_KEY,\n\tFontFamilyEdit,\n\thasFontFamilyValue,\n\tresetFontFamily,\n\tuseIsFontFamilyDisabled,\n} from './font-family';\nimport {\n\tFONT_SIZE_SUPPORT_KEY,\n\tFontSizeEdit,\n\thasFontSizeValue,\n\tresetFontSize,\n\tuseIsFontSizeDisabled,\n} from './font-size';\nimport {\n\tTEXT_DECORATION_SUPPORT_KEY,\n\tTextDecorationEdit,\n\thasTextDecorationValue,\n\tresetTextDecoration,\n\tuseIsTextDecorationDisabled,\n} from './text-decoration';\nimport {\n\tTEXT_TRANSFORM_SUPPORT_KEY,\n\tTextTransformEdit,\n\thasTextTransformValue,\n\tresetTextTransform,\n\tuseIsTextTransformDisabled,\n} from './text-transform';\nimport {\n\tLETTER_SPACING_SUPPORT_KEY,\n\tLetterSpacingEdit,\n\thasLetterSpacingValue,\n\tresetLetterSpacing,\n\tuseIsLetterSpacingDisabled,\n} from './letter-spacing';\n\nexport const TYPOGRAPHY_SUPPORT_KEY = 'typography';\nexport const TYPOGRAPHY_SUPPORT_KEYS = [\n\tLINE_HEIGHT_SUPPORT_KEY,\n\tFONT_SIZE_SUPPORT_KEY,\n\tFONT_STYLE_SUPPORT_KEY,\n\tFONT_WEIGHT_SUPPORT_KEY,\n\tFONT_FAMILY_SUPPORT_KEY,\n\tTEXT_DECORATION_SUPPORT_KEY,\n\tTEXT_TRANSFORM_SUPPORT_KEY,\n\tLETTER_SPACING_SUPPORT_KEY,\n];\n\nexport function TypographyPanel( props ) {\n\tconst { clientId } = props;\n\tconst isFontFamilyDisabled = useIsFontFamilyDisabled( props );\n\tconst isFontSizeDisabled = useIsFontSizeDisabled( props );\n\tconst isFontAppearanceDisabled = useIsFontAppearanceDisabled( props );\n\tconst isLineHeightDisabled = useIsLineHeightDisabled( props );\n\tconst isTextDecorationDisabled = useIsTextDecorationDisabled( props );\n\tconst isTextTransformDisabled = useIsTextTransformDisabled( props );\n\tconst isLetterSpacingDisabled = useIsLetterSpacingDisabled( props );\n\n\tconst hasFontStyles = ! useIsFontStyleDisabled( props );\n\tconst hasFontWeights = ! useIsFontWeightDisabled( props );\n\n\tconst isDisabled = useIsTypographyDisabled( props );\n\tconst isSupported = hasTypographySupport( props.name );\n\n\tif ( isDisabled || ! isSupported ) return null;\n\n\tconst defaultControls = getBlockSupport( props.name, [\n\t\tTYPOGRAPHY_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\tconst createResetAllFilter = ( attribute ) => ( newAttributes ) => ( {\n\t\t...newAttributes,\n\t\tstyle: {\n\t\t\t...newAttributes.style,\n\t\t\ttypography: {\n\t\t\t\t...newAttributes.style?.typography,\n\t\t\t\t[ attribute ]: undefined,\n\t\t\t},\n\t\t},\n\t} );\n\n\treturn (\n\t\t<InspectorControls __experimentalGroup=\"typography\">\n\t\t\t{ ! isFontFamilyDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasFontFamilyValue( props ) }\n\t\t\t\t\tlabel={ __( 'Font family' ) }\n\t\t\t\t\tonDeselect={ () => resetFontFamily( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.fontFamily }\n\t\t\t\t\tresetAllFilter={ ( newAttributes ) => ( {\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t\tfontFamily: undefined,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<FontFamilyEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isFontSizeDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasFontSizeValue( props ) }\n\t\t\t\t\t/* translators: Ensure translation is distinct from \"Letter case\" */\n\t\t\t\t\tlabel={ __( 'Font size' ) }\n\t\t\t\t\tonDeselect={ () => resetFontSize( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.fontSize }\n\t\t\t\t\tresetAllFilter={ ( newAttributes ) => ( {\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t\tfontSize: undefined,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t...newAttributes.style,\n\t\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t\t...newAttributes.style?.typography,\n\t\t\t\t\t\t\t\tfontSize: undefined,\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\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<FontSizeEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isFontAppearanceDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => hasFontAppearanceValue( props ) }\n\t\t\t\t\tlabel={ getFontAppearanceLabel(\n\t\t\t\t\t\thasFontStyles,\n\t\t\t\t\t\thasFontWeights\n\t\t\t\t\t) }\n\t\t\t\t\tonDeselect={ () => resetFontAppearance( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.fontAppearance }\n\t\t\t\t\tresetAllFilter={ ( newAttributes ) => ( {\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t...newAttributes.style,\n\t\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t\t...newAttributes.style?.typography,\n\t\t\t\t\t\t\t\tfontStyle: undefined,\n\t\t\t\t\t\t\t\tfontWeight: undefined,\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\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<FontAppearanceEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isLineHeightDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => hasLineHeightValue( props ) }\n\t\t\t\t\tlabel={ __( 'Line height' ) }\n\t\t\t\t\tonDeselect={ () => resetLineHeight( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.lineHeight }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'lineHeight' ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<LineHeightEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isTextDecorationDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => hasTextDecorationValue( props ) }\n\t\t\t\t\tlabel={ __( 'Decoration' ) }\n\t\t\t\t\tonDeselect={ () => resetTextDecoration( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.textDecoration }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'textDecoration' ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<TextDecorationEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isTextTransformDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => hasTextTransformValue( props ) }\n\t\t\t\t\t/* translators: Ensure translation is distinct from \"Font size\" */\n\t\t\t\t\tlabel={ __( 'Letter case' ) }\n\t\t\t\t\tonDeselect={ () => resetTextTransform( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.textTransform }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'textTransform' ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<TextTransformEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isLetterSpacingDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => hasLetterSpacingValue( props ) }\n\t\t\t\t\tlabel={ __( 'Letter spacing' ) }\n\t\t\t\t\tonDeselect={ () => resetLetterSpacing( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.letterSpacing }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'letterSpacing' ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<LetterSpacingEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n}\n\nexport const hasTypographySupport = ( blockName ) => {\n\treturn TYPOGRAPHY_SUPPORT_KEYS.some( ( key ) =>\n\t\thasBlockSupport( blockName, key )\n\t);\n};\n\nfunction useIsTypographyDisabled( props = {} ) {\n\tconst configs = [\n\t\tuseIsFontAppearanceDisabled( props ),\n\t\tuseIsFontSizeDisabled( props ),\n\t\tuseIsLineHeightDisabled( props ),\n\t\tuseIsFontFamilyDisabled( props ),\n\t\tuseIsTextDecorationDisabled( props ),\n\t\tuseIsTextTransformDisabled( props ),\n\t\tuseIsLetterSpacingDisabled( props ),\n\t];\n\n\treturn configs.filter( Boolean ).length === configs.length;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/typography.js"],"names":["getBlockSupport","hasBlockSupport","__experimentalToolsPanelItem","ToolsPanelItem","__","InspectorControls","getFontAppearanceLabel","LINE_HEIGHT_SUPPORT_KEY","LineHeightEdit","hasLineHeightValue","resetLineHeight","useIsLineHeightDisabled","FONT_STYLE_SUPPORT_KEY","FONT_WEIGHT_SUPPORT_KEY","FontAppearanceEdit","hasFontAppearanceValue","resetFontAppearance","useIsFontAppearanceDisabled","useIsFontStyleDisabled","useIsFontWeightDisabled","FONT_FAMILY_SUPPORT_KEY","FontFamilyEdit","hasFontFamilyValue","resetFontFamily","useIsFontFamilyDisabled","FONT_SIZE_SUPPORT_KEY","FontSizeEdit","hasFontSizeValue","resetFontSize","useIsFontSizeDisabled","TEXT_DECORATION_SUPPORT_KEY","TextDecorationEdit","hasTextDecorationValue","resetTextDecoration","useIsTextDecorationDisabled","TEXT_TRANSFORM_SUPPORT_KEY","TextTransformEdit","hasTextTransformValue","resetTextTransform","useIsTextTransformDisabled","LETTER_SPACING_SUPPORT_KEY","LetterSpacingEdit","hasLetterSpacingValue","resetLetterSpacing","useIsLetterSpacingDisabled","TYPOGRAPHY_SUPPORT_KEY","TYPOGRAPHY_SUPPORT_KEYS","TypographyPanel","props","clientId","isFontFamilyDisabled","isFontSizeDisabled","isFontAppearanceDisabled","isLineHeightDisabled","isTextDecorationDisabled","isTextTransformDisabled","isLetterSpacingDisabled","hasFontStyles","hasFontWeights","isDisabled","useIsTypographyDisabled","isSupported","hasTypographySupport","name","defaultControls","createResetAllFilter","attribute","newAttributes","style","typography","undefined","fontFamily","fontSize","fontAppearance","fontStyle","fontWeight","lineHeight","letterSpacing","textDecoration","textTransform","blockName","some","key","configs","filter","Boolean","length"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport { __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport { getFontAppearanceLabel } from '../components/font-appearance-control';\n\nimport {\n\tLINE_HEIGHT_SUPPORT_KEY,\n\tLineHeightEdit,\n\thasLineHeightValue,\n\tresetLineHeight,\n\tuseIsLineHeightDisabled,\n} from './line-height';\nimport {\n\tFONT_STYLE_SUPPORT_KEY,\n\tFONT_WEIGHT_SUPPORT_KEY,\n\tFontAppearanceEdit,\n\thasFontAppearanceValue,\n\tresetFontAppearance,\n\tuseIsFontAppearanceDisabled,\n\tuseIsFontStyleDisabled,\n\tuseIsFontWeightDisabled,\n} from './font-appearance';\nimport {\n\tFONT_FAMILY_SUPPORT_KEY,\n\tFontFamilyEdit,\n\thasFontFamilyValue,\n\tresetFontFamily,\n\tuseIsFontFamilyDisabled,\n} from './font-family';\nimport {\n\tFONT_SIZE_SUPPORT_KEY,\n\tFontSizeEdit,\n\thasFontSizeValue,\n\tresetFontSize,\n\tuseIsFontSizeDisabled,\n} from './font-size';\nimport {\n\tTEXT_DECORATION_SUPPORT_KEY,\n\tTextDecorationEdit,\n\thasTextDecorationValue,\n\tresetTextDecoration,\n\tuseIsTextDecorationDisabled,\n} from './text-decoration';\nimport {\n\tTEXT_TRANSFORM_SUPPORT_KEY,\n\tTextTransformEdit,\n\thasTextTransformValue,\n\tresetTextTransform,\n\tuseIsTextTransformDisabled,\n} from './text-transform';\nimport {\n\tLETTER_SPACING_SUPPORT_KEY,\n\tLetterSpacingEdit,\n\thasLetterSpacingValue,\n\tresetLetterSpacing,\n\tuseIsLetterSpacingDisabled,\n} from './letter-spacing';\n\nexport const TYPOGRAPHY_SUPPORT_KEY = 'typography';\nexport const TYPOGRAPHY_SUPPORT_KEYS = [\n\tLINE_HEIGHT_SUPPORT_KEY,\n\tFONT_SIZE_SUPPORT_KEY,\n\tFONT_STYLE_SUPPORT_KEY,\n\tFONT_WEIGHT_SUPPORT_KEY,\n\tFONT_FAMILY_SUPPORT_KEY,\n\tTEXT_DECORATION_SUPPORT_KEY,\n\tTEXT_TRANSFORM_SUPPORT_KEY,\n\tLETTER_SPACING_SUPPORT_KEY,\n];\n\nexport function TypographyPanel( props ) {\n\tconst { clientId } = props;\n\tconst isFontFamilyDisabled = useIsFontFamilyDisabled( props );\n\tconst isFontSizeDisabled = useIsFontSizeDisabled( props );\n\tconst isFontAppearanceDisabled = useIsFontAppearanceDisabled( props );\n\tconst isLineHeightDisabled = useIsLineHeightDisabled( props );\n\tconst isTextDecorationDisabled = useIsTextDecorationDisabled( props );\n\tconst isTextTransformDisabled = useIsTextTransformDisabled( props );\n\tconst isLetterSpacingDisabled = useIsLetterSpacingDisabled( props );\n\n\tconst hasFontStyles = ! useIsFontStyleDisabled( props );\n\tconst hasFontWeights = ! useIsFontWeightDisabled( props );\n\n\tconst isDisabled = useIsTypographyDisabled( props );\n\tconst isSupported = hasTypographySupport( props.name );\n\n\tif ( isDisabled || ! isSupported ) return null;\n\n\tconst defaultControls = getBlockSupport( props.name, [\n\t\tTYPOGRAPHY_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\tconst createResetAllFilter = ( attribute ) => ( newAttributes ) => ( {\n\t\t...newAttributes,\n\t\tstyle: {\n\t\t\t...newAttributes.style,\n\t\t\ttypography: {\n\t\t\t\t...newAttributes.style?.typography,\n\t\t\t\t[ attribute ]: undefined,\n\t\t\t},\n\t\t},\n\t} );\n\n\treturn (\n\t\t<InspectorControls __experimentalGroup=\"typography\">\n\t\t\t{ ! isFontFamilyDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasFontFamilyValue( props ) }\n\t\t\t\t\tlabel={ __( 'Font family' ) }\n\t\t\t\t\tonDeselect={ () => resetFontFamily( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.fontFamily }\n\t\t\t\t\tresetAllFilter={ ( newAttributes ) => ( {\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t\tfontFamily: undefined,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<FontFamilyEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isFontSizeDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasFontSizeValue( props ) }\n\t\t\t\t\t/* translators: Ensure translation is distinct from \"Letter case\" */\n\t\t\t\t\tlabel={ __( 'Font size' ) }\n\t\t\t\t\tonDeselect={ () => resetFontSize( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.fontSize }\n\t\t\t\t\tresetAllFilter={ ( newAttributes ) => ( {\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t\tfontSize: undefined,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t...newAttributes.style,\n\t\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t\t...newAttributes.style?.typography,\n\t\t\t\t\t\t\t\tfontSize: undefined,\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\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<FontSizeEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isFontAppearanceDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => hasFontAppearanceValue( props ) }\n\t\t\t\t\tlabel={ getFontAppearanceLabel(\n\t\t\t\t\t\thasFontStyles,\n\t\t\t\t\t\thasFontWeights\n\t\t\t\t\t) }\n\t\t\t\t\tonDeselect={ () => resetFontAppearance( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.fontAppearance }\n\t\t\t\t\tresetAllFilter={ ( newAttributes ) => ( {\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t...newAttributes.style,\n\t\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t\t...newAttributes.style?.typography,\n\t\t\t\t\t\t\t\tfontStyle: undefined,\n\t\t\t\t\t\t\t\tfontWeight: undefined,\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\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<FontAppearanceEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isLineHeightDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => hasLineHeightValue( props ) }\n\t\t\t\t\tlabel={ __( 'Line height' ) }\n\t\t\t\t\tonDeselect={ () => resetLineHeight( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.lineHeight }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'lineHeight' ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<LineHeightEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isLetterSpacingDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => hasLetterSpacingValue( props ) }\n\t\t\t\t\tlabel={ __( 'Letter spacing' ) }\n\t\t\t\t\tonDeselect={ () => resetLetterSpacing( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.letterSpacing }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'letterSpacing' ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<LetterSpacingEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isTextDecorationDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => hasTextDecorationValue( props ) }\n\t\t\t\t\tlabel={ __( 'Decoration' ) }\n\t\t\t\t\tonDeselect={ () => resetTextDecoration( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.textDecoration }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'textDecoration' ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<TextDecorationEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isTextTransformDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasTextTransformValue( props ) }\n\t\t\t\t\t/* translators: Ensure translation is distinct from \"Font size\" */\n\t\t\t\t\tlabel={ __( 'Letter case' ) }\n\t\t\t\t\tonDeselect={ () => resetTextTransform( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.textTransform }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'textTransform' ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<TextTransformEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n}\n\nexport const hasTypographySupport = ( blockName ) => {\n\treturn TYPOGRAPHY_SUPPORT_KEYS.some( ( key ) =>\n\t\thasBlockSupport( blockName, key )\n\t);\n};\n\nfunction useIsTypographyDisabled( props = {} ) {\n\tconst configs = [\n\t\tuseIsFontAppearanceDisabled( props ),\n\t\tuseIsFontSizeDisabled( props ),\n\t\tuseIsLineHeightDisabled( props ),\n\t\tuseIsFontFamilyDisabled( props ),\n\t\tuseIsTextDecorationDisabled( props ),\n\t\tuseIsTextTransformDisabled( props ),\n\t\tuseIsLetterSpacingDisabled( props ),\n\t];\n\n\treturn configs.filter( Boolean ).length === configs.length;\n}\n"]}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import { kebabCase } from 'lodash';
5
+ import classnames from 'classnames';
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+
10
+ import { getInlineStyles } from './style';
11
+ import { getFontSizeClass } from '../components/font-sizes'; // This utility is intended to assist where the serialization of the typography
12
+ // block support is being skipped for a block but the typography related CSS
13
+ // styles still need to be generated so they can be applied to inner elements.
14
+
15
+ /**
16
+ * Provides the CSS class names and inline styles for a block's typography support
17
+ * attributes.
18
+ *
19
+ * @param {Object} attributes Block attributes.
20
+ *
21
+ * @return {Object} Typography block support derived CSS classes & styles.
22
+ */
23
+
24
+ export function getTypographyClassesAndStyles(attributes) {
25
+ var _attributes$style;
26
+
27
+ const typographyStyles = (attributes === null || attributes === void 0 ? void 0 : (_attributes$style = attributes.style) === null || _attributes$style === void 0 ? void 0 : _attributes$style.typography) || {};
28
+ const style = getInlineStyles({
29
+ typography: typographyStyles
30
+ });
31
+ const fontFamilyClassName = !!(attributes !== null && attributes !== void 0 && attributes.fontFamily) ? `has-${kebabCase(attributes.fontFamily)}-font-family` : '';
32
+ const className = classnames(fontFamilyClassName, getFontSizeClass(attributes === null || attributes === void 0 ? void 0 : attributes.fontSize));
33
+ return {
34
+ className,
35
+ style
36
+ };
37
+ }
38
+ //# sourceMappingURL=use-typography-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/use-typography-props.js"],"names":["kebabCase","classnames","getInlineStyles","getFontSizeClass","getTypographyClassesAndStyles","attributes","typographyStyles","style","typography","fontFamilyClassName","fontFamily","className","fontSize"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,QAA1B;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,eAAT,QAAgC,SAAhC;AACA,SAASC,gBAAT,QAAiC,0BAAjC,C,CAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,6BAAT,CAAwCC,UAAxC,EAAqD;AAAA;;AAC3D,QAAMC,gBAAgB,GAAG,CAAAD,UAAU,SAAV,IAAAA,UAAU,WAAV,iCAAAA,UAAU,CAAEE,KAAZ,wEAAmBC,UAAnB,KAAiC,EAA1D;AACA,QAAMD,KAAK,GAAGL,eAAe,CAAE;AAAEM,IAAAA,UAAU,EAAEF;AAAd,GAAF,CAA7B;AACA,QAAMG,mBAAmB,GAAG,CAAC,EAAEJ,UAAF,aAAEA,UAAF,eAAEA,UAAU,CAAEK,UAAd,CAAD,GACxB,OAAOV,SAAS,CAAEK,UAAU,CAACK,UAAb,CAA2B,cADnB,GAEzB,EAFH;AAIA,QAAMC,SAAS,GAAGV,UAAU,CAC3BQ,mBAD2B,EAE3BN,gBAAgB,CAAEE,UAAF,aAAEA,UAAF,uBAAEA,UAAU,CAAEO,QAAd,CAFW,CAA5B;AAKA,SAAO;AACND,IAAAA,SADM;AAENJ,IAAAA;AAFM,GAAP;AAIA","sourcesContent":["/**\n * External dependencies\n */\nimport { kebabCase } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport { getInlineStyles } from './style';\nimport { getFontSizeClass } from '../components/font-sizes';\n\n// This utility is intended to assist where the serialization of the typography\n// block support is being skipped for a block but the typography related CSS\n// styles still need to be generated so they can be applied to inner elements.\n\n/**\n * Provides the CSS class names and inline styles for a block's typography support\n * attributes.\n *\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} Typography block support derived CSS classes & styles.\n */\nexport function getTypographyClassesAndStyles( attributes ) {\n\tconst typographyStyles = attributes?.style?.typography || {};\n\tconst style = getInlineStyles( { typography: typographyStyles } );\n\tconst fontFamilyClassName = !! attributes?.fontFamily\n\t\t? `has-${ kebabCase( attributes.fontFamily ) }-font-family`\n\t\t: '';\n\n\tconst className = classnames(\n\t\tfontFamilyClassName,\n\t\tgetFontSizeClass( attributes?.fontSize )\n\t);\n\n\treturn {\n\t\tclassName,\n\t\tstyle,\n\t};\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { pickBy, isEmpty, mapValues, forEach, get, setWith, clone, every } from 'lodash';
4
+ import { pickBy, isEmpty, mapValues, get, setWith, clone, every } from 'lodash';
5
5
  /**
6
6
  * WordPress dependencies
7
7
  */
@@ -61,7 +61,9 @@ export function transformStyles(activeSupports, migrationPaths, result, source,
61
61
  }
62
62
 
63
63
  let returnBlock = result;
64
- forEach(activeSupports, (isActive, support) => {
64
+ Object.entries(activeSupports).forEach(_ref => {
65
+ let [support, isActive] = _ref;
66
+
65
67
  if (isActive) {
66
68
  migrationPaths[support].forEach(path => {
67
69
  const styleValue = get(referenceBlockAttributes, path);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/utils.js"],"names":["pickBy","isEmpty","mapValues","forEach","get","setWith","clone","every","getBlockSupport","identity","x","cleanEmptyObject","object","Array","isArray","cleanedNestedObjects","undefined","immutableSet","path","value","transformStyles","activeSupports","migrationPaths","result","source","index","results","isActive","length","innerBlocks","referenceBlockAttributes","attributes","returnBlock","support","styleValue","shouldSkipSerialization","blockType","featureSet","feature","skipSerialization","__experimentalSkipSerialization","includes"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tpickBy,\n\tisEmpty,\n\tmapValues,\n\tforEach,\n\tget,\n\tsetWith,\n\tclone,\n\tevery,\n} from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockSupport } from '@wordpress/blocks';\n\nconst identity = ( x ) => x;\n\n/**\n * Removed falsy values from nested object.\n *\n * @param {*} object\n * @return {*} Object cleaned from falsy values\n */\nexport const cleanEmptyObject = ( object ) => {\n\tif (\n\t\tobject === null ||\n\t\ttypeof object !== 'object' ||\n\t\tArray.isArray( object )\n\t) {\n\t\treturn object;\n\t}\n\tconst cleanedNestedObjects = pickBy(\n\t\tmapValues( object, cleanEmptyObject ),\n\t\tidentity\n\t);\n\treturn isEmpty( cleanedNestedObjects ) ? undefined : cleanedNestedObjects;\n};\n\nexport function immutableSet( object, path, value ) {\n\treturn setWith( object ? clone( object ) : {}, path, value, clone );\n}\n\nexport function transformStyles(\n\tactiveSupports,\n\tmigrationPaths,\n\tresult,\n\tsource,\n\tindex,\n\tresults\n) {\n\t// If there are no active supports return early.\n\tif ( every( activeSupports, ( isActive ) => ! isActive ) ) {\n\t\treturn result;\n\t}\n\t// If the condition verifies we are probably in the presence of a wrapping transform\n\t// e.g: nesting paragraphs in a group or columns and in that case the styles should not be transformed.\n\tif ( results.length === 1 && result.innerBlocks.length === source.length ) {\n\t\treturn result;\n\t}\n\t// For cases where we have a transform from one block to multiple blocks\n\t// or multiple blocks to one block we apply the styles of the first source block\n\t// to the result(s).\n\tlet referenceBlockAttributes = source[ 0 ]?.attributes;\n\t// If we are in presence of transform between more than one block in the source\n\t// that has more than one block in the result\n\t// we apply the styles on source N to the result N,\n\t// if source N does not exists we do nothing.\n\tif ( results.length > 1 && source.length > 1 ) {\n\t\tif ( source[ index ] ) {\n\t\t\treferenceBlockAttributes = source[ index ]?.attributes;\n\t\t} else {\n\t\t\treturn result;\n\t\t}\n\t}\n\tlet returnBlock = result;\n\tforEach( activeSupports, ( isActive, support ) => {\n\t\tif ( isActive ) {\n\t\t\tmigrationPaths[ support ].forEach( ( path ) => {\n\t\t\t\tconst styleValue = get( referenceBlockAttributes, path );\n\t\t\t\tif ( styleValue ) {\n\t\t\t\t\treturnBlock = {\n\t\t\t\t\t\t...returnBlock,\n\t\t\t\t\t\tattributes: immutableSet(\n\t\t\t\t\t\t\treturnBlock.attributes,\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\tstyleValue\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} );\n\treturn returnBlock;\n}\n\n/**\n * Check whether serialization of specific block support feature or set should\n * be skipped.\n *\n * @param {string|Object} blockType Block name or block type object.\n * @param {string} featureSet Name of block support feature set.\n * @param {string} feature Name of the individual feature to check.\n *\n * @return {boolean} Whether serialization should occur.\n */\nexport function shouldSkipSerialization( blockType, featureSet, feature ) {\n\tconst support = getBlockSupport( blockType, featureSet );\n\tconst skipSerialization = support?.__experimentalSkipSerialization;\n\n\tif ( Array.isArray( skipSerialization ) ) {\n\t\treturn skipSerialization.includes( feature );\n\t}\n\n\treturn skipSerialization;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/utils.js"],"names":["pickBy","isEmpty","mapValues","get","setWith","clone","every","getBlockSupport","identity","x","cleanEmptyObject","object","Array","isArray","cleanedNestedObjects","undefined","immutableSet","path","value","transformStyles","activeSupports","migrationPaths","result","source","index","results","isActive","length","innerBlocks","referenceBlockAttributes","attributes","returnBlock","Object","entries","forEach","support","styleValue","shouldSkipSerialization","blockType","featureSet","feature","skipSerialization","__experimentalSkipSerialization","includes"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { pickBy, isEmpty, mapValues, get, setWith, clone, every } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockSupport } from '@wordpress/blocks';\n\nconst identity = ( x ) => x;\n\n/**\n * Removed falsy values from nested object.\n *\n * @param {*} object\n * @return {*} Object cleaned from falsy values\n */\nexport const cleanEmptyObject = ( object ) => {\n\tif (\n\t\tobject === null ||\n\t\ttypeof object !== 'object' ||\n\t\tArray.isArray( object )\n\t) {\n\t\treturn object;\n\t}\n\tconst cleanedNestedObjects = pickBy(\n\t\tmapValues( object, cleanEmptyObject ),\n\t\tidentity\n\t);\n\treturn isEmpty( cleanedNestedObjects ) ? undefined : cleanedNestedObjects;\n};\n\nexport function immutableSet( object, path, value ) {\n\treturn setWith( object ? clone( object ) : {}, path, value, clone );\n}\n\nexport function transformStyles(\n\tactiveSupports,\n\tmigrationPaths,\n\tresult,\n\tsource,\n\tindex,\n\tresults\n) {\n\t// If there are no active supports return early.\n\tif ( every( activeSupports, ( isActive ) => ! isActive ) ) {\n\t\treturn result;\n\t}\n\t// If the condition verifies we are probably in the presence of a wrapping transform\n\t// e.g: nesting paragraphs in a group or columns and in that case the styles should not be transformed.\n\tif ( results.length === 1 && result.innerBlocks.length === source.length ) {\n\t\treturn result;\n\t}\n\t// For cases where we have a transform from one block to multiple blocks\n\t// or multiple blocks to one block we apply the styles of the first source block\n\t// to the result(s).\n\tlet referenceBlockAttributes = source[ 0 ]?.attributes;\n\t// If we are in presence of transform between more than one block in the source\n\t// that has more than one block in the result\n\t// we apply the styles on source N to the result N,\n\t// if source N does not exists we do nothing.\n\tif ( results.length > 1 && source.length > 1 ) {\n\t\tif ( source[ index ] ) {\n\t\t\treferenceBlockAttributes = source[ index ]?.attributes;\n\t\t} else {\n\t\t\treturn result;\n\t\t}\n\t}\n\tlet returnBlock = result;\n\tObject.entries( activeSupports ).forEach( ( [ support, isActive ] ) => {\n\t\tif ( isActive ) {\n\t\t\tmigrationPaths[ support ].forEach( ( path ) => {\n\t\t\t\tconst styleValue = get( referenceBlockAttributes, path );\n\t\t\t\tif ( styleValue ) {\n\t\t\t\t\treturnBlock = {\n\t\t\t\t\t\t...returnBlock,\n\t\t\t\t\t\tattributes: immutableSet(\n\t\t\t\t\t\t\treturnBlock.attributes,\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\tstyleValue\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} );\n\treturn returnBlock;\n}\n\n/**\n * Check whether serialization of specific block support feature or set should\n * be skipped.\n *\n * @param {string|Object} blockType Block name or block type object.\n * @param {string} featureSet Name of block support feature set.\n * @param {string} feature Name of the individual feature to check.\n *\n * @return {boolean} Whether serialization should occur.\n */\nexport function shouldSkipSerialization( blockType, featureSet, feature ) {\n\tconst support = getBlockSupport( blockType, featureSet );\n\tconst skipSerialization = support?.__experimentalSkipSerialization;\n\n\tif ( Array.isArray( skipSerialization ) ) {\n\t\treturn skipSerialization.includes( feature );\n\t}\n\n\treturn skipSerialization;\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  * Internal dependencies
3
3
  */
4
4
  import './hooks';
5
- export { getBorderClassesAndStyles as __experimentalGetBorderClassesAndStyles, useBorderProps as __experimentalUseBorderProps, getColorClassesAndStyles as __experimentalGetColorClassesAndStyles, useColorProps as __experimentalUseColorProps, useCustomSides as __experimentalUseCustomSides, getSpacingClassesAndStyles as __experimentalGetSpacingClassesAndStyles, getGapCSSValue as __experimentalGetGapCSSValue, useCachedTruthy } from './hooks';
5
+ export { getBorderClassesAndStyles as __experimentalGetBorderClassesAndStyles, useBorderProps as __experimentalUseBorderProps, getColorClassesAndStyles as __experimentalGetColorClassesAndStyles, getTypographyClassesAndStyles, useColorProps as __experimentalUseColorProps, useCustomSides as __experimentalUseCustomSides, getSpacingClassesAndStyles as __experimentalGetSpacingClassesAndStyles, getGapCSSValue as __experimentalGetGapCSSValue, useCachedTruthy } from './hooks';
6
6
  export * from './components';
7
7
  export * from './elements';
8
8
  export * from './utils';
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/index.js"],"names":["getBorderClassesAndStyles","__experimentalGetBorderClassesAndStyles","useBorderProps","__experimentalUseBorderProps","getColorClassesAndStyles","__experimentalGetColorClassesAndStyles","useColorProps","__experimentalUseColorProps","useCustomSides","__experimentalUseCustomSides","getSpacingClassesAndStyles","__experimentalGetSpacingClassesAndStyles","getGapCSSValue","__experimentalGetGapCSSValue","useCachedTruthy","storeConfig","store","SETTINGS_DEFAULTS"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,SAAP;AACA,SACCA,yBAAyB,IAAIC,uCAD9B,EAECC,cAAc,IAAIC,4BAFnB,EAGCC,wBAAwB,IAAIC,sCAH7B,EAICC,aAAa,IAAIC,2BAJlB,EAKCC,cAAc,IAAIC,4BALnB,EAMCC,0BAA0B,IAAIC,wCAN/B,EAOCC,cAAc,IAAIC,4BAPnB,EAQCC,eARD,QASO,SATP;AAUA,cAAc,cAAd;AACA,cAAc,YAAd;AACA,cAAc,SAAd;AACA,SAASC,WAAT,EAAsBC,KAAtB,QAAmC,SAAnC;AACA,SAASC,iBAAT,QAAkC,kBAAlC","sourcesContent":["/**\n * Internal dependencies\n */\nimport './hooks';\nexport {\n\tgetBorderClassesAndStyles as __experimentalGetBorderClassesAndStyles,\n\tuseBorderProps as __experimentalUseBorderProps,\n\tgetColorClassesAndStyles as __experimentalGetColorClassesAndStyles,\n\tuseColorProps as __experimentalUseColorProps,\n\tuseCustomSides as __experimentalUseCustomSides,\n\tgetSpacingClassesAndStyles as __experimentalGetSpacingClassesAndStyles,\n\tgetGapCSSValue as __experimentalGetGapCSSValue,\n\tuseCachedTruthy,\n} from './hooks';\nexport * from './components';\nexport * from './elements';\nexport * from './utils';\nexport { storeConfig, store } from './store';\nexport { SETTINGS_DEFAULTS } from './store/defaults';\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/index.js"],"names":["getBorderClassesAndStyles","__experimentalGetBorderClassesAndStyles","useBorderProps","__experimentalUseBorderProps","getColorClassesAndStyles","__experimentalGetColorClassesAndStyles","getTypographyClassesAndStyles","useColorProps","__experimentalUseColorProps","useCustomSides","__experimentalUseCustomSides","getSpacingClassesAndStyles","__experimentalGetSpacingClassesAndStyles","getGapCSSValue","__experimentalGetGapCSSValue","useCachedTruthy","storeConfig","store","SETTINGS_DEFAULTS"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,SAAP;AACA,SACCA,yBAAyB,IAAIC,uCAD9B,EAECC,cAAc,IAAIC,4BAFnB,EAGCC,wBAAwB,IAAIC,sCAH7B,EAICC,6BAJD,EAKCC,aAAa,IAAIC,2BALlB,EAMCC,cAAc,IAAIC,4BANnB,EAOCC,0BAA0B,IAAIC,wCAP/B,EAQCC,cAAc,IAAIC,4BARnB,EASCC,eATD,QAUO,SAVP;AAWA,cAAc,cAAd;AACA,cAAc,YAAd;AACA,cAAc,SAAd;AACA,SAASC,WAAT,EAAsBC,KAAtB,QAAmC,SAAnC;AACA,SAASC,iBAAT,QAAkC,kBAAlC","sourcesContent":["/**\n * Internal dependencies\n */\nimport './hooks';\nexport {\n\tgetBorderClassesAndStyles as __experimentalGetBorderClassesAndStyles,\n\tuseBorderProps as __experimentalUseBorderProps,\n\tgetColorClassesAndStyles as __experimentalGetColorClassesAndStyles,\n\tgetTypographyClassesAndStyles,\n\tuseColorProps as __experimentalUseColorProps,\n\tuseCustomSides as __experimentalUseCustomSides,\n\tgetSpacingClassesAndStyles as __experimentalGetSpacingClassesAndStyles,\n\tgetGapCSSValue as __experimentalGetGapCSSValue,\n\tuseCachedTruthy,\n} from './hooks';\nexport * from './components';\nexport * from './elements';\nexport * from './utils';\nexport { storeConfig, store } from './store';\nexport { SETTINGS_DEFAULTS } from './store/defaults';\n"]}