@wordpress/block-editor 8.5.7 → 9.1.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 (462) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +5 -2
  3. package/build/components/block-alignment-control/constants.js +48 -0
  4. package/build/components/block-alignment-control/constants.js.map +1 -0
  5. package/build/components/block-alignment-control/ui.js +9 -40
  6. package/build/components/block-alignment-control/ui.js.map +1 -1
  7. package/build/components/block-alignment-control/ui.native.js +92 -0
  8. package/build/components/block-alignment-control/ui.native.js.map +1 -0
  9. package/build/components/block-alignment-matrix-control/index.js +1 -6
  10. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  11. package/build/components/block-content-overlay/index.js +5 -74
  12. package/build/components/block-content-overlay/index.js.map +1 -1
  13. package/build/components/block-draggable/draggable-chip.native.js +64 -0
  14. package/build/components/block-draggable/draggable-chip.native.js.map +1 -0
  15. package/build/components/block-draggable/dropping-insertion-point.native.js +157 -0
  16. package/build/components/block-draggable/dropping-insertion-point.native.js.map +1 -0
  17. package/build/components/block-draggable/index.native.js +484 -0
  18. package/build/components/block-draggable/index.native.js.map +1 -0
  19. package/build/components/block-draggable/use-scroll-when-dragging.native.js +130 -0
  20. package/build/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -0
  21. package/build/components/block-list/block-list-context.native.js +195 -0
  22. package/build/components/block-list/block-list-context.native.js.map +1 -0
  23. package/build/components/block-list/block-list-item-cell.native.js +67 -0
  24. package/build/components/block-list/block-list-item-cell.native.js.map +1 -0
  25. package/build/components/block-list/block-list-item.native.js +12 -9
  26. package/build/components/block-list/block-list-item.native.js.map +1 -1
  27. package/build/components/block-list/block.native.js +29 -6
  28. package/build/components/block-list/block.native.js.map +1 -1
  29. package/build/components/block-list/index.native.js +75 -23
  30. package/build/components/block-list/index.native.js.map +1 -1
  31. package/build/components/block-list/use-block-props/index.js +8 -4
  32. package/build/components/block-list/use-block-props/index.js.map +1 -1
  33. package/build/components/block-list/use-block-props/use-block-class-names.js +1 -7
  34. package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  35. package/build/components/block-list/use-in-between-inserter.js +1 -1
  36. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  37. package/build/components/block-lock/modal.js +34 -4
  38. package/build/components/block-lock/modal.js.map +1 -1
  39. package/build/components/block-lock/toolbar.js +2 -1
  40. package/build/components/block-lock/toolbar.js.map +1 -1
  41. package/build/components/block-lock/use-block-lock.js +4 -1
  42. package/build/components/block-lock/use-block-lock.js.map +1 -1
  43. package/build/components/block-mobile-toolbar/index.native.js +9 -3
  44. package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
  45. package/build/components/block-mover/button.js +4 -4
  46. package/build/components/block-mover/button.js.map +1 -1
  47. package/build/components/block-mover/index.js +39 -65
  48. package/build/components/block-mover/index.js.map +1 -1
  49. package/build/components/block-mover/index.native.js +17 -4
  50. package/build/components/block-mover/index.native.js.map +1 -1
  51. package/build/components/block-navigation/dropdown.js +11 -5
  52. package/build/components/block-navigation/dropdown.js.map +1 -1
  53. package/build/components/block-popover/inbetween.js +191 -0
  54. package/build/components/block-popover/inbetween.js.map +1 -0
  55. package/build/components/block-popover/index.js +85 -0
  56. package/build/components/block-popover/index.js.map +1 -0
  57. package/build/components/{block-tools → block-popover}/use-popover-scroll.js +4 -1
  58. package/build/components/block-popover/use-popover-scroll.js.map +1 -0
  59. package/build/components/block-preview/index.js +1 -1
  60. package/build/components/block-preview/index.js.map +1 -1
  61. package/build/components/block-styles/index.js +1 -10
  62. package/build/components/block-styles/index.js.map +1 -1
  63. package/build/components/block-tools/back-compat.js +2 -2
  64. package/build/components/block-tools/back-compat.js.map +1 -1
  65. package/build/components/block-tools/block-selection-button.js +4 -2
  66. package/build/components/block-tools/block-selection-button.js.map +1 -1
  67. package/build/components/block-tools/index.js +5 -5
  68. package/build/components/block-tools/index.js.map +1 -1
  69. package/build/components/block-tools/insertion-point.js +14 -121
  70. package/build/components/block-tools/insertion-point.js.map +1 -1
  71. package/build/components/block-tools/selected-block-popover.js +216 -0
  72. package/build/components/block-tools/selected-block-popover.js.map +1 -0
  73. package/build/components/border-radius-control/input-controls.js +10 -3
  74. package/build/components/border-radius-control/input-controls.js.map +1 -1
  75. package/build/components/color-style-selector/index.js +9 -0
  76. package/build/components/color-style-selector/index.js.map +1 -1
  77. package/build/components/colors-gradients/dropdown.js +149 -44
  78. package/build/components/colors-gradients/dropdown.js.map +1 -1
  79. package/build/components/duotone-control/index.js +5 -1
  80. package/build/components/duotone-control/index.js.map +1 -1
  81. package/build/components/image-editor/use-save-image.js +3 -1
  82. package/build/components/image-editor/use-save-image.js.map +1 -1
  83. package/build/components/index.js +5 -23
  84. package/build/components/index.js.map +1 -1
  85. package/build/components/inserter/index.native.js +31 -9
  86. package/build/components/inserter/index.native.js.map +1 -1
  87. package/build/components/link-control/constants.js +11 -1
  88. package/build/components/link-control/constants.js.map +1 -1
  89. package/build/components/link-control/search-results.js +4 -3
  90. package/build/components/link-control/search-results.js.map +1 -1
  91. package/build/components/link-control/use-search-handler.js +4 -4
  92. package/build/components/link-control/use-search-handler.js.map +1 -1
  93. package/build/components/list-view/block.js +15 -15
  94. package/build/components/list-view/block.js.map +1 -1
  95. package/build/components/list-view/branch.js +9 -13
  96. package/build/components/list-view/branch.js.map +1 -1
  97. package/build/components/list-view/context.js +1 -4
  98. package/build/components/list-view/context.js.map +1 -1
  99. package/build/components/list-view/drop-indicator.js +0 -1
  100. package/build/components/list-view/drop-indicator.js.map +1 -1
  101. package/build/components/list-view/index.js +15 -32
  102. package/build/components/list-view/index.js.map +1 -1
  103. package/build/components/navigable-toolbar/index.js +12 -2
  104. package/build/components/navigable-toolbar/index.js.map +1 -1
  105. package/build/components/rich-text/format-toolbar-container.js +0 -1
  106. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  107. package/build/components/rich-text/index.js +1 -6
  108. package/build/components/rich-text/index.js.map +1 -1
  109. package/build/components/rich-text/index.native.js +0 -4
  110. package/build/components/rich-text/index.native.js.map +1 -1
  111. package/build/components/url-input/index.js +11 -4
  112. package/build/components/url-input/index.js.map +1 -1
  113. package/build/components/use-block-display-information/index.js +3 -1
  114. package/build/components/use-block-display-information/index.js.map +1 -1
  115. package/build/components/use-block-drop-zone/index.native.js +167 -0
  116. package/build/components/use-block-drop-zone/index.native.js.map +1 -0
  117. package/build/components/use-on-block-drop/index.native.js +95 -0
  118. package/build/components/use-on-block-drop/index.native.js.map +1 -0
  119. package/build/components/use-setting/index.js +42 -18
  120. package/build/components/use-setting/index.js.map +1 -1
  121. package/build/hooks/anchor.js.map +1 -1
  122. package/build/hooks/border.js +463 -44
  123. package/build/hooks/border.js.map +1 -1
  124. package/build/hooks/color-panel.js +14 -7
  125. package/build/hooks/color-panel.js.map +1 -1
  126. package/build/hooks/dimensions.js +2 -2
  127. package/build/hooks/dimensions.js.map +1 -1
  128. package/build/hooks/index.js +3 -1
  129. package/build/hooks/index.js.map +1 -1
  130. package/build/hooks/margin.js +64 -12
  131. package/build/hooks/margin.js.map +1 -1
  132. package/build/hooks/padding.js +60 -12
  133. package/build/hooks/padding.js.map +1 -1
  134. package/build/hooks/settings.js +32 -0
  135. package/build/hooks/settings.js.map +1 -0
  136. package/build/hooks/style.js +14 -13
  137. package/build/hooks/style.js.map +1 -1
  138. package/build/hooks/typography.js +6 -2
  139. package/build/hooks/typography.js.map +1 -1
  140. package/build/hooks/use-border-props.js +22 -32
  141. package/build/hooks/use-border-props.js.map +1 -1
  142. package/build/store/actions.js +14 -2
  143. package/build/store/actions.js.map +1 -1
  144. package/build/store/defaults.js +0 -1
  145. package/build/store/defaults.js.map +1 -1
  146. package/build/store/reducer.js +0 -26
  147. package/build/store/reducer.js.map +1 -1
  148. package/build/store/selectors.js +47 -15
  149. package/build/store/selectors.js.map +1 -1
  150. package/build-module/components/block-alignment-control/constants.js +36 -0
  151. package/build-module/components/block-alignment-control/constants.js.map +1 -0
  152. package/build-module/components/block-alignment-control/ui.js +4 -35
  153. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  154. package/build-module/components/block-alignment-control/ui.native.js +78 -0
  155. package/build-module/components/block-alignment-control/ui.native.js.map +1 -0
  156. package/build-module/components/block-alignment-matrix-control/index.js +1 -6
  157. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  158. package/build-module/components/block-content-overlay/index.js +4 -70
  159. package/build-module/components/block-content-overlay/index.js.map +1 -1
  160. package/build-module/components/block-draggable/draggable-chip.native.js +50 -0
  161. package/build-module/components/block-draggable/draggable-chip.native.js.map +1 -0
  162. package/build-module/components/block-draggable/dropping-insertion-point.native.js +137 -0
  163. package/build-module/components/block-draggable/dropping-insertion-point.native.js.map +1 -0
  164. package/build-module/components/block-draggable/index.native.js +449 -0
  165. package/build-module/components/block-draggable/index.native.js.map +1 -0
  166. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js +120 -0
  167. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -0
  168. package/build-module/components/block-list/block-list-context.native.js +179 -0
  169. package/build-module/components/block-list/block-list-context.native.js.map +1 -0
  170. package/build-module/components/block-list/block-list-item-cell.native.js +59 -0
  171. package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -0
  172. package/build-module/components/block-list/block-list-item.native.js +12 -9
  173. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  174. package/build-module/components/block-list/block.native.js +28 -6
  175. package/build-module/components/block-list/block.native.js.map +1 -1
  176. package/build-module/components/block-list/index.native.js +72 -23
  177. package/build-module/components/block-list/index.native.js.map +1 -1
  178. package/build-module/components/block-list/use-block-props/index.js +9 -5
  179. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  180. package/build-module/components/block-list/use-block-props/use-block-class-names.js +1 -7
  181. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  182. package/build-module/components/block-list/use-in-between-inserter.js +1 -1
  183. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  184. package/build-module/components/block-lock/modal.js +34 -5
  185. package/build-module/components/block-lock/modal.js.map +1 -1
  186. package/build-module/components/block-lock/toolbar.js +2 -1
  187. package/build-module/components/block-lock/toolbar.js.map +1 -1
  188. package/build-module/components/block-lock/use-block-lock.js +4 -1
  189. package/build-module/components/block-lock/use-block-lock.js.map +1 -1
  190. package/build-module/components/block-mobile-toolbar/index.native.js +8 -3
  191. package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
  192. package/build-module/components/block-mover/button.js +5 -5
  193. package/build-module/components/block-mover/button.js.map +1 -1
  194. package/build-module/components/block-mover/index.js +38 -63
  195. package/build-module/components/block-mover/index.js.map +1 -1
  196. package/build-module/components/block-mover/index.native.js +18 -5
  197. package/build-module/components/block-mover/index.native.js.map +1 -1
  198. package/build-module/components/block-navigation/dropdown.js +10 -5
  199. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  200. package/build-module/components/block-popover/inbetween.js +173 -0
  201. package/build-module/components/block-popover/inbetween.js.map +1 -0
  202. package/build-module/components/block-popover/index.js +72 -0
  203. package/build-module/components/block-popover/index.js.map +1 -0
  204. package/build-module/components/{block-tools → block-popover}/use-popover-scroll.js +3 -1
  205. package/build-module/components/block-popover/use-popover-scroll.js.map +1 -0
  206. package/build-module/components/block-preview/index.js +1 -1
  207. package/build-module/components/block-preview/index.js.map +1 -1
  208. package/build-module/components/block-styles/index.js +1 -9
  209. package/build-module/components/block-styles/index.js.map +1 -1
  210. package/build-module/components/block-tools/back-compat.js +1 -1
  211. package/build-module/components/block-tools/back-compat.js.map +1 -1
  212. package/build-module/components/block-tools/block-selection-button.js +3 -2
  213. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  214. package/build-module/components/block-tools/index.js +3 -3
  215. package/build-module/components/block-tools/index.js.map +1 -1
  216. package/build-module/components/block-tools/insertion-point.js +16 -121
  217. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  218. package/build-module/components/block-tools/selected-block-popover.js +199 -0
  219. package/build-module/components/block-tools/selected-block-popover.js.map +1 -0
  220. package/build-module/components/border-radius-control/input-controls.js +11 -4
  221. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  222. package/build-module/components/color-style-selector/index.js +6 -0
  223. package/build-module/components/color-style-selector/index.js.map +1 -1
  224. package/build-module/components/colors-gradients/dropdown.js +151 -46
  225. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  226. package/build-module/components/duotone-control/index.js +4 -1
  227. package/build-module/components/duotone-control/index.js.map +1 -1
  228. package/build-module/components/image-editor/use-save-image.js +2 -1
  229. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  230. package/build-module/components/index.js +1 -3
  231. package/build-module/components/index.js.map +1 -1
  232. package/build-module/components/inserter/index.native.js +32 -11
  233. package/build-module/components/inserter/index.native.js.map +1 -1
  234. package/build-module/components/link-control/constants.js +5 -0
  235. package/build-module/components/link-control/constants.js.map +1 -1
  236. package/build-module/components/link-control/search-results.js +3 -4
  237. package/build-module/components/link-control/search-results.js.map +1 -1
  238. package/build-module/components/link-control/use-search-handler.js +5 -5
  239. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  240. package/build-module/components/list-view/block.js +15 -16
  241. package/build-module/components/list-view/block.js.map +1 -1
  242. package/build-module/components/list-view/branch.js +9 -13
  243. package/build-module/components/list-view/branch.js.map +1 -1
  244. package/build-module/components/list-view/context.js +1 -4
  245. package/build-module/components/list-view/context.js.map +1 -1
  246. package/build-module/components/list-view/drop-indicator.js +0 -1
  247. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  248. package/build-module/components/list-view/index.js +15 -31
  249. package/build-module/components/list-view/index.js.map +1 -1
  250. package/build-module/components/navigable-toolbar/index.js +12 -2
  251. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  252. package/build-module/components/rich-text/format-toolbar-container.js +0 -1
  253. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  254. package/build-module/components/rich-text/index.js +1 -5
  255. package/build-module/components/rich-text/index.js.map +1 -1
  256. package/build-module/components/rich-text/index.native.js +0 -4
  257. package/build-module/components/rich-text/index.native.js.map +1 -1
  258. package/build-module/components/url-input/index.js +11 -4
  259. package/build-module/components/url-input/index.js.map +1 -1
  260. package/build-module/components/use-block-display-information/index.js +3 -1
  261. package/build-module/components/use-block-display-information/index.js.map +1 -1
  262. package/build-module/components/use-block-drop-zone/index.native.js +148 -0
  263. package/build-module/components/use-block-drop-zone/index.native.js.map +1 -0
  264. package/build-module/components/use-on-block-drop/index.native.js +83 -0
  265. package/build-module/components/use-on-block-drop/index.native.js.map +1 -0
  266. package/build-module/components/use-setting/index.js +43 -19
  267. package/build-module/components/use-setting/index.js.map +1 -1
  268. package/build-module/hooks/anchor.js.map +1 -1
  269. package/build-module/hooks/border.js +453 -44
  270. package/build-module/hooks/border.js.map +1 -1
  271. package/build-module/hooks/color-panel.js +11 -6
  272. package/build-module/hooks/color-panel.js.map +1 -1
  273. package/build-module/hooks/dimensions.js +5 -5
  274. package/build-module/hooks/dimensions.js.map +1 -1
  275. package/build-module/hooks/index.js +2 -1
  276. package/build-module/hooks/index.js.map +1 -1
  277. package/build-module/hooks/margin.js +61 -13
  278. package/build-module/hooks/margin.js.map +1 -1
  279. package/build-module/hooks/padding.js +57 -13
  280. package/build-module/hooks/padding.js.map +1 -1
  281. package/build-module/hooks/settings.js +29 -0
  282. package/build-module/hooks/settings.js.map +1 -0
  283. package/build-module/hooks/style.js +15 -14
  284. package/build-module/hooks/style.js.map +1 -1
  285. package/build-module/hooks/typography.js +6 -2
  286. package/build-module/hooks/typography.js.map +1 -1
  287. package/build-module/hooks/use-border-props.js +21 -30
  288. package/build-module/hooks/use-border-props.js.map +1 -1
  289. package/build-module/store/actions.js +14 -2
  290. package/build-module/store/actions.js.map +1 -1
  291. package/build-module/store/defaults.js +0 -1
  292. package/build-module/store/defaults.js.map +1 -1
  293. package/build-module/store/reducer.js +0 -24
  294. package/build-module/store/reducer.js.map +1 -1
  295. package/build-module/store/selectors.js +44 -15
  296. package/build-module/store/selectors.js.map +1 -1
  297. package/build-style/style-rtl.css +148 -410
  298. package/build-style/style.css +148 -410
  299. package/package.json +28 -28
  300. package/src/components/block-alignment-control/constants.js +45 -0
  301. package/src/components/block-alignment-control/ui.js +69 -109
  302. package/src/components/block-alignment-control/ui.native.js +86 -0
  303. package/src/components/block-alignment-matrix-control/index.js +1 -5
  304. package/src/components/block-content-overlay/index.js +9 -79
  305. package/src/components/block-content-overlay/style.scss +2 -11
  306. package/src/components/block-draggable/draggable-chip.native.js +49 -0
  307. package/src/components/block-draggable/dropping-insertion-point.native.js +181 -0
  308. package/src/components/block-draggable/dropping-insertion-point.native.scss +8 -0
  309. package/src/components/block-draggable/index.native.js +458 -0
  310. package/src/components/block-draggable/style.native.scss +19 -0
  311. package/src/components/block-draggable/use-scroll-when-dragging.native.js +135 -0
  312. package/src/components/block-list/block-list-context.native.js +175 -0
  313. package/src/components/block-list/block-list-item-cell.native.js +49 -0
  314. package/src/components/block-list/block-list-item.native.js +7 -11
  315. package/src/components/block-list/block.native.js +38 -8
  316. package/src/components/block-list/index.native.js +54 -13
  317. package/src/components/block-list/style.scss +7 -18
  318. package/src/components/block-list/test/block-list-context.native.js +253 -0
  319. package/src/components/block-list/test/fixtures/block-list-context.native.js +79 -0
  320. package/src/components/block-list/use-block-props/index.js +10 -5
  321. package/src/components/block-list/use-block-props/use-block-class-names.js +1 -11
  322. package/src/components/block-list/use-in-between-inserter.js +1 -1
  323. package/src/components/block-lock/modal.js +42 -3
  324. package/src/components/block-lock/toolbar.js +2 -2
  325. package/src/components/block-lock/use-block-lock.js +4 -1
  326. package/src/components/block-mobile-toolbar/index.native.js +8 -1
  327. package/src/components/block-mover/button.js +5 -7
  328. package/src/components/block-mover/index.js +37 -60
  329. package/src/components/block-mover/index.native.js +22 -6
  330. package/src/components/block-mover/stories/index.js +110 -0
  331. package/src/components/block-mover/style.scss +48 -138
  332. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +6 -0
  333. package/src/components/block-navigation/dropdown.js +12 -8
  334. package/src/components/block-popover/README.md +41 -0
  335. package/src/components/block-popover/inbetween.js +188 -0
  336. package/src/components/block-popover/index.js +75 -0
  337. package/src/components/block-popover/style.scss +28 -0
  338. package/src/components/{block-tools → block-popover}/use-popover-scroll.js +3 -1
  339. package/src/components/block-preview/index.js +1 -4
  340. package/src/components/block-styles/index.js +1 -12
  341. package/src/components/block-switcher/style.scss +2 -43
  342. package/src/components/block-toolbar/style.scss +0 -12
  343. package/src/components/block-tools/back-compat.js +1 -1
  344. package/src/components/block-tools/block-selection-button.js +3 -1
  345. package/src/components/block-tools/index.js +6 -4
  346. package/src/components/block-tools/insertion-point.js +19 -152
  347. package/src/components/block-tools/{block-popover.js → selected-block-popover.js} +24 -151
  348. package/src/components/block-tools/style.scss +12 -135
  349. package/src/components/border-radius-control/input-controls.js +16 -8
  350. package/src/components/border-radius-control/style.scss +7 -3
  351. package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
  352. package/src/components/color-style-selector/index.js +18 -9
  353. package/src/components/colors-gradients/dropdown.js +156 -62
  354. package/src/components/colors-gradients/style.scss +51 -23
  355. package/src/components/default-block-appender/style.scss +1 -2
  356. package/src/components/duotone-control/index.js +8 -1
  357. package/src/components/duotone-control/style.scss +1 -7
  358. package/src/components/gradients/README.md +29 -0
  359. package/src/components/image-editor/use-save-image.js +2 -1
  360. package/src/components/image-size-control/README.md +1 -1
  361. package/src/components/index.js +1 -3
  362. package/src/components/inserter/index.native.js +60 -25
  363. package/src/components/inserter/style.native.scss +25 -3
  364. package/src/components/inserter/style.scss +2 -1
  365. package/src/components/link-control/constants.js +11 -0
  366. package/src/components/link-control/search-results.js +4 -5
  367. package/src/components/link-control/use-search-handler.js +11 -5
  368. package/src/components/list-view/block.js +24 -34
  369. package/src/components/list-view/branch.js +10 -20
  370. package/src/components/list-view/context.js +1 -4
  371. package/src/components/list-view/drop-indicator.js +0 -1
  372. package/src/components/list-view/index.js +11 -41
  373. package/src/components/list-view/style.scss +2 -1
  374. package/src/components/navigable-toolbar/README.md +16 -0
  375. package/src/components/navigable-toolbar/index.js +12 -2
  376. package/src/components/preview-options/style.scss +0 -4
  377. package/src/components/rich-text/format-toolbar-container.js +0 -1
  378. package/src/components/rich-text/index.js +1 -3
  379. package/src/components/rich-text/index.native.js +0 -4
  380. package/src/components/rich-text/style.scss +2 -8
  381. package/src/components/url-input/index.js +9 -4
  382. package/src/components/use-block-display-information/index.js +2 -0
  383. package/src/components/use-block-drop-zone/index.native.js +173 -0
  384. package/src/components/use-on-block-drop/index.native.js +119 -0
  385. package/src/components/use-setting/index.js +57 -21
  386. package/src/hooks/anchor.js +1 -1
  387. package/src/hooks/border.js +429 -72
  388. package/src/hooks/color-panel.js +13 -9
  389. package/src/hooks/color.scss +0 -62
  390. package/src/hooks/dimensions.js +44 -38
  391. package/src/hooks/index.js +2 -1
  392. package/src/hooks/margin.js +64 -15
  393. package/src/hooks/padding.js +60 -15
  394. package/src/hooks/padding.scss +12 -0
  395. package/src/hooks/settings.js +32 -0
  396. package/src/hooks/style.js +25 -39
  397. package/src/hooks/test/settings.js +48 -0
  398. package/src/hooks/typography.js +2 -0
  399. package/src/hooks/use-border-props.js +15 -32
  400. package/src/store/actions.js +14 -2
  401. package/src/store/defaults.js +0 -1
  402. package/src/store/reducer.js +0 -21
  403. package/src/store/selectors.js +46 -15
  404. package/src/store/test/actions.js +0 -18
  405. package/src/store/test/reducer.js +0 -19
  406. package/src/store/test/selectors.js +17 -19
  407. package/src/style.scss +2 -3
  408. package/tsconfig.tsbuildinfo +1 -1
  409. package/build/components/block-mobile-toolbar/index.js +0 -42
  410. package/build/components/block-mobile-toolbar/index.js.map +0 -1
  411. package/build/components/block-tools/block-popover.js +0 -327
  412. package/build/components/block-tools/block-popover.js.map +0 -1
  413. package/build/components/block-tools/use-popover-scroll.js.map +0 -1
  414. package/build/components/border-style-control/index.js +0 -60
  415. package/build/components/border-style-control/index.js.map +0 -1
  416. package/build/components/colors-gradients/tools-panel-color-dropdown.js +0 -89
  417. package/build/components/colors-gradients/tools-panel-color-dropdown.js.map +0 -1
  418. package/build/components/list-view/appender.js +0 -93
  419. package/build/components/list-view/appender.js.map +0 -1
  420. package/build/components/list-view/list-item.js +0 -62
  421. package/build/components/list-view/list-item.js.map +0 -1
  422. package/build/components/rich-text/use-caret-in-format.js +0 -43
  423. package/build/components/rich-text/use-caret-in-format.js.map +0 -1
  424. package/build/hooks/border-color.js +0 -302
  425. package/build/hooks/border-color.js.map +0 -1
  426. package/build/hooks/border-style.js +0 -96
  427. package/build/hooks/border-style.js.map +0 -1
  428. package/build/hooks/border-width.js +0 -162
  429. package/build/hooks/border-width.js.map +0 -1
  430. package/build-module/components/block-mobile-toolbar/index.js +0 -31
  431. package/build-module/components/block-mobile-toolbar/index.js.map +0 -1
  432. package/build-module/components/block-tools/block-popover.js +0 -306
  433. package/build-module/components/block-tools/block-popover.js.map +0 -1
  434. package/build-module/components/block-tools/use-popover-scroll.js.map +0 -1
  435. package/build-module/components/border-style-control/index.js +0 -50
  436. package/build-module/components/border-style-control/index.js.map +0 -1
  437. package/build-module/components/colors-gradients/tools-panel-color-dropdown.js +0 -75
  438. package/build-module/components/colors-gradients/tools-panel-color-dropdown.js.map +0 -1
  439. package/build-module/components/list-view/appender.js +0 -76
  440. package/build-module/components/list-view/appender.js.map +0 -1
  441. package/build-module/components/list-view/list-item.js +0 -47
  442. package/build-module/components/list-view/list-item.js.map +0 -1
  443. package/build-module/components/rich-text/use-caret-in-format.js +0 -33
  444. package/build-module/components/rich-text/use-caret-in-format.js.map +0 -1
  445. package/build-module/hooks/border-color.js +0 -276
  446. package/build-module/hooks/border-color.js.map +0 -1
  447. package/build-module/hooks/border-style.js +0 -78
  448. package/build-module/hooks/border-style.js.map +0 -1
  449. package/build-module/hooks/border-width.js +0 -143
  450. package/build-module/hooks/border-width.js.map +0 -1
  451. package/src/components/block-alignment-matrix-control/style.scss +0 -10
  452. package/src/components/block-mobile-toolbar/index.js +0 -24
  453. package/src/components/block-mobile-toolbar/style.scss +0 -29
  454. package/src/components/border-style-control/index.js +0 -47
  455. package/src/components/border-style-control/style.scss +0 -18
  456. package/src/components/colors-gradients/tools-panel-color-dropdown.js +0 -85
  457. package/src/components/list-view/appender.js +0 -82
  458. package/src/components/list-view/list-item.js +0 -59
  459. package/src/components/rich-text/use-caret-in-format.js +0 -28
  460. package/src/hooks/border-color.js +0 -315
  461. package/src/hooks/border-style.js +0 -64
  462. package/src/hooks/border-width.js +0 -139
@@ -0,0 +1,36 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __, _x } from '@wordpress/i18n';
5
+ import { alignNone, positionCenter, positionLeft, positionRight, stretchFullWidth, stretchWide } from '@wordpress/icons';
6
+ export const BLOCK_ALIGNMENTS_CONTROLS = {
7
+ none: {
8
+ icon: alignNone,
9
+ title: _x('None', 'Alignment option')
10
+ },
11
+ left: {
12
+ icon: positionLeft,
13
+ title: __('Align left')
14
+ },
15
+ center: {
16
+ icon: positionCenter,
17
+ title: __('Align center')
18
+ },
19
+ right: {
20
+ icon: positionRight,
21
+ title: __('Align right')
22
+ },
23
+ wide: {
24
+ icon: stretchWide,
25
+ title: __('Wide width')
26
+ },
27
+ full: {
28
+ icon: stretchFullWidth,
29
+ title: __('Full width')
30
+ }
31
+ };
32
+ export const DEFAULT_CONTROL = 'none';
33
+ export const POPOVER_PROPS = {
34
+ isAlternate: true
35
+ };
36
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-alignment-control/constants.js"],"names":["__","_x","alignNone","positionCenter","positionLeft","positionRight","stretchFullWidth","stretchWide","BLOCK_ALIGNMENTS_CONTROLS","none","icon","title","left","center","right","wide","full","DEFAULT_CONTROL","POPOVER_PROPS","isAlternate"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,EAAb,QAAuB,iBAAvB;AACA,SACCC,SADD,EAECC,cAFD,EAGCC,YAHD,EAICC,aAJD,EAKCC,gBALD,EAMCC,WAND,QAOO,kBAPP;AASA,OAAO,MAAMC,yBAAyB,GAAG;AACxCC,EAAAA,IAAI,EAAE;AACLC,IAAAA,IAAI,EAAER,SADD;AAELS,IAAAA,KAAK,EAAEV,EAAE,CAAE,MAAF,EAAU,kBAAV;AAFJ,GADkC;AAKxCW,EAAAA,IAAI,EAAE;AACLF,IAAAA,IAAI,EAAEN,YADD;AAELO,IAAAA,KAAK,EAAEX,EAAE,CAAE,YAAF;AAFJ,GALkC;AASxCa,EAAAA,MAAM,EAAE;AACPH,IAAAA,IAAI,EAAEP,cADC;AAEPQ,IAAAA,KAAK,EAAEX,EAAE,CAAE,cAAF;AAFF,GATgC;AAaxCc,EAAAA,KAAK,EAAE;AACNJ,IAAAA,IAAI,EAAEL,aADA;AAENM,IAAAA,KAAK,EAAEX,EAAE,CAAE,aAAF;AAFH,GAbiC;AAiBxCe,EAAAA,IAAI,EAAE;AACLL,IAAAA,IAAI,EAAEH,WADD;AAELI,IAAAA,KAAK,EAAEX,EAAE,CAAE,YAAF;AAFJ,GAjBkC;AAqBxCgB,EAAAA,IAAI,EAAE;AACLN,IAAAA,IAAI,EAAEJ,gBADD;AAELK,IAAAA,KAAK,EAAEX,EAAE,CAAE,YAAF;AAFJ;AArBkC,CAAlC;AA2BP,OAAO,MAAMiB,eAAe,GAAG,MAAxB;AAEP,OAAO,MAAMC,aAAa,GAAG;AAC5BC,EAAAA,WAAW,EAAE;AADe,CAAtB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\talignNone,\n\tpositionCenter,\n\tpositionLeft,\n\tpositionRight,\n\tstretchFullWidth,\n\tstretchWide,\n} from '@wordpress/icons';\n\nexport const BLOCK_ALIGNMENTS_CONTROLS = {\n\tnone: {\n\t\ticon: alignNone,\n\t\ttitle: _x( 'None', 'Alignment option' ),\n\t},\n\tleft: {\n\t\ticon: positionLeft,\n\t\ttitle: __( 'Align left' ),\n\t},\n\tcenter: {\n\t\ticon: positionCenter,\n\t\ttitle: __( 'Align center' ),\n\t},\n\tright: {\n\t\ticon: positionRight,\n\t\ttitle: __( 'Align right' ),\n\t},\n\twide: {\n\t\ticon: stretchWide,\n\t\ttitle: __( 'Wide width' ),\n\t},\n\tfull: {\n\t\ticon: stretchFullWidth,\n\t\ttitle: __( 'Full width' ),\n\t},\n};\n\nexport const DEFAULT_CONTROL = 'none';\n\nexport const POPOVER_PROPS = {\n\tisAlternate: true,\n};\n"]}
@@ -9,45 +9,14 @@ import classNames from 'classnames';
9
9
  * WordPress dependencies
10
10
  */
11
11
 
12
- import { __, _x } from '@wordpress/i18n';
12
+ import { __ } from '@wordpress/i18n';
13
13
  import { ToolbarDropdownMenu, ToolbarGroup, MenuGroup, MenuItem } from '@wordpress/components';
14
- import { alignNone, positionCenter, positionLeft, positionRight, stretchFullWidth, stretchWide } from '@wordpress/icons';
15
- import { Platform } from '@wordpress/element';
16
14
  /**
17
15
  * Internal dependencies
18
16
  */
19
17
 
20
18
  import useAvailableAlignments from './use-available-alignments';
21
- const BLOCK_ALIGNMENTS_CONTROLS = {
22
- none: {
23
- icon: alignNone,
24
- title: _x('None', 'Alignment option')
25
- },
26
- left: {
27
- icon: positionLeft,
28
- title: __('Align left')
29
- },
30
- center: {
31
- icon: positionCenter,
32
- title: __('Align center')
33
- },
34
- right: {
35
- icon: positionRight,
36
- title: __('Align right')
37
- },
38
- wide: {
39
- icon: stretchWide,
40
- title: __('Wide width')
41
- },
42
- full: {
43
- icon: stretchFullWidth,
44
- title: __('Full width')
45
- }
46
- };
47
- const DEFAULT_CONTROL = 'none';
48
- const POPOVER_PROPS = {
49
- isAlternate: true
50
- };
19
+ import { BLOCK_ALIGNMENTS_CONTROLS, DEFAULT_CONTROL, POPOVER_PROPS } from './constants';
51
20
 
52
21
  function BlockAlignmentUI(_ref) {
53
22
  let {
@@ -79,8 +48,8 @@ function BlockAlignmentUI(_ref) {
79
48
  describedBy: __('Change alignment')
80
49
  }
81
50
  };
82
- const extraProps = isToolbar || Platform.isNative ? {
83
- isCollapsed: isToolbar ? isCollapsed : undefined,
51
+ const extraProps = isToolbar ? {
52
+ isCollapsed,
84
53
  controls: enabledControls.map(_ref2 => {
85
54
  let {
86
55
  name: controlName
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-alignment-control/ui.js"],"names":["classNames","__","_x","ToolbarDropdownMenu","ToolbarGroup","MenuGroup","MenuItem","alignNone","positionCenter","positionLeft","positionRight","stretchFullWidth","stretchWide","Platform","useAvailableAlignments","BLOCK_ALIGNMENTS_CONTROLS","none","icon","title","left","center","right","wide","full","DEFAULT_CONTROL","POPOVER_PROPS","isAlternate","BlockAlignmentUI","value","onChange","controls","isToolbar","isCollapsed","enabledControls","hasEnabledControls","length","onChangeAlignment","align","includes","undefined","activeAlignmentControl","defaultAlignmentControl","UIComponent","commonProps","popoverProps","label","toggleProps","describedBy","extraProps","isNative","map","name","controlName","isActive","role","onClick","children","onClose","info","isSelected"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n\tMenuGroup,\n\tMenuItem,\n} from '@wordpress/components';\nimport {\n\talignNone,\n\tpositionCenter,\n\tpositionLeft,\n\tpositionRight,\n\tstretchFullWidth,\n\tstretchWide,\n} from '@wordpress/icons';\nimport { Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useAvailableAlignments from './use-available-alignments';\n\nconst BLOCK_ALIGNMENTS_CONTROLS = {\n\tnone: {\n\t\ticon: alignNone,\n\t\ttitle: _x( 'None', 'Alignment option' ),\n\t},\n\tleft: {\n\t\ticon: positionLeft,\n\t\ttitle: __( 'Align left' ),\n\t},\n\tcenter: {\n\t\ticon: positionCenter,\n\t\ttitle: __( 'Align center' ),\n\t},\n\tright: {\n\t\ticon: positionRight,\n\t\ttitle: __( 'Align right' ),\n\t},\n\twide: {\n\t\ticon: stretchWide,\n\t\ttitle: __( 'Wide width' ),\n\t},\n\tfull: {\n\t\ticon: stretchFullWidth,\n\t\ttitle: __( 'Full width' ),\n\t},\n};\n\nconst DEFAULT_CONTROL = 'none';\n\nconst POPOVER_PROPS = {\n\tisAlternate: true,\n};\n\nfunction BlockAlignmentUI( {\n\tvalue,\n\tonChange,\n\tcontrols,\n\tisToolbar,\n\tisCollapsed = true,\n} ) {\n\tconst enabledControls = useAvailableAlignments( controls );\n\tconst hasEnabledControls = !! enabledControls.length;\n\n\tif ( ! hasEnabledControls ) {\n\t\treturn null;\n\t}\n\n\tfunction onChangeAlignment( align ) {\n\t\tonChange( [ value, 'none' ].includes( align ) ? undefined : align );\n\t}\n\n\tconst activeAlignmentControl = BLOCK_ALIGNMENTS_CONTROLS[ value ];\n\tconst defaultAlignmentControl =\n\t\tBLOCK_ALIGNMENTS_CONTROLS[ DEFAULT_CONTROL ];\n\n\tconst UIComponent = isToolbar ? ToolbarGroup : ToolbarDropdownMenu;\n\tconst commonProps = {\n\t\tpopoverProps: POPOVER_PROPS,\n\t\ticon: activeAlignmentControl\n\t\t\t? activeAlignmentControl.icon\n\t\t\t: defaultAlignmentControl.icon,\n\t\tlabel: __( 'Align' ),\n\t\ttoggleProps: { describedBy: __( 'Change alignment' ) },\n\t};\n\tconst extraProps =\n\t\tisToolbar || Platform.isNative\n\t\t\t? {\n\t\t\t\t\tisCollapsed: isToolbar ? isCollapsed : undefined,\n\t\t\t\t\tcontrols: enabledControls.map(\n\t\t\t\t\t\t( { name: controlName } ) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...BLOCK_ALIGNMENTS_CONTROLS[ controlName ],\n\t\t\t\t\t\t\t\tisActive:\n\t\t\t\t\t\t\t\t\tvalue === controlName ||\n\t\t\t\t\t\t\t\t\t( ! value && controlName === 'none' ),\n\t\t\t\t\t\t\t\trole: isCollapsed ? 'menuitemradio' : undefined,\n\t\t\t\t\t\t\t\tonClick: () => onChangeAlignment( controlName ),\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 }\n\t\t\t: {\n\t\t\t\t\tchildren: ( { onClose } ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<MenuGroup className=\"block-editor-block-alignment-control__menu-group\">\n\t\t\t\t\t\t\t\t\t{ enabledControls.map(\n\t\t\t\t\t\t\t\t\t\t( { name: controlName, info } ) => {\n\t\t\t\t\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\t\t\t\t\ticon,\n\t\t\t\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\t\t\t} = BLOCK_ALIGNMENTS_CONTROLS[\n\t\t\t\t\t\t\t\t\t\t\t\tcontrolName\n\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\t\t// If no value is provided, mark as selected the `none` option.\n\t\t\t\t\t\t\t\t\t\t\tconst isSelected =\n\t\t\t\t\t\t\t\t\t\t\t\tcontrolName === value ||\n\t\t\t\t\t\t\t\t\t\t\t\t( ! value &&\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontrolName === 'none' );\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ controlName }\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'components-dropdown-menu__menu-item',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'is-active': isSelected,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeAlignment(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrolName\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tinfo={ info }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\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</MenuGroup>\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 };\n\n\treturn <UIComponent { ...commonProps } { ...extraProps } />;\n}\n\nexport default BlockAlignmentUI;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-alignment-control/ui.js"],"names":["classNames","__","ToolbarDropdownMenu","ToolbarGroup","MenuGroup","MenuItem","useAvailableAlignments","BLOCK_ALIGNMENTS_CONTROLS","DEFAULT_CONTROL","POPOVER_PROPS","BlockAlignmentUI","value","onChange","controls","isToolbar","isCollapsed","enabledControls","hasEnabledControls","length","onChangeAlignment","align","includes","undefined","activeAlignmentControl","defaultAlignmentControl","UIComponent","commonProps","popoverProps","icon","label","toggleProps","describedBy","extraProps","map","name","controlName","isActive","role","onClick","children","onClose","info","title","isSelected"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n\tMenuGroup,\n\tMenuItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport useAvailableAlignments from './use-available-alignments';\nimport {\n\tBLOCK_ALIGNMENTS_CONTROLS,\n\tDEFAULT_CONTROL,\n\tPOPOVER_PROPS,\n} from './constants';\n\nfunction BlockAlignmentUI( {\n\tvalue,\n\tonChange,\n\tcontrols,\n\tisToolbar,\n\tisCollapsed = true,\n} ) {\n\tconst enabledControls = useAvailableAlignments( controls );\n\tconst hasEnabledControls = !! enabledControls.length;\n\n\tif ( ! hasEnabledControls ) {\n\t\treturn null;\n\t}\n\n\tfunction onChangeAlignment( align ) {\n\t\tonChange( [ value, 'none' ].includes( align ) ? undefined : align );\n\t}\n\n\tconst activeAlignmentControl = BLOCK_ALIGNMENTS_CONTROLS[ value ];\n\tconst defaultAlignmentControl =\n\t\tBLOCK_ALIGNMENTS_CONTROLS[ DEFAULT_CONTROL ];\n\n\tconst UIComponent = isToolbar ? ToolbarGroup : ToolbarDropdownMenu;\n\tconst commonProps = {\n\t\tpopoverProps: POPOVER_PROPS,\n\t\ticon: activeAlignmentControl\n\t\t\t? activeAlignmentControl.icon\n\t\t\t: defaultAlignmentControl.icon,\n\t\tlabel: __( 'Align' ),\n\t\ttoggleProps: { describedBy: __( 'Change alignment' ) },\n\t};\n\tconst extraProps = isToolbar\n\t\t? {\n\t\t\t\tisCollapsed,\n\t\t\t\tcontrols: enabledControls.map( ( { name: controlName } ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...BLOCK_ALIGNMENTS_CONTROLS[ controlName ],\n\t\t\t\t\t\tisActive:\n\t\t\t\t\t\t\tvalue === controlName ||\n\t\t\t\t\t\t\t( ! value && controlName === 'none' ),\n\t\t\t\t\t\trole: isCollapsed ? 'menuitemradio' : undefined,\n\t\t\t\t\t\tonClick: () => onChangeAlignment( controlName ),\n\t\t\t\t\t};\n\t\t\t\t} ),\n\t\t }\n\t\t: {\n\t\t\t\tchildren: ( { onClose } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup className=\"block-editor-block-alignment-control__menu-group\">\n\t\t\t\t\t\t\t\t{ enabledControls.map(\n\t\t\t\t\t\t\t\t\t( { name: controlName, info } ) => {\n\t\t\t\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\t\t\t\ticon,\n\t\t\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\t\t} = BLOCK_ALIGNMENTS_CONTROLS[\n\t\t\t\t\t\t\t\t\t\t\tcontrolName\n\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\t// If no value is provided, mark as selected the `none` option.\n\t\t\t\t\t\t\t\t\t\tconst isSelected =\n\t\t\t\t\t\t\t\t\t\t\tcontrolName === value ||\n\t\t\t\t\t\t\t\t\t\t\t( ! value &&\n\t\t\t\t\t\t\t\t\t\t\t\tcontrolName === 'none' );\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ controlName }\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'components-dropdown-menu__menu-item',\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'is-active': isSelected,\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeAlignment(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrolName\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\t\t\tinfo={ info }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\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) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t };\n\n\treturn <UIComponent { ...commonProps } { ...extraProps } />;\n}\n\nexport default BlockAlignmentUI;\n"]}
@@ -0,0 +1,78 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import { createElement } from "@wordpress/element";
3
+
4
+ /**
5
+ * WordPress dependencies
6
+ */
7
+ import { __ } from '@wordpress/i18n';
8
+ import { ToolbarDropdownMenu, ToolbarGroup, BottomSheetSelectControl } from '@wordpress/components';
9
+ /**
10
+ * Internal dependencies
11
+ */
12
+
13
+ import useAvailableAlignments from './use-available-alignments';
14
+ import { BLOCK_ALIGNMENTS_CONTROLS, DEFAULT_CONTROL, POPOVER_PROPS } from './constants';
15
+
16
+ function BlockAlignmentUI(_ref) {
17
+ let {
18
+ value,
19
+ onChange,
20
+ controls,
21
+ isToolbar,
22
+ isCollapsed = true,
23
+ isBottomSheetControl = false
24
+ } = _ref;
25
+ const enabledControls = useAvailableAlignments(controls);
26
+ const hasEnabledControls = !!enabledControls.length;
27
+
28
+ if (!hasEnabledControls) {
29
+ return null;
30
+ }
31
+
32
+ function onChangeAlignment(align) {
33
+ onChange([value, 'none'].includes(align) ? undefined : align);
34
+ }
35
+
36
+ const activeAlignmentControl = BLOCK_ALIGNMENTS_CONTROLS[value];
37
+ const defaultAlignmentControl = BLOCK_ALIGNMENTS_CONTROLS[DEFAULT_CONTROL];
38
+ const toolbarUIComponent = isToolbar ? ToolbarGroup : ToolbarDropdownMenu;
39
+ const UIComponent = isBottomSheetControl ? BottomSheetSelectControl : toolbarUIComponent;
40
+ const commonProps = {
41
+ label: __('Align')
42
+ };
43
+ const extraProps = isBottomSheetControl ? {
44
+ options: enabledControls.map(_ref2 => {
45
+ let {
46
+ name: controlName
47
+ } = _ref2;
48
+ const control = BLOCK_ALIGNMENTS_CONTROLS[controlName];
49
+ return {
50
+ value: controlName,
51
+ label: control.title,
52
+ icon: control.icon
53
+ };
54
+ }),
55
+ value: activeAlignmentControl ? value : 'none',
56
+ onChange: align => onChangeAlignment(align)
57
+ } : {
58
+ icon: activeAlignmentControl ? activeAlignmentControl.icon : defaultAlignmentControl.icon,
59
+ isCollapsed: isToolbar ? isCollapsed : undefined,
60
+ controls: enabledControls.map(_ref3 => {
61
+ let {
62
+ name: controlName
63
+ } = _ref3;
64
+ return { ...BLOCK_ALIGNMENTS_CONTROLS[controlName],
65
+ isActive: value === controlName || !value && controlName === 'none',
66
+ onClick: () => onChangeAlignment(controlName)
67
+ };
68
+ }),
69
+ popoverProps: POPOVER_PROPS,
70
+ toggleProps: {
71
+ describedBy: __('Change alignment')
72
+ }
73
+ };
74
+ return createElement(UIComponent, _extends({}, commonProps, extraProps));
75
+ }
76
+
77
+ export default BlockAlignmentUI;
78
+ //# sourceMappingURL=ui.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-alignment-control/ui.native.js"],"names":["__","ToolbarDropdownMenu","ToolbarGroup","BottomSheetSelectControl","useAvailableAlignments","BLOCK_ALIGNMENTS_CONTROLS","DEFAULT_CONTROL","POPOVER_PROPS","BlockAlignmentUI","value","onChange","controls","isToolbar","isCollapsed","isBottomSheetControl","enabledControls","hasEnabledControls","length","onChangeAlignment","align","includes","undefined","activeAlignmentControl","defaultAlignmentControl","toolbarUIComponent","UIComponent","commonProps","label","extraProps","options","map","name","controlName","control","title","icon","isActive","onClick","popoverProps","toggleProps","describedBy"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n\tBottomSheetSelectControl,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport useAvailableAlignments from './use-available-alignments';\nimport {\n\tBLOCK_ALIGNMENTS_CONTROLS,\n\tDEFAULT_CONTROL,\n\tPOPOVER_PROPS,\n} from './constants';\n\nfunction BlockAlignmentUI( {\n\tvalue,\n\tonChange,\n\tcontrols,\n\tisToolbar,\n\tisCollapsed = true,\n\tisBottomSheetControl = false,\n} ) {\n\tconst enabledControls = useAvailableAlignments( controls );\n\tconst hasEnabledControls = !! enabledControls.length;\n\n\tif ( ! hasEnabledControls ) {\n\t\treturn null;\n\t}\n\n\tfunction onChangeAlignment( align ) {\n\t\tonChange( [ value, 'none' ].includes( align ) ? undefined : align );\n\t}\n\n\tconst activeAlignmentControl = BLOCK_ALIGNMENTS_CONTROLS[ value ];\n\tconst defaultAlignmentControl =\n\t\tBLOCK_ALIGNMENTS_CONTROLS[ DEFAULT_CONTROL ];\n\n\tconst toolbarUIComponent = isToolbar ? ToolbarGroup : ToolbarDropdownMenu;\n\tconst UIComponent = isBottomSheetControl\n\t\t? BottomSheetSelectControl\n\t\t: toolbarUIComponent;\n\n\tconst commonProps = {\n\t\tlabel: __( 'Align' ),\n\t};\n\tconst extraProps = isBottomSheetControl\n\t\t? {\n\t\t\t\toptions: enabledControls.map( ( { name: controlName } ) => {\n\t\t\t\t\tconst control = BLOCK_ALIGNMENTS_CONTROLS[ controlName ];\n\t\t\t\t\treturn {\n\t\t\t\t\t\tvalue: controlName,\n\t\t\t\t\t\tlabel: control.title,\n\t\t\t\t\t\ticon: control.icon,\n\t\t\t\t\t};\n\t\t\t\t} ),\n\t\t\t\tvalue: activeAlignmentControl ? value : 'none',\n\t\t\t\tonChange: ( align ) => onChangeAlignment( align ),\n\t\t }\n\t\t: {\n\t\t\t\ticon: activeAlignmentControl\n\t\t\t\t\t? activeAlignmentControl.icon\n\t\t\t\t\t: defaultAlignmentControl.icon,\n\t\t\t\tisCollapsed: isToolbar ? isCollapsed : undefined,\n\t\t\t\tcontrols: enabledControls.map( ( { name: controlName } ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...BLOCK_ALIGNMENTS_CONTROLS[ controlName ],\n\t\t\t\t\t\tisActive:\n\t\t\t\t\t\t\tvalue === controlName ||\n\t\t\t\t\t\t\t( ! value && controlName === 'none' ),\n\t\t\t\t\t\tonClick: () => onChangeAlignment( controlName ),\n\t\t\t\t\t};\n\t\t\t\t} ),\n\t\t\t\tpopoverProps: POPOVER_PROPS,\n\t\t\t\ttoggleProps: { describedBy: __( 'Change alignment' ) },\n\t\t };\n\n\treturn <UIComponent { ...commonProps } { ...extraProps } />;\n}\n\nexport default BlockAlignmentUI;\n"]}
@@ -22,15 +22,10 @@ function BlockAlignmentMatrixControl(props) {
22
22
  const icon = createElement(AlignmentMatrixControl.Icon, {
23
23
  value: value
24
24
  });
25
- const className = 'block-editor-block-alignment-matrix-control';
26
- const popoverClassName = `${className}__popover`;
27
- const isAlternate = true;
28
25
  return createElement(Dropdown, {
29
26
  position: "bottom right",
30
- className: className,
31
27
  popoverProps: {
32
- className: popoverClassName,
33
- isAlternate
28
+ isAlternate: true
34
29
  },
35
30
  renderToggle: _ref => {
36
31
  let {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-alignment-matrix-control/index.js"],"names":["noop","__","DOWN","ToolbarButton","Dropdown","__experimentalAlignmentMatrixControl","AlignmentMatrixControl","BlockAlignmentMatrixControl","props","label","onChange","value","isDisabled","icon","className","popoverClassName","isAlternate","onToggle","isOpen","openOnArrowDown","event","keyCode","preventDefault"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,QAArB;AACA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,IAAT,QAAqB,qBAArB;AACA,SACCC,aADD,EAECC,QAFD,EAGCC,oCAAoC,IAAIC,sBAHzC,QAIO,uBAJP;;AAMA,SAASC,2BAAT,CAAsCC,KAAtC,EAA8C;AAC7C,QAAM;AACLC,IAAAA,KAAK,GAAGR,EAAE,CAAE,yBAAF,CADL;AAELS,IAAAA,QAAQ,GAAGV,IAFN;AAGLW,IAAAA,KAAK,GAAG,QAHH;AAILC,IAAAA;AAJK,MAKFJ,KALJ;AAOA,QAAMK,IAAI,GAAG,cAAC,sBAAD,CAAwB,IAAxB;AAA6B,IAAA,KAAK,EAAGF;AAArC,IAAb;AACA,QAAMG,SAAS,GAAG,6CAAlB;AACA,QAAMC,gBAAgB,GAAI,GAAGD,SAAW,WAAxC;AACA,QAAME,WAAW,GAAG,IAApB;AAEA,SACC,cAAC,QAAD;AACC,IAAA,QAAQ,EAAC,cADV;AAEC,IAAA,SAAS,EAAGF,SAFb;AAGC,IAAA,YAAY,EAAG;AAAEA,MAAAA,SAAS,EAAEC,gBAAb;AAA+BC,MAAAA;AAA/B,KAHhB;AAIC,IAAA,YAAY,EAAG,QAA4B;AAAA,UAA1B;AAAEC,QAAAA,QAAF;AAAYC,QAAAA;AAAZ,OAA0B;;AAC1C,YAAMC,eAAe,GAAKC,KAAF,IAAa;AACpC,YAAK,CAAEF,MAAF,IAAYE,KAAK,CAACC,OAAN,KAAkBnB,IAAnC,EAA0C;AACzCkB,UAAAA,KAAK,CAACE,cAAN;AACAL,UAAAA,QAAQ;AACR;AACD,OALD;;AAOA,aACC,cAAC,aAAD;AACC,QAAA,OAAO,EAAGA,QADX;AAEC,yBAAc,MAFf;AAGC,yBAAgBC,MAHjB;AAIC,QAAA,SAAS,EAAGC,eAJb;AAKC,QAAA,KAAK,EAAGV,KALT;AAMC,QAAA,IAAI,EAAGI,IANR;AAOC,QAAA,WAAW,MAPZ;AAQC,QAAA,QAAQ,EAAGD;AARZ,QADD;AAYA,KAxBF;AAyBC,IAAA,aAAa,EAAG,MACf,cAAC,sBAAD;AACC,MAAA,cAAc,EAAG,KADlB;AAEC,MAAA,QAAQ,EAAGF,QAFZ;AAGC,MAAA,KAAK,EAAGC;AAHT;AA1BF,IADD;AAmCA;;AAED,eAAeJ,2BAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { noop } from 'lodash';\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\nimport {\n\tToolbarButton,\n\tDropdown,\n\t__experimentalAlignmentMatrixControl as AlignmentMatrixControl,\n} from '@wordpress/components';\n\nfunction BlockAlignmentMatrixControl( props ) {\n\tconst {\n\t\tlabel = __( 'Change matrix alignment' ),\n\t\tonChange = noop,\n\t\tvalue = 'center',\n\t\tisDisabled,\n\t} = props;\n\n\tconst icon = <AlignmentMatrixControl.Icon value={ value } />;\n\tconst className = 'block-editor-block-alignment-matrix-control';\n\tconst popoverClassName = `${ className }__popover`;\n\tconst isAlternate = true;\n\n\treturn (\n\t\t<Dropdown\n\t\t\tposition=\"bottom right\"\n\t\t\tclassName={ className }\n\t\t\tpopoverProps={ { className: popoverClassName, isAlternate } }\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tonToggle();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<AlignmentMatrixControl\n\t\t\t\t\thasFocusBorder={ false }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t/>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default BlockAlignmentMatrixControl;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-alignment-matrix-control/index.js"],"names":["noop","__","DOWN","ToolbarButton","Dropdown","__experimentalAlignmentMatrixControl","AlignmentMatrixControl","BlockAlignmentMatrixControl","props","label","onChange","value","isDisabled","icon","isAlternate","onToggle","isOpen","openOnArrowDown","event","keyCode","preventDefault"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,QAArB;AACA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,IAAT,QAAqB,qBAArB;AACA,SACCC,aADD,EAECC,QAFD,EAGCC,oCAAoC,IAAIC,sBAHzC,QAIO,uBAJP;;AAMA,SAASC,2BAAT,CAAsCC,KAAtC,EAA8C;AAC7C,QAAM;AACLC,IAAAA,KAAK,GAAGR,EAAE,CAAE,yBAAF,CADL;AAELS,IAAAA,QAAQ,GAAGV,IAFN;AAGLW,IAAAA,KAAK,GAAG,QAHH;AAILC,IAAAA;AAJK,MAKFJ,KALJ;AAOA,QAAMK,IAAI,GAAG,cAAC,sBAAD,CAAwB,IAAxB;AAA6B,IAAA,KAAK,EAAGF;AAArC,IAAb;AAEA,SACC,cAAC,QAAD;AACC,IAAA,QAAQ,EAAC,cADV;AAEC,IAAA,YAAY,EAAG;AAAEG,MAAAA,WAAW,EAAE;AAAf,KAFhB;AAGC,IAAA,YAAY,EAAG,QAA4B;AAAA,UAA1B;AAAEC,QAAAA,QAAF;AAAYC,QAAAA;AAAZ,OAA0B;;AAC1C,YAAMC,eAAe,GAAKC,KAAF,IAAa;AACpC,YAAK,CAAEF,MAAF,IAAYE,KAAK,CAACC,OAAN,KAAkBjB,IAAnC,EAA0C;AACzCgB,UAAAA,KAAK,CAACE,cAAN;AACAL,UAAAA,QAAQ;AACR;AACD,OALD;;AAOA,aACC,cAAC,aAAD;AACC,QAAA,OAAO,EAAGA,QADX;AAEC,yBAAc,MAFf;AAGC,yBAAgBC,MAHjB;AAIC,QAAA,SAAS,EAAGC,eAJb;AAKC,QAAA,KAAK,EAAGR,KALT;AAMC,QAAA,IAAI,EAAGI,IANR;AAOC,QAAA,WAAW,MAPZ;AAQC,QAAA,QAAQ,EAAGD;AARZ,QADD;AAYA,KAvBF;AAwBC,IAAA,aAAa,EAAG,MACf,cAAC,sBAAD;AACC,MAAA,cAAc,EAAG,KADlB;AAEC,MAAA,QAAQ,EAAGF,QAFZ;AAGC,MAAA,KAAK,EAAGC;AAHT;AAzBF,IADD;AAkCA;;AAED,eAAeJ,2BAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { noop } from 'lodash';\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\nimport {\n\tToolbarButton,\n\tDropdown,\n\t__experimentalAlignmentMatrixControl as AlignmentMatrixControl,\n} from '@wordpress/components';\n\nfunction BlockAlignmentMatrixControl( props ) {\n\tconst {\n\t\tlabel = __( 'Change matrix alignment' ),\n\t\tonChange = noop,\n\t\tvalue = 'center',\n\t\tisDisabled,\n\t} = props;\n\n\tconst icon = <AlignmentMatrixControl.Icon value={ value } />;\n\n\treturn (\n\t\t<Dropdown\n\t\t\tposition=\"bottom right\"\n\t\t\tpopoverProps={ { isAlternate: true } }\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tonToggle();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<AlignmentMatrixControl\n\t\t\t\t\thasFocusBorder={ false }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t/>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default BlockAlignmentMatrixControl;\n"]}
@@ -1,86 +1,20 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import { createElement } from "@wordpress/element";
3
-
4
1
  /**
5
2
  * WordPress dependencies
6
3
  */
7
4
  import { useSelect } from '@wordpress/data';
8
- import { useState, useEffect } from '@wordpress/element';
9
5
  /**
10
6
  * Internal dependencies
11
7
  */
12
8
 
13
9
  import { store as blockEditorStore } from '../../store';
14
- /**
15
- * External dependencies
16
- */
17
-
18
- import classnames from 'classnames';
19
- export default function BlockContentOverlay(_ref) {
20
- let {
21
- clientId,
22
- tagName: TagName = 'div',
23
- wrapperProps,
24
- className
25
- } = _ref;
26
- const baseClassName = 'block-editor-block-content-overlay';
27
- const [isOverlayActive, setIsOverlayActive] = useState(true);
28
- const [isHovered, setIsHovered] = useState(false);
29
- const {
30
- isParentSelected,
31
- hasChildSelected,
32
- isDraggingBlocks,
33
- isParentHighlighted
34
- } = useSelect(select => {
10
+ export default function useBlockOverlayActive(clientId) {
11
+ return useSelect(select => {
35
12
  const {
36
13
  isBlockSelected,
37
14
  hasSelectedInnerBlock,
38
- isDraggingBlocks: _isDraggingBlocks,
39
- isBlockHighlighted
15
+ canEditBlock
40
16
  } = select(blockEditorStore);
41
- return {
42
- isParentSelected: isBlockSelected(clientId),
43
- hasChildSelected: hasSelectedInnerBlock(clientId, true),
44
- isDraggingBlocks: _isDraggingBlocks(),
45
- isParentHighlighted: isBlockHighlighted(clientId)
46
- };
17
+ return !canEditBlock(clientId) || !isBlockSelected(clientId) && !hasSelectedInnerBlock(clientId, true);
47
18
  }, [clientId]);
48
- const classes = classnames(baseClassName, wrapperProps === null || wrapperProps === void 0 ? void 0 : wrapperProps.className, className, {
49
- 'overlay-active': isOverlayActive,
50
- 'parent-highlighted': isParentHighlighted,
51
- 'is-dragging-blocks': isDraggingBlocks
52
- });
53
- useEffect(() => {
54
- // Reenable when blocks are not in use.
55
- if (!isParentSelected && !hasChildSelected && !isOverlayActive) {
56
- setIsOverlayActive(true);
57
- } // Disable if parent selected by another means (such as list view).
58
- // We check hover to ensure the overlay click interaction is not taking place.
59
- // Trying to click the overlay will select the parent block via its 'focusin'
60
- // listener on the wrapper, so if the block is selected while hovered we will
61
- // let the mouseup disable the overlay instead.
62
-
63
-
64
- if (isParentSelected && !isHovered && isOverlayActive) {
65
- setIsOverlayActive(false);
66
- } // Ensure overlay is disabled if a child block is selected.
67
-
68
-
69
- if (hasChildSelected && isOverlayActive) {
70
- setIsOverlayActive(false);
71
- }
72
- }, [isParentSelected, hasChildSelected, isOverlayActive, isHovered]); // Disabled because the overlay div doesn't actually have a role or functionality
73
- // as far as the a11y is concerned. We're just catching the first click so that
74
- // the block can be selected without interacting with its contents.
75
-
76
- /* eslint-disable jsx-a11y/no-static-element-interactions */
77
-
78
- return createElement(TagName, _extends({}, wrapperProps, {
79
- className: classes,
80
- onMouseEnter: () => setIsHovered(true),
81
- onMouseLeave: () => setIsHovered(false),
82
- onMouseUp: isOverlayActive ? () => setIsOverlayActive(false) : undefined
83
- }), wrapperProps === null || wrapperProps === void 0 ? void 0 : wrapperProps.children);
84
19
  }
85
- /* eslint-enable jsx-a11y/no-static-element-interactions */
86
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-content-overlay/index.js"],"names":["useSelect","useState","useEffect","store","blockEditorStore","classnames","BlockContentOverlay","clientId","tagName","TagName","wrapperProps","className","baseClassName","isOverlayActive","setIsOverlayActive","isHovered","setIsHovered","isParentSelected","hasChildSelected","isDraggingBlocks","isParentHighlighted","select","isBlockSelected","hasSelectedInnerBlock","_isDraggingBlocks","isBlockHighlighted","classes","undefined","children"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,oBAApC;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA;AACA;AACA;;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA,eAAe,SAASC,mBAAT,OAKX;AAAA,MALyC;AAC5CC,IAAAA,QAD4C;AAE5CC,IAAAA,OAAO,EAAEC,OAAO,GAAG,KAFyB;AAG5CC,IAAAA,YAH4C;AAI5CC,IAAAA;AAJ4C,GAKzC;AACH,QAAMC,aAAa,GAAG,oCAAtB;AACA,QAAM,CAAEC,eAAF,EAAmBC,kBAAnB,IAA0Cb,QAAQ,CAAE,IAAF,CAAxD;AACA,QAAM,CAAEc,SAAF,EAAaC,YAAb,IAA8Bf,QAAQ,CAAE,KAAF,CAA5C;AAEA,QAAM;AACLgB,IAAAA,gBADK;AAELC,IAAAA,gBAFK;AAGLC,IAAAA,gBAHK;AAILC,IAAAA;AAJK,MAKFpB,SAAS,CACVqB,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,eADK;AAELC,MAAAA,qBAFK;AAGLJ,MAAAA,gBAAgB,EAAEK,iBAHb;AAILC,MAAAA;AAJK,QAKFJ,MAAM,CAAEjB,gBAAF,CALV;AAMA,WAAO;AACNa,MAAAA,gBAAgB,EAAEK,eAAe,CAAEf,QAAF,CAD3B;AAENW,MAAAA,gBAAgB,EAAEK,qBAAqB,CAAEhB,QAAF,EAAY,IAAZ,CAFjC;AAGNY,MAAAA,gBAAgB,EAAEK,iBAAiB,EAH7B;AAINJ,MAAAA,mBAAmB,EAAEK,kBAAkB,CAAElB,QAAF;AAJjC,KAAP;AAMA,GAdW,EAeZ,CAAEA,QAAF,CAfY,CALb;AAuBA,QAAMmB,OAAO,GAAGrB,UAAU,CACzBO,aADyB,EAEzBF,YAFyB,aAEzBA,YAFyB,uBAEzBA,YAAY,CAAEC,SAFW,EAGzBA,SAHyB,EAIzB;AACC,sBAAkBE,eADnB;AAEC,0BAAsBO,mBAFvB;AAGC,0BAAsBD;AAHvB,GAJyB,CAA1B;AAWAjB,EAAAA,SAAS,CAAE,MAAM;AAChB;AACA,QAAK,CAAEe,gBAAF,IAAsB,CAAEC,gBAAxB,IAA4C,CAAEL,eAAnD,EAAqE;AACpEC,MAAAA,kBAAkB,CAAE,IAAF,CAAlB;AACA,KAJe,CAKhB;AACA;AACA;AACA;AACA;;;AACA,QAAKG,gBAAgB,IAAI,CAAEF,SAAtB,IAAmCF,eAAxC,EAA0D;AACzDC,MAAAA,kBAAkB,CAAE,KAAF,CAAlB;AACA,KAZe,CAahB;;;AACA,QAAKI,gBAAgB,IAAIL,eAAzB,EAA2C;AAC1CC,MAAAA,kBAAkB,CAAE,KAAF,CAAlB;AACA;AACD,GAjBQ,EAiBN,CAAEG,gBAAF,EAAoBC,gBAApB,EAAsCL,eAAtC,EAAuDE,SAAvD,CAjBM,CAAT,CAvCG,CA0DH;AACA;AACA;;AACA;;AACA,SACC,cAAC,OAAD,eACML,YADN;AAEC,IAAA,SAAS,EAAGgB,OAFb;AAGC,IAAA,YAAY,EAAG,MAAMV,YAAY,CAAE,IAAF,CAHlC;AAIC,IAAA,YAAY,EAAG,MAAMA,YAAY,CAAE,KAAF,CAJlC;AAKC,IAAA,SAAS,EACRH,eAAe,GAAG,MAAMC,kBAAkB,CAAE,KAAF,CAA3B,GAAuCa;AANxD,MASGjB,YATH,aASGA,YATH,uBASGA,YAAY,CAAEkB,QATjB,CADD;AAaA;AACD","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\nexport default function BlockContentOverlay( {\n\tclientId,\n\ttagName: TagName = 'div',\n\twrapperProps,\n\tclassName,\n} ) {\n\tconst baseClassName = 'block-editor-block-content-overlay';\n\tconst [ isOverlayActive, setIsOverlayActive ] = useState( true );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\n\tconst {\n\t\tisParentSelected,\n\t\thasChildSelected,\n\t\tisDraggingBlocks,\n\t\tisParentHighlighted,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockSelected,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tisDraggingBlocks: _isDraggingBlocks,\n\t\t\t\tisBlockHighlighted,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tisParentSelected: isBlockSelected( clientId ),\n\t\t\t\thasChildSelected: hasSelectedInnerBlock( clientId, true ),\n\t\t\t\tisDraggingBlocks: _isDraggingBlocks(),\n\t\t\t\tisParentHighlighted: isBlockHighlighted( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst classes = classnames(\n\t\tbaseClassName,\n\t\twrapperProps?.className,\n\t\tclassName,\n\t\t{\n\t\t\t'overlay-active': isOverlayActive,\n\t\t\t'parent-highlighted': isParentHighlighted,\n\t\t\t'is-dragging-blocks': isDraggingBlocks,\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\t// Reenable when blocks are not in use.\n\t\tif ( ! isParentSelected && ! hasChildSelected && ! isOverlayActive ) {\n\t\t\tsetIsOverlayActive( true );\n\t\t}\n\t\t// Disable if parent selected by another means (such as list view).\n\t\t// We check hover to ensure the overlay click interaction is not taking place.\n\t\t// Trying to click the overlay will select the parent block via its 'focusin'\n\t\t// listener on the wrapper, so if the block is selected while hovered we will\n\t\t// let the mouseup disable the overlay instead.\n\t\tif ( isParentSelected && ! isHovered && isOverlayActive ) {\n\t\t\tsetIsOverlayActive( false );\n\t\t}\n\t\t// Ensure overlay is disabled if a child block is selected.\n\t\tif ( hasChildSelected && isOverlayActive ) {\n\t\t\tsetIsOverlayActive( false );\n\t\t}\n\t}, [ isParentSelected, hasChildSelected, isOverlayActive, isHovered ] );\n\n\t// Disabled because the overlay div doesn't actually have a role or functionality\n\t// as far as the a11y is concerned. We're just catching the first click so that\n\t// the block can be selected without interacting with its contents.\n\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\treturn (\n\t\t<TagName\n\t\t\t{ ...wrapperProps }\n\t\t\tclassName={ classes }\n\t\t\tonMouseEnter={ () => setIsHovered( true ) }\n\t\t\tonMouseLeave={ () => setIsHovered( false ) }\n\t\t\tonMouseUp={\n\t\t\t\tisOverlayActive ? () => setIsOverlayActive( false ) : undefined\n\t\t\t}\n\t\t>\n\t\t\t{ wrapperProps?.children }\n\t\t</TagName>\n\t);\n}\n/* eslint-enable jsx-a11y/no-static-element-interactions */\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-content-overlay/index.js"],"names":["useSelect","store","blockEditorStore","useBlockOverlayActive","clientId","select","isBlockSelected","hasSelectedInnerBlock","canEditBlock"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,eAAe,SAASC,qBAAT,CAAgCC,QAAhC,EAA2C;AACzD,SAAOJ,SAAS,CACbK,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,eADK;AAELC,MAAAA,qBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEH,gBAAF,CAJV;AAMA,WACC,CAAEM,YAAY,CAAEJ,QAAF,CAAd,IACE,CAAEE,eAAe,CAAEF,QAAF,CAAjB,IACD,CAAEG,qBAAqB,CAAEH,QAAF,EAAY,IAAZ,CAHzB;AAKA,GAbc,EAcf,CAAEA,QAAF,CAde,CAAhB;AAgBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nexport default function useBlockOverlayActive( clientId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockSelected,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tcanEditBlock,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\treturn (\n\t\t\t\t! canEditBlock( clientId ) ||\n\t\t\t\t( ! isBlockSelected( clientId ) &&\n\t\t\t\t\t! hasSelectedInnerBlock( clientId, true ) )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n}\n"]}
@@ -0,0 +1,50 @@
1
+ import { createElement } from "@wordpress/element";
2
+
3
+ /**
4
+ * External dependencies
5
+ */
6
+ import { View } from 'react-native';
7
+ /**
8
+ * WordPress dependencies
9
+ */
10
+
11
+ import { dragHandle } from '@wordpress/icons';
12
+ import { usePreferredColorSchemeStyle } from '@wordpress/compose';
13
+ /**
14
+ * Internal dependencies
15
+ */
16
+
17
+ import BlockIcon from '../block-icon';
18
+ import styles from './style.scss';
19
+ const shadowStyle = {
20
+ shadowColor: '#000',
21
+ shadowOffset: {
22
+ width: 0,
23
+ height: 2
24
+ },
25
+ shadowOpacity: 0.25,
26
+ shadowRadius: 3.84,
27
+ elevation: 5
28
+ };
29
+ /**
30
+ * Block draggable chip component
31
+ *
32
+ * @param {Object} props Component props.
33
+ * @param {Object} [props.icon] Block icon.
34
+ * @return {JSX.Element} Chip component.
35
+ */
36
+
37
+ export default function BlockDraggableChip(_ref) {
38
+ let {
39
+ icon
40
+ } = _ref;
41
+ const containerStyle = usePreferredColorSchemeStyle(styles['draggable-chip__container'], styles['draggable-chip__container--dark']);
42
+ return createElement(View, {
43
+ style: [containerStyle, shadowStyle]
44
+ }, createElement(BlockIcon, {
45
+ icon: dragHandle
46
+ }), icon && createElement(BlockIcon, {
47
+ icon: icon
48
+ }));
49
+ }
50
+ //# sourceMappingURL=draggable-chip.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-draggable/draggable-chip.native.js"],"names":["View","dragHandle","usePreferredColorSchemeStyle","BlockIcon","styles","shadowStyle","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","BlockDraggableChip","icon","containerStyle"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,cAArB;AAEA;AACA;AACA;;AACA,SAASC,UAAT,QAA2B,kBAA3B;AACA,SAASC,4BAAT,QAA6C,oBAA7C;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,eAAtB;AACA,OAAOC,MAAP,MAAmB,cAAnB;AAEA,MAAMC,WAAW,GAAG;AACnBC,EAAAA,WAAW,EAAE,MADM;AAEnBC,EAAAA,YAAY,EAAE;AACbC,IAAAA,KAAK,EAAE,CADM;AAEbC,IAAAA,MAAM,EAAE;AAFK,GAFK;AAMnBC,EAAAA,aAAa,EAAE,IANI;AAOnBC,EAAAA,YAAY,EAAE,IAPK;AASnBC,EAAAA,SAAS,EAAE;AATQ,CAApB;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,kBAAT,OAAwC;AAAA,MAAX;AAAEC,IAAAA;AAAF,GAAW;AACtD,QAAMC,cAAc,GAAGb,4BAA4B,CAClDE,MAAM,CAAE,2BAAF,CAD4C,EAElDA,MAAM,CAAE,iCAAF,CAF4C,CAAnD;AAKA,SACC,cAAC,IAAD;AAAM,IAAA,KAAK,EAAG,CAAEW,cAAF,EAAkBV,WAAlB;AAAd,KACC,cAAC,SAAD;AAAW,IAAA,IAAI,EAAGJ;AAAlB,IADD,EAEGa,IAAI,IAAI,cAAC,SAAD;AAAW,IAAA,IAAI,EAAGA;AAAlB,IAFX,CADD;AAMA","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { dragHandle } from '@wordpress/icons';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport styles from './style.scss';\n\nconst shadowStyle = {\n\tshadowColor: '#000',\n\tshadowOffset: {\n\t\twidth: 0,\n\t\theight: 2,\n\t},\n\tshadowOpacity: 0.25,\n\tshadowRadius: 3.84,\n\n\televation: 5,\n};\n\n/**\n * Block draggable chip component\n *\n * @param {Object} props Component props.\n * @param {Object} [props.icon] Block icon.\n * @return {JSX.Element} Chip component.\n */\nexport default function BlockDraggableChip( { icon } ) {\n\tconst containerStyle = usePreferredColorSchemeStyle(\n\t\tstyles[ 'draggable-chip__container' ],\n\t\tstyles[ 'draggable-chip__container--dark' ]\n\t);\n\n\treturn (\n\t\t<View style={ [ containerStyle, shadowStyle ] }>\n\t\t\t<BlockIcon icon={ dragHandle } />\n\t\t\t{ icon && <BlockIcon icon={ icon } /> }\n\t\t</View>\n\t);\n}\n"]}
@@ -0,0 +1,137 @@
1
+ import { createElement } from "@wordpress/element";
2
+
3
+ /**
4
+ * External dependencies
5
+ */
6
+ import Animated, { useSharedValue, useAnimatedStyle, withTiming, useAnimatedReaction, runOnJS } from 'react-native-reanimated';
7
+ import { useSafeAreaInsets, useSafeAreaFrame } from 'react-native-safe-area-context';
8
+ /**
9
+ * WordPress dependencies
10
+ */
11
+
12
+ import { useSelect } from '@wordpress/data';
13
+ import { generateHapticFeedback } from '@wordpress/react-native-bridge';
14
+ /**
15
+ * Internal dependencies
16
+ */
17
+
18
+ import { store as blockEditorStore } from '../../store';
19
+ import { useBlockListContext } from '../block-list/block-list-context';
20
+ import styles from './dropping-insertion-point.scss';
21
+ /**
22
+ * Dropping zone indicator component.
23
+ *
24
+ * This component shows where a block can be dropped when it's being dragged.
25
+ *
26
+ * @param {Object} props Component props.
27
+ * @param {Object} props.scroll Scroll offset object.
28
+ * @param {Object} props.currentYPosition Current Y coordinate position when dragging.
29
+ * @param {import('react-native-reanimated').SharedValue} props.isDragging Whether or not dragging has started.
30
+ * @param {import('react-native-reanimated').SharedValue} props.targetBlockIndex Current block target index.
31
+ *
32
+ * @return {JSX.Element} The component to be rendered.
33
+ */
34
+
35
+ export default function DroppingInsertionPoint(_ref) {
36
+ let {
37
+ scroll,
38
+ currentYPosition,
39
+ isDragging,
40
+ targetBlockIndex
41
+ } = _ref;
42
+ const {
43
+ getBlockOrder,
44
+ isBlockBeingDragged,
45
+ isDraggingBlocks,
46
+ getPreviousBlockClientId,
47
+ getNextBlockClientId
48
+ } = useSelect(blockEditorStore);
49
+ const {
50
+ blocksLayouts,
51
+ findBlockLayoutByClientId
52
+ } = useBlockListContext();
53
+ const {
54
+ top,
55
+ bottom
56
+ } = useSafeAreaInsets();
57
+ const {
58
+ height
59
+ } = useSafeAreaFrame();
60
+ const safeAreaOffset = top + bottom;
61
+ const maxHeight = height - (safeAreaOffset + styles['dropping-insertion-point'].height);
62
+ const blockYPosition = useSharedValue(0);
63
+ const opacity = useSharedValue(0);
64
+ useAnimatedReaction(() => isDragging.value, value => {
65
+ if (!value) {
66
+ opacity.value = 0;
67
+ blockYPosition.value = 0;
68
+ }
69
+ });
70
+
71
+ function getSelectedBlockIndicatorPosition(positions) {
72
+ const currentYPositionWithScroll = currentYPosition.value + scroll.offsetY.value;
73
+ const midpoint = (positions.top + positions.bottom) / 2;
74
+ return midpoint < currentYPositionWithScroll ? positions.bottom : positions.top;
75
+ }
76
+
77
+ function setIndicatorPosition(index) {
78
+ const insertionPointIndex = index;
79
+ const order = getBlockOrder();
80
+ const isDraggingAnyBlocks = isDraggingBlocks();
81
+
82
+ if (!isDraggingAnyBlocks || insertionPointIndex === null || !order.length) {
83
+ return;
84
+ }
85
+
86
+ let previousClientId = order[insertionPointIndex - 1];
87
+ let nextClientId = order[insertionPointIndex];
88
+
89
+ while (isBlockBeingDragged(previousClientId)) {
90
+ previousClientId = getPreviousBlockClientId(previousClientId);
91
+ }
92
+
93
+ while (isBlockBeingDragged(nextClientId)) {
94
+ nextClientId = getNextBlockClientId(nextClientId);
95
+ }
96
+
97
+ const previousElement = previousClientId ? findBlockLayoutByClientId(blocksLayouts.current, previousClientId) : null;
98
+ const nextElement = nextClientId ? findBlockLayoutByClientId(blocksLayouts.current, nextClientId) : null;
99
+ const previousElementPosition = previousElement ? previousElement.y + previousElement.height : 0;
100
+ const nextElementPosition = nextElement ? nextElement.y : 0;
101
+ const elementsPositions = {
102
+ top: Math.floor(previousElement ? previousElementPosition : nextElementPosition),
103
+ bottom: Math.floor(nextElement ? nextElementPosition : previousElementPosition)
104
+ };
105
+ const nextPosition = elementsPositions.top !== elementsPositions.bottom ? getSelectedBlockIndicatorPosition(elementsPositions) : elementsPositions.top;
106
+
107
+ if (nextPosition && blockYPosition.value !== nextPosition) {
108
+ opacity.value = 0;
109
+ blockYPosition.value = nextPosition;
110
+ opacity.value = withTiming(1);
111
+ generateHapticFeedback();
112
+ }
113
+ }
114
+
115
+ useAnimatedReaction(() => targetBlockIndex.value, (value, previous) => {
116
+ if (value !== previous) {
117
+ runOnJS(setIndicatorPosition)(value);
118
+ }
119
+ });
120
+ const animatedStyles = useAnimatedStyle(() => {
121
+ const translationY = blockYPosition.value - scroll.offsetY.value; // Prevents overflowing behind the header/footer
122
+
123
+ const shouldHideIndicator = translationY < 0 || translationY > maxHeight;
124
+ return {
125
+ opacity: shouldHideIndicator ? 0 : opacity.value,
126
+ transform: [{
127
+ translateY: translationY
128
+ }]
129
+ };
130
+ });
131
+ const insertionPointStyles = [styles['dropping-insertion-point'], animatedStyles];
132
+ return createElement(Animated.View, {
133
+ pointerEvents: "none",
134
+ style: insertionPointStyles
135
+ });
136
+ }
137
+ //# sourceMappingURL=dropping-insertion-point.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-draggable/dropping-insertion-point.native.js"],"names":["Animated","useSharedValue","useAnimatedStyle","withTiming","useAnimatedReaction","runOnJS","useSafeAreaInsets","useSafeAreaFrame","useSelect","generateHapticFeedback","store","blockEditorStore","useBlockListContext","styles","DroppingInsertionPoint","scroll","currentYPosition","isDragging","targetBlockIndex","getBlockOrder","isBlockBeingDragged","isDraggingBlocks","getPreviousBlockClientId","getNextBlockClientId","blocksLayouts","findBlockLayoutByClientId","top","bottom","height","safeAreaOffset","maxHeight","blockYPosition","opacity","value","getSelectedBlockIndicatorPosition","positions","currentYPositionWithScroll","offsetY","midpoint","setIndicatorPosition","index","insertionPointIndex","order","isDraggingAnyBlocks","length","previousClientId","nextClientId","previousElement","current","nextElement","previousElementPosition","y","nextElementPosition","elementsPositions","Math","floor","nextPosition","previous","animatedStyles","translationY","shouldHideIndicator","transform","translateY","insertionPointStyles"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport Animated, {\n\tuseSharedValue,\n\tuseAnimatedStyle,\n\twithTiming,\n\tuseAnimatedReaction,\n\trunOnJS,\n} from 'react-native-reanimated';\nimport {\n\tuseSafeAreaInsets,\n\tuseSafeAreaFrame,\n} from 'react-native-safe-area-context';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { generateHapticFeedback } from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useBlockListContext } from '../block-list/block-list-context';\nimport styles from './dropping-insertion-point.scss';\n\n/**\n * Dropping zone indicator component.\n *\n * This component shows where a block can be dropped when it's being dragged.\n *\n * @param {Object} props Component props.\n * @param {Object} props.scroll Scroll offset object.\n * @param {Object} props.currentYPosition Current Y coordinate position when dragging.\n * @param {import('react-native-reanimated').SharedValue} props.isDragging Whether or not dragging has started.\n * @param {import('react-native-reanimated').SharedValue} props.targetBlockIndex Current block target index.\n *\n * @return {JSX.Element} The component to be rendered.\n */\nexport default function DroppingInsertionPoint( {\n\tscroll,\n\tcurrentYPosition,\n\tisDragging,\n\ttargetBlockIndex,\n} ) {\n\tconst {\n\t\tgetBlockOrder,\n\t\tisBlockBeingDragged,\n\t\tisDraggingBlocks,\n\t\tgetPreviousBlockClientId,\n\t\tgetNextBlockClientId,\n\t} = useSelect( blockEditorStore );\n\n\tconst { blocksLayouts, findBlockLayoutByClientId } = useBlockListContext();\n\tconst { top, bottom } = useSafeAreaInsets();\n\tconst { height } = useSafeAreaFrame();\n\tconst safeAreaOffset = top + bottom;\n\tconst maxHeight =\n\t\theight -\n\t\t( safeAreaOffset + styles[ 'dropping-insertion-point' ].height );\n\n\tconst blockYPosition = useSharedValue( 0 );\n\tconst opacity = useSharedValue( 0 );\n\n\tuseAnimatedReaction(\n\t\t() => isDragging.value,\n\t\t( value ) => {\n\t\t\tif ( ! value ) {\n\t\t\t\topacity.value = 0;\n\t\t\t\tblockYPosition.value = 0;\n\t\t\t}\n\t\t}\n\t);\n\n\tfunction getSelectedBlockIndicatorPosition( positions ) {\n\t\tconst currentYPositionWithScroll =\n\t\t\tcurrentYPosition.value + scroll.offsetY.value;\n\t\tconst midpoint = ( positions.top + positions.bottom ) / 2;\n\n\t\treturn midpoint < currentYPositionWithScroll\n\t\t\t? positions.bottom\n\t\t\t: positions.top;\n\t}\n\n\tfunction setIndicatorPosition( index ) {\n\t\tconst insertionPointIndex = index;\n\t\tconst order = getBlockOrder();\n\t\tconst isDraggingAnyBlocks = isDraggingBlocks();\n\n\t\tif (\n\t\t\t! isDraggingAnyBlocks ||\n\t\t\tinsertionPointIndex === null ||\n\t\t\t! order.length\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet previousClientId = order[ insertionPointIndex - 1 ];\n\t\tlet nextClientId = order[ insertionPointIndex ];\n\n\t\twhile ( isBlockBeingDragged( previousClientId ) ) {\n\t\t\tpreviousClientId = getPreviousBlockClientId( previousClientId );\n\t\t}\n\n\t\twhile ( isBlockBeingDragged( nextClientId ) ) {\n\t\t\tnextClientId = getNextBlockClientId( nextClientId );\n\t\t}\n\n\t\tconst previousElement = previousClientId\n\t\t\t? findBlockLayoutByClientId(\n\t\t\t\t\tblocksLayouts.current,\n\t\t\t\t\tpreviousClientId\n\t\t\t )\n\t\t\t: null;\n\t\tconst nextElement = nextClientId\n\t\t\t? findBlockLayoutByClientId( blocksLayouts.current, nextClientId )\n\t\t\t: null;\n\n\t\tconst previousElementPosition = previousElement\n\t\t\t? previousElement.y + previousElement.height\n\t\t\t: 0;\n\t\tconst nextElementPosition = nextElement ? nextElement.y : 0;\n\n\t\tconst elementsPositions = {\n\t\t\ttop: Math.floor(\n\t\t\t\tpreviousElement ? previousElementPosition : nextElementPosition\n\t\t\t),\n\t\t\tbottom: Math.floor(\n\t\t\t\tnextElement ? nextElementPosition : previousElementPosition\n\t\t\t),\n\t\t};\n\n\t\tconst nextPosition =\n\t\t\telementsPositions.top !== elementsPositions.bottom\n\t\t\t\t? getSelectedBlockIndicatorPosition( elementsPositions )\n\t\t\t\t: elementsPositions.top;\n\n\t\tif ( nextPosition && blockYPosition.value !== nextPosition ) {\n\t\t\topacity.value = 0;\n\t\t\tblockYPosition.value = nextPosition;\n\t\t\topacity.value = withTiming( 1 );\n\t\t\tgenerateHapticFeedback();\n\t\t}\n\t}\n\n\tuseAnimatedReaction(\n\t\t() => targetBlockIndex.value,\n\t\t( value, previous ) => {\n\t\t\tif ( value !== previous ) {\n\t\t\t\trunOnJS( setIndicatorPosition )( value );\n\t\t\t}\n\t\t}\n\t);\n\n\tconst animatedStyles = useAnimatedStyle( () => {\n\t\tconst translationY = blockYPosition.value - scroll.offsetY.value;\n\t\t// Prevents overflowing behind the header/footer\n\t\tconst shouldHideIndicator =\n\t\t\ttranslationY < 0 || translationY > maxHeight;\n\n\t\treturn {\n\t\t\topacity: shouldHideIndicator ? 0 : opacity.value,\n\t\t\ttransform: [\n\t\t\t\t{\n\t\t\t\t\ttranslateY: translationY,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t} );\n\n\tconst insertionPointStyles = [\n\t\tstyles[ 'dropping-insertion-point' ],\n\t\tanimatedStyles,\n\t];\n\n\treturn (\n\t\t<Animated.View pointerEvents=\"none\" style={ insertionPointStyles } />\n\t);\n}\n"]}