@wordpress/edit-site 5.2.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 +6 -0
- 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 -29
- package/build/components/add-new-template/new-template-part.js.map +1 -1
- package/build/components/add-new-template/utils.js +1 -9
- package/build/components/add-new-template/utils.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/index.js +13 -11
- 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/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 +2 -2
- package/build/components/global-styles/block-preview-panel.js.map +1 -1
- package/build/components/global-styles/border-panel.js +17 -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 +39 -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 +49 -31
- 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 +27 -13
- package/build/components/global-styles/screen-background-color.js.map +1 -1
- package/build/components/global-styles/screen-border.js +10 -4
- package/build/components/global-styles/screen-border.js.map +1 -1
- package/build/components/global-styles/screen-button-color.js +16 -9
- package/build/components/global-styles/screen-button-color.js.map +1 -1
- package/build/components/global-styles/screen-colors.js +43 -34
- 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 +23 -16
- package/build/components/global-styles/screen-heading-color.js.map +1 -1
- package/build/components/global-styles/screen-layout.js +3 -3
- package/build/components/global-styles/screen-layout.js.map +1 -1
- package/build/components/global-styles/screen-link-color.js +18 -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 +14 -7
- package/build/components/global-styles/screen-text-color.js.map +1 -1
- package/build/components/global-styles/screen-typography.js +18 -12
- package/build/components/global-styles/screen-typography.js.map +1 -1
- 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 +43 -29
- 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 +85 -34
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/global-styles/utils.js +5 -334
- package/build/components/global-styles/utils.js.map +1 -1
- 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 +6 -8
- 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} +1 -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 +2 -2
- 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/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 +65 -6
- 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/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 +4 -27
- package/build-module/components/add-new-template/new-template-part.js.map +1 -1
- package/build-module/components/add-new-template/utils.js +0 -5
- package/build-module/components/add-new-template/utils.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/index.js +14 -12
- 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/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 +2 -2
- package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +17 -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 +40 -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 +49 -32
- 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 +26 -15
- package/build-module/components/global-styles/screen-background-color.js.map +1 -1
- package/build-module/components/global-styles/screen-border.js +10 -5
- package/build-module/components/global-styles/screen-border.js.map +1 -1
- package/build-module/components/global-styles/screen-button-color.js +16 -11
- package/build-module/components/global-styles/screen-button-color.js.map +1 -1
- package/build-module/components/global-styles/screen-colors.js +43 -37
- 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 +23 -18
- package/build-module/components/global-styles/screen-heading-color.js.map +1 -1
- package/build-module/components/global-styles/screen-layout.js +4 -4
- package/build-module/components/global-styles/screen-layout.js.map +1 -1
- package/build-module/components/global-styles/screen-link-color.js +18 -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 +14 -9
- package/build-module/components/global-styles/screen-text-color.js.map +1 -1
- package/build-module/components/global-styles/screen-typography.js +16 -12
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- 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 +43 -31
- 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 +80 -35
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/global-styles/utils.js +4 -319
- package/build-module/components/global-styles/utils.js.map +1 -1
- 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 +6 -8
- 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} +1 -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 +2 -2
- 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/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 +62 -3
- 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/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 +314 -216
- package/build-style/style.css +314 -216
- 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 +11 -32
- package/src/components/add-new-template/style.scss +0 -4
- package/src/components/add-new-template/utils.js +0 -14
- package/src/components/app/index.js +2 -2
- package/src/components/block-editor/index.js +12 -25
- package/src/components/block-editor/inserter-media-categories.js +247 -0
- package/src/components/block-editor/style.scss +19 -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 +4 -2
- 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 +2 -2
- package/src/components/global-styles/border-panel.js +19 -17
- package/src/components/global-styles/color-palette-panel.js +10 -7
- package/src/components/global-styles/context-menu.js +114 -44
- package/src/components/global-styles/custom-css.js +76 -19
- package/src/components/global-styles/dimensions-panel.js +46 -36
- 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 +37 -21
- package/src/components/global-styles/screen-border.js +10 -5
- package/src/components/global-styles/screen-button-color.js +21 -19
- package/src/components/global-styles/screen-colors.js +48 -65
- 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 +4 -7
- package/src/components/global-styles/screen-link-color.js +26 -26
- 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 -19
- package/src/components/global-styles/screen-typography.js +27 -12
- package/src/components/global-styles/shadow-panel.js +174 -0
- package/src/components/global-styles/style.scss +85 -1
- package/src/components/global-styles/typography-panel.js +60 -48
- package/src/components/global-styles/typography-preview.js +28 -9
- package/src/components/global-styles/ui.js +78 -53
- package/src/components/global-styles/utils.js +4 -371
- 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 +9 -2
- package/src/components/layout/style.scss +4 -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} +1 -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 +0 -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 +1 -1
- 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/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 +63 -5
- package/src/index.js +51 -59
- 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 -943
- 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 -901
- 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 -1059
- package/src/components/sidebar-edit-mode/navigation-menu-sidebar/index.js +0 -37
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/use-global-styles-output.js"],"names":["get","isEmpty","kebabCase","set","__EXPERIMENTAL_STYLE_PROPERTY","STYLE_PROPERTY","__EXPERIMENTAL_ELEMENTS","ELEMENTS","getBlockTypes","store","blocksStore","useSelect","useContext","useMemo","getCSSRules","__unstablePresetDuotoneFilter","PresetDuotoneFilter","__experimentalGetGapCSSValue","getGapCSSValue","blockEditorStore","PRESET_METADATA","ROOT_BLOCK_SELECTOR","scopeSelector","getTypographyFontSizeValue","GlobalStylesContext","useSetting","BLOCK_SUPPORT_FEATURE_LEVEL_SELECTORS","__experimentalBorder","color","spacing","typography","compileStyleValue","uncompiledValue","VARIABLE_REFERENCE_PREFIX","VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE","VARIABLE_PATH_SEPARATOR_TOKEN_STYLE","startsWith","variable","slice","length","split","join","getPresetsDeclarations","blockPresets","mergedSettings","reduce","declarations","path","valueKey","valueFunc","cssVarInfix","presetByOrigin","forEach","origin","value","push","slug","getPresetsClasses","blockSelector","classes","classSuffix","propertyName","classSelectorToUse","selectorToUse","map","selector","getPresetsSvgFilters","filter","metadata","at","flatMap","preset","flattenTree","input","prefix","token","result","Object","keys","key","newKey","replace","newLeaf","newPrefix","concatFeatureVariationSelectorString","featureSelector","styleVariationSelector","featureSelectors","combinedSelectors","trim","getStylesDeclarations","blockStyles","useRootPaddingAlign","tree","isRoot","output","entries","properties","useEngine","rootOnly","pathToValue","styleValue","entry","name","prop","cssProperty","extraRules","rule","ruleValue","ref","refPath","size","settings","getLayoutStyles","style","hasBlockGapSupport","hasFallbackGapSupport","fallbackGapValue","ruleset","gapValue","blockGap","layout","definitions","values","className","spacingStyles","spacingStyle","rules","cssValue","combinedSelector","validDisplayModes","displayMode","baseStyles","includes","baseStyle","getNodesWithStyles","blockSelectors","nodes","styles","pickStyleKeys","treeToPickFrom","fromEntries","elements","blocks","blockName","node","variations","variation","duotoneSelector","hasLayoutSupport","styleVariationSelectors","elementName","sel","elementSelectors","elementSelector","getNodesWithSettings","pickPresets","presets","custom","blockCustom","toCustomProperties","customProps","toStyles","disableLayoutStyles","nodesWithStyles","nodesWithSettings","useRootPaddingAwareAlignments","contentSize","wideSize","featureName","featureStyles","featureDeclarations","styleVariationName","styleVariationDeclarations","duotoneStyles","duotoneDeclarations","pseudoSelectorStyles","pseudoKey","pseudoStyle","pseudoDeclarations","_selector","pseudoRule","toSvgFilters","getBlockSelectors","blockTypes","getBlockStyles","blockType","supports","__experimentalSelector","__experimentalDuotone","__experimentalLayout","__experimentalDefault","blockStyleVariations","featureKey","undefined","updateConfigWithSeparator","config","needsSeparatorStyleUpdate","background","text","border","useGlobalStylesOutput","merged","mergedConfig","select","getSettings","customProperties","globalStyles","filters","stylesheets","css","isGlobalStyles"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, isEmpty, kebabCase, set } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__EXPERIMENTAL_STYLE_PROPERTY as STYLE_PROPERTY,\n\t__EXPERIMENTAL_ELEMENTS as ELEMENTS,\n\tgetBlockTypes,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useMemo } from '@wordpress/element';\nimport { getCSSRules } from '@wordpress/style-engine';\nimport {\n\t__unstablePresetDuotoneFilter as PresetDuotoneFilter,\n\t__experimentalGetGapCSSValue as getGapCSSValue,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { PRESET_METADATA, ROOT_BLOCK_SELECTOR, scopeSelector } from './utils';\nimport { getTypographyFontSizeValue } from './typography-utils';\nimport { GlobalStylesContext } from './context';\nimport { useSetting } from './hooks';\n\n// List of block support features that can have their related styles\n// generated under their own feature level selector rather than the block's.\nconst BLOCK_SUPPORT_FEATURE_LEVEL_SELECTORS = {\n\t__experimentalBorder: 'border',\n\tcolor: 'color',\n\tspacing: 'spacing',\n\ttypography: 'typography',\n};\n\nfunction compileStyleValue( uncompiledValue ) {\n\tconst VARIABLE_REFERENCE_PREFIX = 'var:';\n\tconst VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE = '|';\n\tconst VARIABLE_PATH_SEPARATOR_TOKEN_STYLE = '--';\n\n\tif ( uncompiledValue?.startsWith?.( VARIABLE_REFERENCE_PREFIX ) ) {\n\t\tconst variable = uncompiledValue\n\t\t\t.slice( VARIABLE_REFERENCE_PREFIX.length )\n\t\t\t.split( VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE )\n\t\t\t.join( VARIABLE_PATH_SEPARATOR_TOKEN_STYLE );\n\t\treturn `var(--wp--${ variable })`;\n\t}\n\treturn uncompiledValue;\n}\n\n/**\n * Transform given preset tree into a set of style declarations.\n *\n * @param {Object} blockPresets\n * @param {Object} mergedSettings Merged theme.json settings.\n *\n * @return {Array<Object>} An array of style declarations.\n */\nfunction getPresetsDeclarations( blockPresets = {}, mergedSettings ) {\n\treturn PRESET_METADATA.reduce(\n\t\t( declarations, { path, valueKey, valueFunc, cssVarInfix } ) => {\n\t\t\tconst presetByOrigin = get( blockPresets, path, [] );\n\t\t\t[ 'default', 'theme', 'custom' ].forEach( ( origin ) => {\n\t\t\t\tif ( presetByOrigin[ origin ] ) {\n\t\t\t\t\tpresetByOrigin[ origin ].forEach( ( value ) => {\n\t\t\t\t\t\tif ( valueKey && ! valueFunc ) {\n\t\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t\t`--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\t\tvalue.slug\n\t\t\t\t\t\t\t\t) }: ${ value[ valueKey ] }`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\tvalueFunc &&\n\t\t\t\t\t\t\ttypeof valueFunc === 'function'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t\t`--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\t\tvalue.slug\n\t\t\t\t\t\t\t\t) }: ${ valueFunc( value, mergedSettings ) }`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn declarations;\n\t\t},\n\t\t[]\n\t);\n}\n\n/**\n * Transform given preset tree into a set of preset class declarations.\n *\n * @param {string} blockSelector\n * @param {Object} blockPresets\n * @return {string} CSS declarations for the preset classes.\n */\nfunction getPresetsClasses( blockSelector, blockPresets = {} ) {\n\treturn PRESET_METADATA.reduce(\n\t\t( declarations, { path, cssVarInfix, classes } ) => {\n\t\t\tif ( ! classes ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tconst presetByOrigin = get( blockPresets, path, [] );\n\t\t\t[ 'default', 'theme', 'custom' ].forEach( ( origin ) => {\n\t\t\t\tif ( presetByOrigin[ origin ] ) {\n\t\t\t\t\tpresetByOrigin[ origin ].forEach( ( { slug } ) => {\n\t\t\t\t\t\tclasses.forEach( ( { classSuffix, propertyName } ) => {\n\t\t\t\t\t\t\tconst classSelectorToUse = `.has-${ kebabCase(\n\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t) }-${ classSuffix }`;\n\t\t\t\t\t\t\tconst selectorToUse = blockSelector\n\t\t\t\t\t\t\t\t.split( ',' ) // Selector can be \"h1, h2, h3\"\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( selector ) =>\n\t\t\t\t\t\t\t\t\t\t`${ selector }${ classSelectorToUse }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ',' );\n\t\t\t\t\t\t\tconst value = `var(--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t) })`;\n\t\t\t\t\t\t\tdeclarations += `${ selectorToUse }{${ propertyName }: ${ value } !important;}`;\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t\treturn declarations;\n\t\t},\n\t\t''\n\t);\n}\n\nfunction getPresetsSvgFilters( blockPresets = {} ) {\n\treturn PRESET_METADATA.filter(\n\t\t// Duotone are the only type of filters for now.\n\t\t( metadata ) => metadata.path.at( -1 ) === 'duotone'\n\t).flatMap( ( metadata ) => {\n\t\tconst presetByOrigin = get( blockPresets, metadata.path, {} );\n\t\treturn [ 'default', 'theme' ]\n\t\t\t.filter( ( origin ) => presetByOrigin[ origin ] )\n\t\t\t.flatMap( ( origin ) =>\n\t\t\t\tpresetByOrigin[ origin ].map( ( preset ) => (\n\t\t\t\t\t<PresetDuotoneFilter\n\t\t\t\t\t\tpreset={ preset }\n\t\t\t\t\t\tkey={ preset.slug }\n\t\t\t\t\t/>\n\t\t\t\t) )\n\t\t\t);\n\t} );\n}\n\nfunction flattenTree( input = {}, prefix, token ) {\n\tlet result = [];\n\tObject.keys( input ).forEach( ( key ) => {\n\t\tconst newKey = prefix + kebabCase( key.replace( '/', '-' ) );\n\t\tconst newLeaf = input[ key ];\n\n\t\tif ( newLeaf instanceof Object ) {\n\t\t\tconst newPrefix = newKey + token;\n\t\t\tresult = [ ...result, ...flattenTree( newLeaf, newPrefix, token ) ];\n\t\t} else {\n\t\t\tresult.push( `${ newKey }: ${ newLeaf }` );\n\t\t}\n\t} );\n\treturn result;\n}\n\n/**\n * Gets variation selector string from feature selector.\n *\n * @param {string} featureSelector The feature selector.\n *\n * @param {string} styleVariationSelector The style variation selector.\n * @return {string} Combined selector string.\n *\n */\nfunction concatFeatureVariationSelectorString(\n\tfeatureSelector,\n\tstyleVariationSelector\n) {\n\tconst featureSelectors = featureSelector.split( ',' );\n\tconst combinedSelectors = [];\n\tfeatureSelectors.forEach( ( selector ) => {\n\t\tcombinedSelectors.push(\n\t\t\t`${ styleVariationSelector.trim() }${ selector.trim() }`\n\t\t);\n\t} );\n\treturn combinedSelectors.join( ', ' );\n}\n\n/**\n * Transform given style tree into a set of style declarations.\n *\n * @param {Object} blockStyles Block styles.\n *\n * @param {string} selector The selector these declarations should attach to.\n *\n * @param {boolean} useRootPaddingAlign Whether to use CSS custom properties in root selector.\n *\n * @param {Object} tree A theme.json tree containing layout definitions.\n *\n * @return {Array} An array of style declarations.\n */\nexport function getStylesDeclarations(\n\tblockStyles = {},\n\tselector = '',\n\tuseRootPaddingAlign,\n\ttree = {}\n) {\n\tconst isRoot = ROOT_BLOCK_SELECTOR === selector;\n\tconst output = Object.entries( STYLE_PROPERTY ).reduce(\n\t\t(\n\t\t\tdeclarations,\n\t\t\t[ key, { value, properties, useEngine, rootOnly } ]\n\t\t) => {\n\t\t\tif ( rootOnly && ! isRoot ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\t\t\tconst pathToValue = value;\n\t\t\tif ( pathToValue[ 0 ] === 'elements' || useEngine ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tconst styleValue = get( blockStyles, pathToValue );\n\n\t\t\t// Root-level padding styles don't currently support strings with CSS shorthand values.\n\t\t\t// This may change: https://github.com/WordPress/gutenberg/issues/40132.\n\t\t\tif (\n\t\t\t\tkey === '--wp--style--root--padding' &&\n\t\t\t\t( typeof styleValue === 'string' || ! useRootPaddingAlign )\n\t\t\t) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tif ( !! properties && typeof styleValue !== 'string' ) {\n\t\t\t\tObject.entries( properties ).forEach( ( entry ) => {\n\t\t\t\t\tconst [ name, prop ] = entry;\n\n\t\t\t\t\tif ( ! get( styleValue, [ prop ], false ) ) {\n\t\t\t\t\t\t// Do not create a declaration\n\t\t\t\t\t\t// for sub-properties that don't have any value.\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst cssProperty = name.startsWith( '--' )\n\t\t\t\t\t\t? name\n\t\t\t\t\t\t: kebabCase( name );\n\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t`${ cssProperty }: ${ compileStyleValue(\n\t\t\t\t\t\t\tget( styleValue, [ prop ] )\n\t\t\t\t\t\t) }`\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t} else if ( get( blockStyles, pathToValue, false ) ) {\n\t\t\t\tconst cssProperty = key.startsWith( '--' )\n\t\t\t\t\t? key\n\t\t\t\t\t: kebabCase( key );\n\t\t\t\tdeclarations.push(\n\t\t\t\t\t`${ cssProperty }: ${ compileStyleValue(\n\t\t\t\t\t\tget( blockStyles, pathToValue )\n\t\t\t\t\t) }`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn declarations;\n\t\t},\n\t\t[]\n\t);\n\n\t// The goal is to move everything to server side generated engine styles\n\t// This is temporary as we absorb more and more styles into the engine.\n\tconst extraRules = getCSSRules( blockStyles );\n\textraRules.forEach( ( rule ) => {\n\t\t// Don't output padding properties if padding variables are set.\n\t\tif (\n\t\t\tisRoot &&\n\t\t\tuseRootPaddingAlign &&\n\t\t\trule.key.startsWith( 'padding' )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tconst cssProperty = rule.key.startsWith( '--' )\n\t\t\t? rule.key\n\t\t\t: kebabCase( rule.key );\n\n\t\tlet ruleValue = rule.value;\n\t\tif ( typeof ruleValue !== 'string' && ruleValue?.ref ) {\n\t\t\tconst refPath = ruleValue.ref.split( '.' );\n\t\t\truleValue = get( tree, refPath );\n\t\t\t// Presence of another ref indicates a reference to another dynamic value.\n\t\t\t// Pointing to another dynamic value is not supported.\n\t\t\tif ( ! ruleValue || !! ruleValue?.ref ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// Calculate fluid typography rules where available.\n\t\tif ( cssProperty === 'font-size' ) {\n\t\t\t/*\n\t\t\t * getTypographyFontSizeValue() will check\n\t\t\t * if fluid typography has been activated and also\n\t\t\t * whether the incoming value can be converted to a fluid value.\n\t\t\t * Values that already have a \"clamp()\" function will not pass the test,\n\t\t\t * and therefore the original $value will be returned.\n\t\t\t */\n\t\t\truleValue = getTypographyFontSizeValue(\n\t\t\t\t{ size: ruleValue },\n\t\t\t\ttree?.settings?.typography\n\t\t\t);\n\t\t}\n\n\t\toutput.push( `${ cssProperty }: ${ ruleValue }` );\n\t} );\n\n\treturn output;\n}\n\n/**\n * Get generated CSS for layout styles by looking up layout definitions provided\n * in theme.json, and outputting common layout styles, and specific blockGap values.\n *\n * @param {Object} props\n * @param {Object} props.tree A theme.json tree containing layout definitions.\n * @param {Object} props.style A style object containing spacing values.\n * @param {string} props.selector Selector used to group together layout styling rules.\n * @param {boolean} props.hasBlockGapSupport Whether or not the theme opts-in to blockGap support.\n * @param {boolean} props.hasFallbackGapSupport Whether or not the theme allows fallback gap styles.\n * @param {?string} props.fallbackGapValue An optional fallback gap value if no real gap value is available.\n * @return {string} Generated CSS rules for the layout styles.\n */\nexport function getLayoutStyles( {\n\ttree,\n\tstyle,\n\tselector,\n\thasBlockGapSupport,\n\thasFallbackGapSupport,\n\tfallbackGapValue,\n} ) {\n\tlet ruleset = '';\n\tlet gapValue = hasBlockGapSupport\n\t\t? getGapCSSValue( style?.spacing?.blockGap )\n\t\t: '';\n\n\t// Ensure a fallback gap value for the root layout definitions,\n\t// and use a fallback value if one is provided for the current block.\n\tif ( hasFallbackGapSupport ) {\n\t\tif ( selector === ROOT_BLOCK_SELECTOR ) {\n\t\t\tgapValue = ! gapValue ? '0.5em' : gapValue;\n\t\t} else if ( ! hasBlockGapSupport && fallbackGapValue ) {\n\t\t\tgapValue = fallbackGapValue;\n\t\t}\n\t}\n\n\tif ( gapValue && tree?.settings?.layout?.definitions ) {\n\t\tObject.values( tree.settings.layout.definitions ).forEach(\n\t\t\t( { className, name, spacingStyles } ) => {\n\t\t\t\t// Allow outputting fallback gap styles for flex layout type when block gap support isn't available.\n\t\t\t\tif ( ! hasBlockGapSupport && 'flex' !== name ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( spacingStyles?.length ) {\n\t\t\t\t\tspacingStyles.forEach( ( spacingStyle ) => {\n\t\t\t\t\t\tconst declarations = [];\n\n\t\t\t\t\t\tif ( spacingStyle.rules ) {\n\t\t\t\t\t\t\tObject.entries( spacingStyle.rules ).forEach(\n\t\t\t\t\t\t\t\t( [ cssProperty, cssValue ] ) => {\n\t\t\t\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t\t\t\t`${ cssProperty }: ${\n\t\t\t\t\t\t\t\t\t\t\tcssValue ? cssValue : gapValue\n\t\t\t\t\t\t\t\t\t\t}`\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( declarations.length ) {\n\t\t\t\t\t\t\tlet combinedSelector = '';\n\n\t\t\t\t\t\t\tif ( ! hasBlockGapSupport ) {\n\t\t\t\t\t\t\t\t// For fallback gap styles, use lower specificity, to ensure styles do not unintentionally override theme styles.\n\t\t\t\t\t\t\t\tcombinedSelector =\n\t\t\t\t\t\t\t\t\tselector === ROOT_BLOCK_SELECTOR\n\t\t\t\t\t\t\t\t\t\t? `:where(.${ className }${\n\t\t\t\t\t\t\t\t\t\t\t\tspacingStyle?.selector || ''\n\t\t\t\t\t\t\t\t\t\t })`\n\t\t\t\t\t\t\t\t\t\t: `:where(${ selector }.${ className }${\n\t\t\t\t\t\t\t\t\t\t\t\tspacingStyle?.selector || ''\n\t\t\t\t\t\t\t\t\t\t })`;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcombinedSelector =\n\t\t\t\t\t\t\t\t\tselector === ROOT_BLOCK_SELECTOR\n\t\t\t\t\t\t\t\t\t\t? `${ selector } .${ className }${\n\t\t\t\t\t\t\t\t\t\t\t\tspacingStyle?.selector || ''\n\t\t\t\t\t\t\t\t\t\t }`\n\t\t\t\t\t\t\t\t\t\t: `${ selector }.${ className }${\n\t\t\t\t\t\t\t\t\t\t\t\tspacingStyle?.selector || ''\n\t\t\t\t\t\t\t\t\t\t }`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\truleset += `${ combinedSelector } { ${ declarations.join(\n\t\t\t\t\t\t\t\t'; '\n\t\t\t\t\t\t\t) }; }`;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\t// For backwards compatibility, ensure the legacy block gap CSS variable is still available.\n\t\tif ( selector === ROOT_BLOCK_SELECTOR && hasBlockGapSupport ) {\n\t\t\truleset += `${ selector } { --wp--style--block-gap: ${ gapValue }; }`;\n\t\t}\n\t}\n\n\t// Output base styles\n\tif (\n\t\tselector === ROOT_BLOCK_SELECTOR &&\n\t\ttree?.settings?.layout?.definitions\n\t) {\n\t\tconst validDisplayModes = [ 'block', 'flex', 'grid' ];\n\t\tObject.values( tree.settings.layout.definitions ).forEach(\n\t\t\t( { className, displayMode, baseStyles } ) => {\n\t\t\t\tif (\n\t\t\t\t\tdisplayMode &&\n\t\t\t\t\tvalidDisplayModes.includes( displayMode )\n\t\t\t\t) {\n\t\t\t\t\truleset += `${ selector } .${ className } { display:${ displayMode }; }`;\n\t\t\t\t}\n\n\t\t\t\tif ( baseStyles?.length ) {\n\t\t\t\t\tbaseStyles.forEach( ( baseStyle ) => {\n\t\t\t\t\t\tconst declarations = [];\n\n\t\t\t\t\t\tif ( baseStyle.rules ) {\n\t\t\t\t\t\t\tObject.entries( baseStyle.rules ).forEach(\n\t\t\t\t\t\t\t\t( [ cssProperty, cssValue ] ) => {\n\t\t\t\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t\t\t\t`${ cssProperty }: ${ cssValue }`\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\n\t\t\t\t\t\tif ( declarations.length ) {\n\t\t\t\t\t\t\tconst combinedSelector = `${ selector } .${ className }${\n\t\t\t\t\t\t\t\tbaseStyle?.selector || ''\n\t\t\t\t\t\t\t}`;\n\t\t\t\t\t\t\truleset += `${ combinedSelector } { ${ declarations.join(\n\t\t\t\t\t\t\t\t'; '\n\t\t\t\t\t\t\t) }; }`;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\treturn ruleset;\n}\n\nexport const getNodesWithStyles = ( tree, blockSelectors ) => {\n\tconst nodes = [];\n\n\tif ( ! tree?.styles ) {\n\t\treturn nodes;\n\t}\n\n\tconst pickStyleKeys = ( treeToPickFrom ) =>\n\t\tObject.fromEntries(\n\t\t\tObject.entries( treeToPickFrom ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t[\n\t\t\t\t\t'border',\n\t\t\t\t\t'color',\n\t\t\t\t\t'dimensions',\n\t\t\t\t\t'spacing',\n\t\t\t\t\t'typography',\n\t\t\t\t\t'filter',\n\t\t\t\t\t'outline',\n\t\t\t\t\t'shadow',\n\t\t\t\t].includes( key )\n\t\t\t)\n\t\t);\n\n\t// Top-level.\n\tconst styles = pickStyleKeys( tree.styles );\n\tif ( !! styles ) {\n\t\tnodes.push( {\n\t\t\tstyles,\n\t\t\tselector: ROOT_BLOCK_SELECTOR,\n\t\t} );\n\t}\n\n\tObject.entries( ELEMENTS ).forEach( ( [ name, selector ] ) => {\n\t\tif ( !! tree.styles?.elements[ name ] ) {\n\t\t\tnodes.push( {\n\t\t\t\tstyles: tree.styles?.elements[ name ],\n\t\t\t\tselector,\n\t\t\t} );\n\t\t}\n\t} );\n\n\t// Iterate over blocks: they can have styles & elements.\n\tObject.entries( tree.styles?.blocks ?? {} ).forEach(\n\t\t( [ blockName, node ] ) => {\n\t\t\tconst blockStyles = pickStyleKeys( node );\n\n\t\t\tif ( node?.variations ) {\n\t\t\t\tconst variations = {};\n\t\t\t\tObject.keys( node.variations ).forEach( ( variation ) => {\n\t\t\t\t\tvariations[ variation ] = pickStyleKeys(\n\t\t\t\t\t\tnode.variations[ variation ]\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t\tblockStyles.variations = variations;\n\t\t\t}\n\t\t\tif (\n\t\t\t\t!! blockStyles &&\n\t\t\t\t!! blockSelectors?.[ blockName ]?.selector\n\t\t\t) {\n\t\t\t\tnodes.push( {\n\t\t\t\t\tduotoneSelector:\n\t\t\t\t\t\tblockSelectors[ blockName ].duotoneSelector,\n\t\t\t\t\tfallbackGapValue:\n\t\t\t\t\t\tblockSelectors[ blockName ].fallbackGapValue,\n\t\t\t\t\thasLayoutSupport:\n\t\t\t\t\t\tblockSelectors[ blockName ].hasLayoutSupport,\n\t\t\t\t\tselector: blockSelectors[ blockName ].selector,\n\t\t\t\t\tstyles: blockStyles,\n\t\t\t\t\tfeatureSelectors:\n\t\t\t\t\t\tblockSelectors[ blockName ].featureSelectors,\n\t\t\t\t\tstyleVariationSelectors:\n\t\t\t\t\t\tblockSelectors[ blockName ].styleVariationSelectors,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tObject.entries( node?.elements ?? {} ).forEach(\n\t\t\t\t( [ elementName, value ] ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\t!! value &&\n\t\t\t\t\t\t!! blockSelectors?.[ blockName ] &&\n\t\t\t\t\t\t!! ELEMENTS?.[ elementName ]\n\t\t\t\t\t) {\n\t\t\t\t\t\tnodes.push( {\n\t\t\t\t\t\t\tstyles: value,\n\t\t\t\t\t\t\tselector: blockSelectors[ blockName ].selector\n\t\t\t\t\t\t\t\t.split( ',' )\n\t\t\t\t\t\t\t\t.map( ( sel ) => {\n\t\t\t\t\t\t\t\t\tconst elementSelectors =\n\t\t\t\t\t\t\t\t\t\tELEMENTS[ elementName ].split( ',' );\n\t\t\t\t\t\t\t\t\treturn elementSelectors.map(\n\t\t\t\t\t\t\t\t\t\t( elementSelector ) =>\n\t\t\t\t\t\t\t\t\t\t\tsel + ' ' + elementSelector\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\t.join( ',' ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t);\n\n\treturn nodes;\n};\n\nexport const getNodesWithSettings = ( tree, blockSelectors ) => {\n\tconst nodes = [];\n\n\tif ( ! tree?.settings ) {\n\t\treturn nodes;\n\t}\n\n\tconst pickPresets = ( treeToPickFrom ) => {\n\t\tconst presets = {};\n\t\tPRESET_METADATA.forEach( ( { path } ) => {\n\t\t\tconst value = get( treeToPickFrom, path, false );\n\t\t\tif ( value !== false ) {\n\t\t\t\tset( presets, path, value );\n\t\t\t}\n\t\t} );\n\t\treturn presets;\n\t};\n\n\t// Top-level.\n\tconst presets = pickPresets( tree.settings );\n\tconst custom = tree.settings?.custom;\n\tif ( ! isEmpty( presets ) || !! custom ) {\n\t\tnodes.push( {\n\t\t\tpresets,\n\t\t\tcustom,\n\t\t\tselector: ROOT_BLOCK_SELECTOR,\n\t\t} );\n\t}\n\n\t// Blocks.\n\tObject.entries( tree.settings?.blocks ?? {} ).forEach(\n\t\t( [ blockName, node ] ) => {\n\t\t\tconst blockPresets = pickPresets( node );\n\t\t\tconst blockCustom = node.custom;\n\t\t\tif ( ! isEmpty( blockPresets ) || !! blockCustom ) {\n\t\t\t\tnodes.push( {\n\t\t\t\t\tpresets: blockPresets,\n\t\t\t\t\tcustom: blockCustom,\n\t\t\t\t\tselector: blockSelectors[ blockName ].selector,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t);\n\n\treturn nodes;\n};\n\nexport const toCustomProperties = ( tree, blockSelectors ) => {\n\tconst settings = getNodesWithSettings( tree, blockSelectors );\n\tlet ruleset = '';\n\tsettings.forEach( ( { presets, custom, selector } ) => {\n\t\tconst declarations = getPresetsDeclarations( presets, tree?.settings );\n\t\tconst customProps = flattenTree( custom, '--wp--custom--', '--' );\n\t\tif ( customProps.length > 0 ) {\n\t\t\tdeclarations.push( ...customProps );\n\t\t}\n\n\t\tif ( declarations.length > 0 ) {\n\t\t\truleset = ruleset + `${ selector }{${ declarations.join( ';' ) };}`;\n\t\t}\n\t} );\n\n\treturn ruleset;\n};\n\nexport const toStyles = (\n\ttree,\n\tblockSelectors,\n\thasBlockGapSupport,\n\thasFallbackGapSupport,\n\tdisableLayoutStyles = false\n) => {\n\tconst nodesWithStyles = getNodesWithStyles( tree, blockSelectors );\n\tconst nodesWithSettings = getNodesWithSettings( tree, blockSelectors );\n\tconst useRootPaddingAlign = tree?.settings?.useRootPaddingAwareAlignments;\n\tconst { contentSize, wideSize } = tree?.settings?.layout || {};\n\n\t/*\n\t * Reset default browser margin on the root body element.\n\t * This is set on the root selector **before** generating the ruleset\n\t * from the `theme.json`. This is to ensure that if the `theme.json` declares\n\t * `margin` in its `spacing` declaration for the `body` element then these\n\t * user-generated values take precedence in the CSS cascade.\n\t * @link https://github.com/WordPress/gutenberg/issues/36147.\n\t */\n\tlet ruleset = 'body {margin: 0;';\n\n\tif ( contentSize ) {\n\t\truleset += ` --wp--style--global--content-size: ${ contentSize };`;\n\t}\n\n\tif ( wideSize ) {\n\t\truleset += ` --wp--style--global--wide-size: ${ wideSize };`;\n\t}\n\n\tif ( useRootPaddingAlign ) {\n\t\truleset += `padding-right: 0; padding-left: 0; padding-top: var(--wp--style--root--padding-top); padding-bottom: var(--wp--style--root--padding-bottom) }\n\t\t\t.has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }\n\t\t\t.has-global-padding :where(.has-global-padding) { padding-right: 0; padding-left: 0; }\n\t\t\t.has-global-padding > .alignfull { margin-right: calc(var(--wp--style--root--padding-right) * -1); margin-left: calc(var(--wp--style--root--padding-left) * -1); }\n\t\t\t.has-global-padding :where(.has-global-padding) > .alignfull { margin-right: 0; margin-left: 0; }\n\t\t\t.has-global-padding > .alignfull:where(:not(.has-global-padding)) > :where([class*=\"wp-block-\"]:not(.alignfull):not([class*=\"__\"]),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }\n\t\t\t.has-global-padding :where(.has-global-padding) > .alignfull:where(:not(.has-global-padding)) > :where([class*=\"wp-block-\"]:not(.alignfull):not([class*=\"__\"]),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: 0; padding-left: 0;`;\n\t}\n\n\truleset += '}';\n\n\tnodesWithStyles.forEach(\n\t\t( {\n\t\t\tselector,\n\t\t\tduotoneSelector,\n\t\t\tstyles,\n\t\t\tfallbackGapValue,\n\t\t\thasLayoutSupport,\n\t\t\tfeatureSelectors,\n\t\t\tstyleVariationSelectors,\n\t\t} ) => {\n\t\t\t// Process styles for block support features with custom feature level\n\t\t\t// CSS selectors set.\n\t\t\tif ( featureSelectors ) {\n\t\t\t\tObject.entries( featureSelectors ).forEach(\n\t\t\t\t\t( [ featureName, featureSelector ] ) => {\n\t\t\t\t\t\tif ( styles?.[ featureName ] ) {\n\t\t\t\t\t\t\tconst featureStyles = {\n\t\t\t\t\t\t\t\t[ featureName ]: styles[ featureName ],\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tconst featureDeclarations =\n\t\t\t\t\t\t\t\tgetStylesDeclarations( featureStyles );\n\t\t\t\t\t\t\tdelete styles[ featureName ];\n\n\t\t\t\t\t\t\tif ( !! featureDeclarations.length ) {\n\t\t\t\t\t\t\t\truleset =\n\t\t\t\t\t\t\t\t\truleset +\n\t\t\t\t\t\t\t\t\t`${ featureSelector }{${ featureDeclarations.join(\n\t\t\t\t\t\t\t\t\t\t';'\n\t\t\t\t\t\t\t\t\t) } }`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif ( styleVariationSelectors ) {\n\t\t\t\tObject.entries( styleVariationSelectors ).forEach(\n\t\t\t\t\t( [ styleVariationName, styleVariationSelector ] ) => {\n\t\t\t\t\t\tif ( styles?.variations?.[ styleVariationName ] ) {\n\t\t\t\t\t\t\t// If the block uses any custom selectors for block support, add those first.\n\t\t\t\t\t\t\tif ( featureSelectors ) {\n\t\t\t\t\t\t\t\tObject.entries( featureSelectors ).forEach(\n\t\t\t\t\t\t\t\t\t( [ featureName, featureSelector ] ) => {\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\tstyles?.variations?.[\n\t\t\t\t\t\t\t\t\t\t\t\tstyleVariationName\n\t\t\t\t\t\t\t\t\t\t\t]?.[ featureName ]\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\tconst featureStyles = {\n\t\t\t\t\t\t\t\t\t\t\t\t[ featureName ]:\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.variations[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyleVariationName\n\t\t\t\t\t\t\t\t\t\t\t\t\t][ featureName ],\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\tconst featureDeclarations =\n\t\t\t\t\t\t\t\t\t\t\t\tgetStylesDeclarations(\n\t\t\t\t\t\t\t\t\t\t\t\t\tfeatureStyles\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tdelete styles.variations[\n\t\t\t\t\t\t\t\t\t\t\t\tstyleVariationName\n\t\t\t\t\t\t\t\t\t\t\t][ featureName ];\n\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t!! featureDeclarations.length\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\truleset =\n\t\t\t\t\t\t\t\t\t\t\t\t\truleset +\n\t\t\t\t\t\t\t\t\t\t\t\t\t`${ concatFeatureVariationSelectorString(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfeatureSelector,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyleVariationSelector\n\t\t\t\t\t\t\t\t\t\t\t\t\t) }{${ featureDeclarations.join(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t';'\n\t\t\t\t\t\t\t\t\t\t\t\t\t) } }`;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Otherwise add regular selectors.\n\t\t\t\t\t\t\tconst styleVariationDeclarations =\n\t\t\t\t\t\t\t\tgetStylesDeclarations(\n\t\t\t\t\t\t\t\t\tstyles?.variations?.[ styleVariationName ],\n\t\t\t\t\t\t\t\t\tstyleVariationSelector,\n\t\t\t\t\t\t\t\t\tuseRootPaddingAlign,\n\t\t\t\t\t\t\t\t\ttree\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( !! styleVariationDeclarations.length ) {\n\t\t\t\t\t\t\t\truleset =\n\t\t\t\t\t\t\t\t\truleset +\n\t\t\t\t\t\t\t\t\t`${ styleVariationSelector }{${ styleVariationDeclarations.join(\n\t\t\t\t\t\t\t\t\t\t';'\n\t\t\t\t\t\t\t\t\t) }}`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst duotoneStyles = {};\n\t\t\tif ( styles?.filter ) {\n\t\t\t\tduotoneStyles.filter = styles.filter;\n\t\t\t\tdelete styles.filter;\n\t\t\t}\n\n\t\t\t// Process duotone styles (they use color.__experimentalDuotone selector).\n\t\t\tif ( duotoneSelector ) {\n\t\t\t\tconst duotoneDeclarations =\n\t\t\t\t\tgetStylesDeclarations( duotoneStyles );\n\t\t\t\tif ( duotoneDeclarations.length > 0 ) {\n\t\t\t\t\truleset =\n\t\t\t\t\t\truleset +\n\t\t\t\t\t\t`${ duotoneSelector }{${ duotoneDeclarations.join(\n\t\t\t\t\t\t\t';'\n\t\t\t\t\t\t) };}`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Process blockGap and layout styles.\n\t\t\tif (\n\t\t\t\t! disableLayoutStyles &&\n\t\t\t\t( ROOT_BLOCK_SELECTOR === selector || hasLayoutSupport )\n\t\t\t) {\n\t\t\t\truleset += getLayoutStyles( {\n\t\t\t\t\ttree,\n\t\t\t\t\tstyle: styles,\n\t\t\t\t\tselector,\n\t\t\t\t\thasBlockGapSupport,\n\t\t\t\t\thasFallbackGapSupport,\n\t\t\t\t\tfallbackGapValue,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Process the remaining block styles (they use either normal block class or __experimentalSelector).\n\t\t\tconst declarations = getStylesDeclarations(\n\t\t\t\tstyles,\n\t\t\t\tselector,\n\t\t\t\tuseRootPaddingAlign,\n\t\t\t\ttree\n\t\t\t);\n\t\t\tif ( declarations?.length ) {\n\t\t\t\truleset =\n\t\t\t\t\truleset + `${ selector }{${ declarations.join( ';' ) };}`;\n\t\t\t}\n\n\t\t\t// Check for pseudo selector in `styles` and handle separately.\n\t\t\tconst pseudoSelectorStyles = Object.entries( styles ).filter(\n\t\t\t\t( [ key ] ) => key.startsWith( ':' )\n\t\t\t);\n\n\t\t\tif ( pseudoSelectorStyles?.length ) {\n\t\t\t\tpseudoSelectorStyles.forEach(\n\t\t\t\t\t( [ pseudoKey, pseudoStyle ] ) => {\n\t\t\t\t\t\tconst pseudoDeclarations =\n\t\t\t\t\t\t\tgetStylesDeclarations( pseudoStyle );\n\n\t\t\t\t\t\tif ( ! pseudoDeclarations?.length ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// `selector` maybe provided in a form\n\t\t\t\t\t\t// where block level selectors have sub element\n\t\t\t\t\t\t// selectors appended to them as a comma separated\n\t\t\t\t\t\t// string.\n\t\t\t\t\t\t// e.g. `h1 a,h2 a,h3 a,h4 a,h5 a,h6 a`;\n\t\t\t\t\t\t// Split and append pseudo selector to create\n\t\t\t\t\t\t// the proper rules to target the elements.\n\t\t\t\t\t\tconst _selector = selector\n\t\t\t\t\t\t\t.split( ',' )\n\t\t\t\t\t\t\t.map( ( sel ) => sel + pseudoKey )\n\t\t\t\t\t\t\t.join( ',' );\n\n\t\t\t\t\t\tconst pseudoRule = `${ _selector }{${ pseudoDeclarations.join(\n\t\t\t\t\t\t\t';'\n\t\t\t\t\t\t) };}`;\n\n\t\t\t\t\t\truleset = ruleset + pseudoRule;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t);\n\n\t/* Add alignment / layout styles */\n\truleset =\n\t\truleset +\n\t\t'.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }';\n\truleset =\n\t\truleset +\n\t\t'.wp-site-blocks > .alignright { float: right; margin-left: 2em; }';\n\truleset =\n\t\truleset +\n\t\t'.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }';\n\n\tif ( hasBlockGapSupport ) {\n\t\t// Use fallback of `0.5em` just in case, however if there is blockGap support, there should nearly always be a real value.\n\t\tconst gapValue =\n\t\t\tgetGapCSSValue( tree?.styles?.spacing?.blockGap ) || '0.5em';\n\t\truleset =\n\t\t\truleset +\n\t\t\t'.wp-site-blocks > * { margin-block-start: 0; margin-block-end: 0; }';\n\t\truleset =\n\t\t\truleset +\n\t\t\t`.wp-site-blocks > * + * { margin-block-start: ${ gapValue }; }`;\n\t}\n\n\tnodesWithSettings.forEach( ( { selector, presets } ) => {\n\t\tif ( ROOT_BLOCK_SELECTOR === selector ) {\n\t\t\t// Do not add extra specificity for top-level classes.\n\t\t\tselector = '';\n\t\t}\n\n\t\tconst classes = getPresetsClasses( selector, presets );\n\t\tif ( ! isEmpty( classes ) ) {\n\t\t\truleset = ruleset + classes;\n\t\t}\n\t} );\n\n\treturn ruleset;\n};\n\nexport function toSvgFilters( tree, blockSelectors ) {\n\tconst nodesWithSettings = getNodesWithSettings( tree, blockSelectors );\n\treturn nodesWithSettings.flatMap( ( { presets } ) => {\n\t\treturn getPresetsSvgFilters( presets );\n\t} );\n}\n\nexport const getBlockSelectors = ( blockTypes, getBlockStyles ) => {\n\tconst result = {};\n\tblockTypes.forEach( ( blockType ) => {\n\t\tconst name = blockType.name;\n\t\tconst selector =\n\t\t\tblockType?.supports?.__experimentalSelector ??\n\t\t\t'.wp-block-' + name.replace( 'core/', '' ).replace( '/', '-' );\n\t\tconst duotoneSelector =\n\t\t\tblockType?.supports?.color?.__experimentalDuotone ?? null;\n\t\tconst hasLayoutSupport = !! blockType?.supports?.__experimentalLayout;\n\t\tconst fallbackGapValue =\n\t\t\tblockType?.supports?.spacing?.blockGap?.__experimentalDefault;\n\n\t\tconst blockStyleVariations = getBlockStyles( name );\n\t\tconst styleVariationSelectors = {};\n\t\tif ( blockStyleVariations?.length ) {\n\t\t\tblockStyleVariations.forEach( ( variation ) => {\n\t\t\t\tconst styleVariationSelector = `.is-style-${ variation.name }${ selector }`;\n\t\t\t\tstyleVariationSelectors[ variation.name ] =\n\t\t\t\t\tstyleVariationSelector;\n\t\t\t} );\n\t\t}\n\t\t// For each block support feature add any custom selectors.\n\t\tconst featureSelectors = {};\n\t\tObject.entries( BLOCK_SUPPORT_FEATURE_LEVEL_SELECTORS ).forEach(\n\t\t\t( [ featureKey, featureName ] ) => {\n\t\t\t\tconst featureSelector =\n\t\t\t\t\tblockType?.supports?.[ featureKey ]?.__experimentalSelector;\n\n\t\t\t\tif ( featureSelector ) {\n\t\t\t\t\tfeatureSelectors[ featureName ] = scopeSelector(\n\t\t\t\t\t\tselector,\n\t\t\t\t\t\tfeatureSelector\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\tresult[ name ] = {\n\t\t\tduotoneSelector,\n\t\t\tfallbackGapValue,\n\t\t\tfeatureSelectors: Object.keys( featureSelectors ).length\n\t\t\t\t? featureSelectors\n\t\t\t\t: undefined,\n\t\t\thasLayoutSupport,\n\t\t\tname,\n\t\t\tselector,\n\t\t\tstyleVariationSelectors: Object.keys( styleVariationSelectors )\n\t\t\t\t.length\n\t\t\t\t? styleVariationSelectors\n\t\t\t\t: undefined,\n\t\t};\n\t} );\n\n\treturn result;\n};\n\n/**\n * If there is a separator block whose color is defined in theme.json via background,\n * update the separator color to the same value by using border color.\n *\n * @param {Object} config Theme.json configuration file object.\n * @return {Object} configTheme.json configuration file object updated.\n */\nfunction updateConfigWithSeparator( config ) {\n\tconst needsSeparatorStyleUpdate =\n\t\tconfig.styles?.blocks[ 'core/separator' ] &&\n\t\tconfig.styles?.blocks[ 'core/separator' ].color?.background &&\n\t\t! config.styles?.blocks[ 'core/separator' ].color?.text &&\n\t\t! config.styles?.blocks[ 'core/separator' ].border?.color;\n\tif ( needsSeparatorStyleUpdate ) {\n\t\treturn {\n\t\t\t...config,\n\t\t\tstyles: {\n\t\t\t\t...config.styles,\n\t\t\t\tblocks: {\n\t\t\t\t\t...config.styles.blocks,\n\t\t\t\t\t'core/separator': {\n\t\t\t\t\t\t...config.styles.blocks[ 'core/separator' ],\n\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t...config.styles.blocks[ 'core/separator' ].color,\n\t\t\t\t\t\t\ttext: config.styles?.blocks[ 'core/separator' ]\n\t\t\t\t\t\t\t\t.color.background,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\treturn config;\n}\n\nexport function useGlobalStylesOutput() {\n\tlet { merged: mergedConfig } = useContext( GlobalStylesContext );\n\n\tconst [ blockGap ] = useSetting( 'spacing.blockGap' );\n\tconst hasBlockGapSupport = blockGap !== null;\n\tconst hasFallbackGapSupport = ! hasBlockGapSupport; // This setting isn't useful yet: it exists as a placeholder for a future explicit fallback styles support.\n\tconst disableLayoutStyles = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn !! getSettings().disableLayoutStyles;\n\t} );\n\n\tconst getBlockStyles = useSelect( ( select ) => {\n\t\treturn select( blocksStore ).getBlockStyles;\n\t}, [] );\n\n\treturn useMemo( () => {\n\t\tif ( ! mergedConfig?.styles || ! mergedConfig?.settings ) {\n\t\t\treturn [];\n\t\t}\n\t\tmergedConfig = updateConfigWithSeparator( mergedConfig );\n\t\tconst blockSelectors = getBlockSelectors(\n\t\t\tgetBlockTypes(),\n\t\t\tgetBlockStyles\n\t\t);\n\t\tconst customProperties = toCustomProperties(\n\t\t\tmergedConfig,\n\t\t\tblockSelectors\n\t\t);\n\t\tconst globalStyles = toStyles(\n\t\t\tmergedConfig,\n\t\t\tblockSelectors,\n\t\t\thasBlockGapSupport,\n\t\t\thasFallbackGapSupport,\n\t\t\tdisableLayoutStyles\n\t\t);\n\n\t\tconst filters = toSvgFilters( mergedConfig, blockSelectors );\n\t\tconst stylesheets = [\n\t\t\t{\n\t\t\t\tcss: customProperties,\n\t\t\t\tisGlobalStyles: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcss: globalStyles,\n\t\t\t\tisGlobalStyles: true,\n\t\t\t},\n\t\t\t// Load custom CSS in own stylesheet so that any invalid CSS entered in the input won't break all the global styles in the editor.\n\t\t\t{\n\t\t\t\tcss: mergedConfig.styles.css ?? '',\n\t\t\t\tisGlobalStyles: true,\n\t\t\t},\n\t\t];\n\n\t\treturn [ stylesheets, mergedConfig.settings, filters ];\n\t}, [\n\t\thasBlockGapSupport,\n\t\thasFallbackGapSupport,\n\t\tmergedConfig,\n\t\tdisableLayoutStyles,\n\t] );\n}\n"]}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { createElement } from "@wordpress/element";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* WordPress dependencies
|
|
5
|
-
*/
|
|
6
|
-
import { FlexBlock, Flex } from '@wordpress/components';
|
|
7
|
-
import { __ } from '@wordpress/i18n';
|
|
8
|
-
import { navigation } from '@wordpress/icons';
|
|
9
|
-
/**
|
|
10
|
-
* Internal dependencies
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import DefaultSidebar from '../default-sidebar';
|
|
14
|
-
import NavigationInspector from './navigation-inspector';
|
|
15
|
-
export default function NavigationMenuSidebar() {
|
|
16
|
-
return createElement(DefaultSidebar, {
|
|
17
|
-
className: "edit-site-navigation-menu-sidebar",
|
|
18
|
-
identifier: "edit-site/navigation-menu",
|
|
19
|
-
title: __('Navigation'),
|
|
20
|
-
icon: navigation,
|
|
21
|
-
closeLabel: __('Close navigation menu sidebar'),
|
|
22
|
-
panelClassName: "edit-site-navigation-menu-sidebar__panel",
|
|
23
|
-
header: createElement(Flex, null, createElement(FlexBlock, null, createElement("strong", null, __('Navigation Menus')), createElement("span", {
|
|
24
|
-
className: "edit-site-navigation-sidebar__beta"
|
|
25
|
-
}, __('Beta'))))
|
|
26
|
-
}, createElement(NavigationInspector, null));
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/navigation-menu-sidebar/index.js"],"names":["FlexBlock","Flex","__","navigation","DefaultSidebar","NavigationInspector","NavigationMenuSidebar"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,EAAoBC,IAApB,QAAgC,uBAAhC;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,UAAT,QAA2B,kBAA3B;AAEA;AACA;AACA;;AACA,OAAOC,cAAP,MAA2B,oBAA3B;AACA,OAAOC,mBAAP,MAAgC,wBAAhC;AAEA,eAAe,SAASC,qBAAT,GAAiC;AAC/C,SACC,cAAC,cAAD;AACC,IAAA,SAAS,EAAC,mCADX;AAEC,IAAA,UAAU,EAAC,2BAFZ;AAGC,IAAA,KAAK,EAAGJ,EAAE,CAAE,YAAF,CAHX;AAIC,IAAA,IAAI,EAAGC,UAJR;AAKC,IAAA,UAAU,EAAGD,EAAE,CAAE,+BAAF,CALhB;AAMC,IAAA,cAAc,EAAC,0CANhB;AAOC,IAAA,MAAM,EACL,cAAC,IAAD,QACC,cAAC,SAAD,QACC,8BAAUA,EAAE,CAAE,kBAAF,CAAZ,CADD,EAEC;AAAM,MAAA,SAAS,EAAC;AAAhB,OACGA,EAAE,CAAE,MAAF,CADL,CAFD,CADD;AARF,KAkBC,cAAC,mBAAD,OAlBD,CADD;AAsBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { FlexBlock, Flex } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { navigation } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport DefaultSidebar from '../default-sidebar';\nimport NavigationInspector from './navigation-inspector';\n\nexport default function NavigationMenuSidebar() {\n\treturn (\n\t\t<DefaultSidebar\n\t\t\tclassName=\"edit-site-navigation-menu-sidebar\"\n\t\t\tidentifier=\"edit-site/navigation-menu\"\n\t\t\ttitle={ __( 'Navigation' ) }\n\t\t\ticon={ navigation }\n\t\t\tcloseLabel={ __( 'Close navigation menu sidebar' ) }\n\t\t\tpanelClassName=\"edit-site-navigation-menu-sidebar__panel\"\n\t\t\theader={\n\t\t\t\t<Flex>\n\t\t\t\t\t<FlexBlock>\n\t\t\t\t\t\t<strong>{ __( 'Navigation Menus' ) }</strong>\n\t\t\t\t\t\t<span className=\"edit-site-navigation-sidebar__beta\">\n\t\t\t\t\t\t\t{ __( 'Beta' ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</FlexBlock>\n\t\t\t\t</Flex>\n\t\t\t}\n\t\t>\n\t\t\t<NavigationInspector />\n\t\t</DefaultSidebar>\n\t);\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js"],"names":["useSelect","useState","useEffect","SelectControl","store","coreStore","useEntityBlockEditor","blockEditorStore","BlockEditorProvider","speak","useInstanceId","__","NavigationMenu","NAVIGATION_MENUS_QUERY","per_page","status","NavigationInspector","selectedNavigationBlockId","clientIdToRef","navigationMenus","isResolvingNavigationMenus","hasResolvedNavigationMenus","firstNavigationBlockId","select","__experimentalGetActiveBlockIdByBlockNames","__experimentalGetGlobalBlocksByName","getBlock","getEntityRecords","hasFinishedResolution","isResolving","navigationMenusQuery","selectedNavId","navBlockIds","idToRef","forEach","id","attributes","ref","navMenuListId","firstNavRefInTemplate","firstNavigationMenuRef","defaultNavigationMenuId","currentMenuId","setCurrentMenuId","options","map","title","value","label","rendered","innerBlocks","onInput","onChange","isLoadingInnerBlocks","hasLoadedInnerBlocks","isLoading","hasMoreThanOneNavigationMenu","length","hasNavigationMenus","publishedInnerBlocks","hasInnerBlocks","undefined","newMenuId","Number"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useState, useEffect } from '@wordpress/element';\nimport { SelectControl } from '@wordpress/components';\nimport { store as coreStore, useEntityBlockEditor } from '@wordpress/core-data';\nimport {\n\tstore as blockEditorStore,\n\tBlockEditorProvider,\n} from '@wordpress/block-editor';\nimport { speak } from '@wordpress/a11y';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport NavigationMenu from './navigation-menu';\n\nconst NAVIGATION_MENUS_QUERY = [ { per_page: -1, status: 'publish' } ];\n\nexport default function NavigationInspector() {\n\tconst {\n\t\tselectedNavigationBlockId,\n\t\tclientIdToRef,\n\t\tnavigationMenus,\n\t\tisResolvingNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tfirstNavigationBlockId,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\t__experimentalGetActiveBlockIdByBlockNames,\n\t\t\t__experimentalGetGlobalBlocksByName,\n\t\t\tgetBlock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst { getEntityRecords, hasFinishedResolution, isResolving } =\n\t\t\tselect( coreStore );\n\n\t\tconst navigationMenusQuery = [\n\t\t\t'postType',\n\t\t\t'wp_navigation',\n\t\t\tNAVIGATION_MENUS_QUERY[ 0 ],\n\t\t];\n\n\t\t// Get the active Navigation block (if present).\n\t\tconst selectedNavId =\n\t\t\t__experimentalGetActiveBlockIdByBlockNames( 'core/navigation' );\n\n\t\t// Get all Navigation blocks currently within the editor canvas.\n\t\tconst navBlockIds =\n\t\t\t__experimentalGetGlobalBlocksByName( 'core/navigation' );\n\t\tconst idToRef = {};\n\t\tnavBlockIds.forEach( ( id ) => {\n\t\t\tidToRef[ id ] = getBlock( id )?.attributes?.ref;\n\t\t} );\n\t\treturn {\n\t\t\tselectedNavigationBlockId: selectedNavId,\n\t\t\tfirstNavigationBlockId: navBlockIds?.[ 0 ],\n\t\t\tclientIdToRef: idToRef,\n\t\t\tnavigationMenus: getEntityRecords( ...navigationMenusQuery ),\n\t\t\tisResolvingNavigationMenus: isResolving(\n\t\t\t\t'getEntityRecords',\n\t\t\t\tnavigationMenusQuery\n\t\t\t),\n\t\t\thasResolvedNavigationMenus: hasFinishedResolution(\n\t\t\t\t'getEntityRecords',\n\t\t\t\tnavigationMenusQuery\n\t\t\t),\n\t\t};\n\t}, [] );\n\n\tconst navMenuListId = useInstanceId(\n\t\tNavigationMenu,\n\t\t'edit-site-navigation-inspector-menu'\n\t);\n\n\tconst firstNavRefInTemplate = clientIdToRef[ firstNavigationBlockId ];\n\tconst firstNavigationMenuRef = navigationMenus?.[ 0 ]?.id;\n\n\t// Default Navigation Menu is either:\n\t// - the Navigation Menu referenced by the first Nav block within the template.\n\t// - the first of the available Navigation Menus (`wp_navigation`) posts.\n\tconst defaultNavigationMenuId =\n\t\tfirstNavRefInTemplate || firstNavigationMenuRef;\n\n\t// The Navigation Menu manually selected by the user within the Nav inspector.\n\tconst [ currentMenuId, setCurrentMenuId ] = useState(\n\t\tfirstNavRefInTemplate\n\t);\n\n\t// If a Nav block is selected within the canvas then set the\n\t// Navigation Menu referenced by it's `ref` attribute to be\n\t// active within the Navigation sidebar.\n\tuseEffect( () => {\n\t\tif ( selectedNavigationBlockId ) {\n\t\t\tsetCurrentMenuId( clientIdToRef[ selectedNavigationBlockId ] );\n\t\t}\n\t}, [ selectedNavigationBlockId ] );\n\n\tlet options = [];\n\tif ( navigationMenus ) {\n\t\toptions = navigationMenus.map( ( { id, title } ) => ( {\n\t\t\tvalue: id,\n\t\t\tlabel: title.rendered,\n\t\t} ) );\n\t}\n\n\tconst [ innerBlocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_navigation',\n\t\t{ id: currentMenuId || defaultNavigationMenuId }\n\t);\n\n\tconst { isLoadingInnerBlocks, hasLoadedInnerBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isResolving, hasFinishedResolution } = select( coreStore );\n\t\t\treturn {\n\t\t\t\tisLoadingInnerBlocks: isResolving( 'getEntityRecord', [\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_navigation',\n\t\t\t\t\tcurrentMenuId || defaultNavigationMenuId,\n\t\t\t\t] ),\n\t\t\t\thasLoadedInnerBlocks: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecord',\n\t\t\t\t\t[\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'wp_navigation',\n\t\t\t\t\t\tcurrentMenuId || defaultNavigationMenuId,\n\t\t\t\t\t]\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ currentMenuId, defaultNavigationMenuId ]\n\t);\n\n\tconst isLoading = ! ( hasResolvedNavigationMenus && hasLoadedInnerBlocks );\n\n\tconst hasMoreThanOneNavigationMenu = navigationMenus?.length > 1;\n\n\tconst hasNavigationMenus = !! navigationMenus?.length;\n\n\t// Entity block editor will return entities that are not currently published.\n\t// Guard by only allowing their usage if there are published Nav Menus.\n\tconst publishedInnerBlocks = hasNavigationMenus ? innerBlocks : [];\n\n\tconst hasInnerBlocks = !! publishedInnerBlocks?.length;\n\n\tuseEffect( () => {\n\t\tif ( isResolvingNavigationMenus ) {\n\t\t\tspeak( 'Loading Navigation sidebar menus.' );\n\t\t}\n\n\t\tif ( hasResolvedNavigationMenus ) {\n\t\t\tspeak( 'Navigation sidebar menus have loaded.' );\n\t\t}\n\t}, [ isResolvingNavigationMenus, hasResolvedNavigationMenus ] );\n\n\tuseEffect( () => {\n\t\tif ( isLoadingInnerBlocks ) {\n\t\t\tspeak( 'Loading Navigation sidebar selected menu items.' );\n\t\t}\n\n\t\tif ( hasLoadedInnerBlocks ) {\n\t\t\tspeak( 'Navigation sidebar selected menu items have loaded.' );\n\t\t}\n\t}, [ isLoadingInnerBlocks, hasLoadedInnerBlocks ] );\n\n\treturn (\n\t\t<div className=\"edit-site-navigation-inspector\">\n\t\t\t{ hasResolvedNavigationMenus && ! hasNavigationMenus && (\n\t\t\t\t<p className=\"edit-site-navigation-inspector__empty-msg\">\n\t\t\t\t\t{ __( 'There are no Navigation Menus.' ) }\n\t\t\t\t</p>\n\t\t\t) }\n\n\t\t\t{ ! hasResolvedNavigationMenus && (\n\t\t\t\t<div className=\"edit-site-navigation-inspector__placeholder\" />\n\t\t\t) }\n\t\t\t{ hasResolvedNavigationMenus && hasMoreThanOneNavigationMenu && (\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tclassName=\"edit-site-navigation-inspector__select-menu\"\n\t\t\t\t\taria-controls={\n\t\t\t\t\t\t// aria-controls should only apply when referenced element is in DOM\n\t\t\t\t\t\thasLoadedInnerBlocks ? navMenuListId : undefined\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ currentMenuId || defaultNavigationMenuId }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tonChange={ ( newMenuId ) =>\n\t\t\t\t\t\tsetCurrentMenuId( Number( newMenuId ) )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isLoading && (\n\t\t\t\t<>\n\t\t\t\t\t<div className=\"edit-site-navigation-inspector__placeholder is-child\" />\n\t\t\t\t\t<div className=\"edit-site-navigation-inspector__placeholder is-child\" />\n\t\t\t\t\t<div className=\"edit-site-navigation-inspector__placeholder is-child\" />\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ hasInnerBlocks && ! isLoading && (\n\t\t\t\t<BlockEditorProvider\n\t\t\t\t\tvalue={ publishedInnerBlocks }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tonInput={ onInput }\n\t\t\t\t>\n\t\t\t\t\t<NavigationMenu\n\t\t\t\t\t\tid={ navMenuListId }\n\t\t\t\t\t\tinnerBlocks={ publishedInnerBlocks }\n\t\t\t\t\t/>\n\t\t\t\t</BlockEditorProvider>\n\t\t\t) }\n\n\t\t\t{ ! hasInnerBlocks && ! isLoading && (\n\t\t\t\t<p className=\"edit-site-navigation-inspector__empty-msg\">\n\t\t\t\t\t{ __( 'Navigation Menu is empty.' ) }\n\t\t\t\t</p>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"]}
|
package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js"],"names":["__experimentalListView","ListView","__experimentalOffCanvasEditor","OffCanvasEditor","store","blockEditorStore","useEffect","useDispatch","ALLOWED_BLOCKS","NavigationMenu","innerBlocks","id","updateBlockListSettings","allowedBlocks","forEach","block","name","clientId","window","__experimentalEnableOffCanvasNavigationEditor"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,sBAAsB,IAAIC,QAD3B,EAECC,6BAA6B,IAAIC,eAFlC,EAGCC,KAAK,IAAIC,gBAHV,QAIO,yBAJP;AAKA,SAASC,SAAT,QAA0B,oBAA1B;AACA,SAASC,WAAT,QAA4B,iBAA5B;AAEA,MAAMC,cAAc,GAAG;AACtB,qBAAmB,CAClB,sBADkB,EAElB,aAFkB,EAGlB,mBAHkB,EAIlB,gBAJkB,EAKlB,aALkB,EAMlB,gBANkB,EAOlB,iBAPkB,EAQlB,gBARkB,EASlB,yBATkB,CADG;AAYtB,uBAAqB,CAAE,kBAAF,CAZC;AAatB,6BAA2B,CAC1B,sBAD0B,EAE1B,yBAF0B,CAbL;AAiBtB,0BAAwB,CACvB,sBADuB,EAEvB,yBAFuB;AAjBF,CAAvB;AAuBA,eAAe,SAASC,cAAT,OAA+C;AAAA;;AAAA,MAAtB;AAAEC,IAAAA,WAAF;AAAeC,IAAAA;AAAf,GAAsB;AAC7D,QAAM;AAAEC,IAAAA;AAAF,MAA8BL,WAAW,CAAEF,gBAAF,CAA/C,CAD6D,CAG7D;AACA;;AACAC,EAAAA,SAAS,CAAE,MAAM;AAChBM,IAAAA,uBAAuB,CAAE,EAAF,EAAM;AAC5BC,MAAAA,aAAa,EAAEL,cAAc,CAAE,iBAAF;AADD,KAAN,CAAvB;AAGAE,IAAAA,WAAW,CAACI,OAAZ,CAAuBC,KAAF,IAAa;AACjC,UAAKP,cAAc,CAAEO,KAAK,CAACC,IAAR,CAAnB,EAAoC;AACnCJ,QAAAA,uBAAuB,CAAEG,KAAK,CAACE,QAAR,EAAkB;AACxCJ,UAAAA,aAAa,EAAEL,cAAc,CAAEO,KAAK,CAACC,IAAR;AADW,SAAlB,CAAvB;AAGA;AACD,KAND;AAOA,GAXQ,EAWN,CAAEJ,uBAAF,EAA2BF,WAA3B,CAXM,CAAT;;AAaA,iBAAKQ,MAAL,oCAAK,QAAQC,6CAAb,EAA6D;AAC5D,WACC,cAAC,eAAD;AACC,MAAA,MAAM,EAAGT,WADV;AAEC,MAAA,mBAAmB,EAAG;AAFvB,MADD;AAMA;;AACD,SAAO,cAAC,QAAD;AAAU,IAAA,EAAE,EAAGC;AAAf,IAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalListView as ListView,\n\t__experimentalOffCanvasEditor as OffCanvasEditor,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\n\nconst ALLOWED_BLOCKS = {\n\t'core/navigation': [\n\t\t'core/navigation-link',\n\t\t'core/search',\n\t\t'core/social-links',\n\t\t'core/page-list',\n\t\t'core/spacer',\n\t\t'core/home-link',\n\t\t'core/site-title',\n\t\t'core/site-logo',\n\t\t'core/navigation-submenu',\n\t],\n\t'core/social-links': [ 'core/social-link' ],\n\t'core/navigation-submenu': [\n\t\t'core/navigation-link',\n\t\t'core/navigation-submenu',\n\t],\n\t'core/navigation-link': [\n\t\t'core/navigation-link',\n\t\t'core/navigation-submenu',\n\t],\n};\n\nexport default function NavigationMenu( { innerBlocks, id } ) {\n\tconst { updateBlockListSettings } = useDispatch( blockEditorStore );\n\n\t//TODO: Block settings are normally updated as a side effect of rendering InnerBlocks in BlockList\n\t//Think through a better way of doing this, possible with adding allowed blocks to block library metadata\n\tuseEffect( () => {\n\t\tupdateBlockListSettings( '', {\n\t\t\tallowedBlocks: ALLOWED_BLOCKS[ 'core/navigation' ],\n\t\t} );\n\t\tinnerBlocks.forEach( ( block ) => {\n\t\t\tif ( ALLOWED_BLOCKS[ block.name ] ) {\n\t\t\t\tupdateBlockListSettings( block.clientId, {\n\t\t\t\t\tallowedBlocks: ALLOWED_BLOCKS[ block.name ],\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t}, [ updateBlockListSettings, innerBlocks ] );\n\n\tif ( window?.__experimentalEnableOffCanvasNavigationEditor ) {\n\t\treturn (\n\t\t\t<OffCanvasEditor\n\t\t\t\tblocks={ innerBlocks }\n\t\t\t\tselectBlockInCanvas={ false }\n\t\t\t/>\n\t\t);\n\t}\n\treturn <ListView id={ id } />;\n}\n"]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { createContext } from '@wordpress/element';
|
|
5
|
-
|
|
6
|
-
export const DEFAULT_GLOBAL_STYLES_CONTEXT = {
|
|
7
|
-
user: {},
|
|
8
|
-
base: {},
|
|
9
|
-
merged: {},
|
|
10
|
-
setUserConfig: () => {},
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export const GlobalStylesContext = createContext(
|
|
14
|
-
DEFAULT_GLOBAL_STYLES_CONTEXT
|
|
15
|
-
);
|
|
@@ -1,393 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Internal dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { getTypographyFontSizeValue } from '../typography-utils';
|
|
5
|
-
|
|
6
|
-
describe( 'typography utils', () => {
|
|
7
|
-
describe( 'getTypographyFontSizeValue', () => {
|
|
8
|
-
[
|
|
9
|
-
{
|
|
10
|
-
message:
|
|
11
|
-
'should return value when fluid typography is not active',
|
|
12
|
-
preset: {
|
|
13
|
-
size: '28px',
|
|
14
|
-
},
|
|
15
|
-
typographySettings: undefined,
|
|
16
|
-
expected: '28px',
|
|
17
|
-
},
|
|
18
|
-
|
|
19
|
-
{
|
|
20
|
-
message: 'should return value where font size is 0',
|
|
21
|
-
preset: {
|
|
22
|
-
size: 0,
|
|
23
|
-
},
|
|
24
|
-
typographySettings: undefined,
|
|
25
|
-
expected: 0,
|
|
26
|
-
},
|
|
27
|
-
|
|
28
|
-
{
|
|
29
|
-
message: "should return value where font size is '0'",
|
|
30
|
-
preset: {
|
|
31
|
-
size: '0',
|
|
32
|
-
},
|
|
33
|
-
typographySettings: undefined,
|
|
34
|
-
expected: '0',
|
|
35
|
-
},
|
|
36
|
-
|
|
37
|
-
{
|
|
38
|
-
message: 'should return value where `size` is `null`.',
|
|
39
|
-
preset: {
|
|
40
|
-
size: null,
|
|
41
|
-
},
|
|
42
|
-
typographySettings: null,
|
|
43
|
-
expected: null,
|
|
44
|
-
},
|
|
45
|
-
|
|
46
|
-
{
|
|
47
|
-
message: 'should return value when fluid is `false`',
|
|
48
|
-
preset: {
|
|
49
|
-
size: '28px',
|
|
50
|
-
fluid: false,
|
|
51
|
-
},
|
|
52
|
-
typographySettings: {
|
|
53
|
-
fluid: true,
|
|
54
|
-
},
|
|
55
|
-
expected: '28px',
|
|
56
|
-
},
|
|
57
|
-
|
|
58
|
-
{
|
|
59
|
-
message: 'should return already clamped value',
|
|
60
|
-
preset: {
|
|
61
|
-
size: 'clamp(21px, 1.313rem + ((1vw - 7.68px) * 2.524), 42px)',
|
|
62
|
-
fluid: false,
|
|
63
|
-
},
|
|
64
|
-
typographySettings: {
|
|
65
|
-
fluid: true,
|
|
66
|
-
},
|
|
67
|
-
expected:
|
|
68
|
-
'clamp(21px, 1.313rem + ((1vw - 7.68px) * 2.524), 42px)',
|
|
69
|
-
},
|
|
70
|
-
|
|
71
|
-
{
|
|
72
|
-
message: 'should return value with unsupported unit',
|
|
73
|
-
preset: {
|
|
74
|
-
size: '1000%',
|
|
75
|
-
fluid: false,
|
|
76
|
-
},
|
|
77
|
-
typographySettings: {
|
|
78
|
-
fluid: true,
|
|
79
|
-
},
|
|
80
|
-
expected: '1000%',
|
|
81
|
-
},
|
|
82
|
-
|
|
83
|
-
{
|
|
84
|
-
message: 'should return clamp value with rem min and max units',
|
|
85
|
-
preset: {
|
|
86
|
-
size: '1.75rem',
|
|
87
|
-
},
|
|
88
|
-
typographySettings: {
|
|
89
|
-
fluid: true,
|
|
90
|
-
},
|
|
91
|
-
expected:
|
|
92
|
-
'clamp(1.313rem, 1.313rem + ((1vw - 0.48rem) * 0.84), 1.75rem)',
|
|
93
|
-
},
|
|
94
|
-
|
|
95
|
-
{
|
|
96
|
-
message: 'should return clamp value with eem min and max units',
|
|
97
|
-
preset: {
|
|
98
|
-
size: '1.75em',
|
|
99
|
-
},
|
|
100
|
-
typographySettings: {
|
|
101
|
-
fluid: true,
|
|
102
|
-
},
|
|
103
|
-
expected:
|
|
104
|
-
'clamp(1.313em, 1.313rem + ((1vw - 0.48em) * 0.84), 1.75em)',
|
|
105
|
-
},
|
|
106
|
-
|
|
107
|
-
{
|
|
108
|
-
message: 'should return clamp value for floats',
|
|
109
|
-
preset: {
|
|
110
|
-
size: '100.175px',
|
|
111
|
-
},
|
|
112
|
-
typographySettings: {
|
|
113
|
-
fluid: true,
|
|
114
|
-
},
|
|
115
|
-
expected:
|
|
116
|
-
'clamp(75.131px, 4.696rem + ((1vw - 7.68px) * 3.01), 100.175px)',
|
|
117
|
-
},
|
|
118
|
-
|
|
119
|
-
{
|
|
120
|
-
message:
|
|
121
|
-
'should coerce integer to `px` and returns clamp value',
|
|
122
|
-
preset: {
|
|
123
|
-
size: 33,
|
|
124
|
-
fluid: true,
|
|
125
|
-
},
|
|
126
|
-
typographySettings: {
|
|
127
|
-
fluid: true,
|
|
128
|
-
},
|
|
129
|
-
expected:
|
|
130
|
-
'clamp(24.75px, 1.547rem + ((1vw - 7.68px) * 0.992), 33px)',
|
|
131
|
-
},
|
|
132
|
-
|
|
133
|
-
{
|
|
134
|
-
message: 'should coerce float to `px` and returns clamp value',
|
|
135
|
-
preset: {
|
|
136
|
-
size: 100.23,
|
|
137
|
-
fluid: true,
|
|
138
|
-
},
|
|
139
|
-
typographySettings: {
|
|
140
|
-
fluid: true,
|
|
141
|
-
},
|
|
142
|
-
expected:
|
|
143
|
-
'clamp(75.173px, 4.698rem + ((1vw - 7.68px) * 3.012), 100.23px)',
|
|
144
|
-
},
|
|
145
|
-
|
|
146
|
-
{
|
|
147
|
-
message:
|
|
148
|
-
'should return clamp value when `fluid` is empty array',
|
|
149
|
-
preset: {
|
|
150
|
-
size: '28px',
|
|
151
|
-
fluid: [],
|
|
152
|
-
},
|
|
153
|
-
typographySettings: {
|
|
154
|
-
fluid: true,
|
|
155
|
-
},
|
|
156
|
-
expected:
|
|
157
|
-
'clamp(21px, 1.313rem + ((1vw - 7.68px) * 0.841), 28px)',
|
|
158
|
-
},
|
|
159
|
-
|
|
160
|
-
{
|
|
161
|
-
message: 'should return clamp value when `fluid` is `null`',
|
|
162
|
-
preset: {
|
|
163
|
-
size: '28px',
|
|
164
|
-
fluid: null,
|
|
165
|
-
},
|
|
166
|
-
typographySettings: {
|
|
167
|
-
fluid: true,
|
|
168
|
-
},
|
|
169
|
-
expected:
|
|
170
|
-
'clamp(21px, 1.313rem + ((1vw - 7.68px) * 0.841), 28px)',
|
|
171
|
-
},
|
|
172
|
-
|
|
173
|
-
{
|
|
174
|
-
message:
|
|
175
|
-
'should return clamp value if min font size is greater than max',
|
|
176
|
-
preset: {
|
|
177
|
-
size: '3rem',
|
|
178
|
-
fluid: {
|
|
179
|
-
min: '5rem',
|
|
180
|
-
max: '32px',
|
|
181
|
-
},
|
|
182
|
-
},
|
|
183
|
-
typographySettings: {
|
|
184
|
-
fluid: true,
|
|
185
|
-
},
|
|
186
|
-
expected:
|
|
187
|
-
'clamp(5rem, 5rem + ((1vw - 0.48rem) * -5.769), 32px)',
|
|
188
|
-
},
|
|
189
|
-
|
|
190
|
-
{
|
|
191
|
-
message: 'should return value with invalid min/max fluid units',
|
|
192
|
-
preset: {
|
|
193
|
-
size: '10em',
|
|
194
|
-
fluid: {
|
|
195
|
-
min: '20vw',
|
|
196
|
-
max: '50%',
|
|
197
|
-
},
|
|
198
|
-
},
|
|
199
|
-
typographySettings: {
|
|
200
|
-
fluid: true,
|
|
201
|
-
},
|
|
202
|
-
expected: '10em',
|
|
203
|
-
},
|
|
204
|
-
|
|
205
|
-
{
|
|
206
|
-
message:
|
|
207
|
-
'should return value when size is < lower bounds and no fluid min/max set',
|
|
208
|
-
preset: {
|
|
209
|
-
size: '3px',
|
|
210
|
-
},
|
|
211
|
-
typographySettings: {
|
|
212
|
-
fluid: true,
|
|
213
|
-
},
|
|
214
|
-
expected: '3px',
|
|
215
|
-
},
|
|
216
|
-
|
|
217
|
-
{
|
|
218
|
-
message:
|
|
219
|
-
'should return value when size is equal to lower bounds and no fluid min/max set',
|
|
220
|
-
preset: {
|
|
221
|
-
size: '14px',
|
|
222
|
-
},
|
|
223
|
-
typographySettings: {
|
|
224
|
-
fluid: true,
|
|
225
|
-
},
|
|
226
|
-
expected: '14px',
|
|
227
|
-
},
|
|
228
|
-
|
|
229
|
-
{
|
|
230
|
-
message:
|
|
231
|
-
'should return clamp value with different min max units',
|
|
232
|
-
preset: {
|
|
233
|
-
size: '28px',
|
|
234
|
-
fluid: {
|
|
235
|
-
min: '20px',
|
|
236
|
-
max: '50rem',
|
|
237
|
-
},
|
|
238
|
-
},
|
|
239
|
-
typographySettings: {
|
|
240
|
-
fluid: true,
|
|
241
|
-
},
|
|
242
|
-
expected:
|
|
243
|
-
'clamp(20px, 1.25rem + ((1vw - 7.68px) * 93.75), 50rem)',
|
|
244
|
-
},
|
|
245
|
-
|
|
246
|
-
{
|
|
247
|
-
message:
|
|
248
|
-
'should return clamp value where no fluid max size is set',
|
|
249
|
-
preset: {
|
|
250
|
-
size: '28px',
|
|
251
|
-
fluid: {
|
|
252
|
-
min: '2.6rem',
|
|
253
|
-
},
|
|
254
|
-
},
|
|
255
|
-
typographySettings: {
|
|
256
|
-
fluid: true,
|
|
257
|
-
},
|
|
258
|
-
expected:
|
|
259
|
-
'clamp(2.6rem, 2.6rem + ((1vw - 0.48rem) * -1.635), 28px)',
|
|
260
|
-
},
|
|
261
|
-
|
|
262
|
-
{
|
|
263
|
-
message:
|
|
264
|
-
'should return clamp value where no fluid min size is set',
|
|
265
|
-
preset: {
|
|
266
|
-
size: '28px',
|
|
267
|
-
fluid: {
|
|
268
|
-
max: '80px',
|
|
269
|
-
},
|
|
270
|
-
},
|
|
271
|
-
typographySettings: {
|
|
272
|
-
fluid: true,
|
|
273
|
-
},
|
|
274
|
-
expected:
|
|
275
|
-
'clamp(21px, 1.313rem + ((1vw - 7.68px) * 7.091), 80px)',
|
|
276
|
-
},
|
|
277
|
-
|
|
278
|
-
{
|
|
279
|
-
message:
|
|
280
|
-
'should not apply lower bound test when fluid values are set',
|
|
281
|
-
preset: {
|
|
282
|
-
size: '1.5rem',
|
|
283
|
-
fluid: {
|
|
284
|
-
min: '0.5rem',
|
|
285
|
-
max: '5rem',
|
|
286
|
-
},
|
|
287
|
-
},
|
|
288
|
-
typographySettings: {
|
|
289
|
-
fluid: true,
|
|
290
|
-
},
|
|
291
|
-
expected:
|
|
292
|
-
'clamp(0.5rem, 0.5rem + ((1vw - 0.48rem) * 8.654), 5rem)',
|
|
293
|
-
},
|
|
294
|
-
|
|
295
|
-
{
|
|
296
|
-
message:
|
|
297
|
-
'should not apply lower bound test when only fluid min is set',
|
|
298
|
-
preset: {
|
|
299
|
-
size: '20px',
|
|
300
|
-
fluid: {
|
|
301
|
-
min: '12px',
|
|
302
|
-
},
|
|
303
|
-
},
|
|
304
|
-
typographySettings: {
|
|
305
|
-
fluid: true,
|
|
306
|
-
},
|
|
307
|
-
expected:
|
|
308
|
-
'clamp(12px, 0.75rem + ((1vw - 7.68px) * 0.962), 20px)',
|
|
309
|
-
},
|
|
310
|
-
|
|
311
|
-
{
|
|
312
|
-
message:
|
|
313
|
-
'should not apply lower bound test when only fluid max is set',
|
|
314
|
-
preset: {
|
|
315
|
-
size: '0.875rem',
|
|
316
|
-
fluid: {
|
|
317
|
-
max: '20rem',
|
|
318
|
-
},
|
|
319
|
-
},
|
|
320
|
-
typographySettings: {
|
|
321
|
-
fluid: true,
|
|
322
|
-
},
|
|
323
|
-
expected:
|
|
324
|
-
'clamp(0.875rem, 0.875rem + ((1vw - 0.48rem) * 36.779), 20rem)',
|
|
325
|
-
},
|
|
326
|
-
|
|
327
|
-
{
|
|
328
|
-
message:
|
|
329
|
-
'should return clamp value when min and max font sizes are equal',
|
|
330
|
-
preset: {
|
|
331
|
-
size: '4rem',
|
|
332
|
-
fluid: {
|
|
333
|
-
min: '30px',
|
|
334
|
-
max: '30px',
|
|
335
|
-
},
|
|
336
|
-
},
|
|
337
|
-
typographySettings: {
|
|
338
|
-
fluid: true,
|
|
339
|
-
},
|
|
340
|
-
expected: 'clamp(30px, 1.875rem + ((1vw - 7.68px) * 1), 30px)',
|
|
341
|
-
},
|
|
342
|
-
|
|
343
|
-
{
|
|
344
|
-
message:
|
|
345
|
-
'should use default min font size value where min font size unit in fluid config is not supported',
|
|
346
|
-
preset: {
|
|
347
|
-
size: '15px',
|
|
348
|
-
},
|
|
349
|
-
typographySettings: {
|
|
350
|
-
fluid: {
|
|
351
|
-
minFontSize: '16%',
|
|
352
|
-
},
|
|
353
|
-
},
|
|
354
|
-
expected:
|
|
355
|
-
'clamp(14px, 0.875rem + ((1vw - 7.68px) * 0.12), 15px)',
|
|
356
|
-
},
|
|
357
|
-
|
|
358
|
-
// Equivalent custom config PHP unit tests in `test_should_covert_font_sizes_to_fluid_values()`.
|
|
359
|
-
{
|
|
360
|
-
message: 'should return clamp value using custom fluid config',
|
|
361
|
-
preset: {
|
|
362
|
-
size: '17px',
|
|
363
|
-
},
|
|
364
|
-
typographySettings: {
|
|
365
|
-
fluid: {
|
|
366
|
-
minFontSize: '16px',
|
|
367
|
-
},
|
|
368
|
-
},
|
|
369
|
-
expected: 'clamp(16px, 1rem + ((1vw - 7.68px) * 0.12), 17px)',
|
|
370
|
-
},
|
|
371
|
-
|
|
372
|
-
{
|
|
373
|
-
message:
|
|
374
|
-
'should return value when font size <= custom min font size bound',
|
|
375
|
-
preset: {
|
|
376
|
-
size: '15px',
|
|
377
|
-
},
|
|
378
|
-
typographySettings: {
|
|
379
|
-
fluid: {
|
|
380
|
-
minFontSize: '16px',
|
|
381
|
-
},
|
|
382
|
-
},
|
|
383
|
-
expected: '15px',
|
|
384
|
-
},
|
|
385
|
-
].forEach( ( { message, preset, typographySettings, expected } ) => {
|
|
386
|
-
it( `${ message }`, () => {
|
|
387
|
-
expect(
|
|
388
|
-
getTypographyFontSizeValue( preset, typographySettings )
|
|
389
|
-
).toBe( expected );
|
|
390
|
-
} );
|
|
391
|
-
} );
|
|
392
|
-
} );
|
|
393
|
-
} );
|