@wordpress/block-editor 12.9.1-next.5a1d1283.0 → 12.10.1

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 (448) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +33 -3
  3. package/build/components/block-canvas/index.js +107 -0
  4. package/build/components/block-canvas/index.js.map +1 -0
  5. package/build/components/block-inspector/index.js +4 -1
  6. package/build/components/block-inspector/index.js.map +1 -1
  7. package/build/components/block-patterns-list/index.js +28 -8
  8. package/build/components/block-patterns-list/index.js.map +1 -1
  9. package/build/components/block-patterns-paging/index.js +68 -0
  10. package/build/components/block-patterns-paging/index.js.map +1 -0
  11. package/build/components/block-settings-menu/block-settings-dropdown.js +28 -0
  12. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  13. package/build/components/block-settings-menu-controls/index.js +4 -7
  14. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  15. package/build/components/block-styles/index.js +1 -0
  16. package/build/components/block-styles/index.js.map +1 -1
  17. package/build/components/block-toolbar/block-toolbar-menu.native.js +3 -7
  18. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  19. package/build/components/block-tools/block-contextual-toolbar.js +18 -7
  20. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  21. package/build/components/block-tools/block-selection-button.js +5 -1
  22. package/build/components/block-tools/block-selection-button.js.map +1 -1
  23. package/build/components/border-radius-control/input-controls.js +1 -1
  24. package/build/components/border-radius-control/input-controls.js.map +1 -1
  25. package/build/components/border-radius-control/linked-button.js +2 -4
  26. package/build/components/border-radius-control/linked-button.js.map +1 -1
  27. package/build/components/colors/with-colors.js.map +1 -1
  28. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -21
  29. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  30. package/build/components/default-block-appender/index.native.js +20 -1
  31. package/build/components/default-block-appender/index.native.js.map +1 -1
  32. package/build/components/duotone/utils.js +68 -0
  33. package/build/components/duotone/utils.js.map +1 -1
  34. package/build/components/editor-styles/index.js +28 -9
  35. package/build/components/editor-styles/index.js.map +1 -1
  36. package/build/components/global-styles/hooks.js +2 -101
  37. package/build/components/global-styles/hooks.js.map +1 -1
  38. package/build/components/global-styles/image-settings-panel.js +61 -0
  39. package/build/components/global-styles/image-settings-panel.js.map +1 -0
  40. package/build/components/global-styles/index.js +11 -17
  41. package/build/components/global-styles/index.js.map +1 -1
  42. package/build/components/global-styles/use-global-styles-output.js +19 -15
  43. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  44. package/build/components/global-styles/utils.js +1 -1
  45. package/build/components/global-styles/utils.js.map +1 -1
  46. package/build/components/iframe/index.js +67 -33
  47. package/build/components/iframe/index.js.map +1 -1
  48. package/build/components/image-editor/use-save-image.js +2 -5
  49. package/build/components/image-editor/use-save-image.js.map +1 -1
  50. package/build/components/image-editor/use-transform-image.js +9 -9
  51. package/build/components/image-editor/use-transform-image.js.map +1 -1
  52. package/build/components/index.js +8 -12
  53. package/build/components/index.js.map +1 -1
  54. package/build/components/index.native.js +6 -5
  55. package/build/components/index.native.js.map +1 -1
  56. package/build/components/inner-blocks/use-nested-settings-update.js +13 -7
  57. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  58. package/build/components/inserter/block-patterns-explorer/explorer.js +12 -6
  59. package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  60. package/build/components/inserter/block-patterns-explorer/patterns-list.js +45 -22
  61. package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  62. package/build/components/inserter/block-patterns-explorer/sidebar.js +9 -9
  63. package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  64. package/build/components/inserter/block-patterns-filter.js +137 -0
  65. package/build/components/inserter/block-patterns-filter.js.map +1 -0
  66. package/build/components/inserter/block-patterns-tab.js +128 -42
  67. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  68. package/build/components/inserter/hooks/use-patterns-paging.js +61 -0
  69. package/build/components/inserter/hooks/use-patterns-paging.js.map +1 -0
  70. package/build/components/inserter/hooks/use-patterns-state.js +21 -10
  71. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  72. package/build/components/inserter/menu.js +13 -11
  73. package/build/components/inserter/menu.js.map +1 -1
  74. package/build/components/inserter/search-results.js +4 -3
  75. package/build/components/inserter/search-results.js.map +1 -1
  76. package/build/components/inserter/tabs.js +1 -12
  77. package/build/components/inserter/tabs.js.map +1 -1
  78. package/build/components/inspector-controls/block-support-slot-container.js +12 -1
  79. package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
  80. package/build/components/inspector-controls/fill.js +24 -13
  81. package/build/components/inspector-controls/fill.js.map +1 -1
  82. package/build/components/inspector-controls/groups.js +5 -3
  83. package/build/components/inspector-controls/groups.js.map +1 -1
  84. package/build/components/inspector-controls/slot.js +13 -0
  85. package/build/components/inspector-controls/slot.js.map +1 -1
  86. package/build/components/inspector-controls-tabs/styles-tab.js +3 -0
  87. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  88. package/build/components/link-control/index.js +12 -2
  89. package/build/components/link-control/index.js.map +1 -1
  90. package/build/components/list-view/block-select-button.js +1 -3
  91. package/build/components/list-view/block-select-button.js.map +1 -1
  92. package/build/components/list-view/block.js +13 -1
  93. package/build/components/list-view/block.js.map +1 -1
  94. package/build/components/list-view/use-block-selection.js +29 -24
  95. package/build/components/list-view/use-block-selection.js.map +1 -1
  96. package/build/components/media-placeholder/index.js +2 -2
  97. package/build/components/media-placeholder/index.js.map +1 -1
  98. package/build/components/media-placeholder/index.native.js +11 -11
  99. package/build/components/media-placeholder/index.native.js.map +1 -1
  100. package/build/components/media-replace-flow/index.js +2 -3
  101. package/build/components/media-replace-flow/index.js.map +1 -1
  102. package/build/components/media-upload/constants.js +30 -0
  103. package/build/components/media-upload/constants.js.map +1 -0
  104. package/build/components/media-upload/index.native.js +63 -53
  105. package/build/components/media-upload/index.native.js.map +1 -1
  106. package/build/components/preview-options/index.js +1 -1
  107. package/build/components/preview-options/index.js.map +1 -1
  108. package/build/components/rich-text/index.js +34 -35
  109. package/build/components/rich-text/index.js.map +1 -1
  110. package/build/components/rich-text/index.native.js +14 -32
  111. package/build/components/rich-text/index.native.js.map +1 -1
  112. package/build/components/rich-text/multiline.js +95 -0
  113. package/build/components/rich-text/multiline.js.map +1 -0
  114. package/build/components/rich-text/split-value.js +10 -16
  115. package/build/components/rich-text/split-value.js.map +1 -1
  116. package/build/components/rich-text/use-enter.js +31 -40
  117. package/build/components/rich-text/use-enter.js.map +1 -1
  118. package/build/components/rich-text/use-paste-handler.js +18 -33
  119. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  120. package/build/components/spacing-sizes-control/utils.js +1 -1
  121. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  122. package/build/components/use-block-commands/index.js +30 -18
  123. package/build/components/use-block-commands/index.js.map +1 -1
  124. package/build/components/use-block-display-information/index.js +5 -2
  125. package/build/components/use-block-display-information/index.js.map +1 -1
  126. package/build/hooks/background.js +263 -0
  127. package/build/hooks/background.js.map +1 -0
  128. package/build/hooks/block-hooks.js +188 -0
  129. package/build/hooks/block-hooks.js.map +1 -0
  130. package/build/hooks/block-rename-ui.js +161 -0
  131. package/build/hooks/block-rename-ui.js.map +1 -0
  132. package/build/hooks/duotone.js +29 -42
  133. package/build/hooks/duotone.js.map +1 -1
  134. package/build/hooks/index.js +2 -2
  135. package/build/hooks/index.js.map +1 -1
  136. package/build/hooks/layout.js +31 -14
  137. package/build/hooks/layout.js.map +1 -1
  138. package/build/hooks/position.js +4 -2
  139. package/build/hooks/position.js.map +1 -1
  140. package/build/hooks/style.js +10 -3
  141. package/build/hooks/style.js.map +1 -1
  142. package/build/private-apis.js +2 -0
  143. package/build/private-apis.js.map +1 -1
  144. package/build/store/actions.js +33 -10
  145. package/build/store/actions.js.map +1 -1
  146. package/build/store/private-actions.js +42 -8
  147. package/build/store/private-actions.js.map +1 -1
  148. package/build/store/private-selectors.js +25 -3
  149. package/build/store/private-selectors.js.map +1 -1
  150. package/build/store/reducer.js +43 -1
  151. package/build/store/reducer.js.map +1 -1
  152. package/build/store/selectors.js +84 -23
  153. package/build/store/selectors.js.map +1 -1
  154. package/build/store/utils.js +0 -4
  155. package/build/store/utils.js.map +1 -1
  156. package/build-module/components/block-canvas/index.js +97 -0
  157. package/build-module/components/block-canvas/index.js.map +1 -0
  158. package/build-module/components/block-inspector/index.js +4 -1
  159. package/build-module/components/block-inspector/index.js.map +1 -1
  160. package/build-module/components/block-patterns-list/index.js +30 -10
  161. package/build-module/components/block-patterns-list/index.js.map +1 -1
  162. package/build-module/components/block-patterns-paging/index.js +61 -0
  163. package/build-module/components/block-patterns-paging/index.js.map +1 -0
  164. package/build-module/components/block-settings-menu/block-settings-dropdown.js +28 -0
  165. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  166. package/build-module/components/block-settings-menu-controls/index.js +4 -7
  167. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  168. package/build-module/components/block-styles/index.js +1 -0
  169. package/build-module/components/block-styles/index.js.map +1 -1
  170. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +3 -7
  171. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  172. package/build-module/components/block-tools/block-contextual-toolbar.js +18 -7
  173. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  174. package/build-module/components/block-tools/block-selection-button.js +5 -1
  175. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  176. package/build-module/components/border-radius-control/input-controls.js +1 -1
  177. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  178. package/build-module/components/border-radius-control/linked-button.js +2 -4
  179. package/build-module/components/border-radius-control/linked-button.js.map +1 -1
  180. package/build-module/components/colors/with-colors.js.map +1 -1
  181. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -21
  182. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  183. package/build-module/components/default-block-appender/index.native.js +20 -1
  184. package/build-module/components/default-block-appender/index.native.js.map +1 -1
  185. package/build-module/components/duotone/utils.js +65 -0
  186. package/build-module/components/duotone/utils.js.map +1 -1
  187. package/build-module/components/editor-styles/index.js +28 -9
  188. package/build-module/components/editor-styles/index.js.map +1 -1
  189. package/build-module/components/global-styles/hooks.js +3 -100
  190. package/build-module/components/global-styles/hooks.js.map +1 -1
  191. package/build-module/components/global-styles/image-settings-panel.js +53 -0
  192. package/build-module/components/global-styles/image-settings-panel.js.map +1 -0
  193. package/build-module/components/global-styles/index.js +2 -2
  194. package/build-module/components/global-styles/index.js.map +1 -1
  195. package/build-module/components/global-styles/use-global-styles-output.js +18 -16
  196. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  197. package/build-module/components/global-styles/utils.js +1 -1
  198. package/build-module/components/global-styles/utils.js.map +1 -1
  199. package/build-module/components/iframe/index.js +66 -33
  200. package/build-module/components/iframe/index.js.map +1 -1
  201. package/build-module/components/image-editor/use-save-image.js +2 -5
  202. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  203. package/build-module/components/image-editor/use-transform-image.js +9 -9
  204. package/build-module/components/image-editor/use-transform-image.js.map +1 -1
  205. package/build-module/components/index.js +1 -1
  206. package/build-module/components/index.js.map +1 -1
  207. package/build-module/components/index.native.js +2 -1
  208. package/build-module/components/index.native.js.map +1 -1
  209. package/build-module/components/inner-blocks/use-nested-settings-update.js +14 -8
  210. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  211. package/build-module/components/inserter/block-patterns-explorer/explorer.js +12 -6
  212. package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  213. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +47 -24
  214. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  215. package/build-module/components/inserter/block-patterns-explorer/sidebar.js +9 -9
  216. package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  217. package/build-module/components/inserter/block-patterns-filter.js +128 -0
  218. package/build-module/components/inserter/block-patterns-filter.js.map +1 -0
  219. package/build-module/components/inserter/block-patterns-tab.js +125 -44
  220. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  221. package/build-module/components/inserter/hooks/use-patterns-paging.js +54 -0
  222. package/build-module/components/inserter/hooks/use-patterns-paging.js.map +1 -0
  223. package/build-module/components/inserter/hooks/use-patterns-state.js +22 -10
  224. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  225. package/build-module/components/inserter/menu.js +13 -11
  226. package/build-module/components/inserter/menu.js.map +1 -1
  227. package/build-module/components/inserter/search-results.js +4 -3
  228. package/build-module/components/inserter/search-results.js.map +1 -1
  229. package/build-module/components/inserter/tabs.js +1 -12
  230. package/build-module/components/inserter/tabs.js.map +1 -1
  231. package/build-module/components/inspector-controls/block-support-slot-container.js +13 -2
  232. package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -1
  233. package/build-module/components/inspector-controls/fill.js +25 -14
  234. package/build-module/components/inspector-controls/fill.js.map +1 -1
  235. package/build-module/components/inspector-controls/groups.js +5 -3
  236. package/build-module/components/inspector-controls/groups.js.map +1 -1
  237. package/build-module/components/inspector-controls/slot.js +15 -1
  238. package/build-module/components/inspector-controls/slot.js.map +1 -1
  239. package/build-module/components/inspector-controls-tabs/styles-tab.js +3 -0
  240. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  241. package/build-module/components/link-control/index.js +12 -2
  242. package/build-module/components/link-control/index.js.map +1 -1
  243. package/build-module/components/list-view/block-select-button.js +1 -3
  244. package/build-module/components/list-view/block-select-button.js.map +1 -1
  245. package/build-module/components/list-view/block.js +13 -1
  246. package/build-module/components/list-view/block.js.map +1 -1
  247. package/build-module/components/list-view/use-block-selection.js +30 -25
  248. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  249. package/build-module/components/media-placeholder/index.js +2 -2
  250. package/build-module/components/media-placeholder/index.js.map +1 -1
  251. package/build-module/components/media-placeholder/index.native.js +7 -7
  252. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  253. package/build-module/components/media-replace-flow/index.js +2 -3
  254. package/build-module/components/media-replace-flow/index.js.map +1 -1
  255. package/build-module/components/media-upload/constants.js +14 -0
  256. package/build-module/components/media-upload/constants.js.map +1 -0
  257. package/build-module/components/media-upload/index.native.js +53 -34
  258. package/build-module/components/media-upload/index.native.js.map +1 -1
  259. package/build-module/components/preview-options/index.js +1 -1
  260. package/build-module/components/preview-options/index.js.map +1 -1
  261. package/build-module/components/rich-text/index.js +35 -37
  262. package/build-module/components/rich-text/index.js.map +1 -1
  263. package/build-module/components/rich-text/index.native.js +15 -33
  264. package/build-module/components/rich-text/index.native.js.map +1 -1
  265. package/build-module/components/rich-text/multiline.js +87 -0
  266. package/build-module/components/rich-text/multiline.js.map +1 -0
  267. package/build-module/components/rich-text/split-value.js +10 -16
  268. package/build-module/components/rich-text/split-value.js.map +1 -1
  269. package/build-module/components/rich-text/use-enter.js +33 -42
  270. package/build-module/components/rich-text/use-enter.js.map +1 -1
  271. package/build-module/components/rich-text/use-paste-handler.js +19 -34
  272. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  273. package/build-module/components/spacing-sizes-control/utils.js +2 -2
  274. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  275. package/build-module/components/use-block-commands/index.js +28 -16
  276. package/build-module/components/use-block-commands/index.js.map +1 -1
  277. package/build-module/components/use-block-display-information/index.js +5 -2
  278. package/build-module/components/use-block-display-information/index.js.map +1 -1
  279. package/build-module/hooks/background.js +249 -0
  280. package/build-module/hooks/background.js.map +1 -0
  281. package/build-module/hooks/block-hooks.js +181 -0
  282. package/build-module/hooks/block-hooks.js.map +1 -0
  283. package/build-module/hooks/block-rename-ui.js +154 -0
  284. package/build-module/hooks/block-rename-ui.js.map +1 -0
  285. package/build-module/hooks/duotone.js +26 -39
  286. package/build-module/hooks/duotone.js.map +1 -1
  287. package/build-module/hooks/index.js +2 -2
  288. package/build-module/hooks/index.js.map +1 -1
  289. package/build-module/hooks/layout.js +33 -16
  290. package/build-module/hooks/layout.js.map +1 -1
  291. package/build-module/hooks/position.js +4 -2
  292. package/build-module/hooks/position.js.map +1 -1
  293. package/build-module/hooks/style.js +10 -3
  294. package/build-module/hooks/style.js.map +1 -1
  295. package/build-module/private-apis.js +2 -0
  296. package/build-module/private-apis.js.map +1 -1
  297. package/build-module/store/actions.js +33 -10
  298. package/build-module/store/actions.js.map +1 -1
  299. package/build-module/store/private-actions.js +39 -8
  300. package/build-module/store/private-actions.js.map +1 -1
  301. package/build-module/store/private-selectors.js +23 -3
  302. package/build-module/store/private-selectors.js.map +1 -1
  303. package/build-module/store/reducer.js +41 -1
  304. package/build-module/store/reducer.js.map +1 -1
  305. package/build-module/store/selectors.js +78 -22
  306. package/build-module/store/selectors.js.map +1 -1
  307. package/build-module/store/utils.js +0 -4
  308. package/build-module/store/utils.js.map +1 -1
  309. package/build-style/content-rtl.css +0 -1
  310. package/build-style/content.css +0 -1
  311. package/build-style/style-rtl.css +201 -131
  312. package/build-style/style.css +201 -131
  313. package/package.json +32 -32
  314. package/src/components/block-canvas/index.js +108 -0
  315. package/src/components/block-inspector/index.js +5 -1
  316. package/src/components/block-list/content.scss +0 -1
  317. package/src/components/block-patterns-list/index.js +53 -19
  318. package/src/components/block-patterns-list/style.scss +26 -9
  319. package/src/components/block-patterns-paging/index.js +92 -0
  320. package/src/components/block-patterns-paging/style.scss +45 -0
  321. package/src/components/block-settings-menu/block-settings-dropdown.js +44 -0
  322. package/src/components/block-settings-menu-controls/index.js +4 -9
  323. package/src/components/block-styles/index.js +1 -0
  324. package/src/components/block-styles/style.scss +3 -3
  325. package/src/components/block-toolbar/block-toolbar-menu.native.js +1 -6
  326. package/src/components/block-tools/block-contextual-toolbar.js +16 -5
  327. package/src/components/block-tools/block-selection-button.js +9 -1
  328. package/src/components/block-tools/style.scss +0 -98
  329. package/src/components/border-radius-control/input-controls.js +1 -1
  330. package/src/components/border-radius-control/linked-button.js +8 -11
  331. package/src/components/color-palette/test/__snapshots__/control.js.snap +34 -21
  332. package/src/components/colors/with-colors.js +3 -2
  333. package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -35
  334. package/src/components/default-block-appender/index.native.js +26 -3
  335. package/src/components/duotone/utils.js +65 -0
  336. package/src/components/editor-styles/index.js +32 -23
  337. package/src/components/global-styles/hooks.js +4 -112
  338. package/src/components/global-styles/image-settings-panel.js +71 -0
  339. package/src/components/global-styles/index.js +4 -3
  340. package/src/components/global-styles/use-global-styles-output.js +25 -16
  341. package/src/components/global-styles/utils.js +1 -2
  342. package/src/components/iframe/index.js +72 -33
  343. package/src/components/image-editor/use-save-image.js +2 -9
  344. package/src/components/image-editor/use-transform-image.js +9 -9
  345. package/src/components/index.js +1 -1
  346. package/src/components/index.native.js +2 -2
  347. package/src/components/inner-blocks/use-nested-settings-update.js +15 -10
  348. package/src/components/inserter/block-patterns-explorer/explorer.js +17 -5
  349. package/src/components/inserter/block-patterns-explorer/patterns-list.js +68 -43
  350. package/src/components/inserter/block-patterns-explorer/sidebar.js +8 -8
  351. package/src/components/inserter/block-patterns-filter.js +183 -0
  352. package/src/components/inserter/block-patterns-tab.js +217 -58
  353. package/src/components/inserter/hooks/use-patterns-paging.js +76 -0
  354. package/src/components/inserter/hooks/use-patterns-state.js +27 -16
  355. package/src/components/inserter/menu.js +15 -17
  356. package/src/components/inserter/search-results.js +6 -4
  357. package/src/components/inserter/style.scss +36 -7
  358. package/src/components/inserter/tabs.js +2 -12
  359. package/src/components/inserter/test/index.native.js +8 -12
  360. package/src/components/inspector-controls/block-support-slot-container.js +19 -3
  361. package/src/components/inspector-controls/fill.js +28 -14
  362. package/src/components/inspector-controls/groups.js +6 -2
  363. package/src/components/inspector-controls/slot.js +28 -3
  364. package/src/components/inspector-controls-tabs/styles-tab.js +4 -0
  365. package/src/components/link-control/index.js +13 -0
  366. package/src/components/link-control/style.scss +23 -2
  367. package/src/components/link-control/test/index.js +88 -6
  368. package/src/components/list-view/block-select-button.js +1 -3
  369. package/src/components/list-view/block.js +19 -1
  370. package/src/components/list-view/style.scss +1 -2
  371. package/src/components/list-view/use-block-selection.js +38 -32
  372. package/src/components/media-placeholder/README.md +2 -2
  373. package/src/components/media-placeholder/index.js +2 -2
  374. package/src/components/media-placeholder/index.native.js +11 -12
  375. package/src/components/media-replace-flow/index.js +2 -2
  376. package/src/components/media-replace-flow/test/index.js +5 -23
  377. package/src/components/media-upload/README.md +3 -2
  378. package/src/components/media-upload/constants.js +15 -0
  379. package/src/components/media-upload/index.native.js +66 -40
  380. package/src/components/media-upload/style.native.scss +4 -0
  381. package/src/components/media-upload/test/index.native.js +2 -2
  382. package/src/components/preview-options/README.md +7 -0
  383. package/src/components/preview-options/index.js +1 -1
  384. package/src/components/rich-text/index.js +48 -44
  385. package/src/components/rich-text/index.native.js +14 -42
  386. package/src/components/rich-text/multiline.js +121 -0
  387. package/src/components/rich-text/split-value.js +10 -35
  388. package/src/components/rich-text/use-enter.js +32 -42
  389. package/src/components/rich-text/use-paste-handler.js +16 -40
  390. package/src/components/spacing-sizes-control/style.scss +5 -7
  391. package/src/components/spacing-sizes-control/utils.js +1 -2
  392. package/src/components/use-block-commands/index.js +28 -20
  393. package/src/components/use-block-display-information/index.js +3 -0
  394. package/src/hooks/background.js +299 -0
  395. package/src/hooks/background.scss +75 -0
  396. package/src/hooks/block-hooks.js +257 -0
  397. package/src/hooks/block-hooks.scss +16 -0
  398. package/src/hooks/block-rename-ui.js +231 -0
  399. package/src/hooks/block-rename-ui.scss +3 -0
  400. package/src/hooks/duotone.js +42 -43
  401. package/src/hooks/index.js +2 -2
  402. package/src/hooks/layout.js +31 -33
  403. package/src/hooks/position.js +4 -3
  404. package/src/hooks/style.js +11 -2
  405. package/src/hooks/test/align.native.js +4 -3
  406. package/src/private-apis.js +2 -0
  407. package/src/store/actions.js +52 -10
  408. package/src/store/private-actions.js +37 -6
  409. package/src/store/private-selectors.js +28 -3
  410. package/src/store/reducer.js +38 -0
  411. package/src/store/selectors.js +107 -26
  412. package/src/store/test/actions.js +19 -8
  413. package/src/store/test/private-actions.js +17 -0
  414. package/src/store/test/reducer.js +25 -0
  415. package/src/store/test/selectors.js +130 -123
  416. package/src/store/utils.js +3 -10
  417. package/src/style.scss +4 -0
  418. package/build/components/duotone/components.js +0 -135
  419. package/build/components/duotone/components.js.map +0 -1
  420. package/build/components/duotone/index.js +0 -38
  421. package/build/components/duotone/index.js.map +0 -1
  422. package/build/components/global-styles/behaviors-panel.js +0 -64
  423. package/build/components/global-styles/behaviors-panel.js.map +0 -1
  424. package/build/components/inserter/reusable-blocks-tab.js +0 -85
  425. package/build/components/inserter/reusable-blocks-tab.js.map +0 -1
  426. package/build/hooks/auto-inserting-blocks.js +0 -174
  427. package/build/hooks/auto-inserting-blocks.js.map +0 -1
  428. package/build/hooks/behaviors.js +0 -173
  429. package/build/hooks/behaviors.js.map +0 -1
  430. package/build-module/components/duotone/components.js +0 -126
  431. package/build-module/components/duotone/components.js.map +0 -1
  432. package/build-module/components/duotone/index.js +0 -3
  433. package/build-module/components/duotone/index.js.map +0 -1
  434. package/build-module/components/global-styles/behaviors-panel.js +0 -57
  435. package/build-module/components/global-styles/behaviors-panel.js.map +0 -1
  436. package/build-module/components/inserter/reusable-blocks-tab.js +0 -76
  437. package/build-module/components/inserter/reusable-blocks-tab.js.map +0 -1
  438. package/build-module/hooks/auto-inserting-blocks.js +0 -167
  439. package/build-module/hooks/auto-inserting-blocks.js.map +0 -1
  440. package/build-module/hooks/behaviors.js +0 -166
  441. package/build-module/hooks/behaviors.js.map +0 -1
  442. package/src/components/duotone/components.js +0 -133
  443. package/src/components/duotone/index.js +0 -7
  444. package/src/components/global-styles/behaviors-panel.js +0 -71
  445. package/src/components/inserter/reusable-blocks-tab.js +0 -84
  446. package/src/components/inserter/test/reusable-blocks-tab.js +0 -73
  447. package/src/hooks/auto-inserting-blocks.js +0 -232
  448. package/src/hooks/behaviors.js +0 -206
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","prompt","Component","React","__","Picker","getOtherMediaOptions","requestMediaPicker","mediaSources","capturePhoto","captureVideo","image","wordpress","mobile","globe","store","blockEditorStore","compose","withSelect","MEDIA_TYPE_IMAGE","MEDIA_TYPE_VIDEO","MEDIA_TYPE_AUDIO","MEDIA_TYPE_ANY","OPTION_TAKE_VIDEO","OPTION_TAKE_PHOTO","OPTION_TAKE_PHOTO_OR_VIDEO","OPTION_INSERT_FROM_URL","OPTION_WORDPRESS_MEDIA_LIBRARY","URL_MEDIA_SOURCE","PICKER_OPENING_DELAY","MediaUpload","pickerTimeout","constructor","props","onPickerPresent","bind","onPickerSelect","getAllSources","state","otherMediaOptions","componentDidMount","allowedTypes","autoOpen","otherMediaOptionsWithIcons","map","option","requiresModal","types","id","value","setState","componentWillUnmount","clearTimeout","onSelectURL","cameraImageSource","deviceCamera","label","icon","cameraVideoSource","deviceLibrarySource","deviceLibrary","siteLibrarySource","siteMediaLibrary","mediaLibrary","urlSource","internalSources","concat","getMediaOptionsItems","__experimentalOnlyMediaLibrary","isAudioBlockMediaUploadEnabled","filter","source","every","allowedType","includes","some","getChooseFromDeviceIcon","isIOS","OS","picker","setTimeout","presentPicker","onSelect","multiple","undefined","text","style","onPress","mediaSource","shift","type","media","render","isReplacingMedia","isOneType","length","isImage","isVideo","isAudio","isAnyType","isImageOrVideo","pickerTitle","getMediaOptions","createElement","title","hideCancelButton","ref","instance","options","onChange","testID","open","select","capabilities","getSettings"],"sources":["@wordpress/block-editor/src/components/media-upload/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Platform } from 'react-native';\n\nimport prompt from 'react-native-prompt-android';\n\n/**\n * WordPress dependencies\n */\nimport { Component, React } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Picker } from '@wordpress/components';\nimport {\n\tgetOtherMediaOptions,\n\trequestMediaPicker,\n\tmediaSources,\n} from '@wordpress/react-native-bridge';\nimport {\n\tcapturePhoto,\n\tcaptureVideo,\n\timage,\n\twordpress,\n\tmobile,\n\tglobe,\n} from '@wordpress/icons';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\n\nexport const MEDIA_TYPE_IMAGE = 'image';\nexport const MEDIA_TYPE_VIDEO = 'video';\nexport const MEDIA_TYPE_AUDIO = 'audio';\nexport const MEDIA_TYPE_ANY = 'any';\n\nexport const OPTION_TAKE_VIDEO = __( 'Take a Video' );\nexport const OPTION_TAKE_PHOTO = __( 'Take a Photo' );\nexport const OPTION_TAKE_PHOTO_OR_VIDEO = __( 'Take a Photo or Video' );\nexport const OPTION_INSERT_FROM_URL = __( 'Insert from URL' );\nexport const OPTION_WORDPRESS_MEDIA_LIBRARY = __( 'WordPress Media Library' );\n\nconst URL_MEDIA_SOURCE = 'URL';\n\nconst PICKER_OPENING_DELAY = 200;\n\nexport class MediaUpload extends Component {\n\tpickerTimeout;\n\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.onPickerPresent = this.onPickerPresent.bind( this );\n\t\tthis.onPickerSelect = this.onPickerSelect.bind( this );\n\t\tthis.getAllSources = this.getAllSources.bind( this );\n\t\tthis.state = {\n\t\t\totherMediaOptions: [],\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { allowedTypes = [], autoOpen } = this.props;\n\t\tgetOtherMediaOptions( allowedTypes, ( otherMediaOptions ) => {\n\t\t\tconst otherMediaOptionsWithIcons = otherMediaOptions.map(\n\t\t\t\t( option ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...option,\n\t\t\t\t\t\trequiresModal: true,\n\t\t\t\t\t\ttypes: allowedTypes,\n\t\t\t\t\t\tid: option.value,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis.setState( { otherMediaOptions: otherMediaOptionsWithIcons } );\n\t\t} );\n\n\t\tif ( autoOpen ) {\n\t\t\tthis.onPickerPresent();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.pickerTimeout );\n\t}\n\n\tgetAllSources() {\n\t\tconst { onSelectURL } = this.props;\n\n\t\tconst cameraImageSource = {\n\t\t\tid: mediaSources.deviceCamera, // ID is the value sent to native.\n\t\t\tvalue: mediaSources.deviceCamera + '-IMAGE', // This is needed to diferenciate image-camera from video-camera sources.\n\t\t\tlabel: __( 'Take a Photo' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [ MEDIA_TYPE_IMAGE ],\n\t\t\ticon: capturePhoto,\n\t\t};\n\n\t\tconst cameraVideoSource = {\n\t\t\tid: mediaSources.deviceCamera,\n\t\t\tvalue: mediaSources.deviceCamera,\n\t\t\tlabel: __( 'Take a Video' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [ MEDIA_TYPE_VIDEO ],\n\t\t\ticon: captureVideo,\n\t\t};\n\n\t\tconst deviceLibrarySource = {\n\t\t\tid: mediaSources.deviceLibrary,\n\t\t\tvalue: mediaSources.deviceLibrary,\n\t\t\tlabel: __( 'Choose from device' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [ MEDIA_TYPE_IMAGE, MEDIA_TYPE_VIDEO ],\n\t\t\ticon: image,\n\t\t};\n\n\t\tconst siteLibrarySource = {\n\t\t\tid: mediaSources.siteMediaLibrary,\n\t\t\tvalue: mediaSources.siteMediaLibrary,\n\t\t\tlabel: __( 'WordPress Media Library' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [\n\t\t\t\tMEDIA_TYPE_IMAGE,\n\t\t\t\tMEDIA_TYPE_VIDEO,\n\t\t\t\tMEDIA_TYPE_AUDIO,\n\t\t\t\tMEDIA_TYPE_ANY,\n\t\t\t],\n\t\t\ticon: wordpress,\n\t\t\tmediaLibrary: true,\n\t\t};\n\n\t\tconst urlSource = {\n\t\t\tid: URL_MEDIA_SOURCE,\n\t\t\tvalue: URL_MEDIA_SOURCE,\n\t\t\tlabel: __( 'Insert from URL' ),\n\t\t\ttypes: [ MEDIA_TYPE_AUDIO, MEDIA_TYPE_IMAGE, MEDIA_TYPE_VIDEO ],\n\t\t\ticon: globe,\n\t\t};\n\n\t\t// Only include `urlSource` option if `onSelectURL` prop is present, in order to match the web behavior.\n\t\tconst internalSources = [\n\t\t\tdeviceLibrarySource,\n\t\t\tcameraImageSource,\n\t\t\tcameraVideoSource,\n\t\t\tsiteLibrarySource,\n\t\t\t...( onSelectURL ? [ urlSource ] : [] ),\n\t\t];\n\n\t\treturn internalSources.concat( this.state.otherMediaOptions );\n\t}\n\n\tgetMediaOptionsItems() {\n\t\tconst {\n\t\t\tallowedTypes = [],\n\t\t\t__experimentalOnlyMediaLibrary,\n\t\t\tisAudioBlockMediaUploadEnabled,\n\t\t} = this.props;\n\n\t\treturn this.getAllSources()\n\t\t\t.filter( ( source ) => {\n\t\t\t\tif ( __experimentalOnlyMediaLibrary ) {\n\t\t\t\t\treturn source.mediaLibrary;\n\t\t\t\t} else if (\n\t\t\t\t\tallowedTypes.every(\n\t\t\t\t\t\t( allowedType ) =>\n\t\t\t\t\t\t\tallowedType === MEDIA_TYPE_AUDIO &&\n\t\t\t\t\t\t\tsource.types.includes( allowedType )\n\t\t\t\t\t) &&\n\t\t\t\t\tsource.id !== URL_MEDIA_SOURCE\n\t\t\t\t) {\n\t\t\t\t\treturn isAudioBlockMediaUploadEnabled === true;\n\t\t\t\t}\n\n\t\t\t\treturn allowedTypes.some( ( allowedType ) =>\n\t\t\t\t\tsource.types.includes( allowedType )\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.map( ( source ) => {\n\t\t\t\treturn {\n\t\t\t\t\t...source,\n\t\t\t\t\ticon: source.icon || this.getChooseFromDeviceIcon(),\n\t\t\t\t};\n\t\t\t} );\n\t}\n\n\tgetChooseFromDeviceIcon() {\n\t\treturn mobile;\n\t}\n\n\tonPickerPresent() {\n\t\tconst { autoOpen } = this.props;\n\t\tconst isIOS = Platform.OS === 'ios';\n\n\t\tif ( this.picker ) {\n\t\t\t// the delay below is required because on iOS this action sheet gets dismissed by the close event of the Inserter\n\t\t\t// so this delay allows the Inserter to be closed fully before presenting action sheet.\n\t\t\tif ( autoOpen && isIOS ) {\n\t\t\t\tthis.pickerTimeout = setTimeout(\n\t\t\t\t\t() => this.picker.presentPicker(),\n\t\t\t\t\tPICKER_OPENING_DELAY\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.picker.presentPicker();\n\t\t\t}\n\t\t}\n\t}\n\n\tonPickerSelect( value ) {\n\t\tconst {\n\t\t\tallowedTypes = [],\n\t\t\tonSelect,\n\t\t\tonSelectURL,\n\t\t\tmultiple = false,\n\t\t} = this.props;\n\n\t\tif ( value === URL_MEDIA_SOURCE ) {\n\t\t\tprompt(\n\t\t\t\t__( 'Type a URL' ), // title\n\t\t\t\tundefined, // message\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: __( 'Cancel' ),\n\t\t\t\t\t\tstyle: 'cancel',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: __( 'Apply' ),\n\t\t\t\t\t\tonPress: onSelectURL,\n\t\t\t\t\t},\n\t\t\t\t], // Buttons.\n\t\t\t\t'plain-text', // type\n\t\t\t\tundefined, // defaultValue\n\t\t\t\t'url' // keyboardType\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst mediaSource = this.getAllSources()\n\t\t\t.filter( ( source ) => source.value === value )\n\t\t\t.shift();\n\t\tconst types = allowedTypes.filter( ( type ) =>\n\t\t\tmediaSource.types.includes( type )\n\t\t);\n\n\t\trequestMediaPicker( mediaSource.id, types, multiple, ( media ) => {\n\t\t\tif ( ( multiple && media ) || ( media && media.id ) ) {\n\t\t\t\tonSelect( media );\n\t\t\t}\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst { allowedTypes = [], isReplacingMedia, multiple } = this.props;\n\t\tconst isOneType = allowedTypes.length === 1;\n\t\tconst isImage = isOneType && allowedTypes.includes( MEDIA_TYPE_IMAGE );\n\t\tconst isVideo = isOneType && allowedTypes.includes( MEDIA_TYPE_VIDEO );\n\t\tconst isAudio = isOneType && allowedTypes.includes( MEDIA_TYPE_AUDIO );\n\t\tconst isAnyType = isOneType && allowedTypes.includes( MEDIA_TYPE_ANY );\n\n\t\tconst isImageOrVideo =\n\t\t\tallowedTypes.length === 2 &&\n\t\t\tallowedTypes.includes( MEDIA_TYPE_IMAGE ) &&\n\t\t\tallowedTypes.includes( MEDIA_TYPE_VIDEO );\n\n\t\tlet pickerTitle;\n\t\tif ( isImage ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace image' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = multiple\n\t\t\t\t\t? __( 'Choose images' )\n\t\t\t\t\t: __( 'Choose image' );\n\t\t\t}\n\t\t} else if ( isVideo ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace video' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose video' );\n\t\t\t}\n\t\t} else if ( isImageOrVideo ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace image or video' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose image or video' );\n\t\t\t}\n\t\t} else if ( isAudio ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace audio' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose audio' );\n\t\t\t}\n\t\t} else if ( isAnyType ) {\n\t\t\tpickerTitle = __( 'Choose file' );\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace file' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose file' );\n\t\t\t}\n\t\t}\n\n\t\tconst getMediaOptions = () => (\n\t\t\t<Picker\n\t\t\t\ttitle={ pickerTitle }\n\t\t\t\thideCancelButton\n\t\t\t\tref={ ( instance ) => ( this.picker = instance ) }\n\t\t\t\toptions={ this.getMediaOptionsItems() }\n\t\t\t\tonChange={ this.onPickerSelect }\n\t\t\t\ttestID=\"media-options-picker\"\n\t\t\t/>\n\t\t);\n\n\t\treturn this.props.render( {\n\t\t\topen: this.onPickerPresent,\n\t\t\tgetMediaOptions,\n\t\t} );\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { capabilities } = select( blockEditorStore ).getSettings();\n\t\treturn {\n\t\t\tisAudioBlockMediaUploadEnabled:\n\t\t\t\tcapabilities?.isAudioBlockMediaUploadEnabled === true,\n\t\t};\n\t} ),\n] )( MediaUpload );\n"],"mappings":"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"}
1
+ {"version":3,"names":["Platform","Component","React","__","BottomSheet","PanelBody","Picker","TextControl","getOtherMediaOptions","requestMediaPicker","mediaSources","capturePhoto","captureVideo","image","wordpress","mobile","globe","store","blockEditorStore","compose","withSelect","MEDIA_TYPE_IMAGE","MEDIA_TYPE_VIDEO","MEDIA_TYPE_AUDIO","MEDIA_TYPE_ANY","styles","URL_MEDIA_SOURCE","PICKER_OPENING_DELAY","MediaUpload","pickerTimeout","constructor","props","onPickerPresent","bind","onPickerSelect","getAllSources","state","url","showURLInput","otherMediaOptions","componentDidMount","allowedTypes","autoOpen","otherMediaOptionsWithIcons","map","option","requiresModal","types","id","value","setState","componentWillUnmount","clearTimeout","onSelectURL","cameraImageSource","deviceCamera","label","icon","cameraVideoSource","deviceLibrarySource","deviceLibrary","siteLibrarySource","siteMediaLibrary","mediaLibrary","urlSource","internalSources","concat","getMediaOptionsItems","__experimentalOnlyMediaLibrary","isAudioBlockMediaUploadEnabled","filter","source","every","allowedType","includes","some","getChooseFromDeviceIcon","isIOS","OS","picker","setTimeout","presentPicker","onSelect","multiple","mediaSource","shift","type","media","render","isReplacingMedia","isOneType","length","isImage","isVideo","isAudio","isAnyType","isImageOrVideo","pickerTitle","getMediaOptions","createElement","title","hideCancelButton","ref","instance","options","onChange","testID","Fragment","URLInput","isVisible","onClose","open","hideHeader","style","autoFocus","autoCapitalize","autoCorrect","autoComplete","keyboardType","placeholder","select","capabilities","getSettings"],"sources":["@wordpress/block-editor/src/components/media-upload/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Platform } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component, React } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBottomSheet,\n\tPanelBody,\n\tPicker,\n\tTextControl,\n} from '@wordpress/components';\nimport {\n\tgetOtherMediaOptions,\n\trequestMediaPicker,\n\tmediaSources,\n} from '@wordpress/react-native-bridge';\nimport {\n\tcapturePhoto,\n\tcaptureVideo,\n\timage,\n\twordpress,\n\tmobile,\n\tglobe,\n} from '@wordpress/icons';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tMEDIA_TYPE_IMAGE,\n\tMEDIA_TYPE_VIDEO,\n\tMEDIA_TYPE_AUDIO,\n\tMEDIA_TYPE_ANY,\n} from './constants';\nimport styles from './style.scss';\n\nconst URL_MEDIA_SOURCE = 'URL';\n\nconst PICKER_OPENING_DELAY = 200;\n\nexport class MediaUpload extends Component {\n\tpickerTimeout;\n\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.onPickerPresent = this.onPickerPresent.bind( this );\n\t\tthis.onPickerSelect = this.onPickerSelect.bind( this );\n\t\tthis.getAllSources = this.getAllSources.bind( this );\n\t\tthis.state = {\n\t\t\turl: '',\n\t\t\tshowURLInput: false,\n\t\t\totherMediaOptions: [],\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { allowedTypes = [], autoOpen } = this.props;\n\t\tgetOtherMediaOptions( allowedTypes, ( otherMediaOptions ) => {\n\t\t\tconst otherMediaOptionsWithIcons = otherMediaOptions.map(\n\t\t\t\t( option ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...option,\n\t\t\t\t\t\trequiresModal: true,\n\t\t\t\t\t\ttypes: allowedTypes,\n\t\t\t\t\t\tid: option.value,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis.setState( { otherMediaOptions: otherMediaOptionsWithIcons } );\n\t\t} );\n\n\t\tif ( autoOpen ) {\n\t\t\tthis.onPickerPresent();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.pickerTimeout );\n\t}\n\n\tgetAllSources() {\n\t\tconst { onSelectURL } = this.props;\n\n\t\tconst cameraImageSource = {\n\t\t\tid: mediaSources.deviceCamera, // ID is the value sent to native.\n\t\t\tvalue: mediaSources.deviceCamera + '-IMAGE', // This is needed to diferenciate image-camera from video-camera sources.\n\t\t\tlabel: __( 'Take a Photo' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [ MEDIA_TYPE_IMAGE ],\n\t\t\ticon: capturePhoto,\n\t\t};\n\n\t\tconst cameraVideoSource = {\n\t\t\tid: mediaSources.deviceCamera,\n\t\t\tvalue: mediaSources.deviceCamera,\n\t\t\tlabel: __( 'Take a Video' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [ MEDIA_TYPE_VIDEO ],\n\t\t\ticon: captureVideo,\n\t\t};\n\n\t\tconst deviceLibrarySource = {\n\t\t\tid: mediaSources.deviceLibrary,\n\t\t\tvalue: mediaSources.deviceLibrary,\n\t\t\tlabel: __( 'Choose from device' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [ MEDIA_TYPE_IMAGE, MEDIA_TYPE_VIDEO ],\n\t\t\ticon: image,\n\t\t};\n\n\t\tconst siteLibrarySource = {\n\t\t\tid: mediaSources.siteMediaLibrary,\n\t\t\tvalue: mediaSources.siteMediaLibrary,\n\t\t\tlabel: __( 'WordPress Media Library' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [\n\t\t\t\tMEDIA_TYPE_IMAGE,\n\t\t\t\tMEDIA_TYPE_VIDEO,\n\t\t\t\tMEDIA_TYPE_AUDIO,\n\t\t\t\tMEDIA_TYPE_ANY,\n\t\t\t],\n\t\t\ticon: wordpress,\n\t\t\tmediaLibrary: true,\n\t\t};\n\n\t\tconst urlSource = {\n\t\t\tid: URL_MEDIA_SOURCE,\n\t\t\tvalue: URL_MEDIA_SOURCE,\n\t\t\tlabel: __( 'Insert from URL' ),\n\t\t\ttypes: [ MEDIA_TYPE_AUDIO, MEDIA_TYPE_IMAGE, MEDIA_TYPE_VIDEO ],\n\t\t\ticon: globe,\n\t\t};\n\n\t\t// Only include `urlSource` option if `onSelectURL` prop is present, in order to match the web behavior.\n\t\tconst internalSources = [\n\t\t\tdeviceLibrarySource,\n\t\t\tcameraImageSource,\n\t\t\tcameraVideoSource,\n\t\t\tsiteLibrarySource,\n\t\t\t...( onSelectURL ? [ urlSource ] : [] ),\n\t\t];\n\n\t\treturn internalSources.concat( this.state.otherMediaOptions );\n\t}\n\n\tgetMediaOptionsItems() {\n\t\tconst {\n\t\t\tallowedTypes = [],\n\t\t\t__experimentalOnlyMediaLibrary,\n\t\t\tisAudioBlockMediaUploadEnabled,\n\t\t} = this.props;\n\n\t\treturn this.getAllSources()\n\t\t\t.filter( ( source ) => {\n\t\t\t\tif ( __experimentalOnlyMediaLibrary ) {\n\t\t\t\t\treturn source.mediaLibrary;\n\t\t\t\t} else if (\n\t\t\t\t\tallowedTypes.every(\n\t\t\t\t\t\t( allowedType ) =>\n\t\t\t\t\t\t\tallowedType === MEDIA_TYPE_AUDIO &&\n\t\t\t\t\t\t\tsource.types.includes( allowedType )\n\t\t\t\t\t) &&\n\t\t\t\t\tsource.id !== URL_MEDIA_SOURCE\n\t\t\t\t) {\n\t\t\t\t\treturn isAudioBlockMediaUploadEnabled === true;\n\t\t\t\t}\n\n\t\t\t\treturn allowedTypes.some( ( allowedType ) =>\n\t\t\t\t\tsource.types.includes( allowedType )\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.map( ( source ) => {\n\t\t\t\treturn {\n\t\t\t\t\t...source,\n\t\t\t\t\ticon: source.icon || this.getChooseFromDeviceIcon(),\n\t\t\t\t};\n\t\t\t} );\n\t}\n\n\tgetChooseFromDeviceIcon() {\n\t\treturn mobile;\n\t}\n\n\tonPickerPresent() {\n\t\tconst { autoOpen } = this.props;\n\t\tconst isIOS = Platform.OS === 'ios';\n\n\t\tif ( this.picker ) {\n\t\t\t// the delay below is required because on iOS this action sheet gets dismissed by the close event of the Inserter\n\t\t\t// so this delay allows the Inserter to be closed fully before presenting action sheet.\n\t\t\tif ( autoOpen && isIOS ) {\n\t\t\t\tthis.pickerTimeout = setTimeout(\n\t\t\t\t\t() => this.picker.presentPicker(),\n\t\t\t\t\tPICKER_OPENING_DELAY\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.picker.presentPicker();\n\t\t\t}\n\t\t}\n\t}\n\n\tonPickerSelect( value ) {\n\t\tconst { allowedTypes = [], onSelect, multiple = false } = this.props;\n\n\t\tif ( value === URL_MEDIA_SOURCE ) {\n\t\t\tthis.setState( { showURLInput: true } );\n\t\t\treturn;\n\t\t}\n\n\t\tconst mediaSource = this.getAllSources()\n\t\t\t.filter( ( source ) => source.value === value )\n\t\t\t.shift();\n\t\tconst types = allowedTypes.filter( ( type ) =>\n\t\t\tmediaSource.types.includes( type )\n\t\t);\n\n\t\trequestMediaPicker( mediaSource.id, types, multiple, ( media ) => {\n\t\t\tif ( ( multiple && media ) || ( media && media.id ) ) {\n\t\t\t\tonSelect( media );\n\t\t\t}\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst { allowedTypes = [], isReplacingMedia, multiple } = this.props;\n\t\tconst isOneType = allowedTypes.length === 1;\n\t\tconst isImage = isOneType && allowedTypes.includes( MEDIA_TYPE_IMAGE );\n\t\tconst isVideo = isOneType && allowedTypes.includes( MEDIA_TYPE_VIDEO );\n\t\tconst isAudio = isOneType && allowedTypes.includes( MEDIA_TYPE_AUDIO );\n\t\tconst isAnyType = isOneType && allowedTypes.includes( MEDIA_TYPE_ANY );\n\n\t\tconst isImageOrVideo =\n\t\t\tallowedTypes.length === 2 &&\n\t\t\tallowedTypes.includes( MEDIA_TYPE_IMAGE ) &&\n\t\t\tallowedTypes.includes( MEDIA_TYPE_VIDEO );\n\n\t\tlet pickerTitle;\n\t\tif ( isImage ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace image' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = multiple\n\t\t\t\t\t? __( 'Choose images' )\n\t\t\t\t\t: __( 'Choose image' );\n\t\t\t}\n\t\t} else if ( isVideo ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace video' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose video' );\n\t\t\t}\n\t\t} else if ( isImageOrVideo ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace image or video' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose image or video' );\n\t\t\t}\n\t\t} else if ( isAudio ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace audio' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose audio' );\n\t\t\t}\n\t\t} else if ( isAnyType ) {\n\t\t\tpickerTitle = __( 'Choose file' );\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace file' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose file' );\n\t\t\t}\n\t\t}\n\n\t\tconst getMediaOptions = () => (\n\t\t\t<Picker\n\t\t\t\ttitle={ pickerTitle }\n\t\t\t\thideCancelButton\n\t\t\t\tref={ ( instance ) => ( this.picker = instance ) }\n\t\t\t\toptions={ this.getMediaOptionsItems() }\n\t\t\t\tonChange={ this.onPickerSelect }\n\t\t\t\ttestID=\"media-options-picker\"\n\t\t\t/>\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<URLInput\n\t\t\t\t\tisVisible={ this.state.showURLInput }\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tif ( this.state.url !== '' ) {\n\t\t\t\t\t\t\tthis.props.onSelectURL( this.state.url );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.setState( { showURLInput: false, url: '' } );\n\t\t\t\t\t} }\n\t\t\t\t\tonChange={ ( url ) => {\n\t\t\t\t\t\tthis.setState( { url } );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ this.state.url }\n\t\t\t\t/>\n\t\t\t\t{ this.props.render( {\n\t\t\t\t\topen: this.onPickerPresent,\n\t\t\t\t\tgetMediaOptions,\n\t\t\t\t} ) }\n\t\t\t</>\n\t\t);\n\t}\n}\n\nfunction URLInput( props ) {\n\treturn (\n\t\t<BottomSheet\n\t\t\thideHeader\n\t\t\tisVisible={ props.isVisible }\n\t\t\tonClose={ props.onClose }\n\t\t>\n\t\t\t<PanelBody style={ styles[ 'media-upload__link-input' ] }>\n\t\t\t\t<TextControl\n\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\tautoFocus\n\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\tautoComplete={ Platform.isIOS ? 'url' : 'off' }\n\t\t\t\t\tkeyboardType=\"url\"\n\t\t\t\t\tlabel={ __( 'Insert from URL' ) }\n\t\t\t\t\tonChange={ props.onChange }\n\t\t\t\t\tplaceholder={ __( 'Type a URL' ) }\n\t\t\t\t\tvalue={ props.value }\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t</BottomSheet>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { capabilities } = select( blockEditorStore ).getSettings();\n\t\treturn {\n\t\t\tisAudioBlockMediaUploadEnabled:\n\t\t\t\tcapabilities?.isAudioBlockMediaUploadEnabled === true,\n\t\t};\n\t} ),\n] )( MediaUpload );\n"],"mappings":"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"}
@@ -60,6 +60,6 @@ export default function PreviewOptions({
60
60
  className: "block-editor-post-preview__button-resize",
61
61
  onClick: () => setDeviceType('Mobile'),
62
62
  icon: deviceType === 'Mobile' && check
63
- }, __('Mobile'))), children(renderProps)));
63
+ }, __('Mobile'))), children?.(renderProps)));
64
64
  }
65
65
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useViewportMatch","DropdownMenu","MenuGroup","MenuItem","__","check","desktop","mobile","tablet","PreviewOptions","children","viewLabel","className","isEnabled","deviceType","setDeviceType","label","isMobile","popoverProps","placement","toggleProps","disabled","__experimentalIsFocusable","menuProps","deviceIcons","createElement","icon","toLowerCase","disableOpenOnArrowDown","renderProps","Fragment","onClick"],"sources":["@wordpress/block-editor/src/components/preview-options/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { check, desktop, mobile, tablet } from '@wordpress/icons';\n\nexport default function PreviewOptions( {\n\tchildren,\n\tviewLabel,\n\tclassName,\n\tisEnabled = true,\n\tdeviceType,\n\tsetDeviceType,\n\tlabel,\n} ) {\n\tconst isMobile = useViewportMatch( 'small', '<' );\n\tif ( isMobile ) return null;\n\n\tconst popoverProps = {\n\t\tclassName: classnames(\n\t\t\tclassName,\n\t\t\t'block-editor-post-preview__dropdown-content'\n\t\t),\n\t\tplacement: 'bottom-end',\n\t};\n\tconst toggleProps = {\n\t\tclassName: 'block-editor-post-preview__button-toggle',\n\t\tdisabled: ! isEnabled,\n\t\t__experimentalIsFocusable: ! isEnabled,\n\t\tchildren: viewLabel,\n\t};\n\tconst menuProps = {\n\t\t'aria-label': __( 'View options' ),\n\t};\n\n\tconst deviceIcons = {\n\t\tmobile,\n\t\ttablet,\n\t\tdesktop,\n\t};\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"block-editor-post-preview__dropdown\"\n\t\t\tpopoverProps={ popoverProps }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tmenuProps={ menuProps }\n\t\t\ticon={ deviceIcons[ deviceType.toLowerCase() ] }\n\t\t\tlabel={ label || __( 'Preview' ) }\n\t\t\tdisableOpenOnArrowDown={ ! isEnabled }\n\t\t>\n\t\t\t{ ( renderProps ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tclassName=\"block-editor-post-preview__button-resize\"\n\t\t\t\t\t\t\tonClick={ () => setDeviceType( 'Desktop' ) }\n\t\t\t\t\t\t\ticon={ deviceType === 'Desktop' && check }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Desktop' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tclassName=\"block-editor-post-preview__button-resize\"\n\t\t\t\t\t\t\tonClick={ () => setDeviceType( 'Tablet' ) }\n\t\t\t\t\t\t\ticon={ deviceType === 'Tablet' && check }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Tablet' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tclassName=\"block-editor-post-preview__button-resize\"\n\t\t\t\t\t\t\tonClick={ () => setDeviceType( 'Mobile' ) }\n\t\t\t\t\t\t\ticon={ deviceType === 'Mobile' && check }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Mobile' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t{ children( renderProps ) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,YAAY,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,uBAAuB;AACzE,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,KAAK,EAAEC,OAAO,EAAEC,MAAM,EAAEC,MAAM,QAAQ,kBAAkB;AAEjE,eAAe,SAASC,cAAcA,CAAE;EACvCC,QAAQ;EACRC,SAAS;EACTC,SAAS;EACTC,SAAS,GAAG,IAAI;EAChBC,UAAU;EACVC,aAAa;EACbC;AACD,CAAC,EAAG;EACH,MAAMC,QAAQ,GAAGjB,gBAAgB,CAAE,OAAO,EAAE,GAAI,CAAC;EACjD,IAAKiB,QAAQ,EAAG,OAAO,IAAI;EAE3B,MAAMC,YAAY,GAAG;IACpBN,SAAS,EAAEb,UAAU,CACpBa,SAAS,EACT,6CACD,CAAC;IACDO,SAAS,EAAE;EACZ,CAAC;EACD,MAAMC,WAAW,GAAG;IACnBR,SAAS,EAAE,0CAA0C;IACrDS,QAAQ,EAAE,CAAER,SAAS;IACrBS,yBAAyB,EAAE,CAAET,SAAS;IACtCH,QAAQ,EAAEC;EACX,CAAC;EACD,MAAMY,SAAS,GAAG;IACjB,YAAY,EAAEnB,EAAE,CAAE,cAAe;EAClC,CAAC;EAED,MAAMoB,WAAW,GAAG;IACnBjB,MAAM;IACNC,MAAM;IACNF;EACD,CAAC;EAED,OACCmB,aAAA,CAACxB,YAAY;IACZW,SAAS,EAAC,qCAAqC;IAC/CM,YAAY,EAAGA,YAAc;IAC7BE,WAAW,EAAGA,WAAa;IAC3BG,SAAS,EAAGA,SAAW;IACvBG,IAAI,EAAGF,WAAW,CAAEV,UAAU,CAACa,WAAW,CAAC,CAAC,CAAI;IAChDX,KAAK,EAAGA,KAAK,IAAIZ,EAAE,CAAE,SAAU,CAAG;IAClCwB,sBAAsB,EAAG,CAAEf;EAAW,GAElCgB,WAAW,IACdJ,aAAA,CAAAK,QAAA,QACCL,aAAA,CAACvB,SAAS,QACTuB,aAAA,CAACtB,QAAQ;IACRS,SAAS,EAAC,0CAA0C;IACpDmB,OAAO,EAAGA,CAAA,KAAMhB,aAAa,CAAE,SAAU,CAAG;IAC5CW,IAAI,EAAGZ,UAAU,KAAK,SAAS,IAAIT;EAAO,GAExCD,EAAE,CAAE,SAAU,CACP,CAAC,EACXqB,aAAA,CAACtB,QAAQ;IACRS,SAAS,EAAC,0CAA0C;IACpDmB,OAAO,EAAGA,CAAA,KAAMhB,aAAa,CAAE,QAAS,CAAG;IAC3CW,IAAI,EAAGZ,UAAU,KAAK,QAAQ,IAAIT;EAAO,GAEvCD,EAAE,CAAE,QAAS,CACN,CAAC,EACXqB,aAAA,CAACtB,QAAQ;IACRS,SAAS,EAAC,0CAA0C;IACpDmB,OAAO,EAAGA,CAAA,KAAMhB,aAAa,CAAE,QAAS,CAAG;IAC3CW,IAAI,EAAGZ,UAAU,KAAK,QAAQ,IAAIT;EAAO,GAEvCD,EAAE,CAAE,QAAS,CACN,CACA,CAAC,EACVM,QAAQ,CAAEmB,WAAY,CACvB,CAEU,CAAC;AAEjB"}
1
+ {"version":3,"names":["classnames","useViewportMatch","DropdownMenu","MenuGroup","MenuItem","__","check","desktop","mobile","tablet","PreviewOptions","children","viewLabel","className","isEnabled","deviceType","setDeviceType","label","isMobile","popoverProps","placement","toggleProps","disabled","__experimentalIsFocusable","menuProps","deviceIcons","createElement","icon","toLowerCase","disableOpenOnArrowDown","renderProps","Fragment","onClick"],"sources":["@wordpress/block-editor/src/components/preview-options/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { check, desktop, mobile, tablet } from '@wordpress/icons';\n\nexport default function PreviewOptions( {\n\tchildren,\n\tviewLabel,\n\tclassName,\n\tisEnabled = true,\n\tdeviceType,\n\tsetDeviceType,\n\tlabel,\n} ) {\n\tconst isMobile = useViewportMatch( 'small', '<' );\n\tif ( isMobile ) return null;\n\n\tconst popoverProps = {\n\t\tclassName: classnames(\n\t\t\tclassName,\n\t\t\t'block-editor-post-preview__dropdown-content'\n\t\t),\n\t\tplacement: 'bottom-end',\n\t};\n\tconst toggleProps = {\n\t\tclassName: 'block-editor-post-preview__button-toggle',\n\t\tdisabled: ! isEnabled,\n\t\t__experimentalIsFocusable: ! isEnabled,\n\t\tchildren: viewLabel,\n\t};\n\tconst menuProps = {\n\t\t'aria-label': __( 'View options' ),\n\t};\n\n\tconst deviceIcons = {\n\t\tmobile,\n\t\ttablet,\n\t\tdesktop,\n\t};\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"block-editor-post-preview__dropdown\"\n\t\t\tpopoverProps={ popoverProps }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tmenuProps={ menuProps }\n\t\t\ticon={ deviceIcons[ deviceType.toLowerCase() ] }\n\t\t\tlabel={ label || __( 'Preview' ) }\n\t\t\tdisableOpenOnArrowDown={ ! isEnabled }\n\t\t>\n\t\t\t{ ( renderProps ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tclassName=\"block-editor-post-preview__button-resize\"\n\t\t\t\t\t\t\tonClick={ () => setDeviceType( 'Desktop' ) }\n\t\t\t\t\t\t\ticon={ deviceType === 'Desktop' && check }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Desktop' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tclassName=\"block-editor-post-preview__button-resize\"\n\t\t\t\t\t\t\tonClick={ () => setDeviceType( 'Tablet' ) }\n\t\t\t\t\t\t\ticon={ deviceType === 'Tablet' && check }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Tablet' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tclassName=\"block-editor-post-preview__button-resize\"\n\t\t\t\t\t\t\tonClick={ () => setDeviceType( 'Mobile' ) }\n\t\t\t\t\t\t\ticon={ deviceType === 'Mobile' && check }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Mobile' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t{ children?.( renderProps ) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,YAAY,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,uBAAuB;AACzE,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,KAAK,EAAEC,OAAO,EAAEC,MAAM,EAAEC,MAAM,QAAQ,kBAAkB;AAEjE,eAAe,SAASC,cAAcA,CAAE;EACvCC,QAAQ;EACRC,SAAS;EACTC,SAAS;EACTC,SAAS,GAAG,IAAI;EAChBC,UAAU;EACVC,aAAa;EACbC;AACD,CAAC,EAAG;EACH,MAAMC,QAAQ,GAAGjB,gBAAgB,CAAE,OAAO,EAAE,GAAI,CAAC;EACjD,IAAKiB,QAAQ,EAAG,OAAO,IAAI;EAE3B,MAAMC,YAAY,GAAG;IACpBN,SAAS,EAAEb,UAAU,CACpBa,SAAS,EACT,6CACD,CAAC;IACDO,SAAS,EAAE;EACZ,CAAC;EACD,MAAMC,WAAW,GAAG;IACnBR,SAAS,EAAE,0CAA0C;IACrDS,QAAQ,EAAE,CAAER,SAAS;IACrBS,yBAAyB,EAAE,CAAET,SAAS;IACtCH,QAAQ,EAAEC;EACX,CAAC;EACD,MAAMY,SAAS,GAAG;IACjB,YAAY,EAAEnB,EAAE,CAAE,cAAe;EAClC,CAAC;EAED,MAAMoB,WAAW,GAAG;IACnBjB,MAAM;IACNC,MAAM;IACNF;EACD,CAAC;EAED,OACCmB,aAAA,CAACxB,YAAY;IACZW,SAAS,EAAC,qCAAqC;IAC/CM,YAAY,EAAGA,YAAc;IAC7BE,WAAW,EAAGA,WAAa;IAC3BG,SAAS,EAAGA,SAAW;IACvBG,IAAI,EAAGF,WAAW,CAAEV,UAAU,CAACa,WAAW,CAAC,CAAC,CAAI;IAChDX,KAAK,EAAGA,KAAK,IAAIZ,EAAE,CAAE,SAAU,CAAG;IAClCwB,sBAAsB,EAAG,CAAEf;EAAW,GAElCgB,WAAW,IACdJ,aAAA,CAAAK,QAAA,QACCL,aAAA,CAACvB,SAAS,QACTuB,aAAA,CAACtB,QAAQ;IACRS,SAAS,EAAC,0CAA0C;IACpDmB,OAAO,EAAGA,CAAA,KAAMhB,aAAa,CAAE,SAAU,CAAG;IAC5CW,IAAI,EAAGZ,UAAU,KAAK,SAAS,IAAIT;EAAO,GAExCD,EAAE,CAAE,SAAU,CACP,CAAC,EACXqB,aAAA,CAACtB,QAAQ;IACRS,SAAS,EAAC,0CAA0C;IACpDmB,OAAO,EAAGA,CAAA,KAAMhB,aAAa,CAAE,QAAS,CAAG;IAC3CW,IAAI,EAAGZ,UAAU,KAAK,QAAQ,IAAIT;EAAO,GAEvCD,EAAE,CAAE,QAAS,CACN,CAAC,EACXqB,aAAA,CAACtB,QAAQ;IACRS,SAAS,EAAC,0CAA0C;IACpDmB,OAAO,EAAGA,CAAA,KAAMhB,aAAa,CAAE,QAAS,CAAG;IAC3CW,IAAI,EAAGZ,UAAU,KAAK,QAAQ,IAAIT;EAAO,GAEvCD,EAAE,CAAE,QAAS,CACN,CACA,CAAC,EACVM,QAAQ,GAAImB,WAAY,CACzB,CAEU,CAAC;AAEjB"}
@@ -36,8 +36,9 @@ import { useInputEvents } from './use-input-events';
36
36
  import { useInsertReplacementText } from './use-insert-replacement-text';
37
37
  import { useFirefoxCompat } from './use-firefox-compat';
38
38
  import FormatEdit from './format-edit';
39
- import { getMultilineTag, getAllowedFormats } from './utils';
39
+ import { getAllowedFormats } from './utils';
40
40
  import { Content } from './content';
41
+ import RichTextMultiline from './multiline';
41
42
  export const keyboardShortcutContext = createContext();
42
43
  export const inputEventContext = createContext();
43
44
 
@@ -71,11 +72,11 @@ function removeNativeProps(props) {
71
72
  } = props;
72
73
  return restProps;
73
74
  }
74
- function RichTextWrapper({
75
+ export function RichTextWrapper({
75
76
  children,
76
77
  tagName = 'div',
77
- value: originalValue = '',
78
- onChange: originalOnChange,
78
+ value: adjustedValue = '',
79
+ onChange: adjustedOnChange,
79
80
  isSelected: originalIsSelected,
80
81
  multiline,
81
82
  inlineToolbar,
@@ -89,7 +90,7 @@ function RichTextWrapper({
89
90
  onMerge,
90
91
  onSplit,
91
92
  __unstableOnSplitAtEnd: onSplitAtEnd,
92
- __unstableOnSplitMiddle: onSplitMiddle,
93
+ __unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd,
93
94
  identifier,
94
95
  preserveWhiteSpace,
95
96
  __unstablePastePlainText: pastePlainText,
@@ -99,16 +100,6 @@ function RichTextWrapper({
99
100
  __unstableAllowPrefixTransformations,
100
101
  ...props
101
102
  }, forwardedRef) {
102
- if (multiline) {
103
- deprecated('wp.blockEditor.RichText multiline prop', {
104
- since: '6.1',
105
- version: '6.3',
106
- alternative: 'nested blocks (InnerBlocks)',
107
- link: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/nested-blocks-inner-blocks/'
108
- });
109
- }
110
- const instanceId = useInstanceId(RichTextWrapper);
111
- identifier = identifier || instanceId;
112
103
  props = removeNativeProps(props);
113
104
  const anchorRef = useRef();
114
105
  const {
@@ -149,26 +140,11 @@ function RichTextWrapper({
149
140
  const {
150
141
  selectionChange
151
142
  } = useDispatch(blockEditorStore);
152
- const multilineTag = getMultilineTag(multiline);
153
143
  const adjustedAllowedFormats = getAllowedFormats({
154
144
  allowedFormats,
155
145
  disableFormats
156
146
  });
157
147
  const hasFormats = !adjustedAllowedFormats || adjustedAllowedFormats.length > 0;
158
- let adjustedValue = originalValue;
159
- let adjustedOnChange = originalOnChange;
160
-
161
- // Handle deprecated format.
162
- if (Array.isArray(originalValue)) {
163
- deprecated('wp.blockEditor.RichText value prop as children type', {
164
- since: '6.1',
165
- version: '6.3',
166
- alternative: 'value prop as string',
167
- link: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/introducing-attributes-and-editable-fields/'
168
- });
169
- adjustedValue = childrenSource.toHTML(originalValue);
170
- adjustedOnChange = newValue => originalOnChange(childrenSource.fromDOM(__unstableCreateElement(document, newValue).childNodes));
171
- }
172
148
  const onSelectionChange = useCallback((start, end) => {
173
149
  const selection = {};
174
150
  const unset = start === undefined && end === undefined;
@@ -246,7 +222,6 @@ function RichTextWrapper({
246
222
  onSelectionChange,
247
223
  placeholder,
248
224
  __unstableIsSelected: isSelected,
249
- __unstableMultilineTag: multilineTag,
250
225
  __unstableDisableFormats: disableFormats,
251
226
  preserveWhiteSpace,
252
227
  __unstableDependencies: [...dependencies, tagName],
@@ -317,9 +292,7 @@ function RichTextWrapper({
317
292
  tagName,
318
293
  onReplace,
319
294
  onSplit,
320
- onSplitMiddle,
321
295
  __unstableEmbedURLOnPaste,
322
- multilineTag,
323
296
  preserveWhiteSpace,
324
297
  pastePlainText
325
298
  }), useDelete({
@@ -331,11 +304,10 @@ function RichTextWrapper({
331
304
  value,
332
305
  onReplace,
333
306
  onSplit,
334
- onSplitMiddle,
335
- multilineTag,
336
307
  onChange,
337
308
  disableLineBreaks,
338
- onSplitAtEnd
309
+ onSplitAtEnd,
310
+ onSplitAtDoubleLineEnd
339
311
  }), useFirefoxCompat(), anchorRef]),
340
312
  contentEditable: true,
341
313
  suppressContentEditableWarning: true,
@@ -350,7 +322,33 @@ function RichTextWrapper({
350
322
  tabIndex: props.tabIndex === 0 ? null : props.tabIndex
351
323
  }));
352
324
  }
353
- const ForwardedRichTextContainer = forwardRef(RichTextWrapper);
325
+ const ForwardedRichTextWrapper = forwardRef(RichTextWrapper);
326
+ function RichTextSwitcher(props, ref) {
327
+ let value = props.value;
328
+ let onChange = props.onChange;
329
+
330
+ // Handle deprecated format.
331
+ if (Array.isArray(value)) {
332
+ deprecated('wp.blockEditor.RichText value prop as children type', {
333
+ since: '6.1',
334
+ version: '6.3',
335
+ alternative: 'value prop as string',
336
+ link: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/introducing-attributes-and-editable-fields/'
337
+ });
338
+ value = childrenSource.toHTML(props.value);
339
+ onChange = newValue => props.onChange(childrenSource.fromDOM(__unstableCreateElement(document, newValue).childNodes));
340
+ }
341
+ const Component = props.multiline ? RichTextMultiline : ForwardedRichTextWrapper;
342
+ const instanceId = useInstanceId(RichTextSwitcher);
343
+ return createElement(Component, {
344
+ ...props,
345
+ identifier: props.identifier || instanceId,
346
+ value: value,
347
+ onChange: onChange,
348
+ ref: ref
349
+ });
350
+ }
351
+ const ForwardedRichTextContainer = forwardRef(RichTextSwitcher);
354
352
  ForwardedRichTextContainer.Content = Content;
355
353
  ForwardedRichTextContainer.isEmpty = value => {
356
354
  return !value || value.length === 0;
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useRef","useCallback","forwardRef","createContext","useDispatch","useSelect","children","childrenSource","useInstanceId","useMergeRefs","__unstableUseRichText","useRichText","__unstableCreateElement","removeFormat","deprecated","Popover","useBlockEditorAutocompleteProps","useBlockEditContext","FormatToolbarContainer","store","blockEditorStore","useUndoAutomaticChange","useMarkPersistent","usePasteHandler","useBeforeInputRules","useInputRules","useDelete","useEnter","useFormatTypes","useRemoveBrowserShortcuts","useShortcuts","useInputEvents","useInsertReplacementText","useFirefoxCompat","FormatEdit","getMultilineTag","getAllowedFormats","Content","keyboardShortcutContext","inputEventContext","removeNativeProps","props","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","setRef","disableSuggestions","disableAutocorrection","restProps","RichTextWrapper","tagName","value","originalValue","onChange","originalOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitMiddle","onSplitMiddle","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","__unstableAllowPrefixTransformations","forwardedRef","since","version","alternative","link","instanceId","anchorRef","clientId","selector","select","getSelectionStart","getSelectionEnd","selectionStart","selectionEnd","undefined","attributeKey","offset","getBlockRootClientId","selectionChange","multilineTag","adjustedAllowedFormats","hasFormats","length","adjustedValue","adjustedOnChange","Array","isArray","toHTML","newValue","fromDOM","document","childNodes","onSelectionChange","start","end","selection","unset","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","name","addInvisibleFormats","getValue","ref","richTextRef","html","__unstableFormats","__unstableText","Object","values","changeHandler","__unstableIsSelected","__unstableMultilineTag","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","completers","record","keyboardShortcuts","Set","inputEvents","onFocus","current","focus","TagName","createElement","Fragment","Provider","__unstableSlotNameProvider","inline","editableContentElement","role","contentEditable","suppressContentEditableWarning","className","tabIndex","ForwardedRichTextContainer","isEmpty","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent"],"sources":["@wordpress/block-editor/src/components/rich-text/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { children as childrenSource } from '@wordpress/blocks';\nimport { useInstanceId, useMergeRefs } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\t__unstableCreateElement,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport deprecated from '@wordpress/deprecated';\nimport { Popover } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useUndoAutomaticChange } from './use-undo-automatic-change';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { usePasteHandler } from './use-paste-handler';\nimport { useBeforeInputRules } from './use-before-input-rules';\nimport { useInputRules } from './use-input-rules';\nimport { useDelete } from './use-delete';\nimport { useEnter } from './use-enter';\nimport { useFormatTypes } from './use-format-types';\nimport { useRemoveBrowserShortcuts } from './use-remove-browser-shortcuts';\nimport { useShortcuts } from './use-shortcuts';\nimport { useInputEvents } from './use-input-events';\nimport { useInsertReplacementText } from './use-insert-replacement-text';\nimport { useFirefoxCompat } from './use-firefox-compat';\nimport FormatEdit from './format-edit';\nimport { getMultilineTag, getAllowedFormats } from './utils';\nimport { Content } from './content';\n\nexport const keyboardShortcutContext = createContext();\nexport const inputEventContext = createContext();\n\n/**\n * Removes props used for the native version of RichText so that they are not\n * passed to the DOM element and log warnings.\n *\n * @param {Object} props Props to filter.\n *\n * @return {Object} Filtered props.\n */\nfunction removeNativeProps( props ) {\n\tconst {\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tsetRef,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\t...restProps\n\t} = props;\n\treturn restProps;\n}\n\nfunction RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName = 'div',\n\t\tvalue: originalValue = '',\n\t\tonChange: originalOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitMiddle: onSplitMiddle,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\t__unstableAllowPrefixTransformations,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tif ( multiline ) {\n\t\tdeprecated( 'wp.blockEditor.RichText multiline prop', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t\talternative: 'nested blocks (InnerBlocks)',\n\t\t\tlink: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/nested-blocks-inner-blocks/',\n\t\t} );\n\t}\n\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\n\tidentifier = identifier || instanceId;\n\tprops = removeNativeProps( props );\n\n\tconst anchorRef = useRef();\n\tconst { clientId } = useBlockEditContext();\n\tconst selector = ( select ) => {\n\t\tconst { getSelectionStart, getSelectionEnd } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionEnd.clientId === clientId &&\n\t\t\t\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t};\n\t};\n\t// This selector must run on every render so the right selection state is\n\t// retreived from the store on merge.\n\t// To do: fix this somehow.\n\tconst { selectionStart, selectionEnd, isSelected } = useSelect( selector );\n\tconst { getSelectionStart, getSelectionEnd, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\tconst multilineTag = getMultilineTag( multiline );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\tlet adjustedValue = originalValue;\n\tlet adjustedOnChange = originalOnChange;\n\n\t// Handle deprecated format.\n\tif ( Array.isArray( originalValue ) ) {\n\t\tdeprecated( 'wp.blockEditor.RichText value prop as children type', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t\talternative: 'value prop as string',\n\t\t\tlink: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/introducing-attributes-and-editable-fields/',\n\t\t} );\n\n\t\tadjustedValue = childrenSource.toHTML( originalValue );\n\t\tadjustedOnChange = ( newValue ) =>\n\t\t\toriginalOnChange(\n\t\t\t\tchildrenSource.fromDOM(\n\t\t\t\t\t__unstableCreateElement( document, newValue ).childNodes\n\t\t\t\t)\n\t\t\t);\n\t}\n\n\tconst onSelectionChange = useCallback(\n\t\t( start, end ) => {\n\t\t\tconst selection = {};\n\t\t\tconst unset = start === undefined && end === undefined;\n\n\t\t\tif ( typeof start === 'number' || unset ) {\n\t\t\t\t// If we are only setting the start (or the end below), which\n\t\t\t\t// means a partial selection, and we're not updating a selection\n\t\t\t\t// with the same client ID, abort. This means the selected block\n\t\t\t\t// is a parent block.\n\t\t\t\tif (\n\t\t\t\t\tend === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionEnd().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.start = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: start,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( typeof end === 'number' || unset ) {\n\t\t\t\tif (\n\t\t\t\t\tstart === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionStart().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.end = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: end,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tselectionChange( selection );\n\t\t},\n\t\t[ clientId, identifier ]\n\t);\n\n\tconst {\n\t\tformatTypes,\n\t\tprepareHandlers,\n\t\tvalueHandlers,\n\t\tchangeHandlers,\n\t\tdependencies,\n\t} = useFormatTypes( {\n\t\tclientId,\n\t\tidentifier,\n\t\twithoutInteractiveFormatting,\n\t\tallowedFormats: adjustedAllowedFormats,\n\t} );\n\n\tfunction addEditorOnlyFormats( value ) {\n\t\treturn valueHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tfunction removeEditorOnlyFormats( value ) {\n\t\tformatTypes.forEach( ( formatType ) => {\n\t\t\t// Remove formats created by prepareEditableTree, because they are editor only.\n\t\t\tif ( formatType.__experimentalCreatePrepareEditableTree ) {\n\t\t\t\tvalue = removeFormat(\n\t\t\t\t\tvalue,\n\t\t\t\t\tformatType.name,\n\t\t\t\t\t0,\n\t\t\t\t\tvalue.text.length\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn value.formats;\n\t}\n\n\tfunction addInvisibleFormats( value ) {\n\t\treturn prepareHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tconst {\n\t\tvalue,\n\t\tgetValue,\n\t\tonChange,\n\t\tref: richTextRef,\n\t} = useRichText( {\n\t\tvalue: adjustedValue,\n\t\tonChange( html, { __unstableFormats, __unstableText } ) {\n\t\t\tadjustedOnChange( html );\n\t\t\tObject.values( changeHandlers ).forEach( ( changeHandler ) => {\n\t\t\t\tchangeHandler( __unstableFormats, __unstableText );\n\t\t\t} );\n\t\t},\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tonSelectionChange,\n\t\tplaceholder,\n\t\t__unstableIsSelected: isSelected,\n\t\t__unstableMultilineTag: multilineTag,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tpreserveWhiteSpace,\n\t\t__unstableDependencies: [ ...dependencies, tagName ],\n\t\t__unstableAfterParse: addEditorOnlyFormats,\n\t\t__unstableBeforeSerialize: removeEditorOnlyFormats,\n\t\t__unstableAddInvisibleFormats: addInvisibleFormats,\n\t} );\n\tconst autocompleteProps = useBlockEditorAutocompleteProps( {\n\t\tonReplace,\n\t\tcompleters: autocompleters,\n\t\trecord: value,\n\t\tonChange,\n\t} );\n\n\tuseMarkPersistent( { html: adjustedValue, value } );\n\n\tconst keyboardShortcuts = useRef( new Set() );\n\tconst inputEvents = useRef( new Set() );\n\n\tfunction onFocus() {\n\t\tanchorRef.current?.focus();\n\t}\n\n\tconst TagName = tagName;\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<keyboardShortcutContext.Provider value={ keyboardShortcuts }>\n\t\t\t\t\t<inputEventContext.Provider value={ inputEvents }>\n\t\t\t\t\t\t<Popover.__unstableSlotNameProvider value=\"__unstable-block-tools-after\">\n\t\t\t\t\t\t\t{ children &&\n\t\t\t\t\t\t\t\tchildren( { value, onChange, onFocus } ) }\n\n\t\t\t\t\t\t\t<FormatEdit\n\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\tformatTypes={ formatTypes }\n\t\t\t\t\t\t\t\tforwardedRef={ anchorRef }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover.__unstableSlotNameProvider>\n\t\t\t\t\t</inputEventContext.Provider>\n\t\t\t\t</keyboardShortcutContext.Provider>\n\t\t\t) }\n\t\t\t{ isSelected && hasFormats && (\n\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\teditableContentElement={ anchorRef.current }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<TagName\n\t\t\t\t// Overridable props.\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline={ ! disableLineBreaks }\n\t\t\t\taria-label={ placeholder }\n\t\t\t\t{ ...props }\n\t\t\t\t{ ...autocompleteProps }\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\tforwardedRef,\n\t\t\t\t\tautocompleteProps.ref,\n\t\t\t\t\tprops.ref,\n\t\t\t\t\trichTextRef,\n\t\t\t\t\tuseBeforeInputRules( { value, onChange } ),\n\t\t\t\t\tuseInputRules( {\n\t\t\t\t\t\tgetValue,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\t__unstableAllowPrefixTransformations,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tselectionChange,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseInsertReplacementText(),\n\t\t\t\t\tuseRemoveBrowserShortcuts(),\n\t\t\t\t\tuseShortcuts( keyboardShortcuts ),\n\t\t\t\t\tuseInputEvents( inputEvents ),\n\t\t\t\t\tuseUndoAutomaticChange(),\n\t\t\t\t\tusePasteHandler( {\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\ttagName,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\tonSplitMiddle,\n\t\t\t\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t\t\tpastePlainText,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseDelete( {\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonMerge,\n\t\t\t\t\t\tonRemove,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseEnter( {\n\t\t\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\tonSplitMiddle,\n\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tdisableLineBreaks,\n\t\t\t\t\t\tonSplitAtEnd,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseFirefoxCompat(),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ true }\n\t\t\t\tsuppressContentEditableWarning={ true }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-rich-text__editable',\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'rich-text'\n\t\t\t\t) }\n\t\t\t\t// Setting tabIndex to 0 is unnecessary, the element is already\n\t\t\t\t// focusable because it's contentEditable. This also fixes a\n\t\t\t\t// Safari bug where it's not possible to Shift+Click multi\n\t\t\t\t// select blocks when Shift Clicking into an element with\n\t\t\t\t// tabIndex because Safari will focus the element. However,\n\t\t\t\t// Safari will correctly ignore nested contentEditable elements.\n\t\t\t\ttabIndex={ props.tabIndex === 0 ? null : props.tabIndex }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nconst ForwardedRichTextContainer = forwardRef( RichTextWrapper );\n\nForwardedRichTextContainer.Content = Content;\nForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nexport default ForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","useRef","useCallback","forwardRef","createContext","useDispatch","useSelect","children","childrenSource","useInstanceId","useMergeRefs","__unstableUseRichText","useRichText","__unstableCreateElement","removeFormat","deprecated","Popover","useBlockEditorAutocompleteProps","useBlockEditContext","FormatToolbarContainer","store","blockEditorStore","useUndoAutomaticChange","useMarkPersistent","usePasteHandler","useBeforeInputRules","useInputRules","useDelete","useEnter","useFormatTypes","useRemoveBrowserShortcuts","useShortcuts","useInputEvents","useInsertReplacementText","useFirefoxCompat","FormatEdit","getAllowedFormats","Content","RichTextMultiline","keyboardShortcutContext","inputEventContext","removeNativeProps","props","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","setRef","disableSuggestions","disableAutocorrection","restProps","RichTextWrapper","tagName","value","adjustedValue","onChange","adjustedOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitAtDoubleLineEnd","onSplitAtDoubleLineEnd","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","__unstableAllowPrefixTransformations","forwardedRef","anchorRef","clientId","selector","select","getSelectionStart","getSelectionEnd","selectionStart","selectionEnd","undefined","attributeKey","offset","getBlockRootClientId","selectionChange","adjustedAllowedFormats","hasFormats","length","onSelectionChange","start","end","selection","unset","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","name","addInvisibleFormats","getValue","ref","richTextRef","html","__unstableFormats","__unstableText","Object","values","changeHandler","__unstableIsSelected","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","completers","record","keyboardShortcuts","Set","inputEvents","onFocus","current","focus","TagName","createElement","Fragment","Provider","__unstableSlotNameProvider","inline","editableContentElement","role","contentEditable","suppressContentEditableWarning","className","tabIndex","ForwardedRichTextWrapper","RichTextSwitcher","Array","isArray","since","version","alternative","link","toHTML","newValue","fromDOM","document","childNodes","Component","instanceId","ForwardedRichTextContainer","isEmpty","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent"],"sources":["@wordpress/block-editor/src/components/rich-text/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { children as childrenSource } from '@wordpress/blocks';\nimport { useInstanceId, useMergeRefs } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\t__unstableCreateElement,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport deprecated from '@wordpress/deprecated';\nimport { Popover } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useUndoAutomaticChange } from './use-undo-automatic-change';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { usePasteHandler } from './use-paste-handler';\nimport { useBeforeInputRules } from './use-before-input-rules';\nimport { useInputRules } from './use-input-rules';\nimport { useDelete } from './use-delete';\nimport { useEnter } from './use-enter';\nimport { useFormatTypes } from './use-format-types';\nimport { useRemoveBrowserShortcuts } from './use-remove-browser-shortcuts';\nimport { useShortcuts } from './use-shortcuts';\nimport { useInputEvents } from './use-input-events';\nimport { useInsertReplacementText } from './use-insert-replacement-text';\nimport { useFirefoxCompat } from './use-firefox-compat';\nimport FormatEdit from './format-edit';\nimport { getAllowedFormats } from './utils';\nimport { Content } from './content';\nimport RichTextMultiline from './multiline';\n\nexport const keyboardShortcutContext = createContext();\nexport const inputEventContext = createContext();\n\n/**\n * Removes props used for the native version of RichText so that they are not\n * passed to the DOM element and log warnings.\n *\n * @param {Object} props Props to filter.\n *\n * @return {Object} Filtered props.\n */\nfunction removeNativeProps( props ) {\n\tconst {\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tsetRef,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\t...restProps\n\t} = props;\n\treturn restProps;\n}\n\nexport function RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName = 'div',\n\t\tvalue: adjustedValue = '',\n\t\tonChange: adjustedOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\t__unstableAllowPrefixTransformations,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tprops = removeNativeProps( props );\n\n\tconst anchorRef = useRef();\n\tconst { clientId } = useBlockEditContext();\n\tconst selector = ( select ) => {\n\t\tconst { getSelectionStart, getSelectionEnd } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionEnd.clientId === clientId &&\n\t\t\t\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t};\n\t};\n\t// This selector must run on every render so the right selection state is\n\t// retreived from the store on merge.\n\t// To do: fix this somehow.\n\tconst { selectionStart, selectionEnd, isSelected } = useSelect( selector );\n\tconst { getSelectionStart, getSelectionEnd, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\n\tconst onSelectionChange = useCallback(\n\t\t( start, end ) => {\n\t\t\tconst selection = {};\n\t\t\tconst unset = start === undefined && end === undefined;\n\n\t\t\tif ( typeof start === 'number' || unset ) {\n\t\t\t\t// If we are only setting the start (or the end below), which\n\t\t\t\t// means a partial selection, and we're not updating a selection\n\t\t\t\t// with the same client ID, abort. This means the selected block\n\t\t\t\t// is a parent block.\n\t\t\t\tif (\n\t\t\t\t\tend === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionEnd().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.start = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: start,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( typeof end === 'number' || unset ) {\n\t\t\t\tif (\n\t\t\t\t\tstart === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionStart().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.end = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: end,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tselectionChange( selection );\n\t\t},\n\t\t[ clientId, identifier ]\n\t);\n\n\tconst {\n\t\tformatTypes,\n\t\tprepareHandlers,\n\t\tvalueHandlers,\n\t\tchangeHandlers,\n\t\tdependencies,\n\t} = useFormatTypes( {\n\t\tclientId,\n\t\tidentifier,\n\t\twithoutInteractiveFormatting,\n\t\tallowedFormats: adjustedAllowedFormats,\n\t} );\n\n\tfunction addEditorOnlyFormats( value ) {\n\t\treturn valueHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tfunction removeEditorOnlyFormats( value ) {\n\t\tformatTypes.forEach( ( formatType ) => {\n\t\t\t// Remove formats created by prepareEditableTree, because they are editor only.\n\t\t\tif ( formatType.__experimentalCreatePrepareEditableTree ) {\n\t\t\t\tvalue = removeFormat(\n\t\t\t\t\tvalue,\n\t\t\t\t\tformatType.name,\n\t\t\t\t\t0,\n\t\t\t\t\tvalue.text.length\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn value.formats;\n\t}\n\n\tfunction addInvisibleFormats( value ) {\n\t\treturn prepareHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tconst {\n\t\tvalue,\n\t\tgetValue,\n\t\tonChange,\n\t\tref: richTextRef,\n\t} = useRichText( {\n\t\tvalue: adjustedValue,\n\t\tonChange( html, { __unstableFormats, __unstableText } ) {\n\t\t\tadjustedOnChange( html );\n\t\t\tObject.values( changeHandlers ).forEach( ( changeHandler ) => {\n\t\t\t\tchangeHandler( __unstableFormats, __unstableText );\n\t\t\t} );\n\t\t},\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tonSelectionChange,\n\t\tplaceholder,\n\t\t__unstableIsSelected: isSelected,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tpreserveWhiteSpace,\n\t\t__unstableDependencies: [ ...dependencies, tagName ],\n\t\t__unstableAfterParse: addEditorOnlyFormats,\n\t\t__unstableBeforeSerialize: removeEditorOnlyFormats,\n\t\t__unstableAddInvisibleFormats: addInvisibleFormats,\n\t} );\n\tconst autocompleteProps = useBlockEditorAutocompleteProps( {\n\t\tonReplace,\n\t\tcompleters: autocompleters,\n\t\trecord: value,\n\t\tonChange,\n\t} );\n\n\tuseMarkPersistent( { html: adjustedValue, value } );\n\n\tconst keyboardShortcuts = useRef( new Set() );\n\tconst inputEvents = useRef( new Set() );\n\n\tfunction onFocus() {\n\t\tanchorRef.current?.focus();\n\t}\n\n\tconst TagName = tagName;\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<keyboardShortcutContext.Provider value={ keyboardShortcuts }>\n\t\t\t\t\t<inputEventContext.Provider value={ inputEvents }>\n\t\t\t\t\t\t<Popover.__unstableSlotNameProvider value=\"__unstable-block-tools-after\">\n\t\t\t\t\t\t\t{ children &&\n\t\t\t\t\t\t\t\tchildren( { value, onChange, onFocus } ) }\n\n\t\t\t\t\t\t\t<FormatEdit\n\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\tformatTypes={ formatTypes }\n\t\t\t\t\t\t\t\tforwardedRef={ anchorRef }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover.__unstableSlotNameProvider>\n\t\t\t\t\t</inputEventContext.Provider>\n\t\t\t\t</keyboardShortcutContext.Provider>\n\t\t\t) }\n\t\t\t{ isSelected && hasFormats && (\n\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\teditableContentElement={ anchorRef.current }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<TagName\n\t\t\t\t// Overridable props.\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline={ ! disableLineBreaks }\n\t\t\t\taria-label={ placeholder }\n\t\t\t\t{ ...props }\n\t\t\t\t{ ...autocompleteProps }\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\tforwardedRef,\n\t\t\t\t\tautocompleteProps.ref,\n\t\t\t\t\tprops.ref,\n\t\t\t\t\trichTextRef,\n\t\t\t\t\tuseBeforeInputRules( { value, onChange } ),\n\t\t\t\t\tuseInputRules( {\n\t\t\t\t\t\tgetValue,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\t__unstableAllowPrefixTransformations,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tselectionChange,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseInsertReplacementText(),\n\t\t\t\t\tuseRemoveBrowserShortcuts(),\n\t\t\t\t\tuseShortcuts( keyboardShortcuts ),\n\t\t\t\t\tuseInputEvents( inputEvents ),\n\t\t\t\t\tuseUndoAutomaticChange(),\n\t\t\t\t\tusePasteHandler( {\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\ttagName,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t\t\tpastePlainText,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseDelete( {\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonMerge,\n\t\t\t\t\t\tonRemove,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseEnter( {\n\t\t\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tdisableLineBreaks,\n\t\t\t\t\t\tonSplitAtEnd,\n\t\t\t\t\t\tonSplitAtDoubleLineEnd,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseFirefoxCompat(),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ true }\n\t\t\t\tsuppressContentEditableWarning={ true }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-rich-text__editable',\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'rich-text'\n\t\t\t\t) }\n\t\t\t\t// Setting tabIndex to 0 is unnecessary, the element is already\n\t\t\t\t// focusable because it's contentEditable. This also fixes a\n\t\t\t\t// Safari bug where it's not possible to Shift+Click multi\n\t\t\t\t// select blocks when Shift Clicking into an element with\n\t\t\t\t// tabIndex because Safari will focus the element. However,\n\t\t\t\t// Safari will correctly ignore nested contentEditable elements.\n\t\t\t\ttabIndex={ props.tabIndex === 0 ? null : props.tabIndex }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nconst ForwardedRichTextWrapper = forwardRef( RichTextWrapper );\n\nfunction RichTextSwitcher( props, ref ) {\n\tlet value = props.value;\n\tlet onChange = props.onChange;\n\n\t// Handle deprecated format.\n\tif ( Array.isArray( value ) ) {\n\t\tdeprecated( 'wp.blockEditor.RichText value prop as children type', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t\talternative: 'value prop as string',\n\t\t\tlink: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/introducing-attributes-and-editable-fields/',\n\t\t} );\n\n\t\tvalue = childrenSource.toHTML( props.value );\n\t\tonChange = ( newValue ) =>\n\t\t\tprops.onChange(\n\t\t\t\tchildrenSource.fromDOM(\n\t\t\t\t\t__unstableCreateElement( document, newValue ).childNodes\n\t\t\t\t)\n\t\t\t);\n\t}\n\n\tconst Component = props.multiline\n\t\t? RichTextMultiline\n\t\t: ForwardedRichTextWrapper;\n\tconst instanceId = useInstanceId( RichTextSwitcher );\n\n\treturn (\n\t\t<Component\n\t\t\t{ ...props }\n\t\t\tidentifier={ props.identifier || instanceId }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nconst ForwardedRichTextContainer = forwardRef( RichTextSwitcher );\n\nForwardedRichTextContainer.Content = Content;\nForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nexport default ForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"],"mappings":"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"}
@@ -11,7 +11,7 @@ import { Platform, useRef, useCallback, forwardRef } from '@wordpress/element';
11
11
  import { useDispatch, useSelect } from '@wordpress/data';
12
12
  import { pasteHandler, children as childrenSource, getBlockTransforms, findTransform, isUnmodifiedDefaultBlock } from '@wordpress/blocks';
13
13
  import { useInstanceId, useMergeRefs } from '@wordpress/compose';
14
- import { __experimentalRichText as RichText, __unstableCreateElement, isEmpty, __unstableIsEmptyLine as isEmptyLine, insert, __unstableInsertLineSeparator as insertLineSeparator, create, replace, split, __UNSTABLE_LINE_SEPARATOR as LINE_SEPARATOR, toHTMLString, slice } from '@wordpress/rich-text';
14
+ import { __experimentalRichText as RichText, __unstableCreateElement, isEmpty, insert, create, split, toHTMLString, slice } from '@wordpress/rich-text';
15
15
  import { isURL } from '@wordpress/url';
16
16
 
17
17
  /**
@@ -267,32 +267,20 @@ function RichTextWrapper({
267
267
  if (onCustomEnter) {
268
268
  onCustomEnter();
269
269
  }
270
- if (multiline) {
271
- if (shiftKey) {
272
- if (!disableLineBreaks) {
273
- onChange(insert(value, '\n'));
274
- }
275
- } else if (canSplit && isEmptyLine(value)) {
276
- splitValue(value);
277
- } else {
278
- onChange(insertLineSeparator(value));
279
- }
280
- } else {
281
- const {
282
- text,
283
- start: splitStart,
284
- end: splitEnd
285
- } = value;
286
- const canSplitAtEnd = onSplitAtEnd && splitStart === splitEnd && splitEnd === text.length;
287
- if (shiftKey || !canSplit && !canSplitAtEnd) {
288
- if (!disableLineBreaks) {
289
- onChange(insert(value, '\n'));
290
- }
291
- } else if (!canSplit && canSplitAtEnd) {
292
- onSplitAtEnd();
293
- } else if (canSplit) {
294
- splitValue(value);
270
+ const {
271
+ text,
272
+ start: splitStart,
273
+ end: splitEnd
274
+ } = value;
275
+ const canSplitAtEnd = onSplitAtEnd && splitStart === splitEnd && splitEnd === text.length;
276
+ if (shiftKey || !canSplit && !canSplitAtEnd) {
277
+ if (!disableLineBreaks) {
278
+ onChange(insert(value, '\n'));
295
279
  }
280
+ } else if (!canSplit && canSplitAtEnd) {
281
+ onSplitAtEnd();
282
+ } else if (canSplit) {
283
+ splitValue(value);
296
284
  }
297
285
  },
298
286
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -372,16 +360,10 @@ function RichTextWrapper({
372
360
  preserveWhiteSpace
373
361
  });
374
362
  if (typeof content === 'string') {
375
- let valueToInsert = create({
363
+ const valueToInsert = create({
376
364
  html: content
377
365
  });
378
366
  addActiveFormats(valueToInsert, activeFormats);
379
-
380
- // If the content should be multiline, we should process text
381
- // separated by a line break as separate lines.
382
- if (multilineTag) {
383
- valueToInsert = replace(valueToInsert, /\n+/g, LINE_SEPARATOR);
384
- }
385
367
  onChange(insert(value, valueToInsert));
386
368
  } else if (content.length > 0) {
387
369
  // When an URL is pasted in an empty paragraph then the EmbedHandlerPicker should showcase options allowing the transformation of that URL