@wordpress/block-editor 17.0.2-next.v.202608281122.0 → 17.1.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 (382) hide show
  1. package/CHANGELOG.md +29 -1
  2. package/build/components/background-image-control/index.cjs +18 -1
  3. package/build/components/background-image-control/index.cjs.map +2 -2
  4. package/build/components/block-allowed-blocks/modal.cjs +2 -1
  5. package/build/components/block-allowed-blocks/modal.cjs.map +3 -3
  6. package/build/components/block-edit/edit.cjs.map +1 -1
  7. package/build/components/block-inspector/index.cjs +3 -12
  8. package/build/components/block-inspector/index.cjs.map +2 -2
  9. package/build/components/block-list/use-block-props/use-is-hovered.cjs +17 -4
  10. package/build/components/block-list/use-block-props/use-is-hovered.cjs.map +2 -2
  11. package/build/components/block-preview/index.cjs +1 -2
  12. package/build/components/block-preview/index.cjs.map +2 -2
  13. package/build/components/block-switcher/index.cjs +2 -1
  14. package/build/components/block-switcher/index.cjs.map +3 -3
  15. package/build/components/block-toolbar/pattern-overrides-dropdown.cjs +2 -1
  16. package/build/components/block-toolbar/pattern-overrides-dropdown.cjs.map +3 -3
  17. package/build/components/global-styles/border-panel.cjs +19 -42
  18. package/build/components/global-styles/border-panel.cjs.map +2 -2
  19. package/build/components/global-styles/image-settings-panel.cjs.map +1 -1
  20. package/build/components/iframe/index.cjs.map +1 -1
  21. package/build/components/inserter/hooks/use-patterns-paging.cjs.map +1 -1
  22. package/build/components/inserter-draggable-blocks/index.cjs.map +1 -1
  23. package/build/components/inspector-controls-tabs/content-tab.cjs +2 -3
  24. package/build/components/inspector-controls-tabs/content-tab.cjs.map +2 -2
  25. package/build/components/inspector-controls-tabs/styles-tab.cjs +1 -3
  26. package/build/components/inspector-controls-tabs/styles-tab.cjs.map +2 -2
  27. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs +1 -2
  28. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs.map +2 -2
  29. package/build/components/inspector-popover-header/index.cjs +5 -4
  30. package/build/components/inspector-popover-header/index.cjs.map +3 -3
  31. package/build/components/link-control/index.cjs.map +2 -2
  32. package/build/components/link-control/search-input.cjs.map +1 -1
  33. package/build/components/list-view/block-select-button.cjs +9 -1
  34. package/build/components/list-view/block-select-button.cjs.map +2 -2
  35. package/build/components/list-view/block.cjs +2 -1
  36. package/build/components/list-view/block.cjs.map +2 -2
  37. package/build/components/list-view/use-list-view-drop-zone.cjs.map +1 -1
  38. package/build/components/media-replace-flow/index.cjs +4 -1
  39. package/build/components/media-replace-flow/index.cjs.map +2 -2
  40. package/build/components/navigable-toolbar/index.cjs +3 -0
  41. package/build/components/navigable-toolbar/index.cjs.map +2 -2
  42. package/build/components/rich-text/event-listeners/enter.cjs +23 -11
  43. package/build/components/rich-text/event-listeners/enter.cjs.map +2 -2
  44. package/build/components/rich-text/event-listeners/index.cjs +0 -2
  45. package/build/components/rich-text/event-listeners/index.cjs.map +3 -3
  46. package/build/components/rich-text/event-listeners/input-rules.cjs +4 -2
  47. package/build/components/rich-text/event-listeners/input-rules.cjs.map +2 -2
  48. package/build/components/use-block-drop-zone/index.cjs.map +1 -1
  49. package/build/components/writing-flow/index.cjs +5 -0
  50. package/build/components/writing-flow/index.cjs.map +3 -3
  51. package/build/components/writing-flow/use-arrow-nav.cjs.map +1 -1
  52. package/build/components/writing-flow/use-input.cjs +12 -2
  53. package/build/components/writing-flow/use-input.cjs.map +2 -2
  54. package/build/components/writing-flow/use-tab-nav.cjs +84 -41
  55. package/build/components/writing-flow/use-tab-nav.cjs.map +3 -3
  56. package/build/components/{rich-text/event-listeners/undo-automatic-change.cjs → writing-flow/use-undo-automatic-change.cjs} +18 -15
  57. package/build/components/writing-flow/use-undo-automatic-change.cjs.map +7 -0
  58. package/build/hooks/border.cjs +2 -46
  59. package/build/hooks/border.cjs.map +2 -2
  60. package/build/hooks/generate-fields-from-attributes.cjs.map +1 -1
  61. package/build/hooks/index.cjs +0 -2
  62. package/build/hooks/index.cjs.map +3 -3
  63. package/build/hooks/style.cjs +2 -2
  64. package/build/hooks/style.cjs.map +2 -2
  65. package/build/layouts/flex.cjs +3 -0
  66. package/build/layouts/flex.cjs.map +2 -2
  67. package/build/store/actions.cjs +12 -9
  68. package/build/store/actions.cjs.map +3 -3
  69. package/build-module/components/background-image-control/index.mjs +18 -1
  70. package/build-module/components/background-image-control/index.mjs.map +2 -2
  71. package/build-module/components/block-allowed-blocks/modal.mjs +2 -2
  72. package/build-module/components/block-allowed-blocks/modal.mjs.map +2 -2
  73. package/build-module/components/block-edit/edit.mjs.map +1 -1
  74. package/build-module/components/block-inspector/index.mjs +3 -12
  75. package/build-module/components/block-inspector/index.mjs.map +2 -2
  76. package/build-module/components/block-list/use-block-props/use-is-hovered.mjs +17 -4
  77. package/build-module/components/block-list/use-block-props/use-is-hovered.mjs.map +2 -2
  78. package/build-module/components/block-preview/index.mjs +1 -2
  79. package/build-module/components/block-preview/index.mjs.map +2 -2
  80. package/build-module/components/block-switcher/index.mjs +2 -2
  81. package/build-module/components/block-switcher/index.mjs.map +2 -2
  82. package/build-module/components/block-toolbar/pattern-overrides-dropdown.mjs +3 -6
  83. package/build-module/components/block-toolbar/pattern-overrides-dropdown.mjs.map +2 -2
  84. package/build-module/components/global-styles/border-panel.mjs +19 -42
  85. package/build-module/components/global-styles/border-panel.mjs.map +2 -2
  86. package/build-module/components/global-styles/image-settings-panel.mjs.map +1 -1
  87. package/build-module/components/iframe/index.mjs.map +1 -1
  88. package/build-module/components/inserter/hooks/use-patterns-paging.mjs.map +1 -1
  89. package/build-module/components/inserter-draggable-blocks/index.mjs.map +1 -1
  90. package/build-module/components/inspector-controls-tabs/content-tab.mjs +3 -4
  91. package/build-module/components/inspector-controls-tabs/content-tab.mjs.map +2 -2
  92. package/build-module/components/inspector-controls-tabs/styles-tab.mjs +1 -3
  93. package/build-module/components/inspector-controls-tabs/styles-tab.mjs.map +2 -2
  94. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs +1 -2
  95. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs.map +2 -2
  96. package/build-module/components/inspector-popover-header/index.mjs +6 -7
  97. package/build-module/components/inspector-popover-header/index.mjs.map +2 -2
  98. package/build-module/components/link-control/index.mjs.map +2 -2
  99. package/build-module/components/link-control/search-input.mjs.map +1 -1
  100. package/build-module/components/list-view/block-select-button.mjs +9 -1
  101. package/build-module/components/list-view/block-select-button.mjs.map +2 -2
  102. package/build-module/components/list-view/block.mjs +2 -1
  103. package/build-module/components/list-view/block.mjs.map +2 -2
  104. package/build-module/components/list-view/use-list-view-drop-zone.mjs.map +1 -1
  105. package/build-module/components/media-replace-flow/index.mjs +4 -1
  106. package/build-module/components/media-replace-flow/index.mjs.map +2 -2
  107. package/build-module/components/navigable-toolbar/index.mjs +3 -0
  108. package/build-module/components/navigable-toolbar/index.mjs.map +2 -2
  109. package/build-module/components/rich-text/event-listeners/enter.mjs +23 -11
  110. package/build-module/components/rich-text/event-listeners/enter.mjs.map +2 -2
  111. package/build-module/components/rich-text/event-listeners/index.mjs +0 -2
  112. package/build-module/components/rich-text/event-listeners/index.mjs.map +2 -2
  113. package/build-module/components/rich-text/event-listeners/input-rules.mjs +4 -2
  114. package/build-module/components/rich-text/event-listeners/input-rules.mjs.map +2 -2
  115. package/build-module/components/use-block-drop-zone/index.mjs.map +1 -1
  116. package/build-module/components/writing-flow/index.mjs +5 -0
  117. package/build-module/components/writing-flow/index.mjs.map +2 -2
  118. package/build-module/components/writing-flow/use-arrow-nav.mjs.map +1 -1
  119. package/build-module/components/writing-flow/use-input.mjs +12 -2
  120. package/build-module/components/writing-flow/use-input.mjs.map +2 -2
  121. package/build-module/components/writing-flow/use-tab-nav.mjs +86 -43
  122. package/build-module/components/writing-flow/use-tab-nav.mjs.map +3 -3
  123. package/build-module/components/writing-flow/use-undo-automatic-change.mjs +36 -0
  124. package/build-module/components/writing-flow/use-undo-automatic-change.mjs.map +7 -0
  125. package/build-module/hooks/border.mjs +1 -45
  126. package/build-module/hooks/border.mjs.map +2 -2
  127. package/build-module/hooks/generate-fields-from-attributes.mjs.map +1 -1
  128. package/build-module/hooks/index.mjs +0 -2
  129. package/build-module/hooks/index.mjs.map +2 -2
  130. package/build-module/hooks/style.mjs +3 -2
  131. package/build-module/hooks/style.mjs.map +2 -2
  132. package/build-module/layouts/flex.mjs +3 -0
  133. package/build-module/layouts/flex.mjs.map +2 -2
  134. package/build-module/store/actions.mjs +12 -9
  135. package/build-module/store/actions.mjs.map +2 -2
  136. package/build-style/content-rtl.css +9 -20
  137. package/build-style/content.css +9 -20
  138. package/build-style/style-rtl.css +100 -221
  139. package/build-style/style.css +100 -221
  140. package/package.json +42 -41
  141. package/src/autocompleters/test/block.js +1 -0
  142. package/src/components/alignment-control/test/__snapshots__/{index.jsx.snap → index.jsdom.test.jsx.snap} +34 -16
  143. package/src/components/alignment-control/test/{index.jsx → index.jsdom.test.jsx} +2 -1
  144. package/src/components/background-image-control/index.jsx +32 -1
  145. package/src/components/background-image-control/style.scss +5 -3
  146. package/src/components/background-image-control/test/{index.js → index.jsdom.test.js} +1 -0
  147. package/src/components/block-alignment-control/test/__snapshots__/{index.jsx.snap → index.jsdom.test.jsx.snap} +68 -13
  148. package/src/components/block-alignment-control/test/{index.jsx → index.jsdom.test.jsx} +2 -1
  149. package/src/components/block-allowed-blocks/modal.jsx +3 -3
  150. package/src/components/block-bindings/test/{use-block-bindings-utils.js → use-block-bindings-utils.jsdom.test.js} +2 -1
  151. package/src/components/block-breadcrumb/test/__snapshots__/{index.jsx.snap → index.jsdom.test.jsx.snap} +2 -2
  152. package/src/components/block-breadcrumb/test/{index.jsx → index.jsdom.test.jsx} +1 -0
  153. package/src/components/block-compare/test/__snapshots__/{block-view.jsx.snap → block-view.jsdom.test.jsx.snap} +2 -2
  154. package/src/components/block-compare/test/{block-view.jsx → block-view.jsdom.test.jsx} +1 -0
  155. package/src/components/block-controls/test/{index.jsx → index.jsdom.test.jsx} +1 -0
  156. package/src/components/block-edit/edit.jsx +1 -1
  157. package/src/components/block-edit/test/{edit.jsx → edit.jsdom.test.jsx} +1 -0
  158. package/src/components/block-icon/content.scss +0 -6
  159. package/src/components/block-icon/style.scss +0 -6
  160. package/src/components/block-icon/test/__snapshots__/{index.jsx.snap → index.jsdom.test.jsx.snap} +6 -2
  161. package/src/components/block-inspector/index.jsx +3 -11
  162. package/src/components/block-list/content.scss +4 -1
  163. package/src/components/block-list/use-block-props/use-is-hovered.js +24 -5
  164. package/src/components/block-manager/style.scss +2 -0
  165. package/src/components/block-mover/test/mover-description.js +1 -0
  166. package/src/components/block-preview/index.jsx +1 -2
  167. package/src/components/block-preview/test/{index.jsx → index.jsdom.test.jsx} +10 -6
  168. package/src/components/block-selection-clearer/test/{index.jsx → index.jsdom.test.jsx} +24 -19
  169. package/src/components/block-settings-menu/test/{block-mode-toggle.jsx → block-mode-toggle.jsdom.test.jsx} +5 -1
  170. package/src/components/block-styles/test/utils.js +1 -0
  171. package/src/components/block-switcher/index.jsx +3 -3
  172. package/src/components/block-switcher/test/{index.jsx → index.jsdom.test.jsx} +8 -4
  173. package/src/components/block-switcher/test/use-transformed.patterns.js +1 -0
  174. package/src/components/block-switcher/test/utils.js +1 -0
  175. package/src/components/block-title/test/{index.jsx → index.jsdom.test.jsx} +7 -3
  176. package/src/components/block-toolbar/pattern-overrides-dropdown.jsx +3 -6
  177. package/src/components/block-toolbar/style.scss +1 -1
  178. package/src/components/block-toolbar/test/{block-toolbar-icon.jsx → block-toolbar-icon.jsdom.test.jsx} +25 -21
  179. package/src/components/block-variation-picker/content.scss +5 -3
  180. package/src/components/block-vertical-alignment-control/test/__snapshots__/{index.jsx.snap → index.jsdom.test.jsx.snap} +55 -11
  181. package/src/components/block-vertical-alignment-control/test/{index.jsx → index.jsdom.test.jsx} +2 -1
  182. package/src/components/block-visibility/test/{use-block-visibility.js → use-block-visibility.jsdom.test.js} +6 -5
  183. package/src/components/block-visibility/test/utils.js +2 -1
  184. package/src/components/border-radius-control/test/{index.jsx → index.jsdom.test.jsx} +8 -1
  185. package/src/components/border-radius-control/test/utils.js +1 -0
  186. package/src/components/button-block-appender/content.scss +1 -1
  187. package/src/components/child-layout-control/test/{index.jsx → index.jsdom.test.jsx} +18 -15
  188. package/src/components/color-palette/test/{control.jsx → control.jsdom.test.jsx} +15 -4
  189. package/src/components/colors/test/utils.js +1 -0
  190. package/src/components/colors/test/{with-colors.jsx → with-colors.jsdom.test.jsx} +4 -3
  191. package/src/components/colors-gradients/test/{control.jsx → control.jsdom.test.jsx} +8 -3
  192. package/src/components/contrast-checker/test/{index.jsx → index.jsdom.test.jsx} +2 -1
  193. package/src/components/default-block-appender/test/__snapshots__/{index.jsx.snap → index.jsdom.test.jsx.snap} +4 -4
  194. package/src/components/default-block-appender/test/{index.jsx → index.jsdom.test.jsx} +8 -7
  195. package/src/components/dimensions-tool/test/{index.jsx → index.jsdom.test.jsx} +27 -22
  196. package/src/components/dimensions-tool/test/utils.js +1 -0
  197. package/src/components/duotone-control/test/{index.jsx → index.jsdom.test.jsx} +6 -3
  198. package/src/components/font-sizes/test/fluid-utils.js +1 -0
  199. package/src/components/font-sizes/test/utils.js +1 -0
  200. package/src/components/global-styles/border-panel.jsx +17 -40
  201. package/src/components/global-styles/image-settings-panel.jsx +1 -1
  202. package/src/components/global-styles/inheritance/test/{index.jsx → index.jsdom.test.jsx} +5 -2
  203. package/src/components/global-styles/test/{background-panel.jsx → background-panel.jsdom.test.jsx} +10 -5
  204. package/src/components/global-styles/test/{border-panel.jsx → border-panel.jsdom.test.jsx} +113 -13
  205. package/src/components/global-styles/test/{color-panel.jsx → color-panel.jsdom.test.jsx} +5 -0
  206. package/src/components/global-styles/test/{dimensions-panel.jsx → dimensions-panel.jsdom.test.jsx} +14 -14
  207. package/src/components/global-styles/test/{filters-panel.jsx → filters-panel.jsdom.test.jsx} +7 -4
  208. package/src/components/global-styles/test/{inherited-value-context-core.js → inherited-value-context-core.jsdom.test.js} +10 -9
  209. package/src/components/global-styles/test/{inherited-value-context.jsx → inherited-value-context.jsdom.test.jsx} +18 -17
  210. package/src/components/global-styles/test/{state-control-badges.jsx → state-control-badges.jsdom.test.jsx} +3 -2
  211. package/src/components/global-styles/test/{typography-panel-core.jsx → typography-panel-core.jsdom.test.jsx} +5 -2
  212. package/src/components/global-styles/test/{typography-panel.jsx → typography-panel.jsdom.test.jsx} +17 -12
  213. package/src/components/global-styles/test/typography-utils.js +1 -0
  214. package/src/components/global-styles/test/utils.js +1 -0
  215. package/src/components/grid/style.scss +0 -10
  216. package/src/components/iframe/index.jsx +3 -3
  217. package/src/components/image-editor/test/index.js +1 -0
  218. package/src/components/image-size-control/test/{index.jsx → index.jsdom.test.jsx} +8 -3
  219. package/src/components/inner-blocks/test/__snapshots__/index.jsdom.test.jsx.snap +15 -0
  220. package/src/components/inner-blocks/test/{index.jsx → index.jsdom.test.jsx} +2 -0
  221. package/src/components/inner-content/test/{index.jsx → index.jsdom.test.jsx} +1 -0
  222. package/src/components/inserter/hooks/use-patterns-paging.js +1 -1
  223. package/src/components/inserter/media-tab/test/{hooks.js → hooks.jsdom.test.js} +12 -11
  224. package/src/components/inserter/media-tab/test/{media-panel.jsx → media-panel.jsdom.test.jsx} +15 -12
  225. package/src/components/inserter/style.scss +2 -2
  226. package/src/components/inserter/test/get-appender-label.js +12 -11
  227. package/src/components/inserter/test/search-items.js +1 -0
  228. package/src/components/inserter-draggable-blocks/index.jsx +1 -1
  229. package/src/components/inserter-list-item/style.scss +1 -0
  230. package/src/components/inspector-controls-tabs/content-tab.jsx +7 -14
  231. package/src/components/inspector-controls-tabs/styles-tab.jsx +1 -4
  232. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +1 -8
  233. package/src/components/inspector-popover-header/index.jsx +6 -7
  234. package/src/components/line-height-control/test/{index.jsx → index.jsdom.test.jsx} +3 -0
  235. package/src/components/link-control/index.jsx +3 -0
  236. package/src/components/link-control/search-input.jsx +1 -1
  237. package/src/components/link-control/style.scss +1 -1
  238. package/src/components/link-control/test/{index.jsx → index.jsdom.test.jsx} +52 -42
  239. package/src/components/link-control/test/is-url-like.js +1 -0
  240. package/src/components/link-control/test/{url-normalization.test.jsx → url-normalization.jsdom.test.jsx} +21 -20
  241. package/src/components/link-picker/test/{index.jsx → index.jsdom.test.jsx} +31 -30
  242. package/src/components/list-view/block-select-button.jsx +6 -1
  243. package/src/components/list-view/block.jsx +6 -4
  244. package/src/components/list-view/style.scss +55 -35
  245. package/src/components/list-view/test/use-list-view-drop-zone.js +1 -0
  246. package/src/components/list-view/test/utils.js +1 -0
  247. package/src/components/list-view/use-list-view-drop-zone.js +1 -1
  248. package/src/components/media-placeholder/test/get-computed-accept-attribute.js +1 -0
  249. package/src/components/media-placeholder/test/{index.jsx → index.jsdom.test.jsx} +8 -2
  250. package/src/components/media-replace-flow/index.jsx +6 -1
  251. package/src/components/media-replace-flow/test/{index.jsx → index.jsdom.test.jsx} +3 -0
  252. package/src/components/navigable-toolbar/index.jsx +4 -0
  253. package/src/components/navigable-toolbar/test/index.browser.test.js +50 -0
  254. package/src/components/panel-color-settings/test/{index.jsx → index.jsdom.test.jsx} +3 -0
  255. package/src/components/preset-input-control/test/{index.jsx → index.jsdom.test.jsx} +8 -2
  256. package/src/components/preset-input-control/test/utils.js +1 -0
  257. package/src/components/provider/test/{experimental-provider.jsx → experimental-provider.jsdom.test.jsx} +3 -2
  258. package/src/components/provider/test/{use-block-sync.jsx → use-block-sync.jsdom.test.jsx} +45 -44
  259. package/src/components/recursion-provider/test/{index.jsx → index.jsdom.test.jsx} +1 -0
  260. package/src/components/responsive-block-control/style.scss +1 -0
  261. package/src/components/responsive-block-control/test/{index.jsx → index.jsdom.test.jsx} +6 -3
  262. package/src/components/rich-text/event-listeners/enter.js +29 -14
  263. package/src/components/rich-text/event-listeners/index.js +0 -2
  264. package/src/components/rich-text/event-listeners/input-rules.js +7 -2
  265. package/src/components/spacing-sizes-control/test/{index.jsx → index.jsdom.test.jsx} +23 -20
  266. package/src/components/spacing-sizes-control/test/utils.js +1 -0
  267. package/src/components/url-input/test/{button.jsx → button.jsdom.test.jsx} +4 -1
  268. package/src/components/url-input/test/fixtures/validated-input-control-deprecation.js +2 -0
  269. package/src/components/url-input/test/{index.jsx → index.jsdom.test.jsx} +23 -13
  270. package/src/components/use-block-display-information/test/{index.jsx → index.jsdom.test.jsx} +14 -10
  271. package/src/components/use-block-drop-zone/index.js +2 -2
  272. package/src/components/use-block-drop-zone/test/index.js +1 -0
  273. package/src/components/use-on-block-drop/test/index.js +28 -31
  274. package/src/components/warning/test/__snapshots__/{index.jsx.snap → index.jsdom.test.jsx.snap} +2 -2
  275. package/src/components/warning/test/{index.jsx → index.jsdom.test.jsx} +1 -0
  276. package/src/components/writing-flow/index.jsx +5 -0
  277. package/src/components/writing-flow/style.scss +48 -0
  278. package/src/components/writing-flow/test/{index.js → index.jsdom.test.js} +1 -0
  279. package/src/components/writing-flow/use-arrow-nav.js +2 -2
  280. package/src/components/writing-flow/use-input.js +29 -2
  281. package/src/components/writing-flow/use-tab-nav.jsx +155 -70
  282. package/src/components/writing-flow/use-undo-automatic-change.js +40 -0
  283. package/src/elements/test/{index.js → index.jsdom.test.js} +1 -0
  284. package/src/hooks/border.jsx +0 -53
  285. package/src/hooks/generate-fields-from-attributes.js +1 -1
  286. package/src/hooks/index.js +0 -2
  287. package/src/hooks/style.jsx +3 -2
  288. package/src/hooks/test/{align.jsx → align.jsdom.test.jsx} +1 -0
  289. package/src/hooks/test/allowed-blocks.js +1 -0
  290. package/src/hooks/test/{anchor.js → anchor.jsdom.test.js} +1 -0
  291. package/src/hooks/test/{auto-inspector-controls.js → auto-inspector-controls.jsdom.test.js} +1 -0
  292. package/src/hooks/test/{background.jsx → background.jsdom.test.jsx} +5 -2
  293. package/src/hooks/test/{block-style-state.js → block-style-state.jsdom.test.js} +4 -3
  294. package/src/hooks/test/{cross-origin-isolation.js → cross-origin-isolation.jsdom.test.js} +18 -25
  295. package/src/hooks/test/{custom-class-name.jsx → custom-class-name.jsdom.test.jsx} +1 -0
  296. package/src/hooks/test/{dimensions.js → dimensions.jsdom.test.js} +1 -0
  297. package/src/hooks/test/{duotone.js → duotone.jsdom.test.js} +1 -0
  298. package/src/hooks/test/{font-size.js → font-size.jsdom.test.js} +1 -0
  299. package/src/hooks/test/gap.js +1 -0
  300. package/src/hooks/test/generate-fields-from-attributes.js +1 -0
  301. package/src/hooks/test/generated-class-name.js +1 -0
  302. package/src/hooks/test/{inherited-value-wiring.jsx → inherited-value-wiring.jsdom.test.jsx} +49 -51
  303. package/src/hooks/test/{layout-child.js → layout-child.jsdom.test.js} +1 -0
  304. package/src/hooks/test/{layout.js → layout.jsdom.test.js} +1 -0
  305. package/src/hooks/test/metadata.js +1 -0
  306. package/src/hooks/test/preset-round-trip.js +2 -0
  307. package/src/hooks/test/settings.jsx +1 -0
  308. package/src/hooks/test/state-utils.js +1 -0
  309. package/src/hooks/test/{style.jsx → style.jsdom.test.jsx} +1 -0
  310. package/src/hooks/test/{text-align.jsx → text-align.jsdom.test.jsx} +1 -0
  311. package/src/hooks/test/{use-typography-props.js → use-typography-props.jsdom.test.js} +1 -0
  312. package/src/hooks/test/{utils.js → utils.jsdom.test.js} +1 -0
  313. package/src/layouts/flex.jsx +7 -0
  314. package/src/layouts/test/{constrained.jsx → constrained.jsdom.test.jsx} +6 -3
  315. package/src/layouts/test/{flex.jsx → flex.jsdom.test.jsx} +52 -2
  316. package/src/layouts/test/{flow.js → flow.jsdom.test.js} +1 -0
  317. package/src/layouts/test/{grid.jsx → grid.jsdom.test.jsx} +5 -2
  318. package/src/layouts/test/utils.js +1 -0
  319. package/src/store/actions.js +14 -12
  320. package/src/store/test/{actions.js → actions.jsdom.test.js} +50 -49
  321. package/src/store/test/array.js +1 -0
  322. package/src/store/test/get-block-settings.js +1 -0
  323. package/src/store/test/performance.js +2 -1
  324. package/src/store/test/private-actions.js +1 -0
  325. package/src/store/test/private-selectors.js +13 -3
  326. package/src/store/test/reducer.js +37 -8
  327. package/src/store/test/{registry-selectors.js → registry-selectors.jsdom.test.js} +9 -0
  328. package/src/store/test/{selectors.jsx → selectors.jsdom.test.jsx} +13 -3
  329. package/src/style.scss +1 -1
  330. package/src/utils/test/block-bindings.js +1 -0
  331. package/src/utils/test/color-values.js +1 -0
  332. package/src/utils/test/{dom.jsx → dom.jsdom.test.jsx} +38 -43
  333. package/src/utils/test/format-font-style.js +1 -0
  334. package/src/utils/test/format-font-weight.js +1 -0
  335. package/src/utils/test/get-font-styles-and-weights.js +1 -0
  336. package/src/utils/test/math.js +1 -0
  337. package/src/utils/test/object.js +1 -0
  338. package/src/utils/test/pasting.js +1 -0
  339. package/src/utils/test/selection.js +1 -0
  340. package/src/utils/test/sorting.js +1 -0
  341. package/src/utils/test/transform-styles.js +2 -1
  342. package/build/components/rich-text/event-listeners/undo-automatic-change.cjs.map +0 -7
  343. package/build/hooks/block-fields/fields-dropdown-menu.cjs +0 -67
  344. package/build/hooks/block-fields/fields-dropdown-menu.cjs.map +0 -7
  345. package/build/hooks/block-fields/index.cjs +0 -238
  346. package/build/hooks/block-fields/index.cjs.map +0 -7
  347. package/build/hooks/block-fields/link/index.cjs +0 -174
  348. package/build/hooks/block-fields/link/index.cjs.map +0 -7
  349. package/build/hooks/block-fields/media/index.cjs +0 -262
  350. package/build/hooks/block-fields/media/index.cjs.map +0 -7
  351. package/build/hooks/block-fields/rich-text/index.cjs +0 -146
  352. package/build/hooks/block-fields/rich-text/index.cjs.map +0 -7
  353. package/build/hooks/block-fields/use-inspector-popover-placement.cjs +0 -41
  354. package/build/hooks/block-fields/use-inspector-popover-placement.cjs.map +0 -7
  355. package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs +0 -33
  356. package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs.map +0 -7
  357. package/build-module/hooks/block-fields/fields-dropdown-menu.mjs +0 -46
  358. package/build-module/hooks/block-fields/fields-dropdown-menu.mjs.map +0 -7
  359. package/build-module/hooks/block-fields/index.mjs +0 -210
  360. package/build-module/hooks/block-fields/index.mjs.map +0 -7
  361. package/build-module/hooks/block-fields/link/index.mjs +0 -141
  362. package/build-module/hooks/block-fields/link/index.mjs.map +0 -7
  363. package/build-module/hooks/block-fields/media/index.mjs +0 -241
  364. package/build-module/hooks/block-fields/media/index.mjs.map +0 -7
  365. package/build-module/hooks/block-fields/rich-text/index.mjs +0 -115
  366. package/build-module/hooks/block-fields/rich-text/index.mjs.map +0 -7
  367. package/build-module/hooks/block-fields/use-inspector-popover-placement.mjs +0 -16
  368. package/build-module/hooks/block-fields/use-inspector-popover-placement.mjs.map +0 -7
  369. package/src/components/color-palette/test/__snapshots__/control.jsx.snap +0 -143
  370. package/src/components/inner-blocks/test/__snapshots__/index.jsx.snap +0 -15
  371. package/src/components/rich-text/event-listeners/undo-automatic-change.js +0 -39
  372. package/src/hooks/block-fields/fields-dropdown-menu.jsx +0 -47
  373. package/src/hooks/block-fields/index.jsx +0 -302
  374. package/src/hooks/block-fields/link/index.jsx +0 -155
  375. package/src/hooks/block-fields/link/styles.scss +0 -18
  376. package/src/hooks/block-fields/media/index.jsx +0 -269
  377. package/src/hooks/block-fields/media/styles.scss +0 -77
  378. package/src/hooks/block-fields/rich-text/index.jsx +0 -123
  379. package/src/hooks/block-fields/rich-text/styles.scss +0 -24
  380. package/src/hooks/block-fields/styles.scss +0 -33
  381. package/src/hooks/block-fields/use-inspector-popover-placement.js +0 -16
  382. /package/src/components/block-icon/test/{index.jsx → index.jsdom.test.jsx} +0 -0
@@ -1,269 +0,0 @@
1
- import {
2
- Button,
3
- Icon as WCIcon,
4
- __experimentalGrid as Grid,
5
- } from '@wordpress/components';
6
- import { useSelect } from '@wordpress/data';
7
- import { focus } from '@wordpress/dom';
8
- import { useRef } from '@wordpress/element';
9
- import { __ } from '@wordpress/i18n';
10
- import {
11
- audio as audioIcon,
12
- image as imageIcon,
13
- media as mediaIcon,
14
- video as videoIcon,
15
- reset as resetIcon,
16
- } from '@wordpress/icons';
17
- import MediaReplaceFlow from '../../../components/media-replace-flow';
18
- import MediaUploadCheck from '../../../components/media-upload/check';
19
- import { useInspectorPopoverPlacement } from '../use-inspector-popover-placement';
20
- import { getMediaSelectKey } from '../../../store/private-keys';
21
- import { store as blockEditorStore } from '../../../store';
22
-
23
- /**
24
- * Focuses the toggle button.
25
- *
26
- * @param {Object} containerRef - ref object containing current element
27
- */
28
- const focusToggleButton = ( containerRef ) => {
29
- // Use requestAnimationFrame to ensure DOM updates are complete.
30
- window.requestAnimationFrame( () => {
31
- const [ toggleButton ] = focus.tabbable.find( containerRef?.current );
32
- if ( ! toggleButton ) {
33
- return;
34
- }
35
-
36
- toggleButton.focus();
37
- } );
38
- };
39
-
40
- function MediaThumbnail( { data, field, attachment, config } ) {
41
- const { allowedTypes = [], multiple = false } = config || {};
42
-
43
- if ( multiple ) {
44
- return 'todo multiple';
45
- }
46
-
47
- if ( attachment?.media_type === 'image' || attachment?.poster ) {
48
- return (
49
- <div className="block-editor-content-only-controls__media-thumbnail">
50
- <img
51
- alt=""
52
- width={ 20 }
53
- height={ 20 }
54
- src={
55
- attachment.media_type === 'image'
56
- ? attachment.source_url
57
- : attachment.poster
58
- }
59
- />
60
- </div>
61
- );
62
- }
63
-
64
- if ( allowedTypes.length === 1 ) {
65
- const value = field.getValue( { item: data } );
66
- const url = value?.url;
67
-
68
- if ( allowedTypes[ 0 ] === 'image' && url ) {
69
- return (
70
- <div className="block-editor-content-only-controls__media-thumbnail">
71
- <img alt="" width={ 20 } height={ 20 } src={ url } />
72
- </div>
73
- );
74
- }
75
-
76
- let icon;
77
- if ( allowedTypes[ 0 ] === 'image' ) {
78
- icon = imageIcon;
79
- } else if ( allowedTypes[ 0 ] === 'video' ) {
80
- icon = videoIcon;
81
- } else if ( allowedTypes[ 0 ] === 'audio' ) {
82
- icon = audioIcon;
83
- } else {
84
- icon = mediaIcon;
85
- }
86
-
87
- if ( icon ) {
88
- return <WCIcon icon={ icon } size={ 20 } />;
89
- }
90
- }
91
-
92
- return <WCIcon icon={ mediaIcon } size={ 20 } />;
93
- }
94
-
95
- export default function Media( { data, field, onChange, config = {} } ) {
96
- const { popoverProps } = useInspectorPopoverPlacement( {
97
- isControl: true,
98
- } );
99
- const value = field.getValue( { item: data } );
100
- const {
101
- allowedTypes = [],
102
- multiple = false,
103
- useFeaturedImage = false,
104
- } = config;
105
-
106
- const id = value?.id;
107
- const url = value?.url;
108
-
109
- const attachment = useSelect(
110
- ( select ) => {
111
- if ( ! id ) {
112
- return;
113
- }
114
-
115
- const settings = select( blockEditorStore ).getSettings();
116
- const getMedia = settings[ getMediaSelectKey ];
117
-
118
- if ( ! getMedia ) {
119
- return;
120
- }
121
-
122
- return getMedia( select, id );
123
- },
124
- [ id ]
125
- );
126
-
127
- // TODO - pluralize when multiple.
128
- let chooseItemLabel;
129
- if ( allowedTypes.length === 1 ) {
130
- const allowedType = allowedTypes[ 0 ];
131
- if ( allowedType === 'image' ) {
132
- chooseItemLabel = __( 'Image' );
133
- } else if ( allowedType === 'video' ) {
134
- chooseItemLabel = __( 'Video' );
135
- } else if ( allowedType === 'application' ) {
136
- chooseItemLabel = __( 'File' );
137
- } else {
138
- chooseItemLabel = __( 'Media' );
139
- }
140
- } else {
141
- chooseItemLabel = __( 'Media' );
142
- }
143
- const containerRef = useRef();
144
-
145
- return (
146
- <MediaUploadCheck>
147
- <div
148
- ref={ containerRef }
149
- className="block-editor-content-only-controls"
150
- >
151
- <MediaReplaceFlow
152
- className="block-editor-content-only-controls__media-replace-flow"
153
- allowedTypes={ allowedTypes }
154
- mediaId={ id }
155
- mediaURL={ url }
156
- multiple={ multiple }
157
- popoverProps={ popoverProps }
158
- onReset={ () => {
159
- onChange(
160
- field.setValue( {
161
- item: data,
162
- value: {},
163
- } )
164
- );
165
- } }
166
- { ...( useFeaturedImage && {
167
- useFeaturedImage: !! value?.featuredImage,
168
- onToggleFeaturedImage: () => {
169
- onChange(
170
- field.setValue( {
171
- item: data,
172
- value: {
173
- featuredImage: ! value?.featuredImage,
174
- },
175
- } )
176
- );
177
- },
178
- } ) }
179
- onSelect={ ( selectedMedia ) => {
180
- if ( selectedMedia.id && selectedMedia.url ) {
181
- const newValue = {
182
- ...selectedMedia,
183
- mediaType: selectedMedia.media_type,
184
- };
185
-
186
- // Turn off featured image when manually selecting media
187
- if ( useFeaturedImage ) {
188
- newValue.featuredImage = false;
189
- }
190
-
191
- onChange(
192
- field.setValue( {
193
- item: data,
194
- value: newValue,
195
- } )
196
- );
197
- }
198
- } }
199
- renderToggle={ ( buttonProps ) => (
200
- <Button
201
- __next40pxDefaultSize
202
- className="block-editor-content-only-controls__media"
203
- { ...buttonProps }
204
- >
205
- <Grid
206
- rowGap={ 0 }
207
- columnGap={ 8 }
208
- templateColumns="20px 1fr"
209
- className="block-editor-content-only-controls__media-row"
210
- >
211
- { url && (
212
- <>
213
- <MediaThumbnail
214
- attachment={ attachment }
215
- field={ field }
216
- data={ data }
217
- config={ config }
218
- />
219
- <span className="block-editor-content-only-controls__media-title">
220
- {
221
- // TODO - truncate long titles or url smartly (e.g. show filename).
222
- attachment?.title?.raw &&
223
- attachment?.title?.raw !== ''
224
- ? attachment?.title?.raw
225
- : url
226
- }
227
- </span>
228
- </>
229
- ) }
230
- { ! url && (
231
- <>
232
- <span
233
- className="block-editor-content-only-controls__media-placeholder"
234
- style={ {
235
- width: '20px',
236
- height: '20px',
237
- } }
238
- />
239
- <span className="block-editor-content-only-controls__media-title">
240
- { chooseItemLabel }
241
- </span>
242
- </>
243
- ) }
244
- </Grid>
245
- </Button>
246
- ) }
247
- />
248
- { url && (
249
- <Button
250
- label={ __( 'Reset' ) }
251
- className="block-editor-content-only-controls__media-reset"
252
- size="small"
253
- icon={ resetIcon }
254
- onClick={ () => {
255
- onChange(
256
- field.setValue( {
257
- item: data,
258
- value: {},
259
- } )
260
- );
261
-
262
- focusToggleButton( containerRef );
263
- } }
264
- />
265
- ) }
266
- </div>
267
- </MediaUploadCheck>
268
- );
269
- }
@@ -1,77 +0,0 @@
1
- @use "@wordpress/base-styles/colors" as *;
2
- @use "@wordpress/base-styles/variables" as *;
3
-
4
- .block-editor-content-only-controls__media {
5
- width: 100%;
6
- border-color: $gray-400;
7
- padding-right: $grid-unit-40;
8
- }
9
-
10
- .block-editor-content-only-controls__media-replace-flow {
11
- // Required, otherwise the width collapses.
12
- display: block;
13
- }
14
-
15
- .block-editor-content-only-controls__media-row {
16
- align-items: center;
17
- }
18
-
19
- .block-editor-content-only-controls__media-placeholder {
20
- width: 24px;
21
- height: 24px;
22
- border-radius: $radius-small;
23
- box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);
24
- display: inline-block;
25
- padding: 0;
26
- background:
27
- $white
28
- linear-gradient(-45deg, transparent 48%, $gray-300 48%, $gray-300 52%, transparent 52%);
29
- }
30
-
31
- .block-editor-content-only-controls__media-title {
32
- width: 100%;
33
- white-space: nowrap;
34
- text-overflow: ellipsis;
35
- overflow: hidden;
36
- }
37
-
38
- .block-editor-content-only-controls__media-thumbnail {
39
- width: 20px;
40
- height: 20px;
41
- border-radius: $radius-small;
42
- align-self: center;
43
- overflow: hidden;
44
-
45
- img {
46
- width: 100% !important;
47
- height: 100% !important;
48
- object-fit: cover;
49
- }
50
- }
51
-
52
- .block-editor-content-only-controls {
53
- position: relative;
54
- }
55
-
56
- .block-editor-content-only-controls__media-reset {
57
- position: absolute;
58
- right: 0;
59
- top: $grid-unit;
60
- margin: auto $grid-unit auto;
61
- opacity: 0;
62
- border-radius: $radius-small;
63
- @media not ( prefers-reduced-motion ) {
64
- transition: opacity 0.1s ease-in-out;
65
- }
66
-
67
- .block-editor-content-only-controls:hover &,
68
- &:focus,
69
- &:hover {
70
- opacity: 1;
71
- }
72
-
73
- @media (hover: none) {
74
- // Show reset button on devices that do not support hover.
75
- opacity: 1;
76
- }
77
- }
@@ -1,123 +0,0 @@
1
- import { BaseControl, useBaseControlProps } from '@wordpress/components';
2
- import { useMergeRefs } from '@wordpress/compose';
3
- import { useRegistry } from '@wordpress/data';
4
- import { useMemo, useRef, useState } from '@wordpress/element';
5
- import { privateApis as richTextPrivateApis } from '@wordpress/rich-text';
6
- import { getAllowedFormats } from '../../../components/rich-text/utils';
7
- import { useEventListeners } from '../../../components/rich-text/event-listeners';
8
- import FormatEdit from '../../../components/rich-text/format-edit';
9
- import { unlock } from '../../../lock-unlock';
10
-
11
- const { useRichText, KeyboardShortcutContext, InputEventContext } =
12
- unlock( richTextPrivateApis );
13
-
14
- export default function RichTextControl( {
15
- data,
16
- field,
17
- hideLabelFromVision,
18
- onChange,
19
- config = {},
20
- } ) {
21
- const registry = useRegistry();
22
- const attrValue = field.getValue( { item: data } );
23
- const fieldConfig = field.config || {};
24
- const { clientId } = config;
25
- const [ selection, setSelection ] = useState( {
26
- start: undefined,
27
- end: undefined,
28
- } );
29
- const [ isSelected, setIsSelected ] = useState( false );
30
- const anchorRef = useRef();
31
- const inputEvents = useRef( new Set() );
32
- const keyboardShortcuts = useRef( new Set() );
33
-
34
- const adjustedAllowedFormats = getAllowedFormats( {
35
- allowedFormats: fieldConfig?.allowedFormats,
36
- disableFormats: fieldConfig?.disableFormats,
37
- } );
38
-
39
- function onFocus() {
40
- anchorRef.current?.focus();
41
- }
42
-
43
- const {
44
- value,
45
- getValue,
46
- onChange: onRichTextChange,
47
- ref: richTextRef,
48
- formatTypes,
49
- } = useRichText( {
50
- value: attrValue,
51
- onChange( html ) {
52
- onChange( field.setValue( { item: data, value: html } ) );
53
- },
54
- selectionStart: selection.start,
55
- selectionEnd: selection.end,
56
- onSelectionChange: ( start, end ) => setSelection( { start, end } ),
57
- __unstableIsSelected: isSelected,
58
- preserveWhiteSpace: !! fieldConfig?.preserveWhiteSpace,
59
- placeholder: fieldConfig?.placeholder,
60
- __unstableDisableFormats: fieldConfig?.disableFormats,
61
- allowedFormats: adjustedAllowedFormats,
62
- withoutInteractiveFormatting: fieldConfig?.withoutInteractiveFormatting,
63
- __unstableFormatTypeHandlerContext: useMemo(
64
- () => ( { richTextIdentifier: field.id, blockClientId: clientId } ),
65
- [ field.id, clientId ]
66
- ),
67
- } );
68
-
69
- const { baseControlProps, controlProps } = useBaseControlProps( {
70
- hideLabelFromVision: hideLabelFromVision ?? field.hideLabelFromVision,
71
- label: field.label,
72
- } );
73
-
74
- return (
75
- <>
76
- { isSelected && (
77
- <KeyboardShortcutContext.Provider value={ keyboardShortcuts }>
78
- <InputEventContext.Provider value={ inputEvents }>
79
- <div>
80
- <FormatEdit
81
- value={ value }
82
- onChange={ onRichTextChange }
83
- onFocus={ onFocus }
84
- formatTypes={ formatTypes }
85
- forwardedRef={ anchorRef }
86
- isVisible={ false }
87
- />
88
- </div>
89
- </InputEventContext.Provider>
90
- </KeyboardShortcutContext.Provider>
91
- ) }
92
- <BaseControl { ...baseControlProps }>
93
- <div
94
- className="block-editor-content-only-controls__rich-text"
95
- role="textbox"
96
- aria-multiline={ ! fieldConfig?.disableLineBreaks }
97
- ref={ useMergeRefs( [
98
- richTextRef,
99
- useEventListeners( {
100
- registry,
101
- getValue,
102
- onChange: onRichTextChange,
103
- formatTypes,
104
- selectionChange: setSelection,
105
- isSelected,
106
- disableFormats: fieldConfig?.disableFormats,
107
- value,
108
- tagName: 'div',
109
- disableLineBreaks: fieldConfig?.disableLineBreaks,
110
- keyboardShortcuts,
111
- inputEvents,
112
- } ),
113
- anchorRef,
114
- ] ) }
115
- onFocus={ () => setIsSelected( true ) }
116
- onBlur={ () => setIsSelected( false ) }
117
- contentEditable
118
- { ...controlProps }
119
- />
120
- </BaseControl>
121
- </>
122
- );
123
- }
@@ -1,24 +0,0 @@
1
- @use "@wordpress/base-styles/colors" as *;
2
- @use "@wordpress/base-styles/mixins" as *;
3
- @use "@wordpress/base-styles/variables" as *;
4
-
5
- .block-editor-content-only-controls__rich-text {
6
- width: 100%;
7
- // Override input style margin in WP forms.css.
8
- margin: 0;
9
- background: $white;
10
- color: $gray-900;
11
- @include input-control;
12
- border-color: $gray-600;
13
-
14
- &::placeholder {
15
- color: color-mix(in srgb, $gray-900, transparent 38%);
16
- }
17
-
18
- min-height: $grid-unit-50;
19
-
20
- // Subtract 1px to account for the border, which isn't included on the element
21
- // on newer components like InputControl, SelectControl, etc.
22
- // These values should be shared with the `controlPaddingX` in ./utils/config-values.js
23
- padding: $grid-unit-15;
24
- }
@@ -1,33 +0,0 @@
1
- @use "@wordpress/base-styles/colors" as *;
2
- @use "@wordpress/base-styles/variables" as *;
3
- @use "./link/styles.scss" as *;
4
- @use "./media/styles.scss" as *;
5
- @use "./rich-text/styles.scss" as *;
6
-
7
- .block-editor-block-fields__container {
8
- padding: 0 $grid-unit-20 $grid-unit-20;
9
-
10
- &:first-of-type {
11
- padding-block-start: $grid-unit-10;
12
- /*
13
- * Add border for the entire content controls and remove the similar border
14
- * for tools panel.
15
- */
16
- border-block-start: $border-width solid $gray-200;
17
- }
18
- }
19
-
20
- .block-editor-block-fields__header {
21
- padding: $grid-unit-10 0;
22
- margin-bottom: $grid-unit-05;
23
- }
24
-
25
- .block-editor-block-fields__header-icon {
26
- flex: 0 0 $icon-size;
27
- }
28
-
29
- .block-editor-block-fields__header-title {
30
- flex: 1;
31
- /* Override the default margin on a h2 element. */
32
- margin: 0 !important;
33
- }
@@ -1,16 +0,0 @@
1
- import { useViewportMatch } from '@wordpress/compose';
2
-
3
- export function useInspectorPopoverPlacement(
4
- { isControl } = { isControl: false }
5
- ) {
6
- const isMobile = useViewportMatch( 'medium', '<' );
7
- return ! isMobile
8
- ? {
9
- popoverProps: {
10
- placement: 'left-start',
11
- // For non-mobile, inner sidebar width (248px) - button width (24px) - border (1px) + padding (16px) + spacing (20px)
12
- offset: isControl ? 35 : 259,
13
- },
14
- }
15
- : {};
16
- }