@wordpress/block-editor 12.9.0 → 12.10.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 (463) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +33 -3
  3. package/build/components/block-canvas/index.js +107 -0
  4. package/build/components/block-canvas/index.js.map +1 -0
  5. package/build/components/block-inspector/index.js +4 -1
  6. package/build/components/block-inspector/index.js.map +1 -1
  7. package/build/components/block-patterns-list/index.js +19 -4
  8. package/build/components/block-patterns-list/index.js.map +1 -1
  9. package/build/components/block-patterns-paging/index.js +66 -0
  10. package/build/components/block-patterns-paging/index.js.map +1 -0
  11. package/build/components/block-settings-menu/block-settings-dropdown.js +28 -0
  12. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  13. package/build/components/block-settings-menu-controls/index.js +4 -7
  14. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  15. package/build/components/block-styles/index.js +1 -0
  16. package/build/components/block-styles/index.js.map +1 -1
  17. package/build/components/block-toolbar/block-toolbar-menu.native.js +3 -7
  18. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  19. package/build/components/block-tools/block-contextual-toolbar.js +18 -7
  20. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  21. package/build/components/block-tools/block-selection-button.js +5 -1
  22. package/build/components/block-tools/block-selection-button.js.map +1 -1
  23. package/build/components/border-radius-control/input-controls.js +1 -1
  24. package/build/components/border-radius-control/input-controls.js.map +1 -1
  25. package/build/components/border-radius-control/linked-button.js +2 -4
  26. package/build/components/border-radius-control/linked-button.js.map +1 -1
  27. package/build/components/colors/with-colors.js.map +1 -1
  28. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -21
  29. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  30. package/build/components/default-block-appender/index.native.js +20 -1
  31. package/build/components/default-block-appender/index.native.js.map +1 -1
  32. package/build/components/duotone/utils.js +68 -0
  33. package/build/components/duotone/utils.js.map +1 -1
  34. package/build/components/editor-styles/index.js +28 -9
  35. package/build/components/editor-styles/index.js.map +1 -1
  36. package/build/components/global-styles/hooks.js +2 -101
  37. package/build/components/global-styles/hooks.js.map +1 -1
  38. package/build/components/global-styles/image-settings-panel.js +61 -0
  39. package/build/components/global-styles/image-settings-panel.js.map +1 -0
  40. package/build/components/global-styles/index.js +11 -17
  41. package/build/components/global-styles/index.js.map +1 -1
  42. package/build/components/global-styles/use-global-styles-output.js +19 -15
  43. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  44. package/build/components/global-styles/utils.js +1 -1
  45. package/build/components/global-styles/utils.js.map +1 -1
  46. package/build/components/iframe/index.js +67 -33
  47. package/build/components/iframe/index.js.map +1 -1
  48. package/build/components/image-editor/use-save-image.js +2 -5
  49. package/build/components/image-editor/use-save-image.js.map +1 -1
  50. package/build/components/image-editor/use-transform-image.js +9 -9
  51. package/build/components/image-editor/use-transform-image.js.map +1 -1
  52. package/build/components/index.js +8 -12
  53. package/build/components/index.js.map +1 -1
  54. package/build/components/index.native.js +6 -5
  55. package/build/components/index.native.js.map +1 -1
  56. package/build/components/inner-blocks/use-nested-settings-update.js +13 -7
  57. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  58. package/build/components/inserter/block-patterns-explorer/explorer.js +12 -6
  59. package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  60. package/build/components/inserter/block-patterns-explorer/patterns-list.js +57 -23
  61. package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  62. package/build/components/inserter/block-patterns-explorer/sidebar.js +24 -9
  63. package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  64. package/build/components/inserter/block-patterns-source-filter.js +54 -0
  65. package/build/components/inserter/block-patterns-source-filter.js.map +1 -0
  66. package/build/components/inserter/block-patterns-sync-filter.js +46 -0
  67. package/build/components/inserter/block-patterns-sync-filter.js.map +1 -0
  68. package/build/components/inserter/block-patterns-tab.js +91 -45
  69. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  70. package/build/components/inserter/hooks/use-patterns-paging.js +57 -0
  71. package/build/components/inserter/hooks/use-patterns-paging.js.map +1 -0
  72. package/build/components/inserter/hooks/use-patterns-state.js +21 -10
  73. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  74. package/build/components/inserter/menu.js +13 -11
  75. package/build/components/inserter/menu.js.map +1 -1
  76. package/build/components/inserter/search-results.js +4 -3
  77. package/build/components/inserter/search-results.js.map +1 -1
  78. package/build/components/inserter/tabs.js +1 -12
  79. package/build/components/inserter/tabs.js.map +1 -1
  80. package/build/components/inspector-controls/block-support-slot-container.js +12 -1
  81. package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
  82. package/build/components/inspector-controls/fill.js +24 -13
  83. package/build/components/inspector-controls/fill.js.map +1 -1
  84. package/build/components/inspector-controls/groups.js +5 -3
  85. package/build/components/inspector-controls/groups.js.map +1 -1
  86. package/build/components/inspector-controls/slot.js +13 -0
  87. package/build/components/inspector-controls/slot.js.map +1 -1
  88. package/build/components/inspector-controls-tabs/styles-tab.js +3 -0
  89. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  90. package/build/components/link-control/index.js +13 -2
  91. package/build/components/link-control/index.js.map +1 -1
  92. package/build/components/link-control/settings.js +2 -1
  93. package/build/components/link-control/settings.js.map +1 -1
  94. package/build/components/list-view/block-select-button.js +1 -3
  95. package/build/components/list-view/block-select-button.js.map +1 -1
  96. package/build/components/list-view/block.js +13 -1
  97. package/build/components/list-view/block.js.map +1 -1
  98. package/build/components/list-view/use-block-selection.js +29 -24
  99. package/build/components/list-view/use-block-selection.js.map +1 -1
  100. package/build/components/media-placeholder/index.js +2 -2
  101. package/build/components/media-placeholder/index.js.map +1 -1
  102. package/build/components/media-placeholder/index.native.js +11 -11
  103. package/build/components/media-placeholder/index.native.js.map +1 -1
  104. package/build/components/media-replace-flow/index.js +2 -3
  105. package/build/components/media-replace-flow/index.js.map +1 -1
  106. package/build/components/media-upload/constants.js +30 -0
  107. package/build/components/media-upload/constants.js.map +1 -0
  108. package/build/components/media-upload/index.native.js +63 -53
  109. package/build/components/media-upload/index.native.js.map +1 -1
  110. package/build/components/preview-options/index.js +1 -1
  111. package/build/components/preview-options/index.js.map +1 -1
  112. package/build/components/rich-text/index.js +34 -35
  113. package/build/components/rich-text/index.js.map +1 -1
  114. package/build/components/rich-text/index.native.js +14 -32
  115. package/build/components/rich-text/index.native.js.map +1 -1
  116. package/build/components/rich-text/multiline.js +95 -0
  117. package/build/components/rich-text/multiline.js.map +1 -0
  118. package/build/components/rich-text/split-value.js +10 -16
  119. package/build/components/rich-text/split-value.js.map +1 -1
  120. package/build/components/rich-text/use-enter.js +31 -40
  121. package/build/components/rich-text/use-enter.js.map +1 -1
  122. package/build/components/rich-text/use-paste-handler.js +18 -33
  123. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  124. package/build/components/spacing-sizes-control/utils.js +1 -1
  125. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  126. package/build/components/use-block-commands/index.js +30 -18
  127. package/build/components/use-block-commands/index.js.map +1 -1
  128. package/build/components/use-block-display-information/index.js +5 -2
  129. package/build/components/use-block-display-information/index.js.map +1 -1
  130. package/build/hooks/background.js +258 -0
  131. package/build/hooks/background.js.map +1 -0
  132. package/build/hooks/block-hooks.js +188 -0
  133. package/build/hooks/block-hooks.js.map +1 -0
  134. package/build/hooks/block-rename-ui.js +160 -0
  135. package/build/hooks/block-rename-ui.js.map +1 -0
  136. package/build/hooks/duotone.js +29 -42
  137. package/build/hooks/duotone.js.map +1 -1
  138. package/build/hooks/index.js +2 -2
  139. package/build/hooks/index.js.map +1 -1
  140. package/build/hooks/layout.js +31 -14
  141. package/build/hooks/layout.js.map +1 -1
  142. package/build/hooks/position.js +4 -2
  143. package/build/hooks/position.js.map +1 -1
  144. package/build/hooks/style.js +74 -25
  145. package/build/hooks/style.js.map +1 -1
  146. package/build/hooks/utils.js +4 -0
  147. package/build/hooks/utils.js.map +1 -1
  148. package/build/private-apis.js +2 -0
  149. package/build/private-apis.js.map +1 -1
  150. package/build/store/actions.js +33 -10
  151. package/build/store/actions.js.map +1 -1
  152. package/build/store/private-actions.js +42 -8
  153. package/build/store/private-actions.js.map +1 -1
  154. package/build/store/private-selectors.js +23 -0
  155. package/build/store/private-selectors.js.map +1 -1
  156. package/build/store/reducer.js +43 -1
  157. package/build/store/reducer.js.map +1 -1
  158. package/build/store/selectors.js +84 -23
  159. package/build/store/selectors.js.map +1 -1
  160. package/build/store/utils.js +0 -4
  161. package/build/store/utils.js.map +1 -1
  162. package/build-module/components/block-canvas/index.js +97 -0
  163. package/build-module/components/block-canvas/index.js.map +1 -0
  164. package/build-module/components/block-inspector/index.js +4 -1
  165. package/build-module/components/block-inspector/index.js.map +1 -1
  166. package/build-module/components/block-patterns-list/index.js +20 -5
  167. package/build-module/components/block-patterns-list/index.js.map +1 -1
  168. package/build-module/components/block-patterns-paging/index.js +59 -0
  169. package/build-module/components/block-patterns-paging/index.js.map +1 -0
  170. package/build-module/components/block-settings-menu/block-settings-dropdown.js +28 -0
  171. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  172. package/build-module/components/block-settings-menu-controls/index.js +4 -7
  173. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  174. package/build-module/components/block-styles/index.js +1 -0
  175. package/build-module/components/block-styles/index.js.map +1 -1
  176. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +3 -7
  177. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  178. package/build-module/components/block-tools/block-contextual-toolbar.js +18 -7
  179. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  180. package/build-module/components/block-tools/block-selection-button.js +5 -1
  181. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  182. package/build-module/components/border-radius-control/input-controls.js +1 -1
  183. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  184. package/build-module/components/border-radius-control/linked-button.js +2 -4
  185. package/build-module/components/border-radius-control/linked-button.js.map +1 -1
  186. package/build-module/components/colors/with-colors.js.map +1 -1
  187. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -21
  188. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  189. package/build-module/components/default-block-appender/index.native.js +20 -1
  190. package/build-module/components/default-block-appender/index.native.js.map +1 -1
  191. package/build-module/components/duotone/utils.js +65 -0
  192. package/build-module/components/duotone/utils.js.map +1 -1
  193. package/build-module/components/editor-styles/index.js +28 -9
  194. package/build-module/components/editor-styles/index.js.map +1 -1
  195. package/build-module/components/global-styles/hooks.js +3 -100
  196. package/build-module/components/global-styles/hooks.js.map +1 -1
  197. package/build-module/components/global-styles/image-settings-panel.js +53 -0
  198. package/build-module/components/global-styles/image-settings-panel.js.map +1 -0
  199. package/build-module/components/global-styles/index.js +2 -2
  200. package/build-module/components/global-styles/index.js.map +1 -1
  201. package/build-module/components/global-styles/use-global-styles-output.js +18 -16
  202. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  203. package/build-module/components/global-styles/utils.js +1 -1
  204. package/build-module/components/global-styles/utils.js.map +1 -1
  205. package/build-module/components/iframe/index.js +66 -33
  206. package/build-module/components/iframe/index.js.map +1 -1
  207. package/build-module/components/image-editor/use-save-image.js +2 -5
  208. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  209. package/build-module/components/image-editor/use-transform-image.js +9 -9
  210. package/build-module/components/image-editor/use-transform-image.js.map +1 -1
  211. package/build-module/components/index.js +1 -1
  212. package/build-module/components/index.js.map +1 -1
  213. package/build-module/components/index.native.js +2 -1
  214. package/build-module/components/index.native.js.map +1 -1
  215. package/build-module/components/inner-blocks/use-nested-settings-update.js +14 -8
  216. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  217. package/build-module/components/inserter/block-patterns-explorer/explorer.js +12 -6
  218. package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  219. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +59 -25
  220. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  221. package/build-module/components/inserter/block-patterns-explorer/sidebar.js +23 -9
  222. package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  223. package/build-module/components/inserter/block-patterns-source-filter.js +44 -0
  224. package/build-module/components/inserter/block-patterns-source-filter.js.map +1 -0
  225. package/build-module/components/inserter/block-patterns-sync-filter.js +38 -0
  226. package/build-module/components/inserter/block-patterns-sync-filter.js.map +1 -0
  227. package/build-module/components/inserter/block-patterns-tab.js +87 -46
  228. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  229. package/build-module/components/inserter/hooks/use-patterns-paging.js +50 -0
  230. package/build-module/components/inserter/hooks/use-patterns-paging.js.map +1 -0
  231. package/build-module/components/inserter/hooks/use-patterns-state.js +22 -10
  232. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  233. package/build-module/components/inserter/menu.js +13 -11
  234. package/build-module/components/inserter/menu.js.map +1 -1
  235. package/build-module/components/inserter/search-results.js +4 -3
  236. package/build-module/components/inserter/search-results.js.map +1 -1
  237. package/build-module/components/inserter/tabs.js +1 -12
  238. package/build-module/components/inserter/tabs.js.map +1 -1
  239. package/build-module/components/inspector-controls/block-support-slot-container.js +13 -2
  240. package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -1
  241. package/build-module/components/inspector-controls/fill.js +25 -14
  242. package/build-module/components/inspector-controls/fill.js.map +1 -1
  243. package/build-module/components/inspector-controls/groups.js +5 -3
  244. package/build-module/components/inspector-controls/groups.js.map +1 -1
  245. package/build-module/components/inspector-controls/slot.js +15 -1
  246. package/build-module/components/inspector-controls/slot.js.map +1 -1
  247. package/build-module/components/inspector-controls-tabs/styles-tab.js +3 -0
  248. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  249. package/build-module/components/link-control/index.js +13 -2
  250. package/build-module/components/link-control/index.js.map +1 -1
  251. package/build-module/components/link-control/settings.js +2 -1
  252. package/build-module/components/link-control/settings.js.map +1 -1
  253. package/build-module/components/list-view/block-select-button.js +1 -3
  254. package/build-module/components/list-view/block-select-button.js.map +1 -1
  255. package/build-module/components/list-view/block.js +13 -1
  256. package/build-module/components/list-view/block.js.map +1 -1
  257. package/build-module/components/list-view/use-block-selection.js +30 -25
  258. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  259. package/build-module/components/media-placeholder/index.js +2 -2
  260. package/build-module/components/media-placeholder/index.js.map +1 -1
  261. package/build-module/components/media-placeholder/index.native.js +7 -7
  262. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  263. package/build-module/components/media-replace-flow/index.js +2 -3
  264. package/build-module/components/media-replace-flow/index.js.map +1 -1
  265. package/build-module/components/media-upload/constants.js +14 -0
  266. package/build-module/components/media-upload/constants.js.map +1 -0
  267. package/build-module/components/media-upload/index.native.js +53 -34
  268. package/build-module/components/media-upload/index.native.js.map +1 -1
  269. package/build-module/components/preview-options/index.js +1 -1
  270. package/build-module/components/preview-options/index.js.map +1 -1
  271. package/build-module/components/rich-text/index.js +35 -37
  272. package/build-module/components/rich-text/index.js.map +1 -1
  273. package/build-module/components/rich-text/index.native.js +15 -33
  274. package/build-module/components/rich-text/index.native.js.map +1 -1
  275. package/build-module/components/rich-text/multiline.js +87 -0
  276. package/build-module/components/rich-text/multiline.js.map +1 -0
  277. package/build-module/components/rich-text/split-value.js +10 -16
  278. package/build-module/components/rich-text/split-value.js.map +1 -1
  279. package/build-module/components/rich-text/use-enter.js +33 -42
  280. package/build-module/components/rich-text/use-enter.js.map +1 -1
  281. package/build-module/components/rich-text/use-paste-handler.js +19 -34
  282. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  283. package/build-module/components/spacing-sizes-control/utils.js +2 -2
  284. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  285. package/build-module/components/use-block-commands/index.js +28 -16
  286. package/build-module/components/use-block-commands/index.js.map +1 -1
  287. package/build-module/components/use-block-display-information/index.js +5 -2
  288. package/build-module/components/use-block-display-information/index.js.map +1 -1
  289. package/build-module/hooks/background.js +244 -0
  290. package/build-module/hooks/background.js.map +1 -0
  291. package/build-module/hooks/block-hooks.js +181 -0
  292. package/build-module/hooks/block-hooks.js.map +1 -0
  293. package/build-module/hooks/block-rename-ui.js +153 -0
  294. package/build-module/hooks/block-rename-ui.js.map +1 -0
  295. package/build-module/hooks/duotone.js +26 -39
  296. package/build-module/hooks/duotone.js.map +1 -1
  297. package/build-module/hooks/index.js +2 -2
  298. package/build-module/hooks/index.js.map +1 -1
  299. package/build-module/hooks/layout.js +33 -16
  300. package/build-module/hooks/layout.js.map +1 -1
  301. package/build-module/hooks/position.js +4 -2
  302. package/build-module/hooks/position.js.map +1 -1
  303. package/build-module/hooks/style.js +73 -24
  304. package/build-module/hooks/style.js.map +1 -1
  305. package/build-module/hooks/utils.js +4 -0
  306. package/build-module/hooks/utils.js.map +1 -1
  307. package/build-module/private-apis.js +2 -0
  308. package/build-module/private-apis.js.map +1 -1
  309. package/build-module/store/actions.js +33 -10
  310. package/build-module/store/actions.js.map +1 -1
  311. package/build-module/store/private-actions.js +39 -8
  312. package/build-module/store/private-actions.js.map +1 -1
  313. package/build-module/store/private-selectors.js +21 -0
  314. package/build-module/store/private-selectors.js.map +1 -1
  315. package/build-module/store/reducer.js +41 -1
  316. package/build-module/store/reducer.js.map +1 -1
  317. package/build-module/store/selectors.js +78 -22
  318. package/build-module/store/selectors.js.map +1 -1
  319. package/build-module/store/utils.js +0 -4
  320. package/build-module/store/utils.js.map +1 -1
  321. package/build-style/content-rtl.css +0 -1
  322. package/build-style/content.css +0 -1
  323. package/build-style/style-rtl.css +174 -131
  324. package/build-style/style.css +174 -131
  325. package/package.json +32 -32
  326. package/src/components/block-canvas/index.js +108 -0
  327. package/src/components/block-inspector/index.js +5 -1
  328. package/src/components/block-list/content.scss +0 -1
  329. package/src/components/block-patterns-list/index.js +32 -7
  330. package/src/components/block-patterns-list/style.scss +26 -9
  331. package/src/components/block-patterns-paging/index.js +92 -0
  332. package/src/components/block-patterns-paging/style.scss +42 -0
  333. package/src/components/block-settings-menu/block-settings-dropdown.js +44 -0
  334. package/src/components/block-settings-menu-controls/index.js +4 -9
  335. package/src/components/block-styles/index.js +1 -0
  336. package/src/components/block-styles/style.scss +3 -3
  337. package/src/components/block-toolbar/block-toolbar-menu.native.js +1 -6
  338. package/src/components/block-tools/block-contextual-toolbar.js +16 -5
  339. package/src/components/block-tools/block-selection-button.js +9 -1
  340. package/src/components/block-tools/style.scss +0 -98
  341. package/src/components/border-radius-control/input-controls.js +1 -1
  342. package/src/components/border-radius-control/linked-button.js +8 -11
  343. package/src/components/color-palette/test/__snapshots__/control.js.snap +34 -21
  344. package/src/components/colors/with-colors.js +3 -2
  345. package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -35
  346. package/src/components/default-block-appender/index.native.js +26 -3
  347. package/src/components/duotone/utils.js +65 -0
  348. package/src/components/editor-styles/index.js +32 -23
  349. package/src/components/global-styles/hooks.js +4 -112
  350. package/src/components/global-styles/image-settings-panel.js +71 -0
  351. package/src/components/global-styles/index.js +4 -3
  352. package/src/components/global-styles/use-global-styles-output.js +25 -16
  353. package/src/components/global-styles/utils.js +1 -2
  354. package/src/components/iframe/index.js +72 -33
  355. package/src/components/image-editor/use-save-image.js +2 -9
  356. package/src/components/image-editor/use-transform-image.js +9 -9
  357. package/src/components/index.js +1 -1
  358. package/src/components/index.native.js +2 -2
  359. package/src/components/inner-blocks/use-nested-settings-update.js +15 -10
  360. package/src/components/inserter/block-patterns-explorer/explorer.js +17 -5
  361. package/src/components/inserter/block-patterns-explorer/patterns-list.js +109 -40
  362. package/src/components/inserter/block-patterns-explorer/sidebar.js +23 -8
  363. package/src/components/inserter/block-patterns-source-filter.js +40 -0
  364. package/src/components/inserter/block-patterns-sync-filter.js +35 -0
  365. package/src/components/inserter/block-patterns-tab.js +168 -57
  366. package/src/components/inserter/hooks/use-patterns-paging.js +65 -0
  367. package/src/components/inserter/hooks/use-patterns-state.js +27 -16
  368. package/src/components/inserter/menu.js +15 -17
  369. package/src/components/inserter/search-results.js +6 -4
  370. package/src/components/inserter/style.scss +23 -2
  371. package/src/components/inserter/tabs.js +2 -12
  372. package/src/components/inserter/test/index.native.js +8 -12
  373. package/src/components/inspector-controls/block-support-slot-container.js +19 -3
  374. package/src/components/inspector-controls/fill.js +28 -14
  375. package/src/components/inspector-controls/groups.js +6 -2
  376. package/src/components/inspector-controls/slot.js +28 -3
  377. package/src/components/inspector-controls-tabs/styles-tab.js +4 -0
  378. package/src/components/link-control/index.js +14 -0
  379. package/src/components/link-control/settings.js +1 -0
  380. package/src/components/link-control/style.scss +28 -7
  381. package/src/components/link-control/test/index.js +88 -6
  382. package/src/components/list-view/block-select-button.js +1 -3
  383. package/src/components/list-view/block.js +19 -1
  384. package/src/components/list-view/style.scss +1 -2
  385. package/src/components/list-view/use-block-selection.js +38 -32
  386. package/src/components/media-placeholder/README.md +2 -2
  387. package/src/components/media-placeholder/index.js +2 -2
  388. package/src/components/media-placeholder/index.native.js +11 -12
  389. package/src/components/media-replace-flow/index.js +2 -2
  390. package/src/components/media-replace-flow/test/index.js +5 -23
  391. package/src/components/media-upload/README.md +3 -2
  392. package/src/components/media-upload/constants.js +15 -0
  393. package/src/components/media-upload/index.native.js +66 -40
  394. package/src/components/media-upload/style.native.scss +4 -0
  395. package/src/components/media-upload/test/index.native.js +2 -2
  396. package/src/components/preview-options/README.md +7 -0
  397. package/src/components/preview-options/index.js +1 -1
  398. package/src/components/rich-text/index.js +48 -44
  399. package/src/components/rich-text/index.native.js +14 -42
  400. package/src/components/rich-text/multiline.js +121 -0
  401. package/src/components/rich-text/split-value.js +10 -35
  402. package/src/components/rich-text/use-enter.js +32 -42
  403. package/src/components/rich-text/use-paste-handler.js +16 -40
  404. package/src/components/spacing-sizes-control/style.scss +5 -7
  405. package/src/components/spacing-sizes-control/utils.js +1 -2
  406. package/src/components/use-block-commands/index.js +28 -20
  407. package/src/components/use-block-display-information/index.js +3 -0
  408. package/src/hooks/background.js +288 -0
  409. package/src/hooks/background.scss +57 -0
  410. package/src/hooks/block-hooks.js +257 -0
  411. package/src/hooks/block-hooks.scss +16 -0
  412. package/src/hooks/block-rename-ui.js +230 -0
  413. package/src/hooks/block-rename-ui.scss +3 -0
  414. package/src/hooks/duotone.js +42 -43
  415. package/src/hooks/index.js +2 -2
  416. package/src/hooks/layout.js +31 -33
  417. package/src/hooks/position.js +4 -3
  418. package/src/hooks/style.js +96 -37
  419. package/src/hooks/test/align.native.js +4 -3
  420. package/src/hooks/utils.js +4 -0
  421. package/src/private-apis.js +2 -0
  422. package/src/store/actions.js +52 -10
  423. package/src/store/private-actions.js +37 -6
  424. package/src/store/private-selectors.js +21 -0
  425. package/src/store/reducer.js +38 -0
  426. package/src/store/selectors.js +107 -26
  427. package/src/store/test/actions.js +19 -8
  428. package/src/store/test/private-actions.js +17 -0
  429. package/src/store/test/reducer.js +25 -0
  430. package/src/store/test/selectors.js +130 -123
  431. package/src/store/utils.js +3 -10
  432. package/src/style.scss +4 -0
  433. package/build/components/duotone/components.js +0 -135
  434. package/build/components/duotone/components.js.map +0 -1
  435. package/build/components/duotone/index.js +0 -38
  436. package/build/components/duotone/index.js.map +0 -1
  437. package/build/components/global-styles/behaviors-panel.js +0 -64
  438. package/build/components/global-styles/behaviors-panel.js.map +0 -1
  439. package/build/components/inserter/reusable-blocks-tab.js +0 -85
  440. package/build/components/inserter/reusable-blocks-tab.js.map +0 -1
  441. package/build/hooks/auto-inserting-blocks.js +0 -174
  442. package/build/hooks/auto-inserting-blocks.js.map +0 -1
  443. package/build/hooks/behaviors.js +0 -173
  444. package/build/hooks/behaviors.js.map +0 -1
  445. package/build-module/components/duotone/components.js +0 -126
  446. package/build-module/components/duotone/components.js.map +0 -1
  447. package/build-module/components/duotone/index.js +0 -3
  448. package/build-module/components/duotone/index.js.map +0 -1
  449. package/build-module/components/global-styles/behaviors-panel.js +0 -57
  450. package/build-module/components/global-styles/behaviors-panel.js.map +0 -1
  451. package/build-module/components/inserter/reusable-blocks-tab.js +0 -76
  452. package/build-module/components/inserter/reusable-blocks-tab.js.map +0 -1
  453. package/build-module/hooks/auto-inserting-blocks.js +0 -167
  454. package/build-module/hooks/auto-inserting-blocks.js.map +0 -1
  455. package/build-module/hooks/behaviors.js +0 -166
  456. package/build-module/hooks/behaviors.js.map +0 -1
  457. package/src/components/duotone/components.js +0 -133
  458. package/src/components/duotone/index.js +0 -7
  459. package/src/components/global-styles/behaviors-panel.js +0 -71
  460. package/src/components/inserter/reusable-blocks-tab.js +0 -84
  461. package/src/components/inserter/test/reusable-blocks-tab.js +0 -73
  462. package/src/hooks/auto-inserting-blocks.js +0 -232
  463. package/src/hooks/behaviors.js +0 -206
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 12.10.0 (2023-09-20)
6
+
7
+ - The Deprecated multiline prop on RichText will now fall back to using multiple
8
+ rich text instances instead of a single multiline instance. The prop remains
9
+ deprecated.
10
+
5
11
  ## 12.9.0 (2023-08-31)
6
12
 
7
13
  ### Enhancements
package/README.md CHANGED
@@ -33,9 +33,7 @@ function MyEditorComponent() {
33
33
  onChange={ ( blocks ) => updateBlocks( blocks ) }
34
34
  >
35
35
  <BlockTools>
36
- <WritingFlow>
37
- <BlockList />
38
- </WritingFlow>
36
+ <BlockCanvas height="400px" />
39
37
  </BlockTools>
40
38
  </BlockEditorProvider>
41
39
  );
@@ -118,6 +116,38 @@ _Returns_
118
116
 
119
117
  - `WPElement`: Block Breadcrumb.
120
118
 
119
+ ### BlockCanvas
120
+
121
+ BlockCanvas component is a component used to display the canvas of the block editor. What we call the canvas is an iframe containing the block list that you can manipulate. The component is also responsible of wiring up all the necessary hooks to enable the keyboard navigation across blocks in the editor and inject content styles into the iframe.
122
+
123
+ _Usage_
124
+
125
+ ```jsx
126
+ function MyBlockEditor() {
127
+ const [ blocks, updateBlocks ] = useState( [] );
128
+ return (
129
+ <BlockEditorProvider
130
+ value={ blocks }
131
+ onInput={ updateBlocks }
132
+ onChange={ persistBlocks }
133
+ >
134
+ <BlockCanvas height="400px" />
135
+ </BlockEditorProvider>
136
+ );
137
+ }
138
+ ```
139
+
140
+ _Parameters_
141
+
142
+ - _props_ `Object`: Component props.
143
+ - _props.height_ `string`: Canvas height, defaults to 300px.
144
+ - _props.styles_ `Array`: Content styles to inject into the iframe.
145
+ - _props.children_ `WPElement`: Content of the canvas, defaults to the BlockList component.
146
+
147
+ _Returns_
148
+
149
+ - `WPElement`: Block Breadcrumb.
150
+
121
151
  ### BlockColorsStyleSelector
122
152
 
123
153
  Undocumented declaration.
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ExperimentalBlockCanvas = ExperimentalBlockCanvas;
8
+ exports.default = void 0;
9
+ var _element = require("@wordpress/element");
10
+ var _compose = require("@wordpress/compose");
11
+ var _blockList = _interopRequireDefault(require("../block-list"));
12
+ var _editorStyles = _interopRequireDefault(require("../editor-styles"));
13
+ var _iframe = _interopRequireDefault(require("../iframe"));
14
+ var _writingFlow = _interopRequireDefault(require("../writing-flow"));
15
+ var _observeTyping = require("../observe-typing");
16
+ var _copyHandler = require("../copy-handler");
17
+ var _blockSelectionClearer = require("../block-selection-clearer");
18
+ /**
19
+ * WordPress dependencies
20
+ */
21
+
22
+ /**
23
+ * Internal dependencies
24
+ */
25
+
26
+ function ExperimentalBlockCanvas({
27
+ shouldIframe = true,
28
+ height = '300px',
29
+ children = (0, _element.createElement)(_blockList.default, null),
30
+ styles,
31
+ contentRef: contentRefProp,
32
+ iframeProps
33
+ }) {
34
+ const resetTypingRef = (0, _observeTyping.useMouseMoveTypingReset)();
35
+ const copyHandler = (0, _copyHandler.useClipboardHandler)();
36
+ const clearerRef = (0, _blockSelectionClearer.useBlockSelectionClearer)();
37
+ const contentRef = (0, _compose.useMergeRefs)([copyHandler, contentRefProp, clearerRef]);
38
+ if (!shouldIframe) {
39
+ return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_editorStyles.default, {
40
+ styles: styles,
41
+ scope: ".editor-styles-wrapper"
42
+ }), (0, _element.createElement)(_writingFlow.default, {
43
+ ref: contentRef,
44
+ className: "editor-styles-wrapper",
45
+ tabIndex: -1,
46
+ style: {
47
+ height
48
+ }
49
+ }, children));
50
+ }
51
+ return (0, _element.createElement)(_iframe.default, {
52
+ ...iframeProps,
53
+ ref: resetTypingRef,
54
+ contentRef: contentRef,
55
+ style: {
56
+ width: '100%',
57
+ height,
58
+ ...iframeProps?.style
59
+ },
60
+ name: "editor-canvas"
61
+ }, (0, _element.createElement)(_editorStyles.default, {
62
+ styles: styles
63
+ }), children);
64
+ }
65
+
66
+ /**
67
+ * BlockCanvas component is a component used to display the canvas of the block editor.
68
+ * What we call the canvas is an iframe containing the block list that you can manipulate.
69
+ * The component is also responsible of wiring up all the necessary hooks to enable
70
+ * the keyboard navigation across blocks in the editor and inject content styles into the iframe.
71
+ *
72
+ * @example
73
+ *
74
+ * ```jsx
75
+ * function MyBlockEditor() {
76
+ * const [ blocks, updateBlocks ] = useState([]);
77
+ * return (
78
+ * <BlockEditorProvider
79
+ * value={ blocks }
80
+ * onInput={ updateBlocks }
81
+ * onChange={ persistBlocks }
82
+ * >
83
+ * <BlockCanvas height="400px" />
84
+ * </BlockEditorProvider>
85
+ * );
86
+ * }
87
+ * ```
88
+ *
89
+ * @param {Object} props Component props.
90
+ * @param {string} props.height Canvas height, defaults to 300px.
91
+ * @param {Array} props.styles Content styles to inject into the iframe.
92
+ * @param {WPElement} props.children Content of the canvas, defaults to the BlockList component.
93
+ * @return {WPElement} Block Breadcrumb.
94
+ */
95
+ function BlockCanvas({
96
+ children,
97
+ height,
98
+ styles
99
+ }) {
100
+ return (0, _element.createElement)(ExperimentalBlockCanvas, {
101
+ height: height,
102
+ styles: styles
103
+ }, children);
104
+ }
105
+ var _default = BlockCanvas;
106
+ exports.default = _default;
107
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_compose","require","_blockList","_interopRequireDefault","_editorStyles","_iframe","_writingFlow","_observeTyping","_copyHandler","_blockSelectionClearer","ExperimentalBlockCanvas","shouldIframe","height","children","_element","createElement","default","styles","contentRef","contentRefProp","iframeProps","resetTypingRef","useMouseMoveTypingReset","copyHandler","useClipboardHandler","clearerRef","useBlockSelectionClearer","useMergeRefs","Fragment","scope","ref","className","tabIndex","style","width","name","BlockCanvas","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-canvas/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../block-list';\nimport EditorStyles from '../editor-styles';\nimport Iframe from '../iframe';\nimport WritingFlow from '../writing-flow';\nimport { useMouseMoveTypingReset } from '../observe-typing';\nimport { useClipboardHandler } from '../copy-handler';\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\n\nexport function ExperimentalBlockCanvas( {\n\tshouldIframe = true,\n\theight = '300px',\n\tchildren = <BlockList />,\n\tstyles,\n\tcontentRef: contentRefProp,\n\tiframeProps,\n} ) {\n\tconst resetTypingRef = useMouseMoveTypingReset();\n\tconst copyHandler = useClipboardHandler();\n\tconst clearerRef = useBlockSelectionClearer();\n\tconst contentRef = useMergeRefs( [\n\t\tcopyHandler,\n\t\tcontentRefProp,\n\t\tclearerRef,\n\t] );\n\n\tif ( ! shouldIframe ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<EditorStyles\n\t\t\t\t\tstyles={ styles }\n\t\t\t\t\tscope=\".editor-styles-wrapper\"\n\t\t\t\t/>\n\t\t\t\t<WritingFlow\n\t\t\t\t\tref={ contentRef }\n\t\t\t\t\tclassName=\"editor-styles-wrapper\"\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\tstyle={ { height } }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</WritingFlow>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Iframe\n\t\t\t{ ...iframeProps }\n\t\t\tref={ resetTypingRef }\n\t\t\tcontentRef={ contentRef }\n\t\t\tstyle={ {\n\t\t\t\twidth: '100%',\n\t\t\t\theight,\n\t\t\t\t...iframeProps?.style,\n\t\t\t} }\n\t\t\tname=\"editor-canvas\"\n\t\t>\n\t\t\t<EditorStyles styles={ styles } />\n\t\t\t{ children }\n\t\t</Iframe>\n\t);\n}\n\n/**\n * BlockCanvas component is a component used to display the canvas of the block editor.\n * What we call the canvas is an iframe containing the block list that you can manipulate.\n * The component is also responsible of wiring up all the necessary hooks to enable\n * the keyboard navigation across blocks in the editor and inject content styles into the iframe.\n *\n * @example\n *\n * ```jsx\n * function MyBlockEditor() {\n * const [ blocks, updateBlocks ] = useState([]);\n * return (\n * <BlockEditorProvider\n * value={ blocks }\n * onInput={ updateBlocks }\n * onChange={ persistBlocks }\n * >\n * <BlockCanvas height=\"400px\" />\n * </BlockEditorProvider>\n * );\n * }\n * ```\n *\n * @param {Object} props Component props.\n * @param {string} props.height Canvas height, defaults to 300px.\n * @param {Array} props.styles Content styles to inject into the iframe.\n * @param {WPElement} props.children Content of the canvas, defaults to the BlockList component.\n * @return {WPElement} Block Breadcrumb.\n */\nfunction BlockCanvas( { children, height, styles } ) {\n\treturn (\n\t\t<ExperimentalBlockCanvas height={ height } styles={ styles }>\n\t\t\t{ children }\n\t\t</ExperimentalBlockCanvas>\n\t);\n}\n\nexport default BlockCanvas;\n"],"mappings":";;;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAKA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,aAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,OAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,YAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,sBAAA,GAAAR,OAAA;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AASO,SAASS,uBAAuBA,CAAE;EACxCC,YAAY,GAAG,IAAI;EACnBC,MAAM,GAAG,OAAO;EAChBC,QAAQ,GAAG,IAAAC,QAAA,CAAAC,aAAA,EAACb,UAAA,CAAAc,OAAS,MAAE,CAAC;EACxBC,MAAM;EACNC,UAAU,EAAEC,cAAc;EAC1BC;AACD,CAAC,EAAG;EACH,MAAMC,cAAc,GAAG,IAAAC,sCAAuB,EAAC,CAAC;EAChD,MAAMC,WAAW,GAAG,IAAAC,gCAAmB,EAAC,CAAC;EACzC,MAAMC,UAAU,GAAG,IAAAC,+CAAwB,EAAC,CAAC;EAC7C,MAAMR,UAAU,GAAG,IAAAS,qBAAY,EAAE,CAChCJ,WAAW,EACXJ,cAAc,EACdM,UAAU,CACT,CAAC;EAEH,IAAK,CAAEd,YAAY,EAAG;IACrB,OACC,IAAAG,QAAA,CAAAC,aAAA,EAAAD,QAAA,CAAAc,QAAA,QACC,IAAAd,QAAA,CAAAC,aAAA,EAACX,aAAA,CAAAY,OAAY;MACZC,MAAM,EAAGA,MAAQ;MACjBY,KAAK,EAAC;IAAwB,CAC9B,CAAC,EACF,IAAAf,QAAA,CAAAC,aAAA,EAACT,YAAA,CAAAU,OAAW;MACXc,GAAG,EAAGZ,UAAY;MAClBa,SAAS,EAAC,uBAAuB;MACjCC,QAAQ,EAAG,CAAC,CAAG;MACfC,KAAK,EAAG;QAAErB;MAAO;IAAG,GAElBC,QACU,CACZ,CAAC;EAEL;EAEA,OACC,IAAAC,QAAA,CAAAC,aAAA,EAACV,OAAA,CAAAW,OAAM;IAAA,GACDI,WAAW;IAChBU,GAAG,EAAGT,cAAgB;IACtBH,UAAU,EAAGA,UAAY;IACzBe,KAAK,EAAG;MACPC,KAAK,EAAE,MAAM;MACbtB,MAAM;MACN,GAAGQ,WAAW,EAAEa;IACjB,CAAG;IACHE,IAAI,EAAC;EAAe,GAEpB,IAAArB,QAAA,CAAAC,aAAA,EAACX,aAAA,CAAAY,OAAY;IAACC,MAAM,EAAGA;EAAQ,CAAE,CAAC,EAChCJ,QACK,CAAC;AAEX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASuB,WAAWA,CAAE;EAAEvB,QAAQ;EAAED,MAAM;EAAEK;AAAO,CAAC,EAAG;EACpD,OACC,IAAAH,QAAA,CAAAC,aAAA,EAACL,uBAAuB;IAACE,MAAM,EAAGA,MAAQ;IAACK,MAAM,EAAGA;EAAQ,GACzDJ,QACsB,CAAC;AAE5B;AAAC,IAAAwB,QAAA,GAEcD,WAAW;AAAAE,OAAA,CAAAtB,OAAA,GAAAqB,QAAA"}
@@ -43,7 +43,7 @@ function BlockInspectorLockedBlocks({
43
43
  getBlockName,
44
44
  getBlockEditingMode
45
45
  } = select(_store.store);
46
- return getClientIdsOfDescendants([topLevelLockedBlock]).filter(clientId => getBlockName(clientId) !== 'core/list-item' && getBlockEditingMode(clientId) === 'contentOnly');
46
+ return getClientIdsOfDescendants(topLevelLockedBlock).filter(clientId => getBlockName(clientId) !== 'core/list-item' && getBlockEditingMode(clientId) === 'contentOnly');
47
47
  }, [topLevelLockedBlock]);
48
48
  const blockInformation = (0, _useBlockDisplayInformation.default)(topLevelLockedBlock);
49
49
  return (0, _element.createElement)("div", {
@@ -227,6 +227,9 @@ const BlockInspectorSingleBlock = ({
227
227
  label: (0, _i18n.__)('Border')
228
228
  }), (0, _element.createElement)(_inspectorControls.default.Slot, {
229
229
  group: "styles"
230
+ }), (0, _element.createElement)(_inspectorControls.default.Slot, {
231
+ group: "background",
232
+ label: (0, _i18n.__)('Background')
230
233
  }), (0, _element.createElement)(_positionControlsPanel.default, null), (0, _element.createElement)("div", null, (0, _element.createElement)(_advancedControlsPanel.default, null))), (0, _element.createElement)(_skipToSelectedBlock.default, {
231
234
  key: "back"
232
235
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_blocks","_components","_data","_skipToSelectedBlock","_interopRequireDefault","_blockCard","_multiSelectionInspector","_blockVariationTransforms","_useBlockDisplayInformation","_store","_blockStyles","_defaultStylePicker","_inspectorControls","_inspectorControlsTabs","_useInspectorControlsTabs","_advancedControlsPanel","_positionControlsPanel","_useBlockInspectorAnimationSettings","_blockInfoSlotFill","_blockQuickNavigation","BlockInspectorLockedBlocks","topLevelLockedBlock","contentClientIds","useSelect","select","getClientIdsOfDescendants","getBlockName","getBlockEditingMode","blockEditorStore","filter","clientId","blockInformation","useBlockDisplayInformation","_element","createElement","className","default","isSynced","blockClientId","Slot","PanelBody","title","__","clientIds","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","blockType","getSelectedBlockClientId","getSelectedBlockCount","__unstableGetContentLockingParent","getTemplateLock","_selectedBlockClientId","_selectedBlockName","_blockType","getBlockType","undefined","availableTabs","useInspectorControlsTabs","name","showTabs","length","blockInspectorAnimationSettings","useBlockInspectorAnimationSettings","tabs","Fragment","group","label","isSelectedBlockUnregistered","getUnregisteredTypeHandlerName","BlockInspectorSingleBlockWrapper","animate","wrapper","children","AnimatedContainer","BlockInspectorSingleBlock","blockName","animationOrigin","enterDirection","__unstableMotion","div","x","opacity","transition","ease","duration","initial","key","hasBlockStyles","getBlockStyles","blocksStore","blockStyles","hasBlockSupport","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { PanelBody, __unstableMotion as motion } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockStyles from '../block-styles';\nimport DefaultStylePicker from '../default-style-picker';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport BlockInfo from '../block-info-slot-fill';\nimport BlockQuickNavigation from '../block-quick-navigation';\n\nfunction BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn getClientIdsOfDescendants( [ topLevelLockedBlock ] ).filter(\n\t\t\t\t( clientId ) =>\n\t\t\t\t\tgetBlockName( clientId ) !== 'core/list-item' &&\n\t\t\t\t\tgetBlockEditingMode( clientId ) === 'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ topLevelLockedBlock ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( topLevelLockedBlock );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ topLevelLockedBlock } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t<BlockQuickNavigation clientIds={ contentClientIds } />\n\t\t\t</PanelBody>\n\t\t</div>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\ttopLevelLockedBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\t__unstableGetContentLockingParent,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\ttopLevelLockedBlock:\n\t\t\t\t__unstableGetContentLockingParent( _selectedBlockClientId ) ||\n\t\t\t\t( getTemplateLock( _selectedBlockClientId ) === 'contentOnly'\n\t\t\t\t\t? _selectedBlockClientId\n\t\t\t\t\t: undefined ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings = useBlockInspectorAnimationSettings(\n\t\tblockType,\n\t\tselectedBlockClientId\n\t);\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\tif ( topLevelLockedBlock ) {\n\t\treturn (\n\t\t\t<BlockInspectorLockedBlocks\n\t\t\t\ttopLevelLockedBlock={ topLevelLockedBlock }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n};\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( { clientId, blockName } ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = availableTabs?.length > 1;\n\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t) && (\n\t\t\t\t\t\t\t\t\t<DefaultStylePicker\n\t\t\t\t\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t<InspectorControls.Slot group=\"list\" />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t<PositionControls />\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAMA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAKA,IAAAI,oBAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,UAAA,GAAAD,sBAAA,CAAAL,OAAA;AACA,IAAAO,wBAAA,GAAAF,sBAAA,CAAAL,OAAA;AACA,IAAAQ,yBAAA,GAAAH,sBAAA,CAAAL,OAAA;AACA,IAAAS,2BAAA,GAAAJ,sBAAA,CAAAL,OAAA;AACA,IAAAU,MAAA,GAAAV,OAAA;AACA,IAAAW,YAAA,GAAAN,sBAAA,CAAAL,OAAA;AACA,IAAAY,mBAAA,GAAAP,sBAAA,CAAAL,OAAA;AACA,IAAAa,kBAAA,GAAAR,sBAAA,CAAAL,OAAA;AACA,IAAAc,sBAAA,GAAAT,sBAAA,CAAAL,OAAA;AACA,IAAAe,yBAAA,GAAAV,sBAAA,CAAAL,OAAA;AACA,IAAAgB,sBAAA,GAAAX,sBAAA,CAAAL,OAAA;AACA,IAAAiB,sBAAA,GAAAZ,sBAAA,CAAAL,OAAA;AACA,IAAAkB,mCAAA,GAAAb,sBAAA,CAAAL,OAAA;AACA,IAAAmB,kBAAA,GAAAd,sBAAA,CAAAL,OAAA;AACA,IAAAoB,qBAAA,GAAAf,sBAAA,CAAAL,OAAA;AA/BA;AACA;AACA;;AAWA;AACA;AACA;;AAkBA,SAASqB,0BAA0BA,CAAE;EAAEC;AAAoB,CAAC,EAAG;EAC9D,MAAMC,gBAAgB,GAAG,IAAAC,eAAS,EAC/BC,MAAM,IAAM;IACb,MAAM;MACLC,yBAAyB;MACzBC,YAAY;MACZC;IACD,CAAC,GAAGH,MAAM,CAAEI,YAAiB,CAAC;IAC9B,OAAOH,yBAAyB,CAAE,CAAEJ,mBAAmB,CAAG,CAAC,CAACQ,MAAM,CAC/DC,QAAQ,IACTJ,YAAY,CAAEI,QAAS,CAAC,KAAK,gBAAgB,IAC7CH,mBAAmB,CAAEG,QAAS,CAAC,KAAK,aACtC,CAAC;EACF,CAAC,EACD,CAAET,mBAAmB,CACtB,CAAC;EACD,MAAMU,gBAAgB,GAAG,IAAAC,mCAA0B,EAAEX,mBAAoB,CAAC;EAC1E,OACC,IAAAY,QAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAA8B,GAC5C,IAAAF,QAAA,CAAAC,aAAA,EAAC7B,UAAA,CAAA+B,OAAS;IAAA,GACJL,gBAAgB;IACrBI,SAAS,EAAGJ,gBAAgB,CAACM,QAAQ,IAAI;EAAa,CACtD,CAAC,EACF,IAAAJ,QAAA,CAAAC,aAAA,EAAC3B,yBAAA,CAAA6B,OAAwB;IAACE,aAAa,EAAGjB;EAAqB,CAAE,CAAC,EAClE,IAAAY,QAAA,CAAAC,aAAA,EAAChB,kBAAA,CAAAkB,OAAS,CAACG,IAAI,MAAE,CAAC,EAClB,IAAAN,QAAA,CAAAC,aAAA,EAACjC,WAAA,CAAAuC,SAAS;IAACC,KAAK,EAAG,IAAAC,QAAE,EAAE,SAAU;EAAG,GACnC,IAAAT,QAAA,CAAAC,aAAA,EAACf,qBAAA,CAAAiB,OAAoB;IAACO,SAAS,EAAGrB;EAAkB,CAAE,CAC5C,CACP,CAAC;AAER;AAEA,MAAMsB,cAAc,GAAGA,CAAE;EAAEC,0BAA0B,GAAG;AAAK,CAAC,KAAM;EACnE,MAAM;IACLC,KAAK;IACLC,iBAAiB;IACjBC,qBAAqB;IACrBC,SAAS;IACT5B;EACD,CAAC,GAAG,IAAAE,eAAS,EAAIC,MAAM,IAAM;IAC5B,MAAM;MACL0B,wBAAwB;MACxBC,qBAAqB;MACrBzB,YAAY;MACZ0B,iCAAiC;MACjCC;IACD,CAAC,GAAG7B,MAAM,CAAEI,YAAiB,CAAC;IAE9B,MAAM0B,sBAAsB,GAAGJ,wBAAwB,CAAC,CAAC;IACzD,MAAMK,kBAAkB,GACvBD,sBAAsB,IAAI5B,YAAY,CAAE4B,sBAAuB,CAAC;IACjE,MAAME,UAAU,GACfD,kBAAkB,IAAI,IAAAE,oBAAY,EAAEF,kBAAmB,CAAC;IAEzD,OAAO;MACNT,KAAK,EAAEK,qBAAqB,CAAC,CAAC;MAC9BH,qBAAqB,EAAEM,sBAAsB;MAC7CP,iBAAiB,EAAEQ,kBAAkB;MACrCN,SAAS,EAAEO,UAAU;MACrBnC,mBAAmB,EAClB+B,iCAAiC,CAAEE,sBAAuB,CAAC,KACzDD,eAAe,CAAEC,sBAAuB,CAAC,KAAK,aAAa,GAC1DA,sBAAsB,GACtBI,SAAS;IACd,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMC,aAAa,GAAG,IAAAC,iCAAwB,EAAEX,SAAS,EAAEY,IAAK,CAAC;EACjE,MAAMC,QAAQ,GAAGH,aAAa,EAAEI,MAAM,GAAG,CAAC;;EAE1C;EACA;EACA;EACA;EACA;EACA;EACA,MAAMC,+BAA+B,GAAG,IAAAC,2CAAkC,EACzEhB,SAAS,EACTD,qBACD,CAAC;EAED,IAAKF,KAAK,GAAG,CAAC,EAAG;IAChB,OACC,IAAAb,QAAA,CAAAC,aAAA;MAAKC,SAAS,EAAC;IAA8B,GAC5C,IAAAF,QAAA,CAAAC,aAAA,EAAC5B,wBAAA,CAAA8B,OAAuB,MAAE,CAAC,EACzB0B,QAAQ,GACT,IAAA7B,QAAA,CAAAC,aAAA,EAACrB,sBAAA,CAAAuB,OAAqB;MAAC8B,IAAI,EAAGP;IAAe,CAAE,CAAC,GAEhD,IAAA1B,QAAA,CAAAC,aAAA,EAAAD,QAAA,CAAAkC,QAAA,QACC,IAAAlC,QAAA,CAAAC,aAAA,EAACtB,kBAAA,CAAAwB,OAAiB,CAACG,IAAI,MAAE,CAAC,EAC1B,IAAAN,QAAA,CAAAC,aAAA,EAACtB,kBAAA,CAAAwB,OAAiB,CAACG,IAAI;MACtB6B,KAAK,EAAC,OAAO;MACbC,KAAK,EAAG,IAAA3B,QAAE,EAAE,OAAQ,CAAG;MACvBP,SAAS,EAAC;IAA0C,CACpD,CAAC,EACF,IAAAF,QAAA,CAAAC,aAAA,EAACtB,kBAAA,CAAAwB,OAAiB,CAACG,IAAI;MACtB6B,KAAK,EAAC,YAAY;MAClBC,KAAK,EAAG,IAAA3B,QAAE,EAAE,YAAa;IAAG,CAC5B,CAAC,EACF,IAAAT,QAAA,CAAAC,aAAA,EAACtB,kBAAA,CAAAwB,OAAiB,CAACG,IAAI;MACtB6B,KAAK,EAAC,YAAY;MAClBC,KAAK,EAAG,IAAA3B,QAAE,EAAE,YAAa;IAAG,CAC5B,CAAC,EACF,IAAAT,QAAA,CAAAC,aAAA,EAACtB,kBAAA,CAAAwB,OAAiB,CAACG,IAAI;MACtB6B,KAAK,EAAC,QAAQ;MACdC,KAAK,EAAG,IAAA3B,QAAE,EAAE,QAAS;IAAG,CACxB,CAAC,EACF,IAAAT,QAAA,CAAAC,aAAA,EAACtB,kBAAA,CAAAwB,OAAiB,CAACG,IAAI;MAAC6B,KAAK,EAAC;IAAQ,CAAE,CACvC,CAEC,CAAC;EAER;EAEA,MAAME,2BAA2B,GAChCvB,iBAAiB,KAAK,IAAAwB,sCAA8B,EAAC,CAAC;;EAEvD;AACD;AACA;AACA;EACC,IACC,CAAEtB,SAAS,IACX,CAAED,qBAAqB,IACvBsB,2BAA2B,EAC1B;IACD,IAAKzB,0BAA0B,EAAG;MACjC,OACC,IAAAZ,QAAA,CAAAC,aAAA;QAAMC,SAAS,EAAC;MAAyC,GACtD,IAAAO,QAAE,EAAE,oBAAqB,CACtB,CAAC;IAET;IACA,OAAO,IAAI;EACZ;EACA,IAAKrB,mBAAmB,EAAG;IAC1B,OACC,IAAAY,QAAA,CAAAC,aAAA,EAACd,0BAA0B;MAC1BC,mBAAmB,EAAGA;IAAqB,CAC3C,CAAC;EAEJ;EAEA,OACC,IAAAY,QAAA,CAAAC,aAAA,EAACsC,gCAAgC;IAChCC,OAAO,EAAGT,+BAAiC;IAC3CU,OAAO,EAAKC,QAAQ,IACnB,IAAA1C,QAAA,CAAAC,aAAA,EAAC0C,iBAAiB;MACjBZ,+BAA+B,EAC9BA,+BACA;MACDhB,qBAAqB,EAAGA;IAAuB,GAE7C2B,QACgB;EACjB,GAEH,IAAA1C,QAAA,CAAAC,aAAA,EAAC2C,yBAAyB;IACzB/C,QAAQ,EAAGkB,qBAAuB;IAClC8B,SAAS,EAAG7B,SAAS,CAACY;EAAM,CAC5B,CACgC,CAAC;AAErC,CAAC;AAED,MAAMW,gCAAgC,GAAGA,CAAE;EAAEC,OAAO;EAAEC,OAAO;EAAEC;AAAS,CAAC,KAAM;EAC9E,OAAOF,OAAO,GAAGC,OAAO,CAAEC,QAAS,CAAC,GAAGA,QAAQ;AAChD,CAAC;AAED,MAAMC,iBAAiB,GAAGA,CAAE;EAC3BZ,+BAA+B;EAC/BhB,qBAAqB;EACrB2B;AACD,CAAC,KAAM;EACN,MAAMI,eAAe,GACpBf,+BAA+B,IAC/BA,+BAA+B,CAACgB,cAAc,KAAK,aAAa,GAC7D,CAAC,EAAE,GACH,EAAE;EAEN,OACC,IAAA/C,QAAA,CAAAC,aAAA,EAACjC,WAAA,CAAAgF,gBAAM,CAACC,GAAG;IACVT,OAAO,EAAG;MACTU,CAAC,EAAE,CAAC;MACJC,OAAO,EAAE,CAAC;MACVC,UAAU,EAAE;QACXC,IAAI,EAAE,WAAW;QACjBC,QAAQ,EAAE;MACX;IACD,CAAG;IACHC,OAAO,EAAG;MACTL,CAAC,EAAEJ,eAAe;MAClBK,OAAO,EAAE;IACV,CAAG;IACHK,GAAG,EAAGzC;EAAuB,GAE3B2B,QACS,CAAC;AAEf,CAAC;AAED,MAAME,yBAAyB,GAAGA,CAAE;EAAE/C,QAAQ;EAAEgD;AAAU,CAAC,KAAM;EAChE,MAAMnB,aAAa,GAAG,IAAAC,iCAAwB,EAAEkB,SAAU,CAAC;EAC3D,MAAMhB,QAAQ,GAAGH,aAAa,EAAEI,MAAM,GAAG,CAAC;EAE1C,MAAM2B,cAAc,GAAG,IAAAnE,eAAS,EAC7BC,MAAM,IAAM;IACb,MAAM;MAAEmE;IAAe,CAAC,GAAGnE,MAAM,CAAEoE,aAAY,CAAC;IAChD,MAAMC,WAAW,GAAGF,cAAc,CAAEb,SAAU,CAAC;IAC/C,OAAOe,WAAW,IAAIA,WAAW,CAAC9B,MAAM,GAAG,CAAC;EAC7C,CAAC,EACD,CAAEe,SAAS,CACZ,CAAC;EACD,MAAM/C,gBAAgB,GAAG,IAAAC,mCAA0B,EAAEF,QAAS,CAAC;EAE/D,OACC,IAAAG,QAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAA8B,GAC5C,IAAAF,QAAA,CAAAC,aAAA,EAAC7B,UAAA,CAAA+B,OAAS;IAAA,GACJL,gBAAgB;IACrBI,SAAS,EAAGJ,gBAAgB,CAACM,QAAQ,IAAI;EAAa,CACtD,CAAC,EACF,IAAAJ,QAAA,CAAAC,aAAA,EAAC3B,yBAAA,CAAA6B,OAAwB;IAACE,aAAa,EAAGR;EAAU,CAAE,CAAC,EACvD,IAAAG,QAAA,CAAAC,aAAA,EAAChB,kBAAA,CAAAkB,OAAS,CAACG,IAAI,MAAE,CAAC,EAChBuB,QAAQ,IACT,IAAA7B,QAAA,CAAAC,aAAA,EAACrB,sBAAA,CAAAuB,OAAqB;IACrBsD,cAAc,EAAGA,cAAgB;IACjC5D,QAAQ,EAAGA,QAAU;IACrBgD,SAAS,EAAGA,SAAW;IACvBZ,IAAI,EAAGP;EAAe,CACtB,CACD,EACC,CAAEG,QAAQ,IACX,IAAA7B,QAAA,CAAAC,aAAA,EAAAD,QAAA,CAAAkC,QAAA,QACGuB,cAAc,IACf,IAAAzD,QAAA,CAAAC,aAAA,eACC,IAAAD,QAAA,CAAAC,aAAA,EAACjC,WAAA,CAAAuC,SAAS;IAACC,KAAK,EAAG,IAAAC,QAAE,EAAE,QAAS;EAAG,GAClC,IAAAT,QAAA,CAAAC,aAAA,EAACxB,YAAA,CAAA0B,OAAW;IAACN,QAAQ,EAAGA;EAAU,CAAE,CAAC,EACnC,IAAAgE,uBAAe,EAChBhB,SAAS,EACT,oBAAoB,EACpB,IACD,CAAC,IACA,IAAA7C,QAAA,CAAAC,aAAA,EAACvB,mBAAA,CAAAyB,OAAkB;IAClB0C,SAAS,EAAGA;EAAW,CACvB,CAEQ,CACP,CACL,EACD,IAAA7C,QAAA,CAAAC,aAAA,EAACtB,kBAAA,CAAAwB,OAAiB,CAACG,IAAI,MAAE,CAAC,EAC1B,IAAAN,QAAA,CAAAC,aAAA,EAACtB,kBAAA,CAAAwB,OAAiB,CAACG,IAAI;IAAC6B,KAAK,EAAC;EAAM,CAAE,CAAC,EACvC,IAAAnC,QAAA,CAAAC,aAAA,EAACtB,kBAAA,CAAAwB,OAAiB,CAACG,IAAI;IACtB6B,KAAK,EAAC,OAAO;IACbC,KAAK,EAAG,IAAA3B,QAAE,EAAE,OAAQ,CAAG;IACvBP,SAAS,EAAC;EAA0C,CACpD,CAAC,EACF,IAAAF,QAAA,CAAAC,aAAA,EAACtB,kBAAA,CAAAwB,OAAiB,CAACG,IAAI;IACtB6B,KAAK,EAAC,YAAY;IAClBC,KAAK,EAAG,IAAA3B,QAAE,EAAE,YAAa;EAAG,CAC5B,CAAC,EACF,IAAAT,QAAA,CAAAC,aAAA,EAACtB,kBAAA,CAAAwB,OAAiB,CAACG,IAAI;IACtB6B,KAAK,EAAC,YAAY;IAClBC,KAAK,EAAG,IAAA3B,QAAE,EAAE,YAAa;EAAG,CAC5B,CAAC,EACF,IAAAT,QAAA,CAAAC,aAAA,EAACtB,kBAAA,CAAAwB,OAAiB,CAACG,IAAI;IACtB6B,KAAK,EAAC,QAAQ;IACdC,KAAK,EAAG,IAAA3B,QAAE,EAAE,QAAS;EAAG,CACxB,CAAC,EACF,IAAAT,QAAA,CAAAC,aAAA,EAACtB,kBAAA,CAAAwB,OAAiB,CAACG,IAAI;IAAC6B,KAAK,EAAC;EAAQ,CAAE,CAAC,EACzC,IAAAnC,QAAA,CAAAC,aAAA,EAAClB,sBAAA,CAAAoB,OAAgB,MAAE,CAAC,EACpB,IAAAH,QAAA,CAAAC,aAAA,eACC,IAAAD,QAAA,CAAAC,aAAA,EAACnB,sBAAA,CAAAqB,OAAgB,MAAE,CACf,CACJ,CACF,EACD,IAAAH,QAAA,CAAAC,aAAA,EAAC/B,oBAAA,CAAAiC,OAAmB;IAACqD,GAAG,EAAC;EAAM,CAAE,CAC7B,CAAC;AAER,CAAC;;AAED;AACA;AACA;AAFA,IAAAM,QAAA,GAGenD,cAAc;AAAAoD,OAAA,CAAA5D,OAAA,GAAA2D,QAAA"}
1
+ {"version":3,"names":["_i18n","require","_blocks","_components","_data","_skipToSelectedBlock","_interopRequireDefault","_blockCard","_multiSelectionInspector","_blockVariationTransforms","_useBlockDisplayInformation","_store","_blockStyles","_defaultStylePicker","_inspectorControls","_inspectorControlsTabs","_useInspectorControlsTabs","_advancedControlsPanel","_positionControlsPanel","_useBlockInspectorAnimationSettings","_blockInfoSlotFill","_blockQuickNavigation","BlockInspectorLockedBlocks","topLevelLockedBlock","contentClientIds","useSelect","select","getClientIdsOfDescendants","getBlockName","getBlockEditingMode","blockEditorStore","filter","clientId","blockInformation","useBlockDisplayInformation","_element","createElement","className","default","isSynced","blockClientId","Slot","PanelBody","title","__","clientIds","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","blockType","getSelectedBlockClientId","getSelectedBlockCount","__unstableGetContentLockingParent","getTemplateLock","_selectedBlockClientId","_selectedBlockName","_blockType","getBlockType","undefined","availableTabs","useInspectorControlsTabs","name","showTabs","length","blockInspectorAnimationSettings","useBlockInspectorAnimationSettings","tabs","Fragment","group","label","isSelectedBlockUnregistered","getUnregisteredTypeHandlerName","BlockInspectorSingleBlockWrapper","animate","wrapper","children","AnimatedContainer","BlockInspectorSingleBlock","blockName","animationOrigin","enterDirection","__unstableMotion","div","x","opacity","transition","ease","duration","initial","key","hasBlockStyles","getBlockStyles","blocksStore","blockStyles","hasBlockSupport","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { PanelBody, __unstableMotion as motion } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockStyles from '../block-styles';\nimport DefaultStylePicker from '../default-style-picker';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport BlockInfo from '../block-info-slot-fill';\nimport BlockQuickNavigation from '../block-quick-navigation';\n\nfunction BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn getClientIdsOfDescendants( topLevelLockedBlock ).filter(\n\t\t\t\t( clientId ) =>\n\t\t\t\t\tgetBlockName( clientId ) !== 'core/list-item' &&\n\t\t\t\t\tgetBlockEditingMode( clientId ) === 'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ topLevelLockedBlock ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( topLevelLockedBlock );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ topLevelLockedBlock } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t<BlockQuickNavigation clientIds={ contentClientIds } />\n\t\t\t</PanelBody>\n\t\t</div>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\ttopLevelLockedBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\t__unstableGetContentLockingParent,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\ttopLevelLockedBlock:\n\t\t\t\t__unstableGetContentLockingParent( _selectedBlockClientId ) ||\n\t\t\t\t( getTemplateLock( _selectedBlockClientId ) === 'contentOnly'\n\t\t\t\t\t? _selectedBlockClientId\n\t\t\t\t\t: undefined ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings = useBlockInspectorAnimationSettings(\n\t\tblockType,\n\t\tselectedBlockClientId\n\t);\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\tif ( topLevelLockedBlock ) {\n\t\treturn (\n\t\t\t<BlockInspectorLockedBlocks\n\t\t\t\ttopLevelLockedBlock={ topLevelLockedBlock }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n};\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( { clientId, blockName } ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = availableTabs?.length > 1;\n\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t) && (\n\t\t\t\t\t\t\t\t\t<DefaultStylePicker\n\t\t\t\t\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t<InspectorControls.Slot group=\"list\" />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\tlabel={ __( 'Background' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<PositionControls />\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"],"mappings":"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"}
@@ -6,11 +6,17 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _element = require("@wordpress/element");
9
+ var _classnames = _interopRequireDefault(require("classnames"));
9
10
  var _components = require("@wordpress/components");
10
11
  var _compose = require("@wordpress/compose");
11
12
  var _i18n = require("@wordpress/i18n");
13
+ var _icons = require("@wordpress/icons");
12
14
  var _blockPreview = _interopRequireDefault(require("../block-preview"));
13
15
  var _inserterDraggableBlocks = _interopRequireDefault(require("../inserter-draggable-blocks"));
16
+ /**
17
+ * External dependencies
18
+ */
19
+
14
20
  /**
15
21
  * WordPress dependencies
16
22
  */
@@ -71,13 +77,15 @@ function BlockPattern({
71
77
  }
72
78
  }
73
79
  }, (0, _element.createElement)(WithToolTip, {
74
- showTooltip: showTooltip,
80
+ showTooltip: showTooltip && !pattern.id,
75
81
  title: pattern.title
76
82
  }, (0, _element.createElement)(_components.__unstableCompositeItem, {
77
83
  role: "option",
78
84
  as: "div",
79
85
  ...composite,
80
- className: "block-editor-block-patterns-list__item",
86
+ className: (0, _classnames.default)('block-editor-block-patterns-list__item', {
87
+ 'block-editor-block-patterns-list__list-item-synced': pattern.id && !pattern.syncStatus
88
+ }),
81
89
  onClick: () => {
82
90
  onClick(pattern, blocks);
83
91
  onHover?.(null);
@@ -94,9 +102,16 @@ function BlockPattern({
94
102
  }, (0, _element.createElement)(_blockPreview.default, {
95
103
  blocks: blocks,
96
104
  viewportWidth: viewportWidth
97
- }), !showTooltip && (0, _element.createElement)("div", {
105
+ }), (0, _element.createElement)(_components.__experimentalHStack, {
106
+ className: "block-editor-patterns__pattern-details"
107
+ }, pattern.id && !pattern.syncStatus && (0, _element.createElement)("div", {
108
+ className: "block-editor-patterns__pattern-icon-wrapper"
109
+ }, (0, _element.createElement)(_icons.Icon, {
110
+ className: "block-editor-patterns__pattern-icon",
111
+ icon: _icons.symbol
112
+ })), (!showTooltip || pattern.id) && (0, _element.createElement)("div", {
98
113
  className: "block-editor-block-patterns-list__item-title"
99
- }, pattern.title), !!pattern.description && (0, _element.createElement)(_components.VisuallyHidden, {
114
+ }, pattern.title)), !!pattern.description && (0, _element.createElement)(_components.VisuallyHidden, {
100
115
  id: descriptionId
101
116
  }, pattern.description)))));
102
117
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_components","_compose","_i18n","_blockPreview","_interopRequireDefault","_inserterDraggableBlocks","WithToolTip","showTooltip","title","children","createElement","Tooltip","text","Fragment","BlockPattern","isDraggable","pattern","onClick","onHover","composite","isDragging","setIsDragging","useState","blocks","viewportWidth","instanceId","useInstanceId","descriptionId","default","isEnabled","isPattern","draggable","onDragStart","onDragEnd","className","event","__unstableCompositeItem","role","as","onMouseEnter","onMouseLeave","description","undefined","VisuallyHidden","id","BlockPatternPlaceholder","BlockPatternList","blockPatterns","shownPatterns","onClickPattern","orientation","label","__","showTitlesAsTooltip","useCompositeState","__unstableComposite","map","isShown","includes","key","name","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-patterns-list/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport {\n\tVisuallyHidden,\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n\t__unstableCompositeItem as CompositeItem,\n\tTooltip,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockPreview from '../block-preview';\nimport InserterDraggableBlocks from '../inserter-draggable-blocks';\n\nconst WithToolTip = ( { showTooltip, title, children } ) => {\n\tif ( showTooltip ) {\n\t\treturn <Tooltip text={ title }>{ children }</Tooltip>;\n\t}\n\treturn <>{ children }</>;\n};\n\nfunction BlockPattern( {\n\tisDraggable,\n\tpattern,\n\tonClick,\n\tonHover,\n\tcomposite,\n\tshowTooltip,\n} ) {\n\tconst [ isDragging, setIsDragging ] = useState( false );\n\tconst { blocks, viewportWidth } = pattern;\n\tconst instanceId = useInstanceId( BlockPattern );\n\tconst descriptionId = `block-editor-block-patterns-list__item-description-${ instanceId }`;\n\n\treturn (\n\t\t<InserterDraggableBlocks\n\t\t\tisEnabled={ isDraggable }\n\t\t\tblocks={ blocks }\n\t\t\tisPattern={ !! pattern }\n\t\t>\n\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"block-editor-block-patterns-list__list-item\"\n\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\tonDragStart={ ( event ) => {\n\t\t\t\t\t\tsetIsDragging( true );\n\t\t\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\t\t\tonHover?.( null );\n\t\t\t\t\t\t\tonDragStart( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tonDragEnd={ ( event ) => {\n\t\t\t\t\t\tsetIsDragging( false );\n\t\t\t\t\t\tif ( onDragEnd ) {\n\t\t\t\t\t\t\tonDragEnd( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<WithToolTip\n\t\t\t\t\t\tshowTooltip={ showTooltip }\n\t\t\t\t\t\ttitle={ pattern.title }\n\t\t\t\t\t>\n\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\tas=\"div\"\n\t\t\t\t\t\t\t{ ...composite }\n\t\t\t\t\t\t\tclassName=\"block-editor-block-patterns-list__item\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonClick( pattern, blocks );\n\t\t\t\t\t\t\t\tonHover?.( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonMouseEnter={ () => {\n\t\t\t\t\t\t\t\tif ( isDragging ) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonHover?.( pattern );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonMouseLeave={ () => onHover?.( null ) }\n\t\t\t\t\t\t\taria-label={ pattern.title }\n\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\tpattern.description ? descriptionId : undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ ! showTooltip && (\n\t\t\t\t\t\t\t\t<div className=\"block-editor-block-patterns-list__item-title\">\n\t\t\t\t\t\t\t\t\t{ pattern.title }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ !! pattern.description && (\n\t\t\t\t\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t\t\t\t\t{ pattern.description }\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</CompositeItem>\n\t\t\t\t\t</WithToolTip>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</InserterDraggableBlocks>\n\t);\n}\n\nfunction BlockPatternPlaceholder() {\n\treturn (\n\t\t<div className=\"block-editor-block-patterns-list__item is-placeholder\" />\n\t);\n}\n\nfunction BlockPatternList( {\n\tisDraggable,\n\tblockPatterns,\n\tshownPatterns,\n\tonHover,\n\tonClickPattern,\n\torientation,\n\tlabel = __( 'Block Patterns' ),\n\tshowTitlesAsTooltip,\n} ) {\n\tconst composite = useCompositeState( { orientation } );\n\treturn (\n\t\t<Composite\n\t\t\t{ ...composite }\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-block-patterns-list\"\n\t\t\taria-label={ label }\n\t\t>\n\t\t\t{ blockPatterns.map( ( pattern ) => {\n\t\t\t\tconst isShown = shownPatterns.includes( pattern );\n\t\t\t\treturn isShown ? (\n\t\t\t\t\t<BlockPattern\n\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\tonClick={ onClickPattern }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tisDraggable={ isDraggable }\n\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t\tshowTooltip={ showTitlesAsTooltip }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<BlockPatternPlaceholder key={ pattern.name } />\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n\nexport default BlockPatternList;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_element","require","_classnames","_interopRequireDefault","_components","_compose","_i18n","_icons","_blockPreview","_inserterDraggableBlocks","WithToolTip","showTooltip","title","children","createElement","Tooltip","text","Fragment","BlockPattern","isDraggable","pattern","onClick","onHover","composite","isDragging","setIsDragging","useState","blocks","viewportWidth","instanceId","useInstanceId","descriptionId","default","isEnabled","isPattern","draggable","onDragStart","onDragEnd","className","event","id","__unstableCompositeItem","role","as","classnames","syncStatus","onMouseEnter","onMouseLeave","description","undefined","__experimentalHStack","Icon","icon","symbol","VisuallyHidden","BlockPatternPlaceholder","BlockPatternList","blockPatterns","shownPatterns","onClickPattern","orientation","label","__","showTitlesAsTooltip","useCompositeState","__unstableComposite","map","isShown","includes","key","name","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-patterns-list/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport {\n\tVisuallyHidden,\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n\t__unstableCompositeItem as CompositeItem,\n\tTooltip,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { Icon, symbol } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockPreview from '../block-preview';\nimport InserterDraggableBlocks from '../inserter-draggable-blocks';\n\nconst WithToolTip = ( { showTooltip, title, children } ) => {\n\tif ( showTooltip ) {\n\t\treturn <Tooltip text={ title }>{ children }</Tooltip>;\n\t}\n\treturn <>{ children }</>;\n};\n\nfunction BlockPattern( {\n\tisDraggable,\n\tpattern,\n\tonClick,\n\tonHover,\n\tcomposite,\n\tshowTooltip,\n} ) {\n\tconst [ isDragging, setIsDragging ] = useState( false );\n\tconst { blocks, viewportWidth } = pattern;\n\tconst instanceId = useInstanceId( BlockPattern );\n\tconst descriptionId = `block-editor-block-patterns-list__item-description-${ instanceId }`;\n\n\treturn (\n\t\t<InserterDraggableBlocks\n\t\t\tisEnabled={ isDraggable }\n\t\t\tblocks={ blocks }\n\t\t\tisPattern={ !! pattern }\n\t\t>\n\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"block-editor-block-patterns-list__list-item\"\n\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\tonDragStart={ ( event ) => {\n\t\t\t\t\t\tsetIsDragging( true );\n\t\t\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\t\t\tonHover?.( null );\n\t\t\t\t\t\t\tonDragStart( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tonDragEnd={ ( event ) => {\n\t\t\t\t\t\tsetIsDragging( false );\n\t\t\t\t\t\tif ( onDragEnd ) {\n\t\t\t\t\t\t\tonDragEnd( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<WithToolTip\n\t\t\t\t\t\tshowTooltip={ showTooltip && ! pattern.id }\n\t\t\t\t\t\ttitle={ pattern.title }\n\t\t\t\t\t>\n\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\tas=\"div\"\n\t\t\t\t\t\t\t{ ...composite }\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'block-editor-block-patterns-list__item',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'block-editor-block-patterns-list__list-item-synced':\n\t\t\t\t\t\t\t\t\t\tpattern.id && ! pattern.syncStatus,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonClick( pattern, blocks );\n\t\t\t\t\t\t\t\tonHover?.( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonMouseEnter={ () => {\n\t\t\t\t\t\t\t\tif ( isDragging ) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonHover?.( pattern );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonMouseLeave={ () => onHover?.( null ) }\n\t\t\t\t\t\t\taria-label={ pattern.title }\n\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\tpattern.description ? descriptionId : undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<HStack className=\"block-editor-patterns__pattern-details\">\n\t\t\t\t\t\t\t\t{ pattern.id && ! pattern.syncStatus && (\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-patterns__pattern-icon-wrapper\">\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-patterns__pattern-icon\"\n\t\t\t\t\t\t\t\t\t\t\ticon={ symbol }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ( ! showTooltip || pattern.id ) && (\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-block-patterns-list__item-title\">\n\t\t\t\t\t\t\t\t\t\t{ pattern.title }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</HStack>\n\n\t\t\t\t\t\t\t{ !! pattern.description && (\n\t\t\t\t\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t\t\t\t\t{ pattern.description }\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</CompositeItem>\n\t\t\t\t\t</WithToolTip>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</InserterDraggableBlocks>\n\t);\n}\n\nfunction BlockPatternPlaceholder() {\n\treturn (\n\t\t<div className=\"block-editor-block-patterns-list__item is-placeholder\" />\n\t);\n}\n\nfunction BlockPatternList( {\n\tisDraggable,\n\tblockPatterns,\n\tshownPatterns,\n\tonHover,\n\tonClickPattern,\n\torientation,\n\tlabel = __( 'Block Patterns' ),\n\tshowTitlesAsTooltip,\n} ) {\n\tconst composite = useCompositeState( { orientation } );\n\treturn (\n\t\t<Composite\n\t\t\t{ ...composite }\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-block-patterns-list\"\n\t\t\taria-label={ label }\n\t\t>\n\t\t\t{ blockPatterns.map( ( pattern ) => {\n\t\t\t\tconst isShown = shownPatterns.includes( pattern );\n\t\t\t\treturn isShown ? (\n\t\t\t\t\t<BlockPattern\n\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\tonClick={ onClickPattern }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tisDraggable={ isDraggable }\n\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t\tshowTooltip={ showTitlesAsTooltip }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<BlockPatternPlaceholder key={ pattern.name } />\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n\nexport default BlockPatternList;\n"],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = Pagination;
7
+ var _element = require("@wordpress/element");
8
+ var _components = require("@wordpress/components");
9
+ var _i18n = require("@wordpress/i18n");
10
+ /**
11
+ * WordPress dependencies
12
+ */
13
+
14
+ function Pagination({
15
+ currentPage,
16
+ numPages,
17
+ changePage,
18
+ totalItems
19
+ }) {
20
+ return (0, _element.createElement)(_components.__experimentalVStack, null, (0, _element.createElement)(_components.__experimentalText, {
21
+ variant: "muted"
22
+ },
23
+ // translators: %s: Total number of patterns.
24
+ (0, _i18n.sprintf)(
25
+ // translators: %s: Total number of patterns.
26
+ (0, _i18n._n)('%s item', '%s items', totalItems), totalItems)), (0, _element.createElement)(_components.__experimentalHStack, {
27
+ expanded: false,
28
+ spacing: 3,
29
+ justify: "flex-start",
30
+ className: "block-editor-patterns__grid-pagination"
31
+ }, (0, _element.createElement)(_components.__experimentalHStack, {
32
+ expanded: false,
33
+ spacing: 1,
34
+ className: "block-editor-patterns__grid-pagination-previous"
35
+ }, (0, _element.createElement)(_components.Button, {
36
+ variant: "tertiary",
37
+ onClick: () => changePage(1),
38
+ disabled: currentPage === 1,
39
+ "aria-label": (0, _i18n.__)('First page')
40
+ }, (0, _element.createElement)("span", null, "\xAB")), (0, _element.createElement)(_components.Button, {
41
+ variant: "tertiary",
42
+ onClick: () => changePage(currentPage - 1),
43
+ disabled: currentPage === 1,
44
+ "aria-label": (0, _i18n.__)('Previous page')
45
+ }, (0, _element.createElement)("span", null, "\u2039"))), (0, _element.createElement)(_components.__experimentalText, {
46
+ variant: "muted"
47
+ }, (0, _i18n.sprintf)(
48
+ // translators: %1$s: Current page number, %2$s: Total number of pages.
49
+ (0, _i18n._x)('%1$s of %2$s', 'paging'), currentPage, numPages)), (0, _element.createElement)(_components.__experimentalHStack, {
50
+ expanded: false,
51
+ spacing: 1,
52
+ className: "block-editor-patterns__grid-pagination-next"
53
+ }, (0, _element.createElement)(_components.Button, {
54
+ variant: "tertiary",
55
+ onClick: () => changePage(currentPage + 1),
56
+ disabled: currentPage === numPages,
57
+ "aria-label": (0, _i18n.__)('Next page')
58
+ }, (0, _element.createElement)("span", null, "\u203A")), (0, _element.createElement)(_components.Button, {
59
+ variant: "tertiary",
60
+ onClick: () => changePage(numPages),
61
+ disabled: currentPage === numPages,
62
+ "aria-label": (0, _i18n.__)('Last page'),
63
+ size: "default"
64
+ }, (0, _element.createElement)("span", null, "\xBB")))));
65
+ }
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_components","require","_i18n","Pagination","currentPage","numPages","changePage","totalItems","_element","createElement","__experimentalVStack","__experimentalText","variant","sprintf","_n","__experimentalHStack","expanded","spacing","justify","className","Button","onClick","disabled","__","_x","size"],"sources":["@wordpress/block-editor/src/components/block-patterns-paging/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x, _n, sprintf } from '@wordpress/i18n';\n\nexport default function Pagination( {\n\tcurrentPage,\n\tnumPages,\n\tchangePage,\n\ttotalItems,\n} ) {\n\treturn (\n\t\t<VStack>\n\t\t\t<Text variant=\"muted\">\n\t\t\t\t{\n\t\t\t\t\t// translators: %s: Total number of patterns.\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: Total number of patterns.\n\t\t\t\t\t\t_n( '%s item', '%s items', totalItems ),\n\t\t\t\t\t\ttotalItems\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</Text>\n\t\t\t<HStack\n\t\t\t\texpanded={ false }\n\t\t\t\tspacing={ 3 }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tclassName=\"block-editor-patterns__grid-pagination\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\tclassName=\"block-editor-patterns__grid-pagination-previous\"\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => changePage( 1 ) }\n\t\t\t\t\t\tdisabled={ currentPage === 1 }\n\t\t\t\t\t\taria-label={ __( 'First page' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>«</span>\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => changePage( currentPage - 1 ) }\n\t\t\t\t\t\tdisabled={ currentPage === 1 }\n\t\t\t\t\t\taria-label={ __( 'Previous page' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>‹</span>\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t\t<Text variant=\"muted\">\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t// translators: %1$s: Current page number, %2$s: Total number of pages.\n\t\t\t\t\t\t_x( '%1$s of %2$s', 'paging' ),\n\t\t\t\t\t\tcurrentPage,\n\t\t\t\t\t\tnumPages\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\tclassName=\"block-editor-patterns__grid-pagination-next\"\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => changePage( currentPage + 1 ) }\n\t\t\t\t\t\tdisabled={ currentPage === numPages }\n\t\t\t\t\t\taria-label={ __( 'Next page' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>›</span>\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => changePage( numPages ) }\n\t\t\t\t\t\tdisabled={ currentPage === numPages }\n\t\t\t\t\t\taria-label={ __( 'Last page' ) }\n\t\t\t\t\t\tsize=\"default\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>»</span>\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAMA,IAAAC,KAAA,GAAAD,OAAA;AATA;AACA;AACA;;AASe,SAASE,UAAUA,CAAE;EACnCC,WAAW;EACXC,QAAQ;EACRC,UAAU;EACVC;AACD,CAAC,EAAG;EACH,OACC,IAAAC,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAU,oBAAM,QACN,IAAAF,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAW,kBAAI;IAACC,OAAO,EAAC;EAAO;EAEnB;EACA,IAAAC,aAAO;EACN;EACA,IAAAC,QAAE,EAAE,SAAS,EAAE,UAAU,EAAEP,UAAW,CAAC,EACvCA,UACD,CAEI,CAAC,EACP,IAAAC,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAe,oBAAM;IACNC,QAAQ,EAAG,KAAO;IAClBC,OAAO,EAAG,CAAG;IACbC,OAAO,EAAC,YAAY;IACpBC,SAAS,EAAC;EAAwC,GAElD,IAAAX,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAe,oBAAM;IACNC,QAAQ,EAAG,KAAO;IAClBC,OAAO,EAAG,CAAG;IACbE,SAAS,EAAC;EAAiD,GAE3D,IAAAX,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAoB,MAAM;IACNR,OAAO,EAAC,UAAU;IAClBS,OAAO,EAAGA,CAAA,KAAMf,UAAU,CAAE,CAAE,CAAG;IACjCgB,QAAQ,EAAGlB,WAAW,KAAK,CAAG;IAC9B,cAAa,IAAAmB,QAAE,EAAE,YAAa;EAAG,GAEjC,IAAAf,QAAA,CAAAC,aAAA,gBAAM,MAAO,CACN,CAAC,EACT,IAAAD,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAoB,MAAM;IACNR,OAAO,EAAC,UAAU;IAClBS,OAAO,EAAGA,CAAA,KAAMf,UAAU,CAAEF,WAAW,GAAG,CAAE,CAAG;IAC/CkB,QAAQ,EAAGlB,WAAW,KAAK,CAAG;IAC9B,cAAa,IAAAmB,QAAE,EAAE,eAAgB;EAAG,GAEpC,IAAAf,QAAA,CAAAC,aAAA,gBAAM,QAAO,CACN,CACD,CAAC,EACT,IAAAD,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAW,kBAAI;IAACC,OAAO,EAAC;EAAO,GAClB,IAAAC,aAAO;EACR;EACA,IAAAW,QAAE,EAAE,cAAc,EAAE,QAAS,CAAC,EAC9BpB,WAAW,EACXC,QACD,CACK,CAAC,EACP,IAAAG,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAe,oBAAM;IACNC,QAAQ,EAAG,KAAO;IAClBC,OAAO,EAAG,CAAG;IACbE,SAAS,EAAC;EAA6C,GAEvD,IAAAX,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAoB,MAAM;IACNR,OAAO,EAAC,UAAU;IAClBS,OAAO,EAAGA,CAAA,KAAMf,UAAU,CAAEF,WAAW,GAAG,CAAE,CAAG;IAC/CkB,QAAQ,EAAGlB,WAAW,KAAKC,QAAU;IACrC,cAAa,IAAAkB,QAAE,EAAE,WAAY;EAAG,GAEhC,IAAAf,QAAA,CAAAC,aAAA,gBAAM,QAAO,CACN,CAAC,EACT,IAAAD,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAoB,MAAM;IACNR,OAAO,EAAC,UAAU;IAClBS,OAAO,EAAGA,CAAA,KAAMf,UAAU,CAAED,QAAS,CAAG;IACxCiB,QAAQ,EAAGlB,WAAW,KAAKC,QAAU;IACrC,cAAa,IAAAkB,QAAE,EAAE,WAAY,CAAG;IAChCE,IAAI,EAAC;EAAS,GAEd,IAAAjB,QAAA,CAAAC,aAAA,gBAAM,MAAO,CACN,CACD,CACD,CACD,CAAC;AAEX"}
@@ -20,6 +20,7 @@ var _blockHtmlConvertButton = _interopRequireDefault(require("./block-html-conve
20
20
  var _blockSettingsMenuFirstItem = _interopRequireDefault(require("./block-settings-menu-first-item"));
21
21
  var _blockSettingsMenuControls = _interopRequireDefault(require("../block-settings-menu-controls"));
22
22
  var _store = require("../../store");
23
+ var _lockUnlock = require("../../lock-unlock");
23
24
  var _utils = require("../block-toolbar/utils");
24
25
  /**
25
26
  * WordPress dependencies
@@ -46,12 +47,15 @@ function CopyMenuItem({
46
47
  }, copyMenuItemLabel);
47
48
  }
48
49
  function BlockSettingsDropdown({
50
+ block,
49
51
  clientIds,
50
52
  __experimentalSelectBlock,
51
53
  children,
52
54
  __unstableDisplayLocation,
53
55
  ...props
54
56
  }) {
57
+ // Get the client id of the current block for this menu, if one is set.
58
+ const currentClientId = block?.clientId;
55
59
  const blockClientIds = Array.isArray(clientIds) ? clientIds : [clientIds];
56
60
  const count = blockClientIds.length;
57
61
  const firstBlockClientId = blockClientIds[0];
@@ -87,6 +91,10 @@ function BlockSettingsDropdown({
87
91
  getBlockOrder,
88
92
  getSelectedBlockClientIds
89
93
  } = (0, _data.useSelect)(_store.store);
94
+ const openedBlockSettingsMenu = (0, _data.useSelect)(select => (0, _lockUnlock.unlock)(select(_store.store)).getOpenedBlockSettingsMenu(), []);
95
+ const {
96
+ setOpenedBlockSettingsMenu
97
+ } = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_store.store));
90
98
  const shortcuts = (0, _data.useSelect)(select => {
91
99
  const {
92
100
  getShortcutRepresentation
@@ -138,6 +146,22 @@ function BlockSettingsDropdown({
138
146
  // This can occur when the selected block (the parent)
139
147
  // displays child blocks within a List View.
140
148
  const parentBlockIsSelected = selectedBlockClientIds?.includes(firstParentClientId);
149
+
150
+ // When a currentClientId is in use, treat the menu as a controlled component.
151
+ // This ensures that only one block settings menu is open at a time.
152
+ // This is a temporary solution to work around an issue with `onFocusOutside`
153
+ // where it does not allow a dropdown to be closed if focus was never within
154
+ // the dropdown to begin with. Examples include a user either CMD+Clicking or
155
+ // right clicking into an inactive window.
156
+ // See: https://github.com/WordPress/gutenberg/pull/54083
157
+ const open = !currentClientId ? undefined : openedBlockSettingsMenu === currentClientId || false;
158
+ const onToggle = (0, _element.useCallback)(localOpen => {
159
+ if (localOpen && openedBlockSettingsMenu !== currentClientId) {
160
+ setOpenedBlockSettingsMenu(currentClientId);
161
+ } else if (!localOpen && openedBlockSettingsMenu && openedBlockSettingsMenu === currentClientId) {
162
+ setOpenedBlockSettingsMenu(undefined);
163
+ }
164
+ }, [currentClientId, openedBlockSettingsMenu, setOpenedBlockSettingsMenu]);
141
165
  return (0, _element.createElement)(_blockActions.default, {
142
166
  clientIds: clientIds,
143
167
  __experimentalUpdateSelection: !__experimentalSelectBlock
@@ -160,6 +184,8 @@ function BlockSettingsDropdown({
160
184
  label: (0, _i18n.__)('Options'),
161
185
  className: "block-editor-block-settings-menu",
162
186
  popoverProps: POPOVER_PROPS,
187
+ open: open,
188
+ onToggle: onToggle,
163
189
  noIcons: true,
164
190
  menuProps: {
165
191
  /**
@@ -175,9 +201,11 @@ function BlockSettingsDropdown({
175
201
  updateSelectionAfterDuplicate(onDuplicate());
176
202
  } else if (isMatch('core/block-editor/insert-after', event) && canInsertDefaultBlock) {
177
203
  event.preventDefault();
204
+ setOpenedBlockSettingsMenu(undefined);
178
205
  onInsertAfter();
179
206
  } else if (isMatch('core/block-editor/insert-before', event) && canInsertDefaultBlock) {
180
207
  event.preventDefault();
208
+ setOpenedBlockSettingsMenu(undefined);
181
209
  onInsertBefore();
182
210
  }
183
211
  }