@wordpress/block-editor 14.8.1-next.cd6172eb0.0 → 14.10.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 (1161) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/LICENSE.md +1 -1
  3. package/README.md +48 -0
  4. package/build/autocompleters/block.js +1 -0
  5. package/build/autocompleters/block.js.map +1 -1
  6. package/build/autocompleters/link.js +1 -0
  7. package/build/autocompleters/link.js.map +1 -1
  8. package/build/components/alignment-control/ui.js +1 -0
  9. package/build/components/alignment-control/ui.js.map +1 -1
  10. package/build/components/audio-player/index.native.js +1 -1
  11. package/build/components/audio-player/index.native.js.map +1 -1
  12. package/build/components/autocomplete/index.js +1 -0
  13. package/build/components/autocomplete/index.js.map +1 -1
  14. package/build/components/background-image-control/index.js +5 -0
  15. package/build/components/background-image-control/index.js.map +1 -1
  16. package/build/components/block-actions/index.js +1 -0
  17. package/build/components/block-actions/index.js.map +1 -1
  18. package/build/components/block-alignment-control/ui.js +1 -0
  19. package/build/components/block-alignment-control/ui.js.map +1 -1
  20. package/build/components/block-alignment-control/ui.native.js +1 -0
  21. package/build/components/block-alignment-control/ui.native.js.map +1 -1
  22. package/build/components/block-alignment-control/use-available-alignments.js +1 -0
  23. package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
  24. package/build/components/block-alignment-matrix-control/index.js +32 -0
  25. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  26. package/build/components/block-breadcrumb/index.js +1 -0
  27. package/build/components/block-breadcrumb/index.js.map +1 -1
  28. package/build/components/block-card/index.js +45 -8
  29. package/build/components/block-card/index.js.map +1 -1
  30. package/build/components/block-compare/index.js +1 -0
  31. package/build/components/block-compare/index.js.map +1 -1
  32. package/build/components/block-controls/fill.js +1 -0
  33. package/build/components/block-controls/fill.js.map +1 -1
  34. package/build/components/block-edit/edit.js +148 -10
  35. package/build/components/block-edit/edit.js.map +1 -1
  36. package/build/components/block-edit/edit.native.js +1 -0
  37. package/build/components/block-edit/edit.native.js.map +1 -1
  38. package/build/components/block-heading-level-dropdown/index.js +1 -0
  39. package/build/components/block-heading-level-dropdown/index.js.map +1 -1
  40. package/build/components/block-heading-level-dropdown/index.native.js +1 -0
  41. package/build/components/block-heading-level-dropdown/index.native.js.map +1 -1
  42. package/build/components/block-inspector/index.js +1 -0
  43. package/build/components/block-inspector/index.js.map +1 -1
  44. package/build/components/block-list/block-invalid-warning.js +1 -0
  45. package/build/components/block-list/block-invalid-warning.js.map +1 -1
  46. package/build/components/block-list/block-list-context.native.js +1 -0
  47. package/build/components/block-list/block-list-context.native.js.map +1 -1
  48. package/build/components/block-list/block.js +1 -0
  49. package/build/components/block-list/block.js.map +1 -1
  50. package/build/components/block-list/block.native.js +1 -0
  51. package/build/components/block-list/block.native.js.map +1 -1
  52. package/build/components/block-list/index.js +2 -2
  53. package/build/components/block-list/index.js.map +1 -1
  54. package/build/components/block-list/index.native.js +1 -0
  55. package/build/components/block-list/index.native.js.map +1 -1
  56. package/build/components/block-list/use-block-props/index.js +4 -5
  57. package/build/components/block-list/use-block-props/index.js.map +1 -1
  58. package/build/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +61 -8
  59. package/build/components/block-list/use-block-props/use-firefox-draggable-compatibility.js.map +1 -1
  60. package/build/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  61. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  62. package/build/components/block-list/use-in-between-inserter.js +1 -0
  63. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  64. package/build/components/block-list/zoom-out-separator.js +20 -3
  65. package/build/components/block-list/zoom-out-separator.js.map +1 -1
  66. package/build/components/block-lock/modal.js +5 -4
  67. package/build/components/block-lock/modal.js.map +1 -1
  68. package/build/components/block-manager/category.js +1 -0
  69. package/build/components/block-manager/category.js.map +1 -1
  70. package/build/components/block-manager/checklist.js +1 -0
  71. package/build/components/block-manager/checklist.js.map +1 -1
  72. package/build/components/block-manager/index.js +1 -0
  73. package/build/components/block-manager/index.js.map +1 -1
  74. package/build/components/block-media-update-progress/index.native.js +1 -0
  75. package/build/components/block-media-update-progress/index.native.js.map +1 -1
  76. package/build/components/block-mover/index.native.js +1 -0
  77. package/build/components/block-mover/index.native.js.map +1 -1
  78. package/build/components/block-mover/mover-description.native.js +1 -0
  79. package/build/components/block-mover/mover-description.native.js.map +1 -1
  80. package/build/components/block-parent-selector/index.js +2 -15
  81. package/build/components/block-parent-selector/index.js.map +1 -1
  82. package/build/components/block-pattern-setup/index.js +1 -0
  83. package/build/components/block-pattern-setup/index.js.map +1 -1
  84. package/build/components/block-pattern-setup/use-patterns-setup.js +1 -0
  85. package/build/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
  86. package/build/components/block-patterns-list/index.js +1 -0
  87. package/build/components/block-patterns-list/index.js.map +1 -1
  88. package/build/components/block-quick-navigation/index.js +1 -0
  89. package/build/components/block-quick-navigation/index.js.map +1 -1
  90. package/build/components/block-rename/rename-control.js +1 -0
  91. package/build/components/block-rename/rename-control.js.map +1 -1
  92. package/build/components/block-settings-menu/block-settings-dropdown.js +6 -8
  93. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  94. package/build/components/block-styles/index.js +1 -0
  95. package/build/components/block-styles/index.js.map +1 -1
  96. package/build/components/block-styles/index.native.js +1 -0
  97. package/build/components/block-styles/index.native.js.map +1 -1
  98. package/build/components/block-styles/menu-items.js +1 -0
  99. package/build/components/block-styles/menu-items.js.map +1 -1
  100. package/build/components/block-styles/preview.native.js +1 -0
  101. package/build/components/block-styles/preview.native.js.map +1 -1
  102. package/build/components/block-styles/utils.js +3 -3
  103. package/build/components/block-styles/utils.js.map +1 -1
  104. package/build/components/block-switcher/block-transformations-menu.js +1 -0
  105. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  106. package/build/components/block-switcher/block-transformations-menu.native.js +1 -0
  107. package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  108. package/build/components/block-switcher/block-variation-transformations.js +1 -0
  109. package/build/components/block-switcher/block-variation-transformations.js.map +1 -1
  110. package/build/components/block-switcher/index.js +1 -0
  111. package/build/components/block-switcher/index.js.map +1 -1
  112. package/build/components/block-switcher/pattern-transformations-menu.js +1 -0
  113. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  114. package/build/components/block-switcher/use-transformed-patterns.js +1 -0
  115. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  116. package/build/components/block-switcher/utils.js +1 -0
  117. package/build/components/block-switcher/utils.js.map +1 -1
  118. package/build/components/block-toolbar/block-toolbar-menu.native.js +1 -0
  119. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  120. package/build/components/block-toolbar/change-design.js +1 -0
  121. package/build/components/block-toolbar/change-design.js.map +1 -1
  122. package/build/components/block-toolbar/index.js +2 -1
  123. package/build/components/block-toolbar/index.js.map +1 -1
  124. package/build/components/block-tools/use-selected-block-tool-props.js +1 -0
  125. package/build/components/block-tools/use-selected-block-tool-props.js.map +1 -1
  126. package/build/components/block-tools/zoom-out-mode-inserters.js +19 -6
  127. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  128. package/build/components/block-types-list/index.js +1 -0
  129. package/build/components/block-types-list/index.js.map +1 -1
  130. package/build/components/block-variation-picker/index.js +1 -0
  131. package/build/components/block-variation-picker/index.js.map +1 -1
  132. package/build/components/block-variation-picker/index.native.js +1 -0
  133. package/build/components/block-variation-picker/index.native.js.map +1 -1
  134. package/build/components/block-variation-transforms/index.js +1 -0
  135. package/build/components/block-variation-transforms/index.js.map +1 -1
  136. package/build/components/block-vertical-alignment-control/ui.js +1 -0
  137. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  138. package/build/components/border-radius-control/index.js +1 -0
  139. package/build/components/border-radius-control/index.js.map +1 -1
  140. package/build/components/border-radius-control/input-controls.js +1 -0
  141. package/build/components/border-radius-control/input-controls.js.map +1 -1
  142. package/build/components/border-radius-control/utils.js +1 -0
  143. package/build/components/border-radius-control/utils.js.map +1 -1
  144. package/build/components/button-block-appender/index.js +1 -5
  145. package/build/components/button-block-appender/index.js.map +1 -1
  146. package/build/components/child-layout-control/index.js +6 -0
  147. package/build/components/child-layout-control/index.js.map +1 -1
  148. package/build/components/colors/utils.js +1 -0
  149. package/build/components/colors/utils.js.map +1 -1
  150. package/build/components/colors/with-colors.js +1 -0
  151. package/build/components/colors/with-colors.js.map +1 -1
  152. package/build/components/colors-gradients/dropdown.js +52 -11
  153. package/build/components/colors-gradients/dropdown.js.map +1 -1
  154. package/build/components/colors-gradients/panel-color-gradient-settings.js +1 -0
  155. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  156. package/build/components/colors-gradients/panel-color-gradient-settings.native.js +1 -0
  157. package/build/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  158. package/build/components/contrast-checker/index.native.js +1 -1
  159. package/build/components/contrast-checker/index.native.js.map +1 -1
  160. package/build/components/convert-to-group-buttons/toolbar.js +1 -0
  161. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  162. package/build/components/date-format-picker/index.js +8 -16
  163. package/build/components/date-format-picker/index.js.map +1 -1
  164. package/build/components/dimensions-tool/scale-tool.js +1 -0
  165. package/build/components/dimensions-tool/scale-tool.js.map +1 -1
  166. package/build/components/duotone/utils.js +1 -0
  167. package/build/components/duotone/utils.js.map +1 -1
  168. package/build/components/editor-styles/index.js +1 -0
  169. package/build/components/editor-styles/index.js.map +1 -1
  170. package/build/components/font-appearance-control/index.js +10 -0
  171. package/build/components/font-appearance-control/index.js.map +1 -1
  172. package/build/components/font-family/index.js +11 -1
  173. package/build/components/font-family/index.js.map +1 -1
  174. package/build/components/font-sizes/with-font-sizes.js +1 -0
  175. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  176. package/build/components/global-styles/border-panel.js +1 -0
  177. package/build/components/global-styles/border-panel.js.map +1 -1
  178. package/build/components/global-styles/color-panel.js +28 -8
  179. package/build/components/global-styles/color-panel.js.map +1 -1
  180. package/build/components/global-styles/color-panel.native.js +1 -0
  181. package/build/components/global-styles/color-panel.native.js.map +1 -1
  182. package/build/components/global-styles/dimensions-panel.js +1 -0
  183. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  184. package/build/components/global-styles/filters-panel.js +3 -2
  185. package/build/components/global-styles/filters-panel.js.map +1 -1
  186. package/build/components/global-styles/get-global-styles-changes.js +1 -0
  187. package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
  188. package/build/components/global-styles/shadow-panel-components.js +1 -0
  189. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  190. package/build/components/global-styles/typography-utils.js +2 -1
  191. package/build/components/global-styles/typography-utils.js.map +1 -1
  192. package/build/components/global-styles/use-global-styles-context.native.js +1 -0
  193. package/build/components/global-styles/use-global-styles-context.native.js.map +1 -1
  194. package/build/components/global-styles/use-global-styles-output.js +2 -1
  195. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  196. package/build/components/global-styles/utils.js +1 -0
  197. package/build/components/global-styles/utils.js.map +1 -1
  198. package/build/components/grid/grid-visualizer.js +10 -0
  199. package/build/components/grid/grid-visualizer.js.map +1 -1
  200. package/build/components/grid/use-grid-layout-sync.js +1 -0
  201. package/build/components/grid/use-grid-layout-sync.js.map +1 -1
  202. package/build/components/grid/utils.js +13 -1
  203. package/build/components/grid/utils.js.map +1 -1
  204. package/build/components/iframe/get-compatibility-styles.js +1 -0
  205. package/build/components/iframe/get-compatibility-styles.js.map +1 -1
  206. package/build/components/iframe/index.js +1 -1
  207. package/build/components/iframe/index.js.map +1 -1
  208. package/build/components/image-editor/aspect-ratio-dropdown.js +1 -0
  209. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  210. package/build/components/index.js +15 -8
  211. package/build/components/index.js.map +1 -1
  212. package/build/components/inner-blocks/use-block-context.js +1 -0
  213. package/build/components/inner-blocks/use-block-context.js.map +1 -1
  214. package/build/components/inner-blocks/use-inner-block-template-sync.js +11 -11
  215. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  216. package/build/components/inserter/block-patterns-explorer/index.js +1 -1
  217. package/build/components/inserter/block-patterns-explorer/index.js.map +1 -1
  218. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +1 -0
  219. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  220. package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -0
  221. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  222. package/build/components/inserter/block-patterns-tab/index.js +1 -1
  223. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  224. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +5 -4
  225. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  226. package/build/components/inserter/block-patterns-tab/patterns-filter.js +2 -2
  227. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  228. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +1 -0
  229. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  230. package/build/components/inserter/block-types-tab.js +2 -1
  231. package/build/components/inserter/block-types-tab.js.map +1 -1
  232. package/build/components/inserter/block-types-tab.native.js +1 -0
  233. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  234. package/build/components/inserter/category-tabs/index.js +2 -2
  235. package/build/components/inserter/category-tabs/index.js.map +1 -1
  236. package/build/components/inserter/hooks/use-block-type-impressions.native.js +1 -0
  237. package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  238. package/build/components/inserter/hooks/use-patterns-state.js +1 -0
  239. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  240. package/build/components/inserter/index.js +7 -15
  241. package/build/components/inserter/index.js.map +1 -1
  242. package/build/components/inserter/index.native.js +1 -0
  243. package/build/components/inserter/index.native.js.map +1 -1
  244. package/build/components/inserter/media-tab/hooks.js +1 -0
  245. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  246. package/build/components/inserter/media-tab/media-list.js +1 -0
  247. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  248. package/build/components/inserter/media-tab/media-tab.js +1 -0
  249. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  250. package/build/components/inserter/menu.js +1 -0
  251. package/build/components/inserter/menu.js.map +1 -1
  252. package/build/components/inserter/mobile-tab-navigation.js +1 -0
  253. package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
  254. package/build/components/inserter/quick-inserter.js +2 -13
  255. package/build/components/inserter/quick-inserter.js.map +1 -1
  256. package/build/components/inserter/search-items.js +1 -0
  257. package/build/components/inserter/search-items.js.map +1 -1
  258. package/build/components/inserter/search-results.js +1 -0
  259. package/build/components/inserter/search-results.js.map +1 -1
  260. package/build/components/inserter/tabs.native.js +1 -0
  261. package/build/components/inserter/tabs.native.js.map +1 -1
  262. package/build/components/inserter/utils.native.js +1 -0
  263. package/build/components/inserter/utils.native.js.map +1 -1
  264. package/build/components/inspector-controls/block-support-tools-panel.js +1 -0
  265. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  266. package/build/components/inspector-controls/fill.js +1 -0
  267. package/build/components/inspector-controls/fill.js.map +1 -1
  268. package/build/components/inspector-controls/slot.js +2 -13
  269. package/build/components/inspector-controls/slot.js.map +1 -1
  270. package/build/components/inspector-controls-tabs/index.js +1 -0
  271. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  272. package/build/components/inspector-controls-tabs/position-controls-panel.js +1 -0
  273. package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  274. package/build/components/inspector-popover-header/index.js +1 -0
  275. package/build/components/inspector-popover-header/index.js.map +1 -1
  276. package/build/components/justify-content-control/ui.js +1 -0
  277. package/build/components/justify-content-control/ui.js.map +1 -1
  278. package/build/components/keyboard-shortcuts/index.js +2 -2
  279. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  280. package/build/components/line-height-control/index.js +9 -0
  281. package/build/components/line-height-control/index.js.map +1 -1
  282. package/build/components/link-control/index.js +13 -1
  283. package/build/components/link-control/index.js.map +1 -1
  284. package/build/components/link-control/search-input.js +11 -1
  285. package/build/components/link-control/search-input.js.map +1 -1
  286. package/build/components/link-control/search-item.js +12 -1
  287. package/build/components/link-control/search-item.js.map +1 -1
  288. package/build/components/link-control/search-results.js +13 -1
  289. package/build/components/link-control/search-results.js.map +1 -1
  290. package/build/components/link-control/settings.js +1 -0
  291. package/build/components/link-control/settings.js.map +1 -1
  292. package/build/components/link-control/use-internal-value.js +1 -0
  293. package/build/components/link-control/use-internal-value.js.map +1 -1
  294. package/build/components/link-control/use-search-handler.js +1 -0
  295. package/build/components/link-control/use-search-handler.js.map +1 -1
  296. package/build/components/list-view/block-select-button.js +1 -0
  297. package/build/components/list-view/block-select-button.js.map +1 -1
  298. package/build/components/list-view/block.js +1 -0
  299. package/build/components/list-view/block.js.map +1 -1
  300. package/build/components/list-view/branch.js +1 -0
  301. package/build/components/list-view/branch.js.map +1 -1
  302. package/build/components/list-view/index.js +1 -0
  303. package/build/components/list-view/index.js.map +1 -1
  304. package/build/components/list-view/use-block-selection.js +1 -0
  305. package/build/components/list-view/use-block-selection.js.map +1 -1
  306. package/build/components/list-view/use-clipboard-handler.js +1 -0
  307. package/build/components/list-view/use-clipboard-handler.js.map +1 -1
  308. package/build/components/list-view/use-list-view-block-indexes.js +1 -0
  309. package/build/components/list-view/use-list-view-block-indexes.js.map +1 -1
  310. package/build/components/list-view/use-list-view-drop-zone.js +1 -0
  311. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  312. package/build/components/list-view/utils.js +1 -0
  313. package/build/components/list-view/utils.js.map +1 -1
  314. package/build/components/media-placeholder/index.js +3 -2
  315. package/build/components/media-placeholder/index.js.map +1 -1
  316. package/build/components/media-placeholder/index.native.js +1 -0
  317. package/build/components/media-placeholder/index.native.js.map +1 -1
  318. package/build/components/media-replace-flow/index.js +27 -26
  319. package/build/components/media-replace-flow/index.js.map +1 -1
  320. package/build/components/media-upload/index.native.js +1 -0
  321. package/build/components/media-upload/index.native.js.map +1 -1
  322. package/build/components/multi-selection-inspector/index.js +9 -25
  323. package/build/components/multi-selection-inspector/index.js.map +1 -1
  324. package/build/components/navigable-toolbar/index.js +1 -0
  325. package/build/components/navigable-toolbar/index.js.map +1 -1
  326. package/build/components/panel-color-settings/index.js +1 -0
  327. package/build/components/panel-color-settings/index.js.map +1 -1
  328. package/build/components/plain-text/index.js +34 -0
  329. package/build/components/plain-text/index.js.map +1 -1
  330. package/build/components/provider/index.js +61 -5
  331. package/build/components/provider/index.js.map +1 -1
  332. package/build/components/provider/use-block-sync.js +1 -0
  333. package/build/components/provider/use-block-sync.js.map +1 -1
  334. package/build/components/provider/use-media-upload-settings.js +28 -0
  335. package/build/components/provider/use-media-upload-settings.js.map +1 -0
  336. package/build/components/resolution-tool/index.js +3 -1
  337. package/build/components/resolution-tool/index.js.map +1 -1
  338. package/build/components/responsive-block-control/index.js +2 -1
  339. package/build/components/responsive-block-control/index.js.map +1 -1
  340. package/build/components/rich-text/embed-handler-picker.native.js +1 -0
  341. package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
  342. package/build/components/rich-text/event-listeners/before-input-rules.js +1 -0
  343. package/build/components/rich-text/event-listeners/before-input-rules.js.map +1 -1
  344. package/build/components/rich-text/event-listeners/delete.js +7 -1
  345. package/build/components/rich-text/event-listeners/delete.js.map +1 -1
  346. package/build/components/rich-text/event-listeners/index.js +1 -0
  347. package/build/components/rich-text/event-listeners/index.js.map +1 -1
  348. package/build/components/rich-text/event-listeners/input-rules.js +1 -0
  349. package/build/components/rich-text/event-listeners/input-rules.js.map +1 -1
  350. package/build/components/rich-text/event-listeners/paste-handler.js +1 -0
  351. package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  352. package/build/components/rich-text/file-paste-handler.native.js +1 -0
  353. package/build/components/rich-text/file-paste-handler.native.js.map +1 -1
  354. package/build/components/rich-text/format-edit.js +1 -0
  355. package/build/components/rich-text/format-edit.js.map +1 -1
  356. package/build/components/rich-text/format-toolbar/index.js +1 -0
  357. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  358. package/build/components/rich-text/index.js +3 -2
  359. package/build/components/rich-text/index.js.map +1 -1
  360. package/build/components/rich-text/index.native.js +1 -0
  361. package/build/components/rich-text/index.native.js.map +1 -1
  362. package/build/components/rich-text/multiline.js +1 -0
  363. package/build/components/rich-text/multiline.js.map +1 -1
  364. package/build/components/rich-text/native/format-edit.js +1 -0
  365. package/build/components/rich-text/native/format-edit.js.map +1 -1
  366. package/build/components/rich-text/native/get-format-colors.native.js +1 -0
  367. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  368. package/build/components/rich-text/native/index.native.js +1 -0
  369. package/build/components/rich-text/native/index.native.js.map +1 -1
  370. package/build/components/rich-text/native/toolbar-button-with-options.native.js +1 -0
  371. package/build/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -1
  372. package/build/components/rich-text/native/use-format-types.js +1 -0
  373. package/build/components/rich-text/native/use-format-types.js.map +1 -1
  374. package/build/components/rich-text/use-format-types.js +1 -0
  375. package/build/components/rich-text/use-format-types.js.map +1 -1
  376. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -0
  377. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  378. package/build/components/spacing-sizes-control/input-controls/axial.js +1 -0
  379. package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  380. package/build/components/spacing-sizes-control/input-controls/separated.js +1 -0
  381. package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  382. package/build/components/spacing-sizes-control/input-controls/single.js +1 -0
  383. package/build/components/spacing-sizes-control/input-controls/single.js.map +1 -1
  384. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -0
  385. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  386. package/build/components/spacing-sizes-control/utils.js +1 -0
  387. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  388. package/build/components/tabbed-sidebar/index.js +1 -0
  389. package/build/components/tabbed-sidebar/index.js.map +1 -1
  390. package/build/components/text-alignment-control/index.js +1 -0
  391. package/build/components/text-alignment-control/index.js.map +1 -1
  392. package/build/components/text-decoration-control/index.js +1 -0
  393. package/build/components/text-decoration-control/index.js.map +1 -1
  394. package/build/components/text-transform-control/index.js +1 -0
  395. package/build/components/text-transform-control/index.js.map +1 -1
  396. package/build/components/unsupported-block-details/index.native.js +1 -0
  397. package/build/components/unsupported-block-details/index.native.js.map +1 -1
  398. package/build/components/url-input/index.js +1 -0
  399. package/build/components/url-input/index.js.map +1 -1
  400. package/build/components/url-popover/image-url-input-ui.js +1 -0
  401. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  402. package/build/components/use-block-commands/index.js +1 -0
  403. package/build/components/use-block-commands/index.js.map +1 -1
  404. package/build/components/use-block-drop-zone/index.js +3 -1
  405. package/build/components/use-block-drop-zone/index.js.map +1 -1
  406. package/build/components/use-block-drop-zone/index.native.js +1 -0
  407. package/build/components/use-block-drop-zone/index.native.js.map +1 -1
  408. package/build/components/use-flash-editable-blocks/index.js +1 -0
  409. package/build/components/use-flash-editable-blocks/index.js.map +1 -1
  410. package/build/components/use-on-block-drop/index.js +1 -0
  411. package/build/components/use-on-block-drop/index.js.map +1 -1
  412. package/build/components/use-on-block-drop/index.native.js +1 -0
  413. package/build/components/use-on-block-drop/index.native.js.map +1 -1
  414. package/build/components/use-paste-styles/index.js +1 -0
  415. package/build/components/use-paste-styles/index.js.map +1 -1
  416. package/build/components/warning/index.js +3 -3
  417. package/build/components/warning/index.js.map +1 -1
  418. package/build/components/writing-flow/use-arrow-nav.js +1 -0
  419. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  420. package/build/components/writing-flow/use-clipboard-handler.js +1 -0
  421. package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
  422. package/build/components/writing-flow/use-input.js +1 -0
  423. package/build/components/writing-flow/use-input.js.map +1 -1
  424. package/build/components/writing-flow/use-tab-nav.js +1 -0
  425. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  426. package/build/components/writing-flow/utils.js +1 -0
  427. package/build/components/writing-flow/utils.js.map +1 -1
  428. package/build/components/writing-mode-control/index.js +1 -0
  429. package/build/components/writing-mode-control/index.js.map +1 -1
  430. package/build/hooks/align.js +1 -0
  431. package/build/hooks/align.js.map +1 -1
  432. package/build/hooks/align.native.js +1 -0
  433. package/build/hooks/align.native.js.map +1 -1
  434. package/build/hooks/background.js +2 -0
  435. package/build/hooks/background.js.map +1 -1
  436. package/build/hooks/block-bindings.js +16 -14
  437. package/build/hooks/block-bindings.js.map +1 -1
  438. package/build/hooks/block-hooks.js +1 -0
  439. package/build/hooks/block-hooks.js.map +1 -1
  440. package/build/hooks/block-style-variation.js +1 -0
  441. package/build/hooks/block-style-variation.js.map +1 -1
  442. package/build/hooks/border.js +4 -3
  443. package/build/hooks/border.js.map +1 -1
  444. package/build/hooks/color.js +1 -1
  445. package/build/hooks/color.js.map +1 -1
  446. package/build/hooks/dimensions.js +2 -2
  447. package/build/hooks/dimensions.js.map +1 -1
  448. package/build/hooks/duotone.js +1 -0
  449. package/build/hooks/duotone.js.map +1 -1
  450. package/build/hooks/font-family.js +1 -1
  451. package/build/hooks/font-family.js.map +1 -1
  452. package/build/hooks/gap.js +2 -2
  453. package/build/hooks/gap.js.map +1 -1
  454. package/build/hooks/index.js +1 -1
  455. package/build/hooks/index.js.map +1 -1
  456. package/build/hooks/index.native.js +7 -0
  457. package/build/hooks/index.native.js.map +1 -1
  458. package/build/hooks/layout.js +1 -0
  459. package/build/hooks/layout.js.map +1 -1
  460. package/build/hooks/position.js +1 -0
  461. package/build/hooks/position.js.map +1 -1
  462. package/build/hooks/style.js +7 -6
  463. package/build/hooks/style.js.map +1 -1
  464. package/build/hooks/supports.js +8 -7
  465. package/build/hooks/supports.js.map +1 -1
  466. package/build/hooks/text-align.js +1 -0
  467. package/build/hooks/text-align.js.map +1 -1
  468. package/build/hooks/typography.js +7 -6
  469. package/build/hooks/typography.js.map +1 -1
  470. package/build/hooks/use-zoom-out.js +58 -14
  471. package/build/hooks/use-zoom-out.js.map +1 -1
  472. package/build/hooks/utils.js +2 -1
  473. package/build/hooks/utils.js.map +1 -1
  474. package/build/layouts/constrained.js +1 -0
  475. package/build/layouts/constrained.js.map +1 -1
  476. package/build/layouts/flex.js +1 -0
  477. package/build/layouts/flex.js.map +1 -1
  478. package/build/layouts/flow.js +1 -0
  479. package/build/layouts/flow.js.map +1 -1
  480. package/build/layouts/index.js +1 -0
  481. package/build/layouts/index.js.map +1 -1
  482. package/build/layouts/utils.js +1 -0
  483. package/build/layouts/utils.js.map +1 -1
  484. package/build/store/actions.js +1 -0
  485. package/build/store/actions.js.map +1 -1
  486. package/build/store/get-block-settings.js +1 -0
  487. package/build/store/get-block-settings.js.map +1 -1
  488. package/build/store/private-actions.js +2 -1
  489. package/build/store/private-actions.js.map +1 -1
  490. package/build/store/private-selectors.js +12 -1
  491. package/build/store/private-selectors.js.map +1 -1
  492. package/build/store/reducer.js +94 -12
  493. package/build/store/reducer.js.map +1 -1
  494. package/build/store/selectors.js +19 -23
  495. package/build/store/selectors.js.map +1 -1
  496. package/build/store/utils.js +1 -0
  497. package/build/store/utils.js.map +1 -1
  498. package/build/utils/block-bindings.js +96 -0
  499. package/build/utils/block-bindings.js.map +1 -1
  500. package/build/utils/get-editor-region.js +1 -0
  501. package/build/utils/get-editor-region.js.map +1 -1
  502. package/build/utils/get-font-styles-and-weights.js +1 -0
  503. package/build/utils/get-font-styles-and-weights.js.map +1 -1
  504. package/build/utils/math.js +1 -0
  505. package/build/utils/math.js.map +1 -1
  506. package/build/utils/object.js +1 -0
  507. package/build/utils/object.js.map +1 -1
  508. package/build/utils/selection.js +1 -0
  509. package/build/utils/selection.js.map +1 -1
  510. package/build/utils/transform-styles/index.js +1 -0
  511. package/build/utils/transform-styles/index.js.map +1 -1
  512. package/build-module/autocompleters/block.js +1 -0
  513. package/build-module/autocompleters/block.js.map +1 -1
  514. package/build-module/autocompleters/link.js +1 -0
  515. package/build-module/autocompleters/link.js.map +1 -1
  516. package/build-module/components/alignment-control/ui.js +1 -0
  517. package/build-module/components/alignment-control/ui.js.map +1 -1
  518. package/build-module/components/audio-player/index.native.js +2 -2
  519. package/build-module/components/audio-player/index.native.js.map +1 -1
  520. package/build-module/components/autocomplete/index.js +1 -0
  521. package/build-module/components/autocomplete/index.js.map +1 -1
  522. package/build-module/components/background-image-control/index.js +6 -1
  523. package/build-module/components/background-image-control/index.js.map +1 -1
  524. package/build-module/components/block-actions/index.js +1 -0
  525. package/build-module/components/block-actions/index.js.map +1 -1
  526. package/build-module/components/block-alignment-control/ui.js +1 -0
  527. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  528. package/build-module/components/block-alignment-control/ui.native.js +1 -0
  529. package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
  530. package/build-module/components/block-alignment-control/use-available-alignments.js +1 -0
  531. package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
  532. package/build-module/components/block-alignment-matrix-control/index.js +32 -0
  533. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  534. package/build-module/components/block-breadcrumb/index.js +1 -0
  535. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  536. package/build-module/components/block-card/index.js +45 -8
  537. package/build-module/components/block-card/index.js.map +1 -1
  538. package/build-module/components/block-compare/index.js +1 -0
  539. package/build-module/components/block-compare/index.js.map +1 -1
  540. package/build-module/components/block-controls/fill.js +1 -0
  541. package/build-module/components/block-controls/fill.js.map +1 -1
  542. package/build-module/components/block-edit/edit.js +149 -11
  543. package/build-module/components/block-edit/edit.js.map +1 -1
  544. package/build-module/components/block-edit/edit.native.js +1 -0
  545. package/build-module/components/block-edit/edit.native.js.map +1 -1
  546. package/build-module/components/block-heading-level-dropdown/index.js +1 -0
  547. package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
  548. package/build-module/components/block-heading-level-dropdown/index.native.js +1 -0
  549. package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -1
  550. package/build-module/components/block-inspector/index.js +1 -0
  551. package/build-module/components/block-inspector/index.js.map +1 -1
  552. package/build-module/components/block-list/block-invalid-warning.js +1 -0
  553. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  554. package/build-module/components/block-list/block-list-context.native.js +1 -0
  555. package/build-module/components/block-list/block-list-context.native.js.map +1 -1
  556. package/build-module/components/block-list/block.js +1 -0
  557. package/build-module/components/block-list/block.js.map +1 -1
  558. package/build-module/components/block-list/block.native.js +1 -0
  559. package/build-module/components/block-list/block.native.js.map +1 -1
  560. package/build-module/components/block-list/index.js +3 -3
  561. package/build-module/components/block-list/index.js.map +1 -1
  562. package/build-module/components/block-list/index.native.js +1 -0
  563. package/build-module/components/block-list/index.native.js.map +1 -1
  564. package/build-module/components/block-list/use-block-props/index.js +3 -4
  565. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  566. package/build-module/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +60 -8
  567. package/build-module/components/block-list/use-block-props/use-firefox-draggable-compatibility.js.map +1 -1
  568. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  569. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  570. package/build-module/components/block-list/use-in-between-inserter.js +1 -0
  571. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  572. package/build-module/components/block-list/zoom-out-separator.js +20 -3
  573. package/build-module/components/block-list/zoom-out-separator.js.map +1 -1
  574. package/build-module/components/block-lock/modal.js +5 -4
  575. package/build-module/components/block-lock/modal.js.map +1 -1
  576. package/build-module/components/block-manager/category.js +1 -0
  577. package/build-module/components/block-manager/category.js.map +1 -1
  578. package/build-module/components/block-manager/checklist.js +1 -0
  579. package/build-module/components/block-manager/checklist.js.map +1 -1
  580. package/build-module/components/block-manager/index.js +1 -0
  581. package/build-module/components/block-manager/index.js.map +1 -1
  582. package/build-module/components/block-media-update-progress/index.native.js +1 -0
  583. package/build-module/components/block-media-update-progress/index.native.js.map +1 -1
  584. package/build-module/components/block-mover/index.native.js +1 -0
  585. package/build-module/components/block-mover/index.native.js.map +1 -1
  586. package/build-module/components/block-mover/mover-description.native.js +1 -0
  587. package/build-module/components/block-mover/mover-description.native.js.map +1 -1
  588. package/build-module/components/block-parent-selector/index.js +2 -15
  589. package/build-module/components/block-parent-selector/index.js.map +1 -1
  590. package/build-module/components/block-pattern-setup/index.js +1 -0
  591. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  592. package/build-module/components/block-pattern-setup/use-patterns-setup.js +1 -0
  593. package/build-module/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
  594. package/build-module/components/block-patterns-list/index.js +1 -0
  595. package/build-module/components/block-patterns-list/index.js.map +1 -1
  596. package/build-module/components/block-quick-navigation/index.js +1 -0
  597. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  598. package/build-module/components/block-rename/rename-control.js +1 -0
  599. package/build-module/components/block-rename/rename-control.js.map +1 -1
  600. package/build-module/components/block-settings-menu/block-settings-dropdown.js +6 -8
  601. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  602. package/build-module/components/block-styles/index.js +1 -0
  603. package/build-module/components/block-styles/index.js.map +1 -1
  604. package/build-module/components/block-styles/index.native.js +1 -0
  605. package/build-module/components/block-styles/index.native.js.map +1 -1
  606. package/build-module/components/block-styles/menu-items.js +1 -0
  607. package/build-module/components/block-styles/menu-items.js.map +1 -1
  608. package/build-module/components/block-styles/preview.native.js +1 -0
  609. package/build-module/components/block-styles/preview.native.js.map +1 -1
  610. package/build-module/components/block-styles/utils.js +3 -3
  611. package/build-module/components/block-styles/utils.js.map +1 -1
  612. package/build-module/components/block-switcher/block-transformations-menu.js +1 -0
  613. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  614. package/build-module/components/block-switcher/block-transformations-menu.native.js +1 -0
  615. package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  616. package/build-module/components/block-switcher/block-variation-transformations.js +1 -0
  617. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
  618. package/build-module/components/block-switcher/index.js +1 -0
  619. package/build-module/components/block-switcher/index.js.map +1 -1
  620. package/build-module/components/block-switcher/pattern-transformations-menu.js +1 -0
  621. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  622. package/build-module/components/block-switcher/use-transformed-patterns.js +1 -0
  623. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  624. package/build-module/components/block-switcher/utils.js +1 -0
  625. package/build-module/components/block-switcher/utils.js.map +1 -1
  626. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +1 -0
  627. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  628. package/build-module/components/block-toolbar/change-design.js +1 -0
  629. package/build-module/components/block-toolbar/change-design.js.map +1 -1
  630. package/build-module/components/block-toolbar/index.js +2 -1
  631. package/build-module/components/block-toolbar/index.js.map +1 -1
  632. package/build-module/components/block-tools/use-selected-block-tool-props.js +1 -0
  633. package/build-module/components/block-tools/use-selected-block-tool-props.js.map +1 -1
  634. package/build-module/components/block-tools/zoom-out-mode-inserters.js +19 -6
  635. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  636. package/build-module/components/block-types-list/index.js +1 -0
  637. package/build-module/components/block-types-list/index.js.map +1 -1
  638. package/build-module/components/block-variation-picker/index.js +1 -0
  639. package/build-module/components/block-variation-picker/index.js.map +1 -1
  640. package/build-module/components/block-variation-picker/index.native.js +1 -0
  641. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  642. package/build-module/components/block-variation-transforms/index.js +1 -0
  643. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  644. package/build-module/components/block-vertical-alignment-control/ui.js +1 -0
  645. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  646. package/build-module/components/border-radius-control/index.js +1 -0
  647. package/build-module/components/border-radius-control/index.js.map +1 -1
  648. package/build-module/components/border-radius-control/input-controls.js +1 -0
  649. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  650. package/build-module/components/border-radius-control/utils.js +1 -0
  651. package/build-module/components/border-radius-control/utils.js.map +1 -1
  652. package/build-module/components/button-block-appender/index.js +2 -6
  653. package/build-module/components/button-block-appender/index.js.map +1 -1
  654. package/build-module/components/child-layout-control/index.js +7 -1
  655. package/build-module/components/child-layout-control/index.js.map +1 -1
  656. package/build-module/components/colors/utils.js +1 -0
  657. package/build-module/components/colors/utils.js.map +1 -1
  658. package/build-module/components/colors/with-colors.js +1 -0
  659. package/build-module/components/colors/with-colors.js.map +1 -1
  660. package/build-module/components/colors-gradients/dropdown.js +52 -11
  661. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  662. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +1 -0
  663. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  664. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js +1 -0
  665. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  666. package/build-module/components/contrast-checker/index.native.js +2 -2
  667. package/build-module/components/contrast-checker/index.native.js.map +1 -1
  668. package/build-module/components/convert-to-group-buttons/toolbar.js +1 -0
  669. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  670. package/build-module/components/date-format-picker/index.js +8 -16
  671. package/build-module/components/date-format-picker/index.js.map +1 -1
  672. package/build-module/components/dimensions-tool/scale-tool.js +1 -0
  673. package/build-module/components/dimensions-tool/scale-tool.js.map +1 -1
  674. package/build-module/components/duotone/utils.js +1 -0
  675. package/build-module/components/duotone/utils.js.map +1 -1
  676. package/build-module/components/editor-styles/index.js +1 -0
  677. package/build-module/components/editor-styles/index.js.map +1 -1
  678. package/build-module/components/font-appearance-control/index.js +9 -0
  679. package/build-module/components/font-appearance-control/index.js.map +1 -1
  680. package/build-module/components/font-family/index.js +11 -1
  681. package/build-module/components/font-family/index.js.map +1 -1
  682. package/build-module/components/font-sizes/with-font-sizes.js +1 -0
  683. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  684. package/build-module/components/global-styles/border-panel.js +1 -0
  685. package/build-module/components/global-styles/border-panel.js.map +1 -1
  686. package/build-module/components/global-styles/color-panel.js +30 -10
  687. package/build-module/components/global-styles/color-panel.js.map +1 -1
  688. package/build-module/components/global-styles/color-panel.native.js +1 -0
  689. package/build-module/components/global-styles/color-panel.native.js.map +1 -1
  690. package/build-module/components/global-styles/dimensions-panel.js +1 -0
  691. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  692. package/build-module/components/global-styles/filters-panel.js +4 -3
  693. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  694. package/build-module/components/global-styles/get-global-styles-changes.js +1 -0
  695. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  696. package/build-module/components/global-styles/shadow-panel-components.js +1 -0
  697. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  698. package/build-module/components/global-styles/typography-utils.js +2 -1
  699. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  700. package/build-module/components/global-styles/use-global-styles-context.native.js +1 -0
  701. package/build-module/components/global-styles/use-global-styles-context.native.js.map +1 -1
  702. package/build-module/components/global-styles/use-global-styles-output.js +2 -1
  703. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  704. package/build-module/components/global-styles/utils.js +1 -0
  705. package/build-module/components/global-styles/utils.js.map +1 -1
  706. package/build-module/components/grid/grid-visualizer.js +10 -0
  707. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  708. package/build-module/components/grid/use-grid-layout-sync.js +1 -0
  709. package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
  710. package/build-module/components/grid/utils.js +13 -1
  711. package/build-module/components/grid/utils.js.map +1 -1
  712. package/build-module/components/iframe/get-compatibility-styles.js +1 -0
  713. package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
  714. package/build-module/components/iframe/index.js +1 -1
  715. package/build-module/components/iframe/index.js.map +1 -1
  716. package/build-module/components/image-editor/aspect-ratio-dropdown.js +1 -0
  717. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  718. package/build-module/components/index.js +4 -4
  719. package/build-module/components/index.js.map +1 -1
  720. package/build-module/components/inner-blocks/use-block-context.js +1 -0
  721. package/build-module/components/inner-blocks/use-block-context.js.map +1 -1
  722. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +12 -12
  723. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  724. package/build-module/components/inserter/block-patterns-explorer/index.js +1 -1
  725. package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -1
  726. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +1 -0
  727. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  728. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +1 -0
  729. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  730. package/build-module/components/inserter/block-patterns-tab/index.js +1 -1
  731. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  732. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +5 -4
  733. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  734. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +2 -2
  735. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  736. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +1 -0
  737. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  738. package/build-module/components/inserter/block-types-tab.js +2 -1
  739. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  740. package/build-module/components/inserter/block-types-tab.native.js +1 -0
  741. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  742. package/build-module/components/inserter/category-tabs/index.js +2 -2
  743. package/build-module/components/inserter/category-tabs/index.js.map +1 -1
  744. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js +1 -0
  745. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  746. package/build-module/components/inserter/hooks/use-patterns-state.js +1 -0
  747. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  748. package/build-module/components/inserter/index.js +7 -15
  749. package/build-module/components/inserter/index.js.map +1 -1
  750. package/build-module/components/inserter/index.native.js +1 -0
  751. package/build-module/components/inserter/index.native.js.map +1 -1
  752. package/build-module/components/inserter/media-tab/hooks.js +1 -0
  753. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  754. package/build-module/components/inserter/media-tab/media-list.js +1 -0
  755. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  756. package/build-module/components/inserter/media-tab/media-tab.js +1 -0
  757. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  758. package/build-module/components/inserter/menu.js +1 -0
  759. package/build-module/components/inserter/menu.js.map +1 -1
  760. package/build-module/components/inserter/mobile-tab-navigation.js +1 -0
  761. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
  762. package/build-module/components/inserter/quick-inserter.js +2 -13
  763. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  764. package/build-module/components/inserter/search-items.js +1 -0
  765. package/build-module/components/inserter/search-items.js.map +1 -1
  766. package/build-module/components/inserter/search-results.js +1 -0
  767. package/build-module/components/inserter/search-results.js.map +1 -1
  768. package/build-module/components/inserter/tabs.native.js +1 -0
  769. package/build-module/components/inserter/tabs.native.js.map +1 -1
  770. package/build-module/components/inserter/utils.native.js +1 -0
  771. package/build-module/components/inserter/utils.native.js.map +1 -1
  772. package/build-module/components/inspector-controls/block-support-tools-panel.js +1 -0
  773. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  774. package/build-module/components/inspector-controls/fill.js +1 -0
  775. package/build-module/components/inspector-controls/fill.js.map +1 -1
  776. package/build-module/components/inspector-controls/slot.js +3 -14
  777. package/build-module/components/inspector-controls/slot.js.map +1 -1
  778. package/build-module/components/inspector-controls-tabs/index.js +1 -0
  779. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  780. package/build-module/components/inspector-controls-tabs/position-controls-panel.js +1 -0
  781. package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  782. package/build-module/components/inspector-popover-header/index.js +1 -0
  783. package/build-module/components/inspector-popover-header/index.js.map +1 -1
  784. package/build-module/components/justify-content-control/ui.js +1 -0
  785. package/build-module/components/justify-content-control/ui.js.map +1 -1
  786. package/build-module/components/keyboard-shortcuts/index.js +2 -2
  787. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  788. package/build-module/components/line-height-control/index.js +8 -0
  789. package/build-module/components/line-height-control/index.js.map +1 -1
  790. package/build-module/components/link-control/index.js +11 -0
  791. package/build-module/components/link-control/index.js.map +1 -1
  792. package/build-module/components/link-control/search-input.js +9 -0
  793. package/build-module/components/link-control/search-input.js.map +1 -1
  794. package/build-module/components/link-control/search-item.js +9 -0
  795. package/build-module/components/link-control/search-item.js.map +1 -1
  796. package/build-module/components/link-control/search-results.js +12 -1
  797. package/build-module/components/link-control/search-results.js.map +1 -1
  798. package/build-module/components/link-control/settings.js +1 -0
  799. package/build-module/components/link-control/settings.js.map +1 -1
  800. package/build-module/components/link-control/use-internal-value.js +1 -0
  801. package/build-module/components/link-control/use-internal-value.js.map +1 -1
  802. package/build-module/components/link-control/use-search-handler.js +1 -0
  803. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  804. package/build-module/components/list-view/block-select-button.js +1 -0
  805. package/build-module/components/list-view/block-select-button.js.map +1 -1
  806. package/build-module/components/list-view/block.js +1 -0
  807. package/build-module/components/list-view/block.js.map +1 -1
  808. package/build-module/components/list-view/branch.js +1 -0
  809. package/build-module/components/list-view/branch.js.map +1 -1
  810. package/build-module/components/list-view/index.js +1 -0
  811. package/build-module/components/list-view/index.js.map +1 -1
  812. package/build-module/components/list-view/use-block-selection.js +1 -0
  813. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  814. package/build-module/components/list-view/use-clipboard-handler.js +1 -0
  815. package/build-module/components/list-view/use-clipboard-handler.js.map +1 -1
  816. package/build-module/components/list-view/use-list-view-block-indexes.js +1 -0
  817. package/build-module/components/list-view/use-list-view-block-indexes.js.map +1 -1
  818. package/build-module/components/list-view/use-list-view-drop-zone.js +1 -0
  819. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  820. package/build-module/components/list-view/utils.js +1 -0
  821. package/build-module/components/list-view/utils.js.map +1 -1
  822. package/build-module/components/media-placeholder/index.js +4 -3
  823. package/build-module/components/media-placeholder/index.js.map +1 -1
  824. package/build-module/components/media-placeholder/index.native.js +1 -0
  825. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  826. package/build-module/components/media-replace-flow/index.js +29 -28
  827. package/build-module/components/media-replace-flow/index.js.map +1 -1
  828. package/build-module/components/media-upload/index.native.js +1 -0
  829. package/build-module/components/media-upload/index.native.js.map +1 -1
  830. package/build-module/components/multi-selection-inspector/index.js +9 -25
  831. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  832. package/build-module/components/navigable-toolbar/index.js +1 -0
  833. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  834. package/build-module/components/panel-color-settings/index.js +1 -0
  835. package/build-module/components/panel-color-settings/index.js.map +1 -1
  836. package/build-module/components/plain-text/index.js +34 -0
  837. package/build-module/components/plain-text/index.js.map +1 -1
  838. package/build-module/components/provider/index.js +62 -5
  839. package/build-module/components/provider/index.js.map +1 -1
  840. package/build-module/components/provider/use-block-sync.js +1 -0
  841. package/build-module/components/provider/use-block-sync.js.map +1 -1
  842. package/build-module/components/provider/use-media-upload-settings.js +22 -0
  843. package/build-module/components/provider/use-media-upload-settings.js.map +1 -0
  844. package/build-module/components/resolution-tool/index.js +3 -1
  845. package/build-module/components/resolution-tool/index.js.map +1 -1
  846. package/build-module/components/responsive-block-control/index.js +2 -1
  847. package/build-module/components/responsive-block-control/index.js.map +1 -1
  848. package/build-module/components/rich-text/embed-handler-picker.native.js +1 -0
  849. package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -1
  850. package/build-module/components/rich-text/event-listeners/before-input-rules.js +1 -0
  851. package/build-module/components/rich-text/event-listeners/before-input-rules.js.map +1 -1
  852. package/build-module/components/rich-text/event-listeners/delete.js +7 -1
  853. package/build-module/components/rich-text/event-listeners/delete.js.map +1 -1
  854. package/build-module/components/rich-text/event-listeners/index.js +1 -0
  855. package/build-module/components/rich-text/event-listeners/index.js.map +1 -1
  856. package/build-module/components/rich-text/event-listeners/input-rules.js +1 -0
  857. package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -1
  858. package/build-module/components/rich-text/event-listeners/paste-handler.js +1 -0
  859. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  860. package/build-module/components/rich-text/file-paste-handler.native.js +1 -0
  861. package/build-module/components/rich-text/file-paste-handler.native.js.map +1 -1
  862. package/build-module/components/rich-text/format-edit.js +1 -0
  863. package/build-module/components/rich-text/format-edit.js.map +1 -1
  864. package/build-module/components/rich-text/format-toolbar/index.js +1 -0
  865. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  866. package/build-module/components/rich-text/index.js +2 -1
  867. package/build-module/components/rich-text/index.js.map +1 -1
  868. package/build-module/components/rich-text/index.native.js +1 -0
  869. package/build-module/components/rich-text/index.native.js.map +1 -1
  870. package/build-module/components/rich-text/multiline.js +1 -0
  871. package/build-module/components/rich-text/multiline.js.map +1 -1
  872. package/build-module/components/rich-text/native/format-edit.js +1 -0
  873. package/build-module/components/rich-text/native/format-edit.js.map +1 -1
  874. package/build-module/components/rich-text/native/get-format-colors.native.js +1 -0
  875. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  876. package/build-module/components/rich-text/native/index.native.js +1 -0
  877. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  878. package/build-module/components/rich-text/native/toolbar-button-with-options.native.js +1 -0
  879. package/build-module/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -1
  880. package/build-module/components/rich-text/native/use-format-types.js +1 -0
  881. package/build-module/components/rich-text/native/use-format-types.js.map +1 -1
  882. package/build-module/components/rich-text/use-format-types.js +1 -0
  883. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  884. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -0
  885. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  886. package/build-module/components/spacing-sizes-control/input-controls/axial.js +1 -0
  887. package/build-module/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  888. package/build-module/components/spacing-sizes-control/input-controls/separated.js +1 -0
  889. package/build-module/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  890. package/build-module/components/spacing-sizes-control/input-controls/single.js +1 -0
  891. package/build-module/components/spacing-sizes-control/input-controls/single.js.map +1 -1
  892. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -0
  893. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  894. package/build-module/components/spacing-sizes-control/utils.js +1 -0
  895. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  896. package/build-module/components/tabbed-sidebar/index.js +1 -0
  897. package/build-module/components/tabbed-sidebar/index.js.map +1 -1
  898. package/build-module/components/text-alignment-control/index.js +1 -0
  899. package/build-module/components/text-alignment-control/index.js.map +1 -1
  900. package/build-module/components/text-decoration-control/index.js +1 -0
  901. package/build-module/components/text-decoration-control/index.js.map +1 -1
  902. package/build-module/components/text-transform-control/index.js +1 -0
  903. package/build-module/components/text-transform-control/index.js.map +1 -1
  904. package/build-module/components/unsupported-block-details/index.native.js +1 -0
  905. package/build-module/components/unsupported-block-details/index.native.js.map +1 -1
  906. package/build-module/components/url-input/index.js +1 -0
  907. package/build-module/components/url-input/index.js.map +1 -1
  908. package/build-module/components/url-popover/image-url-input-ui.js +1 -0
  909. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  910. package/build-module/components/use-block-commands/index.js +1 -0
  911. package/build-module/components/use-block-commands/index.js.map +1 -1
  912. package/build-module/components/use-block-drop-zone/index.js +3 -1
  913. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  914. package/build-module/components/use-block-drop-zone/index.native.js +1 -0
  915. package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
  916. package/build-module/components/use-flash-editable-blocks/index.js +1 -0
  917. package/build-module/components/use-flash-editable-blocks/index.js.map +1 -1
  918. package/build-module/components/use-on-block-drop/index.js +1 -0
  919. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  920. package/build-module/components/use-on-block-drop/index.native.js +1 -0
  921. package/build-module/components/use-on-block-drop/index.native.js.map +1 -1
  922. package/build-module/components/use-paste-styles/index.js +1 -0
  923. package/build-module/components/use-paste-styles/index.js.map +1 -1
  924. package/build-module/components/warning/index.js +3 -3
  925. package/build-module/components/warning/index.js.map +1 -1
  926. package/build-module/components/writing-flow/use-arrow-nav.js +1 -0
  927. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  928. package/build-module/components/writing-flow/use-clipboard-handler.js +1 -0
  929. package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
  930. package/build-module/components/writing-flow/use-input.js +1 -0
  931. package/build-module/components/writing-flow/use-input.js.map +1 -1
  932. package/build-module/components/writing-flow/use-tab-nav.js +1 -0
  933. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  934. package/build-module/components/writing-flow/utils.js +1 -0
  935. package/build-module/components/writing-flow/utils.js.map +1 -1
  936. package/build-module/components/writing-mode-control/index.js +1 -0
  937. package/build-module/components/writing-mode-control/index.js.map +1 -1
  938. package/build-module/hooks/align.js +1 -0
  939. package/build-module/hooks/align.js.map +1 -1
  940. package/build-module/hooks/align.native.js +1 -0
  941. package/build-module/hooks/align.native.js.map +1 -1
  942. package/build-module/hooks/background.js +2 -0
  943. package/build-module/hooks/background.js.map +1 -1
  944. package/build-module/hooks/block-bindings.js +14 -12
  945. package/build-module/hooks/block-bindings.js.map +1 -1
  946. package/build-module/hooks/block-hooks.js +1 -0
  947. package/build-module/hooks/block-hooks.js.map +1 -1
  948. package/build-module/hooks/block-style-variation.js +1 -0
  949. package/build-module/hooks/block-style-variation.js.map +1 -1
  950. package/build-module/hooks/border.js +4 -3
  951. package/build-module/hooks/border.js.map +1 -1
  952. package/build-module/hooks/color.js +1 -1
  953. package/build-module/hooks/color.js.map +1 -1
  954. package/build-module/hooks/dimensions.js +2 -2
  955. package/build-module/hooks/dimensions.js.map +1 -1
  956. package/build-module/hooks/duotone.js +1 -0
  957. package/build-module/hooks/duotone.js.map +1 -1
  958. package/build-module/hooks/font-family.js +1 -1
  959. package/build-module/hooks/font-family.js.map +1 -1
  960. package/build-module/hooks/gap.js +2 -2
  961. package/build-module/hooks/gap.js.map +1 -1
  962. package/build-module/hooks/index.js +1 -1
  963. package/build-module/hooks/index.js.map +1 -1
  964. package/build-module/hooks/index.native.js +1 -0
  965. package/build-module/hooks/index.native.js.map +1 -1
  966. package/build-module/hooks/layout.js +1 -0
  967. package/build-module/hooks/layout.js.map +1 -1
  968. package/build-module/hooks/position.js +1 -0
  969. package/build-module/hooks/position.js.map +1 -1
  970. package/build-module/hooks/style.js +7 -6
  971. package/build-module/hooks/style.js.map +1 -1
  972. package/build-module/hooks/supports.js +8 -7
  973. package/build-module/hooks/supports.js.map +1 -1
  974. package/build-module/hooks/text-align.js +1 -0
  975. package/build-module/hooks/text-align.js.map +1 -1
  976. package/build-module/hooks/typography.js +7 -6
  977. package/build-module/hooks/typography.js.map +1 -1
  978. package/build-module/hooks/use-zoom-out.js +58 -15
  979. package/build-module/hooks/use-zoom-out.js.map +1 -1
  980. package/build-module/hooks/utils.js +2 -1
  981. package/build-module/hooks/utils.js.map +1 -1
  982. package/build-module/layouts/constrained.js +1 -0
  983. package/build-module/layouts/constrained.js.map +1 -1
  984. package/build-module/layouts/flex.js +1 -0
  985. package/build-module/layouts/flex.js.map +1 -1
  986. package/build-module/layouts/flow.js +1 -0
  987. package/build-module/layouts/flow.js.map +1 -1
  988. package/build-module/layouts/index.js +1 -0
  989. package/build-module/layouts/index.js.map +1 -1
  990. package/build-module/layouts/utils.js +1 -0
  991. package/build-module/layouts/utils.js.map +1 -1
  992. package/build-module/store/actions.js +1 -0
  993. package/build-module/store/actions.js.map +1 -1
  994. package/build-module/store/get-block-settings.js +1 -0
  995. package/build-module/store/get-block-settings.js.map +1 -1
  996. package/build-module/store/private-actions.js +2 -1
  997. package/build-module/store/private-actions.js.map +1 -1
  998. package/build-module/store/private-selectors.js +12 -1
  999. package/build-module/store/private-selectors.js.map +1 -1
  1000. package/build-module/store/reducer.js +94 -12
  1001. package/build-module/store/reducer.js.map +1 -1
  1002. package/build-module/store/selectors.js +19 -23
  1003. package/build-module/store/selectors.js.map +1 -1
  1004. package/build-module/store/utils.js +1 -0
  1005. package/build-module/store/utils.js.map +1 -1
  1006. package/build-module/utils/block-bindings.js +91 -0
  1007. package/build-module/utils/block-bindings.js.map +1 -1
  1008. package/build-module/utils/get-editor-region.js +1 -0
  1009. package/build-module/utils/get-editor-region.js.map +1 -1
  1010. package/build-module/utils/get-font-styles-and-weights.js +1 -0
  1011. package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
  1012. package/build-module/utils/math.js +1 -0
  1013. package/build-module/utils/math.js.map +1 -1
  1014. package/build-module/utils/object.js +1 -0
  1015. package/build-module/utils/object.js.map +1 -1
  1016. package/build-module/utils/selection.js +1 -0
  1017. package/build-module/utils/selection.js.map +1 -1
  1018. package/build-module/utils/transform-styles/index.js +1 -0
  1019. package/build-module/utils/transform-styles/index.js.map +1 -1
  1020. package/build-style/content-rtl.css +1 -1
  1021. package/build-style/content.css +1 -1
  1022. package/build-style/style-rtl.css +53 -57
  1023. package/build-style/style.css +53 -57
  1024. package/package.json +33 -33
  1025. package/src/components/alignment-control/stories/aliginment-toolbar.story.js +2 -2
  1026. package/src/components/alignment-control/stories/index.story.js +2 -2
  1027. package/src/components/audio-player/index.native.js +2 -2
  1028. package/src/components/background-image-control/index.js +4 -0
  1029. package/src/components/background-image-control/style.scss +4 -2
  1030. package/src/components/block-alignment-matrix-control/README.md +29 -6
  1031. package/src/components/block-alignment-matrix-control/index.js +31 -0
  1032. package/src/components/block-alignment-matrix-control/stories/index.story.js +78 -0
  1033. package/src/components/block-card/README.md +7 -0
  1034. package/src/components/block-card/index.js +41 -12
  1035. package/src/components/block-card/stories/index.story.js +79 -0
  1036. package/src/components/block-card/style.scss +9 -1
  1037. package/src/components/block-edit/edit.js +218 -11
  1038. package/src/components/block-heading-level-dropdown/stories/index.story.js +61 -0
  1039. package/src/components/block-list/index.js +2 -7
  1040. package/src/components/block-list/use-block-props/index.js +3 -5
  1041. package/src/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +64 -6
  1042. package/src/components/block-list/zoom-out-separator.js +30 -0
  1043. package/src/components/block-lock/modal.js +4 -6
  1044. package/src/components/block-parent-selector/index.js +1 -19
  1045. package/src/components/block-patterns-list/stories/fixtures.js +1 -0
  1046. package/src/components/block-settings-menu/block-settings-dropdown.js +17 -20
  1047. package/src/components/block-styles/utils.js +3 -3
  1048. package/src/components/block-title/stories/index.story.js +76 -0
  1049. package/src/components/block-toolbar/index.js +1 -0
  1050. package/src/components/block-tools/style.scss +1 -0
  1051. package/src/components/block-tools/zoom-out-mode-inserters.js +21 -3
  1052. package/src/components/border-radius-control/README.md +59 -0
  1053. package/src/components/border-radius-control/stories/index.story.js +58 -0
  1054. package/src/components/button-block-appender/index.js +2 -7
  1055. package/src/components/child-layout-control/index.js +14 -0
  1056. package/src/components/colors-gradients/dropdown.js +57 -8
  1057. package/src/components/colors-gradients/style.scss +26 -0
  1058. package/src/components/contrast-checker/index.native.js +2 -2
  1059. package/src/components/contrast-checker/stories/index.story.js +117 -0
  1060. package/src/components/date-format-picker/README.md +6 -13
  1061. package/src/components/date-format-picker/index.js +10 -17
  1062. package/src/components/date-format-picker/stories/index.story.js +69 -0
  1063. package/src/components/date-format-picker/style.scss +3 -1
  1064. package/src/components/default-block-appender/content.scss +1 -0
  1065. package/src/components/dimensions-tool/stories/aspect-ratio-tool.story.js +3 -2
  1066. package/src/components/dimensions-tool/stories/index.story.js +3 -2
  1067. package/src/components/dimensions-tool/stories/scale-tool.story.js +3 -2
  1068. package/src/components/dimensions-tool/stories/width-height-tool.story.js +3 -2
  1069. package/src/components/font-appearance-control/index.js +15 -0
  1070. package/src/components/font-family/README.md +1 -0
  1071. package/src/components/font-family/index.js +17 -1
  1072. package/src/components/font-family/stories/index.story.js +1 -0
  1073. package/src/components/global-styles/color-panel.js +29 -7
  1074. package/src/components/global-styles/filters-panel.js +3 -6
  1075. package/src/components/global-styles/test/use-global-styles-output.js +1 -1
  1076. package/src/components/global-styles/typography-utils.js +1 -1
  1077. package/src/components/global-styles/use-global-styles-output.js +1 -1
  1078. package/src/components/grid/grid-visualizer.js +11 -0
  1079. package/src/components/grid/utils.js +19 -1
  1080. package/src/components/iframe/index.js +1 -1
  1081. package/src/components/index.js +7 -4
  1082. package/src/components/inner-blocks/use-inner-block-template-sync.js +17 -10
  1083. package/src/components/inserter/block-patterns-explorer/index.js +2 -3
  1084. package/src/components/inserter/block-patterns-tab/index.js +3 -1
  1085. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +4 -4
  1086. package/src/components/inserter/block-patterns-tab/patterns-filter.js +2 -2
  1087. package/src/components/inserter/block-types-tab.js +1 -1
  1088. package/src/components/inserter/category-tabs/index.js +3 -2
  1089. package/src/components/inserter/index.js +1 -13
  1090. package/src/components/inserter/menu.js +2 -0
  1091. package/src/components/inserter/quick-inserter.js +2 -25
  1092. package/src/components/inspector-controls/slot.js +3 -22
  1093. package/src/components/keyboard-shortcuts/index.js +2 -2
  1094. package/src/components/line-height-control/README.md +1 -0
  1095. package/src/components/line-height-control/index.js +12 -0
  1096. package/src/components/line-height-control/stories/index.story.js +1 -0
  1097. package/src/components/line-height-control/test/index.js +7 -1
  1098. package/src/components/link-control/index.js +10 -0
  1099. package/src/components/link-control/search-input.js +9 -0
  1100. package/src/components/link-control/search-item.js +9 -0
  1101. package/src/components/link-control/search-results.js +12 -1
  1102. package/src/components/list-view/style.scss +10 -5
  1103. package/src/components/media-placeholder/index.js +3 -3
  1104. package/src/components/media-replace-flow/README.md +7 -0
  1105. package/src/components/media-replace-flow/index.js +28 -36
  1106. package/src/components/media-replace-flow/style.scss +6 -6
  1107. package/src/components/multi-selection-inspector/index.js +17 -27
  1108. package/src/components/multi-selection-inspector/style.scss +0 -12
  1109. package/src/components/plain-text/README.md +2 -2
  1110. package/src/components/plain-text/index.js +34 -0
  1111. package/src/components/plain-text/stories/index.story.js +75 -0
  1112. package/src/components/provider/index.js +81 -4
  1113. package/src/components/provider/use-media-upload-settings.js +25 -0
  1114. package/src/components/resolution-tool/index.js +2 -0
  1115. package/src/components/resolution-tool/stories/index.story.js +37 -9
  1116. package/src/components/responsive-block-control/index.js +1 -1
  1117. package/src/components/rich-text/event-listeners/delete.js +6 -1
  1118. package/src/components/rich-text/index.js +1 -1
  1119. package/src/components/spacing-sizes-control/style.scss +0 -29
  1120. package/src/components/text-alignment-control/README.md +49 -0
  1121. package/src/components/text-alignment-control/stories/index.story.js +56 -18
  1122. package/src/components/text-decoration-control/README.md +0 -1
  1123. package/src/components/text-decoration-control/stories/index.story.js +51 -16
  1124. package/src/components/text-transform-control/README.md +3 -4
  1125. package/src/components/text-transform-control/stories/index.story.js +53 -16
  1126. package/src/components/use-block-drop-zone/index.js +8 -1
  1127. package/src/components/warning/index.js +3 -4
  1128. package/src/components/warning/stories/index.story.js +86 -0
  1129. package/src/components/warning/test/index.js +3 -1
  1130. package/src/components/writing-mode-control/stories/index.story.js +56 -0
  1131. package/src/hooks/background.js +6 -0
  1132. package/src/hooks/block-bindings.js +17 -18
  1133. package/src/hooks/border.js +9 -3
  1134. package/src/hooks/color.js +1 -1
  1135. package/src/hooks/dimensions.js +2 -2
  1136. package/src/hooks/font-family.js +1 -1
  1137. package/src/hooks/gap.js +2 -2
  1138. package/src/hooks/index.js +0 -1
  1139. package/src/hooks/index.native.js +1 -0
  1140. package/src/hooks/style.js +12 -6
  1141. package/src/hooks/supports.js +7 -7
  1142. package/src/hooks/test/font-size.js +15 -12
  1143. package/src/hooks/test/style.js +2 -1
  1144. package/src/hooks/typography.js +6 -6
  1145. package/src/hooks/use-zoom-out.js +56 -16
  1146. package/src/hooks/utils.js +1 -1
  1147. package/src/store/private-actions.js +1 -0
  1148. package/src/store/private-selectors.js +15 -5
  1149. package/src/store/reducer.js +112 -19
  1150. package/src/store/selectors.js +32 -32
  1151. package/src/store/test/private-selectors.js +53 -9
  1152. package/src/store/test/reducer.js +172 -166
  1153. package/src/store/test/selectors.js +24 -1
  1154. package/src/utils/block-bindings.js +95 -0
  1155. package/tsconfig.json +2 -5
  1156. package/tsconfig.tsbuildinfo +1 -1
  1157. package/build/hooks/use-bindings-attributes.js +0 -261
  1158. package/build/hooks/use-bindings-attributes.js.map +0 -1
  1159. package/build-module/hooks/use-bindings-attributes.js +0 -252
  1160. package/build-module/hooks/use-bindings-attributes.js.map +0 -1
  1161. package/src/hooks/use-bindings-attributes.js +0 -322
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  "use strict";
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -11,12 +12,11 @@ var _components = require("@wordpress/components");
11
12
  var _data = require("@wordpress/data");
12
13
  var _element = require("@wordpress/element");
13
14
  var _compose = require("@wordpress/compose");
14
- var _useBindingsAttributes = require("../hooks/use-bindings-attributes");
15
+ var _blockBindings = require("../utils/block-bindings");
15
16
  var _lockUnlock = require("../lock-unlock");
16
17
  var _inspectorControls = _interopRequireDefault(require("../components/inspector-controls"));
17
18
  var _blockContext = _interopRequireDefault(require("../components/block-context"));
18
19
  var _blockEdit = require("../components/block-edit");
19
- var _blockBindings = require("../utils/block-bindings");
20
20
  var _store = require("../store");
21
21
  var _jsxRuntime = require("react/jsx-runtime");
22
22
  /**
@@ -41,7 +41,7 @@ const useToolsPanelDropdownMenuProps = () => {
41
41
  }
42
42
  } : {};
43
43
  };
44
- function BlockBindingsPanelDropdown({
44
+ function BlockBindingsPanelMenuContent({
45
45
  fieldsList,
46
46
  attribute,
47
47
  binding
@@ -147,21 +147,23 @@ function EditableBlockBindingsPanelItems({
147
147
  [attribute]: undefined
148
148
  });
149
149
  },
150
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu, {
150
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(Menu, {
151
151
  placement: isMobile ? 'bottom-start' : 'left-start',
152
- gutter: isMobile ? 8 : 36,
153
- trigger: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalItem, {
152
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.TriggerButton, {
153
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalItem, {}),
154
154
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockBindingsAttribute, {
155
155
  attribute: attribute,
156
156
  binding: binding,
157
157
  fieldsList: fieldsList
158
158
  })
159
- }),
160
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockBindingsPanelDropdown, {
161
- fieldsList: fieldsList,
162
- attribute: attribute,
163
- binding: binding
164
- })
159
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.Popover, {
160
+ gutter: isMobile ? 8 : 36,
161
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockBindingsPanelMenuContent, {
162
+ fieldsList: fieldsList,
163
+ attribute: attribute,
164
+ binding: binding
165
+ })
166
+ })]
165
167
  })
166
168
  }, attribute);
167
169
  })
@@ -175,7 +177,7 @@ const BlockBindingsPanel = ({
175
177
  const {
176
178
  removeAllBlockBindings
177
179
  } = (0, _blockBindings.useBlockBindingsUtils)();
178
- const bindableAttributes = (0, _useBindingsAttributes.getBindableAttributes)(blockName);
180
+ const bindableAttributes = (0, _blockBindings.getBindableAttributes)(blockName);
179
181
  const dropdownMenuProps = useToolsPanelDropdownMenuProps();
180
182
 
181
183
  // `useSelect` is used purposely here to ensure `getFieldsList`
@@ -231,7 +233,7 @@ const BlockBindingsPanel = ({
231
233
  ...bindings
232
234
  };
233
235
  Object.keys(filteredBindings).forEach(key => {
234
- if (!(0, _useBindingsAttributes.canBindAttribute)(blockName, key) || filteredBindings[key].source === 'core/pattern-overrides') {
236
+ if (!(0, _blockBindings.canBindAttribute)(blockName, key) || filteredBindings[key].source === 'core/pattern-overrides') {
235
237
  delete filteredBindings[key];
236
238
  }
237
239
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_blocks","_components","_data","_element","_compose","_useBindingsAttributes","_lockUnlock","_inspectorControls","_interopRequireDefault","_blockContext","_blockEdit","_blockBindings","_store","_jsxRuntime","Menu","unlock","componentsPrivateApis","EMPTY_OBJECT","useToolsPanelDropdownMenuProps","isMobile","useViewportMatch","popoverProps","placement","offset","BlockBindingsPanelDropdown","fieldsList","attribute","binding","clientId","useBlockEditContext","registeredSources","getBlockBindingsSources","updateBlockBindings","useBlockBindingsUtils","currentKey","args","key","attributeType","useSelect","select","name","blockName","blockEditorStore","getBlock","_attributeType","getBlockType","attributes","type","jsx","Fragment","children","Object","entries","map","fields","i","jsxs","Group","keys","length","GroupLabel","label","filter","RadioItem","onChange","source","value","checked","ItemLabel","ItemHelpText","Separator","BlockBindingsAttribute","sourceName","sourceProps","getBlockBindingsSource","isSourceInvalid","__experimentalVStack","className","spacing","__experimentalText","truncate","variant","isDestructive","__","ReadOnlyBlockBindingsPanelItems","bindings","__experimentalItem","EditableBlockBindingsPanelItems","__experimentalToolsPanelItem","hasValue","onDeselect","undefined","gutter","trigger","BlockBindingsPanel","metadata","blockContext","useContext","BlockContext","removeAllBlockBindings","bindableAttributes","getBindableAttributes","dropdownMenuProps","_fieldsList","canUpdateBlockBindings","forEach","getFieldsList","usesContext","context","sourceList","values","getSettings","filteredBindings","canBindAttribute","readOnly","default","group","__experimentalToolsPanel","resetAll","__experimentalItemGroup","isBordered","isSeparated","as","exports","_default","edit","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/block-bindings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockBindingsSource,\n\tgetBlockBindingsSources,\n\tgetBlockType,\n} 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 { 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 { useBlockEditContext } from '../components/block-edit';\nimport { useBlockBindingsUtils } from '../utils/block-bindings';\nimport { store as blockEditorStore } from '../store';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\nconst EMPTY_OBJECT = {};\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 { clientId } = useBlockEditContext();\n\tconst registeredSources = getBlockBindingsSources();\n\tconst { updateBlockBindings } = useBlockBindingsUtils();\n\tconst currentKey = binding?.args?.key;\n\tconst attributeType = useSelect(\n\t\t( select ) => {\n\t\t\tconst { name: blockName } =\n\t\t\t\tselect( blockEditorStore ).getBlock( clientId );\n\t\t\tconst _attributeType =\n\t\t\t\tgetBlockType( blockName ).attributes?.[ attribute ]?.type;\n\t\t\treturn _attributeType === 'rich-text' ? 'string' : _attributeType;\n\t\t},\n\t\t[ clientId, attribute ]\n\t);\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<Menu.Group>\n\t\t\t\t\t\t{ Object.keys( fieldsList ).length > 1 && (\n\t\t\t\t\t\t\t<Menu.GroupLabel>\n\t\t\t\t\t\t\t\t{ registeredSources[ name ].label }\n\t\t\t\t\t\t\t</Menu.GroupLabel>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ Object.entries( fields )\n\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t( [ , args ] ) => args?.type === attributeType\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.map( ( [ key, args ] ) => (\n\t\t\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\t\t\tkey={ key }\n\t\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\t\tupdateBlockBindings( {\n\t\t\t\t\t\t\t\t\t\t\t[ attribute ]: {\n\t\t\t\t\t\t\t\t\t\t\t\tsource: name,\n\t\t\t\t\t\t\t\t\t\t\t\targs: { key },\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tname={ attribute + '-binding' }\n\t\t\t\t\t\t\t\t\tvalue={ key }\n\t\t\t\t\t\t\t\t\tchecked={ key === currentKey }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t{ args?.label }\n\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t<Menu.ItemHelpText>\n\t\t\t\t\t\t\t\t\t\t{ args?.value }\n\t\t\t\t\t\t\t\t\t</Menu.ItemHelpText>\n\t\t\t\t\t\t\t\t</Menu.RadioItem>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t</Menu.Group>\n\t\t\t\t\t{ i !== Object.keys( fieldsList ).length - 1 && (\n\t\t\t\t\t\t<Menu.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, fieldsList } ) {\n\tconst { source: sourceName, args } = binding || {};\n\tconst sourceProps = getBlockBindingsSource( sourceName );\n\tconst isSourceInvalid = ! sourceProps;\n\treturn (\n\t\t<VStack className=\"block-editor-bindings__item\" spacing={ 0 }>\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: fieldsList?.[ sourceName ]?.[ args?.key ]?.label ||\n\t\t\t\t\t\t sourceProps?.label ||\n\t\t\t\t\t\t sourceName }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nfunction ReadOnlyBlockBindingsPanelItems( { bindings, fieldsList } ) {\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\tfieldsList={ fieldsList }\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<Menu\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\tfieldsList={ fieldsList }\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</Menu>\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 blockContext = useContext( BlockContext );\n\tconst { removeAllBlockBindings } = useBlockBindingsUtils();\n\tconst bindableAttributes = getBindableAttributes( blockName );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t// `useSelect` is used purposely here to ensure `getFieldsList`\n\t// is updated whenever there are updates in block context.\n\t// `source.getFieldsList` may also call a selector via `select`.\n\tconst _fieldsList = {};\n\tconst { fieldsList, canUpdateBlockBindings } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! bindableAttributes || bindableAttributes.length === 0 ) {\n\t\t\t\treturn EMPTY_OBJECT;\n\t\t\t}\n\t\t\tconst registeredSources = getBlockBindingsSources();\n\t\t\tObject.entries( registeredSources ).forEach(\n\t\t\t\t( [ sourceName, { getFieldsList, usesContext } ] ) => {\n\t\t\t\t\tif ( getFieldsList ) {\n\t\t\t\t\t\t// Populate context.\n\t\t\t\t\t\tconst context = {};\n\t\t\t\t\t\tif ( usesContext?.length ) {\n\t\t\t\t\t\t\tfor ( const key of usesContext ) {\n\t\t\t\t\t\t\t\tcontext[ key ] = blockContext[ key ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst sourceList = getFieldsList( {\n\t\t\t\t\t\t\tselect,\n\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\t// Only add source if the list is not empty.\n\t\t\t\t\t\tif ( Object.keys( sourceList || {} ).length ) {\n\t\t\t\t\t\t\t_fieldsList[ sourceName ] = { ...sourceList };\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tfieldsList:\n\t\t\t\t\tObject.values( _fieldsList ).length > 0\n\t\t\t\t\t\t? _fieldsList\n\t\t\t\t\t\t: EMPTY_OBJECT,\n\t\t\t\tcanUpdateBlockBindings:\n\t\t\t\t\tselect( blockEditorStore ).getSettings()\n\t\t\t\t\t\t.canUpdateBlockBindings,\n\t\t\t};\n\t\t},\n\t\t[ blockContext, bindableAttributes ]\n\t);\n\t// Return early if there are no bindable attributes.\n\tif ( ! bindableAttributes || bindableAttributes.length === 0 ) {\n\t\treturn null;\n\t}\n\t// Filter bindings to only show bindable attributes and remove pattern overrides.\n\tconst { bindings } = metadata || {};\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\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\tfieldsList={ fieldsList }\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{ /*\n\t\t\t\t\tUse a div element to make the ToolsPanelHiddenInnerWrapper\n\t\t\t\t\ttoggle the visibility of this help text automatically.\n\t\t\t\t*/ }\n\t\t\t\t<Text as=\"div\" variant=\"muted\">\n\t\t\t\t\t<p>\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</p>\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":["_i18n","require","_blocks","_components","_data","_element","_compose","_blockBindings","_lockUnlock","_inspectorControls","_interopRequireDefault","_blockContext","_blockEdit","_store","_jsxRuntime","Menu","unlock","componentsPrivateApis","EMPTY_OBJECT","useToolsPanelDropdownMenuProps","isMobile","useViewportMatch","popoverProps","placement","offset","BlockBindingsPanelMenuContent","fieldsList","attribute","binding","clientId","useBlockEditContext","registeredSources","getBlockBindingsSources","updateBlockBindings","useBlockBindingsUtils","currentKey","args","key","attributeType","useSelect","select","name","blockName","blockEditorStore","getBlock","_attributeType","getBlockType","attributes","type","jsx","Fragment","children","Object","entries","map","fields","i","jsxs","Group","keys","length","GroupLabel","label","filter","RadioItem","onChange","source","value","checked","ItemLabel","ItemHelpText","Separator","BlockBindingsAttribute","sourceName","sourceProps","getBlockBindingsSource","isSourceInvalid","__experimentalVStack","className","spacing","__experimentalText","truncate","variant","isDestructive","__","ReadOnlyBlockBindingsPanelItems","bindings","__experimentalItem","EditableBlockBindingsPanelItems","__experimentalToolsPanelItem","hasValue","onDeselect","undefined","TriggerButton","render","Popover","gutter","BlockBindingsPanel","metadata","blockContext","useContext","BlockContext","removeAllBlockBindings","bindableAttributes","getBindableAttributes","dropdownMenuProps","_fieldsList","canUpdateBlockBindings","forEach","getFieldsList","usesContext","context","sourceList","values","getSettings","filteredBindings","canBindAttribute","readOnly","default","group","__experimentalToolsPanel","resetAll","__experimentalItemGroup","isBordered","isSeparated","as","exports","_default","edit","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/block-bindings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockBindingsSource,\n\tgetBlockBindingsSources,\n\tgetBlockType,\n} 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 { 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\tuseBlockBindingsUtils,\n} from '../utils/block-bindings';\nimport { unlock } from '../lock-unlock';\nimport InspectorControls from '../components/inspector-controls';\nimport BlockContext from '../components/block-context';\nimport { useBlockEditContext } from '../components/block-edit';\nimport { store as blockEditorStore } from '../store';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\nconst EMPTY_OBJECT = {};\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 BlockBindingsPanelMenuContent( { fieldsList, attribute, binding } ) {\n\tconst { clientId } = useBlockEditContext();\n\tconst registeredSources = getBlockBindingsSources();\n\tconst { updateBlockBindings } = useBlockBindingsUtils();\n\tconst currentKey = binding?.args?.key;\n\tconst attributeType = useSelect(\n\t\t( select ) => {\n\t\t\tconst { name: blockName } =\n\t\t\t\tselect( blockEditorStore ).getBlock( clientId );\n\t\t\tconst _attributeType =\n\t\t\t\tgetBlockType( blockName ).attributes?.[ attribute ]?.type;\n\t\t\treturn _attributeType === 'rich-text' ? 'string' : _attributeType;\n\t\t},\n\t\t[ clientId, attribute ]\n\t);\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<Menu.Group>\n\t\t\t\t\t\t{ Object.keys( fieldsList ).length > 1 && (\n\t\t\t\t\t\t\t<Menu.GroupLabel>\n\t\t\t\t\t\t\t\t{ registeredSources[ name ].label }\n\t\t\t\t\t\t\t</Menu.GroupLabel>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ Object.entries( fields )\n\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t( [ , args ] ) => args?.type === attributeType\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.map( ( [ key, args ] ) => (\n\t\t\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\t\t\tkey={ key }\n\t\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\t\tupdateBlockBindings( {\n\t\t\t\t\t\t\t\t\t\t\t[ attribute ]: {\n\t\t\t\t\t\t\t\t\t\t\t\tsource: name,\n\t\t\t\t\t\t\t\t\t\t\t\targs: { key },\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tname={ attribute + '-binding' }\n\t\t\t\t\t\t\t\t\tvalue={ key }\n\t\t\t\t\t\t\t\t\tchecked={ key === currentKey }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t{ args?.label }\n\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t<Menu.ItemHelpText>\n\t\t\t\t\t\t\t\t\t\t{ args?.value }\n\t\t\t\t\t\t\t\t\t</Menu.ItemHelpText>\n\t\t\t\t\t\t\t\t</Menu.RadioItem>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t</Menu.Group>\n\t\t\t\t\t{ i !== Object.keys( fieldsList ).length - 1 && (\n\t\t\t\t\t\t<Menu.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, fieldsList } ) {\n\tconst { source: sourceName, args } = binding || {};\n\tconst sourceProps = getBlockBindingsSource( sourceName );\n\tconst isSourceInvalid = ! sourceProps;\n\treturn (\n\t\t<VStack className=\"block-editor-bindings__item\" spacing={ 0 }>\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: fieldsList?.[ sourceName ]?.[ args?.key ]?.label ||\n\t\t\t\t\t\t sourceProps?.label ||\n\t\t\t\t\t\t sourceName }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nfunction ReadOnlyBlockBindingsPanelItems( { bindings, fieldsList } ) {\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\tfieldsList={ fieldsList }\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<Menu\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>\n\t\t\t\t\t\t\t<Menu.TriggerButton render={ <Item /> }>\n\t\t\t\t\t\t\t\t<BlockBindingsAttribute\n\t\t\t\t\t\t\t\t\tattribute={ attribute }\n\t\t\t\t\t\t\t\t\tbinding={ binding }\n\t\t\t\t\t\t\t\t\tfieldsList={ fieldsList }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Menu.TriggerButton>\n\t\t\t\t\t\t\t<Menu.Popover gutter={ isMobile ? 8 : 36 }>\n\t\t\t\t\t\t\t\t<BlockBindingsPanelMenuContent\n\t\t\t\t\t\t\t\t\tfieldsList={ fieldsList }\n\t\t\t\t\t\t\t\t\tattribute={ attribute }\n\t\t\t\t\t\t\t\t\tbinding={ binding }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Menu.Popover>\n\t\t\t\t\t\t</Menu>\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 blockContext = useContext( BlockContext );\n\tconst { removeAllBlockBindings } = useBlockBindingsUtils();\n\tconst bindableAttributes = getBindableAttributes( blockName );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t// `useSelect` is used purposely here to ensure `getFieldsList`\n\t// is updated whenever there are updates in block context.\n\t// `source.getFieldsList` may also call a selector via `select`.\n\tconst _fieldsList = {};\n\tconst { fieldsList, canUpdateBlockBindings } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! bindableAttributes || bindableAttributes.length === 0 ) {\n\t\t\t\treturn EMPTY_OBJECT;\n\t\t\t}\n\t\t\tconst registeredSources = getBlockBindingsSources();\n\t\t\tObject.entries( registeredSources ).forEach(\n\t\t\t\t( [ sourceName, { getFieldsList, usesContext } ] ) => {\n\t\t\t\t\tif ( getFieldsList ) {\n\t\t\t\t\t\t// Populate context.\n\t\t\t\t\t\tconst context = {};\n\t\t\t\t\t\tif ( usesContext?.length ) {\n\t\t\t\t\t\t\tfor ( const key of usesContext ) {\n\t\t\t\t\t\t\t\tcontext[ key ] = blockContext[ key ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst sourceList = getFieldsList( {\n\t\t\t\t\t\t\tselect,\n\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\t// Only add source if the list is not empty.\n\t\t\t\t\t\tif ( Object.keys( sourceList || {} ).length ) {\n\t\t\t\t\t\t\t_fieldsList[ sourceName ] = { ...sourceList };\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tfieldsList:\n\t\t\t\t\tObject.values( _fieldsList ).length > 0\n\t\t\t\t\t\t? _fieldsList\n\t\t\t\t\t\t: EMPTY_OBJECT,\n\t\t\t\tcanUpdateBlockBindings:\n\t\t\t\t\tselect( blockEditorStore ).getSettings()\n\t\t\t\t\t\t.canUpdateBlockBindings,\n\t\t\t};\n\t\t},\n\t\t[ blockContext, bindableAttributes ]\n\t);\n\t// Return early if there are no bindable attributes.\n\tif ( ! bindableAttributes || bindableAttributes.length === 0 ) {\n\t\treturn null;\n\t}\n\t// Filter bindings to only show bindable attributes and remove pattern overrides.\n\tconst { bindings } = metadata || {};\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\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\tfieldsList={ fieldsList }\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{ /*\n\t\t\t\t\tUse a div element to make the ToolsPanelHiddenInnerWrapper\n\t\t\t\t\ttoggle the visibility of this help text automatically.\n\t\t\t\t*/ }\n\t\t\t\t<Text as=\"div\" variant=\"muted\">\n\t\t\t\t\t<p>\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</p>\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,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  "use strict";
2
3
 
3
4
  Object.defineProperty(exports, "__esModule", {
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_element","_components","_blocks","_data","_components2","_store","_jsxRuntime","EMPTY_OBJECT","BlockHooksControlPure","name","clientId","metadata","ignoredHookedBlocks","blockTypes","useSelect","select","blocksStore","getBlockTypes","hookedBlocksForCurrentBlock","useMemo","filter","blockName","blockHooks","includes","hookedBlockClientIds","getBlocks","getBlockRootClientId","getGlobalBlockCount","blockEditorStore","rootClientId","_hookedBlockClientIds","reduce","clientIds","block","relativePosition","candidates","undefined","hookedBlock","find","candidate","Object","values","length","getBlockIndex","getBlockCount","insertBlock","removeBlock","useDispatch","groupedHookedBlocks","groups","namespace","split","push","insertBlockIntoDesignatedLocation","blockIndex","innerBlocksLength","jsx","InspectorControls","children","jsxs","PanelBody","className","title","__","initialOpen","keys","map","vendor","Fragment","checked","ToggleControl","__nextHasNoMarginBottom","label","onChange","createBlock","_default","exports","default","edit","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/block-hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Fragment, useMemo } from '@wordpress/element';\nimport { PanelBody, ToggleControl } from '@wordpress/components';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { InspectorControls } from '../components';\nimport { store as blockEditorStore } from '../store';\n\nconst EMPTY_OBJECT = {};\n\nfunction BlockHooksControlPure( {\n\tname,\n\tclientId,\n\tmetadata: { ignoredHookedBlocks = [] } = {},\n} ) {\n\tconst blockTypes = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockTypes(),\n\t\t[]\n\t);\n\n\t// A hooked block added via a filter will not be exposed through a block\n\t// type's `blockHooks` property; however, if the containing layout has been\n\t// modified, it will be present in the anchor block's `ignoredHookedBlocks`\n\t// metadata.\n\tconst hookedBlocksForCurrentBlock = useMemo(\n\t\t() =>\n\t\t\tblockTypes?.filter(\n\t\t\t\t( { name: blockName, blockHooks } ) =>\n\t\t\t\t\t( blockHooks && name in blockHooks ) ||\n\t\t\t\t\tignoredHookedBlocks.includes( blockName )\n\t\t\t),\n\t\t[ blockTypes, name, ignoredHookedBlocks ]\n\t);\n\n\tconst hookedBlockClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks, getBlockRootClientId, getGlobalBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst _hookedBlockClientIds = hookedBlocksForCurrentBlock.reduce(\n\t\t\t\t( clientIds, block ) => {\n\t\t\t\t\t// If the block doesn't exist anywhere in the block tree,\n\t\t\t\t\t// we know that we have to set the toggle to disabled.\n\t\t\t\t\tif ( getGlobalBlockCount( block.name ) === 0 ) {\n\t\t\t\t\t\treturn clientIds;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst relativePosition = block?.blockHooks?.[ name ];\n\t\t\t\t\tlet candidates;\n\n\t\t\t\t\tswitch ( relativePosition ) {\n\t\t\t\t\t\tcase 'before':\n\t\t\t\t\t\tcase 'after':\n\t\t\t\t\t\t\t// Any of the current block's siblings (with the right block type) qualifies\n\t\t\t\t\t\t\t// as a hooked block (inserted `before` or `after` the current one), as the block\n\t\t\t\t\t\t\t// might've been automatically inserted and then moved around a bit by the user.\n\t\t\t\t\t\t\tcandidates = getBlocks( rootClientId );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'first_child':\n\t\t\t\t\t\tcase 'last_child':\n\t\t\t\t\t\t\t// Any of the current block's child blocks (with the right block type) qualifies\n\t\t\t\t\t\t\t// as a hooked first or last child block, as the block might've been automatically\n\t\t\t\t\t\t\t// inserted and then moved around a bit by the user.\n\t\t\t\t\t\t\tcandidates = getBlocks( clientId );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase undefined:\n\t\t\t\t\t\t\t// If we haven't found a blockHooks field with a relative position for the hooked\n\t\t\t\t\t\t\t// block, it means that it was added by a filter. In this case, we look for the block\n\t\t\t\t\t\t\t// both among the current block's siblings and its children.\n\t\t\t\t\t\t\tcandidates = [\n\t\t\t\t\t\t\t\t...getBlocks( rootClientId ),\n\t\t\t\t\t\t\t\t...getBlocks( clientId ),\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst hookedBlock = candidates?.find(\n\t\t\t\t\t\t( candidate ) => candidate.name === block.name\n\t\t\t\t\t);\n\n\t\t\t\t\t// If the block exists in the designated location, we consider it hooked\n\t\t\t\t\t// and show the toggle as enabled.\n\t\t\t\t\tif ( hookedBlock ) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...clientIds,\n\t\t\t\t\t\t\t[ block.name ]: hookedBlock.clientId,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\t// If no hooked block was found in any of its designated locations,\n\t\t\t\t\t// we set the toggle to disabled.\n\t\t\t\t\treturn clientIds;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\n\t\t\tif ( Object.values( _hookedBlockClientIds ).length > 0 ) {\n\t\t\t\treturn _hookedBlockClientIds;\n\t\t\t}\n\n\t\t\treturn EMPTY_OBJECT;\n\t\t},\n\t\t[ hookedBlocksForCurrentBlock, name, clientId ]\n\t);\n\n\tconst { getBlockIndex, getBlockCount, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { insertBlock, removeBlock } = useDispatch( blockEditorStore );\n\n\tif ( ! hookedBlocksForCurrentBlock.length ) {\n\t\treturn null;\n\t}\n\n\t// Group by block namespace (i.e. prefix before the slash).\n\tconst groupedHookedBlocks = hookedBlocksForCurrentBlock.reduce(\n\t\t( groups, block ) => {\n\t\t\tconst [ namespace ] = block.name.split( '/' );\n\t\t\tif ( ! groups[ namespace ] ) {\n\t\t\t\tgroups[ namespace ] = [];\n\t\t\t}\n\t\t\tgroups[ namespace ].push( block );\n\t\t\treturn groups;\n\t\t},\n\t\t{}\n\t);\n\n\tconst insertBlockIntoDesignatedLocation = ( block, relativePosition ) => {\n\t\tconst blockIndex = getBlockIndex( clientId );\n\t\tconst innerBlocksLength = getBlockCount( clientId );\n\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\tswitch ( relativePosition ) {\n\t\t\tcase 'before':\n\t\t\tcase 'after':\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\trelativePosition === 'after' ? blockIndex + 1 : blockIndex,\n\t\t\t\t\trootClientId, // Insert as a child of the current block's parent\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\n\t\t\tcase 'first_child':\n\t\t\tcase 'last_child':\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\t// TODO: It'd be great if insertBlock() would accept negative indices for insertion.\n\t\t\t\t\trelativePosition === 'first_child' ? 0 : innerBlocksLength,\n\t\t\t\t\tclientId, // Insert as a child of the current block.\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\n\t\t\tcase undefined:\n\t\t\t\t// If we do not know the relative position, it is because the block was\n\t\t\t\t// added via a filter. In this case, we default to inserting it after the\n\t\t\t\t// current block.\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\tblockIndex + 1,\n\t\t\t\t\trootClientId, // Insert as a child of the current block's parent\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<PanelBody\n\t\t\t\tclassName=\"block-editor-hooks__block-hooks\"\n\t\t\t\ttitle={ __( 'Plugins' ) }\n\t\t\t\tinitialOpen\n\t\t\t>\n\t\t\t\t<p className=\"block-editor-hooks__block-hooks-helptext\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Manage the inclusion of blocks added automatically by plugins.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t{ Object.keys( groupedHookedBlocks ).map( ( vendor ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Fragment key={ vendor }>\n\t\t\t\t\t\t\t<h3>{ vendor }</h3>\n\t\t\t\t\t\t\t{ groupedHookedBlocks[ vendor ].map( ( block ) => {\n\t\t\t\t\t\t\t\tconst checked =\n\t\t\t\t\t\t\t\t\tblock.name in hookedBlockClientIds;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tchecked={ checked }\n\t\t\t\t\t\t\t\t\t\tkey={ block.title }\n\t\t\t\t\t\t\t\t\t\tlabel={ block.title }\n\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\tif ( ! checked ) {\n\t\t\t\t\t\t\t\t\t\t\t\t// Create and insert block.\n\t\t\t\t\t\t\t\t\t\t\t\tconst relativePosition =\n\t\t\t\t\t\t\t\t\t\t\t\t\tblock.blockHooks[ name ];\n\t\t\t\t\t\t\t\t\t\t\t\tinsertBlockIntoDesignatedLocation(\n\t\t\t\t\t\t\t\t\t\t\t\t\tcreateBlock( block.name ),\n\t\t\t\t\t\t\t\t\t\t\t\t\trelativePosition\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Remove block.\n\t\t\t\t\t\t\t\t\t\t\tremoveBlock(\n\t\t\t\t\t\t\t\t\t\t\t\thookedBlockClientIds[\n\t\t\t\t\t\t\t\t\t\t\t\t\tblock.name\n\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n}\n\nexport default {\n\tedit: BlockHooksControlPure,\n\tattributeKeys: [ 'metadata' ],\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_element","_components","_blocks","_data","_components2","_store","_jsxRuntime","EMPTY_OBJECT","BlockHooksControlPure","name","clientId","metadata","ignoredHookedBlocks","blockTypes","useSelect","select","blocksStore","getBlockTypes","hookedBlocksForCurrentBlock","useMemo","filter","blockName","blockHooks","includes","hookedBlockClientIds","getBlocks","getBlockRootClientId","getGlobalBlockCount","blockEditorStore","rootClientId","_hookedBlockClientIds","reduce","clientIds","block","relativePosition","candidates","undefined","hookedBlock","find","candidate","Object","values","length","getBlockIndex","getBlockCount","insertBlock","removeBlock","useDispatch","groupedHookedBlocks","groups","namespace","split","push","insertBlockIntoDesignatedLocation","blockIndex","innerBlocksLength","jsx","InspectorControls","children","jsxs","PanelBody","className","title","__","initialOpen","keys","map","vendor","Fragment","checked","ToggleControl","__nextHasNoMarginBottom","label","onChange","createBlock","_default","exports","default","edit","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/block-hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Fragment, useMemo } from '@wordpress/element';\nimport { PanelBody, ToggleControl } from '@wordpress/components';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { InspectorControls } from '../components';\nimport { store as blockEditorStore } from '../store';\n\nconst EMPTY_OBJECT = {};\n\nfunction BlockHooksControlPure( {\n\tname,\n\tclientId,\n\tmetadata: { ignoredHookedBlocks = [] } = {},\n} ) {\n\tconst blockTypes = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockTypes(),\n\t\t[]\n\t);\n\n\t// A hooked block added via a filter will not be exposed through a block\n\t// type's `blockHooks` property; however, if the containing layout has been\n\t// modified, it will be present in the anchor block's `ignoredHookedBlocks`\n\t// metadata.\n\tconst hookedBlocksForCurrentBlock = useMemo(\n\t\t() =>\n\t\t\tblockTypes?.filter(\n\t\t\t\t( { name: blockName, blockHooks } ) =>\n\t\t\t\t\t( blockHooks && name in blockHooks ) ||\n\t\t\t\t\tignoredHookedBlocks.includes( blockName )\n\t\t\t),\n\t\t[ blockTypes, name, ignoredHookedBlocks ]\n\t);\n\n\tconst hookedBlockClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks, getBlockRootClientId, getGlobalBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst _hookedBlockClientIds = hookedBlocksForCurrentBlock.reduce(\n\t\t\t\t( clientIds, block ) => {\n\t\t\t\t\t// If the block doesn't exist anywhere in the block tree,\n\t\t\t\t\t// we know that we have to set the toggle to disabled.\n\t\t\t\t\tif ( getGlobalBlockCount( block.name ) === 0 ) {\n\t\t\t\t\t\treturn clientIds;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst relativePosition = block?.blockHooks?.[ name ];\n\t\t\t\t\tlet candidates;\n\n\t\t\t\t\tswitch ( relativePosition ) {\n\t\t\t\t\t\tcase 'before':\n\t\t\t\t\t\tcase 'after':\n\t\t\t\t\t\t\t// Any of the current block's siblings (with the right block type) qualifies\n\t\t\t\t\t\t\t// as a hooked block (inserted `before` or `after` the current one), as the block\n\t\t\t\t\t\t\t// might've been automatically inserted and then moved around a bit by the user.\n\t\t\t\t\t\t\tcandidates = getBlocks( rootClientId );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'first_child':\n\t\t\t\t\t\tcase 'last_child':\n\t\t\t\t\t\t\t// Any of the current block's child blocks (with the right block type) qualifies\n\t\t\t\t\t\t\t// as a hooked first or last child block, as the block might've been automatically\n\t\t\t\t\t\t\t// inserted and then moved around a bit by the user.\n\t\t\t\t\t\t\tcandidates = getBlocks( clientId );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase undefined:\n\t\t\t\t\t\t\t// If we haven't found a blockHooks field with a relative position for the hooked\n\t\t\t\t\t\t\t// block, it means that it was added by a filter. In this case, we look for the block\n\t\t\t\t\t\t\t// both among the current block's siblings and its children.\n\t\t\t\t\t\t\tcandidates = [\n\t\t\t\t\t\t\t\t...getBlocks( rootClientId ),\n\t\t\t\t\t\t\t\t...getBlocks( clientId ),\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst hookedBlock = candidates?.find(\n\t\t\t\t\t\t( candidate ) => candidate.name === block.name\n\t\t\t\t\t);\n\n\t\t\t\t\t// If the block exists in the designated location, we consider it hooked\n\t\t\t\t\t// and show the toggle as enabled.\n\t\t\t\t\tif ( hookedBlock ) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...clientIds,\n\t\t\t\t\t\t\t[ block.name ]: hookedBlock.clientId,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\t// If no hooked block was found in any of its designated locations,\n\t\t\t\t\t// we set the toggle to disabled.\n\t\t\t\t\treturn clientIds;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\n\t\t\tif ( Object.values( _hookedBlockClientIds ).length > 0 ) {\n\t\t\t\treturn _hookedBlockClientIds;\n\t\t\t}\n\n\t\t\treturn EMPTY_OBJECT;\n\t\t},\n\t\t[ hookedBlocksForCurrentBlock, name, clientId ]\n\t);\n\n\tconst { getBlockIndex, getBlockCount, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { insertBlock, removeBlock } = useDispatch( blockEditorStore );\n\n\tif ( ! hookedBlocksForCurrentBlock.length ) {\n\t\treturn null;\n\t}\n\n\t// Group by block namespace (i.e. prefix before the slash).\n\tconst groupedHookedBlocks = hookedBlocksForCurrentBlock.reduce(\n\t\t( groups, block ) => {\n\t\t\tconst [ namespace ] = block.name.split( '/' );\n\t\t\tif ( ! groups[ namespace ] ) {\n\t\t\t\tgroups[ namespace ] = [];\n\t\t\t}\n\t\t\tgroups[ namespace ].push( block );\n\t\t\treturn groups;\n\t\t},\n\t\t{}\n\t);\n\n\tconst insertBlockIntoDesignatedLocation = ( block, relativePosition ) => {\n\t\tconst blockIndex = getBlockIndex( clientId );\n\t\tconst innerBlocksLength = getBlockCount( clientId );\n\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\tswitch ( relativePosition ) {\n\t\t\tcase 'before':\n\t\t\tcase 'after':\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\trelativePosition === 'after' ? blockIndex + 1 : blockIndex,\n\t\t\t\t\trootClientId, // Insert as a child of the current block's parent\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\n\t\t\tcase 'first_child':\n\t\t\tcase 'last_child':\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\t// TODO: It'd be great if insertBlock() would accept negative indices for insertion.\n\t\t\t\t\trelativePosition === 'first_child' ? 0 : innerBlocksLength,\n\t\t\t\t\tclientId, // Insert as a child of the current block.\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\n\t\t\tcase undefined:\n\t\t\t\t// If we do not know the relative position, it is because the block was\n\t\t\t\t// added via a filter. In this case, we default to inserting it after the\n\t\t\t\t// current block.\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\tblockIndex + 1,\n\t\t\t\t\trootClientId, // Insert as a child of the current block's parent\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<PanelBody\n\t\t\t\tclassName=\"block-editor-hooks__block-hooks\"\n\t\t\t\ttitle={ __( 'Plugins' ) }\n\t\t\t\tinitialOpen\n\t\t\t>\n\t\t\t\t<p className=\"block-editor-hooks__block-hooks-helptext\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Manage the inclusion of blocks added automatically by plugins.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t{ Object.keys( groupedHookedBlocks ).map( ( vendor ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Fragment key={ vendor }>\n\t\t\t\t\t\t\t<h3>{ vendor }</h3>\n\t\t\t\t\t\t\t{ groupedHookedBlocks[ vendor ].map( ( block ) => {\n\t\t\t\t\t\t\t\tconst checked =\n\t\t\t\t\t\t\t\t\tblock.name in hookedBlockClientIds;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tchecked={ checked }\n\t\t\t\t\t\t\t\t\t\tkey={ block.title }\n\t\t\t\t\t\t\t\t\t\tlabel={ block.title }\n\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\tif ( ! checked ) {\n\t\t\t\t\t\t\t\t\t\t\t\t// Create and insert block.\n\t\t\t\t\t\t\t\t\t\t\t\tconst relativePosition =\n\t\t\t\t\t\t\t\t\t\t\t\t\tblock.blockHooks[ name ];\n\t\t\t\t\t\t\t\t\t\t\t\tinsertBlockIntoDesignatedLocation(\n\t\t\t\t\t\t\t\t\t\t\t\t\tcreateBlock( block.name ),\n\t\t\t\t\t\t\t\t\t\t\t\t\trelativePosition\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Remove block.\n\t\t\t\t\t\t\t\t\t\t\tremoveBlock(\n\t\t\t\t\t\t\t\t\t\t\t\thookedBlockClientIds[\n\t\t\t\t\t\t\t\t\t\t\t\t\tblock.name\n\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n}\n\nexport default {\n\tedit: BlockHooksControlPure,\n\tattributeKeys: [ 'metadata' ],\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  "use strict";
2
3
 
3
4
  Object.defineProperty(exports, "__esModule", {
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_data","_element","_globalStyles","_utils","_object","_store","_privateKeys","_lockUnlock","_jsxRuntime","VARIATION_PREFIX","getVariationMatches","className","split","reduce","matches","name","startsWith","match","slice","length","push","getVariationNameFromClass","registeredStyles","variation","some","style","OverrideStyles","override","usePrivateStyleOverride","__unstableBlockStyleVariationOverridesWithConfig","config","getBlockStyles","overrides","useSelect","select","blocksStore","unlock","blockEditorStore","getStyleOverrides","getBlockName","overridesWithConfig","useMemo","newOverrides","overriddenClientIds","clientId","includes","blockName","configStyles","styles","blocks","variations","variationConfig","settings","blockSelectors","getBlockSelectors","getBlockTypes","hasBlockGapSupport","hasFallbackGapSupport","disableLayoutStyles","disableRootPadding","variationStyles","toStyles","blockGap","blockStyles","layoutStyles","marginReset","presets","rootPadding","id","css","__unstableType","jsx","Fragment","children","map","getVariationStylesWithRefValues","globalStyles","replaceRefs","Object","keys","forEach","key","value","ref","undefined","trim","refValue","getValueFromObjectPath","JSON","parse","stringify","useBlockStyleVariation","merged","mergedConfig","useContext","GlobalStylesContext","globalSettings","getSettings","__experimentalFeatures","globalStylesDataKey","_mergedConfig$setting","_mergedConfig$styles","_mergedConfig$setting2","useBlockProps","variationClass","_default","exports","default","hasSupport","attributeKeys","isMatch"],"sources":["@wordpress/block-editor/src/hooks/block-style-variation.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockTypes, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tGlobalStylesContext,\n\ttoStyles,\n\tgetBlockSelectors,\n} from '../components/global-styles';\nimport { usePrivateStyleOverride } from './utils';\nimport { getValueFromObjectPath } from '../utils/object';\nimport { store as blockEditorStore } from '../store';\nimport { globalStylesDataKey } from '../store/private-keys';\nimport { unlock } from '../lock-unlock';\n\nconst VARIATION_PREFIX = 'is-style-';\n\nfunction getVariationMatches( className ) {\n\tif ( ! className ) {\n\t\treturn [];\n\t}\n\treturn className.split( /\\s+/ ).reduce( ( matches, name ) => {\n\t\tif ( name.startsWith( VARIATION_PREFIX ) ) {\n\t\t\tconst match = name.slice( VARIATION_PREFIX.length );\n\t\t\tif ( match !== 'default' ) {\n\t\t\t\tmatches.push( match );\n\t\t\t}\n\t\t}\n\t\treturn matches;\n\t}, [] );\n}\n\n/**\n * Get the first block style variation that has been registered from the class string.\n *\n * @param {string} className CSS class string for a block.\n * @param {Array} registeredStyles Currently registered block styles.\n *\n * @return {string|null} The name of the first registered variation.\n */\nfunction getVariationNameFromClass( className, registeredStyles = [] ) {\n\t// The global flag affects how capturing groups work in JS. So the regex\n\t// below will only return full CSS classes not just the variation name.\n\tconst matches = getVariationMatches( className );\n\n\tif ( ! matches ) {\n\t\treturn null;\n\t}\n\n\tfor ( const variation of matches ) {\n\t\tif ( registeredStyles.some( ( style ) => style.name === variation ) ) {\n\t\t\treturn variation;\n\t\t}\n\t}\n\treturn null;\n}\n\n// A helper component to apply a style override using the useStyleOverride hook.\nfunction OverrideStyles( { override } ) {\n\tusePrivateStyleOverride( override );\n}\n\n/**\n * This component is used to generate new block style variation overrides\n * based on an incoming theme config. If a matching style is found in the config,\n * a new override is created and returned. The overrides can be used in conjunction with\n * useStyleOverride to apply the new styles to the editor. Its use is\n * subject to change.\n *\n * @param {Object} props Props.\n * @param {Object} props.config A global styles object, containing settings and styles.\n * @return {JSX.Element|undefined} An array of new block variation overrides.\n */\nexport function __unstableBlockStyleVariationOverridesWithConfig( { config } ) {\n\tconst { getBlockStyles, overrides } = useSelect(\n\t\t( select ) => ( {\n\t\t\tgetBlockStyles: select( blocksStore ).getBlockStyles,\n\t\t\toverrides: unlock( select( blockEditorStore ) ).getStyleOverrides(),\n\t\t} ),\n\t\t[]\n\t);\n\tconst { getBlockName } = useSelect( blockEditorStore );\n\n\tconst overridesWithConfig = useMemo( () => {\n\t\tif ( ! overrides?.length ) {\n\t\t\treturn;\n\t\t}\n\t\tconst newOverrides = [];\n\t\tconst overriddenClientIds = [];\n\t\tfor ( const [ , override ] of overrides ) {\n\t\t\tif (\n\t\t\t\toverride?.variation &&\n\t\t\t\toverride?.clientId &&\n\t\t\t\t/*\n\t\t\t\t * Because this component overwrites existing style overrides,\n\t\t\t\t * filter out any overrides that are already present in the store.\n\t\t\t\t */\n\t\t\t\t! overriddenClientIds.includes( override.clientId )\n\t\t\t) {\n\t\t\t\tconst blockName = getBlockName( override.clientId );\n\t\t\t\tconst configStyles =\n\t\t\t\t\tconfig?.styles?.blocks?.[ blockName ]?.variations?.[\n\t\t\t\t\t\toverride.variation\n\t\t\t\t\t];\n\t\t\t\tif ( configStyles ) {\n\t\t\t\t\tconst variationConfig = {\n\t\t\t\t\t\tsettings: config?.settings,\n\t\t\t\t\t\t// The variation style data is all that is needed to generate\n\t\t\t\t\t\t// the styles for the current application to a block. The variation\n\t\t\t\t\t\t// name is updated to match the instance specific class name.\n\t\t\t\t\t\tstyles: {\n\t\t\t\t\t\t\tblocks: {\n\t\t\t\t\t\t\t\t[ blockName ]: {\n\t\t\t\t\t\t\t\t\tvariations: {\n\t\t\t\t\t\t\t\t\t\t[ `${ override.variation }-${ override.clientId }` ]:\n\t\t\t\t\t\t\t\t\t\t\tconfigStyles,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t\tconst blockSelectors = getBlockSelectors(\n\t\t\t\t\t\tgetBlockTypes(),\n\t\t\t\t\t\tgetBlockStyles,\n\t\t\t\t\t\toverride.clientId\n\t\t\t\t\t);\n\t\t\t\t\tconst hasBlockGapSupport = false;\n\t\t\t\t\tconst hasFallbackGapSupport = true;\n\t\t\t\t\tconst disableLayoutStyles = true;\n\t\t\t\t\tconst disableRootPadding = true;\n\t\t\t\t\tconst variationStyles = toStyles(\n\t\t\t\t\t\tvariationConfig,\n\t\t\t\t\t\tblockSelectors,\n\t\t\t\t\t\thasBlockGapSupport,\n\t\t\t\t\t\thasFallbackGapSupport,\n\t\t\t\t\t\tdisableLayoutStyles,\n\t\t\t\t\t\tdisableRootPadding,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tblockGap: false,\n\t\t\t\t\t\t\tblockStyles: true,\n\t\t\t\t\t\t\tlayoutStyles: false,\n\t\t\t\t\t\t\tmarginReset: false,\n\t\t\t\t\t\t\tpresets: false,\n\t\t\t\t\t\t\trootPadding: false,\n\t\t\t\t\t\t\tvariationStyles: true,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\tnewOverrides.push( {\n\t\t\t\t\t\tid: `${ override.variation }-${ override.clientId }`,\n\t\t\t\t\t\tcss: variationStyles,\n\t\t\t\t\t\t__unstableType: 'variation',\n\t\t\t\t\t\tvariation: override.variation,\n\t\t\t\t\t\t// The clientId will be stored with the override and used to ensure\n\t\t\t\t\t\t// the order of overrides matches the order of blocks so that the\n\t\t\t\t\t\t// correct CSS cascade is maintained.\n\t\t\t\t\t\tclientId: override.clientId,\n\t\t\t\t\t} );\n\t\t\t\t\toverriddenClientIds.push( override.clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn newOverrides;\n\t}, [ config, overrides, getBlockStyles, getBlockName ] );\n\n\tif ( ! overridesWithConfig || ! overridesWithConfig.length ) {\n\t\treturn;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ overridesWithConfig.map( ( override ) => (\n\t\t\t\t<OverrideStyles key={ override.id } override={ override } />\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\n/**\n * Retrieves any variation styles data and resolves any referenced values.\n *\n * @param {Object} globalStyles A complete global styles object, containing settings and styles.\n * @param {string} name The name of the desired block type.\n * @param {variation} variation The of the block style variation to retrieve data for.\n *\n * @return {Object|undefined} The global styles data for the specified variation.\n */\nexport function getVariationStylesWithRefValues(\n\tglobalStyles,\n\tname,\n\tvariation\n) {\n\tif ( ! globalStyles?.styles?.blocks?.[ name ]?.variations?.[ variation ] ) {\n\t\treturn;\n\t}\n\n\t// Helper to recursively look for `ref` values to resolve.\n\tconst replaceRefs = ( variationStyles ) => {\n\t\tObject.keys( variationStyles ).forEach( ( key ) => {\n\t\t\tconst value = variationStyles[ key ];\n\n\t\t\t// Only process objects.\n\t\t\tif ( typeof value === 'object' && value !== null ) {\n\t\t\t\t// Process `ref` value if present.\n\t\t\t\tif ( value.ref !== undefined ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof value.ref !== 'string' ||\n\t\t\t\t\t\tvalue.ref.trim() === ''\n\t\t\t\t\t) {\n\t\t\t\t\t\t// Remove invalid ref.\n\t\t\t\t\t\tdelete variationStyles[ key ];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Resolve `ref` value.\n\t\t\t\t\t\tconst refValue = getValueFromObjectPath(\n\t\t\t\t\t\t\tglobalStyles,\n\t\t\t\t\t\t\tvalue.ref\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif ( refValue ) {\n\t\t\t\t\t\t\tvariationStyles[ key ] = refValue;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdelete variationStyles[ key ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Recursively resolve `ref` values in nested objects.\n\t\t\t\t\treplaceRefs( value );\n\n\t\t\t\t\t// After recursion, if value is empty due to explicitly\n\t\t\t\t\t// `undefined` ref value, remove it.\n\t\t\t\t\tif ( Object.keys( value ).length === 0 ) {\n\t\t\t\t\t\tdelete variationStyles[ key ];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t};\n\n\t// Deep clone variation node to avoid mutating it within global styles and losing refs.\n\tconst styles = JSON.parse(\n\t\tJSON.stringify(\n\t\t\tglobalStyles.styles.blocks[ name ].variations[ variation ]\n\t\t)\n\t);\n\treplaceRefs( styles );\n\n\treturn styles;\n}\n\nfunction useBlockStyleVariation( name, variation, clientId ) {\n\t// Prefer global styles data in GlobalStylesContext, which are available\n\t// if in the site editor. Otherwise fall back to whatever is in the\n\t// editor settings and available in the post editor.\n\tconst { merged: mergedConfig } = useContext( GlobalStylesContext );\n\tconst { globalSettings, globalStyles } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\treturn {\n\t\t\tglobalSettings: settings.__experimentalFeatures,\n\t\t\tglobalStyles: settings[ globalStylesDataKey ],\n\t\t};\n\t}, [] );\n\n\treturn useMemo( () => {\n\t\tconst variationStyles = getVariationStylesWithRefValues(\n\t\t\t{\n\t\t\t\tsettings: mergedConfig?.settings ?? globalSettings,\n\t\t\t\tstyles: mergedConfig?.styles ?? globalStyles,\n\t\t\t},\n\t\t\tname,\n\t\t\tvariation\n\t\t);\n\n\t\treturn {\n\t\t\tsettings: mergedConfig?.settings ?? globalSettings,\n\t\t\t// The variation style data is all that is needed to generate\n\t\t\t// the styles for the current application to a block. The variation\n\t\t\t// name is updated to match the instance specific class name.\n\t\t\tstyles: {\n\t\t\t\tblocks: {\n\t\t\t\t\t[ name ]: {\n\t\t\t\t\t\tvariations: {\n\t\t\t\t\t\t\t[ `${ variation }-${ clientId }` ]: variationStyles,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tglobalSettings,\n\t\tglobalStyles,\n\t\tvariation,\n\t\tclientId,\n\t\tname,\n\t] );\n}\n\n// Rather than leveraging `useInstanceId` here, the `clientId` is used.\n// This is so that the variation style override's ID is predictable\n// when the order of applied style variations changes.\nfunction useBlockProps( { name, className, clientId } ) {\n\tconst { getBlockStyles } = useSelect( blocksStore );\n\n\tconst registeredStyles = getBlockStyles( name );\n\tconst variation = getVariationNameFromClass( className, registeredStyles );\n\tconst variationClass = `${ VARIATION_PREFIX }${ variation }-${ clientId }`;\n\n\tconst { settings, styles } = useBlockStyleVariation(\n\t\tname,\n\t\tvariation,\n\t\tclientId\n\t);\n\n\tconst variationStyles = useMemo( () => {\n\t\tif ( ! variation ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst variationConfig = { settings, styles };\n\t\tconst blockSelectors = getBlockSelectors(\n\t\t\tgetBlockTypes(),\n\t\t\tgetBlockStyles,\n\t\t\tclientId\n\t\t);\n\t\tconst hasBlockGapSupport = false;\n\t\tconst hasFallbackGapSupport = true;\n\t\tconst disableLayoutStyles = true;\n\t\tconst disableRootPadding = true;\n\n\t\treturn toStyles(\n\t\t\tvariationConfig,\n\t\t\tblockSelectors,\n\t\t\thasBlockGapSupport,\n\t\t\thasFallbackGapSupport,\n\t\t\tdisableLayoutStyles,\n\t\t\tdisableRootPadding,\n\t\t\t{\n\t\t\t\tblockGap: false,\n\t\t\t\tblockStyles: true,\n\t\t\t\tlayoutStyles: false,\n\t\t\t\tmarginReset: false,\n\t\t\t\tpresets: false,\n\t\t\t\trootPadding: false,\n\t\t\t\tvariationStyles: true,\n\t\t\t}\n\t\t);\n\t}, [ variation, settings, styles, getBlockStyles, clientId ] );\n\n\tusePrivateStyleOverride( {\n\t\tid: `variation-${ clientId }`,\n\t\tcss: variationStyles,\n\t\t__unstableType: 'variation',\n\t\tvariation,\n\t\t// The clientId will be stored with the override and used to ensure\n\t\t// the order of overrides matches the order of blocks so that the\n\t\t// correct CSS cascade is maintained.\n\t\tclientId,\n\t} );\n\n\treturn variation ? { className: variationClass } : {};\n}\n\nexport default {\n\thasSupport: () => true,\n\tattributeKeys: [ 'className' ],\n\tisMatch: ( { className } ) => getVariationMatches( className ).length > 0,\n\tuseBlockProps,\n};\n"],"mappings":";;;;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,aAAA,GAAAH,OAAA;AAKA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AAAwC,IAAAS,WAAA,GAAAT,OAAA;AAnBxC;AACA;AACA;;AAKA;AACA;AACA;;AAYA,MAAMU,gBAAgB,GAAG,WAAW;AAEpC,SAASC,mBAAmBA,CAAEC,SAAS,EAAG;EACzC,IAAK,CAAEA,SAAS,EAAG;IAClB,OAAO,EAAE;EACV;EACA,OAAOA,SAAS,CAACC,KAAK,CAAE,KAAM,CAAC,CAACC,MAAM,CAAE,CAAEC,OAAO,EAAEC,IAAI,KAAM;IAC5D,IAAKA,IAAI,CAACC,UAAU,CAAEP,gBAAiB,CAAC,EAAG;MAC1C,MAAMQ,KAAK,GAAGF,IAAI,CAACG,KAAK,CAAET,gBAAgB,CAACU,MAAO,CAAC;MACnD,IAAKF,KAAK,KAAK,SAAS,EAAG;QAC1BH,OAAO,CAACM,IAAI,CAAEH,KAAM,CAAC;MACtB;IACD;IACA,OAAOH,OAAO;EACf,CAAC,EAAE,EAAG,CAAC;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASO,yBAAyBA,CAAEV,SAAS,EAAEW,gBAAgB,GAAG,EAAE,EAAG;EACtE;EACA;EACA,MAAMR,OAAO,GAAGJ,mBAAmB,CAAEC,SAAU,CAAC;EAEhD,IAAK,CAAEG,OAAO,EAAG;IAChB,OAAO,IAAI;EACZ;EAEA,KAAM,MAAMS,SAAS,IAAIT,OAAO,EAAG;IAClC,IAAKQ,gBAAgB,CAACE,IAAI,CAAIC,KAAK,IAAMA,KAAK,CAACV,IAAI,KAAKQ,SAAU,CAAC,EAAG;MACrE,OAAOA,SAAS;IACjB;EACD;EACA,OAAO,IAAI;AACZ;;AAEA;AACA,SAASG,cAAcA,CAAE;EAAEC;AAAS,CAAC,EAAG;EACvC,IAAAC,8BAAuB,EAAED,QAAS,CAAC;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,gDAAgDA,CAAE;EAAEC;AAAO,CAAC,EAAG;EAC9E,MAAM;IAAEC,cAAc;IAAEC;EAAU,CAAC,GAAG,IAAAC,eAAS,EAC5CC,MAAM,KAAQ;IACfH,cAAc,EAAEG,MAAM,CAAEC,aAAY,CAAC,CAACJ,cAAc;IACpDC,SAAS,EAAE,IAAAI,kBAAM,EAAEF,MAAM,CAAEG,YAAiB,CAAE,CAAC,CAACC,iBAAiB,CAAC;EACnE,CAAC,CAAE,EACH,EACD,CAAC;EACD,MAAM;IAAEC;EAAa,CAAC,GAAG,IAAAN,eAAS,EAAEI,YAAiB,CAAC;EAEtD,MAAMG,mBAAmB,GAAG,IAAAC,gBAAO,EAAE,MAAM;IAC1C,IAAK,CAAET,SAAS,EAAEb,MAAM,EAAG;MAC1B;IACD;IACA,MAAMuB,YAAY,GAAG,EAAE;IACvB,MAAMC,mBAAmB,GAAG,EAAE;IAC9B,KAAM,MAAM,GAAIhB,QAAQ,CAAE,IAAIK,SAAS,EAAG;MACzC,IACCL,QAAQ,EAAEJ,SAAS,IACnBI,QAAQ,EAAEiB,QAAQ;MAClB;AACJ;AACA;AACA;MACI,CAAED,mBAAmB,CAACE,QAAQ,CAAElB,QAAQ,CAACiB,QAAS,CAAC,EAClD;QACD,MAAME,SAAS,GAAGP,YAAY,CAAEZ,QAAQ,CAACiB,QAAS,CAAC;QACnD,MAAMG,YAAY,GACjBjB,MAAM,EAAEkB,MAAM,EAAEC,MAAM,GAAIH,SAAS,CAAE,EAAEI,UAAU,GAChDvB,QAAQ,CAACJ,SAAS,CAClB;QACF,IAAKwB,YAAY,EAAG;UACnB,MAAMI,eAAe,GAAG;YACvBC,QAAQ,EAAEtB,MAAM,EAAEsB,QAAQ;YAC1B;YACA;YACA;YACAJ,MAAM,EAAE;cACPC,MAAM,EAAE;gBACP,CAAEH,SAAS,GAAI;kBACdI,UAAU,EAAE;oBACX,CAAE,GAAIvB,QAAQ,CAACJ,SAAS,IAAMI,QAAQ,CAACiB,QAAQ,EAAG,GACjDG;kBACF;gBACD;cACD;YACD;UACD,CAAC;UACD,MAAMM,cAAc,GAAG,IAAAC,+BAAiB,EACvC,IAAAC,qBAAa,EAAC,CAAC,EACfxB,cAAc,EACdJ,QAAQ,CAACiB,QACV,CAAC;UACD,MAAMY,kBAAkB,GAAG,KAAK;UAChC,MAAMC,qBAAqB,GAAG,IAAI;UAClC,MAAMC,mBAAmB,GAAG,IAAI;UAChC,MAAMC,kBAAkB,GAAG,IAAI;UAC/B,MAAMC,eAAe,GAAG,IAAAC,sBAAQ,EAC/BV,eAAe,EACfE,cAAc,EACdG,kBAAkB,EAClBC,qBAAqB,EACrBC,mBAAmB,EACnBC,kBAAkB,EAClB;YACCG,QAAQ,EAAE,KAAK;YACfC,WAAW,EAAE,IAAI;YACjBC,YAAY,EAAE,KAAK;YACnBC,WAAW,EAAE,KAAK;YAClBC,OAAO,EAAE,KAAK;YACdC,WAAW,EAAE,KAAK;YAClBP,eAAe,EAAE;UAClB,CACD,CAAC;UACDlB,YAAY,CAACtB,IAAI,CAAE;YAClBgD,EAAE,EAAE,GAAIzC,QAAQ,CAACJ,SAAS,IAAMI,QAAQ,CAACiB,QAAQ,EAAG;YACpDyB,GAAG,EAAET,eAAe;YACpBU,cAAc,EAAE,WAAW;YAC3B/C,SAAS,EAAEI,QAAQ,CAACJ,SAAS;YAC7B;YACA;YACA;YACAqB,QAAQ,EAAEjB,QAAQ,CAACiB;UACpB,CAAE,CAAC;UACHD,mBAAmB,CAACvB,IAAI,CAAEO,QAAQ,CAACiB,QAAS,CAAC;QAC9C;MACD;IACD;IACA,OAAOF,YAAY;EACpB,CAAC,EAAE,CAAEZ,MAAM,EAAEE,SAAS,EAAED,cAAc,EAAEQ,YAAY,CAAG,CAAC;EAExD,IAAK,CAAEC,mBAAmB,IAAI,CAAEA,mBAAmB,CAACrB,MAAM,EAAG;IAC5D;EACD;EAEA,oBACC,IAAAX,WAAA,CAAA+D,GAAA,EAAA/D,WAAA,CAAAgE,QAAA;IAAAC,QAAA,EACGjC,mBAAmB,CAACkC,GAAG,CAAI/C,QAAQ,iBACpC,IAAAnB,WAAA,CAAA+D,GAAA,EAAC7C,cAAc;MAAqBC,QAAQ,EAAGA;IAAU,GAAnCA,QAAQ,CAACyC,EAA4B,CAC1D;EAAC,CACF,CAAC;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASO,+BAA+BA,CAC9CC,YAAY,EACZ7D,IAAI,EACJQ,SAAS,EACR;EACD,IAAK,CAAEqD,YAAY,EAAE5B,MAAM,EAAEC,MAAM,GAAIlC,IAAI,CAAE,EAAEmC,UAAU,GAAI3B,SAAS,CAAE,EAAG;IAC1E;EACD;;EAEA;EACA,MAAMsD,WAAW,GAAKjB,eAAe,IAAM;IAC1CkB,MAAM,CAACC,IAAI,CAAEnB,eAAgB,CAAC,CAACoB,OAAO,CAAIC,GAAG,IAAM;MAClD,MAAMC,KAAK,GAAGtB,eAAe,CAAEqB,GAAG,CAAE;;MAEpC;MACA,IAAK,OAAOC,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,EAAG;QAClD;QACA,IAAKA,KAAK,CAACC,GAAG,KAAKC,SAAS,EAAG;UAC9B,IACC,OAAOF,KAAK,CAACC,GAAG,KAAK,QAAQ,IAC7BD,KAAK,CAACC,GAAG,CAACE,IAAI,CAAC,CAAC,KAAK,EAAE,EACtB;YACD;YACA,OAAOzB,eAAe,CAAEqB,GAAG,CAAE;UAC9B,CAAC,MAAM;YACN;YACA,MAAMK,QAAQ,GAAG,IAAAC,8BAAsB,EACtCX,YAAY,EACZM,KAAK,CAACC,GACP,CAAC;YAED,IAAKG,QAAQ,EAAG;cACf1B,eAAe,CAAEqB,GAAG,CAAE,GAAGK,QAAQ;YAClC,CAAC,MAAM;cACN,OAAO1B,eAAe,CAAEqB,GAAG,CAAE;YAC9B;UACD;QACD,CAAC,MAAM;UACN;UACAJ,WAAW,CAAEK,KAAM,CAAC;;UAEpB;UACA;UACA,IAAKJ,MAAM,CAACC,IAAI,CAAEG,KAAM,CAAC,CAAC/D,MAAM,KAAK,CAAC,EAAG;YACxC,OAAOyC,eAAe,CAAEqB,GAAG,CAAE;UAC9B;QACD;MACD;IACD,CAAE,CAAC;EACJ,CAAC;;EAED;EACA,MAAMjC,MAAM,GAAGwC,IAAI,CAACC,KAAK,CACxBD,IAAI,CAACE,SAAS,CACbd,YAAY,CAAC5B,MAAM,CAACC,MAAM,CAAElC,IAAI,CAAE,CAACmC,UAAU,CAAE3B,SAAS,CACzD,CACD,CAAC;EACDsD,WAAW,CAAE7B,MAAO,CAAC;EAErB,OAAOA,MAAM;AACd;AAEA,SAAS2C,sBAAsBA,CAAE5E,IAAI,EAAEQ,SAAS,EAAEqB,QAAQ,EAAG;EAC5D;EACA;EACA;EACA,MAAM;IAAEgD,MAAM,EAAEC;EAAa,CAAC,GAAG,IAAAC,mBAAU,EAAEC,iCAAoB,CAAC;EAClE,MAAM;IAAEC,cAAc;IAAEpB;EAAa,CAAC,GAAG,IAAA3C,eAAS,EAAIC,MAAM,IAAM;IACjE,MAAMkB,QAAQ,GAAGlB,MAAM,CAAEG,YAAiB,CAAC,CAAC4D,WAAW,CAAC,CAAC;IACzD,OAAO;MACND,cAAc,EAAE5C,QAAQ,CAAC8C,sBAAsB;MAC/CtB,YAAY,EAAExB,QAAQ,CAAE+C,gCAAmB;IAC5C,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,OAAO,IAAA1D,gBAAO,EAAE,MAAM;IAAA,IAAA2D,qBAAA,EAAAC,oBAAA,EAAAC,sBAAA;IACrB,MAAM1C,eAAe,GAAGe,+BAA+B,CACtD;MACCvB,QAAQ,GAAAgD,qBAAA,GAAEP,YAAY,EAAEzC,QAAQ,cAAAgD,qBAAA,cAAAA,qBAAA,GAAIJ,cAAc;MAClDhD,MAAM,GAAAqD,oBAAA,GAAER,YAAY,EAAE7C,MAAM,cAAAqD,oBAAA,cAAAA,oBAAA,GAAIzB;IACjC,CAAC,EACD7D,IAAI,EACJQ,SACD,CAAC;IAED,OAAO;MACN6B,QAAQ,GAAAkD,sBAAA,GAAET,YAAY,EAAEzC,QAAQ,cAAAkD,sBAAA,cAAAA,sBAAA,GAAIN,cAAc;MAClD;MACA;MACA;MACAhD,MAAM,EAAE;QACPC,MAAM,EAAE;UACP,CAAElC,IAAI,GAAI;YACTmC,UAAU,EAAE;cACX,CAAE,GAAI3B,SAAS,IAAMqB,QAAQ,EAAG,GAAIgB;YACrC;UACD;QACD;MACD;IACD,CAAC;EACF,CAAC,EAAE,CACFiC,YAAY,EACZG,cAAc,EACdpB,YAAY,EACZrD,SAAS,EACTqB,QAAQ,EACR7B,IAAI,CACH,CAAC;AACJ;;AAEA;AACA;AACA;AACA,SAASwF,aAAaA,CAAE;EAAExF,IAAI;EAAEJ,SAAS;EAAEiC;AAAS,CAAC,EAAG;EACvD,MAAM;IAAEb;EAAe,CAAC,GAAG,IAAAE,eAAS,EAAEE,aAAY,CAAC;EAEnD,MAAMb,gBAAgB,GAAGS,cAAc,CAAEhB,IAAK,CAAC;EAC/C,MAAMQ,SAAS,GAAGF,yBAAyB,CAAEV,SAAS,EAAEW,gBAAiB,CAAC;EAC1E,MAAMkF,cAAc,GAAG,GAAI/F,gBAAgB,GAAKc,SAAS,IAAMqB,QAAQ,EAAG;EAE1E,MAAM;IAAEQ,QAAQ;IAAEJ;EAAO,CAAC,GAAG2C,sBAAsB,CAClD5E,IAAI,EACJQ,SAAS,EACTqB,QACD,CAAC;EAED,MAAMgB,eAAe,GAAG,IAAAnB,gBAAO,EAAE,MAAM;IACtC,IAAK,CAAElB,SAAS,EAAG;MAClB;IACD;IAEA,MAAM4B,eAAe,GAAG;MAAEC,QAAQ;MAAEJ;IAAO,CAAC;IAC5C,MAAMK,cAAc,GAAG,IAAAC,+BAAiB,EACvC,IAAAC,qBAAa,EAAC,CAAC,EACfxB,cAAc,EACda,QACD,CAAC;IACD,MAAMY,kBAAkB,GAAG,KAAK;IAChC,MAAMC,qBAAqB,GAAG,IAAI;IAClC,MAAMC,mBAAmB,GAAG,IAAI;IAChC,MAAMC,kBAAkB,GAAG,IAAI;IAE/B,OAAO,IAAAE,sBAAQ,EACdV,eAAe,EACfE,cAAc,EACdG,kBAAkB,EAClBC,qBAAqB,EACrBC,mBAAmB,EACnBC,kBAAkB,EAClB;MACCG,QAAQ,EAAE,KAAK;MACfC,WAAW,EAAE,IAAI;MACjBC,YAAY,EAAE,KAAK;MACnBC,WAAW,EAAE,KAAK;MAClBC,OAAO,EAAE,KAAK;MACdC,WAAW,EAAE,KAAK;MAClBP,eAAe,EAAE;IAClB,CACD,CAAC;EACF,CAAC,EAAE,CAAErC,SAAS,EAAE6B,QAAQ,EAAEJ,MAAM,EAAEjB,cAAc,EAAEa,QAAQ,CAAG,CAAC;EAE9D,IAAAhB,8BAAuB,EAAE;IACxBwC,EAAE,EAAE,aAAcxB,QAAQ,EAAG;IAC7ByB,GAAG,EAAET,eAAe;IACpBU,cAAc,EAAE,WAAW;IAC3B/C,SAAS;IACT;IACA;IACA;IACAqB;EACD,CAAE,CAAC;EAEH,OAAOrB,SAAS,GAAG;IAAEZ,SAAS,EAAE6F;EAAe,CAAC,GAAG,CAAC,CAAC;AACtD;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc;EACdC,UAAU,EAAEA,CAAA,KAAM,IAAI;EACtBC,aAAa,EAAE,CAAE,WAAW,CAAE;EAC9BC,OAAO,EAAEA,CAAE;IAAEnG;EAAU,CAAC,KAAMD,mBAAmB,CAAEC,SAAU,CAAC,CAACQ,MAAM,GAAG,CAAC;EACzEoF;AACD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_blocks","require","_data","_element","_globalStyles","_utils","_object","_store","_privateKeys","_lockUnlock","_jsxRuntime","VARIATION_PREFIX","getVariationMatches","className","split","reduce","matches","name","startsWith","match","slice","length","push","getVariationNameFromClass","registeredStyles","variation","some","style","OverrideStyles","override","usePrivateStyleOverride","__unstableBlockStyleVariationOverridesWithConfig","config","getBlockStyles","overrides","useSelect","select","blocksStore","unlock","blockEditorStore","getStyleOverrides","getBlockName","overridesWithConfig","useMemo","newOverrides","overriddenClientIds","clientId","includes","blockName","configStyles","styles","blocks","variations","variationConfig","settings","blockSelectors","getBlockSelectors","getBlockTypes","hasBlockGapSupport","hasFallbackGapSupport","disableLayoutStyles","disableRootPadding","variationStyles","toStyles","blockGap","blockStyles","layoutStyles","marginReset","presets","rootPadding","id","css","__unstableType","jsx","Fragment","children","map","getVariationStylesWithRefValues","globalStyles","replaceRefs","Object","keys","forEach","key","value","ref","undefined","trim","refValue","getValueFromObjectPath","JSON","parse","stringify","useBlockStyleVariation","merged","mergedConfig","useContext","GlobalStylesContext","globalSettings","getSettings","__experimentalFeatures","globalStylesDataKey","_mergedConfig$setting","_mergedConfig$styles","_mergedConfig$setting2","useBlockProps","variationClass","_default","exports","default","hasSupport","attributeKeys","isMatch"],"sources":["@wordpress/block-editor/src/hooks/block-style-variation.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockTypes, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tGlobalStylesContext,\n\ttoStyles,\n\tgetBlockSelectors,\n} from '../components/global-styles';\nimport { usePrivateStyleOverride } from './utils';\nimport { getValueFromObjectPath } from '../utils/object';\nimport { store as blockEditorStore } from '../store';\nimport { globalStylesDataKey } from '../store/private-keys';\nimport { unlock } from '../lock-unlock';\n\nconst VARIATION_PREFIX = 'is-style-';\n\nfunction getVariationMatches( className ) {\n\tif ( ! className ) {\n\t\treturn [];\n\t}\n\treturn className.split( /\\s+/ ).reduce( ( matches, name ) => {\n\t\tif ( name.startsWith( VARIATION_PREFIX ) ) {\n\t\t\tconst match = name.slice( VARIATION_PREFIX.length );\n\t\t\tif ( match !== 'default' ) {\n\t\t\t\tmatches.push( match );\n\t\t\t}\n\t\t}\n\t\treturn matches;\n\t}, [] );\n}\n\n/**\n * Get the first block style variation that has been registered from the class string.\n *\n * @param {string} className CSS class string for a block.\n * @param {Array} registeredStyles Currently registered block styles.\n *\n * @return {string|null} The name of the first registered variation.\n */\nfunction getVariationNameFromClass( className, registeredStyles = [] ) {\n\t// The global flag affects how capturing groups work in JS. So the regex\n\t// below will only return full CSS classes not just the variation name.\n\tconst matches = getVariationMatches( className );\n\n\tif ( ! matches ) {\n\t\treturn null;\n\t}\n\n\tfor ( const variation of matches ) {\n\t\tif ( registeredStyles.some( ( style ) => style.name === variation ) ) {\n\t\t\treturn variation;\n\t\t}\n\t}\n\treturn null;\n}\n\n// A helper component to apply a style override using the useStyleOverride hook.\nfunction OverrideStyles( { override } ) {\n\tusePrivateStyleOverride( override );\n}\n\n/**\n * This component is used to generate new block style variation overrides\n * based on an incoming theme config. If a matching style is found in the config,\n * a new override is created and returned. The overrides can be used in conjunction with\n * useStyleOverride to apply the new styles to the editor. Its use is\n * subject to change.\n *\n * @param {Object} props Props.\n * @param {Object} props.config A global styles object, containing settings and styles.\n * @return {JSX.Element|undefined} An array of new block variation overrides.\n */\nexport function __unstableBlockStyleVariationOverridesWithConfig( { config } ) {\n\tconst { getBlockStyles, overrides } = useSelect(\n\t\t( select ) => ( {\n\t\t\tgetBlockStyles: select( blocksStore ).getBlockStyles,\n\t\t\toverrides: unlock( select( blockEditorStore ) ).getStyleOverrides(),\n\t\t} ),\n\t\t[]\n\t);\n\tconst { getBlockName } = useSelect( blockEditorStore );\n\n\tconst overridesWithConfig = useMemo( () => {\n\t\tif ( ! overrides?.length ) {\n\t\t\treturn;\n\t\t}\n\t\tconst newOverrides = [];\n\t\tconst overriddenClientIds = [];\n\t\tfor ( const [ , override ] of overrides ) {\n\t\t\tif (\n\t\t\t\toverride?.variation &&\n\t\t\t\toverride?.clientId &&\n\t\t\t\t/*\n\t\t\t\t * Because this component overwrites existing style overrides,\n\t\t\t\t * filter out any overrides that are already present in the store.\n\t\t\t\t */\n\t\t\t\t! overriddenClientIds.includes( override.clientId )\n\t\t\t) {\n\t\t\t\tconst blockName = getBlockName( override.clientId );\n\t\t\t\tconst configStyles =\n\t\t\t\t\tconfig?.styles?.blocks?.[ blockName ]?.variations?.[\n\t\t\t\t\t\toverride.variation\n\t\t\t\t\t];\n\t\t\t\tif ( configStyles ) {\n\t\t\t\t\tconst variationConfig = {\n\t\t\t\t\t\tsettings: config?.settings,\n\t\t\t\t\t\t// The variation style data is all that is needed to generate\n\t\t\t\t\t\t// the styles for the current application to a block. The variation\n\t\t\t\t\t\t// name is updated to match the instance specific class name.\n\t\t\t\t\t\tstyles: {\n\t\t\t\t\t\t\tblocks: {\n\t\t\t\t\t\t\t\t[ blockName ]: {\n\t\t\t\t\t\t\t\t\tvariations: {\n\t\t\t\t\t\t\t\t\t\t[ `${ override.variation }-${ override.clientId }` ]:\n\t\t\t\t\t\t\t\t\t\t\tconfigStyles,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t\tconst blockSelectors = getBlockSelectors(\n\t\t\t\t\t\tgetBlockTypes(),\n\t\t\t\t\t\tgetBlockStyles,\n\t\t\t\t\t\toverride.clientId\n\t\t\t\t\t);\n\t\t\t\t\tconst hasBlockGapSupport = false;\n\t\t\t\t\tconst hasFallbackGapSupport = true;\n\t\t\t\t\tconst disableLayoutStyles = true;\n\t\t\t\t\tconst disableRootPadding = true;\n\t\t\t\t\tconst variationStyles = toStyles(\n\t\t\t\t\t\tvariationConfig,\n\t\t\t\t\t\tblockSelectors,\n\t\t\t\t\t\thasBlockGapSupport,\n\t\t\t\t\t\thasFallbackGapSupport,\n\t\t\t\t\t\tdisableLayoutStyles,\n\t\t\t\t\t\tdisableRootPadding,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tblockGap: false,\n\t\t\t\t\t\t\tblockStyles: true,\n\t\t\t\t\t\t\tlayoutStyles: false,\n\t\t\t\t\t\t\tmarginReset: false,\n\t\t\t\t\t\t\tpresets: false,\n\t\t\t\t\t\t\trootPadding: false,\n\t\t\t\t\t\t\tvariationStyles: true,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\tnewOverrides.push( {\n\t\t\t\t\t\tid: `${ override.variation }-${ override.clientId }`,\n\t\t\t\t\t\tcss: variationStyles,\n\t\t\t\t\t\t__unstableType: 'variation',\n\t\t\t\t\t\tvariation: override.variation,\n\t\t\t\t\t\t// The clientId will be stored with the override and used to ensure\n\t\t\t\t\t\t// the order of overrides matches the order of blocks so that the\n\t\t\t\t\t\t// correct CSS cascade is maintained.\n\t\t\t\t\t\tclientId: override.clientId,\n\t\t\t\t\t} );\n\t\t\t\t\toverriddenClientIds.push( override.clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn newOverrides;\n\t}, [ config, overrides, getBlockStyles, getBlockName ] );\n\n\tif ( ! overridesWithConfig || ! overridesWithConfig.length ) {\n\t\treturn;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ overridesWithConfig.map( ( override ) => (\n\t\t\t\t<OverrideStyles key={ override.id } override={ override } />\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\n/**\n * Retrieves any variation styles data and resolves any referenced values.\n *\n * @param {Object} globalStyles A complete global styles object, containing settings and styles.\n * @param {string} name The name of the desired block type.\n * @param {variation} variation The of the block style variation to retrieve data for.\n *\n * @return {Object|undefined} The global styles data for the specified variation.\n */\nexport function getVariationStylesWithRefValues(\n\tglobalStyles,\n\tname,\n\tvariation\n) {\n\tif ( ! globalStyles?.styles?.blocks?.[ name ]?.variations?.[ variation ] ) {\n\t\treturn;\n\t}\n\n\t// Helper to recursively look for `ref` values to resolve.\n\tconst replaceRefs = ( variationStyles ) => {\n\t\tObject.keys( variationStyles ).forEach( ( key ) => {\n\t\t\tconst value = variationStyles[ key ];\n\n\t\t\t// Only process objects.\n\t\t\tif ( typeof value === 'object' && value !== null ) {\n\t\t\t\t// Process `ref` value if present.\n\t\t\t\tif ( value.ref !== undefined ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof value.ref !== 'string' ||\n\t\t\t\t\t\tvalue.ref.trim() === ''\n\t\t\t\t\t) {\n\t\t\t\t\t\t// Remove invalid ref.\n\t\t\t\t\t\tdelete variationStyles[ key ];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Resolve `ref` value.\n\t\t\t\t\t\tconst refValue = getValueFromObjectPath(\n\t\t\t\t\t\t\tglobalStyles,\n\t\t\t\t\t\t\tvalue.ref\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif ( refValue ) {\n\t\t\t\t\t\t\tvariationStyles[ key ] = refValue;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdelete variationStyles[ key ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Recursively resolve `ref` values in nested objects.\n\t\t\t\t\treplaceRefs( value );\n\n\t\t\t\t\t// After recursion, if value is empty due to explicitly\n\t\t\t\t\t// `undefined` ref value, remove it.\n\t\t\t\t\tif ( Object.keys( value ).length === 0 ) {\n\t\t\t\t\t\tdelete variationStyles[ key ];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t};\n\n\t// Deep clone variation node to avoid mutating it within global styles and losing refs.\n\tconst styles = JSON.parse(\n\t\tJSON.stringify(\n\t\t\tglobalStyles.styles.blocks[ name ].variations[ variation ]\n\t\t)\n\t);\n\treplaceRefs( styles );\n\n\treturn styles;\n}\n\nfunction useBlockStyleVariation( name, variation, clientId ) {\n\t// Prefer global styles data in GlobalStylesContext, which are available\n\t// if in the site editor. Otherwise fall back to whatever is in the\n\t// editor settings and available in the post editor.\n\tconst { merged: mergedConfig } = useContext( GlobalStylesContext );\n\tconst { globalSettings, globalStyles } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\treturn {\n\t\t\tglobalSettings: settings.__experimentalFeatures,\n\t\t\tglobalStyles: settings[ globalStylesDataKey ],\n\t\t};\n\t}, [] );\n\n\treturn useMemo( () => {\n\t\tconst variationStyles = getVariationStylesWithRefValues(\n\t\t\t{\n\t\t\t\tsettings: mergedConfig?.settings ?? globalSettings,\n\t\t\t\tstyles: mergedConfig?.styles ?? globalStyles,\n\t\t\t},\n\t\t\tname,\n\t\t\tvariation\n\t\t);\n\n\t\treturn {\n\t\t\tsettings: mergedConfig?.settings ?? globalSettings,\n\t\t\t// The variation style data is all that is needed to generate\n\t\t\t// the styles for the current application to a block. The variation\n\t\t\t// name is updated to match the instance specific class name.\n\t\t\tstyles: {\n\t\t\t\tblocks: {\n\t\t\t\t\t[ name ]: {\n\t\t\t\t\t\tvariations: {\n\t\t\t\t\t\t\t[ `${ variation }-${ clientId }` ]: variationStyles,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tglobalSettings,\n\t\tglobalStyles,\n\t\tvariation,\n\t\tclientId,\n\t\tname,\n\t] );\n}\n\n// Rather than leveraging `useInstanceId` here, the `clientId` is used.\n// This is so that the variation style override's ID is predictable\n// when the order of applied style variations changes.\nfunction useBlockProps( { name, className, clientId } ) {\n\tconst { getBlockStyles } = useSelect( blocksStore );\n\n\tconst registeredStyles = getBlockStyles( name );\n\tconst variation = getVariationNameFromClass( className, registeredStyles );\n\tconst variationClass = `${ VARIATION_PREFIX }${ variation }-${ clientId }`;\n\n\tconst { settings, styles } = useBlockStyleVariation(\n\t\tname,\n\t\tvariation,\n\t\tclientId\n\t);\n\n\tconst variationStyles = useMemo( () => {\n\t\tif ( ! variation ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst variationConfig = { settings, styles };\n\t\tconst blockSelectors = getBlockSelectors(\n\t\t\tgetBlockTypes(),\n\t\t\tgetBlockStyles,\n\t\t\tclientId\n\t\t);\n\t\tconst hasBlockGapSupport = false;\n\t\tconst hasFallbackGapSupport = true;\n\t\tconst disableLayoutStyles = true;\n\t\tconst disableRootPadding = true;\n\n\t\treturn toStyles(\n\t\t\tvariationConfig,\n\t\t\tblockSelectors,\n\t\t\thasBlockGapSupport,\n\t\t\thasFallbackGapSupport,\n\t\t\tdisableLayoutStyles,\n\t\t\tdisableRootPadding,\n\t\t\t{\n\t\t\t\tblockGap: false,\n\t\t\t\tblockStyles: true,\n\t\t\t\tlayoutStyles: false,\n\t\t\t\tmarginReset: false,\n\t\t\t\tpresets: false,\n\t\t\t\trootPadding: false,\n\t\t\t\tvariationStyles: true,\n\t\t\t}\n\t\t);\n\t}, [ variation, settings, styles, getBlockStyles, clientId ] );\n\n\tusePrivateStyleOverride( {\n\t\tid: `variation-${ clientId }`,\n\t\tcss: variationStyles,\n\t\t__unstableType: 'variation',\n\t\tvariation,\n\t\t// The clientId will be stored with the override and used to ensure\n\t\t// the order of overrides matches the order of blocks so that the\n\t\t// correct CSS cascade is maintained.\n\t\tclientId,\n\t} );\n\n\treturn variation ? { className: variationClass } : {};\n}\n\nexport default {\n\thasSupport: () => true,\n\tattributeKeys: [ 'className' ],\n\tisMatch: ( { className } ) => getVariationMatches( className ).length > 0,\n\tuseBlockProps,\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  "use strict";
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -39,7 +40,7 @@ var _jsxRuntime = require("react/jsx-runtime");
39
40
  * Internal dependencies
40
41
  */
41
42
 
42
- const BORDER_SUPPORT_KEY = exports.BORDER_SUPPORT_KEY = 'border';
43
+ const BORDER_SUPPORT_KEY = exports.BORDER_SUPPORT_KEY = '__experimentalBorder';
43
44
  const SHADOW_SUPPORT_KEY = exports.SHADOW_SUPPORT_KEY = 'shadow';
44
45
  const getColorByProperty = (colors, property, value) => {
45
46
  let matchedColor;
@@ -173,8 +174,8 @@ function BorderPanel({
173
174
  return null;
174
175
  }
175
176
  const defaultControls = {
176
- ...(0, _blocks.getBlockSupport)(name, [BORDER_SUPPORT_KEY, 'defaultControls']),
177
- ...(0, _blocks.getBlockSupport)(name, [SHADOW_SUPPORT_KEY, 'defaultControls'])
177
+ ...(0, _blocks.getBlockSupport)(name, [BORDER_SUPPORT_KEY, '__experimentalDefaultControls']),
178
+ ...(0, _blocks.getBlockSupport)(name, [SHADOW_SUPPORT_KEY, '__experimentalDefaultControls'])
178
179
  };
179
180
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_globalStyles.BorderPanel, {
180
181
  as: BordersInspectorControl,
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_blocks","_components","_element","_hooks","_data","_colors","_inspectorControls","_useMultipleOriginColorsAndGradients","_utils","_globalStyles","_store","_i18n","_jsxRuntime","BORDER_SUPPORT_KEY","exports","SHADOW_SUPPORT_KEY","getColorByProperty","colors","property","value","matchedColor","some","origin","color","getMultiOriginColor","namedColor","customColor","colorObject","undefined","getColorSlugFromVariable","exec","styleToAttributes","style","hasSplitBorders","border","borderColor","borderColorValue","borderColorSlug","startsWith","substring","length","updatedStyle","cleanEmptyObject","attributesToStyle","attributes","BordersInspectorControl","label","children","resetAllFilter","attributesResetAllFilter","useCallback","existingStyle","jsx","default","group","BorderPanel","clientId","name","setAttributes","settings","isEnabled","useHasBorderPanel","selector","select","blockEditorStore","getBlockAttributes","useSelect","useMemo","onChange","newStyle","defaultControls","getBlockSupport","as","panelId","hasBorderSupport","blockName","feature","Platform","OS","support","radius","width","hasShadowSupport","hasBlockSupport","useBorderPanelLabel","hasBorderControl","hasShadowControl","useBlockSettings","controls","useHasBorderPanelControls","hasBorderColor","hasBorderStyle","hasBorderWidth","hasBorderRadius","hasShadow","__","removeBorderAttribute","attribute","addAttributes","type","addSaveProps","props","blockNameOrType","shouldSkipSerialization","borderClasses","getBorderClasses","newClassName","clsx","className","borderColorClass","getColorClassName","useBlockProps","useMultipleOriginColorsAndGradients","borderTopColor","top","borderRightColor","right","borderBottomColor","bottom","borderLeftColor","left","extraStyles","_default","attributeKeys","hasSupport","addFilter"],"sources":["@wordpress/block-editor/src/hooks/border.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, getBlockSupport } from '@wordpress/blocks';\nimport { __experimentalHasSplitBorders as hasSplitBorders } from '@wordpress/components';\nimport { Platform, useCallback, useMemo } from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { getColorClassName } from '../components/colors';\nimport InspectorControls from '../components/inspector-controls';\nimport useMultipleOriginColorsAndGradients from '../components/colors-gradients/use-multiple-origin-colors-and-gradients';\nimport {\n\tcleanEmptyObject,\n\tshouldSkipSerialization,\n\tuseBlockSettings,\n} from './utils';\nimport {\n\tuseHasBorderPanel,\n\tuseHasBorderPanelControls,\n\tBorderPanel as StylesBorderPanel,\n} from '../components/global-styles';\nimport { store as blockEditorStore } from '../store';\nimport { __ } from '@wordpress/i18n';\n\nexport const BORDER_SUPPORT_KEY = 'border';\nexport const SHADOW_SUPPORT_KEY = 'shadow';\n\nconst getColorByProperty = ( colors, property, value ) => {\n\tlet matchedColor;\n\n\tcolors.some( ( origin ) =>\n\t\torigin.colors.some( ( color ) => {\n\t\t\tif ( color[ property ] === value ) {\n\t\t\t\tmatchedColor = color;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t} )\n\t);\n\n\treturn matchedColor;\n};\n\nexport const getMultiOriginColor = ( { colors, namedColor, customColor } ) => {\n\t// Search each origin (default, theme, or user) for matching color by name.\n\tif ( namedColor ) {\n\t\tconst colorObject = getColorByProperty( colors, 'slug', namedColor );\n\t\tif ( colorObject ) {\n\t\t\treturn colorObject;\n\t\t}\n\t}\n\n\t// Skip if no custom color or matching named color.\n\tif ( ! customColor ) {\n\t\treturn { color: undefined };\n\t}\n\n\t// Attempt to find color via custom color value or build new object.\n\tconst colorObject = getColorByProperty( colors, 'color', customColor );\n\treturn colorObject ? colorObject : { color: customColor };\n};\n\nfunction getColorSlugFromVariable( value ) {\n\tconst namedColor = /var:preset\\|color\\|(.+)/.exec( value );\n\tif ( namedColor && namedColor[ 1 ] ) {\n\t\treturn namedColor[ 1 ];\n\t}\n\treturn null;\n}\n\nfunction styleToAttributes( style ) {\n\tif ( hasSplitBorders( style?.border ) ) {\n\t\treturn {\n\t\t\tstyle,\n\t\t\tborderColor: undefined,\n\t\t};\n\t}\n\n\tconst borderColorValue = style?.border?.color;\n\tconst borderColorSlug = borderColorValue?.startsWith( 'var:preset|color|' )\n\t\t? borderColorValue.substring( 'var:preset|color|'.length )\n\t\t: undefined;\n\tconst updatedStyle = { ...style };\n\tupdatedStyle.border = {\n\t\t...updatedStyle.border,\n\t\tcolor: borderColorSlug ? undefined : borderColorValue,\n\t};\n\treturn {\n\t\tstyle: cleanEmptyObject( updatedStyle ),\n\t\tborderColor: borderColorSlug,\n\t};\n}\n\nfunction attributesToStyle( attributes ) {\n\tif ( hasSplitBorders( attributes.style?.border ) ) {\n\t\treturn attributes.style;\n\t}\n\treturn {\n\t\t...attributes.style,\n\t\tborder: {\n\t\t\t...attributes.style?.border,\n\t\t\tcolor: attributes.borderColor\n\t\t\t\t? 'var:preset|color|' + attributes.borderColor\n\t\t\t\t: attributes.style?.border?.color,\n\t\t},\n\t};\n}\n\nfunction BordersInspectorControl( { label, children, resetAllFilter } ) {\n\tconst attributesResetAllFilter = useCallback(\n\t\t( attributes ) => {\n\t\t\tconst existingStyle = attributesToStyle( attributes );\n\t\t\tconst updatedStyle = resetAllFilter( existingStyle );\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\t...styleToAttributes( updatedStyle ),\n\t\t\t};\n\t\t},\n\t\t[ resetAllFilter ]\n\t);\n\n\treturn (\n\t\t<InspectorControls\n\t\t\tgroup=\"border\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t\tlabel={ label }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function BorderPanel( { clientId, name, setAttributes, settings } ) {\n\tconst isEnabled = useHasBorderPanel( settings );\n\tfunction selector( select ) {\n\t\tconst { style, borderColor } =\n\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId ) || {};\n\t\treturn { style, borderColor };\n\t}\n\tconst { style, borderColor } = useSelect( selector, [ clientId ] );\n\tconst value = useMemo( () => {\n\t\treturn attributesToStyle( { style, borderColor } );\n\t}, [ style, borderColor ] );\n\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( styleToAttributes( newStyle ) );\n\t};\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst defaultControls = {\n\t\t...getBlockSupport( name, [ BORDER_SUPPORT_KEY, 'defaultControls' ] ),\n\t\t...getBlockSupport( name, [ SHADOW_SUPPORT_KEY, 'defaultControls' ] ),\n\t};\n\n\treturn (\n\t\t<StylesBorderPanel\n\t\t\tas={ BordersInspectorControl }\n\t\t\tpanelId={ clientId }\n\t\t\tsettings={ settings }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tdefaultControls={ defaultControls }\n\t\t/>\n\t);\n}\n\n/**\n * Determine whether there is block support for border properties.\n *\n * @param {string} blockName Block name.\n * @param {string} feature Border feature to check support for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasBorderSupport( blockName, feature = 'any' ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst support = getBlockSupport( blockName, BORDER_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn !! (\n\t\t\tsupport?.color ||\n\t\t\tsupport?.radius ||\n\t\t\tsupport?.width ||\n\t\t\tsupport?.style\n\t\t);\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\n/**\n * Determine whether there is block support for shadow properties.\n *\n * @param {string} blockName Block name.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasShadowSupport( blockName ) {\n\treturn hasBlockSupport( blockName, SHADOW_SUPPORT_KEY );\n}\n\nexport function useBorderPanelLabel( {\n\tblockName,\n\thasBorderControl,\n\thasShadowControl,\n} = {} ) {\n\tconst settings = useBlockSettings( blockName );\n\tconst controls = useHasBorderPanelControls( settings );\n\n\tif ( ! hasBorderControl && ! hasShadowControl && blockName ) {\n\t\thasBorderControl =\n\t\t\tcontrols?.hasBorderColor ||\n\t\t\tcontrols?.hasBorderStyle ||\n\t\t\tcontrols?.hasBorderWidth ||\n\t\t\tcontrols?.hasBorderRadius;\n\t\thasShadowControl = controls?.hasShadow;\n\t}\n\n\tif ( hasBorderControl && hasShadowControl ) {\n\t\treturn __( 'Border & Shadow' );\n\t}\n\n\tif ( hasShadowControl ) {\n\t\treturn __( 'Shadow' );\n\t}\n\n\treturn __( 'Border' );\n}\n\n/**\n * Returns a new style object where the specified border attribute has been\n * removed.\n *\n * @param {Object} style Styles from block attributes.\n * @param {string} attribute The border style attribute to clear.\n *\n * @return {Object} Style object with the specified attribute removed.\n */\nexport function removeBorderAttribute( style, attribute ) {\n\treturn cleanEmptyObject( {\n\t\t...style,\n\t\tborder: {\n\t\t\t...style?.border,\n\t\t\t[ attribute ]: undefined,\n\t\t},\n\t} );\n}\n\n/**\n * Filters registered block settings, extending attributes to include\n * `borderColor` if needed.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Updated block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasBorderSupport( settings, 'color' ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify default value if needed.\n\tif ( settings.attributes.borderColor ) {\n\t\treturn settings;\n\t}\n\n\t// Add new borderColor attribute to block settings.\n\treturn {\n\t\t...settings,\n\t\tattributes: {\n\t\t\t...settings.attributes,\n\t\t\tborderColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t};\n}\n\n/**\n * Override props assigned to save component to inject border color.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object|string} blockNameOrType Block type definition.\n * @param {Object} attributes Block's attributes.\n *\n * @return {Object} Filtered props to apply to save element.\n */\nfunction addSaveProps( props, blockNameOrType, attributes ) {\n\tif (\n\t\t! hasBorderSupport( blockNameOrType, 'color' ) ||\n\t\tshouldSkipSerialization( blockNameOrType, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst borderClasses = getBorderClasses( attributes );\n\tconst newClassName = clsx( props.className, borderClasses );\n\n\t// If we are clearing the last of the previous classes in `className`\n\t// set it to `undefined` to avoid rendering empty DOM attributes.\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Generates a CSS class name consisting of all the applicable border color\n * classes given the current block attributes.\n *\n * @param {Object} attributes Block's attributes.\n *\n * @return {string} CSS class name.\n */\nexport function getBorderClasses( attributes ) {\n\tconst { borderColor, style } = attributes;\n\tconst borderColorClass = getColorClassName( 'border-color', borderColor );\n\n\treturn clsx( {\n\t\t'has-border-color': borderColor || style?.border?.color,\n\t\t[ borderColorClass ]: !! borderColorClass,\n\t} );\n}\n\nfunction useBlockProps( { name, borderColor, style } ) {\n\tconst { colors } = useMultipleOriginColorsAndGradients();\n\n\tif (\n\t\t! hasBorderSupport( name, 'color' ) ||\n\t\tshouldSkipSerialization( name, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn {};\n\t}\n\n\tconst { color: borderColorValue } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: borderColor,\n\t} );\n\tconst { color: borderTopColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.top?.color ),\n\t} );\n\tconst { color: borderRightColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.right?.color ),\n\t} );\n\n\tconst { color: borderBottomColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.bottom?.color ),\n\t} );\n\tconst { color: borderLeftColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.left?.color ),\n\t} );\n\n\tconst extraStyles = {\n\t\tborderTopColor: borderTopColor || borderColorValue,\n\t\tborderRightColor: borderRightColor || borderColorValue,\n\t\tborderBottomColor: borderBottomColor || borderColorValue,\n\t\tborderLeftColor: borderLeftColor || borderColorValue,\n\t};\n\n\treturn addSaveProps(\n\t\t{ style: cleanEmptyObject( extraStyles ) || {} },\n\t\tname,\n\t\t{ borderColor, style }\n\t);\n}\n\nexport default {\n\tuseBlockProps,\n\taddSaveProps,\n\tattributeKeys: [ 'borderColor', 'style' ],\n\thasSupport( name ) {\n\t\treturn hasBorderSupport( name, 'color' );\n\t},\n};\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/border/addAttributes',\n\taddAttributes\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_blocks","_components","_element","_hooks","_data","_colors","_inspectorControls","_useMultipleOriginColorsAndGradients","_utils","_globalStyles","_store","_i18n","_jsxRuntime","BORDER_SUPPORT_KEY","exports","SHADOW_SUPPORT_KEY","getColorByProperty","colors","property","value","matchedColor","some","origin","color","getMultiOriginColor","namedColor","customColor","colorObject","undefined","getColorSlugFromVariable","exec","styleToAttributes","style","hasSplitBorders","border","borderColor","borderColorValue","borderColorSlug","startsWith","substring","length","updatedStyle","cleanEmptyObject","attributesToStyle","attributes","BordersInspectorControl","label","children","resetAllFilter","attributesResetAllFilter","useCallback","existingStyle","jsx","default","group","BorderPanel","clientId","name","setAttributes","settings","isEnabled","useHasBorderPanel","selector","select","blockEditorStore","getBlockAttributes","useSelect","useMemo","onChange","newStyle","defaultControls","getBlockSupport","as","panelId","hasBorderSupport","blockName","feature","Platform","OS","support","radius","width","hasShadowSupport","hasBlockSupport","useBorderPanelLabel","hasBorderControl","hasShadowControl","useBlockSettings","controls","useHasBorderPanelControls","hasBorderColor","hasBorderStyle","hasBorderWidth","hasBorderRadius","hasShadow","__","removeBorderAttribute","attribute","addAttributes","type","addSaveProps","props","blockNameOrType","shouldSkipSerialization","borderClasses","getBorderClasses","newClassName","clsx","className","borderColorClass","getColorClassName","useBlockProps","useMultipleOriginColorsAndGradients","borderTopColor","top","borderRightColor","right","borderBottomColor","bottom","borderLeftColor","left","extraStyles","_default","attributeKeys","hasSupport","addFilter"],"sources":["@wordpress/block-editor/src/hooks/border.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, getBlockSupport } from '@wordpress/blocks';\nimport { __experimentalHasSplitBorders as hasSplitBorders } from '@wordpress/components';\nimport { Platform, useCallback, useMemo } from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { getColorClassName } from '../components/colors';\nimport InspectorControls from '../components/inspector-controls';\nimport useMultipleOriginColorsAndGradients from '../components/colors-gradients/use-multiple-origin-colors-and-gradients';\nimport {\n\tcleanEmptyObject,\n\tshouldSkipSerialization,\n\tuseBlockSettings,\n} from './utils';\nimport {\n\tuseHasBorderPanel,\n\tuseHasBorderPanelControls,\n\tBorderPanel as StylesBorderPanel,\n} from '../components/global-styles';\nimport { store as blockEditorStore } from '../store';\nimport { __ } from '@wordpress/i18n';\n\nexport const BORDER_SUPPORT_KEY = '__experimentalBorder';\nexport const SHADOW_SUPPORT_KEY = 'shadow';\n\nconst getColorByProperty = ( colors, property, value ) => {\n\tlet matchedColor;\n\n\tcolors.some( ( origin ) =>\n\t\torigin.colors.some( ( color ) => {\n\t\t\tif ( color[ property ] === value ) {\n\t\t\t\tmatchedColor = color;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t} )\n\t);\n\n\treturn matchedColor;\n};\n\nexport const getMultiOriginColor = ( { colors, namedColor, customColor } ) => {\n\t// Search each origin (default, theme, or user) for matching color by name.\n\tif ( namedColor ) {\n\t\tconst colorObject = getColorByProperty( colors, 'slug', namedColor );\n\t\tif ( colorObject ) {\n\t\t\treturn colorObject;\n\t\t}\n\t}\n\n\t// Skip if no custom color or matching named color.\n\tif ( ! customColor ) {\n\t\treturn { color: undefined };\n\t}\n\n\t// Attempt to find color via custom color value or build new object.\n\tconst colorObject = getColorByProperty( colors, 'color', customColor );\n\treturn colorObject ? colorObject : { color: customColor };\n};\n\nfunction getColorSlugFromVariable( value ) {\n\tconst namedColor = /var:preset\\|color\\|(.+)/.exec( value );\n\tif ( namedColor && namedColor[ 1 ] ) {\n\t\treturn namedColor[ 1 ];\n\t}\n\treturn null;\n}\n\nfunction styleToAttributes( style ) {\n\tif ( hasSplitBorders( style?.border ) ) {\n\t\treturn {\n\t\t\tstyle,\n\t\t\tborderColor: undefined,\n\t\t};\n\t}\n\n\tconst borderColorValue = style?.border?.color;\n\tconst borderColorSlug = borderColorValue?.startsWith( 'var:preset|color|' )\n\t\t? borderColorValue.substring( 'var:preset|color|'.length )\n\t\t: undefined;\n\tconst updatedStyle = { ...style };\n\tupdatedStyle.border = {\n\t\t...updatedStyle.border,\n\t\tcolor: borderColorSlug ? undefined : borderColorValue,\n\t};\n\treturn {\n\t\tstyle: cleanEmptyObject( updatedStyle ),\n\t\tborderColor: borderColorSlug,\n\t};\n}\n\nfunction attributesToStyle( attributes ) {\n\tif ( hasSplitBorders( attributes.style?.border ) ) {\n\t\treturn attributes.style;\n\t}\n\treturn {\n\t\t...attributes.style,\n\t\tborder: {\n\t\t\t...attributes.style?.border,\n\t\t\tcolor: attributes.borderColor\n\t\t\t\t? 'var:preset|color|' + attributes.borderColor\n\t\t\t\t: attributes.style?.border?.color,\n\t\t},\n\t};\n}\n\nfunction BordersInspectorControl( { label, children, resetAllFilter } ) {\n\tconst attributesResetAllFilter = useCallback(\n\t\t( attributes ) => {\n\t\t\tconst existingStyle = attributesToStyle( attributes );\n\t\t\tconst updatedStyle = resetAllFilter( existingStyle );\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\t...styleToAttributes( updatedStyle ),\n\t\t\t};\n\t\t},\n\t\t[ resetAllFilter ]\n\t);\n\n\treturn (\n\t\t<InspectorControls\n\t\t\tgroup=\"border\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t\tlabel={ label }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function BorderPanel( { clientId, name, setAttributes, settings } ) {\n\tconst isEnabled = useHasBorderPanel( settings );\n\tfunction selector( select ) {\n\t\tconst { style, borderColor } =\n\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId ) || {};\n\t\treturn { style, borderColor };\n\t}\n\tconst { style, borderColor } = useSelect( selector, [ clientId ] );\n\tconst value = useMemo( () => {\n\t\treturn attributesToStyle( { style, borderColor } );\n\t}, [ style, borderColor ] );\n\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( styleToAttributes( newStyle ) );\n\t};\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst defaultControls = {\n\t\t...getBlockSupport( name, [\n\t\t\tBORDER_SUPPORT_KEY,\n\t\t\t'__experimentalDefaultControls',\n\t\t] ),\n\t\t...getBlockSupport( name, [\n\t\t\tSHADOW_SUPPORT_KEY,\n\t\t\t'__experimentalDefaultControls',\n\t\t] ),\n\t};\n\n\treturn (\n\t\t<StylesBorderPanel\n\t\t\tas={ BordersInspectorControl }\n\t\t\tpanelId={ clientId }\n\t\t\tsettings={ settings }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tdefaultControls={ defaultControls }\n\t\t/>\n\t);\n}\n\n/**\n * Determine whether there is block support for border properties.\n *\n * @param {string} blockName Block name.\n * @param {string} feature Border feature to check support for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasBorderSupport( blockName, feature = 'any' ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst support = getBlockSupport( blockName, BORDER_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn !! (\n\t\t\tsupport?.color ||\n\t\t\tsupport?.radius ||\n\t\t\tsupport?.width ||\n\t\t\tsupport?.style\n\t\t);\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\n/**\n * Determine whether there is block support for shadow properties.\n *\n * @param {string} blockName Block name.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasShadowSupport( blockName ) {\n\treturn hasBlockSupport( blockName, SHADOW_SUPPORT_KEY );\n}\n\nexport function useBorderPanelLabel( {\n\tblockName,\n\thasBorderControl,\n\thasShadowControl,\n} = {} ) {\n\tconst settings = useBlockSettings( blockName );\n\tconst controls = useHasBorderPanelControls( settings );\n\n\tif ( ! hasBorderControl && ! hasShadowControl && blockName ) {\n\t\thasBorderControl =\n\t\t\tcontrols?.hasBorderColor ||\n\t\t\tcontrols?.hasBorderStyle ||\n\t\t\tcontrols?.hasBorderWidth ||\n\t\t\tcontrols?.hasBorderRadius;\n\t\thasShadowControl = controls?.hasShadow;\n\t}\n\n\tif ( hasBorderControl && hasShadowControl ) {\n\t\treturn __( 'Border & Shadow' );\n\t}\n\n\tif ( hasShadowControl ) {\n\t\treturn __( 'Shadow' );\n\t}\n\n\treturn __( 'Border' );\n}\n\n/**\n * Returns a new style object where the specified border attribute has been\n * removed.\n *\n * @param {Object} style Styles from block attributes.\n * @param {string} attribute The border style attribute to clear.\n *\n * @return {Object} Style object with the specified attribute removed.\n */\nexport function removeBorderAttribute( style, attribute ) {\n\treturn cleanEmptyObject( {\n\t\t...style,\n\t\tborder: {\n\t\t\t...style?.border,\n\t\t\t[ attribute ]: undefined,\n\t\t},\n\t} );\n}\n\n/**\n * Filters registered block settings, extending attributes to include\n * `borderColor` if needed.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Updated block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasBorderSupport( settings, 'color' ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify default value if needed.\n\tif ( settings.attributes.borderColor ) {\n\t\treturn settings;\n\t}\n\n\t// Add new borderColor attribute to block settings.\n\treturn {\n\t\t...settings,\n\t\tattributes: {\n\t\t\t...settings.attributes,\n\t\t\tborderColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t};\n}\n\n/**\n * Override props assigned to save component to inject border color.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object|string} blockNameOrType Block type definition.\n * @param {Object} attributes Block's attributes.\n *\n * @return {Object} Filtered props to apply to save element.\n */\nfunction addSaveProps( props, blockNameOrType, attributes ) {\n\tif (\n\t\t! hasBorderSupport( blockNameOrType, 'color' ) ||\n\t\tshouldSkipSerialization( blockNameOrType, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst borderClasses = getBorderClasses( attributes );\n\tconst newClassName = clsx( props.className, borderClasses );\n\n\t// If we are clearing the last of the previous classes in `className`\n\t// set it to `undefined` to avoid rendering empty DOM attributes.\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Generates a CSS class name consisting of all the applicable border color\n * classes given the current block attributes.\n *\n * @param {Object} attributes Block's attributes.\n *\n * @return {string} CSS class name.\n */\nexport function getBorderClasses( attributes ) {\n\tconst { borderColor, style } = attributes;\n\tconst borderColorClass = getColorClassName( 'border-color', borderColor );\n\n\treturn clsx( {\n\t\t'has-border-color': borderColor || style?.border?.color,\n\t\t[ borderColorClass ]: !! borderColorClass,\n\t} );\n}\n\nfunction useBlockProps( { name, borderColor, style } ) {\n\tconst { colors } = useMultipleOriginColorsAndGradients();\n\n\tif (\n\t\t! hasBorderSupport( name, 'color' ) ||\n\t\tshouldSkipSerialization( name, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn {};\n\t}\n\n\tconst { color: borderColorValue } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: borderColor,\n\t} );\n\tconst { color: borderTopColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.top?.color ),\n\t} );\n\tconst { color: borderRightColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.right?.color ),\n\t} );\n\n\tconst { color: borderBottomColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.bottom?.color ),\n\t} );\n\tconst { color: borderLeftColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.left?.color ),\n\t} );\n\n\tconst extraStyles = {\n\t\tborderTopColor: borderTopColor || borderColorValue,\n\t\tborderRightColor: borderRightColor || borderColorValue,\n\t\tborderBottomColor: borderBottomColor || borderColorValue,\n\t\tborderLeftColor: borderLeftColor || borderColorValue,\n\t};\n\n\treturn addSaveProps(\n\t\t{ style: cleanEmptyObject( extraStyles ) || {} },\n\t\tname,\n\t\t{ borderColor, style }\n\t);\n}\n\nexport default {\n\tuseBlockProps,\n\taddSaveProps,\n\tattributeKeys: [ 'borderColor', 'style' ],\n\thasSupport( name ) {\n\t\treturn hasBorderSupport( name, 'color' );\n\t},\n};\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/border/addAttributes',\n\taddAttributes\n);\n"],"mappings":"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","ignoreList":[]}
@@ -236,7 +236,7 @@ function ColorEdit({
236
236
  if (!isEnabled) {
237
237
  return null;
238
238
  }
239
- const defaultControls = (0, _blocks.getBlockSupport)(name, [COLOR_SUPPORT_KEY, 'defaultControls']);
239
+ const defaultControls = (0, _blocks.getBlockSupport)(name, [COLOR_SUPPORT_KEY, '__experimentalDefaultControls']);
240
240
  const enableContrastChecking = _element.Platform.OS === 'web' && !value?.color?.gradient && (settings?.color?.text || settings?.color?.link) &&
241
241
  // Contrast checking is enabled by default.
242
242
  // Deactivating it requires `enableContrastChecker` to have