@wordpress/block-editor 12.14.0 → 12.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +1 -1
  3. package/build/components/block-list/block.native.js +2 -0
  4. package/build/components/block-list/block.native.js.map +1 -1
  5. package/build/components/block-parent-selector/index.js +1 -1
  6. package/build/components/block-parent-selector/index.js.map +1 -1
  7. package/build/components/block-pattern-setup/index.js +25 -16
  8. package/build/components/block-pattern-setup/index.js.map +1 -1
  9. package/build/components/block-pattern-setup/setup-toolbar.js +4 -2
  10. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  11. package/build/components/block-patterns-list/index.js +36 -19
  12. package/build/components/block-patterns-list/index.js.map +1 -1
  13. package/build/components/block-rename/index.js +28 -0
  14. package/build/components/block-rename/index.js.map +1 -0
  15. package/build/components/block-rename/is-empty-string.js +10 -0
  16. package/build/components/block-rename/is-empty-string.js.map +1 -0
  17. package/build/components/block-rename/modal.js +87 -0
  18. package/build/components/block-rename/modal.js.map +1 -0
  19. package/build/components/block-rename/rename-control.js +74 -0
  20. package/build/components/block-rename/rename-control.js.map +1 -0
  21. package/build/components/block-rename/use-block-rename.js +17 -0
  22. package/build/components/block-rename/use-block-rename.js.map +1 -0
  23. package/build/components/block-settings-menu/block-settings-dropdown.js +33 -20
  24. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  25. package/build/components/block-settings-menu-controls/index.js +7 -0
  26. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  27. package/build/components/block-toolbar/block-toolbar-menu.native.js +1 -1
  28. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  29. package/build/components/block-types-list/index.js +6 -2
  30. package/build/components/block-types-list/index.js.map +1 -1
  31. package/build/components/date-format-picker/index.js +8 -1
  32. package/build/components/date-format-picker/index.js.map +1 -1
  33. package/build/components/global-styles/advanced-panel.js +1 -1
  34. package/build/components/global-styles/advanced-panel.js.map +1 -1
  35. package/build/components/image-size-control/index.js +0 -5
  36. package/build/components/image-size-control/index.js.map +1 -1
  37. package/build/components/inner-blocks/index.js +3 -1
  38. package/build/components/inner-blocks/index.js.map +1 -1
  39. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js +29 -31
  40. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  41. package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
  42. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  43. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -1
  44. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  45. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +1 -1
  46. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  47. package/build/components/inserter/block-patterns-tab/utils.js +3 -4
  48. package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
  49. package/build/components/inserter/hooks/use-patterns-state.js +2 -1
  50. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  51. package/build/components/inserter-listbox/index.js +11 -6
  52. package/build/components/inserter-listbox/index.js.map +1 -1
  53. package/build/components/inserter-listbox/item.js +24 -23
  54. package/build/components/inserter-listbox/item.js.map +1 -1
  55. package/build/components/inserter-listbox/row.js +5 -5
  56. package/build/components/inserter-listbox/row.js.map +1 -1
  57. package/build/components/list-view/use-list-view-expand-selected-item.js +2 -3
  58. package/build/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  59. package/build/components/preview-options/index.js +4 -2
  60. package/build/components/preview-options/index.js.map +1 -1
  61. package/build/components/rich-text/index.native.js +1 -1
  62. package/build/components/rich-text/index.native.js.map +1 -1
  63. package/build/components/rich-text/native/index.native.js +34 -3
  64. package/build/components/rich-text/native/index.native.js.map +1 -1
  65. package/build/components/rich-text/use-input-rules.js +30 -1
  66. package/build/components/rich-text/use-input-rules.js.map +1 -1
  67. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  68. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  69. package/build/components/use-block-drop-zone/index.js +4 -1
  70. package/build/components/use-block-drop-zone/index.js.map +1 -1
  71. package/build/components/use-moving-animation/index.js +2 -1
  72. package/build/components/use-moving-animation/index.js.map +1 -1
  73. package/build/components/use-settings/index.js +2 -2
  74. package/build/components/use-settings/index.js.map +1 -1
  75. package/build/hooks/block-renaming.js +42 -0
  76. package/build/hooks/block-renaming.js.map +1 -1
  77. package/build/hooks/custom-fields.js +53 -48
  78. package/build/hooks/custom-fields.js.map +1 -1
  79. package/build/hooks/index.js +0 -1
  80. package/build/hooks/index.js.map +1 -1
  81. package/build/hooks/layout.js +13 -7
  82. package/build/hooks/layout.js.map +1 -1
  83. package/build/layouts/constrained.js +4 -3
  84. package/build/layouts/constrained.js.map +1 -1
  85. package/build/store/selectors.js +2 -0
  86. package/build/store/selectors.js.map +1 -1
  87. package/build/utils/transform-styles/index.js +26 -6
  88. package/build/utils/transform-styles/index.js.map +1 -1
  89. package/build-module/components/block-list/block.native.js +2 -0
  90. package/build-module/components/block-list/block.native.js.map +1 -1
  91. package/build-module/components/block-parent-selector/index.js +1 -1
  92. package/build-module/components/block-parent-selector/index.js.map +1 -1
  93. package/build-module/components/block-pattern-setup/index.js +24 -15
  94. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  95. package/build-module/components/block-pattern-setup/setup-toolbar.js +4 -2
  96. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  97. package/build-module/components/block-patterns-list/index.js +36 -19
  98. package/build-module/components/block-patterns-list/index.js.map +1 -1
  99. package/build-module/components/block-rename/index.js +4 -0
  100. package/build-module/components/block-rename/index.js.map +1 -0
  101. package/build-module/components/block-rename/is-empty-string.js +4 -0
  102. package/build-module/components/block-rename/is-empty-string.js.map +1 -0
  103. package/build-module/components/block-rename/modal.js +79 -0
  104. package/build-module/components/block-rename/modal.js.map +1 -0
  105. package/build-module/components/block-rename/rename-control.js +66 -0
  106. package/build-module/components/block-rename/rename-control.js.map +1 -0
  107. package/build-module/components/block-rename/use-block-rename.js +10 -0
  108. package/build-module/components/block-rename/use-block-rename.js.map +1 -0
  109. package/build-module/components/block-settings-menu/block-settings-dropdown.js +34 -21
  110. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  111. package/build-module/components/block-settings-menu-controls/index.js +7 -0
  112. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  113. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +1 -1
  114. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  115. package/build-module/components/block-types-list/index.js +6 -2
  116. package/build-module/components/block-types-list/index.js.map +1 -1
  117. package/build-module/components/date-format-picker/index.js +8 -1
  118. package/build-module/components/date-format-picker/index.js.map +1 -1
  119. package/build-module/components/global-styles/advanced-panel.js +1 -1
  120. package/build-module/components/global-styles/advanced-panel.js.map +1 -1
  121. package/build-module/components/image-size-control/index.js +0 -5
  122. package/build-module/components/image-size-control/index.js.map +1 -1
  123. package/build-module/components/inner-blocks/index.js +3 -1
  124. package/build-module/components/inner-blocks/index.js.map +1 -1
  125. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js +30 -32
  126. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  127. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  128. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  129. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +4 -4
  130. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  131. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +2 -2
  132. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  133. package/build-module/components/inserter/block-patterns-tab/utils.js +3 -4
  134. package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
  135. package/build-module/components/inserter/hooks/use-patterns-state.js +2 -1
  136. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  137. package/build-module/components/inserter-listbox/index.js +13 -8
  138. package/build-module/components/inserter-listbox/index.js.map +1 -1
  139. package/build-module/components/inserter-listbox/item.js +25 -23
  140. package/build-module/components/inserter-listbox/item.js.map +1 -1
  141. package/build-module/components/inserter-listbox/row.js +6 -5
  142. package/build-module/components/inserter-listbox/row.js.map +1 -1
  143. package/build-module/components/list-view/use-list-view-expand-selected-item.js +2 -3
  144. package/build-module/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  145. package/build-module/components/preview-options/index.js +4 -2
  146. package/build-module/components/preview-options/index.js.map +1 -1
  147. package/build-module/components/rich-text/index.native.js +1 -1
  148. package/build-module/components/rich-text/index.native.js.map +1 -1
  149. package/build-module/components/rich-text/native/index.native.js +34 -3
  150. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  151. package/build-module/components/rich-text/use-input-rules.js +31 -2
  152. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  153. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  154. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  155. package/build-module/components/use-block-drop-zone/index.js +4 -1
  156. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  157. package/build-module/components/use-moving-animation/index.js +2 -1
  158. package/build-module/components/use-moving-animation/index.js.map +1 -1
  159. package/build-module/components/use-settings/index.js +2 -2
  160. package/build-module/components/use-settings/index.js.map +1 -1
  161. package/build-module/hooks/block-renaming.js +40 -0
  162. package/build-module/hooks/block-renaming.js.map +1 -1
  163. package/build-module/hooks/custom-fields.js +53 -48
  164. package/build-module/hooks/custom-fields.js.map +1 -1
  165. package/build-module/hooks/index.js +0 -1
  166. package/build-module/hooks/index.js.map +1 -1
  167. package/build-module/hooks/layout.js +13 -7
  168. package/build-module/hooks/layout.js.map +1 -1
  169. package/build-module/layouts/constrained.js +4 -3
  170. package/build-module/layouts/constrained.js.map +1 -1
  171. package/build-module/store/selectors.js +2 -0
  172. package/build-module/store/selectors.js.map +1 -1
  173. package/build-module/utils/transform-styles/index.js +24 -7
  174. package/build-module/utils/transform-styles/index.js.map +1 -1
  175. package/build-style/content-rtl.css +6 -6
  176. package/build-style/content.css +6 -6
  177. package/build-style/style-rtl.css +10 -5
  178. package/build-style/style.css +10 -5
  179. package/package.json +31 -31
  180. package/src/components/block-list/block.native.js +2 -0
  181. package/src/components/block-parent-selector/index.js +1 -1
  182. package/src/components/block-pattern-setup/index.js +38 -22
  183. package/src/components/block-pattern-setup/setup-toolbar.js +2 -0
  184. package/src/components/block-pattern-setup/style.scss +4 -1
  185. package/src/components/block-patterns-list/README.md +4 -4
  186. package/src/components/block-patterns-list/index.js +60 -34
  187. package/src/components/block-patterns-list/style.scss +7 -0
  188. package/src/components/block-rename/index.js +3 -0
  189. package/src/components/block-rename/is-empty-string.js +3 -0
  190. package/src/components/block-rename/modal.js +115 -0
  191. package/src/components/block-rename/rename-control.js +80 -0
  192. package/src/components/block-rename/use-block-rename.js +10 -0
  193. package/src/components/block-settings-menu/block-settings-dropdown.js +38 -34
  194. package/src/components/block-settings-menu-controls/index.js +9 -0
  195. package/src/components/block-toolbar/block-toolbar-menu.native.js +1 -4
  196. package/src/components/block-types-list/index.js +5 -4
  197. package/src/components/button-block-appender/content.scss +2 -2
  198. package/src/components/date-format-picker/index.js +7 -0
  199. package/src/components/editable-text/README.md +0 -36
  200. package/src/components/global-styles/advanced-panel.js +1 -1
  201. package/src/components/image-size-control/index.js +0 -6
  202. package/src/components/inner-blocks/index.js +6 -2
  203. package/src/components/inner-blocks/warning-max-depth-exceeded.native.js +57 -33
  204. package/src/components/inserter/block-patterns-explorer/pattern-list.js +5 -1
  205. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +7 -3
  206. package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +6 -1
  207. package/src/components/inserter/block-patterns-tab/utils.js +6 -4
  208. package/src/components/inserter/hooks/use-patterns-state.js +3 -1
  209. package/src/components/inserter-listbox/index.js +11 -7
  210. package/src/components/inserter-listbox/item.js +11 -12
  211. package/src/components/inserter-listbox/row.js +6 -12
  212. package/src/components/list-view/use-list-view-expand-selected-item.js +7 -8
  213. package/src/components/plain-text/README.md +0 -28
  214. package/src/components/preview-options/index.js +2 -0
  215. package/src/components/rich-text/README.md +0 -58
  216. package/src/components/rich-text/index.native.js +1 -1
  217. package/src/components/rich-text/native/index.native.js +45 -2
  218. package/src/components/rich-text/use-input-rules.js +30 -2
  219. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  220. package/src/components/url-input/README.md +1 -74
  221. package/src/components/use-block-drop-zone/index.js +4 -1
  222. package/src/components/use-moving-animation/index.js +1 -1
  223. package/src/components/use-settings/index.js +2 -2
  224. package/src/components/use-settings/test/index.js +1 -1
  225. package/src/hooks/block-renaming.js +47 -0
  226. package/src/hooks/custom-fields.js +68 -65
  227. package/src/hooks/index.js +0 -1
  228. package/src/hooks/layout.js +12 -8
  229. package/src/hooks/test/__snapshots__/align.native.js.snap +5 -5
  230. package/src/layouts/constrained.js +57 -50
  231. package/src/store/selectors.js +2 -0
  232. package/src/style.scss +1 -1
  233. package/src/utils/test/transform-styles.js +49 -0
  234. package/src/utils/transform-styles/index.js +39 -13
  235. package/build/hooks/block-rename-ui.js +0 -167
  236. package/build/hooks/block-rename-ui.js.map +0 -1
  237. package/build-module/hooks/block-rename-ui.js +0 -159
  238. package/build-module/hooks/block-rename-ui.js.map +0 -1
  239. package/src/hooks/block-rename-ui.js +0 -228
  240. /package/src/{hooks/block-rename-ui.scss → components/block-rename/style.scss} +0 -0
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
@@ -8,7 +7,7 @@ exports.default = void 0;
8
7
  var _react = require("react");
9
8
  var _components = require("@wordpress/components");
10
9
  var _element = require("@wordpress/element");
11
- var _context = _interopRequireDefault(require("./context"));
10
+ var _lockUnlock = require("../../lock-unlock");
12
11
  /**
13
12
  * WordPress dependencies
14
13
  */
@@ -17,39 +16,41 @@ var _context = _interopRequireDefault(require("./context"));
17
16
  * Internal dependencies
18
17
  */
19
18
 
19
+ const {
20
+ CompositeItemV2: CompositeItem
21
+ } = (0, _lockUnlock.unlock)(_components.privateApis);
20
22
  function InserterListboxItem({
21
23
  isFirst,
22
24
  as: Component,
23
25
  children,
24
26
  ...props
25
27
  }, ref) {
26
- const state = (0, _element.useContext)(_context.default);
27
- return (0, _react.createElement)(_components.__unstableCompositeItem, {
28
+ return (0, _react.createElement)(CompositeItem, {
28
29
  ref: ref,
29
- state: state,
30
30
  role: "option"
31
- // Use the CompositeItem `focusable` prop over Button's
32
- // isFocusable. The latter was shown to cause an issue
33
- // with tab order in the inserter list.
31
+ // Use the CompositeItem `accessibleWhenDisabled` prop
32
+ // over Button's `isFocusable`. The latter was shown to
33
+ // cause an issue with tab order in the inserter list.
34
34
  ,
35
- focusable: true,
36
- ...props
37
- }, htmlProps => {
38
- const propsWithTabIndex = {
39
- ...htmlProps,
40
- tabIndex: isFirst ? 0 : htmlProps.tabIndex
41
- };
42
- if (Component) {
43
- return (0, _react.createElement)(Component, {
35
+ accessibleWhenDisabled: true,
36
+ ...props,
37
+ render: htmlProps => {
38
+ const propsWithTabIndex = {
39
+ ...htmlProps,
40
+ tabIndex: isFirst ? 0 : htmlProps.tabIndex
41
+ };
42
+ if (Component) {
43
+ return (0, _react.createElement)(Component, {
44
+ ...propsWithTabIndex
45
+ }, children);
46
+ }
47
+ if (typeof children === 'function') {
48
+ return children(propsWithTabIndex);
49
+ }
50
+ return (0, _react.createElement)(_components.Button, {
44
51
  ...propsWithTabIndex
45
52
  }, children);
46
53
  }
47
- if (typeof children === 'function') {
48
- return children(propsWithTabIndex);
49
- }
50
- return (0, _react.createElement)(_components.Button, {
51
- ...propsWithTabIndex
52
- }, children);
53
54
  });
54
55
  }
55
56
  var _default = (0, _element.forwardRef)(InserterListboxItem);
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_element","_context","_interopRequireDefault","InserterListboxItem","isFirst","as","Component","children","props","ref","state","useContext","InserterListboxContext","_react","createElement","__unstableCompositeItem","role","focusable","htmlProps","propsWithTabIndex","tabIndex","Button","_default","forwardRef","exports","default"],"sources":["@wordpress/block-editor/src/components/inserter-listbox/item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__unstableCompositeItem as CompositeItem,\n} from '@wordpress/components';\nimport { forwardRef, useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InserterListboxContext from './context';\n\nfunction InserterListboxItem(\n\t{ isFirst, as: Component, children, ...props },\n\tref\n) {\n\tconst state = useContext( InserterListboxContext );\n\treturn (\n\t\t<CompositeItem\n\t\t\tref={ ref }\n\t\t\tstate={ state }\n\t\t\trole=\"option\"\n\t\t\t// Use the CompositeItem `focusable` prop over Button's\n\t\t\t// isFocusable. The latter was shown to cause an issue\n\t\t\t// with tab order in the inserter list.\n\t\t\tfocusable\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ ( htmlProps ) => {\n\t\t\t\tconst propsWithTabIndex = {\n\t\t\t\t\t...htmlProps,\n\t\t\t\t\ttabIndex: isFirst ? 0 : htmlProps.tabIndex,\n\t\t\t\t};\n\t\t\t\tif ( Component ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Component { ...propsWithTabIndex }>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t</Component>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif ( typeof children === 'function' ) {\n\t\t\t\t\treturn children( propsWithTabIndex );\n\t\t\t\t}\n\t\t\t\treturn <Button { ...propsWithTabIndex }>{ children }</Button>;\n\t\t\t} }\n\t\t</CompositeItem>\n\t);\n}\n\nexport default forwardRef( InserterListboxItem );\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAIA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,QAAA,GAAAC,sBAAA,CAAAH,OAAA;AAZA;AACA;AACA;;AAOA;AACA;AACA;;AAGA,SAASI,mBAAmBA,CAC3B;EAAEC,OAAO;EAAEC,EAAE,EAAEC,SAAS;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAC9CC,GAAG,EACF;EACD,MAAMC,KAAK,GAAG,IAAAC,mBAAU,EAAEC,gBAAuB,CAAC;EAClD,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAChB,WAAA,CAAAiB,uBAAa;IACbN,GAAG,EAAGA,GAAK;IACXC,KAAK,EAAGA,KAAO;IACfM,IAAI,EAAC;IACL;IACA;IACA;IAAA;IACAC,SAAS;IAAA,GACJT;EAAK,GAENU,SAAS,IAAM;IAClB,MAAMC,iBAAiB,GAAG;MACzB,GAAGD,SAAS;MACZE,QAAQ,EAAEhB,OAAO,GAAG,CAAC,GAAGc,SAAS,CAACE;IACnC,CAAC;IACD,IAAKd,SAAS,EAAG;MAChB,OACC,IAAAO,MAAA,CAAAC,aAAA,EAACR,SAAS;QAAA,GAAMa;MAAiB,GAC9BZ,QACQ,CAAC;IAEd;IACA,IAAK,OAAOA,QAAQ,KAAK,UAAU,EAAG;MACrC,OAAOA,QAAQ,CAAEY,iBAAkB,CAAC;IACrC;IACA,OAAO,IAAAN,MAAA,CAAAC,aAAA,EAAChB,WAAA,CAAAuB,MAAM;MAAA,GAAMF;IAAiB,GAAKZ,QAAkB,CAAC;EAC9D,CACc,CAAC;AAElB;AAAC,IAAAe,QAAA,GAEc,IAAAC,mBAAU,EAAEpB,mBAAoB,CAAC;AAAAqB,OAAA,CAAAC,OAAA,GAAAH,QAAA"}
1
+ {"version":3,"names":["_components","require","_element","_lockUnlock","CompositeItemV2","CompositeItem","unlock","componentsPrivateApis","InserterListboxItem","isFirst","as","Component","children","props","ref","_react","createElement","role","accessibleWhenDisabled","render","htmlProps","propsWithTabIndex","tabIndex","Button","_default","forwardRef","exports","default"],"sources":["@wordpress/block-editor/src/components/inserter-listbox/item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { CompositeItemV2: CompositeItem } = unlock( componentsPrivateApis );\n\nfunction InserterListboxItem(\n\t{ isFirst, as: Component, children, ...props },\n\tref\n) {\n\treturn (\n\t\t<CompositeItem\n\t\t\tref={ ref }\n\t\t\trole=\"option\"\n\t\t\t// Use the CompositeItem `accessibleWhenDisabled` prop\n\t\t\t// over Button's `isFocusable`. The latter was shown to\n\t\t\t// cause an issue with tab order in the inserter list.\n\t\t\taccessibleWhenDisabled\n\t\t\t{ ...props }\n\t\t\trender={ ( htmlProps ) => {\n\t\t\t\tconst propsWithTabIndex = {\n\t\t\t\t\t...htmlProps,\n\t\t\t\t\ttabIndex: isFirst ? 0 : htmlProps.tabIndex,\n\t\t\t\t};\n\t\t\t\tif ( Component ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Component { ...propsWithTabIndex }>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t</Component>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif ( typeof children === 'function' ) {\n\t\t\t\t\treturn children( propsWithTabIndex );\n\t\t\t\t}\n\t\t\t\treturn <Button { ...propsWithTabIndex }>{ children }</Button>;\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( InserterListboxItem );\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAIA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,WAAA,GAAAF,OAAA;AAZA;AACA;AACA;;AAOA;AACA;AACA;;AAGA,MAAM;EAAEG,eAAe,EAAEC;AAAc,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AAE1E,SAASC,mBAAmBA,CAC3B;EAAEC,OAAO;EAAEC,EAAE,EAAEC,SAAS;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAC9CC,GAAG,EACF;EACD,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACX,aAAa;IACbS,GAAG,EAAGA,GAAK;IACXG,IAAI,EAAC;IACL;IACA;IACA;IAAA;IACAC,sBAAsB;IAAA,GACjBL,KAAK;IACVM,MAAM,EAAKC,SAAS,IAAM;MACzB,MAAMC,iBAAiB,GAAG;QACzB,GAAGD,SAAS;QACZE,QAAQ,EAAEb,OAAO,GAAG,CAAC,GAAGW,SAAS,CAACE;MACnC,CAAC;MACD,IAAKX,SAAS,EAAG;QAChB,OACC,IAAAI,MAAA,CAAAC,aAAA,EAACL,SAAS;UAAA,GAAMU;QAAiB,GAC9BT,QACQ,CAAC;MAEd;MACA,IAAK,OAAOA,QAAQ,KAAK,UAAU,EAAG;QACrC,OAAOA,QAAQ,CAAES,iBAAkB,CAAC;MACrC;MACA,OAAO,IAAAN,MAAA,CAAAC,aAAA,EAAChB,WAAA,CAAAuB,MAAM;QAAA,GAAMF;MAAiB,GAAKT,QAAkB,CAAC;IAC9D;EAAG,CACH,CAAC;AAEJ;AAAC,IAAAY,QAAA,GAEc,IAAAC,mBAAU,EAAEjB,mBAAoB,CAAC;AAAAkB,OAAA,CAAAC,OAAA,GAAAH,QAAA"}
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
@@ -8,7 +7,7 @@ exports.default = void 0;
8
7
  var _react = require("react");
9
8
  var _element = require("@wordpress/element");
10
9
  var _components = require("@wordpress/components");
11
- var _context = _interopRequireDefault(require("./context"));
10
+ var _lockUnlock = require("../../lock-unlock");
12
11
  /**
13
12
  * WordPress dependencies
14
13
  */
@@ -17,10 +16,11 @@ var _context = _interopRequireDefault(require("./context"));
17
16
  * Internal dependencies
18
17
  */
19
18
 
19
+ const {
20
+ CompositeGroupV2: CompositeGroup
21
+ } = (0, _lockUnlock.unlock)(_components.privateApis);
20
22
  function InserterListboxRow(props, ref) {
21
- const state = (0, _element.useContext)(_context.default);
22
- return (0, _react.createElement)(_components.__unstableCompositeGroup, {
23
- state: state,
23
+ return (0, _react.createElement)(CompositeGroup, {
24
24
  role: "presentation",
25
25
  ref: ref,
26
26
  ...props
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_components","_context","_interopRequireDefault","InserterListboxRow","props","ref","state","useContext","InserterListboxContext","_react","createElement","__unstableCompositeGroup","role","_default","forwardRef","exports","default"],"sources":["@wordpress/block-editor/src/components/inserter-listbox/row.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { forwardRef, useContext } from '@wordpress/element';\nimport { __unstableCompositeGroup as CompositeGroup } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport InserterListboxContext from './context';\n\nfunction InserterListboxRow( props, ref ) {\n\tconst state = useContext( InserterListboxContext );\n\treturn (\n\t\t<CompositeGroup\n\t\t\tstate={ state }\n\t\t\trole=\"presentation\"\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( InserterListboxRow );\n"],"mappings":";;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAKA,IAAAE,QAAA,GAAAC,sBAAA,CAAAH,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA,SAASI,kBAAkBA,CAAEC,KAAK,EAAEC,GAAG,EAAG;EACzC,MAAMC,KAAK,GAAG,IAAAC,mBAAU,EAAEC,gBAAuB,CAAC;EAClD,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACV,WAAA,CAAAW,wBAAc;IACdL,KAAK,EAAGA,KAAO;IACfM,IAAI,EAAC,cAAc;IACnBP,GAAG,EAAGA,GAAK;IAAA,GACND;EAAK,CACV,CAAC;AAEJ;AAAC,IAAAS,QAAA,GAEc,IAAAC,mBAAU,EAAEX,kBAAmB,CAAC;AAAAY,OAAA,CAAAC,OAAA,GAAAH,QAAA"}
1
+ {"version":3,"names":["_element","require","_components","_lockUnlock","CompositeGroupV2","CompositeGroup","unlock","componentsPrivateApis","InserterListboxRow","props","ref","_react","createElement","role","_default","forwardRef","exports","default"],"sources":["@wordpress/block-editor/src/components/inserter-listbox/row.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { CompositeGroupV2: CompositeGroup } = unlock( componentsPrivateApis );\n\nfunction InserterListboxRow( props, ref ) {\n\treturn <CompositeGroup role=\"presentation\" ref={ ref } { ...props } />;\n}\n\nexport default forwardRef( InserterListboxRow );\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAKA,IAAAE,WAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA,MAAM;EAAEG,gBAAgB,EAAEC;AAAe,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AAE5E,SAASC,kBAAkBA,CAAEC,KAAK,EAAEC,GAAG,EAAG;EACzC,OAAO,IAAAC,MAAA,CAAAC,aAAA,EAACP,cAAc;IAACQ,IAAI,EAAC,cAAc;IAACH,GAAG,EAAGA,GAAK;IAAA,GAAMD;EAAK,CAAI,CAAC;AACvE;AAAC,IAAAK,QAAA,GAEc,IAAAC,mBAAU,EAAEP,kBAAmB,CAAC;AAAAQ,OAAA,CAAAC,OAAA,GAAAH,QAAA"}
@@ -30,7 +30,6 @@ function useListViewExpandSelectedItem({
30
30
  selectedBlockParentClientIds: getBlockParents(firstSelectedBlockClientId, false)
31
31
  };
32
32
  }, [firstSelectedBlockClientId]);
33
- const parentClientIds = Array.isArray(selectedBlockParentClientIds) && selectedBlockParentClientIds.length ? selectedBlockParentClientIds : null;
34
33
 
35
34
  // Expand tree when a block is selected.
36
35
  (0, _element.useEffect)(() => {
@@ -41,7 +40,7 @@ function useListViewExpandSelectedItem({
41
40
  }
42
41
 
43
42
  // If the selected block has parents, get the top-level parent.
44
- if (parentClientIds) {
43
+ if (selectedBlockParentClientIds?.length) {
45
44
  // If the selected block has parents,
46
45
  // expand the tree branch.
47
46
  setExpandedState({
@@ -49,7 +48,7 @@ function useListViewExpandSelectedItem({
49
48
  clientIds: selectedBlockParentClientIds
50
49
  });
51
50
  }
52
- }, [firstSelectedBlockClientId]);
51
+ }, [firstSelectedBlockClientId, selectedBlockParentClientIds, selectedTreeId, setExpandedState]);
53
52
  return {
54
53
  setSelectedTreeId
55
54
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_data","_store","useListViewExpandSelectedItem","firstSelectedBlockClientId","setExpandedState","selectedTreeId","setSelectedTreeId","useState","selectedBlockParentClientIds","useSelect","select","getBlockParents","blockEditorStore","parentClientIds","Array","isArray","length","useEffect","type","clientIds"],"sources":["@wordpress/block-editor/src/components/list-view/use-list-view-expand-selected-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nexport default function useListViewExpandSelectedItem( {\n\tfirstSelectedBlockClientId,\n\tsetExpandedState,\n} ) {\n\tconst [ selectedTreeId, setSelectedTreeId ] = useState( null );\n\tconst { selectedBlockParentClientIds } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParents } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tselectedBlockParentClientIds: getBlockParents(\n\t\t\t\t\tfirstSelectedBlockClientId,\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ firstSelectedBlockClientId ]\n\t);\n\n\tconst parentClientIds =\n\t\tArray.isArray( selectedBlockParentClientIds ) &&\n\t\tselectedBlockParentClientIds.length\n\t\t\t? selectedBlockParentClientIds\n\t\t\t: null;\n\n\t// Expand tree when a block is selected.\n\tuseEffect( () => {\n\t\t// If the selectedTreeId is the same as the selected block,\n\t\t// it means that the block was selected using the block list tree.\n\t\tif ( selectedTreeId === firstSelectedBlockClientId ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If the selected block has parents, get the top-level parent.\n\t\tif ( parentClientIds ) {\n\t\t\t// If the selected block has parents,\n\t\t\t// expand the tree branch.\n\t\t\tsetExpandedState( {\n\t\t\t\ttype: 'expand',\n\t\t\t\tclientIds: selectedBlockParentClientIds,\n\t\t\t} );\n\t\t}\n\t}, [ firstSelectedBlockClientId ] );\n\n\treturn {\n\t\tsetSelectedTreeId,\n\t};\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGe,SAASG,6BAA6BA,CAAE;EACtDC,0BAA0B;EAC1BC;AACD,CAAC,EAAG;EACH,MAAM,CAAEC,cAAc,EAAEC,iBAAiB,CAAE,GAAG,IAAAC,iBAAQ,EAAE,IAAK,CAAC;EAC9D,MAAM;IAAEC;EAA6B,CAAC,GAAG,IAAAC,eAAS,EAC/CC,MAAM,IAAM;IACb,MAAM;MAAEC;IAAgB,CAAC,GAAGD,MAAM,CAAEE,YAAiB,CAAC;IACtD,OAAO;MACNJ,4BAA4B,EAAEG,eAAe,CAC5CR,0BAA0B,EAC1B,KACD;IACD,CAAC;EACF,CAAC,EACD,CAAEA,0BAA0B,CAC7B,CAAC;EAED,MAAMU,eAAe,GACpBC,KAAK,CAACC,OAAO,CAAEP,4BAA6B,CAAC,IAC7CA,4BAA4B,CAACQ,MAAM,GAChCR,4BAA4B,GAC5B,IAAI;;EAER;EACA,IAAAS,kBAAS,EAAE,MAAM;IAChB;IACA;IACA,IAAKZ,cAAc,KAAKF,0BAA0B,EAAG;MACpD;IACD;;IAEA;IACA,IAAKU,eAAe,EAAG;MACtB;MACA;MACAT,gBAAgB,CAAE;QACjBc,IAAI,EAAE,QAAQ;QACdC,SAAS,EAAEX;MACZ,CAAE,CAAC;IACJ;EACD,CAAC,EAAE,CAAEL,0BAA0B,CAAG,CAAC;EAEnC,OAAO;IACNG;EACD,CAAC;AACF"}
1
+ {"version":3,"names":["_element","require","_data","_store","useListViewExpandSelectedItem","firstSelectedBlockClientId","setExpandedState","selectedTreeId","setSelectedTreeId","useState","selectedBlockParentClientIds","useSelect","select","getBlockParents","blockEditorStore","useEffect","length","type","clientIds"],"sources":["@wordpress/block-editor/src/components/list-view/use-list-view-expand-selected-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nexport default function useListViewExpandSelectedItem( {\n\tfirstSelectedBlockClientId,\n\tsetExpandedState,\n} ) {\n\tconst [ selectedTreeId, setSelectedTreeId ] = useState( null );\n\tconst { selectedBlockParentClientIds } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParents } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tselectedBlockParentClientIds: getBlockParents(\n\t\t\t\t\tfirstSelectedBlockClientId,\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ firstSelectedBlockClientId ]\n\t);\n\n\t// Expand tree when a block is selected.\n\tuseEffect( () => {\n\t\t// If the selectedTreeId is the same as the selected block,\n\t\t// it means that the block was selected using the block list tree.\n\t\tif ( selectedTreeId === firstSelectedBlockClientId ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If the selected block has parents, get the top-level parent.\n\t\tif ( selectedBlockParentClientIds?.length ) {\n\t\t\t// If the selected block has parents,\n\t\t\t// expand the tree branch.\n\t\t\tsetExpandedState( {\n\t\t\t\ttype: 'expand',\n\t\t\t\tclientIds: selectedBlockParentClientIds,\n\t\t\t} );\n\t\t}\n\t}, [\n\t\tfirstSelectedBlockClientId,\n\t\tselectedBlockParentClientIds,\n\t\tselectedTreeId,\n\t\tsetExpandedState,\n\t] );\n\n\treturn {\n\t\tsetSelectedTreeId,\n\t};\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGe,SAASG,6BAA6BA,CAAE;EACtDC,0BAA0B;EAC1BC;AACD,CAAC,EAAG;EACH,MAAM,CAAEC,cAAc,EAAEC,iBAAiB,CAAE,GAAG,IAAAC,iBAAQ,EAAE,IAAK,CAAC;EAC9D,MAAM;IAAEC;EAA6B,CAAC,GAAG,IAAAC,eAAS,EAC/CC,MAAM,IAAM;IACb,MAAM;MAAEC;IAAgB,CAAC,GAAGD,MAAM,CAAEE,YAAiB,CAAC;IACtD,OAAO;MACNJ,4BAA4B,EAAEG,eAAe,CAC5CR,0BAA0B,EAC1B,KACD;IACD,CAAC;EACF,CAAC,EACD,CAAEA,0BAA0B,CAC7B,CAAC;;EAED;EACA,IAAAU,kBAAS,EAAE,MAAM;IAChB;IACA;IACA,IAAKR,cAAc,KAAKF,0BAA0B,EAAG;MACpD;IACD;;IAEA;IACA,IAAKK,4BAA4B,EAAEM,MAAM,EAAG;MAC3C;MACA;MACAV,gBAAgB,CAAE;QACjBW,IAAI,EAAE,QAAQ;QACdC,SAAS,EAAER;MACZ,CAAE,CAAC;IACJ;EACD,CAAC,EAAE,CACFL,0BAA0B,EAC1BK,4BAA4B,EAC5BH,cAAc,EACdD,gBAAgB,CACf,CAAC;EAEH,OAAO;IACNE;EACD,CAAC;AACF"}
@@ -26,7 +26,8 @@ function PreviewOptions({
26
26
  isEnabled = true,
27
27
  deviceType,
28
28
  setDeviceType,
29
- label
29
+ label,
30
+ showIconLabels
30
31
  }) {
31
32
  const isMobile = (0, _compose.useViewportMatch)('small', '<');
32
33
  if (isMobile) return null;
@@ -38,7 +39,8 @@ function PreviewOptions({
38
39
  className: 'block-editor-post-preview__button-toggle',
39
40
  disabled: !isEnabled,
40
41
  __experimentalIsFocusable: !isEnabled,
41
- children: viewLabel
42
+ children: viewLabel,
43
+ showTooltip: !showIconLabels
42
44
  };
43
45
  const menuProps = {
44
46
  'aria-label': (0, _i18n.__)('View options')
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_compose","_components","_i18n","_icons","PreviewOptions","children","viewLabel","className","isEnabled","deviceType","setDeviceType","label","isMobile","useViewportMatch","popoverProps","classnames","placement","toggleProps","disabled","__experimentalIsFocusable","menuProps","__","deviceIcons","mobile","tablet","desktop","_react","createElement","DropdownMenu","icon","toLowerCase","disableOpenOnArrowDown","renderProps","Fragment","MenuGroup","MenuItem","onClick","check"],"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":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAXA;AACA;AACA;;AAGA;AACA;AACA;;AAMe,SAASK,cAAcA,CAAE;EACvCC,QAAQ;EACRC,SAAS;EACTC,SAAS;EACTC,SAAS,GAAG,IAAI;EAChBC,UAAU;EACVC,aAAa;EACbC;AACD,CAAC,EAAG;EACH,MAAMC,QAAQ,GAAG,IAAAC,yBAAgB,EAAE,OAAO,EAAE,GAAI,CAAC;EACjD,IAAKD,QAAQ,EAAG,OAAO,IAAI;EAE3B,MAAME,YAAY,GAAG;IACpBP,SAAS,EAAE,IAAAQ,mBAAU,EACpBR,SAAS,EACT,6CACD,CAAC;IACDS,SAAS,EAAE;EACZ,CAAC;EACD,MAAMC,WAAW,GAAG;IACnBV,SAAS,EAAE,0CAA0C;IACrDW,QAAQ,EAAE,CAAEV,SAAS;IACrBW,yBAAyB,EAAE,CAAEX,SAAS;IACtCH,QAAQ,EAAEC;EACX,CAAC;EACD,MAAMc,SAAS,GAAG;IACjB,YAAY,EAAE,IAAAC,QAAE,EAAE,cAAe;EAClC,CAAC;EAED,MAAMC,WAAW,GAAG;IACnBC,MAAM,EAANA,aAAM;IACNC,MAAM,EAANA,aAAM;IACNC,OAAO,EAAPA;EACD,CAAC;EAED,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAC1B,WAAA,CAAA2B,YAAY;IACZrB,SAAS,EAAC,qCAAqC;IAC/CO,YAAY,EAAGA,YAAc;IAC7BG,WAAW,EAAGA,WAAa;IAC3BG,SAAS,EAAGA,SAAW;IACvBS,IAAI,EAAGP,WAAW,CAAEb,UAAU,CAACqB,WAAW,CAAC,CAAC,CAAI;IAChDnB,KAAK,EAAGA,KAAK,IAAI,IAAAU,QAAE,EAAE,SAAU,CAAG;IAClCU,sBAAsB,EAAG,CAAEvB;EAAW,GAElCwB,WAAW,IACd,IAAAN,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAO,QAAA,QACC,IAAAP,MAAA,CAAAC,aAAA,EAAC1B,WAAA,CAAAiC,SAAS,QACT,IAAAR,MAAA,CAAAC,aAAA,EAAC1B,WAAA,CAAAkC,QAAQ;IACR5B,SAAS,EAAC,0CAA0C;IACpD6B,OAAO,EAAGA,CAAA,KAAM1B,aAAa,CAAE,SAAU,CAAG;IAC5CmB,IAAI,EAAGpB,UAAU,KAAK,SAAS,IAAI4B;EAAO,GAExC,IAAAhB,QAAE,EAAE,SAAU,CACP,CAAC,EACX,IAAAK,MAAA,CAAAC,aAAA,EAAC1B,WAAA,CAAAkC,QAAQ;IACR5B,SAAS,EAAC,0CAA0C;IACpD6B,OAAO,EAAGA,CAAA,KAAM1B,aAAa,CAAE,QAAS,CAAG;IAC3CmB,IAAI,EAAGpB,UAAU,KAAK,QAAQ,IAAI4B;EAAO,GAEvC,IAAAhB,QAAE,EAAE,QAAS,CACN,CAAC,EACX,IAAAK,MAAA,CAAAC,aAAA,EAAC1B,WAAA,CAAAkC,QAAQ;IACR5B,SAAS,EAAC,0CAA0C;IACpD6B,OAAO,EAAGA,CAAA,KAAM1B,aAAa,CAAE,QAAS,CAAG;IAC3CmB,IAAI,EAAGpB,UAAU,KAAK,QAAQ,IAAI4B;EAAO,GAEvC,IAAAhB,QAAE,EAAE,QAAS,CACN,CACA,CAAC,EACVhB,QAAQ,GAAI2B,WAAY,CACzB,CAEU,CAAC;AAEjB"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_compose","_components","_i18n","_icons","PreviewOptions","children","viewLabel","className","isEnabled","deviceType","setDeviceType","label","showIconLabels","isMobile","useViewportMatch","popoverProps","classnames","placement","toggleProps","disabled","__experimentalIsFocusable","showTooltip","menuProps","__","deviceIcons","mobile","tablet","desktop","_react","createElement","DropdownMenu","icon","toLowerCase","disableOpenOnArrowDown","renderProps","Fragment","MenuGroup","MenuItem","onClick","check"],"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\tshowIconLabels,\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\tshowTooltip: ! showIconLabels,\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":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAXA;AACA;AACA;;AAGA;AACA;AACA;;AAMe,SAASK,cAAcA,CAAE;EACvCC,QAAQ;EACRC,SAAS;EACTC,SAAS;EACTC,SAAS,GAAG,IAAI;EAChBC,UAAU;EACVC,aAAa;EACbC,KAAK;EACLC;AACD,CAAC,EAAG;EACH,MAAMC,QAAQ,GAAG,IAAAC,yBAAgB,EAAE,OAAO,EAAE,GAAI,CAAC;EACjD,IAAKD,QAAQ,EAAG,OAAO,IAAI;EAE3B,MAAME,YAAY,GAAG;IACpBR,SAAS,EAAE,IAAAS,mBAAU,EACpBT,SAAS,EACT,6CACD,CAAC;IACDU,SAAS,EAAE;EACZ,CAAC;EACD,MAAMC,WAAW,GAAG;IACnBX,SAAS,EAAE,0CAA0C;IACrDY,QAAQ,EAAE,CAAEX,SAAS;IACrBY,yBAAyB,EAAE,CAAEZ,SAAS;IACtCH,QAAQ,EAAEC,SAAS;IACnBe,WAAW,EAAE,CAAET;EAChB,CAAC;EACD,MAAMU,SAAS,GAAG;IACjB,YAAY,EAAE,IAAAC,QAAE,EAAE,cAAe;EAClC,CAAC;EAED,MAAMC,WAAW,GAAG;IACnBC,MAAM,EAANA,aAAM;IACNC,MAAM,EAANA,aAAM;IACNC,OAAO,EAAPA;EACD,CAAC;EAED,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAC5B,WAAA,CAAA6B,YAAY;IACZvB,SAAS,EAAC,qCAAqC;IAC/CQ,YAAY,EAAGA,YAAc;IAC7BG,WAAW,EAAGA,WAAa;IAC3BI,SAAS,EAAGA,SAAW;IACvBS,IAAI,EAAGP,WAAW,CAAEf,UAAU,CAACuB,WAAW,CAAC,CAAC,CAAI;IAChDrB,KAAK,EAAGA,KAAK,IAAI,IAAAY,QAAE,EAAE,SAAU,CAAG;IAClCU,sBAAsB,EAAG,CAAEzB;EAAW,GAElC0B,WAAW,IACd,IAAAN,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAO,QAAA,QACC,IAAAP,MAAA,CAAAC,aAAA,EAAC5B,WAAA,CAAAmC,SAAS,QACT,IAAAR,MAAA,CAAAC,aAAA,EAAC5B,WAAA,CAAAoC,QAAQ;IACR9B,SAAS,EAAC,0CAA0C;IACpD+B,OAAO,EAAGA,CAAA,KAAM5B,aAAa,CAAE,SAAU,CAAG;IAC5CqB,IAAI,EAAGtB,UAAU,KAAK,SAAS,IAAI8B;EAAO,GAExC,IAAAhB,QAAE,EAAE,SAAU,CACP,CAAC,EACX,IAAAK,MAAA,CAAAC,aAAA,EAAC5B,WAAA,CAAAoC,QAAQ;IACR9B,SAAS,EAAC,0CAA0C;IACpD+B,OAAO,EAAGA,CAAA,KAAM5B,aAAa,CAAE,QAAS,CAAG;IAC3CqB,IAAI,EAAGtB,UAAU,KAAK,QAAQ,IAAI8B;EAAO,GAEvC,IAAAhB,QAAE,EAAE,QAAS,CACN,CAAC,EACX,IAAAK,MAAA,CAAAC,aAAA,EAAC5B,WAAA,CAAAoC,QAAQ;IACR9B,SAAS,EAAC,0CAA0C;IACpD+B,OAAO,EAAGA,CAAA,KAAM5B,aAAa,CAAE,QAAS,CAAG;IAC3CqB,IAAI,EAAGtB,UAAU,KAAK,QAAQ,IAAI8B;EAAO,GAEvC,IAAAhB,QAAE,EAAE,QAAS,CACN,CACA,CAAC,EACVlB,QAAQ,GAAI6B,WAAY,CACzB,CAEU,CAAC;AAEjB"}
@@ -210,7 +210,7 @@ function RichTextWrapper({
210
210
  // an intentional user interaction distinguishing between Backspace and
211
211
  // Delete to remove the empty field, but also to avoid merge & remove
212
212
  // causing destruction of two fields (merge, then removed merged).
213
- if (onRemove && (0, _richText.isEmpty)(value) && isReverse) {
213
+ else if (onRemove && (0, _richText.isEmpty)(value) && isReverse) {
214
214
  onRemove(!isReverse);
215
215
  }
216
216
  }, [onMerge, onRemove]);
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_data","_blocks","_compose","_richText","_url","_autocomplete","_blockEdit","_removeBrowserShortcuts","_filePasteHandler","_formatToolbarContainer","_store","_utils","_embedHandlerPicker","_content","_native","_shortcut","_toolbarButton","_inputEvent","classes","RichTextWrapper","children","tagName","start","reversed","value","originalValue","onChange","originalOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitMiddle","onSplitMiddle","__unstableOnSplitAtDoubleLineEnd","onSplitAtDoubleLineEnd","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","unstableOnFocus","__unstableAllowPrefixTransformations","__unstableMultilineRootTag","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","onBlur","setRef","disableSuggestions","disableAutocorrection","containerWidth","onEnter","onCustomEnter","props","forwardedRef","instanceId","useInstanceId","fallbackRef","useRef","clientId","blockIsSelected","useBlockEditContext","embedHandlerPickerRef","selector","select","getSelectionStart","getSelectionEnd","getSettings","didAutomaticChange","getBlock","isMultiSelecting","hasMultiSelection","blockEditorStore","selectionStart","selectionEnd","__experimentalUndo","undo","undefined","attributeKey","extraProps","Platform","OS","block","shouldBlurOnUnmount","isUnmodifiedDefaultBlock","offset","disabled","useSelect","__unstableMarkLastChangeAsPersistent","enterFormattedText","exitFormattedText","selectionChange","__unstableMarkAutomaticChange","useDispatch","multilineTag","getMultilineTag","adjustedAllowedFormats","getAllowedFormats","hasFormats","length","adjustedValue","adjustedOnChange","Array","isArray","childrenSource","toHTML","newValue","fromDOM","__unstableCreateElement","document","childNodes","onSelectionChange","useCallback","selectionChangeStart","selectionChangeEnd","onDelete","isReverse","isEmpty","splitValue","record","pastedBlocks","blocks","before","after","split","hasPastedBlocks","lastPastedBlockIndex","isAfterOriginal","push","toHTMLString","indexToSelect","initialPosition","shiftKey","canSplit","transforms","getBlockTransforms","filter","type","transformation","findTransform","item","regExp","test","text","transform","content","splitStart","end","splitEnd","canSplitAtEnd","insert","slice","remove","onPaste","html","plainText","isInternal","files","activeFormats","pastedValue","create","multilineWrapperTags","addActiveFormats","pasteHandler","HTML","filePasteHandler","mode","window","console","log","isPastedURL","isURL","trim","presentEmbedHandlerPicker","current","presentPicker","createEmbed","createLink","createLinkInParagraph","valueToInsert","canPasteEmbed","name","inputRule","valueToFormat","startPosition","characterBefore","trimmedTextBefore","prefixTransforms","prefix","mergedRef","useMergeRefs","_react","createElement","default","ref","__unstableIsSelected","__unstableInputRule","__unstableMultilineTag","__unstableOnEnterFormattedText","__unstableOnExitFormattedText","__unstableOnCreateUndoLevel","__unstableDidAutomaticChange","__unstableUndo","id","style","nestedIsSelected","onFocus","editableProps","editableTagName","TagName","Fragment","inline","anchorRef","RemoveBrowserShortcuts","completers","contentRef","listBoxId","activeId","onKeyDown","className","classnames","event","ForwardedRichTextContainer","forwardRef","Content","defaultProps","format","Raw","RichText","_default","exports"],"sources":["@wordpress/block-editor/src/components/rich-text/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Platform, useRef, useCallback, forwardRef } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tpasteHandler,\n\tchildren as childrenSource,\n\tgetBlockTransforms,\n\tfindTransform,\n\tisUnmodifiedDefaultBlock,\n} from '@wordpress/blocks';\nimport { useInstanceId, useMergeRefs } from '@wordpress/compose';\nimport {\n\t__unstableCreateElement,\n\tisEmpty,\n\tinsert,\n\tremove,\n\tcreate,\n\tsplit,\n\ttoHTMLString,\n\tslice,\n} from '@wordpress/rich-text';\nimport { isURL } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport Autocomplete from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { RemoveBrowserShortcuts } from './remove-browser-shortcuts';\nimport { filePasteHandler } from './file-paste-handler';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport {\n\taddActiveFormats,\n\tgetMultilineTag,\n\tgetAllowedFormats,\n\tcreateLinkInParagraph,\n} from './utils';\nimport EmbedHandlerPicker from './embed-handler-picker';\nimport { Content } from './content';\nimport RichText from './native';\n\nconst classes = 'block-editor-rich-text__editable';\n\nfunction RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName,\n\t\tstart,\n\t\treversed,\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\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\tunstableOnFocus,\n\t\t__unstableAllowPrefixTransformations,\n\t\t__unstableMultilineRootTag,\n\t\t// Native props.\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\tonBlur,\n\t\tsetRef,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\tcontainerWidth,\n\t\tonEnter: onCustomEnter,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\n\tidentifier = identifier || instanceId;\n\n\tconst fallbackRef = useRef();\n\tconst { clientId, isSelected: blockIsSelected } = useBlockEditContext();\n\tconst embedHandlerPickerRef = useRef();\n\tconst selector = ( select ) => {\n\t\tconst {\n\t\t\tgetSelectionStart,\n\t\t\tgetSelectionEnd,\n\t\t\tgetSettings,\n\t\t\tdidAutomaticChange,\n\t\t\tgetBlock,\n\t\t\tisMultiSelecting,\n\t\t\thasMultiSelection,\n\t\t} = select( blockEditorStore );\n\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\t\tconst { __experimentalUndo: undo } = getSettings();\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\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\tlet extraProps = {};\n\t\tif ( Platform.OS === 'native' ) {\n\t\t\t// If the block of this RichText is unmodified then it's a candidate for replacing when adding a new block.\n\t\t\t// In order to fix https://github.com/wordpress-mobile/gutenberg-mobile/issues/1126, let's blur on unmount in that case.\n\t\t\t// This apparently assumes functionality the BlockHlder actually.\n\t\t\tconst block = clientId && getBlock( clientId );\n\t\t\tconst shouldBlurOnUnmount =\n\t\t\t\tblock && isSelected && isUnmodifiedDefaultBlock( block );\n\t\t\textraProps = {\n\t\t\t\tshouldBlurOnUnmount,\n\t\t\t};\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\tdidAutomaticChange: didAutomaticChange(),\n\t\t\tdisabled: isMultiSelecting() || hasMultiSelection(),\n\t\t\tundo,\n\t\t\t...extraProps,\n\t\t};\n\t};\n\t// This selector must run on every render so the right selection state is\n\t// retrieved from the store on merge.\n\t// To do: fix this somehow.\n\tconst {\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tisSelected,\n\t\tdidAutomaticChange,\n\t\tdisabled,\n\t\tundo,\n\t\tshouldBlurOnUnmount,\n\t} = useSelect( selector );\n\tconst {\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tenterFormattedText,\n\t\texitFormattedText,\n\t\tselectionChange,\n\t\t__unstableMarkAutomaticChange,\n\t} = 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\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( selectionChangeStart, selectionChangeEnd ) => {\n\t\t\tselectionChange(\n\t\t\t\tclientId,\n\t\t\t\tidentifier,\n\t\t\t\tselectionChangeStart,\n\t\t\t\tselectionChangeEnd\n\t\t\t);\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[ clientId, identifier ]\n\t);\n\n\tconst onDelete = useCallback(\n\t\t( { value, isReverse } ) => {\n\t\t\tif ( onMerge ) {\n\t\t\t\tonMerge( ! isReverse );\n\t\t\t}\n\n\t\t\t// Only handle remove on Backspace. This serves dual-purpose of being\n\t\t\t// an intentional user interaction distinguishing between Backspace and\n\t\t\t// Delete to remove the empty field, but also to avoid merge & remove\n\t\t\t// causing destruction of two fields (merge, then removed merged).\n\t\t\tif ( onRemove && isEmpty( value ) && isReverse ) {\n\t\t\t\tonRemove( ! isReverse );\n\t\t\t}\n\t\t},\n\t\t[ onMerge, onRemove ]\n\t);\n\n\t/**\n\t * Signals to the RichText owner that the block can be replaced with two\n\t * blocks as a result of splitting the block by pressing enter, or with\n\t * blocks as a result of splitting the block by pasting block content in the\n\t * instance.\n\t *\n\t * @param {Object} record The rich text value to split.\n\t * @param {Array} pastedBlocks The pasted blocks to insert, if any.\n\t */\n\tconst splitValue = useCallback(\n\t\t( record, pastedBlocks = [] ) => {\n\t\t\tif ( ! onReplace || ! onSplit ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst blocks = [];\n\t\t\tconst [ before, after ] = split( record );\n\t\t\tconst hasPastedBlocks = pastedBlocks.length > 0;\n\t\t\tlet lastPastedBlockIndex = -1;\n\n\t\t\t// Consider the after value to be the original it is not empty and\n\t\t\t// the before value *is* empty.\n\t\t\tconst isAfterOriginal = isEmpty( before ) && ! isEmpty( after );\n\n\t\t\t// Create a block with the content before the caret if there's no pasted\n\t\t\t// blocks, or if there are pasted blocks and the value is not empty.\n\t\t\t// We do not want a leading empty block on paste, but we do if split\n\t\t\t// with e.g. the enter key.\n\t\t\tif ( ! hasPastedBlocks || ! isEmpty( before ) ) {\n\t\t\t\tblocks.push(\n\t\t\t\t\tonSplit(\n\t\t\t\t\t\ttoHTMLString( {\n\t\t\t\t\t\t\tvalue: before,\n\t\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\t} ),\n\t\t\t\t\t\t! isAfterOriginal\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tlastPastedBlockIndex += 1;\n\t\t\t}\n\n\t\t\tif ( hasPastedBlocks ) {\n\t\t\t\tblocks.push( ...pastedBlocks );\n\t\t\t\tlastPastedBlockIndex += pastedBlocks.length;\n\t\t\t} else if ( onSplitMiddle ) {\n\t\t\t\tblocks.push( onSplitMiddle() );\n\t\t\t}\n\n\t\t\t// If there's pasted blocks, append a block with non empty content\n\t\t\t// after the caret. Otherwise, do append an empty block if there\n\t\t\t// is no `onSplitMiddle` prop, but if there is and the content is\n\t\t\t// empty, the middle block is enough to set focus in.\n\t\t\tif (\n\t\t\t\thasPastedBlocks\n\t\t\t\t\t? ! isEmpty( after )\n\t\t\t\t\t: ! onSplitMiddle || ! isEmpty( after )\n\t\t\t) {\n\t\t\t\tblocks.push(\n\t\t\t\t\tonSplit(\n\t\t\t\t\t\ttoHTMLString( {\n\t\t\t\t\t\t\tvalue: after,\n\t\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\t} ),\n\t\t\t\t\t\tisAfterOriginal\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// If there are pasted blocks, set the selection to the last one.\n\t\t\t// Otherwise, set the selection to the second block.\n\t\t\tconst indexToSelect = hasPastedBlocks ? lastPastedBlockIndex : 1;\n\n\t\t\t// If there are pasted blocks, move the caret to the end of the selected block\n\t\t\t// Otherwise, retain the default value.\n\t\t\tconst initialPosition = hasPastedBlocks ? -1 : 0;\n\n\t\t\tonReplace( blocks, indexToSelect, initialPosition );\n\t\t},\n\t\t[ onReplace, onSplit, multilineTag, onSplitMiddle ]\n\t);\n\n\tconst onEnter = useCallback(\n\t\t( { value, onChange, shiftKey } ) => {\n\t\t\tconst canSplit = onReplace && onSplit;\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst transforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t\t( { type } ) => type === 'enter'\n\t\t\t\t);\n\t\t\t\tconst transformation = findTransform( transforms, ( item ) => {\n\t\t\t\t\treturn item.regExp.test( value.text );\n\t\t\t\t} );\n\n\t\t\t\tif ( transformation ) {\n\t\t\t\t\tonReplace( [\n\t\t\t\t\t\ttransformation.transform( { content: value.text } ),\n\t\t\t\t\t] );\n\t\t\t\t\t__unstableMarkAutomaticChange();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( onCustomEnter ) {\n\t\t\t\tonCustomEnter();\n\t\t\t}\n\n\t\t\tconst { text, start: splitStart, end: splitEnd } = value;\n\t\t\tconst canSplitAtEnd =\n\t\t\t\tonSplitAtEnd &&\n\t\t\t\tsplitStart === splitEnd &&\n\t\t\t\tsplitEnd === text.length;\n\n\t\t\tif ( shiftKey ) {\n\t\t\t\tif ( ! disableLineBreaks ) {\n\t\t\t\t\tonChange( insert( value, '\\n' ) );\n\t\t\t\t}\n\t\t\t} else if ( canSplit ) {\n\t\t\t\tsplitValue( value );\n\t\t\t} else if ( canSplitAtEnd ) {\n\t\t\t\tonSplitAtEnd();\n\t\t\t} else if (\n\t\t\t\t// For some blocks it's desirable to split at the end of the\n\t\t\t\t// block when there are two line breaks at the end of the\n\t\t\t\t// block, so triple Enter exits the block.\n\t\t\t\tonSplitAtDoubleLineEnd &&\n\t\t\t\tsplitStart === splitEnd &&\n\t\t\t\tsplitEnd === text.length &&\n\t\t\t\ttext.slice( -2 ) === '\\n\\n'\n\t\t\t) {\n\t\t\t\tvalue.start = value.end - 2;\n\t\t\t\tonChange( remove( value ) );\n\t\t\t\tonSplitAtDoubleLineEnd();\n\t\t\t} else if ( ! disableLineBreaks ) {\n\t\t\t\tonChange( insert( value, '\\n' ) );\n\t\t\t}\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tonReplace,\n\t\t\tonSplit,\n\t\t\t__unstableMarkAutomaticChange,\n\t\t\tmultiline,\n\t\t\tsplitValue,\n\t\t\tonSplitAtEnd,\n\t\t]\n\t);\n\n\tconst onPaste = useCallback(\n\t\t( {\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\thtml,\n\t\t\tplainText,\n\t\t\tisInternal,\n\t\t\tfiles,\n\t\t\tactiveFormats,\n\t\t} ) => {\n\t\t\t// If the data comes from a rich text instance, we can directly use it\n\t\t\t// without filtering the data. The filters are only meant for externally\n\t\t\t// pasted content and remove inline styles.\n\t\t\tif ( isInternal ) {\n\t\t\t\tconst pastedValue = create( {\n\t\t\t\t\thtml,\n\t\t\t\t\tmultilineTag,\n\t\t\t\t\tmultilineWrapperTags:\n\t\t\t\t\t\tmultilineTag === 'li' ? [ 'ul', 'ol' ] : undefined,\n\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t} );\n\t\t\t\taddActiveFormats( pastedValue, activeFormats );\n\t\t\t\tonChange( insert( value, pastedValue ) );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( pastePlainText ) {\n\t\t\t\tonChange( insert( value, create( { text: plainText } ) ) );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Only process file if no HTML is present.\n\t\t\t// Note: a pasted file may have the URL as plain text.\n\t\t\tif ( files && files.length && ! html ) {\n\t\t\t\tconst content = pasteHandler( {\n\t\t\t\t\tHTML: filePasteHandler( files ),\n\t\t\t\t\tmode: 'BLOCKS',\n\t\t\t\t\ttagName,\n\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t} );\n\n\t\t\t\t// Allows us to ask for this information when we get a report.\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\twindow.console.log( 'Received items:\\n\\n', files );\n\n\t\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\t\tonReplace( content );\n\t\t\t\t} else {\n\t\t\t\t\tsplitValue( value, content );\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet mode = onReplace && onSplit ? 'AUTO' : 'INLINE';\n\n\t\t\tconst isPastedURL = isURL( plainText.trim() );\n\t\t\tconst presentEmbedHandlerPicker = () =>\n\t\t\t\tembedHandlerPickerRef.current?.presentPicker( {\n\t\t\t\t\tcreateEmbed: () =>\n\t\t\t\t\t\tonReplace( content, content.length - 1, -1 ),\n\t\t\t\t\tcreateLink: () =>\n\t\t\t\t\t\tcreateLinkInParagraph( plainText.trim(), onReplace ),\n\t\t\t\t} );\n\n\t\t\tif (\n\t\t\t\t__unstableEmbedURLOnPaste &&\n\t\t\t\tisEmpty( value ) &&\n\t\t\t\tisPastedURL\n\t\t\t) {\n\t\t\t\tmode = 'BLOCKS';\n\t\t\t}\n\n\t\t\tconst content = pasteHandler( {\n\t\t\t\tHTML: html,\n\t\t\t\tplainText,\n\t\t\t\tmode,\n\t\t\t\ttagName,\n\t\t\t\tpreserveWhiteSpace,\n\t\t\t} );\n\n\t\t\tif ( typeof content === 'string' ) {\n\t\t\t\tconst valueToInsert = create( { html: content } );\n\t\t\t\taddActiveFormats( valueToInsert, activeFormats );\n\t\t\t\tonChange( insert( value, valueToInsert ) );\n\t\t\t} else if ( content.length > 0 ) {\n\t\t\t\t// When an URL is pasted in an empty paragraph then the EmbedHandlerPicker should showcase options allowing the transformation of that URL\n\t\t\t\t// into either an Embed block or a link within the target paragraph. If the paragraph is non-empty, the URL is pasted as text.\n\t\t\t\tconst canPasteEmbed =\n\t\t\t\t\tisPastedURL &&\n\t\t\t\t\tcontent.length === 1 &&\n\t\t\t\t\tcontent[ 0 ].name === 'core/embed';\n\t\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\t\tif ( canPasteEmbed ) {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsert( value, create( { text: plainText } ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( __unstableEmbedURLOnPaste ) {\n\t\t\t\t\t\t\tpresentEmbedHandlerPicker();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonReplace( content, content.length - 1, -1 );\n\t\t\t\t} else {\n\t\t\t\t\tif ( canPasteEmbed ) {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsert( value, create( { text: plainText } ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tsplitValue( value, content );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\ttagName,\n\t\t\tonReplace,\n\t\t\tonSplit,\n\t\t\tsplitValue,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\tmultilineTag,\n\t\t\tpreserveWhiteSpace,\n\t\t\tpastePlainText,\n\t\t]\n\t);\n\n\tconst inputRule = useCallback(\n\t\t( value, valueToFormat ) => {\n\t\t\tif ( ! onReplace ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { start: startPosition, text } = value;\n\t\t\tconst characterBefore = text.slice(\n\t\t\t\tstartPosition - 1,\n\t\t\t\tstartPosition\n\t\t\t);\n\n\t\t\t// The character right before the caret must be a plain space.\n\t\t\tif ( characterBefore !== ' ' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst trimmedTextBefore = text.slice( 0, startPosition ).trim();\n\t\t\tconst prefixTransforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t( { type } ) => type === 'prefix'\n\t\t\t);\n\t\t\tconst transformation = findTransform(\n\t\t\t\tprefixTransforms,\n\t\t\t\t( { prefix } ) => {\n\t\t\t\t\treturn trimmedTextBefore === prefix;\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( ! transformation ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst content = valueToFormat(\n\t\t\t\tslice( value, startPosition, text.length )\n\t\t\t);\n\t\t\tconst block = transformation.transform( content );\n\n\t\t\tonReplace( [ block ] );\n\t\t\t__unstableMarkAutomaticChange();\n\t\t},\n\t\t[ onReplace, __unstableMarkAutomaticChange ]\n\t);\n\n\tconst mergedRef = useMergeRefs( [ forwardedRef, fallbackRef ] );\n\n\treturn (\n\t\t<RichText\n\t\t\tclientId={ clientId }\n\t\t\tidentifier={ identifier }\n\t\t\tref={ mergedRef }\n\t\t\tvalue={ adjustedValue }\n\t\t\tonChange={ adjustedOnChange }\n\t\t\tselectionStart={ selectionStart }\n\t\t\tselectionEnd={ selectionEnd }\n\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\ttagName={ tagName }\n\t\t\tstart={ start }\n\t\t\treversed={ reversed }\n\t\t\tplaceholder={ placeholder }\n\t\t\tallowedFormats={ adjustedAllowedFormats }\n\t\t\twithoutInteractiveFormatting={ withoutInteractiveFormatting }\n\t\t\tonEnter={ onEnter }\n\t\t\tonDelete={ onDelete }\n\t\t\tonPaste={ onPaste }\n\t\t\t__unstableIsSelected={ isSelected }\n\t\t\t__unstableInputRule={ inputRule }\n\t\t\t__unstableMultilineTag={ multilineTag }\n\t\t\t__unstableOnEnterFormattedText={ enterFormattedText }\n\t\t\t__unstableOnExitFormattedText={ exitFormattedText }\n\t\t\t__unstableOnCreateUndoLevel={ __unstableMarkLastChangeAsPersistent }\n\t\t\t__unstableMarkAutomaticChange={ __unstableMarkAutomaticChange }\n\t\t\t__unstableDidAutomaticChange={ didAutomaticChange }\n\t\t\t__unstableUndo={ undo }\n\t\t\t__unstableDisableFormats={ disableFormats }\n\t\t\tpreserveWhiteSpace={ preserveWhiteSpace }\n\t\t\tdisabled={ disabled }\n\t\t\tunstableOnFocus={ unstableOnFocus }\n\t\t\t__unstableAllowPrefixTransformations={\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t}\n\t\t\t__unstableMultilineRootTag={ __unstableMultilineRootTag }\n\t\t\t// Native props.\n\t\t\tblockIsSelected={\n\t\t\t\toriginalIsSelected !== undefined\n\t\t\t\t\t? originalIsSelected\n\t\t\t\t\t: blockIsSelected\n\t\t\t}\n\t\t\tshouldBlurOnUnmount={ shouldBlurOnUnmount }\n\t\t\t__unstableMobileNoFocusOnMount={ __unstableMobileNoFocusOnMount }\n\t\t\tdeleteEnter={ deleteEnter }\n\t\t\tplaceholderTextColor={ placeholderTextColor }\n\t\t\ttextAlign={ textAlign }\n\t\t\tselectionColor={ selectionColor }\n\t\t\ttagsToEliminate={ tagsToEliminate }\n\t\t\tdisableEditingMenu={ disableEditingMenu }\n\t\t\tfontSize={ fontSize }\n\t\t\tfontFamily={ fontFamily }\n\t\t\tfontWeight={ fontWeight }\n\t\t\tfontStyle={ fontStyle }\n\t\t\tminWidth={ minWidth }\n\t\t\tmaxWidth={ maxWidth }\n\t\t\tonBlur={ onBlur }\n\t\t\tsetRef={ setRef }\n\t\t\tdisableSuggestions={ disableSuggestions }\n\t\t\tdisableAutocorrection={ disableAutocorrection }\n\t\t\tcontainerWidth={ containerWidth }\n\t\t\t// Props to be set on the editable container are destructured on the\n\t\t\t// element itself for web (see below), but passed through rich text\n\t\t\t// for native.\n\t\t\tid={ props.id }\n\t\t\tstyle={ props.style }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tisSelected: nestedIsSelected,\n\t\t\t\tvalue,\n\t\t\t\tonChange,\n\t\t\t\tonFocus,\n\t\t\t\teditableProps,\n\t\t\t\teditableTagName: TagName,\n\t\t\t} ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ children && children( { value, onChange, onFocus } ) }\n\t\t\t\t\t{ nestedIsSelected && hasFormats && (\n\t\t\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\t\t\tanchorRef={ fallbackRef.current }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ nestedIsSelected && <RemoveBrowserShortcuts /> }\n\t\t\t\t\t<Autocomplete\n\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\tcompleters={ autocompleters }\n\t\t\t\t\t\trecord={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tisSelected={ nestedIsSelected }\n\t\t\t\t\t\tcontentRef={ fallbackRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { listBoxId, activeId, onKeyDown } ) => (\n\t\t\t\t\t\t\t<TagName\n\t\t\t\t\t\t\t\t{ ...editableProps }\n\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\tprops.style\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t...props.style,\n\t\t\t\t\t\t\t\t\t\t\t\t...editableProps.style,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: editableProps.style\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\tclasses,\n\t\t\t\t\t\t\t\t\tprops.className,\n\t\t\t\t\t\t\t\t\teditableProps.className\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\taria-autocomplete={\n\t\t\t\t\t\t\t\t\tlistBoxId ? 'list' : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-owns={ listBoxId }\n\t\t\t\t\t\t\t\taria-activedescendant={ activeId }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tonKeyDown( event );\n\t\t\t\t\t\t\t\t\teditableProps.onKeyDown( event );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Autocomplete>\n\t\t\t\t\t<EmbedHandlerPicker ref={ embedHandlerPickerRef } />\n\t\t\t\t</>\n\t\t\t) }\n\t\t</RichText>\n\t);\n}\n\nconst ForwardedRichTextContainer = forwardRef( RichTextWrapper );\n\nForwardedRichTextContainer.Content = Content;\n\nForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\nForwardedRichTextContainer.Content.defaultProps = {\n\tformat: 'string',\n\tvalue: '',\n};\n\nForwardedRichTextContainer.Raw = RichText;\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","_interopRequireDefault","require","_element","_data","_blocks","_compose","_richText","_url","_autocomplete","_blockEdit","_removeBrowserShortcuts","_filePasteHandler","_formatToolbarContainer","_store","_utils","_embedHandlerPicker","_content","_native","_shortcut","_toolbarButton","_inputEvent","classes","RichTextWrapper","children","tagName","start","reversed","value","originalValue","onChange","originalOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitMiddle","onSplitMiddle","__unstableOnSplitAtDoubleLineEnd","onSplitAtDoubleLineEnd","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","unstableOnFocus","__unstableAllowPrefixTransformations","__unstableMultilineRootTag","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","onBlur","setRef","disableSuggestions","disableAutocorrection","containerWidth","onEnter","onCustomEnter","props","forwardedRef","instanceId","useInstanceId","fallbackRef","useRef","clientId","blockIsSelected","useBlockEditContext","embedHandlerPickerRef","selector","select","getSelectionStart","getSelectionEnd","getSettings","didAutomaticChange","getBlock","isMultiSelecting","hasMultiSelection","blockEditorStore","selectionStart","selectionEnd","__experimentalUndo","undo","undefined","attributeKey","extraProps","Platform","OS","block","shouldBlurOnUnmount","isUnmodifiedDefaultBlock","offset","disabled","useSelect","__unstableMarkLastChangeAsPersistent","enterFormattedText","exitFormattedText","selectionChange","__unstableMarkAutomaticChange","useDispatch","multilineTag","getMultilineTag","adjustedAllowedFormats","getAllowedFormats","hasFormats","length","adjustedValue","adjustedOnChange","Array","isArray","childrenSource","toHTML","newValue","fromDOM","__unstableCreateElement","document","childNodes","onSelectionChange","useCallback","selectionChangeStart","selectionChangeEnd","onDelete","isReverse","isEmpty","splitValue","record","pastedBlocks","blocks","before","after","split","hasPastedBlocks","lastPastedBlockIndex","isAfterOriginal","push","toHTMLString","indexToSelect","initialPosition","shiftKey","canSplit","transforms","getBlockTransforms","filter","type","transformation","findTransform","item","regExp","test","text","transform","content","splitStart","end","splitEnd","canSplitAtEnd","insert","slice","remove","onPaste","html","plainText","isInternal","files","activeFormats","pastedValue","create","multilineWrapperTags","addActiveFormats","pasteHandler","HTML","filePasteHandler","mode","window","console","log","isPastedURL","isURL","trim","presentEmbedHandlerPicker","current","presentPicker","createEmbed","createLink","createLinkInParagraph","valueToInsert","canPasteEmbed","name","inputRule","valueToFormat","startPosition","characterBefore","trimmedTextBefore","prefixTransforms","prefix","mergedRef","useMergeRefs","_react","createElement","default","ref","__unstableIsSelected","__unstableInputRule","__unstableMultilineTag","__unstableOnEnterFormattedText","__unstableOnExitFormattedText","__unstableOnCreateUndoLevel","__unstableDidAutomaticChange","__unstableUndo","id","style","nestedIsSelected","onFocus","editableProps","editableTagName","TagName","Fragment","inline","anchorRef","RemoveBrowserShortcuts","completers","contentRef","listBoxId","activeId","onKeyDown","className","classnames","event","ForwardedRichTextContainer","forwardRef","Content","defaultProps","format","Raw","RichText","_default","exports"],"sources":["@wordpress/block-editor/src/components/rich-text/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Platform, useRef, useCallback, forwardRef } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tpasteHandler,\n\tchildren as childrenSource,\n\tgetBlockTransforms,\n\tfindTransform,\n\tisUnmodifiedDefaultBlock,\n} from '@wordpress/blocks';\nimport { useInstanceId, useMergeRefs } from '@wordpress/compose';\nimport {\n\t__unstableCreateElement,\n\tisEmpty,\n\tinsert,\n\tremove,\n\tcreate,\n\tsplit,\n\ttoHTMLString,\n\tslice,\n} from '@wordpress/rich-text';\nimport { isURL } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport Autocomplete from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { RemoveBrowserShortcuts } from './remove-browser-shortcuts';\nimport { filePasteHandler } from './file-paste-handler';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport {\n\taddActiveFormats,\n\tgetMultilineTag,\n\tgetAllowedFormats,\n\tcreateLinkInParagraph,\n} from './utils';\nimport EmbedHandlerPicker from './embed-handler-picker';\nimport { Content } from './content';\nimport RichText from './native';\n\nconst classes = 'block-editor-rich-text__editable';\n\nfunction RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName,\n\t\tstart,\n\t\treversed,\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\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\tunstableOnFocus,\n\t\t__unstableAllowPrefixTransformations,\n\t\t__unstableMultilineRootTag,\n\t\t// Native props.\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\tonBlur,\n\t\tsetRef,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\tcontainerWidth,\n\t\tonEnter: onCustomEnter,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\n\tidentifier = identifier || instanceId;\n\n\tconst fallbackRef = useRef();\n\tconst { clientId, isSelected: blockIsSelected } = useBlockEditContext();\n\tconst embedHandlerPickerRef = useRef();\n\tconst selector = ( select ) => {\n\t\tconst {\n\t\t\tgetSelectionStart,\n\t\t\tgetSelectionEnd,\n\t\t\tgetSettings,\n\t\t\tdidAutomaticChange,\n\t\t\tgetBlock,\n\t\t\tisMultiSelecting,\n\t\t\thasMultiSelection,\n\t\t} = select( blockEditorStore );\n\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\t\tconst { __experimentalUndo: undo } = getSettings();\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\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\tlet extraProps = {};\n\t\tif ( Platform.OS === 'native' ) {\n\t\t\t// If the block of this RichText is unmodified then it's a candidate for replacing when adding a new block.\n\t\t\t// In order to fix https://github.com/wordpress-mobile/gutenberg-mobile/issues/1126, let's blur on unmount in that case.\n\t\t\t// This apparently assumes functionality the BlockHlder actually.\n\t\t\tconst block = clientId && getBlock( clientId );\n\t\t\tconst shouldBlurOnUnmount =\n\t\t\t\tblock && isSelected && isUnmodifiedDefaultBlock( block );\n\t\t\textraProps = {\n\t\t\t\tshouldBlurOnUnmount,\n\t\t\t};\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\tdidAutomaticChange: didAutomaticChange(),\n\t\t\tdisabled: isMultiSelecting() || hasMultiSelection(),\n\t\t\tundo,\n\t\t\t...extraProps,\n\t\t};\n\t};\n\t// This selector must run on every render so the right selection state is\n\t// retrieved from the store on merge.\n\t// To do: fix this somehow.\n\tconst {\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tisSelected,\n\t\tdidAutomaticChange,\n\t\tdisabled,\n\t\tundo,\n\t\tshouldBlurOnUnmount,\n\t} = useSelect( selector );\n\tconst {\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tenterFormattedText,\n\t\texitFormattedText,\n\t\tselectionChange,\n\t\t__unstableMarkAutomaticChange,\n\t} = 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\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( selectionChangeStart, selectionChangeEnd ) => {\n\t\t\tselectionChange(\n\t\t\t\tclientId,\n\t\t\t\tidentifier,\n\t\t\t\tselectionChangeStart,\n\t\t\t\tselectionChangeEnd\n\t\t\t);\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[ clientId, identifier ]\n\t);\n\n\tconst onDelete = useCallback(\n\t\t( { value, isReverse } ) => {\n\t\t\tif ( onMerge ) {\n\t\t\t\tonMerge( ! isReverse );\n\t\t\t}\n\n\t\t\t// Only handle remove on Backspace. This serves dual-purpose of being\n\t\t\t// an intentional user interaction distinguishing between Backspace and\n\t\t\t// Delete to remove the empty field, but also to avoid merge & remove\n\t\t\t// causing destruction of two fields (merge, then removed merged).\n\t\t\telse if ( onRemove && isEmpty( value ) && isReverse ) {\n\t\t\t\tonRemove( ! isReverse );\n\t\t\t}\n\t\t},\n\t\t[ onMerge, onRemove ]\n\t);\n\n\t/**\n\t * Signals to the RichText owner that the block can be replaced with two\n\t * blocks as a result of splitting the block by pressing enter, or with\n\t * blocks as a result of splitting the block by pasting block content in the\n\t * instance.\n\t *\n\t * @param {Object} record The rich text value to split.\n\t * @param {Array} pastedBlocks The pasted blocks to insert, if any.\n\t */\n\tconst splitValue = useCallback(\n\t\t( record, pastedBlocks = [] ) => {\n\t\t\tif ( ! onReplace || ! onSplit ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst blocks = [];\n\t\t\tconst [ before, after ] = split( record );\n\t\t\tconst hasPastedBlocks = pastedBlocks.length > 0;\n\t\t\tlet lastPastedBlockIndex = -1;\n\n\t\t\t// Consider the after value to be the original it is not empty and\n\t\t\t// the before value *is* empty.\n\t\t\tconst isAfterOriginal = isEmpty( before ) && ! isEmpty( after );\n\n\t\t\t// Create a block with the content before the caret if there's no pasted\n\t\t\t// blocks, or if there are pasted blocks and the value is not empty.\n\t\t\t// We do not want a leading empty block on paste, but we do if split\n\t\t\t// with e.g. the enter key.\n\t\t\tif ( ! hasPastedBlocks || ! isEmpty( before ) ) {\n\t\t\t\tblocks.push(\n\t\t\t\t\tonSplit(\n\t\t\t\t\t\ttoHTMLString( {\n\t\t\t\t\t\t\tvalue: before,\n\t\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\t} ),\n\t\t\t\t\t\t! isAfterOriginal\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tlastPastedBlockIndex += 1;\n\t\t\t}\n\n\t\t\tif ( hasPastedBlocks ) {\n\t\t\t\tblocks.push( ...pastedBlocks );\n\t\t\t\tlastPastedBlockIndex += pastedBlocks.length;\n\t\t\t} else if ( onSplitMiddle ) {\n\t\t\t\tblocks.push( onSplitMiddle() );\n\t\t\t}\n\n\t\t\t// If there's pasted blocks, append a block with non empty content\n\t\t\t// after the caret. Otherwise, do append an empty block if there\n\t\t\t// is no `onSplitMiddle` prop, but if there is and the content is\n\t\t\t// empty, the middle block is enough to set focus in.\n\t\t\tif (\n\t\t\t\thasPastedBlocks\n\t\t\t\t\t? ! isEmpty( after )\n\t\t\t\t\t: ! onSplitMiddle || ! isEmpty( after )\n\t\t\t) {\n\t\t\t\tblocks.push(\n\t\t\t\t\tonSplit(\n\t\t\t\t\t\ttoHTMLString( {\n\t\t\t\t\t\t\tvalue: after,\n\t\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\t} ),\n\t\t\t\t\t\tisAfterOriginal\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// If there are pasted blocks, set the selection to the last one.\n\t\t\t// Otherwise, set the selection to the second block.\n\t\t\tconst indexToSelect = hasPastedBlocks ? lastPastedBlockIndex : 1;\n\n\t\t\t// If there are pasted blocks, move the caret to the end of the selected block\n\t\t\t// Otherwise, retain the default value.\n\t\t\tconst initialPosition = hasPastedBlocks ? -1 : 0;\n\n\t\t\tonReplace( blocks, indexToSelect, initialPosition );\n\t\t},\n\t\t[ onReplace, onSplit, multilineTag, onSplitMiddle ]\n\t);\n\n\tconst onEnter = useCallback(\n\t\t( { value, onChange, shiftKey } ) => {\n\t\t\tconst canSplit = onReplace && onSplit;\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst transforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t\t( { type } ) => type === 'enter'\n\t\t\t\t);\n\t\t\t\tconst transformation = findTransform( transforms, ( item ) => {\n\t\t\t\t\treturn item.regExp.test( value.text );\n\t\t\t\t} );\n\n\t\t\t\tif ( transformation ) {\n\t\t\t\t\tonReplace( [\n\t\t\t\t\t\ttransformation.transform( { content: value.text } ),\n\t\t\t\t\t] );\n\t\t\t\t\t__unstableMarkAutomaticChange();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( onCustomEnter ) {\n\t\t\t\tonCustomEnter();\n\t\t\t}\n\n\t\t\tconst { text, start: splitStart, end: splitEnd } = value;\n\t\t\tconst canSplitAtEnd =\n\t\t\t\tonSplitAtEnd &&\n\t\t\t\tsplitStart === splitEnd &&\n\t\t\t\tsplitEnd === text.length;\n\n\t\t\tif ( shiftKey ) {\n\t\t\t\tif ( ! disableLineBreaks ) {\n\t\t\t\t\tonChange( insert( value, '\\n' ) );\n\t\t\t\t}\n\t\t\t} else if ( canSplit ) {\n\t\t\t\tsplitValue( value );\n\t\t\t} else if ( canSplitAtEnd ) {\n\t\t\t\tonSplitAtEnd();\n\t\t\t} else if (\n\t\t\t\t// For some blocks it's desirable to split at the end of the\n\t\t\t\t// block when there are two line breaks at the end of the\n\t\t\t\t// block, so triple Enter exits the block.\n\t\t\t\tonSplitAtDoubleLineEnd &&\n\t\t\t\tsplitStart === splitEnd &&\n\t\t\t\tsplitEnd === text.length &&\n\t\t\t\ttext.slice( -2 ) === '\\n\\n'\n\t\t\t) {\n\t\t\t\tvalue.start = value.end - 2;\n\t\t\t\tonChange( remove( value ) );\n\t\t\t\tonSplitAtDoubleLineEnd();\n\t\t\t} else if ( ! disableLineBreaks ) {\n\t\t\t\tonChange( insert( value, '\\n' ) );\n\t\t\t}\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tonReplace,\n\t\t\tonSplit,\n\t\t\t__unstableMarkAutomaticChange,\n\t\t\tmultiline,\n\t\t\tsplitValue,\n\t\t\tonSplitAtEnd,\n\t\t]\n\t);\n\n\tconst onPaste = useCallback(\n\t\t( {\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\thtml,\n\t\t\tplainText,\n\t\t\tisInternal,\n\t\t\tfiles,\n\t\t\tactiveFormats,\n\t\t} ) => {\n\t\t\t// If the data comes from a rich text instance, we can directly use it\n\t\t\t// without filtering the data. The filters are only meant for externally\n\t\t\t// pasted content and remove inline styles.\n\t\t\tif ( isInternal ) {\n\t\t\t\tconst pastedValue = create( {\n\t\t\t\t\thtml,\n\t\t\t\t\tmultilineTag,\n\t\t\t\t\tmultilineWrapperTags:\n\t\t\t\t\t\tmultilineTag === 'li' ? [ 'ul', 'ol' ] : undefined,\n\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t} );\n\t\t\t\taddActiveFormats( pastedValue, activeFormats );\n\t\t\t\tonChange( insert( value, pastedValue ) );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( pastePlainText ) {\n\t\t\t\tonChange( insert( value, create( { text: plainText } ) ) );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Only process file if no HTML is present.\n\t\t\t// Note: a pasted file may have the URL as plain text.\n\t\t\tif ( files && files.length && ! html ) {\n\t\t\t\tconst content = pasteHandler( {\n\t\t\t\t\tHTML: filePasteHandler( files ),\n\t\t\t\t\tmode: 'BLOCKS',\n\t\t\t\t\ttagName,\n\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t} );\n\n\t\t\t\t// Allows us to ask for this information when we get a report.\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\twindow.console.log( 'Received items:\\n\\n', files );\n\n\t\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\t\tonReplace( content );\n\t\t\t\t} else {\n\t\t\t\t\tsplitValue( value, content );\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet mode = onReplace && onSplit ? 'AUTO' : 'INLINE';\n\n\t\t\tconst isPastedURL = isURL( plainText.trim() );\n\t\t\tconst presentEmbedHandlerPicker = () =>\n\t\t\t\tembedHandlerPickerRef.current?.presentPicker( {\n\t\t\t\t\tcreateEmbed: () =>\n\t\t\t\t\t\tonReplace( content, content.length - 1, -1 ),\n\t\t\t\t\tcreateLink: () =>\n\t\t\t\t\t\tcreateLinkInParagraph( plainText.trim(), onReplace ),\n\t\t\t\t} );\n\n\t\t\tif (\n\t\t\t\t__unstableEmbedURLOnPaste &&\n\t\t\t\tisEmpty( value ) &&\n\t\t\t\tisPastedURL\n\t\t\t) {\n\t\t\t\tmode = 'BLOCKS';\n\t\t\t}\n\n\t\t\tconst content = pasteHandler( {\n\t\t\t\tHTML: html,\n\t\t\t\tplainText,\n\t\t\t\tmode,\n\t\t\t\ttagName,\n\t\t\t\tpreserveWhiteSpace,\n\t\t\t} );\n\n\t\t\tif ( typeof content === 'string' ) {\n\t\t\t\tconst valueToInsert = create( { html: content } );\n\t\t\t\taddActiveFormats( valueToInsert, activeFormats );\n\t\t\t\tonChange( insert( value, valueToInsert ) );\n\t\t\t} else if ( content.length > 0 ) {\n\t\t\t\t// When an URL is pasted in an empty paragraph then the EmbedHandlerPicker should showcase options allowing the transformation of that URL\n\t\t\t\t// into either an Embed block or a link within the target paragraph. If the paragraph is non-empty, the URL is pasted as text.\n\t\t\t\tconst canPasteEmbed =\n\t\t\t\t\tisPastedURL &&\n\t\t\t\t\tcontent.length === 1 &&\n\t\t\t\t\tcontent[ 0 ].name === 'core/embed';\n\t\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\t\tif ( canPasteEmbed ) {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsert( value, create( { text: plainText } ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( __unstableEmbedURLOnPaste ) {\n\t\t\t\t\t\t\tpresentEmbedHandlerPicker();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonReplace( content, content.length - 1, -1 );\n\t\t\t\t} else {\n\t\t\t\t\tif ( canPasteEmbed ) {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsert( value, create( { text: plainText } ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tsplitValue( value, content );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\ttagName,\n\t\t\tonReplace,\n\t\t\tonSplit,\n\t\t\tsplitValue,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\tmultilineTag,\n\t\t\tpreserveWhiteSpace,\n\t\t\tpastePlainText,\n\t\t]\n\t);\n\n\tconst inputRule = useCallback(\n\t\t( value, valueToFormat ) => {\n\t\t\tif ( ! onReplace ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { start: startPosition, text } = value;\n\t\t\tconst characterBefore = text.slice(\n\t\t\t\tstartPosition - 1,\n\t\t\t\tstartPosition\n\t\t\t);\n\n\t\t\t// The character right before the caret must be a plain space.\n\t\t\tif ( characterBefore !== ' ' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst trimmedTextBefore = text.slice( 0, startPosition ).trim();\n\t\t\tconst prefixTransforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t( { type } ) => type === 'prefix'\n\t\t\t);\n\t\t\tconst transformation = findTransform(\n\t\t\t\tprefixTransforms,\n\t\t\t\t( { prefix } ) => {\n\t\t\t\t\treturn trimmedTextBefore === prefix;\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( ! transformation ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst content = valueToFormat(\n\t\t\t\tslice( value, startPosition, text.length )\n\t\t\t);\n\t\t\tconst block = transformation.transform( content );\n\n\t\t\tonReplace( [ block ] );\n\t\t\t__unstableMarkAutomaticChange();\n\t\t},\n\t\t[ onReplace, __unstableMarkAutomaticChange ]\n\t);\n\n\tconst mergedRef = useMergeRefs( [ forwardedRef, fallbackRef ] );\n\n\treturn (\n\t\t<RichText\n\t\t\tclientId={ clientId }\n\t\t\tidentifier={ identifier }\n\t\t\tref={ mergedRef }\n\t\t\tvalue={ adjustedValue }\n\t\t\tonChange={ adjustedOnChange }\n\t\t\tselectionStart={ selectionStart }\n\t\t\tselectionEnd={ selectionEnd }\n\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\ttagName={ tagName }\n\t\t\tstart={ start }\n\t\t\treversed={ reversed }\n\t\t\tplaceholder={ placeholder }\n\t\t\tallowedFormats={ adjustedAllowedFormats }\n\t\t\twithoutInteractiveFormatting={ withoutInteractiveFormatting }\n\t\t\tonEnter={ onEnter }\n\t\t\tonDelete={ onDelete }\n\t\t\tonPaste={ onPaste }\n\t\t\t__unstableIsSelected={ isSelected }\n\t\t\t__unstableInputRule={ inputRule }\n\t\t\t__unstableMultilineTag={ multilineTag }\n\t\t\t__unstableOnEnterFormattedText={ enterFormattedText }\n\t\t\t__unstableOnExitFormattedText={ exitFormattedText }\n\t\t\t__unstableOnCreateUndoLevel={ __unstableMarkLastChangeAsPersistent }\n\t\t\t__unstableMarkAutomaticChange={ __unstableMarkAutomaticChange }\n\t\t\t__unstableDidAutomaticChange={ didAutomaticChange }\n\t\t\t__unstableUndo={ undo }\n\t\t\t__unstableDisableFormats={ disableFormats }\n\t\t\tpreserveWhiteSpace={ preserveWhiteSpace }\n\t\t\tdisabled={ disabled }\n\t\t\tunstableOnFocus={ unstableOnFocus }\n\t\t\t__unstableAllowPrefixTransformations={\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t}\n\t\t\t__unstableMultilineRootTag={ __unstableMultilineRootTag }\n\t\t\t// Native props.\n\t\t\tblockIsSelected={\n\t\t\t\toriginalIsSelected !== undefined\n\t\t\t\t\t? originalIsSelected\n\t\t\t\t\t: blockIsSelected\n\t\t\t}\n\t\t\tshouldBlurOnUnmount={ shouldBlurOnUnmount }\n\t\t\t__unstableMobileNoFocusOnMount={ __unstableMobileNoFocusOnMount }\n\t\t\tdeleteEnter={ deleteEnter }\n\t\t\tplaceholderTextColor={ placeholderTextColor }\n\t\t\ttextAlign={ textAlign }\n\t\t\tselectionColor={ selectionColor }\n\t\t\ttagsToEliminate={ tagsToEliminate }\n\t\t\tdisableEditingMenu={ disableEditingMenu }\n\t\t\tfontSize={ fontSize }\n\t\t\tfontFamily={ fontFamily }\n\t\t\tfontWeight={ fontWeight }\n\t\t\tfontStyle={ fontStyle }\n\t\t\tminWidth={ minWidth }\n\t\t\tmaxWidth={ maxWidth }\n\t\t\tonBlur={ onBlur }\n\t\t\tsetRef={ setRef }\n\t\t\tdisableSuggestions={ disableSuggestions }\n\t\t\tdisableAutocorrection={ disableAutocorrection }\n\t\t\tcontainerWidth={ containerWidth }\n\t\t\t// Props to be set on the editable container are destructured on the\n\t\t\t// element itself for web (see below), but passed through rich text\n\t\t\t// for native.\n\t\t\tid={ props.id }\n\t\t\tstyle={ props.style }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tisSelected: nestedIsSelected,\n\t\t\t\tvalue,\n\t\t\t\tonChange,\n\t\t\t\tonFocus,\n\t\t\t\teditableProps,\n\t\t\t\teditableTagName: TagName,\n\t\t\t} ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ children && children( { value, onChange, onFocus } ) }\n\t\t\t\t\t{ nestedIsSelected && hasFormats && (\n\t\t\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\t\t\tanchorRef={ fallbackRef.current }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ nestedIsSelected && <RemoveBrowserShortcuts /> }\n\t\t\t\t\t<Autocomplete\n\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\tcompleters={ autocompleters }\n\t\t\t\t\t\trecord={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tisSelected={ nestedIsSelected }\n\t\t\t\t\t\tcontentRef={ fallbackRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { listBoxId, activeId, onKeyDown } ) => (\n\t\t\t\t\t\t\t<TagName\n\t\t\t\t\t\t\t\t{ ...editableProps }\n\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\tprops.style\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t...props.style,\n\t\t\t\t\t\t\t\t\t\t\t\t...editableProps.style,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: editableProps.style\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\tclasses,\n\t\t\t\t\t\t\t\t\tprops.className,\n\t\t\t\t\t\t\t\t\teditableProps.className\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\taria-autocomplete={\n\t\t\t\t\t\t\t\t\tlistBoxId ? 'list' : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-owns={ listBoxId }\n\t\t\t\t\t\t\t\taria-activedescendant={ activeId }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tonKeyDown( event );\n\t\t\t\t\t\t\t\t\teditableProps.onKeyDown( event );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Autocomplete>\n\t\t\t\t\t<EmbedHandlerPicker ref={ embedHandlerPickerRef } />\n\t\t\t\t</>\n\t\t\t) }\n\t\t</RichText>\n\t);\n}\n\nconst ForwardedRichTextContainer = forwardRef( RichTextWrapper );\n\nForwardedRichTextContainer.Content = Content;\n\nForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\nForwardedRichTextContainer.Content.defaultProps = {\n\tformat: 'string',\n\tvalue: '',\n};\n\nForwardedRichTextContainer.Raw = RichText;\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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"}
@@ -564,6 +564,30 @@ class RichText extends _element.Component {
564
564
  }
565
565
  return shouldDrop;
566
566
  }
567
+
568
+ /**
569
+ * Determines whether the text input should receive focus after an update.
570
+ * For cases where a RichText with a value is merged with an empty one.
571
+ *
572
+ * @param {Object} prevProps - The previous props of the component.
573
+ * @return {boolean} True if the text input should receive focus, false otherwise.
574
+ */
575
+ shouldFocusTextInputAfterMerge(prevProps) {
576
+ const {
577
+ __unstableIsSelected: isSelected,
578
+ blockIsSelected,
579
+ selectionStart,
580
+ selectionEnd,
581
+ __unstableMobileNoFocusOnMount
582
+ } = this.props;
583
+ const {
584
+ __unstableIsSelected: prevIsSelected,
585
+ blockIsSelected: prevBlockIsSelected
586
+ } = prevProps;
587
+ const noSelectionValues = selectionStart === undefined && selectionEnd === undefined;
588
+ const textInputWasNotFocused = !prevIsSelected && !isSelected;
589
+ return !__unstableMobileNoFocusOnMount && noSelectionValues && textInputWasNotFocused && !prevBlockIsSelected && blockIsSelected;
590
+ }
567
591
  onSelectionChangeFromAztec(start, end, text, event) {
568
592
  if (this.shouldDropEventFromAztec(event, 'onSelectionChange')) {
569
593
  return;
@@ -715,17 +739,24 @@ class RichText extends _element.Component {
715
739
  if (this.props.value !== this.value) {
716
740
  this.value = this.props.value;
717
741
  }
718
- const {
719
- __unstableIsSelected: isSelected
720
- } = this.props;
721
742
  const {
722
743
  __unstableIsSelected: prevIsSelected
723
744
  } = prevProps;
745
+ const {
746
+ __unstableIsSelected: isSelected
747
+ } = this.props;
724
748
  if (isSelected && !prevIsSelected) {
725
749
  this._editor.focus();
726
750
  // Update selection props explicitly when component is selected as Aztec won't call onSelectionChange
727
751
  // if its internal value hasn't change. When created, default value is 0, 0.
728
752
  this.onSelectionChange(this.props.selectionStart || 0, this.props.selectionEnd || 0);
753
+ } else if (this.shouldFocusTextInputAfterMerge(prevProps)) {
754
+ var _this$value$length;
755
+ // Since this is happening when merging blocks, the selection should be at the last character position.
756
+ // As a fallback the internal selectionEnd value is used.
757
+ const lastCharacterPosition = (_this$value$length = this.value?.length) !== null && _this$value$length !== void 0 ? _this$value$length : this.selectionEnd;
758
+ this._editor.focus();
759
+ this.props.onSelectionChange(lastCharacterPosition, lastCharacterPosition);
729
760
  } else if (!isSelected && prevIsSelected) {
730
761
  this._editor.blur();
731
762
  }