@wordpress/block-editor 12.9.1-next.5a1d1283.0 → 12.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) 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 +28 -8
  8. package/build/components/block-patterns-list/index.js.map +1 -1
  9. package/build/components/block-patterns-paging/index.js +68 -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 +45 -22
  61. package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  62. package/build/components/inserter/block-patterns-explorer/sidebar.js +9 -9
  63. package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  64. package/build/components/inserter/block-patterns-filter.js +137 -0
  65. package/build/components/inserter/block-patterns-filter.js.map +1 -0
  66. package/build/components/inserter/block-patterns-tab.js +128 -42
  67. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  68. package/build/components/inserter/hooks/use-patterns-paging.js +61 -0
  69. package/build/components/inserter/hooks/use-patterns-paging.js.map +1 -0
  70. package/build/components/inserter/hooks/use-patterns-state.js +21 -10
  71. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  72. package/build/components/inserter/menu.js +13 -11
  73. package/build/components/inserter/menu.js.map +1 -1
  74. package/build/components/inserter/search-results.js +4 -3
  75. package/build/components/inserter/search-results.js.map +1 -1
  76. package/build/components/inserter/tabs.js +1 -12
  77. package/build/components/inserter/tabs.js.map +1 -1
  78. package/build/components/inspector-controls/block-support-slot-container.js +12 -1
  79. package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
  80. package/build/components/inspector-controls/fill.js +24 -13
  81. package/build/components/inspector-controls/fill.js.map +1 -1
  82. package/build/components/inspector-controls/groups.js +5 -3
  83. package/build/components/inspector-controls/groups.js.map +1 -1
  84. package/build/components/inspector-controls/slot.js +13 -0
  85. package/build/components/inspector-controls/slot.js.map +1 -1
  86. package/build/components/inspector-controls-tabs/styles-tab.js +3 -0
  87. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  88. package/build/components/link-control/index.js +12 -2
  89. package/build/components/link-control/index.js.map +1 -1
  90. package/build/components/list-view/block-select-button.js +1 -3
  91. package/build/components/list-view/block-select-button.js.map +1 -1
  92. package/build/components/list-view/block.js +13 -1
  93. package/build/components/list-view/block.js.map +1 -1
  94. package/build/components/list-view/use-block-selection.js +29 -24
  95. package/build/components/list-view/use-block-selection.js.map +1 -1
  96. package/build/components/media-placeholder/index.js +2 -2
  97. package/build/components/media-placeholder/index.js.map +1 -1
  98. package/build/components/media-placeholder/index.native.js +11 -11
  99. package/build/components/media-placeholder/index.native.js.map +1 -1
  100. package/build/components/media-replace-flow/index.js +2 -3
  101. package/build/components/media-replace-flow/index.js.map +1 -1
  102. package/build/components/media-upload/constants.js +30 -0
  103. package/build/components/media-upload/constants.js.map +1 -0
  104. package/build/components/media-upload/index.native.js +63 -53
  105. package/build/components/media-upload/index.native.js.map +1 -1
  106. package/build/components/preview-options/index.js +1 -1
  107. package/build/components/preview-options/index.js.map +1 -1
  108. package/build/components/rich-text/index.js +34 -35
  109. package/build/components/rich-text/index.js.map +1 -1
  110. package/build/components/rich-text/index.native.js +14 -32
  111. package/build/components/rich-text/index.native.js.map +1 -1
  112. package/build/components/rich-text/multiline.js +95 -0
  113. package/build/components/rich-text/multiline.js.map +1 -0
  114. package/build/components/rich-text/split-value.js +10 -16
  115. package/build/components/rich-text/split-value.js.map +1 -1
  116. package/build/components/rich-text/use-enter.js +31 -40
  117. package/build/components/rich-text/use-enter.js.map +1 -1
  118. package/build/components/rich-text/use-paste-handler.js +18 -33
  119. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  120. package/build/components/spacing-sizes-control/utils.js +1 -1
  121. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  122. package/build/components/use-block-commands/index.js +30 -18
  123. package/build/components/use-block-commands/index.js.map +1 -1
  124. package/build/components/use-block-display-information/index.js +5 -2
  125. package/build/components/use-block-display-information/index.js.map +1 -1
  126. package/build/hooks/background.js +263 -0
  127. package/build/hooks/background.js.map +1 -0
  128. package/build/hooks/block-hooks.js +188 -0
  129. package/build/hooks/block-hooks.js.map +1 -0
  130. package/build/hooks/block-rename-ui.js +161 -0
  131. package/build/hooks/block-rename-ui.js.map +1 -0
  132. package/build/hooks/duotone.js +29 -42
  133. package/build/hooks/duotone.js.map +1 -1
  134. package/build/hooks/index.js +2 -2
  135. package/build/hooks/index.js.map +1 -1
  136. package/build/hooks/layout.js +31 -14
  137. package/build/hooks/layout.js.map +1 -1
  138. package/build/hooks/position.js +4 -2
  139. package/build/hooks/position.js.map +1 -1
  140. package/build/hooks/style.js +10 -3
  141. package/build/hooks/style.js.map +1 -1
  142. package/build/private-apis.js +2 -0
  143. package/build/private-apis.js.map +1 -1
  144. package/build/store/actions.js +33 -10
  145. package/build/store/actions.js.map +1 -1
  146. package/build/store/private-actions.js +42 -8
  147. package/build/store/private-actions.js.map +1 -1
  148. package/build/store/private-selectors.js +25 -3
  149. package/build/store/private-selectors.js.map +1 -1
  150. package/build/store/reducer.js +43 -1
  151. package/build/store/reducer.js.map +1 -1
  152. package/build/store/selectors.js +84 -23
  153. package/build/store/selectors.js.map +1 -1
  154. package/build/store/utils.js +0 -4
  155. package/build/store/utils.js.map +1 -1
  156. package/build-module/components/block-canvas/index.js +97 -0
  157. package/build-module/components/block-canvas/index.js.map +1 -0
  158. package/build-module/components/block-inspector/index.js +4 -1
  159. package/build-module/components/block-inspector/index.js.map +1 -1
  160. package/build-module/components/block-patterns-list/index.js +30 -10
  161. package/build-module/components/block-patterns-list/index.js.map +1 -1
  162. package/build-module/components/block-patterns-paging/index.js +61 -0
  163. package/build-module/components/block-patterns-paging/index.js.map +1 -0
  164. package/build-module/components/block-settings-menu/block-settings-dropdown.js +28 -0
  165. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  166. package/build-module/components/block-settings-menu-controls/index.js +4 -7
  167. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  168. package/build-module/components/block-styles/index.js +1 -0
  169. package/build-module/components/block-styles/index.js.map +1 -1
  170. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +3 -7
  171. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  172. package/build-module/components/block-tools/block-contextual-toolbar.js +18 -7
  173. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  174. package/build-module/components/block-tools/block-selection-button.js +5 -1
  175. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  176. package/build-module/components/border-radius-control/input-controls.js +1 -1
  177. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  178. package/build-module/components/border-radius-control/linked-button.js +2 -4
  179. package/build-module/components/border-radius-control/linked-button.js.map +1 -1
  180. package/build-module/components/colors/with-colors.js.map +1 -1
  181. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -21
  182. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  183. package/build-module/components/default-block-appender/index.native.js +20 -1
  184. package/build-module/components/default-block-appender/index.native.js.map +1 -1
  185. package/build-module/components/duotone/utils.js +65 -0
  186. package/build-module/components/duotone/utils.js.map +1 -1
  187. package/build-module/components/editor-styles/index.js +28 -9
  188. package/build-module/components/editor-styles/index.js.map +1 -1
  189. package/build-module/components/global-styles/hooks.js +3 -100
  190. package/build-module/components/global-styles/hooks.js.map +1 -1
  191. package/build-module/components/global-styles/image-settings-panel.js +53 -0
  192. package/build-module/components/global-styles/image-settings-panel.js.map +1 -0
  193. package/build-module/components/global-styles/index.js +2 -2
  194. package/build-module/components/global-styles/index.js.map +1 -1
  195. package/build-module/components/global-styles/use-global-styles-output.js +18 -16
  196. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  197. package/build-module/components/global-styles/utils.js +1 -1
  198. package/build-module/components/global-styles/utils.js.map +1 -1
  199. package/build-module/components/iframe/index.js +66 -33
  200. package/build-module/components/iframe/index.js.map +1 -1
  201. package/build-module/components/image-editor/use-save-image.js +2 -5
  202. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  203. package/build-module/components/image-editor/use-transform-image.js +9 -9
  204. package/build-module/components/image-editor/use-transform-image.js.map +1 -1
  205. package/build-module/components/index.js +1 -1
  206. package/build-module/components/index.js.map +1 -1
  207. package/build-module/components/index.native.js +2 -1
  208. package/build-module/components/index.native.js.map +1 -1
  209. package/build-module/components/inner-blocks/use-nested-settings-update.js +14 -8
  210. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  211. package/build-module/components/inserter/block-patterns-explorer/explorer.js +12 -6
  212. package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  213. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +47 -24
  214. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  215. package/build-module/components/inserter/block-patterns-explorer/sidebar.js +9 -9
  216. package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  217. package/build-module/components/inserter/block-patterns-filter.js +128 -0
  218. package/build-module/components/inserter/block-patterns-filter.js.map +1 -0
  219. package/build-module/components/inserter/block-patterns-tab.js +125 -44
  220. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  221. package/build-module/components/inserter/hooks/use-patterns-paging.js +54 -0
  222. package/build-module/components/inserter/hooks/use-patterns-paging.js.map +1 -0
  223. package/build-module/components/inserter/hooks/use-patterns-state.js +22 -10
  224. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  225. package/build-module/components/inserter/menu.js +13 -11
  226. package/build-module/components/inserter/menu.js.map +1 -1
  227. package/build-module/components/inserter/search-results.js +4 -3
  228. package/build-module/components/inserter/search-results.js.map +1 -1
  229. package/build-module/components/inserter/tabs.js +1 -12
  230. package/build-module/components/inserter/tabs.js.map +1 -1
  231. package/build-module/components/inspector-controls/block-support-slot-container.js +13 -2
  232. package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -1
  233. package/build-module/components/inspector-controls/fill.js +25 -14
  234. package/build-module/components/inspector-controls/fill.js.map +1 -1
  235. package/build-module/components/inspector-controls/groups.js +5 -3
  236. package/build-module/components/inspector-controls/groups.js.map +1 -1
  237. package/build-module/components/inspector-controls/slot.js +15 -1
  238. package/build-module/components/inspector-controls/slot.js.map +1 -1
  239. package/build-module/components/inspector-controls-tabs/styles-tab.js +3 -0
  240. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  241. package/build-module/components/link-control/index.js +12 -2
  242. package/build-module/components/link-control/index.js.map +1 -1
  243. package/build-module/components/list-view/block-select-button.js +1 -3
  244. package/build-module/components/list-view/block-select-button.js.map +1 -1
  245. package/build-module/components/list-view/block.js +13 -1
  246. package/build-module/components/list-view/block.js.map +1 -1
  247. package/build-module/components/list-view/use-block-selection.js +30 -25
  248. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  249. package/build-module/components/media-placeholder/index.js +2 -2
  250. package/build-module/components/media-placeholder/index.js.map +1 -1
  251. package/build-module/components/media-placeholder/index.native.js +7 -7
  252. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  253. package/build-module/components/media-replace-flow/index.js +2 -3
  254. package/build-module/components/media-replace-flow/index.js.map +1 -1
  255. package/build-module/components/media-upload/constants.js +14 -0
  256. package/build-module/components/media-upload/constants.js.map +1 -0
  257. package/build-module/components/media-upload/index.native.js +53 -34
  258. package/build-module/components/media-upload/index.native.js.map +1 -1
  259. package/build-module/components/preview-options/index.js +1 -1
  260. package/build-module/components/preview-options/index.js.map +1 -1
  261. package/build-module/components/rich-text/index.js +35 -37
  262. package/build-module/components/rich-text/index.js.map +1 -1
  263. package/build-module/components/rich-text/index.native.js +15 -33
  264. package/build-module/components/rich-text/index.native.js.map +1 -1
  265. package/build-module/components/rich-text/multiline.js +87 -0
  266. package/build-module/components/rich-text/multiline.js.map +1 -0
  267. package/build-module/components/rich-text/split-value.js +10 -16
  268. package/build-module/components/rich-text/split-value.js.map +1 -1
  269. package/build-module/components/rich-text/use-enter.js +33 -42
  270. package/build-module/components/rich-text/use-enter.js.map +1 -1
  271. package/build-module/components/rich-text/use-paste-handler.js +19 -34
  272. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  273. package/build-module/components/spacing-sizes-control/utils.js +2 -2
  274. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  275. package/build-module/components/use-block-commands/index.js +28 -16
  276. package/build-module/components/use-block-commands/index.js.map +1 -1
  277. package/build-module/components/use-block-display-information/index.js +5 -2
  278. package/build-module/components/use-block-display-information/index.js.map +1 -1
  279. package/build-module/hooks/background.js +249 -0
  280. package/build-module/hooks/background.js.map +1 -0
  281. package/build-module/hooks/block-hooks.js +181 -0
  282. package/build-module/hooks/block-hooks.js.map +1 -0
  283. package/build-module/hooks/block-rename-ui.js +154 -0
  284. package/build-module/hooks/block-rename-ui.js.map +1 -0
  285. package/build-module/hooks/duotone.js +26 -39
  286. package/build-module/hooks/duotone.js.map +1 -1
  287. package/build-module/hooks/index.js +2 -2
  288. package/build-module/hooks/index.js.map +1 -1
  289. package/build-module/hooks/layout.js +33 -16
  290. package/build-module/hooks/layout.js.map +1 -1
  291. package/build-module/hooks/position.js +4 -2
  292. package/build-module/hooks/position.js.map +1 -1
  293. package/build-module/hooks/style.js +10 -3
  294. package/build-module/hooks/style.js.map +1 -1
  295. package/build-module/private-apis.js +2 -0
  296. package/build-module/private-apis.js.map +1 -1
  297. package/build-module/store/actions.js +33 -10
  298. package/build-module/store/actions.js.map +1 -1
  299. package/build-module/store/private-actions.js +39 -8
  300. package/build-module/store/private-actions.js.map +1 -1
  301. package/build-module/store/private-selectors.js +23 -3
  302. package/build-module/store/private-selectors.js.map +1 -1
  303. package/build-module/store/reducer.js +41 -1
  304. package/build-module/store/reducer.js.map +1 -1
  305. package/build-module/store/selectors.js +78 -22
  306. package/build-module/store/selectors.js.map +1 -1
  307. package/build-module/store/utils.js +0 -4
  308. package/build-module/store/utils.js.map +1 -1
  309. package/build-style/content-rtl.css +0 -1
  310. package/build-style/content.css +0 -1
  311. package/build-style/style-rtl.css +201 -131
  312. package/build-style/style.css +201 -131
  313. package/package.json +32 -32
  314. package/src/components/block-canvas/index.js +108 -0
  315. package/src/components/block-inspector/index.js +5 -1
  316. package/src/components/block-list/content.scss +0 -1
  317. package/src/components/block-patterns-list/index.js +53 -19
  318. package/src/components/block-patterns-list/style.scss +26 -9
  319. package/src/components/block-patterns-paging/index.js +92 -0
  320. package/src/components/block-patterns-paging/style.scss +45 -0
  321. package/src/components/block-settings-menu/block-settings-dropdown.js +44 -0
  322. package/src/components/block-settings-menu-controls/index.js +4 -9
  323. package/src/components/block-styles/index.js +1 -0
  324. package/src/components/block-styles/style.scss +3 -3
  325. package/src/components/block-toolbar/block-toolbar-menu.native.js +1 -6
  326. package/src/components/block-tools/block-contextual-toolbar.js +16 -5
  327. package/src/components/block-tools/block-selection-button.js +9 -1
  328. package/src/components/block-tools/style.scss +0 -98
  329. package/src/components/border-radius-control/input-controls.js +1 -1
  330. package/src/components/border-radius-control/linked-button.js +8 -11
  331. package/src/components/color-palette/test/__snapshots__/control.js.snap +34 -21
  332. package/src/components/colors/with-colors.js +3 -2
  333. package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -35
  334. package/src/components/default-block-appender/index.native.js +26 -3
  335. package/src/components/duotone/utils.js +65 -0
  336. package/src/components/editor-styles/index.js +32 -23
  337. package/src/components/global-styles/hooks.js +4 -112
  338. package/src/components/global-styles/image-settings-panel.js +71 -0
  339. package/src/components/global-styles/index.js +4 -3
  340. package/src/components/global-styles/use-global-styles-output.js +25 -16
  341. package/src/components/global-styles/utils.js +1 -2
  342. package/src/components/iframe/index.js +72 -33
  343. package/src/components/image-editor/use-save-image.js +2 -9
  344. package/src/components/image-editor/use-transform-image.js +9 -9
  345. package/src/components/index.js +1 -1
  346. package/src/components/index.native.js +2 -2
  347. package/src/components/inner-blocks/use-nested-settings-update.js +15 -10
  348. package/src/components/inserter/block-patterns-explorer/explorer.js +17 -5
  349. package/src/components/inserter/block-patterns-explorer/patterns-list.js +68 -43
  350. package/src/components/inserter/block-patterns-explorer/sidebar.js +8 -8
  351. package/src/components/inserter/block-patterns-filter.js +183 -0
  352. package/src/components/inserter/block-patterns-tab.js +217 -58
  353. package/src/components/inserter/hooks/use-patterns-paging.js +76 -0
  354. package/src/components/inserter/hooks/use-patterns-state.js +27 -16
  355. package/src/components/inserter/menu.js +15 -17
  356. package/src/components/inserter/search-results.js +6 -4
  357. package/src/components/inserter/style.scss +36 -7
  358. package/src/components/inserter/tabs.js +2 -12
  359. package/src/components/inserter/test/index.native.js +8 -12
  360. package/src/components/inspector-controls/block-support-slot-container.js +19 -3
  361. package/src/components/inspector-controls/fill.js +28 -14
  362. package/src/components/inspector-controls/groups.js +6 -2
  363. package/src/components/inspector-controls/slot.js +28 -3
  364. package/src/components/inspector-controls-tabs/styles-tab.js +4 -0
  365. package/src/components/link-control/index.js +13 -0
  366. package/src/components/link-control/style.scss +23 -2
  367. package/src/components/link-control/test/index.js +88 -6
  368. package/src/components/list-view/block-select-button.js +1 -3
  369. package/src/components/list-view/block.js +19 -1
  370. package/src/components/list-view/style.scss +1 -2
  371. package/src/components/list-view/use-block-selection.js +38 -32
  372. package/src/components/media-placeholder/README.md +2 -2
  373. package/src/components/media-placeholder/index.js +2 -2
  374. package/src/components/media-placeholder/index.native.js +11 -12
  375. package/src/components/media-replace-flow/index.js +2 -2
  376. package/src/components/media-replace-flow/test/index.js +5 -23
  377. package/src/components/media-upload/README.md +3 -2
  378. package/src/components/media-upload/constants.js +15 -0
  379. package/src/components/media-upload/index.native.js +66 -40
  380. package/src/components/media-upload/style.native.scss +4 -0
  381. package/src/components/media-upload/test/index.native.js +2 -2
  382. package/src/components/preview-options/README.md +7 -0
  383. package/src/components/preview-options/index.js +1 -1
  384. package/src/components/rich-text/index.js +48 -44
  385. package/src/components/rich-text/index.native.js +14 -42
  386. package/src/components/rich-text/multiline.js +121 -0
  387. package/src/components/rich-text/split-value.js +10 -35
  388. package/src/components/rich-text/use-enter.js +32 -42
  389. package/src/components/rich-text/use-paste-handler.js +16 -40
  390. package/src/components/spacing-sizes-control/style.scss +5 -7
  391. package/src/components/spacing-sizes-control/utils.js +1 -2
  392. package/src/components/use-block-commands/index.js +28 -20
  393. package/src/components/use-block-display-information/index.js +3 -0
  394. package/src/hooks/background.js +299 -0
  395. package/src/hooks/background.scss +75 -0
  396. package/src/hooks/block-hooks.js +257 -0
  397. package/src/hooks/block-hooks.scss +16 -0
  398. package/src/hooks/block-rename-ui.js +231 -0
  399. package/src/hooks/block-rename-ui.scss +3 -0
  400. package/src/hooks/duotone.js +42 -43
  401. package/src/hooks/index.js +2 -2
  402. package/src/hooks/layout.js +31 -33
  403. package/src/hooks/position.js +4 -3
  404. package/src/hooks/style.js +11 -2
  405. package/src/hooks/test/align.native.js +4 -3
  406. package/src/private-apis.js +2 -0
  407. package/src/store/actions.js +52 -10
  408. package/src/store/private-actions.js +37 -6
  409. package/src/store/private-selectors.js +28 -3
  410. package/src/store/reducer.js +38 -0
  411. package/src/store/selectors.js +107 -26
  412. package/src/store/test/actions.js +19 -8
  413. package/src/store/test/private-actions.js +17 -0
  414. package/src/store/test/reducer.js +25 -0
  415. package/src/store/test/selectors.js +130 -123
  416. package/src/store/utils.js +3 -10
  417. package/src/style.scss +4 -0
  418. package/build/components/duotone/components.js +0 -135
  419. package/build/components/duotone/components.js.map +0 -1
  420. package/build/components/duotone/index.js +0 -38
  421. package/build/components/duotone/index.js.map +0 -1
  422. package/build/components/global-styles/behaviors-panel.js +0 -64
  423. package/build/components/global-styles/behaviors-panel.js.map +0 -1
  424. package/build/components/inserter/reusable-blocks-tab.js +0 -85
  425. package/build/components/inserter/reusable-blocks-tab.js.map +0 -1
  426. package/build/hooks/auto-inserting-blocks.js +0 -174
  427. package/build/hooks/auto-inserting-blocks.js.map +0 -1
  428. package/build/hooks/behaviors.js +0 -173
  429. package/build/hooks/behaviors.js.map +0 -1
  430. package/build-module/components/duotone/components.js +0 -126
  431. package/build-module/components/duotone/components.js.map +0 -1
  432. package/build-module/components/duotone/index.js +0 -3
  433. package/build-module/components/duotone/index.js.map +0 -1
  434. package/build-module/components/global-styles/behaviors-panel.js +0 -57
  435. package/build-module/components/global-styles/behaviors-panel.js.map +0 -1
  436. package/build-module/components/inserter/reusable-blocks-tab.js +0 -76
  437. package/build-module/components/inserter/reusable-blocks-tab.js.map +0 -1
  438. package/build-module/hooks/auto-inserting-blocks.js +0 -167
  439. package/build-module/hooks/auto-inserting-blocks.js.map +0 -1
  440. package/build-module/hooks/behaviors.js +0 -166
  441. package/build-module/hooks/behaviors.js.map +0 -1
  442. package/src/components/duotone/components.js +0 -133
  443. package/src/components/duotone/index.js +0 -7
  444. package/src/components/global-styles/behaviors-panel.js +0 -71
  445. package/src/components/inserter/reusable-blocks-tab.js +0 -84
  446. package/src/components/inserter/test/reusable-blocks-tab.js +0 -73
  447. package/src/hooks/auto-inserting-blocks.js +0 -232
  448. 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":"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"}
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,18 @@ 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
+ var _blockPatternsPaging = _interopRequireDefault(require("../block-patterns-paging"));
17
+ /**
18
+ * External dependencies
19
+ */
20
+
14
21
  /**
15
22
  * WordPress dependencies
16
23
  */
@@ -71,13 +78,15 @@ function BlockPattern({
71
78
  }
72
79
  }
73
80
  }, (0, _element.createElement)(WithToolTip, {
74
- showTooltip: showTooltip,
81
+ showTooltip: showTooltip && !pattern.id,
75
82
  title: pattern.title
76
83
  }, (0, _element.createElement)(_components.__unstableCompositeItem, {
77
84
  role: "option",
78
85
  as: "div",
79
86
  ...composite,
80
- className: "block-editor-block-patterns-list__item",
87
+ className: (0, _classnames.default)('block-editor-block-patterns-list__item', {
88
+ 'block-editor-block-patterns-list__list-item-synced': pattern.id && !pattern.syncStatus
89
+ }),
81
90
  onClick: () => {
82
91
  onClick(pattern, blocks);
83
92
  onHover?.(null);
@@ -94,9 +103,16 @@ function BlockPattern({
94
103
  }, (0, _element.createElement)(_blockPreview.default, {
95
104
  blocks: blocks,
96
105
  viewportWidth: viewportWidth
97
- }), !showTooltip && (0, _element.createElement)("div", {
106
+ }), (0, _element.createElement)(_components.__experimentalHStack, {
107
+ className: "block-editor-patterns__pattern-details"
108
+ }, pattern.id && !pattern.syncStatus && (0, _element.createElement)("div", {
109
+ className: "block-editor-patterns__pattern-icon-wrapper"
110
+ }, (0, _element.createElement)(_icons.Icon, {
111
+ className: "block-editor-patterns__pattern-icon",
112
+ icon: _icons.symbol
113
+ })), (!showTooltip || pattern.id) && (0, _element.createElement)("div", {
98
114
  className: "block-editor-block-patterns-list__item-title"
99
- }, pattern.title), !!pattern.description && (0, _element.createElement)(_components.VisuallyHidden, {
115
+ }, pattern.title)), !!pattern.description && (0, _element.createElement)(_components.VisuallyHidden, {
100
116
  id: descriptionId
101
117
  }, pattern.description)))));
102
118
  }
@@ -113,8 +129,9 @@ function BlockPatternList({
113
129
  onClickPattern,
114
130
  orientation,
115
131
  label = (0, _i18n.__)('Block Patterns'),
116
- showTitlesAsTooltip
117
- }) {
132
+ showTitlesAsTooltip,
133
+ pagingProps
134
+ }, ref) {
118
135
  const composite = (0, _components.__unstableUseCompositeState)({
119
136
  orientation
120
137
  });
@@ -122,7 +139,8 @@ function BlockPatternList({
122
139
  ...composite,
123
140
  role: "listbox",
124
141
  className: "block-editor-block-patterns-list",
125
- "aria-label": label
142
+ "aria-label": label,
143
+ ref: ref
126
144
  }, blockPatterns.map(pattern => {
127
145
  const isShown = shownPatterns.includes(pattern);
128
146
  return isShown ? (0, _element.createElement)(BlockPattern, {
@@ -136,8 +154,10 @@ function BlockPatternList({
136
154
  }) : (0, _element.createElement)(BlockPatternPlaceholder, {
137
155
  key: pattern.name
138
156
  });
157
+ }), pagingProps && pagingProps.numPages > 1 && (0, _element.createElement)(_blockPatternsPaging.default, {
158
+ ...pagingProps
139
159
  }));
140
160
  }
141
- var _default = BlockPatternList;
161
+ var _default = (0, _element.forwardRef)(BlockPatternList);
142
162
  exports.default = _default;
143
163
  //# sourceMappingURL=index.js.map
@@ -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","_blockPatternsPaging","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","pagingProps","ref","useCompositeState","__unstableComposite","map","isShown","includes","key","name","numPages","_default","forwardRef","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, forwardRef } 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';\nimport BlockPatternsPaging from '../block-patterns-paging';\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\t{\n\t\tisDraggable,\n\t\tblockPatterns,\n\t\tshownPatterns,\n\t\tonHover,\n\t\tonClickPattern,\n\t\torientation,\n\t\tlabel = __( 'Block Patterns' ),\n\t\tshowTitlesAsTooltip,\n\t\tpagingProps,\n\t},\n\tref\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\tref={ ref }\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\t{ pagingProps && pagingProps.numPages > 1 && (\n\t\t\t\t<BlockPatternsPaging { ...pagingProps } />\n\t\t\t) }\n\t\t</Composite>\n\t);\n}\n\nexport default forwardRef( BlockPatternList );\n"],"mappings":"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"}
@@ -0,0 +1,68 @@
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, {
21
+ className: "block-editor-patterns__grid-pagination-wrapper"
22
+ }, (0, _element.createElement)(_components.__experimentalText, {
23
+ variant: "muted"
24
+ },
25
+ // translators: %s: Total number of patterns.
26
+ (0, _i18n.sprintf)(
27
+ // translators: %s: Total number of patterns.
28
+ (0, _i18n._n)('%s item', '%s items', totalItems), totalItems)), (0, _element.createElement)(_components.__experimentalHStack, {
29
+ expanded: false,
30
+ spacing: 3,
31
+ justify: "flex-start",
32
+ className: "block-editor-patterns__grid-pagination"
33
+ }, (0, _element.createElement)(_components.__experimentalHStack, {
34
+ expanded: false,
35
+ spacing: 1,
36
+ className: "block-editor-patterns__grid-pagination-previous"
37
+ }, (0, _element.createElement)(_components.Button, {
38
+ variant: "tertiary",
39
+ onClick: () => changePage(1),
40
+ disabled: currentPage === 1,
41
+ "aria-label": (0, _i18n.__)('First page')
42
+ }, (0, _element.createElement)("span", null, "\xAB")), (0, _element.createElement)(_components.Button, {
43
+ variant: "tertiary",
44
+ onClick: () => changePage(currentPage - 1),
45
+ disabled: currentPage === 1,
46
+ "aria-label": (0, _i18n.__)('Previous page')
47
+ }, (0, _element.createElement)("span", null, "\u2039"))), (0, _element.createElement)(_components.__experimentalText, {
48
+ variant: "muted"
49
+ }, (0, _i18n.sprintf)(
50
+ // translators: %1$s: Current page number, %2$s: Total number of pages.
51
+ (0, _i18n._x)('%1$s of %2$s', 'paging'), currentPage, numPages)), (0, _element.createElement)(_components.__experimentalHStack, {
52
+ expanded: false,
53
+ spacing: 1,
54
+ className: "block-editor-patterns__grid-pagination-next"
55
+ }, (0, _element.createElement)(_components.Button, {
56
+ variant: "tertiary",
57
+ onClick: () => changePage(currentPage + 1),
58
+ disabled: currentPage === numPages,
59
+ "aria-label": (0, _i18n.__)('Next page')
60
+ }, (0, _element.createElement)("span", null, "\u203A")), (0, _element.createElement)(_components.Button, {
61
+ variant: "tertiary",
62
+ onClick: () => changePage(numPages),
63
+ disabled: currentPage === numPages,
64
+ "aria-label": (0, _i18n.__)('Last page'),
65
+ size: "default"
66
+ }, (0, _element.createElement)("span", null, "\xBB")))));
67
+ }
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_components","require","_i18n","Pagination","currentPage","numPages","changePage","totalItems","_element","createElement","__experimentalVStack","className","__experimentalText","variant","sprintf","_n","__experimentalHStack","expanded","spacing","justify","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 className=\"block-editor-patterns__grid-pagination-wrapper\">\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;IAACC,SAAS,EAAC;EAAgD,GACjE,IAAAH,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAY,kBAAI;IAACC,OAAO,EAAC;EAAO;EAEnB;EACA,IAAAC,aAAO;EACN;EACA,IAAAC,QAAE,EAAE,SAAS,EAAE,UAAU,EAAER,UAAW,CAAC,EACvCA,UACD,CAEI,CAAC,EACP,IAAAC,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAgB,oBAAM;IACNC,QAAQ,EAAG,KAAO;IAClBC,OAAO,EAAG,CAAG;IACbC,OAAO,EAAC,YAAY;IACpBR,SAAS,EAAC;EAAwC,GAElD,IAAAH,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAgB,oBAAM;IACNC,QAAQ,EAAG,KAAO;IAClBC,OAAO,EAAG,CAAG;IACbP,SAAS,EAAC;EAAiD,GAE3D,IAAAH,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAoB,MAAM;IACNP,OAAO,EAAC,UAAU;IAClBQ,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;IACNP,OAAO,EAAC,UAAU;IAClBQ,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,CAAAY,kBAAI;IAACC,OAAO,EAAC;EAAO,GAClB,IAAAC,aAAO;EACR;EACA,IAAAU,QAAE,EAAE,cAAc,EAAE,QAAS,CAAC,EAC9BpB,WAAW,EACXC,QACD,CACK,CAAC,EACP,IAAAG,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAgB,oBAAM;IACNC,QAAQ,EAAG,KAAO;IAClBC,OAAO,EAAG,CAAG;IACbP,SAAS,EAAC;EAA6C,GAEvD,IAAAH,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAoB,MAAM;IACNP,OAAO,EAAC,UAAU;IAClBQ,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;IACNP,OAAO,EAAC,UAAU;IAClBQ,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
  }