@wordpress/block-editor 12.24.0 → 12.25.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 (510) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +1 -1
  3. package/build/components/alignment-control/ui.js +3 -1
  4. package/build/components/alignment-control/ui.js.map +1 -1
  5. package/build/components/block-inspector/index.js +1 -1
  6. package/build/components/block-inspector/index.js.map +1 -1
  7. package/build/components/block-list/block.js +0 -9
  8. package/build/components/block-list/block.js.map +1 -1
  9. package/build/components/block-list/index.js +4 -3
  10. package/build/components/block-list/index.js.map +1 -1
  11. package/build/components/block-list/index.native.js +1 -9
  12. package/build/components/block-list/index.native.js.map +1 -1
  13. package/build/components/block-list/use-block-props/index.js +6 -6
  14. package/build/components/block-list/use-block-props/index.js.map +1 -1
  15. package/build/components/block-list/use-block-props/use-block-refs.js +17 -46
  16. package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  17. package/build/components/block-list/use-block-props/use-is-hovered.js +10 -14
  18. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  19. package/build/components/block-mover/index.native.js +3 -1
  20. package/build/components/block-mover/index.native.js.map +1 -1
  21. package/build/components/block-settings-menu/block-settings-dropdown.js +0 -25
  22. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  23. package/build/components/block-switcher/pattern-transformations-menu.js +3 -1
  24. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  25. package/build/components/block-switcher/use-transformed-patterns.js +6 -2
  26. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  27. package/build/components/block-switcher/utils.js +15 -5
  28. package/build/components/block-switcher/utils.js.map +1 -1
  29. package/build/components/block-toolbar/use-has-block-toolbar.js +14 -9
  30. package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  31. package/build/components/block-tools/index.js +3 -1
  32. package/build/components/block-tools/index.js.map +1 -1
  33. package/build/components/block-tools/use-show-block-tools.js +2 -5
  34. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  35. package/build/components/block-tools/zoom-out-mode-inserters.js +5 -1
  36. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  37. package/build/components/block-variation-picker/index.js +3 -2
  38. package/build/components/block-variation-picker/index.js.map +1 -1
  39. package/build/components/block-variation-transforms/index.js +3 -1
  40. package/build/components/block-variation-transforms/index.js.map +1 -1
  41. package/build/components/floating-toolbar/index.native.js +9 -5
  42. package/build/components/floating-toolbar/index.native.js.map +1 -1
  43. package/build/components/global-styles/background-panel.js +1 -1
  44. package/build/components/global-styles/background-panel.js.map +1 -1
  45. package/build/components/global-styles/color-panel.js +3 -1
  46. package/build/components/global-styles/color-panel.js.map +1 -1
  47. package/build/components/global-styles/dimensions-panel.js +16 -0
  48. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  49. package/build/components/global-styles/hooks.js +3 -2
  50. package/build/components/global-styles/hooks.js.map +1 -1
  51. package/build/components/global-styles/typography-panel.js +23 -23
  52. package/build/components/global-styles/typography-panel.js.map +1 -1
  53. package/build/components/global-styles/use-global-styles-output.js +149 -132
  54. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  55. package/build/components/global-styles/utils.js +45 -0
  56. package/build/components/global-styles/utils.js.map +1 -1
  57. package/build/components/inner-blocks/index.js +16 -2
  58. package/build/components/inner-blocks/index.js.map +1 -1
  59. package/build/components/inserter/block-patterns-tab/index.js +12 -31
  60. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  61. package/build/components/inserter/block-types-tab.js +4 -0
  62. package/build/components/inserter/block-types-tab.js.map +1 -1
  63. package/build/components/inserter/category-tabs/index.js +56 -0
  64. package/build/components/inserter/category-tabs/index.js.map +1 -0
  65. package/build/components/inserter/media-tab/index.js +2 -2
  66. package/build/components/inserter/media-tab/index.js.map +1 -1
  67. package/build/components/inserter/media-tab/media-panel.js +0 -25
  68. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  69. package/build/components/inserter/media-tab/media-preview.js +13 -3
  70. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  71. package/build/components/inserter/media-tab/media-tab.js +15 -29
  72. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  73. package/build/components/inserter/menu.js +59 -69
  74. package/build/components/inserter/menu.js.map +1 -1
  75. package/build/components/inserter/tabs.js +6 -6
  76. package/build/components/inserter/tabs.js.map +1 -1
  77. package/build/components/line-height-control/index.js +6 -2
  78. package/build/components/line-height-control/index.js.map +1 -1
  79. package/build/components/link-control/search-item.js +9 -3
  80. package/build/components/link-control/search-item.js.map +1 -1
  81. package/build/components/list-view/block-select-button.js +5 -170
  82. package/build/components/list-view/block-select-button.js.map +1 -1
  83. package/build/components/list-view/block.js +166 -14
  84. package/build/components/list-view/block.js.map +1 -1
  85. package/build/components/list-view/index.js +1 -1
  86. package/build/components/list-view/index.js.map +1 -1
  87. package/build/components/list-view/use-list-view-drop-zone.js +1 -1
  88. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  89. package/build/components/list-view/utils.js +3 -1
  90. package/build/components/list-view/utils.js.map +1 -1
  91. package/build/components/media-placeholder/index.js +3 -3
  92. package/build/components/media-placeholder/index.js.map +1 -1
  93. package/build/components/navigable-toolbar/index.js +3 -1
  94. package/build/components/navigable-toolbar/index.js.map +1 -1
  95. package/build/components/provider/block-refs-provider.js +3 -4
  96. package/build/components/provider/block-refs-provider.js.map +1 -1
  97. package/build/components/provider/use-block-sync.js +3 -12
  98. package/build/components/provider/use-block-sync.js.map +1 -1
  99. package/build/components/rich-text/event-listeners/before-input-rules.js +93 -0
  100. package/build/components/rich-text/event-listeners/before-input-rules.js.map +1 -0
  101. package/build/components/rich-text/event-listeners/delete.js +58 -0
  102. package/build/components/rich-text/event-listeners/delete.js.map +1 -0
  103. package/build/components/rich-text/event-listeners/enter.js +98 -0
  104. package/build/components/rich-text/event-listeners/enter.js.map +1 -0
  105. package/build/components/rich-text/event-listeners/firefox-compat.js +36 -0
  106. package/build/components/rich-text/event-listeners/firefox-compat.js.map +1 -0
  107. package/build/components/rich-text/event-listeners/index.js +44 -0
  108. package/build/components/rich-text/event-listeners/index.js.map +1 -0
  109. package/build/components/rich-text/event-listeners/input-events.js +22 -0
  110. package/build/components/rich-text/event-listeners/input-events.js.map +1 -0
  111. package/build/components/rich-text/event-listeners/input-rules.js +135 -0
  112. package/build/components/rich-text/event-listeners/input-rules.js.map +1 -0
  113. package/build/components/rich-text/event-listeners/insert-replacement-text.js +33 -0
  114. package/build/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -0
  115. package/build/components/rich-text/event-listeners/paste-handler.js +146 -0
  116. package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -0
  117. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.js +27 -0
  118. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -0
  119. package/build/components/rich-text/event-listeners/shortcuts.js +22 -0
  120. package/build/components/rich-text/event-listeners/shortcuts.js.map +1 -0
  121. package/build/components/rich-text/event-listeners/undo-automatic-change.js +51 -0
  122. package/build/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -0
  123. package/build/components/rich-text/index.js +11 -31
  124. package/build/components/rich-text/index.js.map +1 -1
  125. package/build/components/rich-text/index.native.js +13 -3
  126. package/build/components/rich-text/index.native.js.map +1 -1
  127. package/build/components/rich-text/multiline.js +6 -2
  128. package/build/components/rich-text/multiline.js.map +1 -1
  129. package/build/components/rich-text/native/index.native.js +12 -0
  130. package/build/components/rich-text/native/index.native.js.map +1 -1
  131. package/build/components/rich-text/use-format-types.js +8 -4
  132. package/build/components/rich-text/use-format-types.js.map +1 -1
  133. package/build/components/segmented-text-control/index.js +62 -0
  134. package/build/components/segmented-text-control/index.js.map +1 -0
  135. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -2
  136. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  137. package/build/components/text-alignment-control/index.js +76 -0
  138. package/build/components/text-alignment-control/index.js.map +1 -0
  139. package/build/components/text-decoration-control/index.js +21 -25
  140. package/build/components/text-decoration-control/index.js.map +1 -1
  141. package/build/components/text-transform-control/index.js +18 -22
  142. package/build/components/text-transform-control/index.js.map +1 -1
  143. package/build/components/use-block-display-information/index.js +9 -3
  144. package/build/components/use-block-display-information/index.js.map +1 -1
  145. package/build/components/use-on-block-drop/index.js +3 -1
  146. package/build/components/use-on-block-drop/index.js.map +1 -1
  147. package/build/components/writing-flow/use-drag-selection.js +3 -1
  148. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  149. package/build/components/writing-flow/use-tab-nav.js +3 -1
  150. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  151. package/build/components/writing-mode-control/index.js +16 -20
  152. package/build/components/writing-mode-control/index.js.map +1 -1
  153. package/build/hooks/duotone.js +3 -1
  154. package/build/hooks/duotone.js.map +1 -1
  155. package/build/hooks/utils.js +11 -6
  156. package/build/hooks/utils.js.map +1 -1
  157. package/build/private-apis.js +4 -2
  158. package/build/private-apis.js.map +1 -1
  159. package/build/store/actions.js +32 -8
  160. package/build/store/actions.js.map +1 -1
  161. package/build/store/private-selectors.js +27 -6
  162. package/build/store/private-selectors.js.map +1 -1
  163. package/build/store/reducer.js +11 -8
  164. package/build/store/reducer.js.map +1 -1
  165. package/build/store/selectors.js +21 -7
  166. package/build/store/selectors.js.map +1 -1
  167. package/build/utils/object.js +17 -0
  168. package/build/utils/object.js.map +1 -1
  169. package/build/utils/order-inserter-block-items.js +6 -2
  170. package/build/utils/order-inserter-block-items.js.map +1 -1
  171. package/build/utils/pasting.js +6 -2
  172. package/build/utils/pasting.js.map +1 -1
  173. package/build-module/components/alignment-control/ui.js +3 -1
  174. package/build-module/components/alignment-control/ui.js.map +1 -1
  175. package/build-module/components/block-inspector/index.js +1 -1
  176. package/build-module/components/block-inspector/index.js.map +1 -1
  177. package/build-module/components/block-list/block.js +0 -9
  178. package/build-module/components/block-list/block.js.map +1 -1
  179. package/build-module/components/block-list/index.js +4 -3
  180. package/build-module/components/block-list/index.js.map +1 -1
  181. package/build-module/components/block-list/index.native.js +1 -9
  182. package/build-module/components/block-list/index.native.js.map +1 -1
  183. package/build-module/components/block-list/use-block-props/index.js +6 -6
  184. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  185. package/build-module/components/block-list/use-block-props/use-block-refs.js +19 -48
  186. package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  187. package/build-module/components/block-list/use-block-props/use-is-hovered.js +10 -14
  188. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  189. package/build-module/components/block-mover/index.native.js +3 -1
  190. package/build-module/components/block-mover/index.native.js.map +1 -1
  191. package/build-module/components/block-settings-menu/block-settings-dropdown.js +1 -26
  192. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  193. package/build-module/components/block-switcher/pattern-transformations-menu.js +3 -1
  194. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  195. package/build-module/components/block-switcher/use-transformed-patterns.js +6 -2
  196. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  197. package/build-module/components/block-switcher/utils.js +15 -5
  198. package/build-module/components/block-switcher/utils.js.map +1 -1
  199. package/build-module/components/block-toolbar/use-has-block-toolbar.js +14 -9
  200. package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  201. package/build-module/components/block-tools/index.js +3 -1
  202. package/build-module/components/block-tools/index.js.map +1 -1
  203. package/build-module/components/block-tools/use-show-block-tools.js +2 -5
  204. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  205. package/build-module/components/block-tools/zoom-out-mode-inserters.js +5 -1
  206. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  207. package/build-module/components/block-variation-picker/index.js +3 -2
  208. package/build-module/components/block-variation-picker/index.js.map +1 -1
  209. package/build-module/components/block-variation-transforms/index.js +3 -1
  210. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  211. package/build-module/components/floating-toolbar/index.native.js +9 -5
  212. package/build-module/components/floating-toolbar/index.native.js.map +1 -1
  213. package/build-module/components/global-styles/background-panel.js +1 -1
  214. package/build-module/components/global-styles/background-panel.js.map +1 -1
  215. package/build-module/components/global-styles/color-panel.js +3 -1
  216. package/build-module/components/global-styles/color-panel.js.map +1 -1
  217. package/build-module/components/global-styles/dimensions-panel.js +17 -1
  218. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  219. package/build-module/components/global-styles/hooks.js +3 -2
  220. package/build-module/components/global-styles/hooks.js.map +1 -1
  221. package/build-module/components/global-styles/typography-panel.js +24 -24
  222. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  223. package/build-module/components/global-styles/use-global-styles-output.js +149 -132
  224. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  225. package/build-module/components/global-styles/utils.js +44 -0
  226. package/build-module/components/global-styles/utils.js.map +1 -1
  227. package/build-module/components/inner-blocks/index.js +16 -2
  228. package/build-module/components/inner-blocks/index.js.map +1 -1
  229. package/build-module/components/inserter/block-patterns-tab/index.js +13 -32
  230. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  231. package/build-module/components/inserter/block-types-tab.js +4 -0
  232. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  233. package/build-module/components/inserter/category-tabs/index.js +49 -0
  234. package/build-module/components/inserter/category-tabs/index.js.map +1 -0
  235. package/build-module/components/inserter/media-tab/index.js +1 -1
  236. package/build-module/components/inserter/media-tab/index.js.map +1 -1
  237. package/build-module/components/inserter/media-tab/media-panel.js +0 -24
  238. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  239. package/build-module/components/inserter/media-tab/media-preview.js +13 -3
  240. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  241. package/build-module/components/inserter/media-tab/media-tab.js +17 -31
  242. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  243. package/build-module/components/inserter/menu.js +61 -71
  244. package/build-module/components/inserter/menu.js.map +1 -1
  245. package/build-module/components/inserter/tabs.js +6 -6
  246. package/build-module/components/inserter/tabs.js.map +1 -1
  247. package/build-module/components/line-height-control/index.js +6 -2
  248. package/build-module/components/line-height-control/index.js.map +1 -1
  249. package/build-module/components/link-control/search-item.js +9 -3
  250. package/build-module/components/link-control/search-item.js.map +1 -1
  251. package/build-module/components/list-view/block-select-button.js +7 -172
  252. package/build-module/components/list-view/block-select-button.js.map +1 -1
  253. package/build-module/components/list-view/block.js +167 -15
  254. package/build-module/components/list-view/block.js.map +1 -1
  255. package/build-module/components/list-view/index.js +1 -1
  256. package/build-module/components/list-view/index.js.map +1 -1
  257. package/build-module/components/list-view/use-list-view-drop-zone.js +1 -1
  258. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  259. package/build-module/components/list-view/utils.js +3 -1
  260. package/build-module/components/list-view/utils.js.map +1 -1
  261. package/build-module/components/media-placeholder/index.js +3 -3
  262. package/build-module/components/media-placeholder/index.js.map +1 -1
  263. package/build-module/components/navigable-toolbar/index.js +3 -1
  264. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  265. package/build-module/components/provider/block-refs-provider.js +3 -4
  266. package/build-module/components/provider/block-refs-provider.js.map +1 -1
  267. package/build-module/components/provider/use-block-sync.js +4 -13
  268. package/build-module/components/provider/use-block-sync.js.map +1 -1
  269. package/build-module/components/rich-text/event-listeners/before-input-rules.js +86 -0
  270. package/build-module/components/rich-text/event-listeners/before-input-rules.js.map +1 -0
  271. package/build-module/components/rich-text/event-listeners/delete.js +51 -0
  272. package/build-module/components/rich-text/event-listeners/delete.js.map +1 -0
  273. package/build-module/components/rich-text/event-listeners/enter.js +92 -0
  274. package/build-module/components/rich-text/event-listeners/enter.js.map +1 -0
  275. package/build-module/components/rich-text/event-listeners/firefox-compat.js +29 -0
  276. package/build-module/components/rich-text/event-listeners/firefox-compat.js.map +1 -0
  277. package/build-module/components/rich-text/event-listeners/index.js +36 -0
  278. package/build-module/components/rich-text/event-listeners/index.js.map +1 -0
  279. package/build-module/components/rich-text/event-listeners/input-events.js +15 -0
  280. package/build-module/components/rich-text/event-listeners/input-events.js.map +1 -0
  281. package/build-module/components/rich-text/event-listeners/input-rules.js +127 -0
  282. package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -0
  283. package/build-module/components/rich-text/event-listeners/insert-replacement-text.js +27 -0
  284. package/build-module/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -0
  285. package/build-module/components/rich-text/event-listeners/paste-handler.js +142 -0
  286. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -0
  287. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js +21 -0
  288. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -0
  289. package/build-module/components/rich-text/event-listeners/shortcuts.js +15 -0
  290. package/build-module/components/rich-text/event-listeners/shortcuts.js.map +1 -0
  291. package/build-module/components/rich-text/event-listeners/undo-automatic-change.js +45 -0
  292. package/build-module/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -0
  293. package/build-module/components/rich-text/index.js +12 -32
  294. package/build-module/components/rich-text/index.js.map +1 -1
  295. package/build-module/components/rich-text/index.native.js +13 -3
  296. package/build-module/components/rich-text/index.native.js.map +1 -1
  297. package/build-module/components/rich-text/multiline.js +6 -2
  298. package/build-module/components/rich-text/multiline.js.map +1 -1
  299. package/build-module/components/rich-text/native/index.native.js +12 -0
  300. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  301. package/build-module/components/rich-text/use-format-types.js +8 -4
  302. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  303. package/build-module/components/segmented-text-control/index.js +55 -0
  304. package/build-module/components/segmented-text-control/index.js.map +1 -0
  305. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -2
  306. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  307. package/build-module/components/text-alignment-control/index.js +68 -0
  308. package/build-module/components/text-alignment-control/index.js.map +1 -0
  309. package/build-module/components/text-decoration-control/index.js +21 -25
  310. package/build-module/components/text-decoration-control/index.js.map +1 -1
  311. package/build-module/components/text-transform-control/index.js +18 -22
  312. package/build-module/components/text-transform-control/index.js.map +1 -1
  313. package/build-module/components/use-block-display-information/index.js +9 -3
  314. package/build-module/components/use-block-display-information/index.js.map +1 -1
  315. package/build-module/components/use-on-block-drop/index.js +3 -1
  316. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  317. package/build-module/components/writing-flow/use-drag-selection.js +3 -1
  318. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  319. package/build-module/components/writing-flow/use-tab-nav.js +3 -1
  320. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  321. package/build-module/components/writing-mode-control/index.js +16 -20
  322. package/build-module/components/writing-mode-control/index.js.map +1 -1
  323. package/build-module/hooks/duotone.js +3 -1
  324. package/build-module/hooks/duotone.js.map +1 -1
  325. package/build-module/hooks/utils.js +11 -6
  326. package/build-module/hooks/utils.js.map +1 -1
  327. package/build-module/private-apis.js +4 -2
  328. package/build-module/private-apis.js.map +1 -1
  329. package/build-module/store/actions.js +32 -8
  330. package/build-module/store/actions.js.map +1 -1
  331. package/build-module/store/private-selectors.js +27 -5
  332. package/build-module/store/private-selectors.js.map +1 -1
  333. package/build-module/store/reducer.js +11 -8
  334. package/build-module/store/reducer.js.map +1 -1
  335. package/build-module/store/selectors.js +21 -7
  336. package/build-module/store/selectors.js.map +1 -1
  337. package/build-module/utils/object.js +16 -0
  338. package/build-module/utils/object.js.map +1 -1
  339. package/build-module/utils/order-inserter-block-items.js +6 -2
  340. package/build-module/utils/order-inserter-block-items.js.map +1 -1
  341. package/build-module/utils/pasting.js +6 -2
  342. package/build-module/utils/pasting.js.map +1 -1
  343. package/build-style/content-rtl.css +41 -68
  344. package/build-style/content.css +41 -68
  345. package/build-style/style-rtl.css +100 -199
  346. package/build-style/style.css +100 -199
  347. package/package.json +31 -31
  348. package/src/components/alignment-control/ui.js +3 -1
  349. package/src/components/block-bindings-toolbar-indicator/style.scss +1 -4
  350. package/src/components/block-canvas/style.scss +1 -3
  351. package/src/components/block-draggable/test/helpers.native.js +8 -8
  352. package/src/components/block-inspector/index.js +1 -2
  353. package/src/components/block-list/block.js +2 -13
  354. package/src/components/block-list/content.scss +9 -1
  355. package/src/components/block-list/index.js +4 -4
  356. package/src/components/block-list/index.native.js +1 -6
  357. package/src/components/block-list/use-block-props/index.js +12 -4
  358. package/src/components/block-list/use-block-props/use-block-refs.js +17 -57
  359. package/src/components/block-list/use-block-props/use-is-hovered.js +11 -16
  360. package/src/components/block-mover/index.native.js +3 -1
  361. package/src/components/block-patterns-list/style.scss +1 -3
  362. package/src/components/block-preview/style.scss +13 -15
  363. package/src/components/block-settings-menu/block-settings-dropdown.js +1 -51
  364. package/src/components/block-switcher/pattern-transformations-menu.js +3 -1
  365. package/src/components/block-switcher/use-transformed-patterns.js +6 -2
  366. package/src/components/block-switcher/utils.js +14 -5
  367. package/src/components/block-toolbar/style.scss +8 -11
  368. package/src/components/block-toolbar/use-has-block-toolbar.js +21 -16
  369. package/src/components/block-tools/index.js +3 -1
  370. package/src/components/block-tools/use-show-block-tools.js +36 -48
  371. package/src/components/block-tools/zoom-out-mode-inserters.js +5 -1
  372. package/src/components/block-variation-picker/content.scss +22 -72
  373. package/src/components/block-variation-picker/index.js +3 -2
  374. package/src/components/block-variation-transforms/index.js +3 -1
  375. package/src/components/floating-toolbar/index.native.js +5 -2
  376. package/src/components/global-styles/background-panel.js +1 -3
  377. package/src/components/global-styles/color-panel.js +3 -1
  378. package/src/components/global-styles/dimensions-panel.js +18 -1
  379. package/src/components/global-styles/hooks.js +2 -0
  380. package/src/components/global-styles/test/utils.js +21 -0
  381. package/src/components/global-styles/typography-panel.js +27 -23
  382. package/src/components/global-styles/use-global-styles-output.js +211 -187
  383. package/src/components/global-styles/utils.js +55 -0
  384. package/src/components/inner-blocks/index.js +14 -1
  385. package/src/components/inserter/block-patterns-tab/index.js +15 -65
  386. package/src/components/inserter/block-types-tab.js +5 -0
  387. package/src/components/inserter/category-tabs/index.js +74 -0
  388. package/src/components/inserter/media-tab/index.js +1 -1
  389. package/src/components/inserter/media-tab/media-panel.js +0 -22
  390. package/src/components/inserter/media-tab/media-preview.js +15 -7
  391. package/src/components/inserter/media-tab/media-tab.js +44 -83
  392. package/src/components/inserter/menu.js +139 -117
  393. package/src/components/inserter/style.scss +90 -170
  394. package/src/components/inserter/tabs.js +5 -13
  395. package/src/components/line-height-control/index.js +6 -2
  396. package/src/components/link-control/search-item.js +9 -3
  397. package/src/components/list-view/block-select-button.js +73 -266
  398. package/src/components/list-view/block.js +218 -28
  399. package/src/components/list-view/index.js +1 -1
  400. package/src/components/list-view/style.scss +20 -28
  401. package/src/components/list-view/use-list-view-drop-zone.js +1 -1
  402. package/src/components/list-view/utils.js +3 -1
  403. package/src/components/media-placeholder/content.scss +0 -11
  404. package/src/components/media-placeholder/index.js +3 -3
  405. package/src/components/navigable-toolbar/index.js +3 -1
  406. package/src/components/provider/block-refs-provider.js +3 -8
  407. package/src/components/provider/test/use-block-sync.js +7 -0
  408. package/src/components/provider/use-block-sync.js +3 -20
  409. package/src/components/rich-text/event-listeners/before-input-rules.js +92 -0
  410. package/src/components/rich-text/event-listeners/delete.js +53 -0
  411. package/src/components/rich-text/event-listeners/enter.js +104 -0
  412. package/src/components/rich-text/event-listeners/firefox-compat.js +31 -0
  413. package/src/components/rich-text/event-listeners/index.js +56 -0
  414. package/src/components/rich-text/event-listeners/input-events.js +13 -0
  415. package/src/components/rich-text/event-listeners/input-rules.js +146 -0
  416. package/src/components/rich-text/event-listeners/insert-replacement-text.js +28 -0
  417. package/src/components/rich-text/event-listeners/paste-handler.js +169 -0
  418. package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +24 -0
  419. package/src/components/rich-text/event-listeners/shortcuts.js +13 -0
  420. package/src/components/rich-text/event-listeners/undo-automatic-change.js +45 -0
  421. package/src/components/rich-text/index.js +7 -34
  422. package/src/components/rich-text/index.native.js +11 -0
  423. package/src/components/rich-text/multiline.js +6 -2
  424. package/src/components/rich-text/native/index.native.js +11 -0
  425. package/src/components/rich-text/use-format-types.js +6 -2
  426. package/src/components/segmented-text-control/index.js +63 -0
  427. package/src/components/{writing-mode-control → segmented-text-control}/style.scss +2 -5
  428. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -1
  429. package/src/components/text-alignment-control/index.js +91 -0
  430. package/src/components/text-alignment-control/stories/index.story.js +39 -0
  431. package/src/components/text-decoration-control/index.js +20 -33
  432. package/src/components/text-transform-control/index.js +17 -30
  433. package/src/components/use-block-display-information/index.js +9 -3
  434. package/src/components/use-on-block-drop/index.js +3 -1
  435. package/src/components/writing-flow/use-drag-selection.js +3 -1
  436. package/src/components/writing-flow/use-tab-nav.js +3 -1
  437. package/src/components/writing-mode-control/index.js +15 -28
  438. package/src/hooks/duotone.js +3 -1
  439. package/src/hooks/utils.js +16 -2
  440. package/src/private-apis.js +4 -2
  441. package/src/store/actions.js +36 -12
  442. package/src/store/private-selectors.js +28 -4
  443. package/src/store/reducer.js +13 -23
  444. package/src/store/selectors.js +20 -7
  445. package/src/style.scss +1 -2
  446. package/src/utils/object.js +16 -0
  447. package/src/utils/order-inserter-block-items.js +6 -2
  448. package/src/utils/pasting.js +6 -2
  449. package/build/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -54
  450. package/build/components/block-list/use-block-props/use-block-moving-mode-class-names.js.map +0 -1
  451. package/build/components/rich-text/use-before-input-rules.js +0 -98
  452. package/build/components/rich-text/use-before-input-rules.js.map +0 -1
  453. package/build/components/rich-text/use-delete.js +0 -64
  454. package/build/components/rich-text/use-delete.js.map +0 -1
  455. package/build/components/rich-text/use-enter.js +0 -109
  456. package/build/components/rich-text/use-enter.js.map +0 -1
  457. package/build/components/rich-text/use-firefox-compat.js +0 -44
  458. package/build/components/rich-text/use-firefox-compat.js.map +0 -1
  459. package/build/components/rich-text/use-input-events.js +0 -25
  460. package/build/components/rich-text/use-input-events.js.map +0 -1
  461. package/build/components/rich-text/use-input-rules.js +0 -139
  462. package/build/components/rich-text/use-input-rules.js.map +0 -1
  463. package/build/components/rich-text/use-insert-replacement-text.js +0 -38
  464. package/build/components/rich-text/use-insert-replacement-text.js.map +0 -1
  465. package/build/components/rich-text/use-paste-handler.js +0 -158
  466. package/build/components/rich-text/use-paste-handler.js.map +0 -1
  467. package/build/components/rich-text/use-remove-browser-shortcuts.js +0 -32
  468. package/build/components/rich-text/use-remove-browser-shortcuts.js.map +0 -1
  469. package/build/components/rich-text/use-shortcuts.js +0 -25
  470. package/build/components/rich-text/use-shortcuts.js.map +0 -1
  471. package/build/components/rich-text/use-undo-automatic-change.js +0 -53
  472. package/build/components/rich-text/use-undo-automatic-change.js.map +0 -1
  473. package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -47
  474. package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.js.map +0 -1
  475. package/build-module/components/rich-text/use-before-input-rules.js +0 -92
  476. package/build-module/components/rich-text/use-before-input-rules.js.map +0 -1
  477. package/build-module/components/rich-text/use-delete.js +0 -57
  478. package/build-module/components/rich-text/use-delete.js.map +0 -1
  479. package/build-module/components/rich-text/use-enter.js +0 -102
  480. package/build-module/components/rich-text/use-enter.js.map +0 -1
  481. package/build-module/components/rich-text/use-firefox-compat.js +0 -37
  482. package/build-module/components/rich-text/use-firefox-compat.js.map +0 -1
  483. package/build-module/components/rich-text/use-input-events.js +0 -18
  484. package/build-module/components/rich-text/use-input-events.js.map +0 -1
  485. package/build-module/components/rich-text/use-input-rules.js +0 -132
  486. package/build-module/components/rich-text/use-input-rules.js.map +0 -1
  487. package/build-module/components/rich-text/use-insert-replacement-text.js +0 -32
  488. package/build-module/components/rich-text/use-insert-replacement-text.js.map +0 -1
  489. package/build-module/components/rich-text/use-paste-handler.js +0 -152
  490. package/build-module/components/rich-text/use-paste-handler.js.map +0 -1
  491. package/build-module/components/rich-text/use-remove-browser-shortcuts.js +0 -26
  492. package/build-module/components/rich-text/use-remove-browser-shortcuts.js.map +0 -1
  493. package/build-module/components/rich-text/use-shortcuts.js +0 -18
  494. package/build-module/components/rich-text/use-shortcuts.js.map +0 -1
  495. package/build-module/components/rich-text/use-undo-automatic-change.js +0 -46
  496. package/build-module/components/rich-text/use-undo-automatic-change.js.map +0 -1
  497. package/src/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -55
  498. package/src/components/rich-text/use-before-input-rules.js +0 -99
  499. package/src/components/rich-text/use-delete.js +0 -59
  500. package/src/components/rich-text/use-enter.js +0 -110
  501. package/src/components/rich-text/use-firefox-compat.js +0 -39
  502. package/src/components/rich-text/use-input-events.js +0 -19
  503. package/src/components/rich-text/use-input-rules.js +0 -150
  504. package/src/components/rich-text/use-insert-replacement-text.js +0 -31
  505. package/src/components/rich-text/use-paste-handler.js +0 -180
  506. package/src/components/rich-text/use-remove-browser-shortcuts.js +0 -29
  507. package/src/components/rich-text/use-shortcuts.js +0 -19
  508. package/src/components/rich-text/use-undo-automatic-change.js +0 -46
  509. package/src/components/text-decoration-control/style.scss +0 -18
  510. package/src/components/text-transform-control/style.scss +0 -18
@@ -1,17 +1,11 @@
1
1
  import { createElement, Fragment } from "react";
2
- /**
3
- * External dependencies
4
- */
5
- import classNames from 'classnames';
6
-
7
2
  /**
8
3
  * WordPress dependencies
9
4
  */
10
- import { __, isRTL } from '@wordpress/i18n';
5
+ import { __ } from '@wordpress/i18n';
11
6
  import { useViewportMatch } from '@wordpress/compose';
12
- import { __experimentalItemGroup as ItemGroup, __experimentalItem as Item, __experimentalHStack as HStack, FlexBlock, Button } from '@wordpress/components';
7
+ import { Button } from '@wordpress/components';
13
8
  import { useCallback, useMemo } from '@wordpress/element';
14
- import { Icon, chevronRight, chevronLeft } from '@wordpress/icons';
15
9
 
16
10
  /**
17
11
  * Internal dependencies
@@ -22,12 +16,15 @@ import MediaUpload from '../../media-upload';
22
16
  import { useMediaCategories } from './hooks';
23
17
  import { getBlockAndPreviewFromMedia } from './utils';
24
18
  import MobileTabNavigation from '../mobile-tab-navigation';
19
+ import CategoryTabs from '../category-tabs';
20
+ import InserterNoResults from '../no-results';
25
21
  const ALLOWED_MEDIA_TYPES = ['image', 'video', 'audio'];
26
22
  function MediaTab({
27
23
  rootClientId,
28
24
  selectedCategory,
29
25
  onSelectCategory,
30
- onInsert
26
+ onInsert,
27
+ children
31
28
  }) {
32
29
  const mediaCategories = useMediaCategories(rootClientId);
33
30
  const isMobile = useViewportMatch('medium', '<');
@@ -39,31 +36,20 @@ function MediaTab({
39
36
  const [block] = getBlockAndPreviewFromMedia(media, media.type);
40
37
  onInsert(block);
41
38
  }, [onInsert]);
42
- const mobileMediaCategories = useMemo(() => mediaCategories.map(mediaCategory => ({
39
+ const categories = useMemo(() => mediaCategories.map(mediaCategory => ({
43
40
  ...mediaCategory,
44
41
  label: mediaCategory.labels.name
45
42
  })), [mediaCategories]);
43
+ if (!categories.length) {
44
+ return createElement(InserterNoResults, null);
45
+ }
46
46
  return createElement(Fragment, null, !isMobile && createElement("div", {
47
47
  className: `${baseCssClass}-container`
48
- }, createElement("nav", {
49
- "aria-label": __('Media categories')
50
- }, createElement(ItemGroup, {
51
- role: "list",
52
- className: baseCssClass
53
- }, mediaCategories.map(mediaCategory => createElement(Item, {
54
- role: "listitem",
55
- key: mediaCategory.name,
56
- onClick: () => onSelectCategory(mediaCategory),
57
- className: classNames(`${baseCssClass}__media-category`, {
58
- 'is-selected': selectedCategory === mediaCategory
59
- }),
60
- "aria-label": mediaCategory.labels.name,
61
- "aria-current": mediaCategory === selectedCategory ? 'true' : undefined
62
- }, createElement(HStack, null, createElement(FlexBlock, null, mediaCategory.labels.name), createElement(Icon, {
63
- icon: isRTL() ? chevronLeft : chevronRight
64
- })))), createElement("div", {
65
- role: "listitem"
66
- }, createElement(MediaUploadCheck, null, createElement(MediaUpload, {
48
+ }, createElement(CategoryTabs, {
49
+ categories: categories,
50
+ selectedCategory: selectedCategory,
51
+ onSelectCategory: onSelectCategory
52
+ }, children), createElement(MediaUploadCheck, null, createElement(MediaUpload, {
67
53
  multiple: false,
68
54
  onSelect: onSelectMedia,
69
55
  allowedTypes: ALLOWED_MEDIA_TYPES,
@@ -84,8 +70,8 @@ function MediaTab({
84
70
  variant: "secondary",
85
71
  "data-unstable-ignore-focus-outside-for-relatedtarget": ".media-modal"
86
72
  }, __('Open Media Library'))
87
- })))))), isMobile && createElement(MobileTabNavigation, {
88
- categories: mobileMediaCategories
73
+ }))), isMobile && createElement(MobileTabNavigation, {
74
+ categories: categories
89
75
  }, category => createElement(MediaCategoryPanel, {
90
76
  onInsert: onInsert,
91
77
  rootClientId: rootClientId,
@@ -1 +1 @@
1
- {"version":3,"names":["classNames","__","isRTL","useViewportMatch","__experimentalItemGroup","ItemGroup","__experimentalItem","Item","__experimentalHStack","HStack","FlexBlock","Button","useCallback","useMemo","Icon","chevronRight","chevronLeft","MediaCategoryPanel","MediaUploadCheck","MediaUpload","useMediaCategories","getBlockAndPreviewFromMedia","MobileTabNavigation","ALLOWED_MEDIA_TYPES","MediaTab","rootClientId","selectedCategory","onSelectCategory","onInsert","mediaCategories","isMobile","baseCssClass","onSelectMedia","media","url","block","type","mobileMediaCategories","map","mediaCategory","label","labels","name","createElement","Fragment","className","role","key","onClick","undefined","icon","multiple","onSelect","allowedTypes","render","open","event","target","focus","variant","categories","category"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-tab.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalHStack as HStack,\n\tFlexBlock,\n\tButton,\n} from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { Icon, chevronRight, chevronLeft } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { MediaCategoryPanel } from './media-panel';\nimport MediaUploadCheck from '../../media-upload/check';\nimport MediaUpload from '../../media-upload';\nimport { useMediaCategories } from './hooks';\nimport { getBlockAndPreviewFromMedia } from './utils';\nimport MobileTabNavigation from '../mobile-tab-navigation';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image', 'video', 'audio' ];\n\nfunction MediaTab( {\n\trootClientId,\n\tselectedCategory,\n\tonSelectCategory,\n\tonInsert,\n} ) {\n\tconst mediaCategories = useMediaCategories( rootClientId );\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\tconst baseCssClass = 'block-editor-inserter__media-tabs';\n\tconst onSelectMedia = useCallback(\n\t\t( media ) => {\n\t\t\tif ( ! media?.url ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst [ block ] = getBlockAndPreviewFromMedia( media, media.type );\n\t\t\tonInsert( block );\n\t\t},\n\t\t[ onInsert ]\n\t);\n\tconst mobileMediaCategories = useMemo(\n\t\t() =>\n\t\t\tmediaCategories.map( ( mediaCategory ) => ( {\n\t\t\t\t...mediaCategory,\n\t\t\t\tlabel: mediaCategory.labels.name,\n\t\t\t} ) ),\n\t\t[ mediaCategories ]\n\t);\n\treturn (\n\t\t<>\n\t\t\t{ ! isMobile && (\n\t\t\t\t<div className={ `${ baseCssClass }-container` }>\n\t\t\t\t\t<nav aria-label={ __( 'Media categories' ) }>\n\t\t\t\t\t\t<ItemGroup role=\"list\" className={ baseCssClass }>\n\t\t\t\t\t\t\t{ mediaCategories.map( ( mediaCategory ) => (\n\t\t\t\t\t\t\t\t<Item\n\t\t\t\t\t\t\t\t\trole=\"listitem\"\n\t\t\t\t\t\t\t\t\tkey={ mediaCategory.name }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tonSelectCategory( mediaCategory )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\t\t\t\t\t`${ baseCssClass }__media-category`,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t'is-selected':\n\t\t\t\t\t\t\t\t\t\t\t\tselectedCategory ===\n\t\t\t\t\t\t\t\t\t\t\t\tmediaCategory,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\taria-label={ mediaCategory.labels.name }\n\t\t\t\t\t\t\t\t\taria-current={\n\t\t\t\t\t\t\t\t\t\tmediaCategory === selectedCategory\n\t\t\t\t\t\t\t\t\t\t\t? 'true'\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<HStack>\n\t\t\t\t\t\t\t\t\t\t<FlexBlock>\n\t\t\t\t\t\t\t\t\t\t\t{ mediaCategory.labels.name }\n\t\t\t\t\t\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tisRTL()\n\t\t\t\t\t\t\t\t\t\t\t\t\t? chevronLeft\n\t\t\t\t\t\t\t\t\t\t\t\t\t: chevronRight\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</HStack>\n\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t<div role=\"listitem\">\n\t\t\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\t\t\tmultiple={ false }\n\t\t\t\t\t\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Safari doesn't emit a focus event on button elements when\n\t\t\t\t\t\t\t\t\t\t\t\t\t// clicked and we need to manually focus the button here.\n\t\t\t\t\t\t\t\t\t\t\t\t\t// The reason is that core's Media Library modal explicitly triggers a\n\t\t\t\t\t\t\t\t\t\t\t\t\t// focus event and therefore a `blur` event is triggered on a different\n\t\t\t\t\t\t\t\t\t\t\t\t\t// element, which doesn't contain the `data-unstable-ignore-focus-outside-for-relatedtarget`\n\t\t\t\t\t\t\t\t\t\t\t\t\t// attribute making the Inserter dialog to close.\n\t\t\t\t\t\t\t\t\t\t\t\t\tevent.target.focus();\n\t\t\t\t\t\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-library-button\"\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t\t\tdata-unstable-ignore-focus-outside-for-relatedtarget=\".media-modal\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</nav>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ isMobile && (\n\t\t\t\t<MobileTabNavigation categories={ mobileMediaCategories }>\n\t\t\t\t\t{ ( category ) => (\n\t\t\t\t\t\t<MediaCategoryPanel\n\t\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</MobileTabNavigation>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default MediaTab;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__","useViewportMatch","Button","useCallback","useMemo","MediaCategoryPanel","MediaUploadCheck","MediaUpload","useMediaCategories","getBlockAndPreviewFromMedia","MobileTabNavigation","CategoryTabs","InserterNoResults","ALLOWED_MEDIA_TYPES","MediaTab","rootClientId","selectedCategory","onSelectCategory","onInsert","children","mediaCategories","isMobile","baseCssClass","onSelectMedia","media","url","block","type","categories","map","mediaCategory","label","labels","name","length","createElement","Fragment","className","multiple","onSelect","allowedTypes","render","open","onClick","event","target","focus","variant","category"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-tab.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { Button } from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { MediaCategoryPanel } from './media-panel';\nimport MediaUploadCheck from '../../media-upload/check';\nimport MediaUpload from '../../media-upload';\nimport { useMediaCategories } from './hooks';\nimport { getBlockAndPreviewFromMedia } from './utils';\nimport MobileTabNavigation from '../mobile-tab-navigation';\nimport CategoryTabs from '../category-tabs';\nimport InserterNoResults from '../no-results';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image', 'video', 'audio' ];\n\nfunction MediaTab( {\n\trootClientId,\n\tselectedCategory,\n\tonSelectCategory,\n\tonInsert,\n\tchildren,\n} ) {\n\tconst mediaCategories = useMediaCategories( rootClientId );\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\tconst baseCssClass = 'block-editor-inserter__media-tabs';\n\tconst onSelectMedia = useCallback(\n\t\t( media ) => {\n\t\t\tif ( ! media?.url ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst [ block ] = getBlockAndPreviewFromMedia( media, media.type );\n\t\t\tonInsert( block );\n\t\t},\n\t\t[ onInsert ]\n\t);\n\tconst categories = useMemo(\n\t\t() =>\n\t\t\tmediaCategories.map( ( mediaCategory ) => ( {\n\t\t\t\t...mediaCategory,\n\t\t\t\tlabel: mediaCategory.labels.name,\n\t\t\t} ) ),\n\t\t[ mediaCategories ]\n\t);\n\n\tif ( ! categories.length ) {\n\t\treturn <InserterNoResults />;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isMobile && (\n\t\t\t\t<div className={ `${ baseCssClass }-container` }>\n\t\t\t\t\t<CategoryTabs\n\t\t\t\t\t\tcategories={ categories }\n\t\t\t\t\t\tselectedCategory={ selectedCategory }\n\t\t\t\t\t\tonSelectCategory={ onSelectCategory }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</CategoryTabs>\n\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\tmultiple={ false }\n\t\t\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\t// Safari doesn't emit a focus event on button elements when\n\t\t\t\t\t\t\t\t\t\t// clicked and we need to manually focus the button here.\n\t\t\t\t\t\t\t\t\t\t// The reason is that core's Media Library modal explicitly triggers a\n\t\t\t\t\t\t\t\t\t\t// focus event and therefore a `blur` event is triggered on a different\n\t\t\t\t\t\t\t\t\t\t// element, which doesn't contain the `data-unstable-ignore-focus-outside-for-relatedtarget`\n\t\t\t\t\t\t\t\t\t\t// attribute making the Inserter dialog to close.\n\t\t\t\t\t\t\t\t\t\tevent.target.focus();\n\t\t\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-library-button\"\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\tdata-unstable-ignore-focus-outside-for-relatedtarget=\".media-modal\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ isMobile && (\n\t\t\t\t<MobileTabNavigation categories={ categories }>\n\t\t\t\t\t{ ( category ) => (\n\t\t\t\t\t\t<MediaCategoryPanel\n\t\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</MobileTabNavigation>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default MediaTab;\n"],"mappings":"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","ignoreList":[]}
@@ -7,26 +7,23 @@ import classnames from 'classnames';
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
10
- import { forwardRef, useState, useCallback, useMemo, useImperativeHandle, useRef } from '@wordpress/element';
10
+ import { forwardRef, useState, useCallback, useMemo, useRef, useLayoutEffect } from '@wordpress/element';
11
11
  import { VisuallyHidden, SearchControl, Popover } from '@wordpress/components';
12
12
  import { __ } from '@wordpress/i18n';
13
- import { useSelect } from '@wordpress/data';
14
13
  import { useDebouncedInput } from '@wordpress/compose';
15
14
 
16
15
  /**
17
16
  * Internal dependencies
18
17
  */
19
- import { unlock } from '../../lock-unlock';
20
18
  import Tips from './tips';
21
19
  import InserterPreviewPanel from './preview-panel';
22
20
  import BlockTypesTab from './block-types-tab';
23
21
  import BlockPatternsTab from './block-patterns-tab';
24
22
  import { PatternCategoryPreviewPanel } from './block-patterns-tab/pattern-category-preview-panel';
25
- import { MediaTab, MediaCategoryDialog, useMediaCategories } from './media-tab';
23
+ import { MediaTab, MediaCategoryPanel } from './media-tab';
26
24
  import InserterSearchResults from './search-results';
27
25
  import useInsertionPoint from './hooks/use-insertion-point';
28
26
  import InserterTabs from './tabs';
29
- import { store as blockEditorStore } from '../../store';
30
27
  import { useZoomOut } from '../../hooks/use-zoom-out';
31
28
  const NOOP = () => {};
32
29
  function InserterMenu({
@@ -46,7 +43,7 @@ function InserterMenu({
46
43
  const [selectedPatternCategory, setSelectedPatternCategory] = useState(null);
47
44
  const [patternFilter, setPatternFilter] = useState('all');
48
45
  const [selectedMediaCategory, setSelectedMediaCategory] = useState(null);
49
- const [selectedTab, setSelectedTab] = useState(null);
46
+ const [selectedTab, setSelectedTab] = useState('blocks');
50
47
  const [destinationRootClientId, onInsertBlocks, onToggleInsertionPoint] = useInsertionPoint({
51
48
  rootClientId,
52
49
  clientId,
@@ -54,18 +51,6 @@ function InserterMenu({
54
51
  insertionIndex: __experimentalInsertionIndex,
55
52
  shouldFocusBlock
56
53
  });
57
- const {
58
- showPatterns
59
- } = useSelect(select => {
60
- const {
61
- hasAllowedPatterns
62
- } = unlock(select(blockEditorStore));
63
- return {
64
- showPatterns: hasAllowedPatterns(destinationRootClientId)
65
- };
66
- }, [destinationRootClientId]);
67
- const mediaCategories = useMediaCategories(destinationRootClientId);
68
- const showMedia = mediaCategories.length > 0;
69
54
  const onInsert = useCallback((blocks, meta, shouldForceFocusBlock) => {
70
55
  onInsertBlocks(blocks, meta, shouldForceFocusBlock);
71
56
  onSelect();
@@ -90,9 +75,40 @@ function InserterMenu({
90
75
  if (isZoomedOutViewExperimentEnabled) {
91
76
  __experimentalOnPatternCategorySelection();
92
77
  }
93
- }, [setSelectedPatternCategory, __experimentalOnPatternCategorySelection]);
78
+ }, [setSelectedPatternCategory, __experimentalOnPatternCategorySelection, isZoomedOutViewExperimentEnabled]);
94
79
  const showPatternPanel = selectedTab === 'patterns' && !delayedFilterValue && selectedPatternCategory;
95
- const blocksTab = useMemo(() => createElement(Fragment, null, createElement("div", {
80
+ const showMediaPanel = selectedTab === 'media' && selectedMediaCategory;
81
+ const inserterSearch = useMemo(() => {
82
+ if (selectedTab === 'media') {
83
+ return null;
84
+ }
85
+ return createElement(Fragment, null, createElement(SearchControl, {
86
+ __nextHasNoMarginBottom: true,
87
+ className: "block-editor-inserter__search",
88
+ onChange: value => {
89
+ if (hoveredItem) {
90
+ setHoveredItem(null);
91
+ }
92
+ setFilterValue(value);
93
+ },
94
+ value: filterValue,
95
+ label: __('Search for blocks and patterns'),
96
+ placeholder: __('Search')
97
+ }), !!delayedFilterValue && createElement(InserterSearchResults, {
98
+ filterValue: delayedFilterValue,
99
+ onSelect: onSelect,
100
+ onHover: onHover,
101
+ onHoverPattern: onHoverPattern,
102
+ rootClientId: rootClientId,
103
+ clientId: clientId,
104
+ isAppender: isAppender,
105
+ __experimentalInsertionIndex: __experimentalInsertionIndex,
106
+ showBlockDirectory: true,
107
+ shouldFocusBlock: shouldFocusBlock,
108
+ prioritizePatterns: selectedTab === 'patterns'
109
+ }));
110
+ }, [selectedTab, hoveredItem, setHoveredItem, setFilterValue, filterValue, delayedFilterValue, onSelect, onHover, onHoverPattern, shouldFocusBlock, clientId, rootClientId, __experimentalInsertionIndex, isAppender]);
111
+ const blocksTab = useMemo(() => createElement(Fragment, null, inserterSearch, !delayedFilterValue && createElement(Fragment, null, createElement("div", {
96
112
  className: "block-editor-inserter__block-list"
97
113
  }, createElement(BlockTypesTab, {
98
114
  rootClientId: destinationRootClientId,
@@ -103,8 +119,8 @@ function InserterMenu({
103
119
  className: "block-editor-inserter__tips"
104
120
  }, createElement(VisuallyHidden, {
105
121
  as: "h2"
106
- }, __('A tip for using the block editor')), createElement(Tips, null))), [destinationRootClientId, onInsert, onHover, showMostUsedBlocks, showInserterHelpPanel]);
107
- const patternsTab = useMemo(() => createElement(BlockPatternsTab, {
122
+ }, __('A tip for using the block editor')), createElement(Tips, null)))), [destinationRootClientId, onInsert, onHover, showMostUsedBlocks, showInserterHelpPanel, inserterSearch, delayedFilterValue]);
123
+ const patternsTab = useMemo(() => createElement(Fragment, null, inserterSearch, !delayedFilterValue && createElement(BlockPatternsTab, {
108
124
  rootClientId: destinationRootClientId,
109
125
  onInsert: onInsertPattern,
110
126
  onSelectCategory: onClickPatternCategory,
@@ -116,26 +132,22 @@ function InserterMenu({
116
132
  category: selectedPatternCategory,
117
133
  patternFilter: patternFilter,
118
134
  showTitlesAsTooltip: true
119
- })), [destinationRootClientId, onInsertPattern, onClickPatternCategory, selectedPatternCategory, showPatternPanel]);
135
+ }))), [destinationRootClientId, onHoverPattern, onInsertPattern, onClickPatternCategory, patternFilter, selectedPatternCategory, showPatternPanel, inserterSearch, delayedFilterValue]);
120
136
  const mediaTab = useMemo(() => createElement(MediaTab, {
121
137
  rootClientId: destinationRootClientId,
122
138
  selectedCategory: selectedMediaCategory,
123
139
  onSelectCategory: setSelectedMediaCategory,
124
140
  onInsert: onInsert
125
- }), [destinationRootClientId, onInsert, selectedMediaCategory, setSelectedMediaCategory]);
141
+ }, showMediaPanel && createElement(MediaCategoryPanel, {
142
+ rootClientId: destinationRootClientId,
143
+ onInsert: onInsert,
144
+ category: selectedMediaCategory
145
+ })), [destinationRootClientId, onInsert, selectedMediaCategory, setSelectedMediaCategory, showMediaPanel]);
126
146
  const inserterTabsContents = useMemo(() => ({
127
147
  blocks: blocksTab,
128
148
  patterns: patternsTab,
129
149
  media: mediaTab
130
150
  }), [blocksTab, mediaTab, patternsTab]);
131
- const searchRef = useRef();
132
- useImperativeHandle(ref, () => ({
133
- focusSearch: () => {
134
- searchRef.current.focus();
135
- }
136
- }));
137
- const showAsTabs = !delayedFilterValue && (showPatterns || showMedia);
138
- const showMediaPanel = selectedTab === 'media' && !delayedFilterValue && selectedMediaCategory;
139
151
 
140
152
  // When the pattern panel is showing, we want to use zoom out mode
141
153
  useZoomOut(showPatternPanel);
@@ -146,50 +158,28 @@ function InserterMenu({
146
158
  }
147
159
  setSelectedTab(value);
148
160
  };
161
+
162
+ // Focus first active tab, if any
163
+ const tabsRef = useRef();
164
+ useLayoutEffect(() => {
165
+ if (tabsRef.current) {
166
+ window.requestAnimationFrame(() => {
167
+ tabsRef.current.querySelector('[role="tab"][aria-selected="true"]')?.focus();
168
+ });
169
+ }
170
+ }, []);
149
171
  return createElement("div", {
150
172
  className: classnames('block-editor-inserter__menu', {
151
- 'show-panel': showPatternPanel
152
- })
173
+ 'show-panel': showPatternPanel || showMediaPanel
174
+ }),
175
+ ref: ref
153
176
  }, createElement("div", {
154
- className: classnames('block-editor-inserter__main-area', {
155
- 'show-as-tabs': showAsTabs
156
- })
157
- }, createElement(SearchControl, {
158
- __nextHasNoMarginBottom: true,
159
- className: "block-editor-inserter__search",
160
- onChange: value => {
161
- if (hoveredItem) setHoveredItem(null);
162
- setFilterValue(value);
163
- },
164
- value: filterValue,
165
- label: __('Search for blocks and patterns'),
166
- placeholder: __('Search'),
167
- ref: searchRef
168
- }), !!delayedFilterValue && createElement("div", {
169
- className: "block-editor-inserter__no-tab-container"
170
- }, createElement(InserterSearchResults, {
171
- filterValue: delayedFilterValue,
172
- onSelect: onSelect,
173
- onHover: onHover,
174
- onHoverPattern: onHoverPattern,
175
- rootClientId: rootClientId,
176
- clientId: clientId,
177
- isAppender: isAppender,
178
- __experimentalInsertionIndex: __experimentalInsertionIndex,
179
- showBlockDirectory: true,
180
- shouldFocusBlock: shouldFocusBlock
181
- })), showAsTabs && createElement(InserterTabs, {
182
- showPatterns: showPatterns,
183
- showMedia: showMedia,
177
+ className: "block-editor-inserter__main-area"
178
+ }, createElement(InserterTabs, {
179
+ ref: tabsRef,
184
180
  onSelect: handleSetSelectedTab,
185
181
  tabsContents: inserterTabsContents
186
- }), !delayedFilterValue && !showAsTabs && createElement("div", {
187
- className: "block-editor-inserter__no-tab-container"
188
- }, blocksTab)), showMediaPanel && createElement(MediaCategoryDialog, {
189
- rootClientId: destinationRootClientId,
190
- onInsert: onInsert,
191
- category: selectedMediaCategory
192
- }), showInserterHelpPanel && hoveredItem && createElement(Popover, {
182
+ })), showInserterHelpPanel && hoveredItem && createElement(Popover, {
193
183
  className: "block-editor-inserter__preview-container__popover",
194
184
  placement: "right-start",
195
185
  offset: 16,
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","forwardRef","useState","useCallback","useMemo","useImperativeHandle","useRef","VisuallyHidden","SearchControl","Popover","__","useSelect","useDebouncedInput","unlock","Tips","InserterPreviewPanel","BlockTypesTab","BlockPatternsTab","PatternCategoryPreviewPanel","MediaTab","MediaCategoryDialog","useMediaCategories","InserterSearchResults","useInsertionPoint","InserterTabs","store","blockEditorStore","useZoomOut","NOOP","InserterMenu","rootClientId","clientId","isAppender","__experimentalInsertionIndex","onSelect","showInserterHelpPanel","showMostUsedBlocks","__experimentalFilterValue","shouldFocusBlock","__experimentalOnPatternCategorySelection","ref","filterValue","setFilterValue","delayedFilterValue","hoveredItem","setHoveredItem","selectedPatternCategory","setSelectedPatternCategory","patternFilter","setPatternFilter","selectedMediaCategory","setSelectedMediaCategory","selectedTab","setSelectedTab","destinationRootClientId","onInsertBlocks","onToggleInsertionPoint","insertionIndex","showPatterns","select","hasAllowedPatterns","mediaCategories","showMedia","length","onInsert","blocks","meta","shouldForceFocusBlock","onInsertPattern","patternName","onHover","item","onHoverPattern","isZoomedOutViewExperimentEnabled","window","__experimentalEnableZoomedOutView","onClickPatternCategory","patternCategory","filter","showPatternPanel","blocksTab","createElement","Fragment","className","as","patternsTab","onSelectCategory","selectedCategory","category","showTitlesAsTooltip","mediaTab","inserterTabsContents","patterns","media","searchRef","focusSearch","current","focus","showAsTabs","showMediaPanel","handleSetSelectedTab","value","__nextHasNoMarginBottom","onChange","label","placeholder","showBlockDirectory","tabsContents","placement","offset","focusOnMount","animate"],"sources":["@wordpress/block-editor/src/components/inserter/menu.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tforwardRef,\n\tuseState,\n\tuseCallback,\n\tuseMemo,\n\tuseImperativeHandle,\n\tuseRef,\n} from '@wordpress/element';\nimport { VisuallyHidden, SearchControl, Popover } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useDebouncedInput } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport Tips from './tips';\nimport InserterPreviewPanel from './preview-panel';\nimport BlockTypesTab from './block-types-tab';\nimport BlockPatternsTab from './block-patterns-tab';\nimport { PatternCategoryPreviewPanel } from './block-patterns-tab/pattern-category-preview-panel';\nimport { MediaTab, MediaCategoryDialog, useMediaCategories } from './media-tab';\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport InserterTabs from './tabs';\nimport { store as blockEditorStore } from '../../store';\nimport { useZoomOut } from '../../hooks/use-zoom-out';\n\nconst NOOP = () => {};\nfunction InserterMenu(\n\t{\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\t__experimentalInsertionIndex,\n\t\tonSelect,\n\t\tshowInserterHelpPanel,\n\t\tshowMostUsedBlocks,\n\t\t__experimentalFilterValue = '',\n\t\tshouldFocusBlock = true,\n\t\t__experimentalOnPatternCategorySelection = NOOP,\n\t},\n\tref\n) {\n\tconst [ filterValue, setFilterValue, delayedFilterValue ] =\n\t\tuseDebouncedInput( __experimentalFilterValue );\n\tconst [ hoveredItem, setHoveredItem ] = useState( null );\n\tconst [ selectedPatternCategory, setSelectedPatternCategory ] =\n\t\tuseState( null );\n\tconst [ patternFilter, setPatternFilter ] = useState( 'all' );\n\tconst [ selectedMediaCategory, setSelectedMediaCategory ] =\n\t\tuseState( null );\n\tconst [ selectedTab, setSelectedTab ] = useState( null );\n\n\tconst [ destinationRootClientId, onInsertBlocks, onToggleInsertionPoint ] =\n\t\tuseInsertionPoint( {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tinsertionIndex: __experimentalInsertionIndex,\n\t\t\tshouldFocusBlock,\n\t\t} );\n\tconst { showPatterns } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { hasAllowedPatterns } = unlock( select( blockEditorStore ) );\n\t\t\treturn {\n\t\t\t\tshowPatterns: hasAllowedPatterns( destinationRootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ destinationRootClientId ]\n\t);\n\n\tconst mediaCategories = useMediaCategories( destinationRootClientId );\n\tconst showMedia = mediaCategories.length > 0;\n\n\tconst onInsert = useCallback(\n\t\t( blocks, meta, shouldForceFocusBlock ) => {\n\t\t\tonInsertBlocks( blocks, meta, shouldForceFocusBlock );\n\t\t\tonSelect();\n\t\t},\n\t\t[ onInsertBlocks, onSelect ]\n\t);\n\n\tconst onInsertPattern = useCallback(\n\t\t( blocks, patternName ) => {\n\t\t\tonInsertBlocks( blocks, { patternName } );\n\t\t\tonSelect();\n\t\t},\n\t\t[ onInsertBlocks, onSelect ]\n\t);\n\n\tconst onHover = useCallback(\n\t\t( item ) => {\n\t\t\tonToggleInsertionPoint( !! item );\n\t\t\tsetHoveredItem( item );\n\t\t},\n\t\t[ onToggleInsertionPoint, setHoveredItem ]\n\t);\n\n\tconst onHoverPattern = useCallback(\n\t\t( item ) => {\n\t\t\tonToggleInsertionPoint( !! item );\n\t\t},\n\t\t[ onToggleInsertionPoint ]\n\t);\n\n\tconst isZoomedOutViewExperimentEnabled =\n\t\twindow?.__experimentalEnableZoomedOutView;\n\tconst onClickPatternCategory = useCallback(\n\t\t( patternCategory, filter ) => {\n\t\t\tsetSelectedPatternCategory( patternCategory );\n\t\t\tsetPatternFilter( filter );\n\t\t\tif ( isZoomedOutViewExperimentEnabled ) {\n\t\t\t\t__experimentalOnPatternCategorySelection();\n\t\t\t}\n\t\t},\n\t\t[ setSelectedPatternCategory, __experimentalOnPatternCategorySelection ]\n\t);\n\n\tconst showPatternPanel =\n\t\tselectedTab === 'patterns' &&\n\t\t! delayedFilterValue &&\n\t\tselectedPatternCategory;\n\n\tconst blocksTab = useMemo(\n\t\t() => (\n\t\t\t<>\n\t\t\t\t<div className=\"block-editor-inserter__block-list\">\n\t\t\t\t\t<BlockTypesTab\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t{ showInserterHelpPanel && (\n\t\t\t\t\t<div className=\"block-editor-inserter__tips\">\n\t\t\t\t\t\t<VisuallyHidden as=\"h2\">\n\t\t\t\t\t\t\t{ __( 'A tip for using the block editor' ) }\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t<Tips />\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</>\n\t\t),\n\t\t[\n\t\t\tdestinationRootClientId,\n\t\t\tonInsert,\n\t\t\tonHover,\n\t\t\tshowMostUsedBlocks,\n\t\t\tshowInserterHelpPanel,\n\t\t]\n\t);\n\n\tconst patternsTab = useMemo(\n\t\t() => (\n\t\t\t<BlockPatternsTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\tonSelectCategory={ onClickPatternCategory }\n\t\t\t\tselectedCategory={ selectedPatternCategory }\n\t\t\t>\n\t\t\t\t{ showPatternPanel && (\n\t\t\t\t\t<PatternCategoryPreviewPanel\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\t\t\tonHover={ onHoverPattern }\n\t\t\t\t\t\tcategory={ selectedPatternCategory }\n\t\t\t\t\t\tpatternFilter={ patternFilter }\n\t\t\t\t\t\tshowTitlesAsTooltip\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockPatternsTab>\n\t\t),\n\t\t[\n\t\t\tdestinationRootClientId,\n\t\t\tonInsertPattern,\n\t\t\tonClickPatternCategory,\n\t\t\tselectedPatternCategory,\n\t\t\tshowPatternPanel,\n\t\t]\n\t);\n\n\tconst mediaTab = useMemo(\n\t\t() => (\n\t\t\t<MediaTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tselectedCategory={ selectedMediaCategory }\n\t\t\t\tonSelectCategory={ setSelectedMediaCategory }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t/>\n\t\t),\n\t\t[\n\t\t\tdestinationRootClientId,\n\t\t\tonInsert,\n\t\t\tselectedMediaCategory,\n\t\t\tsetSelectedMediaCategory,\n\t\t]\n\t);\n\n\tconst inserterTabsContents = useMemo(\n\t\t() => ( {\n\t\t\tblocks: blocksTab,\n\t\t\tpatterns: patternsTab,\n\t\t\tmedia: mediaTab,\n\t\t} ),\n\t\t[ blocksTab, mediaTab, patternsTab ]\n\t);\n\n\tconst searchRef = useRef();\n\tuseImperativeHandle( ref, () => ( {\n\t\tfocusSearch: () => {\n\t\t\tsearchRef.current.focus();\n\t\t},\n\t} ) );\n\n\tconst showAsTabs = ! delayedFilterValue && ( showPatterns || showMedia );\n\tconst showMediaPanel =\n\t\tselectedTab === 'media' &&\n\t\t! delayedFilterValue &&\n\t\tselectedMediaCategory;\n\n\t// When the pattern panel is showing, we want to use zoom out mode\n\tuseZoomOut( showPatternPanel );\n\n\tconst handleSetSelectedTab = ( value ) => {\n\t\t// If no longer on patterns tab remove the category setting.\n\t\tif ( value !== 'patterns' ) {\n\t\t\tsetSelectedPatternCategory( null );\n\t\t}\n\t\tsetSelectedTab( value );\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'block-editor-inserter__menu', {\n\t\t\t\t'show-panel': showPatternPanel,\n\t\t\t} ) }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ classnames( 'block-editor-inserter__main-area', {\n\t\t\t\t\t'show-as-tabs': showAsTabs,\n\t\t\t\t} ) }\n\t\t\t>\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\tonChange={ ( value ) => {\n\t\t\t\t\t\tif ( hoveredItem ) setHoveredItem( null );\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t\tref={ searchRef }\n\t\t\t\t/>\n\t\t\t\t{ !! delayedFilterValue && (\n\t\t\t\t\t<div className=\"block-editor-inserter__no-tab-container\">\n\t\t\t\t\t\t<InserterSearchResults\n\t\t\t\t\t\t\tfilterValue={ delayedFilterValue }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\t\tonHoverPattern={ onHoverPattern }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\t\t\t__experimentalInsertionIndex={\n\t\t\t\t\t\t\t\t__experimentalInsertionIndex\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tshowBlockDirectory\n\t\t\t\t\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t{ showAsTabs && (\n\t\t\t\t\t<InserterTabs\n\t\t\t\t\t\tshowPatterns={ showPatterns }\n\t\t\t\t\t\tshowMedia={ showMedia }\n\t\t\t\t\t\tonSelect={ handleSetSelectedTab }\n\t\t\t\t\t\ttabsContents={ inserterTabsContents }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! delayedFilterValue && ! showAsTabs && (\n\t\t\t\t\t<div className=\"block-editor-inserter__no-tab-container\">\n\t\t\t\t\t\t{ blocksTab }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ showMediaPanel && (\n\t\t\t\t<MediaCategoryDialog\n\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\tcategory={ selectedMediaCategory }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showInserterHelpPanel && hoveredItem && (\n\t\t\t\t<Popover\n\t\t\t\t\tclassName=\"block-editor-inserter__preview-container__popover\"\n\t\t\t\t\tplacement=\"right-start\"\n\t\t\t\t\toffset={ 16 }\n\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t\tanimate={ false }\n\t\t\t\t>\n\t\t\t\t\t<InserterPreviewPanel item={ hoveredItem } />\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default forwardRef( InserterMenu );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["classnames","forwardRef","useState","useCallback","useMemo","useRef","useLayoutEffect","VisuallyHidden","SearchControl","Popover","__","useDebouncedInput","Tips","InserterPreviewPanel","BlockTypesTab","BlockPatternsTab","PatternCategoryPreviewPanel","MediaTab","MediaCategoryPanel","InserterSearchResults","useInsertionPoint","InserterTabs","useZoomOut","NOOP","InserterMenu","rootClientId","clientId","isAppender","__experimentalInsertionIndex","onSelect","showInserterHelpPanel","showMostUsedBlocks","__experimentalFilterValue","shouldFocusBlock","__experimentalOnPatternCategorySelection","ref","filterValue","setFilterValue","delayedFilterValue","hoveredItem","setHoveredItem","selectedPatternCategory","setSelectedPatternCategory","patternFilter","setPatternFilter","selectedMediaCategory","setSelectedMediaCategory","selectedTab","setSelectedTab","destinationRootClientId","onInsertBlocks","onToggleInsertionPoint","insertionIndex","onInsert","blocks","meta","shouldForceFocusBlock","onInsertPattern","patternName","onHover","item","onHoverPattern","isZoomedOutViewExperimentEnabled","window","__experimentalEnableZoomedOutView","onClickPatternCategory","patternCategory","filter","showPatternPanel","showMediaPanel","inserterSearch","createElement","Fragment","__nextHasNoMarginBottom","className","onChange","value","label","placeholder","showBlockDirectory","prioritizePatterns","blocksTab","as","patternsTab","onSelectCategory","selectedCategory","category","showTitlesAsTooltip","mediaTab","inserterTabsContents","patterns","media","handleSetSelectedTab","tabsRef","current","requestAnimationFrame","querySelector","focus","tabsContents","placement","offset","focusOnMount","animate"],"sources":["@wordpress/block-editor/src/components/inserter/menu.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tforwardRef,\n\tuseState,\n\tuseCallback,\n\tuseMemo,\n\tuseRef,\n\tuseLayoutEffect,\n} from '@wordpress/element';\nimport { VisuallyHidden, SearchControl, Popover } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDebouncedInput } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Tips from './tips';\nimport InserterPreviewPanel from './preview-panel';\nimport BlockTypesTab from './block-types-tab';\nimport BlockPatternsTab from './block-patterns-tab';\nimport { PatternCategoryPreviewPanel } from './block-patterns-tab/pattern-category-preview-panel';\nimport { MediaTab, MediaCategoryPanel } from './media-tab';\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport InserterTabs from './tabs';\nimport { useZoomOut } from '../../hooks/use-zoom-out';\n\nconst NOOP = () => {};\nfunction InserterMenu(\n\t{\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\t__experimentalInsertionIndex,\n\t\tonSelect,\n\t\tshowInserterHelpPanel,\n\t\tshowMostUsedBlocks,\n\t\t__experimentalFilterValue = '',\n\t\tshouldFocusBlock = true,\n\t\t__experimentalOnPatternCategorySelection = NOOP,\n\t},\n\tref\n) {\n\tconst [ filterValue, setFilterValue, delayedFilterValue ] =\n\t\tuseDebouncedInput( __experimentalFilterValue );\n\tconst [ hoveredItem, setHoveredItem ] = useState( null );\n\tconst [ selectedPatternCategory, setSelectedPatternCategory ] =\n\t\tuseState( null );\n\tconst [ patternFilter, setPatternFilter ] = useState( 'all' );\n\tconst [ selectedMediaCategory, setSelectedMediaCategory ] =\n\t\tuseState( null );\n\tconst [ selectedTab, setSelectedTab ] = useState( 'blocks' );\n\n\tconst [ destinationRootClientId, onInsertBlocks, onToggleInsertionPoint ] =\n\t\tuseInsertionPoint( {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tinsertionIndex: __experimentalInsertionIndex,\n\t\t\tshouldFocusBlock,\n\t\t} );\n\n\tconst onInsert = useCallback(\n\t\t( blocks, meta, shouldForceFocusBlock ) => {\n\t\t\tonInsertBlocks( blocks, meta, shouldForceFocusBlock );\n\t\t\tonSelect();\n\t\t},\n\t\t[ onInsertBlocks, onSelect ]\n\t);\n\n\tconst onInsertPattern = useCallback(\n\t\t( blocks, patternName ) => {\n\t\t\tonInsertBlocks( blocks, { patternName } );\n\t\t\tonSelect();\n\t\t},\n\t\t[ onInsertBlocks, onSelect ]\n\t);\n\n\tconst onHover = useCallback(\n\t\t( item ) => {\n\t\t\tonToggleInsertionPoint( !! item );\n\t\t\tsetHoveredItem( item );\n\t\t},\n\t\t[ onToggleInsertionPoint, setHoveredItem ]\n\t);\n\n\tconst onHoverPattern = useCallback(\n\t\t( item ) => {\n\t\t\tonToggleInsertionPoint( !! item );\n\t\t},\n\t\t[ onToggleInsertionPoint ]\n\t);\n\n\tconst isZoomedOutViewExperimentEnabled =\n\t\twindow?.__experimentalEnableZoomedOutView;\n\tconst onClickPatternCategory = useCallback(\n\t\t( patternCategory, filter ) => {\n\t\t\tsetSelectedPatternCategory( patternCategory );\n\t\t\tsetPatternFilter( filter );\n\t\t\tif ( isZoomedOutViewExperimentEnabled ) {\n\t\t\t\t__experimentalOnPatternCategorySelection();\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tsetSelectedPatternCategory,\n\t\t\t__experimentalOnPatternCategorySelection,\n\t\t\tisZoomedOutViewExperimentEnabled,\n\t\t]\n\t);\n\n\tconst showPatternPanel =\n\t\tselectedTab === 'patterns' &&\n\t\t! delayedFilterValue &&\n\t\tselectedPatternCategory;\n\n\tconst showMediaPanel = selectedTab === 'media' && selectedMediaCategory;\n\n\tconst inserterSearch = useMemo( () => {\n\t\tif ( selectedTab === 'media' ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<>\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\tonChange={ ( value ) => {\n\t\t\t\t\t\tif ( hoveredItem ) {\n\t\t\t\t\t\t\tsetHoveredItem( null );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ filterValue }\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\t{ !! delayedFilterValue && (\n\t\t\t\t\t<InserterSearchResults\n\t\t\t\t\t\tfilterValue={ delayedFilterValue }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tonHoverPattern={ onHoverPattern }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\t\t__experimentalInsertionIndex={\n\t\t\t\t\t\t\t__experimentalInsertionIndex\n\t\t\t\t\t\t}\n\t\t\t\t\t\tshowBlockDirectory\n\t\t\t\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t\t\t\t\tprioritizePatterns={ selectedTab === 'patterns' }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}, [\n\t\tselectedTab,\n\t\thoveredItem,\n\t\tsetHoveredItem,\n\t\tsetFilterValue,\n\t\tfilterValue,\n\t\tdelayedFilterValue,\n\t\tonSelect,\n\t\tonHover,\n\t\tonHoverPattern,\n\t\tshouldFocusBlock,\n\t\tclientId,\n\t\trootClientId,\n\t\t__experimentalInsertionIndex,\n\t\tisAppender,\n\t] );\n\n\tconst blocksTab = useMemo(\n\t\t() => (\n\t\t\t<>\n\t\t\t\t{ inserterSearch }\n\t\t\t\t{ ! delayedFilterValue && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div className=\"block-editor-inserter__block-list\">\n\t\t\t\t\t\t\t<BlockTypesTab\n\t\t\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{ showInserterHelpPanel && (\n\t\t\t\t\t\t\t<div className=\"block-editor-inserter__tips\">\n\t\t\t\t\t\t\t\t<VisuallyHidden as=\"h2\">\n\t\t\t\t\t\t\t\t\t{ __( 'A tip for using the block editor' ) }\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t\t<Tips />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</>\n\t\t),\n\t\t[\n\t\t\tdestinationRootClientId,\n\t\t\tonInsert,\n\t\t\tonHover,\n\t\t\tshowMostUsedBlocks,\n\t\t\tshowInserterHelpPanel,\n\t\t\tinserterSearch,\n\t\t\tdelayedFilterValue,\n\t\t]\n\t);\n\n\tconst patternsTab = useMemo(\n\t\t() => (\n\t\t\t<>\n\t\t\t\t{ inserterSearch }\n\t\t\t\t{ ! delayedFilterValue && (\n\t\t\t\t\t<BlockPatternsTab\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\t\t\tonSelectCategory={ onClickPatternCategory }\n\t\t\t\t\t\tselectedCategory={ selectedPatternCategory }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ showPatternPanel && (\n\t\t\t\t\t\t\t<PatternCategoryPreviewPanel\n\t\t\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\t\t\t\t\tonHover={ onHoverPattern }\n\t\t\t\t\t\t\t\tcategory={ selectedPatternCategory }\n\t\t\t\t\t\t\t\tpatternFilter={ patternFilter }\n\t\t\t\t\t\t\t\tshowTitlesAsTooltip\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockPatternsTab>\n\t\t\t\t) }\n\t\t\t</>\n\t\t),\n\t\t[\n\t\t\tdestinationRootClientId,\n\t\t\tonHoverPattern,\n\t\t\tonInsertPattern,\n\t\t\tonClickPatternCategory,\n\t\t\tpatternFilter,\n\t\t\tselectedPatternCategory,\n\t\t\tshowPatternPanel,\n\t\t\tinserterSearch,\n\t\t\tdelayedFilterValue,\n\t\t]\n\t);\n\n\tconst mediaTab = useMemo(\n\t\t() => (\n\t\t\t<MediaTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tselectedCategory={ selectedMediaCategory }\n\t\t\t\tonSelectCategory={ setSelectedMediaCategory }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t>\n\t\t\t\t{ showMediaPanel && (\n\t\t\t\t\t<MediaCategoryPanel\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\tcategory={ selectedMediaCategory }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</MediaTab>\n\t\t),\n\t\t[\n\t\t\tdestinationRootClientId,\n\t\t\tonInsert,\n\t\t\tselectedMediaCategory,\n\t\t\tsetSelectedMediaCategory,\n\t\t\tshowMediaPanel,\n\t\t]\n\t);\n\n\tconst inserterTabsContents = useMemo(\n\t\t() => ( {\n\t\t\tblocks: blocksTab,\n\t\t\tpatterns: patternsTab,\n\t\t\tmedia: mediaTab,\n\t\t} ),\n\t\t[ blocksTab, mediaTab, patternsTab ]\n\t);\n\n\t// When the pattern panel is showing, we want to use zoom out mode\n\tuseZoomOut( showPatternPanel );\n\n\tconst handleSetSelectedTab = ( value ) => {\n\t\t// If no longer on patterns tab remove the category setting.\n\t\tif ( value !== 'patterns' ) {\n\t\t\tsetSelectedPatternCategory( null );\n\t\t}\n\t\tsetSelectedTab( value );\n\t};\n\n\t// Focus first active tab, if any\n\tconst tabsRef = useRef();\n\tuseLayoutEffect( () => {\n\t\tif ( tabsRef.current ) {\n\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\ttabsRef.current\n\t\t\t\t\t.querySelector( '[role=\"tab\"][aria-selected=\"true\"]' )\n\t\t\t\t\t?.focus();\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'block-editor-inserter__menu', {\n\t\t\t\t'show-panel': showPatternPanel || showMediaPanel,\n\t\t\t} ) }\n\t\t\tref={ ref }\n\t\t>\n\t\t\t<div className=\"block-editor-inserter__main-area\">\n\t\t\t\t<InserterTabs\n\t\t\t\t\tref={ tabsRef }\n\t\t\t\t\tonSelect={ handleSetSelectedTab }\n\t\t\t\t\ttabsContents={ inserterTabsContents }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ showInserterHelpPanel && hoveredItem && (\n\t\t\t\t<Popover\n\t\t\t\t\tclassName=\"block-editor-inserter__preview-container__popover\"\n\t\t\t\t\tplacement=\"right-start\"\n\t\t\t\t\toffset={ 16 }\n\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t\tanimate={ false }\n\t\t\t\t>\n\t\t\t\t\t<InserterPreviewPanel item={ hoveredItem } />\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default forwardRef( InserterMenu );\n"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,7 @@ import { createElement } from "react";
4
4
  */
5
5
  import { privateApis as componentsPrivateApis } from '@wordpress/components';
6
6
  import { __ } from '@wordpress/i18n';
7
+ import { forwardRef } from '@wordpress/element';
7
8
 
8
9
  /**
9
10
  * Internal dependencies
@@ -28,14 +29,13 @@ const mediaTab = {
28
29
  title: __('Media')
29
30
  };
30
31
  function InserterTabs({
31
- showPatterns = false,
32
- showMedia = false,
33
32
  onSelect,
34
33
  tabsContents
35
- }) {
36
- const tabs = [blocksTab, showPatterns && patternsTab, showMedia && mediaTab].filter(Boolean);
34
+ }, ref) {
35
+ const tabs = [blocksTab, patternsTab, mediaTab];
37
36
  return createElement("div", {
38
- className: "block-editor-inserter__tabs"
37
+ className: "block-editor-inserter__tabs",
38
+ ref: ref
39
39
  }, createElement(Tabs, {
40
40
  onSelect: onSelect
41
41
  }, createElement(Tabs.TabList, {
@@ -51,5 +51,5 @@ function InserterTabs({
51
51
  className: "block-editor-inserter__tabpanel"
52
52
  }, tabsContents[tab.name]))));
53
53
  }
54
- export default InserterTabs;
54
+ export default forwardRef(InserterTabs);
55
55
  //# sourceMappingURL=tabs.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["privateApis","componentsPrivateApis","__","unlock","Tabs","blocksTab","name","title","patternsTab","mediaTab","InserterTabs","showPatterns","showMedia","onSelect","tabsContents","tabs","filter","Boolean","createElement","className","TabList","map","tab","Tab","key","tabId","TabPanel","focusable"],"sources":["@wordpress/block-editor/src/components/inserter/tabs.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst blocksTab = {\n\tname: 'blocks',\n\t/* translators: Blocks tab title in the block inserter. */\n\ttitle: __( 'Blocks' ),\n};\nconst patternsTab = {\n\tname: 'patterns',\n\t/* translators: Theme and Directory Patterns tab title in the block inserter. */\n\ttitle: __( 'Patterns' ),\n};\n\nconst mediaTab = {\n\tname: 'media',\n\t/* translators: Media tab title in the block inserter. */\n\ttitle: __( 'Media' ),\n};\n\nfunction InserterTabs( {\n\tshowPatterns = false,\n\tshowMedia = false,\n\tonSelect,\n\ttabsContents,\n} ) {\n\tconst tabs = [\n\t\tblocksTab,\n\t\tshowPatterns && patternsTab,\n\t\tshowMedia && mediaTab,\n\t].filter( Boolean );\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__tabs\">\n\t\t\t<Tabs onSelect={ onSelect }>\n\t\t\t\t<Tabs.TabList className=\"block-editor-inserter__tablist\">\n\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t<Tabs.Tab\n\t\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\t\tclassName=\"block-editor-inserter__tab\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t) ) }\n\t\t\t\t</Tabs.TabList>\n\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\tclassName=\"block-editor-inserter__tabpanel\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ tabsContents[ tab.name ] }\n\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t) ) }\n\t\t\t</Tabs>\n\t\t</div>\n\t);\n}\n\nexport default InserterTabs;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,WAAW,IAAIC,qBAAqB,QAAQ,uBAAuB;AAC5E,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAM;EAAEC;AAAK,CAAC,GAAGD,MAAM,CAAEF,qBAAsB,CAAC;AAEhD,MAAMI,SAAS,GAAG;EACjBC,IAAI,EAAE,QAAQ;EACd;EACAC,KAAK,EAAEL,EAAE,CAAE,QAAS;AACrB,CAAC;AACD,MAAMM,WAAW,GAAG;EACnBF,IAAI,EAAE,UAAU;EAChB;EACAC,KAAK,EAAEL,EAAE,CAAE,UAAW;AACvB,CAAC;AAED,MAAMO,QAAQ,GAAG;EAChBH,IAAI,EAAE,OAAO;EACb;EACAC,KAAK,EAAEL,EAAE,CAAE,OAAQ;AACpB,CAAC;AAED,SAASQ,YAAYA,CAAE;EACtBC,YAAY,GAAG,KAAK;EACpBC,SAAS,GAAG,KAAK;EACjBC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAMC,IAAI,GAAG,CACZV,SAAS,EACTM,YAAY,IAAIH,WAAW,EAC3BI,SAAS,IAAIH,QAAQ,CACrB,CAACO,MAAM,CAAEC,OAAQ,CAAC;EAEnB,OACCC,aAAA;IAAKC,SAAS,EAAC;EAA6B,GAC3CD,aAAA,CAACd,IAAI;IAACS,QAAQ,EAAGA;EAAU,GAC1BK,aAAA,CAACd,IAAI,CAACgB,OAAO;IAACD,SAAS,EAAC;EAAgC,GACrDJ,IAAI,CAACM,GAAG,CAAIC,GAAG,IAChBJ,aAAA,CAACd,IAAI,CAACmB,GAAG;IACRC,GAAG,EAAGF,GAAG,CAAChB,IAAM;IAChBmB,KAAK,EAAGH,GAAG,CAAChB,IAAM;IAClBa,SAAS,EAAC;EAA4B,GAEpCG,GAAG,CAACf,KACG,CACT,CACW,CAAC,EACbQ,IAAI,CAACM,GAAG,CAAIC,GAAG,IAChBJ,aAAA,CAACd,IAAI,CAACsB,QAAQ;IACbF,GAAG,EAAGF,GAAG,CAAChB,IAAM;IAChBmB,KAAK,EAAGH,GAAG,CAAChB,IAAM;IAClBqB,SAAS,EAAG,KAAO;IACnBR,SAAS,EAAC;EAAiC,GAEzCL,YAAY,CAAEQ,GAAG,CAAChB,IAAI,CACV,CACd,CACG,CACF,CAAC;AAER;AAEA,eAAeI,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["privateApis","componentsPrivateApis","__","forwardRef","unlock","Tabs","blocksTab","name","title","patternsTab","mediaTab","InserterTabs","onSelect","tabsContents","ref","tabs","createElement","className","TabList","map","tab","Tab","key","tabId","TabPanel","focusable"],"sources":["@wordpress/block-editor/src/components/inserter/tabs.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst blocksTab = {\n\tname: 'blocks',\n\t/* translators: Blocks tab title in the block inserter. */\n\ttitle: __( 'Blocks' ),\n};\nconst patternsTab = {\n\tname: 'patterns',\n\t/* translators: Theme and Directory Patterns tab title in the block inserter. */\n\ttitle: __( 'Patterns' ),\n};\n\nconst mediaTab = {\n\tname: 'media',\n\t/* translators: Media tab title in the block inserter. */\n\ttitle: __( 'Media' ),\n};\n\nfunction InserterTabs( { onSelect, tabsContents }, ref ) {\n\tconst tabs = [ blocksTab, patternsTab, mediaTab ];\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__tabs\" ref={ ref }>\n\t\t\t<Tabs onSelect={ onSelect }>\n\t\t\t\t<Tabs.TabList className=\"block-editor-inserter__tablist\">\n\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t<Tabs.Tab\n\t\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\t\tclassName=\"block-editor-inserter__tab\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t) ) }\n\t\t\t\t</Tabs.TabList>\n\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\tclassName=\"block-editor-inserter__tabpanel\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ tabsContents[ tab.name ] }\n\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t) ) }\n\t\t\t</Tabs>\n\t\t</div>\n\t);\n}\n\nexport default forwardRef( InserterTabs );\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,WAAW,IAAIC,qBAAqB,QAAQ,uBAAuB;AAC5E,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAM;EAAEC;AAAK,CAAC,GAAGD,MAAM,CAAEH,qBAAsB,CAAC;AAEhD,MAAMK,SAAS,GAAG;EACjBC,IAAI,EAAE,QAAQ;EACd;EACAC,KAAK,EAAEN,EAAE,CAAE,QAAS;AACrB,CAAC;AACD,MAAMO,WAAW,GAAG;EACnBF,IAAI,EAAE,UAAU;EAChB;EACAC,KAAK,EAAEN,EAAE,CAAE,UAAW;AACvB,CAAC;AAED,MAAMQ,QAAQ,GAAG;EAChBH,IAAI,EAAE,OAAO;EACb;EACAC,KAAK,EAAEN,EAAE,CAAE,OAAQ;AACpB,CAAC;AAED,SAASS,YAAYA,CAAE;EAAEC,QAAQ;EAAEC;AAAa,CAAC,EAAEC,GAAG,EAAG;EACxD,MAAMC,IAAI,GAAG,CAAET,SAAS,EAAEG,WAAW,EAAEC,QAAQ,CAAE;EAEjD,OACCM,aAAA;IAAKC,SAAS,EAAC,6BAA6B;IAACH,GAAG,EAAGA;EAAK,GACvDE,aAAA,CAACX,IAAI;IAACO,QAAQ,EAAGA;EAAU,GAC1BI,aAAA,CAACX,IAAI,CAACa,OAAO;IAACD,SAAS,EAAC;EAAgC,GACrDF,IAAI,CAACI,GAAG,CAAIC,GAAG,IAChBJ,aAAA,CAACX,IAAI,CAACgB,GAAG;IACRC,GAAG,EAAGF,GAAG,CAACb,IAAM;IAChBgB,KAAK,EAAGH,GAAG,CAACb,IAAM;IAClBU,SAAS,EAAC;EAA4B,GAEpCG,GAAG,CAACZ,KACG,CACT,CACW,CAAC,EACbO,IAAI,CAACI,GAAG,CAAIC,GAAG,IAChBJ,aAAA,CAACX,IAAI,CAACmB,QAAQ;IACbF,GAAG,EAAGF,GAAG,CAACb,IAAM;IAChBgB,KAAK,EAAGH,GAAG,CAACb,IAAM;IAClBkB,SAAS,EAAG,KAAO;IACnBR,SAAS,EAAC;EAAiC,GAEzCJ,YAAY,CAAEO,GAAG,CAACb,IAAI,CACV,CACd,CACG,CACF,CAAC;AAER;AAEA,eAAeJ,UAAU,CAAEQ,YAAa,CAAC","ignoreList":[]}
@@ -21,7 +21,9 @@ const LineHeightControl = ({
21
21
  const isDefined = isLineHeightDefined(lineHeight);
22
22
  const adjustNextValue = (nextValue, wasTypedOrPasted) => {
23
23
  // Set the next value without modification if lineHeight has been defined.
24
- if (isDefined) return nextValue;
24
+ if (isDefined) {
25
+ return nextValue;
26
+ }
25
27
 
26
28
  /**
27
29
  * The following logic handles the initial spin up/down action
@@ -41,7 +43,9 @@ const LineHeightControl = ({
41
43
  {
42
44
  // This means the user explicitly input '0', rather than using the
43
45
  // spin down action from an undefined value state.
44
- if (wasTypedOrPasted) return nextValue;
46
+ if (wasTypedOrPasted) {
47
+ return nextValue;
48
+ }
45
49
  // Decrement by spin value.
46
50
  return BASE_DEFAULT_VALUE - spin;
47
51
  }
@@ -1 +1 @@
1
- {"version":3,"names":["deprecated","__","__experimentalNumberControl","NumberControl","BASE_DEFAULT_VALUE","RESET_VALUE","STEP","SPIN_FACTOR","isLineHeightDefined","LineHeightControl","value","lineHeight","onChange","__nextHasNoMarginBottom","__unstableInputWidth","otherProps","isDefined","adjustNextValue","nextValue","wasTypedOrPasted","spin","stateReducer","state","action","includes","payload","event","nativeEvent","inputType","since","version","hint","deprecatedStyles","undefined","marginBottom","handleOnChange","type","createElement","className","style","__unstableStateReducer","label","placeholder","step","spinFactor","min","spinControls"],"sources":["@wordpress/block-editor/src/components/line-height-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { __ } from '@wordpress/i18n';\nimport { __experimentalNumberControl as NumberControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tBASE_DEFAULT_VALUE,\n\tRESET_VALUE,\n\tSTEP,\n\tSPIN_FACTOR,\n\tisLineHeightDefined,\n} from './utils';\n\nconst LineHeightControl = ( {\n\tvalue: lineHeight,\n\tonChange,\n\t/** Start opting into the new margin-free styles that will become the default in a future version. */\n\t__nextHasNoMarginBottom = false,\n\t__unstableInputWidth = '60px',\n\t...otherProps\n} ) => {\n\tconst isDefined = isLineHeightDefined( lineHeight );\n\n\tconst adjustNextValue = ( nextValue, wasTypedOrPasted ) => {\n\t\t// Set the next value without modification if lineHeight has been defined.\n\t\tif ( isDefined ) return nextValue;\n\n\t\t/**\n\t\t * The following logic handles the initial spin up/down action\n\t\t * (from an undefined value state) so that the next values are better suited for\n\t\t * line-height rendering. For example, the first spin up should immediately\n\t\t * go to 1.6, rather than the normally expected 0.1.\n\t\t *\n\t\t * Spin up/down actions can be triggered by keydowns of the up/down arrow keys,\n\t\t * dragging the input or by clicking the spin buttons.\n\t\t */\n\t\tconst spin = STEP * SPIN_FACTOR;\n\t\tswitch ( `${ nextValue }` ) {\n\t\t\tcase `${ spin }`:\n\t\t\t\t// Increment by spin value.\n\t\t\t\treturn BASE_DEFAULT_VALUE + spin;\n\t\t\tcase '0': {\n\t\t\t\t// This means the user explicitly input '0', rather than using the\n\t\t\t\t// spin down action from an undefined value state.\n\t\t\t\tif ( wasTypedOrPasted ) return nextValue;\n\t\t\t\t// Decrement by spin value.\n\t\t\t\treturn BASE_DEFAULT_VALUE - spin;\n\t\t\t}\n\t\t\tcase '':\n\t\t\t\treturn BASE_DEFAULT_VALUE;\n\t\t\tdefault:\n\t\t\t\treturn nextValue;\n\t\t}\n\t};\n\n\tconst stateReducer = ( state, action ) => {\n\t\t// Be careful when changing this — cross-browser behavior of the\n\t\t// `inputType` field in `input` events are inconsistent.\n\t\t// For example, Firefox emits an input event with inputType=\"insertReplacementText\"\n\t\t// on spin button clicks, while other browsers do not even emit an input event.\n\t\tconst wasTypedOrPasted = [ 'insertText', 'insertFromPaste' ].includes(\n\t\t\taction.payload.event.nativeEvent?.inputType\n\t\t);\n\t\tconst value = adjustNextValue( state.value, wasTypedOrPasted );\n\t\treturn { ...state, value };\n\t};\n\n\tconst value = isDefined ? lineHeight : RESET_VALUE;\n\n\tif ( ! __nextHasNoMarginBottom ) {\n\t\tdeprecated(\n\t\t\t'Bottom margin styles for wp.blockEditor.LineHeightControl',\n\t\t\t{\n\t\t\t\tsince: '6.0',\n\t\t\t\tversion: '6.4',\n\t\t\t\thint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version',\n\t\t\t}\n\t\t);\n\t}\n\tconst deprecatedStyles = __nextHasNoMarginBottom\n\t\t? undefined\n\t\t: { marginBottom: 24 };\n\n\tconst handleOnChange = ( nextValue, { event } ) => {\n\t\tif ( nextValue === '' ) {\n\t\t\tonChange();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( event.type === 'click' ) {\n\t\t\tonChange( adjustNextValue( `${ nextValue }`, false ) );\n\t\t\treturn;\n\t\t}\n\n\t\tonChange( `${ nextValue }` );\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"block-editor-line-height-control\"\n\t\t\tstyle={ deprecatedStyles }\n\t\t>\n\t\t\t<NumberControl\n\t\t\t\t{ ...otherProps }\n\t\t\t\t__unstableInputWidth={ __unstableInputWidth }\n\t\t\t\t__unstableStateReducer={ stateReducer }\n\t\t\t\tonChange={ handleOnChange }\n\t\t\t\tlabel={ __( 'Line height' ) }\n\t\t\t\tplaceholder={ BASE_DEFAULT_VALUE }\n\t\t\t\tstep={ STEP }\n\t\t\t\tspinFactor={ SPIN_FACTOR }\n\t\t\t\tvalue={ value }\n\t\t\t\tmin={ 0 }\n\t\t\t\tspinControls=\"custom\"\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/line-height-control/README.md\n */\nexport default LineHeightControl;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["deprecated","__","__experimentalNumberControl","NumberControl","BASE_DEFAULT_VALUE","RESET_VALUE","STEP","SPIN_FACTOR","isLineHeightDefined","LineHeightControl","value","lineHeight","onChange","__nextHasNoMarginBottom","__unstableInputWidth","otherProps","isDefined","adjustNextValue","nextValue","wasTypedOrPasted","spin","stateReducer","state","action","includes","payload","event","nativeEvent","inputType","since","version","hint","deprecatedStyles","undefined","marginBottom","handleOnChange","type","createElement","className","style","__unstableStateReducer","label","placeholder","step","spinFactor","min","spinControls"],"sources":["@wordpress/block-editor/src/components/line-height-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { __ } from '@wordpress/i18n';\nimport { __experimentalNumberControl as NumberControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tBASE_DEFAULT_VALUE,\n\tRESET_VALUE,\n\tSTEP,\n\tSPIN_FACTOR,\n\tisLineHeightDefined,\n} from './utils';\n\nconst LineHeightControl = ( {\n\tvalue: lineHeight,\n\tonChange,\n\t/** Start opting into the new margin-free styles that will become the default in a future version. */\n\t__nextHasNoMarginBottom = false,\n\t__unstableInputWidth = '60px',\n\t...otherProps\n} ) => {\n\tconst isDefined = isLineHeightDefined( lineHeight );\n\n\tconst adjustNextValue = ( nextValue, wasTypedOrPasted ) => {\n\t\t// Set the next value without modification if lineHeight has been defined.\n\t\tif ( isDefined ) {\n\t\t\treturn nextValue;\n\t\t}\n\n\t\t/**\n\t\t * The following logic handles the initial spin up/down action\n\t\t * (from an undefined value state) so that the next values are better suited for\n\t\t * line-height rendering. For example, the first spin up should immediately\n\t\t * go to 1.6, rather than the normally expected 0.1.\n\t\t *\n\t\t * Spin up/down actions can be triggered by keydowns of the up/down arrow keys,\n\t\t * dragging the input or by clicking the spin buttons.\n\t\t */\n\t\tconst spin = STEP * SPIN_FACTOR;\n\t\tswitch ( `${ nextValue }` ) {\n\t\t\tcase `${ spin }`:\n\t\t\t\t// Increment by spin value.\n\t\t\t\treturn BASE_DEFAULT_VALUE + spin;\n\t\t\tcase '0': {\n\t\t\t\t// This means the user explicitly input '0', rather than using the\n\t\t\t\t// spin down action from an undefined value state.\n\t\t\t\tif ( wasTypedOrPasted ) {\n\t\t\t\t\treturn nextValue;\n\t\t\t\t}\n\t\t\t\t// Decrement by spin value.\n\t\t\t\treturn BASE_DEFAULT_VALUE - spin;\n\t\t\t}\n\t\t\tcase '':\n\t\t\t\treturn BASE_DEFAULT_VALUE;\n\t\t\tdefault:\n\t\t\t\treturn nextValue;\n\t\t}\n\t};\n\n\tconst stateReducer = ( state, action ) => {\n\t\t// Be careful when changing this — cross-browser behavior of the\n\t\t// `inputType` field in `input` events are inconsistent.\n\t\t// For example, Firefox emits an input event with inputType=\"insertReplacementText\"\n\t\t// on spin button clicks, while other browsers do not even emit an input event.\n\t\tconst wasTypedOrPasted = [ 'insertText', 'insertFromPaste' ].includes(\n\t\t\taction.payload.event.nativeEvent?.inputType\n\t\t);\n\t\tconst value = adjustNextValue( state.value, wasTypedOrPasted );\n\t\treturn { ...state, value };\n\t};\n\n\tconst value = isDefined ? lineHeight : RESET_VALUE;\n\n\tif ( ! __nextHasNoMarginBottom ) {\n\t\tdeprecated(\n\t\t\t'Bottom margin styles for wp.blockEditor.LineHeightControl',\n\t\t\t{\n\t\t\t\tsince: '6.0',\n\t\t\t\tversion: '6.4',\n\t\t\t\thint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version',\n\t\t\t}\n\t\t);\n\t}\n\tconst deprecatedStyles = __nextHasNoMarginBottom\n\t\t? undefined\n\t\t: { marginBottom: 24 };\n\n\tconst handleOnChange = ( nextValue, { event } ) => {\n\t\tif ( nextValue === '' ) {\n\t\t\tonChange();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( event.type === 'click' ) {\n\t\t\tonChange( adjustNextValue( `${ nextValue }`, false ) );\n\t\t\treturn;\n\t\t}\n\n\t\tonChange( `${ nextValue }` );\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"block-editor-line-height-control\"\n\t\t\tstyle={ deprecatedStyles }\n\t\t>\n\t\t\t<NumberControl\n\t\t\t\t{ ...otherProps }\n\t\t\t\t__unstableInputWidth={ __unstableInputWidth }\n\t\t\t\t__unstableStateReducer={ stateReducer }\n\t\t\t\tonChange={ handleOnChange }\n\t\t\t\tlabel={ __( 'Line height' ) }\n\t\t\t\tplaceholder={ BASE_DEFAULT_VALUE }\n\t\t\t\tstep={ STEP }\n\t\t\t\tspinFactor={ SPIN_FACTOR }\n\t\t\t\tvalue={ value }\n\t\t\t\tmin={ 0 }\n\t\t\t\tspinControls=\"custom\"\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/line-height-control/README.md\n */\nexport default LineHeightControl;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,uBAAuB;AAC9C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,2BAA2B,IAAIC,aAAa,QAAQ,uBAAuB;;AAEpF;AACA;AACA;AACA,SACCC,kBAAkB,EAClBC,WAAW,EACXC,IAAI,EACJC,WAAW,EACXC,mBAAmB,QACb,SAAS;AAEhB,MAAMC,iBAAiB,GAAGA,CAAE;EAC3BC,KAAK,EAAEC,UAAU;EACjBC,QAAQ;EACR;EACAC,uBAAuB,GAAG,KAAK;EAC/BC,oBAAoB,GAAG,MAAM;EAC7B,GAAGC;AACJ,CAAC,KAAM;EACN,MAAMC,SAAS,GAAGR,mBAAmB,CAAEG,UAAW,CAAC;EAEnD,MAAMM,eAAe,GAAGA,CAAEC,SAAS,EAAEC,gBAAgB,KAAM;IAC1D;IACA,IAAKH,SAAS,EAAG;MAChB,OAAOE,SAAS;IACjB;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACE,MAAME,IAAI,GAAGd,IAAI,GAAGC,WAAW;IAC/B,QAAU,GAAGW,SAAW,EAAC;MACxB,KAAM,GAAGE,IAAM,EAAC;QACf;QACA,OAAOhB,kBAAkB,GAAGgB,IAAI;MACjC,KAAK,GAAG;QAAE;UACT;UACA;UACA,IAAKD,gBAAgB,EAAG;YACvB,OAAOD,SAAS;UACjB;UACA;UACA,OAAOd,kBAAkB,GAAGgB,IAAI;QACjC;MACA,KAAK,EAAE;QACN,OAAOhB,kBAAkB;MAC1B;QACC,OAAOc,SAAS;IAClB;EACD,CAAC;EAED,MAAMG,YAAY,GAAGA,CAAEC,KAAK,EAAEC,MAAM,KAAM;IACzC;IACA;IACA;IACA;IACA,MAAMJ,gBAAgB,GAAG,CAAE,YAAY,EAAE,iBAAiB,CAAE,CAACK,QAAQ,CACpED,MAAM,CAACE,OAAO,CAACC,KAAK,CAACC,WAAW,EAAEC,SACnC,CAAC;IACD,MAAMlB,KAAK,GAAGO,eAAe,CAAEK,KAAK,CAACZ,KAAK,EAAES,gBAAiB,CAAC;IAC9D,OAAO;MAAE,GAAGG,KAAK;MAAEZ;IAAM,CAAC;EAC3B,CAAC;EAED,MAAMA,KAAK,GAAGM,SAAS,GAAGL,UAAU,GAAGN,WAAW;EAElD,IAAK,CAAEQ,uBAAuB,EAAG;IAChCb,UAAU,CACT,2DAA2D,EAC3D;MACC6B,KAAK,EAAE,KAAK;MACZC,OAAO,EAAE,KAAK;MACdC,IAAI,EAAE;IACP,CACD,CAAC;EACF;EACA,MAAMC,gBAAgB,GAAGnB,uBAAuB,GAC7CoB,SAAS,GACT;IAAEC,YAAY,EAAE;EAAG,CAAC;EAEvB,MAAMC,cAAc,GAAGA,CAAEjB,SAAS,EAAE;IAAEQ;EAAM,CAAC,KAAM;IAClD,IAAKR,SAAS,KAAK,EAAE,EAAG;MACvBN,QAAQ,CAAC,CAAC;MACV;IACD;IAEA,IAAKc,KAAK,CAACU,IAAI,KAAK,OAAO,EAAG;MAC7BxB,QAAQ,CAAEK,eAAe,CAAG,GAAGC,SAAW,EAAC,EAAE,KAAM,CAAE,CAAC;MACtD;IACD;IAEAN,QAAQ,CAAG,GAAGM,SAAW,EAAE,CAAC;EAC7B,CAAC;EAED,OACCmB,aAAA;IACCC,SAAS,EAAC,kCAAkC;IAC5CC,KAAK,EAAGP;EAAkB,GAE1BK,aAAA,CAAClC,aAAa;IAAA,GACRY,UAAU;IACfD,oBAAoB,EAAGA,oBAAsB;IAC7C0B,sBAAsB,EAAGnB,YAAc;IACvCT,QAAQ,EAAGuB,cAAgB;IAC3BM,KAAK,EAAGxC,EAAE,CAAE,aAAc,CAAG;IAC7ByC,WAAW,EAAGtC,kBAAoB;IAClCuC,IAAI,EAAGrC,IAAM;IACbsC,UAAU,EAAGrC,WAAa;IAC1BG,KAAK,EAAGA,KAAO;IACfmC,GAAG,EAAG,CAAG;IACTC,YAAY,EAAC;EAAQ,CACrB,CACG,CAAC;AAER,CAAC;;AAED;AACA;AACA;AACA,eAAerC,iBAAiB","ignoreList":[]}
@@ -49,12 +49,16 @@ function SearchItemIcon({
49
49
  */
50
50
  function addLeadingSlash(url) {
51
51
  const trimmedURL = url?.trim();
52
- if (!trimmedURL?.length) return url;
52
+ if (!trimmedURL?.length) {
53
+ return url;
54
+ }
53
55
  return url?.replace(/^\/?/, '/');
54
56
  }
55
57
  function removeTrailingSlash(url) {
56
58
  const trimmedURL = url?.trim();
57
- if (!trimmedURL?.length) return url;
59
+ if (!trimmedURL?.length) {
60
+ return url;
61
+ }
58
62
  return url?.replace(/\/$/, '');
59
63
  }
60
64
  const partialRight = (fn, ...partialArgs) => (...args) => fn(...args, ...partialArgs);
@@ -72,7 +76,9 @@ const defaultTo = d => v => {
72
76
  * @return {string} the processed url to display.
73
77
  */
74
78
  function getURLForDisplay(url) {
75
- if (!url) return url;
79
+ if (!url) {
80
+ return url;
81
+ }
76
82
  return pipe(safeDecodeURI, getPath, defaultTo(''), partialRight(filterURLForDisplay, 24), removeTrailingSlash, addLeadingSlash)(url);
77
83
  }
78
84
  export const LinkControlSearchItem = ({