@wordpress/block-editor 11.4.0 → 11.6.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 (400) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/build/components/block-inspector/index.js +11 -10
  3. package/build/components/block-inspector/index.js.map +1 -1
  4. package/build/components/block-inspector/useBlockInspectorAnimationSettings.js +46 -0
  5. package/build/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -0
  6. package/build/components/block-list/block-invalid-warning.js +63 -80
  7. package/build/components/block-list/block-invalid-warning.js.map +1 -1
  8. package/build/components/block-lock/modal.js +1 -0
  9. package/build/components/block-lock/modal.js.map +1 -1
  10. package/build/components/block-settings-menu/block-settings-dropdown.js +2 -2
  11. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  12. package/build/components/block-settings-menu-controls/index.js +1 -1
  13. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  14. package/build/components/block-styles/index.js +2 -1
  15. package/build/components/block-styles/index.js.map +1 -1
  16. package/build/components/block-switcher/block-transformations-menu.native.js +1 -0
  17. package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  18. package/build/components/child-layout-control/index.js +107 -0
  19. package/build/components/child-layout-control/index.js.map +1 -0
  20. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +6 -3
  21. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  22. package/build/components/date-format-picker/index.js +3 -3
  23. package/build/components/date-format-picker/index.js.map +1 -1
  24. package/build/components/global-styles/border-panel.js +306 -0
  25. package/build/components/global-styles/border-panel.js.map +1 -0
  26. package/build/components/global-styles/dimensions-panel.js +594 -0
  27. package/build/components/global-styles/dimensions-panel.js.map +1 -0
  28. package/build/components/global-styles/hooks.js +127 -37
  29. package/build/components/global-styles/hooks.js.map +1 -1
  30. package/build/components/global-styles/index.js +36 -2
  31. package/build/components/global-styles/index.js.map +1 -1
  32. package/build/components/global-styles/typography-panel.js +87 -27
  33. package/build/components/global-styles/typography-panel.js.map +1 -1
  34. package/build/components/global-styles/use-global-styles-output.js +21 -14
  35. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  36. package/build/components/global-styles/utils.js +2 -0
  37. package/build/components/global-styles/utils.js.map +1 -1
  38. package/build/components/index.native.js +23 -0
  39. package/build/components/index.native.js.map +1 -1
  40. package/build/components/inserter/index.js +29 -17
  41. package/build/components/inserter/index.js.map +1 -1
  42. package/build/components/inserter/media-tab/hooks.js +10 -11
  43. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  44. package/build/components/inserter/media-tab/media-list.js +5 -108
  45. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  46. package/build/components/inserter/media-tab/media-preview.js +242 -0
  47. package/build/components/inserter/media-tab/media-preview.js.map +1 -0
  48. package/build/components/inserter/menu.js +1 -1
  49. package/build/components/inserter/menu.js.map +1 -1
  50. package/build/components/inserter/quick-inserter.js +4 -2
  51. package/build/components/inserter/quick-inserter.js.map +1 -1
  52. package/build/components/inserter/search-results.js +10 -3
  53. package/build/components/inserter/search-results.js.map +1 -1
  54. package/build/components/inserter/tabs.js +1 -1
  55. package/build/components/inserter/tabs.js.map +1 -1
  56. package/build/components/inspector-controls/block-support-tools-panel.js +1 -1
  57. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  58. package/build/components/inspector-controls/fill.js +38 -9
  59. package/build/components/inspector-controls/fill.js.map +1 -1
  60. package/build/components/link-control/index.js +1 -1
  61. package/build/components/link-control/index.js.map +1 -1
  62. package/build/components/link-control/search-item.js +5 -2
  63. package/build/components/link-control/search-item.js.map +1 -1
  64. package/build/components/link-control/settings-drawer.js +1 -1
  65. package/build/components/link-control/settings-drawer.js.map +1 -1
  66. package/build/components/link-control/settings.js +1 -0
  67. package/build/components/link-control/settings.js.map +1 -1
  68. package/build/components/list-view/block.js +17 -3
  69. package/build/components/list-view/block.js.map +1 -1
  70. package/build/components/list-view/branch.js +2 -2
  71. package/build/components/list-view/branch.js.map +1 -1
  72. package/build/components/list-view/expander.js +2 -1
  73. package/build/components/list-view/expander.js.map +1 -1
  74. package/build/components/list-view/leaf.js +10 -6
  75. package/build/components/list-view/leaf.js.map +1 -1
  76. package/build/components/list-view/use-block-selection.js +1 -2
  77. package/build/components/list-view/use-block-selection.js.map +1 -1
  78. package/build/components/list-view/use-list-view-scroll-into-view.js +51 -0
  79. package/build/components/list-view/use-list-view-scroll-into-view.js.map +1 -0
  80. package/build/components/off-canvas-editor/appender.js +33 -13
  81. package/build/components/off-canvas-editor/appender.js.map +1 -1
  82. package/build/components/off-canvas-editor/branch.js +6 -3
  83. package/build/components/off-canvas-editor/branch.js.map +1 -1
  84. package/build/components/off-canvas-editor/index.js +8 -2
  85. package/build/components/off-canvas-editor/index.js.map +1 -1
  86. package/build/components/off-canvas-editor/leaf-more-menu.js +34 -4
  87. package/build/components/off-canvas-editor/leaf-more-menu.js.map +1 -1
  88. package/build/components/provider/use-block-sync.js +17 -3
  89. package/build/components/provider/use-block-sync.js.map +1 -1
  90. package/build/components/responsive-block-control/index.js +1 -0
  91. package/build/components/responsive-block-control/index.js.map +1 -1
  92. package/build/components/rich-text/format-toolbar-container.js +0 -3
  93. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  94. package/build/components/rich-text/index.js +9 -43
  95. package/build/components/rich-text/index.js.map +1 -1
  96. package/build/components/rich-text/use-delete.js +73 -0
  97. package/build/components/rich-text/use-delete.js.map +1 -0
  98. package/build/components/rich-text/use-input-rules.js +14 -6
  99. package/build/components/rich-text/use-input-rules.js.map +1 -1
  100. package/build/components/writing-flow/use-selection-observer.js +4 -1
  101. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  102. package/build/hooks/align.js +3 -1
  103. package/build/hooks/align.js.map +1 -1
  104. package/build/hooks/border.js +91 -240
  105. package/build/hooks/border.js.map +1 -1
  106. package/build/hooks/custom-class-name.js +4 -4
  107. package/build/hooks/custom-class-name.js.map +1 -1
  108. package/build/hooks/custom-class-name.native.js +3 -4
  109. package/build/hooks/custom-class-name.native.js.map +1 -1
  110. package/build/hooks/dimensions.js +72 -190
  111. package/build/hooks/dimensions.js.map +1 -1
  112. package/build/hooks/duotone.js +94 -25
  113. package/build/hooks/duotone.js.map +1 -1
  114. package/build/hooks/gap.js +0 -202
  115. package/build/hooks/gap.js.map +1 -1
  116. package/build/hooks/layout.js +33 -27
  117. package/build/hooks/layout.js.map +1 -1
  118. package/build/hooks/margin.js +7 -163
  119. package/build/hooks/margin.js.map +1 -1
  120. package/build/hooks/padding.js +7 -163
  121. package/build/hooks/padding.js.map +1 -1
  122. package/build/hooks/supports.js +7 -1
  123. package/build/hooks/supports.js.map +1 -1
  124. package/build/hooks/typography.js +52 -66
  125. package/build/hooks/typography.js.map +1 -1
  126. package/build/hooks/utils.js +101 -0
  127. package/build/hooks/utils.js.map +1 -1
  128. package/build/layouts/constrained.js +6 -2
  129. package/build/layouts/constrained.js.map +1 -1
  130. package/build/layouts/flex.js +1 -0
  131. package/build/layouts/flex.js.map +1 -1
  132. package/build/private-apis.js +4 -1
  133. package/build/private-apis.js.map +1 -1
  134. package/build/store/actions.js +28 -14
  135. package/build/store/actions.js.map +1 -1
  136. package/build/store/defaults.js +28 -1
  137. package/build/store/defaults.js.map +1 -1
  138. package/build/store/reducer.js +53 -47
  139. package/build/store/reducer.js.map +1 -1
  140. package/build/store/selectors.js +24 -4
  141. package/build/store/selectors.js.map +1 -1
  142. package/build/utils/parse-css-unit-to-px.js +49 -10
  143. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  144. package/build-module/components/block-inspector/index.js +9 -9
  145. package/build-module/components/block-inspector/index.js.map +1 -1
  146. package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js +37 -0
  147. package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -0
  148. package/build-module/components/block-list/block-invalid-warning.js +66 -78
  149. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  150. package/build-module/components/block-lock/modal.js +1 -0
  151. package/build-module/components/block-lock/modal.js.map +1 -1
  152. package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -2
  153. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  154. package/build-module/components/block-settings-menu-controls/index.js +1 -1
  155. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  156. package/build-module/components/block-styles/index.js +2 -1
  157. package/build-module/components/block-styles/index.js.map +1 -1
  158. package/build-module/components/block-switcher/block-transformations-menu.native.js +1 -0
  159. package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  160. package/build-module/components/child-layout-control/index.js +98 -0
  161. package/build-module/components/child-layout-control/index.js.map +1 -0
  162. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +6 -3
  163. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  164. package/build-module/components/date-format-picker/index.js +4 -4
  165. package/build-module/components/date-format-picker/index.js.map +1 -1
  166. package/build-module/components/global-styles/border-panel.js +291 -0
  167. package/build-module/components/global-styles/border-panel.js.map +1 -0
  168. package/build-module/components/global-styles/dimensions-panel.js +574 -0
  169. package/build-module/components/global-styles/dimensions-panel.js.map +1 -0
  170. package/build-module/components/global-styles/hooks.js +123 -34
  171. package/build-module/components/global-styles/hooks.js.map +1 -1
  172. package/build-module/components/global-styles/index.js +3 -1
  173. package/build-module/components/global-styles/index.js.map +1 -1
  174. package/build-module/components/global-styles/typography-panel.js +88 -27
  175. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  176. package/build-module/components/global-styles/use-global-styles-output.js +21 -14
  177. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  178. package/build-module/components/global-styles/utils.js +2 -0
  179. package/build-module/components/global-styles/utils.js.map +1 -1
  180. package/build-module/components/index.native.js +2 -1
  181. package/build-module/components/index.native.js.map +1 -1
  182. package/build-module/components/inserter/index.js +28 -16
  183. package/build-module/components/inserter/index.js.map +1 -1
  184. package/build-module/components/inserter/media-tab/hooks.js +10 -11
  185. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  186. package/build-module/components/inserter/media-tab/media-list.js +6 -105
  187. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  188. package/build-module/components/inserter/media-tab/media-preview.js +222 -0
  189. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -0
  190. package/build-module/components/inserter/menu.js +1 -1
  191. package/build-module/components/inserter/menu.js.map +1 -1
  192. package/build-module/components/inserter/quick-inserter.js +4 -2
  193. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  194. package/build-module/components/inserter/search-results.js +10 -3
  195. package/build-module/components/inserter/search-results.js.map +1 -1
  196. package/build-module/components/inserter/tabs.js +1 -1
  197. package/build-module/components/inserter/tabs.js.map +1 -1
  198. package/build-module/components/inspector-controls/block-support-tools-panel.js +1 -1
  199. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  200. package/build-module/components/inspector-controls/fill.js +39 -9
  201. package/build-module/components/inspector-controls/fill.js.map +1 -1
  202. package/build-module/components/link-control/index.js +1 -1
  203. package/build-module/components/link-control/index.js.map +1 -1
  204. package/build-module/components/link-control/search-item.js +4 -2
  205. package/build-module/components/link-control/search-item.js.map +1 -1
  206. package/build-module/components/link-control/settings-drawer.js +1 -1
  207. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  208. package/build-module/components/link-control/settings.js +1 -0
  209. package/build-module/components/link-control/settings.js.map +1 -1
  210. package/build-module/components/list-view/block.js +16 -3
  211. package/build-module/components/list-view/block.js.map +1 -1
  212. package/build-module/components/list-view/branch.js +2 -2
  213. package/build-module/components/list-view/branch.js.map +1 -1
  214. package/build-module/components/list-view/expander.js +2 -1
  215. package/build-module/components/list-view/expander.js.map +1 -1
  216. package/build-module/components/list-view/leaf.js +8 -4
  217. package/build-module/components/list-view/leaf.js.map +1 -1
  218. package/build-module/components/list-view/use-block-selection.js +1 -2
  219. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  220. package/build-module/components/list-view/use-list-view-scroll-into-view.js +42 -0
  221. package/build-module/components/list-view/use-list-view-scroll-into-view.js.map +1 -0
  222. package/build-module/components/off-canvas-editor/appender.js +33 -14
  223. package/build-module/components/off-canvas-editor/appender.js.map +1 -1
  224. package/build-module/components/off-canvas-editor/branch.js +6 -3
  225. package/build-module/components/off-canvas-editor/branch.js.map +1 -1
  226. package/build-module/components/off-canvas-editor/index.js +8 -2
  227. package/build-module/components/off-canvas-editor/index.js.map +1 -1
  228. package/build-module/components/off-canvas-editor/leaf-more-menu.js +36 -7
  229. package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +1 -1
  230. package/build-module/components/provider/use-block-sync.js +17 -3
  231. package/build-module/components/provider/use-block-sync.js.map +1 -1
  232. package/build-module/components/responsive-block-control/index.js +1 -0
  233. package/build-module/components/responsive-block-control/index.js.map +1 -1
  234. package/build-module/components/rich-text/format-toolbar-container.js +0 -3
  235. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  236. package/build-module/components/rich-text/index.js +9 -43
  237. package/build-module/components/rich-text/index.js.map +1 -1
  238. package/build-module/components/rich-text/use-delete.js +62 -0
  239. package/build-module/components/rich-text/use-delete.js.map +1 -0
  240. package/build-module/components/rich-text/use-input-rules.js +14 -6
  241. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  242. package/build-module/components/writing-flow/use-selection-observer.js +4 -1
  243. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  244. package/build-module/hooks/align.js +3 -1
  245. package/build-module/hooks/align.js.map +1 -1
  246. package/build-module/hooks/border.js +93 -240
  247. package/build-module/hooks/border.js.map +1 -1
  248. package/build-module/hooks/custom-class-name.js +4 -4
  249. package/build-module/hooks/custom-class-name.js.map +1 -1
  250. package/build-module/hooks/custom-class-name.native.js +3 -4
  251. package/build-module/hooks/custom-class-name.native.js.map +1 -1
  252. package/build-module/hooks/dimensions.js +75 -187
  253. package/build-module/hooks/dimensions.js.map +1 -1
  254. package/build-module/hooks/duotone.js +86 -24
  255. package/build-module/hooks/duotone.js.map +1 -1
  256. package/build-module/hooks/gap.js +0 -183
  257. package/build-module/hooks/gap.js.map +1 -1
  258. package/build-module/hooks/layout.js +33 -27
  259. package/build-module/hooks/layout.js.map +1 -1
  260. package/build-module/hooks/margin.js +4 -143
  261. package/build-module/hooks/margin.js.map +1 -1
  262. package/build-module/hooks/padding.js +4 -143
  263. package/build-module/hooks/padding.js.map +1 -1
  264. package/build-module/hooks/supports.js +7 -1
  265. package/build-module/hooks/supports.js.map +1 -1
  266. package/build-module/hooks/typography.js +54 -66
  267. package/build-module/hooks/typography.js.map +1 -1
  268. package/build-module/hooks/utils.js +96 -0
  269. package/build-module/hooks/utils.js.map +1 -1
  270. package/build-module/layouts/constrained.js +6 -2
  271. package/build-module/layouts/constrained.js.map +1 -1
  272. package/build-module/layouts/flex.js +1 -0
  273. package/build-module/layouts/flex.js.map +1 -1
  274. package/build-module/private-apis.js +3 -1
  275. package/build-module/private-apis.js.map +1 -1
  276. package/build-module/store/actions.js +28 -14
  277. package/build-module/store/actions.js.map +1 -1
  278. package/build-module/store/defaults.js +28 -1
  279. package/build-module/store/defaults.js.map +1 -1
  280. package/build-module/store/reducer.js +53 -45
  281. package/build-module/store/reducer.js.map +1 -1
  282. package/build-module/store/selectors.js +22 -4
  283. package/build-module/store/selectors.js.map +1 -1
  284. package/build-module/utils/parse-css-unit-to-px.js +49 -10
  285. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  286. package/build-style/style-rtl.css +39 -27
  287. package/build-style/style.css +39 -27
  288. package/package.json +31 -31
  289. package/src/components/block-draggable/test/__snapshots__/index.native.js.snap +24 -24
  290. package/src/components/block-inspector/index.js +11 -14
  291. package/src/components/block-inspector/style.scss +3 -0
  292. package/src/components/block-inspector/useBlockInspectorAnimationSettings.js +53 -0
  293. package/src/components/block-list/block-invalid-warning.js +72 -64
  294. package/src/components/block-lock/modal.js +1 -0
  295. package/src/components/block-lock/style.scss +0 -9
  296. package/src/components/block-mobile-toolbar/test/__snapshots__/block-actions-menu.native.js.snap +20 -20
  297. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +35 -17
  298. package/src/components/block-preview/test/index.js +0 -2
  299. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -1
  300. package/src/components/block-settings-menu-controls/index.js +2 -1
  301. package/src/components/block-styles/index.js +5 -1
  302. package/src/components/block-styles/style.scss +2 -2
  303. package/src/components/block-switcher/block-transformations-menu.native.js +1 -0
  304. package/src/components/child-layout-control/index.js +106 -0
  305. package/src/components/color-palette/test/__snapshots__/control.js.snap +17 -15
  306. package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +48 -38
  307. package/src/components/date-format-picker/index.js +6 -8
  308. package/src/components/date-format-picker/style.scss +0 -5
  309. package/src/components/global-styles/border-panel.js +285 -0
  310. package/src/components/global-styles/dimensions-panel.js +627 -0
  311. package/src/components/global-styles/hooks.js +160 -44
  312. package/src/components/global-styles/index.js +7 -1
  313. package/src/components/global-styles/test/use-global-styles-output.js +1 -1
  314. package/src/components/global-styles/typography-panel.js +81 -9
  315. package/src/components/global-styles/use-global-styles-output.js +17 -16
  316. package/src/components/global-styles/utils.js +2 -0
  317. package/src/components/index.native.js +5 -0
  318. package/src/components/inner-blocks/test/__snapshots__/index.js.snap +1 -1
  319. package/src/components/inserter/index.js +30 -11
  320. package/src/components/inserter/media-tab/hooks.js +9 -8
  321. package/src/components/inserter/media-tab/media-list.js +3 -122
  322. package/src/components/inserter/media-tab/media-preview.js +268 -0
  323. package/src/components/inserter/menu.js +0 -1
  324. package/src/components/inserter/quick-inserter.js +2 -0
  325. package/src/components/inserter/search-results.js +7 -1
  326. package/src/components/inserter/style.scss +25 -0
  327. package/src/components/inserter/tabs.js +1 -9
  328. package/src/components/inserter/test/__snapshots__/index.native.js.snap +15 -15
  329. package/src/components/inspector-controls/block-support-tools-panel.js +0 -1
  330. package/src/components/inspector-controls/fill.js +32 -8
  331. package/src/components/link-control/index.js +1 -1
  332. package/src/components/link-control/search-item.js +3 -1
  333. package/src/components/link-control/settings-drawer.js +2 -1
  334. package/src/components/link-control/settings.js +1 -0
  335. package/src/components/link-control/style.scss +18 -12
  336. package/src/components/link-control/test/index.js +3 -5
  337. package/src/components/list-view/block.js +19 -1
  338. package/src/components/list-view/branch.js +1 -2
  339. package/src/components/list-view/expander.js +1 -0
  340. package/src/components/list-view/leaf.js +43 -29
  341. package/src/components/list-view/use-block-selection.js +0 -2
  342. package/src/components/list-view/use-list-view-scroll-into-view.js +48 -0
  343. package/src/components/media-replace-flow/style.scss +7 -9
  344. package/src/components/off-canvas-editor/appender.js +44 -21
  345. package/src/components/off-canvas-editor/branch.js +4 -1
  346. package/src/components/off-canvas-editor/index.js +7 -1
  347. package/src/components/off-canvas-editor/leaf-more-menu.js +57 -15
  348. package/src/components/provider/use-block-sync.js +21 -4
  349. package/src/components/responsive-block-control/index.js +1 -0
  350. package/src/components/rich-text/format-toolbar-container.js +1 -7
  351. package/src/components/rich-text/index.js +8 -44
  352. package/src/components/rich-text/use-delete.js +59 -0
  353. package/src/components/rich-text/use-input-rules.js +13 -5
  354. package/src/components/spacing-sizes-control/style.scss +1 -1
  355. package/src/components/url-popover/stories/index.js +1 -0
  356. package/src/components/url-popover/test/index.js +0 -2
  357. package/src/components/writing-flow/use-selection-observer.js +5 -1
  358. package/src/hooks/align.js +1 -1
  359. package/src/hooks/border.js +94 -225
  360. package/src/hooks/custom-class-name.js +4 -4
  361. package/src/hooks/custom-class-name.native.js +3 -4
  362. package/src/hooks/dimensions.js +85 -269
  363. package/src/hooks/duotone.js +100 -30
  364. package/src/hooks/gap.js +0 -208
  365. package/src/hooks/layout.js +38 -22
  366. package/src/hooks/margin.js +1 -164
  367. package/src/hooks/padding.js +1 -163
  368. package/src/hooks/supports.js +6 -0
  369. package/src/hooks/test/__snapshots__/align.native.js.snap +24 -24
  370. package/src/hooks/test/duotone.js +102 -0
  371. package/src/hooks/test/style.js +2 -1
  372. package/src/hooks/test/use-typography-props.js +2 -0
  373. package/src/hooks/typography.js +68 -88
  374. package/src/hooks/utils.js +126 -0
  375. package/src/layouts/constrained.js +23 -17
  376. package/src/layouts/flex.js +1 -0
  377. package/src/private-apis.js +2 -0
  378. package/src/store/actions.js +16 -6
  379. package/src/store/defaults.js +14 -1
  380. package/src/store/reducer.js +68 -43
  381. package/src/store/selectors.js +28 -4
  382. package/src/store/test/actions.js +4 -2
  383. package/src/utils/parse-css-unit-to-px.js +48 -13
  384. package/src/utils/test/parse-css-unit-to-px.js +13 -2
  385. package/tsconfig.tsbuildinfo +1 -1
  386. package/build/hooks/border-radius.js +0 -100
  387. package/build/hooks/border-radius.js.map +0 -1
  388. package/build/hooks/child-layout.js +0 -213
  389. package/build/hooks/child-layout.js.map +0 -1
  390. package/build/hooks/min-height.js +0 -139
  391. package/build/hooks/min-height.js.map +0 -1
  392. package/build-module/hooks/border-radius.js +0 -84
  393. package/build-module/hooks/border-radius.js.map +0 -1
  394. package/build-module/hooks/child-layout.js +0 -193
  395. package/build-module/hooks/child-layout.js.map +0 -1
  396. package/build-module/hooks/min-height.js +0 -116
  397. package/build-module/hooks/min-height.js.map +0 -1
  398. package/src/hooks/border-radius.js +0 -70
  399. package/src/hooks/child-layout.js +0 -195
  400. package/src/hooks/min-height.js +0 -104
@@ -0,0 +1,594 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = DimensionsPanel;
9
+ exports.useHasDimensionsPanel = useHasDimensionsPanel;
10
+
11
+ var _element = require("@wordpress/element");
12
+
13
+ var _classnames = _interopRequireDefault(require("classnames"));
14
+
15
+ var _i18n = require("@wordpress/i18n");
16
+
17
+ var _components = require("@wordpress/components");
18
+
19
+ var _icons = require("@wordpress/icons");
20
+
21
+ var _utils = require("./utils");
22
+
23
+ var _spacingSizesControl = _interopRequireDefault(require("../spacing-sizes-control"));
24
+
25
+ var _heightControl = _interopRequireDefault(require("../height-control"));
26
+
27
+ var _childLayoutControl = _interopRequireDefault(require("../child-layout-control"));
28
+
29
+ var _utils2 = require("../../hooks/utils");
30
+
31
+ /**
32
+ * External dependencies
33
+ */
34
+
35
+ /**
36
+ * WordPress dependencies
37
+ */
38
+
39
+ /**
40
+ * Internal dependencies
41
+ */
42
+ const AXIAL_SIDES = ['horizontal', 'vertical'];
43
+
44
+ function useHasDimensionsPanel(settings) {
45
+ const hasContentSize = useHasContentSize(settings);
46
+ const hasWideSize = useHasWideSize(settings);
47
+ const hasPadding = useHasPadding(settings);
48
+ const hasMargin = useHasMargin(settings);
49
+ const hasGap = useHasGap(settings);
50
+ const hasMinHeight = useHasMinHeight(settings);
51
+ const hasChildLayout = useHasChildLayout(settings);
52
+ return _element.Platform.OS === 'web' && (hasContentSize || hasWideSize || hasPadding || hasMargin || hasGap || hasMinHeight || hasChildLayout);
53
+ }
54
+
55
+ function useHasContentSize(settings) {
56
+ var _settings$layout;
57
+
58
+ return settings === null || settings === void 0 ? void 0 : (_settings$layout = settings.layout) === null || _settings$layout === void 0 ? void 0 : _settings$layout.contentSize;
59
+ }
60
+
61
+ function useHasWideSize(settings) {
62
+ var _settings$layout2;
63
+
64
+ return settings === null || settings === void 0 ? void 0 : (_settings$layout2 = settings.layout) === null || _settings$layout2 === void 0 ? void 0 : _settings$layout2.wideSize;
65
+ }
66
+
67
+ function useHasPadding(settings) {
68
+ var _settings$spacing;
69
+
70
+ return settings === null || settings === void 0 ? void 0 : (_settings$spacing = settings.spacing) === null || _settings$spacing === void 0 ? void 0 : _settings$spacing.padding;
71
+ }
72
+
73
+ function useHasMargin(settings) {
74
+ var _settings$spacing2;
75
+
76
+ return settings === null || settings === void 0 ? void 0 : (_settings$spacing2 = settings.spacing) === null || _settings$spacing2 === void 0 ? void 0 : _settings$spacing2.margin;
77
+ }
78
+
79
+ function useHasGap(settings) {
80
+ var _settings$spacing3;
81
+
82
+ return settings === null || settings === void 0 ? void 0 : (_settings$spacing3 = settings.spacing) === null || _settings$spacing3 === void 0 ? void 0 : _settings$spacing3.blockGap;
83
+ }
84
+
85
+ function useHasMinHeight(settings) {
86
+ var _settings$dimensions;
87
+
88
+ return settings === null || settings === void 0 ? void 0 : (_settings$dimensions = settings.dimensions) === null || _settings$dimensions === void 0 ? void 0 : _settings$dimensions.minHeight;
89
+ }
90
+
91
+ function useHasChildLayout(settings) {
92
+ var _settings$parentLayou;
93
+
94
+ const {
95
+ type: parentLayoutType = 'default',
96
+ default: {
97
+ type: defaultParentLayoutType = 'default'
98
+ } = {},
99
+ allowSizingOnChildren = false
100
+ } = (_settings$parentLayou = settings === null || settings === void 0 ? void 0 : settings.parentLayout) !== null && _settings$parentLayou !== void 0 ? _settings$parentLayou : {};
101
+ const support = (defaultParentLayoutType === 'flex' || parentLayoutType === 'flex') && allowSizingOnChildren;
102
+ return !!(settings !== null && settings !== void 0 && settings.layout) && support;
103
+ }
104
+
105
+ function useHasSpacingPresets(settings) {
106
+ var _settings$spacing4, _ref, _ref2;
107
+
108
+ const {
109
+ custom,
110
+ theme,
111
+ default: defaultPresets
112
+ } = (settings === null || settings === void 0 ? void 0 : (_settings$spacing4 = settings.spacing) === null || _settings$spacing4 === void 0 ? void 0 : _settings$spacing4.spacingSizes) || {};
113
+ const presets = (_ref = (_ref2 = custom !== null && custom !== void 0 ? custom : theme) !== null && _ref2 !== void 0 ? _ref2 : defaultPresets) !== null && _ref !== void 0 ? _ref : [];
114
+ return presets.length > 0;
115
+ }
116
+
117
+ function filterValuesBySides(values, sides) {
118
+ if (!sides) {
119
+ // If no custom side configuration all sides are opted into by default.
120
+ return values;
121
+ } // Only include sides opted into within filtered values.
122
+
123
+
124
+ const filteredValues = {};
125
+ sides.forEach(side => {
126
+ if (side === 'vertical') {
127
+ filteredValues.top = values.top;
128
+ filteredValues.bottom = values.bottom;
129
+ }
130
+
131
+ if (side === 'horizontal') {
132
+ filteredValues.left = values.left;
133
+ filteredValues.right = values.right;
134
+ }
135
+
136
+ filteredValues[side] = values === null || values === void 0 ? void 0 : values[side];
137
+ });
138
+ return filteredValues;
139
+ }
140
+
141
+ function splitStyleValue(value) {
142
+ // Check for shorthand value (a string value).
143
+ if (value && typeof value === 'string') {
144
+ // Convert to value for individual sides for BoxControl.
145
+ return {
146
+ top: value,
147
+ right: value,
148
+ bottom: value,
149
+ left: value
150
+ };
151
+ }
152
+
153
+ return value;
154
+ }
155
+
156
+ function splitGapValue(value) {
157
+ // Check for shorthand value (a string value).
158
+ if (value && typeof value === 'string') {
159
+ // If the value is a string, treat it as a single side (top) for the spacing controls.
160
+ return {
161
+ top: value
162
+ };
163
+ }
164
+
165
+ if (value) {
166
+ return { ...value,
167
+ right: value === null || value === void 0 ? void 0 : value.left,
168
+ bottom: value === null || value === void 0 ? void 0 : value.top
169
+ };
170
+ }
171
+
172
+ return value;
173
+ }
174
+
175
+ function DimensionsToolsPanel(_ref3) {
176
+ let {
177
+ resetAllFilter,
178
+ onChange,
179
+ value,
180
+ panelId,
181
+ children
182
+ } = _ref3;
183
+
184
+ const resetAll = () => {
185
+ const updatedValue = resetAllFilter(value);
186
+ onChange(updatedValue);
187
+ };
188
+
189
+ return (0, _element.createElement)(_components.__experimentalToolsPanel, {
190
+ label: (0, _i18n.__)('Dimensions'),
191
+ resetAll: resetAll,
192
+ panelId: panelId
193
+ }, children);
194
+ }
195
+
196
+ const DEFAULT_CONTROLS = {
197
+ contentSize: true,
198
+ wideSize: true,
199
+ padding: true,
200
+ margin: true,
201
+ blockGap: true,
202
+ minHeight: true
203
+ };
204
+
205
+ function DimensionsPanel(_ref4) {
206
+ var _settings$spacing5, _inheritedValue$layou, _inheritedValue$layou2, _inheritedValue$spaci, _settings$spacing6, _settings$spacing7, _settings$spacing8, _settings$spacing8$pa, _inheritedValue$spaci2, _settings$spacing9, _settings$spacing10, _settings$spacing11, _settings$spacing11$m, _inheritedValue$spaci3, _settings$spacing12, _settings$spacing13, _settings$spacing14, _settings$spacing14$b, _inheritedValue$dimen, _settings$parentLayou2;
207
+
208
+ let {
209
+ as: Wrapper = DimensionsToolsPanel,
210
+ value,
211
+ onChange,
212
+ inheritedValue = value,
213
+ settings,
214
+ panelId,
215
+ defaultControls = DEFAULT_CONTROLS,
216
+ onVisualize = () => {},
217
+ // Special case because the layout controls are not part of the dimensions panel
218
+ // in global styles but not in block inspector.
219
+ includeLayoutControls = false
220
+ } = _ref4;
221
+
222
+ const decodeValue = rawValue => (0, _utils.getValueFromVariable)({
223
+ settings
224
+ }, '', rawValue);
225
+
226
+ const showSpacingPresetsControl = useHasSpacingPresets(settings);
227
+ const units = (0, _components.__experimentalUseCustomUnits)({
228
+ availableUnits: (settings === null || settings === void 0 ? void 0 : (_settings$spacing5 = settings.spacing) === null || _settings$spacing5 === void 0 ? void 0 : _settings$spacing5.units) || ['%', 'px', 'em', 'rem', 'vw']
229
+ }); // Content Size
230
+
231
+ const showContentSizeControl = useHasContentSize(settings) && includeLayoutControls;
232
+ const contentSizeValue = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$layou = inheritedValue.layout) === null || _inheritedValue$layou === void 0 ? void 0 : _inheritedValue$layou.contentSize);
233
+
234
+ const setContentSizeValue = newValue => {
235
+ onChange({ ...value,
236
+ layout: { ...(value === null || value === void 0 ? void 0 : value.layout),
237
+ contentSize: newValue
238
+ }
239
+ });
240
+ };
241
+
242
+ const hasUserSetContentSizeValue = () => {
243
+ var _value$layout;
244
+
245
+ return !!(value !== null && value !== void 0 && (_value$layout = value.layout) !== null && _value$layout !== void 0 && _value$layout.contentSize);
246
+ };
247
+
248
+ const resetContentSizeValue = () => setContentSizeValue(undefined); // Wide Size
249
+
250
+
251
+ const showWideSizeControl = useHasWideSize(settings) && includeLayoutControls;
252
+ const wideSizeValue = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$layou2 = inheritedValue.layout) === null || _inheritedValue$layou2 === void 0 ? void 0 : _inheritedValue$layou2.wideSize);
253
+
254
+ const setWideSizeValue = newValue => {
255
+ onChange({ ...value,
256
+ layout: { ...(value === null || value === void 0 ? void 0 : value.layout),
257
+ wideSize: newValue
258
+ }
259
+ });
260
+ };
261
+
262
+ const hasUserSetWideSizeValue = () => {
263
+ var _value$layout2;
264
+
265
+ return !!(value !== null && value !== void 0 && (_value$layout2 = value.layout) !== null && _value$layout2 !== void 0 && _value$layout2.wideSize);
266
+ };
267
+
268
+ const resetWideSizeValue = () => setWideSizeValue(undefined); // Padding
269
+
270
+
271
+ const showPaddingControl = useHasPadding(settings);
272
+ const rawPadding = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$spaci = inheritedValue.spacing) === null || _inheritedValue$spaci === void 0 ? void 0 : _inheritedValue$spaci.padding);
273
+ const paddingValues = splitStyleValue(rawPadding);
274
+ const paddingSides = Array.isArray(settings === null || settings === void 0 ? void 0 : (_settings$spacing6 = settings.spacing) === null || _settings$spacing6 === void 0 ? void 0 : _settings$spacing6.padding) ? settings === null || settings === void 0 ? void 0 : (_settings$spacing7 = settings.spacing) === null || _settings$spacing7 === void 0 ? void 0 : _settings$spacing7.padding : settings === null || settings === void 0 ? void 0 : (_settings$spacing8 = settings.spacing) === null || _settings$spacing8 === void 0 ? void 0 : (_settings$spacing8$pa = _settings$spacing8.padding) === null || _settings$spacing8$pa === void 0 ? void 0 : _settings$spacing8$pa.sides;
275
+ const isAxialPadding = paddingSides && paddingSides.some(side => AXIAL_SIDES.includes(side));
276
+
277
+ const setPaddingValues = newPaddingValues => {
278
+ const padding = filterValuesBySides(newPaddingValues, paddingSides);
279
+ onChange({ ...value,
280
+ spacing: { ...(value === null || value === void 0 ? void 0 : value.spacing),
281
+ padding
282
+ }
283
+ });
284
+ };
285
+
286
+ const hasPaddingValue = () => {
287
+ var _value$spacing, _value$spacing2;
288
+
289
+ return !!(value !== null && value !== void 0 && (_value$spacing = value.spacing) !== null && _value$spacing !== void 0 && _value$spacing.padding) && Object.keys(value === null || value === void 0 ? void 0 : (_value$spacing2 = value.spacing) === null || _value$spacing2 === void 0 ? void 0 : _value$spacing2.padding).length;
290
+ };
291
+
292
+ const resetPaddingValue = () => setPaddingValues(undefined);
293
+
294
+ const onMouseOverPadding = () => onVisualize('padding'); // Margin
295
+
296
+
297
+ const showMarginControl = useHasMargin(settings);
298
+ const rawMargin = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$spaci2 = inheritedValue.spacing) === null || _inheritedValue$spaci2 === void 0 ? void 0 : _inheritedValue$spaci2.margin);
299
+ const marginValues = splitStyleValue(rawMargin);
300
+ const marginSides = Array.isArray(settings === null || settings === void 0 ? void 0 : (_settings$spacing9 = settings.spacing) === null || _settings$spacing9 === void 0 ? void 0 : _settings$spacing9.margin) ? settings === null || settings === void 0 ? void 0 : (_settings$spacing10 = settings.spacing) === null || _settings$spacing10 === void 0 ? void 0 : _settings$spacing10.margin : settings === null || settings === void 0 ? void 0 : (_settings$spacing11 = settings.spacing) === null || _settings$spacing11 === void 0 ? void 0 : (_settings$spacing11$m = _settings$spacing11.margin) === null || _settings$spacing11$m === void 0 ? void 0 : _settings$spacing11$m.sides;
301
+ const isAxialMargin = marginSides && marginSides.some(side => AXIAL_SIDES.includes(side));
302
+
303
+ const setMarginValues = newMarginValues => {
304
+ const margin = filterValuesBySides(newMarginValues, marginSides);
305
+ onChange({ ...value,
306
+ spacing: { ...(value === null || value === void 0 ? void 0 : value.spacing),
307
+ margin
308
+ }
309
+ });
310
+ };
311
+
312
+ const hasMarginValue = () => {
313
+ var _value$spacing3, _value$spacing4;
314
+
315
+ return !!(value !== null && value !== void 0 && (_value$spacing3 = value.spacing) !== null && _value$spacing3 !== void 0 && _value$spacing3.margin) && Object.keys(value === null || value === void 0 ? void 0 : (_value$spacing4 = value.spacing) === null || _value$spacing4 === void 0 ? void 0 : _value$spacing4.margin).length;
316
+ };
317
+
318
+ const resetMarginValue = () => setMarginValues(undefined);
319
+
320
+ const onMouseOverMargin = () => onVisualize('margin'); // Block Gap
321
+
322
+
323
+ const showGapControl = useHasGap(settings);
324
+ const gapValue = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$spaci3 = inheritedValue.spacing) === null || _inheritedValue$spaci3 === void 0 ? void 0 : _inheritedValue$spaci3.blockGap);
325
+ const gapValues = splitGapValue(gapValue);
326
+ const gapSides = Array.isArray(settings === null || settings === void 0 ? void 0 : (_settings$spacing12 = settings.spacing) === null || _settings$spacing12 === void 0 ? void 0 : _settings$spacing12.blockGap) ? settings === null || settings === void 0 ? void 0 : (_settings$spacing13 = settings.spacing) === null || _settings$spacing13 === void 0 ? void 0 : _settings$spacing13.blockGap : settings === null || settings === void 0 ? void 0 : (_settings$spacing14 = settings.spacing) === null || _settings$spacing14 === void 0 ? void 0 : (_settings$spacing14$b = _settings$spacing14.blockGap) === null || _settings$spacing14$b === void 0 ? void 0 : _settings$spacing14$b.sides;
327
+ const isAxialGap = gapSides && gapSides.some(side => AXIAL_SIDES.includes(side));
328
+
329
+ const setGapValue = newGapValue => {
330
+ onChange({ ...value,
331
+ spacing: { ...(value === null || value === void 0 ? void 0 : value.spacing),
332
+ blockGap: newGapValue
333
+ }
334
+ });
335
+ };
336
+
337
+ const setGapValues = nextBoxGapValue => {
338
+ if (!nextBoxGapValue) {
339
+ setGapValue(null);
340
+ } // If axial gap is not enabled, treat the 'top' value as the shorthand gap value.
341
+
342
+
343
+ if (!isAxialGap && nextBoxGapValue !== null && nextBoxGapValue !== void 0 && nextBoxGapValue.hasOwnProperty('top')) {
344
+ setGapValue(nextBoxGapValue.top);
345
+ } else {
346
+ setGapValue({
347
+ top: nextBoxGapValue === null || nextBoxGapValue === void 0 ? void 0 : nextBoxGapValue.top,
348
+ left: nextBoxGapValue === null || nextBoxGapValue === void 0 ? void 0 : nextBoxGapValue.left
349
+ });
350
+ }
351
+ };
352
+
353
+ const resetGapValue = () => setGapValue(undefined);
354
+
355
+ const hasGapValue = () => {
356
+ var _value$spacing5;
357
+
358
+ return !!(value !== null && value !== void 0 && (_value$spacing5 = value.spacing) !== null && _value$spacing5 !== void 0 && _value$spacing5.blockGap);
359
+ }; // Min Height
360
+
361
+
362
+ const showMinHeightControl = useHasMinHeight(settings);
363
+ const minHeightValue = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$dimen = inheritedValue.dimensions) === null || _inheritedValue$dimen === void 0 ? void 0 : _inheritedValue$dimen.minHeight);
364
+
365
+ const setMinHeightValue = newValue => {
366
+ onChange({ ...value,
367
+ dimensions: { ...(value === null || value === void 0 ? void 0 : value.dimensions),
368
+ minHeight: newValue
369
+ }
370
+ });
371
+ };
372
+
373
+ const resetMinHeightValue = () => {
374
+ setMinHeightValue(undefined);
375
+ };
376
+
377
+ const hasMinHeightValue = () => {
378
+ var _value$dimensions;
379
+
380
+ return !!(value !== null && value !== void 0 && (_value$dimensions = value.dimensions) !== null && _value$dimensions !== void 0 && _value$dimensions.minHeight);
381
+ }; // Child Layout
382
+
383
+
384
+ const showChildLayoutControl = useHasChildLayout(settings);
385
+ const childLayout = inheritedValue === null || inheritedValue === void 0 ? void 0 : inheritedValue.layout;
386
+ const {
387
+ orientation = 'horizontal'
388
+ } = (_settings$parentLayou2 = settings === null || settings === void 0 ? void 0 : settings.parentLayout) !== null && _settings$parentLayou2 !== void 0 ? _settings$parentLayou2 : {};
389
+ const childLayoutOrientationLabel = orientation === 'horizontal' ? (0, _i18n.__)('Width') : (0, _i18n.__)('Height');
390
+
391
+ const setChildLayout = newChildLayout => {
392
+ onChange({ ...value,
393
+ layout: { ...(value === null || value === void 0 ? void 0 : value.layout),
394
+ ...newChildLayout
395
+ }
396
+ });
397
+ };
398
+
399
+ const resetChildLayoutValue = () => {
400
+ setChildLayout({
401
+ selfStretch: undefined,
402
+ flexSize: undefined
403
+ });
404
+ };
405
+
406
+ const hasChildLayoutValue = () => !!(value !== null && value !== void 0 && value.layout);
407
+
408
+ const resetAllFilter = (0, _element.useCallback)(previousValue => {
409
+ return { ...previousValue,
410
+ layout: (0, _utils2.cleanEmptyObject)({ ...(previousValue === null || previousValue === void 0 ? void 0 : previousValue.layout),
411
+ contentSize: undefined,
412
+ wideSize: undefined,
413
+ selfStretch: undefined,
414
+ flexSize: undefined
415
+ }),
416
+ spacing: { ...(previousValue === null || previousValue === void 0 ? void 0 : previousValue.spacing),
417
+ padding: undefined,
418
+ margin: undefined,
419
+ blockGap: undefined
420
+ },
421
+ dimensions: { ...(previousValue === null || previousValue === void 0 ? void 0 : previousValue.dimensions),
422
+ minHeight: undefined
423
+ }
424
+ };
425
+ }, []);
426
+
427
+ const onMouseLeaveControls = () => onVisualize(false);
428
+
429
+ return (0, _element.createElement)(Wrapper, {
430
+ resetAllFilter: resetAllFilter,
431
+ value: value,
432
+ onChange: onChange,
433
+ panelId: panelId
434
+ }, (showContentSizeControl || showWideSizeControl) && (0, _element.createElement)("span", {
435
+ className: "span-columns"
436
+ }, (0, _i18n.__)('Set the width of the main content area.')), showContentSizeControl && (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
437
+ className: "single-column",
438
+ label: (0, _i18n.__)('Content size'),
439
+ hasValue: hasUserSetContentSizeValue,
440
+ onDeselect: resetContentSizeValue,
441
+ isShownByDefault: defaultControls.contentSize,
442
+ panelId: panelId
443
+ }, (0, _element.createElement)(_components.__experimentalHStack, {
444
+ alignment: "flex-end",
445
+ justify: "flex-start"
446
+ }, (0, _element.createElement)(_components.__experimentalUnitControl, {
447
+ label: (0, _i18n.__)('Content'),
448
+ labelPosition: "top",
449
+ __unstableInputWidth: "80px",
450
+ value: contentSizeValue || '',
451
+ onChange: nextContentSize => {
452
+ setContentSizeValue(nextContentSize);
453
+ },
454
+ units: units
455
+ }), (0, _element.createElement)(_components.__experimentalView, null, (0, _element.createElement)(_icons.Icon, {
456
+ icon: _icons.positionCenter
457
+ })))), showWideSizeControl && (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
458
+ className: "single-column",
459
+ label: (0, _i18n.__)('Wide size'),
460
+ hasValue: hasUserSetWideSizeValue,
461
+ onDeselect: resetWideSizeValue,
462
+ isShownByDefault: defaultControls.wideSize,
463
+ panelId: panelId
464
+ }, (0, _element.createElement)(_components.__experimentalHStack, {
465
+ alignment: "flex-end",
466
+ justify: "flex-start"
467
+ }, (0, _element.createElement)(_components.__experimentalUnitControl, {
468
+ label: (0, _i18n.__)('Wide'),
469
+ labelPosition: "top",
470
+ __unstableInputWidth: "80px",
471
+ value: wideSizeValue || '',
472
+ onChange: nextWideSize => {
473
+ setWideSizeValue(nextWideSize);
474
+ },
475
+ units: units
476
+ }), (0, _element.createElement)(_components.__experimentalView, null, (0, _element.createElement)(_icons.Icon, {
477
+ icon: _icons.stretchWide
478
+ })))), showPaddingControl && (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
479
+ hasValue: hasPaddingValue,
480
+ label: (0, _i18n.__)('Padding'),
481
+ onDeselect: resetPaddingValue,
482
+ isShownByDefault: defaultControls.padding,
483
+ className: (0, _classnames.default)({
484
+ 'tools-panel-item-spacing': showSpacingPresetsControl
485
+ }),
486
+ panelId: panelId
487
+ }, !showSpacingPresetsControl && (0, _element.createElement)(_components.__experimentalBoxControl, {
488
+ values: paddingValues,
489
+ onChange: setPaddingValues,
490
+ label: (0, _i18n.__)('Padding'),
491
+ sides: paddingSides,
492
+ units: units,
493
+ allowReset: false,
494
+ splitOnAxis: isAxialPadding,
495
+ onMouseOver: onMouseOverPadding,
496
+ onMouseOut: onMouseLeaveControls
497
+ }), showSpacingPresetsControl && (0, _element.createElement)(_spacingSizesControl.default, {
498
+ values: paddingValues,
499
+ onChange: setPaddingValues,
500
+ label: (0, _i18n.__)('Padding'),
501
+ sides: paddingSides,
502
+ units: units,
503
+ allowReset: false,
504
+ splitOnAxis: isAxialPadding,
505
+ onMouseOver: onMouseOverPadding,
506
+ onMouseOut: onMouseLeaveControls
507
+ })), showMarginControl && (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
508
+ hasValue: hasMarginValue,
509
+ label: (0, _i18n.__)('Margin'),
510
+ onDeselect: resetMarginValue,
511
+ isShownByDefault: defaultControls.margin,
512
+ className: (0, _classnames.default)({
513
+ 'tools-panel-item-spacing': showSpacingPresetsControl
514
+ }),
515
+ panelId: panelId
516
+ }, !showSpacingPresetsControl && (0, _element.createElement)(_components.__experimentalBoxControl, {
517
+ values: marginValues,
518
+ onChange: setMarginValues,
519
+ label: (0, _i18n.__)('Margin'),
520
+ sides: marginSides,
521
+ units: units,
522
+ allowReset: false,
523
+ splitOnAxis: isAxialMargin,
524
+ onMouseOver: onMouseOverMargin,
525
+ onMouseOut: onMouseLeaveControls
526
+ }), showSpacingPresetsControl && (0, _element.createElement)(_spacingSizesControl.default, {
527
+ values: marginValues,
528
+ onChange: setMarginValues,
529
+ label: (0, _i18n.__)('Margin'),
530
+ sides: marginSides,
531
+ units: units,
532
+ allowReset: false,
533
+ splitOnAxis: isAxialMargin,
534
+ onMouseOver: onMouseOverMargin,
535
+ onMouseOut: onMouseLeaveControls
536
+ })), showGapControl && (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
537
+ hasValue: hasGapValue,
538
+ label: (0, _i18n.__)('Block spacing'),
539
+ onDeselect: resetGapValue,
540
+ isShownByDefault: defaultControls.blockGap,
541
+ className: (0, _classnames.default)({
542
+ 'tools-panel-item-spacing': showSpacingPresetsControl
543
+ }),
544
+ panelId: panelId
545
+ }, !showSpacingPresetsControl && (isAxialGap ? (0, _element.createElement)(_components.__experimentalBoxControl, {
546
+ label: (0, _i18n.__)('Block spacing'),
547
+ min: 0,
548
+ onChange: setGapValues,
549
+ units: units,
550
+ sides: gapSides,
551
+ values: gapValues,
552
+ allowReset: false,
553
+ splitOnAxis: isAxialGap
554
+ }) : (0, _element.createElement)(_components.__experimentalUnitControl, {
555
+ label: (0, _i18n.__)('Block spacing'),
556
+ __unstableInputWidth: "80px",
557
+ min: 0,
558
+ onChange: setGapValue,
559
+ units: units,
560
+ value: gapValue
561
+ })), showSpacingPresetsControl && (0, _element.createElement)(_spacingSizesControl.default, {
562
+ label: (0, _i18n.__)('Block spacing'),
563
+ min: 0,
564
+ onChange: setGapValues,
565
+ sides: isAxialGap ? gapSides : ['top'] // Use 'top' as the shorthand property in non-axial configurations.
566
+ ,
567
+ values: gapValues,
568
+ allowReset: false,
569
+ splitOnAxis: isAxialGap
570
+ })), showMinHeightControl && (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
571
+ hasValue: hasMinHeightValue,
572
+ label: (0, _i18n.__)('Min. height'),
573
+ onDeselect: resetMinHeightValue,
574
+ isShownByDefault: defaultControls.minHeight,
575
+ panelId: panelId
576
+ }, (0, _element.createElement)(_heightControl.default, {
577
+ label: (0, _i18n.__)('Min. height'),
578
+ value: minHeightValue,
579
+ onChange: setMinHeightValue
580
+ })), showChildLayoutControl && (0, _element.createElement)(_components.__experimentalVStack, {
581
+ as: _components.__experimentalToolsPanelItem,
582
+ spacing: 2,
583
+ hasValue: hasChildLayoutValue,
584
+ label: childLayoutOrientationLabel,
585
+ onDeselect: resetChildLayoutValue,
586
+ isShownByDefault: defaultControls.childLayout,
587
+ panelId: panelId
588
+ }, (0, _element.createElement)(_childLayoutControl.default, {
589
+ value: childLayout,
590
+ onChange: setChildLayout,
591
+ parentLayout: settings === null || settings === void 0 ? void 0 : settings.parentLayout
592
+ })));
593
+ }
594
+ //# sourceMappingURL=dimensions-panel.js.map