@wordpress/block-editor 12.15.0 → 12.16.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 (500) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +9 -4
  3. package/build/components/block-canvas/index.js +22 -6
  4. package/build/components/block-canvas/index.js.map +1 -1
  5. package/build/components/block-card/index.js +1 -1
  6. package/build/components/block-card/index.js.map +1 -1
  7. package/build/components/block-controls/hook.js +3 -23
  8. package/build/components/block-controls/hook.js.map +1 -1
  9. package/build/components/block-edit/context.js +5 -1
  10. package/build/components/block-edit/context.js.map +1 -1
  11. package/build/components/block-edit/index.js +18 -9
  12. package/build/components/block-edit/index.js.map +1 -1
  13. package/build/components/block-info-slot-fill/index.js +3 -4
  14. package/build/components/block-info-slot-fill/index.js.map +1 -1
  15. package/build/components/block-list/block.js +28 -9
  16. package/build/components/block-list/block.js.map +1 -1
  17. package/build/components/block-list/block.native.js +14 -5
  18. package/build/components/block-list/block.native.js.map +1 -1
  19. package/build/components/block-list/use-block-props/index.js +61 -18
  20. package/build/components/block-list/use-block-props/index.js.map +1 -1
  21. package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  22. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  23. package/build/components/block-list/use-block-props/use-is-hovered.js +4 -14
  24. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  25. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  26. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  27. package/build/components/block-patterns-list/index.js +1 -1
  28. package/build/components/block-patterns-list/index.js.map +1 -1
  29. package/build/components/block-removal-warning-modal/index.js +2 -9
  30. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  31. package/build/components/block-rename/modal.js +3 -0
  32. package/build/components/block-rename/modal.js.map +1 -1
  33. package/build/components/block-settings/container.native.js +6 -4
  34. package/build/components/block-settings/container.native.js.map +1 -1
  35. package/build/components/block-styles/index.js +1 -1
  36. package/build/components/block-styles/index.js.map +1 -1
  37. package/build/components/block-styles/index.native.js +3 -2
  38. package/build/components/block-styles/index.native.js.map +1 -1
  39. package/build/components/block-toolbar/index.js +89 -27
  40. package/build/components/block-toolbar/index.js.map +1 -1
  41. package/build/components/block-tools/block-toolbar-breadcrumb.js +49 -0
  42. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  43. package/build/components/block-tools/block-toolbar-popover.js +86 -0
  44. package/build/components/block-tools/block-toolbar-popover.js.map +1 -0
  45. package/build/components/block-tools/index.js +27 -24
  46. package/build/components/block-tools/index.js.map +1 -1
  47. package/build/components/block-types-list/index.native.js +4 -3
  48. package/build/components/block-types-list/index.native.js.map +1 -1
  49. package/build/components/block-variation-picker/index.native.js +2 -1
  50. package/build/components/block-variation-picker/index.native.js.map +1 -1
  51. package/build/components/colors-gradients/control.js +28 -17
  52. package/build/components/colors-gradients/control.js.map +1 -1
  53. package/build/components/duotone-control/index.js +1 -4
  54. package/build/components/duotone-control/index.js.map +1 -1
  55. package/build/components/global-styles/color-panel.js +22 -20
  56. package/build/components/global-styles/color-panel.js.map +1 -1
  57. package/build/components/global-styles/filters-panel.js +9 -3
  58. package/build/components/global-styles/filters-panel.js.map +1 -1
  59. package/build/components/global-styles/typography-panel.js +20 -31
  60. package/build/components/global-styles/typography-panel.js.map +1 -1
  61. package/build/components/image-link-destinations/index.native.js +118 -0
  62. package/build/components/image-link-destinations/index.native.js.map +1 -0
  63. package/build/components/index.native.js +8 -0
  64. package/build/components/index.native.js.map +1 -1
  65. package/build/components/inserter/media-tab/media-panel.js +2 -2
  66. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  67. package/build/components/inserter/menu.js +14 -7
  68. package/build/components/inserter/menu.js.map +1 -1
  69. package/build/components/inserter/preview-panel.js +2 -2
  70. package/build/components/inserter/preview-panel.js.map +1 -1
  71. package/build/components/inserter-button/index.native.js +98 -0
  72. package/build/components/inserter-button/index.native.js.map +1 -0
  73. package/build/components/inserter-button/sparkles.js +23 -0
  74. package/build/components/inserter-button/sparkles.js.map +1 -0
  75. package/build/components/inserter-draggable-blocks/index.js +8 -4
  76. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  77. package/build/components/inspector-controls/fill.js +3 -3
  78. package/build/components/inspector-controls/fill.js.map +1 -1
  79. package/build/components/inspector-controls/fill.native.js +3 -3
  80. package/build/components/inspector-controls/fill.native.js.map +1 -1
  81. package/build/components/navigable-toolbar/index.js +2 -2
  82. package/build/components/navigable-toolbar/index.js.map +1 -1
  83. package/build/components/preview-options/index.js +6 -62
  84. package/build/components/preview-options/index.js.map +1 -1
  85. package/build/components/rich-text/content.js +26 -23
  86. package/build/components/rich-text/content.js.map +1 -1
  87. package/build/components/rich-text/get-rich-text-values.js +2 -1
  88. package/build/components/rich-text/get-rich-text-values.js.map +1 -1
  89. package/build/components/rich-text/index.js +2 -30
  90. package/build/components/rich-text/index.js.map +1 -1
  91. package/build/components/rich-text/index.native.js +9 -16
  92. package/build/components/rich-text/index.native.js.map +1 -1
  93. package/build/components/rich-text/native/get-format-colors.native.js +22 -24
  94. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  95. package/build/components/rich-text/native/index.native.js +7 -34
  96. package/build/components/rich-text/native/index.native.js.map +1 -1
  97. package/build/components/rich-text/use-input-rules.js +5 -1
  98. package/build/components/rich-text/use-input-rules.js.map +1 -1
  99. package/build/components/rich-text/with-deprecations.js +50 -0
  100. package/build/components/rich-text/with-deprecations.js.map +1 -0
  101. package/build/components/use-block-drop-zone/index.js +70 -8
  102. package/build/components/use-block-drop-zone/index.js.map +1 -1
  103. package/build/components/use-on-block-drop/index.js +1 -1
  104. package/build/components/use-on-block-drop/index.js.map +1 -1
  105. package/build/components/use-resize-canvas/index.js +4 -1
  106. package/build/components/use-resize-canvas/index.js.map +1 -1
  107. package/build/components/use-settings/index.js +14 -0
  108. package/build/components/use-settings/index.js.map +1 -1
  109. package/build/hooks/align.js +20 -68
  110. package/build/hooks/align.js.map +1 -1
  111. package/build/hooks/align.native.js +11 -1
  112. package/build/hooks/align.native.js.map +1 -1
  113. package/build/hooks/anchor.js +13 -29
  114. package/build/hooks/anchor.js.map +1 -1
  115. package/build/hooks/background.js +28 -31
  116. package/build/hooks/background.js.map +1 -1
  117. package/build/hooks/block-hooks.js +24 -32
  118. package/build/hooks/block-hooks.js.map +1 -1
  119. package/build/hooks/block-renaming.js +18 -22
  120. package/build/hooks/block-renaming.js.map +1 -1
  121. package/build/hooks/border.js +58 -80
  122. package/build/hooks/border.js.map +1 -1
  123. package/build/hooks/color.js +76 -89
  124. package/build/hooks/color.js.map +1 -1
  125. package/build/hooks/content-lock-ui.js +29 -29
  126. package/build/hooks/content-lock-ui.js.map +1 -1
  127. package/build/hooks/custom-class-name.js +12 -29
  128. package/build/hooks/custom-class-name.js.map +1 -1
  129. package/build/hooks/custom-fields.js +24 -38
  130. package/build/hooks/custom-fields.js.map +1 -1
  131. package/build/hooks/dimensions.js +21 -17
  132. package/build/hooks/dimensions.js.map +1 -1
  133. package/build/hooks/duotone.js +31 -61
  134. package/build/hooks/duotone.js.map +1 -1
  135. package/build/hooks/font-family.js +16 -25
  136. package/build/hooks/font-family.js.map +1 -1
  137. package/build/hooks/font-size.js +51 -119
  138. package/build/hooks/font-size.js.map +1 -1
  139. package/build/hooks/index.js +25 -14
  140. package/build/hooks/index.js.map +1 -1
  141. package/build/hooks/index.native.js +10 -3
  142. package/build/hooks/index.native.js.map +1 -1
  143. package/build/hooks/layout-child.js +68 -0
  144. package/build/hooks/layout-child.js.map +1 -0
  145. package/build/hooks/layout.js +16 -101
  146. package/build/hooks/layout.js.map +1 -1
  147. package/build/hooks/padding.js +2 -2
  148. package/build/hooks/padding.js.map +1 -1
  149. package/build/hooks/position.js +40 -62
  150. package/build/hooks/position.js.map +1 -1
  151. package/build/hooks/style.js +51 -88
  152. package/build/hooks/style.js.map +1 -1
  153. package/build/hooks/typography.js +34 -14
  154. package/build/hooks/typography.js.map +1 -1
  155. package/build/hooks/utils.js +154 -7
  156. package/build/hooks/utils.js.map +1 -1
  157. package/build/private-apis.js +0 -2
  158. package/build/private-apis.js.map +1 -1
  159. package/build/store/private-actions.js +8 -0
  160. package/build/store/private-actions.js.map +1 -1
  161. package/build/store/private-selectors.js +34 -0
  162. package/build/store/private-selectors.js.map +1 -1
  163. package/build/store/reducer.js +8 -0
  164. package/build/store/reducer.js.map +1 -1
  165. package/build/store/selectors.js +10 -60
  166. package/build/store/selectors.js.map +1 -1
  167. package/build/store/utils.js +66 -0
  168. package/build/store/utils.js.map +1 -0
  169. package/build/utils/object.js +21 -61
  170. package/build/utils/object.js.map +1 -1
  171. package/build/utils/selection.js +9 -1
  172. package/build/utils/selection.js.map +1 -1
  173. package/build-module/components/block-canvas/index.js +23 -7
  174. package/build-module/components/block-canvas/index.js.map +1 -1
  175. package/build-module/components/block-card/index.js +1 -1
  176. package/build-module/components/block-card/index.js.map +1 -1
  177. package/build-module/components/block-controls/hook.js +4 -24
  178. package/build-module/components/block-controls/hook.js.map +1 -1
  179. package/build-module/components/block-edit/context.js +2 -0
  180. package/build-module/components/block-edit/context.js.map +1 -1
  181. package/build-module/components/block-edit/index.js +19 -10
  182. package/build-module/components/block-edit/index.js.map +1 -1
  183. package/build-module/components/block-info-slot-fill/index.js +3 -3
  184. package/build-module/components/block-info-slot-fill/index.js.map +1 -1
  185. package/build-module/components/block-list/block.js +29 -10
  186. package/build-module/components/block-list/block.js.map +1 -1
  187. package/build-module/components/block-list/block.native.js +14 -5
  188. package/build-module/components/block-list/block.native.js.map +1 -1
  189. package/build-module/components/block-list/use-block-props/index.js +62 -19
  190. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  191. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  192. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  193. package/build-module/components/block-list/use-block-props/use-is-hovered.js +4 -14
  194. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  195. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  196. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  197. package/build-module/components/block-patterns-list/index.js +1 -1
  198. package/build-module/components/block-patterns-list/index.js.map +1 -1
  199. package/build-module/components/block-removal-warning-modal/index.js +3 -10
  200. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  201. package/build-module/components/block-rename/modal.js +3 -0
  202. package/build-module/components/block-rename/modal.js.map +1 -1
  203. package/build-module/components/block-settings/container.native.js +4 -2
  204. package/build-module/components/block-settings/container.native.js.map +1 -1
  205. package/build-module/components/block-styles/index.js +1 -1
  206. package/build-module/components/block-styles/index.js.map +1 -1
  207. package/build-module/components/block-styles/index.native.js +3 -2
  208. package/build-module/components/block-styles/index.native.js.map +1 -1
  209. package/build-module/components/block-toolbar/index.js +88 -25
  210. package/build-module/components/block-toolbar/index.js.map +1 -1
  211. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +41 -0
  212. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  213. package/build-module/components/block-tools/block-toolbar-popover.js +76 -0
  214. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -0
  215. package/build-module/components/block-tools/index.js +27 -24
  216. package/build-module/components/block-tools/index.js.map +1 -1
  217. package/build-module/components/block-types-list/index.native.js +2 -1
  218. package/build-module/components/block-types-list/index.native.js.map +1 -1
  219. package/build-module/components/block-variation-picker/index.native.js +2 -1
  220. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  221. package/build-module/components/colors-gradients/control.js +29 -18
  222. package/build-module/components/colors-gradients/control.js.map +1 -1
  223. package/build-module/components/duotone-control/index.js +1 -4
  224. package/build-module/components/duotone-control/index.js.map +1 -1
  225. package/build-module/components/global-styles/color-panel.js +23 -21
  226. package/build-module/components/global-styles/color-panel.js.map +1 -1
  227. package/build-module/components/global-styles/filters-panel.js +10 -4
  228. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  229. package/build-module/components/global-styles/typography-panel.js +20 -31
  230. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  231. package/build-module/components/image-link-destinations/index.native.js +109 -0
  232. package/build-module/components/image-link-destinations/index.native.js.map +1 -0
  233. package/build-module/components/index.native.js +1 -0
  234. package/build-module/components/index.native.js.map +1 -1
  235. package/build-module/components/inserter/media-tab/media-panel.js +1 -1
  236. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  237. package/build-module/components/inserter/menu.js +14 -7
  238. package/build-module/components/inserter/menu.js.map +1 -1
  239. package/build-module/components/inserter/preview-panel.js +2 -2
  240. package/build-module/components/inserter/preview-panel.js.map +1 -1
  241. package/build-module/components/inserter-button/index.native.js +89 -0
  242. package/build-module/components/inserter-button/index.native.js.map +1 -0
  243. package/build-module/components/inserter-button/sparkles.js +15 -0
  244. package/build-module/components/inserter-button/sparkles.js.map +1 -0
  245. package/build-module/components/inserter-draggable-blocks/index.js +9 -5
  246. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  247. package/build-module/components/inspector-controls/fill.js +3 -3
  248. package/build-module/components/inspector-controls/fill.js.map +1 -1
  249. package/build-module/components/inspector-controls/fill.native.js +3 -3
  250. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  251. package/build-module/components/navigable-toolbar/index.js +2 -2
  252. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  253. package/build-module/components/preview-options/index.js +6 -62
  254. package/build-module/components/preview-options/index.js.map +1 -1
  255. package/build-module/components/rich-text/content.js +25 -21
  256. package/build-module/components/rich-text/content.js.map +1 -1
  257. package/build-module/components/rich-text/get-rich-text-values.js +2 -1
  258. package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
  259. package/build-module/components/rich-text/index.js +4 -32
  260. package/build-module/components/rich-text/index.js.map +1 -1
  261. package/build-module/components/rich-text/index.native.js +10 -18
  262. package/build-module/components/rich-text/index.native.js.map +1 -1
  263. package/build-module/components/rich-text/native/get-format-colors.native.js +22 -24
  264. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  265. package/build-module/components/rich-text/native/index.native.js +7 -34
  266. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  267. package/build-module/components/rich-text/use-input-rules.js +5 -1
  268. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  269. package/build-module/components/rich-text/with-deprecations.js +42 -0
  270. package/build-module/components/rich-text/with-deprecations.js.map +1 -0
  271. package/build-module/components/use-block-drop-zone/index.js +69 -8
  272. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  273. package/build-module/components/use-on-block-drop/index.js +1 -1
  274. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  275. package/build-module/components/use-resize-canvas/index.js +4 -1
  276. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  277. package/build-module/components/use-settings/index.js +13 -1
  278. package/build-module/components/use-settings/index.js.map +1 -1
  279. package/build-module/hooks/align.js +19 -66
  280. package/build-module/hooks/align.js.map +1 -1
  281. package/build-module/hooks/align.native.js +1 -0
  282. package/build-module/hooks/align.native.js.map +1 -1
  283. package/build-module/hooks/anchor.js +11 -26
  284. package/build-module/hooks/anchor.js.map +1 -1
  285. package/build-module/hooks/background.js +26 -28
  286. package/build-module/hooks/background.js.map +1 -1
  287. package/build-module/hooks/block-hooks.js +22 -30
  288. package/build-module/hooks/block-hooks.js.map +1 -1
  289. package/build-module/hooks/block-renaming.js +17 -21
  290. package/build-module/hooks/block-renaming.js.map +1 -1
  291. package/build-module/hooks/border.js +57 -78
  292. package/build-module/hooks/border.js.map +1 -1
  293. package/build-module/hooks/color.js +74 -86
  294. package/build-module/hooks/color.js.map +1 -1
  295. package/build-module/hooks/content-lock-ui.js +27 -27
  296. package/build-module/hooks/content-lock-ui.js.map +1 -1
  297. package/build-module/hooks/custom-class-name.js +11 -27
  298. package/build-module/hooks/custom-class-name.js.map +1 -1
  299. package/build-module/hooks/custom-fields.js +20 -39
  300. package/build-module/hooks/custom-fields.js.map +1 -1
  301. package/build-module/hooks/dimensions.js +21 -16
  302. package/build-module/hooks/dimensions.js.map +1 -1
  303. package/build-module/hooks/duotone.js +30 -61
  304. package/build-module/hooks/duotone.js.map +1 -1
  305. package/build-module/hooks/font-family.js +14 -23
  306. package/build-module/hooks/font-family.js.map +1 -1
  307. package/build-module/hooks/font-size.js +49 -119
  308. package/build-module/hooks/font-size.js.map +1 -1
  309. package/build-module/hooks/index.js +18 -14
  310. package/build-module/hooks/index.js.map +1 -1
  311. package/build-module/hooks/index.native.js +5 -3
  312. package/build-module/hooks/index.native.js.map +1 -1
  313. package/build-module/hooks/layout-child.js +60 -0
  314. package/build-module/hooks/layout-child.js.map +1 -0
  315. package/build-module/hooks/layout.js +13 -98
  316. package/build-module/hooks/layout.js.map +1 -1
  317. package/build-module/hooks/padding.js +2 -2
  318. package/build-module/hooks/padding.js.map +1 -1
  319. package/build-module/hooks/position.js +38 -59
  320. package/build-module/hooks/position.js.map +1 -1
  321. package/build-module/hooks/style.js +51 -84
  322. package/build-module/hooks/style.js.map +1 -1
  323. package/build-module/hooks/typography.js +33 -12
  324. package/build-module/hooks/typography.js.map +1 -1
  325. package/build-module/hooks/utils.js +149 -6
  326. package/build-module/hooks/utils.js.map +1 -1
  327. package/build-module/private-apis.js +0 -2
  328. package/build-module/private-apis.js.map +1 -1
  329. package/build-module/store/private-actions.js +7 -0
  330. package/build-module/store/private-actions.js.map +1 -1
  331. package/build-module/store/private-selectors.js +33 -1
  332. package/build-module/store/private-selectors.js.map +1 -1
  333. package/build-module/store/reducer.js +8 -0
  334. package/build-module/store/reducer.js.map +1 -1
  335. package/build-module/store/selectors.js +3 -53
  336. package/build-module/store/selectors.js.map +1 -1
  337. package/build-module/store/utils.js +56 -0
  338. package/build-module/store/utils.js.map +1 -0
  339. package/build-module/utils/object.js +21 -60
  340. package/build-module/utils/object.js.map +1 -1
  341. package/build-module/utils/selection.js +9 -1
  342. package/build-module/utils/selection.js.map +1 -1
  343. package/build-style/style-rtl.css +113 -293
  344. package/build-style/style.css +113 -293
  345. package/package.json +31 -31
  346. package/src/components/block-canvas/index.js +31 -17
  347. package/src/components/block-caption/README.md +2 -2
  348. package/src/components/block-card/index.js +5 -3
  349. package/src/components/block-card/style.scss +7 -3
  350. package/src/components/block-controls/hook.js +8 -30
  351. package/src/components/block-controls/test/index.js +3 -3
  352. package/src/components/block-edit/context.js +3 -0
  353. package/src/components/block-edit/index.js +36 -10
  354. package/src/components/block-info-slot-fill/index.js +6 -3
  355. package/src/components/block-inspector/style.scss +0 -4
  356. package/src/components/block-list/block.js +39 -5
  357. package/src/components/block-list/block.native.js +18 -4
  358. package/src/components/block-list/use-block-props/index.js +74 -21
  359. package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -34
  360. package/src/components/block-list/use-block-props/use-is-hovered.js +2 -13
  361. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +1 -5
  362. package/src/components/block-patterns-list/index.js +1 -1
  363. package/src/components/block-removal-warning-modal/index.js +7 -14
  364. package/src/components/block-rename/modal.js +7 -1
  365. package/src/components/block-settings/container.native.js +3 -5
  366. package/src/components/block-styles/index.js +1 -1
  367. package/src/components/block-styles/index.native.js +4 -2
  368. package/src/components/block-styles/style.scss +0 -11
  369. package/src/components/block-switcher/test/__snapshots__/index.js.snap +3 -1
  370. package/src/components/block-toolbar/index.js +180 -95
  371. package/src/components/block-toolbar/style.scss +50 -66
  372. package/src/components/block-tools/block-toolbar-breadcrumb.js +46 -0
  373. package/src/components/block-tools/block-toolbar-popover.js +90 -0
  374. package/src/components/block-tools/index.js +42 -29
  375. package/src/components/block-tools/style.scss +60 -172
  376. package/src/components/block-types-list/index.native.js +2 -1
  377. package/src/components/block-variation-picker/index.native.js +1 -1
  378. package/src/components/colors-gradients/control.js +49 -30
  379. package/src/components/colors-gradients/style.scss +0 -7
  380. package/src/components/duotone-control/index.js +2 -5
  381. package/src/components/duotone-control/style.scss +1 -6
  382. package/src/components/global-styles/color-panel.js +34 -25
  383. package/src/components/global-styles/filters-panel.js +8 -4
  384. package/src/components/global-styles/typography-panel.js +23 -43
  385. package/src/components/image-link-destinations/index.native.js +152 -0
  386. package/src/components/image-link-destinations/style.native.scss +16 -0
  387. package/src/components/index.native.js +1 -0
  388. package/src/components/inner-blocks/README.md +13 -2
  389. package/src/components/inserter/media-tab/media-panel.js +1 -1
  390. package/src/components/inserter/menu.js +16 -8
  391. package/src/components/inserter/preview-panel.js +2 -2
  392. package/src/components/inserter/style.scss +15 -17
  393. package/src/components/inserter-button/README.md +62 -0
  394. package/src/components/inserter-button/index.native.js +116 -0
  395. package/src/components/inserter-button/sparkles.js +15 -0
  396. package/src/components/inserter-button/style.native.scss +72 -0
  397. package/src/components/inserter-draggable-blocks/index.js +18 -5
  398. package/src/components/inspector-controls/fill.js +6 -3
  399. package/src/components/inspector-controls/fill.native.js +6 -3
  400. package/src/components/link-control/style.scss +1 -1
  401. package/src/components/link-control/test/index.js +1 -1
  402. package/src/components/navigable-toolbar/README.md +2 -0
  403. package/src/components/navigable-toolbar/index.js +2 -2
  404. package/src/components/preview-options/index.js +6 -86
  405. package/src/components/rich-text/content.js +27 -20
  406. package/src/components/rich-text/get-rich-text-values.js +6 -1
  407. package/src/components/rich-text/index.js +5 -46
  408. package/src/components/rich-text/index.native.js +8 -25
  409. package/src/components/rich-text/native/get-format-colors.native.js +33 -40
  410. package/src/components/rich-text/native/index.native.js +7 -48
  411. package/src/components/rich-text/use-input-rules.js +6 -1
  412. package/src/components/rich-text/with-deprecations.js +51 -0
  413. package/src/components/use-block-drop-zone/index.js +114 -14
  414. package/src/components/use-on-block-drop/index.js +2 -1
  415. package/src/components/use-resize-canvas/README.md +3 -3
  416. package/src/components/use-resize-canvas/index.js +4 -1
  417. package/src/components/use-settings/index.js +15 -1
  418. package/src/hooks/align.js +15 -76
  419. package/src/hooks/align.native.js +1 -0
  420. package/src/hooks/anchor.js +13 -33
  421. package/src/hooks/background.js +28 -23
  422. package/src/hooks/block-hooks.js +22 -51
  423. package/src/hooks/block-renaming.js +23 -37
  424. package/src/hooks/border.js +67 -118
  425. package/src/hooks/color.js +100 -132
  426. package/src/hooks/content-lock-ui.js +110 -122
  427. package/src/hooks/custom-class-name.js +8 -40
  428. package/src/hooks/custom-fields.js +20 -47
  429. package/src/hooks/dimensions.js +20 -16
  430. package/src/hooks/duotone.js +70 -127
  431. package/src/hooks/font-family.js +10 -29
  432. package/src/hooks/font-size.js +66 -162
  433. package/src/hooks/index.js +42 -14
  434. package/src/hooks/index.native.js +6 -3
  435. package/src/hooks/layout-child.js +53 -0
  436. package/src/hooks/layout.js +13 -102
  437. package/src/hooks/padding.js +2 -2
  438. package/src/hooks/position.js +50 -90
  439. package/src/hooks/style.js +117 -187
  440. package/src/hooks/test/align.js +1 -178
  441. package/src/hooks/typography.js +20 -16
  442. package/src/hooks/utils.js +187 -6
  443. package/src/private-apis.js +0 -2
  444. package/src/store/private-actions.js +8 -0
  445. package/src/store/private-selectors.js +45 -0
  446. package/src/store/reducer.js +8 -0
  447. package/src/store/selectors.js +5 -69
  448. package/src/store/utils.js +74 -0
  449. package/src/style.scss +0 -2
  450. package/src/utils/object.js +18 -69
  451. package/src/utils/selection.js +9 -2
  452. package/build/components/block-list/use-block-props/use-block-class-names.js +0 -67
  453. package/build/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  454. package/build/components/block-list/use-block-props/use-block-custom-class-name.js +0 -46
  455. package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  456. package/build/components/block-list/use-block-props/use-block-default-class-name.js +0 -37
  457. package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  458. package/build/components/block-tools/back-compat.js +0 -45
  459. package/build/components/block-tools/back-compat.js.map +0 -1
  460. package/build/components/block-tools/block-contextual-toolbar.js +0 -91
  461. package/build/components/block-tools/block-contextual-toolbar.js.map +0 -1
  462. package/build/components/block-tools/selected-block-tools.js +0 -113
  463. package/build/components/block-tools/selected-block-tools.js.map +0 -1
  464. package/build/components/inserter/hooks/use-debounced-input.js +0 -22
  465. package/build/components/inserter/hooks/use-debounced-input.js.map +0 -1
  466. package/build/components/use-display-block-controls/index.js +0 -39
  467. package/build/components/use-display-block-controls/index.js.map +0 -1
  468. package/build/components/use-display-block-controls/index.native.js +0 -39
  469. package/build/components/use-display-block-controls/index.native.js.map +0 -1
  470. package/build-module/components/block-list/use-block-props/use-block-class-names.js +0 -60
  471. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  472. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +0 -40
  473. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  474. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +0 -31
  475. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  476. package/build-module/components/block-tools/back-compat.js +0 -35
  477. package/build-module/components/block-tools/back-compat.js.map +0 -1
  478. package/build-module/components/block-tools/block-contextual-toolbar.js +0 -83
  479. package/build-module/components/block-tools/block-contextual-toolbar.js.map +0 -1
  480. package/build-module/components/block-tools/selected-block-tools.js +0 -105
  481. package/build-module/components/block-tools/selected-block-tools.js.map +0 -1
  482. package/build-module/components/inserter/hooks/use-debounced-input.js +0 -15
  483. package/build-module/components/inserter/hooks/use-debounced-input.js.map +0 -1
  484. package/build-module/components/use-display-block-controls/index.js +0 -32
  485. package/build-module/components/use-display-block-controls/index.js.map +0 -1
  486. package/build-module/components/use-display-block-controls/index.native.js +0 -32
  487. package/build-module/components/use-display-block-controls/index.native.js.map +0 -1
  488. package/src/components/block-list/use-block-props/use-block-class-names.js +0 -66
  489. package/src/components/block-list/use-block-props/use-block-custom-class-name.js +0 -44
  490. package/src/components/block-list/use-block-props/use-block-default-class-name.js +0 -35
  491. package/src/components/block-parent-selector/style.scss +0 -11
  492. package/src/components/block-tools/back-compat.js +0 -35
  493. package/src/components/block-tools/block-contextual-toolbar.js +0 -100
  494. package/src/components/block-tools/selected-block-tools.js +0 -127
  495. package/src/components/inserter/hooks/use-debounced-input.js +0 -18
  496. package/src/components/preview-options/README.md +0 -94
  497. package/src/components/preview-options/style.scss +0 -64
  498. package/src/components/use-display-block-controls/index.js +0 -36
  499. package/src/components/use-display-block-controls/index.native.js +0 -37
  500. package/src/hooks/test/color.js +0 -112
@@ -1,60 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import classnames from 'classnames';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import { useSelect } from '@wordpress/data';
10
- import { isReusableBlock, getBlockType } from '@wordpress/blocks';
11
-
12
- /**
13
- * Internal dependencies
14
- */
15
- import { store as blockEditorStore } from '../../../store';
16
-
17
- /**
18
- * Returns the class names used for the different states of the block.
19
- *
20
- * @param {string} clientId The block client ID.
21
- *
22
- * @return {string} The class names.
23
- */
24
- export function useBlockClassNames(clientId) {
25
- return useSelect(select => {
26
- const {
27
- isBlockBeingDragged,
28
- isBlockHighlighted,
29
- isBlockSelected,
30
- isBlockMultiSelected,
31
- getBlockName,
32
- getSettings,
33
- hasSelectedInnerBlock,
34
- isTyping,
35
- __unstableIsFullySelected,
36
- __unstableSelectionHasUnmergeableBlock
37
- } = select(blockEditorStore);
38
- const {
39
- outlineMode
40
- } = getSettings();
41
- const isDragging = isBlockBeingDragged(clientId);
42
- const isSelected = isBlockSelected(clientId);
43
- const name = getBlockName(clientId);
44
- const checkDeep = true;
45
- // "ancestor" is the more appropriate label due to "deep" check.
46
- const isAncestorOfSelectedBlock = hasSelectedInnerBlock(clientId, checkDeep);
47
- const isMultiSelected = isBlockMultiSelected(clientId);
48
- return classnames({
49
- 'is-selected': isSelected,
50
- 'is-highlighted': isBlockHighlighted(clientId),
51
- 'is-multi-selected': isMultiSelected,
52
- 'is-partially-selected': isMultiSelected && !__unstableIsFullySelected() && !__unstableSelectionHasUnmergeableBlock(),
53
- 'is-reusable': isReusableBlock(getBlockType(name)),
54
- 'is-dragging': isDragging,
55
- 'has-child-selected': isAncestorOfSelectedBlock,
56
- 'remove-outline': isSelected && outlineMode && isTyping()
57
- });
58
- }, [clientId]);
59
- }
60
- //# sourceMappingURL=use-block-class-names.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["classnames","useSelect","isReusableBlock","getBlockType","store","blockEditorStore","useBlockClassNames","clientId","select","isBlockBeingDragged","isBlockHighlighted","isBlockSelected","isBlockMultiSelected","getBlockName","getSettings","hasSelectedInnerBlock","isTyping","__unstableIsFullySelected","__unstableSelectionHasUnmergeableBlock","outlineMode","isDragging","isSelected","name","checkDeep","isAncestorOfSelectedBlock","isMultiSelected"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-block-class-names.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { isReusableBlock, getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * Returns the class names used for the different states of the block.\n *\n * @param {string} clientId The block client ID.\n *\n * @return {string} The class names.\n */\nexport function useBlockClassNames( clientId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockBeingDragged,\n\t\t\t\tisBlockHighlighted,\n\t\t\t\tisBlockSelected,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tisTyping,\n\t\t\t\t__unstableIsFullySelected,\n\t\t\t\t__unstableSelectionHasUnmergeableBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { outlineMode } = getSettings();\n\t\t\tconst isDragging = isBlockBeingDragged( clientId );\n\t\t\tconst isSelected = isBlockSelected( clientId );\n\t\t\tconst name = getBlockName( clientId );\n\t\t\tconst checkDeep = true;\n\t\t\t// \"ancestor\" is the more appropriate label due to \"deep\" check.\n\t\t\tconst isAncestorOfSelectedBlock = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\tcheckDeep\n\t\t\t);\n\t\t\tconst isMultiSelected = isBlockMultiSelected( clientId );\n\t\t\treturn classnames( {\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-highlighted': isBlockHighlighted( clientId ),\n\t\t\t\t'is-multi-selected': isMultiSelected,\n\t\t\t\t'is-partially-selected':\n\t\t\t\t\tisMultiSelected &&\n\t\t\t\t\t! __unstableIsFullySelected() &&\n\t\t\t\t\t! __unstableSelectionHasUnmergeableBlock(),\n\t\t\t\t'is-reusable': isReusableBlock( getBlockType( name ) ),\n\t\t\t\t'is-dragging': isDragging,\n\t\t\t\t'has-child-selected': isAncestorOfSelectedBlock,\n\t\t\t\t'remove-outline': isSelected && outlineMode && isTyping(),\n\t\t\t} );\n\t\t},\n\t\t[ clientId ]\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,eAAe,EAAEC,YAAY,QAAQ,mBAAmB;;AAEjE;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,gBAAgB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAEC,QAAQ,EAAG;EAC9C,OAAON,SAAS,CACbO,MAAM,IAAM;IACb,MAAM;MACLC,mBAAmB;MACnBC,kBAAkB;MAClBC,eAAe;MACfC,oBAAoB;MACpBC,YAAY;MACZC,WAAW;MACXC,qBAAqB;MACrBC,QAAQ;MACRC,yBAAyB;MACzBC;IACD,CAAC,GAAGV,MAAM,CAAEH,gBAAiB,CAAC;IAC9B,MAAM;MAAEc;IAAY,CAAC,GAAGL,WAAW,CAAC,CAAC;IACrC,MAAMM,UAAU,GAAGX,mBAAmB,CAAEF,QAAS,CAAC;IAClD,MAAMc,UAAU,GAAGV,eAAe,CAAEJ,QAAS,CAAC;IAC9C,MAAMe,IAAI,GAAGT,YAAY,CAAEN,QAAS,CAAC;IACrC,MAAMgB,SAAS,GAAG,IAAI;IACtB;IACA,MAAMC,yBAAyB,GAAGT,qBAAqB,CACtDR,QAAQ,EACRgB,SACD,CAAC;IACD,MAAME,eAAe,GAAGb,oBAAoB,CAAEL,QAAS,CAAC;IACxD,OAAOP,UAAU,CAAE;MAClB,aAAa,EAAEqB,UAAU;MACzB,gBAAgB,EAAEX,kBAAkB,CAAEH,QAAS,CAAC;MAChD,mBAAmB,EAAEkB,eAAe;MACpC,uBAAuB,EACtBA,eAAe,IACf,CAAER,yBAAyB,CAAC,CAAC,IAC7B,CAAEC,sCAAsC,CAAC,CAAC;MAC3C,aAAa,EAAEhB,eAAe,CAAEC,YAAY,CAAEmB,IAAK,CAAE,CAAC;MACtD,aAAa,EAAEF,UAAU;MACzB,oBAAoB,EAAEI,yBAAyB;MAC/C,gBAAgB,EAAEH,UAAU,IAAIF,WAAW,IAAIH,QAAQ,CAAC;IACzD,CAAE,CAAC;EACJ,CAAC,EACD,CAAET,QAAQ,CACX,CAAC;AACF"}
@@ -1,40 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useSelect } from '@wordpress/data';
5
- import { getBlockType } from '@wordpress/blocks';
6
-
7
- /**
8
- * Internal dependencies
9
- */
10
- import { store as blockEditorStore } from '../../../store';
11
-
12
- /**
13
- * Returns the custom class name if the block is a light block.
14
- *
15
- * @param {string} clientId The block client ID.
16
- *
17
- * @return {string} The custom class name.
18
- */
19
- export function useBlockCustomClassName(clientId) {
20
- // It's good for this to be a separate selector because it will be executed
21
- // on every attribute change, while the other selectors are not re-evaluated
22
- // as much.
23
- return useSelect(select => {
24
- const {
25
- getBlockName,
26
- getBlockAttributes
27
- } = select(blockEditorStore);
28
- const attributes = getBlockAttributes(clientId);
29
- if (!attributes?.className) {
30
- return;
31
- }
32
- const blockType = getBlockType(getBlockName(clientId));
33
- const hasLightBlockWrapper = blockType?.apiVersion > 1;
34
- if (!hasLightBlockWrapper) {
35
- return;
36
- }
37
- return attributes.className;
38
- }, [clientId]);
39
- }
40
- //# sourceMappingURL=use-block-custom-class-name.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useSelect","getBlockType","store","blockEditorStore","useBlockCustomClassName","clientId","select","getBlockName","getBlockAttributes","attributes","className","blockType","hasLightBlockWrapper","apiVersion"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-block-custom-class-name.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * Returns the custom class name if the block is a light block.\n *\n * @param {string} clientId The block client ID.\n *\n * @return {string} The custom class name.\n */\nexport function useBlockCustomClassName( clientId ) {\n\t// It's good for this to be a separate selector because it will be executed\n\t// on every attribute change, while the other selectors are not re-evaluated\n\t// as much.\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockName, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\n\t\t\tif ( ! attributes?.className ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst blockType = getBlockType( getBlockName( clientId ) );\n\t\t\tconst hasLightBlockWrapper = blockType?.apiVersion > 1;\n\n\t\t\tif ( ! hasLightBlockWrapper ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treturn attributes.className;\n\t\t},\n\t\t[ clientId ]\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,YAAY,QAAQ,mBAAmB;;AAEhD;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,gBAAgB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,uBAAuBA,CAAEC,QAAQ,EAAG;EACnD;EACA;EACA;EACA,OAAOL,SAAS,CACbM,MAAM,IAAM;IACb,MAAM;MAAEC,YAAY;MAAEC;IAAmB,CAAC,GACzCF,MAAM,CAAEH,gBAAiB,CAAC;IAC3B,MAAMM,UAAU,GAAGD,kBAAkB,CAAEH,QAAS,CAAC;IAEjD,IAAK,CAAEI,UAAU,EAAEC,SAAS,EAAG;MAC9B;IACD;IAEA,MAAMC,SAAS,GAAGV,YAAY,CAAEM,YAAY,CAAEF,QAAS,CAAE,CAAC;IAC1D,MAAMO,oBAAoB,GAAGD,SAAS,EAAEE,UAAU,GAAG,CAAC;IAEtD,IAAK,CAAED,oBAAoB,EAAG;MAC7B;IACD;IAEA,OAAOH,UAAU,CAACC,SAAS;EAC5B,CAAC,EACD,CAAEL,QAAQ,CACX,CAAC;AACF"}
@@ -1,31 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useSelect } from '@wordpress/data';
5
- import { getBlockType, getBlockDefaultClassName } from '@wordpress/blocks';
6
-
7
- /**
8
- * Internal dependencies
9
- */
10
- import { store as blockEditorStore } from '../../../store';
11
-
12
- /**
13
- * Returns the default class name if the block is a light block and it supports
14
- * `className`.
15
- *
16
- * @param {string} clientId The block client ID.
17
- *
18
- * @return {string} The class name, e.g. `wp-block-paragraph`.
19
- */
20
- export function useBlockDefaultClassName(clientId) {
21
- return useSelect(select => {
22
- const name = select(blockEditorStore).getBlockName(clientId);
23
- const blockType = getBlockType(name);
24
- const hasLightBlockWrapper = blockType?.apiVersion > 1;
25
- if (!hasLightBlockWrapper) {
26
- return;
27
- }
28
- return getBlockDefaultClassName(name);
29
- }, [clientId]);
30
- }
31
- //# sourceMappingURL=use-block-default-class-name.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useSelect","getBlockType","getBlockDefaultClassName","store","blockEditorStore","useBlockDefaultClassName","clientId","select","name","getBlockName","blockType","hasLightBlockWrapper","apiVersion"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-block-default-class-name.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { getBlockType, getBlockDefaultClassName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * Returns the default class name if the block is a light block and it supports\n * `className`.\n *\n * @param {string} clientId The block client ID.\n *\n * @return {string} The class name, e.g. `wp-block-paragraph`.\n */\nexport function useBlockDefaultClassName( clientId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst name = select( blockEditorStore ).getBlockName( clientId );\n\t\t\tconst blockType = getBlockType( name );\n\t\t\tconst hasLightBlockWrapper = blockType?.apiVersion > 1;\n\n\t\t\tif ( ! hasLightBlockWrapper ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treturn getBlockDefaultClassName( name );\n\t\t},\n\t\t[ clientId ]\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,YAAY,EAAEC,wBAAwB,QAAQ,mBAAmB;;AAE1E;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,gBAAgB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,wBAAwBA,CAAEC,QAAQ,EAAG;EACpD,OAAON,SAAS,CACbO,MAAM,IAAM;IACb,MAAMC,IAAI,GAAGD,MAAM,CAAEH,gBAAiB,CAAC,CAACK,YAAY,CAAEH,QAAS,CAAC;IAChE,MAAMI,SAAS,GAAGT,YAAY,CAAEO,IAAK,CAAC;IACtC,MAAMG,oBAAoB,GAAGD,SAAS,EAAEE,UAAU,GAAG,CAAC;IAEtD,IAAK,CAAED,oBAAoB,EAAG;MAC7B;IACD;IAEA,OAAOT,wBAAwB,CAAEM,IAAK,CAAC;EACxC,CAAC,EACD,CAAEF,QAAQ,CACX,CAAC;AACF"}
@@ -1,35 +0,0 @@
1
- import { createElement } from "react";
2
- /**
3
- * WordPress dependencies
4
- */
5
- import { useContext } from '@wordpress/element';
6
- import { Disabled } from '@wordpress/components';
7
- import deprecated from '@wordpress/deprecated';
8
-
9
- /**
10
- * Internal dependencies
11
- */
12
- import InsertionPoint, { InsertionPointOpenRef } from './insertion-point';
13
- import BlockPopover from './selected-block-tools';
14
- export default function BlockToolsBackCompat({
15
- children
16
- }) {
17
- const openRef = useContext(InsertionPointOpenRef);
18
- const isDisabled = useContext(Disabled.Context);
19
-
20
- // If context is set, `BlockTools` is a parent component.
21
- if (openRef || isDisabled) {
22
- return children;
23
- }
24
- deprecated('wp.components.Popover.Slot name="block-toolbar"', {
25
- alternative: 'wp.blockEditor.BlockTools',
26
- since: '5.8',
27
- version: '6.3'
28
- });
29
- return createElement(InsertionPoint, {
30
- __unstablePopoverSlot: "block-toolbar"
31
- }, createElement(BlockPopover, {
32
- __unstablePopoverSlot: "block-toolbar"
33
- }), children);
34
- }
35
- //# sourceMappingURL=back-compat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useContext","Disabled","deprecated","InsertionPoint","InsertionPointOpenRef","BlockPopover","BlockToolsBackCompat","children","openRef","isDisabled","Context","alternative","since","version","createElement","__unstablePopoverSlot"],"sources":["@wordpress/block-editor/src/components/block-tools/back-compat.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { Disabled } from '@wordpress/components';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport InsertionPoint, { InsertionPointOpenRef } from './insertion-point';\nimport BlockPopover from './selected-block-tools';\n\nexport default function BlockToolsBackCompat( { children } ) {\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst isDisabled = useContext( Disabled.Context );\n\n\t// If context is set, `BlockTools` is a parent component.\n\tif ( openRef || isDisabled ) {\n\t\treturn children;\n\t}\n\n\tdeprecated( 'wp.components.Popover.Slot name=\"block-toolbar\"', {\n\t\talternative: 'wp.blockEditor.BlockTools',\n\t\tsince: '5.8',\n\t\tversion: '6.3',\n\t} );\n\n\treturn (\n\t\t<InsertionPoint __unstablePopoverSlot=\"block-toolbar\">\n\t\t\t<BlockPopover __unstablePopoverSlot=\"block-toolbar\" />\n\t\t\t{ children }\n\t\t</InsertionPoint>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,OAAOC,UAAU,MAAM,uBAAuB;;AAE9C;AACA;AACA;AACA,OAAOC,cAAc,IAAIC,qBAAqB,QAAQ,mBAAmB;AACzE,OAAOC,YAAY,MAAM,wBAAwB;AAEjD,eAAe,SAASC,oBAAoBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC5D,MAAMC,OAAO,GAAGR,UAAU,CAAEI,qBAAsB,CAAC;EACnD,MAAMK,UAAU,GAAGT,UAAU,CAAEC,QAAQ,CAACS,OAAQ,CAAC;;EAEjD;EACA,IAAKF,OAAO,IAAIC,UAAU,EAAG;IAC5B,OAAOF,QAAQ;EAChB;EAEAL,UAAU,CAAE,iDAAiD,EAAE;IAC9DS,WAAW,EAAE,2BAA2B;IACxCC,KAAK,EAAE,KAAK;IACZC,OAAO,EAAE;EACV,CAAE,CAAC;EAEH,OACCC,aAAA,CAACX,cAAc;IAACY,qBAAqB,EAAC;EAAe,GACpDD,aAAA,CAACT,YAAY;IAACU,qBAAqB,EAAC;EAAe,CAAE,CAAC,EACpDR,QACa,CAAC;AAEnB"}
@@ -1,83 +0,0 @@
1
- import { createElement } from "react";
2
- /**
3
- * External dependencies
4
- */
5
- import classnames from 'classnames';
6
-
7
- /**
8
- * WordPress dependencies
9
- */
10
- import { __ } from '@wordpress/i18n';
11
- import { hasBlockSupport, store as blocksStore } from '@wordpress/blocks';
12
- import { useSelect } from '@wordpress/data';
13
-
14
- /**
15
- * Internal dependencies
16
- */
17
- import NavigableToolbar from '../navigable-toolbar';
18
- import BlockToolbar from '../block-toolbar';
19
- import { store as blockEditorStore } from '../../store';
20
- import { useHasAnyBlockControls } from '../block-controls/use-has-block-controls';
21
- export default function BlockContextualToolbar({
22
- focusOnMount,
23
- isFixed,
24
- ...props
25
- }) {
26
- const {
27
- blockType,
28
- blockEditingMode,
29
- hasParents,
30
- showParentSelector,
31
- selectedBlockClientId
32
- } = useSelect(select => {
33
- const {
34
- getBlockName,
35
- getBlockParents,
36
- getSelectedBlockClientIds,
37
- getBlockEditingMode
38
- } = select(blockEditorStore);
39
- const {
40
- getBlockType
41
- } = select(blocksStore);
42
- const selectedBlockClientIds = getSelectedBlockClientIds();
43
- const _selectedBlockClientId = selectedBlockClientIds[0];
44
- const parents = getBlockParents(_selectedBlockClientId);
45
- const firstParentClientId = parents[parents.length - 1];
46
- const parentBlockName = getBlockName(firstParentClientId);
47
- const parentBlockType = getBlockType(parentBlockName);
48
- return {
49
- selectedBlockClientId: _selectedBlockClientId,
50
- blockType: _selectedBlockClientId && getBlockType(getBlockName(_selectedBlockClientId)),
51
- blockEditingMode: getBlockEditingMode(_selectedBlockClientId),
52
- hasParents: parents.length,
53
- showParentSelector: parentBlockType && getBlockEditingMode(firstParentClientId) === 'default' && hasBlockSupport(parentBlockType, '__experimentalParentSelector', true) && selectedBlockClientIds.length <= 1 && getBlockEditingMode(_selectedBlockClientId) === 'default'
54
- };
55
- }, []);
56
- const isToolbarEnabled = blockType && hasBlockSupport(blockType, '__experimentalToolbar', true);
57
- const hasAnyBlockControls = useHasAnyBlockControls();
58
- if (!isToolbarEnabled || blockEditingMode !== 'default' && !hasAnyBlockControls) {
59
- return null;
60
- }
61
-
62
- // Shifts the toolbar to make room for the parent block selector.
63
- const classes = classnames('block-editor-block-contextual-toolbar', {
64
- 'has-parent': hasParents && showParentSelector,
65
- 'is-fixed': isFixed
66
- });
67
- return createElement(NavigableToolbar, {
68
- focusOnMount: focusOnMount,
69
- focusEditorOnEscape: true,
70
- className: classes
71
- /* translators: accessibility text for the block toolbar */,
72
- "aria-label": __('Block tools'),
73
- variant: isFixed ? 'unstyled' : undefined
74
- // Resets the index whenever the active block changes so
75
- // this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169
76
- ,
77
- key: selectedBlockClientId,
78
- ...props
79
- }, createElement(BlockToolbar, {
80
- hideDragHandle: isFixed
81
- }));
82
- }
83
- //# sourceMappingURL=block-contextual-toolbar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["classnames","__","hasBlockSupport","store","blocksStore","useSelect","NavigableToolbar","BlockToolbar","blockEditorStore","useHasAnyBlockControls","BlockContextualToolbar","focusOnMount","isFixed","props","blockType","blockEditingMode","hasParents","showParentSelector","selectedBlockClientId","select","getBlockName","getBlockParents","getSelectedBlockClientIds","getBlockEditingMode","getBlockType","selectedBlockClientIds","_selectedBlockClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","isToolbarEnabled","hasAnyBlockControls","classes","createElement","focusEditorOnEscape","className","variant","undefined","key","hideDragHandle"],"sources":["@wordpress/block-editor/src/components/block-tools/block-contextual-toolbar.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { hasBlockSupport, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport NavigableToolbar from '../navigable-toolbar';\nimport BlockToolbar from '../block-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport { useHasAnyBlockControls } from '../block-controls/use-has-block-controls';\n\nexport default function BlockContextualToolbar( {\n\tfocusOnMount,\n\tisFixed,\n\t...props\n} ) {\n\tconst {\n\t\tblockType,\n\t\tblockEditingMode,\n\t\thasParents,\n\t\tshowParentSelector,\n\t\tselectedBlockClientId,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockParents,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tgetBlockEditingMode,\n\t\t} = select( blockEditorStore );\n\t\tconst { getBlockType } = select( blocksStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst _selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\tconst parents = getBlockParents( _selectedBlockClientId );\n\t\tconst firstParentClientId = parents[ parents.length - 1 ];\n\t\tconst parentBlockName = getBlockName( firstParentClientId );\n\t\tconst parentBlockType = getBlockType( parentBlockName );\n\n\t\treturn {\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tblockType:\n\t\t\t\t_selectedBlockClientId &&\n\t\t\t\tgetBlockType( getBlockName( _selectedBlockClientId ) ),\n\t\t\tblockEditingMode: getBlockEditingMode( _selectedBlockClientId ),\n\t\t\thasParents: parents.length,\n\t\t\tshowParentSelector:\n\t\t\t\tparentBlockType &&\n\t\t\t\tgetBlockEditingMode( firstParentClientId ) === 'default' &&\n\t\t\t\thasBlockSupport(\n\t\t\t\t\tparentBlockType,\n\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\ttrue\n\t\t\t\t) &&\n\t\t\t\tselectedBlockClientIds.length <= 1 &&\n\t\t\t\tgetBlockEditingMode( _selectedBlockClientId ) === 'default',\n\t\t};\n\t}, [] );\n\n\tconst isToolbarEnabled =\n\t\tblockType &&\n\t\thasBlockSupport( blockType, '__experimentalToolbar', true );\n\tconst hasAnyBlockControls = useHasAnyBlockControls();\n\tif (\n\t\t! isToolbarEnabled ||\n\t\t( blockEditingMode !== 'default' && ! hasAnyBlockControls )\n\t) {\n\t\treturn null;\n\t}\n\n\t// Shifts the toolbar to make room for the parent block selector.\n\tconst classes = classnames( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': hasParents && showParentSelector,\n\t\t'is-fixed': isFixed,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\tfocusEditorOnEscape\n\t\t\tclassName={ classes }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\tvariant={ isFixed ? 'unstyled' : undefined }\n\t\t\t// Resets the index whenever the active block changes so\n\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\tkey={ selectedBlockClientId }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t<BlockToolbar hideDragHandle={ isFixed } />\n\t\t</NavigableToolbar>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,eAAe,EAAEC,KAAK,IAAIC,WAAW,QAAQ,mBAAmB;AACzE,SAASC,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA,OAAOC,gBAAgB,MAAM,sBAAsB;AACnD,OAAOC,YAAY,MAAM,kBAAkB;AAC3C,SAASJ,KAAK,IAAIK,gBAAgB,QAAQ,aAAa;AACvD,SAASC,sBAAsB,QAAQ,0CAA0C;AAEjF,eAAe,SAASC,sBAAsBA,CAAE;EAC/CC,YAAY;EACZC,OAAO;EACP,GAAGC;AACJ,CAAC,EAAG;EACH,MAAM;IACLC,SAAS;IACTC,gBAAgB;IAChBC,UAAU;IACVC,kBAAkB;IAClBC;EACD,CAAC,GAAGb,SAAS,CAAIc,MAAM,IAAM;IAC5B,MAAM;MACLC,YAAY;MACZC,eAAe;MACfC,yBAAyB;MACzBC;IACD,CAAC,GAAGJ,MAAM,CAAEX,gBAAiB,CAAC;IAC9B,MAAM;MAAEgB;IAAa,CAAC,GAAGL,MAAM,CAAEf,WAAY,CAAC;IAC9C,MAAMqB,sBAAsB,GAAGH,yBAAyB,CAAC,CAAC;IAC1D,MAAMI,sBAAsB,GAAGD,sBAAsB,CAAE,CAAC,CAAE;IAC1D,MAAME,OAAO,GAAGN,eAAe,CAAEK,sBAAuB,CAAC;IACzD,MAAME,mBAAmB,GAAGD,OAAO,CAAEA,OAAO,CAACE,MAAM,GAAG,CAAC,CAAE;IACzD,MAAMC,eAAe,GAAGV,YAAY,CAAEQ,mBAAoB,CAAC;IAC3D,MAAMG,eAAe,GAAGP,YAAY,CAAEM,eAAgB,CAAC;IAEvD,OAAO;MACNZ,qBAAqB,EAAEQ,sBAAsB;MAC7CZ,SAAS,EACRY,sBAAsB,IACtBF,YAAY,CAAEJ,YAAY,CAAEM,sBAAuB,CAAE,CAAC;MACvDX,gBAAgB,EAAEQ,mBAAmB,CAAEG,sBAAuB,CAAC;MAC/DV,UAAU,EAAEW,OAAO,CAACE,MAAM;MAC1BZ,kBAAkB,EACjBc,eAAe,IACfR,mBAAmB,CAAEK,mBAAoB,CAAC,KAAK,SAAS,IACxD1B,eAAe,CACd6B,eAAe,EACf,8BAA8B,EAC9B,IACD,CAAC,IACDN,sBAAsB,CAACI,MAAM,IAAI,CAAC,IAClCN,mBAAmB,CAAEG,sBAAuB,CAAC,KAAK;IACpD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMM,gBAAgB,GACrBlB,SAAS,IACTZ,eAAe,CAAEY,SAAS,EAAE,uBAAuB,EAAE,IAAK,CAAC;EAC5D,MAAMmB,mBAAmB,GAAGxB,sBAAsB,CAAC,CAAC;EACpD,IACC,CAAEuB,gBAAgB,IAChBjB,gBAAgB,KAAK,SAAS,IAAI,CAAEkB,mBAAqB,EAC1D;IACD,OAAO,IAAI;EACZ;;EAEA;EACA,MAAMC,OAAO,GAAGlC,UAAU,CAAE,uCAAuC,EAAE;IACpE,YAAY,EAAEgB,UAAU,IAAIC,kBAAkB;IAC9C,UAAU,EAAEL;EACb,CAAE,CAAC;EAEH,OACCuB,aAAA,CAAC7B,gBAAgB;IAChBK,YAAY,EAAGA,YAAc;IAC7ByB,mBAAmB;IACnBC,SAAS,EAAGH;IACZ;IACA,cAAajC,EAAE,CAAE,aAAc,CAAG;IAClCqC,OAAO,EAAG1B,OAAO,GAAG,UAAU,GAAG2B;IACjC;IACA;IAAA;IACAC,GAAG,EAAGtB,qBAAuB;IAAA,GACxBL;EAAK,GAEVsB,aAAA,CAAC5B,YAAY;IAACkC,cAAc,EAAG7B;EAAS,CAAE,CACzB,CAAC;AAErB"}
@@ -1,105 +0,0 @@
1
- import { createElement } from "react";
2
- /**
3
- * External dependencies
4
- */
5
- import classnames from 'classnames';
6
-
7
- /**
8
- * WordPress dependencies
9
- */
10
- import { useRef, useEffect } from '@wordpress/element';
11
- import { useDispatch, useSelect } from '@wordpress/data';
12
- import { useShortcut } from '@wordpress/keyboard-shortcuts';
13
-
14
- /**
15
- * Internal dependencies
16
- */
17
- import BlockSelectionButton from './block-selection-button';
18
- import BlockContextualToolbar from './block-contextual-toolbar';
19
- import { store as blockEditorStore } from '../../store';
20
- import BlockPopover from '../block-popover';
21
- import useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';
22
- import useSelectedBlockToolProps from './use-selected-block-tool-props';
23
- import { useShouldContextualToolbarShow } from '../../utils/use-should-contextual-toolbar-show';
24
- export default function SelectedBlockTools({
25
- clientId,
26
- showEmptyBlockSideInserter,
27
- __unstableContentRef
28
- }) {
29
- const {
30
- capturingClientId,
31
- isInsertionPointVisible,
32
- lastClientId,
33
- rootClientId
34
- } = useSelectedBlockToolProps(clientId);
35
- const {
36
- shouldShowBreadcrumb
37
- } = useSelect(select => {
38
- const {
39
- hasMultiSelection,
40
- __unstableGetEditorMode
41
- } = select(blockEditorStore);
42
- const editorMode = __unstableGetEditorMode();
43
- return {
44
- shouldShowBreadcrumb: !hasMultiSelection() && (editorMode === 'navigation' || editorMode === 'zoom-out')
45
- };
46
- }, []);
47
- const isToolbarForced = useRef(false);
48
- const {
49
- shouldShowContextualToolbar,
50
- canFocusHiddenToolbar
51
- } = useShouldContextualToolbarShow();
52
- const {
53
- stopTyping
54
- } = useDispatch(blockEditorStore);
55
- useShortcut('core/block-editor/focus-toolbar', () => {
56
- isToolbarForced.current = true;
57
- stopTyping(true);
58
- }, {
59
- isDisabled: !canFocusHiddenToolbar
60
- });
61
- useEffect(() => {
62
- isToolbarForced.current = false;
63
- });
64
-
65
- // Stores the active toolbar item index so the block toolbar can return focus
66
- // to it when re-mounting.
67
- const initialToolbarItemIndexRef = useRef();
68
- useEffect(() => {
69
- // Resets the index whenever the active block changes so this is not
70
- // persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169
71
- initialToolbarItemIndexRef.current = undefined;
72
- }, [clientId]);
73
- const popoverProps = useBlockToolbarPopoverProps({
74
- contentElement: __unstableContentRef?.current,
75
- clientId
76
- });
77
- if (showEmptyBlockSideInserter) {
78
- return null;
79
- }
80
- if (shouldShowBreadcrumb || shouldShowContextualToolbar) {
81
- return createElement(BlockPopover, {
82
- clientId: capturingClientId || clientId,
83
- bottomClientId: lastClientId,
84
- className: classnames('block-editor-block-list__block-popover', {
85
- 'is-insertion-point-visible': isInsertionPointVisible
86
- }),
87
- resize: false,
88
- ...popoverProps
89
- }, shouldShowContextualToolbar && createElement(BlockContextualToolbar
90
- // If the toolbar is being shown because of being forced
91
- // it should focus the toolbar right after the mount.
92
- , {
93
- focusOnMount: isToolbarForced.current,
94
- __experimentalInitialIndex: initialToolbarItemIndexRef.current,
95
- __experimentalOnIndexChange: index => {
96
- initialToolbarItemIndexRef.current = index;
97
- }
98
- }), shouldShowBreadcrumb && createElement(BlockSelectionButton, {
99
- clientId: clientId,
100
- rootClientId: rootClientId
101
- }));
102
- }
103
- return null;
104
- }
105
- //# sourceMappingURL=selected-block-tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["classnames","useRef","useEffect","useDispatch","useSelect","useShortcut","BlockSelectionButton","BlockContextualToolbar","store","blockEditorStore","BlockPopover","useBlockToolbarPopoverProps","useSelectedBlockToolProps","useShouldContextualToolbarShow","SelectedBlockTools","clientId","showEmptyBlockSideInserter","__unstableContentRef","capturingClientId","isInsertionPointVisible","lastClientId","rootClientId","shouldShowBreadcrumb","select","hasMultiSelection","__unstableGetEditorMode","editorMode","isToolbarForced","shouldShowContextualToolbar","canFocusHiddenToolbar","stopTyping","current","isDisabled","initialToolbarItemIndexRef","undefined","popoverProps","contentElement","createElement","bottomClientId","className","resize","focusOnMount","__experimentalInitialIndex","__experimentalOnIndexChange","index"],"sources":["@wordpress/block-editor/src/components/block-tools/selected-block-tools.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\n\n/**\n * Internal dependencies\n */\nimport BlockSelectionButton from './block-selection-button';\nimport BlockContextualToolbar from './block-contextual-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport BlockPopover from '../block-popover';\nimport useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';\nimport useSelectedBlockToolProps from './use-selected-block-tool-props';\nimport { useShouldContextualToolbarShow } from '../../utils/use-should-contextual-toolbar-show';\n\nexport default function SelectedBlockTools( {\n\tclientId,\n\tshowEmptyBlockSideInserter,\n\t__unstableContentRef,\n} ) {\n\tconst {\n\t\tcapturingClientId,\n\t\tisInsertionPointVisible,\n\t\tlastClientId,\n\t\trootClientId,\n\t} = useSelectedBlockToolProps( clientId );\n\n\tconst { shouldShowBreadcrumb } = useSelect( ( select ) => {\n\t\tconst { hasMultiSelection, __unstableGetEditorMode } =\n\t\t\tselect( blockEditorStore );\n\n\t\tconst editorMode = __unstableGetEditorMode();\n\n\t\treturn {\n\t\t\tshouldShowBreadcrumb:\n\t\t\t\t! hasMultiSelection() &&\n\t\t\t\t( editorMode === 'navigation' || editorMode === 'zoom-out' ),\n\t\t};\n\t}, [] );\n\n\tconst isToolbarForced = useRef( false );\n\tconst { shouldShowContextualToolbar, canFocusHiddenToolbar } =\n\t\tuseShouldContextualToolbarShow();\n\n\tconst { stopTyping } = useDispatch( blockEditorStore );\n\n\tuseShortcut(\n\t\t'core/block-editor/focus-toolbar',\n\t\t() => {\n\t\t\tisToolbarForced.current = true;\n\t\t\tstopTyping( true );\n\t\t},\n\t\t{\n\t\t\tisDisabled: ! canFocusHiddenToolbar,\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tisToolbarForced.current = false;\n\t} );\n\n\t// Stores the active toolbar item index so the block toolbar can return focus\n\t// to it when re-mounting.\n\tconst initialToolbarItemIndexRef = useRef();\n\n\tuseEffect( () => {\n\t\t// Resets the index whenever the active block changes so this is not\n\t\t// persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\tinitialToolbarItemIndexRef.current = undefined;\n\t}, [ clientId ] );\n\n\tconst popoverProps = useBlockToolbarPopoverProps( {\n\t\tcontentElement: __unstableContentRef?.current,\n\t\tclientId,\n\t} );\n\n\tif ( showEmptyBlockSideInserter ) {\n\t\treturn null;\n\t}\n\n\tif ( shouldShowBreadcrumb || shouldShowContextualToolbar ) {\n\t\treturn (\n\t\t\t<BlockPopover\n\t\t\t\tclientId={ capturingClientId || clientId }\n\t\t\t\tbottomClientId={ lastClientId }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-block-list__block-popover',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t\tresize={ false }\n\t\t\t\t{ ...popoverProps }\n\t\t\t>\n\t\t\t\t{ shouldShowContextualToolbar && (\n\t\t\t\t\t<BlockContextualToolbar\n\t\t\t\t\t\t// If the toolbar is being shown because of being forced\n\t\t\t\t\t\t// it should focus the toolbar right after the mount.\n\t\t\t\t\t\tfocusOnMount={ isToolbarForced.current }\n\t\t\t\t\t\t__experimentalInitialIndex={\n\t\t\t\t\t\t\tinitialToolbarItemIndexRef.current\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__experimentalOnIndexChange={ ( index ) => {\n\t\t\t\t\t\t\tinitialToolbarItemIndexRef.current = index;\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ shouldShowBreadcrumb && (\n\t\t\t\t\t<BlockSelectionButton\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockPopover>\n\t\t);\n\t}\n\n\treturn null;\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,MAAM,EAAEC,SAAS,QAAQ,oBAAoB;AACtD,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,WAAW,QAAQ,+BAA+B;;AAE3D;AACA;AACA;AACA,OAAOC,oBAAoB,MAAM,0BAA0B;AAC3D,OAAOC,sBAAsB,MAAM,4BAA4B;AAC/D,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,OAAOC,YAAY,MAAM,kBAAkB;AAC3C,OAAOC,2BAA2B,MAAM,mCAAmC;AAC3E,OAAOC,yBAAyB,MAAM,iCAAiC;AACvE,SAASC,8BAA8B,QAAQ,gDAAgD;AAE/F,eAAe,SAASC,kBAAkBA,CAAE;EAC3CC,QAAQ;EACRC,0BAA0B;EAC1BC;AACD,CAAC,EAAG;EACH,MAAM;IACLC,iBAAiB;IACjBC,uBAAuB;IACvBC,YAAY;IACZC;EACD,CAAC,GAAGT,yBAAyB,CAAEG,QAAS,CAAC;EAEzC,MAAM;IAAEO;EAAqB,CAAC,GAAGlB,SAAS,CAAImB,MAAM,IAAM;IACzD,MAAM;MAAEC,iBAAiB;MAAEC;IAAwB,CAAC,GACnDF,MAAM,CAAEd,gBAAiB,CAAC;IAE3B,MAAMiB,UAAU,GAAGD,uBAAuB,CAAC,CAAC;IAE5C,OAAO;MACNH,oBAAoB,EACnB,CAAEE,iBAAiB,CAAC,CAAC,KACnBE,UAAU,KAAK,YAAY,IAAIA,UAAU,KAAK,UAAU;IAC5D,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMC,eAAe,GAAG1B,MAAM,CAAE,KAAM,CAAC;EACvC,MAAM;IAAE2B,2BAA2B;IAAEC;EAAsB,CAAC,GAC3DhB,8BAA8B,CAAC,CAAC;EAEjC,MAAM;IAAEiB;EAAW,CAAC,GAAG3B,WAAW,CAAEM,gBAAiB,CAAC;EAEtDJ,WAAW,CACV,iCAAiC,EACjC,MAAM;IACLsB,eAAe,CAACI,OAAO,GAAG,IAAI;IAC9BD,UAAU,CAAE,IAAK,CAAC;EACnB,CAAC,EACD;IACCE,UAAU,EAAE,CAAEH;EACf,CACD,CAAC;EAED3B,SAAS,CAAE,MAAM;IAChByB,eAAe,CAACI,OAAO,GAAG,KAAK;EAChC,CAAE,CAAC;;EAEH;EACA;EACA,MAAME,0BAA0B,GAAGhC,MAAM,CAAC,CAAC;EAE3CC,SAAS,CAAE,MAAM;IAChB;IACA;IACA+B,0BAA0B,CAACF,OAAO,GAAGG,SAAS;EAC/C,CAAC,EAAE,CAAEnB,QAAQ,CAAG,CAAC;EAEjB,MAAMoB,YAAY,GAAGxB,2BAA2B,CAAE;IACjDyB,cAAc,EAAEnB,oBAAoB,EAAEc,OAAO;IAC7ChB;EACD,CAAE,CAAC;EAEH,IAAKC,0BAA0B,EAAG;IACjC,OAAO,IAAI;EACZ;EAEA,IAAKM,oBAAoB,IAAIM,2BAA2B,EAAG;IAC1D,OACCS,aAAA,CAAC3B,YAAY;MACZK,QAAQ,EAAGG,iBAAiB,IAAIH,QAAU;MAC1CuB,cAAc,EAAGlB,YAAc;MAC/BmB,SAAS,EAAGvC,UAAU,CACrB,wCAAwC,EACxC;QACC,4BAA4B,EAAEmB;MAC/B,CACD,CAAG;MACHqB,MAAM,EAAG,KAAO;MAAA,GACXL;IAAY,GAEfP,2BAA2B,IAC5BS,aAAA,CAAC9B;IACA;IACA;IAAA;MACAkC,YAAY,EAAGd,eAAe,CAACI,OAAS;MACxCW,0BAA0B,EACzBT,0BAA0B,CAACF,OAC3B;MACDY,2BAA2B,EAAKC,KAAK,IAAM;QAC1CX,0BAA0B,CAACF,OAAO,GAAGa,KAAK;MAC3C;IAAG,CACH,CACD,EACCtB,oBAAoB,IACrBe,aAAA,CAAC/B,oBAAoB;MACpBS,QAAQ,EAAGA,QAAU;MACrBM,YAAY,EAAGA;IAAc,CAC7B,CAEW,CAAC;EAEjB;EAEA,OAAO,IAAI;AACZ"}
@@ -1,15 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useEffect, useState } from '@wordpress/element';
5
- import { useDebounce } from '@wordpress/compose';
6
- export default function useDebouncedInput(defaultValue = '') {
7
- const [input, setInput] = useState(defaultValue);
8
- const [debouncedInput, setDebouncedState] = useState(defaultValue);
9
- const setDebouncedInput = useDebounce(setDebouncedState, 250);
10
- useEffect(() => {
11
- setDebouncedInput(input);
12
- }, [input]);
13
- return [input, setInput, debouncedInput];
14
- }
15
- //# sourceMappingURL=use-debounced-input.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useEffect","useState","useDebounce","useDebouncedInput","defaultValue","input","setInput","debouncedInput","setDebouncedState","setDebouncedInput"],"sources":["@wordpress/block-editor/src/components/inserter/hooks/use-debounced-input.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useState } from '@wordpress/element';\nimport { useDebounce } from '@wordpress/compose';\n\nexport default function useDebouncedInput( defaultValue = '' ) {\n\tconst [ input, setInput ] = useState( defaultValue );\n\tconst [ debouncedInput, setDebouncedState ] = useState( defaultValue );\n\n\tconst setDebouncedInput = useDebounce( setDebouncedState, 250 );\n\n\tuseEffect( () => {\n\t\tsetDebouncedInput( input );\n\t}, [ input ] );\n\n\treturn [ input, setInput, debouncedInput ];\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,oBAAoB;AACxD,SAASC,WAAW,QAAQ,oBAAoB;AAEhD,eAAe,SAASC,iBAAiBA,CAAEC,YAAY,GAAG,EAAE,EAAG;EAC9D,MAAM,CAAEC,KAAK,EAAEC,QAAQ,CAAE,GAAGL,QAAQ,CAAEG,YAAa,CAAC;EACpD,MAAM,CAAEG,cAAc,EAAEC,iBAAiB,CAAE,GAAGP,QAAQ,CAAEG,YAAa,CAAC;EAEtE,MAAMK,iBAAiB,GAAGP,WAAW,CAAEM,iBAAiB,EAAE,GAAI,CAAC;EAE/DR,SAAS,CAAE,MAAM;IAChBS,iBAAiB,CAAEJ,KAAM,CAAC;EAC3B,CAAC,EAAE,CAAEA,KAAK,CAAG,CAAC;EAEd,OAAO,CAAEA,KAAK,EAAEC,QAAQ,EAAEC,cAAc,CAAE;AAC3C"}
@@ -1,32 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useSelect } from '@wordpress/data';
5
-
6
- /**
7
- * Internal dependencies
8
- */
9
- import { useBlockEditContext } from '../block-edit/context';
10
- import { store as blockEditorStore } from '../../store';
11
- export default function useDisplayBlockControls() {
12
- const {
13
- isSelected,
14
- clientId,
15
- name
16
- } = useBlockEditContext();
17
- return useSelect(select => {
18
- if (isSelected) {
19
- return true;
20
- }
21
- const {
22
- getBlockName,
23
- isFirstMultiSelectedBlock,
24
- getMultiSelectedBlockClientIds
25
- } = select(blockEditorStore);
26
- if (isFirstMultiSelectedBlock(clientId)) {
27
- return getMultiSelectedBlockClientIds().every(id => getBlockName(id) === name);
28
- }
29
- return false;
30
- }, [clientId, isSelected, name]);
31
- }
32
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useSelect","useBlockEditContext","store","blockEditorStore","useDisplayBlockControls","isSelected","clientId","name","select","getBlockName","isFirstMultiSelectedBlock","getMultiSelectedBlockClientIds","every","id"],"sources":["@wordpress/block-editor/src/components/use-display-block-controls/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditContext } from '../block-edit/context';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function useDisplayBlockControls() {\n\tconst { isSelected, clientId, name } = useBlockEditContext();\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( isSelected ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tif ( isFirstMultiSelectedBlock( clientId ) ) {\n\t\t\t\treturn getMultiSelectedBlockClientIds().every(\n\t\t\t\t\t( id ) => getBlockName( id ) === name\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\t\t[ clientId, isSelected, name ]\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AAEvD,eAAe,SAASC,uBAAuBA,CAAA,EAAG;EACjD,MAAM;IAAEC,UAAU;IAAEC,QAAQ;IAAEC;EAAK,CAAC,GAAGN,mBAAmB,CAAC,CAAC;EAC5D,OAAOD,SAAS,CACbQ,MAAM,IAAM;IACb,IAAKH,UAAU,EAAG;MACjB,OAAO,IAAI;IACZ;IAEA,MAAM;MACLI,YAAY;MACZC,yBAAyB;MACzBC;IACD,CAAC,GAAGH,MAAM,CAAEL,gBAAiB,CAAC;IAE9B,IAAKO,yBAAyB,CAAEJ,QAAS,CAAC,EAAG;MAC5C,OAAOK,8BAA8B,CAAC,CAAC,CAACC,KAAK,CAC1CC,EAAE,IAAMJ,YAAY,CAAEI,EAAG,CAAC,KAAKN,IAClC,CAAC;IACF;IAEA,OAAO,KAAK;EACb,CAAC,EACD,CAAED,QAAQ,EAAED,UAAU,EAAEE,IAAI,CAC7B,CAAC;AACF"}
@@ -1,32 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useSelect } from '@wordpress/data';
5
- import { hasBlockSupport } from '@wordpress/blocks';
6
-
7
- /**
8
- * Internal dependencies
9
- */
10
- import { useBlockEditContext } from '../block-edit/context';
11
- import { store as blockEditorStore } from '../../store';
12
- export default function useDisplayBlockControls() {
13
- const {
14
- isSelected,
15
- clientId,
16
- name
17
- } = useBlockEditContext();
18
- return useSelect(select => {
19
- const {
20
- getBlockName,
21
- getBlockRootClientId
22
- } = select(blockEditorStore);
23
- const parentId = getBlockRootClientId(clientId);
24
- const parentBlockName = getBlockName(parentId);
25
- const hideControls = hasBlockSupport(parentBlockName, '__experimentalHideChildBlockControls', false);
26
- if (!hideControls && isSelected) {
27
- return true;
28
- }
29
- return false;
30
- }, [clientId, isSelected, name]);
31
- }
32
- //# sourceMappingURL=index.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useSelect","hasBlockSupport","useBlockEditContext","store","blockEditorStore","useDisplayBlockControls","isSelected","clientId","name","select","getBlockName","getBlockRootClientId","parentId","parentBlockName","hideControls"],"sources":["@wordpress/block-editor/src/components/use-display-block-controls/index.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { hasBlockSupport } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditContext } from '../block-edit/context';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function useDisplayBlockControls() {\n\tconst { isSelected, clientId, name } = useBlockEditContext();\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockName, getBlockRootClientId } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst parentId = getBlockRootClientId( clientId );\n\t\t\tconst parentBlockName = getBlockName( parentId );\n\n\t\t\tconst hideControls = hasBlockSupport(\n\t\t\t\tparentBlockName,\n\t\t\t\t'__experimentalHideChildBlockControls',\n\t\t\t\tfalse\n\t\t\t);\n\n\t\t\tif ( ! hideControls && isSelected ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\t\t[ clientId, isSelected, name ]\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,eAAe,QAAQ,mBAAmB;;AAEnD;AACA;AACA;AACA,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AAEvD,eAAe,SAASC,uBAAuBA,CAAA,EAAG;EACjD,MAAM;IAAEC,UAAU;IAAEC,QAAQ;IAAEC;EAAK,CAAC,GAAGN,mBAAmB,CAAC,CAAC;EAC5D,OAAOF,SAAS,CACbS,MAAM,IAAM;IACb,MAAM;MAAEC,YAAY;MAAEC;IAAqB,CAAC,GAC3CF,MAAM,CAAEL,gBAAiB,CAAC;IAE3B,MAAMQ,QAAQ,GAAGD,oBAAoB,CAAEJ,QAAS,CAAC;IACjD,MAAMM,eAAe,GAAGH,YAAY,CAAEE,QAAS,CAAC;IAEhD,MAAME,YAAY,GAAGb,eAAe,CACnCY,eAAe,EACf,sCAAsC,EACtC,KACD,CAAC;IAED,IAAK,CAAEC,YAAY,IAAIR,UAAU,EAAG;MACnC,OAAO,IAAI;IACZ;IAEA,OAAO,KAAK;EACb,CAAC,EACD,CAAEC,QAAQ,EAAED,UAAU,EAAEE,IAAI,CAC7B,CAAC;AACF"}
@@ -1,66 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import classnames from 'classnames';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import { useSelect } from '@wordpress/data';
10
- import { isReusableBlock, getBlockType } from '@wordpress/blocks';
11
-
12
- /**
13
- * Internal dependencies
14
- */
15
- import { store as blockEditorStore } from '../../../store';
16
-
17
- /**
18
- * Returns the class names used for the different states of the block.
19
- *
20
- * @param {string} clientId The block client ID.
21
- *
22
- * @return {string} The class names.
23
- */
24
- export function useBlockClassNames( clientId ) {
25
- return useSelect(
26
- ( select ) => {
27
- const {
28
- isBlockBeingDragged,
29
- isBlockHighlighted,
30
- isBlockSelected,
31
- isBlockMultiSelected,
32
- getBlockName,
33
- getSettings,
34
- hasSelectedInnerBlock,
35
- isTyping,
36
- __unstableIsFullySelected,
37
- __unstableSelectionHasUnmergeableBlock,
38
- } = select( blockEditorStore );
39
- const { outlineMode } = getSettings();
40
- const isDragging = isBlockBeingDragged( clientId );
41
- const isSelected = isBlockSelected( clientId );
42
- const name = getBlockName( clientId );
43
- const checkDeep = true;
44
- // "ancestor" is the more appropriate label due to "deep" check.
45
- const isAncestorOfSelectedBlock = hasSelectedInnerBlock(
46
- clientId,
47
- checkDeep
48
- );
49
- const isMultiSelected = isBlockMultiSelected( clientId );
50
- return classnames( {
51
- 'is-selected': isSelected,
52
- 'is-highlighted': isBlockHighlighted( clientId ),
53
- 'is-multi-selected': isMultiSelected,
54
- 'is-partially-selected':
55
- isMultiSelected &&
56
- ! __unstableIsFullySelected() &&
57
- ! __unstableSelectionHasUnmergeableBlock(),
58
- 'is-reusable': isReusableBlock( getBlockType( name ) ),
59
- 'is-dragging': isDragging,
60
- 'has-child-selected': isAncestorOfSelectedBlock,
61
- 'remove-outline': isSelected && outlineMode && isTyping(),
62
- } );
63
- },
64
- [ clientId ]
65
- );
66
- }
@@ -1,44 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useSelect } from '@wordpress/data';
5
- import { getBlockType } from '@wordpress/blocks';
6
-
7
- /**
8
- * Internal dependencies
9
- */
10
- import { store as blockEditorStore } from '../../../store';
11
-
12
- /**
13
- * Returns the custom class name if the block is a light block.
14
- *
15
- * @param {string} clientId The block client ID.
16
- *
17
- * @return {string} The custom class name.
18
- */
19
- export function useBlockCustomClassName( clientId ) {
20
- // It's good for this to be a separate selector because it will be executed
21
- // on every attribute change, while the other selectors are not re-evaluated
22
- // as much.
23
- return useSelect(
24
- ( select ) => {
25
- const { getBlockName, getBlockAttributes } =
26
- select( blockEditorStore );
27
- const attributes = getBlockAttributes( clientId );
28
-
29
- if ( ! attributes?.className ) {
30
- return;
31
- }
32
-
33
- const blockType = getBlockType( getBlockName( clientId ) );
34
- const hasLightBlockWrapper = blockType?.apiVersion > 1;
35
-
36
- if ( ! hasLightBlockWrapper ) {
37
- return;
38
- }
39
-
40
- return attributes.className;
41
- },
42
- [ clientId ]
43
- );
44
- }