@wordpress/block-editor 13.2.0 → 13.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +0 -1
  3. package/build/components/block-breadcrumb/index.js +12 -1
  4. package/build/components/block-breadcrumb/index.js.map +1 -1
  5. package/build/components/block-lock/toolbar.js +0 -1
  6. package/build/components/block-lock/toolbar.js.map +1 -1
  7. package/build/components/block-mover/button.js +1 -1
  8. package/build/components/block-mover/button.js.map +1 -1
  9. package/build/components/block-mover/index.js +1 -1
  10. package/build/components/block-mover/index.js.map +1 -1
  11. package/build/components/block-pattern-setup/setup-toolbar.js +2 -2
  12. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  13. package/build/components/block-patterns-paging/index.js +5 -7
  14. package/build/components/block-patterns-paging/index.js.map +1 -1
  15. package/build/components/block-quick-navigation/index.js +20 -17
  16. package/build/components/block-quick-navigation/index.js.map +1 -1
  17. package/build/components/block-rename/modal.js +4 -12
  18. package/build/components/block-rename/modal.js.map +1 -1
  19. package/build/components/block-toolbar/shuffle.js +1 -0
  20. package/build/components/block-toolbar/shuffle.js.map +1 -1
  21. package/build/components/block-tools/block-selection-button.js +7 -58
  22. package/build/components/block-tools/block-selection-button.js.map +1 -1
  23. package/build/components/block-tools/block-toolbar-breadcrumb.js +9 -2
  24. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  25. package/build/components/block-tools/index.js +14 -1
  26. package/build/components/block-tools/index.js.map +1 -1
  27. package/build/components/block-tools/use-show-block-tools.js +4 -2
  28. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  29. package/build/components/block-tools/zoom-out-mode-inserters.js +5 -4
  30. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  31. package/build/components/block-tools/zoom-out-popover.js +57 -0
  32. package/build/components/block-tools/zoom-out-popover.js.map +1 -0
  33. package/build/components/block-tools/zoom-out-toolbar.js +138 -0
  34. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -0
  35. package/build/components/button-block-appender/index.js +3 -1
  36. package/build/components/button-block-appender/index.js.map +1 -1
  37. package/build/components/child-layout-control/index.js +26 -18
  38. package/build/components/child-layout-control/index.js.map +1 -1
  39. package/build/components/date-format-picker/index.js +10 -1
  40. package/build/components/date-format-picker/index.js.map +1 -1
  41. package/build/components/dimensions-tool/index.js +6 -4
  42. package/build/components/dimensions-tool/index.js.map +1 -1
  43. package/build/components/font-appearance-control/index.js +26 -61
  44. package/build/components/font-appearance-control/index.js.map +1 -1
  45. package/build/components/global-styles/background-panel.js +178 -116
  46. package/build/components/global-styles/background-panel.js.map +1 -1
  47. package/build/components/global-styles/border-panel.js +2 -1
  48. package/build/components/global-styles/border-panel.js.map +1 -1
  49. package/build/components/global-styles/color-panel.js +2 -1
  50. package/build/components/global-styles/color-panel.js.map +1 -1
  51. package/build/components/global-styles/dimensions-panel.js +2 -1
  52. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  53. package/build/components/global-styles/filters-panel.js +2 -1
  54. package/build/components/global-styles/filters-panel.js.map +1 -1
  55. package/build/components/global-styles/hooks.js +8 -0
  56. package/build/components/global-styles/hooks.js.map +1 -1
  57. package/build/components/global-styles/image-settings-panel.js +2 -1
  58. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  59. package/build/components/global-styles/typography-panel.js +50 -12
  60. package/build/components/global-styles/typography-panel.js.map +1 -1
  61. package/build/components/global-styles/typography-utils.js +50 -0
  62. package/build/components/global-styles/typography-utils.js.map +1 -1
  63. package/build/components/global-styles/use-global-styles-output.js +23 -8
  64. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  65. package/build/components/global-styles/utils.js +17 -7
  66. package/build/components/global-styles/utils.js.map +1 -1
  67. package/build/components/grid/grid-item-movers.js +11 -14
  68. package/build/components/grid/grid-item-movers.js.map +1 -1
  69. package/build/components/grid/grid-item-resizer.js +2 -2
  70. package/build/components/grid/grid-item-resizer.js.map +1 -1
  71. package/build/components/grid/grid-visualizer.js +116 -36
  72. package/build/components/grid/grid-visualizer.js.map +1 -1
  73. package/build/components/grid/use-grid-layout-sync.js +29 -22
  74. package/build/components/grid/use-grid-layout-sync.js.map +1 -1
  75. package/build/components/inner-blocks/index.js +1 -1
  76. package/build/components/inner-blocks/index.js.map +1 -1
  77. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
  78. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  79. package/build/components/inserter/menu.js +26 -4
  80. package/build/components/inserter/menu.js.map +1 -1
  81. package/build/components/inserter/quick-inserter.js +2 -1
  82. package/build/components/inserter/quick-inserter.js.map +1 -1
  83. package/build/components/inspector-controls/block-support-tools-panel.js +2 -1
  84. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  85. package/build/components/link-control/link-preview.js +1 -1
  86. package/build/components/link-control/link-preview.js.map +1 -1
  87. package/build/components/media-placeholder/index.js +19 -23
  88. package/build/components/media-placeholder/index.js.map +1 -1
  89. package/build/components/navigable-toolbar/index.js +3 -1
  90. package/build/components/navigable-toolbar/index.js.map +1 -1
  91. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +5 -1
  92. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  93. package/build/components/tabbed-sidebar/index.js +66 -0
  94. package/build/components/tabbed-sidebar/index.js.map +1 -0
  95. package/build/components/url-popover/index.js +3 -0
  96. package/build/components/url-popover/index.js.map +1 -1
  97. package/build/hooks/background.js +26 -4
  98. package/build/hooks/background.js.map +1 -1
  99. package/build/hooks/block-hooks.js +11 -17
  100. package/build/hooks/block-hooks.js.map +1 -1
  101. package/build/hooks/block-style-variation.js +169 -4
  102. package/build/hooks/block-style-variation.js.map +1 -1
  103. package/build/hooks/duotone.js +16 -11
  104. package/build/hooks/duotone.js.map +1 -1
  105. package/build/hooks/grid-visualizer.js +65 -0
  106. package/build/hooks/grid-visualizer.js.map +1 -0
  107. package/build/hooks/index.js +15 -2
  108. package/build/hooks/index.js.map +1 -1
  109. package/build/hooks/layout-child.js +39 -22
  110. package/build/hooks/layout-child.js.map +1 -1
  111. package/build/hooks/position.js +2 -9
  112. package/build/hooks/position.js.map +1 -1
  113. package/build/hooks/use-bindings-attributes.js +16 -6
  114. package/build/hooks/use-bindings-attributes.js.map +1 -1
  115. package/build/hooks/utils.js +2 -0
  116. package/build/hooks/utils.js.map +1 -1
  117. package/build/layouts/constrained.js +44 -2
  118. package/build/layouts/constrained.js.map +1 -1
  119. package/build/layouts/grid.js +90 -51
  120. package/build/layouts/grid.js.map +1 -1
  121. package/build/private-apis.js +6 -1
  122. package/build/private-apis.js.map +1 -1
  123. package/build/store/defaults.js +0 -2
  124. package/build/store/defaults.js.map +1 -1
  125. package/build/store/defaults.native.js +0 -3
  126. package/build/store/defaults.native.js.map +1 -1
  127. package/build/store/private-keys.js +2 -1
  128. package/build/store/private-keys.js.map +1 -1
  129. package/build/utils/format-font-style.js +45 -0
  130. package/build/utils/format-font-style.js.map +1 -0
  131. package/build/utils/format-font-weight.js +68 -0
  132. package/build/utils/format-font-weight.js.map +1 -0
  133. package/build/utils/get-editor-region.js +34 -0
  134. package/build/utils/get-editor-region.js.map +1 -0
  135. package/build/utils/get-font-styles-and-weights.js +167 -0
  136. package/build/utils/get-font-styles-and-weights.js.map +1 -0
  137. package/build/utils/pasting.js +5 -13
  138. package/build/utils/pasting.js.map +1 -1
  139. package/build-module/components/block-breadcrumb/index.js +12 -1
  140. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  141. package/build-module/components/block-lock/toolbar.js +0 -1
  142. package/build-module/components/block-lock/toolbar.js.map +1 -1
  143. package/build-module/components/block-mover/button.js +1 -1
  144. package/build-module/components/block-mover/button.js.map +1 -1
  145. package/build-module/components/block-mover/index.js +1 -1
  146. package/build-module/components/block-mover/index.js.map +1 -1
  147. package/build-module/components/block-pattern-setup/setup-toolbar.js +2 -2
  148. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  149. package/build-module/components/block-patterns-paging/index.js +5 -7
  150. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  151. package/build-module/components/block-quick-navigation/index.js +20 -17
  152. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  153. package/build-module/components/block-rename/modal.js +5 -13
  154. package/build-module/components/block-rename/modal.js.map +1 -1
  155. package/build-module/components/block-toolbar/shuffle.js +1 -0
  156. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  157. package/build-module/components/block-tools/block-selection-button.js +10 -61
  158. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  159. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +9 -2
  160. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  161. package/build-module/components/block-tools/index.js +14 -1
  162. package/build-module/components/block-tools/index.js.map +1 -1
  163. package/build-module/components/block-tools/use-show-block-tools.js +4 -2
  164. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  165. package/build-module/components/block-tools/zoom-out-mode-inserters.js +5 -4
  166. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  167. package/build-module/components/block-tools/zoom-out-popover.js +48 -0
  168. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -0
  169. package/build-module/components/block-tools/zoom-out-toolbar.js +131 -0
  170. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -0
  171. package/build-module/components/button-block-appender/index.js +3 -1
  172. package/build-module/components/button-block-appender/index.js.map +1 -1
  173. package/build-module/components/child-layout-control/index.js +27 -19
  174. package/build-module/components/child-layout-control/index.js.map +1 -1
  175. package/build-module/components/date-format-picker/index.js +11 -3
  176. package/build-module/components/date-format-picker/index.js.map +1 -1
  177. package/build-module/components/dimensions-tool/index.js +6 -4
  178. package/build-module/components/dimensions-tool/index.js.map +1 -1
  179. package/build-module/components/font-appearance-control/index.js +28 -63
  180. package/build-module/components/font-appearance-control/index.js.map +1 -1
  181. package/build-module/components/global-styles/background-panel.js +181 -119
  182. package/build-module/components/global-styles/background-panel.js.map +1 -1
  183. package/build-module/components/global-styles/border-panel.js +3 -2
  184. package/build-module/components/global-styles/border-panel.js.map +1 -1
  185. package/build-module/components/global-styles/color-panel.js +3 -2
  186. package/build-module/components/global-styles/color-panel.js.map +1 -1
  187. package/build-module/components/global-styles/dimensions-panel.js +3 -2
  188. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  189. package/build-module/components/global-styles/filters-panel.js +3 -2
  190. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  191. package/build-module/components/global-styles/hooks.js +8 -0
  192. package/build-module/components/global-styles/hooks.js.map +1 -1
  193. package/build-module/components/global-styles/image-settings-panel.js +3 -2
  194. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  195. package/build-module/components/global-styles/typography-panel.js +52 -14
  196. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  197. package/build-module/components/global-styles/typography-utils.js +48 -0
  198. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  199. package/build-module/components/global-styles/use-global-styles-output.js +23 -8
  200. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  201. package/build-module/components/global-styles/utils.js +15 -6
  202. package/build-module/components/global-styles/utils.js.map +1 -1
  203. package/build-module/components/grid/grid-item-movers.js +11 -14
  204. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  205. package/build-module/components/grid/grid-item-resizer.js +2 -2
  206. package/build-module/components/grid/grid-item-resizer.js.map +1 -1
  207. package/build-module/components/grid/grid-visualizer.js +117 -37
  208. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  209. package/build-module/components/grid/use-grid-layout-sync.js +29 -22
  210. package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
  211. package/build-module/components/inner-blocks/index.js +1 -1
  212. package/build-module/components/inner-blocks/index.js.map +1 -1
  213. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
  214. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  215. package/build-module/components/inserter/menu.js +26 -4
  216. package/build-module/components/inserter/menu.js.map +1 -1
  217. package/build-module/components/inserter/quick-inserter.js +2 -1
  218. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  219. package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -2
  220. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  221. package/build-module/components/link-control/link-preview.js +1 -1
  222. package/build-module/components/link-control/link-preview.js.map +1 -1
  223. package/build-module/components/media-placeholder/index.js +19 -23
  224. package/build-module/components/media-placeholder/index.js.map +1 -1
  225. package/build-module/components/navigable-toolbar/index.js +3 -1
  226. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  227. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +5 -1
  228. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  229. package/build-module/components/tabbed-sidebar/index.js +60 -0
  230. package/build-module/components/tabbed-sidebar/index.js.map +1 -0
  231. package/build-module/components/url-popover/index.js +3 -0
  232. package/build-module/components/url-popover/index.js.map +1 -1
  233. package/build-module/hooks/background.js +26 -4
  234. package/build-module/hooks/background.js.map +1 -1
  235. package/build-module/hooks/block-hooks.js +11 -17
  236. package/build-module/hooks/block-hooks.js.map +1 -1
  237. package/build-module/hooks/block-style-variation.js +168 -4
  238. package/build-module/hooks/block-style-variation.js.map +1 -1
  239. package/build-module/hooks/duotone.js +16 -11
  240. package/build-module/hooks/duotone.js.map +1 -1
  241. package/build-module/hooks/grid-visualizer.js +64 -0
  242. package/build-module/hooks/grid-visualizer.js.map +1 -0
  243. package/build-module/hooks/index.js +3 -0
  244. package/build-module/hooks/index.js.map +1 -1
  245. package/build-module/hooks/layout-child.js +39 -22
  246. package/build-module/hooks/layout-child.js.map +1 -1
  247. package/build-module/hooks/position.js +2 -9
  248. package/build-module/hooks/position.js.map +1 -1
  249. package/build-module/hooks/use-bindings-attributes.js +16 -6
  250. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  251. package/build-module/hooks/utils.js +2 -0
  252. package/build-module/hooks/utils.js.map +1 -1
  253. package/build-module/layouts/constrained.js +44 -2
  254. package/build-module/layouts/constrained.js.map +1 -1
  255. package/build-module/layouts/grid.js +90 -51
  256. package/build-module/layouts/grid.js.map +1 -1
  257. package/build-module/private-apis.js +8 -3
  258. package/build-module/private-apis.js.map +1 -1
  259. package/build-module/store/defaults.js +0 -2
  260. package/build-module/store/defaults.js.map +1 -1
  261. package/build-module/store/defaults.native.js +0 -3
  262. package/build-module/store/defaults.native.js.map +1 -1
  263. package/build-module/store/private-keys.js +1 -0
  264. package/build-module/store/private-keys.js.map +1 -1
  265. package/build-module/utils/format-font-style.js +39 -0
  266. package/build-module/utils/format-font-style.js.map +1 -0
  267. package/build-module/utils/format-font-weight.js +62 -0
  268. package/build-module/utils/format-font-weight.js.map +1 -0
  269. package/build-module/utils/get-editor-region.js +28 -0
  270. package/build-module/utils/get-editor-region.js.map +1 -0
  271. package/build-module/utils/get-font-styles-and-weights.js +160 -0
  272. package/build-module/utils/get-font-styles-and-weights.js.map +1 -0
  273. package/build-module/utils/pasting.js +5 -13
  274. package/build-module/utils/pasting.js.map +1 -1
  275. package/build-style/content-rtl.css +1 -0
  276. package/build-style/content.css +1 -0
  277. package/build-style/style-rtl.css +207 -96
  278. package/build-style/style.css +207 -96
  279. package/package.json +32 -32
  280. package/src/components/block-breadcrumb/index.js +16 -1
  281. package/src/components/block-lock/toolbar.js +0 -1
  282. package/src/components/block-mover/button.js +1 -1
  283. package/src/components/block-mover/index.js +1 -1
  284. package/src/components/block-pattern-setup/setup-toolbar.js +2 -2
  285. package/src/components/block-patterns-paging/index.js +8 -11
  286. package/src/components/block-patterns-paging/style.scss +18 -0
  287. package/src/components/block-quick-navigation/index.js +21 -28
  288. package/src/components/block-rename/modal.js +2 -8
  289. package/src/components/block-switcher/test/index.js +6 -6
  290. package/src/components/block-toolbar/shuffle.js +1 -0
  291. package/src/components/block-toolbar/style.scss +1 -11
  292. package/src/components/block-tools/block-selection-button.js +11 -83
  293. package/src/components/block-tools/block-toolbar-breadcrumb.js +9 -4
  294. package/src/components/block-tools/index.js +21 -1
  295. package/src/components/block-tools/style.scss +15 -0
  296. package/src/components/block-tools/use-show-block-tools.js +14 -6
  297. package/src/components/block-tools/zoom-out-mode-inserters.js +5 -4
  298. package/src/components/block-tools/zoom-out-popover.js +49 -0
  299. package/src/components/block-tools/zoom-out-toolbar.js +140 -0
  300. package/src/components/button-block-appender/index.js +2 -1
  301. package/src/components/child-layout-control/index.js +41 -23
  302. package/src/components/date-format-picker/index.js +10 -1
  303. package/src/components/date-format-picker/style.scss +0 -9
  304. package/src/components/dimensions-tool/index.js +97 -89
  305. package/src/components/font-appearance-control/index.js +29 -83
  306. package/src/components/font-appearance-control/style.scss +3 -5
  307. package/src/components/global-styles/background-panel.js +249 -170
  308. package/src/components/global-styles/border-panel.js +3 -2
  309. package/src/components/global-styles/color-panel.js +3 -2
  310. package/src/components/global-styles/dimensions-panel.js +3 -2
  311. package/src/components/global-styles/filters-panel.js +3 -2
  312. package/src/components/global-styles/hooks.js +9 -0
  313. package/src/components/global-styles/image-settings-panel.js +3 -2
  314. package/src/components/global-styles/style.scss +105 -20
  315. package/src/components/global-styles/test/typography-utils.js +269 -0
  316. package/src/components/global-styles/typography-panel.js +49 -12
  317. package/src/components/global-styles/typography-utils.js +63 -0
  318. package/src/components/global-styles/use-global-styles-output.js +23 -8
  319. package/src/components/global-styles/utils.js +17 -6
  320. package/src/components/grid/grid-item-movers.js +11 -27
  321. package/src/components/grid/grid-item-resizer.js +3 -2
  322. package/src/components/grid/grid-visualizer.js +171 -54
  323. package/src/components/grid/style.scss +43 -8
  324. package/src/components/grid/use-grid-layout-sync.js +31 -28
  325. package/src/components/iframe/content.scss +1 -0
  326. package/src/components/inner-blocks/index.js +2 -1
  327. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -16
  328. package/src/components/inserter/menu.js +47 -13
  329. package/src/components/inserter/quick-inserter.js +6 -1
  330. package/src/components/inserter/style.scss +1 -49
  331. package/src/components/inspector-controls/block-support-tools-panel.js +3 -3
  332. package/src/components/link-control/link-preview.js +1 -1
  333. package/src/components/media-placeholder/index.js +22 -32
  334. package/src/components/navigable-toolbar/index.js +3 -1
  335. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +6 -1
  336. package/src/components/tabbed-sidebar/README.md +76 -0
  337. package/src/components/tabbed-sidebar/index.js +70 -0
  338. package/src/components/tabbed-sidebar/style.scss +53 -0
  339. package/src/components/url-popover/index.js +3 -0
  340. package/src/hooks/background.js +25 -10
  341. package/src/hooks/block-hooks.js +9 -16
  342. package/src/hooks/block-style-variation.js +202 -3
  343. package/src/hooks/duotone.js +16 -12
  344. package/src/hooks/grid-visualizer.js +64 -0
  345. package/src/hooks/index.js +3 -0
  346. package/src/hooks/layout-child.js +53 -37
  347. package/src/hooks/position.js +3 -10
  348. package/src/hooks/test/get-variation-styles-with-ref-values.js +91 -0
  349. package/src/hooks/use-bindings-attributes.js +18 -4
  350. package/src/hooks/utils.js +2 -0
  351. package/src/layouts/constrained.js +43 -2
  352. package/src/layouts/grid.js +146 -51
  353. package/src/private-apis.js +12 -1
  354. package/src/store/defaults.js +0 -2
  355. package/src/store/defaults.native.js +0 -3
  356. package/src/store/private-keys.js +1 -0
  357. package/src/style.scss +1 -1
  358. package/src/utils/format-font-style.js +40 -0
  359. package/src/utils/format-font-weight.js +63 -0
  360. package/src/utils/get-editor-region.js +31 -0
  361. package/src/utils/get-font-styles-and-weights.js +191 -0
  362. package/src/utils/pasting.js +5 -12
  363. package/src/utils/test/format-font-style.js +34 -0
  364. package/src/utils/test/format-font-weight.js +66 -0
  365. package/src/utils/test/get-font-styles-and-weights.js +513 -0
  366. package/tsconfig.tsbuildinfo +1 -1
  367. package/src/hooks/position.scss +0 -18
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_i18n","_components","_data","_searchResults","_useInsertionPoint","_usePatternsState","_useBlockTypesState","_store","_jsxRuntime","SEARCH_THRESHOLD","SHOWN_BLOCK_TYPES","SHOWN_BLOCK_PATTERNS","SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION","QuickInserter","onSelect","rootClientId","clientId","isAppender","prioritizePatterns","selectBlockOnInsert","hasSearch","filterValue","setFilterValue","useState","destinationRootClientId","onInsertBlocks","useInsertionPoint","blockTypes","useBlockTypesState","patterns","usePatternsState","setInserterIsOpened","insertionIndex","useSelect","select","getSettings","getBlockIndex","getBlockCount","blockEditorStore","settings","index","blockCount","__experimentalSetIsInserterOpened","showPatterns","length","showSearch","useEffect","onBrowseAll","maxBlockPatterns","jsxs","className","clsx","children","jsx","SearchControl","__nextHasNoMarginBottom","value","onChange","label","__","placeholder","default","maxBlockTypes","isDraggable","isQuick","Button","onClick"],"sources":["@wordpress/block-editor/src/components/inserter/quick-inserter.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Button, SearchControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport usePatternsState from './hooks/use-patterns-state';\nimport useBlockTypesState from './hooks/use-block-types-state';\nimport { store as blockEditorStore } from '../../store';\n\nconst SEARCH_THRESHOLD = 6;\nconst SHOWN_BLOCK_TYPES = 6;\nconst SHOWN_BLOCK_PATTERNS = 2;\nconst SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION = 4;\n\nexport default function QuickInserter( {\n\tonSelect,\n\trootClientId,\n\tclientId,\n\tisAppender,\n\tprioritizePatterns,\n\tselectBlockOnInsert,\n\thasSearch = true,\n} ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {\n\t\tonSelect,\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\tselectBlockOnInsert,\n\t} );\n\tconst [ blockTypes ] = useBlockTypesState(\n\t\tdestinationRootClientId,\n\t\tonInsertBlocks,\n\t\ttrue\n\t);\n\n\tconst [ patterns ] = usePatternsState(\n\t\tonInsertBlocks,\n\t\tdestinationRootClientId\n\t);\n\n\tconst { setInserterIsOpened, insertionIndex } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, getBlockIndex, getBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst settings = getSettings();\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tconst blockCount = getBlockCount();\n\n\t\t\treturn {\n\t\t\t\tsetInserterIsOpened: settings.__experimentalSetIsInserterOpened,\n\t\t\t\tinsertionIndex: index === -1 ? blockCount : index,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst showPatterns =\n\t\tpatterns.length && ( !! filterValue || prioritizePatterns );\n\tconst showSearch =\n\t\thasSearch &&\n\t\t( ( showPatterns && patterns.length > SEARCH_THRESHOLD ) ||\n\t\t\tblockTypes.length > SEARCH_THRESHOLD );\n\n\tuseEffect( () => {\n\t\tif ( setInserterIsOpened ) {\n\t\t\tsetInserterIsOpened( false );\n\t\t}\n\t}, [ setInserterIsOpened ] );\n\n\t// When clicking Browse All select the appropriate block so as\n\t// the insertion point can work as expected.\n\tconst onBrowseAll = () => {\n\t\tsetInserterIsOpened( { rootClientId, insertionIndex, filterValue } );\n\t};\n\n\tlet maxBlockPatterns = 0;\n\tif ( showPatterns ) {\n\t\tmaxBlockPatterns = prioritizePatterns\n\t\t\t? SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION\n\t\t\t: SHOWN_BLOCK_PATTERNS;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx( 'block-editor-inserter__quick-inserter', {\n\t\t\t\t'has-search': showSearch,\n\t\t\t\t'has-expand': setInserterIsOpened,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ showSearch && (\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\n\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<div className=\"block-editor-inserter__quick-inserter-results\">\n\t\t\t\t<InserterSearchResults\n\t\t\t\t\tfilterValue={ filterValue }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\tmaxBlockPatterns={ maxBlockPatterns }\n\t\t\t\t\tmaxBlockTypes={ SHOWN_BLOCK_TYPES }\n\t\t\t\t\tisDraggable={ false }\n\t\t\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\t\t\tselectBlockOnInsert={ selectBlockOnInsert }\n\t\t\t\t\tisQuick\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{ setInserterIsOpened && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"block-editor-inserter__quick-inserter-expand\"\n\t\t\t\t\tonClick={ onBrowseAll }\n\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t'Browse all. This will open the main inserter panel in the editor toolbar.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Browse all' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_i18n","_components","_data","_searchResults","_useInsertionPoint","_usePatternsState","_useBlockTypesState","_store","_jsxRuntime","SEARCH_THRESHOLD","SHOWN_BLOCK_TYPES","SHOWN_BLOCK_PATTERNS","SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION","QuickInserter","onSelect","rootClientId","clientId","isAppender","prioritizePatterns","selectBlockOnInsert","hasSearch","filterValue","setFilterValue","useState","destinationRootClientId","onInsertBlocks","useInsertionPoint","blockTypes","useBlockTypesState","patterns","usePatternsState","setInserterIsOpened","insertionIndex","useSelect","select","getSettings","getBlockIndex","getBlockCount","blockEditorStore","settings","index","blockCount","__experimentalSetIsInserterOpened","showPatterns","length","showSearch","useEffect","onBrowseAll","maxBlockPatterns","jsxs","className","clsx","children","jsx","SearchControl","__nextHasNoMarginBottom","value","onChange","label","__","placeholder","default","maxBlockTypes","isDraggable","isQuick","Button","onClick"],"sources":["@wordpress/block-editor/src/components/inserter/quick-inserter.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Button, SearchControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport usePatternsState from './hooks/use-patterns-state';\nimport useBlockTypesState from './hooks/use-block-types-state';\nimport { store as blockEditorStore } from '../../store';\n\nconst SEARCH_THRESHOLD = 6;\nconst SHOWN_BLOCK_TYPES = 6;\nconst SHOWN_BLOCK_PATTERNS = 2;\nconst SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION = 4;\n\nexport default function QuickInserter( {\n\tonSelect,\n\trootClientId,\n\tclientId,\n\tisAppender,\n\tprioritizePatterns,\n\tselectBlockOnInsert,\n\thasSearch = true,\n} ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {\n\t\tonSelect,\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\tselectBlockOnInsert,\n\t} );\n\tconst [ blockTypes ] = useBlockTypesState(\n\t\tdestinationRootClientId,\n\t\tonInsertBlocks,\n\t\ttrue\n\t);\n\n\tconst [ patterns ] = usePatternsState(\n\t\tonInsertBlocks,\n\t\tdestinationRootClientId\n\t);\n\n\tconst { setInserterIsOpened, insertionIndex } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, getBlockIndex, getBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst settings = getSettings();\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tconst blockCount = getBlockCount();\n\n\t\t\treturn {\n\t\t\t\tsetInserterIsOpened: settings.__experimentalSetIsInserterOpened,\n\t\t\t\tinsertionIndex: index === -1 ? blockCount : index,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst showPatterns =\n\t\tpatterns.length && ( !! filterValue || prioritizePatterns );\n\tconst showSearch =\n\t\thasSearch &&\n\t\t( ( showPatterns && patterns.length > SEARCH_THRESHOLD ) ||\n\t\t\tblockTypes.length > SEARCH_THRESHOLD );\n\n\tuseEffect( () => {\n\t\tif ( setInserterIsOpened ) {\n\t\t\tsetInserterIsOpened( false );\n\t\t}\n\t}, [ setInserterIsOpened ] );\n\n\t// When clicking Browse All select the appropriate block so as\n\t// the insertion point can work as expected.\n\tconst onBrowseAll = () => {\n\t\tsetInserterIsOpened( {\n\t\t\trootClientId,\n\t\t\tinsertionIndex,\n\t\t\tfilterValue,\n\t\t\tonSelect,\n\t\t} );\n\t};\n\n\tlet maxBlockPatterns = 0;\n\tif ( showPatterns ) {\n\t\tmaxBlockPatterns = prioritizePatterns\n\t\t\t? SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION\n\t\t\t: SHOWN_BLOCK_PATTERNS;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx( 'block-editor-inserter__quick-inserter', {\n\t\t\t\t'has-search': showSearch,\n\t\t\t\t'has-expand': setInserterIsOpened,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ showSearch && (\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\n\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<div className=\"block-editor-inserter__quick-inserter-results\">\n\t\t\t\t<InserterSearchResults\n\t\t\t\t\tfilterValue={ filterValue }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\tmaxBlockPatterns={ maxBlockPatterns }\n\t\t\t\t\tmaxBlockTypes={ SHOWN_BLOCK_TYPES }\n\t\t\t\t\tisDraggable={ false }\n\t\t\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\t\t\tselectBlockOnInsert={ selectBlockOnInsert }\n\t\t\t\t\tisQuick\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{ setInserterIsOpened && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"block-editor-inserter__quick-inserter-expand\"\n\t\t\t\t\tonClick={ onBrowseAll }\n\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t'Browse all. This will open the main inserter panel in the editor toolbar.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Browse all' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -33,6 +33,7 @@ function BlockSupportToolsPanel({
33
33
  getSelectedBlockClientId,
34
34
  hasMultiSelection
35
35
  } = (0, _data.useSelect)(_store.store);
36
+ const dropdownMenuProps = (0, _utils2.useToolsPanelDropdownMenuProps)();
36
37
  const panelId = getSelectedBlockClientId();
37
38
  const resetAll = (0, _element.useCallback)((resetFilters = []) => {
38
39
  const newAttributes = {};
@@ -70,7 +71,7 @@ function BlockSupportToolsPanel({
70
71
  ,
71
72
  __experimentalFirstVisibleItemClass: "first",
72
73
  __experimentalLastVisibleItemClass: "last",
73
- dropdownMenuProps: _utils2.TOOLSPANEL_DROPDOWNMENU_PROPS,
74
+ dropdownMenuProps: dropdownMenuProps,
74
75
  children: children
75
76
  }, panelId);
76
77
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_data","_element","_store","_utils","_utils2","_jsxRuntime","BlockSupportToolsPanel","children","group","label","updateBlockAttributes","useDispatch","blockEditorStore","getBlockAttributes","getMultiSelectedBlockClientIds","getSelectedBlockClientId","hasMultiSelection","useSelect","panelId","resetAll","useCallback","resetFilters","newAttributes","clientIds","forEach","clientId","style","newBlockAttributes","resetFilter","cleanEmptyObject","jsx","__experimentalToolsPanel","className","hasInnerWrapper","shouldRenderPlaceholderItems","__experimentalFirstVisibleItemClass","__experimentalLastVisibleItemClass","dropdownMenuProps","TOOLSPANEL_DROPDOWNMENU_PROPS"],"sources":["@wordpress/block-editor/src/components/inspector-controls/block-support-tools-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { cleanEmptyObject } from '../../hooks/utils';\nimport { TOOLSPANEL_DROPDOWNMENU_PROPS } from '../global-styles/utils';\n\nexport default function BlockSupportToolsPanel( { children, group, label } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockAttributes,\n\t\tgetMultiSelectedBlockClientIds,\n\t\tgetSelectedBlockClientId,\n\t\thasMultiSelection,\n\t} = useSelect( blockEditorStore );\n\n\tconst panelId = getSelectedBlockClientId();\n\tconst resetAll = useCallback(\n\t\t( resetFilters = [] ) => {\n\t\t\tconst newAttributes = {};\n\n\t\t\tconst clientIds = hasMultiSelection()\n\t\t\t\t? getMultiSelectedBlockClientIds()\n\t\t\t\t: [ panelId ];\n\n\t\t\tclientIds.forEach( ( clientId ) => {\n\t\t\t\tconst { style } = getBlockAttributes( clientId );\n\t\t\t\tlet newBlockAttributes = { style };\n\n\t\t\t\tresetFilters.forEach( ( resetFilter ) => {\n\t\t\t\t\tnewBlockAttributes = {\n\t\t\t\t\t\t...newBlockAttributes,\n\t\t\t\t\t\t...resetFilter( newBlockAttributes ),\n\t\t\t\t\t};\n\t\t\t\t} );\n\n\t\t\t\t// Enforce a cleaned style object.\n\t\t\t\tnewBlockAttributes = {\n\t\t\t\t\t...newBlockAttributes,\n\t\t\t\t\tstyle: cleanEmptyObject( newBlockAttributes.style ),\n\t\t\t\t};\n\n\t\t\t\tnewAttributes[ clientId ] = newBlockAttributes;\n\t\t\t} );\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes, true );\n\t\t},\n\t\t[\n\t\t\tgetBlockAttributes,\n\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\thasMultiSelection,\n\t\t\tpanelId,\n\t\t\tupdateBlockAttributes,\n\t\t]\n\t);\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tclassName={ `${ group }-block-support-panel` }\n\t\t\tlabel={ label }\n\t\t\tresetAll={ resetAll }\n\t\t\tkey={ panelId }\n\t\t\tpanelId={ panelId }\n\t\t\thasInnerWrapper\n\t\t\tshouldRenderPlaceholderItems // Required to maintain fills ordering.\n\t\t\t__experimentalFirstVisibleItemClass=\"first\"\n\t\t\t__experimentalLastVisibleItemClass=\"last\"\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAAuE,IAAAM,WAAA,GAAAN,OAAA;AAZvE;AACA;AACA;;AAKA;AACA;AACA;;AAKe,SAASO,sBAAsBA,CAAE;EAAEC,QAAQ;EAAEC,KAAK;EAAEC;AAAM,CAAC,EAAG;EAC5E,MAAM;IAAEC;EAAsB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,YAAiB,CAAC;EACjE,MAAM;IACLC,kBAAkB;IAClBC,8BAA8B;IAC9BC,wBAAwB;IACxBC;EACD,CAAC,GAAG,IAAAC,eAAS,EAAEL,YAAiB,CAAC;EAEjC,MAAMM,OAAO,GAAGH,wBAAwB,CAAC,CAAC;EAC1C,MAAMI,QAAQ,GAAG,IAAAC,oBAAW,EAC3B,CAAEC,YAAY,GAAG,EAAE,KAAM;IACxB,MAAMC,aAAa,GAAG,CAAC,CAAC;IAExB,MAAMC,SAAS,GAAGP,iBAAiB,CAAC,CAAC,GAClCF,8BAA8B,CAAC,CAAC,GAChC,CAAEI,OAAO,CAAE;IAEdK,SAAS,CAACC,OAAO,CAAIC,QAAQ,IAAM;MAClC,MAAM;QAAEC;MAAM,CAAC,GAAGb,kBAAkB,CAAEY,QAAS,CAAC;MAChD,IAAIE,kBAAkB,GAAG;QAAED;MAAM,CAAC;MAElCL,YAAY,CAACG,OAAO,CAAII,WAAW,IAAM;QACxCD,kBAAkB,GAAG;UACpB,GAAGA,kBAAkB;UACrB,GAAGC,WAAW,CAAED,kBAAmB;QACpC,CAAC;MACF,CAAE,CAAC;;MAEH;MACAA,kBAAkB,GAAG;QACpB,GAAGA,kBAAkB;QACrBD,KAAK,EAAE,IAAAG,uBAAgB,EAAEF,kBAAkB,CAACD,KAAM;MACnD,CAAC;MAEDJ,aAAa,CAAEG,QAAQ,CAAE,GAAGE,kBAAkB;IAC/C,CAAE,CAAC;IAEHjB,qBAAqB,CAAEa,SAAS,EAAED,aAAa,EAAE,IAAK,CAAC;EACxD,CAAC,EACD,CACCT,kBAAkB,EAClBC,8BAA8B,EAC9BE,iBAAiB,EACjBE,OAAO,EACPR,qBAAqB,CAEvB,CAAC;EAED,oBACC,IAAAL,WAAA,CAAAyB,GAAA,EAAChC,WAAA,CAAAiC,wBAAU;IACVC,SAAS,EAAI,GAAGxB,KAAO,sBAAuB;IAC9CC,KAAK,EAAGA,KAAO;IACfU,QAAQ,EAAGA,QAAU;IAErBD,OAAO,EAAGA,OAAS;IACnBe,eAAe;IACfC,4BAA4B,OAAC;IAAA;IAC7BC,mCAAmC,EAAC,OAAO;IAC3CC,kCAAkC,EAAC,MAAM;IACzCC,iBAAiB,EAAGC,qCAA+B;IAAA/B,QAAA,EAEjDA;EAAQ,GARJW,OASK,CAAC;AAEf","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_data","_element","_store","_utils","_utils2","_jsxRuntime","BlockSupportToolsPanel","children","group","label","updateBlockAttributes","useDispatch","blockEditorStore","getBlockAttributes","getMultiSelectedBlockClientIds","getSelectedBlockClientId","hasMultiSelection","useSelect","dropdownMenuProps","useToolsPanelDropdownMenuProps","panelId","resetAll","useCallback","resetFilters","newAttributes","clientIds","forEach","clientId","style","newBlockAttributes","resetFilter","cleanEmptyObject","jsx","__experimentalToolsPanel","className","hasInnerWrapper","shouldRenderPlaceholderItems","__experimentalFirstVisibleItemClass","__experimentalLastVisibleItemClass"],"sources":["@wordpress/block-editor/src/components/inspector-controls/block-support-tools-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { cleanEmptyObject } from '../../hooks/utils';\nimport { useToolsPanelDropdownMenuProps } from '../global-styles/utils';\n\nexport default function BlockSupportToolsPanel( { children, group, label } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockAttributes,\n\t\tgetMultiSelectedBlockClientIds,\n\t\tgetSelectedBlockClientId,\n\t\thasMultiSelection,\n\t} = useSelect( blockEditorStore );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst panelId = getSelectedBlockClientId();\n\tconst resetAll = useCallback(\n\t\t( resetFilters = [] ) => {\n\t\t\tconst newAttributes = {};\n\n\t\t\tconst clientIds = hasMultiSelection()\n\t\t\t\t? getMultiSelectedBlockClientIds()\n\t\t\t\t: [ panelId ];\n\n\t\t\tclientIds.forEach( ( clientId ) => {\n\t\t\t\tconst { style } = getBlockAttributes( clientId );\n\t\t\t\tlet newBlockAttributes = { style };\n\n\t\t\t\tresetFilters.forEach( ( resetFilter ) => {\n\t\t\t\t\tnewBlockAttributes = {\n\t\t\t\t\t\t...newBlockAttributes,\n\t\t\t\t\t\t...resetFilter( newBlockAttributes ),\n\t\t\t\t\t};\n\t\t\t\t} );\n\n\t\t\t\t// Enforce a cleaned style object.\n\t\t\t\tnewBlockAttributes = {\n\t\t\t\t\t...newBlockAttributes,\n\t\t\t\t\tstyle: cleanEmptyObject( newBlockAttributes.style ),\n\t\t\t\t};\n\n\t\t\t\tnewAttributes[ clientId ] = newBlockAttributes;\n\t\t\t} );\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes, true );\n\t\t},\n\t\t[\n\t\t\tgetBlockAttributes,\n\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\thasMultiSelection,\n\t\t\tpanelId,\n\t\t\tupdateBlockAttributes,\n\t\t]\n\t);\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tclassName={ `${ group }-block-support-panel` }\n\t\t\tlabel={ label }\n\t\t\tresetAll={ resetAll }\n\t\t\tkey={ panelId }\n\t\t\tpanelId={ panelId }\n\t\t\thasInnerWrapper\n\t\t\tshouldRenderPlaceholderItems // Required to maintain fills ordering.\n\t\t\t__experimentalFirstVisibleItemClass=\"first\"\n\t\t\t__experimentalLastVisibleItemClass=\"last\"\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAAwE,IAAAM,WAAA,GAAAN,OAAA;AAZxE;AACA;AACA;;AAKA;AACA;AACA;;AAKe,SAASO,sBAAsBA,CAAE;EAAEC,QAAQ;EAAEC,KAAK;EAAEC;AAAM,CAAC,EAAG;EAC5E,MAAM;IAAEC;EAAsB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,YAAiB,CAAC;EACjE,MAAM;IACLC,kBAAkB;IAClBC,8BAA8B;IAC9BC,wBAAwB;IACxBC;EACD,CAAC,GAAG,IAAAC,eAAS,EAAEL,YAAiB,CAAC;EACjC,MAAMM,iBAAiB,GAAG,IAAAC,sCAA8B,EAAC,CAAC;EAC1D,MAAMC,OAAO,GAAGL,wBAAwB,CAAC,CAAC;EAC1C,MAAMM,QAAQ,GAAG,IAAAC,oBAAW,EAC3B,CAAEC,YAAY,GAAG,EAAE,KAAM;IACxB,MAAMC,aAAa,GAAG,CAAC,CAAC;IAExB,MAAMC,SAAS,GAAGT,iBAAiB,CAAC,CAAC,GAClCF,8BAA8B,CAAC,CAAC,GAChC,CAAEM,OAAO,CAAE;IAEdK,SAAS,CAACC,OAAO,CAAIC,QAAQ,IAAM;MAClC,MAAM;QAAEC;MAAM,CAAC,GAAGf,kBAAkB,CAAEc,QAAS,CAAC;MAChD,IAAIE,kBAAkB,GAAG;QAAED;MAAM,CAAC;MAElCL,YAAY,CAACG,OAAO,CAAII,WAAW,IAAM;QACxCD,kBAAkB,GAAG;UACpB,GAAGA,kBAAkB;UACrB,GAAGC,WAAW,CAAED,kBAAmB;QACpC,CAAC;MACF,CAAE,CAAC;;MAEH;MACAA,kBAAkB,GAAG;QACpB,GAAGA,kBAAkB;QACrBD,KAAK,EAAE,IAAAG,uBAAgB,EAAEF,kBAAkB,CAACD,KAAM;MACnD,CAAC;MAEDJ,aAAa,CAAEG,QAAQ,CAAE,GAAGE,kBAAkB;IAC/C,CAAE,CAAC;IAEHnB,qBAAqB,CAAEe,SAAS,EAAED,aAAa,EAAE,IAAK,CAAC;EACxD,CAAC,EACD,CACCX,kBAAkB,EAClBC,8BAA8B,EAC9BE,iBAAiB,EACjBI,OAAO,EACPV,qBAAqB,CAEvB,CAAC;EAED,oBACC,IAAAL,WAAA,CAAA2B,GAAA,EAAClC,WAAA,CAAAmC,wBAAU;IACVC,SAAS,EAAI,GAAG1B,KAAO,sBAAuB;IAC9CC,KAAK,EAAGA,KAAO;IACfY,QAAQ,EAAGA,QAAU;IAErBD,OAAO,EAAGA,OAAS;IACnBe,eAAe;IACfC,4BAA4B,OAAC;IAAA;IAC7BC,mCAAmC,EAAC,OAAO;IAC3CC,kCAAkC,EAAC,MAAM;IACzCpB,iBAAiB,EAAGA,iBAAmB;IAAAX,QAAA,EAErCA;EAAQ,GARJa,OASK,CAAC;AAEf","ignoreList":[]}
@@ -148,7 +148,7 @@ function LinkPreview({
148
148
  // Ends up looking like "Copy link: https://example.com".
149
149
  isEmptyURL || showIconLabels ? '' : ': ' + value.url),
150
150
  ref: ref,
151
- __experimentalIsFocusable: true,
151
+ accessibleWhenDisabled: true,
152
152
  disabled: isEmptyURL,
153
153
  size: "compact"
154
154
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_viewerSlot.ViewerSlot, {
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_components","_compose","_url","_icons","_dom","_data","_notices","_preferences","_viewerSlot","_useRichUrlData","_jsxRuntime","filterTitleForDisplay","title","replace","LinkPreview","value","onEditClick","hasRichPreviews","hasUnlinkControl","onRemove","showIconLabels","useSelect","select","preferencesStore","get","showRichPreviews","url","richData","isFetching","useRichUrlData","hasRichData","Object","keys","length","displayURL","filterURLForDisplay","safeDecodeURI","isEmptyURL","displayTitle","stripHTML","isUrlRedundant","icon","jsx","src","alt","Icon","info","size","globe","createNotice","useDispatch","noticesStore","ref","useCopyToClipboard","__","isDismissible","type","className","clsx","children","jsxs","Fragment","ExternalLink","href","__experimentalTruncate","numberOfLines","Button","edit","label","onClick","linkOff","copySmall","sprintf","__experimentalIsFocusable","disabled","ViewerSlot","fillProps"],"sources":["@wordpress/block-editor/src/components/link-control/link-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tExternalLink,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { filterURLForDisplay, safeDecodeURI } from '@wordpress/url';\nimport { Icon, globe, info, linkOff, edit, copySmall } from '@wordpress/icons';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { ViewerSlot } from './viewer-slot';\n\nimport useRichUrlData from './use-rich-url-data';\n\n/**\n * Filters the title for display. Removes the protocol and www prefix.\n *\n * @param {string} title The title to be filtered.\n *\n * @return {string} The filtered title.\n */\nfunction filterTitleForDisplay( title ) {\n\t// Derived from `filterURLForDisplay` in `@wordpress/url`.\n\treturn title\n\t\t.replace( /^[a-z\\-.\\+]+[0-9]*:(\\/\\/)?/i, '' )\n\t\t.replace( /^www\\./i, '' );\n}\n\nexport default function LinkPreview( {\n\tvalue,\n\tonEditClick,\n\thasRichPreviews = false,\n\thasUnlinkControl = false,\n\tonRemove,\n} ) {\n\tconst showIconLabels = useSelect(\n\t\t( select ) =>\n\t\t\tselect( preferencesStore ).get( 'core', 'showIconLabels' ),\n\t\t[]\n\t);\n\n\t// Avoid fetching if rich previews are not desired.\n\tconst showRichPreviews = hasRichPreviews ? value?.url : null;\n\n\tconst { richData, isFetching } = useRichUrlData( showRichPreviews );\n\n\t// Rich data may be an empty object so test for that.\n\tconst hasRichData = richData && Object.keys( richData ).length;\n\n\tconst displayURL =\n\t\t( value && filterURLForDisplay( safeDecodeURI( value.url ), 24 ) ) ||\n\t\t'';\n\n\t// url can be undefined if the href attribute is unset\n\tconst isEmptyURL = ! value?.url?.length;\n\n\tconst displayTitle =\n\t\t! isEmptyURL &&\n\t\tstripHTML( richData?.title || value?.title || displayURL );\n\n\tconst isUrlRedundant =\n\t\t! value?.url || filterTitleForDisplay( displayTitle ) === displayURL;\n\n\tlet icon;\n\n\tif ( richData?.icon ) {\n\t\ticon = <img src={ richData?.icon } alt=\"\" />;\n\t} else if ( isEmptyURL ) {\n\t\ticon = <Icon icon={ info } size={ 32 } />;\n\t} else {\n\t\ticon = <Icon icon={ globe } />;\n\t}\n\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst ref = useCopyToClipboard( value.url, () => {\n\t\tcreateNotice( 'info', __( 'Link copied to clipboard.' ), {\n\t\t\tisDismissible: true,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\taria-label={ __( 'Currently selected' ) }\n\t\t\tclassName={ clsx( 'block-editor-link-control__search-item', {\n\t\t\t\t'is-current': true,\n\t\t\t\t'is-rich': hasRichData,\n\t\t\t\t'is-fetching': !! isFetching,\n\t\t\t\t'is-preview': true,\n\t\t\t\t'is-error': isEmptyURL,\n\t\t\t\t'is-url-title': displayTitle === displayURL,\n\t\t\t} ) }\n\t\t>\n\t\t\t<div className=\"block-editor-link-control__search-item-top\">\n\t\t\t\t<span className=\"block-editor-link-control__search-item-header\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-link-control__search-item-icon',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-image': richData?.icon,\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\t\t{ icon }\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"block-editor-link-control__search-item-details\">\n\t\t\t\t\t\t{ ! isEmptyURL ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-link-control__search-item-title\"\n\t\t\t\t\t\t\t\t\thref={ value.url }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t\t\t\t\t\t{ displayTitle }\n\t\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t{ ! isUrlRedundant && (\n\t\t\t\t\t\t\t\t\t<span className=\"block-editor-link-control__search-item-info\">\n\t\t\t\t\t\t\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t\t\t\t\t\t\t{ displayURL }\n\t\t\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t\t\t</span>\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\t\t<span className=\"block-editor-link-control__search-item-error-notice\">\n\t\t\t\t\t\t\t\t{ __( 'Link is empty' ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ edit }\n\t\t\t\t\tlabel={ __( 'Edit link' ) }\n\t\t\t\t\tonClick={ onEditClick }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t\t{ hasUnlinkControl && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\tlabel={ __( 'Remove link' ) }\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<Button\n\t\t\t\t\ticon={ copySmall }\n\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t// Translators: %s is a placeholder for the link URL and an optional colon, (if a Link URL is present).\n\t\t\t\t\t\t__( 'Copy link%s' ), // Ends up looking like \"Copy link: https://example.com\".\n\t\t\t\t\t\tisEmptyURL || showIconLabels ? '' : ': ' + value.url\n\t\t\t\t\t) }\n\t\t\t\t\tref={ ref }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\tdisabled={ isEmptyURL }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t\t<ViewerSlot fillProps={ value } />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_components","_compose","_url","_icons","_dom","_data","_notices","_preferences","_viewerSlot","_useRichUrlData","_jsxRuntime","filterTitleForDisplay","title","replace","LinkPreview","value","onEditClick","hasRichPreviews","hasUnlinkControl","onRemove","showIconLabels","useSelect","select","preferencesStore","get","showRichPreviews","url","richData","isFetching","useRichUrlData","hasRichData","Object","keys","length","displayURL","filterURLForDisplay","safeDecodeURI","isEmptyURL","displayTitle","stripHTML","isUrlRedundant","icon","jsx","src","alt","Icon","info","size","globe","createNotice","useDispatch","noticesStore","ref","useCopyToClipboard","__","isDismissible","type","className","clsx","children","jsxs","Fragment","ExternalLink","href","__experimentalTruncate","numberOfLines","Button","edit","label","onClick","linkOff","copySmall","sprintf","accessibleWhenDisabled","disabled","ViewerSlot","fillProps"],"sources":["@wordpress/block-editor/src/components/link-control/link-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tExternalLink,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { filterURLForDisplay, safeDecodeURI } from '@wordpress/url';\nimport { Icon, globe, info, linkOff, edit, copySmall } from '@wordpress/icons';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { ViewerSlot } from './viewer-slot';\n\nimport useRichUrlData from './use-rich-url-data';\n\n/**\n * Filters the title for display. Removes the protocol and www prefix.\n *\n * @param {string} title The title to be filtered.\n *\n * @return {string} The filtered title.\n */\nfunction filterTitleForDisplay( title ) {\n\t// Derived from `filterURLForDisplay` in `@wordpress/url`.\n\treturn title\n\t\t.replace( /^[a-z\\-.\\+]+[0-9]*:(\\/\\/)?/i, '' )\n\t\t.replace( /^www\\./i, '' );\n}\n\nexport default function LinkPreview( {\n\tvalue,\n\tonEditClick,\n\thasRichPreviews = false,\n\thasUnlinkControl = false,\n\tonRemove,\n} ) {\n\tconst showIconLabels = useSelect(\n\t\t( select ) =>\n\t\t\tselect( preferencesStore ).get( 'core', 'showIconLabels' ),\n\t\t[]\n\t);\n\n\t// Avoid fetching if rich previews are not desired.\n\tconst showRichPreviews = hasRichPreviews ? value?.url : null;\n\n\tconst { richData, isFetching } = useRichUrlData( showRichPreviews );\n\n\t// Rich data may be an empty object so test for that.\n\tconst hasRichData = richData && Object.keys( richData ).length;\n\n\tconst displayURL =\n\t\t( value && filterURLForDisplay( safeDecodeURI( value.url ), 24 ) ) ||\n\t\t'';\n\n\t// url can be undefined if the href attribute is unset\n\tconst isEmptyURL = ! value?.url?.length;\n\n\tconst displayTitle =\n\t\t! isEmptyURL &&\n\t\tstripHTML( richData?.title || value?.title || displayURL );\n\n\tconst isUrlRedundant =\n\t\t! value?.url || filterTitleForDisplay( displayTitle ) === displayURL;\n\n\tlet icon;\n\n\tif ( richData?.icon ) {\n\t\ticon = <img src={ richData?.icon } alt=\"\" />;\n\t} else if ( isEmptyURL ) {\n\t\ticon = <Icon icon={ info } size={ 32 } />;\n\t} else {\n\t\ticon = <Icon icon={ globe } />;\n\t}\n\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst ref = useCopyToClipboard( value.url, () => {\n\t\tcreateNotice( 'info', __( 'Link copied to clipboard.' ), {\n\t\t\tisDismissible: true,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\taria-label={ __( 'Currently selected' ) }\n\t\t\tclassName={ clsx( 'block-editor-link-control__search-item', {\n\t\t\t\t'is-current': true,\n\t\t\t\t'is-rich': hasRichData,\n\t\t\t\t'is-fetching': !! isFetching,\n\t\t\t\t'is-preview': true,\n\t\t\t\t'is-error': isEmptyURL,\n\t\t\t\t'is-url-title': displayTitle === displayURL,\n\t\t\t} ) }\n\t\t>\n\t\t\t<div className=\"block-editor-link-control__search-item-top\">\n\t\t\t\t<span className=\"block-editor-link-control__search-item-header\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-link-control__search-item-icon',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-image': richData?.icon,\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\t\t{ icon }\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"block-editor-link-control__search-item-details\">\n\t\t\t\t\t\t{ ! isEmptyURL ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-link-control__search-item-title\"\n\t\t\t\t\t\t\t\t\thref={ value.url }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t\t\t\t\t\t{ displayTitle }\n\t\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t{ ! isUrlRedundant && (\n\t\t\t\t\t\t\t\t\t<span className=\"block-editor-link-control__search-item-info\">\n\t\t\t\t\t\t\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t\t\t\t\t\t\t{ displayURL }\n\t\t\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t\t\t</span>\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\t\t<span className=\"block-editor-link-control__search-item-error-notice\">\n\t\t\t\t\t\t\t\t{ __( 'Link is empty' ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ edit }\n\t\t\t\t\tlabel={ __( 'Edit link' ) }\n\t\t\t\t\tonClick={ onEditClick }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t\t{ hasUnlinkControl && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\tlabel={ __( 'Remove link' ) }\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<Button\n\t\t\t\t\ticon={ copySmall }\n\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t// Translators: %s is a placeholder for the link URL and an optional colon, (if a Link URL is present).\n\t\t\t\t\t\t__( 'Copy link%s' ), // Ends up looking like \"Copy link: https://example.com\".\n\t\t\t\t\t\tisEmptyURL || showIconLabels ? '' : ': ' + value.url\n\t\t\t\t\t) }\n\t\t\t\t\tref={ ref }\n\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\tdisabled={ isEmptyURL }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t\t<ViewerSlot fillProps={ value } />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -60,24 +60,37 @@ const InsertFromURLPopover = ({
60
60
  })
61
61
  });
62
62
  const URLSelectionUI = ({
63
- isURLInputVisible,
64
63
  src,
65
64
  onChangeSrc,
66
- onSubmitSrc,
67
- openURLInput,
68
- closeURLInput
65
+ onSelectURL
69
66
  }) => {
70
67
  // Use internal state instead of a ref to make sure that the component
71
68
  // re-renders when the popover's anchor updates.
72
69
  const [popoverAnchor, setPopoverAnchor] = (0, _element.useState)(null);
70
+ const [isURLInputVisible, setIsURLInputVisible] = (0, _element.useState)(false);
71
+ const openURLInput = () => {
72
+ setIsURLInputVisible(true);
73
+ };
74
+ const closeURLInput = () => {
75
+ setIsURLInputVisible(false);
76
+ popoverAnchor?.focus();
77
+ };
78
+ const onSubmitSrc = event => {
79
+ event.preventDefault();
80
+ if (src && onSelectURL) {
81
+ onSelectURL(src);
82
+ closeURLInput();
83
+ }
84
+ };
73
85
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
74
86
  className: "block-editor-media-placeholder__url-input-container",
75
- ref: setPopoverAnchor,
76
87
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
77
88
  className: "block-editor-media-placeholder__button",
78
89
  onClick: openURLInput,
79
90
  isPressed: isURLInputVisible,
80
91
  variant: "secondary",
92
+ "aria-haspopup": "dialog",
93
+ ref: setPopoverAnchor,
81
94
  children: (0, _i18n.__)('Insert from URL')
82
95
  }), isURLInputVisible && /*#__PURE__*/(0, _jsxRuntime.jsx)(InsertFromURLPopover, {
83
96
  src: src,
@@ -129,7 +142,6 @@ function MediaPlaceholder({
129
142
  return getSettings().mediaUpload;
130
143
  }, []);
131
144
  const [src, setSrc] = (0, _element.useState)('');
132
- const [isURLInputVisible, setIsURLInputVisible] = (0, _element.useState)(false);
133
145
  (0, _element.useEffect)(() => {
134
146
  var _value$src;
135
147
  setSrc((_value$src = value?.src) !== null && _value$src !== void 0 ? _value$src : '');
@@ -143,19 +155,6 @@ function MediaPlaceholder({
143
155
  const onChangeSrc = event => {
144
156
  setSrc(event.target.value);
145
157
  };
146
- const openURLInput = () => {
147
- setIsURLInputVisible(true);
148
- };
149
- const closeURLInput = () => {
150
- setIsURLInputVisible(false);
151
- };
152
- const onSubmitSrc = event => {
153
- event.preventDefault();
154
- if (src && onSelectURL) {
155
- onSelectURL(src);
156
- closeURLInput();
157
- }
158
- };
159
158
  const onFilesUpload = files => {
160
159
  if (!handleUpload) {
161
160
  return onSelect(files);
@@ -330,12 +329,9 @@ function MediaPlaceholder({
330
329
  };
331
330
  const renderUrlSelectionUI = () => {
332
331
  return onSelectURL && /*#__PURE__*/(0, _jsxRuntime.jsx)(URLSelectionUI, {
333
- isURLInputVisible: isURLInputVisible,
334
332
  src: src,
335
333
  onChangeSrc: onChangeSrc,
336
- onSubmitSrc: onSubmitSrc,
337
- openURLInput: openURLInput,
338
- closeURLInput: closeURLInput
334
+ onSelectURL: onSelectURL
339
335
  });
340
336
  };
341
337
  const renderFeaturedImageToggle = () => {
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_data","_icons","_blocks2","_deprecated","_mediaUpload","_check","_urlPopover","_store","_jsxRuntime","noop","InsertFromURLPopover","src","onChange","onSubmit","onClose","popoverAnchor","jsx","default","anchor","children","jsxs","className","type","__","placeholder","value","Button","icon","keyboardReturn","label","URLSelectionUI","isURLInputVisible","onChangeSrc","onSubmitSrc","openURLInput","closeURLInput","setPopoverAnchor","useState","ref","onClick","isPressed","variant","MediaPlaceholder","allowedTypes","labels","mediaPreview","notices","isAppender","accept","addToGallery","multiple","handleUpload","disableDropZone","disableMediaButtons","onError","onSelect","onCancel","onSelectURL","onToggleFeaturedImage","onDoubleClick","onFilesPreUpload","onHTMLDrop","deprecatedOnHTMLDrop","mediaLibraryButton","style","deprecated","since","version","mediaUpload","useSelect","select","getSettings","blockEditorStore","setSrc","setIsURLInputVisible","useEffect","_value$src","onlyAllowsImages","length","every","allowedType","startsWith","event","target","preventDefault","onFilesUpload","files","setMedia","lastMediaPassed","newMedia","filteredMedia","filter","item","id","some","Number","urlSlug","url","includes","concat","map","media","cutOffIndex","lastIndexOf","slice","filesList","onFileChange","handleBlocksDrop","blocks","Array","isArray","recursivelyFindMediaFromBlocks","_blocks","flatMap","block","name","attributes","innerBlocks","mediaBlocks","uploadedMediaList","Promise","all","resolve","reject","window","fetch","then","response","blob","additionalData","title","alt_text","alt","caption","catch","err","HTML","pasteHandler","onUpload","defaultRenderPlaceholder","content","instructions","undefined","typesAllowed","firstAllowedType","isOneType","isAudio","isImage","isVideo","placeholderClassName","clsx","Placeholder","preview","renderPlaceholder","renderDropZone","DropZone","onFilesDrop","renderCancelLink","renderUrlSelectionUI","renderFeaturedImageToggle","renderMediaUploadChecked","defaultButton","open","libraryButton","uploadMediaLibraryButton","gallery","mode","render","Fragment","FormFileUpload","openFileDialog","fallback","_default","exports","withFilters"],"sources":["@wordpress/block-editor/src/components/media-placeholder/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tFormFileUpload,\n\tPlaceholder,\n\tDropZone,\n\twithFilters,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { keyboardReturn } from '@wordpress/icons';\nimport { pasteHandler } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport MediaUpload from '../media-upload';\nimport MediaUploadCheck from '../media-upload/check';\nimport URLPopover from '../url-popover';\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\nconst InsertFromURLPopover = ( {\n\tsrc,\n\tonChange,\n\tonSubmit,\n\tonClose,\n\tpopoverAnchor,\n} ) => (\n\t<URLPopover anchor={ popoverAnchor } onClose={ onClose }>\n\t\t<form\n\t\t\tclassName=\"block-editor-media-placeholder__url-input-form\"\n\t\t\tonSubmit={ onSubmit }\n\t\t>\n\t\t\t<input\n\t\t\t\tclassName=\"block-editor-media-placeholder__url-input-field\"\n\t\t\t\ttype=\"text\"\n\t\t\t\taria-label={ __( 'URL' ) }\n\t\t\t\tplaceholder={ __( 'Paste or type URL' ) }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tvalue={ src }\n\t\t\t/>\n\t\t\t<Button\n\t\t\t\tclassName=\"block-editor-media-placeholder__url-input-submit-button\"\n\t\t\t\ticon={ keyboardReturn }\n\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\ttype=\"submit\"\n\t\t\t/>\n\t\t</form>\n\t</URLPopover>\n);\n\nconst URLSelectionUI = ( {\n\tisURLInputVisible,\n\tsrc,\n\tonChangeSrc,\n\tonSubmitSrc,\n\topenURLInput,\n\tcloseURLInput,\n} ) => {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"block-editor-media-placeholder__url-input-container\"\n\t\t\tref={ setPopoverAnchor }\n\t\t>\n\t\t\t<Button\n\t\t\t\tclassName=\"block-editor-media-placeholder__button\"\n\t\t\t\tonClick={ openURLInput }\n\t\t\t\tisPressed={ isURLInputVisible }\n\t\t\t\tvariant=\"secondary\"\n\t\t\t>\n\t\t\t\t{ __( 'Insert from URL' ) }\n\t\t\t</Button>\n\t\t\t{ isURLInputVisible && (\n\t\t\t\t<InsertFromURLPopover\n\t\t\t\t\tsrc={ src }\n\t\t\t\t\tonChange={ onChangeSrc }\n\t\t\t\t\tonSubmit={ onSubmitSrc }\n\t\t\t\t\tonClose={ closeURLInput }\n\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n};\n\nexport function MediaPlaceholder( {\n\tvalue = {},\n\tallowedTypes,\n\tclassName,\n\ticon,\n\tlabels = {},\n\tmediaPreview,\n\tnotices,\n\tisAppender,\n\taccept,\n\taddToGallery,\n\tmultiple = false,\n\thandleUpload = true,\n\tdisableDropZone,\n\tdisableMediaButtons,\n\tonError,\n\tonSelect,\n\tonCancel,\n\tonSelectURL,\n\tonToggleFeaturedImage,\n\tonDoubleClick,\n\tonFilesPreUpload = noop,\n\tonHTMLDrop: deprecatedOnHTMLDrop,\n\tchildren,\n\tmediaLibraryButton,\n\tplaceholder,\n\tstyle,\n} ) {\n\tif ( deprecatedOnHTMLDrop ) {\n\t\tdeprecated( 'wp.blockEditor.MediaPlaceholder onHTMLDrop prop', {\n\t\t\tsince: '6.2',\n\t\t\tversion: '6.4',\n\t\t} );\n\t}\n\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().mediaUpload;\n\t}, [] );\n\tconst [ src, setSrc ] = useState( '' );\n\tconst [ isURLInputVisible, setIsURLInputVisible ] = useState( false );\n\n\tuseEffect( () => {\n\t\tsetSrc( value?.src ?? '' );\n\t}, [ value?.src ] );\n\n\tconst onlyAllowsImages = () => {\n\t\tif ( ! allowedTypes || allowedTypes.length === 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn allowedTypes.every(\n\t\t\t( allowedType ) =>\n\t\t\t\tallowedType === 'image' || allowedType.startsWith( 'image/' )\n\t\t);\n\t};\n\n\tconst onChangeSrc = ( event ) => {\n\t\tsetSrc( event.target.value );\n\t};\n\n\tconst openURLInput = () => {\n\t\tsetIsURLInputVisible( true );\n\t};\n\tconst closeURLInput = () => {\n\t\tsetIsURLInputVisible( false );\n\t};\n\n\tconst onSubmitSrc = ( event ) => {\n\t\tevent.preventDefault();\n\t\tif ( src && onSelectURL ) {\n\t\t\tonSelectURL( src );\n\t\t\tcloseURLInput();\n\t\t}\n\t};\n\n\tconst onFilesUpload = ( files ) => {\n\t\tif ( ! handleUpload ) {\n\t\t\treturn onSelect( files );\n\t\t}\n\t\tonFilesPreUpload( files );\n\t\tlet setMedia;\n\t\tif ( multiple ) {\n\t\t\tif ( addToGallery ) {\n\t\t\t\t// Since the setMedia function runs multiple times per upload group\n\t\t\t\t// and is passed newMedia containing every item in its group each time, we must\n\t\t\t\t// filter out whatever this upload group had previously returned to the\n\t\t\t\t// gallery before adding and returning the image array with replacement newMedia\n\t\t\t\t// values.\n\n\t\t\t\t// Define an array to store urls from newMedia between subsequent function calls.\n\t\t\t\tlet lastMediaPassed = [];\n\t\t\t\tsetMedia = ( newMedia ) => {\n\t\t\t\t\t// Remove any images this upload group is responsible for (lastMediaPassed).\n\t\t\t\t\t// Their replacements are contained in newMedia.\n\t\t\t\t\tconst filteredMedia = ( value ?? [] ).filter( ( item ) => {\n\t\t\t\t\t\t// If Item has id, only remove it if lastMediaPassed has an item with that id.\n\t\t\t\t\t\tif ( item.id ) {\n\t\t\t\t\t\t\treturn ! lastMediaPassed.some(\n\t\t\t\t\t\t\t\t// Be sure to convert to number for comparison.\n\t\t\t\t\t\t\t\t( { id } ) => Number( id ) === Number( item.id )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compare transient images via .includes since gallery may append extra info onto the url.\n\t\t\t\t\t\treturn ! lastMediaPassed.some( ( { urlSlug } ) =>\n\t\t\t\t\t\t\titem.url.includes( urlSlug )\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t\t// Return the filtered media array along with newMedia.\n\t\t\t\t\tonSelect( filteredMedia.concat( newMedia ) );\n\t\t\t\t\t// Reset lastMediaPassed and set it with ids and urls from newMedia.\n\t\t\t\t\tlastMediaPassed = newMedia.map( ( media ) => {\n\t\t\t\t\t\t// Add everything up to '.fileType' to compare via .includes.\n\t\t\t\t\t\tconst cutOffIndex = media.url.lastIndexOf( '.' );\n\t\t\t\t\t\tconst urlSlug = media.url.slice( 0, cutOffIndex );\n\t\t\t\t\t\treturn { id: media.id, urlSlug };\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tsetMedia = onSelect;\n\t\t\t}\n\t\t} else {\n\t\t\tsetMedia = ( [ media ] ) => onSelect( media );\n\t\t}\n\t\tmediaUpload( {\n\t\t\tallowedTypes,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: setMedia,\n\t\t\tonError,\n\t\t} );\n\t};\n\n\tasync function handleBlocksDrop( blocks ) {\n\t\tif ( ! blocks || ! Array.isArray( blocks ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfunction recursivelyFindMediaFromBlocks( _blocks ) {\n\t\t\treturn _blocks.flatMap( ( block ) =>\n\t\t\t\t( block.name === 'core/image' ||\n\t\t\t\t\tblock.name === 'core/audio' ||\n\t\t\t\t\tblock.name === 'core/video' ) &&\n\t\t\t\tblock.attributes.url\n\t\t\t\t\t? [ block ]\n\t\t\t\t\t: recursivelyFindMediaFromBlocks( block.innerBlocks )\n\t\t\t);\n\t\t}\n\n\t\tconst mediaBlocks = recursivelyFindMediaFromBlocks( blocks );\n\n\t\tif ( ! mediaBlocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst uploadedMediaList = await Promise.all(\n\t\t\tmediaBlocks.map( ( block ) =>\n\t\t\t\tblock.attributes.id\n\t\t\t\t\t? block.attributes\n\t\t\t\t\t: new Promise( ( resolve, reject ) => {\n\t\t\t\t\t\t\twindow\n\t\t\t\t\t\t\t\t.fetch( block.attributes.url )\n\t\t\t\t\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t\t\t\t\t.then( ( blob ) =>\n\t\t\t\t\t\t\t\t\tmediaUpload( {\n\t\t\t\t\t\t\t\t\t\tfilesList: [ blob ],\n\t\t\t\t\t\t\t\t\t\tadditionalData: {\n\t\t\t\t\t\t\t\t\t\t\ttitle: block.attributes.title,\n\t\t\t\t\t\t\t\t\t\t\talt_text: block.attributes.alt,\n\t\t\t\t\t\t\t\t\t\t\tcaption: block.attributes.caption,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tonFileChange: ( [ media ] ) => {\n\t\t\t\t\t\t\t\t\t\t\tif ( media.id ) {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( media );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tallowedTypes,\n\t\t\t\t\t\t\t\t\t\tonError: reject,\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.catch( () => resolve( block.attributes.url ) );\n\t\t\t\t\t } )\n\t\t\t)\n\t\t).catch( ( err ) => onError( err ) );\n\n\t\tif ( multiple ) {\n\t\t\tonSelect( uploadedMediaList );\n\t\t} else {\n\t\t\tonSelect( uploadedMediaList[ 0 ] );\n\t\t}\n\t}\n\n\tasync function onHTMLDrop( HTML ) {\n\t\tconst blocks = pasteHandler( { HTML } );\n\t\treturn await handleBlocksDrop( blocks );\n\t}\n\n\tconst onUpload = ( event ) => {\n\t\tonFilesUpload( event.target.files );\n\t};\n\n\tconst defaultRenderPlaceholder = ( content ) => {\n\t\tlet { instructions, title } = labels;\n\n\t\tif ( ! mediaUpload && ! onSelectURL ) {\n\t\t\tinstructions = __(\n\t\t\t\t'To edit this block, you need permission to upload media.'\n\t\t\t);\n\t\t}\n\n\t\tif ( instructions === undefined || title === undefined ) {\n\t\t\tconst typesAllowed = allowedTypes ?? [];\n\n\t\t\tconst [ firstAllowedType ] = typesAllowed;\n\t\t\tconst isOneType = 1 === typesAllowed.length;\n\t\t\tconst isAudio = isOneType && 'audio' === firstAllowedType;\n\t\t\tconst isImage = isOneType && 'image' === firstAllowedType;\n\t\t\tconst isVideo = isOneType && 'video' === firstAllowedType;\n\n\t\t\tif ( instructions === undefined && mediaUpload ) {\n\t\t\t\tinstructions = __(\n\t\t\t\t\t'Upload a media file or pick one from your media library.'\n\t\t\t\t);\n\n\t\t\t\tif ( isAudio ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Upload an audio file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t);\n\t\t\t\t} else if ( isImage ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t);\n\t\t\t\t} else if ( isVideo ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Upload a video file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( title === undefined ) {\n\t\t\t\ttitle = __( 'Media' );\n\n\t\t\t\tif ( isAudio ) {\n\t\t\t\t\ttitle = __( 'Audio' );\n\t\t\t\t} else if ( isImage ) {\n\t\t\t\t\ttitle = __( 'Image' );\n\t\t\t\t} else if ( isVideo ) {\n\t\t\t\t\ttitle = __( 'Video' );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst placeholderClassName = clsx(\n\t\t\t'block-editor-media-placeholder',\n\t\t\tclassName,\n\t\t\t{\n\t\t\t\t'is-appender': isAppender,\n\t\t\t}\n\t\t);\n\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ title }\n\t\t\t\tinstructions={ instructions }\n\t\t\t\tclassName={ placeholderClassName }\n\t\t\t\tnotices={ notices }\n\t\t\t\tonDoubleClick={ onDoubleClick }\n\t\t\t\tpreview={ mediaPreview }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t\t{ children }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\tconst renderPlaceholder = placeholder ?? defaultRenderPlaceholder;\n\n\tconst renderDropZone = () => {\n\t\tif ( disableDropZone ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<DropZone onFilesDrop={ onFilesUpload } onHTMLDrop={ onHTMLDrop } />\n\t\t);\n\t};\n\n\tconst renderCancelLink = () => {\n\t\treturn (\n\t\t\tonCancel && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"block-editor-media-placeholder__cancel-button\"\n\t\t\t\t\ttitle={ __( 'Cancel' ) }\n\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\tonClick={ onCancel }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderUrlSelectionUI = () => {\n\t\treturn (\n\t\t\tonSelectURL && (\n\t\t\t\t<URLSelectionUI\n\t\t\t\t\tisURLInputVisible={ isURLInputVisible }\n\t\t\t\t\tsrc={ src }\n\t\t\t\t\tonChangeSrc={ onChangeSrc }\n\t\t\t\t\tonSubmitSrc={ onSubmitSrc }\n\t\t\t\t\topenURLInput={ openURLInput }\n\t\t\t\t\tcloseURLInput={ closeURLInput }\n\t\t\t\t/>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderFeaturedImageToggle = () => {\n\t\treturn (\n\t\t\tonToggleFeaturedImage && (\n\t\t\t\t<div className=\"block-editor-media-placeholder__url-input-container\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"block-editor-media-placeholder__button\"\n\t\t\t\t\t\tonClick={ onToggleFeaturedImage }\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Use featured image' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderMediaUploadChecked = () => {\n\t\tconst defaultButton = ( { open } ) => {\n\t\t\treturn (\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\topen();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Media Library' ) }\n\t\t\t\t</Button>\n\t\t\t);\n\t\t};\n\t\tconst libraryButton = mediaLibraryButton ?? defaultButton;\n\t\tconst uploadMediaLibraryButton = (\n\t\t\t<MediaUpload\n\t\t\t\taddToGallery={ addToGallery }\n\t\t\t\tgallery={ multiple && onlyAllowsImages() }\n\t\t\t\tmultiple={ multiple }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\tmode=\"browse\"\n\t\t\t\tvalue={\n\t\t\t\t\tArray.isArray( value )\n\t\t\t\t\t\t? value.map( ( { id } ) => id )\n\t\t\t\t\t\t: value.id\n\t\t\t\t}\n\t\t\t\trender={ libraryButton }\n\t\t\t/>\n\t\t);\n\n\t\tif ( mediaUpload && isAppender ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{ renderDropZone() }\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\tonChange={ onUpload }\n\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\tmultiple={ !! multiple }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__button',\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__upload-button'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t{ uploadMediaLibraryButton }\n\t\t\t\t\t\t\t\t\t{ renderUrlSelectionUI() }\n\t\t\t\t\t\t\t\t\t{ renderFeaturedImageToggle() }\n\t\t\t\t\t\t\t\t\t{ renderCancelLink() }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn renderPlaceholder( content );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t);\n\t\t}\n\n\t\tif ( mediaUpload ) {\n\t\t\tconst content = (\n\t\t\t\t<>\n\t\t\t\t\t{ renderDropZone() }\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-media-placeholder__button',\n\t\t\t\t\t\t\t'block-editor-media-placeholder__upload-button'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonChange={ onUpload }\n\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\tmultiple={ !! multiple }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t</FormFileUpload>\n\t\t\t\t\t{ uploadMediaLibraryButton }\n\t\t\t\t\t{ renderUrlSelectionUI() }\n\t\t\t\t\t{ renderFeaturedImageToggle() }\n\t\t\t\t\t{ renderCancelLink() }\n\t\t\t\t</>\n\t\t\t);\n\t\t\treturn renderPlaceholder( content );\n\t\t}\n\n\t\treturn renderPlaceholder( uploadMediaLibraryButton );\n\t};\n\n\tif ( disableMediaButtons ) {\n\t\treturn <MediaUploadCheck>{ renderDropZone() }</MediaUploadCheck>;\n\t}\n\n\treturn (\n\t\t<MediaUploadCheck\n\t\t\tfallback={ renderPlaceholder( renderUrlSelectionUI() ) }\n\t\t>\n\t\t\t{ renderMediaUploadChecked() }\n\t\t</MediaUploadCheck>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-placeholder/README.md\n */\nexport default withFilters( 'editor.MediaPlaceholder' )( MediaPlaceholder );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_data","_icons","_blocks2","_deprecated","_mediaUpload","_check","_urlPopover","_store","_jsxRuntime","noop","InsertFromURLPopover","src","onChange","onSubmit","onClose","popoverAnchor","jsx","default","anchor","children","jsxs","className","type","__","placeholder","value","Button","icon","keyboardReturn","label","URLSelectionUI","onChangeSrc","onSelectURL","setPopoverAnchor","useState","isURLInputVisible","setIsURLInputVisible","openURLInput","closeURLInput","focus","onSubmitSrc","event","preventDefault","onClick","isPressed","variant","ref","MediaPlaceholder","allowedTypes","labels","mediaPreview","notices","isAppender","accept","addToGallery","multiple","handleUpload","disableDropZone","disableMediaButtons","onError","onSelect","onCancel","onToggleFeaturedImage","onDoubleClick","onFilesPreUpload","onHTMLDrop","deprecatedOnHTMLDrop","mediaLibraryButton","style","deprecated","since","version","mediaUpload","useSelect","select","getSettings","blockEditorStore","setSrc","useEffect","_value$src","onlyAllowsImages","length","every","allowedType","startsWith","target","onFilesUpload","files","setMedia","lastMediaPassed","newMedia","filteredMedia","filter","item","id","some","Number","urlSlug","url","includes","concat","map","media","cutOffIndex","lastIndexOf","slice","filesList","onFileChange","handleBlocksDrop","blocks","Array","isArray","recursivelyFindMediaFromBlocks","_blocks","flatMap","block","name","attributes","innerBlocks","mediaBlocks","uploadedMediaList","Promise","all","resolve","reject","window","fetch","then","response","blob","additionalData","title","alt_text","alt","caption","catch","err","HTML","pasteHandler","onUpload","defaultRenderPlaceholder","content","instructions","undefined","typesAllowed","firstAllowedType","isOneType","isAudio","isImage","isVideo","placeholderClassName","clsx","Placeholder","preview","renderPlaceholder","renderDropZone","DropZone","onFilesDrop","renderCancelLink","renderUrlSelectionUI","renderFeaturedImageToggle","renderMediaUploadChecked","defaultButton","open","libraryButton","uploadMediaLibraryButton","gallery","mode","render","Fragment","FormFileUpload","openFileDialog","fallback","_default","exports","withFilters"],"sources":["@wordpress/block-editor/src/components/media-placeholder/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tFormFileUpload,\n\tPlaceholder,\n\tDropZone,\n\twithFilters,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { keyboardReturn } from '@wordpress/icons';\nimport { pasteHandler } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport MediaUpload from '../media-upload';\nimport MediaUploadCheck from '../media-upload/check';\nimport URLPopover from '../url-popover';\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\nconst InsertFromURLPopover = ( {\n\tsrc,\n\tonChange,\n\tonSubmit,\n\tonClose,\n\tpopoverAnchor,\n} ) => (\n\t<URLPopover anchor={ popoverAnchor } onClose={ onClose }>\n\t\t<form\n\t\t\tclassName=\"block-editor-media-placeholder__url-input-form\"\n\t\t\tonSubmit={ onSubmit }\n\t\t>\n\t\t\t<input\n\t\t\t\tclassName=\"block-editor-media-placeholder__url-input-field\"\n\t\t\t\ttype=\"text\"\n\t\t\t\taria-label={ __( 'URL' ) }\n\t\t\t\tplaceholder={ __( 'Paste or type URL' ) }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tvalue={ src }\n\t\t\t/>\n\t\t\t<Button\n\t\t\t\tclassName=\"block-editor-media-placeholder__url-input-submit-button\"\n\t\t\t\ticon={ keyboardReturn }\n\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\ttype=\"submit\"\n\t\t\t/>\n\t\t</form>\n\t</URLPopover>\n);\n\nconst URLSelectionUI = ( { src, onChangeSrc, onSelectURL } ) => {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst [ isURLInputVisible, setIsURLInputVisible ] = useState( false );\n\n\tconst openURLInput = () => {\n\t\tsetIsURLInputVisible( true );\n\t};\n\tconst closeURLInput = () => {\n\t\tsetIsURLInputVisible( false );\n\t\tpopoverAnchor?.focus();\n\t};\n\n\tconst onSubmitSrc = ( event ) => {\n\t\tevent.preventDefault();\n\t\tif ( src && onSelectURL ) {\n\t\t\tonSelectURL( src );\n\t\t\tcloseURLInput();\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className=\"block-editor-media-placeholder__url-input-container\">\n\t\t\t<Button\n\t\t\t\tclassName=\"block-editor-media-placeholder__button\"\n\t\t\t\tonClick={ openURLInput }\n\t\t\t\tisPressed={ isURLInputVisible }\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\tref={ setPopoverAnchor }\n\t\t\t>\n\t\t\t\t{ __( 'Insert from URL' ) }\n\t\t\t</Button>\n\t\t\t{ isURLInputVisible && (\n\t\t\t\t<InsertFromURLPopover\n\t\t\t\t\tsrc={ src }\n\t\t\t\t\tonChange={ onChangeSrc }\n\t\t\t\t\tonSubmit={ onSubmitSrc }\n\t\t\t\t\tonClose={ closeURLInput }\n\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n};\n\nexport function MediaPlaceholder( {\n\tvalue = {},\n\tallowedTypes,\n\tclassName,\n\ticon,\n\tlabels = {},\n\tmediaPreview,\n\tnotices,\n\tisAppender,\n\taccept,\n\taddToGallery,\n\tmultiple = false,\n\thandleUpload = true,\n\tdisableDropZone,\n\tdisableMediaButtons,\n\tonError,\n\tonSelect,\n\tonCancel,\n\tonSelectURL,\n\tonToggleFeaturedImage,\n\tonDoubleClick,\n\tonFilesPreUpload = noop,\n\tonHTMLDrop: deprecatedOnHTMLDrop,\n\tchildren,\n\tmediaLibraryButton,\n\tplaceholder,\n\tstyle,\n} ) {\n\tif ( deprecatedOnHTMLDrop ) {\n\t\tdeprecated( 'wp.blockEditor.MediaPlaceholder onHTMLDrop prop', {\n\t\t\tsince: '6.2',\n\t\t\tversion: '6.4',\n\t\t} );\n\t}\n\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().mediaUpload;\n\t}, [] );\n\tconst [ src, setSrc ] = useState( '' );\n\n\tuseEffect( () => {\n\t\tsetSrc( value?.src ?? '' );\n\t}, [ value?.src ] );\n\n\tconst onlyAllowsImages = () => {\n\t\tif ( ! allowedTypes || allowedTypes.length === 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn allowedTypes.every(\n\t\t\t( allowedType ) =>\n\t\t\t\tallowedType === 'image' || allowedType.startsWith( 'image/' )\n\t\t);\n\t};\n\n\tconst onChangeSrc = ( event ) => {\n\t\tsetSrc( event.target.value );\n\t};\n\n\tconst onFilesUpload = ( files ) => {\n\t\tif ( ! handleUpload ) {\n\t\t\treturn onSelect( files );\n\t\t}\n\t\tonFilesPreUpload( files );\n\t\tlet setMedia;\n\t\tif ( multiple ) {\n\t\t\tif ( addToGallery ) {\n\t\t\t\t// Since the setMedia function runs multiple times per upload group\n\t\t\t\t// and is passed newMedia containing every item in its group each time, we must\n\t\t\t\t// filter out whatever this upload group had previously returned to the\n\t\t\t\t// gallery before adding and returning the image array with replacement newMedia\n\t\t\t\t// values.\n\n\t\t\t\t// Define an array to store urls from newMedia between subsequent function calls.\n\t\t\t\tlet lastMediaPassed = [];\n\t\t\t\tsetMedia = ( newMedia ) => {\n\t\t\t\t\t// Remove any images this upload group is responsible for (lastMediaPassed).\n\t\t\t\t\t// Their replacements are contained in newMedia.\n\t\t\t\t\tconst filteredMedia = ( value ?? [] ).filter( ( item ) => {\n\t\t\t\t\t\t// If Item has id, only remove it if lastMediaPassed has an item with that id.\n\t\t\t\t\t\tif ( item.id ) {\n\t\t\t\t\t\t\treturn ! lastMediaPassed.some(\n\t\t\t\t\t\t\t\t// Be sure to convert to number for comparison.\n\t\t\t\t\t\t\t\t( { id } ) => Number( id ) === Number( item.id )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compare transient images via .includes since gallery may append extra info onto the url.\n\t\t\t\t\t\treturn ! lastMediaPassed.some( ( { urlSlug } ) =>\n\t\t\t\t\t\t\titem.url.includes( urlSlug )\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t\t// Return the filtered media array along with newMedia.\n\t\t\t\t\tonSelect( filteredMedia.concat( newMedia ) );\n\t\t\t\t\t// Reset lastMediaPassed and set it with ids and urls from newMedia.\n\t\t\t\t\tlastMediaPassed = newMedia.map( ( media ) => {\n\t\t\t\t\t\t// Add everything up to '.fileType' to compare via .includes.\n\t\t\t\t\t\tconst cutOffIndex = media.url.lastIndexOf( '.' );\n\t\t\t\t\t\tconst urlSlug = media.url.slice( 0, cutOffIndex );\n\t\t\t\t\t\treturn { id: media.id, urlSlug };\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tsetMedia = onSelect;\n\t\t\t}\n\t\t} else {\n\t\t\tsetMedia = ( [ media ] ) => onSelect( media );\n\t\t}\n\t\tmediaUpload( {\n\t\t\tallowedTypes,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: setMedia,\n\t\t\tonError,\n\t\t} );\n\t};\n\n\tasync function handleBlocksDrop( blocks ) {\n\t\tif ( ! blocks || ! Array.isArray( blocks ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfunction recursivelyFindMediaFromBlocks( _blocks ) {\n\t\t\treturn _blocks.flatMap( ( block ) =>\n\t\t\t\t( block.name === 'core/image' ||\n\t\t\t\t\tblock.name === 'core/audio' ||\n\t\t\t\t\tblock.name === 'core/video' ) &&\n\t\t\t\tblock.attributes.url\n\t\t\t\t\t? [ block ]\n\t\t\t\t\t: recursivelyFindMediaFromBlocks( block.innerBlocks )\n\t\t\t);\n\t\t}\n\n\t\tconst mediaBlocks = recursivelyFindMediaFromBlocks( blocks );\n\n\t\tif ( ! mediaBlocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst uploadedMediaList = await Promise.all(\n\t\t\tmediaBlocks.map( ( block ) =>\n\t\t\t\tblock.attributes.id\n\t\t\t\t\t? block.attributes\n\t\t\t\t\t: new Promise( ( resolve, reject ) => {\n\t\t\t\t\t\t\twindow\n\t\t\t\t\t\t\t\t.fetch( block.attributes.url )\n\t\t\t\t\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t\t\t\t\t.then( ( blob ) =>\n\t\t\t\t\t\t\t\t\tmediaUpload( {\n\t\t\t\t\t\t\t\t\t\tfilesList: [ blob ],\n\t\t\t\t\t\t\t\t\t\tadditionalData: {\n\t\t\t\t\t\t\t\t\t\t\ttitle: block.attributes.title,\n\t\t\t\t\t\t\t\t\t\t\talt_text: block.attributes.alt,\n\t\t\t\t\t\t\t\t\t\t\tcaption: block.attributes.caption,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tonFileChange: ( [ media ] ) => {\n\t\t\t\t\t\t\t\t\t\t\tif ( media.id ) {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( media );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tallowedTypes,\n\t\t\t\t\t\t\t\t\t\tonError: reject,\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.catch( () => resolve( block.attributes.url ) );\n\t\t\t\t\t } )\n\t\t\t)\n\t\t).catch( ( err ) => onError( err ) );\n\n\t\tif ( multiple ) {\n\t\t\tonSelect( uploadedMediaList );\n\t\t} else {\n\t\t\tonSelect( uploadedMediaList[ 0 ] );\n\t\t}\n\t}\n\n\tasync function onHTMLDrop( HTML ) {\n\t\tconst blocks = pasteHandler( { HTML } );\n\t\treturn await handleBlocksDrop( blocks );\n\t}\n\n\tconst onUpload = ( event ) => {\n\t\tonFilesUpload( event.target.files );\n\t};\n\n\tconst defaultRenderPlaceholder = ( content ) => {\n\t\tlet { instructions, title } = labels;\n\n\t\tif ( ! mediaUpload && ! onSelectURL ) {\n\t\t\tinstructions = __(\n\t\t\t\t'To edit this block, you need permission to upload media.'\n\t\t\t);\n\t\t}\n\n\t\tif ( instructions === undefined || title === undefined ) {\n\t\t\tconst typesAllowed = allowedTypes ?? [];\n\n\t\t\tconst [ firstAllowedType ] = typesAllowed;\n\t\t\tconst isOneType = 1 === typesAllowed.length;\n\t\t\tconst isAudio = isOneType && 'audio' === firstAllowedType;\n\t\t\tconst isImage = isOneType && 'image' === firstAllowedType;\n\t\t\tconst isVideo = isOneType && 'video' === firstAllowedType;\n\n\t\t\tif ( instructions === undefined && mediaUpload ) {\n\t\t\t\tinstructions = __(\n\t\t\t\t\t'Upload a media file or pick one from your media library.'\n\t\t\t\t);\n\n\t\t\t\tif ( isAudio ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Upload an audio file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t);\n\t\t\t\t} else if ( isImage ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t);\n\t\t\t\t} else if ( isVideo ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Upload a video file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( title === undefined ) {\n\t\t\t\ttitle = __( 'Media' );\n\n\t\t\t\tif ( isAudio ) {\n\t\t\t\t\ttitle = __( 'Audio' );\n\t\t\t\t} else if ( isImage ) {\n\t\t\t\t\ttitle = __( 'Image' );\n\t\t\t\t} else if ( isVideo ) {\n\t\t\t\t\ttitle = __( 'Video' );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst placeholderClassName = clsx(\n\t\t\t'block-editor-media-placeholder',\n\t\t\tclassName,\n\t\t\t{\n\t\t\t\t'is-appender': isAppender,\n\t\t\t}\n\t\t);\n\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ title }\n\t\t\t\tinstructions={ instructions }\n\t\t\t\tclassName={ placeholderClassName }\n\t\t\t\tnotices={ notices }\n\t\t\t\tonDoubleClick={ onDoubleClick }\n\t\t\t\tpreview={ mediaPreview }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t\t{ children }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\tconst renderPlaceholder = placeholder ?? defaultRenderPlaceholder;\n\n\tconst renderDropZone = () => {\n\t\tif ( disableDropZone ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<DropZone onFilesDrop={ onFilesUpload } onHTMLDrop={ onHTMLDrop } />\n\t\t);\n\t};\n\n\tconst renderCancelLink = () => {\n\t\treturn (\n\t\t\tonCancel && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"block-editor-media-placeholder__cancel-button\"\n\t\t\t\t\ttitle={ __( 'Cancel' ) }\n\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\tonClick={ onCancel }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderUrlSelectionUI = () => {\n\t\treturn (\n\t\t\tonSelectURL && (\n\t\t\t\t<URLSelectionUI\n\t\t\t\t\tsrc={ src }\n\t\t\t\t\tonChangeSrc={ onChangeSrc }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t/>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderFeaturedImageToggle = () => {\n\t\treturn (\n\t\t\tonToggleFeaturedImage && (\n\t\t\t\t<div className=\"block-editor-media-placeholder__url-input-container\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"block-editor-media-placeholder__button\"\n\t\t\t\t\t\tonClick={ onToggleFeaturedImage }\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Use featured image' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderMediaUploadChecked = () => {\n\t\tconst defaultButton = ( { open } ) => {\n\t\t\treturn (\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\topen();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Media Library' ) }\n\t\t\t\t</Button>\n\t\t\t);\n\t\t};\n\t\tconst libraryButton = mediaLibraryButton ?? defaultButton;\n\t\tconst uploadMediaLibraryButton = (\n\t\t\t<MediaUpload\n\t\t\t\taddToGallery={ addToGallery }\n\t\t\t\tgallery={ multiple && onlyAllowsImages() }\n\t\t\t\tmultiple={ multiple }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\tmode=\"browse\"\n\t\t\t\tvalue={\n\t\t\t\t\tArray.isArray( value )\n\t\t\t\t\t\t? value.map( ( { id } ) => id )\n\t\t\t\t\t\t: value.id\n\t\t\t\t}\n\t\t\t\trender={ libraryButton }\n\t\t\t/>\n\t\t);\n\n\t\tif ( mediaUpload && isAppender ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{ renderDropZone() }\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\tonChange={ onUpload }\n\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\tmultiple={ !! multiple }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__button',\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__upload-button'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t{ uploadMediaLibraryButton }\n\t\t\t\t\t\t\t\t\t{ renderUrlSelectionUI() }\n\t\t\t\t\t\t\t\t\t{ renderFeaturedImageToggle() }\n\t\t\t\t\t\t\t\t\t{ renderCancelLink() }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn renderPlaceholder( content );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t);\n\t\t}\n\n\t\tif ( mediaUpload ) {\n\t\t\tconst content = (\n\t\t\t\t<>\n\t\t\t\t\t{ renderDropZone() }\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-media-placeholder__button',\n\t\t\t\t\t\t\t'block-editor-media-placeholder__upload-button'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonChange={ onUpload }\n\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\tmultiple={ !! multiple }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t</FormFileUpload>\n\t\t\t\t\t{ uploadMediaLibraryButton }\n\t\t\t\t\t{ renderUrlSelectionUI() }\n\t\t\t\t\t{ renderFeaturedImageToggle() }\n\t\t\t\t\t{ renderCancelLink() }\n\t\t\t\t</>\n\t\t\t);\n\t\t\treturn renderPlaceholder( content );\n\t\t}\n\n\t\treturn renderPlaceholder( uploadMediaLibraryButton );\n\t};\n\n\tif ( disableMediaButtons ) {\n\t\treturn <MediaUploadCheck>{ renderDropZone() }</MediaUploadCheck>;\n\t}\n\n\treturn (\n\t\t<MediaUploadCheck\n\t\t\tfallback={ renderPlaceholder( renderUrlSelectionUI() ) }\n\t\t>\n\t\t\t{ renderMediaUploadChecked() }\n\t\t</MediaUploadCheck>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-placeholder/README.md\n */\nexport default withFilters( 'editor.MediaPlaceholder' )( MediaPlaceholder );\n"],"mappings":"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","ignoreList":[]}
@@ -184,6 +184,7 @@ function NavigableToolbar({
184
184
  shouldUseKeyboardFocusShortcut = true,
185
185
  __experimentalInitialIndex: initialIndex,
186
186
  __experimentalOnIndexChange: onIndexChange,
187
+ orientation = 'horizontal',
187
188
  ...props
188
189
  }) {
189
190
  const toolbarRef = (0, _element.useRef)();
@@ -201,12 +202,13 @@ function NavigableToolbar({
201
202
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Toolbar, {
202
203
  label: props['aria-label'],
203
204
  ref: toolbarRef,
205
+ orientation: orientation,
204
206
  ...props,
205
207
  children: children
206
208
  });
207
209
  }
208
210
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.NavigableMenu, {
209
- orientation: "horizontal",
211
+ orientation: orientation,
210
212
  role: "toolbar",
211
213
  ref: toolbarRef,
212
214
  ...props,
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_element","_data","_deprecated","_interopRequireDefault","_dom","_keyboardShortcuts","_keycodes","_store","_lockUnlock","_jsxRuntime","hasOnlyToolbarItem","elements","dataProp","some","element","dataset","getAllFocusableToolbarItemsIn","container","Array","from","querySelectorAll","hasFocusWithin","contains","ownerDocument","activeElement","focusFirstTabbableIn","firstTabbable","focus","tabbable","find","preventScroll","useIsAccessibleToolbar","toolbarRef","initialAccessibleToolbarState","isAccessibleToolbar","setIsAccessibleToolbar","useState","determineIsAccessibleToolbar","useCallback","tabbables","current","onlyToolbarItem","deprecated","since","alternative","link","useLayoutEffect","observer","window","MutationObserver","observe","childList","subtree","disconnect","useToolbarFocus","focusOnMount","defaultIndex","onIndexChange","shouldUseKeyboardFocusShortcut","focusEditorOnEscape","initialFocusOnMount","initialIndex","focusToolbar","focusToolbarViaShortcut","useShortcut","useEffect","navigableToolbarRef","raf","requestAnimationFrame","items","index","cancelAnimationFrame","findIndex","item","tabIndex","getLastFocus","unlock","useSelect","blockEditorStore","handleKeyDown","event","lastFocus","keyCode","ESCAPE","preventDefault","addEventListener","removeEventListener","NavigableToolbar","children","__experimentalInitialIndex","__experimentalOnIndexChange","props","useRef","jsx","Toolbar","label","ref","NavigableMenu","orientation","role"],"sources":["@wordpress/block-editor/src/components/navigable-toolbar/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { NavigableMenu, Toolbar } from '@wordpress/components';\nimport {\n\tuseState,\n\tuseRef,\n\tuseLayoutEffect,\n\tuseEffect,\n\tuseCallback,\n} from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { focus } from '@wordpress/dom';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction hasOnlyToolbarItem( elements ) {\n\tconst dataProp = 'toolbarItem';\n\treturn ! elements.some( ( element ) => ! ( dataProp in element.dataset ) );\n}\n\nfunction getAllFocusableToolbarItemsIn( container ) {\n\treturn Array.from(\n\t\tcontainer.querySelectorAll( '[data-toolbar-item]:not([disabled])' )\n\t);\n}\n\nfunction hasFocusWithin( container ) {\n\treturn container.contains( container.ownerDocument.activeElement );\n}\n\nfunction focusFirstTabbableIn( container ) {\n\tconst [ firstTabbable ] = focus.tabbable.find( container );\n\n\tif ( firstTabbable ) {\n\t\tfirstTabbable.focus( {\n\t\t\t// When focusing newly mounted toolbars,\n\t\t\t// the position of the popover is often not right on the first render\n\t\t\t// This prevents the layout shifts when focusing the dialogs.\n\t\t\tpreventScroll: true,\n\t\t} );\n\t}\n}\n\nfunction useIsAccessibleToolbar( toolbarRef ) {\n\t/*\n\t * By default, we'll assume the starting accessible state of the Toolbar\n\t * is true, as it seems to be the most common case.\n\t *\n\t * Transitioning from an (initial) false to true state causes the\n\t * <Toolbar /> component to mount twice, which is causing undesired\n\t * side-effects. These side-effects appear to only affect certain\n\t * E2E tests.\n\t *\n\t * This was initial discovered in this pull-request:\n\t * https://github.com/WordPress/gutenberg/pull/23425\n\t */\n\tconst initialAccessibleToolbarState = true;\n\n\t// By default, it's gonna render NavigableMenu. If all the tabbable elements\n\t// inside the toolbar are ToolbarItem components (or derived components like\n\t// ToolbarButton), then we can wrap them with the accessible Toolbar\n\t// component.\n\tconst [ isAccessibleToolbar, setIsAccessibleToolbar ] = useState(\n\t\tinitialAccessibleToolbarState\n\t);\n\n\tconst determineIsAccessibleToolbar = useCallback( () => {\n\t\tconst tabbables = focus.tabbable.find( toolbarRef.current );\n\t\tconst onlyToolbarItem = hasOnlyToolbarItem( tabbables );\n\t\tif ( ! onlyToolbarItem ) {\n\t\t\tdeprecated( 'Using custom components as toolbar controls', {\n\t\t\t\tsince: '5.6',\n\t\t\t\talternative:\n\t\t\t\t\t'ToolbarItem, ToolbarButton or ToolbarDropdownMenu components',\n\t\t\t\tlink: 'https://developer.wordpress.org/block-editor/components/toolbar-button/#inside-blockcontrols',\n\t\t\t} );\n\t\t}\n\t\tsetIsAccessibleToolbar( onlyToolbarItem );\n\t}, [ toolbarRef ] );\n\n\tuseLayoutEffect( () => {\n\t\t// Toolbar buttons may be rendered asynchronously, so we use\n\t\t// MutationObserver to check if the toolbar subtree has been modified.\n\t\tconst observer = new window.MutationObserver(\n\t\t\tdetermineIsAccessibleToolbar\n\t\t);\n\t\tobserver.observe( toolbarRef.current, {\n\t\t\tchildList: true,\n\t\t\tsubtree: true,\n\t\t} );\n\t\treturn () => observer.disconnect();\n\t}, [ determineIsAccessibleToolbar, isAccessibleToolbar, toolbarRef ] );\n\n\treturn isAccessibleToolbar;\n}\n\nfunction useToolbarFocus( {\n\ttoolbarRef,\n\tfocusOnMount,\n\tisAccessibleToolbar,\n\tdefaultIndex,\n\tonIndexChange,\n\tshouldUseKeyboardFocusShortcut,\n\tfocusEditorOnEscape,\n} ) {\n\t// Make sure we don't use modified versions of this prop.\n\tconst [ initialFocusOnMount ] = useState( focusOnMount );\n\tconst [ initialIndex ] = useState( defaultIndex );\n\n\tconst focusToolbar = useCallback( () => {\n\t\tfocusFirstTabbableIn( toolbarRef.current );\n\t}, [ toolbarRef ] );\n\n\tconst focusToolbarViaShortcut = () => {\n\t\tif ( shouldUseKeyboardFocusShortcut ) {\n\t\t\tfocusToolbar();\n\t\t}\n\t};\n\n\t// Focus on toolbar when pressing alt+F10 when the toolbar is visible.\n\tuseShortcut( 'core/block-editor/focus-toolbar', focusToolbarViaShortcut );\n\n\tuseEffect( () => {\n\t\tif ( initialFocusOnMount ) {\n\t\t\tfocusToolbar();\n\t\t}\n\t}, [ isAccessibleToolbar, initialFocusOnMount, focusToolbar ] );\n\n\tuseEffect( () => {\n\t\t// Store ref so we have access on useEffect cleanup: https://legacy.reactjs.org/blog/2020/08/10/react-v17-rc.html#effect-cleanup-timing\n\t\tconst navigableToolbarRef = toolbarRef.current;\n\t\t// If initialIndex is passed, we focus on that toolbar item when the\n\t\t// toolbar gets mounted and initial focus is not forced.\n\t\t// We have to wait for the next browser paint because block controls aren't\n\t\t// rendered right away when the toolbar gets mounted.\n\t\tlet raf = 0;\n\n\t\t// If the toolbar already had focus before the render, we don't want to move it.\n\t\t// https://github.com/WordPress/gutenberg/issues/58511\n\t\tif (\n\t\t\t! initialFocusOnMount &&\n\t\t\t! hasFocusWithin( navigableToolbarRef )\n\t\t) {\n\t\t\traf = window.requestAnimationFrame( () => {\n\t\t\t\tconst items =\n\t\t\t\t\tgetAllFocusableToolbarItemsIn( navigableToolbarRef );\n\t\t\t\tconst index = initialIndex || 0;\n\t\t\t\tif ( items[ index ] && hasFocusWithin( navigableToolbarRef ) ) {\n\t\t\t\t\titems[ index ].focus( {\n\t\t\t\t\t\t// When focusing newly mounted toolbars,\n\t\t\t\t\t\t// the position of the popover is often not right on the first render\n\t\t\t\t\t\t// This prevents the layout shifts when focusing the dialogs.\n\t\t\t\t\t\tpreventScroll: true,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\treturn () => {\n\t\t\twindow.cancelAnimationFrame( raf );\n\t\t\tif ( ! onIndexChange || ! navigableToolbarRef ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// When the toolbar element is unmounted and onIndexChange is passed, we\n\t\t\t// pass the focused toolbar item index so it can be hydrated later.\n\t\t\tconst items = getAllFocusableToolbarItemsIn( navigableToolbarRef );\n\t\t\tconst index = items.findIndex( ( item ) => item.tabIndex === 0 );\n\t\t\tonIndexChange( index );\n\t\t};\n\t}, [ initialIndex, initialFocusOnMount, onIndexChange, toolbarRef ] );\n\n\tconst { getLastFocus } = unlock( useSelect( blockEditorStore ) );\n\t/**\n\t * Handles returning focus to the block editor canvas when pressing escape.\n\t */\n\tuseEffect( () => {\n\t\tconst navigableToolbarRef = toolbarRef.current;\n\n\t\tif ( focusEditorOnEscape ) {\n\t\t\tconst handleKeyDown = ( event ) => {\n\t\t\t\tconst lastFocus = getLastFocus();\n\t\t\t\tif ( event.keyCode === ESCAPE && lastFocus?.current ) {\n\t\t\t\t\t// Focus the last focused element when pressing escape.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tlastFocus.current.focus();\n\t\t\t\t}\n\t\t\t};\n\t\t\tnavigableToolbarRef.addEventListener( 'keydown', handleKeyDown );\n\t\t\treturn () => {\n\t\t\t\tnavigableToolbarRef.removeEventListener(\n\t\t\t\t\t'keydown',\n\t\t\t\t\thandleKeyDown\n\t\t\t\t);\n\t\t\t};\n\t\t}\n\t}, [ focusEditorOnEscape, getLastFocus, toolbarRef ] );\n}\n\nexport default function NavigableToolbar( {\n\tchildren,\n\tfocusOnMount,\n\tfocusEditorOnEscape = false,\n\tshouldUseKeyboardFocusShortcut = true,\n\t__experimentalInitialIndex: initialIndex,\n\t__experimentalOnIndexChange: onIndexChange,\n\t...props\n} ) {\n\tconst toolbarRef = useRef();\n\tconst isAccessibleToolbar = useIsAccessibleToolbar( toolbarRef );\n\n\tuseToolbarFocus( {\n\t\ttoolbarRef,\n\t\tfocusOnMount,\n\t\tdefaultIndex: initialIndex,\n\t\tonIndexChange,\n\t\tisAccessibleToolbar,\n\t\tshouldUseKeyboardFocusShortcut,\n\t\tfocusEditorOnEscape,\n\t} );\n\n\tif ( isAccessibleToolbar ) {\n\t\treturn (\n\t\t\t<Toolbar\n\t\t\t\tlabel={ props[ 'aria-label' ] }\n\t\t\t\tref={ toolbarRef }\n\t\t\t\t{ ...props }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Toolbar>\n\t\t);\n\t}\n\n\treturn (\n\t\t<NavigableMenu\n\t\t\torientation=\"horizontal\"\n\t\t\trole=\"toolbar\"\n\t\t\tref={ toolbarRef }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ children }\n\t\t</NavigableMenu>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAOA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,IAAA,GAAAL,OAAA;AACA,IAAAM,kBAAA,GAAAN,OAAA;AACA,IAAAO,SAAA,GAAAP,OAAA;AAKA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AAA2C,IAAAU,WAAA,GAAAV,OAAA;AArB3C;AACA;AACA;;AAeA;AACA;AACA;;AAIA,SAASW,kBAAkBA,CAAEC,QAAQ,EAAG;EACvC,MAAMC,QAAQ,GAAG,aAAa;EAC9B,OAAO,CAAED,QAAQ,CAACE,IAAI,CAAIC,OAAO,IAAM,EAAIF,QAAQ,IAAIE,OAAO,CAACC,OAAO,CAAG,CAAC;AAC3E;AAEA,SAASC,6BAA6BA,CAAEC,SAAS,EAAG;EACnD,OAAOC,KAAK,CAACC,IAAI,CAChBF,SAAS,CAACG,gBAAgB,CAAE,qCAAsC,CACnE,CAAC;AACF;AAEA,SAASC,cAAcA,CAAEJ,SAAS,EAAG;EACpC,OAAOA,SAAS,CAACK,QAAQ,CAAEL,SAAS,CAACM,aAAa,CAACC,aAAc,CAAC;AACnE;AAEA,SAASC,oBAAoBA,CAAER,SAAS,EAAG;EAC1C,MAAM,CAAES,aAAa,CAAE,GAAGC,UAAK,CAACC,QAAQ,CAACC,IAAI,CAAEZ,SAAU,CAAC;EAE1D,IAAKS,aAAa,EAAG;IACpBA,aAAa,CAACC,KAAK,CAAE;MACpB;MACA;MACA;MACAG,aAAa,EAAE;IAChB,CAAE,CAAC;EACJ;AACD;AAEA,SAASC,sBAAsBA,CAAEC,UAAU,EAAG;EAC7C;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACC,MAAMC,6BAA6B,GAAG,IAAI;;EAE1C;EACA;EACA;EACA;EACA,MAAM,CAAEC,mBAAmB,EAAEC,sBAAsB,CAAE,GAAG,IAAAC,iBAAQ,EAC/DH,6BACD,CAAC;EAED,MAAMI,4BAA4B,GAAG,IAAAC,oBAAW,EAAE,MAAM;IACvD,MAAMC,SAAS,GAAGZ,UAAK,CAACC,QAAQ,CAACC,IAAI,CAAEG,UAAU,CAACQ,OAAQ,CAAC;IAC3D,MAAMC,eAAe,GAAG/B,kBAAkB,CAAE6B,SAAU,CAAC;IACvD,IAAK,CAAEE,eAAe,EAAG;MACxB,IAAAC,mBAAU,EAAE,6CAA6C,EAAE;QAC1DC,KAAK,EAAE,KAAK;QACZC,WAAW,EACV,8DAA8D;QAC/DC,IAAI,EAAE;MACP,CAAE,CAAC;IACJ;IACAV,sBAAsB,CAAEM,eAAgB,CAAC;EAC1C,CAAC,EAAE,CAAET,UAAU,CAAG,CAAC;EAEnB,IAAAc,wBAAe,EAAE,MAAM;IACtB;IACA;IACA,MAAMC,QAAQ,GAAG,IAAIC,MAAM,CAACC,gBAAgB,CAC3CZ,4BACD,CAAC;IACDU,QAAQ,CAACG,OAAO,CAAElB,UAAU,CAACQ,OAAO,EAAE;MACrCW,SAAS,EAAE,IAAI;MACfC,OAAO,EAAE;IACV,CAAE,CAAC;IACH,OAAO,MAAML,QAAQ,CAACM,UAAU,CAAC,CAAC;EACnC,CAAC,EAAE,CAAEhB,4BAA4B,EAAEH,mBAAmB,EAAEF,UAAU,CAAG,CAAC;EAEtE,OAAOE,mBAAmB;AAC3B;AAEA,SAASoB,eAAeA,CAAE;EACzBtB,UAAU;EACVuB,YAAY;EACZrB,mBAAmB;EACnBsB,YAAY;EACZC,aAAa;EACbC,8BAA8B;EAC9BC;AACD,CAAC,EAAG;EACH;EACA,MAAM,CAAEC,mBAAmB,CAAE,GAAG,IAAAxB,iBAAQ,EAAEmB,YAAa,CAAC;EACxD,MAAM,CAAEM,YAAY,CAAE,GAAG,IAAAzB,iBAAQ,EAAEoB,YAAa,CAAC;EAEjD,MAAMM,YAAY,GAAG,IAAAxB,oBAAW,EAAE,MAAM;IACvCb,oBAAoB,CAAEO,UAAU,CAACQ,OAAQ,CAAC;EAC3C,CAAC,EAAE,CAAER,UAAU,CAAG,CAAC;EAEnB,MAAM+B,uBAAuB,GAAGA,CAAA,KAAM;IACrC,IAAKL,8BAA8B,EAAG;MACrCI,YAAY,CAAC,CAAC;IACf;EACD,CAAC;;EAED;EACA,IAAAE,8BAAW,EAAE,iCAAiC,EAAED,uBAAwB,CAAC;EAEzE,IAAAE,kBAAS,EAAE,MAAM;IAChB,IAAKL,mBAAmB,EAAG;MAC1BE,YAAY,CAAC,CAAC;IACf;EACD,CAAC,EAAE,CAAE5B,mBAAmB,EAAE0B,mBAAmB,EAAEE,YAAY,CAAG,CAAC;EAE/D,IAAAG,kBAAS,EAAE,MAAM;IAChB;IACA,MAAMC,mBAAmB,GAAGlC,UAAU,CAACQ,OAAO;IAC9C;IACA;IACA;IACA;IACA,IAAI2B,GAAG,GAAG,CAAC;;IAEX;IACA;IACA,IACC,CAAEP,mBAAmB,IACrB,CAAEvC,cAAc,CAAE6C,mBAAoB,CAAC,EACtC;MACDC,GAAG,GAAGnB,MAAM,CAACoB,qBAAqB,CAAE,MAAM;QACzC,MAAMC,KAAK,GACVrD,6BAA6B,CAAEkD,mBAAoB,CAAC;QACrD,MAAMI,KAAK,GAAGT,YAAY,IAAI,CAAC;QAC/B,IAAKQ,KAAK,CAAEC,KAAK,CAAE,IAAIjD,cAAc,CAAE6C,mBAAoB,CAAC,EAAG;UAC9DG,KAAK,CAAEC,KAAK,CAAE,CAAC3C,KAAK,CAAE;YACrB;YACA;YACA;YACAG,aAAa,EAAE;UAChB,CAAE,CAAC;QACJ;MACD,CAAE,CAAC;IACJ;IACA,OAAO,MAAM;MACZkB,MAAM,CAACuB,oBAAoB,CAAEJ,GAAI,CAAC;MAClC,IAAK,CAAEV,aAAa,IAAI,CAAES,mBAAmB,EAAG;QAC/C;MACD;MACA;MACA;MACA,MAAMG,KAAK,GAAGrD,6BAA6B,CAAEkD,mBAAoB,CAAC;MAClE,MAAMI,KAAK,GAAGD,KAAK,CAACG,SAAS,CAAIC,IAAI,IAAMA,IAAI,CAACC,QAAQ,KAAK,CAAE,CAAC;MAChEjB,aAAa,CAAEa,KAAM,CAAC;IACvB,CAAC;EACF,CAAC,EAAE,CAAET,YAAY,EAAED,mBAAmB,EAAEH,aAAa,EAAEzB,UAAU,CAAG,CAAC;EAErE,MAAM;IAAE2C;EAAa,CAAC,GAAG,IAAAC,kBAAM,EAAE,IAAAC,eAAS,EAAEC,YAAiB,CAAE,CAAC;EAChE;AACD;AACA;EACC,IAAAb,kBAAS,EAAE,MAAM;IAChB,MAAMC,mBAAmB,GAAGlC,UAAU,CAACQ,OAAO;IAE9C,IAAKmB,mBAAmB,EAAG;MAC1B,MAAMoB,aAAa,GAAKC,KAAK,IAAM;QAClC,MAAMC,SAAS,GAAGN,YAAY,CAAC,CAAC;QAChC,IAAKK,KAAK,CAACE,OAAO,KAAKC,gBAAM,IAAIF,SAAS,EAAEzC,OAAO,EAAG;UACrD;UACAwC,KAAK,CAACI,cAAc,CAAC,CAAC;UACtBH,SAAS,CAACzC,OAAO,CAACb,KAAK,CAAC,CAAC;QAC1B;MACD,CAAC;MACDuC,mBAAmB,CAACmB,gBAAgB,CAAE,SAAS,EAAEN,aAAc,CAAC;MAChE,OAAO,MAAM;QACZb,mBAAmB,CAACoB,mBAAmB,CACtC,SAAS,EACTP,aACD,CAAC;MACF,CAAC;IACF;EACD,CAAC,EAAE,CAAEpB,mBAAmB,EAAEgB,YAAY,EAAE3C,UAAU,CAAG,CAAC;AACvD;AAEe,SAASuD,gBAAgBA,CAAE;EACzCC,QAAQ;EACRjC,YAAY;EACZI,mBAAmB,GAAG,KAAK;EAC3BD,8BAA8B,GAAG,IAAI;EACrC+B,0BAA0B,EAAE5B,YAAY;EACxC6B,2BAA2B,EAAEjC,aAAa;EAC1C,GAAGkC;AACJ,CAAC,EAAG;EACH,MAAM3D,UAAU,GAAG,IAAA4D,eAAM,EAAC,CAAC;EAC3B,MAAM1D,mBAAmB,GAAGH,sBAAsB,CAAEC,UAAW,CAAC;EAEhEsB,eAAe,CAAE;IAChBtB,UAAU;IACVuB,YAAY;IACZC,YAAY,EAAEK,YAAY;IAC1BJ,aAAa;IACbvB,mBAAmB;IACnBwB,8BAA8B;IAC9BC;EACD,CAAE,CAAC;EAEH,IAAKzB,mBAAmB,EAAG;IAC1B,oBACC,IAAAzB,WAAA,CAAAoF,GAAA,EAAC/F,WAAA,CAAAgG,OAAO;MACPC,KAAK,EAAGJ,KAAK,CAAE,YAAY,CAAI;MAC/BK,GAAG,EAAGhE,UAAY;MAAA,GACb2D,KAAK;MAAAH,QAAA,EAERA;IAAQ,CACF,CAAC;EAEZ;EAEA,oBACC,IAAA/E,WAAA,CAAAoF,GAAA,EAAC/F,WAAA,CAAAmG,aAAa;IACbC,WAAW,EAAC,YAAY;IACxBC,IAAI,EAAC,SAAS;IACdH,GAAG,EAAGhE,UAAY;IAAA,GACb2D,KAAK;IAAAH,QAAA,EAERA;EAAQ,CACI,CAAC;AAElB","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_element","_data","_deprecated","_interopRequireDefault","_dom","_keyboardShortcuts","_keycodes","_store","_lockUnlock","_jsxRuntime","hasOnlyToolbarItem","elements","dataProp","some","element","dataset","getAllFocusableToolbarItemsIn","container","Array","from","querySelectorAll","hasFocusWithin","contains","ownerDocument","activeElement","focusFirstTabbableIn","firstTabbable","focus","tabbable","find","preventScroll","useIsAccessibleToolbar","toolbarRef","initialAccessibleToolbarState","isAccessibleToolbar","setIsAccessibleToolbar","useState","determineIsAccessibleToolbar","useCallback","tabbables","current","onlyToolbarItem","deprecated","since","alternative","link","useLayoutEffect","observer","window","MutationObserver","observe","childList","subtree","disconnect","useToolbarFocus","focusOnMount","defaultIndex","onIndexChange","shouldUseKeyboardFocusShortcut","focusEditorOnEscape","initialFocusOnMount","initialIndex","focusToolbar","focusToolbarViaShortcut","useShortcut","useEffect","navigableToolbarRef","raf","requestAnimationFrame","items","index","cancelAnimationFrame","findIndex","item","tabIndex","getLastFocus","unlock","useSelect","blockEditorStore","handleKeyDown","event","lastFocus","keyCode","ESCAPE","preventDefault","addEventListener","removeEventListener","NavigableToolbar","children","__experimentalInitialIndex","__experimentalOnIndexChange","orientation","props","useRef","jsx","Toolbar","label","ref","NavigableMenu","role"],"sources":["@wordpress/block-editor/src/components/navigable-toolbar/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { NavigableMenu, Toolbar } from '@wordpress/components';\nimport {\n\tuseState,\n\tuseRef,\n\tuseLayoutEffect,\n\tuseEffect,\n\tuseCallback,\n} from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { focus } from '@wordpress/dom';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction hasOnlyToolbarItem( elements ) {\n\tconst dataProp = 'toolbarItem';\n\treturn ! elements.some( ( element ) => ! ( dataProp in element.dataset ) );\n}\n\nfunction getAllFocusableToolbarItemsIn( container ) {\n\treturn Array.from(\n\t\tcontainer.querySelectorAll( '[data-toolbar-item]:not([disabled])' )\n\t);\n}\n\nfunction hasFocusWithin( container ) {\n\treturn container.contains( container.ownerDocument.activeElement );\n}\n\nfunction focusFirstTabbableIn( container ) {\n\tconst [ firstTabbable ] = focus.tabbable.find( container );\n\n\tif ( firstTabbable ) {\n\t\tfirstTabbable.focus( {\n\t\t\t// When focusing newly mounted toolbars,\n\t\t\t// the position of the popover is often not right on the first render\n\t\t\t// This prevents the layout shifts when focusing the dialogs.\n\t\t\tpreventScroll: true,\n\t\t} );\n\t}\n}\n\nfunction useIsAccessibleToolbar( toolbarRef ) {\n\t/*\n\t * By default, we'll assume the starting accessible state of the Toolbar\n\t * is true, as it seems to be the most common case.\n\t *\n\t * Transitioning from an (initial) false to true state causes the\n\t * <Toolbar /> component to mount twice, which is causing undesired\n\t * side-effects. These side-effects appear to only affect certain\n\t * E2E tests.\n\t *\n\t * This was initial discovered in this pull-request:\n\t * https://github.com/WordPress/gutenberg/pull/23425\n\t */\n\tconst initialAccessibleToolbarState = true;\n\n\t// By default, it's gonna render NavigableMenu. If all the tabbable elements\n\t// inside the toolbar are ToolbarItem components (or derived components like\n\t// ToolbarButton), then we can wrap them with the accessible Toolbar\n\t// component.\n\tconst [ isAccessibleToolbar, setIsAccessibleToolbar ] = useState(\n\t\tinitialAccessibleToolbarState\n\t);\n\n\tconst determineIsAccessibleToolbar = useCallback( () => {\n\t\tconst tabbables = focus.tabbable.find( toolbarRef.current );\n\t\tconst onlyToolbarItem = hasOnlyToolbarItem( tabbables );\n\t\tif ( ! onlyToolbarItem ) {\n\t\t\tdeprecated( 'Using custom components as toolbar controls', {\n\t\t\t\tsince: '5.6',\n\t\t\t\talternative:\n\t\t\t\t\t'ToolbarItem, ToolbarButton or ToolbarDropdownMenu components',\n\t\t\t\tlink: 'https://developer.wordpress.org/block-editor/components/toolbar-button/#inside-blockcontrols',\n\t\t\t} );\n\t\t}\n\t\tsetIsAccessibleToolbar( onlyToolbarItem );\n\t}, [ toolbarRef ] );\n\n\tuseLayoutEffect( () => {\n\t\t// Toolbar buttons may be rendered asynchronously, so we use\n\t\t// MutationObserver to check if the toolbar subtree has been modified.\n\t\tconst observer = new window.MutationObserver(\n\t\t\tdetermineIsAccessibleToolbar\n\t\t);\n\t\tobserver.observe( toolbarRef.current, {\n\t\t\tchildList: true,\n\t\t\tsubtree: true,\n\t\t} );\n\t\treturn () => observer.disconnect();\n\t}, [ determineIsAccessibleToolbar, isAccessibleToolbar, toolbarRef ] );\n\n\treturn isAccessibleToolbar;\n}\n\nfunction useToolbarFocus( {\n\ttoolbarRef,\n\tfocusOnMount,\n\tisAccessibleToolbar,\n\tdefaultIndex,\n\tonIndexChange,\n\tshouldUseKeyboardFocusShortcut,\n\tfocusEditorOnEscape,\n} ) {\n\t// Make sure we don't use modified versions of this prop.\n\tconst [ initialFocusOnMount ] = useState( focusOnMount );\n\tconst [ initialIndex ] = useState( defaultIndex );\n\n\tconst focusToolbar = useCallback( () => {\n\t\tfocusFirstTabbableIn( toolbarRef.current );\n\t}, [ toolbarRef ] );\n\n\tconst focusToolbarViaShortcut = () => {\n\t\tif ( shouldUseKeyboardFocusShortcut ) {\n\t\t\tfocusToolbar();\n\t\t}\n\t};\n\n\t// Focus on toolbar when pressing alt+F10 when the toolbar is visible.\n\tuseShortcut( 'core/block-editor/focus-toolbar', focusToolbarViaShortcut );\n\n\tuseEffect( () => {\n\t\tif ( initialFocusOnMount ) {\n\t\t\tfocusToolbar();\n\t\t}\n\t}, [ isAccessibleToolbar, initialFocusOnMount, focusToolbar ] );\n\n\tuseEffect( () => {\n\t\t// Store ref so we have access on useEffect cleanup: https://legacy.reactjs.org/blog/2020/08/10/react-v17-rc.html#effect-cleanup-timing\n\t\tconst navigableToolbarRef = toolbarRef.current;\n\t\t// If initialIndex is passed, we focus on that toolbar item when the\n\t\t// toolbar gets mounted and initial focus is not forced.\n\t\t// We have to wait for the next browser paint because block controls aren't\n\t\t// rendered right away when the toolbar gets mounted.\n\t\tlet raf = 0;\n\n\t\t// If the toolbar already had focus before the render, we don't want to move it.\n\t\t// https://github.com/WordPress/gutenberg/issues/58511\n\t\tif (\n\t\t\t! initialFocusOnMount &&\n\t\t\t! hasFocusWithin( navigableToolbarRef )\n\t\t) {\n\t\t\traf = window.requestAnimationFrame( () => {\n\t\t\t\tconst items =\n\t\t\t\t\tgetAllFocusableToolbarItemsIn( navigableToolbarRef );\n\t\t\t\tconst index = initialIndex || 0;\n\t\t\t\tif ( items[ index ] && hasFocusWithin( navigableToolbarRef ) ) {\n\t\t\t\t\titems[ index ].focus( {\n\t\t\t\t\t\t// When focusing newly mounted toolbars,\n\t\t\t\t\t\t// the position of the popover is often not right on the first render\n\t\t\t\t\t\t// This prevents the layout shifts when focusing the dialogs.\n\t\t\t\t\t\tpreventScroll: true,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\treturn () => {\n\t\t\twindow.cancelAnimationFrame( raf );\n\t\t\tif ( ! onIndexChange || ! navigableToolbarRef ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// When the toolbar element is unmounted and onIndexChange is passed, we\n\t\t\t// pass the focused toolbar item index so it can be hydrated later.\n\t\t\tconst items = getAllFocusableToolbarItemsIn( navigableToolbarRef );\n\t\t\tconst index = items.findIndex( ( item ) => item.tabIndex === 0 );\n\t\t\tonIndexChange( index );\n\t\t};\n\t}, [ initialIndex, initialFocusOnMount, onIndexChange, toolbarRef ] );\n\n\tconst { getLastFocus } = unlock( useSelect( blockEditorStore ) );\n\t/**\n\t * Handles returning focus to the block editor canvas when pressing escape.\n\t */\n\tuseEffect( () => {\n\t\tconst navigableToolbarRef = toolbarRef.current;\n\n\t\tif ( focusEditorOnEscape ) {\n\t\t\tconst handleKeyDown = ( event ) => {\n\t\t\t\tconst lastFocus = getLastFocus();\n\t\t\t\tif ( event.keyCode === ESCAPE && lastFocus?.current ) {\n\t\t\t\t\t// Focus the last focused element when pressing escape.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tlastFocus.current.focus();\n\t\t\t\t}\n\t\t\t};\n\t\t\tnavigableToolbarRef.addEventListener( 'keydown', handleKeyDown );\n\t\t\treturn () => {\n\t\t\t\tnavigableToolbarRef.removeEventListener(\n\t\t\t\t\t'keydown',\n\t\t\t\t\thandleKeyDown\n\t\t\t\t);\n\t\t\t};\n\t\t}\n\t}, [ focusEditorOnEscape, getLastFocus, toolbarRef ] );\n}\n\nexport default function NavigableToolbar( {\n\tchildren,\n\tfocusOnMount,\n\tfocusEditorOnEscape = false,\n\tshouldUseKeyboardFocusShortcut = true,\n\t__experimentalInitialIndex: initialIndex,\n\t__experimentalOnIndexChange: onIndexChange,\n\torientation = 'horizontal',\n\t...props\n} ) {\n\tconst toolbarRef = useRef();\n\tconst isAccessibleToolbar = useIsAccessibleToolbar( toolbarRef );\n\n\tuseToolbarFocus( {\n\t\ttoolbarRef,\n\t\tfocusOnMount,\n\t\tdefaultIndex: initialIndex,\n\t\tonIndexChange,\n\t\tisAccessibleToolbar,\n\t\tshouldUseKeyboardFocusShortcut,\n\t\tfocusEditorOnEscape,\n\t} );\n\n\tif ( isAccessibleToolbar ) {\n\t\treturn (\n\t\t\t<Toolbar\n\t\t\t\tlabel={ props[ 'aria-label' ] }\n\t\t\t\tref={ toolbarRef }\n\t\t\t\torientation={ orientation }\n\t\t\t\t{ ...props }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Toolbar>\n\t\t);\n\t}\n\n\treturn (\n\t\t<NavigableMenu\n\t\t\torientation={ orientation }\n\t\t\trole=\"toolbar\"\n\t\t\tref={ toolbarRef }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ children }\n\t\t</NavigableMenu>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -13,6 +13,7 @@ var _icons = require("@wordpress/icons");
13
13
  var _useSettings = require("../../use-settings");
14
14
  var _store = require("../../../store");
15
15
  var _utils = require("../utils");
16
+ var _lockUnlock = require("../../../lock-unlock");
16
17
  var _jsxRuntime = require("react/jsx-runtime");
17
18
  /**
18
19
  * WordPress dependencies
@@ -22,6 +23,9 @@ var _jsxRuntime = require("react/jsx-runtime");
22
23
  * Internal dependencies
23
24
  */
24
25
 
26
+ const {
27
+ CustomSelectControlV2Legacy: CustomSelectControl
28
+ } = (0, _lockUnlock.unlock)(_components.privateApis);
25
29
  const CUSTOM_VALUE_SETTINGS = {
26
30
  px: {
27
31
  max: 300,
@@ -300,7 +304,7 @@ function SpacingInputControl({
300
304
  __nextHasNoMarginBottom: true,
301
305
  onFocus: onMouseOver,
302
306
  onBlur: onMouseOut
303
- }), !showRangeControl && !showCustomValueControl && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.CustomSelectControl, {
307
+ }), !showRangeControl && !showCustomValueControl && /*#__PURE__*/(0, _jsxRuntime.jsx)(CustomSelectControl, {
304
308
  className: "spacing-sizes-control__custom-select-control",
305
309
  value: options.find(option => option.key === currentValue) || '' // passing undefined here causes a downshift controlled/uncontrolled warning
306
310
  ,