Файловый менеджер - Редактировать - /home/tuudkjt/globeasy/wp-includes/ID3/hello-elementor.tar
Назад
footer.php 0000777 00000001147 15251663101 0006565 0 ustar 00 <?php /** * The template for displaying the footer. * * Contains the body & html closing tags. * * @package HelloElementor */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } if ( ! function_exists( 'elementor_theme_do_location' ) || ! elementor_theme_do_location( 'footer' ) ) { if ( hello_elementor_display_header_footer() ) { if ( did_action( 'elementor/loaded' ) && hello_header_footer_experiment_active() ) { get_template_part( 'template-parts/dynamic-footer' ); } else { get_template_part( 'template-parts/footer' ); } } } ?> <?php wp_footer(); ?> </body> </html> readme.txt 0000777 00000040576 15251663101 0006565 0 ustar 00 === Hello Elementor === Contributors: elemntor, KingYes, ariel.k, bainternet Requires at least: 6.0 Tested up to: 6.8 Stable tag: 3.4.6 Version: 3.4.6 Requires PHP: 7.4 License: GNU General Public License v3 or later License URI: https://www.gnu.org/licenses/gpl-3.0.html A lightweight and minimalist WordPress theme for Elementor site builder. == Description == Hello Elementor is a lightweight and minimalist WordPress theme that was built specifically to work seamlessly with the Elementor site builder plugin. The theme is free, open-source, and designed for users who want a flexible, easy-to-use, and customizable website. The theme's main focus is on providing a solid foundation for users to build their own unique designs using the Elementor drag-and-drop site builder. It is optimized for speed and performance, and its simplicity and flexibility make it a great choice for both beginners and experienced website designers. The theme supports common WordPress features which can be extended using a child-theme. In addition, there are several ways to add custom styles. It can be done from **Elementor**, using a child-theme, or with an external plugin. To customize the theme further, visit [Elementor developers docs](https://developers.elementor.com/docs/hello-elementor-theme/). == Copyright == This theme, like WordPress, is distributed under the terms of GPL. Use it as your springboard to building a site with ***Elementor***. Hello Elementor bundles the following third-party resources: Font Awesome icons for theme screenshot License: SIL Open Font License, version 1.1. Source: https://fontawesome.com/v4.7.0/ Image for theme screenshot, Copyright Jason Blackeye License: CC0 1.0 Universal (CC0 1.0) Source: https://stocksnap.io/photo/4B83RD7BV9 == Changelog == = 3.4.6 - 2026-01-21 * Tweak: Updated Elementor assets = 3.4.5 - 2025-10-27 * New: Add theme home to Finder * Tweak: Improve banner behavior after clicking on action button * Fix: Load styles correctly in Gutenberg pages * Fix: Do not change menu name after Elementor activation * Fix: Ensure quicklinks works correctly from home page = 3.4.4 - 2025-06-08 = * Tweak: Improve Header/Footer edit access from theme Home = 3.4.3 - 2025-05-26 = * Fix: Settings page empty after 3.4.0 in translated sites * Fix: PHP 8.4 deprecation notice = 3.4.2 - 2025-05-19 = * Tweak: Set Home links font weight to regular * Tweak: Dart SASS 3.0.0 - resolve scss deprecated warnings * Fix: Settings page empty after 3.4.0 = 3.4.1 - 2025-05-08 = * Fix: Critical Error after theme update [critical-error-on-website-54/#post-18454740](https://wordpress.org/support/topic/critical-error-on-website-54/#post-18454740) = 3.4.0 - 2025-05-05 = * New: Add Theme Home * Tweak: Theme settings page style = 3.3.0 - 2025-01-21 = * Tweak: Added changelog link in theme settings * Tweak: Updated minimum required Safari version to 15.5 * Tweak: Update autoprefixer to latest versions = 3.2.1 - 2024-12-16 = * Fix: Gutenberg editor expanded disproportionately after adding support for `theme.json` ([#430](https://github.com/elementor/hello-theme/issues/430)) * Fix: Use CSS logical properties in the theme * Fix: Add ARIA attributes to header nav menu = 3.2.0 - 2024-12-15 = * Tweak: Convert classic to hybrid theme with block-editor support * Tweak: Added new design options to header/footer * Tweak: Update `Tested up to 6.7` * Fix: Minify JS files ([#419](https://github.com/elementor/hello-theme/issues/419)) = 3.1.1 - 2024-07-30 = * Fix: Use consistent `<h2>` for comments title and comment form = 3.1.0 - 2024-06-19 = * Tweak: Update `Requires PHP 7.4` * Tweak: Update `Tested up to 6.5` * Tweak: Add the ability to style the brand layout * Tweak: Remove deprecated Elementor code * Tweak: Restore default focus styling inside the theme * Tweak: Add `aria-label` attribute to various `<nav>` elements * Tweak: Improve mobile menu keyboard accessibility * Tweak: Semantic mobile menu toggle button * Fix: The header renders redundant `<p>` when tagline is empty * Fix: Single post renders redundant wrapping `<div>` when it has no tags * Fix: Remove redundant wrapping `<div>` from `wp_nav_menu()` output * Fix: Wrap page `<h1>` with `<div>`, not `<header>` * Fix: Use consistent `<h3>` for comments title and comment form * Fix: Remove heading tags from dynamic header/footer * Fix: Mobile Menu hamburger is not visible for logged-out users in some cases ([#369](https://github.com/elementor/hello-theme/issues/369)) * Fix: Remove duplicate ID attributes in the header mobile menu * Fix: Remove redundant table styles ([#311](https://github.com/elementor/hello-theme/issues/311)) * Fix: Remove redundant space bellow Site Logo in the header/footer * Fix: Remove redundant CSS from dynamic header/footer layout * Fix: Separate post tags in single post ([#304](https://github.com/elementor/hello-theme/issues/304)) * Fix: Display `the_tags()` after `wp_link_pages()` * Fix: Remove page break navigation from archives when using `<!--nextpage-->` * Fix: Style posts pagination component layout * Fix: Add RTL support to pagination arrows in archive pages * Fix: Update pagination prev/next labels and positions ([#404](https://github.com/elementor/hello-theme/issues/404)) * Fix: Check if Elementor is loaded when using dynamic header & footer = 3.0.2 - 2024-05-28 = * Internal: Version bump release to refresh WordPress repository = 3.0.1 - 2024-01-24 = * Fix: Harden security for admin notice dismiss button * Fix: Add `alt` attribute to all the images in the dashboard = 3.0.0 - 2023-12-26 = * New: Option to disable cross-site header & footer * Tweak: Update `Requires PHP 7.3` * Tweak: Update `Tested up to 6.4` * Tweak: Move cross-site header & footer styles to a separate CSS file * Tweak: Don't load `header-footer.min.css` when disabling header & footer * Tweak: Don't load `hello-frontend.min.js` when disabling header & footer * Tweak: Replace jQuery code with vanilla JS in the frontend * Tweak: Replace jQuery code with vanilla JS in WordPress admin * Tweak: Remove unused JS code from the frontend * Tweak: Remove unused CSS code from the editor * Tweak: Remove unnecessary `role` attributes from HTML landmark elements * Tweak: Link from Elementor Site Settings to Hello Theme Settings * Fix: Dynamic script version for better caching = 2.9.0 - 2023-10-25 = * New: Introducing the new settings page for the theme * New: Option to disable description meta tag * New: Option to disable skip link * New: Option to disable page title * New: Option to unregister Hello style.css * New: Option to unregister Hello theme.css * Tweak: Update `Requires at least 6.0` * Tweak: Update `Tested up to 6.3` = 2.8.1 - 2023-07-05 = * Tweak: Added additional CSS selectors to apply RTL on comments * Fix: Comment area style regression = 2.8.0 - 2023-07-04 = * Tweak: Update `Requires PHP 7.0` * Tweak: Added description meta tag with excerpt text * Tweak: Use CSS logical properties rather than physical properties * Tweak: Replace legacy `page-break-*` CSS properties with `break-*` properties * Tweak: Remove duplicate CSS classes for screen readers * Tweak: Merge similar translation strings (i18n) = 2.7.1 - 2023-03-27 = * Tweak: Add excerpt support for pages * Tweak: When post comments are closed, display it to the user * Fix: Empty "Skip to content" href ([#276](https://github.com/elementor/hello-theme/issues/276)) * Fix: Child themes using `hello_elementor_body_open()` no longer working ([#278](https://github.com/elementor/hello-theme/issues/278)) = 2.7.0 - 2023-03-26 = * Tweak: Update `Requires at least 5.9` * Tweak: Update `Tested up to 6.2` * Tweak: Remove backwards compatibility support for `wp_body_open()` * Tweak: Match `search.php` markup to `archive.php` markup * Tweak: Check if posts have featured images set * Tweak: Remove unnecessary `role` attributes from HTML landmark elements * Tweak: Escape translation strings for secure HTML output * Tweak: Use i18n function to make the "Menu" string translatable * Tweak: Minify SVG assets * Tweak: Make header nav-menu keyboard accessible * Tweak: Add `role="button"` to the nav-menu toggle for better accessibility * Tweak: Toggle mobile nav-menu with `Enter` & `Space` keyboard keys * Tweak: Add `hello_elementor_enable_skip_link` filter to enable/disable the skip link * Tweak: Add `hello_elementor_skip_link_url` filter to change skip link URL * Tweak: Use theme CSS not Elementor plugins CSS * Tweak: Added support for the new Elementor version * Tweak: Update autoprefixer to exclude dead browsers * Tweak: Delete deprecated `elementor_hello_theme_load_textdomain` filter hook * Tweak: Delete deprecated `elementor_hello_theme_register_menus` filter hook * Tweak: Delete deprecated `elementor_hello_theme_add_theme_support` filter hook * Tweak: Delete deprecated `elementor_hello_theme_add_woocommerce_support` filter hook * Tweak: Delete deprecated `elementor_hello_theme_enqueue_style` filter hook * Tweak: Delete deprecated `elementor_hello_theme_register_elementor_locations` filter hook * Tweak: Added additional and `custom` units to header & footer panels * Tweak: Link to Elementor "Site Identity" panel from the header & footer panels * Tweak: Delete the `hello_elementor_load_textdomain` filter hook = 2.6.1 - 2022-07-11 = * Tweak: Tables looks weird on dark backgrounds ([#126](https://github.com/elementor/hello-theme/issues/126)) * Fix: Remove unnecessary PHP tags ([#213](https://github.com/elementor/hello-theme/issues/213)) = 2.6.0 - 2022-07-10 = * Tweak: Added `theme_support` for `script` and `style` to avoid validation warnings ([#184](https://github.com/elementor/hello-theme/issues/184)) * Tweak: Sanitized content for allowed HTML tags in post title ([#118](https://github.com/elementor/hello-theme/issues/118)) * Tweak: Changed the containers to `max-width: 1140px` instead of `960px` to align with the header-footer width * Tweak: Centering the page title for better consistency in all cases * Tweak: Added link between the customizer to Elementor global settings * Tweak: Added Skip Links to custom or dynamic header for better accessibility * Fix: Added output escaping in several places ([#194](https://github.com/elementor/hello-theme/issues/194)) * Fix: Post Password Form Submit button alignment (Props [@romanbondar](https://github.com/romanbondar)) * Fix: Fatal error when kit doesn't exist or needs to be recreated ([#175](https://github.com/elementor/hello-theme/issues/175)) = 2.5.0 - 2022-01-26 = * Tweak: Added keyboard navigation to Hello Elementor theme menus * Tweak: Added Skip Links and `#content` for the main wrapper for better accessibility ([#133](https://github.com/elementor/hello-theme/issues/133)) * Tweak: Added underline for text links in Post Content for better accessibility * Tweak: Removed `outline: none` from inputs for better accessibility * Fix: Footer menu location is not being presented on sites that are not running Elementor = 2.4.2 - 2021-12-20 = * Tweak: Use HTTPS in XFN profile link to prevent mixed content error ([Topic](https://wordpress.org/support/topic/url-scheme-in-xfn-profile-link/)) * Tweak: Remove comments in `style.min.css` output ([#179](https://github.com/elementor/hello-theme/issues/179)) * Tweak: Promoted Hello Elementor theme Header & Footer experiment status to Stable * Tweak: Added compatibility for upcoming WordPress version 5.9 = 2.4.1 - 2021-07-07 = * Fix: Hello Elementor theme Header & Footer experiment should be inactive for existing sites = 2.4.0 - 2021-06-29 = * New: Introducing Header and Footer site elements as an Elementor Experiment * Tweak: Updated Elementor admin notices UI = 2.3.1 - 2020-12-28 = * Tweak: Improved UI for table elements * Tweak: Added support for Gutenberg Wide and Full image formats (Props [@ramiy](https://github.com/ramiy)) * Tweak: Added font smoothing * Tweak: Update `Tested up to 5.6` * Tweak: Update `Requires PHP 5.6` * Fix: Adjusted font-family in `code`, `pre`, `kbd` and `samp` elements (Props [@75th](https://github.com/75th)) = 2.3.0 - 2020-04-19 = * Tweak: Removed caption centering by default to allow alignment using Elementor (Props [@cirkut](https://github.com/cirkut)) * Tweak: Removed `text-align` property from table elements to avoid alignment issue in RTL websites (Props [@ramiy](https://github.com/ramiy)) * Tweak: Added `input[type="url"]` to CSS reset rules ([#109](https://github.com/elementor/hello-theme/issues/109)) * Tweak: Update `Tested up to 5.4` = 2.2.2 - 2019-12-23 = * Fix: Conflicts with minifier `cssnano` and CSS animations (Props [@CeliaRozalenM](https://github.com/CeliaRozalenM)) * Fix: Max-width property is missing in `_archive.scss` (Props [@redpik](https://github.com/redpik)) = 2.2.1 - 2019-09-10 = * Tweak: Added max width to `wp-caption` ([#91](https://github.com/elementor/hello-theme/issues/91)) * Tweak: Added support of `wp_body_open` = 2.2.0 - 2019-07-22 = * Tweak: Added viewport content filter ([#49](https://github.com/elementor/hello-theme/issues/49)) * Tweak: Added support Hide Title in Elementor * Tweak: Adhere to TRT's Theme Sniffer = 2.1.2 - 2019-06-19 = * Tweak: Added theme version to enqueued styles * Tweak: Remove header tags with `hello_elementor_page_title` filter = 2.1.1 - 2019-06-13 = * Tweak: Rename `Install Elementor Now` button to `Install Elementor` = 2.1.0 - 2019-06-12 = * New: Added basic theme styling * New: Added tagline under the site name in header * New: Added `hello_elementor_page_title` filter for show\hide page title * New: Added `hello_elementor_enqueue_theme_style` filter for enqueue theme-specific style * Tweak: Hide site name & tagline if logo file is exist * Tweak: Hide default page list when there is no primary menu * Tweak: Removed `#main` in `archive.php`, `single.php`, `search.php` & `404.php` files * Tweak: Removed `#site-header` in `header.php` file * Tweak: Replaced `#top-menu` with `.site-navigation` * Tweak: Removed custom SCSS directory, it is recommended to use child theme instead of editing parent theme = 2.0.7 - 2019-06-04 = * Tweak: Added nextpage support to `single.php` * Tweak: Keep both original and minified css files * Tweak: Removed `flexible-header`, `custom-colors`, `editor-style` tags = 2.0.6 - 2019-05-08 = * Tweak: Removed irrelevant font family from `$font-family-base` * Fix: Minified `style.css` for better optimization = 2.0.5 - 2019-05-21 = * New: Introducing [Hello Theme Child](https://github.com/elementor/hello-theme-child) * Tweak: Enqueue only parent theme stylesheet * Tweak: Added admin notice box for recommending Elementor plugin = 2.0.4 - 2019-05-20 = * Tweak: Removed `accessibility-ready` tag from `style.css` = 2.0.3 - 2019-05-19 = * Tweak: Removed `accessibility-ready` tag = 2.0.2 - 2019-05-13 = * Tweak: Added `hello_elementor_content_width` filter, as per WordPress best practice = 2.0.1 - 2019-05-12 = * Tweak: Updated theme screenshot (following comment by WP Theme Review team) = 2.0.0 - 2019-05-12 = * Tweak: Updated theme screenshot (following comment by WP Theme Review team) * Tweak: Add Copyright & Image and Icon License sections in readme (following comment by WP Theme Review team) * Tweak: Remove duplicated call to `add_theme_support( 'custom-logo')` * Tweak: Readme file grammar & spelling * Tweak: Update `Tested up to 5.2` * Tweak: Change functions.php methods names prefix from `hello_elementor_theme_` to `hello_elementor_` * Tweak: Change hook names to fit theme's name. Old hooks are deprecated, users are urged to update their code where needed * Tweak: Update style for `img`, `textarea`, 'label' = 1.2.0 - 2019-02-12 = * New: Added classic-editor.css for Classic editor * Tweak: A lot of changes to match theme review guidelines * Tweak: Updated theme screenshot = 1.1.1 - 2019-01-28 = * Tweak: Removed padding reset for lists = 1.1.0 - 2018-12-26 = * New: Added SCSS & do thorough style reset * New: Added readme file * New: Added `elementor_hello_theme_load_textdomain` filter for load theme's textdomain * New: Added `elementor_hello_theme_register_menus` filter for register the theme's default menu location * New: Added `elementor_hello_theme_add_theme_support` filter for register the various supported features * New: Added `elementor_hello_theme_add_woocommerce_support` filter for register woocommerce features, including product-gallery zoom, swipe & lightbox features * New: Added `elementor_hello_theme_enqueue_style` filter for enqueue style * New: Added `elementor_hello_theme_register_elementor_locations` filter for register elementor settings * New: Added child-theme preparations * New: Added template part search * New: Added translation support * Tweak: Re-write of already existing template parts = 1.0.0 - 2018-03-19 = * Initial Public Release index.php 0000777 00000001747 15251663101 0006404 0 ustar 00 <?php /** * The site's entry point. * * Loads the relevant template part, * the loop is executed (when needed) by the relevant template part. * * @package HelloElementor */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } get_header(); $is_elementor_theme_exist = function_exists( 'elementor_theme_do_location' ); if ( is_singular() ) { if ( ! $is_elementor_theme_exist || ! elementor_theme_do_location( 'single' ) ) { get_template_part( 'template-parts/single' ); } } elseif ( is_archive() || is_home() ) { if ( ! $is_elementor_theme_exist || ! elementor_theme_do_location( 'archive' ) ) { get_template_part( 'template-parts/archive' ); } } elseif ( is_search() ) { if ( ! $is_elementor_theme_exist || ! elementor_theme_do_location( 'archive' ) ) { get_template_part( 'template-parts/search' ); } } else { if ( ! $is_elementor_theme_exist || ! elementor_theme_do_location( 'single' ) ) { get_template_part( 'template-parts/404' ); } } get_footer(); includes/settings/settings-header.php 0000777 00000051360 15251663101 0014025 0 ustar 00 <?php namespace HelloElementor\Includes\Settings; use Elementor\Plugin; use Elementor\Controls_Manager; use Elementor\Group_Control_Background; use Elementor\Group_Control_Text_Shadow; use Elementor\Group_Control_Text_Stroke; use Elementor\Group_Control_Typography; use Elementor\Core\Kits\Documents\Tabs\Tab_Base; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } class Settings_Header extends Tab_Base { public function get_id() { return 'hello-settings-header'; } public function get_title() { return esc_html__( 'Hello Theme Header', 'hello-elementor' ); } public function get_icon() { return 'eicon-header'; } public function get_help_url() { return ''; } public function get_group() { return 'theme-style'; } protected function register_tab_controls() { $start = is_rtl() ? 'right' : 'left'; $end = ! is_rtl() ? 'right' : 'left'; $this->start_controls_section( 'hello_header_section', [ 'tab' => 'hello-settings-header', 'label' => esc_html__( 'Header', 'hello-elementor' ), ] ); $this->add_control( 'hello_header_logo_display', [ 'type' => Controls_Manager::SWITCHER, 'label' => esc_html__( 'Site Logo', 'hello-elementor' ), 'default' => 'yes', 'label_on' => esc_html__( 'Show', 'hello-elementor' ), 'label_off' => esc_html__( 'Hide', 'hello-elementor' ), ] ); $this->add_control( 'hello_header_tagline_display', [ 'type' => Controls_Manager::SWITCHER, 'label' => esc_html__( 'Tagline', 'hello-elementor' ), 'default' => 'yes', 'label_on' => esc_html__( 'Show', 'hello-elementor' ), 'label_off' => esc_html__( 'Hide', 'hello-elementor' ), ] ); $this->add_control( 'hello_header_menu_display', [ 'type' => Controls_Manager::SWITCHER, 'label' => esc_html__( 'Menu', 'hello-elementor' ), 'default' => 'yes', 'label_on' => esc_html__( 'Show', 'hello-elementor' ), 'label_off' => esc_html__( 'Hide', 'hello-elementor' ), ] ); $this->add_control( 'hello_header_disable_note', [ 'type' => Controls_Manager::ALERT, 'alert_type' => 'warning', 'content' => sprintf( /* translators: %s: Link that opens the theme settings page. */ __( 'Note: Hiding all the elements, only hides them visually. To disable them completely go to <a href="%s">Theme Settings</a> .', 'hello-elementor' ), admin_url( 'themes.php?page=hello-theme-settings' ) ), 'render_type' => 'ui', 'condition' => [ 'hello_header_logo_display' => '', 'hello_header_tagline_display' => '', 'hello_header_menu_display' => '', ], ] ); $this->add_control( 'hello_header_layout', [ 'type' => Controls_Manager::CHOOSE, 'label' => esc_html__( 'Layout', 'hello-elementor' ), 'options' => [ 'inverted' => [ 'title' => esc_html__( 'Inverted', 'hello-elementor' ), 'icon' => "eicon-arrow-$start", ], 'stacked' => [ 'title' => esc_html__( 'Centered', 'hello-elementor' ), 'icon' => 'eicon-h-align-center', ], 'default' => [ 'title' => esc_html__( 'Default', 'hello-elementor' ), 'icon' => "eicon-arrow-$end", ], ], 'toggle' => false, 'selector' => '.site-header', 'default' => 'default', 'separator' => 'before', ] ); $this->add_responsive_control( 'hello_header_tagline_position', [ 'type' => Controls_Manager::CHOOSE, 'label' => esc_html__( 'Tagline Position', 'hello-elementor' ), 'options' => [ 'before' => [ 'title' => esc_html__( 'Before', 'hello-elementor' ), 'icon' => "eicon-arrow-$start", ], 'below' => [ 'title' => esc_html__( 'Below', 'hello-elementor' ), 'icon' => 'eicon-arrow-down', ], 'after' => [ 'title' => esc_html__( 'After', 'hello-elementor' ), 'icon' => "eicon-arrow-$end", ], ], 'toggle' => false, 'default' => 'below', 'selectors_dictionary' => [ 'before' => 'flex-direction: row-reverse; align-items: center;', 'below' => 'flex-direction: column; align-items: stretch;', 'after' => 'flex-direction: row; align-items: center;', ], 'condition' => [ 'hello_header_tagline_display' => 'yes', 'hello_header_logo_display' => 'yes', ], 'selectors' => [ '.site-header .site-branding' => '{{VALUE}}', ], ] ); $this->add_responsive_control( 'hello_header_tagline_gap', [ 'type' => Controls_Manager::SLIDER, 'label' => esc_html__( 'Tagline Gap', 'hello-elementor' ), 'size_units' => [ 'px', 'em ', 'rem', 'custom' ], 'range' => [ 'px' => [ 'max' => 100, ], 'em' => [ 'max' => 10, ], 'rem' => [ 'max' => 10, ], ], 'condition' => [ 'hello_header_tagline_display' => 'yes', 'hello_header_logo_display' => 'yes', ], 'selectors' => [ '.site-header .site-branding' => 'gap: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'hello_header_width', [ 'type' => Controls_Manager::SELECT, 'label' => esc_html__( 'Width', 'hello-elementor' ), 'options' => [ 'boxed' => esc_html__( 'Boxed', 'hello-elementor' ), 'full-width' => esc_html__( 'Full Width', 'hello-elementor' ), ], 'selector' => '.site-header', 'default' => 'boxed', 'separator' => 'before', ] ); $this->add_responsive_control( 'hello_header_custom_width', [ 'type' => Controls_Manager::SLIDER, 'label' => esc_html__( 'Content Width', 'hello-elementor' ), 'size_units' => [ '%', 'px', 'em', 'rem', 'vw', 'custom' ], 'range' => [ 'px' => [ 'max' => 2000, ], 'em' => [ 'max' => 100, ], 'rem' => [ 'max' => 100, ], ], 'condition' => [ 'hello_header_width' => 'boxed', ], 'selectors' => [ '.site-header .header-inner' => 'width: {{SIZE}}{{UNIT}}; max-width: 100%;', ], ] ); $this->add_responsive_control( 'hello_header_gap', [ 'type' => Controls_Manager::SLIDER, 'label' => esc_html__( 'Side Margins', 'hello-elementor' ), 'size_units' => [ '%', 'px', 'em ', 'rem', 'vw', 'custom' ], 'default' => [ 'size' => '0', ], 'range' => [ 'px' => [ 'max' => 100, ], 'em' => [ 'max' => 5, ], 'rem' => [ 'max' => 5, ], ], 'selectors' => [ '.site-header' => 'padding-inline-end: {{SIZE}}{{UNIT}}; padding-inline-start: {{SIZE}}{{UNIT}}', ], 'conditions' => [ 'relation' => 'and', 'terms' => [ [ 'name' => 'hello_header_layout', 'operator' => '!=', 'value' => 'stacked', ], ], ], ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'hello_header_background', 'label' => esc_html__( 'Background', 'hello-elementor' ), 'types' => [ 'classic', 'gradient' ], 'separator' => 'before', 'selector' => '.site-header', ] ); $this->end_controls_section(); $this->start_controls_section( 'hello_header_logo_section', [ 'tab' => 'hello-settings-header', 'label' => esc_html__( 'Site Logo', 'hello-elementor' ), 'conditions' => [ 'relation' => 'and', 'terms' => [ [ 'name' => 'hello_header_logo_display', 'operator' => '=', 'value' => 'yes', ], ], ], ] ); $this->add_control( 'hello_header_logo_link', [ 'type' => Controls_Manager::ALERT, 'alert_type' => 'info', 'content' => sprintf( /* translators: %s: Link that opens Elementor's "Site Identity" panel. */ __( 'Go to <a href="%s">Site Identity</a> to manage your site\'s logo', 'hello-elementor' ), "javascript:\$e.route('panel/global/settings-site-identity')" ), 'render_type' => 'ui', 'condition' => [ 'hello_header_logo_display' => 'yes', 'hello_header_logo_type' => 'logo', ], ] ); $this->add_control( 'hello_header_title_link', [ 'type' => Controls_Manager::ALERT, 'alert_type' => 'info', 'content' => sprintf( /* translators: %s: Link that opens Elementor's "Site Identity" panel. */ __( 'Go to <a href="%s">Site Identity</a> to manage your site\'s title', 'hello-elementor' ), "javascript:\$e.route('panel/global/settings-site-identity')" ), 'render_type' => 'ui', 'condition' => [ 'hello_header_logo_display' => 'yes', 'hello_header_logo_type' => 'title', ], ] ); $this->add_control( 'hello_header_logo_type', [ 'label' => esc_html__( 'Type', 'hello-elementor' ), 'type' => Controls_Manager::SELECT, 'default' => ( has_custom_logo() ? 'logo' : 'title' ), 'options' => [ 'logo' => esc_html__( 'Logo', 'hello-elementor' ), 'title' => esc_html__( 'Title', 'hello-elementor' ), ], 'frontend_available' => true, ] ); $this->add_responsive_control( 'hello_header_logo_width', [ 'type' => Controls_Manager::SLIDER, 'label' => esc_html__( 'Logo Width', 'hello-elementor' ), 'size_units' => [ '%', 'px', 'em', 'rem', 'vw', 'custom' ], 'range' => [ 'px' => [ 'max' => 1000, ], 'em' => [ 'max' => 100, ], 'rem' => [ 'max' => 100, ], ], 'condition' => [ 'hello_header_logo_display' => 'yes', 'hello_header_logo_type' => 'logo', ], 'selectors' => [ '.site-header .site-branding .site-logo img' => 'width: {{SIZE}}{{UNIT}}; max-width: {{SIZE}}{{UNIT}}', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'hello_header_title_typography', 'label' => esc_html__( 'Typography', 'hello-elementor' ), 'condition' => [ 'hello_header_logo_display' => 'yes', 'hello_header_logo_type' => 'title', ], 'selector' => '.site-header .site-title', ] ); $this->add_group_control( Group_Control_Text_Shadow::get_type(), [ 'name' => 'hello_header_title_text_shadow', 'label' => esc_html__( 'Text Shadow', 'hello-elementor' ), 'condition' => [ 'hello_header_logo_display' => 'yes', 'hello_header_logo_type' => 'title', ], 'selector' => '.site-header .site-title a', ] ); $this->add_group_control( Group_Control_Text_Stroke::get_type(), [ 'name' => 'hello_header_title_text_stroke', 'label' => esc_html__( 'Text Stroke', 'hello-elementor' ), 'condition' => [ 'hello_header_logo_display' => 'yes', 'hello_header_logo_type' => 'title', ], 'selector' => '.site-header .site-title a', ] ); $this->start_controls_tabs( 'hello_header_title_colors' ); $this->start_controls_tab( 'hello_header_title_colors_normal', [ 'label' => esc_html__( 'Normal', 'hello-elementor' ), 'condition' => [ 'hello_header_logo_display' => 'yes', 'hello_header_logo_type' => 'title', ], ] ); $this->add_control( 'hello_header_title_color', [ 'label' => esc_html__( 'Text Color', 'hello-elementor' ), 'type' => Controls_Manager::COLOR, 'condition' => [ 'hello_header_logo_display' => 'yes', 'hello_header_logo_type' => 'title', ], 'selectors' => [ '.site-header .site-title a' => 'color: {{VALUE}};', ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'hello_header_title_colors_hover', [ 'label' => esc_html__( 'Hover', 'hello-elementor' ), 'condition' => [ 'hello_header_logo_display' => 'yes', 'hello_header_logo_type' => 'title', ], ] ); $this->add_control( 'hello_header_title_hover_color', [ 'label' => esc_html__( 'Text Color', 'hello-elementor' ), 'type' => Controls_Manager::COLOR, 'condition' => [ 'hello_header_logo_display' => 'yes', 'hello_header_logo_type' => 'title', ], 'selectors' => [ '.site-header .site-title a:hover' => 'color: {{VALUE}};', ], ] ); $this->add_control( 'hello_header_title_hover_color_transition_duration', [ 'label' => esc_html__( 'Transition Duration', 'hello-elementor' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 's', 'ms', 'custom' ], 'default' => [ 'unit' => 's', ], 'selectors' => [ '.site-header .site-title a' => 'transition-duration: {{SIZE}}{{UNIT}};', ], ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); $this->start_controls_section( 'hello_header_tagline', [ 'tab' => 'hello-settings-header', 'label' => esc_html__( 'Tagline', 'hello-elementor' ), 'conditions' => [ 'relation' => 'and', 'terms' => [ [ 'name' => 'hello_header_tagline_display', 'operator' => '=', 'value' => 'yes', ], ], ], ] ); $this->add_control( 'hello_header_tagline_link', [ 'type' => Controls_Manager::ALERT, 'alert_type' => 'info', 'content' => sprintf( /* translators: %s: Link that opens Elementor's "Site Identity" panel. */ __( 'Go to <a href="%s">Site Identity</a> to manage your site\'s tagline', 'hello-elementor' ), "javascript:\$e.route('panel/global/settings-site-identity')" ), 'render_type' => 'ui', 'condition' => [ 'hello_header_tagline_display' => 'yes', ], ] ); $this->add_control( 'hello_header_tagline_color', [ 'label' => esc_html__( 'Text Color', 'hello-elementor' ), 'type' => Controls_Manager::COLOR, 'condition' => [ 'hello_header_tagline_display' => 'yes', ], 'selectors' => [ '.site-header .site-description' => 'color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'hello_header_tagline_typography', 'label' => esc_html__( 'Typography', 'hello-elementor' ), 'condition' => [ 'hello_header_tagline_display' => 'yes', ], 'selector' => '.site-header .site-description', ] ); $this->add_group_control( Group_Control_Text_Shadow::get_type(), [ 'name' => 'hello_header_tagline_text_shadow', 'label' => esc_html__( 'Text Shadow', 'hello-elementor' ), 'condition' => [ 'hello_header_tagline_display' => 'yes', ], 'selector' => '.site-header .site-description', ] ); $this->end_controls_section(); $this->start_controls_section( 'hello_header_menu_tab', [ 'tab' => 'hello-settings-header', 'label' => esc_html__( 'Menu', 'hello-elementor' ), 'conditions' => [ 'relation' => 'and', 'terms' => [ [ 'name' => 'hello_header_menu_display', 'operator' => '=', 'value' => 'yes', ], ], ], ] ); $available_menus = wp_get_nav_menus(); $menus = [ '0' => esc_html__( '— Select a Menu —', 'hello-elementor' ) ]; foreach ( $available_menus as $available_menu ) { $menus[ $available_menu->term_id ] = $available_menu->name; } if ( 1 === count( $menus ) ) { $this->add_control( 'hello_header_menu_notice', [ 'type' => Controls_Manager::ALERT, 'alert_type' => 'info', 'heading' => esc_html__( 'There are no menus in your site.', 'hello-elementor' ), 'content' => sprintf( __( 'Go to <a href="%s" target="_blank">Menus screen</a> to create one.', 'hello-elementor' ), admin_url( 'nav-menus.php?action=edit&menu=0' ) ), 'render_type' => 'ui', ] ); } else { $this->add_control( 'hello_header_menu_warning', [ 'type' => Controls_Manager::ALERT, 'alert_type' => 'info', 'content' => sprintf( __( 'Go to the <a href="%s" target="_blank">Menus screen</a> to manage your menus. Changes will be reflected in the preview only after the page reloads.', 'hello-elementor' ), admin_url( 'nav-menus.php' ) ), 'render_type' => 'ui', ] ); $this->add_control( 'hello_header_menu', [ 'label' => esc_html__( 'Menu', 'hello-elementor' ), 'type' => Controls_Manager::SELECT, 'options' => $menus, 'default' => array_keys( $menus )[0], ] ); $this->add_control( 'hello_header_menu_layout', [ 'label' => esc_html__( 'Menu Layout', 'hello-elementor' ), 'type' => Controls_Manager::SELECT, 'default' => 'horizontal', 'options' => [ 'horizontal' => esc_html__( 'Horizontal', 'hello-elementor' ), 'dropdown' => esc_html__( 'Dropdown', 'hello-elementor' ), ], 'frontend_available' => true, ] ); $dropdown_options = []; $active_breakpoints = Plugin::$instance->breakpoints->get_active_breakpoints(); $selected_breakpoints = [ 'mobile', 'tablet' ]; foreach ( $active_breakpoints as $breakpoint_key => $breakpoint_instance ) { if ( ! in_array( $breakpoint_key, $selected_breakpoints, true ) ) { continue; } $dropdown_options[ $breakpoint_key ] = sprintf( /* translators: 1: Breakpoint label, 2: Breakpoint value. */ esc_html__( '%1$s (> %2$dpx)', 'hello-elementor' ), $breakpoint_instance->get_label(), $breakpoint_instance->get_value() ); } $dropdown_options['none'] = esc_html__( 'None', 'hello-elementor' ); $this->add_control( 'hello_header_menu_dropdown', [ 'label' => esc_html__( 'Breakpoint', 'hello-elementor' ), 'type' => Controls_Manager::SELECT, 'default' => 'tablet', 'options' => $dropdown_options, 'selector' => '.site-header', 'condition' => [ 'hello_header_menu_layout!' => 'dropdown', ], ] ); $this->add_control( 'hello_header_menu_color', [ 'label' => esc_html__( 'Color', 'hello-elementor' ), 'type' => Controls_Manager::COLOR, 'condition' => [ 'hello_header_menu_display' => 'yes', ], 'selectors' => [ '.site-header .site-navigation ul.menu li a' => 'color: {{VALUE}};', ], ] ); $this->add_control( 'hello_header_menu_toggle_color', [ 'label' => esc_html__( 'Toggle Color', 'hello-elementor' ), 'type' => Controls_Manager::COLOR, 'condition' => [ 'hello_header_menu_display' => 'yes', ], 'selectors' => [ '.site-header .site-navigation-toggle .site-navigation-toggle-icon' => 'color: {{VALUE}};', ], ] ); $this->add_control( 'hello_header_menu_toggle_background_color', [ 'label' => esc_html__( 'Toggle Background Color', 'hello-elementor' ), 'type' => Controls_Manager::COLOR, 'condition' => [ 'hello_header_menu_display' => 'yes', ], 'selectors' => [ '.site-header .site-navigation-toggle' => 'background-color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'hello_header_menu_typography', 'label' => esc_html__( 'Typography', 'hello-elementor' ), 'condition' => [ 'hello_header_menu_display' => 'yes', ], 'selector' => '.site-header .site-navigation .menu li', ] ); $this->add_group_control( Group_Control_Text_Shadow::get_type(), [ 'name' => 'hello_header_menu_text_shadow', 'label' => esc_html__( 'Text Shadow', 'hello-elementor' ), 'condition' => [ 'hello_header_menu_display' => 'yes', ], 'selector' => '.site-header .site-navigation .menu li', ] ); } $this->end_controls_section(); } public function on_save( $data ) { // Save chosen header menu to the WP settings. if ( isset( $data['settings']['hello_header_menu'] ) ) { $menu_id = $data['settings']['hello_header_menu']; $locations = get_theme_mod( 'nav_menu_locations' ); $locations['menu-1'] = (int) $menu_id; set_theme_mod( 'nav_menu_locations', $locations ); } } public function get_additional_tab_content() { $content_template = ' <div class="hello-elementor elementor-nerd-box"> <img src="%1$s" class="elementor-nerd-box-icon" alt="%2$s"> <p class="elementor-nerd-box-title">%3$s</p> <p class="elementor-nerd-box-message">%4$s</p> <a class="elementor-nerd-box-link elementor-button go-pro" target="_blank" href="%5$s">%6$s</a> </div>'; if ( ! defined( 'ELEMENTOR_PRO_VERSION' ) ) { return sprintf( $content_template, get_template_directory_uri() . '/assets/images/go-pro.svg', esc_attr__( 'Get Elementor Pro', 'hello-elementor' ), esc_html__( 'Create custom headers', 'hello-elementor' ), esc_html__( 'Add mega menus, search bars, login buttons and more with Elementor Pro.', 'hello-elementor' ), 'https://go.elementor.com/hello-theme-header/', esc_html__( 'Upgrade Now', 'hello-elementor' ) ); } else { return sprintf( $content_template, get_template_directory_uri() . '/assets/images/go-pro.svg', esc_attr__( 'Elementor Pro', 'hello-elementor' ), esc_html__( 'Create a custom header with the Theme Builder', 'hello-elementor' ), esc_html__( 'With the Theme Builder you can jump directly into each part of your site', 'hello-elementor' ), get_admin_url( null, 'admin.php?page=elementor-app#/site-editor/templates/header' ), esc_html__( 'Create Header', 'hello-elementor' ) ); } } } includes/settings/settings-footer.php 0000777 00000047664 15251663101 0014107 0 ustar 00 <?php namespace HelloElementor\Includes\Settings; use Elementor\Controls_Manager; use Elementor\Group_Control_Background; use Elementor\Group_Control_Text_Shadow; use Elementor\Group_Control_Text_Stroke; use Elementor\Group_Control_Typography; use Elementor\Core\Kits\Documents\Tabs\Tab_Base; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } class Settings_Footer extends Tab_Base { public function get_id() { return 'hello-settings-footer'; } public function get_title() { return esc_html__( 'Hello Theme Footer', 'hello-elementor' ); } public function get_icon() { return 'eicon-footer'; } public function get_help_url() { return ''; } public function get_group() { return 'theme-style'; } protected function register_tab_controls() { $start = is_rtl() ? 'right' : 'left'; $end = ! is_rtl() ? 'right' : 'left'; $this->start_controls_section( 'hello_footer_section', [ 'tab' => 'hello-settings-footer', 'label' => esc_html__( 'Footer', 'hello-elementor' ), ] ); $this->add_control( 'hello_footer_logo_display', [ 'type' => Controls_Manager::SWITCHER, 'label' => esc_html__( 'Site Logo', 'hello-elementor' ), 'default' => 'yes', 'label_on' => esc_html__( 'Show', 'hello-elementor' ), 'label_off' => esc_html__( 'Hide', 'hello-elementor' ), 'selector' => '.site-footer .site-branding', ] ); $this->add_control( 'hello_footer_tagline_display', [ 'type' => Controls_Manager::SWITCHER, 'label' => esc_html__( 'Tagline', 'hello-elementor' ), 'default' => 'yes', 'label_on' => esc_html__( 'Show', 'hello-elementor' ), 'label_off' => esc_html__( 'Hide', 'hello-elementor' ), 'selector' => '.site-footer .site-description', ] ); $this->add_control( 'hello_footer_menu_display', [ 'type' => Controls_Manager::SWITCHER, 'label' => esc_html__( 'Menu', 'hello-elementor' ), 'default' => 'yes', 'label_on' => esc_html__( 'Show', 'hello-elementor' ), 'label_off' => esc_html__( 'Hide', 'hello-elementor' ), 'selector' => '.site-footer .site-navigation', ] ); $this->add_control( 'hello_footer_copyright_display', [ 'type' => Controls_Manager::SWITCHER, 'label' => esc_html__( 'Copyright', 'hello-elementor' ), 'default' => 'yes', 'label_on' => esc_html__( 'Show', 'hello-elementor' ), 'label_off' => esc_html__( 'Hide', 'hello-elementor' ), 'selector' => '.site-footer .copyright', ] ); $this->add_control( 'hello_footer_disable_note', [ 'type' => Controls_Manager::ALERT, 'alert_type' => 'warning', 'content' => sprintf( /* translators: %s: Link that opens the theme settings page. */ __( 'Note: Hiding all the elements, only hides them visually. To disable them completely go to <a href="%s">Theme Settings</a> .', 'hello-elementor' ), admin_url( 'themes.php?page=hello-theme-settings' ) ), 'render_type' => 'ui', 'condition' => [ 'hello_footer_logo_display' => '', 'hello_footer_tagline_display' => '', 'hello_footer_menu_display' => '', 'hello_footer_copyright_display' => '', ], ] ); $this->add_control( 'hello_footer_layout', [ 'type' => Controls_Manager::CHOOSE, 'label' => esc_html__( 'Layout', 'hello-elementor' ), 'options' => [ 'inverted' => [ 'title' => esc_html__( 'Inverted', 'hello-elementor' ), 'icon' => "eicon-arrow-$start", ], 'stacked' => [ 'title' => esc_html__( 'Centered', 'hello-elementor' ), 'icon' => 'eicon-h-align-center', ], 'default' => [ 'title' => esc_html__( 'Default', 'hello-elementor' ), 'icon' => "eicon-arrow-$end", ], ], 'toggle' => false, 'selector' => '.site-footer', 'default' => 'default', 'separator' => 'before', ] ); $this->add_responsive_control( 'hello_footer_tagline_position', [ 'type' => Controls_Manager::CHOOSE, 'label' => esc_html__( 'Tagline Position', 'hello-elementor' ), 'options' => [ 'before' => [ 'title' => esc_html__( 'Before', 'hello-elementor' ), 'icon' => "eicon-arrow-$start", ], 'below' => [ 'title' => esc_html__( 'Below', 'hello-elementor' ), 'icon' => 'eicon-arrow-down', ], 'after' => [ 'title' => esc_html__( 'After', 'hello-elementor' ), 'icon' => "eicon-arrow-$end", ], ], 'toggle' => false, 'default' => 'below', 'selectors_dictionary' => [ 'before' => 'flex-direction: row-reverse; align-items: center;', 'below' => 'flex-direction: column; align-items: stretch;', 'after' => 'flex-direction: row; align-items: center;', ], 'condition' => [ 'hello_footer_tagline_display' => 'yes', 'hello_footer_logo_display' => 'yes', ], 'selectors' => [ '.site-footer .site-branding' => '{{VALUE}}', ], ] ); $this->add_responsive_control( 'hello_footer_tagline_gap', [ 'type' => Controls_Manager::SLIDER, 'label' => esc_html__( 'Tagline Gap', 'hello-elementor' ), 'size_units' => [ 'px', 'em ', 'rem', 'custom' ], 'range' => [ 'px' => [ 'max' => 100, ], 'em' => [ 'max' => 10, ], 'rem' => [ 'max' => 10, ], ], 'condition' => [ 'hello_footer_tagline_display' => 'yes', 'hello_footer_logo_display' => 'yes', ], 'selectors' => [ '.site-footer .site-branding' => 'gap: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'hello_footer_width', [ 'type' => Controls_Manager::SELECT, 'label' => esc_html__( 'Width', 'hello-elementor' ), 'options' => [ 'boxed' => esc_html__( 'Boxed', 'hello-elementor' ), 'full-width' => esc_html__( 'Full Width', 'hello-elementor' ), ], 'selector' => '.site-footer', 'default' => 'boxed', 'separator' => 'before', ] ); $this->add_responsive_control( 'hello_footer_custom_width', [ 'type' => Controls_Manager::SLIDER, 'label' => esc_html__( 'Content Width', 'hello-elementor' ), 'size_units' => [ '%', 'px', 'em', 'rem', 'vw', 'custom' ], 'range' => [ 'px' => [ 'max' => 2000, ], 'em' => [ 'max' => 100, ], 'rem' => [ 'max' => 100, ], ], 'condition' => [ 'hello_footer_width' => 'boxed', ], 'selectors' => [ '.site-footer .footer-inner' => 'width: {{SIZE}}{{UNIT}}; max-width: 100%;', ], ] ); $this->add_responsive_control( 'hello_footer_gap', [ 'type' => Controls_Manager::SLIDER, 'label' => esc_html__( 'Side Margins', 'hello-elementor' ), 'size_units' => [ '%', 'px', 'em ', 'rem', 'vw', 'custom' ], 'range' => [ 'px' => [ 'max' => 100, ], 'em' => [ 'max' => 5, ], 'rem' => [ 'max' => 5, ], ], 'selectors' => [ '.site-footer' => 'padding-inline-end: {{SIZE}}{{UNIT}}; padding-inline-start: {{SIZE}}{{UNIT}}', ], 'condition' => [ 'hello_footer_layout!' => 'stacked', ], ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'hello_footer_background', 'label' => esc_html__( 'Background', 'hello-elementor' ), 'types' => [ 'classic', 'gradient' ], 'separator' => 'before', 'selector' => '.site-footer', ] ); $this->end_controls_section(); $this->start_controls_section( 'hello_footer_logo_section', [ 'tab' => 'hello-settings-footer', 'label' => esc_html__( 'Site Logo', 'hello-elementor' ), 'condition' => [ 'hello_footer_logo_display!' => '', ], ] ); $this->add_control( 'hello_footer_logo_link', [ 'type' => Controls_Manager::ALERT, 'alert_type' => 'info', 'content' => sprintf( /* translators: %s: Link that opens Elementor's "Site Identity" panel. */ __( 'Go to <a href="%s">Site Identity</a> to manage your site\'s logo', 'hello-elementor' ), "javascript:\$e.route('panel/global/settings-site-identity')" ), 'render_type' => 'ui', 'condition' => [ 'hello_footer_logo_display' => 'yes', 'hello_footer_logo_type' => 'logo', ], ] ); $this->add_control( 'hello_footer_title_link', [ 'type' => Controls_Manager::ALERT, 'alert_type' => 'info', 'content' => sprintf( /* translators: %s: Link that opens Elementor's "Site Identity" panel. */ __( 'Go to <a href="%s">Site Identity</a> to manage your site\'s title', 'hello-elementor' ), "javascript:\$e.route('panel/global/settings-site-identity')" ), 'render_type' => 'ui', 'condition' => [ 'hello_footer_logo_display' => 'yes', 'hello_footer_logo_type' => 'title', ], ] ); $this->add_control( 'hello_footer_logo_type', [ 'label' => esc_html__( 'Type', 'hello-elementor' ), 'type' => Controls_Manager::SELECT, 'default' => 'logo', 'options' => [ 'logo' => esc_html__( 'Logo', 'hello-elementor' ), 'title' => esc_html__( 'Title', 'hello-elementor' ), ], 'frontend_available' => true, ] ); $this->add_responsive_control( 'hello_footer_logo_width', [ 'type' => Controls_Manager::SLIDER, 'label' => esc_html__( 'Logo Width', 'hello-elementor' ), 'size_units' => [ '%', 'px', 'em', 'rem', 'vw', 'custom' ], 'range' => [ 'px' => [ 'max' => 1000, ], 'em' => [ 'max' => 100, ], 'rem' => [ 'max' => 100, ], ], 'condition' => [ 'hello_footer_logo_display' => 'yes', 'hello_footer_logo_type' => 'logo', ], 'selectors' => [ '.site-footer .site-branding .site-logo img' => 'width: {{SIZE}}{{UNIT}}; max-width: {{SIZE}}{{UNIT}}', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'hello_footer_title_typography', 'label' => esc_html__( 'Typography', 'hello-elementor' ), 'condition' => [ 'hello_footer_logo_display' => 'yes', 'hello_footer_logo_type' => 'title', ], 'selector' => '.site-footer .site-title', ] ); $this->add_group_control( Group_Control_Text_Shadow::get_type(), [ 'name' => 'hello_footer_title_text_shadow', 'label' => esc_html__( 'Text Shadow', 'hello-elementor' ), 'condition' => [ 'hello_footer_logo_display' => 'yes', 'hello_footer_logo_type' => 'title', ], 'selector' => '.site-footer .site-title a', ] ); $this->add_group_control( Group_Control_Text_Stroke::get_type(), [ 'name' => 'hello_footer_title_text_stroke', 'label' => esc_html__( 'Text Stroke', 'hello-elementor' ), 'condition' => [ 'hello_footer_logo_display' => 'yes', 'hello_footer_logo_type' => 'title', ], 'selector' => '.site-footer .site-title a', ] ); $this->start_controls_tabs( 'hello_footer_title_colors' ); $this->start_controls_tab( 'hello_footer_title_colors_normal', [ 'label' => esc_html__( 'Normal', 'hello-elementor' ), 'condition' => [ 'hello_footer_logo_display' => 'yes', 'hello_footer_logo_type' => 'title', ], ] ); $this->add_control( 'hello_footer_title_color', [ 'label' => esc_html__( 'Text Color', 'hello-elementor' ), 'type' => Controls_Manager::COLOR, 'condition' => [ 'hello_footer_logo_display' => 'yes', 'hello_footer_logo_type' => 'title', ], 'selectors' => [ '.site-footer .site-title a' => 'color: {{VALUE}};', ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'hello_footer_title_colors_hover', [ 'label' => esc_html__( 'Hover', 'hello-elementor' ), 'condition' => [ 'hello_footer_logo_display' => 'yes', 'hello_footer_logo_type' => 'title', ], ] ); $this->add_control( 'hello_footer_title_hover_color', [ 'label' => esc_html__( 'Text Color', 'hello-elementor' ), 'type' => Controls_Manager::COLOR, 'condition' => [ 'hello_footer_logo_display' => 'yes', 'hello_footer_logo_type' => 'title', ], 'selectors' => [ '.site-footer .site-title a:hover' => 'color: {{VALUE}};', ], ] ); $this->add_control( 'hello_footer_title_hover_color_transition_duration', [ 'label' => esc_html__( 'Transition Duration', 'hello-elementor' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 's', 'ms', 'custom' ], 'default' => [ 'unit' => 's', ], 'selectors' => [ '.site-footer .site-title a' => 'transition-duration: {{SIZE}}{{UNIT}};', ], ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); $this->start_controls_section( 'hello_footer_tagline', [ 'tab' => 'hello-settings-footer', 'label' => esc_html__( 'Tagline', 'hello-elementor' ), 'condition' => [ 'hello_footer_tagline_display' => 'yes', ], ] ); $this->add_control( 'hello_footer_tagline_link', [ 'type' => Controls_Manager::ALERT, 'alert_type' => 'info', 'content' => sprintf( /* translators: %s: Link that opens Elementor's "Site Identity" panel. */ __( 'Go to <a href="%s">Site Identity</a> to manage your site\'s tagline', 'hello-elementor' ), "javascript:\$e.route('panel/global/settings-site-identity')" ), 'render_type' => 'ui', 'condition' => [ 'hello_footer_tagline_display' => 'yes', ], ] ); $this->add_control( 'hello_footer_tagline_color', [ 'label' => esc_html__( 'Text Color', 'hello-elementor' ), 'type' => Controls_Manager::COLOR, 'condition' => [ 'hello_footer_tagline_display' => 'yes', ], 'selectors' => [ '.site-footer .site-description' => 'color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'hello_footer_tagline_typography', 'label' => esc_html__( 'Typography', 'hello-elementor' ), 'condition' => [ 'hello_footer_tagline_display' => 'yes', ], 'selector' => '.site-footer .site-description', ] ); $this->add_group_control( Group_Control_Text_Shadow::get_type(), [ 'name' => 'hello_footer_tagline_text_shadow', 'label' => esc_html__( 'Text Shadow', 'hello-elementor' ), 'condition' => [ 'hello_footer_tagline_display' => 'yes', ], 'selector' => '.site-footer .site-description', ] ); $this->end_controls_section(); $this->start_controls_section( 'hello_footer_menu_tab', [ 'tab' => 'hello-settings-footer', 'label' => esc_html__( 'Menu', 'hello-elementor' ), 'condition' => [ 'hello_footer_menu_display' => 'yes', ], ] ); $available_menus = wp_get_nav_menus(); $menus = [ '0' => esc_html__( '— Select a Menu —', 'hello-elementor' ) ]; foreach ( $available_menus as $available_menu ) { $menus[ $available_menu->term_id ] = $available_menu->name; } if ( 1 === count( $menus ) ) { $this->add_control( 'hello_footer_menu_notice', [ 'type' => Controls_Manager::ALERT, 'alert_type' => 'info', 'heading' => esc_html__( 'There are no menus in your site.', 'hello-elementor' ), 'content' => sprintf( __( 'Go to <a href="%s" target="_blank">Menus screen</a> to create one.', 'hello-elementor' ), admin_url( 'nav-menus.php?action=edit&menu=0' ) ), 'render_type' => 'ui', ] ); } else { $this->add_control( 'hello_footer_menu_warning', [ 'type' => Controls_Manager::ALERT, 'alert_type' => 'info', 'content' => sprintf( __( 'Go to the <a href="%s" target="_blank">Menus screen</a> to manage your menus. Changes will be reflected in the preview only after the page reloads.', 'hello-elementor' ), admin_url( 'nav-menus.php' ) ), 'render_type' => 'ui', ] ); $this->add_control( 'hello_footer_menu', [ 'label' => esc_html__( 'Menu', 'hello-elementor' ), 'type' => Controls_Manager::SELECT, 'options' => $menus, 'default' => array_keys( $menus )[0], ] ); $this->add_control( 'hello_footer_menu_color', [ 'label' => esc_html__( 'Color', 'hello-elementor' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ 'footer .footer-inner .site-navigation a' => 'color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'hello_footer_menu_typography', 'label' => esc_html__( 'Typography', 'hello-elementor' ), 'selector' => 'footer .footer-inner .site-navigation a', ] ); $this->add_group_control( Group_Control_Text_Shadow::get_type(), [ 'name' => 'hello_footer_menu_text_shadow', 'label' => esc_html__( 'Text Shadow', 'hello-elementor' ), 'selector' => 'footer .footer-inner .site-navigation a', ] ); } $this->end_controls_section(); $this->start_controls_section( 'hello_footer_copyright_section', [ 'tab' => 'hello-settings-footer', 'label' => esc_html__( 'Copyright', 'hello-elementor' ), 'conditions' => [ 'relation' => 'and', 'terms' => [ [ 'name' => 'hello_footer_copyright_display', 'operator' => '=', 'value' => 'yes', ], ], ], ] ); $this->add_control( 'hello_footer_copyright_text', [ 'type' => Controls_Manager::TEXTAREA, 'label' => esc_html__( 'Text', 'hello-elementor' ), 'default' => esc_html__( 'All rights reserved', 'hello-elementor' ), ] ); $this->add_control( 'hello_footer_copyright_color', [ 'label' => esc_html__( 'Text Color', 'hello-elementor' ), 'type' => Controls_Manager::COLOR, 'condition' => [ 'hello_footer_copyright_display' => 'yes', ], 'selectors' => [ '.site-footer .copyright p' => 'color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'hello_footer_copyright_typography', 'label' => esc_html__( 'Typography', 'hello-elementor' ), 'condition' => [ 'hello_footer_copyright_display' => 'yes', ], 'selector' => '.site-footer .copyright p', ] ); $this->add_group_control( Group_Control_Text_Shadow::get_type(), [ 'name' => 'hello_footer_copyright_text_shadow', 'label' => esc_html__( 'Text Shadow', 'hello-elementor' ), 'condition' => [ 'hello_footer_copyright_display' => 'yes', ], 'selector' => '.site-footer .copyright p', ] ); $this->end_controls_section(); } public function on_save( $data ) { // Save chosen footer menu to the WP settings. if ( isset( $data['settings']['hello_footer_menu'] ) ) { $menu_id = $data['settings']['hello_footer_menu']; $locations = get_theme_mod( 'nav_menu_locations' ); $locations['menu-2'] = (int) $menu_id; set_theme_mod( 'nav_menu_locations', $locations ); } } public function get_additional_tab_content() { $content_template = ' <div class="hello-elementor elementor-nerd-box"> <img src="%1$s" class="elementor-nerd-box-icon" alt="%2$s"> <p class="elementor-nerd-box-title">%3$s</p> <p class="elementor-nerd-box-message">%4$s</p> <a class="elementor-nerd-box-link elementor-button go-pro" target="_blank" href="%5$s">%6$s</a> </div>'; if ( ! defined( 'ELEMENTOR_PRO_VERSION' ) ) { return sprintf( $content_template, get_template_directory_uri() . '/assets/images/go-pro.svg', esc_attr__( 'Get Elementor Pro', 'hello-elementor' ), esc_html__( 'Create custom footers', 'hello-elementor' ), esc_html__( 'Adjust your footer to include contact forms, sitemaps and more with Elementor Pro.', 'hello-elementor' ), 'https://go.elementor.com/hello-theme-footer/', esc_html__( 'Upgrade Now', 'hello-elementor' ) ); } else { return sprintf( $content_template, get_template_directory_uri() . '/assets/images/go-pro.svg', esc_attr__( 'Elementor Pro', 'hello-elementor' ), esc_html__( 'Create a custom footer with the Theme Builder', 'hello-elementor' ), esc_html__( 'With the Theme Builder you can jump directly into each part of your site', 'hello-elementor' ), get_admin_url( null, 'admin.php?page=elementor-app#/site-editor/templates/footer' ), esc_html__( 'Create Footer', 'hello-elementor' ) ); } } } includes/customizer/customizer-action-links.php 0000777 00000010540 15251663101 0016073 0 ustar 00 <?php namespace HelloElementor\Includes\Customizer; use HelloTheme\Includes\Utils; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Hello_Customizer_Action_Links extends \WP_Customize_Control { // Whitelist content parameter public $content = ''; /** * Render the control's content. * * Allows the content to be overridden without having to rewrite the wrapper. * * @return void */ public function render_content() { $this->print_customizer_action_links(); if ( isset( $this->description ) ) { echo '<span class="description customize-control-description">' . wp_kses_post( $this->description ) . '</span>'; } } /** * Print customizer action links. * * @return void */ private function print_customizer_action_links() { if ( ! function_exists( 'get_plugins' ) ) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; } $action_link_data = []; $action_link_type = Utils::get_action_link_type(); switch ( $action_link_type ) { case 'install-elementor': $action_link_data = [ 'image' => get_template_directory_uri() . '/assets/images/elementor.svg', 'alt' => esc_attr__( 'Elementor', 'hello-elementor' ), 'title' => esc_html__( 'Install Elementor', 'hello-elementor' ), 'message' => esc_html__( 'Create cross-site header & footer using Elementor.', 'hello-elementor' ), 'button' => esc_html__( 'Install Elementor', 'hello-elementor' ), 'link' => wp_nonce_url( add_query_arg( [ 'action' => 'install-plugin', 'plugin' => 'elementor', ], admin_url( 'update.php' ) ), 'install-plugin_elementor' ), ]; break; case 'activate-elementor': $action_link_data = [ 'image' => get_template_directory_uri() . '/assets/images/elementor.svg', 'alt' => esc_attr__( 'Elementor', 'hello-elementor' ), 'title' => esc_html__( 'Activate Elementor', 'hello-elementor' ), 'message' => esc_html__( 'Create cross-site header & footer using Elementor.', 'hello-elementor' ), 'button' => esc_html__( 'Activate Elementor', 'hello-elementor' ), 'link' => wp_nonce_url( 'plugins.php?action=activate&plugin=elementor/elementor.php', 'activate-plugin_elementor/elementor.php' ), ]; break; case 'activate-header-footer-experiment': $action_link_data = [ 'image' => get_template_directory_uri() . '/assets/images/elementor.svg', 'alt' => esc_attr__( 'Elementor', 'hello-elementor' ), 'title' => esc_html__( 'Style using Elementor', 'hello-elementor' ), 'message' => esc_html__( 'Design your cross-site header & footer from Elementor’s "Site Settings" panel.', 'hello-elementor' ), 'button' => esc_html__( 'Activate header & footer experiment', 'hello-elementor' ), 'link' => wp_nonce_url( 'admin.php?page=elementor#tab-experiments' ), ]; break; case 'style-header-footer': $action_link_data = [ 'image' => get_template_directory_uri() . '/assets/images/elementor.svg', 'alt' => esc_attr__( 'Elementor', 'hello-elementor' ), 'title' => esc_html__( 'Style cross-site header & footer', 'hello-elementor' ), 'message' => esc_html__( 'Customize your cross-site header & footer from Elementor’s "Site Settings" panel.', 'hello-elementor' ), 'button' => esc_html__( 'Start Designing', 'hello-elementor' ), 'link' => wp_nonce_url( 'post.php?post=' . get_option( 'elementor_active_kit' ) . '&action=elementor' ), ]; break; } $customizer_content = $this->get_customizer_action_links_html( $action_link_data ); echo wp_kses_post( $customizer_content ); } /** * Get the customizer action links HTML. * * @param array $data * * @return string */ private function get_customizer_action_links_html( $data ) { if ( empty( $data ) || ! isset( $data['image'] ) || ! isset( $data['alt'] ) || ! isset( $data['title'] ) || ! isset( $data['message'] ) || ! isset( $data['link'] ) || ! isset( $data['button'] ) ) { return; } return sprintf( '<div class="hello-action-links"> <img src="%1$s" alt="%2$s"> <p class="hello-action-links-title">%3$s</p> <p class="hello-action-links-message">%4$s</p> <a class="button button-primary" target="_blank" href="%5$s">%6$s</a> </div>', $data['image'], $data['alt'], $data['title'], $data['message'], $data['link'], $data['button'], ); } } includes/customizer/customizer-upsell.php 0000777 00000001660 15251663101 0015007 0 ustar 00 <?php namespace HelloElementor\Includes\Customizer; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Hello_Customizer_Upsell extends \WP_Customize_Section { public $heading; public $description; public $button_text; public $button_url; /** * Render the section, and the controls that have been added to it. */ protected function render() { ?> <li id="accordion-section-<?php echo esc_attr( $this->id ); ?>" class="accordion-section control-section control-section-<?php echo esc_attr( $this->id ); ?> cannot-expand"> <h3 class="accordion-section-title"><?php echo esc_html( $this->heading ); ?></h3> <p class="accordion-section-description"><?php echo esc_html( $this->description ); ?></p> <div class="accordion-section-buttons"> <a href="<?php echo esc_url( $this->button_url ); ?>" target="_blank"><?php echo esc_html( $this->button_text ); ?></a> </div> </li> <?php } } includes/script.php 0000777 00000001760 15251663101 0010402 0 ustar 00 <?php namespace HelloTheme\Includes; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Script { protected string $handle; protected array $dependencies; public function __construct( string $handle, array $dependencies = [] ) { $this->handle = $handle; $this->dependencies = $dependencies; } public function enqueue() { $asset_path = HELLO_THEME_SCRIPTS_PATH . $this->handle . '.asset.php'; $asset_url = HELLO_THEME_SCRIPTS_URL; if ( ! file_exists( $asset_path ) ) { throw new \Exception( $asset_path . ' - You need to run `npm run build` for the "hello-elementor" first.' ); } $script_asset = require $asset_path; foreach ( $this->dependencies as $dependency ) { $script_asset['dependencies'][] = $dependency; } wp_enqueue_script( $this->handle, $asset_url . "$this->handle.js", $script_asset['dependencies'], $script_asset['version'], true ); \wp_set_script_translations( $this->handle, 'hello-elementor' ); } } includes/module-base.php 0000777 00000013724 15251663101 0011276 0 ustar 00 <?php namespace HelloTheme\Includes; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Module Base. * * An abstract class providing the properties and methods needed to * manage and handle modules in inheriting classes. * * @abstract * @package HelloTheme * @subpackage HelloThemeModules */ abstract class Module_Base { /** * Module class reflection. * * Holds the information about a class. * @access private * * @var ?\ReflectionClass */ private ?\ReflectionClass $reflection = null; /** * Module components. * * Holds the module components. * @access private * * @var array */ private array $components = []; /** * Module instance. * * Holds the module instance. * @access protected * * @var Module_Base[] */ protected static array $instances = []; /** * Get module name. * * Retrieve the module name. * @access public * @abstract * * @return string Module name. */ abstract public static function get_name(): string; /** * @abstract * @access protected * * @return string[] */ abstract protected function get_component_ids(): array; /** * Singleton Instance. * * Ensures only one instance of the module class is loaded or can be loaded. * @access public * @static * * @return Module_Base An instance of the class. */ public static function instance(): Module_Base { $class_name = static::class_name(); if ( empty( static::$instances[ $class_name ] ) ) { static::$instances[ $class_name ] = new static(); // @codeCoverageIgnore } return static::$instances[ $class_name ]; } /** * is_active * * @access public * @static * * @return bool */ public static function is_active(): bool { /** * allow enabling/disabling the module on run-time * * @param bool $is_active the filters value */ return apply_filters( 'hello-plus-theme/modules/' . static::get_name() . '/is-active', true ); } /** * Class name. * * Retrieve the name of the class. * @access public * @static */ public static function class_name(): string { return get_called_class(); } /** * @access public * * @return \ReflectionClass */ public function get_reflection(): \ReflectionClass { if ( null === $this->reflection ) { try { $this->reflection = new \ReflectionClass( $this ); } catch ( \ReflectionException $e ) { if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { error_log( $e->getMessage() ); //phpcs:ignore } } } return $this->reflection; } /** * Add module component. * * Add new component to the current module. * @access public * * @param string $id Component ID. * @param mixed $instance An instance of the component. */ public function add_component( string $id, $instance ) { $this->components[ $id ] = $instance; } /** * @access public * * @return array */ public function get_components(): array { return $this->components; } /** * Get module component. * * Retrieve the module component. * @access public * * @param string $id Component ID. * * @return mixed An instance of the component, or `null` if the component * doesn't exist. */ public function get_component( string $id ) { if ( isset( $this->components[ $id ] ) ) { return $this->components[ $id ]; } return null; } /** * Retrieve the namespace of the class * * @static * @access public * * @return string */ public static function namespace_name(): string { $class_name = static::class_name(); return substr( $class_name, 0, strrpos( $class_name, '\\' ) ); } /** * Adds an array of components. * Assumes namespace structure contains `\Components\` * * @access protected * * @param ?array $components_ids => component's class name. * @return void */ protected function register_components( ?array $components_ids = null ): void { if ( empty( $components_ids ) ) { $components_ids = $this->get_component_ids(); } $namespace = static::namespace_name(); foreach ( $components_ids as $component_id ) { $class_name = $namespace . '\\Components\\' . $component_id; $this->add_component( $component_id, new $class_name() ); } } /** * Registers the Module's widgets. * Assumes namespace structure contains `\Widgets\` * * @access protected * * @param \Elementor\Widgets_Manager $widgets_manager * @return void */ public function register_widgets( \Elementor\Widgets_Manager $widgets_manager ): void { $widget_ids = $this->get_widget_ids(); $namespace = static::namespace_name(); foreach ( $widget_ids as $widget_id ) { $class_name = $namespace . '\\Widgets\\' . $widget_id; $widgets_manager->register( new $class_name() ); } } /** * @access protected * * @return string[] */ protected function get_widget_ids(): array { return []; } /** * @access protected * * @return void */ protected function register_hooks(): void { add_action( 'elementor/widgets/register', [ $this, 'register_widgets' ] ); } /** * Clone. * * Disable class cloning and throw an error on object clone. * * The whole idea of the singleton design pattern is that there is a single * object. Therefore, we don't want the object to be cloned. * * @access private */ public function __clone() { // Cloning instances of the class is forbidden _doing_it_wrong( __FUNCTION__, esc_html__( 'Something went wrong.', 'hello-elementor' ), '0.0.1' ); // @codeCoverageIgnore } /** * Wakeup. * * Disable un-serializing of the class. * @access public */ public function __wakeup() { // Un-serializing instances of the class is forbidden _doing_it_wrong( __FUNCTION__, esc_html__( 'Something went wrong.', 'hello-elementor' ), '0.0.1' ); // @codeCoverageIgnore } /** * class constructor * * @access protected * * @param ?string[] $components_list */ protected function __construct( ?array $components_list = null ) { $this->register_components( $components_list ); $this->register_hooks(); } } includes/customizer-functions.php 0000777 00000004251 15251663101 0013306 0 ustar 00 <?php if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Register Customizer controls for header & footer. * * @return void */ function hello_customizer_register( $wp_customize ) { require_once get_template_directory() . '/includes/customizer/customizer-action-links.php'; $wp_customize->add_section( 'hello-options', [ 'title' => esc_html__( 'Header & Footer', 'hello-elementor' ), 'capability' => 'edit_theme_options', ] ); $wp_customize->add_setting( 'hello-header-footer', [ 'sanitize_callback' => false, 'transport' => 'refresh', ] ); $wp_customize->add_control( new HelloElementor\Includes\Customizer\Hello_Customizer_Action_Links( $wp_customize, 'hello-header-footer', [ 'section' => 'hello-options', 'priority' => 20, ] ) ); } add_action( 'customize_register', 'hello_customizer_register' ); /** * Register Customizer controls for Elementor Pro upsell. * * @return void */ function hello_customizer_register_elementor_pro_upsell( $wp_customize ) { if ( function_exists( 'elementor_pro_load_plugin' ) ) { return; } require_once get_template_directory() . '/includes/customizer/customizer-upsell.php'; $wp_customize->add_section( new HelloElementor\Includes\Customizer\Hello_Customizer_Upsell( $wp_customize, 'hello-upsell-elementor-pro', [ 'heading' => esc_html__( 'Customize your entire website with Elementor Pro', 'hello-elementor' ), 'description' => esc_html__( 'Build and customize every part of your website, including Theme Parts with Elementor Pro.', 'hello-elementor' ), 'button_text' => esc_html__( 'Upgrade Now', 'hello-elementor' ), 'button_url' => 'https://elementor.com/pro/?utm_source=hello-theme-customize&utm_campaign=gopro&utm_medium=wp-dash', 'priority' => 999999, ] ) ); } add_action( 'customize_register', 'hello_customizer_register_elementor_pro_upsell' ); /** * Enqueue Customizer CSS. * * @return void */ function hello_customizer_styles() { wp_enqueue_style( 'hello-elementor-customizer', HELLO_THEME_STYLE_URL . 'customizer.css', [], HELLO_ELEMENTOR_VERSION ); } add_action( 'admin_enqueue_scripts', 'hello_customizer_styles' ); includes/elementor-functions.php 0000777 00000016016 15251663101 0013076 0 ustar 00 <?php if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Register Site Settings Controls. */ add_action( 'elementor/init', 'hello_elementor_settings_init' ); function hello_elementor_settings_init() { if ( ! hello_header_footer_experiment_active() ) { return; } require 'settings/settings-header.php'; require 'settings/settings-footer.php'; add_action( 'elementor/kit/register_tabs', function( \Elementor\Core\Kits\Documents\Kit $kit ) { if ( ! hello_elementor_display_header_footer() ) { return; } $kit->register_tab( 'hello-settings-header', HelloElementor\Includes\Settings\Settings_Header::class ); $kit->register_tab( 'hello-settings-footer', HelloElementor\Includes\Settings\Settings_Footer::class ); }, 1, 40 ); } /** * Helper function to return a setting. * * Saves 2 lines to get kit, then get setting. Also caches the kit and setting. * * @param string $setting_id * @return string|array same as the Elementor internal function does. */ function hello_elementor_get_setting( $setting_id ) { global $hello_elementor_settings; $return = ''; if ( ! isset( $hello_elementor_settings['kit_settings'] ) ) { $kit = \Elementor\Plugin::$instance->kits_manager->get_active_kit(); $hello_elementor_settings['kit_settings'] = $kit->get_settings(); } if ( isset( $hello_elementor_settings['kit_settings'][ $setting_id ] ) ) { $return = $hello_elementor_settings['kit_settings'][ $setting_id ]; } return apply_filters( 'hello_elementor_' . $setting_id, $return ); } /** * Helper function to show/hide elements * * This works with switches, if the setting ID that has been passed is toggled on, we'll return show, otherwise we'll return hide * * @param string $setting_id * @return string|array same as the Elementor internal function does. */ function hello_show_or_hide( $setting_id ) { return ( 'yes' === hello_elementor_get_setting( $setting_id ) ? 'show' : 'hide' ); } /** * Helper function to translate the header layout setting into a class name. * * @return string */ function hello_get_header_layout_class() { $layout_classes = []; $header_layout = hello_elementor_get_setting( 'hello_header_layout' ); if ( 'inverted' === $header_layout ) { $layout_classes[] = 'header-inverted'; } elseif ( 'stacked' === $header_layout ) { $layout_classes[] = 'header-stacked'; } $header_width = hello_elementor_get_setting( 'hello_header_width' ); if ( 'full-width' === $header_width ) { $layout_classes[] = 'header-full-width'; } $header_menu_dropdown = hello_elementor_get_setting( 'hello_header_menu_dropdown' ); if ( 'tablet' === $header_menu_dropdown ) { $layout_classes[] = 'menu-dropdown-tablet'; } elseif ( 'mobile' === $header_menu_dropdown ) { $layout_classes[] = 'menu-dropdown-mobile'; } elseif ( 'none' === $header_menu_dropdown ) { $layout_classes[] = 'menu-dropdown-none'; } $hello_header_menu_layout = hello_elementor_get_setting( 'hello_header_menu_layout' ); if ( 'dropdown' === $hello_header_menu_layout ) { $layout_classes[] = 'menu-layout-dropdown'; } return implode( ' ', $layout_classes ); } /** * Helper function to translate the footer layout setting into a class name. * * @return string */ function hello_get_footer_layout_class() { $footer_layout = hello_elementor_get_setting( 'hello_footer_layout' ); $layout_classes = []; if ( 'inverted' === $footer_layout ) { $layout_classes[] = 'footer-inverted'; } elseif ( 'stacked' === $footer_layout ) { $layout_classes[] = 'footer-stacked'; } $footer_width = hello_elementor_get_setting( 'hello_footer_width' ); if ( 'full-width' === $footer_width ) { $layout_classes[] = 'footer-full-width'; } if ( hello_elementor_get_setting( 'hello_footer_copyright_display' ) && '' !== hello_elementor_get_setting( 'hello_footer_copyright_text' ) ) { $layout_classes[] = 'footer-has-copyright'; } return implode( ' ', $layout_classes ); } add_action( 'elementor/editor/after_enqueue_scripts', function() { if ( ! hello_header_footer_experiment_active() ) { return; } $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; wp_enqueue_script( 'hello-theme-editor', HELLO_THEME_SCRIPTS_URL . 'hello-editor.js', [ 'jquery', 'elementor-editor' ], HELLO_ELEMENTOR_VERSION, true ); wp_enqueue_style( 'hello-editor', HELLO_THEME_STYLE_URL . 'editor.css', [], HELLO_ELEMENTOR_VERSION ); } ); add_action( 'wp_enqueue_scripts', function() { if ( ! hello_elementor_display_header_footer() ) { return; } if ( ! hello_header_footer_experiment_active() ) { return; } wp_enqueue_script( 'hello-theme-frontend', HELLO_THEME_SCRIPTS_URL . 'hello-frontend.js', [], HELLO_ELEMENTOR_VERSION, true ); \Elementor\Plugin::$instance->kits_manager->frontend_before_enqueue_styles(); } ); /** * Helper function to decide whether to output the header template. * * @return bool */ function hello_get_header_display() { $is_editor = isset( $_GET['elementor-preview'] ); return ( $is_editor || hello_elementor_get_setting( 'hello_header_logo_display' ) || hello_elementor_get_setting( 'hello_header_tagline_display' ) || hello_elementor_get_setting( 'hello_header_menu_display' ) ); } /** * Helper function to decide whether to output the footer template. * * @return bool */ function hello_get_footer_display() { $is_editor = isset( $_GET['elementor-preview'] ); return ( $is_editor || hello_elementor_get_setting( 'hello_footer_logo_display' ) || hello_elementor_get_setting( 'hello_footer_tagline_display' ) || hello_elementor_get_setting( 'hello_footer_menu_display' ) || hello_elementor_get_setting( 'hello_footer_copyright_display' ) ); } /** * Add Hello Elementor theme Header & Footer to Experiments. */ add_action( 'elementor/experiments/default-features-registered', function( \Elementor\Core\Experiments\Manager $experiments_manager ) { $experiments_manager->add_feature( [ 'name' => 'hello-theme-header-footer', 'title' => esc_html__( 'Header & Footer', 'hello-elementor' ), 'tag' => esc_html__( 'Hello Theme', 'hello-elementor' ), 'description' => sprintf( '%1$s <a href="%2$s" target="_blank">%3$s</a>', esc_html__( 'Customize and style the builtin Hello Theme’s cross-site header & footer from the Elementor "Site Settings" panel.', 'hello-elementor' ), 'https://go.elementor.com/wp-dash-header-footer', esc_html__( 'Learn More', 'hello-elementor' ) ), 'release_status' => $experiments_manager::RELEASE_STATUS_STABLE, 'new_site' => [ 'minimum_installation_version' => '3.3.0', 'default_active' => $experiments_manager::STATE_ACTIVE, ], ] ); } ); /** * Helper function to check if Header & Footer Experiment is Active/Inactive */ function hello_header_footer_experiment_active() { // If Elementor is not active, return false if ( ! did_action( 'elementor/loaded' ) ) { return false; } // Backwards compat. if ( ! method_exists( \Elementor\Plugin::$instance->experiments, 'is_feature_active' ) ) { return false; } return (bool) ( \Elementor\Plugin::$instance->experiments->is_feature_active( 'hello-theme-header-footer' ) ); } includes/settings-functions.php 0000777 00000003244 15251663101 0012743 0 ustar 00 <?php use HelloTheme\Theme; use HelloTheme\Modules\AdminHome\Components\Settings_Controller; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } add_action( 'init', 'hello_elementor_tweak_settings', 0 ); function hello_elementor_tweak_settings() { /** * @var Settings_Controller $settings_controller */ $settings_controller = Theme::instance() ->get_module( 'AdminHome' ) ->get_component( 'Settings_Controller' ); $settings_controller->legacy_register_settings(); } /** * Register a new setting. * * @deprecated 3.4.0 */ function hello_elementor_register_settings( $settings_group, $settings ) { /** * @var Settings_Controller $settings_controller */ $settings_controller = Theme::instance() ->get_module( 'AdminHome' ) ->get_component( 'Settings_Controller' ); $settings_controller->register_settings( $settings_group, $settings ); } /** * Run a tweek only if the user requested it. * * @deprecated 3.4.0 */ function hello_elementor_do_tweak( $setting, $tweak_callback ) { /** * @var Settings_Controller $settings_controller */ $settings_controller = Theme::instance() ->get_module( 'AdminHome' ) ->get_component( 'Settings_Controller' ); $settings_controller->apply_setting( $setting, $tweak_callback ); } /** * Render theme tweaks. * * @deprecated 3.4.0 */ function hello_elementor_render_tweaks( $settings_group, $settings ) { /** * @var Settings_Controller $settings_controller */ $settings_controller = Theme::instance() ->get_module( 'AdminHome' ) ->get_component( 'Settings_Controller' ); $settings_controller->apply_settings( $settings_group, $settings ); } includes/utils.php 0000777 00000005716 15251663101 0010243 0 ustar 00 <?php namespace HelloTheme\Includes; use Elementor\App\App; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * class Utils **/ class Utils { public static function elementor(): \Elementor\Plugin { return \Elementor\Plugin::$instance; } public static function has_pro(): bool { return defined( 'ELEMENTOR_PRO_VERSION' ); } public static function is_elementor_active(): bool { static $elementor_active = null; if ( null === $elementor_active ) { $elementor_active = defined( 'ELEMENTOR_VERSION' ); } return $elementor_active; } public static function is_elementor_installed(): bool { static $elementor_installed = null; if ( null === $elementor_installed ) { $elementor_installed = file_exists( WP_PLUGIN_DIR . '/elementor/elementor.php' ); } return $elementor_installed; } public static function get_theme_builder_slug(): string { if ( ! class_exists( 'Elementor\App\App' ) ) { return ''; } if ( self::has_pro() ) { return App::PAGE_ID . '&ver=' . ELEMENTOR_VERSION . '#site-editor'; } if ( self::is_elementor_active() ) { return App::PAGE_ID . '&ver=' . ELEMENTOR_VERSION . '#site-editor/promotion'; } return ''; } public static function get_theme_builder_url(): string { if ( ! class_exists( 'Elementor\App\App' ) ) { return 'https://go.elementor.com/hello-theme-builder'; } if ( self::has_pro() ) { return admin_url( 'admin.php?page=' . App::PAGE_ID . '&ver=' . ELEMENTOR_VERSION ) . '#site-editor'; } if ( self::is_elementor_active() ) { return admin_url( 'admin.php?page=' . App::PAGE_ID . '&ver=' . ELEMENTOR_VERSION ) . '#site-editor/promotion'; } return 'https://go.elementor.com/hello-theme-builder'; } public static function get_elementor_activation_link(): string { $plugin = 'elementor/elementor.php'; $url = 'plugins.php?action=activate&plugin=' . $plugin . '&plugin_status=all'; return add_query_arg( '_wpnonce', wp_create_nonce( 'activate-plugin_' . $plugin ), $url ); } public static function get_ai_site_planner_url(): string { return 'https://go.elementor.com/hello-site-planner'; } public static function get_plugin_install_url( $plugin_slug ): string { $action = 'install-plugin'; $url = add_query_arg( [ 'action' => $action, 'plugin' => $plugin_slug, 'referrer' => 'hello-elementor', ], admin_url( 'update.php' ) ); return add_query_arg( '_wpnonce', wp_create_nonce( $action . '_' . $plugin_slug ), $url ); } public static function get_action_link_type() { $installed_plugins = get_plugins(); if ( ! isset( $installed_plugins['elementor/elementor.php'] ) ) { $action_link_type = 'install-elementor'; } elseif ( ! defined( 'ELEMENTOR_VERSION' ) ) { $action_link_type = 'activate-elementor'; } elseif ( ! hello_header_footer_experiment_active() ) { $action_link_type = 'activate-header-footer-experiment'; } else { $action_link_type = 'style-header-footer'; } return $action_link_type; } } style.css 0000777 00000002277 15251663101 0006435 0 ustar 00 /* Theme Name: Hello Elementor Theme URI: https://elementor.com/hello-theme/?utm_source=wp-themes&utm_campaign=theme-uri&utm_medium=wp-dash Description: Hello Elementor is a lightweight and minimalist WordPress theme that was built specifically to work seamlessly with the Elementor site builder plugin. The theme is free, open-source, and designed for users who want a flexible, easy-to-use, and customizable website. The theme, which is optimized for performance, provides a solid foundation for users to build their own unique designs using the Elementor drag-and-drop site builder. Its simplicity and flexibility make it a great choice for both beginners and experienced Web Creators. Author: Elementor Team Author URI: https://elementor.com/?utm_source=wp-themes&utm_campaign=author-uri&utm_medium=wp-dash Version: 3.4.6 Stable tag: 3.4.6 Requires at least: 6.0 Tested up to: 6.8 Requires PHP: 7.4 License: GNU General Public License v3 or later. License URI: https://www.gnu.org/licenses/gpl-3.0.html Text Domain: hello-elementor Tags: accessibility-ready, flexible-header, custom-colors, custom-menu, custom-logo, featured-images, rtl-language-support, threaded-comments, translation-ready, */ theme.php 0000777 00000010015 15251663101 0006363 0 ustar 00 <?php namespace HelloTheme; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } use HelloTheme\Includes\Module_Base; /** * Theme's main class, * responsible over initializing the modules & some general definitions. * * @package HelloTheme */ final class Theme { /** * @var ?Theme */ private static ?Theme $instance = null; /** * @var Module_Base[] */ private array $modules = []; /** * @var array */ private array $classes_aliases = []; /** * Throw error on object clone * * The whole idea of the singleton design pattern is that there is a single * object therefore, we don't want the object to be cloned. * * @since 1.0.0 * @return void */ public function __clone() { _doing_it_wrong( __FUNCTION__, sprintf( 'Cloning instances of the singleton "%s" class is forbidden.', get_class( $this ) ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped '1.0.0' ); } /** * Disable un-serializing of the class * * @since 1.0.0 * @return void */ public function __wakeup() { _doing_it_wrong( __FUNCTION__, sprintf( 'Deserializing instances of the singleton "%s" class is forbidden.', get_class( $this ) ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped '1.0.0' ); } /** * @param $class_name * * @return void */ public function autoload( $class_name ) { if ( 0 !== strpos( $class_name, __NAMESPACE__ ) ) { return; } $has_class_alias = isset( $this->classes_aliases[ $class_name ] ); // Backward Compatibility: Save old class name for set an alias after the new class is loaded if ( $has_class_alias ) { $class_alias_name = $this->classes_aliases[ $class_name ]; $class_to_load = $class_alias_name; } else { $class_to_load = $class_name; } if ( ! class_exists( $class_to_load ) ) { $filename = strtolower( preg_replace( [ '/^' . __NAMESPACE__ . '\\\/', '/([a-z])([A-Z])/', '/_/', '/\\\/' ], [ '', '$1-$2', '-', DIRECTORY_SEPARATOR ], $class_to_load ) ); $filename = trailingslashit( HELLO_THEME_PATH ) . $filename . '.php'; if ( is_readable( $filename ) ) { include $filename; } } if ( $has_class_alias ) { class_alias( $class_alias_name, $class_name ); } } /** * Singleton * * @return Theme */ public static function instance(): Theme { if ( is_null( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } /** * @param string $module_name * * @return ?Module_Base */ public function get_module( string $module_name ): ?Module_Base { if ( isset( $this->modules[ $module_name ] ) ) { return $this->modules[ $module_name ]; } return null; } /** * @param Module_Base $module * * allow child theme and 3rd party plugins to add modules * * @return void */ public function add_module( Module_Base $module ) { $class_name = $module->get_reflection()->getName(); if ( $module::is_active() ) { $this->modules[ $class_name ] = $module::instance(); } } /** * Activate the theme * * @return void */ public function activate() { do_action( 'hello-plus-theme/after_switch_theme' ); } /** * Initialize all Modules * * @return void */ private function init_modules() { $modules_list = [ 'AdminHome', ]; foreach ( $modules_list as $module_name ) { $class_name = str_replace( '-', ' ', $module_name ); $class_name = str_replace( ' ', '', ucwords( $class_name ) ); $class_name = __NAMESPACE__ . '\\Modules\\' . $class_name . '\Module'; /** @var Module_Base $class_name */ if ( $class_name::is_active() && empty( $this->classes_aliases[ $module_name ] ) ) { $this->modules[ $module_name ] = $class_name::instance(); } } } /** * Theme private constructor. */ private function __construct() { static $autoloader_registered = false; if ( ! $autoloader_registered ) { $autoloader_registered = spl_autoload_register( [ $this, 'autoload' ] ); } add_action( 'after_switch_theme', [ $this, 'activate' ] ); $this->init_modules(); } } theme.json 0000777 00000001025 15251663101 0006546 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/theme.json", "version": 3, "settings": { "appearanceTools": true, "layout": { "contentSize": "800px", "wideSize": "1200px" }, "color": { "custom": true, "link": true }, "typography": { "customFontSize": true, "lineHeight": true }, "spacing": { "defaultSpacingSizes": false, "margin": true, "padding": true, "units": [ "%", "px", "em", "rem", "vh", "vw" ] } } } assets/css/editor.asset.php 0000777 00000000124 15251663101 0011757 0 ustar 00 <?php return array('dependencies' => array(), 'version' => '29d3ef9742e2e1da326c'); assets/css/customizer-rtl.css 0000777 00000002360 15251663101 0012363 0 ustar 00 #accordion-section-hello-options .accordion-section-title,#accordion-section-hello-options .accordion-section-title:after{color:#c36}#customize-control-hello-header-footer .hello-action-links{margin:15px auto;text-align:center}#customize-control-hello-header-footer .hello-action-links-title{font-weight:600;margin:10px 0}#customize-control-hello-header-footer .hello-action-links-message{margin:0 0 20px}#accordion-section-hello-upsell-elementor-pro{background-color:#fff;box-shadow:-2px 8px 20px 0 rgba(0,0,0,.2);display:flex!important;flex-direction:column;gap:8px;margin:20px 20px 30px;padding:16px}#accordion-section-hello-upsell-elementor-pro .accordion-section-title:after{display:none}#accordion-section-hello-upsell-elementor-pro h3,#accordion-section-hello-upsell-elementor-pro p{background-color:transparent!important;border:0!important;margin:0;padding:0;text-decoration:none}#accordion-section-hello-upsell-elementor-pro h3{font-weight:700}#accordion-section-hello-upsell-elementor-pro .accordion-section-buttons{display:flex;gap:8px;justify-content:flex-end;margin-block-start:16px}#accordion-section-hello-upsell-elementor-pro .accordion-section-buttons a{background-color:#92003b;border-radius:4px;color:#fff;padding:8px 16px;text-decoration:none} assets/css/editor-styles.css 0000777 00000001064 15251663101 0012167 0 ustar 00 body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}p{margin-block-end:.75rem}img{border-style:none;height:auto;max-width:100%;vertical-align:middle}pre{font-family:monospace;font-size:1em;white-space:pre-wrap}code,kbd,pre,samp{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem}blockquote{font-style:italic} assets/css/reset.css 0000777 00000012520 15251663101 0010501 0 ustar 00 html{line-height:1.15;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:border-box}body{background-color:#fff;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{color:inherit;font-family:inherit;font-weight:500;line-height:1.2;margin-block-end:1rem;margin-block-start:.5rem}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-block-end:.9rem;margin-block-start:0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em;white-space:pre-wrap}a{background-color:transparent;color:#c36;text-decoration:none}a:active,a:hover{color:#336}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}abbr[title]{border-block-end:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none;height:auto;max-width:100%}details{display:block}summary{display:list-item}figcaption{color:#333;font-size:16px;font-style:italic;font-weight:400;line-height:1.4}[hidden],template{display:none}@media print{*,:after,:before{background:transparent!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre{white-space:pre-wrap!important}blockquote,pre{-moz-column-break-inside:avoid;border:1px solid #ccc;break-inside:avoid}thead{display:table-header-group}img,tr{-moz-column-break-inside:avoid;break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{-moz-column-break-after:avoid;break-after:avoid}}label{display:inline-block;line-height:1;vertical-align:middle}button,input,optgroup,select,textarea{font-family:inherit;font-size:1rem;line-height:1.5;margin:0}input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{border:1px solid #666;border-radius:3px;padding:.5rem 1rem;transition:all .3s;width:100%}input[type=date]:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border-color:#333}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;width:auto}[type=button],[type=submit],button{background-color:transparent;border:1px solid #c36;border-radius:3px;color:#c36;display:inline-block;font-size:1rem;font-weight:400;padding:.5rem 1rem;text-align:center;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}[type=button]:focus:not(:focus-visible),[type=submit]:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}[type=button]:focus,[type=button]:hover,[type=submit]:focus,[type=submit]:hover,button:focus,button:hover{background-color:#c36;color:#fff;text-decoration:none}[type=button]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto;resize:vertical}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}select{display:block}table{background-color:transparent;border-collapse:collapse;border-spacing:0;font-size:.9em;margin-block-end:15px;width:100%}table td,table th{border:1px solid hsla(0,0%,50%,.502);line-height:1.5;padding:15px;vertical-align:top}table th{font-weight:700}table tfoot th,table thead th{font-size:1em}table caption+thead tr:first-child td,table caption+thead tr:first-child th,table colgroup+thead tr:first-child td,table colgroup+thead tr:first-child th,table thead:first-child tr:first-child td,table thead:first-child tr:first-child th{border-block-start:1px solid hsla(0,0%,50%,.502)}table tbody>tr:nth-child(odd)>td,table tbody>tr:nth-child(odd)>th{background-color:hsla(0,0%,50%,.071)}table tbody tr:hover>td,table tbody tr:hover>th{background-color:hsla(0,0%,50%,.102)}table tbody+tbody{border-block-start:2px solid hsla(0,0%,50%,.502)}@media(max-width:767px){table table{font-size:.8em}table table td,table table th{line-height:1.3;padding:7px}table table th{font-weight:400}}dd,dl,dt,li,ol,ul{background:transparent;border:0;font-size:100%;margin-block-end:0;margin-block-start:0;outline:0;vertical-align:baseline} assets/css/header-footer.asset.php 0000777 00000000124 15251663101 0013215 0 ustar 00 <?php return array('dependencies' => array(), 'version' => '35eef2f211c36a776630'); assets/css/customizer.asset.php 0000777 00000000124 15251663101 0012675 0 ustar 00 <?php return array('dependencies' => array(), 'version' => 'aa90c0c82912bd3a64ea'); assets/css/customizer.css 0000777 00000002357 15251663101 0011572 0 ustar 00 #accordion-section-hello-options .accordion-section-title,#accordion-section-hello-options .accordion-section-title:after{color:#c36}#customize-control-hello-header-footer .hello-action-links{margin:15px auto;text-align:center}#customize-control-hello-header-footer .hello-action-links-title{font-weight:600;margin:10px 0}#customize-control-hello-header-footer .hello-action-links-message{margin:0 0 20px}#accordion-section-hello-upsell-elementor-pro{background-color:#fff;box-shadow:2px 8px 20px 0 rgba(0,0,0,.2);display:flex!important;flex-direction:column;gap:8px;margin:20px 20px 30px;padding:16px}#accordion-section-hello-upsell-elementor-pro .accordion-section-title:after{display:none}#accordion-section-hello-upsell-elementor-pro h3,#accordion-section-hello-upsell-elementor-pro p{background-color:transparent!important;border:0!important;margin:0;padding:0;text-decoration:none}#accordion-section-hello-upsell-elementor-pro h3{font-weight:700}#accordion-section-hello-upsell-elementor-pro .accordion-section-buttons{display:flex;gap:8px;justify-content:flex-end;margin-block-start:16px}#accordion-section-hello-upsell-elementor-pro .accordion-section-buttons a{background-color:#92003b;border-radius:4px;color:#fff;padding:8px 16px;text-decoration:none} assets/css/theme.css 0000777 00000011751 15251663101 0010466 0 ustar 00 .comments-area a,.page-content a{text-decoration:underline}.alignright{float:right;margin-left:1rem}.alignleft{float:left;margin-right:1rem}.aligncenter{clear:both;display:block;margin-inline:auto}.alignwide{margin-inline:-80px}.alignfull{margin-inline:calc(50% - 50vw);max-width:100vw}.alignfull,.alignfull img{width:100vw}.wp-caption{margin-block-end:1.25rem;max-width:100%}.wp-caption.alignleft{margin:5px 20px 20px 0}.wp-caption.alignright{margin:5px 0 20px 20px}.wp-caption img{display:block;margin-inline:auto}.wp-caption-text{margin:0}.gallery-caption{display:block;font-size:.8125rem;line-height:1.5;margin:0;padding:.75rem}.pagination{display:flex;justify-content:space-between;margin:20px auto}.sticky{display:block;position:relative}.bypostauthor{font-size:inherit}.hide{display:none!important}.post-password-form{margin:50px auto;max-width:500px}.post-password-form p{align-items:flex-end;display:flex;width:100%}.post-password-form [type=submit]{margin-inline-start:3px}.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#eee;clip:auto!important;clip-path:none;color:#333;display:block;font-size:1rem;height:auto;left:5px;line-height:normal;padding:12px 24px;text-decoration:none;top:5px;width:auto;z-index:100000}.post .entry-title a{text-decoration:none}.post .wp-post-image{max-height:500px;-o-object-fit:cover;object-fit:cover;width:100%}@media(max-width:991px){.post .wp-post-image{max-height:400px}}@media(max-width:575px){.post .wp-post-image{max-height:300px}}#comments .comment-list{font-size:.9em;list-style:none;margin:0;padding:0}#comments .comment,#comments .pingback{position:relative}#comments .comment .comment-body,#comments .pingback .comment-body{border-block-end:1px solid #ccc;display:flex;flex-direction:column;padding-block-end:30px;padding-block-start:30px;padding-inline-end:0;padding-inline-start:60px}#comments .comment .avatar,#comments .pingback .avatar{border-radius:50%;left:0;margin-inline-end:10px;position:absolute}body.rtl #comments .comment .avatar,body.rtl #comments .pingback .avatar,html[dir=rtl] #comments .comment .avatar,html[dir=rtl] #comments .pingback .avatar{left:auto;right:0}#comments .comment-meta{display:flex;justify-content:space-between;margin-block-end:.9rem}#comments .comment-metadata,#comments .reply{font-size:11px;line-height:1}#comments .children{list-style:none;margin:0;padding-inline-start:30px;position:relative}#comments .children li:last-child{padding-block-end:0}#comments ol.comment-list .children:before{content:"↪";display:inline-block;font-size:1em;font-weight:400;left:0;line-height:100%;position:absolute;top:45px;width:auto}body.rtl #comments ol.comment-list .children:before,html[dir=rtl] #comments ol.comment-list .children:before{content:"↩";left:auto;right:0}@media(min-width:768px){#comments .comment-author,#comments .comment-metadata{line-height:1}}@media(max-width:767px){#comments .comment .comment-body{padding:30px 0}#comments .children{padding-inline-start:20px}#comments .comment .avatar{float:left;position:inherit}body.rtl #comments .comment .avatar,html[dir=rtl] #comments .comment .avatar{float:right}}.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{margin-inline-end:auto;margin-inline-start:auto;width:100%}@media(max-width:575px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{padding-inline-end:10px;padding-inline-start:10px}}@media(min-width:576px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:500px}.site-footer.footer-full-width .footer-inner,.site-header.header-full-width .header-inner{max-width:100%}}@media(min-width:768px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:600px}.site-footer.footer-full-width,.site-header.header-full-width{max-width:100%}}@media(min-width:992px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:800px}.site-footer.footer-full-width,.site-header.header-full-width{max-width:100%}}@media(min-width:1200px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:1140px}.site-footer.footer-full-width,.site-header.header-full-width{max-width:100%}}.site-header+.elementor{min-height:calc(100vh - 320px)} assets/css/header-footer-rtl.css 0000777 00000016020 15251663101 0012701 0 ustar 00 .site-header{display:flex;flex-wrap:wrap;justify-content:space-between;padding-block-end:1rem;padding-block-start:1rem;position:relative}.site-header .site-title{font-size:2.5rem;font-weight:500;line-height:1.2}.site-header .site-branding{display:flex;flex-direction:column;gap:.5rem;justify-content:center}.site-header .header-inner{display:flex;flex-wrap:wrap;justify-content:space-between}.site-header .header-inner .custom-logo-link{display:block}.site-header .header-inner .site-branding .site-description,.site-header .header-inner .site-branding .site-title{margin:0}.site-header .header-inner .site-branding .site-logo img{display:block}.site-header .header-inner .site-branding.show-logo .site-title,.site-header .header-inner .site-branding.show-title .site-logo{display:none!important}.site-header.header-inverted .header-inner{flex-direction:row-reverse}.site-header.header-inverted .header-inner .site-branding{text-align:end}.site-header.header-stacked .header-inner{align-items:center;flex-direction:column;text-align:center}.site-footer{padding-block-end:1rem;padding-block-start:1rem;position:relative}.site-footer .site-title{font-size:1.5rem;font-weight:500;line-height:1.2}.site-footer .site-branding{display:flex;flex-direction:column;gap:.5rem;justify-content:center}.site-footer .footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between}.site-footer .footer-inner .custom-logo-link{display:block}.site-footer .footer-inner .site-branding .site-description,.site-footer .footer-inner .site-branding .site-title{margin:0}.site-footer .footer-inner .site-branding .site-logo img{display:block}.site-footer .footer-inner .site-branding.show-logo .site-title,.site-footer .footer-inner .site-branding.show-title .site-logo{display:none!important}.site-footer .footer-inner .copyright{align-items:center;display:flex;justify-content:flex-end}.site-footer .footer-inner .copyright p{margin:0}.site-footer.footer-inverted .footer-inner{flex-direction:row-reverse}.site-footer.footer-inverted .footer-inner .site-branding{text-align:end}.site-footer.footer-stacked .footer-inner{align-items:center;flex-direction:column;text-align:center}.site-footer.footer-stacked .footer-inner .site-branding .site-title{text-align:center}.site-footer.footer-stacked .footer-inner .site-navigation .menu{padding:0}@media(max-width:576px){.site-footer:not(.footer-stacked) .footer-inner .copyright,.site-footer:not(.footer-stacked) .footer-inner .site-branding,.site-footer:not(.footer-stacked) .footer-inner .site-navigation{display:block;max-width:none;text-align:center;width:100%}.site-footer .footer-inner .site-navigation ul.menu{justify-content:center}.site-footer .footer-inner .site-navigation ul.menu li{display:inline-block}}.site-header.header-stacked .site-navigation-toggle-holder{justify-content:center;max-width:100%}.site-header.menu-layout-dropdown .site-navigation{display:none}.site-navigation-toggle-holder{align-items:center;display:flex;padding:8px 15px}.site-navigation-toggle-holder .site-navigation-toggle{align-items:center;background-color:rgba(0,0,0,.05);border:0 solid;border-radius:3px;color:#494c4f;cursor:pointer;display:flex;justify-content:center;padding:.5rem}.site-navigation-toggle-holder .site-navigation-toggle-icon{display:block;width:1.25rem}.site-navigation-toggle-holder .site-navigation-toggle-icon:after,.site-navigation-toggle-holder .site-navigation-toggle-icon:before{background-color:currentColor;border-radius:3px;content:"";display:block;height:3px;transition:all .2s ease-in-out}.site-navigation-toggle-holder .site-navigation-toggle-icon:before{box-shadow:0 .35rem 0 currentColor;margin-block-end:.5rem}.site-navigation-toggle-holder .site-navigation-toggle[aria-expanded=true] .site-navigation-toggle-icon:before{box-shadow:none;transform:translateY(.35rem) rotate(-45deg)}.site-navigation-toggle-holder .site-navigation-toggle[aria-expanded=true] .site-navigation-toggle-icon:after{transform:translateY(-.35rem) rotate(45deg)}.site-navigation{align-items:center;display:flex}.site-navigation ul.menu,.site-navigation ul.menu ul{list-style-type:none;padding:0}.site-navigation ul.menu{display:flex;flex-wrap:wrap}.site-navigation ul.menu li{display:flex;position:relative}.site-navigation ul.menu li a{display:block;padding:8px 15px}.site-navigation ul.menu li.menu-item-has-children{padding-inline-end:15px}.site-navigation ul.menu li.menu-item-has-children:after{align-items:center;color:#666;content:"▾";display:flex;font-size:1.5em;justify-content:center;text-decoration:none}.site-navigation ul.menu li.menu-item-has-children:focus-within>ul{display:block}.site-navigation ul.menu li ul{background:#fff;display:none;right:0;min-width:150px;position:absolute;top:100%;z-index:2}.site-navigation ul.menu li ul li{border-block-end:1px solid #eee}.site-navigation ul.menu li ul li:last-child{border-block-end:none}.site-navigation ul.menu li ul li.menu-item-has-children a{flex-grow:1}.site-navigation ul.menu li ul li.menu-item-has-children:after{transform:translateY(-50%) rotate(90deg)}.site-navigation ul.menu li ul ul{right:100%;top:0}.site-navigation ul.menu li:hover>ul{display:block}footer .site-navigation ul.menu li ul{bottom:100%;top:auto}footer .site-navigation ul.menu li ul ul{bottom:0}footer .site-navigation ul.menu a{padding:5px 15px}.site-navigation-dropdown{bottom:0;right:0;margin-block-start:10px;position:absolute;transform-origin:top;transition:max-height .3s,transform .3s;width:100%;z-index:10000}.site-navigation-toggle-holder:not(.elementor-active)+.site-navigation-dropdown{max-height:0;transform:scaleY(0)}.site-navigation-toggle-holder.elementor-active+.site-navigation-dropdown{max-height:100vh;transform:scaleY(1)}.site-navigation-dropdown ul{padding:0}.site-navigation-dropdown ul.menu{background:#fff;margin:0;padding:0;position:absolute;width:100%}.site-navigation-dropdown ul.menu li{display:block;position:relative;width:100%}.site-navigation-dropdown ul.menu li a{background:#fff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.102);color:#55595c;display:block;padding:20px}.site-navigation-dropdown ul.menu li.current-menu-item a{background:#55595c;color:#fff}.site-navigation-dropdown ul.menu>li li{max-height:0;transform:scaleY(0);transform-origin:top;transition:max-height .3s,transform .3s}.site-navigation-dropdown ul.menu li.elementor-active>ul>li{max-height:100vh;transform:scaleY(1)}@media(max-width:576px){.site-header.menu-dropdown-mobile:not(.menu-layout-dropdown) .site-navigation{display:none!important}}@media(min-width:768px){.site-header.menu-dropdown-mobile:not(.menu-layout-dropdown) .site-navigation-toggle-holder{display:none!important}}@media(min-width:576px)and (max-width:767px){.site-header.menu-dropdown-mobile:not(.menu-layout-dropdown) .site-navigation{display:none!important}}@media(min-width:992px){.site-header.menu-dropdown-tablet:not(.menu-layout-dropdown) .site-navigation-toggle-holder{display:none!important}}@media(max-width:992px){.site-header.menu-dropdown-tablet:not(.menu-layout-dropdown) .site-navigation{display:none!important}}.site-header.menu-dropdown-none:not(.menu-layout-dropdown) .site-navigation-toggle-holder{display:none!important} assets/css/header-footer.css 0000777 00000016016 15251663101 0012107 0 ustar 00 .site-header{display:flex;flex-wrap:wrap;justify-content:space-between;padding-block-end:1rem;padding-block-start:1rem;position:relative}.site-header .site-title{font-size:2.5rem;font-weight:500;line-height:1.2}.site-header .site-branding{display:flex;flex-direction:column;gap:.5rem;justify-content:center}.site-header .header-inner{display:flex;flex-wrap:wrap;justify-content:space-between}.site-header .header-inner .custom-logo-link{display:block}.site-header .header-inner .site-branding .site-description,.site-header .header-inner .site-branding .site-title{margin:0}.site-header .header-inner .site-branding .site-logo img{display:block}.site-header .header-inner .site-branding.show-logo .site-title,.site-header .header-inner .site-branding.show-title .site-logo{display:none!important}.site-header.header-inverted .header-inner{flex-direction:row-reverse}.site-header.header-inverted .header-inner .site-branding{text-align:end}.site-header.header-stacked .header-inner{align-items:center;flex-direction:column;text-align:center}.site-footer{padding-block-end:1rem;padding-block-start:1rem;position:relative}.site-footer .site-title{font-size:1.5rem;font-weight:500;line-height:1.2}.site-footer .site-branding{display:flex;flex-direction:column;gap:.5rem;justify-content:center}.site-footer .footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between}.site-footer .footer-inner .custom-logo-link{display:block}.site-footer .footer-inner .site-branding .site-description,.site-footer .footer-inner .site-branding .site-title{margin:0}.site-footer .footer-inner .site-branding .site-logo img{display:block}.site-footer .footer-inner .site-branding.show-logo .site-title,.site-footer .footer-inner .site-branding.show-title .site-logo{display:none!important}.site-footer .footer-inner .copyright{align-items:center;display:flex;justify-content:flex-end}.site-footer .footer-inner .copyright p{margin:0}.site-footer.footer-inverted .footer-inner{flex-direction:row-reverse}.site-footer.footer-inverted .footer-inner .site-branding{text-align:end}.site-footer.footer-stacked .footer-inner{align-items:center;flex-direction:column;text-align:center}.site-footer.footer-stacked .footer-inner .site-branding .site-title{text-align:center}.site-footer.footer-stacked .footer-inner .site-navigation .menu{padding:0}@media(max-width:576px){.site-footer:not(.footer-stacked) .footer-inner .copyright,.site-footer:not(.footer-stacked) .footer-inner .site-branding,.site-footer:not(.footer-stacked) .footer-inner .site-navigation{display:block;max-width:none;text-align:center;width:100%}.site-footer .footer-inner .site-navigation ul.menu{justify-content:center}.site-footer .footer-inner .site-navigation ul.menu li{display:inline-block}}.site-header.header-stacked .site-navigation-toggle-holder{justify-content:center;max-width:100%}.site-header.menu-layout-dropdown .site-navigation{display:none}.site-navigation-toggle-holder{align-items:center;display:flex;padding:8px 15px}.site-navigation-toggle-holder .site-navigation-toggle{align-items:center;background-color:rgba(0,0,0,.05);border:0 solid;border-radius:3px;color:#494c4f;cursor:pointer;display:flex;justify-content:center;padding:.5rem}.site-navigation-toggle-holder .site-navigation-toggle-icon{display:block;width:1.25rem}.site-navigation-toggle-holder .site-navigation-toggle-icon:after,.site-navigation-toggle-holder .site-navigation-toggle-icon:before{background-color:currentColor;border-radius:3px;content:"";display:block;height:3px;transition:all .2s ease-in-out}.site-navigation-toggle-holder .site-navigation-toggle-icon:before{box-shadow:0 .35rem 0 currentColor;margin-block-end:.5rem}.site-navigation-toggle-holder .site-navigation-toggle[aria-expanded=true] .site-navigation-toggle-icon:before{box-shadow:none;transform:translateY(.35rem) rotate(45deg)}.site-navigation-toggle-holder .site-navigation-toggle[aria-expanded=true] .site-navigation-toggle-icon:after{transform:translateY(-.35rem) rotate(-45deg)}.site-navigation{align-items:center;display:flex}.site-navigation ul.menu,.site-navigation ul.menu ul{list-style-type:none;padding:0}.site-navigation ul.menu{display:flex;flex-wrap:wrap}.site-navigation ul.menu li{display:flex;position:relative}.site-navigation ul.menu li a{display:block;padding:8px 15px}.site-navigation ul.menu li.menu-item-has-children{padding-inline-end:15px}.site-navigation ul.menu li.menu-item-has-children:after{align-items:center;color:#666;content:"▾";display:flex;font-size:1.5em;justify-content:center;text-decoration:none}.site-navigation ul.menu li.menu-item-has-children:focus-within>ul{display:block}.site-navigation ul.menu li ul{background:#fff;display:none;left:0;min-width:150px;position:absolute;top:100%;z-index:2}.site-navigation ul.menu li ul li{border-block-end:1px solid #eee}.site-navigation ul.menu li ul li:last-child{border-block-end:none}.site-navigation ul.menu li ul li.menu-item-has-children a{flex-grow:1}.site-navigation ul.menu li ul li.menu-item-has-children:after{transform:translateY(-50%) rotate(-90deg)}.site-navigation ul.menu li ul ul{left:100%;top:0}.site-navigation ul.menu li:hover>ul{display:block}footer .site-navigation ul.menu li ul{bottom:100%;top:auto}footer .site-navigation ul.menu li ul ul{bottom:0}footer .site-navigation ul.menu a{padding:5px 15px}.site-navigation-dropdown{bottom:0;left:0;margin-block-start:10px;position:absolute;transform-origin:top;transition:max-height .3s,transform .3s;width:100%;z-index:10000}.site-navigation-toggle-holder:not(.elementor-active)+.site-navigation-dropdown{max-height:0;transform:scaleY(0)}.site-navigation-toggle-holder.elementor-active+.site-navigation-dropdown{max-height:100vh;transform:scaleY(1)}.site-navigation-dropdown ul{padding:0}.site-navigation-dropdown ul.menu{background:#fff;margin:0;padding:0;position:absolute;width:100%}.site-navigation-dropdown ul.menu li{display:block;position:relative;width:100%}.site-navigation-dropdown ul.menu li a{background:#fff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.102);color:#55595c;display:block;padding:20px}.site-navigation-dropdown ul.menu li.current-menu-item a{background:#55595c;color:#fff}.site-navigation-dropdown ul.menu>li li{max-height:0;transform:scaleY(0);transform-origin:top;transition:max-height .3s,transform .3s}.site-navigation-dropdown ul.menu li.elementor-active>ul>li{max-height:100vh;transform:scaleY(1)}@media(max-width:576px){.site-header.menu-dropdown-mobile:not(.menu-layout-dropdown) .site-navigation{display:none!important}}@media(min-width:768px){.site-header.menu-dropdown-mobile:not(.menu-layout-dropdown) .site-navigation-toggle-holder{display:none!important}}@media(min-width:576px)and (max-width:767px){.site-header.menu-dropdown-mobile:not(.menu-layout-dropdown) .site-navigation{display:none!important}}@media(min-width:992px){.site-header.menu-dropdown-tablet:not(.menu-layout-dropdown) .site-navigation-toggle-holder{display:none!important}}@media(max-width:992px){.site-header.menu-dropdown-tablet:not(.menu-layout-dropdown) .site-navigation{display:none!important}}.site-header.menu-dropdown-none:not(.menu-layout-dropdown) .site-navigation-toggle-holder{display:none!important} assets/css/theme-rtl.css 0000777 00000011754 15251663101 0011270 0 ustar 00 .comments-area a,.page-content a{text-decoration:underline}.alignright{float:left;margin-right:1rem}.alignleft{float:right;margin-left:1rem}.aligncenter{clear:both;display:block;margin-inline:auto}.alignwide{margin-inline:-80px}.alignfull{margin-inline:calc(50% - 50vw);max-width:100vw}.alignfull,.alignfull img{width:100vw}.wp-caption{margin-block-end:1.25rem;max-width:100%}.wp-caption.alignleft{margin:5px 0 20px 20px}.wp-caption.alignright{margin:5px 20px 20px 0}.wp-caption img{display:block;margin-inline:auto}.wp-caption-text{margin:0}.gallery-caption{display:block;font-size:.8125rem;line-height:1.5;margin:0;padding:.75rem}.pagination{display:flex;justify-content:space-between;margin:20px auto}.sticky{display:block;position:relative}.bypostauthor{font-size:inherit}.hide{display:none!important}.post-password-form{margin:50px auto;max-width:500px}.post-password-form p{align-items:flex-end;display:flex;width:100%}.post-password-form [type=submit]{margin-inline-start:3px}.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#eee;clip:auto!important;clip-path:none;color:#333;display:block;font-size:1rem;height:auto;right:5px;line-height:normal;padding:12px 24px;text-decoration:none;top:5px;width:auto;z-index:100000}.post .entry-title a{text-decoration:none}.post .wp-post-image{max-height:500px;-o-object-fit:cover;object-fit:cover;width:100%}@media(max-width:991px){.post .wp-post-image{max-height:400px}}@media(max-width:575px){.post .wp-post-image{max-height:300px}}#comments .comment-list{font-size:.9em;list-style:none;margin:0;padding:0}#comments .comment,#comments .pingback{position:relative}#comments .comment .comment-body,#comments .pingback .comment-body{border-block-end:1px solid #ccc;display:flex;flex-direction:column;padding-block-end:30px;padding-block-start:30px;padding-inline-end:0;padding-inline-start:60px}#comments .comment .avatar,#comments .pingback .avatar{border-radius:50%;right:0;margin-inline-end:10px;position:absolute}body.rtl #comments .comment .avatar,body.rtl #comments .pingback .avatar,html[dir=rtl] #comments .comment .avatar,html[dir=rtl] #comments .pingback .avatar{right:auto;left:0}#comments .comment-meta{display:flex;justify-content:space-between;margin-block-end:.9rem}#comments .comment-metadata,#comments .reply{font-size:11px;line-height:1}#comments .children{list-style:none;margin:0;padding-inline-start:30px;position:relative}#comments .children li:last-child{padding-block-end:0}#comments ol.comment-list .children:before{content:"↪";display:inline-block;font-size:1em;font-weight:400;right:0;line-height:100%;position:absolute;top:45px;width:auto}body.rtl #comments ol.comment-list .children:before,html[dir=rtl] #comments ol.comment-list .children:before{content:"↩";right:auto;left:0}@media(min-width:768px){#comments .comment-author,#comments .comment-metadata{line-height:1}}@media(max-width:767px){#comments .comment .comment-body{padding:30px 0}#comments .children{padding-inline-start:20px}#comments .comment .avatar{float:right;position:inherit}body.rtl #comments .comment .avatar,html[dir=rtl] #comments .comment .avatar{float:left}}.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{margin-inline-end:auto;margin-inline-start:auto;width:100%}@media(max-width:575px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{padding-inline-end:10px;padding-inline-start:10px}}@media(min-width:576px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:500px}.site-footer.footer-full-width .footer-inner,.site-header.header-full-width .header-inner{max-width:100%}}@media(min-width:768px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:600px}.site-footer.footer-full-width,.site-header.header-full-width{max-width:100%}}@media(min-width:992px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:800px}.site-footer.footer-full-width,.site-header.header-full-width{max-width:100%}}@media(min-width:1200px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:1140px}.site-footer.footer-full-width,.site-header.header-full-width{max-width:100%}}.site-header+.elementor{min-height:calc(100vh - 320px)} assets/css/editor-styles-rtl.css 0000777 00000001064 15251663101 0012766 0 ustar 00 body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}p{margin-block-end:.75rem}img{border-style:none;height:auto;max-width:100%;vertical-align:middle}pre{font-family:monospace;font-size:1em;white-space:pre-wrap}code,kbd,pre,samp{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem}blockquote{font-style:italic} assets/css/editor-rtl.css 0000777 00000000404 15251663101 0011442 0 ustar 00 .hello-elementor.elementor-nerd-box .elementor-nerd-box-title{margin-block-start:24px}.hello-elementor.elementor-nerd-box .elementor-nerd-box-message{margin-block-start:12px}.hello-elementor.elementor-nerd-box .elementor-nerd-box-link{margin-block-start:24px} assets/css/editor.css 0000777 00000000404 15251663101 0010643 0 ustar 00 .hello-elementor.elementor-nerd-box .elementor-nerd-box-title{margin-block-start:24px}.hello-elementor.elementor-nerd-box .elementor-nerd-box-message{margin-block-start:12px}.hello-elementor.elementor-nerd-box .elementor-nerd-box-link{margin-block-start:24px} assets/css/theme.asset.php 0000777 00000000124 15251663101 0011573 0 ustar 00 <?php return array('dependencies' => array(), 'version' => 'aad983901f10bf7e4e52'); assets/css/reset-rtl.css 0000777 00000012520 15251663101 0011300 0 ustar 00 html{line-height:1.15;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:border-box}body{background-color:#fff;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{color:inherit;font-family:inherit;font-weight:500;line-height:1.2;margin-block-end:1rem;margin-block-start:.5rem}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-block-end:.9rem;margin-block-start:0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em;white-space:pre-wrap}a{background-color:transparent;color:#c36;text-decoration:none}a:active,a:hover{color:#336}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}abbr[title]{border-block-end:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none;height:auto;max-width:100%}details{display:block}summary{display:list-item}figcaption{color:#333;font-size:16px;font-style:italic;font-weight:400;line-height:1.4}[hidden],template{display:none}@media print{*,:after,:before{background:transparent!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre{white-space:pre-wrap!important}blockquote,pre{-moz-column-break-inside:avoid;border:1px solid #ccc;break-inside:avoid}thead{display:table-header-group}img,tr{-moz-column-break-inside:avoid;break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{-moz-column-break-after:avoid;break-after:avoid}}label{display:inline-block;line-height:1;vertical-align:middle}button,input,optgroup,select,textarea{font-family:inherit;font-size:1rem;line-height:1.5;margin:0}input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{border:1px solid #666;border-radius:3px;padding:.5rem 1rem;transition:all .3s;width:100%}input[type=date]:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border-color:#333}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;width:auto}[type=button],[type=submit],button{background-color:transparent;border:1px solid #c36;border-radius:3px;color:#c36;display:inline-block;font-size:1rem;font-weight:400;padding:.5rem 1rem;text-align:center;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}[type=button]:focus:not(:focus-visible),[type=submit]:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}[type=button]:focus,[type=button]:hover,[type=submit]:focus,[type=submit]:hover,button:focus,button:hover{background-color:#c36;color:#fff;text-decoration:none}[type=button]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto;resize:vertical}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}select{display:block}table{background-color:transparent;border-collapse:collapse;border-spacing:0;font-size:.9em;margin-block-end:15px;width:100%}table td,table th{border:1px solid hsla(0,0%,50%,.502);line-height:1.5;padding:15px;vertical-align:top}table th{font-weight:700}table tfoot th,table thead th{font-size:1em}table caption+thead tr:first-child td,table caption+thead tr:first-child th,table colgroup+thead tr:first-child td,table colgroup+thead tr:first-child th,table thead:first-child tr:first-child td,table thead:first-child tr:first-child th{border-block-start:1px solid hsla(0,0%,50%,.502)}table tbody>tr:nth-child(odd)>td,table tbody>tr:nth-child(odd)>th{background-color:hsla(0,0%,50%,.071)}table tbody tr:hover>td,table tbody tr:hover>th{background-color:hsla(0,0%,50%,.102)}table tbody+tbody{border-block-start:2px solid hsla(0,0%,50%,.502)}@media(max-width:767px){table table{font-size:.8em}table table td,table table th{line-height:1.3;padding:7px}table table th{font-weight:400}}dd,dl,dt,li,ol,ul{background:transparent;border:0;font-size:100%;margin-block-end:0;margin-block-start:0;outline:0;vertical-align:baseline} assets/css/editor-styles.asset.php 0000777 00000000124 15251663101 0013300 0 ustar 00 <?php return array('dependencies' => array(), 'version' => '377baf681f2138bc7e58'); assets/css/reset.asset.php 0000777 00000000124 15251663101 0011613 0 ustar 00 <?php return array('dependencies' => array(), 'version' => '02f39e3cb7d776085f4a'); assets/images/ai.png 0000777 00000017621 15251663101 0010430 0 ustar 00 �PNG IHDR \r�f sRGB ��� DeXIfMM * �i � � � g�I �IDATx�tUՙǿso��K��* $��u�(ֶSkku�:v| �Pg\]v��t|� P۱�Z;>Z��fu\��D�ĪѶZ ������'ܛ�s_��{�=��Y+9�}��}�}�w���p# �-z&����!�2�1��D���!�C���6\�������6aOP4���!�?��C���v ���.��R{ ��h;�o G߹E:Txn&@��[$��"㍃�g���FƭAV#����~8��p[��ڿmc�$66�+��щ��!@`�V�¶H�td�ix�ND�:�~Ue�ޡhT)Bނ�Q�x#.��ikwH8�8D��!�Ŋi�3�ẘ��E� oѩ(n*V����S;��`�j���*9�Ոc~�9��x��K����3�3� B���ݝ���%��t�Z�(�;#�R���J��p�R�|W��~D�/Q\H7��6�Uq1V��P�$�p��b�Z�K�K��_D4#]�*����(!<���'��+���@_�D�p2,���LH��~���#*��r(<6_Zߎ(W̦p �}RB��_E�����p@$E� G�F��n��H���x�": ���{X�>�7�����l��f�?��1�8zO�?W�������4k����P�o|��s��VC���Y��7�� ,���L�-�ldz��A�"�23�A��*9��Ô���(��Y�a��~'��7!h$�� ��m�(�� g�v�=>T�7*��H��R;*.�o�Dy2���x��PP��Zt9�`����Ǫz�� �"�tjL��ո7�t���$`| g�H���Y�J�8��+�h��~�$ '�?�{���pZhߪ�;��D�ۥ�и�-�;�>B><�;�iy�� ���ji�X�>���Rd~5Ǟ[��Y���Q-x3r�78��E���@Ɨ����;����a��SZ�h� �4Dg��^;Y�P�_�9�':I_�R�J�YW��wW�V,b�-2%�f����eH���>㹸�y���n���=��5�\�{���xqf~��"��63!��"��D��P� �J�X��}�ُ�iQe\���0�&m -��w��3���":��v�Q�EMUoQX�] Cx�c��*�h���������_�d��r��f|�r ��>֥�5�q�-75ѕ�:V%�j�������{ƴ2���K;����{x��~�� | @-�1\�>���ն��$P�9�c%��0��ߋx�W��,����$�]||E��D�����ٲ�Q�Xл�n��a��`���a ��k�$f̗�;�hO ���+ � "t�6�֘t_<G~���Y�F@4�܌.�� ���_[h��F�R�{�Jt�L�@� E�GQ���A�QP�bhC��sN�\��^=�* >��3@��+P����44k��=f-���|?�}L���=(��m�2v�hު��!�ﭒ�W���Z̾.��ޗ�_��Yk�0 �� >V2g����g|����$V$d���ҷ� �!����˘+��=O0Oo���@&UV���=���I�dڥ~v�s �ؿO�����|%��(�'��|� z��_��?�')G5H�!ڥ3d�U�u�C��$KH�3��*G,���&�7'�5ä�1�3��~�T�Y�Ė`@�,g�/� @�h�|�x3�$ � ~�?j�ڋ��1t�v��7��#o�`�$P^�v��Lň��卹l�:��R{�.�oQ7�EI�?����0�x�|r��ns7���=s j>�.��1�wpn�x�BO �%��垼y[d�)��W0��M8C_~^8�;!�� � �?0g�;&Q* ��v&F&0d��rk^��p�FN-����|N��^��� ~���T7 �L�~|�t">Lڙyϝ+e+���u4,�͍H ;mhB*�Z�e����f���ߡ�oT�,cD$HکXL�CXL�w�P�,%�#Ru��a� �������-�����R�e^�p=�r c$P)��Ȅ;��on��j �>�?�'���LB�#�-��<�m�: e 9�m#(�BJ�:������V,�$�0��E7��l� �������+% ��^d�eH�Hn������+`���-(����\��[�e�$7lv�,��gB�;�P�2I ���F�˚P�v�~�&�b*�V��H ���å��i�6��� ��N+Iy$@��q�t��!����X `�Ԣ�OtJ1�!0�W�@Gs �ݍ����<'p� �ݸH�>�DG f���B�R�rH�r����AG ��T�2�ʼC$� ��hw��JnT����o��P ��e���Go��c������.�$�\^"p���#2�R�(��&*S���F$Pv���U�R��b�.����2�}�F��H�J%���%U%��-��,u7�K�?K5�ϓ O /� ѫH��b�]�縻�� ��s��`��X�h���Q�)6R>G$��n흂o_f��v���� ��jΖQ�X��m��m�[JU3z�sTfP�m�������&Co���aWW� -��q��F��k&���(�8�� �@��_pP���D����Q/e��v����9PS�����|�]km9 �U_8�/ڍ��I��'�K�v�ܖ0D��VG���Mg$@���e�2�� � �~�e���ΰ$@�$���q��-; |�w&��#�aI��N�k�em5V� �7[�p$@�@��D�?c5vK�a��a�,�j�G$�<� ,��-9 M*nB �RX���DU�rxsA$?��pP�gT����fj��J�� c��:�� Rܐ���2M��DQ����{c�c 0��M : �- �Ð ���6y��?�Pl�����> ����Rq]!��:��e�t)�%��� � V�*Xz�� 4�]0��.�ѳ@��$p�"�66��y ~Jj���`/@��Euc��;~'�X$�NE��]ԍ�I�\'��/�� .?��A�#�?��/ʷ\XN���7�� 0�d9�\a�:�&\7.��� � zrV�.�1L�/�y��c"5M'�5�D���o۲12��0��\a�: ��� P{�H�m� � 'p�B����!Y� �Ӊ�H <�e���)�8�u�1��� OO�F!�l��IX�-0�� � J�� <E֢B0ͦ�$@� V�8�E�h��Q`�ߌ��$|(���Ó͖d8 x�O��H �5[����`<�Xs �� � V �h�����X��0?�s �`��=�@SAF�`�J�I���]�s��� � ��� �I��I %�!K��&]{�� �7yl"��R;.�4)�S�#�m|�YϬ��S4|��G\Xj��j� $ �pf�X�S%�&��?��o�H \�?=ݢ�8I�O'�c!��?�nV��SB�n��1 �@X��y����b.� �#���g���pl� � �� � ���䓓��J �pZ�"�$@�%`H<��S@cDxM�e$@}�T }M@:�>B�>U3^FU�� �*�u�z��V��G⹄IJ:���HP���k&���_���M�@n<=w0(��SU 4�P o�@8h��dR%�pG+H��@{_p�t� �� '+�ʭ-�O��SX*�L^�>�8�(�i��II�=����ܓ �� � C��8��$� �D�'��@�pT�D�K�!Oh�G� '&��� *YH��BO =~�K C�(� �OvHI�*��n@V�|�'�pHM�([�T��p�L�H�z ]I)�z@� �$b�H��7RCl;M#�,% V�� ��вUX�J��Ψ�R ��Q��9(,)�Z*����^������d���Zl�����`w���$@� `:��S)�F@:�$�I ��4x��F�� $��u�z1�h�ܶecHR�M3�^�)}���P7c�l� ��y��?n$��@z � �@6X�Fa#����� ��6Ci �@6F*��@L�Mق� �@���kҢ�"��$/rO$^�eͦ�u)p��x��w&opO$>����$�'-K9��6%opO$FZ����3;�~7�h>m"��x7�~��s�M��0���&�yJ}0�_�� 0F��G�Xe�0����z� �X�wh��E�c�M� ��@\���nQ��li}�����<&:��lYיnE?��AQ���H �:��s �&� �fJ<'���=#og8 �zl� $@&x��f��1 u ����$@�'��>mf+2J �ʚv��@3)��@� �#����� k�m+�'0x�t�s�� zk��5 ��x9��Y V��F��H ��:�Ԛ��vr`H�%�����2�z\�4vNխ��˶η�Ih�;8OZ_�fJV�(��k���h���!^�7��5d��/�[I���@[#k�_�Z�}�X�!�H�G �|e.�s: ,L����@�tK�3���� z��\�: �@ ��Q:�ϥiNp��r��u ���Y�W�p �o`#U4�*C& >��������� G� �=��*C�K�4ڻOZ��w^0[6��y���� ��w��dS���4�� �XD��l� ��� h�?QHÂ���� �} ?0v6H��Bt �_�V�$@�!����V�)� �M?�",�a\h^wA��!3�i2u�~j�$K`���4(��)nEp(øм�HqCf(�3�Fmh���忲�k�`R�<�M �� ����ԪF�@�0�V�2 ��g������-;�y�f�/X�p$@^0�k��[� zM��I��H���۪��r Ur�i4촦 C� �� 2��yҞ��w>l9�[��F.�'��H��!�u��k7f[@ ��K82�.f�'w Onº�Oٍ%뚀��� B�R��,�.���n^�>vg?��ޖ�o5���W�D�r�(`ۖ�AT����w�ے�g�o���4d��xض�� (@`� RyZ�!M�mW��s�u2��M�xJ$�t�/*&�+U�r �6�F�����% ����J�<T� E;�i{+s�P�� 8@ o��;w�XQE;��U)�_.>�#����WI��%9 U ����J3�O� I��R�*Β�P!��f)@��F�$`��p�1�� f˺N�Ը n$@�#� �R�+�(t9�o��-U>O$`����ߎ�tq �k#�M+�3 �@i����I�{����6�`ț}�yD$�4d�_ڝ�O�@j��勌�H�J"Ѕz�$��c@ɝ/m/�A��8xJ$� T��m��[��PRuI�A���R1�H� �-��uBP��x��ǫ佃�˘&|��(�H@�?�����,��lE��_�p�Y �0$@� �D��y�zC���q� �T��7�8��R$!pO%@�ߗݵ�w\s �m=K�X"?>N'`4`��=n�P ��o� ���K!'�/RW'۹� ��"| '��gJ�'�<�~B~�q�&������Jٺ���]b��s ��Іve��{;�]箺�`V+ �� ԙ��H�?d�f���?��3W� }Ѩ�صh���5�� �'`��\�_�[6�qQ���P��F$�I���c33��w�6�t�W�ֿΐj���ү�H���Ѹr��}��,�VH�M�A)��9�$@��ݍi�ϗ�E��2�K| &cAQn$@��b,?O�?�1J�*4p�`�Ӝ1�� >���W*y� ����&���a��x�K^@�GB�\���Y�g@�o�֗Q����D`�$�U���vq�t��E��8����4}�J:7�g�(J�_�1 �� 2wL�̕��m��( pkfȘ�0Rp��@? �M &�,d~_��(�+��2f,���n'