@wordpress/block-editor 8.5.0 → 8.6.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 (274) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-alignment-control/ui.js +1 -1
  3. package/build/components/block-alignment-control/ui.js.map +1 -1
  4. package/build/components/block-content-overlay/index.js +13 -4
  5. package/build/components/block-content-overlay/index.js.map +1 -1
  6. package/build/components/block-list/block.native.js +3 -1
  7. package/build/components/block-list/block.native.js.map +1 -1
  8. package/build/components/block-lock/index.js +8 -0
  9. package/build/components/block-lock/index.js.map +1 -1
  10. package/build/components/block-lock/menu-item.js +5 -20
  11. package/build/components/block-lock/menu-item.js.map +1 -1
  12. package/build/components/block-lock/modal.js +33 -12
  13. package/build/components/block-lock/modal.js.map +1 -1
  14. package/build/components/block-lock/toolbar.js +7 -20
  15. package/build/components/block-lock/toolbar.js.map +1 -1
  16. package/build/components/block-lock/use-block-lock.js +50 -0
  17. package/build/components/block-lock/use-block-lock.js.map +1 -0
  18. package/build/components/block-mover/button.js +4 -4
  19. package/build/components/block-mover/button.js.map +1 -1
  20. package/build/components/block-mover/index.js +39 -65
  21. package/build/components/block-mover/index.js.map +1 -1
  22. package/build/components/block-pattern-setup/index.js +37 -22
  23. package/build/components/block-pattern-setup/index.js.map +1 -1
  24. package/build/components/block-pattern-setup/setup-toolbar.js +1 -1
  25. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  26. package/build/components/block-popover/inbetween.js +183 -0
  27. package/build/components/block-popover/inbetween.js.map +1 -0
  28. package/build/components/block-popover/index.js +82 -0
  29. package/build/components/block-popover/index.js.map +1 -0
  30. package/build/components/{block-tools → block-popover}/use-popover-scroll.js +4 -1
  31. package/build/components/block-popover/use-popover-scroll.js.map +1 -0
  32. package/build/components/block-preview/auto.js +6 -3
  33. package/build/components/block-preview/auto.js.map +1 -1
  34. package/build/components/block-preview/index.js +4 -2
  35. package/build/components/block-preview/index.js.map +1 -1
  36. package/build/components/block-styles/index.js +1 -10
  37. package/build/components/block-styles/index.js.map +1 -1
  38. package/build/components/block-switcher/index.js +7 -2
  39. package/build/components/block-switcher/index.js.map +1 -1
  40. package/build/components/block-tools/back-compat.js +2 -2
  41. package/build/components/block-tools/back-compat.js.map +1 -1
  42. package/build/components/block-tools/block-selection-button.js +4 -2
  43. package/build/components/block-tools/block-selection-button.js.map +1 -1
  44. package/build/components/block-tools/index.js +5 -5
  45. package/build/components/block-tools/index.js.map +1 -1
  46. package/build/components/block-tools/insertion-point.js +14 -121
  47. package/build/components/block-tools/insertion-point.js.map +1 -1
  48. package/build/components/block-tools/{block-popover.js → selected-block-popover.js} +25 -108
  49. package/build/components/block-tools/selected-block-popover.js.map +1 -0
  50. package/build/components/copy-handler/index.js +44 -9
  51. package/build/components/copy-handler/index.js.map +1 -1
  52. package/build/components/duotone-control/index.js +5 -1
  53. package/build/components/duotone-control/index.js.map +1 -1
  54. package/build/components/inserter/index.native.js +30 -8
  55. package/build/components/inserter/index.native.js.map +1 -1
  56. package/build/components/link-control/index.js +6 -7
  57. package/build/components/link-control/index.js.map +1 -1
  58. package/build/components/list-view/block-select-button.js +4 -10
  59. package/build/components/list-view/block-select-button.js.map +1 -1
  60. package/build/components/list-view/block.js +13 -2
  61. package/build/components/list-view/block.js.map +1 -1
  62. package/build/components/rich-text/index.js +0 -5
  63. package/build/components/rich-text/index.js.map +1 -1
  64. package/build/components/rich-text/index.native.js +0 -4
  65. package/build/components/rich-text/index.native.js.map +1 -1
  66. package/build/components/use-block-display-information/index.js +3 -1
  67. package/build/components/use-block-display-information/index.js.map +1 -1
  68. package/build/hooks/border.js +468 -44
  69. package/build/hooks/border.js.map +1 -1
  70. package/build/hooks/duotone.js +66 -16
  71. package/build/hooks/duotone.js.map +1 -1
  72. package/build/hooks/index.js +8 -2
  73. package/build/hooks/index.js.map +1 -1
  74. package/build/hooks/use-border-props.js +22 -32
  75. package/build/hooks/use-border-props.js.map +1 -1
  76. package/build/index.js +7 -0
  77. package/build/index.js.map +1 -1
  78. package/build/store/actions.js +36 -31
  79. package/build/store/actions.js.map +1 -1
  80. package/build/store/reducer.js +0 -26
  81. package/build/store/reducer.js.map +1 -1
  82. package/build/store/selectors.js +131 -6
  83. package/build/store/selectors.js.map +1 -1
  84. package/build/store/utils.js +27 -0
  85. package/build/store/utils.js.map +1 -0
  86. package/build-module/components/block-alignment-control/ui.js +2 -2
  87. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  88. package/build-module/components/block-content-overlay/index.js +13 -4
  89. package/build-module/components/block-content-overlay/index.js.map +1 -1
  90. package/build-module/components/block-list/block.native.js +3 -1
  91. package/build-module/components/block-list/block.native.js.map +1 -1
  92. package/build-module/components/block-lock/index.js +1 -0
  93. package/build-module/components/block-lock/index.js.map +1 -1
  94. package/build-module/components/block-lock/menu-item.js +4 -18
  95. package/build-module/components/block-lock/menu-item.js.map +1 -1
  96. package/build-module/components/block-lock/modal.js +31 -12
  97. package/build-module/components/block-lock/modal.js.map +1 -1
  98. package/build-module/components/block-lock/toolbar.js +6 -18
  99. package/build-module/components/block-lock/toolbar.js.map +1 -1
  100. package/build-module/components/block-lock/use-block-lock.js +41 -0
  101. package/build-module/components/block-lock/use-block-lock.js.map +1 -0
  102. package/build-module/components/block-mover/button.js +5 -5
  103. package/build-module/components/block-mover/button.js.map +1 -1
  104. package/build-module/components/block-mover/index.js +38 -63
  105. package/build-module/components/block-mover/index.js.map +1 -1
  106. package/build-module/components/block-pattern-setup/index.js +39 -24
  107. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  108. package/build-module/components/block-pattern-setup/setup-toolbar.js +1 -1
  109. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  110. package/build-module/components/block-popover/inbetween.js +165 -0
  111. package/build-module/components/block-popover/inbetween.js.map +1 -0
  112. package/build-module/components/block-popover/index.js +67 -0
  113. package/build-module/components/block-popover/index.js.map +1 -0
  114. package/build-module/components/{block-tools → block-popover}/use-popover-scroll.js +3 -1
  115. package/build-module/components/block-popover/use-popover-scroll.js.map +1 -0
  116. package/build-module/components/block-preview/auto.js +6 -3
  117. package/build-module/components/block-preview/auto.js.map +1 -1
  118. package/build-module/components/block-preview/index.js +4 -2
  119. package/build-module/components/block-preview/index.js.map +1 -1
  120. package/build-module/components/block-styles/index.js +1 -9
  121. package/build-module/components/block-styles/index.js.map +1 -1
  122. package/build-module/components/block-switcher/index.js +7 -2
  123. package/build-module/components/block-switcher/index.js.map +1 -1
  124. package/build-module/components/block-tools/back-compat.js +1 -1
  125. package/build-module/components/block-tools/back-compat.js.map +1 -1
  126. package/build-module/components/block-tools/block-selection-button.js +3 -2
  127. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  128. package/build-module/components/block-tools/index.js +3 -3
  129. package/build-module/components/block-tools/index.js.map +1 -1
  130. package/build-module/components/block-tools/insertion-point.js +16 -121
  131. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  132. package/build-module/components/block-tools/{block-popover.js → selected-block-popover.js} +25 -105
  133. package/build-module/components/block-tools/selected-block-popover.js.map +1 -0
  134. package/build-module/components/copy-handler/index.js +44 -9
  135. package/build-module/components/copy-handler/index.js.map +1 -1
  136. package/build-module/components/duotone-control/index.js +4 -1
  137. package/build-module/components/duotone-control/index.js.map +1 -1
  138. package/build-module/components/inserter/index.native.js +31 -10
  139. package/build-module/components/inserter/index.native.js.map +1 -1
  140. package/build-module/components/link-control/index.js +6 -7
  141. package/build-module/components/link-control/index.js.map +1 -1
  142. package/build-module/components/list-view/block-select-button.js +4 -9
  143. package/build-module/components/list-view/block-select-button.js.map +1 -1
  144. package/build-module/components/list-view/block.js +13 -2
  145. package/build-module/components/list-view/block.js.map +1 -1
  146. package/build-module/components/rich-text/index.js +0 -4
  147. package/build-module/components/rich-text/index.js.map +1 -1
  148. package/build-module/components/rich-text/index.native.js +0 -4
  149. package/build-module/components/rich-text/index.native.js.map +1 -1
  150. package/build-module/components/use-block-display-information/index.js +3 -1
  151. package/build-module/components/use-block-display-information/index.js.map +1 -1
  152. package/build-module/hooks/border.js +458 -44
  153. package/build-module/hooks/border.js.map +1 -1
  154. package/build-module/hooks/duotone.js +63 -16
  155. package/build-module/hooks/duotone.js.map +1 -1
  156. package/build-module/hooks/index.js +2 -1
  157. package/build-module/hooks/index.js.map +1 -1
  158. package/build-module/hooks/use-border-props.js +21 -30
  159. package/build-module/hooks/use-border-props.js.map +1 -1
  160. package/build-module/index.js +1 -1
  161. package/build-module/index.js.map +1 -1
  162. package/build-module/store/actions.js +19 -16
  163. package/build-module/store/actions.js.map +1 -1
  164. package/build-module/store/reducer.js +0 -24
  165. package/build-module/store/reducer.js.map +1 -1
  166. package/build-module/store/selectors.js +120 -5
  167. package/build-module/store/selectors.js.map +1 -1
  168. package/build-module/store/utils.js +20 -0
  169. package/build-module/store/utils.js.map +1 -0
  170. package/build-style/style-rtl.css +145 -272
  171. package/build-style/style.css +145 -272
  172. package/package.json +28 -28
  173. package/src/components/block-alignment-control/ui.js +2 -2
  174. package/src/components/block-content-overlay/index.js +19 -2
  175. package/src/components/block-list/block.native.js +2 -0
  176. package/src/components/block-lock/index.js +1 -0
  177. package/src/components/block-lock/menu-item.js +3 -23
  178. package/src/components/block-lock/modal.js +37 -13
  179. package/src/components/block-lock/style.scss +1 -2
  180. package/src/components/block-lock/toolbar.js +4 -21
  181. package/src/components/block-lock/use-block-lock.js +45 -0
  182. package/src/components/block-mover/button.js +5 -7
  183. package/src/components/block-mover/index.js +37 -60
  184. package/src/components/block-mover/stories/index.js +110 -0
  185. package/src/components/block-mover/style.scss +48 -138
  186. package/src/components/block-pattern-setup/index.js +84 -59
  187. package/src/components/block-pattern-setup/setup-toolbar.js +3 -1
  188. package/src/components/block-pattern-setup/style.scss +32 -26
  189. package/src/components/block-popover/README.md +41 -0
  190. package/src/components/block-popover/inbetween.js +180 -0
  191. package/src/components/block-popover/index.js +73 -0
  192. package/src/components/block-popover/style.scss +24 -0
  193. package/src/components/{block-tools → block-popover}/use-popover-scroll.js +3 -1
  194. package/src/components/block-preview/auto.js +10 -1
  195. package/src/components/block-preview/index.js +2 -0
  196. package/src/components/block-styles/index.js +1 -12
  197. package/src/components/block-switcher/index.js +13 -1
  198. package/src/components/block-switcher/style.scss +4 -4
  199. package/src/components/block-switcher/test/__snapshots__/index.js.snap +15 -13
  200. package/src/components/block-toolbar/style.scss +0 -12
  201. package/src/components/block-tools/back-compat.js +1 -1
  202. package/src/components/block-tools/block-selection-button.js +3 -1
  203. package/src/components/block-tools/index.js +6 -4
  204. package/src/components/block-tools/insertion-point.js +19 -152
  205. package/src/components/block-tools/{block-popover.js → selected-block-popover.js} +24 -116
  206. package/src/components/block-tools/style.scss +11 -123
  207. package/src/components/border-radius-control/style.scss +5 -2
  208. package/src/components/copy-handler/index.js +52 -10
  209. package/src/components/default-block-appender/style.scss +1 -2
  210. package/src/components/duotone-control/index.js +8 -1
  211. package/src/components/gradients/README.md +29 -0
  212. package/src/components/inserter/index.native.js +60 -25
  213. package/src/components/inserter/style.native.scss +24 -3
  214. package/src/components/link-control/index.js +5 -5
  215. package/src/components/list-view/block-select-button.js +2 -10
  216. package/src/components/list-view/block.js +16 -7
  217. package/src/components/navigable-toolbar/README.md +16 -0
  218. package/src/components/rich-text/index.js +0 -2
  219. package/src/components/rich-text/index.native.js +0 -4
  220. package/src/components/use-block-display-information/index.js +2 -0
  221. package/src/hooks/border.js +438 -72
  222. package/src/hooks/border.scss +48 -0
  223. package/src/hooks/duotone.js +98 -62
  224. package/src/hooks/index.js +2 -1
  225. package/src/hooks/use-border-props.js +15 -32
  226. package/src/index.js +1 -0
  227. package/src/store/actions.js +19 -15
  228. package/src/store/reducer.js +0 -21
  229. package/src/store/selectors.js +160 -5
  230. package/src/store/test/actions.js +0 -18
  231. package/src/store/test/reducer.js +0 -19
  232. package/src/store/test/selectors.js +0 -19
  233. package/src/store/utils.js +19 -0
  234. package/src/style.scss +1 -1
  235. package/build/components/block-mobile-toolbar/index.js +0 -42
  236. package/build/components/block-mobile-toolbar/index.js.map +0 -1
  237. package/build/components/block-tools/block-popover.js.map +0 -1
  238. package/build/components/block-tools/use-popover-scroll.js.map +0 -1
  239. package/build/components/list-view/appender.js +0 -93
  240. package/build/components/list-view/appender.js.map +0 -1
  241. package/build/components/list-view/list-item.js +0 -62
  242. package/build/components/list-view/list-item.js.map +0 -1
  243. package/build/components/rich-text/use-caret-in-format.js +0 -43
  244. package/build/components/rich-text/use-caret-in-format.js.map +0 -1
  245. package/build/hooks/border-color.js +0 -302
  246. package/build/hooks/border-color.js.map +0 -1
  247. package/build/hooks/border-style.js +0 -96
  248. package/build/hooks/border-style.js.map +0 -1
  249. package/build/hooks/border-width.js +0 -162
  250. package/build/hooks/border-width.js.map +0 -1
  251. package/build-module/components/block-mobile-toolbar/index.js +0 -31
  252. package/build-module/components/block-mobile-toolbar/index.js.map +0 -1
  253. package/build-module/components/block-tools/block-popover.js.map +0 -1
  254. package/build-module/components/block-tools/use-popover-scroll.js.map +0 -1
  255. package/build-module/components/list-view/appender.js +0 -76
  256. package/build-module/components/list-view/appender.js.map +0 -1
  257. package/build-module/components/list-view/list-item.js +0 -47
  258. package/build-module/components/list-view/list-item.js.map +0 -1
  259. package/build-module/components/rich-text/use-caret-in-format.js +0 -33
  260. package/build-module/components/rich-text/use-caret-in-format.js.map +0 -1
  261. package/build-module/hooks/border-color.js +0 -276
  262. package/build-module/hooks/border-color.js.map +0 -1
  263. package/build-module/hooks/border-style.js +0 -78
  264. package/build-module/hooks/border-style.js.map +0 -1
  265. package/build-module/hooks/border-width.js +0 -143
  266. package/build-module/hooks/border-width.js.map +0 -1
  267. package/src/components/block-mobile-toolbar/index.js +0 -24
  268. package/src/components/block-mobile-toolbar/style.scss +0 -29
  269. package/src/components/list-view/appender.js +0 -82
  270. package/src/components/list-view/list-item.js +0 -59
  271. package/src/components/rich-text/use-caret-in-format.js +0 -28
  272. package/src/hooks/border-color.js +0 -315
  273. package/src/hooks/border-style.js +0 -64
  274. package/src/hooks/border-width.js +0 -139
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-lock/toolbar.js"],"names":["__","sprintf","ToolbarButton","ToolbarGroup","useReducer","lock","useSelect","BlockLockModal","useBlockDisplayInformation","store","blockEditorStore","BlockLockToolbar","clientId","blockInformation","canMove","canRemove","canLockBlock","select","canMoveBlock","canRemoveBlock","canLockBlockType","getBlockName","isModalOpen","toggleModal","isActive","title"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,aAAT,EAAwBC,YAAxB,QAA4C,uBAA5C;AACA,SAASC,UAAT,QAA2B,oBAA3B;AACA,SAASC,IAAT,QAAqB,kBAArB;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,cAAP,MAA2B,SAA3B;AACA,OAAOC,0BAAP,MAAuC,kCAAvC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,eAAe,SAASC,gBAAT,OAA0C;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACxD,QAAMC,gBAAgB,GAAGL,0BAA0B,CAAEI,QAAF,CAAnD;AACA,QAAM;AAAEE,IAAAA,OAAF;AAAWC,IAAAA,SAAX;AAAsBC,IAAAA;AAAtB,MAAuCV,SAAS,CACnDW,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,YADK;AAELC,MAAAA,cAFK;AAGLC,MAAAA,gBAHK;AAILC,MAAAA;AAJK,QAKFJ,MAAM,CAAEP,gBAAF,CALV;AAOA,WAAO;AACNI,MAAAA,OAAO,EAAEI,YAAY,CAAEN,QAAF,CADf;AAENG,MAAAA,SAAS,EAAEI,cAAc,CAAEP,QAAF,CAFnB;AAGNI,MAAAA,YAAY,EAAEI,gBAAgB,CAAEC,YAAY,CAAET,QAAF,CAAd;AAHxB,KAAP;AAKA,GAdoD,EAerD,CAAEA,QAAF,CAfqD,CAAtD;AAkBA,QAAM,CAAEU,WAAF,EAAeC,WAAf,IAA+BnB,UAAU,CAC5CoB,QAAF,IAAgB,CAAEA,QAD4B,EAE9C,KAF8C,CAA/C;;AAKA,MAAK,CAAER,YAAP,EAAsB;AACrB,WAAO,IAAP;AACA;;AAED,MAAKF,OAAO,IAAIC,SAAhB,EAA4B;AAC3B,WAAO,IAAP;AACA;;AAED,SACC,8BACC,cAAC,YAAD;AAAc,IAAA,SAAS,EAAC;AAAxB,KACC,cAAC,aAAD;AACC,IAAA,IAAI,EAAGV,IADR;AAEC,IAAA,KAAK,EAAGJ,OAAO;AACd;AACAD,IAAAA,EAAE,CAAE,WAAF,CAFY,EAGda,gBAAgB,CAACY,KAHH,CAFhB;AAOC,IAAA,OAAO,EAAGF;AAPX,IADD,CADD,EAYGD,WAAW,IACZ,cAAC,cAAD;AAAgB,IAAA,QAAQ,EAAGV,QAA3B;AAAsC,IAAA,OAAO,EAAGW;AAAhD,IAbF,CADD;AAkBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { useReducer } from '@wordpress/element';\nimport { lock } from '@wordpress/icons';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockLockModal from './modal';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockLockToolbar( { clientId } ) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst { canMove, canRemove, canLockBlock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanMoveBlock,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanLockBlockType,\n\t\t\t\tgetBlockName,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tcanMove: canMoveBlock( clientId ),\n\t\t\t\tcanRemove: canRemoveBlock( clientId ),\n\t\t\t\tcanLockBlock: canLockBlockType( getBlockName( clientId ) ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst [ isModalOpen, toggleModal ] = useReducer(\n\t\t( isActive ) => ! isActive,\n\t\tfalse\n\t);\n\n\tif ( ! canLockBlock ) {\n\t\treturn null;\n\t}\n\n\tif ( canMove && canRemove ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarGroup className=\"block-editor-block-lock-toolbar\">\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={ lock }\n\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t/* translators: %s: block name */\n\t\t\t\t\t\t__( 'Unlock %s' ),\n\t\t\t\t\t\tblockInformation.title\n\t\t\t\t\t) }\n\t\t\t\t\tonClick={ toggleModal }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<BlockLockModal clientId={ clientId } onClose={ toggleModal } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-lock/toolbar.js"],"names":["__","sprintf","ToolbarButton","ToolbarGroup","useReducer","lock","BlockLockModal","useBlockLock","useBlockDisplayInformation","BlockLockToolbar","clientId","blockInformation","canEdit","canMove","canRemove","canLock","isModalOpen","toggleModal","isActive","title"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,aAAT,EAAwBC,YAAxB,QAA4C,uBAA5C;AACA,SAASC,UAAT,QAA2B,oBAA3B;AACA,SAASC,IAAT,QAAqB,kBAArB;AAEA;AACA;AACA;;AACA,OAAOC,cAAP,MAA2B,SAA3B;AACA,OAAOC,YAAP,MAAyB,kBAAzB;AACA,OAAOC,0BAAP,MAAuC,kCAAvC;AAEA,eAAe,SAASC,gBAAT,OAA0C;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACxD,QAAMC,gBAAgB,GAAGH,0BAA0B,CAAEE,QAAF,CAAnD;AACA,QAAM;AAAEE,IAAAA,OAAF;AAAWC,IAAAA,OAAX;AAAoBC,IAAAA,SAApB;AAA+BC,IAAAA;AAA/B,MAA2CR,YAAY,CAAEG,QAAF,CAA7D;AAEA,QAAM,CAAEM,WAAF,EAAeC,WAAf,IAA+Bb,UAAU,CAC5Cc,QAAF,IAAgB,CAAEA,QAD4B,EAE9C,KAF8C,CAA/C;;AAKA,MAAK,CAAEH,OAAP,EAAiB;AAChB,WAAO,IAAP;AACA;;AAED,MAAKH,OAAO,IAAIC,OAAX,IAAsBC,SAA3B,EAAuC;AACtC,WAAO,IAAP;AACA;;AAED,SACC,8BACC,cAAC,YAAD;AAAc,IAAA,SAAS,EAAC;AAAxB,KACC,cAAC,aAAD;AACC,IAAA,IAAI,EAAGT,IADR;AAEC,IAAA,KAAK,EAAGJ,OAAO;AACd;AACAD,IAAAA,EAAE,CAAE,WAAF,CAFY,EAGdW,gBAAgB,CAACQ,KAHH,CAFhB;AAOC,IAAA,OAAO,EAAGF;AAPX,IADD,CADD,EAYGD,WAAW,IACZ,cAAC,cAAD;AAAgB,IAAA,QAAQ,EAAGN,QAA3B;AAAsC,IAAA,OAAO,EAAGO;AAAhD,IAbF,CADD;AAkBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { useReducer } from '@wordpress/element';\nimport { lock } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockLockModal from './modal';\nimport useBlockLock from './use-block-lock';\nimport useBlockDisplayInformation from '../use-block-display-information';\n\nexport default function BlockLockToolbar( { clientId } ) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst { canEdit, canMove, canRemove, canLock } = useBlockLock( clientId );\n\n\tconst [ isModalOpen, toggleModal ] = useReducer(\n\t\t( isActive ) => ! isActive,\n\t\tfalse\n\t);\n\n\tif ( ! canLock ) {\n\t\treturn null;\n\t}\n\n\tif ( canEdit && canMove && canRemove ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarGroup className=\"block-editor-block-lock-toolbar\">\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={ lock }\n\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t/* translators: %s: block name */\n\t\t\t\t\t\t__( 'Unlock %s' ),\n\t\t\t\t\t\tblockInformation.title\n\t\t\t\t\t) }\n\t\t\t\t\tonClick={ toggleModal }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<BlockLockModal clientId={ clientId } onClose={ toggleModal } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useSelect } from '@wordpress/data';
5
+ /**
6
+ * Internal dependencies
7
+ */
8
+
9
+ import { store as blockEditorStore } from '../../store';
10
+ /**
11
+ * Return details about the block lock status.
12
+ *
13
+ * @param {string} clientId The block client Id.
14
+ *
15
+ * @return {Object} Block lock status
16
+ */
17
+
18
+ export default function useBlockLock(clientId) {
19
+ return useSelect(select => {
20
+ const {
21
+ canEditBlock,
22
+ canMoveBlock,
23
+ canRemoveBlock,
24
+ canLockBlockType,
25
+ getBlockName,
26
+ getBlockRootClientId
27
+ } = select(blockEditorStore);
28
+ const rootClientId = getBlockRootClientId(clientId);
29
+ const canEdit = canEditBlock(clientId);
30
+ const canMove = canMoveBlock(clientId, rootClientId);
31
+ const canRemove = canRemoveBlock(clientId, rootClientId);
32
+ return {
33
+ canEdit,
34
+ canMove,
35
+ canRemove,
36
+ canLock: canLockBlockType(getBlockName(clientId)),
37
+ isLocked: !canEdit || !canMove || !canRemove
38
+ };
39
+ }, [clientId]);
40
+ }
41
+ //# sourceMappingURL=use-block-lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-lock/use-block-lock.js"],"names":["useSelect","store","blockEditorStore","useBlockLock","clientId","select","canEditBlock","canMoveBlock","canRemoveBlock","canLockBlockType","getBlockName","getBlockRootClientId","rootClientId","canEdit","canMove","canRemove","canLock","isLocked"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,YAAT,CAAuBC,QAAvB,EAAkC;AAChD,SAAOJ,SAAS,CACbK,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,YADK;AAELC,MAAAA,YAFK;AAGLC,MAAAA,cAHK;AAILC,MAAAA,gBAJK;AAKLC,MAAAA,YALK;AAMLC,MAAAA;AANK,QAOFN,MAAM,CAAEH,gBAAF,CAPV;AAQA,UAAMU,YAAY,GAAGD,oBAAoB,CAAEP,QAAF,CAAzC;AAEA,UAAMS,OAAO,GAAGP,YAAY,CAAEF,QAAF,CAA5B;AACA,UAAMU,OAAO,GAAGP,YAAY,CAAEH,QAAF,EAAYQ,YAAZ,CAA5B;AACA,UAAMG,SAAS,GAAGP,cAAc,CAAEJ,QAAF,EAAYQ,YAAZ,CAAhC;AAEA,WAAO;AACNC,MAAAA,OADM;AAENC,MAAAA,OAFM;AAGNC,MAAAA,SAHM;AAINC,MAAAA,OAAO,EAAEP,gBAAgB,CAAEC,YAAY,CAAEN,QAAF,CAAd,CAJnB;AAKNa,MAAAA,QAAQ,EAAE,CAAEJ,OAAF,IAAa,CAAEC,OAAf,IAA0B,CAAEC;AALhC,KAAP;AAOA,GAvBc,EAwBf,CAAEX,QAAF,CAxBe,CAAhB;AA0BA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Return details about the block lock status.\n *\n * @param {string} clientId The block client Id.\n *\n * @return {Object} Block lock status\n */\nexport default function useBlockLock( clientId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanEditBlock,\n\t\t\t\tcanMoveBlock,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanLockBlockType,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\tconst canEdit = canEditBlock( clientId );\n\t\t\tconst canMove = canMoveBlock( clientId, rootClientId );\n\t\t\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\n\t\t\treturn {\n\t\t\t\tcanEdit,\n\t\t\t\tcanMove,\n\t\t\t\tcanRemove,\n\t\t\t\tcanLock: canLockBlockType( getBlockName( clientId ) ),\n\t\t\t\tisLocked: ! canEdit || ! canMove || ! canRemove,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n}\n"]}
@@ -11,7 +11,7 @@ import { castArray, first, last } from 'lodash';
11
11
  */
12
12
 
13
13
  import { getBlockType } from '@wordpress/blocks';
14
- import { Button } from '@wordpress/components';
14
+ import { Button, VisuallyHidden } from '@wordpress/components';
15
15
  import { useInstanceId } from '@wordpress/compose';
16
16
  import { useSelect, useDispatch } from '@wordpress/data';
17
17
  import { forwardRef } from '@wordpress/element';
@@ -130,10 +130,10 @@ const BlockMoverButton = forwardRef((_ref, ref) => {
130
130
  "aria-describedby": descriptionId
131
131
  }, props, {
132
132
  onClick: isDisabled ? null : onClick,
133
- "aria-disabled": isDisabled
134
- })), createElement("span", {
135
- id: descriptionId,
136
- className: "block-editor-block-mover-button__description"
133
+ disabled: isDisabled,
134
+ __experimentalIsFocusable: true
135
+ })), createElement(VisuallyHidden, {
136
+ id: descriptionId
137
137
  }, getBlockMoverDescription(blocksCount, blockType && blockType.title, firstIndex, isFirst, isLast, direction === 'up' ? -1 : 1, orientation)));
138
138
  });
139
139
  export const BlockMoverUpButton = forwardRef((props, ref) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/button.js"],"names":["classnames","castArray","first","last","getBlockType","Button","useInstanceId","useSelect","useDispatch","forwardRef","__","isRTL","chevronLeft","chevronRight","chevronUp","chevronDown","getBlockMoverDescription","store","blockEditorStore","getArrowIcon","direction","orientation","getMovementDirectionLabel","moveDirection","BlockMoverButton","ref","clientIds","moverOrientation","props","instanceId","blocksCount","length","blockType","isDisabled","rootClientId","isFirst","isLast","firstIndex","select","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlock","getBlockListSettings","normalizedClientIds","firstClientId","blockRootClientId","firstBlockIndex","lastBlockIndex","blockOrder","block","isFirstBlock","isLastBlock","blockListOrientation","name","moveBlocksDown","moveBlocksUp","moverFunction","onClick","event","descriptionId","title","BlockMoverUpButton","BlockMoverDownButton"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { castArray, first, last } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\nimport { Button } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tchevronLeft,\n\tchevronRight,\n\tchevronUp,\n\tchevronDown,\n} from '@wordpress/icons';\nimport { getBlockMoverDescription } from './mover-description';\nimport { store as blockEditorStore } from '../../store';\n\nconst getArrowIcon = ( direction, orientation ) => {\n\tif ( direction === 'up' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? chevronRight : chevronLeft;\n\t\t}\n\t\treturn chevronUp;\n\t} else if ( direction === 'down' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? chevronLeft : chevronRight;\n\t\t}\n\t\treturn chevronDown;\n\t}\n\treturn null;\n};\n\nconst getMovementDirectionLabel = ( moveDirection, orientation ) => {\n\tif ( moveDirection === 'up' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? __( 'Move right' ) : __( 'Move left' );\n\t\t}\n\t\treturn __( 'Move up' );\n\t} else if ( moveDirection === 'down' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? __( 'Move left' ) : __( 'Move right' );\n\t\t}\n\t\treturn __( 'Move down' );\n\t}\n\treturn null;\n};\n\nconst BlockMoverButton = forwardRef(\n\t(\n\t\t{ clientIds, direction, orientation: moverOrientation, ...props },\n\t\tref\n\t) => {\n\t\tconst instanceId = useInstanceId( BlockMoverButton );\n\t\tconst blocksCount = castArray( clientIds ).length;\n\n\t\tconst {\n\t\t\tblockType,\n\t\t\tisDisabled,\n\t\t\trootClientId,\n\t\t\tisFirst,\n\t\t\tisLast,\n\t\t\tfirstIndex,\n\t\t\torientation = 'vertical',\n\t\t} = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\tgetBlock,\n\t\t\t\t\tgetBlockListSettings,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\tconst normalizedClientIds = castArray( clientIds );\n\t\t\t\tconst firstClientId = first( normalizedClientIds );\n\t\t\t\tconst blockRootClientId = getBlockRootClientId( firstClientId );\n\t\t\t\tconst firstBlockIndex = getBlockIndex( firstClientId );\n\t\t\t\tconst lastBlockIndex = getBlockIndex(\n\t\t\t\t\tlast( normalizedClientIds )\n\t\t\t\t);\n\t\t\t\tconst blockOrder = getBlockOrder( blockRootClientId );\n\t\t\t\tconst block = getBlock( firstClientId );\n\t\t\t\tconst isFirstBlock = firstBlockIndex === 0;\n\t\t\t\tconst isLastBlock = lastBlockIndex === blockOrder.length - 1;\n\t\t\t\tconst { orientation: blockListOrientation } =\n\t\t\t\t\tgetBlockListSettings( blockRootClientId ) || {};\n\n\t\t\t\treturn {\n\t\t\t\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\t\t\t\tisDisabled: direction === 'up' ? isFirstBlock : isLastBlock,\n\t\t\t\t\trootClientId: blockRootClientId,\n\t\t\t\t\tfirstIndex: firstBlockIndex,\n\t\t\t\t\tisFirst: isFirstBlock,\n\t\t\t\t\tisLast: isLastBlock,\n\t\t\t\t\torientation: moverOrientation || blockListOrientation,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientIds, direction ]\n\t\t);\n\n\t\tconst { moveBlocksDown, moveBlocksUp } = useDispatch(\n\t\t\tblockEditorStore\n\t\t);\n\t\tconst moverFunction =\n\t\t\tdirection === 'up' ? moveBlocksUp : moveBlocksDown;\n\n\t\tconst onClick = ( event ) => {\n\t\t\tmoverFunction( clientIds, rootClientId );\n\t\t\tif ( props.onClick ) {\n\t\t\t\tprops.onClick( event );\n\t\t\t}\n\t\t};\n\n\t\tconst descriptionId = `block-editor-block-mover-button__description-${ instanceId }`;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'block-editor-block-mover-button',\n\t\t\t\t\t\t`is-${ direction }-button`\n\t\t\t\t\t) }\n\t\t\t\t\ticon={ getArrowIcon( direction, orientation ) }\n\t\t\t\t\tlabel={ getMovementDirectionLabel(\n\t\t\t\t\t\tdirection,\n\t\t\t\t\t\torientation\n\t\t\t\t\t) }\n\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tonClick={ isDisabled ? null : onClick }\n\t\t\t\t\taria-disabled={ isDisabled }\n\t\t\t\t/>\n\t\t\t\t<span\n\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\tclassName=\"block-editor-block-mover-button__description\"\n\t\t\t\t>\n\t\t\t\t\t{ getBlockMoverDescription(\n\t\t\t\t\t\tblocksCount,\n\t\t\t\t\t\tblockType && blockType.title,\n\t\t\t\t\t\tfirstIndex,\n\t\t\t\t\t\tisFirst,\n\t\t\t\t\t\tisLast,\n\t\t\t\t\t\tdirection === 'up' ? -1 : 1,\n\t\t\t\t\t\torientation\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t</>\n\t\t);\n\t}\n);\n\nexport const BlockMoverUpButton = forwardRef( ( props, ref ) => {\n\treturn <BlockMoverButton direction=\"up\" ref={ ref } { ...props } />;\n} );\n\nexport const BlockMoverDownButton = forwardRef( ( props, ref ) => {\n\treturn <BlockMoverButton direction=\"down\" ref={ ref } { ...props } />;\n} );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/button.js"],"names":["classnames","castArray","first","last","getBlockType","Button","VisuallyHidden","useInstanceId","useSelect","useDispatch","forwardRef","__","isRTL","chevronLeft","chevronRight","chevronUp","chevronDown","getBlockMoverDescription","store","blockEditorStore","getArrowIcon","direction","orientation","getMovementDirectionLabel","moveDirection","BlockMoverButton","ref","clientIds","moverOrientation","props","instanceId","blocksCount","length","blockType","isDisabled","rootClientId","isFirst","isLast","firstIndex","select","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlock","getBlockListSettings","normalizedClientIds","firstClientId","blockRootClientId","firstBlockIndex","lastBlockIndex","blockOrder","block","isFirstBlock","isLastBlock","blockListOrientation","name","moveBlocksDown","moveBlocksUp","moverFunction","onClick","event","descriptionId","title","BlockMoverUpButton","BlockMoverDownButton"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { castArray, first, last } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\nimport { Button, VisuallyHidden } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tchevronLeft,\n\tchevronRight,\n\tchevronUp,\n\tchevronDown,\n} from '@wordpress/icons';\nimport { getBlockMoverDescription } from './mover-description';\nimport { store as blockEditorStore } from '../../store';\n\nconst getArrowIcon = ( direction, orientation ) => {\n\tif ( direction === 'up' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? chevronRight : chevronLeft;\n\t\t}\n\t\treturn chevronUp;\n\t} else if ( direction === 'down' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? chevronLeft : chevronRight;\n\t\t}\n\t\treturn chevronDown;\n\t}\n\treturn null;\n};\n\nconst getMovementDirectionLabel = ( moveDirection, orientation ) => {\n\tif ( moveDirection === 'up' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? __( 'Move right' ) : __( 'Move left' );\n\t\t}\n\t\treturn __( 'Move up' );\n\t} else if ( moveDirection === 'down' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? __( 'Move left' ) : __( 'Move right' );\n\t\t}\n\t\treturn __( 'Move down' );\n\t}\n\treturn null;\n};\n\nconst BlockMoverButton = forwardRef(\n\t(\n\t\t{ clientIds, direction, orientation: moverOrientation, ...props },\n\t\tref\n\t) => {\n\t\tconst instanceId = useInstanceId( BlockMoverButton );\n\t\tconst blocksCount = castArray( clientIds ).length;\n\n\t\tconst {\n\t\t\tblockType,\n\t\t\tisDisabled,\n\t\t\trootClientId,\n\t\t\tisFirst,\n\t\t\tisLast,\n\t\t\tfirstIndex,\n\t\t\torientation = 'vertical',\n\t\t} = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\tgetBlock,\n\t\t\t\t\tgetBlockListSettings,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\tconst normalizedClientIds = castArray( clientIds );\n\t\t\t\tconst firstClientId = first( normalizedClientIds );\n\t\t\t\tconst blockRootClientId = getBlockRootClientId( firstClientId );\n\t\t\t\tconst firstBlockIndex = getBlockIndex( firstClientId );\n\t\t\t\tconst lastBlockIndex = getBlockIndex(\n\t\t\t\t\tlast( normalizedClientIds )\n\t\t\t\t);\n\t\t\t\tconst blockOrder = getBlockOrder( blockRootClientId );\n\t\t\t\tconst block = getBlock( firstClientId );\n\t\t\t\tconst isFirstBlock = firstBlockIndex === 0;\n\t\t\t\tconst isLastBlock = lastBlockIndex === blockOrder.length - 1;\n\t\t\t\tconst { orientation: blockListOrientation } =\n\t\t\t\t\tgetBlockListSettings( blockRootClientId ) || {};\n\n\t\t\t\treturn {\n\t\t\t\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\t\t\t\tisDisabled: direction === 'up' ? isFirstBlock : isLastBlock,\n\t\t\t\t\trootClientId: blockRootClientId,\n\t\t\t\t\tfirstIndex: firstBlockIndex,\n\t\t\t\t\tisFirst: isFirstBlock,\n\t\t\t\t\tisLast: isLastBlock,\n\t\t\t\t\torientation: moverOrientation || blockListOrientation,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientIds, direction ]\n\t\t);\n\n\t\tconst { moveBlocksDown, moveBlocksUp } = useDispatch(\n\t\t\tblockEditorStore\n\t\t);\n\t\tconst moverFunction =\n\t\t\tdirection === 'up' ? moveBlocksUp : moveBlocksDown;\n\n\t\tconst onClick = ( event ) => {\n\t\t\tmoverFunction( clientIds, rootClientId );\n\t\t\tif ( props.onClick ) {\n\t\t\t\tprops.onClick( event );\n\t\t\t}\n\t\t};\n\n\t\tconst descriptionId = `block-editor-block-mover-button__description-${ instanceId }`;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'block-editor-block-mover-button',\n\t\t\t\t\t\t`is-${ direction }-button`\n\t\t\t\t\t) }\n\t\t\t\t\ticon={ getArrowIcon( direction, orientation ) }\n\t\t\t\t\tlabel={ getMovementDirectionLabel(\n\t\t\t\t\t\tdirection,\n\t\t\t\t\t\torientation\n\t\t\t\t\t) }\n\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tonClick={ isDisabled ? null : onClick }\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t/>\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ getBlockMoverDescription(\n\t\t\t\t\t\tblocksCount,\n\t\t\t\t\t\tblockType && blockType.title,\n\t\t\t\t\t\tfirstIndex,\n\t\t\t\t\t\tisFirst,\n\t\t\t\t\t\tisLast,\n\t\t\t\t\t\tdirection === 'up' ? -1 : 1,\n\t\t\t\t\t\torientation\n\t\t\t\t\t) }\n\t\t\t\t</VisuallyHidden>\n\t\t\t</>\n\t\t);\n\t}\n);\n\nexport const BlockMoverUpButton = forwardRef( ( props, ref ) => {\n\treturn <BlockMoverButton direction=\"up\" ref={ ref } { ...props } />;\n} );\n\nexport const BlockMoverDownButton = forwardRef( ( props, ref ) => {\n\treturn <BlockMoverButton direction=\"down\" ref={ ref } { ...props } />;\n} );\n"]}
@@ -12,9 +12,7 @@ import classnames from 'classnames';
12
12
 
13
13
  import { dragHandle } from '@wordpress/icons';
14
14
  import { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';
15
- import { getBlockType } from '@wordpress/blocks';
16
- import { useState } from '@wordpress/element';
17
- import { withSelect } from '@wordpress/data';
15
+ import { useSelect } from '@wordpress/data';
18
16
  import { __ } from '@wordpress/i18n';
19
17
  /**
20
18
  * Internal dependencies
@@ -26,39 +24,54 @@ import { store as blockEditorStore } from '../../store';
26
24
 
27
25
  function BlockMover(_ref) {
28
26
  let {
29
- isFirst,
30
- isLast,
31
27
  clientIds,
32
- canMove,
33
- isHidden,
34
- rootClientId,
35
- orientation,
36
28
  hideDragHandle
37
29
  } = _ref;
38
- const [isFocused, setIsFocused] = useState(false);
30
+ const {
31
+ canMove,
32
+ rootClientId,
33
+ isFirst,
34
+ isLast,
35
+ orientation
36
+ } = useSelect(select => {
37
+ var _getBlockListSettings;
39
38
 
40
- const onFocus = () => setIsFocused(true);
39
+ const {
40
+ getBlockIndex,
41
+ getBlockListSettings,
42
+ canMoveBlocks,
43
+ getBlockOrder,
44
+ getBlockRootClientId
45
+ } = select(blockEditorStore);
46
+ const normalizedClientIds = castArray(clientIds);
47
+ const firstClientId = first(normalizedClientIds);
41
48
 
42
- const onBlur = () => setIsFocused(false);
49
+ const _rootClientId = getBlockRootClientId(first(normalizedClientIds));
50
+
51
+ const firstIndex = getBlockIndex(firstClientId);
52
+ const lastIndex = getBlockIndex(last(normalizedClientIds));
53
+ const blockOrder = getBlockOrder(_rootClientId);
54
+ return {
55
+ canMove: canMoveBlocks(clientIds, _rootClientId),
56
+ rootClientId: _rootClientId,
57
+ isFirst: firstIndex === 0,
58
+ isLast: lastIndex === blockOrder.length - 1,
59
+ orientation: (_getBlockListSettings = getBlockListSettings(_rootClientId)) === null || _getBlockListSettings === void 0 ? void 0 : _getBlockListSettings.orientation
60
+ };
61
+ }, [clientIds]);
43
62
 
44
63
  if (!canMove || isFirst && isLast && !rootClientId) {
45
64
  return null;
46
65
  }
47
66
 
48
- const dragHandleLabel = __('Drag'); // We emulate a disabled state because forcefully applying the `disabled`
49
- // attribute on the buttons while it has focus causes the screen to change
50
- // to an unfocused state (body as active element) without firing blur on,
51
- // the rendering parent, leaving it unable to react to focus out.
52
-
67
+ const dragHandleLabel = __('Drag');
53
68
 
54
- return createElement("div", {
69
+ return createElement(ToolbarGroup, {
55
70
  className: classnames('block-editor-block-mover', {
56
- 'is-visible': isFocused || !isHidden,
57
71
  'is-horizontal': orientation === 'horizontal'
58
72
  })
59
73
  }, !hideDragHandle && createElement(BlockDraggable, {
60
- clientIds: clientIds,
61
- cloneClassname: "block-editor-block-mover__drag-clone"
74
+ clientIds: clientIds
62
75
  }, draggableProps => createElement(Button, _extends({
63
76
  icon: dragHandle,
64
77
  className: "block-editor-block-mover__drag-handle",
@@ -67,17 +80,11 @@ function BlockMover(_ref) {
67
80
  // button can only be used with a pointer device.
68
81
  ,
69
82
  tabIndex: "-1"
70
- }, draggableProps))), createElement(ToolbarGroup, {
83
+ }, draggableProps))), createElement("div", {
71
84
  className: "block-editor-block-mover__move-button-container"
72
- }, createElement(ToolbarItem, {
73
- onFocus: onFocus,
74
- onBlur: onBlur
75
- }, itemProps => createElement(BlockMoverUpButton, _extends({
85
+ }, createElement(ToolbarItem, null, itemProps => createElement(BlockMoverUpButton, _extends({
76
86
  clientIds: clientIds
77
- }, itemProps))), createElement(ToolbarItem, {
78
- onFocus: onFocus,
79
- onBlur: onBlur
80
- }, itemProps => createElement(BlockMoverDownButton, _extends({
87
+ }, itemProps))), createElement(ToolbarItem, null, itemProps => createElement(BlockMoverDownButton, _extends({
81
88
  clientIds: clientIds
82
89
  }, itemProps)))));
83
90
  }
@@ -86,37 +93,5 @@ function BlockMover(_ref) {
86
93
  */
87
94
 
88
95
 
89
- export default withSelect((select, _ref2) => {
90
- var _getBlockListSettings;
91
-
92
- let {
93
- clientIds
94
- } = _ref2;
95
- const {
96
- getBlock,
97
- getBlockIndex,
98
- getBlockListSettings,
99
- canMoveBlocks,
100
- getBlockOrder,
101
- getBlockRootClientId
102
- } = select(blockEditorStore);
103
- const normalizedClientIds = castArray(clientIds);
104
- const firstClientId = first(normalizedClientIds);
105
- const block = getBlock(firstClientId);
106
- const rootClientId = getBlockRootClientId(first(normalizedClientIds));
107
- const firstIndex = getBlockIndex(firstClientId);
108
- const lastIndex = getBlockIndex(last(normalizedClientIds));
109
- const blockOrder = getBlockOrder(rootClientId);
110
- const isFirst = firstIndex === 0;
111
- const isLast = lastIndex === blockOrder.length - 1;
112
- return {
113
- blockType: block ? getBlockType(block.name) : null,
114
- canMove: canMoveBlocks(clientIds, rootClientId),
115
- rootClientId,
116
- firstIndex,
117
- isFirst,
118
- isLast,
119
- orientation: (_getBlockListSettings = getBlockListSettings(rootClientId)) === null || _getBlockListSettings === void 0 ? void 0 : _getBlockListSettings.orientation
120
- };
121
- })(BlockMover);
96
+ export default BlockMover;
122
97
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/index.js"],"names":["first","last","castArray","classnames","dragHandle","ToolbarGroup","ToolbarItem","Button","getBlockType","useState","withSelect","__","BlockDraggable","BlockMoverUpButton","BlockMoverDownButton","store","blockEditorStore","BlockMover","isFirst","isLast","clientIds","canMove","isHidden","rootClientId","orientation","hideDragHandle","isFocused","setIsFocused","onFocus","onBlur","dragHandleLabel","draggableProps","itemProps","select","getBlock","getBlockIndex","getBlockListSettings","canMoveBlocks","getBlockOrder","getBlockRootClientId","normalizedClientIds","firstClientId","block","firstIndex","lastIndex","blockOrder","length","blockType","name"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { first, last, castArray } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\n\nimport { dragHandle } from '@wordpress/icons';\nimport { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';\nimport { getBlockType } from '@wordpress/blocks';\nimport { useState } from '@wordpress/element';\nimport { withSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggable from '../block-draggable';\nimport { BlockMoverUpButton, BlockMoverDownButton } from './button';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockMover( {\n\tisFirst,\n\tisLast,\n\tclientIds,\n\tcanMove,\n\tisHidden,\n\trootClientId,\n\torientation,\n\thideDragHandle,\n} ) {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\n\tconst onFocus = () => setIsFocused( true );\n\tconst onBlur = () => setIsFocused( false );\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\tconst dragHandleLabel = __( 'Drag' );\n\n\t// We emulate a disabled state because forcefully applying the `disabled`\n\t// attribute on the buttons while it has focus causes the screen to change\n\t// to an unfocused state (body as active element) without firing blur on,\n\t// the rendering parent, leaving it unable to react to focus out.\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'block-editor-block-mover', {\n\t\t\t\t'is-visible': isFocused || ! isHidden,\n\t\t\t\t'is-horizontal': orientation === 'horizontal',\n\t\t\t} ) }\n\t\t>\n\t\t\t{ ! hideDragHandle && (\n\t\t\t\t<BlockDraggable\n\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\tcloneClassname=\"block-editor-block-mover__drag-clone\"\n\t\t\t\t>\n\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\tclassName=\"block-editor-block-mover__drag-handle\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t) }\n\t\t\t<ToolbarGroup className=\"block-editor-block-mover__move-button-container\">\n\t\t\t\t<ToolbarItem onFocus={ onFocus } onBlur={ onBlur }>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t\t<ToolbarItem onFocus={ onFocus } onBlur={ onBlur }>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t</ToolbarGroup>\n\t\t</div>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-mover/README.md\n */\nexport default withSelect( ( select, { clientIds } ) => {\n\tconst {\n\t\tgetBlock,\n\t\tgetBlockIndex,\n\t\tgetBlockListSettings,\n\t\tcanMoveBlocks,\n\t\tgetBlockOrder,\n\t\tgetBlockRootClientId,\n\t} = select( blockEditorStore );\n\tconst normalizedClientIds = castArray( clientIds );\n\tconst firstClientId = first( normalizedClientIds );\n\tconst block = getBlock( firstClientId );\n\tconst rootClientId = getBlockRootClientId( first( normalizedClientIds ) );\n\tconst firstIndex = getBlockIndex( firstClientId );\n\tconst lastIndex = getBlockIndex( last( normalizedClientIds ) );\n\tconst blockOrder = getBlockOrder( rootClientId );\n\tconst isFirst = firstIndex === 0;\n\tconst isLast = lastIndex === blockOrder.length - 1;\n\n\treturn {\n\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\tcanMove: canMoveBlocks( clientIds, rootClientId ),\n\t\trootClientId,\n\t\tfirstIndex,\n\t\tisFirst,\n\t\tisLast,\n\t\torientation: getBlockListSettings( rootClientId )?.orientation,\n\t};\n} )( BlockMover );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/index.js"],"names":["first","last","castArray","classnames","dragHandle","ToolbarGroup","ToolbarItem","Button","useSelect","__","BlockDraggable","BlockMoverUpButton","BlockMoverDownButton","store","blockEditorStore","BlockMover","clientIds","hideDragHandle","canMove","rootClientId","isFirst","isLast","orientation","select","getBlockIndex","getBlockListSettings","canMoveBlocks","getBlockOrder","getBlockRootClientId","normalizedClientIds","firstClientId","_rootClientId","firstIndex","lastIndex","blockOrder","length","dragHandleLabel","draggableProps","itemProps"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,KAAT,EAAgBC,IAAhB,EAAsBC,SAAtB,QAAuC,QAAvC;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AAEA,SAASC,UAAT,QAA2B,kBAA3B;AACA,SAASC,YAAT,EAAuBC,WAAvB,EAAoCC,MAApC,QAAkD,uBAAlD;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,OAAOC,cAAP,MAA2B,oBAA3B;AACA,SAASC,kBAAT,EAA6BC,oBAA7B,QAAyD,UAAzD;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,SAASC,UAAT,OAAqD;AAAA,MAAhC;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,GAAgC;AACpD,QAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA,YAAX;AAAyBC,IAAAA,OAAzB;AAAkCC,IAAAA,MAAlC;AAA0CC,IAAAA;AAA1C,MAA0Dd,SAAS,CACtEe,MAAF,IAAc;AAAA;;AACb,UAAM;AACLC,MAAAA,aADK;AAELC,MAAAA,oBAFK;AAGLC,MAAAA,aAHK;AAILC,MAAAA,aAJK;AAKLC,MAAAA;AALK,QAMFL,MAAM,CAAET,gBAAF,CANV;AAOA,UAAMe,mBAAmB,GAAG3B,SAAS,CAAEc,SAAF,CAArC;AACA,UAAMc,aAAa,GAAG9B,KAAK,CAAE6B,mBAAF,CAA3B;;AACA,UAAME,aAAa,GAAGH,oBAAoB,CACzC5B,KAAK,CAAE6B,mBAAF,CADoC,CAA1C;;AAGA,UAAMG,UAAU,GAAGR,aAAa,CAAEM,aAAF,CAAhC;AACA,UAAMG,SAAS,GAAGT,aAAa,CAAEvB,IAAI,CAAE4B,mBAAF,CAAN,CAA/B;AACA,UAAMK,UAAU,GAAGP,aAAa,CAAEI,aAAF,CAAhC;AAEA,WAAO;AACNb,MAAAA,OAAO,EAAEQ,aAAa,CAAEV,SAAF,EAAae,aAAb,CADhB;AAENZ,MAAAA,YAAY,EAAEY,aAFR;AAGNX,MAAAA,OAAO,EAAEY,UAAU,KAAK,CAHlB;AAINX,MAAAA,MAAM,EAAEY,SAAS,KAAKC,UAAU,CAACC,MAAX,GAAoB,CAJpC;AAKNb,MAAAA,WAAW,2BAAEG,oBAAoB,CAAEM,aAAF,CAAtB,0DAAE,sBAAuCT;AAL9C,KAAP;AAOA,GAzBuE,EA0BxE,CAAEN,SAAF,CA1BwE,CAAzE;;AA6BA,MAAK,CAAEE,OAAF,IAAeE,OAAO,IAAIC,MAAX,IAAqB,CAAEF,YAA3C,EAA4D;AAC3D,WAAO,IAAP;AACA;;AAED,QAAMiB,eAAe,GAAG3B,EAAE,CAAE,MAAF,CAA1B;;AAEA,SACC,cAAC,YAAD;AACC,IAAA,SAAS,EAAGN,UAAU,CAAE,0BAAF,EAA8B;AACnD,uBAAiBmB,WAAW,KAAK;AADkB,KAA9B;AADvB,KAKG,CAAEL,cAAF,IACD,cAAC,cAAD;AAAgB,IAAA,SAAS,EAAGD;AAA5B,KACKqB,cAAF,IACD,cAAC,MAAD;AACC,IAAA,IAAI,EAAGjC,UADR;AAEC,IAAA,SAAS,EAAC,uCAFX;AAGC,mBAAY,MAHb;AAIC,IAAA,KAAK,EAAGgC,eAJT,CAKC;AACA;AAND;AAOC,IAAA,QAAQ,EAAC;AAPV,KAQMC,cARN,EAFF,CANF,EAqBC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,WAAD,QACKC,SAAF,IACD,cAAC,kBAAD;AACC,IAAA,SAAS,EAAGtB;AADb,KAEMsB,SAFN,EAFF,CADD,EASC,cAAC,WAAD,QACKA,SAAF,IACD,cAAC,oBAAD;AACC,IAAA,SAAS,EAAGtB;AADb,KAEMsB,SAFN,EAFF,CATD,CArBD,CADD;AA0CA;AAED;AACA;AACA;;;AACA,eAAevB,UAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { first, last, castArray } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\n\nimport { dragHandle } from '@wordpress/icons';\nimport { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggable from '../block-draggable';\nimport { BlockMoverUpButton, BlockMoverDownButton } from './button';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockMover( { clientIds, hideDragHandle } ) {\n\tconst { canMove, rootClientId, isFirst, isLast, orientation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst normalizedClientIds = castArray( clientIds );\n\t\t\tconst firstClientId = first( normalizedClientIds );\n\t\t\tconst _rootClientId = getBlockRootClientId(\n\t\t\t\tfirst( normalizedClientIds )\n\t\t\t);\n\t\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\t\tconst lastIndex = getBlockIndex( last( normalizedClientIds ) );\n\t\t\tconst blockOrder = getBlockOrder( _rootClientId );\n\n\t\t\treturn {\n\t\t\t\tcanMove: canMoveBlocks( clientIds, _rootClientId ),\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisFirst: firstIndex === 0,\n\t\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\t\torientation: getBlockListSettings( _rootClientId )?.orientation,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\tconst dragHandleLabel = __( 'Drag' );\n\n\treturn (\n\t\t<ToolbarGroup\n\t\t\tclassName={ classnames( 'block-editor-block-mover', {\n\t\t\t\t'is-horizontal': orientation === 'horizontal',\n\t\t\t} ) }\n\t\t>\n\t\t\t{ ! hideDragHandle && (\n\t\t\t\t<BlockDraggable clientIds={ clientIds }>\n\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\tclassName=\"block-editor-block-mover__drag-handle\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t) }\n\t\t\t<div className=\"block-editor-block-mover__move-button-container\">\n\t\t\t\t<ToolbarItem>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t\t<ToolbarItem>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t</div>\n\t\t</ToolbarGroup>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-mover/README.md\n */\nexport default BlockMover;\n"]}
@@ -1,5 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import { createElement } from "@wordpress/element";
2
+ import { createElement, Fragment } from "@wordpress/element";
3
3
 
4
4
  /**
5
5
  * WordPress dependencies
@@ -8,7 +8,7 @@ import { useDispatch } from '@wordpress/data';
8
8
  import { cloneBlock } from '@wordpress/blocks';
9
9
  import { VisuallyHidden, __unstableComposite as Composite, __unstableUseCompositeState as useCompositeState, __unstableCompositeItem as CompositeItem } from '@wordpress/components';
10
10
  import { useState } from '@wordpress/element';
11
- import { useInstanceId } from '@wordpress/compose';
11
+ import { useInstanceId, useResizeObserver } from '@wordpress/compose';
12
12
  import { __ } from '@wordpress/i18n';
13
13
  /**
14
14
  * Internal dependencies
@@ -25,7 +25,8 @@ const SetupContent = _ref => {
25
25
  viewMode,
26
26
  activeSlide,
27
27
  patterns,
28
- onBlockPatternSelect
28
+ onBlockPatternSelect,
29
+ height
29
30
  } = _ref;
30
31
  const composite = useCompositeState();
31
32
  const containerClass = 'block-editor-block-pattern-setup__container';
@@ -33,17 +34,28 @@ const SetupContent = _ref => {
33
34
  if (viewMode === VIEWMODES.carousel) {
34
35
  const slideClass = new Map([[activeSlide, 'active-slide'], [activeSlide - 1, 'previous-slide'], [activeSlide + 1, 'next-slide']]);
35
36
  return createElement("div", {
37
+ className: "block-editor-block-pattern-setup__carousel",
38
+ style: {
39
+ height
40
+ }
41
+ }, createElement("div", {
36
42
  className: containerClass
37
43
  }, createElement("ul", {
38
44
  className: "carousel-container"
39
45
  }, patterns.map((pattern, index) => createElement(BlockPatternSlide, {
40
46
  className: slideClass.get(index) || '',
41
47
  key: pattern.name,
42
- pattern: pattern
43
- }))));
48
+ pattern: pattern,
49
+ minHeight: height
50
+ })))));
44
51
  }
45
52
 
46
- return createElement(Composite, _extends({}, composite, {
53
+ return createElement("div", {
54
+ style: {
55
+ height
56
+ },
57
+ className: "block-editor-block-pattern-setup__grid"
58
+ }, createElement(Composite, _extends({}, composite, {
47
59
  role: "listbox",
48
60
  className: containerClass,
49
61
  "aria-label": __('Patterns list')
@@ -52,7 +64,7 @@ const SetupContent = _ref => {
52
64
  pattern: pattern,
53
65
  onSelect: onBlockPatternSelect,
54
66
  composite: composite
55
- })));
67
+ }))));
56
68
  };
57
69
 
58
70
  function BlockPattern(_ref2) {
@@ -64,7 +76,6 @@ function BlockPattern(_ref2) {
64
76
  const baseClassName = 'block-editor-block-pattern-setup-list';
65
77
  const {
66
78
  blocks,
67
- title,
68
79
  description,
69
80
  viewportWidth = 700
70
81
  } = pattern;
@@ -82,9 +93,7 @@ function BlockPattern(_ref2) {
82
93
  }), createElement(BlockPreview, {
83
94
  blocks: blocks,
84
95
  viewportWidth: viewportWidth
85
- }), createElement("div", {
86
- className: `${baseClassName}__item-title`
87
- }, title)), !!description && createElement(VisuallyHidden, {
96
+ })), !!description && createElement(VisuallyHidden, {
88
97
  id: descriptionId
89
98
  }, description));
90
99
  }
@@ -92,7 +101,8 @@ function BlockPattern(_ref2) {
92
101
  function BlockPatternSlide(_ref3) {
93
102
  let {
94
103
  className,
95
- pattern
104
+ pattern,
105
+ minHeight
96
106
  } = _ref3;
97
107
  const {
98
108
  blocks,
@@ -106,7 +116,7 @@ function BlockPatternSlide(_ref3) {
106
116
  "aria-describedby": description ? descriptionId : undefined
107
117
  }, createElement(BlockPreview, {
108
118
  blocks: blocks,
109
- __experimentalLive: true
119
+ __experimentalMinHeight: minHeight
110
120
  }), !!description && createElement(VisuallyHidden, {
111
121
  id: descriptionId
112
122
  }, description));
@@ -127,6 +137,9 @@ const BlockPatternSetup = _ref4 => {
127
137
  replaceBlock
128
138
  } = useDispatch(blockEditorStore);
129
139
  const patterns = usePatternsSetup(clientId, blockName, filterPatternsFn);
140
+ const [contentResizeListener, {
141
+ height: contentHeight
142
+ }] = useResizeObserver();
130
143
 
131
144
  if (!(patterns !== null && patterns !== void 0 && patterns.length) || showBlank) {
132
145
  return startBlankComponent;
@@ -138,9 +151,18 @@ const BlockPatternSetup = _ref4 => {
138
151
  };
139
152
 
140
153
  const onPatternSelectCallback = onBlockPatternSelect || onBlockPatternSelectDefault;
141
- return createElement("div", {
154
+ const onStartBlank = startBlankComponent ? () => {
155
+ setShowBlank(true);
156
+ } : undefined;
157
+ return createElement(Fragment, null, contentResizeListener, createElement("div", {
142
158
  className: `block-editor-block-pattern-setup view-mode-${viewMode}`
143
- }, createElement(SetupToolbar, {
159
+ }, createElement(SetupContent, {
160
+ viewMode: viewMode,
161
+ activeSlide: activeSlide,
162
+ patterns: patterns,
163
+ onBlockPatternSelect: onPatternSelectCallback,
164
+ height: contentHeight - 2 * 60
165
+ }), createElement(SetupToolbar, {
144
166
  viewMode: viewMode,
145
167
  setViewMode: setViewMode,
146
168
  activeSlide: activeSlide,
@@ -154,15 +176,8 @@ const BlockPatternSetup = _ref4 => {
154
176
  onBlockPatternSelect: () => {
155
177
  onPatternSelectCallback(patterns[activeSlide].blocks);
156
178
  },
157
- onStartBlank: () => {
158
- setShowBlank(true);
159
- }
160
- }), createElement(SetupContent, {
161
- viewMode: viewMode,
162
- activeSlide: activeSlide,
163
- patterns: patterns,
164
- onBlockPatternSelect: onPatternSelectCallback
165
- }));
179
+ onStartBlank: onStartBlank
180
+ })));
166
181
  };
167
182
 
168
183
  export default BlockPatternSetup;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-pattern-setup/index.js"],"names":["useDispatch","cloneBlock","VisuallyHidden","__unstableComposite","Composite","__unstableUseCompositeState","useCompositeState","__unstableCompositeItem","CompositeItem","useState","useInstanceId","__","store","blockEditorStore","BlockPreview","SetupToolbar","usePatternsSetup","VIEWMODES","SetupContent","viewMode","activeSlide","patterns","onBlockPatternSelect","composite","containerClass","carousel","slideClass","Map","map","pattern","index","get","name","BlockPattern","onSelect","baseClassName","blocks","title","description","viewportWidth","descriptionId","undefined","BlockPatternSlide","className","BlockPatternSetup","clientId","blockName","filterPatternsFn","startBlankComponent","setViewMode","setActiveSlide","showBlank","setShowBlank","replaceBlock","length","onBlockPatternSelectDefault","clonedBlocks","block","onPatternSelectCallback","active"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { cloneBlock } from '@wordpress/blocks';\nimport {\n\tVisuallyHidden,\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n\t__unstableCompositeItem as CompositeItem,\n} from '@wordpress/components';\n\nimport { useState } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockPreview from '../block-preview';\nimport SetupToolbar from './setup-toolbar';\nimport usePatternsSetup from './use-patterns-setup';\nimport { VIEWMODES } from './constants';\n\nconst SetupContent = ( {\n\tviewMode,\n\tactiveSlide,\n\tpatterns,\n\tonBlockPatternSelect,\n} ) => {\n\tconst composite = useCompositeState();\n\tconst containerClass = 'block-editor-block-pattern-setup__container';\n\tif ( viewMode === VIEWMODES.carousel ) {\n\t\tconst slideClass = new Map( [\n\t\t\t[ activeSlide, 'active-slide' ],\n\t\t\t[ activeSlide - 1, 'previous-slide' ],\n\t\t\t[ activeSlide + 1, 'next-slide' ],\n\t\t] );\n\t\treturn (\n\t\t\t<div className={ containerClass }>\n\t\t\t\t<ul className=\"carousel-container\">\n\t\t\t\t\t{ patterns.map( ( pattern, index ) => (\n\t\t\t\t\t\t<BlockPatternSlide\n\t\t\t\t\t\t\tclassName={ slideClass.get( index ) || '' }\n\t\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<Composite\n\t\t\t{ ...composite }\n\t\t\trole=\"listbox\"\n\t\t\tclassName={ containerClass }\n\t\t\taria-label={ __( 'Patterns list' ) }\n\t\t>\n\t\t\t{ patterns.map( ( pattern ) => (\n\t\t\t\t<BlockPattern\n\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\tonSelect={ onBlockPatternSelect }\n\t\t\t\t\tcomposite={ composite }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n};\n\nfunction BlockPattern( { pattern, onSelect, composite } ) {\n\tconst baseClassName = 'block-editor-block-pattern-setup-list';\n\tconst { blocks, title, description, viewportWidth = 700 } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPattern,\n\t\t`${ baseClassName }__item-description`\n\t);\n\treturn (\n\t\t<div\n\t\t\tclassName={ `${ baseClassName }__list-item` }\n\t\t\taria-label={ pattern.title }\n\t\t\taria-describedby={ pattern.description ? descriptionId : undefined }\n\t\t>\n\t\t\t<CompositeItem\n\t\t\t\trole=\"option\"\n\t\t\t\tas=\"div\"\n\t\t\t\t{ ...composite }\n\t\t\t\tclassName={ `${ baseClassName }__item` }\n\t\t\t\tonClick={ () => onSelect( blocks ) }\n\t\t\t>\n\t\t\t\t<BlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t/>\n\t\t\t\t<div className={ `${ baseClassName }__item-title` }>\n\t\t\t\t\t{ title }\n\t\t\t\t</div>\n\t\t\t</CompositeItem>\n\t\t\t{ !! description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternSlide( { className, pattern } ) {\n\tconst { blocks, title, description } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPatternSlide,\n\t\t'block-editor-block-pattern-setup-list__item-description'\n\t);\n\treturn (\n\t\t<li\n\t\t\tclassName={ `pattern-slide ${ className }` }\n\t\t\taria-label={ title }\n\t\t\taria-describedby={ description ? descriptionId : undefined }\n\t\t>\n\t\t\t<BlockPreview blocks={ blocks } __experimentalLive />\n\t\t\t{ !! description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nconst BlockPatternSetup = ( {\n\tclientId,\n\tblockName,\n\tfilterPatternsFn,\n\tstartBlankComponent,\n\tonBlockPatternSelect,\n} ) => {\n\tconst [ viewMode, setViewMode ] = useState( VIEWMODES.carousel );\n\tconst [ activeSlide, setActiveSlide ] = useState( 0 );\n\tconst [ showBlank, setShowBlank ] = useState( false );\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst patterns = usePatternsSetup( clientId, blockName, filterPatternsFn );\n\n\tif ( ! patterns?.length || showBlank ) {\n\t\treturn startBlankComponent;\n\t}\n\n\tconst onBlockPatternSelectDefault = ( blocks ) => {\n\t\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\t\treplaceBlock( clientId, clonedBlocks );\n\t};\n\tconst onPatternSelectCallback =\n\t\tonBlockPatternSelect || onBlockPatternSelectDefault;\n\treturn (\n\t\t<div\n\t\t\tclassName={ `block-editor-block-pattern-setup view-mode-${ viewMode }` }\n\t\t>\n\t\t\t<SetupToolbar\n\t\t\t\tviewMode={ viewMode }\n\t\t\t\tsetViewMode={ setViewMode }\n\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\ttotalSlides={ patterns.length }\n\t\t\t\thandleNext={ () => {\n\t\t\t\t\tsetActiveSlide( ( active ) => active + 1 );\n\t\t\t\t} }\n\t\t\t\thandlePrevious={ () => {\n\t\t\t\t\tsetActiveSlide( ( active ) => active - 1 );\n\t\t\t\t} }\n\t\t\t\tonBlockPatternSelect={ () => {\n\t\t\t\t\tonPatternSelectCallback( patterns[ activeSlide ].blocks );\n\t\t\t\t} }\n\t\t\t\tonStartBlank={ () => {\n\t\t\t\t\tsetShowBlank( true );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<SetupContent\n\t\t\t\tviewMode={ viewMode }\n\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\tpatterns={ patterns }\n\t\t\t\tonBlockPatternSelect={ onPatternSelectCallback }\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport default BlockPatternSetup;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-pattern-setup/index.js"],"names":["useDispatch","cloneBlock","VisuallyHidden","__unstableComposite","Composite","__unstableUseCompositeState","useCompositeState","__unstableCompositeItem","CompositeItem","useState","useInstanceId","useResizeObserver","__","store","blockEditorStore","BlockPreview","SetupToolbar","usePatternsSetup","VIEWMODES","SetupContent","viewMode","activeSlide","patterns","onBlockPatternSelect","height","composite","containerClass","carousel","slideClass","Map","map","pattern","index","get","name","BlockPattern","onSelect","baseClassName","blocks","description","viewportWidth","descriptionId","title","undefined","BlockPatternSlide","className","minHeight","BlockPatternSetup","clientId","blockName","filterPatternsFn","startBlankComponent","setViewMode","setActiveSlide","showBlank","setShowBlank","replaceBlock","contentResizeListener","contentHeight","length","onBlockPatternSelectDefault","clonedBlocks","block","onPatternSelectCallback","onStartBlank","active"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { cloneBlock } from '@wordpress/blocks';\nimport {\n\tVisuallyHidden,\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n\t__unstableCompositeItem as CompositeItem,\n} from '@wordpress/components';\n\nimport { useState } from '@wordpress/element';\nimport { useInstanceId, useResizeObserver } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockPreview from '../block-preview';\nimport SetupToolbar from './setup-toolbar';\nimport usePatternsSetup from './use-patterns-setup';\nimport { VIEWMODES } from './constants';\n\nconst SetupContent = ( {\n\tviewMode,\n\tactiveSlide,\n\tpatterns,\n\tonBlockPatternSelect,\n\theight,\n} ) => {\n\tconst composite = useCompositeState();\n\tconst containerClass = 'block-editor-block-pattern-setup__container';\n\tif ( viewMode === VIEWMODES.carousel ) {\n\t\tconst slideClass = new Map( [\n\t\t\t[ activeSlide, 'active-slide' ],\n\t\t\t[ activeSlide - 1, 'previous-slide' ],\n\t\t\t[ activeSlide + 1, 'next-slide' ],\n\t\t] );\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName=\"block-editor-block-pattern-setup__carousel\"\n\t\t\t\tstyle={ { height } }\n\t\t\t>\n\t\t\t\t<div className={ containerClass }>\n\t\t\t\t\t<ul className=\"carousel-container\">\n\t\t\t\t\t\t{ patterns.map( ( pattern, index ) => (\n\t\t\t\t\t\t\t<BlockPatternSlide\n\t\t\t\t\t\t\t\tclassName={ slideClass.get( index ) || '' }\n\t\t\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\t\t\tminHeight={ height }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<div\n\t\t\tstyle={ { height } }\n\t\t\tclassName=\"block-editor-block-pattern-setup__grid\"\n\t\t>\n\t\t\t<Composite\n\t\t\t\t{ ...composite }\n\t\t\t\trole=\"listbox\"\n\t\t\t\tclassName={ containerClass }\n\t\t\t\taria-label={ __( 'Patterns list' ) }\n\t\t\t>\n\t\t\t\t{ patterns.map( ( pattern ) => (\n\t\t\t\t\t<BlockPattern\n\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\tonSelect={ onBlockPatternSelect }\n\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t</div>\n\t);\n};\n\nfunction BlockPattern( { pattern, onSelect, composite } ) {\n\tconst baseClassName = 'block-editor-block-pattern-setup-list';\n\tconst { blocks, description, viewportWidth = 700 } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPattern,\n\t\t`${ baseClassName }__item-description`\n\t);\n\treturn (\n\t\t<div\n\t\t\tclassName={ `${ baseClassName }__list-item` }\n\t\t\taria-label={ pattern.title }\n\t\t\taria-describedby={ pattern.description ? descriptionId : undefined }\n\t\t>\n\t\t\t<CompositeItem\n\t\t\t\trole=\"option\"\n\t\t\t\tas=\"div\"\n\t\t\t\t{ ...composite }\n\t\t\t\tclassName={ `${ baseClassName }__item` }\n\t\t\t\tonClick={ () => onSelect( blocks ) }\n\t\t\t>\n\t\t\t\t<BlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t/>\n\t\t\t</CompositeItem>\n\t\t\t{ !! description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternSlide( { className, pattern, minHeight } ) {\n\tconst { blocks, title, description } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPatternSlide,\n\t\t'block-editor-block-pattern-setup-list__item-description'\n\t);\n\treturn (\n\t\t<li\n\t\t\tclassName={ `pattern-slide ${ className }` }\n\t\t\taria-label={ title }\n\t\t\taria-describedby={ description ? descriptionId : undefined }\n\t\t>\n\t\t\t<BlockPreview\n\t\t\t\tblocks={ blocks }\n\t\t\t\t__experimentalMinHeight={ minHeight }\n\t\t\t/>\n\t\t\t{ !! description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nconst BlockPatternSetup = ( {\n\tclientId,\n\tblockName,\n\tfilterPatternsFn,\n\tstartBlankComponent,\n\tonBlockPatternSelect,\n} ) => {\n\tconst [ viewMode, setViewMode ] = useState( VIEWMODES.carousel );\n\tconst [ activeSlide, setActiveSlide ] = useState( 0 );\n\tconst [ showBlank, setShowBlank ] = useState( false );\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst patterns = usePatternsSetup( clientId, blockName, filterPatternsFn );\n\tconst [\n\t\tcontentResizeListener,\n\t\t{ height: contentHeight },\n\t] = useResizeObserver();\n\n\tif ( ! patterns?.length || showBlank ) {\n\t\treturn startBlankComponent;\n\t}\n\n\tconst onBlockPatternSelectDefault = ( blocks ) => {\n\t\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\t\treplaceBlock( clientId, clonedBlocks );\n\t};\n\tconst onPatternSelectCallback =\n\t\tonBlockPatternSelect || onBlockPatternSelectDefault;\n\tconst onStartBlank = startBlankComponent\n\t\t? () => {\n\t\t\t\tsetShowBlank( true );\n\t\t }\n\t\t: undefined;\n\treturn (\n\t\t<>\n\t\t\t{ contentResizeListener }\n\t\t\t<div\n\t\t\t\tclassName={ `block-editor-block-pattern-setup view-mode-${ viewMode }` }\n\t\t\t>\n\t\t\t\t<SetupContent\n\t\t\t\t\tviewMode={ viewMode }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonBlockPatternSelect={ onPatternSelectCallback }\n\t\t\t\t\theight={ contentHeight - 2 * 60 }\n\t\t\t\t/>\n\t\t\t\t<SetupToolbar\n\t\t\t\t\tviewMode={ viewMode }\n\t\t\t\t\tsetViewMode={ setViewMode }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\ttotalSlides={ patterns.length }\n\t\t\t\t\thandleNext={ () => {\n\t\t\t\t\t\tsetActiveSlide( ( active ) => active + 1 );\n\t\t\t\t\t} }\n\t\t\t\t\thandlePrevious={ () => {\n\t\t\t\t\t\tsetActiveSlide( ( active ) => active - 1 );\n\t\t\t\t\t} }\n\t\t\t\t\tonBlockPatternSelect={ () => {\n\t\t\t\t\t\tonPatternSelectCallback(\n\t\t\t\t\t\t\tpatterns[ activeSlide ].blocks\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\tonStartBlank={ onStartBlank }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n\nexport default BlockPatternSetup;\n"]}
@@ -19,7 +19,7 @@ const Actions = _ref => {
19
19
  } = _ref;
20
20
  return createElement("div", {
21
21
  className: "block-editor-block-pattern-setup__actions"
22
- }, createElement(Button, {
22
+ }, onStartBlank && createElement(Button, {
23
23
  onClick: onStartBlank
24
24
  }, __('Start blank')), createElement(Button, {
25
25
  variant: "primary",
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-pattern-setup/setup-toolbar.js"],"names":["__","Button","chevronRight","chevronLeft","grid","stretchFullWidth","VIEWMODES","Actions","onStartBlank","onBlockPatternSelect","CarouselNavigation","handlePrevious","handleNext","activeSlide","totalSlides","SetupToolbar","viewMode","setViewMode","isCarouselView","carousel","displayControls"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SACCC,YADD,EAECC,WAFD,EAGCC,IAHD,EAICC,gBAJD,QAKO,kBALP;AAOA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,aAA1B;;AAEA,MAAMC,OAAO,GAAG;AAAA,MAAE;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,GAAF;AAAA,SACf;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,MAAD;AAAQ,IAAA,OAAO,EAAGD;AAAlB,KAAmCR,EAAE,CAAE,aAAF,CAArC,CADD,EAEC,cAAC,MAAD;AAAQ,IAAA,OAAO,EAAC,SAAhB;AAA0B,IAAA,OAAO,EAAGS;AAApC,KACGT,EAAE,CAAE,QAAF,CADL,CAFD,CADe;AAAA,CAAhB;;AASA,MAAMU,kBAAkB,GAAG;AAAA,MAAE;AAC5BC,IAAAA,cAD4B;AAE5BC,IAAAA,UAF4B;AAG5BC,IAAAA,WAH4B;AAI5BC,IAAAA;AAJ4B,GAAF;AAAA,SAM1B;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,MAAD;AACC,IAAA,IAAI,EAAGX,WADR;AAEC,IAAA,KAAK,EAAGH,EAAE,CAAE,kBAAF,CAFX;AAGC,IAAA,OAAO,EAAGW,cAHX;AAIC,IAAA,QAAQ,EAAGE,WAAW,KAAK;AAJ5B,IADD,EAOC,cAAC,MAAD;AACC,IAAA,IAAI,EAAGX,YADR;AAEC,IAAA,KAAK,EAAGF,EAAE,CAAE,cAAF,CAFX;AAGC,IAAA,OAAO,EAAGY,UAHX;AAIC,IAAA,QAAQ,EAAGC,WAAW,KAAKC,WAAW,GAAG;AAJ1C,IAPD,CAN0B;AAAA,CAA3B;;AAsBA,MAAMC,YAAY,GAAG,SASd;AAAA,MATgB;AACtBC,IAAAA,QADsB;AAEtBC,IAAAA,WAFsB;AAGtBN,IAAAA,cAHsB;AAItBC,IAAAA,UAJsB;AAKtBC,IAAAA,WALsB;AAMtBC,IAAAA,WANsB;AAOtBL,IAAAA,oBAPsB;AAQtBD,IAAAA;AARsB,GAShB;AACN,QAAMU,cAAc,GAAGF,QAAQ,KAAKV,SAAS,CAACa,QAA9C;AACA,QAAMC,eAAe,GACpB;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,MAAD;AACC,IAAA,IAAI,EAAGf,gBADR;AAEC,IAAA,KAAK,EAAGL,EAAE,CAAE,eAAF,CAFX;AAGC,IAAA,OAAO,EAAG,MAAMiB,WAAW,CAAEX,SAAS,CAACa,QAAZ,CAH5B;AAIC,IAAA,SAAS,EAAGD;AAJb,IADD,EAOC,cAAC,MAAD;AACC,IAAA,IAAI,EAAGd,IADR;AAEC,IAAA,KAAK,EAAGJ,EAAE,CAAE,WAAF,CAFX;AAGC,IAAA,OAAO,EAAG,MAAMiB,WAAW,CAAEX,SAAS,CAACF,IAAZ,CAH5B;AAIC,IAAA,SAAS,EAAGY,QAAQ,KAAKV,SAAS,CAACF;AAJpC,IAPD,CADD;AAgBA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGc,cAAc,IACf,cAAC,kBAAD;AACC,IAAA,cAAc,EAAGP,cADlB;AAEC,IAAA,UAAU,EAAGC,UAFd;AAGC,IAAA,WAAW,EAAGC,WAHf;AAIC,IAAA,WAAW,EAAGC;AAJf,IAFF,EASGM,eATH,EAUGF,cAAc,IACf,cAAC,OAAD;AACC,IAAA,oBAAoB,EAAGT,oBADxB;AAEC,IAAA,YAAY,EAAGD;AAFhB,IAXF,CADD;AAmBA,CA9CD;;AAgDA,eAAeO,YAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport {\n\tchevronRight,\n\tchevronLeft,\n\tgrid,\n\tstretchFullWidth,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { VIEWMODES } from './constants';\n\nconst Actions = ( { onStartBlank, onBlockPatternSelect } ) => (\n\t<div className=\"block-editor-block-pattern-setup__actions\">\n\t\t<Button onClick={ onStartBlank }>{ __( 'Start blank' ) }</Button>\n\t\t<Button variant=\"primary\" onClick={ onBlockPatternSelect }>\n\t\t\t{ __( 'Choose' ) }\n\t\t</Button>\n\t</div>\n);\n\nconst CarouselNavigation = ( {\n\thandlePrevious,\n\thandleNext,\n\tactiveSlide,\n\ttotalSlides,\n} ) => (\n\t<div className=\"block-editor-block-pattern-setup__navigation\">\n\t\t<Button\n\t\t\ticon={ chevronLeft }\n\t\t\tlabel={ __( 'Previous pattern' ) }\n\t\t\tonClick={ handlePrevious }\n\t\t\tdisabled={ activeSlide === 0 }\n\t\t/>\n\t\t<Button\n\t\t\ticon={ chevronRight }\n\t\t\tlabel={ __( 'Next pattern' ) }\n\t\t\tonClick={ handleNext }\n\t\t\tdisabled={ activeSlide === totalSlides - 1 }\n\t\t/>\n\t</div>\n);\n\nconst SetupToolbar = ( {\n\tviewMode,\n\tsetViewMode,\n\thandlePrevious,\n\thandleNext,\n\tactiveSlide,\n\ttotalSlides,\n\tonBlockPatternSelect,\n\tonStartBlank,\n} ) => {\n\tconst isCarouselView = viewMode === VIEWMODES.carousel;\n\tconst displayControls = (\n\t\t<div className=\"block-editor-block-pattern-setup__display-controls\">\n\t\t\t<Button\n\t\t\t\ticon={ stretchFullWidth }\n\t\t\t\tlabel={ __( 'Carousel view' ) }\n\t\t\t\tonClick={ () => setViewMode( VIEWMODES.carousel ) }\n\t\t\t\tisPressed={ isCarouselView }\n\t\t\t/>\n\t\t\t<Button\n\t\t\t\ticon={ grid }\n\t\t\t\tlabel={ __( 'Grid view' ) }\n\t\t\t\tonClick={ () => setViewMode( VIEWMODES.grid ) }\n\t\t\t\tisPressed={ viewMode === VIEWMODES.grid }\n\t\t\t/>\n\t\t</div>\n\t);\n\treturn (\n\t\t<div className=\"block-editor-block-pattern-setup__toolbar\">\n\t\t\t{ isCarouselView && (\n\t\t\t\t<CarouselNavigation\n\t\t\t\t\thandlePrevious={ handlePrevious }\n\t\t\t\t\thandleNext={ handleNext }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\ttotalSlides={ totalSlides }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ displayControls }\n\t\t\t{ isCarouselView && (\n\t\t\t\t<Actions\n\t\t\t\t\tonBlockPatternSelect={ onBlockPatternSelect }\n\t\t\t\t\tonStartBlank={ onStartBlank }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n};\n\nexport default SetupToolbar;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-pattern-setup/setup-toolbar.js"],"names":["__","Button","chevronRight","chevronLeft","grid","stretchFullWidth","VIEWMODES","Actions","onStartBlank","onBlockPatternSelect","CarouselNavigation","handlePrevious","handleNext","activeSlide","totalSlides","SetupToolbar","viewMode","setViewMode","isCarouselView","carousel","displayControls"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SACCC,YADD,EAECC,WAFD,EAGCC,IAHD,EAICC,gBAJD,QAKO,kBALP;AAOA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,aAA1B;;AAEA,MAAMC,OAAO,GAAG;AAAA,MAAE;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,GAAF;AAAA,SACf;AAAK,IAAA,SAAS,EAAC;AAAf,KACGD,YAAY,IACb,cAAC,MAAD;AAAQ,IAAA,OAAO,EAAGA;AAAlB,KAAmCR,EAAE,CAAE,aAAF,CAArC,CAFF,EAIC,cAAC,MAAD;AAAQ,IAAA,OAAO,EAAC,SAAhB;AAA0B,IAAA,OAAO,EAAGS;AAApC,KACGT,EAAE,CAAE,QAAF,CADL,CAJD,CADe;AAAA,CAAhB;;AAWA,MAAMU,kBAAkB,GAAG;AAAA,MAAE;AAC5BC,IAAAA,cAD4B;AAE5BC,IAAAA,UAF4B;AAG5BC,IAAAA,WAH4B;AAI5BC,IAAAA;AAJ4B,GAAF;AAAA,SAM1B;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,MAAD;AACC,IAAA,IAAI,EAAGX,WADR;AAEC,IAAA,KAAK,EAAGH,EAAE,CAAE,kBAAF,CAFX;AAGC,IAAA,OAAO,EAAGW,cAHX;AAIC,IAAA,QAAQ,EAAGE,WAAW,KAAK;AAJ5B,IADD,EAOC,cAAC,MAAD;AACC,IAAA,IAAI,EAAGX,YADR;AAEC,IAAA,KAAK,EAAGF,EAAE,CAAE,cAAF,CAFX;AAGC,IAAA,OAAO,EAAGY,UAHX;AAIC,IAAA,QAAQ,EAAGC,WAAW,KAAKC,WAAW,GAAG;AAJ1C,IAPD,CAN0B;AAAA,CAA3B;;AAsBA,MAAMC,YAAY,GAAG,SASd;AAAA,MATgB;AACtBC,IAAAA,QADsB;AAEtBC,IAAAA,WAFsB;AAGtBN,IAAAA,cAHsB;AAItBC,IAAAA,UAJsB;AAKtBC,IAAAA,WALsB;AAMtBC,IAAAA,WANsB;AAOtBL,IAAAA,oBAPsB;AAQtBD,IAAAA;AARsB,GAShB;AACN,QAAMU,cAAc,GAAGF,QAAQ,KAAKV,SAAS,CAACa,QAA9C;AACA,QAAMC,eAAe,GACpB;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,MAAD;AACC,IAAA,IAAI,EAAGf,gBADR;AAEC,IAAA,KAAK,EAAGL,EAAE,CAAE,eAAF,CAFX;AAGC,IAAA,OAAO,EAAG,MAAMiB,WAAW,CAAEX,SAAS,CAACa,QAAZ,CAH5B;AAIC,IAAA,SAAS,EAAGD;AAJb,IADD,EAOC,cAAC,MAAD;AACC,IAAA,IAAI,EAAGd,IADR;AAEC,IAAA,KAAK,EAAGJ,EAAE,CAAE,WAAF,CAFX;AAGC,IAAA,OAAO,EAAG,MAAMiB,WAAW,CAAEX,SAAS,CAACF,IAAZ,CAH5B;AAIC,IAAA,SAAS,EAAGY,QAAQ,KAAKV,SAAS,CAACF;AAJpC,IAPD,CADD;AAgBA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGc,cAAc,IACf,cAAC,kBAAD;AACC,IAAA,cAAc,EAAGP,cADlB;AAEC,IAAA,UAAU,EAAGC,UAFd;AAGC,IAAA,WAAW,EAAGC,WAHf;AAIC,IAAA,WAAW,EAAGC;AAJf,IAFF,EASGM,eATH,EAUGF,cAAc,IACf,cAAC,OAAD;AACC,IAAA,oBAAoB,EAAGT,oBADxB;AAEC,IAAA,YAAY,EAAGD;AAFhB,IAXF,CADD;AAmBA,CA9CD;;AAgDA,eAAeO,YAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport {\n\tchevronRight,\n\tchevronLeft,\n\tgrid,\n\tstretchFullWidth,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { VIEWMODES } from './constants';\n\nconst Actions = ( { onStartBlank, onBlockPatternSelect } ) => (\n\t<div className=\"block-editor-block-pattern-setup__actions\">\n\t\t{ onStartBlank && (\n\t\t\t<Button onClick={ onStartBlank }>{ __( 'Start blank' ) }</Button>\n\t\t) }\n\t\t<Button variant=\"primary\" onClick={ onBlockPatternSelect }>\n\t\t\t{ __( 'Choose' ) }\n\t\t</Button>\n\t</div>\n);\n\nconst CarouselNavigation = ( {\n\thandlePrevious,\n\thandleNext,\n\tactiveSlide,\n\ttotalSlides,\n} ) => (\n\t<div className=\"block-editor-block-pattern-setup__navigation\">\n\t\t<Button\n\t\t\ticon={ chevronLeft }\n\t\t\tlabel={ __( 'Previous pattern' ) }\n\t\t\tonClick={ handlePrevious }\n\t\t\tdisabled={ activeSlide === 0 }\n\t\t/>\n\t\t<Button\n\t\t\ticon={ chevronRight }\n\t\t\tlabel={ __( 'Next pattern' ) }\n\t\t\tonClick={ handleNext }\n\t\t\tdisabled={ activeSlide === totalSlides - 1 }\n\t\t/>\n\t</div>\n);\n\nconst SetupToolbar = ( {\n\tviewMode,\n\tsetViewMode,\n\thandlePrevious,\n\thandleNext,\n\tactiveSlide,\n\ttotalSlides,\n\tonBlockPatternSelect,\n\tonStartBlank,\n} ) => {\n\tconst isCarouselView = viewMode === VIEWMODES.carousel;\n\tconst displayControls = (\n\t\t<div className=\"block-editor-block-pattern-setup__display-controls\">\n\t\t\t<Button\n\t\t\t\ticon={ stretchFullWidth }\n\t\t\t\tlabel={ __( 'Carousel view' ) }\n\t\t\t\tonClick={ () => setViewMode( VIEWMODES.carousel ) }\n\t\t\t\tisPressed={ isCarouselView }\n\t\t\t/>\n\t\t\t<Button\n\t\t\t\ticon={ grid }\n\t\t\t\tlabel={ __( 'Grid view' ) }\n\t\t\t\tonClick={ () => setViewMode( VIEWMODES.grid ) }\n\t\t\t\tisPressed={ viewMode === VIEWMODES.grid }\n\t\t\t/>\n\t\t</div>\n\t);\n\treturn (\n\t\t<div className=\"block-editor-block-pattern-setup__toolbar\">\n\t\t\t{ isCarouselView && (\n\t\t\t\t<CarouselNavigation\n\t\t\t\t\thandlePrevious={ handlePrevious }\n\t\t\t\t\thandleNext={ handleNext }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\ttotalSlides={ totalSlides }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ displayControls }\n\t\t\t{ isCarouselView && (\n\t\t\t\t<Actions\n\t\t\t\t\tonBlockPatternSelect={ onBlockPatternSelect }\n\t\t\t\t\tonStartBlank={ onStartBlank }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n};\n\nexport default SetupToolbar;\n"]}