@wordpress/block-editor 12.22.0 → 12.23.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 (273) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +4 -0
  3. package/build/components/block-list/block.js +11 -3
  4. package/build/components/block-list/block.js.map +1 -1
  5. package/build/components/block-mover/button.js +4 -1
  6. package/build/components/block-mover/button.js.map +1 -1
  7. package/build/components/block-mover/index.js +5 -1
  8. package/build/components/block-mover/index.js.map +1 -1
  9. package/build/components/block-patterns-list/index.js +4 -1
  10. package/build/components/block-patterns-list/index.js.map +1 -1
  11. package/build/components/block-settings-menu/block-settings-dropdown.js +7 -3
  12. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  13. package/build/components/block-switcher/index.js +4 -3
  14. package/build/components/block-switcher/index.js.map +1 -1
  15. package/build/components/block-toolbar/index.js +5 -4
  16. package/build/components/block-toolbar/index.js.map +1 -1
  17. package/build/components/block-toolbar/shuffle.js +18 -9
  18. package/build/components/block-toolbar/shuffle.js.map +1 -1
  19. package/build/components/block-tools/block-selection-button.js +48 -8
  20. package/build/components/block-tools/block-selection-button.js.map +1 -1
  21. package/build/components/block-tools/index.js +14 -2
  22. package/build/components/block-tools/index.js.map +1 -1
  23. package/build/components/global-styles/advanced-panel.js +9 -2
  24. package/build/components/global-styles/advanced-panel.js.map +1 -1
  25. package/build/components/global-styles/background-panel.js +444 -0
  26. package/build/components/global-styles/background-panel.js.map +1 -0
  27. package/build/components/global-styles/color-panel.js +2 -1
  28. package/build/components/global-styles/color-panel.js.map +1 -1
  29. package/build/components/global-styles/get-global-styles-changes.js +3 -0
  30. package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
  31. package/build/components/global-styles/hooks.js +1 -1
  32. package/build/components/global-styles/hooks.js.map +1 -1
  33. package/build/components/global-styles/index.js +13 -0
  34. package/build/components/global-styles/index.js.map +1 -1
  35. package/build/components/global-styles/use-global-styles-output.js +15 -14
  36. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  37. package/build/components/global-styles/utils.js +2 -1
  38. package/build/components/global-styles/utils.js.map +1 -1
  39. package/build/components/iframe/index.js +9 -4
  40. package/build/components/iframe/index.js.map +1 -1
  41. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  42. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +5 -0
  43. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  44. package/build/components/inserter/library.js +2 -0
  45. package/build/components/inserter/library.js.map +1 -1
  46. package/build/components/inserter/menu.js +8 -2
  47. package/build/components/inserter/menu.js.map +1 -1
  48. package/build/components/inserter/search-items.js +36 -15
  49. package/build/components/inserter/search-items.js.map +1 -1
  50. package/build/components/keyboard-shortcuts/index.js +11 -0
  51. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  52. package/build/components/list-view/block-select-button.js +16 -0
  53. package/build/components/list-view/block-select-button.js.map +1 -1
  54. package/build/components/list-view/block.js +1 -1
  55. package/build/components/list-view/block.js.map +1 -1
  56. package/build/components/list-view/index.js +17 -2
  57. package/build/components/list-view/index.js.map +1 -1
  58. package/build/components/list-view/use-list-view-collapse-items.js +47 -0
  59. package/build/components/list-view/use-list-view-collapse-items.js.map +1 -0
  60. package/build/components/rich-text/index.js +14 -11
  61. package/build/components/rich-text/index.js.map +1 -1
  62. package/build/components/rich-text/index.native.js +17 -11
  63. package/build/components/rich-text/index.native.js.map +1 -1
  64. package/build/components/rich-text/native/get-format-colors.native.js +1 -1
  65. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  66. package/build/components/rich-text/native/index.native.js +2 -2
  67. package/build/components/rich-text/native/index.native.js.map +1 -1
  68. package/build/components/rich-text/with-deprecations.js +0 -3
  69. package/build/components/rich-text/with-deprecations.js.map +1 -1
  70. package/build/components/url-popover/image-url-input-ui.js +50 -36
  71. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  72. package/build/components/use-block-display-information/index.js +4 -6
  73. package/build/components/use-block-display-information/index.js.map +1 -1
  74. package/build/hooks/anchor.js +2 -2
  75. package/build/hooks/anchor.js.map +1 -1
  76. package/build/hooks/background.js +70 -424
  77. package/build/hooks/background.js.map +1 -1
  78. package/build/hooks/index.js +7 -0
  79. package/build/hooks/index.js.map +1 -1
  80. package/build/hooks/use-zoom-out.js +47 -0
  81. package/build/hooks/use-zoom-out.js.map +1 -0
  82. package/build/index.js +7 -0
  83. package/build/index.js.map +1 -1
  84. package/build/private-apis.js +6 -1
  85. package/build/private-apis.js.map +1 -1
  86. package/build/private-apis.native.js +3 -1
  87. package/build/private-apis.native.js.map +1 -1
  88. package/build/store/private-actions.js +13 -0
  89. package/build/store/private-actions.js.map +1 -1
  90. package/build/store/private-keys.js +2 -1
  91. package/build/store/private-keys.js.map +1 -1
  92. package/build/store/private-selectors.js +24 -3
  93. package/build/store/private-selectors.js.map +1 -1
  94. package/build/store/reducer.js +22 -0
  95. package/build/store/reducer.js.map +1 -1
  96. package/build/store/selectors.js +34 -32
  97. package/build/store/selectors.js.map +1 -1
  98. package/build/store/utils.js +7 -1
  99. package/build/store/utils.js.map +1 -1
  100. package/build/utils/transform-styles/index.js +2 -1
  101. package/build/utils/transform-styles/index.js.map +1 -1
  102. package/build-module/components/block-list/block.js +11 -3
  103. package/build-module/components/block-list/block.js.map +1 -1
  104. package/build-module/components/block-mover/button.js +4 -1
  105. package/build-module/components/block-mover/button.js.map +1 -1
  106. package/build-module/components/block-mover/index.js +5 -1
  107. package/build-module/components/block-mover/index.js.map +1 -1
  108. package/build-module/components/block-patterns-list/index.js +4 -1
  109. package/build-module/components/block-patterns-list/index.js.map +1 -1
  110. package/build-module/components/block-settings-menu/block-settings-dropdown.js +7 -3
  111. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  112. package/build-module/components/block-switcher/index.js +4 -3
  113. package/build-module/components/block-switcher/index.js.map +1 -1
  114. package/build-module/components/block-toolbar/index.js +5 -4
  115. package/build-module/components/block-toolbar/index.js.map +1 -1
  116. package/build-module/components/block-toolbar/shuffle.js +18 -9
  117. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  118. package/build-module/components/block-tools/block-selection-button.js +50 -10
  119. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  120. package/build-module/components/block-tools/index.js +14 -2
  121. package/build-module/components/block-tools/index.js.map +1 -1
  122. package/build-module/components/global-styles/advanced-panel.js +9 -2
  123. package/build-module/components/global-styles/advanced-panel.js.map +1 -1
  124. package/build-module/components/global-styles/background-panel.js +430 -0
  125. package/build-module/components/global-styles/background-panel.js.map +1 -0
  126. package/build-module/components/global-styles/color-panel.js +2 -1
  127. package/build-module/components/global-styles/color-panel.js.map +1 -1
  128. package/build-module/components/global-styles/get-global-styles-changes.js +3 -0
  129. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  130. package/build-module/components/global-styles/hooks.js +1 -1
  131. package/build-module/components/global-styles/hooks.js.map +1 -1
  132. package/build-module/components/global-styles/index.js +1 -0
  133. package/build-module/components/global-styles/index.js.map +1 -1
  134. package/build-module/components/global-styles/use-global-styles-output.js +16 -15
  135. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  136. package/build-module/components/global-styles/utils.js +1 -0
  137. package/build-module/components/global-styles/utils.js.map +1 -1
  138. package/build-module/components/iframe/index.js +9 -4
  139. package/build-module/components/iframe/index.js.map +1 -1
  140. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  141. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +5 -0
  142. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  143. package/build-module/components/inserter/library.js +2 -0
  144. package/build-module/components/inserter/library.js.map +1 -1
  145. package/build-module/components/inserter/menu.js +8 -2
  146. package/build-module/components/inserter/menu.js.map +1 -1
  147. package/build-module/components/inserter/search-items.js +33 -15
  148. package/build-module/components/inserter/search-items.js.map +1 -1
  149. package/build-module/components/keyboard-shortcuts/index.js +11 -0
  150. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  151. package/build-module/components/list-view/block-select-button.js +16 -0
  152. package/build-module/components/list-view/block-select-button.js.map +1 -1
  153. package/build-module/components/list-view/block.js +1 -1
  154. package/build-module/components/list-view/block.js.map +1 -1
  155. package/build-module/components/list-view/index.js +17 -2
  156. package/build-module/components/list-view/index.js.map +1 -1
  157. package/build-module/components/list-view/use-list-view-collapse-items.js +40 -0
  158. package/build-module/components/list-view/use-list-view-collapse-items.js.map +1 -0
  159. package/build-module/components/rich-text/index.js +15 -12
  160. package/build-module/components/rich-text/index.js.map +1 -1
  161. package/build-module/components/rich-text/index.native.js +16 -11
  162. package/build-module/components/rich-text/index.native.js.map +1 -1
  163. package/build-module/components/rich-text/native/get-format-colors.native.js +1 -1
  164. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  165. package/build-module/components/rich-text/native/index.native.js +2 -2
  166. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  167. package/build-module/components/rich-text/with-deprecations.js +0 -3
  168. package/build-module/components/rich-text/with-deprecations.js.map +1 -1
  169. package/build-module/components/url-popover/image-url-input-ui.js +50 -36
  170. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  171. package/build-module/components/use-block-display-information/index.js +5 -7
  172. package/build-module/components/use-block-display-information/index.js.map +1 -1
  173. package/build-module/hooks/anchor.js +2 -2
  174. package/build-module/hooks/anchor.js.map +1 -1
  175. package/build-module/hooks/background.js +67 -419
  176. package/build-module/hooks/background.js.map +1 -1
  177. package/build-module/hooks/index.js +1 -0
  178. package/build-module/hooks/index.js.map +1 -1
  179. package/build-module/hooks/use-zoom-out.js +41 -0
  180. package/build-module/hooks/use-zoom-out.js.map +1 -0
  181. package/build-module/index.js +1 -1
  182. package/build-module/index.js.map +1 -1
  183. package/build-module/private-apis.js +7 -2
  184. package/build-module/private-apis.js.map +1 -1
  185. package/build-module/private-apis.native.js +3 -1
  186. package/build-module/private-apis.native.js.map +1 -1
  187. package/build-module/store/private-actions.js +12 -0
  188. package/build-module/store/private-actions.js.map +1 -1
  189. package/build-module/store/private-keys.js +1 -0
  190. package/build-module/store/private-keys.js.map +1 -1
  191. package/build-module/store/private-selectors.js +22 -4
  192. package/build-module/store/private-selectors.js.map +1 -1
  193. package/build-module/store/reducer.js +21 -0
  194. package/build-module/store/reducer.js.map +1 -1
  195. package/build-module/store/selectors.js +35 -33
  196. package/build-module/store/selectors.js.map +1 -1
  197. package/build-module/store/utils.js +6 -1
  198. package/build-module/store/utils.js.map +1 -1
  199. package/build-module/utils/transform-styles/index.js +2 -1
  200. package/build-module/utils/transform-styles/index.js.map +1 -1
  201. package/build-style/content-rtl.css +4 -1
  202. package/build-style/content.css +4 -1
  203. package/build-style/style-rtl.css +84 -79
  204. package/build-style/style.css +84 -79
  205. package/package.json +31 -31
  206. package/src/components/block-list/block.js +19 -3
  207. package/src/components/block-mover/button.js +4 -1
  208. package/src/components/block-mover/index.js +8 -1
  209. package/src/components/block-patterns-list/index.js +22 -17
  210. package/src/components/block-preview/style.scss +28 -0
  211. package/src/components/block-settings-menu/block-settings-dropdown.js +8 -2
  212. package/src/components/block-switcher/index.js +5 -3
  213. package/src/components/block-switcher/style.scss +1 -1
  214. package/src/components/block-toolbar/index.js +22 -19
  215. package/src/components/block-toolbar/shuffle.js +19 -13
  216. package/src/components/block-toolbar/style.scss +1 -1
  217. package/src/components/block-tools/block-selection-button.js +66 -9
  218. package/src/components/block-tools/index.js +18 -1
  219. package/src/components/button-block-appender/content.scss +5 -1
  220. package/src/components/default-block-appender/content.scss +2 -2
  221. package/src/components/global-styles/advanced-panel.js +8 -2
  222. package/src/components/global-styles/background-panel.js +591 -0
  223. package/src/components/global-styles/color-panel.js +2 -1
  224. package/src/components/global-styles/get-global-styles-changes.js +3 -0
  225. package/src/components/global-styles/hooks.js +1 -0
  226. package/src/components/global-styles/index.js +4 -0
  227. package/src/components/global-styles/style.scss +78 -1
  228. package/src/{hooks/test/background.js → components/global-styles/test/background-panel.js} +36 -1
  229. package/src/components/global-styles/test/get-global-styles-changes.js +22 -3
  230. package/src/components/global-styles/test/use-global-styles-output.js +9 -9
  231. package/src/components/global-styles/use-global-styles-output.js +27 -16
  232. package/src/components/global-styles/utils.js +1 -0
  233. package/src/components/iframe/index.js +19 -9
  234. package/src/components/inserter/block-patterns-tab/index.js +1 -0
  235. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +5 -0
  236. package/src/components/inserter/library.js +4 -0
  237. package/src/components/inserter/menu.js +8 -1
  238. package/src/components/inserter/search-items.js +37 -15
  239. package/src/components/inserter/style.scss +6 -12
  240. package/src/components/keyboard-shortcuts/index.js +11 -0
  241. package/src/components/list-view/block-select-button.js +13 -1
  242. package/src/components/list-view/block.js +1 -1
  243. package/src/components/list-view/index.js +18 -1
  244. package/src/components/list-view/style.scss +4 -4
  245. package/src/components/list-view/use-list-view-collapse-items.js +33 -0
  246. package/src/components/rich-text/index.js +30 -13
  247. package/src/components/rich-text/index.native.js +14 -11
  248. package/src/components/rich-text/native/get-format-colors.native.js +1 -1
  249. package/src/components/rich-text/native/index.native.js +2 -2
  250. package/src/components/rich-text/with-deprecations.js +0 -3
  251. package/src/components/url-popover/image-url-input-ui.js +68 -51
  252. package/src/components/use-block-display-information/index.js +8 -10
  253. package/src/hooks/anchor.js +11 -9
  254. package/src/hooks/background.js +77 -538
  255. package/src/hooks/index.js +1 -0
  256. package/src/hooks/use-zoom-out.js +36 -0
  257. package/src/index.js +1 -0
  258. package/src/private-apis.js +13 -1
  259. package/src/private-apis.native.js +2 -0
  260. package/src/store/private-actions.js +12 -0
  261. package/src/store/private-keys.js +1 -0
  262. package/src/store/private-selectors.js +54 -27
  263. package/src/store/reducer.js +22 -0
  264. package/src/store/selectors.js +195 -180
  265. package/src/store/test/private-actions.js +10 -0
  266. package/src/store/test/private-selectors.js +13 -0
  267. package/src/store/test/reducer.js +26 -0
  268. package/src/store/test/selectors.js +90 -199
  269. package/src/store/utils.js +13 -0
  270. package/src/style.scss +0 -2
  271. package/src/utils/transform-styles/index.js +2 -1
  272. package/src/hooks/anchor.scss +0 -4
  273. package/src/hooks/background.scss +0 -75
@@ -1171,7 +1171,17 @@ function isBlockSelected(state, clientId) {
1171
1171
  * @return {boolean} Whether the block has an inner block selected
1172
1172
  */
1173
1173
  function hasSelectedInnerBlock(state, clientId, deep = false) {
1174
- return getBlockOrder(state, clientId).some(innerClientId => isBlockSelected(state, innerClientId) || isBlockMultiSelected(state, innerClientId) || deep && hasSelectedInnerBlock(state, innerClientId, deep));
1174
+ const selectedBlockClientIds = getSelectedBlockClientIds(state);
1175
+ if (!selectedBlockClientIds.length) {
1176
+ return false;
1177
+ }
1178
+ if (deep) {
1179
+ return selectedBlockClientIds.some(id =>
1180
+ // Pass true because we don't care about order and it's more
1181
+ // performant.
1182
+ getBlockParents(state, id, true).includes(clientId));
1183
+ }
1184
+ return selectedBlockClientIds.some(id => getBlockRootClientId(state, id) === clientId);
1175
1185
  }
1176
1186
 
1177
1187
  /**
@@ -1534,7 +1544,7 @@ const canInsertBlockTypeUnmemoized = (state, blockName, rootClientId = null) =>
1534
1544
  *
1535
1545
  * @return {boolean} Whether the given block type is allowed to be inserted.
1536
1546
  */
1537
- const canInsertBlockType = exports.canInsertBlockType = (0, _rememo.default)(canInsertBlockTypeUnmemoized, (state, blockName, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId), state.settings.allowedBlockTypes, state.settings.templateLock, state.blockEditingModes]);
1547
+ const canInsertBlockType = exports.canInsertBlockType = (0, _rememo.default)(canInsertBlockTypeUnmemoized, (state, blockName, rootClientId) => (0, _utils.getInsertBlockTypeDependants)(state, rootClientId));
1538
1548
 
1539
1549
  /**
1540
1550
  * Determines if the given blocks are allowed to be inserted into the block
@@ -1828,7 +1838,7 @@ const buildBlockTypeItem = (state, {
1828
1838
  * this item.
1829
1839
  * @property {number} frecency Heuristic that combines frequency and recency.
1830
1840
  */
1831
- const getInserterItems = exports.getInserterItems = (0, _rememo.default)((state, rootClientId = null) => {
1841
+ const getInserterItems = exports.getInserterItems = (0, _data.createRegistrySelector)(select => (0, _rememo.default)((state, rootClientId = null) => {
1832
1842
  const buildReusableBlockInserterItem = reusableBlock => {
1833
1843
  const icon = !reusableBlock.wp_pattern_sync_status ? {
1834
1844
  src: _icons.symbol,
@@ -1858,7 +1868,7 @@ const getInserterItems = exports.getInserterItems = (0, _rememo.default)((state,
1858
1868
  syncStatus: reusableBlock.wp_pattern_sync_status
1859
1869
  };
1860
1870
  };
1861
- const syncedPatternInserterItems = canInsertBlockTypeUnmemoized(state, 'core/block', rootClientId) ? getReusableBlocks(state).map(buildReusableBlockInserterItem) : [];
1871
+ const syncedPatternInserterItems = canInsertBlockTypeUnmemoized(state, 'core/block', rootClientId) ? (0, _lockUnlock.unlock)(select(_constants.STORE_NAME)).getReusableBlocks().map(buildReusableBlockInserterItem) : [];
1862
1872
  const buildBlockTypeInserterItem = buildBlockTypeItem(state, {
1863
1873
  buildScope: 'inserter'
1864
1874
  });
@@ -1903,7 +1913,7 @@ const getInserterItems = exports.getInserterItems = (0, _rememo.default)((state,
1903
1913
  });
1904
1914
  const sortedBlockTypes = [...coreItems, ...nonCoreItems];
1905
1915
  return [...sortedBlockTypes, ...syncedPatternInserterItems];
1906
- }, (state, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId), state.blocks.order, state.preferences.insertUsage, state.settings.allowedBlockTypes, state.settings.templateLock, getReusableBlocks(state), (0, _blocks.getBlockTypes)()]);
1916
+ }, (state, rootClientId) => [(0, _blocks.getBlockTypes)(), (0, _lockUnlock.unlock)(select(_constants.STORE_NAME)).getReusableBlocks(), state.blocks.order, state.preferences.insertUsage, ...(0, _utils.getInsertBlockTypeDependants)(state, rootClientId)]));
1907
1917
 
1908
1918
  /**
1909
1919
  * Determines the items that appear in the available block transforms list.
@@ -1945,7 +1955,7 @@ const getBlockTransformItems = exports.getBlockTransformItems = (0, _rememo.defa
1945
1955
  return accumulator;
1946
1956
  }, []);
1947
1957
  return (0, _sorting.orderBy)(possibleTransforms, block => itemsByName[block.name].frecency, 'desc');
1948
- }, (state, blocks, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId), state.preferences.insertUsage, state.settings.allowedBlockTypes, state.settings.templateLock, (0, _blocks.getBlockTypes)()]);
1958
+ }, (state, blocks, rootClientId) => [(0, _blocks.getBlockTypes)(), state.preferences.insertUsage, ...(0, _utils.getInsertBlockTypeDependants)(state, rootClientId)]);
1949
1959
 
1950
1960
  /**
1951
1961
  * Determines whether there are items to show in the inserter.
@@ -1955,14 +1965,14 @@ const getBlockTransformItems = exports.getBlockTransformItems = (0, _rememo.defa
1955
1965
  *
1956
1966
  * @return {boolean} Items that appear in inserter.
1957
1967
  */
1958
- const hasInserterItems = exports.hasInserterItems = (0, _rememo.default)((state, rootClientId = null) => {
1968
+ const hasInserterItems = exports.hasInserterItems = (0, _data.createRegistrySelector)(select => (state, rootClientId = null) => {
1959
1969
  const hasBlockType = (0, _blocks.getBlockTypes)().some(blockType => canIncludeBlockTypeInInserter(state, blockType, rootClientId));
1960
1970
  if (hasBlockType) {
1961
1971
  return true;
1962
1972
  }
1963
- const hasReusableBlock = canInsertBlockTypeUnmemoized(state, 'core/block', rootClientId) && getReusableBlocks(state).length > 0;
1973
+ const hasReusableBlock = canInsertBlockTypeUnmemoized(state, 'core/block', rootClientId) && (0, _lockUnlock.unlock)(select(_constants.STORE_NAME)).getReusableBlocks().length > 0;
1964
1974
  return hasReusableBlock;
1965
- }, (state, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId), state.settings.allowedBlockTypes, state.settings.templateLock, getReusableBlocks(state), (0, _blocks.getBlockTypes)()]);
1975
+ });
1966
1976
 
1967
1977
  /**
1968
1978
  * Returns the list of allowed inserter blocks for inner blocks children.
@@ -1972,17 +1982,17 @@ const hasInserterItems = exports.hasInserterItems = (0, _rememo.default)((state,
1972
1982
  *
1973
1983
  * @return {Array?} The list of allowed block types.
1974
1984
  */
1975
- const getAllowedBlocks = exports.getAllowedBlocks = (0, _rememo.default)((state, rootClientId = null) => {
1985
+ const getAllowedBlocks = exports.getAllowedBlocks = (0, _data.createRegistrySelector)(select => (0, _rememo.default)((state, rootClientId = null) => {
1976
1986
  if (!rootClientId) {
1977
1987
  return;
1978
1988
  }
1979
1989
  const blockTypes = (0, _blocks.getBlockTypes)().filter(blockType => canIncludeBlockTypeInInserter(state, blockType, rootClientId));
1980
- const hasReusableBlock = canInsertBlockTypeUnmemoized(state, 'core/block', rootClientId) && getReusableBlocks(state).length > 0;
1990
+ const hasReusableBlock = canInsertBlockTypeUnmemoized(state, 'core/block', rootClientId) && (0, _lockUnlock.unlock)(select(_constants.STORE_NAME)).getReusableBlocks().length > 0;
1981
1991
  if (hasReusableBlock) {
1982
1992
  blockTypes.push('core/block');
1983
1993
  }
1984
1994
  return blockTypes;
1985
- }, (state, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId), state.settings.allowedBlockTypes, state.settings.templateLock, getReusableBlocks(state), (0, _blocks.getBlockTypes)()]);
1995
+ }, (state, rootClientId) => [(0, _blocks.getBlockTypes)(), (0, _lockUnlock.unlock)(select(_constants.STORE_NAME)).getReusableBlocks(), ...(0, _utils.getInsertBlockTypeDependants)(state, rootClientId)]));
1986
1996
  const __experimentalGetAllowedBlocks = exports.__experimentalGetAllowedBlocks = (0, _rememo.default)((state, rootClientId = null) => {
1987
1997
  (0, _deprecated.default)('wp.data.select( "core/block-editor" ).__experimentalGetAllowedBlocks', {
1988
1998
  alternative: 'wp.data.select( "core/block-editor" ).getAllowedBlocks',
@@ -1990,7 +2000,7 @@ const __experimentalGetAllowedBlocks = exports.__experimentalGetAllowedBlocks =
1990
2000
  version: '6.4'
1991
2001
  });
1992
2002
  return getAllowedBlocks(state, rootClientId);
1993
- }, (state, rootClientId) => [...getAllowedBlocks.getDependants(state, rootClientId)]);
2003
+ }, (state, rootClientId) => getAllowedBlocks.getDependants(state, rootClientId));
1994
2004
 
1995
2005
  /**
1996
2006
  * Returns the block to be directly inserted by the block appender.
@@ -2046,7 +2056,9 @@ const __experimentalGetParsedPattern = exports.__experimentalGetParsedPattern =
2046
2056
  ...blocks[0].attributes,
2047
2057
  metadata: {
2048
2058
  ...(blocks[0].attributes.metadata || {}),
2049
- categories: pattern.categories
2059
+ categories: pattern.categories,
2060
+ patternName: pattern.name,
2061
+ name: blocks[0].attributes.metadata?.name || pattern.title
2050
2062
  }
2051
2063
  };
2052
2064
  }
@@ -2055,9 +2067,7 @@ const __experimentalGetParsedPattern = exports.__experimentalGetParsedPattern =
2055
2067
  blocks
2056
2068
  };
2057
2069
  }, (0, _utils.getAllPatternsDependants)(select)));
2058
- const getAllowedPatternsDependants = select => (state, rootClientId) => {
2059
- return [...(0, _utils.getAllPatternsDependants)(select)(state), state.settings.allowedBlockTypes, state.settings.templateLock, state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId)];
2060
- };
2070
+ const getAllowedPatternsDependants = select => (state, rootClientId) => [...(0, _utils.getAllPatternsDependants)(select)(state), ...(0, _utils.getInsertBlockTypeDependants)(state, rootClientId)];
2061
2071
 
2062
2072
  /**
2063
2073
  * Returns the list of allowed patterns for inner blocks children.
@@ -2237,13 +2247,17 @@ const __experimentalGetBlockListSettingsForBlocks = exports.__experimentalGetBlo
2237
2247
  *
2238
2248
  * @return {string} The reusable block saved title.
2239
2249
  */
2240
- const __experimentalGetReusableBlockTitle = exports.__experimentalGetReusableBlockTitle = (0, _rememo.default)((state, ref) => {
2241
- const reusableBlock = getReusableBlocks(state).find(block => block.id === ref);
2250
+ const __experimentalGetReusableBlockTitle = exports.__experimentalGetReusableBlockTitle = (0, _data.createRegistrySelector)(select => (0, _rememo.default)((state, ref) => {
2251
+ (0, _deprecated.default)("wp.data.select( 'core/block-editor' ).__experimentalGetReusableBlockTitle", {
2252
+ since: '6.6',
2253
+ version: '6.8'
2254
+ });
2255
+ const reusableBlock = (0, _lockUnlock.unlock)(select(_constants.STORE_NAME)).getReusableBlocks().find(block => block.id === ref);
2242
2256
  if (!reusableBlock) {
2243
2257
  return null;
2244
2258
  }
2245
2259
  return reusableBlock.title?.raw;
2246
- }, state => [getReusableBlocks(state)]);
2260
+ }, () => [(0, _lockUnlock.unlock)(select(_constants.STORE_NAME)).getReusableBlocks()]));
2247
2261
 
2248
2262
  /**
2249
2263
  * Returns true if the most recent block change is be considered ignored, or
@@ -2276,18 +2290,6 @@ function __experimentalGetLastBlockAttributeChanges(state) {
2276
2290
  return state.lastBlockAttributesChange;
2277
2291
  }
2278
2292
 
2279
- /**
2280
- * Returns the available reusable blocks
2281
- *
2282
- * @param {Object} state Global application state.
2283
- *
2284
- * @return {Array} Reusable blocks
2285
- */
2286
- function getReusableBlocks(state) {
2287
- var _state$settings$__exp;
2288
- return (_state$settings$__exp = state.settings.__experimentalReusableBlocks) !== null && _state$settings$__exp !== void 0 ? _state$settings$__exp : EMPTY_ARRAY;
2289
- }
2290
-
2291
2293
  /**
2292
2294
  * Returns whether the navigation mode is enabled.
2293
2295
  *