@wordpress/block-editor 15.21.1 → 15.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +2 -2
  3. package/build/components/block-card/index.cjs +4 -5
  4. package/build/components/block-card/index.cjs.map +2 -2
  5. package/build/components/block-editing-mode/index.cjs +13 -7
  6. package/build/components/block-editing-mode/index.cjs.map +2 -2
  7. package/build/components/block-inspector/index.cjs +35 -20
  8. package/build/components/block-inspector/index.cjs.map +2 -2
  9. package/build/components/block-mover/mover-description.cjs +6 -6
  10. package/build/components/block-mover/mover-description.cjs.map +1 -1
  11. package/build/components/block-patterns-list/index.cjs.map +2 -2
  12. package/build/components/block-patterns-paging/index.cjs +4 -4
  13. package/build/components/block-patterns-paging/index.cjs.map +2 -2
  14. package/build/components/block-popover/use-popover-scroll.cjs.map +1 -1
  15. package/build/components/block-quick-navigation/index.cjs +7 -5
  16. package/build/components/block-quick-navigation/index.cjs.map +2 -2
  17. package/build/components/block-rename/modal.cjs +0 -1
  18. package/build/components/block-rename/modal.cjs.map +2 -2
  19. package/build/components/block-toolbar/block-toolbar-icon.cjs +14 -6
  20. package/build/components/block-toolbar/block-toolbar-icon.cjs.map +2 -2
  21. package/build/components/block-toolbar/edit-section-button.cjs.map +1 -1
  22. package/build/components/block-tools/use-block-toolbar-popover-props.cjs +10 -4
  23. package/build/components/block-tools/use-block-toolbar-popover-props.cjs.map +2 -2
  24. package/build/components/child-layout-control/index.cjs +51 -19
  25. package/build/components/child-layout-control/index.cjs.map +2 -2
  26. package/build/components/colors-gradients/control.cjs +25 -14
  27. package/build/components/colors-gradients/control.cjs.map +2 -2
  28. package/build/components/colors-gradients/dropdown.cjs +4 -1
  29. package/build/components/colors-gradients/dropdown.cjs.map +3 -3
  30. package/build/components/contrast-checker/index.cjs +22 -4
  31. package/build/components/contrast-checker/index.cjs.map +2 -2
  32. package/build/components/date-format-picker/index.cjs +0 -1
  33. package/build/components/date-format-picker/index.cjs.map +2 -2
  34. package/build/components/dimensions-tool/index.cjs +4 -5
  35. package/build/components/dimensions-tool/index.cjs.map +2 -2
  36. package/build/components/dimensions-tool/scale-tool.cjs +1 -1
  37. package/build/components/dimensions-tool/scale-tool.cjs.map +2 -2
  38. package/build/components/global-styles/background-panel.cjs +153 -25
  39. package/build/components/global-styles/background-panel.cjs.map +3 -3
  40. package/build/components/global-styles/color-gradient-dropdown-item.cjs +227 -0
  41. package/build/components/global-styles/color-gradient-dropdown-item.cjs.map +7 -0
  42. package/build/components/global-styles/color-panel.cjs +98 -375
  43. package/build/components/global-styles/color-panel.cjs.map +3 -3
  44. package/build/components/global-styles/dimensions-panel.cjs +1 -4
  45. package/build/components/global-styles/dimensions-panel.cjs.map +2 -2
  46. package/build/components/global-styles/hooks.cjs +34 -0
  47. package/build/components/global-styles/hooks.cjs.map +2 -2
  48. package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
  49. package/build/components/global-styles/typography-panel.cjs +82 -10
  50. package/build/components/global-styles/typography-panel.cjs.map +3 -3
  51. package/build/components/grid/grid-item-resizer.cjs.map +1 -1
  52. package/build/components/grid/grid-visualizer.cjs.map +1 -1
  53. package/build/components/iframe/index.cjs +6 -3
  54. package/build/components/iframe/index.cjs.map +3 -3
  55. package/build/components/image-editor/use-transform-image.cjs.map +1 -1
  56. package/build/components/inserter/get-appender-label.cjs.map +1 -1
  57. package/build/components/inserter/media-tab/media-preview.cjs.map +2 -2
  58. package/build/components/inserter/search-items.cjs.map +1 -1
  59. package/build/components/inspector-controls/fill.cjs +1 -3
  60. package/build/components/inspector-controls/fill.cjs.map +2 -2
  61. package/build/components/inspector-controls/groups.cjs +2 -0
  62. package/build/components/inspector-controls/groups.cjs.map +2 -2
  63. package/build/components/inspector-controls-tabs/index.cjs.map +2 -2
  64. package/build/components/inspector-controls-tabs/styles-tab.cjs +76 -32
  65. package/build/components/inspector-controls-tabs/styles-tab.cjs.map +2 -2
  66. package/build/components/keyboard-shortcuts/index.cjs.map +1 -1
  67. package/build/components/line-height-control/index.cjs.map +1 -1
  68. package/build/components/link-control/index.cjs +2 -3
  69. package/build/components/link-control/index.cjs.map +2 -2
  70. package/build/components/link-control/normalize-url.cjs.map +1 -1
  71. package/build/components/list-view/block-select-button.cjs +1 -10
  72. package/build/components/list-view/block-select-button.cjs.map +3 -3
  73. package/build/components/list-view/utils.cjs.map +1 -1
  74. package/build/components/preset-input-control/custom-value-controls.cjs.map +2 -2
  75. package/build/components/provider/index.cjs.map +1 -1
  76. package/build/components/provider/use-block-sync.cjs +3 -1
  77. package/build/components/provider/use-block-sync.cjs.map +2 -2
  78. package/build/components/rich-text/event-listeners/before-input-rules.cjs +1 -1
  79. package/build/components/rich-text/event-listeners/before-input-rules.cjs.map +2 -2
  80. package/build/components/rich-text/event-listeners/paste-handler.cjs.map +1 -1
  81. package/build/components/rich-text/prevent-event-discovery.cjs +1 -1
  82. package/build/components/rich-text/prevent-event-discovery.cjs.map +1 -1
  83. package/build/components/url-popover/image-url-input-ui.cjs +0 -2
  84. package/build/components/url-popover/image-url-input-ui.cjs.map +2 -2
  85. package/build/components/use-block-display-information/index.cjs +10 -3
  86. package/build/components/use-block-display-information/index.cjs.map +2 -2
  87. package/build/components/writing-flow/use-tab-nav.cjs.map +1 -1
  88. package/build/hooks/anchor.cjs +1 -2
  89. package/build/hooks/anchor.cjs.map +2 -2
  90. package/build/hooks/background.cjs +124 -75
  91. package/build/hooks/background.cjs.map +3 -3
  92. package/build/hooks/block-fields/index.cjs +13 -2
  93. package/build/hooks/block-fields/index.cjs.map +2 -2
  94. package/build/hooks/color.cjs +0 -162
  95. package/build/hooks/color.cjs.map +3 -3
  96. package/build/hooks/contrast-checker.cjs +31 -28
  97. package/build/hooks/contrast-checker.cjs.map +3 -3
  98. package/build/hooks/custom-class-name.cjs +0 -1
  99. package/build/hooks/custom-class-name.cjs.map +2 -2
  100. package/build/hooks/dimensions.cjs +13 -2
  101. package/build/hooks/dimensions.cjs.map +2 -2
  102. package/build/hooks/elements.cjs +142 -0
  103. package/build/hooks/elements.cjs.map +7 -0
  104. package/build/hooks/grid-visualizer.cjs +21 -11
  105. package/build/hooks/grid-visualizer.cjs.map +2 -2
  106. package/build/hooks/layout-child.cjs +65 -10
  107. package/build/hooks/layout-child.cjs.map +2 -2
  108. package/build/hooks/layout.cjs +6 -3
  109. package/build/hooks/layout.cjs.map +2 -2
  110. package/build/hooks/list-view.cjs +10 -7
  111. package/build/hooks/list-view.cjs.map +2 -2
  112. package/build/hooks/spacing-visualizer.cjs.map +1 -1
  113. package/build/hooks/state-utils.cjs.map +1 -1
  114. package/build/hooks/states.cjs +2 -2
  115. package/build/hooks/states.cjs.map +2 -2
  116. package/build/hooks/style.cjs +50 -6
  117. package/build/hooks/style.cjs.map +2 -2
  118. package/build/hooks/typography.cjs +62 -10
  119. package/build/hooks/typography.cjs.map +3 -3
  120. package/build/layouts/flex.cjs +99 -6
  121. package/build/layouts/flex.cjs.map +2 -2
  122. package/build/private-apis.cjs +4 -0
  123. package/build/private-apis.cjs.map +2 -2
  124. package/build/store/actions.cjs.map +1 -1
  125. package/build/store/private-selectors.cjs +19 -2
  126. package/build/store/private-selectors.cjs.map +2 -2
  127. package/build/store/reducer.cjs.map +1 -1
  128. package/build/store/selectors.cjs.map +1 -1
  129. package/build/utils/block-bindings.cjs +9 -9
  130. package/build/utils/block-bindings.cjs.map +3 -3
  131. package/build/utils/color-values.cjs +10 -1
  132. package/build/utils/color-values.cjs.map +3 -3
  133. package/build/utils/dom.cjs +2 -5
  134. package/build/utils/dom.cjs.map +3 -3
  135. package/build/utils/fit-text-frontend.cjs +6 -2
  136. package/build/utils/fit-text-frontend.cjs.map +3 -3
  137. package/build/utils/fit-text-utils.cjs +1 -1
  138. package/build/utils/fit-text-utils.cjs.map +3 -3
  139. package/build/utils/format-font-style.cjs +1 -1
  140. package/build/utils/format-font-style.cjs.map +3 -3
  141. package/build/utils/format-font-weight.cjs +1 -1
  142. package/build/utils/format-font-weight.cjs.map +3 -3
  143. package/build/utils/get-editor-region.cjs +4 -2
  144. package/build/utils/get-editor-region.cjs.map +3 -3
  145. package/build/utils/get-font-styles-and-weights.cjs +8 -12
  146. package/build/utils/get-font-styles-and-weights.cjs.map +3 -3
  147. package/build/utils/get-px-from-css-unit.cjs +1 -1
  148. package/build/utils/get-px-from-css-unit.cjs.map +1 -1
  149. package/build/utils/index.cjs +1 -1
  150. package/build/utils/index.cjs.map +1 -1
  151. package/build/utils/math.cjs +1 -1
  152. package/build/utils/math.cjs.map +3 -3
  153. package/build/utils/object.cjs +8 -8
  154. package/build/utils/object.cjs.map +3 -3
  155. package/build/utils/order-inserter-block-items.cjs +1 -1
  156. package/build/utils/order-inserter-block-items.cjs.map +3 -3
  157. package/build/utils/pasting.cjs +4 -2
  158. package/build/utils/pasting.cjs.map +3 -3
  159. package/build/utils/selection.cjs +3 -2
  160. package/build/utils/selection.cjs.map +3 -3
  161. package/build/utils/sorting.cjs +9 -3
  162. package/build/utils/sorting.cjs.map +3 -3
  163. package/build/utils/transform-styles/index.cjs +3 -2
  164. package/build/utils/transform-styles/index.cjs.map +3 -3
  165. package/build/utils/transform-styles/postcss-urlrebase.d.cjs +2 -0
  166. package/build/utils/transform-styles/postcss-urlrebase.d.cjs.map +7 -0
  167. package/build/utils/transform-styles/types.cjs +19 -0
  168. package/build/utils/transform-styles/types.cjs.map +7 -0
  169. package/build/utils/types.cjs +19 -0
  170. package/build/utils/types.cjs.map +7 -0
  171. package/build-module/components/block-card/index.mjs +5 -6
  172. package/build-module/components/block-card/index.mjs.map +2 -2
  173. package/build-module/components/block-editing-mode/index.mjs +14 -8
  174. package/build-module/components/block-editing-mode/index.mjs.map +2 -2
  175. package/build-module/components/block-inspector/index.mjs +35 -21
  176. package/build-module/components/block-inspector/index.mjs.map +2 -2
  177. package/build-module/components/block-mover/mover-description.mjs +6 -6
  178. package/build-module/components/block-mover/mover-description.mjs.map +1 -1
  179. package/build-module/components/block-patterns-list/index.mjs.map +2 -2
  180. package/build-module/components/block-patterns-paging/index.mjs +4 -4
  181. package/build-module/components/block-patterns-paging/index.mjs.map +2 -2
  182. package/build-module/components/block-popover/use-popover-scroll.mjs.map +1 -1
  183. package/build-module/components/block-quick-navigation/index.mjs +8 -6
  184. package/build-module/components/block-quick-navigation/index.mjs.map +2 -2
  185. package/build-module/components/block-rename/modal.mjs +0 -1
  186. package/build-module/components/block-rename/modal.mjs.map +2 -2
  187. package/build-module/components/block-toolbar/block-toolbar-icon.mjs +14 -6
  188. package/build-module/components/block-toolbar/block-toolbar-icon.mjs.map +2 -2
  189. package/build-module/components/block-toolbar/edit-section-button.mjs.map +1 -1
  190. package/build-module/components/block-tools/use-block-toolbar-popover-props.mjs +10 -4
  191. package/build-module/components/block-tools/use-block-toolbar-popover-props.mjs.map +2 -2
  192. package/build-module/components/child-layout-control/index.mjs +51 -19
  193. package/build-module/components/child-layout-control/index.mjs.map +2 -2
  194. package/build-module/components/colors-gradients/control.mjs +27 -15
  195. package/build-module/components/colors-gradients/control.mjs.map +2 -2
  196. package/build-module/components/colors-gradients/dropdown.mjs +4 -1
  197. package/build-module/components/colors-gradients/dropdown.mjs.map +2 -2
  198. package/build-module/components/contrast-checker/index.mjs +18 -4
  199. package/build-module/components/contrast-checker/index.mjs.map +2 -2
  200. package/build-module/components/date-format-picker/index.mjs +0 -1
  201. package/build-module/components/date-format-picker/index.mjs.map +2 -2
  202. package/build-module/components/dimensions-tool/index.mjs +4 -5
  203. package/build-module/components/dimensions-tool/index.mjs.map +2 -2
  204. package/build-module/components/dimensions-tool/scale-tool.mjs +1 -1
  205. package/build-module/components/dimensions-tool/scale-tool.mjs.map +2 -2
  206. package/build-module/components/global-styles/background-panel.mjs +155 -27
  207. package/build-module/components/global-styles/background-panel.mjs.map +2 -2
  208. package/build-module/components/global-styles/color-gradient-dropdown-item.mjs +207 -0
  209. package/build-module/components/global-styles/color-gradient-dropdown-item.mjs.map +7 -0
  210. package/build-module/components/global-styles/color-panel.mjs +106 -387
  211. package/build-module/components/global-styles/color-panel.mjs.map +3 -3
  212. package/build-module/components/global-styles/dimensions-panel.mjs +1 -5
  213. package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
  214. package/build-module/components/global-styles/hooks.mjs +33 -0
  215. package/build-module/components/global-styles/hooks.mjs.map +2 -2
  216. package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
  217. package/build-module/components/global-styles/typography-panel.mjs +84 -10
  218. package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
  219. package/build-module/components/grid/grid-item-resizer.mjs.map +1 -1
  220. package/build-module/components/grid/grid-visualizer.mjs.map +1 -1
  221. package/build-module/components/iframe/index.mjs +6 -3
  222. package/build-module/components/iframe/index.mjs.map +2 -2
  223. package/build-module/components/image-editor/use-transform-image.mjs.map +1 -1
  224. package/build-module/components/inserter/get-appender-label.mjs.map +1 -1
  225. package/build-module/components/inserter/media-tab/media-preview.mjs.map +2 -2
  226. package/build-module/components/inserter/search-items.mjs.map +1 -1
  227. package/build-module/components/inspector-controls/fill.mjs +1 -3
  228. package/build-module/components/inspector-controls/fill.mjs.map +2 -2
  229. package/build-module/components/inspector-controls/groups.mjs +2 -0
  230. package/build-module/components/inspector-controls/groups.mjs.map +2 -2
  231. package/build-module/components/inspector-controls-tabs/index.mjs.map +2 -2
  232. package/build-module/components/inspector-controls-tabs/styles-tab.mjs +76 -32
  233. package/build-module/components/inspector-controls-tabs/styles-tab.mjs.map +2 -2
  234. package/build-module/components/keyboard-shortcuts/index.mjs.map +1 -1
  235. package/build-module/components/line-height-control/index.mjs.map +1 -1
  236. package/build-module/components/link-control/index.mjs +2 -3
  237. package/build-module/components/link-control/index.mjs.map +2 -2
  238. package/build-module/components/link-control/normalize-url.mjs.map +1 -1
  239. package/build-module/components/list-view/block-select-button.mjs +2 -17
  240. package/build-module/components/list-view/block-select-button.mjs.map +2 -2
  241. package/build-module/components/list-view/utils.mjs.map +1 -1
  242. package/build-module/components/preset-input-control/custom-value-controls.mjs.map +2 -2
  243. package/build-module/components/provider/index.mjs.map +1 -1
  244. package/build-module/components/provider/use-block-sync.mjs +3 -1
  245. package/build-module/components/provider/use-block-sync.mjs.map +2 -2
  246. package/build-module/components/rich-text/event-listeners/before-input-rules.mjs +1 -1
  247. package/build-module/components/rich-text/event-listeners/before-input-rules.mjs.map +2 -2
  248. package/build-module/components/rich-text/event-listeners/paste-handler.mjs.map +1 -1
  249. package/build-module/components/rich-text/prevent-event-discovery.mjs +1 -1
  250. package/build-module/components/rich-text/prevent-event-discovery.mjs.map +1 -1
  251. package/build-module/components/url-popover/image-url-input-ui.mjs +0 -2
  252. package/build-module/components/url-popover/image-url-input-ui.mjs.map +2 -2
  253. package/build-module/components/use-block-display-information/index.mjs +10 -3
  254. package/build-module/components/use-block-display-information/index.mjs.map +2 -2
  255. package/build-module/components/writing-flow/use-tab-nav.mjs.map +1 -1
  256. package/build-module/hooks/anchor.mjs +1 -2
  257. package/build-module/hooks/anchor.mjs.map +2 -2
  258. package/build-module/hooks/background.mjs +123 -75
  259. package/build-module/hooks/background.mjs.map +2 -2
  260. package/build-module/hooks/block-fields/index.mjs +13 -2
  261. package/build-module/hooks/block-fields/index.mjs.map +2 -2
  262. package/build-module/hooks/color.mjs +2 -175
  263. package/build-module/hooks/color.mjs.map +2 -2
  264. package/build-module/hooks/contrast-checker.mjs +32 -19
  265. package/build-module/hooks/contrast-checker.mjs.map +2 -2
  266. package/build-module/hooks/custom-class-name.mjs +0 -1
  267. package/build-module/hooks/custom-class-name.mjs.map +2 -2
  268. package/build-module/hooks/dimensions.mjs +12 -2
  269. package/build-module/hooks/dimensions.mjs.map +2 -2
  270. package/build-module/hooks/elements.mjs +115 -0
  271. package/build-module/hooks/elements.mjs.map +7 -0
  272. package/build-module/hooks/grid-visualizer.mjs +21 -11
  273. package/build-module/hooks/grid-visualizer.mjs.map +2 -2
  274. package/build-module/hooks/layout-child.mjs +68 -10
  275. package/build-module/hooks/layout-child.mjs.map +2 -2
  276. package/build-module/hooks/layout.mjs +6 -3
  277. package/build-module/hooks/layout.mjs.map +2 -2
  278. package/build-module/hooks/list-view.mjs +10 -7
  279. package/build-module/hooks/list-view.mjs.map +2 -2
  280. package/build-module/hooks/spacing-visualizer.mjs.map +1 -1
  281. package/build-module/hooks/state-utils.mjs.map +1 -1
  282. package/build-module/hooks/states.mjs +2 -2
  283. package/build-module/hooks/states.mjs.map +2 -2
  284. package/build-module/hooks/style.mjs +53 -8
  285. package/build-module/hooks/style.mjs.map +2 -2
  286. package/build-module/hooks/typography.mjs +62 -10
  287. package/build-module/hooks/typography.mjs.map +2 -2
  288. package/build-module/layouts/flex.mjs +105 -7
  289. package/build-module/layouts/flex.mjs.map +2 -2
  290. package/build-module/private-apis.mjs +8 -0
  291. package/build-module/private-apis.mjs.map +2 -2
  292. package/build-module/store/actions.mjs.map +1 -1
  293. package/build-module/store/private-selectors.mjs +18 -1
  294. package/build-module/store/private-selectors.mjs.map +2 -2
  295. package/build-module/store/reducer.mjs.map +1 -1
  296. package/build-module/store/selectors.mjs.map +1 -1
  297. package/build-module/utils/block-bindings.mjs +9 -9
  298. package/build-module/utils/block-bindings.mjs.map +3 -3
  299. package/build-module/utils/color-values.mjs +9 -1
  300. package/build-module/utils/color-values.mjs.map +3 -3
  301. package/build-module/utils/dom.mjs +2 -5
  302. package/build-module/utils/dom.mjs.map +3 -3
  303. package/build-module/utils/fit-text-frontend.mjs +6 -2
  304. package/build-module/utils/fit-text-frontend.mjs.map +3 -3
  305. package/build-module/utils/fit-text-utils.mjs +1 -1
  306. package/build-module/utils/fit-text-utils.mjs.map +3 -3
  307. package/build-module/utils/format-font-style.mjs +1 -1
  308. package/build-module/utils/format-font-style.mjs.map +3 -3
  309. package/build-module/utils/format-font-weight.mjs +1 -1
  310. package/build-module/utils/format-font-weight.mjs.map +3 -3
  311. package/build-module/utils/get-editor-region.mjs +4 -2
  312. package/build-module/utils/get-editor-region.mjs.map +3 -3
  313. package/build-module/utils/get-font-styles-and-weights.mjs +8 -12
  314. package/build-module/utils/get-font-styles-and-weights.mjs.map +3 -3
  315. package/build-module/utils/get-px-from-css-unit.mjs +1 -1
  316. package/build-module/utils/get-px-from-css-unit.mjs.map +1 -1
  317. package/build-module/utils/index.mjs +1 -1
  318. package/build-module/utils/index.mjs.map +1 -1
  319. package/build-module/utils/math.mjs +1 -1
  320. package/build-module/utils/math.mjs.map +3 -3
  321. package/build-module/utils/object.mjs +8 -8
  322. package/build-module/utils/object.mjs.map +3 -3
  323. package/build-module/utils/order-inserter-block-items.mjs +1 -1
  324. package/build-module/utils/order-inserter-block-items.mjs.map +3 -3
  325. package/build-module/utils/pasting.mjs +4 -2
  326. package/build-module/utils/pasting.mjs.map +3 -3
  327. package/build-module/utils/selection.mjs +3 -2
  328. package/build-module/utils/selection.mjs.map +3 -3
  329. package/build-module/utils/sorting.mjs +9 -3
  330. package/build-module/utils/sorting.mjs.map +3 -3
  331. package/build-module/utils/transform-styles/index.mjs +3 -2
  332. package/build-module/utils/transform-styles/index.mjs.map +3 -3
  333. package/build-module/utils/transform-styles/postcss-urlrebase.d.mjs +1 -0
  334. package/build-module/utils/transform-styles/postcss-urlrebase.d.mjs.map +7 -0
  335. package/build-module/utils/transform-styles/types.mjs +1 -0
  336. package/build-module/utils/transform-styles/types.mjs.map +7 -0
  337. package/build-module/utils/types.mjs +1 -0
  338. package/build-module/utils/types.mjs.map +7 -0
  339. package/build-style/content-rtl.css +2 -0
  340. package/build-style/content.css +2 -0
  341. package/build-style/style-rtl.css +34 -41
  342. package/build-style/style.css +34 -41
  343. package/build-types/utils/block-bindings.d.ts +27 -0
  344. package/build-types/utils/block-bindings.d.ts.map +1 -0
  345. package/build-types/utils/color-values.d.ts +40 -0
  346. package/build-types/utils/color-values.d.ts.map +1 -0
  347. package/build-types/utils/dom.d.ts +19 -19
  348. package/build-types/utils/dom.d.ts.map +1 -1
  349. package/build-types/utils/fit-text-frontend.d.ts +7 -0
  350. package/build-types/utils/fit-text-frontend.d.ts.map +1 -0
  351. package/build-types/utils/fit-text-utils.d.ts +15 -0
  352. package/build-types/utils/fit-text-utils.d.ts.map +1 -0
  353. package/build-types/utils/format-font-style.d.ts +12 -0
  354. package/build-types/utils/format-font-style.d.ts.map +1 -0
  355. package/build-types/utils/format-font-weight.d.ts +12 -0
  356. package/build-types/utils/format-font-weight.d.ts.map +1 -0
  357. package/build-types/utils/get-editor-region.d.ts +9 -0
  358. package/build-types/utils/get-editor-region.d.ts.map +1 -0
  359. package/build-types/utils/get-font-styles-and-weights.d.ts +16 -0
  360. package/build-types/utils/get-font-styles-and-weights.d.ts.map +1 -0
  361. package/build-types/utils/get-px-from-css-unit.d.ts +10 -0
  362. package/build-types/utils/get-px-from-css-unit.d.ts.map +1 -0
  363. package/build-types/utils/index.d.ts +3 -0
  364. package/build-types/utils/index.d.ts.map +1 -0
  365. package/build-types/utils/math.d.ts +61 -0
  366. package/build-types/utils/math.d.ts.map +1 -0
  367. package/build-types/utils/object.d.ts +39 -0
  368. package/build-types/utils/object.d.ts.map +1 -0
  369. package/build-types/utils/order-inserter-block-items.d.ts +13 -0
  370. package/build-types/utils/order-inserter-block-items.d.ts.map +1 -0
  371. package/build-types/utils/pasting.d.ts +28 -0
  372. package/build-types/utils/pasting.d.ts.map +1 -0
  373. package/build-types/utils/selection.d.ts +21 -0
  374. package/build-types/utils/selection.d.ts.map +1 -0
  375. package/build-types/utils/sorting.d.ts +17 -0
  376. package/build-types/utils/sorting.d.ts.map +1 -0
  377. package/build-types/utils/transform-styles/index.d.ts +15 -0
  378. package/build-types/utils/transform-styles/index.d.ts.map +1 -0
  379. package/build-types/utils/transform-styles/types.d.ts +13 -0
  380. package/build-types/utils/transform-styles/types.d.ts.map +1 -0
  381. package/build-types/utils/types.d.ts +28 -0
  382. package/build-types/utils/types.d.ts.map +1 -0
  383. package/package.json +46 -40
  384. package/src/components/alignment-control/test/__snapshots__/index.js.snap +6 -0
  385. package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +5 -0
  386. package/src/components/block-card/index.js +7 -13
  387. package/src/components/block-editing-mode/index.js +17 -9
  388. package/src/components/block-icon/test/__snapshots__/index.js.snap +1 -0
  389. package/src/components/block-inspector/index.js +22 -20
  390. package/src/components/block-patterns-list/index.js +0 -1
  391. package/src/components/block-quick-navigation/index.js +7 -7
  392. package/src/components/block-rename/modal.js +0 -1
  393. package/src/components/block-toolbar/block-toolbar-icon.js +22 -6
  394. package/src/components/block-toolbar/test/block-toolbar-icon.js +99 -0
  395. package/src/components/block-tools/use-block-toolbar-popover-props.js +10 -4
  396. package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +4 -0
  397. package/src/components/child-layout-control/index.js +65 -20
  398. package/src/components/child-layout-control/test/index.js +64 -0
  399. package/src/components/colors-gradients/control.js +29 -12
  400. package/src/components/colors-gradients/dropdown.js +4 -1
  401. package/src/components/colors-gradients/style.scss +39 -2
  402. package/src/components/contrast-checker/README.md +9 -0
  403. package/src/components/contrast-checker/index.js +42 -3
  404. package/src/components/date-format-picker/index.js +0 -1
  405. package/src/components/default-block-appender/content.scss +3 -0
  406. package/src/components/dimensions-tool/index.js +4 -9
  407. package/src/components/dimensions-tool/scale-tool.js +1 -2
  408. package/src/components/dimensions-tool/test/index.js +89 -11
  409. package/src/components/global-styles/background-panel.js +201 -34
  410. package/src/components/global-styles/color-gradient-dropdown-item.js +258 -0
  411. package/src/components/global-styles/color-panel.js +125 -487
  412. package/src/components/global-styles/dimensions-panel.js +1 -5
  413. package/src/components/global-styles/hooks.js +45 -0
  414. package/src/components/global-styles/shadow-panel-components.js +0 -1
  415. package/src/components/global-styles/test/background-panel.js +56 -0
  416. package/src/components/global-styles/test/color-panel.js +172 -118
  417. package/src/components/global-styles/test/typography-panel.js +167 -0
  418. package/src/components/global-styles/typography-panel.js +100 -11
  419. package/src/components/iframe/index.js +8 -3
  420. package/src/components/inserter/media-tab/media-preview.js +0 -1
  421. package/src/components/inspector-controls/README.md +0 -2
  422. package/src/components/inspector-controls/fill.js +6 -8
  423. package/src/components/inspector-controls/groups.js +2 -0
  424. package/src/components/inspector-controls-tabs/index.js +0 -1
  425. package/src/components/inspector-controls-tabs/styles-tab.js +78 -28
  426. package/src/components/link-control/index.js +0 -1
  427. package/src/components/link-control/test/index.js +2 -3
  428. package/src/components/list-view/block-select-button.js +2 -18
  429. package/src/components/preset-input-control/custom-value-controls.js +0 -1
  430. package/src/components/provider/use-block-sync.js +3 -1
  431. package/src/components/rich-text/content.scss +2 -0
  432. package/src/components/url-popover/image-url-input-ui.js +0 -2
  433. package/src/components/use-block-display-information/index.js +15 -2
  434. package/src/components/use-block-display-information/test/index.js +140 -0
  435. package/src/hooks/anchor.js +0 -1
  436. package/src/hooks/background.js +210 -133
  437. package/src/hooks/background.scss +0 -35
  438. package/src/hooks/block-fields/index.js +27 -2
  439. package/src/hooks/color.js +2 -205
  440. package/src/hooks/color.scss +3 -9
  441. package/src/hooks/contrast-checker.js +60 -17
  442. package/src/hooks/custom-class-name.js +0 -1
  443. package/src/hooks/dimensions.js +14 -3
  444. package/src/hooks/elements.js +140 -0
  445. package/src/hooks/elements.scss +8 -0
  446. package/src/hooks/grid-visualizer.js +59 -45
  447. package/src/hooks/layout-child.js +92 -14
  448. package/src/hooks/layout.js +6 -3
  449. package/src/hooks/list-view.js +10 -11
  450. package/src/hooks/states.js +2 -2
  451. package/src/hooks/style.js +91 -9
  452. package/src/hooks/test/background.js +59 -0
  453. package/src/hooks/test/block-style-state.js +14 -14
  454. package/src/hooks/test/dimensions.js +71 -0
  455. package/src/hooks/test/layout-child.js +165 -0
  456. package/src/hooks/test/layout.js +6 -6
  457. package/src/hooks/test/style.js +133 -11
  458. package/src/hooks/typography.js +70 -6
  459. package/src/layouts/flex.js +118 -15
  460. package/src/private-apis.js +8 -0
  461. package/src/store/private-selectors.js +47 -0
  462. package/src/store/test/private-selectors.js +166 -7
  463. package/src/store/test/reducer.js +61 -10
  464. package/src/style.scss +1 -0
  465. package/src/utils/block-bindings.ts +51 -0
  466. package/src/utils/color-values.ts +63 -0
  467. package/src/utils/{dom.js → dom.ts} +27 -27
  468. package/src/utils/{fit-text-frontend.js → fit-text-frontend.ts} +12 -4
  469. package/src/utils/{fit-text-utils.js → fit-text-utils.ts} +15 -7
  470. package/src/utils/{format-font-style.js → format-font-style.ts} +10 -3
  471. package/src/utils/{format-font-weight.js → format-font-weight.ts} +10 -3
  472. package/src/utils/{get-editor-region.js → get-editor-region.ts} +10 -6
  473. package/src/utils/{get-font-styles-and-weights.js → get-font-styles-and-weights.ts} +21 -17
  474. package/src/utils/{math.js → math.ts} +37 -30
  475. package/src/utils/object.ts +89 -0
  476. package/src/utils/{order-inserter-block-items.js → order-inserter-block-items.ts} +8 -5
  477. package/src/utils/{pasting.js → pasting.ts} +18 -11
  478. package/src/utils/{selection.js → selection.ts} +11 -4
  479. package/src/utils/sorting.ts +81 -0
  480. package/src/utils/test/color-values.js +44 -1
  481. package/src/utils/transform-styles/{index.js → index.ts} +25 -25
  482. package/src/utils/transform-styles/postcss-urlrebase.d.ts +15 -0
  483. package/src/utils/transform-styles/types.ts +13 -0
  484. package/src/utils/types.ts +29 -0
  485. package/src/utils/block-bindings.js +0 -46
  486. package/src/utils/color-values.js +0 -28
  487. package/src/utils/object.js +0 -67
  488. package/src/utils/sorting.js +0 -54
  489. /package/src/utils/{get-px-from-css-unit.js → get-px-from-css-unit.ts} +0 -0
  490. /package/src/utils/{index.js → index.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 15.22.0 (2026-06-24)
6
+
7
+ ### Enhancements
8
+
9
+ - List View: a block that supports `listView` is now excluded from the List View when it has no inner blocks and disallows insertion (`allowedBlocks` is `[]` or `false`), since there is nothing to show, rearrange, or add. ([#78932](https://github.com/WordPress/gutenberg/pull/78932))
10
+
5
11
  ## 15.21.1 (2026-06-16)
6
12
 
7
13
  ## 15.21.0 (2026-06-10)
package/README.md CHANGED
@@ -937,12 +937,12 @@ Applies a series of CSS rule transforms to wrap selectors inside a given class a
937
937
  _Parameters_
938
938
 
939
939
  - _styles_ `EditorStyle[]`: CSS rules.
940
- - _wrapperSelector_ `string`: Wrapper selector.
940
+ - _wrapperSelector_ Wrapper selector.
941
941
  - _transformOptions_ `TransformOptions`: Additional options for style transformation.
942
942
 
943
943
  _Returns_
944
944
 
945
- - `Array`: converted rules.
945
+ - converted rules.
946
946
 
947
947
  ### Typewriter
948
948
 
@@ -86,12 +86,11 @@ function BlockCard({
86
86
  if (parentClientId || isChild || !allowParentNavigation) {
87
87
  return {};
88
88
  }
89
- const { getBlockParents, getBlockName } = select(import_store.store);
89
+ const { getBlockParents, getBlockName, shouldRenderBlockListView } = (0, import_lock_unlock.unlock)(select(import_store.store));
90
90
  const parents = getBlockParents(clientId, false);
91
- const foundParentId = parents.find((parentId) => {
92
- const parentName = getBlockName(parentId);
93
- return parentName === "core/navigation" || (0, import_blocks.hasBlockSupport)(parentName, "listView");
94
- });
91
+ const foundParentId = parents.find(
92
+ (parentId) => shouldRenderBlockListView(parentId)
93
+ );
95
94
  return {
96
95
  parentBlockClientId: foundParentId,
97
96
  parentBlockName: foundParentId ? getBlockName(foundParentId) : null
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/block-card/index.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tIcon as WCIcon,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { Text, Stack } from '@wordpress/ui';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { __, sprintf, isRTL } from '@wordpress/i18n';\nimport {\n\tchevronLeft,\n\tchevronRight,\n\tarrowRight,\n\tarrowLeft,\n} from '@wordpress/icons';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\n\nconst { Badge: WCBadge } = unlock( componentsPrivateApis );\n\nfunction OptionalParentSelectButton( { children, onClick } ) {\n\tif ( ! onClick ) {\n\t\treturn children;\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName=\"block-editor-block-card__parent-select-button\"\n\t\t\tonClick={ onClick }\n\t\t>\n\t\t\t{ children }\n\t\t</Button>\n\t);\n}\n\n/**\n * A card component that displays block information including title, icon, and description.\n * Can be used to show block metadata and navigation controls for parent blocks.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-card/README.md\n *\n * @example\n * ```jsx\n * function Example() {\n * return (\n * <BlockCard\n * title=\"My Block\"\n * icon=\"smiley\"\n * description=\"A simple block example\"\n * name=\"Custom Block\"\n * />\n * );\n * }\n * ```\n *\n * @param {Object} props Component props.\n * @param {string} props.title The title of the block.\n * @param {string|Object} props.icon The icon of the block. This can be any of [WordPress' Dashicons](https://developer.wordpress.org/resource/dashicons/), or a custom `svg` element.\n * @param {string} props.description The description of the block.\n * @param {Object} [props.blockType] Deprecated: Object containing block type data.\n * @param {string} [props.className] Additional classes to apply to the card.\n * @param {string} [props.name] Custom block name to display before the title.\n * @param {string} [props.allowParentNavigation] Show a back arrow to the parent block in some situations.\n * @param {string} [props.parentClientId] The parent clientId, if this card is for a parent block.\n * @param {string} [props.isChild] Whether the block card is for a child block, in which case, indent the block using an arrow.\n * @param {string} [props.clientId] Whether the block card is for a child block, in which case, indent the block using an arrow.\n * @param {Element} [props.controls] Controls rendered beside the block title.\n * @param {Element} [props.children] Children.\n * @return {Element} Block card component.\n */\nfunction BlockCard( {\n\ttitle,\n\ticon,\n\tdescription,\n\tblockType,\n\tclassName,\n\tname,\n\tallowParentNavigation,\n\tparentClientId,\n\tisChild,\n\tchildren,\n\tclientId,\n\tcontrols,\n} ) {\n\tif ( blockType ) {\n\t\tdeprecated( '`blockType` property in `BlockCard component`', {\n\t\t\tsince: '5.7',\n\t\t\talternative: '`title, icon and description` properties',\n\t\t} );\n\t\t( { title, icon, description } = blockType );\n\t}\n\n\tconst { parentBlockClientId, parentBlockName } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( parentClientId || isChild || ! allowParentNavigation ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst { getBlockParents, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\t// Find the top-most parent block that is either:\n\t\t\t// 1. A navigation block (special case for ad-hoc list view support)\n\t\t\t// 2. Any block with listView support\n\t\t\tconst parents = getBlockParents( clientId, false );\n\t\t\tconst foundParentId = parents.find( ( parentId ) => {\n\t\t\t\tconst parentName = getBlockName( parentId );\n\t\t\t\treturn (\n\t\t\t\t\tparentName === 'core/navigation' ||\n\t\t\t\t\thasBlockSupport( parentName, 'listView' )\n\t\t\t\t);\n\t\t\t} );\n\n\t\t\treturn {\n\t\t\t\tparentBlockClientId: foundParentId,\n\t\t\t\tparentBlockName: foundParentId\n\t\t\t\t\t? getBlockName( foundParentId )\n\t\t\t\t\t: null,\n\t\t\t};\n\t\t},\n\t\t[ clientId, allowParentNavigation, isChild, parentClientId ]\n\t);\n\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\n\tconst TitleElement = parentClientId ? 'div' : 'h2';\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-block-card',\n\t\t\t\t{\n\t\t\t\t\t'is-parent': parentClientId,\n\t\t\t\t\t'is-child': isChild,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t) }\n\t\t>\n\t\t\t<Stack direction=\"column\" gap=\"sm\">\n\t\t\t\t<Stack direction=\"row\" align=\"center\" justify=\"space-between\">\n\t\t\t\t\t<Stack direction=\"row\" align=\"center\" justify=\"flex-start\">\n\t\t\t\t\t\t{ parentBlockClientId && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tselectBlock( parentBlockClientId )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tparentBlockName\n\t\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: The name of the parent block. */\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Go to \"%s\" block' ),\n\t\t\t\t\t\t\t\t\t\t\t\tgetBlockType( parentBlockName )\n\t\t\t\t\t\t\t\t\t\t\t\t\t?.title\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: __( 'Go to parent block' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t// TODO: This style override is also used in ToolsPanelHeader.\n\t\t\t\t\t\t\t\t\t// It should be supported out-of-the-box by Button.\n\t\t\t\t\t\t\t\t\t{ minWidth: 24, padding: 0 }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isChild && (\n\t\t\t\t\t\t\t<span className=\"block-editor-block-card__child-indicator-icon\">\n\t\t\t\t\t\t\t\t<WCIcon\n\t\t\t\t\t\t\t\t\ticon={ isRTL() ? arrowLeft : arrowRight }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<OptionalParentSelectButton\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\tparentClientId\n\t\t\t\t\t\t\t\t\t? () => {\n\t\t\t\t\t\t\t\t\t\t\tselectBlock( parentClientId );\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t\t\t\t\t<Stack direction=\"column\" gap=\"xs\">\n\t\t\t\t\t\t\t\t<TitleElement className=\"block-editor-block-card__title\">\n\t\t\t\t\t\t\t\t\t<span className=\"block-editor-block-card__name\">\n\t\t\t\t\t\t\t\t\t\t{ !! name?.length ? name : title }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t{ ! parentClientId &&\n\t\t\t\t\t\t\t\t\t\t! isChild &&\n\t\t\t\t\t\t\t\t\t\t!! name?.length && (\n\t\t\t\t\t\t\t\t\t\t\t<WCBadge>{ title }</WCBadge>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</TitleElement>\n\t\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t</OptionalParentSelectButton>\n\t\t\t\t\t</Stack>\n\t\t\t\t\t{ controls }\n\t\t\t\t</Stack>\n\t\t\t\t{ ! parentClientId && ! isChild && description && (\n\t\t\t\t\t<Text className=\"block-editor-block-card__description\">\n\t\t\t\t\t\t{ description }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t</Stack>\n\t\t</div>\n\t);\n}\n\nexport default BlockCard;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tIcon as WCIcon,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { Text, Stack } from '@wordpress/ui';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { __, sprintf, isRTL } from '@wordpress/i18n';\nimport {\n\tchevronLeft,\n\tchevronRight,\n\tarrowRight,\n\tarrowLeft,\n} from '@wordpress/icons';\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\n\nconst { Badge: WCBadge } = unlock( componentsPrivateApis );\n\nfunction OptionalParentSelectButton( { children, onClick } ) {\n\tif ( ! onClick ) {\n\t\treturn children;\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName=\"block-editor-block-card__parent-select-button\"\n\t\t\tonClick={ onClick }\n\t\t>\n\t\t\t{ children }\n\t\t</Button>\n\t);\n}\n\n/**\n * A card component that displays block information including title, icon, and description.\n * Can be used to show block metadata and navigation controls for parent blocks.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-card/README.md\n *\n * @example\n * ```jsx\n * function Example() {\n * return (\n * <BlockCard\n * title=\"My Block\"\n * icon=\"smiley\"\n * description=\"A simple block example\"\n * name=\"Custom Block\"\n * />\n * );\n * }\n * ```\n *\n * @param {Object} props Component props.\n * @param {string} props.title The title of the block.\n * @param {string|Object} props.icon The icon of the block. This can be any of [WordPress' Dashicons](https://developer.wordpress.org/resource/dashicons/), or a custom `svg` element.\n * @param {string} props.description The description of the block.\n * @param {Object} [props.blockType] Deprecated: Object containing block type data.\n * @param {string} [props.className] Additional classes to apply to the card.\n * @param {string} [props.name] Custom block name to display before the title.\n * @param {string} [props.allowParentNavigation] Show a back arrow to the parent block in some situations.\n * @param {string} [props.parentClientId] The parent clientId, if this card is for a parent block.\n * @param {string} [props.isChild] Whether the block card is for a child block, in which case, indent the block using an arrow.\n * @param {string} [props.clientId] Whether the block card is for a child block, in which case, indent the block using an arrow.\n * @param {Element} [props.controls] Controls rendered beside the block title.\n * @param {Element} [props.children] Children.\n * @return {Element} Block card component.\n */\nfunction BlockCard( {\n\ttitle,\n\ticon,\n\tdescription,\n\tblockType,\n\tclassName,\n\tname,\n\tallowParentNavigation,\n\tparentClientId,\n\tisChild,\n\tchildren,\n\tclientId,\n\tcontrols,\n} ) {\n\tif ( blockType ) {\n\t\tdeprecated( '`blockType` property in `BlockCard component`', {\n\t\t\tsince: '5.7',\n\t\t\talternative: '`title, icon and description` properties',\n\t\t} );\n\t\t( { title, icon, description } = blockType );\n\t}\n\n\tconst { parentBlockClientId, parentBlockName } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( parentClientId || isChild || ! allowParentNavigation ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst { getBlockParents, getBlockName, shouldRenderBlockListView } =\n\t\t\t\tunlock( select( blockEditorStore ) );\n\n\t\t\t// Find the top-most parent block that participates in List View.\n\t\t\tconst parents = getBlockParents( clientId, false );\n\t\t\tconst foundParentId = parents.find( ( parentId ) =>\n\t\t\t\tshouldRenderBlockListView( parentId )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tparentBlockClientId: foundParentId,\n\t\t\t\tparentBlockName: foundParentId\n\t\t\t\t\t? getBlockName( foundParentId )\n\t\t\t\t\t: null,\n\t\t\t};\n\t\t},\n\t\t[ clientId, allowParentNavigation, isChild, parentClientId ]\n\t);\n\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\n\tconst TitleElement = parentClientId ? 'div' : 'h2';\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-block-card',\n\t\t\t\t{\n\t\t\t\t\t'is-parent': parentClientId,\n\t\t\t\t\t'is-child': isChild,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t) }\n\t\t>\n\t\t\t<Stack direction=\"column\" gap=\"sm\">\n\t\t\t\t<Stack direction=\"row\" align=\"center\" justify=\"space-between\">\n\t\t\t\t\t<Stack direction=\"row\" align=\"center\" justify=\"flex-start\">\n\t\t\t\t\t\t{ parentBlockClientId && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tselectBlock( parentBlockClientId )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tparentBlockName\n\t\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: The name of the parent block. */\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Go to \"%s\" block' ),\n\t\t\t\t\t\t\t\t\t\t\t\tgetBlockType( parentBlockName )\n\t\t\t\t\t\t\t\t\t\t\t\t\t?.title\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: __( 'Go to parent block' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t// TODO: This style override is also used in ToolsPanelHeader.\n\t\t\t\t\t\t\t\t\t// It should be supported out-of-the-box by Button.\n\t\t\t\t\t\t\t\t\t{ minWidth: 24, padding: 0 }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isChild && (\n\t\t\t\t\t\t\t<span className=\"block-editor-block-card__child-indicator-icon\">\n\t\t\t\t\t\t\t\t<WCIcon\n\t\t\t\t\t\t\t\t\ticon={ isRTL() ? arrowLeft : arrowRight }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<OptionalParentSelectButton\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\tparentClientId\n\t\t\t\t\t\t\t\t\t? () => {\n\t\t\t\t\t\t\t\t\t\t\tselectBlock( parentClientId );\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t\t\t\t\t<Stack direction=\"column\" gap=\"xs\">\n\t\t\t\t\t\t\t\t<TitleElement className=\"block-editor-block-card__title\">\n\t\t\t\t\t\t\t\t\t<span className=\"block-editor-block-card__name\">\n\t\t\t\t\t\t\t\t\t\t{ !! name?.length ? name : title }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t{ ! parentClientId &&\n\t\t\t\t\t\t\t\t\t\t! isChild &&\n\t\t\t\t\t\t\t\t\t\t!! name?.length && (\n\t\t\t\t\t\t\t\t\t\t\t<WCBadge>{ title }</WCBadge>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</TitleElement>\n\t\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t</OptionalParentSelectButton>\n\t\t\t\t\t</Stack>\n\t\t\t\t\t{ controls }\n\t\t\t\t</Stack>\n\t\t\t\t{ ! parentClientId && ! isChild && description && (\n\t\t\t\t\t<Text className=\"block-editor-block-card__description\">\n\t\t\t\t\t\t{ description }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t</Stack>\n\t\t</div>\n\t);\n}\n\nexport default BlockCard;\n"],
5
+ "mappings": "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",
6
6
  "names": ["componentsPrivateApis", "deprecated", "blockEditorStore", "clsx", "WCIcon", "BlockIcon"]
7
7
  }
@@ -30,7 +30,7 @@ var import_context = require("../block-edit/context.cjs");
30
30
  function useBlockEditingMode(mode) {
31
31
  const context = (0, import_context.useBlockEditContext)();
32
32
  const { clientId = "" } = context;
33
- const { setBlockEditingMode, unsetBlockEditingMode } = (0, import_data.useDispatch)(import_store.store);
33
+ const registry = (0, import_data.useRegistry)();
34
34
  const globalBlockEditingMode = (0, import_data.useSelect)(
35
35
  (select) => (
36
36
  // Avoid adding the subscription if not needed!
@@ -39,15 +39,21 @@ function useBlockEditingMode(mode) {
39
39
  [clientId]
40
40
  );
41
41
  (0, import_element.useEffect)(() => {
42
- if (mode) {
43
- setBlockEditingMode(clientId, mode);
42
+ if (!mode) {
43
+ return;
44
44
  }
45
+ const {
46
+ setBlockEditingMode,
47
+ unsetBlockEditingMode,
48
+ __unstableMarkNextChangeAsNotPersistent
49
+ } = registry.dispatch(import_store.store);
50
+ __unstableMarkNextChangeAsNotPersistent();
51
+ setBlockEditingMode(clientId, mode);
45
52
  return () => {
46
- if (mode) {
47
- unsetBlockEditingMode(clientId);
48
- }
53
+ __unstableMarkNextChangeAsNotPersistent();
54
+ unsetBlockEditingMode(clientId);
49
55
  };
50
- }, [clientId, mode, setBlockEditingMode, unsetBlockEditingMode]);
56
+ }, [registry, clientId, mode]);
51
57
  return clientId ? context[import_context.blockEditingModeKey] : globalBlockEditingMode;
52
58
  }
53
59
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/block-editing-mode/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport {\n\tuseBlockEditContext,\n\tblockEditingModeKey,\n} from '../block-edit/context';\n\n/**\n * @typedef {'disabled'|'contentOnly'|'default'} BlockEditingMode\n */\n\n/**\n * Allows a block to restrict the user interface that is displayed for editing\n * that block and its inner blocks.\n *\n * @example\n * ```js\n * function MyBlock( { attributes, setAttributes } ) {\n * useBlockEditingMode( 'disabled' );\n * return <div { ...useBlockProps() }></div>;\n * }\n * ```\n *\n * `mode` can be one of three options:\n *\n * - `'disabled'`: Prevents editing the block entirely, i.e. it cannot be\n * selected.\n * - `'contentOnly'`: Hides all non-content UI, e.g. auxiliary controls in the\n * toolbar, the block movers, block settings.\n * - `'default'`: Allows editing the block as normal.\n *\n * The mode is inherited by all of the block's inner blocks, unless they have\n * their own mode.\n *\n * If called outside of a block context, the mode is applied to all blocks.\n *\n * @param {?BlockEditingMode} mode The editing mode to apply. If undefined, the\n * current editing mode is not changed.\n *\n * @return {BlockEditingMode} The current editing mode.\n */\nexport function useBlockEditingMode( mode ) {\n\tconst context = useBlockEditContext();\n\tconst { clientId = '' } = context;\n\tconst { setBlockEditingMode, unsetBlockEditingMode } =\n\t\tuseDispatch( blockEditorStore );\n\tconst globalBlockEditingMode = useSelect(\n\t\t( select ) =>\n\t\t\t// Avoid adding the subscription if not needed!\n\t\t\tclientId ? null : select( blockEditorStore ).getBlockEditingMode(),\n\t\t[ clientId ]\n\t);\n\tuseEffect( () => {\n\t\tif ( mode ) {\n\t\t\tsetBlockEditingMode( clientId, mode );\n\t\t}\n\t\treturn () => {\n\t\t\tif ( mode ) {\n\t\t\t\tunsetBlockEditingMode( clientId );\n\t\t\t}\n\t\t};\n\t}, [ clientId, mode, setBlockEditingMode, unsetBlockEditingMode ] );\n\treturn clientId ? context[ blockEditingModeKey ] : globalBlockEditingMode;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAuC;AACvC,qBAA0B;AAK1B,mBAA0C;AAC1C,qBAGO;AAoCA,SAAS,oBAAqB,MAAO;AAC3C,QAAM,cAAU,oCAAoB;AACpC,QAAM,EAAE,WAAW,GAAG,IAAI;AAC1B,QAAM,EAAE,qBAAqB,sBAAsB,QAClD,yBAAa,aAAAA,KAAiB;AAC/B,QAAM,6BAAyB;AAAA,IAC9B,CAAE;AAAA;AAAA,MAED,WAAW,OAAO,OAAQ,aAAAA,KAAiB,EAAE,oBAAoB;AAAA;AAAA,IAClE,CAAE,QAAS;AAAA,EACZ;AACA,gCAAW,MAAM;AAChB,QAAK,MAAO;AACX,0BAAqB,UAAU,IAAK;AAAA,IACrC;AACA,WAAO,MAAM;AACZ,UAAK,MAAO;AACX,8BAAuB,QAAS;AAAA,MACjC;AAAA,IACD;AAAA,EACD,GAAG,CAAE,UAAU,MAAM,qBAAqB,qBAAsB,CAAE;AAClE,SAAO,WAAW,QAAS,kCAAoB,IAAI;AACpD;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useSelect, useRegistry } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport {\n\tuseBlockEditContext,\n\tblockEditingModeKey,\n} from '../block-edit/context';\n\n/**\n * @typedef {'disabled'|'contentOnly'|'default'} BlockEditingMode\n */\n\n/**\n * Allows a block to restrict the user interface that is displayed for editing\n * that block and its inner blocks.\n *\n * @example\n * ```js\n * function MyBlock( { attributes, setAttributes } ) {\n * useBlockEditingMode( 'disabled' );\n * return <div { ...useBlockProps() }></div>;\n * }\n * ```\n *\n * `mode` can be one of three options:\n *\n * - `'disabled'`: Prevents editing the block entirely, i.e. it cannot be\n * selected.\n * - `'contentOnly'`: Hides all non-content UI, e.g. auxiliary controls in the\n * toolbar, the block movers, block settings.\n * - `'default'`: Allows editing the block as normal.\n *\n * The mode is inherited by all of the block's inner blocks, unless they have\n * their own mode.\n *\n * If called outside of a block context, the mode is applied to all blocks.\n *\n * @param {?BlockEditingMode} mode The editing mode to apply. If undefined, the\n * current editing mode is not changed.\n *\n * @return {BlockEditingMode} The current editing mode.\n */\nexport function useBlockEditingMode( mode ) {\n\tconst context = useBlockEditContext();\n\tconst { clientId = '' } = context;\n\tconst registry = useRegistry();\n\tconst globalBlockEditingMode = useSelect(\n\t\t( select ) =>\n\t\t\t// Avoid adding the subscription if not needed!\n\t\t\tclientId ? null : select( blockEditorStore ).getBlockEditingMode(),\n\t\t[ clientId ]\n\t);\n\tuseEffect( () => {\n\t\tif ( ! mode ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst {\n\t\t\tsetBlockEditingMode,\n\t\t\tunsetBlockEditingMode,\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t} = registry.dispatch( blockEditorStore );\n\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetBlockEditingMode( clientId, mode );\n\n\t\treturn () => {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tunsetBlockEditingMode( clientId );\n\t\t};\n\t}, [ registry, clientId, mode ] );\n\treturn clientId ? context[ blockEditingModeKey ] : globalBlockEditingMode;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAuC;AACvC,qBAA0B;AAK1B,mBAA0C;AAC1C,qBAGO;AAoCA,SAAS,oBAAqB,MAAO;AAC3C,QAAM,cAAU,oCAAoB;AACpC,QAAM,EAAE,WAAW,GAAG,IAAI;AAC1B,QAAM,eAAW,yBAAY;AAC7B,QAAM,6BAAyB;AAAA,IAC9B,CAAE;AAAA;AAAA,MAED,WAAW,OAAO,OAAQ,aAAAA,KAAiB,EAAE,oBAAoB;AAAA;AAAA,IAClE,CAAE,QAAS;AAAA,EACZ;AACA,gCAAW,MAAM;AAChB,QAAK,CAAE,MAAO;AACb;AAAA,IACD;AAEA,UAAM;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACD,IAAI,SAAS,SAAU,aAAAA,KAAiB;AAExC,4CAAwC;AACxC,wBAAqB,UAAU,IAAK;AAEpC,WAAO,MAAM;AACZ,8CAAwC;AACxC,4BAAuB,QAAS;AAAA,IACjC;AAAA,EACD,GAAG,CAAE,UAAU,UAAU,IAAK,CAAE;AAChC,SAAO,WAAW,QAAS,kCAAoB,IAAI;AACpD;",
6
6
  "names": ["blockEditorStore"]
7
7
  }
@@ -72,6 +72,13 @@ function StyleInspectorSlots({
72
72
  const borderPanelLabel = (0, import_border.useBorderPanelLabel)({ blockName });
73
73
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
74
74
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_inspector_controls.default.Slot, {}),
75
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
76
+ import_inspector_controls.default.Slot,
77
+ {
78
+ group: "typography",
79
+ label: (0, import_i18n.__)("Typography")
80
+ }
81
+ ),
75
82
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
76
83
  import_inspector_controls.default.Slot,
77
84
  {
@@ -84,26 +91,27 @@ function StyleInspectorSlots({
84
91
  import_inspector_controls.default.Slot,
85
92
  {
86
93
  group: "background",
87
- label: (0, import_i18n.__)("Background image"),
94
+ label: (0, import_i18n.__)("Background"),
88
95
  className: "background-block-support-panel__inner-wrapper"
89
96
  }
90
97
  ),
98
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_inspector_controls.default.Slot, { group: "layout", label: (0, import_i18n.__)("Layout") }),
91
99
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
92
100
  import_inspector_controls.default.Slot,
93
101
  {
94
- group: "typography",
95
- label: (0, import_i18n.__)("Typography")
102
+ group: "dimensions",
103
+ label: (0, import_i18n.__)("Dimensions")
96
104
  }
97
105
  ),
98
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_inspector_controls.default.Slot, { group: "layout", label: (0, import_i18n.__)("Layout") }),
106
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_inspector_controls.default.Slot, { group: "border", label: borderPanelLabel }),
99
107
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
100
108
  import_inspector_controls.default.Slot,
101
109
  {
102
- group: "dimensions",
103
- label: (0, import_i18n.__)("Dimensions")
110
+ group: "elements",
111
+ label: (0, import_i18n.__)("Elements"),
112
+ className: "elements-block-support-panel__inner-wrapper"
104
113
  }
105
114
  ),
106
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_inspector_controls.default.Slot, { group: "border", label: borderPanelLabel }),
107
115
  showPositionControls && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_position_controls_panel.default, {}),
108
116
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_inspector_controls.default.Slot, { group: "styles" }),
109
117
  showBindingsControls && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_inspector_controls.default.Slot, { group: "bindings" }),
@@ -117,24 +125,24 @@ function StyleStateInspectorSlots({ blockName, selectedBlockStyleState }) {
117
125
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
118
126
  import_inspector_controls.default.Slot,
119
127
  {
120
- group: "color",
121
- label: (0, import_i18n.__)("Color"),
122
- className: "color-block-support-panel__inner-wrapper"
128
+ group: "typography",
129
+ label: (0, import_i18n.__)("Typography")
123
130
  }
124
131
  ),
125
132
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
126
133
  import_inspector_controls.default.Slot,
127
134
  {
128
- group: "background",
129
- label: (0, import_i18n.__)("Background image"),
130
- className: "background-block-support-panel__inner-wrapper"
135
+ group: "color",
136
+ label: (0, import_i18n.__)("Color"),
137
+ className: "color-block-support-panel__inner-wrapper"
131
138
  }
132
139
  ),
133
140
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
134
141
  import_inspector_controls.default.Slot,
135
142
  {
136
- group: "typography",
137
- label: (0, import_i18n.__)("Typography")
143
+ group: "background",
144
+ label: (0, import_i18n.__)("Background"),
145
+ className: "background-block-support-panel__inner-wrapper"
138
146
  }
139
147
  ),
140
148
  showLayoutControls && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -151,7 +159,15 @@ function StyleStateInspectorSlots({ blockName, selectedBlockStyleState }) {
151
159
  label: (0, import_i18n.__)("Dimensions")
152
160
  }
153
161
  ),
154
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_inspector_controls.default.Slot, { group: "border", label: borderPanelLabel })
162
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_inspector_controls.default.Slot, { group: "border", label: borderPanelLabel }),
163
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
164
+ import_inspector_controls.default.Slot,
165
+ {
166
+ group: "elements",
167
+ label: (0, import_i18n.__)("Elements"),
168
+ className: "elements-block-support-panel__inner-wrapper"
169
+ }
170
+ )
155
171
  ] });
156
172
  }
157
173
  function BlockInspector() {
@@ -223,16 +239,15 @@ function BlockInspector() {
223
239
  }
224
240
  const {
225
241
  getClientIdsOfDescendants,
226
- getBlockName,
227
- getBlockEditingMode
242
+ getBlockEditingMode,
243
+ shouldRenderBlockListView
228
244
  } = (0, import_lock_unlock.unlock)(select(import_store.store));
229
245
  const descendants = getClientIdsOfDescendants(
230
246
  renderedBlockClientId
231
247
  );
232
248
  const listViewDescendants = /* @__PURE__ */ new Set();
233
249
  descendants.forEach((clientId) => {
234
- const blockName = getBlockName(clientId);
235
- if (blockName === "core/navigation" || (0, import_blocks.hasBlockSupport)(blockName, "listView")) {
250
+ if (shouldRenderBlockListView(clientId)) {
236
251
  const listViewChildren = getClientIdsOfDescendants(clientId);
237
252
  listViewChildren.forEach(
238
253
  (childId) => listViewDescendants.add(childId)
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/block-inspector/index.js"],
4
- "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 {\n\tToggleControl,\n\t__experimentalSpacer as Spacer,\n\t__unstableMotion as motion,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport EditContents from './edit-contents';\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 { ListViewContentPopover } from '../inspector-controls/list-view-content-popover';\nimport InspectorControls from '../inspector-controls';\nimport { BlockInspectorPreTabsSlot } from './inspector-pre-tabs-slot-fill';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport InspectorControlsLastItem from '../inspector-controls/last-item';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport { useBorderPanelLabel } from '../../hooks/border';\nimport { BlockStateBadges, BlockStatesControl } from '../../hooks/states';\nimport ContentTab from '../inspector-controls-tabs/content-tab';\nimport ViewportVisibilityInfo from '../block-visibility/viewport-visibility-info';\nimport { unlock } from '../../lock-unlock';\nimport {\n\thasPseudoBlockStyleState,\n\thasViewportBlockStyleState,\n\tisDefaultBlockStyleState,\n} from '../../hooks/block-style-state';\nimport { onViewportStateChangeKey } from '../../store/private-keys';\n\nfunction StyleInspectorSlots( {\n\tblockName,\n\tshowAdvancedControls = true,\n\tshowPositionControls = true,\n\tshowBindingsControls = true,\n} ) {\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls.Slot />\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"color\"\n\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"background\"\n\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\tclassName=\"background-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"typography\"\n\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot group=\"layout\" label={ __( 'Layout' ) } />\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"dimensions\"\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot group=\"border\" label={ borderPanelLabel } />\n\t\t\t{ showPositionControls && <PositionControls /> }\n\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t{ showBindingsControls && (\n\t\t\t\t<InspectorControls.Slot group=\"bindings\" />\n\t\t\t) }\n\t\t\t{ showAdvancedControls && (\n\t\t\t\t<div>\n\t\t\t\t\t<AdvancedControls />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction StyleStateInspectorSlots( { blockName, selectedBlockStyleState } ) {\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\tconst showLayoutControls =\n\t\thasViewportBlockStyleState( selectedBlockStyleState ) &&\n\t\t! hasPseudoBlockStyleState( selectedBlockStyleState );\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"color\"\n\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"background\"\n\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\tclassName=\"background-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"typography\"\n\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t/>\n\t\t\t{ showLayoutControls && (\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\tgroup=\"layout\"\n\t\t\t\t\tlabel={ __( 'Layout' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"dimensions\"\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot group=\"border\" label={ borderPanelLabel } />\n\t\t</>\n\t);\n}\n\nfunction BlockInspector() {\n\tconst {\n\t\tselectedBlockCount,\n\t\trenderedBlockName,\n\t\trenderedBlockClientId,\n\t\tblockType,\n\t\tisSectionBlock,\n\t\tisSectionBlockInSelection,\n\t\thasBlockStyles,\n\t\teditedContentOnlySection,\n\t\tblockEditingMode,\n\t\tselectedBlockStyleState,\n\t\tshowStateOnCanvas,\n\t\tonViewportStateChange,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\tgetParentSectionBlock,\n\t\t\tisSectionBlock: _isSectionBlock,\n\t\t\tgetEditedContentOnlySection,\n\t\t\tisWithinEditedContentOnlySection,\n\t\t\tgetBlockEditingMode,\n\t\t\tgetSelectedBlockStyleState,\n\t\t\tisSelectedBlockStyleStateShownOnCanvas,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst blockEditorSettings = select( blockEditorStore ).getSettings();\n\t\tconst { getBlockStyles } = select( blocksStore );\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst isWithinEditedSection = isWithinEditedContentOnlySection(\n\t\t\t_selectedBlockClientId\n\t\t);\n\t\tconst _renderedBlockClientId = isWithinEditedSection\n\t\t\t? _selectedBlockClientId\n\t\t\t: getParentSectionBlock( _selectedBlockClientId ) ||\n\t\t\t _selectedBlockClientId;\n\t\tconst _renderedBlockName =\n\t\t\t_renderedBlockClientId && getBlockName( _renderedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_renderedBlockName && getBlockType( _renderedBlockName );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst _isSectionBlockInSelection = selectedBlockClientIds.some(\n\t\t\t( id ) => _isSectionBlock( id )\n\t\t);\n\t\tconst blockStyles =\n\t\t\t_renderedBlockName && getBlockStyles( _renderedBlockName );\n\t\tconst _hasBlockStyles = blockStyles && blockStyles.length > 0;\n\n\t\treturn {\n\t\t\tselectedBlockCount: getSelectedBlockCount(),\n\t\t\trenderedBlockClientId: _renderedBlockClientId,\n\t\t\trenderedBlockName: _renderedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\tisSectionBlockInSelection: _isSectionBlockInSelection,\n\t\t\tisSectionBlock: _isSectionBlock( _renderedBlockClientId ),\n\t\t\thasBlockStyles: _hasBlockStyles,\n\t\t\teditedContentOnlySection: getEditedContentOnlySection(),\n\t\t\tblockEditingMode: getBlockEditingMode( _renderedBlockClientId ),\n\t\t\tselectedBlockStyleState: getSelectedBlockStyleState(\n\t\t\t\t_renderedBlockClientId\n\t\t\t),\n\t\t\tshowStateOnCanvas: isSelectedBlockStyleStateShownOnCanvas(\n\t\t\t\t_renderedBlockClientId\n\t\t\t),\n\t\t\tonViewportStateChange:\n\t\t\t\tblockEditorSettings?.[ onViewportStateChangeKey ],\n\t\t};\n\t}, [] );\n\n\t// Separate useSelect for contentClientIds with proper dependencies\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSectionBlock || ! renderedBlockClientId ) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst descendants = getClientIdsOfDescendants(\n\t\t\t\trenderedBlockClientId\n\t\t\t);\n\n\t\t\t// Exclude items from the content tab that are already present in the\n\t\t\t// List View tab.\n\t\t\tconst listViewDescendants = new Set();\n\t\t\tdescendants.forEach( ( clientId ) => {\n\t\t\t\tconst blockName = getBlockName( clientId );\n\t\t\t\t// Navigation block doesn't have List View block support, but\n\t\t\t\t// it does have a custom implementation that is shown within\n\t\t\t\t// patterns, so it's included in this condition.\n\t\t\t\tif (\n\t\t\t\t\tblockName === 'core/navigation' ||\n\t\t\t\t\thasBlockSupport( blockName, 'listView' )\n\t\t\t\t) {\n\t\t\t\t\tconst listViewChildren =\n\t\t\t\t\t\tgetClientIdsOfDescendants( clientId );\n\t\t\t\t\tlistViewChildren.forEach( ( childId ) =>\n\t\t\t\t\t\tlistViewDescendants.add( childId )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn descendants.filter( ( current ) => {\n\t\t\t\treturn (\n\t\t\t\t\t! listViewDescendants.has( current ) &&\n\t\t\t\t\tgetBlockEditingMode( current ) === 'contentOnly'\n\t\t\t\t);\n\t\t\t} );\n\t\t},\n\t\t[ isSectionBlock, renderedBlockClientId ]\n\t);\n\n\tconst availableTabs = useInspectorControlsTabs(\n\t\tblockType?.name,\n\t\tcontentClientIds,\n\t\tisSectionBlock,\n\t\thasBlockStyles\n\t);\n\tconst hasMultipleTabs = 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 =\n\t\tuseBlockInspectorAnimationSettings( blockType );\n\n\tconst hasSelectedBlocks = selectedBlockCount > 1;\n\tconst isBlockStyleStateSelected = ! isDefaultBlockStyleState(\n\t\tselectedBlockStyleState\n\t);\n\n\tif ( hasSelectedBlocks && ! isSectionBlockInSelection ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ hasMultipleTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<StyleInspectorSlots\n\t\t\t\t\t\tblockName={ renderedBlockName }\n\t\t\t\t\t\tshowAdvancedControls={ false }\n\t\t\t\t\t\tshowPositionControls={ false }\n\t\t\t\t\t\tshowBindingsControls={ false }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( hasSelectedBlocks && isSectionBlockInSelection ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isRenderedBlockUnregistered =\n\t\trenderedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the rendered 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\tconst shouldShowWarning =\n\t\t! blockType || ! renderedBlockClientId || isRenderedBlockUnregistered;\n\n\tif ( shouldShowWarning ) {\n\t\treturn (\n\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t</span>\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\trenderedBlockClientId={ renderedBlockClientId }\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\trenderedBlockClientId={ renderedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t\tavailableTabs={ availableTabs }\n\t\t\t\tcontentClientIds={ contentClientIds }\n\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\teditedContentOnlySection={ editedContentOnlySection }\n\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\tselectedBlockStyleState={ selectedBlockStyleState }\n\t\t\t\tshowStateOnCanvas={ showStateOnCanvas }\n\t\t\t\tonViewportStateChange={ onViewportStateChange }\n\t\t\t\tisBlockStyleStateSelected={ isBlockStyleStateSelected }\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\trenderedBlockClientId,\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={ renderedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( {\n\t// The block that is displayed in the inspector. This is the block whose\n\t// controls and information are shown to the user.\n\trenderedBlockClientId,\n\tblockName,\n\tisSectionBlock,\n\tavailableTabs,\n\tcontentClientIds,\n\thasBlockStyles,\n\teditedContentOnlySection,\n\tblockEditingMode,\n\tselectedBlockStyleState,\n\tshowStateOnCanvas,\n\tonViewportStateChange,\n\tisBlockStyleStateSelected,\n} ) => {\n\tconst listViewRef = useRef( null );\n\tconst hasMultipleTabs = availableTabs?.length > 1;\n\tconst hasParentChildBlockCards =\n\t\teditedContentOnlySection &&\n\t\teditedContentOnlySection !== renderedBlockClientId;\n\tconst parentBlockInformation = useBlockDisplayInformation(\n\t\teditedContentOnlySection\n\t);\n\tconst blockInformation = useBlockDisplayInformation(\n\t\trenderedBlockClientId\n\t);\n\tconst isBlockSynced = blockInformation.isSynced;\n\tconst {\n\t\tsetSelectedBlockStyleState,\n\t\tsetSelectedBlockStyleStateCanvasPreview,\n\t} = unlock( useDispatch( blockEditorStore ) );\n\tconst onBlockStyleStateChange = ( value ) => {\n\t\tconst nextSelectedBlockStyleState = {\n\t\t\t...selectedBlockStyleState,\n\t\t\t...value,\n\t\t};\n\n\t\tsetSelectedBlockStyleState(\n\t\t\trenderedBlockClientId,\n\t\t\tnextSelectedBlockStyleState\n\t\t);\n\n\t\tif ( value.viewport ) {\n\t\t\tonViewportStateChange?.( {\n\t\t\t\tviewport: nextSelectedBlockStyleState.viewport,\n\t\t\t\tshowStateOnCanvas,\n\t\t\t} );\n\t\t}\n\t};\n\tconst onShowStateOnCanvasChange = ( value ) => {\n\t\tsetSelectedBlockStyleStateCanvasPreview( renderedBlockClientId, value );\n\n\t\tif ( value ) {\n\t\t\tonViewportStateChange?.( {\n\t\t\t\tviewport: selectedBlockStyleState.viewport,\n\t\t\t\tshowStateOnCanvas: value,\n\t\t\t} );\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t{ hasParentChildBlockCards && (\n\t\t\t\t<BlockCard\n\t\t\t\t\t{ ...parentBlockInformation }\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tparentBlockInformation?.isSynced && 'is-synced'\n\t\t\t\t\t}\n\t\t\t\t\tparentClientId={ editedContentOnlySection }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tallowParentNavigation\n\t\t\t\tclassName={ isBlockSynced && 'is-synced' }\n\t\t\t\tisChild={ hasParentChildBlockCards }\n\t\t\t\tclientId={ renderedBlockClientId }\n\t\t\t\tcontrols={\n\t\t\t\t\tblockEditingMode === 'default' && (\n\t\t\t\t\t\t<BlockStatesControl\n\t\t\t\t\t\t\tname={ blockName }\n\t\t\t\t\t\t\tvalue={ selectedBlockStyleState }\n\t\t\t\t\t\t\tonChange={ onBlockStyleStateChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ blockEditingMode === 'default' && isBlockStyleStateSelected && (\n\t\t\t\t<Spacer paddingX={ 4 } paddingY={ 2 }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show state on canvas' ) }\n\t\t\t\t\t\tchecked={ showStateOnCanvas }\n\t\t\t\t\t\tonChange={ onShowStateOnCanvasChange }\n\t\t\t\t\t/>\n\t\t\t\t\t<BlockStateBadges\n\t\t\t\t\t\tname={ blockName }\n\t\t\t\t\t\tvalue={ selectedBlockStyleState }\n\t\t\t\t\t/>\n\t\t\t\t</Spacer>\n\t\t\t) }\n\t\t\t<ViewportVisibilityInfo clientId={ renderedBlockClientId } />\n\t\t\t<EditContents clientId={ renderedBlockClientId } />\n\t\t\t{ ! isBlockStyleStateSelected && (\n\t\t\t\t<BlockVariationTransforms\n\t\t\t\t\tblockClientId={ renderedBlockClientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<BlockInspectorPreTabsSlot />\n\t\t\t{ isBlockStyleStateSelected && ! isSectionBlock && (\n\t\t\t\t<StyleStateInspectorSlots\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\tselectedBlockStyleState={ selectedBlockStyleState }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! isBlockStyleStateSelected && hasMultipleTabs && (\n\t\t\t\t<>\n\t\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\t\tclientId={ renderedBlockClientId }\n\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t\t\t\tcontentClientIds={ contentClientIds }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ ! isBlockStyleStateSelected && ! hasMultipleTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<BlockStyles clientId={ renderedBlockClientId } />\n\t\t\t\t\t) }\n\t\t\t\t\t<ContentTab contentClientIds={ contentClientIds } />\n\t\t\t\t\t<InspectorControls.Slot group=\"content\" />\n\t\t\t\t\t<InspectorControls.Slot group=\"list\" ref={ listViewRef } />\n\t\t\t\t\t<ListViewContentPopover listViewRef={ listViewRef } />\n\t\t\t\t\t{ ! isSectionBlock && (\n\t\t\t\t\t\t<StyleInspectorSlots blockName={ blockName } />\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ ! isBlockStyleStateSelected && (\n\t\t\t\t<InspectorControlsLastItem.Slot />\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"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tToggleControl,\n\t__experimentalSpacer as Spacer,\n\t__unstableMotion as motion,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport EditContents from './edit-contents';\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 { ListViewContentPopover } from '../inspector-controls/list-view-content-popover';\nimport InspectorControls from '../inspector-controls';\nimport { BlockInspectorPreTabsSlot } from './inspector-pre-tabs-slot-fill';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport InspectorControlsLastItem from '../inspector-controls/last-item';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport { useBorderPanelLabel } from '../../hooks/border';\nimport { BlockStateBadges, BlockStatesControl } from '../../hooks/states';\nimport ContentTab from '../inspector-controls-tabs/content-tab';\nimport ViewportVisibilityInfo from '../block-visibility/viewport-visibility-info';\nimport { unlock } from '../../lock-unlock';\nimport {\n\thasPseudoBlockStyleState,\n\thasViewportBlockStyleState,\n\tisDefaultBlockStyleState,\n} from '../../hooks/block-style-state';\nimport { onViewportStateChangeKey } from '../../store/private-keys';\n\nfunction StyleInspectorSlots( {\n\tblockName,\n\tshowAdvancedControls = true,\n\tshowPositionControls = true,\n\tshowBindingsControls = true,\n} ) {\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls.Slot />\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"typography\"\n\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"color\"\n\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"background\"\n\t\t\t\tlabel={ __( 'Background' ) }\n\t\t\t\tclassName=\"background-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot group=\"layout\" label={ __( 'Layout' ) } />\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"dimensions\"\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot group=\"border\" label={ borderPanelLabel } />\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"elements\"\n\t\t\t\tlabel={ __( 'Elements' ) }\n\t\t\t\tclassName=\"elements-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t{ showPositionControls && <PositionControls /> }\n\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t{ showBindingsControls && (\n\t\t\t\t<InspectorControls.Slot group=\"bindings\" />\n\t\t\t) }\n\t\t\t{ showAdvancedControls && (\n\t\t\t\t<div>\n\t\t\t\t\t<AdvancedControls />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction StyleStateInspectorSlots( { blockName, selectedBlockStyleState } ) {\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\tconst showLayoutControls =\n\t\thasViewportBlockStyleState( selectedBlockStyleState ) &&\n\t\t! hasPseudoBlockStyleState( selectedBlockStyleState );\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"typography\"\n\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"color\"\n\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"background\"\n\t\t\t\tlabel={ __( 'Background' ) }\n\t\t\t\tclassName=\"background-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t{ showLayoutControls && (\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\tgroup=\"layout\"\n\t\t\t\t\tlabel={ __( 'Layout' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"dimensions\"\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot group=\"border\" label={ borderPanelLabel } />\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"elements\"\n\t\t\t\tlabel={ __( 'Elements' ) }\n\t\t\t\tclassName=\"elements-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nfunction BlockInspector() {\n\tconst {\n\t\tselectedBlockCount,\n\t\trenderedBlockName,\n\t\trenderedBlockClientId,\n\t\tblockType,\n\t\tisSectionBlock,\n\t\tisSectionBlockInSelection,\n\t\thasBlockStyles,\n\t\teditedContentOnlySection,\n\t\tblockEditingMode,\n\t\tselectedBlockStyleState,\n\t\tshowStateOnCanvas,\n\t\tonViewportStateChange,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\tgetParentSectionBlock,\n\t\t\tisSectionBlock: _isSectionBlock,\n\t\t\tgetEditedContentOnlySection,\n\t\t\tisWithinEditedContentOnlySection,\n\t\t\tgetBlockEditingMode,\n\t\t\tgetSelectedBlockStyleState,\n\t\t\tisSelectedBlockStyleStateShownOnCanvas,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst blockEditorSettings = select( blockEditorStore ).getSettings();\n\t\tconst { getBlockStyles } = select( blocksStore );\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst isWithinEditedSection = isWithinEditedContentOnlySection(\n\t\t\t_selectedBlockClientId\n\t\t);\n\t\tconst _renderedBlockClientId = isWithinEditedSection\n\t\t\t? _selectedBlockClientId\n\t\t\t: getParentSectionBlock( _selectedBlockClientId ) ||\n\t\t\t _selectedBlockClientId;\n\t\tconst _renderedBlockName =\n\t\t\t_renderedBlockClientId && getBlockName( _renderedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_renderedBlockName && getBlockType( _renderedBlockName );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst _isSectionBlockInSelection = selectedBlockClientIds.some(\n\t\t\t( id ) => _isSectionBlock( id )\n\t\t);\n\t\tconst blockStyles =\n\t\t\t_renderedBlockName && getBlockStyles( _renderedBlockName );\n\t\tconst _hasBlockStyles = blockStyles && blockStyles.length > 0;\n\n\t\treturn {\n\t\t\tselectedBlockCount: getSelectedBlockCount(),\n\t\t\trenderedBlockClientId: _renderedBlockClientId,\n\t\t\trenderedBlockName: _renderedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\tisSectionBlockInSelection: _isSectionBlockInSelection,\n\t\t\tisSectionBlock: _isSectionBlock( _renderedBlockClientId ),\n\t\t\thasBlockStyles: _hasBlockStyles,\n\t\t\teditedContentOnlySection: getEditedContentOnlySection(),\n\t\t\tblockEditingMode: getBlockEditingMode( _renderedBlockClientId ),\n\t\t\tselectedBlockStyleState: getSelectedBlockStyleState(\n\t\t\t\t_renderedBlockClientId\n\t\t\t),\n\t\t\tshowStateOnCanvas: isSelectedBlockStyleStateShownOnCanvas(\n\t\t\t\t_renderedBlockClientId\n\t\t\t),\n\t\t\tonViewportStateChange:\n\t\t\t\tblockEditorSettings?.[ onViewportStateChangeKey ],\n\t\t};\n\t}, [] );\n\n\t// Separate useSelect for contentClientIds with proper dependencies\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSectionBlock || ! renderedBlockClientId ) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tshouldRenderBlockListView,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst descendants = getClientIdsOfDescendants(\n\t\t\t\trenderedBlockClientId\n\t\t\t);\n\n\t\t\t// Exclude items from the content tab that are already present in the\n\t\t\t// List View tab.\n\t\t\tconst listViewDescendants = new Set();\n\t\t\tdescendants.forEach( ( clientId ) => {\n\t\t\t\tif ( shouldRenderBlockListView( clientId ) ) {\n\t\t\t\t\tconst listViewChildren =\n\t\t\t\t\t\tgetClientIdsOfDescendants( clientId );\n\t\t\t\t\tlistViewChildren.forEach( ( childId ) =>\n\t\t\t\t\t\tlistViewDescendants.add( childId )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn descendants.filter( ( current ) => {\n\t\t\t\treturn (\n\t\t\t\t\t! listViewDescendants.has( current ) &&\n\t\t\t\t\tgetBlockEditingMode( current ) === 'contentOnly'\n\t\t\t\t);\n\t\t\t} );\n\t\t},\n\t\t[ isSectionBlock, renderedBlockClientId ]\n\t);\n\n\tconst availableTabs = useInspectorControlsTabs(\n\t\tblockType?.name,\n\t\tcontentClientIds,\n\t\tisSectionBlock,\n\t\thasBlockStyles\n\t);\n\tconst hasMultipleTabs = 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 =\n\t\tuseBlockInspectorAnimationSettings( blockType );\n\n\tconst hasSelectedBlocks = selectedBlockCount > 1;\n\tconst isBlockStyleStateSelected = ! isDefaultBlockStyleState(\n\t\tselectedBlockStyleState\n\t);\n\n\tif ( hasSelectedBlocks && ! isSectionBlockInSelection ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ hasMultipleTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<StyleInspectorSlots\n\t\t\t\t\t\tblockName={ renderedBlockName }\n\t\t\t\t\t\tshowAdvancedControls={ false }\n\t\t\t\t\t\tshowPositionControls={ false }\n\t\t\t\t\t\tshowBindingsControls={ false }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( hasSelectedBlocks && isSectionBlockInSelection ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isRenderedBlockUnregistered =\n\t\trenderedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the rendered 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\tconst shouldShowWarning =\n\t\t! blockType || ! renderedBlockClientId || isRenderedBlockUnregistered;\n\n\tif ( shouldShowWarning ) {\n\t\treturn (\n\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t</span>\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\trenderedBlockClientId={ renderedBlockClientId }\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\trenderedBlockClientId={ renderedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t\tavailableTabs={ availableTabs }\n\t\t\t\tcontentClientIds={ contentClientIds }\n\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\teditedContentOnlySection={ editedContentOnlySection }\n\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\tselectedBlockStyleState={ selectedBlockStyleState }\n\t\t\t\tshowStateOnCanvas={ showStateOnCanvas }\n\t\t\t\tonViewportStateChange={ onViewportStateChange }\n\t\t\t\tisBlockStyleStateSelected={ isBlockStyleStateSelected }\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\trenderedBlockClientId,\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={ renderedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( {\n\t// The block that is displayed in the inspector. This is the block whose\n\t// controls and information are shown to the user.\n\trenderedBlockClientId,\n\tblockName,\n\tisSectionBlock,\n\tavailableTabs,\n\tcontentClientIds,\n\thasBlockStyles,\n\teditedContentOnlySection,\n\tblockEditingMode,\n\tselectedBlockStyleState,\n\tshowStateOnCanvas,\n\tonViewportStateChange,\n\tisBlockStyleStateSelected,\n} ) => {\n\tconst listViewRef = useRef( null );\n\tconst hasMultipleTabs = availableTabs?.length > 1;\n\tconst hasParentChildBlockCards =\n\t\teditedContentOnlySection &&\n\t\teditedContentOnlySection !== renderedBlockClientId;\n\tconst parentBlockInformation = useBlockDisplayInformation(\n\t\teditedContentOnlySection\n\t);\n\tconst blockInformation = useBlockDisplayInformation(\n\t\trenderedBlockClientId\n\t);\n\tconst isBlockSynced = blockInformation.isSynced;\n\tconst {\n\t\tsetSelectedBlockStyleState,\n\t\tsetSelectedBlockStyleStateCanvasPreview,\n\t} = unlock( useDispatch( blockEditorStore ) );\n\tconst onBlockStyleStateChange = ( value ) => {\n\t\tconst nextSelectedBlockStyleState = {\n\t\t\t...selectedBlockStyleState,\n\t\t\t...value,\n\t\t};\n\n\t\tsetSelectedBlockStyleState(\n\t\t\trenderedBlockClientId,\n\t\t\tnextSelectedBlockStyleState\n\t\t);\n\n\t\tif ( value.viewport ) {\n\t\t\tonViewportStateChange?.( {\n\t\t\t\tviewport: nextSelectedBlockStyleState.viewport,\n\t\t\t\tshowStateOnCanvas,\n\t\t\t} );\n\t\t}\n\t};\n\tconst onShowStateOnCanvasChange = ( value ) => {\n\t\tsetSelectedBlockStyleStateCanvasPreview( renderedBlockClientId, value );\n\n\t\tif ( value ) {\n\t\t\tonViewportStateChange?.( {\n\t\t\t\tviewport: selectedBlockStyleState.viewport,\n\t\t\t\tshowStateOnCanvas: value,\n\t\t\t} );\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t{ hasParentChildBlockCards && (\n\t\t\t\t<BlockCard\n\t\t\t\t\t{ ...parentBlockInformation }\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tparentBlockInformation?.isSynced && 'is-synced'\n\t\t\t\t\t}\n\t\t\t\t\tparentClientId={ editedContentOnlySection }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tallowParentNavigation\n\t\t\t\tclassName={ isBlockSynced && 'is-synced' }\n\t\t\t\tisChild={ hasParentChildBlockCards }\n\t\t\t\tclientId={ renderedBlockClientId }\n\t\t\t\tcontrols={\n\t\t\t\t\tblockEditingMode === 'default' && (\n\t\t\t\t\t\t<BlockStatesControl\n\t\t\t\t\t\t\tname={ blockName }\n\t\t\t\t\t\t\tvalue={ selectedBlockStyleState }\n\t\t\t\t\t\t\tonChange={ onBlockStyleStateChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ blockEditingMode === 'default' && isBlockStyleStateSelected && (\n\t\t\t\t<Spacer paddingX={ 4 } paddingY={ 2 }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show state on canvas' ) }\n\t\t\t\t\t\tchecked={ showStateOnCanvas }\n\t\t\t\t\t\tonChange={ onShowStateOnCanvasChange }\n\t\t\t\t\t/>\n\t\t\t\t\t<BlockStateBadges\n\t\t\t\t\t\tname={ blockName }\n\t\t\t\t\t\tvalue={ selectedBlockStyleState }\n\t\t\t\t\t/>\n\t\t\t\t</Spacer>\n\t\t\t) }\n\t\t\t<ViewportVisibilityInfo clientId={ renderedBlockClientId } />\n\t\t\t<EditContents clientId={ renderedBlockClientId } />\n\t\t\t{ ! isBlockStyleStateSelected && (\n\t\t\t\t<BlockVariationTransforms\n\t\t\t\t\tblockClientId={ renderedBlockClientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<BlockInspectorPreTabsSlot />\n\t\t\t{ isBlockStyleStateSelected && ! isSectionBlock && (\n\t\t\t\t<StyleStateInspectorSlots\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\tselectedBlockStyleState={ selectedBlockStyleState }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! isBlockStyleStateSelected && hasMultipleTabs && (\n\t\t\t\t<>\n\t\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\t\tclientId={ renderedBlockClientId }\n\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t\t\t\tcontentClientIds={ contentClientIds }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ ! isBlockStyleStateSelected && ! hasMultipleTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<BlockStyles clientId={ renderedBlockClientId } />\n\t\t\t\t\t) }\n\t\t\t\t\t<ContentTab contentClientIds={ contentClientIds } />\n\t\t\t\t\t<InspectorControls.Slot group=\"content\" />\n\t\t\t\t\t<InspectorControls.Slot group=\"list\" ref={ listViewRef } />\n\t\t\t\t\t<ListViewContentPopover listViewRef={ listViewRef } />\n\t\t\t\t\t{ ! isSectionBlock && (\n\t\t\t\t\t\t<StyleInspectorSlots blockName={ blockName } />\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ ! isBlockStyleStateSelected && (\n\t\t\t\t<InspectorControlsLastItem.Slot />\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"],
5
+ "mappings": "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",
6
6
  "names": ["InspectorControls", "PositionControls", "AdvancedControls", "blockEditorStore", "blocksStore", "useInspectorControlsTabs", "useBlockInspectorAnimationSettings", "MultiSelectionInspector", "InspectorControlsTabs", "motion", "useBlockDisplayInformation", "BlockCard", "Spacer", "ViewportVisibilityInfo", "EditContents", "BlockVariationTransforms", "BlockStyles", "ContentTab", "InspectorControlsLastItem", "SkipToSelectedBlock"]
7
7
  }
@@ -100,7 +100,7 @@ function getBlockMoverDescription(selectedCount, type, firstIndex, isFirst, isLa
100
100
  return (0, import_i18n.sprintf)(
101
101
  // translators: 1: Type of block (i.e. Text, Image etc)
102
102
  (0, import_i18n.__)(
103
- "Block %1$s is at the end of the content and can\u2019t be moved down"
103
+ "Block %1$s is at the end of the content and can’t be moved down"
104
104
  ),
105
105
  type
106
106
  );
@@ -109,7 +109,7 @@ function getBlockMoverDescription(selectedCount, type, firstIndex, isFirst, isLa
109
109
  return (0, import_i18n.sprintf)(
110
110
  // translators: 1: Type of block (i.e. Text, Image etc)
111
111
  (0, import_i18n.__)(
112
- "Block %1$s is at the end of the content and can\u2019t be moved left"
112
+ "Block %1$s is at the end of the content and can’t be moved left"
113
113
  ),
114
114
  type
115
115
  );
@@ -118,7 +118,7 @@ function getBlockMoverDescription(selectedCount, type, firstIndex, isFirst, isLa
118
118
  return (0, import_i18n.sprintf)(
119
119
  // translators: 1: Type of block (i.e. Text, Image etc)
120
120
  (0, import_i18n.__)(
121
- "Block %1$s is at the end of the content and can\u2019t be moved right"
121
+ "Block %1$s is at the end of the content and can’t be moved right"
122
122
  ),
123
123
  type
124
124
  );
@@ -164,7 +164,7 @@ function getBlockMoverDescription(selectedCount, type, firstIndex, isFirst, isLa
164
164
  return (0, import_i18n.sprintf)(
165
165
  // translators: 1: Type of block (i.e. Text, Image etc)
166
166
  (0, import_i18n.__)(
167
- "Block %1$s is at the beginning of the content and can\u2019t be moved up"
167
+ "Block %1$s is at the beginning of the content and can’t be moved up"
168
168
  ),
169
169
  type
170
170
  );
@@ -173,7 +173,7 @@ function getBlockMoverDescription(selectedCount, type, firstIndex, isFirst, isLa
173
173
  return (0, import_i18n.sprintf)(
174
174
  // translators: 1: Type of block (i.e. Text, Image etc)
175
175
  (0, import_i18n.__)(
176
- "Block %1$s is at the beginning of the content and can\u2019t be moved left"
176
+ "Block %1$s is at the beginning of the content and can’t be moved left"
177
177
  ),
178
178
  type
179
179
  );
@@ -182,7 +182,7 @@ function getBlockMoverDescription(selectedCount, type, firstIndex, isFirst, isLa
182
182
  return (0, import_i18n.sprintf)(
183
183
  // translators: 1: Type of block (i.e. Text, Image etc)
184
184
  (0, import_i18n.__)(
185
- "Block %1$s is at the beginning of the content and can\u2019t be moved right"
185
+ "Block %1$s is at the beginning of the content and can’t be moved right"
186
186
  ),
187
187
  type
188
188
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/block-mover/mover-description.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf, isRTL } from '@wordpress/i18n';\n\nconst getMovementDirection = ( moveDirection, orientation ) => {\n\tif ( moveDirection === 'up' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? 'right' : 'left';\n\t\t}\n\t\treturn 'up';\n\t} else if ( moveDirection === 'down' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? 'left' : 'right';\n\t\t}\n\t\treturn 'down';\n\t}\n\treturn null;\n};\n\n/**\n * Return a label for the block movement controls depending on block position.\n *\n * @param {number} selectedCount Number of blocks selected.\n * @param {string} type Block type - in the case of a single block, should\n * define its 'type'. I.e. 'Text', 'Heading', 'Image' etc.\n * @param {number} firstIndex The index (position - 1) of the first block selected.\n * @param {boolean} isFirst This is the first block.\n * @param {boolean} isLast This is the last block.\n * @param {number} dir Direction of movement (> 0 is considered to be going\n * down, < 0 is up).\n * @param {string} orientation The orientation of the block movers, vertical or\n * horizontal.\n *\n * @return {string | undefined} Label for the block movement controls.\n */\nexport function getBlockMoverDescription(\n\tselectedCount,\n\ttype,\n\tfirstIndex,\n\tisFirst,\n\tisLast,\n\tdir,\n\torientation\n) {\n\tconst position = firstIndex + 1;\n\n\tif ( selectedCount > 1 ) {\n\t\treturn getMultiBlockMoverDescription(\n\t\t\tselectedCount,\n\t\t\tfirstIndex,\n\t\t\tisFirst,\n\t\t\tisLast,\n\t\t\tdir,\n\t\t\torientation\n\t\t);\n\t}\n\n\tif ( isFirst && isLast ) {\n\t\treturn sprintf(\n\t\t\t// translators: %s: Type of block (i.e. Text, Image etc)\n\t\t\t__( 'Block %s is the only block, and cannot be moved' ),\n\t\t\ttype\n\t\t);\n\t}\n\n\tif ( dir > 0 && ! isLast ) {\n\t\t// Moving down.\n\t\tconst movementDirection = getMovementDirection( 'down', orientation );\n\n\t\tif ( movementDirection === 'down' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position\n\t\t\t\t__(\n\t\t\t\t\t'Move %1$s block from position %2$d down to position %3$d'\n\t\t\t\t),\n\t\t\t\ttype,\n\t\t\t\tposition,\n\t\t\t\tposition + 1\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'left' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position\n\t\t\t\t__(\n\t\t\t\t\t'Move %1$s block from position %2$d left to position %3$d'\n\t\t\t\t),\n\t\t\t\ttype,\n\t\t\t\tposition,\n\t\t\t\tposition + 1\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'right' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position\n\t\t\t\t__(\n\t\t\t\t\t'Move %1$s block from position %2$d right to position %3$d'\n\t\t\t\t),\n\t\t\t\ttype,\n\t\t\t\tposition,\n\t\t\t\tposition + 1\n\t\t\t);\n\t\t}\n\t}\n\n\tif ( dir > 0 && isLast ) {\n\t\t// Moving down, and is the last item.\n\t\tconst movementDirection = getMovementDirection( 'down', orientation );\n\n\t\tif ( movementDirection === 'down' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc)\n\t\t\t\t__(\n\t\t\t\t\t'Block %1$s is at the end of the content and can\u2019t be moved down'\n\t\t\t\t),\n\t\t\t\ttype\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'left' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc)\n\t\t\t\t__(\n\t\t\t\t\t'Block %1$s is at the end of the content and can\u2019t be moved left'\n\t\t\t\t),\n\t\t\t\ttype\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'right' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc)\n\t\t\t\t__(\n\t\t\t\t\t'Block %1$s is at the end of the content and can\u2019t be moved right'\n\t\t\t\t),\n\t\t\t\ttype\n\t\t\t);\n\t\t}\n\t}\n\n\tif ( dir < 0 && ! isFirst ) {\n\t\t// Moving up.\n\t\tconst movementDirection = getMovementDirection( 'up', orientation );\n\n\t\tif ( movementDirection === 'up' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position\n\t\t\t\t__( 'Move %1$s block from position %2$d up to position %3$d' ),\n\t\t\t\ttype,\n\t\t\t\tposition,\n\t\t\t\tposition - 1\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'left' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position\n\t\t\t\t__(\n\t\t\t\t\t'Move %1$s block from position %2$d left to position %3$d'\n\t\t\t\t),\n\t\t\t\ttype,\n\t\t\t\tposition,\n\t\t\t\tposition - 1\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'right' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position\n\t\t\t\t__(\n\t\t\t\t\t'Move %1$s block from position %2$d right to position %3$d'\n\t\t\t\t),\n\t\t\t\ttype,\n\t\t\t\tposition,\n\t\t\t\tposition - 1\n\t\t\t);\n\t\t}\n\t}\n\n\tif ( dir < 0 && isFirst ) {\n\t\t// Moving up, and is the first item.\n\t\tconst movementDirection = getMovementDirection( 'up', orientation );\n\n\t\tif ( movementDirection === 'up' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc)\n\t\t\t\t__(\n\t\t\t\t\t'Block %1$s is at the beginning of the content and can\u2019t be moved up'\n\t\t\t\t),\n\t\t\t\ttype\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'left' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc)\n\t\t\t\t__(\n\t\t\t\t\t'Block %1$s is at the beginning of the content and can\u2019t be moved left'\n\t\t\t\t),\n\t\t\t\ttype\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'right' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc)\n\t\t\t\t__(\n\t\t\t\t\t'Block %1$s is at the beginning of the content and can\u2019t be moved right'\n\t\t\t\t),\n\t\t\t\ttype\n\t\t\t);\n\t\t}\n\t}\n}\n\n/**\n * Return a label for the block movement controls depending on block position.\n *\n * @param {number} selectedCount Number of blocks selected.\n * @param {number} firstIndex The index (position - 1) of the first block selected.\n * @param {boolean} isFirst This is the first block.\n * @param {boolean} isLast This is the last block.\n * @param {number} dir Direction of movement (> 0 is considered to be going\n * down, < 0 is up).\n * @param {string} orientation The orientation of the block movers, vertical or\n * horizontal.\n *\n * @return {string | undefined} Label for the block movement controls.\n */\nexport function getMultiBlockMoverDescription(\n\tselectedCount,\n\tfirstIndex,\n\tisFirst,\n\tisLast,\n\tdir,\n\torientation\n) {\n\tconst position = firstIndex + 1;\n\n\tif ( isFirst && isLast ) {\n\t\t// All blocks are selected\n\t\treturn __( 'All blocks are selected, and cannot be moved' );\n\t}\n\n\tif ( dir > 0 && ! isLast ) {\n\t\t// moving down\n\t\tconst movementDirection = getMovementDirection( 'down', orientation );\n\n\t\tif ( movementDirection === 'down' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Number of selected blocks, 2: Position of selected blocks\n\t\t\t\t__( 'Move %1$d blocks from position %2$d down by one place' ),\n\t\t\t\tselectedCount,\n\t\t\t\tposition\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'left' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Number of selected blocks, 2: Position of selected blocks\n\t\t\t\t__( 'Move %1$d blocks from position %2$d left by one place' ),\n\t\t\t\tselectedCount,\n\t\t\t\tposition\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'right' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Number of selected blocks, 2: Position of selected blocks\n\t\t\t\t__( 'Move %1$d blocks from position %2$d right by one place' ),\n\t\t\t\tselectedCount,\n\t\t\t\tposition\n\t\t\t);\n\t\t}\n\t}\n\n\tif ( dir > 0 && isLast ) {\n\t\t// moving down, and the selected blocks are the last item\n\t\tconst movementDirection = getMovementDirection( 'down', orientation );\n\n\t\tif ( movementDirection === 'down' ) {\n\t\t\treturn __(\n\t\t\t\t'Blocks cannot be moved down as they are already at the bottom'\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'left' ) {\n\t\t\treturn __(\n\t\t\t\t'Blocks cannot be moved left as they are already are at the leftmost position'\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'right' ) {\n\t\t\treturn __(\n\t\t\t\t'Blocks cannot be moved right as they are already are at the rightmost position'\n\t\t\t);\n\t\t}\n\t}\n\n\tif ( dir < 0 && ! isFirst ) {\n\t\t// moving up\n\t\tconst movementDirection = getMovementDirection( 'up', orientation );\n\n\t\tif ( movementDirection === 'up' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Number of selected blocks, 2: Position of selected blocks\n\t\t\t\t__( 'Move %1$d blocks from position %2$d up by one place' ),\n\t\t\t\tselectedCount,\n\t\t\t\tposition\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'left' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Number of selected blocks, 2: Position of selected blocks\n\t\t\t\t__( 'Move %1$d blocks from position %2$d left by one place' ),\n\t\t\t\tselectedCount,\n\t\t\t\tposition\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'right' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Number of selected blocks, 2: Position of selected blocks\n\t\t\t\t__( 'Move %1$d blocks from position %2$d right by one place' ),\n\t\t\t\tselectedCount,\n\t\t\t\tposition\n\t\t\t);\n\t\t}\n\t}\n\n\tif ( dir < 0 && isFirst ) {\n\t\t// moving up, and the selected blocks are the first item\n\t\tconst movementDirection = getMovementDirection( 'up', orientation );\n\n\t\tif ( movementDirection === 'up' ) {\n\t\t\treturn __(\n\t\t\t\t'Blocks cannot be moved up as they are already at the top'\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'left' ) {\n\t\t\treturn __(\n\t\t\t\t'Blocks cannot be moved left as they are already are at the leftmost position'\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'right' ) {\n\t\t\treturn __(\n\t\t\t\t'Blocks cannot be moved right as they are already are at the rightmost position'\n\t\t\t);\n\t\t}\n\t}\n}\n"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf, isRTL } from '@wordpress/i18n';\n\nconst getMovementDirection = ( moveDirection, orientation ) => {\n\tif ( moveDirection === 'up' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? 'right' : 'left';\n\t\t}\n\t\treturn 'up';\n\t} else if ( moveDirection === 'down' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? 'left' : 'right';\n\t\t}\n\t\treturn 'down';\n\t}\n\treturn null;\n};\n\n/**\n * Return a label for the block movement controls depending on block position.\n *\n * @param {number} selectedCount Number of blocks selected.\n * @param {string} type Block type - in the case of a single block, should\n * define its 'type'. I.e. 'Text', 'Heading', 'Image' etc.\n * @param {number} firstIndex The index (position - 1) of the first block selected.\n * @param {boolean} isFirst This is the first block.\n * @param {boolean} isLast This is the last block.\n * @param {number} dir Direction of movement (> 0 is considered to be going\n * down, < 0 is up).\n * @param {string} orientation The orientation of the block movers, vertical or\n * horizontal.\n *\n * @return {string | undefined} Label for the block movement controls.\n */\nexport function getBlockMoverDescription(\n\tselectedCount,\n\ttype,\n\tfirstIndex,\n\tisFirst,\n\tisLast,\n\tdir,\n\torientation\n) {\n\tconst position = firstIndex + 1;\n\n\tif ( selectedCount > 1 ) {\n\t\treturn getMultiBlockMoverDescription(\n\t\t\tselectedCount,\n\t\t\tfirstIndex,\n\t\t\tisFirst,\n\t\t\tisLast,\n\t\t\tdir,\n\t\t\torientation\n\t\t);\n\t}\n\n\tif ( isFirst && isLast ) {\n\t\treturn sprintf(\n\t\t\t// translators: %s: Type of block (i.e. Text, Image etc)\n\t\t\t__( 'Block %s is the only block, and cannot be moved' ),\n\t\t\ttype\n\t\t);\n\t}\n\n\tif ( dir > 0 && ! isLast ) {\n\t\t// Moving down.\n\t\tconst movementDirection = getMovementDirection( 'down', orientation );\n\n\t\tif ( movementDirection === 'down' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position\n\t\t\t\t__(\n\t\t\t\t\t'Move %1$s block from position %2$d down to position %3$d'\n\t\t\t\t),\n\t\t\t\ttype,\n\t\t\t\tposition,\n\t\t\t\tposition + 1\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'left' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position\n\t\t\t\t__(\n\t\t\t\t\t'Move %1$s block from position %2$d left to position %3$d'\n\t\t\t\t),\n\t\t\t\ttype,\n\t\t\t\tposition,\n\t\t\t\tposition + 1\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'right' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position\n\t\t\t\t__(\n\t\t\t\t\t'Move %1$s block from position %2$d right to position %3$d'\n\t\t\t\t),\n\t\t\t\ttype,\n\t\t\t\tposition,\n\t\t\t\tposition + 1\n\t\t\t);\n\t\t}\n\t}\n\n\tif ( dir > 0 && isLast ) {\n\t\t// Moving down, and is the last item.\n\t\tconst movementDirection = getMovementDirection( 'down', orientation );\n\n\t\tif ( movementDirection === 'down' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc)\n\t\t\t\t__(\n\t\t\t\t\t'Block %1$s is at the end of the content and can’t be moved down'\n\t\t\t\t),\n\t\t\t\ttype\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'left' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc)\n\t\t\t\t__(\n\t\t\t\t\t'Block %1$s is at the end of the content and can’t be moved left'\n\t\t\t\t),\n\t\t\t\ttype\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'right' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc)\n\t\t\t\t__(\n\t\t\t\t\t'Block %1$s is at the end of the content and can’t be moved right'\n\t\t\t\t),\n\t\t\t\ttype\n\t\t\t);\n\t\t}\n\t}\n\n\tif ( dir < 0 && ! isFirst ) {\n\t\t// Moving up.\n\t\tconst movementDirection = getMovementDirection( 'up', orientation );\n\n\t\tif ( movementDirection === 'up' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position\n\t\t\t\t__( 'Move %1$s block from position %2$d up to position %3$d' ),\n\t\t\t\ttype,\n\t\t\t\tposition,\n\t\t\t\tposition - 1\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'left' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position\n\t\t\t\t__(\n\t\t\t\t\t'Move %1$s block from position %2$d left to position %3$d'\n\t\t\t\t),\n\t\t\t\ttype,\n\t\t\t\tposition,\n\t\t\t\tposition - 1\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'right' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position\n\t\t\t\t__(\n\t\t\t\t\t'Move %1$s block from position %2$d right to position %3$d'\n\t\t\t\t),\n\t\t\t\ttype,\n\t\t\t\tposition,\n\t\t\t\tposition - 1\n\t\t\t);\n\t\t}\n\t}\n\n\tif ( dir < 0 && isFirst ) {\n\t\t// Moving up, and is the first item.\n\t\tconst movementDirection = getMovementDirection( 'up', orientation );\n\n\t\tif ( movementDirection === 'up' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc)\n\t\t\t\t__(\n\t\t\t\t\t'Block %1$s is at the beginning of the content and can’t be moved up'\n\t\t\t\t),\n\t\t\t\ttype\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'left' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc)\n\t\t\t\t__(\n\t\t\t\t\t'Block %1$s is at the beginning of the content and can’t be moved left'\n\t\t\t\t),\n\t\t\t\ttype\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'right' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Type of block (i.e. Text, Image etc)\n\t\t\t\t__(\n\t\t\t\t\t'Block %1$s is at the beginning of the content and can’t be moved right'\n\t\t\t\t),\n\t\t\t\ttype\n\t\t\t);\n\t\t}\n\t}\n}\n\n/**\n * Return a label for the block movement controls depending on block position.\n *\n * @param {number} selectedCount Number of blocks selected.\n * @param {number} firstIndex The index (position - 1) of the first block selected.\n * @param {boolean} isFirst This is the first block.\n * @param {boolean} isLast This is the last block.\n * @param {number} dir Direction of movement (> 0 is considered to be going\n * down, < 0 is up).\n * @param {string} orientation The orientation of the block movers, vertical or\n * horizontal.\n *\n * @return {string | undefined} Label for the block movement controls.\n */\nexport function getMultiBlockMoverDescription(\n\tselectedCount,\n\tfirstIndex,\n\tisFirst,\n\tisLast,\n\tdir,\n\torientation\n) {\n\tconst position = firstIndex + 1;\n\n\tif ( isFirst && isLast ) {\n\t\t// All blocks are selected\n\t\treturn __( 'All blocks are selected, and cannot be moved' );\n\t}\n\n\tif ( dir > 0 && ! isLast ) {\n\t\t// moving down\n\t\tconst movementDirection = getMovementDirection( 'down', orientation );\n\n\t\tif ( movementDirection === 'down' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Number of selected blocks, 2: Position of selected blocks\n\t\t\t\t__( 'Move %1$d blocks from position %2$d down by one place' ),\n\t\t\t\tselectedCount,\n\t\t\t\tposition\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'left' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Number of selected blocks, 2: Position of selected blocks\n\t\t\t\t__( 'Move %1$d blocks from position %2$d left by one place' ),\n\t\t\t\tselectedCount,\n\t\t\t\tposition\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'right' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Number of selected blocks, 2: Position of selected blocks\n\t\t\t\t__( 'Move %1$d blocks from position %2$d right by one place' ),\n\t\t\t\tselectedCount,\n\t\t\t\tposition\n\t\t\t);\n\t\t}\n\t}\n\n\tif ( dir > 0 && isLast ) {\n\t\t// moving down, and the selected blocks are the last item\n\t\tconst movementDirection = getMovementDirection( 'down', orientation );\n\n\t\tif ( movementDirection === 'down' ) {\n\t\t\treturn __(\n\t\t\t\t'Blocks cannot be moved down as they are already at the bottom'\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'left' ) {\n\t\t\treturn __(\n\t\t\t\t'Blocks cannot be moved left as they are already are at the leftmost position'\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'right' ) {\n\t\t\treturn __(\n\t\t\t\t'Blocks cannot be moved right as they are already are at the rightmost position'\n\t\t\t);\n\t\t}\n\t}\n\n\tif ( dir < 0 && ! isFirst ) {\n\t\t// moving up\n\t\tconst movementDirection = getMovementDirection( 'up', orientation );\n\n\t\tif ( movementDirection === 'up' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Number of selected blocks, 2: Position of selected blocks\n\t\t\t\t__( 'Move %1$d blocks from position %2$d up by one place' ),\n\t\t\t\tselectedCount,\n\t\t\t\tposition\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'left' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Number of selected blocks, 2: Position of selected blocks\n\t\t\t\t__( 'Move %1$d blocks from position %2$d left by one place' ),\n\t\t\t\tselectedCount,\n\t\t\t\tposition\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'right' ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: 1: Number of selected blocks, 2: Position of selected blocks\n\t\t\t\t__( 'Move %1$d blocks from position %2$d right by one place' ),\n\t\t\t\tselectedCount,\n\t\t\t\tposition\n\t\t\t);\n\t\t}\n\t}\n\n\tif ( dir < 0 && isFirst ) {\n\t\t// moving up, and the selected blocks are the first item\n\t\tconst movementDirection = getMovementDirection( 'up', orientation );\n\n\t\tif ( movementDirection === 'up' ) {\n\t\t\treturn __(\n\t\t\t\t'Blocks cannot be moved up as they are already at the top'\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'left' ) {\n\t\t\treturn __(\n\t\t\t\t'Blocks cannot be moved left as they are already are at the leftmost position'\n\t\t\t);\n\t\t}\n\n\t\tif ( movementDirection === 'right' ) {\n\t\t\treturn __(\n\t\t\t\t'Blocks cannot be moved right as they are already are at the rightmost position'\n\t\t\t);\n\t\t}\n\t}\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": []
7
7
  }