@wordpress/block-editor 8.2.0 → 8.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 (481) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +6 -2
  3. package/build/autocompleters/link.js +78 -0
  4. package/build/autocompleters/link.js.map +1 -0
  5. package/build/components/autocomplete/index.js +3 -1
  6. package/build/components/autocomplete/index.js.map +1 -1
  7. package/build/components/block-actions/index.js +1 -1
  8. package/build/components/block-actions/index.js.map +1 -1
  9. package/build/components/block-breadcrumb/index.js +4 -2
  10. package/build/components/block-breadcrumb/index.js.map +1 -1
  11. package/build/components/block-compare/index.js +2 -2
  12. package/build/components/block-compare/index.js.map +1 -1
  13. package/build/components/block-controls/index.js +1 -1
  14. package/build/components/block-controls/index.js.map +1 -1
  15. package/build/components/block-draggable/index.js +1 -1
  16. package/build/components/block-draggable/index.js.map +1 -1
  17. package/build/components/block-edit/edit.js +1 -1
  18. package/build/components/block-edit/edit.js.map +1 -1
  19. package/build/components/block-list/block-html.js +1 -1
  20. package/build/components/block-list/block-html.js.map +1 -1
  21. package/build/components/block-list/block-invalid-warning.js +1 -1
  22. package/build/components/block-list/block-invalid-warning.js.map +1 -1
  23. package/build/components/block-list/block-list-item.native.js +4 -4
  24. package/build/components/block-list/block-list-item.native.js.map +1 -1
  25. package/build/components/block-list/block-selection-button.native.js +4 -3
  26. package/build/components/block-list/block-selection-button.native.js.map +1 -1
  27. package/build/components/block-list/block.js +1 -1
  28. package/build/components/block-list/block.js.map +1 -1
  29. package/build/components/block-list/block.native.js +5 -5
  30. package/build/components/block-list/block.native.js.map +1 -1
  31. package/build/components/block-list/index.native.js +5 -5
  32. package/build/components/block-list/index.native.js.map +1 -1
  33. package/build/components/block-list/use-block-props/use-block-class-names.js +1 -1
  34. package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  35. package/build/components/block-media-update-progress/index.native.js +4 -4
  36. package/build/components/block-media-update-progress/index.native.js.map +1 -1
  37. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
  38. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  39. package/build/components/block-mobile-toolbar/index.native.js +1 -1
  40. package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
  41. package/build/components/block-mover/mover-description.js +4 -4
  42. package/build/components/block-mover/mover-description.js.map +1 -1
  43. package/build/components/block-mover/mover-description.native.js +5 -5
  44. package/build/components/block-mover/mover-description.native.js.map +1 -1
  45. package/build/components/block-settings-menu/block-settings-dropdown.js +7 -12
  46. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  47. package/build/components/block-styles/preview.native.js +1 -1
  48. package/build/components/block-styles/preview.native.js.map +1 -1
  49. package/build/components/block-switcher/index.js +2 -1
  50. package/build/components/block-switcher/index.js.map +1 -1
  51. package/build/components/block-switcher/use-transformed-patterns.js +0 -1
  52. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  53. package/build/components/block-title/index.js +7 -62
  54. package/build/components/block-title/index.js.map +1 -1
  55. package/build/components/block-title/use-block-display-title.js +94 -0
  56. package/build/components/block-title/use-block-display-title.js.map +1 -0
  57. package/build/components/block-toolbar/utils.js +9 -1
  58. package/build/components/block-toolbar/utils.js.map +1 -1
  59. package/build/components/block-tools/block-popover.js +1 -1
  60. package/build/components/block-tools/block-popover.js.map +1 -1
  61. package/build/components/block-tools/block-selection-button.js +2 -1
  62. package/build/components/block-tools/block-selection-button.js.map +1 -1
  63. package/build/components/block-types-list/index.native.js +1 -1
  64. package/build/components/block-types-list/index.native.js.map +1 -1
  65. package/build/components/border-radius-control/index.js +2 -2
  66. package/build/components/border-radius-control/index.js.map +1 -1
  67. package/build/components/border-radius-control/utils.js +10 -6
  68. package/build/components/border-radius-control/utils.js.map +1 -1
  69. package/build/components/contrast-checker/index.js +3 -3
  70. package/build/components/contrast-checker/index.js.map +1 -1
  71. package/build/components/convert-to-group-buttons/index.js +1 -1
  72. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  73. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +1 -3
  74. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  75. package/build/components/copy-handler/index.js +3 -3
  76. package/build/components/copy-handler/index.js.map +1 -1
  77. package/build/components/font-sizes/with-font-sizes.js +3 -3
  78. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  79. package/build/components/index.native.js +29 -1
  80. package/build/components/index.native.js.map +1 -1
  81. package/build/components/inserter/block-patterns-tab.js +1 -1
  82. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  83. package/build/components/inserter/block-types-tab.js +1 -1
  84. package/build/components/inserter/block-types-tab.js.map +1 -1
  85. package/build/components/inserter/hooks/use-block-type-impressions.native.js +2 -2
  86. package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  87. package/build/components/inserter/index.js +3 -3
  88. package/build/components/inserter/index.js.map +1 -1
  89. package/build/components/inserter/index.native.js +7 -7
  90. package/build/components/inserter/index.native.js.map +1 -1
  91. package/build/components/inserter/menu.js.map +1 -1
  92. package/build/components/inserter/menu.native.js +3 -3
  93. package/build/components/inserter/menu.native.js.map +1 -1
  94. package/build/components/inserter/quick-inserter.js +1 -1
  95. package/build/components/inserter/quick-inserter.js.map +1 -1
  96. package/build/components/inserter/search-items.js +1 -1
  97. package/build/components/inserter/search-items.js.map +1 -1
  98. package/build/components/inserter/search-results.js +1 -1
  99. package/build/components/inserter/search-results.js.map +1 -1
  100. package/build/components/keyboard-shortcuts/index.js +1 -1
  101. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  102. package/build/components/letter-spacing-control/index.js +3 -3
  103. package/build/components/letter-spacing-control/index.js.map +1 -1
  104. package/build/components/line-height-control/index.js +4 -4
  105. package/build/components/line-height-control/index.js.map +1 -1
  106. package/build/components/line-height-control/index.native.js +3 -1
  107. package/build/components/line-height-control/index.native.js.map +1 -1
  108. package/build/components/link-control/index.js +2 -2
  109. package/build/components/link-control/index.js.map +1 -1
  110. package/build/components/link-control/search-input.js +1 -1
  111. package/build/components/link-control/search-input.js.map +1 -1
  112. package/build/components/link-control/search-results.js +2 -2
  113. package/build/components/link-control/search-results.js.map +1 -1
  114. package/build/components/link-control/use-rich-url-data.js +1 -1
  115. package/build/components/link-control/use-rich-url-data.js.map +1 -1
  116. package/build/components/link-control/use-search-handler.js +2 -2
  117. package/build/components/link-control/use-search-handler.js.map +1 -1
  118. package/build/components/list-view/block-select-button.js +2 -1
  119. package/build/components/list-view/block-select-button.js.map +1 -1
  120. package/build/components/list-view/block.js +1 -1
  121. package/build/components/list-view/block.js.map +1 -1
  122. package/build/components/media-placeholder/index.native.js +7 -5
  123. package/build/components/media-placeholder/index.native.js.map +1 -1
  124. package/build/components/media-replace-flow/index.js +20 -24
  125. package/build/components/media-replace-flow/index.js.map +1 -1
  126. package/build/components/media-upload/index.native.js +4 -3
  127. package/build/components/media-upload/index.native.js.map +1 -1
  128. package/build/components/media-upload-progress/index.native.js +2 -2
  129. package/build/components/media-upload-progress/index.native.js.map +1 -1
  130. package/build/components/navigable-toolbar/index.js +3 -3
  131. package/build/components/navigable-toolbar/index.js.map +1 -1
  132. package/build/components/plain-text/index.native.js +3 -3
  133. package/build/components/plain-text/index.native.js.map +1 -1
  134. package/build/components/rich-text/format-toolbar-container.js +2 -2
  135. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  136. package/build/components/rich-text/format-toolbar-container.native.js +1 -1
  137. package/build/components/rich-text/format-toolbar-container.native.js.map +1 -1
  138. package/build/components/rich-text/index.native.js +3 -3
  139. package/build/components/rich-text/index.native.js.map +1 -1
  140. package/build/components/rich-text/use-paste-handler.js +7 -11
  141. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  142. package/build/components/url-input/index.js +11 -11
  143. package/build/components/url-input/index.js.map +1 -1
  144. package/build/components/use-moving-animation/index.js +1 -1
  145. package/build/components/use-moving-animation/index.js.map +1 -1
  146. package/build/components/use-on-block-drop/index.js +2 -2
  147. package/build/components/use-on-block-drop/index.js.map +1 -1
  148. package/build/components/writing-flow/use-tab-nav.js +4 -3
  149. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  150. package/build/hooks/align.js +1 -1
  151. package/build/hooks/align.js.map +1 -1
  152. package/build/hooks/anchor.js +1 -1
  153. package/build/hooks/anchor.js.map +1 -1
  154. package/build/hooks/border.js +2 -14
  155. package/build/hooks/border.js.map +1 -1
  156. package/build/hooks/color.js +2 -2
  157. package/build/hooks/color.js.map +1 -1
  158. package/build/hooks/duotone.js +22 -4
  159. package/build/hooks/duotone.js.map +1 -1
  160. package/build/hooks/generated-class-name.js +3 -3
  161. package/build/hooks/generated-class-name.js.map +1 -1
  162. package/build/hooks/lock.js +1 -1
  163. package/build/hooks/lock.js.map +1 -1
  164. package/build/hooks/style.js +5 -2
  165. package/build/hooks/style.js.map +1 -1
  166. package/build/store/actions.js +4 -4
  167. package/build/store/actions.js.map +1 -1
  168. package/build/store/defaults.js +1 -1
  169. package/build/store/defaults.js.map +1 -1
  170. package/build/store/reducer.js +11 -11
  171. package/build/store/reducer.js.map +1 -1
  172. package/build/store/selectors.js +6 -6
  173. package/build/store/selectors.js.map +1 -1
  174. package/build/utils/parse-css-unit-to-px.js +3 -3
  175. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  176. package/build/utils/pasting.js +91 -0
  177. package/build/utils/pasting.js.map +1 -0
  178. package/build/utils/transform-styles/ast/parse.js +5 -5
  179. package/build/utils/transform-styles/ast/parse.js.map +1 -1
  180. package/build/utils/transform-styles/transforms/url-rewrite.js +2 -2
  181. package/build/utils/transform-styles/transforms/url-rewrite.js.map +1 -1
  182. package/build-module/autocompleters/link.js +64 -0
  183. package/build-module/autocompleters/link.js.map +1 -0
  184. package/build-module/components/autocomplete/index.js +2 -1
  185. package/build-module/components/autocomplete/index.js.map +1 -1
  186. package/build-module/components/block-actions/index.js +1 -1
  187. package/build-module/components/block-actions/index.js.map +1 -1
  188. package/build-module/components/block-breadcrumb/index.js +4 -2
  189. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  190. package/build-module/components/block-compare/index.js +2 -2
  191. package/build-module/components/block-compare/index.js.map +1 -1
  192. package/build-module/components/block-controls/index.js +1 -1
  193. package/build-module/components/block-controls/index.js.map +1 -1
  194. package/build-module/components/block-draggable/index.js +1 -1
  195. package/build-module/components/block-draggable/index.js.map +1 -1
  196. package/build-module/components/block-edit/edit.js +1 -1
  197. package/build-module/components/block-edit/edit.js.map +1 -1
  198. package/build-module/components/block-list/block-html.js +1 -1
  199. package/build-module/components/block-list/block-html.js.map +1 -1
  200. package/build-module/components/block-list/block-invalid-warning.js +1 -1
  201. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  202. package/build-module/components/block-list/block-list-item.native.js +4 -4
  203. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  204. package/build-module/components/block-list/block-selection-button.native.js +4 -3
  205. package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
  206. package/build-module/components/block-list/block.js +1 -1
  207. package/build-module/components/block-list/block.js.map +1 -1
  208. package/build-module/components/block-list/block.native.js +5 -5
  209. package/build-module/components/block-list/block.native.js.map +1 -1
  210. package/build-module/components/block-list/index.native.js +5 -5
  211. package/build-module/components/block-list/index.native.js.map +1 -1
  212. package/build-module/components/block-list/use-block-props/use-block-class-names.js +1 -1
  213. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  214. package/build-module/components/block-media-update-progress/index.native.js +4 -4
  215. package/build-module/components/block-media-update-progress/index.native.js.map +1 -1
  216. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
  217. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  218. package/build-module/components/block-mobile-toolbar/index.native.js +1 -1
  219. package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
  220. package/build-module/components/block-mover/mover-description.js +4 -4
  221. package/build-module/components/block-mover/mover-description.js.map +1 -1
  222. package/build-module/components/block-mover/mover-description.native.js +5 -5
  223. package/build-module/components/block-mover/mover-description.native.js.map +1 -1
  224. package/build-module/components/block-settings-menu/block-settings-dropdown.js +7 -13
  225. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  226. package/build-module/components/block-styles/preview.native.js +1 -1
  227. package/build-module/components/block-styles/preview.native.js.map +1 -1
  228. package/build-module/components/block-switcher/index.js +2 -1
  229. package/build-module/components/block-switcher/index.js.map +1 -1
  230. package/build-module/components/block-switcher/use-transformed-patterns.js +0 -1
  231. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  232. package/build-module/components/block-title/index.js +7 -58
  233. package/build-module/components/block-title/index.js.map +1 -1
  234. package/build-module/components/block-title/use-block-display-title.js +80 -0
  235. package/build-module/components/block-title/use-block-display-title.js.map +1 -0
  236. package/build-module/components/block-toolbar/utils.js +9 -1
  237. package/build-module/components/block-toolbar/utils.js.map +1 -1
  238. package/build-module/components/block-tools/block-popover.js +1 -1
  239. package/build-module/components/block-tools/block-popover.js.map +1 -1
  240. package/build-module/components/block-tools/block-selection-button.js +2 -1
  241. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  242. package/build-module/components/block-types-list/index.native.js +1 -1
  243. package/build-module/components/block-types-list/index.native.js.map +1 -1
  244. package/build-module/components/border-radius-control/index.js +3 -3
  245. package/build-module/components/border-radius-control/index.js.map +1 -1
  246. package/build-module/components/border-radius-control/utils.js +11 -7
  247. package/build-module/components/border-radius-control/utils.js.map +1 -1
  248. package/build-module/components/contrast-checker/index.js +3 -3
  249. package/build-module/components/contrast-checker/index.js.map +1 -1
  250. package/build-module/components/convert-to-group-buttons/index.js +1 -1
  251. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  252. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +1 -3
  253. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  254. package/build-module/components/copy-handler/index.js +2 -2
  255. package/build-module/components/copy-handler/index.js.map +1 -1
  256. package/build-module/components/font-sizes/with-font-sizes.js +3 -3
  257. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  258. package/build-module/components/index.native.js +4 -4
  259. package/build-module/components/index.native.js.map +1 -1
  260. package/build-module/components/inserter/block-patterns-tab.js +1 -1
  261. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  262. package/build-module/components/inserter/block-types-tab.js +1 -1
  263. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  264. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js +2 -2
  265. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  266. package/build-module/components/inserter/index.js +3 -3
  267. package/build-module/components/inserter/index.js.map +1 -1
  268. package/build-module/components/inserter/index.native.js +7 -7
  269. package/build-module/components/inserter/index.native.js.map +1 -1
  270. package/build-module/components/inserter/menu.js.map +1 -1
  271. package/build-module/components/inserter/menu.native.js +3 -3
  272. package/build-module/components/inserter/menu.native.js.map +1 -1
  273. package/build-module/components/inserter/quick-inserter.js +1 -1
  274. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  275. package/build-module/components/inserter/search-items.js +1 -1
  276. package/build-module/components/inserter/search-items.js.map +1 -1
  277. package/build-module/components/inserter/search-results.js +1 -1
  278. package/build-module/components/inserter/search-results.js.map +1 -1
  279. package/build-module/components/keyboard-shortcuts/index.js +1 -1
  280. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  281. package/build-module/components/letter-spacing-control/index.js +3 -3
  282. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  283. package/build-module/components/line-height-control/index.js +4 -4
  284. package/build-module/components/line-height-control/index.js.map +1 -1
  285. package/build-module/components/line-height-control/index.native.js +3 -1
  286. package/build-module/components/line-height-control/index.native.js.map +1 -1
  287. package/build-module/components/link-control/index.js +2 -2
  288. package/build-module/components/link-control/index.js.map +1 -1
  289. package/build-module/components/link-control/search-input.js +1 -1
  290. package/build-module/components/link-control/search-input.js.map +1 -1
  291. package/build-module/components/link-control/search-results.js +2 -2
  292. package/build-module/components/link-control/search-results.js.map +1 -1
  293. package/build-module/components/link-control/use-rich-url-data.js +1 -1
  294. package/build-module/components/link-control/use-rich-url-data.js.map +1 -1
  295. package/build-module/components/link-control/use-search-handler.js +2 -2
  296. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  297. package/build-module/components/list-view/block-select-button.js +2 -1
  298. package/build-module/components/list-view/block-select-button.js.map +1 -1
  299. package/build-module/components/list-view/block.js +1 -1
  300. package/build-module/components/list-view/block.js.map +1 -1
  301. package/build-module/components/media-placeholder/index.native.js +7 -5
  302. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  303. package/build-module/components/media-replace-flow/index.js +22 -27
  304. package/build-module/components/media-replace-flow/index.js.map +1 -1
  305. package/build-module/components/media-upload/index.native.js +4 -3
  306. package/build-module/components/media-upload/index.native.js.map +1 -1
  307. package/build-module/components/media-upload-progress/index.native.js +2 -2
  308. package/build-module/components/media-upload-progress/index.native.js.map +1 -1
  309. package/build-module/components/navigable-toolbar/index.js +3 -3
  310. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  311. package/build-module/components/plain-text/index.native.js +3 -3
  312. package/build-module/components/plain-text/index.native.js.map +1 -1
  313. package/build-module/components/rich-text/format-toolbar-container.js +2 -2
  314. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  315. package/build-module/components/rich-text/format-toolbar-container.native.js +1 -1
  316. package/build-module/components/rich-text/format-toolbar-container.native.js.map +1 -1
  317. package/build-module/components/rich-text/index.native.js +3 -3
  318. package/build-module/components/rich-text/index.native.js.map +1 -1
  319. package/build-module/components/rich-text/use-paste-handler.js +6 -11
  320. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  321. package/build-module/components/url-input/index.js +11 -11
  322. package/build-module/components/url-input/index.js.map +1 -1
  323. package/build-module/components/use-moving-animation/index.js +1 -1
  324. package/build-module/components/use-moving-animation/index.js.map +1 -1
  325. package/build-module/components/use-on-block-drop/index.js +2 -2
  326. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  327. package/build-module/components/writing-flow/use-tab-nav.js +4 -3
  328. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  329. package/build-module/hooks/align.js +1 -1
  330. package/build-module/hooks/align.js.map +1 -1
  331. package/build-module/hooks/anchor.js +1 -1
  332. package/build-module/hooks/anchor.js.map +1 -1
  333. package/build-module/hooks/border.js +2 -14
  334. package/build-module/hooks/border.js.map +1 -1
  335. package/build-module/hooks/color.js +2 -2
  336. package/build-module/hooks/color.js.map +1 -1
  337. package/build-module/hooks/duotone.js +23 -5
  338. package/build-module/hooks/duotone.js.map +1 -1
  339. package/build-module/hooks/generated-class-name.js +3 -3
  340. package/build-module/hooks/generated-class-name.js.map +1 -1
  341. package/build-module/hooks/lock.js +1 -1
  342. package/build-module/hooks/lock.js.map +1 -1
  343. package/build-module/hooks/style.js +5 -2
  344. package/build-module/hooks/style.js.map +1 -1
  345. package/build-module/store/actions.js +4 -4
  346. package/build-module/store/actions.js.map +1 -1
  347. package/build-module/store/defaults.js +1 -1
  348. package/build-module/store/defaults.js.map +1 -1
  349. package/build-module/store/reducer.js +11 -11
  350. package/build-module/store/reducer.js.map +1 -1
  351. package/build-module/store/selectors.js +6 -6
  352. package/build-module/store/selectors.js.map +1 -1
  353. package/build-module/utils/parse-css-unit-to-px.js +3 -3
  354. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  355. package/build-module/utils/pasting.js +80 -0
  356. package/build-module/utils/pasting.js.map +1 -0
  357. package/build-module/utils/transform-styles/ast/parse.js +5 -5
  358. package/build-module/utils/transform-styles/ast/parse.js.map +1 -1
  359. package/build-module/utils/transform-styles/transforms/url-rewrite.js +2 -2
  360. package/build-module/utils/transform-styles/transforms/url-rewrite.js.map +1 -1
  361. package/build-style/style-rtl.css +7 -0
  362. package/build-style/style.css +7 -0
  363. package/package.json +27 -27
  364. package/src/autocompleters/link.js +62 -0
  365. package/src/autocompleters/style.scss +8 -0
  366. package/src/components/alignment-control/test/index.js +2 -2
  367. package/src/components/autocomplete/index.js +2 -0
  368. package/src/components/block-actions/index.js +1 -1
  369. package/src/components/block-alignment-control/test/index.js +1 -1
  370. package/src/components/block-breadcrumb/index.js +5 -2
  371. package/src/components/block-compare/index.js +2 -2
  372. package/src/components/block-controls/index.js +1 -1
  373. package/src/components/block-draggable/index.js +1 -1
  374. package/src/components/block-draggable/stories/index.js +1 -1
  375. package/src/components/block-edit/edit.js +1 -1
  376. package/src/components/block-list/block-html.js +1 -1
  377. package/src/components/block-list/block-invalid-warning.js +1 -1
  378. package/src/components/block-list/block-list-item.native.js +4 -4
  379. package/src/components/block-list/block-selection-button.native.js +3 -3
  380. package/src/components/block-list/block.js +1 -1
  381. package/src/components/block-list/block.native.js +5 -5
  382. package/src/components/block-list/index.native.js +5 -5
  383. package/src/components/block-list/use-block-props/use-block-class-names.js +1 -1
  384. package/src/components/block-media-update-progress/index.native.js +4 -4
  385. package/src/components/block-media-update-progress/test/index.native.js +2 -2
  386. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
  387. package/src/components/block-mobile-toolbar/index.native.js +2 -2
  388. package/src/components/block-mover/mover-description.js +4 -4
  389. package/src/components/block-mover/mover-description.native.js +5 -5
  390. package/src/components/block-settings-menu/block-settings-dropdown.js +7 -8
  391. package/src/components/block-styles/preview.native.js +1 -1
  392. package/src/components/block-switcher/index.js +4 -1
  393. package/src/components/block-switcher/use-transformed-patterns.js +0 -1
  394. package/src/components/block-title/README.md +17 -1
  395. package/src/components/block-title/index.js +7 -62
  396. package/src/components/block-title/test/index.js +21 -3
  397. package/src/components/block-title/use-block-display-title.js +83 -0
  398. package/src/components/block-toolbar/utils.js +12 -2
  399. package/src/components/block-tools/block-popover.js +1 -1
  400. package/src/components/block-tools/block-selection-button.js +4 -1
  401. package/src/components/block-types-list/index.native.js +1 -1
  402. package/src/components/border-radius-control/index.js +5 -3
  403. package/src/components/border-radius-control/test/utils.js +10 -10
  404. package/src/components/border-radius-control/utils.js +10 -8
  405. package/src/components/contrast-checker/index.js +3 -3
  406. package/src/components/convert-to-group-buttons/index.js +1 -1
  407. package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +1 -6
  408. package/src/components/copy-handler/index.js +2 -2
  409. package/src/components/font-sizes/with-font-sizes.js +3 -3
  410. package/src/components/image-size-control/test/index.js +1 -1
  411. package/src/components/index.native.js +10 -4
  412. package/src/components/inserter/block-patterns-tab.js +1 -1
  413. package/src/components/inserter/block-types-tab.js +1 -1
  414. package/src/components/inserter/hooks/use-block-type-impressions.native.js +2 -2
  415. package/src/components/inserter/index.js +3 -3
  416. package/src/components/inserter/index.native.js +7 -7
  417. package/src/components/inserter/menu.js +1 -1
  418. package/src/components/inserter/menu.native.js +3 -3
  419. package/src/components/inserter/quick-inserter.js +1 -1
  420. package/src/components/inserter/search-items.js +1 -1
  421. package/src/components/inserter/search-results.js +1 -1
  422. package/src/components/inserter/test/fixtures/index.native.js +1 -1
  423. package/src/components/inserter/test/reusable-blocks-tab.js +2 -2
  424. package/src/components/justify-content-control/README.md +1 -1
  425. package/src/components/keyboard-shortcuts/index.js +1 -1
  426. package/src/components/letter-spacing-control/index.js +1 -1
  427. package/src/components/line-height-control/index.js +4 -4
  428. package/src/components/line-height-control/index.native.js +2 -0
  429. package/src/components/link-control/index.js +2 -2
  430. package/src/components/link-control/search-input.js +1 -1
  431. package/src/components/link-control/search-results.js +2 -2
  432. package/src/components/link-control/test/index.js +142 -144
  433. package/src/components/link-control/use-rich-url-data.js +1 -1
  434. package/src/components/link-control/use-search-handler.js +2 -2
  435. package/src/components/list-view/block-select-button.js +1 -1
  436. package/src/components/list-view/block.js +1 -1
  437. package/src/components/media-placeholder/index.native.js +11 -9
  438. package/src/components/media-replace-flow/README.md +7 -0
  439. package/src/components/media-replace-flow/index.js +20 -26
  440. package/src/components/media-replace-flow/test/index.js +100 -0
  441. package/src/components/media-upload/index.native.js +3 -2
  442. package/src/components/media-upload-progress/index.native.js +2 -2
  443. package/src/components/navigable-toolbar/index.js +3 -3
  444. package/src/components/plain-text/index.native.js +3 -3
  445. package/src/components/responsive-block-control/test/index.js +6 -6
  446. package/src/components/rich-text/format-toolbar-container.js +2 -2
  447. package/src/components/rich-text/format-toolbar-container.native.js +1 -1
  448. package/src/components/rich-text/index.native.js +3 -3
  449. package/src/components/rich-text/use-paste-handler.js +7 -13
  450. package/src/components/url-input/index.js +11 -11
  451. package/src/components/use-block-drop-zone/test/index.js +1 -1
  452. package/src/components/use-moving-animation/index.js +1 -1
  453. package/src/components/use-on-block-drop/index.js +2 -2
  454. package/src/components/writing-flow/use-tab-nav.js +6 -3
  455. package/src/hooks/align.js +1 -1
  456. package/src/hooks/anchor.js +1 -1
  457. package/src/hooks/border.js +8 -19
  458. package/src/hooks/color.js +2 -2
  459. package/src/hooks/duotone.js +27 -3
  460. package/src/hooks/generated-class-name.js +3 -3
  461. package/src/hooks/lock.js +1 -1
  462. package/src/hooks/style.js +5 -2
  463. package/src/hooks/test/align.js +1 -1
  464. package/src/store/actions.js +4 -4
  465. package/src/store/defaults.js +1 -2
  466. package/src/store/reducer.js +11 -11
  467. package/src/store/selectors.js +6 -6
  468. package/src/store/test/actions.js +1 -1
  469. package/src/store/test/reducer.js +1 -1
  470. package/src/store/test/selectors.js +1 -1
  471. package/src/utils/parse-css-unit-to-px.js +3 -3
  472. package/src/utils/pasting.js +77 -0
  473. package/src/utils/test/parse-css-unit-to-px.js +5 -5
  474. package/src/utils/test/pasting.js +84 -0
  475. package/src/utils/transform-styles/ast/parse.js +5 -5
  476. package/src/utils/transform-styles/transforms/url-rewrite.js +2 -2
  477. package/build/utils/get-paste-event-data.js +0 -56
  478. package/build/utils/get-paste-event-data.js.map +0 -1
  479. package/build-module/utils/get-paste-event-data.js +0 -47
  480. package/build-module/utils/get-paste-event-data.js.map +0 -1
  481. package/src/utils/get-paste-event-data.js +0 -42
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/block-selection-button.js"],"names":["BlockSelectionButton","clientId","rootClientId","blockElement","blockInformation","selected","select","getBlock","getBlockIndex","hasBlockMovingClientId","getBlockListSettings","blockEditorStore","index","name","attributes","blockMovingMode","orientation","setNavigationMode","removeBlock","ref","blockType","label","current","focus","getBlockRootClientId","getClientIdsOfDescendants","getSelectedBlockClientId","getMultiSelectedBlocksEndClientId","getPreviousBlockClientId","getNextBlockClientId","isNavigationMode","selectBlock","clearSelectedBlock","setBlockMovingClientId","moveBlockToPosition","onKeyDown","event","keyCode","isUp","UP","isDown","DOWN","isLeft","LEFT","isRight","RIGHT","isTab","TAB","isEscape","ESCAPE","isEnter","ENTER","isSpace","SPACE","isShift","shiftKey","BACKSPACE","DELETE","preventDefault","selectedBlockClientId","selectionEndClientId","selectionBeforeEndClientId","selectionAfterEndClientId","navigateUp","navigateDown","navigateOut","navigateIn","focusedBlockUid","startingBlockClientId","defaultPrevented","sourceRoot","destRoot","sourceBlockIndex","destinationBlockIndex","nextTabbable","tabbable","findNext","contains","ownerDocument","defaultView","frameElement","findPrevious","classNames","dragHandleLabel","icon","draggableProps","dragHandle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { dragHandle } from '@wordpress/icons';\nimport { Button, Flex, FlexItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tBACKSPACE,\n\tDELETE,\n\tUP,\n\tDOWN,\n\tLEFT,\n\tRIGHT,\n\tTAB,\n\tESCAPE,\n\tENTER,\n\tSPACE,\n} from '@wordpress/keycodes';\nimport {\n\tgetBlockType,\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n} from '@wordpress/blocks';\nimport { speak } from '@wordpress/a11y';\nimport { focus } from '@wordpress/dom';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockTitle from '../block-title';\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\nimport useBlockDisplayInformation from '../use-block-display-information';\n\n/**\n * Block selection button component, displaying the label of the block. If the block\n * descends from a root block, a button is displayed enabling the user to select\n * the root block.\n *\n * @param {string} props Component props.\n * @param {string} props.clientId Client ID of block.\n *\n * @return {WPComponent} The component to be rendered.\n */\nfunction BlockSelectionButton( { clientId, rootClientId, blockElement } ) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockIndex,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tgetBlockListSettings,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tconst { name, attributes } = getBlock( clientId );\n\t\t\tconst blockMovingMode = hasBlockMovingClientId();\n\t\t\treturn {\n\t\t\t\tindex,\n\t\t\t\tname,\n\t\t\t\tattributes,\n\t\t\t\tblockMovingMode,\n\t\t\t\torientation: getBlockListSettings( rootClientId )?.orientation,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\tconst { index, name, attributes, blockMovingMode, orientation } = selected;\n\tconst { setNavigationMode, removeBlock } = useDispatch( blockEditorStore );\n\tconst ref = useRef();\n\n\tconst blockType = getBlockType( name );\n\tconst label = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\tindex + 1,\n\t\torientation\n\t);\n\n\t// Focus the breadcrumb in navigation mode.\n\tuseEffect( () => {\n\t\tref.current.focus();\n\n\t\tspeak( label );\n\t}, [ label ] );\n\n\tconst {\n\t\thasBlockMovingClientId,\n\t\tgetBlockIndex,\n\t\tgetBlockRootClientId,\n\t\tgetClientIdsOfDescendants,\n\t\tgetSelectedBlockClientId,\n\t\tgetMultiSelectedBlocksEndClientId,\n\t\tgetPreviousBlockClientId,\n\t\tgetNextBlockClientId,\n\t\tisNavigationMode,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tselectBlock,\n\t\tclearSelectedBlock,\n\t\tsetBlockMovingClientId,\n\t\tmoveBlockToPosition,\n\t} = useDispatch( blockEditorStore );\n\n\tfunction onKeyDown( event ) {\n\t\tconst { keyCode } = event;\n\t\tconst isUp = keyCode === UP;\n\t\tconst isDown = keyCode === DOWN;\n\t\tconst isLeft = keyCode === LEFT;\n\t\tconst isRight = keyCode === RIGHT;\n\t\tconst isTab = keyCode === TAB;\n\t\tconst isEscape = keyCode === ESCAPE;\n\t\tconst isEnter = keyCode === ENTER;\n\t\tconst isSpace = keyCode === SPACE;\n\t\tconst isShift = event.shiftKey;\n\n\t\tif ( keyCode === BACKSPACE || keyCode === DELETE ) {\n\t\t\tremoveBlock( clientId );\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst selectionEndClientId = getMultiSelectedBlocksEndClientId();\n\t\tconst selectionBeforeEndClientId = getPreviousBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\t\tconst selectionAfterEndClientId = getNextBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\n\t\tconst navigateUp = ( isTab && isShift ) || isUp;\n\t\tconst navigateDown = ( isTab && ! isShift ) || isDown;\n\t\t// Move out of current nesting level (no effect if at root level).\n\t\tconst navigateOut = isLeft;\n\t\t// Move into next nesting level (no effect if the current block has no innerBlocks).\n\t\tconst navigateIn = isRight;\n\n\t\tlet focusedBlockUid;\n\t\tif ( navigateUp ) {\n\t\t\tfocusedBlockUid = selectionBeforeEndClientId;\n\t\t} else if ( navigateDown ) {\n\t\t\tfocusedBlockUid = selectionAfterEndClientId;\n\t\t} else if ( navigateOut ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetBlockRootClientId( selectedBlockClientId ) ??\n\t\t\t\tselectedBlockClientId;\n\t\t} else if ( navigateIn ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetClientIdsOfDescendants( [ selectedBlockClientId ] )[ 0 ] ??\n\t\t\t\tselectedBlockClientId;\n\t\t}\n\t\tconst startingBlockClientId = hasBlockMovingClientId();\n\t\tif ( isEscape && isNavigationMode() ) {\n\t\t\tclearSelectedBlock();\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif ( isEscape && startingBlockClientId && ! event.defaultPrevented ) {\n\t\t\tsetBlockMovingClientId( null );\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif ( ( isEnter || isSpace ) && startingBlockClientId ) {\n\t\t\tconst sourceRoot = getBlockRootClientId( startingBlockClientId );\n\t\t\tconst destRoot = getBlockRootClientId( selectedBlockClientId );\n\t\t\tconst sourceBlockIndex = getBlockIndex( startingBlockClientId );\n\t\t\tlet destinationBlockIndex = getBlockIndex( selectedBlockClientId );\n\t\t\tif (\n\t\t\t\tsourceBlockIndex < destinationBlockIndex &&\n\t\t\t\tsourceRoot === destRoot\n\t\t\t) {\n\t\t\t\tdestinationBlockIndex -= 1;\n\t\t\t}\n\t\t\tmoveBlockToPosition(\n\t\t\t\tstartingBlockClientId,\n\t\t\t\tsourceRoot,\n\t\t\t\tdestRoot,\n\t\t\t\tdestinationBlockIndex\n\t\t\t);\n\t\t\tselectBlock( startingBlockClientId );\n\t\t\tsetBlockMovingClientId( null );\n\t\t}\n\t\tif ( navigateDown || navigateUp || navigateOut || navigateIn ) {\n\t\t\tif ( focusedBlockUid ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectBlock( focusedBlockUid );\n\t\t\t} else if ( isTab && selectedBlockClientId ) {\n\t\t\t\tlet nextTabbable;\n\n\t\t\t\tif ( navigateDown ) {\n\t\t\t\t\tnextTabbable = blockElement;\n\t\t\t\t\tdo {\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t} while (\n\t\t\t\t\t\tnextTabbable &&\n\t\t\t\t\t\tblockElement.contains( nextTabbable )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! nextTabbable ) {\n\t\t\t\t\t\tnextTabbable =\n\t\t\t\t\t\t\tblockElement.ownerDocument.defaultView.frameElement;\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tnextTabbable = focus.tabbable.findPrevious( blockElement );\n\t\t\t\t}\n\n\t\t\t\tif ( nextTabbable ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tnextTabbable.focus();\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tconst classNames = classnames(\n\t\t'block-editor-block-list__block-selection-button',\n\t\t{\n\t\t\t'is-block-moving-mode': !! blockMovingMode,\n\t\t}\n\t);\n\n\tconst dragHandleLabel = __( 'Drag' );\n\n\treturn (\n\t\t<div className={ classNames }>\n\t\t\t<Flex\n\t\t\t\tjustify=\"center\"\n\t\t\t\tclassName=\"block-editor-block-list__block-selection-button__content\"\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<BlockIcon icon={ blockInformation?.icon } showColors />\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<BlockDraggable clientIds={ [ clientId ] }>\n\t\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\t\tclassName=\"block-selection-button_drag-handle\"\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockDraggable>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\tonClick={ () => setNavigationMode( false ) }\n\t\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tclassName=\"block-selection-button_select-button\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockTitle clientId={ clientId } />\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n\nexport default BlockSelectionButton;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/block-selection-button.js"],"names":["BlockSelectionButton","clientId","rootClientId","blockElement","blockInformation","selected","select","getBlock","getBlockIndex","hasBlockMovingClientId","getBlockListSettings","blockEditorStore","index","name","attributes","blockMovingMode","orientation","setNavigationMode","removeBlock","ref","blockType","label","current","focus","getBlockRootClientId","getClientIdsOfDescendants","getSelectedBlockClientId","getMultiSelectedBlocksEndClientId","getPreviousBlockClientId","getNextBlockClientId","isNavigationMode","selectBlock","clearSelectedBlock","setBlockMovingClientId","moveBlockToPosition","onKeyDown","event","keyCode","isUp","UP","isDown","DOWN","isLeft","LEFT","isRight","RIGHT","isTab","TAB","isEscape","ESCAPE","isEnter","ENTER","isSpace","SPACE","isShift","shiftKey","BACKSPACE","DELETE","preventDefault","selectedBlockClientId","selectionEndClientId","selectionBeforeEndClientId","selectionAfterEndClientId","navigateUp","navigateDown","navigateOut","navigateIn","focusedBlockUid","startingBlockClientId","defaultPrevented","sourceRoot","destRoot","sourceBlockIndex","destinationBlockIndex","nextTabbable","tabbable","findNext","contains","ownerDocument","defaultView","frameElement","findPrevious","classNames","dragHandleLabel","icon","draggableProps","dragHandle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { dragHandle } from '@wordpress/icons';\nimport { Button, Flex, FlexItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tBACKSPACE,\n\tDELETE,\n\tUP,\n\tDOWN,\n\tLEFT,\n\tRIGHT,\n\tTAB,\n\tESCAPE,\n\tENTER,\n\tSPACE,\n} from '@wordpress/keycodes';\nimport {\n\tgetBlockType,\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n} from '@wordpress/blocks';\nimport { speak } from '@wordpress/a11y';\nimport { focus } from '@wordpress/dom';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockTitle from '../block-title';\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\nimport useBlockDisplayInformation from '../use-block-display-information';\n\n/**\n * Block selection button component, displaying the label of the block. If the block\n * descends from a root block, a button is displayed enabling the user to select\n * the root block.\n *\n * @param {string} props Component props.\n * @param {string} props.clientId Client ID of block.\n *\n * @return {WPComponent} The component to be rendered.\n */\nfunction BlockSelectionButton( { clientId, rootClientId, blockElement } ) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockIndex,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tgetBlockListSettings,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tconst { name, attributes } = getBlock( clientId );\n\t\t\tconst blockMovingMode = hasBlockMovingClientId();\n\t\t\treturn {\n\t\t\t\tindex,\n\t\t\t\tname,\n\t\t\t\tattributes,\n\t\t\t\tblockMovingMode,\n\t\t\t\torientation: getBlockListSettings( rootClientId )?.orientation,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\tconst { index, name, attributes, blockMovingMode, orientation } = selected;\n\tconst { setNavigationMode, removeBlock } = useDispatch( blockEditorStore );\n\tconst ref = useRef();\n\n\tconst blockType = getBlockType( name );\n\tconst label = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\tindex + 1,\n\t\torientation\n\t);\n\n\t// Focus the breadcrumb in navigation mode.\n\tuseEffect( () => {\n\t\tref.current.focus();\n\n\t\tspeak( label );\n\t}, [ label ] );\n\n\tconst {\n\t\thasBlockMovingClientId,\n\t\tgetBlockIndex,\n\t\tgetBlockRootClientId,\n\t\tgetClientIdsOfDescendants,\n\t\tgetSelectedBlockClientId,\n\t\tgetMultiSelectedBlocksEndClientId,\n\t\tgetPreviousBlockClientId,\n\t\tgetNextBlockClientId,\n\t\tisNavigationMode,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tselectBlock,\n\t\tclearSelectedBlock,\n\t\tsetBlockMovingClientId,\n\t\tmoveBlockToPosition,\n\t} = useDispatch( blockEditorStore );\n\n\tfunction onKeyDown( event ) {\n\t\tconst { keyCode } = event;\n\t\tconst isUp = keyCode === UP;\n\t\tconst isDown = keyCode === DOWN;\n\t\tconst isLeft = keyCode === LEFT;\n\t\tconst isRight = keyCode === RIGHT;\n\t\tconst isTab = keyCode === TAB;\n\t\tconst isEscape = keyCode === ESCAPE;\n\t\tconst isEnter = keyCode === ENTER;\n\t\tconst isSpace = keyCode === SPACE;\n\t\tconst isShift = event.shiftKey;\n\n\t\tif ( keyCode === BACKSPACE || keyCode === DELETE ) {\n\t\t\tremoveBlock( clientId );\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst selectionEndClientId = getMultiSelectedBlocksEndClientId();\n\t\tconst selectionBeforeEndClientId = getPreviousBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\t\tconst selectionAfterEndClientId = getNextBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\n\t\tconst navigateUp = ( isTab && isShift ) || isUp;\n\t\tconst navigateDown = ( isTab && ! isShift ) || isDown;\n\t\t// Move out of current nesting level (no effect if at root level).\n\t\tconst navigateOut = isLeft;\n\t\t// Move into next nesting level (no effect if the current block has no innerBlocks).\n\t\tconst navigateIn = isRight;\n\n\t\tlet focusedBlockUid;\n\t\tif ( navigateUp ) {\n\t\t\tfocusedBlockUid = selectionBeforeEndClientId;\n\t\t} else if ( navigateDown ) {\n\t\t\tfocusedBlockUid = selectionAfterEndClientId;\n\t\t} else if ( navigateOut ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetBlockRootClientId( selectedBlockClientId ) ??\n\t\t\t\tselectedBlockClientId;\n\t\t} else if ( navigateIn ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetClientIdsOfDescendants( [ selectedBlockClientId ] )[ 0 ] ??\n\t\t\t\tselectedBlockClientId;\n\t\t}\n\t\tconst startingBlockClientId = hasBlockMovingClientId();\n\t\tif ( isEscape && isNavigationMode() ) {\n\t\t\tclearSelectedBlock();\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif ( isEscape && startingBlockClientId && ! event.defaultPrevented ) {\n\t\t\tsetBlockMovingClientId( null );\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif ( ( isEnter || isSpace ) && startingBlockClientId ) {\n\t\t\tconst sourceRoot = getBlockRootClientId( startingBlockClientId );\n\t\t\tconst destRoot = getBlockRootClientId( selectedBlockClientId );\n\t\t\tconst sourceBlockIndex = getBlockIndex( startingBlockClientId );\n\t\t\tlet destinationBlockIndex = getBlockIndex( selectedBlockClientId );\n\t\t\tif (\n\t\t\t\tsourceBlockIndex < destinationBlockIndex &&\n\t\t\t\tsourceRoot === destRoot\n\t\t\t) {\n\t\t\t\tdestinationBlockIndex -= 1;\n\t\t\t}\n\t\t\tmoveBlockToPosition(\n\t\t\t\tstartingBlockClientId,\n\t\t\t\tsourceRoot,\n\t\t\t\tdestRoot,\n\t\t\t\tdestinationBlockIndex\n\t\t\t);\n\t\t\tselectBlock( startingBlockClientId );\n\t\t\tsetBlockMovingClientId( null );\n\t\t}\n\t\tif ( navigateDown || navigateUp || navigateOut || navigateIn ) {\n\t\t\tif ( focusedBlockUid ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectBlock( focusedBlockUid );\n\t\t\t} else if ( isTab && selectedBlockClientId ) {\n\t\t\t\tlet nextTabbable;\n\n\t\t\t\tif ( navigateDown ) {\n\t\t\t\t\tnextTabbable = blockElement;\n\t\t\t\t\tdo {\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t} while (\n\t\t\t\t\t\tnextTabbable &&\n\t\t\t\t\t\tblockElement.contains( nextTabbable )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! nextTabbable ) {\n\t\t\t\t\t\tnextTabbable =\n\t\t\t\t\t\t\tblockElement.ownerDocument.defaultView.frameElement;\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tnextTabbable = focus.tabbable.findPrevious( blockElement );\n\t\t\t\t}\n\n\t\t\t\tif ( nextTabbable ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tnextTabbable.focus();\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tconst classNames = classnames(\n\t\t'block-editor-block-list__block-selection-button',\n\t\t{\n\t\t\t'is-block-moving-mode': !! blockMovingMode,\n\t\t}\n\t);\n\n\tconst dragHandleLabel = __( 'Drag' );\n\n\treturn (\n\t\t<div className={ classNames }>\n\t\t\t<Flex\n\t\t\t\tjustify=\"center\"\n\t\t\t\tclassName=\"block-editor-block-list__block-selection-button__content\"\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<BlockIcon icon={ blockInformation?.icon } showColors />\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<BlockDraggable clientIds={ [ clientId ] }>\n\t\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\t\tclassName=\"block-selection-button_drag-handle\"\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockDraggable>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\tonClick={ () => setNavigationMode( false ) }\n\t\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tclassName=\"block-selection-button_select-button\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tmaximumLength={ 35 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n\nexport default BlockSelectionButton;\n"]}
@@ -84,7 +84,7 @@ function BlockTypesList(_ref) {
84
84
 
85
85
  return (0, _element.createElement)(_reactNative.FlatList, (0, _extends2.default)({
86
86
  onLayout: onLayout,
87
- key: `InserterUI-${name}-${numberOfColumns}` //re-render when numberOfColumns changes
87
+ key: `InserterUI-${name}-${numberOfColumns}` // Re-render when numberOfColumns changes.
88
88
  ,
89
89
  testID: `InserterUI-${name}`,
90
90
  keyboardShouldPersistTaps: "always",
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-types-list/index.native.js"],"names":["MIN_COL_NUM","BlockTypesList","name","items","onSelect","listProps","initialNumToRender","numberOfColumns","setNumberOfColumns","itemWidth","setItemWidth","maxWidth","setMaxWidth","dimensionsChangeSubscription","Dimensions","addEventListener","onLayout","remove","calculateItemWidth","paddingLeft","itemPaddingLeft","paddingRight","itemPaddingRight","InserterButton","Styles","modalItem","width","modalIconWrapper","columnStyle","styles","sumLeftRightPadding","bottomSheetWidth","BottomSheet","getWidth","containerTotalWidth","itemTotalWidth","columnsFitToWidth","Math","floor","numColumns","max","updatedItemWidth","contentContainerStyle","StyleSheet","flatten","item","id","paddingBottom","safeAreaBottomInset"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tDimensions,\n\tFlatList,\n\tStyleSheet,\n\tTouchableWithoutFeedback,\n\tView,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { BottomSheet, InserterButton } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst MIN_COL_NUM = 3;\n\nexport default function BlockTypesList( {\n\tname,\n\titems,\n\tonSelect,\n\tlistProps,\n\tinitialNumToRender = 3,\n} ) {\n\tconst [ numberOfColumns, setNumberOfColumns ] = useState( MIN_COL_NUM );\n\tconst [ itemWidth, setItemWidth ] = useState();\n\tconst [ maxWidth, setMaxWidth ] = useState();\n\n\tuseEffect( () => {\n\t\tconst dimensionsChangeSubscription = Dimensions.addEventListener(\n\t\t\t'change',\n\t\t\tonLayout\n\t\t);\n\t\tonLayout();\n\t\treturn () => {\n\t\t\tdimensionsChangeSubscription.remove();\n\t\t};\n\t}, [] );\n\n\tfunction calculateItemWidth() {\n\t\tconst {\n\t\t\tpaddingLeft: itemPaddingLeft,\n\t\t\tpaddingRight: itemPaddingRight,\n\t\t} = InserterButton.Styles.modalItem;\n\t\tconst { width } = InserterButton.Styles.modalIconWrapper;\n\t\treturn width + itemPaddingLeft + itemPaddingRight;\n\t}\n\n\tfunction onLayout() {\n\t\tconst columnStyle = styles[ 'block-types-list__column' ];\n\t\tconst sumLeftRightPadding =\n\t\t\tcolumnStyle.paddingLeft + columnStyle.paddingRight;\n\n\t\tconst bottomSheetWidth = BottomSheet.getWidth();\n\t\tconst containerTotalWidth = bottomSheetWidth - sumLeftRightPadding;\n\t\tconst itemTotalWidth = calculateItemWidth();\n\n\t\tconst columnsFitToWidth = Math.floor(\n\t\t\tcontainerTotalWidth / itemTotalWidth\n\t\t);\n\n\t\tconst numColumns = Math.max( MIN_COL_NUM, columnsFitToWidth );\n\n\t\tsetNumberOfColumns( numColumns );\n\t\tsetMaxWidth( containerTotalWidth / numColumns );\n\n\t\tif ( columnsFitToWidth < MIN_COL_NUM ) {\n\t\t\tconst updatedItemWidth =\n\t\t\t\t( bottomSheetWidth - 2 * sumLeftRightPadding ) / MIN_COL_NUM;\n\t\t\tsetItemWidth( updatedItemWidth );\n\t\t}\n\t}\n\n\tconst contentContainerStyle = StyleSheet.flatten(\n\t\tlistProps.contentContainerStyle\n\t);\n\n\treturn (\n\t\t<FlatList\n\t\t\tonLayout={ onLayout }\n\t\t\tkey={ `InserterUI-${ name }-${ numberOfColumns }` } //re-render when numberOfColumns changes\n\t\t\ttestID={ `InserterUI-${ name }` }\n\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\tnumColumns={ numberOfColumns }\n\t\t\tdata={ items }\n\t\t\tinitialNumToRender={ initialNumToRender }\n\t\t\tItemSeparatorComponent={ () => (\n\t\t\t\t<TouchableWithoutFeedback accessible={ false }>\n\t\t\t\t\t<View\n\t\t\t\t\t\tstyle={ styles[ 'block-types-list__row-separator' ] }\n\t\t\t\t\t/>\n\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t) }\n\t\t\tkeyExtractor={ ( item ) => item.id }\n\t\t\trenderItem={ ( { item } ) => (\n\t\t\t\t<InserterButton\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\titem,\n\t\t\t\t\t\titemWidth,\n\t\t\t\t\t\tmaxWidth,\n\t\t\t\t\t\tonSelect,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ...listProps }\n\t\t\tcontentContainerStyle={ {\n\t\t\t\t...contentContainerStyle,\n\t\t\t\tpaddingBottom: Math.max(\n\t\t\t\t\tlistProps.safeAreaBottomInset,\n\t\t\t\t\tcontentContainerStyle.paddingBottom\n\t\t\t\t),\n\t\t\t} }\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-types-list/index.native.js"],"names":["MIN_COL_NUM","BlockTypesList","name","items","onSelect","listProps","initialNumToRender","numberOfColumns","setNumberOfColumns","itemWidth","setItemWidth","maxWidth","setMaxWidth","dimensionsChangeSubscription","Dimensions","addEventListener","onLayout","remove","calculateItemWidth","paddingLeft","itemPaddingLeft","paddingRight","itemPaddingRight","InserterButton","Styles","modalItem","width","modalIconWrapper","columnStyle","styles","sumLeftRightPadding","bottomSheetWidth","BottomSheet","getWidth","containerTotalWidth","itemTotalWidth","columnsFitToWidth","Math","floor","numColumns","max","updatedItemWidth","contentContainerStyle","StyleSheet","flatten","item","id","paddingBottom","safeAreaBottomInset"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tDimensions,\n\tFlatList,\n\tStyleSheet,\n\tTouchableWithoutFeedback,\n\tView,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { BottomSheet, InserterButton } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst MIN_COL_NUM = 3;\n\nexport default function BlockTypesList( {\n\tname,\n\titems,\n\tonSelect,\n\tlistProps,\n\tinitialNumToRender = 3,\n} ) {\n\tconst [ numberOfColumns, setNumberOfColumns ] = useState( MIN_COL_NUM );\n\tconst [ itemWidth, setItemWidth ] = useState();\n\tconst [ maxWidth, setMaxWidth ] = useState();\n\n\tuseEffect( () => {\n\t\tconst dimensionsChangeSubscription = Dimensions.addEventListener(\n\t\t\t'change',\n\t\t\tonLayout\n\t\t);\n\t\tonLayout();\n\t\treturn () => {\n\t\t\tdimensionsChangeSubscription.remove();\n\t\t};\n\t}, [] );\n\n\tfunction calculateItemWidth() {\n\t\tconst {\n\t\t\tpaddingLeft: itemPaddingLeft,\n\t\t\tpaddingRight: itemPaddingRight,\n\t\t} = InserterButton.Styles.modalItem;\n\t\tconst { width } = InserterButton.Styles.modalIconWrapper;\n\t\treturn width + itemPaddingLeft + itemPaddingRight;\n\t}\n\n\tfunction onLayout() {\n\t\tconst columnStyle = styles[ 'block-types-list__column' ];\n\t\tconst sumLeftRightPadding =\n\t\t\tcolumnStyle.paddingLeft + columnStyle.paddingRight;\n\n\t\tconst bottomSheetWidth = BottomSheet.getWidth();\n\t\tconst containerTotalWidth = bottomSheetWidth - sumLeftRightPadding;\n\t\tconst itemTotalWidth = calculateItemWidth();\n\n\t\tconst columnsFitToWidth = Math.floor(\n\t\t\tcontainerTotalWidth / itemTotalWidth\n\t\t);\n\n\t\tconst numColumns = Math.max( MIN_COL_NUM, columnsFitToWidth );\n\n\t\tsetNumberOfColumns( numColumns );\n\t\tsetMaxWidth( containerTotalWidth / numColumns );\n\n\t\tif ( columnsFitToWidth < MIN_COL_NUM ) {\n\t\t\tconst updatedItemWidth =\n\t\t\t\t( bottomSheetWidth - 2 * sumLeftRightPadding ) / MIN_COL_NUM;\n\t\t\tsetItemWidth( updatedItemWidth );\n\t\t}\n\t}\n\n\tconst contentContainerStyle = StyleSheet.flatten(\n\t\tlistProps.contentContainerStyle\n\t);\n\n\treturn (\n\t\t<FlatList\n\t\t\tonLayout={ onLayout }\n\t\t\tkey={ `InserterUI-${ name }-${ numberOfColumns }` } // Re-render when numberOfColumns changes.\n\t\t\ttestID={ `InserterUI-${ name }` }\n\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\tnumColumns={ numberOfColumns }\n\t\t\tdata={ items }\n\t\t\tinitialNumToRender={ initialNumToRender }\n\t\t\tItemSeparatorComponent={ () => (\n\t\t\t\t<TouchableWithoutFeedback accessible={ false }>\n\t\t\t\t\t<View\n\t\t\t\t\t\tstyle={ styles[ 'block-types-list__row-separator' ] }\n\t\t\t\t\t/>\n\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t) }\n\t\t\tkeyExtractor={ ( item ) => item.id }\n\t\t\trenderItem={ ( { item } ) => (\n\t\t\t\t<InserterButton\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\titem,\n\t\t\t\t\t\titemWidth,\n\t\t\t\t\t\tmaxWidth,\n\t\t\t\t\t\tonSelect,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ...listProps }\n\t\t\tcontentContainerStyle={ {\n\t\t\t\t...contentContainerStyle,\n\t\t\t\tpaddingBottom: Math.max(\n\t\t\t\t\tlistProps.safeAreaBottomInset,\n\t\t\t\t\tcontentContainerStyle.paddingBottom\n\t\t\t\t),\n\t\t\t} }\n\t\t/>\n\t);\n}\n"]}
@@ -64,7 +64,7 @@ function BorderRadiusControl(_ref) {
64
64
  const unit = (0, _utils.getAllUnit)(values);
65
65
  const unitConfig = units && units.find(item => item.value === unit);
66
66
  const step = (unitConfig === null || unitConfig === void 0 ? void 0 : unitConfig.step) || 1;
67
- const [allValue] = (0, _components.__experimentalParseUnit)((0, _utils.getAllValue)(values));
67
+ const [allValue] = (0, _components.__experimentalParseQuantityAndUnitFromRawValue)((0, _utils.getAllValue)(values));
68
68
 
69
69
  const toggleLinked = () => setIsLinked(!isLinked);
70
70
 
@@ -85,7 +85,7 @@ function BorderRadiusControl(_ref) {
85
85
  units: units
86
86
  }), (0, _element.createElement)(_components.RangeControl, {
87
87
  className: "components-border-radius-control__range-control",
88
- value: allValue,
88
+ value: allValue !== null && allValue !== void 0 ? allValue : '',
89
89
  min: MIN_BORDER_RADIUS_VALUE,
90
90
  max: MAX_BORDER_RADIUS_VALUES[unit],
91
91
  initialPosition: 0,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/border-radius-control/index.js"],"names":["DEFAULT_VALUES","topLeft","topRight","bottomLeft","bottomRight","MIN_BORDER_RADIUS_VALUE","MAX_BORDER_RADIUS_VALUES","px","em","rem","BorderRadiusControl","onChange","values","isLinked","setIsLinked","units","availableUnits","unit","unitConfig","find","item","value","step","allValue","toggleLinked","handleSliderChange","next","undefined"],"mappings":";;;;;;;;;AAQA;;AALA;;AAMA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAlBA;AACA;AACA;;AASA;AACA;AACA;AAYA,MAAMA,cAAc,GAAG;AACtBC,EAAAA,OAAO,EAAE,IADa;AAEtBC,EAAAA,QAAQ,EAAE,IAFY;AAGtBC,EAAAA,UAAU,EAAE,IAHU;AAItBC,EAAAA,WAAW,EAAE;AAJS,CAAvB;AAMA,MAAMC,uBAAuB,GAAG,CAAhC;AACA,MAAMC,wBAAwB,GAAG;AAChCC,EAAAA,EAAE,EAAE,GAD4B;AAEhCC,EAAAA,EAAE,EAAE,EAF4B;AAGhCC,EAAAA,GAAG,EAAE;AAH2B,CAAjC;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACe,SAASC,mBAAT,OAAqD;AAAA,MAAvB;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAAuB;AACnE,QAAM,CAAEC,QAAF,EAAYC,WAAZ,IAA4B,uBACjC,CAAE,6BAAkBF,MAAlB,CAAF,IAAgC,CAAE,2BAAgBA,MAAhB,CADD,CAAlC;AAIA,QAAMG,KAAK,GAAG,8CAAgB;AAC7BC,IAAAA,cAAc,EAAE,yBAAY,eAAZ,KAAiC,CAAE,IAAF,EAAQ,IAAR,EAAc,KAAd;AADpB,GAAhB,CAAd;AAIA,QAAMC,IAAI,GAAG,uBAAYL,MAAZ,CAAb;AACA,QAAMM,UAAU,GAAGH,KAAK,IAAIA,KAAK,CAACI,IAAN,CAAcC,IAAF,IAAYA,IAAI,CAACC,KAAL,KAAeJ,IAAvC,CAA5B;AACA,QAAMK,IAAI,GAAG,CAAAJ,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEI,IAAZ,KAAoB,CAAjC;AAEA,QAAM,CAAEC,QAAF,IAAe,yCAAW,wBAAaX,MAAb,CAAX,CAArB;;AAEA,QAAMY,YAAY,GAAG,MAAMV,WAAW,CAAE,CAAED,QAAJ,CAAtC;;AAEA,QAAMY,kBAAkB,GAAKC,IAAF,IAAY;AACtCf,IAAAA,QAAQ,CAAEe,IAAI,KAAKC,SAAT,GAAsB,GAAGD,IAAM,GAAGT,IAAM,EAAxC,GAA4CU,SAA9C,CAAR;AACA,GAFD;;AAIA,SACC;AAAU,IAAA,SAAS,EAAC;AAApB,KACC,4CAAU,cAAI,QAAJ,CAAV,CADD,EAEC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGd,QAAQ,GACT,qDACC,4BAAC,wBAAD;AACC,IAAA,SAAS,EAAC,gDADX;AAEC,IAAA,MAAM,EAAGD,MAFV;AAGC,IAAA,GAAG,EAAGP,uBAHP;AAIC,IAAA,QAAQ,EAAGM,QAJZ;AAKC,IAAA,IAAI,EAAGM,IALR;AAMC,IAAA,KAAK,EAAGF;AANT,IADD,EASC,4BAAC,wBAAD;AACC,IAAA,SAAS,EAAC,iDADX;AAEC,IAAA,KAAK,EAAGQ,QAFT;AAGC,IAAA,GAAG,EAAGlB,uBAHP;AAIC,IAAA,GAAG,EAAGC,wBAAwB,CAAEW,IAAF,CAJ/B;AAKC,IAAA,eAAe,EAAG,CALnB;AAMC,IAAA,cAAc,EAAG,KANlB;AAOC,IAAA,QAAQ,EAAGQ,kBAPZ;AAQC,IAAA,IAAI,EAAGH;AARR,IATD,CADS,GAsBT,4BAAC,sBAAD;AACC,IAAA,GAAG,EAAGjB,uBADP;AAEC,IAAA,QAAQ,EAAGM,QAFZ;AAGC,IAAA,MAAM,EAAGC,MAAM,IAAIZ,cAHpB;AAIC,IAAA,KAAK,EAAGe;AAJT,IAvBF,EA8BC,4BAAC,qBAAD;AAAc,IAAA,OAAO,EAAGS,YAAxB;AAAuC,IAAA,QAAQ,EAAGX;AAAlD,IA9BD,CAFD,CADD;AAqCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tRangeControl,\n\t__experimentalParseUnit as parseUnit,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport AllInputControl from './all-input-control';\nimport InputControls from './input-controls';\nimport LinkedButton from './linked-button';\nimport useSetting from '../use-setting';\nimport {\n\tgetAllValue,\n\tgetAllUnit,\n\thasDefinedValues,\n\thasMixedValues,\n} from './utils';\n\nconst DEFAULT_VALUES = {\n\ttopLeft: null,\n\ttopRight: null,\n\tbottomLeft: null,\n\tbottomRight: null,\n};\nconst MIN_BORDER_RADIUS_VALUE = 0;\nconst MAX_BORDER_RADIUS_VALUES = {\n\tpx: 100,\n\tem: 20,\n\trem: 20,\n};\n\n/**\n * Control to display border radius options.\n *\n * @param {Object} props Component props.\n * @param {Function} props.onChange Callback to handle onChange.\n * @param {Object} props.values Border radius values.\n *\n * @return {WPElement} Custom border radius control.\n */\nexport default function BorderRadiusControl( { onChange, values } ) {\n\tconst [ isLinked, setIsLinked ] = useState(\n\t\t! hasDefinedValues( values ) || ! hasMixedValues( values )\n\t);\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],\n\t} );\n\n\tconst unit = getAllUnit( values );\n\tconst unitConfig = units && units.find( ( item ) => item.value === unit );\n\tconst step = unitConfig?.step || 1;\n\n\tconst [ allValue ] = parseUnit( getAllValue( values ) );\n\n\tconst toggleLinked = () => setIsLinked( ! isLinked );\n\n\tconst handleSliderChange = ( next ) => {\n\t\tonChange( next !== undefined ? `${ next }${ unit }` : undefined );\n\t};\n\n\treturn (\n\t\t<fieldset className=\"components-border-radius-control\">\n\t\t\t<legend>{ __( 'Radius' ) }</legend>\n\t\t\t<div className=\"components-border-radius-control__wrapper\">\n\t\t\t\t{ isLinked ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<AllInputControl\n\t\t\t\t\t\t\tclassName=\"components-border-radius-control__unit-control\"\n\t\t\t\t\t\t\tvalues={ values }\n\t\t\t\t\t\t\tmin={ MIN_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tunit={ unit }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tclassName=\"components-border-radius-control__range-control\"\n\t\t\t\t\t\t\tvalue={ allValue }\n\t\t\t\t\t\t\tmin={ MIN_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\t\tmax={ MAX_BORDER_RADIUS_VALUES[ unit ] }\n\t\t\t\t\t\t\tinitialPosition={ 0 }\n\t\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\t\tonChange={ handleSliderChange }\n\t\t\t\t\t\t\tstep={ step }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\t<InputControls\n\t\t\t\t\t\tmin={ MIN_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tvalues={ values || DEFAULT_VALUES }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<LinkedButton onClick={ toggleLinked } isLinked={ isLinked } />\n\t\t\t</div>\n\t\t</fieldset>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/border-radius-control/index.js"],"names":["DEFAULT_VALUES","topLeft","topRight","bottomLeft","bottomRight","MIN_BORDER_RADIUS_VALUE","MAX_BORDER_RADIUS_VALUES","px","em","rem","BorderRadiusControl","onChange","values","isLinked","setIsLinked","units","availableUnits","unit","unitConfig","find","item","value","step","allValue","toggleLinked","handleSliderChange","next","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tRangeControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport AllInputControl from './all-input-control';\nimport InputControls from './input-controls';\nimport LinkedButton from './linked-button';\nimport useSetting from '../use-setting';\nimport {\n\tgetAllValue,\n\tgetAllUnit,\n\thasDefinedValues,\n\thasMixedValues,\n} from './utils';\n\nconst DEFAULT_VALUES = {\n\ttopLeft: null,\n\ttopRight: null,\n\tbottomLeft: null,\n\tbottomRight: null,\n};\nconst MIN_BORDER_RADIUS_VALUE = 0;\nconst MAX_BORDER_RADIUS_VALUES = {\n\tpx: 100,\n\tem: 20,\n\trem: 20,\n};\n\n/**\n * Control to display border radius options.\n *\n * @param {Object} props Component props.\n * @param {Function} props.onChange Callback to handle onChange.\n * @param {Object} props.values Border radius values.\n *\n * @return {WPElement} Custom border radius control.\n */\nexport default function BorderRadiusControl( { onChange, values } ) {\n\tconst [ isLinked, setIsLinked ] = useState(\n\t\t! hasDefinedValues( values ) || ! hasMixedValues( values )\n\t);\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],\n\t} );\n\n\tconst unit = getAllUnit( values );\n\tconst unitConfig = units && units.find( ( item ) => item.value === unit );\n\tconst step = unitConfig?.step || 1;\n\n\tconst [ allValue ] = parseQuantityAndUnitFromRawValue(\n\t\tgetAllValue( values )\n\t);\n\n\tconst toggleLinked = () => setIsLinked( ! isLinked );\n\n\tconst handleSliderChange = ( next ) => {\n\t\tonChange( next !== undefined ? `${ next }${ unit }` : undefined );\n\t};\n\n\treturn (\n\t\t<fieldset className=\"components-border-radius-control\">\n\t\t\t<legend>{ __( 'Radius' ) }</legend>\n\t\t\t<div className=\"components-border-radius-control__wrapper\">\n\t\t\t\t{ isLinked ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<AllInputControl\n\t\t\t\t\t\t\tclassName=\"components-border-radius-control__unit-control\"\n\t\t\t\t\t\t\tvalues={ values }\n\t\t\t\t\t\t\tmin={ MIN_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tunit={ unit }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tclassName=\"components-border-radius-control__range-control\"\n\t\t\t\t\t\t\tvalue={ allValue ?? '' }\n\t\t\t\t\t\t\tmin={ MIN_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\t\tmax={ MAX_BORDER_RADIUS_VALUES[ unit ] }\n\t\t\t\t\t\t\tinitialPosition={ 0 }\n\t\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\t\tonChange={ handleSliderChange }\n\t\t\t\t\t\t\tstep={ step }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\t<InputControls\n\t\t\t\t\t\tmin={ MIN_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tvalues={ values || DEFAULT_VALUES }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<LinkedButton onClick={ toggleLinked } isLinked={ isLinked } />\n\t\t\t</div>\n\t\t</fieldset>\n\t);\n}\n"]}
@@ -45,12 +45,12 @@ function getAllUnit() {
45
45
  let values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
46
46
 
47
47
  if (typeof values === 'string') {
48
- const [, unit] = (0, _components.__experimentalParseUnit)(values);
48
+ const [, unit] = (0, _components.__experimentalParseQuantityAndUnitFromRawValue)(values);
49
49
  return unit || 'px';
50
50
  }
51
51
 
52
52
  const allUnits = Object.values(values).map(value => {
53
- const [, unit] = (0, _components.__experimentalParseUnit)(value);
53
+ const [, unit] = (0, _components.__experimentalParseQuantityAndUnitFromRawValue)(value);
54
54
  return unit;
55
55
  });
56
56
  return mode(allUnits) || 'px';
@@ -75,12 +75,16 @@ function getAllValue() {
75
75
  return values;
76
76
  }
77
77
 
78
- const parsedValues = Object.values(values).map(value => (0, _components.__experimentalParseUnit)(value));
79
- const allValues = parsedValues.map(value => value[0]);
80
- const allUnits = parsedValues.map(value => value[1]);
78
+ const parsedQuantitiesAndUnits = Object.values(values).map(value => (0, _components.__experimentalParseQuantityAndUnitFromRawValue)(value));
79
+ const allValues = parsedQuantitiesAndUnits.map(value => {
80
+ var _value$;
81
+
82
+ return (_value$ = value[0]) !== null && _value$ !== void 0 ? _value$ : '';
83
+ });
84
+ const allUnits = parsedQuantitiesAndUnits.map(value => value[1]);
81
85
  const value = allValues.every(v => v === allValues[0]) ? allValues[0] : '';
82
86
  const unit = mode(allUnits);
83
- const allValue = value === 0 || value ? `${value}${unit}` : null;
87
+ const allValue = value === 0 || value ? `${value}${unit}` : undefined;
84
88
  return allValue;
85
89
  }
86
90
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/border-radius-control/utils.js"],"names":["mode","inputArray","arr","sort","a","b","filter","v","length","shift","getAllUnit","values","unit","allUnits","Object","map","value","getAllValue","parsedValues","allValues","every","allValue","hasMixedValues","isMixed","isNaN","parseFloat","hasDefinedValues","filteredValues"],"mappings":";;;;;;;;;;;AAGA;;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,IAAT,CAAeC,UAAf,EAA4B;AAClC,QAAMC,GAAG,GAAG,CAAE,GAAGD,UAAL,CAAZ;AACA,SAAOC,GAAG,CACRC,IADK,CAEL,CAAEC,CAAF,EAAKC,CAAL,KACCJ,UAAU,CAACK,MAAX,CAAqBC,CAAF,IAASA,CAAC,KAAKF,CAAlC,EAAsCG,MAAtC,GACAP,UAAU,CAACK,MAAX,CAAqBC,CAAF,IAASA,CAAC,KAAKH,CAAlC,EAAsCI,MAJlC,EAMLC,KANK,EAAP;AAOA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,UAAT,GAAmC;AAAA,MAAdC,MAAc,uEAAL,EAAK;;AACzC,MAAK,OAAOA,MAAP,KAAkB,QAAvB,EAAkC;AACjC,UAAM,GAAIC,IAAJ,IAAa,yCAAWD,MAAX,CAAnB;AACA,WAAOC,IAAI,IAAI,IAAf;AACA;;AAED,QAAMC,QAAQ,GAAGC,MAAM,CAACH,MAAP,CAAeA,MAAf,EAAwBI,GAAxB,CAA+BC,KAAF,IAAa;AAC1D,UAAM,GAAIJ,IAAJ,IAAa,yCAAWI,KAAX,CAAnB;AACA,WAAOJ,IAAP;AACA,GAHgB,CAAjB;AAKA,SAAOZ,IAAI,CAAEa,QAAF,CAAJ,IAAoB,IAA3B;AACA;AAED;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASI,WAAT,GAAoC;AAAA,MAAdN,MAAc,uEAAL,EAAK;;AAC1C;AACD;AACA;AACA;AACA;AACC,MAAK,OAAOA,MAAP,KAAkB,QAAvB,EAAkC;AACjC,WAAOA,MAAP;AACA;;AAED,QAAMO,YAAY,GAAGJ,MAAM,CAACH,MAAP,CAAeA,MAAf,EAAwBI,GAAxB,CAA+BC,KAAF,IACjD,yCAAWA,KAAX,CADoB,CAArB;AAIA,QAAMG,SAAS,GAAGD,YAAY,CAACH,GAAb,CAAoBC,KAAF,IAAaA,KAAK,CAAE,CAAF,CAApC,CAAlB;AACA,QAAMH,QAAQ,GAAGK,YAAY,CAACH,GAAb,CAAoBC,KAAF,IAAaA,KAAK,CAAE,CAAF,CAApC,CAAjB;AAEA,QAAMA,KAAK,GAAGG,SAAS,CAACC,KAAV,CAAmBb,CAAF,IAASA,CAAC,KAAKY,SAAS,CAAE,CAAF,CAAzC,IACXA,SAAS,CAAE,CAAF,CADE,GAEX,EAFH;AAGA,QAAMP,IAAI,GAAGZ,IAAI,CAAEa,QAAF,CAAjB;AAEA,QAAMQ,QAAQ,GAAGL,KAAK,KAAK,CAAV,IAAeA,KAAf,GAAwB,GAAGA,KAAO,GAAGJ,IAAM,EAA3C,GAA+C,IAAhE;AAEA,SAAOS,QAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,cAAT,GAAuC;AAAA,MAAdX,MAAc,uEAAL,EAAK;AAC7C,QAAMU,QAAQ,GAAGJ,WAAW,CAAEN,MAAF,CAA5B;AACA,QAAMY,OAAO,GAAGC,KAAK,CAAEC,UAAU,CAAEJ,QAAF,CAAZ,CAArB;AAEA,SAAOE,OAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASG,gBAAT,CAA2Bf,MAA3B,EAAoC;AAC1C,MAAK,CAAEA,MAAP,EAAgB;AACf,WAAO,KAAP;AACA,GAHyC,CAK1C;;;AACA,MAAK,OAAOA,MAAP,KAAkB,QAAvB,EAAkC;AACjC,WAAO,IAAP;AACA,GARyC,CAU1C;AACA;;;AACA,QAAMgB,cAAc,GAAGb,MAAM,CAACH,MAAP,CAAeA,MAAf,EAAwBL,MAAxB,CAAkCU,KAAF,IAAa;AACnE,WAAO,CAAC,CAAEA,KAAH,IAAYA,KAAK,KAAK,CAA7B;AACA,GAFsB,CAAvB;AAIA,SAAO,CAAC,CAAEW,cAAc,CAACnB,MAAzB;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalParseUnit as parseUnit } from '@wordpress/components';\n\n/**\n * Gets the (non-undefined) item with the highest occurrence within an array\n * Based in part on: https://stackoverflow.com/a/20762713\n *\n * Undefined values are always sorted to the end by `sort`, so this function\n * returns the first element, to always prioritize real values over undefined\n * values.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#description\n *\n * @param {Array<any>} inputArray Array of items to check.\n * @return {any} The item with the most occurrences.\n */\nexport function mode( inputArray ) {\n\tconst arr = [ ...inputArray ];\n\treturn arr\n\t\t.sort(\n\t\t\t( a, b ) =>\n\t\t\t\tinputArray.filter( ( v ) => v === b ).length -\n\t\t\t\tinputArray.filter( ( v ) => v === a ).length\n\t\t)\n\t\t.shift();\n}\n\n/**\n * Returns the most common CSS unit in the radius values.\n * Falls back to `px` as a default unit.\n *\n * @param {Object|string} values Radius values.\n * @return {string} Most common CSS unit in values. Default: `px`.\n */\nexport function getAllUnit( values = {} ) {\n\tif ( typeof values === 'string' ) {\n\t\tconst [ , unit ] = parseUnit( values );\n\t\treturn unit || 'px';\n\t}\n\n\tconst allUnits = Object.values( values ).map( ( value ) => {\n\t\tconst [ , unit ] = parseUnit( value );\n\t\treturn unit;\n\t} );\n\n\treturn mode( allUnits ) || 'px';\n}\n\n/**\n * Gets the 'all' input value and unit from values data.\n *\n * @param {Object|string} values Radius values.\n * @return {string} A value + unit for the 'all' input.\n */\nexport function getAllValue( values = {} ) {\n\t/**\n\t * Border radius support was originally a single pixel value.\n\t *\n\t * To maintain backwards compatibility treat this case as the all value.\n\t */\n\tif ( typeof values === 'string' ) {\n\t\treturn values;\n\t}\n\n\tconst parsedValues = Object.values( values ).map( ( value ) =>\n\t\tparseUnit( value )\n\t);\n\n\tconst allValues = parsedValues.map( ( value ) => value[ 0 ] );\n\tconst allUnits = parsedValues.map( ( value ) => value[ 1 ] );\n\n\tconst value = allValues.every( ( v ) => v === allValues[ 0 ] )\n\t\t? allValues[ 0 ]\n\t\t: '';\n\tconst unit = mode( allUnits );\n\n\tconst allValue = value === 0 || value ? `${ value }${ unit }` : null;\n\n\treturn allValue;\n}\n\n/**\n * Checks to determine if values are mixed.\n *\n * @param {Object} values Radius values.\n * @return {boolean} Whether values are mixed.\n */\nexport function hasMixedValues( values = {} ) {\n\tconst allValue = getAllValue( values );\n\tconst isMixed = isNaN( parseFloat( allValue ) );\n\n\treturn isMixed;\n}\n\n/**\n * Checks to determine if values are defined.\n *\n * @param {Object} values Radius values.\n * @return {boolean} Whether values are mixed.\n */\nexport function hasDefinedValues( values ) {\n\tif ( ! values ) {\n\t\treturn false;\n\t}\n\n\t// A string value represents a shorthand value.\n\tif ( typeof values === 'string' ) {\n\t\treturn true;\n\t}\n\n\t// An object represents longhand border radius values, if any are set\n\t// flag values as being defined.\n\tconst filteredValues = Object.values( values ).filter( ( value ) => {\n\t\treturn !! value || value === 0;\n\t} );\n\n\treturn !! filteredValues.length;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/border-radius-control/utils.js"],"names":["mode","inputArray","arr","sort","a","b","filter","v","length","shift","getAllUnit","values","unit","allUnits","Object","map","value","getAllValue","parsedQuantitiesAndUnits","allValues","every","allValue","undefined","hasMixedValues","isMixed","isNaN","parseFloat","hasDefinedValues","filteredValues"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue } from '@wordpress/components';\n\n/**\n * Gets the (non-undefined) item with the highest occurrence within an array\n * Based in part on: https://stackoverflow.com/a/20762713\n *\n * Undefined values are always sorted to the end by `sort`, so this function\n * returns the first element, to always prioritize real values over undefined\n * values.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#description\n *\n * @param {Array<any>} inputArray Array of items to check.\n * @return {any} The item with the most occurrences.\n */\nexport function mode( inputArray ) {\n\tconst arr = [ ...inputArray ];\n\treturn arr\n\t\t.sort(\n\t\t\t( a, b ) =>\n\t\t\t\tinputArray.filter( ( v ) => v === b ).length -\n\t\t\t\tinputArray.filter( ( v ) => v === a ).length\n\t\t)\n\t\t.shift();\n}\n\n/**\n * Returns the most common CSS unit in the radius values.\n * Falls back to `px` as a default unit.\n *\n * @param {Object|string} values Radius values.\n * @return {string} Most common CSS unit in values. Default: `px`.\n */\nexport function getAllUnit( values = {} ) {\n\tif ( typeof values === 'string' ) {\n\t\tconst [ , unit ] = parseQuantityAndUnitFromRawValue( values );\n\t\treturn unit || 'px';\n\t}\n\n\tconst allUnits = Object.values( values ).map( ( value ) => {\n\t\tconst [ , unit ] = parseQuantityAndUnitFromRawValue( value );\n\t\treturn unit;\n\t} );\n\n\treturn mode( allUnits ) || 'px';\n}\n\n/**\n * Gets the 'all' input value and unit from values data.\n *\n * @param {Object|string} values Radius values.\n * @return {string} A value + unit for the 'all' input.\n */\nexport function getAllValue( values = {} ) {\n\t/**\n\t * Border radius support was originally a single pixel value.\n\t *\n\t * To maintain backwards compatibility treat this case as the all value.\n\t */\n\tif ( typeof values === 'string' ) {\n\t\treturn values;\n\t}\n\n\tconst parsedQuantitiesAndUnits = Object.values( values ).map( ( value ) =>\n\t\tparseQuantityAndUnitFromRawValue( value )\n\t);\n\n\tconst allValues = parsedQuantitiesAndUnits.map(\n\t\t( value ) => value[ 0 ] ?? ''\n\t);\n\tconst allUnits = parsedQuantitiesAndUnits.map( ( value ) => value[ 1 ] );\n\n\tconst value = allValues.every( ( v ) => v === allValues[ 0 ] )\n\t\t? allValues[ 0 ]\n\t\t: '';\n\tconst unit = mode( allUnits );\n\n\tconst allValue = value === 0 || value ? `${ value }${ unit }` : undefined;\n\n\treturn allValue;\n}\n\n/**\n * Checks to determine if values are mixed.\n *\n * @param {Object} values Radius values.\n * @return {boolean} Whether values are mixed.\n */\nexport function hasMixedValues( values = {} ) {\n\tconst allValue = getAllValue( values );\n\tconst isMixed = isNaN( parseFloat( allValue ) );\n\n\treturn isMixed;\n}\n\n/**\n * Checks to determine if values are defined.\n *\n * @param {Object} values Radius values.\n * @return {boolean} Whether values are mixed.\n */\nexport function hasDefinedValues( values ) {\n\tif ( ! values ) {\n\t\treturn false;\n\t}\n\n\t// A string value represents a shorthand value.\n\tif ( typeof values === 'string' ) {\n\t\treturn true;\n\t}\n\n\t// An object represents longhand border radius values, if any are set\n\t// flag values as being defined.\n\tconst filteredValues = Object.values( values ).filter( ( value ) => {\n\t\treturn !! value || value === 0;\n\t} );\n\n\treturn !! filteredValues.length;\n}\n"]}
@@ -37,7 +37,7 @@ function ContrastChecker(_ref) {
37
37
  fallbackTextColor,
38
38
  fallbackLinkColor,
39
39
  fontSize,
40
- // font size value in pixels
40
+ // Font size value in pixels.
41
41
  isLargeText,
42
42
  textColor,
43
43
  linkColor,
@@ -89,8 +89,8 @@ function ContrastChecker(_ref) {
89
89
  continue;
90
90
  }
91
91
 
92
- message = backgroundColorBrightness < colordTextColor.brightness() ? (0, _i18n.sprintf)( // translators: %s is a type of text color, e.g., "text color" or "link color"
93
- (0, _i18n.__)('This color combination may be hard for people to read. Try using a darker background color and/or a brighter %s.'), item.description) : (0, _i18n.sprintf)( // translators: %s is a type of text color, e.g., "text color" or "link color"
92
+ message = backgroundColorBrightness < colordTextColor.brightness() ? (0, _i18n.sprintf)( // translators: %s is a type of text color, e.g., "text color" or "link color".
93
+ (0, _i18n.__)('This color combination may be hard for people to read. Try using a darker background color and/or a brighter %s.'), item.description) : (0, _i18n.sprintf)( // translators: %s is a type of text color, e.g., "text color" or "link color".
94
94
  (0, _i18n.__)('This color combination may be hard for people to read. Try using a brighter background color and/or a darker %s.'), item.description);
95
95
  speakMessage = (0, _i18n.__)('This color combination may be hard for people to read.'); // Break from the loop when we have a contrast warning.
96
96
  // These messages take priority over the transparency warning.
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/contrast-checker/index.js"],"names":["namesPlugin","a11yPlugin","ContrastChecker","backgroundColor","fallbackBackgroundColor","fallbackTextColor","fallbackLinkColor","fontSize","isLargeText","textColor","linkColor","enableAlphaChecker","currentBackgroundColor","currentTextColor","currentLinkColor","textColors","color","description","colordBackgroundColor","backgroundColorHasTransparency","alpha","backgroundColorBrightness","brightness","isReadableOptions","level","size","message","speakMessage","item","colordTextColor","isColordTextReadable","isReadable","textHasTransparency"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport a11yPlugin from 'colord/plugins/a11y';\nimport namesPlugin from 'colord/plugins/names';\nimport { colord, extend } from 'colord';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Notice } from '@wordpress/components';\nimport { speak } from '@wordpress/a11y';\n\nextend( [ namesPlugin, a11yPlugin ] );\n\nfunction ContrastChecker( {\n\tbackgroundColor,\n\tfallbackBackgroundColor,\n\tfallbackTextColor,\n\tfallbackLinkColor,\n\tfontSize, // font size value in pixels\n\tisLargeText,\n\ttextColor,\n\tlinkColor,\n\tenableAlphaChecker = false,\n} ) {\n\tconst currentBackgroundColor = backgroundColor || fallbackBackgroundColor;\n\n\t// Must have a background color.\n\tif ( ! currentBackgroundColor ) {\n\t\treturn null;\n\t}\n\n\tconst currentTextColor = textColor || fallbackTextColor;\n\tconst currentLinkColor = linkColor || fallbackLinkColor;\n\n\t// Must have at least one text color.\n\tif ( ! currentTextColor && ! currentLinkColor ) {\n\t\treturn null;\n\t}\n\n\tconst textColors = [\n\t\t{\n\t\t\tcolor: currentTextColor,\n\t\t\tdescription: __( 'text color' ),\n\t\t},\n\t\t{\n\t\t\tcolor: currentLinkColor,\n\t\t\tdescription: __( 'link color' ),\n\t\t},\n\t];\n\tconst colordBackgroundColor = colord( currentBackgroundColor );\n\tconst backgroundColorHasTransparency = colordBackgroundColor.alpha() < 1;\n\tconst backgroundColorBrightness = colordBackgroundColor.brightness();\n\tconst isReadableOptions = {\n\t\tlevel: 'AA',\n\t\tsize:\n\t\t\tisLargeText || ( isLargeText !== false && fontSize >= 24 )\n\t\t\t\t? 'large'\n\t\t\t\t: 'small',\n\t};\n\n\tlet message = '';\n\tlet speakMessage = '';\n\tfor ( const item of textColors ) {\n\t\t// If there is no color, go no further.\n\t\tif ( ! item.color ) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst colordTextColor = colord( item.color );\n\t\tconst isColordTextReadable = colordTextColor.isReadable(\n\t\t\tcolordBackgroundColor,\n\t\t\tisReadableOptions\n\t\t);\n\t\tconst textHasTransparency = colordTextColor.alpha() < 1;\n\n\t\t// If the contrast is not readable.\n\t\tif ( ! isColordTextReadable ) {\n\t\t\t// Don't show the message if the background or text is transparent.\n\t\t\tif ( backgroundColorHasTransparency || textHasTransparency ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tmessage =\n\t\t\t\tbackgroundColorBrightness < colordTextColor.brightness()\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// translators: %s is a type of text color, e.g., \"text color\" or \"link color\"\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'This color combination may be hard for people to read. Try using a darker background color and/or a brighter %s.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\titem.description\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// translators: %s is a type of text color, e.g., \"text color\" or \"link color\"\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'This color combination may be hard for people to read. Try using a brighter background color and/or a darker %s.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\titem.description\n\t\t\t\t\t );\n\t\t\tspeakMessage = __(\n\t\t\t\t'This color combination may be hard for people to read.'\n\t\t\t);\n\t\t\t// Break from the loop when we have a contrast warning.\n\t\t\t// These messages take priority over the transparency warning.\n\t\t\tbreak;\n\t\t}\n\n\t\t// If there is no contrast warning and the text is transparent,\n\t\t// show the transparent warning if alpha check is enabled.\n\t\tif ( textHasTransparency && enableAlphaChecker ) {\n\t\t\tmessage = __( 'Transparent text may be hard for people to read.' );\n\t\t\tspeakMessage = __(\n\t\t\t\t'Transparent text may be hard for people to read.'\n\t\t\t);\n\t\t}\n\t}\n\n\tif ( ! message ) {\n\t\treturn null;\n\t}\n\n\t// Note: The `Notice` component can speak messages via its `spokenMessage`\n\t// prop, but the contrast checker requires granular control over when the\n\t// announcements are made. Notably, the message will be re-announced if a\n\t// new color combination is selected and the contrast is still insufficient.\n\tspeak( speakMessage );\n\n\treturn (\n\t\t<div className=\"block-editor-contrast-checker\">\n\t\t\t<Notice\n\t\t\t\tspokenMessage={ null }\n\t\t\t\tstatus=\"warning\"\n\t\t\t\tisDismissible={ false }\n\t\t\t>\n\t\t\t\t{ message }\n\t\t\t</Notice>\n\t\t</div>\n\t);\n}\n\nexport default ContrastChecker;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/contrast-checker/index.js"],"names":["namesPlugin","a11yPlugin","ContrastChecker","backgroundColor","fallbackBackgroundColor","fallbackTextColor","fallbackLinkColor","fontSize","isLargeText","textColor","linkColor","enableAlphaChecker","currentBackgroundColor","currentTextColor","currentLinkColor","textColors","color","description","colordBackgroundColor","backgroundColorHasTransparency","alpha","backgroundColorBrightness","brightness","isReadableOptions","level","size","message","speakMessage","item","colordTextColor","isColordTextReadable","isReadable","textHasTransparency"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport a11yPlugin from 'colord/plugins/a11y';\nimport namesPlugin from 'colord/plugins/names';\nimport { colord, extend } from 'colord';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Notice } from '@wordpress/components';\nimport { speak } from '@wordpress/a11y';\n\nextend( [ namesPlugin, a11yPlugin ] );\n\nfunction ContrastChecker( {\n\tbackgroundColor,\n\tfallbackBackgroundColor,\n\tfallbackTextColor,\n\tfallbackLinkColor,\n\tfontSize, // Font size value in pixels.\n\tisLargeText,\n\ttextColor,\n\tlinkColor,\n\tenableAlphaChecker = false,\n} ) {\n\tconst currentBackgroundColor = backgroundColor || fallbackBackgroundColor;\n\n\t// Must have a background color.\n\tif ( ! currentBackgroundColor ) {\n\t\treturn null;\n\t}\n\n\tconst currentTextColor = textColor || fallbackTextColor;\n\tconst currentLinkColor = linkColor || fallbackLinkColor;\n\n\t// Must have at least one text color.\n\tif ( ! currentTextColor && ! currentLinkColor ) {\n\t\treturn null;\n\t}\n\n\tconst textColors = [\n\t\t{\n\t\t\tcolor: currentTextColor,\n\t\t\tdescription: __( 'text color' ),\n\t\t},\n\t\t{\n\t\t\tcolor: currentLinkColor,\n\t\t\tdescription: __( 'link color' ),\n\t\t},\n\t];\n\tconst colordBackgroundColor = colord( currentBackgroundColor );\n\tconst backgroundColorHasTransparency = colordBackgroundColor.alpha() < 1;\n\tconst backgroundColorBrightness = colordBackgroundColor.brightness();\n\tconst isReadableOptions = {\n\t\tlevel: 'AA',\n\t\tsize:\n\t\t\tisLargeText || ( isLargeText !== false && fontSize >= 24 )\n\t\t\t\t? 'large'\n\t\t\t\t: 'small',\n\t};\n\n\tlet message = '';\n\tlet speakMessage = '';\n\tfor ( const item of textColors ) {\n\t\t// If there is no color, go no further.\n\t\tif ( ! item.color ) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst colordTextColor = colord( item.color );\n\t\tconst isColordTextReadable = colordTextColor.isReadable(\n\t\t\tcolordBackgroundColor,\n\t\t\tisReadableOptions\n\t\t);\n\t\tconst textHasTransparency = colordTextColor.alpha() < 1;\n\n\t\t// If the contrast is not readable.\n\t\tif ( ! isColordTextReadable ) {\n\t\t\t// Don't show the message if the background or text is transparent.\n\t\t\tif ( backgroundColorHasTransparency || textHasTransparency ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tmessage =\n\t\t\t\tbackgroundColorBrightness < colordTextColor.brightness()\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// translators: %s is a type of text color, e.g., \"text color\" or \"link color\".\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'This color combination may be hard for people to read. Try using a darker background color and/or a brighter %s.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\titem.description\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// translators: %s is a type of text color, e.g., \"text color\" or \"link color\".\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'This color combination may be hard for people to read. Try using a brighter background color and/or a darker %s.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\titem.description\n\t\t\t\t\t );\n\t\t\tspeakMessage = __(\n\t\t\t\t'This color combination may be hard for people to read.'\n\t\t\t);\n\t\t\t// Break from the loop when we have a contrast warning.\n\t\t\t// These messages take priority over the transparency warning.\n\t\t\tbreak;\n\t\t}\n\n\t\t// If there is no contrast warning and the text is transparent,\n\t\t// show the transparent warning if alpha check is enabled.\n\t\tif ( textHasTransparency && enableAlphaChecker ) {\n\t\t\tmessage = __( 'Transparent text may be hard for people to read.' );\n\t\t\tspeakMessage = __(\n\t\t\t\t'Transparent text may be hard for people to read.'\n\t\t\t);\n\t\t}\n\t}\n\n\tif ( ! message ) {\n\t\treturn null;\n\t}\n\n\t// Note: The `Notice` component can speak messages via its `spokenMessage`\n\t// prop, but the contrast checker requires granular control over when the\n\t// announcements are made. Notably, the message will be re-announced if a\n\t// new color combination is selected and the contrast is still insufficient.\n\tspeak( speakMessage );\n\n\treturn (\n\t\t<div className=\"block-editor-contrast-checker\">\n\t\t\t<Notice\n\t\t\t\tspokenMessage={ null }\n\t\t\t\tstatus=\"warning\"\n\t\t\t\tisDismissible={ false }\n\t\t\t>\n\t\t\t\t{ message }\n\t\t\t</Notice>\n\t\t</div>\n\t);\n}\n\nexport default ContrastChecker;\n"]}
@@ -48,7 +48,7 @@ function ConvertToGroupButton(_ref) {
48
48
  } = (0, _data.useDispatch)(_store.store);
49
49
 
50
50
  const onConvertToGroup = () => {
51
- // Activate the `transform` on the Grouping Block which does the conversion
51
+ // Activate the `transform` on the Grouping Block which does the conversion.
52
52
  const newBlocks = (0, _blocks.switchToBlockType)(blocksSelection, groupingBlockName);
53
53
 
54
54
  if (newBlocks) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/convert-to-group-buttons/index.js"],"names":["ConvertToGroupButton","clientIds","isGroupable","isUngroupable","blocksSelection","groupingBlockName","onClose","replaceBlocks","blockEditorStore","onConvertToGroup","newBlocks","onConvertFromGroup","innerBlocks","length"],"mappings":";;;;;;;;;;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAZA;AACA;AACA;;AAMA;AACA;AACA;AAIA,SAASA,oBAAT,OAOI;AAAA,MAP2B;AAC9BC,IAAAA,SAD8B;AAE9BC,IAAAA,WAF8B;AAG9BC,IAAAA,aAH8B;AAI9BC,IAAAA,eAJ8B;AAK9BC,IAAAA,iBAL8B;AAM9BC,IAAAA,OAAO,GAAG,MAAM,CAAE;AANY,GAO3B;AACH,QAAM;AAAEC,IAAAA;AAAF,MAAoB,uBAAaC,YAAb,CAA1B;;AACA,QAAMC,gBAAgB,GAAG,MAAM;AAC9B;AACA,UAAMC,SAAS,GAAG,+BACjBN,eADiB,EAEjBC,iBAFiB,CAAlB;;AAIA,QAAKK,SAAL,EAAiB;AAChBH,MAAAA,aAAa,CAAEN,SAAF,EAAaS,SAAb,CAAb;AACA;AACD,GATD;;AAWA,QAAMC,kBAAkB,GAAG,MAAM;AAChC,UAAMC,WAAW,GAAGR,eAAe,CAAE,CAAF,CAAf,CAAqBQ,WAAzC;;AACA,QAAK,CAAEA,WAAW,CAACC,MAAnB,EAA4B;AAC3B;AACA;;AACDN,IAAAA,aAAa,CAAEN,SAAF,EAAaW,WAAb,CAAb;AACA,GAND;;AAQA,MAAK,CAAEV,WAAF,IAAiB,CAAEC,aAAxB,EAAwC;AACvC,WAAO,IAAP;AACA;;AAED,SACC,qDACGD,WAAW,IACZ,4BAAC,oBAAD;AACC,IAAA,OAAO,EAAG,MAAM;AACfO,MAAAA,gBAAgB;AAChBH,MAAAA,OAAO;AACP;AAJF,KAMG,cAAI,OAAJ,EAAa,MAAb,CANH,CAFF,EAWGH,aAAa,IACd,4BAAC,oBAAD;AACC,IAAA,OAAO,EAAG,MAAM;AACfQ,MAAAA,kBAAkB;AAClBL,MAAAA,OAAO;AACP;AAJF,KAMG,cACD,SADC,EAED,4FAFC,CANH,CAZF,CADD;AA2BA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { _x } from '@wordpress/i18n';\nimport { switchToBlockType } from '@wordpress/blocks';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport useConvertToGroupButtonProps from './use-convert-to-group-button-props';\n\nfunction ConvertToGroupButton( {\n\tclientIds,\n\tisGroupable,\n\tisUngroupable,\n\tblocksSelection,\n\tgroupingBlockName,\n\tonClose = () => {},\n} ) {\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst onConvertToGroup = () => {\n\t\t// Activate the `transform` on the Grouping Block which does the conversion\n\t\tconst newBlocks = switchToBlockType(\n\t\t\tblocksSelection,\n\t\t\tgroupingBlockName\n\t\t);\n\t\tif ( newBlocks ) {\n\t\t\treplaceBlocks( clientIds, newBlocks );\n\t\t}\n\t};\n\n\tconst onConvertFromGroup = () => {\n\t\tconst innerBlocks = blocksSelection[ 0 ].innerBlocks;\n\t\tif ( ! innerBlocks.length ) {\n\t\t\treturn;\n\t\t}\n\t\treplaceBlocks( clientIds, innerBlocks );\n\t};\n\n\tif ( ! isGroupable && ! isUngroupable ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isGroupable && (\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonConvertToGroup();\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ _x( 'Group', 'verb' ) }\n\t\t\t\t</MenuItem>\n\t\t\t) }\n\t\t\t{ isUngroupable && (\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonConvertFromGroup();\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ _x(\n\t\t\t\t\t\t'Ungroup',\n\t\t\t\t\t\t'Ungrouping blocks from within a Group block back into individual blocks within the Editor '\n\t\t\t\t\t) }\n\t\t\t\t</MenuItem>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport { useConvertToGroupButtonProps, ConvertToGroupButton };\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/convert-to-group-buttons/index.js"],"names":["ConvertToGroupButton","clientIds","isGroupable","isUngroupable","blocksSelection","groupingBlockName","onClose","replaceBlocks","blockEditorStore","onConvertToGroup","newBlocks","onConvertFromGroup","innerBlocks","length"],"mappings":";;;;;;;;;;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAZA;AACA;AACA;;AAMA;AACA;AACA;AAIA,SAASA,oBAAT,OAOI;AAAA,MAP2B;AAC9BC,IAAAA,SAD8B;AAE9BC,IAAAA,WAF8B;AAG9BC,IAAAA,aAH8B;AAI9BC,IAAAA,eAJ8B;AAK9BC,IAAAA,iBAL8B;AAM9BC,IAAAA,OAAO,GAAG,MAAM,CAAE;AANY,GAO3B;AACH,QAAM;AAAEC,IAAAA;AAAF,MAAoB,uBAAaC,YAAb,CAA1B;;AACA,QAAMC,gBAAgB,GAAG,MAAM;AAC9B;AACA,UAAMC,SAAS,GAAG,+BACjBN,eADiB,EAEjBC,iBAFiB,CAAlB;;AAIA,QAAKK,SAAL,EAAiB;AAChBH,MAAAA,aAAa,CAAEN,SAAF,EAAaS,SAAb,CAAb;AACA;AACD,GATD;;AAWA,QAAMC,kBAAkB,GAAG,MAAM;AAChC,UAAMC,WAAW,GAAGR,eAAe,CAAE,CAAF,CAAf,CAAqBQ,WAAzC;;AACA,QAAK,CAAEA,WAAW,CAACC,MAAnB,EAA4B;AAC3B;AACA;;AACDN,IAAAA,aAAa,CAAEN,SAAF,EAAaW,WAAb,CAAb;AACA,GAND;;AAQA,MAAK,CAAEV,WAAF,IAAiB,CAAEC,aAAxB,EAAwC;AACvC,WAAO,IAAP;AACA;;AAED,SACC,qDACGD,WAAW,IACZ,4BAAC,oBAAD;AACC,IAAA,OAAO,EAAG,MAAM;AACfO,MAAAA,gBAAgB;AAChBH,MAAAA,OAAO;AACP;AAJF,KAMG,cAAI,OAAJ,EAAa,MAAb,CANH,CAFF,EAWGH,aAAa,IACd,4BAAC,oBAAD;AACC,IAAA,OAAO,EAAG,MAAM;AACfQ,MAAAA,kBAAkB;AAClBL,MAAAA,OAAO;AACP;AAJF,KAMG,cACD,SADC,EAED,4FAFC,CANH,CAZF,CADD;AA2BA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { _x } from '@wordpress/i18n';\nimport { switchToBlockType } from '@wordpress/blocks';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport useConvertToGroupButtonProps from './use-convert-to-group-button-props';\n\nfunction ConvertToGroupButton( {\n\tclientIds,\n\tisGroupable,\n\tisUngroupable,\n\tblocksSelection,\n\tgroupingBlockName,\n\tonClose = () => {},\n} ) {\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst onConvertToGroup = () => {\n\t\t// Activate the `transform` on the Grouping Block which does the conversion.\n\t\tconst newBlocks = switchToBlockType(\n\t\t\tblocksSelection,\n\t\t\tgroupingBlockName\n\t\t);\n\t\tif ( newBlocks ) {\n\t\t\treplaceBlocks( clientIds, newBlocks );\n\t\t}\n\t};\n\n\tconst onConvertFromGroup = () => {\n\t\tconst innerBlocks = blocksSelection[ 0 ].innerBlocks;\n\t\tif ( ! innerBlocks.length ) {\n\t\t\treturn;\n\t\t}\n\t\treplaceBlocks( clientIds, innerBlocks );\n\t};\n\n\tif ( ! isGroupable && ! isUngroupable ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isGroupable && (\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonConvertToGroup();\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ _x( 'Group', 'verb' ) }\n\t\t\t\t</MenuItem>\n\t\t\t) }\n\t\t\t{ isUngroupable && (\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonConvertFromGroup();\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ _x(\n\t\t\t\t\t\t'Ungroup',\n\t\t\t\t\t\t'Ungrouping blocks from within a Group block back into individual blocks within the Editor '\n\t\t\t\t\t) }\n\t\t\t\t</MenuItem>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport { useConvertToGroupButtonProps, ConvertToGroupButton };\n"]}
@@ -69,10 +69,8 @@ function useConvertToGroupButtonProps() {
69
69
  const isSingleGroupingBlock = _blocksSelection.length === 1 && ((_blocksSelection$ = _blocksSelection[0]) === null || _blocksSelection$ === void 0 ? void 0 : _blocksSelection$.name) === _groupingBlockName; // Do we have
70
70
  // 1. Grouping block available to be inserted?
71
71
  // 2. One or more blocks selected
72
- // (we allow single Blocks to become groups unless
73
- // they are a soltiary group block themselves)
74
72
 
75
- const _isGroupable = groupingBlockAvailable && _blocksSelection.length && !isSingleGroupingBlock; // Do we have a single Group Block selected and does that group have inner blocks?
73
+ const _isGroupable = groupingBlockAvailable && _blocksSelection.length; // Do we have a single Group Block selected and does that group have inner blocks?
76
74
 
77
75
 
78
76
  const _isUngroupable = isSingleGroupingBlock && !!_blocksSelection[0].innerBlocks.length;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js"],"names":["useConvertToGroupButtonProps","clientIds","isGroupable","isUngroupable","blocksSelection","groupingBlockName","select","getBlockRootClientId","getBlocksByClientId","canInsertBlockType","getSelectedBlockClientIds","blockEditorStore","getGroupingBlockName","blocksStore","_clientIds","_groupingBlockName","rootClientId","length","undefined","groupingBlockAvailable","_blocksSelection","isSingleGroupingBlock","name","_isGroupable","_isUngroupable","innerBlocks"],"mappings":";;;;;;;AAGA;;AACA;;AAKA;;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,4BAAT,GAAwC;AACtD,QAAM;AACLC,IAAAA,SADK;AAELC,IAAAA,WAFK;AAGLC,IAAAA,aAHK;AAILC,IAAAA,eAJK;AAKLC,IAAAA;AALK,MAMF,qBAAaC,MAAF,IAAc;AAAA;;AAC5B,UAAM;AACLC,MAAAA,oBADK;AAELC,MAAAA,mBAFK;AAGLC,MAAAA,kBAHK;AAILC,MAAAA;AAJK,QAKFJ,MAAM,CAAEK,YAAF,CALV;AAMA,UAAM;AAAEC,MAAAA;AAAF,QAA2BN,MAAM,CAAEO,aAAF,CAAvC;;AAEA,UAAMC,UAAU,GAAGJ,yBAAyB,EAA5C;;AACA,UAAMK,kBAAkB,GAAGH,oBAAoB,EAA/C;;AAEA,UAAMI,YAAY,GAAG,CAAC,EAAEF,UAAF,aAAEA,UAAF,eAAEA,UAAU,CAAEG,MAAd,CAAD,GAClBV,oBAAoB,CAAEO,UAAU,CAAE,CAAF,CAAZ,CADF,GAElBI,SAFH;AAIA,UAAMC,sBAAsB,GAAGV,kBAAkB,CAChDM,kBADgD,EAEhDC,YAFgD,CAAjD;;AAKA,UAAMI,gBAAgB,GAAGZ,mBAAmB,CAAEM,UAAF,CAA5C;;AAEA,UAAMO,qBAAqB,GAC1BD,gBAAgB,CAACH,MAAjB,KAA4B,CAA5B,IACA,sBAAAG,gBAAgB,CAAE,CAAF,CAAhB,wEAAuBE,IAAvB,MAAgCP,kBAFjC,CAvB4B,CA2B5B;AACA;AACA;AACA;AACA;;AACA,UAAMQ,YAAY,GACjBJ,sBAAsB,IACtBC,gBAAgB,CAACH,MADjB,IAEA,CAAEI,qBAHH,CAhC4B,CAqC5B;;;AACA,UAAMG,cAAc,GACnBH,qBAAqB,IACrB,CAAC,CAAED,gBAAgB,CAAE,CAAF,CAAhB,CAAsBK,WAAtB,CAAkCR,MAFtC;;AAGA,WAAO;AACNhB,MAAAA,SAAS,EAAEa,UADL;AAENZ,MAAAA,WAAW,EAAEqB,YAFP;AAGNpB,MAAAA,aAAa,EAAEqB,cAHT;AAINpB,MAAAA,eAAe,EAAEgB,gBAJX;AAKNf,MAAAA,iBAAiB,EAAEU;AALb,KAAP;AAOA,GAhDG,EAgDD,EAhDC,CANJ;AAuDA,SAAO;AACNd,IAAAA,SADM;AAENC,IAAAA,WAFM;AAGNC,IAAAA,aAHM;AAINC,IAAAA,eAJM;AAKNC,IAAAA;AALM,GAAP;AAOA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Contains the properties `ConvertToGroupButton` component needs.\n *\n * @typedef {Object} ConvertToGroupButtonProps\n * @property {string[]} clientIds An array of the selected client ids.\n * @property {boolean} isGroupable Indicates if the selected blocks can be grouped.\n * @property {boolean} isUngroupable Indicates if the selected blocks can be ungrouped.\n * @property {WPBlock[]} blocksSelection An array of the selected blocks.\n * @property {string} groupingBlockName The name of block used for handling grouping interactions.\n */\n\n/**\n * Returns the properties `ConvertToGroupButton` component needs to work properly.\n * It is used in `BlockSettingsMenuControls` to know if `ConvertToGroupButton`\n * should be rendered, to avoid ending up with an empty MenuGroup.\n *\n * @return {ConvertToGroupButtonProps} Returns the properties needed by `ConvertToGroupButton`.\n */\nexport default function useConvertToGroupButtonProps() {\n\tconst {\n\t\tclientIds,\n\t\tisGroupable,\n\t\tisUngroupable,\n\t\tblocksSelection,\n\t\tgroupingBlockName,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlocksByClientId,\n\t\t\tcanInsertBlockType,\n\t\t\tgetSelectedBlockClientIds,\n\t\t} = select( blockEditorStore );\n\t\tconst { getGroupingBlockName } = select( blocksStore );\n\n\t\tconst _clientIds = getSelectedBlockClientIds();\n\t\tconst _groupingBlockName = getGroupingBlockName();\n\n\t\tconst rootClientId = !! _clientIds?.length\n\t\t\t? getBlockRootClientId( _clientIds[ 0 ] )\n\t\t\t: undefined;\n\n\t\tconst groupingBlockAvailable = canInsertBlockType(\n\t\t\t_groupingBlockName,\n\t\t\trootClientId\n\t\t);\n\n\t\tconst _blocksSelection = getBlocksByClientId( _clientIds );\n\n\t\tconst isSingleGroupingBlock =\n\t\t\t_blocksSelection.length === 1 &&\n\t\t\t_blocksSelection[ 0 ]?.name === _groupingBlockName;\n\n\t\t// Do we have\n\t\t// 1. Grouping block available to be inserted?\n\t\t// 2. One or more blocks selected\n\t\t// (we allow single Blocks to become groups unless\n\t\t// they are a soltiary group block themselves)\n\t\tconst _isGroupable =\n\t\t\tgroupingBlockAvailable &&\n\t\t\t_blocksSelection.length &&\n\t\t\t! isSingleGroupingBlock;\n\n\t\t// Do we have a single Group Block selected and does that group have inner blocks?\n\t\tconst _isUngroupable =\n\t\t\tisSingleGroupingBlock &&\n\t\t\t!! _blocksSelection[ 0 ].innerBlocks.length;\n\t\treturn {\n\t\t\tclientIds: _clientIds,\n\t\t\tisGroupable: _isGroupable,\n\t\t\tisUngroupable: _isUngroupable,\n\t\t\tblocksSelection: _blocksSelection,\n\t\t\tgroupingBlockName: _groupingBlockName,\n\t\t};\n\t}, [] );\n\treturn {\n\t\tclientIds,\n\t\tisGroupable,\n\t\tisUngroupable,\n\t\tblocksSelection,\n\t\tgroupingBlockName,\n\t};\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js"],"names":["useConvertToGroupButtonProps","clientIds","isGroupable","isUngroupable","blocksSelection","groupingBlockName","select","getBlockRootClientId","getBlocksByClientId","canInsertBlockType","getSelectedBlockClientIds","blockEditorStore","getGroupingBlockName","blocksStore","_clientIds","_groupingBlockName","rootClientId","length","undefined","groupingBlockAvailable","_blocksSelection","isSingleGroupingBlock","name","_isGroupable","_isUngroupable","innerBlocks"],"mappings":";;;;;;;AAGA;;AACA;;AAKA;;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,4BAAT,GAAwC;AACtD,QAAM;AACLC,IAAAA,SADK;AAELC,IAAAA,WAFK;AAGLC,IAAAA,aAHK;AAILC,IAAAA,eAJK;AAKLC,IAAAA;AALK,MAMF,qBAAaC,MAAF,IAAc;AAAA;;AAC5B,UAAM;AACLC,MAAAA,oBADK;AAELC,MAAAA,mBAFK;AAGLC,MAAAA,kBAHK;AAILC,MAAAA;AAJK,QAKFJ,MAAM,CAAEK,YAAF,CALV;AAMA,UAAM;AAAEC,MAAAA;AAAF,QAA2BN,MAAM,CAAEO,aAAF,CAAvC;;AAEA,UAAMC,UAAU,GAAGJ,yBAAyB,EAA5C;;AACA,UAAMK,kBAAkB,GAAGH,oBAAoB,EAA/C;;AAEA,UAAMI,YAAY,GAAG,CAAC,EAAEF,UAAF,aAAEA,UAAF,eAAEA,UAAU,CAAEG,MAAd,CAAD,GAClBV,oBAAoB,CAAEO,UAAU,CAAE,CAAF,CAAZ,CADF,GAElBI,SAFH;AAIA,UAAMC,sBAAsB,GAAGV,kBAAkB,CAChDM,kBADgD,EAEhDC,YAFgD,CAAjD;;AAKA,UAAMI,gBAAgB,GAAGZ,mBAAmB,CAAEM,UAAF,CAA5C;;AAEA,UAAMO,qBAAqB,GAC1BD,gBAAgB,CAACH,MAAjB,KAA4B,CAA5B,IACA,sBAAAG,gBAAgB,CAAE,CAAF,CAAhB,wEAAuBE,IAAvB,MAAgCP,kBAFjC,CAvB4B,CA2B5B;AACA;AACA;;AACA,UAAMQ,YAAY,GAAGJ,sBAAsB,IAAIC,gBAAgB,CAACH,MAAhE,CA9B4B,CAgC5B;;;AACA,UAAMO,cAAc,GACnBH,qBAAqB,IACrB,CAAC,CAAED,gBAAgB,CAAE,CAAF,CAAhB,CAAsBK,WAAtB,CAAkCR,MAFtC;;AAGA,WAAO;AACNhB,MAAAA,SAAS,EAAEa,UADL;AAENZ,MAAAA,WAAW,EAAEqB,YAFP;AAGNpB,MAAAA,aAAa,EAAEqB,cAHT;AAINpB,MAAAA,eAAe,EAAEgB,gBAJX;AAKNf,MAAAA,iBAAiB,EAAEU;AALb,KAAP;AAOA,GA3CG,EA2CD,EA3CC,CANJ;AAkDA,SAAO;AACNd,IAAAA,SADM;AAENC,IAAAA,WAFM;AAGNC,IAAAA,aAHM;AAINC,IAAAA,eAJM;AAKNC,IAAAA;AALM,GAAP;AAOA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Contains the properties `ConvertToGroupButton` component needs.\n *\n * @typedef {Object} ConvertToGroupButtonProps\n * @property {string[]} clientIds An array of the selected client ids.\n * @property {boolean} isGroupable Indicates if the selected blocks can be grouped.\n * @property {boolean} isUngroupable Indicates if the selected blocks can be ungrouped.\n * @property {WPBlock[]} blocksSelection An array of the selected blocks.\n * @property {string} groupingBlockName The name of block used for handling grouping interactions.\n */\n\n/**\n * Returns the properties `ConvertToGroupButton` component needs to work properly.\n * It is used in `BlockSettingsMenuControls` to know if `ConvertToGroupButton`\n * should be rendered, to avoid ending up with an empty MenuGroup.\n *\n * @return {ConvertToGroupButtonProps} Returns the properties needed by `ConvertToGroupButton`.\n */\nexport default function useConvertToGroupButtonProps() {\n\tconst {\n\t\tclientIds,\n\t\tisGroupable,\n\t\tisUngroupable,\n\t\tblocksSelection,\n\t\tgroupingBlockName,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlocksByClientId,\n\t\t\tcanInsertBlockType,\n\t\t\tgetSelectedBlockClientIds,\n\t\t} = select( blockEditorStore );\n\t\tconst { getGroupingBlockName } = select( blocksStore );\n\n\t\tconst _clientIds = getSelectedBlockClientIds();\n\t\tconst _groupingBlockName = getGroupingBlockName();\n\n\t\tconst rootClientId = !! _clientIds?.length\n\t\t\t? getBlockRootClientId( _clientIds[ 0 ] )\n\t\t\t: undefined;\n\n\t\tconst groupingBlockAvailable = canInsertBlockType(\n\t\t\t_groupingBlockName,\n\t\t\trootClientId\n\t\t);\n\n\t\tconst _blocksSelection = getBlocksByClientId( _clientIds );\n\n\t\tconst isSingleGroupingBlock =\n\t\t\t_blocksSelection.length === 1 &&\n\t\t\t_blocksSelection[ 0 ]?.name === _groupingBlockName;\n\n\t\t// Do we have\n\t\t// 1. Grouping block available to be inserted?\n\t\t// 2. One or more blocks selected\n\t\tconst _isGroupable = groupingBlockAvailable && _blocksSelection.length;\n\n\t\t// Do we have a single Group Block selected and does that group have inner blocks?\n\t\tconst _isUngroupable =\n\t\t\tisSingleGroupingBlock &&\n\t\t\t!! _blocksSelection[ 0 ].innerBlocks.length;\n\t\treturn {\n\t\t\tclientIds: _clientIds,\n\t\t\tisGroupable: _isGroupable,\n\t\t\tisUngroupable: _isUngroupable,\n\t\t\tblocksSelection: _blocksSelection,\n\t\t\tgroupingBlockName: _groupingBlockName,\n\t\t};\n\t}, [] );\n\treturn {\n\t\tclientIds,\n\t\tisGroupable,\n\t\tisUngroupable,\n\t\tblocksSelection,\n\t\tgroupingBlockName,\n\t};\n}\n"]}
@@ -21,7 +21,7 @@ var _notices = require("@wordpress/notices");
21
21
 
22
22
  var _compose = require("@wordpress/compose");
23
23
 
24
- var _getPasteEventData = require("../../utils/get-paste-event-data");
24
+ var _pasting = require("../../utils/pasting");
25
25
 
26
26
  var _store = require("../../store");
27
27
 
@@ -126,7 +126,7 @@ function useClipboardHandler() {
126
126
  removeBlocks(selectedBlockClientIds);
127
127
  } else if (event.type === 'paste') {
128
128
  if (eventDefaultPrevented) {
129
- // This was likely already handled in rich-text/use-paste-handler.js
129
+ // This was likely already handled in rich-text/use-paste-handler.js.
130
130
  return;
131
131
  }
132
132
 
@@ -136,7 +136,7 @@ function useClipboardHandler() {
136
136
  const {
137
137
  plainText,
138
138
  html
139
- } = (0, _getPasteEventData.getPasteEventData)(event);
139
+ } = (0, _pasting.getPasteEventData)(event);
140
140
  const blocks = (0, _blocks.pasteHandler)({
141
141
  HTML: html,
142
142
  plainText,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/copy-handler/index.js"],"names":["useNotifyCopy","getBlockName","blockEditorStore","getBlockType","blocksStore","createSuccessNotice","noticesStore","eventType","selectedBlockClientIds","notice","length","clientId","title","type","useClipboardHandler","getBlocksByClientId","getSelectedBlockClientIds","hasMultiSelection","getSettings","flashBlock","removeBlocks","replaceBlocks","notifyCopy","node","handler","event","target","ownerDocument","hasSelection","contains","activeElement","eventDefaultPrevented","defaultPrevented","preventDefault","blocks","serialized","clipboardData","setData","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","plainText","html","HTML","mode","addEventListener","removeEventListener","CopyHandler","children"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport {\n\tserialize,\n\tpasteHandler,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tdocumentHasSelection,\n\tdocumentHasUncollapsedSelection,\n} from '@wordpress/dom';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getPasteEventData } from '../../utils/get-paste-event-data';\nimport { store as blockEditorStore } from '../../store';\n\nexport function useNotifyCopy() {\n\tconst { getBlockName } = useSelect( blockEditorStore );\n\tconst { getBlockType } = useSelect( blocksStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\treturn useCallback( ( eventType, selectedBlockClientIds ) => {\n\t\tlet notice = '';\n\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\tconst clientId = selectedBlockClientIds[ 0 ];\n\t\t\tconst title = getBlockType( getBlockName( clientId ) )?.title;\n\t\t\tnotice =\n\t\t\t\teventType === 'copy'\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: Name of the block being copied, e.g. \"Paragraph\".\n\t\t\t\t\t\t\t__( 'Copied \"%s\" to clipboard.' ),\n\t\t\t\t\t\t\ttitle\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: Name of the block being cut, e.g. \"Paragraph\".\n\t\t\t\t\t\t\t__( 'Moved \"%s\" to clipboard.' ),\n\t\t\t\t\t\t\ttitle\n\t\t\t\t\t );\n\t\t} else {\n\t\t\tnotice =\n\t\t\t\teventType === 'copy'\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: %d: Number of blocks being copied.\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'Copied %d block to clipboard.',\n\t\t\t\t\t\t\t\t'Copied %d blocks to clipboard.',\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: %d: Number of blocks being cut.\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'Moved %d block to clipboard.',\n\t\t\t\t\t\t\t\t'Moved %d blocks to clipboard.',\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t );\n\t\t}\n\t\tcreateSuccessNotice( notice, {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}, [] );\n}\n\nexport function useClipboardHandler() {\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\tgetSettings,\n\t} = useSelect( blockEditorStore );\n\tconst { flashBlock, removeBlocks, replaceBlocks } = useDispatch(\n\t\tblockEditorStore\n\t);\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction handler( event ) {\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Always handle multiple selected blocks.\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tconst { target } = event;\n\t\t\t\tconst { ownerDocument } = target;\n\t\t\t\t// If copying, only consider actual text selection as selection.\n\t\t\t\t// Otherwise, any focus on an input field is considered.\n\t\t\t\tconst hasSelection =\n\t\t\t\t\tevent.type === 'copy' || event.type === 'cut'\n\t\t\t\t\t\t? documentHasUncollapsedSelection( ownerDocument )\n\t\t\t\t\t\t: documentHasSelection( ownerDocument );\n\n\t\t\t\t// Let native copy behaviour take over in input fields.\n\t\t\t\tif ( hasSelection ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( ! node.contains( event.target.ownerDocument.activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst eventDefaultPrevented = event.defaultPrevented;\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\tconst blocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\tconst serialized = serialize( blocks );\n\n\t\t\t\tevent.clipboardData.setData( 'text/plain', serialized );\n\t\t\t\tevent.clipboardData.setData( 'text/html', serialized );\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\tremoveBlocks( selectedBlockClientIds );\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tif ( eventDefaultPrevented ) {\n\t\t\t\t\t// This was likely already handled in rich-text/use-paste-handler.js\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML: canUserUseUnfilteredHTML,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst { plainText, html } = getPasteEventData( event );\n\t\t\t\tconst blocks = pasteHandler( {\n\t\t\t\t\tHTML: html,\n\t\t\t\t\tplainText,\n\t\t\t\t\tmode: 'BLOCKS',\n\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} );\n\n\t\t\t\treplaceBlocks(\n\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\tblocks,\n\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t-1\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n\nfunction CopyHandler( { children } ) {\n\treturn <div ref={ useClipboardHandler() }>{ children }</div>;\n}\n\nexport default CopyHandler;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/copy-handler/index.js"],"names":["useNotifyCopy","getBlockName","blockEditorStore","getBlockType","blocksStore","createSuccessNotice","noticesStore","eventType","selectedBlockClientIds","notice","length","clientId","title","type","useClipboardHandler","getBlocksByClientId","getSelectedBlockClientIds","hasMultiSelection","getSettings","flashBlock","removeBlocks","replaceBlocks","notifyCopy","node","handler","event","target","ownerDocument","hasSelection","contains","activeElement","eventDefaultPrevented","defaultPrevented","preventDefault","blocks","serialized","clipboardData","setData","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","plainText","html","HTML","mode","addEventListener","removeEventListener","CopyHandler","children"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport {\n\tserialize,\n\tpasteHandler,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tdocumentHasSelection,\n\tdocumentHasUncollapsedSelection,\n} from '@wordpress/dom';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getPasteEventData } from '../../utils/pasting';\nimport { store as blockEditorStore } from '../../store';\n\nexport function useNotifyCopy() {\n\tconst { getBlockName } = useSelect( blockEditorStore );\n\tconst { getBlockType } = useSelect( blocksStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\treturn useCallback( ( eventType, selectedBlockClientIds ) => {\n\t\tlet notice = '';\n\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\tconst clientId = selectedBlockClientIds[ 0 ];\n\t\t\tconst title = getBlockType( getBlockName( clientId ) )?.title;\n\t\t\tnotice =\n\t\t\t\teventType === 'copy'\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: Name of the block being copied, e.g. \"Paragraph\".\n\t\t\t\t\t\t\t__( 'Copied \"%s\" to clipboard.' ),\n\t\t\t\t\t\t\ttitle\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: Name of the block being cut, e.g. \"Paragraph\".\n\t\t\t\t\t\t\t__( 'Moved \"%s\" to clipboard.' ),\n\t\t\t\t\t\t\ttitle\n\t\t\t\t\t );\n\t\t} else {\n\t\t\tnotice =\n\t\t\t\teventType === 'copy'\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: %d: Number of blocks being copied.\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'Copied %d block to clipboard.',\n\t\t\t\t\t\t\t\t'Copied %d blocks to clipboard.',\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: %d: Number of blocks being cut.\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'Moved %d block to clipboard.',\n\t\t\t\t\t\t\t\t'Moved %d blocks to clipboard.',\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t );\n\t\t}\n\t\tcreateSuccessNotice( notice, {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}, [] );\n}\n\nexport function useClipboardHandler() {\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\tgetSettings,\n\t} = useSelect( blockEditorStore );\n\tconst { flashBlock, removeBlocks, replaceBlocks } = useDispatch(\n\t\tblockEditorStore\n\t);\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction handler( event ) {\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Always handle multiple selected blocks.\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tconst { target } = event;\n\t\t\t\tconst { ownerDocument } = target;\n\t\t\t\t// If copying, only consider actual text selection as selection.\n\t\t\t\t// Otherwise, any focus on an input field is considered.\n\t\t\t\tconst hasSelection =\n\t\t\t\t\tevent.type === 'copy' || event.type === 'cut'\n\t\t\t\t\t\t? documentHasUncollapsedSelection( ownerDocument )\n\t\t\t\t\t\t: documentHasSelection( ownerDocument );\n\n\t\t\t\t// Let native copy behaviour take over in input fields.\n\t\t\t\tif ( hasSelection ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( ! node.contains( event.target.ownerDocument.activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst eventDefaultPrevented = event.defaultPrevented;\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\tconst blocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\tconst serialized = serialize( blocks );\n\n\t\t\t\tevent.clipboardData.setData( 'text/plain', serialized );\n\t\t\t\tevent.clipboardData.setData( 'text/html', serialized );\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\tremoveBlocks( selectedBlockClientIds );\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tif ( eventDefaultPrevented ) {\n\t\t\t\t\t// This was likely already handled in rich-text/use-paste-handler.js.\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML: canUserUseUnfilteredHTML,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst { plainText, html } = getPasteEventData( event );\n\t\t\t\tconst blocks = pasteHandler( {\n\t\t\t\t\tHTML: html,\n\t\t\t\t\tplainText,\n\t\t\t\t\tmode: 'BLOCKS',\n\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} );\n\n\t\t\t\treplaceBlocks(\n\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\tblocks,\n\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t-1\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n\nfunction CopyHandler( { children } ) {\n\treturn <div ref={ useClipboardHandler() }>{ children }</div>;\n}\n\nexport default CopyHandler;\n"]}
@@ -97,14 +97,14 @@ var _default = function _default() {
97
97
 
98
98
  const didAttributesChange = (customFontSizeAttributeName, fontSizeAttributeName) => {
99
99
  if (previousState[fontSizeAttributeName]) {
100
- // if new font size is name compare with the previous slug
100
+ // If new font size is name compare with the previous slug.
101
101
  if (attributes[fontSizeAttributeName]) {
102
102
  return attributes[fontSizeAttributeName] !== previousState[fontSizeAttributeName].slug;
103
- } // if font size is not named, update when the font size value changes.
103
+ } // If font size is not named, update when the font size value changes.
104
104
 
105
105
 
106
106
  return previousState[fontSizeAttributeName].size !== attributes[customFontSizeAttributeName];
107
- } // in this case we need to build the font size object
107
+ } // In this case we need to build the font size object.
108
108
 
109
109
 
110
110
  return true;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/font-sizes/with-font-sizes.js"],"names":["DEFAULT_FONT_SIZES","fontSizeNames","fontSizeAttributeNames","fontSizeAttributeNamesAccumulator","fontSizeAttributeName","WrappedComponent","props","fontSizes","Component","constructor","setters","createSetters","state","settersAccumulator","customFontSizeAttributeName","upperFirstFontSizeAttributeName","createSetFontSize","fontSizeValue","fontSizeObject","size","Number","setAttributes","slug","undefined","getDerivedStateFromProps","previousState","attributes","didAttributesChange","newState","newStateAccumulator","fontSizeAttributeValue","class","render"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find, pickBy, reduce, some, upperFirst } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent, compose } from '@wordpress/compose';\nimport { Component } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getFontSize, getFontSizeClass } from './utils';\nimport useSetting from '../use-setting';\n\nconst DEFAULT_FONT_SIZES = [];\n\n/**\n * Higher-order component, which handles font size logic for class generation,\n * font size value retrieval, and font size change handling.\n *\n * @param {...(Object|string)} fontSizeNames The arguments should all be strings.\n * Each string contains the font size\n * attribute name e.g: 'fontSize'.\n *\n * @return {Function} Higher-order component.\n */\nexport default ( ...fontSizeNames ) => {\n\t/*\n\t * Computes an object whose key is the font size attribute name as passed in the array,\n\t * and the value is the custom font size attribute name.\n\t * Custom font size is automatically compted by appending custom followed by the font size attribute name in with the first letter capitalized.\n\t */\n\tconst fontSizeAttributeNames = reduce(\n\t\tfontSizeNames,\n\t\t( fontSizeAttributeNamesAccumulator, fontSizeAttributeName ) => {\n\t\t\tfontSizeAttributeNamesAccumulator[\n\t\t\t\tfontSizeAttributeName\n\t\t\t] = `custom${ upperFirst( fontSizeAttributeName ) }`;\n\t\t\treturn fontSizeAttributeNamesAccumulator;\n\t\t},\n\t\t{}\n\t);\n\n\treturn createHigherOrderComponent(\n\t\tcompose( [\n\t\t\tcreateHigherOrderComponent(\n\t\t\t\t( WrappedComponent ) => ( props ) => {\n\t\t\t\t\tconst fontSizes =\n\t\t\t\t\t\tuseSetting( 'typography.fontSizes' ) ||\n\t\t\t\t\t\tDEFAULT_FONT_SIZES;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\tfontSizes={ fontSizes }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\t'withFontSizes'\n\t\t\t),\n\t\t\t( WrappedComponent ) => {\n\t\t\t\treturn class extends Component {\n\t\t\t\t\tconstructor( props ) {\n\t\t\t\t\t\tsuper( props );\n\n\t\t\t\t\t\tthis.setters = this.createSetters();\n\n\t\t\t\t\t\tthis.state = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSetters() {\n\t\t\t\t\t\treturn reduce(\n\t\t\t\t\t\t\tfontSizeAttributeNames,\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tsettersAccumulator,\n\t\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tconst upperFirstFontSizeAttributeName = upperFirst(\n\t\t\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tsettersAccumulator[\n\t\t\t\t\t\t\t\t\t`set${ upperFirstFontSizeAttributeName }`\n\t\t\t\t\t\t\t\t] = this.createSetFontSize(\n\t\t\t\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn settersAccumulator;\n\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\n\t\t\t\t\tcreateSetFontSize(\n\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn ( fontSizeValue ) => {\n\t\t\t\t\t\t\tconst fontSizeObject = find( this.props.fontSizes, {\n\t\t\t\t\t\t\t\tsize: Number( fontSizeValue ),\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tthis.props.setAttributes( {\n\t\t\t\t\t\t\t\t[ fontSizeAttributeName ]:\n\t\t\t\t\t\t\t\t\tfontSizeObject && fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t? fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t[ customFontSizeAttributeName ]:\n\t\t\t\t\t\t\t\t\tfontSizeObject && fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t: fontSizeValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tstatic getDerivedStateFromProps(\n\t\t\t\t\t\t{ attributes, fontSizes },\n\t\t\t\t\t\tpreviousState\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst didAttributesChange = (\n\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\tif ( previousState[ fontSizeAttributeName ] ) {\n\t\t\t\t\t\t\t\t// if new font size is name compare with the previous slug\n\t\t\t\t\t\t\t\tif ( attributes[ fontSizeAttributeName ] ) {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\tattributes[ fontSizeAttributeName ] !==\n\t\t\t\t\t\t\t\t\t\tpreviousState[ fontSizeAttributeName ]\n\t\t\t\t\t\t\t\t\t\t\t.slug\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\t// if font size is not named, update when the font size value changes.\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tpreviousState[ fontSizeAttributeName ]\n\t\t\t\t\t\t\t\t\t\t.size !==\n\t\t\t\t\t\t\t\t\tattributes[ customFontSizeAttributeName ]\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// in this case we need to build the font size object\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! some(\n\t\t\t\t\t\t\t\tfontSizeAttributeNames,\n\t\t\t\t\t\t\t\tdidAttributesChange\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst newState = reduce(\n\t\t\t\t\t\t\tpickBy(\n\t\t\t\t\t\t\t\tfontSizeAttributeNames,\n\t\t\t\t\t\t\t\tdidAttributesChange\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tnewStateAccumulator,\n\t\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tconst fontSizeAttributeValue =\n\t\t\t\t\t\t\t\t\tattributes[ fontSizeAttributeName ];\n\t\t\t\t\t\t\t\tconst fontSizeObject = getFontSize(\n\t\t\t\t\t\t\t\t\tfontSizes,\n\t\t\t\t\t\t\t\t\tfontSizeAttributeValue,\n\t\t\t\t\t\t\t\t\tattributes[ customFontSizeAttributeName ]\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tnewStateAccumulator[ fontSizeAttributeName ] = {\n\t\t\t\t\t\t\t\t\t...fontSizeObject,\n\t\t\t\t\t\t\t\t\tclass: getFontSizeClass(\n\t\t\t\t\t\t\t\t\t\tfontSizeAttributeValue\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\treturn newStateAccumulator;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...previousState,\n\t\t\t\t\t\t\t...newState,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\trender() {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t\t...this.props,\n\t\t\t\t\t\t\t\t\tfontSizes: undefined,\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t...this.setters,\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};\n\t\t\t},\n\t\t] ),\n\t\t'withFontSizes'\n\t);\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/font-sizes/with-font-sizes.js"],"names":["DEFAULT_FONT_SIZES","fontSizeNames","fontSizeAttributeNames","fontSizeAttributeNamesAccumulator","fontSizeAttributeName","WrappedComponent","props","fontSizes","Component","constructor","setters","createSetters","state","settersAccumulator","customFontSizeAttributeName","upperFirstFontSizeAttributeName","createSetFontSize","fontSizeValue","fontSizeObject","size","Number","setAttributes","slug","undefined","getDerivedStateFromProps","previousState","attributes","didAttributesChange","newState","newStateAccumulator","fontSizeAttributeValue","class","render"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find, pickBy, reduce, some, upperFirst } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent, compose } from '@wordpress/compose';\nimport { Component } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getFontSize, getFontSizeClass } from './utils';\nimport useSetting from '../use-setting';\n\nconst DEFAULT_FONT_SIZES = [];\n\n/**\n * Higher-order component, which handles font size logic for class generation,\n * font size value retrieval, and font size change handling.\n *\n * @param {...(Object|string)} fontSizeNames The arguments should all be strings.\n * Each string contains the font size\n * attribute name e.g: 'fontSize'.\n *\n * @return {Function} Higher-order component.\n */\nexport default ( ...fontSizeNames ) => {\n\t/*\n\t * Computes an object whose key is the font size attribute name as passed in the array,\n\t * and the value is the custom font size attribute name.\n\t * Custom font size is automatically compted by appending custom followed by the font size attribute name in with the first letter capitalized.\n\t */\n\tconst fontSizeAttributeNames = reduce(\n\t\tfontSizeNames,\n\t\t( fontSizeAttributeNamesAccumulator, fontSizeAttributeName ) => {\n\t\t\tfontSizeAttributeNamesAccumulator[\n\t\t\t\tfontSizeAttributeName\n\t\t\t] = `custom${ upperFirst( fontSizeAttributeName ) }`;\n\t\t\treturn fontSizeAttributeNamesAccumulator;\n\t\t},\n\t\t{}\n\t);\n\n\treturn createHigherOrderComponent(\n\t\tcompose( [\n\t\t\tcreateHigherOrderComponent(\n\t\t\t\t( WrappedComponent ) => ( props ) => {\n\t\t\t\t\tconst fontSizes =\n\t\t\t\t\t\tuseSetting( 'typography.fontSizes' ) ||\n\t\t\t\t\t\tDEFAULT_FONT_SIZES;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\tfontSizes={ fontSizes }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\t'withFontSizes'\n\t\t\t),\n\t\t\t( WrappedComponent ) => {\n\t\t\t\treturn class extends Component {\n\t\t\t\t\tconstructor( props ) {\n\t\t\t\t\t\tsuper( props );\n\n\t\t\t\t\t\tthis.setters = this.createSetters();\n\n\t\t\t\t\t\tthis.state = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSetters() {\n\t\t\t\t\t\treturn reduce(\n\t\t\t\t\t\t\tfontSizeAttributeNames,\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tsettersAccumulator,\n\t\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tconst upperFirstFontSizeAttributeName = upperFirst(\n\t\t\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tsettersAccumulator[\n\t\t\t\t\t\t\t\t\t`set${ upperFirstFontSizeAttributeName }`\n\t\t\t\t\t\t\t\t] = this.createSetFontSize(\n\t\t\t\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn settersAccumulator;\n\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\n\t\t\t\t\tcreateSetFontSize(\n\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn ( fontSizeValue ) => {\n\t\t\t\t\t\t\tconst fontSizeObject = find( this.props.fontSizes, {\n\t\t\t\t\t\t\t\tsize: Number( fontSizeValue ),\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tthis.props.setAttributes( {\n\t\t\t\t\t\t\t\t[ fontSizeAttributeName ]:\n\t\t\t\t\t\t\t\t\tfontSizeObject && fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t? fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t[ customFontSizeAttributeName ]:\n\t\t\t\t\t\t\t\t\tfontSizeObject && fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t: fontSizeValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tstatic getDerivedStateFromProps(\n\t\t\t\t\t\t{ attributes, fontSizes },\n\t\t\t\t\t\tpreviousState\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst didAttributesChange = (\n\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\tif ( previousState[ fontSizeAttributeName ] ) {\n\t\t\t\t\t\t\t\t// If new font size is name compare with the previous slug.\n\t\t\t\t\t\t\t\tif ( attributes[ fontSizeAttributeName ] ) {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\tattributes[ fontSizeAttributeName ] !==\n\t\t\t\t\t\t\t\t\t\tpreviousState[ fontSizeAttributeName ]\n\t\t\t\t\t\t\t\t\t\t\t.slug\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\t// If font size is not named, update when the font size value changes.\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tpreviousState[ fontSizeAttributeName ]\n\t\t\t\t\t\t\t\t\t\t.size !==\n\t\t\t\t\t\t\t\t\tattributes[ customFontSizeAttributeName ]\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// In this case we need to build the font size object.\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! some(\n\t\t\t\t\t\t\t\tfontSizeAttributeNames,\n\t\t\t\t\t\t\t\tdidAttributesChange\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst newState = reduce(\n\t\t\t\t\t\t\tpickBy(\n\t\t\t\t\t\t\t\tfontSizeAttributeNames,\n\t\t\t\t\t\t\t\tdidAttributesChange\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tnewStateAccumulator,\n\t\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tconst fontSizeAttributeValue =\n\t\t\t\t\t\t\t\t\tattributes[ fontSizeAttributeName ];\n\t\t\t\t\t\t\t\tconst fontSizeObject = getFontSize(\n\t\t\t\t\t\t\t\t\tfontSizes,\n\t\t\t\t\t\t\t\t\tfontSizeAttributeValue,\n\t\t\t\t\t\t\t\t\tattributes[ customFontSizeAttributeName ]\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tnewStateAccumulator[ fontSizeAttributeName ] = {\n\t\t\t\t\t\t\t\t\t...fontSizeObject,\n\t\t\t\t\t\t\t\t\tclass: getFontSizeClass(\n\t\t\t\t\t\t\t\t\t\tfontSizeAttributeValue\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\treturn newStateAccumulator;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...previousState,\n\t\t\t\t\t\t\t...newState,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\trender() {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t\t...this.props,\n\t\t\t\t\t\t\t\t\tfontSizes: undefined,\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t...this.setters,\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};\n\t\t\t},\n\t\t] ),\n\t\t'withFontSizes'\n\t);\n};\n"]}
@@ -38,6 +38,10 @@ var _exportNames = {
38
38
  MEDIA_TYPE_AUDIO: true,
39
39
  MEDIA_TYPE_ANY: true,
40
40
  MediaUploadProgress: true,
41
+ MEDIA_UPLOAD_STATE_UPLOADING: true,
42
+ MEDIA_UPLOAD_STATE_SUCCEEDED: true,
43
+ MEDIA_UPLOAD_STATE_FAILED: true,
44
+ MEDIA_UPLOAD_STATE_RESET: true,
41
45
  BlockMediaUpdateProgress: true,
42
46
  URLInput: true,
43
47
  BlockInvalidWarning: true,
@@ -289,6 +293,30 @@ Object.defineProperty(exports, "MEDIA_TYPE_VIDEO", {
289
293
  return _mediaUpload.MEDIA_TYPE_VIDEO;
290
294
  }
291
295
  });
296
+ Object.defineProperty(exports, "MEDIA_UPLOAD_STATE_FAILED", {
297
+ enumerable: true,
298
+ get: function () {
299
+ return _mediaUploadProgress.MEDIA_UPLOAD_STATE_FAILED;
300
+ }
301
+ });
302
+ Object.defineProperty(exports, "MEDIA_UPLOAD_STATE_RESET", {
303
+ enumerable: true,
304
+ get: function () {
305
+ return _mediaUploadProgress.MEDIA_UPLOAD_STATE_RESET;
306
+ }
307
+ });
308
+ Object.defineProperty(exports, "MEDIA_UPLOAD_STATE_SUCCEEDED", {
309
+ enumerable: true,
310
+ get: function () {
311
+ return _mediaUploadProgress.MEDIA_UPLOAD_STATE_SUCCEEDED;
312
+ }
313
+ });
314
+ Object.defineProperty(exports, "MEDIA_UPLOAD_STATE_UPLOADING", {
315
+ enumerable: true,
316
+ get: function () {
317
+ return _mediaUploadProgress.MEDIA_UPLOAD_STATE_UPLOADING;
318
+ }
319
+ });
292
320
  Object.defineProperty(exports, "MediaPlaceholder", {
293
321
  enumerable: true,
294
322
  get: function () {
@@ -502,7 +530,7 @@ var _mediaPlaceholder = _interopRequireDefault(require("./media-placeholder"));
502
530
 
503
531
  var _mediaUpload = _interopRequireWildcard(require("./media-upload"));
504
532
 
505
- var _mediaUploadProgress = _interopRequireDefault(require("./media-upload-progress"));
533
+ var _mediaUploadProgress = _interopRequireWildcard(require("./media-upload-progress"));
506
534
 
507
535
  var _blockMediaUpdateProgress = _interopRequireDefault(require("./block-media-update-progress"));
508
536