@wordpress/block-editor 15.23.0 → 16.0.1-next.v.202607070741.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 (363) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/build/autocompleters/block.cjs +10 -2
  3. package/build/autocompleters/block.cjs.map +2 -2
  4. package/build/components/background-image-control/index.cjs +0 -2
  5. package/build/components/background-image-control/index.cjs.map +2 -2
  6. package/build/components/block-inspector/edit-contents.cjs +3 -0
  7. package/build/components/block-inspector/edit-contents.cjs.map +3 -3
  8. package/build/components/block-inspector/index.cjs +2 -3
  9. package/build/components/block-inspector/index.cjs.map +2 -2
  10. package/build/components/block-list/block-invalid-warning.cjs +8 -19
  11. package/build/components/block-list/block-invalid-warning.cjs.map +2 -2
  12. package/build/components/block-styles/use-styles-for-block.cjs +2 -1
  13. package/build/components/block-styles/use-styles-for-block.cjs.map +2 -2
  14. package/build/components/block-title/use-block-display-title.cjs +7 -2
  15. package/build/components/block-title/use-block-display-title.cjs.map +2 -2
  16. package/build/components/block-toolbar/block-toolbar-icon.cjs +10 -14
  17. package/build/components/block-toolbar/block-toolbar-icon.cjs.map +2 -2
  18. package/build/components/block-variation-transforms/index.cjs +0 -1
  19. package/build/components/block-variation-transforms/index.cjs.map +2 -2
  20. package/build/components/child-layout-control/index.cjs +0 -2
  21. package/build/components/child-layout-control/index.cjs.map +2 -2
  22. package/build/components/colors-gradients/control.cjs +5 -5
  23. package/build/components/colors-gradients/control.cjs.map +2 -2
  24. package/build/components/date-format-picker/index.cjs +0 -1
  25. package/build/components/date-format-picker/index.cjs.map +2 -2
  26. package/build/components/dimensions-tool/aspect-ratio-tool.cjs +1 -2
  27. package/build/components/dimensions-tool/aspect-ratio-tool.cjs.map +2 -2
  28. package/build/components/dimensions-tool/scale-tool.cjs +0 -1
  29. package/build/components/dimensions-tool/scale-tool.cjs.map +2 -2
  30. package/build/components/dimensions-tool/width-height-tool.cjs +2 -4
  31. package/build/components/dimensions-tool/width-height-tool.cjs.map +2 -2
  32. package/build/components/font-appearance-control/index.cjs +6 -25
  33. package/build/components/font-appearance-control/index.cjs.map +3 -3
  34. package/build/components/font-family/index.cjs +6 -15
  35. package/build/components/font-family/index.cjs.map +3 -3
  36. package/build/components/font-sizes/font-size-picker.cjs +1 -2
  37. package/build/components/font-sizes/font-size-picker.cjs.map +2 -2
  38. package/build/components/global-styles/border-panel.cjs +0 -1
  39. package/build/components/global-styles/border-panel.cjs.map +2 -2
  40. package/build/components/global-styles/dimensions-panel.cjs +0 -3
  41. package/build/components/global-styles/dimensions-panel.cjs.map +2 -2
  42. package/build/components/global-styles/typography-panel.cjs +4 -10
  43. package/build/components/global-styles/typography-panel.cjs.map +2 -2
  44. package/build/components/height-control/index.cjs +0 -2
  45. package/build/components/height-control/index.cjs.map +2 -2
  46. package/build/components/html-element-control/index.cjs +0 -1
  47. package/build/components/html-element-control/index.cjs.map +2 -2
  48. package/build/components/image-editor/index.cjs +5 -0
  49. package/build/components/image-editor/index.cjs.map +3 -3
  50. package/build/components/image-editor/zoom-dropdown.cjs +0 -1
  51. package/build/components/image-editor/zoom-dropdown.cjs.map +2 -2
  52. package/build/components/image-size-control/index.cjs +1 -3
  53. package/build/components/image-size-control/index.cjs.map +2 -2
  54. package/build/components/inner-content/index.cjs +107 -0
  55. package/build/components/inner-content/index.cjs.map +7 -0
  56. package/build/components/inserter/hooks/use-block-types-state.cjs +10 -2
  57. package/build/components/inserter/hooks/use-block-types-state.cjs.map +2 -2
  58. package/build/components/inserter/media-tab/hooks.cjs +34 -6
  59. package/build/components/inserter/media-tab/hooks.cjs.map +2 -2
  60. package/build/components/inserter/media-tab/media-list.cjs +3 -1
  61. package/build/components/inserter/media-tab/media-list.cjs.map +2 -2
  62. package/build/components/inserter/media-tab/media-panel.cjs +224 -27
  63. package/build/components/inserter/media-tab/media-panel.cjs.map +3 -3
  64. package/build/components/inserter/media-tab/media-preview.cjs +32 -17
  65. package/build/components/inserter/media-tab/media-preview.cjs.map +2 -2
  66. package/build/components/inserter/media-tab/media-tab.cjs +26 -6
  67. package/build/components/inserter/media-tab/media-tab.cjs.map +2 -2
  68. package/build/components/inserter/mobile-tab-navigation.cjs +6 -1
  69. package/build/components/inserter/mobile-tab-navigation.cjs.map +2 -2
  70. package/build/components/inserter/no-results.cjs +2 -2
  71. package/build/components/inserter/no-results.cjs.map +2 -2
  72. package/build/components/inserter/preview-panel.cjs +2 -1
  73. package/build/components/inserter/preview-panel.cjs.map +2 -2
  74. package/build/components/inserter-list-item/index.cjs +8 -2
  75. package/build/components/inserter-list-item/index.cjs.map +2 -2
  76. package/build/components/letter-spacing-control/index.cjs +0 -24
  77. package/build/components/letter-spacing-control/index.cjs.map +3 -3
  78. package/build/components/line-height-control/index.cjs +7 -22
  79. package/build/components/line-height-control/index.cjs.map +3 -3
  80. package/build/components/list-view/block-select-button.cjs +90 -84
  81. package/build/components/list-view/block-select-button.cjs.map +2 -2
  82. package/build/components/list-view/block.cjs +51 -20
  83. package/build/components/list-view/block.cjs.map +2 -2
  84. package/build/components/list-view/expander.cjs +1 -1
  85. package/build/components/list-view/expander.cjs.map +2 -2
  86. package/build/components/list-view/use-list-view-client-ids.cjs +2 -2
  87. package/build/components/list-view/use-list-view-client-ids.cjs.map +2 -2
  88. package/build/components/observe-typing/index.cjs +4 -3
  89. package/build/components/observe-typing/index.cjs.map +2 -2
  90. package/build/components/preset-input-control/custom-value-controls.cjs +1 -3
  91. package/build/components/preset-input-control/custom-value-controls.cjs.map +2 -2
  92. package/build/components/preset-input-control/index.cjs +1 -3
  93. package/build/components/preset-input-control/index.cjs.map +2 -2
  94. package/build/components/resolution-tool/index.cjs +1 -2
  95. package/build/components/resolution-tool/index.cjs.map +2 -2
  96. package/build/components/text-alignment-control/index.cjs +0 -1
  97. package/build/components/text-alignment-control/index.cjs.map +2 -2
  98. package/build/components/text-decoration-control/index.cjs +0 -1
  99. package/build/components/text-decoration-control/index.cjs.map +2 -2
  100. package/build/components/text-indent-control/index.cjs +0 -8
  101. package/build/components/text-indent-control/index.cjs.map +2 -2
  102. package/build/components/text-transform-control/index.cjs +0 -1
  103. package/build/components/text-transform-control/index.cjs.map +2 -2
  104. package/build/components/use-block-display-information/index.cjs +10 -8
  105. package/build/components/use-block-display-information/index.cjs.map +2 -2
  106. package/build/components/use-on-block-drop/index.cjs +3 -7
  107. package/build/components/use-on-block-drop/index.cjs.map +2 -2
  108. package/build/components/writing-mode-control/index.cjs +0 -1
  109. package/build/components/writing-mode-control/index.cjs.map +2 -2
  110. package/build/hooks/font-size.cjs +1 -2
  111. package/build/hooks/font-size.cjs.map +2 -2
  112. package/build/hooks/layout.cjs +5 -3
  113. package/build/hooks/layout.cjs.map +2 -2
  114. package/build/hooks/position.cjs +36 -16
  115. package/build/hooks/position.cjs.map +2 -2
  116. package/build/hooks/states.cjs +6 -9
  117. package/build/hooks/states.cjs.map +2 -2
  118. package/build/layouts/constrained.cjs +21 -21
  119. package/build/layouts/constrained.cjs.map +2 -2
  120. package/build/layouts/flex.cjs +0 -3
  121. package/build/layouts/flex.cjs.map +2 -2
  122. package/build/layouts/grid.cjs +51 -9
  123. package/build/layouts/grid.cjs.map +2 -2
  124. package/build/private-apis.cjs +4 -1
  125. package/build/private-apis.cjs.map +3 -3
  126. package/build/store/actions.cjs.map +2 -2
  127. package/build/store/private-keys.cjs +3 -0
  128. package/build/store/private-keys.cjs.map +2 -2
  129. package/build/store/private-selectors.cjs +72 -4
  130. package/build/store/private-selectors.cjs.map +2 -2
  131. package/build/store/selectors.cjs +13 -0
  132. package/build/store/selectors.cjs.map +2 -2
  133. package/build-module/autocompleters/block.mjs +10 -2
  134. package/build-module/autocompleters/block.mjs.map +2 -2
  135. package/build-module/components/background-image-control/index.mjs +0 -2
  136. package/build-module/components/background-image-control/index.mjs.map +2 -2
  137. package/build-module/components/block-inspector/edit-contents.mjs +4 -1
  138. package/build-module/components/block-inspector/edit-contents.mjs.map +2 -2
  139. package/build-module/components/block-inspector/index.mjs +2 -3
  140. package/build-module/components/block-inspector/index.mjs.map +2 -2
  141. package/build-module/components/block-list/block-invalid-warning.mjs +8 -19
  142. package/build-module/components/block-list/block-invalid-warning.mjs.map +2 -2
  143. package/build-module/components/block-styles/use-styles-for-block.mjs +2 -1
  144. package/build-module/components/block-styles/use-styles-for-block.mjs.map +2 -2
  145. package/build-module/components/block-title/use-block-display-title.mjs +7 -2
  146. package/build-module/components/block-title/use-block-display-title.mjs.map +2 -2
  147. package/build-module/components/block-toolbar/block-toolbar-icon.mjs +10 -14
  148. package/build-module/components/block-toolbar/block-toolbar-icon.mjs.map +2 -2
  149. package/build-module/components/block-variation-transforms/index.mjs +0 -1
  150. package/build-module/components/block-variation-transforms/index.mjs.map +2 -2
  151. package/build-module/components/child-layout-control/index.mjs +0 -2
  152. package/build-module/components/child-layout-control/index.mjs.map +2 -2
  153. package/build-module/components/colors-gradients/control.mjs +5 -5
  154. package/build-module/components/colors-gradients/control.mjs.map +2 -2
  155. package/build-module/components/date-format-picker/index.mjs +0 -1
  156. package/build-module/components/date-format-picker/index.mjs.map +2 -2
  157. package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs +1 -2
  158. package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs.map +2 -2
  159. package/build-module/components/dimensions-tool/scale-tool.mjs +0 -1
  160. package/build-module/components/dimensions-tool/scale-tool.mjs.map +2 -2
  161. package/build-module/components/dimensions-tool/width-height-tool.mjs +2 -4
  162. package/build-module/components/dimensions-tool/width-height-tool.mjs.map +2 -2
  163. package/build-module/components/font-appearance-control/index.mjs +6 -15
  164. package/build-module/components/font-appearance-control/index.mjs.map +2 -2
  165. package/build-module/components/font-family/index.mjs +6 -15
  166. package/build-module/components/font-family/index.mjs.map +2 -2
  167. package/build-module/components/font-sizes/font-size-picker.mjs +1 -2
  168. package/build-module/components/font-sizes/font-size-picker.mjs.map +2 -2
  169. package/build-module/components/global-styles/border-panel.mjs +0 -1
  170. package/build-module/components/global-styles/border-panel.mjs.map +2 -2
  171. package/build-module/components/global-styles/dimensions-panel.mjs +0 -3
  172. package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
  173. package/build-module/components/global-styles/typography-panel.mjs +4 -10
  174. package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
  175. package/build-module/components/height-control/index.mjs +0 -2
  176. package/build-module/components/height-control/index.mjs.map +2 -2
  177. package/build-module/components/html-element-control/index.mjs +0 -1
  178. package/build-module/components/html-element-control/index.mjs.map +2 -2
  179. package/build-module/components/image-editor/index.mjs +5 -0
  180. package/build-module/components/image-editor/index.mjs.map +2 -2
  181. package/build-module/components/image-editor/zoom-dropdown.mjs +0 -1
  182. package/build-module/components/image-editor/zoom-dropdown.mjs.map +2 -2
  183. package/build-module/components/image-size-control/index.mjs +1 -3
  184. package/build-module/components/image-size-control/index.mjs.map +2 -2
  185. package/build-module/components/inner-content/index.mjs +82 -0
  186. package/build-module/components/inner-content/index.mjs.map +7 -0
  187. package/build-module/components/inserter/hooks/use-block-types-state.mjs +10 -2
  188. package/build-module/components/inserter/hooks/use-block-types-state.mjs.map +2 -2
  189. package/build-module/components/inserter/media-tab/hooks.mjs +33 -6
  190. package/build-module/components/inserter/media-tab/hooks.mjs.map +2 -2
  191. package/build-module/components/inserter/media-tab/media-list.mjs +3 -1
  192. package/build-module/components/inserter/media-tab/media-list.mjs.map +2 -2
  193. package/build-module/components/inserter/media-tab/media-panel.mjs +227 -30
  194. package/build-module/components/inserter/media-tab/media-panel.mjs.map +2 -2
  195. package/build-module/components/inserter/media-tab/media-preview.mjs +33 -18
  196. package/build-module/components/inserter/media-tab/media-preview.mjs.map +2 -2
  197. package/build-module/components/inserter/media-tab/media-tab.mjs +27 -7
  198. package/build-module/components/inserter/media-tab/media-tab.mjs.map +2 -2
  199. package/build-module/components/inserter/mobile-tab-navigation.mjs +6 -1
  200. package/build-module/components/inserter/mobile-tab-navigation.mjs.map +2 -2
  201. package/build-module/components/inserter/no-results.mjs +2 -2
  202. package/build-module/components/inserter/no-results.mjs.map +2 -2
  203. package/build-module/components/inserter/preview-panel.mjs +2 -1
  204. package/build-module/components/inserter/preview-panel.mjs.map +2 -2
  205. package/build-module/components/inserter-list-item/index.mjs +8 -2
  206. package/build-module/components/inserter-list-item/index.mjs.map +2 -2
  207. package/build-module/components/letter-spacing-control/index.mjs +0 -14
  208. package/build-module/components/letter-spacing-control/index.mjs.map +2 -2
  209. package/build-module/components/line-height-control/index.mjs +7 -12
  210. package/build-module/components/line-height-control/index.mjs.map +2 -2
  211. package/build-module/components/list-view/block-select-button.mjs +90 -84
  212. package/build-module/components/list-view/block-select-button.mjs.map +2 -2
  213. package/build-module/components/list-view/block.mjs +51 -20
  214. package/build-module/components/list-view/block.mjs.map +2 -2
  215. package/build-module/components/list-view/expander.mjs +1 -1
  216. package/build-module/components/list-view/expander.mjs.map +2 -2
  217. package/build-module/components/list-view/use-list-view-client-ids.mjs +2 -2
  218. package/build-module/components/list-view/use-list-view-client-ids.mjs.map +2 -2
  219. package/build-module/components/observe-typing/index.mjs +4 -3
  220. package/build-module/components/observe-typing/index.mjs.map +2 -2
  221. package/build-module/components/preset-input-control/custom-value-controls.mjs +1 -3
  222. package/build-module/components/preset-input-control/custom-value-controls.mjs.map +2 -2
  223. package/build-module/components/preset-input-control/index.mjs +1 -3
  224. package/build-module/components/preset-input-control/index.mjs.map +2 -2
  225. package/build-module/components/resolution-tool/index.mjs +1 -2
  226. package/build-module/components/resolution-tool/index.mjs.map +2 -2
  227. package/build-module/components/text-alignment-control/index.mjs +0 -1
  228. package/build-module/components/text-alignment-control/index.mjs.map +2 -2
  229. package/build-module/components/text-decoration-control/index.mjs +0 -1
  230. package/build-module/components/text-decoration-control/index.mjs.map +2 -2
  231. package/build-module/components/text-indent-control/index.mjs +0 -8
  232. package/build-module/components/text-indent-control/index.mjs.map +2 -2
  233. package/build-module/components/text-transform-control/index.mjs +0 -1
  234. package/build-module/components/text-transform-control/index.mjs.map +2 -2
  235. package/build-module/components/use-block-display-information/index.mjs +10 -8
  236. package/build-module/components/use-block-display-information/index.mjs.map +2 -2
  237. package/build-module/components/use-on-block-drop/index.mjs +4 -7
  238. package/build-module/components/use-on-block-drop/index.mjs.map +2 -2
  239. package/build-module/components/writing-mode-control/index.mjs +0 -1
  240. package/build-module/components/writing-mode-control/index.mjs.map +2 -2
  241. package/build-module/hooks/font-size.mjs +1 -2
  242. package/build-module/hooks/font-size.mjs.map +2 -2
  243. package/build-module/hooks/layout.mjs +4 -3
  244. package/build-module/hooks/layout.mjs.map +2 -2
  245. package/build-module/hooks/position.mjs +38 -18
  246. package/build-module/hooks/position.mjs.map +2 -2
  247. package/build-module/hooks/states.mjs +6 -9
  248. package/build-module/hooks/states.mjs.map +2 -2
  249. package/build-module/layouts/constrained.mjs +21 -21
  250. package/build-module/layouts/constrained.mjs.map +2 -2
  251. package/build-module/layouts/flex.mjs +0 -3
  252. package/build-module/layouts/flex.mjs.map +2 -2
  253. package/build-module/layouts/grid.mjs +52 -9
  254. package/build-module/layouts/grid.mjs.map +2 -2
  255. package/build-module/private-apis.mjs +5 -1
  256. package/build-module/private-apis.mjs.map +2 -2
  257. package/build-module/store/actions.mjs.map +2 -2
  258. package/build-module/store/private-keys.mjs +2 -0
  259. package/build-module/store/private-keys.mjs.map +2 -2
  260. package/build-module/store/private-selectors.mjs +71 -4
  261. package/build-module/store/private-selectors.mjs.map +2 -2
  262. package/build-module/store/selectors.mjs +13 -0
  263. package/build-module/store/selectors.mjs.map +2 -2
  264. package/build-style/content-rtl.css +11 -5
  265. package/build-style/content.css +11 -5
  266. package/build-style/style-rtl.css +113 -3
  267. package/build-style/style.css +113 -3
  268. package/package.json +43 -41
  269. package/src/autocompleters/block.js +10 -3
  270. package/src/autocompleters/test/block.js +53 -0
  271. package/src/components/background-image-control/index.js +0 -2
  272. package/src/components/block-inspector/edit-contents.js +5 -1
  273. package/src/components/block-inspector/index.js +3 -2
  274. package/src/components/block-list/block-invalid-warning.js +8 -19
  275. package/src/components/block-patterns-list/stories/index.story.jsx +1 -1
  276. package/src/components/block-styles/use-styles-for-block.js +1 -0
  277. package/src/components/block-title/use-block-display-title.js +7 -2
  278. package/src/components/block-toolbar/block-toolbar-icon.js +11 -16
  279. package/src/components/block-toolbar/test/block-toolbar-icon.js +32 -9
  280. package/src/components/block-variation-transforms/index.js +0 -1
  281. package/src/components/child-layout-control/index.js +0 -2
  282. package/src/components/color-palette/test/__snapshots__/control.js.snap +11 -106
  283. package/src/components/colors-gradients/control.js +4 -4
  284. package/src/components/colors-gradients/style.scss +2 -2
  285. package/src/components/date-format-picker/index.js +0 -1
  286. package/src/components/dimensions-tool/aspect-ratio-tool.js +0 -1
  287. package/src/components/dimensions-tool/scale-tool.js +0 -1
  288. package/src/components/dimensions-tool/width-height-tool.js +0 -2
  289. package/src/components/font-appearance-control/index.js +6 -19
  290. package/src/components/font-family/README.md +0 -9
  291. package/src/components/font-family/index.js +6 -19
  292. package/src/components/font-family/stories/index.story.jsx +0 -1
  293. package/src/components/font-sizes/font-size-picker.js +0 -1
  294. package/src/components/global-styles/border-panel.js +0 -1
  295. package/src/components/global-styles/dimensions-panel.js +0 -3
  296. package/src/components/global-styles/typography-panel.js +0 -6
  297. package/src/components/height-control/index.js +0 -2
  298. package/src/components/html-element-control/index.js +0 -1
  299. package/src/components/iframe/content.scss +3 -3
  300. package/src/components/image-editor/index.js +22 -0
  301. package/src/components/image-editor/zoom-dropdown.js +0 -1
  302. package/src/components/image-size-control/index.js +0 -2
  303. package/src/components/inner-content/index.js +119 -0
  304. package/src/components/inner-content/test/index.js +81 -0
  305. package/src/components/inserter/hooks/use-block-types-state.js +10 -2
  306. package/src/components/inserter/media-tab/hooks.js +59 -9
  307. package/src/components/inserter/media-tab/media-list.js +2 -0
  308. package/src/components/inserter/media-tab/media-panel.js +256 -17
  309. package/src/components/inserter/media-tab/media-preview.js +34 -17
  310. package/src/components/inserter/media-tab/media-tab.js +20 -2
  311. package/src/components/inserter/media-tab/test/hooks.js +204 -0
  312. package/src/components/inserter/mobile-tab-navigation.js +6 -1
  313. package/src/components/inserter/no-results.js +2 -2
  314. package/src/components/inserter/preview-panel.js +1 -0
  315. package/src/components/inserter/style.scss +110 -1
  316. package/src/components/inserter-list-item/index.js +8 -2
  317. package/src/components/letter-spacing-control/README.md +0 -8
  318. package/src/components/letter-spacing-control/index.js +5 -23
  319. package/src/components/letter-spacing-control/stories/index.story.jsx +0 -12
  320. package/src/components/line-height-control/README.md +0 -8
  321. package/src/components/line-height-control/index.js +7 -16
  322. package/src/components/line-height-control/stories/index.story.jsx +0 -1
  323. package/src/components/line-height-control/test/index.js +1 -7
  324. package/src/components/link-picker/test/index.js +3 -1
  325. package/src/components/list-view/block-select-button.js +5 -1
  326. package/src/components/list-view/block.js +57 -20
  327. package/src/components/list-view/expander.js +5 -1
  328. package/src/components/list-view/style.scss +19 -0
  329. package/src/components/list-view/use-list-view-client-ids.js +2 -2
  330. package/src/components/observe-typing/index.js +9 -4
  331. package/src/components/preset-input-control/custom-value-controls.js +0 -2
  332. package/src/components/preset-input-control/index.js +0 -2
  333. package/src/components/resolution-tool/index.js +0 -1
  334. package/src/components/responsive-block-control/test/index.js +1 -5
  335. package/src/components/text-alignment-control/index.js +0 -1
  336. package/src/components/text-decoration-control/index.js +0 -1
  337. package/src/components/text-indent-control/index.js +7 -16
  338. package/src/components/text-transform-control/index.js +0 -1
  339. package/src/components/use-block-display-information/index.js +9 -13
  340. package/src/components/use-block-display-information/test/index.js +47 -9
  341. package/src/components/use-on-block-drop/index.js +4 -7
  342. package/src/components/writing-mode-control/index.js +0 -1
  343. package/src/hooks/block-hooks.scss +15 -0
  344. package/src/hooks/font-size.js +0 -1
  345. package/src/hooks/layout.js +5 -4
  346. package/src/hooks/position.js +44 -23
  347. package/src/hooks/states.js +6 -12
  348. package/src/hooks/test/cross-origin-isolation.js +0 -4
  349. package/src/hooks/test/layout.js +75 -1
  350. package/src/layouts/constrained.js +51 -28
  351. package/src/layouts/flex.js +0 -3
  352. package/src/layouts/grid.js +59 -7
  353. package/src/layouts/test/constrained.js +91 -0
  354. package/src/layouts/test/grid.js +71 -0
  355. package/src/private-apis.js +4 -0
  356. package/src/store/actions.js +1 -0
  357. package/src/store/private-keys.js +1 -0
  358. package/src/store/private-selectors.js +141 -4
  359. package/src/store/selectors.js +41 -0
  360. package/src/store/test/private-selectors.js +422 -0
  361. package/src/store/test/reducer.js +11 -11
  362. package/src/store/test/selectors.js +133 -0
  363. package/src/style.scss +1 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/layouts/constrained.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\t__experimentalInputControlPrefixWrapper as InputControlPrefixWrapper,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tIcon,\n\talignNone,\n\tstretchWide,\n\tjustifyLeft,\n\tjustifyCenter,\n\tjustifyRight,\n} from '@wordpress/icons';\nimport { getCSSRules } from '@wordpress/style-engine';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../components/use-settings';\nimport { appendSelectors, getBlockGapCSS, getAlignmentsInfo } from './utils';\nimport { getGapCSSValue } from '../hooks/gap';\nimport { BlockControls, JustifyContentControl } from '../components';\nimport { cleanEmptyObject, shouldSkipSerialization } from '../hooks/utils';\nimport { LAYOUT_DEFINITIONS } from './definitions';\n\nexport default {\n\tname: 'constrained',\n\tlabel: __( 'Constrained' ),\n\tinspectorControls: function DefaultLayoutInspectorControls( {\n\t\tlayout,\n\t\tonChange,\n\t\tlayoutBlockSupport = {},\n\t\tresetLayout = {},\n\t\tclientId,\n\t} ) {\n\t\tconst { wideSize, contentSize, justifyContent = 'center' } = layout;\n\t\tconst {\n\t\t\tallowJustification = true,\n\t\t\tallowCustomContentAndWideSize = true,\n\t\t} = layoutBlockSupport;\n\t\tconst onJustificationChange = ( value ) => {\n\t\t\tonChange( {\n\t\t\t\t...layout,\n\t\t\t\tjustifyContent: value,\n\t\t\t} );\n\t\t};\n\t\tconst justificationOptions = [\n\t\t\t{\n\t\t\t\tvalue: 'left',\n\t\t\t\ticon: justifyLeft,\n\t\t\t\tlabel: __( 'Justify items left' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'center',\n\t\t\t\ticon: justifyCenter,\n\t\t\t\tlabel: __( 'Justify items center' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'right',\n\t\t\t\ticon: justifyRight,\n\t\t\t\tlabel: __( 'Justify items right' ),\n\t\t\t},\n\t\t];\n\t\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\t\tconst units = useCustomUnits( {\n\t\t\tavailableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],\n\t\t} );\n\t\tconst hasLayoutValue = ( key, defaultValue ) =>\n\t\t\t( layout?.[ key ] ?? defaultValue ) !==\n\t\t\t( resetLayout?.[ key ] ?? defaultValue );\n\t\tconst resetContentSize = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tcontentSize: resetLayout?.contentSize,\n\t\t\t\t} )\n\t\t\t);\n\t\tconst resetWideSize = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\twideSize: resetLayout?.wideSize,\n\t\t\t\t} )\n\t\t\t);\n\t\tconst resetJustification = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tjustifyContent: resetLayout?.justifyContent,\n\t\t\t\t} )\n\t\t\t);\n\t\tconst hasContentSizeValue = () => hasLayoutValue( 'contentSize' );\n\t\tconst hasWideSizeValue = () => hasLayoutValue( 'wideSize' );\n\t\tconst hasJustificationValue = () =>\n\t\t\thasLayoutValue( 'justifyContent', 'center' );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ allowCustomContentAndWideSize && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Content width' ) }\n\t\t\t\t\t\t\thasValue={ hasContentSizeValue }\n\t\t\t\t\t\t\tonDeselect={ resetContentSize }\n\t\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Content width' ) }\n\t\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t\tvalue={ contentSize || wideSize || '' }\n\t\t\t\t\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\t\t\t\t\tnextWidth =\n\t\t\t\t\t\t\t\t\t\t0 > parseFloat( nextWidth )\n\t\t\t\t\t\t\t\t\t\t\t? '0'\n\t\t\t\t\t\t\t\t\t\t\t: nextWidth;\n\t\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\t\tcontentSize:\n\t\t\t\t\t\t\t\t\t\t\t\tnextWidth !== ''\n\t\t\t\t\t\t\t\t\t\t\t\t\t? nextWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\t\t\t<InputControlPrefixWrapper variant=\"icon\">\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ alignNone } />\n\t\t\t\t\t\t\t\t\t</InputControlPrefixWrapper>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Wide width' ) }\n\t\t\t\t\t\t\thasValue={ hasWideSizeValue }\n\t\t\t\t\t\t\tonDeselect={ resetWideSize }\n\t\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Wide width' ) }\n\t\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t\tvalue={ wideSize || contentSize || '' }\n\t\t\t\t\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\t\t\t\t\tnextWidth =\n\t\t\t\t\t\t\t\t\t\t0 > parseFloat( nextWidth )\n\t\t\t\t\t\t\t\t\t\t\t? '0'\n\t\t\t\t\t\t\t\t\t\t\t: nextWidth;\n\t\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\t\twideSize:\n\t\t\t\t\t\t\t\t\t\t\t\tnextWidth !== ''\n\t\t\t\t\t\t\t\t\t\t\t\t\t? nextWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\t\t\t<InputControlPrefixWrapper variant=\"icon\">\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ stretchWide } />\n\t\t\t\t\t\t\t\t\t</InputControlPrefixWrapper>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<p className=\"block-editor-hooks__layout-constrained-helptext\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Customize the width for all elements that are assigned to the center or wide columns.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ allowJustification && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Justification' ) }\n\t\t\t\t\t\thasValue={ hasJustificationValue }\n\t\t\t\t\t\tonDeselect={ resetJustification }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Justification' ) }\n\t\t\t\t\t\t\tvalue={ justifyContent }\n\t\t\t\t\t\t\tonChange={ onJustificationChange }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ justificationOptions.map(\n\t\t\t\t\t\t\t\t( { value, icon, label } ) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t},\n\ttoolBarControls: function DefaultLayoutToolbarControls( {\n\t\tlayout = {},\n\t\tonChange,\n\t\tlayoutBlockSupport,\n\t} ) {\n\t\tconst { allowJustification = true } = layoutBlockSupport;\n\n\t\tif ( ! allowJustification ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<BlockControls group=\"block\" __experimentalShareWithChildBlocks>\n\t\t\t\t<DefaultLayoutJustifyContentControl\n\t\t\t\t\tlayout={ layout }\n\t\t\t\t\tonChange={ onChange }\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\tviewportOverrides,\n\t\tstyle,\n\t\tblockName,\n\t\thasBlockGapSupport,\n\t\tlayoutDefinitions = LAYOUT_DEFINITIONS,\n\t} ) {\n\t\tconst hasViewportOverrides = viewportOverrides !== undefined;\n\t\tconst effectiveLayout = hasViewportOverrides\n\t\t\t? { ...layout, ...viewportOverrides }\n\t\t\t: layout;\n\t\tconst hasViewportOverride = ( key ) =>\n\t\t\tObject.hasOwn( viewportOverrides || {}, key );\n\t\tconst { contentSize, wideSize, justifyContent } = effectiveLayout;\n\t\tconst blockGapStyleValue = getGapCSSValue( style?.spacing?.blockGap );\n\t\tconst hasBlockGapOverride =\n\t\t\t! hasViewportOverrides ||\n\t\t\tObject.hasOwn( style?.spacing || {}, 'blockGap' );\n\t\tconst hasBlockSpacingOverride =\n\t\t\t! hasViewportOverrides ||\n\t\t\tObject.hasOwn( style?.spacing || {}, 'padding' );\n\n\t\t// If a block's block.json skips serialization for spacing or\n\t\t// spacing.blockGap, don't apply the user-defined value to the styles.\n\t\tlet blockGapValue = '';\n\t\tif ( ! shouldSkipSerialization( blockName, 'spacing', 'blockGap' ) ) {\n\t\t\t// If an object is provided only use the 'top' value for this kind of gap.\n\t\t\tif ( blockGapStyleValue?.top ) {\n\t\t\t\tblockGapValue = getGapCSSValue( blockGapStyleValue?.top );\n\t\t\t} else if ( typeof blockGapStyleValue === 'string' ) {\n\t\t\t\tblockGapValue = getGapCSSValue( blockGapStyleValue );\n\t\t\t}\n\t\t}\n\n\t\tconst marginLeft =\n\t\t\tjustifyContent === 'left' ? '0 !important' : 'auto !important';\n\t\tconst marginRight =\n\t\t\tjustifyContent === 'right' ? '0 !important' : 'auto !important';\n\n\t\tconst hasJustificationOverride =\n\t\t\thasViewportOverrides && hasViewportOverride( 'justifyContent' );\n\t\tconst shouldOutputConstrainedSizes =\n\t\t\t! hasViewportOverrides ||\n\t\t\thasViewportOverride( 'contentSize' ) ||\n\t\t\thasViewportOverride( 'wideSize' );\n\t\tconst constrainedSizeDeclarations = [\n\t\t\t`max-width: ${ contentSize ?? wideSize }`,\n\t\t];\n\t\tif ( ! hasViewportOverrides || hasJustificationOverride ) {\n\t\t\tconstrainedSizeDeclarations.push(\n\t\t\t\t`margin-left: ${ marginLeft }`,\n\t\t\t\t`margin-right: ${ marginRight }`\n\t\t\t);\n\t\t}\n\t\tlet output =\n\t\t\tshouldOutputConstrainedSizes && ( !! contentSize || !! wideSize )\n\t\t\t\t? `\n\t\t\t\t\t\t${ appendSelectors(\n\t\t\t\t\t\t\tselector,\n\t\t\t\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t\t\t\t) } {\n\t\t\t\t\t\t${ constrainedSizeDeclarations.join( '; ' ) };\n\t\t\t\t\t}\n\t\t\t\t\t${ appendSelectors( selector, '> .alignwide' ) } {\n\t\t\t\t\t\tmax-width: ${ wideSize ?? contentSize };\n\t\t\t\t\t}\n\t\t\t\t\t${ appendSelectors( selector, '> .alignfull' ) } {\n\t\t\t\t\t\tmax-width: none;\n\t\t\t\t\t}\n\t\t\t\t\t`\n\t\t\t\t: '';\n\n\t\tif ( hasJustificationOverride && ! shouldOutputConstrainedSizes ) {\n\t\t\toutput += `${ appendSelectors(\n\t\t\t\tselector,\n\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t) }\n\t\t\t\t{ margin-left: ${ marginLeft }; margin-right: ${ marginRight }; }`;\n\t\t} else if ( ! hasViewportOverrides ) {\n\t\t\tif ( justifyContent === 'left' ) {\n\t\t\t\toutput += `${ appendSelectors(\n\t\t\t\t\tselector,\n\t\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t\t) }\n\t\t\t{ margin-left: ${ marginLeft }; }`;\n\t\t\t} else if ( justifyContent === 'right' ) {\n\t\t\t\toutput += `${ appendSelectors(\n\t\t\t\t\tselector,\n\t\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t\t) }\n\t\t\t{ margin-right: ${ marginRight }; }`;\n\t\t\t}\n\t\t}\n\n\t\t// If there is custom padding, add negative margins for alignfull blocks.\n\t\tif ( hasBlockSpacingOverride && style?.spacing?.padding ) {\n\t\t\t// The style object might be storing a preset so we need to make sure we get a usable value.\n\t\t\tconst paddingValues = getCSSRules( style );\n\t\t\tpaddingValues.forEach( ( rule ) => {\n\t\t\t\tif ( rule.key === 'paddingRight' ) {\n\t\t\t\t\t// Add unit if 0, to avoid calc(0 * -1) which is invalid.\n\t\t\t\t\tconst paddingRightValue =\n\t\t\t\t\t\trule.value === '0' ? '0px' : rule.value;\n\n\t\t\t\t\toutput += `\n\t\t\t\t\t${ appendSelectors( selector, '> .alignfull' ) } {\n\t\t\t\t\t\tmargin-right: calc(${ paddingRightValue } * -1);\n\t\t\t\t\t}\n\t\t\t\t\t`;\n\t\t\t\t} else if ( rule.key === 'paddingLeft' ) {\n\t\t\t\t\t// Add unit if 0, to avoid calc(0 * -1) which is invalid.\n\t\t\t\t\tconst paddingLeftValue =\n\t\t\t\t\t\trule.value === '0' ? '0px' : rule.value;\n\n\t\t\t\t\toutput += `\n\t\t\t\t\t${ appendSelectors( selector, '> .alignfull' ) } {\n\t\t\t\t\t\tmargin-left: calc(${ paddingLeftValue } * -1);\n\t\t\t\t\t}\n\t\t\t\t\t`;\n\t\t\t\t}\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 && hasBlockGapOverride && blockGapValue ) {\n\t\t\toutput += getBlockGapCSS(\n\t\t\t\tselector,\n\t\t\t\tlayoutDefinitions,\n\t\t\t\t'constrained',\n\t\t\t\tblockGapValue\n\t\t\t);\n\t\t}\n\t\treturn output;\n\t},\n\tgetOrientation() {\n\t\treturn 'vertical';\n\t},\n\tgetAlignments( layout ) {\n\t\tconst alignmentInfo = getAlignmentsInfo( layout );\n\t\tif ( layout.alignments !== undefined ) {\n\t\t\tif ( ! layout.alignments.includes( 'none' ) ) {\n\t\t\t\tlayout.alignments.unshift( 'none' );\n\t\t\t}\n\t\t\treturn layout.alignments.map( ( alignment ) => ( {\n\t\t\t\tname: alignment,\n\t\t\t\tinfo: alignmentInfo[ alignment ],\n\t\t\t} ) );\n\t\t}\n\t\tconst { contentSize, wideSize } = layout;\n\n\t\tconst alignments = [\n\t\t\t{ name: 'left' },\n\t\t\t{ name: 'center' },\n\t\t\t{ name: 'right' },\n\t\t];\n\n\t\tif ( contentSize ) {\n\t\t\talignments.unshift( { name: 'full' } );\n\t\t}\n\n\t\tif ( wideSize ) {\n\t\t\talignments.unshift( { name: 'wide', info: alignmentInfo.wide } );\n\t\t}\n\n\t\talignments.unshift( { name: 'none', info: alignmentInfo.none } );\n\n\t\treturn alignments;\n\t},\n};\n\nconst POPOVER_PROPS = {\n\tplacement: 'bottom-start',\n};\n\nfunction DefaultLayoutJustifyContentControl( { layout, onChange } ) {\n\tconst { justifyContent = 'center' } = 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\n\treturn (\n\t\t<JustifyContentControl\n\t\t\tallowedControls={ allowedControls }\n\t\t\tvalue={ justifyContent }\n\t\t\tonChange={ onJustificationChange }\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t/>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\t__experimentalInputControlPrefixWrapper as InputControlPrefixWrapper,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tIcon,\n\talignNone,\n\tstretchWide,\n\tjustifyLeft,\n\tjustifyCenter,\n\tjustifyRight,\n} from '@wordpress/icons';\nimport { getCSSRules } from '@wordpress/style-engine';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../components/use-settings';\nimport { appendSelectors, getBlockGapCSS, getAlignmentsInfo } from './utils';\nimport { getGapCSSValue } from '../hooks/gap';\nimport { BlockControls, JustifyContentControl } from '../components';\nimport { cleanEmptyObject, shouldSkipSerialization } from '../hooks/utils';\nimport { LAYOUT_DEFINITIONS } from './definitions';\n\nconst GLOBAL_CONTENT_SIZE = 'var(--wp--style--global--content-size, none)';\nconst GLOBAL_WIDE_SIZE = 'var(--wp--style--global--wide-size, none)';\n\nexport default {\n\tname: 'constrained',\n\tlabel: __( 'Constrained' ),\n\tinspectorControls: function DefaultLayoutInspectorControls( {\n\t\tlayout,\n\t\tonChange,\n\t\tlayoutBlockSupport = {},\n\t\tresetLayout = {},\n\t\tclientId,\n\t} ) {\n\t\tconst { wideSize, contentSize, justifyContent = 'center' } = layout;\n\t\tconst {\n\t\t\tallowJustification = true,\n\t\t\tallowCustomContentAndWideSize = true,\n\t\t} = layoutBlockSupport;\n\t\tconst onJustificationChange = ( value ) => {\n\t\t\tonChange( {\n\t\t\t\t...layout,\n\t\t\t\tjustifyContent: value,\n\t\t\t} );\n\t\t};\n\t\tconst justificationOptions = [\n\t\t\t{\n\t\t\t\tvalue: 'left',\n\t\t\t\ticon: justifyLeft,\n\t\t\t\tlabel: __( 'Justify items left' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'center',\n\t\t\t\ticon: justifyCenter,\n\t\t\t\tlabel: __( 'Justify items center' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'right',\n\t\t\t\ticon: justifyRight,\n\t\t\t\tlabel: __( 'Justify items right' ),\n\t\t\t},\n\t\t];\n\t\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\t\tconst units = useCustomUnits( {\n\t\t\tavailableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],\n\t\t} );\n\t\tconst hasLayoutValue = ( key, defaultValue ) =>\n\t\t\t( layout?.[ key ] ?? defaultValue ) !==\n\t\t\t( resetLayout?.[ key ] ?? defaultValue );\n\t\tconst resetContentSize = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tcontentSize: resetLayout?.contentSize,\n\t\t\t\t} )\n\t\t\t);\n\t\tconst resetWideSize = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\twideSize: resetLayout?.wideSize,\n\t\t\t\t} )\n\t\t\t);\n\t\tconst resetJustification = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tjustifyContent: resetLayout?.justifyContent,\n\t\t\t\t} )\n\t\t\t);\n\t\tconst hasContentSizeValue = () => hasLayoutValue( 'contentSize' );\n\t\tconst hasWideSizeValue = () => hasLayoutValue( 'wideSize' );\n\t\tconst hasJustificationValue = () =>\n\t\t\thasLayoutValue( 'justifyContent', 'center' );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ allowCustomContentAndWideSize && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Content width' ) }\n\t\t\t\t\t\t\thasValue={ hasContentSizeValue }\n\t\t\t\t\t\t\tonDeselect={ resetContentSize }\n\t\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Content width' ) }\n\t\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\tcontentSize === null\n\t\t\t\t\t\t\t\t\t\t? ''\n\t\t\t\t\t\t\t\t\t\t: contentSize || wideSize || ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\t\t\t\t\tnextWidth =\n\t\t\t\t\t\t\t\t\t\t0 > parseFloat( nextWidth )\n\t\t\t\t\t\t\t\t\t\t\t? '0'\n\t\t\t\t\t\t\t\t\t\t\t: nextWidth;\n\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\tcontentSize:\n\t\t\t\t\t\t\t\t\t\t\tnextWidth !== ''\n\t\t\t\t\t\t\t\t\t\t\t\t? nextWidth\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\t\t\t<InputControlPrefixWrapper variant=\"icon\">\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ alignNone } />\n\t\t\t\t\t\t\t\t\t</InputControlPrefixWrapper>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Wide width' ) }\n\t\t\t\t\t\t\thasValue={ hasWideSizeValue }\n\t\t\t\t\t\t\tonDeselect={ resetWideSize }\n\t\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Wide width' ) }\n\t\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\twideSize === null\n\t\t\t\t\t\t\t\t\t\t? ''\n\t\t\t\t\t\t\t\t\t\t: wideSize || contentSize || ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\t\t\t\t\tnextWidth =\n\t\t\t\t\t\t\t\t\t\t0 > parseFloat( nextWidth )\n\t\t\t\t\t\t\t\t\t\t\t? '0'\n\t\t\t\t\t\t\t\t\t\t\t: nextWidth;\n\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\twideSize:\n\t\t\t\t\t\t\t\t\t\t\tnextWidth !== ''\n\t\t\t\t\t\t\t\t\t\t\t\t? nextWidth\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\t\t\t<InputControlPrefixWrapper variant=\"icon\">\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ stretchWide } />\n\t\t\t\t\t\t\t\t\t</InputControlPrefixWrapper>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<p className=\"block-editor-hooks__layout-constrained-helptext\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Customize the width for all elements that are assigned to the center or wide columns.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ allowJustification && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Justification' ) }\n\t\t\t\t\t\thasValue={ hasJustificationValue }\n\t\t\t\t\t\tonDeselect={ resetJustification }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\tlabel={ __( 'Justification' ) }\n\t\t\t\t\t\t\tvalue={ justifyContent }\n\t\t\t\t\t\t\tonChange={ onJustificationChange }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ justificationOptions.map(\n\t\t\t\t\t\t\t\t( { value, icon, label } ) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t},\n\ttoolBarControls: function DefaultLayoutToolbarControls( {\n\t\tlayout = {},\n\t\tonChange,\n\t\tlayoutBlockSupport,\n\t} ) {\n\t\tconst { allowJustification = true } = layoutBlockSupport;\n\n\t\tif ( ! allowJustification ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<BlockControls group=\"block\" __experimentalShareWithChildBlocks>\n\t\t\t\t<DefaultLayoutJustifyContentControl\n\t\t\t\t\tlayout={ layout }\n\t\t\t\t\tonChange={ onChange }\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\tviewportOverrides,\n\t\tstyle,\n\t\tblockName,\n\t\thasBlockGapSupport,\n\t\tlayoutDefinitions = LAYOUT_DEFINITIONS,\n\t} ) {\n\t\tconst hasViewportOverrides = viewportOverrides !== undefined;\n\t\tconst effectiveLayout = hasViewportOverrides\n\t\t\t? { ...layout, ...viewportOverrides }\n\t\t\t: layout;\n\t\tconst hasViewportOverride = ( key ) =>\n\t\t\tObject.hasOwn( viewportOverrides || {}, key );\n\t\tconst { contentSize, wideSize, justifyContent } = effectiveLayout;\n\t\tconst blockGapStyleValue = getGapCSSValue( style?.spacing?.blockGap );\n\t\tconst hasBlockGapOverride =\n\t\t\t! hasViewportOverrides ||\n\t\t\tObject.hasOwn( style?.spacing || {}, 'blockGap' );\n\t\tconst hasBlockSpacingOverride =\n\t\t\t! hasViewportOverrides ||\n\t\t\tObject.hasOwn( style?.spacing || {}, 'padding' );\n\n\t\t// If a block's block.json skips serialization for spacing or\n\t\t// spacing.blockGap, don't apply the user-defined value to the styles.\n\t\tlet blockGapValue = '';\n\t\tif ( ! shouldSkipSerialization( blockName, 'spacing', 'blockGap' ) ) {\n\t\t\t// If an object is provided only use the 'top' value for this kind of gap.\n\t\t\tif ( blockGapStyleValue?.top ) {\n\t\t\t\tblockGapValue = getGapCSSValue( blockGapStyleValue?.top );\n\t\t\t} else if ( typeof blockGapStyleValue === 'string' ) {\n\t\t\t\tblockGapValue = getGapCSSValue( blockGapStyleValue );\n\t\t\t}\n\t\t}\n\n\t\tconst marginLeft =\n\t\t\tjustifyContent === 'left' ? '0 !important' : 'auto !important';\n\t\tconst marginRight =\n\t\t\tjustifyContent === 'right' ? '0 !important' : 'auto !important';\n\n\t\tconst hasJustificationOverride =\n\t\t\thasViewportOverrides && hasViewportOverride( 'justifyContent' );\n\t\tconst hasContentSizeOverride =\n\t\t\thasViewportOverrides && hasViewportOverride( 'contentSize' );\n\t\tconst hasWideSizeOverride =\n\t\t\thasViewportOverrides && hasViewportOverride( 'wideSize' );\n\t\tconst shouldOutputConstrainedSizes =\n\t\t\t! hasViewportOverrides ||\n\t\t\thasContentSizeOverride ||\n\t\t\thasWideSizeOverride;\n\t\tconst isResettingConstrainedSizes =\n\t\t\thasViewportOverrides &&\n\t\t\t( ( hasContentSizeOverride && ! contentSize ) ||\n\t\t\t\t( hasWideSizeOverride && ! wideSize ) );\n\t\tconst contentMaxWidth =\n\t\t\tcontentSize ||\n\t\t\t( wideSize && ! hasContentSizeOverride\n\t\t\t\t? wideSize\n\t\t\t\t: GLOBAL_CONTENT_SIZE );\n\t\tconst wideMaxWidth =\n\t\t\twideSize ||\n\t\t\t( contentSize && ! hasWideSizeOverride\n\t\t\t\t? contentSize\n\t\t\t\t: GLOBAL_WIDE_SIZE );\n\t\tconst constrainedSizeDeclarations = [\n\t\t\t`max-width: ${ contentMaxWidth }`,\n\t\t];\n\t\tif ( ! hasViewportOverrides || hasJustificationOverride ) {\n\t\t\tconstrainedSizeDeclarations.push(\n\t\t\t\t`margin-left: ${ marginLeft }`,\n\t\t\t\t`margin-right: ${ marginRight }`\n\t\t\t);\n\t\t}\n\t\tlet output =\n\t\t\tshouldOutputConstrainedSizes &&\n\t\t\t( !! contentSize || !! wideSize || isResettingConstrainedSizes )\n\t\t\t\t? `\n\t\t\t\t\t\t${ appendSelectors(\n\t\t\t\t\t\t\tselector,\n\t\t\t\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t\t\t\t) } {\n\t\t\t\t\t\t${ constrainedSizeDeclarations.join( '; ' ) };\n\t\t\t\t\t}\n\t\t\t\t\t${ appendSelectors( selector, '> .alignwide' ) } {\n\t\t\t\t\t\tmax-width: ${ wideMaxWidth };\n\t\t\t\t\t}\n\t\t\t\t\t${ appendSelectors( selector, '> .alignfull' ) } {\n\t\t\t\t\t\tmax-width: none;\n\t\t\t\t\t}\n\t\t\t\t\t`\n\t\t\t\t: '';\n\n\t\tif ( hasJustificationOverride && ! shouldOutputConstrainedSizes ) {\n\t\t\toutput += `${ appendSelectors(\n\t\t\t\tselector,\n\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t) }\n\t\t\t\t{ margin-left: ${ marginLeft }; margin-right: ${ marginRight }; }`;\n\t\t} else if ( ! hasViewportOverrides ) {\n\t\t\tif ( justifyContent === 'left' ) {\n\t\t\t\toutput += `${ appendSelectors(\n\t\t\t\t\tselector,\n\t\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t\t) }\n\t\t\t{ margin-left: ${ marginLeft }; }`;\n\t\t\t} else if ( justifyContent === 'right' ) {\n\t\t\t\toutput += `${ appendSelectors(\n\t\t\t\t\tselector,\n\t\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t\t) }\n\t\t\t{ margin-right: ${ marginRight }; }`;\n\t\t\t}\n\t\t}\n\n\t\t// If there is custom padding, add negative margins for alignfull blocks.\n\t\tif ( hasBlockSpacingOverride && style?.spacing?.padding ) {\n\t\t\t// The style object might be storing a preset so we need to make sure we get a usable value.\n\t\t\tconst paddingValues = getCSSRules( style );\n\t\t\tpaddingValues.forEach( ( rule ) => {\n\t\t\t\tif ( rule.key === 'paddingRight' ) {\n\t\t\t\t\t// Add unit if 0, to avoid calc(0 * -1) which is invalid.\n\t\t\t\t\tconst paddingRightValue =\n\t\t\t\t\t\trule.value === '0' ? '0px' : rule.value;\n\n\t\t\t\t\toutput += `\n\t\t\t\t\t${ appendSelectors( selector, '> .alignfull' ) } {\n\t\t\t\t\t\tmargin-right: calc(${ paddingRightValue } * -1);\n\t\t\t\t\t}\n\t\t\t\t\t`;\n\t\t\t\t} else if ( rule.key === 'paddingLeft' ) {\n\t\t\t\t\t// Add unit if 0, to avoid calc(0 * -1) which is invalid.\n\t\t\t\t\tconst paddingLeftValue =\n\t\t\t\t\t\trule.value === '0' ? '0px' : rule.value;\n\n\t\t\t\t\toutput += `\n\t\t\t\t\t${ appendSelectors( selector, '> .alignfull' ) } {\n\t\t\t\t\t\tmargin-left: calc(${ paddingLeftValue } * -1);\n\t\t\t\t\t}\n\t\t\t\t\t`;\n\t\t\t\t}\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 && hasBlockGapOverride && blockGapValue ) {\n\t\t\toutput += getBlockGapCSS(\n\t\t\t\tselector,\n\t\t\t\tlayoutDefinitions,\n\t\t\t\t'constrained',\n\t\t\t\tblockGapValue\n\t\t\t);\n\t\t}\n\t\treturn output;\n\t},\n\tgetOrientation() {\n\t\treturn 'vertical';\n\t},\n\tgetAlignments( layout ) {\n\t\tconst alignmentInfo = getAlignmentsInfo( layout );\n\t\tif ( layout.alignments !== undefined ) {\n\t\t\tif ( ! layout.alignments.includes( 'none' ) ) {\n\t\t\t\tlayout.alignments.unshift( 'none' );\n\t\t\t}\n\t\t\treturn layout.alignments.map( ( alignment ) => ( {\n\t\t\t\tname: alignment,\n\t\t\t\tinfo: alignmentInfo[ alignment ],\n\t\t\t} ) );\n\t\t}\n\t\tconst { contentSize, wideSize } = layout;\n\n\t\tconst alignments = [\n\t\t\t{ name: 'left' },\n\t\t\t{ name: 'center' },\n\t\t\t{ name: 'right' },\n\t\t];\n\n\t\tif ( contentSize ) {\n\t\t\talignments.unshift( { name: 'full' } );\n\t\t}\n\n\t\tif ( wideSize ) {\n\t\t\talignments.unshift( { name: 'wide', info: alignmentInfo.wide } );\n\t\t}\n\n\t\talignments.unshift( { name: 'none', info: alignmentInfo.none } );\n\n\t\treturn alignments;\n\t},\n};\n\nconst POPOVER_PROPS = {\n\tplacement: 'bottom-start',\n};\n\nfunction DefaultLayoutJustifyContentControl( { layout, onChange } ) {\n\tconst { justifyContent = 'center' } = 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\n\treturn (\n\t\t<JustifyContentControl\n\t\t\tallowedControls={ allowedControls }\n\t\t\tvalue={ justifyContent }\n\t\t\tonChange={ onJustificationChange }\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t/>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_components", "import_utils", "useCustomUnits", "ToolsPanelItem", "UnitControl", "InputControlPrefixWrapper", "ToggleGroupControl", "ToggleGroupControlOptionIcon"]
7
7
  }
@@ -359,7 +359,6 @@ function FlexLayoutVerticalAlignmentControl({
359
359
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
360
360
  import_components.__experimentalToggleGroupControl,
361
361
  {
362
- __next40pxDefaultSize: true,
363
362
  label: (0, import_i18n.__)("Alignment"),
364
363
  onChange: onVerticalAlignmentChange,
365
364
  value: verticalAlignment,
@@ -444,7 +443,6 @@ function FlexLayoutJustifyContentControl({
444
443
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
445
444
  import_components.__experimentalToggleGroupControl,
446
445
  {
447
- __next40pxDefaultSize: true,
448
446
  label: (0, import_i18n.__)("Justification"),
449
447
  value: justifyContent,
450
448
  onChange: onJustificationChange,
@@ -488,7 +486,6 @@ function OrientationControl({ layout, onChange }) {
488
486
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
489
487
  import_components.__experimentalToggleGroupControl,
490
488
  {
491
- __next40pxDefaultSize: true,
492
489
  className: "block-editor-hooks__flex-layout-orientation-controls",
493
490
  label: (0, import_i18n.__)("Orientation"),
494
491
  value: orientation,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/layouts/flex.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tjustifyLeft,\n\tjustifyCenter,\n\tjustifyRight,\n\tjustifySpaceBetween,\n\tjustifyStretch,\n\tjustifyTop,\n\tjustifyCenterVertical,\n\tjustifyBottom,\n\tjustifyStretchVertical,\n\tjustifySpaceBetweenVertical,\n\tarrowRight,\n\tarrowDown,\n} from '@wordpress/icons';\nimport {\n\tFlex,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { appendSelectors, getBlockGapCSS } from './utils';\nimport { getGapCSSValue, getGapBoxControlValueFromStyle } from '../hooks/gap';\nimport { getSpacingPresetCssVar } from '../components/spacing-sizes-control/utils';\nimport {\n\tBlockControls,\n\tJustifyContentControl,\n\tBlockVerticalAlignmentControl,\n} from '../components';\nimport { cleanEmptyObject, 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 defaultAlignments = {\n\thorizontal: 'center',\n\tvertical: 'top',\n};\n\nconst verticalAlignmentOptions = {\n\ttop: {\n\t\ticon: justifyTop,\n\t\tlabel: _x( 'Align top', 'Block vertical alignment setting' ),\n\t},\n\tcenter: {\n\t\ticon: justifyCenterVertical,\n\t\tlabel: _x( 'Align middle', 'Block vertical alignment setting' ),\n\t},\n\tbottom: {\n\t\ticon: justifyBottom,\n\t\tlabel: _x( 'Align bottom', 'Block vertical alignment setting' ),\n\t},\n\tstretch: {\n\t\ticon: justifyStretchVertical,\n\t\tlabel: _x( 'Stretch to fill', 'Block vertical alignment setting' ),\n\t},\n\t'space-between': {\n\t\ticon: justifySpaceBetweenVertical,\n\t\tlabel: _x( 'Space between', 'Block vertical alignment setting' ),\n\t},\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\tresetLayout = {},\n\t\tclientId,\n\t} ) {\n\t\tconst {\n\t\t\tallowOrientation = true,\n\t\t\tallowJustification = true,\n\t\t\tallowVerticalAlignment = true,\n\t\t\tallowWrap = true,\n\t\t} = layoutBlockSupport;\n\t\tconst hasLayoutValue = ( key, defaultValue ) =>\n\t\t\t( layout?.[ key ] ?? defaultValue ) !==\n\t\t\t( resetLayout?.[ key ] ?? defaultValue );\n\t\tconst hasJustificationValue = () =>\n\t\t\thasLayoutValue( 'justifyContent', 'left' );\n\t\tconst hasVerticalAlignmentValue = () =>\n\t\t\thasLayoutValue(\n\t\t\t\t'verticalAlignment',\n\t\t\t\tgetDefaultVerticalAlignment( layout )\n\t\t\t);\n\t\tconst hasOrientationValue = () =>\n\t\t\thasLayoutValue( 'orientation', 'horizontal' );\n\t\tconst hasWrapValue = () => hasLayoutValue( 'flexWrap', 'wrap' );\n\t\tconst resetJustification = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tjustifyContent: resetLayout?.justifyContent,\n\t\t\t\t} )\n\t\t\t);\n\t\tconst resetVerticalAlignment = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tverticalAlignment: getCompatibleVerticalAlignment(\n\t\t\t\t\t\tresetLayout?.verticalAlignment,\n\t\t\t\t\t\tlayout?.orientation\n\t\t\t\t\t),\n\t\t\t\t} )\n\t\t\t);\n\t\tconst resetOrientation = () => {\n\t\t\tconst { verticalAlignment, justifyContent } = layout;\n\t\t\tconst nextOrientation = resetLayout?.orientation;\n\t\t\tconst isHorizontal =\n\t\t\t\t! nextOrientation || nextOrientation === 'horizontal';\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\torientation: nextOrientation,\n\t\t\t\t\tverticalAlignment:\n\t\t\t\t\t\tresetLayout?.verticalAlignment ??\n\t\t\t\t\t\t( isHorizontal && verticalAlignment === 'space-between'\n\t\t\t\t\t\t\t? 'center'\n\t\t\t\t\t\t\t: verticalAlignment ),\n\t\t\t\t\tjustifyContent:\n\t\t\t\t\t\tresetLayout?.justifyContent ??\n\t\t\t\t\t\t( isHorizontal && justifyContent === 'stretch'\n\t\t\t\t\t\t\t? 'left'\n\t\t\t\t\t\t\t: justifyContent ),\n\t\t\t\t} )\n\t\t\t);\n\t\t};\n\t\tconst resetWrap = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tflexWrap: resetLayout?.flexWrap,\n\t\t\t\t} )\n\t\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ ( allowJustification || allowOrientation ) && (\n\t\t\t\t\t<Flex\n\t\t\t\t\t\talign=\"flex-start\"\n\t\t\t\t\t\tclassName=\"block-editor-hooks__flex-layout-controls\"\n\t\t\t\t\t\tgap={ 4 }\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ allowJustification && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Justification' ) }\n\t\t\t\t\t\t\t\thasValue={ hasJustificationValue }\n\t\t\t\t\t\t\t\tonDeselect={ resetJustification }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<FlexLayoutJustifyContentControl\n\t\t\t\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ allowOrientation && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Orientation' ) }\n\t\t\t\t\t\t\t\thasValue={ hasOrientationValue }\n\t\t\t\t\t\t\t\tonDeselect={ resetOrientation }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<OrientationControl\n\t\t\t\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t) }\n\t\t\t\t{ allowVerticalAlignment && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Alignment' ) }\n\t\t\t\t\t\thasValue={ hasVerticalAlignmentValue }\n\t\t\t\t\t\tonDeselect={ resetVerticalAlignment }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexLayoutVerticalAlignmentControl\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</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ allowWrap && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Wrapping' ) }\n\t\t\t\t\t\thasValue={ hasWrapValue }\n\t\t\t\t\t\tonDeselect={ resetWrap }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexWrapControl\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</ToolsPanelItem>\n\t\t\t\t) }\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\tconst { allowVerticalAlignment = true, allowJustification = true } =\n\t\t\tlayoutBlockSupport;\n\n\t\tif ( ! allowJustification && ! allowVerticalAlignment ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<BlockControls group=\"block\" __experimentalShareWithChildBlocks>\n\t\t\t\t{ allowJustification && (\n\t\t\t\t\t<FlexLayoutJustifyContentControl\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\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\tviewportOverrides,\n\t\tstyle,\n\t\tblockName,\n\t\thasBlockGapSupport,\n\t\tglobalBlockGapValue,\n\t\tlayoutDefinitions = LAYOUT_DEFINITIONS,\n\t} ) {\n\t\tconst hasViewportOverrides = viewportOverrides !== undefined;\n\t\tconst effectiveLayout = hasViewportOverrides\n\t\t\t? { ...layout, ...viewportOverrides }\n\t\t\t: layout;\n\t\tconst hasViewportOverride = ( key ) =>\n\t\t\tObject.hasOwn( viewportOverrides || {}, key );\n\t\tconst { orientation = 'horizontal' } = effectiveLayout;\n\n\t\t// Determine the fallback gap value using global styles (theme.json),\n\t\t// falling back to '0.5em' for backwards compatibility.\n\t\tlet fallbackGapValue = '0.5em';\n\t\tif ( globalBlockGapValue ) {\n\t\t\tconst gapBox =\n\t\t\t\tgetGapBoxControlValueFromStyle( globalBlockGapValue );\n\t\t\tfallbackGapValue =\n\t\t\t\tgetSpacingPresetCssVar( gapBox?.left ) ||\n\t\t\t\tgetSpacingPresetCssVar( gapBox?.top ) ||\n\t\t\t\t'0.5em';\n\t\t}\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, fallbackGapValue )\n\t\t\t\t: undefined;\n\t\tconst hasBlockGapOverride =\n\t\t\t! hasViewportOverrides ||\n\t\t\tObject.hasOwn( style?.spacing || {}, 'blockGap' );\n\t\tconst justifyContent =\n\t\t\tjustifyContentMap[ effectiveLayout.justifyContent ];\n\t\tconst flexWrap = flexWrapOptions.includes( effectiveLayout.flexWrap )\n\t\t\t? effectiveLayout.flexWrap\n\t\t\t: 'wrap';\n\t\tconst verticalAlignment =\n\t\t\tverticalAlignmentMap[ effectiveLayout.verticalAlignment ];\n\t\tconst alignItems =\n\t\t\talignItemsMap[ effectiveLayout.justifyContent ] ||\n\t\t\talignItemsMap.left;\n\n\t\tlet output = '';\n\t\tconst rules = [];\n\n\t\tconst shouldOutputFlexWrap =\n\t\t\t! hasViewportOverrides || hasViewportOverride( 'flexWrap' );\n\t\tconst shouldOutputFlexOrientation =\n\t\t\t! hasViewportOverrides || hasViewportOverride( 'orientation' );\n\t\tconst shouldOutputFlexJustification =\n\t\t\t! hasViewportOverrides ||\n\t\t\thasViewportOverride( 'justifyContent' ) ||\n\t\t\thasViewportOverride( 'orientation' );\n\t\tconst shouldOutputFlexAlignment =\n\t\t\t! hasViewportOverrides ||\n\t\t\thasViewportOverride( 'verticalAlignment' ) ||\n\t\t\thasViewportOverride( 'orientation' );\n\n\t\tif ( shouldOutputFlexWrap && flexWrap && flexWrap !== 'wrap' ) {\n\t\t\trules.push( `flex-wrap: ${ flexWrap }` );\n\t\t}\n\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\tif ( shouldOutputFlexAlignment && verticalAlignment ) {\n\t\t\t\trules.push( `align-items: ${ verticalAlignment }` );\n\t\t\t}\n\t\t\tif ( shouldOutputFlexJustification && justifyContent ) {\n\t\t\t\trules.push( `justify-content: ${ justifyContent }` );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( shouldOutputFlexAlignment && verticalAlignment ) {\n\t\t\t\trules.push( `justify-content: ${ verticalAlignment }` );\n\t\t\t}\n\t\t\tif ( shouldOutputFlexOrientation ) {\n\t\t\t\trules.push( 'flex-direction: column' );\n\t\t\t}\n\t\t\tif ( shouldOutputFlexJustification ) {\n\t\t\t\trules.push( `align-items: ${ alignItems }` );\n\t\t\t}\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 && hasBlockGapOverride && 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 getDefaultVerticalAlignment( { orientation = 'horizontal' } = {} ) {\n\treturn orientation === 'horizontal'\n\t\t? defaultAlignments.horizontal\n\t\t: defaultAlignments.vertical;\n}\n\nfunction getCompatibleVerticalAlignment( verticalAlignment, orientation ) {\n\tif (\n\t\t( orientation === 'horizontal' &&\n\t\t\tverticalAlignment === 'space-between' ) ||\n\t\t( orientation === 'vertical' && verticalAlignment === 'stretch' )\n\t) {\n\t\treturn undefined;\n\t}\n\n\treturn verticalAlignment;\n}\n\nfunction getVerticalAlignmentControls( orientation ) {\n\treturn orientation === 'horizontal'\n\t\t? [ 'top', 'center', 'bottom', 'stretch' ]\n\t\t: [ 'top', 'center', 'bottom', 'space-between' ];\n}\n\nfunction FlexLayoutVerticalAlignmentControl( {\n\tlayout,\n\tonChange,\n\tisToolbar = false,\n} ) {\n\tconst { orientation = 'horizontal' } = layout;\n\n\tconst { verticalAlignment = getDefaultVerticalAlignment( layout ) } =\n\t\tlayout;\n\n\tconst onVerticalAlignmentChange = ( value ) => {\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tverticalAlignment: value,\n\t\t} );\n\t};\n\tconst controls = getVerticalAlignmentControls( orientation );\n\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={ controls }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Alignment' ) }\n\t\t\tonChange={ onVerticalAlignmentChange }\n\t\t\tvalue={ verticalAlignment }\n\t\t\tclassName=\"block-editor-hooks__flex-layout-alignment-controls\"\n\t\t>\n\t\t\t{ controls.map( ( control ) => {\n\t\t\t\tconst { icon, label } = verticalAlignmentOptions[ control ];\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ control }\n\t\t\t\t\t\tvalue={ control }\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\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\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\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\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"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tjustifyLeft,\n\tjustifyCenter,\n\tjustifyRight,\n\tjustifySpaceBetween,\n\tjustifyStretch,\n\tjustifyTop,\n\tjustifyCenterVertical,\n\tjustifyBottom,\n\tjustifyStretchVertical,\n\tjustifySpaceBetweenVertical,\n\tarrowRight,\n\tarrowDown,\n} from '@wordpress/icons';\nimport {\n\tFlex,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { appendSelectors, getBlockGapCSS } from './utils';\nimport { getGapCSSValue, getGapBoxControlValueFromStyle } from '../hooks/gap';\nimport { getSpacingPresetCssVar } from '../components/spacing-sizes-control/utils';\nimport {\n\tBlockControls,\n\tJustifyContentControl,\n\tBlockVerticalAlignmentControl,\n} from '../components';\nimport { cleanEmptyObject, 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 defaultAlignments = {\n\thorizontal: 'center',\n\tvertical: 'top',\n};\n\nconst verticalAlignmentOptions = {\n\ttop: {\n\t\ticon: justifyTop,\n\t\tlabel: _x( 'Align top', 'Block vertical alignment setting' ),\n\t},\n\tcenter: {\n\t\ticon: justifyCenterVertical,\n\t\tlabel: _x( 'Align middle', 'Block vertical alignment setting' ),\n\t},\n\tbottom: {\n\t\ticon: justifyBottom,\n\t\tlabel: _x( 'Align bottom', 'Block vertical alignment setting' ),\n\t},\n\tstretch: {\n\t\ticon: justifyStretchVertical,\n\t\tlabel: _x( 'Stretch to fill', 'Block vertical alignment setting' ),\n\t},\n\t'space-between': {\n\t\ticon: justifySpaceBetweenVertical,\n\t\tlabel: _x( 'Space between', 'Block vertical alignment setting' ),\n\t},\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\tresetLayout = {},\n\t\tclientId,\n\t} ) {\n\t\tconst {\n\t\t\tallowOrientation = true,\n\t\t\tallowJustification = true,\n\t\t\tallowVerticalAlignment = true,\n\t\t\tallowWrap = true,\n\t\t} = layoutBlockSupport;\n\t\tconst hasLayoutValue = ( key, defaultValue ) =>\n\t\t\t( layout?.[ key ] ?? defaultValue ) !==\n\t\t\t( resetLayout?.[ key ] ?? defaultValue );\n\t\tconst hasJustificationValue = () =>\n\t\t\thasLayoutValue( 'justifyContent', 'left' );\n\t\tconst hasVerticalAlignmentValue = () =>\n\t\t\thasLayoutValue(\n\t\t\t\t'verticalAlignment',\n\t\t\t\tgetDefaultVerticalAlignment( layout )\n\t\t\t);\n\t\tconst hasOrientationValue = () =>\n\t\t\thasLayoutValue( 'orientation', 'horizontal' );\n\t\tconst hasWrapValue = () => hasLayoutValue( 'flexWrap', 'wrap' );\n\t\tconst resetJustification = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tjustifyContent: resetLayout?.justifyContent,\n\t\t\t\t} )\n\t\t\t);\n\t\tconst resetVerticalAlignment = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tverticalAlignment: getCompatibleVerticalAlignment(\n\t\t\t\t\t\tresetLayout?.verticalAlignment,\n\t\t\t\t\t\tlayout?.orientation\n\t\t\t\t\t),\n\t\t\t\t} )\n\t\t\t);\n\t\tconst resetOrientation = () => {\n\t\t\tconst { verticalAlignment, justifyContent } = layout;\n\t\t\tconst nextOrientation = resetLayout?.orientation;\n\t\t\tconst isHorizontal =\n\t\t\t\t! nextOrientation || nextOrientation === 'horizontal';\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\torientation: nextOrientation,\n\t\t\t\t\tverticalAlignment:\n\t\t\t\t\t\tresetLayout?.verticalAlignment ??\n\t\t\t\t\t\t( isHorizontal && verticalAlignment === 'space-between'\n\t\t\t\t\t\t\t? 'center'\n\t\t\t\t\t\t\t: verticalAlignment ),\n\t\t\t\t\tjustifyContent:\n\t\t\t\t\t\tresetLayout?.justifyContent ??\n\t\t\t\t\t\t( isHorizontal && justifyContent === 'stretch'\n\t\t\t\t\t\t\t? 'left'\n\t\t\t\t\t\t\t: justifyContent ),\n\t\t\t\t} )\n\t\t\t);\n\t\t};\n\t\tconst resetWrap = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tflexWrap: resetLayout?.flexWrap,\n\t\t\t\t} )\n\t\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ ( allowJustification || allowOrientation ) && (\n\t\t\t\t\t<Flex\n\t\t\t\t\t\talign=\"flex-start\"\n\t\t\t\t\t\tclassName=\"block-editor-hooks__flex-layout-controls\"\n\t\t\t\t\t\tgap={ 4 }\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ allowJustification && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Justification' ) }\n\t\t\t\t\t\t\t\thasValue={ hasJustificationValue }\n\t\t\t\t\t\t\t\tonDeselect={ resetJustification }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<FlexLayoutJustifyContentControl\n\t\t\t\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ allowOrientation && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Orientation' ) }\n\t\t\t\t\t\t\t\thasValue={ hasOrientationValue }\n\t\t\t\t\t\t\t\tonDeselect={ resetOrientation }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<OrientationControl\n\t\t\t\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t) }\n\t\t\t\t{ allowVerticalAlignment && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Alignment' ) }\n\t\t\t\t\t\thasValue={ hasVerticalAlignmentValue }\n\t\t\t\t\t\tonDeselect={ resetVerticalAlignment }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexLayoutVerticalAlignmentControl\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</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ allowWrap && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Wrapping' ) }\n\t\t\t\t\t\thasValue={ hasWrapValue }\n\t\t\t\t\t\tonDeselect={ resetWrap }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexWrapControl\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</ToolsPanelItem>\n\t\t\t\t) }\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\tconst { allowVerticalAlignment = true, allowJustification = true } =\n\t\t\tlayoutBlockSupport;\n\n\t\tif ( ! allowJustification && ! allowVerticalAlignment ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<BlockControls group=\"block\" __experimentalShareWithChildBlocks>\n\t\t\t\t{ allowJustification && (\n\t\t\t\t\t<FlexLayoutJustifyContentControl\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\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\tviewportOverrides,\n\t\tstyle,\n\t\tblockName,\n\t\thasBlockGapSupport,\n\t\tglobalBlockGapValue,\n\t\tlayoutDefinitions = LAYOUT_DEFINITIONS,\n\t} ) {\n\t\tconst hasViewportOverrides = viewportOverrides !== undefined;\n\t\tconst effectiveLayout = hasViewportOverrides\n\t\t\t? { ...layout, ...viewportOverrides }\n\t\t\t: layout;\n\t\tconst hasViewportOverride = ( key ) =>\n\t\t\tObject.hasOwn( viewportOverrides || {}, key );\n\t\tconst { orientation = 'horizontal' } = effectiveLayout;\n\n\t\t// Determine the fallback gap value using global styles (theme.json),\n\t\t// falling back to '0.5em' for backwards compatibility.\n\t\tlet fallbackGapValue = '0.5em';\n\t\tif ( globalBlockGapValue ) {\n\t\t\tconst gapBox =\n\t\t\t\tgetGapBoxControlValueFromStyle( globalBlockGapValue );\n\t\t\tfallbackGapValue =\n\t\t\t\tgetSpacingPresetCssVar( gapBox?.left ) ||\n\t\t\t\tgetSpacingPresetCssVar( gapBox?.top ) ||\n\t\t\t\t'0.5em';\n\t\t}\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, fallbackGapValue )\n\t\t\t\t: undefined;\n\t\tconst hasBlockGapOverride =\n\t\t\t! hasViewportOverrides ||\n\t\t\tObject.hasOwn( style?.spacing || {}, 'blockGap' );\n\t\tconst justifyContent =\n\t\t\tjustifyContentMap[ effectiveLayout.justifyContent ];\n\t\tconst flexWrap = flexWrapOptions.includes( effectiveLayout.flexWrap )\n\t\t\t? effectiveLayout.flexWrap\n\t\t\t: 'wrap';\n\t\tconst verticalAlignment =\n\t\t\tverticalAlignmentMap[ effectiveLayout.verticalAlignment ];\n\t\tconst alignItems =\n\t\t\talignItemsMap[ effectiveLayout.justifyContent ] ||\n\t\t\talignItemsMap.left;\n\n\t\tlet output = '';\n\t\tconst rules = [];\n\n\t\tconst shouldOutputFlexWrap =\n\t\t\t! hasViewportOverrides || hasViewportOverride( 'flexWrap' );\n\t\tconst shouldOutputFlexOrientation =\n\t\t\t! hasViewportOverrides || hasViewportOverride( 'orientation' );\n\t\tconst shouldOutputFlexJustification =\n\t\t\t! hasViewportOverrides ||\n\t\t\thasViewportOverride( 'justifyContent' ) ||\n\t\t\thasViewportOverride( 'orientation' );\n\t\tconst shouldOutputFlexAlignment =\n\t\t\t! hasViewportOverrides ||\n\t\t\thasViewportOverride( 'verticalAlignment' ) ||\n\t\t\thasViewportOverride( 'orientation' );\n\n\t\tif ( shouldOutputFlexWrap && flexWrap && flexWrap !== 'wrap' ) {\n\t\t\trules.push( `flex-wrap: ${ flexWrap }` );\n\t\t}\n\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\tif ( shouldOutputFlexAlignment && verticalAlignment ) {\n\t\t\t\trules.push( `align-items: ${ verticalAlignment }` );\n\t\t\t}\n\t\t\tif ( shouldOutputFlexJustification && justifyContent ) {\n\t\t\t\trules.push( `justify-content: ${ justifyContent }` );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( shouldOutputFlexAlignment && verticalAlignment ) {\n\t\t\t\trules.push( `justify-content: ${ verticalAlignment }` );\n\t\t\t}\n\t\t\tif ( shouldOutputFlexOrientation ) {\n\t\t\t\trules.push( 'flex-direction: column' );\n\t\t\t}\n\t\t\tif ( shouldOutputFlexJustification ) {\n\t\t\t\trules.push( `align-items: ${ alignItems }` );\n\t\t\t}\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 && hasBlockGapOverride && 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 getDefaultVerticalAlignment( { orientation = 'horizontal' } = {} ) {\n\treturn orientation === 'horizontal'\n\t\t? defaultAlignments.horizontal\n\t\t: defaultAlignments.vertical;\n}\n\nfunction getCompatibleVerticalAlignment( verticalAlignment, orientation ) {\n\tif (\n\t\t( orientation === 'horizontal' &&\n\t\t\tverticalAlignment === 'space-between' ) ||\n\t\t( orientation === 'vertical' && verticalAlignment === 'stretch' )\n\t) {\n\t\treturn undefined;\n\t}\n\n\treturn verticalAlignment;\n}\n\nfunction getVerticalAlignmentControls( orientation ) {\n\treturn orientation === 'horizontal'\n\t\t? [ 'top', 'center', 'bottom', 'stretch' ]\n\t\t: [ 'top', 'center', 'bottom', 'space-between' ];\n}\n\nfunction FlexLayoutVerticalAlignmentControl( {\n\tlayout,\n\tonChange,\n\tisToolbar = false,\n} ) {\n\tconst { orientation = 'horizontal' } = layout;\n\n\tconst { verticalAlignment = getDefaultVerticalAlignment( layout ) } =\n\t\tlayout;\n\n\tconst onVerticalAlignmentChange = ( value ) => {\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tverticalAlignment: value,\n\t\t} );\n\t};\n\tconst controls = getVerticalAlignmentControls( orientation );\n\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={ controls }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\tlabel={ __( 'Alignment' ) }\n\t\t\tonChange={ onVerticalAlignmentChange }\n\t\t\tvalue={ verticalAlignment }\n\t\t\tclassName=\"block-editor-hooks__flex-layout-alignment-controls\"\n\t\t>\n\t\t\t{ controls.map( ( control ) => {\n\t\t\t\tconst { icon, label } = verticalAlignmentOptions[ control ];\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ control }\n\t\t\t\t\t\tvalue={ control }\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\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\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\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\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"],
5
+ "mappings": "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",
6
6
  "names": ["import_utils", "import_components", "ToolsPanelItem", "ToggleGroupControl", "ToggleGroupControlOptionIcon"]
7
7
  }
@@ -80,11 +80,13 @@ var grid_default = {
80
80
  const { allowSizingOnChildren = false } = layoutBlockSupport;
81
81
  const showColumnsControl = true;
82
82
  const showMinWidthControl = !layout?.isManualPlacement || window.__experimentalEnableGridInteractivity;
83
+ const showFillControl = !layout?.isManualPlacement;
83
84
  const defaultColumnCount = layout.isManualPlacement ? 3 : void 0;
84
85
  const hasLayoutValue = (key, defaultValue) => (layout?.[key] ?? defaultValue) !== (resetLayout?.[key] ?? defaultValue);
85
86
  const hasGridTypeValue = () => hasLayoutValue("isManualPlacement", false);
86
87
  const hasColumnsAndRowsValue = () => hasLayoutValue("columnCount", defaultColumnCount) || hasLayoutValue("rowCount");
87
88
  const hasMinimumColumnWidthValue = () => hasLayoutValue("minimumColumnWidth");
89
+ const hasFillValue = () => hasLayoutValue("autoFit", false);
88
90
  const resetGridType = () => onChange(
89
91
  (0, import_utils3.cleanEmptyObject)({
90
92
  ...layout,
@@ -106,6 +108,12 @@ var grid_default = {
106
108
  minimumColumnWidth: resetLayout?.minimumColumnWidth
107
109
  })
108
110
  );
111
+ const resetFill = () => onChange(
112
+ (0, import_utils3.cleanEmptyObject)({
113
+ ...layout,
114
+ autoFit: resetLayout?.autoFit
115
+ })
116
+ );
109
117
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
110
118
  window.__experimentalEnableGridInteractivity && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
111
119
  import_components.__experimentalToolsPanelItem,
@@ -158,6 +166,22 @@ var grid_default = {
158
166
  }
159
167
  )
160
168
  }
169
+ ),
170
+ showFillControl && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
171
+ import_components.__experimentalToolsPanelItem,
172
+ {
173
+ label: (0, import_i18n.__)("Fill available space"),
174
+ hasValue: hasFillValue,
175
+ onDeselect: resetFill,
176
+ panelId: clientId,
177
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
178
+ GridLayoutFillControl,
179
+ {
180
+ layout,
181
+ onChange
182
+ }
183
+ )
184
+ }
161
185
  )
162
186
  ] });
163
187
  },
@@ -180,8 +204,10 @@ var grid_default = {
180
204
  const {
181
205
  minimumColumnWidth = null,
182
206
  columnCount = null,
183
- rowCount = null
207
+ rowCount = null,
208
+ autoFit = false
184
209
  } = effectiveLayout;
210
+ const autoPlacement = autoFit ? "auto-fit" : "auto-fill";
185
211
  if (process.env.NODE_ENV === "development") {
186
212
  if (minimumColumnWidth && typeof minimumColumnWidth !== "string") {
187
213
  throw new Error("minimumColumnWidth must be a string");
@@ -192,6 +218,9 @@ var grid_default = {
192
218
  if (rowCount && typeof rowCount !== "number") {
193
219
  throw new Error("rowCount must be a number");
194
220
  }
221
+ if (autoFit && typeof autoFit !== "boolean") {
222
+ throw new Error("autoFit must be a boolean");
223
+ }
195
224
  }
196
225
  let fallbackGapValue = "1.2rem";
197
226
  if (globalBlockGapValue) {
@@ -202,7 +231,7 @@ var grid_default = {
202
231
  const hasBlockGapOverride = !hasViewportOverrides || Object.hasOwn(style?.spacing || {}, "blockGap");
203
232
  let output = "";
204
233
  const rules = [];
205
- const shouldOutputGridColumns = !hasViewportOverrides || hasViewportOverride("minimumColumnWidth") || hasViewportOverride("columnCount") || hasBlockGapOverride && minimumColumnWidth && columnCount > 0;
234
+ const shouldOutputGridColumns = !hasViewportOverrides || hasViewportOverride("minimumColumnWidth") || hasViewportOverride("columnCount") || hasViewportOverride("autoFit") || hasBlockGapOverride && minimumColumnWidth && columnCount > 0;
206
235
  const shouldOutputGridRows = (!hasViewportOverrides || hasViewportOverride("rowCount")) && columnCount && rowCount;
207
236
  if (shouldOutputGridColumns && minimumColumnWidth && columnCount > 0) {
208
237
  let blockGapToUse = blockGapValue || fallbackGapValue;
@@ -211,7 +240,7 @@ var grid_default = {
211
240
  }
212
241
  const maxValue = `max(min( ${minimumColumnWidth}, 100%), ( 100% - (${blockGapToUse}*${columnCount - 1}) ) / ${columnCount})`;
213
242
  rules.push(
214
- `grid-template-columns: repeat(auto-fill, minmax(${maxValue}, 1fr))`
243
+ `grid-template-columns: repeat(${autoPlacement}, minmax(${maxValue}, 1fr))`
215
244
  );
216
245
  } else if (shouldOutputGridColumns && columnCount) {
217
246
  rules.push(
@@ -219,7 +248,7 @@ var grid_default = {
219
248
  );
220
249
  } else if (shouldOutputGridColumns) {
221
250
  rules.push(
222
- `grid-template-columns: repeat(auto-fill, minmax(min(${minimumColumnWidth || "12rem"}, 100%), 1fr))`
251
+ `grid-template-columns: repeat(${autoPlacement}, minmax(min(${minimumColumnWidth || "12rem"}, 100%), 1fr))`
223
252
  );
224
253
  }
225
254
  if (shouldOutputGridColumns) {
@@ -285,7 +314,6 @@ function GridLayoutMinimumWidthControl({ layout, onChange }) {
285
314
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.FlexItem, { isBlock: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
286
315
  import_components.__experimentalUnitControl,
287
316
  {
288
- size: "__unstable-large",
289
317
  onChange: (newValue) => {
290
318
  onChange({
291
319
  ...layout,
@@ -303,7 +331,6 @@ function GridLayoutMinimumWidthControl({ layout, onChange }) {
303
331
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.FlexItem, { isBlock: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
304
332
  import_components.RangeControl,
305
333
  {
306
- __next40pxDefaultSize: true,
307
334
  onChange: handleSliderChange,
308
335
  value: quantity || 0,
309
336
  min: 0,
@@ -345,7 +372,7 @@ function GridLayoutColumnsAndRowsControl({
345
372
  columnCount: newColumnCount
346
373
  });
347
374
  },
348
- value: columnCount,
375
+ value: columnCount ?? "",
349
376
  min: 1,
350
377
  label: (0, import_i18n.__)("Columns"),
351
378
  hideLabelFromVision: !isManualPlacement
@@ -369,7 +396,6 @@ function GridLayoutColumnsAndRowsControl({
369
396
  ) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
370
397
  import_components.RangeControl,
371
398
  {
372
- __next40pxDefaultSize: true,
373
399
  value: columnCount ?? 1,
374
400
  onChange: (value) => onChange({
375
401
  ...layout,
@@ -385,6 +411,23 @@ function GridLayoutColumnsAndRowsControl({
385
411
  ] })
386
412
  ] }) });
387
413
  }
414
+ function GridLayoutFillControl({ layout, onChange }) {
415
+ const { autoFit = false } = layout;
416
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
417
+ import_components.ToggleControl,
418
+ {
419
+ label: (0, import_i18n.__)("Fill available space"),
420
+ help: (0, import_i18n.__)(
421
+ "Stretch columns to fill the available space, instead of leaving gaps when there are too few items to fill a row."
422
+ ),
423
+ checked: autoFit,
424
+ onChange: (value) => onChange({
425
+ ...layout,
426
+ autoFit: value
427
+ })
428
+ }
429
+ );
430
+ }
388
431
  function GridLayoutTypeControl({ layout, onChange }) {
389
432
  const { columnCount, rowCount, minimumColumnWidth, isManualPlacement } = layout;
390
433
  const [tempColumnCount, setTempColumnCount] = (0, import_element.useState)(
@@ -418,7 +461,6 @@ function GridLayoutTypeControl({ layout, onChange }) {
418
461
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
419
462
  import_components.__experimentalToggleGroupControl,
420
463
  {
421
- __next40pxDefaultSize: true,
422
464
  label: (0, import_i18n.__)("Grid item position"),
423
465
  value: gridPlacement,
424
466
  onChange: onChangeType,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/layouts/grid.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nimport {\n\tBaseControl,\n\tFlex,\n\tFlexItem,\n\tRangeControl,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { appendSelectors, getBlockGapCSS } from './utils';\nimport { getGapCSSValue, getGapBoxControlValueFromStyle } from '../hooks/gap';\nimport { getSpacingPresetCssVar } from '../components/spacing-sizes-control/utils';\nimport { cleanEmptyObject, shouldSkipSerialization } from '../hooks/utils';\nimport { LAYOUT_DEFINITIONS } from './definitions';\n\nconst RANGE_CONTROL_MAX_VALUES = {\n\tpx: 600,\n\t'%': 100,\n\tvw: 100,\n\tvh: 100,\n\tem: 38,\n\trem: 38,\n\tsvw: 100,\n\tlvw: 100,\n\tdvw: 100,\n\tsvh: 100,\n\tlvh: 100,\n\tdvh: 100,\n\tvi: 100,\n\tsvi: 100,\n\tlvi: 100,\n\tdvi: 100,\n\tvb: 100,\n\tsvb: 100,\n\tlvb: 100,\n\tdvb: 100,\n\tvmin: 100,\n\tsvmin: 100,\n\tlvmin: 100,\n\tdvmin: 100,\n\tvmax: 100,\n\tsvmax: 100,\n\tlvmax: 100,\n\tdvmax: 100,\n};\n\nconst units = [\n\t{ value: 'px', label: 'px', default: 0 },\n\t{ value: 'rem', label: 'rem', default: 0 },\n\t{ value: 'em', label: 'em', default: 0 },\n];\n\nexport default {\n\tname: 'grid',\n\tlabel: __( 'Grid' ),\n\tinspectorControls: function GridLayoutInspectorControls( {\n\t\tlayout = {},\n\t\tonChange,\n\t\tlayoutBlockSupport = {},\n\t\tresetLayout = {},\n\t\tclientId,\n\t} ) {\n\t\tconst { allowSizingOnChildren = false } = layoutBlockSupport;\n\n\t\t// Always show both column and minimum width controls in Auto mode.\n\t\t// Manual mode (with isManualPlacement) is only available behind the experiment flag.\n\t\tconst showColumnsControl = true;\n\t\tconst showMinWidthControl =\n\t\t\t! layout?.isManualPlacement ||\n\t\t\twindow.__experimentalEnableGridInteractivity;\n\t\tconst defaultColumnCount = layout.isManualPlacement ? 3 : undefined;\n\t\tconst hasLayoutValue = ( key, defaultValue ) =>\n\t\t\t( layout?.[ key ] ?? defaultValue ) !==\n\t\t\t( resetLayout?.[ key ] ?? defaultValue );\n\t\tconst hasGridTypeValue = () =>\n\t\t\thasLayoutValue( 'isManualPlacement', false );\n\t\tconst hasColumnsAndRowsValue = () =>\n\t\t\thasLayoutValue( 'columnCount', defaultColumnCount ) ||\n\t\t\thasLayoutValue( 'rowCount' );\n\t\tconst hasMinimumColumnWidthValue = () =>\n\t\t\thasLayoutValue( 'minimumColumnWidth' );\n\t\tconst resetGridType = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tisManualPlacement: resetLayout?.isManualPlacement,\n\t\t\t\t\trowCount: resetLayout?.rowCount,\n\t\t\t\t\tminimumColumnWidth: resetLayout?.minimumColumnWidth,\n\t\t\t\t} )\n\t\t\t);\n\t\tconst resetColumnsAndRows = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tcolumnCount: resetLayout?.columnCount ?? defaultColumnCount,\n\t\t\t\t\trowCount: resetLayout?.rowCount,\n\t\t\t\t} )\n\t\t\t);\n\t\tconst resetMinimumColumnWidth = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tminimumColumnWidth: resetLayout?.minimumColumnWidth,\n\t\t\t\t} )\n\t\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ window.__experimentalEnableGridInteractivity && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Grid item position' ) }\n\t\t\t\t\t\thasValue={ hasGridTypeValue }\n\t\t\t\t\t\tonDeselect={ resetGridType }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<GridLayoutTypeControl\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</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ showColumnsControl && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Columns and rows' ) }\n\t\t\t\t\t\thasValue={ hasColumnsAndRowsValue }\n\t\t\t\t\t\tonDeselect={ resetColumnsAndRows }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<GridLayoutColumnsAndRowsControl\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\tallowSizingOnChildren={ allowSizingOnChildren }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ showMinWidthControl && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Min. column width' ) }\n\t\t\t\t\t\thasValue={ hasMinimumColumnWidthValue }\n\t\t\t\t\t\tonDeselect={ resetMinimumColumnWidth }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<GridLayoutMinimumWidthControl\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</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t},\n\ttoolBarControls: function GridLayoutToolbarControls() {\n\t\treturn null;\n\t},\n\tgetLayoutStyle: function getLayoutStyle( {\n\t\tselector,\n\t\tlayout = {},\n\t\tviewportOverrides,\n\t\tstyle,\n\t\tblockName,\n\t\thasBlockGapSupport,\n\t\tglobalBlockGapValue,\n\t\tlayoutDefinitions = LAYOUT_DEFINITIONS,\n\t} ) {\n\t\tconst hasViewportOverrides = viewportOverrides !== undefined;\n\t\tconst effectiveLayout = hasViewportOverrides\n\t\t\t? { ...layout, ...viewportOverrides }\n\t\t\t: layout;\n\t\tconst hasViewportOverride = ( key ) =>\n\t\t\tObject.hasOwn( viewportOverrides || {}, key );\n\t\tconst {\n\t\t\tminimumColumnWidth = null,\n\t\t\tcolumnCount = null,\n\t\t\trowCount = null,\n\t\t} = effectiveLayout;\n\n\t\t// Check that the grid layout attributes are of the correct type, so that we don't accidentally\n\t\t// write code that stores a string attribute instead of a number.\n\t\tif ( process.env.NODE_ENV === 'development' ) {\n\t\t\tif (\n\t\t\t\tminimumColumnWidth &&\n\t\t\t\ttypeof minimumColumnWidth !== 'string'\n\t\t\t) {\n\t\t\t\tthrow new Error( 'minimumColumnWidth must be a string' );\n\t\t\t}\n\t\t\tif ( columnCount && typeof columnCount !== 'number' ) {\n\t\t\t\tthrow new Error( 'columnCount must be a number' );\n\t\t\t}\n\t\t\tif ( rowCount && typeof rowCount !== 'number' ) {\n\t\t\t\tthrow new Error( 'rowCount must be a number' );\n\t\t\t}\n\t\t}\n\n\t\t// Use the global blockGap value as fallback when available.\n\t\t// If the gap value has both top and left (separated by space), use the left value for horizontal calculations.\n\t\tlet fallbackGapValue = '1.2rem';\n\t\tif ( globalBlockGapValue ) {\n\t\t\tconst gapBox =\n\t\t\t\tgetGapBoxControlValueFromStyle( globalBlockGapValue );\n\t\t\tfallbackGapValue =\n\t\t\t\tgetSpacingPresetCssVar( gapBox?.left ) ||\n\t\t\t\tgetSpacingPresetCssVar( gapBox?.top ) ||\n\t\t\t\t'1.2rem';\n\t\t}\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, fallbackGapValue )\n\t\t\t\t: undefined;\n\t\tconst hasBlockGapOverride =\n\t\t\t! hasViewportOverrides ||\n\t\t\tObject.hasOwn( style?.spacing || {}, 'blockGap' );\n\n\t\tlet output = '';\n\t\tconst rules = [];\n\t\tconst shouldOutputGridColumns =\n\t\t\t! hasViewportOverrides ||\n\t\t\thasViewportOverride( 'minimumColumnWidth' ) ||\n\t\t\thasViewportOverride( 'columnCount' ) ||\n\t\t\t( hasBlockGapOverride && minimumColumnWidth && columnCount > 0 );\n\t\tconst shouldOutputGridRows =\n\t\t\t( ! hasViewportOverrides || hasViewportOverride( 'rowCount' ) ) &&\n\t\t\tcolumnCount &&\n\t\t\trowCount;\n\n\t\tif (\n\t\t\tshouldOutputGridColumns &&\n\t\t\tminimumColumnWidth &&\n\t\t\tcolumnCount > 0\n\t\t) {\n\t\t\tlet blockGapToUse = blockGapValue || fallbackGapValue;\n\t\t\t// Ensure 0 values have a unit so they work in calc().\n\t\t\tif ( blockGapToUse === '0' || blockGapToUse === 0 ) {\n\t\t\t\tblockGapToUse = '0px';\n\t\t\t}\n\t\t\tconst maxValue = `max(min( ${ minimumColumnWidth }, 100%), ( 100% - (${ blockGapToUse }*${\n\t\t\t\tcolumnCount - 1\n\t\t\t}) ) / ${ columnCount })`;\n\t\t\trules.push(\n\t\t\t\t`grid-template-columns: repeat(auto-fill, minmax(${ maxValue }, 1fr))`\n\t\t\t);\n\t\t} else if ( shouldOutputGridColumns && columnCount ) {\n\t\t\trules.push(\n\t\t\t\t`grid-template-columns: repeat(${ columnCount }, minmax(0, 1fr))`\n\t\t\t);\n\t\t} else if ( shouldOutputGridColumns ) {\n\t\t\trules.push(\n\t\t\t\t`grid-template-columns: repeat(auto-fill, minmax(min(${\n\t\t\t\t\tminimumColumnWidth || '12rem'\n\t\t\t\t}, 100%), 1fr))`\n\t\t\t);\n\t\t}\n\n\t\tif ( shouldOutputGridColumns ) {\n\t\t\tconst baseHasContainerType =\n\t\t\t\t! layout?.columnCount ||\n\t\t\t\t( layout?.columnCount && layout?.minimumColumnWidth );\n\t\t\tconst needsContainerType = ! columnCount || minimumColumnWidth;\n\t\t\tif (\n\t\t\t\tneedsContainerType &&\n\t\t\t\t( ! hasViewportOverrides || ! baseHasContainerType )\n\t\t\t) {\n\t\t\t\trules.push( 'container-type: inline-size' );\n\t\t\t}\n\t\t}\n\n\t\tif ( shouldOutputGridRows ) {\n\t\t\trules.push(\n\t\t\t\t`grid-template-rows: repeat(${ rowCount }, minmax(1rem, auto))`\n\t\t\t);\n\t\t}\n\n\t\tif ( rules.length ) {\n\t\t\toutput = `${ appendSelectors( selector ) } { ${ rules.join(\n\t\t\t\t'; '\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 && hasBlockGapOverride && blockGapValue ) {\n\t\t\toutput += getBlockGapCSS(\n\t\t\t\tselector,\n\t\t\t\tlayoutDefinitions,\n\t\t\t\t'grid',\n\t\t\t\tblockGapValue\n\t\t\t);\n\t\t}\n\t\treturn output;\n\t},\n\tgetOrientation() {\n\t\treturn 'horizontal';\n\t},\n\tgetAlignments() {\n\t\treturn [];\n\t},\n};\n\n// Enables setting minimum width of grid items.\nfunction GridLayoutMinimumWidthControl( { layout, onChange } ) {\n\tconst { minimumColumnWidth, columnCount, isManualPlacement } = layout;\n\tconst defaultValue = isManualPlacement || columnCount ? null : '12rem';\n\tconst value = minimumColumnWidth || defaultValue;\n\tconst [ quantity, unit = 'rem' ] =\n\t\tparseQuantityAndUnitFromRawValue( value );\n\n\tconst handleSliderChange = ( next ) => {\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tminimumColumnWidth: [ next, unit ].join( '' ),\n\t\t} );\n\t};\n\n\t// Mostly copied from HeightControl.\n\tconst handleUnitChange = ( newUnit ) => {\n\t\t// Attempt to smooth over differences between currentUnit and newUnit.\n\t\t// This should slightly improve the experience of switching between unit types.\n\t\tlet newValue;\n\n\t\tif ( [ 'em', 'rem' ].includes( newUnit ) && unit === 'px' ) {\n\t\t\t// Convert pixel value to an approximate of the new unit, assuming a root size of 16px.\n\t\t\tnewValue = ( quantity / 16 ).toFixed( 2 ) + newUnit;\n\t\t} else if ( [ 'em', 'rem' ].includes( unit ) && newUnit === 'px' ) {\n\t\t\t// Convert to pixel value assuming a root size of 16px.\n\t\t\tnewValue = Math.round( quantity * 16 ) + newUnit;\n\t\t}\n\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tminimumColumnWidth: newValue,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<fieldset className=\"block-editor-hooks__grid-layout-minimum-width-control\">\n\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t{ __( 'Min. column width' ) }\n\t\t\t</BaseControl.VisualLabel>\n\t\t\t<Flex gap={ 4 }>\n\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\tminimumColumnWidth:\n\t\t\t\t\t\t\t\t\tnewValue === '' ? undefined : newValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonUnitChange={ handleUnitChange }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tlabel={ __( 'Minimum column width' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tonChange={ handleSliderChange }\n\t\t\t\t\t\tvalue={ quantity || 0 }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ RANGE_CONTROL_MAX_VALUES[ unit ] || 600 }\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\tlabel={ __( 'Minimum column width' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t\t<p className=\"components-base-control__help\">\n\t\t\t\t{ __(\n\t\t\t\t\t'Columns will wrap to fewer per row when they can no longer maintain the minimum width.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t</fieldset>\n\t);\n}\n\n// Enables setting number of grid columns\nfunction GridLayoutColumnsAndRowsControl( {\n\tlayout,\n\tonChange,\n\tallowSizingOnChildren,\n} ) {\n\t// Allow unsetting the column count in Auto mode.\n\tconst defaultColumnCount = undefined;\n\tconst {\n\t\tcolumnCount = defaultColumnCount,\n\t\trowCount,\n\t\tisManualPlacement,\n\t} = layout;\n\n\treturn (\n\t\t<>\n\t\t\t<fieldset className=\"block-editor-hooks__grid-layout-columns-and-rows-controls\">\n\t\t\t\t{ ! isManualPlacement && (\n\t\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t\t{ __( 'Max. columns' ) }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t) }\n\t\t\t\t<Flex gap={ 4 }>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t// Allow unsetting the column count when in auto mode.\n\t\t\t\t\t\t\t\tconst defaultNewColumnCount = isManualPlacement\n\t\t\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\t\t\tconst newColumnCount =\n\t\t\t\t\t\t\t\t\tvalue === '' || value === '0'\n\t\t\t\t\t\t\t\t\t\t? defaultNewColumnCount\n\t\t\t\t\t\t\t\t\t\t: parseInt( value, 10 );\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\tcolumnCount: newColumnCount,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ columnCount }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\thideLabelFromVision={ ! isManualPlacement }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t{ allowSizingOnChildren && isManualPlacement ? (\n\t\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t// Don't allow unsetting the row count.\n\t\t\t\t\t\t\t\t\tconst newRowCount =\n\t\t\t\t\t\t\t\t\t\tvalue === '' || value === '0'\n\t\t\t\t\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t\t\t\t\t: parseInt( value, 10 );\n\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\trowCount: newRowCount,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tvalue={ rowCount }\n\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\tlabel={ __( 'Rows' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvalue={ columnCount ?? 1 }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\tcolumnCount:\n\t\t\t\t\t\t\t\t\t\t\tvalue === '' || value === '0'\n\t\t\t\t\t\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t\t\t\t\t\t: value,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\tmax={ 16 }\n\t\t\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\thideLabelFromVision\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</fieldset>\n\t\t</>\n\t);\n}\n\n// Enables switching between grid types\nfunction GridLayoutTypeControl( { layout, onChange } ) {\n\tconst { columnCount, rowCount, minimumColumnWidth, isManualPlacement } =\n\t\tlayout;\n\n\t/**\n\t * When switching, temporarily save any custom values set on the\n\t * previous type so we can switch back without loss.\n\t */\n\tconst [ tempColumnCount, setTempColumnCount ] = useState(\n\t\tcolumnCount || 3\n\t);\n\tconst [ tempRowCount, setTempRowCount ] = useState( rowCount );\n\tconst [ tempMinimumColumnWidth, setTempMinimumColumnWidth ] = useState(\n\t\tminimumColumnWidth || '12rem'\n\t);\n\n\tconst gridPlacement = isManualPlacement ? 'manual' : 'auto';\n\n\tconst onChangeType = ( value ) => {\n\t\tif ( value === 'manual' ) {\n\t\t\tsetTempMinimumColumnWidth( minimumColumnWidth || '12rem' );\n\t\t} else {\n\t\t\tsetTempColumnCount( columnCount || 3 );\n\t\t\tsetTempRowCount( rowCount );\n\t\t}\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tcolumnCount: value === 'manual' ? tempColumnCount : tempColumnCount,\n\t\t\trowCount: value === 'manual' ? tempRowCount : undefined,\n\t\t\tisManualPlacement: value === 'manual' ? true : undefined,\n\t\t\tminimumColumnWidth:\n\t\t\t\tvalue === 'auto' ? tempMinimumColumnWidth : null,\n\t\t} );\n\t};\n\n\tconst helpText =\n\t\tgridPlacement === 'manual'\n\t\t\t? __(\n\t\t\t\t\t'Grid items can be manually placed in any position on the grid.'\n\t\t\t )\n\t\t\t: __(\n\t\t\t\t\t'Grid items are placed automatically depending on their order.'\n\t\t\t );\n\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Grid item position' ) }\n\t\t\tvalue={ gridPlacement }\n\t\t\tonChange={ onChangeType }\n\t\t\tisBlock\n\t\t\thelp={ helpText }\n\t\t>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tkey=\"auto\"\n\t\t\t\tvalue=\"auto\"\n\t\t\t\tlabel={ __( 'Auto' ) }\n\t\t\t/>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tkey=\"manual\"\n\t\t\t\tvalue=\"manual\"\n\t\t\t\tlabel={ __( 'Manual' ) }\n\t\t\t/>\n\t\t</ToggleGroupControl>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nimport {\n\tBaseControl,\n\tFlex,\n\tFlexItem,\n\tRangeControl,\n\tToggleControl,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { appendSelectors, getBlockGapCSS } from './utils';\nimport { getGapCSSValue, getGapBoxControlValueFromStyle } from '../hooks/gap';\nimport { getSpacingPresetCssVar } from '../components/spacing-sizes-control/utils';\nimport { cleanEmptyObject, shouldSkipSerialization } from '../hooks/utils';\nimport { LAYOUT_DEFINITIONS } from './definitions';\n\nconst RANGE_CONTROL_MAX_VALUES = {\n\tpx: 600,\n\t'%': 100,\n\tvw: 100,\n\tvh: 100,\n\tem: 38,\n\trem: 38,\n\tsvw: 100,\n\tlvw: 100,\n\tdvw: 100,\n\tsvh: 100,\n\tlvh: 100,\n\tdvh: 100,\n\tvi: 100,\n\tsvi: 100,\n\tlvi: 100,\n\tdvi: 100,\n\tvb: 100,\n\tsvb: 100,\n\tlvb: 100,\n\tdvb: 100,\n\tvmin: 100,\n\tsvmin: 100,\n\tlvmin: 100,\n\tdvmin: 100,\n\tvmax: 100,\n\tsvmax: 100,\n\tlvmax: 100,\n\tdvmax: 100,\n};\n\nconst units = [\n\t{ value: 'px', label: 'px', default: 0 },\n\t{ value: 'rem', label: 'rem', default: 0 },\n\t{ value: 'em', label: 'em', default: 0 },\n];\n\nexport default {\n\tname: 'grid',\n\tlabel: __( 'Grid' ),\n\tinspectorControls: function GridLayoutInspectorControls( {\n\t\tlayout = {},\n\t\tonChange,\n\t\tlayoutBlockSupport = {},\n\t\tresetLayout = {},\n\t\tclientId,\n\t} ) {\n\t\tconst { allowSizingOnChildren = false } = layoutBlockSupport;\n\n\t\t// Always show both column and minimum width controls in Auto mode.\n\t\t// Manual mode (with isManualPlacement) is only available behind the experiment flag.\n\t\tconst showColumnsControl = true;\n\t\tconst showMinWidthControl =\n\t\t\t! layout?.isManualPlacement ||\n\t\t\twindow.__experimentalEnableGridInteractivity;\n\t\t// Auto-fit/auto-fill only applies when grid items are placed\n\t\t// automatically, so the control is irrelevant in manual placement mode.\n\t\tconst showFillControl = ! layout?.isManualPlacement;\n\t\tconst defaultColumnCount = layout.isManualPlacement ? 3 : undefined;\n\t\tconst hasLayoutValue = ( key, defaultValue ) =>\n\t\t\t( layout?.[ key ] ?? defaultValue ) !==\n\t\t\t( resetLayout?.[ key ] ?? defaultValue );\n\t\tconst hasGridTypeValue = () =>\n\t\t\thasLayoutValue( 'isManualPlacement', false );\n\t\tconst hasColumnsAndRowsValue = () =>\n\t\t\thasLayoutValue( 'columnCount', defaultColumnCount ) ||\n\t\t\thasLayoutValue( 'rowCount' );\n\t\tconst hasMinimumColumnWidthValue = () =>\n\t\t\thasLayoutValue( 'minimumColumnWidth' );\n\t\tconst hasFillValue = () => hasLayoutValue( 'autoFit', false );\n\t\tconst resetGridType = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tisManualPlacement: resetLayout?.isManualPlacement,\n\t\t\t\t\trowCount: resetLayout?.rowCount,\n\t\t\t\t\tminimumColumnWidth: resetLayout?.minimumColumnWidth,\n\t\t\t\t} )\n\t\t\t);\n\t\tconst resetColumnsAndRows = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tcolumnCount: resetLayout?.columnCount ?? defaultColumnCount,\n\t\t\t\t\trowCount: resetLayout?.rowCount,\n\t\t\t\t} )\n\t\t\t);\n\t\tconst resetMinimumColumnWidth = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tminimumColumnWidth: resetLayout?.minimumColumnWidth,\n\t\t\t\t} )\n\t\t\t);\n\t\tconst resetFill = () =>\n\t\t\tonChange(\n\t\t\t\tcleanEmptyObject( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tautoFit: resetLayout?.autoFit,\n\t\t\t\t} )\n\t\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ window.__experimentalEnableGridInteractivity && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Grid item position' ) }\n\t\t\t\t\t\thasValue={ hasGridTypeValue }\n\t\t\t\t\t\tonDeselect={ resetGridType }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<GridLayoutTypeControl\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</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ showColumnsControl && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Columns and rows' ) }\n\t\t\t\t\t\thasValue={ hasColumnsAndRowsValue }\n\t\t\t\t\t\tonDeselect={ resetColumnsAndRows }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<GridLayoutColumnsAndRowsControl\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\tallowSizingOnChildren={ allowSizingOnChildren }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ showMinWidthControl && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Min. column width' ) }\n\t\t\t\t\t\thasValue={ hasMinimumColumnWidthValue }\n\t\t\t\t\t\tonDeselect={ resetMinimumColumnWidth }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<GridLayoutMinimumWidthControl\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</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ showFillControl && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Fill available space' ) }\n\t\t\t\t\t\thasValue={ hasFillValue }\n\t\t\t\t\t\tonDeselect={ resetFill }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<GridLayoutFillControl\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</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t},\n\ttoolBarControls: function GridLayoutToolbarControls() {\n\t\treturn null;\n\t},\n\tgetLayoutStyle: function getLayoutStyle( {\n\t\tselector,\n\t\tlayout = {},\n\t\tviewportOverrides,\n\t\tstyle,\n\t\tblockName,\n\t\thasBlockGapSupport,\n\t\tglobalBlockGapValue,\n\t\tlayoutDefinitions = LAYOUT_DEFINITIONS,\n\t} ) {\n\t\tconst hasViewportOverrides = viewportOverrides !== undefined;\n\t\tconst effectiveLayout = hasViewportOverrides\n\t\t\t? { ...layout, ...viewportOverrides }\n\t\t\t: layout;\n\t\tconst hasViewportOverride = ( key ) =>\n\t\t\tObject.hasOwn( viewportOverrides || {}, key );\n\t\tconst {\n\t\t\tminimumColumnWidth = null,\n\t\t\tcolumnCount = null,\n\t\t\trowCount = null,\n\t\t\tautoFit = false,\n\t\t} = effectiveLayout;\n\n\t\t// When enabled, columns stretch to fill the available space using\n\t\t// `auto-fit`; otherwise empty tracks are preserved with `auto-fill`.\n\t\tconst autoPlacement = autoFit ? 'auto-fit' : 'auto-fill';\n\n\t\t// Check that the grid layout attributes are of the correct type, so that we don't accidentally\n\t\t// write code that stores a string attribute instead of a number.\n\t\tif ( process.env.NODE_ENV === 'development' ) {\n\t\t\tif (\n\t\t\t\tminimumColumnWidth &&\n\t\t\t\ttypeof minimumColumnWidth !== 'string'\n\t\t\t) {\n\t\t\t\tthrow new Error( 'minimumColumnWidth must be a string' );\n\t\t\t}\n\t\t\tif ( columnCount && typeof columnCount !== 'number' ) {\n\t\t\t\tthrow new Error( 'columnCount must be a number' );\n\t\t\t}\n\t\t\tif ( rowCount && typeof rowCount !== 'number' ) {\n\t\t\t\tthrow new Error( 'rowCount must be a number' );\n\t\t\t}\n\t\t\tif ( autoFit && typeof autoFit !== 'boolean' ) {\n\t\t\t\tthrow new Error( 'autoFit must be a boolean' );\n\t\t\t}\n\t\t}\n\n\t\t// Use the global blockGap value as fallback when available.\n\t\t// If the gap value has both top and left (separated by space), use the left value for horizontal calculations.\n\t\tlet fallbackGapValue = '1.2rem';\n\t\tif ( globalBlockGapValue ) {\n\t\t\tconst gapBox =\n\t\t\t\tgetGapBoxControlValueFromStyle( globalBlockGapValue );\n\t\t\tfallbackGapValue =\n\t\t\t\tgetSpacingPresetCssVar( gapBox?.left ) ||\n\t\t\t\tgetSpacingPresetCssVar( gapBox?.top ) ||\n\t\t\t\t'1.2rem';\n\t\t}\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, fallbackGapValue )\n\t\t\t\t: undefined;\n\t\tconst hasBlockGapOverride =\n\t\t\t! hasViewportOverrides ||\n\t\t\tObject.hasOwn( style?.spacing || {}, 'blockGap' );\n\n\t\tlet output = '';\n\t\tconst rules = [];\n\t\tconst shouldOutputGridColumns =\n\t\t\t! hasViewportOverrides ||\n\t\t\thasViewportOverride( 'minimumColumnWidth' ) ||\n\t\t\thasViewportOverride( 'columnCount' ) ||\n\t\t\thasViewportOverride( 'autoFit' ) ||\n\t\t\t( hasBlockGapOverride && minimumColumnWidth && columnCount > 0 );\n\t\tconst shouldOutputGridRows =\n\t\t\t( ! hasViewportOverrides || hasViewportOverride( 'rowCount' ) ) &&\n\t\t\tcolumnCount &&\n\t\t\trowCount;\n\n\t\tif (\n\t\t\tshouldOutputGridColumns &&\n\t\t\tminimumColumnWidth &&\n\t\t\tcolumnCount > 0\n\t\t) {\n\t\t\tlet blockGapToUse = blockGapValue || fallbackGapValue;\n\t\t\t// Ensure 0 values have a unit so they work in calc().\n\t\t\tif ( blockGapToUse === '0' || blockGapToUse === 0 ) {\n\t\t\t\tblockGapToUse = '0px';\n\t\t\t}\n\t\t\tconst maxValue = `max(min( ${ minimumColumnWidth }, 100%), ( 100% - (${ blockGapToUse }*${\n\t\t\t\tcolumnCount - 1\n\t\t\t}) ) / ${ columnCount })`;\n\t\t\trules.push(\n\t\t\t\t`grid-template-columns: repeat(${ autoPlacement }, minmax(${ maxValue }, 1fr))`\n\t\t\t);\n\t\t} else if ( shouldOutputGridColumns && columnCount ) {\n\t\t\trules.push(\n\t\t\t\t`grid-template-columns: repeat(${ columnCount }, minmax(0, 1fr))`\n\t\t\t);\n\t\t} else if ( shouldOutputGridColumns ) {\n\t\t\trules.push(\n\t\t\t\t`grid-template-columns: repeat(${ autoPlacement }, minmax(min(${\n\t\t\t\t\tminimumColumnWidth || '12rem'\n\t\t\t\t}, 100%), 1fr))`\n\t\t\t);\n\t\t}\n\n\t\tif ( shouldOutputGridColumns ) {\n\t\t\tconst baseHasContainerType =\n\t\t\t\t! layout?.columnCount ||\n\t\t\t\t( layout?.columnCount && layout?.minimumColumnWidth );\n\t\t\tconst needsContainerType = ! columnCount || minimumColumnWidth;\n\t\t\tif (\n\t\t\t\tneedsContainerType &&\n\t\t\t\t( ! hasViewportOverrides || ! baseHasContainerType )\n\t\t\t) {\n\t\t\t\trules.push( 'container-type: inline-size' );\n\t\t\t}\n\t\t}\n\n\t\tif ( shouldOutputGridRows ) {\n\t\t\trules.push(\n\t\t\t\t`grid-template-rows: repeat(${ rowCount }, minmax(1rem, auto))`\n\t\t\t);\n\t\t}\n\n\t\tif ( rules.length ) {\n\t\t\toutput = `${ appendSelectors( selector ) } { ${ rules.join(\n\t\t\t\t'; '\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 && hasBlockGapOverride && blockGapValue ) {\n\t\t\toutput += getBlockGapCSS(\n\t\t\t\tselector,\n\t\t\t\tlayoutDefinitions,\n\t\t\t\t'grid',\n\t\t\t\tblockGapValue\n\t\t\t);\n\t\t}\n\t\treturn output;\n\t},\n\tgetOrientation() {\n\t\treturn 'horizontal';\n\t},\n\tgetAlignments() {\n\t\treturn [];\n\t},\n};\n\n// Enables setting minimum width of grid items.\nfunction GridLayoutMinimumWidthControl( { layout, onChange } ) {\n\tconst { minimumColumnWidth, columnCount, isManualPlacement } = layout;\n\tconst defaultValue = isManualPlacement || columnCount ? null : '12rem';\n\tconst value = minimumColumnWidth || defaultValue;\n\tconst [ quantity, unit = 'rem' ] =\n\t\tparseQuantityAndUnitFromRawValue( value );\n\n\tconst handleSliderChange = ( next ) => {\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tminimumColumnWidth: [ next, unit ].join( '' ),\n\t\t} );\n\t};\n\n\t// Mostly copied from HeightControl.\n\tconst handleUnitChange = ( newUnit ) => {\n\t\t// Attempt to smooth over differences between currentUnit and newUnit.\n\t\t// This should slightly improve the experience of switching between unit types.\n\t\tlet newValue;\n\n\t\tif ( [ 'em', 'rem' ].includes( newUnit ) && unit === 'px' ) {\n\t\t\t// Convert pixel value to an approximate of the new unit, assuming a root size of 16px.\n\t\t\tnewValue = ( quantity / 16 ).toFixed( 2 ) + newUnit;\n\t\t} else if ( [ 'em', 'rem' ].includes( unit ) && newUnit === 'px' ) {\n\t\t\t// Convert to pixel value assuming a root size of 16px.\n\t\t\tnewValue = Math.round( quantity * 16 ) + newUnit;\n\t\t}\n\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tminimumColumnWidth: newValue,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<fieldset className=\"block-editor-hooks__grid-layout-minimum-width-control\">\n\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t{ __( 'Min. column width' ) }\n\t\t\t</BaseControl.VisualLabel>\n\t\t\t<Flex gap={ 4 }>\n\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\tminimumColumnWidth:\n\t\t\t\t\t\t\t\t\tnewValue === '' ? undefined : newValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonUnitChange={ handleUnitChange }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tlabel={ __( 'Minimum column width' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tonChange={ handleSliderChange }\n\t\t\t\t\t\tvalue={ quantity || 0 }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ RANGE_CONTROL_MAX_VALUES[ unit ] || 600 }\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\tlabel={ __( 'Minimum column width' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t\t<p className=\"components-base-control__help\">\n\t\t\t\t{ __(\n\t\t\t\t\t'Columns will wrap to fewer per row when they can no longer maintain the minimum width.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t</fieldset>\n\t);\n}\n\n// Enables setting number of grid columns\nfunction GridLayoutColumnsAndRowsControl( {\n\tlayout,\n\tonChange,\n\tallowSizingOnChildren,\n} ) {\n\t// Allow unsetting the column count in Auto mode.\n\tconst defaultColumnCount = undefined;\n\tconst {\n\t\tcolumnCount = defaultColumnCount,\n\t\trowCount,\n\t\tisManualPlacement,\n\t} = layout;\n\n\treturn (\n\t\t<>\n\t\t\t<fieldset className=\"block-editor-hooks__grid-layout-columns-and-rows-controls\">\n\t\t\t\t{ ! isManualPlacement && (\n\t\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t\t{ __( 'Max. columns' ) }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t) }\n\t\t\t\t<Flex gap={ 4 }>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t// Allow unsetting the column count when in auto mode.\n\t\t\t\t\t\t\t\tconst defaultNewColumnCount = isManualPlacement\n\t\t\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\t\t\tconst newColumnCount =\n\t\t\t\t\t\t\t\t\tvalue === '' || value === '0'\n\t\t\t\t\t\t\t\t\t\t? defaultNewColumnCount\n\t\t\t\t\t\t\t\t\t\t: parseInt( value, 10 );\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\tcolumnCount: newColumnCount,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ columnCount ?? '' }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\thideLabelFromVision={ ! isManualPlacement }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t{ allowSizingOnChildren && isManualPlacement ? (\n\t\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t// Don't allow unsetting the row count.\n\t\t\t\t\t\t\t\t\tconst newRowCount =\n\t\t\t\t\t\t\t\t\t\tvalue === '' || value === '0'\n\t\t\t\t\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t\t\t\t\t: parseInt( value, 10 );\n\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\trowCount: newRowCount,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tvalue={ rowCount }\n\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\tlabel={ __( 'Rows' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\tvalue={ columnCount ?? 1 }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\tcolumnCount:\n\t\t\t\t\t\t\t\t\t\t\tvalue === '' || value === '0'\n\t\t\t\t\t\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t\t\t\t\t\t: value,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\tmax={ 16 }\n\t\t\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\thideLabelFromVision\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</fieldset>\n\t\t</>\n\t);\n}\n\n// Enables stretching grid columns to fill the available space (auto-fit)\n// instead of leaving empty tracks at the end of a row (auto-fill).\nfunction GridLayoutFillControl( { layout, onChange } ) {\n\tconst { autoFit = false } = layout;\n\n\treturn (\n\t\t<ToggleControl\n\t\t\tlabel={ __( 'Fill available space' ) }\n\t\t\thelp={ __(\n\t\t\t\t'Stretch columns to fill the available space, instead of leaving gaps when there are too few items to fill a row.'\n\t\t\t) }\n\t\t\tchecked={ autoFit }\n\t\t\tonChange={ ( value ) =>\n\t\t\t\tonChange( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tautoFit: value,\n\t\t\t\t} )\n\t\t\t}\n\t\t/>\n\t);\n}\n\n// Enables switching between grid types\nfunction GridLayoutTypeControl( { layout, onChange } ) {\n\tconst { columnCount, rowCount, minimumColumnWidth, isManualPlacement } =\n\t\tlayout;\n\n\t/**\n\t * When switching, temporarily save any custom values set on the\n\t * previous type so we can switch back without loss.\n\t */\n\tconst [ tempColumnCount, setTempColumnCount ] = useState(\n\t\tcolumnCount || 3\n\t);\n\tconst [ tempRowCount, setTempRowCount ] = useState( rowCount );\n\tconst [ tempMinimumColumnWidth, setTempMinimumColumnWidth ] = useState(\n\t\tminimumColumnWidth || '12rem'\n\t);\n\n\tconst gridPlacement = isManualPlacement ? 'manual' : 'auto';\n\n\tconst onChangeType = ( value ) => {\n\t\tif ( value === 'manual' ) {\n\t\t\tsetTempMinimumColumnWidth( minimumColumnWidth || '12rem' );\n\t\t} else {\n\t\t\tsetTempColumnCount( columnCount || 3 );\n\t\t\tsetTempRowCount( rowCount );\n\t\t}\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tcolumnCount: value === 'manual' ? tempColumnCount : tempColumnCount,\n\t\t\trowCount: value === 'manual' ? tempRowCount : undefined,\n\t\t\tisManualPlacement: value === 'manual' ? true : undefined,\n\t\t\tminimumColumnWidth:\n\t\t\t\tvalue === 'auto' ? tempMinimumColumnWidth : null,\n\t\t} );\n\t};\n\n\tconst helpText =\n\t\tgridPlacement === 'manual'\n\t\t\t? __(\n\t\t\t\t\t'Grid items can be manually placed in any position on the grid.'\n\t\t\t )\n\t\t\t: __(\n\t\t\t\t\t'Grid items are placed automatically depending on their order.'\n\t\t\t );\n\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\tlabel={ __( 'Grid item position' ) }\n\t\t\tvalue={ gridPlacement }\n\t\t\tonChange={ onChangeType }\n\t\t\tisBlock\n\t\t\thelp={ helpText }\n\t\t>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tkey=\"auto\"\n\t\t\t\tvalue=\"auto\"\n\t\t\t\tlabel={ __( 'Auto' ) }\n\t\t\t/>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tkey=\"manual\"\n\t\t\t\tvalue=\"manual\"\n\t\t\t\tlabel={ __( 'Manual' ) }\n\t\t\t/>\n\t\t</ToggleGroupControl>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_utils", "ToolsPanelItem", "parseQuantityAndUnitFromRawValue", "UnitControl", "NumberControl", "ToggleGroupControl", "ToggleGroupControlOption"]
7
7
  }
@@ -74,6 +74,7 @@ var import_link_picker = require("./components/link-picker/index.cjs");
74
74
  var import_use_rich_url_data = __toESM(require("./components/link-control/use-rich-url-data.cjs"));
75
75
  var import_private_block_context = require("./components/block-list/private-block-context.cjs");
76
76
  var import_use_list_view_panel_state = __toESM(require("./components/use-list-view-panel-state/index.cjs"));
77
+ var import_inner_content = __toESM(require("./components/inner-content/index.cjs"));
77
78
  var import_is_url_like = require("./components/link-control/is-url-like.cjs");
78
79
  var privateApis = {};
79
80
  (0, import_lock_unlock.lock)(privateApis, {
@@ -134,6 +135,7 @@ var privateApis = {};
134
135
  isNavigationOverlayContextKey: import_private_keys.isNavigationOverlayContextKey,
135
136
  isNavigationPostEditorKey: import_private_keys.isNavigationPostEditorKey,
136
137
  mediaUploadOnSuccessKey: import_private_keys.mediaUploadOnSuccessKey,
138
+ mediaSideloadFromUrlKey: import_private_keys.mediaSideloadFromUrlKey,
137
139
  openMediaEditorModalKey: import_private_keys.openMediaEditorModalKey,
138
140
  useBlockElement: import_use_block_refs.useBlockElement,
139
141
  useBlockElementRef: import_use_block_refs.useBlockElementRef,
@@ -142,7 +144,8 @@ var privateApis = {};
142
144
  PrivateBlockContext: import_private_block_context.PrivateBlockContext,
143
145
  useListViewPanelState: import_use_list_view_panel_state.default,
144
146
  isHashLink: import_is_url_like.isHashLink,
145
- isRelativePath: import_is_url_like.isRelativePath
147
+ isRelativePath: import_is_url_like.isRelativePath,
148
+ InnerContent: import_inner_content.default
146
149
  });
147
150
  // Annotate the CommonJS export names for ESM import in node:
148
151
  0 && (module.exports = {