@wordpress/block-editor 11.3.6 → 11.5.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 (357) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/build/components/block-lock/modal.js +1 -0
  3. package/build/components/block-lock/modal.js.map +1 -1
  4. package/build/components/block-popover/inbetween.js +10 -33
  5. package/build/components/block-popover/inbetween.js.map +1 -1
  6. package/build/components/block-settings-menu/block-settings-dropdown.js +2 -2
  7. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  8. package/build/components/block-styles/index.js +2 -1
  9. package/build/components/block-styles/index.js.map +1 -1
  10. package/build/components/block-types-list/index.native.js +2 -0
  11. package/build/components/block-types-list/index.native.js.map +1 -1
  12. package/build/components/child-layout-control/index.js +107 -0
  13. package/build/components/child-layout-control/index.js.map +1 -0
  14. package/build/components/colors-gradients/control.js +6 -3
  15. package/build/components/colors-gradients/control.js.map +1 -1
  16. package/build/components/date-format-picker/index.js +3 -3
  17. package/build/components/date-format-picker/index.js.map +1 -1
  18. package/build/components/font-appearance-control/index.js +0 -3
  19. package/build/components/font-appearance-control/index.js.map +1 -1
  20. package/build/components/global-styles/dimensions-panel.js +594 -0
  21. package/build/components/global-styles/dimensions-panel.js.map +1 -0
  22. package/build/components/global-styles/hooks.js +142 -45
  23. package/build/components/global-styles/hooks.js.map +1 -1
  24. package/build/components/global-styles/index.js +38 -0
  25. package/build/components/global-styles/index.js.map +1 -1
  26. package/build/components/global-styles/typography-panel.js +434 -0
  27. package/build/components/global-styles/typography-panel.js.map +1 -0
  28. package/build/components/global-styles/use-global-styles-output.js +7 -3
  29. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  30. package/build/components/global-styles/utils.js +2 -0
  31. package/build/components/global-styles/utils.js.map +1 -1
  32. package/build/components/iframe/index.js +17 -11
  33. package/build/components/iframe/index.js.map +1 -1
  34. package/build/components/image-editor/aspect-ratio-dropdown.js +2 -1
  35. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  36. package/build/components/image-size-control/index.js +6 -11
  37. package/build/components/image-size-control/index.js.map +1 -1
  38. package/build/components/index.native.js +23 -0
  39. package/build/components/index.native.js.map +1 -1
  40. package/build/components/inserter/block-patterns-tab.js +9 -15
  41. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  42. package/build/components/inserter/block-types-tab.native.js +4 -1
  43. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  44. package/build/components/inserter/reusable-blocks-tab.native.js +4 -1
  45. package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  46. package/build/components/inserter/search-results.native.js +4 -1
  47. package/build/components/inserter/search-results.native.js.map +1 -1
  48. package/build/components/inspector-controls/block-support-tools-panel.js +1 -1
  49. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  50. package/build/components/inspector-controls/fill.js +38 -9
  51. package/build/components/inspector-controls/fill.js.map +1 -1
  52. package/build/components/link-control/index.js +55 -28
  53. package/build/components/link-control/index.js.map +1 -1
  54. package/build/components/link-control/settings-drawer.js +72 -30
  55. package/build/components/link-control/settings-drawer.js.map +1 -1
  56. package/build/components/link-control/settings.js +53 -0
  57. package/build/components/link-control/settings.js.map +1 -0
  58. package/build/components/list-view/block.js +4 -2
  59. package/build/components/list-view/block.js.map +1 -1
  60. package/build/components/list-view/expander.js +2 -1
  61. package/build/components/list-view/expander.js.map +1 -1
  62. package/build/components/list-view/index.js +6 -1
  63. package/build/components/list-view/index.js.map +1 -1
  64. package/build/components/off-canvas-editor/appender.js +5 -10
  65. package/build/components/off-canvas-editor/appender.js.map +1 -1
  66. package/build/components/off-canvas-editor/block-contents.js +3 -2
  67. package/build/components/off-canvas-editor/block-contents.js.map +1 -1
  68. package/build/components/off-canvas-editor/branch.js +1 -0
  69. package/build/components/off-canvas-editor/branch.js.map +1 -1
  70. package/build/components/off-canvas-editor/index.js +7 -3
  71. package/build/components/off-canvas-editor/index.js.map +1 -1
  72. package/build/components/off-canvas-editor/leaf-more-menu.js +24 -4
  73. package/build/components/off-canvas-editor/leaf-more-menu.js.map +1 -1
  74. package/build/components/off-canvas-editor/link-ui.js +2 -0
  75. package/build/components/off-canvas-editor/link-ui.js.map +1 -1
  76. package/build/components/responsive-block-control/index.js +1 -0
  77. package/build/components/responsive-block-control/index.js.map +1 -1
  78. package/build/components/rich-text/index.js +9 -45
  79. package/build/components/rich-text/index.js.map +1 -1
  80. package/build/components/rich-text/use-delete.js +73 -0
  81. package/build/components/rich-text/use-delete.js.map +1 -0
  82. package/build/components/rich-text/use-input-rules.js +14 -6
  83. package/build/components/rich-text/use-input-rules.js.map +1 -1
  84. package/build/components/url-input/index.js +2 -2
  85. package/build/components/url-input/index.js.map +1 -1
  86. package/build/components/writing-flow/use-selection-observer.js +4 -1
  87. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  88. package/build/hooks/align.js +3 -1
  89. package/build/hooks/align.js.map +1 -1
  90. package/build/hooks/dimensions.js +78 -190
  91. package/build/hooks/dimensions.js.map +1 -1
  92. package/build/hooks/duotone.js +94 -25
  93. package/build/hooks/duotone.js.map +1 -1
  94. package/build/hooks/font-family.js +2 -76
  95. package/build/hooks/font-family.js.map +1 -1
  96. package/build/hooks/font-size.js +3 -51
  97. package/build/hooks/font-size.js.map +1 -1
  98. package/build/hooks/gap.js +0 -201
  99. package/build/hooks/gap.js.map +1 -1
  100. package/build/hooks/index.js +2 -0
  101. package/build/hooks/index.js.map +1 -1
  102. package/build/hooks/layout.js +14 -5
  103. package/build/hooks/layout.js.map +1 -1
  104. package/build/hooks/line-height.js +0 -42
  105. package/build/hooks/line-height.js.map +1 -1
  106. package/build/hooks/margin.js +7 -163
  107. package/build/hooks/margin.js.map +1 -1
  108. package/build/hooks/padding.js +7 -163
  109. package/build/hooks/padding.js.map +1 -1
  110. package/build/hooks/typography.js +98 -128
  111. package/build/hooks/typography.js.map +1 -1
  112. package/build/hooks/utils.js +75 -0
  113. package/build/hooks/utils.js.map +1 -1
  114. package/build/layouts/flex.js +1 -0
  115. package/build/layouts/flex.js.map +1 -1
  116. package/build/store/actions.js +24 -12
  117. package/build/store/actions.js.map +1 -1
  118. package/build/store/reducer.js +53 -47
  119. package/build/store/reducer.js.map +1 -1
  120. package/build/store/selectors.js +22 -1
  121. package/build/store/selectors.js.map +1 -1
  122. package/build/utils/parse-css-unit-to-px.js +36 -3
  123. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  124. package/build-module/components/block-lock/modal.js +1 -0
  125. package/build-module/components/block-lock/modal.js.map +1 -1
  126. package/build-module/components/block-popover/inbetween.js +10 -33
  127. package/build-module/components/block-popover/inbetween.js.map +1 -1
  128. package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -2
  129. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  130. package/build-module/components/block-styles/index.js +2 -1
  131. package/build-module/components/block-styles/index.js.map +1 -1
  132. package/build-module/components/block-types-list/index.native.js +2 -0
  133. package/build-module/components/block-types-list/index.native.js.map +1 -1
  134. package/build-module/components/child-layout-control/index.js +98 -0
  135. package/build-module/components/child-layout-control/index.js.map +1 -0
  136. package/build-module/components/colors-gradients/control.js +6 -3
  137. package/build-module/components/colors-gradients/control.js.map +1 -1
  138. package/build-module/components/date-format-picker/index.js +4 -4
  139. package/build-module/components/date-format-picker/index.js.map +1 -1
  140. package/build-module/components/font-appearance-control/index.js +2 -1
  141. package/build-module/components/font-appearance-control/index.js.map +1 -1
  142. package/build-module/components/global-styles/dimensions-panel.js +574 -0
  143. package/build-module/components/global-styles/dimensions-panel.js.map +1 -0
  144. package/build-module/components/global-styles/hooks.js +138 -46
  145. package/build-module/components/global-styles/hooks.js.map +1 -1
  146. package/build-module/components/global-styles/index.js +3 -1
  147. package/build-module/components/global-styles/index.js.map +1 -1
  148. package/build-module/components/global-styles/typography-panel.js +415 -0
  149. package/build-module/components/global-styles/typography-panel.js.map +1 -0
  150. package/build-module/components/global-styles/use-global-styles-output.js +7 -3
  151. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  152. package/build-module/components/global-styles/utils.js +2 -0
  153. package/build-module/components/global-styles/utils.js.map +1 -1
  154. package/build-module/components/iframe/index.js +17 -11
  155. package/build-module/components/iframe/index.js.map +1 -1
  156. package/build-module/components/image-editor/aspect-ratio-dropdown.js +2 -1
  157. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  158. package/build-module/components/image-size-control/index.js +7 -12
  159. package/build-module/components/image-size-control/index.js.map +1 -1
  160. package/build-module/components/index.native.js +2 -1
  161. package/build-module/components/index.native.js.map +1 -1
  162. package/build-module/components/inserter/block-patterns-tab.js +9 -15
  163. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  164. package/build-module/components/inserter/block-types-tab.native.js +3 -1
  165. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  166. package/build-module/components/inserter/reusable-blocks-tab.native.js +3 -1
  167. package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  168. package/build-module/components/inserter/search-results.native.js +3 -1
  169. package/build-module/components/inserter/search-results.native.js.map +1 -1
  170. package/build-module/components/inspector-controls/block-support-tools-panel.js +1 -1
  171. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  172. package/build-module/components/inspector-controls/fill.js +39 -9
  173. package/build-module/components/inspector-controls/fill.js.map +1 -1
  174. package/build-module/components/link-control/index.js +56 -28
  175. package/build-module/components/link-control/index.js.map +1 -1
  176. package/build-module/components/link-control/settings-drawer.js +68 -30
  177. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  178. package/build-module/components/link-control/settings.js +44 -0
  179. package/build-module/components/link-control/settings.js.map +1 -0
  180. package/build-module/components/list-view/block.js +4 -2
  181. package/build-module/components/list-view/block.js.map +1 -1
  182. package/build-module/components/list-view/expander.js +2 -1
  183. package/build-module/components/list-view/expander.js.map +1 -1
  184. package/build-module/components/list-view/index.js +6 -1
  185. package/build-module/components/list-view/index.js.map +1 -1
  186. package/build-module/components/off-canvas-editor/appender.js +5 -10
  187. package/build-module/components/off-canvas-editor/appender.js.map +1 -1
  188. package/build-module/components/off-canvas-editor/block-contents.js +3 -2
  189. package/build-module/components/off-canvas-editor/block-contents.js.map +1 -1
  190. package/build-module/components/off-canvas-editor/branch.js +1 -0
  191. package/build-module/components/off-canvas-editor/branch.js.map +1 -1
  192. package/build-module/components/off-canvas-editor/index.js +7 -3
  193. package/build-module/components/off-canvas-editor/index.js.map +1 -1
  194. package/build-module/components/off-canvas-editor/leaf-more-menu.js +27 -7
  195. package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +1 -1
  196. package/build-module/components/off-canvas-editor/link-ui.js +2 -0
  197. package/build-module/components/off-canvas-editor/link-ui.js.map +1 -1
  198. package/build-module/components/responsive-block-control/index.js +1 -0
  199. package/build-module/components/responsive-block-control/index.js.map +1 -1
  200. package/build-module/components/rich-text/index.js +9 -45
  201. package/build-module/components/rich-text/index.js.map +1 -1
  202. package/build-module/components/rich-text/use-delete.js +62 -0
  203. package/build-module/components/rich-text/use-delete.js.map +1 -0
  204. package/build-module/components/rich-text/use-input-rules.js +14 -6
  205. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  206. package/build-module/components/url-input/index.js +2 -2
  207. package/build-module/components/url-input/index.js.map +1 -1
  208. package/build-module/components/writing-flow/use-selection-observer.js +4 -1
  209. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  210. package/build-module/hooks/align.js +3 -1
  211. package/build-module/hooks/align.js.map +1 -1
  212. package/build-module/hooks/dimensions.js +81 -187
  213. package/build-module/hooks/dimensions.js.map +1 -1
  214. package/build-module/hooks/duotone.js +86 -24
  215. package/build-module/hooks/duotone.js.map +1 -1
  216. package/build-module/hooks/font-family.js +3 -69
  217. package/build-module/hooks/font-family.js.map +1 -1
  218. package/build-module/hooks/font-size.js +6 -47
  219. package/build-module/hooks/font-size.js.map +1 -1
  220. package/build-module/hooks/gap.js +0 -182
  221. package/build-module/hooks/gap.js.map +1 -1
  222. package/build-module/hooks/index.js +1 -0
  223. package/build-module/hooks/index.js.map +1 -1
  224. package/build-module/hooks/layout.js +14 -5
  225. package/build-module/hooks/layout.js.map +1 -1
  226. package/build-module/hooks/line-height.js +0 -38
  227. package/build-module/hooks/line-height.js.map +1 -1
  228. package/build-module/hooks/margin.js +4 -143
  229. package/build-module/hooks/margin.js.map +1 -1
  230. package/build-module/hooks/padding.js +4 -143
  231. package/build-module/hooks/padding.js.map +1 -1
  232. package/build-module/hooks/typography.js +97 -123
  233. package/build-module/hooks/typography.js.map +1 -1
  234. package/build-module/hooks/utils.js +70 -0
  235. package/build-module/hooks/utils.js.map +1 -1
  236. package/build-module/layouts/flex.js +1 -0
  237. package/build-module/layouts/flex.js.map +1 -1
  238. package/build-module/store/actions.js +24 -12
  239. package/build-module/store/actions.js.map +1 -1
  240. package/build-module/store/reducer.js +53 -45
  241. package/build-module/store/reducer.js.map +1 -1
  242. package/build-module/store/selectors.js +22 -1
  243. package/build-module/store/selectors.js.map +1 -1
  244. package/build-module/utils/parse-css-unit-to-px.js +36 -3
  245. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  246. package/build-style/style-rtl.css +54 -64
  247. package/build-style/style.css +54 -64
  248. package/package.json +31 -31
  249. package/src/components/block-draggable/test/__snapshots__/index.native.js.snap +24 -24
  250. package/src/components/block-lock/modal.js +1 -0
  251. package/src/components/block-lock/style.scss +0 -9
  252. package/src/components/block-mobile-toolbar/test/__snapshots__/block-actions-menu.native.js.snap +20 -20
  253. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +15 -15
  254. package/src/components/block-popover/inbetween.js +21 -53
  255. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -1
  256. package/src/components/block-styles/index.js +5 -1
  257. package/src/components/block-types-list/index.native.js +2 -0
  258. package/src/components/child-layout-control/index.js +106 -0
  259. package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
  260. package/src/components/colors-gradients/control.js +3 -0
  261. package/src/components/date-format-picker/index.js +6 -8
  262. package/src/components/date-format-picker/style.scss +0 -5
  263. package/src/components/font-appearance-control/index.js +1 -1
  264. package/src/components/global-styles/dimensions-panel.js +627 -0
  265. package/src/components/global-styles/hooks.js +229 -66
  266. package/src/components/global-styles/index.js +9 -0
  267. package/src/components/global-styles/typography-panel.js +428 -0
  268. package/src/components/global-styles/use-global-styles-output.js +10 -5
  269. package/src/components/global-styles/utils.js +2 -0
  270. package/src/components/iframe/index.js +20 -18
  271. package/src/components/image-editor/aspect-ratio-dropdown.js +1 -0
  272. package/src/components/image-size-control/index.js +10 -12
  273. package/src/components/image-size-control/style.scss +3 -21
  274. package/src/components/index.native.js +5 -0
  275. package/src/components/inner-blocks/test/__snapshots__/index.js.snap +1 -1
  276. package/src/components/inserter/block-patterns-tab.js +9 -23
  277. package/src/components/inserter/block-types-tab.native.js +2 -0
  278. package/src/components/inserter/reusable-blocks-tab.native.js +2 -0
  279. package/src/components/inserter/search-results.native.js +2 -0
  280. package/src/components/inserter/test/__snapshots__/index.native.js.snap +15 -15
  281. package/src/components/inspector-controls/block-support-tools-panel.js +0 -1
  282. package/src/components/inspector-controls/fill.js +32 -8
  283. package/src/components/link-control/index.js +69 -34
  284. package/src/components/link-control/settings-drawer.js +85 -29
  285. package/src/components/link-control/settings.js +42 -0
  286. package/src/components/link-control/style.scss +63 -37
  287. package/src/components/link-control/test/index.js +347 -9
  288. package/src/components/list-view/block.js +7 -1
  289. package/src/components/list-view/expander.js +1 -0
  290. package/src/components/list-view/index.js +5 -0
  291. package/src/components/media-replace-flow/style.scss +7 -9
  292. package/src/components/media-replace-flow/test/index.js +1 -1
  293. package/src/components/off-canvas-editor/appender.js +13 -16
  294. package/src/components/off-canvas-editor/block-contents.js +2 -1
  295. package/src/components/off-canvas-editor/branch.js +1 -0
  296. package/src/components/off-canvas-editor/index.js +8 -2
  297. package/src/components/off-canvas-editor/leaf-more-menu.js +52 -15
  298. package/src/components/off-canvas-editor/link-ui.js +2 -0
  299. package/src/components/responsive-block-control/index.js +1 -0
  300. package/src/components/rich-text/index.js +8 -46
  301. package/src/components/rich-text/use-delete.js +59 -0
  302. package/src/components/rich-text/use-input-rules.js +13 -5
  303. package/src/components/url-input/index.js +3 -2
  304. package/src/components/url-popover/stories/index.js +1 -0
  305. package/src/components/writing-flow/use-selection-observer.js +5 -1
  306. package/src/hooks/align.js +1 -1
  307. package/src/hooks/dimensions.js +97 -269
  308. package/src/hooks/duotone.js +100 -30
  309. package/src/hooks/font-family.js +0 -58
  310. package/src/hooks/font-size.js +1 -36
  311. package/src/hooks/gap.js +0 -201
  312. package/src/hooks/index.js +1 -0
  313. package/src/hooks/layout.js +19 -6
  314. package/src/hooks/line-height.js +0 -33
  315. package/src/hooks/margin.js +1 -164
  316. package/src/hooks/padding.js +1 -163
  317. package/src/hooks/test/__snapshots__/align.native.js.snap +24 -24
  318. package/src/hooks/test/duotone.js +102 -0
  319. package/src/hooks/typography.js +112 -213
  320. package/src/hooks/utils.js +90 -0
  321. package/src/layouts/flex.js +1 -0
  322. package/src/store/actions.js +12 -4
  323. package/src/store/reducer.js +68 -43
  324. package/src/store/selectors.js +20 -1
  325. package/src/store/test/actions.js +4 -2
  326. package/src/utils/parse-css-unit-to-px.js +35 -5
  327. package/src/utils/test/parse-css-unit-to-px.js +12 -0
  328. package/build/hooks/child-layout.js +0 -213
  329. package/build/hooks/child-layout.js.map +0 -1
  330. package/build/hooks/font-appearance.js +0 -188
  331. package/build/hooks/font-appearance.js.map +0 -1
  332. package/build/hooks/letter-spacing.js +0 -129
  333. package/build/hooks/letter-spacing.js.map +0 -1
  334. package/build/hooks/min-height.js +0 -139
  335. package/build/hooks/min-height.js.map +0 -1
  336. package/build/hooks/text-decoration.js +0 -130
  337. package/build/hooks/text-decoration.js.map +0 -1
  338. package/build/hooks/text-transform.js +0 -130
  339. package/build/hooks/text-transform.js.map +0 -1
  340. package/build-module/hooks/child-layout.js +0 -193
  341. package/build-module/hooks/child-layout.js.map +0 -1
  342. package/build-module/hooks/font-appearance.js +0 -161
  343. package/build-module/hooks/font-appearance.js.map +0 -1
  344. package/build-module/hooks/letter-spacing.js +0 -107
  345. package/build-module/hooks/letter-spacing.js.map +0 -1
  346. package/build-module/hooks/min-height.js +0 -116
  347. package/build-module/hooks/min-height.js.map +0 -1
  348. package/build-module/hooks/text-decoration.js +0 -108
  349. package/build-module/hooks/text-decoration.js.map +0 -1
  350. package/build-module/hooks/text-transform.js +0 -108
  351. package/build-module/hooks/text-transform.js.map +0 -1
  352. package/src/hooks/child-layout.js +0 -195
  353. package/src/hooks/font-appearance.js +0 -146
  354. package/src/hooks/letter-spacing.js +0 -101
  355. package/src/hooks/min-height.js +0 -104
  356. package/src/hooks/text-decoration.js +0 -102
  357. package/src/hooks/text-transform.js +0 -101
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/iframe/index.js"],"names":["classnames","useState","createPortal","forwardRef","useMemo","useReducer","renderToString","__","useResizeObserver","useMergeRefs","useRefEffect","useDisabled","__experimentalStyleProvider","StyleProvider","useSelect","useBlockSelectionClearer","useWritingFlow","useCompatibilityStyles","store","blockEditorStore","bubbleEvents","doc","defaultView","frameElement","bubbleEvent","event","prototype","Object","getPrototypeOf","constructorName","constructor","name","Constructor","window","init","key","MouseEvent","rect","getBoundingClientRect","clientX","left","clientY","top","newEvent","type","cancelled","dispatchEvent","preventDefault","eventTypes","addEventListener","useParsedAssets","html","document","implementation","createHTMLDocument","body","innerHTML","Array","from","children","loadScript","head","id","src","Promise","resolve","reject","script","ownerDocument","createElement","onload","onerror","appendChild","Iframe","contentRef","tabIndex","scale","frameSize","readonly","forwardedRef","ref","props","assets","select","getSettings","__unstableResolvedAssets","forceRender","iframeDocument","setIframeDocument","bodyClasses","setBodyClasses","styles","styleIds","map","style","compatStyles","neededCompatStyles","filter","includes","scripts","clearerRef","before","writingFlowRef","after","contentResizeListener","height","contentHeight","setRef","node","iFrameDocument","preventFileDropDefault","setDocumentIfReady","contentDocument","readyState","documentElement","classList","startsWith","dir","removeChild","removeEventListener","headRef","element","reduce","promise","then","finally","disabledRef","isDisabled","bodyRef","styleAssets","tagName","href","rel","media","textContent","TagName","toLowerCase","srcDoc","marginBottom","marginTop","transform","IframeIfReady","isInitialised","__internalIsInitialized"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tcreatePortal,\n\tforwardRef,\n\tuseMemo,\n\tuseReducer,\n\trenderToString,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseResizeObserver,\n\tuseMergeRefs,\n\tuseRefEffect,\n\tuseDisabled,\n} from '@wordpress/compose';\nimport { __experimentalStyleProvider as StyleProvider } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useWritingFlow } from '../writing-flow';\nimport { useCompatibilityStyles } from './use-compatibility-styles';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Bubbles some event types (keydown, keypress, and dragover) to parent document\n * document to ensure that the keyboard shortcuts and drag and drop work.\n *\n * Ideally, we should remove event bubbling in the future. Keyboard shortcuts\n * should be context dependent, e.g. actions on blocks like Cmd+A should not\n * work globally outside the block editor.\n *\n * @param {Document} doc Document to attach listeners to.\n */\nfunction bubbleEvents( doc ) {\n\tconst { defaultView } = doc;\n\tconst { frameElement } = defaultView;\n\n\tfunction bubbleEvent( event ) {\n\t\tconst prototype = Object.getPrototypeOf( event );\n\t\tconst constructorName = prototype.constructor.name;\n\t\tconst Constructor = window[ constructorName ];\n\n\t\tconst init = {};\n\n\t\tfor ( const key in event ) {\n\t\t\tinit[ key ] = event[ key ];\n\t\t}\n\n\t\tif ( event instanceof defaultView.MouseEvent ) {\n\t\t\tconst rect = frameElement.getBoundingClientRect();\n\t\t\tinit.clientX += rect.left;\n\t\t\tinit.clientY += rect.top;\n\t\t}\n\n\t\tconst newEvent = new Constructor( event.type, init );\n\t\tconst cancelled = ! frameElement.dispatchEvent( newEvent );\n\n\t\tif ( cancelled ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tconst eventTypes = [ 'dragover' ];\n\n\tfor ( const name of eventTypes ) {\n\t\tdoc.addEventListener( name, bubbleEvent );\n\t}\n}\n\nfunction useParsedAssets( html ) {\n\treturn useMemo( () => {\n\t\tconst doc = document.implementation.createHTMLDocument( '' );\n\t\tdoc.body.innerHTML = html;\n\t\treturn Array.from( doc.body.children );\n\t}, [ html ] );\n}\n\nasync function loadScript( head, { id, src } ) {\n\treturn new Promise( ( resolve, reject ) => {\n\t\tconst script = head.ownerDocument.createElement( 'script' );\n\t\tscript.id = id;\n\t\tif ( src ) {\n\t\t\tscript.src = src;\n\t\t\tscript.onload = () => resolve();\n\t\t\tscript.onerror = () => reject();\n\t\t} else {\n\t\t\tresolve();\n\t\t}\n\t\thead.appendChild( script );\n\t} );\n}\n\nfunction Iframe( {\n\tcontentRef,\n\tchildren,\n\thead,\n\ttabIndex = 0,\n\tscale = 1,\n\tframeSize = 0,\n\treadonly,\n\tforwardedRef: ref,\n\t...props\n} ) {\n\tconst assets = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().__unstableResolvedAssets,\n\t\t[]\n\t);\n\tconst [ , forceRender ] = useReducer( () => ( {} ) );\n\tconst [ iframeDocument, setIframeDocument ] = useState();\n\tconst [ bodyClasses, setBodyClasses ] = useState( [] );\n\tconst styles = useParsedAssets( assets?.styles );\n\tconst styleIds = styles.map( ( style ) => style.id );\n\tconst compatStyles = useCompatibilityStyles();\n\tconst neededCompatStyles = compatStyles.filter(\n\t\t( style ) => ! styleIds.includes( style.id )\n\t);\n\tconst scripts = useParsedAssets( assets?.scripts );\n\tconst clearerRef = useBlockSelectionClearer();\n\tconst [ before, writingFlowRef, after ] = useWritingFlow();\n\tconst [ contentResizeListener, { height: contentHeight } ] =\n\t\tuseResizeObserver();\n\tconst setRef = useRefEffect( ( node ) => {\n\t\tlet iFrameDocument;\n\t\t// Prevent the default browser action for files dropped outside of dropzones.\n\t\tfunction preventFileDropDefault( event ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tfunction setDocumentIfReady() {\n\t\t\tconst { contentDocument, ownerDocument } = node;\n\t\t\tconst { readyState, documentElement } = contentDocument;\n\t\t\tiFrameDocument = contentDocument;\n\n\t\t\tif ( readyState !== 'interactive' && readyState !== 'complete' ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tbubbleEvents( contentDocument );\n\t\t\tsetIframeDocument( contentDocument );\n\t\t\tclearerRef( documentElement );\n\n\t\t\t// Ideally ALL classes that are added through get_body_class should\n\t\t\t// be added in the editor too, which we'll somehow have to get from\n\t\t\t// the server in the future (which will run the PHP filters).\n\t\t\tsetBodyClasses(\n\t\t\t\tArray.from( ownerDocument.body.classList ).filter(\n\t\t\t\t\t( name ) =>\n\t\t\t\t\t\tname.startsWith( 'admin-color-' ) ||\n\t\t\t\t\t\tname.startsWith( 'post-type-' ) ||\n\t\t\t\t\t\tname === 'wp-embed-responsive'\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tcontentDocument.dir = ownerDocument.dir;\n\t\t\tdocumentElement.removeChild( contentDocument.head );\n\t\t\tdocumentElement.removeChild( contentDocument.body );\n\n\t\t\tiFrameDocument.addEventListener(\n\t\t\t\t'dragover',\n\t\t\t\tpreventFileDropDefault,\n\t\t\t\tfalse\n\t\t\t);\n\t\t\tiFrameDocument.addEventListener(\n\t\t\t\t'drop',\n\t\t\t\tpreventFileDropDefault,\n\t\t\t\tfalse\n\t\t\t);\n\t\t\treturn true;\n\t\t}\n\n\t\t// Document set with srcDoc is not immediately ready.\n\t\tnode.addEventListener( 'load', setDocumentIfReady );\n\n\t\treturn () => {\n\t\t\tnode.removeEventListener( 'load', setDocumentIfReady );\n\t\t\tiFrameDocument?.removeEventListener(\n\t\t\t\t'dragover',\n\t\t\t\tpreventFileDropDefault\n\t\t\t);\n\t\t\tiFrameDocument?.removeEventListener(\n\t\t\t\t'drop',\n\t\t\t\tpreventFileDropDefault\n\t\t\t);\n\t\t};\n\t}, [] );\n\n\tconst headRef = useRefEffect( ( element ) => {\n\t\tscripts\n\t\t\t.reduce(\n\t\t\t\t( promise, script ) =>\n\t\t\t\t\tpromise.then( () => loadScript( element, script ) ),\n\t\t\t\tPromise.resolve()\n\t\t\t)\n\t\t\t.finally( () => {\n\t\t\t\t// When script are loaded, re-render blocks to allow them\n\t\t\t\t// to initialise.\n\t\t\t\tforceRender();\n\t\t\t} );\n\t}, [] );\n\tconst disabledRef = useDisabled( { isDisabled: ! readonly } );\n\tconst bodyRef = useMergeRefs( [\n\t\tcontentRef,\n\t\tclearerRef,\n\t\twritingFlowRef,\n\t\tdisabledRef,\n\t] );\n\n\tconst styleAssets = (\n\t\t<>\n\t\t\t<style>{ 'html{height:auto!important;}body{margin:0}' }</style>\n\t\t\t{ [ ...styles, ...neededCompatStyles ].map(\n\t\t\t\t( { tagName, href, id, rel, media, textContent } ) => {\n\t\t\t\t\tconst TagName = tagName.toLowerCase();\n\n\t\t\t\t\tif ( TagName === 'style' ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TagName { ...{ id } } key={ id }>\n\t\t\t\t\t\t\t\t{ textContent }\n\t\t\t\t\t\t\t</TagName>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TagName { ...{ href, id, rel, media } } key={ id } />\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t) }\n\t\t</>\n\t);\n\n\t// Correct doctype is required to enable rendering in standards\n\t// mode. Also preload the styles to avoid a flash of unstyled\n\t// content.\n\tconst srcDoc = useMemo( () => {\n\t\treturn '<!doctype html>' + renderToString( styleAssets );\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t{ tabIndex >= 0 && before }\n\t\t\t<iframe\n\t\t\t\t{ ...props }\n\t\t\t\tref={ useMergeRefs( [ ref, setRef ] ) }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t// Correct doctype is required to enable rendering in standards\n\t\t\t\t// mode. Also preload the styles to avoid a flash of unstyled\n\t\t\t\t// content.\n\t\t\t\tsrcDoc={ srcDoc }\n\t\t\t\ttitle={ __( 'Editor canvas' ) }\n\t\t\t>\n\t\t\t\t{ iframeDocument &&\n\t\t\t\t\tcreatePortal(\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<head ref={ headRef }>\n\t\t\t\t\t\t\t\t{ styleAssets }\n\t\t\t\t\t\t\t\t{ head }\n\t\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t\t{ `html { transition: background 5s; ${\n\t\t\t\t\t\t\t\t\t\tframeSize\n\t\t\t\t\t\t\t\t\t\t\t? 'background: #2f2f2f; transition: background 0s;'\n\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t} }` }\n\t\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t</head>\n\t\t\t\t\t\t\t<body\n\t\t\t\t\t\t\t\tref={ bodyRef }\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t'block-editor-iframe__body',\n\t\t\t\t\t\t\t\t\t'editor-styles-wrapper',\n\t\t\t\t\t\t\t\t\t...bodyClasses\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t// This is the remaining percentage from the scaling down\n\t\t\t\t\t\t\t\t\t// of the iframe body(`scale(0.45)`). We also need to subtract\n\t\t\t\t\t\t\t\t\t// the body's bottom margin.\n\t\t\t\t\t\t\t\t\tmarginBottom: `-${\n\t\t\t\t\t\t\t\t\t\tcontentHeight * ( 1 - scale ) -\n\t\t\t\t\t\t\t\t\t\tframeSize\n\t\t\t\t\t\t\t\t\t}px`,\n\t\t\t\t\t\t\t\t\tmarginTop: frameSize,\n\t\t\t\t\t\t\t\t\ttransform: `scale( ${ scale } )`,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ contentResizeListener }\n\t\t\t\t\t\t\t\t<StyleProvider document={ iframeDocument }>\n\t\t\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t\t</StyleProvider>\n\t\t\t\t\t\t\t</body>\n\t\t\t\t\t\t</>,\n\t\t\t\t\t\tiframeDocument.documentElement\n\t\t\t\t\t) }\n\t\t\t</iframe>\n\t\t\t{ tabIndex >= 0 && after }\n\t\t</>\n\t);\n}\n\nfunction IframeIfReady( props, ref ) {\n\tconst isInitialised = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().__internalIsInitialized,\n\t\t[]\n\t);\n\n\t// We shouldn't render the iframe until the editor settings are initialised.\n\t// The initial settings are needed to get the styles for the srcDoc, which\n\t// cannot be changed after the iframe is mounted. srcDoc is used to to set\n\t// the initial iframe HTML, which is required to avoid a flash of unstyled\n\t// content.\n\tif ( ! isInitialised ) {\n\t\treturn null;\n\t}\n\n\treturn <Iframe { ...props } forwardedRef={ ref } />;\n}\n\nexport default forwardRef( IframeIfReady );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/iframe/index.js"],"names":["classnames","useState","createPortal","forwardRef","useMemo","useReducer","renderToString","__","useResizeObserver","useMergeRefs","useRefEffect","useDisabled","__experimentalStyleProvider","StyleProvider","useSelect","useBlockSelectionClearer","useWritingFlow","useCompatibilityStyles","store","blockEditorStore","bubbleEvents","doc","defaultView","frameElement","bubbleEvent","event","prototype","Object","getPrototypeOf","constructorName","constructor","name","Constructor","window","init","key","MouseEvent","rect","getBoundingClientRect","clientX","left","clientY","top","newEvent","type","cancelled","dispatchEvent","preventDefault","eventTypes","addEventListener","useParsedAssets","html","document","implementation","createHTMLDocument","body","innerHTML","Array","from","children","loadScript","head","id","src","Promise","resolve","reject","script","ownerDocument","createElement","onload","onerror","appendChild","Iframe","contentRef","tabIndex","scale","frameSize","expand","readonly","forwardedRef","ref","props","assets","select","getSettings","__unstableResolvedAssets","forceRender","iframeDocument","setIframeDocument","bodyClasses","setBodyClasses","styles","styleIds","map","style","compatStyles","neededCompatStyles","filter","includes","scripts","clearerRef","before","writingFlowRef","after","contentResizeListener","height","contentHeight","setRef","node","iFrameDocument","preventFileDropDefault","setDocumentIfReady","contentDocument","readyState","documentElement","classList","startsWith","dir","removeChild","removeEventListener","headRef","element","reduce","promise","then","finally","disabledRef","isDisabled","bodyRef","styleAssets","tagName","href","rel","media","textContent","TagName","toLowerCase","srcDoc","marginFromScaling","marginTop","marginBottom","transform","transition","IframeIfReady","isInitialised","__internalIsInitialized"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tcreatePortal,\n\tforwardRef,\n\tuseMemo,\n\tuseReducer,\n\trenderToString,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseResizeObserver,\n\tuseMergeRefs,\n\tuseRefEffect,\n\tuseDisabled,\n} from '@wordpress/compose';\nimport { __experimentalStyleProvider as StyleProvider } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useWritingFlow } from '../writing-flow';\nimport { useCompatibilityStyles } from './use-compatibility-styles';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Bubbles some event types (keydown, keypress, and dragover) to parent document\n * document to ensure that the keyboard shortcuts and drag and drop work.\n *\n * Ideally, we should remove event bubbling in the future. Keyboard shortcuts\n * should be context dependent, e.g. actions on blocks like Cmd+A should not\n * work globally outside the block editor.\n *\n * @param {Document} doc Document to attach listeners to.\n */\nfunction bubbleEvents( doc ) {\n\tconst { defaultView } = doc;\n\tconst { frameElement } = defaultView;\n\n\tfunction bubbleEvent( event ) {\n\t\tconst prototype = Object.getPrototypeOf( event );\n\t\tconst constructorName = prototype.constructor.name;\n\t\tconst Constructor = window[ constructorName ];\n\n\t\tconst init = {};\n\n\t\tfor ( const key in event ) {\n\t\t\tinit[ key ] = event[ key ];\n\t\t}\n\n\t\tif ( event instanceof defaultView.MouseEvent ) {\n\t\t\tconst rect = frameElement.getBoundingClientRect();\n\t\t\tinit.clientX += rect.left;\n\t\t\tinit.clientY += rect.top;\n\t\t}\n\n\t\tconst newEvent = new Constructor( event.type, init );\n\t\tconst cancelled = ! frameElement.dispatchEvent( newEvent );\n\n\t\tif ( cancelled ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tconst eventTypes = [ 'dragover' ];\n\n\tfor ( const name of eventTypes ) {\n\t\tdoc.addEventListener( name, bubbleEvent );\n\t}\n}\n\nfunction useParsedAssets( html ) {\n\treturn useMemo( () => {\n\t\tconst doc = document.implementation.createHTMLDocument( '' );\n\t\tdoc.body.innerHTML = html;\n\t\treturn Array.from( doc.body.children );\n\t}, [ html ] );\n}\n\nasync function loadScript( head, { id, src } ) {\n\treturn new Promise( ( resolve, reject ) => {\n\t\tconst script = head.ownerDocument.createElement( 'script' );\n\t\tscript.id = id;\n\t\tif ( src ) {\n\t\t\tscript.src = src;\n\t\t\tscript.onload = () => resolve();\n\t\t\tscript.onerror = () => reject();\n\t\t} else {\n\t\t\tresolve();\n\t\t}\n\t\thead.appendChild( script );\n\t} );\n}\n\nfunction Iframe( {\n\tcontentRef,\n\tchildren,\n\thead,\n\ttabIndex = 0,\n\tscale = 1,\n\tframeSize = 0,\n\texpand = false,\n\treadonly,\n\tforwardedRef: ref,\n\t...props\n} ) {\n\tconst assets = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().__unstableResolvedAssets,\n\t\t[]\n\t);\n\tconst [ , forceRender ] = useReducer( () => ( {} ) );\n\tconst [ iframeDocument, setIframeDocument ] = useState();\n\tconst [ bodyClasses, setBodyClasses ] = useState( [] );\n\tconst styles = useParsedAssets( assets?.styles );\n\tconst styleIds = styles.map( ( style ) => style.id );\n\tconst compatStyles = useCompatibilityStyles();\n\tconst neededCompatStyles = compatStyles.filter(\n\t\t( style ) => ! styleIds.includes( style.id )\n\t);\n\tconst scripts = useParsedAssets( assets?.scripts );\n\tconst clearerRef = useBlockSelectionClearer();\n\tconst [ before, writingFlowRef, after ] = useWritingFlow();\n\tconst [ contentResizeListener, { height: contentHeight } ] =\n\t\tuseResizeObserver();\n\tconst setRef = useRefEffect( ( node ) => {\n\t\tlet iFrameDocument;\n\t\t// Prevent the default browser action for files dropped outside of dropzones.\n\t\tfunction preventFileDropDefault( event ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tfunction setDocumentIfReady() {\n\t\t\tconst { contentDocument, ownerDocument } = node;\n\t\t\tconst { readyState, documentElement } = contentDocument;\n\t\t\tiFrameDocument = contentDocument;\n\n\t\t\tif ( readyState !== 'interactive' && readyState !== 'complete' ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tbubbleEvents( contentDocument );\n\t\t\tsetIframeDocument( contentDocument );\n\t\t\tclearerRef( documentElement );\n\n\t\t\t// Ideally ALL classes that are added through get_body_class should\n\t\t\t// be added in the editor too, which we'll somehow have to get from\n\t\t\t// the server in the future (which will run the PHP filters).\n\t\t\tsetBodyClasses(\n\t\t\t\tArray.from( ownerDocument.body.classList ).filter(\n\t\t\t\t\t( name ) =>\n\t\t\t\t\t\tname.startsWith( 'admin-color-' ) ||\n\t\t\t\t\t\tname.startsWith( 'post-type-' ) ||\n\t\t\t\t\t\tname === 'wp-embed-responsive'\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tcontentDocument.dir = ownerDocument.dir;\n\t\t\tdocumentElement.removeChild( contentDocument.head );\n\t\t\tdocumentElement.removeChild( contentDocument.body );\n\n\t\t\tiFrameDocument.addEventListener(\n\t\t\t\t'dragover',\n\t\t\t\tpreventFileDropDefault,\n\t\t\t\tfalse\n\t\t\t);\n\t\t\tiFrameDocument.addEventListener(\n\t\t\t\t'drop',\n\t\t\t\tpreventFileDropDefault,\n\t\t\t\tfalse\n\t\t\t);\n\t\t\treturn true;\n\t\t}\n\n\t\t// Document set with srcDoc is not immediately ready.\n\t\tnode.addEventListener( 'load', setDocumentIfReady );\n\n\t\treturn () => {\n\t\t\tnode.removeEventListener( 'load', setDocumentIfReady );\n\t\t\tiFrameDocument?.removeEventListener(\n\t\t\t\t'dragover',\n\t\t\t\tpreventFileDropDefault\n\t\t\t);\n\t\t\tiFrameDocument?.removeEventListener(\n\t\t\t\t'drop',\n\t\t\t\tpreventFileDropDefault\n\t\t\t);\n\t\t};\n\t}, [] );\n\n\tconst headRef = useRefEffect( ( element ) => {\n\t\tscripts\n\t\t\t.reduce(\n\t\t\t\t( promise, script ) =>\n\t\t\t\t\tpromise.then( () => loadScript( element, script ) ),\n\t\t\t\tPromise.resolve()\n\t\t\t)\n\t\t\t.finally( () => {\n\t\t\t\t// When script are loaded, re-render blocks to allow them\n\t\t\t\t// to initialise.\n\t\t\t\tforceRender();\n\t\t\t} );\n\t}, [] );\n\tconst disabledRef = useDisabled( { isDisabled: ! readonly } );\n\tconst bodyRef = useMergeRefs( [\n\t\tcontentRef,\n\t\tclearerRef,\n\t\twritingFlowRef,\n\t\tdisabledRef,\n\t] );\n\n\tconst styleAssets = (\n\t\t<>\n\t\t\t<style>{ 'html{height:auto!important;}body{margin:0}' }</style>\n\t\t\t{ [ ...styles, ...neededCompatStyles ].map(\n\t\t\t\t( { tagName, href, id, rel, media, textContent } ) => {\n\t\t\t\t\tconst TagName = tagName.toLowerCase();\n\n\t\t\t\t\tif ( TagName === 'style' ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TagName { ...{ id } } key={ id }>\n\t\t\t\t\t\t\t\t{ textContent }\n\t\t\t\t\t\t\t</TagName>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TagName { ...{ href, id, rel, media } } key={ id } />\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t) }\n\t\t</>\n\t);\n\n\t// Correct doctype is required to enable rendering in standards\n\t// mode. Also preload the styles to avoid a flash of unstyled\n\t// content.\n\tconst srcDoc = useMemo( () => {\n\t\treturn '<!doctype html>' + renderToString( styleAssets );\n\t}, [] );\n\n\t// We need to counter the margin created by scaling the iframe. If the scale\n\t// is e.g. 0.45, then the top + bottom margin is 0.55 (1 - scale). Just the\n\t// top or bottom margin is 0.55 / 2 ((1 - scale) / 2).\n\tconst marginFromScaling = ( contentHeight * ( 1 - scale ) ) / 2;\n\n\treturn (\n\t\t<>\n\t\t\t{ tabIndex >= 0 && before }\n\t\t\t<iframe\n\t\t\t\t{ ...props }\n\t\t\t\tstyle={ {\n\t\t\t\t\t...props.style,\n\t\t\t\t\theight: expand ? contentHeight : props.style?.height,\n\t\t\t\t\tmarginTop: scale\n\t\t\t\t\t\t? -marginFromScaling + frameSize\n\t\t\t\t\t\t: props.style?.marginTop,\n\t\t\t\t\tmarginBottom: scale\n\t\t\t\t\t\t? -marginFromScaling + frameSize\n\t\t\t\t\t\t: props.style?.marginBottom,\n\t\t\t\t\ttransform: scale\n\t\t\t\t\t\t? `scale( ${ scale } )`\n\t\t\t\t\t\t: props.style?.transform,\n\t\t\t\t\ttransition: 'all .3s',\n\t\t\t\t} }\n\t\t\t\tref={ useMergeRefs( [ ref, setRef ] ) }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t// Correct doctype is required to enable rendering in standards\n\t\t\t\t// mode. Also preload the styles to avoid a flash of unstyled\n\t\t\t\t// content.\n\t\t\t\tsrcDoc={ srcDoc }\n\t\t\t\ttitle={ __( 'Editor canvas' ) }\n\t\t\t>\n\t\t\t\t{ iframeDocument &&\n\t\t\t\t\tcreatePortal(\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<head ref={ headRef }>\n\t\t\t\t\t\t\t\t{ styleAssets }\n\t\t\t\t\t\t\t\t{ head }\n\t\t\t\t\t\t\t</head>\n\t\t\t\t\t\t\t<body\n\t\t\t\t\t\t\t\tref={ bodyRef }\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t'block-editor-iframe__body',\n\t\t\t\t\t\t\t\t\t'editor-styles-wrapper',\n\t\t\t\t\t\t\t\t\t...bodyClasses\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ contentResizeListener }\n\t\t\t\t\t\t\t\t<StyleProvider document={ iframeDocument }>\n\t\t\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t\t</StyleProvider>\n\t\t\t\t\t\t\t</body>\n\t\t\t\t\t\t</>,\n\t\t\t\t\t\tiframeDocument.documentElement\n\t\t\t\t\t) }\n\t\t\t</iframe>\n\t\t\t{ tabIndex >= 0 && after }\n\t\t</>\n\t);\n}\n\nfunction IframeIfReady( props, ref ) {\n\tconst isInitialised = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().__internalIsInitialized,\n\t\t[]\n\t);\n\n\t// We shouldn't render the iframe until the editor settings are initialised.\n\t// The initial settings are needed to get the styles for the srcDoc, which\n\t// cannot be changed after the iframe is mounted. srcDoc is used to to set\n\t// the initial iframe HTML, which is required to avoid a flash of unstyled\n\t// content.\n\tif ( ! isInitialised ) {\n\t\treturn null;\n\t}\n\n\treturn <Iframe { ...props } forwardedRef={ ref } />;\n}\n\nexport default forwardRef( IframeIfReady );\n"]}
@@ -68,7 +68,8 @@ export default function AspectRatioDropdown(_ref3) {
68
68
  onClose();
69
69
  },
70
70
  value: aspect,
71
- aspectRatios: [{
71
+ aspectRatios: [// All ratios should be mirrored in PostFeaturedImage in @wordpress/block-library
72
+ {
72
73
  title: __('Original'),
73
74
  aspect: defaultAspect
74
75
  }, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/image-editor/aspect-ratio-dropdown.js"],"names":["check","aspectRatio","aspectRatioIcon","DropdownMenu","MenuGroup","MenuItem","__","POPOVER_PROPS","useImageEditingContext","AspectGroup","aspectRatios","isDisabled","label","onClick","value","map","title","aspect","undefined","AspectRatioDropdown","toggleProps","isInProgress","setAspect","defaultAspect","onClose","newAspect"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { check, aspectRatio as aspectRatioIcon } from '@wordpress/icons';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { POPOVER_PROPS } from './constants';\nimport { useImageEditingContext } from './context';\n\nfunction AspectGroup( { aspectRatios, isDisabled, label, onClick, value } ) {\n\treturn (\n\t\t<MenuGroup label={ label }>\n\t\t\t{ aspectRatios.map( ( { title, aspect } ) => (\n\t\t\t\t<MenuItem\n\t\t\t\t\tkey={ aspect }\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonClick( aspect );\n\t\t\t\t\t} }\n\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\tisSelected={ aspect === value }\n\t\t\t\t\ticon={ aspect === value ? check : undefined }\n\t\t\t\t>\n\t\t\t\t\t{ title }\n\t\t\t\t</MenuItem>\n\t\t\t) ) }\n\t\t</MenuGroup>\n\t);\n}\n\nexport default function AspectRatioDropdown( { toggleProps } ) {\n\tconst { isInProgress, aspect, setAspect, defaultAspect } =\n\t\tuseImageEditingContext();\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ aspectRatioIcon }\n\t\t\tlabel={ __( 'Aspect Ratio' ) }\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tclassName=\"wp-block-image__aspect-ratio\"\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<AspectGroup\n\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\taspectRatios={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( 'Original' ),\n\t\t\t\t\t\t\t\taspect: defaultAspect,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( 'Square' ),\n\t\t\t\t\t\t\t\taspect: 1,\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\t<AspectGroup\n\t\t\t\t\t\tlabel={ __( 'Landscape' ) }\n\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\taspectRatios={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '16:10' ),\n\t\t\t\t\t\t\t\taspect: 16 / 10,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '16:9' ),\n\t\t\t\t\t\t\t\taspect: 16 / 9,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '4:3' ),\n\t\t\t\t\t\t\t\taspect: 4 / 3,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '3:2' ),\n\t\t\t\t\t\t\t\taspect: 3 / 2,\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\t<AspectGroup\n\t\t\t\t\t\tlabel={ __( 'Portrait' ) }\n\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\taspectRatios={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '10:16' ),\n\t\t\t\t\t\t\t\taspect: 10 / 16,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '9:16' ),\n\t\t\t\t\t\t\t\taspect: 9 / 16,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '3:4' ),\n\t\t\t\t\t\t\t\taspect: 3 / 4,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '2:3' ),\n\t\t\t\t\t\t\t\taspect: 2 / 3,\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\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/image-editor/aspect-ratio-dropdown.js"],"names":["check","aspectRatio","aspectRatioIcon","DropdownMenu","MenuGroup","MenuItem","__","POPOVER_PROPS","useImageEditingContext","AspectGroup","aspectRatios","isDisabled","label","onClick","value","map","title","aspect","undefined","AspectRatioDropdown","toggleProps","isInProgress","setAspect","defaultAspect","onClose","newAspect"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { check, aspectRatio as aspectRatioIcon } from '@wordpress/icons';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { POPOVER_PROPS } from './constants';\nimport { useImageEditingContext } from './context';\n\nfunction AspectGroup( { aspectRatios, isDisabled, label, onClick, value } ) {\n\treturn (\n\t\t<MenuGroup label={ label }>\n\t\t\t{ aspectRatios.map( ( { title, aspect } ) => (\n\t\t\t\t<MenuItem\n\t\t\t\t\tkey={ aspect }\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonClick( aspect );\n\t\t\t\t\t} }\n\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\tisSelected={ aspect === value }\n\t\t\t\t\ticon={ aspect === value ? check : undefined }\n\t\t\t\t>\n\t\t\t\t\t{ title }\n\t\t\t\t</MenuItem>\n\t\t\t) ) }\n\t\t</MenuGroup>\n\t);\n}\n\nexport default function AspectRatioDropdown( { toggleProps } ) {\n\tconst { isInProgress, aspect, setAspect, defaultAspect } =\n\t\tuseImageEditingContext();\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ aspectRatioIcon }\n\t\t\tlabel={ __( 'Aspect Ratio' ) }\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tclassName=\"wp-block-image__aspect-ratio\"\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<AspectGroup\n\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\taspectRatios={ [\n\t\t\t\t\t\t\t// All ratios should be mirrored in PostFeaturedImage in @wordpress/block-library\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( 'Original' ),\n\t\t\t\t\t\t\t\taspect: defaultAspect,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( 'Square' ),\n\t\t\t\t\t\t\t\taspect: 1,\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\t<AspectGroup\n\t\t\t\t\t\tlabel={ __( 'Landscape' ) }\n\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\taspectRatios={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '16:10' ),\n\t\t\t\t\t\t\t\taspect: 16 / 10,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '16:9' ),\n\t\t\t\t\t\t\t\taspect: 16 / 9,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '4:3' ),\n\t\t\t\t\t\t\t\taspect: 4 / 3,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '3:2' ),\n\t\t\t\t\t\t\t\taspect: 3 / 2,\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\t<AspectGroup\n\t\t\t\t\t\tlabel={ __( 'Portrait' ) }\n\t\t\t\t\t\tisDisabled={ isInProgress }\n\t\t\t\t\t\tonClick={ ( newAspect ) => {\n\t\t\t\t\t\t\tsetAspect( newAspect );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ aspect }\n\t\t\t\t\t\taspectRatios={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '10:16' ),\n\t\t\t\t\t\t\t\taspect: 10 / 16,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '9:16' ),\n\t\t\t\t\t\t\t\taspect: 9 / 16,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '3:4' ),\n\t\t\t\t\t\t\t\taspect: 3 / 4,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: __( '2:3' ),\n\t\t\t\t\t\t\t\taspect: 2 / 3,\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\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"]}
@@ -3,7 +3,7 @@ import { createElement, Fragment } from "@wordpress/element";
3
3
  /**
4
4
  * WordPress dependencies
5
5
  */
6
- import { Button, ButtonGroup, SelectControl, TextControl } from '@wordpress/components';
6
+ import { Button, ButtonGroup, SelectControl, __experimentalNumberControl as NumberControl, __experimentalHStack as HStack } from '@wordpress/components';
7
7
  import { __ } from '@wordpress/i18n';
8
8
  /**
9
9
  * Internal dependencies
@@ -42,27 +42,22 @@ export default function ImageSizeControl(_ref) {
42
42
  help: imageSizeHelp
43
43
  }), isResizable && createElement("div", {
44
44
  className: "block-editor-image-size-control"
45
- }, createElement("p", {
46
- className: "block-editor-image-size-control__row"
47
- }, __('Image dimensions')), createElement("div", {
48
- className: "block-editor-image-size-control__row"
49
- }, createElement(TextControl, {
50
- type: "number",
45
+ }, createElement("p", null, __('Image dimensions')), createElement(HStack, {
46
+ align: "baseline",
47
+ spacing: "3"
48
+ }, createElement(NumberControl, {
51
49
  className: "block-editor-image-size-control__width",
52
50
  label: __('Width'),
53
51
  value: currentWidth,
54
52
  min: 1,
55
53
  onChange: value => updateDimension('width', value)
56
- }), createElement(TextControl, {
57
- type: "number",
54
+ }), createElement(NumberControl, {
58
55
  className: "block-editor-image-size-control__height",
59
56
  label: __('Height'),
60
57
  value: currentHeight,
61
58
  min: 1,
62
59
  onChange: value => updateDimension('height', value)
63
- })), createElement("div", {
64
- className: "block-editor-image-size-control__row"
65
- }, createElement(ButtonGroup, {
60
+ })), createElement(HStack, null, createElement(ButtonGroup, {
66
61
  "aria-label": __('Image size presets')
67
62
  }, IMAGE_SIZE_PRESETS.map(scale => {
68
63
  const scaledWidth = Math.round(imageWidth * (scale / 100));
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/image-size-control/index.js"],"names":["Button","ButtonGroup","SelectControl","TextControl","__","useDimensionHandler","IMAGE_SIZE_PRESETS","noop","ImageSizeControl","imageSizeHelp","imageWidth","imageHeight","imageSizeOptions","isResizable","slug","width","height","onChange","onChangeImage","currentHeight","currentWidth","updateDimension","updateDimensions","length","value","map","scale","scaledWidth","Math","round","scaledHeight","isCurrent","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tButtonGroup,\n\tSelectControl,\n\tTextControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useDimensionHandler from './use-dimension-handler';\n\nconst IMAGE_SIZE_PRESETS = [ 25, 50, 75, 100 ];\nconst noop = () => {};\n\nexport default function ImageSizeControl( {\n\timageSizeHelp,\n\timageWidth,\n\timageHeight,\n\timageSizeOptions = [],\n\tisResizable = true,\n\tslug,\n\twidth,\n\theight,\n\tonChange,\n\tonChangeImage = noop,\n} ) {\n\tconst { currentHeight, currentWidth, updateDimension, updateDimensions } =\n\t\tuseDimensionHandler( height, width, imageHeight, imageWidth, onChange );\n\n\treturn (\n\t\t<>\n\t\t\t{ imageSizeOptions && imageSizeOptions.length > 0 && (\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\tvalue={ slug }\n\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\tonChange={ onChangeImage }\n\t\t\t\t\thelp={ imageSizeHelp }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isResizable && (\n\t\t\t\t<div className=\"block-editor-image-size-control\">\n\t\t\t\t\t<p className=\"block-editor-image-size-control__row\">\n\t\t\t\t\t\t{ __( 'Image dimensions' ) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<div className=\"block-editor-image-size-control__row\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tclassName=\"block-editor-image-size-control__width\"\n\t\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\t\tvalue={ currentWidth }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateDimension( 'width', value )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tclassName=\"block-editor-image-size-control__height\"\n\t\t\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\t\t\tvalue={ currentHeight }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateDimension( 'height', value )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"block-editor-image-size-control__row\">\n\t\t\t\t\t\t<ButtonGroup aria-label={ __( 'Image size presets' ) }>\n\t\t\t\t\t\t\t{ IMAGE_SIZE_PRESETS.map( ( scale ) => {\n\t\t\t\t\t\t\t\tconst scaledWidth = Math.round(\n\t\t\t\t\t\t\t\t\timageWidth * ( scale / 100 )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tconst scaledHeight = Math.round(\n\t\t\t\t\t\t\t\t\timageHeight * ( scale / 100 )\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tconst isCurrent =\n\t\t\t\t\t\t\t\t\tcurrentWidth === scaledWidth &&\n\t\t\t\t\t\t\t\t\tcurrentHeight === scaledHeight;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tkey={ scale }\n\t\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\tisCurrent ? 'primary' : undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisPressed={ isCurrent }\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tupdateDimensions(\n\t\t\t\t\t\t\t\t\t\t\t\tscaledHeight,\n\t\t\t\t\t\t\t\t\t\t\t\tscaledWidth\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>\n\t\t\t\t\t\t\t\t\t\t{ scale }%\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</ButtonGroup>\n\t\t\t\t\t\t<Button isSmall onClick={ () => updateDimensions() }>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/image-size-control/index.js"],"names":["Button","ButtonGroup","SelectControl","__experimentalNumberControl","NumberControl","__experimentalHStack","HStack","__","useDimensionHandler","IMAGE_SIZE_PRESETS","noop","ImageSizeControl","imageSizeHelp","imageWidth","imageHeight","imageSizeOptions","isResizable","slug","width","height","onChange","onChangeImage","currentHeight","currentWidth","updateDimension","updateDimensions","length","value","map","scale","scaledWidth","Math","round","scaledHeight","isCurrent","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tButtonGroup,\n\tSelectControl,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useDimensionHandler from './use-dimension-handler';\n\nconst IMAGE_SIZE_PRESETS = [ 25, 50, 75, 100 ];\nconst noop = () => {};\n\nexport default function ImageSizeControl( {\n\timageSizeHelp,\n\timageWidth,\n\timageHeight,\n\timageSizeOptions = [],\n\tisResizable = true,\n\tslug,\n\twidth,\n\theight,\n\tonChange,\n\tonChangeImage = noop,\n} ) {\n\tconst { currentHeight, currentWidth, updateDimension, updateDimensions } =\n\t\tuseDimensionHandler( height, width, imageHeight, imageWidth, onChange );\n\n\treturn (\n\t\t<>\n\t\t\t{ imageSizeOptions && imageSizeOptions.length > 0 && (\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\tvalue={ slug }\n\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\tonChange={ onChangeImage }\n\t\t\t\t\thelp={ imageSizeHelp }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isResizable && (\n\t\t\t\t<div className=\"block-editor-image-size-control\">\n\t\t\t\t\t<p>{ __( 'Image dimensions' ) }</p>\n\n\t\t\t\t\t<HStack align=\"baseline\" spacing=\"3\">\n\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\tclassName=\"block-editor-image-size-control__width\"\n\t\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\t\tvalue={ currentWidth }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateDimension( 'width', value )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\tclassName=\"block-editor-image-size-control__height\"\n\t\t\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\t\t\tvalue={ currentHeight }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateDimension( 'height', value )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<HStack>\n\t\t\t\t\t\t<ButtonGroup aria-label={ __( 'Image size presets' ) }>\n\t\t\t\t\t\t\t{ IMAGE_SIZE_PRESETS.map( ( scale ) => {\n\t\t\t\t\t\t\t\tconst scaledWidth = Math.round(\n\t\t\t\t\t\t\t\t\timageWidth * ( scale / 100 )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tconst scaledHeight = Math.round(\n\t\t\t\t\t\t\t\t\timageHeight * ( scale / 100 )\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tconst isCurrent =\n\t\t\t\t\t\t\t\t\tcurrentWidth === scaledWidth &&\n\t\t\t\t\t\t\t\t\tcurrentHeight === scaledHeight;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tkey={ scale }\n\t\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\tisCurrent ? 'primary' : undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisPressed={ isCurrent }\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tupdateDimensions(\n\t\t\t\t\t\t\t\t\t\t\t\tscaledHeight,\n\t\t\t\t\t\t\t\t\t\t\t\tscaledWidth\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>\n\t\t\t\t\t\t\t\t\t\t{ scale }%\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</ButtonGroup>\n\t\t\t\t\t\t<Button isSmall onClick={ () => updateDimensions() }>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
@@ -32,7 +32,8 @@ export { default as Warning } from './warning';
32
32
  export { default as ContrastChecker } from './contrast-checker';
33
33
  export { default as useMultipleOriginColorsAndGradients } from './colors-gradients/use-multiple-origin-colors-and-gradients';
34
34
  export { BottomSheetSettings, BlockSettingsButton, blockSettingsScreens } from './block-settings';
35
- export { default as VideoPlayer, VIDEO_ASPECT_RATIO } from './video-player'; // Content Related Components.
35
+ export { default as VideoPlayer, VIDEO_ASPECT_RATIO } from './video-player';
36
+ export { getSpacingPresetCssVar, getCustomValueFromPreset, isValueSpacingPreset } from './spacing-sizes-control/utils'; // Content Related Components.
36
37
 
37
38
  export { default as BlockList } from './block-list';
38
39
  export { default as BlockMover } from './block-mover';
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/index.native.js"],"names":["BlockAlignmentControl","BlockAlignmentToolbar","BlockContextProvider","default","BlockControls","BlockFormatControls","BlockEdit","useBlockEditContext","BlockIcon","BlockVerticalAlignmentToolbar","BlockVerticalAlignmentControl","AlignmentControl","AlignmentToolbar","InnerBlocks","useInnerBlocksProps","InspectorControls","InspectorAdvancedControls","JustifyToolbar","JustifyContentControl","LineHeightControl","PlainText","RichText","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent","MediaReplaceFlow","MediaPlaceholder","MediaUpload","MEDIA_TYPE_IMAGE","MEDIA_TYPE_VIDEO","MEDIA_TYPE_AUDIO","MEDIA_TYPE_ANY","MediaUploadProgress","MEDIA_UPLOAD_STATE_UPLOADING","MEDIA_UPLOAD_STATE_SUCCEEDED","MEDIA_UPLOAD_STATE_FAILED","MEDIA_UPLOAD_STATE_RESET","BlockMediaUpdateProgress","URLInput","BlockInvalidWarning","BlockCaption","Caption","PanelColorSettings","__experimentalPanelColorGradientSettings","useSetting","RecursionProvider","__experimentalRecursionProvider","useHasRecursion","__experimentalUseHasRecursion","Warning","ContrastChecker","useMultipleOriginColorsAndGradients","BottomSheetSettings","BlockSettingsButton","blockSettingsScreens","VideoPlayer","VIDEO_ASPECT_RATIO","BlockList","BlockMover","BlockToolbar","BlockVariationPicker","BlockStyles","DefaultBlockAppender","__unstableEditorStyles","Inserter","useBlockProps","FloatingToolbar","BlockEditorProvider"],"mappings":"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","sourcesContent":["// Block Creation Components.\nexport {\n\tBlockAlignmentControl,\n\tBlockAlignmentToolbar,\n} from './block-alignment-control';\nexport { BlockContextProvider } from './block-context';\nexport {\n\tdefault as BlockControls,\n\tBlockFormatControls,\n} from './block-controls';\nexport { default as BlockEdit, useBlockEditContext } from './block-edit';\nexport { default as BlockIcon } from './block-icon';\nexport {\n\tBlockVerticalAlignmentToolbar,\n\tBlockVerticalAlignmentControl,\n} from './block-vertical-alignment-control';\nexport * from './colors';\nexport * from './gradients';\nexport * from './font-sizes';\nexport { AlignmentControl, AlignmentToolbar } from './alignment-control';\nexport { default as InnerBlocks, useInnerBlocksProps } from './inner-blocks';\nexport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from './inspector-controls';\nexport {\n\tJustifyToolbar,\n\tJustifyContentControl,\n} from './justify-content-control';\nexport { default as LineHeightControl } from './line-height-control';\nexport { default as PlainText } from './plain-text';\nexport {\n\tdefault as RichText,\n\tRichTextShortcut,\n\tRichTextToolbarButton,\n\t__unstableRichTextInputEvent,\n} from './rich-text';\nexport { default as MediaReplaceFlow } from './media-replace-flow';\nexport { default as MediaPlaceholder } from './media-placeholder';\nexport {\n\tdefault as MediaUpload,\n\tMEDIA_TYPE_IMAGE,\n\tMEDIA_TYPE_VIDEO,\n\tMEDIA_TYPE_AUDIO,\n\tMEDIA_TYPE_ANY,\n} from './media-upload';\nexport {\n\tdefault as MediaUploadProgress,\n\tMEDIA_UPLOAD_STATE_UPLOADING,\n\tMEDIA_UPLOAD_STATE_SUCCEEDED,\n\tMEDIA_UPLOAD_STATE_FAILED,\n\tMEDIA_UPLOAD_STATE_RESET,\n} from './media-upload-progress';\nexport { default as BlockMediaUpdateProgress } from './block-media-update-progress';\nexport { default as URLInput } from './url-input';\nexport { default as BlockInvalidWarning } from './block-list/block-invalid-warning';\nexport { default as BlockCaption } from './block-caption';\nexport { default as Caption } from './caption';\nexport { default as PanelColorSettings } from './panel-color-settings';\nexport { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';\nexport { default as useSetting } from './use-setting';\nexport {\n\tRecursionProvider as __experimentalRecursionProvider,\n\tuseHasRecursion as __experimentalUseHasRecursion,\n} from './recursion-provider';\nexport { default as Warning } from './warning';\nexport { default as ContrastChecker } from './contrast-checker';\nexport { default as useMultipleOriginColorsAndGradients } from './colors-gradients/use-multiple-origin-colors-and-gradients';\n\nexport {\n\tBottomSheetSettings,\n\tBlockSettingsButton,\n\tblockSettingsScreens,\n} from './block-settings';\nexport { default as VideoPlayer, VIDEO_ASPECT_RATIO } from './video-player';\n\n// Content Related Components.\nexport { default as BlockList } from './block-list';\nexport { default as BlockMover } from './block-mover';\nexport { default as BlockToolbar } from './block-toolbar';\nexport { default as BlockVariationPicker } from './block-variation-picker';\nexport { default as BlockStyles } from './block-styles';\nexport { default as DefaultBlockAppender } from './default-block-appender';\nexport { default as __unstableEditorStyles } from './editor-styles';\nexport { default as Inserter } from './inserter';\nexport { useBlockProps } from './block-list/use-block-props';\nexport { default as FloatingToolbar } from './floating-toolbar';\n\n// State Related Components.\nexport { default as BlockEditorProvider } from './provider';\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/index.native.js"],"names":["BlockAlignmentControl","BlockAlignmentToolbar","BlockContextProvider","default","BlockControls","BlockFormatControls","BlockEdit","useBlockEditContext","BlockIcon","BlockVerticalAlignmentToolbar","BlockVerticalAlignmentControl","AlignmentControl","AlignmentToolbar","InnerBlocks","useInnerBlocksProps","InspectorControls","InspectorAdvancedControls","JustifyToolbar","JustifyContentControl","LineHeightControl","PlainText","RichText","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent","MediaReplaceFlow","MediaPlaceholder","MediaUpload","MEDIA_TYPE_IMAGE","MEDIA_TYPE_VIDEO","MEDIA_TYPE_AUDIO","MEDIA_TYPE_ANY","MediaUploadProgress","MEDIA_UPLOAD_STATE_UPLOADING","MEDIA_UPLOAD_STATE_SUCCEEDED","MEDIA_UPLOAD_STATE_FAILED","MEDIA_UPLOAD_STATE_RESET","BlockMediaUpdateProgress","URLInput","BlockInvalidWarning","BlockCaption","Caption","PanelColorSettings","__experimentalPanelColorGradientSettings","useSetting","RecursionProvider","__experimentalRecursionProvider","useHasRecursion","__experimentalUseHasRecursion","Warning","ContrastChecker","useMultipleOriginColorsAndGradients","BottomSheetSettings","BlockSettingsButton","blockSettingsScreens","VideoPlayer","VIDEO_ASPECT_RATIO","getSpacingPresetCssVar","getCustomValueFromPreset","isValueSpacingPreset","BlockList","BlockMover","BlockToolbar","BlockVariationPicker","BlockStyles","DefaultBlockAppender","__unstableEditorStyles","Inserter","useBlockProps","FloatingToolbar","BlockEditorProvider"],"mappings":"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","sourcesContent":["// Block Creation Components.\nexport {\n\tBlockAlignmentControl,\n\tBlockAlignmentToolbar,\n} from './block-alignment-control';\nexport { BlockContextProvider } from './block-context';\nexport {\n\tdefault as BlockControls,\n\tBlockFormatControls,\n} from './block-controls';\nexport { default as BlockEdit, useBlockEditContext } from './block-edit';\nexport { default as BlockIcon } from './block-icon';\nexport {\n\tBlockVerticalAlignmentToolbar,\n\tBlockVerticalAlignmentControl,\n} from './block-vertical-alignment-control';\nexport * from './colors';\nexport * from './gradients';\nexport * from './font-sizes';\nexport { AlignmentControl, AlignmentToolbar } from './alignment-control';\nexport { default as InnerBlocks, useInnerBlocksProps } from './inner-blocks';\nexport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from './inspector-controls';\nexport {\n\tJustifyToolbar,\n\tJustifyContentControl,\n} from './justify-content-control';\nexport { default as LineHeightControl } from './line-height-control';\nexport { default as PlainText } from './plain-text';\nexport {\n\tdefault as RichText,\n\tRichTextShortcut,\n\tRichTextToolbarButton,\n\t__unstableRichTextInputEvent,\n} from './rich-text';\nexport { default as MediaReplaceFlow } from './media-replace-flow';\nexport { default as MediaPlaceholder } from './media-placeholder';\nexport {\n\tdefault as MediaUpload,\n\tMEDIA_TYPE_IMAGE,\n\tMEDIA_TYPE_VIDEO,\n\tMEDIA_TYPE_AUDIO,\n\tMEDIA_TYPE_ANY,\n} from './media-upload';\nexport {\n\tdefault as MediaUploadProgress,\n\tMEDIA_UPLOAD_STATE_UPLOADING,\n\tMEDIA_UPLOAD_STATE_SUCCEEDED,\n\tMEDIA_UPLOAD_STATE_FAILED,\n\tMEDIA_UPLOAD_STATE_RESET,\n} from './media-upload-progress';\nexport { default as BlockMediaUpdateProgress } from './block-media-update-progress';\nexport { default as URLInput } from './url-input';\nexport { default as BlockInvalidWarning } from './block-list/block-invalid-warning';\nexport { default as BlockCaption } from './block-caption';\nexport { default as Caption } from './caption';\nexport { default as PanelColorSettings } from './panel-color-settings';\nexport { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';\nexport { default as useSetting } from './use-setting';\nexport {\n\tRecursionProvider as __experimentalRecursionProvider,\n\tuseHasRecursion as __experimentalUseHasRecursion,\n} from './recursion-provider';\nexport { default as Warning } from './warning';\nexport { default as ContrastChecker } from './contrast-checker';\nexport { default as useMultipleOriginColorsAndGradients } from './colors-gradients/use-multiple-origin-colors-and-gradients';\n\nexport {\n\tBottomSheetSettings,\n\tBlockSettingsButton,\n\tblockSettingsScreens,\n} from './block-settings';\nexport { default as VideoPlayer, VIDEO_ASPECT_RATIO } from './video-player';\n\nexport {\n\tgetSpacingPresetCssVar,\n\tgetCustomValueFromPreset,\n\tisValueSpacingPreset,\n} from './spacing-sizes-control/utils';\n// Content Related Components.\nexport { default as BlockList } from './block-list';\nexport { default as BlockMover } from './block-mover';\nexport { default as BlockToolbar } from './block-toolbar';\nexport { default as BlockVariationPicker } from './block-variation-picker';\nexport { default as BlockStyles } from './block-styles';\nexport { default as DefaultBlockAppender } from './default-block-appender';\nexport { default as __unstableEditorStyles } from './editor-styles';\nexport { default as Inserter } from './inserter';\nexport { useBlockProps } from './block-list/use-block-props';\nexport { default as FloatingToolbar } from './floating-toolbar';\n\n// State Related Components.\nexport { default as BlockEditorProvider } from './provider';\n"]}
@@ -16,7 +16,7 @@ import { focus } from '@wordpress/dom';
16
16
  import usePatternsState from './hooks/use-patterns-state';
17
17
  import BlockPatternList from '../block-patterns-list';
18
18
  import PatternsExplorerModal from './block-patterns-explorer/explorer';
19
- import MobileTabNavigation from './mobile-tab-navigation'; // Preffered order of pattern categories. Any other categories should
19
+ import MobileTabNavigation from './mobile-tab-navigation'; // Preferred order of pattern categories. Any other categories should
20
20
  // be at the bottom without any re-ordering.
21
21
 
22
22
  const patternCategoriesOrder = ['featured', 'posts', 'text', 'gallery', 'call-to-action', 'banner', 'header', 'footer'];
@@ -38,24 +38,18 @@ function usePatternsCategories(rootClientId) {
38
38
  return (_pattern$categories = pattern.categories) === null || _pattern$categories === void 0 ? void 0 : _pattern$categories.includes(category.name);
39
39
  })).sort((_ref, _ref2) => {
40
40
  let {
41
- name: currentName
41
+ name: aName
42
42
  } = _ref;
43
43
  let {
44
- name: nextName
44
+ name: bName
45
45
  } = _ref2;
46
+ // Sort categories according to `patternCategoriesOrder`.
47
+ let aIndex = patternCategoriesOrder.indexOf(aName);
48
+ let bIndex = patternCategoriesOrder.indexOf(bName); // All other categories should come after that.
46
49
 
47
- // The pattern categories should be ordered as follows:
48
- // 1. The categories from `patternCategoriesOrder` in that specific order should be at the top.
49
- // 2. The rest categories should be at the bottom without any re-ordering.
50
- if (![currentName, nextName].some(categoryName => patternCategoriesOrder.includes(categoryName))) {
51
- return 0;
52
- }
53
-
54
- if ([currentName, nextName].every(categoryName => patternCategoriesOrder.includes(categoryName))) {
55
- return patternCategoriesOrder.indexOf(currentName) - patternCategoriesOrder.indexOf(nextName);
56
- }
57
-
58
- return patternCategoriesOrder.includes(currentName) ? -1 : 1;
50
+ if (aIndex < 0) aIndex = patternCategoriesOrder.length;
51
+ if (bIndex < 0) bIndex = patternCategoriesOrder.length;
52
+ return aIndex - bIndex;
59
53
  });
60
54
 
61
55
  if (allPatterns.some(pattern => !hasRegisteredCategory(pattern)) && !categories.find(category => category.name === 'uncategorized')) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-tab.js"],"names":["useMemo","useState","useCallback","useRef","useEffect","_x","__","useAsyncList","useViewportMatch","__experimentalItemGroup","ItemGroup","__experimentalItem","Item","__experimentalHStack","HStack","FlexBlock","Button","Icon","chevronRight","focus","usePatternsState","BlockPatternList","PatternsExplorerModal","MobileTabNavigation","patternCategoriesOrder","usePatternsCategories","rootClientId","allPatterns","allCategories","undefined","hasRegisteredCategory","pattern","categories","length","some","cat","category","name","populatedCategories","filter","includes","sort","currentName","nextName","categoryName","every","indexOf","find","push","label","BlockPatternsCategoryDialog","onInsert","onHover","showTitlesAsTooltip","container","timeout","setTimeout","firstTabbable","tabbable","current","clearTimeout","BlockPatternsCategoryPanel","onClick","availableCategories","currentCategoryPatterns","availablePatternCategories","availableCategory","currentShownPatterns","description","BlockPatternsTabs","onSelectCategory","selectedCategory","showPatternsExplorer","setShowPatternsExplorer","initialCategory","isMobile","map"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseMemo,\n\tuseState,\n\tuseCallback,\n\tuseRef,\n\tuseEffect,\n} from '@wordpress/element';\nimport { _x, __ } from '@wordpress/i18n';\nimport { useAsyncList, useViewportMatch } from '@wordpress/compose';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalHStack as HStack,\n\tFlexBlock,\n\tButton,\n} from '@wordpress/components';\nimport { Icon, chevronRight } from '@wordpress/icons';\nimport { focus } from '@wordpress/dom';\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';\n\n// Preffered order of pattern categories. Any other categories should\n// be at the bottom without any re-ordering.\nconst patternCategoriesOrder = [\n\t'featured',\n\t'posts',\n\t'text',\n\t'gallery',\n\t'call-to-action',\n\t'banner',\n\t'header',\n\t'footer',\n];\n\nfunction usePatternsCategories( rootClientId ) {\n\tconst [ allPatterns, allCategories ] = usePatternsState(\n\t\tundefined,\n\t\trootClientId\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\tallPatterns.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( ( { name: currentName }, { name: nextName } ) => {\n\t\t\t\t// The pattern categories should be ordered as follows:\n\t\t\t\t// 1. The categories from `patternCategoriesOrder` in that specific order should be at the top.\n\t\t\t\t// 2. The rest categories should be at the bottom without any re-ordering.\n\t\t\t\tif (\n\t\t\t\t\t! [ currentName, nextName ].some( ( categoryName ) =>\n\t\t\t\t\t\tpatternCategoriesOrder.includes( categoryName )\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\t[ currentName, nextName ].every( ( categoryName ) =>\n\t\t\t\t\t\tpatternCategoriesOrder.includes( categoryName )\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tpatternCategoriesOrder.indexOf( currentName ) -\n\t\t\t\t\t\tpatternCategoriesOrder.indexOf( nextName )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn patternCategoriesOrder.includes( currentName ) ? -1 : 1;\n\t\t\t} );\n\n\t\tif (\n\t\t\tallPatterns.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\n\t\treturn categories;\n\t}, [ allPatterns, allCategories ] );\n\n\treturn populatedCategories;\n}\n\nexport function BlockPatternsCategoryDialog( {\n\trootClientId,\n\tonInsert,\n\tonHover,\n\tcategory,\n\tshowTitlesAsTooltip,\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\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/>\n\t\t</div>\n\t);\n}\n\nexport function BlockPatternsCategoryPanel( {\n\trootClientId,\n\tonInsert,\n\tonHover,\n\tcategory,\n\tshowTitlesAsTooltip,\n} ) {\n\tconst [ allPatterns, , onClick ] = usePatternsState(\n\t\tonInsert,\n\t\trootClientId\n\t);\n\n\tconst availableCategories = usePatternsCategories( rootClientId );\n\tconst currentCategoryPatterns = useMemo(\n\t\t() =>\n\t\t\tallPatterns.filter( ( pattern ) => {\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[ allPatterns, category ]\n\t);\n\n\tconst currentShownPatterns = useAsyncList( currentCategoryPatterns );\n\n\t// Hide block pattern preview on unmount.\n\tuseEffect( () => () => onHover( null ), [] );\n\n\tif ( ! currentCategoryPatterns.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__patterns-category-panel\">\n\t\t\t<div className=\"block-editor-inserter__patterns-category-panel-title\">\n\t\t\t\t{ category.label }\n\t\t\t</div>\n\t\t\t<p>{ category.description }</p>\n\t\t\t<BlockPatternList\n\t\t\t\tshownPatterns={ currentShownPatterns }\n\t\t\t\tblockPatterns={ currentCategoryPatterns }\n\t\t\t\tonClickPattern={ onClick }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tlabel={ category.label }\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tcategory={ category.label }\n\t\t\t\tisDraggable\n\t\t\t\tshowTitlesAsTooltip={ showTitlesAsTooltip }\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\tconst categories = usePatternsCategories( rootClientId );\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 aria-label={ __( 'Block pattern categories' ) }>\n\t\t\t\t\t\t<ItemGroup\n\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\tclassName=\"block-editor-inserter__block-patterns-tabs\"\n\t\t\t\t\t\t>\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 icon={ chevronRight } />\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\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/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default BlockPatternsTabs;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-tab.js"],"names":["useMemo","useState","useCallback","useRef","useEffect","_x","__","useAsyncList","useViewportMatch","__experimentalItemGroup","ItemGroup","__experimentalItem","Item","__experimentalHStack","HStack","FlexBlock","Button","Icon","chevronRight","focus","usePatternsState","BlockPatternList","PatternsExplorerModal","MobileTabNavigation","patternCategoriesOrder","usePatternsCategories","rootClientId","allPatterns","allCategories","undefined","hasRegisteredCategory","pattern","categories","length","some","cat","category","name","populatedCategories","filter","includes","sort","aName","bName","aIndex","indexOf","bIndex","find","push","label","BlockPatternsCategoryDialog","onInsert","onHover","showTitlesAsTooltip","container","timeout","setTimeout","firstTabbable","tabbable","current","clearTimeout","BlockPatternsCategoryPanel","onClick","availableCategories","currentCategoryPatterns","availablePatternCategories","availableCategory","currentShownPatterns","description","BlockPatternsTabs","onSelectCategory","selectedCategory","showPatternsExplorer","setShowPatternsExplorer","initialCategory","isMobile","map"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,OADD,EAECC,QAFD,EAGCC,WAHD,EAICC,MAJD,EAKCC,SALD,QAMO,oBANP;AAOA,SAASC,EAAT,EAAaC,EAAb,QAAuB,iBAAvB;AACA,SAASC,YAAT,EAAuBC,gBAAvB,QAA+C,oBAA/C;AACA,SACCC,uBAAuB,IAAIC,SAD5B,EAECC,kBAAkB,IAAIC,IAFvB,EAGCC,oBAAoB,IAAIC,MAHzB,EAICC,SAJD,EAKCC,MALD,QAMO,uBANP;AAOA,SAASC,IAAT,EAAeC,YAAf,QAAmC,kBAAnC;AACA,SAASC,KAAT,QAAsB,gBAAtB;AAEA;AACA;AACA;;AACA,OAAOC,gBAAP,MAA6B,4BAA7B;AACA,OAAOC,gBAAP,MAA6B,wBAA7B;AACA,OAAOC,qBAAP,MAAkC,oCAAlC;AACA,OAAOC,mBAAP,MAAgC,yBAAhC,C,CAEA;AACA;;AACA,MAAMC,sBAAsB,GAAG,CAC9B,UAD8B,EAE9B,OAF8B,EAG9B,MAH8B,EAI9B,SAJ8B,EAK9B,gBAL8B,EAM9B,QAN8B,EAO9B,QAP8B,EAQ9B,QAR8B,CAA/B;;AAWA,SAASC,qBAAT,CAAgCC,YAAhC,EAA+C;AAC9C,QAAM,CAAEC,WAAF,EAAeC,aAAf,IAAiCR,gBAAgB,CACtDS,SADsD,EAEtDH,YAFsD,CAAvD;AAKA,QAAMI,qBAAqB,GAAG5B,WAAW,CACtC6B,OAAF,IAAe;AACd,QAAK,CAAEA,OAAO,CAACC,UAAV,IAAwB,CAAED,OAAO,CAACC,UAAR,CAAmBC,MAAlD,EAA2D;AAC1D,aAAO,KAAP;AACA;;AAED,WAAOF,OAAO,CAACC,UAAR,CAAmBE,IAAnB,CAA2BC,GAAF,IAC/BP,aAAa,CAACM,IAAd,CAAsBE,QAAF,IAAgBA,QAAQ,CAACC,IAAT,KAAkBF,GAAtD,CADM,CAAP;AAGA,GATuC,EAUxC,CAAEP,aAAF,CAVwC,CAAzC,CAN8C,CAmB9C;;AACA,QAAMU,mBAAmB,GAAGtC,OAAO,CAAE,MAAM;AAC1C,UAAMgC,UAAU,GAAGJ,aAAa,CAC9BW,MADiB,CACPH,QAAF,IACRT,WAAW,CAACO,IAAZ,CAAoBH,OAAF;AAAA;;AAAA,oCACjBA,OAAO,CAACC,UADS,wDACjB,oBAAoBQ,QAApB,CAA8BJ,QAAQ,CAACC,IAAvC,CADiB;AAAA,KAAlB,CAFiB,EAMjBI,IANiB,CAMX,iBAAwC;AAAA,UAAtC;AAAEJ,QAAAA,IAAI,EAAEK;AAAR,OAAsC;AAAA,UAArB;AAAEL,QAAAA,IAAI,EAAEM;AAAR,OAAqB;AAC9C;AACA,UAAIC,MAAM,GAAGpB,sBAAsB,CAACqB,OAAvB,CAAgCH,KAAhC,CAAb;AACA,UAAII,MAAM,GAAGtB,sBAAsB,CAACqB,OAAvB,CAAgCF,KAAhC,CAAb,CAH8C,CAI9C;;AACA,UAAKC,MAAM,GAAG,CAAd,EAAkBA,MAAM,GAAGpB,sBAAsB,CAACS,MAAhC;AAClB,UAAKa,MAAM,GAAG,CAAd,EAAkBA,MAAM,GAAGtB,sBAAsB,CAACS,MAAhC;AAClB,aAAOW,MAAM,GAAGE,MAAhB;AACA,KAdiB,CAAnB;;AAgBA,QACCnB,WAAW,CAACO,IAAZ,CACGH,OAAF,IAAe,CAAED,qBAAqB,CAAEC,OAAF,CADvC,KAGA,CAAEC,UAAU,CAACe,IAAX,CACCX,QAAF,IAAgBA,QAAQ,CAACC,IAAT,KAAkB,eADjC,CAJH,EAOE;AACDL,MAAAA,UAAU,CAACgB,IAAX,CAAiB;AAChBX,QAAAA,IAAI,EAAE,eADU;AAEhBY,QAAAA,KAAK,EAAE5C,EAAE,CAAE,eAAF;AAFO,OAAjB;AAIA;;AAED,WAAO2B,UAAP;AACA,GAhCkC,EAgChC,CAAEL,WAAF,EAAeC,aAAf,CAhCgC,CAAnC;AAkCA,SAAOU,mBAAP;AACA;;AAED,OAAO,SAASY,2BAAT,QAMH;AAAA,MANyC;AAC5CxB,IAAAA,YAD4C;AAE5CyB,IAAAA,QAF4C;AAG5CC,IAAAA,OAH4C;AAI5ChB,IAAAA,QAJ4C;AAK5CiB,IAAAA;AAL4C,GAMzC;AACH,QAAMC,SAAS,GAAGnD,MAAM,EAAxB;AAEAC,EAAAA,SAAS,CAAE,MAAM;AAChB,UAAMmD,OAAO,GAAGC,UAAU,CAAE,MAAM;AACjC,YAAM,CAAEC,aAAF,IAAoBtC,KAAK,CAACuC,QAAN,CAAeX,IAAf,CAAqBO,SAAS,CAACK,OAA/B,CAA1B;AACAF,MAAAA,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAEtC,KAAf;AACA,KAHyB,CAA1B;AAIA,WAAO,MAAMyC,YAAY,CAAEL,OAAF,CAAzB;AACA,GANQ,EAMN,CAAEnB,QAAF,CANM,CAAT;AAQA,SACC;AACC,IAAA,GAAG,EAAGkB,SADP;AAEC,IAAA,SAAS,EAAC;AAFX,KAIC,cAAC,0BAAD;AACC,IAAA,YAAY,EAAG5B,YADhB;AAEC,IAAA,QAAQ,EAAGyB,QAFZ;AAGC,IAAA,OAAO,EAAGC,OAHX;AAIC,IAAA,QAAQ,EAAGhB,QAJZ;AAKC,IAAA,mBAAmB,EAAGiB;AALvB,IAJD,CADD;AAcA;AAED,OAAO,SAASQ,0BAAT,QAMH;AAAA,MANwC;AAC3CnC,IAAAA,YAD2C;AAE3CyB,IAAAA,QAF2C;AAG3CC,IAAAA,OAH2C;AAI3ChB,IAAAA,QAJ2C;AAK3CiB,IAAAA;AAL2C,GAMxC;AACH,QAAM,CAAE1B,WAAF,GAAiBmC,OAAjB,IAA6B1C,gBAAgB,CAClD+B,QADkD,EAElDzB,YAFkD,CAAnD;AAKA,QAAMqC,mBAAmB,GAAGtC,qBAAqB,CAAEC,YAAF,CAAjD;AACA,QAAMsC,uBAAuB,GAAGhE,OAAO,CACtC,MACC2B,WAAW,CAACY,MAAZ,CAAsBR,OAAF,IAAe;AAAA;;AAClC,QAAKK,QAAQ,CAACC,IAAT,KAAkB,eAAvB,EAAyC;AAAA;;AACxC,qCAAON,OAAO,CAACC,UAAf,yDAAO,qBAAoBQ,QAApB,CAA8BJ,QAAQ,CAACC,IAAvC,CAAP;AACA,KAHiC,CAKlC;AACA;;;AACA,UAAM4B,0BAA0B,oDAC/BlC,OAAO,CAACC,UADuB,yDAC/B,qBAAoBO,MAApB,CAA8BJ,GAAF,IAC3B4B,mBAAmB,CAAChB,IAApB,CACGmB,iBAAF,IACCA,iBAAiB,CAAC7B,IAAlB,KAA2BF,GAF7B,CADD,CAD+B,yEAM1B,EANN;AAQA,WAAO8B,0BAA0B,CAAChC,MAA3B,KAAsC,CAA7C;AACA,GAhBD,CAFqC,EAmBtC,CAAEN,WAAF,EAAeS,QAAf,CAnBsC,CAAvC;AAsBA,QAAM+B,oBAAoB,GAAG5D,YAAY,CAAEyD,uBAAF,CAAzC,CA7BG,CA+BH;;AACA5D,EAAAA,SAAS,CAAE,MAAM,MAAMgD,OAAO,CAAE,IAAF,CAArB,EAA+B,EAA/B,CAAT;;AAEA,MAAK,CAAEY,uBAAuB,CAAC/B,MAA/B,EAAwC;AACvC,WAAO,IAAP;AACA;;AAED,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGG,QAAQ,CAACa,KADZ,CADD,EAIC,yBAAKb,QAAQ,CAACgC,WAAd,CAJD,EAKC,cAAC,gBAAD;AACC,IAAA,aAAa,EAAGD,oBADjB;AAEC,IAAA,aAAa,EAAGH,uBAFjB;AAGC,IAAA,cAAc,EAAGF,OAHlB;AAIC,IAAA,OAAO,EAAGV,OAJX;AAKC,IAAA,KAAK,EAAGhB,QAAQ,CAACa,KALlB;AAMC,IAAA,WAAW,EAAC,UANb;AAOC,IAAA,QAAQ,EAAGb,QAAQ,CAACa,KAPrB;AAQC,IAAA,WAAW,MARZ;AASC,IAAA,mBAAmB,EAAGI;AATvB,IALD,CADD;AAmBA;;AAED,SAASgB,iBAAT,QAKI;AAAA,MALwB;AAC3BC,IAAAA,gBAD2B;AAE3BC,IAAAA,gBAF2B;AAG3BpB,IAAAA,QAH2B;AAI3BzB,IAAAA;AAJ2B,GAKxB;AACH,QAAM,CAAE8C,oBAAF,EAAwBC,uBAAxB,IAAoDxE,QAAQ,CAAE,KAAF,CAAlE;AACA,QAAM+B,UAAU,GAAGP,qBAAqB,CAAEC,YAAF,CAAxC;AACA,QAAMgD,eAAe,GAAGH,gBAAgB,IAAIvC,UAAU,CAAE,CAAF,CAAtD;AACA,QAAM2C,QAAQ,GAAGnE,gBAAgB,CAAE,QAAF,EAAY,GAAZ,CAAjC;AACA,SACC,8BACG,CAAEmE,QAAF,IACD;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAK,kBAAarE,EAAE,CAAE,0BAAF;AAApB,KACC,cAAC,SAAD;AACC,IAAA,IAAI,EAAC,MADN;AAEC,IAAA,SAAS,EAAC;AAFX,KAIG0B,UAAU,CAAC4C,GAAX,CAAkBxC,QAAF,IACjB,cAAC,IAAD;AACC,IAAA,IAAI,EAAC,UADN;AAEC,IAAA,GAAG,EAAGA,QAAQ,CAACC,IAFhB;AAGC,IAAA,OAAO,EAAG,MACTiC,gBAAgB,CAAElC,QAAF,CAJlB;AAMC,IAAA,SAAS,EACRA,QAAQ,KAAKmC,gBAAb,GACG,4FADH,GAEG,0CATL;AAWC,kBAAanC,QAAQ,CAACa,KAXvB;AAYC,oBACCb,QAAQ,KAAKmC,gBAAb,GACG,MADH,GAEG1C;AAfL,KAkBC,cAAC,MAAD,QACC,cAAC,SAAD,QACGO,QAAQ,CAACa,KADZ,CADD,EAIC,cAAC,IAAD;AAAM,IAAA,IAAI,EAAG/B;AAAb,IAJD,CAlBD,CADC,CAJH,EA+BC;AAAK,IAAA,IAAI,EAAC;AAAV,KACC,cAAC,MAAD;AACC,IAAA,SAAS,EAAC,gDADX;AAEC,IAAA,OAAO,EAAG,MACTuD,uBAAuB,CAAE,IAAF,CAHzB;AAKC,IAAA,OAAO,EAAC;AALT,KAOGnE,EAAE,CAAE,sBAAF,CAPL,CADD,CA/BD,CADD,CADD,CAFF,EAkDGqE,QAAQ,IACT,cAAC,mBAAD;AAAqB,IAAA,UAAU,EAAG3C;AAAlC,KACKI,QAAF,IACD,cAAC,0BAAD;AACC,IAAA,QAAQ,EAAGe,QADZ;AAEC,IAAA,YAAY,EAAGzB,YAFhB;AAGC,IAAA,QAAQ,EAAGU,QAHZ;AAIC,IAAA,mBAAmB,EAAG;AAJvB,IAFF,CAnDF,EA8DGoC,oBAAoB,IACrB,cAAC,qBAAD;AACC,IAAA,eAAe,EAAGE,eADnB;AAEC,IAAA,iBAAiB,EAAG1C,UAFrB;AAGC,IAAA,YAAY,EAAG,MAAMyC,uBAAuB,CAAE,KAAF;AAH7C,IA/DF,CADD;AAwEA;;AAED,eAAeJ,iBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseMemo,\n\tuseState,\n\tuseCallback,\n\tuseRef,\n\tuseEffect,\n} from '@wordpress/element';\nimport { _x, __ } from '@wordpress/i18n';\nimport { useAsyncList, useViewportMatch } from '@wordpress/compose';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalHStack as HStack,\n\tFlexBlock,\n\tButton,\n} from '@wordpress/components';\nimport { Icon, chevronRight } from '@wordpress/icons';\nimport { focus } from '@wordpress/dom';\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';\n\n// Preferred order of pattern categories. Any other categories should\n// be at the bottom without any re-ordering.\nconst patternCategoriesOrder = [\n\t'featured',\n\t'posts',\n\t'text',\n\t'gallery',\n\t'call-to-action',\n\t'banner',\n\t'header',\n\t'footer',\n];\n\nfunction usePatternsCategories( rootClientId ) {\n\tconst [ allPatterns, allCategories ] = usePatternsState(\n\t\tundefined,\n\t\trootClientId\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\tallPatterns.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( ( { name: aName }, { name: bName } ) => {\n\t\t\t\t// Sort categories according to `patternCategoriesOrder`.\n\t\t\t\tlet aIndex = patternCategoriesOrder.indexOf( aName );\n\t\t\t\tlet bIndex = patternCategoriesOrder.indexOf( bName );\n\t\t\t\t// All other categories should come after that.\n\t\t\t\tif ( aIndex < 0 ) aIndex = patternCategoriesOrder.length;\n\t\t\t\tif ( bIndex < 0 ) bIndex = patternCategoriesOrder.length;\n\t\t\t\treturn aIndex - bIndex;\n\t\t\t} );\n\n\t\tif (\n\t\t\tallPatterns.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\n\t\treturn categories;\n\t}, [ allPatterns, allCategories ] );\n\n\treturn populatedCategories;\n}\n\nexport function BlockPatternsCategoryDialog( {\n\trootClientId,\n\tonInsert,\n\tonHover,\n\tcategory,\n\tshowTitlesAsTooltip,\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\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/>\n\t\t</div>\n\t);\n}\n\nexport function BlockPatternsCategoryPanel( {\n\trootClientId,\n\tonInsert,\n\tonHover,\n\tcategory,\n\tshowTitlesAsTooltip,\n} ) {\n\tconst [ allPatterns, , onClick ] = usePatternsState(\n\t\tonInsert,\n\t\trootClientId\n\t);\n\n\tconst availableCategories = usePatternsCategories( rootClientId );\n\tconst currentCategoryPatterns = useMemo(\n\t\t() =>\n\t\t\tallPatterns.filter( ( pattern ) => {\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[ allPatterns, category ]\n\t);\n\n\tconst currentShownPatterns = useAsyncList( currentCategoryPatterns );\n\n\t// Hide block pattern preview on unmount.\n\tuseEffect( () => () => onHover( null ), [] );\n\n\tif ( ! currentCategoryPatterns.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__patterns-category-panel\">\n\t\t\t<div className=\"block-editor-inserter__patterns-category-panel-title\">\n\t\t\t\t{ category.label }\n\t\t\t</div>\n\t\t\t<p>{ category.description }</p>\n\t\t\t<BlockPatternList\n\t\t\t\tshownPatterns={ currentShownPatterns }\n\t\t\t\tblockPatterns={ currentCategoryPatterns }\n\t\t\t\tonClickPattern={ onClick }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tlabel={ category.label }\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tcategory={ category.label }\n\t\t\t\tisDraggable\n\t\t\t\tshowTitlesAsTooltip={ showTitlesAsTooltip }\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\tconst categories = usePatternsCategories( rootClientId );\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 aria-label={ __( 'Block pattern categories' ) }>\n\t\t\t\t\t\t<ItemGroup\n\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\tclassName=\"block-editor-inserter__block-patterns-tabs\"\n\t\t\t\t\t\t>\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 icon={ chevronRight } />\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\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/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default BlockPatternsTabs;\n"]}
@@ -4,6 +4,7 @@ import { createElement } from "@wordpress/element";
4
4
  * WordPress dependencies
5
5
  */
6
6
  import { useMemo } from '@wordpress/element';
7
+ import { __ } from '@wordpress/i18n';
7
8
  /**
8
9
  * Internal dependencies
9
10
  */
@@ -62,7 +63,8 @@ function BlockTypesTab(_ref) {
62
63
  name: "Blocks",
63
64
  sections: sections,
64
65
  onSelect: handleSelect,
65
- listProps: listProps
66
+ listProps: listProps,
67
+ label: __('Blocks menu')
66
68
  });
67
69
  }
68
70
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/block-types-tab.native.js"],"names":["useMemo","BlockTypesList","useClipboardBlock","useBlockTypeImpressions","createInserterSection","filterInserterItems","useBlockTypesState","getBlockNamespace","item","name","split","BlockTypesTab","onSelect","rootClientId","listProps","rawBlockTypes","collections","clipboardBlock","filteredBlockTypes","blockTypes","items","trackBlockTypeSelected","handleSelect","collectionSections","result","Object","keys","forEach","namespace","data","filter","length","push","key","metadata","icon","title","sections"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;;AACA,OAAOC,cAAP,MAA2B,qBAA3B;AACA,OAAOC,iBAAP,MAA8B,6BAA9B;AACA,OAAOC,uBAAP,MAAoC,oCAApC;AACA,SAASC,qBAAT,EAAgCC,mBAAhC,QAA2D,SAA3D;AACA,OAAOC,kBAAP,MAA+B,+BAA/B;;AAEA,MAAMC,iBAAiB,GAAKC,IAAF,IAAYA,IAAI,CAACC,IAAL,CAAUC,KAAV,CAAiB,GAAjB,EAAwB,CAAxB,CAAtC;;AAEA,SAASC,aAAT,OAAgE;AAAA,MAAxC;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,YAAZ;AAA0BC,IAAAA;AAA1B,GAAwC;AAC/D,QAAM,CAAEC,aAAF,GAAmBC,WAAnB,IAAmCV,kBAAkB,CAC1DO,YAD0D,EAE1DD,QAF0D,CAA3D;AAIA,QAAMK,cAAc,GAAGf,iBAAiB,CAAEW,YAAF,CAAxC;AACA,QAAMK,kBAAkB,GAAGb,mBAAmB,CAAEU,aAAF,CAA9C;AACA,QAAMI,UAAU,GAAGF,cAAc,GAC9B,CAAEA,cAAF,EAAkB,GAAGC,kBAArB,CAD8B,GAE9BA,kBAFH;AAGA,QAAM;AAAEE,IAAAA,KAAF;AAASC,IAAAA;AAAT,MACLlB,uBAAuB,CAAEgB,UAAF,CADxB;;AAGA,QAAMG,YAAY,GAAG,YAAe;AACnCD,IAAAA,sBAAsB,CAAE,YAAF,CAAtB;AACAT,IAAAA,QAAQ,CAAE,YAAF,CAAR;AACA,GAHD;;AAKA,QAAMW,kBAAkB,GAAGvB,OAAO,CAAE,MAAM;AACzC,UAAMwB,MAAM,GAAG,EAAf;AACAC,IAAAA,MAAM,CAACC,IAAP,CAAaV,WAAb,EAA2BW,OAA3B,CAAsCC,SAAF,IAAiB;AACpD,YAAMC,IAAI,GAAGT,KAAK,CAACU,MAAN,CACVtB,IAAF,IAAYD,iBAAiB,CAAEC,IAAF,CAAjB,KAA8BoB,SAD9B,CAAb;;AAGA,UAAKC,IAAI,CAACE,MAAL,GAAc,CAAnB,EAAuB;AACtBP,QAAAA,MAAM,CAACQ,IAAP,CACC5B,qBAAqB,CAAE;AACtB6B,UAAAA,GAAG,EAAG,cAAcL,SAAW,EADT;AAEtBM,UAAAA,QAAQ,EAAE;AACTC,YAAAA,IAAI,EAAEnB,WAAW,CAAEY,SAAF,CAAX,CAAyBO,IADtB;AAETC,YAAAA,KAAK,EAAEpB,WAAW,CAAEY,SAAF,CAAX,CAAyBQ;AAFvB,WAFY;AAMtBhB,UAAAA,KAAK,EAAES;AANe,SAAF,CADtB;AAUA;AACD,KAhBD;AAkBA,WAAOL,MAAP;AACA,GArBiC,EAqB/B,CAAEJ,KAAF,EAASJ,WAAT,CArB+B,CAAlC;AAuBA,QAAMqB,QAAQ,GAAG,CAChBjC,qBAAqB,CAAE;AAAE6B,IAAAA,GAAG,EAAE,SAAP;AAAkBb,IAAAA;AAAlB,GAAF,CADL,EAEhB,GAAGG,kBAFa,CAAjB;AAKA,SACC,cAAC,cAAD;AACC,IAAA,IAAI,EAAC,QADN;AAEC,IAAA,QAAQ,EAAGc,QAFZ;AAGC,IAAA,QAAQ,EAAGf,YAHZ;AAIC,IAAA,SAAS,EAAGR;AAJb,IADD;AAQA;;AAED,eAAeH,aAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockTypesList from '../block-types-list';\nimport useClipboardBlock from './hooks/use-clipboard-block';\nimport useBlockTypeImpressions from './hooks/use-block-type-impressions';\nimport { createInserterSection, filterInserterItems } from './utils';\nimport useBlockTypesState from './hooks/use-block-types-state';\n\nconst getBlockNamespace = ( item ) => item.name.split( '/' )[ 0 ];\n\nfunction BlockTypesTab( { onSelect, rootClientId, listProps } ) {\n\tconst [ rawBlockTypes, , collections ] = useBlockTypesState(\n\t\trootClientId,\n\t\tonSelect\n\t);\n\tconst clipboardBlock = useClipboardBlock( rootClientId );\n\tconst filteredBlockTypes = filterInserterItems( rawBlockTypes );\n\tconst blockTypes = clipboardBlock\n\t\t? [ clipboardBlock, ...filteredBlockTypes ]\n\t\t: filteredBlockTypes;\n\tconst { items, trackBlockTypeSelected } =\n\t\tuseBlockTypeImpressions( blockTypes );\n\n\tconst handleSelect = ( ...args ) => {\n\t\ttrackBlockTypeSelected( ...args );\n\t\tonSelect( ...args );\n\t};\n\n\tconst collectionSections = useMemo( () => {\n\t\tconst result = [];\n\t\tObject.keys( collections ).forEach( ( namespace ) => {\n\t\t\tconst data = items.filter(\n\t\t\t\t( item ) => getBlockNamespace( item ) === namespace\n\t\t\t);\n\t\t\tif ( data.length > 0 ) {\n\t\t\t\tresult.push(\n\t\t\t\t\tcreateInserterSection( {\n\t\t\t\t\t\tkey: `collection-${ namespace }`,\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\ticon: collections[ namespace ].icon,\n\t\t\t\t\t\t\ttitle: collections[ namespace ].title,\n\t\t\t\t\t\t},\n\t\t\t\t\t\titems: data,\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn result;\n\t}, [ items, collections ] );\n\n\tconst sections = [\n\t\tcreateInserterSection( { key: 'default', items } ),\n\t\t...collectionSections,\n\t];\n\n\treturn (\n\t\t<BlockTypesList\n\t\t\tname=\"Blocks\"\n\t\t\tsections={ sections }\n\t\t\tonSelect={ handleSelect }\n\t\t\tlistProps={ listProps }\n\t\t/>\n\t);\n}\n\nexport default BlockTypesTab;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/block-types-tab.native.js"],"names":["useMemo","__","BlockTypesList","useClipboardBlock","useBlockTypeImpressions","createInserterSection","filterInserterItems","useBlockTypesState","getBlockNamespace","item","name","split","BlockTypesTab","onSelect","rootClientId","listProps","rawBlockTypes","collections","clipboardBlock","filteredBlockTypes","blockTypes","items","trackBlockTypeSelected","handleSelect","collectionSections","result","Object","keys","forEach","namespace","data","filter","length","push","key","metadata","icon","title","sections"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,OAAT,QAAwB,oBAAxB;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,OAAOC,cAAP,MAA2B,qBAA3B;AACA,OAAOC,iBAAP,MAA8B,6BAA9B;AACA,OAAOC,uBAAP,MAAoC,oCAApC;AACA,SAASC,qBAAT,EAAgCC,mBAAhC,QAA2D,SAA3D;AACA,OAAOC,kBAAP,MAA+B,+BAA/B;;AAEA,MAAMC,iBAAiB,GAAKC,IAAF,IAAYA,IAAI,CAACC,IAAL,CAAUC,KAAV,CAAiB,GAAjB,EAAwB,CAAxB,CAAtC;;AAEA,SAASC,aAAT,OAAgE;AAAA,MAAxC;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,YAAZ;AAA0BC,IAAAA;AAA1B,GAAwC;AAC/D,QAAM,CAAEC,aAAF,GAAmBC,WAAnB,IAAmCV,kBAAkB,CAC1DO,YAD0D,EAE1DD,QAF0D,CAA3D;AAIA,QAAMK,cAAc,GAAGf,iBAAiB,CAAEW,YAAF,CAAxC;AACA,QAAMK,kBAAkB,GAAGb,mBAAmB,CAAEU,aAAF,CAA9C;AACA,QAAMI,UAAU,GAAGF,cAAc,GAC9B,CAAEA,cAAF,EAAkB,GAAGC,kBAArB,CAD8B,GAE9BA,kBAFH;AAGA,QAAM;AAAEE,IAAAA,KAAF;AAASC,IAAAA;AAAT,MACLlB,uBAAuB,CAAEgB,UAAF,CADxB;;AAGA,QAAMG,YAAY,GAAG,YAAe;AACnCD,IAAAA,sBAAsB,CAAE,YAAF,CAAtB;AACAT,IAAAA,QAAQ,CAAE,YAAF,CAAR;AACA,GAHD;;AAKA,QAAMW,kBAAkB,GAAGxB,OAAO,CAAE,MAAM;AACzC,UAAMyB,MAAM,GAAG,EAAf;AACAC,IAAAA,MAAM,CAACC,IAAP,CAAaV,WAAb,EAA2BW,OAA3B,CAAsCC,SAAF,IAAiB;AACpD,YAAMC,IAAI,GAAGT,KAAK,CAACU,MAAN,CACVtB,IAAF,IAAYD,iBAAiB,CAAEC,IAAF,CAAjB,KAA8BoB,SAD9B,CAAb;;AAGA,UAAKC,IAAI,CAACE,MAAL,GAAc,CAAnB,EAAuB;AACtBP,QAAAA,MAAM,CAACQ,IAAP,CACC5B,qBAAqB,CAAE;AACtB6B,UAAAA,GAAG,EAAG,cAAcL,SAAW,EADT;AAEtBM,UAAAA,QAAQ,EAAE;AACTC,YAAAA,IAAI,EAAEnB,WAAW,CAAEY,SAAF,CAAX,CAAyBO,IADtB;AAETC,YAAAA,KAAK,EAAEpB,WAAW,CAAEY,SAAF,CAAX,CAAyBQ;AAFvB,WAFY;AAMtBhB,UAAAA,KAAK,EAAES;AANe,SAAF,CADtB;AAUA;AACD,KAhBD;AAkBA,WAAOL,MAAP;AACA,GArBiC,EAqB/B,CAAEJ,KAAF,EAASJ,WAAT,CArB+B,CAAlC;AAuBA,QAAMqB,QAAQ,GAAG,CAChBjC,qBAAqB,CAAE;AAAE6B,IAAAA,GAAG,EAAE,SAAP;AAAkBb,IAAAA;AAAlB,GAAF,CADL,EAEhB,GAAGG,kBAFa,CAAjB;AAKA,SACC,cAAC,cAAD;AACC,IAAA,IAAI,EAAC,QADN;AAEC,IAAA,QAAQ,EAAGc,QAFZ;AAGC,IAAA,QAAQ,EAAGf,YAHZ;AAIC,IAAA,SAAS,EAAGR,SAJb;AAKC,IAAA,KAAK,EAAGd,EAAE,CAAE,aAAF;AALX,IADD;AASA;;AAED,eAAeW,aAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockTypesList from '../block-types-list';\nimport useClipboardBlock from './hooks/use-clipboard-block';\nimport useBlockTypeImpressions from './hooks/use-block-type-impressions';\nimport { createInserterSection, filterInserterItems } from './utils';\nimport useBlockTypesState from './hooks/use-block-types-state';\n\nconst getBlockNamespace = ( item ) => item.name.split( '/' )[ 0 ];\n\nfunction BlockTypesTab( { onSelect, rootClientId, listProps } ) {\n\tconst [ rawBlockTypes, , collections ] = useBlockTypesState(\n\t\trootClientId,\n\t\tonSelect\n\t);\n\tconst clipboardBlock = useClipboardBlock( rootClientId );\n\tconst filteredBlockTypes = filterInserterItems( rawBlockTypes );\n\tconst blockTypes = clipboardBlock\n\t\t? [ clipboardBlock, ...filteredBlockTypes ]\n\t\t: filteredBlockTypes;\n\tconst { items, trackBlockTypeSelected } =\n\t\tuseBlockTypeImpressions( blockTypes );\n\n\tconst handleSelect = ( ...args ) => {\n\t\ttrackBlockTypeSelected( ...args );\n\t\tonSelect( ...args );\n\t};\n\n\tconst collectionSections = useMemo( () => {\n\t\tconst result = [];\n\t\tObject.keys( collections ).forEach( ( namespace ) => {\n\t\t\tconst data = items.filter(\n\t\t\t\t( item ) => getBlockNamespace( item ) === namespace\n\t\t\t);\n\t\t\tif ( data.length > 0 ) {\n\t\t\t\tresult.push(\n\t\t\t\t\tcreateInserterSection( {\n\t\t\t\t\t\tkey: `collection-${ namespace }`,\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\ticon: collections[ namespace ].icon,\n\t\t\t\t\t\t\ttitle: collections[ namespace ].title,\n\t\t\t\t\t\t},\n\t\t\t\t\t\titems: data,\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn result;\n\t}, [ items, collections ] );\n\n\tconst sections = [\n\t\tcreateInserterSection( { key: 'default', items } ),\n\t\t...collectionSections,\n\t];\n\n\treturn (\n\t\t<BlockTypesList\n\t\t\tname=\"Blocks\"\n\t\t\tsections={ sections }\n\t\t\tonSelect={ handleSelect }\n\t\t\tlistProps={ listProps }\n\t\t\tlabel={ __( 'Blocks menu' ) }\n\t\t/>\n\t);\n}\n\nexport default BlockTypesTab;\n"]}
@@ -4,6 +4,7 @@ import { createElement } from "@wordpress/element";
4
4
  * WordPress dependencies
5
5
  */
6
6
  import { useSelect } from '@wordpress/data';
7
+ import { __ } from '@wordpress/i18n';
7
8
  /**
8
9
  * Internal dependencies
9
10
  */
@@ -39,7 +40,8 @@ function ReusableBlocksTab(_ref) {
39
40
  name: "ReusableBlocks",
40
41
  sections: sections,
41
42
  onSelect: onSelect,
42
- listProps: listProps
43
+ listProps: listProps,
44
+ label: __('Reusable blocks')
43
45
  });
44
46
  }
45
47
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/reusable-blocks-tab.native.js"],"names":["useSelect","BlockTypesList","store","blockEditorStore","createInserterSection","filterInserterItems","ReusableBlocksTab","onSelect","rootClientId","listProps","items","select","getInserterItems","allItems","onlyReusable","sections","key"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,cAAP,MAA2B,qBAA3B;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,qBAAT,EAAgCC,mBAAhC,QAA2D,SAA3D;;AAEA,SAASC,iBAAT,OAAoE;AAAA,MAAxC;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,YAAZ;AAA0BC,IAAAA;AAA1B,GAAwC;AACnE,QAAM;AAAEC,IAAAA;AAAF,MAAYV,SAAS,CACxBW,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAuBD,MAAM,CAAER,gBAAF,CAAnC;AACA,UAAMU,QAAQ,GAAGD,gBAAgB,CAAEJ,YAAF,CAAjC;AAEA,WAAO;AACNE,MAAAA,KAAK,EAAEL,mBAAmB,CAAEQ,QAAF,EAAY;AAAEC,QAAAA,YAAY,EAAE;AAAhB,OAAZ;AADpB,KAAP;AAGA,GARyB,EAS1B,CAAEN,YAAF,CAT0B,CAA3B;AAYA,QAAMO,QAAQ,GAAG,CAAEX,qBAAqB,CAAE;AAAEY,IAAAA,GAAG,EAAE,WAAP;AAAoBN,IAAAA;AAApB,GAAF,CAAvB,CAAjB;AAEA,SACC,cAAC,cAAD;AACC,IAAA,IAAI,EAAC,gBADN;AAEC,IAAA,QAAQ,EAAGK,QAFZ;AAGC,IAAA,QAAQ,EAAGR,QAHZ;AAIC,IAAA,SAAS,EAAGE;AAJb,IADD;AAQA;;AAED,eAAeH,iBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockTypesList from '../block-types-list';\nimport { store as blockEditorStore } from '../../store';\nimport { createInserterSection, filterInserterItems } from './utils';\n\nfunction ReusableBlocksTab( { onSelect, rootClientId, listProps } ) {\n\tconst { items } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getInserterItems } = select( blockEditorStore );\n\t\t\tconst allItems = getInserterItems( rootClientId );\n\n\t\t\treturn {\n\t\t\t\titems: filterInserterItems( allItems, { onlyReusable: true } ),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tconst sections = [ createInserterSection( { key: 'reuseable', items } ) ];\n\n\treturn (\n\t\t<BlockTypesList\n\t\t\tname=\"ReusableBlocks\"\n\t\t\tsections={ sections }\n\t\t\tonSelect={ onSelect }\n\t\t\tlistProps={ listProps }\n\t\t/>\n\t);\n}\n\nexport default ReusableBlocksTab;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/reusable-blocks-tab.native.js"],"names":["useSelect","__","BlockTypesList","store","blockEditorStore","createInserterSection","filterInserterItems","ReusableBlocksTab","onSelect","rootClientId","listProps","items","select","getInserterItems","allItems","onlyReusable","sections","key"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,OAAOC,cAAP,MAA2B,qBAA3B;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,qBAAT,EAAgCC,mBAAhC,QAA2D,SAA3D;;AAEA,SAASC,iBAAT,OAAoE;AAAA,MAAxC;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,YAAZ;AAA0BC,IAAAA;AAA1B,GAAwC;AACnE,QAAM;AAAEC,IAAAA;AAAF,MAAYX,SAAS,CACxBY,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAuBD,MAAM,CAAER,gBAAF,CAAnC;AACA,UAAMU,QAAQ,GAAGD,gBAAgB,CAAEJ,YAAF,CAAjC;AAEA,WAAO;AACNE,MAAAA,KAAK,EAAEL,mBAAmB,CAAEQ,QAAF,EAAY;AAAEC,QAAAA,YAAY,EAAE;AAAhB,OAAZ;AADpB,KAAP;AAGA,GARyB,EAS1B,CAAEN,YAAF,CAT0B,CAA3B;AAYA,QAAMO,QAAQ,GAAG,CAAEX,qBAAqB,CAAE;AAAEY,IAAAA,GAAG,EAAE,WAAP;AAAoBN,IAAAA;AAApB,GAAF,CAAvB,CAAjB;AAEA,SACC,cAAC,cAAD;AACC,IAAA,IAAI,EAAC,gBADN;AAEC,IAAA,QAAQ,EAAGK,QAFZ;AAGC,IAAA,QAAQ,EAAGR,QAHZ;AAIC,IAAA,SAAS,EAAGE,SAJb;AAKC,IAAA,KAAK,EAAGT,EAAE,CAAE,iBAAF;AALX,IADD;AASA;;AAED,eAAeM,iBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockTypesList from '../block-types-list';\nimport { store as blockEditorStore } from '../../store';\nimport { createInserterSection, filterInserterItems } from './utils';\n\nfunction ReusableBlocksTab( { onSelect, rootClientId, listProps } ) {\n\tconst { items } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getInserterItems } = select( blockEditorStore );\n\t\t\tconst allItems = getInserterItems( rootClientId );\n\n\t\t\treturn {\n\t\t\t\titems: filterInserterItems( allItems, { onlyReusable: true } ),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tconst sections = [ createInserterSection( { key: 'reuseable', items } ) ];\n\n\treturn (\n\t\t<BlockTypesList\n\t\t\tname=\"ReusableBlocks\"\n\t\t\tsections={ sections }\n\t\t\tonSelect={ onSelect }\n\t\t\tlistProps={ listProps }\n\t\t\tlabel={ __( 'Reusable blocks' ) }\n\t\t/>\n\t);\n}\n\nexport default ReusableBlocksTab;\n"]}
@@ -4,6 +4,7 @@ import { createElement } from "@wordpress/element";
4
4
  * WordPress dependencies
5
5
  */
6
6
  import { useSelect } from '@wordpress/data';
7
+ import { __ } from '@wordpress/i18n';
7
8
  /**
8
9
  * Internal dependencies
9
10
  */
@@ -57,7 +58,8 @@ function InserterSearchResults(_ref) {
57
58
  items
58
59
  })],
59
60
  onSelect: handleSelect,
60
- listProps: listProps
61
+ listProps: listProps,
62
+ label: __('Blocks')
61
63
  });
62
64
  }
63
65
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/search-results.native.js"],"names":["useSelect","searchItems","BlockTypesList","InserterNoResults","store","blockEditorStore","useBlockTypeImpressions","createInserterSection","filterInserterItems","InserterSearchResults","filterValue","onSelect","listProps","rootClientId","isFullScreen","blockTypes","select","allItems","getInserterItems","availableItems","allowReusable","filteredItems","items","trackBlockTypeSelected","length","handleSelect","key"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,WAAT,QAA4B,gBAA5B;AACA,OAAOC,cAAP,MAA2B,qBAA3B;AACA,OAAOC,iBAAP,MAA8B,cAA9B;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,OAAOC,uBAAP,MAAoC,oCAApC;AACA,SAASC,qBAAT,EAAgCC,mBAAhC,QAA2D,SAA3D;;AAEA,SAASC,qBAAT,OAMI;AAAA,MAN4B;AAC/BC,IAAAA,WAD+B;AAE/BC,IAAAA,QAF+B;AAG/BC,IAAAA,SAH+B;AAI/BC,IAAAA,YAJ+B;AAK/BC,IAAAA;AAL+B,GAM5B;AACH,QAAM;AAAEC,IAAAA;AAAF,MAAiBf,SAAS,CAC7BgB,MAAF,IAAc;AACb,UAAMC,QAAQ,GACbD,MAAM,CAAEX,gBAAF,CAAN,CAA2Ba,gBAA3B,CAA6CL,YAA7C,CADD;AAGA,UAAMM,cAAc,GAAGX,mBAAmB,CAAES,QAAF,EAAY;AACrDG,MAAAA,aAAa,EAAE;AADsC,KAAZ,CAA1C;AAGA,UAAMC,aAAa,GAAGpB,WAAW,CAAEkB,cAAF,EAAkBT,WAAlB,CAAjC;AAEA,WAAO;AAAEK,MAAAA,UAAU,EAAEM;AAAd,KAAP;AACA,GAX8B,EAY/B,CAAER,YAAF,EAAgBH,WAAhB,CAZ+B,CAAhC;AAeA,QAAM;AAAEY,IAAAA,KAAF;AAASC,IAAAA;AAAT,MACLjB,uBAAuB,CAAES,UAAF,CADxB;;AAGA,MAAK,CAAEO,KAAF,IAAW,CAAAA,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEE,MAAP,MAAkB,CAAlC,EAAsC;AACrC,WAAO,cAAC,iBAAD,OAAP;AACA;;AAED,QAAMC,YAAY,GAAG,YAAe;AACnCF,IAAAA,sBAAsB,CAAE,YAAF,CAAtB;AACAZ,IAAAA,QAAQ,CAAE,YAAF,CAAR;AACA,GAHD;;AAKA,SACC,cAAC,cAAD;AACC,IAAA,IAAI,EAAC,QADN;AAEC,IAAA,kBAAkB,EAAGG,YAAY,GAAG,EAAH,GAAQ,CAF1C;AAGC,IAAA,QAAQ,EAAG,CAAEP,qBAAqB,CAAE;AAAEmB,MAAAA,GAAG,EAAE,QAAP;AAAiBJ,MAAAA;AAAjB,KAAF,CAAvB,CAHZ;AAIC,IAAA,QAAQ,EAAGG,YAJZ;AAKC,IAAA,SAAS,EAAGb;AALb,IADD;AASA;;AAED,eAAeH,qBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { searchItems } from './search-items';\nimport BlockTypesList from '../block-types-list';\nimport InserterNoResults from './no-results';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockTypeImpressions from './hooks/use-block-type-impressions';\nimport { createInserterSection, filterInserterItems } from './utils';\n\nfunction InserterSearchResults( {\n\tfilterValue,\n\tonSelect,\n\tlistProps,\n\trootClientId,\n\tisFullScreen,\n} ) {\n\tconst { blockTypes } = useSelect(\n\t\t( select ) => {\n\t\t\tconst allItems =\n\t\t\t\tselect( blockEditorStore ).getInserterItems( rootClientId );\n\n\t\t\tconst availableItems = filterInserterItems( allItems, {\n\t\t\t\tallowReusable: true,\n\t\t\t} );\n\t\t\tconst filteredItems = searchItems( availableItems, filterValue );\n\n\t\t\treturn { blockTypes: filteredItems };\n\t\t},\n\t\t[ rootClientId, filterValue ]\n\t);\n\n\tconst { items, trackBlockTypeSelected } =\n\t\tuseBlockTypeImpressions( blockTypes );\n\n\tif ( ! items || items?.length === 0 ) {\n\t\treturn <InserterNoResults />;\n\t}\n\n\tconst handleSelect = ( ...args ) => {\n\t\ttrackBlockTypeSelected( ...args );\n\t\tonSelect( ...args );\n\t};\n\n\treturn (\n\t\t<BlockTypesList\n\t\t\tname=\"Blocks\"\n\t\t\tinitialNumToRender={ isFullScreen ? 10 : 3 }\n\t\t\tsections={ [ createInserterSection( { key: 'search', items } ) ] }\n\t\t\tonSelect={ handleSelect }\n\t\t\tlistProps={ listProps }\n\t\t/>\n\t);\n}\n\nexport default InserterSearchResults;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/search-results.native.js"],"names":["useSelect","__","searchItems","BlockTypesList","InserterNoResults","store","blockEditorStore","useBlockTypeImpressions","createInserterSection","filterInserterItems","InserterSearchResults","filterValue","onSelect","listProps","rootClientId","isFullScreen","blockTypes","select","allItems","getInserterItems","availableItems","allowReusable","filteredItems","items","trackBlockTypeSelected","length","handleSelect","key"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,SAASC,WAAT,QAA4B,gBAA5B;AACA,OAAOC,cAAP,MAA2B,qBAA3B;AACA,OAAOC,iBAAP,MAA8B,cAA9B;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,OAAOC,uBAAP,MAAoC,oCAApC;AACA,SAASC,qBAAT,EAAgCC,mBAAhC,QAA2D,SAA3D;;AAEA,SAASC,qBAAT,OAMI;AAAA,MAN4B;AAC/BC,IAAAA,WAD+B;AAE/BC,IAAAA,QAF+B;AAG/BC,IAAAA,SAH+B;AAI/BC,IAAAA,YAJ+B;AAK/BC,IAAAA;AAL+B,GAM5B;AACH,QAAM;AAAEC,IAAAA;AAAF,MAAiBhB,SAAS,CAC7BiB,MAAF,IAAc;AACb,UAAMC,QAAQ,GACbD,MAAM,CAAEX,gBAAF,CAAN,CAA2Ba,gBAA3B,CAA6CL,YAA7C,CADD;AAGA,UAAMM,cAAc,GAAGX,mBAAmB,CAAES,QAAF,EAAY;AACrDG,MAAAA,aAAa,EAAE;AADsC,KAAZ,CAA1C;AAGA,UAAMC,aAAa,GAAGpB,WAAW,CAAEkB,cAAF,EAAkBT,WAAlB,CAAjC;AAEA,WAAO;AAAEK,MAAAA,UAAU,EAAEM;AAAd,KAAP;AACA,GAX8B,EAY/B,CAAER,YAAF,EAAgBH,WAAhB,CAZ+B,CAAhC;AAeA,QAAM;AAAEY,IAAAA,KAAF;AAASC,IAAAA;AAAT,MACLjB,uBAAuB,CAAES,UAAF,CADxB;;AAGA,MAAK,CAAEO,KAAF,IAAW,CAAAA,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEE,MAAP,MAAkB,CAAlC,EAAsC;AACrC,WAAO,cAAC,iBAAD,OAAP;AACA;;AAED,QAAMC,YAAY,GAAG,YAAe;AACnCF,IAAAA,sBAAsB,CAAE,YAAF,CAAtB;AACAZ,IAAAA,QAAQ,CAAE,YAAF,CAAR;AACA,GAHD;;AAKA,SACC,cAAC,cAAD;AACC,IAAA,IAAI,EAAC,QADN;AAEC,IAAA,kBAAkB,EAAGG,YAAY,GAAG,EAAH,GAAQ,CAF1C;AAGC,IAAA,QAAQ,EAAG,CAAEP,qBAAqB,CAAE;AAAEmB,MAAAA,GAAG,EAAE,QAAP;AAAiBJ,MAAAA;AAAjB,KAAF,CAAvB,CAHZ;AAIC,IAAA,QAAQ,EAAGG,YAJZ;AAKC,IAAA,SAAS,EAAGb,SALb;AAMC,IAAA,KAAK,EAAGZ,EAAE,CAAE,QAAF;AANX,IADD;AAUA;;AAED,eAAeS,qBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { searchItems } from './search-items';\nimport BlockTypesList from '../block-types-list';\nimport InserterNoResults from './no-results';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockTypeImpressions from './hooks/use-block-type-impressions';\nimport { createInserterSection, filterInserterItems } from './utils';\n\nfunction InserterSearchResults( {\n\tfilterValue,\n\tonSelect,\n\tlistProps,\n\trootClientId,\n\tisFullScreen,\n} ) {\n\tconst { blockTypes } = useSelect(\n\t\t( select ) => {\n\t\t\tconst allItems =\n\t\t\t\tselect( blockEditorStore ).getInserterItems( rootClientId );\n\n\t\t\tconst availableItems = filterInserterItems( allItems, {\n\t\t\t\tallowReusable: true,\n\t\t\t} );\n\t\t\tconst filteredItems = searchItems( availableItems, filterValue );\n\n\t\t\treturn { blockTypes: filteredItems };\n\t\t},\n\t\t[ rootClientId, filterValue ]\n\t);\n\n\tconst { items, trackBlockTypeSelected } =\n\t\tuseBlockTypeImpressions( blockTypes );\n\n\tif ( ! items || items?.length === 0 ) {\n\t\treturn <InserterNoResults />;\n\t}\n\n\tconst handleSelect = ( ...args ) => {\n\t\ttrackBlockTypeSelected( ...args );\n\t\tonSelect( ...args );\n\t};\n\n\treturn (\n\t\t<BlockTypesList\n\t\t\tname=\"Blocks\"\n\t\t\tinitialNumToRender={ isFullScreen ? 10 : 3 }\n\t\t\tsections={ [ createInserterSection( { key: 'search', items } ) ] }\n\t\t\tonSelect={ handleSelect }\n\t\t\tlistProps={ listProps }\n\t\t\tlabel={ __( 'Blocks' ) }\n\t\t/>\n\t);\n}\n\nexport default InserterSearchResults;\n"]}
@@ -51,7 +51,7 @@ export default function BlockSupportToolsPanel(_ref) {
51
51
  newAttributes[clientId] = newBlockAttributes;
52
52
  });
53
53
  updateBlockAttributes(clientIds, newAttributes, true);
54
- }, [cleanEmptyObject, getBlockAttributes, getMultiSelectedBlockClientIds, hasMultiSelection, panelId, updateBlockAttributes]);
54
+ }, [getBlockAttributes, getMultiSelectedBlockClientIds, hasMultiSelection, panelId, updateBlockAttributes]);
55
55
  return createElement(ToolsPanel, {
56
56
  className: `${group}-block-support-panel`,
57
57
  label: label,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inspector-controls/block-support-tools-panel.js"],"names":["__experimentalToolsPanel","ToolsPanel","useDispatch","useSelect","useCallback","store","blockEditorStore","cleanEmptyObject","BlockSupportToolsPanel","children","group","label","updateBlockAttributes","getBlockAttributes","getMultiSelectedBlockClientIds","getSelectedBlockClientId","hasMultiSelection","panelId","resetAll","resetFilters","newAttributes","clientIds","forEach","clientId","style","newBlockAttributes","resetFilter"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,wBAAwB,IAAIC,UAArC,QAAuD,uBAAvD;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,WAAT,QAA4B,oBAA5B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,gBAAT,QAAiC,mBAAjC;AAEA,eAAe,SAASC,sBAAT,OAA8D;AAAA,MAA7B;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,KAAZ;AAAmBC,IAAAA;AAAnB,GAA6B;AAC5E,QAAM;AAAEC,IAAAA;AAAF,MAA4BV,WAAW,CAAEI,gBAAF,CAA7C;AACA,QAAM;AACLO,IAAAA,kBADK;AAELC,IAAAA,8BAFK;AAGLC,IAAAA,wBAHK;AAILC,IAAAA;AAJK,MAKFb,SAAS,CAAEG,gBAAF,CALb;AAOA,QAAMW,OAAO,GAAGF,wBAAwB,EAAxC;AACA,QAAMG,QAAQ,GAAGd,WAAW,CAC3B,YAAyB;AAAA,QAAvBe,YAAuB,uEAAR,EAAQ;AACxB,UAAMC,aAAa,GAAG,EAAtB;AAEA,UAAMC,SAAS,GAAGL,iBAAiB,KAChCF,8BAA8B,EADE,GAEhC,CAAEG,OAAF,CAFH;AAIAI,IAAAA,SAAS,CAACC,OAAV,CAAqBC,QAAF,IAAgB;AAClC,YAAM;AAAEC,QAAAA;AAAF,UAAYX,kBAAkB,CAAEU,QAAF,CAApC;AACA,UAAIE,kBAAkB,GAAG;AAAED,QAAAA;AAAF,OAAzB;AAEAL,MAAAA,YAAY,CAACG,OAAb,CAAwBI,WAAF,IAAmB;AACxCD,QAAAA,kBAAkB,GAAG,EACpB,GAAGA,kBADiB;AAEpB,aAAGC,WAAW,CAAED,kBAAF;AAFM,SAArB;AAIA,OALD,EAJkC,CAWlC;;AACAA,MAAAA,kBAAkB,GAAG,EACpB,GAAGA,kBADiB;AAEpBD,QAAAA,KAAK,EAAEjB,gBAAgB,CAAEkB,kBAAkB,CAACD,KAArB;AAFH,OAArB;AAKAJ,MAAAA,aAAa,CAAEG,QAAF,CAAb,GAA4BE,kBAA5B;AACA,KAlBD;AAoBAb,IAAAA,qBAAqB,CAAES,SAAF,EAAaD,aAAb,EAA4B,IAA5B,CAArB;AACA,GA7B0B,EA8B3B,CACCb,gBADD,EAECM,kBAFD,EAGCC,8BAHD,EAICE,iBAJD,EAKCC,OALD,EAMCL,qBAND,CA9B2B,CAA5B;AAwCA,SACC,cAAC,UAAD;AACC,IAAA,SAAS,EAAI,GAAGF,KAAO,sBADxB;AAEC,IAAA,KAAK,EAAGC,KAFT;AAGC,IAAA,QAAQ,EAAGO,QAHZ;AAIC,IAAA,GAAG,EAAGD,OAJP;AAKC,IAAA,OAAO,EAAGA,OALX;AAMC,IAAA,eAAe,EAAG,IANnB;AAOC,IAAA,4BAA4B,EAAG,IAPhC,CAOuC;AAPvC;AAQC,IAAA,mCAAmC,EAAC,OARrC;AASC,IAAA,kCAAkC,EAAC;AATpC,KAWGR,QAXH,CADD;AAeA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { cleanEmptyObject } from '../../hooks/utils';\n\nexport default function BlockSupportToolsPanel( { children, group, label } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockAttributes,\n\t\tgetMultiSelectedBlockClientIds,\n\t\tgetSelectedBlockClientId,\n\t\thasMultiSelection,\n\t} = useSelect( blockEditorStore );\n\n\tconst panelId = getSelectedBlockClientId();\n\tconst resetAll = useCallback(\n\t\t( resetFilters = [] ) => {\n\t\t\tconst newAttributes = {};\n\n\t\t\tconst clientIds = hasMultiSelection()\n\t\t\t\t? getMultiSelectedBlockClientIds()\n\t\t\t\t: [ panelId ];\n\n\t\t\tclientIds.forEach( ( clientId ) => {\n\t\t\t\tconst { style } = getBlockAttributes( clientId );\n\t\t\t\tlet newBlockAttributes = { style };\n\n\t\t\t\tresetFilters.forEach( ( resetFilter ) => {\n\t\t\t\t\tnewBlockAttributes = {\n\t\t\t\t\t\t...newBlockAttributes,\n\t\t\t\t\t\t...resetFilter( newBlockAttributes ),\n\t\t\t\t\t};\n\t\t\t\t} );\n\n\t\t\t\t// Enforce a cleaned style object.\n\t\t\t\tnewBlockAttributes = {\n\t\t\t\t\t...newBlockAttributes,\n\t\t\t\t\tstyle: cleanEmptyObject( newBlockAttributes.style ),\n\t\t\t\t};\n\n\t\t\t\tnewAttributes[ clientId ] = newBlockAttributes;\n\t\t\t} );\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes, true );\n\t\t},\n\t\t[\n\t\t\tcleanEmptyObject,\n\t\t\tgetBlockAttributes,\n\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\thasMultiSelection,\n\t\t\tpanelId,\n\t\t\tupdateBlockAttributes,\n\t\t]\n\t);\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tclassName={ `${ group }-block-support-panel` }\n\t\t\tlabel={ label }\n\t\t\tresetAll={ resetAll }\n\t\t\tkey={ panelId }\n\t\t\tpanelId={ panelId }\n\t\t\thasInnerWrapper={ true }\n\t\t\tshouldRenderPlaceholderItems={ true } // Required to maintain fills ordering.\n\t\t\t__experimentalFirstVisibleItemClass=\"first\"\n\t\t\t__experimentalLastVisibleItemClass=\"last\"\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inspector-controls/block-support-tools-panel.js"],"names":["__experimentalToolsPanel","ToolsPanel","useDispatch","useSelect","useCallback","store","blockEditorStore","cleanEmptyObject","BlockSupportToolsPanel","children","group","label","updateBlockAttributes","getBlockAttributes","getMultiSelectedBlockClientIds","getSelectedBlockClientId","hasMultiSelection","panelId","resetAll","resetFilters","newAttributes","clientIds","forEach","clientId","style","newBlockAttributes","resetFilter"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,wBAAwB,IAAIC,UAArC,QAAuD,uBAAvD;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,WAAT,QAA4B,oBAA5B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,gBAAT,QAAiC,mBAAjC;AAEA,eAAe,SAASC,sBAAT,OAA8D;AAAA,MAA7B;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,KAAZ;AAAmBC,IAAAA;AAAnB,GAA6B;AAC5E,QAAM;AAAEC,IAAAA;AAAF,MAA4BV,WAAW,CAAEI,gBAAF,CAA7C;AACA,QAAM;AACLO,IAAAA,kBADK;AAELC,IAAAA,8BAFK;AAGLC,IAAAA,wBAHK;AAILC,IAAAA;AAJK,MAKFb,SAAS,CAAEG,gBAAF,CALb;AAOA,QAAMW,OAAO,GAAGF,wBAAwB,EAAxC;AACA,QAAMG,QAAQ,GAAGd,WAAW,CAC3B,YAAyB;AAAA,QAAvBe,YAAuB,uEAAR,EAAQ;AACxB,UAAMC,aAAa,GAAG,EAAtB;AAEA,UAAMC,SAAS,GAAGL,iBAAiB,KAChCF,8BAA8B,EADE,GAEhC,CAAEG,OAAF,CAFH;AAIAI,IAAAA,SAAS,CAACC,OAAV,CAAqBC,QAAF,IAAgB;AAClC,YAAM;AAAEC,QAAAA;AAAF,UAAYX,kBAAkB,CAAEU,QAAF,CAApC;AACA,UAAIE,kBAAkB,GAAG;AAAED,QAAAA;AAAF,OAAzB;AAEAL,MAAAA,YAAY,CAACG,OAAb,CAAwBI,WAAF,IAAmB;AACxCD,QAAAA,kBAAkB,GAAG,EACpB,GAAGA,kBADiB;AAEpB,aAAGC,WAAW,CAAED,kBAAF;AAFM,SAArB;AAIA,OALD,EAJkC,CAWlC;;AACAA,MAAAA,kBAAkB,GAAG,EACpB,GAAGA,kBADiB;AAEpBD,QAAAA,KAAK,EAAEjB,gBAAgB,CAAEkB,kBAAkB,CAACD,KAArB;AAFH,OAArB;AAKAJ,MAAAA,aAAa,CAAEG,QAAF,CAAb,GAA4BE,kBAA5B;AACA,KAlBD;AAoBAb,IAAAA,qBAAqB,CAAES,SAAF,EAAaD,aAAb,EAA4B,IAA5B,CAArB;AACA,GA7B0B,EA8B3B,CACCP,kBADD,EAECC,8BAFD,EAGCE,iBAHD,EAICC,OAJD,EAKCL,qBALD,CA9B2B,CAA5B;AAuCA,SACC,cAAC,UAAD;AACC,IAAA,SAAS,EAAI,GAAGF,KAAO,sBADxB;AAEC,IAAA,KAAK,EAAGC,KAFT;AAGC,IAAA,QAAQ,EAAGO,QAHZ;AAIC,IAAA,GAAG,EAAGD,OAJP;AAKC,IAAA,OAAO,EAAGA,OALX;AAMC,IAAA,eAAe,EAAG,IANnB;AAOC,IAAA,4BAA4B,EAAG,IAPhC,CAOuC;AAPvC;AAQC,IAAA,mCAAmC,EAAC,OARrC;AASC,IAAA,kCAAkC,EAAC;AATpC,KAWGR,QAXH,CADD;AAeA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { cleanEmptyObject } from '../../hooks/utils';\n\nexport default function BlockSupportToolsPanel( { children, group, label } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockAttributes,\n\t\tgetMultiSelectedBlockClientIds,\n\t\tgetSelectedBlockClientId,\n\t\thasMultiSelection,\n\t} = useSelect( blockEditorStore );\n\n\tconst panelId = getSelectedBlockClientId();\n\tconst resetAll = useCallback(\n\t\t( resetFilters = [] ) => {\n\t\t\tconst newAttributes = {};\n\n\t\t\tconst clientIds = hasMultiSelection()\n\t\t\t\t? getMultiSelectedBlockClientIds()\n\t\t\t\t: [ panelId ];\n\n\t\t\tclientIds.forEach( ( clientId ) => {\n\t\t\t\tconst { style } = getBlockAttributes( clientId );\n\t\t\t\tlet newBlockAttributes = { style };\n\n\t\t\t\tresetFilters.forEach( ( resetFilter ) => {\n\t\t\t\t\tnewBlockAttributes = {\n\t\t\t\t\t\t...newBlockAttributes,\n\t\t\t\t\t\t...resetFilter( newBlockAttributes ),\n\t\t\t\t\t};\n\t\t\t\t} );\n\n\t\t\t\t// Enforce a cleaned style object.\n\t\t\t\tnewBlockAttributes = {\n\t\t\t\t\t...newBlockAttributes,\n\t\t\t\t\tstyle: cleanEmptyObject( newBlockAttributes.style ),\n\t\t\t\t};\n\n\t\t\t\tnewAttributes[ clientId ] = newBlockAttributes;\n\t\t\t} );\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes, true );\n\t\t},\n\t\t[\n\t\t\tgetBlockAttributes,\n\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\thasMultiSelection,\n\t\t\tpanelId,\n\t\t\tupdateBlockAttributes,\n\t\t]\n\t);\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tclassName={ `${ group }-block-support-panel` }\n\t\t\tlabel={ label }\n\t\t\tresetAll={ resetAll }\n\t\t\tkey={ panelId }\n\t\t\tpanelId={ panelId }\n\t\t\thasInnerWrapper={ true }\n\t\t\tshouldRenderPlaceholderItems={ true } // Required to maintain fills ordering.\n\t\t\t__experimentalFirstVisibleItemClass=\"first\"\n\t\t\t__experimentalLastVisibleItemClass=\"last\"\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n"]}