@wordpress/block-editor 12.9.1-next.5a1d1283.0 → 12.10.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 (453) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +33 -3
  3. package/build/components/block-canvas/index.js +107 -0
  4. package/build/components/block-canvas/index.js.map +1 -0
  5. package/build/components/block-inspector/index.js +4 -1
  6. package/build/components/block-inspector/index.js.map +1 -1
  7. package/build/components/block-patterns-list/index.js +19 -4
  8. package/build/components/block-patterns-list/index.js.map +1 -1
  9. package/build/components/block-patterns-paging/index.js +66 -0
  10. package/build/components/block-patterns-paging/index.js.map +1 -0
  11. package/build/components/block-settings-menu/block-settings-dropdown.js +28 -0
  12. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  13. package/build/components/block-settings-menu-controls/index.js +4 -7
  14. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  15. package/build/components/block-styles/index.js +1 -0
  16. package/build/components/block-styles/index.js.map +1 -1
  17. package/build/components/block-toolbar/block-toolbar-menu.native.js +3 -7
  18. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  19. package/build/components/block-tools/block-contextual-toolbar.js +18 -7
  20. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  21. package/build/components/block-tools/block-selection-button.js +5 -1
  22. package/build/components/block-tools/block-selection-button.js.map +1 -1
  23. package/build/components/border-radius-control/input-controls.js +1 -1
  24. package/build/components/border-radius-control/input-controls.js.map +1 -1
  25. package/build/components/border-radius-control/linked-button.js +2 -4
  26. package/build/components/border-radius-control/linked-button.js.map +1 -1
  27. package/build/components/colors/with-colors.js.map +1 -1
  28. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -21
  29. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  30. package/build/components/default-block-appender/index.native.js +20 -1
  31. package/build/components/default-block-appender/index.native.js.map +1 -1
  32. package/build/components/duotone/utils.js +68 -0
  33. package/build/components/duotone/utils.js.map +1 -1
  34. package/build/components/editor-styles/index.js +28 -9
  35. package/build/components/editor-styles/index.js.map +1 -1
  36. package/build/components/global-styles/hooks.js +2 -101
  37. package/build/components/global-styles/hooks.js.map +1 -1
  38. package/build/components/global-styles/image-settings-panel.js +61 -0
  39. package/build/components/global-styles/image-settings-panel.js.map +1 -0
  40. package/build/components/global-styles/index.js +11 -17
  41. package/build/components/global-styles/index.js.map +1 -1
  42. package/build/components/global-styles/use-global-styles-output.js +19 -15
  43. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  44. package/build/components/global-styles/utils.js +1 -1
  45. package/build/components/global-styles/utils.js.map +1 -1
  46. package/build/components/iframe/index.js +67 -33
  47. package/build/components/iframe/index.js.map +1 -1
  48. package/build/components/image-editor/use-save-image.js +2 -5
  49. package/build/components/image-editor/use-save-image.js.map +1 -1
  50. package/build/components/image-editor/use-transform-image.js +9 -9
  51. package/build/components/image-editor/use-transform-image.js.map +1 -1
  52. package/build/components/index.js +8 -12
  53. package/build/components/index.js.map +1 -1
  54. package/build/components/index.native.js +6 -5
  55. package/build/components/index.native.js.map +1 -1
  56. package/build/components/inner-blocks/use-nested-settings-update.js +13 -7
  57. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  58. package/build/components/inserter/block-patterns-explorer/explorer.js +12 -6
  59. package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  60. package/build/components/inserter/block-patterns-explorer/patterns-list.js +57 -23
  61. package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  62. package/build/components/inserter/block-patterns-explorer/sidebar.js +24 -9
  63. package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  64. package/build/components/inserter/block-patterns-source-filter.js +54 -0
  65. package/build/components/inserter/block-patterns-source-filter.js.map +1 -0
  66. package/build/components/inserter/block-patterns-sync-filter.js +46 -0
  67. package/build/components/inserter/block-patterns-sync-filter.js.map +1 -0
  68. package/build/components/inserter/block-patterns-tab.js +91 -45
  69. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  70. package/build/components/inserter/hooks/use-patterns-paging.js +57 -0
  71. package/build/components/inserter/hooks/use-patterns-paging.js.map +1 -0
  72. package/build/components/inserter/hooks/use-patterns-state.js +21 -10
  73. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  74. package/build/components/inserter/menu.js +13 -11
  75. package/build/components/inserter/menu.js.map +1 -1
  76. package/build/components/inserter/search-results.js +4 -3
  77. package/build/components/inserter/search-results.js.map +1 -1
  78. package/build/components/inserter/tabs.js +1 -12
  79. package/build/components/inserter/tabs.js.map +1 -1
  80. package/build/components/inspector-controls/block-support-slot-container.js +12 -1
  81. package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
  82. package/build/components/inspector-controls/fill.js +24 -13
  83. package/build/components/inspector-controls/fill.js.map +1 -1
  84. package/build/components/inspector-controls/groups.js +5 -3
  85. package/build/components/inspector-controls/groups.js.map +1 -1
  86. package/build/components/inspector-controls/slot.js +13 -0
  87. package/build/components/inspector-controls/slot.js.map +1 -1
  88. package/build/components/inspector-controls-tabs/styles-tab.js +3 -0
  89. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  90. package/build/components/link-control/index.js +12 -2
  91. package/build/components/link-control/index.js.map +1 -1
  92. package/build/components/list-view/block-select-button.js +1 -3
  93. package/build/components/list-view/block-select-button.js.map +1 -1
  94. package/build/components/list-view/block.js +13 -1
  95. package/build/components/list-view/block.js.map +1 -1
  96. package/build/components/list-view/use-block-selection.js +29 -24
  97. package/build/components/list-view/use-block-selection.js.map +1 -1
  98. package/build/components/media-placeholder/index.js +2 -2
  99. package/build/components/media-placeholder/index.js.map +1 -1
  100. package/build/components/media-placeholder/index.native.js +11 -11
  101. package/build/components/media-placeholder/index.native.js.map +1 -1
  102. package/build/components/media-replace-flow/index.js +2 -3
  103. package/build/components/media-replace-flow/index.js.map +1 -1
  104. package/build/components/media-upload/constants.js +30 -0
  105. package/build/components/media-upload/constants.js.map +1 -0
  106. package/build/components/media-upload/index.native.js +63 -53
  107. package/build/components/media-upload/index.native.js.map +1 -1
  108. package/build/components/preview-options/index.js +1 -1
  109. package/build/components/preview-options/index.js.map +1 -1
  110. package/build/components/rich-text/index.js +34 -35
  111. package/build/components/rich-text/index.js.map +1 -1
  112. package/build/components/rich-text/index.native.js +14 -32
  113. package/build/components/rich-text/index.native.js.map +1 -1
  114. package/build/components/rich-text/multiline.js +95 -0
  115. package/build/components/rich-text/multiline.js.map +1 -0
  116. package/build/components/rich-text/split-value.js +10 -16
  117. package/build/components/rich-text/split-value.js.map +1 -1
  118. package/build/components/rich-text/use-enter.js +31 -40
  119. package/build/components/rich-text/use-enter.js.map +1 -1
  120. package/build/components/rich-text/use-paste-handler.js +18 -33
  121. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  122. package/build/components/spacing-sizes-control/utils.js +1 -1
  123. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  124. package/build/components/use-block-commands/index.js +30 -18
  125. package/build/components/use-block-commands/index.js.map +1 -1
  126. package/build/components/use-block-display-information/index.js +5 -2
  127. package/build/components/use-block-display-information/index.js.map +1 -1
  128. package/build/hooks/background.js +258 -0
  129. package/build/hooks/background.js.map +1 -0
  130. package/build/hooks/block-hooks.js +188 -0
  131. package/build/hooks/block-hooks.js.map +1 -0
  132. package/build/hooks/block-rename-ui.js +160 -0
  133. package/build/hooks/block-rename-ui.js.map +1 -0
  134. package/build/hooks/duotone.js +29 -42
  135. package/build/hooks/duotone.js.map +1 -1
  136. package/build/hooks/index.js +2 -2
  137. package/build/hooks/index.js.map +1 -1
  138. package/build/hooks/layout.js +31 -14
  139. package/build/hooks/layout.js.map +1 -1
  140. package/build/hooks/position.js +4 -2
  141. package/build/hooks/position.js.map +1 -1
  142. package/build/hooks/style.js +10 -3
  143. package/build/hooks/style.js.map +1 -1
  144. package/build/private-apis.js +2 -0
  145. package/build/private-apis.js.map +1 -1
  146. package/build/store/actions.js +33 -10
  147. package/build/store/actions.js.map +1 -1
  148. package/build/store/private-actions.js +42 -8
  149. package/build/store/private-actions.js.map +1 -1
  150. package/build/store/private-selectors.js +23 -0
  151. package/build/store/private-selectors.js.map +1 -1
  152. package/build/store/reducer.js +43 -1
  153. package/build/store/reducer.js.map +1 -1
  154. package/build/store/selectors.js +84 -23
  155. package/build/store/selectors.js.map +1 -1
  156. package/build/store/utils.js +0 -4
  157. package/build/store/utils.js.map +1 -1
  158. package/build-module/components/block-canvas/index.js +97 -0
  159. package/build-module/components/block-canvas/index.js.map +1 -0
  160. package/build-module/components/block-inspector/index.js +4 -1
  161. package/build-module/components/block-inspector/index.js.map +1 -1
  162. package/build-module/components/block-patterns-list/index.js +20 -5
  163. package/build-module/components/block-patterns-list/index.js.map +1 -1
  164. package/build-module/components/block-patterns-paging/index.js +59 -0
  165. package/build-module/components/block-patterns-paging/index.js.map +1 -0
  166. package/build-module/components/block-settings-menu/block-settings-dropdown.js +28 -0
  167. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  168. package/build-module/components/block-settings-menu-controls/index.js +4 -7
  169. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  170. package/build-module/components/block-styles/index.js +1 -0
  171. package/build-module/components/block-styles/index.js.map +1 -1
  172. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +3 -7
  173. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  174. package/build-module/components/block-tools/block-contextual-toolbar.js +18 -7
  175. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  176. package/build-module/components/block-tools/block-selection-button.js +5 -1
  177. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  178. package/build-module/components/border-radius-control/input-controls.js +1 -1
  179. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  180. package/build-module/components/border-radius-control/linked-button.js +2 -4
  181. package/build-module/components/border-radius-control/linked-button.js.map +1 -1
  182. package/build-module/components/colors/with-colors.js.map +1 -1
  183. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -21
  184. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  185. package/build-module/components/default-block-appender/index.native.js +20 -1
  186. package/build-module/components/default-block-appender/index.native.js.map +1 -1
  187. package/build-module/components/duotone/utils.js +65 -0
  188. package/build-module/components/duotone/utils.js.map +1 -1
  189. package/build-module/components/editor-styles/index.js +28 -9
  190. package/build-module/components/editor-styles/index.js.map +1 -1
  191. package/build-module/components/global-styles/hooks.js +3 -100
  192. package/build-module/components/global-styles/hooks.js.map +1 -1
  193. package/build-module/components/global-styles/image-settings-panel.js +53 -0
  194. package/build-module/components/global-styles/image-settings-panel.js.map +1 -0
  195. package/build-module/components/global-styles/index.js +2 -2
  196. package/build-module/components/global-styles/index.js.map +1 -1
  197. package/build-module/components/global-styles/use-global-styles-output.js +18 -16
  198. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  199. package/build-module/components/global-styles/utils.js +1 -1
  200. package/build-module/components/global-styles/utils.js.map +1 -1
  201. package/build-module/components/iframe/index.js +66 -33
  202. package/build-module/components/iframe/index.js.map +1 -1
  203. package/build-module/components/image-editor/use-save-image.js +2 -5
  204. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  205. package/build-module/components/image-editor/use-transform-image.js +9 -9
  206. package/build-module/components/image-editor/use-transform-image.js.map +1 -1
  207. package/build-module/components/index.js +1 -1
  208. package/build-module/components/index.js.map +1 -1
  209. package/build-module/components/index.native.js +2 -1
  210. package/build-module/components/index.native.js.map +1 -1
  211. package/build-module/components/inner-blocks/use-nested-settings-update.js +14 -8
  212. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  213. package/build-module/components/inserter/block-patterns-explorer/explorer.js +12 -6
  214. package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  215. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +59 -25
  216. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  217. package/build-module/components/inserter/block-patterns-explorer/sidebar.js +23 -9
  218. package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  219. package/build-module/components/inserter/block-patterns-source-filter.js +44 -0
  220. package/build-module/components/inserter/block-patterns-source-filter.js.map +1 -0
  221. package/build-module/components/inserter/block-patterns-sync-filter.js +38 -0
  222. package/build-module/components/inserter/block-patterns-sync-filter.js.map +1 -0
  223. package/build-module/components/inserter/block-patterns-tab.js +87 -46
  224. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  225. package/build-module/components/inserter/hooks/use-patterns-paging.js +50 -0
  226. package/build-module/components/inserter/hooks/use-patterns-paging.js.map +1 -0
  227. package/build-module/components/inserter/hooks/use-patterns-state.js +22 -10
  228. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  229. package/build-module/components/inserter/menu.js +13 -11
  230. package/build-module/components/inserter/menu.js.map +1 -1
  231. package/build-module/components/inserter/search-results.js +4 -3
  232. package/build-module/components/inserter/search-results.js.map +1 -1
  233. package/build-module/components/inserter/tabs.js +1 -12
  234. package/build-module/components/inserter/tabs.js.map +1 -1
  235. package/build-module/components/inspector-controls/block-support-slot-container.js +13 -2
  236. package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -1
  237. package/build-module/components/inspector-controls/fill.js +25 -14
  238. package/build-module/components/inspector-controls/fill.js.map +1 -1
  239. package/build-module/components/inspector-controls/groups.js +5 -3
  240. package/build-module/components/inspector-controls/groups.js.map +1 -1
  241. package/build-module/components/inspector-controls/slot.js +15 -1
  242. package/build-module/components/inspector-controls/slot.js.map +1 -1
  243. package/build-module/components/inspector-controls-tabs/styles-tab.js +3 -0
  244. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  245. package/build-module/components/link-control/index.js +12 -2
  246. package/build-module/components/link-control/index.js.map +1 -1
  247. package/build-module/components/list-view/block-select-button.js +1 -3
  248. package/build-module/components/list-view/block-select-button.js.map +1 -1
  249. package/build-module/components/list-view/block.js +13 -1
  250. package/build-module/components/list-view/block.js.map +1 -1
  251. package/build-module/components/list-view/use-block-selection.js +30 -25
  252. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  253. package/build-module/components/media-placeholder/index.js +2 -2
  254. package/build-module/components/media-placeholder/index.js.map +1 -1
  255. package/build-module/components/media-placeholder/index.native.js +7 -7
  256. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  257. package/build-module/components/media-replace-flow/index.js +2 -3
  258. package/build-module/components/media-replace-flow/index.js.map +1 -1
  259. package/build-module/components/media-upload/constants.js +14 -0
  260. package/build-module/components/media-upload/constants.js.map +1 -0
  261. package/build-module/components/media-upload/index.native.js +53 -34
  262. package/build-module/components/media-upload/index.native.js.map +1 -1
  263. package/build-module/components/preview-options/index.js +1 -1
  264. package/build-module/components/preview-options/index.js.map +1 -1
  265. package/build-module/components/rich-text/index.js +35 -37
  266. package/build-module/components/rich-text/index.js.map +1 -1
  267. package/build-module/components/rich-text/index.native.js +15 -33
  268. package/build-module/components/rich-text/index.native.js.map +1 -1
  269. package/build-module/components/rich-text/multiline.js +87 -0
  270. package/build-module/components/rich-text/multiline.js.map +1 -0
  271. package/build-module/components/rich-text/split-value.js +10 -16
  272. package/build-module/components/rich-text/split-value.js.map +1 -1
  273. package/build-module/components/rich-text/use-enter.js +33 -42
  274. package/build-module/components/rich-text/use-enter.js.map +1 -1
  275. package/build-module/components/rich-text/use-paste-handler.js +19 -34
  276. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  277. package/build-module/components/spacing-sizes-control/utils.js +2 -2
  278. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  279. package/build-module/components/use-block-commands/index.js +28 -16
  280. package/build-module/components/use-block-commands/index.js.map +1 -1
  281. package/build-module/components/use-block-display-information/index.js +5 -2
  282. package/build-module/components/use-block-display-information/index.js.map +1 -1
  283. package/build-module/hooks/background.js +244 -0
  284. package/build-module/hooks/background.js.map +1 -0
  285. package/build-module/hooks/block-hooks.js +181 -0
  286. package/build-module/hooks/block-hooks.js.map +1 -0
  287. package/build-module/hooks/block-rename-ui.js +153 -0
  288. package/build-module/hooks/block-rename-ui.js.map +1 -0
  289. package/build-module/hooks/duotone.js +26 -39
  290. package/build-module/hooks/duotone.js.map +1 -1
  291. package/build-module/hooks/index.js +2 -2
  292. package/build-module/hooks/index.js.map +1 -1
  293. package/build-module/hooks/layout.js +33 -16
  294. package/build-module/hooks/layout.js.map +1 -1
  295. package/build-module/hooks/position.js +4 -2
  296. package/build-module/hooks/position.js.map +1 -1
  297. package/build-module/hooks/style.js +10 -3
  298. package/build-module/hooks/style.js.map +1 -1
  299. package/build-module/private-apis.js +2 -0
  300. package/build-module/private-apis.js.map +1 -1
  301. package/build-module/store/actions.js +33 -10
  302. package/build-module/store/actions.js.map +1 -1
  303. package/build-module/store/private-actions.js +39 -8
  304. package/build-module/store/private-actions.js.map +1 -1
  305. package/build-module/store/private-selectors.js +21 -0
  306. package/build-module/store/private-selectors.js.map +1 -1
  307. package/build-module/store/reducer.js +41 -1
  308. package/build-module/store/reducer.js.map +1 -1
  309. package/build-module/store/selectors.js +78 -22
  310. package/build-module/store/selectors.js.map +1 -1
  311. package/build-module/store/utils.js +0 -4
  312. package/build-module/store/utils.js.map +1 -1
  313. package/build-style/content-rtl.css +0 -1
  314. package/build-style/content.css +0 -1
  315. package/build-style/style-rtl.css +170 -127
  316. package/build-style/style.css +170 -127
  317. package/package.json +32 -32
  318. package/src/components/block-canvas/index.js +108 -0
  319. package/src/components/block-inspector/index.js +5 -1
  320. package/src/components/block-list/content.scss +0 -1
  321. package/src/components/block-patterns-list/index.js +32 -7
  322. package/src/components/block-patterns-list/style.scss +26 -9
  323. package/src/components/block-patterns-paging/index.js +92 -0
  324. package/src/components/block-patterns-paging/style.scss +42 -0
  325. package/src/components/block-settings-menu/block-settings-dropdown.js +44 -0
  326. package/src/components/block-settings-menu-controls/index.js +4 -9
  327. package/src/components/block-styles/index.js +1 -0
  328. package/src/components/block-styles/style.scss +3 -3
  329. package/src/components/block-toolbar/block-toolbar-menu.native.js +1 -6
  330. package/src/components/block-tools/block-contextual-toolbar.js +16 -5
  331. package/src/components/block-tools/block-selection-button.js +9 -1
  332. package/src/components/block-tools/style.scss +0 -98
  333. package/src/components/border-radius-control/input-controls.js +1 -1
  334. package/src/components/border-radius-control/linked-button.js +8 -11
  335. package/src/components/color-palette/test/__snapshots__/control.js.snap +34 -21
  336. package/src/components/colors/with-colors.js +3 -2
  337. package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -35
  338. package/src/components/default-block-appender/index.native.js +26 -3
  339. package/src/components/duotone/utils.js +65 -0
  340. package/src/components/editor-styles/index.js +32 -23
  341. package/src/components/global-styles/hooks.js +4 -112
  342. package/src/components/global-styles/image-settings-panel.js +71 -0
  343. package/src/components/global-styles/index.js +4 -3
  344. package/src/components/global-styles/use-global-styles-output.js +25 -16
  345. package/src/components/global-styles/utils.js +1 -2
  346. package/src/components/iframe/index.js +72 -33
  347. package/src/components/image-editor/use-save-image.js +2 -9
  348. package/src/components/image-editor/use-transform-image.js +9 -9
  349. package/src/components/index.js +1 -1
  350. package/src/components/index.native.js +2 -2
  351. package/src/components/inner-blocks/use-nested-settings-update.js +15 -10
  352. package/src/components/inserter/block-patterns-explorer/explorer.js +17 -5
  353. package/src/components/inserter/block-patterns-explorer/patterns-list.js +109 -40
  354. package/src/components/inserter/block-patterns-explorer/sidebar.js +23 -8
  355. package/src/components/inserter/block-patterns-source-filter.js +40 -0
  356. package/src/components/inserter/block-patterns-sync-filter.js +35 -0
  357. package/src/components/inserter/block-patterns-tab.js +168 -57
  358. package/src/components/inserter/hooks/use-patterns-paging.js +65 -0
  359. package/src/components/inserter/hooks/use-patterns-state.js +27 -16
  360. package/src/components/inserter/menu.js +15 -17
  361. package/src/components/inserter/search-results.js +6 -4
  362. package/src/components/inserter/style.scss +23 -2
  363. package/src/components/inserter/tabs.js +2 -12
  364. package/src/components/inserter/test/index.native.js +8 -12
  365. package/src/components/inspector-controls/block-support-slot-container.js +19 -3
  366. package/src/components/inspector-controls/fill.js +28 -14
  367. package/src/components/inspector-controls/groups.js +6 -2
  368. package/src/components/inspector-controls/slot.js +28 -3
  369. package/src/components/inspector-controls-tabs/styles-tab.js +4 -0
  370. package/src/components/link-control/index.js +13 -0
  371. package/src/components/link-control/style.scss +23 -2
  372. package/src/components/link-control/test/index.js +88 -6
  373. package/src/components/list-view/block-select-button.js +1 -3
  374. package/src/components/list-view/block.js +19 -1
  375. package/src/components/list-view/style.scss +1 -2
  376. package/src/components/list-view/use-block-selection.js +38 -32
  377. package/src/components/media-placeholder/README.md +2 -2
  378. package/src/components/media-placeholder/index.js +2 -2
  379. package/src/components/media-placeholder/index.native.js +11 -12
  380. package/src/components/media-replace-flow/index.js +2 -2
  381. package/src/components/media-replace-flow/test/index.js +5 -23
  382. package/src/components/media-upload/README.md +3 -2
  383. package/src/components/media-upload/constants.js +15 -0
  384. package/src/components/media-upload/index.native.js +66 -40
  385. package/src/components/media-upload/style.native.scss +4 -0
  386. package/src/components/media-upload/test/index.native.js +2 -2
  387. package/src/components/preview-options/README.md +7 -0
  388. package/src/components/preview-options/index.js +1 -1
  389. package/src/components/rich-text/index.js +48 -44
  390. package/src/components/rich-text/index.native.js +14 -42
  391. package/src/components/rich-text/multiline.js +121 -0
  392. package/src/components/rich-text/split-value.js +10 -35
  393. package/src/components/rich-text/use-enter.js +32 -42
  394. package/src/components/rich-text/use-paste-handler.js +16 -40
  395. package/src/components/spacing-sizes-control/style.scss +5 -7
  396. package/src/components/spacing-sizes-control/utils.js +1 -2
  397. package/src/components/use-block-commands/index.js +28 -20
  398. package/src/components/use-block-display-information/index.js +3 -0
  399. package/src/hooks/background.js +288 -0
  400. package/src/hooks/background.scss +57 -0
  401. package/src/hooks/block-hooks.js +257 -0
  402. package/src/hooks/block-hooks.scss +16 -0
  403. package/src/hooks/block-rename-ui.js +230 -0
  404. package/src/hooks/block-rename-ui.scss +3 -0
  405. package/src/hooks/duotone.js +42 -43
  406. package/src/hooks/index.js +2 -2
  407. package/src/hooks/layout.js +31 -33
  408. package/src/hooks/position.js +4 -3
  409. package/src/hooks/style.js +11 -2
  410. package/src/hooks/test/align.native.js +4 -3
  411. package/src/private-apis.js +2 -0
  412. package/src/store/actions.js +52 -10
  413. package/src/store/private-actions.js +37 -6
  414. package/src/store/private-selectors.js +21 -0
  415. package/src/store/reducer.js +38 -0
  416. package/src/store/selectors.js +107 -26
  417. package/src/store/test/actions.js +19 -8
  418. package/src/store/test/private-actions.js +17 -0
  419. package/src/store/test/reducer.js +25 -0
  420. package/src/store/test/selectors.js +130 -123
  421. package/src/store/utils.js +3 -10
  422. package/src/style.scss +4 -0
  423. package/build/components/duotone/components.js +0 -135
  424. package/build/components/duotone/components.js.map +0 -1
  425. package/build/components/duotone/index.js +0 -38
  426. package/build/components/duotone/index.js.map +0 -1
  427. package/build/components/global-styles/behaviors-panel.js +0 -64
  428. package/build/components/global-styles/behaviors-panel.js.map +0 -1
  429. package/build/components/inserter/reusable-blocks-tab.js +0 -85
  430. package/build/components/inserter/reusable-blocks-tab.js.map +0 -1
  431. package/build/hooks/auto-inserting-blocks.js +0 -174
  432. package/build/hooks/auto-inserting-blocks.js.map +0 -1
  433. package/build/hooks/behaviors.js +0 -173
  434. package/build/hooks/behaviors.js.map +0 -1
  435. package/build-module/components/duotone/components.js +0 -126
  436. package/build-module/components/duotone/components.js.map +0 -1
  437. package/build-module/components/duotone/index.js +0 -3
  438. package/build-module/components/duotone/index.js.map +0 -1
  439. package/build-module/components/global-styles/behaviors-panel.js +0 -57
  440. package/build-module/components/global-styles/behaviors-panel.js.map +0 -1
  441. package/build-module/components/inserter/reusable-blocks-tab.js +0 -76
  442. package/build-module/components/inserter/reusable-blocks-tab.js.map +0 -1
  443. package/build-module/hooks/auto-inserting-blocks.js +0 -167
  444. package/build-module/hooks/auto-inserting-blocks.js.map +0 -1
  445. package/build-module/hooks/behaviors.js +0 -166
  446. package/build-module/hooks/behaviors.js.map +0 -1
  447. package/src/components/duotone/components.js +0 -133
  448. package/src/components/duotone/index.js +0 -7
  449. package/src/components/global-styles/behaviors-panel.js +0 -71
  450. package/src/components/inserter/reusable-blocks-tab.js +0 -84
  451. package/src/components/inserter/test/reusable-blocks-tab.js +0 -73
  452. package/src/hooks/auto-inserting-blocks.js +0 -232
  453. package/src/hooks/behaviors.js +0 -206
@@ -1 +1 @@
1
- {"version":3,"names":["useLayoutEffect","useMemo","useSelect","useDispatch","useRegistry","deprecated","store","blockEditorStore","getLayoutType","pendingSettingsUpdates","WeakMap","useNestedSettingsUpdate","clientId","allowedBlocks","prioritizedInserterBlocks","defaultBlock","directInsert","__experimentalDefaultBlock","__experimentalDirectInsert","templateLock","captureToolbars","orientation","layout","updateBlockListSettings","registry","parentLock","select","rootClientId","getBlockRootClientId","getTemplateLock","_allowedBlocks","_prioritizedInserterBlocks","_templateLock","undefined","newSettings","__experimentalCaptureToolbars","layoutType","type","getOrientation","alternative","since","version","get","set","push","window","queueMicrotask","length","batch","forEach","args"],"sources":["@wordpress/block-editor/src/components/inner-blocks/use-nested-settings-update.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useLayoutEffect, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { getLayoutType } from '../../layouts';\n\n/** @typedef {import('../../selectors').WPDirectInsertBlock } WPDirectInsertBlock */\n\nconst pendingSettingsUpdates = new WeakMap();\n\n/**\n * This hook is a side effect which updates the block-editor store when changes\n * happen to inner block settings. The given props are transformed into a\n * settings object, and if that is different from the current settings object in\n * the block-editor store, then the store is updated with the new settings which\n * came from props.\n *\n * @param {string} clientId The client ID of the block to update.\n * @param {string[]} allowedBlocks An array of block names which are permitted\n * in inner blocks.\n * @param {string[]} prioritizedInserterBlocks Block names and/or block variations to be prioritized in the inserter, in the format {blockName}/{variationName}.\n * @param {?WPDirectInsertBlock} defaultBlock The default block to insert: [ blockName, { blockAttributes } ].\n * @param {?Function|boolean} directInsert If a default block should be inserted directly by the appender.\n *\n * @param {?WPDirectInsertBlock} __experimentalDefaultBlock A deprecated prop for the default block to insert: [ blockName, { blockAttributes } ]. Use `defaultBlock` instead.\n *\n * @param {?Function|boolean} __experimentalDirectInsert A deprecated prop for whether a default block should be inserted directly by the appender. Use `directInsert` instead.\n *\n * @param {string} [templateLock] The template lock specified for the inner\n * blocks component. (e.g. \"all\")\n * @param {boolean} captureToolbars Whether or children toolbars should be shown\n * in the inner blocks component rather than on\n * the child block.\n * @param {string} orientation The direction in which the block\n * should face.\n * @param {Object} layout The layout object for the block container.\n */\nexport default function useNestedSettingsUpdate(\n\tclientId,\n\tallowedBlocks,\n\tprioritizedInserterBlocks,\n\tdefaultBlock,\n\tdirectInsert,\n\t__experimentalDefaultBlock,\n\t__experimentalDirectInsert,\n\ttemplateLock,\n\tcaptureToolbars,\n\torientation,\n\tlayout\n) {\n\tconst { updateBlockListSettings } = useDispatch( blockEditorStore );\n\tconst registry = useRegistry();\n\n\tconst { parentLock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst rootClientId =\n\t\t\t\tselect( blockEditorStore ).getBlockRootClientId( clientId );\n\t\t\treturn {\n\t\t\t\tparentLock:\n\t\t\t\t\tselect( blockEditorStore ).getTemplateLock( rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Memoize allowedBlocks and prioritisedInnerBlocks based on the contents\n\t// of the arrays. Implementors often pass a new array on every render,\n\t// and the contents of the arrays are just strings, so the entire array\n\t// can be passed as dependencies.\n\n\tconst _allowedBlocks = useMemo(\n\t\t() => allowedBlocks,\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tallowedBlocks\n\t);\n\n\tconst _prioritizedInserterBlocks = useMemo(\n\t\t() => prioritizedInserterBlocks,\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tprioritizedInserterBlocks\n\t);\n\n\tconst _templateLock =\n\t\ttemplateLock === undefined || parentLock === 'contentOnly'\n\t\t\t? parentLock\n\t\t\t: templateLock;\n\n\tuseLayoutEffect( () => {\n\t\tconst newSettings = {\n\t\t\tallowedBlocks: _allowedBlocks,\n\t\t\tprioritizedInserterBlocks: _prioritizedInserterBlocks,\n\t\t\ttemplateLock: _templateLock,\n\t\t};\n\n\t\t// These values are not defined for RN, so only include them if they\n\t\t// are defined.\n\t\tif ( captureToolbars !== undefined ) {\n\t\t\tnewSettings.__experimentalCaptureToolbars = captureToolbars;\n\t\t}\n\n\t\t// Orientation depends on layout,\n\t\t// ideally the separate orientation prop should be deprecated.\n\t\tif ( orientation !== undefined ) {\n\t\t\tnewSettings.orientation = orientation;\n\t\t} else {\n\t\t\tconst layoutType = getLayoutType( layout?.type );\n\t\t\tnewSettings.orientation = layoutType.getOrientation( layout );\n\t\t}\n\n\t\tif ( __experimentalDefaultBlock !== undefined ) {\n\t\t\tdeprecated( '__experimentalDefaultBlock', {\n\t\t\t\talternative: 'defaultBlock',\n\t\t\t\tsince: '6.3',\n\t\t\t\tversion: '6.4',\n\t\t\t} );\n\t\t\tnewSettings.defaultBlock = __experimentalDefaultBlock;\n\t\t}\n\n\t\tif ( defaultBlock !== undefined ) {\n\t\t\tnewSettings.defaultBlock = defaultBlock;\n\t\t}\n\n\t\tif ( __experimentalDirectInsert !== undefined ) {\n\t\t\tdeprecated( '__experimentalDirectInsert', {\n\t\t\t\talternative: 'directInsert',\n\t\t\t\tsince: '6.3',\n\t\t\t\tversion: '6.4',\n\t\t\t} );\n\t\t\tnewSettings.directInsert = __experimentalDirectInsert;\n\t\t}\n\n\t\tif ( directInsert !== undefined ) {\n\t\t\tnewSettings.directInsert = directInsert;\n\t\t}\n\n\t\t// Batch updates to block list settings to avoid triggering cascading renders\n\t\t// for each container block included in a tree and optimize initial render.\n\t\t// To avoid triggering updateBlockListSettings for each container block\n\t\t// causing X re-renderings for X container blocks,\n\t\t// we batch all the updatedBlockListSettings in a single \"data\" batch\n\t\t// which results in a single re-render.\n\t\tif ( ! pendingSettingsUpdates.get( registry ) ) {\n\t\t\tpendingSettingsUpdates.set( registry, [] );\n\t\t}\n\t\tpendingSettingsUpdates\n\t\t\t.get( registry )\n\t\t\t.push( [ clientId, newSettings ] );\n\t\twindow.queueMicrotask( () => {\n\t\t\tif ( pendingSettingsUpdates.get( registry )?.length ) {\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\tpendingSettingsUpdates\n\t\t\t\t\t\t.get( registry )\n\t\t\t\t\t\t.forEach( ( args ) => {\n\t\t\t\t\t\t\tupdateBlockListSettings( ...args );\n\t\t\t\t\t\t} );\n\t\t\t\t\tpendingSettingsUpdates.set( registry, [] );\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t}, [\n\t\tclientId,\n\t\t_allowedBlocks,\n\t\t_prioritizedInserterBlocks,\n\t\t_templateLock,\n\t\tdefaultBlock,\n\t\tdirectInsert,\n\t\t__experimentalDefaultBlock,\n\t\t__experimentalDirectInsert,\n\t\tcaptureToolbars,\n\t\torientation,\n\t\tupdateBlockListSettings,\n\t\tlayout,\n\t\tregistry,\n\t] );\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["useLayoutEffect","useMemo","useState","useSelect","useDispatch","useRegistry","deprecated","isShallowEqual","store","blockEditorStore","getLayoutType","pendingSettingsUpdates","WeakMap","useShallowMemo","value","prevValue","setPrevValue","useNestedSettingsUpdate","clientId","allowedBlocks","prioritizedInserterBlocks","defaultBlock","directInsert","__experimentalDefaultBlock","__experimentalDirectInsert","templateLock","captureToolbars","orientation","layout","updateBlockListSettings","registry","parentLock","select","rootClientId","getBlockRootClientId","getTemplateLock","_allowedBlocks","_prioritizedInserterBlocks","_templateLock","undefined","newSettings","__experimentalCaptureToolbars","layoutType","type","getOrientation","alternative","since","version","get","set","push","window","queueMicrotask","length","batch","forEach","args"],"sources":["@wordpress/block-editor/src/components/inner-blocks/use-nested-settings-update.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useLayoutEffect, useMemo, useState } from '@wordpress/element';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { getLayoutType } from '../../layouts';\n\n/** @typedef {import('../../selectors').WPDirectInsertBlock } WPDirectInsertBlock */\n\nconst pendingSettingsUpdates = new WeakMap();\n\nfunction useShallowMemo( value ) {\n\tconst [ prevValue, setPrevValue ] = useState( value );\n\tif ( ! isShallowEqual( prevValue, value ) ) {\n\t\tsetPrevValue( value );\n\t}\n\treturn prevValue;\n}\n\n/**\n * This hook is a side effect which updates the block-editor store when changes\n * happen to inner block settings. The given props are transformed into a\n * settings object, and if that is different from the current settings object in\n * the block-editor store, then the store is updated with the new settings which\n * came from props.\n *\n * @param {string} clientId The client ID of the block to update.\n * @param {string[]} allowedBlocks An array of block names which are permitted\n * in inner blocks.\n * @param {string[]} prioritizedInserterBlocks Block names and/or block variations to be prioritized in the inserter, in the format {blockName}/{variationName}.\n * @param {?WPDirectInsertBlock} defaultBlock The default block to insert: [ blockName, { blockAttributes } ].\n * @param {?Function|boolean} directInsert If a default block should be inserted directly by the appender.\n *\n * @param {?WPDirectInsertBlock} __experimentalDefaultBlock A deprecated prop for the default block to insert: [ blockName, { blockAttributes } ]. Use `defaultBlock` instead.\n *\n * @param {?Function|boolean} __experimentalDirectInsert A deprecated prop for whether a default block should be inserted directly by the appender. Use `directInsert` instead.\n *\n * @param {string} [templateLock] The template lock specified for the inner\n * blocks component. (e.g. \"all\")\n * @param {boolean} captureToolbars Whether or children toolbars should be shown\n * in the inner blocks component rather than on\n * the child block.\n * @param {string} orientation The direction in which the block\n * should face.\n * @param {Object} layout The layout object for the block container.\n */\nexport default function useNestedSettingsUpdate(\n\tclientId,\n\tallowedBlocks,\n\tprioritizedInserterBlocks,\n\tdefaultBlock,\n\tdirectInsert,\n\t__experimentalDefaultBlock,\n\t__experimentalDirectInsert,\n\ttemplateLock,\n\tcaptureToolbars,\n\torientation,\n\tlayout\n) {\n\tconst { updateBlockListSettings } = useDispatch( blockEditorStore );\n\tconst registry = useRegistry();\n\n\tconst { parentLock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst rootClientId =\n\t\t\t\tselect( blockEditorStore ).getBlockRootClientId( clientId );\n\t\t\treturn {\n\t\t\t\tparentLock:\n\t\t\t\t\tselect( blockEditorStore ).getTemplateLock( rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Implementors often pass a new array on every render,\n\t// and the contents of the arrays are just strings, so the entire array\n\t// can be passed as dependencies but We need to include the length of the array,\n\t// otherwise if the arrays change length but the first elements are equal the comparison,\n\t// does not works as expected.\n\tconst _allowedBlocks = useShallowMemo( allowedBlocks );\n\n\tconst _prioritizedInserterBlocks = useMemo(\n\t\t() => prioritizedInserterBlocks,\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tprioritizedInserterBlocks\n\t);\n\n\tconst _templateLock =\n\t\ttemplateLock === undefined || parentLock === 'contentOnly'\n\t\t\t? parentLock\n\t\t\t: templateLock;\n\n\tuseLayoutEffect( () => {\n\t\tconst newSettings = {\n\t\t\tallowedBlocks: _allowedBlocks,\n\t\t\tprioritizedInserterBlocks: _prioritizedInserterBlocks,\n\t\t\ttemplateLock: _templateLock,\n\t\t};\n\n\t\t// These values are not defined for RN, so only include them if they\n\t\t// are defined.\n\t\tif ( captureToolbars !== undefined ) {\n\t\t\tnewSettings.__experimentalCaptureToolbars = captureToolbars;\n\t\t}\n\n\t\t// Orientation depends on layout,\n\t\t// ideally the separate orientation prop should be deprecated.\n\t\tif ( orientation !== undefined ) {\n\t\t\tnewSettings.orientation = orientation;\n\t\t} else {\n\t\t\tconst layoutType = getLayoutType( layout?.type );\n\t\t\tnewSettings.orientation = layoutType.getOrientation( layout );\n\t\t}\n\n\t\tif ( __experimentalDefaultBlock !== undefined ) {\n\t\t\tdeprecated( '__experimentalDefaultBlock', {\n\t\t\t\talternative: 'defaultBlock',\n\t\t\t\tsince: '6.3',\n\t\t\t\tversion: '6.4',\n\t\t\t} );\n\t\t\tnewSettings.defaultBlock = __experimentalDefaultBlock;\n\t\t}\n\n\t\tif ( defaultBlock !== undefined ) {\n\t\t\tnewSettings.defaultBlock = defaultBlock;\n\t\t}\n\n\t\tif ( __experimentalDirectInsert !== undefined ) {\n\t\t\tdeprecated( '__experimentalDirectInsert', {\n\t\t\t\talternative: 'directInsert',\n\t\t\t\tsince: '6.3',\n\t\t\t\tversion: '6.4',\n\t\t\t} );\n\t\t\tnewSettings.directInsert = __experimentalDirectInsert;\n\t\t}\n\n\t\tif ( directInsert !== undefined ) {\n\t\t\tnewSettings.directInsert = directInsert;\n\t\t}\n\n\t\t// Batch updates to block list settings to avoid triggering cascading renders\n\t\t// for each container block included in a tree and optimize initial render.\n\t\t// To avoid triggering updateBlockListSettings for each container block\n\t\t// causing X re-renderings for X container blocks,\n\t\t// we batch all the updatedBlockListSettings in a single \"data\" batch\n\t\t// which results in a single re-render.\n\t\tif ( ! pendingSettingsUpdates.get( registry ) ) {\n\t\t\tpendingSettingsUpdates.set( registry, [] );\n\t\t}\n\t\tpendingSettingsUpdates\n\t\t\t.get( registry )\n\t\t\t.push( [ clientId, newSettings ] );\n\t\twindow.queueMicrotask( () => {\n\t\t\tif ( pendingSettingsUpdates.get( registry )?.length ) {\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\tpendingSettingsUpdates\n\t\t\t\t\t\t.get( registry )\n\t\t\t\t\t\t.forEach( ( args ) => {\n\t\t\t\t\t\t\tupdateBlockListSettings( ...args );\n\t\t\t\t\t\t} );\n\t\t\t\t\tpendingSettingsUpdates.set( registry, [] );\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t}, [\n\t\tclientId,\n\t\t_allowedBlocks,\n\t\t_prioritizedInserterBlocks,\n\t\t_templateLock,\n\t\tdefaultBlock,\n\t\tdirectInsert,\n\t\t__experimentalDefaultBlock,\n\t\t__experimentalDirectInsert,\n\t\tcaptureToolbars,\n\t\torientation,\n\t\tupdateBlockListSettings,\n\t\tlayout,\n\t\tregistry,\n\t] );\n}\n"],"mappings":"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"}
@@ -11,24 +11,30 @@ import { __ } from '@wordpress/i18n';
11
11
  */
12
12
  import PatternExplorerSidebar from './sidebar';
13
13
  import PatternList from './patterns-list';
14
+ import { usePatternsCategories } from '../block-patterns-tab';
14
15
  function PatternsExplorer({
15
16
  initialCategory,
16
- patternCategories
17
+ rootClientId
17
18
  }) {
18
- const [filterValue, setFilterValue] = useState('');
19
+ const [searchValue, setSearchValue] = useState('');
20
+ const [patternSourceFilter, setPatternSourceFilter] = useState('all');
19
21
  const [selectedCategory, setSelectedCategory] = useState(initialCategory?.name);
22
+ const patternCategories = usePatternsCategories(rootClientId, patternSourceFilter);
20
23
  return createElement("div", {
21
24
  className: "block-editor-block-patterns-explorer"
22
25
  }, createElement(PatternExplorerSidebar, {
23
26
  selectedCategory: selectedCategory,
24
27
  patternCategories: patternCategories,
25
28
  onClickCategory: setSelectedCategory,
26
- filterValue: filterValue,
27
- setFilterValue: setFilterValue
29
+ searchValue: searchValue,
30
+ setSearchValue: setSearchValue,
31
+ patternSourceFilter: patternSourceFilter,
32
+ setPatternSourceFilter: setPatternSourceFilter
28
33
  }), createElement(PatternList, {
29
- filterValue: filterValue,
34
+ searchValue: searchValue,
30
35
  selectedCategory: selectedCategory,
31
- patternCategories: patternCategories
36
+ patternCategories: patternCategories,
37
+ patternSourceFilter: patternSourceFilter
32
38
  }));
33
39
  }
34
40
  function PatternsExplorerModal({
@@ -1 +1 @@
1
- {"version":3,"names":["Modal","useState","__","PatternExplorerSidebar","PatternList","PatternsExplorer","initialCategory","patternCategories","filterValue","setFilterValue","selectedCategory","setSelectedCategory","name","createElement","className","onClickCategory","PatternsExplorerModal","onModalClose","restProps","title","onRequestClose","isFullScreen"],"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-explorer/explorer.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Modal } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PatternExplorerSidebar from './sidebar';\nimport PatternList from './patterns-list';\n\nfunction PatternsExplorer( { initialCategory, patternCategories } ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ selectedCategory, setSelectedCategory ] = useState(\n\t\tinitialCategory?.name\n\t);\n\treturn (\n\t\t<div className=\"block-editor-block-patterns-explorer\">\n\t\t\t<PatternExplorerSidebar\n\t\t\t\tselectedCategory={ selectedCategory }\n\t\t\t\tpatternCategories={ patternCategories }\n\t\t\t\tonClickCategory={ setSelectedCategory }\n\t\t\t\tfilterValue={ filterValue }\n\t\t\t\tsetFilterValue={ setFilterValue }\n\t\t\t/>\n\t\t\t<PatternList\n\t\t\t\tfilterValue={ filterValue }\n\t\t\t\tselectedCategory={ selectedCategory }\n\t\t\t\tpatternCategories={ patternCategories }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction PatternsExplorerModal( { onModalClose, ...restProps } ) {\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Patterns' ) }\n\t\t\tonRequestClose={ onModalClose }\n\t\t\tisFullScreen\n\t\t>\n\t\t\t<PatternsExplorer { ...restProps } />\n\t\t</Modal>\n\t);\n}\n\nexport default PatternsExplorerModal;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAOC,sBAAsB,MAAM,WAAW;AAC9C,OAAOC,WAAW,MAAM,iBAAiB;AAEzC,SAASC,gBAAgBA,CAAE;EAAEC,eAAe;EAAEC;AAAkB,CAAC,EAAG;EACnE,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAGR,QAAQ,CAAE,EAAG,CAAC;EACtD,MAAM,CAAES,gBAAgB,EAAEC,mBAAmB,CAAE,GAAGV,QAAQ,CACzDK,eAAe,EAAEM,IAClB,CAAC;EACD,OACCC,aAAA;IAAKC,SAAS,EAAC;EAAsC,GACpDD,aAAA,CAACV,sBAAsB;IACtBO,gBAAgB,EAAGA,gBAAkB;IACrCH,iBAAiB,EAAGA,iBAAmB;IACvCQ,eAAe,EAAGJ,mBAAqB;IACvCH,WAAW,EAAGA,WAAa;IAC3BC,cAAc,EAAGA;EAAgB,CACjC,CAAC,EACFI,aAAA,CAACT,WAAW;IACXI,WAAW,EAAGA,WAAa;IAC3BE,gBAAgB,EAAGA,gBAAkB;IACrCH,iBAAiB,EAAGA;EAAmB,CACvC,CACG,CAAC;AAER;AAEA,SAASS,qBAAqBA,CAAE;EAAEC,YAAY;EAAE,GAAGC;AAAU,CAAC,EAAG;EAChE,OACCL,aAAA,CAACb,KAAK;IACLmB,KAAK,EAAGjB,EAAE,CAAE,UAAW,CAAG;IAC1BkB,cAAc,EAAGH,YAAc;IAC/BI,YAAY;EAAA,GAEZR,aAAA,CAACR,gBAAgB;IAAA,GAAMa;EAAS,CAAI,CAC9B,CAAC;AAEV;AAEA,eAAeF,qBAAqB"}
1
+ {"version":3,"names":["Modal","useState","__","PatternExplorerSidebar","PatternList","usePatternsCategories","PatternsExplorer","initialCategory","rootClientId","searchValue","setSearchValue","patternSourceFilter","setPatternSourceFilter","selectedCategory","setSelectedCategory","name","patternCategories","createElement","className","onClickCategory","PatternsExplorerModal","onModalClose","restProps","title","onRequestClose","isFullScreen"],"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-explorer/explorer.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Modal } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PatternExplorerSidebar from './sidebar';\nimport PatternList from './patterns-list';\nimport { usePatternsCategories } from '../block-patterns-tab';\n\nfunction PatternsExplorer( { initialCategory, rootClientId } ) {\n\tconst [ searchValue, setSearchValue ] = useState( '' );\n\tconst [ patternSourceFilter, setPatternSourceFilter ] = useState( 'all' );\n\n\tconst [ selectedCategory, setSelectedCategory ] = useState(\n\t\tinitialCategory?.name\n\t);\n\n\tconst patternCategories = usePatternsCategories(\n\t\trootClientId,\n\t\tpatternSourceFilter\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-block-patterns-explorer\">\n\t\t\t<PatternExplorerSidebar\n\t\t\t\tselectedCategory={ selectedCategory }\n\t\t\t\tpatternCategories={ patternCategories }\n\t\t\t\tonClickCategory={ setSelectedCategory }\n\t\t\t\tsearchValue={ searchValue }\n\t\t\t\tsetSearchValue={ setSearchValue }\n\t\t\t\tpatternSourceFilter={ patternSourceFilter }\n\t\t\t\tsetPatternSourceFilter={ setPatternSourceFilter }\n\t\t\t/>\n\t\t\t<PatternList\n\t\t\t\tsearchValue={ searchValue }\n\t\t\t\tselectedCategory={ selectedCategory }\n\t\t\t\tpatternCategories={ patternCategories }\n\t\t\t\tpatternSourceFilter={ patternSourceFilter }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction PatternsExplorerModal( { onModalClose, ...restProps } ) {\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Patterns' ) }\n\t\t\tonRequestClose={ onModalClose }\n\t\t\tisFullScreen\n\t\t>\n\t\t\t<PatternsExplorer { ...restProps } />\n\t\t</Modal>\n\t);\n}\n\nexport default PatternsExplorerModal;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAOC,sBAAsB,MAAM,WAAW;AAC9C,OAAOC,WAAW,MAAM,iBAAiB;AACzC,SAASC,qBAAqB,QAAQ,uBAAuB;AAE7D,SAASC,gBAAgBA,CAAE;EAAEC,eAAe;EAAEC;AAAa,CAAC,EAAG;EAC9D,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAGT,QAAQ,CAAE,EAAG,CAAC;EACtD,MAAM,CAAEU,mBAAmB,EAAEC,sBAAsB,CAAE,GAAGX,QAAQ,CAAE,KAAM,CAAC;EAEzE,MAAM,CAAEY,gBAAgB,EAAEC,mBAAmB,CAAE,GAAGb,QAAQ,CACzDM,eAAe,EAAEQ,IAClB,CAAC;EAED,MAAMC,iBAAiB,GAAGX,qBAAqB,CAC9CG,YAAY,EACZG,mBACD,CAAC;EAED,OACCM,aAAA;IAAKC,SAAS,EAAC;EAAsC,GACpDD,aAAA,CAACd,sBAAsB;IACtBU,gBAAgB,EAAGA,gBAAkB;IACrCG,iBAAiB,EAAGA,iBAAmB;IACvCG,eAAe,EAAGL,mBAAqB;IACvCL,WAAW,EAAGA,WAAa;IAC3BC,cAAc,EAAGA,cAAgB;IACjCC,mBAAmB,EAAGA,mBAAqB;IAC3CC,sBAAsB,EAAGA;EAAwB,CACjD,CAAC,EACFK,aAAA,CAACb,WAAW;IACXK,WAAW,EAAGA,WAAa;IAC3BI,gBAAgB,EAAGA,gBAAkB;IACrCG,iBAAiB,EAAGA,iBAAmB;IACvCL,mBAAmB,EAAGA;EAAqB,CAC3C,CACG,CAAC;AAER;AAEA,SAASS,qBAAqBA,CAAE;EAAEC,YAAY;EAAE,GAAGC;AAAU,CAAC,EAAG;EAChE,OACCL,aAAA,CAACjB,KAAK;IACLuB,KAAK,EAAGrB,EAAE,CAAE,UAAW,CAAG;IAC1BsB,cAAc,EAAGH,YAAc;IAC/BI,YAAY;EAAA,GAEZR,aAAA,CAACX,gBAAgB;IAAA,GAAMgB;EAAS,CAAI,CAC9B,CAAC;AAEV;AAEA,eAAeF,qBAAqB"}
@@ -2,9 +2,9 @@ import { createElement } from "@wordpress/element";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
5
- import { useMemo, useEffect } from '@wordpress/element';
5
+ import { useMemo, useEffect, useRef, useState } from '@wordpress/element';
6
6
  import { _n, sprintf } from '@wordpress/i18n';
7
- import { useDebounce, useAsyncList } from '@wordpress/compose';
7
+ import { useDebounce } from '@wordpress/compose';
8
8
  import { __experimentalHeading as Heading } from '@wordpress/components';
9
9
  import { speak } from '@wordpress/a11y';
10
10
 
@@ -12,68 +12,102 @@ import { speak } from '@wordpress/a11y';
12
12
  * Internal dependencies
13
13
  */
14
14
  import BlockPatternsList from '../../block-patterns-list';
15
- import InserterNoResults from '../no-results';
16
15
  import useInsertionPoint from '../hooks/use-insertion-point';
17
16
  import usePatternsState from '../hooks/use-patterns-state';
18
17
  import InserterListbox from '../../inserter-listbox';
19
18
  import { searchItems } from '../search-items';
20
- const INITIAL_INSERTER_RESULTS = 2;
19
+ import BlockPatternsPaging from '../../block-patterns-paging';
20
+ import usePatternsPaging from '../hooks/use-patterns-paging';
21
+ import { allPatternsCategory, isPatternFiltered } from '../block-patterns-tab';
22
+ import { BlockPatternsSyncFilter } from '../block-patterns-sync-filter';
23
+ import { PATTERN_TYPES, PATTERN_SOURCE_FILTERS } from '../block-patterns-source-filter';
21
24
  function PatternsListHeader({
22
25
  filterValue,
23
- filteredBlockPatternsLength
26
+ filteredBlockPatternsLength,
27
+ selectedCategory,
28
+ patternCategories
24
29
  }) {
25
30
  if (!filterValue) {
26
31
  return null;
27
32
  }
33
+ let filter = filterValue;
34
+ if (selectedCategory !== allPatternsCategory.name) {
35
+ const category = patternCategories.find(patternCategory => patternCategory.name === selectedCategory);
36
+ if (category) {
37
+ filter = `${filter} - ${category?.label}`;
38
+ }
39
+ }
28
40
  return createElement(Heading, {
29
41
  level: 2,
30
42
  lineHeight: '48px',
31
43
  className: "block-editor-block-patterns-explorer__search-results-count"
32
44
  }, sprintf( /* translators: %d: number of patterns. %s: block pattern search query */
33
- _n('%1$d pattern found for "%2$s"', '%1$d patterns found for "%2$s"', filteredBlockPatternsLength), filteredBlockPatternsLength, filterValue));
45
+ _n('%1$d pattern found for "%2$s"', '%1$d patterns found for "%2$s"', filteredBlockPatternsLength), filteredBlockPatternsLength, filter));
34
46
  }
35
47
  function PatternList({
36
- filterValue,
48
+ searchValue,
49
+ patternSourceFilter,
37
50
  selectedCategory,
38
51
  patternCategories
39
52
  }) {
53
+ const [patternSyncFilter, setPatternSyncFilter] = useState('all');
54
+ const container = useRef();
40
55
  const debouncedSpeak = useDebounce(speak, 500);
41
56
  const [destinationRootClientId, onInsertBlocks] = useInsertionPoint({
42
57
  shouldFocusBlock: true
43
58
  });
44
- const [allPatterns,, onSelectBlockPattern] = usePatternsState(onInsertBlocks, destinationRootClientId);
59
+ const [patterns,, onClickPattern] = usePatternsState(onInsertBlocks, destinationRootClientId);
45
60
  const registeredPatternCategories = useMemo(() => patternCategories.map(patternCategory => patternCategory.name), [patternCategories]);
46
61
  const filteredBlockPatterns = useMemo(() => {
47
- if (!filterValue) {
48
- return allPatterns.filter(pattern => selectedCategory === 'uncategorized' ? !pattern.categories?.length || pattern.categories.every(category => !registeredPatternCategories.includes(category)) : pattern.categories?.includes(selectedCategory));
62
+ const filteredPatterns = patterns.filter(pattern => {
63
+ if (isPatternFiltered(pattern, patternSourceFilter, patternSyncFilter)) {
64
+ return false;
65
+ }
66
+ if (selectedCategory === allPatternsCategory.name) {
67
+ return true;
68
+ }
69
+ if (selectedCategory === 'uncategorized') {
70
+ const hasKnownCategory = pattern.categories.some(category => registeredPatternCategories.includes(category));
71
+ return !pattern.categories?.length || !hasKnownCategory;
72
+ }
73
+ return pattern.categories?.includes(selectedCategory);
74
+ });
75
+ if (!searchValue) {
76
+ return filteredPatterns;
49
77
  }
50
- return searchItems(allPatterns, filterValue);
51
- }, [filterValue, allPatterns, selectedCategory, registeredPatternCategories]);
78
+ return searchItems(filteredPatterns, searchValue, patternSourceFilter);
79
+ }, [searchValue, patternSourceFilter, patterns, selectedCategory, registeredPatternCategories, patternSyncFilter]);
52
80
 
53
81
  // Announce search results on change.
54
82
  useEffect(() => {
55
- if (!filterValue) {
83
+ if (!searchValue) {
56
84
  return;
57
85
  }
58
86
  const count = filteredBlockPatterns.length;
59
87
  const resultsFoundMessage = sprintf( /* translators: %d: number of results. */
60
88
  _n('%d result found.', '%d results found.', count), count);
61
89
  debouncedSpeak(resultsFoundMessage);
62
- }, [filterValue, debouncedSpeak, filteredBlockPatterns.length]);
63
- const currentShownPatterns = useAsyncList(filteredBlockPatterns, {
64
- step: INITIAL_INSERTER_RESULTS
65
- });
90
+ }, [searchValue, debouncedSpeak, filteredBlockPatterns.length]);
91
+ const pagingProps = usePatternsPaging(filteredBlockPatterns, selectedCategory, container, patternSourceFilter);
66
92
  const hasItems = !!filteredBlockPatterns?.length;
67
93
  return createElement("div", {
68
- className: "block-editor-block-patterns-explorer__list"
69
- }, hasItems && createElement(PatternsListHeader, {
70
- filterValue: filterValue,
71
- filteredBlockPatternsLength: filteredBlockPatterns.length
72
- }), createElement(InserterListbox, null, !hasItems && createElement(InserterNoResults, null), hasItems && createElement(BlockPatternsList, {
73
- shownPatterns: currentShownPatterns,
74
- blockPatterns: filteredBlockPatterns,
75
- onClickPattern: onSelectBlockPattern,
94
+ className: "block-editor-block-patterns-explorer__list",
95
+ ref: container
96
+ }, createElement(PatternsListHeader, {
97
+ filterValue: searchValue || PATTERN_SOURCE_FILTERS[patternSourceFilter],
98
+ filteredBlockPatternsLength: filteredBlockPatterns.length,
99
+ selectedCategory: selectedCategory,
100
+ patternCategories: patternCategories
101
+ }), createElement(InserterListbox, null, patternSourceFilter === PATTERN_TYPES.user && !searchValue && createElement(BlockPatternsSyncFilter, {
102
+ patternSyncFilter: patternSyncFilter,
103
+ setPatternSyncFilter: setPatternSyncFilter
104
+ }), hasItems && createElement(BlockPatternsList, {
105
+ shownPatterns: pagingProps.categoryPatternsAsyncList,
106
+ blockPatterns: pagingProps.categoryPatterns,
107
+ onClickPattern: onClickPattern,
76
108
  isDraggable: false
109
+ }), pagingProps.numPages > 1 && createElement(BlockPatternsPaging, {
110
+ ...pagingProps
77
111
  })));
78
112
  }
79
113
  export default PatternList;
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","useEffect","_n","sprintf","useDebounce","useAsyncList","__experimentalHeading","Heading","speak","BlockPatternsList","InserterNoResults","useInsertionPoint","usePatternsState","InserterListbox","searchItems","INITIAL_INSERTER_RESULTS","PatternsListHeader","filterValue","filteredBlockPatternsLength","createElement","level","lineHeight","className","PatternList","selectedCategory","patternCategories","debouncedSpeak","destinationRootClientId","onInsertBlocks","shouldFocusBlock","allPatterns","onSelectBlockPattern","registeredPatternCategories","map","patternCategory","name","filteredBlockPatterns","filter","pattern","categories","length","every","category","includes","count","resultsFoundMessage","currentShownPatterns","step","hasItems","shownPatterns","blockPatterns","onClickPattern","isDraggable"],"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-explorer/patterns-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useEffect } from '@wordpress/element';\nimport { _n, sprintf } from '@wordpress/i18n';\nimport { useDebounce, useAsyncList } from '@wordpress/compose';\nimport { __experimentalHeading as Heading } from '@wordpress/components';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport BlockPatternsList from '../../block-patterns-list';\nimport InserterNoResults from '../no-results';\nimport useInsertionPoint from '../hooks/use-insertion-point';\nimport usePatternsState from '../hooks/use-patterns-state';\nimport InserterListbox from '../../inserter-listbox';\nimport { searchItems } from '../search-items';\n\nconst INITIAL_INSERTER_RESULTS = 2;\n\nfunction PatternsListHeader( { filterValue, filteredBlockPatternsLength } ) {\n\tif ( ! filterValue ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<Heading\n\t\t\tlevel={ 2 }\n\t\t\tlineHeight={ '48px' }\n\t\t\tclassName=\"block-editor-block-patterns-explorer__search-results-count\"\n\t\t>\n\t\t\t{ sprintf(\n\t\t\t\t/* translators: %d: number of patterns. %s: block pattern search query */\n\t\t\t\t_n(\n\t\t\t\t\t'%1$d pattern found for \"%2$s\"',\n\t\t\t\t\t'%1$d patterns found for \"%2$s\"',\n\t\t\t\t\tfilteredBlockPatternsLength\n\t\t\t\t),\n\t\t\t\tfilteredBlockPatternsLength,\n\t\t\t\tfilterValue\n\t\t\t) }\n\t\t</Heading>\n\t);\n}\n\nfunction PatternList( { filterValue, selectedCategory, patternCategories } ) {\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\tconst [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {\n\t\tshouldFocusBlock: true,\n\t} );\n\tconst [ allPatterns, , onSelectBlockPattern ] = usePatternsState(\n\t\tonInsertBlocks,\n\t\tdestinationRootClientId\n\t);\n\n\tconst registeredPatternCategories = useMemo(\n\t\t() =>\n\t\t\tpatternCategories.map(\n\t\t\t\t( patternCategory ) => patternCategory.name\n\t\t\t),\n\t\t[ patternCategories ]\n\t);\n\n\tconst filteredBlockPatterns = useMemo( () => {\n\t\tif ( ! filterValue ) {\n\t\t\treturn allPatterns.filter( ( pattern ) =>\n\t\t\t\tselectedCategory === 'uncategorized'\n\t\t\t\t\t? ! pattern.categories?.length ||\n\t\t\t\t\t pattern.categories.every(\n\t\t\t\t\t\t\t( category ) =>\n\t\t\t\t\t\t\t\t! registeredPatternCategories.includes(\n\t\t\t\t\t\t\t\t\tcategory\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t )\n\t\t\t\t\t: pattern.categories?.includes( selectedCategory )\n\t\t\t);\n\t\t}\n\t\treturn searchItems( allPatterns, filterValue );\n\t}, [\n\t\tfilterValue,\n\t\tallPatterns,\n\t\tselectedCategory,\n\t\tregisteredPatternCategories,\n\t] );\n\n\t// Announce search results on change.\n\tuseEffect( () => {\n\t\tif ( ! filterValue ) {\n\t\t\treturn;\n\t\t}\n\t\tconst count = filteredBlockPatterns.length;\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results. */\n\t\t\t_n( '%d result found.', '%d results found.', count ),\n\t\t\tcount\n\t\t);\n\t\tdebouncedSpeak( resultsFoundMessage );\n\t}, [ filterValue, debouncedSpeak, filteredBlockPatterns.length ] );\n\n\tconst currentShownPatterns = useAsyncList( filteredBlockPatterns, {\n\t\tstep: INITIAL_INSERTER_RESULTS,\n\t} );\n\n\tconst hasItems = !! filteredBlockPatterns?.length;\n\treturn (\n\t\t<div className=\"block-editor-block-patterns-explorer__list\">\n\t\t\t{ hasItems && (\n\t\t\t\t<PatternsListHeader\n\t\t\t\t\tfilterValue={ filterValue }\n\t\t\t\t\tfilteredBlockPatternsLength={ filteredBlockPatterns.length }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<InserterListbox>\n\t\t\t\t{ ! hasItems && <InserterNoResults /> }\n\t\t\t\t{ hasItems && (\n\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\tshownPatterns={ currentShownPatterns }\n\t\t\t\t\t\tblockPatterns={ filteredBlockPatterns }\n\t\t\t\t\t\tonClickPattern={ onSelectBlockPattern }\n\t\t\t\t\t\tisDraggable={ false }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InserterListbox>\n\t\t</div>\n\t);\n}\n\nexport default PatternList;\n"],"mappings":"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"}
1
+ {"version":3,"names":["useMemo","useEffect","useRef","useState","_n","sprintf","useDebounce","__experimentalHeading","Heading","speak","BlockPatternsList","useInsertionPoint","usePatternsState","InserterListbox","searchItems","BlockPatternsPaging","usePatternsPaging","allPatternsCategory","isPatternFiltered","BlockPatternsSyncFilter","PATTERN_TYPES","PATTERN_SOURCE_FILTERS","PatternsListHeader","filterValue","filteredBlockPatternsLength","selectedCategory","patternCategories","filter","name","category","find","patternCategory","label","createElement","level","lineHeight","className","PatternList","searchValue","patternSourceFilter","patternSyncFilter","setPatternSyncFilter","container","debouncedSpeak","destinationRootClientId","onInsertBlocks","shouldFocusBlock","patterns","onClickPattern","registeredPatternCategories","map","filteredBlockPatterns","filteredPatterns","pattern","hasKnownCategory","categories","some","includes","length","count","resultsFoundMessage","pagingProps","hasItems","ref","user","shownPatterns","categoryPatternsAsyncList","blockPatterns","categoryPatterns","isDraggable","numPages"],"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-explorer/patterns-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useEffect, useRef, useState } from '@wordpress/element';\nimport { _n, sprintf } from '@wordpress/i18n';\nimport { useDebounce } from '@wordpress/compose';\nimport { __experimentalHeading as Heading } from '@wordpress/components';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport BlockPatternsList from '../../block-patterns-list';\nimport useInsertionPoint from '../hooks/use-insertion-point';\nimport usePatternsState from '../hooks/use-patterns-state';\nimport InserterListbox from '../../inserter-listbox';\nimport { searchItems } from '../search-items';\nimport BlockPatternsPaging from '../../block-patterns-paging';\nimport usePatternsPaging from '../hooks/use-patterns-paging';\nimport { allPatternsCategory, isPatternFiltered } from '../block-patterns-tab';\nimport { BlockPatternsSyncFilter } from '../block-patterns-sync-filter';\nimport {\n\tPATTERN_TYPES,\n\tPATTERN_SOURCE_FILTERS,\n} from '../block-patterns-source-filter';\n\nfunction PatternsListHeader( {\n\tfilterValue,\n\tfilteredBlockPatternsLength,\n\tselectedCategory,\n\tpatternCategories,\n} ) {\n\tif ( ! filterValue ) {\n\t\treturn null;\n\t}\n\tlet filter = filterValue;\n\tif ( selectedCategory !== allPatternsCategory.name ) {\n\t\tconst category = patternCategories.find(\n\t\t\t( patternCategory ) => patternCategory.name === selectedCategory\n\t\t);\n\t\tif ( category ) {\n\t\t\tfilter = `${ filter } - ${ category?.label }`;\n\t\t}\n\t}\n\treturn (\n\t\t<Heading\n\t\t\tlevel={ 2 }\n\t\t\tlineHeight={ '48px' }\n\t\t\tclassName=\"block-editor-block-patterns-explorer__search-results-count\"\n\t\t>\n\t\t\t{ sprintf(\n\t\t\t\t/* translators: %d: number of patterns. %s: block pattern search query */\n\t\t\t\t_n(\n\t\t\t\t\t'%1$d pattern found for \"%2$s\"',\n\t\t\t\t\t'%1$d patterns found for \"%2$s\"',\n\t\t\t\t\tfilteredBlockPatternsLength\n\t\t\t\t),\n\t\t\t\tfilteredBlockPatternsLength,\n\t\t\t\tfilter\n\t\t\t) }\n\t\t</Heading>\n\t);\n}\n\nfunction PatternList( {\n\tsearchValue,\n\tpatternSourceFilter,\n\tselectedCategory,\n\tpatternCategories,\n} ) {\n\tconst [ patternSyncFilter, setPatternSyncFilter ] = useState( 'all' );\n\tconst container = useRef();\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\tconst [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {\n\t\tshouldFocusBlock: true,\n\t} );\n\tconst [ patterns, , onClickPattern ] = usePatternsState(\n\t\tonInsertBlocks,\n\t\tdestinationRootClientId\n\t);\n\n\tconst registeredPatternCategories = useMemo(\n\t\t() =>\n\t\t\tpatternCategories.map(\n\t\t\t\t( patternCategory ) => patternCategory.name\n\t\t\t),\n\t\t[ patternCategories ]\n\t);\n\n\tconst filteredBlockPatterns = useMemo( () => {\n\t\tconst filteredPatterns = patterns.filter( ( pattern ) => {\n\t\t\tif (\n\t\t\t\tisPatternFiltered(\n\t\t\t\t\tpattern,\n\t\t\t\t\tpatternSourceFilter,\n\t\t\t\t\tpatternSyncFilter\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif ( selectedCategory === allPatternsCategory.name ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif ( selectedCategory === 'uncategorized' ) {\n\t\t\t\tconst hasKnownCategory = pattern.categories.some(\n\t\t\t\t\t( category ) =>\n\t\t\t\t\t\tregisteredPatternCategories.includes( category )\n\t\t\t\t);\n\n\t\t\t\treturn ! pattern.categories?.length || ! hasKnownCategory;\n\t\t\t}\n\n\t\t\treturn pattern.categories?.includes( selectedCategory );\n\t\t} );\n\n\t\tif ( ! searchValue ) {\n\t\t\treturn filteredPatterns;\n\t\t}\n\n\t\treturn searchItems(\n\t\t\tfilteredPatterns,\n\t\t\tsearchValue,\n\t\t\tpatternSourceFilter\n\t\t);\n\t}, [\n\t\tsearchValue,\n\t\tpatternSourceFilter,\n\t\tpatterns,\n\t\tselectedCategory,\n\t\tregisteredPatternCategories,\n\t\tpatternSyncFilter,\n\t] );\n\n\t// Announce search results on change.\n\tuseEffect( () => {\n\t\tif ( ! searchValue ) {\n\t\t\treturn;\n\t\t}\n\t\tconst count = filteredBlockPatterns.length;\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results. */\n\t\t\t_n( '%d result found.', '%d results found.', count ),\n\t\t\tcount\n\t\t);\n\t\tdebouncedSpeak( resultsFoundMessage );\n\t}, [ searchValue, debouncedSpeak, filteredBlockPatterns.length ] );\n\n\tconst pagingProps = usePatternsPaging(\n\t\tfilteredBlockPatterns,\n\t\tselectedCategory,\n\t\tcontainer,\n\t\tpatternSourceFilter\n\t);\n\n\tconst hasItems = !! filteredBlockPatterns?.length;\n\treturn (\n\t\t<div\n\t\t\tclassName=\"block-editor-block-patterns-explorer__list\"\n\t\t\tref={ container }\n\t\t>\n\t\t\t<PatternsListHeader\n\t\t\t\tfilterValue={\n\t\t\t\t\tsearchValue || PATTERN_SOURCE_FILTERS[ patternSourceFilter ]\n\t\t\t\t}\n\t\t\t\tfilteredBlockPatternsLength={ filteredBlockPatterns.length }\n\t\t\t\tselectedCategory={ selectedCategory }\n\t\t\t\tpatternCategories={ patternCategories }\n\t\t\t/>\n\n\t\t\t<InserterListbox>\n\t\t\t\t{ patternSourceFilter === PATTERN_TYPES.user &&\n\t\t\t\t\t! searchValue && (\n\t\t\t\t\t\t<BlockPatternsSyncFilter\n\t\t\t\t\t\t\tpatternSyncFilter={ patternSyncFilter }\n\t\t\t\t\t\t\tsetPatternSyncFilter={ setPatternSyncFilter }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t{ hasItems && (\n\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\tshownPatterns={ pagingProps.categoryPatternsAsyncList }\n\t\t\t\t\t\tblockPatterns={ pagingProps.categoryPatterns }\n\t\t\t\t\t\tonClickPattern={ onClickPattern }\n\t\t\t\t\t\tisDraggable={ false }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ pagingProps.numPages > 1 && (\n\t\t\t\t\t<BlockPatternsPaging { ...pagingProps } />\n\t\t\t\t) }\n\t\t\t</InserterListbox>\n\t\t</div>\n\t);\n}\n\nexport default PatternList;\n"],"mappings":"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"}
@@ -4,6 +4,12 @@ import { createElement } from "@wordpress/element";
4
4
  */
5
5
  import { Button, SearchControl } from '@wordpress/components';
6
6
  import { __ } from '@wordpress/i18n';
7
+
8
+ /**
9
+ * Internal dependencies
10
+ */
11
+ import { default as BlockPatternsSourceFilter } from '../block-patterns-source-filter';
12
+ import { allPatternsCategory } from '../block-patterns-tab';
7
13
  function PatternCategoriesList({
8
14
  selectedCategory,
9
15
  patternCategories,
@@ -28,16 +34,16 @@ function PatternCategoriesList({
28
34
  }));
29
35
  }
30
36
  function PatternsExplorerSearch({
31
- filterValue,
32
- setFilterValue
37
+ searchValue,
38
+ setSearchValue
33
39
  }) {
34
40
  const baseClassName = 'block-editor-block-patterns-explorer__search';
35
41
  return createElement("div", {
36
42
  className: baseClassName
37
43
  }, createElement(SearchControl, {
38
44
  __nextHasNoMarginBottom: true,
39
- onChange: setFilterValue,
40
- value: filterValue,
45
+ onChange: setSearchValue,
46
+ value: searchValue,
41
47
  label: __('Search for patterns'),
42
48
  placeholder: __('Search')
43
49
  }));
@@ -46,16 +52,24 @@ function PatternExplorerSidebar({
46
52
  selectedCategory,
47
53
  patternCategories,
48
54
  onClickCategory,
49
- filterValue,
50
- setFilterValue
55
+ patternSourceFilter,
56
+ setPatternSourceFilter,
57
+ searchValue,
58
+ setSearchValue
51
59
  }) {
52
60
  const baseClassName = 'block-editor-block-patterns-explorer__sidebar';
53
61
  return createElement("div", {
54
62
  className: baseClassName
55
63
  }, createElement(PatternsExplorerSearch, {
56
- filterValue: filterValue,
57
- setFilterValue: setFilterValue
58
- }), !filterValue && createElement(PatternCategoriesList, {
64
+ searchValue: searchValue,
65
+ setSearchValue: setSearchValue
66
+ }), createElement(BlockPatternsSourceFilter, {
67
+ value: patternSourceFilter,
68
+ onChange: value => {
69
+ setPatternSourceFilter(value);
70
+ onClickCategory(allPatternsCategory.name);
71
+ }
72
+ }), !searchValue && createElement(PatternCategoriesList, {
59
73
  selectedCategory: selectedCategory,
60
74
  patternCategories: patternCategories,
61
75
  onClickCategory: onClickCategory
@@ -1 +1 @@
1
- {"version":3,"names":["Button","SearchControl","__","PatternCategoriesList","selectedCategory","patternCategories","onClickCategory","baseClassName","createElement","className","map","name","label","key","isPressed","onClick","PatternsExplorerSearch","filterValue","setFilterValue","__nextHasNoMarginBottom","onChange","value","placeholder","PatternExplorerSidebar"],"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-explorer/sidebar.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, SearchControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nfunction PatternCategoriesList( {\n\tselectedCategory,\n\tpatternCategories,\n\tonClickCategory,\n} ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__sidebar';\n\treturn (\n\t\t<div className={ `${ baseClassName }__categories-list` }>\n\t\t\t{ patternCategories.map( ( { name, label } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey={ name }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tclassName={ `${ baseClassName }__categories-list__item` }\n\t\t\t\t\t\tisPressed={ selectedCategory === name }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonClickCategory( name );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</div>\n\t);\n}\n\nfunction PatternsExplorerSearch( { filterValue, setFilterValue } ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__search';\n\treturn (\n\t\t<div className={ baseClassName }>\n\t\t\t<SearchControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tonChange={ setFilterValue }\n\t\t\t\tvalue={ filterValue }\n\t\t\t\tlabel={ __( 'Search for patterns' ) }\n\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction PatternExplorerSidebar( {\n\tselectedCategory,\n\tpatternCategories,\n\tonClickCategory,\n\tfilterValue,\n\tsetFilterValue,\n} ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__sidebar';\n\treturn (\n\t\t<div className={ baseClassName }>\n\t\t\t<PatternsExplorerSearch\n\t\t\t\tfilterValue={ filterValue }\n\t\t\t\tsetFilterValue={ setFilterValue }\n\t\t\t/>\n\t\t\t{ ! filterValue && (\n\t\t\t\t<PatternCategoriesList\n\t\t\t\t\tselectedCategory={ selectedCategory }\n\t\t\t\t\tpatternCategories={ patternCategories }\n\t\t\t\t\tonClickCategory={ onClickCategory }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default PatternExplorerSidebar;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,MAAM,EAAEC,aAAa,QAAQ,uBAAuB;AAC7D,SAASC,EAAE,QAAQ,iBAAiB;AAEpC,SAASC,qBAAqBA,CAAE;EAC/BC,gBAAgB;EAChBC,iBAAiB;EACjBC;AACD,CAAC,EAAG;EACH,MAAMC,aAAa,GAAG,+CAA+C;EACrE,OACCC,aAAA;IAAKC,SAAS,EAAI,GAAGF,aAAe;EAAoB,GACrDF,iBAAiB,CAACK,GAAG,CAAE,CAAE;IAAEC,IAAI;IAAEC;EAAM,CAAC,KAAM;IAC/C,OACCJ,aAAA,CAACR,MAAM;MACNa,GAAG,EAAGF,IAAM;MACZC,KAAK,EAAGA,KAAO;MACfH,SAAS,EAAI,GAAGF,aAAe,yBAA0B;MACzDO,SAAS,EAAGV,gBAAgB,KAAKO,IAAM;MACvCI,OAAO,EAAGA,CAAA,KAAM;QACfT,eAAe,CAAEK,IAAK,CAAC;MACxB;IAAG,GAEDC,KACK,CAAC;EAEX,CAAE,CACE,CAAC;AAER;AAEA,SAASI,sBAAsBA,CAAE;EAAEC,WAAW;EAAEC;AAAe,CAAC,EAAG;EAClE,MAAMX,aAAa,GAAG,8CAA8C;EACpE,OACCC,aAAA;IAAKC,SAAS,EAAGF;EAAe,GAC/BC,aAAA,CAACP,aAAa;IACbkB,uBAAuB;IACvBC,QAAQ,EAAGF,cAAgB;IAC3BG,KAAK,EAAGJ,WAAa;IACrBL,KAAK,EAAGV,EAAE,CAAE,qBAAsB,CAAG;IACrCoB,WAAW,EAAGpB,EAAE,CAAE,QAAS;EAAG,CAC9B,CACG,CAAC;AAER;AAEA,SAASqB,sBAAsBA,CAAE;EAChCnB,gBAAgB;EAChBC,iBAAiB;EACjBC,eAAe;EACfW,WAAW;EACXC;AACD,CAAC,EAAG;EACH,MAAMX,aAAa,GAAG,+CAA+C;EACrE,OACCC,aAAA;IAAKC,SAAS,EAAGF;EAAe,GAC/BC,aAAA,CAACQ,sBAAsB;IACtBC,WAAW,EAAGA,WAAa;IAC3BC,cAAc,EAAGA;EAAgB,CACjC,CAAC,EACA,CAAED,WAAW,IACdT,aAAA,CAACL,qBAAqB;IACrBC,gBAAgB,EAAGA,gBAAkB;IACrCC,iBAAiB,EAAGA,iBAAmB;IACvCC,eAAe,EAAGA;EAAiB,CACnC,CAEE,CAAC;AAER;AAEA,eAAeiB,sBAAsB"}
1
+ {"version":3,"names":["Button","SearchControl","__","default","BlockPatternsSourceFilter","allPatternsCategory","PatternCategoriesList","selectedCategory","patternCategories","onClickCategory","baseClassName","createElement","className","map","name","label","key","isPressed","onClick","PatternsExplorerSearch","searchValue","setSearchValue","__nextHasNoMarginBottom","onChange","value","placeholder","PatternExplorerSidebar","patternSourceFilter","setPatternSourceFilter"],"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-explorer/sidebar.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, SearchControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { default as BlockPatternsSourceFilter } from '../block-patterns-source-filter';\nimport { allPatternsCategory } from '../block-patterns-tab';\n\nfunction PatternCategoriesList( {\n\tselectedCategory,\n\tpatternCategories,\n\tonClickCategory,\n} ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__sidebar';\n\treturn (\n\t\t<div className={ `${ baseClassName }__categories-list` }>\n\t\t\t{ patternCategories.map( ( { name, label } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey={ name }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tclassName={ `${ baseClassName }__categories-list__item` }\n\t\t\t\t\t\tisPressed={ selectedCategory === name }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonClickCategory( name );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</div>\n\t);\n}\n\nfunction PatternsExplorerSearch( { searchValue, setSearchValue } ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__search';\n\treturn (\n\t\t<div className={ baseClassName }>\n\t\t\t<SearchControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tonChange={ setSearchValue }\n\t\t\t\tvalue={ searchValue }\n\t\t\t\tlabel={ __( 'Search for patterns' ) }\n\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction PatternExplorerSidebar( {\n\tselectedCategory,\n\tpatternCategories,\n\tonClickCategory,\n\tpatternSourceFilter,\n\tsetPatternSourceFilter,\n\tsearchValue,\n\tsetSearchValue,\n} ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__sidebar';\n\treturn (\n\t\t<div className={ baseClassName }>\n\t\t\t<PatternsExplorerSearch\n\t\t\t\tsearchValue={ searchValue }\n\t\t\t\tsetSearchValue={ setSearchValue }\n\t\t\t/>\n\t\t\t<BlockPatternsSourceFilter\n\t\t\t\tvalue={ patternSourceFilter }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tsetPatternSourceFilter( value );\n\t\t\t\t\tonClickCategory( allPatternsCategory.name );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ ! searchValue && (\n\t\t\t\t<PatternCategoriesList\n\t\t\t\t\tselectedCategory={ selectedCategory }\n\t\t\t\t\tpatternCategories={ patternCategories }\n\t\t\t\t\tonClickCategory={ onClickCategory }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default PatternExplorerSidebar;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,MAAM,EAAEC,aAAa,QAAQ,uBAAuB;AAC7D,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,SAASC,OAAO,IAAIC,yBAAyB,QAAQ,iCAAiC;AACtF,SAASC,mBAAmB,QAAQ,uBAAuB;AAE3D,SAASC,qBAAqBA,CAAE;EAC/BC,gBAAgB;EAChBC,iBAAiB;EACjBC;AACD,CAAC,EAAG;EACH,MAAMC,aAAa,GAAG,+CAA+C;EACrE,OACCC,aAAA;IAAKC,SAAS,EAAI,GAAGF,aAAe;EAAoB,GACrDF,iBAAiB,CAACK,GAAG,CAAE,CAAE;IAAEC,IAAI;IAAEC;EAAM,CAAC,KAAM;IAC/C,OACCJ,aAAA,CAACX,MAAM;MACNgB,GAAG,EAAGF,IAAM;MACZC,KAAK,EAAGA,KAAO;MACfH,SAAS,EAAI,GAAGF,aAAe,yBAA0B;MACzDO,SAAS,EAAGV,gBAAgB,KAAKO,IAAM;MACvCI,OAAO,EAAGA,CAAA,KAAM;QACfT,eAAe,CAAEK,IAAK,CAAC;MACxB;IAAG,GAEDC,KACK,CAAC;EAEX,CAAE,CACE,CAAC;AAER;AAEA,SAASI,sBAAsBA,CAAE;EAAEC,WAAW;EAAEC;AAAe,CAAC,EAAG;EAClE,MAAMX,aAAa,GAAG,8CAA8C;EACpE,OACCC,aAAA;IAAKC,SAAS,EAAGF;EAAe,GAC/BC,aAAA,CAACV,aAAa;IACbqB,uBAAuB;IACvBC,QAAQ,EAAGF,cAAgB;IAC3BG,KAAK,EAAGJ,WAAa;IACrBL,KAAK,EAAGb,EAAE,CAAE,qBAAsB,CAAG;IACrCuB,WAAW,EAAGvB,EAAE,CAAE,QAAS;EAAG,CAC9B,CACG,CAAC;AAER;AAEA,SAASwB,sBAAsBA,CAAE;EAChCnB,gBAAgB;EAChBC,iBAAiB;EACjBC,eAAe;EACfkB,mBAAmB;EACnBC,sBAAsB;EACtBR,WAAW;EACXC;AACD,CAAC,EAAG;EACH,MAAMX,aAAa,GAAG,+CAA+C;EACrE,OACCC,aAAA;IAAKC,SAAS,EAAGF;EAAe,GAC/BC,aAAA,CAACQ,sBAAsB;IACtBC,WAAW,EAAGA,WAAa;IAC3BC,cAAc,EAAGA;EAAgB,CACjC,CAAC,EACFV,aAAA,CAACP,yBAAyB;IACzBoB,KAAK,EAAGG,mBAAqB;IAC7BJ,QAAQ,EAAKC,KAAK,IAAM;MACvBI,sBAAsB,CAAEJ,KAAM,CAAC;MAC/Bf,eAAe,CAAEJ,mBAAmB,CAACS,IAAK,CAAC;IAC5C;EAAG,CACH,CAAC,EACA,CAAEM,WAAW,IACdT,aAAA,CAACL,qBAAqB;IACrBC,gBAAgB,EAAGA,gBAAkB;IACrCC,iBAAiB,EAAGA,iBAAmB;IACvCC,eAAe,EAAGA;EAAiB,CACnC,CAEE,CAAC;AAER;AAEA,eAAeiB,sBAAsB"}
@@ -0,0 +1,44 @@
1
+ import { createElement } from "@wordpress/element";
2
+ /**
3
+ * WordPress dependencies
4
+ */
5
+ import { __ } from '@wordpress/i18n';
6
+ import { SelectControl } from '@wordpress/components';
7
+ export const PATTERN_TYPES = {
8
+ synced: 'synced',
9
+ unsynced: 'unsynced',
10
+ user: 'user',
11
+ theme: 'theme'
12
+ };
13
+ const patternSourceOptions = [{
14
+ value: 'all',
15
+ label: __('All pattern types')
16
+ }, {
17
+ value: PATTERN_TYPES.theme,
18
+ label: __('Theme patterns')
19
+ }, {
20
+ value: PATTERN_TYPES.user,
21
+ label: __('My patterns')
22
+ }];
23
+ export const PATTERN_SOURCE_FILTERS = patternSourceOptions.reduce((patternSourceFilters, {
24
+ value,
25
+ label
26
+ }) => {
27
+ patternSourceFilters[value] = label;
28
+ return patternSourceFilters;
29
+ }, {});
30
+ export default function BlockPatternsSourceFilter({
31
+ onChange,
32
+ value
33
+ }) {
34
+ return createElement(SelectControl, {
35
+ className: "block-editor-block-patterns__source-filter",
36
+ label: __('Pattern source'),
37
+ options: patternSourceOptions,
38
+ value: value,
39
+ onChange: onChange,
40
+ "aria-label": __('Filter patterns by type'),
41
+ hideLabelFromVision: true
42
+ });
43
+ }
44
+ //# sourceMappingURL=block-patterns-source-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__","SelectControl","PATTERN_TYPES","synced","unsynced","user","theme","patternSourceOptions","value","label","PATTERN_SOURCE_FILTERS","reduce","patternSourceFilters","BlockPatternsSourceFilter","onChange","createElement","className","options","hideLabelFromVision"],"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-source-filter.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { SelectControl } from '@wordpress/components';\n\nexport const PATTERN_TYPES = {\n\tsynced: 'synced',\n\tunsynced: 'unsynced',\n\tuser: 'user',\n\ttheme: 'theme',\n};\n\nconst patternSourceOptions = [\n\t{ value: 'all', label: __( 'All pattern types' ) },\n\t{ value: PATTERN_TYPES.theme, label: __( 'Theme patterns' ) },\n\t{ value: PATTERN_TYPES.user, label: __( 'My patterns' ) },\n];\n\nexport const PATTERN_SOURCE_FILTERS = patternSourceOptions.reduce(\n\t( patternSourceFilters, { value, label } ) => {\n\t\tpatternSourceFilters[ value ] = label;\n\t\treturn patternSourceFilters;\n\t},\n\t{}\n);\n\nexport default function BlockPatternsSourceFilter( { onChange, value } ) {\n\treturn (\n\t\t<SelectControl\n\t\t\tclassName=\"block-editor-block-patterns__source-filter\"\n\t\t\tlabel={ __( 'Pattern source' ) }\n\t\t\toptions={ patternSourceOptions }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\taria-label={ __( 'Filter patterns by type' ) }\n\t\t\thideLabelFromVision\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,aAAa,QAAQ,uBAAuB;AAErD,OAAO,MAAMC,aAAa,GAAG;EAC5BC,MAAM,EAAE,QAAQ;EAChBC,QAAQ,EAAE,UAAU;EACpBC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE;AACR,CAAC;AAED,MAAMC,oBAAoB,GAAG,CAC5B;EAAEC,KAAK,EAAE,KAAK;EAAEC,KAAK,EAAET,EAAE,CAAE,mBAAoB;AAAE,CAAC,EAClD;EAAEQ,KAAK,EAAEN,aAAa,CAACI,KAAK;EAAEG,KAAK,EAAET,EAAE,CAAE,gBAAiB;AAAE,CAAC,EAC7D;EAAEQ,KAAK,EAAEN,aAAa,CAACG,IAAI;EAAEI,KAAK,EAAET,EAAE,CAAE,aAAc;AAAE,CAAC,CACzD;AAED,OAAO,MAAMU,sBAAsB,GAAGH,oBAAoB,CAACI,MAAM,CAChE,CAAEC,oBAAoB,EAAE;EAAEJ,KAAK;EAAEC;AAAM,CAAC,KAAM;EAC7CG,oBAAoB,CAAEJ,KAAK,CAAE,GAAGC,KAAK;EACrC,OAAOG,oBAAoB;AAC5B,CAAC,EACD,CAAC,CACF,CAAC;AAED,eAAe,SAASC,yBAAyBA,CAAE;EAAEC,QAAQ;EAAEN;AAAM,CAAC,EAAG;EACxE,OACCO,aAAA,CAACd,aAAa;IACbe,SAAS,EAAC,4CAA4C;IACtDP,KAAK,EAAGT,EAAE,CAAE,gBAAiB,CAAG;IAChCiB,OAAO,EAAGV,oBAAsB;IAChCC,KAAK,EAAGA,KAAO;IACfM,QAAQ,EAAGA,QAAU;IACrB,cAAad,EAAE,CAAE,yBAA0B,CAAG;IAC9CkB,mBAAmB;EAAA,CACnB,CAAC;AAEJ"}
@@ -0,0 +1,38 @@
1
+ import { createElement } from "@wordpress/element";
2
+ /**
3
+ * WordPress dependencies
4
+ */
5
+ import { SelectControl } from '@wordpress/components';
6
+ import { __ } from '@wordpress/i18n';
7
+
8
+ /**
9
+ * Internal dependencies
10
+ */
11
+ export const SYNC_TYPES = {
12
+ full: 'fully',
13
+ unsynced: 'unsynced'
14
+ };
15
+ const patternSyncOptions = [{
16
+ value: 'all',
17
+ label: __('All')
18
+ }, {
19
+ value: SYNC_TYPES.full,
20
+ label: __('Synced')
21
+ }, {
22
+ value: SYNC_TYPES.unsynced,
23
+ label: __('Standard')
24
+ }];
25
+ export function BlockPatternsSyncFilter({
26
+ setPatternSyncFilter,
27
+ patternSyncFilter
28
+ }) {
29
+ return createElement(SelectControl, {
30
+ className: "block-editor-patterns__sync-status-filter",
31
+ label: __('Syncing'),
32
+ options: patternSyncOptions,
33
+ value: patternSyncFilter,
34
+ onChange: setPatternSyncFilter,
35
+ "aria-label": __('Filter patterns by sync type')
36
+ });
37
+ }
38
+ //# sourceMappingURL=block-patterns-sync-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SelectControl","__","SYNC_TYPES","full","unsynced","patternSyncOptions","value","label","BlockPatternsSyncFilter","setPatternSyncFilter","patternSyncFilter","createElement","className","options","onChange"],"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-sync-filter.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SelectControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nexport const SYNC_TYPES = {\n\tfull: 'fully',\n\tunsynced: 'unsynced',\n};\n\nconst patternSyncOptions = [\n\t{ value: 'all', label: __( 'All' ) },\n\t{ value: SYNC_TYPES.full, label: __( 'Synced' ) },\n\t{ value: SYNC_TYPES.unsynced, label: __( 'Standard' ) },\n];\n\nexport function BlockPatternsSyncFilter( {\n\tsetPatternSyncFilter,\n\tpatternSyncFilter,\n} ) {\n\treturn (\n\t\t<SelectControl\n\t\t\tclassName=\"block-editor-patterns__sync-status-filter\"\n\t\t\tlabel={ __( 'Syncing' ) }\n\t\t\toptions={ patternSyncOptions }\n\t\t\tvalue={ patternSyncFilter }\n\t\t\tonChange={ setPatternSyncFilter }\n\t\t\taria-label={ __( 'Filter patterns by sync type' ) }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,aAAa,QAAQ,uBAAuB;AACrD,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAO,MAAMC,UAAU,GAAG;EACzBC,IAAI,EAAE,OAAO;EACbC,QAAQ,EAAE;AACX,CAAC;AAED,MAAMC,kBAAkB,GAAG,CAC1B;EAAEC,KAAK,EAAE,KAAK;EAAEC,KAAK,EAAEN,EAAE,CAAE,KAAM;AAAE,CAAC,EACpC;EAAEK,KAAK,EAAEJ,UAAU,CAACC,IAAI;EAAEI,KAAK,EAAEN,EAAE,CAAE,QAAS;AAAE,CAAC,EACjD;EAAEK,KAAK,EAAEJ,UAAU,CAACE,QAAQ;EAAEG,KAAK,EAAEN,EAAE,CAAE,UAAW;AAAE,CAAC,CACvD;AAED,OAAO,SAASO,uBAAuBA,CAAE;EACxCC,oBAAoB;EACpBC;AACD,CAAC,EAAG;EACH,OACCC,aAAA,CAACX,aAAa;IACbY,SAAS,EAAC,2CAA2C;IACrDL,KAAK,EAAGN,EAAE,CAAE,SAAU,CAAG;IACzBY,OAAO,EAAGR,kBAAoB;IAC9BC,KAAK,EAAGI,iBAAmB;IAC3BI,QAAQ,EAAGL,oBAAsB;IACjC,cAAaR,EAAE,CAAE,8BAA+B;EAAG,CACnD,CAAC;AAEJ"}