@wordpress/block-editor 12.20.0 → 12.22.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 (558) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/block-actions/index.js +47 -36
  3. package/build/components/block-actions/index.js.map +1 -1
  4. package/build/components/block-bindings-toolbar-indicator/index.js +25 -0
  5. package/build/components/block-bindings-toolbar-indicator/index.js.map +1 -0
  6. package/build/components/block-edit/context.js +2 -1
  7. package/build/components/block-edit/context.js.map +1 -1
  8. package/build/components/block-edit/index.js +8 -3
  9. package/build/components/block-edit/index.js.map +1 -1
  10. package/build/components/block-heading-level-dropdown/index.js +5 -5
  11. package/build/components/block-heading-level-dropdown/index.js.map +1 -1
  12. package/build/components/block-heading-level-dropdown/index.native.js +5 -4
  13. package/build/components/block-heading-level-dropdown/index.native.js.map +1 -1
  14. package/build/components/block-inspector/index.js +5 -4
  15. package/build/components/block-inspector/index.js.map +1 -1
  16. package/build/components/block-list/block-crash-boundary.native.js +49 -0
  17. package/build/components/block-list/block-crash-boundary.native.js.map +1 -0
  18. package/build/components/block-list/block-crash-warning.native.js +24 -0
  19. package/build/components/block-list/block-crash-warning.native.js.map +1 -0
  20. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  21. package/build/components/block-list/block-list-item.native.js +1 -1
  22. package/build/components/block-list/block-list-item.native.js.map +1 -1
  23. package/build/components/block-list/block-outline.native.js +23 -7
  24. package/build/components/block-list/block-outline.native.js.map +1 -1
  25. package/build/components/block-list/block-selection-button.native.js.map +1 -1
  26. package/build/components/block-list/block.native.js +7 -5
  27. package/build/components/block-list/block.native.js.map +1 -1
  28. package/build/components/block-list/use-block-props/index.js +8 -1
  29. package/build/components/block-list/use-block-props/index.js.map +1 -1
  30. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +3 -3
  31. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  32. package/build/components/block-mover/index.native.js.map +1 -1
  33. package/build/components/block-popover/cover.js +68 -0
  34. package/build/components/block-popover/cover.js.map +1 -0
  35. package/build/components/block-popover/drop-zone.js +2 -3
  36. package/build/components/block-popover/drop-zone.js.map +1 -1
  37. package/build/components/block-popover/index.js +1 -19
  38. package/build/components/block-popover/index.js.map +1 -1
  39. package/build/components/block-preview/index.js +2 -1
  40. package/build/components/block-preview/index.js.map +1 -1
  41. package/build/components/block-removal-warning-modal/index.js +2 -4
  42. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  43. package/build/components/block-rename/modal.js.map +1 -1
  44. package/build/components/block-settings/container.native.js +2 -1
  45. package/build/components/block-settings/container.native.js.map +1 -1
  46. package/build/components/block-settings-menu/block-settings-dropdown.js +41 -39
  47. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  48. package/build/components/block-settings-menu-controls/index.js +1 -3
  49. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  50. package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  51. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  52. package/build/components/block-toolbar/index.js +24 -11
  53. package/build/components/block-toolbar/index.js.map +1 -1
  54. package/build/components/block-toolbar/shuffle.js +89 -0
  55. package/build/components/block-toolbar/shuffle.js.map +1 -0
  56. package/build/components/block-toolbar/use-has-block-toolbar.js +43 -0
  57. package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -0
  58. package/build/components/block-tools/block-selection-button.js +5 -1
  59. package/build/components/block-tools/block-selection-button.js.map +1 -1
  60. package/build/components/block-tools/empty-block-inserter.js +2 -5
  61. package/build/components/block-tools/empty-block-inserter.js.map +1 -1
  62. package/build/components/block-tools/index.js +9 -26
  63. package/build/components/block-tools/index.js.map +1 -1
  64. package/build/components/block-tools/use-show-block-tools.js +60 -0
  65. package/build/components/block-tools/use-show-block-tools.js.map +1 -0
  66. package/build/components/caption/index.native.js.map +1 -1
  67. package/build/components/child-layout-control/index.js +108 -11
  68. package/build/components/child-layout-control/index.js.map +1 -1
  69. package/build/components/color-palette/control.js.map +1 -1
  70. package/build/components/colors-gradients/control.js +1 -1
  71. package/build/components/colors-gradients/control.js.map +1 -1
  72. package/build/components/convert-to-group-buttons/toolbar.js +11 -0
  73. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  74. package/build/components/global-styles/border-panel.js +21 -8
  75. package/build/components/global-styles/border-panel.js.map +1 -1
  76. package/build/components/global-styles/color-panel.js +1 -1
  77. package/build/components/global-styles/color-panel.js.map +1 -1
  78. package/build/components/global-styles/dimensions-panel.js +8 -33
  79. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  80. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  81. package/build/components/global-styles/index.js +6 -0
  82. package/build/components/global-styles/index.js.map +1 -1
  83. package/build/components/global-styles/shadow-panel-components.js +80 -23
  84. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  85. package/build/components/global-styles/typography-utils.js +7 -5
  86. package/build/components/global-styles/typography-utils.js.map +1 -1
  87. package/build/components/global-styles/use-global-styles-output.js +16 -16
  88. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  89. package/build/components/global-styles/utils.js +2 -4
  90. package/build/components/global-styles/utils.js.map +1 -1
  91. package/build/components/grid-visualizer/grid-item-resizer.js +77 -0
  92. package/build/components/grid-visualizer/grid-item-resizer.js.map +1 -0
  93. package/build/components/grid-visualizer/grid-visualizer.js +81 -0
  94. package/build/components/grid-visualizer/grid-visualizer.js.map +1 -0
  95. package/build/components/grid-visualizer/index.js +20 -0
  96. package/build/components/grid-visualizer/index.js.map +1 -0
  97. package/build/components/grid-visualizer/utils.js +10 -0
  98. package/build/components/grid-visualizer/utils.js.map +1 -0
  99. package/build/components/iframe/index.js +66 -17
  100. package/build/components/iframe/index.js.map +1 -1
  101. package/build/components/index.native.js +7 -0
  102. package/build/components/index.native.js.map +1 -1
  103. package/build/components/inner-blocks/use-nested-settings-update.js +8 -2
  104. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  105. package/build/components/inserter/block-patterns-explorer/index.js +3 -6
  106. package/build/components/inserter/block-patterns-explorer/index.js.map +1 -1
  107. package/build/components/inserter/block-patterns-explorer/pattern-list.js +3 -1
  108. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  109. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  110. package/build/components/inserter/menu.native.js.map +1 -1
  111. package/build/components/inserter/mobile-tab-navigation.js +2 -2
  112. package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
  113. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  114. package/build/components/inspector-controls-tabs/advanced-controls-panel.native.js +36 -0
  115. package/build/components/inspector-controls-tabs/advanced-controls-panel.native.js.map +1 -0
  116. package/build/components/inspector-controls-tabs/index.js +1 -1
  117. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  118. package/build/components/inspector-controls-tabs/styles-tab.js +1 -1
  119. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  120. package/build/components/link-control/link-preview.js +4 -1
  121. package/build/components/link-control/link-preview.js.map +1 -1
  122. package/build/components/link-control/search-input.js.map +1 -1
  123. package/build/components/list-view/block-select-button.js +0 -2
  124. package/build/components/list-view/block-select-button.js.map +1 -1
  125. package/build/components/list-view/block.js +4 -11
  126. package/build/components/list-view/block.js.map +1 -1
  127. package/build/components/list-view/branch.js.map +1 -1
  128. package/build/components/list-view/drop-indicator.js.map +1 -1
  129. package/build/components/list-view/index.js.map +1 -1
  130. package/build/components/list-view/use-clipboard-handler.js +2 -1
  131. package/build/components/list-view/use-clipboard-handler.js.map +1 -1
  132. package/build/components/list-view/utils.js +5 -3
  133. package/build/components/list-view/utils.js.map +1 -1
  134. package/build/components/panel-color-settings/index.js.map +1 -1
  135. package/build/components/provider/index.js.map +1 -1
  136. package/build/components/resizable-box-popover/index.js +3 -5
  137. package/build/components/resizable-box-popover/index.js.map +1 -1
  138. package/build/components/responsive-block-control/index.js +1 -1
  139. package/build/components/responsive-block-control/index.js.map +1 -1
  140. package/build/components/rich-text/index.js +46 -26
  141. package/build/components/rich-text/index.js.map +1 -1
  142. package/build/components/rich-text/use-enter.js +3 -0
  143. package/build/components/rich-text/use-enter.js.map +1 -1
  144. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  145. package/build/components/spacing-sizes-control/sides-dropdown/index.js +1 -1
  146. package/build/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
  147. package/build/components/url-popover/index.js +3 -3
  148. package/build/components/url-popover/index.js.map +1 -1
  149. package/build/components/use-moving-animation/index.js +4 -0
  150. package/build/components/use-moving-animation/index.js.map +1 -1
  151. package/build/components/warning/index.native.js +9 -4
  152. package/build/components/warning/index.native.js.map +1 -1
  153. package/build/components/writing-flow/use-clipboard-handler.js +2 -1
  154. package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
  155. package/build/components/writing-flow/utils.js +23 -6
  156. package/build/components/writing-flow/utils.js.map +1 -1
  157. package/build/hooks/anchor.js +7 -8
  158. package/build/hooks/anchor.js.map +1 -1
  159. package/build/hooks/background.js +39 -2
  160. package/build/hooks/background.js.map +1 -1
  161. package/build/hooks/block-hooks.js +34 -8
  162. package/build/hooks/block-hooks.js.map +1 -1
  163. package/build/hooks/border.js +6 -4
  164. package/build/hooks/border.js.map +1 -1
  165. package/build/hooks/dimensions.js +3 -4
  166. package/build/hooks/dimensions.js.map +1 -1
  167. package/build/hooks/font-size.js +6 -7
  168. package/build/hooks/font-size.js.map +1 -1
  169. package/build/hooks/index.js +3 -2
  170. package/build/hooks/index.js.map +1 -1
  171. package/build/hooks/layout-child.js +67 -6
  172. package/build/hooks/layout-child.js.map +1 -1
  173. package/build/hooks/layout.js +32 -14
  174. package/build/hooks/layout.js.map +1 -1
  175. package/build/hooks/line-height.js.map +1 -1
  176. package/build/hooks/position.js +1 -1
  177. package/build/hooks/position.js.map +1 -1
  178. package/build/hooks/spacing-visualizer.js +115 -0
  179. package/build/hooks/spacing-visualizer.js.map +1 -0
  180. package/build/hooks/use-bindings-attributes.js +171 -48
  181. package/build/hooks/use-bindings-attributes.js.map +1 -1
  182. package/build/hooks/use-typography-props.js +1 -2
  183. package/build/hooks/use-typography-props.js.map +1 -1
  184. package/build/layouts/grid.js +6 -2
  185. package/build/layouts/grid.js.map +1 -1
  186. package/build/private-apis.js +7 -3
  187. package/build/private-apis.js.map +1 -1
  188. package/build/private-apis.native.js +3 -1
  189. package/build/private-apis.native.js.map +1 -1
  190. package/build/store/actions.js +42 -12
  191. package/build/store/actions.js.map +1 -1
  192. package/build/store/private-actions.js +29 -55
  193. package/build/store/private-actions.js.map +1 -1
  194. package/build/store/private-selectors.js +0 -8
  195. package/build/store/private-selectors.js.map +1 -1
  196. package/build/store/reducer.js +34 -46
  197. package/build/store/reducer.js.map +1 -1
  198. package/build/store/selectors.js +27 -15
  199. package/build/store/selectors.js.map +1 -1
  200. package/build-module/components/block-actions/index.js +47 -36
  201. package/build-module/components/block-actions/index.js.map +1 -1
  202. package/build-module/components/block-bindings-toolbar-indicator/index.js +18 -0
  203. package/build-module/components/block-bindings-toolbar-indicator/index.js.map +1 -0
  204. package/build-module/components/block-edit/context.js +1 -0
  205. package/build-module/components/block-edit/context.js.map +1 -1
  206. package/build-module/components/block-edit/index.js +9 -4
  207. package/build-module/components/block-edit/index.js.map +1 -1
  208. package/build-module/components/block-heading-level-dropdown/index.js +5 -5
  209. package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
  210. package/build-module/components/block-heading-level-dropdown/index.native.js +5 -4
  211. package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -1
  212. package/build-module/components/block-inspector/index.js +6 -5
  213. package/build-module/components/block-inspector/index.js.map +1 -1
  214. package/build-module/components/block-list/block-crash-boundary.native.js +42 -0
  215. package/build-module/components/block-list/block-crash-boundary.native.js.map +1 -0
  216. package/build-module/components/block-list/block-crash-warning.native.js +15 -0
  217. package/build-module/components/block-list/block-crash-warning.native.js.map +1 -0
  218. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  219. package/build-module/components/block-list/block-list-item.native.js +1 -1
  220. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  221. package/build-module/components/block-list/block-outline.native.js +23 -7
  222. package/build-module/components/block-list/block-outline.native.js.map +1 -1
  223. package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
  224. package/build-module/components/block-list/block.native.js +7 -5
  225. package/build-module/components/block-list/block.native.js.map +1 -1
  226. package/build-module/components/block-list/use-block-props/index.js +9 -2
  227. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  228. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +3 -3
  229. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  230. package/build-module/components/block-mover/index.native.js.map +1 -1
  231. package/build-module/components/block-popover/cover.js +60 -0
  232. package/build-module/components/block-popover/cover.js.map +1 -0
  233. package/build-module/components/block-popover/drop-zone.js +2 -3
  234. package/build-module/components/block-popover/drop-zone.js.map +1 -1
  235. package/build-module/components/block-popover/index.js +1 -19
  236. package/build-module/components/block-popover/index.js.map +1 -1
  237. package/build-module/components/block-preview/index.js +2 -1
  238. package/build-module/components/block-preview/index.js.map +1 -1
  239. package/build-module/components/block-removal-warning-modal/index.js +3 -5
  240. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  241. package/build-module/components/block-rename/modal.js.map +1 -1
  242. package/build-module/components/block-settings/container.native.js +3 -2
  243. package/build-module/components/block-settings/container.native.js.map +1 -1
  244. package/build-module/components/block-settings-menu/block-settings-dropdown.js +42 -40
  245. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  246. package/build-module/components/block-settings-menu-controls/index.js +1 -3
  247. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  248. package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  249. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  250. package/build-module/components/block-toolbar/index.js +24 -12
  251. package/build-module/components/block-toolbar/index.js.map +1 -1
  252. package/build-module/components/block-toolbar/shuffle.js +82 -0
  253. package/build-module/components/block-toolbar/shuffle.js.map +1 -0
  254. package/build-module/components/block-toolbar/use-has-block-toolbar.js +36 -0
  255. package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -0
  256. package/build-module/components/block-tools/block-selection-button.js +5 -1
  257. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  258. package/build-module/components/block-tools/empty-block-inserter.js +2 -5
  259. package/build-module/components/block-tools/empty-block-inserter.js.map +1 -1
  260. package/build-module/components/block-tools/index.js +9 -26
  261. package/build-module/components/block-tools/index.js.map +1 -1
  262. package/build-module/components/block-tools/use-show-block-tools.js +54 -0
  263. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -0
  264. package/build-module/components/caption/index.native.js.map +1 -1
  265. package/build-module/components/child-layout-control/index.js +109 -12
  266. package/build-module/components/child-layout-control/index.js.map +1 -1
  267. package/build-module/components/color-palette/control.js.map +1 -1
  268. package/build-module/components/colors-gradients/control.js +1 -1
  269. package/build-module/components/colors-gradients/control.js.map +1 -1
  270. package/build-module/components/convert-to-group-buttons/toolbar.js +12 -1
  271. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  272. package/build-module/components/global-styles/border-panel.js +22 -10
  273. package/build-module/components/global-styles/border-panel.js.map +1 -1
  274. package/build-module/components/global-styles/color-panel.js +1 -1
  275. package/build-module/components/global-styles/color-panel.js.map +1 -1
  276. package/build-module/components/global-styles/dimensions-panel.js +9 -34
  277. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  278. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  279. package/build-module/components/global-styles/index.js +1 -1
  280. package/build-module/components/global-styles/index.js.map +1 -1
  281. package/build-module/components/global-styles/shadow-panel-components.js +82 -24
  282. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  283. package/build-module/components/global-styles/typography-utils.js +7 -5
  284. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  285. package/build-module/components/global-styles/use-global-styles-output.js +17 -17
  286. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  287. package/build-module/components/global-styles/utils.js +2 -4
  288. package/build-module/components/global-styles/utils.js.map +1 -1
  289. package/build-module/components/grid-visualizer/grid-item-resizer.js +69 -0
  290. package/build-module/components/grid-visualizer/grid-item-resizer.js.map +1 -0
  291. package/build-module/components/grid-visualizer/grid-visualizer.js +73 -0
  292. package/build-module/components/grid-visualizer/grid-visualizer.js.map +1 -0
  293. package/build-module/components/grid-visualizer/index.js +3 -0
  294. package/build-module/components/grid-visualizer/index.js.map +1 -0
  295. package/build-module/components/grid-visualizer/utils.js +4 -0
  296. package/build-module/components/grid-visualizer/utils.js.map +1 -0
  297. package/build-module/components/iframe/index.js +66 -17
  298. package/build-module/components/iframe/index.js.map +1 -1
  299. package/build-module/components/index.native.js +1 -1
  300. package/build-module/components/index.native.js.map +1 -1
  301. package/build-module/components/inner-blocks/use-nested-settings-update.js +8 -2
  302. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  303. package/build-module/components/inserter/block-patterns-explorer/index.js +3 -6
  304. package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -1
  305. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +3 -1
  306. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  307. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  308. package/build-module/components/inserter/menu.native.js.map +1 -1
  309. package/build-module/components/inserter/mobile-tab-navigation.js +2 -2
  310. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
  311. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  312. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.native.js +28 -0
  313. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.native.js.map +1 -0
  314. package/build-module/components/inspector-controls-tabs/index.js +1 -1
  315. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  316. package/build-module/components/inspector-controls-tabs/styles-tab.js +2 -2
  317. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  318. package/build-module/components/link-control/link-preview.js +5 -2
  319. package/build-module/components/link-control/link-preview.js.map +1 -1
  320. package/build-module/components/link-control/search-input.js.map +1 -1
  321. package/build-module/components/list-view/block-select-button.js +0 -2
  322. package/build-module/components/list-view/block-select-button.js.map +1 -1
  323. package/build-module/components/list-view/block.js +6 -13
  324. package/build-module/components/list-view/block.js.map +1 -1
  325. package/build-module/components/list-view/branch.js.map +1 -1
  326. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  327. package/build-module/components/list-view/index.js.map +1 -1
  328. package/build-module/components/list-view/use-clipboard-handler.js +3 -2
  329. package/build-module/components/list-view/use-clipboard-handler.js.map +1 -1
  330. package/build-module/components/list-view/utils.js +2 -1
  331. package/build-module/components/list-view/utils.js.map +1 -1
  332. package/build-module/components/panel-color-settings/index.js.map +1 -1
  333. package/build-module/components/provider/index.js.map +1 -1
  334. package/build-module/components/resizable-box-popover/index.js +3 -5
  335. package/build-module/components/resizable-box-popover/index.js.map +1 -1
  336. package/build-module/components/responsive-block-control/index.js +1 -1
  337. package/build-module/components/responsive-block-control/index.js.map +1 -1
  338. package/build-module/components/rich-text/index.js +47 -28
  339. package/build-module/components/rich-text/index.js.map +1 -1
  340. package/build-module/components/rich-text/use-enter.js +3 -0
  341. package/build-module/components/rich-text/use-enter.js.map +1 -1
  342. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  343. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js +1 -1
  344. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
  345. package/build-module/components/url-popover/index.js +3 -3
  346. package/build-module/components/url-popover/index.js.map +1 -1
  347. package/build-module/components/use-moving-animation/index.js +4 -0
  348. package/build-module/components/use-moving-animation/index.js.map +1 -1
  349. package/build-module/components/warning/index.native.js +9 -4
  350. package/build-module/components/warning/index.native.js.map +1 -1
  351. package/build-module/components/writing-flow/use-clipboard-handler.js +3 -2
  352. package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
  353. package/build-module/components/writing-flow/utils.js +22 -7
  354. package/build-module/components/writing-flow/utils.js.map +1 -1
  355. package/build-module/hooks/anchor.js +8 -9
  356. package/build-module/hooks/anchor.js.map +1 -1
  357. package/build-module/hooks/background.js +38 -1
  358. package/build-module/hooks/background.js.map +1 -1
  359. package/build-module/hooks/block-hooks.js +34 -8
  360. package/build-module/hooks/block-hooks.js.map +1 -1
  361. package/build-module/hooks/border.js +7 -5
  362. package/build-module/hooks/border.js.map +1 -1
  363. package/build-module/hooks/dimensions.js +1 -2
  364. package/build-module/hooks/dimensions.js.map +1 -1
  365. package/build-module/hooks/font-size.js +7 -8
  366. package/build-module/hooks/font-size.js.map +1 -1
  367. package/build-module/hooks/index.js +3 -2
  368. package/build-module/hooks/index.js.map +1 -1
  369. package/build-module/hooks/layout-child.js +67 -6
  370. package/build-module/hooks/layout-child.js.map +1 -1
  371. package/build-module/hooks/layout.js +32 -14
  372. package/build-module/hooks/layout.js.map +1 -1
  373. package/build-module/hooks/line-height.js.map +1 -1
  374. package/build-module/hooks/position.js +1 -1
  375. package/build-module/hooks/position.js.map +1 -1
  376. package/build-module/hooks/spacing-visualizer.js +106 -0
  377. package/build-module/hooks/spacing-visualizer.js.map +1 -0
  378. package/build-module/hooks/use-bindings-attributes.js +172 -49
  379. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  380. package/build-module/hooks/use-typography-props.js +2 -3
  381. package/build-module/hooks/use-typography-props.js.map +1 -1
  382. package/build-module/layouts/grid.js +6 -2
  383. package/build-module/layouts/grid.js.map +1 -1
  384. package/build-module/private-apis.js +7 -3
  385. package/build-module/private-apis.js.map +1 -1
  386. package/build-module/private-apis.native.js +3 -1
  387. package/build-module/private-apis.native.js.map +1 -1
  388. package/build-module/store/actions.js +42 -12
  389. package/build-module/store/actions.js.map +1 -1
  390. package/build-module/store/private-actions.js +29 -54
  391. package/build-module/store/private-actions.js.map +1 -1
  392. package/build-module/store/private-selectors.js +0 -6
  393. package/build-module/store/private-selectors.js.map +1 -1
  394. package/build-module/store/reducer.js +34 -46
  395. package/build-module/store/reducer.js.map +1 -1
  396. package/build-module/store/selectors.js +23 -13
  397. package/build-module/store/selectors.js.map +1 -1
  398. package/build-style/content-rtl.css +22 -2
  399. package/build-style/content.css +22 -2
  400. package/build-style/default-editor-styles-rtl.css +1 -0
  401. package/build-style/default-editor-styles.css +1 -0
  402. package/build-style/style-rtl.css +106 -27
  403. package/build-style/style.css +106 -27
  404. package/package.json +31 -31
  405. package/src/components/block-actions/index.js +59 -55
  406. package/src/components/block-bindings-toolbar-indicator/index.js +20 -0
  407. package/src/components/block-bindings-toolbar-indicator/style.scss +16 -0
  408. package/src/components/block-draggable/test/index.native.js +2 -2
  409. package/src/components/block-edit/context.js +1 -0
  410. package/src/components/block-edit/index.js +5 -1
  411. package/src/components/block-heading-level-dropdown/README.md +5 -5
  412. package/src/components/block-heading-level-dropdown/index.js +5 -5
  413. package/src/components/block-heading-level-dropdown/index.native.js +5 -4
  414. package/src/components/block-inspector/index.js +7 -5
  415. package/src/components/block-list/block-crash-boundary.native.js +43 -0
  416. package/src/components/block-list/block-crash-warning.native.js +19 -0
  417. package/src/components/block-list/block-invalid-warning.native.js +1 -1
  418. package/src/components/block-list/block-list-item.native.js +1 -1
  419. package/src/components/block-list/block-outline.native.js +36 -21
  420. package/src/components/block-list/block-selection-button.native.js +1 -3
  421. package/src/components/block-list/block.native.js +14 -10
  422. package/src/components/block-list/content.scss +21 -1
  423. package/src/components/block-list/test/block-outline.native.js +255 -0
  424. package/src/components/block-list/use-block-props/index.js +12 -2
  425. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +3 -7
  426. package/src/components/block-mover/index.native.js +1 -1
  427. package/src/components/block-popover/cover.js +63 -0
  428. package/src/components/block-popover/drop-zone.js +3 -4
  429. package/src/components/block-popover/index.js +1 -28
  430. package/src/components/block-preview/index.js +3 -1
  431. package/src/components/block-removal-warning-modal/index.js +5 -19
  432. package/src/components/block-rename/modal.js +1 -1
  433. package/src/components/block-settings/container.native.js +5 -1
  434. package/src/components/block-settings-menu/block-settings-dropdown.js +53 -65
  435. package/src/components/block-settings-menu-controls/README.md +0 -9
  436. package/src/components/block-settings-menu-controls/index.js +1 -6
  437. package/src/components/block-switcher/block-transformations-menu.native.js +1 -1
  438. package/src/components/block-toolbar/block-toolbar-menu.native.js +2 -2
  439. package/src/components/block-toolbar/index.js +22 -16
  440. package/src/components/block-toolbar/shuffle.js +93 -0
  441. package/src/components/block-toolbar/test/index.native.js +1 -7
  442. package/src/components/block-toolbar/use-has-block-toolbar.js +49 -0
  443. package/src/components/block-tools/block-selection-button.js +4 -0
  444. package/src/components/block-tools/empty-block-inserter.js +3 -6
  445. package/src/components/block-tools/index.js +13 -36
  446. package/src/components/block-tools/use-show-block-tools.js +73 -0
  447. package/src/components/caption/index.native.js +1 -1
  448. package/src/components/child-layout-control/index.js +148 -36
  449. package/src/components/color-palette/control.js +1 -1
  450. package/src/components/colors-gradients/control.js +1 -1
  451. package/src/components/colors-gradients/test/control.js +2 -2
  452. package/src/components/contrast-checker/test/index.js +10 -10
  453. package/src/components/convert-to-group-buttons/toolbar.js +13 -1
  454. package/src/components/default-block-appender/content.scss +5 -2
  455. package/src/components/global-styles/border-panel.js +35 -24
  456. package/src/components/global-styles/color-panel.js +1 -1
  457. package/src/components/global-styles/dimensions-panel.js +9 -34
  458. package/src/components/global-styles/image-settings-panel.js +1 -1
  459. package/src/components/global-styles/index.js +5 -1
  460. package/src/components/global-styles/shadow-panel-components.js +92 -23
  461. package/src/components/global-styles/style.scss +33 -10
  462. package/src/components/global-styles/test/typography-utils.js +231 -81
  463. package/src/components/global-styles/test/use-global-styles-output.js +31 -0
  464. package/src/components/global-styles/typography-utils.js +10 -7
  465. package/src/components/global-styles/use-global-styles-output.js +17 -17
  466. package/src/components/global-styles/utils.js +2 -26
  467. package/src/components/grid-visualizer/grid-item-resizer.js +100 -0
  468. package/src/components/grid-visualizer/grid-visualizer.js +81 -0
  469. package/src/components/grid-visualizer/index.js +2 -0
  470. package/src/components/grid-visualizer/style.scss +33 -0
  471. package/src/components/grid-visualizer/utils.js +5 -0
  472. package/src/components/iframe/index.js +89 -26
  473. package/src/components/index.native.js +1 -0
  474. package/src/components/inner-blocks/use-nested-settings-update.js +12 -2
  475. package/src/components/inserter/block-patterns-explorer/index.js +2 -9
  476. package/src/components/inserter/block-patterns-explorer/pattern-list.js +7 -1
  477. package/src/components/inserter/media-tab/media-preview.js +1 -1
  478. package/src/components/inserter/menu.native.js +3 -3
  479. package/src/components/inserter/mobile-tab-navigation.js +2 -2
  480. package/src/components/inserter/style.scss +10 -0
  481. package/src/components/inspector-controls/block-support-tools-panel.js +2 -2
  482. package/src/components/inspector-controls-tabs/advanced-controls-panel.native.js +31 -0
  483. package/src/components/inspector-controls-tabs/index.js +1 -1
  484. package/src/components/inspector-controls-tabs/styles-tab.js +2 -2
  485. package/src/components/line-height-control/test/index.js +1 -1
  486. package/src/components/link-control/link-preview.js +9 -2
  487. package/src/components/link-control/search-input.js +1 -1
  488. package/src/components/link-control/style.scss +9 -5
  489. package/src/components/list-view/block-select-button.js +0 -2
  490. package/src/components/list-view/block.js +12 -21
  491. package/src/components/list-view/branch.js +1 -1
  492. package/src/components/list-view/drop-indicator.js +1 -1
  493. package/src/components/list-view/index.js +1 -1
  494. package/src/components/list-view/style.scss +34 -16
  495. package/src/components/list-view/use-clipboard-handler.js +3 -2
  496. package/src/components/list-view/utils.js +4 -1
  497. package/src/components/panel-color-settings/index.js +1 -1
  498. package/src/components/panel-color-settings/test/index.js +3 -3
  499. package/src/components/provider/index.js +1 -4
  500. package/src/components/resizable-box-popover/index.js +4 -6
  501. package/src/components/responsive-block-control/README.md +4 -4
  502. package/src/components/responsive-block-control/index.js +1 -1
  503. package/src/components/responsive-block-control/test/index.js +5 -5
  504. package/src/components/rich-text/README.md +6 -0
  505. package/src/components/rich-text/index.js +76 -53
  506. package/src/components/rich-text/use-enter.js +4 -0
  507. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -4
  508. package/src/components/spacing-sizes-control/sides-dropdown/index.js +1 -1
  509. package/src/components/url-popover/index.js +5 -5
  510. package/src/components/url-popover/style.scss +1 -0
  511. package/src/components/use-moving-animation/index.js +1 -0
  512. package/src/components/warning/index.native.js +19 -15
  513. package/src/components/writing-flow/use-clipboard-handler.js +3 -2
  514. package/src/components/writing-flow/utils.js +31 -16
  515. package/src/hooks/anchor.js +41 -61
  516. package/src/hooks/background.js +49 -4
  517. package/src/hooks/block-hooks.js +47 -9
  518. package/src/hooks/block-hooks.scss +6 -0
  519. package/src/hooks/border.js +16 -4
  520. package/src/hooks/dimensions.js +1 -2
  521. package/src/hooks/font-size.js +7 -12
  522. package/src/hooks/index.js +3 -0
  523. package/src/hooks/layout-child.js +82 -8
  524. package/src/hooks/layout.js +34 -19
  525. package/src/hooks/line-height.js +1 -1
  526. package/src/hooks/position.js +1 -1
  527. package/src/hooks/spacing-visualizer.js +126 -0
  528. package/src/hooks/{padding.scss → spacing.scss} +1 -1
  529. package/src/hooks/test/__snapshots__/anchor.native.js.snap +7 -0
  530. package/src/hooks/test/anchor.native.js +32 -0
  531. package/src/hooks/use-bindings-attributes.js +215 -65
  532. package/src/hooks/use-typography-props.js +2 -8
  533. package/src/layouts/grid.js +8 -3
  534. package/src/private-apis.js +6 -2
  535. package/src/private-apis.native.js +2 -0
  536. package/src/store/actions.js +56 -18
  537. package/src/store/private-actions.js +34 -79
  538. package/src/store/private-selectors.js +0 -8
  539. package/src/store/reducer.js +43 -64
  540. package/src/store/selectors.js +41 -46
  541. package/src/store/test/actions.js +0 -4
  542. package/src/style.scss +3 -1
  543. package/tsconfig.json +1 -0
  544. package/build/hooks/margin.js +0 -86
  545. package/build/hooks/margin.js.map +0 -1
  546. package/build/hooks/padding.js +0 -78
  547. package/build/hooks/padding.js.map +0 -1
  548. package/build/utils/use-can-block-toolbar-be-focused.js +0 -46
  549. package/build/utils/use-can-block-toolbar-be-focused.js.map +0 -1
  550. package/build-module/hooks/margin.js +0 -78
  551. package/build-module/hooks/margin.js.map +0 -1
  552. package/build-module/hooks/padding.js +0 -70
  553. package/build-module/hooks/padding.js.map +0 -1
  554. package/build-module/utils/use-can-block-toolbar-be-focused.js +0 -40
  555. package/build-module/utils/use-can-block-toolbar-be-focused.js.map +0 -1
  556. package/src/hooks/margin.js +0 -91
  557. package/src/hooks/padding.js +0 -82
  558. package/src/utils/use-can-block-toolbar-be-focused.js +0 -48
@@ -12,13 +12,14 @@ import { useDispatch, useSelect } from '@wordpress/data';
12
12
  import { useMergeRefs } from '@wordpress/compose';
13
13
  import { __unstableUseRichText as useRichText, removeFormat } from '@wordpress/rich-text';
14
14
  import { Popover } from '@wordpress/components';
15
- import { getBlockType } from '@wordpress/blocks';
15
+ import { getBlockType, store as blocksStore } from '@wordpress/blocks';
16
16
 
17
17
  /**
18
18
  * Internal dependencies
19
19
  */
20
20
  import { useBlockEditorAutocompleteProps } from '../autocomplete';
21
21
  import { useBlockEditContext } from '../block-edit';
22
+ import { blockBindingsKey } from '../block-edit/context';
22
23
  import FormatToolbarContainer from './format-toolbar-container';
23
24
  import { store as blockEditorStore } from '../../store';
24
25
  import { useUndoAutomaticChange } from './use-undo-automatic-change';
@@ -39,7 +40,7 @@ import { getAllowedFormats } from './utils';
39
40
  import { Content } from './content';
40
41
  import { withDeprecations } from './with-deprecations';
41
42
  import { unlock } from '../../lock-unlock';
42
- import { BLOCK_BINDINGS_ALLOWED_BLOCKS } from '../../hooks/use-bindings-attributes';
43
+ import { canBindBlock } from '../../hooks/use-bindings-attributes';
43
44
  export const keyboardShortcutContext = createContext();
44
45
  export const inputEventContext = createContext();
45
46
 
@@ -99,15 +100,18 @@ export function RichTextWrapper({
99
100
  __unstableDisableFormats: disableFormats,
100
101
  disableLineBreaks,
101
102
  __unstableAllowPrefixTransformations,
103
+ disableEditing,
102
104
  ...props
103
105
  }, forwardedRef) {
104
106
  props = removeNativeProps(props);
105
107
  const anchorRef = useRef();
108
+ const context = useBlockEditContext();
106
109
  const {
107
110
  clientId,
108
111
  isSelected: isBlockSelected,
109
112
  name: blockName
110
- } = useBlockEditContext();
113
+ } = context;
114
+ const blockBindings = context[blockBindingsKey];
111
115
  const selector = select => {
112
116
  // Avoid subscribing to the block editor store if the block is not
113
117
  // selected.
@@ -118,26 +122,35 @@ export function RichTextWrapper({
118
122
  }
119
123
  const {
120
124
  getSelectionStart,
121
- getSelectionEnd,
122
- getBlockAttributes
125
+ getSelectionEnd
123
126
  } = select(blockEditorStore);
124
127
  const selectionStart = getSelectionStart();
125
128
  const selectionEnd = getSelectionEnd();
126
- const blockBindings = getBlockAttributes(clientId)?.metadata?.bindings;
127
129
  let isSelected;
128
130
  if (originalIsSelected === undefined) {
129
131
  isSelected = selectionStart.clientId === clientId && selectionEnd.clientId === clientId && selectionStart.attributeKey === identifier;
130
132
  } else if (originalIsSelected) {
131
133
  isSelected = selectionStart.clientId === clientId;
132
134
  }
133
-
135
+ return {
136
+ selectionStart: isSelected ? selectionStart.offset : undefined,
137
+ selectionEnd: isSelected ? selectionEnd.offset : undefined,
138
+ isSelected
139
+ };
140
+ };
141
+ const {
142
+ selectionStart,
143
+ selectionEnd,
144
+ isSelected
145
+ } = useSelect(selector, [clientId, identifier, originalIsSelected, isBlockSelected]);
146
+ const disableBoundBlocks = useSelect(select => {
134
147
  // Disable Rich Text editing if block bindings specify that.
135
- let shouldDisableEditing = false;
136
- if (blockBindings && blockName in BLOCK_BINDINGS_ALLOWED_BLOCKS) {
148
+ let _disableBoundBlocks = false;
149
+ if (blockBindings && canBindBlock(blockName)) {
137
150
  const blockTypeAttributes = getBlockType(blockName).attributes;
138
151
  const {
139
152
  getBlockBindingsSource
140
- } = unlock(select(blockEditorStore));
153
+ } = unlock(select(blocksStore));
141
154
  for (const [attribute, args] of Object.entries(blockBindings)) {
142
155
  if (blockTypeAttributes?.[attribute]?.source !== 'rich-text') {
143
156
  break;
@@ -146,24 +159,14 @@ export function RichTextWrapper({
146
159
  // If the source is not defined, or if its value of `lockAttributesEditing` is `true`, disable it.
147
160
  const blockBindingsSource = getBlockBindingsSource(args.source);
148
161
  if (!blockBindingsSource || blockBindingsSource.lockAttributesEditing) {
149
- shouldDisableEditing = true;
162
+ _disableBoundBlocks = true;
150
163
  break;
151
164
  }
152
165
  }
153
166
  }
154
- return {
155
- selectionStart: isSelected ? selectionStart.offset : undefined,
156
- selectionEnd: isSelected ? selectionEnd.offset : undefined,
157
- isSelected,
158
- shouldDisableEditing
159
- };
160
- };
161
- const {
162
- selectionStart,
163
- selectionEnd,
164
- isSelected,
165
- shouldDisableEditing
166
- } = useSelect(selector, [clientId, identifier, originalIsSelected, isBlockSelected]);
167
+ return _disableBoundBlocks;
168
+ }, [blockBindings, blockName]);
169
+ const shouldDisableEditing = disableEditing || disableBoundBlocks;
167
170
  const {
168
171
  getSelectionStart,
169
172
  getSelectionEnd,
@@ -358,16 +361,32 @@ export function RichTextWrapper({
358
361
  "data-wp-block-attribute-key": identifier
359
362
  }));
360
363
  }
361
- const ForwardedRichTextContainer = withDeprecations(forwardRef(RichTextWrapper));
362
- ForwardedRichTextContainer.Content = Content;
363
- ForwardedRichTextContainer.isEmpty = value => {
364
+
365
+ // This is the private API for the RichText component.
366
+ // It allows access to all props, not just the public ones.
367
+ export const PrivateRichText = withDeprecations(forwardRef(RichTextWrapper));
368
+ PrivateRichText.Content = Content;
369
+ PrivateRichText.isEmpty = value => {
364
370
  return !value || value.length === 0;
365
371
  };
366
372
 
373
+ // This is the public API for the RichText component.
374
+ // We wrap the PrivateRichText component to hide some props from the public API.
367
375
  /**
368
376
  * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md
369
377
  */
370
- export default ForwardedRichTextContainer;
378
+ const PublicForwardedRichTextContainer = forwardRef((props, ref) => {
379
+ return createElement(PrivateRichText, {
380
+ ref: ref,
381
+ ...props,
382
+ disableEditing: false
383
+ });
384
+ });
385
+ PublicForwardedRichTextContainer.Content = Content;
386
+ PublicForwardedRichTextContainer.isEmpty = value => {
387
+ return !value || value.length === 0;
388
+ };
389
+ export default PublicForwardedRichTextContainer;
371
390
  export { RichTextShortcut } from './shortcut';
372
391
  export { RichTextToolbarButton } from './toolbar-button';
373
392
  export { __unstableRichTextInputEvent } from './input-event';
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useRef","useCallback","forwardRef","createContext","useDispatch","useSelect","useMergeRefs","__unstableUseRichText","useRichText","removeFormat","Popover","getBlockType","useBlockEditorAutocompleteProps","useBlockEditContext","FormatToolbarContainer","store","blockEditorStore","useUndoAutomaticChange","useMarkPersistent","usePasteHandler","useBeforeInputRules","useInputRules","useDelete","useEnter","useFormatTypes","useRemoveBrowserShortcuts","useShortcuts","useInputEvents","useInsertReplacementText","useFirefoxCompat","FormatEdit","getAllowedFormats","Content","withDeprecations","unlock","BLOCK_BINDINGS_ALLOWED_BLOCKS","keyboardShortcutContext","inputEventContext","removeNativeProps","props","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","setRef","disableSuggestions","disableAutocorrection","restProps","RichTextWrapper","children","tagName","value","adjustedValue","onChange","adjustedOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitAtDoubleLineEnd","onSplitAtDoubleLineEnd","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","__unstableAllowPrefixTransformations","forwardedRef","anchorRef","clientId","isBlockSelected","name","blockName","selector","select","getSelectionStart","getSelectionEnd","getBlockAttributes","selectionStart","selectionEnd","blockBindings","metadata","bindings","undefined","attributeKey","shouldDisableEditing","blockTypeAttributes","attributes","getBlockBindingsSource","attribute","args","Object","entries","source","blockBindingsSource","lockAttributesEditing","offset","getBlockRootClientId","selectionChange","adjustedAllowedFormats","hasFormats","length","onSelectionChange","start","end","selection","unset","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","addInvisibleFormats","getValue","ref","richTextRef","html","__unstableFormats","__unstableText","values","changeHandler","__unstableIsSelected","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","completers","record","keyboardShortcuts","Set","inputEvents","onFocus","current","focus","TagName","createElement","Fragment","Provider","__unstableSlotNameProvider","inline","editableContentElement","role","contentEditable","suppressContentEditableWarning","className","tabIndex","ForwardedRichTextContainer","isEmpty","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent"],"sources":["@wordpress/block-editor/src/components/rich-text/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMergeRefs } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport { Popover } from '@wordpress/components';\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useUndoAutomaticChange } from './use-undo-automatic-change';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { usePasteHandler } from './use-paste-handler';\nimport { useBeforeInputRules } from './use-before-input-rules';\nimport { useInputRules } from './use-input-rules';\nimport { useDelete } from './use-delete';\nimport { useEnter } from './use-enter';\nimport { useFormatTypes } from './use-format-types';\nimport { useRemoveBrowserShortcuts } from './use-remove-browser-shortcuts';\nimport { useShortcuts } from './use-shortcuts';\nimport { useInputEvents } from './use-input-events';\nimport { useInsertReplacementText } from './use-insert-replacement-text';\nimport { useFirefoxCompat } from './use-firefox-compat';\nimport FormatEdit from './format-edit';\nimport { getAllowedFormats } from './utils';\nimport { Content } from './content';\nimport { withDeprecations } from './with-deprecations';\nimport { unlock } from '../../lock-unlock';\nimport { BLOCK_BINDINGS_ALLOWED_BLOCKS } from '../../hooks/use-bindings-attributes';\n\nexport const keyboardShortcutContext = createContext();\nexport const inputEventContext = createContext();\n\n/**\n * Removes props used for the native version of RichText so that they are not\n * passed to the DOM element and log warnings.\n *\n * @param {Object} props Props to filter.\n *\n * @return {Object} Filtered props.\n */\nfunction removeNativeProps( props ) {\n\tconst {\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tsetRef,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\t...restProps\n\t} = props;\n\treturn restProps;\n}\n\nexport function RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName = 'div',\n\t\tvalue: adjustedValue = '',\n\t\tonChange: adjustedOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\t__unstableAllowPrefixTransformations,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tprops = removeNativeProps( props );\n\n\tconst anchorRef = useRef();\n\tconst {\n\t\tclientId,\n\t\tisSelected: isBlockSelected,\n\t\tname: blockName,\n\t} = useBlockEditContext();\n\tconst selector = ( select ) => {\n\t\t// Avoid subscribing to the block editor store if the block is not\n\t\t// selected.\n\t\tif ( ! isBlockSelected ) {\n\t\t\treturn { isSelected: false };\n\t\t}\n\n\t\tconst { getSelectionStart, getSelectionEnd, getBlockAttributes } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\t\tconst blockBindings =\n\t\t\tgetBlockAttributes( clientId )?.metadata?.bindings;\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionEnd.clientId === clientId &&\n\t\t\t\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\t// Disable Rich Text editing if block bindings specify that.\n\t\tlet shouldDisableEditing = false;\n\t\tif ( blockBindings && blockName in BLOCK_BINDINGS_ALLOWED_BLOCKS ) {\n\t\t\tconst blockTypeAttributes = getBlockType( blockName ).attributes;\n\t\t\tconst { getBlockBindingsSource } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\tfor ( const [ attribute, args ] of Object.entries(\n\t\t\t\tblockBindings\n\t\t\t) ) {\n\t\t\t\tif (\n\t\t\t\t\tblockTypeAttributes?.[ attribute ]?.source !== 'rich-text'\n\t\t\t\t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\t// If the source is not defined, or if its value of `lockAttributesEditing` is `true`, disable it.\n\t\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\t\targs.source\n\t\t\t\t);\n\t\t\t\tif (\n\t\t\t\t\t! blockBindingsSource ||\n\t\t\t\t\tblockBindingsSource.lockAttributesEditing\n\t\t\t\t) {\n\t\t\t\t\tshouldDisableEditing = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t\tshouldDisableEditing,\n\t\t};\n\t};\n\tconst { selectionStart, selectionEnd, isSelected, shouldDisableEditing } =\n\t\tuseSelect( selector, [\n\t\t\tclientId,\n\t\t\tidentifier,\n\t\t\toriginalIsSelected,\n\t\t\tisBlockSelected,\n\t\t] );\n\tconst { getSelectionStart, getSelectionEnd, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\n\tconst onSelectionChange = useCallback(\n\t\t( start, end ) => {\n\t\t\tconst selection = {};\n\t\t\tconst unset = start === undefined && end === undefined;\n\n\t\t\tif ( typeof start === 'number' || unset ) {\n\t\t\t\t// If we are only setting the start (or the end below), which\n\t\t\t\t// means a partial selection, and we're not updating a selection\n\t\t\t\t// with the same client ID, abort. This means the selected block\n\t\t\t\t// is a parent block.\n\t\t\t\tif (\n\t\t\t\t\tend === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionEnd().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.start = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: start,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( typeof end === 'number' || unset ) {\n\t\t\t\tif (\n\t\t\t\t\tstart === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionStart().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.end = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: end,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tselectionChange( selection );\n\t\t},\n\t\t[ clientId, identifier ]\n\t);\n\n\tconst {\n\t\tformatTypes,\n\t\tprepareHandlers,\n\t\tvalueHandlers,\n\t\tchangeHandlers,\n\t\tdependencies,\n\t} = useFormatTypes( {\n\t\tclientId,\n\t\tidentifier,\n\t\twithoutInteractiveFormatting,\n\t\tallowedFormats: adjustedAllowedFormats,\n\t} );\n\n\tfunction addEditorOnlyFormats( value ) {\n\t\treturn valueHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tfunction removeEditorOnlyFormats( value ) {\n\t\tformatTypes.forEach( ( formatType ) => {\n\t\t\t// Remove formats created by prepareEditableTree, because they are editor only.\n\t\t\tif ( formatType.__experimentalCreatePrepareEditableTree ) {\n\t\t\t\tvalue = removeFormat(\n\t\t\t\t\tvalue,\n\t\t\t\t\tformatType.name,\n\t\t\t\t\t0,\n\t\t\t\t\tvalue.text.length\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn value.formats;\n\t}\n\n\tfunction addInvisibleFormats( value ) {\n\t\treturn prepareHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tconst {\n\t\tvalue,\n\t\tgetValue,\n\t\tonChange,\n\t\tref: richTextRef,\n\t} = useRichText( {\n\t\tvalue: adjustedValue,\n\t\tonChange( html, { __unstableFormats, __unstableText } ) {\n\t\t\tadjustedOnChange( html );\n\t\t\tObject.values( changeHandlers ).forEach( ( changeHandler ) => {\n\t\t\t\tchangeHandler( __unstableFormats, __unstableText );\n\t\t\t} );\n\t\t},\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tonSelectionChange,\n\t\tplaceholder,\n\t\t__unstableIsSelected: isSelected,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tpreserveWhiteSpace,\n\t\t__unstableDependencies: [ ...dependencies, tagName ],\n\t\t__unstableAfterParse: addEditorOnlyFormats,\n\t\t__unstableBeforeSerialize: removeEditorOnlyFormats,\n\t\t__unstableAddInvisibleFormats: addInvisibleFormats,\n\t} );\n\tconst autocompleteProps = useBlockEditorAutocompleteProps( {\n\t\tonReplace,\n\t\tcompleters: autocompleters,\n\t\trecord: value,\n\t\tonChange,\n\t} );\n\n\tuseMarkPersistent( { html: adjustedValue, value } );\n\n\tconst keyboardShortcuts = useRef( new Set() );\n\tconst inputEvents = useRef( new Set() );\n\n\tfunction onFocus() {\n\t\tanchorRef.current?.focus();\n\t}\n\n\tconst TagName = tagName;\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<keyboardShortcutContext.Provider value={ keyboardShortcuts }>\n\t\t\t\t\t<inputEventContext.Provider value={ inputEvents }>\n\t\t\t\t\t\t<Popover.__unstableSlotNameProvider value=\"__unstable-block-tools-after\">\n\t\t\t\t\t\t\t{ children &&\n\t\t\t\t\t\t\t\tchildren( { value, onChange, onFocus } ) }\n\n\t\t\t\t\t\t\t<FormatEdit\n\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\tformatTypes={ formatTypes }\n\t\t\t\t\t\t\t\tforwardedRef={ anchorRef }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover.__unstableSlotNameProvider>\n\t\t\t\t\t</inputEventContext.Provider>\n\t\t\t\t</keyboardShortcutContext.Provider>\n\t\t\t) }\n\t\t\t{ isSelected && hasFormats && (\n\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\teditableContentElement={ anchorRef.current }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<TagName\n\t\t\t\t// Overridable props.\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline={ ! disableLineBreaks }\n\t\t\t\taria-label={ placeholder }\n\t\t\t\taria-readonly={ shouldDisableEditing }\n\t\t\t\t{ ...props }\n\t\t\t\t{ ...autocompleteProps }\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t// Rich text ref must be first because its focus listener\n\t\t\t\t\t// must be set up before any other ref calls .focus() on\n\t\t\t\t\t// mount.\n\t\t\t\t\trichTextRef,\n\t\t\t\t\tforwardedRef,\n\t\t\t\t\tautocompleteProps.ref,\n\t\t\t\t\tprops.ref,\n\t\t\t\t\tuseBeforeInputRules( { value, onChange } ),\n\t\t\t\t\tuseInputRules( {\n\t\t\t\t\t\tgetValue,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\t__unstableAllowPrefixTransformations,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tselectionChange,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseInsertReplacementText(),\n\t\t\t\t\tuseRemoveBrowserShortcuts(),\n\t\t\t\t\tuseShortcuts( keyboardShortcuts ),\n\t\t\t\t\tuseInputEvents( inputEvents ),\n\t\t\t\t\tuseUndoAutomaticChange(),\n\t\t\t\t\tusePasteHandler( {\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\ttagName,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t\t\t\tpastePlainText,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseDelete( {\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonMerge,\n\t\t\t\t\t\tonRemove,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseEnter( {\n\t\t\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tdisableLineBreaks,\n\t\t\t\t\t\tonSplitAtEnd,\n\t\t\t\t\t\tonSplitAtDoubleLineEnd,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseFirefoxCompat(),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ ! shouldDisableEditing }\n\t\t\t\tsuppressContentEditableWarning={ true }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-rich-text__editable',\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'rich-text'\n\t\t\t\t) }\n\t\t\t\t// Setting tabIndex to 0 is unnecessary, the element is already\n\t\t\t\t// focusable because it's contentEditable. This also fixes a\n\t\t\t\t// Safari bug where it's not possible to Shift+Click multi\n\t\t\t\t// select blocks when Shift Clicking into an element with\n\t\t\t\t// tabIndex because Safari will focus the element. However,\n\t\t\t\t// Safari will correctly ignore nested contentEditable elements.\n\t\t\t\ttabIndex={\n\t\t\t\t\tprops.tabIndex === 0 && ! shouldDisableEditing\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: props.tabIndex\n\t\t\t\t}\n\t\t\t\tdata-wp-block-attribute-key={ identifier }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nconst ForwardedRichTextContainer = withDeprecations(\n\tforwardRef( RichTextWrapper )\n);\n\nForwardedRichTextContainer.Content = Content;\nForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nexport default ForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","useRef","useCallback","forwardRef","createContext","useDispatch","useSelect","useMergeRefs","__unstableUseRichText","useRichText","removeFormat","Popover","getBlockType","store","blocksStore","useBlockEditorAutocompleteProps","useBlockEditContext","blockBindingsKey","FormatToolbarContainer","blockEditorStore","useUndoAutomaticChange","useMarkPersistent","usePasteHandler","useBeforeInputRules","useInputRules","useDelete","useEnter","useFormatTypes","useRemoveBrowserShortcuts","useShortcuts","useInputEvents","useInsertReplacementText","useFirefoxCompat","FormatEdit","getAllowedFormats","Content","withDeprecations","unlock","canBindBlock","keyboardShortcutContext","inputEventContext","removeNativeProps","props","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","setRef","disableSuggestions","disableAutocorrection","restProps","RichTextWrapper","children","tagName","value","adjustedValue","onChange","adjustedOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitAtDoubleLineEnd","onSplitAtDoubleLineEnd","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","__unstableAllowPrefixTransformations","disableEditing","forwardedRef","anchorRef","context","clientId","isBlockSelected","name","blockName","blockBindings","selector","select","getSelectionStart","getSelectionEnd","selectionStart","selectionEnd","undefined","attributeKey","offset","disableBoundBlocks","_disableBoundBlocks","blockTypeAttributes","attributes","getBlockBindingsSource","attribute","args","Object","entries","source","blockBindingsSource","lockAttributesEditing","shouldDisableEditing","getBlockRootClientId","selectionChange","adjustedAllowedFormats","hasFormats","length","onSelectionChange","start","end","selection","unset","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","addInvisibleFormats","getValue","ref","richTextRef","html","__unstableFormats","__unstableText","values","changeHandler","__unstableIsSelected","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","completers","record","keyboardShortcuts","Set","inputEvents","onFocus","current","focus","TagName","createElement","Fragment","Provider","__unstableSlotNameProvider","inline","editableContentElement","role","contentEditable","suppressContentEditableWarning","className","tabIndex","PrivateRichText","isEmpty","PublicForwardedRichTextContainer","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent"],"sources":["@wordpress/block-editor/src/components/rich-text/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMergeRefs } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport { Popover } from '@wordpress/components';\nimport { getBlockType, store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { blockBindingsKey } from '../block-edit/context';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useUndoAutomaticChange } from './use-undo-automatic-change';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { usePasteHandler } from './use-paste-handler';\nimport { useBeforeInputRules } from './use-before-input-rules';\nimport { useInputRules } from './use-input-rules';\nimport { useDelete } from './use-delete';\nimport { useEnter } from './use-enter';\nimport { useFormatTypes } from './use-format-types';\nimport { useRemoveBrowserShortcuts } from './use-remove-browser-shortcuts';\nimport { useShortcuts } from './use-shortcuts';\nimport { useInputEvents } from './use-input-events';\nimport { useInsertReplacementText } from './use-insert-replacement-text';\nimport { useFirefoxCompat } from './use-firefox-compat';\nimport FormatEdit from './format-edit';\nimport { getAllowedFormats } from './utils';\nimport { Content } from './content';\nimport { withDeprecations } from './with-deprecations';\nimport { unlock } from '../../lock-unlock';\nimport { canBindBlock } from '../../hooks/use-bindings-attributes';\n\nexport const keyboardShortcutContext = createContext();\nexport const inputEventContext = createContext();\n\n/**\n * Removes props used for the native version of RichText so that they are not\n * passed to the DOM element and log warnings.\n *\n * @param {Object} props Props to filter.\n *\n * @return {Object} Filtered props.\n */\nfunction removeNativeProps( props ) {\n\tconst {\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tsetRef,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\t...restProps\n\t} = props;\n\treturn restProps;\n}\n\nexport function RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName = 'div',\n\t\tvalue: adjustedValue = '',\n\t\tonChange: adjustedOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\t__unstableAllowPrefixTransformations,\n\t\tdisableEditing,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tprops = removeNativeProps( props );\n\n\tconst anchorRef = useRef();\n\tconst context = useBlockEditContext();\n\tconst { clientId, isSelected: isBlockSelected, name: blockName } = context;\n\tconst blockBindings = context[ blockBindingsKey ];\n\tconst selector = ( select ) => {\n\t\t// Avoid subscribing to the block editor store if the block is not\n\t\t// selected.\n\t\tif ( ! isBlockSelected ) {\n\t\t\treturn { isSelected: false };\n\t\t}\n\n\t\tconst { getSelectionStart, getSelectionEnd } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionEnd.clientId === clientId &&\n\t\t\t\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t};\n\t};\n\tconst { selectionStart, selectionEnd, isSelected } = useSelect( selector, [\n\t\tclientId,\n\t\tidentifier,\n\t\toriginalIsSelected,\n\t\tisBlockSelected,\n\t] );\n\n\tconst disableBoundBlocks = useSelect(\n\t\t( select ) => {\n\t\t\t// Disable Rich Text editing if block bindings specify that.\n\t\t\tlet _disableBoundBlocks = false;\n\t\t\tif ( blockBindings && canBindBlock( blockName ) ) {\n\t\t\t\tconst blockTypeAttributes =\n\t\t\t\t\tgetBlockType( blockName ).attributes;\n\t\t\t\tconst { getBlockBindingsSource } = unlock(\n\t\t\t\t\tselect( blocksStore )\n\t\t\t\t);\n\t\t\t\tfor ( const [ attribute, args ] of Object.entries(\n\t\t\t\t\tblockBindings\n\t\t\t\t) ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockTypeAttributes?.[ attribute ]?.source !==\n\t\t\t\t\t\t'rich-text'\n\t\t\t\t\t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t// If the source is not defined, or if its value of `lockAttributesEditing` is `true`, disable it.\n\t\t\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\t\t\targs.source\n\t\t\t\t\t);\n\t\t\t\t\tif (\n\t\t\t\t\t\t! blockBindingsSource ||\n\t\t\t\t\t\tblockBindingsSource.lockAttributesEditing\n\t\t\t\t\t) {\n\t\t\t\t\t\t_disableBoundBlocks = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn _disableBoundBlocks;\n\t\t},\n\t\t[ blockBindings, blockName ]\n\t);\n\n\tconst shouldDisableEditing = disableEditing || disableBoundBlocks;\n\n\tconst { getSelectionStart, getSelectionEnd, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\n\tconst onSelectionChange = useCallback(\n\t\t( start, end ) => {\n\t\t\tconst selection = {};\n\t\t\tconst unset = start === undefined && end === undefined;\n\n\t\t\tif ( typeof start === 'number' || unset ) {\n\t\t\t\t// If we are only setting the start (or the end below), which\n\t\t\t\t// means a partial selection, and we're not updating a selection\n\t\t\t\t// with the same client ID, abort. This means the selected block\n\t\t\t\t// is a parent block.\n\t\t\t\tif (\n\t\t\t\t\tend === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionEnd().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.start = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: start,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( typeof end === 'number' || unset ) {\n\t\t\t\tif (\n\t\t\t\t\tstart === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionStart().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.end = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: end,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tselectionChange( selection );\n\t\t},\n\t\t[ clientId, identifier ]\n\t);\n\n\tconst {\n\t\tformatTypes,\n\t\tprepareHandlers,\n\t\tvalueHandlers,\n\t\tchangeHandlers,\n\t\tdependencies,\n\t} = useFormatTypes( {\n\t\tclientId,\n\t\tidentifier,\n\t\twithoutInteractiveFormatting,\n\t\tallowedFormats: adjustedAllowedFormats,\n\t} );\n\n\tfunction addEditorOnlyFormats( value ) {\n\t\treturn valueHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tfunction removeEditorOnlyFormats( value ) {\n\t\tformatTypes.forEach( ( formatType ) => {\n\t\t\t// Remove formats created by prepareEditableTree, because they are editor only.\n\t\t\tif ( formatType.__experimentalCreatePrepareEditableTree ) {\n\t\t\t\tvalue = removeFormat(\n\t\t\t\t\tvalue,\n\t\t\t\t\tformatType.name,\n\t\t\t\t\t0,\n\t\t\t\t\tvalue.text.length\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn value.formats;\n\t}\n\n\tfunction addInvisibleFormats( value ) {\n\t\treturn prepareHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tconst {\n\t\tvalue,\n\t\tgetValue,\n\t\tonChange,\n\t\tref: richTextRef,\n\t} = useRichText( {\n\t\tvalue: adjustedValue,\n\t\tonChange( html, { __unstableFormats, __unstableText } ) {\n\t\t\tadjustedOnChange( html );\n\t\t\tObject.values( changeHandlers ).forEach( ( changeHandler ) => {\n\t\t\t\tchangeHandler( __unstableFormats, __unstableText );\n\t\t\t} );\n\t\t},\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tonSelectionChange,\n\t\tplaceholder,\n\t\t__unstableIsSelected: isSelected,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tpreserveWhiteSpace,\n\t\t__unstableDependencies: [ ...dependencies, tagName ],\n\t\t__unstableAfterParse: addEditorOnlyFormats,\n\t\t__unstableBeforeSerialize: removeEditorOnlyFormats,\n\t\t__unstableAddInvisibleFormats: addInvisibleFormats,\n\t} );\n\tconst autocompleteProps = useBlockEditorAutocompleteProps( {\n\t\tonReplace,\n\t\tcompleters: autocompleters,\n\t\trecord: value,\n\t\tonChange,\n\t} );\n\n\tuseMarkPersistent( { html: adjustedValue, value } );\n\n\tconst keyboardShortcuts = useRef( new Set() );\n\tconst inputEvents = useRef( new Set() );\n\n\tfunction onFocus() {\n\t\tanchorRef.current?.focus();\n\t}\n\n\tconst TagName = tagName;\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<keyboardShortcutContext.Provider value={ keyboardShortcuts }>\n\t\t\t\t\t<inputEventContext.Provider value={ inputEvents }>\n\t\t\t\t\t\t<Popover.__unstableSlotNameProvider value=\"__unstable-block-tools-after\">\n\t\t\t\t\t\t\t{ children &&\n\t\t\t\t\t\t\t\tchildren( { value, onChange, onFocus } ) }\n\n\t\t\t\t\t\t\t<FormatEdit\n\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\tformatTypes={ formatTypes }\n\t\t\t\t\t\t\t\tforwardedRef={ anchorRef }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover.__unstableSlotNameProvider>\n\t\t\t\t\t</inputEventContext.Provider>\n\t\t\t\t</keyboardShortcutContext.Provider>\n\t\t\t) }\n\t\t\t{ isSelected && hasFormats && (\n\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\teditableContentElement={ anchorRef.current }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<TagName\n\t\t\t\t// Overridable props.\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline={ ! disableLineBreaks }\n\t\t\t\taria-label={ placeholder }\n\t\t\t\taria-readonly={ shouldDisableEditing }\n\t\t\t\t{ ...props }\n\t\t\t\t{ ...autocompleteProps }\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t// Rich text ref must be first because its focus listener\n\t\t\t\t\t// must be set up before any other ref calls .focus() on\n\t\t\t\t\t// mount.\n\t\t\t\t\trichTextRef,\n\t\t\t\t\tforwardedRef,\n\t\t\t\t\tautocompleteProps.ref,\n\t\t\t\t\tprops.ref,\n\t\t\t\t\tuseBeforeInputRules( { value, onChange } ),\n\t\t\t\t\tuseInputRules( {\n\t\t\t\t\t\tgetValue,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\t__unstableAllowPrefixTransformations,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tselectionChange,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseInsertReplacementText(),\n\t\t\t\t\tuseRemoveBrowserShortcuts(),\n\t\t\t\t\tuseShortcuts( keyboardShortcuts ),\n\t\t\t\t\tuseInputEvents( inputEvents ),\n\t\t\t\t\tuseUndoAutomaticChange(),\n\t\t\t\t\tusePasteHandler( {\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\ttagName,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t\t\t\tpastePlainText,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseDelete( {\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonMerge,\n\t\t\t\t\t\tonRemove,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseEnter( {\n\t\t\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tdisableLineBreaks,\n\t\t\t\t\t\tonSplitAtEnd,\n\t\t\t\t\t\tonSplitAtDoubleLineEnd,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseFirefoxCompat(),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ ! shouldDisableEditing }\n\t\t\t\tsuppressContentEditableWarning\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-rich-text__editable',\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'rich-text'\n\t\t\t\t) }\n\t\t\t\t// Setting tabIndex to 0 is unnecessary, the element is already\n\t\t\t\t// focusable because it's contentEditable. This also fixes a\n\t\t\t\t// Safari bug where it's not possible to Shift+Click multi\n\t\t\t\t// select blocks when Shift Clicking into an element with\n\t\t\t\t// tabIndex because Safari will focus the element. However,\n\t\t\t\t// Safari will correctly ignore nested contentEditable elements.\n\t\t\t\ttabIndex={\n\t\t\t\t\tprops.tabIndex === 0 && ! shouldDisableEditing\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: props.tabIndex\n\t\t\t\t}\n\t\t\t\tdata-wp-block-attribute-key={ identifier }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\n// This is the private API for the RichText component.\n// It allows access to all props, not just the public ones.\nexport const PrivateRichText = withDeprecations(\n\tforwardRef( RichTextWrapper )\n);\n\nPrivateRichText.Content = Content;\nPrivateRichText.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\n// This is the public API for the RichText component.\n// We wrap the PrivateRichText component to hide some props from the public API.\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nconst PublicForwardedRichTextContainer = forwardRef( ( props, ref ) => {\n\treturn (\n\t\t<PrivateRichText ref={ ref } { ...props } disableEditing={ false } />\n\t);\n} );\n\nPublicForwardedRichTextContainer.Content = Content;\nPublicForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\nexport default PublicForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"],"mappings":"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"}
@@ -22,6 +22,9 @@ export function useEnter(props) {
22
22
  propsRef.current = props;
23
23
  return useRefEffect(element => {
24
24
  function onKeyDown(event) {
25
+ if (event.target.contentEditable !== 'true') {
26
+ return;
27
+ }
25
28
  if (event.defaultPrevented) {
26
29
  return;
27
30
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useRef","useRefEffect","ENTER","insert","remove","getBlockTransforms","findTransform","useDispatch","useRegistry","store","blockEditorStore","splitValue","useEnter","props","registry","__unstableMarkAutomaticChange","propsRef","current","element","onKeyDown","event","defaultPrevented","keyCode","removeEditorOnlyFormats","value","onReplace","onSplit","onChange","disableLineBreaks","onSplitAtEnd","onSplitAtDoubleLineEnd","preventDefault","_value","formats","canSplit","transforms","filter","type","transformation","item","regExp","test","text","transform","content","start","end","shiftKey","length","slice","batch","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/rich-text/use-enter.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRef } from '@wordpress/element';\nimport { useRefEffect } from '@wordpress/compose';\nimport { ENTER } from '@wordpress/keycodes';\nimport { insert, remove } from '@wordpress/rich-text';\nimport { getBlockTransforms, findTransform } from '@wordpress/blocks';\nimport { useDispatch, useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { splitValue } from './split-value';\n\nexport function useEnter( props ) {\n\tconst registry = useRegistry();\n\tconst { __unstableMarkAutomaticChange } = useDispatch( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\tvalue,\n\t\t\t\tonReplace,\n\t\t\t\tonSplit,\n\t\t\t\tonChange,\n\t\t\t\tdisableLineBreaks,\n\t\t\t\tonSplitAtEnd,\n\t\t\t\tonSplitAtDoubleLineEnd,\n\t\t\t} = propsRef.current;\n\n\t\t\tevent.preventDefault();\n\n\t\t\tconst _value = { ...value };\n\t\t\t_value.formats = removeEditorOnlyFormats( value );\n\t\t\tconst canSplit = onReplace && onSplit;\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst transforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t\t( { type } ) => type === 'enter'\n\t\t\t\t);\n\t\t\t\tconst transformation = findTransform( transforms, ( item ) => {\n\t\t\t\t\treturn item.regExp.test( _value.text );\n\t\t\t\t} );\n\n\t\t\t\tif ( transformation ) {\n\t\t\t\t\tonReplace( [\n\t\t\t\t\t\ttransformation.transform( {\n\t\t\t\t\t\t\tcontent: _value.text,\n\t\t\t\t\t\t} ),\n\t\t\t\t\t] );\n\t\t\t\t\t__unstableMarkAutomaticChange();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst { text, start, end } = _value;\n\n\t\t\tif ( event.shiftKey ) {\n\t\t\t\tif ( ! disableLineBreaks ) {\n\t\t\t\t\tonChange( insert( _value, '\\n' ) );\n\t\t\t\t}\n\t\t\t} else if ( canSplit ) {\n\t\t\t\tsplitValue( {\n\t\t\t\t\tvalue: _value,\n\t\t\t\t\tonReplace,\n\t\t\t\t\tonSplit,\n\t\t\t\t} );\n\t\t\t} else if ( onSplitAtEnd && start === end && end === text.length ) {\n\t\t\t\tonSplitAtEnd();\n\t\t\t} else if (\n\t\t\t\t// For some blocks it's desirable to split at the end of the\n\t\t\t\t// block when there are two line breaks at the end of the\n\t\t\t\t// block, so triple Enter exits the block.\n\t\t\t\tonSplitAtDoubleLineEnd &&\n\t\t\t\tstart === end &&\n\t\t\t\tend === text.length &&\n\t\t\t\ttext.slice( -2 ) === '\\n\\n'\n\t\t\t) {\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t_value.start = _value.end - 2;\n\t\t\t\t\tonChange( remove( _value ) );\n\t\t\t\t\tonSplitAtDoubleLineEnd();\n\t\t\t\t} );\n\t\t\t} else if ( ! disableLineBreaks ) {\n\t\t\t\tonChange( insert( _value, '\\n' ) );\n\t\t\t}\n\t\t}\n\n\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["useRef","useRefEffect","ENTER","insert","remove","getBlockTransforms","findTransform","useDispatch","useRegistry","store","blockEditorStore","splitValue","useEnter","props","registry","__unstableMarkAutomaticChange","propsRef","current","element","onKeyDown","event","target","contentEditable","defaultPrevented","keyCode","removeEditorOnlyFormats","value","onReplace","onSplit","onChange","disableLineBreaks","onSplitAtEnd","onSplitAtDoubleLineEnd","preventDefault","_value","formats","canSplit","transforms","filter","type","transformation","item","regExp","test","text","transform","content","start","end","shiftKey","length","slice","batch","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/rich-text/use-enter.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRef } from '@wordpress/element';\nimport { useRefEffect } from '@wordpress/compose';\nimport { ENTER } from '@wordpress/keycodes';\nimport { insert, remove } from '@wordpress/rich-text';\nimport { getBlockTransforms, findTransform } from '@wordpress/blocks';\nimport { useDispatch, useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { splitValue } from './split-value';\n\nexport function useEnter( props ) {\n\tconst registry = useRegistry();\n\tconst { __unstableMarkAutomaticChange } = useDispatch( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.target.contentEditable !== 'true' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\tvalue,\n\t\t\t\tonReplace,\n\t\t\t\tonSplit,\n\t\t\t\tonChange,\n\t\t\t\tdisableLineBreaks,\n\t\t\t\tonSplitAtEnd,\n\t\t\t\tonSplitAtDoubleLineEnd,\n\t\t\t} = propsRef.current;\n\n\t\t\tevent.preventDefault();\n\n\t\t\tconst _value = { ...value };\n\t\t\t_value.formats = removeEditorOnlyFormats( value );\n\t\t\tconst canSplit = onReplace && onSplit;\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst transforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t\t( { type } ) => type === 'enter'\n\t\t\t\t);\n\t\t\t\tconst transformation = findTransform( transforms, ( item ) => {\n\t\t\t\t\treturn item.regExp.test( _value.text );\n\t\t\t\t} );\n\n\t\t\t\tif ( transformation ) {\n\t\t\t\t\tonReplace( [\n\t\t\t\t\t\ttransformation.transform( {\n\t\t\t\t\t\t\tcontent: _value.text,\n\t\t\t\t\t\t} ),\n\t\t\t\t\t] );\n\t\t\t\t\t__unstableMarkAutomaticChange();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst { text, start, end } = _value;\n\n\t\t\tif ( event.shiftKey ) {\n\t\t\t\tif ( ! disableLineBreaks ) {\n\t\t\t\t\tonChange( insert( _value, '\\n' ) );\n\t\t\t\t}\n\t\t\t} else if ( canSplit ) {\n\t\t\t\tsplitValue( {\n\t\t\t\t\tvalue: _value,\n\t\t\t\t\tonReplace,\n\t\t\t\t\tonSplit,\n\t\t\t\t} );\n\t\t\t} else if ( onSplitAtEnd && start === end && end === text.length ) {\n\t\t\t\tonSplitAtEnd();\n\t\t\t} else if (\n\t\t\t\t// For some blocks it's desirable to split at the end of the\n\t\t\t\t// block when there are two line breaks at the end of the\n\t\t\t\t// block, so triple Enter exits the block.\n\t\t\t\tonSplitAtDoubleLineEnd &&\n\t\t\t\tstart === end &&\n\t\t\t\tend === text.length &&\n\t\t\t\ttext.slice( -2 ) === '\\n\\n'\n\t\t\t) {\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t_value.start = _value.end - 2;\n\t\t\t\t\tonChange( remove( _value ) );\n\t\t\t\t\tonSplitAtDoubleLineEnd();\n\t\t\t\t} );\n\t\t\t} else if ( ! disableLineBreaks ) {\n\t\t\t\tonChange( insert( _value, '\\n' ) );\n\t\t\t}\n\t\t}\n\n\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["Button","CustomSelectControl","Icon","RangeControl","__experimentalHStack","HStack","__experimentalUnitControl","UnitControl","__experimentalUseCustomUnits","useCustomUnits","__experimentalParseQuantityAndUnitFromRawValue","parseQuantityAndUnitFromRawValue","useSelect","useState","useMemo","usePrevious","__","sprintf","settings","useSettings","store","blockEditorStore","ALL_SIDES","LABELS","getSliderValueFromPreset","getCustomValueFromPreset","getPresetValueFromCustomValue","isValueSpacingPreset","CUSTOM_VALUE_SETTINGS","px","max","steps","vw","vh","em","rm","svw","lvw","dvw","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","SpacingInputControl","icon","isMixed","minimumCustomValue","onChange","onMouseOut","onMouseOver","showSideInLabel","side","spacingSizes","type","value","_CUSTOM_VALUE_SETTING","_CUSTOM_VALUE_SETTING2","selectListSizes","showRangeControl","length","disableCustomSpacingSizes","select","editorSettings","getSettings","showCustomValueControl","setShowCustomValueControl","undefined","previousValue","availableUnits","units","currentValue","showCustomValueInSelectList","name","slug","size","selectedUnit","setInitialValue","customTooltipContent","newValue","customRangeValue","parseFloat","getNewCustomValue","newSize","isNumeric","isNaN","nextValue","getNewPresetValue","controlType","parseInt","handleCustomValueSliderChange","next","join","allPlaceholder","options","map","index","key","marks","_newValue","label","sideLabel","includes","typeLabel","toLowerCase","ariaLabel","trim","createElement","className","Fragment","onFocus","onBlur","min","placeholder","disableUnits","hideLabelFromVision","step","withInputField","__nextHasNoMarginBottom","onMouseDown","event","nativeEvent","offsetX","renderTooltipContent","find","option","selection","selectedItem","onClick","isPressed","iconSize"],"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/input-controls/spacing-input-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tCustomSelectControl,\n\tIcon,\n\tRangeControl,\n\t__experimentalHStack as HStack,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\nimport { usePrevious } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { settings } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../../use-settings';\nimport { store as blockEditorStore } from '../../../store';\nimport {\n\tALL_SIDES,\n\tLABELS,\n\tgetSliderValueFromPreset,\n\tgetCustomValueFromPreset,\n\tgetPresetValueFromCustomValue,\n\tisValueSpacingPreset,\n} from '../utils';\n\nconst CUSTOM_VALUE_SETTINGS = {\n\tpx: { max: 300, steps: 1 },\n\t'%': { max: 100, steps: 1 },\n\tvw: { max: 100, steps: 1 },\n\tvh: { max: 100, steps: 1 },\n\tem: { max: 10, steps: 0.1 },\n\trm: { max: 10, steps: 0.1 },\n\tsvw: { max: 100, steps: 1 },\n\tlvw: { max: 100, steps: 1 },\n\tdvw: { max: 100, steps: 1 },\n\tsvh: { max: 100, steps: 1 },\n\tlvh: { max: 100, steps: 1 },\n\tdvh: { max: 100, steps: 1 },\n\tvi: { max: 100, steps: 1 },\n\tsvi: { max: 100, steps: 1 },\n\tlvi: { max: 100, steps: 1 },\n\tdvi: { max: 100, steps: 1 },\n\tvb: { max: 100, steps: 1 },\n\tsvb: { max: 100, steps: 1 },\n\tlvb: { max: 100, steps: 1 },\n\tdvb: { max: 100, steps: 1 },\n\tvmin: { max: 100, steps: 1 },\n\tsvmin: { max: 100, steps: 1 },\n\tlvmin: { max: 100, steps: 1 },\n\tdvmin: { max: 100, steps: 1 },\n\tvmax: { max: 100, steps: 1 },\n\tsvmax: { max: 100, steps: 1 },\n\tlvmax: { max: 100, steps: 1 },\n\tdvmax: { max: 100, steps: 1 },\n};\n\nexport default function SpacingInputControl( {\n\ticon,\n\tisMixed = false,\n\tminimumCustomValue,\n\tonChange,\n\tonMouseOut,\n\tonMouseOver,\n\tshowSideInLabel = true,\n\tside,\n\tspacingSizes,\n\ttype,\n\tvalue,\n} ) {\n\t// Treat value as a preset value if the passed in value matches the value of one of the spacingSizes.\n\tvalue = getPresetValueFromCustomValue( value, spacingSizes );\n\n\tlet selectListSizes = spacingSizes;\n\tconst showRangeControl = spacingSizes.length <= 8;\n\n\tconst disableCustomSpacingSizes = useSelect( ( select ) => {\n\t\tconst editorSettings = select( blockEditorStore ).getSettings();\n\t\treturn editorSettings?.disableCustomSpacingSizes;\n\t} );\n\n\tconst [ showCustomValueControl, setShowCustomValueControl ] = useState(\n\t\t! disableCustomSpacingSizes &&\n\t\t\tvalue !== undefined &&\n\t\t\t! isValueSpacingPreset( value )\n\t);\n\n\tconst previousValue = usePrevious( value );\n\tif (\n\t\t!! value &&\n\t\tpreviousValue !== value &&\n\t\t! isValueSpacingPreset( value ) &&\n\t\tshowCustomValueControl !== true\n\t) {\n\t\tsetShowCustomValueControl( true );\n\t}\n\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ 'px', 'em', 'rem' ],\n\t} );\n\n\tlet currentValue = null;\n\n\tconst showCustomValueInSelectList =\n\t\t! showRangeControl &&\n\t\t! showCustomValueControl &&\n\t\tvalue !== undefined &&\n\t\t( ! isValueSpacingPreset( value ) ||\n\t\t\t( isValueSpacingPreset( value ) && isMixed ) );\n\n\tif ( showCustomValueInSelectList ) {\n\t\tselectListSizes = [\n\t\t\t...spacingSizes,\n\t\t\t{\n\t\t\t\tname: ! isMixed\n\t\t\t\t\t? // translators: A custom measurement, eg. a number followed by a unit like 12px.\n\t\t\t\t\t sprintf( __( 'Custom (%s)' ), value )\n\t\t\t\t\t: __( 'Mixed' ),\n\t\t\t\tslug: 'custom',\n\t\t\t\tsize: value,\n\t\t\t},\n\t\t];\n\t\tcurrentValue = selectListSizes.length - 1;\n\t} else if ( ! isMixed ) {\n\t\tcurrentValue = ! showCustomValueControl\n\t\t\t? getSliderValueFromPreset( value, spacingSizes )\n\t\t\t: getCustomValueFromPreset( value, spacingSizes );\n\t}\n\n\tconst selectedUnit =\n\t\tuseMemo(\n\t\t\t() => parseQuantityAndUnitFromRawValue( currentValue ),\n\t\t\t[ currentValue ]\n\t\t)[ 1 ] || units[ 0 ]?.value;\n\n\tconst setInitialValue = () => {\n\t\tif ( value === undefined ) {\n\t\t\tonChange( '0' );\n\t\t}\n\t};\n\n\tconst customTooltipContent = ( newValue ) =>\n\t\tvalue === undefined ? undefined : spacingSizes[ newValue ]?.name;\n\n\tconst customRangeValue = parseFloat( currentValue, 10 );\n\n\tconst getNewCustomValue = ( newSize ) => {\n\t\tconst isNumeric = ! isNaN( parseFloat( newSize ) );\n\t\tconst nextValue = isNumeric ? newSize : undefined;\n\t\treturn nextValue;\n\t};\n\n\tconst getNewPresetValue = ( newSize, controlType ) => {\n\t\tconst size = parseInt( newSize, 10 );\n\n\t\tif ( controlType === 'selectList' ) {\n\t\t\tif ( size === 0 ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif ( size === 1 ) {\n\t\t\t\treturn '0';\n\t\t\t}\n\t\t} else if ( size === 0 ) {\n\t\t\treturn '0';\n\t\t}\n\t\treturn `var:preset|spacing|${ spacingSizes[ newSize ]?.slug }`;\n\t};\n\n\tconst handleCustomValueSliderChange = ( next ) => {\n\t\tonChange( [ next, selectedUnit ].join( '' ) );\n\t};\n\n\tconst allPlaceholder = isMixed ? __( 'Mixed' ) : null;\n\n\tconst options = selectListSizes.map( ( size, index ) => ( {\n\t\tkey: index,\n\t\tname: size.name,\n\t} ) );\n\n\tconst marks = spacingSizes.map( ( _newValue, index ) => ( {\n\t\tvalue: index,\n\t\tlabel: undefined,\n\t} ) );\n\n\tconst sideLabel =\n\t\tALL_SIDES.includes( side ) && showSideInLabel ? LABELS[ side ] : '';\n\tconst typeLabel = showSideInLabel ? type?.toLowerCase() : type;\n\n\tconst ariaLabel = sprintf(\n\t\t// translators: 1: The side of the block being modified (top, bottom, left, All sides etc.). 2. Type of spacing being modified (Padding, margin, etc)\n\t\t__( '%1$s %2$s' ),\n\t\tsideLabel,\n\t\ttypeLabel\n\t).trim();\n\n\treturn (\n\t\t<HStack className=\"spacing-sizes-control__wrapper\">\n\t\t\t{ icon && (\n\t\t\t\t<Icon\n\t\t\t\t\tclassName=\"spacing-sizes-control__icon\"\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tsize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showCustomValueControl && (\n\t\t\t\t<>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\t\tonChange( getNewCustomValue( newSize ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tmin={ minimumCustomValue }\n\t\t\t\t\t\tplaceholder={ allPlaceholder }\n\t\t\t\t\t\tdisableUnits={ isMixed }\n\t\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t\tclassName=\"spacing-sizes-control__custom-value-input\"\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t/>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t\t\tvalue={ customRangeValue }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ CUSTOM_VALUE_SETTINGS[ selectedUnit ]?.max ?? 10 }\n\t\t\t\t\t\tstep={\n\t\t\t\t\t\t\tCUSTOM_VALUE_SETTINGS[ selectedUnit ]?.steps ?? 0.1\n\t\t\t\t\t\t}\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\tonChange={ handleCustomValueSliderChange }\n\t\t\t\t\t\tclassName=\"spacing-sizes-control__custom-value-range\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<RangeControl\n\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\tclassName=\"spacing-sizes-control__range-control\"\n\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\tonChange( getNewPresetValue( newSize ) )\n\t\t\t\t\t}\n\t\t\t\t\tonMouseDown={ ( event ) => {\n\t\t\t\t\t\t// If mouse down is near start of range set initial value to 0, which\n\t\t\t\t\t\t// prevents the user have to drag right then left to get 0 setting.\n\t\t\t\t\t\tif ( event?.nativeEvent?.offsetX < 35 ) {\n\t\t\t\t\t\t\tsetInitialValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\twithInputField={ false }\n\t\t\t\t\taria-valuenow={ currentValue }\n\t\t\t\t\taria-valuetext={ spacingSizes[ currentValue ]?.name }\n\t\t\t\t\trenderTooltipContent={ customTooltipContent }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tmax={ spacingSizes.length - 1 }\n\t\t\t\t\tmarks={ marks }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t__nextHasNoMarginBottom={ true }\n\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<CustomSelectControl\n\t\t\t\t\tclassName=\"spacing-sizes-control__custom-select-control\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\toptions.find(\n\t\t\t\t\t\t\t( option ) => option.key === currentValue\n\t\t\t\t\t\t) || '' // passing undefined here causes a downshift controlled/uncontrolled warning\n\t\t\t\t\t}\n\t\t\t\t\tonChange={ ( selection ) => {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tgetNewPresetValue(\n\t\t\t\t\t\t\t\tselection.selectedItem.key,\n\t\t\t\t\t\t\t\t'selectList'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! disableCustomSpacingSizes && (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tshowCustomValueControl\n\t\t\t\t\t\t\t? __( 'Use size preset' )\n\t\t\t\t\t\t\t: __( 'Set custom size' )\n\t\t\t\t\t}\n\t\t\t\t\ticon={ settings }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowCustomValueControl( ! showCustomValueControl );\n\t\t\t\t\t} }\n\t\t\t\t\tisPressed={ showCustomValueControl }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName=\"spacing-sizes-control__custom-toggle\"\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,MAAM,EACNC,mBAAmB,EACnBC,IAAI,EACJC,YAAY,EACZC,oBAAoB,IAAIC,MAAM,EAC9BC,yBAAyB,IAAIC,WAAW,EACxCC,4BAA4B,IAAIC,cAAc,EAC9CC,8CAA8C,IAAIC,gCAAgC,QAC5E,uBAAuB;AAC9B,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,QAAQ,EAAEC,OAAO,QAAQ,oBAAoB;AACtD,SAASC,WAAW,QAAQ,oBAAoB;AAChD,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,QAAQ,QAAQ,kBAAkB;;AAE3C;AACA;AACA;AACA,SAASC,WAAW,QAAQ,oBAAoB;AAChD,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,gBAAgB;AAC1D,SACCC,SAAS,EACTC,MAAM,EACNC,wBAAwB,EACxBC,wBAAwB,EACxBC,6BAA6B,EAC7BC,oBAAoB,QACd,UAAU;AAEjB,MAAMC,qBAAqB,GAAG;EAC7BC,EAAE,EAAE;IAAEC,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC1B,GAAG,EAAE;IAAED,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BC,EAAE,EAAE;IAAEF,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC1BE,EAAE,EAAE;IAAEH,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC1BG,EAAE,EAAE;IAAEJ,GAAG,EAAE,EAAE;IAAEC,KAAK,EAAE;EAAI,CAAC;EAC3BI,EAAE,EAAE;IAAEL,GAAG,EAAE,EAAE;IAAEC,KAAK,EAAE;EAAI,CAAC;EAC3BK,GAAG,EAAE;IAAEN,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BM,GAAG,EAAE;IAAEP,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BO,GAAG,EAAE;IAAER,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BQ,GAAG,EAAE;IAAET,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BS,GAAG,EAAE;IAAEV,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BU,GAAG,EAAE;IAAEX,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BW,EAAE,EAAE;IAAEZ,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC1BY,GAAG,EAAE;IAAEb,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3Ba,GAAG,EAAE;IAAEd,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3Bc,GAAG,EAAE;IAAEf,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3Be,EAAE,EAAE;IAAEhB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC1BgB,GAAG,EAAE;IAAEjB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BiB,GAAG,EAAE;IAAElB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BkB,GAAG,EAAE;IAAEnB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BmB,IAAI,EAAE;IAAEpB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC5BoB,KAAK,EAAE;IAAErB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC7BqB,KAAK,EAAE;IAAEtB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC7BsB,KAAK,EAAE;IAAEvB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC7BuB,IAAI,EAAE;IAAExB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC5BwB,KAAK,EAAE;IAAEzB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC7ByB,KAAK,EAAE;IAAE1B,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC7B0B,KAAK,EAAE;IAAE3B,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE;AAC7B,CAAC;AAED,eAAe,SAAS2B,mBAAmBA,CAAE;EAC5CC,IAAI;EACJC,OAAO,GAAG,KAAK;EACfC,kBAAkB;EAClBC,QAAQ;EACRC,UAAU;EACVC,WAAW;EACXC,eAAe,GAAG,IAAI;EACtBC,IAAI;EACJC,YAAY;EACZC,IAAI;EACJC;AACD,CAAC,EAAG;EAAA,IAAAC,qBAAA,EAAAC,sBAAA;EACH;EACAF,KAAK,GAAG3C,6BAA6B,CAAE2C,KAAK,EAAEF,YAAa,CAAC;EAE5D,IAAIK,eAAe,GAAGL,YAAY;EAClC,MAAMM,gBAAgB,GAAGN,YAAY,CAACO,MAAM,IAAI,CAAC;EAEjD,MAAMC,yBAAyB,GAAG/D,SAAS,CAAIgE,MAAM,IAAM;IAC1D,MAAMC,cAAc,GAAGD,MAAM,CAAEvD,gBAAiB,CAAC,CAACyD,WAAW,CAAC,CAAC;IAC/D,OAAOD,cAAc,EAAEF,yBAAyB;EACjD,CAAE,CAAC;EAEH,MAAM,CAAEI,sBAAsB,EAAEC,yBAAyB,CAAE,GAAGnE,QAAQ,CACrE,CAAE8D,yBAAyB,IAC1BN,KAAK,KAAKY,SAAS,IACnB,CAAEtD,oBAAoB,CAAE0C,KAAM,CAChC,CAAC;EAED,MAAMa,aAAa,GAAGnE,WAAW,CAAEsD,KAAM,CAAC;EAC1C,IACC,CAAC,CAAEA,KAAK,IACRa,aAAa,KAAKb,KAAK,IACvB,CAAE1C,oBAAoB,CAAE0C,KAAM,CAAC,IAC/BU,sBAAsB,KAAK,IAAI,EAC9B;IACDC,yBAAyB,CAAE,IAAK,CAAC;EAClC;EAEA,MAAM,CAAEG,cAAc,CAAE,GAAGhE,WAAW,CAAE,eAAgB,CAAC;EACzD,MAAMiE,KAAK,GAAG3E,cAAc,CAAE;IAC7B0E,cAAc,EAAEA,cAAc,IAAI,CAAE,IAAI,EAAE,IAAI,EAAE,KAAK;EACtD,CAAE,CAAC;EAEH,IAAIE,YAAY,GAAG,IAAI;EAEvB,MAAMC,2BAA2B,GAChC,CAAEb,gBAAgB,IAClB,CAAEM,sBAAsB,IACxBV,KAAK,KAAKY,SAAS,KACjB,CAAEtD,oBAAoB,CAAE0C,KAAM,CAAC,IAC9B1C,oBAAoB,CAAE0C,KAAM,CAAC,IAAIT,OAAS,CAAE;EAEhD,IAAK0B,2BAA2B,EAAG;IAClCd,eAAe,GAAG,CACjB,GAAGL,YAAY,EACf;MACCoB,IAAI,EAAE,CAAE3B,OAAO;MACZ;MACA3C,OAAO,CAAED,EAAE,CAAE,aAAc,CAAC,EAAEqD,KAAM,CAAC,GACrCrD,EAAE,CAAE,OAAQ,CAAC;MAChBwE,IAAI,EAAE,QAAQ;MACdC,IAAI,EAAEpB;IACP,CAAC,CACD;IACDgB,YAAY,GAAGb,eAAe,CAACE,MAAM,GAAG,CAAC;EAC1C,CAAC,MAAM,IAAK,CAAEd,OAAO,EAAG;IACvByB,YAAY,GAAG,CAAEN,sBAAsB,GACpCvD,wBAAwB,CAAE6C,KAAK,EAAEF,YAAa,CAAC,GAC/C1C,wBAAwB,CAAE4C,KAAK,EAAEF,YAAa,CAAC;EACnD;EAEA,MAAMuB,YAAY,GACjB5E,OAAO,CACN,MAAMH,gCAAgC,CAAE0E,YAAa,CAAC,EACtD,CAAEA,YAAY,CACf,CAAC,CAAE,CAAC,CAAE,IAAID,KAAK,CAAE,CAAC,CAAE,EAAEf,KAAK;EAE5B,MAAMsB,eAAe,GAAGA,CAAA,KAAM;IAC7B,IAAKtB,KAAK,KAAKY,SAAS,EAAG;MAC1BnB,QAAQ,CAAE,GAAI,CAAC;IAChB;EACD,CAAC;EAED,MAAM8B,oBAAoB,GAAKC,QAAQ,IACtCxB,KAAK,KAAKY,SAAS,GAAGA,SAAS,GAAGd,YAAY,CAAE0B,QAAQ,CAAE,EAAEN,IAAI;EAEjE,MAAMO,gBAAgB,GAAGC,UAAU,CAAEV,YAAY,EAAE,EAAG,CAAC;EAEvD,MAAMW,iBAAiB,GAAKC,OAAO,IAAM;IACxC,MAAMC,SAAS,GAAG,CAAEC,KAAK,CAAEJ,UAAU,CAAEE,OAAQ,CAAE,CAAC;IAClD,MAAMG,SAAS,GAAGF,SAAS,GAAGD,OAAO,GAAGhB,SAAS;IACjD,OAAOmB,SAAS;EACjB,CAAC;EAED,MAAMC,iBAAiB,GAAGA,CAAEJ,OAAO,EAAEK,WAAW,KAAM;IACrD,MAAMb,IAAI,GAAGc,QAAQ,CAAEN,OAAO,EAAE,EAAG,CAAC;IAEpC,IAAKK,WAAW,KAAK,YAAY,EAAG;MACnC,IAAKb,IAAI,KAAK,CAAC,EAAG;QACjB,OAAOR,SAAS;MACjB;MACA,IAAKQ,IAAI,KAAK,CAAC,EAAG;QACjB,OAAO,GAAG;MACX;IACD,CAAC,MAAM,IAAKA,IAAI,KAAK,CAAC,EAAG;MACxB,OAAO,GAAG;IACX;IACA,OAAQ,sBAAsBtB,YAAY,CAAE8B,OAAO,CAAE,EAAET,IAAM,EAAC;EAC/D,CAAC;EAED,MAAMgB,6BAA6B,GAAKC,IAAI,IAAM;IACjD3C,QAAQ,CAAE,CAAE2C,IAAI,EAAEf,YAAY,CAAE,CAACgB,IAAI,CAAE,EAAG,CAAE,CAAC;EAC9C,CAAC;EAED,MAAMC,cAAc,GAAG/C,OAAO,GAAG5C,EAAE,CAAE,OAAQ,CAAC,GAAG,IAAI;EAErD,MAAM4F,OAAO,GAAGpC,eAAe,CAACqC,GAAG,CAAE,CAAEpB,IAAI,EAAEqB,KAAK,MAAQ;IACzDC,GAAG,EAAED,KAAK;IACVvB,IAAI,EAAEE,IAAI,CAACF;EACZ,CAAC,CAAG,CAAC;EAEL,MAAMyB,KAAK,GAAG7C,YAAY,CAAC0C,GAAG,CAAE,CAAEI,SAAS,EAAEH,KAAK,MAAQ;IACzDzC,KAAK,EAAEyC,KAAK;IACZI,KAAK,EAAEjC;EACR,CAAC,CAAG,CAAC;EAEL,MAAMkC,SAAS,GACd7F,SAAS,CAAC8F,QAAQ,CAAElD,IAAK,CAAC,IAAID,eAAe,GAAG1C,MAAM,CAAE2C,IAAI,CAAE,GAAG,EAAE;EACpE,MAAMmD,SAAS,GAAGpD,eAAe,GAAGG,IAAI,EAAEkD,WAAW,CAAC,CAAC,GAAGlD,IAAI;EAE9D,MAAMmD,SAAS,GAAGtG,OAAO;EACxB;EACAD,EAAE,CAAE,WAAY,CAAC,EACjBmG,SAAS,EACTE,SACD,CAAC,CAACG,IAAI,CAAC,CAAC;EAER,OACCC,aAAA,CAACpH,MAAM;IAACqH,SAAS,EAAC;EAAgC,GAC/C/D,IAAI,IACL8D,aAAA,CAACvH,IAAI;IACJwH,SAAS,EAAC,6BAA6B;IACvC/D,IAAI,EAAGA,IAAM;IACb8B,IAAI,EAAG;EAAI,CACX,CACD,EACCV,sBAAsB,IACvB0C,aAAA,CAAAE,QAAA,QACCF,aAAA,CAAClH,WAAW;IACXyD,WAAW,EAAGA,WAAa;IAC3BD,UAAU,EAAGA,UAAY;IACzB6D,OAAO,EAAG5D,WAAa;IACvB6D,MAAM,EAAG9D,UAAY;IACrBD,QAAQ,EAAKmC,OAAO,IACnBnC,QAAQ,CAAEkC,iBAAiB,CAAEC,OAAQ,CAAE,CACvC;IACD5B,KAAK,EAAGgB,YAAc;IACtBD,KAAK,EAAGA,KAAO;IACf0C,GAAG,EAAGjE,kBAAoB;IAC1BkE,WAAW,EAAGpB,cAAgB;IAC9BqB,YAAY,EAAGpE,OAAS;IACxBsD,KAAK,EAAGK,SAAW;IACnBU,mBAAmB,EAAG,IAAM;IAC5BP,SAAS,EAAC,2CAA2C;IACrDjC,IAAI,EAAG;EAAoB,CAC3B,CAAC,EACFgC,aAAA,CAACtH,YAAY;IACZ6D,WAAW,EAAGA,WAAa;IAC3BD,UAAU,EAAGA,UAAY;IACzB6D,OAAO,EAAG5D,WAAa;IACvB6D,MAAM,EAAG9D,UAAY;IACrBM,KAAK,EAAGyB,gBAAkB;IAC1BgC,GAAG,EAAG,CAAG;IACThG,GAAG,GAAAwC,qBAAA,GAAG1C,qBAAqB,CAAE8D,YAAY,CAAE,EAAE5D,GAAG,cAAAwC,qBAAA,cAAAA,qBAAA,GAAI,EAAI;IACxD4D,IAAI,GAAA3D,sBAAA,GACH3C,qBAAqB,CAAE8D,YAAY,CAAE,EAAE3D,KAAK,cAAAwC,sBAAA,cAAAA,sBAAA,GAAI,GAChD;IACD4D,cAAc,EAAG,KAAO;IACxBrE,QAAQ,EAAG0C,6BAA+B;IAC1CkB,SAAS,EAAC,2CAA2C;IACrDU,uBAAuB;EAAA,CACvB,CACA,CACF,EACC3D,gBAAgB,IAAI,CAAEM,sBAAsB,IAC7C0C,aAAA,CAACtH,YAAY;IACZ6D,WAAW,EAAGA,WAAa;IAC3BD,UAAU,EAAGA,UAAY;IACzB2D,SAAS,EAAC,sCAAsC;IAChDrD,KAAK,EAAGgB,YAAc;IACtBvB,QAAQ,EAAKmC,OAAO,IACnBnC,QAAQ,CAAEuC,iBAAiB,CAAEJ,OAAQ,CAAE,CACvC;IACDoC,WAAW,EAAKC,KAAK,IAAM;MAC1B;MACA;MACA,IAAKA,KAAK,EAAEC,WAAW,EAAEC,OAAO,GAAG,EAAE,EAAG;QACvC7C,eAAe,CAAC,CAAC;MAClB;IACD,CAAG;IACHwC,cAAc,EAAG,KAAO;IACxB,iBAAgB9C,YAAc;IAC9B,kBAAiBlB,YAAY,CAAEkB,YAAY,CAAE,EAAEE,IAAM;IACrDkD,oBAAoB,EAAG7C,oBAAsB;IAC7CkC,GAAG,EAAG,CAAG;IACThG,GAAG,EAAGqC,YAAY,CAACO,MAAM,GAAG,CAAG;IAC/BsC,KAAK,EAAGA,KAAO;IACfE,KAAK,EAAGK,SAAW;IACnBU,mBAAmB,EAAG,IAAM;IAC5BG,uBAAuB,EAAG,IAAM;IAChCR,OAAO,EAAG5D,WAAa;IACvB6D,MAAM,EAAG9D;EAAY,CACrB,CACD,EACC,CAAEU,gBAAgB,IAAI,CAAEM,sBAAsB,IAC/C0C,aAAA,CAACxH,mBAAmB;IACnByH,SAAS,EAAC,8CAA8C;IACxDrD,KAAK,EACJuC,OAAO,CAAC8B,IAAI,CACTC,MAAM,IAAMA,MAAM,CAAC5B,GAAG,KAAK1B,YAC9B,CAAC,IAAI,EAAE,CAAC;IACR;IACDvB,QAAQ,EAAK8E,SAAS,IAAM;MAC3B9E,QAAQ,CACPuC,iBAAiB,CAChBuC,SAAS,CAACC,YAAY,CAAC9B,GAAG,EAC1B,YACD,CACD,CAAC;IACF,CAAG;IACHH,OAAO,EAAGA,OAAS;IACnBM,KAAK,EAAGK,SAAW;IACnBU,mBAAmB,EAAG,IAAM;IAC5BxC,IAAI,EAAG,kBAAoB;IAC3BzB,WAAW,EAAGA,WAAa;IAC3BD,UAAU,EAAGA,UAAY;IACzB6D,OAAO,EAAG5D,WAAa;IACvB6D,MAAM,EAAG9D;EAAY,CACrB,CACD,EACC,CAAEY,yBAAyB,IAC5B8C,aAAA,CAACzH,MAAM;IACNkH,KAAK,EACJnC,sBAAsB,GACnB/D,EAAE,CAAE,iBAAkB,CAAC,GACvBA,EAAE,CAAE,iBAAkB,CACzB;IACD2C,IAAI,EAAGzC,QAAU;IACjB4H,OAAO,EAAGA,CAAA,KAAM;MACf9D,yBAAyB,CAAE,CAAED,sBAAuB,CAAC;IACtD,CAAG;IACHgE,SAAS,EAAGhE,sBAAwB;IACpCU,IAAI,EAAC,OAAO;IACZiC,SAAS,EAAC,sCAAsC;IAChDsB,QAAQ,EAAG;EAAI,CACf,CAEK,CAAC;AAEX"}
1
+ {"version":3,"names":["Button","CustomSelectControl","Icon","RangeControl","__experimentalHStack","HStack","__experimentalUnitControl","UnitControl","__experimentalUseCustomUnits","useCustomUnits","__experimentalParseQuantityAndUnitFromRawValue","parseQuantityAndUnitFromRawValue","useSelect","useState","useMemo","usePrevious","__","sprintf","settings","useSettings","store","blockEditorStore","ALL_SIDES","LABELS","getSliderValueFromPreset","getCustomValueFromPreset","getPresetValueFromCustomValue","isValueSpacingPreset","CUSTOM_VALUE_SETTINGS","px","max","steps","vw","vh","em","rm","svw","lvw","dvw","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","SpacingInputControl","icon","isMixed","minimumCustomValue","onChange","onMouseOut","onMouseOver","showSideInLabel","side","spacingSizes","type","value","_CUSTOM_VALUE_SETTING","_CUSTOM_VALUE_SETTING2","selectListSizes","showRangeControl","length","disableCustomSpacingSizes","select","editorSettings","getSettings","showCustomValueControl","setShowCustomValueControl","undefined","previousValue","availableUnits","units","currentValue","showCustomValueInSelectList","name","slug","size","selectedUnit","setInitialValue","customTooltipContent","newValue","customRangeValue","parseFloat","getNewCustomValue","newSize","isNumeric","isNaN","nextValue","getNewPresetValue","controlType","parseInt","handleCustomValueSliderChange","next","join","allPlaceholder","options","map","index","key","marks","_newValue","label","sideLabel","includes","typeLabel","toLowerCase","ariaLabel","trim","createElement","className","Fragment","onFocus","onBlur","min","placeholder","disableUnits","hideLabelFromVision","step","withInputField","__nextHasNoMarginBottom","onMouseDown","event","nativeEvent","offsetX","renderTooltipContent","find","option","selection","selectedItem","onClick","isPressed","iconSize"],"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/input-controls/spacing-input-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tCustomSelectControl,\n\tIcon,\n\tRangeControl,\n\t__experimentalHStack as HStack,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\nimport { usePrevious } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { settings } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../../use-settings';\nimport { store as blockEditorStore } from '../../../store';\nimport {\n\tALL_SIDES,\n\tLABELS,\n\tgetSliderValueFromPreset,\n\tgetCustomValueFromPreset,\n\tgetPresetValueFromCustomValue,\n\tisValueSpacingPreset,\n} from '../utils';\n\nconst CUSTOM_VALUE_SETTINGS = {\n\tpx: { max: 300, steps: 1 },\n\t'%': { max: 100, steps: 1 },\n\tvw: { max: 100, steps: 1 },\n\tvh: { max: 100, steps: 1 },\n\tem: { max: 10, steps: 0.1 },\n\trm: { max: 10, steps: 0.1 },\n\tsvw: { max: 100, steps: 1 },\n\tlvw: { max: 100, steps: 1 },\n\tdvw: { max: 100, steps: 1 },\n\tsvh: { max: 100, steps: 1 },\n\tlvh: { max: 100, steps: 1 },\n\tdvh: { max: 100, steps: 1 },\n\tvi: { max: 100, steps: 1 },\n\tsvi: { max: 100, steps: 1 },\n\tlvi: { max: 100, steps: 1 },\n\tdvi: { max: 100, steps: 1 },\n\tvb: { max: 100, steps: 1 },\n\tsvb: { max: 100, steps: 1 },\n\tlvb: { max: 100, steps: 1 },\n\tdvb: { max: 100, steps: 1 },\n\tvmin: { max: 100, steps: 1 },\n\tsvmin: { max: 100, steps: 1 },\n\tlvmin: { max: 100, steps: 1 },\n\tdvmin: { max: 100, steps: 1 },\n\tvmax: { max: 100, steps: 1 },\n\tsvmax: { max: 100, steps: 1 },\n\tlvmax: { max: 100, steps: 1 },\n\tdvmax: { max: 100, steps: 1 },\n};\n\nexport default function SpacingInputControl( {\n\ticon,\n\tisMixed = false,\n\tminimumCustomValue,\n\tonChange,\n\tonMouseOut,\n\tonMouseOver,\n\tshowSideInLabel = true,\n\tside,\n\tspacingSizes,\n\ttype,\n\tvalue,\n} ) {\n\t// Treat value as a preset value if the passed in value matches the value of one of the spacingSizes.\n\tvalue = getPresetValueFromCustomValue( value, spacingSizes );\n\n\tlet selectListSizes = spacingSizes;\n\tconst showRangeControl = spacingSizes.length <= 8;\n\n\tconst disableCustomSpacingSizes = useSelect( ( select ) => {\n\t\tconst editorSettings = select( blockEditorStore ).getSettings();\n\t\treturn editorSettings?.disableCustomSpacingSizes;\n\t} );\n\n\tconst [ showCustomValueControl, setShowCustomValueControl ] = useState(\n\t\t! disableCustomSpacingSizes &&\n\t\t\tvalue !== undefined &&\n\t\t\t! isValueSpacingPreset( value )\n\t);\n\n\tconst previousValue = usePrevious( value );\n\tif (\n\t\t!! value &&\n\t\tpreviousValue !== value &&\n\t\t! isValueSpacingPreset( value ) &&\n\t\tshowCustomValueControl !== true\n\t) {\n\t\tsetShowCustomValueControl( true );\n\t}\n\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ 'px', 'em', 'rem' ],\n\t} );\n\n\tlet currentValue = null;\n\n\tconst showCustomValueInSelectList =\n\t\t! showRangeControl &&\n\t\t! showCustomValueControl &&\n\t\tvalue !== undefined &&\n\t\t( ! isValueSpacingPreset( value ) ||\n\t\t\t( isValueSpacingPreset( value ) && isMixed ) );\n\n\tif ( showCustomValueInSelectList ) {\n\t\tselectListSizes = [\n\t\t\t...spacingSizes,\n\t\t\t{\n\t\t\t\tname: ! isMixed\n\t\t\t\t\t? // translators: A custom measurement, eg. a number followed by a unit like 12px.\n\t\t\t\t\t sprintf( __( 'Custom (%s)' ), value )\n\t\t\t\t\t: __( 'Mixed' ),\n\t\t\t\tslug: 'custom',\n\t\t\t\tsize: value,\n\t\t\t},\n\t\t];\n\t\tcurrentValue = selectListSizes.length - 1;\n\t} else if ( ! isMixed ) {\n\t\tcurrentValue = ! showCustomValueControl\n\t\t\t? getSliderValueFromPreset( value, spacingSizes )\n\t\t\t: getCustomValueFromPreset( value, spacingSizes );\n\t}\n\n\tconst selectedUnit =\n\t\tuseMemo(\n\t\t\t() => parseQuantityAndUnitFromRawValue( currentValue ),\n\t\t\t[ currentValue ]\n\t\t)[ 1 ] || units[ 0 ]?.value;\n\n\tconst setInitialValue = () => {\n\t\tif ( value === undefined ) {\n\t\t\tonChange( '0' );\n\t\t}\n\t};\n\n\tconst customTooltipContent = ( newValue ) =>\n\t\tvalue === undefined ? undefined : spacingSizes[ newValue ]?.name;\n\n\tconst customRangeValue = parseFloat( currentValue, 10 );\n\n\tconst getNewCustomValue = ( newSize ) => {\n\t\tconst isNumeric = ! isNaN( parseFloat( newSize ) );\n\t\tconst nextValue = isNumeric ? newSize : undefined;\n\t\treturn nextValue;\n\t};\n\n\tconst getNewPresetValue = ( newSize, controlType ) => {\n\t\tconst size = parseInt( newSize, 10 );\n\n\t\tif ( controlType === 'selectList' ) {\n\t\t\tif ( size === 0 ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif ( size === 1 ) {\n\t\t\t\treturn '0';\n\t\t\t}\n\t\t} else if ( size === 0 ) {\n\t\t\treturn '0';\n\t\t}\n\t\treturn `var:preset|spacing|${ spacingSizes[ newSize ]?.slug }`;\n\t};\n\n\tconst handleCustomValueSliderChange = ( next ) => {\n\t\tonChange( [ next, selectedUnit ].join( '' ) );\n\t};\n\n\tconst allPlaceholder = isMixed ? __( 'Mixed' ) : null;\n\n\tconst options = selectListSizes.map( ( size, index ) => ( {\n\t\tkey: index,\n\t\tname: size.name,\n\t} ) );\n\n\tconst marks = spacingSizes.map( ( _newValue, index ) => ( {\n\t\tvalue: index,\n\t\tlabel: undefined,\n\t} ) );\n\n\tconst sideLabel =\n\t\tALL_SIDES.includes( side ) && showSideInLabel ? LABELS[ side ] : '';\n\tconst typeLabel = showSideInLabel ? type?.toLowerCase() : type;\n\n\tconst ariaLabel = sprintf(\n\t\t// translators: 1: The side of the block being modified (top, bottom, left, All sides etc.). 2. Type of spacing being modified (Padding, margin, etc)\n\t\t__( '%1$s %2$s' ),\n\t\tsideLabel,\n\t\ttypeLabel\n\t).trim();\n\n\treturn (\n\t\t<HStack className=\"spacing-sizes-control__wrapper\">\n\t\t\t{ icon && (\n\t\t\t\t<Icon\n\t\t\t\t\tclassName=\"spacing-sizes-control__icon\"\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tsize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showCustomValueControl && (\n\t\t\t\t<>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\t\tonChange( getNewCustomValue( newSize ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tmin={ minimumCustomValue }\n\t\t\t\t\t\tplaceholder={ allPlaceholder }\n\t\t\t\t\t\tdisableUnits={ isMixed }\n\t\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tclassName=\"spacing-sizes-control__custom-value-input\"\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t/>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t\t\tvalue={ customRangeValue }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ CUSTOM_VALUE_SETTINGS[ selectedUnit ]?.max ?? 10 }\n\t\t\t\t\t\tstep={\n\t\t\t\t\t\t\tCUSTOM_VALUE_SETTINGS[ selectedUnit ]?.steps ?? 0.1\n\t\t\t\t\t\t}\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\tonChange={ handleCustomValueSliderChange }\n\t\t\t\t\t\tclassName=\"spacing-sizes-control__custom-value-range\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<RangeControl\n\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\tclassName=\"spacing-sizes-control__range-control\"\n\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\tonChange( getNewPresetValue( newSize ) )\n\t\t\t\t\t}\n\t\t\t\t\tonMouseDown={ ( event ) => {\n\t\t\t\t\t\t// If mouse down is near start of range set initial value to 0, which\n\t\t\t\t\t\t// prevents the user have to drag right then left to get 0 setting.\n\t\t\t\t\t\tif ( event?.nativeEvent?.offsetX < 35 ) {\n\t\t\t\t\t\t\tsetInitialValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\twithInputField={ false }\n\t\t\t\t\taria-valuenow={ currentValue }\n\t\t\t\t\taria-valuetext={ spacingSizes[ currentValue ]?.name }\n\t\t\t\t\trenderTooltipContent={ customTooltipContent }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tmax={ spacingSizes.length - 1 }\n\t\t\t\t\tmarks={ marks }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<CustomSelectControl\n\t\t\t\t\tclassName=\"spacing-sizes-control__custom-select-control\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\toptions.find(\n\t\t\t\t\t\t\t( option ) => option.key === currentValue\n\t\t\t\t\t\t) || '' // passing undefined here causes a downshift controlled/uncontrolled warning\n\t\t\t\t\t}\n\t\t\t\t\tonChange={ ( selection ) => {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tgetNewPresetValue(\n\t\t\t\t\t\t\t\tselection.selectedItem.key,\n\t\t\t\t\t\t\t\t'selectList'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! disableCustomSpacingSizes && (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tshowCustomValueControl\n\t\t\t\t\t\t\t? __( 'Use size preset' )\n\t\t\t\t\t\t\t: __( 'Set custom size' )\n\t\t\t\t\t}\n\t\t\t\t\ticon={ settings }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowCustomValueControl( ! showCustomValueControl );\n\t\t\t\t\t} }\n\t\t\t\t\tisPressed={ showCustomValueControl }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName=\"spacing-sizes-control__custom-toggle\"\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n"],"mappings":"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"}
@@ -33,7 +33,7 @@ export default function SidesDropdown({
33
33
  label: labelProp,
34
34
  className: "spacing-sizes-control__dropdown",
35
35
  toggleProps: {
36
- isSmall: true
36
+ size: 'small'
37
37
  }
38
38
  }, ({
39
39
  onClose
@@ -1 +1 @@
1
- {"version":3,"names":["DropdownMenu","Icon","MenuGroup","MenuItem","check","getSupportedMenuItems","VIEWS","checkIcon","createElement","icon","size","SidesDropdown","label","labelProp","onChange","sides","value","length","supportedItems","sideIcon","custom","customItem","menuItems","className","toggleProps","isSmall","onClose","Fragment","Object","entries","map","slug","isSelected","key","iconPosition","role","onClick","suffix","undefined"],"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/sides-dropdown/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { DropdownMenu, Icon, MenuGroup, MenuItem } from '@wordpress/components';\nimport { check } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getSupportedMenuItems, VIEWS } from '../utils';\n\nconst checkIcon = <Icon icon={ check } size={ 24 } />;\n\nexport default function SidesDropdown( {\n\tlabel: labelProp,\n\tonChange,\n\tsides,\n\tvalue,\n} ) {\n\tif ( ! sides || ! sides.length ) {\n\t\treturn;\n\t}\n\n\tconst supportedItems = getSupportedMenuItems( sides );\n\tconst sideIcon = supportedItems[ value ].icon;\n\tconst { custom: customItem, ...menuItems } = supportedItems;\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ sideIcon }\n\t\t\tlabel={ labelProp }\n\t\t\tclassName=\"spacing-sizes-control__dropdown\"\n\t\t\ttoggleProps={ { isSmall: true } }\n\t\t>\n\t\t\t{ ( { onClose } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ Object.entries( menuItems ).map(\n\t\t\t\t\t\t\t\t( [ slug, { label, icon } ] ) => {\n\t\t\t\t\t\t\t\t\tconst isSelected = value === slug;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tonChange( slug );\n\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected\n\t\t\t\t\t\t\t\t\t\t\t\t\t? checkIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\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\t\t{ label }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t{ !! customItem && (\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\ticon={ customItem.icon }\n\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\tisSelected={ value === VIEWS.custom }\n\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tonChange( VIEWS.custom );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\tvalue === VIEWS.custom\n\t\t\t\t\t\t\t\t\t\t\t? checkIcon\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ customItem.label }\n\t\t\t\t\t\t\t\t</MenuItem>\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\t} }\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,YAAY,EAAEC,IAAI,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,uBAAuB;AAC/E,SAASC,KAAK,QAAQ,kBAAkB;;AAExC;AACA;AACA;AACA,SAASC,qBAAqB,EAAEC,KAAK,QAAQ,UAAU;AAEvD,MAAMC,SAAS,GAAGC,aAAA,CAACP,IAAI;EAACQ,IAAI,EAAGL,KAAO;EAACM,IAAI,EAAG;AAAI,CAAE,CAAC;AAErD,eAAe,SAASC,aAAaA,CAAE;EACtCC,KAAK,EAAEC,SAAS;EAChBC,QAAQ;EACRC,KAAK;EACLC;AACD,CAAC,EAAG;EACH,IAAK,CAAED,KAAK,IAAI,CAAEA,KAAK,CAACE,MAAM,EAAG;IAChC;EACD;EAEA,MAAMC,cAAc,GAAGb,qBAAqB,CAAEU,KAAM,CAAC;EACrD,MAAMI,QAAQ,GAAGD,cAAc,CAAEF,KAAK,CAAE,CAACP,IAAI;EAC7C,MAAM;IAAEW,MAAM,EAAEC,UAAU;IAAE,GAAGC;EAAU,CAAC,GAAGJ,cAAc;EAE3D,OACCV,aAAA,CAACR,YAAY;IACZS,IAAI,EAAGU,QAAU;IACjBP,KAAK,EAAGC,SAAW;IACnBU,SAAS,EAAC,iCAAiC;IAC3CC,WAAW,EAAG;MAAEC,OAAO,EAAE;IAAK;EAAG,GAE/B,CAAE;IAAEC;EAAQ,CAAC,KAAM;IACpB,OACClB,aAAA,CAAAmB,QAAA,QACCnB,aAAA,CAACN,SAAS,QACP0B,MAAM,CAACC,OAAO,CAAEP,SAAU,CAAC,CAACQ,GAAG,CAChC,CAAE,CAAEC,IAAI,EAAE;MAAEnB,KAAK;MAAEH;IAAK,CAAC,CAAE,KAAM;MAChC,MAAMuB,UAAU,GAAGhB,KAAK,KAAKe,IAAI;MACjC,OACCvB,aAAA,CAACL,QAAQ;QACR8B,GAAG,EAAGF,IAAM;QACZtB,IAAI,EAAGA,IAAM;QACbyB,YAAY,EAAC,MAAM;QACnBF,UAAU,EAAGA,UAAY;QACzBG,IAAI,EAAC,eAAe;QACpBC,OAAO,EAAGA,CAAA,KAAM;UACftB,QAAQ,CAAEiB,IAAK,CAAC;UAChBL,OAAO,CAAC,CAAC;QACV,CAAG;QACHW,MAAM,EACLL,UAAU,GACPzB,SAAS,GACT+B;MACH,GAEC1B,KACO,CAAC;IAEb,CACD,CACU,CAAC,EACV,CAAC,CAAES,UAAU,IACdb,aAAA,CAACN,SAAS,QACTM,aAAA,CAACL,QAAQ;MACRM,IAAI,EAAGY,UAAU,CAACZ,IAAM;MACxByB,YAAY,EAAC,MAAM;MACnBF,UAAU,EAAGhB,KAAK,KAAKV,KAAK,CAACc,MAAQ;MACrCe,IAAI,EAAC,eAAe;MACpBC,OAAO,EAAGA,CAAA,KAAM;QACftB,QAAQ,CAAER,KAAK,CAACc,MAAO,CAAC;QACxBM,OAAO,CAAC,CAAC;MACV,CAAG;MACHW,MAAM,EACLrB,KAAK,KAAKV,KAAK,CAACc,MAAM,GACnBb,SAAS,GACT+B;IACH,GAECjB,UAAU,CAACT,KACJ,CACA,CAEX,CAAC;EAEL,CACa,CAAC;AAEjB"}
1
+ {"version":3,"names":["DropdownMenu","Icon","MenuGroup","MenuItem","check","getSupportedMenuItems","VIEWS","checkIcon","createElement","icon","size","SidesDropdown","label","labelProp","onChange","sides","value","length","supportedItems","sideIcon","custom","customItem","menuItems","className","toggleProps","onClose","Fragment","Object","entries","map","slug","isSelected","key","iconPosition","role","onClick","suffix","undefined"],"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/sides-dropdown/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { DropdownMenu, Icon, MenuGroup, MenuItem } from '@wordpress/components';\nimport { check } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getSupportedMenuItems, VIEWS } from '../utils';\n\nconst checkIcon = <Icon icon={ check } size={ 24 } />;\n\nexport default function SidesDropdown( {\n\tlabel: labelProp,\n\tonChange,\n\tsides,\n\tvalue,\n} ) {\n\tif ( ! sides || ! sides.length ) {\n\t\treturn;\n\t}\n\n\tconst supportedItems = getSupportedMenuItems( sides );\n\tconst sideIcon = supportedItems[ value ].icon;\n\tconst { custom: customItem, ...menuItems } = supportedItems;\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ sideIcon }\n\t\t\tlabel={ labelProp }\n\t\t\tclassName=\"spacing-sizes-control__dropdown\"\n\t\t\ttoggleProps={ { size: 'small' } }\n\t\t>\n\t\t\t{ ( { onClose } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ Object.entries( menuItems ).map(\n\t\t\t\t\t\t\t\t( [ slug, { label, icon } ] ) => {\n\t\t\t\t\t\t\t\t\tconst isSelected = value === slug;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tonChange( slug );\n\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected\n\t\t\t\t\t\t\t\t\t\t\t\t\t? checkIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\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\t\t{ label }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t{ !! customItem && (\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\ticon={ customItem.icon }\n\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\tisSelected={ value === VIEWS.custom }\n\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tonChange( VIEWS.custom );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\tvalue === VIEWS.custom\n\t\t\t\t\t\t\t\t\t\t\t? checkIcon\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ customItem.label }\n\t\t\t\t\t\t\t\t</MenuItem>\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\t} }\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,YAAY,EAAEC,IAAI,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,uBAAuB;AAC/E,SAASC,KAAK,QAAQ,kBAAkB;;AAExC;AACA;AACA;AACA,SAASC,qBAAqB,EAAEC,KAAK,QAAQ,UAAU;AAEvD,MAAMC,SAAS,GAAGC,aAAA,CAACP,IAAI;EAACQ,IAAI,EAAGL,KAAO;EAACM,IAAI,EAAG;AAAI,CAAE,CAAC;AAErD,eAAe,SAASC,aAAaA,CAAE;EACtCC,KAAK,EAAEC,SAAS;EAChBC,QAAQ;EACRC,KAAK;EACLC;AACD,CAAC,EAAG;EACH,IAAK,CAAED,KAAK,IAAI,CAAEA,KAAK,CAACE,MAAM,EAAG;IAChC;EACD;EAEA,MAAMC,cAAc,GAAGb,qBAAqB,CAAEU,KAAM,CAAC;EACrD,MAAMI,QAAQ,GAAGD,cAAc,CAAEF,KAAK,CAAE,CAACP,IAAI;EAC7C,MAAM;IAAEW,MAAM,EAAEC,UAAU;IAAE,GAAGC;EAAU,CAAC,GAAGJ,cAAc;EAE3D,OACCV,aAAA,CAACR,YAAY;IACZS,IAAI,EAAGU,QAAU;IACjBP,KAAK,EAAGC,SAAW;IACnBU,SAAS,EAAC,iCAAiC;IAC3CC,WAAW,EAAG;MAAEd,IAAI,EAAE;IAAQ;EAAG,GAE/B,CAAE;IAAEe;EAAQ,CAAC,KAAM;IACpB,OACCjB,aAAA,CAAAkB,QAAA,QACClB,aAAA,CAACN,SAAS,QACPyB,MAAM,CAACC,OAAO,CAAEN,SAAU,CAAC,CAACO,GAAG,CAChC,CAAE,CAAEC,IAAI,EAAE;MAAElB,KAAK;MAAEH;IAAK,CAAC,CAAE,KAAM;MAChC,MAAMsB,UAAU,GAAGf,KAAK,KAAKc,IAAI;MACjC,OACCtB,aAAA,CAACL,QAAQ;QACR6B,GAAG,EAAGF,IAAM;QACZrB,IAAI,EAAGA,IAAM;QACbwB,YAAY,EAAC,MAAM;QACnBF,UAAU,EAAGA,UAAY;QACzBG,IAAI,EAAC,eAAe;QACpBC,OAAO,EAAGA,CAAA,KAAM;UACfrB,QAAQ,CAAEgB,IAAK,CAAC;UAChBL,OAAO,CAAC,CAAC;QACV,CAAG;QACHW,MAAM,EACLL,UAAU,GACPxB,SAAS,GACT8B;MACH,GAECzB,KACO,CAAC;IAEb,CACD,CACU,CAAC,EACV,CAAC,CAAES,UAAU,IACdb,aAAA,CAACN,SAAS,QACTM,aAAA,CAACL,QAAQ;MACRM,IAAI,EAAGY,UAAU,CAACZ,IAAM;MACxBwB,YAAY,EAAC,MAAM;MACnBF,UAAU,EAAGf,KAAK,KAAKV,KAAK,CAACc,MAAQ;MACrCc,IAAI,EAAC,eAAe;MACpBC,OAAO,EAAGA,CAAA,KAAM;QACfrB,QAAQ,CAAER,KAAK,CAACc,MAAO,CAAC;QACxBK,OAAO,CAAC,CAAC;MACV,CAAG;MACHW,MAAM,EACLpB,KAAK,KAAKV,KAAK,CAACc,MAAM,GACnBb,SAAS,GACT8B;IACH,GAEChB,UAAU,CAACT,KACJ,CACA,CAEX,CAAC;EAEL,CACa,CAAC;AAEjB"}
@@ -72,9 +72,9 @@ const URLPopover = forwardRef(({
72
72
  onClick: toggleSettingsVisibility,
73
73
  "aria-expanded": isSettingsExpanded,
74
74
  size: "compact"
75
- })), showSettings && createElement("div", {
76
- className: "block-editor-url-popover__row block-editor-url-popover__settings"
77
- }, renderSettings())), additionalControls && !showSettings && createElement("div", {
75
+ }))), showSettings && createElement("div", {
76
+ className: "block-editor-url-popover__settings"
77
+ }, renderSettings()), additionalControls && !showSettings && createElement("div", {
78
78
  className: "block-editor-url-popover__additional-controls"
79
79
  }, additionalControls));
80
80
  });
@@ -1 +1 @@
1
- {"version":3,"names":["__","forwardRef","useState","Button","Popover","privateApis","componentsPrivateApis","chevronDown","deprecated","LinkViewer","LinkEditor","unlock","__experimentalPopoverLegacyPositionToPlacement","DEFAULT_PLACEMENT","URLPopover","additionalControls","children","renderSettings","placement","focusOnMount","position","popoverProps","ref","undefined","since","alternative","computedPlacement","isSettingsExpanded","setIsSettingsExpanded","showSettings","toggleSettingsVisibility","createElement","className","shift","variant","icon","label","onClick","size"],"sources":["@wordpress/block-editor/src/components/url-popover/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tPopover,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { chevronDown } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport LinkViewer from './link-viewer';\nimport LinkEditor from './link-editor';\nimport { unlock } from '../../lock-unlock';\n\nconst { __experimentalPopoverLegacyPositionToPlacement } = unlock(\n\tcomponentsPrivateApis\n);\n\nconst DEFAULT_PLACEMENT = 'bottom';\n\nconst URLPopover = forwardRef(\n\t(\n\t\t{\n\t\t\tadditionalControls,\n\t\t\tchildren,\n\t\t\trenderSettings,\n\t\t\t// The DEFAULT_PLACEMENT value is assigned inside the function's body\n\t\t\tplacement,\n\t\t\tfocusOnMount = 'firstElement',\n\t\t\t// Deprecated\n\t\t\tposition,\n\t\t\t// Rest\n\t\t\t...popoverProps\n\t\t},\n\t\tref\n\t) => {\n\t\tif ( position !== undefined ) {\n\t\t\tdeprecated( '`position` prop in wp.blockEditor.URLPopover', {\n\t\t\t\tsince: '6.2',\n\t\t\t\talternative: '`placement` prop',\n\t\t\t} );\n\t\t}\n\n\t\t// Compute popover's placement:\n\t\t// - give priority to `placement` prop, if defined\n\t\t// - otherwise, compute it from the legacy `position` prop (if defined)\n\t\t// - finally, fallback to the DEFAULT_PLACEMENT.\n\t\tlet computedPlacement;\n\t\tif ( placement !== undefined ) {\n\t\t\tcomputedPlacement = placement;\n\t\t} else if ( position !== undefined ) {\n\t\t\tcomputedPlacement =\n\t\t\t\t__experimentalPopoverLegacyPositionToPlacement( position );\n\t\t}\n\t\tcomputedPlacement = computedPlacement || DEFAULT_PLACEMENT;\n\n\t\tconst [ isSettingsExpanded, setIsSettingsExpanded ] = useState( false );\n\n\t\tconst showSettings = !! renderSettings && isSettingsExpanded;\n\n\t\tconst toggleSettingsVisibility = () => {\n\t\t\tsetIsSettingsExpanded( ! isSettingsExpanded );\n\t\t};\n\n\t\treturn (\n\t\t\t<Popover\n\t\t\t\tref={ ref }\n\t\t\t\tclassName=\"block-editor-url-popover\"\n\t\t\t\tfocusOnMount={ focusOnMount }\n\t\t\t\tplacement={ computedPlacement }\n\t\t\t\tshift\n\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t{ ...popoverProps }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-url-popover__input-container\">\n\t\t\t\t\t<div className=\"block-editor-url-popover__row\">\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t{ !! renderSettings && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"block-editor-url-popover__settings-toggle\"\n\t\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\t\tlabel={ __( 'Link settings' ) }\n\t\t\t\t\t\t\t\tonClick={ toggleSettingsVisibility }\n\t\t\t\t\t\t\t\taria-expanded={ isSettingsExpanded }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t\t{ showSettings && (\n\t\t\t\t\t\t<div className=\"block-editor-url-popover__row block-editor-url-popover__settings\">\n\t\t\t\t\t\t\t{ renderSettings() }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t\t{ additionalControls && ! showSettings && (\n\t\t\t\t\t<div className=\"block-editor-url-popover__additional-controls\">\n\t\t\t\t\t\t{ additionalControls }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</Popover>\n\t\t);\n\t}\n);\n\nURLPopover.LinkEditor = LinkEditor;\n\nURLPopover.LinkViewer = LinkViewer;\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-popover/README.md\n */\nexport default URLPopover;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,UAAU,EAAEC,QAAQ,QAAQ,oBAAoB;AACzD,SACCC,MAAM,EACNC,OAAO,EACPC,WAAW,IAAIC,qBAAqB,QAC9B,uBAAuB;AAC9B,SAASC,WAAW,QAAQ,kBAAkB;AAC9C,OAAOC,UAAU,MAAM,uBAAuB;;AAE9C;AACA;AACA;AACA,OAAOC,UAAU,MAAM,eAAe;AACtC,OAAOC,UAAU,MAAM,eAAe;AACtC,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAM;EAAEC;AAA+C,CAAC,GAAGD,MAAM,CAChEL,qBACD,CAAC;AAED,MAAMO,iBAAiB,GAAG,QAAQ;AAElC,MAAMC,UAAU,GAAGb,UAAU,CAC5B,CACC;EACCc,kBAAkB;EAClBC,QAAQ;EACRC,cAAc;EACd;EACAC,SAAS;EACTC,YAAY,GAAG,cAAc;EAC7B;EACAC,QAAQ;EACR;EACA,GAAGC;AACJ,CAAC,EACDC,GAAG,KACC;EACJ,IAAKF,QAAQ,KAAKG,SAAS,EAAG;IAC7Bf,UAAU,CAAE,8CAA8C,EAAE;MAC3DgB,KAAK,EAAE,KAAK;MACZC,WAAW,EAAE;IACd,CAAE,CAAC;EACJ;;EAEA;EACA;EACA;EACA;EACA,IAAIC,iBAAiB;EACrB,IAAKR,SAAS,KAAKK,SAAS,EAAG;IAC9BG,iBAAiB,GAAGR,SAAS;EAC9B,CAAC,MAAM,IAAKE,QAAQ,KAAKG,SAAS,EAAG;IACpCG,iBAAiB,GAChBd,8CAA8C,CAAEQ,QAAS,CAAC;EAC5D;EACAM,iBAAiB,GAAGA,iBAAiB,IAAIb,iBAAiB;EAE1D,MAAM,CAAEc,kBAAkB,EAAEC,qBAAqB,CAAE,GAAG1B,QAAQ,CAAE,KAAM,CAAC;EAEvE,MAAM2B,YAAY,GAAG,CAAC,CAAEZ,cAAc,IAAIU,kBAAkB;EAE5D,MAAMG,wBAAwB,GAAGA,CAAA,KAAM;IACtCF,qBAAqB,CAAE,CAAED,kBAAmB,CAAC;EAC9C,CAAC;EAED,OACCI,aAAA,CAAC3B,OAAO;IACPkB,GAAG,EAAGA,GAAK;IACXU,SAAS,EAAC,0BAA0B;IACpCb,YAAY,EAAGA,YAAc;IAC7BD,SAAS,EAAGQ,iBAAmB;IAC/BO,KAAK;IACLC,OAAO,EAAC,SAAS;IAAA,GACZb;EAAY,GAEjBU,aAAA;IAAKC,SAAS,EAAC;EAA2C,GACzDD,aAAA;IAAKC,SAAS,EAAC;EAA+B,GAC3ChB,QAAQ,EACR,CAAC,CAAEC,cAAc,IAClBc,aAAA,CAAC5B,MAAM;IACN6B,SAAS,EAAC,2CAA2C;IACrDG,IAAI,EAAG5B,WAAa;IACpB6B,KAAK,EAAGpC,EAAE,CAAE,eAAgB,CAAG;IAC/BqC,OAAO,EAAGP,wBAA0B;IACpC,iBAAgBH,kBAAoB;IACpCW,IAAI,EAAC;EAAS,CACd,CAEE,CAAC,EACJT,YAAY,IACbE,aAAA;IAAKC,SAAS,EAAC;EAAkE,GAC9Ef,cAAc,CAAC,CACb,CAEF,CAAC,EACJF,kBAAkB,IAAI,CAAEc,YAAY,IACrCE,aAAA;IAAKC,SAAS,EAAC;EAA+C,GAC3DjB,kBACE,CAEE,CAAC;AAEZ,CACD,CAAC;AAEDD,UAAU,CAACJ,UAAU,GAAGA,UAAU;AAElCI,UAAU,CAACL,UAAU,GAAGA,UAAU;;AAElC;AACA;AACA;AACA,eAAeK,UAAU"}
1
+ {"version":3,"names":["__","forwardRef","useState","Button","Popover","privateApis","componentsPrivateApis","chevronDown","deprecated","LinkViewer","LinkEditor","unlock","__experimentalPopoverLegacyPositionToPlacement","DEFAULT_PLACEMENT","URLPopover","additionalControls","children","renderSettings","placement","focusOnMount","position","popoverProps","ref","undefined","since","alternative","computedPlacement","isSettingsExpanded","setIsSettingsExpanded","showSettings","toggleSettingsVisibility","createElement","className","shift","variant","icon","label","onClick","size"],"sources":["@wordpress/block-editor/src/components/url-popover/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tPopover,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { chevronDown } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport LinkViewer from './link-viewer';\nimport LinkEditor from './link-editor';\nimport { unlock } from '../../lock-unlock';\n\nconst { __experimentalPopoverLegacyPositionToPlacement } = unlock(\n\tcomponentsPrivateApis\n);\n\nconst DEFAULT_PLACEMENT = 'bottom';\n\nconst URLPopover = forwardRef(\n\t(\n\t\t{\n\t\t\tadditionalControls,\n\t\t\tchildren,\n\t\t\trenderSettings,\n\t\t\t// The DEFAULT_PLACEMENT value is assigned inside the function's body\n\t\t\tplacement,\n\t\t\tfocusOnMount = 'firstElement',\n\t\t\t// Deprecated\n\t\t\tposition,\n\t\t\t// Rest\n\t\t\t...popoverProps\n\t\t},\n\t\tref\n\t) => {\n\t\tif ( position !== undefined ) {\n\t\t\tdeprecated( '`position` prop in wp.blockEditor.URLPopover', {\n\t\t\t\tsince: '6.2',\n\t\t\t\talternative: '`placement` prop',\n\t\t\t} );\n\t\t}\n\n\t\t// Compute popover's placement:\n\t\t// - give priority to `placement` prop, if defined\n\t\t// - otherwise, compute it from the legacy `position` prop (if defined)\n\t\t// - finally, fallback to the DEFAULT_PLACEMENT.\n\t\tlet computedPlacement;\n\t\tif ( placement !== undefined ) {\n\t\t\tcomputedPlacement = placement;\n\t\t} else if ( position !== undefined ) {\n\t\t\tcomputedPlacement =\n\t\t\t\t__experimentalPopoverLegacyPositionToPlacement( position );\n\t\t}\n\t\tcomputedPlacement = computedPlacement || DEFAULT_PLACEMENT;\n\n\t\tconst [ isSettingsExpanded, setIsSettingsExpanded ] = useState( false );\n\n\t\tconst showSettings = !! renderSettings && isSettingsExpanded;\n\n\t\tconst toggleSettingsVisibility = () => {\n\t\t\tsetIsSettingsExpanded( ! isSettingsExpanded );\n\t\t};\n\n\t\treturn (\n\t\t\t<Popover\n\t\t\t\tref={ ref }\n\t\t\t\tclassName=\"block-editor-url-popover\"\n\t\t\t\tfocusOnMount={ focusOnMount }\n\t\t\t\tplacement={ computedPlacement }\n\t\t\t\tshift\n\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t{ ...popoverProps }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-url-popover__input-container\">\n\t\t\t\t\t<div className=\"block-editor-url-popover__row\">\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t{ !! renderSettings && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"block-editor-url-popover__settings-toggle\"\n\t\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\t\tlabel={ __( 'Link settings' ) }\n\t\t\t\t\t\t\t\tonClick={ toggleSettingsVisibility }\n\t\t\t\t\t\t\t\taria-expanded={ isSettingsExpanded }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t{ showSettings && (\n\t\t\t\t\t<div className=\"block-editor-url-popover__settings\">\n\t\t\t\t\t\t{ renderSettings() }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t{ additionalControls && ! showSettings && (\n\t\t\t\t\t<div className=\"block-editor-url-popover__additional-controls\">\n\t\t\t\t\t\t{ additionalControls }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</Popover>\n\t\t);\n\t}\n);\n\nURLPopover.LinkEditor = LinkEditor;\n\nURLPopover.LinkViewer = LinkViewer;\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-popover/README.md\n */\nexport default URLPopover;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,UAAU,EAAEC,QAAQ,QAAQ,oBAAoB;AACzD,SACCC,MAAM,EACNC,OAAO,EACPC,WAAW,IAAIC,qBAAqB,QAC9B,uBAAuB;AAC9B,SAASC,WAAW,QAAQ,kBAAkB;AAC9C,OAAOC,UAAU,MAAM,uBAAuB;;AAE9C;AACA;AACA;AACA,OAAOC,UAAU,MAAM,eAAe;AACtC,OAAOC,UAAU,MAAM,eAAe;AACtC,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAM;EAAEC;AAA+C,CAAC,GAAGD,MAAM,CAChEL,qBACD,CAAC;AAED,MAAMO,iBAAiB,GAAG,QAAQ;AAElC,MAAMC,UAAU,GAAGb,UAAU,CAC5B,CACC;EACCc,kBAAkB;EAClBC,QAAQ;EACRC,cAAc;EACd;EACAC,SAAS;EACTC,YAAY,GAAG,cAAc;EAC7B;EACAC,QAAQ;EACR;EACA,GAAGC;AACJ,CAAC,EACDC,GAAG,KACC;EACJ,IAAKF,QAAQ,KAAKG,SAAS,EAAG;IAC7Bf,UAAU,CAAE,8CAA8C,EAAE;MAC3DgB,KAAK,EAAE,KAAK;MACZC,WAAW,EAAE;IACd,CAAE,CAAC;EACJ;;EAEA;EACA;EACA;EACA;EACA,IAAIC,iBAAiB;EACrB,IAAKR,SAAS,KAAKK,SAAS,EAAG;IAC9BG,iBAAiB,GAAGR,SAAS;EAC9B,CAAC,MAAM,IAAKE,QAAQ,KAAKG,SAAS,EAAG;IACpCG,iBAAiB,GAChBd,8CAA8C,CAAEQ,QAAS,CAAC;EAC5D;EACAM,iBAAiB,GAAGA,iBAAiB,IAAIb,iBAAiB;EAE1D,MAAM,CAAEc,kBAAkB,EAAEC,qBAAqB,CAAE,GAAG1B,QAAQ,CAAE,KAAM,CAAC;EAEvE,MAAM2B,YAAY,GAAG,CAAC,CAAEZ,cAAc,IAAIU,kBAAkB;EAE5D,MAAMG,wBAAwB,GAAGA,CAAA,KAAM;IACtCF,qBAAqB,CAAE,CAAED,kBAAmB,CAAC;EAC9C,CAAC;EAED,OACCI,aAAA,CAAC3B,OAAO;IACPkB,GAAG,EAAGA,GAAK;IACXU,SAAS,EAAC,0BAA0B;IACpCb,YAAY,EAAGA,YAAc;IAC7BD,SAAS,EAAGQ,iBAAmB;IAC/BO,KAAK;IACLC,OAAO,EAAC,SAAS;IAAA,GACZb;EAAY,GAEjBU,aAAA;IAAKC,SAAS,EAAC;EAA2C,GACzDD,aAAA;IAAKC,SAAS,EAAC;EAA+B,GAC3ChB,QAAQ,EACR,CAAC,CAAEC,cAAc,IAClBc,aAAA,CAAC5B,MAAM;IACN6B,SAAS,EAAC,2CAA2C;IACrDG,IAAI,EAAG5B,WAAa;IACpB6B,KAAK,EAAGpC,EAAE,CAAE,eAAgB,CAAG;IAC/BqC,OAAO,EAAGP,wBAA0B;IACpC,iBAAgBH,kBAAoB;IACpCW,IAAI,EAAC;EAAS,CACd,CAEE,CACD,CAAC,EACJT,YAAY,IACbE,aAAA;IAAKC,SAAS,EAAC;EAAoC,GAChDf,cAAc,CAAC,CACb,CACL,EACCF,kBAAkB,IAAI,CAAEc,YAAY,IACrCE,aAAA;IAAKC,SAAS,EAAC;EAA+C,GAC3DjB,kBACE,CAEE,CAAC;AAEZ,CACD,CAAC;AAEDD,UAAU,CAACJ,UAAU,GAAGA,UAAU;AAElCI,UAAU,CAACL,UAAU,GAAGA,UAAU;;AAElC;AACA;AACA;AACA,eAAeK,UAAU"}
@@ -142,6 +142,10 @@ function useMovingAnimation({
142
142
  });
143
143
  return () => {
144
144
  controller.stop();
145
+ controller.set({
146
+ x: 0,
147
+ y: 0
148
+ });
145
149
  };
146
150
  }, [previous, prevRect, clientId, isTyping, getGlobalBlockCount, isBlockSelected, isFirstMultiSelectedBlock, isBlockMultiSelected, isAncestorMultiSelected]);
147
151
  return ref;
@@ -1 +1 @@
1
- {"version":3,"names":["Controller","useLayoutEffect","useMemo","useRef","getScrollContainer","useSelect","store","blockEditorStore","BLOCK_ANIMATION_THRESHOLD","getAbsolutePosition","element","top","offsetTop","left","offsetLeft","useMovingAnimation","triggerAnimationOnChange","clientId","ref","isTyping","getGlobalBlockCount","isBlockSelected","isFirstMultiSelectedBlock","isBlockMultiSelected","isAncestorMultiSelected","previous","prevRect","current","getBoundingClientRect","scrollContainer","isSelected","adjustScrolling","preserveScrollPosition","blockRect","diff","scrollTop","disableAnimation","window","matchMedia","matches","isPartOfSelection","zIndex","controller","x","y","config","mass","tension","friction","onChange","value","Math","round","finishedMoving","style","transformOrigin","transform","undefined","destination","start","from","stop"],"sources":["@wordpress/block-editor/src/components/use-moving-animation/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Controller } from '@react-spring/web';\n\n/**\n * WordPress dependencies\n */\nimport { useLayoutEffect, useMemo, useRef } from '@wordpress/element';\nimport { getScrollContainer } from '@wordpress/dom';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * If the block count exceeds the threshold, we disable the reordering animation\n * to avoid laginess.\n */\nconst BLOCK_ANIMATION_THRESHOLD = 200;\n\nfunction getAbsolutePosition( element ) {\n\treturn {\n\t\ttop: element.offsetTop,\n\t\tleft: element.offsetLeft,\n\t};\n}\n\n/**\n * Hook used to compute the styles required to move a div into a new position.\n *\n * The way this animation works is the following:\n * - It first renders the element as if there was no animation.\n * - It takes a snapshot of the position of the block to use it\n * as a destination point for the animation.\n * - It restores the element to the previous position using a CSS transform\n * - It uses the \"resetAnimation\" flag to reset the animation\n * from the beginning in order to animate to the new destination point.\n *\n * @param {Object} $1 Options\n * @param {*} $1.triggerAnimationOnChange Variable used to trigger the animation if it changes.\n * @param {string} $1.clientId\n */\nfunction useMovingAnimation( { triggerAnimationOnChange, clientId } ) {\n\tconst ref = useRef();\n\tconst {\n\t\tisTyping,\n\t\tgetGlobalBlockCount,\n\t\tisBlockSelected,\n\t\tisFirstMultiSelectedBlock,\n\t\tisBlockMultiSelected,\n\t\tisAncestorMultiSelected,\n\t} = useSelect( blockEditorStore );\n\n\t// Whenever the trigger changes, we need to take a snapshot of the current\n\t// position of the block to use it as a destination point for the animation.\n\tconst { previous, prevRect } = useMemo(\n\t\t() => ( {\n\t\t\tprevious: ref.current && getAbsolutePosition( ref.current ),\n\t\t\tprevRect: ref.current && ref.current.getBoundingClientRect(),\n\t\t} ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[ triggerAnimationOnChange ]\n\t);\n\n\tuseLayoutEffect( () => {\n\t\tif ( ! previous || ! ref.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst scrollContainer = getScrollContainer( ref.current );\n\t\tconst isSelected = isBlockSelected( clientId );\n\t\tconst adjustScrolling =\n\t\t\tisSelected || isFirstMultiSelectedBlock( clientId );\n\n\t\tfunction preserveScrollPosition() {\n\t\t\tif ( adjustScrolling && prevRect ) {\n\t\t\t\tconst blockRect = ref.current.getBoundingClientRect();\n\t\t\t\tconst diff = blockRect.top - prevRect.top;\n\n\t\t\t\tif ( diff ) {\n\t\t\t\t\tscrollContainer.scrollTop += diff;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// We disable the animation if the user has a preference for reduced\n\t\t// motion, if the user is typing (insertion by Enter), or if the block\n\t\t// count exceeds the threshold (insertion caused all the blocks that\n\t\t// follow to animate).\n\t\t// To do: consider enableing the _moving_ animation even for large\n\t\t// posts, while only disabling the _insertion_ animation?\n\t\tconst disableAnimation =\n\t\t\twindow.matchMedia( '(prefers-reduced-motion: reduce)' ).matches ||\n\t\t\tisTyping() ||\n\t\t\tgetGlobalBlockCount() > BLOCK_ANIMATION_THRESHOLD;\n\n\t\tif ( disableAnimation ) {\n\t\t\t// If the animation is disabled and the scroll needs to be adjusted,\n\t\t\t// just move directly to the final scroll position.\n\t\t\tpreserveScrollPosition();\n\t\t\treturn;\n\t\t}\n\n\t\tconst isPartOfSelection =\n\t\t\tisSelected ||\n\t\t\tisBlockMultiSelected( clientId ) ||\n\t\t\tisAncestorMultiSelected( clientId );\n\t\t// Make sure the other blocks move under the selected block(s).\n\t\tconst zIndex = isPartOfSelection ? '1' : '';\n\n\t\tconst controller = new Controller( {\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t\tconfig: { mass: 5, tension: 2000, friction: 200 },\n\t\t\tonChange( { value } ) {\n\t\t\t\tif ( ! ref.current ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlet { x, y } = value;\n\t\t\t\tx = Math.round( x );\n\t\t\t\ty = Math.round( y );\n\t\t\t\tconst finishedMoving = x === 0 && y === 0;\n\t\t\t\tref.current.style.transformOrigin = 'center center';\n\t\t\t\tref.current.style.transform = finishedMoving\n\t\t\t\t\t? null // Set to `null` to explicitly remove the transform.\n\t\t\t\t\t: `translate3d(${ x }px,${ y }px,0)`;\n\t\t\t\tref.current.style.zIndex = zIndex;\n\t\t\t\tpreserveScrollPosition();\n\t\t\t},\n\t\t} );\n\n\t\tref.current.style.transform = undefined;\n\t\tconst destination = getAbsolutePosition( ref.current );\n\n\t\tconst x = Math.round( previous.left - destination.left );\n\t\tconst y = Math.round( previous.top - destination.top );\n\n\t\tcontroller.start( { x: 0, y: 0, from: { x, y } } );\n\n\t\treturn () => {\n\t\t\tcontroller.stop();\n\t\t};\n\t}, [\n\t\tprevious,\n\t\tprevRect,\n\t\tclientId,\n\t\tisTyping,\n\t\tgetGlobalBlockCount,\n\t\tisBlockSelected,\n\t\tisFirstMultiSelectedBlock,\n\t\tisBlockMultiSelected,\n\t\tisAncestorMultiSelected,\n\t] );\n\n\treturn ref;\n}\n\nexport default useMovingAnimation;\n"],"mappings":"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"}
1
+ {"version":3,"names":["Controller","useLayoutEffect","useMemo","useRef","getScrollContainer","useSelect","store","blockEditorStore","BLOCK_ANIMATION_THRESHOLD","getAbsolutePosition","element","top","offsetTop","left","offsetLeft","useMovingAnimation","triggerAnimationOnChange","clientId","ref","isTyping","getGlobalBlockCount","isBlockSelected","isFirstMultiSelectedBlock","isBlockMultiSelected","isAncestorMultiSelected","previous","prevRect","current","getBoundingClientRect","scrollContainer","isSelected","adjustScrolling","preserveScrollPosition","blockRect","diff","scrollTop","disableAnimation","window","matchMedia","matches","isPartOfSelection","zIndex","controller","x","y","config","mass","tension","friction","onChange","value","Math","round","finishedMoving","style","transformOrigin","transform","undefined","destination","start","from","stop","set"],"sources":["@wordpress/block-editor/src/components/use-moving-animation/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Controller } from '@react-spring/web';\n\n/**\n * WordPress dependencies\n */\nimport { useLayoutEffect, useMemo, useRef } from '@wordpress/element';\nimport { getScrollContainer } from '@wordpress/dom';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * If the block count exceeds the threshold, we disable the reordering animation\n * to avoid laginess.\n */\nconst BLOCK_ANIMATION_THRESHOLD = 200;\n\nfunction getAbsolutePosition( element ) {\n\treturn {\n\t\ttop: element.offsetTop,\n\t\tleft: element.offsetLeft,\n\t};\n}\n\n/**\n * Hook used to compute the styles required to move a div into a new position.\n *\n * The way this animation works is the following:\n * - It first renders the element as if there was no animation.\n * - It takes a snapshot of the position of the block to use it\n * as a destination point for the animation.\n * - It restores the element to the previous position using a CSS transform\n * - It uses the \"resetAnimation\" flag to reset the animation\n * from the beginning in order to animate to the new destination point.\n *\n * @param {Object} $1 Options\n * @param {*} $1.triggerAnimationOnChange Variable used to trigger the animation if it changes.\n * @param {string} $1.clientId\n */\nfunction useMovingAnimation( { triggerAnimationOnChange, clientId } ) {\n\tconst ref = useRef();\n\tconst {\n\t\tisTyping,\n\t\tgetGlobalBlockCount,\n\t\tisBlockSelected,\n\t\tisFirstMultiSelectedBlock,\n\t\tisBlockMultiSelected,\n\t\tisAncestorMultiSelected,\n\t} = useSelect( blockEditorStore );\n\n\t// Whenever the trigger changes, we need to take a snapshot of the current\n\t// position of the block to use it as a destination point for the animation.\n\tconst { previous, prevRect } = useMemo(\n\t\t() => ( {\n\t\t\tprevious: ref.current && getAbsolutePosition( ref.current ),\n\t\t\tprevRect: ref.current && ref.current.getBoundingClientRect(),\n\t\t} ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[ triggerAnimationOnChange ]\n\t);\n\n\tuseLayoutEffect( () => {\n\t\tif ( ! previous || ! ref.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst scrollContainer = getScrollContainer( ref.current );\n\t\tconst isSelected = isBlockSelected( clientId );\n\t\tconst adjustScrolling =\n\t\t\tisSelected || isFirstMultiSelectedBlock( clientId );\n\n\t\tfunction preserveScrollPosition() {\n\t\t\tif ( adjustScrolling && prevRect ) {\n\t\t\t\tconst blockRect = ref.current.getBoundingClientRect();\n\t\t\t\tconst diff = blockRect.top - prevRect.top;\n\n\t\t\t\tif ( diff ) {\n\t\t\t\t\tscrollContainer.scrollTop += diff;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// We disable the animation if the user has a preference for reduced\n\t\t// motion, if the user is typing (insertion by Enter), or if the block\n\t\t// count exceeds the threshold (insertion caused all the blocks that\n\t\t// follow to animate).\n\t\t// To do: consider enableing the _moving_ animation even for large\n\t\t// posts, while only disabling the _insertion_ animation?\n\t\tconst disableAnimation =\n\t\t\twindow.matchMedia( '(prefers-reduced-motion: reduce)' ).matches ||\n\t\t\tisTyping() ||\n\t\t\tgetGlobalBlockCount() > BLOCK_ANIMATION_THRESHOLD;\n\n\t\tif ( disableAnimation ) {\n\t\t\t// If the animation is disabled and the scroll needs to be adjusted,\n\t\t\t// just move directly to the final scroll position.\n\t\t\tpreserveScrollPosition();\n\t\t\treturn;\n\t\t}\n\n\t\tconst isPartOfSelection =\n\t\t\tisSelected ||\n\t\t\tisBlockMultiSelected( clientId ) ||\n\t\t\tisAncestorMultiSelected( clientId );\n\t\t// Make sure the other blocks move under the selected block(s).\n\t\tconst zIndex = isPartOfSelection ? '1' : '';\n\n\t\tconst controller = new Controller( {\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t\tconfig: { mass: 5, tension: 2000, friction: 200 },\n\t\t\tonChange( { value } ) {\n\t\t\t\tif ( ! ref.current ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlet { x, y } = value;\n\t\t\t\tx = Math.round( x );\n\t\t\t\ty = Math.round( y );\n\t\t\t\tconst finishedMoving = x === 0 && y === 0;\n\t\t\t\tref.current.style.transformOrigin = 'center center';\n\t\t\t\tref.current.style.transform = finishedMoving\n\t\t\t\t\t? null // Set to `null` to explicitly remove the transform.\n\t\t\t\t\t: `translate3d(${ x }px,${ y }px,0)`;\n\t\t\t\tref.current.style.zIndex = zIndex;\n\t\t\t\tpreserveScrollPosition();\n\t\t\t},\n\t\t} );\n\n\t\tref.current.style.transform = undefined;\n\t\tconst destination = getAbsolutePosition( ref.current );\n\n\t\tconst x = Math.round( previous.left - destination.left );\n\t\tconst y = Math.round( previous.top - destination.top );\n\n\t\tcontroller.start( { x: 0, y: 0, from: { x, y } } );\n\n\t\treturn () => {\n\t\t\tcontroller.stop();\n\t\t\tcontroller.set( { x: 0, y: 0 } );\n\t\t};\n\t}, [\n\t\tprevious,\n\t\tprevRect,\n\t\tclientId,\n\t\tisTyping,\n\t\tgetGlobalBlockCount,\n\t\tisBlockSelected,\n\t\tisFirstMultiSelectedBlock,\n\t\tisBlockMultiSelected,\n\t\tisAncestorMultiSelected,\n\t] );\n\n\treturn ref;\n}\n\nexport default useMovingAnimation;\n"],"mappings":"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"}