@wordpress/block-editor 11.7.0 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (357) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +56 -57
  3. package/build/components/block-info-slot-fill/index.js +47 -0
  4. package/build/components/block-info-slot-fill/index.js.map +1 -0
  5. package/build/components/block-inspector/index.js +4 -2
  6. package/build/components/block-inspector/index.js.map +1 -1
  7. package/build/components/block-list/index.native.js +11 -21
  8. package/build/components/block-list/index.native.js.map +1 -1
  9. package/build/components/block-list/use-in-between-inserter.js +3 -1
  10. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  11. package/build/components/block-popover/inbetween.js +2 -9
  12. package/build/components/block-popover/inbetween.js.map +1 -1
  13. package/build/components/block-settings-menu/block-settings-dropdown.js +1 -10
  14. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  15. package/build/components/block-toolbar/index.js +2 -1
  16. package/build/components/block-toolbar/index.js.map +1 -1
  17. package/build/components/block-tools/block-contextual-toolbar.js +83 -9
  18. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  19. package/build/components/block-tools/selected-block-popover.js +11 -28
  20. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  21. package/build/components/caption/index.native.js +0 -1
  22. package/build/components/caption/index.native.js.map +1 -1
  23. package/build/components/date-format-picker/index.js +1 -1
  24. package/build/components/date-format-picker/index.js.map +1 -1
  25. package/build/components/editor-styles/index.js +4 -3
  26. package/build/components/editor-styles/index.js.map +1 -1
  27. package/build/components/font-sizes/fluid-utils.js +21 -14
  28. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  29. package/build/components/global-styles/border-panel.js +15 -59
  30. package/build/components/global-styles/border-panel.js.map +1 -1
  31. package/build/components/global-styles/color-panel.js +12 -12
  32. package/build/components/global-styles/color-panel.js.map +1 -1
  33. package/build/components/global-styles/color-panel.native.js +174 -0
  34. package/build/components/global-styles/color-panel.native.js.map +1 -0
  35. package/build/components/global-styles/dimensions-panel.js +21 -20
  36. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  37. package/build/components/global-styles/effects-panel.js +244 -0
  38. package/build/components/global-styles/effects-panel.js.map +1 -0
  39. package/build/components/global-styles/filters-panel.js +215 -0
  40. package/build/components/global-styles/filters-panel.js.map +1 -0
  41. package/build/components/global-styles/get-block-css-selector.js +1 -12
  42. package/build/components/global-styles/get-block-css-selector.js.map +1 -1
  43. package/build/components/global-styles/hooks.js +7 -0
  44. package/build/components/global-styles/hooks.js.map +1 -1
  45. package/build/components/global-styles/index.js +28 -0
  46. package/build/components/global-styles/index.js.map +1 -1
  47. package/build/components/global-styles/typography-panel.js +9 -9
  48. package/build/components/global-styles/typography-panel.js.map +1 -1
  49. package/build/components/global-styles/use-global-styles-output.js +100 -82
  50. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  51. package/build/components/iframe/index.js +1 -1
  52. package/build/components/iframe/index.js.map +1 -1
  53. package/build/components/image-size-control/use-dimension-handler.js +5 -3
  54. package/build/components/image-size-control/use-dimension-handler.js.map +1 -1
  55. package/build/components/index.js +23 -0
  56. package/build/components/index.js.map +1 -1
  57. package/build/components/inserter/block-patterns-tab.js +4 -2
  58. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  59. package/build/components/inserter/block-types-tab.js +12 -7
  60. package/build/components/inserter/block-types-tab.js.map +1 -1
  61. package/build/components/inserter/index.js +2 -1
  62. package/build/components/inserter/index.js.map +1 -1
  63. package/build/components/inspector-controls/groups.js +2 -0
  64. package/build/components/inspector-controls/groups.js.map +1 -1
  65. package/build/components/inspector-controls-tabs/styles-tab.js +2 -0
  66. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  67. package/build/components/inspector-controls-tabs/utils.js +5 -3
  68. package/build/components/inspector-controls-tabs/utils.js.map +1 -1
  69. package/build/components/list-view/block-select-button.js +7 -2
  70. package/build/components/list-view/block-select-button.js.map +1 -1
  71. package/build/components/list-view/block.js +13 -21
  72. package/build/components/list-view/block.js.map +1 -1
  73. package/build/components/list-view/drop-indicator.js +37 -10
  74. package/build/components/list-view/drop-indicator.js.map +1 -1
  75. package/build/components/list-view/index.js +31 -7
  76. package/build/components/list-view/index.js.map +1 -1
  77. package/build/components/list-view/leaf.js +2 -1
  78. package/build/components/list-view/leaf.js.map +1 -1
  79. package/build/components/list-view/use-block-selection.js +1 -1
  80. package/build/components/list-view/use-block-selection.js.map +1 -1
  81. package/build/components/list-view/use-list-view-client-ids.js +7 -3
  82. package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
  83. package/build/components/list-view/use-list-view-drop-zone.js +8 -2
  84. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  85. package/build/components/media-replace-flow/index.js +5 -5
  86. package/build/components/media-replace-flow/index.js.map +1 -1
  87. package/build/components/navigable-toolbar/index.js +12 -4
  88. package/build/components/navigable-toolbar/index.js.map +1 -1
  89. package/build/components/off-canvas-editor/appender.js +2 -7
  90. package/build/components/off-canvas-editor/appender.js.map +1 -1
  91. package/build/components/off-canvas-editor/block-contents.js +6 -1
  92. package/build/components/off-canvas-editor/block-contents.js.map +1 -1
  93. package/build/components/off-canvas-editor/index.js +17 -14
  94. package/build/components/off-canvas-editor/index.js.map +1 -1
  95. package/build/components/resizable-box-popover/index.js +38 -0
  96. package/build/components/resizable-box-popover/index.js.map +1 -0
  97. package/build/components/rich-text/index.js +0 -1
  98. package/build/components/rich-text/index.js.map +1 -1
  99. package/build/components/rich-text/index.native.js +7 -11
  100. package/build/components/rich-text/index.native.js.map +1 -1
  101. package/build/components/spacing-sizes-control/spacing-input-control.js +8 -0
  102. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  103. package/build/hooks/anchor.js +1 -1
  104. package/build/hooks/anchor.js.map +1 -1
  105. package/build/hooks/border.js +1 -1
  106. package/build/hooks/border.js.map +1 -1
  107. package/build/hooks/duotone.js +121 -70
  108. package/build/hooks/duotone.js.map +1 -1
  109. package/build/hooks/margin.js +27 -17
  110. package/build/hooks/margin.js.map +1 -1
  111. package/build/hooks/padding.js +19 -9
  112. package/build/hooks/padding.js.map +1 -1
  113. package/build/hooks/utils.js +22 -7
  114. package/build/hooks/utils.js.map +1 -1
  115. package/build/layouts/utils.js +3 -2
  116. package/build/layouts/utils.js.map +1 -1
  117. package/build/private-apis.js +13 -1
  118. package/build/private-apis.js.map +1 -1
  119. package/build/store/actions.js +8 -1
  120. package/build/store/actions.js.map +1 -1
  121. package/build/utils/object.js +6 -6
  122. package/build/utils/object.js.map +1 -1
  123. package/build/utils/transform-styles/index.js +2 -2
  124. package/build/utils/transform-styles/index.js.map +1 -1
  125. package/build/utils/use-should-contextual-toolbar-show.js +68 -0
  126. package/build/utils/use-should-contextual-toolbar-show.js.map +1 -0
  127. package/build-module/components/block-info-slot-fill/index.js +34 -0
  128. package/build-module/components/block-info-slot-fill/index.js.map +1 -0
  129. package/build-module/components/block-inspector/index.js +3 -2
  130. package/build-module/components/block-inspector/index.js.map +1 -1
  131. package/build-module/components/block-list/index.native.js +11 -19
  132. package/build-module/components/block-list/index.native.js.map +1 -1
  133. package/build-module/components/block-list/use-in-between-inserter.js +2 -1
  134. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  135. package/build-module/components/block-popover/inbetween.js +2 -9
  136. package/build-module/components/block-popover/inbetween.js.map +1 -1
  137. package/build-module/components/block-settings-menu/block-settings-dropdown.js +1 -9
  138. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  139. package/build-module/components/block-toolbar/index.js +2 -1
  140. package/build-module/components/block-toolbar/index.js.map +1 -1
  141. package/build-module/components/block-tools/block-contextual-toolbar.js +79 -9
  142. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  143. package/build-module/components/block-tools/selected-block-popover.js +10 -27
  144. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  145. package/build-module/components/caption/index.native.js +0 -1
  146. package/build-module/components/caption/index.native.js.map +1 -1
  147. package/build-module/components/date-format-picker/index.js +1 -1
  148. package/build-module/components/date-format-picker/index.js.map +1 -1
  149. package/build-module/components/editor-styles/index.js +4 -3
  150. package/build-module/components/editor-styles/index.js.map +1 -1
  151. package/build-module/components/font-sizes/fluid-utils.js +21 -14
  152. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  153. package/build-module/components/global-styles/border-panel.js +15 -59
  154. package/build-module/components/global-styles/border-panel.js.map +1 -1
  155. package/build-module/components/global-styles/color-panel.js +13 -13
  156. package/build-module/components/global-styles/color-panel.js.map +1 -1
  157. package/build-module/components/global-styles/color-panel.native.js +150 -0
  158. package/build-module/components/global-styles/color-panel.native.js.map +1 -0
  159. package/build-module/components/global-styles/dimensions-panel.js +22 -21
  160. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  161. package/build-module/components/global-styles/effects-panel.js +228 -0
  162. package/build-module/components/global-styles/effects-panel.js.map +1 -0
  163. package/build-module/components/global-styles/filters-panel.js +201 -0
  164. package/build-module/components/global-styles/filters-panel.js.map +1 -0
  165. package/build-module/components/global-styles/get-block-css-selector.js +1 -12
  166. package/build-module/components/global-styles/get-block-css-selector.js.map +1 -1
  167. package/build-module/components/global-styles/hooks.js +7 -0
  168. package/build-module/components/global-styles/hooks.js.map +1 -1
  169. package/build-module/components/global-styles/index.js +2 -0
  170. package/build-module/components/global-styles/index.js.map +1 -1
  171. package/build-module/components/global-styles/typography-panel.js +10 -10
  172. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  173. package/build-module/components/global-styles/use-global-styles-output.js +101 -83
  174. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  175. package/build-module/components/iframe/index.js +1 -1
  176. package/build-module/components/iframe/index.js.map +1 -1
  177. package/build-module/components/image-size-control/use-dimension-handler.js +5 -3
  178. package/build-module/components/image-size-control/use-dimension-handler.js.map +1 -1
  179. package/build-module/components/index.js +1 -0
  180. package/build-module/components/index.js.map +1 -1
  181. package/build-module/components/inserter/block-patterns-tab.js +5 -2
  182. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  183. package/build-module/components/inserter/block-types-tab.js +12 -6
  184. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  185. package/build-module/components/inserter/index.js +2 -1
  186. package/build-module/components/inserter/index.js.map +1 -1
  187. package/build-module/components/inspector-controls/groups.js +2 -0
  188. package/build-module/components/inspector-controls/groups.js.map +1 -1
  189. package/build-module/components/inspector-controls-tabs/styles-tab.js +2 -0
  190. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  191. package/build-module/components/inspector-controls-tabs/utils.js +4 -3
  192. package/build-module/components/inspector-controls-tabs/utils.js.map +1 -1
  193. package/build-module/components/list-view/block-select-button.js +7 -2
  194. package/build-module/components/list-view/block-select-button.js.map +1 -1
  195. package/build-module/components/list-view/block.js +15 -22
  196. package/build-module/components/list-view/block.js.map +1 -1
  197. package/build-module/components/list-view/drop-indicator.js +36 -10
  198. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  199. package/build-module/components/list-view/index.js +31 -8
  200. package/build-module/components/list-view/index.js.map +1 -1
  201. package/build-module/components/list-view/leaf.js +2 -1
  202. package/build-module/components/list-view/leaf.js.map +1 -1
  203. package/build-module/components/list-view/use-block-selection.js +1 -1
  204. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  205. package/build-module/components/list-view/use-list-view-client-ids.js +7 -3
  206. package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
  207. package/build-module/components/list-view/use-list-view-drop-zone.js +8 -4
  208. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  209. package/build-module/components/media-replace-flow/index.js +5 -5
  210. package/build-module/components/media-replace-flow/index.js.map +1 -1
  211. package/build-module/components/navigable-toolbar/index.js +12 -4
  212. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  213. package/build-module/components/off-canvas-editor/appender.js +1 -5
  214. package/build-module/components/off-canvas-editor/appender.js.map +1 -1
  215. package/build-module/components/off-canvas-editor/block-contents.js +5 -1
  216. package/build-module/components/off-canvas-editor/block-contents.js.map +1 -1
  217. package/build-module/components/off-canvas-editor/index.js +17 -14
  218. package/build-module/components/off-canvas-editor/index.js.map +1 -1
  219. package/build-module/components/resizable-box-popover/index.js +26 -0
  220. package/build-module/components/resizable-box-popover/index.js.map +1 -0
  221. package/build-module/components/rich-text/index.js +0 -1
  222. package/build-module/components/rich-text/index.js.map +1 -1
  223. package/build-module/components/rich-text/index.native.js +7 -10
  224. package/build-module/components/rich-text/index.native.js.map +1 -1
  225. package/build-module/components/spacing-sizes-control/spacing-input-control.js +7 -0
  226. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  227. package/build-module/hooks/anchor.js +1 -1
  228. package/build-module/hooks/anchor.js.map +1 -1
  229. package/build-module/hooks/border.js +1 -1
  230. package/build-module/hooks/border.js.map +1 -1
  231. package/build-module/hooks/duotone.js +118 -71
  232. package/build-module/hooks/duotone.js.map +1 -1
  233. package/build-module/hooks/margin.js +29 -18
  234. package/build-module/hooks/margin.js.map +1 -1
  235. package/build-module/hooks/padding.js +21 -10
  236. package/build-module/hooks/padding.js.map +1 -1
  237. package/build-module/hooks/utils.js +24 -9
  238. package/build-module/hooks/utils.js.map +1 -1
  239. package/build-module/layouts/utils.js +3 -2
  240. package/build-module/layouts/utils.js.map +1 -1
  241. package/build-module/private-apis.js +9 -1
  242. package/build-module/private-apis.js.map +1 -1
  243. package/build-module/store/actions.js +8 -1
  244. package/build-module/store/actions.js.map +1 -1
  245. package/build-module/utils/object.js +5 -5
  246. package/build-module/utils/object.js.map +1 -1
  247. package/build-module/utils/transform-styles/index.js +2 -2
  248. package/build-module/utils/transform-styles/index.js.map +1 -1
  249. package/build-module/utils/use-should-contextual-toolbar-show.js +56 -0
  250. package/build-module/utils/use-should-contextual-toolbar-show.js.map +1 -0
  251. package/build-style/content-rtl.css +9 -6
  252. package/build-style/content.css +9 -6
  253. package/build-style/style-rtl.css +272 -54
  254. package/build-style/style.css +272 -54
  255. package/package.json +32 -32
  256. package/src/components/block-info-slot-fill/index.js +24 -0
  257. package/src/components/block-inspector/index.js +3 -0
  258. package/src/components/block-inspector/style.scss +6 -4
  259. package/src/components/block-list/content.scss +16 -15
  260. package/src/components/block-list/index.native.js +19 -38
  261. package/src/components/block-list/use-in-between-inserter.js +4 -1
  262. package/src/components/block-mobile-toolbar/test/block-actions-menu.native.js +9 -9
  263. package/src/components/block-mover/style.scss +10 -4
  264. package/src/components/block-mover/test/index.native.js +4 -4
  265. package/src/components/block-popover/inbetween.js +2 -13
  266. package/src/components/block-settings-menu/block-settings-dropdown.js +2 -12
  267. package/src/components/block-toolbar/index.js +4 -3
  268. package/src/components/block-toolbar/style.scss +56 -33
  269. package/src/components/block-tools/block-contextual-toolbar.js +94 -11
  270. package/src/components/block-tools/selected-block-popover.js +11 -44
  271. package/src/components/block-tools/style.scss +157 -3
  272. package/src/components/caption/index.native.js +0 -1
  273. package/src/components/date-format-picker/index.js +1 -1
  274. package/src/components/editor-styles/index.js +9 -5
  275. package/src/components/font-sizes/fluid-utils.js +31 -14
  276. package/src/components/font-sizes/test/fluid-utils.js +5 -16
  277. package/src/components/global-styles/README.md +129 -16
  278. package/src/components/global-styles/border-panel.js +13 -61
  279. package/src/components/global-styles/color-panel.js +13 -13
  280. package/src/components/global-styles/color-panel.native.js +207 -0
  281. package/src/components/global-styles/dimensions-panel.js +47 -20
  282. package/src/components/global-styles/effects-panel.js +228 -0
  283. package/src/components/global-styles/filters-panel.js +230 -0
  284. package/src/components/global-styles/get-block-css-selector.js +0 -11
  285. package/src/components/global-styles/hooks.js +10 -0
  286. package/src/components/global-styles/index.js +2 -0
  287. package/src/components/global-styles/style.scss +43 -0
  288. package/src/components/global-styles/test/typography-utils.js +63 -22
  289. package/src/components/global-styles/test/use-global-styles-output.js +130 -8
  290. package/src/components/global-styles/typography-panel.js +37 -11
  291. package/src/components/global-styles/use-global-styles-output.js +88 -72
  292. package/src/components/iframe/index.js +1 -1
  293. package/src/components/image-size-control/use-dimension-handler.js +4 -3
  294. package/src/components/index.js +5 -1
  295. package/src/components/inserter/block-patterns-tab.js +3 -1
  296. package/src/components/inserter/block-types-tab.js +9 -6
  297. package/src/components/inserter/index.js +1 -1
  298. package/src/components/inspector-controls/groups.js +2 -0
  299. package/src/components/inspector-controls-tabs/styles-tab.js +1 -0
  300. package/src/components/inspector-controls-tabs/utils.js +4 -3
  301. package/src/components/list-view/README.md +2 -0
  302. package/src/components/list-view/block-select-button.js +6 -1
  303. package/src/components/list-view/block.js +24 -31
  304. package/src/components/list-view/drop-indicator.js +67 -22
  305. package/src/components/list-view/index.js +26 -3
  306. package/src/components/list-view/leaf.js +1 -0
  307. package/src/components/list-view/style.scss +18 -4
  308. package/src/components/list-view/test/use-list-view-drop-zone.js +188 -0
  309. package/src/components/list-view/use-block-selection.js +1 -1
  310. package/src/components/list-view/use-list-view-client-ids.js +5 -3
  311. package/src/components/list-view/use-list-view-drop-zone.js +9 -3
  312. package/src/components/media-replace-flow/README.md +3 -2
  313. package/src/components/media-replace-flow/index.js +4 -5
  314. package/src/components/navigable-toolbar/index.js +12 -3
  315. package/src/components/off-canvas-editor/appender.js +1 -4
  316. package/src/components/off-canvas-editor/block-contents.js +4 -0
  317. package/src/components/off-canvas-editor/index.js +15 -11
  318. package/src/components/resizable-box-popover/index.js +27 -0
  319. package/src/components/rich-text/index.js +0 -1
  320. package/src/components/rich-text/index.native.js +2 -5
  321. package/src/components/spacing-sizes-control/spacing-input-control.js +10 -0
  322. package/src/components/spacing-sizes-control/style.scss +7 -7
  323. package/src/components/url-popover/test/__snapshots__/index.js.snap +3 -3
  324. package/src/hooks/anchor.js +1 -1
  325. package/src/hooks/border.js +1 -1
  326. package/src/hooks/duotone.js +162 -99
  327. package/src/hooks/margin.js +31 -26
  328. package/src/hooks/padding.js +24 -18
  329. package/src/hooks/test/anchor.js +113 -0
  330. package/src/hooks/test/color.js +0 -9
  331. package/src/hooks/test/use-typography-props.js +2 -2
  332. package/src/hooks/test/utils.js +20 -101
  333. package/src/hooks/utils.js +23 -6
  334. package/src/layouts/utils.js +2 -2
  335. package/src/private-apis.js +8 -0
  336. package/src/store/actions.js +8 -1
  337. package/src/style.scss +1 -0
  338. package/src/utils/object.js +5 -5
  339. package/src/utils/test/object.js +53 -15
  340. package/src/utils/transform-styles/index.js +2 -2
  341. package/src/utils/use-should-contextual-toolbar-show.js +75 -0
  342. package/tsconfig.json +1 -0
  343. package/build/components/rich-text/use-native-props.js +0 -11
  344. package/build/components/rich-text/use-native-props.js.map +0 -1
  345. package/build/components/rich-text/use-native-props.native.js +0 -24
  346. package/build/components/rich-text/use-native-props.native.js.map +0 -1
  347. package/build/hooks/color-panel.native.js +0 -77
  348. package/build/hooks/color-panel.native.js.map +0 -1
  349. package/build-module/components/rich-text/use-native-props.js +0 -4
  350. package/build-module/components/rich-text/use-native-props.js.map +0 -1
  351. package/build-module/components/rich-text/use-native-props.native.js +0 -15
  352. package/build-module/components/rich-text/use-native-props.native.js.map +0 -1
  353. package/build-module/hooks/color-panel.native.js +0 -62
  354. package/build-module/hooks/color-panel.native.js.map +0 -1
  355. package/src/components/rich-text/use-native-props.js +0 -3
  356. package/src/components/rich-text/use-native-props.native.js +0 -17
  357. package/src/hooks/color-panel.native.js +0 -63
@@ -19,12 +19,20 @@ var _blocks = require("@wordpress/blocks");
19
19
 
20
20
  var _data = require("@wordpress/data");
21
21
 
22
+ var _components = require("@wordpress/components");
23
+
24
+ var _icons = require("@wordpress/icons");
25
+
26
+ var _compose = require("@wordpress/compose");
27
+
22
28
  var _navigableToolbar = _interopRequireDefault(require("../navigable-toolbar"));
23
29
 
24
30
  var _blockToolbar = _interopRequireDefault(require("../block-toolbar"));
25
31
 
26
32
  var _store = require("../../store");
27
33
 
34
+ var _blockIcon = _interopRequireDefault(require("../block-icon"));
35
+
28
36
  /**
29
37
  * External dependencies
30
38
  */
@@ -36,16 +44,67 @@ var _store = require("../../store");
36
44
  /**
37
45
  * Internal dependencies
38
46
  */
39
- function BlockContextualToolbar(_ref) {
47
+ const CollapseFixedToolbarButton = (0, _element.forwardRef)((_ref, ref) => {
48
+ let {
49
+ onClick
50
+ } = _ref;
51
+ return (0, _element.createElement)(_components.ToolbarItem, {
52
+ as: _components.ToolbarButton,
53
+ className: "block-editor-block-toolbar__collapse-fixed-toolbar",
54
+ icon: _icons.levelUp,
55
+ onClick: onClick,
56
+ ref: ref,
57
+ label: (0, _i18n.__)('Show document tools')
58
+ });
59
+ });
60
+ const ExpandFixedToolbarButton = (0, _element.forwardRef)((_ref2, ref) => {
61
+ let {
62
+ onClick,
63
+ icon
64
+ } = _ref2;
65
+ return (0, _element.createElement)(_components.ToolbarItem, {
66
+ as: _components.ToolbarButton,
67
+ className: "block-editor-block-toolbar__expand-fixed-toolbar",
68
+ icon: (0, _element.createElement)(_blockIcon.default, {
69
+ icon: icon
70
+ }),
71
+ onClick: onClick,
72
+ ref: ref,
73
+ label: (0, _i18n.__)('Show block tools')
74
+ });
75
+ });
76
+
77
+ function BlockContextualToolbar(_ref3) {
40
78
  let {
41
79
  focusOnMount,
42
80
  isFixed,
43
81
  ...props
44
- } = _ref;
82
+ } = _ref3;
83
+ // When the toolbar is fixed it can be collapsed
84
+ const [isCollapsed, setIsCollapsed] = (0, _element.useState)(false);
85
+ const expandFixedToolbarButtonRef = (0, _element.useRef)();
86
+ const collapseFixedToolbarButtonRef = (0, _element.useRef)(); // Don't focus the block toolbar just because it mounts
87
+
88
+ const initialRender = (0, _element.useRef)(true);
89
+ (0, _element.useEffect)(() => {
90
+ if (initialRender.current) {
91
+ initialRender.current = false;
92
+ return;
93
+ }
94
+
95
+ if (isCollapsed && expandFixedToolbarButtonRef.current) {
96
+ expandFixedToolbarButtonRef.current.focus();
97
+ }
98
+
99
+ if (!isCollapsed && collapseFixedToolbarButtonRef.current) {
100
+ collapseFixedToolbarButtonRef.current.focus();
101
+ }
102
+ }, [isCollapsed]);
45
103
  const {
46
104
  blockType,
47
105
  hasParents,
48
- showParentSelector
106
+ showParentSelector,
107
+ selectedBlockClientId
49
108
  } = (0, _data.useSelect)(select => {
50
109
  const {
51
110
  getBlockName,
@@ -57,17 +116,22 @@ function BlockContextualToolbar(_ref) {
57
116
  getBlockType
58
117
  } = select(_blocks.store);
59
118
  const selectedBlockClientIds = getSelectedBlockClientIds();
60
- const selectedBlockClientId = selectedBlockClientIds[0];
61
- const parents = getBlockParents(selectedBlockClientId);
119
+ const _selectedBlockClientId = selectedBlockClientIds[0];
120
+ const parents = getBlockParents(_selectedBlockClientId);
62
121
  const firstParentClientId = parents[parents.length - 1];
63
122
  const parentBlockName = getBlockName(firstParentClientId);
64
123
  const parentBlockType = getBlockType(parentBlockName);
65
124
  return {
66
- blockType: selectedBlockClientId && getBlockType(getBlockName(selectedBlockClientId)),
125
+ selectedBlockClientId: _selectedBlockClientId,
126
+ blockType: _selectedBlockClientId && getBlockType(getBlockName(_selectedBlockClientId)),
67
127
  hasParents: parents.length,
68
- showParentSelector: parentBlockType && (0, _blocks.hasBlockSupport)(parentBlockType, '__experimentalParentSelector', true) && selectedBlockClientIds.length <= 1 && !__unstableGetContentLockingParent(selectedBlockClientId)
128
+ showParentSelector: parentBlockType && (0, _blocks.hasBlockSupport)(parentBlockType, '__experimentalParentSelector', true) && selectedBlockClientIds.length <= 1 && !__unstableGetContentLockingParent(_selectedBlockClientId)
69
129
  };
70
130
  }, []);
131
+ (0, _element.useEffect)(() => {
132
+ setIsCollapsed(false);
133
+ }, [selectedBlockClientId]);
134
+ const isLargeViewport = (0, _compose.useViewportMatch)('medium');
71
135
 
72
136
  if (blockType) {
73
137
  if (!(0, _blocks.hasBlockSupport)(blockType, '__experimentalToolbar', true)) {
@@ -78,7 +142,8 @@ function BlockContextualToolbar(_ref) {
78
142
 
79
143
  const classes = (0, _classnames.default)('block-editor-block-contextual-toolbar', {
80
144
  'has-parent': hasParents && showParentSelector,
81
- 'is-fixed': isFixed
145
+ 'is-fixed': isFixed,
146
+ 'is-collapsed': isCollapsed
82
147
  });
83
148
  return (0, _element.createElement)(_navigableToolbar.default, (0, _extends2.default)({
84
149
  focusOnMount: focusOnMount,
@@ -86,7 +151,16 @@ function BlockContextualToolbar(_ref) {
86
151
  /* translators: accessibility text for the block toolbar */
87
152
  ,
88
153
  "aria-label": (0, _i18n.__)('Block tools')
89
- }, props), (0, _element.createElement)(_blockToolbar.default, {
154
+ }, props), isFixed && isLargeViewport && blockType && (0, _element.createElement)(_components.ToolbarGroup, {
155
+ className: isCollapsed ? 'block-editor-block-toolbar__group-expand-fixed-toolbar' : 'block-editor-block-toolbar__group-collapse-fixed-toolbar'
156
+ }, isCollapsed ? (0, _element.createElement)(ExpandFixedToolbarButton, {
157
+ onClick: () => setIsCollapsed(false),
158
+ icon: blockType.icon,
159
+ ref: expandFixedToolbarButtonRef
160
+ }) : (0, _element.createElement)(CollapseFixedToolbarButton, {
161
+ onClick: () => setIsCollapsed(true),
162
+ ref: collapseFixedToolbarButtonRef
163
+ })), !isCollapsed && (0, _element.createElement)(_blockToolbar.default, {
90
164
  hideDragHandle: isFixed
91
165
  }));
92
166
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/block-contextual-toolbar.js"],"names":["BlockContextualToolbar","focusOnMount","isFixed","props","blockType","hasParents","showParentSelector","select","getBlockName","getBlockParents","getSelectedBlockClientIds","__unstableGetContentLockingParent","blockEditorStore","getBlockType","blocksStore","selectedBlockClientIds","selectedBlockClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","classes"],"mappings":";;;;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AAjBA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;AAKA,SAASA,sBAAT,OAAuE;AAAA,MAAtC;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA,OAAhB;AAAyB,OAAGC;AAA5B,GAAsC;AACtE,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA,UAAb;AAAyBC,IAAAA;AAAzB,MAAgD,qBACnDC,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,YADK;AAELC,MAAAA,eAFK;AAGLC,MAAAA,yBAHK;AAILC,MAAAA;AAJK,QAKFJ,MAAM,CAAEK,YAAF,CALV;AAMA,UAAM;AAAEC,MAAAA;AAAF,QAAmBN,MAAM,CAAEO,aAAF,CAA/B;AACA,UAAMC,sBAAsB,GAAGL,yBAAyB,EAAxD;AACA,UAAMM,qBAAqB,GAAGD,sBAAsB,CAAE,CAAF,CAApD;AACA,UAAME,OAAO,GAAGR,eAAe,CAAEO,qBAAF,CAA/B;AACA,UAAME,mBAAmB,GAAGD,OAAO,CAAEA,OAAO,CAACE,MAAR,GAAiB,CAAnB,CAAnC;AACA,UAAMC,eAAe,GAAGZ,YAAY,CAAEU,mBAAF,CAApC;AACA,UAAMG,eAAe,GAAGR,YAAY,CAAEO,eAAF,CAApC;AAEA,WAAO;AACNhB,MAAAA,SAAS,EACRY,qBAAqB,IACrBH,YAAY,CAAEL,YAAY,CAAEQ,qBAAF,CAAd,CAHP;AAINX,MAAAA,UAAU,EAAEY,OAAO,CAACE,MAJd;AAKNb,MAAAA,kBAAkB,EACjBe,eAAe,IACf,6BACCA,eADD,EAEC,8BAFD,EAGC,IAHD,CADA,IAMAN,sBAAsB,CAACI,MAAvB,IAAiC,CANjC,IAOA,CAAER,iCAAiC,CAClCK,qBADkC;AAb9B,KAAP;AAiBA,GAjCoD,EAkCrD,EAlCqD,CAAtD;;AAqCA,MAAKZ,SAAL,EAAiB;AAChB,QAAK,CAAE,6BAAiBA,SAAjB,EAA4B,uBAA5B,EAAqD,IAArD,CAAP,EAAqE;AACpE,aAAO,IAAP;AACA;AACD,GA1CqE,CA4CtE;;;AACA,QAAMkB,OAAO,GAAG,yBAAY,uCAAZ,EAAqD;AACpE,kBAAcjB,UAAU,IAAIC,kBADwC;AAEpE,gBAAYJ;AAFwD,GAArD,CAAhB;AAKA,SACC,4BAAC,yBAAD;AACC,IAAA,YAAY,EAAGD,YADhB;AAEC,IAAA,SAAS,EAAGqB;AACZ;AAHD;AAIC,kBAAa,cAAI,aAAJ;AAJd,KAKMnB,KALN,GAOC,4BAAC,qBAAD;AAAc,IAAA,cAAc,EAAGD;AAA/B,IAPD,CADD;AAWA;;eAEcF,sB","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { hasBlockSupport, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport NavigableToolbar from '../navigable-toolbar';\nimport BlockToolbar from '../block-toolbar';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {\n\tconst { blockType, hasParents, showParentSelector } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\t__unstableGetContentLockingParent,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockType } = select( blocksStore );\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\t\tconst selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\t\tconst parents = getBlockParents( selectedBlockClientId );\n\t\t\tconst firstParentClientId = parents[ parents.length - 1 ];\n\t\t\tconst parentBlockName = getBlockName( firstParentClientId );\n\t\t\tconst parentBlockType = getBlockType( parentBlockName );\n\n\t\t\treturn {\n\t\t\t\tblockType:\n\t\t\t\t\tselectedBlockClientId &&\n\t\t\t\t\tgetBlockType( getBlockName( selectedBlockClientId ) ),\n\t\t\t\thasParents: parents.length,\n\t\t\t\tshowParentSelector:\n\t\t\t\t\tparentBlockType &&\n\t\t\t\t\thasBlockSupport(\n\t\t\t\t\t\tparentBlockType,\n\t\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) &&\n\t\t\t\t\tselectedBlockClientIds.length <= 1 &&\n\t\t\t\t\t! __unstableGetContentLockingParent(\n\t\t\t\t\t\tselectedBlockClientId\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tif ( blockType ) {\n\t\tif ( ! hasBlockSupport( blockType, '__experimentalToolbar', true ) ) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t// Shifts the toolbar to make room for the parent block selector.\n\tconst classes = classnames( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': hasParents && showParentSelector,\n\t\t'is-fixed': isFixed,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\tclassName={ classes }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t<BlockToolbar hideDragHandle={ isFixed } />\n\t\t</NavigableToolbar>\n\t);\n}\n\nexport default BlockContextualToolbar;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/block-contextual-toolbar.js"],"names":["CollapseFixedToolbarButton","ref","onClick","ToolbarButton","levelUp","ExpandFixedToolbarButton","icon","BlockContextualToolbar","focusOnMount","isFixed","props","isCollapsed","setIsCollapsed","expandFixedToolbarButtonRef","collapseFixedToolbarButtonRef","initialRender","current","focus","blockType","hasParents","showParentSelector","selectedBlockClientId","select","getBlockName","getBlockParents","getSelectedBlockClientIds","__unstableGetContentLockingParent","blockEditorStore","getBlockType","blocksStore","selectedBlockClientIds","_selectedBlockClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","isLargeViewport","classes"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef, useEffect, useRef, useState } from '@wordpress/element';\nimport { hasBlockSupport, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tToolbarItem,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { levelUp } from '@wordpress/icons';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport NavigableToolbar from '../navigable-toolbar';\nimport BlockToolbar from '../block-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\n\nconst CollapseFixedToolbarButton = forwardRef( ( { onClick }, ref ) => {\n\treturn (\n\t\t<ToolbarItem\n\t\t\tas={ ToolbarButton }\n\t\t\tclassName=\"block-editor-block-toolbar__collapse-fixed-toolbar\"\n\t\t\ticon={ levelUp }\n\t\t\tonClick={ onClick }\n\t\t\tref={ ref }\n\t\t\tlabel={ __( 'Show document tools' ) }\n\t\t/>\n\t);\n} );\n\nconst ExpandFixedToolbarButton = forwardRef( ( { onClick, icon }, ref ) => {\n\treturn (\n\t\t<ToolbarItem\n\t\t\tas={ ToolbarButton }\n\t\t\tclassName=\"block-editor-block-toolbar__expand-fixed-toolbar\"\n\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\tonClick={ onClick }\n\t\t\tref={ ref }\n\t\t\tlabel={ __( 'Show block tools' ) }\n\t\t/>\n\t);\n} );\n\nfunction BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {\n\t// When the toolbar is fixed it can be collapsed\n\tconst [ isCollapsed, setIsCollapsed ] = useState( false );\n\tconst expandFixedToolbarButtonRef = useRef();\n\tconst collapseFixedToolbarButtonRef = useRef();\n\n\t// Don't focus the block toolbar just because it mounts\n\tconst initialRender = useRef( true );\n\tuseEffect( () => {\n\t\tif ( initialRender.current ) {\n\t\t\tinitialRender.current = false;\n\t\t\treturn;\n\t\t}\n\t\tif ( isCollapsed && expandFixedToolbarButtonRef.current ) {\n\t\t\texpandFixedToolbarButtonRef.current.focus();\n\t\t}\n\t\tif ( ! isCollapsed && collapseFixedToolbarButtonRef.current ) {\n\t\t\tcollapseFixedToolbarButtonRef.current.focus();\n\t\t}\n\t}, [ isCollapsed ] );\n\n\tconst { blockType, hasParents, showParentSelector, selectedBlockClientId } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\t__unstableGetContentLockingParent,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockType } = select( blocksStore );\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\t\tconst _selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\t\tconst parents = getBlockParents( _selectedBlockClientId );\n\t\t\tconst firstParentClientId = parents[ parents.length - 1 ];\n\t\t\tconst parentBlockName = getBlockName( firstParentClientId );\n\t\t\tconst parentBlockType = getBlockType( parentBlockName );\n\n\t\t\treturn {\n\t\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\t\tblockType:\n\t\t\t\t\t_selectedBlockClientId &&\n\t\t\t\t\tgetBlockType( getBlockName( _selectedBlockClientId ) ),\n\t\t\t\thasParents: parents.length,\n\t\t\t\tshowParentSelector:\n\t\t\t\t\tparentBlockType &&\n\t\t\t\t\thasBlockSupport(\n\t\t\t\t\t\tparentBlockType,\n\t\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) &&\n\t\t\t\t\tselectedBlockClientIds.length <= 1 &&\n\t\t\t\t\t! __unstableGetContentLockingParent(\n\t\t\t\t\t\t_selectedBlockClientId\n\t\t\t\t\t),\n\t\t\t};\n\t\t}, [] );\n\n\tuseEffect( () => {\n\t\tsetIsCollapsed( false );\n\t}, [ selectedBlockClientId ] );\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\n\tif ( blockType ) {\n\t\tif ( ! hasBlockSupport( blockType, '__experimentalToolbar', true ) ) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t// Shifts the toolbar to make room for the parent block selector.\n\tconst classes = classnames( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': hasParents && showParentSelector,\n\t\t'is-fixed': isFixed,\n\t\t'is-collapsed': isCollapsed,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\tclassName={ classes }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ isFixed && isLargeViewport && blockType && (\n\t\t\t\t<ToolbarGroup\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tisCollapsed\n\t\t\t\t\t\t\t? 'block-editor-block-toolbar__group-expand-fixed-toolbar'\n\t\t\t\t\t\t\t: 'block-editor-block-toolbar__group-collapse-fixed-toolbar'\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isCollapsed ? (\n\t\t\t\t\t\t<ExpandFixedToolbarButton\n\t\t\t\t\t\t\tonClick={ () => setIsCollapsed( false ) }\n\t\t\t\t\t\t\ticon={ blockType.icon }\n\t\t\t\t\t\t\tref={ expandFixedToolbarButtonRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<CollapseFixedToolbarButton\n\t\t\t\t\t\t\tonClick={ () => setIsCollapsed( true ) }\n\t\t\t\t\t\t\tref={ collapseFixedToolbarButtonRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarGroup>\n\t\t\t) }\n\t\t\t{ ! isCollapsed && <BlockToolbar hideDragHandle={ isFixed } /> }\n\t\t</NavigableToolbar>\n\t);\n}\n\nexport default BlockContextualToolbar;\n"]}
@@ -19,8 +19,6 @@ var _data = require("@wordpress/data");
19
19
 
20
20
  var _keyboardShortcuts = require("@wordpress/keyboard-shortcuts");
21
21
 
22
- var _compose = require("@wordpress/compose");
23
-
24
22
  var _blockSelectionButton = _interopRequireDefault(require("./block-selection-button"));
25
23
 
26
24
  var _blockContextualToolbar = _interopRequireDefault(require("./block-contextual-toolbar"));
@@ -35,6 +33,8 @@ var _inserter = _interopRequireDefault(require("../inserter"));
35
33
 
36
34
  var _lockUnlock = require("../../lock-unlock");
37
35
 
36
+ var _privateApis = require("../../private-apis");
37
+
38
38
  /**
39
39
  * External dependencies
40
40
  */
@@ -49,21 +49,14 @@ var _lockUnlock = require("../../lock-unlock");
49
49
  function selector(select) {
50
50
  const {
51
51
  __unstableGetEditorMode,
52
- isMultiSelecting,
53
52
  hasMultiSelection,
54
53
  isTyping,
55
- isBlockInterfaceHidden,
56
- getSettings,
57
54
  getLastMultiSelectedBlockClientId
58
55
  } = (0, _lockUnlock.unlock)(select(_store.store));
59
56
  return {
60
57
  editorMode: __unstableGetEditorMode(),
61
58
  hasMultiSelection: hasMultiSelection(),
62
- isMultiSelecting: isMultiSelecting(),
63
59
  isTyping: isTyping(),
64
- isBlockInterfaceHidden: isBlockInterfaceHidden(),
65
- hasFixedToolbar: getSettings().hasFixedToolbar,
66
- isDistractionFree: getSettings().isDistractionFree,
67
60
  lastClientId: hasMultiSelection() ? getLastMultiSelectedBlockClientId() : null
68
61
  };
69
62
  }
@@ -73,8 +66,6 @@ function SelectedBlockPopover(_ref) {
73
66
  clientId,
74
67
  rootClientId,
75
68
  isEmptyDefaultBlock,
76
- showContents,
77
- // we may need to mount an empty popover because we reuse
78
69
  capturingClientId,
79
70
  __unstablePopoverSlot,
80
71
  __unstableContentRef
@@ -82,13 +73,12 @@ function SelectedBlockPopover(_ref) {
82
73
  const {
83
74
  editorMode,
84
75
  hasMultiSelection,
85
- isMultiSelecting,
86
76
  isTyping,
87
- isBlockInterfaceHidden,
88
- hasFixedToolbar,
89
- isDistractionFree,
90
77
  lastClientId
91
78
  } = (0, _data.useSelect)(selector, []);
79
+ const {
80
+ useShouldContextualToolbarShow
81
+ } = (0, _lockUnlock.unlock)(_privateApis.privateApis);
92
82
  const isInsertionPointVisible = (0, _data.useSelect)(select => {
93
83
  const {
94
84
  isBlockInsertionPointVisible,
@@ -104,15 +94,16 @@ function SelectedBlockPopover(_ref) {
104
94
  const order = getBlockOrder(insertionPoint.rootClientId);
105
95
  return order[insertionPoint.index] === clientId;
106
96
  }, [clientId]);
107
- const isLargeViewport = (0, _compose.useViewportMatch)('medium');
108
97
  const isToolbarForced = (0, _element.useRef)(false);
98
+ const {
99
+ shouldShowContextualToolbar,
100
+ canFocusHiddenToolbar
101
+ } = useShouldContextualToolbarShow(clientId);
109
102
  const {
110
103
  stopTyping
111
104
  } = (0, _data.useDispatch)(_store.store);
112
105
  const showEmptyBlockSideInserter = !isTyping && editorMode === 'edit' && isEmptyDefaultBlock;
113
106
  const shouldShowBreadcrumb = !hasMultiSelection && (editorMode === 'navigation' || editorMode === 'zoom-out');
114
- const shouldShowContextualToolbar = editorMode === 'edit' && !hasFixedToolbar && isLargeViewport && !isMultiSelecting && !showEmptyBlockSideInserter && !isTyping && !isBlockInterfaceHidden;
115
- const canFocusHiddenToolbar = editorMode === 'edit' && !shouldShowContextualToolbar && !hasFixedToolbar && !isDistractionFree && !isEmptyDefaultBlock;
116
107
  (0, _keyboardShortcuts.useShortcut)('core/block-editor/focus-toolbar', () => {
117
108
  isToolbarForced.current = true;
118
109
  stopTyping(true);
@@ -162,7 +153,7 @@ function SelectedBlockPopover(_ref) {
162
153
  __unstablePopoverSlot: __unstablePopoverSlot,
163
154
  __unstableContentRef: __unstableContentRef,
164
155
  resize: false
165
- }, popoverProps), shouldShowContextualToolbar && showContents && (0, _element.createElement)(_blockContextualToolbar.default // If the toolbar is being shown because of being forced
156
+ }, popoverProps), shouldShowContextualToolbar && (0, _element.createElement)(_blockContextualToolbar.default // If the toolbar is being shown because of being forced
166
157
  // it should focus the toolbar right after the mount.
167
158
  , {
168
159
  focusOnMount: isToolbarForced.current,
@@ -189,8 +180,6 @@ function wrapperSelector(select) {
189
180
  getBlockRootClientId,
190
181
  getBlock,
191
182
  getBlockParents,
192
- getSettings,
193
- isNavigationMode: _isNavigationMode,
194
183
  __experimentalGetBlockListSettingsForBlocks
195
184
  } = select(_store.store);
196
185
  const clientId = getSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();
@@ -213,13 +202,10 @@ function wrapperSelector(select) {
213
202
 
214
203
  return (_parentBlockListSetti = parentBlockListSettings[parentClientId]) === null || _parentBlockListSetti === void 0 ? void 0 : _parentBlockListSetti.__experimentalCaptureToolbars;
215
204
  });
216
- const settings = getSettings();
217
205
  return {
218
206
  clientId,
219
207
  rootClientId: getBlockRootClientId(clientId),
220
208
  name,
221
- isDistractionFree: settings.isDistractionFree,
222
- isNavigationMode: _isNavigationMode(),
223
209
  isEmptyDefaultBlock: name && (0, _blocks.isUnmodifiedDefaultBlock)({
224
210
  name,
225
211
  attributes
@@ -244,9 +230,7 @@ function WrappedBlockPopover(_ref2) {
244
230
  rootClientId,
245
231
  name,
246
232
  isEmptyDefaultBlock,
247
- capturingClientId,
248
- isDistractionFree,
249
- isNavigationMode
233
+ capturingClientId
250
234
  } = selected;
251
235
 
252
236
  if (!name) {
@@ -257,7 +241,6 @@ function WrappedBlockPopover(_ref2) {
257
241
  clientId: clientId,
258
242
  rootClientId: rootClientId,
259
243
  isEmptyDefaultBlock: isEmptyDefaultBlock,
260
- showContents: !isDistractionFree || isNavigationMode,
261
244
  capturingClientId: capturingClientId,
262
245
  __unstablePopoverSlot: __unstablePopoverSlot,
263
246
  __unstableContentRef: __unstableContentRef
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/selected-block-popover.js"],"names":["selector","select","__unstableGetEditorMode","isMultiSelecting","hasMultiSelection","isTyping","isBlockInterfaceHidden","getSettings","getLastMultiSelectedBlockClientId","blockEditorStore","editorMode","hasFixedToolbar","isDistractionFree","lastClientId","SelectedBlockPopover","clientId","rootClientId","isEmptyDefaultBlock","showContents","capturingClientId","__unstablePopoverSlot","__unstableContentRef","isInsertionPointVisible","isBlockInsertionPointVisible","getBlockInsertionPoint","getBlockOrder","insertionPoint","order","index","isLargeViewport","isToolbarForced","stopTyping","showEmptyBlockSideInserter","shouldShowBreadcrumb","shouldShowContextualToolbar","canFocusHiddenToolbar","current","isDisabled","initialToolbarItemIndexRef","popoverProps","contentElement","wrapperSelector","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getBlockRootClientId","getBlock","getBlockParents","isNavigationMode","_isNavigationMode","__experimentalGetBlockListSettingsForBlocks","name","attributes","blockParentsClientIds","parentBlockListSettings","find","parentClientId","__experimentalCaptureToolbars","settings","WrappedBlockPopover","selected"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useEffect } from '@wordpress/element';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockSelectionButton from './block-selection-button';\nimport BlockContextualToolbar from './block-contextual-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport BlockPopover from '../block-popover';\nimport useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';\nimport Inserter from '../inserter';\nimport { unlock } from '../../lock-unlock';\n\nfunction selector( select ) {\n\tconst {\n\t\t__unstableGetEditorMode,\n\t\tisMultiSelecting,\n\t\thasMultiSelection,\n\t\tisTyping,\n\t\tisBlockInterfaceHidden,\n\t\tgetSettings,\n\t\tgetLastMultiSelectedBlockClientId,\n\t} = unlock( select( blockEditorStore ) );\n\n\treturn {\n\t\teditorMode: __unstableGetEditorMode(),\n\t\thasMultiSelection: hasMultiSelection(),\n\t\tisMultiSelecting: isMultiSelecting(),\n\t\tisTyping: isTyping(),\n\t\tisBlockInterfaceHidden: isBlockInterfaceHidden(),\n\t\thasFixedToolbar: getSettings().hasFixedToolbar,\n\t\tisDistractionFree: getSettings().isDistractionFree,\n\t\tlastClientId: hasMultiSelection()\n\t\t\t? getLastMultiSelectedBlockClientId()\n\t\t\t: null,\n\t};\n}\n\nfunction SelectedBlockPopover( {\n\tclientId,\n\trootClientId,\n\tisEmptyDefaultBlock,\n\tshowContents, // we may need to mount an empty popover because we reuse\n\tcapturingClientId,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n} ) {\n\tconst {\n\t\teditorMode,\n\t\thasMultiSelection,\n\t\tisMultiSelecting,\n\t\tisTyping,\n\t\tisBlockInterfaceHidden,\n\t\thasFixedToolbar,\n\t\tisDistractionFree,\n\t\tlastClientId,\n\t} = useSelect( selector, [] );\n\tconst isInsertionPointVisible = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tif ( ! isBlockInsertionPointVisible() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\t\tconst order = getBlockOrder( insertionPoint.rootClientId );\n\t\t\treturn order[ insertionPoint.index ] === clientId;\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isToolbarForced = useRef( false );\n\tconst { stopTyping } = useDispatch( blockEditorStore );\n\n\tconst showEmptyBlockSideInserter =\n\t\t! isTyping && editorMode === 'edit' && isEmptyDefaultBlock;\n\tconst shouldShowBreadcrumb =\n\t\t! hasMultiSelection &&\n\t\t( editorMode === 'navigation' || editorMode === 'zoom-out' );\n\tconst shouldShowContextualToolbar =\n\t\teditorMode === 'edit' &&\n\t\t! hasFixedToolbar &&\n\t\tisLargeViewport &&\n\t\t! isMultiSelecting &&\n\t\t! showEmptyBlockSideInserter &&\n\t\t! isTyping &&\n\t\t! isBlockInterfaceHidden;\n\tconst canFocusHiddenToolbar =\n\t\teditorMode === 'edit' &&\n\t\t! shouldShowContextualToolbar &&\n\t\t! hasFixedToolbar &&\n\t\t! isDistractionFree &&\n\t\t! isEmptyDefaultBlock;\n\n\tuseShortcut(\n\t\t'core/block-editor/focus-toolbar',\n\t\t() => {\n\t\t\tisToolbarForced.current = true;\n\t\t\tstopTyping( true );\n\t\t},\n\t\t{\n\t\t\tisDisabled: ! canFocusHiddenToolbar,\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tisToolbarForced.current = false;\n\t} );\n\n\t// Stores the active toolbar item index so the block toolbar can return focus\n\t// to it when re-mounting.\n\tconst initialToolbarItemIndexRef = useRef();\n\n\tconst popoverProps = useBlockToolbarPopoverProps( {\n\t\tcontentElement: __unstableContentRef?.current,\n\t\tclientId,\n\t} );\n\n\tif ( showEmptyBlockSideInserter ) {\n\t\treturn (\n\t\t\t<BlockPopover\n\t\t\t\tclientId={ capturingClientId || clientId }\n\t\t\t\t__unstableCoverTarget\n\t\t\t\tbottomClientId={ lastClientId }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-block-list__block-side-inserter-popover',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\tresize={ false }\n\t\t\t\tshift={ false }\n\t\t\t\t{ ...popoverProps }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-block-list__empty-block-inserter\">\n\t\t\t\t\t<Inserter\n\t\t\t\t\t\tposition=\"bottom right\"\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</BlockPopover>\n\t\t);\n\t}\n\n\tif ( shouldShowBreadcrumb || shouldShowContextualToolbar ) {\n\t\treturn (\n\t\t\t<BlockPopover\n\t\t\t\tclientId={ capturingClientId || clientId }\n\t\t\t\tbottomClientId={ lastClientId }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-block-list__block-popover',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\tresize={ false }\n\t\t\t\t{ ...popoverProps }\n\t\t\t>\n\t\t\t\t{ shouldShowContextualToolbar && showContents && (\n\t\t\t\t\t<BlockContextualToolbar\n\t\t\t\t\t\t// If the toolbar is being shown because of being forced\n\t\t\t\t\t\t// it should focus the toolbar right after the mount.\n\t\t\t\t\t\tfocusOnMount={ isToolbarForced.current }\n\t\t\t\t\t\t__experimentalInitialIndex={\n\t\t\t\t\t\t\tinitialToolbarItemIndexRef.current\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__experimentalOnIndexChange={ ( index ) => {\n\t\t\t\t\t\t\tinitialToolbarItemIndexRef.current = index;\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t// Resets the index whenever the active block changes so\n\t\t\t\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\t\t\t\tkey={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ shouldShowBreadcrumb && (\n\t\t\t\t\t<BlockSelectionButton\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockPopover>\n\t\t);\n\t}\n\n\treturn null;\n}\n\nfunction wrapperSelector( select ) {\n\tconst {\n\t\tgetSelectedBlockClientId,\n\t\tgetFirstMultiSelectedBlockClientId,\n\t\tgetBlockRootClientId,\n\t\tgetBlock,\n\t\tgetBlockParents,\n\t\tgetSettings,\n\t\tisNavigationMode: _isNavigationMode,\n\t\t__experimentalGetBlockListSettingsForBlocks,\n\t} = select( blockEditorStore );\n\n\tconst clientId =\n\t\tgetSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();\n\n\tif ( ! clientId ) {\n\t\treturn;\n\t}\n\n\tconst { name, attributes = {} } = getBlock( clientId ) || {};\n\tconst blockParentsClientIds = getBlockParents( clientId );\n\n\t// Get Block List Settings for all ancestors of the current Block clientId.\n\tconst parentBlockListSettings = __experimentalGetBlockListSettingsForBlocks(\n\t\tblockParentsClientIds\n\t);\n\n\t// Get the clientId of the topmost parent with the capture toolbars setting.\n\tconst capturingClientId = blockParentsClientIds.find(\n\t\t( parentClientId ) =>\n\t\t\tparentBlockListSettings[ parentClientId ]\n\t\t\t\t?.__experimentalCaptureToolbars\n\t);\n\n\tconst settings = getSettings();\n\n\treturn {\n\t\tclientId,\n\t\trootClientId: getBlockRootClientId( clientId ),\n\t\tname,\n\t\tisDistractionFree: settings.isDistractionFree,\n\t\tisNavigationMode: _isNavigationMode(),\n\t\tisEmptyDefaultBlock:\n\t\t\tname && isUnmodifiedDefaultBlock( { name, attributes } ),\n\t\tcapturingClientId,\n\t};\n}\n\nexport default function WrappedBlockPopover( {\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n} ) {\n\tconst selected = useSelect( wrapperSelector, [] );\n\n\tif ( ! selected ) {\n\t\treturn null;\n\t}\n\n\tconst {\n\t\tclientId,\n\t\trootClientId,\n\t\tname,\n\t\tisEmptyDefaultBlock,\n\t\tcapturingClientId,\n\t\tisDistractionFree,\n\t\tisNavigationMode,\n\t} = selected;\n\n\tif ( ! name ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<SelectedBlockPopover\n\t\t\tclientId={ clientId }\n\t\t\trootClientId={ rootClientId }\n\t\t\tisEmptyDefaultBlock={ isEmptyDefaultBlock }\n\t\t\tshowContents={ ! isDistractionFree || isNavigationMode }\n\t\t\tcapturingClientId={ capturingClientId }\n\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/selected-block-popover.js"],"names":["selector","select","__unstableGetEditorMode","hasMultiSelection","isTyping","getLastMultiSelectedBlockClientId","blockEditorStore","editorMode","lastClientId","SelectedBlockPopover","clientId","rootClientId","isEmptyDefaultBlock","capturingClientId","__unstablePopoverSlot","__unstableContentRef","useShouldContextualToolbarShow","privateApis","isInsertionPointVisible","isBlockInsertionPointVisible","getBlockInsertionPoint","getBlockOrder","insertionPoint","order","index","isToolbarForced","shouldShowContextualToolbar","canFocusHiddenToolbar","stopTyping","showEmptyBlockSideInserter","shouldShowBreadcrumb","current","isDisabled","initialToolbarItemIndexRef","popoverProps","contentElement","wrapperSelector","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getBlockRootClientId","getBlock","getBlockParents","__experimentalGetBlockListSettingsForBlocks","name","attributes","blockParentsClientIds","parentBlockListSettings","find","parentClientId","__experimentalCaptureToolbars","WrappedBlockPopover","selected"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useEffect } from '@wordpress/element';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\n\n/**\n * Internal dependencies\n */\nimport BlockSelectionButton from './block-selection-button';\nimport BlockContextualToolbar from './block-contextual-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport BlockPopover from '../block-popover';\nimport useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';\nimport Inserter from '../inserter';\nimport { unlock } from '../../lock-unlock';\nimport { privateApis } from '../../private-apis';\n\nfunction selector( select ) {\n\tconst {\n\t\t__unstableGetEditorMode,\n\t\thasMultiSelection,\n\t\tisTyping,\n\t\tgetLastMultiSelectedBlockClientId,\n\t} = unlock( select( blockEditorStore ) );\n\n\treturn {\n\t\teditorMode: __unstableGetEditorMode(),\n\t\thasMultiSelection: hasMultiSelection(),\n\t\tisTyping: isTyping(),\n\t\tlastClientId: hasMultiSelection()\n\t\t\t? getLastMultiSelectedBlockClientId()\n\t\t\t: null,\n\t};\n}\n\nfunction SelectedBlockPopover( {\n\tclientId,\n\trootClientId,\n\tisEmptyDefaultBlock,\n\tcapturingClientId,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n} ) {\n\tconst { editorMode, hasMultiSelection, isTyping, lastClientId } = useSelect(\n\t\tselector,\n\t\t[]\n\t);\n\n\tconst { useShouldContextualToolbarShow } = unlock( privateApis );\n\tconst isInsertionPointVisible = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tif ( ! isBlockInsertionPointVisible() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\t\tconst order = getBlockOrder( insertionPoint.rootClientId );\n\t\t\treturn order[ insertionPoint.index ] === clientId;\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst isToolbarForced = useRef( false );\n\tconst { shouldShowContextualToolbar, canFocusHiddenToolbar } =\n\t\tuseShouldContextualToolbarShow( clientId );\n\n\tconst { stopTyping } = useDispatch( blockEditorStore );\n\n\tconst showEmptyBlockSideInserter =\n\t\t! isTyping && editorMode === 'edit' && isEmptyDefaultBlock;\n\tconst shouldShowBreadcrumb =\n\t\t! hasMultiSelection &&\n\t\t( editorMode === 'navigation' || editorMode === 'zoom-out' );\n\n\tuseShortcut(\n\t\t'core/block-editor/focus-toolbar',\n\t\t() => {\n\t\t\tisToolbarForced.current = true;\n\t\t\tstopTyping( true );\n\t\t},\n\t\t{\n\t\t\tisDisabled: ! canFocusHiddenToolbar,\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tisToolbarForced.current = false;\n\t} );\n\n\t// Stores the active toolbar item index so the block toolbar can return focus\n\t// to it when re-mounting.\n\tconst initialToolbarItemIndexRef = useRef();\n\n\tconst popoverProps = useBlockToolbarPopoverProps( {\n\t\tcontentElement: __unstableContentRef?.current,\n\t\tclientId,\n\t} );\n\n\tif ( showEmptyBlockSideInserter ) {\n\t\treturn (\n\t\t\t<BlockPopover\n\t\t\t\tclientId={ capturingClientId || clientId }\n\t\t\t\t__unstableCoverTarget\n\t\t\t\tbottomClientId={ lastClientId }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-block-list__block-side-inserter-popover',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\tresize={ false }\n\t\t\t\tshift={ false }\n\t\t\t\t{ ...popoverProps }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-block-list__empty-block-inserter\">\n\t\t\t\t\t<Inserter\n\t\t\t\t\t\tposition=\"bottom right\"\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</BlockPopover>\n\t\t);\n\t}\n\n\tif ( shouldShowBreadcrumb || shouldShowContextualToolbar ) {\n\t\treturn (\n\t\t\t<BlockPopover\n\t\t\t\tclientId={ capturingClientId || clientId }\n\t\t\t\tbottomClientId={ lastClientId }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-block-list__block-popover',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\tresize={ false }\n\t\t\t\t{ ...popoverProps }\n\t\t\t>\n\t\t\t\t{ shouldShowContextualToolbar && (\n\t\t\t\t\t<BlockContextualToolbar\n\t\t\t\t\t\t// If the toolbar is being shown because of being forced\n\t\t\t\t\t\t// it should focus the toolbar right after the mount.\n\t\t\t\t\t\tfocusOnMount={ isToolbarForced.current }\n\t\t\t\t\t\t__experimentalInitialIndex={\n\t\t\t\t\t\t\tinitialToolbarItemIndexRef.current\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__experimentalOnIndexChange={ ( index ) => {\n\t\t\t\t\t\t\tinitialToolbarItemIndexRef.current = index;\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t// Resets the index whenever the active block changes so\n\t\t\t\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\t\t\t\tkey={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ shouldShowBreadcrumb && (\n\t\t\t\t\t<BlockSelectionButton\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockPopover>\n\t\t);\n\t}\n\n\treturn null;\n}\n\nfunction wrapperSelector( select ) {\n\tconst {\n\t\tgetSelectedBlockClientId,\n\t\tgetFirstMultiSelectedBlockClientId,\n\t\tgetBlockRootClientId,\n\t\tgetBlock,\n\t\tgetBlockParents,\n\t\t__experimentalGetBlockListSettingsForBlocks,\n\t} = select( blockEditorStore );\n\n\tconst clientId =\n\t\tgetSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();\n\n\tif ( ! clientId ) {\n\t\treturn;\n\t}\n\n\tconst { name, attributes = {} } = getBlock( clientId ) || {};\n\tconst blockParentsClientIds = getBlockParents( clientId );\n\n\t// Get Block List Settings for all ancestors of the current Block clientId.\n\tconst parentBlockListSettings = __experimentalGetBlockListSettingsForBlocks(\n\t\tblockParentsClientIds\n\t);\n\n\t// Get the clientId of the topmost parent with the capture toolbars setting.\n\tconst capturingClientId = blockParentsClientIds.find(\n\t\t( parentClientId ) =>\n\t\t\tparentBlockListSettings[ parentClientId ]\n\t\t\t\t?.__experimentalCaptureToolbars\n\t);\n\n\treturn {\n\t\tclientId,\n\t\trootClientId: getBlockRootClientId( clientId ),\n\t\tname,\n\t\tisEmptyDefaultBlock:\n\t\t\tname && isUnmodifiedDefaultBlock( { name, attributes } ),\n\t\tcapturingClientId,\n\t};\n}\n\nexport default function WrappedBlockPopover( {\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n} ) {\n\tconst selected = useSelect( wrapperSelector, [] );\n\n\tif ( ! selected ) {\n\t\treturn null;\n\t}\n\n\tconst {\n\t\tclientId,\n\t\trootClientId,\n\t\tname,\n\t\tisEmptyDefaultBlock,\n\t\tcapturingClientId,\n\t} = selected;\n\n\tif ( ! name ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<SelectedBlockPopover\n\t\t\tclientId={ clientId }\n\t\t\trootClientId={ rootClientId }\n\t\t\tisEmptyDefaultBlock={ isEmptyDefaultBlock }\n\t\t\tcapturingClientId={ capturingClientId }\n\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t/>\n\t);\n}\n"]}
@@ -55,7 +55,6 @@ const Caption = _ref => {
55
55
  onChange: onChange,
56
56
  placeholder: placeholder,
57
57
  placeholderTextColor: placeholderTextColor,
58
- rootTagsToEliminate: ['p'],
59
58
  style: style,
60
59
  tagName: "p",
61
60
  textAlign: "center",
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/caption/index.native.js"],"names":["Caption","accessibilityLabelCreator","accessible","inlineToolbar","isSelected","onBlur","onChange","onFocus","placeholder","placeholderTextColor","shouldDisplay","style","value","insertBlocksAfter","undefined","flex","display","fontSize"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAVA;AACA;AACA;;AAGA;AACA;AACA;AAKA,MAAMA,OAAO,GAAG;AAAA,MAAE;AACjBC,IAAAA,yBADiB;AAEjBC,IAAAA,UAFiB;AAGjBC,IAAAA,aAHiB;AAIjBC,IAAAA,UAJiB;AAKjBC,IAAAA,MALiB;AAMjBC,IAAAA,QANiB;AAOjBC,IAAAA,OAPiB;AAQjBC,IAAAA,WAAW,GAAG,cAAI,aAAJ,CARG;AASjBC,IAAAA,oBATiB;AAUjBC,IAAAA,aAAa,GAAG,IAVC;AAWjBC,IAAAA,KAXiB;AAYjBC,IAAAA,KAZiB;AAajBC,IAAAA,iBAAiB,GAAG,MAAM,CAAE;AAbX,GAAF;AAAA,SAef,4BAAC,iBAAD;AACC,IAAA,kBAAkB,EACjBZ,yBAAyB,GACtBA,yBAAyB,CAAEW,KAAF,CADH,GAEtBE,SAJL;AAMC,IAAA,iBAAiB,EAAC,QANnB;AAOC,IAAA,UAAU,EAAGZ,UAPd;AAQC,IAAA,KAAK,EAAG;AAAEa,MAAAA,IAAI,EAAE,CAAR;AAAWC,MAAAA,OAAO,EAAEN,aAAa,GAAG,MAAH,GAAY;AAA7C;AART,KAUC,4BAAC,qBAAD;AACC,IAAA,8BAA8B,MAD/B;AAEC,IAAA,QAAQ,EAAGC,KAAK,IAAIA,KAAK,CAACM,QAAf,GAA0BN,KAAK,CAACM,QAAhC,GAA2C,EAFvD;AAGC,IAAA,aAAa,EAAGd,aAHjB;AAIC,IAAA,UAAU,EAAGC,UAJd;AAKC,IAAA,MAAM,EAAGC,MALV;AAMC,IAAA,QAAQ,EAAGC,QANZ;AAOC,IAAA,WAAW,EAAGE,WAPf;AAQC,IAAA,oBAAoB,EAAGC,oBARxB;AASC,IAAA,mBAAmB,EAAG,CAAE,GAAF,CATvB;AAUC,IAAA,KAAK,EAAGE,KAVT;AAWC,IAAA,OAAO,EAAC,GAXT;AAYC,IAAA,SAAS,EAAC,QAZX;AAaC,IAAA,qBAAqB,EAAC,aAbvB;AAcC,IAAA,eAAe,EAAGJ,OAdnB;AAeC,IAAA,KAAK,EAAGK,KAfT;AAgBC,IAAA,sBAAsB,EAAG,MACxBC,iBAAiB,CAAE,yBAAa,gBAAb,CAAF,CAjBnB;AAmBC,IAAA,WAAW,EAAG;AAnBf,IAVD,CAfe;AAAA,CAAhB;;eAiDeb,O","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { RichText } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\nconst Caption = ( {\n\taccessibilityLabelCreator,\n\taccessible,\n\tinlineToolbar,\n\tisSelected,\n\tonBlur,\n\tonChange,\n\tonFocus,\n\tplaceholder = __( 'Add caption' ),\n\tplaceholderTextColor,\n\tshouldDisplay = true,\n\tstyle,\n\tvalue,\n\tinsertBlocksAfter = () => {},\n} ) => (\n\t<View\n\t\taccessibilityLabel={\n\t\t\taccessibilityLabelCreator\n\t\t\t\t? accessibilityLabelCreator( value )\n\t\t\t\t: undefined\n\t\t}\n\t\taccessibilityRole=\"button\"\n\t\taccessible={ accessible }\n\t\tstyle={ { flex: 1, display: shouldDisplay ? 'flex' : 'none' } }\n\t>\n\t\t<RichText\n\t\t\t__unstableMobileNoFocusOnMount\n\t\t\tfontSize={ style && style.fontSize ? style.fontSize : 14 }\n\t\t\tinlineToolbar={ inlineToolbar }\n\t\t\tisSelected={ isSelected }\n\t\t\tonBlur={ onBlur }\n\t\t\tonChange={ onChange }\n\t\t\tplaceholder={ placeholder }\n\t\t\tplaceholderTextColor={ placeholderTextColor }\n\t\t\trootTagsToEliminate={ [ 'p' ] }\n\t\t\tstyle={ style }\n\t\t\ttagName=\"p\"\n\t\t\ttextAlign=\"center\"\n\t\t\tunderlineColorAndroid=\"transparent\"\n\t\t\tunstableOnFocus={ onFocus }\n\t\t\tvalue={ value }\n\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\tinsertBlocksAfter( createBlock( 'core/paragraph' ) )\n\t\t\t}\n\t\t\tdeleteEnter={ true }\n\t\t/>\n\t</View>\n);\n\nexport default Caption;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/caption/index.native.js"],"names":["Caption","accessibilityLabelCreator","accessible","inlineToolbar","isSelected","onBlur","onChange","onFocus","placeholder","placeholderTextColor","shouldDisplay","style","value","insertBlocksAfter","undefined","flex","display","fontSize"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAVA;AACA;AACA;;AAGA;AACA;AACA;AAKA,MAAMA,OAAO,GAAG;AAAA,MAAE;AACjBC,IAAAA,yBADiB;AAEjBC,IAAAA,UAFiB;AAGjBC,IAAAA,aAHiB;AAIjBC,IAAAA,UAJiB;AAKjBC,IAAAA,MALiB;AAMjBC,IAAAA,QANiB;AAOjBC,IAAAA,OAPiB;AAQjBC,IAAAA,WAAW,GAAG,cAAI,aAAJ,CARG;AASjBC,IAAAA,oBATiB;AAUjBC,IAAAA,aAAa,GAAG,IAVC;AAWjBC,IAAAA,KAXiB;AAYjBC,IAAAA,KAZiB;AAajBC,IAAAA,iBAAiB,GAAG,MAAM,CAAE;AAbX,GAAF;AAAA,SAef,4BAAC,iBAAD;AACC,IAAA,kBAAkB,EACjBZ,yBAAyB,GACtBA,yBAAyB,CAAEW,KAAF,CADH,GAEtBE,SAJL;AAMC,IAAA,iBAAiB,EAAC,QANnB;AAOC,IAAA,UAAU,EAAGZ,UAPd;AAQC,IAAA,KAAK,EAAG;AAAEa,MAAAA,IAAI,EAAE,CAAR;AAAWC,MAAAA,OAAO,EAAEN,aAAa,GAAG,MAAH,GAAY;AAA7C;AART,KAUC,4BAAC,qBAAD;AACC,IAAA,8BAA8B,MAD/B;AAEC,IAAA,QAAQ,EAAGC,KAAK,IAAIA,KAAK,CAACM,QAAf,GAA0BN,KAAK,CAACM,QAAhC,GAA2C,EAFvD;AAGC,IAAA,aAAa,EAAGd,aAHjB;AAIC,IAAA,UAAU,EAAGC,UAJd;AAKC,IAAA,MAAM,EAAGC,MALV;AAMC,IAAA,QAAQ,EAAGC,QANZ;AAOC,IAAA,WAAW,EAAGE,WAPf;AAQC,IAAA,oBAAoB,EAAGC,oBARxB;AASC,IAAA,KAAK,EAAGE,KATT;AAUC,IAAA,OAAO,EAAC,GAVT;AAWC,IAAA,SAAS,EAAC,QAXX;AAYC,IAAA,qBAAqB,EAAC,aAZvB;AAaC,IAAA,eAAe,EAAGJ,OAbnB;AAcC,IAAA,KAAK,EAAGK,KAdT;AAeC,IAAA,sBAAsB,EAAG,MACxBC,iBAAiB,CAAE,yBAAa,gBAAb,CAAF,CAhBnB;AAkBC,IAAA,WAAW,EAAG;AAlBf,IAVD,CAfe;AAAA,CAAhB;;eAgDeb,O","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { RichText } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\nconst Caption = ( {\n\taccessibilityLabelCreator,\n\taccessible,\n\tinlineToolbar,\n\tisSelected,\n\tonBlur,\n\tonChange,\n\tonFocus,\n\tplaceholder = __( 'Add caption' ),\n\tplaceholderTextColor,\n\tshouldDisplay = true,\n\tstyle,\n\tvalue,\n\tinsertBlocksAfter = () => {},\n} ) => (\n\t<View\n\t\taccessibilityLabel={\n\t\t\taccessibilityLabelCreator\n\t\t\t\t? accessibilityLabelCreator( value )\n\t\t\t\t: undefined\n\t\t}\n\t\taccessibilityRole=\"button\"\n\t\taccessible={ accessible }\n\t\tstyle={ { flex: 1, display: shouldDisplay ? 'flex' : 'none' } }\n\t>\n\t\t<RichText\n\t\t\t__unstableMobileNoFocusOnMount\n\t\t\tfontSize={ style && style.fontSize ? style.fontSize : 14 }\n\t\t\tinlineToolbar={ inlineToolbar }\n\t\t\tisSelected={ isSelected }\n\t\t\tonBlur={ onBlur }\n\t\t\tonChange={ onChange }\n\t\t\tplaceholder={ placeholder }\n\t\t\tplaceholderTextColor={ placeholderTextColor }\n\t\t\tstyle={ style }\n\t\t\ttagName=\"p\"\n\t\t\ttextAlign=\"center\"\n\t\t\tunderlineColorAndroid=\"transparent\"\n\t\t\tunstableOnFocus={ onFocus }\n\t\t\tvalue={ value }\n\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\tinsertBlocksAfter( createBlock( 'core/paragraph' ) )\n\t\t\t}\n\t\t\tdeleteEnter={ true }\n\t\t/>\n\t</View>\n);\n\nexport default Caption;\n"]}
@@ -116,7 +116,7 @@ function NonDefaultControls(_ref2) {
116
116
  hideLabelFromVision: true,
117
117
  help: (0, _element.createInterpolateElement)((0, _i18n.__)('Enter a date or time <Link>format string</Link>.'), {
118
118
  Link: (0, _element.createElement)(_components.ExternalLink, {
119
- href: (0, _i18n.__)('https://wordpress.org/support/article/formatting-date-and-time/')
119
+ href: (0, _i18n.__)('https://wordpress.org/documentation/article/customize-date-and-time-format/')
120
120
  })
121
121
  }),
122
122
  value: format,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/date-format-picker/index.js"],"names":["EXAMPLE_DATE","Date","DateFormatPicker","format","defaultFormat","onChange","checked","NonDefaultControls","suggestedFormats","Set","suggestedOptions","map","suggestedFormat","index","key","name","customOption","className","__experimentalHint","isCustom","setIsCustom","includes","find","option","selectedItem","Link","value"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x, __ } from '@wordpress/i18n';\nimport { dateI18n } from '@wordpress/date';\nimport { useState, createInterpolateElement } from '@wordpress/element';\nimport {\n\tTextControl,\n\tExternalLink,\n\tVisuallyHidden,\n\tCustomSelectControl,\n\tToggleControl,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n// So that we can illustrate the different formats in the dropdown properly,\n// show a date that has a day greater than 12 and a month with more than three\n// letters. Here we're using 2022-01-25 which is when WordPress 5.9 was\n// released.\nconst EXAMPLE_DATE = new Date( 2022, 0, 25 );\n\n/**\n * The `DateFormatPicker` component renders controls that let the user choose a\n * _date format_. That is, how they want their dates to be formatted.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/date-format-picker/README.md\n *\n * @param {Object} props\n * @param {string|null} props.format The selected date\n * format. If\n * `null`,\n * _Default_ is\n * selected.\n * @param {string} props.defaultFormat The date format that\n * will be used if the\n * user selects\n * 'Default'.\n * @param {( format: string|null ) => void} props.onChange Called when a\n * selection is\n * made. If `null`,\n * _Default_ is\n * selected.\n */\nexport default function DateFormatPicker( {\n\tformat,\n\tdefaultFormat,\n\tonChange,\n} ) {\n\treturn (\n\t\t<fieldset className=\"block-editor-date-format-picker\">\n\t\t\t<VisuallyHidden as=\"legend\">{ __( 'Date format' ) }</VisuallyHidden>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Default format' ) }\n\t\t\t\thelp={ `${ __( 'Example:' ) } ${ dateI18n(\n\t\t\t\t\tdefaultFormat,\n\t\t\t\t\tEXAMPLE_DATE\n\t\t\t\t) }` }\n\t\t\t\tchecked={ ! format }\n\t\t\t\tonChange={ ( checked ) =>\n\t\t\t\t\tonChange( checked ? null : defaultFormat )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ format && (\n\t\t\t\t<NonDefaultControls format={ format } onChange={ onChange } />\n\t\t\t) }\n\t\t</fieldset>\n\t);\n}\n\nfunction NonDefaultControls( { format, onChange } ) {\n\t// Suggest a short format, medium format, long format, and a standardised\n\t// (YYYY-MM-DD) format. The short, medium, and long formats are localised as\n\t// different languages have different ways of writing these. For example, 'F\n\t// j, Y' (April 20, 2022) in American English (en_US) is 'j. F Y' (20. April\n\t// 2022) in German (de). The resultant array is de-duplicated as some\n\t// languages will use the same format string for short, medium, and long\n\t// formats.\n\tconst suggestedFormats = [\n\t\t...new Set( [\n\t\t\t'Y-m-d',\n\t\t\t_x( 'n/j/Y', 'short date format' ),\n\t\t\t_x( 'n/j/Y g:i A', 'short date format with time' ),\n\t\t\t_x( 'M j, Y', 'medium date format' ),\n\t\t\t_x( 'M j, Y g:i A', 'medium date format with time' ),\n\t\t\t_x( 'F j, Y', 'long date format' ),\n\t\t\t_x( 'M j', 'short date format without the year' ),\n\t\t] ),\n\t];\n\n\tconst suggestedOptions = suggestedFormats.map(\n\t\t( suggestedFormat, index ) => ( {\n\t\t\tkey: `suggested-${ index }`,\n\t\t\tname: dateI18n( suggestedFormat, EXAMPLE_DATE ),\n\t\t\tformat: suggestedFormat,\n\t\t} )\n\t);\n\tconst customOption = {\n\t\tkey: 'custom',\n\t\tname: __( 'Custom' ),\n\t\tclassName:\n\t\t\t'block-editor-date-format-picker__custom-format-select-control__custom-option',\n\t\t__experimentalHint: __( 'Enter your own date format' ),\n\t};\n\n\tconst [ isCustom, setIsCustom ] = useState(\n\t\t() => !! format && ! suggestedFormats.includes( format )\n\t);\n\n\treturn (\n\t\t<VStack>\n\t\t\t<CustomSelectControl\n\t\t\t\t__nextUnconstrainedWidth\n\t\t\t\tlabel={ __( 'Choose a format' ) }\n\t\t\t\toptions={ [ ...suggestedOptions, customOption ] }\n\t\t\t\tvalue={\n\t\t\t\t\tisCustom\n\t\t\t\t\t\t? customOption\n\t\t\t\t\t\t: suggestedOptions.find(\n\t\t\t\t\t\t\t\t( option ) => option.format === format\n\t\t\t\t\t\t ) ?? customOption\n\t\t\t\t}\n\t\t\t\tonChange={ ( { selectedItem } ) => {\n\t\t\t\t\tif ( selectedItem === customOption ) {\n\t\t\t\t\t\tsetIsCustom( true );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetIsCustom( false );\n\t\t\t\t\t\tonChange( selectedItem.format );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ isCustom && (\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Custom format' ) }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Enter a date or time <Link>format string</Link>.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLink: (\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/support/article/formatting-date-and-time/'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tvalue={ format }\n\t\t\t\t\tonChange={ ( value ) => onChange( value ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/date-format-picker/index.js"],"names":["EXAMPLE_DATE","Date","DateFormatPicker","format","defaultFormat","onChange","checked","NonDefaultControls","suggestedFormats","Set","suggestedOptions","map","suggestedFormat","index","key","name","customOption","className","__experimentalHint","isCustom","setIsCustom","includes","find","option","selectedItem","Link","value"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x, __ } from '@wordpress/i18n';\nimport { dateI18n } from '@wordpress/date';\nimport { useState, createInterpolateElement } from '@wordpress/element';\nimport {\n\tTextControl,\n\tExternalLink,\n\tVisuallyHidden,\n\tCustomSelectControl,\n\tToggleControl,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n// So that we can illustrate the different formats in the dropdown properly,\n// show a date that has a day greater than 12 and a month with more than three\n// letters. Here we're using 2022-01-25 which is when WordPress 5.9 was\n// released.\nconst EXAMPLE_DATE = new Date( 2022, 0, 25 );\n\n/**\n * The `DateFormatPicker` component renders controls that let the user choose a\n * _date format_. That is, how they want their dates to be formatted.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/date-format-picker/README.md\n *\n * @param {Object} props\n * @param {string|null} props.format The selected date\n * format. If\n * `null`,\n * _Default_ is\n * selected.\n * @param {string} props.defaultFormat The date format that\n * will be used if the\n * user selects\n * 'Default'.\n * @param {( format: string|null ) => void} props.onChange Called when a\n * selection is\n * made. If `null`,\n * _Default_ is\n * selected.\n */\nexport default function DateFormatPicker( {\n\tformat,\n\tdefaultFormat,\n\tonChange,\n} ) {\n\treturn (\n\t\t<fieldset className=\"block-editor-date-format-picker\">\n\t\t\t<VisuallyHidden as=\"legend\">{ __( 'Date format' ) }</VisuallyHidden>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Default format' ) }\n\t\t\t\thelp={ `${ __( 'Example:' ) } ${ dateI18n(\n\t\t\t\t\tdefaultFormat,\n\t\t\t\t\tEXAMPLE_DATE\n\t\t\t\t) }` }\n\t\t\t\tchecked={ ! format }\n\t\t\t\tonChange={ ( checked ) =>\n\t\t\t\t\tonChange( checked ? null : defaultFormat )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ format && (\n\t\t\t\t<NonDefaultControls format={ format } onChange={ onChange } />\n\t\t\t) }\n\t\t</fieldset>\n\t);\n}\n\nfunction NonDefaultControls( { format, onChange } ) {\n\t// Suggest a short format, medium format, long format, and a standardised\n\t// (YYYY-MM-DD) format. The short, medium, and long formats are localised as\n\t// different languages have different ways of writing these. For example, 'F\n\t// j, Y' (April 20, 2022) in American English (en_US) is 'j. F Y' (20. April\n\t// 2022) in German (de). The resultant array is de-duplicated as some\n\t// languages will use the same format string for short, medium, and long\n\t// formats.\n\tconst suggestedFormats = [\n\t\t...new Set( [\n\t\t\t'Y-m-d',\n\t\t\t_x( 'n/j/Y', 'short date format' ),\n\t\t\t_x( 'n/j/Y g:i A', 'short date format with time' ),\n\t\t\t_x( 'M j, Y', 'medium date format' ),\n\t\t\t_x( 'M j, Y g:i A', 'medium date format with time' ),\n\t\t\t_x( 'F j, Y', 'long date format' ),\n\t\t\t_x( 'M j', 'short date format without the year' ),\n\t\t] ),\n\t];\n\n\tconst suggestedOptions = suggestedFormats.map(\n\t\t( suggestedFormat, index ) => ( {\n\t\t\tkey: `suggested-${ index }`,\n\t\t\tname: dateI18n( suggestedFormat, EXAMPLE_DATE ),\n\t\t\tformat: suggestedFormat,\n\t\t} )\n\t);\n\tconst customOption = {\n\t\tkey: 'custom',\n\t\tname: __( 'Custom' ),\n\t\tclassName:\n\t\t\t'block-editor-date-format-picker__custom-format-select-control__custom-option',\n\t\t__experimentalHint: __( 'Enter your own date format' ),\n\t};\n\n\tconst [ isCustom, setIsCustom ] = useState(\n\t\t() => !! format && ! suggestedFormats.includes( format )\n\t);\n\n\treturn (\n\t\t<VStack>\n\t\t\t<CustomSelectControl\n\t\t\t\t__nextUnconstrainedWidth\n\t\t\t\tlabel={ __( 'Choose a format' ) }\n\t\t\t\toptions={ [ ...suggestedOptions, customOption ] }\n\t\t\t\tvalue={\n\t\t\t\t\tisCustom\n\t\t\t\t\t\t? customOption\n\t\t\t\t\t\t: suggestedOptions.find(\n\t\t\t\t\t\t\t\t( option ) => option.format === format\n\t\t\t\t\t\t ) ?? customOption\n\t\t\t\t}\n\t\t\t\tonChange={ ( { selectedItem } ) => {\n\t\t\t\t\tif ( selectedItem === customOption ) {\n\t\t\t\t\t\tsetIsCustom( true );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetIsCustom( false );\n\t\t\t\t\t\tonChange( selectedItem.format );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ isCustom && (\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Custom format' ) }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Enter a date or time <Link>format string</Link>.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLink: (\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/customize-date-and-time-format/'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tvalue={ format }\n\t\t\t\t\tonChange={ ( value ) => onChange( value ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n"]}
@@ -76,10 +76,11 @@ function EditorStyles(_ref) {
76
76
  let {
77
77
  styles
78
78
  } = _ref;
79
- const transformedStyles = (0, _element.useMemo)(() => (0, _transformStyles.default)(styles.filter(style => style === null || style === void 0 ? void 0 : style.css), EDITOR_STYLES_SELECTOR), [styles]);
80
- const transformedSvgs = (0, _element.useMemo)(() => styles.filter(style => style.__unstableType === 'svgs').map(style => style.assets).join(''), [styles]);
79
+ const stylesArray = (0, _element.useMemo)(() => Object.values(styles !== null && styles !== void 0 ? styles : []), [styles]);
80
+ const transformedStyles = (0, _element.useMemo)(() => (0, _transformStyles.default)(stylesArray.filter(style => style === null || style === void 0 ? void 0 : style.css), EDITOR_STYLES_SELECTOR), [stylesArray]);
81
+ const transformedSvgs = (0, _element.useMemo)(() => stylesArray.filter(style => style.__unstableType === 'svgs').map(style => style.assets).join(''), [stylesArray]);
81
82
  return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)("style", {
82
- ref: useDarkThemeBodyClassName(styles)
83
+ ref: useDarkThemeBodyClassName(stylesArray)
83
84
  }), transformedStyles.map((css, index) => (0, _element.createElement)("style", {
84
85
  key: index
85
86
  }, css)), (0, _element.createElement)(_components.SVG, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/editor-styles/index.js"],"names":["EDITOR_STYLES_SELECTOR","namesPlugin","a11yPlugin","useDarkThemeBodyClassName","styles","node","ownerDocument","defaultView","body","canvas","querySelector","backgroundColor","tempCanvas","createElement","classList","add","appendChild","getComputedStyle","getPropertyValue","removeChild","colordBackgroundColor","luminance","alpha","remove","EditorStyles","transformedStyles","filter","style","css","transformedSvgs","__unstableType","map","assets","join","index","visibility","position","left","overflow","__html"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\nimport a11yPlugin from 'colord/plugins/a11y';\n\n/**\n * WordPress dependencies\n */\nimport { SVG } from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport transformStyles from '../../utils/transform-styles';\n\nconst EDITOR_STYLES_SELECTOR = '.editor-styles-wrapper';\nextend( [ namesPlugin, a11yPlugin ] );\n\nfunction useDarkThemeBodyClassName( styles ) {\n\treturn useCallback(\n\t\t( node ) => {\n\t\t\tif ( ! node ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { ownerDocument } = node;\n\t\t\tconst { defaultView, body } = ownerDocument;\n\t\t\tconst canvas = ownerDocument.querySelector(\n\t\t\t\tEDITOR_STYLES_SELECTOR\n\t\t\t);\n\n\t\t\tlet backgroundColor;\n\n\t\t\tif ( ! canvas ) {\n\t\t\t\t// The real .editor-styles-wrapper element might not exist in the\n\t\t\t\t// DOM, so calculate the background color by creating a fake\n\t\t\t\t// wrapper.\n\t\t\t\tconst tempCanvas = ownerDocument.createElement( 'div' );\n\t\t\t\ttempCanvas.classList.add( 'editor-styles-wrapper' );\n\t\t\t\tbody.appendChild( tempCanvas );\n\n\t\t\t\tbackgroundColor = defaultView\n\t\t\t\t\t.getComputedStyle( tempCanvas, null )\n\t\t\t\t\t.getPropertyValue( 'background-color' );\n\n\t\t\t\tbody.removeChild( tempCanvas );\n\t\t\t} else {\n\t\t\t\tbackgroundColor = defaultView\n\t\t\t\t\t.getComputedStyle( canvas, null )\n\t\t\t\t\t.getPropertyValue( 'background-color' );\n\t\t\t}\n\t\t\tconst colordBackgroundColor = colord( backgroundColor );\n\t\t\t// If background is transparent, it should be treated as light color.\n\t\t\tif (\n\t\t\t\tcolordBackgroundColor.luminance() > 0.5 ||\n\t\t\t\tcolordBackgroundColor.alpha() === 0\n\t\t\t) {\n\t\t\t\tbody.classList.remove( 'is-dark-theme' );\n\t\t\t} else {\n\t\t\t\tbody.classList.add( 'is-dark-theme' );\n\t\t\t}\n\t\t},\n\t\t[ styles ]\n\t);\n}\n\nexport default function EditorStyles( { styles } ) {\n\tconst transformedStyles = useMemo(\n\t\t() =>\n\t\t\ttransformStyles(\n\t\t\t\tstyles.filter( ( style ) => style?.css ),\n\t\t\t\tEDITOR_STYLES_SELECTOR\n\t\t\t),\n\t\t[ styles ]\n\t);\n\n\tconst transformedSvgs = useMemo(\n\t\t() =>\n\t\t\tstyles\n\t\t\t\t.filter( ( style ) => style.__unstableType === 'svgs' )\n\t\t\t\t.map( ( style ) => style.assets )\n\t\t\t\t.join( '' ),\n\t\t[ styles ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ /* Use an empty style element to have a document reference,\n\t\t\t but this could be any element. */ }\n\t\t\t<style ref={ useDarkThemeBodyClassName( styles ) } />\n\t\t\t{ transformedStyles.map( ( css, index ) => (\n\t\t\t\t<style key={ index }>{ css }</style>\n\t\t\t) ) }\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tviewBox=\"0 0 0 0\"\n\t\t\t\twidth=\"0\"\n\t\t\t\theight=\"0\"\n\t\t\t\trole=\"none\"\n\t\t\t\tstyle={ {\n\t\t\t\t\tvisibility: 'hidden',\n\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\tleft: '-9999px',\n\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t} }\n\t\t\t\tdangerouslySetInnerHTML={ { __html: transformedSvgs } }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/editor-styles/index.js"],"names":["EDITOR_STYLES_SELECTOR","namesPlugin","a11yPlugin","useDarkThemeBodyClassName","styles","node","ownerDocument","defaultView","body","canvas","querySelector","backgroundColor","tempCanvas","createElement","classList","add","appendChild","getComputedStyle","getPropertyValue","removeChild","colordBackgroundColor","luminance","alpha","remove","EditorStyles","stylesArray","Object","values","transformedStyles","filter","style","css","transformedSvgs","__unstableType","map","assets","join","index","visibility","position","left","overflow","__html"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\nimport a11yPlugin from 'colord/plugins/a11y';\n\n/**\n * WordPress dependencies\n */\nimport { SVG } from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport transformStyles from '../../utils/transform-styles';\n\nconst EDITOR_STYLES_SELECTOR = '.editor-styles-wrapper';\nextend( [ namesPlugin, a11yPlugin ] );\n\nfunction useDarkThemeBodyClassName( styles ) {\n\treturn useCallback(\n\t\t( node ) => {\n\t\t\tif ( ! node ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { ownerDocument } = node;\n\t\t\tconst { defaultView, body } = ownerDocument;\n\t\t\tconst canvas = ownerDocument.querySelector(\n\t\t\t\tEDITOR_STYLES_SELECTOR\n\t\t\t);\n\n\t\t\tlet backgroundColor;\n\n\t\t\tif ( ! canvas ) {\n\t\t\t\t// The real .editor-styles-wrapper element might not exist in the\n\t\t\t\t// DOM, so calculate the background color by creating a fake\n\t\t\t\t// wrapper.\n\t\t\t\tconst tempCanvas = ownerDocument.createElement( 'div' );\n\t\t\t\ttempCanvas.classList.add( 'editor-styles-wrapper' );\n\t\t\t\tbody.appendChild( tempCanvas );\n\n\t\t\t\tbackgroundColor = defaultView\n\t\t\t\t\t.getComputedStyle( tempCanvas, null )\n\t\t\t\t\t.getPropertyValue( 'background-color' );\n\n\t\t\t\tbody.removeChild( tempCanvas );\n\t\t\t} else {\n\t\t\t\tbackgroundColor = defaultView\n\t\t\t\t\t.getComputedStyle( canvas, null )\n\t\t\t\t\t.getPropertyValue( 'background-color' );\n\t\t\t}\n\t\t\tconst colordBackgroundColor = colord( backgroundColor );\n\t\t\t// If background is transparent, it should be treated as light color.\n\t\t\tif (\n\t\t\t\tcolordBackgroundColor.luminance() > 0.5 ||\n\t\t\t\tcolordBackgroundColor.alpha() === 0\n\t\t\t) {\n\t\t\t\tbody.classList.remove( 'is-dark-theme' );\n\t\t\t} else {\n\t\t\t\tbody.classList.add( 'is-dark-theme' );\n\t\t\t}\n\t\t},\n\t\t[ styles ]\n\t);\n}\n\nexport default function EditorStyles( { styles } ) {\n\tconst stylesArray = useMemo(\n\t\t() => Object.values( styles ?? [] ),\n\t\t[ styles ]\n\t);\n\tconst transformedStyles = useMemo(\n\t\t() =>\n\t\t\ttransformStyles(\n\t\t\t\tstylesArray.filter( ( style ) => style?.css ),\n\t\t\t\tEDITOR_STYLES_SELECTOR\n\t\t\t),\n\t\t[ stylesArray ]\n\t);\n\n\tconst transformedSvgs = useMemo(\n\t\t() =>\n\t\t\tstylesArray\n\t\t\t\t.filter( ( style ) => style.__unstableType === 'svgs' )\n\t\t\t\t.map( ( style ) => style.assets )\n\t\t\t\t.join( '' ),\n\t\t[ stylesArray ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ /* Use an empty style element to have a document reference,\n\t\t\t but this could be any element. */ }\n\t\t\t<style ref={ useDarkThemeBodyClassName( stylesArray ) } />\n\t\t\t{ transformedStyles.map( ( css, index ) => (\n\t\t\t\t<style key={ index }>{ css }</style>\n\t\t\t) ) }\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tviewBox=\"0 0 0 0\"\n\t\t\t\twidth=\"0\"\n\t\t\t\theight=\"0\"\n\t\t\t\trole=\"none\"\n\t\t\t\tstyle={ {\n\t\t\t\t\tvisibility: 'hidden',\n\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\tleft: '-9999px',\n\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t} }\n\t\t\t\tdangerouslySetInnerHTML={ { __html: transformedSvgs } }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"]}
@@ -14,17 +14,16 @@ exports.roundToPrecision = roundToPrecision;
14
14
  */
15
15
  // Defaults.
16
16
  const DEFAULT_MAXIMUM_VIEWPORT_WIDTH = '1600px';
17
- const DEFAULT_MINIMUM_VIEWPORT_WIDTH = '768px';
17
+ const DEFAULT_MINIMUM_VIEWPORT_WIDTH = '320px';
18
18
  const DEFAULT_SCALE_FACTOR = 1;
19
- const DEFAULT_MINIMUM_FONT_SIZE_FACTOR = 0.75;
19
+ const DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MIN = 0.25;
20
+ const DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MAX = 0.75;
20
21
  const DEFAULT_MINIMUM_FONT_SIZE_LIMIT = '14px';
21
22
  /**
22
23
  * Computes a fluid font-size value that uses clamp(). A minimum and maximum
23
24
  * font size OR a single font size can be specified.
24
25
  *
25
- * If a single font size is specified, it is scaled up and down by
26
- * minimumFontSizeFactor and maximumFontSizeFactor to arrive at the minimum and
27
- * maximum sizes.
26
+ * If a single font size is specified, it is scaled up and down using a logarithmic scale.
28
27
  *
29
28
  * @example
30
29
  * ```js
@@ -40,14 +39,13 @@ const DEFAULT_MINIMUM_FONT_SIZE_LIMIT = '14px';
40
39
  * ```
41
40
  *
42
41
  * @param {Object} args
43
- * @param {?string} args.minimumViewPortWidth Minimum viewport size from which type will have fluidity. Optional if fontSize is specified.
44
- * @param {?string} args.maximumViewPortWidth Maximum size up to which type will have fluidity. Optional if fontSize is specified.
45
- * @param {string|number} [args.fontSize] Size to derive maximumFontSize and minimumFontSize from, if necessary. Optional if minimumFontSize and maximumFontSize are specified.
46
- * @param {?string} args.maximumFontSize Maximum font size for any clamp() calculation. Optional.
47
- * @param {?string} args.minimumFontSize Minimum font size for any clamp() calculation. Optional.
48
- * @param {?number} args.scaleFactor A scale factor to determine how fast a font scales within boundaries. Optional.
49
- * @param {?number} args.minimumFontSizeFactor How much to scale defaultFontSize by to derive minimumFontSize. Optional.
50
- * @param {?string} args.minimumFontSizeLimit The smallest a calculated font size may be. Optional.
42
+ * @param {?string} args.minimumViewPortWidth Minimum viewport size from which type will have fluidity. Optional if fontSize is specified.
43
+ * @param {?string} args.maximumViewPortWidth Maximum size up to which type will have fluidity. Optional if fontSize is specified.
44
+ * @param {string|number} [args.fontSize] Size to derive maximumFontSize and minimumFontSize from, if necessary. Optional if minimumFontSize and maximumFontSize are specified.
45
+ * @param {?string} args.maximumFontSize Maximum font size for any clamp() calculation. Optional.
46
+ * @param {?string} args.minimumFontSize Minimum font size for any clamp() calculation. Optional.
47
+ * @param {?number} args.scaleFactor A scale factor to determine how fast a font scales within boundaries. Optional.
48
+ * @param {?string} args.minimumFontSizeLimit The smallest a calculated font size may be. Optional.
51
49
  *
52
50
  * @return {string|null} A font-size value using clamp().
53
51
  */
@@ -60,7 +58,6 @@ function getComputedFluidTypographyValue(_ref) {
60
58
  minimumViewPortWidth = DEFAULT_MINIMUM_VIEWPORT_WIDTH,
61
59
  maximumViewPortWidth = DEFAULT_MAXIMUM_VIEWPORT_WIDTH,
62
60
  scaleFactor = DEFAULT_SCALE_FACTOR,
63
- minimumFontSizeFactor = DEFAULT_MINIMUM_FONT_SIZE_FACTOR,
64
61
  minimumFontSizeLimit
65
62
  } = _ref;
66
63
  // Validate incoming settings and set defaults.
@@ -105,6 +102,16 @@ function getComputedFluidTypographyValue(_ref) {
105
102
 
106
103
 
107
104
  if (!minimumFontSize) {
105
+ const fontSizeValueInPx = fontSizeParsed.unit === 'px' ? fontSizeParsed.value : fontSizeParsed.value * 16;
106
+ /*
107
+ * The scale factor is a multiplier that affects how quickly the curve will move towards the minimum,
108
+ * that is, how quickly the size factor reaches 0 given increasing font size values.
109
+ * For a - b * log2(), lower values of b will make the curve move towards the minimum faster.
110
+ * The scale factor is constrained between min and max values.
111
+ */
112
+
113
+ const minimumFontSizeFactor = Math.min(Math.max(1 - 0.075 * Math.log2(fontSizeValueInPx), DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MIN), DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MAX); // Calculates the minimum font size.
114
+
108
115
  const calculatedMinimumFontSize = roundToPrecision(fontSizeParsed.value * minimumFontSizeFactor, 3); // Only use calculated min font size if it's > $minimum_font_size_limit value.
109
116
 
110
117
  if (!!(minimumFontSizeLimitParsed !== null && minimumFontSizeLimitParsed !== void 0 && minimumFontSizeLimitParsed.value) && calculatedMinimumFontSize < (minimumFontSizeLimitParsed === null || minimumFontSizeLimitParsed === void 0 ? void 0 : minimumFontSizeLimitParsed.value)) {