@wordpress/edit-site 5.4.0 → 5.6.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 (339) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/add-new-template/add-custom-template-modal.js +12 -3
  3. package/build/components/add-new-template/add-custom-template-modal.js.map +1 -1
  4. package/build/components/add-new-template/new-template-part.js +8 -7
  5. package/build/components/add-new-template/new-template-part.js.map +1 -1
  6. package/build/components/add-new-template/new-template.js +19 -16
  7. package/build/components/add-new-template/new-template.js.map +1 -1
  8. package/build/components/app/index.js +4 -2
  9. package/build/components/app/index.js.map +1 -1
  10. package/build/components/block-editor/editor-canvas.js +2 -1
  11. package/build/components/block-editor/editor-canvas.js.map +1 -1
  12. package/build/components/editor/index.js +5 -7
  13. package/build/components/editor/index.js.map +1 -1
  14. package/build/components/global-styles/border-panel.js +20 -159
  15. package/build/components/global-styles/border-panel.js.map +1 -1
  16. package/build/components/global-styles/context-menu.js +13 -11
  17. package/build/components/global-styles/context-menu.js.map +1 -1
  18. package/build/components/global-styles/dimensions-panel.js +41 -487
  19. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  20. package/build/components/global-styles/duotone-panel.js +78 -0
  21. package/build/components/global-styles/duotone-panel.js.map +1 -0
  22. package/build/components/global-styles/filter-utils.js +17 -0
  23. package/build/components/global-styles/filter-utils.js.map +1 -0
  24. package/build/components/global-styles/hooks.js +11 -26
  25. package/build/components/global-styles/hooks.js.map +1 -1
  26. package/build/components/global-styles/preview.js +9 -5
  27. package/build/components/global-styles/preview.js.map +1 -1
  28. package/build/components/global-styles/screen-block-list.js +6 -11
  29. package/build/components/global-styles/screen-block-list.js.map +1 -1
  30. package/build/components/global-styles/screen-border.js +14 -6
  31. package/build/components/global-styles/screen-border.js.map +1 -1
  32. package/build/components/global-styles/screen-filters.js +46 -0
  33. package/build/components/global-styles/screen-filters.js.map +1 -0
  34. package/build/components/global-styles/screen-layout.js +13 -5
  35. package/build/components/global-styles/screen-layout.js.map +1 -1
  36. package/build/components/global-styles/screen-root.js +2 -1
  37. package/build/components/global-styles/screen-root.js.map +1 -1
  38. package/build/components/global-styles/screen-style-variations.js +2 -1
  39. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  40. package/build/components/global-styles/screen-variations.js +1 -1
  41. package/build/components/global-styles/screen-variations.js.map +1 -1
  42. package/build/components/global-styles/shadow-panel.js +6 -4
  43. package/build/components/global-styles/shadow-panel.js.map +1 -1
  44. package/build/components/global-styles/typography-panel.js +2 -5
  45. package/build/components/global-styles/typography-panel.js.map +1 -1
  46. package/build/components/global-styles/ui.js +7 -1
  47. package/build/components/global-styles/ui.js.map +1 -1
  48. package/build/components/keyboard-shortcut-help-modal/config.js +12 -0
  49. package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  50. package/build/components/keyboard-shortcuts/edit-mode.js +124 -0
  51. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -0
  52. package/build/components/keyboard-shortcuts/global.js +48 -0
  53. package/build/components/keyboard-shortcuts/global.js.map +1 -0
  54. package/build/components/keyboard-shortcuts/index.js +67 -0
  55. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  56. package/build/components/keyboard-shortcuts/register.js +153 -0
  57. package/build/components/keyboard-shortcuts/register.js.map +1 -0
  58. package/build/components/layout/index.js +12 -1
  59. package/build/components/layout/index.js.map +1 -1
  60. package/build/components/list/added-by.js +127 -136
  61. package/build/components/list/added-by.js.map +1 -1
  62. package/build/components/list/index.js +2 -1
  63. package/build/components/list/index.js.map +1 -1
  64. package/build/components/list/table.js +9 -7
  65. package/build/components/list/table.js.map +1 -1
  66. package/build/components/routes/link.js +4 -1
  67. package/build/components/routes/link.js.map +1 -1
  68. package/build/components/save-hub/index.js +82 -0
  69. package/build/components/save-hub/index.js.map +1 -0
  70. package/build/components/save-panel/index.js +11 -1
  71. package/build/components/save-panel/index.js.map +1 -1
  72. package/build/components/sidebar/index.js +27 -17
  73. package/build/components/sidebar/index.js.map +1 -1
  74. package/build/components/sidebar-button/index.js +30 -0
  75. package/build/components/sidebar-button/index.js.map +1 -0
  76. package/build/components/sidebar-edit-mode/global-styles-sidebar.js +8 -2
  77. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  78. package/build/components/sidebar-navigation-screen/index.js +14 -11
  79. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  80. package/build/components/sidebar-navigation-screen-main/index.js +16 -16
  81. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  82. package/build/components/sidebar-navigation-screen-navigation-item/index.js +22 -26
  83. package/build/components/sidebar-navigation-screen-navigation-item/index.js.map +1 -1
  84. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +97 -14
  85. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  86. package/build/components/sidebar-navigation-screen-navigation-menus/loader.js +19 -0
  87. package/build/components/sidebar-navigation-screen-navigation-menus/loader.js.map +1 -0
  88. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +77 -0
  89. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -0
  90. package/build/components/sidebar-navigation-screen-template/index.js +66 -27
  91. package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
  92. package/build/components/sidebar-navigation-screen-templates/index.js +30 -17
  93. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  94. package/build/components/sidebar-navigation-screen-templates-browse/index.js +14 -10
  95. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  96. package/build/components/site-hub/index.js +3 -1
  97. package/build/components/site-hub/index.js.map +1 -1
  98. package/build/components/style-book/index.js +151 -21
  99. package/build/components/style-book/index.js.map +1 -1
  100. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +36 -34
  101. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  102. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +24 -8
  103. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
  104. package/build/components/sync-state-with-url/use-sync-path-with-url.js +67 -18
  105. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  106. package/build/components/template-details/index.js +5 -10
  107. package/build/components/template-details/index.js.map +1 -1
  108. package/build/components/template-part-converter/convert-to-regular.js +8 -12
  109. package/build/components/template-part-converter/convert-to-regular.js.map +1 -1
  110. package/build/components/template-part-converter/convert-to-template-part.js +2 -2
  111. package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
  112. package/build/components/template-part-converter/index.js +19 -14
  113. package/build/components/template-part-converter/index.js.map +1 -1
  114. package/build/components/use-edited-entity-record/index.js +6 -6
  115. package/build/components/use-edited-entity-record/index.js.map +1 -1
  116. package/build/index.js +13 -22
  117. package/build/index.js.map +1 -1
  118. package/build/store/actions.js +2 -2
  119. package/build/store/actions.js.map +1 -1
  120. package/build/utils/get-is-list-page.js +1 -1
  121. package/build/utils/get-is-list-page.js.map +1 -1
  122. package/build/utils/history.js +8 -2
  123. package/build/utils/history.js.map +1 -1
  124. package/build-module/components/add-new-template/add-custom-template-modal.js +13 -4
  125. package/build-module/components/add-new-template/add-custom-template-modal.js.map +1 -1
  126. package/build-module/components/add-new-template/new-template-part.js +8 -7
  127. package/build-module/components/add-new-template/new-template-part.js.map +1 -1
  128. package/build-module/components/add-new-template/new-template.js +21 -17
  129. package/build-module/components/add-new-template/new-template.js.map +1 -1
  130. package/build-module/components/app/index.js +3 -2
  131. package/build-module/components/app/index.js.map +1 -1
  132. package/build-module/components/block-editor/editor-canvas.js +2 -1
  133. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  134. package/build-module/components/editor/index.js +5 -6
  135. package/build-module/components/editor/index.js.map +1 -1
  136. package/build-module/components/global-styles/border-panel.js +21 -157
  137. package/build-module/components/global-styles/border-panel.js.map +1 -1
  138. package/build-module/components/global-styles/context-menu.js +14 -11
  139. package/build-module/components/global-styles/context-menu.js.map +1 -1
  140. package/build-module/components/global-styles/dimensions-panel.js +43 -480
  141. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  142. package/build-module/components/global-styles/duotone-panel.js +67 -0
  143. package/build-module/components/global-styles/duotone-panel.js.map +1 -0
  144. package/build-module/components/global-styles/filter-utils.js +9 -0
  145. package/build-module/components/global-styles/filter-utils.js.map +1 -0
  146. package/build-module/components/global-styles/hooks.js +11 -26
  147. package/build-module/components/global-styles/hooks.js.map +1 -1
  148. package/build-module/components/global-styles/preview.js +10 -6
  149. package/build-module/components/global-styles/preview.js.map +1 -1
  150. package/build-module/components/global-styles/screen-block-list.js +6 -8
  151. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  152. package/build-module/components/global-styles/screen-border.js +12 -3
  153. package/build-module/components/global-styles/screen-border.js.map +1 -1
  154. package/build-module/components/global-styles/screen-filters.js +33 -0
  155. package/build-module/components/global-styles/screen-filters.js.map +1 -0
  156. package/build-module/components/global-styles/screen-layout.js +11 -2
  157. package/build-module/components/global-styles/screen-layout.js.map +1 -1
  158. package/build-module/components/global-styles/screen-root.js +2 -1
  159. package/build-module/components/global-styles/screen-root.js.map +1 -1
  160. package/build-module/components/global-styles/screen-style-variations.js +2 -1
  161. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  162. package/build-module/components/global-styles/screen-variations.js +1 -1
  163. package/build-module/components/global-styles/screen-variations.js.map +1 -1
  164. package/build-module/components/global-styles/shadow-panel.js +6 -4
  165. package/build-module/components/global-styles/shadow-panel.js.map +1 -1
  166. package/build-module/components/global-styles/typography-panel.js +2 -5
  167. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  168. package/build-module/components/global-styles/ui.js +6 -1
  169. package/build-module/components/global-styles/ui.js.map +1 -1
  170. package/build-module/components/keyboard-shortcut-help-modal/config.js +12 -0
  171. package/build-module/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  172. package/build-module/components/keyboard-shortcuts/edit-mode.js +108 -0
  173. package/build-module/components/keyboard-shortcuts/edit-mode.js.map +1 -0
  174. package/build-module/components/keyboard-shortcuts/global.js +37 -0
  175. package/build-module/components/keyboard-shortcuts/global.js.map +1 -0
  176. package/build-module/components/keyboard-shortcuts/index.js +65 -0
  177. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  178. package/build-module/components/keyboard-shortcuts/register.js +141 -0
  179. package/build-module/components/keyboard-shortcuts/register.js.map +1 -0
  180. package/build-module/components/layout/index.js +10 -1
  181. package/build-module/components/layout/index.js.map +1 -1
  182. package/build-module/components/list/added-by.js +126 -138
  183. package/build-module/components/list/added-by.js.map +1 -1
  184. package/build-module/components/list/index.js +2 -1
  185. package/build-module/components/list/index.js.map +1 -1
  186. package/build-module/components/list/table.js +9 -7
  187. package/build-module/components/list/table.js.map +1 -1
  188. package/build-module/components/routes/link.js +5 -2
  189. package/build-module/components/routes/link.js.map +1 -1
  190. package/build-module/components/save-hub/index.js +68 -0
  191. package/build-module/components/save-hub/index.js.map +1 -0
  192. package/build-module/components/save-panel/index.js +8 -1
  193. package/build-module/components/save-panel/index.js.map +1 -1
  194. package/build-module/components/sidebar/index.js +24 -19
  195. package/build-module/components/sidebar/index.js.map +1 -1
  196. package/build-module/components/sidebar-button/index.js +18 -0
  197. package/build-module/components/sidebar-button/index.js.map +1 -0
  198. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +8 -2
  199. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  200. package/build-module/components/sidebar-navigation-screen/index.js +12 -12
  201. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  202. package/build-module/components/sidebar-navigation-screen-main/index.js +16 -16
  203. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  204. package/build-module/components/sidebar-navigation-screen-navigation-item/index.js +24 -30
  205. package/build-module/components/sidebar-navigation-screen-navigation-item/index.js.map +1 -1
  206. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +91 -14
  207. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  208. package/build-module/components/sidebar-navigation-screen-navigation-menus/loader.js +11 -0
  209. package/build-module/components/sidebar-navigation-screen-navigation-menus/loader.js.map +1 -0
  210. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +66 -0
  211. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -0
  212. package/build-module/components/sidebar-navigation-screen-template/index.js +67 -30
  213. package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
  214. package/build-module/components/sidebar-navigation-screen-templates/index.js +28 -18
  215. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  216. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +13 -10
  217. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  218. package/build-module/components/site-hub/index.js +3 -1
  219. package/build-module/components/site-hub/index.js.map +1 -1
  220. package/build-module/components/style-book/index.js +152 -25
  221. package/build-module/components/style-book/index.js.map +1 -1
  222. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +36 -34
  223. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  224. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +24 -8
  225. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
  226. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +65 -18
  227. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  228. package/build-module/components/template-details/index.js +5 -9
  229. package/build-module/components/template-details/index.js.map +1 -1
  230. package/build-module/components/template-part-converter/convert-to-regular.js +9 -13
  231. package/build-module/components/template-part-converter/convert-to-regular.js.map +1 -1
  232. package/build-module/components/template-part-converter/convert-to-template-part.js +3 -3
  233. package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
  234. package/build-module/components/template-part-converter/index.js +20 -15
  235. package/build-module/components/template-part-converter/index.js.map +1 -1
  236. package/build-module/components/use-edited-entity-record/index.js +6 -6
  237. package/build-module/components/use-edited-entity-record/index.js.map +1 -1
  238. package/build-module/index.js +16 -23
  239. package/build-module/index.js.map +1 -1
  240. package/build-module/store/actions.js +2 -2
  241. package/build-module/store/actions.js.map +1 -1
  242. package/build-module/utils/get-is-list-page.js +1 -1
  243. package/build-module/utils/get-is-list-page.js.map +1 -1
  244. package/build-module/utils/history.js +9 -3
  245. package/build-module/utils/history.js.map +1 -1
  246. package/build-style/style-rtl.css +203 -143
  247. package/build-style/style.css +203 -143
  248. package/package.json +31 -31
  249. package/src/components/add-new-template/add-custom-template-modal.js +14 -10
  250. package/src/components/add-new-template/new-template-part.js +7 -9
  251. package/src/components/add-new-template/new-template.js +60 -38
  252. package/src/components/add-new-template/style.scss +12 -6
  253. package/src/components/app/index.js +9 -6
  254. package/src/components/block-editor/editor-canvas.js +2 -1
  255. package/src/components/block-editor/style.scss +1 -1
  256. package/src/components/editor/index.js +62 -65
  257. package/src/components/editor/style.scss +0 -6
  258. package/src/components/global-styles/border-panel.js +24 -199
  259. package/src/components/global-styles/context-menu.js +18 -12
  260. package/src/components/global-styles/dimensions-panel.js +43 -577
  261. package/src/components/global-styles/duotone-panel.js +82 -0
  262. package/src/components/global-styles/filter-utils.js +9 -0
  263. package/src/components/global-styles/hooks.js +12 -36
  264. package/src/components/global-styles/preview.js +155 -140
  265. package/src/components/global-styles/screen-block-list.js +6 -11
  266. package/src/components/global-styles/screen-border.js +10 -3
  267. package/src/components/global-styles/screen-filters.js +27 -0
  268. package/src/components/global-styles/screen-layout.js +9 -2
  269. package/src/components/global-styles/screen-root.js +1 -1
  270. package/src/components/global-styles/screen-style-variations.js +5 -1
  271. package/src/components/global-styles/screen-variations.js +0 -1
  272. package/src/components/global-styles/shadow-panel.js +4 -3
  273. package/src/components/global-styles/style.scss +10 -0
  274. package/src/components/global-styles/typography-panel.js +5 -7
  275. package/src/components/global-styles/ui.js +6 -1
  276. package/src/components/keyboard-shortcut-help-modal/config.js +10 -0
  277. package/src/components/keyboard-shortcuts/edit-mode.js +116 -0
  278. package/src/components/keyboard-shortcuts/global.js +35 -0
  279. package/src/components/keyboard-shortcuts/index.js +70 -0
  280. package/src/components/keyboard-shortcuts/register.js +157 -0
  281. package/src/components/layout/index.js +19 -0
  282. package/src/components/layout/style.scss +9 -4
  283. package/src/components/list/added-by.js +152 -155
  284. package/src/components/list/index.js +3 -1
  285. package/src/components/list/style.scss +5 -13
  286. package/src/components/list/table.js +11 -9
  287. package/src/components/routes/link.js +9 -2
  288. package/src/components/save-hub/index.js +78 -0
  289. package/src/components/save-hub/style.scss +15 -0
  290. package/src/components/save-panel/index.js +8 -1
  291. package/src/components/sidebar/index.js +33 -16
  292. package/src/components/sidebar/style.scss +4 -3
  293. package/src/components/sidebar-button/index.js +21 -0
  294. package/src/components/sidebar-button/style.scss +24 -0
  295. package/src/components/sidebar-edit-mode/global-styles-sidebar.js +3 -7
  296. package/src/components/sidebar-edit-mode/style.scss +16 -0
  297. package/src/components/sidebar-navigation-item/style.scss +1 -23
  298. package/src/components/sidebar-navigation-screen/index.js +37 -38
  299. package/src/components/sidebar-navigation-screen/style.scss +16 -9
  300. package/src/components/sidebar-navigation-screen-main/index.js +24 -11
  301. package/src/components/sidebar-navigation-screen-navigation-item/index.js +39 -26
  302. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +99 -12
  303. package/src/components/sidebar-navigation-screen-navigation-menus/loader.js +9 -0
  304. package/src/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +78 -0
  305. package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +108 -1
  306. package/src/components/sidebar-navigation-screen-template/index.js +89 -30
  307. package/src/components/sidebar-navigation-screen-template/style.scss +25 -0
  308. package/src/components/sidebar-navigation-screen-templates/index.js +29 -14
  309. package/src/components/sidebar-navigation-screen-templates/style.scss +0 -5
  310. package/src/components/sidebar-navigation-screen-templates-browse/index.js +12 -6
  311. package/src/components/site-hub/index.js +5 -1
  312. package/src/components/site-hub/style.scss +5 -1
  313. package/src/components/style-book/index.js +234 -55
  314. package/src/components/style-book/style.scss +1 -45
  315. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +28 -23
  316. package/src/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +38 -8
  317. package/src/components/sync-state-with-url/use-sync-path-with-url.js +77 -17
  318. package/src/components/template-details/index.js +4 -8
  319. package/src/components/template-part-converter/convert-to-regular.js +10 -17
  320. package/src/components/template-part-converter/convert-to-template-part.js +9 -16
  321. package/src/components/template-part-converter/index.js +28 -12
  322. package/src/components/use-edited-entity-record/index.js +26 -18
  323. package/src/index.js +11 -22
  324. package/src/store/actions.js +2 -2
  325. package/src/store/test/actions.js +0 -2
  326. package/src/style.scss +3 -1
  327. package/src/utils/get-is-list-page.js +1 -1
  328. package/src/utils/history.js +13 -9
  329. package/build/components/navigation-inspector/index.js +0 -161
  330. package/build/components/navigation-inspector/index.js.map +0 -1
  331. package/build/components/navigation-inspector/navigation-menu.js +0 -62
  332. package/build/components/navigation-inspector/navigation-menu.js.map +0 -1
  333. package/build-module/components/navigation-inspector/index.js +0 -146
  334. package/build-module/components/navigation-inspector/index.js.map +0 -1
  335. package/build-module/components/navigation-inspector/navigation-menu.js +0 -52
  336. package/build-module/components/navigation-inspector/navigation-menu.js.map +0 -1
  337. package/src/components/navigation-inspector/index.js +0 -191
  338. package/src/components/navigation-inspector/navigation-menu.js +0 -66
  339. package/src/components/navigation-inspector/style.scss +0 -46
@@ -1,215 +1,40 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import {
5
- __experimentalBorderRadiusControl as BorderRadiusControl,
6
- privateApis as blockEditorPrivateApis,
7
- } from '@wordpress/block-editor';
8
- import {
9
- __experimentalBorderBoxControl as BorderBoxControl,
10
- __experimentalHasSplitBorders as hasSplitBorders,
11
- __experimentalIsDefinedBorder as isDefinedBorder,
12
- __experimentalToolsPanel as ToolsPanel,
13
- __experimentalToolsPanelItem as ToolsPanelItem,
14
- } from '@wordpress/components';
15
- import { useCallback } from '@wordpress/element';
16
- import { __ } from '@wordpress/i18n';
4
+ import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
17
5
 
18
6
  /**
19
7
  * Internal dependencies
20
8
  */
21
- import { useSupportedStyles, useColorsPerOrigin } from './hooks';
22
9
  import { unlock } from '../../private-apis';
23
10
 
24
- const { useGlobalSetting, useGlobalStyle } = unlock( blockEditorPrivateApis );
25
-
26
- export function useHasBorderPanel( name ) {
27
- const controls = [
28
- useHasBorderColorControl( name ),
29
- useHasBorderRadiusControl( name ),
30
- useHasBorderStyleControl( name ),
31
- useHasBorderWidthControl( name ),
32
- ];
33
-
34
- return controls.some( Boolean );
35
- }
36
-
37
- function useHasBorderColorControl( name ) {
38
- const supports = useSupportedStyles( name );
39
- return (
40
- useGlobalSetting( 'border.color', name )[ 0 ] &&
41
- supports.includes( 'borderColor' )
42
- );
43
- }
44
-
45
- function useHasBorderRadiusControl( name ) {
46
- const supports = useSupportedStyles( name );
47
- return (
48
- useGlobalSetting( 'border.radius', name )[ 0 ] &&
49
- supports.includes( 'borderRadius' )
50
- );
51
- }
52
-
53
- function useHasBorderStyleControl( name ) {
54
- const supports = useSupportedStyles( name );
55
- return (
56
- useGlobalSetting( 'border.style', name )[ 0 ] &&
57
- supports.includes( 'borderStyle' )
58
- );
59
- }
60
-
61
- function useHasBorderWidthControl( name ) {
62
- const supports = useSupportedStyles( name );
63
- return (
64
- useGlobalSetting( 'border.width', name )[ 0 ] &&
65
- supports.includes( 'borderWidth' )
66
- );
67
- }
68
-
69
- function applyFallbackStyle( border ) {
70
- if ( ! border ) {
71
- return border;
72
- }
73
-
74
- if ( ! border.style && ( border.color || border.width ) ) {
75
- return { ...border, style: 'solid' };
76
- }
77
-
78
- return border;
79
- }
80
-
81
- function applyAllFallbackStyles( border ) {
82
- if ( ! border ) {
83
- return border;
84
- }
85
-
86
- if ( hasSplitBorders( border ) ) {
87
- return {
88
- top: applyFallbackStyle( border.top ),
89
- right: applyFallbackStyle( border.right ),
90
- bottom: applyFallbackStyle( border.bottom ),
91
- left: applyFallbackStyle( border.left ),
92
- };
93
- }
94
-
95
- return applyFallbackStyle( border );
96
- }
11
+ const {
12
+ useGlobalStyle,
13
+ useGlobalSetting,
14
+ useSettingsForBlockElement,
15
+ BorderPanel: StylesBorderPanel,
16
+ } = unlock( blockEditorPrivateApis );
97
17
 
98
18
  export default function BorderPanel( { name, variation = '' } ) {
99
- const prefix = variation ? `variations.${ variation }.` : '';
100
- // To better reflect if the user has customized a value we need to
101
- // ensure the style value being checked is from the `user` origin.
102
- const [ userBorderStyles ] = useGlobalStyle(
103
- `${ prefix }border`,
104
- name,
105
- 'user'
106
- );
107
- const [ border, setBorder ] = useGlobalStyle( `${ prefix }border`, name );
108
- const colors = useColorsPerOrigin( name );
109
-
110
- const showBorderColor = useHasBorderColorControl( name );
111
- const showBorderStyle = useHasBorderStyleControl( name );
112
- const showBorderWidth = useHasBorderWidthControl( name );
113
-
114
- // Border radius.
115
- const showBorderRadius = useHasBorderRadiusControl( name );
116
- const [ borderRadiusValues, setBorderRadius ] = useGlobalStyle(
117
- `${ prefix }border.radius`,
118
- name
119
- );
120
- const hasBorderRadius = () => {
121
- const borderValues = userBorderStyles?.radius;
122
- if ( typeof borderValues === 'object' ) {
123
- return Object.entries( borderValues ).some( Boolean );
124
- }
125
- return !! borderValues;
126
- };
127
-
128
- const resetBorder = () => {
129
- if ( hasBorderRadius() ) {
130
- return setBorder( { radius: userBorderStyles.radius } );
131
- }
132
-
133
- setBorder( undefined );
134
- };
135
-
136
- const resetAll = useCallback( () => setBorder( undefined ), [ setBorder ] );
137
- const onBorderChange = useCallback(
138
- ( newBorder ) => {
139
- // Ensure we have a visible border style when a border width or
140
- // color is being selected.
141
- const newBorderWithStyle = applyAllFallbackStyles( newBorder );
142
-
143
- // As we can't conditionally generate styles based on if other
144
- // style properties have been set we need to force split border
145
- // definitions for user set border styles. Border radius is derived
146
- // from the same property i.e. `border.radius` if it is a string
147
- // that is used. The longhand border radii styles are only generated
148
- // if that property is an object.
149
- //
150
- // For borders (color, style, and width) those are all properties on
151
- // the `border` style property. This means if the theme.json defined
152
- // split borders and the user condenses them into a flat border or
153
- // vice-versa we'd get both sets of styles which would conflict.
154
- const updatedBorder = ! hasSplitBorders( newBorderWithStyle )
155
- ? {
156
- top: newBorderWithStyle,
157
- right: newBorderWithStyle,
158
- bottom: newBorderWithStyle,
159
- left: newBorderWithStyle,
160
- }
161
- : {
162
- color: null,
163
- style: null,
164
- width: null,
165
- ...newBorderWithStyle,
166
- };
19
+ let prefixParts = [];
20
+ if ( variation ) {
21
+ prefixParts = [ 'variations', variation ].concat( prefixParts );
22
+ }
23
+ const prefix = prefixParts.join( '.' );
167
24
 
168
- // As radius is maintained separately to color, style, and width
169
- // maintain its value. Undefined values here will be cleaned when
170
- // global styles are saved.
171
- setBorder( { radius: border?.radius, ...updatedBorder } );
172
- },
173
- [ setBorder ]
174
- );
25
+ const [ style ] = useGlobalStyle( prefix, name, 'user', false );
26
+ const [ inheritedStyle, setStyle ] = useGlobalStyle( prefix, name, 'all', {
27
+ shouldDecodeEncode: false,
28
+ } );
29
+ const [ rawSettings ] = useGlobalSetting( '', name );
30
+ const settings = useSettingsForBlockElement( rawSettings, name );
175
31
 
176
32
  return (
177
- <ToolsPanel label={ __( 'Border' ) } resetAll={ resetAll }>
178
- { ( showBorderWidth || showBorderColor ) && (
179
- <ToolsPanelItem
180
- hasValue={ () => isDefinedBorder( userBorderStyles ) }
181
- label={ __( 'Border' ) }
182
- onDeselect={ () => resetBorder() }
183
- isShownByDefault={ true }
184
- >
185
- <BorderBoxControl
186
- colors={ colors }
187
- enableAlpha={ true }
188
- enableStyle={ showBorderStyle }
189
- onChange={ onBorderChange }
190
- popoverOffset={ 40 }
191
- popoverPlacement="left-start"
192
- value={ border }
193
- __experimentalIsRenderedInSidebar={ true }
194
- size={ '__unstable-large' }
195
- />
196
- </ToolsPanelItem>
197
- ) }
198
- { showBorderRadius && (
199
- <ToolsPanelItem
200
- hasValue={ hasBorderRadius }
201
- label={ __( 'Radius' ) }
202
- onDeselect={ () => setBorderRadius( undefined ) }
203
- isShownByDefault={ true }
204
- >
205
- <BorderRadiusControl
206
- values={ borderRadiusValues }
207
- onChange={ ( value ) => {
208
- setBorderRadius( value || undefined );
209
- } }
210
- />
211
- </ToolsPanelItem>
212
- ) }
213
- </ToolsPanel>
33
+ <StylesBorderPanel
34
+ inheritedValue={ inheritedStyle }
35
+ value={ style }
36
+ onChange={ setStyle }
37
+ settings={ settings }
38
+ />
214
39
  );
215
40
  }
@@ -12,6 +12,7 @@ import {
12
12
  import {
13
13
  typography,
14
14
  border,
15
+ filter,
15
16
  shadow,
16
17
  color,
17
18
  layout,
@@ -22,40 +23,36 @@ import { isRTL, __ } from '@wordpress/i18n';
22
23
  import { useSelect } from '@wordpress/data';
23
24
  import { store as coreStore } from '@wordpress/core-data';
24
25
  import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
25
- import { useMemo } from '@wordpress/element';
26
26
 
27
27
  /**
28
28
  * Internal dependencies
29
29
  */
30
- import { useHasBorderPanel } from './border-panel';
31
30
  import { useHasColorPanel } from './color-utils';
32
- import { useHasDimensionsPanel } from './dimensions-panel';
31
+ import { useHasFilterPanel } from './filter-utils';
33
32
  import { useHasVariationsPanel } from './variations-panel';
34
33
  import { NavigationButtonAsItem } from './navigation-button';
35
34
  import { IconWithCurrentColor } from './icon-with-current-color';
36
35
  import { ScreenVariations } from './screen-variations';
37
36
  import { useHasShadowControl } from './shadow-panel';
38
37
  import { unlock } from '../../private-apis';
39
- import { useSupportedStyles } from './hooks';
40
38
 
41
39
  const {
40
+ useHasDimensionsPanel,
42
41
  useHasTypographyPanel,
42
+ useHasBorderPanel,
43
43
  useGlobalSetting,
44
- overrideSettingsWithSupports,
44
+ useSettingsForBlockElement,
45
45
  } = unlock( blockEditorPrivateApis );
46
46
 
47
47
  function ContextMenu( { name, parentMenu = '' } ) {
48
48
  const [ rawSettings ] = useGlobalSetting( '', name );
49
- const supports = useSupportedStyles( name );
50
- const settings = useMemo(
51
- () => overrideSettingsWithSupports( rawSettings, supports ),
52
- [ rawSettings, supports ]
53
- );
49
+ const settings = useSettingsForBlockElement( rawSettings, name );
54
50
  const hasTypographyPanel = useHasTypographyPanel( settings );
55
51
  const hasColorPanel = useHasColorPanel( name );
56
- const hasBorderPanel = useHasBorderPanel( name );
52
+ const hasBorderPanel = useHasBorderPanel( settings );
57
53
  const hasEffectsPanel = useHasShadowControl( name );
58
- const hasDimensionsPanel = useHasDimensionsPanel( name );
54
+ const hasFilterPanel = useHasFilterPanel( name );
55
+ const hasDimensionsPanel = useHasDimensionsPanel( settings );
59
56
  const hasLayoutPanel = hasDimensionsPanel;
60
57
  const hasVariationsPanel = useHasVariationsPanel( name, parentMenu );
61
58
 
@@ -117,6 +114,15 @@ function ContextMenu( { name, parentMenu = '' } ) {
117
114
  { __( 'Shadow' ) }
118
115
  </NavigationButtonAsItem>
119
116
  ) }
117
+ { hasFilterPanel && (
118
+ <NavigationButtonAsItem
119
+ icon={ filter }
120
+ path={ parentMenu + '/filters' }
121
+ aria-label={ __( 'Filters styles' ) }
122
+ >
123
+ { __( 'Filters' ) }
124
+ </NavigationButtonAsItem>
125
+ ) }
120
126
  { hasLayoutPanel && (
121
127
  <NavigationButtonAsItem
122
128
  icon={ layout }