@wordpress/block-editor 15.11.0 → 15.12.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 (393) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-breadcrumb/index.cjs +10 -2
  3. package/build/components/block-breadcrumb/index.cjs.map +2 -2
  4. package/build/components/block-controls/index.cjs +1 -1
  5. package/build/components/block-controls/index.cjs.map +2 -2
  6. package/build/components/block-inspector/index.cjs +8 -21
  7. package/build/components/block-inspector/index.cjs.map +3 -3
  8. package/build/components/block-list/block.cjs +6 -3
  9. package/build/components/block-list/block.cjs.map +3 -3
  10. package/build/components/block-list/index.cjs +26 -18
  11. package/build/components/block-list/index.cjs.map +2 -2
  12. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.cjs +39 -19
  13. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.cjs.map +2 -2
  14. package/build/components/block-list/use-in-between-inserter.cjs +4 -4
  15. package/build/components/block-list/use-in-between-inserter.cjs.map +2 -2
  16. package/build/components/block-settings-menu/block-settings-dropdown.cjs +10 -7
  17. package/build/components/block-settings-menu/block-settings-dropdown.cjs.map +2 -2
  18. package/build/components/block-settings-menu-controls/edit-section-menu-item.cjs +1 -1
  19. package/build/components/block-settings-menu-controls/edit-section-menu-item.cjs.map +2 -2
  20. package/build/components/block-settings-menu-controls/index.cjs +11 -16
  21. package/build/components/block-settings-menu-controls/index.cjs.map +2 -2
  22. package/build/components/block-toolbar/block-toolbar-icon.cjs +6 -4
  23. package/build/components/block-toolbar/block-toolbar-icon.cjs.map +2 -2
  24. package/build/components/block-toolbar/index.cjs +2 -2
  25. package/build/components/block-toolbar/index.cjs.map +2 -2
  26. package/build/components/block-tools/index.cjs +2 -26
  27. package/build/components/block-tools/index.cjs.map +2 -2
  28. package/build/components/block-variation-transforms/index.cjs +1 -2
  29. package/build/components/block-variation-transforms/index.cjs.map +2 -2
  30. package/build/components/block-visibility/index.cjs +7 -9
  31. package/build/components/block-visibility/index.cjs.map +3 -3
  32. package/build/components/block-visibility/modal.cjs +18 -103
  33. package/build/components/block-visibility/modal.cjs.map +2 -2
  34. package/build/components/block-visibility/use-block-visibility.cjs +1 -1
  35. package/build/components/block-visibility/use-block-visibility.cjs.map +2 -2
  36. package/build/components/block-visibility/utils.cjs +5 -1
  37. package/build/components/block-visibility/utils.cjs.map +2 -2
  38. package/build/components/block-visibility/viewport-menu-item.cjs +11 -4
  39. package/build/components/block-visibility/viewport-menu-item.cjs.map +2 -2
  40. package/build/components/block-visibility/viewport-toolbar.cjs +4 -6
  41. package/build/components/block-visibility/viewport-toolbar.cjs.map +2 -2
  42. package/build/components/block-visibility/viewport-visibility-info.cjs +121 -0
  43. package/build/components/block-visibility/viewport-visibility-info.cjs.map +7 -0
  44. package/build/components/color-palette/with-color-context.cjs +1 -1
  45. package/build/components/color-palette/with-color-context.cjs.map +2 -2
  46. package/build/components/color-style-selector/index.cjs +1 -1
  47. package/build/components/color-style-selector/index.cjs.map +2 -2
  48. package/build/components/colors/with-colors.cjs +5 -3
  49. package/build/components/colors/with-colors.cjs.map +2 -2
  50. package/build/components/colors-gradients/dropdown.cjs +1 -1
  51. package/build/components/colors-gradients/dropdown.cjs.map +2 -2
  52. package/build/components/editable-text/index.cjs +5 -1
  53. package/build/components/editable-text/index.cjs.map +2 -2
  54. package/build/components/font-sizes/with-font-sizes.cjs +5 -3
  55. package/build/components/font-sizes/with-font-sizes.cjs.map +2 -2
  56. package/build/components/global-styles/advanced-panel.cjs +26 -13
  57. package/build/components/global-styles/advanced-panel.cjs.map +2 -2
  58. package/build/components/global-styles/filters-panel.cjs +1 -1
  59. package/build/components/global-styles/filters-panel.cjs.map +2 -2
  60. package/build/components/global-styles/shadow-panel-components.cjs +1 -1
  61. package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
  62. package/build/components/gradients/with-gradient.cjs +1 -1
  63. package/build/components/gradients/with-gradient.cjs.map +2 -2
  64. package/build/components/inserter/index.cjs +1 -0
  65. package/build/components/inserter/index.cjs.map +2 -2
  66. package/build/components/inspector-controls/fill.cjs +12 -2
  67. package/build/components/inspector-controls/fill.cjs.map +2 -2
  68. package/build/components/inspector-controls/index.cjs +1 -1
  69. package/build/components/inspector-controls/index.cjs.map +2 -2
  70. package/build/components/inspector-controls-tabs/index.cjs +3 -3
  71. package/build/components/inspector-controls-tabs/index.cjs.map +3 -3
  72. package/build/components/inspector-controls-tabs/styles-tab.cjs +1 -1
  73. package/build/components/inspector-controls-tabs/styles-tab.cjs.map +2 -2
  74. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs +2 -2
  75. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs.map +2 -2
  76. package/build/components/list-view/block-select-button.cjs +8 -16
  77. package/build/components/list-view/block-select-button.cjs.map +2 -2
  78. package/build/components/list-view/block.cjs +29 -34
  79. package/build/components/list-view/block.cjs.map +3 -3
  80. package/build/components/list-view/utils.cjs +3 -1
  81. package/build/components/list-view/utils.cjs.map +2 -2
  82. package/build/components/media-replace-flow/index.cjs +2 -2
  83. package/build/components/media-replace-flow/index.cjs.map +2 -2
  84. package/build/components/provider/index.cjs +7 -8
  85. package/build/components/provider/index.cjs.map +2 -2
  86. package/build/components/provider/with-registry-provider.cjs +1 -1
  87. package/build/components/provider/with-registry-provider.cjs.map +2 -2
  88. package/build/components/rich-text/index.cjs +1 -1
  89. package/build/components/rich-text/index.cjs.map +2 -2
  90. package/build/components/use-block-commands/index.cjs +2 -34
  91. package/build/components/use-block-commands/index.cjs.map +2 -2
  92. package/build/components/use-block-display-information/index.cjs +1 -1
  93. package/build/components/use-block-display-information/index.cjs.map +2 -2
  94. package/build/components/writing-flow/index.cjs +2 -0
  95. package/build/components/writing-flow/index.cjs.map +2 -2
  96. package/build/components/writing-flow/use-arrow-nav.cjs +3 -0
  97. package/build/components/writing-flow/use-arrow-nav.cjs.map +2 -2
  98. package/build/components/writing-flow/use-drag-selection.cjs +2 -1
  99. package/build/components/writing-flow/use-drag-selection.cjs.map +2 -2
  100. package/build/components/writing-flow/use-preview-mode-nav.cjs +92 -0
  101. package/build/components/writing-flow/use-preview-mode-nav.cjs.map +7 -0
  102. package/build/hooks/block-renaming.cjs +1 -1
  103. package/build/hooks/block-renaming.cjs.map +2 -2
  104. package/build/hooks/cross-origin-isolation.cjs +1 -1
  105. package/build/hooks/cross-origin-isolation.cjs.map +2 -2
  106. package/build/hooks/custom-css.cjs +141 -0
  107. package/build/hooks/custom-css.cjs.map +7 -0
  108. package/build/hooks/fit-text.cjs +14 -7
  109. package/build/hooks/fit-text.cjs.map +2 -2
  110. package/build/hooks/grid-visualizer.cjs +1 -1
  111. package/build/hooks/grid-visualizer.cjs.map +2 -2
  112. package/build/hooks/index.cjs +4 -2
  113. package/build/hooks/index.cjs.map +3 -3
  114. package/build/hooks/layout.cjs +10 -4
  115. package/build/hooks/layout.cjs.map +2 -2
  116. package/build/hooks/list-view.cjs +9 -5
  117. package/build/hooks/list-view.cjs.map +3 -3
  118. package/build/hooks/utils.cjs +2 -2
  119. package/build/hooks/utils.cjs.map +2 -2
  120. package/build/layouts/grid.cjs +12 -1
  121. package/build/layouts/grid.cjs.map +2 -2
  122. package/build/store/actions.cjs +5 -0
  123. package/build/store/actions.cjs.map +2 -2
  124. package/build/store/defaults.cjs +3 -0
  125. package/build/store/defaults.cjs.map +2 -2
  126. package/build/store/private-selectors.cjs +46 -38
  127. package/build/store/private-selectors.cjs.map +2 -2
  128. package/build/store/reducer.cjs +5 -7
  129. package/build/store/reducer.cjs.map +2 -2
  130. package/build/store/selectors.cjs +15 -0
  131. package/build/store/selectors.cjs.map +2 -2
  132. package/build/utils/fit-text-utils.cjs +18 -4
  133. package/build/utils/fit-text-utils.cjs.map +2 -2
  134. package/build-module/components/block-breadcrumb/index.mjs +10 -2
  135. package/build-module/components/block-breadcrumb/index.mjs.map +2 -2
  136. package/build-module/components/block-controls/index.mjs +1 -1
  137. package/build-module/components/block-controls/index.mjs.map +2 -2
  138. package/build-module/components/block-inspector/index.mjs +8 -21
  139. package/build-module/components/block-inspector/index.mjs.map +2 -2
  140. package/build-module/components/block-list/block.mjs +6 -3
  141. package/build-module/components/block-list/block.mjs.map +3 -3
  142. package/build-module/components/block-list/index.mjs +26 -18
  143. package/build-module/components/block-list/index.mjs.map +2 -2
  144. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.mjs +39 -19
  145. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.mjs.map +2 -2
  146. package/build-module/components/block-list/use-in-between-inserter.mjs +4 -4
  147. package/build-module/components/block-list/use-in-between-inserter.mjs.map +2 -2
  148. package/build-module/components/block-settings-menu/block-settings-dropdown.mjs +10 -7
  149. package/build-module/components/block-settings-menu/block-settings-dropdown.mjs.map +2 -2
  150. package/build-module/components/block-settings-menu-controls/edit-section-menu-item.mjs +1 -1
  151. package/build-module/components/block-settings-menu-controls/edit-section-menu-item.mjs.map +2 -2
  152. package/build-module/components/block-settings-menu-controls/index.mjs +12 -17
  153. package/build-module/components/block-settings-menu-controls/index.mjs.map +2 -2
  154. package/build-module/components/block-toolbar/block-toolbar-icon.mjs +6 -4
  155. package/build-module/components/block-toolbar/block-toolbar-icon.mjs.map +2 -2
  156. package/build-module/components/block-toolbar/index.mjs +3 -3
  157. package/build-module/components/block-toolbar/index.mjs.map +2 -2
  158. package/build-module/components/block-tools/index.mjs +2 -26
  159. package/build-module/components/block-tools/index.mjs.map +2 -2
  160. package/build-module/components/block-variation-transforms/index.mjs +1 -2
  161. package/build-module/components/block-variation-transforms/index.mjs.map +2 -2
  162. package/build-module/components/block-visibility/index.mjs +6 -9
  163. package/build-module/components/block-visibility/index.mjs.map +2 -2
  164. package/build-module/components/block-visibility/modal.mjs +18 -103
  165. package/build-module/components/block-visibility/modal.mjs.map +2 -2
  166. package/build-module/components/block-visibility/use-block-visibility.mjs +1 -1
  167. package/build-module/components/block-visibility/use-block-visibility.mjs.map +2 -2
  168. package/build-module/components/block-visibility/utils.mjs +5 -1
  169. package/build-module/components/block-visibility/utils.mjs.map +2 -2
  170. package/build-module/components/block-visibility/viewport-menu-item.mjs +11 -4
  171. package/build-module/components/block-visibility/viewport-menu-item.mjs.map +2 -2
  172. package/build-module/components/block-visibility/viewport-toolbar.mjs +4 -6
  173. package/build-module/components/block-visibility/viewport-toolbar.mjs.map +2 -2
  174. package/build-module/components/block-visibility/viewport-visibility-info.mjs +95 -0
  175. package/build-module/components/block-visibility/viewport-visibility-info.mjs.map +7 -0
  176. package/build-module/components/color-palette/with-color-context.mjs +1 -1
  177. package/build-module/components/color-palette/with-color-context.mjs.map +2 -2
  178. package/build-module/components/color-style-selector/index.mjs +1 -1
  179. package/build-module/components/color-style-selector/index.mjs.map +2 -2
  180. package/build-module/components/colors/with-colors.mjs +5 -3
  181. package/build-module/components/colors/with-colors.mjs.map +2 -2
  182. package/build-module/components/colors-gradients/dropdown.mjs +1 -1
  183. package/build-module/components/colors-gradients/dropdown.mjs.map +2 -2
  184. package/build-module/components/editable-text/index.mjs +5 -1
  185. package/build-module/components/editable-text/index.mjs.map +2 -2
  186. package/build-module/components/font-sizes/with-font-sizes.mjs +5 -3
  187. package/build-module/components/font-sizes/with-font-sizes.mjs.map +2 -2
  188. package/build-module/components/global-styles/advanced-panel.mjs +22 -13
  189. package/build-module/components/global-styles/advanced-panel.mjs.map +2 -2
  190. package/build-module/components/global-styles/filters-panel.mjs +1 -1
  191. package/build-module/components/global-styles/filters-panel.mjs.map +2 -2
  192. package/build-module/components/global-styles/shadow-panel-components.mjs +1 -1
  193. package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
  194. package/build-module/components/gradients/with-gradient.mjs +1 -1
  195. package/build-module/components/gradients/with-gradient.mjs.map +2 -2
  196. package/build-module/components/inserter/index.mjs +1 -0
  197. package/build-module/components/inserter/index.mjs.map +2 -2
  198. package/build-module/components/inspector-controls/fill.mjs +12 -2
  199. package/build-module/components/inspector-controls/fill.mjs.map +2 -2
  200. package/build-module/components/inspector-controls/index.mjs +1 -1
  201. package/build-module/components/inspector-controls/index.mjs.map +2 -2
  202. package/build-module/components/inspector-controls-tabs/index.mjs +3 -3
  203. package/build-module/components/inspector-controls-tabs/index.mjs.map +2 -2
  204. package/build-module/components/inspector-controls-tabs/styles-tab.mjs +1 -1
  205. package/build-module/components/inspector-controls-tabs/styles-tab.mjs.map +2 -2
  206. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs +2 -2
  207. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs.map +2 -2
  208. package/build-module/components/list-view/block-select-button.mjs +8 -16
  209. package/build-module/components/list-view/block-select-button.mjs.map +2 -2
  210. package/build-module/components/list-view/block.mjs +31 -36
  211. package/build-module/components/list-view/block.mjs.map +2 -2
  212. package/build-module/components/list-view/utils.mjs +3 -1
  213. package/build-module/components/list-view/utils.mjs.map +2 -2
  214. package/build-module/components/media-replace-flow/index.mjs +2 -2
  215. package/build-module/components/media-replace-flow/index.mjs.map +2 -2
  216. package/build-module/components/provider/index.mjs +7 -8
  217. package/build-module/components/provider/index.mjs.map +2 -2
  218. package/build-module/components/provider/with-registry-provider.mjs +1 -1
  219. package/build-module/components/provider/with-registry-provider.mjs.map +2 -2
  220. package/build-module/components/rich-text/index.mjs +1 -1
  221. package/build-module/components/rich-text/index.mjs.map +2 -2
  222. package/build-module/components/use-block-commands/index.mjs +3 -37
  223. package/build-module/components/use-block-commands/index.mjs.map +2 -2
  224. package/build-module/components/use-block-display-information/index.mjs +1 -1
  225. package/build-module/components/use-block-display-information/index.mjs.map +2 -2
  226. package/build-module/components/writing-flow/index.mjs +2 -0
  227. package/build-module/components/writing-flow/index.mjs.map +2 -2
  228. package/build-module/components/writing-flow/use-arrow-nav.mjs +3 -0
  229. package/build-module/components/writing-flow/use-arrow-nav.mjs.map +2 -2
  230. package/build-module/components/writing-flow/use-drag-selection.mjs +2 -1
  231. package/build-module/components/writing-flow/use-drag-selection.mjs.map +2 -2
  232. package/build-module/components/writing-flow/use-preview-mode-nav.mjs +67 -0
  233. package/build-module/components/writing-flow/use-preview-mode-nav.mjs.map +7 -0
  234. package/build-module/hooks/block-renaming.mjs +1 -1
  235. package/build-module/hooks/block-renaming.mjs.map +2 -2
  236. package/build-module/hooks/cross-origin-isolation.mjs +1 -1
  237. package/build-module/hooks/cross-origin-isolation.mjs.map +2 -2
  238. package/build-module/hooks/custom-css.mjs +112 -0
  239. package/build-module/hooks/custom-css.mjs.map +7 -0
  240. package/build-module/hooks/fit-text.mjs +14 -7
  241. package/build-module/hooks/fit-text.mjs.map +2 -2
  242. package/build-module/hooks/grid-visualizer.mjs +1 -1
  243. package/build-module/hooks/grid-visualizer.mjs.map +2 -2
  244. package/build-module/hooks/index.mjs +4 -2
  245. package/build-module/hooks/index.mjs.map +2 -2
  246. package/build-module/hooks/layout.mjs +10 -4
  247. package/build-module/hooks/layout.mjs.map +2 -2
  248. package/build-module/hooks/list-view.mjs +10 -6
  249. package/build-module/hooks/list-view.mjs.map +2 -2
  250. package/build-module/hooks/utils.mjs +2 -2
  251. package/build-module/hooks/utils.mjs.map +2 -2
  252. package/build-module/layouts/grid.mjs +12 -1
  253. package/build-module/layouts/grid.mjs.map +2 -2
  254. package/build-module/store/actions.mjs +5 -0
  255. package/build-module/store/actions.mjs.map +2 -2
  256. package/build-module/store/defaults.mjs +3 -0
  257. package/build-module/store/defaults.mjs.map +2 -2
  258. package/build-module/store/private-selectors.mjs +43 -41
  259. package/build-module/store/private-selectors.mjs.map +2 -2
  260. package/build-module/store/reducer.mjs +5 -7
  261. package/build-module/store/reducer.mjs.map +2 -2
  262. package/build-module/store/selectors.mjs +15 -0
  263. package/build-module/store/selectors.mjs.map +2 -2
  264. package/build-module/utils/fit-text-utils.mjs +18 -4
  265. package/build-module/utils/fit-text-utils.mjs.map +2 -2
  266. package/build-style/content-rtl.css +10 -0
  267. package/build-style/content.css +10 -0
  268. package/build-style/style-rtl.css +3 -0
  269. package/build-style/style.css +3 -0
  270. package/package.json +39 -39
  271. package/src/components/block-breadcrumb/index.js +6 -1
  272. package/src/components/block-controls/index.js +1 -1
  273. package/src/components/block-controls/test/index.js +1 -0
  274. package/src/components/block-edit/test/edit.js +10 -0
  275. package/src/components/block-inspector/index.js +15 -36
  276. package/src/components/block-list/block.js +5 -2
  277. package/src/components/block-list/content.scss +11 -0
  278. package/src/components/block-list/index.js +25 -17
  279. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +51 -36
  280. package/src/components/block-list/use-in-between-inserter.js +8 -6
  281. package/src/components/block-preview/test/index.js +11 -7
  282. package/src/components/block-settings-menu/block-settings-dropdown.js +11 -6
  283. package/src/components/block-settings-menu-controls/edit-section-menu-item.js +1 -7
  284. package/src/components/block-settings-menu-controls/index.js +16 -18
  285. package/src/components/block-switcher/test/index.js +2 -0
  286. package/src/components/block-switcher/test/use-transformed.patterns.js +2 -0
  287. package/src/components/block-switcher/test/utils.js +2 -0
  288. package/src/components/block-toolbar/block-toolbar-icon.js +6 -10
  289. package/src/components/block-toolbar/index.js +3 -9
  290. package/src/components/block-tools/index.js +2 -29
  291. package/src/components/block-variation-transforms/index.js +1 -4
  292. package/src/components/block-visibility/index.js +3 -19
  293. package/src/components/block-visibility/modal.js +16 -14
  294. package/src/components/block-visibility/test/use-block-visibility.js +27 -25
  295. package/src/components/block-visibility/test/utils.js +24 -8
  296. package/src/components/block-visibility/use-block-visibility.js +1 -4
  297. package/src/components/block-visibility/utils.js +9 -1
  298. package/src/components/block-visibility/viewport-menu-item.js +11 -5
  299. package/src/components/block-visibility/viewport-toolbar.js +5 -6
  300. package/src/components/block-visibility/viewport-visibility-info.js +131 -0
  301. package/src/components/color-palette/with-color-context.js +1 -1
  302. package/src/components/color-style-selector/index.js +2 -3
  303. package/src/components/colors/with-colors.js +23 -20
  304. package/src/components/colors-gradients/dropdown.js +2 -3
  305. package/src/components/editable-text/index.js +5 -1
  306. package/src/components/font-sizes/with-font-sizes.js +13 -10
  307. package/src/components/global-styles/advanced-panel.js +35 -16
  308. package/src/components/global-styles/filters-panel.js +2 -3
  309. package/src/components/global-styles/shadow-panel-components.js +1 -1
  310. package/src/components/global-styles/style.scss +9 -5
  311. package/src/components/gradients/with-gradient.js +7 -4
  312. package/src/components/inner-blocks/test/index.js +2 -0
  313. package/src/components/inserter/index.js +1 -0
  314. package/src/components/inserter/stories/index.story.jsx +31 -24
  315. package/src/components/inspector-controls/fill.js +25 -5
  316. package/src/components/inspector-controls/index.js +1 -1
  317. package/src/components/inspector-controls-tabs/index.js +6 -2
  318. package/src/components/inspector-controls-tabs/styles-tab.js +7 -8
  319. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +3 -4
  320. package/src/components/link-control/test/index.js +6 -1
  321. package/src/components/list-view/block-select-button.js +16 -25
  322. package/src/components/list-view/block.js +38 -43
  323. package/src/components/list-view/utils.js +4 -2
  324. package/src/components/media-replace-flow/index.js +3 -3
  325. package/src/components/media-replace-flow/test/index.js +13 -11
  326. package/src/components/provider/index.js +11 -10
  327. package/src/components/provider/test/use-block-sync.js +1 -0
  328. package/src/components/provider/with-registry-provider.js +1 -1
  329. package/src/components/rich-text/index.js +1 -1
  330. package/src/components/use-block-commands/index.js +0 -41
  331. package/src/components/use-block-display-information/index.js +1 -5
  332. package/src/components/writing-flow/index.js +2 -0
  333. package/src/components/writing-flow/use-arrow-nav.js +5 -0
  334. package/src/components/writing-flow/use-drag-selection.js +7 -1
  335. package/src/components/writing-flow/use-preview-mode-nav.js +102 -0
  336. package/src/hooks/block-renaming.js +5 -2
  337. package/src/hooks/cross-origin-isolation.js +19 -18
  338. package/src/hooks/custom-css.js +176 -0
  339. package/src/hooks/fit-text.js +20 -5
  340. package/src/hooks/grid-visualizer.js +15 -14
  341. package/src/hooks/index.js +4 -2
  342. package/src/hooks/layout.js +55 -43
  343. package/src/hooks/list-view.js +10 -6
  344. package/src/hooks/test/align.js +1 -0
  345. package/src/hooks/test/allowed-blocks.js +8 -0
  346. package/src/hooks/test/auto-inspector-controls.js +4 -0
  347. package/src/hooks/test/font-size.js +1 -0
  348. package/src/hooks/test/metadata.js +4 -0
  349. package/src/hooks/test/text-align.js +1 -0
  350. package/src/hooks/utils.js +123 -119
  351. package/src/layouts/grid.js +19 -3
  352. package/src/layouts/test/grid.js +1 -1
  353. package/src/store/actions.js +7 -0
  354. package/src/store/defaults.js +4 -0
  355. package/src/store/private-selectors.js +94 -64
  356. package/src/store/reducer.js +11 -18
  357. package/src/store/selectors.js +25 -0
  358. package/src/store/test/actions.js +7 -0
  359. package/src/store/test/private-selectors.js +116 -119
  360. package/src/store/test/reducer.js +262 -266
  361. package/src/store/test/registry-selectors.js +2 -0
  362. package/src/store/test/selectors.js +19 -0
  363. package/src/utils/fit-text-utils.js +31 -5
  364. package/build/components/block-visibility/block-visibility-info.cjs +0 -63
  365. package/build/components/block-visibility/block-visibility-info.cjs.map +0 -7
  366. package/build/components/block-visibility/menu-item.cjs +0 -109
  367. package/build/components/block-visibility/menu-item.cjs.map +0 -7
  368. package/build/components/block-visibility/toolbar.cjs +0 -92
  369. package/build/components/block-visibility/toolbar.cjs.map +0 -7
  370. package/build/components/content-lock/index.cjs +0 -31
  371. package/build/components/content-lock/index.cjs.map +0 -7
  372. package/build/components/content-lock/modify-content-lock-menu-item.cjs +0 -70
  373. package/build/components/content-lock/modify-content-lock-menu-item.cjs.map +0 -7
  374. package/build/hooks/content-lock-ui.cjs +0 -68
  375. package/build/hooks/content-lock-ui.cjs.map +0 -7
  376. package/build-module/components/block-visibility/block-visibility-info.mjs +0 -47
  377. package/build-module/components/block-visibility/block-visibility-info.mjs.map +0 -7
  378. package/build-module/components/block-visibility/menu-item.mjs +0 -88
  379. package/build-module/components/block-visibility/menu-item.mjs.map +0 -7
  380. package/build-module/components/block-visibility/toolbar.mjs +0 -71
  381. package/build-module/components/block-visibility/toolbar.mjs.map +0 -7
  382. package/build-module/components/content-lock/index.mjs +0 -6
  383. package/build-module/components/content-lock/index.mjs.map +0 -7
  384. package/build-module/components/content-lock/modify-content-lock-menu-item.mjs +0 -45
  385. package/build-module/components/content-lock/modify-content-lock-menu-item.mjs.map +0 -7
  386. package/build-module/hooks/content-lock-ui.mjs +0 -47
  387. package/build-module/hooks/content-lock-ui.mjs.map +0 -7
  388. package/src/components/block-visibility/block-visibility-info.js +0 -62
  389. package/src/components/block-visibility/menu-item.js +0 -96
  390. package/src/components/block-visibility/toolbar.js +0 -88
  391. package/src/components/content-lock/index.js +0 -1
  392. package/src/components/content-lock/modify-content-lock-menu-item.js +0 -67
  393. package/src/hooks/content-lock-ui.js +0 -76
@@ -19,8 +19,8 @@ import {
19
19
  isMoveLockedBlock,
20
20
  isRemoveLockedBlock,
21
21
  isLockedBlock,
22
- isBlockHidden,
23
- areBlocksHiddenAnywhere,
22
+ isBlockHiddenAnywhere,
23
+ isBlockHiddenAtViewport,
24
24
  } from '../private-selectors';
25
25
  import { getBlockEditingMode } from '../selectors';
26
26
  import { deviceTypeKey } from '../private-keys';
@@ -932,10 +932,11 @@ describe( 'private selectors', () => {
932
932
  } );
933
933
  } );
934
934
 
935
- describe( 'isBlockHidden', () => {
935
+ describe( 'isBlockHiddenAnywhere', () => {
936
936
  beforeAll( () => {
937
937
  // Register a block with visibility support
938
938
  registerBlockType( 'core/test-block-with-visibility', {
939
+ apiVersion: 3,
939
940
  save: () => null,
940
941
  category: 'text',
941
942
  title: 'Test Block With Visibility',
@@ -946,6 +947,7 @@ describe( 'private selectors', () => {
946
947
 
947
948
  // Register a block without visibility support
948
949
  registerBlockType( 'core/test-block-without-visibility', {
950
+ apiVersion: 3,
949
951
  save: () => null,
950
952
  category: 'text',
951
953
  title: 'Test Block Without Visibility',
@@ -956,6 +958,7 @@ describe( 'private selectors', () => {
956
958
 
957
959
  // Register a block with no supports defined (defaults to true for visibility)
958
960
  registerBlockType( 'core/test-block-default-visibility', {
961
+ apiVersion: 3,
959
962
  save: () => null,
960
963
  category: 'text',
961
964
  title: 'Test Block Default Visibility',
@@ -990,7 +993,7 @@ describe( 'private selectors', () => {
990
993
  },
991
994
  };
992
995
 
993
- expect( isBlockHidden( state, 'block-1' ) ).toBe( false );
996
+ expect( isBlockHiddenAnywhere( state, 'block-1' ) ).toBe( false );
994
997
  } );
995
998
 
996
999
  it( 'should return true when block has visibility support and is hidden', () => {
@@ -1015,7 +1018,7 @@ describe( 'private selectors', () => {
1015
1018
  },
1016
1019
  };
1017
1020
 
1018
- expect( isBlockHidden( state, 'block-1' ) ).toBe( true );
1021
+ expect( isBlockHiddenAnywhere( state, 'block-1' ) ).toBe( true );
1019
1022
  } );
1020
1023
 
1021
1024
  it( 'should return false when block does not have visibility support', () => {
@@ -1042,7 +1045,7 @@ describe( 'private selectors', () => {
1042
1045
 
1043
1046
  // Even though blockVisibility is false, the block doesn't support visibility,
1044
1047
  // so it should return false
1045
- expect( isBlockHidden( state, 'block-1' ) ).toBe( false );
1048
+ expect( isBlockHiddenAnywhere( state, 'block-1' ) ).toBe( false );
1046
1049
  } );
1047
1050
 
1048
1051
  it( 'should return false when block has default visibility support and is not hidden', () => {
@@ -1067,7 +1070,7 @@ describe( 'private selectors', () => {
1067
1070
  },
1068
1071
  };
1069
1072
 
1070
- expect( isBlockHidden( state, 'block-1' ) ).toBe( false );
1073
+ expect( isBlockHiddenAnywhere( state, 'block-1' ) ).toBe( false );
1071
1074
  } );
1072
1075
 
1073
1076
  it( 'should return true when block has default visibility support and is hidden', () => {
@@ -1092,7 +1095,7 @@ describe( 'private selectors', () => {
1092
1095
  },
1093
1096
  };
1094
1097
 
1095
- expect( isBlockHidden( state, 'block-1' ) ).toBe( true );
1098
+ expect( isBlockHiddenAnywhere( state, 'block-1' ) ).toBe( true );
1096
1099
  } );
1097
1100
 
1098
1101
  it( 'should return false when block has no metadata', () => {
@@ -1108,7 +1111,7 @@ describe( 'private selectors', () => {
1108
1111
  },
1109
1112
  };
1110
1113
 
1111
- expect( isBlockHidden( state, 'block-1' ) ).toBe( false );
1114
+ expect( isBlockHiddenAnywhere( state, 'block-1' ) ).toBe( false );
1112
1115
  } );
1113
1116
 
1114
1117
  it( 'should return false when block has metadata but no blockVisibility property', () => {
@@ -1133,7 +1136,7 @@ describe( 'private selectors', () => {
1133
1136
  },
1134
1137
  };
1135
1138
 
1136
- expect( isBlockHidden( state, 'block-1' ) ).toBe( false );
1139
+ expect( isBlockHiddenAnywhere( state, 'block-1' ) ).toBe( false );
1137
1140
  } );
1138
1141
 
1139
1142
  it( 'should handle non-existent block gracefully', () => {
@@ -1146,25 +1149,93 @@ describe( 'private selectors', () => {
1146
1149
 
1147
1150
  // When block doesn't exist, getBlockName returns null,
1148
1151
  // and hasBlockSupport should handle null gracefully
1149
- expect( isBlockHidden( state, 'non-existent-block' ) ).toBe(
1152
+ expect( isBlockHiddenAnywhere( state, 'non-existent-block' ) ).toBe(
1150
1153
  false
1151
1154
  );
1152
1155
  } );
1153
1156
  } );
1154
1157
 
1155
- describe( 'isBlockHidden in different devices', () => {
1156
- const originalExperimentalFlag =
1157
- window.__experimentalHideBlocksBasedOnScreenSize;
1158
+ describe( 'isBlockHiddenAtViewport', () => {
1159
+ beforeAll( () => {
1160
+ registerBlockType( 'core/test-block-with-visibility', {
1161
+ apiVersion: 3,
1162
+ save: () => null,
1163
+ category: 'text',
1164
+ title: 'Test Block With Visibility',
1165
+ supports: {
1166
+ visibility: true,
1167
+ },
1168
+ } );
1169
+ } );
1170
+
1171
+ afterAll( () => {
1172
+ unregisterBlockType( 'core/test-block-with-visibility' );
1173
+ } );
1174
+
1175
+ it( 'returns true when block is hidden everywhere', () => {
1176
+ const state = {
1177
+ blocks: {
1178
+ byClientId: new Map( [
1179
+ [
1180
+ 'block-1',
1181
+ { name: 'core/test-block-with-visibility' },
1182
+ ],
1183
+ ] ),
1184
+ attributes: new Map( [
1185
+ [
1186
+ 'block-1',
1187
+ {
1188
+ metadata: {
1189
+ blockVisibility: false,
1190
+ },
1191
+ },
1192
+ ],
1193
+ ] ),
1194
+ },
1195
+ };
1158
1196
 
1159
- beforeEach( () => {
1160
- window.__experimentalHideBlocksBasedOnScreenSize = true;
1197
+ expect(
1198
+ isBlockHiddenAtViewport( state, 'block-1', 'Desktop' )
1199
+ ).toBe( true );
1161
1200
  } );
1162
1201
 
1163
- afterEach( () => {
1164
- window.__experimentalHideBlocksBasedOnScreenSize =
1165
- originalExperimentalFlag;
1202
+ it( 'returns visibility based on the requested viewport', () => {
1203
+ const state = {
1204
+ blocks: {
1205
+ byClientId: new Map( [
1206
+ [
1207
+ 'block-1',
1208
+ { name: 'core/test-block-with-visibility' },
1209
+ ],
1210
+ ] ),
1211
+ attributes: new Map( [
1212
+ [
1213
+ 'block-1',
1214
+ {
1215
+ metadata: {
1216
+ blockVisibility: {
1217
+ viewport: {
1218
+ mobile: false,
1219
+ tablet: true,
1220
+ },
1221
+ },
1222
+ },
1223
+ },
1224
+ ],
1225
+ ] ),
1226
+ },
1227
+ };
1228
+
1229
+ expect(
1230
+ isBlockHiddenAtViewport( state, 'block-1', 'Mobile' )
1231
+ ).toBe( true );
1232
+ expect(
1233
+ isBlockHiddenAtViewport( state, 'block-1', 'Tablet' )
1234
+ ).toBe( false );
1166
1235
  } );
1236
+ } );
1167
1237
 
1238
+ describe( 'isBlockHiddenAnywhere in different devices', () => {
1168
1239
  const createState = ( blockVisibility, deviceType = 'Desktop' ) => ( {
1169
1240
  settings: {
1170
1241
  [ deviceTypeKey ]: deviceType,
@@ -1196,132 +1267,58 @@ describe( 'private selectors', () => {
1196
1267
  },
1197
1268
  } );
1198
1269
 
1199
- it( 'returns false when experimental flag is disabled and block has breakpoint visibility', () => {
1200
- window.__experimentalHideBlocksBasedOnScreenSize = false;
1201
- const state = createState( { mobile: false, tablet: true } );
1202
- const result = isBlockHidden( state, 'test-block' );
1203
- expect( result ).toBe( false );
1204
- } );
1205
-
1206
- it( 'returns false when Desktop is selected and block has breakpoint visibility', () => {
1270
+ it( 'returns true when block is hidden at any viewport (mobile)', () => {
1207
1271
  const state = createState(
1208
- { mobile: false, tablet: true },
1272
+ { viewport: { mobile: false, tablet: true } },
1209
1273
  'Desktop'
1210
1274
  );
1211
- const result = isBlockHidden( state, 'test-block' );
1212
- expect( result ).toBe( false );
1275
+ const result = isBlockHiddenAnywhere( state, 'test-block' );
1276
+ expect( result ).toBe( true );
1213
1277
  } );
1214
1278
 
1215
- it( 'returns true when Desktop is selected and block is hidden on desktop', () => {
1216
- const state = createState( { desktop: false }, 'Desktop' );
1217
- const result = isBlockHidden( state, 'test-block' );
1279
+ it( 'returns true when block is hidden on desktop', () => {
1280
+ const state = createState(
1281
+ { viewport: { desktop: false } },
1282
+ 'Desktop'
1283
+ );
1284
+ const result = isBlockHiddenAnywhere( state, 'test-block' );
1218
1285
  expect( result ).toBe( true );
1219
1286
  } );
1220
1287
 
1221
- it( 'returns true when Tablet is selected and block is hidden on tablet', () => {
1288
+ it( 'returns true when block is hidden on tablet', () => {
1222
1289
  const state = createState(
1223
- { mobile: true, tablet: false },
1290
+ { viewport: { mobile: true, tablet: false } },
1224
1291
  'Tablet'
1225
1292
  );
1226
- const result = isBlockHidden( state, 'test-block' );
1293
+ const result = isBlockHiddenAnywhere( state, 'test-block' );
1227
1294
  expect( result ).toBe( true );
1228
1295
  } );
1229
1296
 
1230
- it( 'returns true when Mobile is selected and block is hidden on mobile', () => {
1297
+ it( 'returns true when block is hidden on mobile', () => {
1231
1298
  const state = createState(
1232
- { mobile: false, tablet: true },
1299
+ { viewport: { mobile: false, tablet: true } },
1233
1300
  'Mobile'
1234
1301
  );
1235
- const result = isBlockHidden( state, 'test-block' );
1302
+ const result = isBlockHiddenAnywhere( state, 'test-block' );
1236
1303
  expect( result ).toBe( true );
1237
1304
  } );
1238
1305
 
1239
- it( 'returns false when Tablet is selected and block is visible on tablet', () => {
1306
+ it( 'returns true when block is hidden at any viewport even if visible at current device', () => {
1240
1307
  const state = createState(
1241
- { mobile: false, tablet: true },
1308
+ { viewport: { mobile: false, tablet: true } },
1242
1309
  'Tablet'
1243
1310
  );
1244
- const result = isBlockHidden( state, 'test-block' );
1245
- expect( result ).toBe( false );
1246
- } );
1247
- } );
1248
-
1249
- describe( 'areBlocksHiddenAnywhere', () => {
1250
- it( 'should return false when clientIds array is empty', () => {
1251
- const state = {
1252
- blocks: {
1253
- attributes: new Map(),
1254
- },
1255
- };
1256
- expect( areBlocksHiddenAnywhere( state, [] ) ).toBe( false );
1257
- expect( areBlocksHiddenAnywhere( state, null ) ).toBe( false );
1258
- expect( areBlocksHiddenAnywhere( state, undefined ) ).toBe( false );
1259
- } );
1260
-
1261
- it( 'should return false when no blocks are hidden', () => {
1262
- const state = {
1263
- blocks: {
1264
- attributes: new Map( [
1265
- [ 'block-1', { metadata: { blockVisibility: true } } ],
1266
- [ 'block-2', { metadata: {} } ],
1267
- ] ),
1268
- },
1269
- };
1270
- expect(
1271
- areBlocksHiddenAnywhere( state, [ 'block-1', 'block-2' ] )
1272
- ).toBe( false );
1273
- } );
1274
-
1275
- it( 'should return true when a block is hidden everywhere', () => {
1276
- const state = {
1277
- blocks: {
1278
- attributes: new Map( [
1279
- [ 'block-1', { metadata: { blockVisibility: false } } ],
1280
- [ 'block-2', { metadata: { blockVisibility: true } } ],
1281
- ] ),
1282
- },
1283
- };
1284
- expect(
1285
- areBlocksHiddenAnywhere( state, [ 'block-1', 'block-2' ] )
1286
- ).toBe( true );
1287
- } );
1288
-
1289
- it( 'should return true when a block is hidden in any viewport', () => {
1290
- const state = {
1291
- blocks: {
1292
- attributes: new Map( [
1293
- [
1294
- 'block-1',
1295
- {
1296
- metadata: {
1297
- blockVisibility: {
1298
- mobile: false,
1299
- tablet: true,
1300
- },
1301
- },
1302
- },
1303
- ],
1304
- [ 'block-2', { metadata: { blockVisibility: true } } ],
1305
- ] ),
1306
- },
1307
- };
1308
- expect(
1309
- areBlocksHiddenAnywhere( state, [ 'block-1', 'block-2' ] )
1310
- ).toBe( true );
1311
+ const result = isBlockHiddenAnywhere( state, 'test-block' );
1312
+ expect( result ).toBe( true );
1311
1313
  } );
1312
1314
 
1313
- it( 'should return false when clientId is null or undefined', () => {
1314
- const state = {
1315
- blocks: {
1316
- attributes: new Map( [
1317
- [ 'block-1', { metadata: { blockVisibility: false } } ],
1318
- ] ),
1319
- },
1320
- };
1321
- expect( areBlocksHiddenAnywhere( state, [ null ] ) ).toBe( false );
1322
- expect( areBlocksHiddenAnywhere( state, [ undefined ] ) ).toBe(
1323
- false
1315
+ it( 'returns false when block is visible at all viewports', () => {
1316
+ const state = createState(
1317
+ { mobile: true, tablet: true, desktop: true },
1318
+ 'Desktop'
1324
1319
  );
1320
+ const result = isBlockHiddenAnywhere( state, 'test-block' );
1321
+ expect( result ).toBe( false );
1325
1322
  } );
1326
1323
  } );
1327
1324
  } );