@wordpress/block-editor 14.3.4 → 14.4.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 (392) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +4 -0
  3. package/build/autocompleters/link.js +2 -1
  4. package/build/autocompleters/link.js.map +1 -1
  5. package/build/components/block-actions/index.js +1 -13
  6. package/build/components/block-actions/index.js.map +1 -1
  7. package/build/components/block-inspector/index.js +56 -75
  8. package/build/components/block-inspector/index.js.map +1 -1
  9. package/build/components/block-list/block.js +5 -19
  10. package/build/components/block-list/block.js.map +1 -1
  11. package/build/components/block-list/index.js +5 -8
  12. package/build/components/block-list/index.js.map +1 -1
  13. package/build/components/block-list/use-block-props/index.js +3 -11
  14. package/build/components/block-list/use-block-props/index.js.map +1 -1
  15. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -12
  16. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
  17. package/build/components/block-list/use-in-between-inserter.js +5 -3
  18. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  19. package/build/components/block-list/zoom-out-separator.js +14 -6
  20. package/build/components/block-list/zoom-out-separator.js.map +1 -1
  21. package/build/components/block-navigation/dropdown.js +2 -4
  22. package/build/components/block-navigation/dropdown.js.map +1 -1
  23. package/build/components/block-parent-selector/index.js +13 -10
  24. package/build/components/block-parent-selector/index.js.map +1 -1
  25. package/build/components/block-pattern-setup/setup-toolbar.js +10 -20
  26. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  27. package/build/components/block-patterns-paging/index.js +11 -13
  28. package/build/components/block-patterns-paging/index.js.map +1 -1
  29. package/build/components/block-quick-navigation/index.js +2 -4
  30. package/build/components/block-quick-navigation/index.js.map +1 -1
  31. package/build/components/block-settings-menu/block-settings-dropdown.js +79 -76
  32. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  33. package/build/components/block-settings-menu-controls/index.js +1 -6
  34. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  35. package/build/components/block-switcher/index.js +17 -14
  36. package/build/components/block-switcher/index.js.map +1 -1
  37. package/build/components/block-toolbar/index.js +16 -19
  38. package/build/components/block-toolbar/index.js.map +1 -1
  39. package/build/components/block-toolbar/use-has-block-toolbar.js +3 -5
  40. package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  41. package/build/components/block-tools/index.js +8 -11
  42. package/build/components/block-tools/index.js.map +1 -1
  43. package/build/components/block-tools/insertion-point.js +1 -4
  44. package/build/components/block-tools/insertion-point.js.map +1 -1
  45. package/build/components/block-tools/use-show-block-tools.js +2 -5
  46. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  47. package/build/components/block-tools/zoom-out-mode-inserter-button.js +1 -12
  48. package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -1
  49. package/build/components/block-tools/zoom-out-mode-inserters.js +14 -17
  50. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  51. package/build/components/block-tools/zoom-out-toolbar.js +2 -12
  52. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
  53. package/build/components/block-variation-picker/index.js +2 -4
  54. package/build/components/block-variation-picker/index.js.map +1 -1
  55. package/build/components/block-variation-transforms/index.js +3 -4
  56. package/build/components/block-variation-transforms/index.js.map +1 -1
  57. package/build/components/button-block-appender/index.js +2 -4
  58. package/build/components/button-block-appender/index.js.map +1 -1
  59. package/build/components/colors-gradients/dropdown.js +2 -4
  60. package/build/components/colors-gradients/dropdown.js.map +1 -1
  61. package/build/components/global-styles/border-panel.js +1 -1
  62. package/build/components/global-styles/border-panel.js.map +1 -1
  63. package/build/components/global-styles/color-panel.js +2 -4
  64. package/build/components/global-styles/color-panel.js.map +1 -1
  65. package/build/components/global-styles/dimensions-panel.js +3 -3
  66. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  67. package/build/components/global-styles/filters-panel.js +2 -4
  68. package/build/components/global-styles/filters-panel.js.map +1 -1
  69. package/build/components/global-styles/shadow-panel-components.js +24 -29
  70. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  71. package/build/components/inner-blocks/index.js +1 -9
  72. package/build/components/inner-blocks/index.js.map +1 -1
  73. package/build/components/inserter/block-types-tab.js +1 -1
  74. package/build/components/inserter/block-types-tab.js.map +1 -1
  75. package/build/components/inserter/hooks/use-block-types-state.js +24 -5
  76. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  77. package/build/components/inserter/hooks/use-insertion-point.js +22 -12
  78. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  79. package/build/components/inserter/hooks/use-patterns-state.js +23 -10
  80. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  81. package/build/components/inserter/media-tab/media-preview.js +35 -13
  82. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  83. package/build/components/inserter/menu.js +2 -2
  84. package/build/components/inserter/menu.js.map +1 -1
  85. package/build/components/inserter/mobile-tab-navigation.js +5 -5
  86. package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
  87. package/build/components/inserter/quick-inserter.js +4 -4
  88. package/build/components/inserter/quick-inserter.js.map +1 -1
  89. package/build/components/inspector-controls-tabs/index.js +11 -8
  90. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  91. package/build/components/inspector-popover-header/index.js +4 -8
  92. package/build/components/inspector-popover-header/index.js.map +1 -1
  93. package/build/components/link-control/index.js +5 -10
  94. package/build/components/link-control/index.js.map +1 -1
  95. package/build/components/link-control/settings-drawer.js +2 -4
  96. package/build/components/link-control/settings-drawer.js.map +1 -1
  97. package/build/components/list-view/block-contents.js +1 -25
  98. package/build/components/list-view/block-contents.js.map +1 -1
  99. package/build/components/list-view/block-select-button.js +1 -4
  100. package/build/components/list-view/block-select-button.js.map +1 -1
  101. package/build/components/media-placeholder/index.js +12 -24
  102. package/build/components/media-placeholder/index.js.map +1 -1
  103. package/build/components/skip-to-selected-block/index.js +2 -4
  104. package/build/components/skip-to-selected-block/index.js.map +1 -1
  105. package/build/components/tool-selector/index.js +13 -12
  106. package/build/components/tool-selector/index.js.map +1 -1
  107. package/build/components/url-input/button.js +14 -16
  108. package/build/components/url-input/button.js.map +1 -1
  109. package/build/components/url-input/index.js +2 -4
  110. package/build/components/url-input/index.js.map +1 -1
  111. package/build/components/use-block-commands/index.js +0 -61
  112. package/build/components/use-block-commands/index.js.map +1 -1
  113. package/build/components/writing-flow/use-tab-nav.js +2 -25
  114. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  115. package/build/hooks/duotone.js +4 -1
  116. package/build/hooks/duotone.js.map +1 -1
  117. package/build/hooks/layout-child.js +3 -1
  118. package/build/hooks/layout-child.js.map +1 -1
  119. package/build/hooks/position.js +3 -2
  120. package/build/hooks/position.js.map +1 -1
  121. package/build/layouts/flex.js +6 -38
  122. package/build/layouts/flex.js.map +1 -1
  123. package/build/store/actions.js +13 -14
  124. package/build/store/actions.js.map +1 -1
  125. package/build/store/private-actions.js +15 -0
  126. package/build/store/private-actions.js.map +1 -1
  127. package/build/store/private-selectors.js +104 -7
  128. package/build/store/private-selectors.js.map +1 -1
  129. package/build/store/reducer.js +22 -26
  130. package/build/store/reducer.js.map +1 -1
  131. package/build/store/selectors.js +127 -56
  132. package/build/store/selectors.js.map +1 -1
  133. package/build/store/utils.js +4 -3
  134. package/build/store/utils.js.map +1 -1
  135. package/build/utils/block-bindings.js +2 -0
  136. package/build/utils/block-bindings.js.map +1 -1
  137. package/build-module/autocompleters/link.js +2 -1
  138. package/build-module/autocompleters/link.js.map +1 -1
  139. package/build-module/components/block-actions/index.js +1 -13
  140. package/build-module/components/block-actions/index.js.map +1 -1
  141. package/build-module/components/block-inspector/index.js +57 -76
  142. package/build-module/components/block-inspector/index.js.map +1 -1
  143. package/build-module/components/block-list/block.js +5 -19
  144. package/build-module/components/block-list/block.js.map +1 -1
  145. package/build-module/components/block-list/index.js +5 -8
  146. package/build-module/components/block-list/index.js.map +1 -1
  147. package/build-module/components/block-list/use-block-props/index.js +3 -11
  148. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  149. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -12
  150. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
  151. package/build-module/components/block-list/use-in-between-inserter.js +5 -3
  152. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  153. package/build-module/components/block-list/zoom-out-separator.js +14 -6
  154. package/build-module/components/block-list/zoom-out-separator.js.map +1 -1
  155. package/build-module/components/block-navigation/dropdown.js +2 -4
  156. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  157. package/build-module/components/block-parent-selector/index.js +13 -10
  158. package/build-module/components/block-parent-selector/index.js.map +1 -1
  159. package/build-module/components/block-pattern-setup/setup-toolbar.js +10 -20
  160. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  161. package/build-module/components/block-patterns-paging/index.js +11 -13
  162. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  163. package/build-module/components/block-quick-navigation/index.js +2 -4
  164. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  165. package/build-module/components/block-settings-menu/block-settings-dropdown.js +79 -76
  166. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  167. package/build-module/components/block-settings-menu-controls/index.js +2 -7
  168. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  169. package/build-module/components/block-switcher/index.js +17 -14
  170. package/build-module/components/block-switcher/index.js.map +1 -1
  171. package/build-module/components/block-toolbar/index.js +17 -20
  172. package/build-module/components/block-toolbar/index.js.map +1 -1
  173. package/build-module/components/block-toolbar/use-has-block-toolbar.js +3 -5
  174. package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  175. package/build-module/components/block-tools/index.js +8 -11
  176. package/build-module/components/block-tools/index.js.map +1 -1
  177. package/build-module/components/block-tools/insertion-point.js +1 -4
  178. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  179. package/build-module/components/block-tools/use-show-block-tools.js +2 -5
  180. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  181. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +1 -12
  182. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -1
  183. package/build-module/components/block-tools/zoom-out-mode-inserters.js +14 -17
  184. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  185. package/build-module/components/block-tools/zoom-out-toolbar.js +2 -12
  186. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  187. package/build-module/components/block-variation-picker/index.js +2 -4
  188. package/build-module/components/block-variation-picker/index.js.map +1 -1
  189. package/build-module/components/block-variation-transforms/index.js +3 -4
  190. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  191. package/build-module/components/button-block-appender/index.js +2 -4
  192. package/build-module/components/button-block-appender/index.js.map +1 -1
  193. package/build-module/components/colors-gradients/dropdown.js +2 -4
  194. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  195. package/build-module/components/global-styles/border-panel.js +1 -1
  196. package/build-module/components/global-styles/border-panel.js.map +1 -1
  197. package/build-module/components/global-styles/color-panel.js +2 -4
  198. package/build-module/components/global-styles/color-panel.js.map +1 -1
  199. package/build-module/components/global-styles/dimensions-panel.js +1 -1
  200. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  201. package/build-module/components/global-styles/filters-panel.js +2 -4
  202. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  203. package/build-module/components/global-styles/shadow-panel-components.js +25 -30
  204. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  205. package/build-module/components/inner-blocks/index.js +1 -9
  206. package/build-module/components/inner-blocks/index.js.map +1 -1
  207. package/build-module/components/inserter/block-types-tab.js +1 -1
  208. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  209. package/build-module/components/inserter/hooks/use-block-types-state.js +27 -8
  210. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  211. package/build-module/components/inserter/hooks/use-insertion-point.js +22 -12
  212. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  213. package/build-module/components/inserter/hooks/use-patterns-state.js +23 -10
  214. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  215. package/build-module/components/inserter/media-tab/media-preview.js +35 -13
  216. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  217. package/build-module/components/inserter/menu.js +2 -2
  218. package/build-module/components/inserter/menu.js.map +1 -1
  219. package/build-module/components/inserter/mobile-tab-navigation.js +6 -6
  220. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
  221. package/build-module/components/inserter/quick-inserter.js +4 -4
  222. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  223. package/build-module/components/inspector-controls-tabs/index.js +12 -9
  224. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  225. package/build-module/components/inspector-popover-header/index.js +4 -8
  226. package/build-module/components/inspector-popover-header/index.js.map +1 -1
  227. package/build-module/components/link-control/index.js +5 -10
  228. package/build-module/components/link-control/index.js.map +1 -1
  229. package/build-module/components/link-control/settings-drawer.js +2 -4
  230. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  231. package/build-module/components/list-view/block-contents.js +1 -25
  232. package/build-module/components/list-view/block-contents.js.map +1 -1
  233. package/build-module/components/list-view/block-select-button.js +2 -5
  234. package/build-module/components/list-view/block-select-button.js.map +1 -1
  235. package/build-module/components/media-placeholder/index.js +12 -24
  236. package/build-module/components/media-placeholder/index.js.map +1 -1
  237. package/build-module/components/skip-to-selected-block/index.js +2 -4
  238. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  239. package/build-module/components/tool-selector/index.js +13 -12
  240. package/build-module/components/tool-selector/index.js.map +1 -1
  241. package/build-module/components/url-input/button.js +15 -17
  242. package/build-module/components/url-input/button.js.map +1 -1
  243. package/build-module/components/url-input/index.js +2 -4
  244. package/build-module/components/url-input/index.js.map +1 -1
  245. package/build-module/components/use-block-commands/index.js +1 -62
  246. package/build-module/components/use-block-commands/index.js.map +1 -1
  247. package/build-module/components/writing-flow/use-tab-nav.js +3 -26
  248. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  249. package/build-module/hooks/duotone.js +4 -1
  250. package/build-module/hooks/duotone.js.map +1 -1
  251. package/build-module/hooks/layout-child.js +4 -1
  252. package/build-module/hooks/layout-child.js.map +1 -1
  253. package/build-module/hooks/position.js +4 -1
  254. package/build-module/hooks/position.js.map +1 -1
  255. package/build-module/layouts/flex.js +7 -39
  256. package/build-module/layouts/flex.js.map +1 -1
  257. package/build-module/store/actions.js +12 -12
  258. package/build-module/store/actions.js.map +1 -1
  259. package/build-module/store/private-actions.js +14 -0
  260. package/build-module/store/private-actions.js.map +1 -1
  261. package/build-module/store/private-selectors.js +98 -7
  262. package/build-module/store/private-selectors.js.map +1 -1
  263. package/build-module/store/reducer.js +21 -25
  264. package/build-module/store/reducer.js.map +1 -1
  265. package/build-module/store/selectors.js +129 -58
  266. package/build-module/store/selectors.js.map +1 -1
  267. package/build-module/store/utils.js +3 -2
  268. package/build-module/store/utils.js.map +1 -1
  269. package/build-module/utils/block-bindings.js +2 -0
  270. package/build-module/utils/block-bindings.js.map +1 -1
  271. package/build-style/content-rtl.css +14 -56
  272. package/build-style/content.css +14 -56
  273. package/build-style/default-editor-styles-rtl.css +10 -1
  274. package/build-style/default-editor-styles.css +10 -1
  275. package/build-style/style-rtl.css +51 -149
  276. package/build-style/style.css +51 -149
  277. package/package.json +32 -32
  278. package/src/autocompleters/link.js +2 -1
  279. package/src/components/block-actions/index.js +1 -13
  280. package/src/components/block-draggable/style.scss +2 -2
  281. package/src/components/block-inspector/index.js +79 -95
  282. package/src/components/block-inspector/style.scss +2 -0
  283. package/src/components/block-list/block.js +7 -28
  284. package/src/components/block-list/content.scss +1 -61
  285. package/src/components/block-list/index.js +21 -29
  286. package/src/components/block-list/use-block-props/index.js +3 -10
  287. package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +19 -11
  288. package/src/components/block-list/use-in-between-inserter.js +5 -2
  289. package/src/components/block-list/zoom-out-separator.js +24 -8
  290. package/src/components/block-navigation/dropdown.js +1 -2
  291. package/src/components/block-parent-selector/index.js +13 -10
  292. package/src/components/block-pattern-setup/setup-toolbar.js +5 -10
  293. package/src/components/block-patterns-paging/index.js +8 -7
  294. package/src/components/block-patterns-paging/style.scss +10 -27
  295. package/src/components/block-quick-navigation/index.js +1 -2
  296. package/src/components/block-settings-menu/block-settings-dropdown.js +120 -106
  297. package/src/components/block-settings-menu-controls/index.js +0 -15
  298. package/src/components/block-switcher/index.js +37 -30
  299. package/src/components/block-toolbar/index.js +22 -34
  300. package/src/components/block-toolbar/style.scss +10 -1
  301. package/src/components/block-toolbar/use-has-block-toolbar.js +19 -31
  302. package/src/components/block-tools/index.js +7 -16
  303. package/src/components/block-tools/insertion-point.js +1 -4
  304. package/src/components/block-tools/style.scss +3 -88
  305. package/src/components/block-tools/use-show-block-tools.js +2 -12
  306. package/src/components/block-tools/zoom-out-mode-inserter-button.js +2 -17
  307. package/src/components/block-tools/zoom-out-mode-inserters.js +11 -19
  308. package/src/components/block-tools/zoom-out-toolbar.js +2 -13
  309. package/src/components/block-variation-picker/index.js +1 -2
  310. package/src/components/block-variation-transforms/index.js +2 -2
  311. package/src/components/button-block-appender/content.scss +0 -5
  312. package/src/components/button-block-appender/index.js +1 -2
  313. package/src/components/colors-gradients/dropdown.js +1 -5
  314. package/src/components/font-family/README.md +5 -1
  315. package/src/components/global-styles/border-panel.js +1 -1
  316. package/src/components/global-styles/color-panel.js +1 -5
  317. package/src/components/global-styles/dimensions-panel.js +1 -1
  318. package/src/components/global-styles/filters-panel.js +1 -2
  319. package/src/components/global-styles/shadow-panel-components.js +28 -33
  320. package/src/components/global-styles/style.scss +5 -0
  321. package/src/components/inner-blocks/index.js +1 -16
  322. package/src/components/inserter/block-types-tab.js +1 -1
  323. package/src/components/inserter/hooks/use-block-types-state.js +34 -14
  324. package/src/components/inserter/hooks/use-insertion-point.js +35 -13
  325. package/src/components/inserter/hooks/use-patterns-state.js +46 -9
  326. package/src/components/inserter/media-tab/media-preview.js +38 -12
  327. package/src/components/inserter/menu.js +2 -2
  328. package/src/components/inserter/mobile-tab-navigation.js +10 -13
  329. package/src/components/inserter/quick-inserter.js +5 -4
  330. package/src/components/inserter/style.scss +0 -28
  331. package/src/components/inspector-controls-tabs/index.js +21 -20
  332. package/src/components/inspector-controls-tabs/style.scss +2 -6
  333. package/src/components/inspector-popover-header/index.js +2 -4
  334. package/src/components/inspector-popover-header/style.scss +0 -13
  335. package/src/components/link-control/index.js +2 -5
  336. package/src/components/link-control/settings-drawer.js +1 -2
  337. package/src/components/list-view/block-contents.js +1 -28
  338. package/src/components/list-view/block-select-button.js +2 -5
  339. package/src/components/list-view/style.scss +18 -14
  340. package/src/components/media-placeholder/index.js +6 -12
  341. package/src/components/skip-to-selected-block/index.js +1 -2
  342. package/src/components/skip-to-selected-block/style.scss +0 -9
  343. package/src/components/tool-selector/index.js +14 -9
  344. package/src/components/tool-selector/style.scss +5 -0
  345. package/src/components/url-input/button.js +16 -12
  346. package/src/components/url-input/index.js +1 -2
  347. package/src/components/url-input/style.scss +0 -6
  348. package/src/components/use-block-commands/index.js +0 -58
  349. package/src/components/writing-flow/use-tab-nav.js +4 -36
  350. package/src/content.scss +0 -1
  351. package/src/hooks/duotone.js +4 -1
  352. package/src/hooks/layout-child.js +4 -1
  353. package/src/hooks/position.js +4 -1
  354. package/src/layouts/flex.js +10 -53
  355. package/src/store/actions.js +14 -13
  356. package/src/store/private-actions.js +14 -0
  357. package/src/store/private-selectors.js +120 -16
  358. package/src/store/reducer.js +22 -28
  359. package/src/store/selectors.js +203 -114
  360. package/src/store/test/private-actions.js +15 -0
  361. package/src/store/test/private-selectors.js +34 -0
  362. package/src/store/test/reducer.js +40 -4
  363. package/src/store/test/selectors.js +183 -20
  364. package/src/store/utils.js +4 -2
  365. package/src/utils/block-bindings.js +2 -0
  366. package/build/components/block-controls/use-has-block-controls.js +0 -43
  367. package/build/components/block-controls/use-has-block-controls.js.map +0 -1
  368. package/build/components/block-list/use-block-props/use-nav-mode-exit.js +0 -54
  369. package/build/components/block-list/use-block-props/use-nav-mode-exit.js.map +0 -1
  370. package/build/components/block-tools/block-selection-button.js +0 -259
  371. package/build/components/block-tools/block-selection-button.js.map +0 -1
  372. package/build/components/block-tools/block-toolbar-breadcrumb.js +0 -57
  373. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +0 -1
  374. package/build/components/inserter/tabs.js +0 -78
  375. package/build/components/inserter/tabs.js.map +0 -1
  376. package/build-module/components/block-controls/use-has-block-controls.js +0 -34
  377. package/build-module/components/block-controls/use-has-block-controls.js.map +0 -1
  378. package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js +0 -48
  379. package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js.map +0 -1
  380. package/build-module/components/block-tools/block-selection-button.js +0 -254
  381. package/build-module/components/block-tools/block-selection-button.js.map +0 -1
  382. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +0 -49
  383. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +0 -1
  384. package/build-module/components/inserter/tabs.js +0 -72
  385. package/build-module/components/inserter/tabs.js.map +0 -1
  386. package/src/components/block-controls/use-has-block-controls.js +0 -35
  387. package/src/components/block-list/use-block-props/use-nav-mode-exit.js +0 -46
  388. package/src/components/block-tools/block-selection-button.js +0 -302
  389. package/src/components/block-tools/block-toolbar-breadcrumb.js +0 -51
  390. package/src/components/inner-blocks/content.scss +0 -13
  391. package/src/components/inserter/tabs.js +0 -78
  392. package/src/components/inserter/test/block-types-tab.native.js +0 -67
@@ -20,6 +20,8 @@ var _jsxRuntime = require("react/jsx-runtime");
20
20
  * Internal dependencies
21
21
  */
22
22
 
23
+ // Used for generating the instance ID
24
+ const LAYOUT_CHILD_BLOCK_PROPS_REFERENCE = {};
23
25
  function useBlockPropsChildLayoutStyles({
24
26
  style
25
27
  }) {
@@ -41,7 +43,7 @@ function useBlockPropsChildLayoutStyles({
41
43
  columnCount,
42
44
  minimumColumnWidth
43
45
  } = parentLayout;
44
- const id = (0, _compose.useInstanceId)(useBlockPropsChildLayoutStyles);
46
+ const id = (0, _compose.useInstanceId)(LAYOUT_CHILD_BLOCK_PROPS_REFERENCE);
45
47
  const selector = `.wp-container-content-${id}`;
46
48
 
47
49
  // Check that the grid layout attributes are of the correct type, so that we don't accidentally
@@ -1 +1 @@
1
- {"version":3,"names":["_compose","require","_data","_element","_store","_utils","_layout","_grid","_jsxRuntime","useBlockPropsChildLayoutStyles","style","_style$layout","shouldRenderChildLayoutStyles","useSelect","select","blockEditorStore","getSettings","disableLayoutStyles","layout","selfStretch","flexSize","columnStart","rowStart","columnSpan","rowSpan","parentLayout","useLayout","columnCount","minimumColumnWidth","id","useInstanceId","selector","process","env","NODE_ENV","Error","css","parentColumnValue","parseFloat","isNaN","parentColumnUnit","replace","includes","numColsToBreakAt","defaultGapValue","containerQueryValue","minimumContainerQueryValue","gridColumnValue","Math","max","useStyleOverride","className","ChildLayoutControlsPure","clientId","setAttributes","type","parentLayoutType","allowSizingOnChildren","isManualPlacement","rootClientId","getBlockRootClientId","resizerBounds","setResizerBounds","useState","updateLayout","jsxs","Fragment","children","jsx","GridVisualizer","contentRef","GridItemResizer","bounds","onChange","window","__experimentalEnableGridInteractivity","GridItemMovers","gridClientId","blockClientId","_default","exports","default","useBlockProps","edit","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/layout-child.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { useStyleOverride } from './utils';\nimport { useLayout } from '../components/block-list/layout';\nimport {\n\tGridVisualizer,\n\tGridItemResizer,\n\tGridItemMovers,\n} from '../components/grid';\n\nfunction useBlockPropsChildLayoutStyles( { style } ) {\n\tconst shouldRenderChildLayoutStyles = useSelect( ( select ) => {\n\t\treturn ! select( blockEditorStore ).getSettings().disableLayoutStyles;\n\t} );\n\tconst layout = style?.layout ?? {};\n\tconst {\n\t\tselfStretch,\n\t\tflexSize,\n\t\tcolumnStart,\n\t\trowStart,\n\t\tcolumnSpan,\n\t\trowSpan,\n\t} = layout;\n\tconst parentLayout = useLayout() || {};\n\tconst { columnCount, minimumColumnWidth } = parentLayout;\n\tconst id = useInstanceId( useBlockPropsChildLayoutStyles );\n\tconst selector = `.wp-container-content-${ id }`;\n\n\t// Check that the grid layout attributes are of the correct type, so that we don't accidentally\n\t// write code that stores a string attribute instead of a number.\n\tif ( process.env.NODE_ENV === 'development' ) {\n\t\tif ( columnStart && typeof columnStart !== 'number' ) {\n\t\t\tthrow new Error( 'columnStart must be a number' );\n\t\t}\n\t\tif ( rowStart && typeof rowStart !== 'number' ) {\n\t\t\tthrow new Error( 'rowStart must be a number' );\n\t\t}\n\t\tif ( columnSpan && typeof columnSpan !== 'number' ) {\n\t\t\tthrow new Error( 'columnSpan must be a number' );\n\t\t}\n\t\tif ( rowSpan && typeof rowSpan !== 'number' ) {\n\t\t\tthrow new Error( 'rowSpan must be a number' );\n\t\t}\n\t}\n\n\tlet css = '';\n\tif ( shouldRenderChildLayoutStyles ) {\n\t\tif ( selfStretch === 'fixed' && flexSize ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tflex-basis: ${ flexSize };\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}`;\n\t\t} else if ( selfStretch === 'fill' ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tflex-grow: 1;\n\t\t\t}`;\n\t\t} else if ( columnStart && columnSpan ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tgrid-column: ${ columnStart } / span ${ columnSpan };\n\t\t\t}`;\n\t\t} else if ( columnStart ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tgrid-column: ${ columnStart };\n\t\t\t}`;\n\t\t} else if ( columnSpan ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tgrid-column: span ${ columnSpan };\n\t\t\t}`;\n\t\t}\n\t\tif ( rowStart && rowSpan ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tgrid-row: ${ rowStart } / span ${ rowSpan };\n\t\t\t}`;\n\t\t} else if ( rowStart ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tgrid-row: ${ rowStart };\n\t\t\t}`;\n\t\t} else if ( rowSpan ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tgrid-row: span ${ rowSpan };\n\t\t\t}`;\n\t\t}\n\t\t/**\n\t\t * If minimumColumnWidth is set on the parent, or if no\n\t\t * columnCount is set, the grid is responsive so a\n\t\t * container query is needed for the span to resize.\n\t\t */\n\t\tif (\n\t\t\t( columnSpan || columnStart ) &&\n\t\t\t( minimumColumnWidth || ! columnCount )\n\t\t) {\n\t\t\tlet parentColumnValue = parseFloat( minimumColumnWidth );\n\t\t\t/**\n\t\t\t * 12rem is the default minimumColumnWidth value.\n\t\t\t * If parentColumnValue is not a number, default to 12.\n\t\t\t */\n\t\t\tif ( isNaN( parentColumnValue ) ) {\n\t\t\t\tparentColumnValue = 12;\n\t\t\t}\n\n\t\t\tlet parentColumnUnit = minimumColumnWidth?.replace(\n\t\t\t\tparentColumnValue,\n\t\t\t\t''\n\t\t\t);\n\t\t\t/**\n\t\t\t * Check that parent column unit is either 'px', 'rem' or 'em'.\n\t\t\t * If not, default to 'rem'.\n\t\t\t */\n\t\t\tif ( ! [ 'px', 'rem', 'em' ].includes( parentColumnUnit ) ) {\n\t\t\t\tparentColumnUnit = 'rem';\n\t\t\t}\n\n\t\t\tlet numColsToBreakAt = 2;\n\n\t\t\tif ( columnSpan && columnStart ) {\n\t\t\t\tnumColsToBreakAt = columnSpan + columnStart - 1;\n\t\t\t} else if ( columnSpan ) {\n\t\t\t\tnumColsToBreakAt = columnSpan;\n\t\t\t} else {\n\t\t\t\tnumColsToBreakAt = columnStart;\n\t\t\t}\n\n\t\t\tconst defaultGapValue = parentColumnUnit === 'px' ? 24 : 1.5;\n\t\t\tconst containerQueryValue =\n\t\t\t\tnumColsToBreakAt * parentColumnValue +\n\t\t\t\t( numColsToBreakAt - 1 ) * defaultGapValue;\n\t\t\t// For blocks that only span one column, we want to remove any rowStart values as\n\t\t\t// the container reduces in size, so that blocks are still arranged in markup order.\n\t\t\tconst minimumContainerQueryValue =\n\t\t\t\tparentColumnValue * 2 + defaultGapValue - 1;\n\t\t\t// If a span is set we want to preserve it as long as possible, otherwise we just reset the value.\n\t\t\tconst gridColumnValue =\n\t\t\t\tcolumnSpan && columnSpan > 1 ? '1/-1' : 'auto';\n\n\t\t\tcss += `@container (max-width: ${ Math.max(\n\t\t\t\tcontainerQueryValue,\n\t\t\t\tminimumContainerQueryValue\n\t\t\t) }${ parentColumnUnit }) {\n\t\t\t\t${ selector } {\n\t\t\t\t\tgrid-column: ${ gridColumnValue };\n\t\t\t\t\tgrid-row: auto;\n\t\t\t\t}\n\t\t\t}`;\n\t\t}\n\t}\n\n\tuseStyleOverride( { css } );\n\n\t// Only attach a container class if there is generated CSS to be attached.\n\tif ( ! css ) {\n\t\treturn;\n\t}\n\n\t// Attach a `wp-container-content` id-based classname.\n\treturn { className: `wp-container-content-${ id }` };\n}\n\nfunction ChildLayoutControlsPure( { clientId, style, setAttributes } ) {\n\tconst parentLayout = useLayout() || {};\n\tconst {\n\t\ttype: parentLayoutType = 'default',\n\t\tallowSizingOnChildren = false,\n\t\tisManualPlacement,\n\t} = parentLayout;\n\n\tconst rootClientId = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlockRootClientId( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Use useState() instead of useRef() so that GridItemResizer updates when ref is set.\n\tconst [ resizerBounds, setResizerBounds ] = useState();\n\n\tif ( parentLayoutType !== 'grid' ) {\n\t\treturn null;\n\t}\n\n\tfunction updateLayout( layout ) {\n\t\tsetAttributes( {\n\t\t\tstyle: {\n\t\t\t\t...style,\n\t\t\t\tlayout: {\n\t\t\t\t\t...style?.layout,\n\t\t\t\t\t...layout,\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<GridVisualizer\n\t\t\t\tclientId={ rootClientId }\n\t\t\t\tcontentRef={ setResizerBounds }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t/>\n\t\t\t{ allowSizingOnChildren && (\n\t\t\t\t<GridItemResizer\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t// Don't allow resizing beyond the grid visualizer.\n\t\t\t\t\tbounds={ resizerBounds }\n\t\t\t\t\tonChange={ updateLayout }\n\t\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isManualPlacement &&\n\t\t\t\twindow.__experimentalEnableGridInteractivity && (\n\t\t\t\t\t<GridItemMovers\n\t\t\t\t\t\tlayout={ style?.layout }\n\t\t\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\t\t\tonChange={ updateLayout }\n\t\t\t\t\t\tgridClientId={ rootClientId }\n\t\t\t\t\t\tblockClientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default {\n\tuseBlockProps: useBlockPropsChildLayoutStyles,\n\tedit: ChildLayoutControlsPure,\n\tattributeKeys: [ 'style' ],\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AAI4B,IAAAO,WAAA,GAAAP,OAAA;AAjB5B;AACA;AACA;;AAKA;AACA;AACA;;AAUA,SAASQ,8BAA8BA,CAAE;EAAEC;AAAM,CAAC,EAAG;EAAA,IAAAC,aAAA;EACpD,MAAMC,6BAA6B,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC9D,OAAO,CAAEA,MAAM,CAAEC,YAAiB,CAAC,CAACC,WAAW,CAAC,CAAC,CAACC,mBAAmB;EACtE,CAAE,CAAC;EACH,MAAMC,MAAM,IAAAP,aAAA,GAAGD,KAAK,EAAEQ,MAAM,cAAAP,aAAA,cAAAA,aAAA,GAAI,CAAC,CAAC;EAClC,MAAM;IACLQ,WAAW;IACXC,QAAQ;IACRC,WAAW;IACXC,QAAQ;IACRC,UAAU;IACVC;EACD,CAAC,GAAGN,MAAM;EACV,MAAMO,YAAY,GAAG,IAAAC,iBAAS,EAAC,CAAC,IAAI,CAAC,CAAC;EACtC,MAAM;IAAEC,WAAW;IAAEC;EAAmB,CAAC,GAAGH,YAAY;EACxD,MAAMI,EAAE,GAAG,IAAAC,sBAAa,EAAErB,8BAA+B,CAAC;EAC1D,MAAMsB,QAAQ,GAAI,yBAAyBF,EAAI,EAAC;;EAEhD;EACA;EACA,IAAKG,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAG;IAC7C,IAAKb,WAAW,IAAI,OAAOA,WAAW,KAAK,QAAQ,EAAG;MACrD,MAAM,IAAIc,KAAK,CAAE,8BAA+B,CAAC;IAClD;IACA,IAAKb,QAAQ,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAG;MAC/C,MAAM,IAAIa,KAAK,CAAE,2BAA4B,CAAC;IAC/C;IACA,IAAKZ,UAAU,IAAI,OAAOA,UAAU,KAAK,QAAQ,EAAG;MACnD,MAAM,IAAIY,KAAK,CAAE,6BAA8B,CAAC;IACjD;IACA,IAAKX,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAG;MAC7C,MAAM,IAAIW,KAAK,CAAE,0BAA2B,CAAC;IAC9C;EACD;EAEA,IAAIC,GAAG,GAAG,EAAE;EACZ,IAAKxB,6BAA6B,EAAG;IACpC,IAAKO,WAAW,KAAK,OAAO,IAAIC,QAAQ,EAAG;MAC1CgB,GAAG,GAAI,GAAGL,QAAU;AACvB,kBAAmBX,QAAU;AAC7B;AACA,KAAK;IACH,CAAC,MAAM,IAAKD,WAAW,KAAK,MAAM,EAAG;MACpCiB,GAAG,GAAI,GAAGL,QAAU;AACvB;AACA,KAAK;IACH,CAAC,MAAM,IAAKV,WAAW,IAAIE,UAAU,EAAG;MACvCa,GAAG,GAAI,GAAGL,QAAU;AACvB,mBAAoBV,WAAa,WAAWE,UAAY;AACxD,KAAK;IACH,CAAC,MAAM,IAAKF,WAAW,EAAG;MACzBe,GAAG,GAAI,GAAGL,QAAU;AACvB,mBAAoBV,WAAa;AACjC,KAAK;IACH,CAAC,MAAM,IAAKE,UAAU,EAAG;MACxBa,GAAG,GAAI,GAAGL,QAAU;AACvB,wBAAyBR,UAAY;AACrC,KAAK;IACH;IACA,IAAKD,QAAQ,IAAIE,OAAO,EAAG;MAC1BY,GAAG,IAAK,GAAGL,QAAU;AACxB,gBAAiBT,QAAU,WAAWE,OAAS;AAC/C,KAAK;IACH,CAAC,MAAM,IAAKF,QAAQ,EAAG;MACtBc,GAAG,IAAK,GAAGL,QAAU;AACxB,gBAAiBT,QAAU;AAC3B,KAAK;IACH,CAAC,MAAM,IAAKE,OAAO,EAAG;MACrBY,GAAG,IAAK,GAAGL,QAAU;AACxB,qBAAsBP,OAAS;AAC/B,KAAK;IACH;IACA;AACF;AACA;AACA;AACA;IACE,IACC,CAAED,UAAU,IAAIF,WAAW,MACzBO,kBAAkB,IAAI,CAAED,WAAW,CAAE,EACtC;MACD,IAAIU,iBAAiB,GAAGC,UAAU,CAAEV,kBAAmB,CAAC;MACxD;AACH;AACA;AACA;MACG,IAAKW,KAAK,CAAEF,iBAAkB,CAAC,EAAG;QACjCA,iBAAiB,GAAG,EAAE;MACvB;MAEA,IAAIG,gBAAgB,GAAGZ,kBAAkB,EAAEa,OAAO,CACjDJ,iBAAiB,EACjB,EACD,CAAC;MACD;AACH;AACA;AACA;MACG,IAAK,CAAE,CAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAE,CAACK,QAAQ,CAAEF,gBAAiB,CAAC,EAAG;QAC3DA,gBAAgB,GAAG,KAAK;MACzB;MAEA,IAAIG,gBAAgB,GAAG,CAAC;MAExB,IAAKpB,UAAU,IAAIF,WAAW,EAAG;QAChCsB,gBAAgB,GAAGpB,UAAU,GAAGF,WAAW,GAAG,CAAC;MAChD,CAAC,MAAM,IAAKE,UAAU,EAAG;QACxBoB,gBAAgB,GAAGpB,UAAU;MAC9B,CAAC,MAAM;QACNoB,gBAAgB,GAAGtB,WAAW;MAC/B;MAEA,MAAMuB,eAAe,GAAGJ,gBAAgB,KAAK,IAAI,GAAG,EAAE,GAAG,GAAG;MAC5D,MAAMK,mBAAmB,GACxBF,gBAAgB,GAAGN,iBAAiB,GACpC,CAAEM,gBAAgB,GAAG,CAAC,IAAKC,eAAe;MAC3C;MACA;MACA,MAAME,0BAA0B,GAC/BT,iBAAiB,GAAG,CAAC,GAAGO,eAAe,GAAG,CAAC;MAC5C;MACA,MAAMG,eAAe,GACpBxB,UAAU,IAAIA,UAAU,GAAG,CAAC,GAAG,MAAM,GAAG,MAAM;MAE/Ca,GAAG,IAAK,0BAA0BY,IAAI,CAACC,GAAG,CACzCJ,mBAAmB,EACnBC,0BACD,CAAG,GAAGN,gBAAkB;AAC3B,MAAOT,QAAU;AACjB,oBAAqBgB,eAAiB;AACtC;AACA;AACA,KAAK;IACH;EACD;EAEA,IAAAG,uBAAgB,EAAE;IAAEd;EAAI,CAAE,CAAC;;EAE3B;EACA,IAAK,CAAEA,GAAG,EAAG;IACZ;EACD;;EAEA;EACA,OAAO;IAAEe,SAAS,EAAG,wBAAwBtB,EAAI;EAAE,CAAC;AACrD;AAEA,SAASuB,uBAAuBA,CAAE;EAAEC,QAAQ;EAAE3C,KAAK;EAAE4C;AAAc,CAAC,EAAG;EACtE,MAAM7B,YAAY,GAAG,IAAAC,iBAAS,EAAC,CAAC,IAAI,CAAC,CAAC;EACtC,MAAM;IACL6B,IAAI,EAAEC,gBAAgB,GAAG,SAAS;IAClCC,qBAAqB,GAAG,KAAK;IAC7BC;EACD,CAAC,GAAGjC,YAAY;EAEhB,MAAMkC,YAAY,GAAG,IAAA9C,eAAS,EAC3BC,MAAM,IAAM;IACb,OAAOA,MAAM,CAAEC,YAAiB,CAAC,CAAC6C,oBAAoB,CAAEP,QAAS,CAAC;EACnE,CAAC,EACD,CAAEA,QAAQ,CACX,CAAC;;EAED;EACA,MAAM,CAAEQ,aAAa,EAAEC,gBAAgB,CAAE,GAAG,IAAAC,iBAAQ,EAAC,CAAC;EAEtD,IAAKP,gBAAgB,KAAK,MAAM,EAAG;IAClC,OAAO,IAAI;EACZ;EAEA,SAASQ,YAAYA,CAAE9C,MAAM,EAAG;IAC/BoC,aAAa,CAAE;MACd5C,KAAK,EAAE;QACN,GAAGA,KAAK;QACRQ,MAAM,EAAE;UACP,GAAGR,KAAK,EAAEQ,MAAM;UAChB,GAAGA;QACJ;MACD;IACD,CAAE,CAAC;EACJ;EAEA,oBACC,IAAAV,WAAA,CAAAyD,IAAA,EAAAzD,WAAA,CAAA0D,QAAA;IAAAC,QAAA,gBACC,IAAA3D,WAAA,CAAA4D,GAAA,EAAC7D,KAAA,CAAA8D,cAAc;MACdhB,QAAQ,EAAGM,YAAc;MACzBW,UAAU,EAAGR,gBAAkB;MAC/BrC,YAAY,EAAGA;IAAc,CAC7B,CAAC,EACAgC,qBAAqB,iBACtB,IAAAjD,WAAA,CAAA4D,GAAA,EAAC7D,KAAA,CAAAgE,eAAe;MACflB,QAAQ,EAAGA;MACX;MAAA;MACAmB,MAAM,EAAGX,aAAe;MACxBY,QAAQ,EAAGT,YAAc;MACzBvC,YAAY,EAAGA;IAAc,CAC7B,CACD,EACCiC,iBAAiB,IAClBgB,MAAM,CAACC,qCAAqC,iBAC3C,IAAAnE,WAAA,CAAA4D,GAAA,EAAC7D,KAAA,CAAAqE,cAAc;MACd1D,MAAM,EAAGR,KAAK,EAAEQ,MAAQ;MACxBO,YAAY,EAAGA,YAAc;MAC7BgD,QAAQ,EAAGT,YAAc;MACzBa,YAAY,EAAGlB,YAAc;MAC7BmB,aAAa,EAAGzB;IAAU,CAC1B,CACD;EAAA,CACD,CAAC;AAEL;AAAC,IAAA0B,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc;EACdC,aAAa,EAAEzE,8BAA8B;EAC7C0E,IAAI,EAAE/B,uBAAuB;EAC7BgC,aAAa,EAAE,CAAE,OAAO,CAAE;EAC1BC,UAAUA,CAAA,EAAG;IACZ,OAAO,IAAI;EACZ;AACD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_compose","require","_data","_element","_store","_utils","_layout","_grid","_jsxRuntime","LAYOUT_CHILD_BLOCK_PROPS_REFERENCE","useBlockPropsChildLayoutStyles","style","_style$layout","shouldRenderChildLayoutStyles","useSelect","select","blockEditorStore","getSettings","disableLayoutStyles","layout","selfStretch","flexSize","columnStart","rowStart","columnSpan","rowSpan","parentLayout","useLayout","columnCount","minimumColumnWidth","id","useInstanceId","selector","process","env","NODE_ENV","Error","css","parentColumnValue","parseFloat","isNaN","parentColumnUnit","replace","includes","numColsToBreakAt","defaultGapValue","containerQueryValue","minimumContainerQueryValue","gridColumnValue","Math","max","useStyleOverride","className","ChildLayoutControlsPure","clientId","setAttributes","type","parentLayoutType","allowSizingOnChildren","isManualPlacement","rootClientId","getBlockRootClientId","resizerBounds","setResizerBounds","useState","updateLayout","jsxs","Fragment","children","jsx","GridVisualizer","contentRef","GridItemResizer","bounds","onChange","window","__experimentalEnableGridInteractivity","GridItemMovers","gridClientId","blockClientId","_default","exports","default","useBlockProps","edit","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/layout-child.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { useStyleOverride } from './utils';\nimport { useLayout } from '../components/block-list/layout';\nimport {\n\tGridVisualizer,\n\tGridItemResizer,\n\tGridItemMovers,\n} from '../components/grid';\n\n// Used for generating the instance ID\nconst LAYOUT_CHILD_BLOCK_PROPS_REFERENCE = {};\n\nfunction useBlockPropsChildLayoutStyles( { style } ) {\n\tconst shouldRenderChildLayoutStyles = useSelect( ( select ) => {\n\t\treturn ! select( blockEditorStore ).getSettings().disableLayoutStyles;\n\t} );\n\tconst layout = style?.layout ?? {};\n\tconst {\n\t\tselfStretch,\n\t\tflexSize,\n\t\tcolumnStart,\n\t\trowStart,\n\t\tcolumnSpan,\n\t\trowSpan,\n\t} = layout;\n\tconst parentLayout = useLayout() || {};\n\tconst { columnCount, minimumColumnWidth } = parentLayout;\n\tconst id = useInstanceId( LAYOUT_CHILD_BLOCK_PROPS_REFERENCE );\n\tconst selector = `.wp-container-content-${ id }`;\n\n\t// Check that the grid layout attributes are of the correct type, so that we don't accidentally\n\t// write code that stores a string attribute instead of a number.\n\tif ( process.env.NODE_ENV === 'development' ) {\n\t\tif ( columnStart && typeof columnStart !== 'number' ) {\n\t\t\tthrow new Error( 'columnStart must be a number' );\n\t\t}\n\t\tif ( rowStart && typeof rowStart !== 'number' ) {\n\t\t\tthrow new Error( 'rowStart must be a number' );\n\t\t}\n\t\tif ( columnSpan && typeof columnSpan !== 'number' ) {\n\t\t\tthrow new Error( 'columnSpan must be a number' );\n\t\t}\n\t\tif ( rowSpan && typeof rowSpan !== 'number' ) {\n\t\t\tthrow new Error( 'rowSpan must be a number' );\n\t\t}\n\t}\n\n\tlet css = '';\n\tif ( shouldRenderChildLayoutStyles ) {\n\t\tif ( selfStretch === 'fixed' && flexSize ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tflex-basis: ${ flexSize };\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}`;\n\t\t} else if ( selfStretch === 'fill' ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tflex-grow: 1;\n\t\t\t}`;\n\t\t} else if ( columnStart && columnSpan ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tgrid-column: ${ columnStart } / span ${ columnSpan };\n\t\t\t}`;\n\t\t} else if ( columnStart ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tgrid-column: ${ columnStart };\n\t\t\t}`;\n\t\t} else if ( columnSpan ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tgrid-column: span ${ columnSpan };\n\t\t\t}`;\n\t\t}\n\t\tif ( rowStart && rowSpan ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tgrid-row: ${ rowStart } / span ${ rowSpan };\n\t\t\t}`;\n\t\t} else if ( rowStart ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tgrid-row: ${ rowStart };\n\t\t\t}`;\n\t\t} else if ( rowSpan ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tgrid-row: span ${ rowSpan };\n\t\t\t}`;\n\t\t}\n\t\t/**\n\t\t * If minimumColumnWidth is set on the parent, or if no\n\t\t * columnCount is set, the grid is responsive so a\n\t\t * container query is needed for the span to resize.\n\t\t */\n\t\tif (\n\t\t\t( columnSpan || columnStart ) &&\n\t\t\t( minimumColumnWidth || ! columnCount )\n\t\t) {\n\t\t\tlet parentColumnValue = parseFloat( minimumColumnWidth );\n\t\t\t/**\n\t\t\t * 12rem is the default minimumColumnWidth value.\n\t\t\t * If parentColumnValue is not a number, default to 12.\n\t\t\t */\n\t\t\tif ( isNaN( parentColumnValue ) ) {\n\t\t\t\tparentColumnValue = 12;\n\t\t\t}\n\n\t\t\tlet parentColumnUnit = minimumColumnWidth?.replace(\n\t\t\t\tparentColumnValue,\n\t\t\t\t''\n\t\t\t);\n\t\t\t/**\n\t\t\t * Check that parent column unit is either 'px', 'rem' or 'em'.\n\t\t\t * If not, default to 'rem'.\n\t\t\t */\n\t\t\tif ( ! [ 'px', 'rem', 'em' ].includes( parentColumnUnit ) ) {\n\t\t\t\tparentColumnUnit = 'rem';\n\t\t\t}\n\n\t\t\tlet numColsToBreakAt = 2;\n\n\t\t\tif ( columnSpan && columnStart ) {\n\t\t\t\tnumColsToBreakAt = columnSpan + columnStart - 1;\n\t\t\t} else if ( columnSpan ) {\n\t\t\t\tnumColsToBreakAt = columnSpan;\n\t\t\t} else {\n\t\t\t\tnumColsToBreakAt = columnStart;\n\t\t\t}\n\n\t\t\tconst defaultGapValue = parentColumnUnit === 'px' ? 24 : 1.5;\n\t\t\tconst containerQueryValue =\n\t\t\t\tnumColsToBreakAt * parentColumnValue +\n\t\t\t\t( numColsToBreakAt - 1 ) * defaultGapValue;\n\t\t\t// For blocks that only span one column, we want to remove any rowStart values as\n\t\t\t// the container reduces in size, so that blocks are still arranged in markup order.\n\t\t\tconst minimumContainerQueryValue =\n\t\t\t\tparentColumnValue * 2 + defaultGapValue - 1;\n\t\t\t// If a span is set we want to preserve it as long as possible, otherwise we just reset the value.\n\t\t\tconst gridColumnValue =\n\t\t\t\tcolumnSpan && columnSpan > 1 ? '1/-1' : 'auto';\n\n\t\t\tcss += `@container (max-width: ${ Math.max(\n\t\t\t\tcontainerQueryValue,\n\t\t\t\tminimumContainerQueryValue\n\t\t\t) }${ parentColumnUnit }) {\n\t\t\t\t${ selector } {\n\t\t\t\t\tgrid-column: ${ gridColumnValue };\n\t\t\t\t\tgrid-row: auto;\n\t\t\t\t}\n\t\t\t}`;\n\t\t}\n\t}\n\n\tuseStyleOverride( { css } );\n\n\t// Only attach a container class if there is generated CSS to be attached.\n\tif ( ! css ) {\n\t\treturn;\n\t}\n\n\t// Attach a `wp-container-content` id-based classname.\n\treturn { className: `wp-container-content-${ id }` };\n}\n\nfunction ChildLayoutControlsPure( { clientId, style, setAttributes } ) {\n\tconst parentLayout = useLayout() || {};\n\tconst {\n\t\ttype: parentLayoutType = 'default',\n\t\tallowSizingOnChildren = false,\n\t\tisManualPlacement,\n\t} = parentLayout;\n\n\tconst rootClientId = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlockRootClientId( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Use useState() instead of useRef() so that GridItemResizer updates when ref is set.\n\tconst [ resizerBounds, setResizerBounds ] = useState();\n\n\tif ( parentLayoutType !== 'grid' ) {\n\t\treturn null;\n\t}\n\n\tfunction updateLayout( layout ) {\n\t\tsetAttributes( {\n\t\t\tstyle: {\n\t\t\t\t...style,\n\t\t\t\tlayout: {\n\t\t\t\t\t...style?.layout,\n\t\t\t\t\t...layout,\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<GridVisualizer\n\t\t\t\tclientId={ rootClientId }\n\t\t\t\tcontentRef={ setResizerBounds }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t/>\n\t\t\t{ allowSizingOnChildren && (\n\t\t\t\t<GridItemResizer\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t// Don't allow resizing beyond the grid visualizer.\n\t\t\t\t\tbounds={ resizerBounds }\n\t\t\t\t\tonChange={ updateLayout }\n\t\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isManualPlacement &&\n\t\t\t\twindow.__experimentalEnableGridInteractivity && (\n\t\t\t\t\t<GridItemMovers\n\t\t\t\t\t\tlayout={ style?.layout }\n\t\t\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\t\t\tonChange={ updateLayout }\n\t\t\t\t\t\tgridClientId={ rootClientId }\n\t\t\t\t\t\tblockClientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default {\n\tuseBlockProps: useBlockPropsChildLayoutStyles,\n\tedit: ChildLayoutControlsPure,\n\tattributeKeys: [ 'style' ],\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
@@ -301,7 +301,8 @@ var _default = exports.default = {
301
301
  hasSupport(name) {
302
302
  return (0, _blocks.hasBlockSupport)(name, POSITION_SUPPORT_KEY);
303
303
  }
304
- };
304
+ }; // Used for generating the instance ID
305
+ const POSITION_BLOCK_PROPS_REFERENCE = {};
305
306
  function useBlockProps({
306
307
  name,
307
308
  style
@@ -311,7 +312,7 @@ function useBlockProps({
311
312
  name
312
313
  });
313
314
  const allowPositionStyles = hasPositionBlockSupport && !isPositionDisabled;
314
- const id = (0, _compose.useInstanceId)(useBlockProps);
315
+ const id = (0, _compose.useInstanceId)(POSITION_BLOCK_PROPS_REFERENCE);
315
316
 
316
317
  // Higher specificity to override defaults in editor UI.
317
318
  const positionSelector = `.wp-container-${id}.wp-container-${id}`;
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_blocks","_components","_compose","_data","_element","_useSettings","_inspectorControls","_useBlockDisplayInformation","_utils","_store","_jsxRuntime","POSITION_SUPPORT_KEY","DEFAULT_OPTION","key","value","name","__","STICKY_OPTION","_x","hint","FIXED_OPTION","POSITION_SIDES","VALID_POSITION_TYPES","getPositionCSS","selector","style","output","type","positionType","position","includes","forEach","side","undefined","hasStickyPositionSupport","blockType","support","getBlockSupport","sticky","hasFixedPositionSupport","fixed","hasPositionSupport","hasPositionValue","props","attributes","hasStickyOrFixedPositionValue","resetPosition","setAttributes","cleanEmptyObject","top","right","bottom","left","useIsPositionDisabled","blockName","allowFixed","allowSticky","useSettings","isDisabled","PositionPanelPure","clientId","firstParentClientId","useSelect","select","getBlockParents","blockEditorStore","parents","length","blockInformation","useBlockDisplayInformation","stickyHelpText","sprintf","title","options","useMemo","availableOptions","push","onChangeType","next","placementValue","newStyle","selectedOption","find","option","Platform","web","jsx","default","group","children","BaseControl","__nextHasNoMarginBottom","help","CustomSelectControl","__next40pxDefaultSize","label","hideLabelFromVision","describedBy","onChange","selectedItem","size","native","_default","exports","edit","Edit","isPositionDisabled","useBlockProps","attributeKeys","hasSupport","hasBlockSupport","hasPositionBlockSupport","allowPositionStyles","id","useInstanceId","positionSelector","css","className","clsx","useStyleOverride"],"sources":["@wordpress/block-editor/src/hooks/position.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport { BaseControl, CustomSelectControl } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo, Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../components/use-settings';\nimport InspectorControls from '../components/inspector-controls';\nimport useBlockDisplayInformation from '../components/use-block-display-information';\nimport { cleanEmptyObject, useStyleOverride } from './utils';\nimport { store as blockEditorStore } from '../store';\n\nconst POSITION_SUPPORT_KEY = 'position';\n\nconst DEFAULT_OPTION = {\n\tkey: 'default',\n\tvalue: '',\n\tname: __( 'Default' ),\n};\n\nconst STICKY_OPTION = {\n\tkey: 'sticky',\n\tvalue: 'sticky',\n\tname: _x( 'Sticky', 'Name for the value of the CSS position property' ),\n\thint: __(\n\t\t'The block will stick to the top of the window instead of scrolling.'\n\t),\n};\n\nconst FIXED_OPTION = {\n\tkey: 'fixed',\n\tvalue: 'fixed',\n\tname: _x( 'Fixed', 'Name for the value of the CSS position property' ),\n\thint: __( 'The block will not move when the page is scrolled.' ),\n};\n\nconst POSITION_SIDES = [ 'top', 'right', 'bottom', 'left' ];\nconst VALID_POSITION_TYPES = [ 'sticky', 'fixed' ];\n\n/**\n * Get calculated position CSS.\n *\n * @param {Object} props Component props.\n * @param {string} props.selector Selector to use.\n * @param {Object} props.style Style object.\n * @return {string} The generated CSS rules.\n */\nexport function getPositionCSS( { selector, style } ) {\n\tlet output = '';\n\n\tconst { type: positionType } = style?.position || {};\n\n\tif ( ! VALID_POSITION_TYPES.includes( positionType ) ) {\n\t\treturn output;\n\t}\n\n\toutput += `${ selector } {`;\n\toutput += `position: ${ positionType };`;\n\n\tPOSITION_SIDES.forEach( ( side ) => {\n\t\tif ( style?.position?.[ side ] !== undefined ) {\n\t\t\toutput += `${ side }: ${ style.position[ side ] };`;\n\t\t}\n\t} );\n\n\tif ( positionType === 'sticky' || positionType === 'fixed' ) {\n\t\t// TODO: Replace hard-coded z-index value with a z-index preset approach in theme.json.\n\t\toutput += `z-index: 10`;\n\t}\n\toutput += `}`;\n\n\treturn output;\n}\n\n/**\n * Determines if there is sticky position support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasStickyPositionSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, POSITION_SUPPORT_KEY );\n\treturn !! ( true === support || support?.sticky );\n}\n\n/**\n * Determines if there is fixed position support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasFixedPositionSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, POSITION_SUPPORT_KEY );\n\treturn !! ( true === support || support?.fixed );\n}\n\n/**\n * Determines if there is position support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasPositionSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, POSITION_SUPPORT_KEY );\n\treturn !! support;\n}\n\n/**\n * Checks if there is a current value in the position block support attributes.\n *\n * @param {Object} props Block props.\n * @return {boolean} Whether or not the block has a position value set.\n */\nexport function hasPositionValue( props ) {\n\treturn props.attributes.style?.position?.type !== undefined;\n}\n\n/**\n * Checks if the block is currently set to a sticky or fixed position.\n * This check is helpful for determining how to position block toolbars or other elements.\n *\n * @param {Object} attributes Block attributes.\n * @return {boolean} Whether or not the block is set to a sticky or fixed position.\n */\nexport function hasStickyOrFixedPositionValue( attributes ) {\n\tconst positionType = attributes?.style?.position?.type;\n\treturn positionType === 'sticky' || positionType === 'fixed';\n}\n\n/**\n * Resets the position block support attributes. This can be used when disabling\n * the position support controls for a block via a `ToolsPanel`.\n *\n * @param {Object} props Block props.\n * @param {Object} props.attributes Block's attributes.\n * @param {Object} props.setAttributes Function to set block's attributes.\n */\nexport function resetPosition( { attributes = {}, setAttributes } ) {\n\tconst { style = {} } = attributes;\n\n\tsetAttributes( {\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...style,\n\t\t\tposition: {\n\t\t\t\t...style?.position,\n\t\t\t\ttype: undefined,\n\t\t\t\ttop: undefined,\n\t\t\t\tright: undefined,\n\t\t\t\tbottom: undefined,\n\t\t\t\tleft: undefined,\n\t\t\t},\n\t\t} ),\n\t} );\n}\n\n/**\n * Custom hook that checks if position settings have been disabled.\n *\n * @param {string} name The name of the block.\n *\n * @return {boolean} Whether padding setting is disabled.\n */\nexport function useIsPositionDisabled( { name: blockName } = {} ) {\n\tconst [ allowFixed, allowSticky ] = useSettings(\n\t\t'position.fixed',\n\t\t'position.sticky'\n\t);\n\tconst isDisabled = ! allowFixed && ! allowSticky;\n\n\treturn ! hasPositionSupport( blockName ) || isDisabled;\n}\n\n/*\n * Position controls rendered in an inspector control panel.\n *\n * @param {Object} props\n *\n * @return {Element} Position panel.\n */\nexport function PositionPanelPure( {\n\tstyle = {},\n\tclientId,\n\tname: blockName,\n\tsetAttributes,\n} ) {\n\tconst allowFixed = hasFixedPositionSupport( blockName );\n\tconst allowSticky = hasStickyPositionSupport( blockName );\n\tconst value = style?.position?.type;\n\n\tconst { firstParentClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParents } = select( blockEditorStore );\n\t\t\tconst parents = getBlockParents( clientId );\n\t\t\treturn { firstParentClientId: parents[ parents.length - 1 ] };\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst blockInformation = useBlockDisplayInformation( firstParentClientId );\n\tconst stickyHelpText =\n\t\tallowSticky && value === STICKY_OPTION.value && blockInformation\n\t\t\t? sprintf(\n\t\t\t\t\t/* translators: %s: the name of the parent block. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'The block will stick to the scrollable area of the parent %s block.'\n\t\t\t\t\t),\n\t\t\t\t\tblockInformation.title\n\t\t\t )\n\t\t\t: null;\n\n\tconst options = useMemo( () => {\n\t\tconst availableOptions = [ DEFAULT_OPTION ];\n\t\t// Display options if they are allowed, or if a block already has a valid value set.\n\t\t// This allows for a block to be switched off from a position type that is not allowed.\n\t\tif ( allowSticky || value === STICKY_OPTION.value ) {\n\t\t\tavailableOptions.push( STICKY_OPTION );\n\t\t}\n\t\tif ( allowFixed || value === FIXED_OPTION.value ) {\n\t\t\tavailableOptions.push( FIXED_OPTION );\n\t\t}\n\t\treturn availableOptions;\n\t}, [ allowFixed, allowSticky, value ] );\n\n\tconst onChangeType = ( next ) => {\n\t\t// For now, use a hard-coded `0px` value for the position.\n\t\t// `0px` is preferred over `0` as it can be used in `calc()` functions.\n\t\t// In the future, it could be useful to allow for an offset value.\n\t\tconst placementValue = '0px';\n\n\t\tconst newStyle = {\n\t\t\t...style,\n\t\t\tposition: {\n\t\t\t\t...style?.position,\n\t\t\t\ttype: next,\n\t\t\t\ttop:\n\t\t\t\t\tnext === 'sticky' || next === 'fixed'\n\t\t\t\t\t\t? placementValue\n\t\t\t\t\t\t: undefined,\n\t\t\t},\n\t\t};\n\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t} );\n\t};\n\n\tconst selectedOption = value\n\t\t? options.find( ( option ) => option.value === value ) || DEFAULT_OPTION\n\t\t: DEFAULT_OPTION;\n\n\t// Only display position controls if there is at least one option to choose from.\n\treturn Platform.select( {\n\t\tweb:\n\t\t\toptions.length > 1 ? (\n\t\t\t\t<InspectorControls group=\"position\">\n\t\t\t\t\t<BaseControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\thelp={ stickyHelpText }\n\t\t\t\t\t>\n\t\t\t\t\t\t<CustomSelectControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Position' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tdescribedBy={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Currently selected position.\n\t\t\t\t\t\t\t\t__( 'Currently selected position: %s' ),\n\t\t\t\t\t\t\t\tselectedOption.name\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\toptions={ options }\n\t\t\t\t\t\t\tvalue={ selectedOption }\n\t\t\t\t\t\t\tonChange={ ( { selectedItem } ) => {\n\t\t\t\t\t\t\t\tonChangeType( selectedItem.value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BaseControl>\n\t\t\t\t</InspectorControls>\n\t\t\t) : null,\n\t\tnative: null,\n\t} );\n}\n\nexport default {\n\tedit: function Edit( props ) {\n\t\tconst isPositionDisabled = useIsPositionDisabled( props );\n\t\tif ( isPositionDisabled ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn <PositionPanelPure { ...props } />;\n\t},\n\tuseBlockProps,\n\tattributeKeys: [ 'style' ],\n\thasSupport( name ) {\n\t\treturn hasBlockSupport( name, POSITION_SUPPORT_KEY );\n\t},\n};\n\nfunction useBlockProps( { name, style } ) {\n\tconst hasPositionBlockSupport = hasBlockSupport(\n\t\tname,\n\t\tPOSITION_SUPPORT_KEY\n\t);\n\tconst isPositionDisabled = useIsPositionDisabled( { name } );\n\tconst allowPositionStyles = hasPositionBlockSupport && ! isPositionDisabled;\n\n\tconst id = useInstanceId( useBlockProps );\n\n\t// Higher specificity to override defaults in editor UI.\n\tconst positionSelector = `.wp-container-${ id }.wp-container-${ id }`;\n\n\t// Get CSS string for the current position values.\n\tlet css;\n\tif ( allowPositionStyles ) {\n\t\tcss =\n\t\t\tgetPositionCSS( {\n\t\t\t\tselector: positionSelector,\n\t\t\t\tstyle,\n\t\t\t} ) || '';\n\t}\n\n\t// Attach a `wp-container-` id-based class name.\n\tconst className = clsx( {\n\t\t[ `wp-container-${ id }` ]: allowPositionStyles && !! css, // Only attach a container class if there is generated CSS to be attached.\n\t\t[ `is-position-${ style?.position?.type }` ]:\n\t\t\tallowPositionStyles && !! css && !! style?.position?.type,\n\t} );\n\n\tuseStyleOverride( { css } );\n\n\treturn { className };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_blocks","_components","_compose","_data","_element","_useSettings","_inspectorControls","_useBlockDisplayInformation","_utils","_store","_jsxRuntime","POSITION_SUPPORT_KEY","DEFAULT_OPTION","key","value","name","__","STICKY_OPTION","_x","hint","FIXED_OPTION","POSITION_SIDES","VALID_POSITION_TYPES","getPositionCSS","selector","style","output","type","positionType","position","includes","forEach","side","undefined","hasStickyPositionSupport","blockType","support","getBlockSupport","sticky","hasFixedPositionSupport","fixed","hasPositionSupport","hasPositionValue","props","attributes","hasStickyOrFixedPositionValue","resetPosition","setAttributes","cleanEmptyObject","top","right","bottom","left","useIsPositionDisabled","blockName","allowFixed","allowSticky","useSettings","isDisabled","PositionPanelPure","clientId","firstParentClientId","useSelect","select","getBlockParents","blockEditorStore","parents","length","blockInformation","useBlockDisplayInformation","stickyHelpText","sprintf","title","options","useMemo","availableOptions","push","onChangeType","next","placementValue","newStyle","selectedOption","find","option","Platform","web","jsx","default","group","children","BaseControl","__nextHasNoMarginBottom","help","CustomSelectControl","__next40pxDefaultSize","label","hideLabelFromVision","describedBy","onChange","selectedItem","size","native","_default","exports","edit","Edit","isPositionDisabled","useBlockProps","attributeKeys","hasSupport","hasBlockSupport","POSITION_BLOCK_PROPS_REFERENCE","hasPositionBlockSupport","allowPositionStyles","id","useInstanceId","positionSelector","css","className","clsx","useStyleOverride"],"sources":["@wordpress/block-editor/src/hooks/position.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport { BaseControl, CustomSelectControl } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo, Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../components/use-settings';\nimport InspectorControls from '../components/inspector-controls';\nimport useBlockDisplayInformation from '../components/use-block-display-information';\nimport { cleanEmptyObject, useStyleOverride } from './utils';\nimport { store as blockEditorStore } from '../store';\n\nconst POSITION_SUPPORT_KEY = 'position';\n\nconst DEFAULT_OPTION = {\n\tkey: 'default',\n\tvalue: '',\n\tname: __( 'Default' ),\n};\n\nconst STICKY_OPTION = {\n\tkey: 'sticky',\n\tvalue: 'sticky',\n\tname: _x( 'Sticky', 'Name for the value of the CSS position property' ),\n\thint: __(\n\t\t'The block will stick to the top of the window instead of scrolling.'\n\t),\n};\n\nconst FIXED_OPTION = {\n\tkey: 'fixed',\n\tvalue: 'fixed',\n\tname: _x( 'Fixed', 'Name for the value of the CSS position property' ),\n\thint: __( 'The block will not move when the page is scrolled.' ),\n};\n\nconst POSITION_SIDES = [ 'top', 'right', 'bottom', 'left' ];\nconst VALID_POSITION_TYPES = [ 'sticky', 'fixed' ];\n\n/**\n * Get calculated position CSS.\n *\n * @param {Object} props Component props.\n * @param {string} props.selector Selector to use.\n * @param {Object} props.style Style object.\n * @return {string} The generated CSS rules.\n */\nexport function getPositionCSS( { selector, style } ) {\n\tlet output = '';\n\n\tconst { type: positionType } = style?.position || {};\n\n\tif ( ! VALID_POSITION_TYPES.includes( positionType ) ) {\n\t\treturn output;\n\t}\n\n\toutput += `${ selector } {`;\n\toutput += `position: ${ positionType };`;\n\n\tPOSITION_SIDES.forEach( ( side ) => {\n\t\tif ( style?.position?.[ side ] !== undefined ) {\n\t\t\toutput += `${ side }: ${ style.position[ side ] };`;\n\t\t}\n\t} );\n\n\tif ( positionType === 'sticky' || positionType === 'fixed' ) {\n\t\t// TODO: Replace hard-coded z-index value with a z-index preset approach in theme.json.\n\t\toutput += `z-index: 10`;\n\t}\n\toutput += `}`;\n\n\treturn output;\n}\n\n/**\n * Determines if there is sticky position support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasStickyPositionSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, POSITION_SUPPORT_KEY );\n\treturn !! ( true === support || support?.sticky );\n}\n\n/**\n * Determines if there is fixed position support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasFixedPositionSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, POSITION_SUPPORT_KEY );\n\treturn !! ( true === support || support?.fixed );\n}\n\n/**\n * Determines if there is position support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasPositionSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, POSITION_SUPPORT_KEY );\n\treturn !! support;\n}\n\n/**\n * Checks if there is a current value in the position block support attributes.\n *\n * @param {Object} props Block props.\n * @return {boolean} Whether or not the block has a position value set.\n */\nexport function hasPositionValue( props ) {\n\treturn props.attributes.style?.position?.type !== undefined;\n}\n\n/**\n * Checks if the block is currently set to a sticky or fixed position.\n * This check is helpful for determining how to position block toolbars or other elements.\n *\n * @param {Object} attributes Block attributes.\n * @return {boolean} Whether or not the block is set to a sticky or fixed position.\n */\nexport function hasStickyOrFixedPositionValue( attributes ) {\n\tconst positionType = attributes?.style?.position?.type;\n\treturn positionType === 'sticky' || positionType === 'fixed';\n}\n\n/**\n * Resets the position block support attributes. This can be used when disabling\n * the position support controls for a block via a `ToolsPanel`.\n *\n * @param {Object} props Block props.\n * @param {Object} props.attributes Block's attributes.\n * @param {Object} props.setAttributes Function to set block's attributes.\n */\nexport function resetPosition( { attributes = {}, setAttributes } ) {\n\tconst { style = {} } = attributes;\n\n\tsetAttributes( {\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...style,\n\t\t\tposition: {\n\t\t\t\t...style?.position,\n\t\t\t\ttype: undefined,\n\t\t\t\ttop: undefined,\n\t\t\t\tright: undefined,\n\t\t\t\tbottom: undefined,\n\t\t\t\tleft: undefined,\n\t\t\t},\n\t\t} ),\n\t} );\n}\n\n/**\n * Custom hook that checks if position settings have been disabled.\n *\n * @param {string} name The name of the block.\n *\n * @return {boolean} Whether padding setting is disabled.\n */\nexport function useIsPositionDisabled( { name: blockName } = {} ) {\n\tconst [ allowFixed, allowSticky ] = useSettings(\n\t\t'position.fixed',\n\t\t'position.sticky'\n\t);\n\tconst isDisabled = ! allowFixed && ! allowSticky;\n\n\treturn ! hasPositionSupport( blockName ) || isDisabled;\n}\n\n/*\n * Position controls rendered in an inspector control panel.\n *\n * @param {Object} props\n *\n * @return {Element} Position panel.\n */\nexport function PositionPanelPure( {\n\tstyle = {},\n\tclientId,\n\tname: blockName,\n\tsetAttributes,\n} ) {\n\tconst allowFixed = hasFixedPositionSupport( blockName );\n\tconst allowSticky = hasStickyPositionSupport( blockName );\n\tconst value = style?.position?.type;\n\n\tconst { firstParentClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParents } = select( blockEditorStore );\n\t\t\tconst parents = getBlockParents( clientId );\n\t\t\treturn { firstParentClientId: parents[ parents.length - 1 ] };\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst blockInformation = useBlockDisplayInformation( firstParentClientId );\n\tconst stickyHelpText =\n\t\tallowSticky && value === STICKY_OPTION.value && blockInformation\n\t\t\t? sprintf(\n\t\t\t\t\t/* translators: %s: the name of the parent block. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'The block will stick to the scrollable area of the parent %s block.'\n\t\t\t\t\t),\n\t\t\t\t\tblockInformation.title\n\t\t\t )\n\t\t\t: null;\n\n\tconst options = useMemo( () => {\n\t\tconst availableOptions = [ DEFAULT_OPTION ];\n\t\t// Display options if they are allowed, or if a block already has a valid value set.\n\t\t// This allows for a block to be switched off from a position type that is not allowed.\n\t\tif ( allowSticky || value === STICKY_OPTION.value ) {\n\t\t\tavailableOptions.push( STICKY_OPTION );\n\t\t}\n\t\tif ( allowFixed || value === FIXED_OPTION.value ) {\n\t\t\tavailableOptions.push( FIXED_OPTION );\n\t\t}\n\t\treturn availableOptions;\n\t}, [ allowFixed, allowSticky, value ] );\n\n\tconst onChangeType = ( next ) => {\n\t\t// For now, use a hard-coded `0px` value for the position.\n\t\t// `0px` is preferred over `0` as it can be used in `calc()` functions.\n\t\t// In the future, it could be useful to allow for an offset value.\n\t\tconst placementValue = '0px';\n\n\t\tconst newStyle = {\n\t\t\t...style,\n\t\t\tposition: {\n\t\t\t\t...style?.position,\n\t\t\t\ttype: next,\n\t\t\t\ttop:\n\t\t\t\t\tnext === 'sticky' || next === 'fixed'\n\t\t\t\t\t\t? placementValue\n\t\t\t\t\t\t: undefined,\n\t\t\t},\n\t\t};\n\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t} );\n\t};\n\n\tconst selectedOption = value\n\t\t? options.find( ( option ) => option.value === value ) || DEFAULT_OPTION\n\t\t: DEFAULT_OPTION;\n\n\t// Only display position controls if there is at least one option to choose from.\n\treturn Platform.select( {\n\t\tweb:\n\t\t\toptions.length > 1 ? (\n\t\t\t\t<InspectorControls group=\"position\">\n\t\t\t\t\t<BaseControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\thelp={ stickyHelpText }\n\t\t\t\t\t>\n\t\t\t\t\t\t<CustomSelectControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Position' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tdescribedBy={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Currently selected position.\n\t\t\t\t\t\t\t\t__( 'Currently selected position: %s' ),\n\t\t\t\t\t\t\t\tselectedOption.name\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\toptions={ options }\n\t\t\t\t\t\t\tvalue={ selectedOption }\n\t\t\t\t\t\t\tonChange={ ( { selectedItem } ) => {\n\t\t\t\t\t\t\t\tonChangeType( selectedItem.value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BaseControl>\n\t\t\t\t</InspectorControls>\n\t\t\t) : null,\n\t\tnative: null,\n\t} );\n}\n\nexport default {\n\tedit: function Edit( props ) {\n\t\tconst isPositionDisabled = useIsPositionDisabled( props );\n\t\tif ( isPositionDisabled ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn <PositionPanelPure { ...props } />;\n\t},\n\tuseBlockProps,\n\tattributeKeys: [ 'style' ],\n\thasSupport( name ) {\n\t\treturn hasBlockSupport( name, POSITION_SUPPORT_KEY );\n\t},\n};\n\n// Used for generating the instance ID\nconst POSITION_BLOCK_PROPS_REFERENCE = {};\n\nfunction useBlockProps( { name, style } ) {\n\tconst hasPositionBlockSupport = hasBlockSupport(\n\t\tname,\n\t\tPOSITION_SUPPORT_KEY\n\t);\n\tconst isPositionDisabled = useIsPositionDisabled( { name } );\n\tconst allowPositionStyles = hasPositionBlockSupport && ! isPositionDisabled;\n\n\tconst id = useInstanceId( POSITION_BLOCK_PROPS_REFERENCE );\n\n\t// Higher specificity to override defaults in editor UI.\n\tconst positionSelector = `.wp-container-${ id }.wp-container-${ id }`;\n\n\t// Get CSS string for the current position values.\n\tlet css;\n\tif ( allowPositionStyles ) {\n\t\tcss =\n\t\t\tgetPositionCSS( {\n\t\t\t\tselector: positionSelector,\n\t\t\t\tstyle,\n\t\t\t} ) || '';\n\t}\n\n\t// Attach a `wp-container-` id-based class name.\n\tconst className = clsx( {\n\t\t[ `wp-container-${ id }` ]: allowPositionStyles && !! css, // Only attach a container class if there is generated CSS to be attached.\n\t\t[ `is-position-${ style?.position?.type }` ]:\n\t\t\tallowPositionStyles && !! css && !! style?.position?.type,\n\t} );\n\n\tuseStyleOverride( { css } );\n\n\treturn { className };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -94,8 +94,7 @@ var _default = exports.default = {
94
94
  isToolbar: true
95
95
  }), allowVerticalAlignment && /*#__PURE__*/(0, _jsxRuntime.jsx)(FlexLayoutVerticalAlignmentControl, {
96
96
  layout: layout,
97
- onChange: onChange,
98
- isToolbar: true
97
+ onChange: onChange
99
98
  })]
100
99
  });
101
100
  },
@@ -161,8 +160,7 @@ var _default = exports.default = {
161
160
  };
162
161
  function FlexLayoutVerticalAlignmentControl({
163
162
  layout,
164
- onChange,
165
- isToolbar = false
163
+ onChange
166
164
  }) {
167
165
  const {
168
166
  orientation = 'horizontal'
@@ -177,40 +175,10 @@ function FlexLayoutVerticalAlignmentControl({
177
175
  verticalAlignment: value
178
176
  });
179
177
  };
180
- if (isToolbar) {
181
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components2.BlockVerticalAlignmentControl, {
182
- onChange: onVerticalAlignmentChange,
183
- value: verticalAlignment,
184
- controls: orientation === 'horizontal' ? ['top', 'center', 'bottom', 'stretch'] : ['top', 'center', 'bottom', 'space-between']
185
- });
186
- }
187
- const verticalAlignmentOptions = [{
188
- value: 'flex-start',
189
- label: (0, _i18n.__)('Align items top')
190
- }, {
191
- value: 'center',
192
- label: (0, _i18n.__)('Align items center')
193
- }, {
194
- value: 'flex-end',
195
- label: (0, _i18n.__)('Align items bottom')
196
- }];
197
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)("fieldset", {
198
- className: "block-editor-hooks__flex-layout-vertical-alignment-control",
199
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("legend", {
200
- children: (0, _i18n.__)('Vertical alignment')
201
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
202
- children: verticalAlignmentOptions.map((value, icon, label) => {
203
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button
204
- // TODO: Switch to `true` (40px size) if possible
205
- , {
206
- __next40pxDefaultSize: false,
207
- label: label,
208
- icon: icon,
209
- isPressed: verticalAlignment === value,
210
- onClick: () => onVerticalAlignmentChange(value)
211
- }, value);
212
- })
213
- })]
178
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components2.BlockVerticalAlignmentControl, {
179
+ onChange: onVerticalAlignmentChange,
180
+ value: verticalAlignment,
181
+ controls: orientation === 'horizontal' ? ['top', 'center', 'bottom', 'stretch'] : ['top', 'center', 'bottom', 'space-between']
214
182
  });
215
183
  }
216
184
  const POPOVER_PROPS = {
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_icons","_components","_utils","_gap","_components2","_utils2","_definitions","_jsxRuntime","justifyContentMap","left","right","center","alignItemsMap","stretch","verticalAlignmentMap","top","bottom","flexWrapOptions","_default","exports","default","name","label","__","inspectorControls","FlexLayoutInspectorControls","layout","onChange","layoutBlockSupport","allowOrientation","jsxs","Fragment","children","Flex","jsx","FlexItem","FlexLayoutJustifyContentControl","OrientationControl","FlexWrapControl","toolBarControls","FlexLayoutToolbarControls","allowSwitching","allowVerticalAlignment","BlockControls","group","__experimentalShareWithChildBlocks","isToolbar","FlexLayoutVerticalAlignmentControl","getLayoutStyle","selector","style","blockName","hasBlockGapSupport","layoutDefinitions","LAYOUT_DEFINITIONS","orientation","blockGapValue","spacing","blockGap","shouldSkipSerialization","getGapCSSValue","undefined","justifyContent","flexWrap","includes","verticalAlignment","alignItems","output","rules","push","length","appendSelectors","join","getBlockGapCSS","getOrientation","getAlignments","defaultVerticalAlignment","onVerticalAlignmentChange","value","BlockVerticalAlignmentControl","controls","verticalAlignmentOptions","className","map","icon","Button","__next40pxDefaultSize","isPressed","onClick","POPOVER_PROPS","placement","onJustificationChange","allowedControls","JustifyContentControl","popoverProps","justificationOptions","justifyLeft","justifyCenter","justifyRight","justifySpaceBetween","justifyStretch","__experimentalToggleGroupControl","__nextHasNoMarginBottom","__experimentalToggleGroupControlOptionIcon","ToggleControl","checked","newVerticalAlignment","newJustification","arrowRight","arrowDown"],"sources":["@wordpress/block-editor/src/layouts/flex.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tjustifyLeft,\n\tjustifyCenter,\n\tjustifyRight,\n\tjustifySpaceBetween,\n\tjustifyStretch,\n\tarrowRight,\n\tarrowDown,\n} from '@wordpress/icons';\nimport {\n\tButton,\n\tToggleControl,\n\tFlex,\n\tFlexItem,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { appendSelectors, getBlockGapCSS } from './utils';\nimport { getGapCSSValue } from '../hooks/gap';\nimport {\n\tBlockControls,\n\tJustifyContentControl,\n\tBlockVerticalAlignmentControl,\n} from '../components';\nimport { shouldSkipSerialization } from '../hooks/utils';\nimport { LAYOUT_DEFINITIONS } from './definitions';\n\n// Used with the default, horizontal flex orientation.\nconst justifyContentMap = {\n\tleft: 'flex-start',\n\tright: 'flex-end',\n\tcenter: 'center',\n\t'space-between': 'space-between',\n};\n\n// Used with the vertical (column) flex orientation.\nconst alignItemsMap = {\n\tleft: 'flex-start',\n\tright: 'flex-end',\n\tcenter: 'center',\n\tstretch: 'stretch',\n};\n\nconst verticalAlignmentMap = {\n\ttop: 'flex-start',\n\tcenter: 'center',\n\tbottom: 'flex-end',\n\tstretch: 'stretch',\n\t'space-between': 'space-between',\n};\n\nconst flexWrapOptions = [ 'wrap', 'nowrap' ];\n\nexport default {\n\tname: 'flex',\n\tlabel: __( 'Flex' ),\n\tinspectorControls: function FlexLayoutInspectorControls( {\n\t\tlayout = {},\n\t\tonChange,\n\t\tlayoutBlockSupport = {},\n\t} ) {\n\t\tconst { allowOrientation = true } = layoutBlockSupport;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Flex>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<FlexLayoutJustifyContentControl\n\t\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t{ allowOrientation && (\n\t\t\t\t\t\t\t<OrientationControl\n\t\t\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t\t<FlexWrapControl layout={ layout } onChange={ onChange } />\n\t\t\t</>\n\t\t);\n\t},\n\ttoolBarControls: function FlexLayoutToolbarControls( {\n\t\tlayout = {},\n\t\tonChange,\n\t\tlayoutBlockSupport,\n\t} ) {\n\t\tif ( layoutBlockSupport?.allowSwitching ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst { allowVerticalAlignment = true } = layoutBlockSupport;\n\t\treturn (\n\t\t\t<BlockControls group=\"block\" __experimentalShareWithChildBlocks>\n\t\t\t\t<FlexLayoutJustifyContentControl\n\t\t\t\t\tlayout={ layout }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tisToolbar\n\t\t\t\t/>\n\t\t\t\t{ allowVerticalAlignment && (\n\t\t\t\t\t<FlexLayoutVerticalAlignmentControl\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tisToolbar\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t);\n\t},\n\tgetLayoutStyle: function getLayoutStyle( {\n\t\tselector,\n\t\tlayout,\n\t\tstyle,\n\t\tblockName,\n\t\thasBlockGapSupport,\n\t\tlayoutDefinitions = LAYOUT_DEFINITIONS,\n\t} ) {\n\t\tconst { orientation = 'horizontal' } = layout;\n\n\t\t// If a block's block.json skips serialization for spacing or spacing.blockGap,\n\t\t// don't apply the user-defined value to the styles.\n\t\tconst blockGapValue =\n\t\t\tstyle?.spacing?.blockGap &&\n\t\t\t! shouldSkipSerialization( blockName, 'spacing', 'blockGap' )\n\t\t\t\t? getGapCSSValue( style?.spacing?.blockGap, '0.5em' )\n\t\t\t\t: undefined;\n\t\tconst justifyContent = justifyContentMap[ layout.justifyContent ];\n\t\tconst flexWrap = flexWrapOptions.includes( layout.flexWrap )\n\t\t\t? layout.flexWrap\n\t\t\t: 'wrap';\n\t\tconst verticalAlignment =\n\t\t\tverticalAlignmentMap[ layout.verticalAlignment ];\n\t\tconst alignItems =\n\t\t\talignItemsMap[ layout.justifyContent ] || alignItemsMap.left;\n\n\t\tlet output = '';\n\t\tconst rules = [];\n\n\t\tif ( flexWrap && flexWrap !== 'wrap' ) {\n\t\t\trules.push( `flex-wrap: ${ flexWrap }` );\n\t\t}\n\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\tif ( verticalAlignment ) {\n\t\t\t\trules.push( `align-items: ${ verticalAlignment }` );\n\t\t\t}\n\t\t\tif ( justifyContent ) {\n\t\t\t\trules.push( `justify-content: ${ justifyContent }` );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( verticalAlignment ) {\n\t\t\t\trules.push( `justify-content: ${ verticalAlignment }` );\n\t\t\t}\n\t\t\trules.push( 'flex-direction: column' );\n\t\t\trules.push( `align-items: ${ alignItems }` );\n\t\t}\n\n\t\tif ( rules.length ) {\n\t\t\toutput = `${ appendSelectors( selector ) } {\n\t\t\t\t${ rules.join( '; ' ) };\n\t\t\t}`;\n\t\t}\n\n\t\t// Output blockGap styles based on rules contained in layout definitions in theme.json.\n\t\tif ( hasBlockGapSupport && blockGapValue ) {\n\t\t\toutput += getBlockGapCSS(\n\t\t\t\tselector,\n\t\t\t\tlayoutDefinitions,\n\t\t\t\t'flex',\n\t\t\t\tblockGapValue\n\t\t\t);\n\t\t}\n\t\treturn output;\n\t},\n\tgetOrientation( layout ) {\n\t\tconst { orientation = 'horizontal' } = layout;\n\t\treturn orientation;\n\t},\n\tgetAlignments() {\n\t\treturn [];\n\t},\n};\n\nfunction FlexLayoutVerticalAlignmentControl( {\n\tlayout,\n\tonChange,\n\tisToolbar = false,\n} ) {\n\tconst { orientation = 'horizontal' } = layout;\n\n\tconst defaultVerticalAlignment =\n\t\torientation === 'horizontal'\n\t\t\t? verticalAlignmentMap.center\n\t\t\t: verticalAlignmentMap.top;\n\n\tconst { verticalAlignment = defaultVerticalAlignment } = layout;\n\n\tconst onVerticalAlignmentChange = ( value ) => {\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tverticalAlignment: value,\n\t\t} );\n\t};\n\tif ( isToolbar ) {\n\t\treturn (\n\t\t\t<BlockVerticalAlignmentControl\n\t\t\t\tonChange={ onVerticalAlignmentChange }\n\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\tcontrols={\n\t\t\t\t\torientation === 'horizontal'\n\t\t\t\t\t\t? [ 'top', 'center', 'bottom', 'stretch' ]\n\t\t\t\t\t\t: [ 'top', 'center', 'bottom', 'space-between' ]\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst verticalAlignmentOptions = [\n\t\t{\n\t\t\tvalue: 'flex-start',\n\t\t\tlabel: __( 'Align items top' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'center',\n\t\t\tlabel: __( 'Align items center' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'flex-end',\n\t\t\tlabel: __( 'Align items bottom' ),\n\t\t},\n\t];\n\n\treturn (\n\t\t<fieldset className=\"block-editor-hooks__flex-layout-vertical-alignment-control\">\n\t\t\t<legend>{ __( 'Vertical alignment' ) }</legend>\n\t\t\t<div>\n\t\t\t\t{ verticalAlignmentOptions.map( ( value, icon, label ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tisPressed={ verticalAlignment === value }\n\t\t\t\t\t\t\tonClick={ () => onVerticalAlignmentChange( value ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</fieldset>\n\t);\n}\n\nconst POPOVER_PROPS = {\n\tplacement: 'bottom-start',\n};\n\nfunction FlexLayoutJustifyContentControl( {\n\tlayout,\n\tonChange,\n\tisToolbar = false,\n} ) {\n\tconst { justifyContent = 'left', orientation = 'horizontal' } = layout;\n\tconst onJustificationChange = ( value ) => {\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tjustifyContent: value,\n\t\t} );\n\t};\n\tconst allowedControls = [ 'left', 'center', 'right' ];\n\tif ( orientation === 'horizontal' ) {\n\t\tallowedControls.push( 'space-between' );\n\t} else {\n\t\tallowedControls.push( 'stretch' );\n\t}\n\tif ( isToolbar ) {\n\t\treturn (\n\t\t\t<JustifyContentControl\n\t\t\t\tallowedControls={ allowedControls }\n\t\t\t\tvalue={ justifyContent }\n\t\t\t\tonChange={ onJustificationChange }\n\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst justificationOptions = [\n\t\t{\n\t\t\tvalue: 'left',\n\t\t\ticon: justifyLeft,\n\t\t\tlabel: __( 'Justify items left' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'center',\n\t\t\ticon: justifyCenter,\n\t\t\tlabel: __( 'Justify items center' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'right',\n\t\t\ticon: justifyRight,\n\t\t\tlabel: __( 'Justify items right' ),\n\t\t},\n\t];\n\tif ( orientation === 'horizontal' ) {\n\t\tjustificationOptions.push( {\n\t\t\tvalue: 'space-between',\n\t\t\ticon: justifySpaceBetween,\n\t\t\tlabel: __( 'Space between items' ),\n\t\t} );\n\t} else {\n\t\tjustificationOptions.push( {\n\t\t\tvalue: 'stretch',\n\t\t\ticon: justifyStretch,\n\t\t\tlabel: __( 'Stretch items' ),\n\t\t} );\n\t}\n\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Justification' ) }\n\t\t\tvalue={ justifyContent }\n\t\t\tonChange={ onJustificationChange }\n\t\t\tclassName=\"block-editor-hooks__flex-layout-justification-controls\"\n\t\t>\n\t\t\t{ justificationOptions.map( ( { value, icon, label } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\nfunction FlexWrapControl( { layout, onChange } ) {\n\tconst { flexWrap = 'wrap' } = layout;\n\treturn (\n\t\t<ToggleControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Allow to wrap to multiple lines' ) }\n\t\t\tonChange={ ( value ) => {\n\t\t\t\tonChange( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tflexWrap: value ? 'wrap' : 'nowrap',\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tchecked={ flexWrap === 'wrap' }\n\t\t/>\n\t);\n}\n\nfunction OrientationControl( { layout, onChange } ) {\n\tconst {\n\t\torientation = 'horizontal',\n\t\tverticalAlignment,\n\t\tjustifyContent,\n\t} = layout;\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t\tclassName=\"block-editor-hooks__flex-layout-orientation-controls\"\n\t\t\tlabel={ __( 'Orientation' ) }\n\t\t\tvalue={ orientation }\n\t\t\tonChange={ ( value ) => {\n\t\t\t\t// Make sure the vertical alignment and justification are compatible with the new orientation.\n\t\t\t\tlet newVerticalAlignment = verticalAlignment;\n\t\t\t\tlet newJustification = justifyContent;\n\t\t\t\tif ( value === 'horizontal' ) {\n\t\t\t\t\tif ( verticalAlignment === 'space-between' ) {\n\t\t\t\t\t\tnewVerticalAlignment = 'center';\n\t\t\t\t\t}\n\t\t\t\t\tif ( justifyContent === 'stretch' ) {\n\t\t\t\t\t\tnewJustification = 'left';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif ( verticalAlignment === 'stretch' ) {\n\t\t\t\t\t\tnewVerticalAlignment = 'top';\n\t\t\t\t\t}\n\t\t\t\t\tif ( justifyContent === 'space-between' ) {\n\t\t\t\t\t\tnewJustification = 'left';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn onChange( {\n\t\t\t\t\t...layout,\n\t\t\t\t\torientation: value,\n\t\t\t\t\tverticalAlignment: newVerticalAlignment,\n\t\t\t\t\tjustifyContent: newJustification,\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\ticon={ arrowRight }\n\t\t\t\tvalue=\"horizontal\"\n\t\t\t\tlabel={ __( 'Horizontal' ) }\n\t\t\t/>\n\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\ticon={ arrowDown }\n\t\t\t\tvalue=\"vertical\"\n\t\t\t\tlabel={ __( 'Vertical' ) }\n\t\t\t/>\n\t\t</ToggleGroupControl>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AASA,IAAAE,WAAA,GAAAF,OAAA;AAYA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,IAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AAKA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AAAmD,IAAAQ,WAAA,GAAAR,OAAA;AAjCnD;AACA;AACA;;AAoBA;AACA;AACA;;AAWA;AACA,MAAMS,iBAAiB,GAAG;EACzBC,IAAI,EAAE,YAAY;EAClBC,KAAK,EAAE,UAAU;EACjBC,MAAM,EAAE,QAAQ;EAChB,eAAe,EAAE;AAClB,CAAC;;AAED;AACA,MAAMC,aAAa,GAAG;EACrBH,IAAI,EAAE,YAAY;EAClBC,KAAK,EAAE,UAAU;EACjBC,MAAM,EAAE,QAAQ;EAChBE,OAAO,EAAE;AACV,CAAC;AAED,MAAMC,oBAAoB,GAAG;EAC5BC,GAAG,EAAE,YAAY;EACjBJ,MAAM,EAAE,QAAQ;EAChBK,MAAM,EAAE,UAAU;EAClBH,OAAO,EAAE,SAAS;EAClB,eAAe,EAAE;AAClB,CAAC;AAED,MAAMI,eAAe,GAAG,CAAE,MAAM,EAAE,QAAQ,CAAE;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE9B;EACdC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE,IAAAC,QAAE,EAAE,MAAO,CAAC;EACnBC,iBAAiB,EAAE,SAASC,2BAA2BA,CAAE;IACxDC,MAAM,GAAG,CAAC,CAAC;IACXC,QAAQ;IACRC,kBAAkB,GAAG,CAAC;EACvB,CAAC,EAAG;IACH,MAAM;MAAEC,gBAAgB,GAAG;IAAK,CAAC,GAAGD,kBAAkB;IACtD,oBACC,IAAArB,WAAA,CAAAuB,IAAA,EAAAvB,WAAA,CAAAwB,QAAA;MAAAC,QAAA,gBACC,IAAAzB,WAAA,CAAAuB,IAAA,EAAC7B,WAAA,CAAAgC,IAAI;QAAAD,QAAA,gBACJ,IAAAzB,WAAA,CAAA2B,GAAA,EAACjC,WAAA,CAAAkC,QAAQ;UAAAH,QAAA,eACR,IAAAzB,WAAA,CAAA2B,GAAA,EAACE,+BAA+B;YAC/BV,MAAM,EAAGA,MAAQ;YACjBC,QAAQ,EAAGA;UAAU,CACrB;QAAC,CACO,CAAC,eACX,IAAApB,WAAA,CAAA2B,GAAA,EAACjC,WAAA,CAAAkC,QAAQ;UAAAH,QAAA,EACNH,gBAAgB,iBACjB,IAAAtB,WAAA,CAAA2B,GAAA,EAACG,kBAAkB;YAClBX,MAAM,EAAGA,MAAQ;YACjBC,QAAQ,EAAGA;UAAU,CACrB;QACD,CACQ,CAAC;MAAA,CACN,CAAC,eACP,IAAApB,WAAA,CAAA2B,GAAA,EAACI,eAAe;QAACZ,MAAM,EAAGA,MAAQ;QAACC,QAAQ,EAAGA;MAAU,CAAE,CAAC;IAAA,CAC1D,CAAC;EAEL,CAAC;EACDY,eAAe,EAAE,SAASC,yBAAyBA,CAAE;IACpDd,MAAM,GAAG,CAAC,CAAC;IACXC,QAAQ;IACRC;EACD,CAAC,EAAG;IACH,IAAKA,kBAAkB,EAAEa,cAAc,EAAG;MACzC,OAAO,IAAI;IACZ;IACA,MAAM;MAAEC,sBAAsB,GAAG;IAAK,CAAC,GAAGd,kBAAkB;IAC5D,oBACC,IAAArB,WAAA,CAAAuB,IAAA,EAAC1B,YAAA,CAAAuC,aAAa;MAACC,KAAK,EAAC,OAAO;MAACC,kCAAkC;MAAAb,QAAA,gBAC9D,IAAAzB,WAAA,CAAA2B,GAAA,EAACE,+BAA+B;QAC/BV,MAAM,EAAGA,MAAQ;QACjBC,QAAQ,EAAGA,QAAU;QACrBmB,SAAS;MAAA,CACT,CAAC,EACAJ,sBAAsB,iBACvB,IAAAnC,WAAA,CAAA2B,GAAA,EAACa,kCAAkC;QAClCrB,MAAM,EAAGA,MAAQ;QACjBC,QAAQ,EAAGA,QAAU;QACrBmB,SAAS;MAAA,CACT,CACD;IAAA,CACa,CAAC;EAElB,CAAC;EACDE,cAAc,EAAE,SAASA,cAAcA,CAAE;IACxCC,QAAQ;IACRvB,MAAM;IACNwB,KAAK;IACLC,SAAS;IACTC,kBAAkB;IAClBC,iBAAiB,GAAGC;EACrB,CAAC,EAAG;IACH,MAAM;MAAEC,WAAW,GAAG;IAAa,CAAC,GAAG7B,MAAM;;IAE7C;IACA;IACA,MAAM8B,aAAa,GAClBN,KAAK,EAAEO,OAAO,EAAEC,QAAQ,IACxB,CAAE,IAAAC,+BAAuB,EAAER,SAAS,EAAE,SAAS,EAAE,UAAW,CAAC,GAC1D,IAAAS,mBAAc,EAAEV,KAAK,EAAEO,OAAO,EAAEC,QAAQ,EAAE,OAAQ,CAAC,GACnDG,SAAS;IACb,MAAMC,cAAc,GAAGtD,iBAAiB,CAAEkB,MAAM,CAACoC,cAAc,CAAE;IACjE,MAAMC,QAAQ,GAAG9C,eAAe,CAAC+C,QAAQ,CAAEtC,MAAM,CAACqC,QAAS,CAAC,GACzDrC,MAAM,CAACqC,QAAQ,GACf,MAAM;IACT,MAAME,iBAAiB,GACtBnD,oBAAoB,CAAEY,MAAM,CAACuC,iBAAiB,CAAE;IACjD,MAAMC,UAAU,GACftD,aAAa,CAAEc,MAAM,CAACoC,cAAc,CAAE,IAAIlD,aAAa,CAACH,IAAI;IAE7D,IAAI0D,MAAM,GAAG,EAAE;IACf,MAAMC,KAAK,GAAG,EAAE;IAEhB,IAAKL,QAAQ,IAAIA,QAAQ,KAAK,MAAM,EAAG;MACtCK,KAAK,CAACC,IAAI,CAAG,cAAcN,QAAU,EAAE,CAAC;IACzC;IAEA,IAAKR,WAAW,KAAK,YAAY,EAAG;MACnC,IAAKU,iBAAiB,EAAG;QACxBG,KAAK,CAACC,IAAI,CAAG,gBAAgBJ,iBAAmB,EAAE,CAAC;MACpD;MACA,IAAKH,cAAc,EAAG;QACrBM,KAAK,CAACC,IAAI,CAAG,oBAAoBP,cAAgB,EAAE,CAAC;MACrD;IACD,CAAC,MAAM;MACN,IAAKG,iBAAiB,EAAG;QACxBG,KAAK,CAACC,IAAI,CAAG,oBAAoBJ,iBAAmB,EAAE,CAAC;MACxD;MACAG,KAAK,CAACC,IAAI,CAAE,wBAAyB,CAAC;MACtCD,KAAK,CAACC,IAAI,CAAG,gBAAgBH,UAAY,EAAE,CAAC;IAC7C;IAEA,IAAKE,KAAK,CAACE,MAAM,EAAG;MACnBH,MAAM,GAAI,GAAG,IAAAI,sBAAe,EAAEtB,QAAS,CAAG;AAC7C,MAAOmB,KAAK,CAACI,IAAI,CAAE,IAAK,CAAG;AAC3B,KAAK;IACH;;IAEA;IACA,IAAKpB,kBAAkB,IAAII,aAAa,EAAG;MAC1CW,MAAM,IAAI,IAAAM,qBAAc,EACvBxB,QAAQ,EACRI,iBAAiB,EACjB,MAAM,EACNG,aACD,CAAC;IACF;IACA,OAAOW,MAAM;EACd,CAAC;EACDO,cAAcA,CAAEhD,MAAM,EAAG;IACxB,MAAM;MAAE6B,WAAW,GAAG;IAAa,CAAC,GAAG7B,MAAM;IAC7C,OAAO6B,WAAW;EACnB,CAAC;EACDoB,aAAaA,CAAA,EAAG;IACf,OAAO,EAAE;EACV;AACD,CAAC;AAED,SAAS5B,kCAAkCA,CAAE;EAC5CrB,MAAM;EACNC,QAAQ;EACRmB,SAAS,GAAG;AACb,CAAC,EAAG;EACH,MAAM;IAAES,WAAW,GAAG;EAAa,CAAC,GAAG7B,MAAM;EAE7C,MAAMkD,wBAAwB,GAC7BrB,WAAW,KAAK,YAAY,GACzBzC,oBAAoB,CAACH,MAAM,GAC3BG,oBAAoB,CAACC,GAAG;EAE5B,MAAM;IAAEkD,iBAAiB,GAAGW;EAAyB,CAAC,GAAGlD,MAAM;EAE/D,MAAMmD,yBAAyB,GAAKC,KAAK,IAAM;IAC9CnD,QAAQ,CAAE;MACT,GAAGD,MAAM;MACTuC,iBAAiB,EAAEa;IACpB,CAAE,CAAC;EACJ,CAAC;EACD,IAAKhC,SAAS,EAAG;IAChB,oBACC,IAAAvC,WAAA,CAAA2B,GAAA,EAAC9B,YAAA,CAAA2E,6BAA6B;MAC7BpD,QAAQ,EAAGkD,yBAA2B;MACtCC,KAAK,EAAGb,iBAAmB;MAC3Be,QAAQ,EACPzB,WAAW,KAAK,YAAY,GACzB,CAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAE,GACxC,CAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe;IAC/C,CACD,CAAC;EAEJ;EAEA,MAAM0B,wBAAwB,GAAG,CAChC;IACCH,KAAK,EAAE,YAAY;IACnBxD,KAAK,EAAE,IAAAC,QAAE,EAAE,iBAAkB;EAC9B,CAAC,EACD;IACCuD,KAAK,EAAE,QAAQ;IACfxD,KAAK,EAAE,IAAAC,QAAE,EAAE,oBAAqB;EACjC,CAAC,EACD;IACCuD,KAAK,EAAE,UAAU;IACjBxD,KAAK,EAAE,IAAAC,QAAE,EAAE,oBAAqB;EACjC,CAAC,CACD;EAED,oBACC,IAAAhB,WAAA,CAAAuB,IAAA;IAAUoD,SAAS,EAAC,4DAA4D;IAAAlD,QAAA,gBAC/E,IAAAzB,WAAA,CAAA2B,GAAA;MAAAF,QAAA,EAAU,IAAAT,QAAE,EAAE,oBAAqB;IAAC,CAAU,CAAC,eAC/C,IAAAhB,WAAA,CAAA2B,GAAA;MAAAF,QAAA,EACGiD,wBAAwB,CAACE,GAAG,CAAE,CAAEL,KAAK,EAAEM,IAAI,EAAE9D,KAAK,KAAM;QACzD,oBACC,IAAAf,WAAA,CAAA2B,GAAA,EAACjC,WAAA,CAAAoF;QACA;QAAA;UACAC,qBAAqB,EAAG,KAAO;UAE/BhE,KAAK,EAAGA,KAAO;UACf8D,IAAI,EAAGA,IAAM;UACbG,SAAS,EAAGtB,iBAAiB,KAAKa,KAAO;UACzCU,OAAO,EAAGA,CAAA,KAAMX,yBAAyB,CAAEC,KAAM;QAAG,GAJ9CA,KAKN,CAAC;MAEJ,CAAE;IAAC,CACC,CAAC;EAAA,CACG,CAAC;AAEb;AAEA,MAAMW,aAAa,GAAG;EACrBC,SAAS,EAAE;AACZ,CAAC;AAED,SAAStD,+BAA+BA,CAAE;EACzCV,MAAM;EACNC,QAAQ;EACRmB,SAAS,GAAG;AACb,CAAC,EAAG;EACH,MAAM;IAAEgB,cAAc,GAAG,MAAM;IAAEP,WAAW,GAAG;EAAa,CAAC,GAAG7B,MAAM;EACtE,MAAMiE,qBAAqB,GAAKb,KAAK,IAAM;IAC1CnD,QAAQ,CAAE;MACT,GAAGD,MAAM;MACToC,cAAc,EAAEgB;IACjB,CAAE,CAAC;EACJ,CAAC;EACD,MAAMc,eAAe,GAAG,CAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAE;EACrD,IAAKrC,WAAW,KAAK,YAAY,EAAG;IACnCqC,eAAe,CAACvB,IAAI,CAAE,eAAgB,CAAC;EACxC,CAAC,MAAM;IACNuB,eAAe,CAACvB,IAAI,CAAE,SAAU,CAAC;EAClC;EACA,IAAKvB,SAAS,EAAG;IAChB,oBACC,IAAAvC,WAAA,CAAA2B,GAAA,EAAC9B,YAAA,CAAAyF,qBAAqB;MACrBD,eAAe,EAAGA,eAAiB;MACnCd,KAAK,EAAGhB,cAAgB;MACxBnC,QAAQ,EAAGgE,qBAAuB;MAClCG,YAAY,EAAGL;IAAe,CAC9B,CAAC;EAEJ;EAEA,MAAMM,oBAAoB,GAAG,CAC5B;IACCjB,KAAK,EAAE,MAAM;IACbM,IAAI,EAAEY,kBAAW;IACjB1E,KAAK,EAAE,IAAAC,QAAE,EAAE,oBAAqB;EACjC,CAAC,EACD;IACCuD,KAAK,EAAE,QAAQ;IACfM,IAAI,EAAEa,oBAAa;IACnB3E,KAAK,EAAE,IAAAC,QAAE,EAAE,sBAAuB;EACnC,CAAC,EACD;IACCuD,KAAK,EAAE,OAAO;IACdM,IAAI,EAAEc,mBAAY;IAClB5E,KAAK,EAAE,IAAAC,QAAE,EAAE,qBAAsB;EAClC,CAAC,CACD;EACD,IAAKgC,WAAW,KAAK,YAAY,EAAG;IACnCwC,oBAAoB,CAAC1B,IAAI,CAAE;MAC1BS,KAAK,EAAE,eAAe;MACtBM,IAAI,EAAEe,0BAAmB;MACzB7E,KAAK,EAAE,IAAAC,QAAE,EAAE,qBAAsB;IAClC,CAAE,CAAC;EACJ,CAAC,MAAM;IACNwE,oBAAoB,CAAC1B,IAAI,CAAE;MAC1BS,KAAK,EAAE,SAAS;MAChBM,IAAI,EAAEgB,qBAAc;MACpB9E,KAAK,EAAE,IAAAC,QAAE,EAAE,eAAgB;IAC5B,CAAE,CAAC;EACJ;EAEA,oBACC,IAAAhB,WAAA,CAAA2B,GAAA,EAACjC,WAAA,CAAAoG,gCAAkB;IAClBf,qBAAqB;IACrBgB,uBAAuB;IACvBhF,KAAK,EAAG,IAAAC,QAAE,EAAE,eAAgB,CAAG;IAC/BuD,KAAK,EAAGhB,cAAgB;IACxBnC,QAAQ,EAAGgE,qBAAuB;IAClCT,SAAS,EAAC,wDAAwD;IAAAlD,QAAA,EAEhE+D,oBAAoB,CAACZ,GAAG,CAAE,CAAE;MAAEL,KAAK;MAAEM,IAAI;MAAE9D;IAAM,CAAC,KAAM;MACzD,oBACC,IAAAf,WAAA,CAAA2B,GAAA,EAACjC,WAAA,CAAAsG,0CAA4B;QAE5BzB,KAAK,EAAGA,KAAO;QACfM,IAAI,EAAGA,IAAM;QACb9D,KAAK,EAAGA;MAAO,GAHTwD,KAIN,CAAC;IAEJ,CAAE;EAAC,CACgB,CAAC;AAEvB;AAEA,SAASxC,eAAeA,CAAE;EAAEZ,MAAM;EAAEC;AAAS,CAAC,EAAG;EAChD,MAAM;IAAEoC,QAAQ,GAAG;EAAO,CAAC,GAAGrC,MAAM;EACpC,oBACC,IAAAnB,WAAA,CAAA2B,GAAA,EAACjC,WAAA,CAAAuG,aAAa;IACbF,uBAAuB;IACvBhF,KAAK,EAAG,IAAAC,QAAE,EAAE,iCAAkC,CAAG;IACjDI,QAAQ,EAAKmD,KAAK,IAAM;MACvBnD,QAAQ,CAAE;QACT,GAAGD,MAAM;QACTqC,QAAQ,EAAEe,KAAK,GAAG,MAAM,GAAG;MAC5B,CAAE,CAAC;IACJ,CAAG;IACH2B,OAAO,EAAG1C,QAAQ,KAAK;EAAQ,CAC/B,CAAC;AAEJ;AAEA,SAAS1B,kBAAkBA,CAAE;EAAEX,MAAM;EAAEC;AAAS,CAAC,EAAG;EACnD,MAAM;IACL4B,WAAW,GAAG,YAAY;IAC1BU,iBAAiB;IACjBH;EACD,CAAC,GAAGpC,MAAM;EACV,oBACC,IAAAnB,WAAA,CAAAuB,IAAA,EAAC7B,WAAA,CAAAoG,gCAAkB;IAClBf,qBAAqB;IACrBgB,uBAAuB;IACvBpB,SAAS,EAAC,sDAAsD;IAChE5D,KAAK,EAAG,IAAAC,QAAE,EAAE,aAAc,CAAG;IAC7BuD,KAAK,EAAGvB,WAAa;IACrB5B,QAAQ,EAAKmD,KAAK,IAAM;MACvB;MACA,IAAI4B,oBAAoB,GAAGzC,iBAAiB;MAC5C,IAAI0C,gBAAgB,GAAG7C,cAAc;MACrC,IAAKgB,KAAK,KAAK,YAAY,EAAG;QAC7B,IAAKb,iBAAiB,KAAK,eAAe,EAAG;UAC5CyC,oBAAoB,GAAG,QAAQ;QAChC;QACA,IAAK5C,cAAc,KAAK,SAAS,EAAG;UACnC6C,gBAAgB,GAAG,MAAM;QAC1B;MACD,CAAC,MAAM;QACN,IAAK1C,iBAAiB,KAAK,SAAS,EAAG;UACtCyC,oBAAoB,GAAG,KAAK;QAC7B;QACA,IAAK5C,cAAc,KAAK,eAAe,EAAG;UACzC6C,gBAAgB,GAAG,MAAM;QAC1B;MACD;MACA,OAAOhF,QAAQ,CAAE;QAChB,GAAGD,MAAM;QACT6B,WAAW,EAAEuB,KAAK;QAClBb,iBAAiB,EAAEyC,oBAAoB;QACvC5C,cAAc,EAAE6C;MACjB,CAAE,CAAC;IACJ,CAAG;IAAA3E,QAAA,gBAEH,IAAAzB,WAAA,CAAA2B,GAAA,EAACjC,WAAA,CAAAsG,0CAA4B;MAC5BnB,IAAI,EAAGwB,iBAAY;MACnB9B,KAAK,EAAC,YAAY;MAClBxD,KAAK,EAAG,IAAAC,QAAE,EAAE,YAAa;IAAG,CAC5B,CAAC,eACF,IAAAhB,WAAA,CAAA2B,GAAA,EAACjC,WAAA,CAAAsG,0CAA4B;MAC5BnB,IAAI,EAAGyB,gBAAW;MAClB/B,KAAK,EAAC,UAAU;MAChBxD,KAAK,EAAG,IAAAC,QAAE,EAAE,UAAW;IAAG,CAC1B,CAAC;EAAA,CACiB,CAAC;AAEvB","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_icons","_components","_utils","_gap","_components2","_utils2","_definitions","_jsxRuntime","justifyContentMap","left","right","center","alignItemsMap","stretch","verticalAlignmentMap","top","bottom","flexWrapOptions","_default","exports","default","name","label","__","inspectorControls","FlexLayoutInspectorControls","layout","onChange","layoutBlockSupport","allowOrientation","jsxs","Fragment","children","Flex","jsx","FlexItem","FlexLayoutJustifyContentControl","OrientationControl","FlexWrapControl","toolBarControls","FlexLayoutToolbarControls","allowSwitching","allowVerticalAlignment","BlockControls","group","__experimentalShareWithChildBlocks","isToolbar","FlexLayoutVerticalAlignmentControl","getLayoutStyle","selector","style","blockName","hasBlockGapSupport","layoutDefinitions","LAYOUT_DEFINITIONS","orientation","blockGapValue","spacing","blockGap","shouldSkipSerialization","getGapCSSValue","undefined","justifyContent","flexWrap","includes","verticalAlignment","alignItems","output","rules","push","length","appendSelectors","join","getBlockGapCSS","getOrientation","getAlignments","defaultVerticalAlignment","onVerticalAlignmentChange","value","BlockVerticalAlignmentControl","controls","POPOVER_PROPS","placement","onJustificationChange","allowedControls","JustifyContentControl","popoverProps","justificationOptions","icon","justifyLeft","justifyCenter","justifyRight","justifySpaceBetween","justifyStretch","__experimentalToggleGroupControl","__next40pxDefaultSize","__nextHasNoMarginBottom","className","map","__experimentalToggleGroupControlOptionIcon","ToggleControl","checked","newVerticalAlignment","newJustification","arrowRight","arrowDown"],"sources":["@wordpress/block-editor/src/layouts/flex.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tjustifyLeft,\n\tjustifyCenter,\n\tjustifyRight,\n\tjustifySpaceBetween,\n\tjustifyStretch,\n\tarrowRight,\n\tarrowDown,\n} from '@wordpress/icons';\nimport {\n\tToggleControl,\n\tFlex,\n\tFlexItem,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { appendSelectors, getBlockGapCSS } from './utils';\nimport { getGapCSSValue } from '../hooks/gap';\nimport {\n\tBlockControls,\n\tJustifyContentControl,\n\tBlockVerticalAlignmentControl,\n} from '../components';\nimport { shouldSkipSerialization } from '../hooks/utils';\nimport { LAYOUT_DEFINITIONS } from './definitions';\n\n// Used with the default, horizontal flex orientation.\nconst justifyContentMap = {\n\tleft: 'flex-start',\n\tright: 'flex-end',\n\tcenter: 'center',\n\t'space-between': 'space-between',\n};\n\n// Used with the vertical (column) flex orientation.\nconst alignItemsMap = {\n\tleft: 'flex-start',\n\tright: 'flex-end',\n\tcenter: 'center',\n\tstretch: 'stretch',\n};\n\nconst verticalAlignmentMap = {\n\ttop: 'flex-start',\n\tcenter: 'center',\n\tbottom: 'flex-end',\n\tstretch: 'stretch',\n\t'space-between': 'space-between',\n};\n\nconst flexWrapOptions = [ 'wrap', 'nowrap' ];\n\nexport default {\n\tname: 'flex',\n\tlabel: __( 'Flex' ),\n\tinspectorControls: function FlexLayoutInspectorControls( {\n\t\tlayout = {},\n\t\tonChange,\n\t\tlayoutBlockSupport = {},\n\t} ) {\n\t\tconst { allowOrientation = true } = layoutBlockSupport;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Flex>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<FlexLayoutJustifyContentControl\n\t\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t{ allowOrientation && (\n\t\t\t\t\t\t\t<OrientationControl\n\t\t\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t\t<FlexWrapControl layout={ layout } onChange={ onChange } />\n\t\t\t</>\n\t\t);\n\t},\n\ttoolBarControls: function FlexLayoutToolbarControls( {\n\t\tlayout = {},\n\t\tonChange,\n\t\tlayoutBlockSupport,\n\t} ) {\n\t\tif ( layoutBlockSupport?.allowSwitching ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst { allowVerticalAlignment = true } = layoutBlockSupport;\n\t\treturn (\n\t\t\t<BlockControls group=\"block\" __experimentalShareWithChildBlocks>\n\t\t\t\t<FlexLayoutJustifyContentControl\n\t\t\t\t\tlayout={ layout }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tisToolbar\n\t\t\t\t/>\n\t\t\t\t{ allowVerticalAlignment && (\n\t\t\t\t\t<FlexLayoutVerticalAlignmentControl\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t);\n\t},\n\tgetLayoutStyle: function getLayoutStyle( {\n\t\tselector,\n\t\tlayout,\n\t\tstyle,\n\t\tblockName,\n\t\thasBlockGapSupport,\n\t\tlayoutDefinitions = LAYOUT_DEFINITIONS,\n\t} ) {\n\t\tconst { orientation = 'horizontal' } = layout;\n\n\t\t// If a block's block.json skips serialization for spacing or spacing.blockGap,\n\t\t// don't apply the user-defined value to the styles.\n\t\tconst blockGapValue =\n\t\t\tstyle?.spacing?.blockGap &&\n\t\t\t! shouldSkipSerialization( blockName, 'spacing', 'blockGap' )\n\t\t\t\t? getGapCSSValue( style?.spacing?.blockGap, '0.5em' )\n\t\t\t\t: undefined;\n\t\tconst justifyContent = justifyContentMap[ layout.justifyContent ];\n\t\tconst flexWrap = flexWrapOptions.includes( layout.flexWrap )\n\t\t\t? layout.flexWrap\n\t\t\t: 'wrap';\n\t\tconst verticalAlignment =\n\t\t\tverticalAlignmentMap[ layout.verticalAlignment ];\n\t\tconst alignItems =\n\t\t\talignItemsMap[ layout.justifyContent ] || alignItemsMap.left;\n\n\t\tlet output = '';\n\t\tconst rules = [];\n\n\t\tif ( flexWrap && flexWrap !== 'wrap' ) {\n\t\t\trules.push( `flex-wrap: ${ flexWrap }` );\n\t\t}\n\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\tif ( verticalAlignment ) {\n\t\t\t\trules.push( `align-items: ${ verticalAlignment }` );\n\t\t\t}\n\t\t\tif ( justifyContent ) {\n\t\t\t\trules.push( `justify-content: ${ justifyContent }` );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( verticalAlignment ) {\n\t\t\t\trules.push( `justify-content: ${ verticalAlignment }` );\n\t\t\t}\n\t\t\trules.push( 'flex-direction: column' );\n\t\t\trules.push( `align-items: ${ alignItems }` );\n\t\t}\n\n\t\tif ( rules.length ) {\n\t\t\toutput = `${ appendSelectors( selector ) } {\n\t\t\t\t${ rules.join( '; ' ) };\n\t\t\t}`;\n\t\t}\n\n\t\t// Output blockGap styles based on rules contained in layout definitions in theme.json.\n\t\tif ( hasBlockGapSupport && blockGapValue ) {\n\t\t\toutput += getBlockGapCSS(\n\t\t\t\tselector,\n\t\t\t\tlayoutDefinitions,\n\t\t\t\t'flex',\n\t\t\t\tblockGapValue\n\t\t\t);\n\t\t}\n\t\treturn output;\n\t},\n\tgetOrientation( layout ) {\n\t\tconst { orientation = 'horizontal' } = layout;\n\t\treturn orientation;\n\t},\n\tgetAlignments() {\n\t\treturn [];\n\t},\n};\n\nfunction FlexLayoutVerticalAlignmentControl( { layout, onChange } ) {\n\tconst { orientation = 'horizontal' } = layout;\n\n\tconst defaultVerticalAlignment =\n\t\torientation === 'horizontal'\n\t\t\t? verticalAlignmentMap.center\n\t\t\t: verticalAlignmentMap.top;\n\n\tconst { verticalAlignment = defaultVerticalAlignment } = layout;\n\n\tconst onVerticalAlignmentChange = ( value ) => {\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tverticalAlignment: value,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<BlockVerticalAlignmentControl\n\t\t\tonChange={ onVerticalAlignmentChange }\n\t\t\tvalue={ verticalAlignment }\n\t\t\tcontrols={\n\t\t\t\torientation === 'horizontal'\n\t\t\t\t\t? [ 'top', 'center', 'bottom', 'stretch' ]\n\t\t\t\t\t: [ 'top', 'center', 'bottom', 'space-between' ]\n\t\t\t}\n\t\t/>\n\t);\n}\n\nconst POPOVER_PROPS = {\n\tplacement: 'bottom-start',\n};\n\nfunction FlexLayoutJustifyContentControl( {\n\tlayout,\n\tonChange,\n\tisToolbar = false,\n} ) {\n\tconst { justifyContent = 'left', orientation = 'horizontal' } = layout;\n\tconst onJustificationChange = ( value ) => {\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tjustifyContent: value,\n\t\t} );\n\t};\n\tconst allowedControls = [ 'left', 'center', 'right' ];\n\tif ( orientation === 'horizontal' ) {\n\t\tallowedControls.push( 'space-between' );\n\t} else {\n\t\tallowedControls.push( 'stretch' );\n\t}\n\tif ( isToolbar ) {\n\t\treturn (\n\t\t\t<JustifyContentControl\n\t\t\t\tallowedControls={ allowedControls }\n\t\t\t\tvalue={ justifyContent }\n\t\t\t\tonChange={ onJustificationChange }\n\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst justificationOptions = [\n\t\t{\n\t\t\tvalue: 'left',\n\t\t\ticon: justifyLeft,\n\t\t\tlabel: __( 'Justify items left' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'center',\n\t\t\ticon: justifyCenter,\n\t\t\tlabel: __( 'Justify items center' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'right',\n\t\t\ticon: justifyRight,\n\t\t\tlabel: __( 'Justify items right' ),\n\t\t},\n\t];\n\tif ( orientation === 'horizontal' ) {\n\t\tjustificationOptions.push( {\n\t\t\tvalue: 'space-between',\n\t\t\ticon: justifySpaceBetween,\n\t\t\tlabel: __( 'Space between items' ),\n\t\t} );\n\t} else {\n\t\tjustificationOptions.push( {\n\t\t\tvalue: 'stretch',\n\t\t\ticon: justifyStretch,\n\t\t\tlabel: __( 'Stretch items' ),\n\t\t} );\n\t}\n\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Justification' ) }\n\t\t\tvalue={ justifyContent }\n\t\t\tonChange={ onJustificationChange }\n\t\t\tclassName=\"block-editor-hooks__flex-layout-justification-controls\"\n\t\t>\n\t\t\t{ justificationOptions.map( ( { value, icon, label } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\nfunction FlexWrapControl( { layout, onChange } ) {\n\tconst { flexWrap = 'wrap' } = layout;\n\treturn (\n\t\t<ToggleControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Allow to wrap to multiple lines' ) }\n\t\t\tonChange={ ( value ) => {\n\t\t\t\tonChange( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tflexWrap: value ? 'wrap' : 'nowrap',\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tchecked={ flexWrap === 'wrap' }\n\t\t/>\n\t);\n}\n\nfunction OrientationControl( { layout, onChange } ) {\n\tconst {\n\t\torientation = 'horizontal',\n\t\tverticalAlignment,\n\t\tjustifyContent,\n\t} = layout;\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t\tclassName=\"block-editor-hooks__flex-layout-orientation-controls\"\n\t\t\tlabel={ __( 'Orientation' ) }\n\t\t\tvalue={ orientation }\n\t\t\tonChange={ ( value ) => {\n\t\t\t\t// Make sure the vertical alignment and justification are compatible with the new orientation.\n\t\t\t\tlet newVerticalAlignment = verticalAlignment;\n\t\t\t\tlet newJustification = justifyContent;\n\t\t\t\tif ( value === 'horizontal' ) {\n\t\t\t\t\tif ( verticalAlignment === 'space-between' ) {\n\t\t\t\t\t\tnewVerticalAlignment = 'center';\n\t\t\t\t\t}\n\t\t\t\t\tif ( justifyContent === 'stretch' ) {\n\t\t\t\t\t\tnewJustification = 'left';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif ( verticalAlignment === 'stretch' ) {\n\t\t\t\t\t\tnewVerticalAlignment = 'top';\n\t\t\t\t\t}\n\t\t\t\t\tif ( justifyContent === 'space-between' ) {\n\t\t\t\t\t\tnewJustification = 'left';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn onChange( {\n\t\t\t\t\t...layout,\n\t\t\t\t\torientation: value,\n\t\t\t\t\tverticalAlignment: newVerticalAlignment,\n\t\t\t\t\tjustifyContent: newJustification,\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\ticon={ arrowRight }\n\t\t\t\tvalue=\"horizontal\"\n\t\t\t\tlabel={ __( 'Horizontal' ) }\n\t\t\t/>\n\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\ticon={ arrowDown }\n\t\t\t\tvalue=\"vertical\"\n\t\t\t\tlabel={ __( 'Vertical' ) }\n\t\t\t/>\n\t\t</ToggleGroupControl>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -35,7 +35,7 @@ exports.selectBlock = selectBlock;
35
35
  exports.selectPreviousBlock = exports.selectNextBlock = void 0;
36
36
  exports.selectionChange = selectionChange;
37
37
  exports.setBlockEditingMode = setBlockEditingMode;
38
- exports.setBlockMovingClientId = void 0;
38
+ exports.setBlockMovingClientId = setBlockMovingClientId;
39
39
  exports.setBlockVisibility = setBlockVisibility;
40
40
  exports.setHasControlledInnerBlocks = setHasControlledInnerBlocks;
41
41
  exports.setNavigationMode = void 0;
@@ -1521,22 +1521,22 @@ const __unstableSetEditorMode = mode => ({
1521
1521
  };
1522
1522
 
1523
1523
  /**
1524
- * Action that enables or disables the block moving mode.
1524
+ * Set the block moving client ID.
1525
+ *
1526
+ * @deprecated
1525
1527
  *
1526
- * @param {string|null} hasBlockMovingClientId Enable/Disable block moving mode.
1528
+ * @return {Object} Action object.
1527
1529
  */
1528
1530
  exports.__unstableSetEditorMode = __unstableSetEditorMode;
1529
- const setBlockMovingClientId = (hasBlockMovingClientId = null) => ({
1530
- dispatch
1531
- }) => {
1532
- dispatch({
1533
- type: 'SET_BLOCK_MOVING_MODE',
1534
- hasBlockMovingClientId
1531
+ function setBlockMovingClientId() {
1532
+ (0, _deprecated.default)('wp.data.dispatch( "core/block-editor" ).setBlockMovingClientId', {
1533
+ since: '6.7',
1534
+ hint: 'Block moving mode feature has been removed'
1535
1535
  });
1536
- if (hasBlockMovingClientId) {
1537
- (0, _a11y.speak)((0, _i18n.__)('Use the Tab key and Arrow keys to choose new block location. Use Left and Right Arrow keys to move between nesting levels. Once location is selected press Enter or Space to move the block.'));
1538
- }
1539
- };
1536
+ return {
1537
+ type: 'DO_NOTHING'
1538
+ };
1539
+ }
1540
1540
 
1541
1541
  /**
1542
1542
  * Action that duplicates a list of blocks.
@@ -1544,7 +1544,6 @@ const setBlockMovingClientId = (hasBlockMovingClientId = null) => ({
1544
1544
  * @param {string[]} clientIds
1545
1545
  * @param {boolean} updateSelection
1546
1546
  */
1547
- exports.setBlockMovingClientId = setBlockMovingClientId;
1548
1547
  const duplicateBlocks = (clientIds, updateSelection = true) => ({
1549
1548
  select,
1550
1549
  dispatch