@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
@@ -1 +1 @@
1
- {"version":3,"names":["useState","AspectRatioTool","ScaleTool","WidthHeightTool","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DimensionsTool","panelId","value","onChange","aspectRatioOptions","defaultAspectRatio","scaleOptions","defaultScale","unitsOptions","width","undefined","height","aspectRatio","scale","lastScale","setLastScale","lastAspectRatio","setLastAspectRatio","aspectRatioValue","showScaleControl","children","options","defaultValue","nextAspectRatio","nextValue","units","nextWidth","nextHeight","nextScale"],"sources":["@wordpress/block-editor/src/components/dimensions-tool/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport AspectRatioTool from './aspect-ratio-tool';\nimport ScaleTool from './scale-tool';\nimport WidthHeightTool from './width-height-tool';\n\n/**\n * @typedef {import('@wordpress/components/build-types/select-control/types').SelectControlProps} SelectControlProps\n */\n\n/**\n * @typedef {import('@wordpress/components/build-types/unit-control/types').WPUnitControlUnit} WPUnitControlUnit\n */\n\n/**\n * @typedef {Object} Dimensions\n * @property {string} [width] CSS width property.\n * @property {string} [height] CSS height property.\n * @property {string} [scale] CSS object-fit property.\n * @property {string} [aspectRatio] CSS aspect-ratio property.\n */\n\n/**\n * @callback DimensionsControlsOnChange\n * @param {Dimensions} nextValue\n * @return {void}\n */\n\n/**\n * @typedef {Object} DimensionsControlsProps\n * @property {string} [panelId] ID of the panel that contains the controls.\n * @property {Dimensions} [value] Current dimensions values.\n * @property {DimensionsControlsOnChange} [onChange] Callback to update the dimensions values.\n * @property {SelectControlProps[]} [aspectRatioOptions] Aspect ratio options.\n * @property {SelectControlProps[]} [scaleOptions] Scale options.\n * @property {WPUnitControlUnit[]} [unitsOptions] Units options.\n */\n\n/**\n * Component that renders controls to edit the dimensions of an image or container.\n *\n * @param {DimensionsControlsProps} props The component props.\n *\n * @return {Element} The dimensions controls.\n */\nfunction DimensionsTool( {\n\tpanelId,\n\tvalue = {},\n\tonChange = () => {},\n\taspectRatioOptions, // Default options handled by AspectRatioTool.\n\tdefaultAspectRatio = 'auto', // Match CSS default value for aspect-ratio.\n\tscaleOptions, // Default options handled by ScaleTool.\n\tdefaultScale = 'fill', // Match CSS default value for object-fit.\n\tunitsOptions, // Default options handled by UnitControl.\n} ) {\n\t// Coerce undefined and CSS default values to be null.\n\tconst width =\n\t\tvalue.width === undefined || value.width === 'auto'\n\t\t\t? null\n\t\t\t: value.width;\n\tconst height =\n\t\tvalue.height === undefined || value.height === 'auto'\n\t\t\t? null\n\t\t\t: value.height;\n\tconst aspectRatio =\n\t\tvalue.aspectRatio === undefined || value.aspectRatio === 'auto'\n\t\t\t? null\n\t\t\t: value.aspectRatio;\n\tconst scale =\n\t\tvalue.scale === undefined || value.scale === 'fill'\n\t\t\t? null\n\t\t\t: value.scale;\n\n\t// Keep track of state internally, so when the value is cleared by means\n\t// other than directly editing that field, it's easier to restore the\n\t// previous value.\n\tconst [ lastScale, setLastScale ] = useState( scale );\n\tconst [ lastAspectRatio, setLastAspectRatio ] = useState( aspectRatio );\n\n\t// 'custom' is not a valid value for CSS aspect-ratio, but it is used in the\n\t// dropdown to indicate that setting both the width and height is the same\n\t// as a custom aspect ratio.\n\tconst aspectRatioValue = width && height ? 'custom' : lastAspectRatio;\n\n\tconst showScaleControl = aspectRatio || ( width && height );\n\n\treturn (\n\t\t<>\n\t\t\t<AspectRatioTool\n\t\t\t\tpanelId={ panelId }\n\t\t\t\toptions={ aspectRatioOptions }\n\t\t\t\tdefaultValue={ defaultAspectRatio }\n\t\t\t\tvalue={ aspectRatioValue }\n\t\t\t\tonChange={ ( nextAspectRatio ) => {\n\t\t\t\t\tconst nextValue = { ...value };\n\n\t\t\t\t\t// 'auto' is CSS default, so it gets treated as null.\n\t\t\t\t\tnextAspectRatio =\n\t\t\t\t\t\tnextAspectRatio === 'auto' ? null : nextAspectRatio;\n\n\t\t\t\t\tsetLastAspectRatio( nextAspectRatio );\n\n\t\t\t\t\t// Update aspectRatio.\n\t\t\t\t\tif ( ! nextAspectRatio ) {\n\t\t\t\t\t\tdelete nextValue.aspectRatio;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnextValue.aspectRatio = nextAspectRatio;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Auto-update scale.\n\t\t\t\t\tif ( ! nextAspectRatio ) {\n\t\t\t\t\t\tdelete nextValue.scale;\n\t\t\t\t\t} else if ( lastScale ) {\n\t\t\t\t\t\tnextValue.scale = lastScale;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnextValue.scale = defaultScale;\n\t\t\t\t\t\tsetLastScale( defaultScale );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Auto-update width and height.\n\t\t\t\t\tif ( 'custom' !== nextAspectRatio && width && height ) {\n\t\t\t\t\t\tdelete nextValue.height;\n\t\t\t\t\t}\n\n\t\t\t\t\tonChange( nextValue );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<WidthHeightTool\n\t\t\t\tpanelId={ panelId }\n\t\t\t\tunits={ unitsOptions }\n\t\t\t\tvalue={ { width, height } }\n\t\t\t\tonChange={ ( { width: nextWidth, height: nextHeight } ) => {\n\t\t\t\t\tconst nextValue = { ...value };\n\n\t\t\t\t\t// 'auto' is CSS default, so it gets treated as null.\n\t\t\t\t\tnextWidth = nextWidth === 'auto' ? null : nextWidth;\n\t\t\t\t\tnextHeight = nextHeight === 'auto' ? null : nextHeight;\n\n\t\t\t\t\t// Update width.\n\t\t\t\t\tif ( ! nextWidth ) {\n\t\t\t\t\t\tdelete nextValue.width;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnextValue.width = nextWidth;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Update height.\n\t\t\t\t\tif ( ! nextHeight ) {\n\t\t\t\t\t\tdelete nextValue.height;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnextValue.height = nextHeight;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Auto-update aspectRatio.\n\t\t\t\t\tif ( nextWidth && nextHeight ) {\n\t\t\t\t\t\tdelete nextValue.aspectRatio;\n\t\t\t\t\t} else if ( lastAspectRatio ) {\n\t\t\t\t\t\tnextValue.aspectRatio = lastAspectRatio;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// No setting defaultAspectRatio here, because\n\t\t\t\t\t\t// aspectRatio is optional in this scenario,\n\t\t\t\t\t\t// unlike scale.\n\t\t\t\t\t}\n\n\t\t\t\t\t// Auto-update scale.\n\t\t\t\t\tif ( ! lastAspectRatio && !! nextWidth !== !! nextHeight ) {\n\t\t\t\t\t\tdelete nextValue.scale;\n\t\t\t\t\t} else if ( lastScale ) {\n\t\t\t\t\t\tnextValue.scale = lastScale;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnextValue.scale = defaultScale;\n\t\t\t\t\t\tsetLastScale( defaultScale );\n\t\t\t\t\t}\n\n\t\t\t\t\tonChange( nextValue );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ showScaleControl && (\n\t\t\t\t<ScaleTool\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t\toptions={ scaleOptions }\n\t\t\t\t\tdefaultValue={ defaultScale }\n\t\t\t\t\tvalue={ lastScale }\n\t\t\t\t\tonChange={ ( nextScale ) => {\n\t\t\t\t\t\tconst nextValue = { ...value };\n\n\t\t\t\t\t\t// 'fill' is CSS default, so it gets treated as null.\n\t\t\t\t\t\tnextScale = nextScale === 'fill' ? null : nextScale;\n\n\t\t\t\t\t\tsetLastScale( nextScale );\n\n\t\t\t\t\t\t// Update scale.\n\t\t\t\t\t\tif ( ! nextScale ) {\n\t\t\t\t\t\t\tdelete nextValue.scale;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnextValue.scale = nextScale;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonChange( nextValue );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default DimensionsTool;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useState","AspectRatioTool","ScaleTool","WidthHeightTool","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DimensionsTool","panelId","value","onChange","aspectRatioOptions","defaultAspectRatio","scaleOptions","defaultScale","unitsOptions","tools","width","undefined","height","aspectRatio","scale","lastScale","setLastScale","lastAspectRatio","setLastAspectRatio","aspectRatioValue","showScaleControl","children","includes","options","defaultValue","nextAspectRatio","nextValue","units","nextWidth","nextHeight","nextScale"],"sources":["@wordpress/block-editor/src/components/dimensions-tool/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport AspectRatioTool from './aspect-ratio-tool';\nimport ScaleTool from './scale-tool';\nimport WidthHeightTool from './width-height-tool';\n\n/**\n * @typedef {import('@wordpress/components/build-types/select-control/types').SelectControlProps} SelectControlProps\n */\n\n/**\n * @typedef {import('@wordpress/components/build-types/unit-control/types').WPUnitControlUnit} WPUnitControlUnit\n */\n\n/**\n * @typedef {Object} Dimensions\n * @property {string} [width] CSS width property.\n * @property {string} [height] CSS height property.\n * @property {string} [scale] CSS object-fit property.\n * @property {string} [aspectRatio] CSS aspect-ratio property.\n */\n\n/**\n * @callback DimensionsControlsOnChange\n * @param {Dimensions} nextValue\n * @return {void}\n */\n\n/**\n * @typedef {Object} DimensionsControlsProps\n * @property {string} [panelId] ID of the panel that contains the controls.\n * @property {Dimensions} [value] Current dimensions values.\n * @property {DimensionsControlsOnChange} [onChange] Callback to update the dimensions values.\n * @property {SelectControlProps[]} [aspectRatioOptions] Aspect ratio options.\n * @property {SelectControlProps[]} [scaleOptions] Scale options.\n * @property {WPUnitControlUnit[]} [unitsOptions] Units options.\n */\n\n/**\n * Component that renders controls to edit the dimensions of an image or container.\n *\n * @param {DimensionsControlsProps} props The component props.\n *\n * @return {Element} The dimensions controls.\n */\nfunction DimensionsTool( {\n\tpanelId,\n\tvalue = {},\n\tonChange = () => {},\n\taspectRatioOptions, // Default options handled by AspectRatioTool.\n\tdefaultAspectRatio = 'auto', // Match CSS default value for aspect-ratio.\n\tscaleOptions, // Default options handled by ScaleTool.\n\tdefaultScale = 'fill', // Match CSS default value for object-fit.\n\tunitsOptions, // Default options handled by UnitControl.\n\ttools = [ 'aspectRatio', 'widthHeight', 'scale' ],\n} ) {\n\t// Coerce undefined and CSS default values to be null.\n\tconst width =\n\t\tvalue.width === undefined || value.width === 'auto'\n\t\t\t? null\n\t\t\t: value.width;\n\tconst height =\n\t\tvalue.height === undefined || value.height === 'auto'\n\t\t\t? null\n\t\t\t: value.height;\n\tconst aspectRatio =\n\t\tvalue.aspectRatio === undefined || value.aspectRatio === 'auto'\n\t\t\t? null\n\t\t\t: value.aspectRatio;\n\tconst scale =\n\t\tvalue.scale === undefined || value.scale === 'fill'\n\t\t\t? null\n\t\t\t: value.scale;\n\n\t// Keep track of state internally, so when the value is cleared by means\n\t// other than directly editing that field, it's easier to restore the\n\t// previous value.\n\tconst [ lastScale, setLastScale ] = useState( scale );\n\tconst [ lastAspectRatio, setLastAspectRatio ] = useState( aspectRatio );\n\n\t// 'custom' is not a valid value for CSS aspect-ratio, but it is used in the\n\t// dropdown to indicate that setting both the width and height is the same\n\t// as a custom aspect ratio.\n\tconst aspectRatioValue = width && height ? 'custom' : lastAspectRatio;\n\n\tconst showScaleControl = aspectRatio || ( width && height );\n\n\treturn (\n\t\t<>\n\t\t\t{ tools.includes( 'aspectRatio' ) && (\n\t\t\t\t<AspectRatioTool\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t\toptions={ aspectRatioOptions }\n\t\t\t\t\tdefaultValue={ defaultAspectRatio }\n\t\t\t\t\tvalue={ aspectRatioValue }\n\t\t\t\t\tonChange={ ( nextAspectRatio ) => {\n\t\t\t\t\t\tconst nextValue = { ...value };\n\n\t\t\t\t\t\t// 'auto' is CSS default, so it gets treated as null.\n\t\t\t\t\t\tnextAspectRatio =\n\t\t\t\t\t\t\tnextAspectRatio === 'auto' ? null : nextAspectRatio;\n\n\t\t\t\t\t\tsetLastAspectRatio( nextAspectRatio );\n\n\t\t\t\t\t\t// Update aspectRatio.\n\t\t\t\t\t\tif ( ! nextAspectRatio ) {\n\t\t\t\t\t\t\tdelete nextValue.aspectRatio;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnextValue.aspectRatio = nextAspectRatio;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Auto-update scale.\n\t\t\t\t\t\tif ( ! nextAspectRatio ) {\n\t\t\t\t\t\t\tdelete nextValue.scale;\n\t\t\t\t\t\t} else if ( lastScale ) {\n\t\t\t\t\t\t\tnextValue.scale = lastScale;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnextValue.scale = defaultScale;\n\t\t\t\t\t\t\tsetLastScale( defaultScale );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Auto-update width and height.\n\t\t\t\t\t\tif ( 'custom' !== nextAspectRatio && width && height ) {\n\t\t\t\t\t\t\tdelete nextValue.height;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonChange( nextValue );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ tools.includes( 'widthHeight' ) && (\n\t\t\t\t<WidthHeightTool\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t\tunits={ unitsOptions }\n\t\t\t\t\tvalue={ { width, height } }\n\t\t\t\t\tonChange={ ( { width: nextWidth, height: nextHeight } ) => {\n\t\t\t\t\t\tconst nextValue = { ...value };\n\n\t\t\t\t\t\t// 'auto' is CSS default, so it gets treated as null.\n\t\t\t\t\t\tnextWidth = nextWidth === 'auto' ? null : nextWidth;\n\t\t\t\t\t\tnextHeight = nextHeight === 'auto' ? null : nextHeight;\n\n\t\t\t\t\t\t// Update width.\n\t\t\t\t\t\tif ( ! nextWidth ) {\n\t\t\t\t\t\t\tdelete nextValue.width;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnextValue.width = nextWidth;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Update height.\n\t\t\t\t\t\tif ( ! nextHeight ) {\n\t\t\t\t\t\t\tdelete nextValue.height;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnextValue.height = nextHeight;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Auto-update aspectRatio.\n\t\t\t\t\t\tif ( nextWidth && nextHeight ) {\n\t\t\t\t\t\t\tdelete nextValue.aspectRatio;\n\t\t\t\t\t\t} else if ( lastAspectRatio ) {\n\t\t\t\t\t\t\tnextValue.aspectRatio = lastAspectRatio;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// No setting defaultAspectRatio here, because\n\t\t\t\t\t\t\t// aspectRatio is optional in this scenario,\n\t\t\t\t\t\t\t// unlike scale.\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Auto-update scale.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! lastAspectRatio &&\n\t\t\t\t\t\t\t!! nextWidth !== !! nextHeight\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tdelete nextValue.scale;\n\t\t\t\t\t\t} else if ( lastScale ) {\n\t\t\t\t\t\t\tnextValue.scale = lastScale;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnextValue.scale = defaultScale;\n\t\t\t\t\t\t\tsetLastScale( defaultScale );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonChange( nextValue );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ tools.includes( 'scale' ) && showScaleControl && (\n\t\t\t\t<ScaleTool\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t\toptions={ scaleOptions }\n\t\t\t\t\tdefaultValue={ defaultScale }\n\t\t\t\t\tvalue={ lastScale }\n\t\t\t\t\tonChange={ ( nextScale ) => {\n\t\t\t\t\t\tconst nextValue = { ...value };\n\n\t\t\t\t\t\t// 'fill' is CSS default, so it gets treated as null.\n\t\t\t\t\t\tnextScale = nextScale === 'fill' ? null : nextScale;\n\n\t\t\t\t\t\tsetLastScale( nextScale );\n\n\t\t\t\t\t\t// Update scale.\n\t\t\t\t\t\tif ( ! nextScale ) {\n\t\t\t\t\t\t\tdelete nextValue.scale;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnextValue.scale = nextScale;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonChange( nextValue );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default DimensionsTool;\n"],"mappings":"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","ignoreList":[]}
@@ -1,46 +1,19 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { CustomSelectControl } from '@wordpress/components';
4
+ import { privateApis as componentsPrivateApis } from '@wordpress/components';
5
5
  import { useMemo } from '@wordpress/element';
6
- import { __, _x, sprintf } from '@wordpress/i18n';
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
- const FONT_STYLES = [{
9
- name: _x('Regular', 'font style'),
10
- value: 'normal'
11
- }, {
12
- name: _x('Italic', 'font style'),
13
- value: 'italic'
14
- }];
15
- const FONT_WEIGHTS = [{
16
- name: _x('Thin', 'font weight'),
17
- value: '100'
18
- }, {
19
- name: _x('Extra Light', 'font weight'),
20
- value: '200'
21
- }, {
22
- name: _x('Light', 'font weight'),
23
- value: '300'
24
- }, {
25
- name: _x('Regular', 'font weight'),
26
- value: '400'
27
- }, {
28
- name: _x('Medium', 'font weight'),
29
- value: '500'
30
- }, {
31
- name: _x('Semi Bold', 'font weight'),
32
- value: '600'
33
- }, {
34
- name: _x('Bold', 'font weight'),
35
- value: '700'
36
- }, {
37
- name: _x('Extra Bold', 'font weight'),
38
- value: '800'
39
- }, {
40
- name: _x('Black', 'font weight'),
41
- value: '900'
42
- }];
6
+ import { __, sprintf } from '@wordpress/i18n';
43
7
 
8
+ /**
9
+ * Internal dependencies
10
+ */
11
+ import { getFontStylesAndWeights } from '../../utils/get-font-styles-and-weights';
12
+ import { unlock } from '../../lock-unlock';
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ const {
15
+ CustomSelectControlV2Legacy: CustomSelectControl
16
+ } = unlock(componentsPrivateApis);
44
17
  /**
45
18
  * Adjusts font appearance field label in case either font styles or weights
46
19
  * are disabled.
@@ -60,7 +33,7 @@ const getFontAppearanceLabel = (hasFontStyles, hasFontWeights) => {
60
33
  };
61
34
 
62
35
  /**
63
- * Control to display unified font style and weight options.
36
+ * Control to display font style and weight options of the active font.
64
37
  *
65
38
  * @param {Object} props Component props.
66
39
  *
@@ -71,6 +44,7 @@ export default function FontAppearanceControl(props) {
71
44
  onChange,
72
45
  hasFontStyles = true,
73
46
  hasFontWeights = true,
47
+ fontFamilyFaces,
74
48
  value: {
75
49
  fontStyle,
76
50
  fontWeight
@@ -87,37 +61,25 @@ export default function FontAppearanceControl(props) {
87
61
  fontWeight: undefined
88
62
  }
89
63
  };
64
+ const {
65
+ fontStyles,
66
+ fontWeights,
67
+ combinedStyleAndWeightOptions
68
+ } = getFontStylesAndWeights(fontFamilyFaces);
90
69
 
91
- // Combines both font style and weight options into a single dropdown.
70
+ // Generates select options for combined font styles and weights.
92
71
  const combineOptions = () => {
93
72
  const combinedOptions = [defaultOption];
94
- FONT_STYLES.forEach(({
95
- name: styleName,
96
- value: styleValue
97
- }) => {
98
- FONT_WEIGHTS.forEach(({
99
- name: weightName,
100
- value: weightValue
101
- }) => {
102
- const optionName = styleValue === 'normal' ? weightName : sprintf( /* translators: 1: Font weight name. 2: Font style name. */
103
- __('%1$s %2$s'), weightName, styleName);
104
- combinedOptions.push({
105
- key: `${styleValue}-${weightValue}`,
106
- name: optionName,
107
- style: {
108
- fontStyle: styleValue,
109
- fontWeight: weightValue
110
- }
111
- });
112
- });
113
- });
73
+ if (combinedStyleAndWeightOptions) {
74
+ combinedOptions.push(...combinedStyleAndWeightOptions);
75
+ }
114
76
  return combinedOptions;
115
77
  };
116
78
 
117
79
  // Generates select options for font styles only.
118
80
  const styleOptions = () => {
119
81
  const combinedOptions = [defaultOption];
120
- FONT_STYLES.forEach(({
82
+ fontStyles.forEach(({
121
83
  name,
122
84
  value
123
85
  }) => {
@@ -136,7 +98,7 @@ export default function FontAppearanceControl(props) {
136
98
  // Generates select options for font weights only.
137
99
  const weightOptions = () => {
138
100
  const combinedOptions = [defaultOption];
139
- FONT_WEIGHTS.forEach(({
101
+ fontWeights.forEach(({
140
102
  name,
141
103
  value
142
104
  }) => {
@@ -154,11 +116,14 @@ export default function FontAppearanceControl(props) {
154
116
 
155
117
  // Map font styles and weights to select options.
156
118
  const selectOptions = useMemo(() => {
119
+ // Display combined available font style and weight options.
157
120
  if (hasFontStyles && hasFontWeights) {
158
121
  return combineOptions();
159
122
  }
123
+
124
+ // Display only font style options or font weight options.
160
125
  return hasFontStyles ? styleOptions() : weightOptions();
161
- }, [props.options]);
126
+ }, [props.options, fontStyles, fontWeights, combinedStyleAndWeightOptions]);
162
127
 
163
128
  // Find current selection by comparing font style & weight against options,
164
129
  // and fall back to the Default option if there is no matching option.
@@ -1 +1 @@
1
- {"version":3,"names":["CustomSelectControl","useMemo","__","_x","sprintf","jsx","_jsx","FONT_STYLES","name","value","FONT_WEIGHTS","getFontAppearanceLabel","hasFontStyles","hasFontWeights","FontAppearanceControl","props","onChange","fontStyle","fontWeight","otherProps","hasStylesOrWeights","label","defaultOption","key","style","undefined","combineOptions","combinedOptions","forEach","styleName","styleValue","weightName","weightValue","optionName","push","styleOptions","weightOptions","selectOptions","options","currentSelection","find","option","getDescribedBy","className","describedBy","selectedItem"],"sources":["@wordpress/block-editor/src/components/font-appearance-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { CustomSelectControl } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\n\nconst FONT_STYLES = [\n\t{\n\t\tname: _x( 'Regular', 'font style' ),\n\t\tvalue: 'normal',\n\t},\n\t{\n\t\tname: _x( 'Italic', 'font style' ),\n\t\tvalue: 'italic',\n\t},\n];\n\nconst FONT_WEIGHTS = [\n\t{\n\t\tname: _x( 'Thin', 'font weight' ),\n\t\tvalue: '100',\n\t},\n\t{\n\t\tname: _x( 'Extra Light', 'font weight' ),\n\t\tvalue: '200',\n\t},\n\t{\n\t\tname: _x( 'Light', 'font weight' ),\n\t\tvalue: '300',\n\t},\n\t{\n\t\tname: _x( 'Regular', 'font weight' ),\n\t\tvalue: '400',\n\t},\n\t{\n\t\tname: _x( 'Medium', 'font weight' ),\n\t\tvalue: '500',\n\t},\n\t{\n\t\tname: _x( 'Semi Bold', 'font weight' ),\n\t\tvalue: '600',\n\t},\n\t{\n\t\tname: _x( 'Bold', 'font weight' ),\n\t\tvalue: '700',\n\t},\n\t{\n\t\tname: _x( 'Extra Bold', 'font weight' ),\n\t\tvalue: '800',\n\t},\n\t{\n\t\tname: _x( 'Black', 'font weight' ),\n\t\tvalue: '900',\n\t},\n];\n\n/**\n * Adjusts font appearance field label in case either font styles or weights\n * are disabled.\n *\n * @param {boolean} hasFontStyles Whether font styles are enabled and present.\n * @param {boolean} hasFontWeights Whether font weights are enabled and present.\n * @return {string} A label representing what font appearance is being edited.\n */\nconst getFontAppearanceLabel = ( hasFontStyles, hasFontWeights ) => {\n\tif ( ! hasFontStyles ) {\n\t\treturn __( 'Font weight' );\n\t}\n\n\tif ( ! hasFontWeights ) {\n\t\treturn __( 'Font style' );\n\t}\n\n\treturn __( 'Appearance' );\n};\n\n/**\n * Control to display unified font style and weight options.\n *\n * @param {Object} props Component props.\n *\n * @return {Element} Font appearance control.\n */\nexport default function FontAppearanceControl( props ) {\n\tconst {\n\t\tonChange,\n\t\thasFontStyles = true,\n\t\thasFontWeights = true,\n\t\tvalue: { fontStyle, fontWeight },\n\t\t...otherProps\n\t} = props;\n\tconst hasStylesOrWeights = hasFontStyles || hasFontWeights;\n\tconst label = getFontAppearanceLabel( hasFontStyles, hasFontWeights );\n\tconst defaultOption = {\n\t\tkey: 'default',\n\t\tname: __( 'Default' ),\n\t\tstyle: { fontStyle: undefined, fontWeight: undefined },\n\t};\n\n\t// Combines both font style and weight options into a single dropdown.\n\tconst combineOptions = () => {\n\t\tconst combinedOptions = [ defaultOption ];\n\n\t\tFONT_STYLES.forEach( ( { name: styleName, value: styleValue } ) => {\n\t\t\tFONT_WEIGHTS.forEach(\n\t\t\t\t( { name: weightName, value: weightValue } ) => {\n\t\t\t\t\tconst optionName =\n\t\t\t\t\t\tstyleValue === 'normal'\n\t\t\t\t\t\t\t? weightName\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: 1: Font weight name. 2: Font style name. */\n\t\t\t\t\t\t\t\t\t__( '%1$s %2$s' ),\n\t\t\t\t\t\t\t\t\tweightName,\n\t\t\t\t\t\t\t\t\tstyleName\n\t\t\t\t\t\t\t );\n\n\t\t\t\t\tcombinedOptions.push( {\n\t\t\t\t\t\tkey: `${ styleValue }-${ weightValue }`,\n\t\t\t\t\t\tname: optionName,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tfontStyle: styleValue,\n\t\t\t\t\t\t\tfontWeight: weightValue,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t);\n\t\t} );\n\n\t\treturn combinedOptions;\n\t};\n\n\t// Generates select options for font styles only.\n\tconst styleOptions = () => {\n\t\tconst combinedOptions = [ defaultOption ];\n\t\tFONT_STYLES.forEach( ( { name, value } ) => {\n\t\t\tcombinedOptions.push( {\n\t\t\t\tkey: value,\n\t\t\t\tname,\n\t\t\t\tstyle: { fontStyle: value, fontWeight: undefined },\n\t\t\t} );\n\t\t} );\n\t\treturn combinedOptions;\n\t};\n\n\t// Generates select options for font weights only.\n\tconst weightOptions = () => {\n\t\tconst combinedOptions = [ defaultOption ];\n\t\tFONT_WEIGHTS.forEach( ( { name, value } ) => {\n\t\t\tcombinedOptions.push( {\n\t\t\t\tkey: value,\n\t\t\t\tname,\n\t\t\t\tstyle: { fontStyle: undefined, fontWeight: value },\n\t\t\t} );\n\t\t} );\n\t\treturn combinedOptions;\n\t};\n\n\t// Map font styles and weights to select options.\n\tconst selectOptions = useMemo( () => {\n\t\tif ( hasFontStyles && hasFontWeights ) {\n\t\t\treturn combineOptions();\n\t\t}\n\n\t\treturn hasFontStyles ? styleOptions() : weightOptions();\n\t}, [ props.options ] );\n\n\t// Find current selection by comparing font style & weight against options,\n\t// and fall back to the Default option if there is no matching option.\n\tconst currentSelection =\n\t\tselectOptions.find(\n\t\t\t( option ) =>\n\t\t\t\toption.style.fontStyle === fontStyle &&\n\t\t\t\toption.style.fontWeight === fontWeight\n\t\t) || selectOptions[ 0 ];\n\n\t// Adjusts screen reader description based on styles or weights.\n\tconst getDescribedBy = () => {\n\t\tif ( ! currentSelection ) {\n\t\t\treturn __( 'No selected font appearance' );\n\t\t}\n\n\t\tif ( ! hasFontStyles ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: %s: Currently selected font weight.\n\t\t\t\t__( 'Currently selected font weight: %s' ),\n\t\t\t\tcurrentSelection.name\n\t\t\t);\n\t\t}\n\n\t\tif ( ! hasFontWeights ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: %s: Currently selected font style.\n\t\t\t\t__( 'Currently selected font style: %s' ),\n\t\t\t\tcurrentSelection.name\n\t\t\t);\n\t\t}\n\n\t\treturn sprintf(\n\t\t\t// translators: %s: Currently selected font appearance.\n\t\t\t__( 'Currently selected font appearance: %s' ),\n\t\t\tcurrentSelection.name\n\t\t);\n\t};\n\n\treturn (\n\t\thasStylesOrWeights && (\n\t\t\t<CustomSelectControl\n\t\t\t\t{ ...otherProps }\n\t\t\t\tclassName=\"components-font-appearance-control\"\n\t\t\t\tlabel={ label }\n\t\t\t\tdescribedBy={ getDescribedBy() }\n\t\t\t\toptions={ selectOptions }\n\t\t\t\tvalue={ currentSelection }\n\t\t\t\tonChange={ ( { selectedItem } ) =>\n\t\t\t\t\tonChange( selectedItem.style )\n\t\t\t\t}\n\t\t\t/>\n\t\t)\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["privateApis","componentsPrivateApis","useMemo","__","sprintf","getFontStylesAndWeights","unlock","jsx","_jsx","CustomSelectControlV2Legacy","CustomSelectControl","getFontAppearanceLabel","hasFontStyles","hasFontWeights","FontAppearanceControl","props","onChange","fontFamilyFaces","value","fontStyle","fontWeight","otherProps","hasStylesOrWeights","label","defaultOption","key","name","style","undefined","fontStyles","fontWeights","combinedStyleAndWeightOptions","combineOptions","combinedOptions","push","styleOptions","forEach","weightOptions","selectOptions","options","currentSelection","find","option","getDescribedBy","className","describedBy","selectedItem"],"sources":["@wordpress/block-editor/src/components/font-appearance-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getFontStylesAndWeights } from '../../utils/get-font-styles-and-weights';\nimport { unlock } from '../../lock-unlock';\n\nconst { CustomSelectControlV2Legacy: CustomSelectControl } = unlock(\n\tcomponentsPrivateApis\n);\n/**\n * Adjusts font appearance field label in case either font styles or weights\n * are disabled.\n *\n * @param {boolean} hasFontStyles Whether font styles are enabled and present.\n * @param {boolean} hasFontWeights Whether font weights are enabled and present.\n * @return {string} A label representing what font appearance is being edited.\n */\nconst getFontAppearanceLabel = ( hasFontStyles, hasFontWeights ) => {\n\tif ( ! hasFontStyles ) {\n\t\treturn __( 'Font weight' );\n\t}\n\n\tif ( ! hasFontWeights ) {\n\t\treturn __( 'Font style' );\n\t}\n\n\treturn __( 'Appearance' );\n};\n\n/**\n * Control to display font style and weight options of the active font.\n *\n * @param {Object} props Component props.\n *\n * @return {Element} Font appearance control.\n */\nexport default function FontAppearanceControl( props ) {\n\tconst {\n\t\tonChange,\n\t\thasFontStyles = true,\n\t\thasFontWeights = true,\n\t\tfontFamilyFaces,\n\t\tvalue: { fontStyle, fontWeight },\n\t\t...otherProps\n\t} = props;\n\tconst hasStylesOrWeights = hasFontStyles || hasFontWeights;\n\tconst label = getFontAppearanceLabel( hasFontStyles, hasFontWeights );\n\tconst defaultOption = {\n\t\tkey: 'default',\n\t\tname: __( 'Default' ),\n\t\tstyle: { fontStyle: undefined, fontWeight: undefined },\n\t};\n\tconst { fontStyles, fontWeights, combinedStyleAndWeightOptions } =\n\t\tgetFontStylesAndWeights( fontFamilyFaces );\n\n\t// Generates select options for combined font styles and weights.\n\tconst combineOptions = () => {\n\t\tconst combinedOptions = [ defaultOption ];\n\t\tif ( combinedStyleAndWeightOptions ) {\n\t\t\tcombinedOptions.push( ...combinedStyleAndWeightOptions );\n\t\t}\n\t\treturn combinedOptions;\n\t};\n\n\t// Generates select options for font styles only.\n\tconst styleOptions = () => {\n\t\tconst combinedOptions = [ defaultOption ];\n\t\tfontStyles.forEach( ( { name, value } ) => {\n\t\t\tcombinedOptions.push( {\n\t\t\t\tkey: value,\n\t\t\t\tname,\n\t\t\t\tstyle: { fontStyle: value, fontWeight: undefined },\n\t\t\t} );\n\t\t} );\n\t\treturn combinedOptions;\n\t};\n\n\t// Generates select options for font weights only.\n\tconst weightOptions = () => {\n\t\tconst combinedOptions = [ defaultOption ];\n\t\tfontWeights.forEach( ( { name, value } ) => {\n\t\t\tcombinedOptions.push( {\n\t\t\t\tkey: value,\n\t\t\t\tname,\n\t\t\t\tstyle: { fontStyle: undefined, fontWeight: value },\n\t\t\t} );\n\t\t} );\n\t\treturn combinedOptions;\n\t};\n\n\t// Map font styles and weights to select options.\n\tconst selectOptions = useMemo( () => {\n\t\t// Display combined available font style and weight options.\n\t\tif ( hasFontStyles && hasFontWeights ) {\n\t\t\treturn combineOptions();\n\t\t}\n\n\t\t// Display only font style options or font weight options.\n\t\treturn hasFontStyles ? styleOptions() : weightOptions();\n\t}, [\n\t\tprops.options,\n\t\tfontStyles,\n\t\tfontWeights,\n\t\tcombinedStyleAndWeightOptions,\n\t] );\n\n\t// Find current selection by comparing font style & weight against options,\n\t// and fall back to the Default option if there is no matching option.\n\tconst currentSelection =\n\t\tselectOptions.find(\n\t\t\t( option ) =>\n\t\t\t\toption.style.fontStyle === fontStyle &&\n\t\t\t\toption.style.fontWeight === fontWeight\n\t\t) || selectOptions[ 0 ];\n\n\t// Adjusts screen reader description based on styles or weights.\n\tconst getDescribedBy = () => {\n\t\tif ( ! currentSelection ) {\n\t\t\treturn __( 'No selected font appearance' );\n\t\t}\n\n\t\tif ( ! hasFontStyles ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: %s: Currently selected font weight.\n\t\t\t\t__( 'Currently selected font weight: %s' ),\n\t\t\t\tcurrentSelection.name\n\t\t\t);\n\t\t}\n\n\t\tif ( ! hasFontWeights ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: %s: Currently selected font style.\n\t\t\t\t__( 'Currently selected font style: %s' ),\n\t\t\t\tcurrentSelection.name\n\t\t\t);\n\t\t}\n\n\t\treturn sprintf(\n\t\t\t// translators: %s: Currently selected font appearance.\n\t\t\t__( 'Currently selected font appearance: %s' ),\n\t\t\tcurrentSelection.name\n\t\t);\n\t};\n\n\treturn (\n\t\thasStylesOrWeights && (\n\t\t\t<CustomSelectControl\n\t\t\t\t{ ...otherProps }\n\t\t\t\tclassName=\"components-font-appearance-control\"\n\t\t\t\tlabel={ label }\n\t\t\t\tdescribedBy={ getDescribedBy() }\n\t\t\t\toptions={ selectOptions }\n\t\t\t\tvalue={ currentSelection }\n\t\t\t\tonChange={ ( { selectedItem } ) =>\n\t\t\t\t\tonChange( selectedItem.style )\n\t\t\t\t}\n\t\t\t/>\n\t\t)\n\t);\n}\n"],"mappings":"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","ignoreList":[]}