@wordpress/block-editor 13.1.0 → 13.3.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 (437) hide show
  1. package/CHANGELOG.md +21 -17
  2. package/README.md +1 -2
  3. package/build/components/block-breadcrumb/index.js +12 -1
  4. package/build/components/block-breadcrumb/index.js.map +1 -1
  5. package/build/components/block-lock/modal.js +67 -67
  6. package/build/components/block-lock/modal.js.map +1 -1
  7. package/build/components/block-lock/toolbar.js +0 -1
  8. package/build/components/block-lock/toolbar.js.map +1 -1
  9. package/build/components/block-mover/button.js +1 -1
  10. package/build/components/block-mover/button.js.map +1 -1
  11. package/build/components/block-mover/index.js +12 -6
  12. package/build/components/block-mover/index.js.map +1 -1
  13. package/build/components/block-pattern-setup/setup-toolbar.js +2 -2
  14. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  15. package/build/components/block-patterns-paging/index.js +5 -7
  16. package/build/components/block-patterns-paging/index.js.map +1 -1
  17. package/build/components/block-quick-navigation/index.js +20 -17
  18. package/build/components/block-quick-navigation/index.js.map +1 -1
  19. package/build/components/block-rename/modal.js +4 -12
  20. package/build/components/block-rename/modal.js.map +1 -1
  21. package/build/components/block-toolbar/shuffle.js +4 -1
  22. package/build/components/block-toolbar/shuffle.js.map +1 -1
  23. package/build/components/block-tools/block-selection-button.js +7 -58
  24. package/build/components/block-tools/block-selection-button.js.map +1 -1
  25. package/build/components/block-tools/block-toolbar-breadcrumb.js +9 -2
  26. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  27. package/build/components/block-tools/index.js +14 -1
  28. package/build/components/block-tools/index.js.map +1 -1
  29. package/build/components/block-tools/use-show-block-tools.js +4 -2
  30. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  31. package/build/components/block-tools/zoom-out-mode-inserters.js +5 -4
  32. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  33. package/build/components/block-tools/zoom-out-popover.js +57 -0
  34. package/build/components/block-tools/zoom-out-popover.js.map +1 -0
  35. package/build/components/block-tools/zoom-out-toolbar.js +138 -0
  36. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -0
  37. package/build/components/button-block-appender/index.js +3 -1
  38. package/build/components/button-block-appender/index.js.map +1 -1
  39. package/build/components/child-layout-control/index.js +193 -127
  40. package/build/components/child-layout-control/index.js.map +1 -1
  41. package/build/components/date-format-picker/index.js +10 -1
  42. package/build/components/date-format-picker/index.js.map +1 -1
  43. package/build/components/dimensions-tool/index.js +6 -4
  44. package/build/components/dimensions-tool/index.js.map +1 -1
  45. package/build/components/font-appearance-control/index.js +26 -61
  46. package/build/components/font-appearance-control/index.js.map +1 -1
  47. package/build/components/global-styles/background-panel.js +178 -116
  48. package/build/components/global-styles/background-panel.js.map +1 -1
  49. package/build/components/global-styles/border-panel.js +2 -1
  50. package/build/components/global-styles/border-panel.js.map +1 -1
  51. package/build/components/global-styles/color-panel.js +2 -1
  52. package/build/components/global-styles/color-panel.js.map +1 -1
  53. package/build/components/global-styles/dimensions-panel.js +2 -1
  54. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  55. package/build/components/global-styles/filters-panel.js +2 -1
  56. package/build/components/global-styles/filters-panel.js.map +1 -1
  57. package/build/components/global-styles/hooks.js +8 -0
  58. package/build/components/global-styles/hooks.js.map +1 -1
  59. package/build/components/global-styles/image-settings-panel.js +2 -1
  60. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  61. package/build/components/global-styles/typography-panel.js +50 -12
  62. package/build/components/global-styles/typography-panel.js.map +1 -1
  63. package/build/components/global-styles/typography-utils.js +50 -0
  64. package/build/components/global-styles/typography-utils.js.map +1 -1
  65. package/build/components/global-styles/use-global-styles-output.js +25 -9
  66. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  67. package/build/components/global-styles/utils.js +17 -7
  68. package/build/components/global-styles/utils.js.map +1 -1
  69. package/build/components/grid/grid-item-movers.js +94 -0
  70. package/build/components/grid/grid-item-movers.js.map +1 -0
  71. package/build/components/{grid-visualizer → grid}/grid-item-resizer.js +18 -56
  72. package/build/components/grid/grid-item-resizer.js.map +1 -0
  73. package/build/components/grid/grid-visualizer.js +305 -0
  74. package/build/components/grid/grid-visualizer.js.map +1 -0
  75. package/build/components/{grid-visualizer → grid}/index.js +14 -0
  76. package/build/components/grid/index.js.map +1 -0
  77. package/build/components/grid/use-get-number-of-blocks-before-cell.js +40 -0
  78. package/build/components/grid/use-get-number-of-blocks-before-cell.js.map +1 -0
  79. package/build/components/grid/use-grid-layout-sync.js +169 -0
  80. package/build/components/grid/use-grid-layout-sync.js.map +1 -0
  81. package/build/components/grid/utils.js +145 -0
  82. package/build/components/grid/utils.js.map +1 -0
  83. package/build/components/image-editor/aspect-ratio-dropdown.js +0 -1
  84. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  85. package/build/components/inner-blocks/index.js +1 -1
  86. package/build/components/inner-blocks/index.js.map +1 -1
  87. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
  88. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  89. package/build/components/inserter/menu.js +26 -4
  90. package/build/components/inserter/menu.js.map +1 -1
  91. package/build/components/inserter/quick-inserter.js +2 -1
  92. package/build/components/inserter/quick-inserter.js.map +1 -1
  93. package/build/components/inspector-controls/block-support-tools-panel.js +2 -1
  94. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  95. package/build/components/link-control/link-preview.js +1 -1
  96. package/build/components/link-control/link-preview.js.map +1 -1
  97. package/build/components/media-placeholder/index.js +19 -23
  98. package/build/components/media-placeholder/index.js.map +1 -1
  99. package/build/components/navigable-toolbar/index.js +3 -1
  100. package/build/components/navigable-toolbar/index.js.map +1 -1
  101. package/build/components/rich-text/event-listeners/input-rules.js +1 -0
  102. package/build/components/rich-text/event-listeners/input-rules.js.map +1 -1
  103. package/build/components/rich-text/index.native.js +10 -4
  104. package/build/components/rich-text/index.native.js.map +1 -1
  105. package/build/components/rich-text/native/index.native.js +14 -0
  106. package/build/components/rich-text/native/index.native.js.map +1 -1
  107. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +5 -1
  108. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  109. package/build/components/tabbed-sidebar/index.js +66 -0
  110. package/build/components/tabbed-sidebar/index.js.map +1 -0
  111. package/build/components/url-popover/index.js +3 -0
  112. package/build/components/url-popover/index.js.map +1 -1
  113. package/build/hooks/background.js +26 -4
  114. package/build/hooks/background.js.map +1 -1
  115. package/build/hooks/block-hooks.js +11 -17
  116. package/build/hooks/block-hooks.js.map +1 -1
  117. package/build/hooks/block-style-variation.js +195 -11
  118. package/build/hooks/block-style-variation.js.map +1 -1
  119. package/build/hooks/duotone.js +16 -11
  120. package/build/hooks/duotone.js.map +1 -1
  121. package/build/hooks/grid-visualizer.js +65 -0
  122. package/build/hooks/grid-visualizer.js.map +1 -0
  123. package/build/hooks/index.js +15 -2
  124. package/build/hooks/index.js.map +1 -1
  125. package/build/hooks/layout-child.js +65 -40
  126. package/build/hooks/layout-child.js.map +1 -1
  127. package/build/hooks/position.js +2 -9
  128. package/build/hooks/position.js.map +1 -1
  129. package/build/hooks/use-bindings-attributes.js +16 -6
  130. package/build/hooks/use-bindings-attributes.js.map +1 -1
  131. package/build/hooks/utils.js +5 -2
  132. package/build/hooks/utils.js.map +1 -1
  133. package/build/layouts/constrained.js +44 -2
  134. package/build/layouts/constrained.js.map +1 -1
  135. package/build/layouts/grid.js +92 -76
  136. package/build/layouts/grid.js.map +1 -1
  137. package/build/lock-unlock.js +1 -1
  138. package/build/lock-unlock.js.map +1 -1
  139. package/build/private-apis.js +6 -1
  140. package/build/private-apis.js.map +1 -1
  141. package/build/store/actions.js +17 -1
  142. package/build/store/actions.js.map +1 -1
  143. package/build/store/defaults.js +0 -2
  144. package/build/store/defaults.js.map +1 -1
  145. package/build/store/defaults.native.js +0 -3
  146. package/build/store/defaults.native.js.map +1 -1
  147. package/build/store/private-keys.js +2 -1
  148. package/build/store/private-keys.js.map +1 -1
  149. package/build/utils/format-font-style.js +45 -0
  150. package/build/utils/format-font-style.js.map +1 -0
  151. package/build/utils/format-font-weight.js +68 -0
  152. package/build/utils/format-font-weight.js.map +1 -0
  153. package/build/utils/get-editor-region.js +34 -0
  154. package/build/utils/get-editor-region.js.map +1 -0
  155. package/build/utils/get-font-styles-and-weights.js +167 -0
  156. package/build/utils/get-font-styles-and-weights.js.map +1 -0
  157. package/build/utils/pasting.js +5 -13
  158. package/build/utils/pasting.js.map +1 -1
  159. package/build-module/components/block-breadcrumb/index.js +12 -1
  160. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  161. package/build-module/components/block-lock/modal.js +67 -67
  162. package/build-module/components/block-lock/modal.js.map +1 -1
  163. package/build-module/components/block-lock/toolbar.js +0 -1
  164. package/build-module/components/block-lock/toolbar.js.map +1 -1
  165. package/build-module/components/block-mover/button.js +1 -1
  166. package/build-module/components/block-mover/button.js.map +1 -1
  167. package/build-module/components/block-mover/index.js +12 -6
  168. package/build-module/components/block-mover/index.js.map +1 -1
  169. package/build-module/components/block-pattern-setup/setup-toolbar.js +2 -2
  170. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  171. package/build-module/components/block-patterns-paging/index.js +5 -7
  172. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  173. package/build-module/components/block-quick-navigation/index.js +20 -17
  174. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  175. package/build-module/components/block-rename/modal.js +5 -13
  176. package/build-module/components/block-rename/modal.js.map +1 -1
  177. package/build-module/components/block-toolbar/shuffle.js +4 -1
  178. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  179. package/build-module/components/block-tools/block-selection-button.js +10 -61
  180. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  181. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +9 -2
  182. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  183. package/build-module/components/block-tools/index.js +14 -1
  184. package/build-module/components/block-tools/index.js.map +1 -1
  185. package/build-module/components/block-tools/use-show-block-tools.js +4 -2
  186. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  187. package/build-module/components/block-tools/zoom-out-mode-inserters.js +5 -4
  188. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  189. package/build-module/components/block-tools/zoom-out-popover.js +48 -0
  190. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -0
  191. package/build-module/components/block-tools/zoom-out-toolbar.js +131 -0
  192. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -0
  193. package/build-module/components/button-block-appender/index.js +3 -1
  194. package/build-module/components/button-block-appender/index.js.map +1 -1
  195. package/build-module/components/child-layout-control/index.js +194 -128
  196. package/build-module/components/child-layout-control/index.js.map +1 -1
  197. package/build-module/components/date-format-picker/index.js +11 -3
  198. package/build-module/components/date-format-picker/index.js.map +1 -1
  199. package/build-module/components/dimensions-tool/index.js +6 -4
  200. package/build-module/components/dimensions-tool/index.js.map +1 -1
  201. package/build-module/components/font-appearance-control/index.js +28 -63
  202. package/build-module/components/font-appearance-control/index.js.map +1 -1
  203. package/build-module/components/global-styles/background-panel.js +181 -119
  204. package/build-module/components/global-styles/background-panel.js.map +1 -1
  205. package/build-module/components/global-styles/border-panel.js +3 -2
  206. package/build-module/components/global-styles/border-panel.js.map +1 -1
  207. package/build-module/components/global-styles/color-panel.js +3 -2
  208. package/build-module/components/global-styles/color-panel.js.map +1 -1
  209. package/build-module/components/global-styles/dimensions-panel.js +3 -2
  210. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  211. package/build-module/components/global-styles/filters-panel.js +3 -2
  212. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  213. package/build-module/components/global-styles/hooks.js +8 -0
  214. package/build-module/components/global-styles/hooks.js.map +1 -1
  215. package/build-module/components/global-styles/image-settings-panel.js +3 -2
  216. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  217. package/build-module/components/global-styles/typography-panel.js +52 -14
  218. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  219. package/build-module/components/global-styles/typography-utils.js +48 -0
  220. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  221. package/build-module/components/global-styles/use-global-styles-output.js +25 -9
  222. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  223. package/build-module/components/global-styles/utils.js +15 -6
  224. package/build-module/components/global-styles/utils.js.map +1 -1
  225. package/build-module/components/grid/grid-item-movers.js +87 -0
  226. package/build-module/components/grid/grid-item-movers.js.map +1 -0
  227. package/build-module/components/{grid-visualizer → grid}/grid-item-resizer.js +13 -51
  228. package/build-module/components/grid/grid-item-resizer.js.map +1 -0
  229. package/build-module/components/grid/grid-visualizer.js +297 -0
  230. package/build-module/components/grid/grid-visualizer.js.map +1 -0
  231. package/build-module/components/grid/index.js +5 -0
  232. package/build-module/components/grid/index.js.map +1 -0
  233. package/build-module/components/grid/use-get-number-of-blocks-before-cell.js +33 -0
  234. package/build-module/components/grid/use-get-number-of-blocks-before-cell.js.map +1 -0
  235. package/build-module/components/grid/use-grid-layout-sync.js +162 -0
  236. package/build-module/components/grid/use-grid-layout-sync.js.map +1 -0
  237. package/build-module/components/grid/utils.js +131 -0
  238. package/build-module/components/grid/utils.js.map +1 -0
  239. package/build-module/components/image-editor/aspect-ratio-dropdown.js +0 -1
  240. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  241. package/build-module/components/inner-blocks/index.js +1 -1
  242. package/build-module/components/inner-blocks/index.js.map +1 -1
  243. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
  244. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  245. package/build-module/components/inserter/menu.js +26 -4
  246. package/build-module/components/inserter/menu.js.map +1 -1
  247. package/build-module/components/inserter/quick-inserter.js +2 -1
  248. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  249. package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -2
  250. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  251. package/build-module/components/link-control/link-preview.js +1 -1
  252. package/build-module/components/link-control/link-preview.js.map +1 -1
  253. package/build-module/components/media-placeholder/index.js +19 -23
  254. package/build-module/components/media-placeholder/index.js.map +1 -1
  255. package/build-module/components/navigable-toolbar/index.js +3 -1
  256. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  257. package/build-module/components/rich-text/event-listeners/input-rules.js +1 -1
  258. package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -1
  259. package/build-module/components/rich-text/index.native.js +11 -5
  260. package/build-module/components/rich-text/index.native.js.map +1 -1
  261. package/build-module/components/rich-text/native/index.native.js +14 -0
  262. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  263. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +5 -1
  264. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  265. package/build-module/components/tabbed-sidebar/index.js +60 -0
  266. package/build-module/components/tabbed-sidebar/index.js.map +1 -0
  267. package/build-module/components/url-popover/index.js +3 -0
  268. package/build-module/components/url-popover/index.js.map +1 -1
  269. package/build-module/hooks/background.js +26 -4
  270. package/build-module/hooks/background.js.map +1 -1
  271. package/build-module/hooks/block-hooks.js +11 -17
  272. package/build-module/hooks/block-hooks.js.map +1 -1
  273. package/build-module/hooks/block-style-variation.js +193 -11
  274. package/build-module/hooks/block-style-variation.js.map +1 -1
  275. package/build-module/hooks/duotone.js +16 -11
  276. package/build-module/hooks/duotone.js.map +1 -1
  277. package/build-module/hooks/grid-visualizer.js +64 -0
  278. package/build-module/hooks/grid-visualizer.js.map +1 -0
  279. package/build-module/hooks/index.js +3 -0
  280. package/build-module/hooks/index.js.map +1 -1
  281. package/build-module/hooks/layout-child.js +63 -38
  282. package/build-module/hooks/layout-child.js.map +1 -1
  283. package/build-module/hooks/position.js +2 -9
  284. package/build-module/hooks/position.js.map +1 -1
  285. package/build-module/hooks/use-bindings-attributes.js +16 -6
  286. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  287. package/build-module/hooks/utils.js +5 -2
  288. package/build-module/hooks/utils.js.map +1 -1
  289. package/build-module/layouts/constrained.js +44 -2
  290. package/build-module/layouts/constrained.js.map +1 -1
  291. package/build-module/layouts/grid.js +92 -76
  292. package/build-module/layouts/grid.js.map +1 -1
  293. package/build-module/lock-unlock.js +1 -1
  294. package/build-module/lock-unlock.js.map +1 -1
  295. package/build-module/private-apis.js +8 -3
  296. package/build-module/private-apis.js.map +1 -1
  297. package/build-module/store/actions.js +17 -1
  298. package/build-module/store/actions.js.map +1 -1
  299. package/build-module/store/defaults.js +0 -2
  300. package/build-module/store/defaults.js.map +1 -1
  301. package/build-module/store/defaults.native.js +0 -3
  302. package/build-module/store/defaults.native.js.map +1 -1
  303. package/build-module/store/private-keys.js +1 -0
  304. package/build-module/store/private-keys.js.map +1 -1
  305. package/build-module/utils/format-font-style.js +39 -0
  306. package/build-module/utils/format-font-style.js.map +1 -0
  307. package/build-module/utils/format-font-weight.js +62 -0
  308. package/build-module/utils/format-font-weight.js.map +1 -0
  309. package/build-module/utils/get-editor-region.js +28 -0
  310. package/build-module/utils/get-editor-region.js.map +1 -0
  311. package/build-module/utils/get-font-styles-and-weights.js +160 -0
  312. package/build-module/utils/get-font-styles-and-weights.js.map +1 -0
  313. package/build-module/utils/pasting.js +5 -13
  314. package/build-module/utils/pasting.js.map +1 -1
  315. package/build-style/content-rtl.css +1 -0
  316. package/build-style/content.css +1 -0
  317. package/build-style/style-rtl.css +238 -106
  318. package/build-style/style.css +238 -106
  319. package/package.json +32 -32
  320. package/src/components/block-breadcrumb/index.js +16 -1
  321. package/src/components/block-lock/modal.js +95 -82
  322. package/src/components/block-lock/style.scss +11 -1
  323. package/src/components/block-lock/toolbar.js +0 -1
  324. package/src/components/block-mover/button.js +1 -1
  325. package/src/components/block-mover/index.js +37 -24
  326. package/src/components/block-pattern-setup/setup-toolbar.js +2 -2
  327. package/src/components/block-patterns-paging/index.js +8 -11
  328. package/src/components/block-patterns-paging/style.scss +18 -0
  329. package/src/components/block-quick-navigation/index.js +21 -28
  330. package/src/components/block-rename/modal.js +2 -8
  331. package/src/components/block-switcher/test/index.js +6 -6
  332. package/src/components/block-toolbar/shuffle.js +4 -1
  333. package/src/components/block-toolbar/style.scss +1 -11
  334. package/src/components/block-tools/block-selection-button.js +11 -83
  335. package/src/components/block-tools/block-toolbar-breadcrumb.js +9 -4
  336. package/src/components/block-tools/index.js +21 -1
  337. package/src/components/block-tools/style.scss +15 -0
  338. package/src/components/block-tools/use-show-block-tools.js +14 -6
  339. package/src/components/block-tools/zoom-out-mode-inserters.js +5 -4
  340. package/src/components/block-tools/zoom-out-popover.js +49 -0
  341. package/src/components/block-tools/zoom-out-toolbar.js +140 -0
  342. package/src/components/button-block-appender/index.js +2 -1
  343. package/src/components/child-layout-control/index.js +243 -160
  344. package/src/components/date-format-picker/index.js +10 -1
  345. package/src/components/date-format-picker/style.scss +0 -9
  346. package/src/components/dimensions-tool/index.js +97 -89
  347. package/src/components/font-appearance-control/index.js +29 -83
  348. package/src/components/font-appearance-control/style.scss +3 -5
  349. package/src/components/global-styles/background-panel.js +249 -170
  350. package/src/components/global-styles/border-panel.js +3 -2
  351. package/src/components/global-styles/color-panel.js +3 -2
  352. package/src/components/global-styles/dimensions-panel.js +3 -2
  353. package/src/components/global-styles/filters-panel.js +3 -2
  354. package/src/components/global-styles/hooks.js +9 -0
  355. package/src/components/global-styles/image-settings-panel.js +3 -2
  356. package/src/components/global-styles/style.scss +105 -20
  357. package/src/components/global-styles/test/typography-utils.js +269 -0
  358. package/src/components/global-styles/test/use-global-styles-output.js +38 -3
  359. package/src/components/global-styles/typography-panel.js +49 -12
  360. package/src/components/global-styles/typography-utils.js +63 -0
  361. package/src/components/global-styles/use-global-styles-output.js +25 -9
  362. package/src/components/global-styles/utils.js +17 -6
  363. package/src/components/grid/grid-item-movers.js +112 -0
  364. package/src/components/{grid-visualizer → grid}/grid-item-resizer.js +15 -52
  365. package/src/components/grid/grid-visualizer.js +384 -0
  366. package/src/components/grid/index.js +4 -0
  367. package/src/components/grid/style.scss +98 -0
  368. package/src/components/grid/use-get-number-of-blocks-before-cell.js +30 -0
  369. package/src/components/grid/use-grid-layout-sync.js +170 -0
  370. package/src/components/grid/utils.js +178 -0
  371. package/src/components/iframe/content.scss +1 -0
  372. package/src/components/image-editor/aspect-ratio-dropdown.js +0 -1
  373. package/src/components/inner-blocks/index.js +4 -1
  374. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -16
  375. package/src/components/inserter/menu.js +47 -13
  376. package/src/components/inserter/quick-inserter.js +6 -1
  377. package/src/components/inserter/style.scss +1 -49
  378. package/src/components/inspector-controls/block-support-tools-panel.js +3 -3
  379. package/src/components/link-control/link-preview.js +1 -1
  380. package/src/components/media-placeholder/index.js +22 -32
  381. package/src/components/navigable-toolbar/index.js +3 -1
  382. package/src/components/rich-text/event-listeners/input-rules.js +1 -1
  383. package/src/components/rich-text/index.native.js +10 -8
  384. package/src/components/rich-text/native/index.native.js +17 -0
  385. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +6 -1
  386. package/src/components/tabbed-sidebar/README.md +76 -0
  387. package/src/components/tabbed-sidebar/index.js +70 -0
  388. package/src/components/tabbed-sidebar/style.scss +53 -0
  389. package/src/components/url-popover/index.js +3 -0
  390. package/src/hooks/background.js +25 -10
  391. package/src/hooks/block-hooks.js +9 -16
  392. package/src/hooks/block-style-variation.js +226 -9
  393. package/src/hooks/duotone.js +16 -12
  394. package/src/hooks/grid-visualizer.js +64 -0
  395. package/src/hooks/index.js +3 -0
  396. package/src/hooks/layout-child.js +75 -39
  397. package/src/hooks/position.js +3 -10
  398. package/src/hooks/test/get-variation-styles-with-ref-values.js +91 -0
  399. package/src/hooks/use-bindings-attributes.js +18 -4
  400. package/src/hooks/utils.js +5 -1
  401. package/src/layouts/constrained.js +43 -2
  402. package/src/layouts/grid.js +175 -88
  403. package/src/lock-unlock.js +1 -1
  404. package/src/private-apis.js +12 -1
  405. package/src/store/actions.js +21 -1
  406. package/src/store/defaults.js +0 -2
  407. package/src/store/defaults.native.js +0 -3
  408. package/src/store/private-keys.js +1 -0
  409. package/src/style.scss +2 -2
  410. package/src/utils/format-font-style.js +40 -0
  411. package/src/utils/format-font-weight.js +63 -0
  412. package/src/utils/get-editor-region.js +31 -0
  413. package/src/utils/get-font-styles-and-weights.js +191 -0
  414. package/src/utils/pasting.js +5 -12
  415. package/src/utils/test/format-font-style.js +34 -0
  416. package/src/utils/test/format-font-weight.js +66 -0
  417. package/src/utils/test/get-font-styles-and-weights.js +513 -0
  418. package/tsconfig.tsbuildinfo +1 -1
  419. package/build/components/grid-visualizer/grid-item-resizer.js.map +0 -1
  420. package/build/components/grid-visualizer/grid-visualizer.js +0 -92
  421. package/build/components/grid-visualizer/grid-visualizer.js.map +0 -1
  422. package/build/components/grid-visualizer/index.js.map +0 -1
  423. package/build/components/grid-visualizer/utils.js +0 -10
  424. package/build/components/grid-visualizer/utils.js.map +0 -1
  425. package/build-module/components/grid-visualizer/grid-item-resizer.js.map +0 -1
  426. package/build-module/components/grid-visualizer/grid-visualizer.js +0 -84
  427. package/build-module/components/grid-visualizer/grid-visualizer.js.map +0 -1
  428. package/build-module/components/grid-visualizer/index.js +0 -3
  429. package/build-module/components/grid-visualizer/index.js.map +0 -1
  430. package/build-module/components/grid-visualizer/utils.js +0 -4
  431. package/build-module/components/grid-visualizer/utils.js.map +0 -1
  432. package/src/components/grid-visualizer/grid-visualizer.js +0 -101
  433. package/src/components/grid-visualizer/index.js +0 -2
  434. package/src/components/grid-visualizer/style.scss +0 -34
  435. package/src/components/grid-visualizer/utils.js +0 -5
  436. package/src/hooks/position.scss +0 -18
  437. /package/src/components/font-sizes/{README.MD → README.md} +0 -0
@@ -2,8 +2,15 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, __experimentalUnitControl as UnitControl, __experimentalInputControl as InputControl, __experimentalHStack as HStack, __experimentalVStack as VStack, __experimentalToolsPanelItem as ToolsPanelItem, Flex, FlexItem } from '@wordpress/components';
5
- import { __ } from '@wordpress/i18n';
5
+ import { __, _x } from '@wordpress/i18n';
6
6
  import { useEffect } from '@wordpress/element';
7
+ import { useSelect, useDispatch } from '@wordpress/data';
8
+
9
+ /**
10
+ * Internal dependencies
11
+ */
12
+ import { useGetNumberOfBlocksBeforeCell } from '../grid/use-get-number-of-blocks-before-cell';
13
+ import { store as blockEditorStore } from '../../store';
7
14
  import { jsx as _jsx } from "react/jsx-runtime";
8
15
  import { jsxs as _jsxs } from "react/jsx-runtime";
9
16
  import { Fragment as _Fragment } from "react/jsx-runtime";
@@ -41,22 +48,46 @@ export default function ChildLayoutControl({
41
48
  isShownByDefault,
42
49
  panelId
43
50
  }) {
44
- const {
45
- selfStretch,
46
- flexSize,
47
- columnStart,
48
- rowStart,
49
- columnSpan,
50
- rowSpan
51
- } = childLayout;
52
51
  const {
53
52
  type: parentType,
54
53
  default: {
55
54
  type: defaultParentType = 'default'
56
- } = {},
57
- orientation = 'horizontal'
55
+ } = {}
58
56
  } = parentLayout !== null && parentLayout !== void 0 ? parentLayout : {};
59
57
  const parentLayoutType = parentType || defaultParentType;
58
+ if (parentLayoutType === 'flex') {
59
+ return /*#__PURE__*/_jsx(FlexControls, {
60
+ childLayout: childLayout,
61
+ onChange: onChange,
62
+ parentLayout: parentLayout,
63
+ isShownByDefault: isShownByDefault,
64
+ panelId: panelId
65
+ });
66
+ } else if (parentLayoutType === 'grid') {
67
+ return /*#__PURE__*/_jsx(GridControls, {
68
+ childLayout: childLayout,
69
+ onChange: onChange,
70
+ parentLayout: parentLayout,
71
+ isShownByDefault: isShownByDefault,
72
+ panelId: panelId
73
+ });
74
+ }
75
+ return null;
76
+ }
77
+ function FlexControls({
78
+ childLayout,
79
+ onChange,
80
+ parentLayout,
81
+ isShownByDefault,
82
+ panelId
83
+ }) {
84
+ const {
85
+ selfStretch,
86
+ flexSize
87
+ } = childLayout;
88
+ const {
89
+ orientation = 'horizontal'
90
+ } = parentLayout !== null && parentLayout !== void 0 ? parentLayout : {};
60
91
  const hasFlexValue = () => !!selfStretch;
61
92
  const flexResetLabel = orientation === 'horizontal' ? __('Width') : __('Height');
62
93
  const resetFlex = () => {
@@ -65,6 +96,87 @@ export default function ChildLayoutControl({
65
96
  flexSize: undefined
66
97
  });
67
98
  };
99
+ useEffect(() => {
100
+ if (selfStretch === 'fixed' && !flexSize) {
101
+ onChange({
102
+ ...childLayout,
103
+ selfStretch: 'fit'
104
+ });
105
+ }
106
+ }, []);
107
+ return /*#__PURE__*/_jsxs(VStack, {
108
+ as: ToolsPanelItem,
109
+ spacing: 2,
110
+ hasValue: hasFlexValue,
111
+ label: flexResetLabel,
112
+ onDeselect: resetFlex,
113
+ isShownByDefault: isShownByDefault,
114
+ panelId: panelId,
115
+ children: [/*#__PURE__*/_jsxs(ToggleGroupControl, {
116
+ __nextHasNoMarginBottom: true,
117
+ size: "__unstable-large",
118
+ label: childLayoutOrientation(parentLayout),
119
+ value: selfStretch || 'fit',
120
+ help: helpText(selfStretch, parentLayout),
121
+ onChange: value => {
122
+ const newFlexSize = value !== 'fixed' ? null : flexSize;
123
+ onChange({
124
+ selfStretch: value,
125
+ flexSize: newFlexSize
126
+ });
127
+ },
128
+ isBlock: true,
129
+ children: [/*#__PURE__*/_jsx(ToggleGroupControlOption, {
130
+ value: "fit",
131
+ label: _x('Fit', 'Intrinsic block width in flex layout')
132
+ }, "fit"), /*#__PURE__*/_jsx(ToggleGroupControlOption, {
133
+ value: "fill",
134
+ label: _x('Grow', 'Block with expanding width in flex layout')
135
+ }, "fill"), /*#__PURE__*/_jsx(ToggleGroupControlOption, {
136
+ value: "fixed",
137
+ label: _x('Fixed', 'Block with fixed width in flex layout')
138
+ }, "fixed")]
139
+ }), selfStretch === 'fixed' && /*#__PURE__*/_jsx(UnitControl, {
140
+ size: "__unstable-large",
141
+ onChange: value => {
142
+ onChange({
143
+ selfStretch,
144
+ flexSize: value
145
+ });
146
+ },
147
+ value: flexSize
148
+ })]
149
+ });
150
+ }
151
+ export function childLayoutOrientation(parentLayout) {
152
+ const {
153
+ orientation = 'horizontal'
154
+ } = parentLayout;
155
+ return orientation === 'horizontal' ? __('Width') : __('Height');
156
+ }
157
+ function GridControls({
158
+ childLayout,
159
+ onChange,
160
+ parentLayout,
161
+ isShownByDefault,
162
+ panelId
163
+ }) {
164
+ const {
165
+ columnStart,
166
+ rowStart,
167
+ columnSpan,
168
+ rowSpan
169
+ } = childLayout;
170
+ const {
171
+ columnCount = 3,
172
+ rowCount
173
+ } = parentLayout !== null && parentLayout !== void 0 ? parentLayout : {};
174
+ const rootClientId = useSelect(select => select(blockEditorStore).getBlockRootClientId(panelId));
175
+ const {
176
+ moveBlocksToPosition,
177
+ __unstableMarkNextChangeAsNotPersistent
178
+ } = useDispatch(blockEditorStore);
179
+ const getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(rootClientId, columnCount);
68
180
  const hasStartValue = () => !!columnStart || !!rowStart;
69
181
  const hasSpanValue = () => !!columnSpan || !!rowSpan;
70
182
  const resetGridStarts = () => {
@@ -79,155 +191,109 @@ export default function ChildLayoutControl({
79
191
  rowSpan: undefined
80
192
  });
81
193
  };
82
- useEffect(() => {
83
- if (selfStretch === 'fixed' && !flexSize) {
84
- onChange({
85
- ...childLayout,
86
- selfStretch: 'fit'
87
- });
88
- }
89
- }, []);
90
194
  return /*#__PURE__*/_jsxs(_Fragment, {
91
- children: [parentLayoutType === 'flex' && /*#__PURE__*/_jsxs(VStack, {
195
+ children: [/*#__PURE__*/_jsxs(HStack, {
92
196
  as: ToolsPanelItem,
93
- spacing: 2,
94
- hasValue: hasFlexValue,
95
- label: flexResetLabel,
96
- onDeselect: resetFlex,
197
+ hasValue: hasSpanValue,
198
+ label: __('Grid span'),
199
+ onDeselect: resetGridSpans,
97
200
  isShownByDefault: isShownByDefault,
98
201
  panelId: panelId,
99
- children: [/*#__PURE__*/_jsxs(ToggleGroupControl, {
100
- __nextHasNoMarginBottom: true,
202
+ children: [/*#__PURE__*/_jsx(InputControl, {
101
203
  size: "__unstable-large",
102
- label: childLayoutOrientation(parentLayout),
103
- value: selfStretch || 'fit',
104
- help: helpText(selfStretch, parentLayout),
204
+ label: __('Column span'),
205
+ type: "number",
105
206
  onChange: value => {
106
- const newFlexSize = value !== 'fixed' ? null : flexSize;
207
+ // Don't allow unsetting.
208
+ const newColumnSpan = value === '' ? 1 : parseInt(value, 10);
107
209
  onChange({
108
- selfStretch: value,
109
- flexSize: newFlexSize
210
+ columnStart,
211
+ rowStart,
212
+ rowSpan,
213
+ columnSpan: newColumnSpan
110
214
  });
111
215
  },
112
- isBlock: true,
113
- children: [/*#__PURE__*/_jsx(ToggleGroupControlOption, {
114
- value: "fit",
115
- label: __('Fit')
116
- }, "fit"), /*#__PURE__*/_jsx(ToggleGroupControlOption, {
117
- value: "fill",
118
- label: __('Fill')
119
- }, "fill"), /*#__PURE__*/_jsx(ToggleGroupControlOption, {
120
- value: "fixed",
121
- label: __('Fixed')
122
- }, "fixed")]
123
- }), selfStretch === 'fixed' && /*#__PURE__*/_jsx(UnitControl, {
216
+ value: columnSpan !== null && columnSpan !== void 0 ? columnSpan : 1,
217
+ min: 1
218
+ }), /*#__PURE__*/_jsx(InputControl, {
124
219
  size: "__unstable-large",
220
+ label: __('Row span'),
221
+ type: "number",
125
222
  onChange: value => {
223
+ // Don't allow unsetting.
224
+ const newRowSpan = value === '' ? 1 : parseInt(value, 10);
126
225
  onChange({
127
- selfStretch,
128
- flexSize: value
226
+ columnStart,
227
+ rowStart,
228
+ columnSpan,
229
+ rowSpan: newRowSpan
129
230
  });
130
231
  },
131
- value: flexSize
232
+ value: rowSpan !== null && rowSpan !== void 0 ? rowSpan : 1,
233
+ min: 1
132
234
  })]
133
- }), parentLayoutType === 'grid' && /*#__PURE__*/_jsxs(_Fragment, {
134
- children: [/*#__PURE__*/_jsxs(HStack, {
135
- as: ToolsPanelItem,
136
- hasValue: hasSpanValue,
137
- label: __('Grid span'),
138
- onDeselect: resetGridSpans,
139
- isShownByDefault: isShownByDefault,
140
- panelId: panelId,
141
- children: [/*#__PURE__*/_jsx(InputControl, {
235
+ }), window.__experimentalEnableGridInteractivity && columnCount &&
236
+ /*#__PURE__*/
237
+ // Use Flex with an explicit width on the FlexItem instead of HStack to
238
+ // work around an issue in webkit where inputs with a max attribute are
239
+ // sized incorrectly.
240
+ _jsxs(Flex, {
241
+ as: ToolsPanelItem,
242
+ hasValue: hasStartValue,
243
+ label: __('Grid placement'),
244
+ onDeselect: resetGridStarts,
245
+ isShownByDefault: false,
246
+ panelId: panelId,
247
+ children: [/*#__PURE__*/_jsx(FlexItem, {
248
+ style: {
249
+ width: '50%'
250
+ },
251
+ children: /*#__PURE__*/_jsx(InputControl, {
142
252
  size: "__unstable-large",
143
- label: __('Column span'),
253
+ label: __('Column'),
144
254
  type: "number",
145
255
  onChange: value => {
256
+ // Don't allow unsetting.
257
+ const newColumnStart = value === '' ? 1 : parseInt(value, 10);
146
258
  onChange({
147
- columnStart,
259
+ columnStart: newColumnStart,
148
260
  rowStart,
149
- rowSpan,
150
- columnSpan: value
261
+ columnSpan,
262
+ rowSpan
151
263
  });
264
+ __unstableMarkNextChangeAsNotPersistent();
265
+ moveBlocksToPosition([panelId], rootClientId, rootClientId, getNumberOfBlocksBeforeCell(newColumnStart, rowStart));
152
266
  },
153
- value: columnSpan,
154
- min: 1
155
- }), /*#__PURE__*/_jsx(InputControl, {
267
+ value: columnStart !== null && columnStart !== void 0 ? columnStart : 1,
268
+ min: 1,
269
+ max: columnCount ? columnCount - (columnSpan !== null && columnSpan !== void 0 ? columnSpan : 1) + 1 : undefined
270
+ })
271
+ }), /*#__PURE__*/_jsx(FlexItem, {
272
+ style: {
273
+ width: '50%'
274
+ },
275
+ children: /*#__PURE__*/_jsx(InputControl, {
156
276
  size: "__unstable-large",
157
- label: __('Row span'),
277
+ label: __('Row'),
158
278
  type: "number",
159
279
  onChange: value => {
280
+ // Don't allow unsetting.
281
+ const newRowStart = value === '' ? 1 : parseInt(value, 10);
160
282
  onChange({
161
283
  columnStart,
162
- rowStart,
284
+ rowStart: newRowStart,
163
285
  columnSpan,
164
- rowSpan: value
286
+ rowSpan
165
287
  });
288
+ __unstableMarkNextChangeAsNotPersistent();
289
+ moveBlocksToPosition([panelId], rootClientId, rootClientId, getNumberOfBlocksBeforeCell(columnStart, newRowStart));
166
290
  },
167
- value: rowSpan,
168
- min: 1
169
- })]
170
- }), window.__experimentalEnableGridInteractivity &&
171
- /*#__PURE__*/
172
- // Use Flex with an explicit width on the FlexItem instead of HStack to
173
- // work around an issue in webkit where inputs with a max attribute are
174
- // sized incorrectly.
175
- _jsxs(Flex, {
176
- as: ToolsPanelItem,
177
- hasValue: hasStartValue,
178
- label: __('Grid placement'),
179
- onDeselect: resetGridStarts,
180
- isShownByDefault: false,
181
- panelId: panelId,
182
- children: [/*#__PURE__*/_jsx(FlexItem, {
183
- style: {
184
- width: '50%'
185
- },
186
- children: /*#__PURE__*/_jsx(InputControl, {
187
- size: "__unstable-large",
188
- label: __('Column'),
189
- type: "number",
190
- onChange: value => {
191
- onChange({
192
- columnStart: value,
193
- rowStart,
194
- columnSpan,
195
- rowSpan
196
- });
197
- },
198
- value: columnStart,
199
- min: 1,
200
- max: parentLayout?.columnCount ? parentLayout.columnCount - (columnSpan !== null && columnSpan !== void 0 ? columnSpan : 1) + 1 : undefined
201
- })
202
- }), /*#__PURE__*/_jsx(FlexItem, {
203
- style: {
204
- width: '50%'
205
- },
206
- children: /*#__PURE__*/_jsx(InputControl, {
207
- size: "__unstable-large",
208
- label: __('Row'),
209
- type: "number",
210
- onChange: value => {
211
- onChange({
212
- columnStart,
213
- rowStart: value,
214
- columnSpan,
215
- rowSpan
216
- });
217
- },
218
- value: rowStart,
219
- min: 1,
220
- max: parentLayout?.rowCount ? parentLayout.rowCount - (rowSpan !== null && rowSpan !== void 0 ? rowSpan : 1) + 1 : undefined
221
- })
222
- })]
291
+ value: rowStart !== null && rowStart !== void 0 ? rowStart : 1,
292
+ min: 1,
293
+ max: rowCount ? rowCount - (rowSpan !== null && rowSpan !== void 0 ? rowSpan : 1) + 1 : undefined
294
+ })
223
295
  })]
224
296
  })]
225
297
  });
226
298
  }
227
- export function childLayoutOrientation(parentLayout) {
228
- const {
229
- orientation = 'horizontal'
230
- } = parentLayout;
231
- return orientation === 'horizontal' ? __('Width') : __('Height');
232
- }
233
299
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__experimentalInputControl","InputControl","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalToolsPanelItem","ToolsPanelItem","Flex","FlexItem","__","useEffect","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","helpText","selfStretch","parentLayout","orientation","ChildLayoutControl","value","childLayout","onChange","isShownByDefault","panelId","flexSize","columnStart","rowStart","columnSpan","rowSpan","type","parentType","default","defaultParentType","parentLayoutType","hasFlexValue","flexResetLabel","resetFlex","undefined","hasStartValue","hasSpanValue","resetGridStarts","resetGridSpans","children","as","spacing","hasValue","label","onDeselect","__nextHasNoMarginBottom","size","childLayoutOrientation","help","newFlexSize","isBlock","min","window","__experimentalEnableGridInteractivity","style","width","max","columnCount","rowCount"],"sources":["@wordpress/block-editor/src/components/child-layout-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalInputControl as InputControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\n\nfunction helpText( selfStretch, parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\n\tif ( selfStretch === 'fill' ) {\n\t\treturn __( 'Stretch to fill available space.' );\n\t}\n\tif ( selfStretch === 'fixed' && orientation === 'horizontal' ) {\n\t\treturn __( 'Specify a fixed width.' );\n\t} else if ( selfStretch === 'fixed' ) {\n\t\treturn __( 'Specify a fixed height.' );\n\t}\n\treturn __( 'Fit contents.' );\n}\n\n/**\n * Form to edit the child layout value.\n *\n * @param {Object} props Props.\n * @param {Object} props.value The child layout value.\n * @param {Function} props.onChange Function to update the child layout value.\n * @param {Object} props.parentLayout The parent layout value.\n *\n * @param {boolean} props.isShownByDefault\n * @param {string} props.panelId\n * @return {Element} child layout edit element.\n */\nexport default function ChildLayoutControl( {\n\tvalue: childLayout = {},\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst {\n\t\tselfStretch,\n\t\tflexSize,\n\t\tcolumnStart,\n\t\trowStart,\n\t\tcolumnSpan,\n\t\trowSpan,\n\t} = childLayout;\n\tconst {\n\t\ttype: parentType,\n\t\tdefault: { type: defaultParentType = 'default' } = {},\n\t\torientation = 'horizontal',\n\t} = parentLayout ?? {};\n\tconst parentLayoutType = parentType || defaultParentType;\n\n\tconst hasFlexValue = () => !! selfStretch;\n\tconst flexResetLabel =\n\t\torientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n\tconst resetFlex = () => {\n\t\tonChange( {\n\t\t\tselfStretch: undefined,\n\t\t\tflexSize: undefined,\n\t\t} );\n\t};\n\n\tconst hasStartValue = () => !! columnStart || !! rowStart;\n\tconst hasSpanValue = () => !! columnSpan || !! rowSpan;\n\tconst resetGridStarts = () => {\n\t\tonChange( {\n\t\t\tcolumnStart: undefined,\n\t\t\trowStart: undefined,\n\t\t} );\n\t};\n\tconst resetGridSpans = () => {\n\t\tonChange( {\n\t\t\tcolumnSpan: undefined,\n\t\t\trowSpan: undefined,\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( selfStretch === 'fixed' && ! flexSize ) {\n\t\t\tonChange( {\n\t\t\t\t...childLayout,\n\t\t\t\tselfStretch: 'fit',\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t{ parentLayoutType === 'flex' && (\n\t\t\t\t<VStack\n\t\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\thasValue={ hasFlexValue }\n\t\t\t\t\tlabel={ flexResetLabel }\n\t\t\t\t\tonDeselect={ resetFlex }\n\t\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\tlabel={ childLayoutOrientation( parentLayout ) }\n\t\t\t\t\t\tvalue={ selfStretch || 'fit' }\n\t\t\t\t\t\thelp={ helpText( selfStretch, parentLayout ) }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tconst newFlexSize =\n\t\t\t\t\t\t\t\tvalue !== 'fixed' ? null : flexSize;\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\tselfStretch: value,\n\t\t\t\t\t\t\t\tflexSize: newFlexSize,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tkey=\"fit\"\n\t\t\t\t\t\t\tvalue=\"fit\"\n\t\t\t\t\t\t\tlabel={ __( 'Fit' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tkey=\"fill\"\n\t\t\t\t\t\t\tvalue=\"fill\"\n\t\t\t\t\t\t\tlabel={ __( 'Fill' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tkey=\"fixed\"\n\t\t\t\t\t\t\tvalue=\"fixed\"\n\t\t\t\t\t\t\tlabel={ __( 'Fixed' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t{ selfStretch === 'fixed' && (\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\tselfStretch,\n\t\t\t\t\t\t\t\t\tflexSize: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ flexSize }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t\t{ parentLayoutType === 'grid' && (\n\t\t\t\t<>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\t\t\thasValue={ hasSpanValue }\n\t\t\t\t\t\tlabel={ __( 'Grid span' ) }\n\t\t\t\t\t\tonDeselect={ resetGridSpans }\n\t\t\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tlabel={ __( 'Column span' ) }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\t\t\tcolumnSpan: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ columnSpan }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tlabel={ __( 'Row span' ) }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\t\t\trowSpan: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ rowSpan }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t{ window.__experimentalEnableGridInteractivity && (\n\t\t\t\t\t\t// Use Flex with an explicit width on the FlexItem instead of HStack to\n\t\t\t\t\t\t// work around an issue in webkit where inputs with a max attribute are\n\t\t\t\t\t\t// sized incorrectly.\n\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\t\t\t\thasValue={ hasStartValue }\n\t\t\t\t\t\t\tlabel={ __( 'Grid placement' ) }\n\t\t\t\t\t\t\tonDeselect={ resetGridStarts }\n\t\t\t\t\t\t\tisShownByDefault={ false }\n\t\t\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FlexItem style={ { width: '50%' } }>\n\t\t\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Column' ) }\n\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t\tcolumnStart: value,\n\t\t\t\t\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tvalue={ columnStart }\n\t\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\t\t\tparentLayout?.columnCount\n\t\t\t\t\t\t\t\t\t\t\t? parentLayout.columnCount -\n\t\t\t\t\t\t\t\t\t\t\t ( columnSpan ?? 1 ) +\n\t\t\t\t\t\t\t\t\t\t\t 1\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t<FlexItem style={ { width: '50%' } }>\n\t\t\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Row' ) }\n\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\t\t\trowStart: value,\n\t\t\t\t\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tvalue={ rowStart }\n\t\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\t\t\tparentLayout?.rowCount\n\t\t\t\t\t\t\t\t\t\t\t? parentLayout.rowCount -\n\t\t\t\t\t\t\t\t\t\t\t ( rowSpan ?? 1 ) +\n\t\t\t\t\t\t\t\t\t\t\t 1\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport function childLayoutOrientation( parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\n\treturn orientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__experimentalInputControl","InputControl","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalToolsPanelItem","ToolsPanelItem","Flex","FlexItem","__","_x","useEffect","useSelect","useDispatch","useGetNumberOfBlocksBeforeCell","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","helpText","selfStretch","parentLayout","orientation","ChildLayoutControl","value","childLayout","onChange","isShownByDefault","panelId","type","parentType","default","defaultParentType","parentLayoutType","FlexControls","GridControls","flexSize","hasFlexValue","flexResetLabel","resetFlex","undefined","as","spacing","hasValue","label","onDeselect","children","__nextHasNoMarginBottom","size","childLayoutOrientation","help","newFlexSize","isBlock","columnStart","rowStart","columnSpan","rowSpan","columnCount","rowCount","rootClientId","select","getBlockRootClientId","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","getNumberOfBlocksBeforeCell","hasStartValue","hasSpanValue","resetGridStarts","resetGridSpans","newColumnSpan","parseInt","min","newRowSpan","window","__experimentalEnableGridInteractivity","style","width","newColumnStart","max","newRowStart"],"sources":["@wordpress/block-editor/src/components/child-layout-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalInputControl as InputControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useGetNumberOfBlocksBeforeCell } from '../grid/use-get-number-of-blocks-before-cell';\nimport { store as blockEditorStore } from '../../store';\n\nfunction helpText( selfStretch, parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\n\tif ( selfStretch === 'fill' ) {\n\t\treturn __( 'Stretch to fill available space.' );\n\t}\n\tif ( selfStretch === 'fixed' && orientation === 'horizontal' ) {\n\t\treturn __( 'Specify a fixed width.' );\n\t} else if ( selfStretch === 'fixed' ) {\n\t\treturn __( 'Specify a fixed height.' );\n\t}\n\treturn __( 'Fit contents.' );\n}\n\n/**\n * Form to edit the child layout value.\n *\n * @param {Object} props Props.\n * @param {Object} props.value The child layout value.\n * @param {Function} props.onChange Function to update the child layout value.\n * @param {Object} props.parentLayout The parent layout value.\n *\n * @param {boolean} props.isShownByDefault\n * @param {string} props.panelId\n * @return {Element} child layout edit element.\n */\nexport default function ChildLayoutControl( {\n\tvalue: childLayout = {},\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst {\n\t\ttype: parentType,\n\t\tdefault: { type: defaultParentType = 'default' } = {},\n\t} = parentLayout ?? {};\n\tconst parentLayoutType = parentType || defaultParentType;\n\n\tif ( parentLayoutType === 'flex' ) {\n\t\treturn (\n\t\t\t<FlexControls\n\t\t\t\tchildLayout={ childLayout }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t/>\n\t\t);\n\t} else if ( parentLayoutType === 'grid' ) {\n\t\treturn (\n\t\t\t<GridControls\n\t\t\t\tchildLayout={ childLayout }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn null;\n}\n\nfunction FlexControls( {\n\tchildLayout,\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst { selfStretch, flexSize } = childLayout;\n\tconst { orientation = 'horizontal' } = parentLayout ?? {};\n\tconst hasFlexValue = () => !! selfStretch;\n\tconst flexResetLabel =\n\t\torientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n\tconst resetFlex = () => {\n\t\tonChange( {\n\t\t\tselfStretch: undefined,\n\t\t\tflexSize: undefined,\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( selfStretch === 'fixed' && ! flexSize ) {\n\t\t\tonChange( {\n\t\t\t\t...childLayout,\n\t\t\t\tselfStretch: 'fit',\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\treturn (\n\t\t<VStack\n\t\t\tas={ ToolsPanelItem }\n\t\t\tspacing={ 2 }\n\t\t\thasValue={ hasFlexValue }\n\t\t\tlabel={ flexResetLabel }\n\t\t\tonDeselect={ resetFlex }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\tlabel={ childLayoutOrientation( parentLayout ) }\n\t\t\t\tvalue={ selfStretch || 'fit' }\n\t\t\t\thelp={ helpText( selfStretch, parentLayout ) }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tconst newFlexSize = value !== 'fixed' ? null : flexSize;\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\tselfStretch: value,\n\t\t\t\t\t\tflexSize: newFlexSize,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tisBlock\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fit\"\n\t\t\t\t\tvalue=\"fit\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Fit',\n\t\t\t\t\t\t'Intrinsic block width in flex layout'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fill\"\n\t\t\t\t\tvalue=\"fill\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Grow',\n\t\t\t\t\t\t'Block with expanding width in flex layout'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fixed\"\n\t\t\t\t\tvalue=\"fixed\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Fixed',\n\t\t\t\t\t\t'Block with fixed width in flex layout'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t{ selfStretch === 'fixed' && (\n\t\t\t\t<UnitControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tselfStretch,\n\t\t\t\t\t\t\tflexSize: value,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ flexSize }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport function childLayoutOrientation( parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\treturn orientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n}\n\nfunction GridControls( {\n\tchildLayout,\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst { columnStart, rowStart, columnSpan, rowSpan } = childLayout;\n\tconst { columnCount = 3, rowCount } = parentLayout ?? {};\n\tconst rootClientId = useSelect( ( select ) =>\n\t\tselect( blockEditorStore ).getBlockRootClientId( panelId )\n\t);\n\tconst { moveBlocksToPosition, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\trootClientId,\n\t\tcolumnCount\n\t);\n\tconst hasStartValue = () => !! columnStart || !! rowStart;\n\tconst hasSpanValue = () => !! columnSpan || !! rowSpan;\n\tconst resetGridStarts = () => {\n\t\tonChange( {\n\t\t\tcolumnStart: undefined,\n\t\t\trowStart: undefined,\n\t\t} );\n\t};\n\tconst resetGridSpans = () => {\n\t\tonChange( {\n\t\t\tcolumnSpan: undefined,\n\t\t\trowSpan: undefined,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<HStack\n\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\thasValue={ hasSpanValue }\n\t\t\t\tlabel={ __( 'Grid span' ) }\n\t\t\t\tonDeselect={ resetGridSpans }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t>\n\t\t\t\t<InputControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tlabel={ __( 'Column span' ) }\n\t\t\t\t\ttype=\"number\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\tconst newColumnSpan =\n\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\tcolumnSpan: newColumnSpan,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ columnSpan ?? 1 }\n\t\t\t\t\tmin={ 1 }\n\t\t\t\t/>\n\t\t\t\t<InputControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tlabel={ __( 'Row span' ) }\n\t\t\t\t\ttype=\"number\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\tconst newRowSpan =\n\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\trowSpan: newRowSpan,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ rowSpan ?? 1 }\n\t\t\t\t\tmin={ 1 }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t\t{ window.__experimentalEnableGridInteractivity && columnCount && (\n\t\t\t\t// Use Flex with an explicit width on the FlexItem instead of HStack to\n\t\t\t\t// work around an issue in webkit where inputs with a max attribute are\n\t\t\t\t// sized incorrectly.\n\t\t\t\t<Flex\n\t\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\t\thasValue={ hasStartValue }\n\t\t\t\t\tlabel={ __( 'Grid placement' ) }\n\t\t\t\t\tonDeselect={ resetGridStarts }\n\t\t\t\t\tisShownByDefault={ false }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FlexItem style={ { width: '50%' } }>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tlabel={ __( 'Column' ) }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\t\t\tconst newColumnStart =\n\t\t\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\tcolumnStart: newColumnStart,\n\t\t\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t[ panelId ],\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\t\tnewColumnStart,\n\t\t\t\t\t\t\t\t\t\trowStart\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\tvalue={ columnStart ?? 1 }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\tcolumnCount\n\t\t\t\t\t\t\t\t\t? columnCount - ( columnSpan ?? 1 ) + 1\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem style={ { width: '50%' } }>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tlabel={ __( 'Row' ) }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\t\t\tconst newRowStart =\n\t\t\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\trowStart: newRowStart,\n\t\t\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t[ panelId ],\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\t\tnewRowStart\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\tvalue={ rowStart ?? 1 }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\trowCount\n\t\t\t\t\t\t\t\t\t? rowCount - ( rowSpan ?? 1 ) + 1\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,12 +4,20 @@
4
4
  import { _x, __ } from '@wordpress/i18n';
5
5
  import { dateI18n, humanTimeDiff } from '@wordpress/date';
6
6
  import { useState, createInterpolateElement } from '@wordpress/element';
7
- import { TextControl, ExternalLink, VisuallyHidden, CustomSelectControl, ToggleControl, __experimentalVStack as VStack } from '@wordpress/components';
7
+ import { TextControl, ExternalLink, VisuallyHidden, ToggleControl, __experimentalVStack as VStack, privateApis as componentsPrivateApis } from '@wordpress/components';
8
8
 
9
- // So that we illustrate the different formats in the dropdown properly, show a date that is
10
- // somwhat recent, has a day greater than 12, and a month with more than three letters.
9
+ /**
10
+ * Internal dependencies
11
+ */
12
+ import { unlock } from '../../lock-unlock';
11
13
  import { jsx as _jsx } from "react/jsx-runtime";
12
14
  import { jsxs as _jsxs } from "react/jsx-runtime";
15
+ const {
16
+ CustomSelectControlV2Legacy: CustomSelectControl
17
+ } = unlock(componentsPrivateApis);
18
+
19
+ // So that we illustrate the different formats in the dropdown properly, show a date that is
20
+ // somwhat recent, has a day greater than 12, and a month with more than three letters.
13
21
  const exampleDate = new Date();
14
22
  exampleDate.setDate(20);
15
23
  exampleDate.setMonth(exampleDate.getMonth() - 3);
@@ -1 +1 @@
1
- {"version":3,"names":["_x","__","dateI18n","humanTimeDiff","useState","createInterpolateElement","TextControl","ExternalLink","VisuallyHidden","CustomSelectControl","ToggleControl","__experimentalVStack","VStack","jsx","_jsx","jsxs","_jsxs","exampleDate","Date","setDate","setMonth","getMonth","DateFormatPicker","format","defaultFormat","onChange","className","children","as","__nextHasNoMarginBottom","label","help","checked","NonDefaultControls","_suggestedOptions$fin","suggestedFormats","Set","suggestedOptions","map","suggestedFormat","index","key","name","customOption","__experimentalHint","isCustom","setIsCustom","some","option","options","value","find","selectedItem","hideLabelFromVision","Link","href"],"sources":["@wordpress/block-editor/src/components/date-format-picker/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x, __ } from '@wordpress/i18n';\nimport { dateI18n, humanTimeDiff } 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 illustrate the different formats in the dropdown properly, show a date that is\n// somwhat recent, has a day greater than 12, and a month with more than three letters.\nconst exampleDate = new Date();\nexampleDate.setDate( 20 );\nexampleDate.setMonth( exampleDate.getMonth() - 3 );\nif ( exampleDate.getMonth() === 4 ) {\n\t// May has three letters, so use March.\n\texampleDate.setMonth( 3 );\n}\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\texampleDate\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/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t'Y-m-d',\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'n/j/Y', 'short date format' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'n/j/Y g:i A', 'short date format with time' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'M j, Y', 'medium date format' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'M j, Y g:i A', 'medium date format with time' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'F j, Y', 'long date format' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'M j', 'short date format without the year' ),\n\t\t] ),\n\t];\n\n\tconst suggestedOptions = [\n\t\t...suggestedFormats.map( ( suggestedFormat, index ) => ( {\n\t\t\tkey: `suggested-${ index }`,\n\t\t\tname: dateI18n( suggestedFormat, exampleDate ),\n\t\t\tformat: suggestedFormat,\n\t\t} ) ),\n\t\t{\n\t\t\tkey: 'human-diff',\n\t\t\tname: humanTimeDiff( exampleDate ),\n\t\t\tformat: 'human-diff',\n\t\t},\n\t];\n\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() =>\n\t\t\t!! format &&\n\t\t\t! suggestedOptions.some( ( option ) => option.format === format )\n\t);\n\n\treturn (\n\t\t<VStack>\n\t\t\t<CustomSelectControl\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/documentation/article/customize-date-and-time-format/'\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_x","__","dateI18n","humanTimeDiff","useState","createInterpolateElement","TextControl","ExternalLink","VisuallyHidden","ToggleControl","__experimentalVStack","VStack","privateApis","componentsPrivateApis","unlock","jsx","_jsx","jsxs","_jsxs","CustomSelectControlV2Legacy","CustomSelectControl","exampleDate","Date","setDate","setMonth","getMonth","DateFormatPicker","format","defaultFormat","onChange","className","children","as","__nextHasNoMarginBottom","label","help","checked","NonDefaultControls","_suggestedOptions$fin","suggestedFormats","Set","suggestedOptions","map","suggestedFormat","index","key","name","customOption","__experimentalHint","isCustom","setIsCustom","some","option","options","value","find","selectedItem","hideLabelFromVision","Link","href"],"sources":["@wordpress/block-editor/src/components/date-format-picker/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x, __ } from '@wordpress/i18n';\nimport { dateI18n, humanTimeDiff } from '@wordpress/date';\nimport { useState, createInterpolateElement } from '@wordpress/element';\nimport {\n\tTextControl,\n\tExternalLink,\n\tVisuallyHidden,\n\tToggleControl,\n\t__experimentalVStack as VStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { CustomSelectControlV2Legacy: CustomSelectControl } = unlock(\n\tcomponentsPrivateApis\n);\n\n// So that we illustrate the different formats in the dropdown properly, show a date that is\n// somwhat recent, has a day greater than 12, and a month with more than three letters.\nconst exampleDate = new Date();\nexampleDate.setDate( 20 );\nexampleDate.setMonth( exampleDate.getMonth() - 3 );\nif ( exampleDate.getMonth() === 4 ) {\n\t// May has three letters, so use March.\n\texampleDate.setMonth( 3 );\n}\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\texampleDate\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/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t'Y-m-d',\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'n/j/Y', 'short date format' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'n/j/Y g:i A', 'short date format with time' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'M j, Y', 'medium date format' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'M j, Y g:i A', 'medium date format with time' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'F j, Y', 'long date format' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'M j', 'short date format without the year' ),\n\t\t] ),\n\t];\n\n\tconst suggestedOptions = [\n\t\t...suggestedFormats.map( ( suggestedFormat, index ) => ( {\n\t\t\tkey: `suggested-${ index }`,\n\t\t\tname: dateI18n( suggestedFormat, exampleDate ),\n\t\t\tformat: suggestedFormat,\n\t\t} ) ),\n\t\t{\n\t\t\tkey: 'human-diff',\n\t\t\tname: humanTimeDiff( exampleDate ),\n\t\t\tformat: 'human-diff',\n\t\t},\n\t];\n\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() =>\n\t\t\t!! format &&\n\t\t\t! suggestedOptions.some( ( option ) => option.format === format )\n\t);\n\n\treturn (\n\t\t<VStack>\n\t\t\t<CustomSelectControl\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/documentation/article/customize-date-and-time-format/'\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"],"mappings":"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","ignoreList":[]}
@@ -64,7 +64,9 @@ function DimensionsTool({
64
64
  // Default options handled by ScaleTool.
65
65
  defaultScale = 'fill',
66
66
  // Match CSS default value for object-fit.
67
- unitsOptions // Default options handled by UnitControl.
67
+ unitsOptions,
68
+ // Default options handled by UnitControl.
69
+ tools = ['aspectRatio', 'widthHeight', 'scale']
68
70
  }) {
69
71
  // Coerce undefined and CSS default values to be null.
70
72
  const width = value.width === undefined || value.width === 'auto' ? null : value.width;
@@ -84,7 +86,7 @@ function DimensionsTool({
84
86
  const aspectRatioValue = width && height ? 'custom' : lastAspectRatio;
85
87
  const showScaleControl = aspectRatio || width && height;
86
88
  return /*#__PURE__*/_jsxs(_Fragment, {
87
- children: [/*#__PURE__*/_jsx(AspectRatioTool, {
89
+ children: [tools.includes('aspectRatio') && /*#__PURE__*/_jsx(AspectRatioTool, {
88
90
  panelId: panelId,
89
91
  options: aspectRatioOptions,
90
92
  defaultValue: defaultAspectRatio,
@@ -121,7 +123,7 @@ function DimensionsTool({
121
123
  }
122
124
  onChange(nextValue);
123
125
  }
124
- }), /*#__PURE__*/_jsx(WidthHeightTool, {
126
+ }), tools.includes('widthHeight') && /*#__PURE__*/_jsx(WidthHeightTool, {
125
127
  panelId: panelId,
126
128
  units: unitsOptions,
127
129
  value: {
@@ -176,7 +178,7 @@ function DimensionsTool({
176
178
  }
177
179
  onChange(nextValue);
178
180
  }
179
- }), showScaleControl && /*#__PURE__*/_jsx(ScaleTool, {
181
+ }), tools.includes('scale') && showScaleControl && /*#__PURE__*/_jsx(ScaleTool, {
180
182
  panelId: panelId,
181
183
  options: scaleOptions,
182
184
  defaultValue: defaultScale,