@wordpress/block-editor 12.11.1 → 12.12.2-next.f8d8eceb.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. package/CHANGELOG.md +14 -10
  2. package/README.md +35 -3
  3. package/build/components/block-alignment-control/use-available-alignments.js +30 -28
  4. package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
  5. package/build/components/block-controls/hook.js +4 -1
  6. package/build/components/block-controls/hook.js.map +1 -1
  7. package/build/components/block-list/block-outline.native.js +1 -1
  8. package/build/components/block-list/block-outline.native.js.map +1 -1
  9. package/build/components/block-list/block.js +2 -0
  10. package/build/components/block-list/block.js.map +1 -1
  11. package/build/components/block-list/block.native.js +4 -4
  12. package/build/components/block-list/block.native.js.map +1 -1
  13. package/build/components/block-list/layout.js +2 -3
  14. package/build/components/block-list/layout.js.map +1 -1
  15. package/build/components/block-preview/index.js +4 -1
  16. package/build/components/block-preview/index.js.map +1 -1
  17. package/build/components/block-styles/index.js +1 -2
  18. package/build/components/block-styles/index.js.map +1 -1
  19. package/build/components/block-switcher/pattern-transformations-menu.js +2 -4
  20. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  21. package/build/components/block-tools/block-contextual-toolbar.js +1 -0
  22. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  23. package/build/components/border-radius-control/index.js +3 -2
  24. package/build/components/border-radius-control/index.js.map +1 -1
  25. package/build/components/color-palette/with-color-context.js +6 -6
  26. package/build/components/color-palette/with-color-context.js.map +1 -1
  27. package/build/components/colors/with-colors.js +2 -8
  28. package/build/components/colors/with-colors.js.map +1 -1
  29. package/build/components/colors-gradients/control.js +6 -7
  30. package/build/components/colors-gradients/control.js.map +1 -1
  31. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +5 -13
  32. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  33. package/build/components/dimensions-tool/index.js +22 -22
  34. package/build/components/dimensions-tool/index.js.map +1 -1
  35. package/build/components/dimensions-tool/scale-tool.js +1 -1
  36. package/build/components/dimensions-tool/scale-tool.js.map +1 -1
  37. package/build/components/font-family/index.js +2 -3
  38. package/build/components/font-family/index.js.map +1 -1
  39. package/build/components/font-sizes/font-size-picker.js +3 -5
  40. package/build/components/font-sizes/font-size-picker.js.map +1 -1
  41. package/build/components/font-sizes/with-font-sizes.js +3 -4
  42. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  43. package/build/components/global-styles/filters-panel.js +7 -8
  44. package/build/components/global-styles/filters-panel.js.map +1 -1
  45. package/build/components/global-styles/image-settings-panel.js +2 -2
  46. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  47. package/build/components/global-styles/typography-panel.js +1 -1
  48. package/build/components/global-styles/typography-panel.js.map +1 -1
  49. package/build/components/gradients/use-gradient.js +2 -5
  50. package/build/components/gradients/use-gradient.js.map +1 -1
  51. package/build/components/height-control/index.js +93 -5
  52. package/build/components/height-control/index.js.map +1 -1
  53. package/build/components/iframe/index.js +9 -1
  54. package/build/components/iframe/index.js.map +1 -1
  55. package/build/components/image-editor/aspect-ratio-dropdown.js +0 -6
  56. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  57. package/build/components/index.js +9 -2
  58. package/build/components/index.js.map +1 -1
  59. package/build/components/index.native.js +17 -2
  60. package/build/components/index.native.js.map +1 -1
  61. package/build/components/inner-blocks/index.js +2 -2
  62. package/build/components/inner-blocks/index.js.map +1 -1
  63. package/build/components/letter-spacing-control/index.js +3 -3
  64. package/build/components/letter-spacing-control/index.js.map +1 -1
  65. package/build/components/link-control/link-preview.js +5 -2
  66. package/build/components/link-control/link-preview.js.map +1 -1
  67. package/build/components/link-control/search-item.js +11 -0
  68. package/build/components/link-control/search-item.js.map +1 -1
  69. package/build/components/link-control/search-results.js +2 -1
  70. package/build/components/link-control/search-results.js.map +1 -1
  71. package/build/components/link-control/use-internal-value.js +14 -8
  72. package/build/components/link-control/use-internal-value.js.map +1 -1
  73. package/build/components/link-control/use-search-handler.js +10 -5
  74. package/build/components/link-control/use-search-handler.js.map +1 -1
  75. package/build/components/list-view/index.js +6 -5
  76. package/build/components/list-view/index.js.map +1 -1
  77. package/build/components/media-replace-flow/index.js +2 -4
  78. package/build/components/media-replace-flow/index.js.map +1 -1
  79. package/build/components/provider/use-block-sync.js +2 -2
  80. package/build/components/provider/use-block-sync.js.map +1 -1
  81. package/build/components/rich-text/index.js +1 -1
  82. package/build/components/rich-text/index.js.map +1 -1
  83. package/build/components/rich-text/index.native.js +14 -3
  84. package/build/components/rich-text/index.native.js.map +1 -1
  85. package/build/components/rich-text/use-delete.js +1 -1
  86. package/build/components/rich-text/use-delete.js.map +1 -1
  87. package/build/components/rich-text/use-paste-handler.js +25 -22
  88. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  89. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +6 -3
  90. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  91. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +91 -3
  92. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  93. package/build/components/tool-selector/index.js +1 -2
  94. package/build/components/tool-selector/index.js.map +1 -1
  95. package/build/components/unit-control/index.js +3 -3
  96. package/build/components/unit-control/index.js.map +1 -1
  97. package/build/components/use-block-commands/index.js +96 -47
  98. package/build/components/use-block-commands/index.js.map +1 -1
  99. package/build/components/use-settings/index.js +212 -0
  100. package/build/components/use-settings/index.js.map +1 -0
  101. package/build/components/writing-flow/use-arrow-nav.js +4 -0
  102. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  103. package/build/hooks/align.js +51 -35
  104. package/build/hooks/align.js.map +1 -1
  105. package/build/hooks/anchor.js +37 -32
  106. package/build/hooks/anchor.js.map +1 -1
  107. package/build/hooks/background.js +4 -4
  108. package/build/hooks/background.js.map +1 -1
  109. package/build/hooks/block-rename-ui.js +5 -5
  110. package/build/hooks/block-rename-ui.js.map +1 -1
  111. package/build/hooks/{metadata-name.js → block-renaming.js} +3 -7
  112. package/build/hooks/block-renaming.js.map +1 -0
  113. package/build/hooks/color.js +2 -4
  114. package/build/hooks/color.js.map +1 -1
  115. package/build/hooks/custom-class-name.js +28 -21
  116. package/build/hooks/custom-class-name.js.map +1 -1
  117. package/build/hooks/duotone.js +33 -8
  118. package/build/hooks/duotone.js.map +1 -1
  119. package/build/hooks/font-size.js +4 -4
  120. package/build/hooks/font-size.js.map +1 -1
  121. package/build/hooks/index.js +1 -1
  122. package/build/hooks/index.js.map +1 -1
  123. package/build/hooks/layout.js +16 -17
  124. package/build/hooks/layout.js.map +1 -1
  125. package/build/hooks/line-height.js +3 -3
  126. package/build/hooks/line-height.js.map +1 -1
  127. package/build/hooks/metadata.js +6 -27
  128. package/build/hooks/metadata.js.map +1 -1
  129. package/build/hooks/position.js +2 -3
  130. package/build/hooks/position.js.map +1 -1
  131. package/build/hooks/use-color-props.js +3 -11
  132. package/build/hooks/use-color-props.js.map +1 -1
  133. package/build/hooks/utils.js +2 -43
  134. package/build/hooks/utils.js.map +1 -1
  135. package/build/layouts/constrained.js +3 -3
  136. package/build/layouts/constrained.js.map +1 -1
  137. package/build/layouts/grid.js +25 -3
  138. package/build/layouts/grid.js.map +1 -1
  139. package/build/layouts/utils.js +1 -1
  140. package/build/layouts/utils.js.map +1 -1
  141. package/build/lock-unlock.js +1 -1
  142. package/build/lock-unlock.js.map +1 -1
  143. package/build/store/actions.js +13 -5
  144. package/build/store/actions.js.map +1 -1
  145. package/build/utils/object.js +4 -1
  146. package/build/utils/object.js.map +1 -1
  147. package/build/utils/parse-css-unit-to-px.js +20 -0
  148. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  149. package/build/utils/pasting.js +1 -1
  150. package/build/utils/pasting.js.map +1 -1
  151. package/build/utils/transform-styles/index.js +19 -24
  152. package/build/utils/transform-styles/index.js.map +1 -1
  153. package/build-module/components/block-alignment-control/use-available-alignments.js +30 -28
  154. package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
  155. package/build-module/components/block-controls/hook.js +4 -1
  156. package/build-module/components/block-controls/hook.js.map +1 -1
  157. package/build-module/components/block-list/block-outline.native.js +1 -1
  158. package/build-module/components/block-list/block-outline.native.js.map +1 -1
  159. package/build-module/components/block-list/block.js +2 -0
  160. package/build-module/components/block-list/block.js.map +1 -1
  161. package/build-module/components/block-list/block.native.js +4 -4
  162. package/build-module/components/block-list/block.native.js.map +1 -1
  163. package/build-module/components/block-list/layout.js +2 -2
  164. package/build-module/components/block-list/layout.js.map +1 -1
  165. package/build-module/components/block-preview/index.js +4 -1
  166. package/build-module/components/block-preview/index.js.map +1 -1
  167. package/build-module/components/block-styles/index.js +1 -2
  168. package/build-module/components/block-styles/index.js.map +1 -1
  169. package/build-module/components/block-switcher/pattern-transformations-menu.js +2 -4
  170. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  171. package/build-module/components/block-tools/block-contextual-toolbar.js +1 -0
  172. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  173. package/build-module/components/border-radius-control/index.js +3 -2
  174. package/build-module/components/border-radius-control/index.js.map +1 -1
  175. package/build-module/components/color-palette/with-color-context.js +6 -5
  176. package/build-module/components/color-palette/with-color-context.js.map +1 -1
  177. package/build-module/components/colors/with-colors.js +2 -7
  178. package/build-module/components/colors/with-colors.js.map +1 -1
  179. package/build-module/components/colors-gradients/control.js +6 -7
  180. package/build-module/components/colors-gradients/control.js.map +1 -1
  181. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +5 -12
  182. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  183. package/build-module/components/dimensions-tool/index.js +22 -22
  184. package/build-module/components/dimensions-tool/index.js.map +1 -1
  185. package/build-module/components/dimensions-tool/scale-tool.js +1 -1
  186. package/build-module/components/dimensions-tool/scale-tool.js.map +1 -1
  187. package/build-module/components/font-family/index.js +2 -2
  188. package/build-module/components/font-family/index.js.map +1 -1
  189. package/build-module/components/font-sizes/font-size-picker.js +3 -4
  190. package/build-module/components/font-sizes/font-size-picker.js.map +1 -1
  191. package/build-module/components/font-sizes/with-font-sizes.js +3 -3
  192. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  193. package/build-module/components/global-styles/filters-panel.js +7 -8
  194. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  195. package/build-module/components/global-styles/image-settings-panel.js +2 -2
  196. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  197. package/build-module/components/global-styles/typography-panel.js +1 -1
  198. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  199. package/build-module/components/gradients/use-gradient.js +2 -4
  200. package/build-module/components/gradients/use-gradient.js.map +1 -1
  201. package/build-module/components/height-control/index.js +93 -4
  202. package/build-module/components/height-control/index.js.map +1 -1
  203. package/build-module/components/iframe/index.js +9 -1
  204. package/build-module/components/iframe/index.js.map +1 -1
  205. package/build-module/components/image-editor/aspect-ratio-dropdown.js +0 -6
  206. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  207. package/build-module/components/index.js +1 -1
  208. package/build-module/components/index.js.map +1 -1
  209. package/build-module/components/index.native.js +2 -1
  210. package/build-module/components/index.native.js.map +1 -1
  211. package/build-module/components/inner-blocks/index.js +2 -2
  212. package/build-module/components/inner-blocks/index.js.map +1 -1
  213. package/build-module/components/letter-spacing-control/index.js +3 -2
  214. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  215. package/build-module/components/link-control/link-preview.js +6 -3
  216. package/build-module/components/link-control/link-preview.js.map +1 -1
  217. package/build-module/components/link-control/search-item.js +12 -1
  218. package/build-module/components/link-control/search-item.js.map +1 -1
  219. package/build-module/components/link-control/search-results.js +2 -1
  220. package/build-module/components/link-control/search-results.js.map +1 -1
  221. package/build-module/components/link-control/use-internal-value.js +14 -9
  222. package/build-module/components/link-control/use-internal-value.js.map +1 -1
  223. package/build-module/components/link-control/use-search-handler.js +10 -5
  224. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  225. package/build-module/components/list-view/index.js +7 -6
  226. package/build-module/components/list-view/index.js.map +1 -1
  227. package/build-module/components/media-replace-flow/index.js +3 -5
  228. package/build-module/components/media-replace-flow/index.js.map +1 -1
  229. package/build-module/components/provider/use-block-sync.js +2 -2
  230. package/build-module/components/provider/use-block-sync.js.map +1 -1
  231. package/build-module/components/rich-text/index.js +1 -1
  232. package/build-module/components/rich-text/index.js.map +1 -1
  233. package/build-module/components/rich-text/index.native.js +15 -4
  234. package/build-module/components/rich-text/index.native.js.map +1 -1
  235. package/build-module/components/rich-text/use-delete.js +1 -1
  236. package/build-module/components/rich-text/use-delete.js.map +1 -1
  237. package/build-module/components/rich-text/use-paste-handler.js +25 -22
  238. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  239. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +6 -2
  240. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  241. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +91 -2
  242. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  243. package/build-module/components/tool-selector/index.js +1 -2
  244. package/build-module/components/tool-selector/index.js.map +1 -1
  245. package/build-module/components/unit-control/index.js +3 -2
  246. package/build-module/components/unit-control/index.js.map +1 -1
  247. package/build-module/components/use-block-commands/index.js +95 -47
  248. package/build-module/components/use-block-commands/index.js.map +1 -1
  249. package/build-module/components/use-settings/index.js +203 -0
  250. package/build-module/components/use-settings/index.js.map +1 -0
  251. package/build-module/components/writing-flow/use-arrow-nav.js +4 -0
  252. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  253. package/build-module/hooks/align.js +51 -35
  254. package/build-module/hooks/align.js.map +1 -1
  255. package/build-module/hooks/anchor.js +37 -32
  256. package/build-module/hooks/anchor.js.map +1 -1
  257. package/build-module/hooks/background.js +4 -4
  258. package/build-module/hooks/background.js.map +1 -1
  259. package/build-module/hooks/block-rename-ui.js +6 -6
  260. package/build-module/hooks/block-rename-ui.js.map +1 -1
  261. package/build-module/hooks/{metadata-name.js → block-renaming.js} +3 -6
  262. package/build-module/hooks/block-renaming.js.map +1 -0
  263. package/build-module/hooks/color.js +2 -4
  264. package/build-module/hooks/color.js.map +1 -1
  265. package/build-module/hooks/custom-class-name.js +28 -21
  266. package/build-module/hooks/custom-class-name.js.map +1 -1
  267. package/build-module/hooks/duotone.js +34 -9
  268. package/build-module/hooks/duotone.js.map +1 -1
  269. package/build-module/hooks/font-size.js +4 -4
  270. package/build-module/hooks/font-size.js.map +1 -1
  271. package/build-module/hooks/index.js +1 -1
  272. package/build-module/hooks/index.js.map +1 -1
  273. package/build-module/hooks/layout.js +16 -17
  274. package/build-module/hooks/layout.js.map +1 -1
  275. package/build-module/hooks/line-height.js +3 -3
  276. package/build-module/hooks/line-height.js.map +1 -1
  277. package/build-module/hooks/metadata.js +6 -25
  278. package/build-module/hooks/metadata.js.map +1 -1
  279. package/build-module/hooks/position.js +2 -3
  280. package/build-module/hooks/position.js.map +1 -1
  281. package/build-module/hooks/use-color-props.js +3 -11
  282. package/build-module/hooks/use-color-props.js.map +1 -1
  283. package/build-module/hooks/utils.js +3 -44
  284. package/build-module/hooks/utils.js.map +1 -1
  285. package/build-module/layouts/constrained.js +3 -2
  286. package/build-module/layouts/constrained.js.map +1 -1
  287. package/build-module/layouts/grid.js +25 -3
  288. package/build-module/layouts/grid.js.map +1 -1
  289. package/build-module/layouts/utils.js +1 -1
  290. package/build-module/layouts/utils.js.map +1 -1
  291. package/build-module/lock-unlock.js +1 -1
  292. package/build-module/lock-unlock.js.map +1 -1
  293. package/build-module/store/actions.js +14 -6
  294. package/build-module/store/actions.js.map +1 -1
  295. package/build-module/utils/object.js +3 -1
  296. package/build-module/utils/object.js.map +1 -1
  297. package/build-module/utils/parse-css-unit-to-px.js +20 -0
  298. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  299. package/build-module/utils/pasting.js +1 -1
  300. package/build-module/utils/pasting.js.map +1 -1
  301. package/build-module/utils/transform-styles/index.js +20 -24
  302. package/build-module/utils/transform-styles/index.js.map +1 -1
  303. package/build-style/style-rtl.css +24 -12
  304. package/build-style/style.css +24 -12
  305. package/package.json +36 -34
  306. package/src/components/block-alignment-control/use-available-alignments.js +49 -34
  307. package/src/components/block-controls/hook.js +6 -3
  308. package/src/components/block-list/block-outline.native.js +1 -1
  309. package/src/components/block-list/block.js +2 -0
  310. package/src/components/block-list/block.native.js +4 -4
  311. package/src/components/block-list/layout.js +2 -2
  312. package/src/components/block-preview/index.js +7 -1
  313. package/src/components/block-styles/index.js +1 -4
  314. package/src/components/block-styles/style.scss +1 -1
  315. package/src/components/block-switcher/pattern-transformations-menu.js +1 -4
  316. package/src/components/block-switcher/style.scss +6 -0
  317. package/src/components/block-tools/block-contextual-toolbar.js +1 -0
  318. package/src/components/block-tools/style.scss +0 -1
  319. package/src/components/border-radius-control/index.js +3 -2
  320. package/src/components/color-palette/test/__snapshots__/control.js.snap +3 -1
  321. package/src/components/color-palette/with-color-context.js +9 -9
  322. package/src/components/colors/with-colors.js +6 -7
  323. package/src/components/colors-gradients/control.js +10 -7
  324. package/src/components/colors-gradients/style.scss +4 -2
  325. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +29 -15
  326. package/src/components/dimensions-tool/index.js +25 -25
  327. package/src/components/dimensions-tool/scale-tool.js +1 -1
  328. package/src/components/font-family/index.js +2 -2
  329. package/src/components/font-sizes/font-size-picker.js +6 -4
  330. package/src/components/font-sizes/with-font-sizes.js +3 -5
  331. package/src/components/global-styles/filters-panel.js +9 -15
  332. package/src/components/global-styles/image-settings-panel.js +2 -2
  333. package/src/components/global-styles/typography-panel.js +1 -1
  334. package/src/components/gradients/use-gradient.js +10 -4
  335. package/src/components/height-control/index.js +53 -4
  336. package/src/components/iframe/index.js +8 -1
  337. package/src/components/image-editor/aspect-ratio-dropdown.js +0 -8
  338. package/src/components/index.js +1 -1
  339. package/src/components/index.native.js +2 -1
  340. package/src/components/inner-blocks/index.js +2 -2
  341. package/src/components/inserter/style.scss +9 -1
  342. package/src/components/letter-spacing-control/index.js +3 -2
  343. package/src/components/link-control/README.md +43 -0
  344. package/src/components/link-control/link-preview.js +11 -5
  345. package/src/components/link-control/search-item.js +14 -0
  346. package/src/components/link-control/search-results.js +1 -0
  347. package/src/components/link-control/style.scss +3 -3
  348. package/src/components/link-control/test/index.js +19 -0
  349. package/src/components/link-control/use-internal-value.js +14 -10
  350. package/src/components/link-control/use-search-handler.js +22 -15
  351. package/src/components/list-view/index.js +13 -3
  352. package/src/components/media-replace-flow/index.js +9 -14
  353. package/src/components/provider/test/use-block-sync.js +1 -1
  354. package/src/components/provider/use-block-sync.js +2 -2
  355. package/src/components/rich-text/index.js +1 -1
  356. package/src/components/rich-text/index.native.js +19 -3
  357. package/src/components/rich-text/use-delete.js +1 -1
  358. package/src/components/rich-text/use-paste-handler.js +27 -24
  359. package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +7 -5
  360. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +25 -2
  361. package/src/components/tool-selector/index.js +1 -1
  362. package/src/components/unit-control/index.js +3 -8
  363. package/src/components/use-block-commands/index.js +93 -47
  364. package/src/components/{use-setting → use-settings}/README.md +9 -10
  365. package/src/components/use-settings/index.js +272 -0
  366. package/src/components/{use-setting → use-settings}/test/index.js +47 -5
  367. package/src/components/writing-flow/use-arrow-nav.js +4 -0
  368. package/src/hooks/align.js +79 -54
  369. package/src/hooks/anchor.js +75 -65
  370. package/src/hooks/background.js +7 -9
  371. package/src/hooks/block-rename-ui.js +5 -14
  372. package/src/hooks/{metadata-name.js → block-renaming.js} +4 -7
  373. package/src/hooks/color.js +7 -4
  374. package/src/hooks/custom-class-name.js +36 -31
  375. package/src/hooks/duotone.js +51 -14
  376. package/src/hooks/font-size.js +4 -4
  377. package/src/hooks/index.js +1 -1
  378. package/src/hooks/layout.js +17 -17
  379. package/src/hooks/line-height.js +3 -3
  380. package/src/hooks/metadata.js +6 -38
  381. package/src/hooks/position.js +5 -3
  382. package/src/hooks/use-color-props.js +21 -14
  383. package/src/hooks/utils.js +90 -43
  384. package/src/layouts/constrained.js +3 -8
  385. package/src/layouts/grid.js +50 -2
  386. package/src/layouts/utils.js +2 -1
  387. package/src/lock-unlock.js +1 -1
  388. package/src/store/actions.js +25 -8
  389. package/src/utils/object.js +4 -1
  390. package/src/utils/parse-css-unit-to-px.js +20 -0
  391. package/src/utils/pasting.js +1 -4
  392. package/src/utils/test/__snapshots__/transform-styles.js.snap +103 -0
  393. package/src/utils/test/pasting.js +12 -19
  394. package/src/utils/test/transform-styles.js +217 -0
  395. package/src/utils/transform-styles/index.js +25 -25
  396. package/build/components/use-setting/index.js +0 -159
  397. package/build/components/use-setting/index.js.map +0 -1
  398. package/build/hooks/metadata-name.js.map +0 -1
  399. package/build/utils/transform-styles/ast/index.js +0 -21
  400. package/build/utils/transform-styles/ast/index.js.map +0 -1
  401. package/build/utils/transform-styles/ast/parse.js +0 -660
  402. package/build/utils/transform-styles/ast/parse.js.map +0 -1
  403. package/build/utils/transform-styles/ast/stringify/compiler.js +0 -52
  404. package/build/utils/transform-styles/ast/stringify/compiler.js.map +0 -1
  405. package/build/utils/transform-styles/ast/stringify/compress.js +0 -178
  406. package/build/utils/transform-styles/ast/stringify/compress.js.map +0 -1
  407. package/build/utils/transform-styles/ast/stringify/identity.js +0 -207
  408. package/build/utils/transform-styles/ast/stringify/identity.js.map +0 -1
  409. package/build/utils/transform-styles/ast/stringify/index.js +0 -36
  410. package/build/utils/transform-styles/ast/stringify/index.js.map +0 -1
  411. package/build/utils/transform-styles/transforms/url-rewrite.js +0 -130
  412. package/build/utils/transform-styles/transforms/url-rewrite.js.map +0 -1
  413. package/build/utils/transform-styles/transforms/wrap.js +0 -59
  414. package/build/utils/transform-styles/transforms/wrap.js.map +0 -1
  415. package/build/utils/transform-styles/traverse.js +0 -37
  416. package/build/utils/transform-styles/traverse.js.map +0 -1
  417. package/build-module/components/use-setting/index.js +0 -152
  418. package/build-module/components/use-setting/index.js.map +0 -1
  419. package/build-module/hooks/metadata-name.js.map +0 -1
  420. package/build-module/utils/transform-styles/ast/index.js +0 -6
  421. package/build-module/utils/transform-styles/ast/index.js.map +0 -1
  422. package/build-module/utils/transform-styles/ast/parse.js +0 -654
  423. package/build-module/utils/transform-styles/ast/parse.js.map +0 -1
  424. package/build-module/utils/transform-styles/ast/stringify/compiler.js +0 -49
  425. package/build-module/utils/transform-styles/ast/stringify/compiler.js.map +0 -1
  426. package/build-module/utils/transform-styles/ast/stringify/compress.js +0 -176
  427. package/build-module/utils/transform-styles/ast/stringify/compress.js.map +0 -1
  428. package/build-module/utils/transform-styles/ast/stringify/identity.js +0 -206
  429. package/build-module/utils/transform-styles/ast/stringify/identity.js.map +0 -1
  430. package/build-module/utils/transform-styles/ast/stringify/index.js +0 -29
  431. package/build-module/utils/transform-styles/ast/stringify/index.js.map +0 -1
  432. package/build-module/utils/transform-styles/transforms/url-rewrite.js +0 -123
  433. package/build-module/utils/transform-styles/transforms/url-rewrite.js.map +0 -1
  434. package/build-module/utils/transform-styles/transforms/wrap.js +0 -52
  435. package/build-module/utils/transform-styles/transforms/wrap.js.map +0 -1
  436. package/build-module/utils/transform-styles/traverse.js +0 -28
  437. package/build-module/utils/transform-styles/traverse.js.map +0 -1
  438. package/src/components/use-setting/index.js +0 -213
  439. package/src/utils/transform-styles/ast/index.js +0 -5
  440. package/src/utils/transform-styles/ast/parse.js +0 -732
  441. package/src/utils/transform-styles/ast/stringify/compiler.js +0 -50
  442. package/src/utils/transform-styles/ast/stringify/compress.js +0 -238
  443. package/src/utils/transform-styles/ast/stringify/identity.js +0 -286
  444. package/src/utils/transform-styles/ast/stringify/index.js +0 -32
  445. package/src/utils/transform-styles/test/__snapshots__/traverse.js.snap +0 -7
  446. package/src/utils/transform-styles/test/traverse.js +0 -24
  447. package/src/utils/transform-styles/transforms/test/__snapshots__/url-rewrite.js.snap +0 -25
  448. package/src/utils/transform-styles/transforms/test/__snapshots__/wrap.js.snap +0 -64
  449. package/src/utils/transform-styles/transforms/test/url-rewrite.js +0 -39
  450. package/src/utils/transform-styles/transforms/test/wrap.js +0 -95
  451. package/src/utils/transform-styles/transforms/url-rewrite.js +0 -139
  452. package/src/utils/transform-styles/transforms/wrap.js +0 -56
  453. package/src/utils/transform-styles/traverse.js +0 -32
@@ -1,14 +1,17 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.useTransformCommands = exports.useBlockCommands = void 0;
8
+ var _react = require("react");
7
9
  var _i18n = require("@wordpress/i18n");
8
10
  var _blocks = require("@wordpress/blocks");
9
11
  var _data = require("@wordpress/data");
10
12
  var _commands = require("@wordpress/commands");
11
13
  var _icons = require("@wordpress/icons");
14
+ var _blockIcon = _interopRequireDefault(require("../block-icon"));
12
15
  var _store = require("../../store");
13
16
  /**
14
17
  * WordPress dependencies
@@ -86,7 +89,9 @@ const useTransformCommands = () => {
86
89
  name: 'core/block-editor/transform-to-' + name.replace('/', '-'),
87
90
  // translators: %s: block title/name.
88
91
  label: (0, _i18n.sprintf)((0, _i18n.__)('Transform to %s'), title),
89
- icon: icon.src,
92
+ icon: (0, _react.createElement)(_blockIcon.default, {
93
+ icon: icon
94
+ }),
90
95
  callback: ({
91
96
  close
92
97
  }) => {
@@ -102,6 +107,63 @@ const useTransformCommands = () => {
102
107
  };
103
108
  exports.useTransformCommands = useTransformCommands;
104
109
  const useActionsCommands = () => {
110
+ const {
111
+ clientIds
112
+ } = (0, _data.useSelect)(select => {
113
+ const {
114
+ getSelectedBlockClientIds
115
+ } = select(_store.store);
116
+ const selectedBlockClientIds = getSelectedBlockClientIds();
117
+ return {
118
+ clientIds: selectedBlockClientIds
119
+ };
120
+ }, []);
121
+ const {
122
+ getBlockRootClientId,
123
+ canMoveBlocks,
124
+ getBlockCount
125
+ } = (0, _data.useSelect)(_store.store);
126
+ const {
127
+ setBlockMovingClientId,
128
+ setNavigationMode,
129
+ selectBlock
130
+ } = (0, _data.useDispatch)(_store.store);
131
+ if (!clientIds || clientIds.length < 1) {
132
+ return {
133
+ isLoading: false,
134
+ commands: []
135
+ };
136
+ }
137
+ const rootClientId = getBlockRootClientId(clientIds[0]);
138
+ const canMove = canMoveBlocks(clientIds, rootClientId) && getBlockCount(rootClientId) !== 1;
139
+ const commands = [];
140
+ if (canMove) {
141
+ commands.push({
142
+ name: 'move-to',
143
+ label: (0, _i18n.__)('Move to'),
144
+ callback: () => {
145
+ setNavigationMode(true);
146
+ selectBlock(clientIds[0]);
147
+ setBlockMovingClientId(clientIds[0]);
148
+ },
149
+ icon: _icons.moveTo
150
+ });
151
+ }
152
+ return {
153
+ isLoading: false,
154
+ commands: commands.map(command => ({
155
+ ...command,
156
+ name: 'core/block-editor/action-' + command.name,
157
+ callback: ({
158
+ close
159
+ }) => {
160
+ command.callback();
161
+ close();
162
+ }
163
+ }))
164
+ };
165
+ };
166
+ const useQuickActionsCommands = () => {
105
167
  const {
106
168
  clientIds,
107
169
  isUngroupable,
@@ -123,9 +185,7 @@ const useActionsCommands = () => {
123
185
  canInsertBlockType,
124
186
  getBlockRootClientId,
125
187
  getBlocksByClientId,
126
- canMoveBlocks,
127
- canRemoveBlocks,
128
- getBlockCount
188
+ canRemoveBlocks
129
189
  } = (0, _data.useSelect)(_store.store);
130
190
  const {
131
191
  getDefaultBlockName,
@@ -137,10 +197,7 @@ const useActionsCommands = () => {
137
197
  replaceBlocks,
138
198
  duplicateBlocks,
139
199
  insertAfterBlock,
140
- insertBeforeBlock,
141
- setBlockMovingClientId,
142
- setNavigationMode,
143
- selectBlock
200
+ insertBeforeBlock
144
201
  } = (0, _data.useDispatch)(_store.store);
145
202
  const onGroup = () => {
146
203
  if (!blocks.length) {
@@ -177,18 +234,17 @@ const useActionsCommands = () => {
177
234
  return !!block && (0, _blocks.hasBlockSupport)(block.name, 'multiple', true) && canInsertBlockType(block.name, rootClientId);
178
235
  });
179
236
  const canRemove = canRemoveBlocks(clientIds, rootClientId);
180
- const canMove = canMoveBlocks(clientIds, rootClientId) && getBlockCount(rootClientId) !== 1;
181
237
  const commands = [];
238
+ if (canDuplicate) {
239
+ commands.push({
240
+ name: 'duplicate',
241
+ label: (0, _i18n.__)('Duplicate'),
242
+ callback: () => duplicateBlocks(clientIds, true),
243
+ icon: _icons.copy
244
+ });
245
+ }
182
246
  if (canInsertDefaultBlock) {
183
247
  commands.push({
184
- name: 'add-after',
185
- label: (0, _i18n.__)('Add after'),
186
- callback: () => {
187
- const clientId = Array.isArray(clientIds) ? clientIds[clientIds.length - 1] : clientId;
188
- insertAfterBlock(clientId);
189
- },
190
- icon: _icons.plus
191
- }, {
192
248
  name: 'add-before',
193
249
  label: (0, _i18n.__)('Add before'),
194
250
  callback: () => {
@@ -196,34 +252,22 @@ const useActionsCommands = () => {
196
252
  insertBeforeBlock(clientId);
197
253
  },
198
254
  icon: _icons.plus
255
+ }, {
256
+ name: 'add-after',
257
+ label: (0, _i18n.__)('Add after'),
258
+ callback: () => {
259
+ const clientId = Array.isArray(clientIds) ? clientIds[clientIds.length - 1] : clientId;
260
+ insertAfterBlock(clientId);
261
+ },
262
+ icon: _icons.plus
199
263
  });
200
264
  }
201
- if (canRemove) {
202
- commands.push({
203
- name: 'remove',
204
- label: (0, _i18n.__)('Delete'),
205
- callback: () => removeBlocks(clientIds, true),
206
- icon: _icons.trash
207
- });
208
- }
209
- if (canDuplicate) {
210
- commands.push({
211
- name: 'duplicate',
212
- label: (0, _i18n.__)('Duplicate'),
213
- callback: () => duplicateBlocks(clientIds, true),
214
- icon: _icons.copy
215
- });
216
- }
217
- if (canMove) {
265
+ if (isGroupable) {
218
266
  commands.push({
219
- name: 'move-to',
220
- label: (0, _i18n.__)('Move to'),
221
- callback: () => {
222
- setNavigationMode(true);
223
- selectBlock(clientIds[0]);
224
- setBlockMovingClientId(clientIds[0]);
225
- },
226
- icon: _icons.moveTo
267
+ name: 'Group',
268
+ label: (0, _i18n.__)('Group'),
269
+ callback: onGroup,
270
+ icon: _icons.group
227
271
  });
228
272
  }
229
273
  if (isUngroupable) {
@@ -234,12 +278,12 @@ const useActionsCommands = () => {
234
278
  icon: _icons.ungroup
235
279
  });
236
280
  }
237
- if (isGroupable) {
281
+ if (canRemove) {
238
282
  commands.push({
239
- name: 'Group',
240
- label: (0, _i18n.__)('Group'),
241
- callback: onGroup,
242
- icon: _icons.group
283
+ name: 'remove',
284
+ label: (0, _i18n.__)('Delete'),
285
+ callback: () => removeBlocks(clientIds, true),
286
+ icon: _icons.trash
243
287
  });
244
288
  }
245
289
  return {
@@ -265,6 +309,11 @@ const useBlockCommands = () => {
265
309
  name: 'core/block-editor/blockActions',
266
310
  hook: useActionsCommands
267
311
  });
312
+ (0, _commands.useCommandLoader)({
313
+ name: 'core/block-editor/blockQuickActions',
314
+ hook: useQuickActionsCommands,
315
+ context: 'block-selection-edit'
316
+ });
268
317
  };
269
318
  exports.useBlockCommands = useBlockCommands;
270
319
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_blocks","_data","_commands","_icons","_store","useTransformCommands","clientIds","useSelect","select","getSelectedBlockClientIds","blockEditorStore","selectedBlockClientIds","blocks","getBlocksByClientId","replaceBlocks","multiSelect","useDispatch","possibleBlockTransformations","canRemove","getBlockRootClientId","getBlockTransformItems","canRemoveBlocks","rootClientId","Array","isArray","isTemplate","length","isTemplatePart","selectForMultipleBlocks","insertedBlocks","clientId","onBlockTransform","name","newBlocks","switchToBlockType","hasPossibleBlockTransformations","isLoading","commands","map","transformation","title","icon","replace","label","sprintf","__","src","callback","close","exports","useActionsCommands","isUngroupable","isGroupable","_isUngroupable","_isGroupable","canInsertBlockType","canMoveBlocks","getBlockCount","getDefaultBlockName","getGroupingBlockName","blocksStore","removeBlocks","duplicateBlocks","insertAfterBlock","insertBeforeBlock","setBlockMovingClientId","setNavigationMode","selectBlock","onGroup","groupingBlockName","onUngroup","innerBlocks","canInsertDefaultBlock","canDuplicate","every","block","hasBlockSupport","canMove","push","add","remove","copy","move","ungroup","group","command","useBlockCommands","useCommandLoader","hook"],"sources":["@wordpress/block-editor/src/components/use-block-commands/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\thasBlockSupport,\n\tstore as blocksStore,\n\tswitchToBlockType,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCommandLoader } from '@wordpress/commands';\nimport {\n\tcopy,\n\ttrash as remove,\n\tplus as add,\n\tgroup,\n\tungroup,\n\tmoveTo as move,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nexport const useTransformCommands = () => {\n\tconst { clientIds } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlockClientIds } = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t};\n\t}, [] );\n\tconst blocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlocksByClientId( clientIds ),\n\t\t[ clientIds ]\n\t);\n\tconst { replaceBlocks, multiSelect } = useDispatch( blockEditorStore );\n\tconst { possibleBlockTransformations, canRemove } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockTransformItems,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\tArray.isArray( clientIds ) ? clientIds[ 0 ] : clientIds\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\t\tblocks,\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds, rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds, blocks ]\n\t);\n\n\tconst isTemplate = blocks.length === 1 && isTemplatePart( blocks[ 0 ] );\n\n\tfunction selectForMultipleBlocks( insertedBlocks ) {\n\t\tif ( insertedBlocks.length > 1 ) {\n\t\t\tmultiSelect(\n\t\t\t\tinsertedBlocks[ 0 ].clientId,\n\t\t\t\tinsertedBlocks[ insertedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}\n\n\t// Simple block tranformation based on the `Block Transforms` API.\n\tfunction onBlockTransform( name ) {\n\t\tconst newBlocks = switchToBlockType( blocks, name );\n\t\treplaceBlocks( clientIds, newBlocks );\n\t\tselectForMultipleBlocks( newBlocks );\n\t}\n\n\t/**\n\t * The `isTemplate` check is a stopgap solution here.\n\t * Ideally, the Transforms API should handle this\n\t * by allowing to exclude blocks from wildcard transformations.\n\t */\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations.length && canRemove && ! isTemplate;\n\n\tif (\n\t\t! clientIds ||\n\t\tclientIds.length < 1 ||\n\t\t! hasPossibleBlockTransformations\n\t) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst commands = possibleBlockTransformations.map( ( transformation ) => {\n\t\tconst { name, title, icon } = transformation;\n\t\treturn {\n\t\t\tname: 'core/block-editor/transform-to-' + name.replace( '/', '-' ),\n\t\t\t// translators: %s: block title/name.\n\t\t\tlabel: sprintf( __( 'Transform to %s' ), title ),\n\t\t\ticon: icon.src,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tonBlockTransform( name );\n\t\t\t\tclose();\n\t\t\t},\n\t\t};\n\t} );\n\n\treturn { isLoading: false, commands };\n};\n\nconst useActionsCommands = () => {\n\tconst { clientIds, isUngroupable, isGroupable } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisUngroupable: _isUngroupable,\n\t\t\tisGroupable: _isGroupable,\n\t\t} = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t\tisUngroupable: _isUngroupable(),\n\t\t\tisGroupable: _isGroupable(),\n\t\t};\n\t}, [] );\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t\tgetBlocksByClientId,\n\t\tcanMoveBlocks,\n\t\tcanRemoveBlocks,\n\t\tgetBlockCount,\n\t} = useSelect( blockEditorStore );\n\tconst { getDefaultBlockName, getGroupingBlockName } =\n\t\tuseSelect( blocksStore );\n\n\tconst blocks = getBlocksByClientId( clientIds );\n\n\tconst {\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tduplicateBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tsetBlockMovingClientId,\n\t\tsetNavigationMode,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst onGroup = () => {\n\t\tif ( ! blocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst groupingBlockName = getGroupingBlockName();\n\n\t\t// Activate the `transform` on `core/group` which does the conversion.\n\t\tconst newBlocks = switchToBlockType( blocks, groupingBlockName );\n\n\t\tif ( ! newBlocks ) {\n\t\t\treturn;\n\t\t}\n\t\treplaceBlocks( clientIds, newBlocks );\n\t};\n\tconst onUngroup = () => {\n\t\tif ( ! blocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerBlocks = blocks[ 0 ].innerBlocks;\n\n\t\tif ( ! innerBlocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\treplaceBlocks( clientIds, innerBlocks );\n\t};\n\n\tif ( ! clientIds || clientIds.length < 1 ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\tconst canInsertDefaultBlock = canInsertBlockType(\n\t\tgetDefaultBlockName(),\n\t\trootClientId\n\t);\n\tconst canDuplicate = blocks.every( ( block ) => {\n\t\treturn (\n\t\t\t!! block &&\n\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t);\n\t} );\n\tconst canRemove = canRemoveBlocks( clientIds, rootClientId );\n\tconst canMove =\n\t\tcanMoveBlocks( clientIds, rootClientId ) &&\n\t\tgetBlockCount( rootClientId ) !== 1;\n\n\tconst commands = [];\n\tif ( canInsertDefaultBlock ) {\n\t\tcommands.push(\n\t\t\t{\n\t\t\t\tname: 'add-after',\n\t\t\t\tlabel: __( 'Add after' ),\n\t\t\t\tcallback: () => {\n\t\t\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t\t\t? clientIds[ clientIds.length - 1 ]\n\t\t\t\t\t\t: clientId;\n\t\t\t\t\tinsertAfterBlock( clientId );\n\t\t\t\t},\n\t\t\t\ticon: add,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'add-before',\n\t\t\t\tlabel: __( 'Add before' ),\n\t\t\t\tcallback: () => {\n\t\t\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t\t\t? clientIds[ 0 ]\n\t\t\t\t\t\t: clientId;\n\t\t\t\t\tinsertBeforeBlock( clientId );\n\t\t\t\t},\n\t\t\t\ticon: add,\n\t\t\t}\n\t\t);\n\t}\n\tif ( canRemove ) {\n\t\tcommands.push( {\n\t\t\tname: 'remove',\n\t\t\tlabel: __( 'Delete' ),\n\t\t\tcallback: () => removeBlocks( clientIds, true ),\n\t\t\ticon: remove,\n\t\t} );\n\t}\n\tif ( canDuplicate ) {\n\t\tcommands.push( {\n\t\t\tname: 'duplicate',\n\t\t\tlabel: __( 'Duplicate' ),\n\t\t\tcallback: () => duplicateBlocks( clientIds, true ),\n\t\t\ticon: copy,\n\t\t} );\n\t}\n\tif ( canMove ) {\n\t\tcommands.push( {\n\t\t\tname: 'move-to',\n\t\t\tlabel: __( 'Move to' ),\n\t\t\tcallback: () => {\n\t\t\t\tsetNavigationMode( true );\n\t\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\t\tsetBlockMovingClientId( clientIds[ 0 ] );\n\t\t\t},\n\t\t\ticon: move,\n\t\t} );\n\t}\n\tif ( isUngroupable ) {\n\t\tcommands.push( {\n\t\t\tname: 'ungroup',\n\t\t\tlabel: __( 'Ungroup' ),\n\t\t\tcallback: onUngroup,\n\t\t\ticon: ungroup,\n\t\t} );\n\t}\n\tif ( isGroupable ) {\n\t\tcommands.push( {\n\t\t\tname: 'Group',\n\t\t\tlabel: __( 'Group' ),\n\t\t\tcallback: onGroup,\n\t\t\ticon: group,\n\t\t} );\n\t}\n\treturn {\n\t\tisLoading: false,\n\t\tcommands: commands.map( ( command ) => ( {\n\t\t\t...command,\n\t\t\tname: 'core/block-editor/action-' + command.name,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tcommand.callback();\n\t\t\t\tclose();\n\t\t\t},\n\t\t} ) ),\n\t};\n};\n\nexport const useBlockCommands = () => {\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockTransforms',\n\t\thook: useTransformCommands,\n\t} );\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockActions',\n\t\thook: useActionsCommands,\n\t} );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_blocks","_data","_commands","_icons","_blockIcon","_interopRequireDefault","_store","useTransformCommands","clientIds","useSelect","select","getSelectedBlockClientIds","blockEditorStore","selectedBlockClientIds","blocks","getBlocksByClientId","replaceBlocks","multiSelect","useDispatch","possibleBlockTransformations","canRemove","getBlockRootClientId","getBlockTransformItems","canRemoveBlocks","rootClientId","Array","isArray","isTemplate","length","isTemplatePart","selectForMultipleBlocks","insertedBlocks","clientId","onBlockTransform","name","newBlocks","switchToBlockType","hasPossibleBlockTransformations","isLoading","commands","map","transformation","title","icon","replace","label","sprintf","__","_react","createElement","default","callback","close","exports","useActionsCommands","canMoveBlocks","getBlockCount","setBlockMovingClientId","setNavigationMode","selectBlock","canMove","push","move","command","useQuickActionsCommands","isUngroupable","isGroupable","_isUngroupable","_isGroupable","canInsertBlockType","getDefaultBlockName","getGroupingBlockName","blocksStore","removeBlocks","duplicateBlocks","insertAfterBlock","insertBeforeBlock","onGroup","groupingBlockName","onUngroup","innerBlocks","canInsertDefaultBlock","canDuplicate","every","block","hasBlockSupport","copy","add","group","ungroup","remove","useBlockCommands","useCommandLoader","hook","context"],"sources":["@wordpress/block-editor/src/components/use-block-commands/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\thasBlockSupport,\n\tstore as blocksStore,\n\tswitchToBlockType,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCommandLoader } from '@wordpress/commands';\nimport {\n\tcopy,\n\ttrash as remove,\n\tplus as add,\n\tgroup,\n\tungroup,\n\tmoveTo as move,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\n\nexport const useTransformCommands = () => {\n\tconst { clientIds } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlockClientIds } = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t};\n\t}, [] );\n\tconst blocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlocksByClientId( clientIds ),\n\t\t[ clientIds ]\n\t);\n\tconst { replaceBlocks, multiSelect } = useDispatch( blockEditorStore );\n\tconst { possibleBlockTransformations, canRemove } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockTransformItems,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\tArray.isArray( clientIds ) ? clientIds[ 0 ] : clientIds\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\t\tblocks,\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds, rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds, blocks ]\n\t);\n\n\tconst isTemplate = blocks.length === 1 && isTemplatePart( blocks[ 0 ] );\n\n\tfunction selectForMultipleBlocks( insertedBlocks ) {\n\t\tif ( insertedBlocks.length > 1 ) {\n\t\t\tmultiSelect(\n\t\t\t\tinsertedBlocks[ 0 ].clientId,\n\t\t\t\tinsertedBlocks[ insertedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}\n\n\t// Simple block tranformation based on the `Block Transforms` API.\n\tfunction onBlockTransform( name ) {\n\t\tconst newBlocks = switchToBlockType( blocks, name );\n\t\treplaceBlocks( clientIds, newBlocks );\n\t\tselectForMultipleBlocks( newBlocks );\n\t}\n\n\t/**\n\t * The `isTemplate` check is a stopgap solution here.\n\t * Ideally, the Transforms API should handle this\n\t * by allowing to exclude blocks from wildcard transformations.\n\t */\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations.length && canRemove && ! isTemplate;\n\n\tif (\n\t\t! clientIds ||\n\t\tclientIds.length < 1 ||\n\t\t! hasPossibleBlockTransformations\n\t) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst commands = possibleBlockTransformations.map( ( transformation ) => {\n\t\tconst { name, title, icon } = transformation;\n\t\treturn {\n\t\t\tname: 'core/block-editor/transform-to-' + name.replace( '/', '-' ),\n\t\t\t// translators: %s: block title/name.\n\t\t\tlabel: sprintf( __( 'Transform to %s' ), title ),\n\t\t\ticon: <BlockIcon icon={ icon } />,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tonBlockTransform( name );\n\t\t\t\tclose();\n\t\t\t},\n\t\t};\n\t} );\n\n\treturn { isLoading: false, commands };\n};\n\nconst useActionsCommands = () => {\n\tconst { clientIds } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlockClientIds } = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t};\n\t}, [] );\n\n\tconst { getBlockRootClientId, canMoveBlocks, getBlockCount } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { setBlockMovingClientId, setNavigationMode, selectBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tif ( ! clientIds || clientIds.length < 1 ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\n\tconst canMove =\n\t\tcanMoveBlocks( clientIds, rootClientId ) &&\n\t\tgetBlockCount( rootClientId ) !== 1;\n\n\tconst commands = [];\n\n\tif ( canMove ) {\n\t\tcommands.push( {\n\t\t\tname: 'move-to',\n\t\t\tlabel: __( 'Move to' ),\n\t\t\tcallback: () => {\n\t\t\t\tsetNavigationMode( true );\n\t\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\t\tsetBlockMovingClientId( clientIds[ 0 ] );\n\t\t\t},\n\t\t\ticon: move,\n\t\t} );\n\t}\n\n\treturn {\n\t\tisLoading: false,\n\t\tcommands: commands.map( ( command ) => ( {\n\t\t\t...command,\n\t\t\tname: 'core/block-editor/action-' + command.name,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tcommand.callback();\n\t\t\t\tclose();\n\t\t\t},\n\t\t} ) ),\n\t};\n};\n\nconst useQuickActionsCommands = () => {\n\tconst { clientIds, isUngroupable, isGroupable } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisUngroupable: _isUngroupable,\n\t\t\tisGroupable: _isGroupable,\n\t\t} = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t\tisUngroupable: _isUngroupable(),\n\t\t\tisGroupable: _isGroupable(),\n\t\t};\n\t}, [] );\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t\tgetBlocksByClientId,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { getDefaultBlockName, getGroupingBlockName } =\n\t\tuseSelect( blocksStore );\n\n\tconst blocks = getBlocksByClientId( clientIds );\n\n\tconst {\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tduplicateBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst onGroup = () => {\n\t\tif ( ! blocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst groupingBlockName = getGroupingBlockName();\n\n\t\t// Activate the `transform` on `core/group` which does the conversion.\n\t\tconst newBlocks = switchToBlockType( blocks, groupingBlockName );\n\n\t\tif ( ! newBlocks ) {\n\t\t\treturn;\n\t\t}\n\t\treplaceBlocks( clientIds, newBlocks );\n\t};\n\tconst onUngroup = () => {\n\t\tif ( ! blocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerBlocks = blocks[ 0 ].innerBlocks;\n\n\t\tif ( ! innerBlocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\treplaceBlocks( clientIds, innerBlocks );\n\t};\n\n\tif ( ! clientIds || clientIds.length < 1 ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\tconst canInsertDefaultBlock = canInsertBlockType(\n\t\tgetDefaultBlockName(),\n\t\trootClientId\n\t);\n\tconst canDuplicate = blocks.every( ( block ) => {\n\t\treturn (\n\t\t\t!! block &&\n\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t);\n\t} );\n\tconst canRemove = canRemoveBlocks( clientIds, rootClientId );\n\n\tconst commands = [];\n\n\tif ( canDuplicate ) {\n\t\tcommands.push( {\n\t\t\tname: 'duplicate',\n\t\t\tlabel: __( 'Duplicate' ),\n\t\t\tcallback: () => duplicateBlocks( clientIds, true ),\n\t\t\ticon: copy,\n\t\t} );\n\t}\n\n\tif ( canInsertDefaultBlock ) {\n\t\tcommands.push(\n\t\t\t{\n\t\t\t\tname: 'add-before',\n\t\t\t\tlabel: __( 'Add before' ),\n\t\t\t\tcallback: () => {\n\t\t\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t\t\t? clientIds[ 0 ]\n\t\t\t\t\t\t: clientId;\n\t\t\t\t\tinsertBeforeBlock( clientId );\n\t\t\t\t},\n\t\t\t\ticon: add,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'add-after',\n\t\t\t\tlabel: __( 'Add after' ),\n\t\t\t\tcallback: () => {\n\t\t\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t\t\t? clientIds[ clientIds.length - 1 ]\n\t\t\t\t\t\t: clientId;\n\t\t\t\t\tinsertAfterBlock( clientId );\n\t\t\t\t},\n\t\t\t\ticon: add,\n\t\t\t}\n\t\t);\n\t}\n\n\tif ( isGroupable ) {\n\t\tcommands.push( {\n\t\t\tname: 'Group',\n\t\t\tlabel: __( 'Group' ),\n\t\t\tcallback: onGroup,\n\t\t\ticon: group,\n\t\t} );\n\t}\n\n\tif ( isUngroupable ) {\n\t\tcommands.push( {\n\t\t\tname: 'ungroup',\n\t\t\tlabel: __( 'Ungroup' ),\n\t\t\tcallback: onUngroup,\n\t\t\ticon: ungroup,\n\t\t} );\n\t}\n\n\tif ( canRemove ) {\n\t\tcommands.push( {\n\t\t\tname: 'remove',\n\t\t\tlabel: __( 'Delete' ),\n\t\t\tcallback: () => removeBlocks( clientIds, true ),\n\t\t\ticon: remove,\n\t\t} );\n\t}\n\n\treturn {\n\t\tisLoading: false,\n\t\tcommands: commands.map( ( command ) => ( {\n\t\t\t...command,\n\t\t\tname: 'core/block-editor/action-' + command.name,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tcommand.callback();\n\t\t\t\tclose();\n\t\t\t},\n\t\t} ) ),\n\t};\n};\n\nexport const useBlockCommands = () => {\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockTransforms',\n\t\thook: useTransformCommands,\n\t} );\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockActions',\n\t\thook: useActionsCommands,\n\t} );\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockQuickActions',\n\t\thook: useQuickActionsCommands,\n\t\tcontext: 'block-selection-edit',\n\t} );\n};\n"],"mappings":"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"}
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useSetting = useSetting;
8
+ exports.useSettings = useSettings;
9
+ var _blocks = require("@wordpress/blocks");
10
+ var _data = require("@wordpress/data");
11
+ var _deprecated = _interopRequireDefault(require("@wordpress/deprecated"));
12
+ var _element = require("@wordpress/element");
13
+ var _hooks = require("@wordpress/hooks");
14
+ var _blockEdit = require("../block-edit");
15
+ var _store = require("../../store");
16
+ var _object = require("../../utils/object");
17
+ /**
18
+ * WordPress dependencies
19
+ */
20
+
21
+ /**
22
+ * Internal dependencies
23
+ */
24
+
25
+ const blockedPaths = ['color', 'border', 'dimensions', 'typography', 'spacing'];
26
+ const deprecatedFlags = {
27
+ 'color.palette': settings => settings.colors,
28
+ 'color.gradients': settings => settings.gradients,
29
+ 'color.custom': settings => settings.disableCustomColors === undefined ? undefined : !settings.disableCustomColors,
30
+ 'color.customGradient': settings => settings.disableCustomGradients === undefined ? undefined : !settings.disableCustomGradients,
31
+ 'typography.fontSizes': settings => settings.fontSizes,
32
+ 'typography.customFontSize': settings => settings.disableCustomFontSizes === undefined ? undefined : !settings.disableCustomFontSizes,
33
+ 'typography.lineHeight': settings => settings.enableCustomLineHeight,
34
+ 'spacing.units': settings => {
35
+ if (settings.enableCustomUnits === undefined) {
36
+ return;
37
+ }
38
+ if (settings.enableCustomUnits === true) {
39
+ return ['px', 'em', 'rem', 'vh', 'vw', '%'];
40
+ }
41
+ return settings.enableCustomUnits;
42
+ },
43
+ 'spacing.padding': settings => settings.enableCustomSpacing
44
+ };
45
+ const prefixedFlags = {
46
+ /*
47
+ * These were only available in the plugin
48
+ * and can be removed when the minimum WordPress version
49
+ * for the plugin is 5.9.
50
+ */
51
+ 'border.customColor': 'border.color',
52
+ 'border.customStyle': 'border.style',
53
+ 'border.customWidth': 'border.width',
54
+ 'typography.customFontStyle': 'typography.fontStyle',
55
+ 'typography.customFontWeight': 'typography.fontWeight',
56
+ 'typography.customLetterSpacing': 'typography.letterSpacing',
57
+ 'typography.customTextDecorations': 'typography.textDecoration',
58
+ 'typography.customTextTransforms': 'typography.textTransform',
59
+ /*
60
+ * These were part of WordPress 5.8 and we need to keep them.
61
+ */
62
+ 'border.customRadius': 'border.radius',
63
+ 'spacing.customMargin': 'spacing.margin',
64
+ 'spacing.customPadding': 'spacing.padding',
65
+ 'typography.customLineHeight': 'typography.lineHeight'
66
+ };
67
+
68
+ /**
69
+ * Remove `custom` prefixes for flags that did not land in 5.8.
70
+ *
71
+ * This provides continued support for `custom` prefixed properties. It will
72
+ * be removed once third party devs have had sufficient time to update themes,
73
+ * plugins, etc.
74
+ *
75
+ * @see https://github.com/WordPress/gutenberg/pull/34485
76
+ *
77
+ * @param {string} path Path to desired value in settings.
78
+ * @return {string} The value for defined setting.
79
+ */
80
+ const removeCustomPrefixes = path => {
81
+ return prefixedFlags[path] || path;
82
+ };
83
+
84
+ /**
85
+ * For settings like `color.palette`, which have a value that is an object
86
+ * with `default`, `theme`, `custom`, with field values that are arrays of
87
+ * items, merge these three arrays into one and return it. The calculation
88
+ * is memoized so that identical input values produce identical output.
89
+ * @param {Object} value Object to merge
90
+ * @return {Array} Array of merged items
91
+ */
92
+ function mergeOrigins(value) {
93
+ let result = mergeCache.get(value);
94
+ if (!result) {
95
+ result = ['default', 'theme', 'custom'].flatMap(key => {
96
+ var _value$key;
97
+ return (_value$key = value[key]) !== null && _value$key !== void 0 ? _value$key : [];
98
+ });
99
+ mergeCache.set(value, result);
100
+ }
101
+ return result;
102
+ }
103
+ const mergeCache = new WeakMap();
104
+
105
+ /**
106
+ * Hook that retrieves the given settings for the block instance in use.
107
+ *
108
+ * It looks up the settings first in the block instance hierarchy.
109
+ * If none are found, it'll look them up in the block editor settings.
110
+ *
111
+ * @param {string[]} paths The paths to the settings.
112
+ * @return {any[]} Returns the values defined for the settings.
113
+ * @example
114
+ * ```js
115
+ * const [ fixed, sticky ] = useSettings( 'position.fixed', 'position.sticky' );
116
+ * ```
117
+ */
118
+ function useSettings(...paths) {
119
+ const {
120
+ name: blockName,
121
+ clientId = null
122
+ } = (0, _blockEdit.useBlockEditContext)();
123
+
124
+ // eslint-disable-next-line react-hooks/exhaustive-deps
125
+ paths = (0, _element.useMemo)(() => paths, paths);
126
+ return (0, _data.useSelect)(select => {
127
+ const candidates = clientId ? [clientId, ...select(_store.store).getBlockParents(clientId, /* ascending */true)].filter(candidateClientId => {
128
+ const candidateBlockName = select(_store.store).getBlockName(candidateClientId);
129
+ return (0, _blocks.hasBlockSupport)(candidateBlockName, '__experimentalSettings', false);
130
+ }) : [];
131
+ return paths.map(path => {
132
+ if (blockedPaths.includes(path)) {
133
+ // eslint-disable-next-line no-console
134
+ console.warn('Top level useSetting paths are disabled. Please use a subpath to query the information needed.');
135
+ return undefined;
136
+ }
137
+
138
+ // 0. Allow third parties to filter the block's settings at runtime.
139
+ let result = (0, _hooks.applyFilters)('blockEditor.useSetting.before', undefined, path, clientId, blockName);
140
+ if (undefined !== result) {
141
+ return result;
142
+ }
143
+ const normalizedPath = removeCustomPrefixes(path);
144
+
145
+ // 1. Take settings from the block instance or its ancestors.
146
+ // Start from the current block and work our way up the ancestors.
147
+ for (const candidateClientId of candidates) {
148
+ var _getValueFromObjectPa;
149
+ const candidateAtts = select(_store.store).getBlockAttributes(candidateClientId);
150
+ result = (_getValueFromObjectPa = (0, _object.getValueFromObjectPath)(candidateAtts.settings?.blocks?.[blockName], normalizedPath)) !== null && _getValueFromObjectPa !== void 0 ? _getValueFromObjectPa : (0, _object.getValueFromObjectPath)(candidateAtts.settings, normalizedPath);
151
+ if (result !== undefined) {
152
+ // Stop the search for more distant ancestors and move on.
153
+ break;
154
+ }
155
+ }
156
+
157
+ // 2. Fall back to the settings from the block editor store (__experimentalFeatures).
158
+ const settings = select(_store.store).getSettings();
159
+ if (result === undefined && blockName) {
160
+ result = (0, _object.getValueFromObjectPath)(settings.__experimentalFeatures?.blocks?.[blockName], normalizedPath);
161
+ }
162
+ if (result === undefined) {
163
+ result = (0, _object.getValueFromObjectPath)(settings.__experimentalFeatures, normalizedPath);
164
+ }
165
+
166
+ // Return if the setting was found in either the block instance or the store.
167
+ if (result !== undefined) {
168
+ if (_blocks.__EXPERIMENTAL_PATHS_WITH_MERGE[normalizedPath]) {
169
+ return mergeOrigins(result);
170
+ }
171
+ return result;
172
+ }
173
+
174
+ // 3. Otherwise, use deprecated settings.
175
+ const deprecatedSettingsValue = deprecatedFlags[normalizedPath]?.(settings);
176
+ if (deprecatedSettingsValue !== undefined) {
177
+ return deprecatedSettingsValue;
178
+ }
179
+
180
+ // 4. Fallback for typography.dropCap:
181
+ // This is only necessary to support typography.dropCap.
182
+ // when __experimentalFeatures are not present (core without plugin).
183
+ // To remove when __experimentalFeatures are ported to core.
184
+ return normalizedPath === 'typography.dropCap' ? true : undefined;
185
+ });
186
+ }, [blockName, clientId, paths]);
187
+ }
188
+
189
+ /**
190
+ * Hook that retrieves the given setting for the block instance in use.
191
+ *
192
+ * It looks up the setting first in the block instance hierarchy.
193
+ * If none is found, it'll look it up in the block editor settings.
194
+ *
195
+ * @param {string} path The path to the setting.
196
+ * @return {any} Returns the value defined for the setting.
197
+ * @deprecated 6.4.0 Use useSettings instead.
198
+ * @example
199
+ * ```js
200
+ * const isEnabled = useSetting( 'typography.dropCap' );
201
+ * ```
202
+ */
203
+ function useSetting(path) {
204
+ (0, _deprecated.default)('wp.blockEditor.useSetting', {
205
+ since: '6.4',
206
+ alternative: 'wp.blockEditor.useSettings',
207
+ note: 'The new useSettings function can retrieve multiple settings at once, with better performance.'
208
+ });
209
+ const [value] = useSettings(path);
210
+ return value;
211
+ }
212
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_blocks","require","_data","_deprecated","_interopRequireDefault","_element","_hooks","_blockEdit","_store","_object","blockedPaths","deprecatedFlags","settings","colors","gradients","disableCustomColors","undefined","disableCustomGradients","fontSizes","disableCustomFontSizes","enableCustomLineHeight","enableCustomUnits","enableCustomSpacing","prefixedFlags","removeCustomPrefixes","path","mergeOrigins","value","result","mergeCache","get","flatMap","key","_value$key","set","WeakMap","useSettings","paths","name","blockName","clientId","useBlockEditContext","useMemo","useSelect","select","candidates","blockEditorStore","getBlockParents","filter","candidateClientId","candidateBlockName","getBlockName","hasBlockSupport","map","includes","console","warn","applyFilters","normalizedPath","_getValueFromObjectPa","candidateAtts","getBlockAttributes","getValueFromObjectPath","blocks","getSettings","__experimentalFeatures","PATHS_WITH_MERGE","deprecatedSettingsValue","useSetting","deprecated","since","alternative","note"],"sources":["@wordpress/block-editor/src/components/use-settings/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__EXPERIMENTAL_PATHS_WITH_MERGE as PATHS_WITH_MERGE,\n\thasBlockSupport,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { useMemo } from '@wordpress/element';\nimport { applyFilters } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditContext } from '../block-edit';\nimport { store as blockEditorStore } from '../../store';\nimport { getValueFromObjectPath } from '../../utils/object';\n\nconst blockedPaths = [\n\t'color',\n\t'border',\n\t'dimensions',\n\t'typography',\n\t'spacing',\n];\n\nconst deprecatedFlags = {\n\t'color.palette': ( settings ) => settings.colors,\n\t'color.gradients': ( settings ) => settings.gradients,\n\t'color.custom': ( settings ) =>\n\t\tsettings.disableCustomColors === undefined\n\t\t\t? undefined\n\t\t\t: ! settings.disableCustomColors,\n\t'color.customGradient': ( settings ) =>\n\t\tsettings.disableCustomGradients === undefined\n\t\t\t? undefined\n\t\t\t: ! settings.disableCustomGradients,\n\t'typography.fontSizes': ( settings ) => settings.fontSizes,\n\t'typography.customFontSize': ( settings ) =>\n\t\tsettings.disableCustomFontSizes === undefined\n\t\t\t? undefined\n\t\t\t: ! settings.disableCustomFontSizes,\n\t'typography.lineHeight': ( settings ) => settings.enableCustomLineHeight,\n\t'spacing.units': ( settings ) => {\n\t\tif ( settings.enableCustomUnits === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( settings.enableCustomUnits === true ) {\n\t\t\treturn [ 'px', 'em', 'rem', 'vh', 'vw', '%' ];\n\t\t}\n\n\t\treturn settings.enableCustomUnits;\n\t},\n\t'spacing.padding': ( settings ) => settings.enableCustomSpacing,\n};\n\nconst prefixedFlags = {\n\t/*\n\t * These were only available in the plugin\n\t * and can be removed when the minimum WordPress version\n\t * for the plugin is 5.9.\n\t */\n\t'border.customColor': 'border.color',\n\t'border.customStyle': 'border.style',\n\t'border.customWidth': 'border.width',\n\t'typography.customFontStyle': 'typography.fontStyle',\n\t'typography.customFontWeight': 'typography.fontWeight',\n\t'typography.customLetterSpacing': 'typography.letterSpacing',\n\t'typography.customTextDecorations': 'typography.textDecoration',\n\t'typography.customTextTransforms': 'typography.textTransform',\n\t/*\n\t * These were part of WordPress 5.8 and we need to keep them.\n\t */\n\t'border.customRadius': 'border.radius',\n\t'spacing.customMargin': 'spacing.margin',\n\t'spacing.customPadding': 'spacing.padding',\n\t'typography.customLineHeight': 'typography.lineHeight',\n};\n\n/**\n * Remove `custom` prefixes for flags that did not land in 5.8.\n *\n * This provides continued support for `custom` prefixed properties. It will\n * be removed once third party devs have had sufficient time to update themes,\n * plugins, etc.\n *\n * @see https://github.com/WordPress/gutenberg/pull/34485\n *\n * @param {string} path Path to desired value in settings.\n * @return {string} The value for defined setting.\n */\nconst removeCustomPrefixes = ( path ) => {\n\treturn prefixedFlags[ path ] || path;\n};\n\n/**\n * For settings like `color.palette`, which have a value that is an object\n * with `default`, `theme`, `custom`, with field values that are arrays of\n * items, merge these three arrays into one and return it. The calculation\n * is memoized so that identical input values produce identical output.\n * @param {Object} value Object to merge\n * @return {Array} Array of merged items\n */\nfunction mergeOrigins( value ) {\n\tlet result = mergeCache.get( value );\n\tif ( ! result ) {\n\t\tresult = [ 'default', 'theme', 'custom' ].flatMap(\n\t\t\t( key ) => value[ key ] ?? []\n\t\t);\n\t\tmergeCache.set( value, result );\n\t}\n\treturn result;\n}\nconst mergeCache = new WeakMap();\n\n/**\n * Hook that retrieves the given settings for the block instance in use.\n *\n * It looks up the settings first in the block instance hierarchy.\n * If none are found, it'll look them up in the block editor settings.\n *\n * @param {string[]} paths The paths to the settings.\n * @return {any[]} Returns the values defined for the settings.\n * @example\n * ```js\n * const [ fixed, sticky ] = useSettings( 'position.fixed', 'position.sticky' );\n * ```\n */\nexport function useSettings( ...paths ) {\n\tconst { name: blockName, clientId = null } = useBlockEditContext();\n\n\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\tpaths = useMemo( () => paths, paths );\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst candidates = clientId\n\t\t\t\t? [\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t...select( blockEditorStore ).getBlockParents(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t/* ascending */ true\n\t\t\t\t\t\t),\n\t\t\t\t ].filter( ( candidateClientId ) => {\n\t\t\t\t\t\tconst candidateBlockName =\n\t\t\t\t\t\t\tselect( blockEditorStore ).getBlockName(\n\t\t\t\t\t\t\t\tcandidateClientId\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\treturn hasBlockSupport(\n\t\t\t\t\t\t\tcandidateBlockName,\n\t\t\t\t\t\t\t'__experimentalSettings',\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t);\n\t\t\t\t } )\n\t\t\t\t: [];\n\n\t\t\treturn paths.map( ( path ) => {\n\t\t\t\tif ( blockedPaths.includes( path ) ) {\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t'Top level useSetting paths are disabled. Please use a subpath to query the information needed.'\n\t\t\t\t\t);\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\n\t\t\t\t// 0. Allow third parties to filter the block's settings at runtime.\n\t\t\t\tlet result = applyFilters(\n\t\t\t\t\t'blockEditor.useSetting.before',\n\t\t\t\t\tundefined,\n\t\t\t\t\tpath,\n\t\t\t\t\tclientId,\n\t\t\t\t\tblockName\n\t\t\t\t);\n\n\t\t\t\tif ( undefined !== result ) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tconst normalizedPath = removeCustomPrefixes( path );\n\n\t\t\t\t// 1. Take settings from the block instance or its ancestors.\n\t\t\t\t// Start from the current block and work our way up the ancestors.\n\t\t\t\tfor ( const candidateClientId of candidates ) {\n\t\t\t\t\tconst candidateAtts =\n\t\t\t\t\t\tselect( blockEditorStore ).getBlockAttributes(\n\t\t\t\t\t\t\tcandidateClientId\n\t\t\t\t\t\t);\n\t\t\t\t\tresult =\n\t\t\t\t\t\tgetValueFromObjectPath(\n\t\t\t\t\t\t\tcandidateAtts.settings?.blocks?.[ blockName ],\n\t\t\t\t\t\t\tnormalizedPath\n\t\t\t\t\t\t) ??\n\t\t\t\t\t\tgetValueFromObjectPath(\n\t\t\t\t\t\t\tcandidateAtts.settings,\n\t\t\t\t\t\t\tnormalizedPath\n\t\t\t\t\t\t);\n\t\t\t\t\tif ( result !== undefined ) {\n\t\t\t\t\t\t// Stop the search for more distant ancestors and move on.\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// 2. Fall back to the settings from the block editor store (__experimentalFeatures).\n\t\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\t\tif ( result === undefined && blockName ) {\n\t\t\t\t\tresult = getValueFromObjectPath(\n\t\t\t\t\t\tsettings.__experimentalFeatures?.blocks?.[ blockName ],\n\t\t\t\t\t\tnormalizedPath\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif ( result === undefined ) {\n\t\t\t\t\tresult = getValueFromObjectPath(\n\t\t\t\t\t\tsettings.__experimentalFeatures,\n\t\t\t\t\t\tnormalizedPath\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Return if the setting was found in either the block instance or the store.\n\t\t\t\tif ( result !== undefined ) {\n\t\t\t\t\tif ( PATHS_WITH_MERGE[ normalizedPath ] ) {\n\t\t\t\t\t\treturn mergeOrigins( result );\n\t\t\t\t\t}\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// 3. Otherwise, use deprecated settings.\n\t\t\t\tconst deprecatedSettingsValue =\n\t\t\t\t\tdeprecatedFlags[ normalizedPath ]?.( settings );\n\t\t\t\tif ( deprecatedSettingsValue !== undefined ) {\n\t\t\t\t\treturn deprecatedSettingsValue;\n\t\t\t\t}\n\n\t\t\t\t// 4. Fallback for typography.dropCap:\n\t\t\t\t// This is only necessary to support typography.dropCap.\n\t\t\t\t// when __experimentalFeatures are not present (core without plugin).\n\t\t\t\t// To remove when __experimentalFeatures are ported to core.\n\t\t\t\treturn normalizedPath === 'typography.dropCap'\n\t\t\t\t\t? true\n\t\t\t\t\t: undefined;\n\t\t\t} );\n\t\t},\n\t\t[ blockName, clientId, paths ]\n\t);\n}\n\n/**\n * Hook that retrieves the given setting for the block instance in use.\n *\n * It looks up the setting first in the block instance hierarchy.\n * If none is found, it'll look it up in the block editor settings.\n *\n * @param {string} path The path to the setting.\n * @return {any} Returns the value defined for the setting.\n * @deprecated 6.4.0 Use useSettings instead.\n * @example\n * ```js\n * const isEnabled = useSetting( 'typography.dropCap' );\n * ```\n */\nexport function useSetting( path ) {\n\tdeprecated( 'wp.blockEditor.useSetting', {\n\t\tsince: '6.4',\n\t\talternative: 'wp.blockEditor.useSettings',\n\t\tnote: 'The new useSettings function can retrieve multiple settings at once, with better performance.',\n\t} );\n\n\tconst [ value ] = useSettings( path );\n\treturn value;\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAIA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AAKA,IAAAM,UAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AAjBA;AACA;AACA;;AAUA;AACA;AACA;;AAKA,MAAMS,YAAY,GAAG,CACpB,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,SAAS,CACT;AAED,MAAMC,eAAe,GAAG;EACvB,eAAe,EAAIC,QAAQ,IAAMA,QAAQ,CAACC,MAAM;EAChD,iBAAiB,EAAID,QAAQ,IAAMA,QAAQ,CAACE,SAAS;EACrD,cAAc,EAAIF,QAAQ,IACzBA,QAAQ,CAACG,mBAAmB,KAAKC,SAAS,GACvCA,SAAS,GACT,CAAEJ,QAAQ,CAACG,mBAAmB;EAClC,sBAAsB,EAAIH,QAAQ,IACjCA,QAAQ,CAACK,sBAAsB,KAAKD,SAAS,GAC1CA,SAAS,GACT,CAAEJ,QAAQ,CAACK,sBAAsB;EACrC,sBAAsB,EAAIL,QAAQ,IAAMA,QAAQ,CAACM,SAAS;EAC1D,2BAA2B,EAAIN,QAAQ,IACtCA,QAAQ,CAACO,sBAAsB,KAAKH,SAAS,GAC1CA,SAAS,GACT,CAAEJ,QAAQ,CAACO,sBAAsB;EACrC,uBAAuB,EAAIP,QAAQ,IAAMA,QAAQ,CAACQ,sBAAsB;EACxE,eAAe,EAAIR,QAAQ,IAAM;IAChC,IAAKA,QAAQ,CAACS,iBAAiB,KAAKL,SAAS,EAAG;MAC/C;IACD;IAEA,IAAKJ,QAAQ,CAACS,iBAAiB,KAAK,IAAI,EAAG;MAC1C,OAAO,CAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAE;IAC9C;IAEA,OAAOT,QAAQ,CAACS,iBAAiB;EAClC,CAAC;EACD,iBAAiB,EAAIT,QAAQ,IAAMA,QAAQ,CAACU;AAC7C,CAAC;AAED,MAAMC,aAAa,GAAG;EACrB;AACD;AACA;AACA;AACA;EACC,oBAAoB,EAAE,cAAc;EACpC,oBAAoB,EAAE,cAAc;EACpC,oBAAoB,EAAE,cAAc;EACpC,4BAA4B,EAAE,sBAAsB;EACpD,6BAA6B,EAAE,uBAAuB;EACtD,gCAAgC,EAAE,0BAA0B;EAC5D,kCAAkC,EAAE,2BAA2B;EAC/D,iCAAiC,EAAE,0BAA0B;EAC7D;AACD;AACA;EACC,qBAAqB,EAAE,eAAe;EACtC,sBAAsB,EAAE,gBAAgB;EACxC,uBAAuB,EAAE,iBAAiB;EAC1C,6BAA6B,EAAE;AAChC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,oBAAoB,GAAKC,IAAI,IAAM;EACxC,OAAOF,aAAa,CAAEE,IAAI,CAAE,IAAIA,IAAI;AACrC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,YAAYA,CAAEC,KAAK,EAAG;EAC9B,IAAIC,MAAM,GAAGC,UAAU,CAACC,GAAG,CAAEH,KAAM,CAAC;EACpC,IAAK,CAAEC,MAAM,EAAG;IACfA,MAAM,GAAG,CAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAE,CAACG,OAAO,CAC9CC,GAAG;MAAA,IAAAC,UAAA;MAAA,QAAAA,UAAA,GAAMN,KAAK,CAAEK,GAAG,CAAE,cAAAC,UAAA,cAAAA,UAAA,GAAI,EAAE;IAAA,CAC9B,CAAC;IACDJ,UAAU,CAACK,GAAG,CAAEP,KAAK,EAAEC,MAAO,CAAC;EAChC;EACA,OAAOA,MAAM;AACd;AACA,MAAMC,UAAU,GAAG,IAAIM,OAAO,CAAC,CAAC;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,WAAWA,CAAE,GAAGC,KAAK,EAAG;EACvC,MAAM;IAAEC,IAAI,EAAEC,SAAS;IAAEC,QAAQ,GAAG;EAAK,CAAC,GAAG,IAAAC,8BAAmB,EAAC,CAAC;;EAElE;EACAJ,KAAK,GAAG,IAAAK,gBAAO,EAAE,MAAML,KAAK,EAAEA,KAAM,CAAC;EAErC,OAAO,IAAAM,eAAS,EACbC,MAAM,IAAM;IACb,MAAMC,UAAU,GAAGL,QAAQ,GACxB,CACAA,QAAQ,EACR,GAAGI,MAAM,CAAEE,YAAiB,CAAC,CAACC,eAAe,CAC5CP,QAAQ,EACR,eAAgB,IACjB,CAAC,CACA,CAACQ,MAAM,CAAIC,iBAAiB,IAAM;MACnC,MAAMC,kBAAkB,GACvBN,MAAM,CAAEE,YAAiB,CAAC,CAACK,YAAY,CACtCF,iBACD,CAAC;MACF,OAAO,IAAAG,uBAAe,EACrBF,kBAAkB,EAClB,wBAAwB,EACxB,KACD,CAAC;IACD,CAAE,CAAC,GACH,EAAE;IAEL,OAAOb,KAAK,CAACgB,GAAG,CAAI5B,IAAI,IAAM;MAC7B,IAAKf,YAAY,CAAC4C,QAAQ,CAAE7B,IAAK,CAAC,EAAG;QACpC;QACA8B,OAAO,CAACC,IAAI,CACX,gGACD,CAAC;QACD,OAAOxC,SAAS;MACjB;;MAEA;MACA,IAAIY,MAAM,GAAG,IAAA6B,mBAAY,EACxB,+BAA+B,EAC/BzC,SAAS,EACTS,IAAI,EACJe,QAAQ,EACRD,SACD,CAAC;MAED,IAAKvB,SAAS,KAAKY,MAAM,EAAG;QAC3B,OAAOA,MAAM;MACd;MAEA,MAAM8B,cAAc,GAAGlC,oBAAoB,CAAEC,IAAK,CAAC;;MAEnD;MACA;MACA,KAAM,MAAMwB,iBAAiB,IAAIJ,UAAU,EAAG;QAAA,IAAAc,qBAAA;QAC7C,MAAMC,aAAa,GAClBhB,MAAM,CAAEE,YAAiB,CAAC,CAACe,kBAAkB,CAC5CZ,iBACD,CAAC;QACFrB,MAAM,IAAA+B,qBAAA,GACL,IAAAG,8BAAsB,EACrBF,aAAa,CAAChD,QAAQ,EAAEmD,MAAM,GAAIxB,SAAS,CAAE,EAC7CmB,cACD,CAAC,cAAAC,qBAAA,cAAAA,qBAAA,GACD,IAAAG,8BAAsB,EACrBF,aAAa,CAAChD,QAAQ,EACtB8C,cACD,CAAC;QACF,IAAK9B,MAAM,KAAKZ,SAAS,EAAG;UAC3B;UACA;QACD;MACD;;MAEA;MACA,MAAMJ,QAAQ,GAAGgC,MAAM,CAAEE,YAAiB,CAAC,CAACkB,WAAW,CAAC,CAAC;MACzD,IAAKpC,MAAM,KAAKZ,SAAS,IAAIuB,SAAS,EAAG;QACxCX,MAAM,GAAG,IAAAkC,8BAAsB,EAC9BlD,QAAQ,CAACqD,sBAAsB,EAAEF,MAAM,GAAIxB,SAAS,CAAE,EACtDmB,cACD,CAAC;MACF;MAEA,IAAK9B,MAAM,KAAKZ,SAAS,EAAG;QAC3BY,MAAM,GAAG,IAAAkC,8BAAsB,EAC9BlD,QAAQ,CAACqD,sBAAsB,EAC/BP,cACD,CAAC;MACF;;MAEA;MACA,IAAK9B,MAAM,KAAKZ,SAAS,EAAG;QAC3B,IAAKkD,uCAAgB,CAAER,cAAc,CAAE,EAAG;UACzC,OAAOhC,YAAY,CAAEE,MAAO,CAAC;QAC9B;QACA,OAAOA,MAAM;MACd;;MAEA;MACA,MAAMuC,uBAAuB,GAC5BxD,eAAe,CAAE+C,cAAc,CAAE,GAAI9C,QAAS,CAAC;MAChD,IAAKuD,uBAAuB,KAAKnD,SAAS,EAAG;QAC5C,OAAOmD,uBAAuB;MAC/B;;MAEA;MACA;MACA;MACA;MACA,OAAOT,cAAc,KAAK,oBAAoB,GAC3C,IAAI,GACJ1C,SAAS;IACb,CAAE,CAAC;EACJ,CAAC,EACD,CAAEuB,SAAS,EAAEC,QAAQ,EAAEH,KAAK,CAC7B,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS+B,UAAUA,CAAE3C,IAAI,EAAG;EAClC,IAAA4C,mBAAU,EAAE,2BAA2B,EAAE;IACxCC,KAAK,EAAE,KAAK;IACZC,WAAW,EAAE,4BAA4B;IACzCC,IAAI,EAAE;EACP,CAAE,CAAC;EAEH,MAAM,CAAE7C,KAAK,CAAE,GAAGS,WAAW,CAAEX,IAAK,CAAC;EACrC,OAAOE,KAAK;AACb"}
@@ -87,6 +87,10 @@ function getClosestTabbable(target, isReverse, containerElement, onlyVertical) {
87
87
  targetRect = target.getBoundingClientRect();
88
88
  }
89
89
  function isTabCandidate(node) {
90
+ if (node.closest('[inert]')) {
91
+ return;
92
+ }
93
+
90
94
  // Skip if there's only one child that is content editable (and thus a
91
95
  // better candidate).
92
96
  if (node.children.length === 1 && (0, _dom2.isInSameBlock)(node, node.firstElementChild) && node.firstElementChild.getAttribute('contenteditable') === 'true') {