@wordpress/block-editor 12.10.6 → 12.11.1

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 (1226) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +13 -11
  3. package/build/autocompleters/block.js +3 -2
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/autocompleters/link.js +3 -3
  6. package/build/autocompleters/link.js.map +1 -1
  7. package/build/components/alignment-control/index.js +3 -3
  8. package/build/components/alignment-control/index.js.map +1 -1
  9. package/build/components/alignment-control/ui.js +2 -2
  10. package/build/components/alignment-control/ui.js.map +1 -1
  11. package/build/components/autocomplete/index.js +3 -2
  12. package/build/components/autocomplete/index.js.map +1 -1
  13. package/build/components/block-actions/index.js +2 -2
  14. package/build/components/block-actions/index.js.map +1 -1
  15. package/build/components/block-alignment-control/index.js +3 -3
  16. package/build/components/block-alignment-control/index.js.map +1 -1
  17. package/build/components/block-alignment-control/ui.js +4 -4
  18. package/build/components/block-alignment-control/ui.js.map +1 -1
  19. package/build/components/block-alignment-control/ui.native.js +2 -2
  20. package/build/components/block-alignment-control/ui.native.js.map +1 -1
  21. package/build/components/block-alignment-matrix-control/index.js +5 -5
  22. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  23. package/build/components/block-breadcrumb/index.js +12 -12
  24. package/build/components/block-breadcrumb/index.js.map +1 -1
  25. package/build/components/block-canvas/index.js +13 -15
  26. package/build/components/block-canvas/index.js.map +1 -1
  27. package/build/components/block-caption/index.native.js +3 -3
  28. package/build/components/block-caption/index.native.js.map +1 -1
  29. package/build/components/block-card/index.js +7 -7
  30. package/build/components/block-card/index.js.map +1 -1
  31. package/build/components/block-compare/block-view.js +9 -8
  32. package/build/components/block-compare/block-view.js.map +1 -1
  33. package/build/components/block-compare/index.js +5 -5
  34. package/build/components/block-compare/index.js.map +1 -1
  35. package/build/components/block-context/index.js +2 -1
  36. package/build/components/block-context/index.js.map +1 -1
  37. package/build/components/block-controls/fill.js +5 -5
  38. package/build/components/block-controls/fill.js.map +1 -1
  39. package/build/components/block-controls/index.js +3 -3
  40. package/build/components/block-controls/index.js.map +1 -1
  41. package/build/components/block-controls/slot.js +3 -2
  42. package/build/components/block-controls/slot.js.map +1 -1
  43. package/build/components/block-controls/slot.native.js +4 -4
  44. package/build/components/block-controls/slot.native.js.map +1 -1
  45. package/build/components/block-draggable/draggable-chip.js +6 -6
  46. package/build/components/block-draggable/draggable-chip.js.map +1 -1
  47. package/build/components/block-draggable/draggable-chip.native.js +4 -4
  48. package/build/components/block-draggable/draggable-chip.native.js.map +1 -1
  49. package/build/components/block-draggable/dropping-insertion-point.native.js +2 -2
  50. package/build/components/block-draggable/dropping-insertion-point.native.js.map +1 -1
  51. package/build/components/block-draggable/index.js +4 -3
  52. package/build/components/block-draggable/index.js.map +1 -1
  53. package/build/components/block-draggable/index.native.js +9 -8
  54. package/build/components/block-draggable/index.native.js.map +1 -1
  55. package/build/components/block-edit/edit.js +5 -4
  56. package/build/components/block-edit/edit.js.map +1 -1
  57. package/build/components/block-edit/edit.native.js +3 -2
  58. package/build/components/block-edit/edit.native.js.map +1 -1
  59. package/build/components/block-edit/index.js +3 -2
  60. package/build/components/block-edit/index.js.map +1 -1
  61. package/build/components/block-edit-visually-button/index.js +2 -2
  62. package/build/components/block-edit-visually-button/index.js.map +1 -1
  63. package/build/components/block-full-height-alignment-control/index.js +2 -2
  64. package/build/components/block-full-height-alignment-control/index.js.map +1 -1
  65. package/build/components/block-heading-level-dropdown/heading-level-icon.js +4 -4
  66. package/build/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -1
  67. package/build/components/block-heading-level-dropdown/index.js +6 -6
  68. package/build/components/block-heading-level-dropdown/index.js.map +1 -1
  69. package/build/components/block-heading-level-dropdown/index.native.js +6 -6
  70. package/build/components/block-heading-level-dropdown/index.native.js.map +1 -1
  71. package/build/components/block-icon/index.js +4 -3
  72. package/build/components/block-icon/index.js.map +1 -1
  73. package/build/components/block-icon/index.native.js +3 -3
  74. package/build/components/block-icon/index.native.js.map +1 -1
  75. package/build/components/block-info-slot-fill/index.js +3 -3
  76. package/build/components/block-info-slot-fill/index.js.map +1 -1
  77. package/build/components/block-inspector/index.js +34 -34
  78. package/build/components/block-inspector/index.js.map +1 -1
  79. package/build/components/block-list/block-crash-warning.js +2 -2
  80. package/build/components/block-list/block-crash-warning.js.map +1 -1
  81. package/build/components/block-list/block-html.js +3 -2
  82. package/build/components/block-list/block-html.js.map +1 -1
  83. package/build/components/block-list/block-invalid-warning.js +6 -5
  84. package/build/components/block-list/block-invalid-warning.js.map +1 -1
  85. package/build/components/block-list/block-invalid-warning.native.js +3 -3
  86. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  87. package/build/components/block-list/block-list-item-cell.native.js +3 -2
  88. package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
  89. package/build/components/block-list/block-list-item.native.js +10 -10
  90. package/build/components/block-list/block-list-item.native.js.map +1 -1
  91. package/build/components/block-list/block-outline.native.js +2 -2
  92. package/build/components/block-list/block-outline.native.js.map +1 -1
  93. package/build/components/block-list/block-selection-button.native.js +9 -9
  94. package/build/components/block-list/block-selection-button.native.js.map +1 -1
  95. package/build/components/block-list/block.js +16 -15
  96. package/build/components/block-list/block.js.map +1 -1
  97. package/build/components/block-list/block.native.js +10 -9
  98. package/build/components/block-list/block.native.js.map +1 -1
  99. package/build/components/block-list/grid-item.native.js +2 -2
  100. package/build/components/block-list/grid-item.native.js.map +1 -1
  101. package/build/components/block-list/index.js +14 -13
  102. package/build/components/block-list/index.js.map +1 -1
  103. package/build/components/block-list/index.native.js +21 -20
  104. package/build/components/block-list/index.native.js.map +1 -1
  105. package/build/components/block-list/insertion-point.native.js +5 -5
  106. package/build/components/block-list/insertion-point.native.js.map +1 -1
  107. package/build/components/block-list/layout.js +3 -2
  108. package/build/components/block-list/layout.js.map +1 -1
  109. package/build/components/block-list/subdirectory-icon.js +3 -3
  110. package/build/components/block-list/subdirectory-icon.js.map +1 -1
  111. package/build/components/block-list-appender/index.js +5 -5
  112. package/build/components/block-list-appender/index.js.map +1 -1
  113. package/build/components/block-list-appender/index.native.js +4 -4
  114. package/build/components/block-list-appender/index.native.js.map +1 -1
  115. package/build/components/block-lock/menu-item.js +4 -3
  116. package/build/components/block-lock/menu-item.js.map +1 -1
  117. package/build/components/block-lock/modal.js +21 -20
  118. package/build/components/block-lock/modal.js.map +1 -1
  119. package/build/components/block-lock/toolbar.js +5 -4
  120. package/build/components/block-lock/toolbar.js.map +1 -1
  121. package/build/components/block-media-update-progress/index.native.js +5 -4
  122. package/build/components/block-media-update-progress/index.native.js.map +1 -1
  123. package/build/components/block-mover/button.js +6 -5
  124. package/build/components/block-mover/button.js.map +1 -1
  125. package/build/components/block-mover/index.js +7 -7
  126. package/build/components/block-mover/index.js.map +1 -1
  127. package/build/components/block-mover/index.native.js +5 -4
  128. package/build/components/block-mover/index.native.js.map +1 -1
  129. package/build/components/block-navigation/dropdown.js +8 -7
  130. package/build/components/block-navigation/dropdown.js.map +1 -1
  131. package/build/components/block-parent-selector/index.js +6 -5
  132. package/build/components/block-parent-selector/index.js.map +1 -1
  133. package/build/components/block-pattern-setup/index.js +20 -19
  134. package/build/components/block-pattern-setup/index.js.map +1 -1
  135. package/build/components/block-pattern-setup/setup-toolbar.js +12 -12
  136. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  137. package/build/components/block-patterns-list/index.js +19 -18
  138. package/build/components/block-patterns-list/index.js.map +1 -1
  139. package/build/components/block-patterns-paging/index.js +12 -12
  140. package/build/components/block-patterns-paging/index.js.map +1 -1
  141. package/build/components/block-popover/drop-zone.js +3 -3
  142. package/build/components/block-popover/drop-zone.js.map +1 -1
  143. package/build/components/block-popover/inbetween.js +4 -3
  144. package/build/components/block-popover/inbetween.js.map +1 -1
  145. package/build/components/block-popover/index.js +4 -3
  146. package/build/components/block-popover/index.js.map +1 -1
  147. package/build/components/block-preview/auto.js +9 -8
  148. package/build/components/block-preview/auto.js.map +1 -1
  149. package/build/components/block-preview/index.js +7 -6
  150. package/build/components/block-preview/index.js.map +1 -1
  151. package/build/components/block-quick-navigation/index.js +7 -7
  152. package/build/components/block-quick-navigation/index.js.map +1 -1
  153. package/build/components/block-removal-warning-modal/index.js +7 -6
  154. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  155. package/build/components/block-selection-clearer/index.js +2 -2
  156. package/build/components/block-selection-clearer/index.js.map +1 -1
  157. package/build/components/block-settings/button.native.js +3 -3
  158. package/build/components/block-settings/button.native.js.map +1 -1
  159. package/build/components/block-settings/container.native.js +12 -12
  160. package/build/components/block-settings/container.native.js.map +1 -1
  161. package/build/components/block-settings-menu/block-html-convert-button.js +21 -17
  162. package/build/components/block-settings-menu/block-html-convert-button.js.map +1 -1
  163. package/build/components/block-settings-menu/block-mode-toggle.js +2 -2
  164. package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  165. package/build/components/block-settings-menu/block-settings-dropdown.js +17 -16
  166. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  167. package/build/components/block-settings-menu/index.js +2 -2
  168. package/build/components/block-settings-menu/index.js.map +1 -1
  169. package/build/components/block-settings-menu-controls/index.js +9 -9
  170. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  171. package/build/components/block-styles/index.js +11 -9
  172. package/build/components/block-styles/index.js.map +1 -1
  173. package/build/components/block-styles/index.native.js +4 -3
  174. package/build/components/block-styles/index.native.js.map +1 -1
  175. package/build/components/block-styles/menu-items.js +4 -4
  176. package/build/components/block-styles/menu-items.js.map +1 -1
  177. package/build/components/block-styles/preview-panel.js +3 -2
  178. package/build/components/block-styles/preview-panel.js.map +1 -1
  179. package/build/components/block-styles/preview.native.js +8 -7
  180. package/build/components/block-styles/preview.native.js.map +1 -1
  181. package/build/components/block-switcher/block-styles-menu.js +3 -3
  182. package/build/components/block-switcher/block-styles-menu.js.map +1 -1
  183. package/build/components/block-switcher/block-transformations-menu.js +11 -10
  184. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  185. package/build/components/block-switcher/block-transformations-menu.native.js +2 -2
  186. package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  187. package/build/components/block-switcher/block-variation-transformations.js +6 -5
  188. package/build/components/block-switcher/block-variation-transformations.js.map +1 -1
  189. package/build/components/block-switcher/index.js +17 -17
  190. package/build/components/block-switcher/index.js.map +1 -1
  191. package/build/components/block-switcher/pattern-transformations-menu.js +20 -17
  192. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  193. package/build/components/block-switcher/preview-block-popover.js +7 -7
  194. package/build/components/block-switcher/preview-block-popover.js.map +1 -1
  195. package/build/components/block-toolbar/block-toolbar-menu.native.js +6 -5
  196. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  197. package/build/components/block-toolbar/index.js +16 -15
  198. package/build/components/block-toolbar/index.js.map +1 -1
  199. package/build/components/block-toolbar/index.native.js +8 -7
  200. package/build/components/block-toolbar/index.native.js.map +1 -1
  201. package/build/components/block-tools/back-compat.js +3 -2
  202. package/build/components/block-tools/back-compat.js.map +1 -1
  203. package/build/components/block-tools/block-contextual-toolbar.js +6 -5
  204. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  205. package/build/components/block-tools/block-selection-button.js +11 -10
  206. package/build/components/block-tools/block-selection-button.js.map +1 -1
  207. package/build/components/block-tools/index.js +10 -9
  208. package/build/components/block-tools/index.js.map +1 -1
  209. package/build/components/block-tools/insertion-point.js +9 -8
  210. package/build/components/block-tools/insertion-point.js.map +1 -1
  211. package/build/components/block-tools/selected-block-popover.js +9 -8
  212. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  213. package/build/components/block-tools/zoom-out-mode-inserters.js +5 -4
  214. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  215. package/build/components/block-types-list/index.js +4 -4
  216. package/build/components/block-types-list/index.js.map +1 -1
  217. package/build/components/block-types-list/index.native.js +11 -10
  218. package/build/components/block-types-list/index.native.js.map +1 -1
  219. package/build/components/block-variation-picker/index.js +8 -8
  220. package/build/components/block-variation-picker/index.js.map +1 -1
  221. package/build/components/block-variation-picker/index.native.js +8 -8
  222. package/build/components/block-variation-picker/index.native.js.map +1 -1
  223. package/build/components/block-variation-transforms/index.js +10 -9
  224. package/build/components/block-variation-transforms/index.js.map +1 -1
  225. package/build/components/block-vertical-alignment-control/icons.js +11 -11
  226. package/build/components/block-vertical-alignment-control/icons.js.map +1 -1
  227. package/build/components/block-vertical-alignment-control/index.js +3 -3
  228. package/build/components/block-vertical-alignment-control/index.js.map +1 -1
  229. package/build/components/block-vertical-alignment-control/ui.js +2 -2
  230. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  231. package/build/components/border-radius-control/all-input-control.js +2 -2
  232. package/build/components/border-radius-control/all-input-control.js.map +1 -1
  233. package/build/components/border-radius-control/index.js +10 -9
  234. package/build/components/border-radius-control/index.js.map +1 -1
  235. package/build/components/border-radius-control/input-controls.js +5 -5
  236. package/build/components/border-radius-control/input-controls.js.map +1 -1
  237. package/build/components/border-radius-control/linked-button.js +3 -3
  238. package/build/components/border-radius-control/linked-button.js.map +1 -1
  239. package/build/components/button-block-appender/index.js +7 -6
  240. package/build/components/button-block-appender/index.js.map +1 -1
  241. package/build/components/button-block-appender/index.native.js +5 -5
  242. package/build/components/button-block-appender/index.native.js.map +1 -1
  243. package/build/components/caption/index.native.js +3 -3
  244. package/build/components/caption/index.native.js.map +1 -1
  245. package/build/components/child-layout-control/index.js +8 -7
  246. package/build/components/child-layout-control/index.js.map +1 -1
  247. package/build/components/color-palette/control.js +2 -2
  248. package/build/components/color-palette/control.js.map +1 -1
  249. package/build/components/color-palette/with-color-context.js +2 -2
  250. package/build/components/color-palette/with-color-context.js.map +1 -1
  251. package/build/components/color-style-selector/index.js +9 -9
  252. package/build/components/color-style-selector/index.js.map +1 -1
  253. package/build/components/colors/with-colors.js +5 -4
  254. package/build/components/colors/with-colors.js.map +1 -1
  255. package/build/components/colors-gradients/control.js +12 -12
  256. package/build/components/colors-gradients/control.js.map +1 -1
  257. package/build/components/colors-gradients/dropdown.js +13 -13
  258. package/build/components/colors-gradients/dropdown.js.map +1 -1
  259. package/build/components/colors-gradients/panel-color-gradient-settings.js +7 -7
  260. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  261. package/build/components/colors-gradients/panel-color-gradient-settings.native.js +5 -4
  262. package/build/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  263. package/build/components/contrast-checker/index.js +3 -3
  264. package/build/components/contrast-checker/index.js.map +1 -1
  265. package/build/components/contrast-checker/index.native.js +6 -5
  266. package/build/components/contrast-checker/index.native.js.map +1 -1
  267. package/build/components/convert-to-group-buttons/index.js +3 -3
  268. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  269. package/build/components/convert-to-group-buttons/toolbar.js +4 -4
  270. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  271. package/build/components/copy-handler/index.js +29 -209
  272. package/build/components/copy-handler/index.js.map +1 -1
  273. package/build/components/date-format-picker/index.js +9 -8
  274. package/build/components/date-format-picker/index.js.map +1 -1
  275. package/build/components/default-block-appender/index.js +4 -4
  276. package/build/components/default-block-appender/index.js.map +1 -1
  277. package/build/components/default-block-appender/index.native.js +4 -4
  278. package/build/components/default-block-appender/index.native.js.map +1 -1
  279. package/build/components/default-style-picker/index.js +4 -3
  280. package/build/components/default-style-picker/index.js.map +1 -1
  281. package/build/components/dimensions-tool/aspect-ratio-tool.js +3 -3
  282. package/build/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
  283. package/build/components/dimensions-tool/index.js +5 -4
  284. package/build/components/dimensions-tool/index.js.map +1 -1
  285. package/build/components/dimensions-tool/scale-tool.js +6 -5
  286. package/build/components/dimensions-tool/scale-tool.js.map +1 -1
  287. package/build/components/dimensions-tool/width-height-tool.js +7 -7
  288. package/build/components/dimensions-tool/width-height-tool.js.map +1 -1
  289. package/build/components/duotone-control/index.js +18 -10
  290. package/build/components/duotone-control/index.js.map +1 -1
  291. package/build/components/editable-text/index.js +3 -2
  292. package/build/components/editable-text/index.js.map +1 -1
  293. package/build/components/editor-styles/index.js +5 -4
  294. package/build/components/editor-styles/index.js.map +1 -1
  295. package/build/components/floating-toolbar/index.native.js +8 -7
  296. package/build/components/floating-toolbar/index.native.js.map +1 -1
  297. package/build/components/floating-toolbar/nav-up-icon.js +4 -4
  298. package/build/components/floating-toolbar/nav-up-icon.js.map +1 -1
  299. package/build/components/font-appearance-control/index.js +4 -3
  300. package/build/components/font-appearance-control/index.js.map +1 -1
  301. package/build/components/font-family/index.js +2 -2
  302. package/build/components/font-family/index.js.map +1 -1
  303. package/build/components/font-sizes/font-size-picker.js +2 -2
  304. package/build/components/font-sizes/font-size-picker.js.map +1 -1
  305. package/build/components/font-sizes/with-font-sizes.js +4 -3
  306. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  307. package/build/components/global-styles/advanced-panel.js +7 -6
  308. package/build/components/global-styles/advanced-panel.js.map +1 -1
  309. package/build/components/global-styles/border-panel.js +8 -7
  310. package/build/components/global-styles/border-panel.js.map +1 -1
  311. package/build/components/global-styles/color-panel.js +21 -20
  312. package/build/components/global-styles/color-panel.js.map +1 -1
  313. package/build/components/global-styles/color-panel.native.js +4 -3
  314. package/build/components/global-styles/color-panel.native.js.map +1 -1
  315. package/build/components/global-styles/dimensions-panel.js +27 -26
  316. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  317. package/build/components/global-styles/effects-panel.js +23 -22
  318. package/build/components/global-styles/effects-panel.js.map +1 -1
  319. package/build/components/global-styles/filters-panel.js +17 -16
  320. package/build/components/global-styles/filters-panel.js.map +1 -1
  321. package/build/components/global-styles/image-settings-panel.js +4 -4
  322. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  323. package/build/components/global-styles/typography-panel.js +22 -21
  324. package/build/components/global-styles/typography-panel.js.map +1 -1
  325. package/build/components/gradients/with-gradient.js +2 -2
  326. package/build/components/gradients/with-gradient.js.map +1 -1
  327. package/build/components/height-control/index.js +9 -8
  328. package/build/components/height-control/index.js.map +1 -1
  329. package/build/components/iframe/index.js +7 -14
  330. package/build/components/iframe/index.js.map +1 -1
  331. package/build/components/image-editor/aspect-ratio-dropdown.js +7 -7
  332. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  333. package/build/components/image-editor/context.js +2 -1
  334. package/build/components/image-editor/context.js.map +1 -1
  335. package/build/components/image-editor/cropper.js +4 -4
  336. package/build/components/image-editor/cropper.js.map +1 -1
  337. package/build/components/image-editor/form-controls.js +3 -3
  338. package/build/components/image-editor/form-controls.js.map +1 -1
  339. package/build/components/image-editor/index.js +5 -5
  340. package/build/components/image-editor/index.js.map +1 -1
  341. package/build/components/image-editor/rotation-button.js +2 -2
  342. package/build/components/image-editor/rotation-button.js.map +1 -1
  343. package/build/components/image-editor/zoom-dropdown.js +4 -4
  344. package/build/components/image-editor/zoom-dropdown.js.map +1 -1
  345. package/build/components/image-size-control/index.js +9 -9
  346. package/build/components/image-size-control/index.js.map +1 -1
  347. package/build/components/index.js +1 -1
  348. package/build/components/index.js.map +1 -1
  349. package/build/components/inner-blocks/button-block-appender.js +2 -2
  350. package/build/components/inner-blocks/button-block-appender.js.map +1 -1
  351. package/build/components/inner-blocks/constants.native.js +13 -0
  352. package/build/components/inner-blocks/constants.native.js.map +1 -0
  353. package/build/components/inner-blocks/default-block-appender.js +2 -2
  354. package/build/components/inner-blocks/default-block-appender.js.map +1 -1
  355. package/build/components/inner-blocks/index.js +9 -8
  356. package/build/components/inner-blocks/index.js.map +1 -1
  357. package/build/components/inner-blocks/index.native.js +21 -8
  358. package/build/components/inner-blocks/index.native.js.map +1 -1
  359. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js +95 -0
  360. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -0
  361. package/build/components/inner-blocks/with-client-id.js +2 -2
  362. package/build/components/inner-blocks/with-client-id.js.map +1 -1
  363. package/build/components/inserter/block-patterns-explorer/explorer.js +7 -6
  364. package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  365. package/build/components/inserter/block-patterns-explorer/patterns-list.js +6 -5
  366. package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  367. package/build/components/inserter/block-patterns-explorer/sidebar.js +8 -8
  368. package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  369. package/build/components/inserter/block-patterns-filter.js +12 -11
  370. package/build/components/inserter/block-patterns-filter.js.map +1 -1
  371. package/build/components/inserter/block-patterns-tab.js +19 -18
  372. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  373. package/build/components/inserter/block-types-tab.js +10 -9
  374. package/build/components/inserter/block-types-tab.js.map +1 -1
  375. package/build/components/inserter/block-types-tab.native.js +2 -1
  376. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  377. package/build/components/inserter/index.js +9 -8
  378. package/build/components/inserter/index.js.map +1 -1
  379. package/build/components/inserter/index.native.js +11 -10
  380. package/build/components/inserter/index.native.js.map +1 -1
  381. package/build/components/inserter/library.js +3 -2
  382. package/build/components/inserter/library.js.map +1 -1
  383. package/build/components/inserter/media-tab/media-list.js +3 -3
  384. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  385. package/build/components/inserter/media-tab/media-panel.js +7 -6
  386. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  387. package/build/components/inserter/media-tab/media-preview.js +18 -17
  388. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  389. package/build/components/inserter/media-tab/media-tab.js +12 -11
  390. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  391. package/build/components/inserter/media-tab/utils.js +2 -2
  392. package/build/components/inserter/media-tab/utils.js.map +1 -1
  393. package/build/components/inserter/menu.js +19 -18
  394. package/build/components/inserter/menu.js.map +1 -1
  395. package/build/components/inserter/menu.native.js +9 -8
  396. package/build/components/inserter/menu.native.js.map +1 -1
  397. package/build/components/inserter/mobile-tab-navigation.js +12 -12
  398. package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
  399. package/build/components/inserter/no-results.js +4 -4
  400. package/build/components/inserter/no-results.js.map +1 -1
  401. package/build/components/inserter/no-results.native.js +4 -4
  402. package/build/components/inserter/no-results.native.js.map +1 -1
  403. package/build/components/inserter/panel.js +5 -5
  404. package/build/components/inserter/panel.js.map +1 -1
  405. package/build/components/inserter/preview-panel.js +8 -7
  406. package/build/components/inserter/preview-panel.js.map +1 -1
  407. package/build/components/inserter/quick-inserter.js +7 -6
  408. package/build/components/inserter/quick-inserter.js.map +1 -1
  409. package/build/components/inserter/reusable-block-rename-hint.js +5 -4
  410. package/build/components/inserter/reusable-block-rename-hint.js.map +1 -1
  411. package/build/components/inserter/reusable-blocks-tab.native.js +3 -2
  412. package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  413. package/build/components/inserter/search-results.js +11 -10
  414. package/build/components/inserter/search-results.js.map +1 -1
  415. package/build/components/inserter/search-results.native.js +4 -3
  416. package/build/components/inserter/search-results.native.js.map +1 -1
  417. package/build/components/inserter/tabs.js +2 -1
  418. package/build/components/inserter/tabs.js.map +1 -1
  419. package/build/components/inserter/tabs.native.js +7 -6
  420. package/build/components/inserter/tabs.native.js.map +1 -1
  421. package/build/components/inserter/tips.js +6 -5
  422. package/build/components/inserter/tips.js.map +1 -1
  423. package/build/components/inserter-draggable-blocks/index.js +3 -3
  424. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  425. package/build/components/inserter-list-item/index.js +9 -8
  426. package/build/components/inserter-list-item/index.js.map +1 -1
  427. package/build/components/inserter-listbox/group.js +2 -1
  428. package/build/components/inserter-listbox/group.js.map +1 -1
  429. package/build/components/inserter-listbox/index.js +2 -2
  430. package/build/components/inserter-listbox/index.js.map +1 -1
  431. package/build/components/inserter-listbox/item.js +5 -4
  432. package/build/components/inserter-listbox/item.js.map +1 -1
  433. package/build/components/inserter-listbox/row.js +2 -1
  434. package/build/components/inserter-listbox/row.js.map +1 -1
  435. package/build/components/inspector-controls/block-support-slot-container.js +3 -2
  436. package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
  437. package/build/components/inspector-controls/block-support-tools-panel.js +3 -2
  438. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  439. package/build/components/inspector-controls/fill.js +7 -6
  440. package/build/components/inspector-controls/fill.js.map +1 -1
  441. package/build/components/inspector-controls/fill.native.js +4 -3
  442. package/build/components/inspector-controls/fill.native.js.map +1 -1
  443. package/build/components/inspector-controls/index.js +3 -3
  444. package/build/components/inspector-controls/index.js.map +1 -1
  445. package/build/components/inspector-controls/slot.js +5 -4
  446. package/build/components/inspector-controls/slot.js.map +1 -1
  447. package/build/components/inspector-controls/slot.native.js +2 -2
  448. package/build/components/inspector-controls/slot.native.js.map +1 -1
  449. package/build/components/inspector-controls-tabs/advanced-controls-panel.js +3 -3
  450. package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
  451. package/build/components/inspector-controls-tabs/index.js +5 -5
  452. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  453. package/build/components/inspector-controls-tabs/position-controls-panel.js +5 -4
  454. package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  455. package/build/components/inspector-controls-tabs/settings-tab-hint.js +5 -4
  456. package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +1 -1
  457. package/build/components/inspector-controls-tabs/settings-tab.js +2 -2
  458. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  459. package/build/components/inspector-controls-tabs/styles-tab.js +11 -11
  460. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  461. package/build/components/inspector-popover-header/index.js +8 -8
  462. package/build/components/inspector-popover-header/index.js.map +1 -1
  463. package/build/components/justify-content-control/index.js +3 -3
  464. package/build/components/justify-content-control/index.js.map +1 -1
  465. package/build/components/justify-content-control/ui.js +2 -2
  466. package/build/components/justify-content-control/ui.js.map +1 -1
  467. package/build/components/letter-spacing-control/index.js +3 -3
  468. package/build/components/letter-spacing-control/index.js.map +1 -1
  469. package/build/components/line-height-control/index.js +3 -3
  470. package/build/components/line-height-control/index.js.map +1 -1
  471. package/build/components/line-height-control/index.native.js +2 -2
  472. package/build/components/line-height-control/index.native.js.map +1 -1
  473. package/build/components/link-control/index.js +18 -17
  474. package/build/components/link-control/index.js.map +1 -1
  475. package/build/components/link-control/link-preview.js +20 -20
  476. package/build/components/link-control/link-preview.js.map +1 -1
  477. package/build/components/link-control/search-create-button.js +4 -3
  478. package/build/components/link-control/search-create-button.js.map +1 -1
  479. package/build/components/link-control/search-input.js +5 -4
  480. package/build/components/link-control/search-input.js.map +1 -1
  481. package/build/components/link-control/search-item.js +5 -5
  482. package/build/components/link-control/search-item.js.map +1 -1
  483. package/build/components/link-control/search-results.js +7 -7
  484. package/build/components/link-control/search-results.js.map +1 -1
  485. package/build/components/link-control/settings-drawer.js +5 -4
  486. package/build/components/link-control/settings-drawer.js.map +1 -1
  487. package/build/components/link-control/settings.js +4 -4
  488. package/build/components/link-control/settings.js.map +1 -1
  489. package/build/components/list-view/appender.js +5 -4
  490. package/build/components/list-view/appender.js.map +1 -1
  491. package/build/components/list-view/aria-referenced-text.js +2 -1
  492. package/build/components/list-view/aria-referenced-text.js.map +1 -1
  493. package/build/components/list-view/block-contents.js +5 -4
  494. package/build/components/list-view/block-contents.js.map +1 -1
  495. package/build/components/list-view/block-select-button.js +16 -15
  496. package/build/components/list-view/block-select-button.js.map +1 -1
  497. package/build/components/list-view/block.js +14 -13
  498. package/build/components/list-view/block.js.map +1 -1
  499. package/build/components/list-view/branch.js +9 -8
  500. package/build/components/list-view/branch.js.map +1 -1
  501. package/build/components/list-view/drop-indicator.js +4 -3
  502. package/build/components/list-view/drop-indicator.js.map +1 -1
  503. package/build/components/list-view/expander.js +3 -3
  504. package/build/components/list-view/expander.js.map +1 -1
  505. package/build/components/list-view/index.js +8 -7
  506. package/build/components/list-view/index.js.map +1 -1
  507. package/build/components/list-view/leaf.js +3 -2
  508. package/build/components/list-view/leaf.js.map +1 -1
  509. package/build/components/media-placeholder/index.js +22 -21
  510. package/build/components/media-placeholder/index.js.map +1 -1
  511. package/build/components/media-placeholder/index.native.js +13 -12
  512. package/build/components/media-placeholder/index.native.js.map +1 -1
  513. package/build/components/media-replace-flow/index.js +14 -13
  514. package/build/components/media-replace-flow/index.js.map +1 -1
  515. package/build/components/media-replace-flow/index.native.js +2 -2
  516. package/build/components/media-replace-flow/index.native.js.map +1 -1
  517. package/build/components/media-upload/{constants.js → constants.native.js} +2 -4
  518. package/build/components/media-upload/constants.native.js.map +1 -0
  519. package/build/components/media-upload/index.js +1 -1
  520. package/build/components/media-upload/index.js.map +1 -1
  521. package/build/components/media-upload/index.native.js +12 -11
  522. package/build/components/media-upload/index.native.js.map +1 -1
  523. package/build/components/media-upload-progress/index.native.js +5 -4
  524. package/build/components/media-upload-progress/index.native.js.map +1 -1
  525. package/build/components/multi-selection-inspector/index.js +6 -6
  526. package/build/components/multi-selection-inspector/index.js.map +1 -1
  527. package/build/components/navigable-toolbar/index.js +4 -3
  528. package/build/components/navigable-toolbar/index.js.map +1 -1
  529. package/build/components/observe-typing/index.js +2 -2
  530. package/build/components/observe-typing/index.js.map +1 -1
  531. package/build/components/panel-color-settings/index.js +2 -2
  532. package/build/components/panel-color-settings/index.js.map +1 -1
  533. package/build/components/plain-text/index.js +4 -3
  534. package/build/components/plain-text/index.js.map +1 -1
  535. package/build/components/plain-text/index.native.js +4 -3
  536. package/build/components/plain-text/index.native.js.map +1 -1
  537. package/build/components/preview-options/index.js +5 -5
  538. package/build/components/preview-options/index.js.map +1 -1
  539. package/build/components/provider/block-refs-provider.js +2 -1
  540. package/build/components/provider/block-refs-provider.js.map +1 -1
  541. package/build/components/provider/index.js +4 -3
  542. package/build/components/provider/index.js.map +1 -1
  543. package/build/components/provider/index.native.js +3 -2
  544. package/build/components/provider/index.native.js.map +1 -1
  545. package/build/components/provider/use-block-sync.js +1 -1
  546. package/build/components/provider/use-block-sync.js.map +1 -1
  547. package/build/components/provider/with-registry-provider.js +4 -3
  548. package/build/components/provider/with-registry-provider.js.map +1 -1
  549. package/build/components/publish-date-time-picker/index.js +5 -4
  550. package/build/components/publish-date-time-picker/index.js.map +1 -1
  551. package/build/components/recursion-provider/index.js +2 -1
  552. package/build/components/recursion-provider/index.js.map +1 -1
  553. package/build/components/resizable-box-popover/index.js +3 -3
  554. package/build/components/resizable-box-popover/index.js.map +1 -1
  555. package/build/components/resolution-tool/index.js +3 -3
  556. package/build/components/resolution-tool/index.js.map +1 -1
  557. package/build/components/responsive-block-control/index.js +10 -9
  558. package/build/components/responsive-block-control/index.js.map +1 -1
  559. package/build/components/responsive-block-control/label.js +3 -3
  560. package/build/components/responsive-block-control/label.js.map +1 -1
  561. package/build/components/rich-text/content.js +3 -2
  562. package/build/components/rich-text/content.js.map +1 -1
  563. package/build/components/rich-text/embed-handler-picker.native.js +2 -1
  564. package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
  565. package/build/components/rich-text/format-edit.js +4 -3
  566. package/build/components/rich-text/format-edit.js.map +1 -1
  567. package/build/components/rich-text/format-toolbar/index.js +4 -4
  568. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  569. package/build/components/rich-text/format-toolbar/index.native.js +3 -3
  570. package/build/components/rich-text/format-toolbar/index.native.js.map +1 -1
  571. package/build/components/rich-text/format-toolbar-container.js +9 -9
  572. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  573. package/build/components/rich-text/format-toolbar-container.native.js +3 -3
  574. package/build/components/rich-text/format-toolbar-container.native.js.map +1 -1
  575. package/build/components/rich-text/get-rich-text-values.js +2 -1
  576. package/build/components/rich-text/get-rich-text-values.js.map +1 -1
  577. package/build/components/rich-text/index.js +9 -8
  578. package/build/components/rich-text/index.js.map +1 -1
  579. package/build/components/rich-text/index.native.js +8 -15
  580. package/build/components/rich-text/index.native.js.map +1 -1
  581. package/build/components/rich-text/multiline.js +3 -2
  582. package/build/components/rich-text/multiline.js.map +1 -1
  583. package/build/components/rich-text/toolbar-button.js +3 -3
  584. package/build/components/rich-text/toolbar-button.js.map +1 -1
  585. package/build/components/rich-text/use-paste-handler.js +5 -87
  586. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  587. package/build/components/rich-text/utils.js +2 -5
  588. package/build/components/rich-text/utils.js.map +1 -1
  589. package/build/components/skip-to-selected-block/index.js +2 -2
  590. package/build/components/skip-to-selected-block/index.js.map +1 -1
  591. package/build/components/spacing-sizes-control/index.js +9 -8
  592. package/build/components/spacing-sizes-control/index.js.map +1 -1
  593. package/build/components/spacing-sizes-control/input-controls/axial.js +3 -3
  594. package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  595. package/build/components/spacing-sizes-control/input-controls/separated.js +3 -3
  596. package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  597. package/build/components/spacing-sizes-control/input-controls/single.js +2 -2
  598. package/build/components/spacing-sizes-control/input-controls/single.js.map +1 -1
  599. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -8
  600. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  601. package/build/components/spacing-sizes-control/sides-dropdown/index.js +6 -6
  602. package/build/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
  603. package/build/components/text-decoration-control/index.js +6 -6
  604. package/build/components/text-decoration-control/index.js.map +1 -1
  605. package/build/components/text-transform-control/index.js +6 -6
  606. package/build/components/text-transform-control/index.js.map +1 -1
  607. package/build/components/tool-selector/index.js +11 -10
  608. package/build/components/tool-selector/index.js.map +1 -1
  609. package/build/components/typewriter/index.js +3 -3
  610. package/build/components/typewriter/index.js.map +1 -1
  611. package/build/components/ungroup-button/index.native.js +2 -2
  612. package/build/components/ungroup-button/index.native.js.map +1 -1
  613. package/build/components/unit-control/index.js +2 -2
  614. package/build/components/unit-control/index.js.map +1 -1
  615. package/build/components/unsupported-block-details/index.native.js +127 -0
  616. package/build/components/unsupported-block-details/index.native.js.map +1 -0
  617. package/build/components/url-input/button.js +9 -8
  618. package/build/components/url-input/button.js.map +1 -1
  619. package/build/components/url-input/index.js +9 -8
  620. package/build/components/url-input/index.js.map +1 -1
  621. package/build/components/url-input/index.native.js +2 -2
  622. package/build/components/url-input/index.native.js.map +1 -1
  623. package/build/components/url-popover/image-url-input-ui.js +19 -18
  624. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  625. package/build/components/url-popover/index.js +8 -7
  626. package/build/components/url-popover/index.js.map +1 -1
  627. package/build/components/url-popover/link-editor.js +4 -4
  628. package/build/components/url-popover/link-editor.js.map +1 -1
  629. package/build/components/url-popover/link-viewer-url.js +3 -3
  630. package/build/components/url-popover/link-viewer-url.js.map +1 -1
  631. package/build/components/url-popover/link-viewer.js +4 -4
  632. package/build/components/url-popover/link-viewer.js.map +1 -1
  633. package/build/components/use-on-block-drop/index.js +2 -2
  634. package/build/components/use-on-block-drop/index.js.map +1 -1
  635. package/build/components/use-unsupported-block-editor/index.native.js +57 -0
  636. package/build/components/use-unsupported-block-editor/index.native.js.map +1 -0
  637. package/build/components/video-player/gridicon-play.native.js +3 -3
  638. package/build/components/video-player/gridicon-play.native.js.map +1 -1
  639. package/build/components/video-player/index.native.js +6 -5
  640. package/build/components/video-player/index.native.js.map +1 -1
  641. package/build/components/warning/index.js +10 -9
  642. package/build/components/warning/index.js.map +1 -1
  643. package/build/components/warning/index.native.js +6 -6
  644. package/build/components/warning/index.native.js.map +1 -1
  645. package/build/components/writing-flow/index.js +7 -5
  646. package/build/components/writing-flow/index.js.map +1 -1
  647. package/build/components/writing-flow/use-clipboard-handler.js +179 -0
  648. package/build/components/writing-flow/use-clipboard-handler.js.map +1 -0
  649. package/build/components/writing-flow/use-tab-nav.js +4 -3
  650. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  651. package/build/components/writing-mode-control/index.js +6 -6
  652. package/build/components/writing-mode-control/index.js.map +1 -1
  653. package/build/hooks/align.js +6 -6
  654. package/build/hooks/align.js.map +1 -1
  655. package/build/hooks/anchor.js +10 -9
  656. package/build/hooks/anchor.js.map +1 -1
  657. package/build/hooks/background.js +17 -16
  658. package/build/hooks/background.js.map +1 -1
  659. package/build/hooks/block-hooks.js +11 -10
  660. package/build/hooks/block-hooks.js.map +1 -1
  661. package/build/hooks/block-rename-ui.js +17 -16
  662. package/build/hooks/block-rename-ui.js.map +1 -1
  663. package/build/hooks/border.js +6 -5
  664. package/build/hooks/border.js.map +1 -1
  665. package/build/hooks/color.js +7 -6
  666. package/build/hooks/color.js.map +1 -1
  667. package/build/hooks/content-lock-ui.js +9 -8
  668. package/build/hooks/content-lock-ui.js.map +1 -1
  669. package/build/hooks/contrast-checker.js +2 -1
  670. package/build/hooks/contrast-checker.js.map +1 -1
  671. package/build/hooks/custom-class-name.js +7 -7
  672. package/build/hooks/custom-class-name.js.map +1 -1
  673. package/build/hooks/custom-fields.js +8 -8
  674. package/build/hooks/custom-fields.js.map +1 -1
  675. package/build/hooks/dimensions.js +5 -4
  676. package/build/hooks/dimensions.js.map +1 -1
  677. package/build/hooks/duotone.js +10 -9
  678. package/build/hooks/duotone.js.map +1 -1
  679. package/build/hooks/font-size.js +5 -5
  680. package/build/hooks/font-size.js.map +1 -1
  681. package/build/hooks/layout.js +14 -13
  682. package/build/hooks/layout.js.map +1 -1
  683. package/build/hooks/line-height.js +3 -3
  684. package/build/hooks/line-height.js.map +1 -1
  685. package/build/hooks/margin.js +3 -2
  686. package/build/hooks/margin.js.map +1 -1
  687. package/build/hooks/padding.js +3 -2
  688. package/build/hooks/padding.js.map +1 -1
  689. package/build/hooks/position.js +10 -9
  690. package/build/hooks/position.js.map +1 -1
  691. package/build/hooks/style.js +11 -10
  692. package/build/hooks/style.js.map +1 -1
  693. package/build/hooks/typography.js +4 -3
  694. package/build/hooks/typography.js.map +1 -1
  695. package/build/hooks/typography.native.js +4 -4
  696. package/build/hooks/typography.native.js.map +1 -1
  697. package/build/hooks/utils.js +1 -1
  698. package/build/hooks/utils.js.map +1 -1
  699. package/build/layouts/constrained.js +11 -11
  700. package/build/layouts/constrained.js.map +1 -1
  701. package/build/layouts/flex.js +18 -18
  702. package/build/layouts/flex.js.map +1 -1
  703. package/build/layouts/grid.js +10 -10
  704. package/build/layouts/grid.js.map +1 -1
  705. package/build/lock-unlock.js +1 -1
  706. package/build/lock-unlock.js.map +1 -1
  707. package/build/private-apis.js +2 -0
  708. package/build/private-apis.js.map +1 -1
  709. package/build/store/selectors.js +1 -1
  710. package/build/store/selectors.js.map +1 -1
  711. package/build/utils/pasting.js +46 -0
  712. package/build/utils/pasting.js.map +1 -1
  713. package/build/utils/use-notify-copy.js +53 -0
  714. package/build/utils/use-notify-copy.js.map +1 -0
  715. package/build-module/autocompleters/block.js +1 -1
  716. package/build-module/autocompleters/link.js +1 -1
  717. package/build-module/components/alignment-control/index.js +1 -1
  718. package/build-module/components/alignment-control/ui.js +1 -1
  719. package/build-module/components/autocomplete/index.js +1 -1
  720. package/build-module/components/block-actions/index.js +1 -1
  721. package/build-module/components/block-actions/index.js.map +1 -1
  722. package/build-module/components/block-alignment-control/index.js +1 -1
  723. package/build-module/components/block-alignment-control/ui.js +1 -1
  724. package/build-module/components/block-alignment-control/ui.native.js +1 -1
  725. package/build-module/components/block-alignment-matrix-control/index.js +1 -1
  726. package/build-module/components/block-breadcrumb/index.js +2 -2
  727. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  728. package/build-module/components/block-canvas/index.js +7 -9
  729. package/build-module/components/block-canvas/index.js.map +1 -1
  730. package/build-module/components/block-caption/index.native.js +1 -1
  731. package/build-module/components/block-card/index.js +1 -1
  732. package/build-module/components/block-compare/block-view.js +1 -1
  733. package/build-module/components/block-compare/index.js +1 -1
  734. package/build-module/components/block-context/index.js +1 -1
  735. package/build-module/components/block-controls/fill.js +1 -1
  736. package/build-module/components/block-controls/index.js +1 -1
  737. package/build-module/components/block-controls/slot.js +1 -1
  738. package/build-module/components/block-controls/slot.native.js +1 -1
  739. package/build-module/components/block-draggable/draggable-chip.js +1 -1
  740. package/build-module/components/block-draggable/draggable-chip.native.js +1 -1
  741. package/build-module/components/block-draggable/dropping-insertion-point.native.js +1 -1
  742. package/build-module/components/block-draggable/index.js +1 -1
  743. package/build-module/components/block-draggable/index.native.js +1 -1
  744. package/build-module/components/block-edit/edit.js +1 -1
  745. package/build-module/components/block-edit/edit.native.js +1 -1
  746. package/build-module/components/block-edit/index.js +1 -1
  747. package/build-module/components/block-edit-visually-button/index.js +1 -1
  748. package/build-module/components/block-full-height-alignment-control/index.js +1 -1
  749. package/build-module/components/block-heading-level-dropdown/heading-level-icon.js +3 -3
  750. package/build-module/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -1
  751. package/build-module/components/block-heading-level-dropdown/index.js +3 -3
  752. package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
  753. package/build-module/components/block-heading-level-dropdown/index.native.js +3 -3
  754. package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -1
  755. package/build-module/components/block-icon/index.js +1 -1
  756. package/build-module/components/block-icon/index.native.js +1 -1
  757. package/build-module/components/block-info-slot-fill/index.js +1 -1
  758. package/build-module/components/block-inspector/index.js +1 -1
  759. package/build-module/components/block-list/block-crash-warning.js +1 -1
  760. package/build-module/components/block-list/block-html.js +1 -1
  761. package/build-module/components/block-list/block-invalid-warning.js +1 -1
  762. package/build-module/components/block-list/block-invalid-warning.native.js +1 -1
  763. package/build-module/components/block-list/block-list-item-cell.native.js +1 -1
  764. package/build-module/components/block-list/block-list-item.native.js +3 -3
  765. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  766. package/build-module/components/block-list/block-outline.native.js +1 -1
  767. package/build-module/components/block-list/block-selection-button.native.js +1 -1
  768. package/build-module/components/block-list/block.js +1 -1
  769. package/build-module/components/block-list/block.native.js +1 -1
  770. package/build-module/components/block-list/grid-item.native.js +1 -1
  771. package/build-module/components/block-list/index.js +1 -1
  772. package/build-module/components/block-list/index.native.js +1 -1
  773. package/build-module/components/block-list/insertion-point.native.js +1 -1
  774. package/build-module/components/block-list/layout.js +1 -1
  775. package/build-module/components/block-list/subdirectory-icon.js +1 -1
  776. package/build-module/components/block-list-appender/index.js +1 -1
  777. package/build-module/components/block-list-appender/index.native.js +1 -1
  778. package/build-module/components/block-lock/menu-item.js +1 -1
  779. package/build-module/components/block-lock/modal.js +1 -1
  780. package/build-module/components/block-lock/toolbar.js +1 -1
  781. package/build-module/components/block-media-update-progress/index.native.js +1 -1
  782. package/build-module/components/block-mover/button.js +1 -1
  783. package/build-module/components/block-mover/index.js +1 -1
  784. package/build-module/components/block-mover/index.native.js +1 -1
  785. package/build-module/components/block-navigation/dropdown.js +1 -1
  786. package/build-module/components/block-parent-selector/index.js +2 -2
  787. package/build-module/components/block-parent-selector/index.js.map +1 -1
  788. package/build-module/components/block-pattern-setup/index.js +1 -1
  789. package/build-module/components/block-pattern-setup/setup-toolbar.js +1 -1
  790. package/build-module/components/block-patterns-list/index.js +1 -1
  791. package/build-module/components/block-patterns-paging/index.js +1 -1
  792. package/build-module/components/block-popover/drop-zone.js +1 -1
  793. package/build-module/components/block-popover/inbetween.js +1 -1
  794. package/build-module/components/block-popover/index.js +1 -1
  795. package/build-module/components/block-preview/auto.js +1 -1
  796. package/build-module/components/block-preview/index.js +2 -2
  797. package/build-module/components/block-preview/index.js.map +1 -1
  798. package/build-module/components/block-quick-navigation/index.js +1 -1
  799. package/build-module/components/block-removal-warning-modal/index.js +1 -1
  800. package/build-module/components/block-selection-clearer/index.js +1 -1
  801. package/build-module/components/block-settings/button.native.js +1 -1
  802. package/build-module/components/block-settings/container.native.js +1 -1
  803. package/build-module/components/block-settings-menu/block-html-convert-button.js +20 -17
  804. package/build-module/components/block-settings-menu/block-html-convert-button.js.map +1 -1
  805. package/build-module/components/block-settings-menu/block-mode-toggle.js +1 -1
  806. package/build-module/components/block-settings-menu/block-settings-dropdown.js +1 -1
  807. package/build-module/components/block-settings-menu/index.js +1 -1
  808. package/build-module/components/block-settings-menu-controls/index.js +2 -2
  809. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  810. package/build-module/components/block-styles/index.js +3 -2
  811. package/build-module/components/block-styles/index.js.map +1 -1
  812. package/build-module/components/block-styles/index.native.js +1 -1
  813. package/build-module/components/block-styles/menu-items.js +1 -1
  814. package/build-module/components/block-styles/preview-panel.js +1 -1
  815. package/build-module/components/block-styles/preview.native.js +1 -1
  816. package/build-module/components/block-switcher/block-styles-menu.js +1 -1
  817. package/build-module/components/block-switcher/block-transformations-menu.js +1 -1
  818. package/build-module/components/block-switcher/block-transformations-menu.native.js +1 -1
  819. package/build-module/components/block-switcher/block-variation-transformations.js +1 -1
  820. package/build-module/components/block-switcher/index.js +6 -6
  821. package/build-module/components/block-switcher/index.js.map +1 -1
  822. package/build-module/components/block-switcher/pattern-transformations-menu.js +5 -3
  823. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  824. package/build-module/components/block-switcher/preview-block-popover.js +1 -1
  825. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +1 -1
  826. package/build-module/components/block-toolbar/index.js +1 -1
  827. package/build-module/components/block-toolbar/index.native.js +1 -1
  828. package/build-module/components/block-tools/back-compat.js +1 -1
  829. package/build-module/components/block-tools/block-contextual-toolbar.js +1 -1
  830. package/build-module/components/block-tools/block-selection-button.js +2 -2
  831. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  832. package/build-module/components/block-tools/index.js +1 -1
  833. package/build-module/components/block-tools/insertion-point.js +1 -1
  834. package/build-module/components/block-tools/selected-block-popover.js +1 -1
  835. package/build-module/components/block-tools/zoom-out-mode-inserters.js +1 -1
  836. package/build-module/components/block-types-list/index.js +1 -1
  837. package/build-module/components/block-types-list/index.native.js +1 -1
  838. package/build-module/components/block-variation-picker/index.js +1 -1
  839. package/build-module/components/block-variation-picker/index.native.js +1 -1
  840. package/build-module/components/block-variation-transforms/index.js +1 -1
  841. package/build-module/components/block-vertical-alignment-control/icons.js +1 -1
  842. package/build-module/components/block-vertical-alignment-control/index.js +1 -1
  843. package/build-module/components/block-vertical-alignment-control/ui.js +1 -1
  844. package/build-module/components/border-radius-control/all-input-control.js +1 -1
  845. package/build-module/components/border-radius-control/index.js +2 -2
  846. package/build-module/components/border-radius-control/index.js.map +1 -1
  847. package/build-module/components/border-radius-control/input-controls.js +1 -1
  848. package/build-module/components/border-radius-control/linked-button.js +1 -1
  849. package/build-module/components/button-block-appender/index.js +1 -1
  850. package/build-module/components/button-block-appender/index.native.js +1 -1
  851. package/build-module/components/caption/index.native.js +1 -1
  852. package/build-module/components/child-layout-control/index.js +2 -2
  853. package/build-module/components/child-layout-control/index.js.map +1 -1
  854. package/build-module/components/color-palette/control.js +1 -1
  855. package/build-module/components/color-palette/with-color-context.js +1 -1
  856. package/build-module/components/color-style-selector/index.js +1 -1
  857. package/build-module/components/colors/with-colors.js +2 -2
  858. package/build-module/components/colors/with-colors.js.map +1 -1
  859. package/build-module/components/colors-gradients/control.js +1 -1
  860. package/build-module/components/colors-gradients/dropdown.js +1 -1
  861. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +1 -1
  862. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js +1 -1
  863. package/build-module/components/contrast-checker/index.js +1 -1
  864. package/build-module/components/contrast-checker/index.native.js +1 -1
  865. package/build-module/components/convert-to-group-buttons/index.js +1 -1
  866. package/build-module/components/convert-to-group-buttons/toolbar.js +1 -1
  867. package/build-module/components/copy-handler/index.js +25 -205
  868. package/build-module/components/copy-handler/index.js.map +1 -1
  869. package/build-module/components/date-format-picker/index.js +1 -1
  870. package/build-module/components/default-block-appender/index.js +1 -1
  871. package/build-module/components/default-block-appender/index.native.js +1 -1
  872. package/build-module/components/default-style-picker/index.js +1 -1
  873. package/build-module/components/dimensions-tool/aspect-ratio-tool.js +1 -1
  874. package/build-module/components/dimensions-tool/index.js +2 -2
  875. package/build-module/components/dimensions-tool/index.js.map +1 -1
  876. package/build-module/components/dimensions-tool/scale-tool.js +2 -2
  877. package/build-module/components/dimensions-tool/scale-tool.js.map +1 -1
  878. package/build-module/components/dimensions-tool/width-height-tool.js +3 -3
  879. package/build-module/components/dimensions-tool/width-height-tool.js.map +1 -1
  880. package/build-module/components/duotone-control/index.js +10 -2
  881. package/build-module/components/duotone-control/index.js.map +1 -1
  882. package/build-module/components/editable-text/index.js +1 -1
  883. package/build-module/components/editor-styles/index.js +1 -1
  884. package/build-module/components/floating-toolbar/index.native.js +1 -1
  885. package/build-module/components/floating-toolbar/nav-up-icon.js +1 -1
  886. package/build-module/components/font-appearance-control/index.js +2 -2
  887. package/build-module/components/font-appearance-control/index.js.map +1 -1
  888. package/build-module/components/font-family/index.js +1 -1
  889. package/build-module/components/font-sizes/font-size-picker.js +1 -1
  890. package/build-module/components/font-sizes/with-font-sizes.js +1 -1
  891. package/build-module/components/global-styles/advanced-panel.js +1 -1
  892. package/build-module/components/global-styles/border-panel.js +1 -1
  893. package/build-module/components/global-styles/color-panel.js +1 -1
  894. package/build-module/components/global-styles/color-panel.native.js +1 -1
  895. package/build-module/components/global-styles/dimensions-panel.js +1 -1
  896. package/build-module/components/global-styles/effects-panel.js +1 -1
  897. package/build-module/components/global-styles/filters-panel.js +1 -1
  898. package/build-module/components/global-styles/image-settings-panel.js +1 -1
  899. package/build-module/components/global-styles/typography-panel.js +1 -1
  900. package/build-module/components/gradients/with-gradient.js +1 -1
  901. package/build-module/components/height-control/index.js +2 -2
  902. package/build-module/components/height-control/index.js.map +1 -1
  903. package/build-module/components/iframe/index.js +2 -10
  904. package/build-module/components/iframe/index.js.map +1 -1
  905. package/build-module/components/image-editor/aspect-ratio-dropdown.js +1 -1
  906. package/build-module/components/image-editor/context.js +1 -1
  907. package/build-module/components/image-editor/cropper.js +1 -1
  908. package/build-module/components/image-editor/form-controls.js +1 -1
  909. package/build-module/components/image-editor/index.js +1 -1
  910. package/build-module/components/image-editor/rotation-button.js +1 -1
  911. package/build-module/components/image-editor/zoom-dropdown.js +1 -1
  912. package/build-module/components/image-size-control/index.js +1 -1
  913. package/build-module/components/index.js +1 -1
  914. package/build-module/components/index.js.map +1 -1
  915. package/build-module/components/inner-blocks/button-block-appender.js +1 -1
  916. package/build-module/components/inner-blocks/constants.native.js +6 -0
  917. package/build-module/components/inner-blocks/constants.native.js.map +1 -0
  918. package/build-module/components/inner-blocks/default-block-appender.js +1 -1
  919. package/build-module/components/inner-blocks/index.js +1 -1
  920. package/build-module/components/inner-blocks/index.native.js +13 -1
  921. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  922. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js +86 -0
  923. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -0
  924. package/build-module/components/inner-blocks/with-client-id.js +1 -1
  925. package/build-module/components/inserter/block-patterns-explorer/explorer.js +1 -1
  926. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +1 -1
  927. package/build-module/components/inserter/block-patterns-explorer/sidebar.js +1 -1
  928. package/build-module/components/inserter/block-patterns-filter.js +1 -1
  929. package/build-module/components/inserter/block-patterns-tab.js +1 -1
  930. package/build-module/components/inserter/block-types-tab.js +1 -1
  931. package/build-module/components/inserter/block-types-tab.native.js +1 -1
  932. package/build-module/components/inserter/index.js +3 -3
  933. package/build-module/components/inserter/index.js.map +1 -1
  934. package/build-module/components/inserter/index.native.js +3 -3
  935. package/build-module/components/inserter/index.native.js.map +1 -1
  936. package/build-module/components/inserter/library.js +1 -1
  937. package/build-module/components/inserter/media-tab/media-list.js +1 -1
  938. package/build-module/components/inserter/media-tab/media-panel.js +1 -1
  939. package/build-module/components/inserter/media-tab/media-preview.js +1 -1
  940. package/build-module/components/inserter/media-tab/media-tab.js +1 -1
  941. package/build-module/components/inserter/media-tab/utils.js +1 -1
  942. package/build-module/components/inserter/menu.js +1 -1
  943. package/build-module/components/inserter/menu.native.js +1 -1
  944. package/build-module/components/inserter/mobile-tab-navigation.js +1 -1
  945. package/build-module/components/inserter/no-results.js +1 -1
  946. package/build-module/components/inserter/no-results.native.js +1 -1
  947. package/build-module/components/inserter/panel.js +1 -1
  948. package/build-module/components/inserter/preview-panel.js +1 -1
  949. package/build-module/components/inserter/quick-inserter.js +1 -1
  950. package/build-module/components/inserter/reusable-block-rename-hint.js +1 -1
  951. package/build-module/components/inserter/reusable-blocks-tab.native.js +1 -1
  952. package/build-module/components/inserter/search-results.js +1 -1
  953. package/build-module/components/inserter/search-results.native.js +1 -1
  954. package/build-module/components/inserter/tabs.js +1 -1
  955. package/build-module/components/inserter/tabs.native.js +1 -1
  956. package/build-module/components/inserter/tips.js +1 -1
  957. package/build-module/components/inserter-draggable-blocks/index.js +1 -1
  958. package/build-module/components/inserter-list-item/index.js +1 -1
  959. package/build-module/components/inserter-listbox/group.js +1 -1
  960. package/build-module/components/inserter-listbox/index.js +1 -1
  961. package/build-module/components/inserter-listbox/item.js +1 -1
  962. package/build-module/components/inserter-listbox/row.js +1 -1
  963. package/build-module/components/inspector-controls/block-support-slot-container.js +1 -1
  964. package/build-module/components/inspector-controls/block-support-tools-panel.js +1 -1
  965. package/build-module/components/inspector-controls/fill.js +1 -1
  966. package/build-module/components/inspector-controls/fill.native.js +1 -1
  967. package/build-module/components/inspector-controls/index.js +1 -1
  968. package/build-module/components/inspector-controls/slot.js +1 -1
  969. package/build-module/components/inspector-controls/slot.native.js +1 -1
  970. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js +1 -1
  971. package/build-module/components/inspector-controls-tabs/index.js +1 -1
  972. package/build-module/components/inspector-controls-tabs/position-controls-panel.js +1 -1
  973. package/build-module/components/inspector-controls-tabs/settings-tab-hint.js +1 -1
  974. package/build-module/components/inspector-controls-tabs/settings-tab.js +1 -1
  975. package/build-module/components/inspector-controls-tabs/styles-tab.js +1 -1
  976. package/build-module/components/inspector-popover-header/index.js +1 -1
  977. package/build-module/components/justify-content-control/index.js +1 -1
  978. package/build-module/components/justify-content-control/ui.js +1 -1
  979. package/build-module/components/letter-spacing-control/index.js +2 -2
  980. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  981. package/build-module/components/line-height-control/index.js +1 -1
  982. package/build-module/components/line-height-control/index.native.js +1 -1
  983. package/build-module/components/link-control/index.js +1 -1
  984. package/build-module/components/link-control/link-preview.js +1 -1
  985. package/build-module/components/link-control/search-create-button.js +1 -1
  986. package/build-module/components/link-control/search-input.js +1 -1
  987. package/build-module/components/link-control/search-item.js +1 -1
  988. package/build-module/components/link-control/search-results.js +1 -1
  989. package/build-module/components/link-control/settings-drawer.js +1 -1
  990. package/build-module/components/link-control/settings.js +1 -1
  991. package/build-module/components/list-view/appender.js +1 -1
  992. package/build-module/components/list-view/aria-referenced-text.js +1 -1
  993. package/build-module/components/list-view/block-contents.js +1 -1
  994. package/build-module/components/list-view/block-select-button.js +1 -1
  995. package/build-module/components/list-view/block.js +1 -1
  996. package/build-module/components/list-view/branch.js +1 -1
  997. package/build-module/components/list-view/drop-indicator.js +1 -1
  998. package/build-module/components/list-view/expander.js +1 -1
  999. package/build-module/components/list-view/index.js +1 -1
  1000. package/build-module/components/list-view/leaf.js +1 -1
  1001. package/build-module/components/media-placeholder/index.js +1 -1
  1002. package/build-module/components/media-placeholder/index.native.js +1 -1
  1003. package/build-module/components/media-replace-flow/index.js +1 -1
  1004. package/build-module/components/media-replace-flow/index.native.js +1 -1
  1005. package/build-module/components/media-upload/{constants.js → constants.native.js} +1 -2
  1006. package/build-module/components/media-upload/constants.native.js.map +1 -0
  1007. package/build-module/components/media-upload/index.js +1 -1
  1008. package/build-module/components/media-upload/index.js.map +1 -1
  1009. package/build-module/components/media-upload/index.native.js +7 -7
  1010. package/build-module/components/media-upload/index.native.js.map +1 -1
  1011. package/build-module/components/media-upload-progress/index.native.js +1 -1
  1012. package/build-module/components/multi-selection-inspector/index.js +1 -1
  1013. package/build-module/components/navigable-toolbar/index.js +1 -1
  1014. package/build-module/components/observe-typing/index.js +1 -1
  1015. package/build-module/components/panel-color-settings/index.js +1 -1
  1016. package/build-module/components/plain-text/index.js +1 -1
  1017. package/build-module/components/plain-text/index.native.js +1 -1
  1018. package/build-module/components/preview-options/index.js +1 -1
  1019. package/build-module/components/provider/block-refs-provider.js +1 -1
  1020. package/build-module/components/provider/index.js +1 -1
  1021. package/build-module/components/provider/index.native.js +1 -1
  1022. package/build-module/components/provider/use-block-sync.js +1 -1
  1023. package/build-module/components/provider/use-block-sync.js.map +1 -1
  1024. package/build-module/components/provider/with-registry-provider.js +1 -1
  1025. package/build-module/components/publish-date-time-picker/index.js +1 -1
  1026. package/build-module/components/recursion-provider/index.js +1 -1
  1027. package/build-module/components/resizable-box-popover/index.js +1 -1
  1028. package/build-module/components/resolution-tool/index.js +1 -1
  1029. package/build-module/components/responsive-block-control/index.js +1 -1
  1030. package/build-module/components/responsive-block-control/label.js +1 -1
  1031. package/build-module/components/rich-text/content.js +1 -1
  1032. package/build-module/components/rich-text/embed-handler-picker.native.js +1 -1
  1033. package/build-module/components/rich-text/format-edit.js +1 -1
  1034. package/build-module/components/rich-text/format-toolbar/index.js +1 -1
  1035. package/build-module/components/rich-text/format-toolbar/index.native.js +1 -1
  1036. package/build-module/components/rich-text/format-toolbar-container.js +1 -1
  1037. package/build-module/components/rich-text/format-toolbar-container.native.js +1 -1
  1038. package/build-module/components/rich-text/get-rich-text-values.js +1 -1
  1039. package/build-module/components/rich-text/index.js +1 -1
  1040. package/build-module/components/rich-text/index.native.js +2 -10
  1041. package/build-module/components/rich-text/index.native.js.map +1 -1
  1042. package/build-module/components/rich-text/multiline.js +1 -1
  1043. package/build-module/components/rich-text/toolbar-button.js +1 -1
  1044. package/build-module/components/rich-text/use-paste-handler.js +7 -89
  1045. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  1046. package/build-module/components/rich-text/utils.js +1 -3
  1047. package/build-module/components/rich-text/utils.js.map +1 -1
  1048. package/build-module/components/skip-to-selected-block/index.js +1 -1
  1049. package/build-module/components/spacing-sizes-control/index.js +1 -1
  1050. package/build-module/components/spacing-sizes-control/input-controls/axial.js +1 -1
  1051. package/build-module/components/spacing-sizes-control/input-controls/separated.js +1 -1
  1052. package/build-module/components/spacing-sizes-control/input-controls/single.js +1 -1
  1053. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  1054. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js +1 -1
  1055. package/build-module/components/text-decoration-control/index.js +2 -2
  1056. package/build-module/components/text-decoration-control/index.js.map +1 -1
  1057. package/build-module/components/text-transform-control/index.js +2 -2
  1058. package/build-module/components/text-transform-control/index.js.map +1 -1
  1059. package/build-module/components/tool-selector/index.js +1 -1
  1060. package/build-module/components/typewriter/index.js +2 -2
  1061. package/build-module/components/typewriter/index.js.map +1 -1
  1062. package/build-module/components/ungroup-button/index.native.js +1 -1
  1063. package/build-module/components/unit-control/index.js +1 -1
  1064. package/build-module/components/unsupported-block-details/index.native.js +118 -0
  1065. package/build-module/components/unsupported-block-details/index.native.js.map +1 -0
  1066. package/build-module/components/url-input/button.js +1 -1
  1067. package/build-module/components/url-input/index.js +1 -1
  1068. package/build-module/components/url-input/index.native.js +1 -1
  1069. package/build-module/components/url-popover/image-url-input-ui.js +1 -1
  1070. package/build-module/components/url-popover/index.js +1 -1
  1071. package/build-module/components/url-popover/link-editor.js +1 -1
  1072. package/build-module/components/url-popover/link-viewer-url.js +1 -1
  1073. package/build-module/components/url-popover/link-viewer.js +1 -1
  1074. package/build-module/components/use-on-block-drop/index.js +2 -2
  1075. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  1076. package/build-module/components/use-unsupported-block-editor/index.native.js +51 -0
  1077. package/build-module/components/use-unsupported-block-editor/index.native.js.map +1 -0
  1078. package/build-module/components/video-player/gridicon-play.native.js +1 -1
  1079. package/build-module/components/video-player/index.native.js +1 -1
  1080. package/build-module/components/warning/index.js +1 -1
  1081. package/build-module/components/warning/index.native.js +1 -1
  1082. package/build-module/components/writing-flow/index.js +5 -4
  1083. package/build-module/components/writing-flow/index.js.map +1 -1
  1084. package/build-module/components/writing-flow/use-clipboard-handler.js +172 -0
  1085. package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -0
  1086. package/build-module/components/writing-flow/use-tab-nav.js +1 -1
  1087. package/build-module/components/writing-mode-control/index.js +2 -2
  1088. package/build-module/components/writing-mode-control/index.js.map +1 -1
  1089. package/build-module/hooks/align.js +1 -1
  1090. package/build-module/hooks/anchor.js +3 -3
  1091. package/build-module/hooks/anchor.js.map +1 -1
  1092. package/build-module/hooks/background.js +1 -1
  1093. package/build-module/hooks/block-hooks.js +1 -1
  1094. package/build-module/hooks/block-rename-ui.js +1 -1
  1095. package/build-module/hooks/border.js +1 -1
  1096. package/build-module/hooks/color.js +1 -1
  1097. package/build-module/hooks/content-lock-ui.js +1 -1
  1098. package/build-module/hooks/contrast-checker.js +1 -1
  1099. package/build-module/hooks/custom-class-name.js +3 -3
  1100. package/build-module/hooks/custom-class-name.js.map +1 -1
  1101. package/build-module/hooks/custom-fields.js +3 -3
  1102. package/build-module/hooks/custom-fields.js.map +1 -1
  1103. package/build-module/hooks/dimensions.js +1 -1
  1104. package/build-module/hooks/duotone.js +1 -1
  1105. package/build-module/hooks/font-size.js +2 -2
  1106. package/build-module/hooks/font-size.js.map +1 -1
  1107. package/build-module/hooks/layout.js +1 -1
  1108. package/build-module/hooks/line-height.js +2 -2
  1109. package/build-module/hooks/line-height.js.map +1 -1
  1110. package/build-module/hooks/margin.js +1 -1
  1111. package/build-module/hooks/padding.js +1 -1
  1112. package/build-module/hooks/position.js +3 -3
  1113. package/build-module/hooks/position.js.map +1 -1
  1114. package/build-module/hooks/style.js +1 -1
  1115. package/build-module/hooks/typography.js +1 -1
  1116. package/build-module/hooks/typography.native.js +1 -1
  1117. package/build-module/hooks/utils.js +1 -1
  1118. package/build-module/hooks/utils.js.map +1 -1
  1119. package/build-module/layouts/constrained.js +1 -1
  1120. package/build-module/layouts/flex.js +1 -1
  1121. package/build-module/layouts/grid.js +1 -1
  1122. package/build-module/lock-unlock.js +1 -1
  1123. package/build-module/lock-unlock.js.map +1 -1
  1124. package/build-module/private-apis.js +2 -0
  1125. package/build-module/private-apis.js.map +1 -1
  1126. package/build-module/store/selectors.js +1 -1
  1127. package/build-module/store/selectors.js.map +1 -1
  1128. package/build-module/utils/pasting.js +47 -0
  1129. package/build-module/utils/pasting.js.map +1 -1
  1130. package/build-module/utils/use-notify-copy.js +46 -0
  1131. package/build-module/utils/use-notify-copy.js.map +1 -0
  1132. package/build-style/content-rtl.css +10 -11
  1133. package/build-style/content.css +10 -11
  1134. package/build-style/default-editor-styles-rtl.css +1 -1
  1135. package/build-style/default-editor-styles.css +1 -1
  1136. package/build-style/style-rtl.css +10 -16
  1137. package/build-style/style.css +10 -16
  1138. package/package.json +31 -32
  1139. package/src/components/block-actions/index.js +1 -1
  1140. package/src/components/block-breadcrumb/index.js +1 -1
  1141. package/src/components/block-canvas/index.js +6 -12
  1142. package/src/components/block-context/README.md +1 -1
  1143. package/src/components/block-heading-level-dropdown/heading-level-icon.js +2 -2
  1144. package/src/components/block-heading-level-dropdown/index.js +2 -2
  1145. package/src/components/block-heading-level-dropdown/index.native.js +2 -2
  1146. package/src/components/block-list/block-list-item.native.js +2 -2
  1147. package/src/components/block-parent-selector/index.js +1 -1
  1148. package/src/components/block-preview/index.js +1 -1
  1149. package/src/components/block-settings-menu/block-html-convert-button.js +28 -19
  1150. package/src/components/block-settings-menu-controls/index.js +1 -1
  1151. package/src/components/block-styles/index.js +4 -1
  1152. package/src/components/block-switcher/index.js +17 -18
  1153. package/src/components/block-switcher/pattern-transformations-menu.js +4 -1
  1154. package/src/components/block-switcher/style.scss +0 -6
  1155. package/src/components/block-switcher/test/__snapshots__/index.js.snap +2 -2
  1156. package/src/components/block-tools/block-selection-button.js +1 -1
  1157. package/src/components/border-radius-control/index.js +1 -1
  1158. package/src/components/child-layout-control/index.js +1 -1
  1159. package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
  1160. package/src/components/colors/with-colors.js +1 -1
  1161. package/src/components/copy-handler/README.md +2 -0
  1162. package/src/components/copy-handler/index.js +21 -291
  1163. package/src/components/dimensions-tool/index.js +1 -1
  1164. package/src/components/dimensions-tool/scale-tool.js +1 -1
  1165. package/src/components/dimensions-tool/width-height-tool.js +1 -1
  1166. package/src/components/duotone-control/index.js +14 -2
  1167. package/src/components/editable-text/README.md +2 -2
  1168. package/src/components/font-appearance-control/index.js +1 -1
  1169. package/src/components/font-family/README.md +1 -1
  1170. package/src/components/height-control/README.md +1 -1
  1171. package/src/components/height-control/index.js +1 -1
  1172. package/src/components/iframe/index.js +1 -8
  1173. package/src/components/image-size-control/README.md +2 -2
  1174. package/src/components/index.js +1 -1
  1175. package/src/components/inner-blocks/constants.native.js +5 -0
  1176. package/src/components/inner-blocks/index.native.js +15 -0
  1177. package/src/components/inner-blocks/warning-max-depth-exceeded.native.js +100 -0
  1178. package/src/components/inserter/index.js +2 -2
  1179. package/src/components/inserter/index.native.js +2 -2
  1180. package/src/components/letter-spacing-control/index.js +1 -1
  1181. package/src/components/media-placeholder/README.md +3 -3
  1182. package/src/components/media-upload/{constants.js → constants.native.js} +0 -1
  1183. package/src/components/media-upload/index.js +1 -1
  1184. package/src/components/media-upload/index.native.js +9 -5
  1185. package/src/components/panel-color-settings/README.md +5 -1
  1186. package/src/components/plain-text/README.md +1 -1
  1187. package/src/components/provider/README.md +1 -1
  1188. package/src/components/provider/use-block-sync.js +1 -1
  1189. package/src/components/publish-date-time-picker/README.md +1 -1
  1190. package/src/components/responsive-block-control/README.md +1 -3
  1191. package/src/components/rich-text/README.md +3 -3
  1192. package/src/components/rich-text/index.native.js +0 -13
  1193. package/src/components/rich-text/use-paste-handler.js +5 -99
  1194. package/src/components/rich-text/utils.js +0 -3
  1195. package/src/components/text-decoration-control/index.js +1 -1
  1196. package/src/components/text-transform-control/index.js +1 -1
  1197. package/src/components/typewriter/index.js +1 -1
  1198. package/src/components/unit-control/README.md +1 -1
  1199. package/src/components/unsupported-block-details/index.native.js +183 -0
  1200. package/src/components/unsupported-block-details/style.native.scss +56 -0
  1201. package/src/components/url-input/README.md +4 -4
  1202. package/src/components/use-on-block-drop/index.js +2 -2
  1203. package/src/components/use-unsupported-block-editor/index.native.js +59 -0
  1204. package/src/components/writing-flow/index.js +4 -2
  1205. package/src/components/writing-flow/use-clipboard-handler.js +242 -0
  1206. package/src/components/writing-mode-control/index.js +1 -1
  1207. package/src/hooks/anchor.js +2 -2
  1208. package/src/hooks/custom-class-name.js +2 -2
  1209. package/src/hooks/custom-fields.js +2 -2
  1210. package/src/hooks/font-size.js +1 -1
  1211. package/src/hooks/line-height.js +1 -1
  1212. package/src/hooks/position.js +2 -2
  1213. package/src/hooks/utils.js +0 -2
  1214. package/src/lock-unlock.js +1 -1
  1215. package/src/private-apis.js +2 -0
  1216. package/src/store/selectors.js +1 -1
  1217. package/src/utils/pasting.js +51 -0
  1218. package/src/utils/use-notify-copy.js +63 -0
  1219. package/tsconfig.tsbuildinfo +1 -1
  1220. package/build/components/block-settings-menu/block-convert-button.js +0 -27
  1221. package/build/components/block-settings-menu/block-convert-button.js.map +0 -1
  1222. package/build/components/media-upload/constants.js.map +0 -1
  1223. package/build-module/components/block-settings-menu/block-convert-button.js +0 -20
  1224. package/build-module/components/block-settings-menu/block-convert-button.js.map +0 -1
  1225. package/build-module/components/media-upload/constants.js.map +0 -1
  1226. package/src/components/block-settings-menu/block-convert-button.js +0 -14
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useClipboardHandler;
7
+ var _blocks = require("@wordpress/blocks");
8
+ var _dom = require("@wordpress/dom");
9
+ var _data = require("@wordpress/data");
10
+ var _compose = require("@wordpress/compose");
11
+ var _pasting = require("../../utils/pasting");
12
+ var _store = require("../../store");
13
+ var _useNotifyCopy = require("../../utils/use-notify-copy");
14
+ /**
15
+ * WordPress dependencies
16
+ */
17
+
18
+ /**
19
+ * Internal dependencies
20
+ */
21
+
22
+ function useClipboardHandler() {
23
+ const {
24
+ getBlocksByClientId,
25
+ getSelectedBlockClientIds,
26
+ hasMultiSelection,
27
+ getSettings,
28
+ __unstableIsFullySelected,
29
+ __unstableIsSelectionCollapsed,
30
+ __unstableIsSelectionMergeable,
31
+ __unstableGetSelectedBlocksWithPartialSelection,
32
+ canInsertBlockType
33
+ } = (0, _data.useSelect)(_store.store);
34
+ const {
35
+ flashBlock,
36
+ removeBlocks,
37
+ replaceBlocks,
38
+ __unstableDeleteSelection,
39
+ __unstableExpandSelection,
40
+ insertBlocks
41
+ } = (0, _data.useDispatch)(_store.store);
42
+ const notifyCopy = (0, _useNotifyCopy.useNotifyCopy)();
43
+ return (0, _compose.useRefEffect)(node => {
44
+ function handler(event) {
45
+ if (event.defaultPrevented) {
46
+ // This was likely already handled in rich-text/use-paste-handler.js.
47
+ return;
48
+ }
49
+ const selectedBlockClientIds = getSelectedBlockClientIds();
50
+ if (selectedBlockClientIds.length === 0) {
51
+ return;
52
+ }
53
+
54
+ // Always handle multiple selected blocks.
55
+ if (!hasMultiSelection()) {
56
+ const {
57
+ target
58
+ } = event;
59
+ const {
60
+ ownerDocument
61
+ } = target;
62
+ // If copying, only consider actual text selection as selection.
63
+ // Otherwise, any focus on an input field is considered.
64
+ const hasSelection = event.type === 'copy' || event.type === 'cut' ? (0, _dom.documentHasUncollapsedSelection)(ownerDocument) : (0, _dom.documentHasSelection)(ownerDocument);
65
+
66
+ // Let native copy behaviour take over in input fields.
67
+ if (hasSelection) {
68
+ return;
69
+ }
70
+ }
71
+ if (!node.contains(event.target.ownerDocument.activeElement)) {
72
+ return;
73
+ }
74
+ event.preventDefault();
75
+ const isSelectionMergeable = __unstableIsSelectionMergeable();
76
+ const shouldHandleWholeBlocks = __unstableIsSelectionCollapsed() || __unstableIsFullySelected();
77
+ const expandSelectionIsNeeded = !shouldHandleWholeBlocks && !isSelectionMergeable;
78
+ if (event.type === 'copy' || event.type === 'cut') {
79
+ if (selectedBlockClientIds.length === 1) {
80
+ flashBlock(selectedBlockClientIds[0]);
81
+ }
82
+ // If we have a partial selection that is not mergeable, just
83
+ // expand the selection to the whole blocks.
84
+ if (expandSelectionIsNeeded) {
85
+ __unstableExpandSelection();
86
+ } else {
87
+ notifyCopy(event.type, selectedBlockClientIds);
88
+ let blocks;
89
+ // Check if we have partial selection.
90
+ if (shouldHandleWholeBlocks) {
91
+ blocks = getBlocksByClientId(selectedBlockClientIds);
92
+ } else {
93
+ const [head, tail] = __unstableGetSelectedBlocksWithPartialSelection();
94
+ const inBetweenBlocks = getBlocksByClientId(selectedBlockClientIds.slice(1, selectedBlockClientIds.length - 1));
95
+ blocks = [head, ...inBetweenBlocks, tail];
96
+ }
97
+ const wrapperBlockName = event.clipboardData.getData('__unstableWrapperBlockName');
98
+ if (wrapperBlockName) {
99
+ blocks = (0, _blocks.createBlock)(wrapperBlockName, JSON.parse(event.clipboardData.getData('__unstableWrapperBlockAttributes')), blocks);
100
+ }
101
+ const serialized = (0, _blocks.serialize)(blocks);
102
+ event.clipboardData.setData('text/plain', toPlainText(serialized));
103
+ event.clipboardData.setData('text/html', serialized);
104
+ }
105
+ }
106
+ if (event.type === 'cut') {
107
+ // We need to also check if at the start we needed to
108
+ // expand the selection, as in this point we might have
109
+ // programmatically fully selected the blocks above.
110
+ if (shouldHandleWholeBlocks && !expandSelectionIsNeeded) {
111
+ removeBlocks(selectedBlockClientIds);
112
+ } else {
113
+ event.target.ownerDocument.activeElement.contentEditable = false;
114
+ __unstableDeleteSelection();
115
+ }
116
+ } else if (event.type === 'paste') {
117
+ const {
118
+ __experimentalCanUserUseUnfilteredHTML: canUserUseUnfilteredHTML
119
+ } = getSettings();
120
+ const {
121
+ plainText,
122
+ html,
123
+ files
124
+ } = (0, _pasting.getPasteEventData)(event);
125
+ let blocks = [];
126
+ if (files.length) {
127
+ const fromTransforms = (0, _blocks.getBlockTransforms)('from');
128
+ blocks = files.reduce((accumulator, file) => {
129
+ const transformation = (0, _blocks.findTransform)(fromTransforms, transform => transform.type === 'files' && transform.isMatch([file]));
130
+ if (transformation) {
131
+ accumulator.push(transformation.transform([file]));
132
+ }
133
+ return accumulator;
134
+ }, []).flat();
135
+ } else {
136
+ blocks = (0, _blocks.pasteHandler)({
137
+ HTML: html,
138
+ plainText,
139
+ mode: 'BLOCKS',
140
+ canUserUseUnfilteredHTML
141
+ });
142
+ }
143
+ if (selectedBlockClientIds.length === 1) {
144
+ const [selectedBlockClientId] = selectedBlockClientIds;
145
+ if (blocks.every(block => canInsertBlockType(block.name, selectedBlockClientId))) {
146
+ insertBlocks(blocks, undefined, selectedBlockClientId);
147
+ return;
148
+ }
149
+ }
150
+ replaceBlocks(selectedBlockClientIds, blocks, blocks.length - 1, -1);
151
+ }
152
+ }
153
+ node.ownerDocument.addEventListener('copy', handler);
154
+ node.ownerDocument.addEventListener('cut', handler);
155
+ node.ownerDocument.addEventListener('paste', handler);
156
+ return () => {
157
+ node.ownerDocument.removeEventListener('copy', handler);
158
+ node.ownerDocument.removeEventListener('cut', handler);
159
+ node.ownerDocument.removeEventListener('paste', handler);
160
+ };
161
+ }, []);
162
+ }
163
+
164
+ /**
165
+ * Given a string of HTML representing serialized blocks, returns the plain
166
+ * text extracted after stripping the HTML of any tags and fixing line breaks.
167
+ *
168
+ * @param {string} html Serialized blocks.
169
+ * @return {string} The plain-text content with any html removed.
170
+ */
171
+ function toPlainText(html) {
172
+ // Manually handle BR tags as line breaks prior to `stripHTML` call
173
+ html = html.replace(/<br>/g, '\n');
174
+ const plainText = (0, _dom.__unstableStripHTML)(html).trim();
175
+
176
+ // Merge any consecutive line breaks
177
+ return plainText.replace(/\n\n+/g, '\n\n');
178
+ }
179
+ //# sourceMappingURL=use-clipboard-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_blocks","require","_dom","_data","_compose","_pasting","_store","_useNotifyCopy","useClipboardHandler","getBlocksByClientId","getSelectedBlockClientIds","hasMultiSelection","getSettings","__unstableIsFullySelected","__unstableIsSelectionCollapsed","__unstableIsSelectionMergeable","__unstableGetSelectedBlocksWithPartialSelection","canInsertBlockType","useSelect","blockEditorStore","flashBlock","removeBlocks","replaceBlocks","__unstableDeleteSelection","__unstableExpandSelection","insertBlocks","useDispatch","notifyCopy","useNotifyCopy","useRefEffect","node","handler","event","defaultPrevented","selectedBlockClientIds","length","target","ownerDocument","hasSelection","type","documentHasUncollapsedSelection","documentHasSelection","contains","activeElement","preventDefault","isSelectionMergeable","shouldHandleWholeBlocks","expandSelectionIsNeeded","blocks","head","tail","inBetweenBlocks","slice","wrapperBlockName","clipboardData","getData","createBlock","JSON","parse","serialized","serialize","setData","toPlainText","contentEditable","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","plainText","html","files","getPasteEventData","fromTransforms","getBlockTransforms","reduce","accumulator","file","transformation","findTransform","transform","isMatch","push","flat","pasteHandler","HTML","mode","selectedBlockClientId","every","block","name","undefined","addEventListener","removeEventListener","replace","stripHTML","trim"],"sources":["@wordpress/block-editor/src/components/writing-flow/use-clipboard-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tserialize,\n\tpasteHandler,\n\tcreateBlock,\n\tfindTransform,\n\tgetBlockTransforms,\n} from '@wordpress/blocks';\nimport {\n\tdocumentHasSelection,\n\tdocumentHasUncollapsedSelection,\n\t__unstableStripHTML as stripHTML,\n} from '@wordpress/dom';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getPasteEventData } from '../../utils/pasting';\nimport { store as blockEditorStore } from '../../store';\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\n\nexport default function useClipboardHandler() {\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\tgetSettings,\n\t\t__unstableIsFullySelected,\n\t\t__unstableIsSelectionCollapsed,\n\t\t__unstableIsSelectionMergeable,\n\t\t__unstableGetSelectedBlocksWithPartialSelection,\n\t\tcanInsertBlockType,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tflashBlock,\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\t__unstableDeleteSelection,\n\t\t__unstableExpandSelection,\n\t\tinsertBlocks,\n\t} = useDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction handler( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\t// This was likely already handled in rich-text/use-paste-handler.js.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Always handle multiple selected blocks.\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tconst { target } = event;\n\t\t\t\tconst { ownerDocument } = target;\n\t\t\t\t// If copying, only consider actual text selection as selection.\n\t\t\t\t// Otherwise, any focus on an input field is considered.\n\t\t\t\tconst hasSelection =\n\t\t\t\t\tevent.type === 'copy' || event.type === 'cut'\n\t\t\t\t\t\t? documentHasUncollapsedSelection( ownerDocument )\n\t\t\t\t\t\t: documentHasSelection( ownerDocument );\n\n\t\t\t\t// Let native copy behaviour take over in input fields.\n\t\t\t\tif ( hasSelection ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( ! node.contains( event.target.ownerDocument.activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\n\t\t\tconst isSelectionMergeable = __unstableIsSelectionMergeable();\n\t\t\tconst shouldHandleWholeBlocks =\n\t\t\t\t__unstableIsSelectionCollapsed() || __unstableIsFullySelected();\n\t\t\tconst expandSelectionIsNeeded =\n\t\t\t\t! shouldHandleWholeBlocks && ! isSelectionMergeable;\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\t\t\t\t// If we have a partial selection that is not mergeable, just\n\t\t\t\t// expand the selection to the whole blocks.\n\t\t\t\tif ( expandSelectionIsNeeded ) {\n\t\t\t\t\t__unstableExpandSelection();\n\t\t\t\t} else {\n\t\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\t\tlet blocks;\n\t\t\t\t\t// Check if we have partial selection.\n\t\t\t\t\tif ( shouldHandleWholeBlocks ) {\n\t\t\t\t\t\tblocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst [ head, tail ] =\n\t\t\t\t\t\t\t__unstableGetSelectedBlocksWithPartialSelection();\n\t\t\t\t\t\tconst inBetweenBlocks = getBlocksByClientId(\n\t\t\t\t\t\t\tselectedBlockClientIds.slice(\n\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length - 1\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tblocks = [ head, ...inBetweenBlocks, tail ];\n\t\t\t\t\t}\n\n\t\t\t\t\tconst wrapperBlockName = event.clipboardData.getData(\n\t\t\t\t\t\t'__unstableWrapperBlockName'\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( wrapperBlockName ) {\n\t\t\t\t\t\tblocks = createBlock(\n\t\t\t\t\t\t\twrapperBlockName,\n\t\t\t\t\t\t\tJSON.parse(\n\t\t\t\t\t\t\t\tevent.clipboardData.getData(\n\t\t\t\t\t\t\t\t\t'__unstableWrapperBlockAttributes'\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tblocks\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst serialized = serialize( blocks );\n\n\t\t\t\t\tevent.clipboardData.setData(\n\t\t\t\t\t\t'text/plain',\n\t\t\t\t\t\ttoPlainText( serialized )\n\t\t\t\t\t);\n\t\t\t\t\tevent.clipboardData.setData( 'text/html', serialized );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\t// We need to also check if at the start we needed to\n\t\t\t\t// expand the selection, as in this point we might have\n\t\t\t\t// programmatically fully selected the blocks above.\n\t\t\t\tif ( shouldHandleWholeBlocks && ! expandSelectionIsNeeded ) {\n\t\t\t\t\tremoveBlocks( selectedBlockClientIds );\n\t\t\t\t} else {\n\t\t\t\t\tevent.target.ownerDocument.activeElement.contentEditable = false;\n\t\t\t\t\t__unstableDeleteSelection();\n\t\t\t\t}\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML:\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst { plainText, html, files } = getPasteEventData( event );\n\t\t\t\tlet blocks = [];\n\n\t\t\t\tif ( files.length ) {\n\t\t\t\t\tconst fromTransforms = getBlockTransforms( 'from' );\n\t\t\t\t\tblocks = files\n\t\t\t\t\t\t.reduce( ( accumulator, file ) => {\n\t\t\t\t\t\t\tconst transformation = findTransform(\n\t\t\t\t\t\t\t\tfromTransforms,\n\t\t\t\t\t\t\t\t( transform ) =>\n\t\t\t\t\t\t\t\t\ttransform.type === 'files' &&\n\t\t\t\t\t\t\t\t\ttransform.isMatch( [ file ] )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( transformation ) {\n\t\t\t\t\t\t\t\taccumulator.push(\n\t\t\t\t\t\t\t\t\ttransformation.transform( [ file ] )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t\t}, [] )\n\t\t\t\t\t\t.flat();\n\t\t\t\t} else {\n\t\t\t\t\tblocks = pasteHandler( {\n\t\t\t\t\t\tHTML: html,\n\t\t\t\t\t\tplainText,\n\t\t\t\t\t\tmode: 'BLOCKS',\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tconst [ selectedBlockClientId ] = selectedBlockClientIds;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tblocks.every( ( block ) =>\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tblock.name,\n\t\t\t\t\t\t\t\tselectedBlockClientId\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\tinsertBlocks(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\tselectedBlockClientId\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treplaceBlocks(\n\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\tblocks,\n\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t-1\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n\n/**\n * Given a string of HTML representing serialized blocks, returns the plain\n * text extracted after stripping the HTML of any tags and fixing line breaks.\n *\n * @param {string} html Serialized blocks.\n * @return {string} The plain-text content with any html removed.\n */\nfunction toPlainText( html ) {\n\t// Manually handle BR tags as line breaks prior to `stripHTML` call\n\thtml = html.replace( /<br>/g, '\\n' );\n\n\tconst plainText = stripHTML( html ).trim();\n\n\t// Merge any consecutive line breaks\n\treturn plainText.replace( /\\n\\n+/g, '\\n\\n' );\n}\n"],"mappings":"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"}
@@ -4,11 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = useTabNav;
7
- var _element = require("@wordpress/element");
7
+ var _react = require("react");
8
8
  var _dom = require("@wordpress/dom");
9
9
  var _keycodes = require("@wordpress/keycodes");
10
10
  var _data = require("@wordpress/data");
11
11
  var _compose = require("@wordpress/compose");
12
+ var _element = require("@wordpress/element");
12
13
  var _store = require("../../store");
13
14
  var _dom2 = require("../../utils/dom");
14
15
  /**
@@ -61,12 +62,12 @@ function useTabNav() {
61
62
  }
62
63
  }
63
64
  }
64
- const before = (0, _element.createElement)("div", {
65
+ const before = (0, _react.createElement)("div", {
65
66
  ref: focusCaptureBeforeRef,
66
67
  tabIndex: focusCaptureTabIndex,
67
68
  onFocus: onFocusCapture
68
69
  });
69
- const after = (0, _element.createElement)("div", {
70
+ const after = (0, _react.createElement)("div", {
70
71
  ref: focusCaptureAfterRef,
71
72
  tabIndex: focusCaptureTabIndex,
72
73
  onFocus: onFocusCapture
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_dom","_keycodes","_data","_compose","_store","_dom2","useTabNav","container","useRef","focusCaptureBeforeRef","focusCaptureAfterRef","lastFocus","hasMultiSelection","getSelectedBlockClientId","getBlockCount","useSelect","blockEditorStore","setNavigationMode","useDispatch","isNavigationMode","select","focusCaptureTabIndex","undefined","noCapture","onFocusCapture","event","current","focus","canvasElement","ownerDocument","target","defaultView","frameElement","isBefore","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","tabbables","tabbable","find","length","next","before","createElement","ref","tabIndex","onFocus","after","useRefEffect","node","onKeyDown","defaultPrevented","keyCode","ESCAPE","preventDefault","TAB","isShift","shiftKey","direction","nextTabbable","currentBlock","closest","isElementPartOfSelectedBlock","isInSameBlock","isInsideRootBlock","isFormElement","preventScroll","onFocusOut","relatedTarget","activeElement","body","preventScrollOnTab","getAttribute","addEventListener","removeEventListener","mergedRefs","useMergeRefs"],"sources":["@wordpress/block-editor/src/components/writing-flow/use-tab-nav.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { focus, isFormElement } from '@wordpress/dom';\nimport { TAB, ESCAPE } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect, useMergeRefs } from '@wordpress/compose';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { isInSameBlock, isInsideRootBlock } from '../../utils/dom';\n\nexport default function useTabNav() {\n\tconst container = useRef();\n\tconst focusCaptureBeforeRef = useRef();\n\tconst focusCaptureAfterRef = useRef();\n\tconst lastFocus = useRef();\n\tconst { hasMultiSelection, getSelectedBlockClientId, getBlockCount } =\n\t\tuseSelect( blockEditorStore );\n\tconst { setNavigationMode } = useDispatch( blockEditorStore );\n\tconst isNavigationMode = useSelect(\n\t\t( select ) => select( blockEditorStore ).isNavigationMode(),\n\t\t[]\n\t);\n\n\t// Don't allow tabbing to this element in Navigation mode.\n\tconst focusCaptureTabIndex = ! isNavigationMode ? '0' : undefined;\n\n\t// Reference that holds the a flag for enabling or disabling\n\t// capturing on the focus capture elements.\n\tconst noCapture = useRef();\n\n\tfunction onFocusCapture( event ) {\n\t\t// Do not capture incoming focus if set by us in WritingFlow.\n\t\tif ( noCapture.current ) {\n\t\t\tnoCapture.current = null;\n\t\t} else if ( hasMultiSelection() ) {\n\t\t\tcontainer.current.focus();\n\t\t} else if ( getSelectedBlockClientId() ) {\n\t\t\tlastFocus.current.focus();\n\t\t} else {\n\t\t\tsetNavigationMode( true );\n\n\t\t\tconst canvasElement =\n\t\t\t\tcontainer.current.ownerDocument === event.target.ownerDocument\n\t\t\t\t\t? container.current\n\t\t\t\t\t: container.current.ownerDocument.defaultView.frameElement;\n\n\t\t\tconst isBefore =\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tevent.target.compareDocumentPosition( canvasElement ) &\n\t\t\t\tevent.target.DOCUMENT_POSITION_FOLLOWING;\n\t\t\tconst tabbables = focus.tabbable.find( container.current );\n\n\t\t\tif ( tabbables.length ) {\n\t\t\t\tconst next = isBefore\n\t\t\t\t\t? tabbables[ 0 ]\n\t\t\t\t\t: tabbables[ tabbables.length - 1 ];\n\n\t\t\t\tnext.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tconst before = (\n\t\t<div\n\t\t\tref={ focusCaptureBeforeRef }\n\t\t\ttabIndex={ focusCaptureTabIndex }\n\t\t\tonFocus={ onFocusCapture }\n\t\t/>\n\t);\n\n\tconst after = (\n\t\t<div\n\t\t\tref={ focusCaptureAfterRef }\n\t\t\ttabIndex={ focusCaptureTabIndex }\n\t\t\tonFocus={ onFocusCapture }\n\t\t/>\n\t);\n\n\tconst ref = useRefEffect( ( node ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( event.keyCode === ESCAPE && ! hasMultiSelection() ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tsetNavigationMode( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// In Edit mode, Tab should focus the first tabbable element after\n\t\t\t// the content, which is normally the sidebar (with block controls)\n\t\t\t// and Shift+Tab should focus the first tabbable element before the\n\t\t\t// content, which is normally the block toolbar.\n\t\t\t// Arrow keys can be used, and Tab and arrow keys can be used in\n\t\t\t// Navigation mode (press Esc), to navigate through blocks.\n\t\t\tif ( event.keyCode !== TAB ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isShift = event.shiftKey;\n\t\t\tconst direction = isShift ? 'findPrevious' : 'findNext';\n\n\t\t\tif ( ! hasMultiSelection() && ! getSelectedBlockClientId() ) {\n\t\t\t\t// Preserve the behaviour of entering navigation mode when\n\t\t\t\t// tabbing into the content without a block selection.\n\t\t\t\t// `onFocusCapture` already did this previously, but we need to\n\t\t\t\t// do it again here because after clearing block selection,\n\t\t\t\t// focus land on the writing flow container and pressing Tab\n\t\t\t\t// will no longer send focus through the focus capture element.\n\t\t\t\tif ( event.target === node ) setNavigationMode( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst nextTabbable = focus.tabbable[ direction ]( event.target );\n\n\t\t\t// We want to constrain the tabbing to the block and its child blocks.\n\t\t\t// If the preceding form element is within a different block,\n\t\t\t// such as two sibling image blocks in the placeholder state,\n\t\t\t// we want shift + tab from the first form element to move to the image\n\t\t\t// block toolbar and not the previous image block's form element.\n\t\t\tconst currentBlock = event.target.closest( '[data-block]' );\n\t\t\tconst isElementPartOfSelectedBlock =\n\t\t\t\tcurrentBlock &&\n\t\t\t\tnextTabbable &&\n\t\t\t\t( isInSameBlock( currentBlock, nextTabbable ) ||\n\t\t\t\t\tisInsideRootBlock( currentBlock, nextTabbable ) );\n\n\t\t\t// Allow tabbing from the block wrapper to a form element,\n\t\t\t// and between form elements rendered in a block and its child blocks,\n\t\t\t// such as inside a placeholder. Form elements are generally\n\t\t\t// meant to be UI rather than part of the content. Ideally\n\t\t\t// these are not rendered in the content and perhaps in the\n\t\t\t// future they can be rendered in an iframe or shadow DOM.\n\t\t\tif (\n\t\t\t\tisFormElement( nextTabbable ) &&\n\t\t\t\tisElementPartOfSelectedBlock\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst next = isShift ? focusCaptureBeforeRef : focusCaptureAfterRef;\n\n\t\t\t// Disable focus capturing on the focus capture element, so it\n\t\t\t// doesn't refocus this block and so it allows default behaviour\n\t\t\t// (moving focus to the next tabbable element).\n\t\t\tnoCapture.current = true;\n\n\t\t\t// Focusing the focus capture element, which is located above and\n\t\t\t// below the editor, should not scroll the page all the way up or\n\t\t\t// down.\n\t\t\tnext.current.focus( { preventScroll: true } );\n\t\t}\n\n\t\tfunction onFocusOut( event ) {\n\t\t\tlastFocus.current = event.target;\n\n\t\t\tconst { ownerDocument } = node;\n\n\t\t\t// If focus disappears due to there being no blocks, move focus to\n\t\t\t// the writing flow wrapper.\n\t\t\tif (\n\t\t\t\t! event.relatedTarget &&\n\t\t\t\townerDocument.activeElement === ownerDocument.body &&\n\t\t\t\tgetBlockCount() === 0\n\t\t\t) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t}\n\n\t\t// When tabbing back to an element in block list, this event handler prevents scrolling if the\n\t\t// focus capture divs (before/after) are outside of the viewport. (For example shift+tab back to a paragraph\n\t\t// when focus is on a sidebar element. This prevents the scrollable writing area from jumping either to the\n\t\t// top or bottom of the document.\n\t\t//\n\t\t// Note that it isn't possible to disable scrolling in the onFocus event. We need to intercept this\n\t\t// earlier in the keypress handler, and call focus( { preventScroll: true } ) instead.\n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/HTMLOrForeignElement/focus#parameters\n\t\tfunction preventScrollOnTab( event ) {\n\t\t\tif ( event.keyCode !== TAB ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( event.target?.getAttribute( 'role' ) === 'region' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( container.current === event.target ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isShift = event.shiftKey;\n\t\t\tconst direction = isShift ? 'findPrevious' : 'findNext';\n\t\t\tconst target = focus.tabbable[ direction ]( event.target );\n\t\t\t// Only do something when the next tabbable is a focus capture div (before/after)\n\t\t\tif (\n\t\t\t\ttarget === focusCaptureBeforeRef.current ||\n\t\t\t\ttarget === focusCaptureAfterRef.current\n\t\t\t) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttarget.focus( { preventScroll: true } );\n\t\t\t}\n\t\t}\n\n\t\tconst { ownerDocument } = node;\n\t\tconst { defaultView } = ownerDocument;\n\t\tdefaultView.addEventListener( 'keydown', preventScrollOnTab );\n\t\tnode.addEventListener( 'keydown', onKeyDown );\n\t\tnode.addEventListener( 'focusout', onFocusOut );\n\t\treturn () => {\n\t\t\tdefaultView.removeEventListener( 'keydown', preventScrollOnTab );\n\t\t\tnode.removeEventListener( 'keydown', onKeyDown );\n\t\t\tnode.removeEventListener( 'focusout', onFocusOut );\n\t\t};\n\t}, [] );\n\n\tconst mergedRefs = useMergeRefs( [ container, ref ] );\n\n\treturn [ before, mergedRefs, after ];\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_dom","require","_keycodes","_data","_compose","_element","_store","_dom2","useTabNav","container","useRef","focusCaptureBeforeRef","focusCaptureAfterRef","lastFocus","hasMultiSelection","getSelectedBlockClientId","getBlockCount","useSelect","blockEditorStore","setNavigationMode","useDispatch","isNavigationMode","select","focusCaptureTabIndex","undefined","noCapture","onFocusCapture","event","current","focus","canvasElement","ownerDocument","target","defaultView","frameElement","isBefore","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","tabbables","tabbable","find","length","next","before","_react","createElement","ref","tabIndex","onFocus","after","useRefEffect","node","onKeyDown","defaultPrevented","keyCode","ESCAPE","preventDefault","TAB","isShift","shiftKey","direction","nextTabbable","currentBlock","closest","isElementPartOfSelectedBlock","isInSameBlock","isInsideRootBlock","isFormElement","preventScroll","onFocusOut","relatedTarget","activeElement","body","preventScrollOnTab","getAttribute","addEventListener","removeEventListener","mergedRefs","useMergeRefs"],"sources":["@wordpress/block-editor/src/components/writing-flow/use-tab-nav.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { focus, isFormElement } from '@wordpress/dom';\nimport { TAB, ESCAPE } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect, useMergeRefs } from '@wordpress/compose';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { isInSameBlock, isInsideRootBlock } from '../../utils/dom';\n\nexport default function useTabNav() {\n\tconst container = useRef();\n\tconst focusCaptureBeforeRef = useRef();\n\tconst focusCaptureAfterRef = useRef();\n\tconst lastFocus = useRef();\n\tconst { hasMultiSelection, getSelectedBlockClientId, getBlockCount } =\n\t\tuseSelect( blockEditorStore );\n\tconst { setNavigationMode } = useDispatch( blockEditorStore );\n\tconst isNavigationMode = useSelect(\n\t\t( select ) => select( blockEditorStore ).isNavigationMode(),\n\t\t[]\n\t);\n\n\t// Don't allow tabbing to this element in Navigation mode.\n\tconst focusCaptureTabIndex = ! isNavigationMode ? '0' : undefined;\n\n\t// Reference that holds the a flag for enabling or disabling\n\t// capturing on the focus capture elements.\n\tconst noCapture = useRef();\n\n\tfunction onFocusCapture( event ) {\n\t\t// Do not capture incoming focus if set by us in WritingFlow.\n\t\tif ( noCapture.current ) {\n\t\t\tnoCapture.current = null;\n\t\t} else if ( hasMultiSelection() ) {\n\t\t\tcontainer.current.focus();\n\t\t} else if ( getSelectedBlockClientId() ) {\n\t\t\tlastFocus.current.focus();\n\t\t} else {\n\t\t\tsetNavigationMode( true );\n\n\t\t\tconst canvasElement =\n\t\t\t\tcontainer.current.ownerDocument === event.target.ownerDocument\n\t\t\t\t\t? container.current\n\t\t\t\t\t: container.current.ownerDocument.defaultView.frameElement;\n\n\t\t\tconst isBefore =\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tevent.target.compareDocumentPosition( canvasElement ) &\n\t\t\t\tevent.target.DOCUMENT_POSITION_FOLLOWING;\n\t\t\tconst tabbables = focus.tabbable.find( container.current );\n\n\t\t\tif ( tabbables.length ) {\n\t\t\t\tconst next = isBefore\n\t\t\t\t\t? tabbables[ 0 ]\n\t\t\t\t\t: tabbables[ tabbables.length - 1 ];\n\n\t\t\t\tnext.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tconst before = (\n\t\t<div\n\t\t\tref={ focusCaptureBeforeRef }\n\t\t\ttabIndex={ focusCaptureTabIndex }\n\t\t\tonFocus={ onFocusCapture }\n\t\t/>\n\t);\n\n\tconst after = (\n\t\t<div\n\t\t\tref={ focusCaptureAfterRef }\n\t\t\ttabIndex={ focusCaptureTabIndex }\n\t\t\tonFocus={ onFocusCapture }\n\t\t/>\n\t);\n\n\tconst ref = useRefEffect( ( node ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( event.keyCode === ESCAPE && ! hasMultiSelection() ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tsetNavigationMode( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// In Edit mode, Tab should focus the first tabbable element after\n\t\t\t// the content, which is normally the sidebar (with block controls)\n\t\t\t// and Shift+Tab should focus the first tabbable element before the\n\t\t\t// content, which is normally the block toolbar.\n\t\t\t// Arrow keys can be used, and Tab and arrow keys can be used in\n\t\t\t// Navigation mode (press Esc), to navigate through blocks.\n\t\t\tif ( event.keyCode !== TAB ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isShift = event.shiftKey;\n\t\t\tconst direction = isShift ? 'findPrevious' : 'findNext';\n\n\t\t\tif ( ! hasMultiSelection() && ! getSelectedBlockClientId() ) {\n\t\t\t\t// Preserve the behaviour of entering navigation mode when\n\t\t\t\t// tabbing into the content without a block selection.\n\t\t\t\t// `onFocusCapture` already did this previously, but we need to\n\t\t\t\t// do it again here because after clearing block selection,\n\t\t\t\t// focus land on the writing flow container and pressing Tab\n\t\t\t\t// will no longer send focus through the focus capture element.\n\t\t\t\tif ( event.target === node ) setNavigationMode( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst nextTabbable = focus.tabbable[ direction ]( event.target );\n\n\t\t\t// We want to constrain the tabbing to the block and its child blocks.\n\t\t\t// If the preceding form element is within a different block,\n\t\t\t// such as two sibling image blocks in the placeholder state,\n\t\t\t// we want shift + tab from the first form element to move to the image\n\t\t\t// block toolbar and not the previous image block's form element.\n\t\t\tconst currentBlock = event.target.closest( '[data-block]' );\n\t\t\tconst isElementPartOfSelectedBlock =\n\t\t\t\tcurrentBlock &&\n\t\t\t\tnextTabbable &&\n\t\t\t\t( isInSameBlock( currentBlock, nextTabbable ) ||\n\t\t\t\t\tisInsideRootBlock( currentBlock, nextTabbable ) );\n\n\t\t\t// Allow tabbing from the block wrapper to a form element,\n\t\t\t// and between form elements rendered in a block and its child blocks,\n\t\t\t// such as inside a placeholder. Form elements are generally\n\t\t\t// meant to be UI rather than part of the content. Ideally\n\t\t\t// these are not rendered in the content and perhaps in the\n\t\t\t// future they can be rendered in an iframe or shadow DOM.\n\t\t\tif (\n\t\t\t\tisFormElement( nextTabbable ) &&\n\t\t\t\tisElementPartOfSelectedBlock\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst next = isShift ? focusCaptureBeforeRef : focusCaptureAfterRef;\n\n\t\t\t// Disable focus capturing on the focus capture element, so it\n\t\t\t// doesn't refocus this block and so it allows default behaviour\n\t\t\t// (moving focus to the next tabbable element).\n\t\t\tnoCapture.current = true;\n\n\t\t\t// Focusing the focus capture element, which is located above and\n\t\t\t// below the editor, should not scroll the page all the way up or\n\t\t\t// down.\n\t\t\tnext.current.focus( { preventScroll: true } );\n\t\t}\n\n\t\tfunction onFocusOut( event ) {\n\t\t\tlastFocus.current = event.target;\n\n\t\t\tconst { ownerDocument } = node;\n\n\t\t\t// If focus disappears due to there being no blocks, move focus to\n\t\t\t// the writing flow wrapper.\n\t\t\tif (\n\t\t\t\t! event.relatedTarget &&\n\t\t\t\townerDocument.activeElement === ownerDocument.body &&\n\t\t\t\tgetBlockCount() === 0\n\t\t\t) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t}\n\n\t\t// When tabbing back to an element in block list, this event handler prevents scrolling if the\n\t\t// focus capture divs (before/after) are outside of the viewport. (For example shift+tab back to a paragraph\n\t\t// when focus is on a sidebar element. This prevents the scrollable writing area from jumping either to the\n\t\t// top or bottom of the document.\n\t\t//\n\t\t// Note that it isn't possible to disable scrolling in the onFocus event. We need to intercept this\n\t\t// earlier in the keypress handler, and call focus( { preventScroll: true } ) instead.\n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/HTMLOrForeignElement/focus#parameters\n\t\tfunction preventScrollOnTab( event ) {\n\t\t\tif ( event.keyCode !== TAB ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( event.target?.getAttribute( 'role' ) === 'region' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( container.current === event.target ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isShift = event.shiftKey;\n\t\t\tconst direction = isShift ? 'findPrevious' : 'findNext';\n\t\t\tconst target = focus.tabbable[ direction ]( event.target );\n\t\t\t// Only do something when the next tabbable is a focus capture div (before/after)\n\t\t\tif (\n\t\t\t\ttarget === focusCaptureBeforeRef.current ||\n\t\t\t\ttarget === focusCaptureAfterRef.current\n\t\t\t) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttarget.focus( { preventScroll: true } );\n\t\t\t}\n\t\t}\n\n\t\tconst { ownerDocument } = node;\n\t\tconst { defaultView } = ownerDocument;\n\t\tdefaultView.addEventListener( 'keydown', preventScrollOnTab );\n\t\tnode.addEventListener( 'keydown', onKeyDown );\n\t\tnode.addEventListener( 'focusout', onFocusOut );\n\t\treturn () => {\n\t\t\tdefaultView.removeEventListener( 'keydown', preventScrollOnTab );\n\t\t\tnode.removeEventListener( 'keydown', onKeyDown );\n\t\t\tnode.removeEventListener( 'focusout', onFocusOut );\n\t\t};\n\t}, [] );\n\n\tconst mergedRefs = useMergeRefs( [ container, ref ] );\n\n\treturn [ before, mergedRefs, after ];\n}\n"],"mappings":"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"}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = WritingModeControl;
8
- var _element = require("@wordpress/element");
8
+ var _react = require("react");
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
10
  var _components = require("@wordpress/components");
11
11
  var _i18n = require("@wordpress/i18n");
@@ -36,21 +36,21 @@ const WRITING_MODES = [{
36
36
  * @param {string} props.value Currently selected writing mode.
37
37
  * @param {Function} props.onChange Handles change in the writing mode selection.
38
38
  *
39
- * @return {WPElement} Writing Mode control.
39
+ * @return {Element} Writing Mode control.
40
40
  */
41
41
  function WritingModeControl({
42
42
  className,
43
43
  value,
44
44
  onChange
45
45
  }) {
46
- return (0, _element.createElement)("fieldset", {
46
+ return (0, _react.createElement)("fieldset", {
47
47
  className: (0, _classnames.default)('block-editor-writing-mode-control', className)
48
- }, (0, _element.createElement)(_components.BaseControl.VisualLabel, {
48
+ }, (0, _react.createElement)(_components.BaseControl.VisualLabel, {
49
49
  as: "legend"
50
- }, (0, _i18n.__)('Orientation')), (0, _element.createElement)("div", {
50
+ }, (0, _i18n.__)('Orientation')), (0, _react.createElement)("div", {
51
51
  className: "block-editor-writing-mode-control__buttons"
52
52
  }, WRITING_MODES.map(writingMode => {
53
- return (0, _element.createElement)(_components.Button, {
53
+ return (0, _react.createElement)(_components.Button, {
54
54
  key: writingMode.value,
55
55
  icon: writingMode.icon,
56
56
  label: writingMode.name,
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_components","_i18n","_icons","WRITING_MODES","name","__","value","icon","textHorizontal","isRTL","textVertical","WritingModeControl","className","onChange","_element","createElement","classnames","BaseControl","VisualLabel","as","map","writingMode","Button","key","label","isPressed","onClick","undefined"],"sources":["@wordpress/block-editor/src/components/writing-mode-control/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { BaseControl, Button } from '@wordpress/components';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { textHorizontal, textVertical } from '@wordpress/icons';\n\nconst WRITING_MODES = [\n\t{\n\t\tname: __( 'Horizontal' ),\n\t\tvalue: 'horizontal-tb',\n\t\ticon: textHorizontal,\n\t},\n\t{\n\t\tname: __( 'Vertical' ),\n\t\tvalue: isRTL() ? 'vertical-lr' : 'vertical-rl',\n\t\ticon: textVertical,\n\t},\n];\n\n/**\n * Control to facilitate writing mode selections.\n *\n * @param {Object} props Component props.\n * @param {string} props.className Class name to add to the control.\n * @param {string} props.value Currently selected writing mode.\n * @param {Function} props.onChange Handles change in the writing mode selection.\n *\n * @return {WPElement} Writing Mode control.\n */\nexport default function WritingModeControl( { className, value, onChange } ) {\n\treturn (\n\t\t<fieldset\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-writing-mode-control',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t>\n\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t{ __( 'Orientation' ) }\n\t\t\t</BaseControl.VisualLabel>\n\t\t\t<div className=\"block-editor-writing-mode-control__buttons\">\n\t\t\t\t{ WRITING_MODES.map( ( writingMode ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ writingMode.value }\n\t\t\t\t\t\t\ticon={ writingMode.icon }\n\t\t\t\t\t\t\tlabel={ writingMode.name }\n\t\t\t\t\t\t\tisPressed={ writingMode.value === value }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\twritingMode.value === value\n\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t: writingMode.value\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} ) }\n\t\t\t</div>\n\t\t</fieldset>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAGA;AACA;AACA;;AAKA,MAAMI,aAAa,GAAG,CACrB;EACCC,IAAI,EAAE,IAAAC,QAAE,EAAE,YAAa,CAAC;EACxBC,KAAK,EAAE,eAAe;EACtBC,IAAI,EAAEC;AACP,CAAC,EACD;EACCJ,IAAI,EAAE,IAAAC,QAAE,EAAE,UAAW,CAAC;EACtBC,KAAK,EAAE,IAAAG,WAAK,EAAC,CAAC,GAAG,aAAa,GAAG,aAAa;EAC9CF,IAAI,EAAEG;AACP,CAAC,CACD;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,kBAAkBA,CAAE;EAAEC,SAAS;EAAEN,KAAK;EAAEO;AAAS,CAAC,EAAG;EAC5E,OACC,IAAAC,QAAA,CAAAC,aAAA;IACCH,SAAS,EAAG,IAAAI,mBAAU,EACrB,mCAAmC,EACnCJ,SACD;EAAG,GAEH,IAAAE,QAAA,CAAAC,aAAA,EAACf,WAAA,CAAAiB,WAAW,CAACC,WAAW;IAACC,EAAE,EAAC;EAAQ,GACjC,IAAAd,QAAE,EAAE,aAAc,CACI,CAAC,EAC1B,IAAAS,QAAA,CAAAC,aAAA;IAAKH,SAAS,EAAC;EAA4C,GACxDT,aAAa,CAACiB,GAAG,CAAIC,WAAW,IAAM;IACvC,OACC,IAAAP,QAAA,CAAAC,aAAA,EAACf,WAAA,CAAAsB,MAAM;MACNC,GAAG,EAAGF,WAAW,CAACf,KAAO;MACzBC,IAAI,EAAGc,WAAW,CAACd,IAAM;MACzBiB,KAAK,EAAGH,WAAW,CAACjB,IAAM;MAC1BqB,SAAS,EAAGJ,WAAW,CAACf,KAAK,KAAKA,KAAO;MACzCoB,OAAO,EAAGA,CAAA,KAAM;QACfb,QAAQ,CACPQ,WAAW,CAACf,KAAK,KAAKA,KAAK,GACxBqB,SAAS,GACTN,WAAW,CAACf,KAChB,CAAC;MACF;IAAG,CACH,CAAC;EAEJ,CAAE,CACE,CACI,CAAC;AAEb"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_components","_i18n","_icons","WRITING_MODES","name","__","value","icon","textHorizontal","isRTL","textVertical","WritingModeControl","className","onChange","_react","createElement","classnames","BaseControl","VisualLabel","as","map","writingMode","Button","key","label","isPressed","onClick","undefined"],"sources":["@wordpress/block-editor/src/components/writing-mode-control/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { BaseControl, Button } from '@wordpress/components';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { textHorizontal, textVertical } from '@wordpress/icons';\n\nconst WRITING_MODES = [\n\t{\n\t\tname: __( 'Horizontal' ),\n\t\tvalue: 'horizontal-tb',\n\t\ticon: textHorizontal,\n\t},\n\t{\n\t\tname: __( 'Vertical' ),\n\t\tvalue: isRTL() ? 'vertical-lr' : 'vertical-rl',\n\t\ticon: textVertical,\n\t},\n];\n\n/**\n * Control to facilitate writing mode selections.\n *\n * @param {Object} props Component props.\n * @param {string} props.className Class name to add to the control.\n * @param {string} props.value Currently selected writing mode.\n * @param {Function} props.onChange Handles change in the writing mode selection.\n *\n * @return {Element} Writing Mode control.\n */\nexport default function WritingModeControl( { className, value, onChange } ) {\n\treturn (\n\t\t<fieldset\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-writing-mode-control',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t>\n\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t{ __( 'Orientation' ) }\n\t\t\t</BaseControl.VisualLabel>\n\t\t\t<div className=\"block-editor-writing-mode-control__buttons\">\n\t\t\t\t{ WRITING_MODES.map( ( writingMode ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ writingMode.value }\n\t\t\t\t\t\t\ticon={ writingMode.icon }\n\t\t\t\t\t\t\tlabel={ writingMode.name }\n\t\t\t\t\t\t\tisPressed={ writingMode.value === value }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\twritingMode.value === value\n\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t: writingMode.value\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} ) }\n\t\t\t</div>\n\t\t</fieldset>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAGA;AACA;AACA;;AAKA,MAAMI,aAAa,GAAG,CACrB;EACCC,IAAI,EAAE,IAAAC,QAAE,EAAE,YAAa,CAAC;EACxBC,KAAK,EAAE,eAAe;EACtBC,IAAI,EAAEC;AACP,CAAC,EACD;EACCJ,IAAI,EAAE,IAAAC,QAAE,EAAE,UAAW,CAAC;EACtBC,KAAK,EAAE,IAAAG,WAAK,EAAC,CAAC,GAAG,aAAa,GAAG,aAAa;EAC9CF,IAAI,EAAEG;AACP,CAAC,CACD;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,kBAAkBA,CAAE;EAAEC,SAAS;EAAEN,KAAK;EAAEO;AAAS,CAAC,EAAG;EAC5E,OACC,IAAAC,MAAA,CAAAC,aAAA;IACCH,SAAS,EAAG,IAAAI,mBAAU,EACrB,mCAAmC,EACnCJ,SACD;EAAG,GAEH,IAAAE,MAAA,CAAAC,aAAA,EAACf,WAAA,CAAAiB,WAAW,CAACC,WAAW;IAACC,EAAE,EAAC;EAAQ,GACjC,IAAAd,QAAE,EAAE,aAAc,CACI,CAAC,EAC1B,IAAAS,MAAA,CAAAC,aAAA;IAAKH,SAAS,EAAC;EAA4C,GACxDT,aAAa,CAACiB,GAAG,CAAIC,WAAW,IAAM;IACvC,OACC,IAAAP,MAAA,CAAAC,aAAA,EAACf,WAAA,CAAAsB,MAAM;MACNC,GAAG,EAAGF,WAAW,CAACf,KAAO;MACzBC,IAAI,EAAGc,WAAW,CAACd,IAAM;MACzBiB,KAAK,EAAGH,WAAW,CAACjB,IAAM;MAC1BqB,SAAS,EAAGJ,WAAW,CAACf,KAAK,KAAKA,KAAO;MACzCoB,OAAO,EAAGA,CAAA,KAAM;QACfb,QAAQ,CACPQ,WAAW,CAACf,KAAK,KAAKA,KAAK,GACxBqB,SAAS,GACTN,WAAW,CAACf,KAChB,CAAC;MACF;IAAG,CACH,CAAC;EAEJ,CAAE,CACE,CACI,CAAC;AAEb"}
@@ -8,7 +8,7 @@ exports.addAssignedAlign = addAssignedAlign;
8
8
  exports.addAttribute = addAttribute;
9
9
  exports.getValidAlignments = getValidAlignments;
10
10
  exports.withToolbarControls = exports.withDataAlign = void 0;
11
- var _element = require("@wordpress/element");
11
+ var _react = require("react");
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
  var _compose = require("@wordpress/compose");
14
14
  var _hooks = require("@wordpress/hooks");
@@ -111,7 +111,7 @@ function addAttribute(settings) {
111
111
  * @return {Function} Wrapped component.
112
112
  */
113
113
  const withToolbarControls = (0, _compose.createHigherOrderComponent)(BlockEdit => props => {
114
- const blockEdit = (0, _element.createElement)(BlockEdit, {
114
+ const blockEdit = (0, _react.createElement)(BlockEdit, {
115
115
  key: "edit",
116
116
  ...props
117
117
  });
@@ -142,10 +142,10 @@ const withToolbarControls = (0, _compose.createHigherOrderComponent)(BlockEdit =
142
142
  align: nextAlign
143
143
  });
144
144
  };
145
- return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.BlockControls, {
145
+ return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.BlockControls, {
146
146
  group: "block",
147
147
  __experimentalShareWithChildBlocks: true
148
- }, (0, _element.createElement)(_components.BlockAlignmentControl, {
148
+ }, (0, _react.createElement)(_components.BlockAlignmentControl, {
149
149
  value: props.attributes.align,
150
150
  onChange: updateAlignment,
151
151
  controls: validAlignments
@@ -174,7 +174,7 @@ const withDataAlign = (0, _compose.createHigherOrderComponent)(BlockListBlock =>
174
174
  // If an alignment is not assigned, there's no need to go through the
175
175
  // effort to validate or assign its value.
176
176
  if (align === undefined) {
177
- return (0, _element.createElement)(BlockListBlock, {
177
+ return (0, _react.createElement)(BlockListBlock, {
178
178
  ...props
179
179
  });
180
180
  }
@@ -185,7 +185,7 @@ const withDataAlign = (0, _compose.createHigherOrderComponent)(BlockListBlock =>
185
185
  'data-align': align
186
186
  };
187
187
  }
188
- return (0, _element.createElement)(BlockListBlock, {
188
+ return (0, _react.createElement)(BlockListBlock, {
189
189
  ...props,
190
190
  wrapperProps: wrapperProps
191
191
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_compose","_hooks","_blocks","_components","_useAvailableAlignments","_blockEditingMode","ALL_ALIGNMENTS","WIDE_ALIGNMENTS","getValidAlignments","blockAlign","hasWideBlockSupport","hasWideEnabled","validAlignments","Array","isArray","filter","value","includes","alignment","addAttribute","settings","_settings$attributes$","attributes","align","hasBlockSupport","type","enum","withToolbarControls","createHigherOrderComponent","BlockEdit","props","blockEdit","_element","createElement","key","name","blockName","blockAllowedAlignments","getBlockSupport","useAvailableAlignments","map","blockEditingMode","useBlockEditingMode","length","updateAlignment","nextAlign","blockType","getBlockType","blockDefaultAlign","default","setAttributes","Fragment","BlockControls","group","__experimentalShareWithChildBlocks","BlockAlignmentControl","onChange","controls","exports","withDataAlign","BlockListBlock","undefined","wrapperProps","some","addAssignedAlign","isAlignValid","className","classnames","addFilter"],"sources":["@wordpress/block-editor/src/hooks/align.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\nimport {\n\tgetBlockSupport,\n\tgetBlockType,\n\thasBlockSupport,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { BlockControls, BlockAlignmentControl } from '../components';\nimport useAvailableAlignments from '../components/block-alignment-control/use-available-alignments';\nimport { useBlockEditingMode } from '../components/block-editing-mode';\n\n/**\n * An array which includes all possible valid alignments,\n * used to validate if an alignment is valid or not.\n *\n * @constant\n * @type {string[]}\n */\nconst ALL_ALIGNMENTS = [ 'left', 'center', 'right', 'wide', 'full' ];\n\n/**\n * An array which includes all wide alignments.\n * In order for this alignments to be valid they need to be supported by the block,\n * and by the theme.\n *\n * @constant\n * @type {string[]}\n */\nconst WIDE_ALIGNMENTS = [ 'wide', 'full' ];\n\n/**\n * Returns the valid alignments.\n * Takes into consideration the aligns supported by a block, if the block supports wide controls or not and if theme supports wide controls or not.\n * Exported just for testing purposes, not exported outside the module.\n *\n * @param {?boolean|string[]} blockAlign Aligns supported by the block.\n * @param {?boolean} hasWideBlockSupport True if block supports wide alignments. And False otherwise.\n * @param {?boolean} hasWideEnabled True if theme supports wide alignments. And False otherwise.\n *\n * @return {string[]} Valid alignments.\n */\nexport function getValidAlignments(\n\tblockAlign,\n\thasWideBlockSupport = true,\n\thasWideEnabled = true\n) {\n\tlet validAlignments;\n\tif ( Array.isArray( blockAlign ) ) {\n\t\tvalidAlignments = ALL_ALIGNMENTS.filter( ( value ) =>\n\t\t\tblockAlign.includes( value )\n\t\t);\n\t} else if ( blockAlign === true ) {\n\t\t// `true` includes all alignments...\n\t\tvalidAlignments = [ ...ALL_ALIGNMENTS ];\n\t} else {\n\t\tvalidAlignments = [];\n\t}\n\n\tif (\n\t\t! hasWideEnabled ||\n\t\t( blockAlign === true && ! hasWideBlockSupport )\n\t) {\n\t\treturn validAlignments.filter(\n\t\t\t( alignment ) => ! WIDE_ALIGNMENTS.includes( alignment )\n\t\t);\n\t}\n\n\treturn validAlignments;\n}\n\n/**\n * Filters registered block settings, extending attributes to include `align`.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addAttribute( settings ) {\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( 'type' in ( settings.attributes?.align ?? {} ) ) {\n\t\treturn settings;\n\t}\n\tif ( hasBlockSupport( settings, 'align' ) ) {\n\t\t// Gracefully handle if settings.attributes is undefined.\n\t\tsettings.attributes = {\n\t\t\t...settings.attributes,\n\t\t\talign: {\n\t\t\t\ttype: 'string',\n\t\t\t\t// Allow for '' since it is used by updateAlignment function\n\t\t\t\t// in withToolbarControls for special cases with defined default values.\n\t\t\t\tenum: [ ...ALL_ALIGNMENTS, '' ],\n\t\t\t},\n\t\t};\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override the default edit UI to include new toolbar controls for block\n * alignment, if block defines support.\n *\n * @param {Function} BlockEdit Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withToolbarControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst blockEdit = <BlockEdit key=\"edit\" { ...props } />;\n\t\tconst { name: blockName } = props;\n\t\t// Compute the block valid alignments by taking into account,\n\t\t// if the theme supports wide alignments or not and the layout's\n\t\t// availble alignments. We do that for conditionally rendering\n\t\t// Slot.\n\t\tconst blockAllowedAlignments = getValidAlignments(\n\t\t\tgetBlockSupport( blockName, 'align' ),\n\t\t\thasBlockSupport( blockName, 'alignWide', true )\n\t\t);\n\n\t\tconst validAlignments = useAvailableAlignments(\n\t\t\tblockAllowedAlignments\n\t\t).map( ( { name } ) => name );\n\t\tconst blockEditingMode = useBlockEditingMode();\n\t\tif ( ! validAlignments.length || blockEditingMode !== 'default' ) {\n\t\t\treturn blockEdit;\n\t\t}\n\n\t\tconst updateAlignment = ( nextAlign ) => {\n\t\t\tif ( ! nextAlign ) {\n\t\t\t\tconst blockType = getBlockType( props.name );\n\t\t\t\tconst blockDefaultAlign = blockType?.attributes?.align?.default;\n\t\t\t\tif ( blockDefaultAlign ) {\n\t\t\t\t\tnextAlign = '';\n\t\t\t\t}\n\t\t\t}\n\t\t\tprops.setAttributes( { align: nextAlign } );\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockControls group=\"block\" __experimentalShareWithChildBlocks>\n\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\tvalue={ props.attributes.align }\n\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t\tcontrols={ validAlignments }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t{ blockEdit }\n\t\t\t</>\n\t\t);\n\t},\n\t'withToolbarControls'\n);\n\n/**\n * Override the default block element to add alignment wrapper props.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withDataAlign = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst { align } = attributes;\n\t\tconst blockAllowedAlignments = getValidAlignments(\n\t\t\tgetBlockSupport( name, 'align' ),\n\t\t\thasBlockSupport( name, 'alignWide', true )\n\t\t);\n\t\tconst validAlignments = useAvailableAlignments(\n\t\t\tblockAllowedAlignments\n\t\t);\n\n\t\t// If an alignment is not assigned, there's no need to go through the\n\t\t// effort to validate or assign its value.\n\t\tif ( align === undefined ) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\n\t\tlet wrapperProps = props.wrapperProps;\n\t\tif (\n\t\t\tvalidAlignments.some( ( alignment ) => alignment.name === align )\n\t\t) {\n\t\t\twrapperProps = { ...wrapperProps, 'data-align': align };\n\t\t}\n\n\t\treturn <BlockListBlock { ...props } wrapperProps={ wrapperProps } />;\n\t},\n\t'withDataAlign'\n);\n\n/**\n * Override props assigned to save component to inject alignment class name if\n * block supports it.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addAssignedAlign( props, blockType, attributes ) {\n\tconst { align } = attributes;\n\tconst blockAlign = getBlockSupport( blockType, 'align' );\n\tconst hasWideBlockSupport = hasBlockSupport( blockType, 'alignWide', true );\n\n\t// Compute valid alignments without taking into account if\n\t// the theme supports wide alignments or not.\n\t// This way changing themes does not impact the block save.\n\tconst isAlignValid = getValidAlignments(\n\t\tblockAlign,\n\t\thasWideBlockSupport\n\t).includes( align );\n\tif ( isAlignValid ) {\n\t\tprops.className = classnames( `align${ align }`, props.className );\n\t}\n\n\treturn props;\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/align/addAttribute',\n\taddAttribute\n);\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/editor/align/with-data-align',\n\twithDataAlign\n);\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/align/with-toolbar-controls',\n\twithToolbarControls\n);\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/align/addAssignedAlign',\n\taddAssignedAlign\n);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_compose","_hooks","_blocks","_components","_useAvailableAlignments","_blockEditingMode","ALL_ALIGNMENTS","WIDE_ALIGNMENTS","getValidAlignments","blockAlign","hasWideBlockSupport","hasWideEnabled","validAlignments","Array","isArray","filter","value","includes","alignment","addAttribute","settings","_settings$attributes$","attributes","align","hasBlockSupport","type","enum","withToolbarControls","createHigherOrderComponent","BlockEdit","props","blockEdit","_react","createElement","key","name","blockName","blockAllowedAlignments","getBlockSupport","useAvailableAlignments","map","blockEditingMode","useBlockEditingMode","length","updateAlignment","nextAlign","blockType","getBlockType","blockDefaultAlign","default","setAttributes","Fragment","BlockControls","group","__experimentalShareWithChildBlocks","BlockAlignmentControl","onChange","controls","exports","withDataAlign","BlockListBlock","undefined","wrapperProps","some","addAssignedAlign","isAlignValid","className","classnames","addFilter"],"sources":["@wordpress/block-editor/src/hooks/align.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\nimport {\n\tgetBlockSupport,\n\tgetBlockType,\n\thasBlockSupport,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { BlockControls, BlockAlignmentControl } from '../components';\nimport useAvailableAlignments from '../components/block-alignment-control/use-available-alignments';\nimport { useBlockEditingMode } from '../components/block-editing-mode';\n\n/**\n * An array which includes all possible valid alignments,\n * used to validate if an alignment is valid or not.\n *\n * @constant\n * @type {string[]}\n */\nconst ALL_ALIGNMENTS = [ 'left', 'center', 'right', 'wide', 'full' ];\n\n/**\n * An array which includes all wide alignments.\n * In order for this alignments to be valid they need to be supported by the block,\n * and by the theme.\n *\n * @constant\n * @type {string[]}\n */\nconst WIDE_ALIGNMENTS = [ 'wide', 'full' ];\n\n/**\n * Returns the valid alignments.\n * Takes into consideration the aligns supported by a block, if the block supports wide controls or not and if theme supports wide controls or not.\n * Exported just for testing purposes, not exported outside the module.\n *\n * @param {?boolean|string[]} blockAlign Aligns supported by the block.\n * @param {?boolean} hasWideBlockSupport True if block supports wide alignments. And False otherwise.\n * @param {?boolean} hasWideEnabled True if theme supports wide alignments. And False otherwise.\n *\n * @return {string[]} Valid alignments.\n */\nexport function getValidAlignments(\n\tblockAlign,\n\thasWideBlockSupport = true,\n\thasWideEnabled = true\n) {\n\tlet validAlignments;\n\tif ( Array.isArray( blockAlign ) ) {\n\t\tvalidAlignments = ALL_ALIGNMENTS.filter( ( value ) =>\n\t\t\tblockAlign.includes( value )\n\t\t);\n\t} else if ( blockAlign === true ) {\n\t\t// `true` includes all alignments...\n\t\tvalidAlignments = [ ...ALL_ALIGNMENTS ];\n\t} else {\n\t\tvalidAlignments = [];\n\t}\n\n\tif (\n\t\t! hasWideEnabled ||\n\t\t( blockAlign === true && ! hasWideBlockSupport )\n\t) {\n\t\treturn validAlignments.filter(\n\t\t\t( alignment ) => ! WIDE_ALIGNMENTS.includes( alignment )\n\t\t);\n\t}\n\n\treturn validAlignments;\n}\n\n/**\n * Filters registered block settings, extending attributes to include `align`.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addAttribute( settings ) {\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( 'type' in ( settings.attributes?.align ?? {} ) ) {\n\t\treturn settings;\n\t}\n\tif ( hasBlockSupport( settings, 'align' ) ) {\n\t\t// Gracefully handle if settings.attributes is undefined.\n\t\tsettings.attributes = {\n\t\t\t...settings.attributes,\n\t\t\talign: {\n\t\t\t\ttype: 'string',\n\t\t\t\t// Allow for '' since it is used by updateAlignment function\n\t\t\t\t// in withToolbarControls for special cases with defined default values.\n\t\t\t\tenum: [ ...ALL_ALIGNMENTS, '' ],\n\t\t\t},\n\t\t};\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override the default edit UI to include new toolbar controls for block\n * alignment, if block defines support.\n *\n * @param {Function} BlockEdit Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withToolbarControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst blockEdit = <BlockEdit key=\"edit\" { ...props } />;\n\t\tconst { name: blockName } = props;\n\t\t// Compute the block valid alignments by taking into account,\n\t\t// if the theme supports wide alignments or not and the layout's\n\t\t// availble alignments. We do that for conditionally rendering\n\t\t// Slot.\n\t\tconst blockAllowedAlignments = getValidAlignments(\n\t\t\tgetBlockSupport( blockName, 'align' ),\n\t\t\thasBlockSupport( blockName, 'alignWide', true )\n\t\t);\n\n\t\tconst validAlignments = useAvailableAlignments(\n\t\t\tblockAllowedAlignments\n\t\t).map( ( { name } ) => name );\n\t\tconst blockEditingMode = useBlockEditingMode();\n\t\tif ( ! validAlignments.length || blockEditingMode !== 'default' ) {\n\t\t\treturn blockEdit;\n\t\t}\n\n\t\tconst updateAlignment = ( nextAlign ) => {\n\t\t\tif ( ! nextAlign ) {\n\t\t\t\tconst blockType = getBlockType( props.name );\n\t\t\t\tconst blockDefaultAlign = blockType?.attributes?.align?.default;\n\t\t\t\tif ( blockDefaultAlign ) {\n\t\t\t\t\tnextAlign = '';\n\t\t\t\t}\n\t\t\t}\n\t\t\tprops.setAttributes( { align: nextAlign } );\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockControls group=\"block\" __experimentalShareWithChildBlocks>\n\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\tvalue={ props.attributes.align }\n\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t\tcontrols={ validAlignments }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t{ blockEdit }\n\t\t\t</>\n\t\t);\n\t},\n\t'withToolbarControls'\n);\n\n/**\n * Override the default block element to add alignment wrapper props.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withDataAlign = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst { align } = attributes;\n\t\tconst blockAllowedAlignments = getValidAlignments(\n\t\t\tgetBlockSupport( name, 'align' ),\n\t\t\thasBlockSupport( name, 'alignWide', true )\n\t\t);\n\t\tconst validAlignments = useAvailableAlignments(\n\t\t\tblockAllowedAlignments\n\t\t);\n\n\t\t// If an alignment is not assigned, there's no need to go through the\n\t\t// effort to validate or assign its value.\n\t\tif ( align === undefined ) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\n\t\tlet wrapperProps = props.wrapperProps;\n\t\tif (\n\t\t\tvalidAlignments.some( ( alignment ) => alignment.name === align )\n\t\t) {\n\t\t\twrapperProps = { ...wrapperProps, 'data-align': align };\n\t\t}\n\n\t\treturn <BlockListBlock { ...props } wrapperProps={ wrapperProps } />;\n\t},\n\t'withDataAlign'\n);\n\n/**\n * Override props assigned to save component to inject alignment class name if\n * block supports it.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addAssignedAlign( props, blockType, attributes ) {\n\tconst { align } = attributes;\n\tconst blockAlign = getBlockSupport( blockType, 'align' );\n\tconst hasWideBlockSupport = hasBlockSupport( blockType, 'alignWide', true );\n\n\t// Compute valid alignments without taking into account if\n\t// the theme supports wide alignments or not.\n\t// This way changing themes does not impact the block save.\n\tconst isAlignValid = getValidAlignments(\n\t\tblockAlign,\n\t\thasWideBlockSupport\n\t).includes( align );\n\tif ( isAlignValid ) {\n\t\tprops.className = classnames( `align${ align }`, props.className );\n\t}\n\n\treturn props;\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/align/addAttribute',\n\taddAttribute\n);\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/editor/align/with-data-align',\n\twithDataAlign\n);\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/align/with-toolbar-controls',\n\twithToolbarControls\n);\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/align/addAssignedAlign',\n\taddAssignedAlign\n);\n"],"mappings":";;;;;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AASA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,uBAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AArBA;AACA;AACA;;AAGA;AACA;AACA;;AASA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMO,cAAc,GAAG,CAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAE;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,eAAe,GAAG,CAAE,MAAM,EAAE,MAAM,CAAE;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CACjCC,UAAU,EACVC,mBAAmB,GAAG,IAAI,EAC1BC,cAAc,GAAG,IAAI,EACpB;EACD,IAAIC,eAAe;EACnB,IAAKC,KAAK,CAACC,OAAO,CAAEL,UAAW,CAAC,EAAG;IAClCG,eAAe,GAAGN,cAAc,CAACS,MAAM,CAAIC,KAAK,IAC/CP,UAAU,CAACQ,QAAQ,CAAED,KAAM,CAC5B,CAAC;EACF,CAAC,MAAM,IAAKP,UAAU,KAAK,IAAI,EAAG;IACjC;IACAG,eAAe,GAAG,CAAE,GAAGN,cAAc,CAAE;EACxC,CAAC,MAAM;IACNM,eAAe,GAAG,EAAE;EACrB;EAEA,IACC,CAAED,cAAc,IACdF,UAAU,KAAK,IAAI,IAAI,CAAEC,mBAAqB,EAC/C;IACD,OAAOE,eAAe,CAACG,MAAM,CAC1BG,SAAS,IAAM,CAAEX,eAAe,CAACU,QAAQ,CAAEC,SAAU,CACxD,CAAC;EACF;EAEA,OAAON,eAAe;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASO,YAAYA,CAAEC,QAAQ,EAAG;EAAA,IAAAC,qBAAA;EACxC;EACA,IAAK,MAAM,MAAAA,qBAAA,GAAMD,QAAQ,CAACE,UAAU,EAAEC,KAAK,cAAAF,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC,CAAE,EAAG;IACrD,OAAOD,QAAQ;EAChB;EACA,IAAK,IAAAI,uBAAe,EAAEJ,QAAQ,EAAE,OAAQ,CAAC,EAAG;IAC3C;IACAA,QAAQ,CAACE,UAAU,GAAG;MACrB,GAAGF,QAAQ,CAACE,UAAU;MACtBC,KAAK,EAAE;QACNE,IAAI,EAAE,QAAQ;QACd;QACA;QACAC,IAAI,EAAE,CAAE,GAAGpB,cAAc,EAAE,EAAE;MAC9B;IACD,CAAC;EACF;EAEA,OAAOc,QAAQ;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMO,mBAAmB,GAAG,IAAAC,mCAA0B,EAC1DC,SAAS,IAAQC,KAAK,IAAM;EAC7B,MAAMC,SAAS,GAAG,IAAAC,MAAA,CAAAC,aAAA,EAACJ,SAAS;IAACK,GAAG,EAAC,MAAM;IAAA,GAAMJ;EAAK,CAAI,CAAC;EACvD,MAAM;IAAEK,IAAI,EAAEC;EAAU,CAAC,GAAGN,KAAK;EACjC;EACA;EACA;EACA;EACA,MAAMO,sBAAsB,GAAG7B,kBAAkB,CAChD,IAAA8B,uBAAe,EAAEF,SAAS,EAAE,OAAQ,CAAC,EACrC,IAAAZ,uBAAe,EAAEY,SAAS,EAAE,WAAW,EAAE,IAAK,CAC/C,CAAC;EAED,MAAMxB,eAAe,GAAG,IAAA2B,+BAAsB,EAC7CF,sBACD,CAAC,CAACG,GAAG,CAAE,CAAE;IAAEL;EAAK,CAAC,KAAMA,IAAK,CAAC;EAC7B,MAAMM,gBAAgB,GAAG,IAAAC,qCAAmB,EAAC,CAAC;EAC9C,IAAK,CAAE9B,eAAe,CAAC+B,MAAM,IAAIF,gBAAgB,KAAK,SAAS,EAAG;IACjE,OAAOV,SAAS;EACjB;EAEA,MAAMa,eAAe,GAAKC,SAAS,IAAM;IACxC,IAAK,CAAEA,SAAS,EAAG;MAClB,MAAMC,SAAS,GAAG,IAAAC,oBAAY,EAAEjB,KAAK,CAACK,IAAK,CAAC;MAC5C,MAAMa,iBAAiB,GAAGF,SAAS,EAAExB,UAAU,EAAEC,KAAK,EAAE0B,OAAO;MAC/D,IAAKD,iBAAiB,EAAG;QACxBH,SAAS,GAAG,EAAE;MACf;IACD;IACAf,KAAK,CAACoB,aAAa,CAAE;MAAE3B,KAAK,EAAEsB;IAAU,CAAE,CAAC;EAC5C,CAAC;EAED,OACC,IAAAb,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAmB,QAAA,QACC,IAAAnB,MAAA,CAAAC,aAAA,EAAC9B,WAAA,CAAAiD,aAAa;IAACC,KAAK,EAAC,OAAO;IAACC,kCAAkC;EAAA,GAC9D,IAAAtB,MAAA,CAAAC,aAAA,EAAC9B,WAAA,CAAAoD,qBAAqB;IACrBvC,KAAK,EAAGc,KAAK,CAACR,UAAU,CAACC,KAAO;IAChCiC,QAAQ,EAAGZ,eAAiB;IAC5Ba,QAAQ,EAAG7C;EAAiB,CAC5B,CACa,CAAC,EACdmB,SACD,CAAC;AAEL,CAAC,EACD,qBACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AANA2B,OAAA,CAAA/B,mBAAA,GAAAA,mBAAA;AAOO,MAAMgC,aAAa,GAAG,IAAA/B,mCAA0B,EACpDgC,cAAc,IAAQ9B,KAAK,IAAM;EAClC,MAAM;IAAEK,IAAI;IAAEb;EAAW,CAAC,GAAGQ,KAAK;EAClC,MAAM;IAAEP;EAAM,CAAC,GAAGD,UAAU;EAC5B,MAAMe,sBAAsB,GAAG7B,kBAAkB,CAChD,IAAA8B,uBAAe,EAAEH,IAAI,EAAE,OAAQ,CAAC,EAChC,IAAAX,uBAAe,EAAEW,IAAI,EAAE,WAAW,EAAE,IAAK,CAC1C,CAAC;EACD,MAAMvB,eAAe,GAAG,IAAA2B,+BAAsB,EAC7CF,sBACD,CAAC;;EAED;EACA;EACA,IAAKd,KAAK,KAAKsC,SAAS,EAAG;IAC1B,OAAO,IAAA7B,MAAA,CAAAC,aAAA,EAAC2B,cAAc;MAAA,GAAM9B;IAAK,CAAI,CAAC;EACvC;EAEA,IAAIgC,YAAY,GAAGhC,KAAK,CAACgC,YAAY;EACrC,IACClD,eAAe,CAACmD,IAAI,CAAI7C,SAAS,IAAMA,SAAS,CAACiB,IAAI,KAAKZ,KAAM,CAAC,EAChE;IACDuC,YAAY,GAAG;MAAE,GAAGA,YAAY;MAAE,YAAY,EAAEvC;IAAM,CAAC;EACxD;EAEA,OAAO,IAAAS,MAAA,CAAAC,aAAA,EAAC2B,cAAc;IAAA,GAAM9B,KAAK;IAAGgC,YAAY,EAAGA;EAAc,CAAE,CAAC;AACrE,CAAC,EACD,eACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATAJ,OAAA,CAAAC,aAAA,GAAAA,aAAA;AAUO,SAASK,gBAAgBA,CAAElC,KAAK,EAAEgB,SAAS,EAAExB,UAAU,EAAG;EAChE,MAAM;IAAEC;EAAM,CAAC,GAAGD,UAAU;EAC5B,MAAMb,UAAU,GAAG,IAAA6B,uBAAe,EAAEQ,SAAS,EAAE,OAAQ,CAAC;EACxD,MAAMpC,mBAAmB,GAAG,IAAAc,uBAAe,EAAEsB,SAAS,EAAE,WAAW,EAAE,IAAK,CAAC;;EAE3E;EACA;EACA;EACA,MAAMmB,YAAY,GAAGzD,kBAAkB,CACtCC,UAAU,EACVC,mBACD,CAAC,CAACO,QAAQ,CAAEM,KAAM,CAAC;EACnB,IAAK0C,YAAY,EAAG;IACnBnC,KAAK,CAACoC,SAAS,GAAG,IAAAC,mBAAU,EAAG,QAAQ5C,KAAO,EAAC,EAAEO,KAAK,CAACoC,SAAU,CAAC;EACnE;EAEA,OAAOpC,KAAK;AACb;AAEA,IAAAsC,gBAAS,EACR,0BAA0B,EAC1B,yBAAyB,EACzBjD,YACD,CAAC;AACD,IAAAiD,gBAAS,EACR,uBAAuB,EACvB,mCAAmC,EACnCT,aACD,CAAC;AACD,IAAAS,gBAAS,EACR,kBAAkB,EAClB,yCAAyC,EACzCzC,mBACD,CAAC;AACD,IAAAyC,gBAAS,EACR,kCAAkC,EAClC,6BAA6B,EAC7BJ,gBACD,CAAC"}
@@ -6,12 +6,13 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.addAttribute = addAttribute;
7
7
  exports.addSaveProps = addSaveProps;
8
8
  exports.withInspectorControl = void 0;
9
- var _element = require("@wordpress/element");
9
+ var _react = require("react");
10
10
  var _hooks = require("@wordpress/hooks");
11
11
  var _components = require("@wordpress/components");
12
12
  var _i18n = require("@wordpress/i18n");
13
13
  var _blocks = require("@wordpress/blocks");
14
14
  var _compose = require("@wordpress/compose");
15
+ var _element = require("@wordpress/element");
15
16
  var _components2 = require("../components");
16
17
  var _blockEditingMode = require("../components/block-editing-mode");
17
18
  /**
@@ -63,9 +64,9 @@ function addAttribute(settings) {
63
64
  * Override the default edit UI to include a new block inspector control for
64
65
  * assigning the anchor ID, if block supports anchor.
65
66
  *
66
- * @param {WPComponent} BlockEdit Original component.
67
+ * @param {Component} BlockEdit Original component.
67
68
  *
68
- * @return {WPComponent} Wrapped component.
69
+ * @return {Component} Wrapped component.
69
70
  */
70
71
  const withInspectorControl = (0, _compose.createHigherOrderComponent)(BlockEdit => {
71
72
  return props => {
@@ -73,11 +74,11 @@ const withInspectorControl = (0, _compose.createHigherOrderComponent)(BlockEdit
73
74
  const blockEditingMode = (0, _blockEditingMode.useBlockEditingMode)();
74
75
  if (hasAnchor && props.isSelected) {
75
76
  const isWeb = _element.Platform.OS === 'web';
76
- const textControl = (0, _element.createElement)(_components.TextControl, {
77
+ const textControl = (0, _react.createElement)(_components.TextControl, {
77
78
  __nextHasNoMarginBottom: true,
78
79
  className: "html-anchor-control",
79
80
  label: (0, _i18n.__)('HTML anchor'),
80
- help: (0, _element.createElement)(_element.Fragment, null, (0, _i18n.__)('Enter a word or two — without spaces — to make a unique web address just for this block, called an “anchor.” Then, you’ll be able to link directly to this section of your page.'), isWeb && (0, _element.createElement)(_components.ExternalLink, {
81
+ help: (0, _react.createElement)(_react.Fragment, null, (0, _i18n.__)('Enter a word or two — without spaces — to make a unique web address just for this block, called an “anchor.” Then, you’ll be able to link directly to this section of your page.'), isWeb && (0, _react.createElement)(_components.ExternalLink, {
81
82
  href: (0, _i18n.__)('https://wordpress.org/documentation/article/page-jumps/')
82
83
  }, (0, _i18n.__)('Learn more about anchors'))),
83
84
  value: props.attributes.anchor || '',
@@ -91,15 +92,15 @@ const withInspectorControl = (0, _compose.createHigherOrderComponent)(BlockEdit
91
92
  autoCapitalize: "none",
92
93
  autoComplete: "off"
93
94
  });
94
- return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(BlockEdit, {
95
+ return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(BlockEdit, {
95
96
  ...props
96
- }), isWeb && blockEditingMode === 'default' && (0, _element.createElement)(_components2.InspectorControls, {
97
+ }), isWeb && blockEditingMode === 'default' && (0, _react.createElement)(_components2.InspectorControls, {
97
98
  group: "advanced"
98
- }, textControl), !isWeb && props.name === 'core/heading' && (0, _element.createElement)(_components2.InspectorControls, null, (0, _element.createElement)(_components.PanelBody, {
99
+ }, textControl), !isWeb && props.name === 'core/heading' && (0, _react.createElement)(_components2.InspectorControls, null, (0, _react.createElement)(_components.PanelBody, {
99
100
  title: (0, _i18n.__)('Heading settings')
100
101
  }, textControl)));
101
102
  }
102
- return (0, _element.createElement)(BlockEdit, {
103
+ return (0, _react.createElement)(BlockEdit, {
103
104
  ...props
104
105
  });
105
106
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_hooks","_components","_i18n","_blocks","_compose","_components2","_blockEditingMode","ANCHOR_REGEX","ANCHOR_SCHEMA","type","source","attribute","selector","addAttribute","settings","_settings$attributes$","attributes","anchor","hasBlockSupport","withInspectorControl","createHigherOrderComponent","BlockEdit","props","hasAnchor","name","blockEditingMode","useBlockEditingMode","isSelected","isWeb","Platform","OS","textControl","createElement","TextControl","__nextHasNoMarginBottom","className","label","__","help","Fragment","ExternalLink","href","value","placeholder","onChange","nextValue","replace","setAttributes","autoCapitalize","autoComplete","InspectorControls","group","PanelBody","title","exports","addSaveProps","extraProps","blockType","id","addFilter"],"sources":["@wordpress/block-editor/src/hooks/anchor.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { PanelBody, TextControl, ExternalLink } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { InspectorControls } from '../components';\nimport { useBlockEditingMode } from '../components/block-editing-mode';\n\n/**\n * Regular expression matching invalid anchor characters for replacement.\n *\n * @type {RegExp}\n */\nconst ANCHOR_REGEX = /[\\s#]/g;\n\nconst ANCHOR_SCHEMA = {\n\ttype: 'string',\n\tsource: 'attribute',\n\tattribute: 'id',\n\tselector: '*',\n};\n\n/**\n * Filters registered block settings, extending attributes with anchor using ID\n * of the first node.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addAttribute( settings ) {\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( 'type' in ( settings.attributes?.anchor ?? {} ) ) {\n\t\treturn settings;\n\t}\n\tif ( hasBlockSupport( settings, 'anchor' ) ) {\n\t\t// Gracefully handle if settings.attributes is undefined.\n\t\tsettings.attributes = {\n\t\t\t...settings.attributes,\n\t\t\tanchor: ANCHOR_SCHEMA,\n\t\t};\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override the default edit UI to include a new block inspector control for\n * assigning the anchor ID, if block supports anchor.\n *\n * @param {WPComponent} BlockEdit Original component.\n *\n * @return {WPComponent} Wrapped component.\n */\nexport const withInspectorControl = createHigherOrderComponent(\n\t( BlockEdit ) => {\n\t\treturn ( props ) => {\n\t\t\tconst hasAnchor = hasBlockSupport( props.name, 'anchor' );\n\t\t\tconst blockEditingMode = useBlockEditingMode();\n\n\t\t\tif ( hasAnchor && props.isSelected ) {\n\t\t\t\tconst isWeb = Platform.OS === 'web';\n\t\t\t\tconst textControl = (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tclassName=\"html-anchor-control\"\n\t\t\t\t\t\tlabel={ __( 'HTML anchor' ) }\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Enter a word or two — without spaces — to make a unique web address just for this block, called an “anchor.” Then, you’ll be able to link directly to this section of your page.'\n\t\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t\t{ isWeb && (\n\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/page-jumps/'\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\t\t{ __( 'Learn more about anchors' ) }\n\t\t\t\t\t\t\t\t\t</ExternalLink>\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\tvalue={ props.attributes.anchor || '' }\n\t\t\t\t\t\tplaceholder={ ! isWeb ? __( 'Add an anchor' ) : null }\n\t\t\t\t\t\tonChange={ ( nextValue ) => {\n\t\t\t\t\t\t\tnextValue = nextValue.replace( ANCHOR_REGEX, '-' );\n\t\t\t\t\t\t\tprops.setAttributes( {\n\t\t\t\t\t\t\t\tanchor: nextValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockEdit { ...props } />\n\t\t\t\t\t\t{ isWeb && blockEditingMode === 'default' && (\n\t\t\t\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t\t\t\t{ textControl }\n\t\t\t\t\t\t\t</InspectorControls>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t * We plan to remove scoping anchors to 'core/heading' to support\n\t\t\t\t\t\t * anchors for all eligble blocks. Additionally we plan to explore\n\t\t\t\t\t\t * leveraging InspectorAdvancedControls instead of a custom\n\t\t\t\t\t\t * PanelBody title. https://github.com/WordPress/gutenberg/issues/28363\n\t\t\t\t\t\t */ }\n\t\t\t\t\t\t{ ! isWeb && props.name === 'core/heading' && (\n\t\t\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t\t\t<PanelBody title={ __( 'Heading settings' ) }>\n\t\t\t\t\t\t\t\t\t{ textControl }\n\t\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t\t</InspectorControls>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn <BlockEdit { ...props } />;\n\t\t};\n\t},\n\t'withInspectorControl'\n);\n\n/**\n * Override props assigned to save component to inject anchor ID, if block\n * supports anchor. This is only applied if the block's save result is an\n * element and not a markup string.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addSaveProps( extraProps, blockType, attributes ) {\n\tif ( hasBlockSupport( blockType, 'anchor' ) ) {\n\t\textraProps.id = attributes.anchor === '' ? null : attributes.anchor;\n\t}\n\n\treturn extraProps;\n}\n\naddFilter( 'blocks.registerBlockType', 'core/anchor/attribute', addAttribute );\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/anchor/with-inspector-control',\n\twithInspectorControl\n);\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/anchor/save-props',\n\taddSaveProps\n);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_hooks","require","_components","_i18n","_blocks","_compose","_element","_components2","_blockEditingMode","ANCHOR_REGEX","ANCHOR_SCHEMA","type","source","attribute","selector","addAttribute","settings","_settings$attributes$","attributes","anchor","hasBlockSupport","withInspectorControl","createHigherOrderComponent","BlockEdit","props","hasAnchor","name","blockEditingMode","useBlockEditingMode","isSelected","isWeb","Platform","OS","textControl","_react","createElement","TextControl","__nextHasNoMarginBottom","className","label","__","help","Fragment","ExternalLink","href","value","placeholder","onChange","nextValue","replace","setAttributes","autoCapitalize","autoComplete","InspectorControls","group","PanelBody","title","exports","addSaveProps","extraProps","blockType","id","addFilter"],"sources":["@wordpress/block-editor/src/hooks/anchor.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { PanelBody, TextControl, ExternalLink } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { InspectorControls } from '../components';\nimport { useBlockEditingMode } from '../components/block-editing-mode';\n\n/**\n * Regular expression matching invalid anchor characters for replacement.\n *\n * @type {RegExp}\n */\nconst ANCHOR_REGEX = /[\\s#]/g;\n\nconst ANCHOR_SCHEMA = {\n\ttype: 'string',\n\tsource: 'attribute',\n\tattribute: 'id',\n\tselector: '*',\n};\n\n/**\n * Filters registered block settings, extending attributes with anchor using ID\n * of the first node.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addAttribute( settings ) {\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( 'type' in ( settings.attributes?.anchor ?? {} ) ) {\n\t\treturn settings;\n\t}\n\tif ( hasBlockSupport( settings, 'anchor' ) ) {\n\t\t// Gracefully handle if settings.attributes is undefined.\n\t\tsettings.attributes = {\n\t\t\t...settings.attributes,\n\t\t\tanchor: ANCHOR_SCHEMA,\n\t\t};\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override the default edit UI to include a new block inspector control for\n * assigning the anchor ID, if block supports anchor.\n *\n * @param {Component} BlockEdit Original component.\n *\n * @return {Component} Wrapped component.\n */\nexport const withInspectorControl = createHigherOrderComponent(\n\t( BlockEdit ) => {\n\t\treturn ( props ) => {\n\t\t\tconst hasAnchor = hasBlockSupport( props.name, 'anchor' );\n\t\t\tconst blockEditingMode = useBlockEditingMode();\n\n\t\t\tif ( hasAnchor && props.isSelected ) {\n\t\t\t\tconst isWeb = Platform.OS === 'web';\n\t\t\t\tconst textControl = (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tclassName=\"html-anchor-control\"\n\t\t\t\t\t\tlabel={ __( 'HTML anchor' ) }\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Enter a word or two — without spaces — to make a unique web address just for this block, called an “anchor.” Then, you’ll be able to link directly to this section of your page.'\n\t\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t\t{ isWeb && (\n\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/page-jumps/'\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\t\t{ __( 'Learn more about anchors' ) }\n\t\t\t\t\t\t\t\t\t</ExternalLink>\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\tvalue={ props.attributes.anchor || '' }\n\t\t\t\t\t\tplaceholder={ ! isWeb ? __( 'Add an anchor' ) : null }\n\t\t\t\t\t\tonChange={ ( nextValue ) => {\n\t\t\t\t\t\t\tnextValue = nextValue.replace( ANCHOR_REGEX, '-' );\n\t\t\t\t\t\t\tprops.setAttributes( {\n\t\t\t\t\t\t\t\tanchor: nextValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockEdit { ...props } />\n\t\t\t\t\t\t{ isWeb && blockEditingMode === 'default' && (\n\t\t\t\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t\t\t\t{ textControl }\n\t\t\t\t\t\t\t</InspectorControls>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t * We plan to remove scoping anchors to 'core/heading' to support\n\t\t\t\t\t\t * anchors for all eligble blocks. Additionally we plan to explore\n\t\t\t\t\t\t * leveraging InspectorAdvancedControls instead of a custom\n\t\t\t\t\t\t * PanelBody title. https://github.com/WordPress/gutenberg/issues/28363\n\t\t\t\t\t\t */ }\n\t\t\t\t\t\t{ ! isWeb && props.name === 'core/heading' && (\n\t\t\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t\t\t<PanelBody title={ __( 'Heading settings' ) }>\n\t\t\t\t\t\t\t\t\t{ textControl }\n\t\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t\t</InspectorControls>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn <BlockEdit { ...props } />;\n\t\t};\n\t},\n\t'withInspectorControl'\n);\n\n/**\n * Override props assigned to save component to inject anchor ID, if block\n * supports anchor. This is only applied if the block's save result is an\n * element and not a markup string.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addSaveProps( extraProps, blockType, attributes ) {\n\tif ( hasBlockSupport( blockType, 'anchor' ) ) {\n\t\textraProps.id = attributes.anchor === '' ? null : attributes.anchor;\n\t}\n\n\treturn extraProps;\n}\n\naddFilter( 'blocks.registerBlockType', 'core/anchor/attribute', addAttribute );\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/anchor/with-inspector-control',\n\twithInspectorControl\n);\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/anchor/save-props',\n\taddSaveProps\n);\n"],"mappings":";;;;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAKA,IAAAM,YAAA,GAAAN,OAAA;AACA,IAAAO,iBAAA,GAAAP,OAAA;AAdA;AACA;AACA;;AAQA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA,MAAMQ,YAAY,GAAG,QAAQ;AAE7B,MAAMC,aAAa,GAAG;EACrBC,IAAI,EAAE,QAAQ;EACdC,MAAM,EAAE,WAAW;EACnBC,SAAS,EAAE,IAAI;EACfC,QAAQ,EAAE;AACX,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,YAAYA,CAAEC,QAAQ,EAAG;EAAA,IAAAC,qBAAA;EACxC;EACA,IAAK,MAAM,MAAAA,qBAAA,GAAMD,QAAQ,CAACE,UAAU,EAAEC,MAAM,cAAAF,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC,CAAE,EAAG;IACtD,OAAOD,QAAQ;EAChB;EACA,IAAK,IAAAI,uBAAe,EAAEJ,QAAQ,EAAE,QAAS,CAAC,EAAG;IAC5C;IACAA,QAAQ,CAACE,UAAU,GAAG;MACrB,GAAGF,QAAQ,CAACE,UAAU;MACtBC,MAAM,EAAET;IACT,CAAC;EACF;EAEA,OAAOM,QAAQ;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMK,oBAAoB,GAAG,IAAAC,mCAA0B,EAC3DC,SAAS,IAAM;EAChB,OAASC,KAAK,IAAM;IACnB,MAAMC,SAAS,GAAG,IAAAL,uBAAe,EAAEI,KAAK,CAACE,IAAI,EAAE,QAAS,CAAC;IACzD,MAAMC,gBAAgB,GAAG,IAAAC,qCAAmB,EAAC,CAAC;IAE9C,IAAKH,SAAS,IAAID,KAAK,CAACK,UAAU,EAAG;MACpC,MAAMC,KAAK,GAAGC,iBAAQ,CAACC,EAAE,KAAK,KAAK;MACnC,MAAMC,WAAW,GAChB,IAAAC,MAAA,CAAAC,aAAA,EAACjC,WAAA,CAAAkC,WAAW;QACXC,uBAAuB;QACvBC,SAAS,EAAC,qBAAqB;QAC/BC,KAAK,EAAG,IAAAC,QAAE,EAAE,aAAc,CAAG;QAC7BC,IAAI,EACH,IAAAP,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAQ,QAAA,QACG,IAAAF,QAAE,EACH,kLACD,CAAC,EAECV,KAAK,IACN,IAAAI,MAAA,CAAAC,aAAA,EAACjC,WAAA,CAAAyC,YAAY;UACZC,IAAI,EAAG,IAAAJ,QAAE,EACR,yDACD;QAAG,GAED,IAAAA,QAAE,EAAE,0BAA2B,CACpB,CAEd,CACF;QACDK,KAAK,EAAGrB,KAAK,CAACN,UAAU,CAACC,MAAM,IAAI,EAAI;QACvC2B,WAAW,EAAG,CAAEhB,KAAK,GAAG,IAAAU,QAAE,EAAE,eAAgB,CAAC,GAAG,IAAM;QACtDO,QAAQ,EAAKC,SAAS,IAAM;UAC3BA,SAAS,GAAGA,SAAS,CAACC,OAAO,CAAExC,YAAY,EAAE,GAAI,CAAC;UAClDe,KAAK,CAAC0B,aAAa,CAAE;YACpB/B,MAAM,EAAE6B;UACT,CAAE,CAAC;QACJ,CAAG;QACHG,cAAc,EAAC,MAAM;QACrBC,YAAY,EAAC;MAAK,CAClB,CACD;MAED,OACC,IAAAlB,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAQ,QAAA,QACC,IAAAR,MAAA,CAAAC,aAAA,EAACZ,SAAS;QAAA,GAAMC;MAAK,CAAI,CAAC,EACxBM,KAAK,IAAIH,gBAAgB,KAAK,SAAS,IACxC,IAAAO,MAAA,CAAAC,aAAA,EAAC5B,YAAA,CAAA8C,iBAAiB;QAACC,KAAK,EAAC;MAAU,GAChCrB,WACgB,CACnB,EAOC,CAAEH,KAAK,IAAIN,KAAK,CAACE,IAAI,KAAK,cAAc,IACzC,IAAAQ,MAAA,CAAAC,aAAA,EAAC5B,YAAA,CAAA8C,iBAAiB,QACjB,IAAAnB,MAAA,CAAAC,aAAA,EAACjC,WAAA,CAAAqD,SAAS;QAACC,KAAK,EAAG,IAAAhB,QAAE,EAAE,kBAAmB;MAAG,GAC1CP,WACQ,CACO,CAEnB,CAAC;IAEL;IAEA,OAAO,IAAAC,MAAA,CAAAC,aAAA,EAACZ,SAAS;MAAA,GAAMC;IAAK,CAAI,CAAC;EAClC,CAAC;AACF,CAAC,EACD,sBACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVAiC,OAAA,CAAApC,oBAAA,GAAAA,oBAAA;AAWO,SAASqC,YAAYA,CAAEC,UAAU,EAAEC,SAAS,EAAE1C,UAAU,EAAG;EACjE,IAAK,IAAAE,uBAAe,EAAEwC,SAAS,EAAE,QAAS,CAAC,EAAG;IAC7CD,UAAU,CAACE,EAAE,GAAG3C,UAAU,CAACC,MAAM,KAAK,EAAE,GAAG,IAAI,GAAGD,UAAU,CAACC,MAAM;EACpE;EAEA,OAAOwC,UAAU;AAClB;AAEA,IAAAG,gBAAS,EAAE,0BAA0B,EAAE,uBAAuB,EAAE/C,YAAa,CAAC;AAC9E,IAAA+C,gBAAS,EACR,kBAAkB,EAClB,2CAA2C,EAC3CzC,oBACD,CAAC;AACD,IAAAyC,gBAAS,EACR,kCAAkC,EAClC,wBAAwB,EACxBJ,YACD,CAAC"}