@wordpress/block-editor 14.0.0 → 14.2.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 (807) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +10 -24
  3. package/build/autocompleters/block.js +1 -1
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/block-alignment-matrix-control/index.js +2 -2
  6. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  7. package/build/components/block-breadcrumb/index.js +8 -2
  8. package/build/components/block-breadcrumb/index.js.map +1 -1
  9. package/build/components/block-canvas/index.js +8 -1
  10. package/build/components/block-canvas/index.js.map +1 -1
  11. package/build/components/block-compare/block-view.js +4 -1
  12. package/build/components/block-compare/block-view.js.map +1 -1
  13. package/build/components/block-draggable/index.js +4 -4
  14. package/build/components/block-draggable/index.js.map +1 -1
  15. package/build/components/block-draggable/use-scroll-when-dragging.js +25 -25
  16. package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  17. package/build/components/block-edit/multiple-usage-warning.js +8 -2
  18. package/build/components/block-edit/multiple-usage-warning.js.map +1 -1
  19. package/build/components/block-inspector/index.js +27 -9
  20. package/build/components/block-inspector/index.js.map +1 -1
  21. package/build/components/block-list/block-invalid-warning.js +6 -3
  22. package/build/components/block-list/block-invalid-warning.js.map +1 -1
  23. package/build/components/block-list/block.js +5 -1
  24. package/build/components/block-list/block.js.map +1 -1
  25. package/build/components/block-list/use-block-props/index.js +7 -3
  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 +46 -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/use-in-between-inserter.js +11 -4
  32. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  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 +4 -1
  36. package/build/components/block-mover/button.js.map +1 -1
  37. package/build/components/block-mover/index.js +4 -1
  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 +1 -4
  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 +11 -14
  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/block-mode-toggle.js +28 -34
  54. package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  55. package/build/components/block-settings-menu-controls/index.js +4 -0
  56. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  57. package/build/components/block-switcher/index.js +22 -17
  58. package/build/components/block-switcher/index.js.map +1 -1
  59. package/build/components/block-switcher/pattern-transformations-menu.js +1 -4
  60. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  61. package/build/components/block-toolbar/index.js +12 -11
  62. package/build/components/block-toolbar/index.js.map +1 -1
  63. package/build/components/block-toolbar/shuffle.js +6 -2
  64. package/build/components/block-toolbar/shuffle.js.map +1 -1
  65. package/build/components/block-tools/block-selection-button.js +8 -2
  66. package/build/components/block-tools/block-selection-button.js.map +1 -1
  67. package/build/components/block-tools/block-toolbar-popover.js +10 -6
  68. package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
  69. package/build/components/block-tools/insertion-point.js +14 -3
  70. package/build/components/block-tools/insertion-point.js.map +1 -1
  71. package/build/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  72. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  73. package/build/components/block-tools/use-show-block-tools.js +2 -1
  74. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  75. package/build/components/block-tools/zoom-out-mode-inserters.js +4 -5
  76. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  77. package/build/components/block-tools/zoom-out-popover.js +3 -4
  78. package/build/components/block-tools/zoom-out-popover.js.map +1 -1
  79. package/build/components/block-tools/zoom-out-toolbar.js +14 -5
  80. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
  81. package/build/components/block-variation-picker/index.js +4 -1
  82. package/build/components/block-variation-picker/index.js.map +1 -1
  83. package/build/components/block-variation-transforms/index.js +4 -1
  84. package/build/components/block-variation-transforms/index.js.map +1 -1
  85. package/build/components/border-radius-control/index.js +1 -0
  86. package/build/components/border-radius-control/index.js.map +1 -1
  87. package/build/components/button-block-appender/index.js +14 -3
  88. package/build/components/button-block-appender/index.js.map +1 -1
  89. package/build/components/colors-gradients/dropdown.js +4 -1
  90. package/build/components/colors-gradients/dropdown.js.map +1 -1
  91. package/build/components/content-lock/index.js +13 -0
  92. package/build/components/content-lock/index.js.map +1 -0
  93. package/build/components/content-lock/modify-content-lock-menu-item.js +64 -0
  94. package/build/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
  95. package/build/components/convert-to-group-buttons/index.js +1 -1
  96. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  97. package/build/components/date-format-picker/index.js +2 -0
  98. package/build/components/date-format-picker/index.js.map +1 -1
  99. package/build/components/editor-styles/index.js +4 -3
  100. package/build/components/editor-styles/index.js.map +1 -1
  101. package/build/components/font-appearance-control/index.js +3 -0
  102. package/build/components/font-appearance-control/index.js.map +1 -1
  103. package/build/components/font-family/index.js +3 -0
  104. package/build/components/font-family/index.js.map +1 -1
  105. package/build/components/global-styles/background-panel.js +118 -50
  106. package/build/components/global-styles/background-panel.js.map +1 -1
  107. package/build/components/global-styles/color-panel.js +8 -5
  108. package/build/components/global-styles/color-panel.js.map +1 -1
  109. package/build/components/global-styles/color-panel.native.js +1 -1
  110. package/build/components/global-styles/color-panel.native.js.map +1 -1
  111. package/build/components/global-styles/dimensions-panel.js +34 -37
  112. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  113. package/build/components/global-styles/filters-panel.js +4 -1
  114. package/build/components/global-styles/filters-panel.js.map +1 -1
  115. package/build/components/global-styles/get-global-styles-changes.js +3 -1
  116. package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
  117. package/build/components/global-styles/hooks.js +0 -7
  118. package/build/components/global-styles/hooks.js.map +1 -1
  119. package/build/components/global-styles/index.js +0 -6
  120. package/build/components/global-styles/index.js.map +1 -1
  121. package/build/components/global-styles/shadow-panel-components.js +13 -7
  122. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  123. package/build/components/global-styles/typography-utils.js +17 -6
  124. package/build/components/global-styles/typography-utils.js.map +1 -1
  125. package/build/components/global-styles/use-global-styles-output.js +3 -3
  126. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  127. package/build/components/global-styles/utils.js +11 -29
  128. package/build/components/global-styles/utils.js.map +1 -1
  129. package/build/components/grid/grid-item-movers.js +2 -2
  130. package/build/components/grid/grid-item-movers.js.map +1 -1
  131. package/build/components/grid/grid-visualizer.js +20 -5
  132. package/build/components/grid/grid-visualizer.js.map +1 -1
  133. package/build/components/height-control/index.js +1 -0
  134. package/build/components/height-control/index.js.map +1 -1
  135. package/build/components/iframe/index.js +8 -6
  136. package/build/components/iframe/index.js.map +1 -1
  137. package/build/components/image-editor/zoom-dropdown.js +11 -7
  138. package/build/components/image-editor/zoom-dropdown.js.map +1 -1
  139. package/build/components/inner-blocks/button-block-appender.js +8 -8
  140. package/build/components/inner-blocks/button-block-appender.js.map +1 -1
  141. package/build/components/inner-blocks/default-block-appender.js +7 -25
  142. package/build/components/inner-blocks/default-block-appender.js.map +1 -1
  143. package/build/components/inner-blocks/index.js +8 -12
  144. package/build/components/inner-blocks/index.js.map +1 -1
  145. package/build/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  146. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  147. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
  148. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  149. package/build/components/inserter/block-patterns-tab/index.js +4 -1
  150. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  151. package/build/components/inserter/media-tab/hooks.js +3 -3
  152. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  153. package/build/components/inserter/media-tab/media-list.js +1 -4
  154. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  155. package/build/components/inserter/media-tab/media-preview.js +8 -2
  156. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  157. package/build/components/inserter/media-tab/media-tab.js +4 -1
  158. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  159. package/build/components/inserter/menu.js +14 -13
  160. package/build/components/inserter/menu.js.map +1 -1
  161. package/build/components/inserter/quick-inserter.js +8 -1
  162. package/build/components/inserter/quick-inserter.js.map +1 -1
  163. package/build/components/inserter-list-item/index.js +4 -4
  164. package/build/components/inserter-list-item/index.js.map +1 -1
  165. package/build/components/inserter-listbox/index.js +3 -7
  166. package/build/components/inserter-listbox/index.js.map +1 -1
  167. package/build/components/inserter-listbox/item.js +4 -1
  168. package/build/components/inserter-listbox/item.js.map +1 -1
  169. package/build/components/inspector-controls/groups.js +2 -0
  170. package/build/components/inspector-controls/groups.js.map +1 -1
  171. package/build/components/inspector-controls-tabs/index.js +4 -1
  172. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  173. package/build/components/inspector-controls-tabs/settings-tab.js +3 -1
  174. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  175. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
  176. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  177. package/build/components/inspector-popover-header/index.js +8 -2
  178. package/build/components/inspector-popover-header/index.js.map +1 -1
  179. package/build/components/letter-spacing-control/index.js +7 -4
  180. package/build/components/letter-spacing-control/index.js.map +1 -1
  181. package/build/components/line-height-control/index.js +3 -0
  182. package/build/components/line-height-control/index.js.map +1 -1
  183. package/build/components/link-control/index.js +19 -10
  184. package/build/components/link-control/index.js.map +1 -1
  185. package/build/components/link-control/settings-drawer.js +4 -1
  186. package/build/components/link-control/settings-drawer.js.map +1 -1
  187. package/build/components/list-view/block-select-button.js +4 -1
  188. package/build/components/list-view/block-select-button.js.map +1 -1
  189. package/build/components/media-placeholder/index.js +36 -10
  190. package/build/components/media-placeholder/index.js.map +1 -1
  191. package/build/components/media-replace-flow/index.js +8 -1
  192. package/build/components/media-replace-flow/index.js.map +1 -1
  193. package/build/components/media-upload/index.native.js +4 -1
  194. package/build/components/media-upload/index.native.js.map +1 -1
  195. package/build/components/multi-selection-inspector/index.js +12 -12
  196. package/build/components/multi-selection-inspector/index.js.map +1 -1
  197. package/build/components/provider/use-block-sync.js +19 -19
  198. package/build/components/provider/use-block-sync.js.map +1 -1
  199. package/build/components/rich-text/event-listeners/paste-handler.js +12 -1
  200. package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  201. package/build/components/rich-text/index.js +38 -30
  202. package/build/components/rich-text/index.js.map +1 -1
  203. package/build/components/rich-text/use-mark-persistent.js +5 -5
  204. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  205. package/build/components/skip-to-selected-block/index.js +4 -1
  206. package/build/components/skip-to-selected-block/index.js.map +1 -1
  207. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
  208. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  209. package/build/components/text-alignment-control/index.js +13 -8
  210. package/build/components/text-alignment-control/index.js.map +1 -1
  211. package/build/components/text-decoration-control/index.js +13 -8
  212. package/build/components/text-decoration-control/index.js.map +1 -1
  213. package/build/components/text-transform-control/index.js +13 -8
  214. package/build/components/text-transform-control/index.js.map +1 -1
  215. package/build/components/tool-selector/index.js +4 -1
  216. package/build/components/tool-selector/index.js.map +1 -1
  217. package/build/components/url-input/button.js +12 -3
  218. package/build/components/url-input/button.js.map +1 -1
  219. package/build/components/url-input/index.js +4 -1
  220. package/build/components/url-input/index.js.map +1 -1
  221. package/build/components/url-popover/image-url-input-ui.js +2 -0
  222. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  223. package/build/components/use-block-drop-zone/index.js +12 -2
  224. package/build/components/use-block-drop-zone/index.js.map +1 -1
  225. package/build/components/writing-flow/index.js +2 -1
  226. package/build/components/writing-flow/index.js.map +1 -1
  227. package/build/components/writing-flow/use-arrow-nav.js +4 -1
  228. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  229. package/build/components/writing-flow/use-event-redirect.js +66 -0
  230. package/build/components/writing-flow/use-event-redirect.js.map +1 -0
  231. package/build/components/writing-flow/use-input.js +31 -1
  232. package/build/components/writing-flow/use-input.js.map +1 -1
  233. package/build/components/writing-flow/use-select-all.js +14 -1
  234. package/build/components/writing-flow/use-select-all.js.map +1 -1
  235. package/build/components/writing-flow/use-selection-observer.js +20 -6
  236. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  237. package/build/components/writing-flow/use-tab-nav.js +4 -4
  238. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  239. package/build/components/writing-flow/utils.js +27 -0
  240. package/build/components/writing-flow/utils.js.map +1 -1
  241. package/build/components/writing-mode-control/index.js +13 -8
  242. package/build/components/writing-mode-control/index.js.map +1 -1
  243. package/build/hooks/background.js +19 -23
  244. package/build/hooks/background.js.map +1 -1
  245. package/build/hooks/block-bindings.js +64 -103
  246. package/build/hooks/block-bindings.js.map +1 -1
  247. package/build/hooks/content-lock-ui.js +8 -26
  248. package/build/hooks/content-lock-ui.js.map +1 -1
  249. package/build/hooks/duotone.js +0 -4
  250. package/build/hooks/duotone.js.map +1 -1
  251. package/build/hooks/layout.js +4 -1
  252. package/build/hooks/layout.js.map +1 -1
  253. package/build/hooks/spacing-visualizer.js +3 -3
  254. package/build/hooks/spacing-visualizer.js.map +1 -1
  255. package/build/hooks/style.js +1 -5
  256. package/build/hooks/style.js.map +1 -1
  257. package/build/hooks/use-bindings-attributes.js +19 -20
  258. package/build/hooks/use-bindings-attributes.js.map +1 -1
  259. package/build/hooks/use-zoom-out.js +7 -7
  260. package/build/hooks/use-zoom-out.js.map +1 -1
  261. package/build/layouts/constrained.js +42 -41
  262. package/build/layouts/constrained.js.map +1 -1
  263. package/build/layouts/flex.js +6 -1
  264. package/build/layouts/flex.js.map +1 -1
  265. package/build/layouts/grid.js +3 -0
  266. package/build/layouts/grid.js.map +1 -1
  267. package/build/layouts/utils.js +1 -7
  268. package/build/layouts/utils.js.map +1 -1
  269. package/build/private-apis.js +4 -1
  270. package/build/private-apis.js.map +1 -1
  271. package/build/store/actions.js +2 -7
  272. package/build/store/actions.js.map +1 -1
  273. package/build/store/private-actions.js +1 -0
  274. package/build/store/private-actions.js.map +1 -1
  275. package/build/store/private-keys.js +2 -1
  276. package/build/store/private-keys.js.map +1 -1
  277. package/build/store/private-selectors.js +39 -11
  278. package/build/store/private-selectors.js.map +1 -1
  279. package/build/store/reducer.js +2 -0
  280. package/build/store/reducer.js.map +1 -1
  281. package/build/store/selectors.js +19 -43
  282. package/build/store/selectors.js.map +1 -1
  283. package/build/store/utils.js +48 -0
  284. package/build/store/utils.js.map +1 -1
  285. package/build/utils/block-bindings.js +117 -0
  286. package/build/utils/block-bindings.js.map +1 -0
  287. package/build/utils/dom.js +101 -0
  288. package/build/utils/dom.js.map +1 -1
  289. package/build/utils/get-font-styles-and-weights.js +4 -4
  290. package/build/utils/get-font-styles-and-weights.js.map +1 -1
  291. package/build/utils/transform-styles/index.js +120 -16
  292. package/build/utils/transform-styles/index.js.map +1 -1
  293. package/build-module/autocompleters/block.js +1 -1
  294. package/build-module/autocompleters/block.js.map +1 -1
  295. package/build-module/components/block-alignment-matrix-control/index.js +1 -1
  296. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  297. package/build-module/components/block-breadcrumb/index.js +8 -2
  298. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  299. package/build-module/components/block-canvas/index.js +9 -1
  300. package/build-module/components/block-canvas/index.js.map +1 -1
  301. package/build-module/components/block-compare/block-view.js +4 -1
  302. package/build-module/components/block-compare/block-view.js.map +1 -1
  303. package/build-module/components/block-draggable/index.js +4 -4
  304. package/build-module/components/block-draggable/index.js.map +1 -1
  305. package/build-module/components/block-draggable/use-scroll-when-dragging.js +25 -25
  306. package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  307. package/build-module/components/block-edit/multiple-usage-warning.js +8 -2
  308. package/build-module/components/block-edit/multiple-usage-warning.js.map +1 -1
  309. package/build-module/components/block-inspector/index.js +27 -9
  310. package/build-module/components/block-inspector/index.js.map +1 -1
  311. package/build-module/components/block-list/block-invalid-warning.js +6 -3
  312. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  313. package/build-module/components/block-list/block.js +5 -1
  314. package/build-module/components/block-list/block.js.map +1 -1
  315. package/build-module/components/block-list/use-block-props/index.js +7 -3
  316. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  317. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  318. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  319. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +40 -0
  320. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
  321. package/build-module/components/block-list/use-in-between-inserter.js +11 -4
  322. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  323. package/build-module/components/block-lock/toolbar.js +3 -3
  324. package/build-module/components/block-lock/toolbar.js.map +1 -1
  325. package/build-module/components/block-mover/button.js +4 -1
  326. package/build-module/components/block-mover/button.js.map +1 -1
  327. package/build-module/components/block-mover/index.js +4 -1
  328. package/build-module/components/block-mover/index.js.map +1 -1
  329. package/build-module/components/block-navigation/dropdown.js +4 -1
  330. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  331. package/build-module/components/block-pattern-setup/index.js +1 -4
  332. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  333. package/build-module/components/block-pattern-setup/setup-toolbar.js +23 -8
  334. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  335. package/build-module/components/block-patterns-list/index.js +11 -14
  336. package/build-module/components/block-patterns-list/index.js.map +1 -1
  337. package/build-module/components/block-patterns-paging/index.js +12 -3
  338. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  339. package/build-module/components/block-popover/index.js +2 -15
  340. package/build-module/components/block-popover/index.js.map +1 -1
  341. package/build-module/components/block-quick-navigation/index.js +4 -1
  342. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  343. package/build-module/components/block-settings-menu/block-mode-toggle.js +29 -34
  344. package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  345. package/build-module/components/block-settings-menu-controls/index.js +4 -0
  346. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  347. package/build-module/components/block-switcher/index.js +22 -17
  348. package/build-module/components/block-switcher/index.js.map +1 -1
  349. package/build-module/components/block-switcher/pattern-transformations-menu.js +1 -4
  350. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  351. package/build-module/components/block-toolbar/index.js +12 -11
  352. package/build-module/components/block-toolbar/index.js.map +1 -1
  353. package/build-module/components/block-toolbar/shuffle.js +6 -2
  354. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  355. package/build-module/components/block-tools/block-selection-button.js +8 -2
  356. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  357. package/build-module/components/block-tools/block-toolbar-popover.js +10 -6
  358. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
  359. package/build-module/components/block-tools/insertion-point.js +14 -3
  360. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  361. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  362. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  363. package/build-module/components/block-tools/use-show-block-tools.js +2 -1
  364. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  365. package/build-module/components/block-tools/zoom-out-mode-inserters.js +4 -5
  366. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  367. package/build-module/components/block-tools/zoom-out-popover.js +3 -4
  368. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -1
  369. package/build-module/components/block-tools/zoom-out-toolbar.js +15 -6
  370. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  371. package/build-module/components/block-variation-picker/index.js +4 -1
  372. package/build-module/components/block-variation-picker/index.js.map +1 -1
  373. package/build-module/components/block-variation-transforms/index.js +4 -1
  374. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  375. package/build-module/components/border-radius-control/index.js +1 -0
  376. package/build-module/components/border-radius-control/index.js.map +1 -1
  377. package/build-module/components/button-block-appender/index.js +15 -4
  378. package/build-module/components/button-block-appender/index.js.map +1 -1
  379. package/build-module/components/colors-gradients/dropdown.js +4 -1
  380. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  381. package/build-module/components/content-lock/index.js +2 -0
  382. package/build-module/components/content-lock/index.js.map +1 -0
  383. package/build-module/components/content-lock/modify-content-lock-menu-item.js +57 -0
  384. package/build-module/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
  385. package/build-module/components/convert-to-group-buttons/index.js +1 -1
  386. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  387. package/build-module/components/date-format-picker/index.js +2 -0
  388. package/build-module/components/date-format-picker/index.js.map +1 -1
  389. package/build-module/components/editor-styles/index.js +4 -3
  390. package/build-module/components/editor-styles/index.js.map +1 -1
  391. package/build-module/components/font-appearance-control/index.js +3 -0
  392. package/build-module/components/font-appearance-control/index.js.map +1 -1
  393. package/build-module/components/font-family/index.js +3 -0
  394. package/build-module/components/font-family/index.js.map +1 -1
  395. package/build-module/components/global-styles/background-panel.js +121 -53
  396. package/build-module/components/global-styles/background-panel.js.map +1 -1
  397. package/build-module/components/global-styles/color-panel.js +7 -4
  398. package/build-module/components/global-styles/color-panel.js.map +1 -1
  399. package/build-module/components/global-styles/color-panel.native.js +2 -2
  400. package/build-module/components/global-styles/color-panel.native.js.map +1 -1
  401. package/build-module/components/global-styles/dimensions-panel.js +36 -39
  402. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  403. package/build-module/components/global-styles/filters-panel.js +4 -1
  404. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  405. package/build-module/components/global-styles/get-global-styles-changes.js +3 -1
  406. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  407. package/build-module/components/global-styles/hooks.js +0 -6
  408. package/build-module/components/global-styles/hooks.js.map +1 -1
  409. package/build-module/components/global-styles/index.js +1 -1
  410. package/build-module/components/global-styles/index.js.map +1 -1
  411. package/build-module/components/global-styles/shadow-panel-components.js +13 -7
  412. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  413. package/build-module/components/global-styles/typography-utils.js +17 -6
  414. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  415. package/build-module/components/global-styles/use-global-styles-output.js +5 -5
  416. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  417. package/build-module/components/global-styles/utils.js +11 -28
  418. package/build-module/components/global-styles/utils.js.map +1 -1
  419. package/build-module/components/grid/grid-item-movers.js +3 -3
  420. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  421. package/build-module/components/grid/grid-visualizer.js +20 -5
  422. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  423. package/build-module/components/height-control/index.js +1 -0
  424. package/build-module/components/height-control/index.js.map +1 -1
  425. package/build-module/components/iframe/index.js +8 -6
  426. package/build-module/components/iframe/index.js.map +1 -1
  427. package/build-module/components/image-editor/zoom-dropdown.js +12 -8
  428. package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
  429. package/build-module/components/inner-blocks/button-block-appender.js +7 -6
  430. package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
  431. package/build-module/components/inner-blocks/default-block-appender.js +6 -23
  432. package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
  433. package/build-module/components/inner-blocks/index.js +8 -12
  434. package/build-module/components/inner-blocks/index.js.map +1 -1
  435. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  436. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  437. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
  438. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  439. package/build-module/components/inserter/block-patterns-tab/index.js +4 -1
  440. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  441. package/build-module/components/inserter/media-tab/hooks.js +3 -3
  442. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  443. package/build-module/components/inserter/media-tab/media-list.js +1 -4
  444. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  445. package/build-module/components/inserter/media-tab/media-preview.js +8 -2
  446. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  447. package/build-module/components/inserter/media-tab/media-tab.js +4 -1
  448. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  449. package/build-module/components/inserter/menu.js +14 -13
  450. package/build-module/components/inserter/menu.js.map +1 -1
  451. package/build-module/components/inserter/quick-inserter.js +9 -2
  452. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  453. package/build-module/components/inserter-list-item/index.js +4 -4
  454. package/build-module/components/inserter-list-item/index.js.map +1 -1
  455. package/build-module/components/inserter-listbox/index.js +3 -7
  456. package/build-module/components/inserter-listbox/index.js.map +1 -1
  457. package/build-module/components/inserter-listbox/item.js +4 -1
  458. package/build-module/components/inserter-listbox/item.js.map +1 -1
  459. package/build-module/components/inspector-controls/groups.js +2 -0
  460. package/build-module/components/inspector-controls/groups.js.map +1 -1
  461. package/build-module/components/inspector-controls-tabs/index.js +4 -1
  462. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  463. package/build-module/components/inspector-controls-tabs/settings-tab.js +3 -1
  464. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  465. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
  466. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  467. package/build-module/components/inspector-popover-header/index.js +8 -2
  468. package/build-module/components/inspector-popover-header/index.js.map +1 -1
  469. package/build-module/components/letter-spacing-control/index.js +7 -4
  470. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  471. package/build-module/components/line-height-control/index.js +3 -0
  472. package/build-module/components/line-height-control/index.js.map +1 -1
  473. package/build-module/components/link-control/index.js +19 -10
  474. package/build-module/components/link-control/index.js.map +1 -1
  475. package/build-module/components/link-control/settings-drawer.js +4 -1
  476. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  477. package/build-module/components/list-view/block-select-button.js +4 -1
  478. package/build-module/components/list-view/block-select-button.js.map +1 -1
  479. package/build-module/components/media-placeholder/index.js +36 -10
  480. package/build-module/components/media-placeholder/index.js.map +1 -1
  481. package/build-module/components/media-replace-flow/index.js +8 -1
  482. package/build-module/components/media-replace-flow/index.js.map +1 -1
  483. package/build-module/components/media-upload/index.native.js +4 -1
  484. package/build-module/components/media-upload/index.native.js.map +1 -1
  485. package/build-module/components/multi-selection-inspector/index.js +12 -12
  486. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  487. package/build-module/components/provider/use-block-sync.js +19 -19
  488. package/build-module/components/provider/use-block-sync.js.map +1 -1
  489. package/build-module/components/rich-text/event-listeners/paste-handler.js +12 -1
  490. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  491. package/build-module/components/rich-text/index.js +39 -31
  492. package/build-module/components/rich-text/index.js.map +1 -1
  493. package/build-module/components/rich-text/use-mark-persistent.js +5 -5
  494. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  495. package/build-module/components/skip-to-selected-block/index.js +4 -1
  496. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  497. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
  498. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  499. package/build-module/components/text-alignment-control/index.js +13 -8
  500. package/build-module/components/text-alignment-control/index.js.map +1 -1
  501. package/build-module/components/text-decoration-control/index.js +13 -8
  502. package/build-module/components/text-decoration-control/index.js.map +1 -1
  503. package/build-module/components/text-transform-control/index.js +13 -8
  504. package/build-module/components/text-transform-control/index.js.map +1 -1
  505. package/build-module/components/tool-selector/index.js +4 -1
  506. package/build-module/components/tool-selector/index.js.map +1 -1
  507. package/build-module/components/url-input/button.js +12 -3
  508. package/build-module/components/url-input/button.js.map +1 -1
  509. package/build-module/components/url-input/index.js +4 -1
  510. package/build-module/components/url-input/index.js.map +1 -1
  511. package/build-module/components/url-popover/image-url-input-ui.js +2 -0
  512. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  513. package/build-module/components/use-block-drop-zone/index.js +12 -2
  514. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  515. package/build-module/components/writing-flow/index.js +2 -1
  516. package/build-module/components/writing-flow/index.js.map +1 -1
  517. package/build-module/components/writing-flow/use-arrow-nav.js +4 -1
  518. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  519. package/build-module/components/writing-flow/use-event-redirect.js +60 -0
  520. package/build-module/components/writing-flow/use-event-redirect.js.map +1 -0
  521. package/build-module/components/writing-flow/use-input.js +31 -1
  522. package/build-module/components/writing-flow/use-input.js.map +1 -1
  523. package/build-module/components/writing-flow/use-select-all.js +14 -1
  524. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  525. package/build-module/components/writing-flow/use-selection-observer.js +16 -2
  526. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  527. package/build-module/components/writing-flow/use-tab-nav.js +4 -4
  528. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  529. package/build-module/components/writing-flow/utils.js +26 -0
  530. package/build-module/components/writing-flow/utils.js.map +1 -1
  531. package/build-module/components/writing-mode-control/index.js +13 -8
  532. package/build-module/components/writing-mode-control/index.js.map +1 -1
  533. package/build-module/hooks/background.js +19 -23
  534. package/build-module/hooks/background.js.map +1 -1
  535. package/build-module/hooks/block-bindings.js +66 -105
  536. package/build-module/hooks/block-bindings.js.map +1 -1
  537. package/build-module/hooks/content-lock-ui.js +10 -30
  538. package/build-module/hooks/content-lock-ui.js.map +1 -1
  539. package/build-module/hooks/duotone.js +0 -4
  540. package/build-module/hooks/duotone.js.map +1 -1
  541. package/build-module/hooks/layout.js +4 -1
  542. package/build-module/hooks/layout.js.map +1 -1
  543. package/build-module/hooks/spacing-visualizer.js +3 -3
  544. package/build-module/hooks/spacing-visualizer.js.map +1 -1
  545. package/build-module/hooks/style.js +1 -5
  546. package/build-module/hooks/style.js.map +1 -1
  547. package/build-module/hooks/use-bindings-attributes.js +19 -20
  548. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  549. package/build-module/hooks/use-zoom-out.js +7 -7
  550. package/build-module/hooks/use-zoom-out.js.map +1 -1
  551. package/build-module/layouts/constrained.js +44 -43
  552. package/build-module/layouts/constrained.js.map +1 -1
  553. package/build-module/layouts/flex.js +6 -1
  554. package/build-module/layouts/flex.js.map +1 -1
  555. package/build-module/layouts/grid.js +3 -0
  556. package/build-module/layouts/grid.js.map +1 -1
  557. package/build-module/layouts/utils.js +1 -7
  558. package/build-module/layouts/utils.js.map +1 -1
  559. package/build-module/private-apis.js +5 -2
  560. package/build-module/private-apis.js.map +1 -1
  561. package/build-module/store/actions.js +2 -7
  562. package/build-module/store/actions.js.map +1 -1
  563. package/build-module/store/private-actions.js +1 -0
  564. package/build-module/store/private-actions.js.map +1 -1
  565. package/build-module/store/private-keys.js +1 -0
  566. package/build-module/store/private-keys.js.map +1 -1
  567. package/build-module/store/private-selectors.js +36 -12
  568. package/build-module/store/private-selectors.js.map +1 -1
  569. package/build-module/store/reducer.js +2 -0
  570. package/build-module/store/reducer.js.map +1 -1
  571. package/build-module/store/selectors.js +22 -46
  572. package/build-module/store/selectors.js.map +1 -1
  573. package/build-module/store/utils.js +46 -0
  574. package/build-module/store/utils.js.map +1 -1
  575. package/build-module/utils/block-bindings.js +110 -0
  576. package/build-module/utils/block-bindings.js.map +1 -0
  577. package/build-module/utils/dom.js +99 -0
  578. package/build-module/utils/dom.js.map +1 -1
  579. package/build-module/utils/get-font-styles-and-weights.js +4 -4
  580. package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
  581. package/build-module/utils/transform-styles/index.js +120 -16
  582. package/build-module/utils/transform-styles/index.js.map +1 -1
  583. package/build-style/content-rtl.css +9 -25
  584. package/build-style/content.css +9 -25
  585. package/build-style/default-editor-styles-rtl.css +2 -2
  586. package/build-style/default-editor-styles.css +2 -2
  587. package/build-style/style-rtl.css +53 -76
  588. package/build-style/style.css +53 -76
  589. package/build-types/utils/dom.d.ts +25 -0
  590. package/build-types/utils/dom.d.ts.map +1 -1
  591. package/package.json +34 -32
  592. package/src/autocompleters/block.js +2 -1
  593. package/src/components/block-alignment-matrix-control/index.js +1 -1
  594. package/src/components/block-breadcrumb/index.js +4 -0
  595. package/src/components/block-breadcrumb/style.scss +1 -1
  596. package/src/components/block-canvas/index.js +9 -1
  597. package/src/components/block-compare/block-view.js +7 -1
  598. package/src/components/block-draggable/content.scss +1 -1
  599. package/src/components/block-draggable/index.js +4 -4
  600. package/src/components/block-draggable/style.scss +1 -1
  601. package/src/components/block-draggable/use-scroll-when-dragging.js +25 -25
  602. package/src/components/block-edit/multiple-usage-warning.js +4 -0
  603. package/src/components/block-inspector/index.js +22 -6
  604. package/src/components/block-list/block-invalid-warning.js +4 -2
  605. package/src/components/block-list/block.js +6 -2
  606. package/src/components/block-list/content.scss +7 -16
  607. package/src/components/block-list/use-block-props/index.js +5 -2
  608. package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  609. package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +44 -0
  610. package/src/components/block-list/use-in-between-inserter.js +17 -5
  611. package/src/components/block-lock/style.scss +1 -1
  612. package/src/components/block-lock/toolbar.js +3 -3
  613. package/src/components/block-mover/button.js +2 -0
  614. package/src/components/block-mover/index.js +2 -0
  615. package/src/components/block-mover/style.scss +1 -1
  616. package/src/components/block-navigation/dropdown.js +2 -0
  617. package/src/components/block-pattern-setup/index.js +3 -7
  618. package/src/components/block-pattern-setup/setup-toolbar.js +17 -4
  619. package/src/components/block-pattern-setup/style.scss +2 -2
  620. package/src/components/block-patterns-list/index.js +15 -13
  621. package/src/components/block-patterns-list/style.scss +2 -2
  622. package/src/components/block-patterns-paging/index.js +6 -0
  623. package/src/components/block-popover/index.js +7 -28
  624. package/src/components/block-popover/style.scss +1 -1
  625. package/src/components/block-quick-navigation/index.js +2 -0
  626. package/src/components/block-settings-menu/block-mode-toggle.js +28 -31
  627. package/src/components/block-settings-menu/test/block-mode-toggle.js +26 -23
  628. package/src/components/block-settings-menu-controls/index.js +7 -1
  629. package/src/components/block-switcher/index.js +26 -20
  630. package/src/components/block-switcher/pattern-transformations-menu.js +3 -7
  631. package/src/components/block-switcher/style.scss +5 -6
  632. package/src/components/block-toolbar/index.js +17 -8
  633. package/src/components/block-toolbar/shuffle.js +9 -7
  634. package/src/components/block-tools/block-selection-button.js +4 -0
  635. package/src/components/block-tools/block-toolbar-popover.js +10 -6
  636. package/src/components/block-tools/insertion-point.js +11 -0
  637. package/src/components/block-tools/style.scss +4 -5
  638. package/src/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  639. package/src/components/block-tools/use-show-block-tools.js +4 -1
  640. package/src/components/block-tools/zoom-out-mode-inserters.js +5 -2
  641. package/src/components/block-tools/zoom-out-popover.js +3 -7
  642. package/src/components/block-tools/zoom-out-toolbar.js +20 -6
  643. package/src/components/block-variation-picker/README.md +2 -2
  644. package/src/components/block-variation-picker/index.js +6 -1
  645. package/src/components/block-variation-transforms/index.js +2 -0
  646. package/src/components/block-variation-transforms/style.scss +2 -2
  647. package/src/components/border-radius-control/index.js +1 -0
  648. package/src/components/border-radius-control/style.scss +0 -10
  649. package/src/components/button-block-appender/content.scss +0 -1
  650. package/src/components/button-block-appender/index.js +14 -3
  651. package/src/components/color-palette/test/control.js +15 -2
  652. package/src/components/colors-gradients/dropdown.js +5 -1
  653. package/src/components/colors-gradients/style.scss +4 -4
  654. package/src/components/content-lock/index.js +1 -0
  655. package/src/components/content-lock/modify-content-lock-menu-item.js +58 -0
  656. package/src/components/convert-to-group-buttons/index.js +1 -1
  657. package/src/components/date-format-picker/index.js +2 -0
  658. package/src/components/default-block-appender/content.scss +0 -1
  659. package/src/components/editor-styles/index.js +4 -3
  660. package/src/components/font-appearance-control/index.js +3 -0
  661. package/src/components/font-family/README.md +11 -2
  662. package/src/components/font-family/index.js +3 -0
  663. package/src/components/global-styles/background-panel.js +135 -64
  664. package/src/components/global-styles/color-panel.js +8 -4
  665. package/src/components/global-styles/color-panel.native.js +2 -2
  666. package/src/components/global-styles/dimensions-panel.js +40 -40
  667. package/src/components/global-styles/filters-panel.js +5 -1
  668. package/src/components/global-styles/get-global-styles-changes.js +4 -1
  669. package/src/components/global-styles/hooks.js +0 -5
  670. package/src/components/global-styles/index.js +0 -1
  671. package/src/components/global-styles/shadow-panel-components.js +12 -8
  672. package/src/components/global-styles/style.scss +16 -6
  673. package/src/components/global-styles/test/typography-utils.js +96 -5
  674. package/src/components/global-styles/test/use-global-styles-output.js +20 -4
  675. package/src/components/global-styles/test/utils.js +10 -0
  676. package/src/components/global-styles/typography-utils.js +22 -6
  677. package/src/components/global-styles/use-global-styles-output.js +5 -6
  678. package/src/components/global-styles/utils.js +11 -35
  679. package/src/components/grid/grid-item-movers.js +3 -3
  680. package/src/components/grid/grid-visualizer.js +22 -7
  681. package/src/components/grid/style.scss +1 -1
  682. package/src/components/height-control/index.js +1 -0
  683. package/src/components/iframe/index.js +8 -6
  684. package/src/components/image-editor/zoom-dropdown.js +17 -9
  685. package/src/components/inner-blocks/button-block-appender.js +5 -7
  686. package/src/components/inner-blocks/default-block-appender.js +4 -23
  687. package/src/components/inner-blocks/index.js +11 -10
  688. package/src/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  689. package/src/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +2 -0
  690. package/src/components/inserter/block-patterns-tab/index.js +2 -0
  691. package/src/components/inserter/media-tab/hooks.js +3 -3
  692. package/src/components/inserter/media-tab/media-list.js +1 -4
  693. package/src/components/inserter/media-tab/media-preview.js +12 -2
  694. package/src/components/inserter/media-tab/media-tab.js +2 -0
  695. package/src/components/inserter/menu.js +13 -22
  696. package/src/components/inserter/quick-inserter.js +6 -1
  697. package/src/components/inserter/style.scss +7 -9
  698. package/src/components/inserter-list-item/index.js +4 -4
  699. package/src/components/inserter-list-item/style.scss +2 -3
  700. package/src/components/inserter-listbox/index.js +2 -8
  701. package/src/components/inserter-listbox/item.js +9 -1
  702. package/src/components/inspector-controls/groups.js +2 -0
  703. package/src/components/inspector-controls-tabs/index.js +2 -0
  704. package/src/components/inspector-controls-tabs/settings-tab.js +1 -0
  705. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +5 -2
  706. package/src/components/inspector-popover-header/index.js +4 -0
  707. package/src/components/letter-spacing-control/README.md +8 -1
  708. package/src/components/letter-spacing-control/index.js +7 -4
  709. package/src/components/line-height-control/README.md +7 -0
  710. package/src/components/line-height-control/index.js +3 -0
  711. package/src/components/link-control/index.js +17 -8
  712. package/src/components/link-control/settings-drawer.js +2 -0
  713. package/src/components/link-control/style.scss +2 -4
  714. package/src/components/list-view/block-select-button.js +2 -0
  715. package/src/components/list-view/style.scss +14 -16
  716. package/src/components/media-placeholder/index.js +26 -7
  717. package/src/components/media-replace-flow/index.js +12 -1
  718. package/src/components/media-upload/README.md +2 -0
  719. package/src/components/media-upload/index.native.js +2 -0
  720. package/src/components/multi-selection-inspector/index.js +8 -9
  721. package/src/components/provider/use-block-sync.js +20 -20
  722. package/src/components/responsive-block-control/README.md +3 -26
  723. package/src/components/responsive-block-control/test/index.js +1 -0
  724. package/src/components/rich-text/content.scss +1 -1
  725. package/src/components/rich-text/event-listeners/paste-handler.js +6 -1
  726. package/src/components/rich-text/index.js +54 -41
  727. package/src/components/rich-text/style.scss +1 -1
  728. package/src/components/rich-text/use-mark-persistent.js +5 -5
  729. package/src/components/skip-to-selected-block/index.js +2 -0
  730. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +8 -4
  731. package/src/components/spacing-sizes-control/style.scss +17 -16
  732. package/src/components/text-alignment-control/index.js +20 -8
  733. package/src/components/text-decoration-control/index.js +20 -8
  734. package/src/components/text-decoration-control/stories/index.story.js +0 -4
  735. package/src/components/text-transform-control/index.js +20 -8
  736. package/src/components/text-transform-control/stories/index.story.js +0 -4
  737. package/src/components/tool-selector/index.js +2 -0
  738. package/src/components/url-input/button.js +6 -0
  739. package/src/components/url-input/index.js +2 -0
  740. package/src/components/url-input/style.scss +2 -2
  741. package/src/components/url-popover/image-url-input-ui.js +2 -0
  742. package/src/components/url-popover/stories/index.story.js +7 -1
  743. package/src/components/use-block-drop-zone/index.js +21 -3
  744. package/src/components/warning/content.scss +3 -10
  745. package/src/components/writing-flow/index.js +2 -0
  746. package/src/components/writing-flow/use-arrow-nav.js +9 -2
  747. package/src/components/writing-flow/use-event-redirect.js +72 -0
  748. package/src/components/writing-flow/use-input.js +36 -1
  749. package/src/components/writing-flow/use-select-all.js +18 -1
  750. package/src/components/writing-flow/use-selection-observer.js +23 -3
  751. package/src/components/writing-flow/use-tab-nav.js +4 -4
  752. package/src/components/writing-flow/utils.js +30 -0
  753. package/src/components/writing-mode-control/index.js +20 -8
  754. package/src/hooks/background.js +21 -27
  755. package/src/hooks/block-bindings.js +64 -122
  756. package/src/hooks/block-bindings.scss +2 -10
  757. package/src/hooks/content-lock-ui.js +11 -36
  758. package/src/hooks/duotone.js +0 -4
  759. package/src/hooks/layout.js +2 -0
  760. package/src/hooks/layout.scss +3 -11
  761. package/src/hooks/spacing-visualizer.js +3 -3
  762. package/src/hooks/style.js +1 -4
  763. package/src/hooks/test/background.js +60 -0
  764. package/src/hooks/use-bindings-attributes.js +23 -24
  765. package/src/hooks/use-zoom-out.js +7 -7
  766. package/src/layouts/constrained.js +51 -47
  767. package/src/layouts/flex.js +4 -0
  768. package/src/layouts/grid.js +3 -0
  769. package/src/layouts/test/grid.js +2 -2
  770. package/src/layouts/test/utils.js +6 -8
  771. package/src/layouts/utils.js +1 -9
  772. package/src/private-apis.js +4 -0
  773. package/src/store/actions.js +4 -6
  774. package/src/store/private-actions.js +1 -0
  775. package/src/store/private-keys.js +1 -0
  776. package/src/store/private-selectors.js +44 -7
  777. package/src/store/reducer.js +2 -0
  778. package/src/store/selectors.js +32 -51
  779. package/src/store/test/private-selectors.js +89 -0
  780. package/src/store/utils.js +50 -0
  781. package/src/style.scss +0 -1
  782. package/src/utils/block-bindings.js +97 -0
  783. package/src/utils/dom.js +117 -0
  784. package/src/utils/get-font-styles-and-weights.js +12 -4
  785. package/src/utils/test/get-font-styles-and-weights.js +148 -0
  786. package/src/utils/test/transform-styles.js +284 -26
  787. package/src/utils/transform-styles/index.js +132 -21
  788. package/tsconfig.json +1 -0
  789. package/tsconfig.tsbuildinfo +1 -1
  790. package/build/components/global-styles/theme-file-uri-utils.js +0 -21
  791. package/build/components/global-styles/theme-file-uri-utils.js.map +0 -1
  792. package/build/components/inner-blocks/with-client-id.js +0 -28
  793. package/build/components/inner-blocks/with-client-id.js.map +0 -1
  794. package/build/components/segmented-text-control/index.js +0 -63
  795. package/build/components/segmented-text-control/index.js.map +0 -1
  796. package/build-module/components/global-styles/theme-file-uri-utils.js +0 -15
  797. package/build-module/components/global-styles/theme-file-uri-utils.js.map +0 -1
  798. package/build-module/components/inner-blocks/with-client-id.js +0 -21
  799. package/build-module/components/inner-blocks/with-client-id.js.map +0 -1
  800. package/build-module/components/segmented-text-control/index.js +0 -58
  801. package/build-module/components/segmented-text-control/index.js.map +0 -1
  802. package/src/components/global-styles/test/theme-file-uri-utils.js +0 -41
  803. package/src/components/global-styles/theme-file-uri-utils.js +0 -18
  804. package/src/components/inner-blocks/with-client-id.js +0 -19
  805. package/src/components/segmented-text-control/index.js +0 -63
  806. package/src/components/segmented-text-control/style.scss +0 -15
  807. package/src/utils/test/__snapshots__/transform-styles.js.snap +0 -109
@@ -3,8 +3,8 @@
3
3
  */
4
4
  import { __ } from '@wordpress/i18n';
5
5
  import { privateApis as blocksPrivateApis } from '@wordpress/blocks';
6
- import { __experimentalItemGroup as ItemGroup, __experimentalItem as Item, __experimentalText as Text, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalTruncate as Truncate, __experimentalVStack as VStack, privateApis as componentsPrivateApis } from '@wordpress/components';
7
- import { useSelect, useDispatch, useRegistry } from '@wordpress/data';
6
+ import { __experimentalItemGroup as ItemGroup, __experimentalItem as Item, __experimentalText as Text, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalVStack as VStack, privateApis as componentsPrivateApis } from '@wordpress/components';
7
+ import { useRegistry, useSelect } from '@wordpress/data';
8
8
  import { useContext, Fragment } from '@wordpress/element';
9
9
  import { useViewportMatch } from '@wordpress/compose';
10
10
 
@@ -12,20 +12,16 @@ import { useViewportMatch } from '@wordpress/compose';
12
12
  * Internal dependencies
13
13
  */
14
14
  import { canBindAttribute, getBindableAttributes } from '../hooks/use-bindings-attributes';
15
- import { store as blockEditorStore } from '../store';
16
15
  import { unlock } from '../lock-unlock';
17
16
  import InspectorControls from '../components/inspector-controls';
18
17
  import BlockContext from '../components/block-context';
18
+ import { useBlockBindingsUtils } from '../utils/block-bindings';
19
+ import { store as blockEditorStore } from '../store';
19
20
  import { jsx as _jsx } from "react/jsx-runtime";
20
21
  import { jsxs as _jsxs } from "react/jsx-runtime";
21
22
  import { Fragment as _Fragment } from "react/jsx-runtime";
22
23
  const {
23
- DropdownMenuV2: DropdownMenu,
24
- DropdownMenuGroupV2: DropdownMenuGroup,
25
- DropdownMenuRadioItemV2: DropdownMenuRadioItem,
26
- DropdownMenuItemLabelV2: DropdownMenuItemLabel,
27
- DropdownMenuItemHelpTextV2: DropdownMenuItemHelpText,
28
- DropdownMenuSeparatorV2: DropdownMenuSeparator
24
+ DropdownMenuV2
29
25
  } = unlock(componentsPrivateApis);
30
26
  const useToolsPanelDropdownMenuProps = () => {
31
27
  const isMobile = useViewportMatch('medium', '<');
@@ -39,33 +35,42 @@ const useToolsPanelDropdownMenuProps = () => {
39
35
  };
40
36
  function BlockBindingsPanelDropdown({
41
37
  fieldsList,
42
- addConnection,
43
38
  attribute,
44
39
  binding
45
40
  }) {
41
+ const {
42
+ getBlockBindingsSources
43
+ } = unlock(blocksPrivateApis);
44
+ const registeredSources = getBlockBindingsSources();
45
+ const {
46
+ updateBlockBindings
47
+ } = useBlockBindingsUtils();
46
48
  const currentKey = binding?.args?.key;
47
49
  return /*#__PURE__*/_jsx(_Fragment, {
48
- children: Object.entries(fieldsList).map(([label, fields], i) => /*#__PURE__*/_jsxs(Fragment, {
49
- children: [/*#__PURE__*/_jsxs(DropdownMenuGroup, {
50
- children: [Object.keys(fieldsList).length > 1 && /*#__PURE__*/_jsx(Text, {
51
- className: "block-editor-bindings__source-label",
52
- upperCase: true,
53
- variant: "muted",
54
- "aria-hidden": true,
55
- children: label
56
- }), Object.entries(fields).map(([key, value]) => /*#__PURE__*/_jsxs(DropdownMenuRadioItem, {
57
- onChange: () => addConnection(key, attribute),
50
+ children: Object.entries(fieldsList).map(([name, fields], i) => /*#__PURE__*/_jsxs(Fragment, {
51
+ children: [/*#__PURE__*/_jsxs(DropdownMenuV2.Group, {
52
+ children: [Object.keys(fieldsList).length > 1 && /*#__PURE__*/_jsx(DropdownMenuV2.GroupLabel, {
53
+ children: registeredSources[name].label
54
+ }), Object.entries(fields).map(([key, value]) => /*#__PURE__*/_jsxs(DropdownMenuV2.RadioItem, {
55
+ onChange: () => updateBlockBindings({
56
+ [attribute]: {
57
+ source: name,
58
+ args: {
59
+ key
60
+ }
61
+ }
62
+ }),
58
63
  name: attribute + '-binding',
59
64
  value: key,
60
65
  checked: key === currentKey,
61
- children: [/*#__PURE__*/_jsx(DropdownMenuItemLabel, {
66
+ children: [/*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {
62
67
  children: key
63
- }), /*#__PURE__*/_jsx(DropdownMenuItemHelpText, {
68
+ }), /*#__PURE__*/_jsx(DropdownMenuV2.ItemHelpText, {
64
69
  children: value
65
70
  })]
66
71
  }, key))]
67
- }), i !== Object.keys(fieldsList).length - 1 && /*#__PURE__*/_jsx(DropdownMenuSeparator, {})]
68
- }, label))
72
+ }), i !== Object.keys(fieldsList).length - 1 && /*#__PURE__*/_jsx(DropdownMenuV2.Separator, {})]
73
+ }, name))
69
74
  });
70
75
  }
71
76
  function BlockBindingsAttribute({
@@ -77,15 +82,17 @@ function BlockBindingsAttribute({
77
82
  args
78
83
  } = binding || {};
79
84
  const sourceProps = unlock(blocksPrivateApis).getBlockBindingsSource(sourceName);
85
+ const isSourceInvalid = !sourceProps;
80
86
  return /*#__PURE__*/_jsxs(VStack, {
81
- children: [/*#__PURE__*/_jsx(Truncate, {
87
+ className: "block-editor-bindings__item",
88
+ children: [/*#__PURE__*/_jsx(Text, {
89
+ truncate: true,
82
90
  children: attribute
83
91
  }), !!binding && /*#__PURE__*/_jsx(Text, {
84
- variant: "muted",
85
- className: "block-editor-bindings__item-explanation",
86
- children: /*#__PURE__*/_jsx(Truncate, {
87
- children: args?.key || sourceProps?.label || sourceName
88
- })
92
+ truncate: true,
93
+ variant: !isSourceInvalid && 'muted',
94
+ isDestructive: isSourceInvalid,
95
+ children: isSourceInvalid ? __('Invalid source') : args?.key || sourceProps?.label || sourceName
89
96
  })]
90
97
  });
91
98
  }
@@ -104,10 +111,11 @@ function ReadOnlyBlockBindingsPanelItems({
104
111
  function EditableBlockBindingsPanelItems({
105
112
  attributes,
106
113
  bindings,
107
- fieldsList,
108
- addConnection,
109
- removeConnection
114
+ fieldsList
110
115
  }) {
116
+ const {
117
+ updateBlockBindings
118
+ } = useBlockBindingsUtils();
111
119
  const isMobile = useViewportMatch('medium', '<');
112
120
  return /*#__PURE__*/_jsx(_Fragment, {
113
121
  children: attributes.map(attribute => {
@@ -116,12 +124,13 @@ function EditableBlockBindingsPanelItems({
116
124
  hasValue: () => !!binding,
117
125
  label: attribute,
118
126
  onDeselect: () => {
119
- removeConnection(attribute);
127
+ updateBlockBindings({
128
+ [attribute]: undefined
129
+ });
120
130
  },
121
- children: /*#__PURE__*/_jsx(DropdownMenu, {
131
+ children: /*#__PURE__*/_jsx(DropdownMenuV2, {
122
132
  placement: isMobile ? 'bottom-start' : 'left-start',
123
133
  gutter: isMobile ? 8 : 36,
124
- className: "block-editor-bindings__popover",
125
134
  trigger: /*#__PURE__*/_jsx(Item, {
126
135
  children: /*#__PURE__*/_jsx(BlockBindingsAttribute, {
127
136
  attribute: attribute,
@@ -130,7 +139,6 @@ function EditableBlockBindingsPanelItems({
130
139
  }),
131
140
  children: /*#__PURE__*/_jsx(BlockBindingsPanelDropdown, {
132
141
  fieldsList: fieldsList,
133
- addConnection: addConnection,
134
142
  attribute: attribute,
135
143
  binding: binding
136
144
  })
@@ -140,7 +148,7 @@ function EditableBlockBindingsPanelItems({
140
148
  });
141
149
  }
142
150
  export const BlockBindingsPanel = ({
143
- name,
151
+ name: blockName,
144
152
  metadata
145
153
  }) => {
146
154
  const registry = useRegistry();
@@ -148,86 +156,38 @@ export const BlockBindingsPanel = ({
148
156
  const {
149
157
  bindings
150
158
  } = metadata || {};
151
- const bindableAttributes = getBindableAttributes(name);
159
+ const {
160
+ removeAllBlockBindings
161
+ } = useBlockBindingsUtils();
162
+ const bindableAttributes = getBindableAttributes(blockName);
152
163
  const dropdownMenuProps = useToolsPanelDropdownMenuProps();
153
164
  const filteredBindings = {
154
165
  ...bindings
155
166
  };
156
167
  Object.keys(filteredBindings).forEach(key => {
157
- if (!canBindAttribute(name, key) || filteredBindings[key].source === 'core/pattern-overrides') {
168
+ if (!canBindAttribute(blockName, key) || filteredBindings[key].source === 'core/pattern-overrides') {
158
169
  delete filteredBindings[key];
159
170
  }
160
171
  });
161
172
  const {
162
- updateBlockAttributes
163
- } = useDispatch(blockEditorStore);
164
- const {
165
- _id
173
+ canUpdateBlockBindings
166
174
  } = useSelect(select => {
167
- const {
168
- getSelectedBlockClientId
169
- } = select(blockEditorStore);
170
175
  return {
171
- _id: getSelectedBlockClientId()
176
+ canUpdateBlockBindings: select(blockEditorStore).getSettings().canUpdateBlockBindings
172
177
  };
173
178
  }, []);
174
179
  if (!bindableAttributes || bindableAttributes.length === 0) {
175
180
  return null;
176
181
  }
177
- const removeAllConnections = () => {
178
- const newMetadata = {
179
- ...metadata
180
- };
181
- delete newMetadata.bindings;
182
- updateBlockAttributes(_id, {
183
- metadata: Object.keys(newMetadata).length === 0 ? undefined : newMetadata
184
- });
185
- };
186
- const addConnection = (value, attribute) => {
187
- // Assuming the block expects a flat structure for its metadata attribute
188
- const newMetadata = {
189
- ...metadata,
190
- // Adjust this according to the actual structure expected by your block
191
- bindings: {
192
- ...metadata?.bindings,
193
- [attribute]: {
194
- source: 'core/post-meta',
195
- args: {
196
- key: value
197
- }
198
- }
199
- }
200
- };
201
- // Update the block's attributes with the new metadata
202
- updateBlockAttributes(_id, {
203
- metadata: newMetadata
204
- });
205
- };
206
- const removeConnection = key => {
207
- const newMetadata = {
208
- ...metadata
209
- };
210
- if (!newMetadata.bindings) {
211
- return;
212
- }
213
- delete newMetadata.bindings[key];
214
- if (Object.keys(newMetadata.bindings).length === 0) {
215
- delete newMetadata.bindings;
216
- }
217
- updateBlockAttributes(_id, {
218
- metadata: Object.keys(newMetadata).length === 0 ? undefined : newMetadata
219
- });
220
- };
221
182
  const fieldsList = {};
222
183
  const {
223
184
  getBlockBindingsSources
224
185
  } = unlock(blocksPrivateApis);
225
186
  const registeredSources = getBlockBindingsSources();
226
- Object.values(registeredSources).forEach(({
187
+ Object.entries(registeredSources).forEach(([sourceName, {
227
188
  getFieldsList,
228
- label,
229
189
  usesContext
230
- }) => {
190
+ }]) => {
231
191
  if (getFieldsList) {
232
192
  // Populate context.
233
193
  const context = {};
@@ -242,7 +202,7 @@ export const BlockBindingsPanel = ({
242
202
  });
243
203
  // Only add source if the list is not empty.
244
204
  if (sourceList) {
245
- fieldsList[label] = {
205
+ fieldsList[sourceName] = {
246
206
  ...sourceList
247
207
  };
248
208
  }
@@ -255,16 +215,17 @@ export const BlockBindingsPanel = ({
255
215
  }
256
216
  });
257
217
 
258
- // Lock the UI when the experiment is not enabled or there are no fields to connect to.
259
- const readOnly = !window.__experimentalBlockBindingsUI || !Object.keys(fieldsList).length;
218
+ // Lock the UI when the user can't update bindings or there are no fields to connect to.
219
+ const readOnly = !canUpdateBlockBindings || !Object.keys(fieldsList).length;
260
220
  if (readOnly && Object.keys(filteredBindings).length === 0) {
261
221
  return null;
262
222
  }
263
223
  return /*#__PURE__*/_jsx(InspectorControls, {
224
+ group: "bindings",
264
225
  children: /*#__PURE__*/_jsxs(ToolsPanel, {
265
226
  label: __('Attributes'),
266
227
  resetAll: () => {
267
- removeAllConnections();
228
+ removeAllBlockBindings();
268
229
  },
269
230
  dropdownMenuProps: dropdownMenuProps,
270
231
  className: "block-editor-bindings__panel",
@@ -276,13 +237,13 @@ export const BlockBindingsPanel = ({
276
237
  }) : /*#__PURE__*/_jsx(EditableBlockBindingsPanelItems, {
277
238
  attributes: bindableAttributes,
278
239
  bindings: filteredBindings,
279
- fieldsList: fieldsList,
280
- addConnection: addConnection,
281
- removeConnection: removeConnection
240
+ fieldsList: fieldsList
241
+ })
242
+ }), /*#__PURE__*/_jsx(ItemGroup, {
243
+ children: /*#__PURE__*/_jsx(Text, {
244
+ variant: "muted",
245
+ children: __('Attributes connected to custom fields or other dynamic data.')
282
246
  })
283
- }), /*#__PURE__*/_jsx(Text, {
284
- variant: "muted",
285
- children: __('Attributes connected to various sources.')
286
247
  })]
287
248
  })
288
249
  });
@@ -1 +1 @@
1
- {"version":3,"names":["__","privateApis","blocksPrivateApis","__experimentalItemGroup","ItemGroup","__experimentalItem","Item","__experimentalText","Text","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalTruncate","Truncate","__experimentalVStack","VStack","componentsPrivateApis","useSelect","useDispatch","useRegistry","useContext","Fragment","useViewportMatch","canBindAttribute","getBindableAttributes","store","blockEditorStore","unlock","InspectorControls","BlockContext","jsx","_jsx","jsxs","_jsxs","_Fragment","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuRadioItemV2","DropdownMenuRadioItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","DropdownMenuItemHelpTextV2","DropdownMenuItemHelpText","DropdownMenuSeparatorV2","DropdownMenuSeparator","useToolsPanelDropdownMenuProps","isMobile","popoverProps","placement","offset","BlockBindingsPanelDropdown","fieldsList","addConnection","attribute","binding","currentKey","args","key","children","Object","entries","map","label","fields","i","keys","length","className","upperCase","variant","value","onChange","name","checked","BlockBindingsAttribute","source","sourceName","sourceProps","getBlockBindingsSource","ReadOnlyBlockBindingsPanelItems","bindings","EditableBlockBindingsPanelItems","attributes","removeConnection","hasValue","onDeselect","gutter","trigger","BlockBindingsPanel","metadata","registry","blockContext","bindableAttributes","dropdownMenuProps","filteredBindings","forEach","updateBlockAttributes","_id","select","getSelectedBlockClientId","removeAllConnections","newMetadata","undefined","getBlockBindingsSources","registeredSources","values","getFieldsList","usesContext","context","sourceList","readOnly","window","__experimentalBlockBindingsUI","resetAll","isBordered","isSeparated","edit","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/block-bindings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalText as Text,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalTruncate as Truncate,\n\t__experimentalVStack as VStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { useContext, Fragment } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tcanBindAttribute,\n\tgetBindableAttributes,\n} from '../hooks/use-bindings-attributes';\nimport { store as blockEditorStore } from '../store';\nimport { unlock } from '../lock-unlock';\nimport InspectorControls from '../components/inspector-controls';\nimport BlockContext from '../components/block-context';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuRadioItemV2: DropdownMenuRadioItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n\tDropdownMenuItemHelpTextV2: DropdownMenuItemHelpText,\n\tDropdownMenuSeparatorV2: DropdownMenuSeparator,\n} = unlock( componentsPrivateApis );\n\nconst useToolsPanelDropdownMenuProps = () => {\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\treturn ! isMobile\n\t\t? {\n\t\t\t\tpopoverProps: {\n\t\t\t\t\tplacement: 'left-start',\n\t\t\t\t\t// For non-mobile, inner sidebar width (248px) - button width (24px) - border (1px) + padding (16px) + spacing (20px)\n\t\t\t\t\toffset: 259,\n\t\t\t\t},\n\t\t }\n\t\t: {};\n};\n\nfunction BlockBindingsPanelDropdown( {\n\tfieldsList,\n\taddConnection,\n\tattribute,\n\tbinding,\n} ) {\n\tconst currentKey = binding?.args?.key;\n\treturn (\n\t\t<>\n\t\t\t{ Object.entries( fieldsList ).map( ( [ label, fields ], i ) => (\n\t\t\t\t<Fragment key={ label }>\n\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t{ Object.keys( fieldsList ).length > 1 && (\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tclassName=\"block-editor-bindings__source-label\"\n\t\t\t\t\t\t\t\tupperCase\n\t\t\t\t\t\t\t\tvariant=\"muted\"\n\t\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ Object.entries( fields ).map( ( [ key, value ] ) => (\n\t\t\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\t\t\tkey={ key }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\taddConnection( key, attribute )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tname={ attribute + '-binding' }\n\t\t\t\t\t\t\t\tvalue={ key }\n\t\t\t\t\t\t\t\tchecked={ key === currentKey }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t{ key }\n\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t<DropdownMenuItemHelpText>\n\t\t\t\t\t\t\t\t\t{ value }\n\t\t\t\t\t\t\t\t</DropdownMenuItemHelpText>\n\t\t\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t\t{ i !== Object.keys( fieldsList ).length - 1 && (\n\t\t\t\t\t\t<DropdownMenuSeparator />\n\t\t\t\t\t) }\n\t\t\t\t</Fragment>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nfunction BlockBindingsAttribute( { attribute, binding } ) {\n\tconst { source: sourceName, args } = binding || {};\n\tconst sourceProps =\n\t\tunlock( blocksPrivateApis ).getBlockBindingsSource( sourceName );\n\treturn (\n\t\t<VStack>\n\t\t\t<Truncate>{ attribute }</Truncate>\n\t\t\t{ !! binding && (\n\t\t\t\t<Text\n\t\t\t\t\tvariant=\"muted\"\n\t\t\t\t\tclassName=\"block-editor-bindings__item-explanation\"\n\t\t\t\t>\n\t\t\t\t\t<Truncate>\n\t\t\t\t\t\t{ args?.key || sourceProps?.label || sourceName }\n\t\t\t\t\t</Truncate>\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nfunction ReadOnlyBlockBindingsPanelItems( { bindings } ) {\n\treturn (\n\t\t<>\n\t\t\t{ Object.entries( bindings ).map( ( [ attribute, binding ] ) => (\n\t\t\t\t<Item key={ attribute }>\n\t\t\t\t\t<BlockBindingsAttribute\n\t\t\t\t\t\tattribute={ attribute }\n\t\t\t\t\t\tbinding={ binding }\n\t\t\t\t\t/>\n\t\t\t\t</Item>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nfunction EditableBlockBindingsPanelItems( {\n\tattributes,\n\tbindings,\n\tfieldsList,\n\taddConnection,\n\tremoveConnection,\n} ) {\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\treturn (\n\t\t<>\n\t\t\t{ attributes.map( ( attribute ) => {\n\t\t\t\tconst binding = bindings[ attribute ];\n\t\t\t\treturn (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tkey={ attribute }\n\t\t\t\t\t\thasValue={ () => !! binding }\n\t\t\t\t\t\tlabel={ attribute }\n\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\tremoveConnection( attribute );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\tplacement={\n\t\t\t\t\t\t\t\tisMobile ? 'bottom-start' : 'left-start'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tgutter={ isMobile ? 8 : 36 }\n\t\t\t\t\t\t\tclassName=\"block-editor-bindings__popover\"\n\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t<Item>\n\t\t\t\t\t\t\t\t\t<BlockBindingsAttribute\n\t\t\t\t\t\t\t\t\t\tattribute={ attribute }\n\t\t\t\t\t\t\t\t\t\tbinding={ binding }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockBindingsPanelDropdown\n\t\t\t\t\t\t\t\tfieldsList={ fieldsList }\n\t\t\t\t\t\t\t\taddConnection={ addConnection }\n\t\t\t\t\t\t\t\tattribute={ attribute }\n\t\t\t\t\t\t\t\tbinding={ binding }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n}\n\nexport const BlockBindingsPanel = ( { name, metadata } ) => {\n\tconst registry = useRegistry();\n\tconst blockContext = useContext( BlockContext );\n\tconst { bindings } = metadata || {};\n\n\tconst bindableAttributes = getBindableAttributes( name );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst filteredBindings = { ...bindings };\n\tObject.keys( filteredBindings ).forEach( ( key ) => {\n\t\tif (\n\t\t\t! canBindAttribute( name, key ) ||\n\t\t\tfilteredBindings[ key ].source === 'core/pattern-overrides'\n\t\t) {\n\t\t\tdelete filteredBindings[ key ];\n\t\t}\n\t} );\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst { _id } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlockClientId } = select( blockEditorStore );\n\n\t\treturn {\n\t\t\t_id: getSelectedBlockClientId(),\n\t\t};\n\t}, [] );\n\n\tif ( ! bindableAttributes || bindableAttributes.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst removeAllConnections = () => {\n\t\tconst newMetadata = { ...metadata };\n\t\tdelete newMetadata.bindings;\n\t\tupdateBlockAttributes( _id, {\n\t\t\tmetadata:\n\t\t\t\tObject.keys( newMetadata ).length === 0\n\t\t\t\t\t? undefined\n\t\t\t\t\t: newMetadata,\n\t\t} );\n\t};\n\n\tconst addConnection = ( value, attribute ) => {\n\t\t// Assuming the block expects a flat structure for its metadata attribute\n\t\tconst newMetadata = {\n\t\t\t...metadata,\n\t\t\t// Adjust this according to the actual structure expected by your block\n\t\t\tbindings: {\n\t\t\t\t...metadata?.bindings,\n\t\t\t\t[ attribute ]: {\n\t\t\t\t\tsource: 'core/post-meta',\n\t\t\t\t\targs: { key: value },\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t\t// Update the block's attributes with the new metadata\n\t\tupdateBlockAttributes( _id, {\n\t\t\tmetadata: newMetadata,\n\t\t} );\n\t};\n\n\tconst removeConnection = ( key ) => {\n\t\tconst newMetadata = { ...metadata };\n\t\tif ( ! newMetadata.bindings ) {\n\t\t\treturn;\n\t\t}\n\n\t\tdelete newMetadata.bindings[ key ];\n\t\tif ( Object.keys( newMetadata.bindings ).length === 0 ) {\n\t\t\tdelete newMetadata.bindings;\n\t\t}\n\t\tupdateBlockAttributes( _id, {\n\t\t\tmetadata:\n\t\t\t\tObject.keys( newMetadata ).length === 0\n\t\t\t\t\t? undefined\n\t\t\t\t\t: newMetadata,\n\t\t} );\n\t};\n\n\tconst fieldsList = {};\n\tconst { getBlockBindingsSources } = unlock( blocksPrivateApis );\n\tconst registeredSources = getBlockBindingsSources();\n\tObject.values( registeredSources ).forEach(\n\t\t( { getFieldsList, label, usesContext } ) => {\n\t\t\tif ( getFieldsList ) {\n\t\t\t\t// Populate context.\n\t\t\t\tconst context = {};\n\t\t\t\tif ( usesContext?.length ) {\n\t\t\t\t\tfor ( const key of usesContext ) {\n\t\t\t\t\t\tcontext[ key ] = blockContext[ key ];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst sourceList = getFieldsList( {\n\t\t\t\t\tregistry,\n\t\t\t\t\tcontext,\n\t\t\t\t} );\n\t\t\t\t// Only add source if the list is not empty.\n\t\t\t\tif ( sourceList ) {\n\t\t\t\t\tfieldsList[ label ] = { ...sourceList };\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t);\n\t// Remove empty sources.\n\tObject.entries( fieldsList ).forEach( ( [ key, value ] ) => {\n\t\tif ( ! Object.keys( value ).length ) {\n\t\t\tdelete fieldsList[ key ];\n\t\t}\n\t} );\n\n\t// Lock the UI when the experiment is not enabled or there are no fields to connect to.\n\tconst readOnly =\n\t\t! window.__experimentalBlockBindingsUI ||\n\t\t! Object.keys( fieldsList ).length;\n\n\tif ( readOnly && Object.keys( filteredBindings ).length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Attributes' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tremoveAllConnections();\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\tclassName=\"block-editor-bindings__panel\"\n\t\t\t>\n\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t{ readOnly ? (\n\t\t\t\t\t\t<ReadOnlyBlockBindingsPanelItems\n\t\t\t\t\t\t\tbindings={ filteredBindings }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<EditableBlockBindingsPanelItems\n\t\t\t\t\t\t\tattributes={ bindableAttributes }\n\t\t\t\t\t\t\tbindings={ filteredBindings }\n\t\t\t\t\t\t\tfieldsList={ fieldsList }\n\t\t\t\t\t\t\taddConnection={ addConnection }\n\t\t\t\t\t\t\tremoveConnection={ removeConnection }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ItemGroup>\n\t\t\t\t<Text variant=\"muted\">\n\t\t\t\t\t{ __( 'Attributes connected to various sources.' ) }\n\t\t\t\t</Text>\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n};\n\nexport default {\n\tedit: BlockBindingsPanel,\n\tattributeKeys: [ 'metadata' ],\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__","privateApis","blocksPrivateApis","__experimentalItemGroup","ItemGroup","__experimentalItem","Item","__experimentalText","Text","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalVStack","VStack","componentsPrivateApis","useRegistry","useSelect","useContext","Fragment","useViewportMatch","canBindAttribute","getBindableAttributes","unlock","InspectorControls","BlockContext","useBlockBindingsUtils","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","_Fragment","DropdownMenuV2","useToolsPanelDropdownMenuProps","isMobile","popoverProps","placement","offset","BlockBindingsPanelDropdown","fieldsList","attribute","binding","getBlockBindingsSources","registeredSources","updateBlockBindings","currentKey","args","key","children","Object","entries","map","name","fields","i","Group","keys","length","GroupLabel","label","value","RadioItem","onChange","source","checked","ItemLabel","ItemHelpText","Separator","BlockBindingsAttribute","sourceName","sourceProps","getBlockBindingsSource","isSourceInvalid","className","truncate","variant","isDestructive","ReadOnlyBlockBindingsPanelItems","bindings","EditableBlockBindingsPanelItems","attributes","hasValue","onDeselect","undefined","gutter","trigger","BlockBindingsPanel","blockName","metadata","registry","blockContext","removeAllBlockBindings","bindableAttributes","dropdownMenuProps","filteredBindings","forEach","canUpdateBlockBindings","select","getSettings","getFieldsList","usesContext","context","sourceList","readOnly","group","resetAll","isBordered","isSeparated","edit","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/block-bindings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalText as Text,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalVStack as VStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useRegistry, useSelect } from '@wordpress/data';\nimport { useContext, Fragment } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tcanBindAttribute,\n\tgetBindableAttributes,\n} from '../hooks/use-bindings-attributes';\nimport { unlock } from '../lock-unlock';\nimport InspectorControls from '../components/inspector-controls';\nimport BlockContext from '../components/block-context';\nimport { useBlockBindingsUtils } from '../utils/block-bindings';\nimport { store as blockEditorStore } from '../store';\n\nconst { DropdownMenuV2 } = unlock( componentsPrivateApis );\n\nconst useToolsPanelDropdownMenuProps = () => {\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\treturn ! isMobile\n\t\t? {\n\t\t\t\tpopoverProps: {\n\t\t\t\t\tplacement: 'left-start',\n\t\t\t\t\t// For non-mobile, inner sidebar width (248px) - button width (24px) - border (1px) + padding (16px) + spacing (20px)\n\t\t\t\t\toffset: 259,\n\t\t\t\t},\n\t\t }\n\t\t: {};\n};\n\nfunction BlockBindingsPanelDropdown( { fieldsList, attribute, binding } ) {\n\tconst { getBlockBindingsSources } = unlock( blocksPrivateApis );\n\tconst registeredSources = getBlockBindingsSources();\n\tconst { updateBlockBindings } = useBlockBindingsUtils();\n\tconst currentKey = binding?.args?.key;\n\treturn (\n\t\t<>\n\t\t\t{ Object.entries( fieldsList ).map( ( [ name, fields ], i ) => (\n\t\t\t\t<Fragment key={ name }>\n\t\t\t\t\t<DropdownMenuV2.Group>\n\t\t\t\t\t\t{ Object.keys( fieldsList ).length > 1 && (\n\t\t\t\t\t\t\t<DropdownMenuV2.GroupLabel>\n\t\t\t\t\t\t\t\t{ registeredSources[ name ].label }\n\t\t\t\t\t\t\t</DropdownMenuV2.GroupLabel>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ Object.entries( fields ).map( ( [ key, value ] ) => (\n\t\t\t\t\t\t\t<DropdownMenuV2.RadioItem\n\t\t\t\t\t\t\t\tkey={ key }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tupdateBlockBindings( {\n\t\t\t\t\t\t\t\t\t\t[ attribute ]: {\n\t\t\t\t\t\t\t\t\t\t\tsource: name,\n\t\t\t\t\t\t\t\t\t\t\targs: { key },\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\tname={ attribute + '-binding' }\n\t\t\t\t\t\t\t\tvalue={ key }\n\t\t\t\t\t\t\t\tchecked={ key === currentKey }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<DropdownMenuV2.ItemLabel>\n\t\t\t\t\t\t\t\t\t{ key }\n\t\t\t\t\t\t\t\t</DropdownMenuV2.ItemLabel>\n\t\t\t\t\t\t\t\t<DropdownMenuV2.ItemHelpText>\n\t\t\t\t\t\t\t\t\t{ value }\n\t\t\t\t\t\t\t\t</DropdownMenuV2.ItemHelpText>\n\t\t\t\t\t\t\t</DropdownMenuV2.RadioItem>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</DropdownMenuV2.Group>\n\t\t\t\t\t{ i !== Object.keys( fieldsList ).length - 1 && (\n\t\t\t\t\t\t<DropdownMenuV2.Separator />\n\t\t\t\t\t) }\n\t\t\t\t</Fragment>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nfunction BlockBindingsAttribute( { attribute, binding } ) {\n\tconst { source: sourceName, args } = binding || {};\n\tconst sourceProps =\n\t\tunlock( blocksPrivateApis ).getBlockBindingsSource( sourceName );\n\tconst isSourceInvalid = ! sourceProps;\n\treturn (\n\t\t<VStack className=\"block-editor-bindings__item\">\n\t\t\t<Text truncate>{ attribute }</Text>\n\t\t\t{ !! binding && (\n\t\t\t\t<Text\n\t\t\t\t\ttruncate\n\t\t\t\t\tvariant={ ! isSourceInvalid && 'muted' }\n\t\t\t\t\tisDestructive={ isSourceInvalid }\n\t\t\t\t>\n\t\t\t\t\t{ isSourceInvalid\n\t\t\t\t\t\t? __( 'Invalid source' )\n\t\t\t\t\t\t: args?.key || sourceProps?.label || sourceName }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nfunction ReadOnlyBlockBindingsPanelItems( { bindings } ) {\n\treturn (\n\t\t<>\n\t\t\t{ Object.entries( bindings ).map( ( [ attribute, binding ] ) => (\n\t\t\t\t<Item key={ attribute }>\n\t\t\t\t\t<BlockBindingsAttribute\n\t\t\t\t\t\tattribute={ attribute }\n\t\t\t\t\t\tbinding={ binding }\n\t\t\t\t\t/>\n\t\t\t\t</Item>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nfunction EditableBlockBindingsPanelItems( {\n\tattributes,\n\tbindings,\n\tfieldsList,\n} ) {\n\tconst { updateBlockBindings } = useBlockBindingsUtils();\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\treturn (\n\t\t<>\n\t\t\t{ attributes.map( ( attribute ) => {\n\t\t\t\tconst binding = bindings[ attribute ];\n\t\t\t\treturn (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tkey={ attribute }\n\t\t\t\t\t\thasValue={ () => !! binding }\n\t\t\t\t\t\tlabel={ attribute }\n\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\tupdateBlockBindings( {\n\t\t\t\t\t\t\t\t[ attribute ]: undefined,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenuV2\n\t\t\t\t\t\t\tplacement={\n\t\t\t\t\t\t\t\tisMobile ? 'bottom-start' : 'left-start'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tgutter={ isMobile ? 8 : 36 }\n\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t<Item>\n\t\t\t\t\t\t\t\t\t<BlockBindingsAttribute\n\t\t\t\t\t\t\t\t\t\tattribute={ attribute }\n\t\t\t\t\t\t\t\t\t\tbinding={ binding }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockBindingsPanelDropdown\n\t\t\t\t\t\t\t\tfieldsList={ fieldsList }\n\t\t\t\t\t\t\t\tattribute={ attribute }\n\t\t\t\t\t\t\t\tbinding={ binding }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</DropdownMenuV2>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n}\n\nexport const BlockBindingsPanel = ( { name: blockName, metadata } ) => {\n\tconst registry = useRegistry();\n\tconst blockContext = useContext( BlockContext );\n\tconst { bindings } = metadata || {};\n\tconst { removeAllBlockBindings } = useBlockBindingsUtils();\n\tconst bindableAttributes = getBindableAttributes( blockName );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst filteredBindings = { ...bindings };\n\tObject.keys( filteredBindings ).forEach( ( key ) => {\n\t\tif (\n\t\t\t! canBindAttribute( blockName, key ) ||\n\t\t\tfilteredBindings[ key ].source === 'core/pattern-overrides'\n\t\t) {\n\t\t\tdelete filteredBindings[ key ];\n\t\t}\n\t} );\n\n\tconst { canUpdateBlockBindings } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tcanUpdateBlockBindings:\n\t\t\t\tselect( blockEditorStore ).getSettings().canUpdateBlockBindings,\n\t\t};\n\t}, [] );\n\n\tif ( ! bindableAttributes || bindableAttributes.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst fieldsList = {};\n\tconst { getBlockBindingsSources } = unlock( blocksPrivateApis );\n\tconst registeredSources = getBlockBindingsSources();\n\tObject.entries( registeredSources ).forEach(\n\t\t( [ sourceName, { getFieldsList, usesContext } ] ) => {\n\t\t\tif ( getFieldsList ) {\n\t\t\t\t// Populate context.\n\t\t\t\tconst context = {};\n\t\t\t\tif ( usesContext?.length ) {\n\t\t\t\t\tfor ( const key of usesContext ) {\n\t\t\t\t\t\tcontext[ key ] = blockContext[ key ];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst sourceList = getFieldsList( {\n\t\t\t\t\tregistry,\n\t\t\t\t\tcontext,\n\t\t\t\t} );\n\t\t\t\t// Only add source if the list is not empty.\n\t\t\t\tif ( sourceList ) {\n\t\t\t\t\tfieldsList[ sourceName ] = { ...sourceList };\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t);\n\t// Remove empty sources.\n\tObject.entries( fieldsList ).forEach( ( [ key, value ] ) => {\n\t\tif ( ! Object.keys( value ).length ) {\n\t\t\tdelete fieldsList[ key ];\n\t\t}\n\t} );\n\n\t// Lock the UI when the user can't update bindings or there are no fields to connect to.\n\tconst readOnly =\n\t\t! canUpdateBlockBindings || ! Object.keys( fieldsList ).length;\n\n\tif ( readOnly && Object.keys( filteredBindings ).length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<InspectorControls group=\"bindings\">\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Attributes' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tremoveAllBlockBindings();\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\tclassName=\"block-editor-bindings__panel\"\n\t\t\t>\n\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t{ readOnly ? (\n\t\t\t\t\t\t<ReadOnlyBlockBindingsPanelItems\n\t\t\t\t\t\t\tbindings={ filteredBindings }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<EditableBlockBindingsPanelItems\n\t\t\t\t\t\t\tattributes={ bindableAttributes }\n\t\t\t\t\t\t\tbindings={ filteredBindings }\n\t\t\t\t\t\t\tfieldsList={ fieldsList }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ItemGroup>\n\t\t\t\t<ItemGroup>\n\t\t\t\t\t<Text variant=\"muted\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Attributes connected to custom fields or other dynamic data.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t</ItemGroup>\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n};\n\nexport default {\n\tedit: BlockBindingsPanel,\n\tattributeKeys: [ 'metadata' ],\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { ToolbarButton, MenuItem } from '@wordpress/components';
4
+ import { ToolbarButton } from '@wordpress/components';
5
5
  import { useDispatch, useSelect } from '@wordpress/data';
6
6
  import { __ } from '@wordpress/i18n';
7
7
  import { useCallback } from '@wordpress/element';
@@ -10,7 +10,7 @@ import { useCallback } from '@wordpress/element';
10
10
  * Internal dependencies
11
11
  */
12
12
  import { store as blockEditorStore } from '../store';
13
- import { BlockControls, BlockSettingsMenuControls } from '../components';
13
+ import { BlockControls } from '../components';
14
14
  import { unlock } from '../lock-unlock';
15
15
 
16
16
  // The implementation of content locking is mainly in this file, although the mechanism
@@ -19,11 +19,8 @@ import { unlock } from '../lock-unlock';
19
19
  // Besides the components on this file and the file referenced above the implementation
20
20
  // also includes artifacts on the store (actions, reducers, and selector).
21
21
  import { jsx as _jsx } from "react/jsx-runtime";
22
- import { Fragment as _Fragment } from "react/jsx-runtime";
23
- import { jsxs as _jsxs } from "react/jsx-runtime";
24
22
  function ContentLockControlsPure({
25
- clientId,
26
- isSelected
23
+ clientId
27
24
  }) {
28
25
  const {
29
26
  templateLock,
@@ -42,8 +39,7 @@ function ContentLockControlsPure({
42
39
  };
43
40
  }, [clientId]);
44
41
  const {
45
- stopEditingAsBlocks,
46
- modifyContentLockBlock
42
+ stopEditingAsBlocks
47
43
  } = unlock(useDispatch(blockEditorStore));
48
44
  const isContentLocked = !isLockedByParent && templateLock === 'contentOnly';
49
45
  const stopEditingAsBlockCallback = useCallback(() => {
@@ -53,28 +49,12 @@ function ContentLockControlsPure({
53
49
  return null;
54
50
  }
55
51
  const showStopEditingAsBlocks = isEditingAsBlocks && !isContentLocked;
56
- const showStartEditingAsBlocks = !isEditingAsBlocks && isContentLocked && isSelected;
57
- return /*#__PURE__*/_jsxs(_Fragment, {
58
- children: [showStopEditingAsBlocks && /*#__PURE__*/_jsx(_Fragment, {
59
- children: /*#__PURE__*/_jsx(BlockControls, {
60
- group: "other",
61
- children: /*#__PURE__*/_jsx(ToolbarButton, {
62
- onClick: stopEditingAsBlockCallback,
63
- children: __('Done')
64
- })
65
- })
66
- }), showStartEditingAsBlocks && /*#__PURE__*/_jsx(BlockSettingsMenuControls, {
67
- children: ({
68
- selectedClientIds,
69
- onClose
70
- }) => selectedClientIds.length === 1 && selectedClientIds[0] === clientId && /*#__PURE__*/_jsx(MenuItem, {
71
- onClick: () => {
72
- modifyContentLockBlock(clientId);
73
- onClose();
74
- },
75
- children: __('Modify')
76
- })
77
- })]
52
+ return showStopEditingAsBlocks && /*#__PURE__*/_jsx(BlockControls, {
53
+ group: "other",
54
+ children: /*#__PURE__*/_jsx(ToolbarButton, {
55
+ onClick: stopEditingAsBlockCallback,
56
+ children: __('Done')
57
+ })
78
58
  });
79
59
  }
80
60
  export default {
@@ -1 +1 @@
1
- {"version":3,"names":["ToolbarButton","MenuItem","useDispatch","useSelect","__","useCallback","store","blockEditorStore","BlockControls","BlockSettingsMenuControls","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ContentLockControlsPure","clientId","isSelected","templateLock","isLockedByParent","isEditingAsBlocks","select","getContentLockingParent","getTemplateLock","getTemporarilyEditingAsBlocks","stopEditingAsBlocks","modifyContentLockBlock","isContentLocked","stopEditingAsBlockCallback","showStopEditingAsBlocks","showStartEditingAsBlocks","children","group","onClick","selectedClientIds","onClose","length","edit","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/content-lock-ui.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ToolbarButton, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { BlockControls, BlockSettingsMenuControls } from '../components';\nimport { unlock } from '../lock-unlock';\n\n// The implementation of content locking is mainly in this file, although the mechanism\n// to stop temporarily editing as blocks when an outside block is selected is on component StopEditingAsBlocksOnOutsideSelect\n// at block-editor/src/components/block-list/index.js.\n// Besides the components on this file and the file referenced above the implementation\n// also includes artifacts on the store (actions, reducers, and selector).\n\nfunction ContentLockControlsPure( { clientId, isSelected } ) {\n\tconst { templateLock, isLockedByParent, isEditingAsBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetContentLockingParent,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetTemporarilyEditingAsBlocks,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\treturn {\n\t\t\t\ttemplateLock: getTemplateLock( clientId ),\n\t\t\t\tisLockedByParent: !! getContentLockingParent( clientId ),\n\t\t\t\tisEditingAsBlocks: getTemporarilyEditingAsBlocks() === clientId,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { stopEditingAsBlocks, modifyContentLockBlock } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\tconst isContentLocked =\n\t\t! isLockedByParent && templateLock === 'contentOnly';\n\n\tconst stopEditingAsBlockCallback = useCallback( () => {\n\t\tstopEditingAsBlocks( clientId );\n\t}, [ clientId, stopEditingAsBlocks ] );\n\n\tif ( ! isContentLocked && ! isEditingAsBlocks ) {\n\t\treturn null;\n\t}\n\n\tconst showStopEditingAsBlocks = isEditingAsBlocks && ! isContentLocked;\n\tconst showStartEditingAsBlocks =\n\t\t! isEditingAsBlocks && isContentLocked && isSelected;\n\n\treturn (\n\t\t<>\n\t\t\t{ showStopEditingAsBlocks && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<ToolbarButton onClick={ stopEditingAsBlockCallback }>\n\t\t\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showStartEditingAsBlocks && (\n\t\t\t\t<BlockSettingsMenuControls>\n\t\t\t\t\t{ ( { selectedClientIds, onClose } ) =>\n\t\t\t\t\t\tselectedClientIds.length === 1 &&\n\t\t\t\t\t\tselectedClientIds[ 0 ] === clientId && (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tmodifyContentLockBlock( clientId );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Modify' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t</BlockSettingsMenuControls>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default {\n\tedit: ContentLockControlsPure,\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,uBAAuB;AAC/D,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,QAAQ,oBAAoB;;AAEhD;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,UAAU;AACpD,SAASC,aAAa,EAAEC,yBAAyB,QAAQ,eAAe;AACxE,SAASC,MAAM,QAAQ,gBAAgB;;AAEvC;AACA;AACA;AACA;AACA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAEA,SAASC,uBAAuBA,CAAE;EAAEC,QAAQ;EAAEC;AAAW,CAAC,EAAG;EAC5D,MAAM;IAAEC,YAAY;IAAEC,gBAAgB;IAAEC;EAAkB,CAAC,GAAGnB,SAAS,CACpEoB,MAAM,IAAM;IACb,MAAM;MACLC,uBAAuB;MACvBC,eAAe;MACfC;IACD,CAAC,GAAGhB,MAAM,CAAEa,MAAM,CAAEhB,gBAAiB,CAAE,CAAC;IACxC,OAAO;MACNa,YAAY,EAAEK,eAAe,CAAEP,QAAS,CAAC;MACzCG,gBAAgB,EAAE,CAAC,CAAEG,uBAAuB,CAAEN,QAAS,CAAC;MACxDI,iBAAiB,EAAEI,6BAA6B,CAAC,CAAC,KAAKR;IACxD,CAAC;EACF,CAAC,EACD,CAAEA,QAAQ,CACX,CAAC;EAED,MAAM;IAAES,mBAAmB;IAAEC;EAAuB,CAAC,GAAGlB,MAAM,CAC7DR,WAAW,CAAEK,gBAAiB,CAC/B,CAAC;EACD,MAAMsB,eAAe,GACpB,CAAER,gBAAgB,IAAID,YAAY,KAAK,aAAa;EAErD,MAAMU,0BAA0B,GAAGzB,WAAW,CAAE,MAAM;IACrDsB,mBAAmB,CAAET,QAAS,CAAC;EAChC,CAAC,EAAE,CAAEA,QAAQ,EAAES,mBAAmB,CAAG,CAAC;EAEtC,IAAK,CAAEE,eAAe,IAAI,CAAEP,iBAAiB,EAAG;IAC/C,OAAO,IAAI;EACZ;EAEA,MAAMS,uBAAuB,GAAGT,iBAAiB,IAAI,CAAEO,eAAe;EACtE,MAAMG,wBAAwB,GAC7B,CAAEV,iBAAiB,IAAIO,eAAe,IAAIV,UAAU;EAErD,oBACCH,KAAA,CAAAF,SAAA;IAAAmB,QAAA,GACGF,uBAAuB,iBACxBnB,IAAA,CAAAE,SAAA;MAAAmB,QAAA,eACCrB,IAAA,CAACJ,aAAa;QAAC0B,KAAK,EAAC,OAAO;QAAAD,QAAA,eAC3BrB,IAAA,CAACZ,aAAa;UAACmC,OAAO,EAAGL,0BAA4B;UAAAG,QAAA,EAClD7B,EAAE,CAAE,MAAO;QAAC,CACA;MAAC,CACF;IAAC,CACf,CACF,EACC4B,wBAAwB,iBACzBpB,IAAA,CAACH,yBAAyB;MAAAwB,QAAA,EACvBA,CAAE;QAAEG,iBAAiB;QAAEC;MAAQ,CAAC,KACjCD,iBAAiB,CAACE,MAAM,KAAK,CAAC,IAC9BF,iBAAiB,CAAE,CAAC,CAAE,KAAKlB,QAAQ,iBAClCN,IAAA,CAACX,QAAQ;QACRkC,OAAO,EAAGA,CAAA,KAAM;UACfP,sBAAsB,CAAEV,QAAS,CAAC;UAClCmB,OAAO,CAAC,CAAC;QACV,CAAG;QAAAJ,QAAA,EAED7B,EAAE,CAAE,QAAS;MAAC,CACP;IACV,CAEwB,CAC3B;EAAA,CACA,CAAC;AAEL;AAEA,eAAe;EACdmC,IAAI,EAAEtB,uBAAuB;EAC7BuB,UAAUA,CAAA,EAAG;IACZ,OAAO,IAAI;EACZ;AACD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["ToolbarButton","useDispatch","useSelect","__","useCallback","store","blockEditorStore","BlockControls","unlock","jsx","_jsx","ContentLockControlsPure","clientId","templateLock","isLockedByParent","isEditingAsBlocks","select","getContentLockingParent","getTemplateLock","getTemporarilyEditingAsBlocks","stopEditingAsBlocks","isContentLocked","stopEditingAsBlockCallback","showStopEditingAsBlocks","group","children","onClick","edit","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/content-lock-ui.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ToolbarButton } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { BlockControls } from '../components';\nimport { unlock } from '../lock-unlock';\n\n// The implementation of content locking is mainly in this file, although the mechanism\n// to stop temporarily editing as blocks when an outside block is selected is on component StopEditingAsBlocksOnOutsideSelect\n// at block-editor/src/components/block-list/index.js.\n// Besides the components on this file and the file referenced above the implementation\n// also includes artifacts on the store (actions, reducers, and selector).\n\nfunction ContentLockControlsPure( { clientId } ) {\n\tconst { templateLock, isLockedByParent, isEditingAsBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetContentLockingParent,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetTemporarilyEditingAsBlocks,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\treturn {\n\t\t\t\ttemplateLock: getTemplateLock( clientId ),\n\t\t\t\tisLockedByParent: !! getContentLockingParent( clientId ),\n\t\t\t\tisEditingAsBlocks: getTemporarilyEditingAsBlocks() === clientId,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { stopEditingAsBlocks } = unlock( useDispatch( blockEditorStore ) );\n\tconst isContentLocked =\n\t\t! isLockedByParent && templateLock === 'contentOnly';\n\n\tconst stopEditingAsBlockCallback = useCallback( () => {\n\t\tstopEditingAsBlocks( clientId );\n\t}, [ clientId, stopEditingAsBlocks ] );\n\n\tif ( ! isContentLocked && ! isEditingAsBlocks ) {\n\t\treturn null;\n\t}\n\n\tconst showStopEditingAsBlocks = isEditingAsBlocks && ! isContentLocked;\n\n\treturn (\n\t\tshowStopEditingAsBlocks && (\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<ToolbarButton onClick={ stopEditingAsBlockCallback }>\n\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t</ToolbarButton>\n\t\t\t</BlockControls>\n\t\t)\n\t);\n}\n\nexport default {\n\tedit: ContentLockControlsPure,\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,aAAa,QAAQ,uBAAuB;AACrD,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,QAAQ,oBAAoB;;AAEhD;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,UAAU;AACpD,SAASC,aAAa,QAAQ,eAAe;AAC7C,SAASC,MAAM,QAAQ,gBAAgB;;AAEvC;AACA;AACA;AACA;AACA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAEA,SAASC,uBAAuBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAChD,MAAM;IAAEC,YAAY;IAAEC,gBAAgB;IAAEC;EAAkB,CAAC,GAAGb,SAAS,CACpEc,MAAM,IAAM;IACb,MAAM;MACLC,uBAAuB;MACvBC,eAAe;MACfC;IACD,CAAC,GAAGX,MAAM,CAAEQ,MAAM,CAAEV,gBAAiB,CAAE,CAAC;IACxC,OAAO;MACNO,YAAY,EAAEK,eAAe,CAAEN,QAAS,CAAC;MACzCE,gBAAgB,EAAE,CAAC,CAAEG,uBAAuB,CAAEL,QAAS,CAAC;MACxDG,iBAAiB,EAAEI,6BAA6B,CAAC,CAAC,KAAKP;IACxD,CAAC;EACF,CAAC,EACD,CAAEA,QAAQ,CACX,CAAC;EAED,MAAM;IAAEQ;EAAoB,CAAC,GAAGZ,MAAM,CAAEP,WAAW,CAAEK,gBAAiB,CAAE,CAAC;EACzE,MAAMe,eAAe,GACpB,CAAEP,gBAAgB,IAAID,YAAY,KAAK,aAAa;EAErD,MAAMS,0BAA0B,GAAGlB,WAAW,CAAE,MAAM;IACrDgB,mBAAmB,CAAER,QAAS,CAAC;EAChC,CAAC,EAAE,CAAEA,QAAQ,EAAEQ,mBAAmB,CAAG,CAAC;EAEtC,IAAK,CAAEC,eAAe,IAAI,CAAEN,iBAAiB,EAAG;IAC/C,OAAO,IAAI;EACZ;EAEA,MAAMQ,uBAAuB,GAAGR,iBAAiB,IAAI,CAAEM,eAAe;EAEtE,OACCE,uBAAuB,iBACtBb,IAAA,CAACH,aAAa;IAACiB,KAAK,EAAC,OAAO;IAAAC,QAAA,eAC3Bf,IAAA,CAACV,aAAa;MAAC0B,OAAO,EAAGJ,0BAA4B;MAAAG,QAAA,EAClDtB,EAAE,CAAE,MAAO;IAAC,CACA;EAAC,CACF,CACf;AAEH;AAEA,eAAe;EACdwB,IAAI,EAAEhB,uBAAuB;EAC7BiB,UAAUA,CAAA,EAAG;IACZ,OAAO,IAAI;EACZ;AACD,CAAC","ignoreList":[]}
@@ -208,10 +208,6 @@ function useDuotoneStyles({
208
208
  // Build the CSS selectors to which the filter will be applied.
209
209
  const selectors = duotoneSelector.split(',');
210
210
  const selectorsScoped = selectors.map(selectorPart => {
211
- // Extra .editor-styles-wrapper specificity is needed in the editor
212
- // since we're not using inline styles to apply the filter. We need to
213
- // override duotone applied by global styles and theme.json.
214
-
215
211
  // Assuming the selector part is a subclass selector (not a tag name)
216
212
  // so we can prepend the filter id class. If we want to support elements
217
213
  // such as `img` or namespaces, we'll need to add a case for that here.