@wordpress/block-editor 11.4.0 → 11.5.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 (288) hide show
  1. package/CHANGELOG.md +6 -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-lock/modal.js +1 -0
  7. package/build/components/block-lock/modal.js.map +1 -1
  8. package/build/components/block-settings-menu/block-settings-dropdown.js +2 -2
  9. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  10. package/build/components/block-styles/index.js +2 -1
  11. package/build/components/block-styles/index.js.map +1 -1
  12. package/build/components/child-layout-control/index.js +107 -0
  13. package/build/components/child-layout-control/index.js.map +1 -0
  14. package/build/components/date-format-picker/index.js +3 -3
  15. package/build/components/date-format-picker/index.js.map +1 -1
  16. package/build/components/global-styles/dimensions-panel.js +594 -0
  17. package/build/components/global-styles/dimensions-panel.js.map +1 -0
  18. package/build/components/global-styles/hooks.js +72 -36
  19. package/build/components/global-styles/hooks.js.map +1 -1
  20. package/build/components/global-styles/index.js +20 -6
  21. package/build/components/global-styles/index.js.map +1 -1
  22. package/build/components/global-styles/typography-panel.js +25 -12
  23. package/build/components/global-styles/typography-panel.js.map +1 -1
  24. package/build/components/global-styles/use-global-styles-output.js +1 -1
  25. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  26. package/build/components/global-styles/utils.js +2 -0
  27. package/build/components/global-styles/utils.js.map +1 -1
  28. package/build/components/index.native.js +23 -0
  29. package/build/components/index.native.js.map +1 -1
  30. package/build/components/inserter/media-tab/hooks.js +10 -11
  31. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  32. package/build/components/inserter/media-tab/media-list.js +5 -108
  33. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  34. package/build/components/inserter/media-tab/media-preview.js +242 -0
  35. package/build/components/inserter/media-tab/media-preview.js.map +1 -0
  36. package/build/components/inspector-controls/block-support-tools-panel.js +1 -1
  37. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  38. package/build/components/inspector-controls/fill.js +38 -9
  39. package/build/components/inspector-controls/fill.js.map +1 -1
  40. package/build/components/link-control/settings-drawer.js +1 -1
  41. package/build/components/link-control/settings-drawer.js.map +1 -1
  42. package/build/components/link-control/settings.js +1 -0
  43. package/build/components/link-control/settings.js.map +1 -1
  44. package/build/components/list-view/block.js +17 -3
  45. package/build/components/list-view/block.js.map +1 -1
  46. package/build/components/list-view/branch.js +2 -2
  47. package/build/components/list-view/branch.js.map +1 -1
  48. package/build/components/list-view/expander.js +2 -1
  49. package/build/components/list-view/expander.js.map +1 -1
  50. package/build/components/list-view/leaf.js +10 -6
  51. package/build/components/list-view/leaf.js.map +1 -1
  52. package/build/components/list-view/use-list-view-scroll-into-view.js +51 -0
  53. package/build/components/list-view/use-list-view-scroll-into-view.js.map +1 -0
  54. package/build/components/off-canvas-editor/appender.js +5 -10
  55. package/build/components/off-canvas-editor/appender.js.map +1 -1
  56. package/build/components/off-canvas-editor/branch.js +1 -0
  57. package/build/components/off-canvas-editor/branch.js.map +1 -1
  58. package/build/components/off-canvas-editor/index.js +7 -3
  59. package/build/components/off-canvas-editor/index.js.map +1 -1
  60. package/build/components/off-canvas-editor/leaf-more-menu.js +34 -4
  61. package/build/components/off-canvas-editor/leaf-more-menu.js.map +1 -1
  62. package/build/components/off-canvas-editor/link-ui.js +1 -0
  63. package/build/components/off-canvas-editor/link-ui.js.map +1 -1
  64. package/build/components/responsive-block-control/index.js +1 -0
  65. package/build/components/responsive-block-control/index.js.map +1 -1
  66. package/build/components/rich-text/index.js +9 -43
  67. package/build/components/rich-text/index.js.map +1 -1
  68. package/build/components/rich-text/use-delete.js +73 -0
  69. package/build/components/rich-text/use-delete.js.map +1 -0
  70. package/build/components/rich-text/use-input-rules.js +14 -6
  71. package/build/components/rich-text/use-input-rules.js.map +1 -1
  72. package/build/components/writing-flow/use-selection-observer.js +4 -1
  73. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  74. package/build/hooks/align.js +3 -1
  75. package/build/hooks/align.js.map +1 -1
  76. package/build/hooks/dimensions.js +72 -190
  77. package/build/hooks/dimensions.js.map +1 -1
  78. package/build/hooks/duotone.js +94 -25
  79. package/build/hooks/duotone.js.map +1 -1
  80. package/build/hooks/gap.js +0 -202
  81. package/build/hooks/gap.js.map +1 -1
  82. package/build/hooks/layout.js +14 -5
  83. package/build/hooks/layout.js.map +1 -1
  84. package/build/hooks/margin.js +7 -163
  85. package/build/hooks/margin.js.map +1 -1
  86. package/build/hooks/padding.js +7 -163
  87. package/build/hooks/padding.js.map +1 -1
  88. package/build/hooks/typography.js +50 -65
  89. package/build/hooks/typography.js.map +1 -1
  90. package/build/hooks/utils.js +75 -0
  91. package/build/hooks/utils.js.map +1 -1
  92. package/build/layouts/flex.js +1 -0
  93. package/build/layouts/flex.js.map +1 -1
  94. package/build/store/actions.js +24 -12
  95. package/build/store/actions.js.map +1 -1
  96. package/build/store/defaults.js +28 -1
  97. package/build/store/defaults.js.map +1 -1
  98. package/build/store/reducer.js +53 -47
  99. package/build/store/reducer.js.map +1 -1
  100. package/build/store/selectors.js +5 -1
  101. package/build/store/selectors.js.map +1 -1
  102. package/build/utils/parse-css-unit-to-px.js +36 -3
  103. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  104. package/build-module/components/block-inspector/index.js +9 -9
  105. package/build-module/components/block-inspector/index.js.map +1 -1
  106. package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js +37 -0
  107. package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -0
  108. package/build-module/components/block-lock/modal.js +1 -0
  109. package/build-module/components/block-lock/modal.js.map +1 -1
  110. package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -2
  111. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  112. package/build-module/components/block-styles/index.js +2 -1
  113. package/build-module/components/block-styles/index.js.map +1 -1
  114. package/build-module/components/child-layout-control/index.js +98 -0
  115. package/build-module/components/child-layout-control/index.js.map +1 -0
  116. package/build-module/components/date-format-picker/index.js +4 -4
  117. package/build-module/components/date-format-picker/index.js.map +1 -1
  118. package/build-module/components/global-styles/dimensions-panel.js +574 -0
  119. package/build-module/components/global-styles/dimensions-panel.js.map +1 -0
  120. package/build-module/components/global-styles/hooks.js +71 -33
  121. package/build-module/components/global-styles/hooks.js.map +1 -1
  122. package/build-module/components/global-styles/index.js +2 -1
  123. package/build-module/components/global-styles/index.js.map +1 -1
  124. package/build-module/components/global-styles/typography-panel.js +26 -11
  125. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  126. package/build-module/components/global-styles/use-global-styles-output.js +1 -1
  127. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  128. package/build-module/components/global-styles/utils.js +2 -0
  129. package/build-module/components/global-styles/utils.js.map +1 -1
  130. package/build-module/components/index.native.js +2 -1
  131. package/build-module/components/index.native.js.map +1 -1
  132. package/build-module/components/inserter/media-tab/hooks.js +10 -11
  133. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  134. package/build-module/components/inserter/media-tab/media-list.js +6 -105
  135. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  136. package/build-module/components/inserter/media-tab/media-preview.js +222 -0
  137. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -0
  138. package/build-module/components/inspector-controls/block-support-tools-panel.js +1 -1
  139. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  140. package/build-module/components/inspector-controls/fill.js +39 -9
  141. package/build-module/components/inspector-controls/fill.js.map +1 -1
  142. package/build-module/components/link-control/settings-drawer.js +1 -1
  143. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  144. package/build-module/components/link-control/settings.js +1 -0
  145. package/build-module/components/link-control/settings.js.map +1 -1
  146. package/build-module/components/list-view/block.js +16 -3
  147. package/build-module/components/list-view/block.js.map +1 -1
  148. package/build-module/components/list-view/branch.js +2 -2
  149. package/build-module/components/list-view/branch.js.map +1 -1
  150. package/build-module/components/list-view/expander.js +2 -1
  151. package/build-module/components/list-view/expander.js.map +1 -1
  152. package/build-module/components/list-view/leaf.js +8 -4
  153. package/build-module/components/list-view/leaf.js.map +1 -1
  154. package/build-module/components/list-view/use-list-view-scroll-into-view.js +42 -0
  155. package/build-module/components/list-view/use-list-view-scroll-into-view.js.map +1 -0
  156. package/build-module/components/off-canvas-editor/appender.js +5 -10
  157. package/build-module/components/off-canvas-editor/appender.js.map +1 -1
  158. package/build-module/components/off-canvas-editor/branch.js +1 -0
  159. package/build-module/components/off-canvas-editor/branch.js.map +1 -1
  160. package/build-module/components/off-canvas-editor/index.js +7 -3
  161. package/build-module/components/off-canvas-editor/index.js.map +1 -1
  162. package/build-module/components/off-canvas-editor/leaf-more-menu.js +36 -7
  163. package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +1 -1
  164. package/build-module/components/off-canvas-editor/link-ui.js +1 -0
  165. package/build-module/components/off-canvas-editor/link-ui.js.map +1 -1
  166. package/build-module/components/responsive-block-control/index.js +1 -0
  167. package/build-module/components/responsive-block-control/index.js.map +1 -1
  168. package/build-module/components/rich-text/index.js +9 -43
  169. package/build-module/components/rich-text/index.js.map +1 -1
  170. package/build-module/components/rich-text/use-delete.js +62 -0
  171. package/build-module/components/rich-text/use-delete.js.map +1 -0
  172. package/build-module/components/rich-text/use-input-rules.js +14 -6
  173. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  174. package/build-module/components/writing-flow/use-selection-observer.js +4 -1
  175. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  176. package/build-module/hooks/align.js +3 -1
  177. package/build-module/hooks/align.js.map +1 -1
  178. package/build-module/hooks/dimensions.js +75 -187
  179. package/build-module/hooks/dimensions.js.map +1 -1
  180. package/build-module/hooks/duotone.js +86 -24
  181. package/build-module/hooks/duotone.js.map +1 -1
  182. package/build-module/hooks/gap.js +0 -183
  183. package/build-module/hooks/gap.js.map +1 -1
  184. package/build-module/hooks/layout.js +14 -5
  185. package/build-module/hooks/layout.js.map +1 -1
  186. package/build-module/hooks/margin.js +4 -143
  187. package/build-module/hooks/margin.js.map +1 -1
  188. package/build-module/hooks/padding.js +4 -143
  189. package/build-module/hooks/padding.js.map +1 -1
  190. package/build-module/hooks/typography.js +52 -65
  191. package/build-module/hooks/typography.js.map +1 -1
  192. package/build-module/hooks/utils.js +70 -0
  193. package/build-module/hooks/utils.js.map +1 -1
  194. package/build-module/layouts/flex.js +1 -0
  195. package/build-module/layouts/flex.js.map +1 -1
  196. package/build-module/store/actions.js +24 -12
  197. package/build-module/store/actions.js.map +1 -1
  198. package/build-module/store/defaults.js +28 -1
  199. package/build-module/store/defaults.js.map +1 -1
  200. package/build-module/store/reducer.js +53 -45
  201. package/build-module/store/reducer.js.map +1 -1
  202. package/build-module/store/selectors.js +5 -1
  203. package/build-module/store/selectors.js.map +1 -1
  204. package/build-module/utils/parse-css-unit-to-px.js +36 -3
  205. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  206. package/build-style/style-rtl.css +33 -21
  207. package/build-style/style.css +33 -21
  208. package/package.json +31 -31
  209. package/src/components/block-draggable/test/__snapshots__/index.native.js.snap +24 -24
  210. package/src/components/block-inspector/index.js +11 -14
  211. package/src/components/block-inspector/useBlockInspectorAnimationSettings.js +53 -0
  212. package/src/components/block-lock/modal.js +1 -0
  213. package/src/components/block-lock/style.scss +0 -9
  214. package/src/components/block-mobile-toolbar/test/__snapshots__/block-actions-menu.native.js.snap +20 -20
  215. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +15 -15
  216. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -1
  217. package/src/components/block-styles/index.js +5 -1
  218. package/src/components/child-layout-control/index.js +106 -0
  219. package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
  220. package/src/components/date-format-picker/index.js +6 -8
  221. package/src/components/date-format-picker/style.scss +0 -5
  222. package/src/components/global-styles/dimensions-panel.js +627 -0
  223. package/src/components/global-styles/hooks.js +88 -45
  224. package/src/components/global-styles/index.js +5 -1
  225. package/src/components/global-styles/typography-panel.js +33 -8
  226. package/src/components/global-styles/use-global-styles-output.js +4 -3
  227. package/src/components/global-styles/utils.js +2 -0
  228. package/src/components/index.native.js +5 -0
  229. package/src/components/inner-blocks/test/__snapshots__/index.js.snap +1 -1
  230. package/src/components/inserter/media-tab/hooks.js +9 -8
  231. package/src/components/inserter/media-tab/media-list.js +3 -122
  232. package/src/components/inserter/media-tab/media-preview.js +268 -0
  233. package/src/components/inserter/style.scss +22 -0
  234. package/src/components/inserter/test/__snapshots__/index.native.js.snap +15 -15
  235. package/src/components/inspector-controls/block-support-tools-panel.js +0 -1
  236. package/src/components/inspector-controls/fill.js +32 -8
  237. package/src/components/link-control/settings-drawer.js +2 -1
  238. package/src/components/link-control/settings.js +1 -0
  239. package/src/components/link-control/style.scss +18 -8
  240. package/src/components/link-control/test/index.js +3 -3
  241. package/src/components/list-view/block.js +19 -1
  242. package/src/components/list-view/branch.js +1 -2
  243. package/src/components/list-view/expander.js +1 -0
  244. package/src/components/list-view/leaf.js +43 -29
  245. package/src/components/list-view/use-list-view-scroll-into-view.js +48 -0
  246. package/src/components/media-replace-flow/style.scss +7 -9
  247. package/src/components/off-canvas-editor/appender.js +13 -16
  248. package/src/components/off-canvas-editor/branch.js +1 -0
  249. package/src/components/off-canvas-editor/index.js +8 -2
  250. package/src/components/off-canvas-editor/leaf-more-menu.js +57 -15
  251. package/src/components/off-canvas-editor/link-ui.js +1 -0
  252. package/src/components/responsive-block-control/index.js +1 -0
  253. package/src/components/rich-text/index.js +8 -44
  254. package/src/components/rich-text/use-delete.js +59 -0
  255. package/src/components/rich-text/use-input-rules.js +13 -5
  256. package/src/components/spacing-sizes-control/style.scss +1 -1
  257. package/src/components/url-popover/stories/index.js +1 -0
  258. package/src/components/writing-flow/use-selection-observer.js +5 -1
  259. package/src/hooks/align.js +1 -1
  260. package/src/hooks/dimensions.js +85 -269
  261. package/src/hooks/duotone.js +100 -30
  262. package/src/hooks/gap.js +0 -208
  263. package/src/hooks/layout.js +19 -6
  264. package/src/hooks/margin.js +1 -164
  265. package/src/hooks/padding.js +1 -163
  266. package/src/hooks/test/__snapshots__/align.native.js.snap +24 -24
  267. package/src/hooks/test/duotone.js +102 -0
  268. package/src/hooks/typography.js +66 -88
  269. package/src/hooks/utils.js +90 -0
  270. package/src/layouts/flex.js +1 -0
  271. package/src/store/actions.js +12 -4
  272. package/src/store/defaults.js +14 -1
  273. package/src/store/reducer.js +68 -43
  274. package/src/store/selectors.js +8 -1
  275. package/src/store/test/actions.js +4 -2
  276. package/src/utils/parse-css-unit-to-px.js +35 -5
  277. package/src/utils/test/parse-css-unit-to-px.js +12 -0
  278. package/tsconfig.tsbuildinfo +1 -1
  279. package/build/hooks/child-layout.js +0 -213
  280. package/build/hooks/child-layout.js.map +0 -1
  281. package/build/hooks/min-height.js +0 -139
  282. package/build/hooks/min-height.js.map +0 -1
  283. package/build-module/hooks/child-layout.js +0 -193
  284. package/build-module/hooks/child-layout.js.map +0 -1
  285. package/build-module/hooks/min-height.js +0 -116
  286. package/build-module/hooks/min-height.js.map +0 -1
  287. package/src/hooks/child-layout.js +0 -195
  288. package/src/hooks/min-height.js +0 -104
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/date-format-picker/index.js"],"names":["EXAMPLE_DATE","Date","DateFormatPicker","format","defaultFormat","onChange","checked","NonDefaultControls","suggestedFormats","Set","suggestedOptions","map","suggestedFormat","index","key","name","customOption","className","__experimentalHint","isCustom","setIsCustom","includes","find","option","selectedItem","Link","value"],"mappings":";;;;;;;AAKA;;AAFA;;AACA;;AAEA;;AANA;AACA;AACA;AAaA;AACA;AACA;AACA;AACA,MAAMA,YAAY,GAAG,IAAIC,IAAJ,CAAU,IAAV,EAAgB,CAAhB,EAAmB,EAAnB,CAArB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACe,SAASC,gBAAT,OAIX;AAAA,MAJsC;AACzCC,IAAAA,MADyC;AAEzCC,IAAAA,aAFyC;AAGzCC,IAAAA;AAHyC,GAItC;AACH,SACC;AAAU,IAAA,SAAS,EAAC;AAApB,KACC,4BAAC,0BAAD;AAAgB,IAAA,EAAE,EAAC;AAAnB,KAA8B,cAAI,aAAJ,CAA9B,CADD,EAEC,4BAAC,yBAAD;AACC,IAAA,KAAK,EACJ,qDACG,cAAI,gBAAJ,CADH,EAEC;AAAM,MAAA,SAAS,EAAC;AAAhB,OACG,oBAAUD,aAAV,EAAyBJ,YAAzB,CADH,CAFD,CAFF;AASC,IAAA,OAAO,EAAG,CAAEG,MATb;AAUC,IAAA,QAAQ,EAAKG,OAAF,IACVD,QAAQ,CAAEC,OAAO,GAAG,IAAH,GAAUF,aAAnB;AAXV,IAFD,EAgBGD,MAAM,IACP,4BAAC,kBAAD;AAAoB,IAAA,MAAM,EAAGA,MAA7B;AAAsC,IAAA,QAAQ,EAAGE;AAAjD,IAjBF,CADD;AAsBA;;AAED,SAASE,kBAAT,QAAoD;AAAA;;AAAA,MAAvB;AAAEJ,IAAAA,MAAF;AAAUE,IAAAA;AAAV,GAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAMG,gBAAgB,GAAG,CACxB,GAAG,IAAIC,GAAJ,CAAS,CACX,OADW,EAEX,cAAI,OAAJ,EAAa,mBAAb,CAFW,EAGX,cAAI,aAAJ,EAAmB,6BAAnB,CAHW,EAIX,cAAI,QAAJ,EAAc,oBAAd,CAJW,EAKX,cAAI,cAAJ,EAAoB,8BAApB,CALW,EAMX,cAAI,QAAJ,EAAc,kBAAd,CANW,EAOX,cAAI,KAAJ,EAAW,oCAAX,CAPW,CAAT,CADqB,CAAzB;AAYA,QAAMC,gBAAgB,GAAGF,gBAAgB,CAACG,GAAjB,CACxB,CAAEC,eAAF,EAAmBC,KAAnB,MAAgC;AAC/BC,IAAAA,GAAG,EAAG,aAAaD,KAAO,EADK;AAE/BE,IAAAA,IAAI,EAAE,oBAAUH,eAAV,EAA2BZ,YAA3B,CAFyB;AAG/BG,IAAAA,MAAM,EAAES;AAHuB,GAAhC,CADwB,CAAzB;AAOA,QAAMI,YAAY,GAAG;AACpBF,IAAAA,GAAG,EAAE,QADe;AAEpBC,IAAAA,IAAI,EAAE,cAAI,QAAJ,CAFc;AAGpBE,IAAAA,SAAS,EACR,8EAJmB;AAKpBC,IAAAA,kBAAkB,EAAE,cAAI,4BAAJ;AALA,GAArB;AAQA,QAAM,CAAEC,QAAF,EAAYC,WAAZ,IAA4B,uBACjC,MAAM,CAAC,CAAEjB,MAAH,IAAa,CAAEK,gBAAgB,CAACa,QAAjB,CAA2BlB,MAA3B,CADY,CAAlC;AAIA,SACC,4BAAC,gCAAD,QACC,4BAAC,+BAAD;AACC,IAAA,wBAAwB,MADzB;AAEC,IAAA,KAAK,EAAG,cAAI,iBAAJ,CAFT;AAGC,IAAA,OAAO,EAAG,CAAE,GAAGO,gBAAL,EAAuBM,YAAvB,CAHX;AAIC,IAAA,KAAK,EACJG,QAAQ,GACLH,YADK,4BAELN,gBAAgB,CAACY,IAAjB,CACEC,MAAF,IAAcA,MAAM,CAACpB,MAAP,KAAkBA,MADhC,CAFK,yEAIAa,YATV;AAWC,IAAA,QAAQ,EAAG,SAAwB;AAAA,UAAtB;AAAEQ,QAAAA;AAAF,OAAsB;;AAClC,UAAKA,YAAY,KAAKR,YAAtB,EAAqC;AACpCI,QAAAA,WAAW,CAAE,IAAF,CAAX;AACA,OAFD,MAEO;AACNA,QAAAA,WAAW,CAAE,KAAF,CAAX;AACAf,QAAAA,QAAQ,CAAEmB,YAAY,CAACrB,MAAf,CAAR;AACA;AACD;AAlBF,IADD,EAqBGgB,QAAQ,IACT,4BAAC,uBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,eAAJ,CAFT;AAGC,IAAA,mBAAmB,MAHpB;AAIC,IAAA,IAAI,EAAG,uCACN,cACC,kDADD,CADM,EAIN;AACCM,MAAAA,IAAI,EACH,4BAAC,wBAAD;AACC,QAAA,IAAI,EAAG,cACN,iEADM;AADR;AAFF,KAJM,CAJR;AAkBC,IAAA,KAAK,EAAGtB,MAlBT;AAmBC,IAAA,QAAQ,EAAKuB,KAAF,IAAarB,QAAQ,CAAEqB,KAAF;AAnBjC,IAtBF,CADD;AA+CA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x, __ } from '@wordpress/i18n';\nimport { dateI18n } from '@wordpress/date';\nimport { useState, createInterpolateElement } from '@wordpress/element';\nimport {\n\tTextControl,\n\tExternalLink,\n\tVisuallyHidden,\n\tCustomSelectControl,\n\tToggleControl,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n// So that we can illustrate the different formats in the dropdown properly,\n// show a date that has a day greater than 12 and a month with more than three\n// letters. Here we're using 2022-01-25 which is when WordPress 5.9 was\n// released.\nconst EXAMPLE_DATE = new Date( 2022, 0, 25 );\n\n/**\n * The `DateFormatPicker` component renders controls that let the user choose a\n * _date format_. That is, how they want their dates to be formatted.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/date-format-picker/README.md\n *\n * @param {Object} props\n * @param {string|null} props.format The selected date\n * format. If\n * `null`,\n * _Default_ is\n * selected.\n * @param {string} props.defaultFormat The date format that\n * will be used if the\n * user selects\n * 'Default'.\n * @param {( format: string|null ) => void} props.onChange Called when a\n * selection is\n * made. If `null`,\n * _Default_ is\n * selected.\n */\nexport default function DateFormatPicker( {\n\tformat,\n\tdefaultFormat,\n\tonChange,\n} ) {\n\treturn (\n\t\t<fieldset className=\"block-editor-date-format-picker\">\n\t\t\t<VisuallyHidden as=\"legend\">{ __( 'Date format' ) }</VisuallyHidden>\n\t\t\t<ToggleControl\n\t\t\t\tlabel={\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ __( 'Default format' ) }\n\t\t\t\t\t\t<span className=\"block-editor-date-format-picker__default-format-toggle-control__hint\">\n\t\t\t\t\t\t\t{ dateI18n( defaultFormat, EXAMPLE_DATE ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t\tchecked={ ! format }\n\t\t\t\tonChange={ ( checked ) =>\n\t\t\t\t\tonChange( checked ? null : defaultFormat )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ format && (\n\t\t\t\t<NonDefaultControls format={ format } onChange={ onChange } />\n\t\t\t) }\n\t\t</fieldset>\n\t);\n}\n\nfunction NonDefaultControls( { format, onChange } ) {\n\t// Suggest a short format, medium format, long format, and a standardised\n\t// (YYYY-MM-DD) format. The short, medium, and long formats are localised as\n\t// different languages have different ways of writing these. For example, 'F\n\t// j, Y' (April 20, 2022) in American English (en_US) is 'j. F Y' (20. April\n\t// 2022) in German (de). The resultant array is de-duplicated as some\n\t// languages will use the same format string for short, medium, and long\n\t// formats.\n\tconst suggestedFormats = [\n\t\t...new Set( [\n\t\t\t'Y-m-d',\n\t\t\t_x( 'n/j/Y', 'short date format' ),\n\t\t\t_x( 'n/j/Y g:i A', 'short date format with time' ),\n\t\t\t_x( 'M j, Y', 'medium date format' ),\n\t\t\t_x( 'M j, Y g:i A', 'medium date format with time' ),\n\t\t\t_x( 'F j, Y', 'long date format' ),\n\t\t\t_x( 'M j', 'short date format without the year' ),\n\t\t] ),\n\t];\n\n\tconst suggestedOptions = suggestedFormats.map(\n\t\t( suggestedFormat, index ) => ( {\n\t\t\tkey: `suggested-${ index }`,\n\t\t\tname: dateI18n( suggestedFormat, EXAMPLE_DATE ),\n\t\t\tformat: suggestedFormat,\n\t\t} )\n\t);\n\tconst customOption = {\n\t\tkey: 'custom',\n\t\tname: __( 'Custom' ),\n\t\tclassName:\n\t\t\t'block-editor-date-format-picker__custom-format-select-control__custom-option',\n\t\t__experimentalHint: __( 'Enter your own date format' ),\n\t};\n\n\tconst [ isCustom, setIsCustom ] = useState(\n\t\t() => !! format && ! suggestedFormats.includes( format )\n\t);\n\n\treturn (\n\t\t<VStack>\n\t\t\t<CustomSelectControl\n\t\t\t\t__nextUnconstrainedWidth\n\t\t\t\tlabel={ __( 'Choose a format' ) }\n\t\t\t\toptions={ [ ...suggestedOptions, customOption ] }\n\t\t\t\tvalue={\n\t\t\t\t\tisCustom\n\t\t\t\t\t\t? customOption\n\t\t\t\t\t\t: suggestedOptions.find(\n\t\t\t\t\t\t\t\t( option ) => option.format === format\n\t\t\t\t\t\t ) ?? customOption\n\t\t\t\t}\n\t\t\t\tonChange={ ( { selectedItem } ) => {\n\t\t\t\t\tif ( selectedItem === customOption ) {\n\t\t\t\t\t\tsetIsCustom( true );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetIsCustom( false );\n\t\t\t\t\t\tonChange( selectedItem.format );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ isCustom && (\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Custom format' ) }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Enter a date or time <Link>format string</Link>.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLink: (\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/support/article/formatting-date-and-time/'\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}\n\t\t\t\t\t) }\n\t\t\t\t\tvalue={ format }\n\t\t\t\t\tonChange={ ( value ) => onChange( value ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/date-format-picker/index.js"],"names":["EXAMPLE_DATE","Date","DateFormatPicker","format","defaultFormat","onChange","checked","NonDefaultControls","suggestedFormats","Set","suggestedOptions","map","suggestedFormat","index","key","name","customOption","className","__experimentalHint","isCustom","setIsCustom","includes","find","option","selectedItem","Link","value"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x, __ } from '@wordpress/i18n';\nimport { dateI18n } from '@wordpress/date';\nimport { useState, createInterpolateElement } from '@wordpress/element';\nimport {\n\tTextControl,\n\tExternalLink,\n\tVisuallyHidden,\n\tCustomSelectControl,\n\tToggleControl,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n// So that we can illustrate the different formats in the dropdown properly,\n// show a date that has a day greater than 12 and a month with more than three\n// letters. Here we're using 2022-01-25 which is when WordPress 5.9 was\n// released.\nconst EXAMPLE_DATE = new Date( 2022, 0, 25 );\n\n/**\n * The `DateFormatPicker` component renders controls that let the user choose a\n * _date format_. That is, how they want their dates to be formatted.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/date-format-picker/README.md\n *\n * @param {Object} props\n * @param {string|null} props.format The selected date\n * format. If\n * `null`,\n * _Default_ is\n * selected.\n * @param {string} props.defaultFormat The date format that\n * will be used if the\n * user selects\n * 'Default'.\n * @param {( format: string|null ) => void} props.onChange Called when a\n * selection is\n * made. If `null`,\n * _Default_ is\n * selected.\n */\nexport default function DateFormatPicker( {\n\tformat,\n\tdefaultFormat,\n\tonChange,\n} ) {\n\treturn (\n\t\t<fieldset className=\"block-editor-date-format-picker\">\n\t\t\t<VisuallyHidden as=\"legend\">{ __( 'Date format' ) }</VisuallyHidden>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Default format' ) }\n\t\t\t\thelp={ `${ __( 'Example:' ) } ${ dateI18n(\n\t\t\t\t\tdefaultFormat,\n\t\t\t\t\tEXAMPLE_DATE\n\t\t\t\t) }` }\n\t\t\t\tchecked={ ! format }\n\t\t\t\tonChange={ ( checked ) =>\n\t\t\t\t\tonChange( checked ? null : defaultFormat )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ format && (\n\t\t\t\t<NonDefaultControls format={ format } onChange={ onChange } />\n\t\t\t) }\n\t\t</fieldset>\n\t);\n}\n\nfunction NonDefaultControls( { format, onChange } ) {\n\t// Suggest a short format, medium format, long format, and a standardised\n\t// (YYYY-MM-DD) format. The short, medium, and long formats are localised as\n\t// different languages have different ways of writing these. For example, 'F\n\t// j, Y' (April 20, 2022) in American English (en_US) is 'j. F Y' (20. April\n\t// 2022) in German (de). The resultant array is de-duplicated as some\n\t// languages will use the same format string for short, medium, and long\n\t// formats.\n\tconst suggestedFormats = [\n\t\t...new Set( [\n\t\t\t'Y-m-d',\n\t\t\t_x( 'n/j/Y', 'short date format' ),\n\t\t\t_x( 'n/j/Y g:i A', 'short date format with time' ),\n\t\t\t_x( 'M j, Y', 'medium date format' ),\n\t\t\t_x( 'M j, Y g:i A', 'medium date format with time' ),\n\t\t\t_x( 'F j, Y', 'long date format' ),\n\t\t\t_x( 'M j', 'short date format without the year' ),\n\t\t] ),\n\t];\n\n\tconst suggestedOptions = suggestedFormats.map(\n\t\t( suggestedFormat, index ) => ( {\n\t\t\tkey: `suggested-${ index }`,\n\t\t\tname: dateI18n( suggestedFormat, EXAMPLE_DATE ),\n\t\t\tformat: suggestedFormat,\n\t\t} )\n\t);\n\tconst customOption = {\n\t\tkey: 'custom',\n\t\tname: __( 'Custom' ),\n\t\tclassName:\n\t\t\t'block-editor-date-format-picker__custom-format-select-control__custom-option',\n\t\t__experimentalHint: __( 'Enter your own date format' ),\n\t};\n\n\tconst [ isCustom, setIsCustom ] = useState(\n\t\t() => !! format && ! suggestedFormats.includes( format )\n\t);\n\n\treturn (\n\t\t<VStack>\n\t\t\t<CustomSelectControl\n\t\t\t\t__nextUnconstrainedWidth\n\t\t\t\tlabel={ __( 'Choose a format' ) }\n\t\t\t\toptions={ [ ...suggestedOptions, customOption ] }\n\t\t\t\tvalue={\n\t\t\t\t\tisCustom\n\t\t\t\t\t\t? customOption\n\t\t\t\t\t\t: suggestedOptions.find(\n\t\t\t\t\t\t\t\t( option ) => option.format === format\n\t\t\t\t\t\t ) ?? customOption\n\t\t\t\t}\n\t\t\t\tonChange={ ( { selectedItem } ) => {\n\t\t\t\t\tif ( selectedItem === customOption ) {\n\t\t\t\t\t\tsetIsCustom( true );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetIsCustom( false );\n\t\t\t\t\t\tonChange( selectedItem.format );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ isCustom && (\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Custom format' ) }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Enter a date or time <Link>format string</Link>.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLink: (\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/support/article/formatting-date-and-time/'\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}\n\t\t\t\t\t) }\n\t\t\t\t\tvalue={ format }\n\t\t\t\t\tonChange={ ( value ) => onChange( value ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n"]}
@@ -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