@wordpress/block-editor 12.13.0 → 12.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (528) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +1 -1
  3. package/build/components/block-heading-level-dropdown/index.js +1 -1
  4. package/build/components/block-heading-level-dropdown/index.js.map +1 -1
  5. package/build/components/block-list/block.native.js +2 -0
  6. package/build/components/block-list/block.native.js.map +1 -1
  7. package/build/components/block-list/index.js +2 -9
  8. package/build/components/block-list/index.js.map +1 -1
  9. package/build/components/block-list-appender/index.js +16 -3
  10. package/build/components/block-list-appender/index.js.map +1 -1
  11. package/build/components/block-parent-selector/index.js +1 -1
  12. package/build/components/block-parent-selector/index.js.map +1 -1
  13. package/build/components/block-pattern-setup/index.js +25 -16
  14. package/build/components/block-pattern-setup/index.js.map +1 -1
  15. package/build/components/block-pattern-setup/setup-toolbar.js +4 -2
  16. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  17. package/build/components/block-patterns-list/index.js +36 -19
  18. package/build/components/block-patterns-list/index.js.map +1 -1
  19. package/build/components/block-quick-navigation/index.js +6 -4
  20. package/build/components/block-quick-navigation/index.js.map +1 -1
  21. package/build/components/block-rename/index.js +28 -0
  22. package/build/components/block-rename/index.js.map +1 -0
  23. package/build/components/block-rename/is-empty-string.js +10 -0
  24. package/build/components/block-rename/is-empty-string.js.map +1 -0
  25. package/build/components/block-rename/modal.js +87 -0
  26. package/build/components/block-rename/modal.js.map +1 -0
  27. package/build/components/block-rename/rename-control.js +74 -0
  28. package/build/components/block-rename/rename-control.js.map +1 -0
  29. package/build/components/block-rename/use-block-rename.js +17 -0
  30. package/build/components/block-rename/use-block-rename.js.map +1 -0
  31. package/build/components/block-settings-menu/block-settings-dropdown.js +33 -20
  32. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  33. package/build/components/block-settings-menu-controls/index.js +7 -0
  34. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  35. package/build/components/block-styles/index.js +0 -8
  36. package/build/components/block-styles/index.js.map +1 -1
  37. package/build/components/block-switcher/pattern-transformations-menu.js +18 -14
  38. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  39. package/build/components/block-toolbar/block-toolbar-menu.native.js +1 -1
  40. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  41. package/build/components/block-tools/back-compat.js +2 -2
  42. package/build/components/block-tools/back-compat.js.map +1 -1
  43. package/build/components/block-tools/block-contextual-toolbar.js +11 -81
  44. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  45. package/build/components/block-tools/empty-block-inserter.js +56 -0
  46. package/build/components/block-tools/empty-block-inserter.js.map +1 -0
  47. package/build/components/block-tools/index.js +48 -9
  48. package/build/components/block-tools/index.js.map +1 -1
  49. package/build/components/block-tools/selected-block-tools.js +113 -0
  50. package/build/components/block-tools/selected-block-tools.js.map +1 -0
  51. package/build/components/block-tools/use-selected-block-tool-props.js +56 -0
  52. package/build/components/block-tools/use-selected-block-tool-props.js.map +1 -0
  53. package/build/components/block-types-list/index.js +6 -2
  54. package/build/components/block-types-list/index.js.map +1 -1
  55. package/build/components/date-format-picker/index.js +8 -1
  56. package/build/components/date-format-picker/index.js.map +1 -1
  57. package/build/components/editable-text/index.js +1 -2
  58. package/build/components/editable-text/index.js.map +1 -1
  59. package/build/components/global-styles/advanced-panel.js +1 -1
  60. package/build/components/global-styles/advanced-panel.js.map +1 -1
  61. package/build/components/iframe/index.js +4 -3
  62. package/build/components/iframe/index.js.map +1 -1
  63. package/build/components/image-size-control/index.js +0 -5
  64. package/build/components/image-size-control/index.js.map +1 -1
  65. package/build/components/inner-blocks/index.js +3 -1
  66. package/build/components/inner-blocks/index.js.map +1 -1
  67. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js +29 -31
  68. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  69. package/build/components/inserter/block-patterns-explorer/{explorer.js → index.js} +7 -7
  70. package/build/components/inserter/block-patterns-explorer/index.js.map +1 -0
  71. package/build/components/inserter/block-patterns-explorer/{sidebar.js → pattern-explorer-sidebar.js} +1 -1
  72. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -0
  73. package/build/components/inserter/block-patterns-explorer/{patterns-list.js → pattern-list.js} +4 -4
  74. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -0
  75. package/build/components/inserter/block-patterns-tab/index.js +75 -0
  76. package/build/components/inserter/block-patterns-tab/index.js.map +1 -0
  77. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +48 -0
  78. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -0
  79. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +108 -0
  80. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -0
  81. package/build/components/inserter/{block-patterns-filter.js → block-patterns-tab/patterns-filter.js} +18 -34
  82. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -0
  83. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +55 -0
  84. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -0
  85. package/build/components/inserter/block-patterns-tab/utils.js +69 -0
  86. package/build/components/inserter/block-patterns-tab/utils.js.map +1 -0
  87. package/build/components/inserter/hooks/use-patterns-state.js +2 -1
  88. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  89. package/build/components/inserter/media-tab/media-list.js +9 -5
  90. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  91. package/build/components/inserter/media-tab/media-preview.js +15 -12
  92. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  93. package/build/components/inserter/menu.js +3 -4
  94. package/build/components/inserter/menu.js.map +1 -1
  95. package/build/components/inserter-listbox/index.js +11 -6
  96. package/build/components/inserter-listbox/index.js.map +1 -1
  97. package/build/components/inserter-listbox/item.js +24 -23
  98. package/build/components/inserter-listbox/item.js.map +1 -1
  99. package/build/components/inserter-listbox/row.js +5 -5
  100. package/build/components/inserter-listbox/row.js.map +1 -1
  101. package/build/components/link-control/index.js +6 -5
  102. package/build/components/link-control/index.js.map +1 -1
  103. package/build/components/list-view/block-select-button.js +39 -0
  104. package/build/components/list-view/block-select-button.js.map +1 -1
  105. package/build/components/list-view/block.js +16 -3
  106. package/build/components/list-view/block.js.map +1 -1
  107. package/build/components/list-view/index.js +3 -2
  108. package/build/components/list-view/index.js.map +1 -1
  109. package/build/components/list-view/use-list-view-expand-selected-item.js +2 -3
  110. package/build/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  111. package/build/components/navigable-toolbar/index.js +69 -18
  112. package/build/components/navigable-toolbar/index.js.map +1 -1
  113. package/build/components/preview-options/index.js +4 -2
  114. package/build/components/preview-options/index.js.map +1 -1
  115. package/build/components/provider/use-block-sync.js +1 -14
  116. package/build/components/provider/use-block-sync.js.map +1 -1
  117. package/build/components/rich-text/index.js +0 -1
  118. package/build/components/rich-text/index.js.map +1 -1
  119. package/build/components/rich-text/index.native.js +4 -2
  120. package/build/components/rich-text/index.native.js.map +1 -1
  121. package/build/components/rich-text/native/format-edit.js +45 -0
  122. package/build/components/rich-text/native/format-edit.js.map +1 -0
  123. package/build/components/rich-text/native/get-format-colors.native.js +41 -0
  124. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -0
  125. package/build/components/rich-text/native/index.js +9 -0
  126. package/build/components/rich-text/native/index.js.map +1 -0
  127. package/build/components/rich-text/native/index.native.js +1189 -0
  128. package/build/components/rich-text/native/index.native.js.map +1 -0
  129. package/build/components/rich-text/native/toolbar-button-with-options.native.js +58 -0
  130. package/build/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -0
  131. package/build/components/rich-text/native/use-format-types.js +111 -0
  132. package/build/components/rich-text/native/use-format-types.js.map +1 -0
  133. package/build/components/rich-text/use-input-rules.js +30 -1
  134. package/build/components/rich-text/use-input-rules.js.map +1 -1
  135. package/build/components/rich-text/use-paste-handler.js +2 -5
  136. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  137. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  138. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  139. package/build/components/url-popover/image-url-input-ui.js +2 -1
  140. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  141. package/build/components/use-block-drop-zone/index.js +4 -1
  142. package/build/components/use-block-drop-zone/index.js.map +1 -1
  143. package/build/components/use-moving-animation/index.js +2 -1
  144. package/build/components/use-moving-animation/index.js.map +1 -1
  145. package/build/components/use-settings/index.js +2 -2
  146. package/build/components/use-settings/index.js.map +1 -1
  147. package/build/components/writing-flow/use-tab-nav.js +7 -3
  148. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  149. package/build/hooks/align.js +10 -10
  150. package/build/hooks/align.js.map +1 -1
  151. package/build/hooks/align.native.js +2 -2
  152. package/build/hooks/align.native.js.map +1 -1
  153. package/build/hooks/anchor.js +7 -6
  154. package/build/hooks/anchor.js.map +1 -1
  155. package/build/hooks/background.js +16 -4
  156. package/build/hooks/background.js.map +1 -1
  157. package/build/hooks/block-hooks.js +7 -8
  158. package/build/hooks/block-hooks.js.map +1 -1
  159. package/build/hooks/block-renaming.js +42 -0
  160. package/build/hooks/block-renaming.js.map +1 -1
  161. package/build/hooks/content-lock-ui.js +5 -5
  162. package/build/hooks/content-lock-ui.js.map +1 -1
  163. package/build/hooks/custom-class-name.js +8 -7
  164. package/build/hooks/custom-class-name.js.map +1 -1
  165. package/build/hooks/custom-fields.js +57 -52
  166. package/build/hooks/custom-fields.js.map +1 -1
  167. package/build/hooks/duotone.js +9 -20
  168. package/build/hooks/duotone.js.map +1 -1
  169. package/build/hooks/index.js +0 -1
  170. package/build/hooks/index.js.map +1 -1
  171. package/build/hooks/layout.js +103 -93
  172. package/build/hooks/layout.js.map +1 -1
  173. package/build/hooks/position.js +10 -9
  174. package/build/hooks/position.js.map +1 -1
  175. package/build/hooks/style.js +10 -13
  176. package/build/hooks/style.js.map +1 -1
  177. package/build/hooks/utils.js +30 -0
  178. package/build/hooks/utils.js.map +1 -1
  179. package/build/layouts/constrained.js +4 -3
  180. package/build/layouts/constrained.js.map +1 -1
  181. package/build/private-apis.js +3 -0
  182. package/build/private-apis.js.map +1 -1
  183. package/build/store/actions.js +30 -37
  184. package/build/store/actions.js.map +1 -1
  185. package/build/store/reducer.js +18 -0
  186. package/build/store/reducer.js.map +1 -1
  187. package/build/store/selectors.js +18 -13
  188. package/build/store/selectors.js.map +1 -1
  189. package/build/utils/transform-styles/index.js +26 -6
  190. package/build/utils/transform-styles/index.js.map +1 -1
  191. package/build-module/components/block-heading-level-dropdown/index.js +1 -1
  192. package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
  193. package/build-module/components/block-list/block.native.js +2 -0
  194. package/build-module/components/block-list/block.native.js.map +1 -1
  195. package/build-module/components/block-list/index.js +3 -10
  196. package/build-module/components/block-list/index.js.map +1 -1
  197. package/build-module/components/block-list-appender/index.js +16 -3
  198. package/build-module/components/block-list-appender/index.js.map +1 -1
  199. package/build-module/components/block-parent-selector/index.js +1 -1
  200. package/build-module/components/block-parent-selector/index.js.map +1 -1
  201. package/build-module/components/block-pattern-setup/index.js +24 -15
  202. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  203. package/build-module/components/block-pattern-setup/setup-toolbar.js +4 -2
  204. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  205. package/build-module/components/block-patterns-list/index.js +36 -19
  206. package/build-module/components/block-patterns-list/index.js.map +1 -1
  207. package/build-module/components/block-quick-navigation/index.js +7 -5
  208. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  209. package/build-module/components/block-rename/index.js +4 -0
  210. package/build-module/components/block-rename/index.js.map +1 -0
  211. package/build-module/components/block-rename/is-empty-string.js +4 -0
  212. package/build-module/components/block-rename/is-empty-string.js.map +1 -0
  213. package/build-module/components/block-rename/modal.js +79 -0
  214. package/build-module/components/block-rename/modal.js.map +1 -0
  215. package/build-module/components/block-rename/rename-control.js +66 -0
  216. package/build-module/components/block-rename/rename-control.js.map +1 -0
  217. package/build-module/components/block-rename/use-block-rename.js +10 -0
  218. package/build-module/components/block-rename/use-block-rename.js.map +1 -0
  219. package/build-module/components/block-settings-menu/block-settings-dropdown.js +34 -21
  220. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  221. package/build-module/components/block-settings-menu-controls/index.js +7 -0
  222. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  223. package/build-module/components/block-styles/index.js +0 -8
  224. package/build-module/components/block-styles/index.js.map +1 -1
  225. package/build-module/components/block-switcher/pattern-transformations-menu.js +17 -13
  226. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  227. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +1 -1
  228. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  229. package/build-module/components/block-tools/back-compat.js +1 -1
  230. package/build-module/components/block-tools/back-compat.js.map +1 -1
  231. package/build-module/components/block-tools/block-contextual-toolbar.js +11 -80
  232. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  233. package/build-module/components/block-tools/empty-block-inserter.js +48 -0
  234. package/build-module/components/block-tools/empty-block-inserter.js.map +1 -0
  235. package/build-module/components/block-tools/index.js +48 -9
  236. package/build-module/components/block-tools/index.js.map +1 -1
  237. package/build-module/components/block-tools/selected-block-tools.js +105 -0
  238. package/build-module/components/block-tools/selected-block-tools.js.map +1 -0
  239. package/build-module/components/block-tools/use-selected-block-tool-props.js +50 -0
  240. package/build-module/components/block-tools/use-selected-block-tool-props.js.map +1 -0
  241. package/build-module/components/block-types-list/index.js +6 -2
  242. package/build-module/components/block-types-list/index.js.map +1 -1
  243. package/build-module/components/date-format-picker/index.js +8 -1
  244. package/build-module/components/date-format-picker/index.js.map +1 -1
  245. package/build-module/components/editable-text/index.js +1 -2
  246. package/build-module/components/editable-text/index.js.map +1 -1
  247. package/build-module/components/global-styles/advanced-panel.js +1 -1
  248. package/build-module/components/global-styles/advanced-panel.js.map +1 -1
  249. package/build-module/components/iframe/index.js +4 -3
  250. package/build-module/components/iframe/index.js.map +1 -1
  251. package/build-module/components/image-size-control/index.js +0 -5
  252. package/build-module/components/image-size-control/index.js.map +1 -1
  253. package/build-module/components/inner-blocks/index.js +3 -1
  254. package/build-module/components/inner-blocks/index.js.map +1 -1
  255. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js +30 -32
  256. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  257. package/build-module/components/inserter/block-patterns-explorer/{explorer.js → index.js} +5 -5
  258. package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -0
  259. package/build-module/components/inserter/block-patterns-explorer/{sidebar.js → pattern-explorer-sidebar.js} +1 -1
  260. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -0
  261. package/build-module/components/inserter/block-patterns-explorer/{patterns-list.js → pattern-list.js} +3 -3
  262. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -0
  263. package/build-module/components/inserter/block-patterns-tab/index.js +66 -0
  264. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -0
  265. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +42 -0
  266. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -0
  267. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +100 -0
  268. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -0
  269. package/build-module/components/inserter/{block-patterns-filter.js → block-patterns-tab/patterns-filter.js} +7 -20
  270. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -0
  271. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +47 -0
  272. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -0
  273. package/build-module/components/inserter/block-patterns-tab/utils.js +57 -0
  274. package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -0
  275. package/build-module/components/inserter/hooks/use-patterns-state.js +2 -1
  276. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  277. package/build-module/components/inserter/media-tab/media-list.js +9 -5
  278. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  279. package/build-module/components/inserter/media-tab/media-preview.js +15 -12
  280. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  281. package/build-module/components/inserter/menu.js +4 -3
  282. package/build-module/components/inserter/menu.js.map +1 -1
  283. package/build-module/components/inserter-listbox/index.js +13 -8
  284. package/build-module/components/inserter-listbox/index.js.map +1 -1
  285. package/build-module/components/inserter-listbox/item.js +25 -23
  286. package/build-module/components/inserter-listbox/item.js.map +1 -1
  287. package/build-module/components/inserter-listbox/row.js +6 -5
  288. package/build-module/components/inserter-listbox/row.js.map +1 -1
  289. package/build-module/components/link-control/index.js +7 -6
  290. package/build-module/components/link-control/index.js.map +1 -1
  291. package/build-module/components/list-view/block-select-button.js +39 -0
  292. package/build-module/components/list-view/block-select-button.js.map +1 -1
  293. package/build-module/components/list-view/block.js +16 -3
  294. package/build-module/components/list-view/block.js.map +1 -1
  295. package/build-module/components/list-view/index.js +3 -2
  296. package/build-module/components/list-view/index.js.map +1 -1
  297. package/build-module/components/list-view/use-list-view-expand-selected-item.js +2 -3
  298. package/build-module/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  299. package/build-module/components/navigable-toolbar/index.js +69 -17
  300. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  301. package/build-module/components/preview-options/index.js +4 -2
  302. package/build-module/components/preview-options/index.js.map +1 -1
  303. package/build-module/components/provider/use-block-sync.js +1 -14
  304. package/build-module/components/provider/use-block-sync.js.map +1 -1
  305. package/build-module/components/rich-text/index.js +0 -1
  306. package/build-module/components/rich-text/index.js.map +1 -1
  307. package/build-module/components/rich-text/index.native.js +4 -2
  308. package/build-module/components/rich-text/index.native.js.map +1 -1
  309. package/build-module/components/rich-text/native/format-edit.js +38 -0
  310. package/build-module/components/rich-text/native/format-edit.js.map +1 -0
  311. package/build-module/components/rich-text/native/get-format-colors.native.js +34 -0
  312. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -0
  313. package/build-module/components/rich-text/native/index.js +2 -0
  314. package/build-module/components/rich-text/native/index.js.map +1 -0
  315. package/build-module/components/rich-text/native/index.native.js +1179 -0
  316. package/build-module/components/rich-text/native/index.native.js.map +1 -0
  317. package/build-module/components/rich-text/native/toolbar-button-with-options.native.js +51 -0
  318. package/build-module/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -0
  319. package/build-module/components/rich-text/native/use-format-types.js +104 -0
  320. package/build-module/components/rich-text/native/use-format-types.js.map +1 -0
  321. package/build-module/components/rich-text/use-input-rules.js +31 -2
  322. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  323. package/build-module/components/rich-text/use-paste-handler.js +2 -5
  324. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  325. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  326. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  327. package/build-module/components/url-popover/image-url-input-ui.js +2 -1
  328. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  329. package/build-module/components/use-block-drop-zone/index.js +4 -1
  330. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  331. package/build-module/components/use-moving-animation/index.js +2 -1
  332. package/build-module/components/use-moving-animation/index.js.map +1 -1
  333. package/build-module/components/use-settings/index.js +2 -2
  334. package/build-module/components/use-settings/index.js.map +1 -1
  335. package/build-module/components/writing-flow/use-tab-nav.js +7 -3
  336. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  337. package/build-module/hooks/align.js +8 -8
  338. package/build-module/hooks/align.js.map +1 -1
  339. package/build-module/hooks/align.native.js +2 -2
  340. package/build-module/hooks/align.native.js.map +1 -1
  341. package/build-module/hooks/anchor.js +5 -4
  342. package/build-module/hooks/anchor.js.map +1 -1
  343. package/build-module/hooks/background.js +17 -5
  344. package/build-module/hooks/background.js.map +1 -1
  345. package/build-module/hooks/block-hooks.js +5 -6
  346. package/build-module/hooks/block-hooks.js.map +1 -1
  347. package/build-module/hooks/block-renaming.js +40 -0
  348. package/build-module/hooks/block-renaming.js.map +1 -1
  349. package/build-module/hooks/content-lock-ui.js +3 -3
  350. package/build-module/hooks/content-lock-ui.js.map +1 -1
  351. package/build-module/hooks/custom-class-name.js +6 -5
  352. package/build-module/hooks/custom-class-name.js.map +1 -1
  353. package/build-module/hooks/custom-fields.js +57 -52
  354. package/build-module/hooks/custom-fields.js.map +1 -1
  355. package/build-module/hooks/duotone.js +10 -21
  356. package/build-module/hooks/duotone.js.map +1 -1
  357. package/build-module/hooks/index.js +0 -1
  358. package/build-module/hooks/index.js.map +1 -1
  359. package/build-module/hooks/layout.js +103 -93
  360. package/build-module/hooks/layout.js.map +1 -1
  361. package/build-module/hooks/position.js +11 -10
  362. package/build-module/hooks/position.js.map +1 -1
  363. package/build-module/hooks/style.js +10 -13
  364. package/build-module/hooks/style.js.map +1 -1
  365. package/build-module/hooks/utils.js +30 -1
  366. package/build-module/hooks/utils.js.map +1 -1
  367. package/build-module/layouts/constrained.js +4 -3
  368. package/build-module/layouts/constrained.js.map +1 -1
  369. package/build-module/private-apis.js +4 -1
  370. package/build-module/private-apis.js.map +1 -1
  371. package/build-module/store/actions.js +29 -37
  372. package/build-module/store/actions.js.map +1 -1
  373. package/build-module/store/reducer.js +17 -0
  374. package/build-module/store/reducer.js.map +1 -1
  375. package/build-module/store/selectors.js +17 -13
  376. package/build-module/store/selectors.js.map +1 -1
  377. package/build-module/utils/transform-styles/index.js +24 -7
  378. package/build-module/utils/transform-styles/index.js.map +1 -1
  379. package/build-style/content-rtl.css +6 -6
  380. package/build-style/content.css +6 -6
  381. package/build-style/style-rtl.css +26 -20
  382. package/build-style/style.css +26 -20
  383. package/package.json +31 -31
  384. package/src/components/block-heading-level-dropdown/index.js +1 -1
  385. package/src/components/block-list/block.native.js +2 -0
  386. package/src/components/block-list/index.js +4 -18
  387. package/src/components/block-list-appender/index.js +20 -4
  388. package/src/components/block-parent-selector/index.js +1 -1
  389. package/src/components/block-pattern-setup/index.js +38 -22
  390. package/src/components/block-pattern-setup/setup-toolbar.js +2 -0
  391. package/src/components/block-pattern-setup/style.scss +4 -1
  392. package/src/components/block-patterns-list/README.md +4 -4
  393. package/src/components/block-patterns-list/index.js +60 -34
  394. package/src/components/block-patterns-list/style.scss +7 -0
  395. package/src/components/block-quick-navigation/index.js +11 -5
  396. package/src/components/block-rename/index.js +3 -0
  397. package/src/components/block-rename/is-empty-string.js +3 -0
  398. package/src/components/block-rename/modal.js +115 -0
  399. package/src/components/block-rename/rename-control.js +80 -0
  400. package/src/components/block-rename/use-block-rename.js +10 -0
  401. package/src/components/block-settings-menu/block-settings-dropdown.js +38 -34
  402. package/src/components/block-settings-menu-controls/index.js +9 -0
  403. package/src/components/block-styles/index.js +0 -10
  404. package/src/components/block-switcher/pattern-transformations-menu.js +20 -14
  405. package/src/components/block-toolbar/block-toolbar-menu.native.js +1 -4
  406. package/src/components/block-toolbar/style.scss +8 -0
  407. package/src/components/block-tools/back-compat.js +1 -1
  408. package/src/components/block-tools/block-contextual-toolbar.js +11 -134
  409. package/src/components/block-tools/empty-block-inserter.js +56 -0
  410. package/src/components/block-tools/index.js +72 -16
  411. package/src/components/block-tools/selected-block-tools.js +127 -0
  412. package/src/components/block-tools/style.scss +0 -10
  413. package/src/components/block-tools/use-selected-block-tool-props.js +66 -0
  414. package/src/components/block-types-list/index.js +5 -4
  415. package/src/components/button-block-appender/content.scss +2 -2
  416. package/src/components/date-format-picker/index.js +7 -0
  417. package/src/components/editable-text/README.md +0 -36
  418. package/src/components/editable-text/index.js +1 -8
  419. package/src/components/global-styles/advanced-panel.js +1 -1
  420. package/src/components/iframe/index.js +4 -3
  421. package/src/components/image-size-control/index.js +0 -6
  422. package/src/components/inner-blocks/index.js +6 -2
  423. package/src/components/inner-blocks/warning-max-depth-exceeded.native.js +57 -33
  424. package/src/components/inserter/block-patterns-explorer/{explorer.js → index.js} +4 -4
  425. package/src/components/inserter/block-patterns-explorer/{patterns-list.js → pattern-list.js} +9 -2
  426. package/src/components/inserter/block-patterns-tab/index.js +118 -0
  427. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +48 -0
  428. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +179 -0
  429. package/src/components/inserter/{block-patterns-filter.js → block-patterns-tab/patterns-filter.js} +15 -21
  430. package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +101 -0
  431. package/src/components/inserter/block-patterns-tab/utils.js +78 -0
  432. package/src/components/inserter/hooks/use-patterns-state.js +3 -1
  433. package/src/components/inserter/media-tab/media-list.js +7 -7
  434. package/src/components/inserter/media-tab/media-preview.js +27 -22
  435. package/src/components/inserter/menu.js +4 -5
  436. package/src/components/inserter-listbox/index.js +11 -7
  437. package/src/components/inserter-listbox/item.js +11 -12
  438. package/src/components/inserter-listbox/row.js +6 -12
  439. package/src/components/link-control/README.md +2 -2
  440. package/src/components/link-control/index.js +15 -6
  441. package/src/components/link-control/style.scss +8 -5
  442. package/src/components/list-view/block-select-button.js +44 -1
  443. package/src/components/list-view/block.js +11 -11
  444. package/src/components/list-view/index.js +2 -0
  445. package/src/components/list-view/use-list-view-expand-selected-item.js +7 -8
  446. package/src/components/media-replace-flow/style.scss +2 -2
  447. package/src/components/navigable-toolbar/index.js +71 -25
  448. package/src/components/plain-text/README.md +2 -30
  449. package/src/components/preview-options/index.js +2 -0
  450. package/src/components/provider/use-block-sync.js +2 -21
  451. package/src/components/rich-text/README.md +6 -63
  452. package/src/components/rich-text/index.js +0 -1
  453. package/src/components/rich-text/index.native.js +4 -2
  454. package/src/components/rich-text/native/format-edit.js +44 -0
  455. package/src/components/rich-text/native/get-format-colors.native.js +54 -0
  456. package/src/components/rich-text/native/index.js +1 -0
  457. package/src/components/rich-text/native/index.native.js +1406 -0
  458. package/src/components/rich-text/native/style.native.scss +28 -0
  459. package/src/components/rich-text/native/test/__snapshots__/index.native.js.snap +79 -0
  460. package/src/components/rich-text/native/test/index.native.js +278 -0
  461. package/src/components/rich-text/native/test/performance/rich-text.native.js +44 -0
  462. package/src/components/rich-text/native/toolbar-button-with-options.native.js +61 -0
  463. package/src/components/rich-text/native/use-format-types.js +146 -0
  464. package/src/components/rich-text/use-input-rules.js +30 -2
  465. package/src/components/rich-text/use-paste-handler.js +1 -6
  466. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  467. package/src/components/url-input/README.md +1 -74
  468. package/src/components/url-popover/image-url-input-ui.js +1 -0
  469. package/src/components/use-block-drop-zone/index.js +4 -1
  470. package/src/components/use-moving-animation/index.js +1 -1
  471. package/src/components/use-settings/index.js +2 -2
  472. package/src/components/use-settings/test/index.js +1 -1
  473. package/src/components/writing-flow/use-tab-nav.js +8 -3
  474. package/src/hooks/align.js +8 -8
  475. package/src/hooks/align.native.js +2 -2
  476. package/src/hooks/anchor.js +21 -23
  477. package/src/hooks/background.js +28 -6
  478. package/src/hooks/block-hooks.js +20 -16
  479. package/src/hooks/block-renaming.js +47 -0
  480. package/src/hooks/content-lock-ui.js +3 -3
  481. package/src/hooks/custom-class-name.js +7 -6
  482. package/src/hooks/custom-fields.js +73 -70
  483. package/src/hooks/duotone.js +23 -33
  484. package/src/hooks/index.js +0 -1
  485. package/src/hooks/layout.js +126 -113
  486. package/src/hooks/position.js +8 -21
  487. package/src/hooks/style.js +17 -31
  488. package/src/hooks/test/__snapshots__/align.native.js.snap +5 -5
  489. package/src/hooks/test/align.js +4 -4
  490. package/src/hooks/utils.js +33 -1
  491. package/src/layouts/constrained.js +57 -50
  492. package/src/private-apis.js +4 -1
  493. package/src/store/actions.js +26 -72
  494. package/src/store/reducer.js +19 -0
  495. package/src/store/selectors.js +15 -19
  496. package/src/style.scss +1 -1
  497. package/src/utils/test/transform-styles.js +49 -0
  498. package/src/utils/transform-styles/index.js +39 -13
  499. package/build/components/block-tools/selected-block-popover.js +0 -221
  500. package/build/components/block-tools/selected-block-popover.js.map +0 -1
  501. package/build/components/inserter/block-patterns-explorer/explorer.js.map +0 -1
  502. package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +0 -1
  503. package/build/components/inserter/block-patterns-explorer/sidebar.js.map +0 -1
  504. package/build/components/inserter/block-patterns-filter.js.map +0 -1
  505. package/build/components/inserter/block-patterns-tab.js +0 -270
  506. package/build/components/inserter/block-patterns-tab.js.map +0 -1
  507. package/build/hooks/block-rename-ui.js +0 -165
  508. package/build/hooks/block-rename-ui.js.map +0 -1
  509. package/build/store/utils.js +0 -22
  510. package/build/store/utils.js.map +0 -1
  511. package/build-module/components/block-tools/selected-block-popover.js +0 -213
  512. package/build-module/components/block-tools/selected-block-popover.js.map +0 -1
  513. package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +0 -1
  514. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +0 -1
  515. package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +0 -1
  516. package/build-module/components/inserter/block-patterns-filter.js.map +0 -1
  517. package/build-module/components/inserter/block-patterns-tab.js +0 -254
  518. package/build-module/components/inserter/block-patterns-tab.js.map +0 -1
  519. package/build-module/hooks/block-rename-ui.js +0 -157
  520. package/build-module/hooks/block-rename-ui.js.map +0 -1
  521. package/build-module/store/utils.js +0 -16
  522. package/build-module/store/utils.js.map +0 -1
  523. package/src/components/block-tools/selected-block-popover.js +0 -265
  524. package/src/components/inserter/block-patterns-tab.js +0 -448
  525. package/src/hooks/block-rename-ui.js +0 -226
  526. package/src/store/utils.js +0 -12
  527. /package/src/{hooks/block-rename-ui.scss → components/block-rename/style.scss} +0 -0
  528. /package/src/components/inserter/block-patterns-explorer/{sidebar.js → pattern-explorer-sidebar.js} +0 -0
@@ -1,270 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.BlockPatternsCategoryDialog = BlockPatternsCategoryDialog;
8
- exports.BlockPatternsCategoryPanel = BlockPatternsCategoryPanel;
9
- exports.default = exports.allPatternsCategory = void 0;
10
- exports.isPatternFiltered = isPatternFiltered;
11
- exports.myPatternsCategory = void 0;
12
- exports.usePatternsCategories = usePatternsCategories;
13
- var _react = require("react");
14
- var _element = require("@wordpress/element");
15
- var _i18n = require("@wordpress/i18n");
16
- var _compose = require("@wordpress/compose");
17
- var _components = require("@wordpress/components");
18
- var _icons = require("@wordpress/icons");
19
- var _dom = require("@wordpress/dom");
20
- var _a11y = require("@wordpress/a11y");
21
- var _usePatternsState = _interopRequireDefault(require("./hooks/use-patterns-state"));
22
- var _blockPatternsList = _interopRequireDefault(require("../block-patterns-list"));
23
- var _explorer = _interopRequireDefault(require("./block-patterns-explorer/explorer"));
24
- var _mobileTabNavigation = _interopRequireDefault(require("./mobile-tab-navigation"));
25
- var _usePatternsPaging = _interopRequireDefault(require("./hooks/use-patterns-paging"));
26
- var _blockPatternsFilter = require("./block-patterns-filter");
27
- /**
28
- * WordPress dependencies
29
- */
30
-
31
- /**
32
- * Internal dependencies
33
- */
34
-
35
- const noop = () => {};
36
- const allPatternsCategory = {
37
- name: 'allPatterns',
38
- label: (0, _i18n.__)('All patterns')
39
- };
40
- exports.allPatternsCategory = allPatternsCategory;
41
- const myPatternsCategory = {
42
- name: 'myPatterns',
43
- label: (0, _i18n.__)('My patterns')
44
- };
45
- exports.myPatternsCategory = myPatternsCategory;
46
- function isPatternFiltered(pattern, sourceFilter, syncFilter) {
47
- const isUserPattern = pattern.name.startsWith('core/block');
48
- const isDirectoryPattern = pattern.source === 'core' || pattern.source?.startsWith('pattern-directory');
49
-
50
- // If theme source selected, filter out user created patterns and those from
51
- // the core patterns directory.
52
- if (sourceFilter === _blockPatternsFilter.PATTERN_TYPES.theme && (isUserPattern || isDirectoryPattern)) {
53
- return true;
54
- }
55
-
56
- // If the directory source is selected, filter out user created patterns
57
- // and those bundled with the theme.
58
- if (sourceFilter === _blockPatternsFilter.PATTERN_TYPES.directory && (isUserPattern || !isDirectoryPattern)) {
59
- return true;
60
- }
61
-
62
- // If user source selected, filter out theme patterns. Any pattern without
63
- // an id wasn't created by a user.
64
- if (sourceFilter === _blockPatternsFilter.PATTERN_TYPES.user && !pattern.id) {
65
- return true;
66
- }
67
-
68
- // Filter by sync status.
69
- if (syncFilter === _blockPatternsFilter.SYNC_TYPES.full && pattern.syncStatus !== '') {
70
- return true;
71
- }
72
- if (syncFilter === _blockPatternsFilter.SYNC_TYPES.unsynced && pattern.syncStatus !== 'unsynced' && isUserPattern) {
73
- return true;
74
- }
75
- return false;
76
- }
77
- function usePatternsCategories(rootClientId, sourceFilter = 'all') {
78
- const [patterns, allCategories] = (0, _usePatternsState.default)(undefined, rootClientId);
79
- const filteredPatterns = (0, _element.useMemo)(() => sourceFilter === 'all' ? patterns : patterns.filter(pattern => !isPatternFiltered(pattern, sourceFilter)), [sourceFilter, patterns]);
80
- const hasRegisteredCategory = (0, _element.useCallback)(pattern => {
81
- if (!pattern.categories || !pattern.categories.length) {
82
- return false;
83
- }
84
- return pattern.categories.some(cat => allCategories.some(category => category.name === cat));
85
- }, [allCategories]);
86
-
87
- // Remove any empty categories.
88
- const populatedCategories = (0, _element.useMemo)(() => {
89
- const categories = allCategories.filter(category => filteredPatterns.some(pattern => pattern.categories?.includes(category.name))).sort((a, b) => a.label.localeCompare(b.label));
90
- if (filteredPatterns.some(pattern => !hasRegisteredCategory(pattern)) && !categories.find(category => category.name === 'uncategorized')) {
91
- categories.push({
92
- name: 'uncategorized',
93
- label: (0, _i18n._x)('Uncategorized')
94
- });
95
- }
96
- if (filteredPatterns.some(pattern => pattern.id)) {
97
- categories.unshift(myPatternsCategory);
98
- }
99
- if (filteredPatterns.length > 0) {
100
- categories.unshift({
101
- name: allPatternsCategory.name,
102
- label: allPatternsCategory.label
103
- });
104
- }
105
- (0, _a11y.speak)((0, _i18n.sprintf)( /* translators: %d: number of categories . */
106
- (0, _i18n._n)('%d category button displayed.', '%d category buttons displayed.', categories.length), categories.length));
107
- return categories;
108
- }, [allCategories, filteredPatterns, hasRegisteredCategory]);
109
- return populatedCategories;
110
- }
111
- function BlockPatternsCategoryDialog({
112
- rootClientId,
113
- onInsert,
114
- onHover,
115
- category,
116
- showTitlesAsTooltip,
117
- patternFilter
118
- }) {
119
- const container = (0, _element.useRef)();
120
- (0, _element.useEffect)(() => {
121
- const timeout = setTimeout(() => {
122
- const [firstTabbable] = _dom.focus.tabbable.find(container.current);
123
- firstTabbable?.focus();
124
- });
125
- return () => clearTimeout(timeout);
126
- }, [category]);
127
- return (0, _react.createElement)("div", {
128
- ref: container,
129
- className: "block-editor-inserter__patterns-category-dialog"
130
- }, (0, _react.createElement)(BlockPatternsCategoryPanel, {
131
- key: category.name,
132
- rootClientId: rootClientId,
133
- onInsert: onInsert,
134
- onHover: onHover,
135
- category: category,
136
- showTitlesAsTooltip: showTitlesAsTooltip,
137
- patternFilter: patternFilter
138
- }));
139
- }
140
- function BlockPatternsCategoryPanel({
141
- rootClientId,
142
- onInsert,
143
- onHover = noop,
144
- category,
145
- showTitlesAsTooltip
146
- }) {
147
- const [allPatterns,, onClickPattern] = (0, _usePatternsState.default)(onInsert, rootClientId);
148
- const [patternSyncFilter, setPatternSyncFilter] = (0, _element.useState)('all');
149
- const [patternSourceFilter, setPatternSourceFilter] = (0, _element.useState)('all');
150
- const availableCategories = usePatternsCategories(rootClientId, patternSourceFilter);
151
- const scrollContainerRef = (0, _element.useRef)();
152
- const currentCategoryPatterns = (0, _element.useMemo)(() => allPatterns.filter(pattern => {
153
- var _pattern$categories$f;
154
- if (isPatternFiltered(pattern, patternSourceFilter, patternSyncFilter)) {
155
- return false;
156
- }
157
- if (category.name === allPatternsCategory.name) {
158
- return true;
159
- }
160
- if (category.name === myPatternsCategory.name && pattern.id) {
161
- return true;
162
- }
163
- if (category.name !== 'uncategorized') {
164
- return pattern.categories?.includes(category.name);
165
- }
166
-
167
- // The uncategorized category should show all the patterns without any category
168
- // or with no available category.
169
- const availablePatternCategories = (_pattern$categories$f = pattern.categories?.filter(cat => availableCategories.find(availableCategory => availableCategory.name === cat))) !== null && _pattern$categories$f !== void 0 ? _pattern$categories$f : [];
170
- return availablePatternCategories.length === 0;
171
- }), [allPatterns, availableCategories, category.name, patternSourceFilter, patternSyncFilter]);
172
- const pagingProps = (0, _usePatternsPaging.default)(currentCategoryPatterns, category, scrollContainerRef);
173
- const {
174
- changePage
175
- } = pagingProps;
176
-
177
- // Hide block pattern preview on unmount.
178
- // eslint-disable-next-line react-hooks/exhaustive-deps
179
- (0, _element.useEffect)(() => () => onHover(null), []);
180
- const onSetPatternSyncFilter = (0, _element.useCallback)(value => {
181
- setPatternSyncFilter(value);
182
- changePage(1);
183
- }, [setPatternSyncFilter, changePage]);
184
- const onSetPatternSourceFilter = (0, _element.useCallback)(value => {
185
- setPatternSourceFilter(value);
186
- changePage(1);
187
- }, [setPatternSourceFilter, changePage]);
188
- return (0, _react.createElement)("div", {
189
- className: "block-editor-inserter__patterns-category-panel"
190
- }, (0, _react.createElement)(_components.__experimentalVStack, {
191
- spacing: 2,
192
- className: "block-editor-inserter__patterns-category-panel-header"
193
- }, (0, _react.createElement)(_components.__experimentalHStack, null, (0, _react.createElement)(_components.FlexBlock, null, (0, _react.createElement)(_components.__experimentalHeading, {
194
- level: 4,
195
- as: "div"
196
- }, category.label)), (0, _react.createElement)(_blockPatternsFilter.BlockPatternsSyncFilter, {
197
- patternSyncFilter: patternSyncFilter,
198
- patternSourceFilter: patternSourceFilter,
199
- setPatternSyncFilter: onSetPatternSyncFilter,
200
- setPatternSourceFilter: onSetPatternSourceFilter,
201
- scrollContainerRef: scrollContainerRef,
202
- category: category
203
- })), !currentCategoryPatterns.length && (0, _react.createElement)(_components.__experimentalText, {
204
- variant: "muted",
205
- className: "block-editor-inserter__patterns-category-no-results"
206
- }, (0, _i18n.__)('No results found'))), currentCategoryPatterns.length > 0 && (0, _react.createElement)(_blockPatternsList.default, {
207
- ref: scrollContainerRef,
208
- shownPatterns: pagingProps.categoryPatternsAsyncList,
209
- blockPatterns: pagingProps.categoryPatterns,
210
- onClickPattern: onClickPattern,
211
- onHover: onHover,
212
- label: category.label,
213
- orientation: "vertical",
214
- category: category.name,
215
- isDraggable: true,
216
- showTitlesAsTooltip: showTitlesAsTooltip,
217
- patternFilter: patternSourceFilter,
218
- pagingProps: pagingProps
219
- }));
220
- }
221
- function BlockPatternsTabs({
222
- onSelectCategory,
223
- selectedCategory,
224
- onInsert,
225
- rootClientId
226
- }) {
227
- const [showPatternsExplorer, setShowPatternsExplorer] = (0, _element.useState)(false);
228
- const categories = usePatternsCategories(rootClientId);
229
- const initialCategory = selectedCategory || categories[0];
230
- const isMobile = (0, _compose.useViewportMatch)('medium', '<');
231
- return (0, _react.createElement)(_react.Fragment, null, !isMobile && (0, _react.createElement)("div", {
232
- className: "block-editor-inserter__block-patterns-tabs-container"
233
- }, (0, _react.createElement)("nav", {
234
- "aria-label": (0, _i18n.__)('Block pattern categories'),
235
- className: "block-editor-inserter__block-patterns-tabs"
236
- }, (0, _react.createElement)(_components.__experimentalItemGroup, {
237
- role: "list"
238
- }, categories.map(category => (0, _react.createElement)(_components.__experimentalItem, {
239
- role: "listitem",
240
- key: category.name,
241
- onClick: () => onSelectCategory(category),
242
- className: category === selectedCategory ? 'block-editor-inserter__patterns-category block-editor-inserter__patterns-selected-category' : 'block-editor-inserter__patterns-category',
243
- "aria-label": category.label,
244
- "aria-current": category === selectedCategory ? 'true' : undefined
245
- }, (0, _react.createElement)(_components.__experimentalHStack, null, (0, _react.createElement)(_components.FlexBlock, null, category.label), (0, _react.createElement)(_icons.Icon, {
246
- icon: (0, _i18n.isRTL)() ? _icons.chevronLeft : _icons.chevronRight
247
- })))), (0, _react.createElement)("div", {
248
- role: "listitem"
249
- }, (0, _react.createElement)(_components.Button, {
250
- className: "block-editor-inserter__patterns-explore-button",
251
- onClick: () => setShowPatternsExplorer(true),
252
- variant: "secondary"
253
- }, (0, _i18n.__)('Explore all patterns')))))), isMobile && (0, _react.createElement)(_mobileTabNavigation.default, {
254
- categories: categories
255
- }, category => (0, _react.createElement)(BlockPatternsCategoryPanel, {
256
- key: category.name,
257
- onInsert: onInsert,
258
- rootClientId: rootClientId,
259
- category: category,
260
- showTitlesAsTooltip: false
261
- })), showPatternsExplorer && (0, _react.createElement)(_explorer.default, {
262
- initialCategory: initialCategory,
263
- patternCategories: categories,
264
- onModalClose: () => setShowPatternsExplorer(false),
265
- rootClientId: rootClientId
266
- }));
267
- }
268
- var _default = BlockPatternsTabs;
269
- exports.default = _default;
270
- //# sourceMappingURL=block-patterns-tab.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_element","require","_i18n","_compose","_components","_icons","_dom","_a11y","_usePatternsState","_interopRequireDefault","_blockPatternsList","_explorer","_mobileTabNavigation","_usePatternsPaging","_blockPatternsFilter","noop","allPatternsCategory","name","label","__","exports","myPatternsCategory","isPatternFiltered","pattern","sourceFilter","syncFilter","isUserPattern","startsWith","isDirectoryPattern","source","PATTERN_TYPES","theme","directory","user","id","SYNC_TYPES","full","syncStatus","unsynced","usePatternsCategories","rootClientId","patterns","allCategories","usePatternsState","undefined","filteredPatterns","useMemo","filter","hasRegisteredCategory","useCallback","categories","length","some","cat","category","populatedCategories","includes","sort","a","b","localeCompare","find","push","_x","unshift","speak","sprintf","_n","BlockPatternsCategoryDialog","onInsert","onHover","showTitlesAsTooltip","patternFilter","container","useRef","useEffect","timeout","setTimeout","firstTabbable","focus","tabbable","current","clearTimeout","_react","createElement","ref","className","BlockPatternsCategoryPanel","key","allPatterns","onClickPattern","patternSyncFilter","setPatternSyncFilter","useState","patternSourceFilter","setPatternSourceFilter","availableCategories","scrollContainerRef","currentCategoryPatterns","_pattern$categories$f","availablePatternCategories","availableCategory","pagingProps","usePatternsPaging","changePage","onSetPatternSyncFilter","value","onSetPatternSourceFilter","__experimentalVStack","spacing","__experimentalHStack","FlexBlock","__experimentalHeading","level","as","BlockPatternsSyncFilter","__experimentalText","variant","default","shownPatterns","categoryPatternsAsyncList","blockPatterns","categoryPatterns","orientation","isDraggable","BlockPatternsTabs","onSelectCategory","selectedCategory","showPatternsExplorer","setShowPatternsExplorer","initialCategory","isMobile","useViewportMatch","Fragment","__experimentalItemGroup","role","map","__experimentalItem","onClick","Icon","icon","isRTL","chevronLeft","chevronRight","Button","patternCategories","onModalClose","_default"],"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-tab.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseMemo,\n\tuseState,\n\tuseCallback,\n\tuseRef,\n\tuseEffect,\n} from '@wordpress/element';\nimport { _x, __, _n, isRTL, sprintf } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n\tFlexBlock,\n\tButton,\n} from '@wordpress/components';\nimport { Icon, chevronRight, chevronLeft } from '@wordpress/icons';\nimport { focus } from '@wordpress/dom';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport usePatternsState from './hooks/use-patterns-state';\nimport BlockPatternList from '../block-patterns-list';\nimport PatternsExplorerModal from './block-patterns-explorer/explorer';\nimport MobileTabNavigation from './mobile-tab-navigation';\nimport usePatternsPaging from './hooks/use-patterns-paging';\nimport {\n\tBlockPatternsSyncFilter,\n\tSYNC_TYPES,\n\tPATTERN_TYPES,\n} from './block-patterns-filter';\n\nconst noop = () => {};\n\nexport const allPatternsCategory = {\n\tname: 'allPatterns',\n\tlabel: __( 'All patterns' ),\n};\n\nexport const myPatternsCategory = {\n\tname: 'myPatterns',\n\tlabel: __( 'My patterns' ),\n};\n\nexport function isPatternFiltered( pattern, sourceFilter, syncFilter ) {\n\tconst isUserPattern = pattern.name.startsWith( 'core/block' );\n\tconst isDirectoryPattern =\n\t\tpattern.source === 'core' ||\n\t\tpattern.source?.startsWith( 'pattern-directory' );\n\n\t// If theme source selected, filter out user created patterns and those from\n\t// the core patterns directory.\n\tif (\n\t\tsourceFilter === PATTERN_TYPES.theme &&\n\t\t( isUserPattern || isDirectoryPattern )\n\t) {\n\t\treturn true;\n\t}\n\n\t// If the directory source is selected, filter out user created patterns\n\t// and those bundled with the theme.\n\tif (\n\t\tsourceFilter === PATTERN_TYPES.directory &&\n\t\t( isUserPattern || ! isDirectoryPattern )\n\t) {\n\t\treturn true;\n\t}\n\n\t// If user source selected, filter out theme patterns. Any pattern without\n\t// an id wasn't created by a user.\n\tif ( sourceFilter === PATTERN_TYPES.user && ! pattern.id ) {\n\t\treturn true;\n\t}\n\n\t// Filter by sync status.\n\tif ( syncFilter === SYNC_TYPES.full && pattern.syncStatus !== '' ) {\n\t\treturn true;\n\t}\n\n\tif (\n\t\tsyncFilter === SYNC_TYPES.unsynced &&\n\t\tpattern.syncStatus !== 'unsynced' &&\n\t\tisUserPattern\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nexport function usePatternsCategories( rootClientId, sourceFilter = 'all' ) {\n\tconst [ patterns, allCategories ] = usePatternsState(\n\t\tundefined,\n\t\trootClientId\n\t);\n\n\tconst filteredPatterns = useMemo(\n\t\t() =>\n\t\t\tsourceFilter === 'all'\n\t\t\t\t? patterns\n\t\t\t\t: patterns.filter(\n\t\t\t\t\t\t( pattern ) =>\n\t\t\t\t\t\t\t! isPatternFiltered( pattern, sourceFilter )\n\t\t\t\t ),\n\t\t[ sourceFilter, patterns ]\n\t);\n\n\tconst hasRegisteredCategory = useCallback(\n\t\t( pattern ) => {\n\t\t\tif ( ! pattern.categories || ! pattern.categories.length ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn pattern.categories.some( ( cat ) =>\n\t\t\t\tallCategories.some( ( category ) => category.name === cat )\n\t\t\t);\n\t\t},\n\t\t[ allCategories ]\n\t);\n\n\t// Remove any empty categories.\n\tconst populatedCategories = useMemo( () => {\n\t\tconst categories = allCategories\n\t\t\t.filter( ( category ) =>\n\t\t\t\tfilteredPatterns.some( ( pattern ) =>\n\t\t\t\t\tpattern.categories?.includes( category.name )\n\t\t\t\t)\n\t\t\t)\n\t\t\t.sort( ( a, b ) => a.label.localeCompare( b.label ) );\n\n\t\tif (\n\t\t\tfilteredPatterns.some(\n\t\t\t\t( pattern ) => ! hasRegisteredCategory( pattern )\n\t\t\t) &&\n\t\t\t! categories.find(\n\t\t\t\t( category ) => category.name === 'uncategorized'\n\t\t\t)\n\t\t) {\n\t\t\tcategories.push( {\n\t\t\t\tname: 'uncategorized',\n\t\t\t\tlabel: _x( 'Uncategorized' ),\n\t\t\t} );\n\t\t}\n\t\tif ( filteredPatterns.some( ( pattern ) => pattern.id ) ) {\n\t\t\tcategories.unshift( myPatternsCategory );\n\t\t}\n\t\tif ( filteredPatterns.length > 0 ) {\n\t\t\tcategories.unshift( {\n\t\t\t\tname: allPatternsCategory.name,\n\t\t\t\tlabel: allPatternsCategory.label,\n\t\t\t} );\n\t\t}\n\t\tspeak(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %d: number of categories . */\n\t\t\t\t_n(\n\t\t\t\t\t'%d category button displayed.',\n\t\t\t\t\t'%d category buttons displayed.',\n\t\t\t\t\tcategories.length\n\t\t\t\t),\n\t\t\t\tcategories.length\n\t\t\t)\n\t\t);\n\t\treturn categories;\n\t}, [ allCategories, filteredPatterns, hasRegisteredCategory ] );\n\n\treturn populatedCategories;\n}\n\nexport function BlockPatternsCategoryDialog( {\n\trootClientId,\n\tonInsert,\n\tonHover,\n\tcategory,\n\tshowTitlesAsTooltip,\n\tpatternFilter,\n} ) {\n\tconst container = useRef();\n\n\tuseEffect( () => {\n\t\tconst timeout = setTimeout( () => {\n\t\t\tconst [ firstTabbable ] = focus.tabbable.find( container.current );\n\t\t\tfirstTabbable?.focus();\n\t\t} );\n\t\treturn () => clearTimeout( timeout );\n\t}, [ category ] );\n\n\treturn (\n\t\t<div\n\t\t\tref={ container }\n\t\t\tclassName=\"block-editor-inserter__patterns-category-dialog\"\n\t\t>\n\t\t\t<BlockPatternsCategoryPanel\n\t\t\t\tkey={ category.name }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tcategory={ category }\n\t\t\t\tshowTitlesAsTooltip={ showTitlesAsTooltip }\n\t\t\t\tpatternFilter={ patternFilter }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport function BlockPatternsCategoryPanel( {\n\trootClientId,\n\tonInsert,\n\tonHover = noop,\n\tcategory,\n\tshowTitlesAsTooltip,\n} ) {\n\tconst [ allPatterns, , onClickPattern ] = usePatternsState(\n\t\tonInsert,\n\t\trootClientId\n\t);\n\tconst [ patternSyncFilter, setPatternSyncFilter ] = useState( 'all' );\n\tconst [ patternSourceFilter, setPatternSourceFilter ] = useState( 'all' );\n\n\tconst availableCategories = usePatternsCategories(\n\t\trootClientId,\n\t\tpatternSourceFilter\n\t);\n\tconst scrollContainerRef = useRef();\n\tconst currentCategoryPatterns = useMemo(\n\t\t() =>\n\t\t\tallPatterns.filter( ( pattern ) => {\n\t\t\t\tif (\n\t\t\t\t\tisPatternFiltered(\n\t\t\t\t\t\tpattern,\n\t\t\t\t\t\tpatternSourceFilter,\n\t\t\t\t\t\tpatternSyncFilter\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif ( category.name === allPatternsCategory.name ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif ( category.name === myPatternsCategory.name && pattern.id ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif ( category.name !== 'uncategorized' ) {\n\t\t\t\t\treturn pattern.categories?.includes( category.name );\n\t\t\t\t}\n\n\t\t\t\t// The uncategorized category should show all the patterns without any category\n\t\t\t\t// or with no available category.\n\t\t\t\tconst availablePatternCategories =\n\t\t\t\t\tpattern.categories?.filter( ( cat ) =>\n\t\t\t\t\t\tavailableCategories.find(\n\t\t\t\t\t\t\t( availableCategory ) =>\n\t\t\t\t\t\t\t\tavailableCategory.name === cat\n\t\t\t\t\t\t)\n\t\t\t\t\t) ?? [];\n\n\t\t\t\treturn availablePatternCategories.length === 0;\n\t\t\t} ),\n\t\t[\n\t\t\tallPatterns,\n\t\t\tavailableCategories,\n\t\t\tcategory.name,\n\t\t\tpatternSourceFilter,\n\t\t\tpatternSyncFilter,\n\t\t]\n\t);\n\n\tconst pagingProps = usePatternsPaging(\n\t\tcurrentCategoryPatterns,\n\t\tcategory,\n\t\tscrollContainerRef\n\t);\n\tconst { changePage } = pagingProps;\n\n\t// Hide block pattern preview on unmount.\n\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\tuseEffect( () => () => onHover( null ), [] );\n\n\tconst onSetPatternSyncFilter = useCallback(\n\t\t( value ) => {\n\t\t\tsetPatternSyncFilter( value );\n\t\t\tchangePage( 1 );\n\t\t},\n\t\t[ setPatternSyncFilter, changePage ]\n\t);\n\tconst onSetPatternSourceFilter = useCallback(\n\t\t( value ) => {\n\t\t\tsetPatternSourceFilter( value );\n\t\t\tchangePage( 1 );\n\t\t},\n\t\t[ setPatternSourceFilter, changePage ]\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__patterns-category-panel\">\n\t\t\t<VStack\n\t\t\t\tspacing={ 2 }\n\t\t\t\tclassName=\"block-editor-inserter__patterns-category-panel-header\"\n\t\t\t>\n\t\t\t\t<HStack>\n\t\t\t\t\t<FlexBlock>\n\t\t\t\t\t\t<Heading level={ 4 } as=\"div\">\n\t\t\t\t\t\t\t{ category.label }\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t<BlockPatternsSyncFilter\n\t\t\t\t\t\tpatternSyncFilter={ patternSyncFilter }\n\t\t\t\t\t\tpatternSourceFilter={ patternSourceFilter }\n\t\t\t\t\t\tsetPatternSyncFilter={ onSetPatternSyncFilter }\n\t\t\t\t\t\tsetPatternSourceFilter={ onSetPatternSourceFilter }\n\t\t\t\t\t\tscrollContainerRef={ scrollContainerRef }\n\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t\t{ ! currentCategoryPatterns.length && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tvariant=\"muted\"\n\t\t\t\t\t\tclassName=\"block-editor-inserter__patterns-category-no-results\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'No results found' ) }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t</VStack>\n\n\t\t\t{ currentCategoryPatterns.length > 0 && (\n\t\t\t\t<BlockPatternList\n\t\t\t\t\tref={ scrollContainerRef }\n\t\t\t\t\tshownPatterns={ pagingProps.categoryPatternsAsyncList }\n\t\t\t\t\tblockPatterns={ pagingProps.categoryPatterns }\n\t\t\t\t\tonClickPattern={ onClickPattern }\n\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\tlabel={ category.label }\n\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\tcategory={ category.name }\n\t\t\t\t\tisDraggable\n\t\t\t\t\tshowTitlesAsTooltip={ showTitlesAsTooltip }\n\t\t\t\t\tpatternFilter={ patternSourceFilter }\n\t\t\t\t\tpagingProps={ pagingProps }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternsTabs( {\n\tonSelectCategory,\n\tselectedCategory,\n\tonInsert,\n\trootClientId,\n} ) {\n\tconst [ showPatternsExplorer, setShowPatternsExplorer ] = useState( false );\n\n\tconst categories = usePatternsCategories( rootClientId );\n\n\tconst initialCategory = selectedCategory || categories[ 0 ];\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\treturn (\n\t\t<>\n\t\t\t{ ! isMobile && (\n\t\t\t\t<div className=\"block-editor-inserter__block-patterns-tabs-container\">\n\t\t\t\t\t<nav\n\t\t\t\t\t\taria-label={ __( 'Block pattern categories' ) }\n\t\t\t\t\t\tclassName=\"block-editor-inserter__block-patterns-tabs\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ItemGroup role=\"list\">\n\t\t\t\t\t\t\t{ categories.map( ( category ) => (\n\t\t\t\t\t\t\t\t<Item\n\t\t\t\t\t\t\t\t\trole=\"listitem\"\n\t\t\t\t\t\t\t\t\tkey={ category.name }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tonSelectCategory( category )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\tcategory === selectedCategory\n\t\t\t\t\t\t\t\t\t\t\t? 'block-editor-inserter__patterns-category block-editor-inserter__patterns-selected-category'\n\t\t\t\t\t\t\t\t\t\t\t: 'block-editor-inserter__patterns-category'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taria-label={ category.label }\n\t\t\t\t\t\t\t\t\taria-current={\n\t\t\t\t\t\t\t\t\t\tcategory === selectedCategory\n\t\t\t\t\t\t\t\t\t\t\t? 'true'\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<HStack>\n\t\t\t\t\t\t\t\t\t\t<FlexBlock>\n\t\t\t\t\t\t\t\t\t\t\t{ category.label }\n\t\t\t\t\t\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tisRTL()\n\t\t\t\t\t\t\t\t\t\t\t\t\t? chevronLeft\n\t\t\t\t\t\t\t\t\t\t\t\t\t: chevronRight\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t<div role=\"listitem\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__patterns-explore-button\"\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetShowPatternsExplorer( true )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Explore all patterns' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</nav>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ isMobile && (\n\t\t\t\t<MobileTabNavigation categories={ categories }>\n\t\t\t\t\t{ ( category ) => (\n\t\t\t\t\t\t<BlockPatternsCategoryPanel\n\t\t\t\t\t\t\tkey={ category.name }\n\t\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t\tshowTitlesAsTooltip={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</MobileTabNavigation>\n\t\t\t) }\n\t\t\t{ showPatternsExplorer && (\n\t\t\t\t<PatternsExplorerModal\n\t\t\t\t\tinitialCategory={ initialCategory }\n\t\t\t\t\tpatternCategories={ categories }\n\t\t\t\t\tonModalClose={ () => setShowPatternsExplorer( false ) }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default BlockPatternsTabs;\n"],"mappings":"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"}
@@ -1,165 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.withBlockRenameControl = void 0;
7
- var _react = require("react");
8
- var _compose = require("@wordpress/compose");
9
- var _hooks = require("@wordpress/hooks");
10
- var _i18n = require("@wordpress/i18n");
11
- var _blocks = require("@wordpress/blocks");
12
- var _components = require("@wordpress/components");
13
- var _element = require("@wordpress/element");
14
- var _a11y = require("@wordpress/a11y");
15
- var _components2 = require("../components");
16
- /**
17
- * WordPress dependencies
18
- */
19
-
20
- /**
21
- * Internal dependencies
22
- */
23
-
24
- const emptyString = testString => testString?.trim()?.length === 0;
25
- function RenameModal({
26
- blockName,
27
- originalBlockName,
28
- onClose,
29
- onSave
30
- }) {
31
- const [editedBlockName, setEditedBlockName] = (0, _element.useState)(blockName);
32
- const nameHasChanged = editedBlockName !== blockName;
33
- const nameIsOriginal = editedBlockName === originalBlockName;
34
- const nameIsEmpty = emptyString(editedBlockName);
35
- const isNameValid = nameHasChanged || nameIsOriginal;
36
- const autoSelectInputText = event => event.target.select();
37
- const dialogDescription = (0, _compose.useInstanceId)(RenameModal, `block-editor-rename-modal__description`);
38
- const handleSubmit = () => {
39
- const message = nameIsOriginal || nameIsEmpty ? (0, _i18n.sprintf)( /* translators: %s: new name/label for the block */
40
- (0, _i18n.__)('Block name reset to: "%s".'), editedBlockName) : (0, _i18n.sprintf)( /* translators: %s: new name/label for the block */
41
- (0, _i18n.__)('Block name changed to: "%s".'), editedBlockName);
42
-
43
- // Must be assertive to immediately announce change.
44
- (0, _a11y.speak)(message, 'assertive');
45
- onSave(editedBlockName);
46
-
47
- // Immediate close avoids ability to hit save multiple times.
48
- onClose();
49
- };
50
- return (0, _react.createElement)(_components.Modal, {
51
- title: (0, _i18n.__)('Rename'),
52
- onRequestClose: onClose,
53
- overlayClassName: "block-editor-block-rename-modal",
54
- aria: {
55
- describedby: dialogDescription
56
- },
57
- focusOnMount: "firstContentElement"
58
- }, (0, _react.createElement)("p", {
59
- id: dialogDescription
60
- }, (0, _i18n.__)('Enter a custom name for this block.')), (0, _react.createElement)("form", {
61
- onSubmit: e => {
62
- e.preventDefault();
63
- if (!isNameValid) {
64
- return;
65
- }
66
- handleSubmit();
67
- }
68
- }, (0, _react.createElement)(_components.__experimentalVStack, {
69
- spacing: "3"
70
- }, (0, _react.createElement)(_components.TextControl, {
71
- __nextHasNoMarginBottom: true,
72
- value: editedBlockName,
73
- label: (0, _i18n.__)('Block name'),
74
- hideLabelFromVision: true,
75
- placeholder: originalBlockName,
76
- onChange: setEditedBlockName,
77
- onFocus: autoSelectInputText
78
- }), (0, _react.createElement)(_components.__experimentalHStack, {
79
- justify: "right"
80
- }, (0, _react.createElement)(_components.Button, {
81
- variant: "tertiary",
82
- onClick: onClose
83
- }, (0, _i18n.__)('Cancel')), (0, _react.createElement)(_components.Button, {
84
- "aria-disabled": !isNameValid,
85
- variant: "primary",
86
- type: "submit"
87
- }, (0, _i18n.__)('Save'))))));
88
- }
89
- function BlockRenameControl(props) {
90
- const [renamingBlock, setRenamingBlock] = (0, _element.useState)(false);
91
- const {
92
- clientId,
93
- customName,
94
- onChange
95
- } = props;
96
- const blockInformation = (0, _components2.useBlockDisplayInformation)(clientId);
97
- return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components2.InspectorControls, {
98
- group: "advanced"
99
- }, (0, _react.createElement)(_components.TextControl, {
100
- __nextHasNoMarginBottom: true,
101
- label: (0, _i18n.__)('Block name'),
102
- value: customName || '',
103
- onChange: onChange
104
- })), (0, _react.createElement)(_components2.BlockSettingsMenuControls, null, ({
105
- selectedClientIds
106
- }) => {
107
- // Only enabled for single selections.
108
- const canRename = selectedClientIds.length === 1 && clientId === selectedClientIds[0];
109
-
110
- // This check ensures the `BlockSettingsMenuControls` fill
111
- // doesn't render multiple times and also that it renders for
112
- // the block from which the menu was triggered.
113
- if (!canRename) {
114
- return null;
115
- }
116
- return (0, _react.createElement)(_components.MenuItem, {
117
- onClick: () => {
118
- setRenamingBlock(true);
119
- },
120
- "aria-expanded": renamingBlock,
121
- "aria-haspopup": "dialog"
122
- }, (0, _i18n.__)('Rename'));
123
- }), renamingBlock && (0, _react.createElement)(RenameModal, {
124
- blockName: customName || '',
125
- originalBlockName: blockInformation?.title,
126
- onClose: () => setRenamingBlock(false),
127
- onSave: newName => {
128
- // If the new value is the block's original name (e.g. `Group`)
129
- // or it is an empty string then assume the intent is to reset
130
- // the value. Therefore reset the metadata.
131
- if (newName === blockInformation?.title || emptyString(newName)) {
132
- newName = undefined;
133
- }
134
- onChange(newName);
135
- }
136
- }));
137
- }
138
- const withBlockRenameControl = (0, _compose.createHigherOrderComponent)(BlockEdit => props => {
139
- const {
140
- clientId,
141
- name,
142
- attributes,
143
- setAttributes,
144
- isSelected
145
- } = props;
146
- const supportsBlockNaming = (0, _blocks.hasBlockSupport)(name, 'renaming', true);
147
- return (0, _react.createElement)(_react.Fragment, null, isSelected && supportsBlockNaming && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(BlockRenameControl, {
148
- clientId: clientId,
149
- customName: attributes?.metadata?.name,
150
- onChange: newName => {
151
- setAttributes({
152
- metadata: {
153
- ...attributes?.metadata,
154
- name: newName
155
- }
156
- });
157
- }
158
- })), (0, _react.createElement)(BlockEdit, {
159
- key: "edit",
160
- ...props
161
- }));
162
- }, 'withToolbarControls');
163
- exports.withBlockRenameControl = withBlockRenameControl;
164
- (0, _hooks.addFilter)('editor.BlockEdit', 'core/block-rename-ui/with-block-rename-control', withBlockRenameControl);
165
- //# sourceMappingURL=block-rename-ui.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_compose","require","_hooks","_i18n","_blocks","_components","_element","_a11y","_components2","emptyString","testString","trim","length","RenameModal","blockName","originalBlockName","onClose","onSave","editedBlockName","setEditedBlockName","useState","nameHasChanged","nameIsOriginal","nameIsEmpty","isNameValid","autoSelectInputText","event","target","select","dialogDescription","useInstanceId","handleSubmit","message","sprintf","__","speak","_react","createElement","Modal","title","onRequestClose","overlayClassName","aria","describedby","focusOnMount","id","onSubmit","e","preventDefault","__experimentalVStack","spacing","TextControl","__nextHasNoMarginBottom","value","label","hideLabelFromVision","placeholder","onChange","onFocus","__experimentalHStack","justify","Button","variant","onClick","type","BlockRenameControl","props","renamingBlock","setRenamingBlock","clientId","customName","blockInformation","useBlockDisplayInformation","Fragment","InspectorControls","group","BlockSettingsMenuControls","selectedClientIds","canRename","MenuItem","newName","undefined","withBlockRenameControl","createHigherOrderComponent","BlockEdit","name","attributes","setAttributes","isSelected","supportsBlockNaming","hasBlockSupport","metadata","key","exports","addFilter"],"sources":["@wordpress/block-editor/src/hooks/block-rename-ui.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent, useInstanceId } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport {\n\tMenuItem,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\tTextControl,\n\tModal,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport {\n\tBlockSettingsMenuControls,\n\tuseBlockDisplayInformation,\n\tInspectorControls,\n} from '../components';\n\nconst emptyString = ( testString ) => testString?.trim()?.length === 0;\n\nfunction RenameModal( { blockName, originalBlockName, onClose, onSave } ) {\n\tconst [ editedBlockName, setEditedBlockName ] = useState( blockName );\n\n\tconst nameHasChanged = editedBlockName !== blockName;\n\tconst nameIsOriginal = editedBlockName === originalBlockName;\n\tconst nameIsEmpty = emptyString( editedBlockName );\n\n\tconst isNameValid = nameHasChanged || nameIsOriginal;\n\n\tconst autoSelectInputText = ( event ) => event.target.select();\n\n\tconst dialogDescription = useInstanceId(\n\t\tRenameModal,\n\t\t`block-editor-rename-modal__description`\n\t);\n\n\tconst handleSubmit = () => {\n\t\tconst message =\n\t\t\tnameIsOriginal || nameIsEmpty\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %s: new name/label for the block */\n\t\t\t\t\t\t__( 'Block name reset to: \"%s\".' ),\n\t\t\t\t\t\teditedBlockName\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: new name/label for the block */\n\t\t\t\t\t\t__( 'Block name changed to: \"%s\".' ),\n\t\t\t\t\t\teditedBlockName\n\t\t\t\t );\n\n\t\t// Must be assertive to immediately announce change.\n\t\tspeak( message, 'assertive' );\n\t\tonSave( editedBlockName );\n\n\t\t// Immediate close avoids ability to hit save multiple times.\n\t\tonClose();\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Rename' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\toverlayClassName=\"block-editor-block-rename-modal\"\n\t\t\taria={ {\n\t\t\t\tdescribedby: dialogDescription,\n\t\t\t} }\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t>\n\t\t\t<p id={ dialogDescription }>\n\t\t\t\t{ __( 'Enter a custom name for this block.' ) }\n\t\t\t</p>\n\t\t\t<form\n\t\t\t\tonSubmit={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\tif ( ! isNameValid ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\thandleSubmit();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<VStack spacing=\"3\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ editedBlockName }\n\t\t\t\t\t\tlabel={ __( 'Block name' ) }\n\t\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t\tplaceholder={ originalBlockName }\n\t\t\t\t\t\tonChange={ setEditedBlockName }\n\t\t\t\t\t\tonFocus={ autoSelectInputText }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ onClose }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\taria-disabled={ ! isNameValid }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n\nfunction BlockRenameControl( props ) {\n\tconst [ renamingBlock, setRenamingBlock ] = useState( false );\n\n\tconst { clientId, customName, onChange } = props;\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Block name' ) }\n\t\t\t\t\tvalue={ customName || '' }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<BlockSettingsMenuControls>\n\t\t\t\t{ ( { selectedClientIds } ) => {\n\t\t\t\t\t// Only enabled for single selections.\n\t\t\t\t\tconst canRename =\n\t\t\t\t\t\tselectedClientIds.length === 1 &&\n\t\t\t\t\t\tclientId === selectedClientIds[ 0 ];\n\n\t\t\t\t\t// This check ensures the `BlockSettingsMenuControls` fill\n\t\t\t\t\t// doesn't render multiple times and also that it renders for\n\t\t\t\t\t// the block from which the menu was triggered.\n\t\t\t\t\tif ( ! canRename ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetRenamingBlock( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-expanded={ renamingBlock }\n\t\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Rename' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t</BlockSettingsMenuControls>\n\n\t\t\t{ renamingBlock && (\n\t\t\t\t<RenameModal\n\t\t\t\t\tblockName={ customName || '' }\n\t\t\t\t\toriginalBlockName={ blockInformation?.title }\n\t\t\t\t\tonClose={ () => setRenamingBlock( false ) }\n\t\t\t\t\tonSave={ ( newName ) => {\n\t\t\t\t\t\t// If the new value is the block's original name (e.g. `Group`)\n\t\t\t\t\t\t// or it is an empty string then assume the intent is to reset\n\t\t\t\t\t\t// the value. Therefore reset the metadata.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tnewName === blockInformation?.title ||\n\t\t\t\t\t\t\temptyString( newName )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tnewName = undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonChange( newName );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport const withBlockRenameControl = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { clientId, name, attributes, setAttributes, isSelected } = props;\n\n\t\tconst supportsBlockNaming = hasBlockSupport( name, 'renaming', true );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ isSelected && supportsBlockNaming && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockRenameControl\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcustomName={ attributes?.metadata?.name }\n\t\t\t\t\t\t\tonChange={ ( newName ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\t\t\t\t...attributes?.metadata,\n\t\t\t\t\t\t\t\t\t\tname: newName,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t<BlockEdit key=\"edit\" { ...props } />\n\t\t\t</>\n\t\t);\n\t},\n\t'withToolbarControls'\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/block-rename-ui/with-block-rename-control',\n\twithBlockRenameControl\n);\n"],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.mapRichTextSettings = mapRichTextSettings;
7
- /**
8
- * Helper function that maps attribute definition properties to the
9
- * ones used by RichText utils like `create, toHTMLString, etc..`.
10
- *
11
- * @param {Object} attributeDefinition A block's attribute definition object.
12
- * @return {Object} The mapped object.
13
- */
14
- function mapRichTextSettings(attributeDefinition) {
15
- const {
16
- __unstablePreserveWhiteSpace: preserveWhiteSpace
17
- } = attributeDefinition;
18
- return {
19
- preserveWhiteSpace
20
- };
21
- }
22
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["mapRichTextSettings","attributeDefinition","__unstablePreserveWhiteSpace","preserveWhiteSpace"],"sources":["@wordpress/block-editor/src/store/utils.js"],"sourcesContent":["/**\n * Helper function that maps attribute definition properties to the\n * ones used by RichText utils like `create, toHTMLString, etc..`.\n *\n * @param {Object} attributeDefinition A block's attribute definition object.\n * @return {Object} The mapped object.\n */\nexport function mapRichTextSettings( attributeDefinition ) {\n\tconst { __unstablePreserveWhiteSpace: preserveWhiteSpace } =\n\t\tattributeDefinition;\n\treturn { preserveWhiteSpace };\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,mBAAmBA,CAAEC,mBAAmB,EAAG;EAC1D,MAAM;IAAEC,4BAA4B,EAAEC;EAAmB,CAAC,GACzDF,mBAAmB;EACpB,OAAO;IAAEE;EAAmB,CAAC;AAC9B"}