@wordpress/block-editor 15.21.0 → 15.22.1-next.v.202606191442.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 (554) hide show
  1. package/CHANGELOG.md +23 -1
  2. package/build/components/block-card/index.cjs +4 -5
  3. package/build/components/block-card/index.cjs.map +2 -2
  4. package/build/components/block-compare/index.cjs +2 -2
  5. package/build/components/block-compare/index.cjs.map +2 -2
  6. package/build/components/block-inspector/index.cjs +3 -4
  7. package/build/components/block-inspector/index.cjs.map +2 -2
  8. package/build/components/block-mover/mover-description.cjs +6 -6
  9. package/build/components/block-mover/mover-description.cjs.map +1 -1
  10. package/build/components/block-patterns-list/index.cjs +1 -1
  11. package/build/components/block-patterns-list/index.cjs.map +2 -2
  12. package/build/components/block-patterns-paging/index.cjs +4 -4
  13. package/build/components/block-patterns-paging/index.cjs.map +2 -2
  14. package/build/components/block-popover/use-popover-scroll.cjs.map +1 -1
  15. package/build/components/block-quick-navigation/index.cjs +7 -5
  16. package/build/components/block-quick-navigation/index.cjs.map +2 -2
  17. package/build/components/block-switcher/block-transformations-menu.cjs +16 -15
  18. package/build/components/block-switcher/block-transformations-menu.cjs.map +2 -2
  19. package/build/components/block-switcher/index.cjs +4 -4
  20. package/build/components/block-switcher/index.cjs.map +2 -2
  21. package/build/components/block-toolbar/edit-section-button.cjs.map +1 -1
  22. package/build/components/block-tools/use-block-toolbar-popover-props.cjs +10 -4
  23. package/build/components/block-tools/use-block-toolbar-popover-props.cjs.map +2 -2
  24. package/build/components/child-layout-control/index.cjs +51 -19
  25. package/build/components/child-layout-control/index.cjs.map +2 -2
  26. package/build/components/dimensions-tool/index.cjs +4 -5
  27. package/build/components/dimensions-tool/index.cjs.map +2 -2
  28. package/build/components/dimensions-tool/scale-tool.cjs +1 -1
  29. package/build/components/dimensions-tool/scale-tool.cjs.map +2 -2
  30. package/build/components/global-styles/advanced-panel.cjs +23 -15
  31. package/build/components/global-styles/advanced-panel.cjs.map +2 -2
  32. package/build/components/global-styles/background-panel.cjs +2 -2
  33. package/build/components/global-styles/background-panel.cjs.map +2 -2
  34. package/build/components/global-styles/border-panel.cjs +2 -0
  35. package/build/components/global-styles/border-panel.cjs.map +2 -2
  36. package/build/components/global-styles/dimensions-panel.cjs +2 -2
  37. package/build/components/global-styles/dimensions-panel.cjs.map +2 -2
  38. package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
  39. package/build/components/grid/grid-item-resizer.cjs.map +1 -1
  40. package/build/components/grid/grid-visualizer.cjs.map +1 -1
  41. package/build/components/iframe/index.cjs +6 -3
  42. package/build/components/iframe/index.cjs.map +3 -3
  43. package/build/components/image-editor/use-transform-image.cjs.map +1 -1
  44. package/build/components/inner-blocks/use-inner-block-template-sync.cjs +3 -1
  45. package/build/components/inner-blocks/use-inner-block-template-sync.cjs.map +2 -2
  46. package/build/components/inserter/get-appender-label.cjs.map +1 -1
  47. package/build/components/inserter/hooks/use-patterns-state.cjs +1 -1
  48. package/build/components/inserter/hooks/use-patterns-state.cjs.map +2 -2
  49. package/build/components/inserter/index.cjs +179 -220
  50. package/build/components/inserter/index.cjs.map +3 -3
  51. package/build/components/inserter/media-tab/media-preview.cjs.map +2 -2
  52. package/build/components/inserter/search-items.cjs.map +1 -1
  53. package/build/components/inserter/search-results.cjs +1 -1
  54. package/build/components/inserter/search-results.cjs.map +2 -2
  55. package/build/components/inspector-controls/fill.cjs +1 -3
  56. package/build/components/inspector-controls/fill.cjs.map +2 -2
  57. package/build/components/inspector-controls-tabs/index.cjs.map +2 -2
  58. package/build/components/inspector-controls-tabs/styles-tab.cjs +1 -1
  59. package/build/components/inspector-controls-tabs/styles-tab.cjs.map +2 -2
  60. package/build/components/keyboard-shortcuts/index.cjs.map +1 -1
  61. package/build/components/line-height-control/index.cjs.map +1 -1
  62. package/build/components/link-control/index.cjs +1 -1
  63. package/build/components/link-control/index.cjs.map +1 -1
  64. package/build/components/link-control/normalize-url.cjs.map +1 -1
  65. package/build/components/list-view/block-select-button.cjs +10 -12
  66. package/build/components/list-view/block-select-button.cjs.map +2 -2
  67. package/build/components/list-view/block.cjs +2 -1
  68. package/build/components/list-view/block.cjs.map +2 -2
  69. package/build/components/list-view/utils.cjs.map +1 -1
  70. package/build/components/preset-input-control/custom-value-controls.cjs.map +2 -2
  71. package/build/components/provider/index.cjs.map +1 -1
  72. package/build/components/provider/use-block-sync.cjs +11 -2
  73. package/build/components/provider/use-block-sync.cjs.map +2 -2
  74. package/build/components/rich-text/event-listeners/before-input-rules.cjs +5 -5
  75. package/build/components/rich-text/event-listeners/before-input-rules.cjs.map +3 -3
  76. package/build/components/rich-text/event-listeners/delete.cjs +4 -4
  77. package/build/components/rich-text/event-listeners/delete.cjs.map +3 -3
  78. package/build/components/rich-text/event-listeners/enter.cjs +7 -2
  79. package/build/components/rich-text/event-listeners/enter.cjs.map +2 -2
  80. package/build/components/rich-text/event-listeners/input-events.cjs +4 -4
  81. package/build/components/rich-text/event-listeners/input-events.cjs.map +3 -3
  82. package/build/components/rich-text/event-listeners/input-rules.cjs +17 -4
  83. package/build/components/rich-text/event-listeners/input-rules.cjs.map +3 -3
  84. package/build/components/rich-text/event-listeners/insert-replacement-text.cjs +4 -4
  85. package/build/components/rich-text/event-listeners/insert-replacement-text.cjs.map +3 -3
  86. package/build/components/rich-text/event-listeners/paste-handler.cjs.map +1 -1
  87. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs +4 -4
  88. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs.map +3 -3
  89. package/build/components/rich-text/event-listeners/shortcuts.cjs +4 -4
  90. package/build/components/rich-text/event-listeners/shortcuts.cjs.map +3 -3
  91. package/build/components/rich-text/event-listeners/undo-automatic-change.cjs +4 -4
  92. package/build/components/rich-text/event-listeners/undo-automatic-change.cjs.map +3 -3
  93. package/build/components/rich-text/index.cjs +1 -23
  94. package/build/components/rich-text/index.cjs.map +2 -2
  95. package/build/components/rich-text/prevent-event-discovery.cjs +1 -1
  96. package/build/components/rich-text/prevent-event-discovery.cjs.map +1 -1
  97. package/build/components/use-block-commands/index.cjs +5 -5
  98. package/build/components/use-block-commands/index.cjs.map +2 -2
  99. package/build/components/writing-flow/use-tab-nav.cjs.map +1 -1
  100. package/build/hooks/anchor.cjs +12 -16
  101. package/build/hooks/anchor.cjs.map +2 -2
  102. package/build/hooks/background.cjs.map +1 -1
  103. package/build/hooks/block-fields/index.cjs +13 -2
  104. package/build/hooks/block-fields/index.cjs.map +2 -2
  105. package/build/hooks/border.cjs +0 -3
  106. package/build/hooks/border.cjs.map +2 -2
  107. package/build/hooks/color.cjs +1 -4
  108. package/build/hooks/color.cjs.map +2 -2
  109. package/build/hooks/dimensions.cjs +13 -5
  110. package/build/hooks/dimensions.cjs.map +2 -2
  111. package/build/hooks/fit-text.cjs +11 -0
  112. package/build/hooks/fit-text.cjs.map +2 -2
  113. package/build/hooks/layout-child.cjs +27 -2
  114. package/build/hooks/layout-child.cjs.map +2 -2
  115. package/build/hooks/list-view.cjs +10 -7
  116. package/build/hooks/list-view.cjs.map +2 -2
  117. package/build/hooks/position.cjs +19 -22
  118. package/build/hooks/position.cjs.map +2 -2
  119. package/build/hooks/spacing-visualizer.cjs.map +1 -1
  120. package/build/hooks/state-utils.cjs.map +1 -1
  121. package/build/hooks/style.cjs +42 -2
  122. package/build/hooks/style.cjs.map +2 -2
  123. package/build/hooks/supports.cjs +0 -7
  124. package/build/hooks/supports.cjs.map +2 -2
  125. package/build/private-apis.cjs +4 -0
  126. package/build/private-apis.cjs.map +2 -2
  127. package/build/store/actions.cjs +7 -3
  128. package/build/store/actions.cjs.map +2 -2
  129. package/build/store/private-actions.cjs +1 -2
  130. package/build/store/private-actions.cjs.map +2 -2
  131. package/build/store/private-selectors.cjs +42 -2
  132. package/build/store/private-selectors.cjs.map +2 -2
  133. package/build/store/reducer.cjs +14 -6
  134. package/build/store/reducer.cjs.map +2 -2
  135. package/build/store/selectors.cjs +60 -41
  136. package/build/store/selectors.cjs.map +2 -2
  137. package/build/utils/dom.cjs.map +1 -1
  138. package/build/utils/selection.cjs +1 -1
  139. package/build-module/components/block-card/index.mjs +5 -6
  140. package/build-module/components/block-card/index.mjs.map +2 -2
  141. package/build-module/components/block-compare/index.mjs +1 -1
  142. package/build-module/components/block-compare/index.mjs.map +2 -2
  143. package/build-module/components/block-inspector/index.mjs +3 -5
  144. package/build-module/components/block-inspector/index.mjs.map +2 -2
  145. package/build-module/components/block-mover/mover-description.mjs +6 -6
  146. package/build-module/components/block-mover/mover-description.mjs.map +1 -1
  147. package/build-module/components/block-patterns-list/index.mjs +1 -1
  148. package/build-module/components/block-patterns-list/index.mjs.map +2 -2
  149. package/build-module/components/block-patterns-paging/index.mjs +4 -4
  150. package/build-module/components/block-patterns-paging/index.mjs.map +2 -2
  151. package/build-module/components/block-popover/use-popover-scroll.mjs.map +1 -1
  152. package/build-module/components/block-quick-navigation/index.mjs +8 -6
  153. package/build-module/components/block-quick-navigation/index.mjs.map +2 -2
  154. package/build-module/components/block-switcher/block-transformations-menu.mjs +16 -15
  155. package/build-module/components/block-switcher/block-transformations-menu.mjs.map +2 -2
  156. package/build-module/components/block-switcher/index.mjs +4 -4
  157. package/build-module/components/block-switcher/index.mjs.map +2 -2
  158. package/build-module/components/block-toolbar/edit-section-button.mjs.map +1 -1
  159. package/build-module/components/block-tools/use-block-toolbar-popover-props.mjs +10 -4
  160. package/build-module/components/block-tools/use-block-toolbar-popover-props.mjs.map +2 -2
  161. package/build-module/components/child-layout-control/index.mjs +51 -19
  162. package/build-module/components/child-layout-control/index.mjs.map +2 -2
  163. package/build-module/components/dimensions-tool/index.mjs +4 -5
  164. package/build-module/components/dimensions-tool/index.mjs.map +2 -2
  165. package/build-module/components/dimensions-tool/scale-tool.mjs +1 -1
  166. package/build-module/components/dimensions-tool/scale-tool.mjs.map +2 -2
  167. package/build-module/components/global-styles/advanced-panel.mjs +23 -15
  168. package/build-module/components/global-styles/advanced-panel.mjs.map +2 -2
  169. package/build-module/components/global-styles/background-panel.mjs +3 -3
  170. package/build-module/components/global-styles/background-panel.mjs.map +2 -2
  171. package/build-module/components/global-styles/border-panel.mjs +2 -0
  172. package/build-module/components/global-styles/border-panel.mjs.map +2 -2
  173. package/build-module/components/global-styles/dimensions-panel.mjs +3 -4
  174. package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
  175. package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
  176. package/build-module/components/grid/grid-item-resizer.mjs.map +1 -1
  177. package/build-module/components/grid/grid-visualizer.mjs.map +1 -1
  178. package/build-module/components/iframe/index.mjs +6 -3
  179. package/build-module/components/iframe/index.mjs.map +2 -2
  180. package/build-module/components/image-editor/use-transform-image.mjs.map +1 -1
  181. package/build-module/components/inner-blocks/use-inner-block-template-sync.mjs +3 -1
  182. package/build-module/components/inner-blocks/use-inner-block-template-sync.mjs.map +2 -2
  183. package/build-module/components/inserter/get-appender-label.mjs.map +1 -1
  184. package/build-module/components/inserter/hooks/use-patterns-state.mjs +1 -1
  185. package/build-module/components/inserter/hooks/use-patterns-state.mjs.map +2 -2
  186. package/build-module/components/inserter/index.mjs +185 -222
  187. package/build-module/components/inserter/index.mjs.map +3 -3
  188. package/build-module/components/inserter/media-tab/media-preview.mjs.map +2 -2
  189. package/build-module/components/inserter/search-items.mjs.map +1 -1
  190. package/build-module/components/inserter/search-results.mjs +1 -1
  191. package/build-module/components/inserter/search-results.mjs.map +2 -2
  192. package/build-module/components/inspector-controls/fill.mjs +1 -3
  193. package/build-module/components/inspector-controls/fill.mjs.map +2 -2
  194. package/build-module/components/inspector-controls-tabs/index.mjs.map +2 -2
  195. package/build-module/components/inspector-controls-tabs/styles-tab.mjs +1 -1
  196. package/build-module/components/inspector-controls-tabs/styles-tab.mjs.map +2 -2
  197. package/build-module/components/keyboard-shortcuts/index.mjs.map +1 -1
  198. package/build-module/components/line-height-control/index.mjs.map +1 -1
  199. package/build-module/components/link-control/index.mjs +1 -1
  200. package/build-module/components/link-control/index.mjs.map +1 -1
  201. package/build-module/components/link-control/normalize-url.mjs.map +1 -1
  202. package/build-module/components/list-view/block-select-button.mjs +10 -12
  203. package/build-module/components/list-view/block-select-button.mjs.map +2 -2
  204. package/build-module/components/list-view/block.mjs +2 -1
  205. package/build-module/components/list-view/block.mjs.map +2 -2
  206. package/build-module/components/list-view/utils.mjs.map +1 -1
  207. package/build-module/components/preset-input-control/custom-value-controls.mjs.map +2 -2
  208. package/build-module/components/provider/index.mjs.map +1 -1
  209. package/build-module/components/provider/use-block-sync.mjs +11 -2
  210. package/build-module/components/provider/use-block-sync.mjs.map +2 -2
  211. package/build-module/components/rich-text/event-listeners/before-input-rules.mjs +5 -5
  212. package/build-module/components/rich-text/event-listeners/before-input-rules.mjs.map +2 -2
  213. package/build-module/components/rich-text/event-listeners/delete.mjs +4 -4
  214. package/build-module/components/rich-text/event-listeners/delete.mjs.map +2 -2
  215. package/build-module/components/rich-text/event-listeners/enter.mjs +7 -2
  216. package/build-module/components/rich-text/event-listeners/enter.mjs.map +2 -2
  217. package/build-module/components/rich-text/event-listeners/input-events.mjs +4 -4
  218. package/build-module/components/rich-text/event-listeners/input-events.mjs.map +2 -2
  219. package/build-module/components/rich-text/event-listeners/input-rules.mjs +17 -4
  220. package/build-module/components/rich-text/event-listeners/input-rules.mjs.map +2 -2
  221. package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs +4 -4
  222. package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs.map +2 -2
  223. package/build-module/components/rich-text/event-listeners/paste-handler.mjs.map +1 -1
  224. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs +4 -4
  225. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs.map +2 -2
  226. package/build-module/components/rich-text/event-listeners/shortcuts.mjs +4 -4
  227. package/build-module/components/rich-text/event-listeners/shortcuts.mjs.map +2 -2
  228. package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs +4 -4
  229. package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs.map +2 -2
  230. package/build-module/components/rich-text/index.mjs +1 -23
  231. package/build-module/components/rich-text/index.mjs.map +2 -2
  232. package/build-module/components/rich-text/prevent-event-discovery.mjs +1 -1
  233. package/build-module/components/rich-text/prevent-event-discovery.mjs.map +1 -1
  234. package/build-module/components/use-block-commands/index.mjs +5 -5
  235. package/build-module/components/use-block-commands/index.mjs.map +2 -2
  236. package/build-module/components/writing-flow/use-tab-nav.mjs.map +1 -1
  237. package/build-module/hooks/anchor.mjs +12 -16
  238. package/build-module/hooks/anchor.mjs.map +2 -2
  239. package/build-module/hooks/background.mjs.map +1 -1
  240. package/build-module/hooks/block-fields/index.mjs +13 -2
  241. package/build-module/hooks/block-fields/index.mjs.map +2 -2
  242. package/build-module/hooks/border.mjs +1 -4
  243. package/build-module/hooks/border.mjs.map +2 -2
  244. package/build-module/hooks/color.mjs +2 -5
  245. package/build-module/hooks/color.mjs.map +2 -2
  246. package/build-module/hooks/dimensions.mjs +13 -6
  247. package/build-module/hooks/dimensions.mjs.map +2 -2
  248. package/build-module/hooks/fit-text.mjs +11 -0
  249. package/build-module/hooks/fit-text.mjs.map +2 -2
  250. package/build-module/hooks/layout-child.mjs +27 -2
  251. package/build-module/hooks/layout-child.mjs.map +2 -2
  252. package/build-module/hooks/list-view.mjs +10 -7
  253. package/build-module/hooks/list-view.mjs.map +2 -2
  254. package/build-module/hooks/position.mjs +20 -23
  255. package/build-module/hooks/position.mjs.map +2 -2
  256. package/build-module/hooks/spacing-visualizer.mjs.map +1 -1
  257. package/build-module/hooks/state-utils.mjs.map +1 -1
  258. package/build-module/hooks/style.mjs +44 -3
  259. package/build-module/hooks/style.mjs.map +2 -2
  260. package/build-module/hooks/supports.mjs +0 -7
  261. package/build-module/hooks/supports.mjs.map +2 -2
  262. package/build-module/private-apis.mjs +8 -0
  263. package/build-module/private-apis.mjs.map +2 -2
  264. package/build-module/store/actions.mjs +7 -3
  265. package/build-module/store/actions.mjs.map +2 -2
  266. package/build-module/store/private-actions.mjs +1 -2
  267. package/build-module/store/private-actions.mjs.map +2 -2
  268. package/build-module/store/private-selectors.mjs +39 -1
  269. package/build-module/store/private-selectors.mjs.map +2 -2
  270. package/build-module/store/reducer.mjs +14 -6
  271. package/build-module/store/reducer.mjs.map +2 -2
  272. package/build-module/store/selectors.mjs +62 -42
  273. package/build-module/store/selectors.mjs.map +2 -2
  274. package/build-module/utils/dom.mjs.map +1 -1
  275. package/build-module/utils/selection.mjs +1 -1
  276. package/build-style/content-rtl.css +12 -0
  277. package/build-style/content.css +12 -0
  278. package/build-style/style-rtl.css +26 -8
  279. package/build-style/style.css +26 -8
  280. package/package.json +54 -46
  281. package/src/components/block-breadcrumb/README.md +2 -2
  282. package/src/components/block-card/index.js +7 -13
  283. package/src/components/block-compare/README.md +6 -6
  284. package/src/components/block-compare/index.js +1 -3
  285. package/src/components/block-inspector/index.js +2 -10
  286. package/src/components/block-patterns-list/index.js +1 -2
  287. package/src/components/block-preview/README.md +1 -1
  288. package/src/components/block-quick-navigation/index.js +7 -7
  289. package/src/components/block-switcher/block-transformations-menu.js +16 -18
  290. package/src/components/block-switcher/index.js +4 -4
  291. package/src/components/block-tools/use-block-toolbar-popover-props.js +10 -4
  292. package/src/components/block-types-list/README.md +0 -19
  293. package/src/components/child-layout-control/index.js +65 -20
  294. package/src/components/child-layout-control/test/index.js +64 -0
  295. package/src/components/dimensions-tool/index.js +4 -9
  296. package/src/components/dimensions-tool/scale-tool.js +1 -2
  297. package/src/components/dimensions-tool/test/index.js +89 -11
  298. package/src/components/global-styles/advanced-panel.js +5 -1
  299. package/src/components/global-styles/background-panel.js +3 -3
  300. package/src/components/global-styles/border-panel.js +2 -0
  301. package/src/components/global-styles/dimensions-panel.js +13 -15
  302. package/src/components/global-styles/shadow-panel-components.js +0 -1
  303. package/src/components/iframe/index.js +8 -3
  304. package/src/components/inner-blocks/use-inner-block-template-sync.js +3 -1
  305. package/src/components/inserter/hooks/use-patterns-state.js +1 -1
  306. package/src/components/inserter/index.js +257 -288
  307. package/src/components/inserter/media-tab/media-preview.js +0 -1
  308. package/src/components/inserter/search-results.js +1 -3
  309. package/src/components/inspector-controls/fill.js +6 -8
  310. package/src/components/inspector-controls-tabs/index.js +0 -1
  311. package/src/components/inspector-controls-tabs/styles-tab.js +5 -1
  312. package/src/components/justify-content-control/README.md +1 -1
  313. package/src/components/list-view/block-select-button.js +9 -14
  314. package/src/components/list-view/block.js +1 -0
  315. package/src/components/media-placeholder/README.md +1 -29
  316. package/src/components/media-upload/README.md +0 -19
  317. package/src/components/preset-input-control/custom-value-controls.js +0 -1
  318. package/src/components/provider/test/use-block-sync.js +40 -0
  319. package/src/components/provider/use-block-sync.js +12 -2
  320. package/src/components/rich-text/event-listeners/before-input-rules.js +5 -4
  321. package/src/components/rich-text/event-listeners/delete.js +9 -4
  322. package/src/components/rich-text/event-listeners/enter.js +9 -2
  323. package/src/components/rich-text/event-listeners/input-events.js +13 -4
  324. package/src/components/rich-text/event-listeners/input-rules.js +20 -4
  325. package/src/components/rich-text/event-listeners/insert-replacement-text.js +9 -4
  326. package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +9 -4
  327. package/src/components/rich-text/event-listeners/shortcuts.js +13 -4
  328. package/src/components/rich-text/event-listeners/undo-automatic-change.js +5 -4
  329. package/src/components/rich-text/index.js +1 -33
  330. package/src/components/unit-control/README.md +1 -1
  331. package/src/components/url-popover/README.md +1 -1
  332. package/src/components/use-block-commands/index.js +5 -5
  333. package/src/hooks/anchor.js +9 -17
  334. package/src/hooks/block-fields/index.js +27 -2
  335. package/src/hooks/border.js +1 -5
  336. package/src/hooks/color.js +1 -6
  337. package/src/hooks/dimensions.js +15 -8
  338. package/src/hooks/fit-text.js +16 -0
  339. package/src/hooks/layout-child.js +41 -2
  340. package/src/hooks/list-view.js +10 -11
  341. package/src/hooks/position.js +23 -27
  342. package/src/hooks/style.js +80 -2
  343. package/src/hooks/supports.js +0 -9
  344. package/src/hooks/test/dimensions.js +71 -0
  345. package/src/hooks/test/layout-child.js +165 -0
  346. package/src/hooks/test/style.js +126 -4
  347. package/src/private-apis.js +8 -0
  348. package/src/store/actions.js +13 -3
  349. package/src/store/private-actions.js +1 -4
  350. package/src/store/private-selectors.js +89 -0
  351. package/src/store/reducer.js +19 -7
  352. package/src/store/selectors.js +91 -53
  353. package/src/store/test/actions.js +21 -0
  354. package/src/store/test/private-selectors.js +138 -0
  355. package/src/store/test/reducer.js +46 -0
  356. package/src/store/test/selectors.js +77 -0
  357. package/build/components/media-upload-progress/constants.cjs +0 -46
  358. package/build/components/media-upload-progress/constants.cjs.map +0 -7
  359. package/build/components/rich-text/native/format-edit.cjs +0 -60
  360. package/build/components/rich-text/native/format-edit.cjs.map +0 -7
  361. package/build/components/rich-text/native/index.cjs +0 -28
  362. package/build/components/rich-text/native/index.cjs.map +0 -7
  363. package/build/components/rich-text/native/use-format-types.cjs +0 -139
  364. package/build/components/rich-text/native/use-format-types.cjs.map +0 -7
  365. package/build-module/components/media-upload-progress/constants.mjs +0 -16
  366. package/build-module/components/media-upload-progress/constants.mjs.map +0 -7
  367. package/build-module/components/rich-text/native/format-edit.mjs +0 -39
  368. package/build-module/components/rich-text/native/format-edit.mjs.map +0 -7
  369. package/build-module/components/rich-text/native/index.mjs +0 -7
  370. package/build-module/components/rich-text/native/index.mjs.map +0 -7
  371. package/build-module/components/rich-text/native/use-format-types.mjs +0 -114
  372. package/build-module/components/rich-text/native/use-format-types.mjs.map +0 -7
  373. package/src/components/audio-player/audio-url-parser.native.js +0 -20
  374. package/src/components/audio-player/index.native.js +0 -225
  375. package/src/components/audio-player/styles.native.scss +0 -114
  376. package/src/components/audio-player/test/audio-url-parser.native.js +0 -53
  377. package/src/components/block-alignment-control/test/index.native.js +0 -37
  378. package/src/components/block-alignment-control/ui.native.js +0 -86
  379. package/src/components/block-caption/README.md +0 -104
  380. package/src/components/block-caption/index.native.js +0 -89
  381. package/src/components/block-caption/styles.native.scss +0 -7
  382. package/src/components/block-controls/slot.native.js +0 -33
  383. package/src/components/block-draggable/draggable-chip.native.js +0 -49
  384. package/src/components/block-draggable/dropping-insertion-point.native.js +0 -181
  385. package/src/components/block-draggable/dropping-insertion-point.native.scss +0 -8
  386. package/src/components/block-draggable/index.native.js +0 -467
  387. package/src/components/block-draggable/style.native.scss +0 -19
  388. package/src/components/block-draggable/test/__snapshots__/index.native.js.snap +0 -73
  389. package/src/components/block-draggable/test/helpers.native.js +0 -182
  390. package/src/components/block-draggable/test/index.native.js +0 -419
  391. package/src/components/block-draggable/use-scroll-when-dragging.native.js +0 -135
  392. package/src/components/block-edit/edit.native.js +0 -49
  393. package/src/components/block-edit/test/edit.native.js +0 -65
  394. package/src/components/block-heading-level-dropdown/index.native.js +0 -68
  395. package/src/components/block-icon/index.native.js +0 -47
  396. package/src/components/block-icon/style.native.scss +0 -7
  397. package/src/components/block-list/block-crash-boundary.native.js +0 -43
  398. package/src/components/block-list/block-crash-warning.native.js +0 -21
  399. package/src/components/block-list/block-invalid-warning.native.js +0 -70
  400. package/src/components/block-list/block-list-context.native.js +0 -172
  401. package/src/components/block-list/block-list-item-cell.native.js +0 -62
  402. package/src/components/block-list/block-list-item.native.js +0 -209
  403. package/src/components/block-list/block-list-item.native.scss +0 -16
  404. package/src/components/block-list/block-outline.native.js +0 -77
  405. package/src/components/block-list/block-selection-button.native.js +0 -100
  406. package/src/components/block-list/block-selection-button.native.scss +0 -34
  407. package/src/components/block-list/block.native.js +0 -716
  408. package/src/components/block-list/block.native.scss +0 -62
  409. package/src/components/block-list/grid-item.native.js +0 -58
  410. package/src/components/block-list/index.native.js +0 -437
  411. package/src/components/block-list/insertion-point.native.js +0 -36
  412. package/src/components/block-list/style.native.scss +0 -117
  413. package/src/components/block-list/test/block-invalid-warning.native.js +0 -62
  414. package/src/components/block-list/test/block-list-context.native.js +0 -243
  415. package/src/components/block-list/test/block-outline.native.js +0 -255
  416. package/src/components/block-list/test/fixtures/block-list-context.native.js +0 -79
  417. package/src/components/block-list/test/index.native.js +0 -205
  418. package/src/components/block-list/use-block-props/index.native.js +0 -10
  419. package/src/components/block-list/use-scroll-upon-insertion.native.js +0 -52
  420. package/src/components/block-list-appender/index.native.js +0 -70
  421. package/src/components/block-list-appender/style.native.scss +0 -8
  422. package/src/components/block-media-update-progress/README.md +0 -100
  423. package/src/components/block-media-update-progress/index.native.js +0 -299
  424. package/src/components/block-media-update-progress/styles.native.scss +0 -9
  425. package/src/components/block-media-update-progress/test/index.native.js +0 -543
  426. package/src/components/block-mover/index.native.js +0 -193
  427. package/src/components/block-mover/mover-description.native.js +0 -155
  428. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +0 -218
  429. package/src/components/block-mover/test/index.native.js +0 -186
  430. package/src/components/block-settings/button.native.js +0 -41
  431. package/src/components/block-settings/container.native.js +0 -91
  432. package/src/components/block-settings/container.native.scss +0 -4
  433. package/src/components/block-settings/index.native.js +0 -5
  434. package/src/components/block-styles/index.native.js +0 -94
  435. package/src/components/block-styles/preview.native.js +0 -109
  436. package/src/components/block-styles/style.native.scss +0 -64
  437. package/src/components/block-switcher/block-transformations-menu.native.js +0 -91
  438. package/src/components/block-toolbar/block-toolbar-menu.native.js +0 -477
  439. package/src/components/block-toolbar/index.native.js +0 -126
  440. package/src/components/block-toolbar/test/__snapshots__/block-toolbar-menu.native.js.snap +0 -125
  441. package/src/components/block-toolbar/test/block-toolbar-menu.native.js +0 -405
  442. package/src/components/block-toolbar/test/index.native.js +0 -36
  443. package/src/components/block-types-list/index.native.js +0 -175
  444. package/src/components/block-types-list/style.native.scss +0 -25
  445. package/src/components/block-variation-picker/index.native.js +0 -107
  446. package/src/components/block-variation-picker/style.native.scss +0 -32
  447. package/src/components/button-block-appender/index.native.js +0 -92
  448. package/src/components/button-block-appender/styles.native.scss +0 -43
  449. package/src/components/caption/README.md +0 -44
  450. package/src/components/caption/index.native.js +0 -61
  451. package/src/components/colors-gradients/panel-color-gradient-settings.native.js +0 -59
  452. package/src/components/contrast-checker/index.native.js +0 -113
  453. package/src/components/contrast-checker/style.native.scss +0 -26
  454. package/src/components/convert-to-group-buttons/index.native.js +0 -79
  455. package/src/components/default-block-appender/index.native.js +0 -113
  456. package/src/components/default-block-appender/style.native.scss +0 -18
  457. package/src/components/floating-toolbar/floatingToolbar.android.scss +0 -4
  458. package/src/components/floating-toolbar/floatingToolbar.ios.scss +0 -3
  459. package/src/components/floating-toolbar/index.native.js +0 -141
  460. package/src/components/floating-toolbar/styles.native.scss +0 -43
  461. package/src/components/font-sizes/index.native.js +0 -7
  462. package/src/components/global-styles/color-panel.native.js +0 -207
  463. package/src/components/global-styles/test/use-global-styles-context.native.js +0 -435
  464. package/src/components/global-styles/use-global-styles-context.native.js +0 -592
  465. package/src/components/gradients/index.native.js +0 -2
  466. package/src/components/image-link-destinations/index.native.js +0 -152
  467. package/src/components/image-link-destinations/style.native.scss +0 -16
  468. package/src/components/index.native.js +0 -108
  469. package/src/components/inner-blocks/constants.native.js +0 -5
  470. package/src/components/inner-blocks/index.native.js +0 -221
  471. package/src/components/inner-blocks/warning-max-depth-exceeded.native.js +0 -124
  472. package/src/components/inserter/block-types-tab.native.js +0 -76
  473. package/src/components/inserter/hooks/use-block-type-impressions.native.js +0 -47
  474. package/src/components/inserter/hooks/use-clipboard-block.native.js +0 -40
  475. package/src/components/inserter/index.native.js +0 -424
  476. package/src/components/inserter/menu.native.js +0 -237
  477. package/src/components/inserter/no-results.native.js +0 -49
  478. package/src/components/inserter/reusable-blocks-tab.native.js +0 -45
  479. package/src/components/inserter/search-results.native.js +0 -67
  480. package/src/components/inserter/style.native.scss +0 -83
  481. package/src/components/inserter/tabs.native.js +0 -152
  482. package/src/components/inserter/test/__snapshots__/index.native.js.snap +0 -117
  483. package/src/components/inserter/test/fixtures/index.native.js +0 -12
  484. package/src/components/inserter/test/index.native.js +0 -273
  485. package/src/components/inserter/test/reusable-blocks-tab.native.js +0 -62
  486. package/src/components/inserter/test/utils.native.js +0 -37
  487. package/src/components/inserter/utils.native.js +0 -46
  488. package/src/components/inserter-button/index.native.js +0 -108
  489. package/src/components/inserter-button/style.native.scss +0 -72
  490. package/src/components/inspector-controls/fill.native.js +0 -62
  491. package/src/components/inspector-controls/slot.native.js +0 -35
  492. package/src/components/inspector-controls-tabs/advanced-controls-panel.native.js +0 -31
  493. package/src/components/line-height-control/index.native.js +0 -28
  494. package/src/components/media-placeholder/index.native.js +0 -258
  495. package/src/components/media-placeholder/styles.native.scss +0 -108
  496. package/src/components/media-replace-flow/index.native.js +0 -12
  497. package/src/components/media-upload/constants.native.js +0 -14
  498. package/src/components/media-upload/index.native.js +0 -356
  499. package/src/components/media-upload/style.native.scss +0 -4
  500. package/src/components/media-upload/test/index.native.js +0 -172
  501. package/src/components/media-upload-progress/README.md +0 -100
  502. package/src/components/media-upload-progress/constants.js +0 -6
  503. package/src/components/media-upload-progress/index.native.js +0 -233
  504. package/src/components/media-upload-progress/styles.native.scss +0 -15
  505. package/src/components/media-upload-progress/test/index.native.js +0 -220
  506. package/src/components/plain-text/index.native.js +0 -164
  507. package/src/components/plain-text/style.native.scss +0 -10
  508. package/src/components/provider/index.native.js +0 -32
  509. package/src/components/rich-text/embed-handler-picker.native.js +0 -65
  510. package/src/components/rich-text/file-paste-handler.native.js +0 -3
  511. package/src/components/rich-text/format-toolbar/index.native.js +0 -21
  512. package/src/components/rich-text/format-toolbar-container.native.js +0 -16
  513. package/src/components/rich-text/index.native.js +0 -701
  514. package/src/components/rich-text/input-event.native.js +0 -10
  515. package/src/components/rich-text/native/format-edit.js +0 -44
  516. package/src/components/rich-text/native/get-format-colors.native.js +0 -47
  517. package/src/components/rich-text/native/index.js +0 -1
  518. package/src/components/rich-text/native/index.native.js +0 -1389
  519. package/src/components/rich-text/native/style.native.scss +0 -28
  520. package/src/components/rich-text/native/test/__snapshots__/index.native.js.snap +0 -79
  521. package/src/components/rich-text/native/test/index.native.js +0 -345
  522. package/src/components/rich-text/native/test/performance/rich-text.native.js +0 -44
  523. package/src/components/rich-text/native/toolbar-button-with-options.native.js +0 -61
  524. package/src/components/rich-text/native/use-format-types.js +0 -146
  525. package/src/components/rich-text/remove-browser-shortcuts.native.js +0 -1
  526. package/src/components/rich-text/shortcut.native.js +0 -10
  527. package/src/components/ungroup-button/README.md +0 -23
  528. package/src/components/ungroup-button/index.native.js +0 -77
  529. package/src/components/unsupported-block-details/index.native.js +0 -187
  530. package/src/components/unsupported-block-details/style.native.scss +0 -56
  531. package/src/components/url-input/index.native.js +0 -33
  532. package/src/components/use-block-drop-zone/index.native.js +0 -207
  533. package/src/components/use-on-block-drop/index.native.js +0 -115
  534. package/src/components/use-unsupported-block-editor/index.native.js +0 -59
  535. package/src/components/video-player/gridicon-play.native.js +0 -13
  536. package/src/components/video-player/index.native.js +0 -133
  537. package/src/components/video-player/styles.native.scss +0 -29
  538. package/src/components/warning/index.native.js +0 -64
  539. package/src/components/warning/style.native.scss +0 -47
  540. package/src/hooks/align.native.js +0 -49
  541. package/src/hooks/custom-class-name.native.js +0 -70
  542. package/src/hooks/index.native.js +0 -36
  543. package/src/hooks/layout.native.js +0 -23
  544. package/src/hooks/test/__snapshots__/align.native.js.snap +0 -73
  545. package/src/hooks/test/__snapshots__/anchor.native.js.snap +0 -7
  546. package/src/hooks/test/align.native.js +0 -134
  547. package/src/hooks/test/anchor.native.js +0 -32
  548. package/src/hooks/test/use-editor-wrapper-styles.native.js +0 -282
  549. package/src/hooks/typography.native.js +0 -60
  550. package/src/hooks/use-editor-wrapper-styles.native.js +0 -250
  551. package/src/hooks/use-editor-wrapper-styles.native.scss +0 -12
  552. package/src/index.native.js +0 -6
  553. package/src/private-apis.native.js +0 -21
  554. package/src/store/defaults.native.js +0 -23
@@ -1,28 +0,0 @@
1
-
2
- .richText {
3
- font-family: $default-regular-font;
4
- color: $gray-900;
5
- text-decoration-color: $blue-500;
6
- background-color: transparent;
7
- }
8
-
9
- .richTextDark {
10
- color: $white;
11
- text-decoration-color: $blue-30;
12
- }
13
-
14
- .richTextPlaceholder {
15
- color: $gray-20;
16
- }
17
-
18
- .richTextPlaceholderDark {
19
- color: $gray-50;
20
- }
21
-
22
- .rich-text-selection {
23
- color: $black;
24
- }
25
-
26
- .rich-text-selection--dark {
27
- color: $white;
28
- }
@@ -1,79 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`<RichText/> when applying the font size renders component with style and font size 1`] = `
4
- "<!-- wp:paragraph {"style":{"color":{"text":"#fcb900"},"typography":{"fontSize":35.56}}} -->
5
- <p class="has-text-color" style="color:#fcb900;font-size:35.56px">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed imperdiet ut nibh vitae ornare. Sed auctor nec augue at blandit.</p>
6
- <!-- /wp:paragraph -->"
7
- `;
8
-
9
- exports[`<RichText/> when applying the font size should update the font size when style prop with font size property is provided 1`] = `
10
- <View
11
- style={
12
- [
13
- undefined,
14
- undefined,
15
- ]
16
- }
17
- >
18
- <TextInput
19
- accessibilityLabel="Text input. Empty"
20
- activeFormats={[]}
21
- blockType={
22
- {
23
- "tag": "div",
24
- }
25
- }
26
- disableEditingMenu={false}
27
- fontFamily="serif"
28
- fontSize={12}
29
- isMultiline={false}
30
- maxImagesWidth={200}
31
- onBlur={[Function]}
32
- onChange={[Function]}
33
- onContentSizeChange={[Function]}
34
- onFocus={[Function]}
35
- onKeyDown={[Function]}
36
- onPaste={[Function]}
37
- onSelectionChange={[Function]}
38
- placeholderTextColor="gray"
39
- triggerKeyCodes={[]}
40
- value=""
41
- />
42
- </View>
43
- `;
44
-
45
- exports[`<RichText/> when applying the font size should update the font size with decimals when style prop with font size property is provided 1`] = `
46
- <View
47
- style={
48
- [
49
- undefined,
50
- undefined,
51
- ]
52
- }
53
- >
54
- <TextInput
55
- accessibilityLabel="Text input. Empty"
56
- activeFormats={[]}
57
- blockType={
58
- {
59
- "tag": "div",
60
- }
61
- }
62
- disableEditingMenu={false}
63
- fontFamily="serif"
64
- fontSize={13}
65
- isMultiline={false}
66
- maxImagesWidth={200}
67
- onBlur={[Function]}
68
- onChange={[Function]}
69
- onContentSizeChange={[Function]}
70
- onFocus={[Function]}
71
- onKeyDown={[Function]}
72
- onPaste={[Function]}
73
- onSelectionChange={[Function]}
74
- placeholderTextColor="gray"
75
- triggerKeyCodes={[]}
76
- value=""
77
- />
78
- </View>
79
- `;
@@ -1,345 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { Dimensions } from 'react-native';
5
- import {
6
- fireEvent,
7
- getEditorHtml,
8
- initializeEditor,
9
- render,
10
- screen,
11
- } from 'test/helpers';
12
-
13
- /**
14
- * WordPress dependencies
15
- */
16
- import { select } from '@wordpress/data';
17
- import {
18
- store as richTextStore,
19
- RichTextData,
20
- __unstableCreateElement,
21
- } from '@wordpress/rich-text';
22
- import { coreBlocks } from '@wordpress/block-library';
23
- import {
24
- getBlockTypes,
25
- setDefaultBlockName,
26
- unregisterBlockType,
27
- } from '@wordpress/blocks';
28
-
29
- /**
30
- * Internal dependencies
31
- */
32
- import { store as blockEditorStore } from '../../../../store';
33
- import RichText from '../index.native';
34
-
35
- /**
36
- * Mock `useSelect` with various global application settings, e.g., styles.
37
- *
38
- * @param {Object} settings the global application settings you would like to mock.
39
- */
40
- const mockGlobalSettings = (
41
- settings = { fontSize: 'var(--wp--preset--font-size--normal)' }
42
- ) => {
43
- const { fontSize } = settings;
44
- const DEFAULT_GLOBAL_STYLES = {
45
- __experimentalGlobalStylesBaseStyles: { typography: { fontSize } },
46
- };
47
- jest.spyOn( select( blockEditorStore ), 'getSettings' ).mockReturnValue(
48
- DEFAULT_GLOBAL_STYLES
49
- );
50
- jest.spyOn( select( richTextStore ), 'getFormatTypes' ).mockReturnValue(
51
- []
52
- );
53
- };
54
-
55
- describe( '<RichText/>', () => {
56
- /**
57
- * Capture initial `window` dimensions before our integration tests modify them to stage runtime fixtures.
58
- * Reset to the initial `window` dimensions after each test is executed in case they were modified.
59
- */
60
- const window = Dimensions.get( 'window' );
61
-
62
- const decimalUnitsData = [
63
- [ '1.125rem', 18 ],
64
- [ '10.52px', 11 ],
65
- [ '2.3136em', 37 ],
66
- [ '1.42vh', 19 ],
67
- ];
68
-
69
- beforeAll( () => {
70
- // Register Paragraph block.
71
- const paragraph = coreBlocks[ 'core/paragraph' ];
72
- paragraph.init();
73
- setDefaultBlockName( paragraph.name );
74
- } );
75
-
76
- beforeEach( () => {
77
- mockGlobalSettings( {} );
78
- } );
79
-
80
- afterEach( () => {
81
- Dimensions.set( { window } );
82
- } );
83
-
84
- afterAll( () => {
85
- // Clean up registered blocks.
86
- getBlockTypes().forEach( ( block ) => {
87
- unregisterBlockType( block.name );
88
- } );
89
- } );
90
-
91
- describe( 'when the value changes', () => {
92
- it( 'should avoid updating attributes when values are equal', async () => {
93
- const handleChange = jest.fn();
94
- const defaultEmptyValue = RichTextData.empty();
95
- render(
96
- <RichText
97
- onChange={ handleChange }
98
- value={ defaultEmptyValue }
99
- />
100
- );
101
-
102
- // Simulate an empty string from Aztec
103
- fireEvent( screen.getByLabelText( 'Text input. Empty' ), 'change', {
104
- nativeEvent: { text: '' },
105
- } );
106
-
107
- expect( handleChange ).not.toHaveBeenCalled();
108
- } );
109
-
110
- it( 'should preserve non-breaking space HTML entity', () => {
111
- const onChange = jest.fn();
112
- const onSelectionChange = jest.fn();
113
- // The initial value is created using an HTML element to preserve
114
- // the HTML entity.
115
- const initialValue = RichTextData.fromHTMLElement(
116
- __unstableCreateElement( document, '&nbsp;' )
117
- );
118
- render(
119
- <RichText
120
- onChange={ onChange }
121
- onSelectionChange={ onSelectionChange }
122
- value={ initialValue }
123
- __unstableIsSelected
124
- />
125
- );
126
-
127
- // Trigger selection event with same text value as initial.
128
- fireEvent(
129
- screen.getByLabelText( /Text input/ ),
130
- 'onSelectionChange',
131
- 0,
132
- 0,
133
- initialValue.toString(),
134
- {
135
- nativeEvent: {
136
- eventCount: 0,
137
- target: undefined,
138
- text: initialValue.toString(),
139
- },
140
- }
141
- );
142
-
143
- expect( onChange ).not.toHaveBeenCalled();
144
- expect( onSelectionChange ).toHaveBeenCalled();
145
- } );
146
- } );
147
-
148
- describe( 'when applying the font size', () => {
149
- it( 'should display rich text at the DEFAULT font size.', () => {
150
- // Arrange.
151
- const expectedFontSize = 16;
152
- // Act.
153
- const { getByLabelText } = render(
154
- <RichText accessibilityLabel="editor" />
155
- );
156
- // Assert.
157
- const actualFontSize = getByLabelText( 'editor' ).props.fontSize;
158
- expect( actualFontSize ).toBe( expectedFontSize );
159
- } );
160
-
161
- it( 'should display rich text at the PROVIDED font size computed from the LOCAL `fontSize` CSS.', () => {
162
- // Arrange.
163
- const expectedFontSize = 32;
164
- // Act.
165
- const { getByLabelText } = render(
166
- <RichText
167
- accessibilityLabel="editor"
168
- fontSize="min(2em, 3em)"
169
- />
170
- );
171
- // Assert.
172
- const actualFontSize = getByLabelText( 'editor' ).props.fontSize;
173
- expect( actualFontSize ).toBe( expectedFontSize );
174
- } );
175
-
176
- it( 'should display rich text at the PROVIDED font size computed from the LOCAL `style.fontSize` CSS.', () => {
177
- // Arrange.
178
- const expectedFontSize = 32;
179
- // Act.
180
- const { getByLabelText } = render(
181
- <RichText
182
- accessibilityLabel="editor"
183
- style={ { fontSize: 'min(2em, 3em)' } }
184
- />
185
- );
186
- // Assert.
187
- const actualFontSize = getByLabelText( 'editor' ).props.fontSize;
188
- expect( actualFontSize ).toBe( expectedFontSize );
189
- } );
190
-
191
- it( `should display rich text with the default editor font size value and not use the
192
- \`default font size value from the global styles for a tag different than (p)`, () => {
193
- // Arrange.
194
- const defaultFontSize = 16;
195
- mockGlobalSettings( { fontSize: 'min(2em, 3em)' } );
196
- // Act.
197
- const { getByLabelText } = render(
198
- <RichText accessibilityLabel="editor" tagName="div" />
199
- );
200
- // Assert.
201
- const actualFontSize = getByLabelText( 'editor' ).props.fontSize;
202
- expect( actualFontSize ).toBe( defaultFontSize );
203
- } );
204
-
205
- it( `should display rich text at the PROVIDED font size computed from the selected GLOBAL
206
- \`__experimentalGlobalStylesBaseStyles.typography.fontSize\` CSS.`, () => {
207
- // Arrange.
208
- const expectedFontSize = 32;
209
- mockGlobalSettings( { fontSize: 'min(2em, 3em)' } );
210
- // Act.
211
- const { getByLabelText } = render(
212
- <RichText accessibilityLabel="editor" tagName="p" />
213
- );
214
- // Assert.
215
- const actualFontSize = getByLabelText( 'editor' ).props.fontSize;
216
- expect( actualFontSize ).toBe( expectedFontSize );
217
- } );
218
-
219
- test.each( decimalUnitsData )(
220
- `should display rich text at the PROVIDED font size computed from the selected GLOBAL
221
- \`__experimentalGlobalStylesBaseStyles.typography.fontSize\` CSS with decimal value: %s`,
222
- ( unit, expected ) => {
223
- // Arrange.
224
- mockGlobalSettings( { fontSize: unit } );
225
- // Act.
226
- const { getByLabelText } = render(
227
- <RichText accessibilityLabel="editor" tagName="p" />
228
- );
229
- // Assert.
230
- const actualFontSize =
231
- getByLabelText( 'editor' ).props.fontSize;
232
- expect( actualFontSize ).toBe( expected );
233
- }
234
- );
235
-
236
- it( `should display rich text at the font size computed from the LOCAL \`style.fontSize\` CSS with HIGHEST PRIORITY
237
- when CSS is provided ambiguously from ALL possible sources.`, () => {
238
- // Arrange.
239
- const expectedFontSize = 1;
240
- mockGlobalSettings( { fontSize: '0' } );
241
- // Act.
242
- const { getByLabelText } = render(
243
- <RichText
244
- accessibilityLabel="editor"
245
- style={ { fontSize: '1' } }
246
- fontSize="2"
247
- tagName="p"
248
- />
249
- );
250
- // Assert.
251
- const actualFontSize = getByLabelText( 'editor' ).props.fontSize;
252
- expect( actualFontSize ).toBe( expectedFontSize );
253
- } );
254
-
255
- it( `should display rich text at the font size computed from the LOCAL \`style.fontSize\` CSS with
256
- NEXT PRIORITY when CSS is provided ambiguously from MULTIPLE possible sources EXCLUDING \`fontSize\`.`, () => {
257
- // Arrange.
258
- const expectedFontSize = 1;
259
- mockGlobalSettings( { fontSize: '0' } );
260
- // Act.
261
- const { getByLabelText } = render(
262
- <RichText
263
- accessibilityLabel="editor"
264
- style={ { fontSize: '1' } }
265
- tagName="p"
266
- />
267
- );
268
- // Assert.
269
- const actualFontSize = getByLabelText( 'editor' ).props.fontSize;
270
- expect( actualFontSize ).toBe( expectedFontSize );
271
- } );
272
-
273
- it( 'should display rich text at the font size computed from CSS relative to the VIEWPORT WIDTH.', () => {
274
- // Arrange.
275
- const expectedFontSize = 3;
276
- Dimensions.set( { window: { ...window, width: 300 } } );
277
- // Act.
278
- const { getByLabelText } = render(
279
- <RichText accessibilityLabel="editor" fontSize="1vw" />
280
- );
281
- // Assert.
282
- const actualFontSize = getByLabelText( 'editor' ).props.fontSize;
283
- expect( actualFontSize ).toBe( expectedFontSize );
284
- } );
285
-
286
- it( 'should display rich text at the font size computed from CSS relative to the VIEWPORT HEIGHT.', () => {
287
- // Arrange.
288
- const expectedFontSize = 3;
289
- Dimensions.set( { window: { ...window, height: 300 } } );
290
- // Act.
291
- const { getByLabelText } = render(
292
- <RichText accessibilityLabel="editor" fontSize="1vh" />
293
- );
294
- // Assert.
295
- const actualFontSize = getByLabelText( 'editor' ).props.fontSize;
296
- expect( actualFontSize ).toBe( expectedFontSize );
297
- } );
298
-
299
- it( 'should update the font size when style prop with font size property is provided', () => {
300
- // Arrange.
301
- const fontSize = '10';
302
- const style = { fontSize: '12' };
303
- // Act.
304
- render( <RichText fontSize={ fontSize } /> );
305
- screen.update( <RichText fontSize={ fontSize } style={ style } /> );
306
- // Assert.
307
- expect( screen.toJSON() ).toMatchSnapshot();
308
- } );
309
-
310
- it( 'renders component with style and font size', async () => {
311
- // Arrange.
312
- const initialHtml = `<!-- wp:paragraph {"style":{"color":{"text":"#fcb900"},"typography":{"fontSize":35.56}}} -->
313
- <p class="has-text-color" style="color:#fcb900;font-size:35.56px">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed imperdiet ut nibh vitae ornare. Sed auctor nec augue at blandit.</p>
314
- <!-- /wp:paragraph -->`;
315
- // Act.
316
- await initializeEditor( { initialHtml } );
317
- // Assert.
318
- expect( getEditorHtml() ).toMatchSnapshot();
319
- } );
320
-
321
- it( 'should update the font size with decimals when style prop with font size property is provided', () => {
322
- // Arrange.
323
- const fontSize = '10';
324
- const style = { fontSize: '12.56px' };
325
- // Act.
326
- render( <RichText fontSize={ fontSize } /> );
327
- screen.update( <RichText fontSize={ fontSize } style={ style } /> );
328
- // Assert.
329
- expect( screen.toJSON() ).toMatchSnapshot();
330
- } );
331
-
332
- it( 'should set the default minimum line height value if the provided value from the styles is lower', () => {
333
- // Arrange.
334
- const expectedLineHeight = 1;
335
- const style = { lineHeight: 0.2 };
336
- // Act.
337
- const { getByLabelText } = render(
338
- <RichText accessibilityLabel="editor" style={ style } />
339
- );
340
- // Assert.
341
- const actualFontSize = getByLabelText( 'editor' ).props.lineHeight;
342
- expect( actualFontSize ).toBe( expectedLineHeight );
343
- } );
344
- } );
345
- } );
@@ -1,44 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import {
5
- typeInRichText,
6
- fireEvent,
7
- measurePerformance,
8
- screen,
9
- } from 'test/helpers';
10
-
11
- /**
12
- * Internal dependencies
13
- */
14
- import RichText from '../../index.native';
15
-
16
- describe( 'RichText Performance', () => {
17
- const onCreateUndoLevel = jest.fn();
18
- const onChange = jest.fn();
19
- const onSelectionChange = jest.fn();
20
-
21
- it( 'performance is stable when typing using Rich Text', async () => {
22
- const scenario = async () => {
23
- const richTextInput = screen.getByLabelText( 'Text input. Empty' );
24
-
25
- fireEvent( richTextInput, 'focus' );
26
-
27
- typeInRichText(
28
- richTextInput,
29
- '<strong>Bold</strong> <em>italic</em> <s>strikethrough</s> text'
30
- );
31
- };
32
-
33
- await measurePerformance(
34
- <RichText
35
- onChange={ onChange }
36
- __unstableOnCreateUndoLevel={ onCreateUndoLevel }
37
- onSelectionChange={ onSelectionChange }
38
- />,
39
- {
40
- scenario,
41
- }
42
- );
43
- } );
44
- } );
@@ -1,61 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { Picker, ToolbarGroup, ToolbarButton } from '@wordpress/components';
5
- import { useRef } from '@wordpress/element';
6
- import { Icon } from '@wordpress/icons';
7
-
8
- /**
9
- * Toolbar button component that, upon a long press, opens a Picker
10
- * to allow selecting from among multiple options.
11
- *
12
- * @param {Object} props Component props.
13
- * @param {Object} props.options Options to pick from.
14
- */
15
- function ToolbarButtonWithOptions( { options } ) {
16
- const picker = useRef();
17
-
18
- function presentPicker() {
19
- if ( picker.current ) {
20
- picker.current.presentPicker();
21
- }
22
- }
23
-
24
- function onValueSelected( selectedValue ) {
25
- const selectedOption = options.find(
26
- ( op ) => op.value === selectedValue
27
- );
28
- if ( selectedOption ) {
29
- selectedOption.onClick();
30
- }
31
- }
32
-
33
- if ( ! options || options.length === 0 ) {
34
- return null;
35
- }
36
- const firstOption = options[ 0 ];
37
- const enablePicker = options.length > 1;
38
-
39
- return (
40
- <>
41
- <ToolbarGroup>
42
- <ToolbarButton
43
- title={ firstOption.title }
44
- icon={ <Icon icon={ firstOption.icon } /> }
45
- onClick={ firstOption.onClick }
46
- onLongPress={ enablePicker ? presentPicker : undefined }
47
- />
48
- </ToolbarGroup>
49
- { enablePicker && (
50
- <Picker
51
- ref={ picker }
52
- options={ options }
53
- onChange={ onValueSelected }
54
- hideCancelButton
55
- />
56
- ) }
57
- </>
58
- );
59
- }
60
-
61
- export default ToolbarButtonWithOptions;
@@ -1,146 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useMemo } from '@wordpress/element';
5
- import { useSelect, useDispatch } from '@wordpress/data';
6
- import { store as richTextStore } from '@wordpress/rich-text';
7
-
8
- function formatTypesSelector( select ) {
9
- return select( richTextStore ).getFormatTypes();
10
- }
11
-
12
- /**
13
- * Set of all interactive content tags.
14
- *
15
- * @see https://html.spec.whatwg.org/multipage/dom.html#interactive-content
16
- */
17
- const interactiveContentTags = new Set( [
18
- 'a',
19
- 'audio',
20
- 'button',
21
- 'details',
22
- 'embed',
23
- 'iframe',
24
- 'input',
25
- 'label',
26
- 'select',
27
- 'textarea',
28
- 'video',
29
- ] );
30
-
31
- /**
32
- * This hook provides RichText with the `formatTypes` and its derived props from
33
- * experimental format type settings.
34
- *
35
- * @param {Object} $0 Options
36
- * @param {string} $0.clientId Block client ID.
37
- * @param {string} $0.identifier Block attribute.
38
- * @param {boolean} $0.withoutInteractiveFormatting Whether to clean the interactive formatting or not.
39
- * @param {Array} $0.allowedFormats Allowed formats
40
- */
41
- export function useFormatTypes( {
42
- clientId,
43
- identifier,
44
- withoutInteractiveFormatting,
45
- allowedFormats,
46
- } ) {
47
- const allFormatTypes = useSelect( formatTypesSelector, [] );
48
- const formatTypes = useMemo( () => {
49
- return allFormatTypes.filter( ( { name, tagName } ) => {
50
- if ( allowedFormats && ! allowedFormats.includes( name ) ) {
51
- return false;
52
- }
53
-
54
- if (
55
- withoutInteractiveFormatting &&
56
- interactiveContentTags.has( tagName )
57
- ) {
58
- return false;
59
- }
60
-
61
- return true;
62
- } );
63
- }, [ allFormatTypes, allowedFormats, interactiveContentTags ] );
64
- const keyedSelected = useSelect(
65
- ( select ) =>
66
- formatTypes.reduce( ( accumulator, type ) => {
67
- if ( type.__experimentalGetPropsForEditableTreePreparation ) {
68
- accumulator[ type.name ] =
69
- type.__experimentalGetPropsForEditableTreePreparation(
70
- select,
71
- {
72
- richTextIdentifier: identifier,
73
- blockClientId: clientId,
74
- }
75
- );
76
- }
77
-
78
- return accumulator;
79
- }, {} ),
80
- [ formatTypes, clientId, identifier ]
81
- );
82
- const dispatch = useDispatch();
83
- const prepareHandlers = [];
84
- const valueHandlers = [];
85
- const changeHandlers = [];
86
- const dependencies = [];
87
-
88
- formatTypes.forEach( ( type ) => {
89
- if ( type.__experimentalCreatePrepareEditableTree ) {
90
- const selected = keyedSelected[ type.name ];
91
- const handler = type.__experimentalCreatePrepareEditableTree(
92
- selected,
93
- {
94
- richTextIdentifier: identifier,
95
- blockClientId: clientId,
96
- }
97
- );
98
-
99
- if ( type.__experimentalCreateOnChangeEditableValue ) {
100
- valueHandlers.push( handler );
101
- } else {
102
- prepareHandlers.push( handler );
103
- }
104
-
105
- for ( const key in selected ) {
106
- dependencies.push( selected[ key ] );
107
- }
108
- }
109
-
110
- if ( type.__experimentalCreateOnChangeEditableValue ) {
111
- let dispatchers = {};
112
-
113
- if ( type.__experimentalGetPropsForEditableTreeChangeHandler ) {
114
- dispatchers =
115
- type.__experimentalGetPropsForEditableTreeChangeHandler(
116
- dispatch,
117
- {
118
- richTextIdentifier: identifier,
119
- blockClientId: clientId,
120
- }
121
- );
122
- }
123
-
124
- changeHandlers.push(
125
- type.__experimentalCreateOnChangeEditableValue(
126
- {
127
- ...( keyedSelected[ type.name ] || {} ),
128
- ...dispatchers,
129
- },
130
- {
131
- richTextIdentifier: identifier,
132
- blockClientId: clientId,
133
- }
134
- )
135
- );
136
- }
137
- } );
138
-
139
- return {
140
- formatTypes,
141
- prepareHandlers,
142
- valueHandlers,
143
- changeHandlers,
144
- dependencies,
145
- };
146
- }
@@ -1 +0,0 @@
1
- export const RemoveBrowserShortcuts = () => null;