@wordpress/block-editor 7.0.1-next.5df0cd52b7.0 → 7.0.4

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 (905) hide show
  1. package/README.md +16 -4
  2. package/build/components/alignment-control/ui.js +2 -1
  3. package/build/components/alignment-control/ui.js.map +1 -1
  4. package/build/components/autocomplete/index.js +1 -1
  5. package/build/components/autocomplete/index.js.map +1 -1
  6. package/build/components/block-actions/index.js +8 -4
  7. package/build/components/block-actions/index.js.map +1 -1
  8. package/build/components/block-alignment-control/ui.js +61 -14
  9. package/build/components/block-alignment-control/ui.js.map +1 -1
  10. package/build/components/block-alignment-control/use-available-alignments.js +25 -3
  11. package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
  12. package/build/components/block-content-overlay/index.js +2 -4
  13. package/build/components/block-content-overlay/index.js.map +1 -1
  14. package/build/components/block-controls/fill.js +6 -6
  15. package/build/components/block-controls/fill.js.map +1 -1
  16. package/build/components/block-controls/groups.js +3 -1
  17. package/build/components/block-controls/groups.js.map +1 -1
  18. package/build/components/block-controls/hook.js +57 -0
  19. package/build/components/block-controls/hook.js.map +1 -0
  20. package/build/components/block-edit/context.js +6 -5
  21. package/build/components/block-edit/context.js.map +1 -1
  22. package/build/components/block-edit/edit.js +1 -1
  23. package/build/components/block-edit/edit.js.map +1 -1
  24. package/build/components/block-icon/index.native.js +13 -9
  25. package/build/components/block-icon/index.native.js.map +1 -1
  26. package/build/components/block-inspector/index.js +10 -7
  27. package/build/components/block-inspector/index.js.map +1 -1
  28. package/build/components/block-list/block-html.js +5 -0
  29. package/build/components/block-list/block-html.js.map +1 -1
  30. package/build/components/block-list/block-list-item.native.js +31 -12
  31. package/build/components/block-list/block-list-item.native.js.map +1 -1
  32. package/build/components/block-list/block-selection-button.native.js +4 -4
  33. package/build/components/block-list/block-selection-button.native.js.map +1 -1
  34. package/build/components/block-list/block.js +15 -9
  35. package/build/components/block-list/block.js.map +1 -1
  36. package/build/components/block-list/block.native.js +6 -7
  37. package/build/components/block-list/block.native.js.map +1 -1
  38. package/build/components/block-list/grid-item.native.js +68 -0
  39. package/build/components/block-list/grid-item.native.js.map +1 -0
  40. package/build/components/block-list/index.js +19 -15
  41. package/build/components/block-list/index.js.map +1 -1
  42. package/build/components/block-list/index.native.js +12 -8
  43. package/build/components/block-list/index.native.js.map +1 -1
  44. package/build/components/block-list/use-block-props/index.js +6 -6
  45. package/build/components/block-list/use-block-props/index.js.map +1 -1
  46. package/build/components/block-list/use-block-props/use-block-custom-class-name.js +4 -6
  47. package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
  48. package/build/components/block-list/use-block-props/use-block-default-class-name.js +1 -1
  49. package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +1 -1
  50. package/build/components/block-list/use-block-props/use-multi-selection.js +4 -2
  51. package/build/components/block-list/use-block-props/use-multi-selection.js.map +1 -1
  52. package/build/components/block-list/use-in-between-inserter.js +9 -1
  53. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  54. package/build/components/block-list-appender/index.js +9 -1
  55. package/build/components/block-list-appender/index.js.map +1 -1
  56. package/build/components/block-mover/index.js +4 -4
  57. package/build/components/block-mover/index.js.map +1 -1
  58. package/build/components/block-mover/index.native.js +4 -4
  59. package/build/components/block-mover/index.native.js.map +1 -1
  60. package/build/components/block-preview/auto.js +42 -14
  61. package/build/components/block-preview/auto.js.map +1 -1
  62. package/build/components/block-settings-menu/block-settings-dropdown.js +4 -3
  63. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  64. package/build/components/block-settings-menu-controls/index.js +10 -3
  65. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  66. package/build/components/block-styles/index.js +5 -1
  67. package/build/components/block-styles/index.js.map +1 -1
  68. package/build/components/block-styles/preview.native.js +1 -1
  69. package/build/components/block-styles/preview.native.js.map +1 -1
  70. package/build/components/block-switcher/block-styles-menu.js +1 -1
  71. package/build/components/block-switcher/block-styles-menu.js.map +1 -1
  72. package/build/components/block-switcher/index.js +10 -3
  73. package/build/components/block-switcher/index.js.map +1 -1
  74. package/build/components/block-title/index.js +3 -2
  75. package/build/components/block-title/index.js.map +1 -1
  76. package/build/components/block-toolbar/index.js +3 -0
  77. package/build/components/block-toolbar/index.js.map +1 -1
  78. package/build/components/block-tools/block-contextual-toolbar.js +1 -1
  79. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  80. package/build/components/block-tools/block-popover.js +8 -7
  81. package/build/components/block-tools/block-popover.js.map +1 -1
  82. package/build/components/block-tools/block-selection-button.js +2 -4
  83. package/build/components/block-tools/block-selection-button.js.map +1 -1
  84. package/build/components/block-tools/index.js +4 -1
  85. package/build/components/block-tools/index.js.map +1 -1
  86. package/build/components/block-tools/insertion-point.js +96 -7
  87. package/build/components/block-tools/insertion-point.js.map +1 -1
  88. package/build/components/block-types-list/index.native.js +3 -2
  89. package/build/components/block-types-list/index.native.js.map +1 -1
  90. package/build/components/border-radius-control/index.js.map +1 -1
  91. package/build/components/border-radius-control/utils.js +17 -8
  92. package/build/components/border-radius-control/utils.js.map +1 -1
  93. package/build/components/colors/utils.js +11 -3
  94. package/build/components/colors/utils.js.map +1 -1
  95. package/build/components/colors-gradients/control.js +17 -13
  96. package/build/components/colors-gradients/control.js.map +1 -1
  97. package/build/components/colors-gradients/panel-color-gradient-settings.js +2 -1
  98. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  99. package/build/components/contrast-checker/index.js +18 -12
  100. package/build/components/contrast-checker/index.js.map +1 -1
  101. package/build/components/copy-handler/index.js +9 -3
  102. package/build/components/copy-handler/index.js.map +1 -1
  103. package/build/components/default-block-appender/index.js +2 -2
  104. package/build/components/default-block-appender/index.js.map +1 -1
  105. package/build/components/duotone-control/index.js +38 -39
  106. package/build/components/duotone-control/index.js.map +1 -1
  107. package/build/components/editor-styles/index.js +9 -3
  108. package/build/components/editor-styles/index.js.map +1 -1
  109. package/build/components/font-appearance-control/index.js +27 -7
  110. package/build/components/font-appearance-control/index.js.map +1 -1
  111. package/build/components/font-sizes/index.native.js +24 -0
  112. package/build/components/font-sizes/index.native.js.map +1 -1
  113. package/build/components/iframe/index.js +45 -62
  114. package/build/components/iframe/index.js.map +1 -1
  115. package/build/components/image-editor/aspect-ratio-dropdown.js +126 -0
  116. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -0
  117. package/build/components/image-editor/constants.js +16 -0
  118. package/build/components/image-editor/constants.js.map +1 -0
  119. package/build/components/image-editor/context.js +59 -0
  120. package/build/components/image-editor/context.js.map +1 -0
  121. package/build/components/image-editor/cropper.js +83 -0
  122. package/build/components/image-editor/cropper.js.map +1 -0
  123. package/build/components/image-editor/form-controls.js +36 -0
  124. package/build/components/image-editor/form-controls.js.map +1 -0
  125. package/build/components/image-editor/index.js +60 -0
  126. package/build/components/image-editor/index.js.map +1 -0
  127. package/build/components/image-editor/rotation-button.js +37 -0
  128. package/build/components/image-editor/rotation-button.js.map +1 -0
  129. package/build/components/image-editor/use-save-image.js +84 -0
  130. package/build/components/image-editor/use-save-image.js.map +1 -0
  131. package/build/components/image-editor/use-transform-image.js +135 -0
  132. package/build/components/image-editor/use-transform-image.js.map +1 -0
  133. package/build/components/image-editor/zoom-dropdown.js +55 -0
  134. package/build/components/image-editor/zoom-dropdown.js.map +1 -0
  135. package/build/components/image-size-control/use-dimension-handler.js +14 -3
  136. package/build/components/image-size-control/use-dimension-handler.js.map +1 -1
  137. package/build/components/index.js +22 -35
  138. package/build/components/index.js.map +1 -1
  139. package/build/components/index.native.js +12 -7
  140. package/build/components/index.native.js.map +1 -1
  141. package/build/components/inner-blocks/button-block-appender.js +11 -1
  142. package/build/components/inner-blocks/button-block-appender.js.map +1 -1
  143. package/build/components/inner-blocks/index.js +23 -6
  144. package/build/components/inner-blocks/index.js.map +1 -1
  145. package/build/components/inner-blocks/index.native.js +38 -1
  146. package/build/components/inner-blocks/index.native.js.map +1 -1
  147. package/build/components/inner-blocks/use-nested-settings-update.js +24 -13
  148. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  149. package/build/components/inserter/block-patterns-tab.js +11 -1
  150. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  151. package/build/components/inserter/block-types-tab.native.js +3 -6
  152. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  153. package/build/components/inserter/hooks/use-clipboard-block.native.js +5 -4
  154. package/build/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
  155. package/build/components/inserter/index.js +12 -4
  156. package/build/components/inserter/index.js.map +1 -1
  157. package/build/components/inserter/index.native.js +1 -7
  158. package/build/components/inserter/index.native.js.map +1 -1
  159. package/build/components/inserter/library.js +2 -0
  160. package/build/components/inserter/library.js.map +1 -1
  161. package/build/components/inserter/menu.js +2 -1
  162. package/build/components/inserter/menu.js.map +1 -1
  163. package/build/components/inserter/menu.native.js +18 -17
  164. package/build/components/inserter/menu.native.js.map +1 -1
  165. package/build/components/inserter/preview-panel.js +1 -1
  166. package/build/components/inserter/preview-panel.js.map +1 -1
  167. package/build/components/inserter/quick-inserter.js +2 -1
  168. package/build/components/inserter/quick-inserter.js.map +1 -1
  169. package/build/components/inserter/reusable-blocks-tab.native.js +5 -6
  170. package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  171. package/build/components/inserter/search-results.native.js +9 -2
  172. package/build/components/inserter/search-results.native.js.map +1 -1
  173. package/build/components/inserter/tabs.native.js +1 -4
  174. package/build/components/inserter/tabs.native.js.map +1 -1
  175. package/build/components/inserter/utils.native.js +44 -0
  176. package/build/components/inserter/utils.native.js.map +1 -0
  177. package/build/components/inspector-controls/block-support-slot-container.js +28 -0
  178. package/build/components/inspector-controls/block-support-slot-container.js.map +1 -0
  179. package/build/components/inspector-controls/block-support-tools-panel.js +78 -0
  180. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -0
  181. package/build/components/inspector-controls/fill.js +64 -0
  182. package/build/components/inspector-controls/fill.js.map +1 -0
  183. package/build/components/inspector-controls/{index.native.js → fill.native.js} +20 -19
  184. package/build/components/inspector-controls/fill.native.js.map +1 -0
  185. package/build/components/inspector-controls/groups.js +23 -0
  186. package/build/components/inspector-controls/groups.js.map +1 -0
  187. package/build/components/inspector-controls/index.js +22 -20
  188. package/build/components/inspector-controls/index.js.map +1 -1
  189. package/build/components/inspector-controls/slot.js +67 -0
  190. package/build/components/inspector-controls/slot.js.map +1 -0
  191. package/build/components/inspector-controls/slot.native.js +38 -0
  192. package/build/components/inspector-controls/slot.native.js.map +1 -0
  193. package/build/components/line-height-control/index.native.js +39 -0
  194. package/build/components/line-height-control/index.native.js.map +1 -0
  195. package/build/components/link-control/index.js +11 -5
  196. package/build/components/link-control/index.js.map +1 -1
  197. package/build/components/link-control/link-preview.js +26 -9
  198. package/build/components/link-control/link-preview.js.map +1 -1
  199. package/build/components/link-control/search-input.js +13 -4
  200. package/build/components/link-control/search-input.js.map +1 -1
  201. package/build/components/list-view/block-contents.js +1 -20
  202. package/build/components/list-view/block-contents.js.map +1 -1
  203. package/build/components/list-view/block.js +7 -48
  204. package/build/components/list-view/block.js.map +1 -1
  205. package/build/components/list-view/branch.js +20 -13
  206. package/build/components/list-view/branch.js.map +1 -1
  207. package/build/components/list-view/index.js +21 -14
  208. package/build/components/list-view/index.js.map +1 -1
  209. package/build/components/list-view/leaf.js +1 -1
  210. package/build/components/list-view/leaf.js.map +1 -1
  211. package/build/components/list-view/list-item.js +3 -2
  212. package/build/components/list-view/list-item.js.map +1 -1
  213. package/build/components/list-view/use-list-view-client-ids.js +24 -15
  214. package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
  215. package/build/components/media-placeholder/index.js +35 -21
  216. package/build/components/media-placeholder/index.js.map +1 -1
  217. package/build/components/media-placeholder/index.native.js +2 -1
  218. package/build/components/media-placeholder/index.native.js.map +1 -1
  219. package/build/components/media-replace-flow/index.js +5 -3
  220. package/build/components/media-replace-flow/index.js.map +1 -1
  221. package/build/components/navigable-toolbar/index.js +1 -4
  222. package/build/components/navigable-toolbar/index.js.map +1 -1
  223. package/build/components/observe-typing/index.js +1 -1
  224. package/build/components/observe-typing/index.js.map +1 -1
  225. package/build/components/plain-text/index.native.js +30 -1
  226. package/build/components/plain-text/index.native.js.map +1 -1
  227. package/build/components/rich-text/embed-handler-picker.native.js +65 -0
  228. package/build/components/rich-text/embed-handler-picker.native.js.map +1 -0
  229. package/build/components/rich-text/format-toolbar/index.js +31 -11
  230. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  231. package/build/components/rich-text/index.js +29 -7
  232. package/build/components/rich-text/index.js.map +1 -1
  233. package/build/components/rich-text/index.native.js +43 -5
  234. package/build/components/rich-text/index.native.js.map +1 -1
  235. package/build/components/rich-text/input-event.js +25 -24
  236. package/build/components/rich-text/input-event.js.map +1 -1
  237. package/build/components/rich-text/shortcut.js +23 -9
  238. package/build/components/rich-text/shortcut.js.map +1 -1
  239. package/build/components/rich-text/use-input-events.js +27 -0
  240. package/build/components/rich-text/use-input-events.js.map +1 -0
  241. package/build/components/rich-text/use-paste-handler.js +45 -10
  242. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  243. package/build/components/rich-text/use-shortcuts.js +27 -0
  244. package/build/components/rich-text/use-shortcuts.js.map +1 -0
  245. package/build/components/rich-text/utils.js +22 -0
  246. package/build/components/rich-text/utils.js.map +1 -1
  247. package/build/components/typewriter/index.js +1 -1
  248. package/build/components/typewriter/index.js.map +1 -1
  249. package/build/components/url-input/index.js +14 -7
  250. package/build/components/url-input/index.js.map +1 -1
  251. package/build/components/use-display-block-controls/index.js +5 -7
  252. package/build/components/use-display-block-controls/index.js.map +1 -1
  253. package/build/components/use-moving-animation/index.js +13 -10
  254. package/build/components/use-moving-animation/index.js.map +1 -1
  255. package/build/components/use-on-block-drop/index.js +2 -1
  256. package/build/components/use-on-block-drop/index.js.map +1 -1
  257. package/build/components/use-resize-canvas/index.js +2 -13
  258. package/build/components/use-resize-canvas/index.js.map +1 -1
  259. package/build/components/use-setting/index.js +3 -7
  260. package/build/components/use-setting/index.js.map +1 -1
  261. package/build/components/writing-flow/use-multi-selection.js +6 -0
  262. package/build/components/writing-flow/use-multi-selection.js.map +1 -1
  263. package/build/components/writing-flow/use-tab-nav.js +18 -3
  264. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  265. package/build/hooks/align.js +14 -14
  266. package/build/hooks/align.js.map +1 -1
  267. package/build/hooks/anchor.js +4 -2
  268. package/build/hooks/anchor.js.map +1 -1
  269. package/build/hooks/border-color.js +9 -5
  270. package/build/hooks/border-color.js.map +1 -1
  271. package/build/hooks/color-panel.js +4 -2
  272. package/build/hooks/color-panel.js.map +1 -1
  273. package/build/hooks/color.js +6 -4
  274. package/build/hooks/color.js.map +1 -1
  275. package/build/hooks/compat.js +23 -0
  276. package/build/hooks/compat.js.map +1 -0
  277. package/build/hooks/custom-class-name.js +3 -1
  278. package/build/hooks/custom-class-name.js.map +1 -1
  279. package/build/hooks/dimensions.js +63 -28
  280. package/build/hooks/dimensions.js.map +1 -1
  281. package/build/hooks/duotone.js +47 -13
  282. package/build/hooks/duotone.js.map +1 -1
  283. package/build/hooks/font-family.js +93 -23
  284. package/build/hooks/font-family.js.map +1 -1
  285. package/build/hooks/gap.js +163 -0
  286. package/build/hooks/gap.js.map +1 -0
  287. package/build/hooks/index.js +4 -0
  288. package/build/hooks/index.js.map +1 -1
  289. package/build/hooks/index.native.js +2 -0
  290. package/build/hooks/index.native.js.map +1 -1
  291. package/build/hooks/layout.js +47 -30
  292. package/build/hooks/layout.js.map +1 -1
  293. package/build/hooks/letter-spacing.js +1 -1
  294. package/build/hooks/letter-spacing.js.map +1 -1
  295. package/build/hooks/lock.js +43 -0
  296. package/build/hooks/lock.js.map +1 -0
  297. package/build/hooks/margin.js +5 -2
  298. package/build/hooks/margin.js.map +1 -1
  299. package/build/hooks/padding.js +5 -2
  300. package/build/hooks/padding.js.map +1 -1
  301. package/build/hooks/style.js +39 -11
  302. package/build/hooks/style.js.map +1 -1
  303. package/build/hooks/typography.js +1 -1
  304. package/build/hooks/typography.js.map +1 -1
  305. package/build/hooks/typography.native.js +60 -0
  306. package/build/hooks/typography.native.js.map +1 -0
  307. package/build/layouts/flex.js +121 -9
  308. package/build/layouts/flex.js.map +1 -1
  309. package/build/layouts/flow.js +99 -6
  310. package/build/layouts/flow.js.map +1 -1
  311. package/build/store/actions.js +40 -13
  312. package/build/store/actions.js.map +1 -1
  313. package/build/store/defaults.js +2 -0
  314. package/build/store/defaults.js.map +1 -1
  315. package/build/store/defaults.native.js +16 -1
  316. package/build/store/defaults.native.js.map +1 -1
  317. package/build/store/reducer.js +164 -114
  318. package/build/store/reducer.js.map +1 -1
  319. package/build/store/selectors.js +161 -82
  320. package/build/store/selectors.js.map +1 -1
  321. package/build/utils/index.js +10 -1
  322. package/build/utils/index.js.map +1 -1
  323. package/build/utils/parse-css-unit-to-px.js +295 -0
  324. package/build/utils/parse-css-unit-to-px.js.map +1 -0
  325. package/build/utils/transform-styles/transforms/wrap.js +16 -0
  326. package/build/utils/transform-styles/transforms/wrap.js.map +1 -1
  327. package/build-module/components/alignment-control/ui.js +2 -1
  328. package/build-module/components/alignment-control/ui.js.map +1 -1
  329. package/build-module/components/autocomplete/index.js +2 -2
  330. package/build-module/components/autocomplete/index.js.map +1 -1
  331. package/build-module/components/block-actions/index.js +8 -4
  332. package/build-module/components/block-actions/index.js.map +1 -1
  333. package/build-module/components/block-alignment-control/ui.js +64 -17
  334. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  335. package/build-module/components/block-alignment-control/use-available-alignments.js +25 -3
  336. package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
  337. package/build-module/components/block-content-overlay/index.js +2 -4
  338. package/build-module/components/block-content-overlay/index.js.map +1 -1
  339. package/build-module/components/block-controls/fill.js +6 -5
  340. package/build-module/components/block-controls/fill.js.map +1 -1
  341. package/build-module/components/block-controls/groups.js +3 -1
  342. package/build-module/components/block-controls/groups.js.map +1 -1
  343. package/build-module/components/block-controls/hook.js +42 -0
  344. package/build-module/components/block-controls/hook.js.map +1 -0
  345. package/build-module/components/block-edit/context.js +4 -4
  346. package/build-module/components/block-edit/context.js.map +1 -1
  347. package/build-module/components/block-edit/edit.js +1 -1
  348. package/build-module/components/block-edit/edit.js.map +1 -1
  349. package/build-module/components/block-icon/index.native.js +14 -9
  350. package/build-module/components/block-icon/index.native.js.map +1 -1
  351. package/build-module/components/block-inspector/index.js +8 -6
  352. package/build-module/components/block-inspector/index.js.map +1 -1
  353. package/build-module/components/block-list/block-html.js +5 -0
  354. package/build-module/components/block-list/block-html.js.map +1 -1
  355. package/build-module/components/block-list/block-list-item.native.js +30 -12
  356. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  357. package/build-module/components/block-list/block-selection-button.native.js +3 -4
  358. package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
  359. package/build-module/components/block-list/block.js +16 -10
  360. package/build-module/components/block-list/block.js.map +1 -1
  361. package/build-module/components/block-list/block.native.js +6 -7
  362. package/build-module/components/block-list/block.native.js.map +1 -1
  363. package/build-module/components/block-list/grid-item.native.js +57 -0
  364. package/build-module/components/block-list/grid-item.native.js.map +1 -0
  365. package/build-module/components/block-list/index.js +17 -14
  366. package/build-module/components/block-list/index.js.map +1 -1
  367. package/build-module/components/block-list/index.native.js +12 -8
  368. package/build-module/components/block-list/index.native.js.map +1 -1
  369. package/build-module/components/block-list/use-block-props/index.js +7 -7
  370. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  371. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +5 -7
  372. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
  373. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +2 -2
  374. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +1 -1
  375. package/build-module/components/block-list/use-block-props/use-multi-selection.js +4 -2
  376. package/build-module/components/block-list/use-block-props/use-multi-selection.js.map +1 -1
  377. package/build-module/components/block-list/use-in-between-inserter.js +9 -1
  378. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  379. package/build-module/components/block-list-appender/index.js +9 -1
  380. package/build-module/components/block-list-appender/index.js.map +1 -1
  381. package/build-module/components/block-mover/index.js +4 -4
  382. package/build-module/components/block-mover/index.js.map +1 -1
  383. package/build-module/components/block-mover/index.native.js +4 -4
  384. package/build-module/components/block-mover/index.native.js.map +1 -1
  385. package/build-module/components/block-preview/auto.js +40 -16
  386. package/build-module/components/block-preview/auto.js.map +1 -1
  387. package/build-module/components/block-settings-menu/block-settings-dropdown.js +4 -3
  388. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  389. package/build-module/components/block-settings-menu-controls/index.js +10 -3
  390. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  391. package/build-module/components/block-styles/index.js +5 -1
  392. package/build-module/components/block-styles/index.js.map +1 -1
  393. package/build-module/components/block-styles/preview.native.js +1 -1
  394. package/build-module/components/block-styles/preview.native.js.map +1 -1
  395. package/build-module/components/block-switcher/block-styles-menu.js +1 -1
  396. package/build-module/components/block-switcher/block-styles-menu.js.map +1 -1
  397. package/build-module/components/block-switcher/index.js +10 -3
  398. package/build-module/components/block-switcher/index.js.map +1 -1
  399. package/build-module/components/block-title/index.js +3 -2
  400. package/build-module/components/block-title/index.js.map +1 -1
  401. package/build-module/components/block-toolbar/index.js +3 -0
  402. package/build-module/components/block-toolbar/index.js.map +1 -1
  403. package/build-module/components/block-tools/block-contextual-toolbar.js +1 -1
  404. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  405. package/build-module/components/block-tools/block-popover.js +9 -8
  406. package/build-module/components/block-tools/block-popover.js.map +1 -1
  407. package/build-module/components/block-tools/block-selection-button.js +2 -4
  408. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  409. package/build-module/components/block-tools/index.js +4 -1
  410. package/build-module/components/block-tools/index.js.map +1 -1
  411. package/build-module/components/block-tools/insertion-point.js +96 -8
  412. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  413. package/build-module/components/block-types-list/index.native.js +3 -2
  414. package/build-module/components/block-types-list/index.native.js.map +1 -1
  415. package/build-module/components/border-radius-control/index.js.map +1 -1
  416. package/build-module/components/border-radius-control/utils.js +16 -9
  417. package/build-module/components/border-radius-control/utils.js.map +1 -1
  418. package/build-module/components/colors/utils.js +9 -3
  419. package/build-module/components/colors/utils.js.map +1 -1
  420. package/build-module/components/colors-gradients/control.js +18 -14
  421. package/build-module/components/colors-gradients/control.js.map +1 -1
  422. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +2 -1
  423. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  424. package/build-module/components/contrast-checker/index.js +13 -10
  425. package/build-module/components/contrast-checker/index.js.map +1 -1
  426. package/build-module/components/copy-handler/index.js +9 -3
  427. package/build-module/components/copy-handler/index.js.map +1 -1
  428. package/build-module/components/default-block-appender/index.js +2 -2
  429. package/build-module/components/default-block-appender/index.js.map +1 -1
  430. package/build-module/components/duotone-control/index.js +40 -39
  431. package/build-module/components/duotone-control/index.js.map +1 -1
  432. package/build-module/components/editor-styles/index.js +7 -3
  433. package/build-module/components/editor-styles/index.js.map +1 -1
  434. package/build-module/components/font-appearance-control/index.js +27 -7
  435. package/build-module/components/font-appearance-control/index.js.map +1 -1
  436. package/build-module/components/font-sizes/index.native.js +3 -1
  437. package/build-module/components/font-sizes/index.native.js.map +1 -1
  438. package/build-module/components/iframe/index.js +46 -64
  439. package/build-module/components/iframe/index.js.map +1 -1
  440. package/build-module/components/image-editor/aspect-ratio-dropdown.js +115 -0
  441. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -0
  442. package/build-module/components/image-editor/constants.js +7 -0
  443. package/build-module/components/image-editor/constants.js.map +1 -0
  444. package/build-module/components/image-editor/context.js +44 -0
  445. package/build-module/components/image-editor/context.js.map +1 -0
  446. package/build-module/components/image-editor/cropper.js +69 -0
  447. package/build-module/components/image-editor/cropper.js.map +1 -0
  448. package/build-module/components/image-editor/form-controls.js +26 -0
  449. package/build-module/components/image-editor/form-controls.js.map +1 -0
  450. package/build-module/components/image-editor/index.js +37 -0
  451. package/build-module/components/image-editor/index.js.map +1 -0
  452. package/build-module/components/image-editor/rotation-button.js +26 -0
  453. package/build-module/components/image-editor/rotation-button.js.map +1 -0
  454. package/build-module/components/image-editor/use-save-image.js +70 -0
  455. package/build-module/components/image-editor/use-save-image.js.map +1 -0
  456. package/build-module/components/image-editor/use-transform-image.js +127 -0
  457. package/build-module/components/image-editor/use-transform-image.js.map +1 -0
  458. package/build-module/components/image-editor/zoom-dropdown.js +43 -0
  459. package/build-module/components/image-editor/zoom-dropdown.js.map +1 -0
  460. package/build-module/components/image-size-control/use-dimension-handler.js +13 -2
  461. package/build-module/components/image-size-control/use-dimension-handler.js.map +1 -1
  462. package/build-module/components/index.js +2 -5
  463. package/build-module/components/index.js.map +1 -1
  464. package/build-module/components/index.native.js +2 -3
  465. package/build-module/components/index.native.js.map +1 -1
  466. package/build-module/components/inner-blocks/button-block-appender.js +10 -1
  467. package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
  468. package/build-module/components/inner-blocks/index.js +24 -7
  469. package/build-module/components/inner-blocks/index.js.map +1 -1
  470. package/build-module/components/inner-blocks/index.native.js +36 -1
  471. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  472. package/build-module/components/inner-blocks/use-nested-settings-update.js +24 -13
  473. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  474. package/build-module/components/inserter/block-patterns-tab.js +11 -1
  475. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  476. package/build-module/components/inserter/block-types-tab.native.js +2 -5
  477. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  478. package/build-module/components/inserter/hooks/use-clipboard-block.native.js +5 -4
  479. package/build-module/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
  480. package/build-module/components/inserter/index.js +12 -4
  481. package/build-module/components/inserter/index.js.map +1 -1
  482. package/build-module/components/inserter/index.native.js +1 -7
  483. package/build-module/components/inserter/index.native.js.map +1 -1
  484. package/build-module/components/inserter/library.js +2 -0
  485. package/build-module/components/inserter/library.js.map +1 -1
  486. package/build-module/components/inserter/menu.js +2 -1
  487. package/build-module/components/inserter/menu.js.map +1 -1
  488. package/build-module/components/inserter/menu.native.js +17 -17
  489. package/build-module/components/inserter/menu.native.js.map +1 -1
  490. package/build-module/components/inserter/preview-panel.js +1 -1
  491. package/build-module/components/inserter/preview-panel.js.map +1 -1
  492. package/build-module/components/inserter/quick-inserter.js +2 -1
  493. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  494. package/build-module/components/inserter/reusable-blocks-tab.native.js +4 -5
  495. package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  496. package/build-module/components/inserter/search-results.native.js +8 -2
  497. package/build-module/components/inserter/search-results.native.js.map +1 -1
  498. package/build-module/components/inserter/tabs.native.js +1 -4
  499. package/build-module/components/inserter/tabs.native.js.map +1 -1
  500. package/build-module/components/inserter/utils.native.js +35 -0
  501. package/build-module/components/inserter/utils.native.js.map +1 -0
  502. package/build-module/components/inspector-controls/block-support-slot-container.js +18 -0
  503. package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -0
  504. package/build-module/components/inspector-controls/block-support-tools-panel.js +67 -0
  505. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -0
  506. package/build-module/components/inspector-controls/fill.js +50 -0
  507. package/build-module/components/inspector-controls/fill.js.map +1 -0
  508. package/build-module/components/inspector-controls/{index.native.js → fill.native.js} +16 -18
  509. package/build-module/components/inspector-controls/fill.native.js.map +1 -0
  510. package/build-module/components/inspector-controls/groups.js +14 -0
  511. package/build-module/components/inspector-controls/groups.js.map +1 -0
  512. package/build-module/components/inspector-controls/index.js +16 -17
  513. package/build-module/components/inspector-controls/index.js.map +1 -1
  514. package/build-module/components/inspector-controls/slot.js +52 -0
  515. package/build-module/components/inspector-controls/slot.js.map +1 -0
  516. package/build-module/components/inspector-controls/slot.native.js +27 -0
  517. package/build-module/components/inspector-controls/slot.native.js.map +1 -0
  518. package/build-module/components/line-height-control/index.native.js +29 -0
  519. package/build-module/components/line-height-control/index.native.js.map +1 -0
  520. package/build-module/components/link-control/index.js +11 -5
  521. package/build-module/components/link-control/index.js.map +1 -1
  522. package/build-module/components/link-control/link-preview.js +28 -11
  523. package/build-module/components/link-control/link-preview.js.map +1 -1
  524. package/build-module/components/link-control/search-input.js +13 -4
  525. package/build-module/components/link-control/search-input.js.map +1 -1
  526. package/build-module/components/list-view/block-contents.js +1 -18
  527. package/build-module/components/list-view/block-contents.js.map +1 -1
  528. package/build-module/components/list-view/block.js +9 -49
  529. package/build-module/components/list-view/block.js.map +1 -1
  530. package/build-module/components/list-view/branch.js +20 -15
  531. package/build-module/components/list-view/branch.js.map +1 -1
  532. package/build-module/components/list-view/index.js +22 -17
  533. package/build-module/components/list-view/index.js.map +1 -1
  534. package/build-module/components/list-view/leaf.js +1 -1
  535. package/build-module/components/list-view/leaf.js.map +1 -1
  536. package/build-module/components/list-view/list-item.js +3 -2
  537. package/build-module/components/list-view/list-item.js.map +1 -1
  538. package/build-module/components/list-view/use-list-view-client-ids.js +24 -15
  539. package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
  540. package/build-module/components/media-placeholder/index.js +35 -21
  541. package/build-module/components/media-placeholder/index.js.map +1 -1
  542. package/build-module/components/media-placeholder/index.native.js +2 -1
  543. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  544. package/build-module/components/media-replace-flow/index.js +5 -3
  545. package/build-module/components/media-replace-flow/index.js.map +1 -1
  546. package/build-module/components/navigable-toolbar/index.js +1 -4
  547. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  548. package/build-module/components/observe-typing/index.js +1 -1
  549. package/build-module/components/observe-typing/index.js.map +1 -1
  550. package/build-module/components/plain-text/index.native.js +29 -2
  551. package/build-module/components/plain-text/index.native.js.map +1 -1
  552. package/build-module/components/rich-text/embed-handler-picker.native.js +53 -0
  553. package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -0
  554. package/build-module/components/rich-text/format-toolbar/index.js +28 -11
  555. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  556. package/build-module/components/rich-text/index.js +22 -6
  557. package/build-module/components/rich-text/index.js.map +1 -1
  558. package/build-module/components/rich-text/index.native.js +43 -6
  559. package/build-module/components/rich-text/index.native.js.map +1 -1
  560. package/build-module/components/rich-text/input-event.js +24 -22
  561. package/build-module/components/rich-text/input-event.js.map +1 -1
  562. package/build-module/components/rich-text/shortcut.js +22 -9
  563. package/build-module/components/rich-text/shortcut.js.map +1 -1
  564. package/build-module/components/rich-text/use-input-events.js +19 -0
  565. package/build-module/components/rich-text/use-input-events.js.map +1 -0
  566. package/build-module/components/rich-text/use-paste-handler.js +44 -10
  567. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  568. package/build-module/components/rich-text/use-shortcuts.js +19 -0
  569. package/build-module/components/rich-text/use-shortcuts.js.map +1 -0
  570. package/build-module/components/rich-text/utils.js +20 -0
  571. package/build-module/components/rich-text/utils.js.map +1 -1
  572. package/build-module/components/typewriter/index.js +1 -1
  573. package/build-module/components/typewriter/index.js.map +1 -1
  574. package/build-module/components/url-input/index.js +14 -7
  575. package/build-module/components/url-input/index.js.map +1 -1
  576. package/build-module/components/use-display-block-controls/index.js +5 -7
  577. package/build-module/components/use-display-block-controls/index.js.map +1 -1
  578. package/build-module/components/use-moving-animation/index.js +13 -10
  579. package/build-module/components/use-moving-animation/index.js.map +1 -1
  580. package/build-module/components/use-on-block-drop/index.js +3 -2
  581. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  582. package/build-module/components/use-resize-canvas/index.js +2 -10
  583. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  584. package/build-module/components/use-setting/index.js +1 -6
  585. package/build-module/components/use-setting/index.js.map +1 -1
  586. package/build-module/components/writing-flow/use-multi-selection.js +6 -0
  587. package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
  588. package/build-module/components/writing-flow/use-tab-nav.js +18 -3
  589. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  590. package/build-module/hooks/align.js +15 -15
  591. package/build-module/hooks/align.js.map +1 -1
  592. package/build-module/hooks/anchor.js +5 -3
  593. package/build-module/hooks/anchor.js.map +1 -1
  594. package/build-module/hooks/border-color.js +10 -5
  595. package/build-module/hooks/border-color.js.map +1 -1
  596. package/build-module/hooks/color-panel.js +5 -3
  597. package/build-module/hooks/color-panel.js.map +1 -1
  598. package/build-module/hooks/color.js +6 -4
  599. package/build-module/hooks/color.js.map +1 -1
  600. package/build-module/hooks/compat.js +20 -0
  601. package/build-module/hooks/compat.js.map +1 -0
  602. package/build-module/hooks/custom-class-name.js +4 -2
  603. package/build-module/hooks/custom-class-name.js.map +1 -1
  604. package/build-module/hooks/dimensions.js +57 -26
  605. package/build-module/hooks/dimensions.js.map +1 -1
  606. package/build-module/hooks/duotone.js +46 -13
  607. package/build-module/hooks/duotone.js.map +1 -1
  608. package/build-module/hooks/font-family.js +91 -24
  609. package/build-module/hooks/font-family.js.map +1 -1
  610. package/build-module/hooks/gap.js +140 -0
  611. package/build-module/hooks/gap.js.map +1 -0
  612. package/build-module/hooks/index.js +2 -0
  613. package/build-module/hooks/index.js.map +1 -1
  614. package/build-module/hooks/index.native.js +1 -0
  615. package/build-module/hooks/index.native.js.map +1 -1
  616. package/build-module/hooks/layout.js +47 -30
  617. package/build-module/hooks/layout.js.map +1 -1
  618. package/build-module/hooks/letter-spacing.js +1 -1
  619. package/build-module/hooks/letter-spacing.js.map +1 -1
  620. package/build-module/hooks/lock.js +33 -0
  621. package/build-module/hooks/lock.js.map +1 -0
  622. package/build-module/hooks/margin.js +6 -3
  623. package/build-module/hooks/margin.js.map +1 -1
  624. package/build-module/hooks/padding.js +6 -3
  625. package/build-module/hooks/padding.js.map +1 -1
  626. package/build-module/hooks/style.js +39 -11
  627. package/build-module/hooks/style.js.map +1 -1
  628. package/build-module/hooks/typography.js +1 -2
  629. package/build-module/hooks/typography.js.map +1 -1
  630. package/build-module/hooks/typography.native.js +41 -0
  631. package/build-module/hooks/typography.native.js.map +1 -0
  632. package/build-module/layouts/flex.js +115 -9
  633. package/build-module/layouts/flex.js.map +1 -1
  634. package/build-module/layouts/flow.js +99 -7
  635. package/build-module/layouts/flow.js.map +1 -1
  636. package/build-module/store/actions.js +40 -13
  637. package/build-module/store/actions.js.map +1 -1
  638. package/build-module/store/defaults.js +2 -0
  639. package/build-module/store/defaults.js.map +1 -1
  640. package/build-module/store/defaults.native.js +15 -1
  641. package/build-module/store/defaults.native.js.map +1 -1
  642. package/build-module/store/reducer.js +166 -115
  643. package/build-module/store/reducer.js.map +1 -1
  644. package/build-module/store/selectors.js +148 -75
  645. package/build-module/store/selectors.js.map +1 -1
  646. package/build-module/utils/index.js +1 -0
  647. package/build-module/utils/index.js.map +1 -1
  648. package/build-module/utils/parse-css-unit-to-px.js +285 -0
  649. package/build-module/utils/parse-css-unit-to-px.js.map +1 -0
  650. package/build-module/utils/transform-styles/transforms/wrap.js +16 -0
  651. package/build-module/utils/transform-styles/transforms/wrap.js.map +1 -1
  652. package/build-style/default-editor-styles-rtl.css +114 -0
  653. package/build-style/default-editor-styles.css +114 -0
  654. package/build-style/style-rtl.css +136 -128
  655. package/build-style/style.css +136 -128
  656. package/build-types/components/block-context/index.d.ts +1 -1
  657. package/build-types/components/block-context/index.d.ts.map +1 -1
  658. package/package.json +31 -29
  659. package/src/components/alignment-control/test/__snapshots__/index.js.snap +2 -0
  660. package/src/components/alignment-control/ui.js +4 -1
  661. package/src/components/autocomplete/index.js +5 -2
  662. package/src/components/block-actions/index.js +9 -5
  663. package/src/components/block-alignment-control/style.scss +5 -0
  664. package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +15 -1
  665. package/src/components/block-alignment-control/test/index.native.js +37 -0
  666. package/src/components/block-alignment-control/ui.js +98 -27
  667. package/src/components/block-alignment-control/use-available-alignments.js +31 -10
  668. package/src/components/block-content-overlay/index.js +3 -6
  669. package/src/components/block-content-overlay/style.scss +9 -21
  670. package/src/components/block-controls/fill.js +7 -4
  671. package/src/components/block-controls/groups.js +2 -0
  672. package/src/components/block-controls/hook.js +44 -0
  673. package/src/components/block-edit/context.js +4 -3
  674. package/src/components/block-edit/edit.js +1 -4
  675. package/src/components/block-icon/index.native.js +11 -12
  676. package/src/components/block-inspector/index.js +14 -9
  677. package/src/components/block-list/block-html.js +5 -0
  678. package/src/components/block-list/block-list-item.native.js +34 -11
  679. package/src/components/block-list/block-list-item.native.scss +4 -0
  680. package/src/components/block-list/block-selection-button.native.js +8 -5
  681. package/src/components/block-list/block.js +13 -9
  682. package/src/components/block-list/block.native.js +7 -5
  683. package/src/components/block-list/grid-item.native.js +58 -0
  684. package/src/components/block-list/index.js +33 -27
  685. package/src/components/block-list/index.native.js +9 -3
  686. package/src/components/block-list/style.native.scss +0 -1
  687. package/src/components/block-list/style.scss +15 -0
  688. package/src/components/block-list/use-block-props/index.js +4 -7
  689. package/src/components/block-list/use-block-props/use-block-custom-class-name.js +5 -7
  690. package/src/components/block-list/use-block-props/use-block-default-class-name.js +2 -8
  691. package/src/components/block-list/use-block-props/use-multi-selection.js +7 -1
  692. package/src/components/block-list/use-in-between-inserter.js +9 -0
  693. package/src/components/block-list-appender/index.js +8 -0
  694. package/src/components/block-mover/index.js +4 -4
  695. package/src/components/block-mover/index.native.js +4 -4
  696. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +10 -6
  697. package/src/components/block-mover/test/index.native.js +26 -28
  698. package/src/components/block-preview/README.md +1 -1
  699. package/src/components/block-preview/auto.js +36 -18
  700. package/src/components/block-preview/style.scss +0 -20
  701. package/src/components/block-settings-menu/block-settings-dropdown.js +7 -6
  702. package/src/components/block-settings-menu-controls/index.js +9 -6
  703. package/src/components/block-styles/index.js +6 -1
  704. package/src/components/block-styles/preview.native.js +1 -1
  705. package/src/components/block-switcher/block-styles-menu.js +1 -1
  706. package/src/components/block-switcher/index.js +7 -3
  707. package/src/components/block-switcher/test/index.js +3 -0
  708. package/src/components/block-title/index.js +5 -2
  709. package/src/components/block-toolbar/index.js +4 -0
  710. package/src/components/block-tools/block-contextual-toolbar.js +7 -5
  711. package/src/components/block-tools/block-popover.js +8 -8
  712. package/src/components/block-tools/block-selection-button.js +2 -4
  713. package/src/components/block-tools/index.js +5 -2
  714. package/src/components/block-tools/insertion-point.js +97 -9
  715. package/src/components/block-tools/style.scss +4 -35
  716. package/src/components/block-types-list/index.native.js +8 -2
  717. package/src/components/block-types-list/style.scss +0 -3
  718. package/src/components/block-variation-picker/README.md +47 -14
  719. package/src/components/block-variation-picker/style.native.scss +4 -0
  720. package/src/components/border-radius-control/index.js +1 -0
  721. package/src/components/border-radius-control/test/utils.js +216 -0
  722. package/src/components/border-radius-control/utils.js +18 -10
  723. package/src/components/color-palette/test/__snapshots__/control.js.snap +103 -71
  724. package/src/components/colors/test/utils.js +41 -0
  725. package/src/components/colors/utils.js +9 -5
  726. package/src/components/colors-gradients/control.js +64 -61
  727. package/src/components/colors-gradients/panel-color-gradient-settings.js +3 -1
  728. package/src/components/colors-gradients/style.scss +8 -5
  729. package/src/components/colors-gradients/test/control.js +43 -52
  730. package/src/components/contrast-checker/index.js +14 -10
  731. package/src/components/copy-handler/index.js +6 -1
  732. package/src/components/default-block-appender/index.js +2 -2
  733. package/src/components/default-block-appender/test/__snapshots__/index.js.snap +3 -3
  734. package/src/components/duotone-control/index.js +43 -41
  735. package/src/components/editor-styles/index.js +8 -4
  736. package/src/components/font-appearance-control/index.js +49 -19
  737. package/src/components/font-appearance-control/style.scss +1 -1
  738. package/src/components/font-sizes/index.native.js +7 -1
  739. package/src/components/iframe/index.js +63 -74
  740. package/src/components/image-editor/aspect-ratio-dropdown.js +129 -0
  741. package/src/components/image-editor/constants.js +6 -0
  742. package/src/components/image-editor/context.js +56 -0
  743. package/src/components/image-editor/cropper.js +74 -0
  744. package/src/components/image-editor/form-controls.js +22 -0
  745. package/src/components/image-editor/index.js +52 -0
  746. package/src/components/image-editor/rotation-button.js +24 -0
  747. package/src/components/image-editor/use-save-image.js +97 -0
  748. package/src/components/image-editor/use-transform-image.js +162 -0
  749. package/src/components/image-editor/zoom-dropdown.js +40 -0
  750. package/src/components/image-size-control/use-dimension-handler.js +18 -1
  751. package/src/components/index.js +8 -5
  752. package/src/components/index.native.js +8 -3
  753. package/src/components/inner-blocks/button-block-appender.js +9 -0
  754. package/src/components/inner-blocks/index.js +40 -11
  755. package/src/components/inner-blocks/index.native.js +41 -0
  756. package/src/components/inner-blocks/use-nested-settings-update.js +26 -11
  757. package/src/components/inserter/block-patterns-tab.js +11 -4
  758. package/src/components/inserter/block-types-tab.native.js +3 -6
  759. package/src/components/inserter/hooks/use-clipboard-block.native.js +3 -2
  760. package/src/components/inserter/index.js +15 -3
  761. package/src/components/inserter/index.native.js +2 -19
  762. package/src/components/inserter/library.js +2 -0
  763. package/src/components/inserter/menu.js +4 -1
  764. package/src/components/inserter/menu.native.js +18 -15
  765. package/src/components/inserter/preview-panel.js +1 -1
  766. package/src/components/inserter/quick-inserter.js +1 -1
  767. package/src/components/inserter/reusable-blocks-tab.native.js +4 -6
  768. package/src/components/inserter/search-results.native.js +8 -1
  769. package/src/components/inserter/style.native.scss +8 -5
  770. package/src/components/inserter/style.scss +16 -15
  771. package/src/components/inserter/tabs.native.js +1 -7
  772. package/src/components/inserter/test/block-types-tab.native.js +2 -1
  773. package/src/components/inserter/utils.native.js +35 -0
  774. package/src/components/inserter-list-item/style.scss +4 -2
  775. package/src/components/inspector-controls/README.md +43 -198
  776. package/src/components/inspector-controls/block-support-slot-container.js +10 -0
  777. package/src/components/inspector-controls/block-support-tools-panel.js +60 -0
  778. package/src/components/inspector-controls/fill.js +53 -0
  779. package/src/components/inspector-controls/{index.native.js → fill.native.js} +14 -14
  780. package/src/components/inspector-controls/groups.js +18 -0
  781. package/src/components/inspector-controls/index.js +16 -18
  782. package/src/components/inspector-controls/slot.js +45 -0
  783. package/src/components/inspector-controls/slot.native.js +22 -0
  784. package/src/components/line-height-control/index.native.js +25 -0
  785. package/src/components/link-control/README.md +40 -14
  786. package/src/components/link-control/index.js +7 -1
  787. package/src/components/link-control/link-preview.js +36 -15
  788. package/src/components/link-control/search-input.js +12 -4
  789. package/src/components/link-control/style.scss +36 -5
  790. package/src/components/link-control/test/index.js +132 -0
  791. package/src/components/list-view/block-contents.js +17 -38
  792. package/src/components/list-view/block.js +8 -63
  793. package/src/components/list-view/branch.js +19 -12
  794. package/src/components/list-view/index.js +45 -26
  795. package/src/components/list-view/leaf.js +1 -1
  796. package/src/components/list-view/list-item.js +5 -4
  797. package/src/components/list-view/style.scss +56 -30
  798. package/src/components/list-view/use-list-view-client-ids.js +22 -22
  799. package/src/components/media-placeholder/README.md +9 -0
  800. package/src/components/media-placeholder/index.js +31 -20
  801. package/src/components/media-placeholder/index.native.js +2 -1
  802. package/src/components/media-placeholder/style.scss +2 -0
  803. package/src/components/media-replace-flow/README.md +7 -0
  804. package/src/components/media-replace-flow/index.js +4 -1
  805. package/src/components/media-replace-flow/style.scss +11 -12
  806. package/src/components/media-upload/README.md +1 -1
  807. package/src/components/navigable-toolbar/index.js +1 -4
  808. package/src/components/observe-typing/index.js +3 -2
  809. package/src/components/plain-text/index.native.js +26 -4
  810. package/src/components/rich-text/embed-handler-picker.native.js +67 -0
  811. package/src/components/rich-text/format-toolbar/index.js +22 -6
  812. package/src/components/rich-text/index.js +38 -12
  813. package/src/components/rich-text/index.native.js +37 -4
  814. package/src/components/rich-text/input-event.js +21 -20
  815. package/src/components/rich-text/shortcut.js +24 -9
  816. package/src/components/rich-text/style.scss +7 -5
  817. package/src/components/rich-text/use-input-events.js +19 -0
  818. package/src/components/rich-text/use-paste-handler.js +47 -12
  819. package/src/components/rich-text/use-shortcuts.js +19 -0
  820. package/src/components/rich-text/utils.js +16 -0
  821. package/src/components/skip-to-selected-block/README.md +39 -0
  822. package/src/components/tool-selector/style.scss +5 -5
  823. package/src/components/typewriter/index.js +3 -2
  824. package/src/components/url-input/index.js +12 -6
  825. package/src/components/use-display-block-controls/index.js +7 -10
  826. package/src/components/use-moving-animation/index.js +9 -8
  827. package/src/components/use-on-block-drop/index.js +5 -1
  828. package/src/components/use-resize-canvas/index.js +2 -17
  829. package/src/components/use-setting/index.js +1 -7
  830. package/src/components/writing-flow/use-multi-selection.js +6 -0
  831. package/src/components/writing-flow/use-tab-nav.js +21 -11
  832. package/src/default-editor-styles.scss +24 -0
  833. package/src/hooks/align.js +28 -20
  834. package/src/hooks/anchor.js +5 -5
  835. package/src/hooks/border-color.js +12 -1
  836. package/src/hooks/color-panel.js +3 -1
  837. package/src/hooks/color.js +11 -4
  838. package/src/hooks/compat.js +23 -0
  839. package/src/hooks/custom-class-name.js +3 -3
  840. package/src/hooks/dimensions.js +94 -50
  841. package/src/hooks/duotone.js +49 -14
  842. package/src/hooks/font-family.js +107 -27
  843. package/src/hooks/gap.js +146 -0
  844. package/src/hooks/index.js +2 -0
  845. package/src/hooks/index.native.js +1 -0
  846. package/src/hooks/layout.js +82 -56
  847. package/src/hooks/layout.scss +6 -0
  848. package/src/hooks/letter-spacing.js +2 -1
  849. package/src/hooks/lock.js +34 -0
  850. package/src/hooks/margin.js +12 -2
  851. package/src/hooks/padding.js +12 -2
  852. package/src/hooks/style.js +57 -18
  853. package/src/hooks/test/style.js +4 -0
  854. package/src/hooks/typography.js +2 -6
  855. package/src/hooks/typography.native.js +64 -0
  856. package/src/layouts/flex.js +139 -12
  857. package/src/layouts/flow.js +81 -14
  858. package/src/store/actions.js +54 -16
  859. package/src/store/defaults.js +2 -0
  860. package/src/store/defaults.native.js +15 -0
  861. package/src/store/reducer.js +230 -145
  862. package/src/store/selectors.js +164 -115
  863. package/src/store/test/actions.js +89 -88
  864. package/src/store/test/reducer.js +184 -146
  865. package/src/store/test/selectors.js +118 -156
  866. package/src/style.scss +1 -14
  867. package/src/utils/index.js +1 -0
  868. package/src/utils/parse-css-unit-to-px.js +272 -0
  869. package/src/utils/test/parse-css-unit-to-px.js +206 -0
  870. package/src/utils/transform-styles/transforms/test/wrap.js +1 -1
  871. package/src/utils/transform-styles/transforms/wrap.js +16 -0
  872. package/tsconfig.tsbuildinfo +1 -466
  873. package/build/components/block-list/head.js +0 -27
  874. package/build/components/block-list/head.js.map +0 -1
  875. package/build/components/duotone-control/duotone-picker-popover.js +0 -44
  876. package/build/components/duotone-control/duotone-picker-popover.js.map +0 -1
  877. package/build/components/inspector-advanced-controls/index.js +0 -46
  878. package/build/components/inspector-advanced-controls/index.js.map +0 -1
  879. package/build/components/inspector-controls/index.native.js.map +0 -1
  880. package/build/components/list-view/block-slot.js +0 -121
  881. package/build/components/list-view/block-slot.js.map +0 -1
  882. package/build/components/list-view/editor.js +0 -35
  883. package/build/components/list-view/editor.js.map +0 -1
  884. package/build/components/use-simulated-media-query/index.js +0 -137
  885. package/build/components/use-simulated-media-query/index.js.map +0 -1
  886. package/build-module/components/block-list/head.js +0 -19
  887. package/build-module/components/block-list/head.js.map +0 -1
  888. package/build-module/components/duotone-control/duotone-picker-popover.js +0 -35
  889. package/build-module/components/duotone-control/duotone-picker-popover.js.map +0 -1
  890. package/build-module/components/inspector-advanced-controls/index.js +0 -36
  891. package/build-module/components/inspector-advanced-controls/index.js.map +0 -1
  892. package/build-module/components/inspector-controls/index.native.js.map +0 -1
  893. package/build-module/components/list-view/block-slot.js +0 -96
  894. package/build-module/components/list-view/block-slot.js.map +0 -1
  895. package/build-module/components/list-view/editor.js +0 -25
  896. package/build-module/components/list-view/editor.js.map +0 -1
  897. package/build-module/components/use-simulated-media-query/index.js +0 -126
  898. package/build-module/components/use-simulated-media-query/index.js.map +0 -1
  899. package/src/components/block-list/head.js +0 -18
  900. package/src/components/duotone-control/duotone-picker-popover.js +0 -36
  901. package/src/components/inspector-advanced-controls/README.md +0 -72
  902. package/src/components/inspector-advanced-controls/index.js +0 -32
  903. package/src/components/list-view/block-slot.js +0 -120
  904. package/src/components/list-view/editor.js +0 -29
  905. package/src/components/use-simulated-media-query/index.js +0 -144
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/block-types-tab.native.js"],"names":["NON_BLOCK_CATEGORIES","BlockTypesTab","onSelect","rootClientId","listProps","clipboardBlock","blockTypes","select","getInserterItems","blockEditorStore","allItems","blockItems","filter","category","includes","items","trackBlockTypeSelected","handleSelect","args"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AAXA;AACA;AACA;;AAGA;AACA;AACA;AAMA,MAAMA,oBAAoB,GAAG,CAAE,UAAF,CAA7B;;AAEA,SAASC,aAAT,CAAwB;AAAEC,EAAAA,QAAF;AAAYC,EAAAA,YAAZ;AAA0BC,EAAAA;AAA1B,CAAxB,EAAgE;AAC/D,QAAMC,cAAc,GAAG,gCAAmBF,YAAnB,CAAvB;AAEA,QAAM;AAAEG,IAAAA;AAAF,MAAiB,qBACpBC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAuBD,MAAM,CAAEE,YAAF,CAAnC;AAEA,UAAMC,QAAQ,GAAGF,gBAAgB,CAAEL,YAAF,CAAjC;AACA,UAAMQ,UAAU,GAAGD,QAAQ,CAACE,MAAT,CAClB,CAAE;AAAEC,MAAAA;AAAF,KAAF,KAAoB,CAAEb,oBAAoB,CAACc,QAArB,CAA+BD,QAA/B,CADJ,CAAnB;AAIA,WAAO;AACNP,MAAAA,UAAU,EAAED,cAAc,GACvB,CAAEA,cAAF,EAAkB,GAAGM,UAArB,CADuB,GAEvBA;AAHG,KAAP;AAKA,GAdqB,EAetB,CAAER,YAAF,CAfsB,CAAvB;AAkBA,QAAM;AAAEY,IAAAA,KAAF;AAASC,IAAAA;AAAT,MAAoC,sCACzCV,UADyC,CAA1C;;AAIA,QAAMW,YAAY,GAAG,CAAE,GAAGC,IAAL,KAAe;AACnCF,IAAAA,sBAAsB,CAAE,GAAGE,IAAL,CAAtB;AACAhB,IAAAA,QAAQ,CAAE,GAAGgB,IAAL,CAAR;AACA,GAHD;;AAKA,SACC,4BAAC,uBAAD;AACC,IAAA,IAAI,EAAC,QADN;AAEC,IAAA,KAAK,EAAGH,KAFT;AAGC,IAAA,QAAQ,EAAGE,YAHZ;AAIC,IAAA,SAAS,EAAGb;AAJb,IADD;AAQA;;eAEcH,a","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockTypesList from '../block-types-list';\nimport useClipboardBlock from './hooks/use-clipboard-block';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockTypeImpressions from './hooks/use-block-type-impressions';\n\nconst NON_BLOCK_CATEGORIES = [ 'reusable' ];\n\nfunction BlockTypesTab( { onSelect, rootClientId, listProps } ) {\n\tconst clipboardBlock = useClipboardBlock( rootClientId );\n\n\tconst { blockTypes } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getInserterItems } = select( blockEditorStore );\n\n\t\t\tconst allItems = getInserterItems( rootClientId );\n\t\t\tconst blockItems = allItems.filter(\n\t\t\t\t( { category } ) => ! NON_BLOCK_CATEGORIES.includes( category )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tblockTypes: clipboardBlock\n\t\t\t\t\t? [ clipboardBlock, ...blockItems ]\n\t\t\t\t\t: blockItems,\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tconst { items, trackBlockTypeSelected } = useBlockTypeImpressions(\n\t\tblockTypes\n\t);\n\n\tconst handleSelect = ( ...args ) => {\n\t\ttrackBlockTypeSelected( ...args );\n\t\tonSelect( ...args );\n\t};\n\n\treturn (\n\t\t<BlockTypesList\n\t\t\tname=\"Blocks\"\n\t\t\titems={ items }\n\t\t\tonSelect={ handleSelect }\n\t\t\tlistProps={ listProps }\n\t\t/>\n\t);\n}\n\nexport default BlockTypesTab;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/block-types-tab.native.js"],"names":["BlockTypesTab","onSelect","rootClientId","listProps","clipboardBlock","blockTypes","select","getInserterItems","blockEditorStore","blockItems","items","trackBlockTypeSelected","handleSelect","args"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAZA;AACA;AACA;;AAGA;AACA;AACA;AAOA,SAASA,aAAT,CAAwB;AAAEC,EAAAA,QAAF;AAAYC,EAAAA,YAAZ;AAA0BC,EAAAA;AAA1B,CAAxB,EAAgE;AAC/D,QAAMC,cAAc,GAAG,gCAAmBF,YAAnB,CAAvB;AAEA,QAAM;AAAEG,IAAAA;AAAF,MAAiB,qBACpBC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAuBD,MAAM,CAAEE,YAAF,CAAnC;AACA,UAAMC,UAAU,GAAG,gCAClBF,gBAAgB,CAAEL,YAAF,CADE,CAAnB;AAIA,WAAO;AACNG,MAAAA,UAAU,EAAED,cAAc,GACvB,CAAEA,cAAF,EAAkB,GAAGK,UAArB,CADuB,GAEvBA;AAHG,KAAP;AAKA,GAZqB,EAatB,CAAEP,YAAF,CAbsB,CAAvB;AAgBA,QAAM;AAAEQ,IAAAA,KAAF;AAASC,IAAAA;AAAT,MAAoC,sCACzCN,UADyC,CAA1C;;AAIA,QAAMO,YAAY,GAAG,CAAE,GAAGC,IAAL,KAAe;AACnCF,IAAAA,sBAAsB,CAAE,GAAGE,IAAL,CAAtB;AACAZ,IAAAA,QAAQ,CAAE,GAAGY,IAAL,CAAR;AACA,GAHD;;AAKA,SACC,4BAAC,uBAAD;AACC,IAAA,IAAI,EAAC,QADN;AAEC,IAAA,KAAK,EAAGH,KAFT;AAGC,IAAA,QAAQ,EAAGE,YAHZ;AAIC,IAAA,SAAS,EAAGT;AAJb,IADD;AAQA;;eAEcH,a","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockTypesList from '../block-types-list';\nimport useClipboardBlock from './hooks/use-clipboard-block';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockTypeImpressions from './hooks/use-block-type-impressions';\nimport { filterInserterItems } from './utils';\n\nfunction BlockTypesTab( { onSelect, rootClientId, listProps } ) {\n\tconst clipboardBlock = useClipboardBlock( rootClientId );\n\n\tconst { blockTypes } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getInserterItems } = select( blockEditorStore );\n\t\t\tconst blockItems = filterInserterItems(\n\t\t\t\tgetInserterItems( rootClientId )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tblockTypes: clipboardBlock\n\t\t\t\t\t? [ clipboardBlock, ...blockItems ]\n\t\t\t\t\t: blockItems,\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tconst { items, trackBlockTypeSelected } = useBlockTypeImpressions(\n\t\tblockTypes\n\t);\n\n\tconst handleSelect = ( ...args ) => {\n\t\ttrackBlockTypeSelected( ...args );\n\t\tonSelect( ...args );\n\t};\n\n\treturn (\n\t\t<BlockTypesList\n\t\t\tname=\"Blocks\"\n\t\t\titems={ items }\n\t\t\tonSelect={ handleSelect }\n\t\t\tlistProps={ listProps }\n\t\t/>\n\t);\n}\n\nexport default BlockTypesTab;\n"]}
@@ -32,15 +32,16 @@ function useClipboardBlock(destinationRootClientId) {
32
32
  HTML: clipboard
33
33
  })[0];
34
34
  const canAddClipboardBlock = canInsertBlockType(clipboardBlock === null || clipboardBlock === void 0 ? void 0 : clipboardBlock.name, destinationRootClientId);
35
+ const blockType = getBlockType(clipboardBlock === null || clipboardBlock === void 0 ? void 0 : clipboardBlock.name);
35
36
 
36
- if (!canAddClipboardBlock) {
37
+ if (!canAddClipboardBlock || !blockType) {
37
38
  return undefined;
38
39
  }
39
40
 
40
41
  const {
41
- icon,
42
- name
43
- } = getBlockType(clipboardBlock.name);
42
+ name,
43
+ icon
44
+ } = blockType;
44
45
  const {
45
46
  attributes: initialAttributes,
46
47
  innerBlocks
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/hooks/use-clipboard-block.native.js"],"names":["useClipboardBlock","destinationRootClientId","canInsertBlockType","blockEditorStore","getBlockType","blocksStore","clipboard","clipboardBlock","HTML","canAddClipboardBlock","name","undefined","icon","attributes","initialAttributes","innerBlocks","id"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;AAKA;;AAVA;AACA;AACA;;AAKA;AACA;AACA;AAGe,SAASA,iBAAT,CAA4BC,uBAA5B,EAAsD;AACpE,QAAM;AAAEC,IAAAA;AAAF,MAAyB,qBAAWC,YAAX,CAA/B;AACA,QAAM;AAAEC,IAAAA;AAAF,MAAmB,qBAAWC,aAAX,CAAzB;AAEA,QAAMC,SAAS,GAAG,+BAAlB;AACA,QAAMC,cAAc,GAAG,wBAAY;AAAEC,IAAAA,IAAI,EAAEF;AAAR,GAAZ,EAAmC,CAAnC,CAAvB;AAEA,QAAMG,oBAAoB,GAAGP,kBAAkB,CAC9CK,cAD8C,aAC9CA,cAD8C,uBAC9CA,cAAc,CAAEG,IAD8B,EAE9CT,uBAF8C,CAA/C;;AAKA,MAAK,CAAEQ,oBAAP,EAA8B;AAC7B,WAAOE,SAAP;AACA;;AAED,QAAM;AAAEC,IAAAA,IAAF;AAAQF,IAAAA;AAAR,MAAiBN,YAAY,CAAEG,cAAc,CAACG,IAAjB,CAAnC;AACA,QAAM;AAAEG,IAAAA,UAAU,EAAEC,iBAAd;AAAiCC,IAAAA;AAAjC,MAAiDR,cAAvD;AAEA,SAAO;AACNS,IAAAA,EAAE,EAAE,WADE;AAENN,IAAAA,IAFM;AAGNE,IAAAA,IAHM;AAINE,IAAAA,iBAJM;AAKNC,IAAAA;AALM,GAAP;AAOA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { rawHandler, store as blocksStore } from '@wordpress/blocks';\nimport { getClipboard } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\nexport default function useClipboardBlock( destinationRootClientId ) {\n\tconst { canInsertBlockType } = useSelect( blockEditorStore );\n\tconst { getBlockType } = useSelect( blocksStore );\n\n\tconst clipboard = getClipboard();\n\tconst clipboardBlock = rawHandler( { HTML: clipboard } )[ 0 ];\n\n\tconst canAddClipboardBlock = canInsertBlockType(\n\t\tclipboardBlock?.name,\n\t\tdestinationRootClientId\n\t);\n\n\tif ( ! canAddClipboardBlock ) {\n\t\treturn undefined;\n\t}\n\n\tconst { icon, name } = getBlockType( clipboardBlock.name );\n\tconst { attributes: initialAttributes, innerBlocks } = clipboardBlock;\n\n\treturn {\n\t\tid: 'clipboard',\n\t\tname,\n\t\ticon,\n\t\tinitialAttributes,\n\t\tinnerBlocks,\n\t};\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/hooks/use-clipboard-block.native.js"],"names":["useClipboardBlock","destinationRootClientId","canInsertBlockType","blockEditorStore","getBlockType","blocksStore","clipboard","clipboardBlock","HTML","canAddClipboardBlock","name","blockType","undefined","icon","attributes","initialAttributes","innerBlocks","id"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;AAKA;;AAVA;AACA;AACA;;AAKA;AACA;AACA;AAGe,SAASA,iBAAT,CAA4BC,uBAA5B,EAAsD;AACpE,QAAM;AAAEC,IAAAA;AAAF,MAAyB,qBAAWC,YAAX,CAA/B;AACA,QAAM;AAAEC,IAAAA;AAAF,MAAmB,qBAAWC,aAAX,CAAzB;AAEA,QAAMC,SAAS,GAAG,+BAAlB;AACA,QAAMC,cAAc,GAAG,wBAAY;AAAEC,IAAAA,IAAI,EAAEF;AAAR,GAAZ,EAAmC,CAAnC,CAAvB;AAEA,QAAMG,oBAAoB,GAAGP,kBAAkB,CAC9CK,cAD8C,aAC9CA,cAD8C,uBAC9CA,cAAc,CAAEG,IAD8B,EAE9CT,uBAF8C,CAA/C;AAIA,QAAMU,SAAS,GAAGP,YAAY,CAAEG,cAAF,aAAEA,cAAF,uBAAEA,cAAc,CAAEG,IAAlB,CAA9B;;AAEA,MAAK,CAAED,oBAAF,IAA0B,CAAEE,SAAjC,EAA6C;AAC5C,WAAOC,SAAP;AACA;;AAED,QAAM;AAAEF,IAAAA,IAAF;AAAQG,IAAAA;AAAR,MAAiBF,SAAvB;AACA,QAAM;AAAEG,IAAAA,UAAU,EAAEC,iBAAd;AAAiCC,IAAAA;AAAjC,MAAiDT,cAAvD;AAEA,SAAO;AACNU,IAAAA,EAAE,EAAE,WADE;AAENP,IAAAA,IAFM;AAGNG,IAAAA,IAHM;AAINE,IAAAA,iBAJM;AAKNC,IAAAA;AALM,GAAP;AAOA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { rawHandler, store as blocksStore } from '@wordpress/blocks';\nimport { getClipboard } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\nexport default function useClipboardBlock( destinationRootClientId ) {\n\tconst { canInsertBlockType } = useSelect( blockEditorStore );\n\tconst { getBlockType } = useSelect( blocksStore );\n\n\tconst clipboard = getClipboard();\n\tconst clipboardBlock = rawHandler( { HTML: clipboard } )[ 0 ];\n\n\tconst canAddClipboardBlock = canInsertBlockType(\n\t\tclipboardBlock?.name,\n\t\tdestinationRootClientId\n\t);\n\tconst blockType = getBlockType( clipboardBlock?.name );\n\n\tif ( ! canAddClipboardBlock || ! blockType ) {\n\t\treturn undefined;\n\t}\n\n\tconst { name, icon } = blockType;\n\tconst { attributes: initialAttributes, innerBlocks } = clipboardBlock;\n\n\treturn {\n\t\tid: 'clipboard',\n\t\tname,\n\t\ticon,\n\t\tinitialAttributes,\n\t\tinnerBlocks,\n\t};\n}\n"]}
@@ -127,6 +127,7 @@ class Inserter extends _element.Component {
127
127
  disabled,
128
128
  blockTitle,
129
129
  hasSingleBlockType,
130
+ directInsertBlock,
130
131
  toggleProps,
131
132
  hasItems,
132
133
  renderToggle = defaultRenderToggle
@@ -137,6 +138,7 @@ class Inserter extends _element.Component {
137
138
  disabled: disabled || !hasItems,
138
139
  blockTitle,
139
140
  hasSingleBlockType,
141
+ directInsertBlock,
140
142
  toggleProps
141
143
  });
142
144
  }
@@ -190,12 +192,13 @@ class Inserter extends _element.Component {
190
192
  const {
191
193
  position,
192
194
  hasSingleBlockType,
195
+ directInsertBlock,
193
196
  insertOnlyAllowedBlock,
194
197
  __experimentalIsQuick: isQuick,
195
198
  onSelectOrClose
196
199
  } = this.props;
197
200
 
198
- if (hasSingleBlockType) {
201
+ if (hasSingleBlockType || directInsertBlock !== null && directInsertBlock !== void 0 && directInsertBlock.length) {
199
202
  return this.renderToggle({
200
203
  onToggle: insertOnlyAllowedBlock
201
204
  });
@@ -225,7 +228,8 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, {
225
228
  const {
226
229
  getBlockRootClientId,
227
230
  hasInserterItems,
228
- __experimentalGetAllowedBlocks
231
+ __experimentalGetAllowedBlocks,
232
+ __experimentalGetDirectInsertBlock
229
233
  } = select(_store.store);
230
234
  const {
231
235
  getBlockVariations
@@ -234,6 +238,8 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, {
234
238
 
235
239
  const allowedBlocks = __experimentalGetAllowedBlocks(rootClientId);
236
240
 
241
+ const directInsertBlock = __experimentalGetDirectInsertBlock(rootClientId);
242
+
237
243
  const hasSingleBlockType = (0, _lodash.size)(allowedBlocks) === 1 && (0, _lodash.size)(getBlockVariations(allowedBlocks[0].name, 'inserter')) === 0;
238
244
  let allowedBlockType = false;
239
245
 
@@ -246,6 +252,7 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, {
246
252
  hasSingleBlockType,
247
253
  blockTitle: allowedBlockType ? allowedBlockType.title : '',
248
254
  allowedBlockType,
255
+ directInsertBlock,
249
256
  rootClientId
250
257
  };
251
258
  }), (0, _data.withDispatch)((dispatch, ownProps, {
@@ -259,10 +266,11 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, {
259
266
  isAppender,
260
267
  hasSingleBlockType,
261
268
  allowedBlockType,
269
+ directInsertBlock,
262
270
  onSelectOrClose
263
271
  } = ownProps;
264
272
 
265
- if (!hasSingleBlockType) {
273
+ if (!hasSingleBlockType && !(directInsertBlock !== null && directInsertBlock !== void 0 && directInsertBlock.length)) {
266
274
  return;
267
275
  }
268
276
 
@@ -292,7 +300,7 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, {
292
300
  const {
293
301
  insertBlock
294
302
  } = dispatch(_store.store);
295
- const blockToInsert = (0, _blocks.createBlock)(allowedBlockType.name);
303
+ const blockToInsert = directInsertBlock !== null && directInsertBlock !== void 0 && directInsertBlock.length ? (0, _blocks.createBlock)(...directInsertBlock) : (0, _blocks.createBlock)(allowedBlockType.name);
296
304
  insertBlock(blockToInsert, getInsertionIndex(), rootClientId);
297
305
 
298
306
  if (onSelectOrClose) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.js"],"names":["defaultRenderToggle","onToggle","disabled","isOpen","blockTitle","hasSingleBlockType","toggleProps","label","onClick","rest","handleClick","event","plus","Inserter","Component","constructor","arguments","bind","renderToggle","renderContent","props","hasItems","onClose","rootClientId","clientId","isAppender","showInserterHelpPanel","__experimentalIsQuick","isQuick","render","position","insertOnlyAllowedBlock","onSelectOrClose","select","getBlockRootClientId","hasInserterItems","__experimentalGetAllowedBlocks","blockEditorStore","getBlockVariations","blocksStore","undefined","allowedBlocks","name","allowedBlockType","title","dispatch","ownProps","getInsertionIndex","getBlockIndex","getBlockSelectionEnd","getBlockOrder","end","length","insertBlock","blockToInsert","message"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { size } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { Dropdown, Button } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, ifCondition } from '@wordpress/compose';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { plus } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport InserterMenu from './menu';\nimport QuickInserter from './quick-inserter';\nimport { store as blockEditorStore } from '../../store';\n\nconst defaultRenderToggle = ( {\n\tonToggle,\n\tdisabled,\n\tisOpen,\n\tblockTitle,\n\thasSingleBlockType,\n\ttoggleProps = {},\n} ) => {\n\tlet label;\n\tif ( hasSingleBlockType ) {\n\t\tlabel = sprintf(\n\t\t\t// translators: %s: the name of the block when there is only one\n\t\t\t_x( 'Add %s', 'directly add the only allowed block' ),\n\t\t\tblockTitle\n\t\t);\n\t} else {\n\t\tlabel = _x( 'Add block', 'Generic label for block inserter button' );\n\t}\n\n\tconst { onClick, ...rest } = toggleProps;\n\n\t// Handle both onClick functions from the toggle and the parent component\n\tfunction handleClick( event ) {\n\t\tif ( onToggle ) {\n\t\t\tonToggle( event );\n\t\t}\n\t\tif ( onClick ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\ticon={ plus }\n\t\t\tlabel={ label }\n\t\t\ttooltipPosition=\"bottom\"\n\t\t\tonClick={ handleClick }\n\t\t\tclassName=\"block-editor-inserter__toggle\"\n\t\t\taria-haspopup={ ! hasSingleBlockType ? 'true' : false }\n\t\t\taria-expanded={ ! hasSingleBlockType ? isOpen : false }\n\t\t\tdisabled={ disabled }\n\t\t\t{ ...rest }\n\t\t/>\n\t);\n};\n\nclass Inserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderToggle = this.renderToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { onToggle } = this.props;\n\n\t\t// Surface toggle callback to parent component\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown toggle element.\n\t */\n\trenderToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\ttoggleProps,\n\t\t\thasItems,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t} = this.props;\n\n\t\treturn renderToggle( {\n\t\t\tonToggle,\n\t\t\tisOpen,\n\t\t\tdisabled: disabled || ! hasItems,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\ttoggleProps,\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t *\n\t * @return {WPElement} Dropdown content element.\n\t */\n\trenderContent( { onClose } ) {\n\t\tconst {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tshowInserterHelpPanel,\n\n\t\t\t// This prop is experimental to give some time for the quick inserter to mature\n\t\t\t// Feel free to make them stable after a few releases.\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t} = this.props;\n\n\t\tif ( isQuick ) {\n\t\t\treturn (\n\t\t\t\t<QuickInserter\n\t\t\t\t\tonSelect={ () => {\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tonSelect={ () => {\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tposition,\n\t\t\thasSingleBlockType,\n\t\t\tinsertOnlyAllowedBlock,\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tonSelectOrClose,\n\t\t} = this.props;\n\n\t\tif ( hasSingleBlockType ) {\n\t\t\treturn this.renderToggle( { onToggle: insertOnlyAllowedBlock } );\n\t\t}\n\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tclassName=\"block-editor-inserter\"\n\t\t\t\tcontentClassName={ classnames(\n\t\t\t\t\t'block-editor-inserter__popover',\n\t\t\t\t\t{ 'is-quick': isQuick }\n\t\t\t\t) }\n\t\t\t\tposition={ position }\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\texpandOnMobile\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t\tonClose={ onSelectOrClose }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\thasInserterItems,\n\t\t\t__experimentalGetAllowedBlocks,\n\t\t} = select( blockEditorStore );\n\t\tconst { getBlockVariations } = select( blocksStore );\n\n\t\trootClientId =\n\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined;\n\n\t\tconst allowedBlocks = __experimentalGetAllowedBlocks( rootClientId );\n\n\t\tconst hasSingleBlockType =\n\t\t\tsize( allowedBlocks ) === 1 &&\n\t\t\tsize(\n\t\t\t\tgetBlockVariations( allowedBlocks[ 0 ].name, 'inserter' )\n\t\t\t) === 0;\n\n\t\tlet allowedBlockType = false;\n\t\tif ( hasSingleBlockType ) {\n\t\t\tallowedBlockType = allowedBlocks[ 0 ];\n\t\t}\n\n\t\treturn {\n\t\t\thasItems: hasInserterItems( rootClientId ),\n\t\t\thasSingleBlockType,\n\t\t\tblockTitle: allowedBlockType ? allowedBlockType.title : '',\n\t\t\tallowedBlockType,\n\t\t\trootClientId,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, { select } ) => {\n\t\treturn {\n\t\t\tinsertOnlyAllowedBlock() {\n\t\t\t\tconst {\n\t\t\t\t\trootClientId,\n\t\t\t\t\tclientId,\n\t\t\t\t\tisAppender,\n\t\t\t\t\thasSingleBlockType,\n\t\t\t\t\tallowedBlockType,\n\t\t\t\t\tonSelectOrClose,\n\t\t\t\t} = ownProps;\n\n\t\t\t\tif ( ! hasSingleBlockType ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfunction getInsertionIndex() {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\t\tgetBlockSelectionEnd,\n\t\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\t\t\tif ( clientId ) {\n\t\t\t\t\t\treturn getBlockIndex( clientId, rootClientId );\n\t\t\t\t\t}\n\n\t\t\t\t\t// If there a selected block, we insert after the selected block.\n\t\t\t\t\tconst end = getBlockSelectionEnd();\n\t\t\t\t\tif (\n\t\t\t\t\t\t! isAppender &&\n\t\t\t\t\t\tend &&\n\t\t\t\t\t\tgetBlockRootClientId( end ) === rootClientId\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn getBlockIndex( end, rootClientId ) + 1;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Otherwise, we insert at the end of the current rootClientId\n\t\t\t\t\treturn getBlockOrder( rootClientId ).length;\n\t\t\t\t}\n\n\t\t\t\tconst { insertBlock } = dispatch( blockEditorStore );\n\n\t\t\t\tconst blockToInsert = createBlock( allowedBlockType.name );\n\n\t\t\t\tinsertBlock( blockToInsert, getInsertionIndex(), rootClientId );\n\n\t\t\t\tif ( onSelectOrClose ) {\n\t\t\t\t\tonSelectOrClose();\n\t\t\t\t}\n\n\t\t\t\tconst message = sprintf(\n\t\t\t\t\t// translators: %s: the name of the block that has been added\n\t\t\t\t\t__( '%s block added' ),\n\t\t\t\t\tallowedBlockType.title\n\t\t\t\t);\n\t\t\t\tspeak( message );\n\t\t\t},\n\t\t};\n\t} ),\n\t// The global inserter should always be visible, we are using ( ! isAppender && ! rootClientId && ! clientId ) as\n\t// a way to detect the global Inserter.\n\tifCondition(\n\t\t( { hasItems, isAppender, rootClientId, clientId } ) =>\n\t\t\thasItems || ( ! isAppender && ! rootClientId && ! clientId )\n\t),\n] )( Inserter );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.js"],"names":["defaultRenderToggle","onToggle","disabled","isOpen","blockTitle","hasSingleBlockType","toggleProps","label","onClick","rest","handleClick","event","plus","Inserter","Component","constructor","arguments","bind","renderToggle","renderContent","props","directInsertBlock","hasItems","onClose","rootClientId","clientId","isAppender","showInserterHelpPanel","__experimentalIsQuick","isQuick","render","position","insertOnlyAllowedBlock","onSelectOrClose","length","select","getBlockRootClientId","hasInserterItems","__experimentalGetAllowedBlocks","__experimentalGetDirectInsertBlock","blockEditorStore","getBlockVariations","blocksStore","undefined","allowedBlocks","name","allowedBlockType","title","dispatch","ownProps","getInsertionIndex","getBlockIndex","getBlockSelectionEnd","getBlockOrder","end","insertBlock","blockToInsert","message"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { size } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { Dropdown, Button } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, ifCondition } from '@wordpress/compose';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { plus } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport InserterMenu from './menu';\nimport QuickInserter from './quick-inserter';\nimport { store as blockEditorStore } from '../../store';\n\nconst defaultRenderToggle = ( {\n\tonToggle,\n\tdisabled,\n\tisOpen,\n\tblockTitle,\n\thasSingleBlockType,\n\ttoggleProps = {},\n} ) => {\n\tlet label;\n\tif ( hasSingleBlockType ) {\n\t\tlabel = sprintf(\n\t\t\t// translators: %s: the name of the block when there is only one\n\t\t\t_x( 'Add %s', 'directly add the only allowed block' ),\n\t\t\tblockTitle\n\t\t);\n\t} else {\n\t\tlabel = _x( 'Add block', 'Generic label for block inserter button' );\n\t}\n\n\tconst { onClick, ...rest } = toggleProps;\n\n\t// Handle both onClick functions from the toggle and the parent component\n\tfunction handleClick( event ) {\n\t\tif ( onToggle ) {\n\t\t\tonToggle( event );\n\t\t}\n\t\tif ( onClick ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\ticon={ plus }\n\t\t\tlabel={ label }\n\t\t\ttooltipPosition=\"bottom\"\n\t\t\tonClick={ handleClick }\n\t\t\tclassName=\"block-editor-inserter__toggle\"\n\t\t\taria-haspopup={ ! hasSingleBlockType ? 'true' : false }\n\t\t\taria-expanded={ ! hasSingleBlockType ? isOpen : false }\n\t\t\tdisabled={ disabled }\n\t\t\t{ ...rest }\n\t\t/>\n\t);\n};\n\nclass Inserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderToggle = this.renderToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { onToggle } = this.props;\n\n\t\t// Surface toggle callback to parent component\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown toggle element.\n\t */\n\trenderToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\thasItems,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t} = this.props;\n\n\t\treturn renderToggle( {\n\t\t\tonToggle,\n\t\t\tisOpen,\n\t\t\tdisabled: disabled || ! hasItems,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t *\n\t * @return {WPElement} Dropdown content element.\n\t */\n\trenderContent( { onClose } ) {\n\t\tconst {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tshowInserterHelpPanel,\n\n\t\t\t// This prop is experimental to give some time for the quick inserter to mature\n\t\t\t// Feel free to make them stable after a few releases.\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t} = this.props;\n\n\t\tif ( isQuick ) {\n\t\t\treturn (\n\t\t\t\t<QuickInserter\n\t\t\t\t\tonSelect={ () => {\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tonSelect={ () => {\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tposition,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\tinsertOnlyAllowedBlock,\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tonSelectOrClose,\n\t\t} = this.props;\n\n\t\tif ( hasSingleBlockType || directInsertBlock?.length ) {\n\t\t\treturn this.renderToggle( { onToggle: insertOnlyAllowedBlock } );\n\t\t}\n\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tclassName=\"block-editor-inserter\"\n\t\t\t\tcontentClassName={ classnames(\n\t\t\t\t\t'block-editor-inserter__popover',\n\t\t\t\t\t{ 'is-quick': isQuick }\n\t\t\t\t) }\n\t\t\t\tposition={ position }\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\texpandOnMobile\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t\tonClose={ onSelectOrClose }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\thasInserterItems,\n\t\t\t__experimentalGetAllowedBlocks,\n\t\t\t__experimentalGetDirectInsertBlock,\n\t\t} = select( blockEditorStore );\n\t\tconst { getBlockVariations } = select( blocksStore );\n\n\t\trootClientId =\n\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined;\n\n\t\tconst allowedBlocks = __experimentalGetAllowedBlocks( rootClientId );\n\n\t\tconst directInsertBlock = __experimentalGetDirectInsertBlock(\n\t\t\trootClientId\n\t\t);\n\n\t\tconst hasSingleBlockType =\n\t\t\tsize( allowedBlocks ) === 1 &&\n\t\t\tsize(\n\t\t\t\tgetBlockVariations( allowedBlocks[ 0 ].name, 'inserter' )\n\t\t\t) === 0;\n\n\t\tlet allowedBlockType = false;\n\t\tif ( hasSingleBlockType ) {\n\t\t\tallowedBlockType = allowedBlocks[ 0 ];\n\t\t}\n\n\t\treturn {\n\t\t\thasItems: hasInserterItems( rootClientId ),\n\t\t\thasSingleBlockType,\n\t\t\tblockTitle: allowedBlockType ? allowedBlockType.title : '',\n\t\t\tallowedBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\trootClientId,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, { select } ) => {\n\t\treturn {\n\t\t\tinsertOnlyAllowedBlock() {\n\t\t\t\tconst {\n\t\t\t\t\trootClientId,\n\t\t\t\t\tclientId,\n\t\t\t\t\tisAppender,\n\t\t\t\t\thasSingleBlockType,\n\t\t\t\t\tallowedBlockType,\n\t\t\t\t\tdirectInsertBlock,\n\t\t\t\t\tonSelectOrClose,\n\t\t\t\t} = ownProps;\n\n\t\t\t\tif ( ! hasSingleBlockType && ! directInsertBlock?.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfunction getInsertionIndex() {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\t\tgetBlockSelectionEnd,\n\t\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\t\t\tif ( clientId ) {\n\t\t\t\t\t\treturn getBlockIndex( clientId, rootClientId );\n\t\t\t\t\t}\n\n\t\t\t\t\t// If there a selected block, we insert after the selected block.\n\t\t\t\t\tconst end = getBlockSelectionEnd();\n\t\t\t\t\tif (\n\t\t\t\t\t\t! isAppender &&\n\t\t\t\t\t\tend &&\n\t\t\t\t\t\tgetBlockRootClientId( end ) === rootClientId\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn getBlockIndex( end, rootClientId ) + 1;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Otherwise, we insert at the end of the current rootClientId\n\t\t\t\t\treturn getBlockOrder( rootClientId ).length;\n\t\t\t\t}\n\n\t\t\t\tconst { insertBlock } = dispatch( blockEditorStore );\n\n\t\t\t\tconst blockToInsert = directInsertBlock?.length\n\t\t\t\t\t? createBlock( ...directInsertBlock )\n\t\t\t\t\t: createBlock( allowedBlockType.name );\n\n\t\t\t\tinsertBlock( blockToInsert, getInsertionIndex(), rootClientId );\n\n\t\t\t\tif ( onSelectOrClose ) {\n\t\t\t\t\tonSelectOrClose();\n\t\t\t\t}\n\n\t\t\t\tconst message = sprintf(\n\t\t\t\t\t// translators: %s: the name of the block that has been added\n\t\t\t\t\t__( '%s block added' ),\n\t\t\t\t\tallowedBlockType.title\n\t\t\t\t);\n\t\t\t\tspeak( message );\n\t\t\t},\n\t\t};\n\t} ),\n\t// The global inserter should always be visible, we are using ( ! isAppender && ! rootClientId && ! clientId ) as\n\t// a way to detect the global Inserter.\n\tifCondition(\n\t\t( { hasItems, isAppender, rootClientId, clientId } ) =>\n\t\t\thasItems || ( ! isAppender && ! rootClientId && ! clientId )\n\t),\n] )( Inserter );\n"]}
@@ -49,20 +49,17 @@ var _store = require("../../store");
49
49
  const VOICE_OVER_ANNOUNCEMENT_DELAY = 1000;
50
50
 
51
51
  const defaultRenderToggle = ({
52
- displayEditorOnboardingTooltip,
53
52
  onToggle,
54
53
  disabled,
55
54
  style,
56
55
  onLongPress
57
56
  }) => (0, _element.createElement)(_components.ToolbarButton, {
58
- title: displayEditorOnboardingTooltip ? (0, _i18n.__)('Tap to add content') : (0, _i18n.__)('Add block'),
57
+ title: (0, _i18n.__)('Add block'),
59
58
  icon: (0, _element.createElement)(_icons.Icon, {
60
59
  icon: _icons.plusCircleFilled,
61
60
  style: style,
62
61
  color: style.color
63
62
  }),
64
- showTooltip: displayEditorOnboardingTooltip,
65
- tooltipPosition: "top right",
66
63
  onClick: onToggle,
67
64
  extraProps: {
68
65
  hint: (0, _i18n.__)('Double tap to add a block'),
@@ -225,7 +222,6 @@ class Inserter extends _element.Component {
225
222
  isOpen
226
223
  }) {
227
224
  const {
228
- displayEditorOnboardingTooltip,
229
225
  disabled,
230
226
  renderToggle = defaultRenderToggle,
231
227
  getStylesFromColorScheme,
@@ -261,7 +257,6 @@ class Inserter extends _element.Component {
261
257
  };
262
258
 
263
259
  return (0, _element.createElement)(_element.Fragment, null, renderToggle({
264
- displayEditorOnboardingTooltip,
265
260
  onToggle: onPress,
266
261
  isOpen,
267
262
  disabled,
@@ -389,7 +384,6 @@ var _default = (0, _compose.compose)([(0, _data.withDispatch)(dispatch => {
389
384
  const insertionIndexEnd = endOfRootIndex;
390
385
  return {
391
386
  blockTypeImpressions: getBlockEditorSettings().impressions,
392
- displayEditorOnboardingTooltip: getBlockEditorSettings().editorOnboarding && getBlockEditorSettings().firstGutenbergEditorSession,
393
387
  destinationRootClientId,
394
388
  insertionIndexDefault: getDefaultInsertionIndex(),
395
389
  insertionIndexBefore,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.native.js"],"names":["VOICE_OVER_ANNOUNCEMENT_DELAY","defaultRenderToggle","displayEditorOnboardingTooltip","onToggle","disabled","style","onLongPress","plusCircleFilled","color","hint","testID","Inserter","Component","constructor","arguments","bind","renderInserterToggle","renderContent","getInsertionOptions","addBeforeOption","value","label","icon","plusCircle","replaceCurrentOption","addAfterOption","addToBeginningOption","insertBefore","addToEndOption","insertAfter","isAnyBlockSelected","isSelectedBlockReplaceable","props","getInsertionIndex","insertionType","insertionIndexDefault","insertionIndexStart","insertionIndexBefore","insertionIndexAfter","insertionIndexEnd","shouldReplaceBlock","isOpen","blockTypeImpressions","updateSettings","impressionsRemain","Object","values","some","count","decrementedImpressions","entries","reduce","acc","blockName","Math","max","impressions","onInserterToggledAnnouncement","AccessibilityInfo","isScreenReaderEnabled","done","isEnabled","isIOS","Platform","OS","announcement","announceForAccessibility","renderToggle","getStylesFromColorScheme","showSeparator","styles","addBlockButton","addBlockButtonDark","onPress","setState","destinationRootClientId","insertionIndex","picker","presentPicker","onPickerSelect","instance","onClose","clientId","isAppender","state","render","dispatch","blockEditorStore","select","rootClientId","getBlockRootClientId","getBlockSelectionEnd","getBlockOrder","getBlockIndex","getBlock","getSettings","getBlockEditorSettings","end","selectedBlockIndex","endOfRootIndex","length","isSelectedUnmodifiedDefaultBlock","undefined","getDefaultInsertionIndex","__experimentalShouldInsertAtTheTop","shouldInsertAtTheTop","editorOnboarding","firstGutenbergEditorSession","withPreferredColorScheme"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { AccessibilityInfo, Platform } from 'react-native';\nimport { delay } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Dropdown, ToolbarButton, Picker } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\nimport {\n\tIcon,\n\tplusCircle,\n\tplusCircleFilled,\n\tinsertAfter,\n\tinsertBefore,\n} from '@wordpress/icons';\nimport { setBlockTypeImpressions } from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport InserterMenu from './menu';\nimport BlockInsertionPoint from '../block-list/insertion-point';\nimport { store as blockEditorStore } from '../../store';\n\nconst VOICE_OVER_ANNOUNCEMENT_DELAY = 1000;\n\nconst defaultRenderToggle = ( {\n\tdisplayEditorOnboardingTooltip,\n\tonToggle,\n\tdisabled,\n\tstyle,\n\tonLongPress,\n} ) => (\n\t<ToolbarButton\n\t\ttitle={\n\t\t\tdisplayEditorOnboardingTooltip\n\t\t\t\t? __( 'Tap to add content' )\n\t\t\t\t: __( 'Add block' )\n\t\t}\n\t\ticon={\n\t\t\t<Icon\n\t\t\t\ticon={ plusCircleFilled }\n\t\t\t\tstyle={ style }\n\t\t\t\tcolor={ style.color }\n\t\t\t/>\n\t\t}\n\t\tshowTooltip={ displayEditorOnboardingTooltip }\n\t\ttooltipPosition=\"top right\"\n\t\tonClick={ onToggle }\n\t\textraProps={ {\n\t\t\thint: __( 'Double tap to add a block' ),\n\t\t\t// testID is present to disambiguate this element for native UI tests. It's not\n\t\t\t// usually required for components. See: https://git.io/JeQ7G.\n\t\t\ttestID: 'add-block-button',\n\t\t\tonLongPress,\n\t\t} }\n\t\tisDisabled={ disabled }\n\t/>\n);\n\nexport class Inserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderInserterToggle = this.renderInserterToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tgetInsertionOptions() {\n\t\tconst addBeforeOption = {\n\t\t\tvalue: 'before',\n\t\t\tlabel: __( 'Add Block Before' ),\n\t\t\ticon: plusCircle,\n\t\t};\n\n\t\tconst replaceCurrentOption = {\n\t\t\tvalue: 'replace',\n\t\t\tlabel: __( 'Replace Current Block' ),\n\t\t\ticon: plusCircleFilled,\n\t\t};\n\n\t\tconst addAfterOption = {\n\t\t\tvalue: 'after',\n\t\t\tlabel: __( 'Add Block After' ),\n\t\t\ticon: plusCircle,\n\t\t};\n\n\t\tconst addToBeginningOption = {\n\t\t\tvalue: 'start',\n\t\t\tlabel: __( 'Add To Beginning' ),\n\t\t\ticon: insertBefore,\n\t\t};\n\n\t\tconst addToEndOption = {\n\t\t\tvalue: 'end',\n\t\t\tlabel: __( 'Add To End' ),\n\t\t\ticon: insertAfter,\n\t\t};\n\n\t\tconst { isAnyBlockSelected, isSelectedBlockReplaceable } = this.props;\n\t\tif ( isAnyBlockSelected ) {\n\t\t\tif ( isSelectedBlockReplaceable ) {\n\t\t\t\treturn [\n\t\t\t\t\taddToBeginningOption,\n\t\t\t\t\taddBeforeOption,\n\t\t\t\t\treplaceCurrentOption,\n\t\t\t\t\taddAfterOption,\n\t\t\t\t\taddToEndOption,\n\t\t\t\t];\n\t\t\t}\n\t\t\treturn [\n\t\t\t\taddToBeginningOption,\n\t\t\t\taddBeforeOption,\n\t\t\t\taddAfterOption,\n\t\t\t\taddToEndOption,\n\t\t\t];\n\t\t}\n\t\treturn [ addToBeginningOption, addToEndOption ];\n\t}\n\n\tgetInsertionIndex( insertionType ) {\n\t\tconst {\n\t\t\tinsertionIndexDefault,\n\t\t\tinsertionIndexStart,\n\t\t\tinsertionIndexBefore,\n\t\t\tinsertionIndexAfter,\n\t\t\tinsertionIndexEnd,\n\t\t} = this.props;\n\t\tif ( insertionType === 'start' ) {\n\t\t\treturn insertionIndexStart;\n\t\t}\n\t\tif ( insertionType === 'before' || insertionType === 'replace' ) {\n\t\t\treturn insertionIndexBefore;\n\t\t}\n\t\tif ( insertionType === 'after' ) {\n\t\t\treturn insertionIndexAfter;\n\t\t}\n\t\tif ( insertionType === 'end' ) {\n\t\t\treturn insertionIndexEnd;\n\t\t}\n\t\treturn insertionIndexDefault;\n\t}\n\n\tshouldReplaceBlock( insertionType ) {\n\t\tconst { isSelectedBlockReplaceable } = this.props;\n\t\tif ( insertionType === 'replace' ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( insertionType === 'default' && isSelectedBlockReplaceable ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { blockTypeImpressions, onToggle, updateSettings } = this.props;\n\n\t\tif ( ! isOpen ) {\n\t\t\tconst impressionsRemain = Object.values(\n\t\t\t\tblockTypeImpressions\n\t\t\t).some( ( count ) => count > 0 );\n\n\t\t\tif ( impressionsRemain ) {\n\t\t\t\tconst decrementedImpressions = Object.entries(\n\t\t\t\t\tblockTypeImpressions\n\t\t\t\t).reduce(\n\t\t\t\t\t( acc, [ blockName, count ] ) => ( {\n\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t[ blockName ]: Math.max( count - 1, 0 ),\n\t\t\t\t\t} ),\n\t\t\t\t\t{}\n\t\t\t\t);\n\n\t\t\t\t// Persist block type impression to JavaScript store\n\t\t\t\tupdateSettings( {\n\t\t\t\t\timpressions: decrementedImpressions,\n\t\t\t\t} );\n\n\t\t\t\t// Persist block type impression count to native app store\n\t\t\t\tsetBlockTypeImpressions( decrementedImpressions );\n\t\t\t}\n\t\t}\n\n\t\t// Surface toggle callback to parent component\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t\tthis.onInserterToggledAnnouncement( isOpen );\n\t}\n\n\tonInserterToggledAnnouncement( isOpen ) {\n\t\tAccessibilityInfo.isScreenReaderEnabled().done( ( isEnabled ) => {\n\t\t\tif ( isEnabled ) {\n\t\t\t\tconst isIOS = Platform.OS === 'ios';\n\t\t\t\tconst announcement = isOpen\n\t\t\t\t\t? __( 'Scrollable block menu opened. Select a block.' )\n\t\t\t\t\t: __( 'Scrollable block menu closed.' );\n\t\t\t\tdelay(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tAccessibilityInfo.announceForAccessibility(\n\t\t\t\t\t\t\tannouncement\n\t\t\t\t\t\t),\n\t\t\t\t\tisIOS ? VOICE_OVER_ANNOUNCEMENT_DELAY : 0\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown toggle element.\n\t */\n\trenderInserterToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisplayEditorOnboardingTooltip,\n\t\t\tdisabled,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tshowSeparator,\n\t\t} = this.props;\n\t\tif ( showSeparator && isOpen ) {\n\t\t\treturn <BlockInsertionPoint />;\n\t\t}\n\t\tconst style = getStylesFromColorScheme(\n\t\t\tstyles.addBlockButton,\n\t\t\tstyles.addBlockButtonDark\n\t\t);\n\n\t\tconst onPress = () => {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tdestinationRootClientId: this.props.destinationRootClientId,\n\t\t\t\t\tshouldReplaceBlock: this.shouldReplaceBlock( 'default' ),\n\t\t\t\t\tinsertionIndex: this.getInsertionIndex( 'default' ),\n\t\t\t\t},\n\t\t\t\tonToggle\n\t\t\t);\n\t\t};\n\n\t\tconst onLongPress = () => {\n\t\t\tif ( this.picker ) {\n\t\t\t\tthis.picker.presentPicker();\n\t\t\t}\n\t\t};\n\n\t\tconst onPickerSelect = ( insertionType ) => {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tdestinationRootClientId: this.props.destinationRootClientId,\n\t\t\t\t\tshouldReplaceBlock: this.shouldReplaceBlock(\n\t\t\t\t\t\tinsertionType\n\t\t\t\t\t),\n\t\t\t\t\tinsertionIndex: this.getInsertionIndex( insertionType ),\n\t\t\t\t},\n\t\t\t\tonToggle\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ renderToggle( {\n\t\t\t\t\tdisplayEditorOnboardingTooltip,\n\t\t\t\t\tonToggle: onPress,\n\t\t\t\t\tisOpen,\n\t\t\t\t\tdisabled,\n\t\t\t\t\tstyle,\n\t\t\t\t\tonLongPress,\n\t\t\t\t} ) }\n\t\t\t\t<Picker\n\t\t\t\t\tref={ ( instance ) => ( this.picker = instance ) }\n\t\t\t\t\toptions={ this.getInsertionOptions() }\n\t\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\t\thideCancelButton\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown content element.\n\t */\n\trenderContent( { onClose, isOpen } ) {\n\t\tconst { clientId, isAppender } = this.props;\n\t\tconst {\n\t\t\tdestinationRootClientId,\n\t\t\tshouldReplaceBlock,\n\t\t\tinsertionIndex,\n\t\t} = this.state;\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tisOpen={ isOpen }\n\t\t\t\tonSelect={ onClose }\n\t\t\t\tonDismiss={ onClose }\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshouldReplaceBlock={ shouldReplaceBlock }\n\t\t\t\tinsertionIndex={ insertionIndex }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderInserterToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithDispatch( ( dispatch ) => {\n\t\tconst { updateSettings } = dispatch( blockEditorStore );\n\t\treturn { updateSettings };\n\t} ),\n\twithSelect( ( select, { clientId, isAppender, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockSelectionEnd,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockIndex,\n\t\t\tgetBlock,\n\t\t\tgetSettings: getBlockEditorSettings,\n\t\t} = select( blockEditorStore );\n\n\t\tconst end = getBlockSelectionEnd();\n\t\t// `end` argument (id) can refer to the component which is removed\n\t\t// due to pressing `undo` button, that's why we need to check\n\t\t// if `getBlock( end) is valid, otherwise `null` is passed\n\t\tconst isAnyBlockSelected = ! isAppender && end && getBlock( end );\n\t\tconst destinationRootClientId = isAnyBlockSelected\n\t\t\t? getBlockRootClientId( end )\n\t\t\t: rootClientId;\n\t\tconst selectedBlockIndex = getBlockIndex(\n\t\t\tend,\n\t\t\tdestinationRootClientId\n\t\t);\n\t\tconst endOfRootIndex = getBlockOrder( rootClientId ).length;\n\t\tconst isSelectedUnmodifiedDefaultBlock = isAnyBlockSelected\n\t\t\t? isUnmodifiedDefaultBlock( getBlock( end ) )\n\t\t\t: undefined;\n\n\t\tfunction getDefaultInsertionIndex() {\n\t\t\tconst {\n\t\t\t\t__experimentalShouldInsertAtTheTop: shouldInsertAtTheTop,\n\t\t\t} = getBlockEditorSettings();\n\n\t\t\t// if post title is selected insert as first block\n\t\t\tif ( shouldInsertAtTheTop ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\tif ( clientId ) {\n\t\t\t\treturn getBlockIndex( clientId, rootClientId );\n\t\t\t}\n\n\t\t\t// If there is a selected block,\n\t\t\tif ( isAnyBlockSelected ) {\n\t\t\t\t// and the last selected block is unmodified (empty), it will be replaced\n\t\t\t\tif ( isSelectedUnmodifiedDefaultBlock ) {\n\t\t\t\t\treturn selectedBlockIndex;\n\t\t\t\t}\n\n\t\t\t\t// we insert after the selected block.\n\t\t\t\treturn selectedBlockIndex + 1;\n\t\t\t}\n\n\t\t\t// Otherwise, we insert at the end of the current rootClientId\n\t\t\treturn endOfRootIndex;\n\t\t}\n\n\t\tconst insertionIndexStart = 0;\n\n\t\tconst insertionIndexBefore = isAnyBlockSelected\n\t\t\t? selectedBlockIndex\n\t\t\t: insertionIndexStart;\n\n\t\tconst insertionIndexAfter = isAnyBlockSelected\n\t\t\t? selectedBlockIndex + 1\n\t\t\t: endOfRootIndex;\n\n\t\tconst insertionIndexEnd = endOfRootIndex;\n\n\t\treturn {\n\t\t\tblockTypeImpressions: getBlockEditorSettings().impressions,\n\t\t\tdisplayEditorOnboardingTooltip:\n\t\t\t\tgetBlockEditorSettings().editorOnboarding &&\n\t\t\t\tgetBlockEditorSettings().firstGutenbergEditorSession,\n\t\t\tdestinationRootClientId,\n\t\t\tinsertionIndexDefault: getDefaultInsertionIndex(),\n\t\t\tinsertionIndexBefore,\n\t\t\tinsertionIndexAfter,\n\t\t\tinsertionIndexStart,\n\t\t\tinsertionIndexEnd,\n\t\t\tisAnyBlockSelected: !! isAnyBlockSelected,\n\t\t\tisSelectedBlockReplaceable: isSelectedUnmodifiedDefaultBlock,\n\t\t};\n\t} ),\n\n\twithPreferredColorScheme,\n] )( Inserter );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.native.js"],"names":["VOICE_OVER_ANNOUNCEMENT_DELAY","defaultRenderToggle","onToggle","disabled","style","onLongPress","plusCircleFilled","color","hint","testID","Inserter","Component","constructor","arguments","bind","renderInserterToggle","renderContent","getInsertionOptions","addBeforeOption","value","label","icon","plusCircle","replaceCurrentOption","addAfterOption","addToBeginningOption","insertBefore","addToEndOption","insertAfter","isAnyBlockSelected","isSelectedBlockReplaceable","props","getInsertionIndex","insertionType","insertionIndexDefault","insertionIndexStart","insertionIndexBefore","insertionIndexAfter","insertionIndexEnd","shouldReplaceBlock","isOpen","blockTypeImpressions","updateSettings","impressionsRemain","Object","values","some","count","decrementedImpressions","entries","reduce","acc","blockName","Math","max","impressions","onInserterToggledAnnouncement","AccessibilityInfo","isScreenReaderEnabled","done","isEnabled","isIOS","Platform","OS","announcement","announceForAccessibility","renderToggle","getStylesFromColorScheme","showSeparator","styles","addBlockButton","addBlockButtonDark","onPress","setState","destinationRootClientId","insertionIndex","picker","presentPicker","onPickerSelect","instance","onClose","clientId","isAppender","state","render","dispatch","blockEditorStore","select","rootClientId","getBlockRootClientId","getBlockSelectionEnd","getBlockOrder","getBlockIndex","getBlock","getSettings","getBlockEditorSettings","end","selectedBlockIndex","endOfRootIndex","length","isSelectedUnmodifiedDefaultBlock","undefined","getDefaultInsertionIndex","__experimentalShouldInsertAtTheTop","shouldInsertAtTheTop","withPreferredColorScheme"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { AccessibilityInfo, Platform } from 'react-native';\nimport { delay } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Dropdown, ToolbarButton, Picker } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\nimport {\n\tIcon,\n\tplusCircle,\n\tplusCircleFilled,\n\tinsertAfter,\n\tinsertBefore,\n} from '@wordpress/icons';\nimport { setBlockTypeImpressions } from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport InserterMenu from './menu';\nimport BlockInsertionPoint from '../block-list/insertion-point';\nimport { store as blockEditorStore } from '../../store';\n\nconst VOICE_OVER_ANNOUNCEMENT_DELAY = 1000;\n\nconst defaultRenderToggle = ( { onToggle, disabled, style, onLongPress } ) => (\n\t<ToolbarButton\n\t\ttitle={ __( 'Add block' ) }\n\t\ticon={\n\t\t\t<Icon\n\t\t\t\ticon={ plusCircleFilled }\n\t\t\t\tstyle={ style }\n\t\t\t\tcolor={ style.color }\n\t\t\t/>\n\t\t}\n\t\tonClick={ onToggle }\n\t\textraProps={ {\n\t\t\thint: __( 'Double tap to add a block' ),\n\t\t\t// testID is present to disambiguate this element for native UI tests. It's not\n\t\t\t// usually required for components. See: https://git.io/JeQ7G.\n\t\t\ttestID: 'add-block-button',\n\t\t\tonLongPress,\n\t\t} }\n\t\tisDisabled={ disabled }\n\t/>\n);\n\nexport class Inserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderInserterToggle = this.renderInserterToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tgetInsertionOptions() {\n\t\tconst addBeforeOption = {\n\t\t\tvalue: 'before',\n\t\t\tlabel: __( 'Add Block Before' ),\n\t\t\ticon: plusCircle,\n\t\t};\n\n\t\tconst replaceCurrentOption = {\n\t\t\tvalue: 'replace',\n\t\t\tlabel: __( 'Replace Current Block' ),\n\t\t\ticon: plusCircleFilled,\n\t\t};\n\n\t\tconst addAfterOption = {\n\t\t\tvalue: 'after',\n\t\t\tlabel: __( 'Add Block After' ),\n\t\t\ticon: plusCircle,\n\t\t};\n\n\t\tconst addToBeginningOption = {\n\t\t\tvalue: 'start',\n\t\t\tlabel: __( 'Add To Beginning' ),\n\t\t\ticon: insertBefore,\n\t\t};\n\n\t\tconst addToEndOption = {\n\t\t\tvalue: 'end',\n\t\t\tlabel: __( 'Add To End' ),\n\t\t\ticon: insertAfter,\n\t\t};\n\n\t\tconst { isAnyBlockSelected, isSelectedBlockReplaceable } = this.props;\n\t\tif ( isAnyBlockSelected ) {\n\t\t\tif ( isSelectedBlockReplaceable ) {\n\t\t\t\treturn [\n\t\t\t\t\taddToBeginningOption,\n\t\t\t\t\taddBeforeOption,\n\t\t\t\t\treplaceCurrentOption,\n\t\t\t\t\taddAfterOption,\n\t\t\t\t\taddToEndOption,\n\t\t\t\t];\n\t\t\t}\n\t\t\treturn [\n\t\t\t\taddToBeginningOption,\n\t\t\t\taddBeforeOption,\n\t\t\t\taddAfterOption,\n\t\t\t\taddToEndOption,\n\t\t\t];\n\t\t}\n\t\treturn [ addToBeginningOption, addToEndOption ];\n\t}\n\n\tgetInsertionIndex( insertionType ) {\n\t\tconst {\n\t\t\tinsertionIndexDefault,\n\t\t\tinsertionIndexStart,\n\t\t\tinsertionIndexBefore,\n\t\t\tinsertionIndexAfter,\n\t\t\tinsertionIndexEnd,\n\t\t} = this.props;\n\t\tif ( insertionType === 'start' ) {\n\t\t\treturn insertionIndexStart;\n\t\t}\n\t\tif ( insertionType === 'before' || insertionType === 'replace' ) {\n\t\t\treturn insertionIndexBefore;\n\t\t}\n\t\tif ( insertionType === 'after' ) {\n\t\t\treturn insertionIndexAfter;\n\t\t}\n\t\tif ( insertionType === 'end' ) {\n\t\t\treturn insertionIndexEnd;\n\t\t}\n\t\treturn insertionIndexDefault;\n\t}\n\n\tshouldReplaceBlock( insertionType ) {\n\t\tconst { isSelectedBlockReplaceable } = this.props;\n\t\tif ( insertionType === 'replace' ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( insertionType === 'default' && isSelectedBlockReplaceable ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { blockTypeImpressions, onToggle, updateSettings } = this.props;\n\n\t\tif ( ! isOpen ) {\n\t\t\tconst impressionsRemain = Object.values(\n\t\t\t\tblockTypeImpressions\n\t\t\t).some( ( count ) => count > 0 );\n\n\t\t\tif ( impressionsRemain ) {\n\t\t\t\tconst decrementedImpressions = Object.entries(\n\t\t\t\t\tblockTypeImpressions\n\t\t\t\t).reduce(\n\t\t\t\t\t( acc, [ blockName, count ] ) => ( {\n\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t[ blockName ]: Math.max( count - 1, 0 ),\n\t\t\t\t\t} ),\n\t\t\t\t\t{}\n\t\t\t\t);\n\n\t\t\t\t// Persist block type impression to JavaScript store\n\t\t\t\tupdateSettings( {\n\t\t\t\t\timpressions: decrementedImpressions,\n\t\t\t\t} );\n\n\t\t\t\t// Persist block type impression count to native app store\n\t\t\t\tsetBlockTypeImpressions( decrementedImpressions );\n\t\t\t}\n\t\t}\n\n\t\t// Surface toggle callback to parent component\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t\tthis.onInserterToggledAnnouncement( isOpen );\n\t}\n\n\tonInserterToggledAnnouncement( isOpen ) {\n\t\tAccessibilityInfo.isScreenReaderEnabled().done( ( isEnabled ) => {\n\t\t\tif ( isEnabled ) {\n\t\t\t\tconst isIOS = Platform.OS === 'ios';\n\t\t\t\tconst announcement = isOpen\n\t\t\t\t\t? __( 'Scrollable block menu opened. Select a block.' )\n\t\t\t\t\t: __( 'Scrollable block menu closed.' );\n\t\t\t\tdelay(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tAccessibilityInfo.announceForAccessibility(\n\t\t\t\t\t\t\tannouncement\n\t\t\t\t\t\t),\n\t\t\t\t\tisIOS ? VOICE_OVER_ANNOUNCEMENT_DELAY : 0\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown toggle element.\n\t */\n\trenderInserterToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tshowSeparator,\n\t\t} = this.props;\n\t\tif ( showSeparator && isOpen ) {\n\t\t\treturn <BlockInsertionPoint />;\n\t\t}\n\t\tconst style = getStylesFromColorScheme(\n\t\t\tstyles.addBlockButton,\n\t\t\tstyles.addBlockButtonDark\n\t\t);\n\n\t\tconst onPress = () => {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tdestinationRootClientId: this.props.destinationRootClientId,\n\t\t\t\t\tshouldReplaceBlock: this.shouldReplaceBlock( 'default' ),\n\t\t\t\t\tinsertionIndex: this.getInsertionIndex( 'default' ),\n\t\t\t\t},\n\t\t\t\tonToggle\n\t\t\t);\n\t\t};\n\n\t\tconst onLongPress = () => {\n\t\t\tif ( this.picker ) {\n\t\t\t\tthis.picker.presentPicker();\n\t\t\t}\n\t\t};\n\n\t\tconst onPickerSelect = ( insertionType ) => {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tdestinationRootClientId: this.props.destinationRootClientId,\n\t\t\t\t\tshouldReplaceBlock: this.shouldReplaceBlock(\n\t\t\t\t\t\tinsertionType\n\t\t\t\t\t),\n\t\t\t\t\tinsertionIndex: this.getInsertionIndex( insertionType ),\n\t\t\t\t},\n\t\t\t\tonToggle\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ renderToggle( {\n\t\t\t\t\tonToggle: onPress,\n\t\t\t\t\tisOpen,\n\t\t\t\t\tdisabled,\n\t\t\t\t\tstyle,\n\t\t\t\t\tonLongPress,\n\t\t\t\t} ) }\n\t\t\t\t<Picker\n\t\t\t\t\tref={ ( instance ) => ( this.picker = instance ) }\n\t\t\t\t\toptions={ this.getInsertionOptions() }\n\t\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\t\thideCancelButton\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown content element.\n\t */\n\trenderContent( { onClose, isOpen } ) {\n\t\tconst { clientId, isAppender } = this.props;\n\t\tconst {\n\t\t\tdestinationRootClientId,\n\t\t\tshouldReplaceBlock,\n\t\t\tinsertionIndex,\n\t\t} = this.state;\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tisOpen={ isOpen }\n\t\t\t\tonSelect={ onClose }\n\t\t\t\tonDismiss={ onClose }\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshouldReplaceBlock={ shouldReplaceBlock }\n\t\t\t\tinsertionIndex={ insertionIndex }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderInserterToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithDispatch( ( dispatch ) => {\n\t\tconst { updateSettings } = dispatch( blockEditorStore );\n\t\treturn { updateSettings };\n\t} ),\n\twithSelect( ( select, { clientId, isAppender, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockSelectionEnd,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockIndex,\n\t\t\tgetBlock,\n\t\t\tgetSettings: getBlockEditorSettings,\n\t\t} = select( blockEditorStore );\n\n\t\tconst end = getBlockSelectionEnd();\n\t\t// `end` argument (id) can refer to the component which is removed\n\t\t// due to pressing `undo` button, that's why we need to check\n\t\t// if `getBlock( end) is valid, otherwise `null` is passed\n\t\tconst isAnyBlockSelected = ! isAppender && end && getBlock( end );\n\t\tconst destinationRootClientId = isAnyBlockSelected\n\t\t\t? getBlockRootClientId( end )\n\t\t\t: rootClientId;\n\t\tconst selectedBlockIndex = getBlockIndex(\n\t\t\tend,\n\t\t\tdestinationRootClientId\n\t\t);\n\t\tconst endOfRootIndex = getBlockOrder( rootClientId ).length;\n\t\tconst isSelectedUnmodifiedDefaultBlock = isAnyBlockSelected\n\t\t\t? isUnmodifiedDefaultBlock( getBlock( end ) )\n\t\t\t: undefined;\n\n\t\tfunction getDefaultInsertionIndex() {\n\t\t\tconst {\n\t\t\t\t__experimentalShouldInsertAtTheTop: shouldInsertAtTheTop,\n\t\t\t} = getBlockEditorSettings();\n\n\t\t\t// if post title is selected insert as first block\n\t\t\tif ( shouldInsertAtTheTop ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\tif ( clientId ) {\n\t\t\t\treturn getBlockIndex( clientId, rootClientId );\n\t\t\t}\n\n\t\t\t// If there is a selected block,\n\t\t\tif ( isAnyBlockSelected ) {\n\t\t\t\t// and the last selected block is unmodified (empty), it will be replaced\n\t\t\t\tif ( isSelectedUnmodifiedDefaultBlock ) {\n\t\t\t\t\treturn selectedBlockIndex;\n\t\t\t\t}\n\n\t\t\t\t// we insert after the selected block.\n\t\t\t\treturn selectedBlockIndex + 1;\n\t\t\t}\n\n\t\t\t// Otherwise, we insert at the end of the current rootClientId\n\t\t\treturn endOfRootIndex;\n\t\t}\n\n\t\tconst insertionIndexStart = 0;\n\n\t\tconst insertionIndexBefore = isAnyBlockSelected\n\t\t\t? selectedBlockIndex\n\t\t\t: insertionIndexStart;\n\n\t\tconst insertionIndexAfter = isAnyBlockSelected\n\t\t\t? selectedBlockIndex + 1\n\t\t\t: endOfRootIndex;\n\n\t\tconst insertionIndexEnd = endOfRootIndex;\n\n\t\treturn {\n\t\t\tblockTypeImpressions: getBlockEditorSettings().impressions,\n\t\t\tdestinationRootClientId,\n\t\t\tinsertionIndexDefault: getDefaultInsertionIndex(),\n\t\t\tinsertionIndexBefore,\n\t\t\tinsertionIndexAfter,\n\t\t\tinsertionIndexStart,\n\t\t\tinsertionIndexEnd,\n\t\t\tisAnyBlockSelected: !! isAnyBlockSelected,\n\t\t\tisSelectedBlockReplaceable: isSelectedUnmodifiedDefaultBlock,\n\t\t};\n\t} ),\n\n\twithPreferredColorScheme,\n] )( Inserter );\n"]}
@@ -35,6 +35,7 @@ function InserterLibrary({
35
35
  showInserterHelpPanel,
36
36
  showMostUsedBlocks = false,
37
37
  __experimentalInsertionIndex,
38
+ __experimentalFilterValue,
38
39
  onSelect = _lodash.noop,
39
40
  shouldFocusBlock = false
40
41
  }) {
@@ -52,6 +53,7 @@ function InserterLibrary({
52
53
  showInserterHelpPanel: showInserterHelpPanel,
53
54
  showMostUsedBlocks: showMostUsedBlocks,
54
55
  __experimentalInsertionIndex: __experimentalInsertionIndex,
56
+ __experimentalFilterValue: __experimentalFilterValue,
55
57
  shouldFocusBlock: shouldFocusBlock
56
58
  });
57
59
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/library.js"],"names":["InserterLibrary","rootClientId","clientId","isAppender","showInserterHelpPanel","showMostUsedBlocks","__experimentalInsertionIndex","onSelect","noop","shouldFocusBlock","destinationRootClientId","select","getBlockRootClientId","blockEditorStore","undefined"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AAKA;;AACA;;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AAIA,SAASA,eAAT,CAA0B;AACzBC,EAAAA,YADyB;AAEzBC,EAAAA,QAFyB;AAGzBC,EAAAA,UAHyB;AAIzBC,EAAAA,qBAJyB;AAKzBC,EAAAA,kBAAkB,GAAG,KALI;AAMzBC,EAAAA,4BANyB;AAOzBC,EAAAA,QAAQ,GAAGC,YAPc;AAQzBC,EAAAA,gBAAgB,GAAG;AARM,CAA1B,EASI;AACH,QAAMC,uBAAuB,GAAG,qBAC7BC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAA2BD,MAAM,CAAEE,YAAF,CAAvC;AAEA,WACCZ,YAAY,IAAIW,oBAAoB,CAAEV,QAAF,CAApC,IAAoDY,SADrD;AAGA,GAP8B,EAQ/B,CAAEZ,QAAF,EAAYD,YAAZ,CAR+B,CAAhC;AAWA,SACC,4BAAC,aAAD;AACC,IAAA,QAAQ,EAAGM,QADZ;AAEC,IAAA,YAAY,EAAGG,uBAFhB;AAGC,IAAA,QAAQ,EAAGR,QAHZ;AAIC,IAAA,UAAU,EAAGC,UAJd;AAKC,IAAA,qBAAqB,EAAGC,qBALzB;AAMC,IAAA,kBAAkB,EAAGC,kBANtB;AAOC,IAAA,4BAA4B,EAAGC,4BAPhC;AAQC,IAAA,gBAAgB,EAAGG;AARpB,IADD;AAYA;;eAEcT,e","sourcesContent":["/**\n * External dependencies\n */\nimport { noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InserterMenu from './menu';\nimport { store as blockEditorStore } from '../../store';\n\nfunction InserterLibrary( {\n\trootClientId,\n\tclientId,\n\tisAppender,\n\tshowInserterHelpPanel,\n\tshowMostUsedBlocks = false,\n\t__experimentalInsertionIndex,\n\tonSelect = noop,\n\tshouldFocusBlock = false,\n} ) {\n\tconst destinationRootClientId = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\n\t\t\treturn (\n\t\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined\n\t\t\t);\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\treturn (\n\t\t<InserterMenu\n\t\t\tonSelect={ onSelect }\n\t\t\trootClientId={ destinationRootClientId }\n\t\t\tclientId={ clientId }\n\t\t\tisAppender={ isAppender }\n\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t__experimentalInsertionIndex={ __experimentalInsertionIndex }\n\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t/>\n\t);\n}\n\nexport default InserterLibrary;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/library.js"],"names":["InserterLibrary","rootClientId","clientId","isAppender","showInserterHelpPanel","showMostUsedBlocks","__experimentalInsertionIndex","__experimentalFilterValue","onSelect","noop","shouldFocusBlock","destinationRootClientId","select","getBlockRootClientId","blockEditorStore","undefined"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AAKA;;AACA;;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AAIA,SAASA,eAAT,CAA0B;AACzBC,EAAAA,YADyB;AAEzBC,EAAAA,QAFyB;AAGzBC,EAAAA,UAHyB;AAIzBC,EAAAA,qBAJyB;AAKzBC,EAAAA,kBAAkB,GAAG,KALI;AAMzBC,EAAAA,4BANyB;AAOzBC,EAAAA,yBAPyB;AAQzBC,EAAAA,QAAQ,GAAGC,YARc;AASzBC,EAAAA,gBAAgB,GAAG;AATM,CAA1B,EAUI;AACH,QAAMC,uBAAuB,GAAG,qBAC7BC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAA2BD,MAAM,CAAEE,YAAF,CAAvC;AAEA,WACCb,YAAY,IAAIY,oBAAoB,CAAEX,QAAF,CAApC,IAAoDa,SADrD;AAGA,GAP8B,EAQ/B,CAAEb,QAAF,EAAYD,YAAZ,CAR+B,CAAhC;AAWA,SACC,4BAAC,aAAD;AACC,IAAA,QAAQ,EAAGO,QADZ;AAEC,IAAA,YAAY,EAAGG,uBAFhB;AAGC,IAAA,QAAQ,EAAGT,QAHZ;AAIC,IAAA,UAAU,EAAGC,UAJd;AAKC,IAAA,qBAAqB,EAAGC,qBALzB;AAMC,IAAA,kBAAkB,EAAGC,kBANtB;AAOC,IAAA,4BAA4B,EAAGC,4BAPhC;AAQC,IAAA,yBAAyB,EAAGC,yBAR7B;AASC,IAAA,gBAAgB,EAAGG;AATpB,IADD;AAaA;;eAEcV,e","sourcesContent":["/**\n * External dependencies\n */\nimport { noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InserterMenu from './menu';\nimport { store as blockEditorStore } from '../../store';\n\nfunction InserterLibrary( {\n\trootClientId,\n\tclientId,\n\tisAppender,\n\tshowInserterHelpPanel,\n\tshowMostUsedBlocks = false,\n\t__experimentalInsertionIndex,\n\t__experimentalFilterValue,\n\tonSelect = noop,\n\tshouldFocusBlock = false,\n} ) {\n\tconst destinationRootClientId = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\n\t\t\treturn (\n\t\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined\n\t\t\t);\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\treturn (\n\t\t<InserterMenu\n\t\t\tonSelect={ onSelect }\n\t\t\trootClientId={ destinationRootClientId }\n\t\t\tclientId={ clientId }\n\t\t\tisAppender={ isAppender }\n\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t__experimentalInsertionIndex={ __experimentalInsertionIndex }\n\t\t\t__experimentalFilterValue={ __experimentalFilterValue }\n\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t/>\n\t);\n}\n\nexport default InserterLibrary;\n"]}
@@ -48,9 +48,10 @@ function InserterMenu({
48
48
  onSelect,
49
49
  showInserterHelpPanel,
50
50
  showMostUsedBlocks,
51
+ __experimentalFilterValue = '',
51
52
  shouldFocusBlock = true
52
53
  }) {
53
- const [filterValue, setFilterValue] = (0, _element.useState)('');
54
+ const [filterValue, setFilterValue] = (0, _element.useState)(__experimentalFilterValue);
54
55
  const [hoveredItem, setHoveredItem] = (0, _element.useState)(null);
55
56
  const [selectedPatternCategory, setSelectedPatternCategory] = (0, _element.useState)(null);
56
57
  const [destinationRootClientId, onInsertBlocks, onToggleInsertionPoint] = (0, _useInsertionPoint.default)({
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/menu.js"],"names":["InserterMenu","rootClientId","clientId","isAppender","__experimentalInsertionIndex","onSelect","showInserterHelpPanel","showMostUsedBlocks","shouldFocusBlock","filterValue","setFilterValue","hoveredItem","setHoveredItem","selectedPatternCategory","setSelectedPatternCategory","destinationRootClientId","onInsertBlocks","onToggleInsertionPoint","insertionIndex","showPatterns","hasReusableBlocks","select","__experimentalGetAllowedPatterns","getSettings","blockEditorStore","length","__experimentalReusableBlocks","onInsert","blocks","meta","shouldForceFocusBlock","onInsertPattern","patternName","onHover","item","onClickPatternCategory","patternCategory","blocksTab","patternsTab","reusableBlocksTab","getCurrentTab","tab","name","value"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useCallback, useMemo } from '@wordpress/element';\nimport { VisuallyHidden, SearchControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport Tips from './tips';\nimport InserterPreviewPanel from './preview-panel';\nimport BlockTypesTab from './block-types-tab';\nimport BlockPatternsTabs from './block-patterns-tab';\nimport ReusableBlocksTab from './reusable-blocks-tab';\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport InserterTabs from './tabs';\nimport { store as blockEditorStore } from '../../store';\n\nfunction InserterMenu( {\n\trootClientId,\n\tclientId,\n\tisAppender,\n\t__experimentalInsertionIndex,\n\tonSelect,\n\tshowInserterHelpPanel,\n\tshowMostUsedBlocks,\n\tshouldFocusBlock = true,\n} ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ hoveredItem, setHoveredItem ] = useState( null );\n\tconst [ selectedPatternCategory, setSelectedPatternCategory ] = useState(\n\t\tnull\n\t);\n\n\tconst [\n\t\tdestinationRootClientId,\n\t\tonInsertBlocks,\n\t\tonToggleInsertionPoint,\n\t] = useInsertionPoint( {\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\tinsertionIndex: __experimentalInsertionIndex,\n\t\tshouldFocusBlock,\n\t} );\n\tconst { showPatterns, hasReusableBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __experimentalGetAllowedPatterns, getSettings } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tshowPatterns: !! __experimentalGetAllowedPatterns(\n\t\t\t\t\tdestinationRootClientId\n\t\t\t\t).length,\n\t\t\t\thasReusableBlocks: !! getSettings().__experimentalReusableBlocks\n\t\t\t\t\t?.length,\n\t\t\t};\n\t\t},\n\t\t[ destinationRootClientId ]\n\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 onClickPatternCategory = useCallback(\n\t\t( patternCategory ) => {\n\t\t\tsetSelectedPatternCategory( patternCategory );\n\t\t},\n\t\t[ setSelectedPatternCategory ]\n\t);\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\tfilterValue,\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<BlockPatternsTabs\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\tonClickCategory={ onClickPatternCategory }\n\t\t\t\tselectedCategory={ selectedPatternCategory }\n\t\t\t/>\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]\n\t);\n\n\tconst reusableBlocksTab = useMemo(\n\t\t() => (\n\t\t\t<ReusableBlocksTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t\tonHover={ onHover }\n\t\t\t/>\n\t\t),\n\t\t[ destinationRootClientId, onInsert, onHover ]\n\t);\n\n\tconst getCurrentTab = useCallback(\n\t\t( tab ) => {\n\t\t\tif ( tab.name === 'blocks' ) {\n\t\t\t\treturn blocksTab;\n\t\t\t} else if ( tab.name === 'patterns' ) {\n\t\t\t\treturn patternsTab;\n\t\t\t}\n\t\t\treturn reusableBlocksTab;\n\t\t},\n\t\t[ blocksTab, patternsTab, reusableBlocksTab ]\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__menu\">\n\t\t\t<div className=\"block-editor-inserter__main-area\">\n\t\t\t\t{ /* the following div is necessary to fix the sticky position of the search form */ }\n\t\t\t\t<div className=\"block-editor-inserter__content\">\n\t\t\t\t\t<SearchControl\n\t\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tif ( hoveredItem ) setHoveredItem( null );\n\t\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ !! filterValue && (\n\t\t\t\t\t\t<InserterSearchResults\n\t\t\t\t\t\t\tfilterValue={ filterValue }\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\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) }\n\t\t\t\t\t{ ! filterValue && ( showPatterns || hasReusableBlocks ) && (\n\t\t\t\t\t\t<InserterTabs\n\t\t\t\t\t\t\tshowPatterns={ showPatterns }\n\t\t\t\t\t\t\tshowReusableBlocks={ hasReusableBlocks }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ getCurrentTab }\n\t\t\t\t\t\t</InserterTabs>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! filterValue &&\n\t\t\t\t\t\t! showPatterns &&\n\t\t\t\t\t\t! hasReusableBlocks &&\n\t\t\t\t\t\tblocksTab }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{ showInserterHelpPanel && hoveredItem && (\n\t\t\t\t<InserterPreviewPanel item={ hoveredItem } />\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default InserterMenu;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/menu.js"],"names":["InserterMenu","rootClientId","clientId","isAppender","__experimentalInsertionIndex","onSelect","showInserterHelpPanel","showMostUsedBlocks","__experimentalFilterValue","shouldFocusBlock","filterValue","setFilterValue","hoveredItem","setHoveredItem","selectedPatternCategory","setSelectedPatternCategory","destinationRootClientId","onInsertBlocks","onToggleInsertionPoint","insertionIndex","showPatterns","hasReusableBlocks","select","__experimentalGetAllowedPatterns","getSettings","blockEditorStore","length","__experimentalReusableBlocks","onInsert","blocks","meta","shouldForceFocusBlock","onInsertPattern","patternName","onHover","item","onClickPatternCategory","patternCategory","blocksTab","patternsTab","reusableBlocksTab","getCurrentTab","tab","name","value"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useCallback, useMemo } from '@wordpress/element';\nimport { VisuallyHidden, SearchControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport Tips from './tips';\nimport InserterPreviewPanel from './preview-panel';\nimport BlockTypesTab from './block-types-tab';\nimport BlockPatternsTabs from './block-patterns-tab';\nimport ReusableBlocksTab from './reusable-blocks-tab';\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport InserterTabs from './tabs';\nimport { store as blockEditorStore } from '../../store';\n\nfunction InserterMenu( {\n\trootClientId,\n\tclientId,\n\tisAppender,\n\t__experimentalInsertionIndex,\n\tonSelect,\n\tshowInserterHelpPanel,\n\tshowMostUsedBlocks,\n\t__experimentalFilterValue = '',\n\tshouldFocusBlock = true,\n} ) {\n\tconst [ filterValue, setFilterValue ] = useState(\n\t\t__experimentalFilterValue\n\t);\n\tconst [ hoveredItem, setHoveredItem ] = useState( null );\n\tconst [ selectedPatternCategory, setSelectedPatternCategory ] = useState(\n\t\tnull\n\t);\n\n\tconst [\n\t\tdestinationRootClientId,\n\t\tonInsertBlocks,\n\t\tonToggleInsertionPoint,\n\t] = useInsertionPoint( {\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\tinsertionIndex: __experimentalInsertionIndex,\n\t\tshouldFocusBlock,\n\t} );\n\tconst { showPatterns, hasReusableBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __experimentalGetAllowedPatterns, getSettings } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tshowPatterns: !! __experimentalGetAllowedPatterns(\n\t\t\t\t\tdestinationRootClientId\n\t\t\t\t).length,\n\t\t\t\thasReusableBlocks: !! getSettings().__experimentalReusableBlocks\n\t\t\t\t\t?.length,\n\t\t\t};\n\t\t},\n\t\t[ destinationRootClientId ]\n\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 onClickPatternCategory = useCallback(\n\t\t( patternCategory ) => {\n\t\t\tsetSelectedPatternCategory( patternCategory );\n\t\t},\n\t\t[ setSelectedPatternCategory ]\n\t);\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\tfilterValue,\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<BlockPatternsTabs\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\tonClickCategory={ onClickPatternCategory }\n\t\t\t\tselectedCategory={ selectedPatternCategory }\n\t\t\t/>\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]\n\t);\n\n\tconst reusableBlocksTab = useMemo(\n\t\t() => (\n\t\t\t<ReusableBlocksTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t\tonHover={ onHover }\n\t\t\t/>\n\t\t),\n\t\t[ destinationRootClientId, onInsert, onHover ]\n\t);\n\n\tconst getCurrentTab = useCallback(\n\t\t( tab ) => {\n\t\t\tif ( tab.name === 'blocks' ) {\n\t\t\t\treturn blocksTab;\n\t\t\t} else if ( tab.name === 'patterns' ) {\n\t\t\t\treturn patternsTab;\n\t\t\t}\n\t\t\treturn reusableBlocksTab;\n\t\t},\n\t\t[ blocksTab, patternsTab, reusableBlocksTab ]\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__menu\">\n\t\t\t<div className=\"block-editor-inserter__main-area\">\n\t\t\t\t{ /* the following div is necessary to fix the sticky position of the search form */ }\n\t\t\t\t<div className=\"block-editor-inserter__content\">\n\t\t\t\t\t<SearchControl\n\t\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tif ( hoveredItem ) setHoveredItem( null );\n\t\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ !! filterValue && (\n\t\t\t\t\t\t<InserterSearchResults\n\t\t\t\t\t\t\tfilterValue={ filterValue }\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\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) }\n\t\t\t\t\t{ ! filterValue && ( showPatterns || hasReusableBlocks ) && (\n\t\t\t\t\t\t<InserterTabs\n\t\t\t\t\t\t\tshowPatterns={ showPatterns }\n\t\t\t\t\t\t\tshowReusableBlocks={ hasReusableBlocks }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ getCurrentTab }\n\t\t\t\t\t\t</InserterTabs>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! filterValue &&\n\t\t\t\t\t\t! showPatterns &&\n\t\t\t\t\t\t! hasReusableBlocks &&\n\t\t\t\t\t\tblocksTab }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{ showInserterHelpPanel && hoveredItem && (\n\t\t\t\t<InserterPreviewPanel item={ hoveredItem } />\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default InserterMenu;\n"]}
@@ -25,6 +25,8 @@ var _tabs = _interopRequireDefault(require("./tabs"));
25
25
 
26
26
  var _style = _interopRequireDefault(require("./style.scss"));
27
27
 
28
+ var _utils = require("./utils");
29
+
28
30
  /**
29
31
  * External dependencies
30
32
  */
@@ -37,7 +39,6 @@ var _style = _interopRequireDefault(require("./style.scss"));
37
39
  * Internal dependencies
38
40
  */
39
41
  const MIN_ITEMS_FOR_SEARCH = 2;
40
- const REUSABLE_BLOCKS_CATEGORY = 'reusable';
41
42
 
42
43
  function InserterMenu({
43
44
  onSelect,
@@ -49,10 +50,9 @@ function InserterMenu({
49
50
  insertionIndex
50
51
  }) {
51
52
  const [filterValue, setFilterValue] = (0, _element.useState)('');
52
- const [showTabs, setShowTabs] = (0, _element.useState)(true); // eslint-disable-next-line no-undef
53
-
54
- const [showSearchForm, setShowSearchForm] = (0, _element.useState)(__DEV__);
53
+ const [showTabs, setShowTabs] = (0, _element.useState)(true);
55
54
  const [tabIndex, setTabIndex] = (0, _element.useState)(0);
55
+ const isIOS = _reactNative.Platform.OS === 'ios';
56
56
  const {
57
57
  showInsertionPoint,
58
58
  hideInsertionPoint,
@@ -83,9 +83,9 @@ function InserterMenu({
83
83
  }
84
84
 
85
85
  const allItems = getInserterItems(targetRootClientId);
86
- const reusableBlockItems = allItems.filter(({
87
- category
88
- }) => category === REUSABLE_BLOCKS_CATEGORY);
86
+ const reusableBlockItems = (0, _utils.filterInserterItems)(allItems, {
87
+ onlyReusable: true
88
+ });
89
89
  return {
90
90
  items: allItems,
91
91
  destinationRootClientId: targetRootClientId,
@@ -113,12 +113,7 @@ function InserterMenu({
113
113
  }
114
114
  }
115
115
 
116
- showInsertionPoint(destinationRootClientId, insertionIndex); // Show search form if there are enough items to filter.
117
-
118
- if (items.length < MIN_ITEMS_FOR_SEARCH) {
119
- setShowSearchForm(false);
120
- }
121
-
116
+ showInsertionPoint(destinationRootClientId, insertionIndex);
122
117
  return hideInsertionPoint;
123
118
  }, []);
124
119
  const onClose = (0, _element.useCallback)(() => {
@@ -163,6 +158,8 @@ function InserterMenu({
163
158
  }, [setFilterValue]);
164
159
  const onKeyboardShow = (0, _element.useCallback)(() => setShowTabs(false), [setShowTabs]);
165
160
  const onKeyboardHide = (0, _element.useCallback)(() => setShowTabs(true), [setShowTabs]);
161
+ const showSearchForm = items.length > MIN_ITEMS_FOR_SEARCH;
162
+ const isFullScreen = !isIOS && showSearchForm;
166
163
  return (0, _element.createElement)(_components.BottomSheet, {
167
164
  isVisible: true,
168
165
  onClose: onClose,
@@ -176,17 +173,21 @@ function InserterMenu({
176
173
  showReusableBlocks: showReusableBlocks
177
174
  })),
178
175
  hasNavigation: true,
179
- setMinHeightToMaxHeight: showSearchForm,
180
- contentStyle: _style.default.list
176
+ setMinHeightToMaxHeight: true,
177
+ contentStyle: _style.default['inserter-menu__list'],
178
+ isFullScreen: isFullScreen,
179
+ allowDragIndicator: true
181
180
  }, (0, _element.createElement)(_components.BottomSheetConsumer, null, ({
182
181
  listProps
183
182
  }) => (0, _element.createElement)(_reactNative.TouchableHighlight, {
184
- accessible: false
183
+ accessible: false,
184
+ style: _style.default['inserter-menu__list-wrapper']
185
185
  }, !showTabs || filterValue ? (0, _element.createElement)(_searchResults.default, {
186
186
  rootClientId: rootClientId,
187
187
  filterValue: filterValue,
188
188
  onSelect: onSelectItem,
189
- listProps: listProps
189
+ listProps: listProps,
190
+ isFullScreen: isFullScreen
190
191
  }) : (0, _element.createElement)(_tabs.default, {
191
192
  rootClientId: rootClientId,
192
193
  listProps: listProps,