From f7c4a4c84acfdbb569b637dfa98ecbe412c9daad Mon Sep 17 00:00:00 2001 From: cristian-ungureanu Date: Tue, 7 Nov 2023 15:27:47 +0200 Subject: [PATCH 1/8] chore: add support changes for svg menu icon in pro --- header-footer-grid/Core/Components/MenuIcon.php | 13 +++++++++++-- .../components/component-menu-icon.php | 17 ++++++++++++++--- start.php | 1 + 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/header-footer-grid/Core/Components/MenuIcon.php b/header-footer-grid/Core/Components/MenuIcon.php index 00f03c3a88..df1592c286 100644 --- a/header-footer-grid/Core/Components/MenuIcon.php +++ b/header-footer-grid/Core/Components/MenuIcon.php @@ -205,7 +205,7 @@ public function toggle_style() { */ private function get_menu_style( $menu_icon ) { // We don't add any css for the default option. - if ( ! in_array( $menu_icon, [ 'arrow', 'donner', 'dots', 'minus', 'vortex', 'squeeze' ] ) ) { + if ( ! in_array( $menu_icon, [ 'arrow', 'donner', 'dots', 'minus', 'vortex', 'squeeze', 'svg' ] ) ) { return ''; } @@ -406,7 +406,16 @@ private function get_menu_style( $menu_icon ) { } CSS; } - + // SVG style + if ( $menu_icon === 'svg' ) { + $css .= << - - + + + + true, // Dynamic icon selection or a button for search components 'restrict_content' => true, 'theme_dedicated_menu' => true, // Theme uses the new menu location for settings and sub-pages. + 'menu_icon_svg' => true, ] ); $vendor_file = trailingslashit( get_template_directory() ) . 'vendor/autoload.php'; From c98597e41d0f35105761d5109873f4e1c27affed Mon Sep 17 00:00:00 2001 From: Bogdan Preda Date: Mon, 13 Nov 2023 20:44:45 +0200 Subject: [PATCH 2/8] chore: add icon size and extend svg sanitization --- globals/utilities.php | 21 ++++++--- .../Core/Components/MenuIcon.php | 44 ++++++++++++++++++- .../components/component-menu-icon.php | 2 +- 3 files changed, 57 insertions(+), 10 deletions(-) diff --git a/globals/utilities.php b/globals/utilities.php index 9d5b8da440..26e5ac50d5 100644 --- a/globals/utilities.php +++ b/globals/utilities.php @@ -281,9 +281,13 @@ function neve_get_svg_allowed_tags() { 'type' => true, ), 'g' => array( - 'fill' => true, - 'transform' => true, - 'style' => true, + 'fill' => true, + 'transform' => true, + 'style' => true, + 'stroke' => true, + 'stroke-linecap' => true, + 'stroke-linejoin' => true, + 'stroke-width' => true, ), 'circle' => array( 'cx' => true, @@ -302,15 +306,18 @@ function neve_get_svg_allowed_tags() { 'style' => true, 'class' => true, 'transform' => true, + 'stroke' => true, 'stroke-linecap' => true, 'stroke-linejoin' => true, 'stroke-width' => true, ), 'polyline' => array( - 'fill' => true, - 'stroke' => true, - 'stroke-width' => true, - 'points' => true, + 'fill' => true, + 'stroke' => true, + 'stroke-linecap' => true, + 'stroke-linejoin' => true, + 'stroke-width' => true, + 'points' => true, ), 'polygon' => array( 'class' => true, diff --git a/header-footer-grid/Core/Components/MenuIcon.php b/header-footer-grid/Core/Components/MenuIcon.php index df1592c286..df1603a12a 100644 --- a/header-footer-grid/Core/Components/MenuIcon.php +++ b/header-footer-grid/Core/Components/MenuIcon.php @@ -34,6 +34,7 @@ class MenuIcon extends Abstract_Component { const QUICK_LINKS_ID = 'quick-links'; const LABEL_MARGIN_ID = 'label_margin'; const MENU_ICON = 'menu_icon'; + const SIZE_ID = 'icon_size'; /** * Padding settings default values. @@ -408,9 +409,11 @@ private function get_menu_style( $menu_icon ) { } // SVG style if ( $menu_icon === 'svg' ) { - $css .= <<get_id() . '_' . self::SIZE_ID, '15' ) . 'px'; + $css .= <<add( + [ + 'id' => self::SIZE_ID, + 'group' => $this->get_id(), + 'tab' => SettingsManager::TAB_STYLE, + 'transport' => 'postMessage', + 'sanitize_callback' => 'absint', + 'default' => 15, + 'label' => __( 'Icon Size', 'neve' ), + 'type' => 'Neve\Customizer\Controls\React\Range', + 'options' => [ + 'active_callback' => function () { + return Mods::get( $this->get_id() . '_' . self::MENU_ICON, 'default' ) === 'svg'; + + }, + 'priority' => 11, + 'input_attrs' => [ + 'min' => 10, + 'max' => 100, + 'defaultVal' => 15, + ], + ], + 'live_refresh_selector' => $this->default_selector . ' span.icon-svg', + 'live_refresh_css_prop' => [ + 'cssVar' => [ + 'vars' => '--menuiconsize', + 'selector' => '.builder-item--' . $this->get_id(), + 'suffix' => 'px', + ], + 'type' => 'svg-icon-size', + 'default' => 15, + ], + 'section' => $this->section, + 'conditional_header' => true, + ] + ); + $mod_key = self::BUTTON_APPEARANCE; $default = [ 'type' => 'outline', diff --git a/header-footer-grid/templates/components/component-menu-icon.php b/header-footer-grid/templates/components/component-menu-icon.php index 3f84e80a69..0750b587a3 100644 --- a/header-footer-grid/templates/components/component-menu-icon.php +++ b/header-footer-grid/templates/components/component-menu-icon.php @@ -49,7 +49,7 @@ From 0393d43ead65a82a3dd5c93dc592be7a91cd2d74 Mon Sep 17 00:00:00 2001 From: Bogdan Preda Date: Mon, 20 Nov 2023 14:21:39 +0200 Subject: [PATCH 3/8] chore: update e2e tests --- .../specs/customizer/general/custom-global-colors.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e-tests/specs/customizer/general/custom-global-colors.spec.ts b/e2e-tests/specs/customizer/general/custom-global-colors.spec.ts index 0e7b28152d..90743c2252 100644 --- a/e2e-tests/specs/customizer/general/custom-global-colors.spec.ts +++ b/e2e-tests/specs/customizer/general/custom-global-colors.spec.ts @@ -36,7 +36,7 @@ test.describe('Custom Global Color Control', () => { await page.locator('.block-editor-rich-text__editable').first().click(); // use Background color control to open the color picker, available since WP 6.1 await page.getByRole('button', { name: 'Background' }).click(); - await page.getByRole('button', { name: 'Color: Custom 1' }).click(); + await page.getByRole('button', { name: 'Custom 1' }).click(); await page .locator('.block-editor-panel-color-gradient-settings__color-name') .getByText('Text') @@ -72,6 +72,6 @@ test.describe('Custom Global Color Control', () => { await page.goto('/hello-world/?test_name=custom-global-colors'); await expect( await page.locator('.nv-content-wrap p').first() - ).toHaveClass(/has-custom-1-color/); + ).toHaveClass(/has-custom-1-background-color/); }); }); From ed7e68cc0a987a165f8c81612505a9bc1cb2c2d1 Mon Sep 17 00:00:00 2001 From: Bogdan Preda Date: Mon, 20 Nov 2023 14:43:50 +0200 Subject: [PATCH 4/8] chore: update package location for e2e setup --- bin/envs/cli-setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/envs/cli-setup.sh b/bin/envs/cli-setup.sh index f852c6998b..e1a98de0c5 100755 --- a/bin/envs/cli-setup.sh +++ b/bin/envs/cli-setup.sh @@ -22,7 +22,7 @@ init_environment(){ wp --allow-root theme install --activate $NEVE_LOCATION wp --allow-root option update fresh_site 0 echo "Installing Theme API Plugin" - wp --allow-root plugin install https://github.com/cristian-ungureanu/wp-thememods-api/archive/refs/heads/main.zip --force --activate + wp --allow-root plugin install https://github.com/codeinwp/wp-thememods-api/archive/refs/heads/main.zip --force --activate } From 31bc1b10839cade05c5de68dbc949c67b79f2517 Mon Sep 17 00:00:00 2001 From: Bogdan Preda Date: Mon, 20 Nov 2023 17:53:50 +0200 Subject: [PATCH 5/8] chore: wip e2e test fix --- bin/envs/woo-sample/start.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bin/envs/woo-sample/start.sh b/bin/envs/woo-sample/start.sh index ed74b83d97..0e980d2318 100755 --- a/bin/envs/woo-sample/start.sh +++ b/bin/envs/woo-sample/start.sh @@ -9,4 +9,7 @@ wp --allow-root import ./themeunittestdata.wordpress.xml --authors=skip --skip= #Setup content for woo curl -O https://raw.githubusercontent.com/woocommerce/woocommerce/master/sample-data/sample_products.xml -wp --allow-root import ./sample_products.xml --authors=skip --skip=image_resize \ No newline at end of file +wp --allow-root import ./sample_products.xml --authors=skip --skip=image_resize + +#Enable Cash on delivery as default +wp wc payment_gateway update cod --enabled=1 --user=admin From e924c74005dea3913c480bdc78f5a33482f6515a Mon Sep 17 00:00:00 2001 From: Bogdan Preda Date: Tue, 28 Nov 2023 15:06:27 +0200 Subject: [PATCH 6/8] fix: svg icon as part of the mobile menu --- .../Core/Components/MenuIcon.php | 1 + .../components/component-menu-icon.php | 2 +- .../templates/row-wrapper-mobile.php | 18 ++++++++++++++++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/header-footer-grid/Core/Components/MenuIcon.php b/header-footer-grid/Core/Components/MenuIcon.php index df1603a12a..116baa1719 100644 --- a/header-footer-grid/Core/Components/MenuIcon.php +++ b/header-footer-grid/Core/Components/MenuIcon.php @@ -35,6 +35,7 @@ class MenuIcon extends Abstract_Component { const LABEL_MARGIN_ID = 'label_margin'; const MENU_ICON = 'menu_icon'; const SIZE_ID = 'icon_size'; + const MENU_SVG = 'svg_menu_icon'; /** * Padding settings default values. diff --git a/header-footer-grid/templates/components/component-menu-icon.php b/header-footer-grid/templates/components/component-menu-icon.php index 0750b587a3..20c2325284 100644 --- a/header-footer-grid/templates/components/component-menu-icon.php +++ b/header-footer-grid/templates/components/component-menu-icon.php @@ -14,7 +14,7 @@ $item_attributes = apply_filters( 'neve_nav_toggle_data_attrs', '' ); $label = component_setting( MenuIcon::TEXT_ID ); $menu_icon = component_setting( MenuIcon::MENU_ICON ); -$menu_svg = component_setting( 'svg_menu_icon' ); +$menu_svg = component_setting( MenuIcon::MENU_SVG ); if ( $menu_icon === 'svg' && empty( $menu_svg ) ) { $menu_icon = 'default'; } diff --git a/header-footer-grid/templates/row-wrapper-mobile.php b/header-footer-grid/templates/row-wrapper-mobile.php index a8c3e322c2..000f3b1892 100644 --- a/header-footer-grid/templates/row-wrapper-mobile.php +++ b/header-footer-grid/templates/row-wrapper-mobile.php @@ -23,6 +23,12 @@ $close_classes = 'close-sidebar-panel navbar-toggle-wrapper' . ( $close_contained ? ' container' : '' ); $submenu_style = row_setting( 'layout', 'slide_left' ); $menu_icon_class = apply_filters( 'neve_menu_icon_classes', 'hamburger is-active ' ); + +$menu_icon = component_setting( MenuIcon::MENU_ICON ); +$menu_svg = component_setting( MenuIcon::MENU_SVG ); +if ( $menu_icon === 'svg' && empty( $menu_svg ) ) { + $menu_icon = 'default'; +} ?>
- + + - + + From 41ffe675233eeacdd173a73b28830a01c804124f Mon Sep 17 00:00:00 2001 From: Bogdan Preda Date: Tue, 28 Nov 2023 15:15:08 +0200 Subject: [PATCH 7/8] chore: reverted test changes as they were already solved in main --- bin/envs/woo-sample/start.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/bin/envs/woo-sample/start.sh b/bin/envs/woo-sample/start.sh index 0e980d2318..38107a065f 100755 --- a/bin/envs/woo-sample/start.sh +++ b/bin/envs/woo-sample/start.sh @@ -11,5 +11,3 @@ wp --allow-root import ./themeunittestdata.wordpress.xml --authors=skip --skip= curl -O https://raw.githubusercontent.com/woocommerce/woocommerce/master/sample-data/sample_products.xml wp --allow-root import ./sample_products.xml --authors=skip --skip=image_resize -#Enable Cash on delivery as default -wp wc payment_gateway update cod --enabled=1 --user=admin From e6503bf94968b8b5680f213f54cd1f40bcf84efd Mon Sep 17 00:00:00 2001 From: Bogdan Preda Date: Tue, 28 Nov 2023 15:15:39 +0200 Subject: [PATCH 8/8] chore: code cleanup --- bin/envs/woo-sample/start.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/bin/envs/woo-sample/start.sh b/bin/envs/woo-sample/start.sh index 38107a065f..0699d67240 100755 --- a/bin/envs/woo-sample/start.sh +++ b/bin/envs/woo-sample/start.sh @@ -10,4 +10,3 @@ wp --allow-root import ./themeunittestdata.wordpress.xml --authors=skip --skip= #Setup content for woo curl -O https://raw.githubusercontent.com/woocommerce/woocommerce/master/sample-data/sample_products.xml wp --allow-root import ./sample_products.xml --authors=skip --skip=image_resize -