@wordpress/block-editor 14.1.0 → 14.2.1-next.1f6eadc42.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 (705) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +1 -10
  3. package/build/components/block-alignment-matrix-control/index.js +2 -2
  4. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  5. package/build/components/block-breadcrumb/index.js +2 -2
  6. package/build/components/block-breadcrumb/index.js.map +1 -1
  7. package/build/components/block-canvas/index.js +8 -1
  8. package/build/components/block-canvas/index.js.map +1 -1
  9. package/build/components/block-compare/block-view.js +1 -0
  10. package/build/components/block-compare/block-view.js.map +1 -1
  11. package/build/components/block-draggable/index.js +4 -4
  12. package/build/components/block-draggable/index.js.map +1 -1
  13. package/build/components/block-draggable/use-scroll-when-dragging.js +25 -25
  14. package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  15. package/build/components/block-edit/multiple-usage-warning.js +2 -0
  16. package/build/components/block-edit/multiple-usage-warning.js.map +1 -1
  17. package/build/components/block-inspector/index.js +27 -11
  18. package/build/components/block-inspector/index.js.map +1 -1
  19. package/build/components/block-list/block-invalid-warning.js +3 -2
  20. package/build/components/block-list/block-invalid-warning.js.map +1 -1
  21. package/build/components/block-list/block.js +5 -1
  22. package/build/components/block-list/block.js.map +1 -1
  23. package/build/components/block-list/index.js +14 -3
  24. package/build/components/block-list/index.js.map +1 -1
  25. package/build/components/block-list/use-block-props/index.js +5 -1
  26. package/build/components/block-list/use-block-props/index.js.map +1 -1
  27. package/build/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  28. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  29. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +53 -0
  30. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
  31. package/build/components/block-list/zoom-out-separator.js +98 -0
  32. package/build/components/block-list/zoom-out-separator.js.map +1 -0
  33. package/build/components/block-lock/toolbar.js +3 -3
  34. package/build/components/block-lock/toolbar.js.map +1 -1
  35. package/build/components/block-mover/button.js +1 -0
  36. package/build/components/block-mover/button.js.map +1 -1
  37. package/build/components/block-mover/index.js +1 -0
  38. package/build/components/block-mover/index.js.map +1 -1
  39. package/build/components/block-navigation/dropdown.js +4 -1
  40. package/build/components/block-navigation/dropdown.js.map +1 -1
  41. package/build/components/block-pattern-setup/index.js +2 -10
  42. package/build/components/block-pattern-setup/index.js.map +1 -1
  43. package/build/components/block-pattern-setup/setup-toolbar.js +22 -7
  44. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  45. package/build/components/block-patterns-list/index.js +12 -20
  46. package/build/components/block-patterns-list/index.js.map +1 -1
  47. package/build/components/block-patterns-paging/index.js +12 -3
  48. package/build/components/block-patterns-paging/index.js.map +1 -1
  49. package/build/components/block-popover/index.js +2 -15
  50. package/build/components/block-popover/index.js.map +1 -1
  51. package/build/components/block-quick-navigation/index.js +4 -1
  52. package/build/components/block-quick-navigation/index.js.map +1 -1
  53. package/build/components/block-settings-menu-controls/index.js +4 -0
  54. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  55. package/build/components/block-switcher/index.js +30 -19
  56. package/build/components/block-switcher/index.js.map +1 -1
  57. package/build/components/block-switcher/pattern-transformations-menu.js +2 -10
  58. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  59. package/build/components/block-toolbar/index.js +19 -12
  60. package/build/components/block-toolbar/index.js.map +1 -1
  61. package/build/components/block-toolbar/shuffle.js +6 -2
  62. package/build/components/block-toolbar/shuffle.js.map +1 -1
  63. package/build/components/block-tools/block-selection-button.js +8 -2
  64. package/build/components/block-tools/block-selection-button.js.map +1 -1
  65. package/build/components/block-tools/block-toolbar-popover.js +10 -6
  66. package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
  67. package/build/components/block-tools/index.js +1 -1
  68. package/build/components/block-tools/index.js.map +1 -1
  69. package/build/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  70. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  71. package/build/components/block-tools/zoom-out-mode-inserters.js +7 -21
  72. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  73. package/build/components/block-tools/zoom-out-popover.js +3 -4
  74. package/build/components/block-tools/zoom-out-popover.js.map +1 -1
  75. package/build/components/block-tools/zoom-out-toolbar.js +26 -7
  76. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
  77. package/build/components/block-variation-picker/index.js +4 -1
  78. package/build/components/block-variation-picker/index.js.map +1 -1
  79. package/build/components/block-variation-transforms/index.js +4 -1
  80. package/build/components/block-variation-transforms/index.js.map +1 -1
  81. package/build/components/button-block-appender/index.js +20 -23
  82. package/build/components/button-block-appender/index.js.map +1 -1
  83. package/build/components/colors-gradients/dropdown.js +4 -1
  84. package/build/components/colors-gradients/dropdown.js.map +1 -1
  85. package/build/components/content-lock/index.js +13 -0
  86. package/build/components/content-lock/index.js.map +1 -0
  87. package/build/components/content-lock/modify-content-lock-menu-item.js +64 -0
  88. package/build/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
  89. package/build/components/editor-styles/index.js +4 -3
  90. package/build/components/editor-styles/index.js.map +1 -1
  91. package/build/components/global-styles/background-panel.js +8 -12
  92. package/build/components/global-styles/background-panel.js.map +1 -1
  93. package/build/components/global-styles/color-panel.js +8 -5
  94. package/build/components/global-styles/color-panel.js.map +1 -1
  95. package/build/components/global-styles/color-panel.native.js +1 -1
  96. package/build/components/global-styles/color-panel.native.js.map +1 -1
  97. package/build/components/global-styles/dimensions-panel.js +34 -37
  98. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  99. package/build/components/global-styles/filters-panel.js +4 -1
  100. package/build/components/global-styles/filters-panel.js.map +1 -1
  101. package/build/components/global-styles/shadow-panel-components.js +14 -17
  102. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  103. package/build/components/global-styles/typography-utils.js +17 -6
  104. package/build/components/global-styles/typography-utils.js.map +1 -1
  105. package/build/components/global-styles/utils.js +4 -6
  106. package/build/components/global-styles/utils.js.map +1 -1
  107. package/build/components/grid/grid-item-movers.js +2 -2
  108. package/build/components/grid/grid-item-movers.js.map +1 -1
  109. package/build/components/grid/grid-item-resizer.js +2 -2
  110. package/build/components/grid/grid-item-resizer.js.map +1 -1
  111. package/build/components/iframe/get-compatibility-styles.js +1 -1
  112. package/build/components/iframe/get-compatibility-styles.js.map +1 -1
  113. package/build/components/iframe/index.js +5 -5
  114. package/build/components/iframe/index.js.map +1 -1
  115. package/build/components/inner-blocks/index.js +2 -4
  116. package/build/components/inner-blocks/index.js.map +1 -1
  117. package/build/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  118. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  119. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
  120. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  121. package/build/components/inserter/block-patterns-tab/index.js +4 -1
  122. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  123. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +23 -13
  124. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  125. package/build/components/inserter/index.js +4 -11
  126. package/build/components/inserter/index.js.map +1 -1
  127. package/build/components/inserter/library.js +2 -4
  128. package/build/components/inserter/library.js.map +1 -1
  129. package/build/components/inserter/media-tab/hooks.js +3 -3
  130. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  131. package/build/components/inserter/media-tab/media-list.js +1 -8
  132. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  133. package/build/components/inserter/media-tab/media-preview.js +9 -7
  134. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  135. package/build/components/inserter/media-tab/media-tab.js +4 -1
  136. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  137. package/build/components/inserter/menu.js +7 -24
  138. package/build/components/inserter/menu.js.map +1 -1
  139. package/build/components/inserter/quick-inserter.js +4 -5
  140. package/build/components/inserter/quick-inserter.js.map +1 -1
  141. package/build/components/inserter-list-item/index.js +4 -4
  142. package/build/components/inserter-list-item/index.js.map +1 -1
  143. package/build/components/inserter-listbox/index.js +3 -13
  144. package/build/components/inserter-listbox/index.js.map +1 -1
  145. package/build/components/inserter-listbox/item.js +6 -11
  146. package/build/components/inserter-listbox/item.js.map +1 -1
  147. package/build/components/inserter-listbox/row.js +1 -9
  148. package/build/components/inserter-listbox/row.js.map +1 -1
  149. package/build/components/inspector-controls/groups.js +2 -0
  150. package/build/components/inspector-controls/groups.js.map +1 -1
  151. package/build/components/inspector-controls-tabs/index.js +4 -1
  152. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  153. package/build/components/inspector-controls-tabs/settings-tab.js +3 -1
  154. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  155. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
  156. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  157. package/build/components/inspector-popover-header/index.js +8 -2
  158. package/build/components/inspector-popover-header/index.js.map +1 -1
  159. package/build/components/letter-spacing-control/index.js +7 -4
  160. package/build/components/letter-spacing-control/index.js.map +1 -1
  161. package/build/components/link-control/index.js +19 -10
  162. package/build/components/link-control/index.js.map +1 -1
  163. package/build/components/link-control/settings-drawer.js +4 -1
  164. package/build/components/link-control/settings-drawer.js.map +1 -1
  165. package/build/components/list-view/block-select-button.js +4 -1
  166. package/build/components/list-view/block-select-button.js.map +1 -1
  167. package/build/components/list-view/index.js +3 -7
  168. package/build/components/list-view/index.js.map +1 -1
  169. package/build/components/media-placeholder/index.js +32 -11
  170. package/build/components/media-placeholder/index.js.map +1 -1
  171. package/build/components/media-replace-flow/index.js +8 -1
  172. package/build/components/media-replace-flow/index.js.map +1 -1
  173. package/build/components/provider/use-block-sync.js +19 -19
  174. package/build/components/provider/use-block-sync.js.map +1 -1
  175. package/build/components/rich-text/event-listeners/paste-handler.js +12 -1
  176. package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  177. package/build/components/rich-text/index.js +38 -30
  178. package/build/components/rich-text/index.js.map +1 -1
  179. package/build/components/rich-text/use-mark-persistent.js +5 -5
  180. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  181. package/build/components/skip-to-selected-block/index.js +4 -1
  182. package/build/components/skip-to-selected-block/index.js.map +1 -1
  183. package/build/components/spacing-sizes-control/index.js +8 -9
  184. package/build/components/spacing-sizes-control/index.js.map +1 -1
  185. package/build/components/spacing-sizes-control/linked-button.js +35 -0
  186. package/build/components/spacing-sizes-control/linked-button.js.map +1 -0
  187. package/build/components/spacing-sizes-control/utils.js +4 -15
  188. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  189. package/build/components/tool-selector/index.js +4 -1
  190. package/build/components/tool-selector/index.js.map +1 -1
  191. package/build/components/url-input/button.js +12 -3
  192. package/build/components/url-input/button.js.map +1 -1
  193. package/build/components/url-input/index.js +4 -1
  194. package/build/components/url-input/index.js.map +1 -1
  195. package/build/components/use-block-drop-zone/index.js +31 -7
  196. package/build/components/use-block-drop-zone/index.js.map +1 -1
  197. package/build/components/writing-flow/index.js +2 -1
  198. package/build/components/writing-flow/index.js.map +1 -1
  199. package/build/components/writing-flow/use-arrow-nav.js +4 -1
  200. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  201. package/build/components/writing-flow/use-event-redirect.js +66 -0
  202. package/build/components/writing-flow/use-event-redirect.js.map +1 -0
  203. package/build/components/writing-flow/use-input.js +31 -1
  204. package/build/components/writing-flow/use-input.js.map +1 -1
  205. package/build/components/writing-flow/use-select-all.js +14 -1
  206. package/build/components/writing-flow/use-select-all.js.map +1 -1
  207. package/build/components/writing-flow/use-selection-observer.js +20 -6
  208. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  209. package/build/components/writing-flow/use-tab-nav.js +4 -4
  210. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  211. package/build/components/writing-flow/utils.js +27 -0
  212. package/build/components/writing-flow/utils.js.map +1 -1
  213. package/build/hooks/block-bindings.js +33 -29
  214. package/build/hooks/block-bindings.js.map +1 -1
  215. package/build/hooks/content-lock-ui.js +8 -26
  216. package/build/hooks/content-lock-ui.js.map +1 -1
  217. package/build/hooks/duotone.js +0 -4
  218. package/build/hooks/duotone.js.map +1 -1
  219. package/build/hooks/layout.js +4 -2
  220. package/build/hooks/layout.js.map +1 -1
  221. package/build/hooks/spacing-visualizer.js +3 -3
  222. package/build/hooks/spacing-visualizer.js.map +1 -1
  223. package/build/hooks/style.js +1 -5
  224. package/build/hooks/style.js.map +1 -1
  225. package/build/hooks/use-bindings-attributes.js +19 -20
  226. package/build/hooks/use-bindings-attributes.js.map +1 -1
  227. package/build/hooks/use-zoom-out.js +7 -7
  228. package/build/hooks/use-zoom-out.js.map +1 -1
  229. package/build/layouts/constrained.js +41 -42
  230. package/build/layouts/constrained.js.map +1 -1
  231. package/build/layouts/flex.js +4 -1
  232. package/build/layouts/flex.js.map +1 -1
  233. package/build/layouts/grid.js +19 -16
  234. package/build/layouts/grid.js.map +1 -1
  235. package/build/layouts/utils.js +1 -7
  236. package/build/layouts/utils.js.map +1 -1
  237. package/build/private-apis.js +2 -3
  238. package/build/private-apis.js.map +1 -1
  239. package/build/store/actions.js +2 -7
  240. package/build/store/actions.js.map +1 -1
  241. package/build/store/private-actions.js +1 -0
  242. package/build/store/private-actions.js.map +1 -1
  243. package/build/store/private-keys.js +2 -1
  244. package/build/store/private-keys.js.map +1 -1
  245. package/build/store/private-selectors.js +16 -18
  246. package/build/store/private-selectors.js.map +1 -1
  247. package/build/store/reducer.js +1 -10
  248. package/build/store/reducer.js.map +1 -1
  249. package/build/store/selectors.js +19 -43
  250. package/build/store/selectors.js.map +1 -1
  251. package/build/store/utils.js +48 -0
  252. package/build/store/utils.js.map +1 -1
  253. package/build/utils/block-bindings.js +16 -11
  254. package/build/utils/block-bindings.js.map +1 -1
  255. package/build/utils/dom.js +101 -0
  256. package/build/utils/dom.js.map +1 -1
  257. package/build/utils/get-font-styles-and-weights.js +4 -4
  258. package/build/utils/get-font-styles-and-weights.js.map +1 -1
  259. package/build/utils/transform-styles/index.js +120 -16
  260. package/build/utils/transform-styles/index.js.map +1 -1
  261. package/build-module/components/block-alignment-matrix-control/index.js +1 -1
  262. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  263. package/build-module/components/block-breadcrumb/index.js +2 -2
  264. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  265. package/build-module/components/block-canvas/index.js +9 -1
  266. package/build-module/components/block-canvas/index.js.map +1 -1
  267. package/build-module/components/block-compare/block-view.js +1 -0
  268. package/build-module/components/block-compare/block-view.js.map +1 -1
  269. package/build-module/components/block-draggable/index.js +4 -4
  270. package/build-module/components/block-draggable/index.js.map +1 -1
  271. package/build-module/components/block-draggable/use-scroll-when-dragging.js +25 -25
  272. package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  273. package/build-module/components/block-edit/multiple-usage-warning.js +2 -0
  274. package/build-module/components/block-edit/multiple-usage-warning.js.map +1 -1
  275. package/build-module/components/block-inspector/index.js +27 -11
  276. package/build-module/components/block-inspector/index.js.map +1 -1
  277. package/build-module/components/block-list/block-invalid-warning.js +3 -2
  278. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  279. package/build-module/components/block-list/block.js +5 -1
  280. package/build-module/components/block-list/block.js.map +1 -1
  281. package/build-module/components/block-list/index.js +14 -3
  282. package/build-module/components/block-list/index.js.map +1 -1
  283. package/build-module/components/block-list/use-block-props/index.js +5 -1
  284. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  285. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  286. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  287. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +47 -0
  288. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
  289. package/build-module/components/block-list/zoom-out-separator.js +90 -0
  290. package/build-module/components/block-list/zoom-out-separator.js.map +1 -0
  291. package/build-module/components/block-lock/toolbar.js +3 -3
  292. package/build-module/components/block-lock/toolbar.js.map +1 -1
  293. package/build-module/components/block-mover/button.js +1 -0
  294. package/build-module/components/block-mover/button.js.map +1 -1
  295. package/build-module/components/block-mover/index.js +1 -0
  296. package/build-module/components/block-mover/index.js.map +1 -1
  297. package/build-module/components/block-navigation/dropdown.js +4 -1
  298. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  299. package/build-module/components/block-pattern-setup/index.js +2 -10
  300. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  301. package/build-module/components/block-pattern-setup/setup-toolbar.js +23 -8
  302. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  303. package/build-module/components/block-patterns-list/index.js +12 -20
  304. package/build-module/components/block-patterns-list/index.js.map +1 -1
  305. package/build-module/components/block-patterns-paging/index.js +12 -3
  306. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  307. package/build-module/components/block-popover/index.js +2 -15
  308. package/build-module/components/block-popover/index.js.map +1 -1
  309. package/build-module/components/block-quick-navigation/index.js +4 -1
  310. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  311. package/build-module/components/block-settings-menu-controls/index.js +4 -0
  312. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  313. package/build-module/components/block-switcher/index.js +30 -19
  314. package/build-module/components/block-switcher/index.js.map +1 -1
  315. package/build-module/components/block-switcher/pattern-transformations-menu.js +2 -10
  316. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  317. package/build-module/components/block-toolbar/index.js +19 -12
  318. package/build-module/components/block-toolbar/index.js.map +1 -1
  319. package/build-module/components/block-toolbar/shuffle.js +6 -2
  320. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  321. package/build-module/components/block-tools/block-selection-button.js +8 -2
  322. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  323. package/build-module/components/block-tools/block-toolbar-popover.js +10 -6
  324. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
  325. package/build-module/components/block-tools/index.js +1 -1
  326. package/build-module/components/block-tools/index.js.map +1 -1
  327. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  328. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  329. package/build-module/components/block-tools/zoom-out-mode-inserters.js +7 -22
  330. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  331. package/build-module/components/block-tools/zoom-out-popover.js +3 -4
  332. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -1
  333. package/build-module/components/block-tools/zoom-out-toolbar.js +27 -8
  334. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  335. package/build-module/components/block-variation-picker/index.js +4 -1
  336. package/build-module/components/block-variation-picker/index.js.map +1 -1
  337. package/build-module/components/block-variation-transforms/index.js +4 -1
  338. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  339. package/build-module/components/button-block-appender/index.js +22 -26
  340. package/build-module/components/button-block-appender/index.js.map +1 -1
  341. package/build-module/components/colors-gradients/dropdown.js +4 -1
  342. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  343. package/build-module/components/content-lock/index.js +2 -0
  344. package/build-module/components/content-lock/index.js.map +1 -0
  345. package/build-module/components/content-lock/modify-content-lock-menu-item.js +57 -0
  346. package/build-module/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
  347. package/build-module/components/editor-styles/index.js +4 -3
  348. package/build-module/components/editor-styles/index.js.map +1 -1
  349. package/build-module/components/global-styles/background-panel.js +8 -12
  350. package/build-module/components/global-styles/background-panel.js.map +1 -1
  351. package/build-module/components/global-styles/color-panel.js +7 -4
  352. package/build-module/components/global-styles/color-panel.js.map +1 -1
  353. package/build-module/components/global-styles/color-panel.native.js +2 -2
  354. package/build-module/components/global-styles/color-panel.native.js.map +1 -1
  355. package/build-module/components/global-styles/dimensions-panel.js +36 -39
  356. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  357. package/build-module/components/global-styles/filters-panel.js +4 -1
  358. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  359. package/build-module/components/global-styles/shadow-panel-components.js +14 -17
  360. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  361. package/build-module/components/global-styles/typography-utils.js +17 -6
  362. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  363. package/build-module/components/global-styles/utils.js +4 -6
  364. package/build-module/components/global-styles/utils.js.map +1 -1
  365. package/build-module/components/grid/grid-item-movers.js +3 -3
  366. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  367. package/build-module/components/grid/grid-item-resizer.js +2 -2
  368. package/build-module/components/grid/grid-item-resizer.js.map +1 -1
  369. package/build-module/components/iframe/get-compatibility-styles.js +1 -1
  370. package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
  371. package/build-module/components/iframe/index.js +5 -5
  372. package/build-module/components/iframe/index.js.map +1 -1
  373. package/build-module/components/inner-blocks/index.js +2 -4
  374. package/build-module/components/inner-blocks/index.js.map +1 -1
  375. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  376. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  377. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
  378. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  379. package/build-module/components/inserter/block-patterns-tab/index.js +4 -1
  380. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  381. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +23 -13
  382. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  383. package/build-module/components/inserter/index.js +4 -11
  384. package/build-module/components/inserter/index.js.map +1 -1
  385. package/build-module/components/inserter/library.js +2 -4
  386. package/build-module/components/inserter/library.js.map +1 -1
  387. package/build-module/components/inserter/media-tab/hooks.js +3 -3
  388. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  389. package/build-module/components/inserter/media-tab/media-list.js +1 -8
  390. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  391. package/build-module/components/inserter/media-tab/media-preview.js +10 -8
  392. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  393. package/build-module/components/inserter/media-tab/media-tab.js +4 -1
  394. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  395. package/build-module/components/inserter/menu.js +7 -24
  396. package/build-module/components/inserter/menu.js.map +1 -1
  397. package/build-module/components/inserter/quick-inserter.js +5 -6
  398. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  399. package/build-module/components/inserter-list-item/index.js +4 -4
  400. package/build-module/components/inserter-list-item/index.js.map +1 -1
  401. package/build-module/components/inserter-listbox/index.js +3 -11
  402. package/build-module/components/inserter-listbox/index.js.map +1 -1
  403. package/build-module/components/inserter-listbox/item.js +7 -12
  404. package/build-module/components/inserter-listbox/item.js.map +1 -1
  405. package/build-module/components/inserter-listbox/row.js +2 -10
  406. package/build-module/components/inserter-listbox/row.js.map +1 -1
  407. package/build-module/components/inspector-controls/groups.js +2 -0
  408. package/build-module/components/inspector-controls/groups.js.map +1 -1
  409. package/build-module/components/inspector-controls-tabs/index.js +4 -1
  410. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  411. package/build-module/components/inspector-controls-tabs/settings-tab.js +3 -1
  412. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  413. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
  414. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  415. package/build-module/components/inspector-popover-header/index.js +8 -2
  416. package/build-module/components/inspector-popover-header/index.js.map +1 -1
  417. package/build-module/components/letter-spacing-control/index.js +7 -4
  418. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  419. package/build-module/components/link-control/index.js +19 -10
  420. package/build-module/components/link-control/index.js.map +1 -1
  421. package/build-module/components/link-control/settings-drawer.js +4 -1
  422. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  423. package/build-module/components/list-view/block-select-button.js +4 -1
  424. package/build-module/components/list-view/block-select-button.js.map +1 -1
  425. package/build-module/components/list-view/index.js +3 -7
  426. package/build-module/components/list-view/index.js.map +1 -1
  427. package/build-module/components/media-placeholder/index.js +32 -11
  428. package/build-module/components/media-placeholder/index.js.map +1 -1
  429. package/build-module/components/media-replace-flow/index.js +8 -1
  430. package/build-module/components/media-replace-flow/index.js.map +1 -1
  431. package/build-module/components/provider/use-block-sync.js +19 -19
  432. package/build-module/components/provider/use-block-sync.js.map +1 -1
  433. package/build-module/components/rich-text/event-listeners/paste-handler.js +12 -1
  434. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  435. package/build-module/components/rich-text/index.js +39 -31
  436. package/build-module/components/rich-text/index.js.map +1 -1
  437. package/build-module/components/rich-text/use-mark-persistent.js +5 -5
  438. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  439. package/build-module/components/skip-to-selected-block/index.js +4 -1
  440. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  441. package/build-module/components/spacing-sizes-control/index.js +9 -10
  442. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  443. package/build-module/components/spacing-sizes-control/linked-button.js +28 -0
  444. package/build-module/components/spacing-sizes-control/linked-button.js.map +1 -0
  445. package/build-module/components/spacing-sizes-control/utils.js +4 -15
  446. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  447. package/build-module/components/tool-selector/index.js +4 -1
  448. package/build-module/components/tool-selector/index.js.map +1 -1
  449. package/build-module/components/url-input/button.js +12 -3
  450. package/build-module/components/url-input/button.js.map +1 -1
  451. package/build-module/components/url-input/index.js +4 -1
  452. package/build-module/components/url-input/index.js.map +1 -1
  453. package/build-module/components/use-block-drop-zone/index.js +31 -7
  454. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  455. package/build-module/components/writing-flow/index.js +2 -1
  456. package/build-module/components/writing-flow/index.js.map +1 -1
  457. package/build-module/components/writing-flow/use-arrow-nav.js +4 -1
  458. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  459. package/build-module/components/writing-flow/use-event-redirect.js +60 -0
  460. package/build-module/components/writing-flow/use-event-redirect.js.map +1 -0
  461. package/build-module/components/writing-flow/use-input.js +31 -1
  462. package/build-module/components/writing-flow/use-input.js.map +1 -1
  463. package/build-module/components/writing-flow/use-select-all.js +14 -1
  464. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  465. package/build-module/components/writing-flow/use-selection-observer.js +16 -2
  466. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  467. package/build-module/components/writing-flow/use-tab-nav.js +4 -4
  468. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  469. package/build-module/components/writing-flow/utils.js +26 -0
  470. package/build-module/components/writing-flow/utils.js.map +1 -1
  471. package/build-module/hooks/block-bindings.js +35 -31
  472. package/build-module/hooks/block-bindings.js.map +1 -1
  473. package/build-module/hooks/content-lock-ui.js +10 -30
  474. package/build-module/hooks/content-lock-ui.js.map +1 -1
  475. package/build-module/hooks/duotone.js +0 -4
  476. package/build-module/hooks/duotone.js.map +1 -1
  477. package/build-module/hooks/layout.js +4 -2
  478. package/build-module/hooks/layout.js.map +1 -1
  479. package/build-module/hooks/spacing-visualizer.js +3 -3
  480. package/build-module/hooks/spacing-visualizer.js.map +1 -1
  481. package/build-module/hooks/style.js +1 -5
  482. package/build-module/hooks/style.js.map +1 -1
  483. package/build-module/hooks/use-bindings-attributes.js +19 -20
  484. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  485. package/build-module/hooks/use-zoom-out.js +7 -7
  486. package/build-module/hooks/use-zoom-out.js.map +1 -1
  487. package/build-module/layouts/constrained.js +44 -45
  488. package/build-module/layouts/constrained.js.map +1 -1
  489. package/build-module/layouts/flex.js +4 -1
  490. package/build-module/layouts/flex.js.map +1 -1
  491. package/build-module/layouts/grid.js +21 -18
  492. package/build-module/layouts/grid.js.map +1 -1
  493. package/build-module/layouts/utils.js +1 -7
  494. package/build-module/layouts/utils.js.map +1 -1
  495. package/build-module/private-apis.js +3 -4
  496. package/build-module/private-apis.js.map +1 -1
  497. package/build-module/store/actions.js +2 -7
  498. package/build-module/store/actions.js.map +1 -1
  499. package/build-module/store/private-actions.js +1 -0
  500. package/build-module/store/private-actions.js.map +1 -1
  501. package/build-module/store/private-keys.js +1 -0
  502. package/build-module/store/private-keys.js.map +1 -1
  503. package/build-module/store/private-selectors.js +15 -18
  504. package/build-module/store/private-selectors.js.map +1 -1
  505. package/build-module/store/reducer.js +1 -9
  506. package/build-module/store/reducer.js.map +1 -1
  507. package/build-module/store/selectors.js +22 -46
  508. package/build-module/store/selectors.js.map +1 -1
  509. package/build-module/store/utils.js +46 -0
  510. package/build-module/store/utils.js.map +1 -1
  511. package/build-module/utils/block-bindings.js +17 -12
  512. package/build-module/utils/block-bindings.js.map +1 -1
  513. package/build-module/utils/dom.js +99 -0
  514. package/build-module/utils/dom.js.map +1 -1
  515. package/build-module/utils/get-font-styles-and-weights.js +4 -4
  516. package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
  517. package/build-module/utils/transform-styles/index.js +120 -16
  518. package/build-module/utils/transform-styles/index.js.map +1 -1
  519. package/build-style/content-rtl.css +19 -11
  520. package/build-style/content.css +19 -11
  521. package/build-style/style-rtl.css +27 -117
  522. package/build-style/style.css +27 -117
  523. package/build-types/utils/dom.d.ts +25 -0
  524. package/build-types/utils/dom.d.ts.map +1 -1
  525. package/package.json +34 -32
  526. package/src/components/block-alignment-matrix-control/index.js +1 -1
  527. package/src/components/block-breadcrumb/index.js +2 -2
  528. package/src/components/block-breadcrumb/style.scss +1 -30
  529. package/src/components/block-canvas/index.js +9 -1
  530. package/src/components/block-compare/block-view.js +6 -1
  531. package/src/components/block-compare/test/__snapshots__/block-view.js.snap +1 -1
  532. package/src/components/block-draggable/content.scss +1 -1
  533. package/src/components/block-draggable/index.js +4 -4
  534. package/src/components/block-draggable/style.scss +1 -1
  535. package/src/components/block-draggable/use-scroll-when-dragging.js +25 -25
  536. package/src/components/block-edit/multiple-usage-warning.js +2 -0
  537. package/src/components/block-inspector/index.js +22 -7
  538. package/src/components/block-inspector/style.scss +2 -4
  539. package/src/components/block-list/block-invalid-warning.js +3 -2
  540. package/src/components/block-list/block.js +6 -2
  541. package/src/components/block-list/content.scss +23 -3
  542. package/src/components/block-list/index.js +59 -38
  543. package/src/components/block-list/use-block-props/index.js +3 -0
  544. package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  545. package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +56 -0
  546. package/src/components/block-list/zoom-out-separator.js +110 -0
  547. package/src/components/block-lock/style.scss +1 -1
  548. package/src/components/block-lock/toolbar.js +3 -3
  549. package/src/components/block-mover/button.js +1 -0
  550. package/src/components/block-mover/index.js +1 -0
  551. package/src/components/block-mover/style.scss +1 -1
  552. package/src/components/block-navigation/dropdown.js +2 -0
  553. package/src/components/block-pattern-setup/index.js +3 -15
  554. package/src/components/block-pattern-setup/setup-toolbar.js +17 -4
  555. package/src/components/block-pattern-setup/style.scss +2 -2
  556. package/src/components/block-patterns-list/index.js +15 -18
  557. package/src/components/block-patterns-list/style.scss +2 -2
  558. package/src/components/block-patterns-paging/index.js +6 -0
  559. package/src/components/block-popover/index.js +7 -28
  560. package/src/components/block-popover/style.scss +1 -1
  561. package/src/components/block-quick-navigation/index.js +2 -0
  562. package/src/components/block-settings-menu-controls/index.js +7 -1
  563. package/src/components/block-switcher/index.js +45 -23
  564. package/src/components/block-switcher/pattern-transformations-menu.js +3 -12
  565. package/src/components/block-switcher/style.scss +5 -30
  566. package/src/components/block-toolbar/index.js +27 -11
  567. package/src/components/block-toolbar/shuffle.js +9 -7
  568. package/src/components/block-toolbar/style.scss +4 -1
  569. package/src/components/block-tools/block-selection-button.js +4 -0
  570. package/src/components/block-tools/block-toolbar-popover.js +10 -6
  571. package/src/components/block-tools/index.js +1 -1
  572. package/src/components/block-tools/style.scss +3 -4
  573. package/src/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  574. package/src/components/block-tools/zoom-out-mode-inserters.js +2 -17
  575. package/src/components/block-tools/zoom-out-popover.js +3 -7
  576. package/src/components/block-tools/zoom-out-toolbar.js +31 -6
  577. package/src/components/block-variation-picker/README.md +2 -2
  578. package/src/components/block-variation-picker/index.js +6 -1
  579. package/src/components/block-variation-transforms/index.js +2 -0
  580. package/src/components/block-variation-transforms/style.scss +1 -1
  581. package/src/components/button-block-appender/content.scss +0 -1
  582. package/src/components/button-block-appender/index.js +30 -28
  583. package/src/components/color-palette/test/control.js +15 -2
  584. package/src/components/colors-gradients/dropdown.js +5 -1
  585. package/src/components/colors-gradients/style.scss +4 -4
  586. package/src/components/content-lock/index.js +1 -0
  587. package/src/components/content-lock/modify-content-lock-menu-item.js +58 -0
  588. package/src/components/default-block-appender/content.scss +0 -1
  589. package/src/components/editor-styles/index.js +4 -3
  590. package/src/components/global-styles/background-panel.js +6 -14
  591. package/src/components/global-styles/color-panel.js +8 -4
  592. package/src/components/global-styles/color-panel.native.js +2 -2
  593. package/src/components/global-styles/dimensions-panel.js +40 -40
  594. package/src/components/global-styles/filters-panel.js +5 -1
  595. package/src/components/global-styles/shadow-panel-components.js +11 -15
  596. package/src/components/global-styles/style.scss +3 -4
  597. package/src/components/global-styles/test/typography-utils.js +96 -5
  598. package/src/components/global-styles/test/utils.js +10 -0
  599. package/src/components/global-styles/typography-utils.js +22 -6
  600. package/src/components/global-styles/utils.js +4 -6
  601. package/src/components/grid/grid-item-movers.js +3 -3
  602. package/src/components/grid/grid-item-resizer.js +2 -2
  603. package/src/components/grid/style.scss +1 -1
  604. package/src/components/iframe/get-compatibility-styles.js +6 -1
  605. package/src/components/iframe/index.js +5 -5
  606. package/src/components/inner-blocks/index.js +2 -2
  607. package/src/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  608. package/src/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +2 -0
  609. package/src/components/inserter/block-patterns-tab/index.js +2 -0
  610. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +32 -15
  611. package/src/components/inserter/index.js +4 -10
  612. package/src/components/inserter/library.js +0 -2
  613. package/src/components/inserter/media-tab/hooks.js +3 -3
  614. package/src/components/inserter/media-tab/media-list.js +1 -7
  615. package/src/components/inserter/media-tab/media-preview.js +15 -8
  616. package/src/components/inserter/media-tab/media-tab.js +2 -0
  617. package/src/components/inserter/menu.js +15 -29
  618. package/src/components/inserter/quick-inserter.js +3 -4
  619. package/src/components/inserter/style.scss +10 -17
  620. package/src/components/inserter-list-item/index.js +4 -4
  621. package/src/components/inserter-list-item/style.scss +1 -3
  622. package/src/components/inserter-listbox/index.js +2 -11
  623. package/src/components/inserter-listbox/item.js +12 -14
  624. package/src/components/inserter-listbox/row.js +2 -9
  625. package/src/components/inspector-controls/groups.js +2 -0
  626. package/src/components/inspector-controls-tabs/index.js +2 -0
  627. package/src/components/inspector-controls-tabs/settings-tab.js +1 -0
  628. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +5 -2
  629. package/src/components/inspector-popover-header/index.js +4 -0
  630. package/src/components/letter-spacing-control/README.md +8 -1
  631. package/src/components/letter-spacing-control/index.js +7 -4
  632. package/src/components/link-control/index.js +17 -8
  633. package/src/components/link-control/settings-drawer.js +2 -0
  634. package/src/components/link-control/style.scss +1 -3
  635. package/src/components/list-view/block-select-button.js +2 -0
  636. package/src/components/list-view/index.js +3 -8
  637. package/src/components/list-view/style.scss +14 -16
  638. package/src/components/media-placeholder/README.md +2 -2
  639. package/src/components/media-placeholder/index.js +21 -4
  640. package/src/components/media-replace-flow/index.js +12 -1
  641. package/src/components/provider/use-block-sync.js +20 -20
  642. package/src/components/responsive-block-control/README.md +3 -27
  643. package/src/components/rich-text/content.scss +1 -1
  644. package/src/components/rich-text/event-listeners/paste-handler.js +6 -1
  645. package/src/components/rich-text/index.js +54 -41
  646. package/src/components/rich-text/style.scss +1 -1
  647. package/src/components/rich-text/use-mark-persistent.js +5 -5
  648. package/src/components/skip-to-selected-block/index.js +2 -0
  649. package/src/components/spacing-sizes-control/index.js +10 -13
  650. package/src/components/spacing-sizes-control/linked-button.js +32 -0
  651. package/src/components/spacing-sizes-control/style.scss +1 -0
  652. package/src/components/spacing-sizes-control/test/utils.js +14 -15
  653. package/src/components/spacing-sizes-control/utils.js +5 -18
  654. package/src/components/tool-selector/index.js +2 -0
  655. package/src/components/url-input/button.js +6 -0
  656. package/src/components/url-input/index.js +2 -0
  657. package/src/components/url-popover/stories/index.story.js +7 -1
  658. package/src/components/use-block-drop-zone/index.js +37 -5
  659. package/src/components/warning/content.scss +3 -10
  660. package/src/components/writing-flow/index.js +2 -0
  661. package/src/components/writing-flow/use-arrow-nav.js +9 -2
  662. package/src/components/writing-flow/use-event-redirect.js +72 -0
  663. package/src/components/writing-flow/use-input.js +36 -1
  664. package/src/components/writing-flow/use-select-all.js +18 -1
  665. package/src/components/writing-flow/use-selection-observer.js +23 -3
  666. package/src/components/writing-flow/use-tab-nav.js +4 -4
  667. package/src/components/writing-flow/utils.js +30 -0
  668. package/src/hooks/block-bindings.js +42 -43
  669. package/src/hooks/block-bindings.scss +1 -9
  670. package/src/hooks/content-lock-ui.js +11 -36
  671. package/src/hooks/duotone.js +0 -4
  672. package/src/hooks/layout.js +2 -1
  673. package/src/hooks/layout.scss +5 -27
  674. package/src/hooks/spacing-visualizer.js +3 -3
  675. package/src/hooks/style.js +1 -4
  676. package/src/hooks/use-bindings-attributes.js +23 -24
  677. package/src/hooks/use-zoom-out.js +7 -7
  678. package/src/layouts/constrained.js +53 -48
  679. package/src/layouts/flex.js +2 -0
  680. package/src/layouts/grid.js +29 -22
  681. package/src/layouts/test/grid.js +2 -2
  682. package/src/layouts/test/utils.js +6 -8
  683. package/src/layouts/utils.js +1 -9
  684. package/src/private-apis.js +2 -2
  685. package/src/store/actions.js +4 -6
  686. package/src/store/private-actions.js +1 -0
  687. package/src/store/private-keys.js +1 -0
  688. package/src/store/private-selectors.js +18 -14
  689. package/src/store/reducer.js +0 -7
  690. package/src/store/selectors.js +32 -51
  691. package/src/store/utils.js +50 -0
  692. package/src/utils/block-bindings.js +15 -16
  693. package/src/utils/dom.js +117 -0
  694. package/src/utils/get-font-styles-and-weights.js +12 -4
  695. package/src/utils/test/get-font-styles-and-weights.js +148 -0
  696. package/src/utils/test/transform-styles.js +259 -50
  697. package/src/utils/transform-styles/index.js +132 -21
  698. package/tsconfig.json +1 -0
  699. package/tsconfig.tsbuildinfo +1 -1
  700. package/build/components/spacing-sizes-control/sides-dropdown/index.js +0 -86
  701. package/build/components/spacing-sizes-control/sides-dropdown/index.js.map +0 -1
  702. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js +0 -81
  703. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js.map +0 -1
  704. package/src/components/spacing-sizes-control/sides-dropdown/index.js +0 -91
  705. package/src/utils/test/__snapshots__/transform-styles.js.snap +0 -109
@@ -1 +1 @@
1
- {"version":3,"names":["__","sidesAll","sidesBottom","sidesHorizontal","sidesLeft","sidesRight","sidesTop","sidesVertical","RANGE_CONTROL_MAX_SIZE","ALL_SIDES","DEFAULT_VALUES","top","undefined","right","bottom","left","ICONS","custom","axial","horizontal","vertical","LABELS","default","mixed","VIEWS","isValueSpacingPreset","value","includes","getCustomValueFromPreset","spacingSizes","slug","getSpacingPresetSlug","spacingSize","find","size","String","getPresetValueFromCustomValue","spacingMatch","getSpacingPresetCssVar","match","getSliderValueFromPreset","presetValue","parseFloat","sliderValue","findIndex","NaN","mode","arr","sort","a","b","filter","v","length","pop","getAllRawValue","values","Object","isValuesMixed","sides","Set","isValuesDefined","hasAxisSupport","axis","hasHorizontalSupport","hasVerticalSupport","getSupportedMenuItems","menuItems","label","icon","numberOfIndividualSides","forEach","side","hasBalancedSidesSupport","counts","getInitialView","sideValues","Boolean","hasMatchingAxialValues","hasNoValuesAndBalancedSides","entries","some","key"],"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tsidesAll,\n\tsidesBottom,\n\tsidesHorizontal,\n\tsidesLeft,\n\tsidesRight,\n\tsidesTop,\n\tsidesVertical,\n} from '@wordpress/icons';\n\nexport const RANGE_CONTROL_MAX_SIZE = 8;\n\nexport const ALL_SIDES = [ 'top', 'right', 'bottom', 'left' ];\n\nexport const DEFAULT_VALUES = {\n\ttop: undefined,\n\tright: undefined,\n\tbottom: undefined,\n\tleft: undefined,\n};\n\nexport const ICONS = {\n\tcustom: sidesAll,\n\taxial: sidesAll,\n\thorizontal: sidesHorizontal,\n\tvertical: sidesVertical,\n\ttop: sidesTop,\n\tright: sidesRight,\n\tbottom: sidesBottom,\n\tleft: sidesLeft,\n};\n\nexport const LABELS = {\n\tdefault: __( 'Spacing control' ),\n\ttop: __( 'Top' ),\n\tbottom: __( 'Bottom' ),\n\tleft: __( 'Left' ),\n\tright: __( 'Right' ),\n\tmixed: __( 'Mixed' ),\n\tvertical: __( 'Vertical' ),\n\thorizontal: __( 'Horizontal' ),\n\taxial: __( 'Horizontal & vertical' ),\n\tcustom: __( 'Custom' ),\n};\n\nexport const VIEWS = {\n\taxial: 'axial',\n\ttop: 'top',\n\tright: 'right',\n\tbottom: 'bottom',\n\tleft: 'left',\n\tcustom: 'custom',\n};\n\n/**\n * Checks is given value is a spacing preset.\n *\n * @param {string} value Value to check\n *\n * @return {boolean} Return true if value is string in format var:preset|spacing|.\n */\nexport function isValueSpacingPreset( value ) {\n\tif ( ! value?.includes ) {\n\t\treturn false;\n\t}\n\treturn value === '0' || value.includes( 'var:preset|spacing|' );\n}\n\n/**\n * Converts a spacing preset into a custom value.\n *\n * @param {string} value Value to convert\n * @param {Array} spacingSizes Array of the current spacing preset objects\n *\n * @return {string} Mapping of the spacing preset to its equivalent custom value.\n */\nexport function getCustomValueFromPreset( value, spacingSizes ) {\n\tif ( ! isValueSpacingPreset( value ) ) {\n\t\treturn value;\n\t}\n\n\tconst slug = getSpacingPresetSlug( value );\n\tconst spacingSize = spacingSizes.find(\n\t\t( size ) => String( size.slug ) === slug\n\t);\n\n\treturn spacingSize?.size;\n}\n\n/**\n * Converts a custom value to preset value if one can be found.\n *\n * Returns value as-is if no match is found.\n *\n * @param {string} value Value to convert\n * @param {Array} spacingSizes Array of the current spacing preset objects\n *\n * @return {string} The preset value if it can be found.\n */\nexport function getPresetValueFromCustomValue( value, spacingSizes ) {\n\t// Return value as-is if it is undefined or is already a preset, or '0';\n\tif ( ! value || isValueSpacingPreset( value ) || value === '0' ) {\n\t\treturn value;\n\t}\n\n\tconst spacingMatch = spacingSizes.find(\n\t\t( size ) => String( size.size ) === String( value )\n\t);\n\n\tif ( spacingMatch?.slug ) {\n\t\treturn `var:preset|spacing|${ spacingMatch.slug }`;\n\t}\n\n\treturn value;\n}\n\n/**\n * Converts a spacing preset into a custom value.\n *\n * @param {string} value Value to convert.\n *\n * @return {string | undefined} CSS var string for given spacing preset value.\n */\nexport function getSpacingPresetCssVar( value ) {\n\tif ( ! value ) {\n\t\treturn;\n\t}\n\n\tconst slug = value.match( /var:preset\\|spacing\\|(.+)/ );\n\n\tif ( ! slug ) {\n\t\treturn value;\n\t}\n\n\treturn `var(--wp--preset--spacing--${ slug[ 1 ] })`;\n}\n\n/**\n * Returns the slug section of the given spacing preset string.\n *\n * @param {string} value Value to extract slug from.\n *\n * @return {string|undefined} The int value of the slug from given spacing preset.\n */\nexport function getSpacingPresetSlug( value ) {\n\tif ( ! value ) {\n\t\treturn;\n\t}\n\n\tif ( value === '0' || value === 'default' ) {\n\t\treturn value;\n\t}\n\n\tconst slug = value.match( /var:preset\\|spacing\\|(.+)/ );\n\n\treturn slug ? slug[ 1 ] : undefined;\n}\n\n/**\n * Converts spacing preset value into a Range component value .\n *\n * @param {string} presetValue Value to convert to Range value.\n * @param {Array} spacingSizes Array of current spacing preset value objects.\n *\n * @return {number} The int value for use in Range control.\n */\nexport function getSliderValueFromPreset( presetValue, spacingSizes ) {\n\tif ( presetValue === undefined ) {\n\t\treturn 0;\n\t}\n\tconst slug =\n\t\tparseFloat( presetValue, 10 ) === 0\n\t\t\t? '0'\n\t\t\t: getSpacingPresetSlug( presetValue );\n\tconst sliderValue = spacingSizes.findIndex( ( spacingSize ) => {\n\t\treturn String( spacingSize.slug ) === slug;\n\t} );\n\n\t// Returning NaN rather than undefined as undefined makes range control thumb sit in center\n\treturn sliderValue !== -1 ? sliderValue : NaN;\n}\n\n/**\n * Gets an items with the most occurrence within an array\n * https://stackoverflow.com/a/20762713\n *\n * @param {Array<any>} arr Array of items to check.\n * @return {any} The item with the most occurrences.\n */\nfunction mode( arr ) {\n\treturn arr\n\t\t.sort(\n\t\t\t( a, b ) =>\n\t\t\t\tarr.filter( ( v ) => v === a ).length -\n\t\t\t\tarr.filter( ( v ) => v === b ).length\n\t\t)\n\t\t.pop();\n}\n\n/**\n * Gets the 'all' input value from values data.\n *\n * @param {Object} values Box spacing values\n *\n * @return {string} The most common value from all sides of box.\n */\nexport function getAllRawValue( values = {} ) {\n\treturn mode( Object.values( values ) );\n}\n\n/**\n * Checks to determine if values are mixed.\n *\n * @param {Object} values Box values.\n * @param {Array} sides Sides that values relate to.\n *\n * @return {boolean} Whether values are mixed.\n */\nexport function isValuesMixed( values = {}, sides = ALL_SIDES ) {\n\treturn (\n\t\t( Object.values( values ).length >= 1 &&\n\t\t\tObject.values( values ).length < sides.length ) ||\n\t\tnew Set( Object.values( values ) ).size > 1\n\t);\n}\n\n/**\n * Checks to determine if values are defined.\n *\n * @param {Object} values Box values.\n *\n * @return {boolean} Whether values are defined.\n */\nexport function isValuesDefined( values ) {\n\tif ( values === undefined || values === null ) {\n\t\treturn false;\n\t}\n\treturn Object.values( values ).filter( ( value ) => !! value ).length > 0;\n}\n\n/**\n * Determines whether a particular axis has support. If no axis is\n * specified, this function checks if either axis is supported.\n *\n * @param {Array} sides Supported sides.\n * @param {string} axis Which axis to check.\n *\n * @return {boolean} Whether there is support for the specified axis or both axes.\n */\nexport function hasAxisSupport( sides, axis ) {\n\tif ( ! sides || ! sides.length ) {\n\t\treturn false;\n\t}\n\n\tconst hasHorizontalSupport =\n\t\tsides.includes( 'horizontal' ) ||\n\t\t( sides.includes( 'left' ) && sides.includes( 'right' ) );\n\n\tconst hasVerticalSupport =\n\t\tsides.includes( 'vertical' ) ||\n\t\t( sides.includes( 'top' ) && sides.includes( 'bottom' ) );\n\n\tif ( axis === 'horizontal' ) {\n\t\treturn hasHorizontalSupport;\n\t}\n\n\tif ( axis === 'vertical' ) {\n\t\treturn hasVerticalSupport;\n\t}\n\n\treturn hasHorizontalSupport || hasVerticalSupport;\n}\n\n/**\n * Determines which menu options should be included in the SidePicker.\n *\n * @param {Array} sides Supported sides.\n *\n * @return {Object} Menu options with each option containing label & icon.\n */\nexport function getSupportedMenuItems( sides ) {\n\tif ( ! sides || ! sides.length ) {\n\t\treturn {};\n\t}\n\n\tconst menuItems = {};\n\n\t// Determine the primary \"side\" menu options.\n\tconst hasHorizontalSupport = hasAxisSupport( sides, 'horizontal' );\n\tconst hasVerticalSupport = hasAxisSupport( sides, 'vertical' );\n\n\tif ( hasHorizontalSupport && hasVerticalSupport ) {\n\t\tmenuItems.axial = { label: LABELS.axial, icon: ICONS.axial };\n\t} else if ( hasHorizontalSupport ) {\n\t\tmenuItems.axial = { label: LABELS.horizontal, icon: ICONS.horizontal };\n\t} else if ( hasVerticalSupport ) {\n\t\tmenuItems.axial = { label: LABELS.vertical, icon: ICONS.vertical };\n\t}\n\n\t// Track whether we have any individual sides so we can omit the custom\n\t// option if required.\n\tlet numberOfIndividualSides = 0;\n\n\tALL_SIDES.forEach( ( side ) => {\n\t\tif ( sides.includes( side ) ) {\n\t\t\tnumberOfIndividualSides += 1;\n\t\t\tmenuItems[ side ] = {\n\t\t\t\tlabel: LABELS[ side ],\n\t\t\t\ticon: ICONS[ side ],\n\t\t\t};\n\t\t}\n\t} );\n\n\t// Add custom item if there are enough sides to warrant a separated view.\n\tif ( numberOfIndividualSides > 1 ) {\n\t\tmenuItems.custom = { label: LABELS.custom, icon: ICONS.custom };\n\t}\n\n\treturn menuItems;\n}\n\n/**\n * Checks if the supported sides are balanced for each axis.\n * - Horizontal - both left and right sides are supported.\n * - Vertical - both top and bottom are supported.\n *\n * @param {Array} sides The supported sides which may be axes as well.\n *\n * @return {boolean} Whether or not the supported sides are balanced.\n */\nexport function hasBalancedSidesSupport( sides = [] ) {\n\tconst counts = { top: 0, right: 0, bottom: 0, left: 0 };\n\tsides.forEach( ( side ) => ( counts[ side ] += 1 ) );\n\n\treturn (\n\t\t( counts.top + counts.bottom ) % 2 === 0 &&\n\t\t( counts.left + counts.right ) % 2 === 0\n\t);\n}\n\n/**\n * Determines which view the SpacingSizesControl should default to on its\n * first render; Axial, Custom, or Single side.\n *\n * @param {Object} values Current side values.\n * @param {Array} sides Supported sides.\n *\n * @return {string} View to display.\n */\nexport function getInitialView( values = {}, sides ) {\n\tconst { top, right, bottom, left } = values;\n\tconst sideValues = [ top, right, bottom, left ].filter( Boolean );\n\n\t// Axial ( Horizontal & vertical ).\n\t// - Has axial side support\n\t// - Has axial side values which match\n\t// - Has no values and the supported sides are balanced\n\tconst hasMatchingAxialValues =\n\t\ttop === bottom && left === right && ( !! top || !! left );\n\tconst hasNoValuesAndBalancedSides =\n\t\t! sideValues.length && hasBalancedSidesSupport( sides );\n\n\tif (\n\t\thasAxisSupport( sides ) &&\n\t\t( hasMatchingAxialValues || hasNoValuesAndBalancedSides )\n\t) {\n\t\treturn VIEWS.axial;\n\t}\n\n\t// Single side.\n\t// - Ensure the side returned is the first side that has a value.\n\tif ( sideValues.length === 1 ) {\n\t\tlet side;\n\n\t\tObject.entries( values ).some( ( [ key, value ] ) => {\n\t\t\tside = key;\n\t\t\treturn value !== undefined;\n\t\t} );\n\n\t\treturn side;\n\t}\n\n\t// Only single side supported and no value defined.\n\tif ( sides?.length === 1 && ! sideValues.length ) {\n\t\treturn sides[ 0 ];\n\t}\n\n\t// Default to the Custom (separated sides) view.\n\treturn VIEWS.custom;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__","sidesAll","sidesBottom","sidesHorizontal","sidesLeft","sidesRight","sidesTop","sidesVertical","RANGE_CONTROL_MAX_SIZE","ALL_SIDES","DEFAULT_VALUES","top","undefined","right","bottom","left","ICONS","custom","axial","horizontal","vertical","LABELS","default","mixed","VIEWS","isValueSpacingPreset","value","includes","getCustomValueFromPreset","spacingSizes","slug","getSpacingPresetSlug","spacingSize","find","size","String","getPresetValueFromCustomValue","spacingMatch","getSpacingPresetCssVar","match","getSliderValueFromPreset","presetValue","parseFloat","sliderValue","findIndex","NaN","mode","arr","sort","a","b","filter","v","length","pop","getAllRawValue","values","Object","isValuesMixed","sides","Set","isValuesDefined","hasAxisSupport","axis","hasHorizontalSupport","hasVerticalSupport","getSupportedMenuItems","menuItems","label","icon","numberOfIndividualSides","forEach","side","hasBalancedSidesSupport","counts","getInitialView","sideValues","Boolean","hasMatchingAxialValues","hasNoValuesAndBalancedSides"],"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tsidesAll,\n\tsidesBottom,\n\tsidesHorizontal,\n\tsidesLeft,\n\tsidesRight,\n\tsidesTop,\n\tsidesVertical,\n} from '@wordpress/icons';\n\nexport const RANGE_CONTROL_MAX_SIZE = 8;\n\nexport const ALL_SIDES = [ 'top', 'right', 'bottom', 'left' ];\n\nexport const DEFAULT_VALUES = {\n\ttop: undefined,\n\tright: undefined,\n\tbottom: undefined,\n\tleft: undefined,\n};\n\nexport const ICONS = {\n\tcustom: sidesAll,\n\taxial: sidesAll,\n\thorizontal: sidesHorizontal,\n\tvertical: sidesVertical,\n\ttop: sidesTop,\n\tright: sidesRight,\n\tbottom: sidesBottom,\n\tleft: sidesLeft,\n};\n\nexport const LABELS = {\n\tdefault: __( 'Spacing control' ),\n\ttop: __( 'Top' ),\n\tbottom: __( 'Bottom' ),\n\tleft: __( 'Left' ),\n\tright: __( 'Right' ),\n\tmixed: __( 'Mixed' ),\n\tvertical: __( 'Vertical' ),\n\thorizontal: __( 'Horizontal' ),\n\taxial: __( 'Horizontal & vertical' ),\n\tcustom: __( 'Custom' ),\n};\n\nexport const VIEWS = {\n\taxial: 'axial',\n\ttop: 'top',\n\tright: 'right',\n\tbottom: 'bottom',\n\tleft: 'left',\n\tcustom: 'custom',\n};\n\n/**\n * Checks is given value is a spacing preset.\n *\n * @param {string} value Value to check\n *\n * @return {boolean} Return true if value is string in format var:preset|spacing|.\n */\nexport function isValueSpacingPreset( value ) {\n\tif ( ! value?.includes ) {\n\t\treturn false;\n\t}\n\treturn value === '0' || value.includes( 'var:preset|spacing|' );\n}\n\n/**\n * Converts a spacing preset into a custom value.\n *\n * @param {string} value Value to convert\n * @param {Array} spacingSizes Array of the current spacing preset objects\n *\n * @return {string} Mapping of the spacing preset to its equivalent custom value.\n */\nexport function getCustomValueFromPreset( value, spacingSizes ) {\n\tif ( ! isValueSpacingPreset( value ) ) {\n\t\treturn value;\n\t}\n\n\tconst slug = getSpacingPresetSlug( value );\n\tconst spacingSize = spacingSizes.find(\n\t\t( size ) => String( size.slug ) === slug\n\t);\n\n\treturn spacingSize?.size;\n}\n\n/**\n * Converts a custom value to preset value if one can be found.\n *\n * Returns value as-is if no match is found.\n *\n * @param {string} value Value to convert\n * @param {Array} spacingSizes Array of the current spacing preset objects\n *\n * @return {string} The preset value if it can be found.\n */\nexport function getPresetValueFromCustomValue( value, spacingSizes ) {\n\t// Return value as-is if it is undefined or is already a preset, or '0';\n\tif ( ! value || isValueSpacingPreset( value ) || value === '0' ) {\n\t\treturn value;\n\t}\n\n\tconst spacingMatch = spacingSizes.find(\n\t\t( size ) => String( size.size ) === String( value )\n\t);\n\n\tif ( spacingMatch?.slug ) {\n\t\treturn `var:preset|spacing|${ spacingMatch.slug }`;\n\t}\n\n\treturn value;\n}\n\n/**\n * Converts a spacing preset into a custom value.\n *\n * @param {string} value Value to convert.\n *\n * @return {string | undefined} CSS var string for given spacing preset value.\n */\nexport function getSpacingPresetCssVar( value ) {\n\tif ( ! value ) {\n\t\treturn;\n\t}\n\n\tconst slug = value.match( /var:preset\\|spacing\\|(.+)/ );\n\n\tif ( ! slug ) {\n\t\treturn value;\n\t}\n\n\treturn `var(--wp--preset--spacing--${ slug[ 1 ] })`;\n}\n\n/**\n * Returns the slug section of the given spacing preset string.\n *\n * @param {string} value Value to extract slug from.\n *\n * @return {string|undefined} The int value of the slug from given spacing preset.\n */\nexport function getSpacingPresetSlug( value ) {\n\tif ( ! value ) {\n\t\treturn;\n\t}\n\n\tif ( value === '0' || value === 'default' ) {\n\t\treturn value;\n\t}\n\n\tconst slug = value.match( /var:preset\\|spacing\\|(.+)/ );\n\n\treturn slug ? slug[ 1 ] : undefined;\n}\n\n/**\n * Converts spacing preset value into a Range component value .\n *\n * @param {string} presetValue Value to convert to Range value.\n * @param {Array} spacingSizes Array of current spacing preset value objects.\n *\n * @return {number} The int value for use in Range control.\n */\nexport function getSliderValueFromPreset( presetValue, spacingSizes ) {\n\tif ( presetValue === undefined ) {\n\t\treturn 0;\n\t}\n\tconst slug =\n\t\tparseFloat( presetValue, 10 ) === 0\n\t\t\t? '0'\n\t\t\t: getSpacingPresetSlug( presetValue );\n\tconst sliderValue = spacingSizes.findIndex( ( spacingSize ) => {\n\t\treturn String( spacingSize.slug ) === slug;\n\t} );\n\n\t// Returning NaN rather than undefined as undefined makes range control thumb sit in center\n\treturn sliderValue !== -1 ? sliderValue : NaN;\n}\n\n/**\n * Gets an items with the most occurrence within an array\n * https://stackoverflow.com/a/20762713\n *\n * @param {Array<any>} arr Array of items to check.\n * @return {any} The item with the most occurrences.\n */\nfunction mode( arr ) {\n\treturn arr\n\t\t.sort(\n\t\t\t( a, b ) =>\n\t\t\t\tarr.filter( ( v ) => v === a ).length -\n\t\t\t\tarr.filter( ( v ) => v === b ).length\n\t\t)\n\t\t.pop();\n}\n\n/**\n * Gets the 'all' input value from values data.\n *\n * @param {Object} values Box spacing values\n *\n * @return {string} The most common value from all sides of box.\n */\nexport function getAllRawValue( values = {} ) {\n\treturn mode( Object.values( values ) );\n}\n\n/**\n * Checks to determine if values are mixed.\n *\n * @param {Object} values Box values.\n * @param {Array} sides Sides that values relate to.\n *\n * @return {boolean} Whether values are mixed.\n */\nexport function isValuesMixed( values = {}, sides = ALL_SIDES ) {\n\treturn (\n\t\t( Object.values( values ).length >= 1 &&\n\t\t\tObject.values( values ).length < sides.length ) ||\n\t\tnew Set( Object.values( values ) ).size > 1\n\t);\n}\n\n/**\n * Checks to determine if values are defined.\n *\n * @param {Object} values Box values.\n *\n * @return {boolean} Whether values are defined.\n */\nexport function isValuesDefined( values ) {\n\tif ( values === undefined || values === null ) {\n\t\treturn false;\n\t}\n\treturn Object.values( values ).filter( ( value ) => !! value ).length > 0;\n}\n\n/**\n * Determines whether a particular axis has support. If no axis is\n * specified, this function checks if either axis is supported.\n *\n * @param {Array} sides Supported sides.\n * @param {string} axis Which axis to check.\n *\n * @return {boolean} Whether there is support for the specified axis or both axes.\n */\nexport function hasAxisSupport( sides, axis ) {\n\tif ( ! sides || ! sides.length ) {\n\t\treturn false;\n\t}\n\n\tconst hasHorizontalSupport =\n\t\tsides.includes( 'horizontal' ) ||\n\t\t( sides.includes( 'left' ) && sides.includes( 'right' ) );\n\n\tconst hasVerticalSupport =\n\t\tsides.includes( 'vertical' ) ||\n\t\t( sides.includes( 'top' ) && sides.includes( 'bottom' ) );\n\n\tif ( axis === 'horizontal' ) {\n\t\treturn hasHorizontalSupport;\n\t}\n\n\tif ( axis === 'vertical' ) {\n\t\treturn hasVerticalSupport;\n\t}\n\n\treturn hasHorizontalSupport || hasVerticalSupport;\n}\n\n/**\n * Determines which menu options should be included in the SidePicker.\n *\n * @param {Array} sides Supported sides.\n *\n * @return {Object} Menu options with each option containing label & icon.\n */\nexport function getSupportedMenuItems( sides ) {\n\tif ( ! sides || ! sides.length ) {\n\t\treturn {};\n\t}\n\n\tconst menuItems = {};\n\n\t// Determine the primary \"side\" menu options.\n\tconst hasHorizontalSupport = hasAxisSupport( sides, 'horizontal' );\n\tconst hasVerticalSupport = hasAxisSupport( sides, 'vertical' );\n\n\tif ( hasHorizontalSupport && hasVerticalSupport ) {\n\t\tmenuItems.axial = { label: LABELS.axial, icon: ICONS.axial };\n\t} else if ( hasHorizontalSupport ) {\n\t\tmenuItems.axial = { label: LABELS.horizontal, icon: ICONS.horizontal };\n\t} else if ( hasVerticalSupport ) {\n\t\tmenuItems.axial = { label: LABELS.vertical, icon: ICONS.vertical };\n\t}\n\n\t// Track whether we have any individual sides so we can omit the custom\n\t// option if required.\n\tlet numberOfIndividualSides = 0;\n\n\tALL_SIDES.forEach( ( side ) => {\n\t\tif ( sides.includes( side ) ) {\n\t\t\tnumberOfIndividualSides += 1;\n\t\t\tmenuItems[ side ] = {\n\t\t\t\tlabel: LABELS[ side ],\n\t\t\t\ticon: ICONS[ side ],\n\t\t\t};\n\t\t}\n\t} );\n\n\t// Add custom item if there are enough sides to warrant a separated view.\n\tif ( numberOfIndividualSides > 1 ) {\n\t\tmenuItems.custom = { label: LABELS.custom, icon: ICONS.custom };\n\t}\n\n\treturn menuItems;\n}\n\n/**\n * Checks if the supported sides are balanced for each axis.\n * - Horizontal - both left and right sides are supported.\n * - Vertical - both top and bottom are supported.\n *\n * @param {Array} sides The supported sides which may be axes as well.\n *\n * @return {boolean} Whether or not the supported sides are balanced.\n */\nexport function hasBalancedSidesSupport( sides = [] ) {\n\tconst counts = { top: 0, right: 0, bottom: 0, left: 0 };\n\tsides.forEach( ( side ) => ( counts[ side ] += 1 ) );\n\n\treturn (\n\t\t( counts.top + counts.bottom ) % 2 === 0 &&\n\t\t( counts.left + counts.right ) % 2 === 0\n\t);\n}\n\n/**\n * Determines which view the SpacingSizesControl should default to on its\n * first render; Axial, Custom, or Single side.\n *\n * @param {Object} values Current side values.\n * @param {Array} sides Supported sides.\n *\n * @return {string} View to display.\n */\nexport function getInitialView( values = {}, sides ) {\n\tconst { top, right, bottom, left } = values;\n\tconst sideValues = [ top, right, bottom, left ].filter( Boolean );\n\n\t// Axial ( Horizontal & vertical ).\n\t// - Has axial side support\n\t// - Has axial side values which match\n\t// - Has no values and the supported sides are balanced\n\tconst hasMatchingAxialValues =\n\t\ttop === bottom && left === right && ( !! top || !! left );\n\tconst hasNoValuesAndBalancedSides =\n\t\t! sideValues.length && hasBalancedSidesSupport( sides );\n\n\t// Only single side supported and no value defined.\n\tif ( sides?.length === 1 ) {\n\t\treturn sides[ 0 ];\n\t}\n\n\tif (\n\t\thasAxisSupport( sides ) &&\n\t\t( hasMatchingAxialValues || hasNoValuesAndBalancedSides )\n\t) {\n\t\treturn VIEWS.axial;\n\t}\n\n\t// Default to the Custom (separated sides) view.\n\treturn VIEWS.custom;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -32,7 +32,10 @@ function ToolSelector(props, ref) {
32
32
  renderToggle: ({
33
33
  isOpen,
34
34
  onToggle
35
- }) => /*#__PURE__*/_jsx(Button, {
35
+ }) => /*#__PURE__*/_jsx(Button
36
+ // TODO: Switch to `true` (40px size) if possible
37
+ , {
38
+ __next40pxDefaultSize: false,
36
39
  ...props,
37
40
  ref: ref,
38
41
  icon: mode === 'navigation' ? selectIcon : editIcon,
@@ -1 +1 @@
1
- {"version":3,"names":["Dropdown","Button","MenuItemsChoice","SVG","Path","NavigableMenu","__","useSelect","useDispatch","forwardRef","Icon","edit","editIcon","store","blockEditorStore","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","selectIcon","xmlns","width","height","viewBox","children","d","ToolSelector","props","ref","mode","select","__unstableGetEditorMode","__unstableSetEditorMode","renderToggle","isOpen","onToggle","icon","onClick","label","popoverProps","placement","renderContent","role","value","onSelect","choices","className"],"sources":["@wordpress/block-editor/src/components/tool-selector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tDropdown,\n\tButton,\n\tMenuItemsChoice,\n\tSVG,\n\tPath,\n\tNavigableMenu,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { Icon, edit as editIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst selectIcon = (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\twidth=\"24\"\n\t\theight=\"24\"\n\t\tviewBox=\"0 0 24 24\"\n\t>\n\t\t<Path d=\"M9.4 20.5L5.2 3.8l14.6 9-2 .3c-.2 0-.4.1-.7.1-.9.2-1.6.3-2.2.5-.8.3-1.4.5-1.8.8-.4.3-.8.8-1.3 1.5-.4.5-.8 1.2-1.2 2l-.3.6-.9 1.9zM7.6 7.1l2.4 9.3c.2-.4.5-.8.7-1.1.6-.8 1.1-1.4 1.6-1.8.5-.4 1.3-.8 2.2-1.1l1.2-.3-8.1-5z\" />\n\t</SVG>\n);\n\nfunction ToolSelector( props, ref ) {\n\tconst mode = useSelect(\n\t\t( select ) => select( blockEditorStore ).__unstableGetEditorMode(),\n\t\t[]\n\t);\n\tconst { __unstableSetEditorMode } = useDispatch( blockEditorStore );\n\n\treturn (\n\t\t<Dropdown\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<Button\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tref={ ref }\n\t\t\t\t\ticon={ mode === 'navigation' ? selectIcon : editIcon }\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\tlabel={ __( 'Tools' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\tpopoverProps={ { placement: 'bottom-start' } }\n\t\t\trenderContent={ () => (\n\t\t\t\t<>\n\t\t\t\t\t<NavigableMenu role=\"menu\" aria-label={ __( 'Tools' ) }>\n\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tmode === 'navigation' ? 'navigation' : 'edit'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonSelect={ __unstableSetEditorMode }\n\t\t\t\t\t\t\tchoices={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: 'edit',\n\t\t\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ editIcon } />\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: 'navigation',\n\t\t\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{ selectIcon }\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Select' ) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t<div className=\"block-editor-tool-selector__help\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Tools provide different interactions for selecting, navigating, and editing blocks. Toggle between select and edit by pressing Escape and Enter.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( ToolSelector );\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,QAAQ,EACRC,MAAM,EACNC,eAAe,EACfC,GAAG,EACHC,IAAI,EACJC,aAAa,QACP,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,IAAI,EAAEC,IAAI,IAAIC,QAAQ,QAAQ,kBAAkB;;AAEzD;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAExD,MAAMC,UAAU,gBACfL,IAAA,CAACb,GAAG;EACHmB,KAAK,EAAC,4BAA4B;EAClCC,KAAK,EAAC,IAAI;EACVC,MAAM,EAAC,IAAI;EACXC,OAAO,EAAC,WAAW;EAAAC,QAAA,eAEnBV,IAAA,CAACZ,IAAI;IAACuB,CAAC,EAAC;EAA2N,CAAE;AAAC,CAClO,CACL;AAED,SAASC,YAAYA,CAAEC,KAAK,EAAEC,GAAG,EAAG;EACnC,MAAMC,IAAI,GAAGxB,SAAS,CACnByB,MAAM,IAAMA,MAAM,CAAElB,gBAAiB,CAAC,CAACmB,uBAAuB,CAAC,CAAC,EAClE,EACD,CAAC;EACD,MAAM;IAAEC;EAAwB,CAAC,GAAG1B,WAAW,CAAEM,gBAAiB,CAAC;EAEnE,oBACCE,IAAA,CAAChB,QAAQ;IACRmC,YAAY,EAAGA,CAAE;MAAEC,MAAM;MAAEC;IAAS,CAAC,kBACpCrB,IAAA,CAACf,MAAM;MAAA,GACD4B,KAAK;MACVC,GAAG,EAAGA,GAAK;MACXQ,IAAI,EAAGP,IAAI,KAAK,YAAY,GAAGV,UAAU,GAAGT,QAAU;MACtD,iBAAgBwB,MAAQ;MACxB,iBAAc,MAAM;MACpBG,OAAO,EAAGF;MACV;MACAG,KAAK,EAAGlC,EAAE,CAAE,OAAQ;IAAG,CACvB,CACC;IACHmC,YAAY,EAAG;MAAEC,SAAS,EAAE;IAAe,CAAG;IAC9CC,aAAa,EAAGA,CAAA,kBACfvB,KAAA,CAAAF,SAAA;MAAAQ,QAAA,gBACCV,IAAA,CAACX,aAAa;QAACuC,IAAI,EAAC,MAAM;QAAC,cAAatC,EAAE,CAAE,OAAQ,CAAG;QAAAoB,QAAA,eACtDV,IAAA,CAACd,eAAe;UACf2C,KAAK,EACJd,IAAI,KAAK,YAAY,GAAG,YAAY,GAAG,MACvC;UACDe,QAAQ,EAAGZ,uBAAyB;UACpCa,OAAO,EAAG,CACT;YACCF,KAAK,EAAE,MAAM;YACbL,KAAK,eACJpB,KAAA,CAAAF,SAAA;cAAAQ,QAAA,gBACCV,IAAA,CAACN,IAAI;gBAAC4B,IAAI,EAAG1B;cAAU,CAAE,CAAC,EACxBN,EAAE,CAAE,MAAO,CAAC;YAAA,CACb;UAEJ,CAAC,EACD;YACCuC,KAAK,EAAE,YAAY;YACnBL,KAAK,eACJpB,KAAA,CAAAF,SAAA;cAAAQ,QAAA,GACGL,UAAU,EACVf,EAAE,CAAE,QAAS,CAAC;YAAA,CACf;UAEJ,CAAC;QACC,CACH;MAAC,CACY,CAAC,eAChBU,IAAA;QAAKgC,SAAS,EAAC,kCAAkC;QAAAtB,QAAA,EAC9CpB,EAAE,CACH,kJACD;MAAC,CACG,CAAC;IAAA,CACL;EACA,CACH,CAAC;AAEJ;AAEA,eAAeG,UAAU,CAAEmB,YAAa,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Dropdown","Button","MenuItemsChoice","SVG","Path","NavigableMenu","__","useSelect","useDispatch","forwardRef","Icon","edit","editIcon","store","blockEditorStore","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","selectIcon","xmlns","width","height","viewBox","children","d","ToolSelector","props","ref","mode","select","__unstableGetEditorMode","__unstableSetEditorMode","renderToggle","isOpen","onToggle","__next40pxDefaultSize","icon","onClick","label","popoverProps","placement","renderContent","role","value","onSelect","choices","className"],"sources":["@wordpress/block-editor/src/components/tool-selector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tDropdown,\n\tButton,\n\tMenuItemsChoice,\n\tSVG,\n\tPath,\n\tNavigableMenu,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { Icon, edit as editIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst selectIcon = (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\twidth=\"24\"\n\t\theight=\"24\"\n\t\tviewBox=\"0 0 24 24\"\n\t>\n\t\t<Path d=\"M9.4 20.5L5.2 3.8l14.6 9-2 .3c-.2 0-.4.1-.7.1-.9.2-1.6.3-2.2.5-.8.3-1.4.5-1.8.8-.4.3-.8.8-1.3 1.5-.4.5-.8 1.2-1.2 2l-.3.6-.9 1.9zM7.6 7.1l2.4 9.3c.2-.4.5-.8.7-1.1.6-.8 1.1-1.4 1.6-1.8.5-.4 1.3-.8 2.2-1.1l1.2-.3-8.1-5z\" />\n\t</SVG>\n);\n\nfunction ToolSelector( props, ref ) {\n\tconst mode = useSelect(\n\t\t( select ) => select( blockEditorStore ).__unstableGetEditorMode(),\n\t\t[]\n\t);\n\tconst { __unstableSetEditorMode } = useDispatch( blockEditorStore );\n\n\treturn (\n\t\t<Dropdown\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<Button\n\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tref={ ref }\n\t\t\t\t\ticon={ mode === 'navigation' ? selectIcon : editIcon }\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\tlabel={ __( 'Tools' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\tpopoverProps={ { placement: 'bottom-start' } }\n\t\t\trenderContent={ () => (\n\t\t\t\t<>\n\t\t\t\t\t<NavigableMenu role=\"menu\" aria-label={ __( 'Tools' ) }>\n\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tmode === 'navigation' ? 'navigation' : 'edit'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonSelect={ __unstableSetEditorMode }\n\t\t\t\t\t\t\tchoices={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: 'edit',\n\t\t\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ editIcon } />\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: 'navigation',\n\t\t\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{ selectIcon }\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Select' ) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t<div className=\"block-editor-tool-selector__help\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Tools provide different interactions for selecting, navigating, and editing blocks. Toggle between select and edit by pressing Escape and Enter.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( ToolSelector );\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,QAAQ,EACRC,MAAM,EACNC,eAAe,EACfC,GAAG,EACHC,IAAI,EACJC,aAAa,QACP,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,IAAI,EAAEC,IAAI,IAAIC,QAAQ,QAAQ,kBAAkB;;AAEzD;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAExD,MAAMC,UAAU,gBACfL,IAAA,CAACb,GAAG;EACHmB,KAAK,EAAC,4BAA4B;EAClCC,KAAK,EAAC,IAAI;EACVC,MAAM,EAAC,IAAI;EACXC,OAAO,EAAC,WAAW;EAAAC,QAAA,eAEnBV,IAAA,CAACZ,IAAI;IAACuB,CAAC,EAAC;EAA2N,CAAE;AAAC,CAClO,CACL;AAED,SAASC,YAAYA,CAAEC,KAAK,EAAEC,GAAG,EAAG;EACnC,MAAMC,IAAI,GAAGxB,SAAS,CACnByB,MAAM,IAAMA,MAAM,CAAElB,gBAAiB,CAAC,CAACmB,uBAAuB,CAAC,CAAC,EAClE,EACD,CAAC;EACD,MAAM;IAAEC;EAAwB,CAAC,GAAG1B,WAAW,CAAEM,gBAAiB,CAAC;EAEnE,oBACCE,IAAA,CAAChB,QAAQ;IACRmC,YAAY,EAAGA,CAAE;MAAEC,MAAM;MAAEC;IAAS,CAAC,kBACpCrB,IAAA,CAACf;IACA;IAAA;MACAqC,qBAAqB,EAAG,KAAO;MAAA,GAC1BT,KAAK;MACVC,GAAG,EAAGA,GAAK;MACXS,IAAI,EAAGR,IAAI,KAAK,YAAY,GAAGV,UAAU,GAAGT,QAAU;MACtD,iBAAgBwB,MAAQ;MACxB,iBAAc,MAAM;MACpBI,OAAO,EAAGH;MACV;MACAI,KAAK,EAAGnC,EAAE,CAAE,OAAQ;IAAG,CACvB,CACC;IACHoC,YAAY,EAAG;MAAEC,SAAS,EAAE;IAAe,CAAG;IAC9CC,aAAa,EAAGA,CAAA,kBACfxB,KAAA,CAAAF,SAAA;MAAAQ,QAAA,gBACCV,IAAA,CAACX,aAAa;QAACwC,IAAI,EAAC,MAAM;QAAC,cAAavC,EAAE,CAAE,OAAQ,CAAG;QAAAoB,QAAA,eACtDV,IAAA,CAACd,eAAe;UACf4C,KAAK,EACJf,IAAI,KAAK,YAAY,GAAG,YAAY,GAAG,MACvC;UACDgB,QAAQ,EAAGb,uBAAyB;UACpCc,OAAO,EAAG,CACT;YACCF,KAAK,EAAE,MAAM;YACbL,KAAK,eACJrB,KAAA,CAAAF,SAAA;cAAAQ,QAAA,gBACCV,IAAA,CAACN,IAAI;gBAAC6B,IAAI,EAAG3B;cAAU,CAAE,CAAC,EACxBN,EAAE,CAAE,MAAO,CAAC;YAAA,CACb;UAEJ,CAAC,EACD;YACCwC,KAAK,EAAE,YAAY;YACnBL,KAAK,eACJrB,KAAA,CAAAF,SAAA;cAAAQ,QAAA,GACGL,UAAU,EACVf,EAAE,CAAE,QAAS,CAAC;YAAA,CACf;UAEJ,CAAC;QACC,CACH;MAAC,CACY,CAAC,eAChBU,IAAA;QAAKiC,SAAS,EAAC,kCAAkC;QAAAvB,QAAA,EAC9CpB,EAAE,CACH,kJACD;MAAC,CACG,CAAC;IAAA,CACL;EACA,CACH,CAAC;AAEJ;AAEA,eAAeG,UAAU,CAAEmB,YAAa,CAAC","ignoreList":[]}
@@ -41,7 +41,10 @@ class URLInputButton extends Component {
41
41
  const buttonLabel = url ? __('Edit link') : __('Insert link');
42
42
  return /*#__PURE__*/_jsxs("div", {
43
43
  className: "block-editor-url-input__button",
44
- children: [/*#__PURE__*/_jsx(Button, {
44
+ children: [/*#__PURE__*/_jsx(Button
45
+ // TODO: Switch to `true` (40px size) if possible
46
+ , {
47
+ __next40pxDefaultSize: false,
45
48
  icon: link,
46
49
  label: buttonLabel,
47
50
  onClick: this.toggle,
@@ -52,7 +55,10 @@ class URLInputButton extends Component {
52
55
  onSubmit: this.submitLink,
53
56
  children: /*#__PURE__*/_jsxs("div", {
54
57
  className: "block-editor-url-input__button-modal-line",
55
- children: [/*#__PURE__*/_jsx(Button, {
58
+ children: [/*#__PURE__*/_jsx(Button
59
+ // TODO: Switch to `true` (40px size) if possible
60
+ , {
61
+ __next40pxDefaultSize: false,
56
62
  className: "block-editor-url-input__back",
57
63
  icon: arrowLeft,
58
64
  label: __('Close'),
@@ -60,7 +66,10 @@ class URLInputButton extends Component {
60
66
  }), /*#__PURE__*/_jsx(URLInput, {
61
67
  value: url || '',
62
68
  onChange: onChange
63
- }), /*#__PURE__*/_jsx(Button, {
69
+ }), /*#__PURE__*/_jsx(Button
70
+ // TODO: Switch to `true` (40px size) if possible
71
+ , {
72
+ __next40pxDefaultSize: false,
64
73
  icon: keyboardReturn,
65
74
  label: __('Submit'),
66
75
  type: "submit"
@@ -1 +1 @@
1
- {"version":3,"names":["__","Component","Button","link","keyboardReturn","arrowLeft","URLInput","jsx","_jsx","jsxs","_jsxs","URLInputButton","constructor","arguments","toggle","bind","submitLink","state","expanded","setState","event","preventDefault","render","url","onChange","props","buttonLabel","className","children","icon","label","onClick","isPressed","onSubmit","value","type"],"sources":["@wordpress/block-editor/src/components/url-input/button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport { Button } from '@wordpress/components';\nimport { link, keyboardReturn, arrowLeft } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport URLInput from './';\n\nclass URLInputButton extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.toggle = this.toggle.bind( this );\n\t\tthis.submitLink = this.submitLink.bind( this );\n\t\tthis.state = {\n\t\t\texpanded: false,\n\t\t};\n\t}\n\n\ttoggle() {\n\t\tthis.setState( { expanded: ! this.state.expanded } );\n\t}\n\n\tsubmitLink( event ) {\n\t\tevent.preventDefault();\n\t\tthis.toggle();\n\t}\n\n\trender() {\n\t\tconst { url, onChange } = this.props;\n\t\tconst { expanded } = this.state;\n\t\tconst buttonLabel = url ? __( 'Edit link' ) : __( 'Insert link' );\n\n\t\treturn (\n\t\t\t<div className=\"block-editor-url-input__button\">\n\t\t\t\t<Button\n\t\t\t\t\ticon={ link }\n\t\t\t\t\tlabel={ buttonLabel }\n\t\t\t\t\tonClick={ this.toggle }\n\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\tisPressed={ !! url }\n\t\t\t\t/>\n\t\t\t\t{ expanded && (\n\t\t\t\t\t<form\n\t\t\t\t\t\tclassName=\"block-editor-url-input__button-modal\"\n\t\t\t\t\t\tonSubmit={ this.submitLink }\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"block-editor-url-input__button-modal-line\">\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"block-editor-url-input__back\"\n\t\t\t\t\t\t\t\ticon={ arrowLeft }\n\t\t\t\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\t\t\t\tonClick={ this.toggle }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<URLInput\n\t\t\t\t\t\t\t\tvalue={ url || '' }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\t\t\tlabel={ __( 'Submit' ) }\n\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</form>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-input/README.md\n */\nexport default URLInputButton;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,QAAQ,oBAAoB;AAC9C,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,IAAI,EAAEC,cAAc,EAAEC,SAAS,QAAQ,kBAAkB;;AAElE;AACA;AACA;AACA,OAAOC,QAAQ,MAAM,IAAI;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAE1B,MAAMC,cAAc,SAASV,SAAS,CAAC;EACtCW,WAAWA,CAAA,EAAG;IACb,KAAK,CAAE,GAAGC,SAAU,CAAC;IACrB,IAAI,CAACC,MAAM,GAAG,IAAI,CAACA,MAAM,CAACC,IAAI,CAAE,IAAK,CAAC;IACtC,IAAI,CAACC,UAAU,GAAG,IAAI,CAACA,UAAU,CAACD,IAAI,CAAE,IAAK,CAAC;IAC9C,IAAI,CAACE,KAAK,GAAG;MACZC,QAAQ,EAAE;IACX,CAAC;EACF;EAEAJ,MAAMA,CAAA,EAAG;IACR,IAAI,CAACK,QAAQ,CAAE;MAAED,QAAQ,EAAE,CAAE,IAAI,CAACD,KAAK,CAACC;IAAS,CAAE,CAAC;EACrD;EAEAF,UAAUA,CAAEI,KAAK,EAAG;IACnBA,KAAK,CAACC,cAAc,CAAC,CAAC;IACtB,IAAI,CAACP,MAAM,CAAC,CAAC;EACd;EAEAQ,MAAMA,CAAA,EAAG;IACR,MAAM;MAAEC,GAAG;MAAEC;IAAS,CAAC,GAAG,IAAI,CAACC,KAAK;IACpC,MAAM;MAAEP;IAAS,CAAC,GAAG,IAAI,CAACD,KAAK;IAC/B,MAAMS,WAAW,GAAGH,GAAG,GAAGvB,EAAE,CAAE,WAAY,CAAC,GAAGA,EAAE,CAAE,aAAc,CAAC;IAEjE,oBACCU,KAAA;MAAKiB,SAAS,EAAC,gCAAgC;MAAAC,QAAA,gBAC9CpB,IAAA,CAACN,MAAM;QACN2B,IAAI,EAAG1B,IAAM;QACb2B,KAAK,EAAGJ,WAAa;QACrBK,OAAO,EAAG,IAAI,CAACjB,MAAQ;QACvBa,SAAS,EAAC,6BAA6B;QACvCK,SAAS,EAAG,CAAC,CAAET;MAAK,CACpB,CAAC,EACAL,QAAQ,iBACTV,IAAA;QACCmB,SAAS,EAAC,sCAAsC;QAChDM,QAAQ,EAAG,IAAI,CAACjB,UAAY;QAAAY,QAAA,eAE5BlB,KAAA;UAAKiB,SAAS,EAAC,2CAA2C;UAAAC,QAAA,gBACzDpB,IAAA,CAACN,MAAM;YACNyB,SAAS,EAAC,8BAA8B;YACxCE,IAAI,EAAGxB,SAAW;YAClByB,KAAK,EAAG9B,EAAE,CAAE,OAAQ,CAAG;YACvB+B,OAAO,EAAG,IAAI,CAACjB;UAAQ,CACvB,CAAC,eACFN,IAAA,CAACF,QAAQ;YACR4B,KAAK,EAAGX,GAAG,IAAI,EAAI;YACnBC,QAAQ,EAAGA;UAAU,CACrB,CAAC,eACFhB,IAAA,CAACN,MAAM;YACN2B,IAAI,EAAGzB,cAAgB;YACvB0B,KAAK,EAAG9B,EAAE,CAAE,QAAS,CAAG;YACxBmC,IAAI,EAAC;UAAQ,CACb,CAAC;QAAA,CACE;MAAC,CACD,CACN;IAAA,CACG,CAAC;EAER;AACD;;AAEA;AACA;AACA;AACA,eAAexB,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["__","Component","Button","link","keyboardReturn","arrowLeft","URLInput","jsx","_jsx","jsxs","_jsxs","URLInputButton","constructor","arguments","toggle","bind","submitLink","state","expanded","setState","event","preventDefault","render","url","onChange","props","buttonLabel","className","children","__next40pxDefaultSize","icon","label","onClick","isPressed","onSubmit","value","type"],"sources":["@wordpress/block-editor/src/components/url-input/button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport { Button } from '@wordpress/components';\nimport { link, keyboardReturn, arrowLeft } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport URLInput from './';\n\nclass URLInputButton extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.toggle = this.toggle.bind( this );\n\t\tthis.submitLink = this.submitLink.bind( this );\n\t\tthis.state = {\n\t\t\texpanded: false,\n\t\t};\n\t}\n\n\ttoggle() {\n\t\tthis.setState( { expanded: ! this.state.expanded } );\n\t}\n\n\tsubmitLink( event ) {\n\t\tevent.preventDefault();\n\t\tthis.toggle();\n\t}\n\n\trender() {\n\t\tconst { url, onChange } = this.props;\n\t\tconst { expanded } = this.state;\n\t\tconst buttonLabel = url ? __( 'Edit link' ) : __( 'Insert link' );\n\n\t\treturn (\n\t\t\t<div className=\"block-editor-url-input__button\">\n\t\t\t\t<Button\n\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\ticon={ link }\n\t\t\t\t\tlabel={ buttonLabel }\n\t\t\t\t\tonClick={ this.toggle }\n\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\tisPressed={ !! url }\n\t\t\t\t/>\n\t\t\t\t{ expanded && (\n\t\t\t\t\t<form\n\t\t\t\t\t\tclassName=\"block-editor-url-input__button-modal\"\n\t\t\t\t\t\tonSubmit={ this.submitLink }\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"block-editor-url-input__button-modal-line\">\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\t\t\tclassName=\"block-editor-url-input__back\"\n\t\t\t\t\t\t\t\ticon={ arrowLeft }\n\t\t\t\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\t\t\t\tonClick={ this.toggle }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<URLInput\n\t\t\t\t\t\t\t\tvalue={ url || '' }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\t\t\tlabel={ __( 'Submit' ) }\n\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</form>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-input/README.md\n */\nexport default URLInputButton;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,QAAQ,oBAAoB;AAC9C,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,IAAI,EAAEC,cAAc,EAAEC,SAAS,QAAQ,kBAAkB;;AAElE;AACA;AACA;AACA,OAAOC,QAAQ,MAAM,IAAI;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAE1B,MAAMC,cAAc,SAASV,SAAS,CAAC;EACtCW,WAAWA,CAAA,EAAG;IACb,KAAK,CAAE,GAAGC,SAAU,CAAC;IACrB,IAAI,CAACC,MAAM,GAAG,IAAI,CAACA,MAAM,CAACC,IAAI,CAAE,IAAK,CAAC;IACtC,IAAI,CAACC,UAAU,GAAG,IAAI,CAACA,UAAU,CAACD,IAAI,CAAE,IAAK,CAAC;IAC9C,IAAI,CAACE,KAAK,GAAG;MACZC,QAAQ,EAAE;IACX,CAAC;EACF;EAEAJ,MAAMA,CAAA,EAAG;IACR,IAAI,CAACK,QAAQ,CAAE;MAAED,QAAQ,EAAE,CAAE,IAAI,CAACD,KAAK,CAACC;IAAS,CAAE,CAAC;EACrD;EAEAF,UAAUA,CAAEI,KAAK,EAAG;IACnBA,KAAK,CAACC,cAAc,CAAC,CAAC;IACtB,IAAI,CAACP,MAAM,CAAC,CAAC;EACd;EAEAQ,MAAMA,CAAA,EAAG;IACR,MAAM;MAAEC,GAAG;MAAEC;IAAS,CAAC,GAAG,IAAI,CAACC,KAAK;IACpC,MAAM;MAAEP;IAAS,CAAC,GAAG,IAAI,CAACD,KAAK;IAC/B,MAAMS,WAAW,GAAGH,GAAG,GAAGvB,EAAE,CAAE,WAAY,CAAC,GAAGA,EAAE,CAAE,aAAc,CAAC;IAEjE,oBACCU,KAAA;MAAKiB,SAAS,EAAC,gCAAgC;MAAAC,QAAA,gBAC9CpB,IAAA,CAACN;MACA;MAAA;QACA2B,qBAAqB,EAAG,KAAO;QAC/BC,IAAI,EAAG3B,IAAM;QACb4B,KAAK,EAAGL,WAAa;QACrBM,OAAO,EAAG,IAAI,CAAClB,MAAQ;QACvBa,SAAS,EAAC,6BAA6B;QACvCM,SAAS,EAAG,CAAC,CAAEV;MAAK,CACpB,CAAC,EACAL,QAAQ,iBACTV,IAAA;QACCmB,SAAS,EAAC,sCAAsC;QAChDO,QAAQ,EAAG,IAAI,CAAClB,UAAY;QAAAY,QAAA,eAE5BlB,KAAA;UAAKiB,SAAS,EAAC,2CAA2C;UAAAC,QAAA,gBACzDpB,IAAA,CAACN;UACA;UAAA;YACA2B,qBAAqB,EAAG,KAAO;YAC/BF,SAAS,EAAC,8BAA8B;YACxCG,IAAI,EAAGzB,SAAW;YAClB0B,KAAK,EAAG/B,EAAE,CAAE,OAAQ,CAAG;YACvBgC,OAAO,EAAG,IAAI,CAAClB;UAAQ,CACvB,CAAC,eACFN,IAAA,CAACF,QAAQ;YACR6B,KAAK,EAAGZ,GAAG,IAAI,EAAI;YACnBC,QAAQ,EAAGA;UAAU,CACrB,CAAC,eACFhB,IAAA,CAACN;UACA;UAAA;YACA2B,qBAAqB,EAAG,KAAO;YAC/BC,IAAI,EAAG1B,cAAgB;YACvB2B,KAAK,EAAG/B,EAAE,CAAE,QAAS,CAAG;YACxBoC,IAAI,EAAC;UAAQ,CACb,CAAC;QAAA,CACE;MAAC,CACD,CACN;IAAA,CACG,CAAC;EAER;AACD;;AAEA;AACA;AACA;AACA,eAAezB,cAAc","ignoreList":[]}
@@ -450,7 +450,10 @@ class URLInput extends Component {
450
450
  children: /*#__PURE__*/_jsx("div", {
451
451
  ...suggestionsListProps,
452
452
  className: clsx('block-editor-url-input__suggestions', `${className}__suggestions`),
453
- children: suggestions.map((suggestion, index) => /*#__PURE__*/_createElement(Button, {
453
+ children: suggestions.map((suggestion, index) => /*#__PURE__*/_createElement(Button
454
+ // TODO: Switch to `true` (40px size) if possible
455
+ , {
456
+ __next40pxDefaultSize: false,
454
457
  ...buildSuggestionItemProps(suggestion, index),
455
458
  key: suggestion.id,
456
459
  className: clsx('block-editor-url-input__suggestion', {
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","__","sprintf","_n","Component","createRef","UP","DOWN","ENTER","TAB","BaseControl","Button","Spinner","withSpokenMessages","Popover","compose","debounce","withInstanceId","withSafeTimeout","withSelect","isURL","store","blockEditorStore","Fragment","_Fragment","jsxs","_jsxs","jsx","_jsx","createElement","_createElement","isFunction","maybeFunc","URLInput","constructor","props","onChange","bind","onFocus","onKeyDown","selectLink","handleOnClick","bindSuggestionNode","autocompleteRef","inputRef","updateSuggestions","suggestionNodes","suggestionsRequest","state","suggestions","showSuggestions","suggestionsValue","selectedSuggestion","suggestionsListboxId","suggestionOptionIdPrefix","componentDidUpdate","prevProps","value","__experimentalShowInitialSuggestions","scrollIntoView","behavior","block","inline","disableSuggestions","length","componentDidMount","shouldShowInitialSuggestions","componentWillUnmount","cancel","index","ref","__experimentalFetchLinkSuggestions","fetchLinkSuggestions","__experimentalHandleURLSuggestions","handleURLSuggestions","isInitialSuggestions","trim","setState","loading","request","then","debouncedSpeak","catch","finally","event","target","keyCode","selectionStart","preventDefault","setSelectionRange","onSubmit","suggestion","previousIndex","nextIndex","speak","url","current","focus","getDerivedStateFromProps","instanceId","shouldShowSuggestions","hasValue","render","children","renderControl","renderSuggestions","label","className","isFullWidth","placeholder","__experimentalRenderControl","hideLabelFromVision","inputId","controlProps","id","inputProps","required","type","role","undefined","__nextHasNoMarginBottom","__experimentalRenderSuggestions","suggestionsListProps","buildSuggestionItemProps","tabIndex","isLoading","handleSuggestionClick","currentInputValue","placement","focusOnMount","map","key","onClick","title","select","getSettings"],"sources":["@wordpress/block-editor/src/components/url-input/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { Component, createRef } from '@wordpress/element';\nimport { UP, DOWN, ENTER, TAB } from '@wordpress/keycodes';\nimport {\n\tBaseControl,\n\tButton,\n\tSpinner,\n\twithSpokenMessages,\n\tPopover,\n} from '@wordpress/components';\nimport {\n\tcompose,\n\tdebounce,\n\twithInstanceId,\n\twithSafeTimeout,\n} from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { isURL } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Whether the argument is a function.\n *\n * @param {*} maybeFunc The argument to check.\n * @return {boolean} True if the argument is a function, false otherwise.\n */\nfunction isFunction( maybeFunc ) {\n\treturn typeof maybeFunc === 'function';\n}\n\nclass URLInput extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.onChange = this.onChange.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.onKeyDown = this.onKeyDown.bind( this );\n\t\tthis.selectLink = this.selectLink.bind( this );\n\t\tthis.handleOnClick = this.handleOnClick.bind( this );\n\t\tthis.bindSuggestionNode = this.bindSuggestionNode.bind( this );\n\t\tthis.autocompleteRef = props.autocompleteRef || createRef();\n\t\tthis.inputRef = createRef();\n\t\tthis.updateSuggestions = debounce(\n\t\t\tthis.updateSuggestions.bind( this ),\n\t\t\t200\n\t\t);\n\n\t\tthis.suggestionNodes = [];\n\n\t\tthis.suggestionsRequest = null;\n\n\t\tthis.state = {\n\t\t\tsuggestions: [],\n\t\t\tshowSuggestions: false,\n\t\t\tsuggestionsValue: null,\n\t\t\tselectedSuggestion: null,\n\t\t\tsuggestionsListboxId: '',\n\t\t\tsuggestionOptionIdPrefix: '',\n\t\t};\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { showSuggestions, selectedSuggestion } = this.state;\n\t\tconst { value, __experimentalShowInitialSuggestions = false } =\n\t\t\tthis.props;\n\n\t\t// Only have to worry about scrolling selected suggestion into view\n\t\t// when already expanded.\n\t\tif (\n\t\t\tshowSuggestions &&\n\t\t\tselectedSuggestion !== null &&\n\t\t\tthis.suggestionNodes[ selectedSuggestion ]\n\t\t) {\n\t\t\tthis.suggestionNodes[ selectedSuggestion ].scrollIntoView( {\n\t\t\t\tbehavior: 'instant',\n\t\t\t\tblock: 'nearest',\n\t\t\t\tinline: 'nearest',\n\t\t\t} );\n\t\t}\n\n\t\t// Update suggestions when the value changes.\n\t\tif ( prevProps.value !== value && ! this.props.disableSuggestions ) {\n\t\t\tif ( value?.length ) {\n\t\t\t\t// If the new value is not empty we need to update with suggestions for it.\n\t\t\t\tthis.updateSuggestions( value );\n\t\t\t} else if ( __experimentalShowInitialSuggestions ) {\n\t\t\t\t// If the new value is empty and we can show initial suggestions, then show initial suggestions.\n\t\t\t\tthis.updateSuggestions();\n\t\t\t}\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( this.shouldShowInitialSuggestions() ) {\n\t\t\tthis.updateSuggestions();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.suggestionsRequest?.cancel?.();\n\t\tthis.suggestionsRequest = null;\n\t}\n\n\tbindSuggestionNode( index ) {\n\t\treturn ( ref ) => {\n\t\t\tthis.suggestionNodes[ index ] = ref;\n\t\t};\n\t}\n\n\tshouldShowInitialSuggestions() {\n\t\tconst { __experimentalShowInitialSuggestions = false, value } =\n\t\t\tthis.props;\n\t\treturn (\n\t\t\t__experimentalShowInitialSuggestions && ! ( value && value.length )\n\t\t);\n\t}\n\n\tupdateSuggestions( value = '' ) {\n\t\tconst {\n\t\t\t__experimentalFetchLinkSuggestions: fetchLinkSuggestions,\n\t\t\t__experimentalHandleURLSuggestions: handleURLSuggestions,\n\t\t} = this.props;\n\n\t\tif ( ! fetchLinkSuggestions ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Initial suggestions may only show if there is no value\n\t\t// (note: this includes whitespace).\n\t\tconst isInitialSuggestions = ! value?.length;\n\n\t\t// Trim only now we've determined whether or not it originally had a \"length\"\n\t\t// (even if that value was all whitespace).\n\t\tvalue = value.trim();\n\n\t\t// Allow a suggestions request if:\n\t\t// - there are at least 2 characters in the search input (except manual searches where\n\t\t// search input length is not required to trigger a fetch)\n\t\t// - this is a direct entry (eg: a URL)\n\t\tif (\n\t\t\t! isInitialSuggestions &&\n\t\t\t( value.length < 2 || ( ! handleURLSuggestions && isURL( value ) ) )\n\t\t) {\n\t\t\tthis.suggestionsRequest?.cancel?.();\n\t\t\tthis.suggestionsRequest = null;\n\n\t\t\tthis.setState( {\n\t\t\t\tsuggestions: [],\n\t\t\t\tshowSuggestions: false,\n\t\t\t\tsuggestionsValue: value,\n\t\t\t\tselectedSuggestion: null,\n\t\t\t\tloading: false,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setState( {\n\t\t\tselectedSuggestion: null,\n\t\t\tloading: true,\n\t\t} );\n\n\t\tconst request = fetchLinkSuggestions( value, {\n\t\t\tisInitialSuggestions,\n\t\t} );\n\n\t\trequest\n\t\t\t.then( ( suggestions ) => {\n\t\t\t\t// A fetch Promise doesn't have an abort option. It's mimicked by\n\t\t\t\t// comparing the request reference in on the instance, which is\n\t\t\t\t// reset or deleted on subsequent requests or unmounting.\n\t\t\t\tif ( this.suggestionsRequest !== request ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.setState( {\n\t\t\t\t\tsuggestions,\n\t\t\t\t\tsuggestionsValue: value,\n\t\t\t\t\tloading: false,\n\t\t\t\t\tshowSuggestions: !! suggestions.length,\n\t\t\t\t} );\n\n\t\t\t\tif ( !! suggestions.length ) {\n\t\t\t\t\tthis.props.debouncedSpeak(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t/* translators: %s: number of results. */\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'%d result found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\t\t'%d results found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\t\tsuggestions.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tsuggestions.length\n\t\t\t\t\t\t),\n\t\t\t\t\t\t'assertive'\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthis.props.debouncedSpeak(\n\t\t\t\t\t\t__( 'No results.' ),\n\t\t\t\t\t\t'assertive'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( () => {\n\t\t\t\tif ( this.suggestionsRequest !== request ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.setState( {\n\t\t\t\t\tloading: false,\n\t\t\t\t} );\n\t\t\t} )\n\t\t\t.finally( () => {\n\t\t\t\t// If this is the current promise then reset the reference\n\t\t\t\t// to allow for checking if a new request is made.\n\t\t\t\tif ( this.suggestionsRequest === request ) {\n\t\t\t\t\tthis.suggestionsRequest = null;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t// Note that this assignment is handled *before* the async search request\n\t\t// as a Promise always resolves on the next tick of the event loop.\n\t\tthis.suggestionsRequest = request;\n\t}\n\n\tonChange( event ) {\n\t\tthis.props.onChange( event.target.value );\n\t}\n\n\tonFocus() {\n\t\tconst { suggestions } = this.state;\n\t\tconst { disableSuggestions, value } = this.props;\n\n\t\t// When opening the link editor, if there's a value present, we want to load the suggestions pane with the results for this input search value\n\t\t// Don't re-run the suggestions on focus if there are already suggestions present (prevents searching again when tabbing between the input and buttons)\n\t\t// or there is already a request in progress.\n\t\tif (\n\t\t\tvalue &&\n\t\t\t! disableSuggestions &&\n\t\t\t! ( suggestions && suggestions.length ) &&\n\t\t\tthis.suggestionsRequest === null\n\t\t) {\n\t\t\t// Ensure the suggestions are updated with the current input value.\n\t\t\tthis.updateSuggestions( value );\n\t\t}\n\t}\n\n\tonKeyDown( event ) {\n\t\tthis.props.onKeyDown?.( event );\n\t\tconst { showSuggestions, selectedSuggestion, suggestions, loading } =\n\t\t\tthis.state;\n\n\t\t// If the suggestions are not shown or loading, we shouldn't handle the arrow keys\n\t\t// We shouldn't preventDefault to allow block arrow keys navigation.\n\t\tif ( ! showSuggestions || ! suggestions.length || loading ) {\n\t\t\t// In the Windows version of Firefox the up and down arrows don't move the caret\n\t\t\t// within an input field like they do for Mac Firefox/Chrome/Safari. This causes\n\t\t\t// a form of focus trapping that is disruptive to the user experience. This disruption\n\t\t\t// only happens if the caret is not in the first or last position in the text input.\n\t\t\t// See: https://github.com/WordPress/gutenberg/issues/5693#issuecomment-436684747\n\t\t\tswitch ( event.keyCode ) {\n\t\t\t\t// When UP is pressed, if the caret is at the start of the text, move it to the 0\n\t\t\t\t// position.\n\t\t\t\tcase UP: {\n\t\t\t\t\tif ( 0 !== event.target.selectionStart ) {\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Set the input caret to position 0.\n\t\t\t\t\t\tevent.target.setSelectionRange( 0, 0 );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\t// When DOWN is pressed, if the caret is not at the end of the text, move it to the\n\t\t\t\t// last position.\n\t\t\t\tcase DOWN: {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.props.value.length !== event.target.selectionStart\n\t\t\t\t\t) {\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Set the input caret to the last position.\n\t\t\t\t\t\tevent.target.setSelectionRange(\n\t\t\t\t\t\t\tthis.props.value.length,\n\t\t\t\t\t\t\tthis.props.value.length\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\t// Submitting while loading should trigger onSubmit.\n\t\t\t\tcase ENTER: {\n\t\t\t\t\tif ( this.props.onSubmit ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tthis.props.onSubmit( null, event );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst suggestion =\n\t\t\tthis.state.suggestions[ this.state.selectedSuggestion ];\n\n\t\tswitch ( event.keyCode ) {\n\t\t\tcase UP: {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst previousIndex = ! selectedSuggestion\n\t\t\t\t\t? suggestions.length - 1\n\t\t\t\t\t: selectedSuggestion - 1;\n\t\t\t\tthis.setState( {\n\t\t\t\t\tselectedSuggestion: previousIndex,\n\t\t\t\t} );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase DOWN: {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst nextIndex =\n\t\t\t\t\tselectedSuggestion === null ||\n\t\t\t\t\tselectedSuggestion === suggestions.length - 1\n\t\t\t\t\t\t? 0\n\t\t\t\t\t\t: selectedSuggestion + 1;\n\t\t\t\tthis.setState( {\n\t\t\t\t\tselectedSuggestion: nextIndex,\n\t\t\t\t} );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TAB: {\n\t\t\t\tif ( this.state.selectedSuggestion !== null ) {\n\t\t\t\t\tthis.selectLink( suggestion );\n\t\t\t\t\t// Announce a link has been selected when tabbing away from the input field.\n\t\t\t\t\tthis.props.speak( __( 'Link selected.' ) );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase ENTER: {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif ( this.state.selectedSuggestion !== null ) {\n\t\t\t\t\tthis.selectLink( suggestion );\n\n\t\t\t\t\tif ( this.props.onSubmit ) {\n\t\t\t\t\t\tthis.props.onSubmit( suggestion, event );\n\t\t\t\t\t}\n\t\t\t\t} else if ( this.props.onSubmit ) {\n\t\t\t\t\tthis.props.onSubmit( null, event );\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tselectLink( suggestion ) {\n\t\tthis.props.onChange( suggestion.url, suggestion );\n\t\tthis.setState( {\n\t\t\tselectedSuggestion: null,\n\t\t\tshowSuggestions: false,\n\t\t} );\n\t}\n\n\thandleOnClick( suggestion ) {\n\t\tthis.selectLink( suggestion );\n\t\t// Move focus to the input field when a link suggestion is clicked.\n\t\tthis.inputRef.current.focus();\n\t}\n\n\tstatic getDerivedStateFromProps(\n\t\t{\n\t\t\tvalue,\n\t\t\tinstanceId,\n\t\t\tdisableSuggestions,\n\t\t\t__experimentalShowInitialSuggestions = false,\n\t\t},\n\t\t{ showSuggestions }\n\t) {\n\t\tlet shouldShowSuggestions = showSuggestions;\n\n\t\tconst hasValue = value && value.length;\n\n\t\tif ( ! __experimentalShowInitialSuggestions && ! hasValue ) {\n\t\t\tshouldShowSuggestions = false;\n\t\t}\n\n\t\tif ( disableSuggestions === true ) {\n\t\t\tshouldShowSuggestions = false;\n\t\t}\n\n\t\treturn {\n\t\t\tshowSuggestions: shouldShowSuggestions,\n\t\t\tsuggestionsListboxId: `block-editor-url-input-suggestions-${ instanceId }`,\n\t\t\tsuggestionOptionIdPrefix: `block-editor-url-input-suggestion-${ instanceId }`,\n\t\t};\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ this.renderControl() }\n\t\t\t\t{ this.renderSuggestions() }\n\t\t\t</>\n\t\t);\n\t}\n\n\trenderControl() {\n\t\tconst {\n\t\t\tlabel = null,\n\t\t\tclassName,\n\t\t\tisFullWidth,\n\t\t\tinstanceId,\n\t\t\tplaceholder = __( 'Paste URL or type to search' ),\n\t\t\t__experimentalRenderControl: renderControl,\n\t\t\tvalue = '',\n\t\t\thideLabelFromVision = false,\n\t\t} = this.props;\n\n\t\tconst {\n\t\t\tloading,\n\t\t\tshowSuggestions,\n\t\t\tselectedSuggestion,\n\t\t\tsuggestionsListboxId,\n\t\t\tsuggestionOptionIdPrefix,\n\t\t} = this.state;\n\n\t\tconst inputId = `url-input-control-${ instanceId }`;\n\n\t\tconst controlProps = {\n\t\t\tid: inputId, // Passes attribute to label for the for attribute\n\t\t\tlabel,\n\t\t\tclassName: clsx( 'block-editor-url-input', className, {\n\t\t\t\t'is-full-width': isFullWidth,\n\t\t\t} ),\n\t\t\thideLabelFromVision,\n\t\t};\n\n\t\tconst inputProps = {\n\t\t\tid: inputId,\n\t\t\tvalue,\n\t\t\trequired: true,\n\t\t\tclassName: 'block-editor-url-input__input',\n\t\t\ttype: 'text',\n\t\t\tonChange: this.onChange,\n\t\t\tonFocus: this.onFocus,\n\t\t\tplaceholder,\n\t\t\tonKeyDown: this.onKeyDown,\n\t\t\trole: 'combobox',\n\t\t\t'aria-label': label ? undefined : __( 'URL' ), // Ensure input always has an accessible label\n\t\t\t'aria-expanded': showSuggestions,\n\t\t\t'aria-autocomplete': 'list',\n\t\t\t'aria-owns': suggestionsListboxId,\n\t\t\t'aria-activedescendant':\n\t\t\t\tselectedSuggestion !== null\n\t\t\t\t\t? `${ suggestionOptionIdPrefix }-${ selectedSuggestion }`\n\t\t\t\t\t: undefined,\n\t\t\tref: this.inputRef,\n\t\t};\n\n\t\tif ( renderControl ) {\n\t\t\treturn renderControl( controlProps, inputProps, loading );\n\t\t}\n\n\t\treturn (\n\t\t\t<BaseControl __nextHasNoMarginBottom { ...controlProps }>\n\t\t\t\t<input { ...inputProps } />\n\t\t\t\t{ loading && <Spinner /> }\n\t\t\t</BaseControl>\n\t\t);\n\t}\n\n\trenderSuggestions() {\n\t\tconst {\n\t\t\tclassName,\n\t\t\t__experimentalRenderSuggestions: renderSuggestions,\n\t\t} = this.props;\n\n\t\tconst {\n\t\t\tshowSuggestions,\n\t\t\tsuggestions,\n\t\t\tsuggestionsValue,\n\t\t\tselectedSuggestion,\n\t\t\tsuggestionsListboxId,\n\t\t\tsuggestionOptionIdPrefix,\n\t\t\tloading,\n\t\t} = this.state;\n\n\t\tif ( ! showSuggestions || suggestions.length === 0 ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst suggestionsListProps = {\n\t\t\tid: suggestionsListboxId,\n\t\t\tref: this.autocompleteRef,\n\t\t\trole: 'listbox',\n\t\t};\n\n\t\tconst buildSuggestionItemProps = ( suggestion, index ) => {\n\t\t\treturn {\n\t\t\t\trole: 'option',\n\t\t\t\ttabIndex: '-1',\n\t\t\t\tid: `${ suggestionOptionIdPrefix }-${ index }`,\n\t\t\t\tref: this.bindSuggestionNode( index ),\n\t\t\t\t'aria-selected':\n\t\t\t\t\tindex === selectedSuggestion ? true : undefined,\n\t\t\t};\n\t\t};\n\n\t\tif ( isFunction( renderSuggestions ) ) {\n\t\t\treturn renderSuggestions( {\n\t\t\t\tsuggestions,\n\t\t\t\tselectedSuggestion,\n\t\t\t\tsuggestionsListProps,\n\t\t\t\tbuildSuggestionItemProps,\n\t\t\t\tisLoading: loading,\n\t\t\t\thandleSuggestionClick: this.handleOnClick,\n\t\t\t\tisInitialSuggestions: ! suggestionsValue?.length,\n\t\t\t\tcurrentInputValue: suggestionsValue,\n\t\t\t} );\n\t\t}\n\n\t\treturn (\n\t\t\t<Popover placement=\"bottom\" focusOnMount={ false }>\n\t\t\t\t<div\n\t\t\t\t\t{ ...suggestionsListProps }\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'block-editor-url-input__suggestions',\n\t\t\t\t\t\t`${ className }__suggestions`\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ suggestions.map( ( suggestion, index ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t{ ...buildSuggestionItemProps( suggestion, index ) }\n\t\t\t\t\t\t\tkey={ suggestion.id }\n\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t'block-editor-url-input__suggestion',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'is-selected': index === selectedSuggestion,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ () => this.handleOnClick( suggestion ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ suggestion.title }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) ) }\n\t\t\t\t</div>\n\t\t\t</Popover>\n\t\t);\n\t}\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-input/README.md\n */\nexport default compose(\n\twithSafeTimeout,\n\twithSpokenMessages,\n\twithInstanceId,\n\twithSelect( ( select, props ) => {\n\t\t// If a link suggestions handler is already provided then\n\t\t// bail.\n\t\tif ( isFunction( props.__experimentalFetchLinkSuggestions ) ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\t__experimentalFetchLinkSuggestions:\n\t\t\t\tgetSettings().__experimentalFetchLinkSuggestions,\n\t\t};\n\t} )\n)( URLInput );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","__","sprintf","_n","Component","createRef","UP","DOWN","ENTER","TAB","BaseControl","Button","Spinner","withSpokenMessages","Popover","compose","debounce","withInstanceId","withSafeTimeout","withSelect","isURL","store","blockEditorStore","Fragment","_Fragment","jsxs","_jsxs","jsx","_jsx","createElement","_createElement","isFunction","maybeFunc","URLInput","constructor","props","onChange","bind","onFocus","onKeyDown","selectLink","handleOnClick","bindSuggestionNode","autocompleteRef","inputRef","updateSuggestions","suggestionNodes","suggestionsRequest","state","suggestions","showSuggestions","suggestionsValue","selectedSuggestion","suggestionsListboxId","suggestionOptionIdPrefix","componentDidUpdate","prevProps","value","__experimentalShowInitialSuggestions","scrollIntoView","behavior","block","inline","disableSuggestions","length","componentDidMount","shouldShowInitialSuggestions","componentWillUnmount","cancel","index","ref","__experimentalFetchLinkSuggestions","fetchLinkSuggestions","__experimentalHandleURLSuggestions","handleURLSuggestions","isInitialSuggestions","trim","setState","loading","request","then","debouncedSpeak","catch","finally","event","target","keyCode","selectionStart","preventDefault","setSelectionRange","onSubmit","suggestion","previousIndex","nextIndex","speak","url","current","focus","getDerivedStateFromProps","instanceId","shouldShowSuggestions","hasValue","render","children","renderControl","renderSuggestions","label","className","isFullWidth","placeholder","__experimentalRenderControl","hideLabelFromVision","inputId","controlProps","id","inputProps","required","type","role","undefined","__nextHasNoMarginBottom","__experimentalRenderSuggestions","suggestionsListProps","buildSuggestionItemProps","tabIndex","isLoading","handleSuggestionClick","currentInputValue","placement","focusOnMount","map","__next40pxDefaultSize","key","onClick","title","select","getSettings"],"sources":["@wordpress/block-editor/src/components/url-input/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { Component, createRef } from '@wordpress/element';\nimport { UP, DOWN, ENTER, TAB } from '@wordpress/keycodes';\nimport {\n\tBaseControl,\n\tButton,\n\tSpinner,\n\twithSpokenMessages,\n\tPopover,\n} from '@wordpress/components';\nimport {\n\tcompose,\n\tdebounce,\n\twithInstanceId,\n\twithSafeTimeout,\n} from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { isURL } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Whether the argument is a function.\n *\n * @param {*} maybeFunc The argument to check.\n * @return {boolean} True if the argument is a function, false otherwise.\n */\nfunction isFunction( maybeFunc ) {\n\treturn typeof maybeFunc === 'function';\n}\n\nclass URLInput extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.onChange = this.onChange.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.onKeyDown = this.onKeyDown.bind( this );\n\t\tthis.selectLink = this.selectLink.bind( this );\n\t\tthis.handleOnClick = this.handleOnClick.bind( this );\n\t\tthis.bindSuggestionNode = this.bindSuggestionNode.bind( this );\n\t\tthis.autocompleteRef = props.autocompleteRef || createRef();\n\t\tthis.inputRef = createRef();\n\t\tthis.updateSuggestions = debounce(\n\t\t\tthis.updateSuggestions.bind( this ),\n\t\t\t200\n\t\t);\n\n\t\tthis.suggestionNodes = [];\n\n\t\tthis.suggestionsRequest = null;\n\n\t\tthis.state = {\n\t\t\tsuggestions: [],\n\t\t\tshowSuggestions: false,\n\t\t\tsuggestionsValue: null,\n\t\t\tselectedSuggestion: null,\n\t\t\tsuggestionsListboxId: '',\n\t\t\tsuggestionOptionIdPrefix: '',\n\t\t};\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { showSuggestions, selectedSuggestion } = this.state;\n\t\tconst { value, __experimentalShowInitialSuggestions = false } =\n\t\t\tthis.props;\n\n\t\t// Only have to worry about scrolling selected suggestion into view\n\t\t// when already expanded.\n\t\tif (\n\t\t\tshowSuggestions &&\n\t\t\tselectedSuggestion !== null &&\n\t\t\tthis.suggestionNodes[ selectedSuggestion ]\n\t\t) {\n\t\t\tthis.suggestionNodes[ selectedSuggestion ].scrollIntoView( {\n\t\t\t\tbehavior: 'instant',\n\t\t\t\tblock: 'nearest',\n\t\t\t\tinline: 'nearest',\n\t\t\t} );\n\t\t}\n\n\t\t// Update suggestions when the value changes.\n\t\tif ( prevProps.value !== value && ! this.props.disableSuggestions ) {\n\t\t\tif ( value?.length ) {\n\t\t\t\t// If the new value is not empty we need to update with suggestions for it.\n\t\t\t\tthis.updateSuggestions( value );\n\t\t\t} else if ( __experimentalShowInitialSuggestions ) {\n\t\t\t\t// If the new value is empty and we can show initial suggestions, then show initial suggestions.\n\t\t\t\tthis.updateSuggestions();\n\t\t\t}\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( this.shouldShowInitialSuggestions() ) {\n\t\t\tthis.updateSuggestions();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.suggestionsRequest?.cancel?.();\n\t\tthis.suggestionsRequest = null;\n\t}\n\n\tbindSuggestionNode( index ) {\n\t\treturn ( ref ) => {\n\t\t\tthis.suggestionNodes[ index ] = ref;\n\t\t};\n\t}\n\n\tshouldShowInitialSuggestions() {\n\t\tconst { __experimentalShowInitialSuggestions = false, value } =\n\t\t\tthis.props;\n\t\treturn (\n\t\t\t__experimentalShowInitialSuggestions && ! ( value && value.length )\n\t\t);\n\t}\n\n\tupdateSuggestions( value = '' ) {\n\t\tconst {\n\t\t\t__experimentalFetchLinkSuggestions: fetchLinkSuggestions,\n\t\t\t__experimentalHandleURLSuggestions: handleURLSuggestions,\n\t\t} = this.props;\n\n\t\tif ( ! fetchLinkSuggestions ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Initial suggestions may only show if there is no value\n\t\t// (note: this includes whitespace).\n\t\tconst isInitialSuggestions = ! value?.length;\n\n\t\t// Trim only now we've determined whether or not it originally had a \"length\"\n\t\t// (even if that value was all whitespace).\n\t\tvalue = value.trim();\n\n\t\t// Allow a suggestions request if:\n\t\t// - there are at least 2 characters in the search input (except manual searches where\n\t\t// search input length is not required to trigger a fetch)\n\t\t// - this is a direct entry (eg: a URL)\n\t\tif (\n\t\t\t! isInitialSuggestions &&\n\t\t\t( value.length < 2 || ( ! handleURLSuggestions && isURL( value ) ) )\n\t\t) {\n\t\t\tthis.suggestionsRequest?.cancel?.();\n\t\t\tthis.suggestionsRequest = null;\n\n\t\t\tthis.setState( {\n\t\t\t\tsuggestions: [],\n\t\t\t\tshowSuggestions: false,\n\t\t\t\tsuggestionsValue: value,\n\t\t\t\tselectedSuggestion: null,\n\t\t\t\tloading: false,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setState( {\n\t\t\tselectedSuggestion: null,\n\t\t\tloading: true,\n\t\t} );\n\n\t\tconst request = fetchLinkSuggestions( value, {\n\t\t\tisInitialSuggestions,\n\t\t} );\n\n\t\trequest\n\t\t\t.then( ( suggestions ) => {\n\t\t\t\t// A fetch Promise doesn't have an abort option. It's mimicked by\n\t\t\t\t// comparing the request reference in on the instance, which is\n\t\t\t\t// reset or deleted on subsequent requests or unmounting.\n\t\t\t\tif ( this.suggestionsRequest !== request ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.setState( {\n\t\t\t\t\tsuggestions,\n\t\t\t\t\tsuggestionsValue: value,\n\t\t\t\t\tloading: false,\n\t\t\t\t\tshowSuggestions: !! suggestions.length,\n\t\t\t\t} );\n\n\t\t\t\tif ( !! suggestions.length ) {\n\t\t\t\t\tthis.props.debouncedSpeak(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t/* translators: %s: number of results. */\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'%d result found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\t\t'%d results found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\t\tsuggestions.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tsuggestions.length\n\t\t\t\t\t\t),\n\t\t\t\t\t\t'assertive'\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthis.props.debouncedSpeak(\n\t\t\t\t\t\t__( 'No results.' ),\n\t\t\t\t\t\t'assertive'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( () => {\n\t\t\t\tif ( this.suggestionsRequest !== request ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.setState( {\n\t\t\t\t\tloading: false,\n\t\t\t\t} );\n\t\t\t} )\n\t\t\t.finally( () => {\n\t\t\t\t// If this is the current promise then reset the reference\n\t\t\t\t// to allow for checking if a new request is made.\n\t\t\t\tif ( this.suggestionsRequest === request ) {\n\t\t\t\t\tthis.suggestionsRequest = null;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t// Note that this assignment is handled *before* the async search request\n\t\t// as a Promise always resolves on the next tick of the event loop.\n\t\tthis.suggestionsRequest = request;\n\t}\n\n\tonChange( event ) {\n\t\tthis.props.onChange( event.target.value );\n\t}\n\n\tonFocus() {\n\t\tconst { suggestions } = this.state;\n\t\tconst { disableSuggestions, value } = this.props;\n\n\t\t// When opening the link editor, if there's a value present, we want to load the suggestions pane with the results for this input search value\n\t\t// Don't re-run the suggestions on focus if there are already suggestions present (prevents searching again when tabbing between the input and buttons)\n\t\t// or there is already a request in progress.\n\t\tif (\n\t\t\tvalue &&\n\t\t\t! disableSuggestions &&\n\t\t\t! ( suggestions && suggestions.length ) &&\n\t\t\tthis.suggestionsRequest === null\n\t\t) {\n\t\t\t// Ensure the suggestions are updated with the current input value.\n\t\t\tthis.updateSuggestions( value );\n\t\t}\n\t}\n\n\tonKeyDown( event ) {\n\t\tthis.props.onKeyDown?.( event );\n\t\tconst { showSuggestions, selectedSuggestion, suggestions, loading } =\n\t\t\tthis.state;\n\n\t\t// If the suggestions are not shown or loading, we shouldn't handle the arrow keys\n\t\t// We shouldn't preventDefault to allow block arrow keys navigation.\n\t\tif ( ! showSuggestions || ! suggestions.length || loading ) {\n\t\t\t// In the Windows version of Firefox the up and down arrows don't move the caret\n\t\t\t// within an input field like they do for Mac Firefox/Chrome/Safari. This causes\n\t\t\t// a form of focus trapping that is disruptive to the user experience. This disruption\n\t\t\t// only happens if the caret is not in the first or last position in the text input.\n\t\t\t// See: https://github.com/WordPress/gutenberg/issues/5693#issuecomment-436684747\n\t\t\tswitch ( event.keyCode ) {\n\t\t\t\t// When UP is pressed, if the caret is at the start of the text, move it to the 0\n\t\t\t\t// position.\n\t\t\t\tcase UP: {\n\t\t\t\t\tif ( 0 !== event.target.selectionStart ) {\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Set the input caret to position 0.\n\t\t\t\t\t\tevent.target.setSelectionRange( 0, 0 );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\t// When DOWN is pressed, if the caret is not at the end of the text, move it to the\n\t\t\t\t// last position.\n\t\t\t\tcase DOWN: {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.props.value.length !== event.target.selectionStart\n\t\t\t\t\t) {\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Set the input caret to the last position.\n\t\t\t\t\t\tevent.target.setSelectionRange(\n\t\t\t\t\t\t\tthis.props.value.length,\n\t\t\t\t\t\t\tthis.props.value.length\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\t// Submitting while loading should trigger onSubmit.\n\t\t\t\tcase ENTER: {\n\t\t\t\t\tif ( this.props.onSubmit ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tthis.props.onSubmit( null, event );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst suggestion =\n\t\t\tthis.state.suggestions[ this.state.selectedSuggestion ];\n\n\t\tswitch ( event.keyCode ) {\n\t\t\tcase UP: {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst previousIndex = ! selectedSuggestion\n\t\t\t\t\t? suggestions.length - 1\n\t\t\t\t\t: selectedSuggestion - 1;\n\t\t\t\tthis.setState( {\n\t\t\t\t\tselectedSuggestion: previousIndex,\n\t\t\t\t} );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase DOWN: {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst nextIndex =\n\t\t\t\t\tselectedSuggestion === null ||\n\t\t\t\t\tselectedSuggestion === suggestions.length - 1\n\t\t\t\t\t\t? 0\n\t\t\t\t\t\t: selectedSuggestion + 1;\n\t\t\t\tthis.setState( {\n\t\t\t\t\tselectedSuggestion: nextIndex,\n\t\t\t\t} );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TAB: {\n\t\t\t\tif ( this.state.selectedSuggestion !== null ) {\n\t\t\t\t\tthis.selectLink( suggestion );\n\t\t\t\t\t// Announce a link has been selected when tabbing away from the input field.\n\t\t\t\t\tthis.props.speak( __( 'Link selected.' ) );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase ENTER: {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif ( this.state.selectedSuggestion !== null ) {\n\t\t\t\t\tthis.selectLink( suggestion );\n\n\t\t\t\t\tif ( this.props.onSubmit ) {\n\t\t\t\t\t\tthis.props.onSubmit( suggestion, event );\n\t\t\t\t\t}\n\t\t\t\t} else if ( this.props.onSubmit ) {\n\t\t\t\t\tthis.props.onSubmit( null, event );\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tselectLink( suggestion ) {\n\t\tthis.props.onChange( suggestion.url, suggestion );\n\t\tthis.setState( {\n\t\t\tselectedSuggestion: null,\n\t\t\tshowSuggestions: false,\n\t\t} );\n\t}\n\n\thandleOnClick( suggestion ) {\n\t\tthis.selectLink( suggestion );\n\t\t// Move focus to the input field when a link suggestion is clicked.\n\t\tthis.inputRef.current.focus();\n\t}\n\n\tstatic getDerivedStateFromProps(\n\t\t{\n\t\t\tvalue,\n\t\t\tinstanceId,\n\t\t\tdisableSuggestions,\n\t\t\t__experimentalShowInitialSuggestions = false,\n\t\t},\n\t\t{ showSuggestions }\n\t) {\n\t\tlet shouldShowSuggestions = showSuggestions;\n\n\t\tconst hasValue = value && value.length;\n\n\t\tif ( ! __experimentalShowInitialSuggestions && ! hasValue ) {\n\t\t\tshouldShowSuggestions = false;\n\t\t}\n\n\t\tif ( disableSuggestions === true ) {\n\t\t\tshouldShowSuggestions = false;\n\t\t}\n\n\t\treturn {\n\t\t\tshowSuggestions: shouldShowSuggestions,\n\t\t\tsuggestionsListboxId: `block-editor-url-input-suggestions-${ instanceId }`,\n\t\t\tsuggestionOptionIdPrefix: `block-editor-url-input-suggestion-${ instanceId }`,\n\t\t};\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ this.renderControl() }\n\t\t\t\t{ this.renderSuggestions() }\n\t\t\t</>\n\t\t);\n\t}\n\n\trenderControl() {\n\t\tconst {\n\t\t\tlabel = null,\n\t\t\tclassName,\n\t\t\tisFullWidth,\n\t\t\tinstanceId,\n\t\t\tplaceholder = __( 'Paste URL or type to search' ),\n\t\t\t__experimentalRenderControl: renderControl,\n\t\t\tvalue = '',\n\t\t\thideLabelFromVision = false,\n\t\t} = this.props;\n\n\t\tconst {\n\t\t\tloading,\n\t\t\tshowSuggestions,\n\t\t\tselectedSuggestion,\n\t\t\tsuggestionsListboxId,\n\t\t\tsuggestionOptionIdPrefix,\n\t\t} = this.state;\n\n\t\tconst inputId = `url-input-control-${ instanceId }`;\n\n\t\tconst controlProps = {\n\t\t\tid: inputId, // Passes attribute to label for the for attribute\n\t\t\tlabel,\n\t\t\tclassName: clsx( 'block-editor-url-input', className, {\n\t\t\t\t'is-full-width': isFullWidth,\n\t\t\t} ),\n\t\t\thideLabelFromVision,\n\t\t};\n\n\t\tconst inputProps = {\n\t\t\tid: inputId,\n\t\t\tvalue,\n\t\t\trequired: true,\n\t\t\tclassName: 'block-editor-url-input__input',\n\t\t\ttype: 'text',\n\t\t\tonChange: this.onChange,\n\t\t\tonFocus: this.onFocus,\n\t\t\tplaceholder,\n\t\t\tonKeyDown: this.onKeyDown,\n\t\t\trole: 'combobox',\n\t\t\t'aria-label': label ? undefined : __( 'URL' ), // Ensure input always has an accessible label\n\t\t\t'aria-expanded': showSuggestions,\n\t\t\t'aria-autocomplete': 'list',\n\t\t\t'aria-owns': suggestionsListboxId,\n\t\t\t'aria-activedescendant':\n\t\t\t\tselectedSuggestion !== null\n\t\t\t\t\t? `${ suggestionOptionIdPrefix }-${ selectedSuggestion }`\n\t\t\t\t\t: undefined,\n\t\t\tref: this.inputRef,\n\t\t};\n\n\t\tif ( renderControl ) {\n\t\t\treturn renderControl( controlProps, inputProps, loading );\n\t\t}\n\n\t\treturn (\n\t\t\t<BaseControl __nextHasNoMarginBottom { ...controlProps }>\n\t\t\t\t<input { ...inputProps } />\n\t\t\t\t{ loading && <Spinner /> }\n\t\t\t</BaseControl>\n\t\t);\n\t}\n\n\trenderSuggestions() {\n\t\tconst {\n\t\t\tclassName,\n\t\t\t__experimentalRenderSuggestions: renderSuggestions,\n\t\t} = this.props;\n\n\t\tconst {\n\t\t\tshowSuggestions,\n\t\t\tsuggestions,\n\t\t\tsuggestionsValue,\n\t\t\tselectedSuggestion,\n\t\t\tsuggestionsListboxId,\n\t\t\tsuggestionOptionIdPrefix,\n\t\t\tloading,\n\t\t} = this.state;\n\n\t\tif ( ! showSuggestions || suggestions.length === 0 ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst suggestionsListProps = {\n\t\t\tid: suggestionsListboxId,\n\t\t\tref: this.autocompleteRef,\n\t\t\trole: 'listbox',\n\t\t};\n\n\t\tconst buildSuggestionItemProps = ( suggestion, index ) => {\n\t\t\treturn {\n\t\t\t\trole: 'option',\n\t\t\t\ttabIndex: '-1',\n\t\t\t\tid: `${ suggestionOptionIdPrefix }-${ index }`,\n\t\t\t\tref: this.bindSuggestionNode( index ),\n\t\t\t\t'aria-selected':\n\t\t\t\t\tindex === selectedSuggestion ? true : undefined,\n\t\t\t};\n\t\t};\n\n\t\tif ( isFunction( renderSuggestions ) ) {\n\t\t\treturn renderSuggestions( {\n\t\t\t\tsuggestions,\n\t\t\t\tselectedSuggestion,\n\t\t\t\tsuggestionsListProps,\n\t\t\t\tbuildSuggestionItemProps,\n\t\t\t\tisLoading: loading,\n\t\t\t\thandleSuggestionClick: this.handleOnClick,\n\t\t\t\tisInitialSuggestions: ! suggestionsValue?.length,\n\t\t\t\tcurrentInputValue: suggestionsValue,\n\t\t\t} );\n\t\t}\n\n\t\treturn (\n\t\t\t<Popover placement=\"bottom\" focusOnMount={ false }>\n\t\t\t\t<div\n\t\t\t\t\t{ ...suggestionsListProps }\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'block-editor-url-input__suggestions',\n\t\t\t\t\t\t`${ className }__suggestions`\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ suggestions.map( ( suggestion, index ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\t\t{ ...buildSuggestionItemProps( suggestion, index ) }\n\t\t\t\t\t\t\tkey={ suggestion.id }\n\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t'block-editor-url-input__suggestion',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'is-selected': index === selectedSuggestion,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ () => this.handleOnClick( suggestion ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ suggestion.title }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) ) }\n\t\t\t\t</div>\n\t\t\t</Popover>\n\t\t);\n\t}\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-input/README.md\n */\nexport default compose(\n\twithSafeTimeout,\n\twithSpokenMessages,\n\twithInstanceId,\n\twithSelect( ( select, props ) => {\n\t\t// If a link suggestions handler is already provided then\n\t\t// bail.\n\t\tif ( isFunction( props.__experimentalFetchLinkSuggestions ) ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\t__experimentalFetchLinkSuggestions:\n\t\t\t\tgetSettings().__experimentalFetchLinkSuggestions,\n\t\t};\n\t} )\n)( URLInput );\n"],"mappings":"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","ignoreList":[]}
@@ -183,6 +183,20 @@ export function isDropTargetValid(getBlockType, allowedBlocks, draggedBlockNames
183
183
  return areBlocksAllowed && targetMatchesDraggedBlockParents;
184
184
  }
185
185
 
186
+ /**
187
+ * Checks if the given element is an insertion point.
188
+ *
189
+ * @param {EventTarget|null} targetToCheck - The element to check.
190
+ * @param {Document} ownerDocument - The owner document of the element.
191
+ * @return {boolean} True if the element is a insertion point, false otherwise.
192
+ */
193
+ function isInsertionPoint(targetToCheck, ownerDocument) {
194
+ const {
195
+ defaultView
196
+ } = ownerDocument;
197
+ return !!(defaultView && targetToCheck instanceof defaultView.HTMLElement && targetToCheck.dataset.isInsertionPoint);
198
+ }
199
+
186
200
  /**
187
201
  * @typedef {Object} WPBlockDropZoneConfig
188
202
  * @property {?HTMLElement} dropZoneElement Optional element to be used as the drop zone.
@@ -224,8 +238,8 @@ export default function useBlockDropZone({
224
238
  getAllowedBlocks,
225
239
  isDragging,
226
240
  isGroupable,
227
- getSettings,
228
- isZoomOutMode
241
+ isZoomOutMode,
242
+ getSectionRootClientId
229
243
  } = unlock(useSelect(blockEditorStore));
230
244
  const {
231
245
  showInsertionPoint,
@@ -250,9 +264,7 @@ export default function useBlockDropZone({
250
264
  if (!isBlockDroppingAllowed) {
251
265
  return;
252
266
  }
253
- const {
254
- sectionRootClientId
255
- } = unlock(getSettings());
267
+ const sectionRootClientId = getSectionRootClientId();
256
268
 
257
269
  // In Zoom Out mode, if the target is not the section root provided by settings then
258
270
  // do not allow dropping as the drop target is not within the root (that which is
@@ -294,6 +306,9 @@ export default function useBlockDropZone({
294
306
  rootBlockIndex: getBlockIndex(targetRootClientId)
295
307
  });
296
308
  const [targetIndex, operation, nearestSide] = dropTargetPosition;
309
+ if (isZoomOutMode() && operation !== 'insert') {
310
+ return;
311
+ }
297
312
  if (operation === 'group') {
298
313
  const targetBlock = blocks[targetIndex];
299
314
  const areAllImages = [targetBlock.name, ...draggedBlockNames].every(name => name === 'core/image');
@@ -327,7 +342,7 @@ export default function useBlockDropZone({
327
342
  nearestSide
328
343
  });
329
344
  });
330
- }, [isDragging, getAllowedBlocks, targetRootClientId, getBlockNamesByClientId, getDraggedBlockClientIds, getBlockType, getBlocks, getBlockListSettings, dropZoneElement, parentBlockClientId, getBlockIndex, registry, startDragging, showInsertionPoint, canInsertBlockType, isGroupable, getBlockVariations, getGroupingBlockName, getSettings, isZoomOutMode]), 200);
345
+ }, [isDragging, getAllowedBlocks, targetRootClientId, getBlockNamesByClientId, getDraggedBlockClientIds, getBlockType, getSectionRootClientId, isZoomOutMode, getBlocks, getBlockListSettings, dropZoneElement, parentBlockClientId, getBlockIndex, registry, startDragging, showInsertionPoint, canInsertBlockType, isGroupable, getBlockVariations, getGroupingBlockName]), 200);
331
346
  return useDropZone({
332
347
  dropZoneElement,
333
348
  isDisabled,
@@ -338,7 +353,16 @@ export default function useBlockDropZone({
338
353
  // https://developer.mozilla.org/en-US/docs/Web/API/Event/currentTarget
339
354
  throttled(event, event.currentTarget.ownerDocument);
340
355
  },
341
- onDragLeave() {
356
+ onDragLeave(event) {
357
+ const {
358
+ ownerDocument
359
+ } = event.currentTarget;
360
+
361
+ // If the drag event is leaving the drop zone and entering an insertion point,
362
+ // do not hide the insertion point as it is conceptually within the dropzone.
363
+ if (isInsertionPoint(event.relatedTarget, ownerDocument) || isInsertionPoint(event.target, ownerDocument)) {
364
+ return;
365
+ }
342
366
  throttled.cancel();
343
367
  hideInsertionPoint();
344
368
  },