first commit

This commit is contained in:
2026-03-24 00:31:47 +01:00
commit 2506f6f9c7
3328 changed files with 1172155 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
<?php
namespace Elementor;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
global $wp_version;
$body_classes = [
'elementor-editor-active',
'wp-version-' . str_replace( '.', '-', $wp_version ),
];
if ( is_rtl() ) {
$body_classes[] = 'rtl';
}
if ( ! Plugin::$instance->role_manager->user_can( 'design' ) ) {
$body_classes[] = 'elementor-editor-content-only';
}
$notice = Plugin::$instance->editor->notice_bar->get_notice();
?>
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title><?php printf(
/* translators: %s: Page title. */
esc_html__( 'Edit "%s" with Elementor', 'elementor' ),
esc_html( get_the_title() )
); ?></title>
<?php wp_head(); ?>
<script>
var ajaxurl = '<?php Utils::print_unescaped_internal_string( admin_url( 'admin-ajax.php', 'relative' ) ); ?>';
</script>
</head>
<body class="<?php echo esc_attr( implode( ' ', $body_classes ) ); ?>">
<?php
if ( isset( $body_file_path ) ) {
include $body_file_path;
}
?>
<?php
wp_footer();
/** This action is documented in wp-admin/admin-footer.php */
do_action( 'admin_print_footer_scripts' );
?>
</body>
</html>

View File

@@ -0,0 +1,121 @@
<?php
namespace Elementor;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
function echo_select_your_structure_title() {
echo esc_html__( 'Select your structure', 'elementor' );
}
?>
<script type="text/template" id="tmpl-elementor-empty-preview">
<div class="elementor-first-add">
<div class="elementor-icon eicon-plus"></div>
</div>
</script>
<script type="text/template" id="tmpl-elementor-add-section">
<# if ( $e.components.get( 'document/elements' ).utils.allowAddingWidgets() ) { #>
<div class="elementor-add-section-inner">
<button type="button" class="elementor-add-section-close" data-tooltip="<?php echo esc_attr__( 'Close', 'elementor' ); ?>" aria-label="<?php echo esc_attr__( 'Close', 'elementor' ); ?>">
<i class="eicon-close" aria-hidden="true"></i>
</button>
<?php
$experiments_manager = Plugin::$instance->experiments;
if ( $experiments_manager->is_feature_active( 'container' ) ) { ?>
<button type="button" class="elementor-add-section-back" data-tooltip="<?php echo esc_attr__( 'Back', 'elementor' ); ?>" aria-label="<?php echo esc_attr__( 'Back', 'elementor' ); ?>">
<i class="eicon-chevron-left" aria-hidden="true"></i>
</button>
<?php } ?>
<div class="e-view elementor-add-new-section">
<?php
$add_container_title = esc_html__( 'Add New Container', 'elementor' );
$add_section_title = esc_html__( 'Add New Section', 'elementor' );
$button_title = ( $experiments_manager->is_feature_active( 'container' ) ) ? $add_container_title : $add_section_title;
?>
<button type="button" class="elementor-add-section-area-button elementor-add-section-button" data-tooltip="<?php echo esc_attr( $button_title ); ?>" aria-label="<?php echo esc_attr( $button_title ); ?>">
<i class="eicon-plus" aria-hidden="true"></i>
</button>
<# if ( 'loop-item' !== elementor.documents.getCurrent()?.config?.type || elementorCommon.config.experimentalFeatures[ 'container' ] ) {
const additionalClass = 'loop-item' === elementor.documents.getCurrent()?.config?.type && elementor.documents.getCurrent()?.config?.settings?.settings?.source?.includes( 'taxonomy' )
? 'elementor-edit-hidden'
: ''; #>
<button type="button" class="{{ additionalClass }} elementor-add-section-area-button elementor-add-template-button" data-tooltip="<?php echo esc_attr__( 'Add Template', 'elementor' ); ?>" aria-label="<?php echo esc_attr__( 'Add Template', 'elementor' ); ?>">
<i class="eicon-folder" aria-hidden="true"></i>
</button>
<# } #>
<div class="elementor-add-section-drag-title"><?php echo esc_html__( 'Drag widget here', 'elementor' ); ?></div>
</div>
<div class="e-view e-con-shared-styles e-con-select-type">
<div class="e-con-select-type__title"><?php echo esc_html__( 'Which layout would you like to use?', 'elementor' ); ?></div>
<div class="e-con-select-type__icons">
<button type="button" class="e-con-select-type__icons__icon flex-preset-button">
<svg width="85" height="85" viewBox="0 0 85 85" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="41.698" height="84.9997" fill="#D5DADE"/>
<rect x="43.3018" width="41.698" height="41.6498" fill="#D5DADE"/>
<rect x="43.3018" y="43.3506" width="41.698" height="41.6498" fill="#D5DADE"/>
</svg>
<div class="e-con-select-type__icons__icon__subtitle"><?php echo esc_html__( 'Flexbox', 'elementor' ); ?></div>
</button>
<button type="button" class="e-con-select-type__icons__icon grid-preset-button">
<svg width="85" height="85" viewBox="0 0 85 85" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="0.5" y="0.5" width="83.9997" height="84" stroke="#9DA5AE" stroke-dasharray="2 2"/>
<path d="M42.501 0.484375V84.6259" stroke="#9DA5AE" stroke-dasharray="1 1"/>
<path d="M84.623 42.501L-0.00038953 42.501" stroke="#9DA5AE" stroke-dasharray="1 1"/>
</svg>
<div class="e-con-select-type__icons__icon__subtitle"><?php echo esc_html__( 'Grid', 'elementor' ); ?></div>
</button>
</div>
</div>
<div class="e-view elementor-select-preset">
<div class="elementor-select-preset-title"><?php echo_select_your_structure_title(); ?></div>
<div class="elementor-select-preset-list">
<#
const structures = [ 10, 20, 30, 40, 21, 22, 31, 32, 33, 50, 34, 60 ];
structures.forEach( ( structure ) => {
const preset = elementor.presetsFactory.getPresetByStructure( structure ); #>
<button type="button" class="elementor-preset" data-structure="{{ structure }}">
{{{ elementor.presetsFactory.getPresetSVG( preset.preset ).outerHTML }}}
</button>
<# } ); #>
</div>
</div>
<div class="e-view e-con-select-preset e-con-select-preset-flex">
<div class="e-con-select-preset__title"><?php echo_select_your_structure_title(); ?></div>
<div class="e-con-select-preset__list">
<#
elementor.presetsFactory.getContainerPresets().forEach( ( preset ) => {
#>
<button type="button" class="e-con-preset" data-preset="{{ preset }}">
{{{ elementor.presetsFactory.generateContainerPreset( preset ) }}}
</button>
<#
} );
#>
</div>
</div>
<div class="e-view e-con-shared-styles e-con-select-preset-grid">
<div class="e-con-select-preset__title"><?php echo_select_your_structure_title(); ?></div>
<div class="e-con-select-preset__list">
<#
elementor.presetsFactory.getContainerGridPresets().forEach( ( preset ) => {
#>
<button type="button" class="e-con-preset" data-structure="{{ preset }}">
{{{ elementor.presetsFactory.generateContainerGridPreset( preset ) }}}
</button>
<#
} );
#>
</div>
</div>
</div>
<# } #>
</script>
<script type="text/template" id="tmpl-elementor-tag-controls-stack-empty">
<?php echo esc_html__( 'This tag has no settings.', 'elementor' ); ?>
</script>

View File

@@ -0,0 +1,212 @@
<?php
namespace Elementor;
use Elementor\Utils;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
?>
<script type="text/template" id="tmpl-elementor-hotkeys">
<# var ctrlLabel = environment.mac ? '&#8984;' : 'Ctrl'; #>
<div id="elementor-hotkeys__content">
<div class="elementor-hotkeys__col">
<h3 class="elementor-hotkeys__header"><?php echo esc_html__( 'Actions', 'elementor' ); ?></h3>
<ul class="elementor-hotkeys__list">
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'Undo', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>{{{ ctrlLabel }}}</kbd>
<kbd>Z</kbd>
</div>
</li>
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'Redo', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>{{{ ctrlLabel }}}</kbd>
<kbd>Shift</kbd>
<kbd>Z</kbd>
</div>
</li>
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'Copy', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>{{{ ctrlLabel }}}</kbd>
<kbd>C</kbd>
</div>
</li>
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'Paste', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>{{{ ctrlLabel }}}</kbd>
<kbd>V</kbd>
</div>
</li>
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'Paste Style', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>{{{ ctrlLabel }}}</kbd>
<kbd>Shift</kbd>
<kbd>V</kbd>
</div>
</li>
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'Delete', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>Delete</kbd>
</div>
</li>
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'Duplicate', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>{{{ ctrlLabel }}}</kbd>
<kbd>D</kbd>
</div>
</li>
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'Save', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>{{{ ctrlLabel }}}</kbd>
<kbd>S</kbd>
</div>
</li>
</ul>
</div>
<div class="elementor-hotkeys__col">
<h3 class="elementor-hotkeys__header"><?php echo esc_html__( 'Panels', 'elementor' ); ?></h3>
<ul class="elementor-hotkeys__list">
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'Finder', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>{{{ ctrlLabel }}}</kbd>
<kbd>E</kbd>
</div>
</li>
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'Show / Hide Panel', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>{{{ ctrlLabel }}}</kbd>
<kbd>P</kbd>
</div>
</li>
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'Site Settings', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>{{{ ctrlLabel }}}</kbd>
<kbd>K</kbd>
</div>
</li>
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'Structure', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>{{{ ctrlLabel }}}</kbd>
<kbd>I</kbd>
</div>
</li>
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'Page Settings', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>{{{ ctrlLabel }}}</kbd>
<kbd>Shift</kbd>
<kbd>Y</kbd>
</div>
</li>
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'History', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>{{{ ctrlLabel }}}</kbd>
<kbd>Shift</kbd>
<kbd>H</kbd>
</div>
</li>
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'User Preferences', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>{{{ ctrlLabel }}}</kbd>
<kbd>Shift</kbd>
<kbd>U</kbd>
</div>
</li>
</ul>
</div>
<div class="elementor-hotkeys__col">
<h3 class="elementor-hotkeys__header"><?php echo esc_html__( 'Go To', 'elementor' ); ?></h3>
<ul class="elementor-hotkeys__list">
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'Responsive Mode', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>{{{ ctrlLabel }}}</kbd>
<kbd>Shift</kbd>
<kbd>M</kbd>
</div>
</li>
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'Template Library', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>{{{ ctrlLabel }}}</kbd>
<kbd>Shift</kbd>
<kbd>L</kbd>
</div>
</li>
<?php if ( Utils::has_pro() ) : ?>
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'Notes', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>Shift</kbd>
<kbd>C</kbd>
</div>
</li>
<?php endif ?>
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'Keyboard Shortcuts', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>Shift</kbd>
<kbd>?</kbd>
</div>
</li>
<li class="elementor-hotkeys__item">
<div class="elementor-hotkeys__item--label"><?php echo esc_html__( 'Quit', 'elementor' ); ?></div>
<div class="elementor-hotkeys__item--shortcut">
<kbd>Esc</kbd>
</div>
</li>
</ul>
</div>
</div>
</script>

View File

@@ -0,0 +1,28 @@
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
?>
<script type="text/template" id="tmpl-elementor-templates-modal__header">
<div class="elementor-templates-modal__header__logo-area"></div>
<div class="elementor-templates-modal__header__menu-area"></div>
<div class="elementor-templates-modal__header__items-area">
<# if ( closeType ) { #>
<div class="elementor-templates-modal__header__close elementor-templates-modal__header__close--{{{ closeType }}} elementor-templates-modal__header__item">
<# if ( 'skip' === closeType ) { #>
<span><?php echo esc_html__( 'Skip', 'elementor' ); ?></span>
<# } #>
<i class="eicon-close" aria-hidden="true"></i>
<span class="elementor-screen-only">{{{ $e.components?.get( 'document/elements' )?.utils?.getTitleForLibraryClose() }}}</span>
</div>
<# } #>
<div id="elementor-template-library-header-tools"></div>
</div>
</script>
<script type="text/template" id="tmpl-elementor-templates-modal__header__logo">
<span class="elementor-templates-modal__header__logo__icon-wrapper e-logo-wrapper">
<i class="eicon-elementor"></i>
</span>
<span class="elementor-templates-modal__header__logo__title">{{{ title }}}</span>
</script>

View File

@@ -0,0 +1,97 @@
<?php
namespace Elementor;
use Elementor\Utils;
use Elementor\Core\Utils\Promotions\Filtered_Promotions_Manager;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
$has_pro = Utils::has_pro();
$elements_list_class = '';
if ( ! $has_pro ) {
$promotion_data = [
'text' => esc_html__( 'Access all Pro widgets', 'elementor' ),
'url_label' => esc_html__( 'Upgrade Now', 'elementor' ),
'url' => 'https://go.elementor.com/go-pro-structure-panel/',
];
$promotion_data = Filtered_Promotions_Manager::get_filtered_promotion_data(
$promotion_data,
'elementor/navigator/custom_promotion',
'url'
);
$elements_list_class = 'elementor-navigator-list__promotion';
}
?>
<script type="text/template" id="tmpl-elementor-navigator">
<div id="elementor-navigator__header">
<button id="elementor-navigator__toggle-all" data-elementor-action="expand" aria-label="<?php echo esc_attr__( 'Expand all elements', 'elementor' ); ?>">
<i class="eicon-expand" aria-hidden="true"></i>
</button>
<h2 id="elementor-navigator__header__title"><?php echo esc_html__( 'Structure', 'elementor' ); ?></h2>
<button id="elementor-navigator__close" aria-label="<?php echo esc_attr__( 'Close structure', 'elementor' ); ?>">
<i class="eicon-close" aria-hidden="true"></i>
</button>
</div>
<div id="elementor-navigator__elements"
<?php if ( ! empty( $elements_list_class ) ) : ?>
class="<?php echo esc_attr( $elements_list_class ); ?>"
<?php endif; ?>
>
</div>
<div id="elementor-navigator__footer">
<?php if ( ! $has_pro && ! empty( $promotion_data ) ) : ?>
<div id="elementor-navigator__footer__promotion">
<div class="elementor-navigator__promotion-text">
<?php echo esc_attr( $promotion_data['text'] ); ?>.
<a href="<?php echo esc_url( $promotion_data['url'] ); ?>" target="_blank" class="e-link-promotion"><?php echo esc_attr( $promotion_data['url_label'] ); ?></a>
</div>
</div>
<?php endif; ?>
<div id="elementor-navigator__footer__resize-bar">
<i class="eicon-ellipsis-h" aria-hidden="true"></i>
<span class="elementor-screen-only"><?php echo esc_html__( 'Resize structure', 'elementor' ); ?></span>
</div>
</div>
</script>
<script type="text/template" id="tmpl-elementor-navigator__elements">
<# if ( obj.elType ) { #>
<div class="elementor-navigator__item" data-locked="{{ obj.isLocked ? 'true' : 'false' }}" tabindex="0">
<div class="elementor-navigator__element__list-toggle">
<i class="eicon-sort-down" aria-hidden="true"></i>
<span class="elementor-screen-only"><?php echo esc_html__( 'Show/hide inner elements', 'elementor' ); ?></span>
</div>
<#
if ( icon ) { #>
<div class="elementor-navigator__element__element-type">
<i class="{{{ icon }}}" aria-hidden="true"></i>
</div>
<# } #>
<div class="elementor-navigator__element__title">
<span class="elementor-navigator__element__title__text">{{{ title }}}</span>
</div>
<div class="elementor-navigator__element__toggle">
<i class="eicon-preview-medium" aria-hidden="true"></i>
<span class="elementor-screen-only"><?php echo esc_html__( 'Show/hide Element', 'elementor' ); ?></span>
</div>
<div class="elementor-navigator__element__indicators"></div>
</div>
<# } #>
<div class="elementor-navigator__elements"></div>
</script>
<script type="text/template" id="tmpl-elementor-navigator__elements--empty">
<div class="elementor-empty-view__title"><?php echo esc_html__( 'Empty', 'elementor' ); ?></div>
</script>
<script type="text/template" id="tmpl-elementor-navigator__root--empty">
<img class="elementor-nerd-box-icon" src="<?php echo ELEMENTOR_ASSETS_URL . 'images/information.svg'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>" loading="lazy" alt="<?php echo esc_attr__( 'Elementor', 'elementor' ); ?>" />
<div class="elementor-nerd-box-title"><?php echo esc_html__( 'Easy Navigation is Here!', 'elementor' ); ?></div>
<div class="elementor-nerd-box-message"><?php echo esc_html__( 'Once you fill your page with content, this window will give you an overview display of all the page elements. This way, you can easily move around any section, column, or widget.', 'elementor' ); ?></div>
</script>

View File

@@ -0,0 +1,105 @@
<?php
namespace Elementor;
use Elementor\Utils;
use Elementor\Core\Utils\Promotions\Filtered_Promotions_Manager;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
?>
<script type="text/template" id="tmpl-elementor-panel-elements">
<# if ( $e.components.get( 'document/elements' ).utils.allowAddingWidgets()) { #>
<div id="elementor-panel-elements-navigation" class="elementor-panel-navigation">
<button class="elementor-component-tab elementor-panel-navigation-tab" data-tab="categories"><?php echo esc_html__( 'Elements', 'elementor' ); ?></button>
<button class="elementor-component-tab elementor-panel-navigation-tab" data-tab="global"><?php echo esc_html__( 'Globals', 'elementor' ); ?></button>
</div>
<# } #>
<div id="elementor-panel-elements-search-area"></div>
<div id="elementor-panel-elements-notice-area"></div>
<div id="elementor-panel-elements-wrapper"></div>
</script>
<script type="text/template" id="tmpl-elementor-panel-categories">
<div id="elementor-panel-categories"></div>
<?php
$get_pro_details = apply_filters( 'elementor/editor/panel/get_pro_details', [
'link' => 'https://go.elementor.com/pro-widgets/',
'message' => __( 'Get more with Elementor Pro', 'elementor' ),
'button_text' => __( 'Upgrade Now', 'elementor' ),
] );
$promotion_data_sticky = [
'url' => 'https://go.elementor.com/go-pro-sticky-widget-panel/',
'message' => __( 'Access all Pro widgets.', 'elementor' ),
'button_text' => __( 'Upgrade Now', 'elementor' ),
];
$promotion_data_sticky = Filtered_Promotions_Manager::get_filtered_promotion_data( $promotion_data_sticky, 'elementor/editor/panel/get_pro_details-sticky', 'url' );
$has_pro = Utils::has_pro();
?>
<div id="elementor-panel-get-pro-elements" class="elementor-nerd-box">
<img class="elementor-nerd-box-icon" src="<?php echo ELEMENTOR_ASSETS_URL . 'images/go-pro.svg'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>" loading="lazy" alt="<?php echo esc_attr__( 'Upgrade', 'elementor' ); ?>" />
<div class="elementor-nerd-box-message"><?php echo esc_html( $get_pro_details['message'] ); ?></div>
<a class="elementor-button go-pro" target="_blank" href="<?php echo esc_url( $get_pro_details['link'] ); ?>"><?php echo esc_html( $get_pro_details['button_text'] ); ?></a>
</div>
<?php if ( ! $has_pro ) : ?>
<div id="elementor-panel-get-pro-elements-sticky">
<img class="elementor-nerd-box-icon" src="<?php echo ELEMENTOR_ASSETS_URL . 'images/unlock-sticky.svg'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>" loading="lazy" alt="<?php echo esc_attr__( 'Upgrade', 'elementor' ); ?>"/>
<div class="elementor-get-pro-sticky-message">
<?php echo esc_html( $promotion_data_sticky['message'] ); ?>
<a target="_blank" href="<?php echo esc_url( $promotion_data_sticky['url'] ); ?>"><?php echo esc_html( $promotion_data_sticky['button_text'] ); ?></a>
</div>
</div>
<?php endif; ?>
</script>
<script type="text/template" id="tmpl-elementor-panel-elements-category">
<button class="elementor-panel-heading elementor-panel-category-title">
<span class="elementor-panel-heading-toggle">
<i class="eicon-caret-right" aria-hidden="true"></i>
</span>
<span class="elementor-panel-heading-title">{{{ title }}}</span>
<?php do_action( 'elementor/editor/templates/panel/category' ); ?>
<# if ( 'undefined' !== typeof promotion && promotion ) { #>
<span class="elementor-panel-heading-promotion">
<a href="{{{ promotion.url }}}" target="_blank">
<i class="eicon-upgrade-crown"></i><?php echo esc_html__( 'Upgrade', 'elementor' ); ?>
</a>
</span>
<# } #>
</button>
<div class="elementor-panel-category-items elementor-responsive-panel"></div>
</script>
<script type="text/template" id="tmpl-elementor-panel-element-search">
<label for="elementor-panel-elements-search-input" class="screen-reader-text"><?php echo esc_html__( 'Search Widget:', 'elementor' ); ?></label>
<input type="search" id="elementor-panel-elements-search-input" placeholder="<?php esc_attr_e( 'Search Widget...', 'elementor' ); ?>" autocomplete="off"/>
<i class="eicon-search-bold" aria-hidden="true"></i>
</script>
<script type="text/template" id="tmpl-elementor-element-library-element">
<button class="elementor-element">
<# if ( obj.integration ) { #>
<i class="eicon-plug"></i>
<# } else if ( false === obj.editable ) { #>
<i class="eicon-lock"></i>
<# } #>
<# if ( obj.categories.includes( 'v4-elements' ) ) { #>
<i class="eicon-atomic"></i>
<# } #>
<div class="icon">
<i class="{{ icon }}" aria-hidden="true"></i>
</div>
<div class="title-wrapper">
<div class="title">{{{ title }}}</div>
</div>
</button>
</script>
<script type="text/template" id="tmpl-elementor-panel-global">
<div class="elementor-nerd-box">
<img class="elementor-nerd-box-icon" src="<?php echo ELEMENTOR_ASSETS_URL . 'images/information.svg'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>" loading="lazy" alt="<?php echo esc_attr__( 'Elementor', 'elementor' ); ?>" />
<div class="elementor-nerd-box-title"><?php echo esc_html__( 'Meet Our Global Widget', 'elementor' ); ?></div>
<div class="elementor-nerd-box-message"><?php echo esc_html__( 'With this feature, you can save a widget as global, then add it to multiple areas. All areas will be editable from one single place.', 'elementor' ); ?></div>
<a class="elementor-button go-pro" target="_blank" href="https://go.elementor.com/pro-global/"><?php echo esc_html__( 'Upgrade Now', 'elementor' ); ?></a>
</div>
</script>

View File

@@ -0,0 +1,326 @@
<?php
namespace Elementor;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
$document = Plugin::$instance->documents->get( Plugin::$instance->editor->get_post_id() );
?>
<script type="text/template" id="tmpl-elementor-panel">
<div id="elementor-panel-state-loading">
<i class="eicon-loading eicon-animation-spin"></i>
</div>
<header id="elementor-panel-header-wrapper"></header>
<main id="elementor-panel-content-wrapper"></main>
<footer id="elementor-panel-footer">
<div class="elementor-panel-container"></div>
</footer>
<div id="elementor-mode-switcher"></div>
</script>
<script type="text/template" id="tmpl-elementor-panel-menu">
<div id="elementor-panel-page-menu-content"></div>
<# if ( elementor.config.document.panel.needHelpUrl ) { #>
<div id="elementor-panel__editor__help">
<a id="elementor-panel__editor__help__link" href="{{{ elementor.config.document.panel.needHelpUrl }}}" target="_blank">
<?php echo esc_html__( 'Need Help', 'elementor' ); ?>
<i class="eicon-help-o" aria-hidden="true"></i>
</a>
</div>
<# } #>
</script>
<script type="text/template" id="tmpl-elementor-panel-menu-group">
<div class="elementor-panel-menu-group-title">{{{ title }}}</div>
<div class="elementor-panel-menu-items"></div>
</script>
<script type="text/template" id="tmpl-elementor-panel-menu-item">
<div class="elementor-panel-menu-item-icon">
<i class="{{ icon }}"></i>
</div>
<# if ( 'undefined' === typeof type || 'link' !== type ) { #>
<div class="elementor-panel-menu-item-title">{{{ title }}}</div>
<# } else {
let target = ( 'undefined' !== typeof newTab && newTab ) ? '_blank' : '_self';
#>
<a href="{{ link }}" target="{{ target }}"><div class="elementor-panel-menu-item-title">{{{ title }}}</div></a>
<# } #>
</script>
<script type="text/template" id="tmpl-elementor-exit-dialog">
<div><?php echo esc_html__( 'Now you can choose where you want to go on the site from the following options', 'elementor' ); ?></div>
<div>
<?php printf(
/* translators: 1: Opening HTML <a> tag, 2: closing HTML <a> tag. */
esc_html__( 'Any time you can change the settings in %1$sUser Preferences%2$s', 'elementor' ),
'<a id="user-preferences">',
'</a>'
); ?>
</div>
<select id="exit-to-preferences"></select> <!-- Adding options by JS -->
</script>
<script type="text/template" id="tmpl-elementor-panel-header">
<button id="elementor-panel-header-menu-button" class="elementor-header-button" aria-label="<?php echo esc_attr__( 'Menu', 'elementor' ); ?>">
<i class="elementor-icon eicon-menu-bar tooltip-target" aria-hidden="true" data-tooltip="<?php echo esc_attr__( 'Menu', 'elementor' ); ?>"></i>
</button>
<h2 id="elementor-panel-header-title"></h2>
<# const extraClass = $e.components.get( 'document/elements' ).utils.allowAddingWidgets() ? '' : 'elementor-visibility-hidden'; #>
<button id="elementor-panel-header-add-button" class="elementor-header-button {{{ extraClass }}}" aria-label="<?php echo esc_attr__( 'Widgets Panel', 'elementor' ); ?>">
<i class="elementor-icon eicon-apps tooltip-target" aria-hidden="true" data-tooltip="<?php echo esc_attr__( 'Widgets Panel', 'elementor' ); ?>"></i>
</button>
</script>
<script type="text/template" id="tmpl-elementor-panel-footer-content">
<button id="elementor-panel-footer-settings" class="elementor-panel-footer-tool elementor-leave-open tooltip-target" data-tooltip="<?php echo esc_attr__( 'Settings', 'elementor' ); ?>" aria-label="<?php
printf(
/* translators: %s: Document title. */
esc_attr__( '%s Settings', 'elementor' ),
esc_attr( $document::get_title() )
); ?>">
<i class="eicon-cog" aria-hidden="true"></i>
</button>
<# if ( $e.components.get( 'document/elements' ).utils.showNavigator() ) { #>
<button id="elementor-panel-footer-navigator" class="elementor-panel-footer-tool tooltip-target" data-tooltip="<?php echo esc_attr__( 'Structure', 'elementor' ); ?>" aria-label="<?php echo esc_attr__( 'Structure', 'elementor' ); ?>">
<i class="eicon-navigator" aria-hidden="true"></i>
</button>
<# } #>
<button id="elementor-panel-footer-history" class="elementor-panel-footer-tool elementor-leave-open tooltip-target" data-tooltip="<?php echo esc_attr__( 'History', 'elementor' ); ?>" aria-label="<?php echo esc_attr__( 'History', 'elementor' ); ?>">
<i class="eicon-history" aria-hidden="true"></i>
</button>
<button id="elementor-panel-footer-responsive" class="elementor-panel-footer-tool elementor-toggle-state tooltip-target" data-tooltip="<?php echo esc_attr__( 'Responsive Mode', 'elementor' ); ?>" aria-label="<?php echo esc_attr__( 'Responsive Mode', 'elementor' ); ?>">
<i class="eicon-device-responsive" aria-hidden="true"></i>
</button>
<button id="elementor-panel-footer-saver-preview" class="elementor-panel-footer-tool tooltip-target" data-tooltip="<?php echo esc_attr__( 'Preview Changes', 'elementor' ); ?>" aria-label="<?php echo esc_attr__( 'Preview Changes', 'elementor' ); ?>">
<span id="elementor-panel-footer-saver-preview-label">
<i class="eicon-preview-medium" aria-hidden="true"></i>
</span>
</button>
<div id="elementor-panel-footer-saver-publish" class="elementor-panel-footer-tool">
<# const publishTitle = $e.components.get( 'document/elements' ).utils.getTitleForPublishButton(); #>
<button id="elementor-panel-saver-button-publish" class="elementor-button e-primary elementor-disabled" title="{{{ publishTitle }}}">
<span class="elementor-state-icon">
<i class="eicon-loading eicon-animation-spin" aria-hidden="true"></i>
</span>
<span id="elementor-panel-saver-button-publish-label">
<?php echo esc_html__( 'Publish', 'elementor' ); ?>
</span>
</button>
</div>
<div id="elementor-panel-footer-saver-options" class="elementor-panel-footer-tool elementor-toggle-state">
<button id="elementor-panel-saver-button-save-options" class="elementor-button e-primary tooltip-target elementor-disabled" data-tooltip="<?php echo esc_attr__( 'Save Options', 'elementor' ); ?>" data-tooltip-offset="7" aria-label="<?php echo esc_attr__( 'Save Options', 'elementor' ); ?>">
<i class="eicon-chevron-right" aria-hidden="true"></i>
</button>
<div class="elementor-panel-footer-sub-menu-wrapper">
<p class="elementor-last-edited-wrapper">
<span class="elementor-state-icon">
<i class="eicon-loading eicon-animation-spin" aria-hidden="true"></i>
</span>
<span class="elementor-last-edited">
</span>
</p>
<div class="elementor-panel-footer-sub-menu">
<div id="elementor-panel-footer-sub-menu-item-save-draft" class="elementor-panel-footer-sub-menu-item elementor-disabled">
<i class="elementor-icon eicon-save" aria-hidden="true"></i>
<span class="elementor-title"><?php echo esc_html__( 'Save Draft', 'elementor' ); ?></span>
</div>
<div id="elementor-panel-footer-sub-menu-item-save-template" class="elementor-panel-footer-sub-menu-item">
<i class="elementor-icon eicon-folder" aria-hidden="true"></i>
<span class="elementor-title"><?php echo esc_html__( 'Save as Template', 'elementor' ); ?></span>
</div>
<# if ( $e.components.get( 'document/elements' ).utils.showCopyAndShareButton() ) { #>
<div id="elementor-panel-footer-sub-menu-item-copy-share-link" class="elementor-panel-footer-sub-menu-item">
<i class="elementor-icon eicon-link" aria-hidden="true"></i>
<span class="elementor-title"><?php echo esc_html__( 'Copy and Share Link', 'elementor' ); ?></span>
</div>
<# } #>
</div>
</div>
</div>
</script>
<script type="text/template" id="tmpl-elementor-mode-switcher-content">
<label for="elementor-mode-switcher-preview-input" id="elementor-mode-switcher-preview" title="<?php echo esc_attr__( 'Hide Panel', 'elementor' ); ?>">
<i class="eicon eicon-angle-left" aria-hidden="true" tabindex="0"></i>
<span class="elementor-screen-only"><?php echo esc_html__( 'Hide Panel', 'elementor' ); ?></span>
</label>
<input id="elementor-mode-switcher-preview-input" type="checkbox">
</script>
<script type="text/template" id="tmpl-editor-content">
<div class="elementor-panel-navigation">
<# _.each( elementData.tabs_controls, function( tabTitle, tabSlug ) {
if ( 'content' !== tabSlug && ! elementor.userCan( 'design' ) ) {
return;
}
$e.bc.ensureTab( 'panel/editor', tabSlug );
#>
<button class="elementor-component-tab elementor-panel-navigation-tab elementor-tab-control-{{ tabSlug }}" data-tab="{{ tabSlug }}">
<span>{{{ tabTitle }}}</span>
</button>
<# } ); #>
</div>
<# if ( elementData.reload_preview ) { #>
<div class="elementor-update-preview">
<div class="elementor-update-preview-title"><?php echo esc_html__( 'Update changes to page', 'elementor' ); ?></div>
<div class="elementor-update-preview-button-wrapper">
<button class="elementor-update-preview-button elementor-button"><?php echo esc_html__( 'Apply', 'elementor' ); ?></button>
</div>
</div>
<# } #>
<div id="elementor-controls"></div>
<# if ( elementData.help_url ) { #>
<div id="elementor-panel__editor__help">
<a id="elementor-panel__editor__help__link" href="{{ elementData.help_url }}" target="_blank">
<?php echo esc_html__( 'Need Help', 'elementor' ); ?>
<i class="eicon-help-o" aria-hidden="true"></i>
</a>
</div>
<# } #>
<# if ( elementData.upsale_data && elementData.upsale_data.condition ) { #>
<div class="elementor-nerd-box elementor-nerd-box--upsale">
<# if ( elementData.upsale_data.image ) { #>
<img class="elementor-nerd-box-icon" src="{{ elementData.upsale_data.image }}" loading="lazy" alt="{{ elementData.upsale_data.image_alt }}" />
<# } #>
<# if ( elementData.upsale_data.title ) { #>
<div class="elementor-nerd-box-title">{{{ elementData.upsale_data.title }}}</div>
<# } #>
<# if ( elementData.upsale_data.description ) { #>
<div class="elementor-nerd-box-message">{{{ elementData.upsale_data.description }}}</div>
<# } #>
<# if ( elementData.upsale_data.upgrade_url && elementData.upsale_data.upgrade_text ) { #>
<a class="elementor-button go-pro" href="{{ elementData.upsale_data.upgrade_url }}" target="_blank">{{{ elementData.upsale_data.upgrade_text }}}</a>
<# } #>
</div>
<# } #>
</script>
<script type="text/template" id="tmpl-elementor-panel-schemes-disabled">
<img class="elementor-nerd-box-icon" src="<?php Utils::print_unescaped_internal_string( ELEMENTOR_ASSETS_URL . 'images/information.svg' ); ?>" loading="lazy" alt="<?php echo esc_attr__( 'Elementor', 'elementor' ); ?>" />
<div class="elementor-nerd-box-title">{{{ '<?php echo esc_html__( '%s are disabled', 'elementor' ); // phpcs:ignore WordPress.WP.I18n.MissingTranslatorsComment ?>'.replace( '%s', disabledTitle ) }}}</div>
<div class="elementor-nerd-box-message"><?php
printf(
/* translators: %1$s Link open tag, %2$s: Link close tag. */
esc_html__( 'You can enable it from the %1$sElementor settings page%2$s.', 'elementor' ),
'<a href="' . esc_url( Settings::get_url() ) . '" target="_blank">',
'</a>'
);
?></div>
</script>
<script type="text/template" id="tmpl-elementor-panel-scheme-color-item">
<div class="elementor-panel-scheme-color-picker-placeholder"></div>
<div class="elementor-panel-scheme-color-title">{{{ title }}}</div>
</script>
<script type="text/template" id="tmpl-elementor-panel-scheme-typography-item">
<div class="elementor-panel-heading">
<div class="elementor-panel-heading-toggle">
<i class="eicon-caret-right" aria-hidden="true"></i>
</div>
<div class="elementor-panel-heading-title">{{{ title }}}</div>
</div>
<div class="elementor-panel-scheme-typography-items elementor-panel-box-content">
<?php
$scheme_fields_keys = Group_Control_Typography::get_scheme_fields_keys();
$typography_group = Plugin::$instance->controls_manager->get_control_groups( 'typography' );
$typography_fields = $typography_group->get_fields();
$scheme_fields = array_intersect_key( $typography_fields, array_flip( $scheme_fields_keys ) );
foreach ( $scheme_fields as $option_name => $option ) :
?>
<div class="elementor-panel-scheme-typography-item elementor-control elementor-control-type-select">
<div class="elementor-panel-scheme-item-title elementor-control-title"><?php echo esc_html( $option['label'] ); ?></div>
<div class="elementor-panel-scheme-typography-item-value elementor-control-input-wrapper">
<?php if ( 'select' === $option['type'] ) : ?>
<select name="<?php echo esc_attr( $option_name ); ?>" class="elementor-panel-scheme-typography-item-field">
<?php foreach ( $option['options'] as $field_key => $field_value ) : ?>
<option value="<?php echo esc_attr( $field_key ); ?>"><?php echo esc_html( $field_value ); ?></option>
<?php endforeach; ?>
</select>
<?php elseif ( 'font' === $option['type'] ) : ?>
<select name="<?php echo esc_attr( $option_name ); ?>" class="elementor-panel-scheme-typography-item-field">
<option value=""><?php echo esc_html__( 'Default', 'elementor' ); ?></option>
<?php foreach ( Fonts::get_font_groups() as $group_type => $group_label ) : ?>
<optgroup label="<?php echo esc_attr( $group_label ); ?>">
<?php foreach ( Fonts::get_fonts_by_groups( [ $group_type ] ) as $font_title => $font_type ) : ?>
<option value="<?php echo esc_attr( $font_title ); ?>"><?php echo esc_html( $font_title ); ?></option>
<?php endforeach; ?>
</optgroup>
<?php endforeach; ?>
</select>
<?php elseif ( 'text' === $option['type'] ) : ?>
<input name="<?php echo esc_attr( $option_name ); ?>" class="elementor-panel-scheme-typography-item-field" />
<?php endif; ?>
</div>
</div>
<?php endforeach; ?>
</div>
</script>
<script type="text/template" id="tmpl-elementor-control-responsive-switchers">
<div class="elementor-control-responsive-switchers">
<div class="elementor-control-responsive-switchers__holder">
<#
const activeBreakpoints = elementor.config.responsive.activeBreakpoints,
devicesForDisplay = elementor.breakpoints.getActiveBreakpointsList( { largeToSmall: true, withDesktop: true } );
var devices = responsive.devices || devicesForDisplay;
_.each( devices, function( device ) {
// The 'Desktop' label is made accessible via the global config because it needs to be translated.
var deviceLabel = 'desktop' === device ? '<?php esc_html_e( 'Desktop', 'elementor' ); ?>' : activeBreakpoints[ device ].label,
tooltipDir = "<?php echo is_rtl() ? 'e' : 'w'; ?>";
#>
<button class="elementor-responsive-switcher tooltip-target elementor-responsive-switcher-{{ device }}" data-device="{{ device }}" data-tooltip="{{ deviceLabel }}" data-tooltip-pos="{{ tooltipDir }}" aria-label="{{ deviceLabel }}">
<i class="{{ elementor.config.responsive.icons_map[ device ] }}" aria-hidden="true"></i>
</button>
<# } );
#>
</div>
</div>
</script>
<script type="text/template" id="tmpl-elementor-control-dynamic-switcher">
<button class="elementor-control-dynamic-switcher elementor-control-unit-1" data-tooltip="<?php echo esc_attr__( 'Dynamic Tags', 'elementor' ); ?>" aria-label="<?php echo esc_attr__( 'Dynamic Tags', 'elementor' ); ?>">
<i class="eicon-database" aria-hidden="true"></i>
</button>
</script>
<script type="text/template" id="tmpl-elementor-control-element-color-picker">
<button class="elementor-control-element-color-picker e-control-tool" data-tooltip="<?php echo esc_attr__( 'Color Sampler', 'elementor' ); ?>" aria-label="<?php echo esc_attr__( 'Color Sampler', 'elementor' ); ?>">
<i class="eicon-eyedropper" aria-hidden="true"></i>
</button>
</script>
<script type="text/template" id="tmpl-elementor-control-dynamic-cover">
<div class="elementor-dynamic-cover__settings">
<i class="eicon-{{ hasSettings ? 'wrench' : 'database' }}"></i>
</div>
<div class="elementor-dynamic-cover__title" title="{{{ title + ' ' + content }}}">{{{ title + ' ' + content }}}</div>
<# if ( isRemovable ) { #>
<div class="elementor-dynamic-cover__remove">
<i class="eicon-close-circle"></i>
</div>
<# } #>
</script>
<script type="text/template" id="tmpl-elementor-dynamic-tags-promo">
<div class="elementor-tags-list__teaser">
<div class="elementor-tags-list__group-title elementor-tags-list__teaser-title">
<i class="eicon-info-circle"></i><?php echo esc_html__( 'Elementor Dynamic Content', 'elementor' ); ?>
</div>
<div class="elementor-tags-list__teaser-text">
<?php echo esc_html__( 'Youre missing out!', 'elementor' ); ?><br />
<?php echo esc_html__( 'Get more dynamic capabilities by incorporating dozens of Elementor\'s native dynamic tags.', 'elementor' ); ?>
<a href="{{{ promotionUrl }}}" class="elementor-tags-list__teaser-link" target="_blank">
<?php echo esc_html__( 'Upgrade', 'elementor' ); ?>
</a>
</div>
</div>
</script>

View File

@@ -0,0 +1,29 @@
<?php
namespace Elementor;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
?>
<script type="text/template" id="tmpl-elementor-repeater-row">
<div class="elementor-repeater-row-tools">
<# if ( itemActions.drag_n_drop ) { #>
<button class="elementor-repeater-row-handle-sortable" aria-label="<?php echo esc_attr__( 'Drag & Drop', 'elementor' ); ?>">
<i class="eicon-ellipsis-v" aria-hidden="true"></i>
</button>
<# } #>
<button class="elementor-repeater-row-item-title"></button>
<# if ( itemActions.duplicate ) { #>
<button class="elementor-repeater-row-tool elementor-repeater-tool-duplicate" aria-label="<?php echo esc_attr__( 'Duplicate', 'elementor' ); ?>">
<i class="eicon-copy" aria-hidden="true"></i>
</button>
<# }
if ( itemActions.remove ) { #>
<button class="elementor-repeater-row-tool elementor-repeater-tool-remove" aria-label="<?php echo esc_attr__( 'Remove', 'elementor' ); ?>">
<i class="eicon-close" aria-hidden="true"></i>
</button>
<# } #>
</div>
<div class="elementor-repeater-row-controls"></div>
</script>

View File

@@ -0,0 +1,69 @@
<?php
namespace Elementor;
use Elementor\Core\Breakpoints\Breakpoint;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
// TODO: Use API data instead of this static array, once it is available.
$active_breakpoints = Plugin::$instance->breakpoints->get_active_breakpoints();
$active_devices = Plugin::$instance->breakpoints->get_active_devices_list( [ 'reverse' => true ] );
$breakpoint_classes_map = array_intersect_key( Plugin::$instance->breakpoints->get_responsive_icons_classes_map(), array_flip( $active_devices ) );
?>
<script type="text/template" id="tmpl-elementor-templates-responsive-bar">
<div id="e-responsive-bar__center">
<div id="e-responsive-bar-switcher" class="e-responsive-bar--pipe">
<?php foreach ( $active_devices as $device_key ) {
if ( 'desktop' === $device_key ) {
$tooltip_label = esc_html__( 'Desktop <br> Settings added for the base device will apply to all breakpoints unless edited', 'elementor' );
} elseif ( 'widescreen' === $device_key ) {
$tooltip_label = sprintf(
/* translators: %d: Breakpoint screen size. */
esc_html__( 'Widescreen <br> Settings added for the Widescreen device will apply to screen sizes %dpx and up', 'elementor' ),
$active_breakpoints[ $device_key ]->get_value()
);
} else {
$tooltip_label = sprintf(
/* translators: %1$s: Device name, %2$s: Breakpoint screen size. */
esc_html__( '%1$s <br> Settings added for the %1$s device will apply to %2$spx screens and down', 'elementor' ),
$active_breakpoints[ $device_key ]->get_label(), $active_breakpoints[ $device_key ]->get_value()
);
}
printf( '<label
id="e-responsive-bar-switcher__option-%1$s"
class="e-responsive-bar-switcher__option"
for="e-responsive-bar-switch-%1$s"
data-tooltip="%2$s">
<input type="radio" name="breakpoint" id="e-responsive-bar-switch-%1$s" value="%1$s">
<i class="%3$s" aria-hidden="true"></i>
<span class="screen-reader-text">%2$s</span>
</label>', esc_attr( $device_key ), esc_attr( $tooltip_label ), esc_attr( $breakpoint_classes_map[ $device_key ] ) );
} ?>
</div>
<div id="e-responsive-bar-scale">
<div id="e-responsive-bar-scale__minus"></div>
<div id="e-responsive-bar-scale__value-wrapper"><span id="e-responsive-bar-scale__value">100</span>%</div>
<div id="e-responsive-bar-scale__plus"><i class="eicon-plus" aria-hidden="true"></i></div>
<div id="e-responsive-bar-scale__reset"><i class="eicon-undo" aria-hidden="true"></i></div>
</div>
</div>
<div id="e-responsive-bar__end">
<div id="e-responsive-bar__size-inputs-wrapper" class="e-flex e-align-items-center">
<label for="e-responsive-bar__input-width">W</label>
<input type="number" id="e-responsive-bar__input-width" class="e-responsive-bar__input-size" autocomplete="off">
<label for="e-responsive-bar__input-height">H</label>
<input type="number" id="e-responsive-bar__input-height" class="e-responsive-bar__input-size" autocomplete="off">
</div>
<button id="e-responsive-bar__settings-button" class="e-responsive-bar__button e-responsive-bar--pipe" data-tooltip="<?php echo esc_attr__( 'Manage Breakpoints', 'elementor' ); ?>" aria-label="<?php echo esc_attr__( 'Manage Breakpoints', 'elementor' ); ?>">
<i class="eicon-cog" aria-hidden="true"></i>
</button>
<button id="e-responsive-bar__close-button" class="e-responsive-bar__button" data-tooltip="<?php echo esc_attr__( 'Close', 'elementor' ); ?>" aria-label="<?php echo esc_attr__( 'Close', 'elementor' ); ?>">
<i class="eicon-close" aria-hidden="true"></i>
</button>
</div>
</script>

View File

@@ -0,0 +1,633 @@
<?php
namespace Elementor;
use Elementor\Plugin;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
?>
<script type="text/template" id="tmpl-elementor-template-library-header-actions">
<?php if ( User::is_current_user_can_upload_json() ) { ?>
<div id="elementor-template-library-header-import" class="elementor-templates-modal__header__item">
<i class="eicon-upload-circle-o" aria-hidden="true"></i>
<span class="elementor-screen-only"><?php echo esc_html__( 'Import Template', 'elementor' ); ?></span>
</div>
<?php } ?>
<div id="elementor-template-library-header-sync" class="elementor-templates-modal__header__item">
<i class="eicon-sync" aria-hidden="true"></i>
<span class="elementor-screen-only"><?php echo esc_html__( 'Sync Library', 'elementor' ); ?></span>
</div>
<div id="elementor-template-library-header-save" class="elementor-templates-modal__header__item">
<i class="eicon-save-o" aria-hidden="true"></i>
<span class="elementor-screen-only"><?php echo esc_html__( 'Save', 'elementor' ); ?></span>
</div>
</script>
<script type="text/template" id="tmpl-elementor-template-library-header-menu">
<# jQuery.each( tabs, ( tab, args ) => { #>
<div class="elementor-component-tab elementor-template-library-menu-item" data-tab="{{{ tab }}}">{{{ args.title }}}</div>
<# } ); #>
</script>
<script type="text/template" id="tmpl-elementor-template-library-header-preview">
<div id="elementor-template-library-header-preview-insert-wrapper" class="elementor-templates-modal__header__item">
{{{ elementor.templates.layout.getTemplateActionButton( obj ) }}}
</div>
</script>
<script type="text/template" id="tmpl-elementor-template-library-header-back">
<i class="eicon-chevron-left" aria-hidden="true"></i>
<span><?php echo esc_html__( 'Back to Library', 'elementor' ); ?></span>
</script>
<script type="text/template" id="tmpl-elementor-template-library-loading">
<div class="elementor-loader-wrapper">
<div class="elementor-loader">
<div class="elementor-loader-boxes">
<div class="elementor-loader-box"></div>
<div class="elementor-loader-box"></div>
<div class="elementor-loader-box"></div>
<div class="elementor-loader-box"></div>
</div>
</div>
<div class="elementor-loading-title"><?php echo esc_html__( 'Loading', 'elementor' ); ?></div>
</div>
</script>
<script type="text/template" id="tmpl-elementor-template-library-templates">
<#
var activeSource = elementor.templates.getFilter('source');
/**
* Filter template source.
*
* @param bool isRemote - If `true` the source is a remote source.
* @param string activeSource - The current template source.
*/
const isRemote = elementor.hooks.applyFilters( 'templates/source/is-remote', activeSource === 'remote', activeSource );
#>
<div id="elementor-template-library-toolbar">
<# if ( isRemote ) {
var activeType = elementor.templates.getFilter('type');
#>
<div id="elementor-template-library-filter-toolbar-remote" class="elementor-template-library-filter-toolbar">
<# if ( 'page' === activeType ) { #>
<div id="elementor-template-library-order">
<input type="radio" id="elementor-template-library-order-new" class="elementor-template-library-order-input" name="elementor-template-library-order" value="date">
<label for="elementor-template-library-order-new" class="elementor-template-library-order-label"><?php echo esc_html__( 'New', 'elementor' ); ?></label>
<input type="radio" id="elementor-template-library-order-trend" class="elementor-template-library-order-input" name="elementor-template-library-order" value="trendIndex">
<label for="elementor-template-library-order-trend" class="elementor-template-library-order-label"><?php echo esc_html__( 'Trend', 'elementor' ); ?></label>
<input type="radio" id="elementor-template-library-order-popular" class="elementor-template-library-order-input" name="elementor-template-library-order" value="popularityIndex">
<label for="elementor-template-library-order-popular" class="elementor-template-library-order-label"><?php echo esc_html__( 'Popular', 'elementor' ); ?></label>
</div>
<# } else if ( 'lb' !== activeType ) {
var config = elementor.templates.getConfig( activeType );
if ( config.categories ) { #>
<div id="elementor-template-library-filter">
<select id="elementor-template-library-filter-subtype" class="elementor-template-library-filter-select" data-elementor-filter="subtype">
<option></option>
<# config.categories.forEach( function( category ) {
var selected = category === elementor.templates.getFilter( 'subtype' ) ? ' selected' : '';
#>
<option value="{{ category }}"{{{ selected }}}>{{{ category }}}</option>
<# } ); #>
</select>
</div>
<# }
} #>
<div id="elementor-template-library-my-favorites">
<# var checked = elementor.templates.getFilter( 'favorite' ) ? ' checked' : ''; #>
<input id="elementor-template-library-filter-my-favorites" type="checkbox"{{{ checked }}}>
<label id="elementor-template-library-filter-my-favorites-label" for="elementor-template-library-filter-my-favorites">
<i class="eicon" aria-hidden="true"></i>
<?php echo esc_html__( 'My Favorites', 'elementor' ); ?>
</label>
</div>
</div>
<# } else { #>
<div id="elementor-template-library-filter-toolbar-local" class="elementor-template-library-filter-toolbar">
<div id="elementor-template-library-filter">
<div class="elementor-template-library-filter-select-source">
<div class="source-option<# if ( activeSource === 'local' ) { #> selected<# } #>" data-source="local">
<i class="eicon-header" aria-hidden="true"></i>
<?php echo esc_html__( 'Site templates', 'elementor' ); ?>
</div>
<div class="source-option<# if ( activeSource === 'cloud' ) { #> selected<# } #>" data-source="cloud">
<i class="eicon-library-cloud-empty" aria-hidden="true"></i>
<?php echo esc_html__( 'Cloud templates', 'elementor' ); ?>
<#
const tabIcon = elementor.templates.hasCloudLibraryQuota()
? '<span class="new-badge"><?php echo esc_html__( 'New', 'elementor' ); ?></span>'
: '<span class="new-badge"><i class="eicon-upgrade-crown" style="margin-inline-end: 0;"></i> <?php echo esc_html__( 'Pro', 'elementor' ); ?></span>';
print( tabIcon );
#>
</div>
</div>
</div>
</div>
<# } #>
<div class="elementor-template-library-filter-toolbar-side-actions">
<# if ( 'cloud' === activeSource ) { #>
<div id="elementor-template-library-add-new-folder" class="elementor-template-library-action-item">
<i class="eicon-folder-plus" aria-hidden="true"></i>
<span class="elementor-screen-only"><?php echo esc_html__( 'Create a New Folder', 'elementor' ); ?></span>
</div>
<span class="divider"></span>
<div id="elementor-template-library-view-grid" class="elementor-template-library-action-item">
<i class="eicon-library-grid" aria-hidden="true"></i>
<span class="elementor-screen-only"><?php echo esc_html__( 'Grid view', 'elementor' ); ?></span>
</div>
<div id="elementor-template-library-view-list" class="elementor-template-library-action-item">
<i class="eicon-library-list" aria-hidden="true"></i>
<span class="elementor-screen-only"><?php echo esc_html__( 'List view', 'elementor' ); ?></span>
</div>
<# } #>
<div id="elementor-template-library-filter-text-wrapper">
<label for="elementor-template-library-filter-text" class="elementor-screen-only"><?php echo esc_html__( 'Search Templates:', 'elementor' ); ?></label>
<input id="elementor-template-library-filter-text" placeholder="<?php echo esc_attr__( 'Search', 'elementor' ); ?>">
<i class="eicon-search"></i>
</div>
</div>
</div>
<# if ( 'local' === activeSource || 'cloud' === activeSource ) { #>
<div class="toolbar-container">
<div class="bulk-selection-action-bar">
<span class="clear-bulk-selections"><i class="eicon-editor-close"></i></span>
<span class="selected-count"></span>
<# if ( elementor.templates.hasCloudLibraryQuota() && ! elementor.templates.cloudLibraryIsDeactivated() ) { #>
<span class="bulk-copy"><i class="eicon-library-copy" aria-hidden="true" title="<?php esc_attr_e( 'Copy', 'elementor' ); ?>"></i></span>
<span class="bulk-move"><i class="eicon-library-move" aria-hidden="true" title="<?php esc_attr_e( 'Move', 'elementor' ); ?>"></i></span>
<# } #>
<span class="bulk-delete"><i class="eicon-library-delete" aria-hidden="true" title="<?php esc_attr_e( 'Delete', 'elementor' ); ?>"></i></span>
</div>
<div id="elementor-template-library-navigation-container"></div>
<# if ( 'cloud' === activeSource ) { #>
<div class="quota-progress-container">
<span class="quota-progress-info">
<?php echo esc_html__( 'Usage', 'elementor' ); ?>
</span>
<div class="progress-bar-container">
<div class="quota-progress-bar quota-progress-bar-normal">
<div class="quota-progress-bar-fill"></div>
</div>
<span class="quota-warning"></span>
</div>
<div class="quota-progress-bar-value"></div>
</div>
<# } #>
</div>
<div id="elementor-template-library-order-toolbar-local">
<div class="elementor-template-library-local-column-1">
<input type="checkbox" id="bulk-select-all">
<input type="radio" id="elementor-template-library-order-local-title" class="elementor-template-library-order-input" name="elementor-template-library-order-local" value="title" data-default-ordering-direction="asc">
<label for="elementor-template-library-order-local-title" class="elementor-template-library-order-label"><?php echo esc_html__( 'Name', 'elementor' ); ?></label>
</div>
<div class="elementor-template-library-local-column-2">
<input type="radio" id="elementor-template-library-order-local-type" class="elementor-template-library-order-input" name="elementor-template-library-order-local" value="type" data-default-ordering-direction="asc">
<label for="elementor-template-library-order-local-type" class="elementor-template-library-order-label"><?php echo esc_html__( 'Type', 'elementor' ); ?></label>
</div>
<div class="elementor-template-library-local-column-3">
<# if ( 'cloud' !== activeSource ) { #>
<input type="radio" id="elementor-template-library-order-local-author" class="elementor-template-library-order-input" name="elementor-template-library-order-local" value="author" data-default-ordering-direction="asc">
<# } #>
<label for="elementor-template-library-order-local-author" class="elementor-template-library-order-label"><?php echo esc_html__( 'Created By', 'elementor' ); ?></label>
</div>
<div class="elementor-template-library-local-column-4">
<input type="radio" id="elementor-template-library-order-local-date" class="elementor-template-library-order-input" name="elementor-template-library-order-local" value="date">
<label for="elementor-template-library-order-local-date" class="elementor-template-library-order-label"><?php echo esc_html__( 'Creation Date', 'elementor' ); ?></label>
</div>
<div class="elementor-template-library-local-column-5">
<div class="elementor-template-library-order-label"><?php echo esc_html__( 'Actions', 'elementor' ); ?></div>
</div>
</div>
<# } #>
<div id="elementor-template-library-templates-container"></div>
<# if ( isRemote ) { #>
<div id="elementor-template-library-footer-banner">
<img class="elementor-nerd-box-icon" src="<?php
Utils::print_unescaped_internal_string( ELEMENTOR_ASSETS_URL . 'images/information.svg' );
?>" loading="lazy" alt="<?php echo esc_attr__( 'Elementor', 'elementor' ); ?>" />
<div class="elementor-excerpt"><?php echo esc_html__( 'Stay tuned! More awesome templates coming real soon.', 'elementor' ); ?></div>
</div>
<# } #>
<# if ( 'cloud' === activeSource ) { #>
<div id="elementor-template-library-load-more-anchor" class="elementor-visibility-hidden"><i class="eicon-loading eicon-animation-spin"></i></div>
<# } #>
</script>
<script type="text/template" id="tmpl-elementor-template-library-navigation-container">
<button class="elementor-template-library-navigation-back-button elementor-button e-button">
<i class="eicon-chevron-left"></i>
<?php echo esc_html__( 'Back', 'elementor' ); ?>
</button>
<span class="elementor-template-library-current-folder-title"></span>
</script>
<script type="text/template" id="tmpl-elementor-template-library-template-remote">
<div class="elementor-template-library-template-body">
<?php // 'lp' stands for Landing Pages Library type. ?>
<# if ( 'page' === type || 'lp' === type ) { #>
<div class="elementor-template-library-template-screenshot" style="background-image: url({{ thumbnail }});"></div>
<# } else { #>
<img src="{{ thumbnail }}" loading="lazy">
<# } #>
<div class="elementor-template-library-template-preview">
<i class="eicon-zoom-in-bold" aria-hidden="true"></i>
</div>
</div>
<div class="elementor-template-library-template-footer">
{{{ elementor.templates.layout.getTemplateActionButton( obj ) }}}
<div class="elementor-template-library-template-name">{{{ title }}} - {{{ type }}}</div>
<div class="elementor-template-library-favorite">
<input id="elementor-template-library-template-{{ template_id }}-favorite-input" class="elementor-template-library-template-favorite-input" type="checkbox"{{ favorite ? " checked" : "" }}>
<label for="elementor-template-library-template-{{ template_id }}-favorite-input" class="elementor-template-library-template-favorite-label">
<i class="eicon-heart-o" aria-hidden="true"></i>
<span class="elementor-screen-only"><?php echo esc_html__( 'Favorite', 'elementor' ); ?></span>
</label>
</div>
</div>
</script>
<script type="text/template" id="tmpl-elementor-template-library-template-local">
<#
const activeSource = elementor.templates.getFilter('source');
const view = elementor.templates.getFilter('view') ?? elementor.templates.getViewSelection() ?? 'list';
if ( ( 'cloud' === activeSource && view === 'list' ) || 'local' === activeSource ) {
#>
<div class="elementor-template-library-template-name elementor-template-library-local-column-1">
<input type="checkbox" class="bulk-selection-item-checkbox" data-template_id="{{ template_id }}" data-type="{{ type }}" data-status="{{ status }}">
<# if ( 'cloud' === activeSource ) {
const sourceIcon = typeof subType !== 'undefined' && 'FOLDER' === subType
? '<i class="eicon-library-folder" aria-hidden="true"></i>'
: 'locked' === status
? '<i class="eicon-lock-outline" aria-hidden="true" title="<?php esc_attr_e( 'Upgrade to get more storage space or delete old templates to make room.', 'elementor' ); ?>"></i>'
: '<i class="eicon-global-colors" aria-hidden="true"></i>';
print( sourceIcon );
} #>
<span>{{ title }}</span>
</div>
<div class="elementor-template-library-template-meta elementor-template-library-template-type elementor-template-library-local-column-2">{{{ elementor.translate( type ) }}}</div>
<div class="elementor-template-library-template-meta elementor-template-library-template-author elementor-template-library-local-column-3">{{{ author }}}</div>
<div class="elementor-template-library-template-meta elementor-template-library-template-date elementor-template-library-local-column-4">{{{ human_date }}}</div>
<div class="elementor-template-library-template-controls elementor-template-library-local-column-5">
<#
const previewClass = typeof subType !== 'undefined' && 'FOLDER' !== subType
? 'elementor-hidden'
: '';
#>
<div class="elementor-template-library-template-preview elementor-button e-btn-txt {{{previewClass}}}">
<#
const actionText = typeof subType === 'undefined' || 'FOLDER' !== subType
? '<?php echo esc_html__( 'Preview', 'elementor' ); ?>'
: '<?php echo esc_html__( 'Open', 'elementor' ); ?>';
#>
<i class="eicon-preview-medium" aria-hidden="true"></i>
<span class="elementor-template-library-template-control-title">{{{ actionText }}}</span>
</div>
<# if ( typeof subType === 'undefined' || 'FOLDER' !== subType ) { #>
<button class="elementor-template-library-template-action elementor-template-library-template-insert elementor-button e-primary e-btn-txt">
<i class="eicon-library-download" aria-hidden="true"></i>
<span class="elementor-button-title"><?php echo esc_html__( 'Insert', 'elementor' ); ?></span>
</button>
<# } #>
<div class="elementor-template-library-template-more-toggle">
<i class="eicon-ellipsis-h" aria-hidden="true"></i>
<span class="elementor-screen-only"><?php echo esc_html__( 'More actions', 'elementor' ); ?></span>
</div>
<div class="elementor-template-library-template-more">
<# if ( ( typeof subType === 'undefined' || 'FOLDER' !== subType ) && elementor.templates.hasCloudLibraryQuota() && ! elementor.templates.cloudLibraryIsDeactivated() ) { #>
<div class="elementor-template-library-template-move">
<i class="eicon-library-move" aria-hidden="true"></i>
<span class="elementor-template-library-template-control-title"><?php echo esc_html__( 'Move to', 'elementor' ); ?></span>
</div>
<div class="elementor-template-library-template-copy">
<i class="eicon-library-copy" aria-hidden="true"></i>
<span class="elementor-template-library-template-control-title"><?php echo esc_html__( 'Copy to', 'elementor' ); ?></span>
</div>
<# } #>
<div class="elementor-template-library-template-export">
<a href="{{ export_link }}">
<i class="eicon-library-download" aria-hidden="true"></i>
<span class="elementor-template-library-template-control-title"><?php echo esc_html__( 'Export', 'elementor' ); ?></span>
</a>
</div>
<div class="elementor-template-library-template-rename">
<i class="eicon-library-edit" aria-hidden="true"></i>
<span class="elementor-template-library-template-control-title"><?php echo esc_html__( 'Rename', 'elementor' ); ?></span>
</div>
<div class="elementor-template-library-template-delete">
<i class="eicon-library-delete" aria-hidden="true"></i>
<span class="elementor-template-library-template-control-title"><?php echo esc_html__( 'Delete', 'elementor' ); ?></span>
</div>
</div>
</div>
<# } else {
if ( typeof subType !== 'undefined' && 'FOLDER' === subType ) {
#>
<div class="elementor-template-library-template-type-icon">
<i class="eicon-library-folder-view" aria-hidden="true"></i>
<span class="elementor-screen-only"><?php echo esc_html__( 'Folder', 'elementor' ); ?></span>
</div>
<div class="elementor-template-library-template-name">
<span>{{ title }}</span>
</div>
<div class="elementor-template-library-template-more-toggle">
<i class="eicon-ellipsis-v" aria-hidden="true"></i>
<span class="elementor-screen-only"><?php echo esc_html__( 'More actions', 'elementor' ); ?></span>
</div>
<div class="elementor-template-library-template-more" style="display: none;">
<div class="elementor-template-library-template-export">
<a href="{{ export_link }}">
<i class="eicon-library-download" aria-hidden="true"></i>
<span class="elementor-template-library-template-control-title"><?php echo esc_html__( 'Export', 'elementor' ); ?></span>
</a>
</div>
<div class="elementor-template-library-template-rename">
<i class="eicon-library-edit" aria-hidden="true"></i>
<span class="elementor-template-library-template-control-title"><?php echo esc_html__( 'Rename', 'elementor' ); ?></span>
</div>
<div class="elementor-template-library-template-delete">
<i class="eicon-library-delete" aria-hidden="true"></i>
<span class="elementor-template-library-template-control-title"><?php echo esc_html__( 'Delete', 'elementor' ); ?></span>
</div>
</div>
<# } else { #>
<#
const imageSource = preview_url || '<?php echo esc_html( ELEMENTOR_ASSETS_URL . 'images/placeholder-cloud-grid.png' ); ?>';
#>
<div class="elementor-template-library-template-thumbnail">
<img src="{{{ imageSource }}}"/>
<div class="elementor-template-library-template-preview"></div>
</div>
<div class="elementor-template-library-card-footer">
<div class="elementor-template-library-template-name">
<# if ( 'locked' === status ) { #>
<i class="eicon-lock-outline" aria-hidden="true" title="<?php esc_attr_e( 'Upgrade to get more storage space or delete old templates to make room.', 'elementor' ); ?>"></i>
<# } #>
<span>{{ title }}</span>
</div>
<div class="elementor-template-library-template-card-footer-overlay">
<button class="elementor-template-library-template-action elementor-template-library-template-insert elementor-button e-primary">
<i class="eicon-library-download" aria-hidden="true"></i>
<span class="elementor-button-title"><?php echo esc_html__( 'Insert', 'elementor' ); ?></span>
</button>
<div class="elementor-template-library-template-card-footer-overlay-info">
<div class="elementor-template-library-template-meta">{{{ author }}}</div>
<div class="elementor-template-library-template-meta">{{{ human_date }}}</div>
</div>
</div>
<div class="elementor-template-library-template-more-toggle">
<i class="eicon-ellipsis-v" aria-hidden="true"></i>
<span class="elementor-screen-only"><?php echo esc_html__( 'More actions', 'elementor' ); ?></span>
</div>
<div class="elementor-template-library-template-more" style="display: none;">
<div class="elementor-template-library-template-move">
<i class="eicon-library-move" aria-hidden="true"></i>
<span class="elementor-template-library-template-control-title"><?php echo esc_html__( 'Move to', 'elementor' ); ?></span>
</div>
<div class="elementor-template-library-template-copy">
<i class="eicon-library-copy" aria-hidden="true"></i>
<span class="elementor-template-library-template-control-title"><?php echo esc_html__( 'Copy to', 'elementor' ); ?></span>
</div>
<div class="elementor-template-library-template-export">
<a href="{{ export_link }}">
<i class="eicon-library-download" aria-hidden="true"></i>
<span class="elementor-template-library-template-control-title"><?php echo esc_html__( 'Export', 'elementor' ); ?></span>
</a>
</div>
<div class="elementor-template-library-template-rename">
<i class="eicon-library-edit" aria-hidden="true"></i>
<span class="elementor-template-library-template-control-title"><?php echo esc_html__( 'Rename', 'elementor' ); ?></span>
</div>
<div class="elementor-template-library-template-delete">
<i class="eicon-library-delete" aria-hidden="true"></i>
<span class="elementor-template-library-template-control-title"><?php echo esc_html__( 'Delete', 'elementor' ); ?></span>
</div>
</div>
</div>
<# } } #>
</script>
<script type="text/template" id="tmpl-elementor-template-library-insert-button">
<a class="elementor-template-library-template-action elementor-template-library-template-insert elementor-button e-primary">
<i class="eicon-library-download" aria-hidden="true"></i>
<span class="elementor-button-title"><?php echo esc_html__( 'Insert', 'elementor' ); ?></span>
</a>
</script>
<script type="text/template" id="tmpl-elementor-template-library-apply-ai-button">
<a class="elementor-template-library-template-action elementor-template-library-template-apply-ai elementor-button e-primary">
<i class="eicon-file-download" aria-hidden="true"></i>
<span class="elementor-button-title"><?php echo esc_html__( 'Apply', 'elementor' ); ?></span>
</a>
</script>
<script type="text/template" id="tmpl-elementor-template-library-insert-and-ai-variations-buttons">
<a class="elementor-template-library-template-action elementor-template-library-template-insert elementor-button e-primary">
<i class="eicon-library-download" aria-hidden="true"></i>
<span class="elementor-button-title"><?php echo esc_html__( 'Insert', 'elementor' ); ?></span>
</a>
<a class="elementor-template-library-template-action elementor-template-library-template-generate-variation elementor-button e-btn-txt e-btn-txt-border">
<i class="eicon-ai" aria-hidden="true"></i>
<span class="elementor-button-title"><?php echo esc_html__( 'Generate Variations', 'elementor' ); ?></span>
</a>
</script>
<script type="text/template" id="tmpl-elementor-template-library-upgrade-plan-button">
<a
class="elementor-template-library-template-action elementor-button go-pro"
href="{{{ promotionLink }}}"
target="_blank"
>
<span class="elementor-button-title">{{{ promotionText }}}</span>
</a>
</script>
<script type="text/template" id="tmpl-elementor-template-library-save-template">
<div class="elementor-template-library-blank-icon">
<#
const templateIcon = typeof icon === 'undefined' ? '<i class="eicon-library-upload" aria-hidden="true"></i>' : icon;
print( templateIcon );
#>
<span class="elementor-screen-only"><?php echo esc_html__( 'Save', 'elementor' ); ?></span>
</div>
<div class="elementor-template-library-blank-title">{{{ title }}}</div>
<div class="elementor-template-library-blank-message">{{{ description }}}</div>
<form id="elementor-template-library-save-template-form">
<input type="hidden" name="post_id" value="<?php echo esc_attr( get_the_ID() ); ?>">
<# if ( typeof canSaveToCloud === 'undefined' || ! canSaveToCloud ) { #>
<input id="elementor-template-library-save-template-name" name="title" placeholder="<?php echo esc_attr__( 'Enter Template Name', 'elementor' ); ?>" required>
<button id="elementor-template-library-save-template-submit" class="elementor-button e-primary">
<span class="elementor-state-icon">
<i class="eicon-loading eicon-animation-spin" aria-hidden="true"></i>
</span>
<?php echo esc_html__( 'Save', 'elementor' ); ?>
</button>
<# } else { #>
<div class="cloud-library-form-inputs">
<input id="elementor-template-library-save-template-name" name="title" placeholder="<?php echo esc_attr__( 'Give your template a name', 'elementor' ); ?>" required>
<div class="source-selections">
<div class="cloud-folder-selection-dropdown">
<div class="cloud-folder-selection-dropdown-list"></div>
</div>
<div class="source-selections-input cloud">
<input type="checkbox" id="cloud" name="cloud" value="cloud">
<label for="cloud"> <?php echo esc_html__( 'Cloud Templates', 'elementor' ); ?></label> <span class="divider">/</span> <div class="ellipsis-container"><i class="eicon-ellipsis-h"></i></div>
<span class="selected-folder">
<span class="selected-folder-text"></span>
<i class="eicon-editor-close" aria-hidden="true"></i>
</span>
<# if ( elementor.config.library_connect.is_connected ) { #>
<#
const goLink = elementor.templates.hasCloudLibraryQuota()
? 'https://go.elementor.com/go-pro-cloud-templates-save-to-100-usage-badge'
: 'https://go.elementor.com/go-pro-cloud-templates-save-to-free-badge/';
#>
<span class="upgrade-badge">
<a href="{{{ goLink }}}" target="_blank">
<i class="eicon-upgrade-crown"></i><?php echo esc_html__( 'Upgrade', 'elementor' ); ?>
</a>
</span>
<i class="eicon-info upgrade-tooltip" aria-hidden="true"></i>
<# } else { #>
<span class="connect-badge">
<span class="connect-divider">|</span>
<a id="elementor-template-library-connect__badge" href="{{{ elementorAppConfig?.[ 'cloud-library' ]?.library_connect_url }}}">
<?php echo esc_html__( 'Connect', 'elementor' ); ?>
</a>
</span>
<# } #>
</div>
<div class="source-selections-input local">
<input type="checkbox" id="local" name="local" value="local">
<label for="local"> <?php echo esc_html__( 'Site Templates', 'elementor' ); ?></label><br>
</div>
<input type="hidden" name="parentId" id="parentId" />
</div>
<div class="quota-cta">
<p>
<?php echo esc_html__( 'Youve saved 100% of the templates in your plan.', 'elementor' ); ?>
<br>
<?php printf(
/* translators: %s is the "Upgrade now" link */
esc_html__( 'To get more space %s', 'elementor' ),
'<a href="https://go.elementor.com/go-pro-cloud-templates-save-to-100-usage-notice">' . esc_html__( 'Upgrade now', 'elementor' ) . '</a>'
); ?>
</p>
</div>
<button id="elementor-template-library-save-template-submit" class="elementor-button e-primary">
<span class="elementor-state-icon">
<i class="eicon-loading eicon-animation-spin" aria-hidden="true"></i>
</span>
{{{ saveBtnText }}}
</button>
</div>
<# } #>
</form>
<div class="elementor-template-library-blank-footer">
<?php echo esc_html__( 'Learn more about the', 'elementor' ); ?>
<a class="elementor-template-library-blank-footer-link" href="https://go.elementor.com/docs-library/" target="_blank"><?php echo esc_html__( 'Template Library', 'elementor' ); ?></a>
</div>
</script>
<script type="text/template" id="tmpl-elementor-template-library-import">
<form id="elementor-template-library-import-form">
<div class="elementor-template-library-blank-icon">
<i class="eicon-library-upload" aria-hidden="true"></i>
</div>
<div class="elementor-template-library-blank-title"><?php echo esc_html__( 'Import Template to Your Library', 'elementor' ); ?></div>
<div class="elementor-template-library-blank-message"><?php echo esc_html__( 'Drag & drop your .JSON or .zip template file', 'elementor' ); ?></div>
<div id="elementor-template-library-import-form-or"><?php echo esc_html__( 'or', 'elementor' ); ?></div>
<label for="elementor-template-library-import-form-input" id="elementor-template-library-import-form-label" class="elementor-button e-primary"><?php echo esc_html__( 'Select File', 'elementor' ); ?></label>
<input id="elementor-template-library-import-form-input" type="file" name="file" accept=".json,.zip" required/>
<div class="elementor-template-library-blank-footer">
<?php echo esc_html__( 'Learn more about the', 'elementor' ); ?>
<a class="elementor-template-library-blank-footer-link" href="https://go.elementor.com/docs-library/" target="_blank"><?php echo esc_html__( 'Template Library', 'elementor' ); ?></a>
</div>
</form>
</script>
<script type="text/template" id="tmpl-elementor-template-library-templates-empty">
<div class="elementor-template-library-blank-icon"></div>
<div class="elementor-template-library-blank-title"></div>
<div class="elementor-template-library-blank-message"></div>
<div class="elementor-template-library-cloud-empty__button"></div>
<div class="elementor-template-library-blank-footer">
<?php echo esc_html__( 'Learn more about the', 'elementor' ); ?>
<a class="elementor-template-library-blank-footer-link" href="https://go.elementor.com/docs-library/" target="_blank"><?php echo esc_html__( 'Template Library', 'elementor' ); ?></a>
</div>
</script>
<script type="text/template" id="tmpl-elementor-template-library-preview">
<iframe></iframe>
</script>
<script type="text/template" id="tmpl-elementor-template-library-connect">
<div id="elementor-template-library-connect-logo" class="e-logo-wrapper">
<i class="eicon-elementor" aria-hidden="true"></i>
</div>
<div class="elementor-template-library-blank-title">
{{{ title }}}
</div>
<div class="elementor-template-library-blank-message">
{{{ message }}}
</div>
<?php
$url = Plugin::$instance->common->get_component( 'connect' )->get_app( 'library' )->get_admin_url( 'authorize', [
'utm_source' => 'template-library',
'utm_medium' => 'wp-dash',
'utm_campaign' => 'library-connect',
'utm_content' => '%%template_type%%', // will be replaced in the frontend
] );
?>
<a id="elementor-template-library-connect__button" class="elementor-button e-primary" href="<?php echo esc_url( $url ); ?>">
{{{ button }}}
</a>
<?php
$base_images_url = $this->get_assets_base_url() . '/assets/images/library-connect/';
$images = [ 'left-1', 'left-2', 'right-1', 'right-2' ];
foreach ( $images as $image ) : ?>
<img id="elementor-template-library-connect__background-image-<?php Utils::print_unescaped_internal_string( $image ); ?>" class="elementor-template-library-connect__background-image" src="<?php Utils::print_unescaped_internal_string( $base_images_url . $image ); ?>.png" draggable="false" loading="lazy" />
<?php endforeach; ?>
</script>
<script type="text/template" id="tmpl-elementor-template-library-connect-states">
<#
const activeSource = elementor.templates.getFilter( 'source' );
#>
<div id="elementor-template-library-filter-toolbar-local" class="elementor-template-library-filter-toolbar" style="padding-block-end:80px;">
<div id="elementor-template-library-filter">
<div class="elementor-template-library-filter-select-source">
<div class="source-option<# if ( activeSource === 'local' ) { #> selected<# } #>" data-source="local">
<i class="eicon-header" aria-hidden="true"></i>
<?php echo esc_html__( 'Site templates', 'elementor' ); ?>
</div>
<div class="source-option<# if ( activeSource === 'cloud' ) { #> selected<# } #>" data-source="cloud">
<i class="eicon-library-cloud-empty" aria-hidden="true"></i>
<?php echo esc_html__( 'Cloud templates', 'elementor' ); ?>
<#
const tabIcon = elementor.templates.hasCloudLibraryQuota()
? '<span class="new-badge"><?php echo esc_html__( 'New', 'elementor' ); ?></span>'
: '<span class="new-badge"><i class="eicon-upgrade-crown" style="margin-inline-end: 0;"></i> <?php echo esc_html__( 'Pro', 'elementor' ); ?></span>';
print( tabIcon );
#>
</div>
</div>
</div>
</div>
<div class="elementor-template-library-blank-icon"></div>
<div class="elementor-template-library-blank-title"></div>
<div class="elementor-template-library-blank-message"></div>
<div class="elementor-template-library-cloud-empty__button"></div>
</script>