@wordpress/edit-site 5.1.0 → 5.3.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.
- package/CHANGELOG.md +8 -0
- package/LICENSE.md +1 -1
- package/build/components/add-new-template/add-custom-generic-template-modal.js +8 -10
- package/build/components/add-new-template/add-custom-generic-template-modal.js.map +1 -1
- package/build/components/add-new-template/add-custom-template-modal.js +0 -1
- package/build/components/add-new-template/add-custom-template-modal.js.map +1 -1
- package/build/components/add-new-template/new-template-part.js +5 -9
- package/build/components/add-new-template/new-template-part.js.map +1 -1
- package/build/components/app/index.js +2 -7
- package/build/components/app/index.js.map +1 -1
- package/build/components/block-editor/editor-canvas.js +0 -1
- package/build/components/block-editor/editor-canvas.js.map +1 -1
- package/build/components/block-editor/index.js +25 -59
- package/build/components/block-editor/index.js.map +1 -1
- package/build/components/block-editor/inserter-media-categories.js +237 -0
- package/build/components/block-editor/inserter-media-categories.js.map +1 -0
- package/build/components/block-editor/resize-handle.js +2 -1
- package/build/components/block-editor/resize-handle.js.map +1 -1
- package/build/components/canvas-spinner/index.js +20 -0
- package/build/components/canvas-spinner/index.js.map +1 -0
- package/build/components/create-template-part-modal/index.js +4 -2
- package/build/components/create-template-part-modal/index.js.map +1 -1
- package/build/components/editor/index.js +4 -2
- package/build/components/editor/index.js.map +1 -1
- package/build/components/error-boundary/index.js +2 -12
- package/build/components/error-boundary/index.js.map +1 -1
- package/build/components/error-boundary/warning.js +5 -28
- package/build/components/error-boundary/warning.js.map +1 -1
- package/build/components/global-styles/block-preview-panel.js +10 -4
- package/build/components/global-styles/block-preview-panel.js.map +1 -1
- package/build/components/global-styles/border-panel.js +18 -9
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-palette-panel.js +13 -7
- package/build/components/global-styles/color-palette-panel.js.map +1 -1
- package/build/components/global-styles/context-menu.js +47 -4
- package/build/components/global-styles/context-menu.js.map +1 -1
- package/build/components/global-styles/custom-css.js +65 -14
- package/build/components/global-styles/custom-css.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +50 -27
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/global-styles-provider.js +13 -3
- package/build/components/global-styles/global-styles-provider.js.map +1 -1
- package/build/components/global-styles/gradients-palette-panel.js +17 -11
- package/build/components/global-styles/gradients-palette-panel.js.map +1 -1
- package/build/components/global-styles/hooks.js +21 -142
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/index.js +0 -28
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/palette.js +11 -4
- package/build/components/global-styles/palette.js.map +1 -1
- package/build/components/global-styles/preview.js +18 -15
- package/build/components/global-styles/preview.js.map +1 -1
- package/build/components/global-styles/screen-background-color.js +28 -13
- package/build/components/global-styles/screen-background-color.js.map +1 -1
- package/build/components/global-styles/screen-block-list.js +4 -1
- package/build/components/global-styles/screen-block-list.js.map +1 -1
- package/build/components/global-styles/screen-border.js +16 -4
- package/build/components/global-styles/screen-border.js.map +1 -1
- package/build/components/global-styles/screen-button-color.js +17 -9
- package/build/components/global-styles/screen-button-color.js.map +1 -1
- package/build/components/global-styles/screen-colors.js +59 -26
- package/build/components/global-styles/screen-colors.js.map +1 -1
- package/build/components/global-styles/screen-css.js +20 -8
- package/build/components/global-styles/screen-css.js.map +1 -1
- package/build/components/global-styles/screen-heading-color.js +24 -16
- package/build/components/global-styles/screen-heading-color.js.map +1 -1
- package/build/components/global-styles/screen-layout.js +9 -3
- package/build/components/global-styles/screen-layout.js.map +1 -1
- package/build/components/global-styles/screen-link-color.js +19 -11
- package/build/components/global-styles/screen-link-color.js.map +1 -1
- package/build/components/global-styles/screen-root.js +25 -9
- package/build/components/global-styles/screen-root.js.map +1 -1
- package/build/components/global-styles/screen-style-variations.js +8 -4
- package/build/components/global-styles/screen-style-variations.js.map +1 -1
- package/build/components/global-styles/screen-text-color.js +15 -7
- package/build/components/global-styles/screen-text-color.js.map +1 -1
- package/build/components/global-styles/screen-typography.js +23 -11
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/global-styles/screen-variations.js +71 -0
- package/build/components/global-styles/screen-variations.js.map +1 -0
- package/build/components/global-styles/shadow-panel.js +196 -0
- package/build/components/global-styles/shadow-panel.js.map +1 -0
- package/build/components/global-styles/typography-panel.js +37 -22
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/typography-preview.js +19 -9
- package/build/components/global-styles/typography-preview.js.map +1 -1
- package/build/components/global-styles/ui.js +139 -21
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/global-styles/utils.js +8 -290
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/global-styles/variations-panel.js +85 -0
- package/build/components/global-styles/variations-panel.js.map +1 -0
- package/build/components/global-styles-renderer/index.js +7 -5
- package/build/components/global-styles-renderer/index.js.map +1 -1
- package/build/components/header-edit-mode/document-actions/index.js +2 -2
- package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/index.js +0 -1
- package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
- package/build/components/layout/index.js +86 -15
- package/build/components/layout/index.js.map +1 -1
- package/build/components/list/actions/rename-menu-item.js +8 -11
- package/build/components/list/actions/rename-menu-item.js.map +1 -1
- package/build/components/{sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js → navigation-inspector/index.js} +3 -2
- package/build/components/navigation-inspector/index.js.map +1 -0
- package/build/components/{sidebar-edit-mode/navigation-menu-sidebar → navigation-inspector}/navigation-menu.js +13 -15
- package/build/components/navigation-inspector/navigation-menu.js.map +1 -0
- package/build/components/sidebar/index.js +3 -1
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/global-styles-sidebar.js +3 -18
- package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
- package/build/components/sidebar-edit-mode/index.js +1 -14
- package/build/components/sidebar-edit-mode/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen/index.js +3 -2
- package/build/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-main/index.js +23 -1
- package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/index.js +35 -0
- package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -0
- package/build/components/sidebar-navigation-screen-templates/index.js +3 -8
- package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build/components/site-hub/index.js +11 -11
- package/build/components/site-hub/index.js.map +1 -1
- package/build/components/site-icon/index.js +1 -1
- package/build/components/site-icon/index.js.map +1 -1
- package/build/components/style-book/index.js +7 -4
- package/build/components/style-book/index.js.map +1 -1
- package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +54 -0
- package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -0
- package/build/components/template-details/edit-template-title.js +1 -0
- package/build/components/template-details/edit-template-title.js.map +1 -1
- package/build/components/template-details/template-part-area-selector.js +1 -0
- package/build/components/template-details/template-part-area-selector.js.map +1 -1
- package/build/components/template-part-converter/convert-to-template-part.js +5 -9
- package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
- package/build/experiments.js +19 -0
- package/build/experiments.js.map +1 -0
- package/build/hooks/push-changes-to-global-styles/index.js +68 -9
- package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build/index.js +53 -60
- package/build/index.js.map +1 -1
- package/build/store/reducer.js +1 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +7 -27
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +77 -0
- package/build/store/utils.js.map +1 -0
- package/build/utils/template-part-create.js +71 -0
- package/build/utils/template-part-create.js.map +1 -0
- package/build-module/components/add-new-template/add-custom-generic-template-modal.js +9 -11
- package/build-module/components/add-new-template/add-custom-generic-template-modal.js.map +1 -1
- package/build-module/components/add-new-template/add-custom-template-modal.js +0 -1
- package/build-module/components/add-new-template/add-custom-template-modal.js.map +1 -1
- package/build-module/components/add-new-template/new-template-part.js +5 -9
- package/build-module/components/add-new-template/new-template-part.js.map +1 -1
- package/build-module/components/app/index.js +2 -7
- package/build-module/components/app/index.js.map +1 -1
- package/build-module/components/block-editor/editor-canvas.js +0 -1
- package/build-module/components/block-editor/editor-canvas.js.map +1 -1
- package/build-module/components/block-editor/index.js +27 -57
- package/build-module/components/block-editor/index.js.map +1 -1
- package/build-module/components/block-editor/inserter-media-categories.js +225 -0
- package/build-module/components/block-editor/inserter-media-categories.js.map +1 -0
- package/build-module/components/block-editor/resize-handle.js +2 -1
- package/build-module/components/block-editor/resize-handle.js.map +1 -1
- package/build-module/components/canvas-spinner/index.js +12 -0
- package/build-module/components/canvas-spinner/index.js.map +1 -0
- package/build-module/components/create-template-part-modal/index.js +5 -3
- package/build-module/components/create-template-part-modal/index.js.map +1 -1
- package/build-module/components/editor/index.js +3 -2
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/error-boundary/index.js +2 -12
- package/build-module/components/error-boundary/index.js.map +1 -1
- package/build-module/components/error-boundary/warning.js +5 -28
- package/build-module/components/error-boundary/warning.js.map +1 -1
- package/build-module/components/global-styles/block-preview-panel.js +10 -4
- package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +18 -11
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-palette-panel.js +11 -7
- package/build-module/components/global-styles/color-palette-panel.js.map +1 -1
- package/build-module/components/global-styles/context-menu.js +46 -8
- package/build-module/components/global-styles/context-menu.js.map +1 -1
- package/build-module/components/global-styles/custom-css.js +61 -15
- package/build-module/components/global-styles/custom-css.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +50 -28
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/global-styles-provider.js +7 -2
- package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
- package/build-module/components/global-styles/gradients-palette-panel.js +15 -11
- package/build-module/components/global-styles/gradients-palette-panel.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +23 -134
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/index.js +0 -2
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/palette.js +10 -5
- package/build-module/components/global-styles/palette.js.map +1 -1
- package/build-module/components/global-styles/preview.js +18 -14
- package/build-module/components/global-styles/preview.js.map +1 -1
- package/build-module/components/global-styles/screen-background-color.js +27 -15
- package/build-module/components/global-styles/screen-background-color.js.map +1 -1
- package/build-module/components/global-styles/screen-block-list.js +3 -1
- package/build-module/components/global-styles/screen-block-list.js.map +1 -1
- package/build-module/components/global-styles/screen-border.js +14 -4
- package/build-module/components/global-styles/screen-border.js.map +1 -1
- package/build-module/components/global-styles/screen-button-color.js +17 -11
- package/build-module/components/global-styles/screen-button-color.js.map +1 -1
- package/build-module/components/global-styles/screen-colors.js +56 -27
- package/build-module/components/global-styles/screen-colors.js.map +1 -1
- package/build-module/components/global-styles/screen-css.js +21 -9
- package/build-module/components/global-styles/screen-css.js.map +1 -1
- package/build-module/components/global-styles/screen-heading-color.js +24 -18
- package/build-module/components/global-styles/screen-heading-color.js.map +1 -1
- package/build-module/components/global-styles/screen-layout.js +8 -3
- package/build-module/components/global-styles/screen-layout.js.map +1 -1
- package/build-module/components/global-styles/screen-link-color.js +19 -13
- package/build-module/components/global-styles/screen-link-color.js.map +1 -1
- package/build-module/components/global-styles/screen-root.js +23 -9
- package/build-module/components/global-styles/screen-root.js.map +1 -1
- package/build-module/components/global-styles/screen-style-variations.js +5 -2
- package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
- package/build-module/components/global-styles/screen-text-color.js +15 -9
- package/build-module/components/global-styles/screen-text-color.js.map +1 -1
- package/build-module/components/global-styles/screen-typography.js +19 -10
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/global-styles/screen-variations.js +54 -0
- package/build-module/components/global-styles/screen-variations.js.map +1 -0
- package/build-module/components/global-styles/shadow-panel.js +177 -0
- package/build-module/components/global-styles/shadow-panel.js.map +1 -0
- package/build-module/components/global-styles/typography-panel.js +37 -24
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-preview.js +17 -9
- package/build-module/components/global-styles/typography-preview.js.map +1 -1
- package/build-module/components/global-styles/ui.js +132 -22
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/global-styles/utils.js +7 -277
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/global-styles/variations-panel.js +68 -0
- package/build-module/components/global-styles/variations-panel.js.map +1 -0
- package/build-module/components/global-styles-renderer/index.js +5 -5
- package/build-module/components/global-styles-renderer/index.js.map +1 -1
- package/build-module/components/header-edit-mode/document-actions/index.js +2 -2
- package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/index.js +0 -1
- package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
- package/build-module/components/layout/index.js +86 -17
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/list/actions/rename-menu-item.js +9 -12
- package/build-module/components/list/actions/rename-menu-item.js.map +1 -1
- package/build-module/components/{sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js → navigation-inspector/index.js} +3 -2
- package/build-module/components/navigation-inspector/index.js.map +1 -0
- package/build-module/components/{sidebar-edit-mode/navigation-menu-sidebar → navigation-inspector}/navigation-menu.js +13 -16
- package/build-module/components/navigation-inspector/navigation-menu.js.map +1 -0
- package/build-module/components/sidebar/index.js +2 -1
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +6 -21
- package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/index.js +1 -13
- package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen/index.js +3 -2
- package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-main/index.js +22 -2
- package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +23 -0
- package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -0
- package/build-module/components/sidebar-navigation-screen-templates/index.js +4 -9
- package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build-module/components/site-hub/index.js +12 -11
- package/build-module/components/site-hub/index.js.map +1 -1
- package/build-module/components/site-icon/index.js +1 -1
- package/build-module/components/site-icon/index.js.map +1 -1
- package/build-module/components/style-book/index.js +8 -5
- package/build-module/components/style-book/index.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +43 -0
- package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -0
- package/build-module/components/template-details/edit-template-title.js +1 -0
- package/build-module/components/template-details/edit-template-title.js.map +1 -1
- package/build-module/components/template-details/template-part-area-selector.js +1 -0
- package/build-module/components/template-details/template-part-area-selector.js.map +1 -1
- package/build-module/components/template-part-converter/convert-to-template-part.js +5 -9
- package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
- package/build-module/experiments.js +9 -0
- package/build-module/experiments.js.map +1 -0
- package/build-module/hooks/push-changes-to-global-styles/index.js +65 -6
- package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build-module/index.js +52 -60
- package/build-module/index.js.map +1 -1
- package/build-module/store/reducer.js +1 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +6 -26
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +66 -0
- package/build-module/store/utils.js.map +1 -0
- package/build-module/utils/template-part-create.js +53 -0
- package/build-module/utils/template-part-create.js.map +1 -0
- package/build-style/style-rtl.css +448 -278
- package/build-style/style.css +448 -278
- package/package.json +32 -30
- package/src/components/add-new-template/add-custom-generic-template-modal.js +20 -28
- package/src/components/add-new-template/add-custom-template-modal.js +0 -1
- package/src/components/add-new-template/new-template-part.js +12 -11
- package/src/components/add-new-template/style.scss +0 -4
- package/src/components/app/index.js +2 -2
- package/src/components/block-editor/editor-canvas.js +0 -1
- package/src/components/block-editor/index.js +21 -77
- package/src/components/block-editor/inserter-media-categories.js +247 -0
- package/src/components/block-editor/resize-handle.js +6 -2
- package/src/components/block-editor/style.scss +55 -7
- package/src/components/canvas-spinner/index.js +12 -0
- package/src/components/canvas-spinner/style.scss +7 -0
- package/src/components/create-template-part-modal/index.js +75 -67
- package/src/components/create-template-part-modal/style.scss +0 -10
- package/src/components/editor/index.js +5 -3
- package/src/components/error-boundary/index.js +2 -10
- package/src/components/error-boundary/warning.js +6 -35
- package/src/components/global-styles/README.md +1 -75
- package/src/components/global-styles/block-preview-panel.js +16 -4
- package/src/components/global-styles/border-panel.js +22 -16
- package/src/components/global-styles/color-palette-panel.js +10 -7
- package/src/components/global-styles/context-menu.js +117 -41
- package/src/components/global-styles/custom-css.js +76 -19
- package/src/components/global-styles/dimensions-panel.js +58 -31
- package/src/components/global-styles/global-styles-provider.js +6 -2
- package/src/components/global-styles/gradients-palette-panel.js +17 -11
- package/src/components/global-styles/hooks.js +31 -155
- package/src/components/global-styles/index.js +0 -2
- package/src/components/global-styles/palette.js +9 -5
- package/src/components/global-styles/preview.js +19 -13
- package/src/components/global-styles/screen-background-color.js +42 -19
- package/src/components/global-styles/screen-block-list.js +6 -1
- package/src/components/global-styles/screen-border.js +13 -5
- package/src/components/global-styles/screen-button-color.js +21 -19
- package/src/components/global-styles/screen-colors.js +66 -22
- package/src/components/global-styles/screen-css.js +30 -14
- package/src/components/global-styles/screen-heading-color.js +32 -27
- package/src/components/global-styles/screen-layout.js +7 -4
- package/src/components/global-styles/screen-link-color.js +34 -22
- package/src/components/global-styles/screen-root.js +24 -9
- package/src/components/global-styles/screen-style-variations.js +7 -2
- package/src/components/global-styles/screen-text-color.js +15 -15
- package/src/components/global-styles/screen-typography.js +34 -12
- package/src/components/global-styles/screen-variations.js +47 -0
- package/src/components/global-styles/shadow-panel.js +174 -0
- package/src/components/global-styles/style.scss +94 -1
- package/src/components/global-styles/typography-panel.js +58 -23
- package/src/components/global-styles/typography-preview.js +28 -9
- package/src/components/global-styles/ui.js +130 -17
- package/src/components/global-styles/utils.js +7 -330
- package/src/components/global-styles/variations-panel.js +78 -0
- package/src/components/global-styles-renderer/index.js +3 -4
- package/src/components/header-edit-mode/document-actions/index.js +1 -1
- package/src/components/keyboard-shortcut-help-modal/index.js +0 -1
- package/src/components/layout/index.js +116 -21
- package/src/components/layout/style.scss +29 -5
- package/src/components/list/actions/rename-menu-item.js +14 -23
- package/src/components/list/style.scss +0 -4
- package/src/components/{sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js → navigation-inspector/index.js} +3 -4
- package/src/components/{sidebar-edit-mode/navigation-menu-sidebar → navigation-inspector}/navigation-menu.js +10 -12
- package/src/components/{sidebar-edit-mode/navigation-menu-sidebar → navigation-inspector}/style.scss +4 -17
- package/src/components/sidebar/index.js +2 -0
- package/src/components/sidebar-edit-mode/global-styles-sidebar.js +8 -32
- package/src/components/sidebar-edit-mode/index.js +0 -11
- package/src/components/sidebar-edit-mode/settings-header/style.scss +8 -0
- package/src/components/sidebar-navigation-item/style.scss +28 -3
- package/src/components/sidebar-navigation-screen/index.js +4 -3
- package/src/components/sidebar-navigation-screen/style.scss +2 -0
- package/src/components/sidebar-navigation-screen-main/index.js +23 -1
- package/src/components/sidebar-navigation-screen-navigation-menus/index.js +25 -0
- package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +12 -0
- package/src/components/sidebar-navigation-screen-templates/index.js +12 -19
- package/src/components/site-hub/index.js +120 -109
- package/src/components/site-hub/style.scss +7 -1
- package/src/components/site-icon/index.js +1 -1
- package/src/components/site-icon/style.scss +2 -2
- package/src/components/style-book/index.js +10 -5
- package/src/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +40 -0
- package/src/components/template-details/edit-template-title.js +1 -0
- package/src/components/template-details/template-part-area-selector.js +1 -0
- package/src/components/template-part-converter/convert-to-template-part.js +12 -10
- package/src/experiments.js +10 -0
- package/src/hooks/push-changes-to-global-styles/index.js +66 -8
- package/src/index.js +51 -59
- package/src/store/reducer.js +1 -1
- package/src/store/selectors.js +6 -26
- package/src/store/test/utils.js +181 -0
- package/src/store/utils.js +69 -0
- package/src/style.scss +4 -2
- package/src/utils/template-part-create.js +62 -0
- package/src/utils/test/template-part-create.js +63 -0
- package/build/components/global-styles/context.js +0 -22
- package/build/components/global-styles/context.js.map +0 -1
- package/build/components/global-styles/typography-utils.js +0 -92
- package/build/components/global-styles/typography-utils.js.map +0 -1
- package/build/components/global-styles/use-global-styles-output.js +0 -857
- package/build/components/global-styles/use-global-styles-output.js.map +0 -1
- package/build/components/sidebar-edit-mode/navigation-menu-sidebar/index.js +0 -42
- package/build/components/sidebar-edit-mode/navigation-menu-sidebar/index.js.map +0 -1
- package/build/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js.map +0 -1
- package/build/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js.map +0 -1
- package/build-module/components/global-styles/context.js +0 -12
- package/build-module/components/global-styles/context.js.map +0 -1
- package/build-module/components/global-styles/typography-utils.js +0 -84
- package/build-module/components/global-styles/typography-utils.js.map +0 -1
- package/build-module/components/global-styles/use-global-styles-output.js +0 -815
- package/build-module/components/global-styles/use-global-styles-output.js.map +0 -1
- package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/index.js +0 -28
- package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/index.js.map +0 -1
- package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js.map +0 -1
- package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js.map +0 -1
- package/src/components/global-styles/context.js +0 -15
- package/src/components/global-styles/test/typography-utils.js +0 -393
- package/src/components/global-styles/test/use-global-styles-output.js +0 -814
- package/src/components/global-styles/test/utils.js +0 -206
- package/src/components/global-styles/typography-utils.js +0 -87
- package/src/components/global-styles/use-global-styles-output.js +0 -936
- package/src/components/sidebar-edit-mode/navigation-menu-sidebar/index.js +0 -37
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Global Styles
|
|
2
2
|
|
|
3
|
-
This folder contains
|
|
3
|
+
This folder contains the global styles UI.
|
|
4
4
|
|
|
5
5
|
# Available public APIs
|
|
6
6
|
|
|
@@ -15,77 +15,3 @@ function MyComponent() {
|
|
|
15
15
|
return <GlobalStylesUI />;
|
|
16
16
|
}
|
|
17
17
|
```
|
|
18
|
-
|
|
19
|
-
## useGlobalStylesReset
|
|
20
|
-
|
|
21
|
-
A React hook used to retrieve whether the Global Styles have been edited and a callback to reset to the default theme values.
|
|
22
|
-
|
|
23
|
-
```js
|
|
24
|
-
import { useGlobalStylesReset } from './global-styles';
|
|
25
|
-
|
|
26
|
-
function MyComponent() {
|
|
27
|
-
const [ canReset, reset ] = useGlobalStylesReset();
|
|
28
|
-
|
|
29
|
-
return canReset
|
|
30
|
-
? <Button onClick={ () => reset() }>Reset</Button>
|
|
31
|
-
: null;
|
|
32
|
-
}
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## useGlobalStylesOutput
|
|
36
|
-
|
|
37
|
-
A React hook used to retrieve the styles array and settings to provide for block editor instances based on the current global styles.
|
|
38
|
-
|
|
39
|
-
```js
|
|
40
|
-
import { useGlobalStylesOutput } from './global-styles';
|
|
41
|
-
import { BlockEditorProvider, BlockList } from '@wordpress/block-editor';
|
|
42
|
-
|
|
43
|
-
function MyComponent() {
|
|
44
|
-
const [ styles, settings ] = useGlobalStylesOutput();
|
|
45
|
-
|
|
46
|
-
return <BlockEditorProvider settings={{
|
|
47
|
-
styles,
|
|
48
|
-
__experimentalFeatures: settings
|
|
49
|
-
}}>
|
|
50
|
-
<BlockList />
|
|
51
|
-
</BlockEditorProvider>
|
|
52
|
-
}
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
## useStyle
|
|
56
|
-
|
|
57
|
-
A react hook used to retrieve the style applied to a given context.
|
|
58
|
-
|
|
59
|
-
```js
|
|
60
|
-
import { useStyle } from './global-styles';
|
|
61
|
-
|
|
62
|
-
function MyComponent() {
|
|
63
|
-
// Text color for the site root.
|
|
64
|
-
const [ color, setColor ] = useStyle( 'color.text' );
|
|
65
|
-
|
|
66
|
-
// The user modified color for the core paragraph block.
|
|
67
|
-
const [ pColor, setPColor ] = useStyle( 'color.text', 'core/paragraph', 'user' );
|
|
68
|
-
|
|
69
|
-
return "Something";
|
|
70
|
-
}
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## useSetting
|
|
74
|
-
|
|
75
|
-
A react hook used to retrieve the setting applied to a given context.
|
|
76
|
-
|
|
77
|
-
```js
|
|
78
|
-
import { useSetting } from './global-styles';
|
|
79
|
-
|
|
80
|
-
function MyComponent() {
|
|
81
|
-
// The default color palette.
|
|
82
|
-
const [ colorPalette, setColorPalette ] = useSetting( 'color.palette' );
|
|
83
|
-
|
|
84
|
-
// The base (theme + core) color palette for the paragraph block,
|
|
85
|
-
// ignoring user provided palette.
|
|
86
|
-
// If the palette is not defined for the paragraph block, the root one is returned.
|
|
87
|
-
const [ pColor, setPColor ] = useSetting( 'color.palette', 'core/paragraph', 'base' );
|
|
88
|
-
|
|
89
|
-
return "Something";
|
|
90
|
-
}
|
|
91
|
-
```
|
|
@@ -6,13 +6,25 @@ import { getBlockType, getBlockFromExample } from '@wordpress/blocks';
|
|
|
6
6
|
import { useResizeObserver } from '@wordpress/compose';
|
|
7
7
|
import { __experimentalSpacer as Spacer } from '@wordpress/components';
|
|
8
8
|
|
|
9
|
-
const BlockPreviewPanel = ( { name } ) => {
|
|
9
|
+
const BlockPreviewPanel = ( { name, variation = '' } ) => {
|
|
10
10
|
const [
|
|
11
11
|
containerResizeListener,
|
|
12
12
|
{ width: containerWidth, height: containerHeight },
|
|
13
13
|
] = useResizeObserver();
|
|
14
14
|
const blockExample = getBlockType( name )?.example;
|
|
15
|
-
const
|
|
15
|
+
const blockExampleWithVariation = {
|
|
16
|
+
...blockExample,
|
|
17
|
+
attributes: {
|
|
18
|
+
...blockExample?.attributes,
|
|
19
|
+
className: variation,
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
const blocks =
|
|
23
|
+
blockExample &&
|
|
24
|
+
getBlockFromExample(
|
|
25
|
+
name,
|
|
26
|
+
variation ? blockExampleWithVariation : blockExample
|
|
27
|
+
);
|
|
16
28
|
const viewportWidth = blockExample?.viewportWidth || containerWidth;
|
|
17
29
|
const minHeight = containerHeight;
|
|
18
30
|
|
|
@@ -24,8 +36,8 @@ const BlockPreviewPanel = ( { name } ) => {
|
|
|
24
36
|
<BlockPreview
|
|
25
37
|
blocks={ blocks }
|
|
26
38
|
viewportWidth={ viewportWidth }
|
|
27
|
-
|
|
28
|
-
|
|
39
|
+
minHeight={ minHeight }
|
|
40
|
+
additionalStyles={ [
|
|
29
41
|
{
|
|
30
42
|
css: `
|
|
31
43
|
body{
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
__experimentalBorderRadiusControl as BorderRadiusControl,
|
|
6
|
+
experiments as blockEditorExperiments,
|
|
7
|
+
} from '@wordpress/block-editor';
|
|
5
8
|
import {
|
|
6
9
|
__experimentalBorderBoxControl as BorderBoxControl,
|
|
7
10
|
__experimentalHasSplitBorders as hasSplitBorders,
|
|
@@ -15,12 +18,10 @@ import { __ } from '@wordpress/i18n';
|
|
|
15
18
|
/**
|
|
16
19
|
* Internal dependencies
|
|
17
20
|
*/
|
|
18
|
-
import {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
useStyle,
|
|
23
|
-
} from './hooks';
|
|
21
|
+
import { getSupportedGlobalStylesPanels, useColorsPerOrigin } from './hooks';
|
|
22
|
+
import { unlock } from '../../experiments';
|
|
23
|
+
|
|
24
|
+
const { useGlobalSetting, useGlobalStyle } = unlock( blockEditorExperiments );
|
|
24
25
|
|
|
25
26
|
export function useHasBorderPanel( name ) {
|
|
26
27
|
const controls = [
|
|
@@ -36,7 +37,7 @@ export function useHasBorderPanel( name ) {
|
|
|
36
37
|
function useHasBorderColorControl( name ) {
|
|
37
38
|
const supports = getSupportedGlobalStylesPanels( name );
|
|
38
39
|
return (
|
|
39
|
-
|
|
40
|
+
useGlobalSetting( 'border.color', name )[ 0 ] &&
|
|
40
41
|
supports.includes( 'borderColor' )
|
|
41
42
|
);
|
|
42
43
|
}
|
|
@@ -44,7 +45,7 @@ function useHasBorderColorControl( name ) {
|
|
|
44
45
|
function useHasBorderRadiusControl( name ) {
|
|
45
46
|
const supports = getSupportedGlobalStylesPanels( name );
|
|
46
47
|
return (
|
|
47
|
-
|
|
48
|
+
useGlobalSetting( 'border.radius', name )[ 0 ] &&
|
|
48
49
|
supports.includes( 'borderRadius' )
|
|
49
50
|
);
|
|
50
51
|
}
|
|
@@ -52,7 +53,7 @@ function useHasBorderRadiusControl( name ) {
|
|
|
52
53
|
function useHasBorderStyleControl( name ) {
|
|
53
54
|
const supports = getSupportedGlobalStylesPanels( name );
|
|
54
55
|
return (
|
|
55
|
-
|
|
56
|
+
useGlobalSetting( 'border.style', name )[ 0 ] &&
|
|
56
57
|
supports.includes( 'borderStyle' )
|
|
57
58
|
);
|
|
58
59
|
}
|
|
@@ -60,7 +61,7 @@ function useHasBorderStyleControl( name ) {
|
|
|
60
61
|
function useHasBorderWidthControl( name ) {
|
|
61
62
|
const supports = getSupportedGlobalStylesPanels( name );
|
|
62
63
|
return (
|
|
63
|
-
|
|
64
|
+
useGlobalSetting( 'border.width', name )[ 0 ] &&
|
|
64
65
|
supports.includes( 'borderWidth' )
|
|
65
66
|
);
|
|
66
67
|
}
|
|
@@ -94,11 +95,16 @@ function applyAllFallbackStyles( border ) {
|
|
|
94
95
|
return applyFallbackStyle( border );
|
|
95
96
|
}
|
|
96
97
|
|
|
97
|
-
export default function BorderPanel( { name } ) {
|
|
98
|
+
export default function BorderPanel( { name, variation = '' } ) {
|
|
99
|
+
const prefix = variation ? `variations.${ variation }.` : '';
|
|
98
100
|
// To better reflect if the user has customized a value we need to
|
|
99
101
|
// ensure the style value being checked is from the `user` origin.
|
|
100
|
-
const [ userBorderStyles ] =
|
|
101
|
-
|
|
102
|
+
const [ userBorderStyles ] = useGlobalStyle(
|
|
103
|
+
`${ prefix }border`,
|
|
104
|
+
name,
|
|
105
|
+
'user'
|
|
106
|
+
);
|
|
107
|
+
const [ border, setBorder ] = useGlobalStyle( `${ prefix }border`, name );
|
|
102
108
|
const colors = useColorsPerOrigin( name );
|
|
103
109
|
|
|
104
110
|
const showBorderColor = useHasBorderColorControl( name );
|
|
@@ -107,8 +113,8 @@ export default function BorderPanel( { name } ) {
|
|
|
107
113
|
|
|
108
114
|
// Border radius.
|
|
109
115
|
const showBorderRadius = useHasBorderRadiusControl( name );
|
|
110
|
-
const [ borderRadiusValues, setBorderRadius ] =
|
|
111
|
-
|
|
116
|
+
const [ borderRadiusValues, setBorderRadius ] = useGlobalStyle(
|
|
117
|
+
`${ prefix }border.radius`,
|
|
112
118
|
name
|
|
113
119
|
);
|
|
114
120
|
const hasBorderRadius = () => {
|
|
@@ -6,37 +6,40 @@ import {
|
|
|
6
6
|
__experimentalVStack as VStack,
|
|
7
7
|
} from '@wordpress/components';
|
|
8
8
|
import { __ } from '@wordpress/i18n';
|
|
9
|
+
import { experiments as blockEditorExperiments } from '@wordpress/block-editor';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* Internal dependencies
|
|
12
13
|
*/
|
|
13
|
-
import {
|
|
14
|
+
import { unlock } from '../../experiments';
|
|
15
|
+
|
|
16
|
+
const { useGlobalSetting } = unlock( blockEditorExperiments );
|
|
14
17
|
|
|
15
18
|
export default function ColorPalettePanel( { name } ) {
|
|
16
|
-
const [ themeColors, setThemeColors ] =
|
|
19
|
+
const [ themeColors, setThemeColors ] = useGlobalSetting(
|
|
17
20
|
'color.palette.theme',
|
|
18
21
|
name
|
|
19
22
|
);
|
|
20
|
-
const [ baseThemeColors ] =
|
|
23
|
+
const [ baseThemeColors ] = useGlobalSetting(
|
|
21
24
|
'color.palette.theme',
|
|
22
25
|
name,
|
|
23
26
|
'base'
|
|
24
27
|
);
|
|
25
|
-
const [ defaultColors, setDefaultColors ] =
|
|
28
|
+
const [ defaultColors, setDefaultColors ] = useGlobalSetting(
|
|
26
29
|
'color.palette.default',
|
|
27
30
|
name
|
|
28
31
|
);
|
|
29
|
-
const [ baseDefaultColors ] =
|
|
32
|
+
const [ baseDefaultColors ] = useGlobalSetting(
|
|
30
33
|
'color.palette.default',
|
|
31
34
|
name,
|
|
32
35
|
'base'
|
|
33
36
|
);
|
|
34
|
-
const [ customColors, setCustomColors ] =
|
|
37
|
+
const [ customColors, setCustomColors ] = useGlobalSetting(
|
|
35
38
|
'color.palette.custom',
|
|
36
39
|
name
|
|
37
40
|
);
|
|
38
41
|
|
|
39
|
-
const [ defaultPaletteEnabled ] =
|
|
42
|
+
const [ defaultPaletteEnabled ] = useGlobalSetting(
|
|
40
43
|
'color.defaultPalette',
|
|
41
44
|
name
|
|
42
45
|
);
|
|
@@ -1,9 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import {
|
|
5
|
+
__experimentalItemGroup as ItemGroup,
|
|
6
|
+
__experimentalHStack as HStack,
|
|
7
|
+
__experimentalSpacer as Spacer,
|
|
8
|
+
FlexItem,
|
|
9
|
+
CardBody,
|
|
10
|
+
CardDivider,
|
|
11
|
+
} from '@wordpress/components';
|
|
12
|
+
import {
|
|
13
|
+
typography,
|
|
14
|
+
border,
|
|
15
|
+
color,
|
|
16
|
+
layout,
|
|
17
|
+
chevronLeft,
|
|
18
|
+
chevronRight,
|
|
19
|
+
} from '@wordpress/icons';
|
|
20
|
+
import { isRTL, __ } from '@wordpress/i18n';
|
|
21
|
+
import { useSelect } from '@wordpress/data';
|
|
22
|
+
import { store as coreStore } from '@wordpress/core-data';
|
|
7
23
|
|
|
8
24
|
/**
|
|
9
25
|
* Internal dependencies
|
|
@@ -12,7 +28,10 @@ import { useHasBorderPanel } from './border-panel';
|
|
|
12
28
|
import { useHasColorPanel } from './color-utils';
|
|
13
29
|
import { useHasDimensionsPanel } from './dimensions-panel';
|
|
14
30
|
import { useHasTypographyPanel } from './typography-panel';
|
|
31
|
+
import { useHasVariationsPanel } from './variations-panel';
|
|
15
32
|
import { NavigationButtonAsItem } from './navigation-button';
|
|
33
|
+
import { IconWithCurrentColor } from './icon-with-current-color';
|
|
34
|
+
import { ScreenVariations } from './screen-variations';
|
|
16
35
|
|
|
17
36
|
function ContextMenu( { name, parentMenu = '' } ) {
|
|
18
37
|
const hasTypographyPanel = useHasTypographyPanel( name );
|
|
@@ -20,46 +39,103 @@ function ContextMenu( { name, parentMenu = '' } ) {
|
|
|
20
39
|
const hasBorderPanel = useHasBorderPanel( name );
|
|
21
40
|
const hasDimensionsPanel = useHasDimensionsPanel( name );
|
|
22
41
|
const hasLayoutPanel = hasDimensionsPanel;
|
|
42
|
+
const hasVariationsPanel = useHasVariationsPanel( name, parentMenu );
|
|
43
|
+
|
|
44
|
+
const { canEditCSS } = useSelect( ( select ) => {
|
|
45
|
+
const { getEntityRecord, __experimentalGetCurrentGlobalStylesId } =
|
|
46
|
+
select( coreStore );
|
|
47
|
+
|
|
48
|
+
const globalStylesId = __experimentalGetCurrentGlobalStylesId();
|
|
49
|
+
const globalStyles = globalStylesId
|
|
50
|
+
? getEntityRecord( 'root', 'globalStyles', globalStylesId )
|
|
51
|
+
: undefined;
|
|
52
|
+
|
|
53
|
+
return {
|
|
54
|
+
canEditCSS:
|
|
55
|
+
!! globalStyles?._links?.[ 'wp:action-edit-css' ] ?? false,
|
|
56
|
+
};
|
|
57
|
+
}, [] );
|
|
58
|
+
|
|
59
|
+
const isBlocksPanel =
|
|
60
|
+
parentMenu.includes( 'blocks' ) &&
|
|
61
|
+
! parentMenu.includes( 'variations' );
|
|
23
62
|
|
|
24
63
|
return (
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
64
|
+
<>
|
|
65
|
+
<ItemGroup>
|
|
66
|
+
{ hasTypographyPanel && (
|
|
67
|
+
<NavigationButtonAsItem
|
|
68
|
+
icon={ typography }
|
|
69
|
+
path={ parentMenu + '/typography' }
|
|
70
|
+
aria-label={ __( 'Typography styles' ) }
|
|
71
|
+
>
|
|
72
|
+
{ __( 'Typography' ) }
|
|
73
|
+
</NavigationButtonAsItem>
|
|
74
|
+
) }
|
|
75
|
+
{ hasColorPanel && (
|
|
76
|
+
<NavigationButtonAsItem
|
|
77
|
+
icon={ color }
|
|
78
|
+
path={ parentMenu + '/colors' }
|
|
79
|
+
aria-label={ __( 'Colors styles' ) }
|
|
80
|
+
>
|
|
81
|
+
{ __( 'Colors' ) }
|
|
82
|
+
</NavigationButtonAsItem>
|
|
83
|
+
) }
|
|
84
|
+
{ hasBorderPanel && (
|
|
85
|
+
<NavigationButtonAsItem
|
|
86
|
+
icon={ border }
|
|
87
|
+
path={ parentMenu + '/border' }
|
|
88
|
+
aria-label={ __( 'Border & shadow styles' ) }
|
|
89
|
+
>
|
|
90
|
+
{ __( 'Border & Shadow' ) }
|
|
91
|
+
</NavigationButtonAsItem>
|
|
92
|
+
) }
|
|
93
|
+
{ hasLayoutPanel && (
|
|
94
|
+
<NavigationButtonAsItem
|
|
95
|
+
icon={ layout }
|
|
96
|
+
path={ parentMenu + '/layout' }
|
|
97
|
+
aria-label={ __( 'Layout styles' ) }
|
|
98
|
+
>
|
|
99
|
+
{ __( 'Layout' ) }
|
|
100
|
+
</NavigationButtonAsItem>
|
|
101
|
+
) }
|
|
102
|
+
{ hasVariationsPanel && (
|
|
103
|
+
<ScreenVariations name={ name } path={ parentMenu } />
|
|
104
|
+
) }
|
|
105
|
+
{ isBlocksPanel && canEditCSS && (
|
|
106
|
+
<>
|
|
107
|
+
<CardDivider />
|
|
108
|
+
<CardBody>
|
|
109
|
+
<Spacer as="p" paddingTop={ 2 } marginBottom={ 4 }>
|
|
110
|
+
{ __(
|
|
111
|
+
'Add your own CSS to customize the block appearance.'
|
|
112
|
+
) }
|
|
113
|
+
</Spacer>
|
|
114
|
+
<ItemGroup>
|
|
115
|
+
<NavigationButtonAsItem
|
|
116
|
+
path={ parentMenu + '/css' }
|
|
117
|
+
aria-label={ __( 'Additional block CSS' ) }
|
|
118
|
+
>
|
|
119
|
+
<HStack justify="space-between">
|
|
120
|
+
<FlexItem>
|
|
121
|
+
{ __( 'Additional block CSS' ) }
|
|
122
|
+
</FlexItem>
|
|
123
|
+
<IconWithCurrentColor
|
|
124
|
+
icon={
|
|
125
|
+
isRTL()
|
|
126
|
+
? chevronLeft
|
|
127
|
+
: chevronRight
|
|
128
|
+
}
|
|
129
|
+
/>
|
|
130
|
+
</HStack>
|
|
131
|
+
</NavigationButtonAsItem>
|
|
132
|
+
</ItemGroup>
|
|
133
|
+
</CardBody>
|
|
134
|
+
<CardDivider />
|
|
135
|
+
</>
|
|
136
|
+
) }
|
|
137
|
+
</ItemGroup>
|
|
138
|
+
</>
|
|
63
139
|
);
|
|
64
140
|
}
|
|
65
141
|
|
|
@@ -1,17 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { useState } from '@wordpress/element';
|
|
5
|
+
import {
|
|
6
|
+
TextareaControl,
|
|
7
|
+
Panel,
|
|
8
|
+
PanelBody,
|
|
9
|
+
__experimentalVStack as VStack,
|
|
10
|
+
Tooltip,
|
|
11
|
+
Icon,
|
|
12
|
+
} from '@wordpress/components';
|
|
5
13
|
import { __ } from '@wordpress/i18n';
|
|
14
|
+
import {
|
|
15
|
+
experiments as blockEditorExperiments,
|
|
16
|
+
transformStyles,
|
|
17
|
+
} from '@wordpress/block-editor';
|
|
18
|
+
import { info } from '@wordpress/icons';
|
|
6
19
|
|
|
7
20
|
/**
|
|
8
21
|
* Internal dependencies
|
|
9
22
|
*/
|
|
10
|
-
import {
|
|
23
|
+
import { unlock } from '../../experiments';
|
|
24
|
+
import Subtitle from './subtitle';
|
|
11
25
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
26
|
+
const { useGlobalStyle } = unlock( blockEditorExperiments );
|
|
27
|
+
function CustomCSSControl( { blockName } ) {
|
|
28
|
+
// If blockName is defined, we are customizing CSS at the block level:
|
|
29
|
+
// styles.blocks.blockName.css
|
|
30
|
+
const block = !! blockName ? blockName : null;
|
|
31
|
+
|
|
32
|
+
const [ customCSS, setCustomCSS ] = useGlobalStyle( 'css', block );
|
|
33
|
+
const [ themeCSS ] = useGlobalStyle( 'css', block, 'base' );
|
|
34
|
+
const [ cssError, setCSSError ] = useState( null );
|
|
15
35
|
const ignoreThemeCustomCSS = '/* IgnoreThemeCustomCSS */';
|
|
16
36
|
|
|
17
37
|
// If there is custom css from theme.json show it in the edit box
|
|
@@ -32,6 +52,33 @@ function CustomCSSControl() {
|
|
|
32
52
|
return;
|
|
33
53
|
}
|
|
34
54
|
setCustomCSS( value );
|
|
55
|
+
if ( cssError ) {
|
|
56
|
+
const [ transformed ] = transformStyles(
|
|
57
|
+
[ { css: value } ],
|
|
58
|
+
'.editor-styles-wrapper'
|
|
59
|
+
);
|
|
60
|
+
if ( transformed ) {
|
|
61
|
+
setCSSError( null );
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function handleOnBlur( event ) {
|
|
67
|
+
if ( ! event?.target?.value ) {
|
|
68
|
+
setCSSError( null );
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const [ transformed ] = transformStyles(
|
|
73
|
+
[ { css: event.target.value } ],
|
|
74
|
+
'.editor-styles-wrapper'
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
setCSSError(
|
|
78
|
+
transformed === null
|
|
79
|
+
? __( 'There is an error with your CSS structure.' )
|
|
80
|
+
: null
|
|
81
|
+
);
|
|
35
82
|
}
|
|
36
83
|
|
|
37
84
|
const originalThemeCustomCSS =
|
|
@@ -41,20 +88,6 @@ function CustomCSSControl() {
|
|
|
41
88
|
|
|
42
89
|
return (
|
|
43
90
|
<>
|
|
44
|
-
<TextareaControl
|
|
45
|
-
__nextHasNoMarginBottom
|
|
46
|
-
value={
|
|
47
|
-
customCSS?.replace( ignoreThemeCustomCSS, '' ) ||
|
|
48
|
-
themeCustomCSS
|
|
49
|
-
}
|
|
50
|
-
onChange={ ( value ) => handleOnChange( value ) }
|
|
51
|
-
rows={ 15 }
|
|
52
|
-
className="edit-site-global-styles__custom-css-input"
|
|
53
|
-
spellCheck={ false }
|
|
54
|
-
help={ __(
|
|
55
|
-
"Enter your custom CSS in the textarea and preview in the editor. Changes won't take effect until you've saved the template."
|
|
56
|
-
) }
|
|
57
|
-
/>
|
|
58
91
|
{ originalThemeCustomCSS && (
|
|
59
92
|
<Panel>
|
|
60
93
|
<PanelBody
|
|
@@ -67,6 +100,30 @@ function CustomCSSControl() {
|
|
|
67
100
|
</PanelBody>
|
|
68
101
|
</Panel>
|
|
69
102
|
) }
|
|
103
|
+
<VStack spacing={ 3 }>
|
|
104
|
+
<Subtitle>{ __( 'ADDITIONAL CSS' ) }</Subtitle>
|
|
105
|
+
<TextareaControl
|
|
106
|
+
__nextHasNoMarginBottom
|
|
107
|
+
value={
|
|
108
|
+
customCSS?.replace( ignoreThemeCustomCSS, '' ) ||
|
|
109
|
+
themeCustomCSS
|
|
110
|
+
}
|
|
111
|
+
onChange={ ( value ) => handleOnChange( value ) }
|
|
112
|
+
onBlur={ handleOnBlur }
|
|
113
|
+
className="edit-site-global-styles__custom-css-input"
|
|
114
|
+
spellCheck={ false }
|
|
115
|
+
/>
|
|
116
|
+
{ cssError && (
|
|
117
|
+
<Tooltip text={ cssError }>
|
|
118
|
+
<div className="edit-site-global-styles__custom-css-validation-wrapper">
|
|
119
|
+
<Icon
|
|
120
|
+
icon={ info }
|
|
121
|
+
className="edit-site-global-styles__custom-css-validation-icon"
|
|
122
|
+
/>
|
|
123
|
+
</div>
|
|
124
|
+
</Tooltip>
|
|
125
|
+
) }
|
|
126
|
+
</VStack>
|
|
70
127
|
</>
|
|
71
128
|
);
|
|
72
129
|
}
|