D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
everqlsh
/
www
/
wp-admin
/
user
/
577040
/
Filename :
uicore-elements.zip
back
Copy
PK �}\�~E� jsconfig.jsonnu �[��� { "compilerOptions": { // "baseUrl": "./blocks/", "jsx": "react" // "paths": { // "@uicore-tools/*": ["./assets/src/tools/*"], // "@uicore-blocks/*": ["./assets/src/blocks/*"], // "@uicore-controllers/*": ["./assets/src/controllers/*"] // } } } PK �}\�4� � plugin.phpnu �[��� <?php /* Plugin Name: UiCore Elements Plugin URI: https://elements.uicore.co Description: Elementor Widgets and Theme Builder Elements Version: 1.3.0 Author: UiCore Author URI: https://uicore.co License: GPL3 Text Domain: uicore-elements Domain Path: /languages * Elementor requires at least: 3.19.2 * Elementor tested up to: 3.29.2 */ namespace UiCoreElements; // don't call the file directly if (!defined('ABSPATH')) exit; /** * Base class * * @class Base The class that holds the entire plugin */ final class Base { /** * Plugin version * * @var string */ public $version = '1.3.0'; /** * Holds various class instances * * @var array */ private $container = array(); /** * Constructor for the Base class * * Sets up all the appropriate hooks and actions * within our plugin. */ public function __construct() { $this->define_constants(); register_activation_hook(__FILE__, array($this, 'activate')); register_deactivation_hook(__FILE__, array($this, 'deactivate')); add_action('plugins_loaded', array($this, 'init_plugin')); } /** * Initializes the Base() class * * Checks for an existing Base() instance * and if it doesn't find one, creates it. */ public static function init() { static $instance = false; if (! $instance) { $instance = new Base(); } return $instance; } /** * Magic getter to bypass referencing plugin. * * @param $prop * * @return mixed */ public function __get($prop) { if (array_key_exists($prop, $this->container)) { return $this->container[$prop]; } return $this->{$prop}; } /** * Magic isset to bypass referencing plugin. * * @param $prop * * @return mixed */ public function __isset($prop) { return isset($this->{$prop}) || isset($this->container[$prop]); } /** * Define the constants * * @return void */ public function define_constants() { define('UICORE_ELEMENTS_VERSION', $this->version); define('UICORE_ELEMENTS_FILE', __FILE__); define('UICORE_ELEMENTS_PATH', dirname(UICORE_ELEMENTS_FILE)); define('UICORE_ELEMENTS_INCLUDES', UICORE_ELEMENTS_PATH . '/includes'); define('UICORE_ELEMENTS_URL', plugins_url('', UICORE_ELEMENTS_FILE)); define('UICORE_ELEMENTS_ASSETS', UICORE_ELEMENTS_URL . '/assets'); define('UICORE_ELEMENTS_BADGE', '<span title="Powered by UiCore Elements" style="font-size:10px;font-weight:500;background:#5dbad8;color:black;padding:2px 5px;border-radius:3px;margin-right:4px;">UiCore</span> '); } /** * Load the plugin after all plugis are loaded * * @return void */ public function init_plugin() { if (\class_exists('Elementor\Plugin')) { $this->includes(); $this->init_hooks(); } } /** * Placeholder for activation function * * Nothing being called here yet. */ public function activate() { $installed = get_option('uicore_elements_installed'); if (! $installed) { update_option('uicore_elements_installed', time()); } update_option('uicore_elements_version', UICORE_ELEMENTS_VERSION); } /** * Placeholder for deactivation function * * Nothing being called here yet. */ public function deactivate() {} /** * Include the required files * * @return void */ public function includes() { require_once UICORE_ELEMENTS_INCLUDES . '/class-assets.php'; require_once UICORE_ELEMENTS_INCLUDES . '/class-elementor.php'; require_once UICORE_ELEMENTS_INCLUDES . '/class-design-cloud.php'; require_once UICORE_ELEMENTS_INCLUDES . '/class-rest-api.php'; require_once UICORE_ELEMENTS_INCLUDES . '/class-helper.php'; if ($this->is_request('admin')) { require_once UICORE_ELEMENTS_INCLUDES . '/class-admin.php'; } if ($this->is_request('frontend')) { require_once UICORE_ELEMENTS_INCLUDES . '/class-frontend.php'; } } /** * Initialize the hooks * * @return void */ public function init_hooks() { add_action('init', array($this, 'init_classes')); // Localize our plugin add_action('init', array($this, 'localization_setup')); } /** * Instantiate the required classes * * @return void */ public function init_classes() { new REST_API(); new Elementor(); if ($this->is_request('admin')) { $this->container['admin'] = new Admin(); } if ($this->is_request('frontend')) { $this->container['frontend'] = new Frontend(); } $this->container['assets'] = new Assets(); } /** * Initialize plugin for localization * * @uses load_plugin_textdomain() */ public function localization_setup() { load_plugin_textdomain('uicore-elements', false, dirname(plugin_basename(__FILE__)) . '/languages/'); } /** * What type of request is this? * * @param string $type admin, ajax, cron or frontend. * * @return bool */ private function is_request($type) { switch ($type) { case 'admin': return is_admin(); case 'frontend': return (! is_admin() || defined('DOING_AJAX')) && ! defined('DOING_CRON'); } } } // Base $uicore_elements = Base::init(); PK �}\1��3 �3 wpml-config.xmlnu �[��� <!-- Wordpress Multilanguage Widget Compatibility --> <wpml-config> <elementor-widgets> <!-- ACCORDION --> <widget name="uicore-accordion"> <conditions> <condition key="widgetType">uicore-accordion</condition> </conditions> <fields-in-item items_of="tabs"> <field type="Accordion: title" editor_type="LINE">tab_title</field> <field type="Accordion: content" editor_type="AREA">tab_content</field> </fields-in-item> </widget> <!-- COUNTER --> <widget name="uicore-counter"> <conditions> <condition key="widgetType">uicore-counter</condition> </conditions> <fields> <field type="Counter: text" editor_type="LINE">content_text</field> </fields> </widget> <!-- TABS --> <widget name="uicore-tabs"> <conditions> <condition key="widgetType">uicore-tabs</condition> </conditions> <fields-in-item items_of="tabs"> <field type="Tab: title" editor_type="LINE">tab_title</field> <field type="Tab: description" editor_type="AREA">tab_description</field> </fields-in-item> </widget> <!-- TESTIMONIAL WIDGETS --> <widget name="uicore-testimonial-carousel"> <conditions> <condition key="widgetType">uicore-testimonial-carousel</condition> </conditions> <fields-in-item items_of="review_items"> <field type="Testimonial: reviewer name" editor_type="LINE">reviewer_name</field> <field type="Testimonial: reviewer job" editor_type="LINE">reviewer_job_title</field> <field type="Testimonial: review" editor_type="AREA">review_text</field> </fields-in-item> </widget> <widget name="uicore-testimonial-grid"> <conditions> <condition key="widgetType">uicore-testimonial-grid</condition> </conditions> <fields-in-item items_of="review_items"> <field type="Testimonial: reviewer name" editor_type="LINE">reviewer_name</field> <field type="Testimonial: reviewer job" editor_type="LINE">reviewer_job_title</field> <field type="Testimonial: review" editor_type="AREA">review_text</field> </fields-in-item> </widget> <widget name="uicore-testimonial-slider"> <conditions> <condition key="widgetType">uicore-testimonial-slider</condition> </conditions> <fields-in-item items_of="review_items"> <field type="Testimonial: reviewer name" editor_type="LINE">reviewer_name</field> <field type="Testimonial: reviewer job" editor_type="LINE">reviewer_job_title</field> <field type="Testimonial: review" editor_type="AREA">review_text</field> </fields-in-item> </widget> <!-- ICON BOX --> <widget name="uicore-icon-box"> <conditions> <condition key="widgetType">uicore-icon-box</condition> </conditions> <fields> <field type="Icon Box: Title" editor_type="LINE">title_text</field> <field type="Icon Box: Subtitle" editor_type="LINE">sub_title_text</field> <field type="Icon Box: Description" editor_type="AREA">description_text</field> <field type="Icon Box: Readmore text" editor_type="LINE">readmore_text</field> <field type="Icon Box: Badge text" editor_type="LINE">badge_text</field> </fields> </widget> <!-- HIGHLIGHTED TEXT --> <widget name="highlighted-text"> <conditions> <condition key="widgetType">highlighted-text</condition> </conditions> <fields-in-item items_of="content"> <field type="Highlighed text" editor_type="LINE">text</field> </fields-in-item> </widget> <!-- ICON LIST --> <widget name="uicore-icon-list"> <conditions> <condition key="widgetType">uicore-icon-list</condition> </conditions> <fields-in-item items_of="icon_list"> <field type="Icon List: title" editor_type="LINE">text</field> <field type="Icon List: subtitle" editor_type="LINE">text_details</field> </fields-in-item> </widget> <!-- CONTACT FORM --> <widget name="uicore-contact-form"> <conditions> <condition key="widgetType">uicore-contact-form</condition> </conditions> <!-- form repeater fields --> <fields-in-item items_of="form_fields"> <field type="Form Field: label" editor_type="LINE">field_label</field> <field type="Form Field: placeholder" editor_type="LINE">placeholder</field> <field type="Form Field: option" editor_type="AREA">field_options</field> <field type="Form Field: text" editor_type="AREA">acceptance_text</field> <field type="Form Field: text" editor_type="AREA">field_html</field> </fields-in-item> <!-- extra basic fields --> <fields> <field type="Button: text" editor_type="LINE">button_text</field> <field type="Success Message" editor_type="LINE">success_message</field> <field type="Error Message" editor_type="LINE">error_message</field> <field type="Redirect Message" editor_type="LINE">redirect_message</field> </fields> </widget> <!-- NEWSLETTER --> <widget name="uicore-newsletter"> <conditions> <condition key="widgetType">uicore-newsletter</condition> </conditions> <fields> <field type="Email Field: label" editor_type="LINE">email_label</field> <field type="Email Field: placeholder" editor_type="LINE">email_placeholder</field> <field type="Name Field: label" editor_type="LINE">name_label</field> <field type="Name Field: placeholder" editor_type="LINE">name_placeholder</field> <field type="Button: text" editor_type="LINE">button_text</field> <field type="Success Message" editor_type="LINE">success_message</field> <field type="Error Message" editor_type="LINE">error_message</field> <field type="Redirect Message" editor_type="LINE">redirect_message</field> </fields> </widget> <!-- POST META --> <widget name="uicore-post-meta"> <conditions> <condition key="widgetType">uicore-post-meta</condition> </conditions> <fields-in-item items_of="meta_list"> <field type="Meta: text before" editor_type="LINE">before</field> <field type="Meta: text after" editor_type="LINE">after</field> </fields-in-item> </widget> <!-- APG/APC--> <widget name="uicore-advanced-post-grid"> <conditions> <condition key="widgetType">uicore-advanced-post-grid</condition> </conditions> <!-- meta fields --> <fields-in-item items_of="top_meta"> <field type="Meta: text before" editor_type="LINE">before</field> <field type="Meta: text after" editor_type="LINE">after</field> <field type="Meta: custom text" editor_type="LINE">html_custom</field> </fields-in-item> <fields-in-item items_of="before_title_meta"> <field type="Meta: text before" editor_type="LINE">before</field> <field type="Meta: text after" editor_type="LINE">after</field> <field type="Meta: custom text" editor_type="LINE">html_custom</field> </fields-in-item> <fields-in-item items_of="after_title_meta"> <field type="Meta: text before" editor_type="LINE">before</field> <field type="Meta: text after" editor_type="LINE">after</field> <field type="Meta: custom text" editor_type="LINE">html_custom</field> </fields-in-item> <fields-in-item items_of="bottom_meta"> <field type="Meta: text before" editor_type="LINE">before</field> <field type="Meta: text after" editor_type="LINE">after</field> <field type="Meta: custom text" editor_type="LINE">html_custom</field> </fields-in-item> <!-- basic fields --> <fields> <field type="Readmore: text" editor_type="LINE">text</field> </fields> </widget> <widget name="uicore-advanced-product-grid"> <conditions> <condition key="widgetType">uicore-advanced-product-grid</condition> </conditions> <!-- meta fields --> <fields-in-item items_of="top_meta"> <field type="Meta: text before" editor_type="LINE">before</field> <field type="Meta: text after" editor_type="LINE">after</field> <field type="Meta: custom text" editor_type="LINE">html_custom</field> </fields-in-item> <fields-in-item items_of="before_title_meta"> <field type="Meta: text before" editor_type="LINE">before</field> <field type="Meta: text after" editor_type="LINE">after</field> <field type="Meta: custom text" editor_type="LINE">html_custom</field> </fields-in-item> <fields-in-item items_of="after_title_meta"> <field type="Meta: text before" editor_type="LINE">before</field> <field type="Meta: text after" editor_type="LINE">after</field> <field type="Meta: custom text" editor_type="LINE">html_custom</field> </fields-in-item> <fields-in-item items_of="bottom_meta"> <field type="Meta: text before" editor_type="LINE">before</field> <field type="Meta: text after" editor_type="LINE">after</field> <field type="Meta: custom text" editor_type="LINE">html_custom</field> </fields-in-item> <!-- basic fields --> <fields> <field type="Readmore: text" editor_type="LINE">text</field> </fields> </widget> <widget name="uicore-advanced-post-carousel"> <conditions> <condition key="widgetType">uicore-advanced-post-carousel</condition> </conditions> <!-- meta fields --> <fields-in-item items_of="top_meta"> <field type="Meta: text before" editor_type="LINE">before</field> <field type="Meta: text after" editor_type="LINE">after</field> <field type="Meta: custom text" editor_type="LINE">html_custom</field> </fields-in-item> <fields-in-item items_of="before_title_meta"> <field type="Meta: text before" editor_type="LINE">before</field> <field type="Meta: text after" editor_type="LINE">after</field> <field type="Meta: custom text" editor_type="LINE">html_custom</field> </fields-in-item> <fields-in-item items_of="after_title_meta"> <field type="Meta: text before" editor_type="LINE">before</field> <field type="Meta: text after" editor_type="LINE">after</field> <field type="Meta: custom text" editor_type="LINE">html_custom</field> </fields-in-item> <fields-in-item items_of="bottom_meta"> <field type="Meta: text before" editor_type="LINE">before</field> <field type="Meta: text after" editor_type="LINE">after</field> <field type="Meta: custom text" editor_type="LINE">html_custom</field> </fields-in-item> <!-- basic fields --> <fields> <field type="Readmore: text" editor_type="LINE">text</field> </fields> </widget> <!-- Gallery Widgets --> <widget name="uicore-gallery-grid"> <conditions> <condition key="widgetType">uicore-gallery-grid</condition> </conditions> <fields-in-item items_of="gallery_items"> <field type="Title" editor_type="LINE">item_title</field> <field type="Description" editor_type="LINE">item_description</field> <field type="Badge" editor_type="LINE">item_badge</field> <field type="Tags" editor_type="LINE">item_tags</field> </fields-in-item> </widget> <widget name="uicore-gallery-carousel"> <conditions> <condition key="widgetType">uicore-gallery-carousel</condition> </conditions> <fields-in-item items_of="gallery_items"> <field type="Title" editor_type="LINE">item_title</field> <field type="Description" editor_type="LINE">item_description</field> <field type="Badge" editor_type="LINE">item_badge</field> <field type="Tags" editor_type="LINE">item_tags</field> </fields-in-item> </widget> <widget name="uicore-gallery-slider"> <conditions> <condition key="widgetType">uicore-gallery-slider</condition> </conditions> <fields-in-item items_of="gallery_items"> <field type="Title" editor_type="LINE">item_title</field> <field type="Description" editor_type="LINE">item_description</field> <field type="Badge" editor_type="LINE">item_badge</field> <field type="Tags" editor_type="LINE">item_tags</field> </fields-in-item> </widget> </elementor-widgets> </wpml-config>PK �}\7��~� � ! elements-workspace.code-workspacenu �[��� { "folders": [ { "name": "uicore-elements", "path": "." }, { "name": "uicore-framework", "path": "../uicore-framework" }, { "name": "uicore-animate", "path": "../uicore-animate" }, { "name": "public", "path": "../../.." } ], "settings": {} }PK �}\�9� webpack.dc.config.jsnu �[��� const defaultConfig = require('@wordpress/scripts/config/webpack.config'); const path = require('path'); module.exports = { ...defaultConfig, entry: { 'design-cloud': path.resolve(__dirname, 'assets/src/design-cloud/index.js'), }, output: { path: path.resolve(__dirname, 'assets/dc/'), filename: '[name].js', }, // resolve: { // alias: { // '@uicore/design-cloud': path.resolve(__dirname, '../../../../../../design-cloud-ui') // } // }, };PK �}\��� �� languages/uicore-elements.potnu �[��� # Copyright (C) 2025 uicore-elements # This file is distributed under the same license as the uicore-elements package. msgid "" msgstr "" "Project-Id-Version: uicore-elements\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "POT-Creation-Date: 2025-06-06 14:15+0000\n" "Project-Id-Version: undefined\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPathExcluded-0: *.js\n" "X-Poedit-SourceCharset: UTF-8\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../includes/class-animate.php:28 msgid "Split Text Animation" msgstr "" #: ../includes/class-animate.php:35 msgid "UiCore Animate required" msgstr "" #. translators: %s: link to Uicore Animate #: ../includes/class-animate.php:40 msgid "Download and instal %s for more advanced animations control" msgstr "" #: ../includes/class-elementor.php:110 msgid "UiCore" msgstr "" #: ../includes/class-helper.php:52, ../includes/utils/meta-component.php:40 msgid "Custom Meta" msgstr "" #. translators: item number #. translators: %d: Item number #: ../includes/class-nested-widget-base.php:46, ../includes/widgets/custom-carousel.php:88 msgid "Item #%d" msgstr "" #. translators: 1: opening url tags 2: closing url tag #: ../includes/class-nested-widget-base.php:155 msgid "Please, %1$s click here %2$s and enable the Nested Elements experiment in Elementor settings" msgstr "" #: ../includes/class-nested-widget-base.php:168, ../includes/widgets/tabs.php:31, ../includes/widgets/tabs.php:103, ../includes/widgets/tabs.php:500 msgid "Tabs" msgstr "" #: ../includes/class-nested-widget-base.php:178 msgid "Feature Disabled." msgstr "" #: ../includes/controls/class-lightbox-button.php:43 msgid "Lightbox" msgstr "" #: ../includes/controls/class-lightbox-button.php:50, ../includes/widgets/contact-form.php:586, ../includes/widgets/highlighted-text.php:83 msgid "Type" msgstr "" #: ../includes/controls/class-lightbox-button.php:54 msgid "Video" msgstr "" #: ../includes/controls/class-lightbox-button.php:58, ../includes/controls/class-lightbox-button.php:70, ../includes/utils/gallery-component.php:48, ../includes/utils/gallery-component.php:548, ../includes/utils/post-component.php:60, ../includes/widgets/counter.php:106, ../includes/widgets/highlighted-text.php:89, ../includes/widgets/icon-box.php:104, ../includes/widgets/icon-list.php:115, ../includes/widgets/icon-list.php:1127 msgid "Image" msgstr "" #: ../includes/controls/class-lightbox-button.php:81 msgid "Video URL" msgstr "" #: ../includes/controls/class-post-filter-control.php:51 msgid "Source" msgstr "" #: ../includes/controls/class-post-filter-control.php:127, ../includes/utils/carousel-component.php:276, ../includes/utils/carousel-component.php:454, ../includes/utils/carousel-component.php:618, ../includes/utils/carousel-component.php:744, ../includes/utils/meta-component.php:87, ../includes/utils/testimonial-component.php:500, ../includes/utils/testimonial-component.php:619, ../includes/widgets/counter.php:417 msgid "Custom" msgstr "" #: ../includes/controls/class-post-filter-control.php:128, ../includes/controls/class-post-filter-control.php:157 msgid "Current" msgstr "" #: ../includes/controls/class-post-filter-control.php:129, ../includes/controls/class-post-filter-control.php:158 msgid "Related" msgstr "" #: ../includes/utils/animation-component.php:58 msgid "Animate each Item" msgstr "" #: ../includes/utils/animation-component.php:69, ../includes/utils/carousel-component.php:830, ../includes/utils/form-component.php:1091, ../includes/utils/gallery-component.php:889, ../includes/widgets/contact-form.php:1980, ../includes/widgets/highlighted-text.php:383 msgid "Animation" msgstr "" #: ../includes/utils/animation-component.php:73 msgid "Fade In Up" msgstr "" #: ../includes/utils/animation-component.php:74 msgid "Fade In Down" msgstr "" #: ../includes/utils/animation-component.php:75 msgid "Fade In Left" msgstr "" #: ../includes/utils/animation-component.php:76 msgid "Fade In Right" msgstr "" #: ../includes/utils/animation-component.php:77 msgid "Fade In" msgstr "" #: ../includes/utils/animation-component.php:78 msgid "Zoom In" msgstr "" #: ../includes/utils/animation-component.php:89 msgid "Speed" msgstr "" #: ../includes/utils/animation-component.php:113, ../includes/widgets/highlighted-text.php:397 msgid "Animation Delay" msgstr "" #: ../includes/utils/animation-component.php:137 msgid "Stagger" msgstr "" #: ../includes/utils/carousel-component.php:131, ../includes/utils/carousel-component.php:138, ../includes/utils/carousel-component.php:1149 msgid "Navigation" msgstr "" #: ../includes/utils/carousel-component.php:142, ../includes/utils/carousel-component.php:171, ../includes/utils/carousel-component.php:1166 msgid "Arrows" msgstr "" #: ../includes/utils/carousel-component.php:143, ../includes/utils/carousel-component.php:680, ../includes/utils/carousel-component.php:1336 msgid "Dots" msgstr "" #: ../includes/utils/carousel-component.php:144, ../includes/utils/carousel-component.php:1664 msgid "Fractions" msgstr "" #: ../includes/utils/carousel-component.php:145 msgid "Arrows and Dots" msgstr "" #: ../includes/utils/carousel-component.php:146 msgid "Arrows and Fraction" msgstr "" #: ../includes/utils/carousel-component.php:147, ../includes/utils/logo-component.php:164, ../includes/utils/meta-component.php:19, ../includes/utils/post-component.php:832, ../includes/utils/post-component.php:846, ../includes/utils/post-component.php:872, ../includes/utils/post-component.php:886, ../includes/utils/post-component.php:903, ../includes/utils/testimonial-component.php:499, ../includes/utils/testimonial-component.php:618, ../includes/widgets/accordion.php:1269, ../includes/widgets/accordion.php:1288, ../includes/widgets/advanced-product-grid.php:268, ../includes/widgets/highlighted-text.php:117, ../includes/widgets/icon-box.php:96, ../includes/widgets/icon-box.php:1976, ../includes/widgets/icon-box.php:2032, ../includes/widgets/icon-box.php:2053, ../includes/widgets/icon-box.php:2087, ../includes/widgets/tabs.php:448 msgid "None" msgstr "" #: ../includes/utils/carousel-component.php:161 msgid "Marquee animation does not support navigation." msgstr "" #: ../includes/utils/carousel-component.php:184 msgid "Previous" msgstr "" #: ../includes/utils/carousel-component.php:192, ../includes/utils/carousel-component.php:370 msgid "Previous Arrow Icon" msgstr "" #: ../includes/utils/carousel-component.php:221, ../includes/utils/carousel-component.php:399, ../includes/utils/carousel-component.php:563, ../includes/utils/carousel-component.php:689 msgid "Horizontal Orientation" msgstr "" #: ../includes/utils/carousel-component.php:225, ../includes/utils/carousel-component.php:403, ../includes/utils/carousel-component.php:567, ../includes/utils/carousel-component.php:693, ../includes/utils/form-component.php:479, ../includes/utils/gallery-component.php:300, ../includes/utils/pagination-component.php:144, ../includes/utils/post-component.php:534, ../includes/utils/post-component.php:730, ../includes/utils/post-filter-component.php:103, ../includes/utils/testimonial-component.php:328, ../includes/widgets/accordion.php:576, ../includes/widgets/accordion.php:1234, ../includes/widgets/contact-form.php:1073, ../includes/widgets/counter.php:271, ../includes/widgets/counter.php:301, ../includes/widgets/counter.php:388, ../includes/widgets/highlighted-text.php:271, ../includes/widgets/icon-box.php:202, ../includes/widgets/icon-box.php:305, ../includes/widgets/icon-box.php:437, ../includes/widgets/icon-list.php:273, ../includes/widgets/icon-list.php:350, ../includes/widgets/icon-list.php:371, ../includes/widgets/theme-builder/page-description.php:143, ../includes/widgets/theme-builder/post-meta.php:74, ../includes/widgets/theme-builder/the-content.php:62, ../includes/widgets/theme-builder/the-title.php:144 msgid "Left" msgstr "" #: ../includes/utils/carousel-component.php:229, ../includes/utils/carousel-component.php:255, ../includes/utils/carousel-component.php:407, ../includes/utils/carousel-component.php:433, ../includes/utils/carousel-component.php:571, ../includes/utils/carousel-component.php:597, ../includes/utils/carousel-component.php:697, ../includes/utils/carousel-component.php:723, ../includes/utils/form-component.php:483, ../includes/utils/gallery-component.php:247, ../includes/utils/gallery-component.php:304, ../includes/utils/pagination-component.php:148, ../includes/utils/post-component.php:538, ../includes/utils/post-component.php:734, ../includes/utils/post-filter-component.php:107, ../includes/utils/testimonial-component.php:293, ../includes/utils/testimonial-component.php:332, ../includes/utils/testimonial-component.php:363, ../includes/widgets/accordion.php:580, ../includes/widgets/accordion.php:1238, ../includes/widgets/contact-form.php:1077, ../includes/widgets/counter.php:331, ../includes/widgets/counter.php:362, ../includes/widgets/counter.php:392, ../includes/widgets/gallery-slider.php:90, ../includes/widgets/highlighted-text.php:275, ../includes/widgets/icon-box.php:309, ../includes/widgets/icon-box.php:1705, ../includes/widgets/icon-list.php:229, ../includes/widgets/icon-list.php:299, ../includes/widgets/icon-list.php:375, ../includes/widgets/tabs.php:271, ../includes/widgets/tabs.php:310, ../includes/widgets/tabs.php:381, ../includes/widgets/tabs.php:416, ../includes/widgets/theme-builder/page-description.php:147, ../includes/widgets/theme-builder/post-meta.php:78, ../includes/widgets/theme-builder/the-content.php:66, ../includes/widgets/theme-builder/the-title.php:148 msgid "Center" msgstr "" #: ../includes/utils/carousel-component.php:233, ../includes/utils/carousel-component.php:411, ../includes/utils/carousel-component.php:575, ../includes/utils/carousel-component.php:701, ../includes/utils/form-component.php:487, ../includes/utils/gallery-component.php:308, ../includes/utils/post-component.php:738, ../includes/utils/post-filter-component.php:111, ../includes/utils/testimonial-component.php:336, ../includes/widgets/accordion.php:584, ../includes/widgets/accordion.php:1242, ../includes/widgets/contact-form.php:1081, ../includes/widgets/counter.php:279, ../includes/widgets/counter.php:305, ../includes/widgets/counter.php:396, ../includes/widgets/highlighted-text.php:279, ../includes/widgets/icon-box.php:210, ../includes/widgets/icon-box.php:313, ../includes/widgets/icon-box.php:438, ../includes/widgets/icon-list.php:277, ../includes/widgets/icon-list.php:354, ../includes/widgets/icon-list.php:379, ../includes/widgets/theme-builder/page-description.php:151, ../includes/widgets/theme-builder/the-content.php:70, ../includes/widgets/theme-builder/the-title.php:152 msgid "Right" msgstr "" #: ../includes/utils/carousel-component.php:247, ../includes/utils/carousel-component.php:425, ../includes/utils/carousel-component.php:589, ../includes/utils/carousel-component.php:715 msgid "Vertical Orientation" msgstr "" #: ../includes/utils/carousel-component.php:251, ../includes/utils/carousel-component.php:429, ../includes/utils/carousel-component.php:593, ../includes/utils/carousel-component.php:719, ../includes/utils/gallery-component.php:246, ../includes/utils/post-component.php:784, ../includes/utils/testimonial-component.php:289, ../includes/utils/testimonial-component.php:359, ../includes/widgets/counter.php:275, ../includes/widgets/counter.php:327, ../includes/widgets/counter.php:358, ../includes/widgets/icon-box.php:206, ../includes/widgets/icon-box.php:274, ../includes/widgets/icon-list.php:225, ../includes/widgets/icon-list.php:295 msgid "Top" msgstr "" #: ../includes/utils/carousel-component.php:259, ../includes/utils/carousel-component.php:437, ../includes/utils/carousel-component.php:601, ../includes/utils/carousel-component.php:727, ../includes/utils/gallery-component.php:248, ../includes/utils/post-component.php:811, ../includes/utils/testimonial-component.php:297, ../includes/utils/testimonial-component.php:367, ../includes/widgets/counter.php:335, ../includes/widgets/counter.php:366, ../includes/widgets/gallery-slider.php:94, ../includes/widgets/icon-box.php:214, ../includes/widgets/icon-box.php:282, ../includes/widgets/icon-list.php:233, ../includes/widgets/icon-list.php:303 msgid "Bottom" msgstr "" #: ../includes/utils/carousel-component.php:273, ../includes/utils/carousel-component.php:451 msgid "Arrow Offset" msgstr "" #: ../includes/utils/carousel-component.php:275, ../includes/utils/carousel-component.php:453, ../includes/utils/carousel-component.php:617, ../includes/utils/carousel-component.php:743, ../includes/utils/carousel-component.php:837, ../includes/utils/form-component.php:1200, ../includes/utils/gallery-component.php:148, ../includes/utils/meta-component.php:82, ../includes/widgets/advanced-post-carousel.php:195, ../includes/widgets/contact-form.php:778, ../includes/widgets/contact-form.php:1049, ../includes/widgets/counter.php:416, ../includes/widgets/gallery-carousel.php:230, ../includes/widgets/post-grid.php:152, ../includes/widgets/post-grid.php:171, ../includes/widgets/post-grid.php:189 msgid "Default" msgstr "" #: ../includes/utils/carousel-component.php:286, ../includes/utils/carousel-component.php:463, ../includes/utils/carousel-component.php:627, ../includes/utils/carousel-component.php:753, ../includes/widgets/counter.php:1002, ../includes/widgets/counter.php:1061, ../includes/widgets/icon-box.php:480, ../includes/widgets/icon-box.php:1721 msgid "Horizontal Offset" msgstr "" #: ../includes/utils/carousel-component.php:311, ../includes/utils/carousel-component.php:488, ../includes/utils/carousel-component.php:652, ../includes/utils/carousel-component.php:778, ../includes/widgets/counter.php:1025, ../includes/widgets/counter.php:1084, ../includes/widgets/highlighted-text.php:358, ../includes/widgets/icon-box.php:506, ../includes/widgets/icon-box.php:1748 msgid "Vertical Offset" msgstr "" #: ../includes/utils/carousel-component.php:336, ../includes/utils/carousel-component.php:513, ../includes/utils/carousel-component.php:803 msgid "Rotation" msgstr "" #: ../includes/utils/carousel-component.php:362 msgid "Next" msgstr "" #: ../includes/utils/carousel-component.php:541 msgid "Hide arrows on Mobile" msgstr "" #: ../includes/utils/carousel-component.php:554 msgid "Fraction" msgstr "" #: ../includes/utils/carousel-component.php:615 msgid "Fraction Offset" msgstr "" #: ../includes/utils/carousel-component.php:741 msgid "Dots Offset" msgstr "" #: ../includes/utils/carousel-component.php:834, ../includes/widgets/advanced-post-carousel.php:193 msgid "Circular" msgstr "" #: ../includes/utils/carousel-component.php:835, ../includes/widgets/advanced-post-carousel.php:194 msgid "Fade Blur" msgstr "" #: ../includes/utils/carousel-component.php:836 msgid "Marquee" msgstr "" #: ../includes/utils/carousel-component.php:847 msgid "Slides per View" msgstr "" #: ../includes/utils/carousel-component.php:895 msgid "Show Hidden Items" msgstr "" #: ../includes/utils/carousel-component.php:899, ../includes/widgets/contact-form.php:109, ../includes/widgets/contact-form.php:831, ../includes/widgets/newsletter.php:416 msgid "Hidden" msgstr "" #: ../includes/utils/carousel-component.php:900 msgid "Show Left" msgstr "" #: ../includes/utils/carousel-component.php:901 msgid "Show Right" msgstr "" #: ../includes/utils/carousel-component.php:913 msgid "Marquee Speed" msgstr "" #: ../includes/utils/carousel-component.php:928 msgid "Center Slides" msgstr "" #: ../includes/utils/carousel-component.php:940 msgid "Vertical Scroll" msgstr "" #: ../includes/utils/carousel-component.php:957 msgid "Carousel Height" msgstr "" #: ../includes/utils/carousel-component.php:987 msgid "Fade Edges" msgstr "" #: ../includes/utils/carousel-component.php:998 msgid "Fade opacity" msgstr "" #: ../includes/utils/carousel-component.php:1015 msgid "Fade deepening" msgstr "" #: ../includes/utils/carousel-component.php:1032 msgid "Autoplay" msgstr "" #: ../includes/utils/carousel-component.php:1045 msgid "Autoplay Speed" msgstr "" #: ../includes/utils/carousel-component.php:1061 msgid "Reverse Direction" msgstr "" #: ../includes/utils/carousel-component.php:1086 msgid "Pause on Hover" msgstr "" #: ../includes/utils/carousel-component.php:1100 msgid "Grab Cursor" msgstr "" #: ../includes/utils/carousel-component.php:1112 msgid "Loop" msgstr "" #: ../includes/utils/carousel-component.php:1125 msgid "Overflow Container" msgstr "" #: ../includes/utils/carousel-component.php:1134 msgid "Observer" msgstr "" #: ../includes/utils/carousel-component.php:1135 msgid "Use it when the carousel is placed in a hidden place (ex: tab, accordion)." msgstr "" #: ../includes/utils/carousel-component.php:1177, ../includes/utils/carousel-component.php:1347, ../includes/utils/form-component.php:742, ../includes/utils/form-component.php:975, ../includes/utils/gallery-component.php:352, ../includes/utils/item-style-component.php:24, ../includes/utils/logo-component.php:143, ../includes/utils/pagination-component.php:274, ../includes/utils/post-component.php:360, ../includes/utils/post-filter-component.php:137, ../includes/widgets/accordion.php:415, ../includes/widgets/accordion.php:603, ../includes/widgets/accordion.php:801, ../includes/widgets/accordion.php:934, ../includes/widgets/contact-form.php:1636, ../includes/widgets/contact-form.php:1864, ../includes/widgets/counter.php:609, ../includes/widgets/counter.php:912, ../includes/widgets/counter.php:1129, ../includes/widgets/icon-box.php:648, ../includes/widgets/icon-box.php:1241, ../includes/widgets/icon-box.php:1329, ../includes/widgets/icon-box.php:1413, ../includes/widgets/icon-box.php:1494, ../includes/widgets/icon-box.php:1805, ../includes/widgets/icon-list.php:405, ../includes/widgets/icon-list.php:588, ../includes/widgets/icon-list.php:730, ../includes/widgets/icon-list.php:896, ../includes/widgets/logo-carousel.php:104, ../includes/widgets/tabs.php:554, ../includes/widgets/tabs.php:824, ../includes/widgets/tabs.php:931, ../includes/widgets/tabs.php:1075, ../includes/widgets/theme-builder/page-description.php:231, ../includes/widgets/theme-builder/the-title.php:233 msgid "Normal" msgstr "" #: ../includes/utils/carousel-component.php:1185, ../includes/utils/carousel-component.php:1281, ../includes/utils/carousel-component.php:1355, ../includes/utils/carousel-component.php:1526, ../includes/utils/carousel-component.php:1715, ../includes/utils/gallery-component.php:366, ../includes/utils/gallery-component.php:408, ../includes/utils/gallery-component.php:450, ../includes/utils/gallery-component.php:660, ../includes/utils/gallery-component.php:723, ../includes/utils/gallery-component.php:779, ../includes/utils/gallery-component.php:809, ../includes/utils/pagination-component.php:292, ../includes/utils/pagination-component.php:338, ../includes/utils/pagination-component.php:387, ../includes/utils/testimonial-component.php:702, ../includes/utils/testimonial-component.php:769, ../includes/utils/testimonial-component.php:832, ../includes/utils/testimonial-component.php:927, ../includes/utils/testimonial-component.php:897, ../includes/utils/testimonial-component.php:942, ../includes/utils/testimonial-component.php:1077, ../includes/widgets/contact-form.php:1598, ../includes/widgets/counter.php:973, ../includes/widgets/highlighted-text.php:162, ../includes/widgets/highlighted-text.php:323, ../includes/widgets/icon-box.php:1248, ../includes/widgets/icon-box.php:1268, ../includes/widgets/icon-box.php:1336, ../includes/widgets/icon-box.php:1356, ../includes/widgets/icon-box.php:1420, ../includes/widgets/icon-box.php:1440, ../includes/widgets/icon-box.php:1509, ../includes/widgets/icon-box.php:1580, ../includes/widgets/icon-box.php:1631, ../includes/widgets/icon-box.php:2066, ../includes/widgets/icon-list.php:595, ../includes/widgets/icon-list.php:679, ../includes/widgets/icon-list.php:745, ../includes/widgets/icon-list.php:773, ../includes/widgets/icon-list.php:903, ../includes/widgets/icon-list.php:986, ../includes/widgets/post-grid.php:275, ../includes/widgets/post-grid.php:321, ../includes/widgets/tabs.php:831, ../includes/widgets/tabs.php:851, ../includes/widgets/tabs.php:871, ../includes/widgets/tabs.php:938, ../includes/widgets/tabs.php:958, ../includes/widgets/tabs.php:978, ../includes/widgets/tabs.php:1080, ../includes/widgets/tabs.php:1109, ../includes/widgets/tabs.php:1138 msgid "Color" msgstr "" #: ../includes/utils/carousel-component.php:1197, ../includes/utils/carousel-component.php:1293, ../includes/utils/pagination-component.php:280, ../includes/utils/pagination-component.php:328, ../includes/utils/pagination-component.php:375 msgid "Background" msgstr "" #: ../includes/utils/carousel-component.php:1216, ../includes/utils/carousel-component.php:1486, ../includes/utils/carousel-component.php:1623, ../includes/utils/carousel-component.php:1695, ../includes/utils/form-component.php:912, ../includes/utils/form-component.php:1103, ../includes/utils/gallery-component.php:494, ../includes/utils/gallery-component.php:613, ../includes/utils/gallery-component.php:840, ../includes/utils/item-style-component.php:64, ../includes/utils/logo-component.php:222, ../includes/utils/meta-component.php:202, ../includes/utils/post-component.php:462, ../includes/utils/post-component.php:505, ../includes/utils/post-filter-component.php:282, ../includes/utils/testimonial-component.php:402, ../includes/utils/testimonial-component.php:992, ../includes/widgets/accordion.php:440, ../includes/widgets/accordion.php:546, ../includes/widgets/accordion.php:640, ../includes/widgets/accordion.php:770, ../includes/widgets/accordion.php:969, ../includes/widgets/accordion.php:1168, ../includes/widgets/contact-form.php:1806, ../includes/widgets/contact-form.php:1992, ../includes/widgets/counter.php:735, ../includes/widgets/icon-box.php:761, ../includes/widgets/icon-box.php:1159, ../includes/widgets/icon-box.php:1539, ../includes/widgets/icon-box.php:1863, ../includes/widgets/icon-list.php:511, ../includes/widgets/icon-list.php:626, ../includes/widgets/icon-list.php:937, ../includes/widgets/icon-list.php:1144, ../includes/widgets/post-grid.php:372, ../includes/widgets/tabs.php:780, ../includes/widgets/tabs.php:1053, ../includes/widgets/tabs.php:1202 msgid "Border Radius" msgstr "" #: ../includes/utils/carousel-component.php:1228, ../includes/utils/carousel-component.php:1683, ../includes/utils/form-component.php:925, ../includes/utils/gallery-component.php:505, ../includes/utils/gallery-component.php:857, ../includes/utils/item-style-component.php:84, ../includes/utils/logo-component.php:246, ../includes/utils/meta-component.php:220, ../includes/utils/post-component.php:446, ../includes/utils/post-filter-component.php:294, ../includes/utils/testimonial-component.php:413, ../includes/utils/testimonial-component.php:1003, ../includes/widgets/accordion.php:452, ../includes/widgets/accordion.php:652, ../includes/widgets/accordion.php:981, ../includes/widgets/accordion.php:1180, ../includes/widgets/contact-form.php:1819, ../includes/widgets/counter.php:698, ../includes/widgets/icon-box.php:802, ../includes/widgets/icon-box.php:1551, ../includes/widgets/icon-box.php:1883, ../includes/widgets/icon-list.php:523, ../includes/widgets/icon-list.php:638, ../includes/widgets/icon-list.php:949, ../includes/widgets/tabs.php:792, ../includes/widgets/tabs.php:1041, ../includes/widgets/tabs.php:1222 msgid "Padding" msgstr "" #: ../includes/utils/carousel-component.php:1240, ../includes/utils/carousel-component.php:1388, ../includes/utils/carousel-component.php:1537, ../includes/utils/testimonial-component.php:424, ../includes/utils/testimonial-component.php:454, ../includes/utils/testimonial-component.php:580, ../includes/utils/testimonial-component.php:1025, ../includes/widgets/accordion.php:820, ../includes/widgets/highlighted-text.php:220, ../includes/widgets/icon-box.php:868, ../includes/widgets/icon-box.php:893, ../includes/widgets/icon-list.php:1169, ../includes/widgets/tabs.php:1001 msgid "Size" msgstr "" #: ../includes/utils/carousel-component.php:1273, ../includes/utils/form-component.php:809, ../includes/utils/form-component.php:1027, ../includes/utils/gallery-component.php:401, ../includes/utils/item-style-component.php:119, ../includes/utils/logo-component.php:294, ../includes/utils/pagination-component.php:322, ../includes/utils/post-component.php:390, ../includes/utils/post-filter-component.php:188, ../includes/widgets/accordion.php:482, ../includes/widgets/accordion.php:682, ../includes/widgets/accordion.php:854, ../includes/widgets/accordion.php:1042, ../includes/widgets/contact-form.php:1703, ../includes/widgets/contact-form.php:1916, ../includes/widgets/counter.php:643, ../includes/widgets/counter.php:933, ../includes/widgets/counter.php:1149, ../includes/widgets/icon-box.php:1082, ../includes/widgets/icon-box.php:1261, ../includes/widgets/icon-box.php:1349, ../includes/widgets/icon-box.php:1433, ../includes/widgets/icon-box.php:1914, ../includes/widgets/icon-list.php:440, ../includes/widgets/icon-list.php:672, ../includes/widgets/icon-list.php:806, ../includes/widgets/icon-list.php:979, ../includes/widgets/logo-carousel.php:114, ../includes/widgets/tabs.php:607, ../includes/widgets/tabs.php:844, ../includes/widgets/tabs.php:951, ../includes/widgets/tabs.php:1104 msgid "Hover" msgstr "" #: ../includes/utils/carousel-component.php:1305, ../includes/utils/form-component.php:1009, ../includes/utils/form-component.php:1059, ../includes/utils/item-style-component.php:134, ../includes/utils/item-style-component.php:178, ../includes/utils/logo-component.php:208, ../includes/utils/logo-component.php:310, ../includes/widgets/accordion.php:497, ../includes/widgets/accordion.php:709, ../includes/widgets/accordion.php:1069, ../includes/widgets/accordion.php:1112, ../includes/widgets/contact-form.php:1898, ../includes/widgets/contact-form.php:1948, ../includes/widgets/counter.php:676, ../includes/widgets/icon-box.php:1144, ../includes/widgets/icon-box.php:1600, ../includes/widgets/icon-box.php:1651, ../includes/widgets/icon-list.php:455, ../includes/widgets/icon-list.php:701, ../includes/widgets/icon-list.php:1010, ../includes/widgets/tabs.php:583, ../includes/widgets/tabs.php:642, ../includes/widgets/tabs.php:727, ../includes/widgets/tabs.php:1190 msgid "Border Color" msgstr "" #: ../includes/utils/carousel-component.php:1366 msgid "Space Between Dots" msgstr "" #: ../includes/utils/carousel-component.php:1418 msgid "Advanced Size" msgstr "" #: ../includes/utils/carousel-component.php:1426, ../includes/utils/carousel-component.php:1563, ../includes/widgets/highlighted-text.php:337 msgid "Width" msgstr "" #: ../includes/utils/carousel-component.php:1456, ../includes/utils/carousel-component.php:1593, ../includes/widgets/icon-list.php:535 msgid "Height" msgstr "" #: ../includes/utils/carousel-component.php:1518, ../includes/utils/form-component.php:866, ../includes/utils/gallery-component.php:443, ../includes/utils/item-style-component.php:163, ../includes/utils/pagination-component.php:368, ../includes/utils/post-component.php:421, ../includes/utils/post-filter-component.php:234, ../includes/widgets/accordion.php:513, ../includes/widgets/accordion.php:725, ../includes/widgets/accordion.php:875, ../includes/widgets/accordion.php:1085, ../includes/widgets/contact-form.php:1760, ../includes/widgets/logo-carousel.php:124, ../includes/widgets/tabs.php:692, ../includes/widgets/tabs.php:864, ../includes/widgets/tabs.php:971, ../includes/widgets/tabs.php:1133 msgid "Active" msgstr "" #: ../includes/utils/carousel-component.php:1672, ../includes/utils/form-component.php:785, ../includes/utils/form-component.php:842, ../includes/utils/form-component.php:886, ../includes/utils/form-component.php:982, ../includes/utils/form-component.php:1034, ../includes/utils/gallery-component.php:819, ../includes/utils/logo-component.php:150, ../includes/utils/logo-component.php:300, ../includes/utils/meta-component.php:191, ../includes/utils/testimonial-component.php:955, ../includes/utils/testimonial-component.php:968, ../includes/widgets/contact-form.php:1679, ../includes/widgets/contact-form.php:1736, ../includes/widgets/contact-form.php:1780, ../includes/widgets/contact-form.php:1871, ../includes/widgets/contact-form.php:1923, ../includes/widgets/icon-list.php:606, ../includes/widgets/icon-list.php:690, ../includes/widgets/icon-list.php:917, ../includes/widgets/icon-list.php:999, ../includes/widgets/tabs.php:567, ../includes/widgets/tabs.php:626, ../includes/widgets/tabs.php:711, ../includes/widgets/tabs.php:1091, ../includes/widgets/tabs.php:1120, ../includes/widgets/tabs.php:1149, ../includes/widgets/tabs.php:1177 msgid "Background Color" msgstr "" #: ../includes/utils/carousel-component.php:1726, ../includes/utils/testimonial-component.php:913 msgid "Active Color" msgstr "" #: ../includes/utils/carousel-component.php:1738, ../includes/utils/pagination-component.php:84 msgid "Typography" msgstr "" #: ../includes/utils/carousel-component.php:1756, ../includes/widgets/accordion.php:393 msgid "Item Gap" msgstr "" #: ../includes/utils/carousel-component.php:1773 msgid "Match Item Height" msgstr "" #: ../includes/utils/carousel-component.php:1812 msgid "Slide Height" msgstr "" #: ../includes/utils/carousel-component.php:1842 msgid "Coverflow" msgstr "" #: ../includes/utils/carousel-component.php:1843, ../includes/widgets/accordion.php:1289 msgid "Fade" msgstr "" #: ../includes/utils/carousel-component.php:1844 msgid "Cards" msgstr "" #: ../includes/utils/carousel-component.php:1845 msgid "Flip" msgstr "" #: ../includes/utils/carousel-component.php:1847 msgid "Stacked" msgstr "" #: ../includes/utils/carousel-component.php:1852 msgid "Circular Avatar" msgstr "" #: ../includes/utils/form-component.php:25, ../includes/widgets/contact-form.php:137 msgid "To" msgstr "" #: ../includes/utils/form-component.php:33, ../includes/utils/form-component.php:140, ../includes/utils/form-component.php:157, ../includes/widgets/contact-form.php:145, ../includes/widgets/contact-form.php:252, ../includes/widgets/contact-form.php:269 msgid "Separate emails with commas" msgstr "" #. translators: %s: Site title. #: ../includes/utils/form-component.php:42, ../includes/widgets/contact-form.php:154 msgid "New message from \"%s\"" msgstr "" #: ../includes/utils/form-component.php:47, ../includes/widgets/contact-form.php:159 msgid "Subject" msgstr "" #: ../includes/utils/form-component.php:65, ../includes/widgets/contact-form.php:177, ../includes/widgets/contact-form.php:999, ../includes/widgets/contact-form.php:1000 msgid "Message" msgstr "" #. translators: %s: The [all-fields] shortcode. #: ../includes/utils/form-component.php:74, ../includes/widgets/contact-form.php:186 msgid "By default, all form fields are sent via %s shortcode. To customize sent fields, copy the shortcode that appears inside each field and paste it above." msgstr "" #: ../includes/utils/form-component.php:89, ../includes/widgets/contact-form.php:201 msgid "From Email" msgstr "" #: ../includes/utils/form-component.php:105, ../includes/widgets/contact-form.php:217 msgid "From Name" msgstr "" #: ../includes/utils/form-component.php:121, ../includes/widgets/contact-form.php:233 msgid "Reply-To" msgstr "" #: ../includes/utils/form-component.php:134, ../includes/widgets/contact-form.php:246 msgid "Cc" msgstr "" #: ../includes/utils/form-component.php:151, ../includes/widgets/contact-form.php:263 msgid "Bcc" msgstr "" #: ../includes/utils/form-component.php:168, ../includes/widgets/contact-form.php:280, ../includes/widgets/theme-builder/post-meta.php:55 msgid "Meta Data" msgstr "" #: ../includes/utils/form-component.php:181, ../includes/widgets/contact-form.php:101, ../includes/widgets/contact-form.php:293, ../includes/widgets/post-grid.php:215 msgid "Date" msgstr "" #: ../includes/utils/form-component.php:182, ../includes/widgets/contact-form.php:102, ../includes/widgets/contact-form.php:294 msgid "Time" msgstr "" #: ../includes/utils/form-component.php:183, ../includes/widgets/contact-form.php:295 msgid "Page URL" msgstr "" #: ../includes/utils/form-component.php:184, ../includes/widgets/contact-form.php:296 msgid "User Agent" msgstr "" #: ../includes/utils/form-component.php:185, ../includes/widgets/contact-form.php:297 msgid "Remote IP" msgstr "" #: ../includes/utils/form-component.php:194, ../includes/widgets/contact-form.php:306 msgid "Send As" msgstr "" #: ../includes/utils/form-component.php:199, ../includes/widgets/contact-form.php:108, ../includes/widgets/contact-form.php:311, ../includes/widgets/contact-form.php:737 msgid "HTML" msgstr "" #: ../includes/utils/form-component.php:200, ../includes/widgets/contact-form.php:312 msgid "Plain" msgstr "" #: ../includes/utils/form-component.php:210, ../includes/widgets/contact-form.php:1247 msgid "Redirect To" msgstr "" #: ../includes/utils/form-component.php:212, ../includes/widgets/contact-form.php:1249, ../includes/widgets/icon-box.php:382 msgid "https://your-link.com" msgstr "" #: ../includes/utils/form-component.php:245 msgid "You haven't set your Mailchimp API key yet." msgstr "" #: ../includes/utils/form-component.php:246, ../includes/widgets/contact-form.php:850, ../includes/widgets/newsletter.php:435 msgid "Click here to configure your API keys." msgstr "" #: ../includes/utils/form-component.php:254 msgid "Audience ID" msgstr "" #: ../includes/utils/form-component.php:256 msgid "Enter the Audience ID to subscribe the user to." msgstr "" #: ../includes/utils/form-component.php:273 msgid "Field Mapping" msgstr "" #: ../includes/utils/form-component.php:275 msgid "You need to set the \"ID\" of the field you want to map." msgstr "" #: ../includes/utils/form-component.php:283 msgid "Email*" msgstr "" #: ../includes/utils/form-component.php:294 msgid "Birthday" msgstr "" #: ../includes/utils/form-component.php:296 msgid "Expects the format MM/DD." msgstr "" #: ../includes/utils/form-component.php:306 msgid "First Name" msgstr "" #: ../includes/utils/form-component.php:317 msgid "Last Name" msgstr "" #: ../includes/utils/form-component.php:328 msgid "Phone" msgstr "" #: ../includes/utils/form-component.php:346, ../includes/widgets/contact-form.php:1292 msgid "Form ID" msgstr "" #: ../includes/utils/form-component.php:352, ../includes/utils/form-component.php:576, ../includes/widgets/contact-form.php:1168, ../includes/widgets/contact-form.php:1298 msgid "Please make sure the ID is unique and not used elsewhere on the page this form is displayed. This field allows `A-z 0-9` & underscore chars without spaces." msgstr "" #: ../includes/utils/form-component.php:362, ../includes/widgets/contact-form.php:1308 msgid "Form Validation" msgstr "" #: ../includes/utils/form-component.php:365, ../includes/widgets/contact-form.php:1311 msgid "Browser Default" msgstr "" #: ../includes/utils/form-component.php:366, ../includes/widgets/contact-form.php:1312 msgid "No validation" msgstr "" #: ../includes/utils/form-component.php:374, ../includes/widgets/contact-form.php:1320 msgid "Custom Messages" msgstr "" #: ../includes/utils/form-component.php:384, ../includes/widgets/contact-form.php:1330 msgid "Success Message" msgstr "" #: ../includes/utils/form-component.php:401, ../includes/widgets/contact-form.php:1347 msgid "Form Error" msgstr "" #: ../includes/utils/form-component.php:418, ../includes/widgets/contact-form.php:1364 msgid "Email Sending Error" msgstr "" #: ../includes/utils/form-component.php:435, ../includes/widgets/contact-form.php:1404 msgid "Sucessfull Redirect" msgstr "" #: ../includes/utils/form-component.php:466, ../includes/widgets/contact-form.php:775, ../includes/widgets/contact-form.php:1046, ../includes/widgets/newsletter.php:281, ../includes/widgets/newsletter.php:356 msgid "Column Width" msgstr "" #: ../includes/utils/form-component.php:475, ../includes/utils/gallery-component.php:296, ../includes/utils/post-component.php:726, ../includes/utils/post-filter-component.php:99, ../includes/widgets/accordion.php:572, ../includes/widgets/accordion.php:911, ../includes/widgets/accordion.php:1230, ../includes/widgets/contact-form.php:1069, ../includes/widgets/highlighted-text.php:267, ../includes/widgets/icon-box.php:301, ../includes/widgets/icon-list.php:366, ../includes/widgets/theme-builder/page-description.php:139, ../includes/widgets/theme-builder/the-content.php:58, ../includes/widgets/theme-builder/the-title.php:140 msgid "Alignment" msgstr "" #: ../includes/utils/form-component.php:491, ../includes/utils/post-component.php:542, ../includes/utils/post-component.php:742, ../includes/utils/testimonial-component.php:340, ../includes/widgets/contact-form.php:1085, ../includes/widgets/icon-box.php:317, ../includes/widgets/theme-builder/page-description.php:155, ../includes/widgets/theme-builder/the-content.php:74, ../includes/widgets/theme-builder/the-title.php:156 msgid "Justified" msgstr "" #: ../includes/utils/form-component.php:502, ../includes/widgets/contact-form.php:1096, ../includes/widgets/contact-form.php:2253, ../includes/widgets/contact-form.php:2499, ../includes/widgets/newsletter.php:674 msgid "Submit" msgstr "" #: ../includes/utils/form-component.php:519, ../includes/utils/meta-component.php:135, ../includes/widgets/accordion.php:166, ../includes/widgets/contact-form.php:1111, ../includes/widgets/counter.php:102, ../includes/widgets/highlighted-text.php:88, ../includes/widgets/highlighted-text.php:137, ../includes/widgets/icon-box.php:100, ../includes/widgets/icon-box.php:114, ../includes/widgets/icon-box.php:420, ../includes/widgets/icon-box.php:2034, ../includes/widgets/icon-list.php:101, ../includes/widgets/icon-list.php:864, ../includes/widgets/tabs.php:135, ../includes/widgets/tabs.php:995 msgid "Icon" msgstr "" #: ../includes/utils/form-component.php:528, ../includes/widgets/contact-form.php:1120, ../includes/widgets/icon-box.php:196, ../includes/widgets/icon-box.php:433, ../includes/widgets/icon-list.php:268, ../includes/widgets/tabs.php:344 msgid "Icon Position" msgstr "" #: ../includes/utils/form-component.php:532, ../includes/widgets/contact-form.php:1124, ../includes/widgets/tabs.php:217, ../includes/widgets/tabs.php:348, ../includes/widgets/tabs.php:352 msgid "Before" msgstr "" #: ../includes/utils/form-component.php:533, ../includes/widgets/contact-form.php:1125, ../includes/widgets/tabs.php:213, ../includes/widgets/tabs.php:356 msgid "After" msgstr "" #: ../includes/utils/form-component.php:543, ../includes/widgets/accordion.php:1015, ../includes/widgets/contact-form.php:1135, ../includes/widgets/icon-box.php:456 msgid "Icon Spacing" msgstr "" #: ../includes/utils/form-component.php:569, ../includes/widgets/contact-form.php:1161, ../includes/widgets/icon-box.php:535 msgid "Button ID" msgstr "" #: ../includes/utils/form-component.php:575, ../includes/widgets/contact-form.php:1167, ../includes/widgets/tabs.php:169 msgid "Add your custom id WITHOUT the Pound key. e.g: my-id" msgstr "" #: ../includes/utils/form-component.php:592, ../includes/widgets/contact-form.php:1435 msgid "Form" msgstr "" #: ../includes/utils/form-component.php:600, ../includes/widgets/contact-form.php:1443 msgid "Columns Gap" msgstr "" #: ../includes/utils/form-component.php:626, ../includes/widgets/contact-form.php:1469 msgid "Rows Gap" msgstr "" #: ../includes/utils/form-component.php:652, ../includes/widgets/contact-form.php:595, ../includes/widgets/contact-form.php:1010, ../includes/widgets/contact-form.php:1495, ../includes/widgets/newsletter.php:179, ../includes/widgets/newsletter.php:250, ../includes/widgets/newsletter.php:325 msgid "Label" msgstr "" #: ../includes/utils/form-component.php:660, ../includes/utils/gallery-component.php:322, ../includes/utils/gallery-component.php:590, ../includes/utils/gallery-component.php:680, ../includes/utils/gallery-component.php:733, ../includes/utils/testimonial-component.php:477, ../includes/utils/testimonial-component.php:600, ../includes/utils/testimonial-component.php:722, ../includes/utils/testimonial-component.php:789, ../includes/utils/testimonial-component.php:859, ../includes/utils/testimonial-component.php:1087, ../includes/widgets/accordion.php:832, ../includes/widgets/accordion.php:1192, ../includes/widgets/contact-form.php:1503, ../includes/widgets/contact-form.php:1573, ../includes/widgets/icon-box.php:830, ../includes/widgets/icon-box.php:1284, ../includes/widgets/icon-box.php:1371, ../includes/widgets/icon-box.php:1455, ../includes/widgets/post-grid.php:304, ../includes/widgets/tabs.php:1021 msgid "Spacing" msgstr "" #: ../includes/utils/form-component.php:685, ../includes/utils/form-component.php:759, ../includes/utils/form-component.php:816, ../includes/utils/form-component.php:873, ../includes/utils/form-component.php:996, ../includes/utils/form-component.php:1046, ../includes/utils/meta-component.php:159, ../includes/utils/post-filter-component.php:143, ../includes/utils/post-filter-component.php:194, ../includes/utils/post-filter-component.php:240, ../includes/widgets/accordion.php:1140, ../includes/widgets/contact-form.php:1528, ../includes/widgets/contact-form.php:1653, ../includes/widgets/contact-form.php:1710, ../includes/widgets/contact-form.php:1767, ../includes/widgets/contact-form.php:1885, ../includes/widgets/contact-form.php:1935, ../includes/widgets/counter.php:1136, ../includes/widgets/counter.php:1156, ../includes/widgets/highlighted-text.php:423, ../includes/widgets/icon-box.php:1834, ../includes/widgets/icon-box.php:1921, ../includes/widgets/theme-builder/page-description.php:187, ../includes/widgets/theme-builder/the-content.php:87, ../includes/widgets/theme-builder/the-title.php:189 msgid "Text Color" msgstr "" #: ../includes/utils/form-component.php:698, ../includes/widgets/contact-form.php:1541 msgid "Mark Color" msgstr "" #: ../includes/utils/form-component.php:729, ../includes/widgets/contact-form.php:1624, ../includes/widgets/newsletter.php:206 msgid "Fields" msgstr "" #: ../includes/utils/form-component.php:772, ../includes/utils/form-component.php:829, ../includes/widgets/contact-form.php:1666, ../includes/widgets/contact-form.php:1723 msgid "Placeholder Color" msgstr "" #: ../includes/utils/form-component.php:944, ../includes/utils/post-component.php:129, ../includes/widgets/contact-form.php:1039, ../includes/widgets/contact-form.php:1834, ../includes/widgets/newsletter.php:451 msgid "Button" msgstr "" #: ../includes/utils/form-component.php:1074, ../includes/utils/logo-component.php:369, ../includes/widgets/contact-form.php:1963, ../includes/widgets/icon-box.php:1056, ../includes/widgets/tabs.php:672 msgid "Transition Duration" msgstr "" #: ../includes/utils/form-component.php:1116, ../includes/widgets/contact-form.php:2005 msgid "Text Padding" msgstr "" #: ../includes/utils/form-component.php:1135, ../includes/widgets/contact-form.php:2019 msgid "Messages" msgstr "" #: ../includes/utils/form-component.php:1144, ../includes/widgets/contact-form.php:2027 msgid "Show/Hide messages" msgstr "" #: ../includes/utils/form-component.php:1147, ../includes/widgets/contact-form.php:2030 msgid "Toggle" msgstr "" #: ../includes/utils/form-component.php:1164, ../includes/widgets/contact-form.php:2047 msgid "Success Message Color" msgstr "" #: ../includes/utils/form-component.php:1175, ../includes/widgets/contact-form.php:2058 msgid "Error Message Color" msgstr "" #: ../includes/utils/form-service.php:41 msgid "reCAPTCHA validation failed." msgstr "" #: ../includes/utils/form-service.php:112 msgid "No submit action enabled." msgstr "" #: ../includes/utils/form-service.php:81 msgid "Unknown submit action: " msgstr "" #: ../includes/utils/form-service.php:81 msgid ". Check your settings." msgstr "" #: ../includes/utils/form-service.php:290 msgid "Failed to upload file: " msgstr "" #: ../includes/utils/form-service.php:431 msgid "reCAPTCHA API keys are not set." msgstr "" #: ../includes/utils/form-service.php:485 msgid "Audience ID control is not set. Check your widget settings." msgstr "" #: ../includes/utils/form-service.php:483 msgid "Mailchimp API key is not set. Check Uicore Elements settings." msgstr "" #: ../includes/utils/form-service.php:532 msgid "Your submission was successful." msgstr "" #: ../includes/utils/form-service.php:533 msgid "Your submission failed because of an error." msgstr "" #: ../includes/utils/form-service.php:534 msgid "Failed to send email." msgstr "" #: ../includes/utils/form-service.php:535 msgid "Fill all required fields." msgstr "" #: ../includes/utils/form-service.php:536 msgid "Redirecting..." msgstr "" #: ../includes/utils/form-service.php:542 msgid "Invalid status message." msgstr "" #: ../includes/utils/form-service.php:543 msgid "Redirection failed. No URL set." msgstr "" #: ../includes/utils/form-service.php:544 msgid "The following field is empty: " msgstr "" #. translators: 1: Mailchimp HTTP status code, 2: Mailchimp status response #: ../includes/utils/form-service.php:584 msgid "Mailchimp HTTP \"%1$s,\" - \"%2$s,.\"" msgstr "" #: ../includes/utils/gallery-component.php:58, ../includes/widgets/icon-list.php:128 msgid "Link" msgstr "" #: ../includes/utils/gallery-component.php:66, ../includes/utils/gallery-component.php:68, ../includes/utils/gallery-component.php:642, ../includes/utils/logo-component.php:35, ../includes/utils/post-component.php:82, ../includes/widgets/accordion.php:564, ../includes/widgets/counter.php:219, ../includes/widgets/custom-carousel.php:120, ../includes/widgets/custom-table.php:147, ../includes/widgets/icon-box.php:145, ../includes/widgets/icon-box.php:1231, ../includes/widgets/icon-list.php:74, ../includes/widgets/icon-list.php:737, ../includes/widgets/tabs.php:111, ../includes/widgets/theme-builder/the-title.php:113, ../includes/widgets/theme-builder/the-title.php:181 msgid "Title" msgstr "" #: ../includes/utils/gallery-component.php:75, ../includes/utils/gallery-component.php:705, ../includes/widgets/icon-box.php:182, ../includes/widgets/icon-box.php:1403, ../includes/widgets/tabs.php:122, ../includes/widgets/tabs.php:888 msgid "Description" msgstr "" #: ../includes/utils/gallery-component.php:83, ../includes/utils/gallery-component.php:794, ../includes/widgets/contact-form.php:827, ../includes/widgets/icon-box.php:551, ../includes/widgets/icon-box.php:604, ../includes/widgets/icon-box.php:1687, ../includes/widgets/newsletter.php:412 msgid "Badge" msgstr "" #: ../includes/utils/gallery-component.php:91, ../includes/utils/gallery-component.php:761 msgid "Tags" msgstr "" #: ../includes/utils/gallery-component.php:93 msgid "Separate tags with commas" msgstr "" #: ../includes/utils/gallery-component.php:101, ../includes/widgets/accordion.php:132, ../includes/widgets/custom-carousel.php:110, ../includes/widgets/custom-carousel.php:173, ../includes/widgets/custom-table.php:90, ../includes/widgets/icon-list.php:65, ../includes/widgets/testimonial-carousel.php:113, ../includes/widgets/testimonial-grid.php:104 msgid "Items" msgstr "" #: ../includes/utils/gallery-component.php:106, ../includes/widgets/custom-carousel.php:135 msgid "Item #1" msgstr "" #: ../includes/utils/gallery-component.php:109, ../includes/widgets/custom-carousel.php:136 msgid "Item #2" msgstr "" #: ../includes/utils/gallery-component.php:112, ../includes/widgets/custom-carousel.php:137 msgid "Item #3" msgstr "" #: ../includes/utils/gallery-component.php:115 msgid "Item #4" msgstr "" #: ../includes/utils/gallery-component.php:118 msgid "Item #5" msgstr "" #: ../includes/utils/gallery-component.php:121 msgid "Item #6" msgstr "" #: ../includes/utils/gallery-component.php:135, ../includes/widgets/accordion.php:233, ../includes/widgets/counter.php:1181, ../includes/widgets/icon-box.php:2152 msgid "Additional" msgstr "" #: ../includes/utils/gallery-component.php:142, ../includes/utils/testimonial-component.php:1162, ../includes/widgets/post-grid.php:143 msgid "Layout" msgstr "" #: ../includes/utils/gallery-component.php:149, ../includes/utils/post-component.php:51 msgid "Overlay" msgstr "" #: ../includes/utils/gallery-component.php:157 msgid "Hide overflow" msgstr "" #: ../includes/utils/gallery-component.php:161 msgid "Useful if you have an animation, on an image, for example, that surpasses the item area and you want to hide it." msgstr "" #: ../includes/utils/gallery-component.php:171 msgid "Hide item tags" msgstr "" #: ../includes/utils/gallery-component.php:181 msgid "Hide title" msgstr "" #: ../includes/utils/gallery-component.php:190 msgid "Hide description" msgstr "" #: ../includes/utils/gallery-component.php:200 msgid "Use filters" msgstr "" #: ../includes/utils/gallery-component.php:208 msgid "Clear Text" msgstr "" #: ../includes/utils/gallery-component.php:210, ../includes/utils/post-filter-component.php:388, ../includes/utils/post-filter-component.php:385 msgid "All" msgstr "" #: ../includes/utils/gallery-component.php:211 msgid "Clear filter text" msgstr "" #: ../includes/utils/gallery-component.php:222 msgid "Title Tag" msgstr "" #: ../includes/utils/gallery-component.php:232, ../includes/utils/logo-component.php:340, ../includes/utils/post-component.php:69, ../includes/widgets/counter.php:808 msgid "Image Size" msgstr "" #: ../includes/utils/gallery-component.php:241, ../includes/widgets/icon-list.php:345 msgid "Content Position" msgstr "" #: ../includes/utils/gallery-component.php:262 msgid "Badge Position" msgstr "" #: ../includes/utils/gallery-component.php:268 msgid "After title" msgstr "" #: ../includes/utils/gallery-component.php:269 msgid "Image top left" msgstr "" #: ../includes/utils/gallery-component.php:270 msgid "Image top right" msgstr "" #: ../includes/utils/gallery-component.php:271 msgid "Image bottom left" msgstr "" #: ../includes/utils/gallery-component.php:272 msgid "Image bottom right" msgstr "" #: ../includes/utils/gallery-component.php:285, ../includes/utils/post-filter-component.php:27, ../includes/utils/post-filter-component.php:35 msgid "Filters" msgstr "" #: ../includes/utils/gallery-component.php:384, ../includes/utils/gallery-component.php:426, ../includes/utils/gallery-component.php:468, ../includes/utils/gallery-component.php:833, ../includes/utils/item-style-component.php:40, ../includes/widgets/accordion.php:1160, ../includes/widgets/icon-list.php:421, ../includes/widgets/icon-list.php:618, ../includes/widgets/icon-list.php:929, ../includes/widgets/icon-list.php:1136 msgid "Border" msgstr "" #: ../includes/utils/gallery-component.php:557 msgid "Image Height" msgstr "" #: ../includes/utils/gallery-component.php:670, ../includes/utils/testimonial-component.php:712, ../includes/utils/testimonial-component.php:779, ../includes/utils/testimonial-component.php:842 msgid "Hover Color" msgstr "" #: ../includes/utils/grid-component.php:24, ../includes/widgets/icon-list.php:167 msgid "Columns" msgstr "" #: ../includes/utils/grid-component.php:49, ../includes/utils/meta-component.php:265, ../includes/utils/pagination-component.php:187 msgid "Items Gap" msgstr "" #: ../includes/utils/grid-component.php:72, ../includes/widgets/advanced-post-grid.php:194, ../includes/widgets/post-grid.php:156 msgid "Masonry" msgstr "" #: ../includes/utils/logo-component.php:42 msgid "Logo Image" msgstr "" #: ../includes/utils/logo-component.php:52 msgid "Website URL" msgstr "" #: ../includes/utils/logo-component.php:67 msgid "Item 1" msgstr "" #: ../includes/utils/logo-component.php:71 msgid "Item 2" msgstr "" #: ../includes/utils/logo-component.php:75 msgid "Item 3" msgstr "" #: ../includes/utils/logo-component.php:79 msgid "Item 4" msgstr "" #: ../includes/utils/logo-component.php:83 msgid "Item 5" msgstr "" #: ../includes/utils/logo-component.php:87 msgid "Item 6" msgstr "" #: ../includes/utils/logo-component.php:91 msgid "Item 7" msgstr "" #: ../includes/utils/logo-component.php:95 msgid "Item 8" msgstr "" #: ../includes/utils/logo-component.php:119 msgid "Item Height" msgstr "" #: ../includes/utils/logo-component.php:161 msgid "Border Type" msgstr "" #: ../includes/utils/logo-component.php:165 msgid "Solid" msgstr "" #: ../includes/utils/logo-component.php:166 msgid "Double" msgstr "" #: ../includes/utils/logo-component.php:167 msgid "Dotted" msgstr "" #: ../includes/utils/logo-component.php:168 msgid "Dashed" msgstr "" #: ../includes/utils/logo-component.php:169 msgid "Groove" msgstr "" #: ../includes/utils/logo-component.php:180, ../includes/widgets/tabs.php:586, ../includes/widgets/tabs.php:645, ../includes/widgets/tabs.php:730, ../includes/widgets/tabs.php:1193 msgid "Border Width" msgstr "" #: ../includes/utils/meta-component.php:22, ../includes/widgets/post-grid.php:202 msgid "Author" msgstr "" #: ../includes/utils/meta-component.php:23 msgid "Posted Date" msgstr "" #: ../includes/utils/meta-component.php:24 msgid "Updated Date" msgstr "" #: ../includes/utils/meta-component.php:25 msgid "Comments Count" msgstr "" #: ../includes/utils/meta-component.php:26 msgid "Reading Time" msgstr "" #: ../includes/utils/meta-component.php:27, ../includes/widgets/post-grid.php:241 msgid "Category" msgstr "" #: ../includes/utils/meta-component.php:28 msgid "Tag" msgstr "" #: ../includes/utils/meta-component.php:31 msgid "Product Price" msgstr "" #: ../includes/utils/meta-component.php:32 msgid "Product Rating" msgstr "" #: ../includes/utils/meta-component.php:33 msgid "Product Stock" msgstr "" #: ../includes/utils/meta-component.php:34 msgid "Product Category" msgstr "" #: ../includes/utils/meta-component.php:35 msgid "Product Tag" msgstr "" #: ../includes/utils/meta-component.php:36 msgid "Product Attribute" msgstr "" #: ../includes/utils/meta-component.php:37 msgid "Product Sale" msgstr "" #: ../includes/utils/meta-component.php:41 msgid "Custom Taxonomy" msgstr "" #: ../includes/utils/meta-component.php:42, ../includes/utils/meta-component.php:70 msgid "Custom HTML" msgstr "" #: ../includes/utils/meta-component.php:45 msgid "Portfolio Category" msgstr "" #: ../includes/utils/meta-component.php:55, ../includes/utils/post-component.php:167 msgid "Meta" msgstr "" #: ../includes/utils/meta-component.php:62 msgid "Custom Field Name" msgstr "" #: ../includes/utils/meta-component.php:78 msgid "Date Format" msgstr "" #: ../includes/utils/meta-component.php:95 msgid "Custom Format" msgstr "" #: ../includes/utils/meta-component.php:97 msgid "Documentation on date and time formatting" msgstr "" #: ../includes/utils/meta-component.php:105 msgid "Text Before" msgstr "" #: ../includes/utils/meta-component.php:113 msgid "Text After" msgstr "" #: ../includes/utils/meta-component.php:121 msgid "Display Type" msgstr "" #: ../includes/utils/meta-component.php:125, ../includes/utils/testimonial-component.php:53, ../includes/utils/testimonial-component.php:691, ../includes/widgets/contact-form.php:974, ../includes/widgets/contact-form.php:975, ../includes/widgets/newsletter.php:213, ../includes/widgets/newsletter.php:315 msgid "Name" msgstr "" #: ../includes/utils/meta-component.php:126 msgid "Avatar & Name" msgstr "" #: ../includes/utils/meta-component.php:127, ../includes/utils/testimonial-component.php:39, ../includes/utils/testimonial-component.php:384 msgid "Avatar" msgstr "" #: ../includes/utils/meta-component.php:170 msgid "Link Color" msgstr "" #: ../includes/utils/meta-component.php:181 msgid "Link Hover Color" msgstr "" #: ../includes/utils/meta-component.php:213, ../includes/utils/post-component.php:520, ../includes/widgets/accordion.php:1222, ../includes/widgets/icon-list.php:430, ../includes/widgets/icon-list.php:470 msgid "Box Shadow" msgstr "" #: ../includes/utils/meta-component.php:242 msgid "Meta Top Space" msgstr "" #: ../includes/utils/meta-component.php:232, ../includes/utils/testimonial-component.php:1014, ../includes/widgets/icon-list.php:650, ../includes/widgets/icon-list.php:792, ../includes/widgets/icon-list.php:965, ../includes/widgets/icon-list.php:1156 msgid "Margin" msgstr "" #: ../includes/utils/meta-component.php:284 msgid "Separator" msgstr "" #: ../includes/utils/meta-component.php:290 msgid "Items placement" msgstr "" #: ../includes/utils/meta-component.php:294, ../includes/widgets/icon-box.php:1702 msgid "Top Left" msgstr "" #: ../includes/utils/meta-component.php:295, ../includes/widgets/icon-box.php:1704 msgid "Top Right" msgstr "" #: ../includes/utils/meta-component.php:296, ../includes/widgets/icon-box.php:1708 msgid "Bottom Left" msgstr "" #: ../includes/utils/meta-component.php:297, ../includes/widgets/icon-box.php:1710 msgid "Bottom Right" msgstr "" #. translators: %s: Author's display name. #: ../includes/utils/meta-component.php:326 msgid "View %s’s posts" msgstr "" #: ../includes/utils/meta-component.php:354 msgid "Sale!" msgstr "" #: ../includes/utils/pagination-component.php:23 msgid "Numbers" msgstr "" #: ../includes/utils/pagination-component.php:24 msgid "Load More" msgstr "" #: ../includes/utils/pagination-component.php:33, ../includes/utils/pagination-component.php:41 msgid "Pagination" msgstr "" #: ../includes/utils/pagination-component.php:50 msgid "Pagination Type" msgstr "" #: ../includes/utils/pagination-component.php:71 msgid "Pagination Style" msgstr "" #: ../includes/utils/pagination-component.php:91 msgid "Previous/Next Icon Size" msgstr "" #: ../includes/utils/pagination-component.php:117 msgid "Pagination Top Space" msgstr "" #: ../includes/utils/pagination-component.php:140 msgid "Pagination Alignment" msgstr "" #: ../includes/utils/pagination-component.php:162 msgid "Items Padding" msgstr "" #: ../includes/utils/pagination-component.php:212 msgid "Items Border Radius" msgstr "" #: ../includes/utils/pagination-component.php:238 msgid "Button Padding" msgstr "" #: ../includes/utils/pagination-component.php:252 msgid "Button Radius" msgstr "" #: ../includes/utils/pagination-component.php:457 msgctxt "Frontend - Pagination" msgid "Posts navigation" msgstr "" #: ../includes/utils/pagination-component.php:478 msgctxt "Frontend - Pagination" msgid "Products navigation" msgstr "" #: ../includes/utils/post-component.php:38, ../includes/widgets/accordion.php:385, ../includes/widgets/gallery-carousel.php:100, ../includes/widgets/gallery-grid.php:108 msgid "Item" msgstr "" #: ../includes/utils/post-component.php:45, ../includes/utils/post-component.php:347, ../includes/widgets/post-grid.php:148 msgid "Item Style" msgstr "" #: ../includes/utils/post-component.php:49 msgid "Classic" msgstr "" #: ../includes/utils/post-component.php:50 msgid "Split" msgstr "" #: ../includes/utils/post-component.php:90, ../includes/widgets/post-grid.php:228, ../includes/widgets/post-grid.php:296 msgid "Excerpt" msgstr "" #: ../includes/utils/post-component.php:98 msgid "Excerpt Length (words)" msgstr "" #: ../includes/utils/post-component.php:113, ../includes/widgets/icon-box.php:593 msgid "Read More Button" msgstr "" #: ../includes/utils/post-component.php:175 msgid "Top Meta" msgstr "" #: ../includes/utils/post-component.php:191 msgid "Before Title Meta" msgstr "" #: ../includes/utils/post-component.php:207 msgid "After Title Meta" msgstr "" #: ../includes/utils/post-component.php:223 msgid "Bottom Meta" msgstr "" #: ../includes/utils/post-component.php:252, ../includes/widgets/post-grid.php:103 msgid "Query" msgstr "" #: ../includes/utils/post-component.php:261, ../includes/widgets/post-grid.php:108 msgid "Posts" msgstr "" #: ../includes/utils/post-component.php:262, ../includes/widgets/advanced-product-grid.php:126 msgid "Current Query Settings > Reading" msgstr "" #: ../includes/utils/post-component.php:268, ../includes/widgets/post-grid.php:112 msgid "Item Limit" msgstr "" #: ../includes/utils/post-component.php:289 msgid "Query Offset" msgstr "" #: ../includes/utils/post-component.php:312 msgid "Offset is disabled with Load More pagination." msgstr "" #: ../includes/utils/post-component.php:322 msgid "Sticky Posts" msgstr "" #: ../includes/utils/post-component.php:324, ../includes/utils/post-component.php:847, ../includes/utils/post-component.php:887, ../includes/utils/post-component.php:904, ../includes/widgets/advanced-product-grid.php:170, ../includes/widgets/advanced-product-grid.php:181, ../includes/widgets/contact-form.php:1012, ../includes/widgets/contact-form.php:1024, ../includes/widgets/counter.php:87, ../includes/widgets/icon-box.php:1977, ../includes/widgets/icon-box.php:2033, ../includes/widgets/newsletter.php:181, ../includes/widgets/newsletter.php:192, ../includes/widgets/tabs.php:488 msgid "Show" msgstr "" #: ../includes/utils/post-component.php:325, ../includes/widgets/advanced-product-grid.php:171, ../includes/widgets/advanced-product-grid.php:182, ../includes/widgets/contact-form.php:1013, ../includes/widgets/contact-form.php:1025, ../includes/widgets/counter.php:88, ../includes/widgets/newsletter.php:182, ../includes/widgets/newsletter.php:193, ../includes/widgets/tabs.php:489 msgid "Hide" msgstr "" #: ../includes/utils/post-component.php:326 msgid "Sticky posts works only on the front-end." msgstr "" #: ../includes/utils/post-component.php:480, ../includes/widgets/post-grid.php:258 msgid "Content Style" msgstr "" #: ../includes/utils/post-component.php:488 msgid "Image Height (%)" msgstr "" #: ../includes/utils/post-component.php:530, ../includes/utils/testimonial-component.php:324, ../includes/widgets/tabs.php:373, ../includes/widgets/tabs.php:408, ../includes/widgets/theme-builder/post-meta.php:70 msgid "Content Alignment" msgstr "" #: ../includes/utils/post-component.php:554, ../includes/widgets/accordion.php:610, ../includes/widgets/accordion.php:689, ../includes/widgets/accordion.php:732, ../includes/widgets/icon-list.php:813 msgid "Title Color" msgstr "" #: ../includes/utils/post-component.php:566 msgid "Title Hover Color" msgstr "" #: ../includes/utils/post-component.php:578 msgid "Title Typography" msgstr "" #: ../includes/utils/post-component.php:585 msgid "Title Top Space" msgstr "" #: ../includes/utils/post-component.php:608 msgid "Excerpt Color" msgstr "" #: ../includes/utils/post-component.php:620 msgid "Excerpt Typography" msgstr "" #: ../includes/utils/post-component.php:627 msgid "Excerpt Top Space" msgstr "" #: ../includes/utils/post-component.php:657, ../includes/widgets/counter.php:1189, ../includes/widgets/post-grid.php:342 msgid "Content Padding" msgstr "" #: ../includes/utils/post-component.php:668 msgid "Content Border Radius" msgstr "" #: ../includes/utils/post-component.php:681 msgid "Content Space" msgstr "" #: ../includes/utils/post-component.php:715 msgid "Button Style" msgstr "" #: ../includes/utils/post-component.php:775 msgid "Meta Style" msgstr "" #: ../includes/utils/post-component.php:793 msgid "Before Title" msgstr "" #: ../includes/utils/post-component.php:802 msgid "After Title" msgstr "" #: ../includes/utils/post-component.php:827 msgid "Image Hover Animation" msgstr "" #: ../includes/utils/post-component.php:833, ../includes/widgets/advanced-product-grid.php:269, ../includes/widgets/icon-box.php:2088 msgid "Zoom" msgstr "" #: ../includes/utils/post-component.php:841 msgid "Meta Hover Animation" msgstr "" #: ../includes/utils/post-component.php:855 msgid "Important Note" msgstr "" #: ../includes/utils/post-component.php:857 msgid "This works only for Below Title Meta." msgstr "" #: ../includes/utils/post-component.php:867 msgid "Title Hover Animation" msgstr "" #: ../includes/utils/post-component.php:873 msgid "Underline" msgstr "" #: ../includes/utils/post-component.php:881 msgid "Content Hover Animation" msgstr "" #: ../includes/utils/post-component.php:898, ../includes/widgets/icon-box.php:2028 msgid "Button Hover Animation" msgstr "" #: ../includes/utils/post-component.php:927 msgid "Button Top Space" msgstr "" #: ../includes/utils/post-component.php:1024, ../includes/utils/post-component.php:1041 msgid "View Post:" msgstr "" #: ../includes/utils/post-filter-component.php:44 msgid "Taxonomies" msgstr "" #: ../includes/utils/post-filter-component.php:58 msgid "Meta Slug" msgstr "" #: ../includes/utils/post-filter-component.php:71 msgid "When using `load more` pagination, filters are disabled on taxonomy archive pages, such as categories, tags, authors, etc. Blog, shop, or custom post-type archive pages are not affected." msgstr "" #: ../includes/utils/post-filter-component.php:89 msgid "Filter Style" msgstr "" #: ../includes/utils/product-component.php:105, ../includes/utils/product-component.php:171 msgid "View Product:" msgstr "" #: ../includes/utils/product-component.php:259 msgid "Add to cart: “%s”" msgstr "" #: ../includes/utils/product-component.php:260 msgid "“%s” has been added to your cart" msgstr "" #: ../includes/utils/testimonial-component.php:58 msgid "Adam Smith" msgstr "" #: ../includes/utils/testimonial-component.php:59 msgid "Enter reviewer name" msgstr "" #: ../includes/utils/testimonial-component.php:66, ../includes/utils/testimonial-component.php:758 msgid "Job Title" msgstr "" #: ../includes/utils/testimonial-component.php:71, ../includes/utils/testimonial-component.php:133 msgid "SEO Expert" msgstr "" #: ../includes/utils/testimonial-component.php:72 msgid "Enter reviewer job title" msgstr "" #: ../includes/utils/testimonial-component.php:79, ../includes/utils/testimonial-component.php:884 msgid "Rating" msgstr "" #: ../includes/utils/testimonial-component.php:100 msgid "Review Text" msgstr "" #: ../includes/utils/testimonial-component.php:105 msgid "Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo." msgstr "" #: ../includes/utils/testimonial-component.php:106 msgid "Enter review text" msgstr "" #: ../includes/utils/testimonial-component.php:112, ../includes/utils/testimonial-component.php:570 msgid "Secondary Image" msgstr "" #: ../includes/utils/testimonial-component.php:132 msgid "Adam" msgstr "" #: ../includes/utils/testimonial-component.php:136 msgid "Karl" msgstr "" #: ../includes/utils/testimonial-component.php:137 msgid "Designer" msgstr "" #: ../includes/utils/testimonial-component.php:140 msgid "Maria" msgstr "" #: ../includes/utils/testimonial-component.php:141 msgid "Developer" msgstr "" #: ../includes/utils/testimonial-component.php:144 msgid "Michael" msgstr "" #: ../includes/utils/testimonial-component.php:145 msgid "Manager" msgstr "" #: ../includes/utils/testimonial-component.php:148 msgid "Lena" msgstr "" #: ../includes/utils/testimonial-component.php:149 msgid "CEO" msgstr "" #: ../includes/utils/testimonial-component.php:152 msgid "Jennifer" msgstr "" #: ../includes/utils/testimonial-component.php:153 msgid "Consultant" msgstr "" #: ../includes/utils/testimonial-component.php:166 msgid "Show Name" msgstr "" #: ../includes/utils/testimonial-component.php:175 msgid "Name HTML Tag" msgstr "" #: ../includes/utils/testimonial-component.php:187 msgid "Show Job Title" msgstr "" #: ../includes/utils/testimonial-component.php:196 msgid "Show Rating" msgstr "" #: ../includes/utils/testimonial-component.php:205 msgid "Rating Type" msgstr "" #: ../includes/utils/testimonial-component.php:209 msgid "Star" msgstr "" #: ../includes/utils/testimonial-component.php:210, ../includes/widgets/contact-form.php:100, ../includes/widgets/counter.php:183, ../includes/widgets/counter.php:872 msgid "Number" msgstr "" #: ../includes/utils/testimonial-component.php:220 msgid "Show Review Text" msgstr "" #: ../includes/utils/testimonial-component.php:229 msgid "Show Image" msgstr "" #: ../includes/utils/testimonial-component.php:248 msgid "Show Avatar" msgstr "" #: ../includes/utils/testimonial-component.php:267 msgid "Image Inline" msgstr "" #: ../includes/utils/testimonial-component.php:283 msgid "Image Alignment" msgstr "" #: ../includes/utils/testimonial-component.php:312 msgid "Show Divider" msgstr "" #: ../includes/utils/testimonial-component.php:354, ../includes/widgets/gallery-slider.php:81 msgid "Vertical Alignment" msgstr "" #: ../includes/utils/testimonial-component.php:441 msgid "Using `%` might make image height fits the available space, depending on layout and inline options, cutting the image. Using `px` althougt adjust the image." msgstr "" #: ../includes/utils/testimonial-component.php:497, ../includes/utils/testimonial-component.php:616 msgid "Offset" msgstr "" #: ../includes/utils/testimonial-component.php:509, ../includes/utils/testimonial-component.php:628, ../includes/widgets/post-grid.php:155 msgid "Horizontal" msgstr "" #: ../includes/utils/testimonial-component.php:538, ../includes/utils/testimonial-component.php:657 msgid "Vertical" msgstr "" #: ../includes/utils/testimonial-component.php:746 msgid "Text Shadow" msgstr "" #: ../includes/utils/testimonial-component.php:821, ../includes/widgets/contact-form.php:91, ../includes/widgets/counter.php:1117, ../includes/widgets/highlighted-text.php:75, ../includes/widgets/highlighted-text.php:87, ../includes/widgets/highlighted-text.php:101, ../includes/widgets/icon-box.php:366 msgid "Text" msgstr "" #: ../includes/utils/testimonial-component.php:1040 msgid "Space Between" msgstr "" #: ../includes/utils/testimonial-component.php:1065 msgid "Divider" msgstr "" #: ../includes/utils/testimonial-component.php:1166 msgid "Layout 1" msgstr "" #: ../includes/utils/testimonial-component.php:1167 msgid "Layout 2" msgstr "" #: ../includes/utils/testimonial-component.php:1168 msgid "Layout 3" msgstr "" #: ../includes/utils/testimonial-component.php:1169 msgid "Layout 4" msgstr "" #: ../includes/utils/testimonial-component.php:1170 msgid "Layout 5" msgstr "" #: ../includes/utils/testimonial-component.php:1171 msgid "Layout 6" msgstr "" #: ../includes/utils/testimonial-component.php:1184, ../includes/widgets/icon-box.php:2083 msgid "Item Hover Animation" msgstr "" #: ../includes/widgets/accordion.php:33, ../includes/widgets/accordion.php:64 msgid "Accordion" msgstr "" #: ../includes/widgets/accordion.php:73 msgid "Title & Content" msgstr "" #: ../includes/widgets/accordion.php:76 msgid "Accordion Title" msgstr "" #: ../includes/widgets/accordion.php:84 msgid "Select Source" msgstr "" #: ../includes/widgets/accordion.php:88 msgid "Custom Content" msgstr "" #: ../includes/widgets/accordion.php:89, ../includes/widgets/accordion.php:109 msgid "Section ID" msgstr "" #: ../includes/widgets/accordion.php:97, ../includes/widgets/accordion.php:1132, ../includes/widgets/advanced-product-grid.php:92, ../includes/widgets/contact-form.php:579, ../includes/widgets/highlighted-text.php:242, ../includes/widgets/tabs.php:1164, ../includes/widgets/theme-builder/page-description.php:112, ../includes/widgets/theme-builder/page-description.php:179, ../includes/widgets/theme-builder/post-meta.php:50 msgid "Content" msgstr "" #: ../includes/widgets/accordion.php:100 msgid "Accordion Content" msgstr "" #: ../includes/widgets/accordion.php:111 msgid "CSS ID from an element" msgstr "" #: ../includes/widgets/accordion.php:122, ../includes/widgets/accordion.php:788 msgid "Title Icon" msgstr "" #: ../includes/widgets/accordion.php:137 msgid "Accordion #1" msgstr "" #: ../includes/widgets/accordion.php:138, ../includes/widgets/accordion.php:142, ../includes/widgets/accordion.php:146 msgid "I am item content. Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo." msgstr "" #: ../includes/widgets/accordion.php:141 msgid "Accordion #2" msgstr "" #: ../includes/widgets/accordion.php:145 msgid "Accordion #3" msgstr "" #: ../includes/widgets/accordion.php:156, ../includes/widgets/icon-box.php:583, ../includes/widgets/icon-list.php:258 msgid "Title HTML Tag" msgstr "" #: ../includes/widgets/accordion.php:192, ../includes/widgets/tabs.php:146 msgid "Active Icon" msgstr "" #: ../includes/widgets/accordion.php:222 msgid "Show Title Icon" msgstr "" #: ../includes/widgets/accordion.php:240 msgid "Collapse All Items" msgstr "" #: ../includes/widgets/accordion.php:251 msgid "Multiple Open" msgstr "" #: ../includes/widgets/accordion.php:261 msgid "Active Item" msgstr "" #: ../includes/widgets/accordion.php:272 msgid "Hash Location" msgstr "" #: ../includes/widgets/accordion.php:282 msgid "Scrollspy" msgstr "" #: ../includes/widgets/accordion.php:296 msgid "Top Offset " msgstr "" #: ../includes/widgets/accordion.php:322 msgid "Scrollspy Delay" msgstr "" #: ../includes/widgets/accordion.php:347 msgid "Scrollspy Duration" msgstr "" #: ../includes/widgets/accordion.php:372 msgid "FAQ Schema" msgstr "" #: ../includes/widgets/accordion.php:373 msgid "Avoid activating schema for multiple Accordions on the same page to prevent errors in Google indexing. Activate schema only for the Accordion you intend to display in search results." msgstr "" #: ../includes/widgets/accordion.php:808, ../includes/widgets/accordion.php:861, ../includes/widgets/accordion.php:882 msgid "Title Icon Color" msgstr "" #: ../includes/widgets/accordion.php:900 msgid "Open & Close Icon" msgstr "" #: ../includes/widgets/accordion.php:915, ../includes/widgets/gallery-slider.php:86, ../includes/widgets/tabs.php:267, ../includes/widgets/tabs.php:306, ../includes/widgets/tabs.php:377, ../includes/widgets/tabs.php:412 msgid "Start" msgstr "" #: ../includes/widgets/accordion.php:919, ../includes/widgets/tabs.php:275, ../includes/widgets/tabs.php:314, ../includes/widgets/tabs.php:385, ../includes/widgets/tabs.php:420 msgid "End" msgstr "" #: ../includes/widgets/accordion.php:941, ../includes/widgets/accordion.php:1049, ../includes/widgets/accordion.php:1092 msgid "Item Icon Color" msgstr "" #: ../includes/widgets/accordion.php:994, ../includes/widgets/counter.php:840, ../includes/widgets/icon-list.php:872 msgid "Icon Size" msgstr "" #: ../includes/widgets/accordion.php:1257, ../includes/widgets/advanced-post-carousel.php:157, ../includes/widgets/advanced-post-grid.php:178, ../includes/widgets/counter.php:1218, ../includes/widgets/icon-box.php:1964, ../includes/widgets/logo-carousel.php:140, ../includes/widgets/logo-grid.php:129, ../includes/widgets/testimonial-carousel.php:170, ../includes/widgets/testimonial-grid.php:118 msgid "Animations" msgstr "" #: ../includes/widgets/accordion.php:1265 msgid "Accordion Animation" msgstr "" #: ../includes/widgets/accordion.php:1270 msgid "Basic" msgstr "" #: ../includes/widgets/accordion.php:1271 msgid "Slow" msgstr "" #: ../includes/widgets/accordion.php:1272 msgid "Expand" msgstr "" #: ../includes/widgets/accordion.php:1273 msgid "Overshadow" msgstr "" #: ../includes/widgets/accordion.php:1284 msgid "Icon Animation" msgstr "" #: ../includes/widgets/accordion.php:1290 msgid "Spin" msgstr "" #: ../includes/widgets/accordion.php:1291 msgid "Slide" msgstr "" #: ../includes/widgets/accordion.php:1301 msgid "Icon Rotation" msgstr "" #: ../includes/widgets/accordion.php:1386 msgid "You didn't define an ID." msgstr "" #: ../includes/widgets/advanced-post-carousel.php:35 msgid "Advanced Post Carousel" msgstr "" #: ../includes/widgets/advanced-post-carousel.php:124 msgid "Carousel" msgstr "" #: ../includes/widgets/advanced-post-carousel.php:133, ../includes/widgets/custom-carousel.php:160, ../includes/widgets/gallery-carousel.php:80, ../includes/widgets/logo-carousel.php:78, ../includes/widgets/testimonial-carousel.php:100 msgid "Carousel Settings" msgstr "" #: ../includes/widgets/advanced-post-carousel.php:230, ../includes/widgets/advanced-post-grid.php:276 msgid "No posts found." msgstr "" #: ../includes/widgets/advanced-post-grid.php:39 msgid "Advanced Post Grid" msgstr "" #: ../includes/widgets/advanced-post-grid.php:154, ../includes/widgets/post-grid.php:154 msgid "Grid" msgstr "" #: ../includes/widgets/advanced-product-grid.php:34 msgid "Advanced Product Grid" msgstr "" #: ../includes/widgets/advanced-product-grid.php:100, ../includes/widgets/advanced-product-grid.php:426 msgid "Please enable WooCommerce to use this widget." msgstr "" #: ../includes/widgets/advanced-product-grid.php:125 msgid "Products" msgstr "" #: ../includes/widgets/advanced-product-grid.php:147 msgid "Placement" msgstr "" #: ../includes/widgets/advanced-product-grid.php:168 msgid "Swatches" msgstr "" #: ../includes/widgets/advanced-product-grid.php:172 msgid "Will only work if you have Uicore Framework plugin active at least on version 6.0.1" msgstr "" #: ../includes/widgets/advanced-product-grid.php:179 msgid "Sale Badge" msgstr "" #: ../includes/widgets/advanced-product-grid.php:191 msgid "If you can't see the Sale Badge after setting 'Show', you problably didn't set any Meta option as 'Product Sale', or you don't have products on sale." msgstr "" #: ../includes/widgets/advanced-product-grid.php:208 msgid "Hide out of stock" msgstr "" #: ../includes/widgets/advanced-product-grid.php:225 msgid "Select Options Text" msgstr "" #: ../includes/widgets/advanced-product-grid.php:228 msgid "Variable product purchase text." msgstr "" #: ../includes/widgets/advanced-product-grid.php:229 msgid "Select Options" msgstr "" #: ../includes/widgets/advanced-product-grid.php:235 msgid "Unavailable Text" msgstr "" #: ../includes/widgets/advanced-product-grid.php:238 msgid "Out of stock or not available purchase text." msgstr "" #: ../includes/widgets/advanced-product-grid.php:239 msgid "Read more" msgstr "" #: ../includes/widgets/advanced-product-grid.php:270 msgid "Change image" msgstr "" #: ../includes/widgets/advanced-product-grid.php:307 msgid "Product Summary" msgstr "" #: ../includes/widgets/advanced-product-grid.php:313 msgid "Summary Length (words)" msgstr "" #: ../includes/widgets/advanced-product-grid.php:318 msgid "Add to Cart Button" msgstr "" #: ../includes/widgets/advanced-product-grid.php:325 msgid "Add to Cart Text" msgstr "" #: ../includes/widgets/advanced-product-grid.php:328 msgid "Add to cart" msgstr "" #: ../includes/widgets/advanced-product-grid.php:333 msgid "Summary Color" msgstr "" #: ../includes/widgets/advanced-product-grid.php:337 msgid "Summary Typography" msgstr "" #: ../includes/widgets/advanced-product-grid.php:341 msgid "Summary Top Space" msgstr "" #: ../includes/widgets/advanced-product-grid.php:437 msgid "This widget is set to display related products. To see the results, please preview the page, or customize your widget before setting \"current\" query." msgstr "" #: ../includes/widgets/advanced-product-grid.php:457 msgid "No products found." msgstr "" #: ../includes/widgets/contact-form.php:35 msgid "Contact Form" msgstr "" #: ../includes/widgets/contact-form.php:92, ../includes/widgets/contact-form.php:985, ../includes/widgets/contact-form.php:986, ../includes/widgets/contact-form.php:1194, ../includes/widgets/contact-form.php:1209, ../includes/widgets/newsletter.php:474, ../includes/widgets/newsletter.php:489 msgid "Email" msgstr "" #: ../includes/widgets/contact-form.php:93 msgid "Textarea" msgstr "" #: ../includes/widgets/contact-form.php:94 msgid "URL" msgstr "" #: ../includes/widgets/contact-form.php:95 msgid "Tel" msgstr "" #: ../includes/widgets/contact-form.php:96 msgid "Radio" msgstr "" #: ../includes/widgets/contact-form.php:97 msgid "Select" msgstr "" #: ../includes/widgets/contact-form.php:98 msgid "Checkbox" msgstr "" #: ../includes/widgets/contact-form.php:99 msgid "Acceptance" msgstr "" #: ../includes/widgets/contact-form.php:103 msgid "File Upload" msgstr "" #: ../includes/widgets/contact-form.php:104 msgid "Password" msgstr "" #: ../includes/widgets/contact-form.php:105, ../includes/widgets/newsletter.php:230 msgid "Honeypot" msgstr "" #: ../includes/widgets/contact-form.php:106 msgid "reCAPTCHA" msgstr "" #: ../includes/widgets/contact-form.php:107 msgid "reCAPTCHA V3" msgstr "" #: ../includes/widgets/contact-form.php:606, ../includes/widgets/newsletter.php:261, ../includes/widgets/newsletter.php:336 msgid "Placeholder" msgstr "" #: ../includes/widgets/contact-form.php:634, ../includes/widgets/newsletter.php:272, ../includes/widgets/newsletter.php:347 msgid "Required" msgstr "" #: ../includes/widgets/contact-form.php:657 msgid "Options" msgstr "" #: ../includes/widgets/contact-form.php:660 msgid "Enter each option in a separate line. To differentiate between label and value, separate them with a pipe char (\"|\"). For example: First Name|f_name" msgstr "" #: ../includes/widgets/contact-form.php:679 msgid "Multiple Selection" msgstr "" #: ../includes/widgets/contact-form.php:695, ../includes/widgets/contact-form.php:811 msgid "Rows" msgstr "" #: ../includes/widgets/contact-form.php:716 msgid "Inline List" msgstr "" #: ../includes/widgets/contact-form.php:755 msgid "Acceptance Text" msgstr "" #: ../includes/widgets/contact-form.php:765 msgid "Checked by Default" msgstr "" #: ../includes/widgets/contact-form.php:832, ../includes/widgets/newsletter.php:417 msgid "Visible" msgstr "" #: ../includes/widgets/contact-form.php:849, ../includes/widgets/newsletter.php:434 msgid "You haven't set your reCAPTCHA API keys yet." msgstr "" #: ../includes/widgets/contact-form.php:862 msgid "Advanced" msgstr "" #: ../includes/widgets/contact-form.php:872 msgid "Default Value" msgstr "" #: ../includes/widgets/contact-form.php:907 msgid "ID" msgstr "" #: ../includes/widgets/contact-form.php:909 msgid "Please make sure the ID is unique and not used elsewhere in this form. This field allows `A-z 0-9` & underscore chars without spaces." msgstr "" #: ../includes/widgets/contact-form.php:923, ../includes/widgets/newsletter.php:290, ../includes/widgets/newsletter.php:365 msgid "Custom Class" msgstr "" #: ../includes/widgets/contact-form.php:929, ../includes/widgets/newsletter.php:297, ../includes/widgets/newsletter.php:372 msgid "e.g: my-class" msgstr "" #: ../includes/widgets/contact-form.php:936, ../includes/widgets/newsletter.php:303, ../includes/widgets/newsletter.php:378 msgid "Shortcode" msgstr "" #: ../includes/widgets/contact-form.php:951 msgid "Form Fields" msgstr "" #: ../includes/widgets/contact-form.php:959, ../includes/widgets/contact-form.php:962, ../includes/widgets/newsletter.php:170, ../includes/widgets/newsletter.php:173 msgid "Form Name" msgstr "" #: ../includes/widgets/contact-form.php:961, ../includes/widgets/newsletter.php:172 msgid "New Form" msgstr "" #: ../includes/widgets/contact-form.php:992 msgid "address (honeypot)" msgstr "" #: ../includes/widgets/contact-form.php:993 msgid "address" msgstr "" #: ../includes/widgets/contact-form.php:1022, ../includes/widgets/newsletter.php:190 msgid "Required Mark" msgstr "" #: ../includes/widgets/contact-form.php:1098, ../includes/widgets/contact-form.php:1099 msgid "Send" msgstr "" #: ../includes/widgets/contact-form.php:1182, ../includes/widgets/newsletter.php:462 msgid "Actions After Submit" msgstr "" #: ../includes/widgets/contact-form.php:1189, ../includes/widgets/newsletter.php:469 msgid "Submit Actions" msgstr "" #: ../includes/widgets/contact-form.php:1195, ../includes/widgets/contact-form.php:1223, ../includes/widgets/newsletter.php:475, ../includes/widgets/newsletter.php:503 msgid "Email 2" msgstr "" #: ../includes/widgets/contact-form.php:1196, ../includes/widgets/contact-form.php:1237, ../includes/widgets/newsletter.php:476, ../includes/widgets/newsletter.php:517 msgid "Redirect" msgstr "" #: ../includes/widgets/contact-form.php:1197, ../includes/widgets/newsletter.php:477 msgid "MailChimp" msgstr "" #: ../includes/widgets/contact-form.php:1269, ../includes/widgets/newsletter.php:531 msgid "Mailchimp" msgstr "" #: ../includes/widgets/contact-form.php:1284, ../includes/widgets/counter.php:489, ../includes/widgets/icon-box.php:576, ../includes/widgets/newsletter.php:545 msgid "Additional Options" msgstr "" #: ../includes/widgets/contact-form.php:1381 msgid "Required Fields" msgstr "" #: ../includes/widgets/contact-form.php:1565 msgid "HTML Field" msgstr "" #: ../includes/widgets/counter.php:31, ../includes/widgets/counter.php:77 msgid "Counter" msgstr "" #: ../includes/widgets/counter.php:85 msgid "Show Icon" msgstr "" #: ../includes/widgets/counter.php:98, ../includes/widgets/icon-box.php:89 msgid "Icon Type" msgstr "" #: ../includes/widgets/counter.php:122 msgid "Choose icon" msgstr "" #: ../includes/widgets/counter.php:134, ../includes/widgets/highlighted-text.php:208 msgid "Choose Image" msgstr "" #: ../includes/widgets/counter.php:149 msgid "Starting number" msgstr "" #: ../includes/widgets/counter.php:166 msgid "Ending number" msgstr "" #: ../includes/widgets/counter.php:200 msgid "Number HTML class" msgstr "" #: ../includes/widgets/counter.php:204, ../includes/widgets/counter.php:238 msgid "H1" msgstr "" #: ../includes/widgets/counter.php:205, ../includes/widgets/counter.php:239 msgid "H2" msgstr "" #: ../includes/widgets/counter.php:206, ../includes/widgets/counter.php:240 msgid "H3" msgstr "" #: ../includes/widgets/counter.php:207, ../includes/widgets/counter.php:241 msgid "H4" msgstr "" #: ../includes/widgets/counter.php:208, ../includes/widgets/counter.php:242 msgid "H5" msgstr "" #: ../includes/widgets/counter.php:209, ../includes/widgets/counter.php:243 msgid "H6" msgstr "" #: ../includes/widgets/counter.php:210, ../includes/widgets/counter.php:244 msgid "p" msgstr "" #: ../includes/widgets/counter.php:211, ../includes/widgets/counter.php:245 msgid "span" msgstr "" #: ../includes/widgets/counter.php:221 msgid "Awesome number" msgstr "" #: ../includes/widgets/counter.php:222 msgid "Type your title here" msgstr "" #: ../includes/widgets/counter.php:234 msgid "Title HTML tag" msgstr "" #: ../includes/widgets/counter.php:253 msgid "Text inline" msgstr "" #: ../includes/widgets/counter.php:255, ../includes/widgets/counter.php:499, ../includes/widgets/counter.php:791, ../includes/widgets/counter.php:1338 msgid "True" msgstr "" #: ../includes/widgets/counter.php:256, ../includes/widgets/counter.php:500, ../includes/widgets/counter.php:792, ../includes/widgets/counter.php:1339 msgid "False" msgstr "" #: ../includes/widgets/counter.php:267, ../includes/widgets/counter.php:297 msgid "Icon position" msgstr "" #: ../includes/widgets/counter.php:323, ../includes/widgets/counter.php:354 msgid "Vertical position" msgstr "" #: ../includes/widgets/counter.php:384 msgid "Text Align" msgstr "" #: ../includes/widgets/counter.php:414 msgid "Icon Offset" msgstr "" #: ../includes/widgets/counter.php:431 msgid "Vertical offset" msgstr "" #: ../includes/widgets/counter.php:458 msgid "Horizontal offset" msgstr "" #: ../includes/widgets/counter.php:497 msgid "Use Grouping" msgstr "" #: ../includes/widgets/counter.php:513 msgid "Thousand symbol" msgstr "" #: ../includes/widgets/counter.php:515 msgid "," msgstr "" #: ../includes/widgets/counter.php:530 msgid "Decimal Places" msgstr "" #: ../includes/widgets/counter.php:549 msgid "Decimal Symbol" msgstr "" #: ../includes/widgets/counter.php:551 msgid "." msgstr "" #: ../includes/widgets/counter.php:565 msgid "Counter Prefix" msgstr "" #: ../includes/widgets/counter.php:568 msgid "$" msgstr "" #: ../includes/widgets/counter.php:578 msgid "Counter Suffix" msgstr "" #: ../includes/widgets/counter.php:581 msgid "+" msgstr "" #: ../includes/widgets/counter.php:594, ../includes/widgets/icon-box.php:635 msgid "Icon/Image" msgstr "" #: ../includes/widgets/counter.php:616, ../includes/widgets/counter.php:650 msgid "Icon color" msgstr "" #: ../includes/widgets/counter.php:761 msgid "Icon Space" msgstr "" #: ../includes/widgets/counter.php:789 msgid "Image fullwidth" msgstr "" #: ../includes/widgets/counter.php:880 msgid "Number space" msgstr "" #: ../includes/widgets/counter.php:919, ../includes/widgets/counter.php:940 msgid "Number Color" msgstr "" #: ../includes/widgets/counter.php:965 msgid "Suffix/Prefix" msgstr "" #: ../includes/widgets/counter.php:995 msgid "Prefix" msgstr "" #: ../includes/widgets/counter.php:1054 msgid "Suffix" msgstr "" #: ../includes/widgets/counter.php:1226 msgid "Number animation" msgstr "" #: ../includes/widgets/counter.php:1230 msgid "Simple" msgstr "" #: ../includes/widgets/counter.php:1231 msgid "Odometer" msgstr "" #: ../includes/widgets/counter.php:1232 msgid "Motion Blur" msgstr "" #: ../includes/widgets/counter.php:1242 msgid "Duration (in seconds)" msgstr "" #: ../includes/widgets/counter.php:1257 msgid "Motion Durations (in ms)" msgstr "" #: ../includes/widgets/counter.php:1268 msgid "Numbers translate" msgstr "" #: ../includes/widgets/counter.php:1285 msgid "Numbers opacity" msgstr "" #: ../includes/widgets/counter.php:1302 msgid "Blur effect" msgstr "" #: ../includes/widgets/counter.php:1319 msgid "Delay between numbers" msgstr "" #: ../includes/widgets/counter.php:1336 msgid "Animate suffix" msgstr "" #: ../includes/widgets/counter.php:1342 msgid "Add the suffix to the Odometer animation, but removes any suffix custom styling." msgstr "" #: ../includes/widgets/custom-carousel.php:32 msgid "Custom Carousel" msgstr "" #. translators: %s: Item number #: ../includes/widgets/custom-carousel.php:69 msgid "Item #%s" msgstr "" #: ../includes/widgets/custom-carousel.php:148, ../includes/widgets/tabs.php:442, ../includes/widgets/testimonial-carousel.php:86, ../includes/widgets/testimonial-grid.php:90 msgid "Additional Settings" msgstr "" #: ../includes/widgets/custom-carousel.php:198 msgid "Loop preview is disabled here on the editor, due to compatibility issues. But you can test on the front-end, since it works outside the editor." msgstr "" #: ../includes/widgets/custom-slider.php:22 msgid "Custom Slider" msgstr "" #: ../includes/widgets/custom-table.php:22 msgid "Custom Table" msgstr "" #. translators: %s: Item index #: ../includes/widgets/custom-table.php:54 msgid "Cel #%s" msgstr "" #. translators: %d: Item index #: ../includes/widgets/custom-table.php:74 msgid "Cel #%d" msgstr "" #: ../includes/widgets/custom-table.php:101 msgid "Column Size" msgstr "" #: ../includes/widgets/custom-table.php:160 msgid "Cel #1" msgstr "" #: ../includes/widgets/custom-table.php:161 msgid "Cel #2" msgstr "" #: ../includes/widgets/custom-table.php:162 msgid "Cel #3" msgstr "" #: ../includes/widgets/custom-table.php:174 msgid "Table Style" msgstr "" #: ../includes/widgets/custom-table.php:193, ../includes/widgets/custom-table.php:238 msgid "Row background" msgstr "" #: ../includes/widgets/custom-table.php:204, ../includes/widgets/custom-table.php:249 msgid "Row Padding" msgstr "" #: ../includes/widgets/custom-table.php:216, ../includes/widgets/custom-table.php:261 msgid "Row Border Radius" msgstr "" #: ../includes/widgets/gallery-carousel.php:35 msgid "Gallery Carousel" msgstr "" #: ../includes/widgets/gallery-carousel.php:226 msgid "Main image" msgstr "" #: ../includes/widgets/gallery-carousel.php:231 msgid "Scale" msgstr "" #: ../includes/widgets/gallery-carousel.php:232 msgid "Show Info" msgstr "" #: ../includes/widgets/gallery-carousel.php:233 msgid "Show Info & Scale" msgstr "" #: ../includes/widgets/gallery-carousel.php:235 msgid "Works best with centered slides." msgstr "" #: ../includes/widgets/gallery-grid.php:35 msgid "Gallery Grid" msgstr "" #: ../includes/widgets/gallery-grid.php:96, ../includes/widgets/logo-grid.php:76 msgid "Grid Settings" msgstr "" #: ../includes/widgets/gallery-slider.php:25 msgid "Gallery Slider" msgstr "" #: ../includes/widgets/highlighted-text.php:36 msgid "Highlighted Text" msgstr "" #: ../includes/widgets/highlighted-text.php:104, ../includes/widgets/highlighted-text.php:105 msgid "Some Text" msgstr "" #: ../includes/widgets/highlighted-text.php:113 msgid "Highlight Style" msgstr "" #: ../includes/widgets/highlighted-text.php:118 msgid "No Stroke" msgstr "" #: ../includes/widgets/highlighted-text.php:119 msgid "Stroke 1" msgstr "" #: ../includes/widgets/highlighted-text.php:120 msgid "Stroke 2" msgstr "" #: ../includes/widgets/highlighted-text.php:121 msgid "Stroke 3" msgstr "" #: ../includes/widgets/highlighted-text.php:122 msgid "Stroke 4" msgstr "" #: ../includes/widgets/highlighted-text.php:123 msgid "Stroke 5" msgstr "" #: ../includes/widgets/highlighted-text.php:124 msgid "Stroke 6" msgstr "" #: ../includes/widgets/highlighted-text.php:125 msgid "Stroke 7" msgstr "" #: ../includes/widgets/highlighted-text.php:126 msgid "Stroke 8" msgstr "" #: ../includes/widgets/highlighted-text.php:127 msgid "Stroke 9" msgstr "" #: ../includes/widgets/highlighted-text.php:182 msgid "Use Background Color as Text Color" msgstr "" #: ../includes/widgets/highlighted-text.php:195, ../includes/widgets/icon-box.php:696, ../includes/widgets/icon-box.php:1120 msgid "Stroke Color" msgstr "" #: ../includes/widgets/highlighted-text.php:247 msgid "This is my awesome" msgstr "" #: ../includes/widgets/highlighted-text.php:251 msgid "highlight" msgstr "" #: ../includes/widgets/highlighted-text.php:255 msgid "text." msgstr "" #: ../includes/widgets/highlighted-text.php:293, ../includes/widgets/theme-builder/page-description.php:119, ../includes/widgets/theme-builder/the-title.php:120 msgid "HTML Tag" msgstr "" #: ../includes/widgets/highlighted-text.php:315 msgid "Shape" msgstr "" #: ../includes/widgets/highlighted-text.php:385 msgid "On" msgstr "" #: ../includes/widgets/highlighted-text.php:386 msgid "Off" msgstr "" #: ../includes/widgets/highlighted-text.php:415 msgid "Headline" msgstr "" #: ../includes/widgets/highlighted-text.php:443 msgid "Highlighted Text Color" msgstr "" #: ../includes/widgets/icon-box.php:32, ../includes/widgets/icon-box.php:82 msgid "Icon Box" msgstr "" #: ../includes/widgets/icon-box.php:130 msgid "Image Icon" msgstr "" #: ../includes/widgets/icon-box.php:150 msgid "Icon Box Title" msgstr "" #: ../includes/widgets/icon-box.php:151 msgid "Enter your title" msgstr "" #: ../includes/widgets/icon-box.php:159 msgid "Title Link URL" msgstr "" #: ../includes/widgets/icon-box.php:168, ../includes/widgets/icon-box.php:1316, ../includes/widgets/icon-list.php:88, ../includes/widgets/icon-list.php:91, ../includes/widgets/icon-list.php:764 msgid "Subtitle" msgstr "" #: ../includes/widgets/icon-box.php:173 msgid "Icon Box Subtitle" msgstr "" #: ../includes/widgets/icon-box.php:174 msgid "Enter your sub title" msgstr "" #: ../includes/widgets/icon-box.php:187 msgid "This serves as the explanatory text for the icon box. Use it to provide additional context or details that elaborate on the title's content." msgstr "" #: ../includes/widgets/icon-box.php:188 msgid "Enter your description" msgstr "" #: ../includes/widgets/icon-box.php:243 msgid "Icon Inline" msgstr "" #: ../includes/widgets/icon-box.php:257 msgid "Icon Top on Mobile" msgstr "" #: ../includes/widgets/icon-box.php:270, ../includes/widgets/icon-list.php:290 msgid "Icon Vertical Alignment" msgstr "" #: ../includes/widgets/icon-box.php:278 msgid "Middle" msgstr "" #: ../includes/widgets/icon-box.php:337 msgid "Readmore Animation Alignment" msgstr "" #: ../includes/widgets/icon-box.php:356, ../includes/widgets/icon-box.php:369, ../includes/widgets/icon-box.php:370, ../includes/widgets/icon-box.php:1481 msgid "Read More" msgstr "" #: ../includes/widgets/icon-box.php:377 msgid "Link to" msgstr "" #: ../includes/widgets/icon-box.php:541 msgid "Add your custom id WITHOUT hash (#) key. e.g: my-id" msgstr "" #: ../includes/widgets/icon-box.php:561 msgid "Badge Text" msgstr "" #: ../includes/widgets/icon-box.php:612 msgid "Global Link" msgstr "" #: ../includes/widgets/icon-box.php:620 msgid "Global Link URL" msgstr "" #: ../includes/widgets/icon-box.php:655, ../includes/widgets/icon-box.php:1089 msgid "Icon Color" msgstr "" #: ../includes/widgets/icon-box.php:670 msgid "Svg Icon Color" msgstr "" #: ../includes/widgets/icon-box.php:681, ../includes/widgets/icon-box.php:1105 msgid "Fill Color" msgstr "" #: ../includes/widgets/icon-box.php:711 msgid "Blur Filter" msgstr "" #: ../includes/widgets/icon-box.php:719 msgid "Blur Level" msgstr "" #: ../includes/widgets/icon-box.php:776 msgid "Advanced Radius" msgstr "" #: ../includes/widgets/icon-box.php:784 msgid "Radius" msgstr "" #: ../includes/widgets/icon-box.php:851 msgid "Image Fullwidth" msgstr "" #: ../includes/widgets/icon-box.php:930, ../includes/widgets/icon-box.php:1775 msgid "Rotate" msgstr "" #: ../includes/widgets/icon-box.php:951 msgid "Background Rotate" msgstr "" #: ../includes/widgets/icon-box.php:972 msgid "Icon Vertical Offset" msgstr "" #: ../includes/widgets/icon-box.php:992 msgid "Icon Horizontal Offset" msgstr "" #: ../includes/widgets/icon-box.php:1012, ../includes/widgets/icon-box.php:1181 msgid "Image Effect" msgstr "" #: ../includes/widgets/icon-box.php:1035, ../includes/widgets/icon-box.php:1204 msgid "Opacity" msgstr "" #: ../includes/widgets/icon-box.php:1573 msgid "Box hover" msgstr "" #: ../includes/widgets/icon-box.php:1624 msgid "Button hover" msgstr "" #: ../includes/widgets/icon-box.php:1673, ../includes/widgets/tabs.php:664 msgid "Hover Animation" msgstr "" #: ../includes/widgets/icon-box.php:1698 msgid "Position" msgstr "" #: ../includes/widgets/icon-box.php:1703 msgid "Top Center" msgstr "" #: ../includes/widgets/icon-box.php:1706 msgid "Center Left" msgstr "" #: ../includes/widgets/icon-box.php:1707 msgid "Center Right" msgstr "" #: ../includes/widgets/icon-box.php:1709 msgid "Bottom Center" msgstr "" #: ../includes/widgets/icon-box.php:1972 msgid "Description Hover Animation" msgstr "" #: ../includes/widgets/icon-box.php:2014 msgid "Prefix Class for Description with Readmore" msgstr "" #: ../includes/widgets/icon-box.php:2048 msgid "Icon Hover Animation" msgstr "" #: ../includes/widgets/icon-box.php:2054 msgid "Icon Float" msgstr "" #: ../includes/widgets/icon-box.php:2055 msgid "Background Circle" msgstr "" #: ../includes/widgets/icon-box.php:2056 msgid "Background Slide" msgstr "" #: ../includes/widgets/icon-box.php:2089 msgid "Translate" msgstr "" #: ../includes/widgets/icon-box.php:2098 msgid "Zoom scale" msgstr "" #: ../includes/widgets/icon-box.php:2124 msgid "Translate value" msgstr "" #: ../includes/widgets/icon-box.php:2160 msgid "Content Inner Padding" msgstr "" #: ../includes/widgets/icon-list.php:33 msgid "Icon List" msgstr "" #: ../includes/widgets/icon-list.php:77, ../includes/widgets/icon-list.php:78, ../includes/widgets/icon-list.php:393 msgid "List Item" msgstr "" #: ../includes/widgets/icon-list.php:151 msgid "List Item #1" msgstr "" #: ../includes/widgets/icon-list.php:154 msgid "List Item #2" msgstr "" #: ../includes/widgets/icon-list.php:157 msgid "List Item #3" msgstr "" #: ../includes/widgets/icon-list.php:190 msgid "Grid Gap" msgstr "" #: ../includes/widgets/icon-list.php:211 msgid "Show Number Count" msgstr "" #: ../includes/widgets/icon-list.php:219 msgid "Number Vertical Alignment" msgstr "" #: ../includes/widgets/icon-list.php:249, ../includes/widgets/icon-list.php:1030 msgid "Connector Line" msgstr "" #: ../includes/widgets/icon-list.php:317 msgid "Vertical Alignment Offset" msgstr "" #: ../includes/widgets/icon-list.php:478 msgid "Transition" msgstr "" #: ../includes/widgets/icon-list.php:552 msgid "Space between elements" msgstr "" #: ../includes/widgets/icon-list.php:575 msgid "Number Count" msgstr "" #: ../includes/widgets/icon-list.php:721 msgid "Title / Subtitle" msgstr "" #: ../includes/widgets/icon-list.php:824 msgid "Linked Title Color" msgstr "" #: ../includes/widgets/icon-list.php:835 msgid "Subtitle Color" msgstr "" #: ../includes/widgets/icon-list.php:847 msgid "Linked Subtitle Color" msgstr "" #: ../includes/widgets/icon-list.php:1041 msgid "Line Color" msgstr "" #: ../includes/widgets/icon-list.php:1056 msgid "Line Thickness" msgstr "" #: ../includes/widgets/icon-list.php:1079 msgid "Line Horizontal Offset" msgstr "" #: ../includes/widgets/icon-list.php:1102 msgid "Line Vertical Offset" msgstr "" #: ../includes/widgets/logo-carousel.php:33, ../includes/widgets/logo-carousel.php:94 msgid "Logo Carousel" msgstr "" #: ../includes/widgets/logo-grid.php:24, ../includes/widgets/logo-grid.php:117 msgid "Logo Grid" msgstr "" #: ../includes/widgets/logo-grid.php:84 msgid "Grid Layout" msgstr "" #: ../includes/widgets/logo-grid.php:87 msgid "Inner Border" msgstr "" #: ../includes/widgets/logo-grid.php:88 msgid "Outer Border" msgstr "" #: ../includes/widgets/logo-grid.php:89 msgid "Inner Divider" msgstr "" #: ../includes/widgets/logo-grid.php:105 msgid "Logo Settings" msgstr "" #: ../includes/widgets/newsletter.php:30 msgid "Newsletter" msgstr "" #: ../includes/widgets/newsletter.php:163 msgid "Form Settings" msgstr "" #: ../includes/widgets/newsletter.php:222, ../includes/widgets/newsletter.php:390 msgid "Recaptcha" msgstr "" #: ../includes/widgets/newsletter.php:232 msgid "Adds a hidden field to trap and identify bots by capturing automated form submissions." msgstr "" #: ../includes/widgets/newsletter.php:243 msgid "E-mail" msgstr "" #: ../includes/widgets/newsletter.php:263 msgid "Your e-mail" msgstr "" #: ../includes/widgets/newsletter.php:338 msgid "Your name" msgstr "" #: ../includes/widgets/newsletter.php:400 msgid "Recaptcha Version" msgstr "" #: ../includes/widgets/newsletter.php:661 msgid "Address" msgstr "" #: ../includes/widgets/post-grid.php:43 msgid "Post Grid" msgstr "" #: ../includes/widgets/post-grid.php:126 msgid "Columns Number" msgstr "" #: ../includes/widgets/post-grid.php:153 msgid "classic" msgstr "" #: ../includes/widgets/post-grid.php:167 msgid "layout" msgstr "" #: ../includes/widgets/post-grid.php:172 msgid "Boxed" msgstr "" #: ../includes/widgets/post-grid.php:173 msgid "Boxed Creative" msgstr "" #: ../includes/widgets/post-grid.php:174 msgid "Cover" msgstr "" #: ../includes/widgets/post-grid.php:185 msgid "Image Ratio" msgstr "" #: ../includes/widgets/post-grid.php:190 msgid "Square" msgstr "" #: ../includes/widgets/post-grid.php:191 msgid "Landscape" msgstr "" #: ../includes/widgets/post-grid.php:192 msgid "Portrait" msgstr "" #: ../includes/widgets/post-grid.php:266 msgid "Post Title" msgstr "" #. translators: %s: Tab index #: ../includes/widgets/tabs.php:62 msgid "Tab #%s" msgstr "" #. translators: %d: Tab index #: ../includes/widgets/tabs.php:79 msgid "Tab #%d" msgstr "" #: ../includes/widgets/tabs.php:113, ../includes/widgets/tabs.php:114, ../includes/widgets/tabs.php:125 msgid "Tab Title" msgstr "" #: ../includes/widgets/tabs.php:160 msgid "CSS ID" msgstr "" #: ../includes/widgets/tabs.php:176 msgid "Tabs Items" msgstr "" #: ../includes/widgets/tabs.php:181 msgid "Tab #1" msgstr "" #: ../includes/widgets/tabs.php:184 msgid "Tab #2" msgstr "" #: ../includes/widgets/tabs.php:187 msgid "Tab #3" msgstr "" #: ../includes/widgets/tabs.php:201 msgid "Tabs Direction" msgstr "" #: ../includes/widgets/tabs.php:205 msgid "Above" msgstr "" #: ../includes/widgets/tabs.php:209 msgid "Below" msgstr "" #: ../includes/widgets/tabs.php:235 msgid "Tabs Width" msgstr "" #: ../includes/widgets/tabs.php:263, ../includes/widgets/tabs.php:389 msgid "Justify" msgstr "" #: ../includes/widgets/tabs.php:279, ../includes/widgets/tabs.php:318 msgid "Stretch" msgstr "" #: ../includes/widgets/tabs.php:302 msgid "Tabs alignment" msgstr "" #. translators: 1: Breakpoint label, 2: `>` character, 3: Breakpoint value. #: ../includes/widgets/tabs.php:464 msgid "%1$s (%2$s %3$dpx)" msgstr "" #: ../includes/widgets/tabs.php:474 msgid "Breakpoint" msgstr "" #: ../includes/widgets/tabs.php:476 msgid "Note: Choose the breakpoint where tabs automatically switch to a vertical (“accordion”) layout." msgstr "" #: ../includes/widgets/tabs.php:486 msgid "Toggle Description" msgstr "" #: ../includes/widgets/tabs.php:490 msgid "Show descriptions only for active items." msgstr "" #: ../includes/widgets/tabs.php:506 msgid "Gap between tabs" msgstr "" #: ../includes/widgets/tabs.php:530 msgid "Distance from content" msgstr "" #: ../includes/widgets/tabs.php:596, ../includes/widgets/tabs.php:655, ../includes/widgets/tabs.php:740 msgid "Shadow" msgstr "" #: ../includes/widgets/tabs.php:752 msgid "Pill Style" msgstr "" #: ../includes/widgets/tabs.php:806 msgid "Titles" msgstr "" #: ../includes/widgets/tabs.php:904 msgid "Top Spacing" msgstr "" #: ../includes/widgets/tabs.php:1364, ../includes/widgets/tabs.php:1498 msgid "Tabs. Open items with Enter or Space, close with Escape and navigate using the Arrow keys." msgstr "" #: ../includes/widgets/testimonial-carousel.php:33 msgid "Testimonial Carousel" msgstr "" #: ../includes/widgets/testimonial-carousel.php:122 msgid "Inner Content Spacing" msgstr "" #: ../includes/widgets/testimonial-grid.php:34 msgid "Testimonial Grid" msgstr "" #: ../includes/widgets/testimonial-slider.php:23 msgid "Testimonial Slider" msgstr "" #: ../includes/widgets/theme-builder/page-description.php:48 msgid "Page Description" msgstr "" #: ../includes/widgets/theme-builder/page-description.php:168 msgid "Fallback text" msgstr "" #: ../includes/widgets/theme-builder/page-description.php:169 msgid "If is empty and page does not have any description nothing will be displayed." msgstr "" #: ../includes/widgets/theme-builder/page-description.php:228, ../includes/widgets/theme-builder/the-title.php:230 msgid "Blend Mode" msgstr "" #: ../includes/widgets/theme-builder/page-description.php:276 msgid "This is the page description. You can change this text by editing the page using the default WordPress editor." msgstr "" #: ../includes/widgets/theme-builder/post-meta.php:23 msgid "Post Meta" msgstr "" #: ../includes/widgets/theme-builder/post-meta.php:92, ../includes/widgets/theme-builder/the-content.php:50 msgid "Style" msgstr "" #: ../includes/widgets/theme-builder/post-meta.php:107, ../includes/widgets/theme-builder/the-title.php:282 msgid "This is a dummy title." msgstr "" #: ../includes/widgets/theme-builder/the-content.php:23 msgid "Post Content" msgstr "" #: ../includes/widgets/theme-builder/the-title.php:49 msgid "The Title" msgstr "" #: ../includes/widgets/theme-builder/the-title.php:170 msgid "View" msgstr "" PK �}\d��P �P readme.txtnu �[��� === UiCore Elements - Free Elementor widgets and templates === Contributors: uicore Tags: elementor, widgets, page builder, ui elements Requires at least: 4.6 Requires PHP: 7.4 Tested up to: 6.7.2 Stable tag: 1.3.0 License: GPLv3 or later License URI: https://www.gnu.org/licenses/gpl-3.0.html Enhance your website with UiCore Elements – a free plugin offering diverse widgets for effortless design enrichment. == Description == [UiCore Elements](https://elements.uicore.co/) is a versatile plugin designed to extend the capabilities of Elementor Page Builder. Elevate your website's design with an array of widgets, each crafted to bring innovation and interactivity to your pages. - **Diverse Range of Widgets:** From dynamic sliders to interactive forms, UiCore Elements provides a collection of widgets that seamlessly integrate with Elementor, empowering you to create captivating layouts. - **Intuitive Widget Customization:** Effortlessly customize each widget to match your design preferences. Adjust colors, styles, and content with ease, ensuring your website reflects your unique brand identity. - **Seamless Elementor Integration:** UiCore Elements seamlessly integrates with Elementor, allowing you to enhance your page-building experience without any compatibility issues. ## 📌 Free Widgets ### Content & Design - **Highlighted Text** – Make your text stand out by adding **highlights, gradients, and background images**. - **Icon List** – Create visually engaging lists with customizable icons. - **Counter** – Display animated number counters for stats and milestones. - **Icon Box** – Combine icons, titles, and descriptions in a stylish format. - **Accordion** – Organize content with collapsible sections for better readability. ### Galleries & Media - **Gallery Grid** – Showcase images in a **responsive, customizable grid layout**. - **Gallery Carousel** – Display an **auto-scrolling image carousel** with smooth transitions. - **Gallery Slider** – Create a **modern image slider** with easy navigation. ### Post & Content Layouts - **Advanced Post Grid** – Display blog posts in a **dynamic grid format**. - **Advanced Post Carousel** – Feature posts in an **auto-scrolling carousel**. - **Advanced Product Grid** – Create **highly customizable WooCommerce product grids**. ### Testimonials & Logos - **Testimonial Grid** – Showcase testimonials in an **organized grid layout**. - **Testimonial Carousel** – Rotate client feedback in a **modern carousel**. - **Testimonial Slider** – Display **testimonials in a sleek slider** format. - **Logo Grid** – Showcase brand logos in a **clean, structured layout**. - **Logo Carousel** – Feature logos in a **scrolling carousel for brand credibility**. ### Forms & Interactive Elements - **Contact Form** – Add **customizable contact forms** for better user engagement. - **Newsletter** – Integrate an **email subscription form** effortlessly. ### Navigation & Custom Layouts - **Tabs** – Organize content into **interactive tabbed sections**. - **Custom Carousel** – Create a **fully customizable content carousel**. - **Custom Slider** – Build **interactive sliders** for images, text, and media. - **Custom Table** – Display structured data in a **customizable table format**. ### Post & Page Content - **Post Content** – Dynamically display **post content in custom layouts**. - **The Title** – Show post or page titles with **custom styling options**. - **Post Meta** – Display **post metadata** like date, author, and categories. - **Page Description** – Automatically show a **page’s meta description**. --- ## 🚀 PRO Widgets **All PRO widgets are available with [UiCore PRO](https://uicore.pro/) theme, unlocking powerful WooCommerce functionalities.** ### WooCommerce Product Widgets (PRO) - **Product Grid** – Display **WooCommerce products in a customizable grid layout**. - **Product Gallery** – Showcase **product images** in an elegant gallery. - **Product Price** – Display **WooCommerce product prices** with custom styling. - **Product Stock** – Show **stock availability** in a visually engaging way. - **Product Meta** – Display **WooCommerce metadata** like SKU and categories. - **Product Content** – Automatically show **detailed product descriptions**. - **Short Description** – Feature **concise product descriptions** with modern styling. - **Product Tabs** – Organize product details into **interactive tabbed sections**. - **Add To Cart** – Add a **custom "Add to Cart" button anywhere**. - **Breadcrumbs** – Improve navigation with **SEO-friendly breadcrumbs**. - **Product Rating** – Show **star ratings for WooCommerce products**. - **Sale Badge** – Highlight **discounted products with eye-catching badges**. --- ## Design Cloud (PRO) Build faster with thousands of designer-made blocks—easy to browse, quick to preview, and ready to match your global styles. Filter, search, favorite, and focus on creating, not customizing. [youtube https://www.youtube.com/watch?v=XinZjR8ixEg] --- ## More Tools to Enhance Your WordPress Website If you love **UiCore Elements**, you’ll love our other products too: - **[UiCore Animate](https://wordpress.org/plugins/uicore-animate/)** – Add **page transitions, smooth scrolling, and engaging animations** to Elementor and Gutenberg blocks for a seamless, interactive experience. - **[UiCore Blocks](https://wordpress.org/plugins/uicore-blocks/)** – Extend the WordPress Gutenberg editor with **flexible and high-performance blocks**, enabling you to build modern, visually stunning websites effortlessly. - **[UiCore PRO](https://uicore.pro/)** – Unlock **unlimited website creation, full theme customization, and exclusive pro features** at an affordable yearly subscription. ## 🚀 Support That Cares! We understand the need for a **quality product backed by dedicated support**. Our team is here to **listen to your queries** and help you **get the most out of our plugin**. [Contact Us](https://uicore.pro/contact/) == Installation == 1. Install UiCore Elements either via the WordPress plugin directory or by uploading the files to your server at wp-content/plugins. == Frequently Asked Questions == = Can I use UiCore Elements with any theme? = Yes, UiCore Elements is designed to work seamlessly with any WordPress theme that supports Elementor Page Builder. = Is UiCore Elements compatible with the latest version of Elementor? = Absolutely! UiCore Elements is tested up to latest version of Elementor to ensure compatibility and a smooth user experience. = Are there any performance concerns with UiCore Elements? = No need to worry. UiCore Elements is optimized for performance and ensures a lightweight footprint for your website. == Screenshots == 1. /assets/screenshots/1.png == Changelog == = 1.3.0 = * NEW - Added Design Cloud (available only with UiCore Pro) https://uicore.pro/features/design-cloud/ * FIX - Fatal error on Elements Manager screen = 1.2.4 = * NEW - Added 'Lightbox' option for Elementor's Button widget * NEW - Added `vertical` and `reverse` options for Carousel Widget's `marquee` animation, introducing autoplay direction change and vertical designs to the widgets * NEW - Added new options to Gallery Widgets to hide title and description, but also a `content position` option, unlocking new design possibilities for these widgets * NEW - Improved Gallery Carousel and Gallery Grid widget's `show` animations for both title and description, creating an interaction when one of them is enabled * TWEAK - Improved several widget's animation controls UI by removing the label block and decreasing select input size * UPD - Improved Advanced Post/Product widget's meta icon size adjustment with `inline icon` experiment to a more performative approach * UPD - Remove `marquee` animation from the Advanced Post Carousel widget * FIX - Fixed some widget's style sections bug where you could still see the section even if no controls were enabled under certain conditions * FIX - Fixed bug where you couldn't edit some pages in Elementor due to a control verification problem * FIX - Fixed Advanced Post/Product widget's bug where, in theme builder or similar contexts, a custom control Class was not properly loaded = 1.2.3 = * FIX - Fixed carousel script version = 1.2.2 = * NEW - Added new style options to the Custom Table widget * NEW - Added dynamic field support to Contact Form `reply to`, `cc`, and `bcc` fields * NEW - Added 'icon mobile adjustment` option to Icon Box widget, giving icon/image position responsive option * TWEAK - Removed Product Tab bottom spacing * TWEAK - Small widgets keywords and descriptions adjustments * UPD - Improved Item style section `padding` and `border-radius` control to responsive type for Custom Carousel; Testimonial and Gallery widgets. * UPD - Introduced a new default method for verifying the widget's control values and better avoid future problems with Elementor optimization experiments * UPD - Improved Slider widgets `card` animation with `loop` enabled * UPD - APG and APrG adjustment on justify button alignment * UPD - Enabled widget inner wrapper removal, based on site `optimized markup` experiment, for most of our widgets * FIX - Fixed Carousel widgets bug where, on mobile, you ended up with one less visible slide if `centered slides` was enabled * FIX - Fixed Testimonial carousel widget's `layout` 5 bug * FIX - Removed `circular avatar` animation from Testimonial Carousel since it's specific to slider version * FIX - Fixed `stacked` animation loop bug in Slider widgets * FIX - Fixed a bug where you couldn't update a page in Guttenberg if it had one of the Advanced Product widgets * FIX - Fixed Advanced Product widget's purchase button bug where the icon was not visible with Elementor Inline font-icon experiment enabled * FIX - Adjusted Advanced Product widget's `product rating` meta unintentional line break * FIX - Fixed Contact Form `subject` field bug where dynamic field data was not being adequately printed * FIX - Fixed Post meta widget discrepancies between editor and front-end * FIX - Fixed Counter bug with empty `thousand symbol` and `decimal symbol` values not triggering the animation = 1.2.1 = * TWEAK - Improved Post Grid widget assets enqueue method to last plugin standards * UPD - Updated Slider widget's `coverflow` animation params, improving the visual aspect of the animation * UPD - Temporarily removed `creative` animation from Slider widget's * UPD - Small alignment improvement on the Advanced Post/Product widget's meta icon * UPD - Changed Accordion widget classnames to avoid styles overwriting when setting other Uicore widgets as content for a given accordion * UPD - Added `<a>` tag support for Page Description widget and several other widget's text control fields that use our string sanitization method * UPD - Changed Swiper version from `11.2.4` to `11.2.1`, due to instabilities with the `loop` feature * FIX - Fixed Gallery Slider widget's 'vertical alignment' editor control label * FIX - Fixed Slider widgets `cards` animation bug where having few slide items with `loop` featured enabled breaks the slider * FIX - Fixed Tabs widget `advanced` tab styles bug, such as padding; margin and borders properties * FIX - Fixed Advanced Post/Product Grid widgets pagination bugs where page numbers didn't correspond to the amount of available posts/products * FIX - Fix Advanced Post/Product Carousel widgets meta category bug where having a second category would create a second line * FIX - Fixed Advanced Post widgets bug where the HTML title attribute from `author` Meta, if avatar was enabled, had HTML as content instead of the proper text * FIX - Fixed post/product widgets `current` query bug where posts per page weren't pushed from Framework options if the user had Uicore Framework enabled * FIX - Fixed Icon Box bug with `show button` animation where `advanced` tab padding styles were ignored * FIX - Added styles to `author` meta avatar since it looked odd with default settings = 1.2.0 = * NEW - Added new `marquee` and `default` animation style to Carousel widgets * NEW - Added `center slides` option, allowing new and exciting designs for Carousel widgets * NEW - Added new controls for the `fade edges` feature to Carousel widgets * NEW - Added new `main image` animations for the Gallery Carousel widget * UPD - Merged and improved `circular` and `fade-blur` animation scripts into one modular script * UPD - Prepared widgets to handle the Inner Wrapper deprecation on the future Elementor 3.30 release * UPD - Promoted Carousel widget's `gap` control to responsive type * UPD - Improved APG and APrG style control options, giving more design freedom * UPD - Replaced some widget's hardcoded text properties for inheriting * UPD - Removed unused media query from Icon Box styles * UPD - Improved Carousel widget's navigation markup so they are not hidden anymore by the `fade edges` option * FIX - Fixed some security issues and improved several functions, following WordPress's latest code standards * FIX - Fixed Gallery Carousel bug where slide animations were slowed by filter transitions * FIX - Fixed Slider widget's bug where slides wouldn't work due to lack of gap option * FIX - Fixed APrG `summary` bug that would return the wrong content * FIX - Fixed APG bug where setting `current` query with `load more` pagination could expose the query variables as text in the frontend * FIX - Fixed Highlighted Text line break bug where texts didn't respect it * FIX - Fixed some widget's icons lack of transition for color and similar properties * FIX - Fixed Tabs `pill style` bug on frontend * FIX - Removed undesired accordion paragraph's bottom spacing * FIX - Fixed Carousel widget's 'vertical alignment' editor control label * FIX - Fixed Custom Table bug where the table columns would break after reloading the page * FIX - Removed debug system on a Nested widget's mechanism, which was creating large debug.log files = 1.0.16 = * FIX - PHP 8.x warnings * FIX - Minor small bugs fixes = 1.0.15 = * NEW - Added 'Pause on Hover' option to Carousel widgets * NEW - Added `tag` to meta options for Advanced Post Widgets * UPD - Major assets update. Improved file organization; decreased some widget's required assets; added extra enqueue conditions and more * UPD - Adjusted compatibility issues and some other updates required by the Elementor 3.26 release * FIX - Fixed carousel undefined key error log * FIX - Fixed Custom Carousel dots navigation bug where dragging wouldn't update the active dot * FIX - Fixed Advanced Post Grid and Advanced Product Grid bug where you couldn't preview posts/products with 'current' query * FIX - Fixed incorrect php tag on Gallery widgets. = 1.0.14 = * NEW - Added three new widgets: Gallery Grid, Gallery Carousel and Gallery Slider * FIX - Fixed Carousel dots navigation position bug, where dots started above widgets by default * FIX - Logged-in issues with latest Elementor Pro = 1.0.13 = * FIX - Fixed APG bug where Portfolio posts worked only by setting a taxonomy * FIX - Fixed Contact Form bug where forms without required checkboxes failed on submitting = 1.0.12 = * NEW - Added 'required' option to Checkbox field on Contact Form * FIX - Fixed Icon List gap bug that only applied horizontal spacing * FIX - Fixed Advanced Carousel Grid bug where you couldn't edit pages that used the widget * FIX - Fixed APG bug where meta icons weren't inheriting the font-size if SVG experiment was enabled = 1.0.11 = * NEW - Added new widget: Advanced Product Grid * NEW - Added new widget: Custom Table (with Nested capabilities) * NEW - Added suffix/prefix style options and motion animation transition options to Counter widget * UPD - Improved the Advanced Post Grid widget core * FIX - Removed unnecessary bottom spacing from multiple widgets * FIX - Fixed Advanced Product Grid and Carousel widgets bug where ‘current’ query ignored taxonomy on archive pages * FIX - Fixed Post Grid width bug on Masonry layout * FIX - Fixed border-radius bug on Custom Slider * FIX - Fixed Contact Form and Newsletter widgets bug that prevented the form from being sent if the widget was added to footer/header templates * FIX - Fixed Icon Box icon animation mouse-out transition * FIX - Fixed Contact Form compatibility with Elementor PRO = 1.0.10 = * FIX - Disabled autocomplete on honeypot fields on form Widgets, preventing browsers from adding data and blocking form submission * FIX - Fixed Carousel/Slide widgets mobile overflow bug * FIX - Fixed Icon List Widget bug where Icons sometimes had different sizes * UPD - Changed Icon Box Widget content padding to not impact images if set as full width * UPD - Added 'px' option to Testimonial Widget's avatar size, allowing small avatars to fit better * UPD - Turned Icon List Widget 'Vertical Alignment Offset' option responsive * UPD - Turned Form Widgets field padding option responsive = 1.0.9 = * FIX - Fixed Accordion bug where links in content weren't clickable * FIX - Fixed Advanced Post widgets bug where readmore button icons weren't printed if Elementor Inline Font Icon feature was enabled * FIX - Fixed APG bug where Item Limits weren't respected * FIX - Fixed Motion Blur Counter animation bug caused by Waypoint update * UPD - Totally removed Waypoint from the plugin, replacing it with InterserctionObserver * UPD - Added dragging control to Testimonial Slider's Circular Avatar animation * UPD - Small improvements on instructions texts and code overall = 1.0.8 = * FIX - Fixed Grid and Carousel entrance animations = 1.0.7 = * NEW - Added new widget: Newsletter * NEW - Added new widget: Custom Carousel (with Nested capabilities) * NEW - Added new widget: Custom Slider (with Nested capabilities) * NEW - Added new animation to Testimonial Slider: Circular Avatar * NEW - Added Mailchimp Integration to form widgets * FIX - Fixed Slider Widget's Stacked animation bug * FIX - Fixed Counter icon color bug with Inline Font Icon experiment * FIX - Fixed Icon List numbers bug that outputted only odd values * FIX - Fixed Testimonial Grid masonry bug where desktop columns overcome mobile values * FIX - Fixed Icon Box bug where title spacing, with inline icon, was also applied to the media * FIX - Fixed Icon Box background icon color bug * UPD - Made several improvements to Carousel and Slider widgets * UPD - Improved Testimonial widget's layout 6 design by setting the media above content on mobile * UPD - Added hover style options to the Icon Box badge * UPD - Improved Icon Box readmore options by setting Box Hover and Button Hover separated styles = 1.0.6 = * NEW - Added new widget: Tabs (with Nested capabilities) * NEW - Added WPML String Translation support to all our widgets * FIX - Fixed Icon Box log errors; global link bug on the editor and readmore button justified alignment design * FIX - Fixed Accordion accessibility errors pointed on Lighthouse and similar performance tools * FIX - Fixed Meta Component bug that made some widget's hover actions get triggered at hidden menus * FIX - Fixed Slider Animation bug that blocked some item's animation from being triggered * FIX - Contact Form Submission API dinamic url * UPD - Added Stroke Color & Gradient text options to Highlighted Text widget * UPD - Small Icon Box improvements * UPD - Optimized Accordion widget script * UPD - Optimized Accordion widget accessibility by adding keyboard navigation = 1.0.5 = * NEW - Added new widget: Contact Form * NEW - Added Vertical Alignment option on all Testimonial widgets * NEW - Added Multiple animations to Carousel and Slider Widgets * FIX - Fixed issues with Accordion's active items and width * FIX - Fixed button alignment on both Advanced Post Grid & Advanced Post Carousel * FIX - Fixed transition problems on Icon Box * FIX - The content dummy content issue * UPD - Several improvements on assets and components * UPD - Optimized Carousel widgets markup = 1.0.4 = * NEW - Added new widget: Advanced Post Carousel * FIX - Fixed issue with Highlighted text using div tag * FIX - Fixed Split layout skin on Advanced Post Grid * FIX - Fixed warning on Post Grid * FIX - Fixed issue with Advanced Post Grid showing incorrect post date * FIX - Added correct ARIA attributes to Accordion = 1.0.3 = * FIX – Highlighted Text stoke and content bugs * UPD – Small improvement on the Motion Blur animation CSS for Counter widget = 1.0.2 = * FIX - Better widgets markup filter = 1.0.1 = * FIX - Highlighted text SVG issues * FIX - Advanced Post widget filter display = 1.0.0 = * Initial releasePK �}\�[m� � includes/class-widget-base.phpnu �[��� <?php namespace UiCoreElements; use Elementor\Widget_Base; use UiCoreElements\Helper; abstract class UiCoreWidget extends Widget_Base { /** * Get widget categories. * * custom_condition need to always return true if $this->is_edit_mode() is true * @return object ['assets-name' => ['condition' => ['key' => 'value'] , 'deps' => ['global-handler-name','other-handler-name'], 'external' => true]] */ public abstract function get_styles(); /** * Get widget categories. * * custom_condition need to always return true if $this->is_edit_mode() is true * @return object ['assets-name' => ['condition' => ['key' => 'value'] ,'custom_condition' => true , 'deps' => ['global-handler-name','other-handler-name'], 'external' => true]] */ public abstract function get_scripts(); public function get_style_depends() { $assets = $this->get_styles(); $final_list = $this->parse_asset_list($assets, 'style'); //TODO: combine all the styles into one file and return it return $final_list; } public function get_script_depends() { $assets = $this->get_scripts(); $final_list = $this->parse_asset_list($assets, 'script'); //TODO: combine all the styles into one file and return it return $final_list; } private function parse_asset_list($list, $type = 'style') { $final_list = []; foreach ($list as $key => $value) { $deps = (isset($value) && isset($value['deps'])) ? $value['deps'] : []; $external = (isset($value) && isset($value['external'])) ? $value['external'] : false; $name = $this->get_asset_name($key, $value); //if name is not empty then we need to add it to the list if ($name) { $method_name = "register_widget_$type"; $final_list[] = Helper::$method_name($name, $deps, $external); } } return $final_list; } private function get_asset_name($key, $value) { //check the condition/s if (\is_array($value) && !empty($value)) { //custom condition if (isset($value['custom_condition'])) { if ($value['custom_condition']) { return $key; } else { return ''; } } //check if the condition is true using elementor's function (always return true if we are in edit mode) if ($this->is_edit_mode() || $this->is_control_visible($value, $this->get_settings())) { return $key; } else { return ''; } } // if list is only declaring the assets without any condition then we need to return the key return $value; } protected function is_edit_mode() { $elementor_instance = \Elementor\Plugin::instance(); if ($elementor_instance->preview->is_preview_mode() || $elementor_instance->editor->is_edit_mode()) { return true; } return false; } /** * Verify if the control exists and if matches the given value. * Usefull for controls that may not be returned, in the settings stack, under certain conditions. * * @param string $control The control slug. * @param string|null $value Optional. The value to check against. * @param string $operator Optional. The operator to use for comparing `control` and `value`. Default is '==='. * * @return bool * @since 1.0.15 */ protected function is_option(string $control, $value = null, $operator = '==='): bool { $option = $this->get_settings_for_display($control); if (isset($option)) { if (!isset($value)) { return true; } switch ($operator) { case '===': return $option === $value; case '!==': return $option !== $value; case '<': return $option < $value; case '<=': return $option <= $value; case '>': return $option > $value; case '>=': return $option >= $value; default: return false; } } return false; } /** * Verify if the control exists and get both `size` and `unit` values, if requested. * * @param string $control The control slug. * @param array $fallback The fallback value to return if the control does not exist. Should have `size` and, if requested, `unit` keys. * @param bool $use_unit If true, the unit will also be checked and returned. * * @return string `size` and, if requested, `unit` values from the control or the fallback value. * @since 1.0.15 */ public function get_option_size($control, array $fallback, $use_unit = false) { $option = $this->get_settings_for_display($control); if (isset($option) && ! empty($option['size'])) { $size = $control['size']; $unit = $use_unit && isset($option['unit']) ? $option['unit'] : ''; return $size . $unit; } $fallback_size = $fallback['size']; $fallback_unit = $use_unit ? $fallback['unit'] : ''; return $fallback_size . $fallback_unit; } } PK �}\;��)�j �j includes/widgets/newsletter.phpnu �[��� <?php namespace UiCoreElements; use UiCoreElements\Utils\Contact_Form_Service; use UiCoreElements\Utils\Form_Component; use Elementor\Controls_Manager; use Elementor\Icons_Manager; use Elementor\Utils; defined('ABSPATH') || exit(); /** * Newsletter * * @author Lucas Marini Falbo <lucas@uicore.co> * @since 1.0.7 */ class Newsletter extends UiCoreWidget { use Form_Component; public function get_name() { return 'uicore-newsletter'; } public function get_title() { return __( 'Newsletter', 'uicore-elements' ); } public function get_icon() { return 'eicon-form-horizontal ui-e-widget'; } public function get_categories() { return ['uicore']; } public function get_keywords() { return [ 'form', 'forms', 'newsletter', 'news', 'subscribe', 'subscription', 'mailchimp' ]; } public function get_styles() { return ['newsletter']; } public function get_scripts() { return [ 'contact-form', 'recaptcha' => [ 'custom_condition' => $this->check_recaptcha_version('v2') ], 'recaptcha-v3' => [ 'custom_condition' => $this->check_recaptcha_version('v3') ] ]; } public function has_widget_inner_wrapper(): bool { // TODO: remove after 3.30, when the full deprecation of widget innet wrapper is ready return ! \Elementor\Plugin::$instance->experiments->is_feature_active( 'e_optimized_markup' ); } function check_recaptcha_version($version) { if( $this->is_edit_mode() ){ return true; } return $version === $this->get_settings_for_display('recaptcha_version') ? true : false; } function form_fields_render_attributes( $i, $instance, $item ) { $this->add_render_attribute( [ 'field-group' . $i => [ 'class' => [ 'ui-e-field-type-text', 'ui-e-field-group', 'elementor-column', ], ], 'honeypot' => [ 'class' => [ 'ui-e-field-type-address', 'ui-e-field-group', 'elementor-column', ], ], 'recaptcha' => [ 'class' => [ 'ui-e-field-type-recaptcha', 'ui-e-field-group', 'elementor-column', 'elementor-col-100' ], ], 'recaptcha_v3' => [ 'class' => [ 'ui-e-field-type-recaptcha_v3', 'ui-e-field-group', 'elementor-column', 'elementor-col-100' ], ], 'input' . $i => [ 'type' => 'text', 'size' => '1', 'name' => 'form_fields[' . $item . ']', 'id' => 'form-fields-' . $item, 'class' => [ 'ui-e-field', empty( $instance[$item.'_css'] ) ? '' : esc_attr( $instance[$item.'_css'] ), ], ], 'label' . $i => [ 'for' => 'form-field-' . $item, 'class' => 'ui-e-label', ], ] ); if ( empty( $instance[$item . '_width'] ) ) { $item['width'] = '100'; } $this->add_render_attribute( 'field-group' . $i, 'class', 'elementor-col-' . $instance[$item . '_width'] ); if ( ! empty( $instance[$item . '_width_tablet'] ) ) { $this->add_render_attribute( 'field-group' . $i, 'class', 'elementor-md-' . $instance[$item . '_width_tablet'] ); } if ( ! empty( $instance[$item . '_width_mobile'] ) ) { $this->add_render_attribute( 'field-group' . $i, 'class', 'elementor-sm-' . $instance[$item . '_width_mobile'] ); } // Allow zero as placeholder. if ( ! Utils::is_empty( $instance[$item . '_placeholder'] ) ) { $this->add_render_attribute( 'input' . $i, 'placeholder', $instance[$item . '_placeholder'] ); } if ( ! $instance['show_labels'] ) { $this->add_render_attribute( 'label' . $i, 'class', 'elementor-screen-only' ); } if ( ! empty( $instance[$item . '_required'] ) ) { if ( ! empty( $instance['mark_required'] ) ) { $this->add_render_attribute( 'field-group' . $i, [ 'class' => 'ui-e-required', 'required' => 'required', ] ); } } } protected function register_controls() { $this->start_controls_section( 'section_form_settings', [ 'label' => esc_html__( 'Form Settings', 'uicore-elements' ), ] ); $this->add_control( 'form_name', [ 'label' => esc_html__( 'Form Name', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => esc_html__( 'New Form', 'uicore-elements' ), 'placeholder' => esc_html__( 'Form Name', 'uicore-elements' ), ] ); $this->add_control( 'show_labels', [ 'label' => esc_html__( 'Label', 'uicore-elements' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Show', 'uicore-elements' ), 'label_off' => esc_html__( 'Hide', 'uicore-elements' ), 'return_value' => 'true', 'default' => 'true', ] ); $this->add_control( 'mark_required', [ 'label' => esc_html__( 'Required Mark', 'uicore-elements' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Show', 'uicore-elements' ), 'label_off' => esc_html__( 'Hide', 'uicore-elements' ), 'default' => '', 'render_type' => 'template', 'condition' => [ 'show_labels!' => '', ], ] ); $this->end_controls_section(); $this->start_controls_section( 'section_form_fields', [ 'label' => esc_html__( 'Fields', 'uicore-elements' ), ] ); $this->add_control( 'add_name', [ 'label' => esc_html__( 'Name', 'uicore-elements' ), 'type' => Controls_Manager::SWITCHER, 'return_value' => 'true', 'default' => 'true', ] ); $this->add_control( 'add_recaptcha', [ 'label' => esc_html__( 'Recaptcha', 'uicore-elements' ), 'type' => Controls_Manager::SWITCHER, 'return_value' => 'true', ] ); $this->add_control( 'add_honeypot', [ 'label' => esc_html__( 'Honeypot', 'uicore-elements' ), 'type' => Controls_Manager::SWITCHER, 'description' => esc_html__('Adds a hidden field to trap and identify bots by capturing automated form submissions.', 'uicore-elements'), 'return_value' => 'true', 'default' => 'true', ] ); $this->start_controls_tabs( 'form_fields_tabs' ); $this->start_controls_tab( 'email_tab', [ 'label' => esc_html__( 'E-mail', 'uicore-elements' ), ] ); $this->add_control( 'email_label', [ 'label' => esc_html__( 'Label', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => '', 'dynamic' => [ 'active' => true, ], ] ); $this->add_control( 'email_placeholder', [ 'label' => esc_html__( 'Placeholder', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => esc_html__('Your e-mail', 'uicore-elements'), 'dynamic' => [ 'active' => true, ], ] ); $this->add_control( 'email_required', [ 'label' => esc_html__( 'Required', 'uicore-elements' ), 'type' => Controls_Manager::SWITCHER, 'return_value' => 'true', 'default' => '', ] ); $this->add_responsive_control( 'email_width', [ 'label' => esc_html__( 'Column Width', 'uicore-elements' ), 'type' => Controls_Manager::SELECT, 'options' => $this->TRAIT_get_width_values(), 'default' => '40', ] ); $this->add_control( 'email_css', [ 'label' => esc_html__( 'Custom Class', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => '', 'ai' => [ 'active' => false, ], 'separator' => 'before', 'placeholder' => esc_html__( 'e.g: my-class', 'uicore-elements' ), ] ); $this->add_control( 'email_shortcode', [ 'label' => esc_html__( 'Shortcode', 'uicore-elements' ), 'type' => Controls_Manager::RAW_HTML, 'classes' => 'forms-field-shortcode', 'raw' => '<input class="elementor-form-field-shortcode" value=\'[field id="email"]\' readonly />', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'name_tab', [ 'label' => esc_html__( 'Name', 'uicore-elements' ), 'condition' => [ 'add_name' => 'true', ], ] ); $this->add_control( 'name_label', [ 'label' => esc_html__( 'Label', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => '', 'dynamic' => [ 'active' => true, ], ] ); $this->add_control( 'name_placeholder', [ 'label' => esc_html__( 'Placeholder', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => esc_html__('Your name', 'uicore-elements'), 'dynamic' => [ 'active' => true, ], ] ); $this->add_control( 'name_required', [ 'label' => esc_html__( 'Required', 'uicore-elements' ), 'type' => Controls_Manager::SWITCHER, 'return_value' => 'true', 'default' => '', ] ); $this->add_responsive_control( 'name_width', [ 'label' => esc_html__( 'Column Width', 'uicore-elements' ), 'type' => Controls_Manager::SELECT, 'options' => $this->TRAIT_get_width_values(), 'default' => '40', ] ); $this->add_control( 'name_css', [ 'label' => esc_html__( 'Custom Class', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => '', 'ai' => [ 'active' => false, ], 'separator' => 'before', 'placeholder' => esc_html__( 'e.g: my-class', 'uicore-elements' ), ] ); $this->add_control( 'name_shortcode', [ 'label' => esc_html__( 'Shortcode', 'uicore-elements' ), 'type' => Controls_Manager::RAW_HTML, 'classes' => 'forms-field-shortcode', 'raw' => '<input class="elementor-form-field-shortcode" value=\'[field id="name"]\' readonly />', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'recaptcha_tab', [ 'label' => esc_html__( 'Recaptcha', 'uicore-elements' ), 'condition' => [ 'add_recaptcha' => 'true', ], ] ); $this->add_control( 'recaptcha_version', [ 'label' => esc_html__( 'Recaptcha Version', 'uicore-elements' ), 'type' => Controls_Manager::SELECT, 'options' => [ 'v2' => 'V2', 'v3' => 'V3', ], 'default' => 'v2', ] ); $this->add_control( 'recaptcha_hide', [ 'label' => esc_html__( 'Badge', 'uicore-elements' ), 'type' => Controls_Manager::SELECT, 'default' => 'hidden', 'options' => [ 'hidden' => esc_html__( 'Hidden', 'uicore-elements' ), 'visible' => esc_html__( 'Visible', 'uicore-elements' ) ], 'condition' => [ 'recaptcha_version' => 'v3', ], 'selectors' => [ '.grecaptcha-badge' => 'visibility: {{VALUE}};', ], ] ); $recaptcha_keys = (!get_option('uicore_elements_recaptcha_secret_key') && !get_option('uicore_elements_recaptcha_site_key')) ? true : false; // Check if recaptcha API keys were set $this->add_control( 'recaptcha_warning', [ 'type' => Controls_Manager::ALERT, 'alert_type' => 'warning', 'dismissible' => false, 'heading' => esc_html__("You haven't set your reCAPTCHA API keys yet.", 'uicore-elements'), 'content' => Helper::get_admin_settings_url( esc_html__("Click here to configure your API keys.", 'uicore-elements' ) ), 'condition' => [ 'add_recaptcha' => $recaptcha_keys ? 'true' : [], ] ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); $this->start_controls_section( 'section_buttons', [ 'label' => esc_html__( 'Button', 'uicore-elements' ), ] ); $this->TRAIT_register_button_controls('Subscribe'); $this->end_controls_section(); $this->start_controls_section( 'section_actions', [ 'label' => esc_html__( 'Actions After Submit', 'uicore-elements' ), ] ); $this->add_control( 'submit_actions', [ 'label' => esc_html__( 'Submit Actions', 'uicore-elements' ), 'type' => Controls_Manager::SELECT2, 'label_block' => true, 'multiple' => true, 'options' => [ 'email' => esc_html__( 'Email', 'uicore-elements' ), 'email_2' => esc_html__( 'Email 2', 'uicore-elements' ), 'redirect' => esc_html__( 'Redirect', 'uicore-elements' ), 'mailchimp' => esc_html__( 'MailChimp', 'uicore-elements' ), ], 'default' => [ 'email' ], ] ); $this->end_controls_section(); // Submit sections $this->start_controls_section( 'section_email', [ 'label' => esc_html__( 'Email', 'uicore-elements' ), 'condition' => [ 'submit_actions' => 'email', ], ] ); $this->TRAIT_register_submit_email_controls($this); $this->end_controls_section(); $this->start_controls_section( 'section_email_2', [ 'label' => esc_html__( 'Email 2', 'uicore-elements' ), 'condition' => [ 'submit_actions' => 'email_2', ], ] ); $this->TRAIT_register_submit_email_controls($this, '_2'); $this->end_controls_section(); $this->start_controls_section( 'section_redirect', [ 'label' => esc_html__( 'Redirect', 'uicore-elements' ), 'condition' => [ 'submit_actions' => 'redirect', ], ] ); $this->TRAIT_register_submit_redirect_controls(); $this->end_controls_section(); $this->start_controls_section( 'mailchimp_redirect', [ 'label' => esc_html__( 'Mailchimp', 'uicore-elements' ), 'condition' => [ 'submit_actions' => 'mailchimp', ], ] ); $this->TRAIT_register_submit_mailchimp_controls(); $this->end_controls_section(); $this->start_controls_section( 'section_form_options', [ 'label' => esc_html__( 'Additional Options', 'uicore-elements' ), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->TRAIT_register_additional_controls( Contact_Form_Service::get_default_messages() ); $this->end_controls_section(); $this->TRAIT_register_all_form_style_controls(); } protected function render() { $instance = $this->get_settings_for_display(); $is_recaptcha_required = false; // Save widget settings so form API can retrieve them set_transient('ui_e_form_widget_settings_' . $this->get_id(), $instance, DAY_IN_SECONDS); // Render Form and Fields Atts $this->add_render_attribute( [ 'wrapper' => [ 'class' => [ 'ui-e-fields-wrp', ], ], 'submit-group' => [ 'class' => [ 'ui-e-field-group', 'elementor-column', 'ui-e-field-type-submit', ], ], 'button' => [ 'class' => 'elementor-button', ], 'icon-align' => [ 'class' => [ empty( $instance['button_icon_align'] ) ? '' : 'ui-e-icon ui-e-align-' . $instance['button_icon_align'], ], ], ] ); if($instance['add_name'] == 'true') { $this->form_fields_render_attributes( '_name', $instance, 'name' ); } $this->form_fields_render_attributes( '_email', $instance, 'email' ); // Fallback for empty control values if ( empty( $instance['button_width'] ) ) { $instance['button_width'] = '100'; } // Button atts $this->add_render_attribute( 'submit-group', 'class', 'elementor-col-' . $instance['button_width'] . ' e-form__buttons' ); if ( ! empty( $instance['button_width_tablet'] ) ) { $this->add_render_attribute( 'submit-group', 'class', 'elementor-md-' . $instance['button_width_tablet'] ); } if ( ! empty( $instance['button_width_mobile'] ) ) { $this->add_render_attribute( 'submit-group', 'class', 'elementor-sm-' . $instance['button_width_mobile'] ); } if ( $instance['button_hover_animation'] ) { $this->add_render_attribute( 'button', 'class', 'elementor-animation-' . $instance['button_hover_animation'] ); } // Form atts if ( ! empty( $instance['form_id'] ) ) { $this->add_render_attribute( 'form', 'id', $instance['form_id'] ); } if ( ! empty( $instance['form_name'] ) ) { $this->add_render_attribute( 'form', 'name', $instance['form_name'] ); } if ( 'no' === $instance['form_validation'] ) { $this->add_render_attribute( 'form', 'novalidate' ); } if ( ! empty( $instance['button_css_id'] ) ) { $this->add_render_attribute( 'button', 'id', $instance['button_css_id'] ); } // Basic settings $print_label = $instance['show_labels'] == 'true'; ?> <form class="ui-e-form" method="post" <?php $this->print_render_attribute_string( 'form' ); ?>> <input type="hidden" name="widget_id" value="<?php echo esc_attr( $this->get_id() ); ?>"/> <input type="hidden" name="widget_type" value="newsletter"> <div <?php $this->print_render_attribute_string( 'wrapper' ); ?>> <?php if($instance['add_name'] == 'true') : ?> <div <?php $this->print_render_attribute_string( 'field-group_name'); ?>> <?php if ( $print_label && $instance['name_label'] ) : ?> <label <?php $this->print_render_attribute_string( 'label_name' ); ?>> <?php echo esc_html($instance['name_label']);?> </label> <?php endif; ?> <input <?php $this->print_render_attribute_string( 'input_name'); ?>> </div> <?php endif; ?> <div <?php $this->print_render_attribute_string( 'field-group_email'); ?>> <?php if ( $print_label && $instance['email_label'] ) : ?> <label <?php $this->print_render_attribute_string( 'label_email' ); ?>> <?php echo esc_html($instance['email_label']);?> </label> <?php endif; ?> <input <?php $this->print_render_attribute_string( 'input_email'); ?>> </div> <?php if($instance['add_honeypot'] == 'true') : ?> <div <?php $this->print_render_attribute_string( 'honeypot'); ?>> <label for="form-field-address" class="ui-e-label"> <?php echo esc_html__( 'Address', 'uicore-elements' ); ?> </label> <input class="ui-e-field ui-e-h-p" name="ui-e-h-p" id="ui-e-h-p" tabindex="-1" autocomplete="off"> </div> <?php endif; ?> <div <?php $this->print_render_attribute_string( 'submit-group' ); ?>> <button type="submit" <?php $this->print_render_attribute_string( 'button' ); ?>> <span <?php $this->print_render_attribute_string( 'content-wrapper' ); ?>> <?php if ( ! empty( $instance['button_icon'] ) || ! empty( $instance['selected_button_icon'] ) ) : ?> <span <?php $this->print_render_attribute_string( 'icon-align' ); ?>> <?php Icons_Manager::render_icon( $instance['selected_button_icon'], [ 'aria-hidden' => 'true' ] ); ?> <?php if ( empty( $instance['button_text'] ) ) : ?> <span class="elementor-screen-only"><?php echo esc_html__( 'Submit', 'uicore-elements' ); ?></span> <?php endif; ?> </span> <?php endif; ?> <?php if ( ! empty( $instance['button_text'] ) ) : ?> <span class="ui-e-text"><?php $this->print_unescaped_setting( 'button_text' ); ?></span> <?php endif; ?> </span> </button> </div> <?php if($instance['add_recaptcha'] == 'true') : $recaptcha_type = $instance['recaptcha_version'] === 'v2' ? 'recaptcha' : 'recaptcha_v3'; $is_recaptcha_required = true; ?> <div <?php $this->print_render_attribute_string($recaptcha_type); ?>> <input type="hidden" name="<?php echo esc_attr($recaptcha_type);?>"> <?php if($instance['recaptcha_version'] == 'v2') : ?> <div id="ui-e-recaptcha-<?php echo esc_attr( $this->get_ID() ); ?>"></div> <?php endif; ?> </div> <?php endif; ?> </div> <div class="ui-e-message <?php echo $this->is_edit_mode() ? 'elementor-hidden' : ''; ?>"> <?php if($this->is_edit_mode()) : // Get custom messages if set, else use default $messages = Contact_Form_Service::get_default_messages(); $success = isset($instance['success_message']) ? $instance['success_message'] : $messages['success']; $error = isset($instance['error_message']) ? $instance['error_message'] : $messages['error']; ?> <span class="success"> <?php echo esc_html($success);?> </span> <br> <span class="error"> <?php echo esc_html($error);?> </span> <?php endif; ?> </div> </form> <?php //add js to footer if recaptcha is enabled if($is_recaptcha_required){ add_action('wp_footer', [$this, 'TRAIT_recaptcha_key_js'], 999); } } } \Elementor\Plugin::instance()->widgets_manager->register(new Newsletter());PK }\\��^: ^: ! includes/widgets/custom-table.phpnu �[��� <?php namespace UiCoreElements; use Elementor\Plugin; use Elementor\Controls_Manager; use Elementor\Repeater; use Elementor\Modules\NestedElements\Controls\Control_Nested_Repeater; use UiCoreElements\Utils\Animation_Trait; defined('ABSPATH') || exit(); class CustomTable extends UiCoreNestedWidget { use Animation_Trait; public function get_name() { return 'uicore-custom-table'; } public function get_title() { return esc_html__('Custom Table', 'uicore-elements'); } public function get_icon() { return 'eicon-table ui-e-widget'; } public function get_categories() { return ['uicore']; } public function get_keywords() { return ['slide', 'table', 'nested']; } public function get_styles() { return ['custom-table']; } public function get_scripts() { return []; } public function has_widget_inner_wrapper(): bool { // TODO: remove after 3.30, when the full deprecation of widget innet wrapper is ready return ! \Elementor\Plugin::$instance->experiments->is_feature_active( 'e_optimized_markup' ); } protected function carousel_content_container( int $index ) { return [ 'elType' => 'container', 'settings' => [ /* translators: %s: Item index */ '_title' => sprintf( __( 'Cel #%s', 'uicore-elements' ), $index ), 'content_width' => 'full', ], ]; } protected function get_default_children_elements() { return [ $this->carousel_content_container( 1 ), $this->carousel_content_container( 2 ), $this->carousel_content_container( 3 ), ]; } protected function get_default_repeater_title_setting_key() { return 'table_cels'; } protected function get_default_children_title() { /* translators: %d: Item index */ return esc_html__( 'Cel #%d', 'uicore-elements' ); } protected function get_default_children_placeholder_selector() { return '.ui-e-table'; } protected function register_controls() { if( !Plugin::$instance->experiments->is_feature_active('nested-elements') ) { $this->nesting_fallback('controls'); return; } $this->start_controls_section( 'section_content', [ 'label' => __('Items', 'uicore-elements'), 'tab' => Controls_Manager::TAB_CONTENT, ] ); //Columns $columns = new Repeater(); $columns->add_responsive_control( 'col_size', [ 'label' => __('Column Size', 'uicore-elements'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px', 'fr','custom'], 'default' => [ 'size' => 300, 'unit' => 'px', ], 'range' => [ 'px' => [ 'min' => 1, 'max' => 1200, ], 'fr' => [ 'min' => 1, 'max' => 12, ], ], 'render_type' => 'template', 'selectors' => [ '{{WRAPPER}}' => '--ui-e-last:{{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'columns', [ 'type' => Controls_Manager::REPEATER, 'fields' => $columns->get_controls(), 'title_field' => 'Column', 'render_type' => 'template', 'default' => [ [ 'col_size' => [ 'size' => 1, 'unit' => 'fr' ] ], [ 'col_size' => [ 'size' => 1, 'unit' => 'fr' ] ], [ 'col_size' => [ 'size' => 1, 'unit' => 'fr' ] ], ], ] ); //Cells $repeater = new Repeater(); $repeater->add_control( 'item', [ 'label' => __('Title', 'uicore-elements'), 'type' => Controls_Manager::TEXT, ] ); $this->add_control( 'cells', [ 'type' => Control_Nested_Repeater::CONTROL_TYPE, 'fields' => $repeater->get_controls(), 'title_field' => '{{{ item }}}', 'allow_empty' => false, 'default' => [ [ 'item' => __( 'Cel #1', 'uicore-elements' ) ], [ 'item' => __( 'Cel #2', 'uicore-elements' ) ], [ 'item' => __( 'Cel #3', 'uicore-elements' ) ], ], ] ); $this->end_controls_section(); //style $this->start_controls_section( 'section_table_style', [ 'label' => __('Table Style', 'uicore-elements'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->start_controls_tabs( 'row_tabs' ); $this->start_controls_tab( 'odd_row', [ 'label' => esc_html__( 'Odd row', 'textdomain' ), ] ); $this->add_control( 'odd_row_bg_color', [ 'label' => __('Row background', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ui-e-table > .ui-e-odd' => 'background-color: {{VALUE}};', ], ] ); $this->add_control( 'odd_row_padding', [ 'label' => esc_html__( 'Row Padding', 'uicore-elements' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', 'rem', 'custom' ], 'selectors' => [ "{{WRAPPER}} .ui-e-table > .ui-e-odd" => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_control( 'odd_row_radius', [ 'label' => esc_html__( 'Row Border Radius', 'uicore-elements' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', 'rem', 'custom' ], 'selectors' => [ "{{WRAPPER}} .ui-e-table > .ui-e-odd.ui-e-first-row-cel" => 'border-radius: {{TOP}}{{UNIT}} 0 0 {{LEFT}}{{UNIT}};', "{{WRAPPER}} .ui-e-table > .ui-e-odd.ui-e-last-row-cel" => 'border-radius: 0 {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} 0;' ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'even_row', [ 'label' => esc_html__( 'Even row', 'textdomain' ), ] ); $this->add_control( 'even_row_bg_color', [ 'label' => __('Row background', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ui-e-table > .ui-e-even' => 'background-color: {{VALUE}};', ], ] ); $this->add_control( 'even_row_padding', [ 'label' => esc_html__( 'Row Padding', 'uicore-elements' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', 'rem', 'custom' ], 'selectors' => [ "{{WRAPPER}} .ui-e-table > .ui-e-even" => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_control( 'even_row_radius', [ 'label' => esc_html__( 'Row Border Radius', 'uicore-elements' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', 'rem', 'custom' ], 'selectors' => [ "{{WRAPPER}} .ui-e-table > .ui-e-even.ui-e-first-row-cel" => 'border-radius: {{TOP}}{{UNIT}} 0 0 {{LEFT}}{{UNIT}};', "{{WRAPPER}} .ui-e-table > .ui-e-even.ui-e-last-row-cel" => 'border-radius: 0 {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} 0;' ], ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); } protected function build_grid_css($cols) { // Build the grid columns css if ($cols) { $grid_css = ''; $grid_columns = []; $breakpoints = Plugin::$instance->breakpoints->get_active_breakpoints(); foreach ($cols as $index => $item) { // Set desktop column size $grid_columns['desktop'][] = isset($item['col_size']['size']) && isset($item['col_size']['unit']) ? $item['col_size']['size'] . $item['col_size']['unit'] : '1fr'; // fallback foreach ($breakpoints as $breakpoint => $object) { $size_slug = 'col_size_' . $breakpoint; // Register the current column responsive size if exists and the // value is not empty, because empty values breaks the table design $grid_columns[$breakpoint][] = isset($item[$size_slug]['size']) && isset($item[$size_slug]['unit']) ? $item[$size_slug]['size'] . $item[$size_slug]['unit'] : $grid_columns['desktop'][$index]; } } // Generate the css variables foreach ($grid_columns as $device => $values) { $breakpoint = $device === 'desktop' ? '' : '-' . $device; $grid_css .= '--ui-e-table-cols' . $breakpoint . ':' . implode(' ', $values) . ';'; } return $grid_css; } } public function render() { if(!Plugin::$instance->experiments->is_feature_active('nested-elements')) { $this->nesting_fallback(); return; } $cells = $this->get_settings_for_display('cells'); $cols = $this->get_settings_for_display('columns'); $grid_css = $this->build_grid_css($cols); // Add it to the widget wrapper $this->add_render_attribute('_wrapper', ['style' => $grid_css]); ?> <div class="ui-e-table"> <?php $columns = count($cols); foreach ($cells as $index => $item) { $row_class = floor($index / $columns) % 2 !== 0 ? 'ui-e-even' : 'ui-e-odd'; // TODO: in the future experiment a nth-child approach so we don't need this first/last classes // Add classes to the first and last items of each row if ($index % $columns === 0) { $row_class .= ' ui-e-first-row-cel'; } else if (($index + 1) % $columns === 0) { $row_class .= ' ui-e-last-row-cel'; } $this->print_child($index, ['class' => $row_class]); } ?> </div> <?php } public function print_child( $index , array $atts = []) { $children = $this->get_children(); if ( ! empty( $children[ $index ] ) ) { // Add custom attributes to each child container. if( !empty($atts) ){ //$child_settings = $children[ $index ]->get_settings_for_display(); foreach($atts as $key => $value){ $children[ $index ]->add_render_attribute( '_wrapper', $key, $value ); } } $children[ $index ]->print_element(); } } protected function get_initial_config(): array { if (Plugin::$instance->experiments->is_feature_active('e_nested_atomic_repeaters')) { return array_merge(parent::get_initial_config(), [ 'support_improved_repeaters' => true, 'node' => '.ui-e-table' ]); } return parent::get_initial_config(); } protected function content_template() { ?> <# const cols = settings.columns; const cols_qty = '--ui-e-cols-qty:' + settings.columns.length; if ( cols ) { let gridCss = ''; const gridColumns = {}; const breakpoints = elementorFrontend.config.responsive.activeBreakpoints; _.each( cols, function( item, index ) { if ( ! gridColumns.desktop ) { gridColumns.desktop = []; } gridColumns.desktop.push( item.col_size.size + item.col_size.unit ); _.each( breakpoints, function( object, breakpoint ) { const sizeSlug = 'col_size_' + breakpoint; if ( item[sizeSlug] && item[sizeSlug].size ) { if ( ! gridColumns[breakpoint] ) { gridColumns[breakpoint] = []; } gridColumns[breakpoint].push( item[sizeSlug].size + item[sizeSlug].unit ); } else { if ( ! gridColumns[breakpoint] ) { gridColumns[breakpoint] = []; } gridColumns[breakpoint].push( item.col_size.size + item.col_size.unit ); } }); }); _.each( gridColumns, function( values, device ) { const breakpoint = device === 'desktop' ? '' : '-' + device; gridCss += '--ui-e-table-cols' + breakpoint + ':' + values.join(' ') + ';'; }); view.addRenderAttribute('table', 'style', [gridCss, cols_qty].join(' ')); } #> <div class="ui-e-table" {{{ view.getRenderAttributeString('table') }}}> </div> <?php } } \Elementor\Plugin::instance()->widgets_manager->register(new CustomTable());PK }\�Ԋq q ! includes/widgets/gallery-grid.phpnu �[��� <?php namespace UiCoreElements; use Elementor\Controls_Manager; use Elementor\Group_Control_Background; use UiCoreElements\UiCoreWidget; use UicoreElements\Utils\Gallery_Trait; use UiCoreElements\Utils\Animation_Trait; use UiCoreElements\Utils\Grid_Trait; use UicoreElements\Utils\Item_Style_Component; defined('ABSPATH') || exit(); /** * Gallery Grid * * @author Lucas Marini Falbo <lucas95@uicore.co> * @since 1.0.14 */ class GalleryGrid extends UiCoreWidget { use Animation_Trait; use Grid_Trait; use Gallery_Trait; use Item_Style_Component; public function get_name() { return 'uicore-gallery-grid'; } public function get_title() { return esc_html__('Gallery Grid', 'uicore-elements'); } public function get_icon() { return 'eicon-gallery-grid ui-e-widget'; } public function get_categories() { return ['uicore']; } public function get_keywords() { return ['gallery', 'grid', 'content', 'box',]; } public function get_styles() { $styles = [ 'gallery-grid', 'grid', 'filters' => [ 'condition' => [ 'filters' => 'yes', ] ], 'animation', // hover animations 'entrance', // entrance basic style ]; if(!class_exists('\UiCore\Core') && !class_exists('\UiCoreAnimate\Base')){ $styles['e-animations'] = [ // entrance animations 'external' => true, ]; } return $styles; } public function get_scripts() { return [ 'gallery-grid' => [ 'condition' => [ 'filters' => 'yes' ], ], 'entrance' => [ 'condition' => [ 'animate_items' => 'ui-e-grid-animate' ], ] ]; } public function has_widget_inner_wrapper(): bool { // TODO: remove after 3.30, when the full deprecation of widget innet wrapper is ready return ! \Elementor\Plugin::$instance->experiments->is_feature_active( 'e_optimized_markup' ); } protected function register_controls() { $this->TRAIT_register_gallery_repeater_controls('Content'); $this->TRAIT_register_additional_controls(); $this->start_controls_section( 'grid_section', [ 'label' => esc_html__('Grid Settings', 'uicore-elements'), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->TRAIT_register_grid_layout_controls(); $this->end_controls_section(); $this->start_controls_section( 'items_style_section', [ 'label' => esc_html__('Item', 'uicore-elements'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->TRAIT_register_all_item_style_controls(false); $this->end_controls_section(); $this->TRAIT_register_filters_style_controls(); $this->TRAIT_register_image_style_controls(); $this->TRAIT_register_title_style_controls(); $this->TRAIT_register_description_style_controls(); $this->TRAIT_register_tags_style_controls(); $this->TRAIT_register_badge_style_controls(); $this->TRAIT_register_gallery_animations(); // Update some component controls $this->update_control( 'item_border', [ 'default' => 'none', ] ); $this->update_control( 'item_border_border', [ 'default' => 'none' ] ); $this->update_control( 'item_padding', [ 'default' => [ 'top' => 10, 'right' => 10, 'bottom' => 10, 'left' => 10, ], 'selectors' => [ '{{WRAPPER}} .ui-e-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->update_control( 'item_border_radius', [ 'default' => [ 'top' => 0, 'right' => 0, 'bottom' => 0, 'left' => 0, 'unit' => 'px', ] ] ); $this->update_control( 'gap', [ 'default' => [ 'size' => 35, ] ] ); // Remove some useless component controls or group controls that can't be properly updated $this->remove_control('item_background_background'); $this->remove_control('item_hover_background_background'); $this->remove_control('item_background_color'); $this->remove_control('item_background_image'); $this->remove_control('item_background_gradient'); // Inject new controls $this->start_injection([ 'of' => 'item_border_border', 'at' => 'before', ]); // normal background controls $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'item_gallery_background', 'selector' => '{{WRAPPER}} .ui-e-item', 'condition' => [ 'layout' => '', ] ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'item_content_background', 'selector' => '{{WRAPPER}} .ui-e-content', 'condition' => [ 'layout' => 'ui-e-overlay', ] ] ); $this->end_injection(); $this->start_injection([ 'of' => 'item_hover_border_color', 'at' => 'before', ]); // hover background controls $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'item_gallery_hover_background', 'selector' => '{{WRAPPER}} .ui-e-item:hover', 'condition' => [ 'layout' => '', ] ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'item_content_hover_background', 'selector' => '{{WRAPPER}} .ui-e-item:hover .ui-e-content', 'condition' => [ 'layout' => 'ui-e-overlay', ] ] ); $this->end_injection(); } public function render() { $settings = $this->get_settings_for_display(); $masonry = $this->is_option('masonry', 'yes') ? 'ui-e-maso' : ''; $this->TRAIT_render_gallery_filters($settings); ?> <div class='ui-e-grid ui-e-items-wrp <?php echo esc_attr($masonry) ;?>'> <?php $this->TRAIT_render_gallery($settings); ?> </div> <?php } } \Elementor\Plugin::instance()->widgets_manager->register(new GalleryGrid());PK }\���Fs Fs ! includes/widgets/contact-form.phpnu �[��� <?php namespace UiCoreElements; use UiCoreElements\Helper; use UiCoreElements\Utils\Contact_Form_Service; use UiCoreElements\Utils\Form_Component; use Elementor\Controls_Manager; use Elementor\Icons_Manager; use Elementor\Utils; use Elementor\Repeater; use Elementor\Group_Control_Typography; use Elementor\Group_Control_Border; use Elementor\Core\Kits\Documents\Tabs\Global_Colors; use Elementor\Core\Kits\Documents\Tabs\Global_Typography; defined('ABSPATH') || exit(); /** * Contact Form * * @author Lucas Marini Falbo <lucas@uicore.co> * @since 1.0.5 */ class ContactForm extends UiCoreWidget { use Form_Component; public function get_name() { return 'uicore-contact-form'; } public function get_title() { return __( 'Contact Form', 'uicore-elements' ); } public function get_icon() { return 'eicon-form-horizontal ui-e-widget'; } public function get_categories() { return ['uicore']; } public function get_keywords() { return [ 'form', 'forms', 'contact', 'mail', 'send', 'field', 'button', 'recaptcha', ]; } public function get_styles() { return ['contact-form']; } public function get_scripts() { return [ 'contact-form', 'recaptcha' => [ 'custom_condition' => $this->check_recaptcha_version('v2') ], 'recaptcha-v3' => [ 'custom_condition' => $this->check_recaptcha_version('v3') ], 'repeater-custom-key' => [ 'custom_condition' => $this->is_edit_mode() ] ]; } public function has_widget_inner_wrapper(): bool { // TODO: remove after 3.30, when the full deprecation of widget innet wrapper is ready return ! \Elementor\Plugin::$instance->experiments->is_feature_active( 'e_optimized_markup' );; } function check_recaptcha_version($version) { if($this->is_edit_mode()){ return true; } $settings = $this->get_settings_for_display(); foreach ($settings['form_fields'] as $field) { $version_to_check = $version === 'v2' ? 'recaptcha' : 'recaptcha_v3'; if($field['field_type'] === $version_to_check){ return true; } } return false; } // Helper Functions function get_field_types() { return [ 'text' => esc_html__( 'Text', 'uicore-elements' ), 'email' => esc_html__( 'Email', 'uicore-elements' ), 'textarea' => esc_html__( 'Textarea', 'uicore-elements' ), 'url' => esc_html__( 'URL', 'uicore-elements' ), 'tel' => esc_html__( 'Tel', 'uicore-elements' ), 'radio' => esc_html__( 'Radio', 'uicore-elements' ), 'select' => esc_html__( 'Select', 'uicore-elements' ), 'checkbox' => esc_html__( 'Checkbox', 'uicore-elements' ), 'acceptance' => esc_html__( 'Acceptance', 'uicore-elements' ), 'number' => esc_html__( 'Number', 'uicore-elements' ), 'date' => esc_html__( 'Date', 'uicore-elements' ), 'time' => esc_html__( 'Time', 'uicore-elements' ), 'file' => esc_html__( 'File Upload', 'uicore-elements' ), 'password' => esc_html__( 'Password', 'uicore-elements' ), 'address' => esc_html__( 'Honeypot', 'uicore-elements' ), 'recaptcha' => esc_html__( 'reCAPTCHA', 'uicore-elements' ), 'recaptcha_v3' => esc_html__( 'reCAPTCHA V3', 'uicore-elements' ), 'html' => esc_html__( 'HTML', 'uicore-elements' ), 'hidden' => esc_html__( 'Hidden', 'uicore-elements' ), ]; } function get_attribute_name( $item ) { return "form_fields[{$item['custom_id']}]"; } function get_attribute_id( $item ) { return 'form-field-' . $item['custom_id']; } function add_required_attribute( $element, $js_verication = false ) { // Used for elements (eg: checkbox) that aren't natively supported by the browsers validations if($js_verication) { $this->add_render_attribute( $element, 'data-ui-e-required', 'true' ); return; } // Default method $this->add_render_attribute( $element, 'required', 'required' ); $this->add_render_attribute( $element, 'aria-required', 'true' ); } // Control Render Functions function register_submit_email_controls($instance, $slug = '') { $instance->add_control( 'email_to' . $slug, [ 'label' => esc_html__( 'To', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => get_option( 'admin_email' ), 'ai' => [ 'active' => false, ], 'placeholder' => get_option( 'admin_email' ), 'label_block' => true, 'title' => esc_html__( 'Separate emails with commas', 'uicore-elements' ), 'render_type' => 'none', 'dynamic' => [ 'active' => true, ], ] ); /* translators: %s: Site title. */ $default_message = sprintf( html_entity_decode( esc_html__( 'New message from "%s"', 'uicore-elements' ) ), get_option( 'blogname' ) ); $instance->add_control( 'email_subject' . $slug, [ 'label' => esc_html__( 'Subject', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => $default_message, 'ai' => [ 'active' => false, ], 'placeholder' => $default_message, 'label_block' => true, 'render_type' => 'none', 'dynamic' => [ 'active' => true, ], ] ); $instance->add_control( 'email_content' . $slug, [ 'label' => esc_html__( 'Message', 'uicore-elements' ), 'type' => Controls_Manager::TEXTAREA, 'default' => '[all-fields]', 'ai' => [ 'active' => false, ], 'placeholder' => '[all-fields]', 'description' => sprintf( /* translators: %s: The [all-fields] shortcode. */ esc_html__( 'By default, all form fields are sent via %s shortcode. To customize sent fields, copy the shortcode that appears inside each field and paste it above.', 'uicore-elements' ), '<code>[all-fields]</code>' ), 'render_type' => 'none', 'dynamic' => [ 'active' => true, ], ] ); $site_domain = Helper::get_site_domain(); $instance->add_control( 'email_from' . $slug, [ 'label' => esc_html__( 'From Email', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => 'email@' . $site_domain, 'ai' => [ 'active' => false, ], 'render_type' => 'none', 'dynamic' => [ 'active' => true, ], ] ); $instance->add_control( 'email_from_name' . $slug, [ 'label' => esc_html__( 'From Name', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => get_bloginfo( 'name' ), 'ai' => [ 'active' => false, ], 'render_type' => 'none', 'dynamic' => [ 'active' => true, ], ] ); $instance->add_control( 'email_reply_to' . $slug, [ 'label' => esc_html__( 'Reply-To', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'options' => [ '' => '', ], 'default' => 'noreply@' . Helper::get_site_domain(), 'render_type' => 'none', ] ); $instance->add_control( 'email_to_cc' . $slug, [ 'label' => esc_html__( 'Cc', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => '', 'ai' => [ 'active' => false, ], 'title' => esc_html__( 'Separate emails with commas', 'uicore-elements' ), 'render_type' => 'none', 'dynamic' => [ 'active' => true, ], ] ); $instance->add_control( 'email_to_bcc' . $slug, [ 'label' => esc_html__( 'Bcc', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => '', 'ai' => [ 'active' => false, ], 'title' => esc_html__( 'Separate emails with commas', 'uicore-elements' ), 'render_type' => 'none', 'dynamic' => [ 'active' => true, ], ] ); $instance->add_control( 'form_metadata' . $slug, [ 'label' => esc_html__( 'Meta Data', 'uicore-elements' ), 'type' => Controls_Manager::SELECT2, 'multiple' => true, 'label_block' => true, 'separator' => 'before', 'default' => [ 'date', 'time', 'page_url', 'user_agent', 'remote_ip', ], 'options' => [ 'date' => esc_html__( 'Date', 'uicore-elements' ), 'time' => esc_html__( 'Time', 'uicore-elements' ), 'page_url' => esc_html__( 'Page URL', 'uicore-elements' ), 'user_agent' => esc_html__( 'User Agent', 'uicore-elements' ), 'remote_ip' => esc_html__( 'Remote IP', 'uicore-elements' ), ], 'render_type' => 'none', ] ); $instance->add_control( 'email_content_type' . $slug, [ 'label' => esc_html__( 'Send As', 'uicore-elements' ), 'type' => Controls_Manager::SELECT, 'default' => 'html', 'render_type' => 'none', 'options' => [ 'html' => esc_html__( 'HTML', 'uicore-elements' ), 'plain' => esc_html__( 'Plain', 'uicore-elements' ), ], ] ); } // Field Render Functions function build_honeypot_field( $item, $item_index ) { $this->add_render_attribute( 'honeypot' . $item_index, [ 'class' => [ 'ui-e-field', 'ui-e-h-p', esc_attr( $item['css_classes'] ), ], 'name' => 'ui-e-h-p', 'id' => 'ui-e-h-p', 'autocomplete' => 'off', ] ); if ( $item['placeholder'] ) { $this->add_render_attribute( 'honeypot' . $item_index, 'placeholder', $item['placeholder'] ); } if ( $item['required'] ) { $this->add_required_attribute( 'honeypot' . $item_index ); } $value = empty( $item['field_value'] ) ? '' : $item['field_value']; return '<input ' . $this->get_render_attribute_string( 'honeypot' . $item_index ) . ' tabindex="-1">' . $value . '</input>'; } function build_textarea_field( $item, $item_index ) { $this->add_render_attribute( 'textarea' . $item_index, [ 'class' => [ 'ui-e-field', esc_attr( $item['css_classes'] ), ], 'name' => $this->get_attribute_name( $item ), 'id' => $this->get_attribute_id( $item ), 'rows' => $item['rows'], ] ); if ( $item['placeholder'] ) { $this->add_render_attribute( 'textarea' . $item_index, 'placeholder', $item['placeholder'] ); } if ( $item['required'] ) { $this->add_required_attribute( 'textarea' . $item_index ); } $value = empty( $item['field_value'] ) ? '' : $item['field_value']; return '<textarea ' . $this->get_render_attribute_string( 'textarea' . $item_index ) . '>' . $value . '</textarea>'; } function build_select_field( $item, $i ) { $this->add_render_attribute( [ 'select-wrapper' . $i => [ 'class' => [ 'ui-e-field', 'ui-e-field-select', 'ui-e-field-subgroup', esc_attr( $item['css_classes'] ), ], ], 'select' . $i => [ 'name' => $this->get_attribute_name( $item ) . ( ! empty( $item['allow_multiple'] ) ? '[]' : '' ), 'id' => $this->get_attribute_id( $item ), 'class' => [ 'ui-e-field-textual', ], ], ] ); if ( $item['required'] ) { $this->add_required_attribute( 'select' . $i ); } if ( $item['allow_multiple'] ) { $this->add_render_attribute( 'select' . $i, 'multiple' ); if ( ! empty( $item['select_size'] ) ) { $this->add_render_attribute( 'select' . $i, 'size', $item['select_size'] ); } } $options = preg_split( "/\\r\\n|\\r|\\n/", $item['field_options'] ); if ( ! $options ) { return ''; } ob_start(); ?> <div <?php $this->print_render_attribute_string( 'select-wrapper' . $i ); ?>> <select <?php $this->print_render_attribute_string( 'select' . $i ); ?>> <?php foreach ( $options as $key => $option ) { $option_id = $item['custom_id'] . $key; $option_value = esc_attr( $option ); $option_label = esc_html( $option ); if ( false !== strpos( $option, '|' ) ) { list( $label, $value ) = explode( '|', $option ); $option_value = esc_attr( $value ); $option_label = esc_html( $label ); } $this->add_render_attribute( $option_id, 'value', $option_value ); // Support multiple selected values if ( ! empty( $item['field_value'] ) && in_array( $option_value, explode( ',', $item['field_value'] ) ) ) { $this->add_render_attribute( $option_id, 'selected', 'selected' ); } ?> <option <?php $this->print_render_attribute_string( $option_id ); ?>><?php // PHPCS - $option_label is already escaped echo $option_label; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></option> <?php } ?> </select> </div> <?php $select = ob_get_clean(); return $select; } function build_radio_checkbox_field( $item, $item_index, $type ) { $options = preg_split( "/\\r\\n|\\r|\\n/", $item['field_options'] ); $html = ''; if ( $options ) { $html .= '<div class="ui-e-field-subgroup ' . esc_attr( $item['css_classes'] ) . ' ' . $item['inline_list'] . '">'; foreach ( $options as $key => $option ) { $element_id = $item['custom_id'] . $key; $html_id = $this->get_attribute_id( $item ) . '-' . $key; $option_label = $option; $option_value = $option; if ( false !== strpos( $option, '|' ) ) { list( $option_label, $option_value ) = explode( '|', $option ); } $this->add_render_attribute( $element_id, [ 'type' => $type, 'value' => $option_value, 'id' => $html_id, 'name' => $this->get_attribute_name( $item ) . ( ( 'checkbox' === $type && count( $options ) > 1 ) ? '[]' : '' ), ] ); if ( $item['required'] ) { $this->add_required_attribute( $element_id, true ); } if ( ! empty( $item['field_value'] ) && $option_value === $item['field_value'] ) { $this->add_render_attribute( $element_id, 'checked', 'checked' ); } if ( $item['required'] && 'radio' === $type ) { $this->add_required_attribute( $element_id ); } $html .= '<span class="ui-e-field-option"><input ' . $this->get_render_attribute_string( $element_id ) . '> <label for="' . $html_id . '">' . $option_label . '</label></span>'; } $html .= '</div>'; } return $html; } function build_acceptance_field($item, $item_index) { $text = ''; $this->add_render_attribute( 'input' . $item_index, 'class', 'ui-e-acceptance-field' ); $this->add_render_attribute( 'input' . $item_index, 'type', 'checkbox', true ); if ( ! empty( $item['acceptance_text'] ) ) { $text = '<label for="' . $this->get_attribute_id( $item ) . '">' . $item['acceptance_text'] . '</label>'; } if ( ! empty( $item['checked_by_default'] ) ) { $this->add_render_attribute( 'input' . $item_index, 'checked', 'checked' ); } ?> <div class="ui-e-field-subgroup <?php echo esc_attr( $item['css_classes'] );?>"> <input <?php $this->print_render_attribute_string( 'input' . $item_index ); ?>> <?php // PHPCS - the variables $text is safe. echo $text; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> </div> <?php } function form_fields_render_attributes( $i, $instance, $item ) { $this->add_render_attribute( [ 'field-group' . $i => [ 'class' => [ 'ui-e-field-type-' . $item['field_type'], 'ui-e-field-group', 'elementor-column', 'ui-e-field-group-' . $item['custom_id'], ], ], 'input' . $i => [ 'type' => $item['field_type'], 'name' => $this->get_attribute_name( $item ), 'id' => $this->get_attribute_id( $item ), 'class' => [ 'ui-e-field', empty( $item['css_classes'] ) ? '' : esc_attr( $item['css_classes'] ), ], ], 'label' . $i => [ 'for' => $this->get_attribute_id( $item ), 'class' => 'ui-e-label', ], ] ); if ( empty( $item['width'] ) ) { $item['width'] = '100'; } $this->add_render_attribute( 'field-group' . $i, 'class', 'elementor-col-' . $item['width'] ); if ( ! empty( $item['width_tablet'] ) ) { $this->add_render_attribute( 'field-group' . $i, 'class', 'elementor-md-' . $item['width_tablet'] ); } if ( $item['allow_multiple'] ) { $this->add_render_attribute( 'field-group' . $i, 'class', 'ui-e-field-type-' . $item['field_type'] . '-multiple' ); } if ( ! empty( $item['width_mobile'] ) ) { $this->add_render_attribute( 'field-group' . $i, 'class', 'elementor-sm-' . $item['width_mobile'] ); } // Allow zero as placeholder. if ( ! Utils::is_empty( $item['placeholder'] ) ) { $this->add_render_attribute( 'input' . $i, 'placeholder', $item['placeholder'] ); } if ( ! empty( $item['field_value'] ) ) { $this->add_render_attribute( 'input' . $i, 'value', $item['field_value'] ); } if ( ! $instance['show_labels'] ) { $this->add_render_attribute( 'label' . $i, 'class', 'elementor-screen-only' ); } if ( ! empty( $item['required'] ) ) { $class = ''; if ( ! empty( $instance['mark_required'] ) ) { $class .= ' ui-e-required'; } $this->add_render_attribute( 'field-group' . $i, 'class', $class ); $this->add_required_attribute( 'input' . $i ); } } protected function register_controls() { // Content Controls // Repeater Controls used by `form_fields` control $repeater = new Repeater(); $repeater->start_controls_tabs( 'form_fields_tabs' ); $repeater->start_controls_tab( 'form_fields_content_tab', [ 'label' => esc_html__( 'Content', 'uicore-elements' ), ] ); $repeater->add_control( 'field_type', [ 'label' => esc_html__( 'Type', 'uicore-elements' ), 'type' => Controls_Manager::SELECT, 'options' => $this->get_field_types(), 'default' => 'text', ] ); $repeater->add_control( 'field_label', [ 'label' => esc_html__( 'Label', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => '', 'dynamic' => [ 'active' => true, ], ] ); $repeater->add_control( 'placeholder', [ 'label' => esc_html__( 'Placeholder', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => '', 'conditions' => [ 'terms' => [ [ 'name' => 'field_type', 'operator' => 'in', 'value' => [ 'tel', 'text', 'email', 'textarea', 'number', 'url', 'password', ], ], ], ], 'dynamic' => [ 'active' => true, ], ] ); $repeater->add_control( 'required', [ 'label' => esc_html__( 'Required', 'uicore-elements' ), 'type' => Controls_Manager::SWITCHER, 'return_value' => 'true', 'default' => '', 'conditions' => [ 'terms' => [ [ 'name' => 'field_type', 'operator' => '!in', 'value' => [ 'recaptcha', 'recaptcha_v3', 'hidden', 'html', ], ], ], ], ] ); $repeater->add_control( 'field_options', [ 'label' => esc_html__( 'Options', 'uicore-elements' ), 'type' => Controls_Manager::TEXTAREA, 'default' => '', 'description' => esc_html__( 'Enter each option in a separate line. To differentiate between label and value, separate them with a pipe char ("|"). For example: First Name|f_name', 'uicore-elements' ), 'conditions' => [ 'terms' => [ [ 'name' => 'field_type', 'operator' => 'in', 'value' => [ 'select', 'checkbox', 'radio', ], ], ], ], ] ); $repeater->add_control( 'allow_multiple', [ 'label' => esc_html__( 'Multiple Selection', 'uicore-elements' ), 'type' => Controls_Manager::SWITCHER, 'return_value' => 'true', 'conditions' => [ 'terms' => [ [ 'name' => 'field_type', 'value' => 'select', ], ], ], ] ); $repeater->add_control( 'select_size', [ 'label' => esc_html__( 'Rows', 'uicore-elements' ), 'type' => Controls_Manager::NUMBER, 'min' => 2, 'step' => 1, 'conditions' => [ 'terms' => [ [ 'name' => 'field_type', 'value' => 'select', ], [ 'name' => 'allow_multiple', 'value' => 'true', ], ], ], ] ); $repeater->add_control( 'inline_list', [ 'label' => esc_html__( 'Inline List', 'uicore-elements' ), 'type' => Controls_Manager::SWITCHER, 'return_value' => 'ui-e-subgroup-inline', 'default' => '', 'conditions' => [ 'terms' => [ [ 'name' => 'field_type', 'operator' => 'in', 'value' => [ 'checkbox', 'radio', ], ], ], ], ] ); $repeater->add_control( 'field_html', [ 'label' => esc_html__( 'HTML', 'uicore-elements' ), 'type' => Controls_Manager::TEXTAREA, 'dynamic' => [ 'active' => true, ], 'conditions' => [ 'terms' => [ [ 'name' => 'field_type', 'value' => 'html', ], ], ], ] ); $repeater->add_control( 'acceptance_text', [ 'label' => esc_html__( 'Acceptance Text', 'uicore-elements' ), 'type' => Controls_Manager::TEXTAREA, 'condition' => [ 'field_type' => 'acceptance', ], ], ); $repeater->add_control( 'checked_by_default', [ 'label' => esc_html__( 'Checked by Default', 'uicore-elements' ), 'type' => Controls_Manager::SWITCHER, 'condition' => [ 'field_type' => 'acceptance', ], ], ); $repeater->add_responsive_control( 'width', [ 'label' => esc_html__( 'Column Width', 'uicore-elements' ), 'type' => Controls_Manager::SELECT, 'options' => [ '' => esc_html__( 'Default', 'uicore-elements' ), '100' => '100%', '80' => '80%', '75' => '75%', '70' => '70%', '66' => '66%', '60' => '60%', '50' => '50%', '40' => '40%', '33' => '33%', '30' => '30%', '25' => '25%', '20' => '20%', ], 'default' => '100', 'conditions' => [ 'terms' => [ [ 'name' => 'field_type', 'operator' => '!in', 'value' => [ 'hidden', 'recaptcha', 'recaptcha_v3' ], ], ], ], ] ); $repeater->add_control( 'rows', [ 'label' => esc_html__( 'Rows', 'uicore-elements' ), 'type' => Controls_Manager::NUMBER, 'default' => 4, 'conditions' => [ 'terms' => [ [ 'name' => 'field_type', 'value' => 'textarea', ], ], ], ] ); $repeater->add_control( 'recaptcha_hide', [ 'label' => esc_html__( 'Badge', 'uicore-elements' ), 'type' => Controls_Manager::SELECT, 'default' => 'hidden', 'options' => [ 'hidden' => esc_html__( 'Hidden', 'uicore-elements' ), 'visible' => esc_html__( 'Visible', 'uicore-elements' ) ], 'condition' => [ 'field_type' => 'recaptcha_v3', ], 'selectors' => [ '.grecaptcha-badge' => 'visibility: {{VALUE}};', ], ] ); $recaptcha_keys = (!get_option('uicore_elements_recaptcha_secret_key') && !get_option('uicore_elements_recaptcha_site_key')) ? true : false; // Check if recaptcha API keys were set $repeater->add_control( 'recaptcha_warning', [ 'type' => Controls_Manager::ALERT, 'alert_type' => 'warning', 'dismissible' => false, 'heading' => esc_html__("You haven't set your reCAPTCHA API keys yet.", 'uicore-elements'), 'content' => Helper::get_admin_settings_url(esc_html__("Click here to configure your API keys.", 'uicore-elements' )), 'condition' => [ 'field_type' => $recaptcha_keys ? ['recaptcha', 'recaptcha_v3'] : [], ] ] ); $repeater->end_controls_tab(); $repeater->start_controls_tab( 'form_fields_advanced_tab', [ 'label' => esc_html__( 'Advanced', 'uicore-elements' ), 'condition' => [ 'field_type!' => ['html', 'address' ], ], ] ); $repeater->add_control( 'field_value', [ 'label' => esc_html__( 'Default Value', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => '', 'dynamic' => [ 'active' => true, ], 'ai' => [ 'active' => false, ], 'conditions' => [ 'terms' => [ [ 'name' => 'field_type', 'operator' => 'in', 'value' => [ 'text', 'email', 'textarea', 'url', 'tel', 'radio', 'select', 'number', 'date', 'time', 'hidden', ], ], ], ], ] ); $repeater->add_control( 'custom_id', [ 'label' => esc_html__( 'ID', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'description' => esc_html__( 'Please make sure the ID is unique and not used elsewhere in this form. This field allows `A-z 0-9` & underscore chars without spaces.', 'uicore-elements' ), 'render_type' => 'none', 'required' => true, 'dynamic' => [ 'active' => true, ], 'ai' => [ 'active' => false, ], ] ); $repeater->add_control( 'css_classes', [ 'label' => esc_html__( 'Custom Class', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => '', 'ai' => [ 'active' => false, ], 'placeholder' => esc_html__( 'e.g: my-class', 'uicore-elements' ), ] ); $shortcode_template = '{{ view.container.settings.get( \'custom_id\' ) }}'; $repeater->add_control( 'shortcode', [ 'label' => esc_html__( 'Shortcode', 'uicore-elements' ), 'type' => Controls_Manager::RAW_HTML, 'classes' => 'forms-field-shortcode', 'raw' => '<input class="elementor-form-field-shortcode" value=\'[field id="' . $shortcode_template . '"]\' readonly />', 'label_block' => false, ] ); $repeater->end_controls_tab(); $repeater->end_controls_tabs(); $this->start_controls_section( 'section_form_fields', [ 'label' => esc_html__( 'Form Fields', 'uicore-elements' ), ] ); $this->add_control( 'form_name', [ 'label' => esc_html__( 'Form Name', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => esc_html__( 'New Form', 'uicore-elements' ), 'placeholder' => esc_html__( 'Form Name', 'uicore-elements' ), ] ); $this->add_control( 'form_fields', [ 'type' => Controls_Manager::REPEATER, 'fields' => $repeater->get_controls(), 'default' => [ [ 'custom_id' => 'name', 'field_type' => 'text', 'field_label' => esc_html__( 'Name', 'uicore-elements' ), 'placeholder' => esc_html__( 'Name', 'uicore-elements' ), 'width' => '100', 'dynamic' => [ 'active' => true, ], ], [ 'custom_id' => 'email', 'field_type' => 'email', 'required' => 'true', 'field_label' => esc_html__( 'Email', 'uicore-elements' ), 'placeholder' => esc_html__( 'Email', 'uicore-elements' ), 'width' => '100', ], [ 'custom_id' => 'address', 'field_type' => 'address', 'field_label' => esc_html__( 'address (honeypot)', 'uicore-elements' ), 'placeholder' => esc_html__( 'address', 'uicore-elements' ), 'width' => '100', ], [ 'custom_id' => 'message', 'field_type' => 'textarea', 'field_label' => esc_html__( 'Message', 'uicore-elements' ), 'placeholder' => esc_html__( 'Message', 'uicore-elements' ), 'width' => '100', ], ], 'title_field' => '{{{ field_label }}}', ] ); $this->add_control( 'show_labels', [ 'label' => esc_html__( 'Label', 'uicore-elements' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Show', 'uicore-elements' ), 'label_off' => esc_html__( 'Hide', 'uicore-elements' ), 'return_value' => 'true', 'default' => 'true', 'separator' => 'before', ] ); $this->add_control( 'mark_required', [ 'label' => esc_html__( 'Required Mark', 'uicore-elements' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Show', 'uicore-elements' ), 'label_off' => esc_html__( 'Hide', 'uicore-elements' ), 'default' => '', 'render_type' => 'template', 'condition' => [ 'show_labels!' => '', ], ] ); $this->end_controls_section(); $this->start_controls_section( 'section_buttons', [ 'label' => esc_html__( 'Button', 'uicore-elements' ), ] ); $this->add_responsive_control( 'button_width', [ 'label' => esc_html__( 'Column Width', 'uicore-elements' ), 'type' => Controls_Manager::SELECT, 'options' => [ '' => esc_html__( 'Default', 'uicore-elements' ), '100' => '100%', '80' => '80%', '75' => '75%', '70' => '70%', '66' => '66%', '60' => '60%', '50' => '50%', '40' => '40%', '33' => '33%', '30' => '30%', '25' => '25%', '20' => '20%', ], 'default' => '100', ] ); $this->add_responsive_control( 'button_align', [ 'label' => esc_html__( 'Alignment', 'uicore-elements' ), 'type' => Controls_Manager::CHOOSE, 'options' => [ 'left' => [ 'title' => esc_html__( 'Left', 'uicore-elements' ), 'icon' => 'eicon-text-align-left', ], 'center' => [ 'title' => esc_html__( 'Center', 'uicore-elements' ), 'icon' => 'eicon-text-align-center', ], 'right' => [ 'title' => esc_html__( 'Right', 'uicore-elements' ), 'icon' => 'eicon-text-align-right', ], 'stretch' => [ 'title' => esc_html__( 'Justified', 'uicore-elements' ), 'icon' => 'eicon-text-align-justify', ], ], 'default' => 'stretch', 'prefix_class' => 'ui-e-submit-align-', ] ); $this->add_control( 'button_text', [ 'label' => esc_html__( 'Submit', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => esc_html__( 'Send', 'uicore-elements' ), 'placeholder' => esc_html__( 'Send', 'uicore-elements' ), 'dynamic' => [ 'active' => true, ], 'ai' => [ 'active' => false, ], ] ); $this->add_control( 'selected_button_icon', [ 'label' => esc_html__( 'Icon', 'uicore-elements' ), 'type' => Controls_Manager::ICONS, 'skin' => 'inline', 'label_block' => false, ] ); $this->add_control( 'button_icon_align', [ 'label' => esc_html__( 'Icon Position', 'uicore-elements' ), 'type' => Controls_Manager::SELECT, 'default' => 'left', 'options' => [ 'left' => esc_html__( 'Before', 'uicore-elements' ), 'right' => esc_html__( 'After', 'uicore-elements' ), ], 'condition' => [ 'selected_button_icon[value]!' => '', ], ] ); $this->add_control( 'button_icon_indent', [ 'label' => esc_html__( 'Icon Spacing', 'uicore-elements' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px', 'em', 'rem', 'custom' ], 'range' => [ 'px' => [ 'max' => 100, ], 'em' => [ 'max' => 10, ], 'rem' => [ 'max' => 10, ], ], 'condition' => [ 'selected_button_icon[value]!' => '', ], 'selectors' => [ '{{WRAPPER}} .elementor-button .ui-e-align-right' => 'margin-left: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .elementor-button .ui-e-align-left' => 'margin-right: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'button_css_id', [ 'label' => esc_html__( 'Button ID', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => '', 'ai' => [ 'active' => false, ], 'title' => esc_html__( 'Add your custom id WITHOUT the Pound key. e.g: my-id', 'uicore-elements' ), 'description' => esc_html__( 'Please make sure the ID is unique and not used elsewhere on the page this form is displayed. This field allows `A-z 0-9` & underscore chars without spaces.', 'uicore-elements' ), 'separator' => 'before', 'dynamic' => [ 'active' => true, ], ] ); $this->end_controls_section(); $this->start_controls_section( 'section_actions', [ 'label' => esc_html__( 'Actions After Submit', 'uicore-elements' ), ] ); $this->add_control( 'submit_actions', [ 'label' => esc_html__( 'Submit Actions', 'uicore-elements' ), 'type' => Controls_Manager::SELECT2, 'label_block' => true, 'multiple' => true, 'options' => [ 'email' => esc_html__( 'Email', 'uicore-elements' ), 'email_2' => esc_html__( 'Email 2', 'uicore-elements' ), 'redirect' => esc_html__( 'Redirect', 'uicore-elements' ), 'mailchimp' => esc_html__( 'MailChimp', 'uicore-elements' ), ], 'default' => [ 'email' ], ] ); $this->end_controls_section(); // Submit sections $this->start_controls_section( 'section_email', [ 'label' => esc_html__( 'Email', 'uicore-elements' ), 'condition' => [ 'submit_actions' => 'email', ], ] ); $this->register_submit_email_controls($this); $this->end_controls_section(); $this->start_controls_section( 'section_email_2', [ 'label' => esc_html__( 'Email 2', 'uicore-elements' ), 'condition' => [ 'submit_actions' => 'email_2', ], ] ); $this->register_submit_email_controls($this, '_2'); $this->end_controls_section(); $this->start_controls_section( 'section_redirect', [ 'label' => esc_html__( 'Redirect', 'uicore-elements' ), 'condition' => [ 'submit_actions' => 'redirect', ], ] ); $this->add_control( 'redirect_to', [ 'label' => esc_html__( 'Redirect To', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'placeholder' => esc_html__( 'https://your-link.com', 'uicore-elements' ), 'ai' => [ 'active' => false, ], 'dynamic' => [ 'active' => true, 'categories' => [ 'url', ], ], 'label_block' => true, 'render_type' => 'none', ] ); $this->end_controls_section(); $this->start_controls_section( 'mailchimp_redirect', [ 'label' => esc_html__( 'Mailchimp', 'uicore-elements' ), 'condition' => [ 'submit_actions' => 'mailchimp', ], ] ); $this->TRAIT_register_submit_mailchimp_controls($this, true); $this->end_controls_section(); $default_messages = Contact_Form_Service::get_default_messages(); $this->start_controls_section( 'section_form_options', [ 'label' => esc_html__( 'Additional Options', 'uicore-elements' ), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'form_id', [ 'label' => esc_html__( 'Form ID', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'ai' => [ 'active' => false, ], 'placeholder' => 'new_form_id', 'description' => esc_html__( 'Please make sure the ID is unique and not used elsewhere on the page this form is displayed. This field allows `A-z 0-9` & underscore chars without spaces.', 'uicore-elements' ), 'separator' => 'after', 'dynamic' => [ 'active' => true, ], ] ); $this->add_control( 'form_validation', [ 'label' => esc_html__( 'Form Validation', 'uicore-elements' ), 'type' => Controls_Manager::SELECT, 'options' => [ '' => esc_html__( 'Browser Default', 'uicore-elements' ), 'no' => esc_html__( 'No validation', 'uicore-elements' ), ], 'default' => '', ] ); $this->add_control( 'custom_messages', [ 'label' => esc_html__( 'Custom Messages', 'uicore-elements' ), 'type' => Controls_Manager::SWITCHER, 'default' => '', 'separator' => 'before', 'render_type' => 'none', ] ); $this->add_control( 'success_message', [ 'label' => esc_html__( 'Success Message', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => $default_messages['success'], 'placeholder' => $default_messages['success'], 'label_block' => true, 'condition' => [ 'custom_messages!' => '', ], 'render_type' => 'none', 'dynamic' => [ 'active' => true, ], ] ); $this->add_control( 'error_message', [ 'label' => esc_html__( 'Form Error', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => $default_messages['error'], 'placeholder' => $default_messages['error'], 'label_block' => true, 'condition' => [ 'custom_messages!' => '', ], 'render_type' => 'none', 'dynamic' => [ 'active' => true, ], ] ); $this->add_control( 'mail_error_message', [ 'label' => esc_html__( 'Email Sending Error', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => $default_messages['mail_error'], 'placeholder' => $default_messages['mail_error'], 'label_block' => true, 'condition' => [ 'custom_messages!' => '', ], 'render_type' => 'none', 'dynamic' => [ 'active' => true, ], ] ); $this->add_control( 'required_fields_message', [ 'label' => esc_html__( 'Required Fields', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => $default_messages['required'], 'placeholder' => $default_messages['required'], 'label_block' => true, 'conditions' => [ 'terms' => [ [ 'name' => 'custom_messages', 'operator' => '!=', 'value' => '', ], ], ], 'render_type' => 'none', 'dynamic' => [ 'active' => true, ], ] ); $this->add_control( 'redirect_message', [ 'label' => esc_html__( 'Sucessfull Redirect', 'uicore-elements' ), 'type' => Controls_Manager::TEXT, 'default' => $default_messages['redirect'], 'placeholder' => $default_messages['redirect'], 'label_block' => true, 'conditions' => [ 'terms' => [ [ 'name' => 'custom_messages', 'operator' => '!=', 'value' => '', ], [ 'name' => 'submit_actions', 'operator' => 'contains', 'value' => 'redirect', ] ], ], 'render_type' => 'none', 'dynamic' => [ 'active' => true, ], ] ); $this->end_controls_section(); $this->start_controls_section( 'section_form_style', [ 'label' => esc_html__( 'Form', 'uicore-elements' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'column_gap', [ 'label' => esc_html__( 'Columns Gap', 'uicore-elements' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px', 'em', 'rem', 'custom' ], 'default' => [ 'size' => 10, ], 'range' => [ 'px' => [ 'max' => 60, ], 'em' => [ 'max' => 6, ], 'rem' => [ 'max' => 6, ], ], 'selectors' => [ '{{WRAPPER}} .ui-e-field-group' => 'padding-right: calc( {{SIZE}}{{UNIT}}/2 ); padding-left: calc( {{SIZE}}{{UNIT}}/2 );', '{{WRAPPER}} .ui-e-fields-wrp' => 'margin-left: calc( -{{SIZE}}{{UNIT}}/2 ); margin-right: calc( -{{SIZE}}{{UNIT}}/2 );', ], ] ); $this->add_control( 'row_gap', [ 'label' => esc_html__( 'Rows Gap', 'uicore-elements' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px', 'em', 'rem', 'custom' ], 'default' => [ 'size' => 10, ], 'range' => [ 'px' => [ 'max' => 60, ], 'em' => [ 'max' => 6, ], 'rem' => [ 'max' => 6, ], ], 'selectors' => [ '{{WRAPPER}} .ui-e-field-group' => 'margin-bottom: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .ui-e-fields-wrp' => 'margin-bottom: -{{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'heading_label', [ 'label' => esc_html__( 'Label', 'uicore-elements' ), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_control( 'label_spacing', [ 'label' => esc_html__( 'Spacing', 'uicore-elements' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px', 'em', 'rem', 'custom' ], 'default' => [ 'size' => 0, ], 'range' => [ 'px' => [ 'max' => 60, ], 'em' => [ 'max' => 6, ], 'rem' => [ 'max' => 6, ], ], 'selectors' => [ 'body {{WRAPPER}} .ui-e-field-group > label' => 'padding-bottom: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'label_color', [ 'label' => esc_html__( 'Text Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ui-e-field-group > label, {{WRAPPER}} .ui-e-field-subgroup label' => 'color: {{VALUE}};', ], 'global' => [ 'default' => Global_Colors::COLOR_TEXT, ], ] ); $this->add_control( 'mark_required_color', [ 'label' => esc_html__( 'Mark Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .ui-e-required .ui-e-label:after' => 'color: {{COLOR}};', ], 'condition' => [ 'mark_required' => 'yes', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'label_typography', 'selector' => '{{WRAPPER}} .ui-e-field-group > label', 'global' => [ 'default' => Global_Typography::TYPOGRAPHY_TEXT, ], ] ); $this->add_control( 'heading_html', [ 'label' => esc_html__( 'HTML Field', 'uicore-elements' ), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_control( 'html_spacing', [ 'label' => esc_html__( 'Spacing', 'uicore-elements' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px', 'em', 'rem', 'custom' ], 'default' => [ 'size' => 0, ], 'range' => [ 'px' => [ 'max' => 60, ], 'em' => [ 'max' => 6, ], 'rem' => [ 'max' => 6, ], ], 'selectors' => [ '{{WRAPPER}} .ui-e-field-type-html' => 'padding-bottom: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'html_color', [ 'label' => esc_html__( 'Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ui-e-field-type-html' => 'color: {{VALUE}};', ], 'global' => [ 'default' => Global_Colors::COLOR_TEXT, ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'html_typography', 'selector' => '{{WRAPPER}} .ui-e-field-type-html', 'global' => [ 'default' => Global_Typography::TYPOGRAPHY_TEXT, ], ] ); $this->end_controls_section(); $this->start_controls_section( 'section_field_style', [ 'label' => esc_html__( 'Fields', 'uicore-elements' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->start_controls_tabs( 'field_style_tabs' ); $this->start_controls_tab( 'field_normal_tab', [ 'label' => esc_html__( 'Normal', 'uicore-elements' ), ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'field_typography', 'selector' => '{{WRAPPER}} .ui-e-field-group .ui-e-field, {{WRAPPER}} .ui-e-field-subgroup label, {{WRAPPER}} .ui-e-field-group .ui-e-field-select select', 'global' => [ 'default' => Global_Typography::TYPOGRAPHY_TEXT, ], ] ); $this->add_control( 'field_text_color', [ 'label' => esc_html__( 'Text Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ui-e-field-group .ui-e-field, {{WRAPPER}} .ui-e-field-group .ui-e-field-select select' => 'color: {{VALUE}};', ], 'global' => [ 'default' => Global_Colors::COLOR_TEXT, ], ] ); $this->add_control( 'field_placeholder_color', [ 'label' => esc_html__( 'Placeholder Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ui-e-field-group .ui-e-field::placeholder' => 'color: {{VALUE}};', ], 'global' => [ 'default' => Global_Colors::COLOR_TEXT, ], ] ); $this->add_control( 'field_background_color', [ 'label' => esc_html__( 'Background Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file) .ui-e-field:not(.ui-e-field-select)' => 'background-color: {{VALUE}};', '{{WRAPPER}} .ui-e-field-group .ui-e-field-select select' => 'background-color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'field_border', 'selector' => '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file) .ui-e-field:not(.ui-e-field-select), {{WRAPPER}} .ui-e-field-group .ui-e-field-select select', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'field_hover_tab', [ 'label' => esc_html__( 'Hover', 'uicore-elements' ), ] ); $this->add_control( 'field_text_hover_color', [ 'label' => esc_html__( 'Text Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ui-e-field-group:hover .ui-e-field, {{WRAPPER}} .ui-e-field-group:hover .ui-e-field-select select' => 'color: {{VALUE}};', ], 'global' => [ 'default' => Global_Colors::COLOR_TEXT, ], ] ); $this->add_control( 'field_placeholder_hover_color', [ 'label' => esc_html__( 'Placeholder Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ui-e-field-group:hover .ui-e-field::placeholder' => 'color: {{VALUE}};', ], 'global' => [ 'default' => Global_Colors::COLOR_TEXT, ], ] ); $this->add_control( 'field_background_hover_color', [ 'label' => esc_html__( 'Background Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .ui-e-field-group:hover:not(.ui-e-field-type-file) .ui-e-field:not(.ui-e-field-select)' => 'background-color: {{VALUE}};', '{{WRAPPER}} .ui-e-field-group:hover .ui-e-field-select select' => 'background-color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'field_hover_border', 'selector' => '{{WRAPPER}} .ui-e-field-group:hover:not(.ui-e-field-type-file) .ui-e-field:not(.ui-e-field-select), {{WRAPPER}} .ui-e-field-group:hover .ui-e-field-select select', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'field_active_tab', [ 'label' => esc_html__( 'Active', 'uicore-elements' ), ] ); $this->add_control( 'field_text_active_color', [ 'label' => esc_html__( 'Text Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ui-e-field-group .ui-e-field:focus, {{WRAPPER}} .ui-e-field-group .ui-e-field-select select:focus' => 'color: {{VALUE}};', ], 'global' => [ 'default' => Global_Colors::COLOR_TEXT, ], ] ); $this->add_control( 'field_background_active_color', [ 'label' => esc_html__( 'Background Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file) .ui-e-field:focus:not(.ui-e-field-select)' => 'background-color: {{VALUE}};', '{{WRAPPER}} .ui-e-field-group .ui-e-field-select:focus select' => 'background-color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'field_active_border', 'selector' => '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file) .ui-e-field:focus:not(.ui-e-field-select), {{WRAPPER}} .ui-e-field-group .ui-e-field-select:focus select', ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->add_control( 'field_border_radius', [ 'label' => esc_html__( 'Border Radius', 'uicore-elements' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ], 'selectors' => [ '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file) .ui-e-field:not(.ui-e-field-select)' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', '{{WRAPPER}} .ui-e-field-group .ui-e-field-select select' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'separator' => 'before' ] ); $this->add_control( 'field_padding', [ 'label' => esc_html__( 'Padding', 'uicore-elements' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ], 'selectors' => [ '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file) .ui-e-field:not(.ui-e-field-select)' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', '{{WRAPPER}} .ui-e-field-group .ui-e-field-select select' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->end_controls_section(); $this->start_controls_section( 'section_button_style', [ 'label' => esc_html__( 'Button', 'uicore-elements' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'button_typography', 'global' => [ 'default' => Global_Typography::TYPOGRAPHY_ACCENT, ], 'selector' => '{{WRAPPER}} .elementor-button', ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'button_border', 'selector' => '{{WRAPPER}} .elementor-button', 'exclude' => [ 'color', ], ] ); $this->start_controls_tabs( 'tabs_button_style' ); $this->start_controls_tab( 'tab_button_normal', [ 'label' => esc_html__( 'Normal', 'uicore-elements' ), ] ); $this->add_control( 'button_background_color', [ 'label' => esc_html__( 'Background Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'global' => [ 'default' => Global_Colors::COLOR_ACCENT, ], 'selectors' => [ '{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'background-color: {{VALUE}};', '{{WRAPPER}} .elementor-button[type="submit"]' => 'background-color: {{VALUE}};', ], ] ); $this->add_control( 'button_text_color', [ 'label' => esc_html__( 'Text Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'color: {{VALUE}};', '{{WRAPPER}} .elementor-button[type="submit"]' => 'color: {{VALUE}};', '{{WRAPPER}} .elementor-button[type="submit"] svg *' => 'fill: {{VALUE}};', ], ] ); $this->add_control( 'button_border_color', [ 'label' => esc_html__( 'Border Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'border-color: {{VALUE}};', '{{WRAPPER}} .elementor-button[type="submit"]' => 'border-color: {{VALUE}};', ], 'condition' => [ 'button_border_border!' => '', ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'tab_button_hover', [ 'label' => esc_html__( 'Hover', 'uicore-elements' ), ] ); $this->add_control( 'button_background_hover_color', [ 'label' => esc_html__( 'Background Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .e-form__buttons__wrapper__button-next:hover' => 'background-color: {{VALUE}};', '{{WRAPPER}} .elementor-button[type="submit"]:hover' => 'background-color: {{VALUE}};', ], ] ); $this->add_control( 'button_hover_color', [ 'label' => esc_html__( 'Text Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .e-form__buttons__wrapper__button-next:hover' => 'color: {{VALUE}};', '{{WRAPPER}} .elementor-button[type="submit"]:hover' => 'color: {{VALUE}};', '{{WRAPPER}} .elementor-button[type="submit"]:hover svg *' => 'fill: {{VALUE}};', ], ] ); $this->add_control( 'button_hover_border_color', [ 'label' => esc_html__( 'Border Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .e-form__buttons__wrapper__button-next:hover' => 'border-color: {{VALUE}};', '{{WRAPPER}} .elementor-button[type="submit"]:hover' => 'border-color: {{VALUE}};', ], 'condition' => [ 'button_border_border!' => '', ], ] ); $this->add_control( 'hover_transition_duration', [ 'label' => esc_html__( 'Transition Duration', 'uicore-elements' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 's', 'ms', 'custom' ], 'default' => [ 'unit' => 'ms', ], 'selectors' => [ '{{WRAPPER}} .e-form__buttons__wrapper__button-previous' => 'transition-duration: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'transition-duration: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .elementor-button[type="submit"] svg *' => 'transition-duration: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .elementor-button[type="submit"]' => 'transition-duration: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'button_hover_animation', [ 'label' => esc_html__( 'Animation', 'uicore-elements' ), 'type' => Controls_Manager::HOVER_ANIMATION, ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->add_control( 'button_border_radius', [ 'label' => esc_html__( 'Border Radius', 'uicore-elements' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ], 'selectors' => [ '{{WRAPPER}} .elementor-button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'separator' => 'before', ] ); $this->add_control( 'button_text_padding', [ 'label' => esc_html__( 'Text Padding', 'uicore-elements' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ], 'selectors' => [ '{{WRAPPER}} .elementor-button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->end_controls_section(); $this->start_controls_section( 'section_messages_style', [ 'label' => esc_html__( 'Messages', 'uicore-elements' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'show_messages', [ 'label' => esc_html__( 'Show/Hide messages', 'uicore-elements' ), 'type' => Controls_Manager::BUTTON, 'separator' => 'before', 'text' => esc_html__( 'Toggle', 'uicore-elements' ), 'event' => 'ui-e-form-show-messages', ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'message_typography', 'global' => [ 'default' => Global_Typography::TYPOGRAPHY_TEXT, ], 'selector' => '{{WRAPPER}} .ui-e-message', ] ); $this->add_control( 'success_message_color', [ 'label' => esc_html__( 'Success Message Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'default' => '#4CAF50', 'selectors' => [ '{{WRAPPER}} .ui-e-message span.success' => 'color: {{COLOR}};', ], ] ); $this->add_control( 'error_message_color', [ 'label' => esc_html__( 'Error Message Color', 'uicore-elements' ), 'type' => Controls_Manager::COLOR, 'default' => '#F44336', 'selectors' => [ '{{WRAPPER}} .ui-e-message span.error' => 'color: {{COLOR}};', ], ] ); $this->end_controls_section(); } function recaptcha_js() { ?> <script> window.uicore_elements_recaptcha = '<?php echo esc_html( get_option('uicore_elements_recaptcha_site_key')); ?>'; </script> <?php } protected function render() { $instance = $this->get_settings_for_display(); $is_recaptcha_required = false; // Save widget settings so form API can retrieve them set_transient('ui_e_form_widget_settings_' . $this->get_id(), $instance, DAY_IN_SECONDS); // Render Form Atts $this->add_render_attribute( [ 'wrapper' => [ 'class' => [ 'ui-e-fields-wrp', ], ], 'submit-group' => [ 'class' => [ 'ui-e-field-group', 'elementor-column', 'ui-e-field-type-submit', ], ], 'button' => [ 'class' => 'elementor-button', ], 'icon-align' => [ 'class' => [ empty( $instance['button_icon_align'] ) ? '' : 'ui-e-icon ui-e-align-' . $instance['button_icon_align'], ], ], ] ); // Fallback for empty control values if ( empty( $instance['button_width'] ) ) { $instance['button_width'] = '100'; } // Button atts $this->add_render_attribute( 'submit-group', 'class', 'elementor-col-' . $instance['button_width'] . ' e-form__buttons' ); if ( ! empty( $instance['button_width_tablet'] ) ) { $this->add_render_attribute( 'submit-group', 'class', 'elementor-md-' . $instance['button_width_tablet'] ); } if ( ! empty( $instance['button_width_mobile'] ) ) { $this->add_render_attribute( 'submit-group', 'class', 'elementor-sm-' . $instance['button_width_mobile'] ); } if ( $instance['button_hover_animation'] ) { $this->add_render_attribute( 'button', 'class', 'elementor-animation-' . $instance['button_hover_animation'] ); } // Form atts if ( ! empty( $instance['form_id'] ) ) { $this->add_render_attribute( 'form', 'id', $instance['form_id'] ); } if ( ! empty( $instance['form_name'] ) ) { $this->add_render_attribute( 'form', 'name', $instance['form_name'] ); } if ( 'no' === $instance['form_validation'] ) { $this->add_render_attribute( 'form', 'novalidate' ); } if ( ! empty( $instance['button_css_id'] ) ) { $this->add_render_attribute( 'button', 'id', $instance['button_css_id'] ); } $referer_title = trim( wp_title( '', false ) ); if ( ! $referer_title && is_home() ) { $referer_title = get_option( 'blogname' ); } // Get default messages $messages = Contact_Form_Service::get_default_messages(); // Set frontend validation message $front_msg_required = isset($instance['required_fields_message']) ? $instance['required_fields_message'] : $messages['required']; ?> <form class="ui-e-form" method="post" <?php $this->print_render_attribute_string( 'form' ); ?>> <input type="hidden" name="post_id" value="<?php echo esc_attr( get_the_ID()); ?>"/> <input type="hidden" name="widget_type" value="contact-form"> <input type="hidden" name="required_fields_message" value="<?php echo esc_html($front_msg_required);?>"> <div <?php $this->print_render_attribute_string( 'wrapper' ); ?>> <?php foreach ( $instance['form_fields'] as $item_index => $item ) : $this->form_fields_render_attributes( $item_index, $instance, $item ); $field_type = $item['field_type']; if( $field_type === 'recaptcha' || $field_type === 'recaptcha_v3' ){ $is_recaptcha_required = true; } $print_label = ! in_array( $item['field_type'], [ 'hidden', 'html' ], true ); ?> <div <?php $this->print_render_attribute_string( 'field-group' . $item_index ); ?>> <?php // Print label (excepts if recaptcha) if ( $print_label && $item['field_label'] && $item['field_type'] !== 'recaptcha' && $item['field_type'] !== 'recaptcha_v3' ){ ?> <label <?php $this->print_render_attribute_string( 'label' . $item_index ); ?>> <?php // PHPCS - the variable $item['field_label'] is safe. echo $item['field_label']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> </label> <?php } // Print field switch ( $item['field_type'] ) : case 'html': echo do_shortcode( $item['field_html'] ); break; case 'textarea': // PHPCS - the method build_textarea_field is safe. echo $this->build_textarea_field( $item, $item_index ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped break; case 'select': // PHPCS - the method build_select_field is safe. echo $this->build_select_field( $item, $item_index ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped break; case 'acceptance': // PHPCS - the method build_select_field is safe. echo $this->build_acceptance_field( $item, $item_index); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped break; case 'radio': case 'checkbox': // PHPCS - the method build_radio_checkbox_field is safe. echo $this->build_radio_checkbox_field( $item, $item_index, $item['field_type'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped break; case 'address': // is actually honeypot // PHPCS - the method build_honeypot_field is safe. echo $this->build_honeypot_field( $item, $item_index ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped break; case 'recaptcha': // get widget ID echo '<input type="hidden" name="recaptcha"/> <div id="ui-e-recaptcha-'.esc_attr($this->get_ID()).'"></div>'; break; case 'recaptcha_v3': echo '<input type="hidden" name="recaptcha_v3"/>'; break; // All other cases are covered by the add_render_atribute() default: $this->add_render_attribute('input' . $item_index, 'class', 'ui-e-field-textual'); ?> <input size="1" <?php $this->print_render_attribute_string( 'input' . $item_index ); ?>> <?php break; endswitch; ?> </div> <?php endforeach; ?> <div <?php $this->print_render_attribute_string( 'submit-group' ); ?>> <button type="submit" <?php $this->print_render_attribute_string( 'button' ); ?>> <span <?php $this->print_render_attribute_string( 'content-wrapper' ); ?>> <?php if ( ! empty( $instance['button_icon'] ) || ! empty( $instance['selected_button_icon'] ) ) : ?> <span <?php $this->print_render_attribute_string( 'icon-align' ); ?>> <?php Icons_Manager::render_icon( $instance['selected_button_icon'], [ 'aria-hidden' => 'true' ] ); ?> <?php if ( empty( $instance['button_text'] ) ) : ?> <span class="elementor-screen-only"><?php echo esc_html__( 'Submit', 'uicore-elements' ); ?></span> <?php endif; ?> </span> <?php endif; ?> <?php if ( ! empty( $instance['button_text'] ) ) : ?> <span class="ui-e-text"><?php $this->print_unescaped_setting( 'button_text' ); ?></span> <?php endif; ?> </span> </button> </div> </div> <div class="ui-e-message <?php echo $this->is_edit_mode() ? 'elementor-hidden' : ''; ?>"> <?php if($this->is_edit_mode()) : // Get custom messages if set, else use default $success = isset($instance['success_message']) ? $instance['success_message'] : $messages['success']; $error = isset($instance['error_message']) ? $instance['error_message'] : $messages['error']; ?> <span class="success"> <?php echo esc_html($success);?> </span> <br> <span class="error"> <?php echo esc_html($error);?> </span> <?php endif; ?> </div> </form> <?php //add js to footer if recaptcha is enabled if($is_recaptcha_required){ add_action('wp_footer', [$this, 'recaptcha_js'], 999); } // Add frontend validation messages to js var ?> <script> window.ui_e_form_validation_messages = <?php echo json_encode([ 'required_fields' => esc_html($front_msg_required), ]); ?>; </script> <?php } protected function content_template() { ?> <# view.addRenderAttribute( 'form', { 'id': settings.form_id, 'name': settings.form_name, } ); if ( 'no' === settings.form_validation ) { view.addRenderAttribute( 'form', 'novalidate' ); } #> <form class="ui-e-form" {{{ view.getRenderAttributeString( 'form' ) }}}> <div class="ui-e-fields-wrp"> <# for ( var i in settings.form_fields ) { var item = settings.form_fields[ i ]; item.field_type = _.escape( item.field_type ); item.field_value = _.escape( item.field_value ); var options = item.field_options ? item.field_options.split( '\n' ) : [], itemClasses = _.escape( item.css_classes ), labelVisibility = '', placeholder = '', required = '', checked_by_default = '', inputField = '', multiple = '', fieldGroupClasses = 'ui-e-field-group elementor-column ui-e-field-type-' + item.field_type, printLabel = settings.show_labels && ! [ 'hidden', 'html', 'recaptcha', 'recaptcha_v3' ].includes( item.field_type ); fieldGroupClasses += ' elementor-col-' + ( ( '' !== item.width ) ? item.width : '100' ); if ( item.width_tablet ) { fieldGroupClasses += ' elementor-md-' + item.width_tablet; } if ( item.width_mobile ) { fieldGroupClasses += ' elementor-sm-' + item.width_mobile; } if ( item.required ) { required = 'required'; fieldGroupClasses += ' ui-e-field-required'; if ( settings.mark_required ) { fieldGroupClasses += ' ui-e-required'; } } if ( item.placeholder ) { placeholder = 'placeholder="' + _.escape( item.placeholder ) + '"'; } if ( item.allow_multiple ) { multiple = ' multiple'; fieldGroupClasses += ' ui-e-field-type-' + item.field_type + '-multiple'; } switch ( item.field_type ) { case 'html': inputField = item.field_html; break; case 'textarea': inputField = '<textarea class="ui-e-field ui-e-field-textual elementor-size-' + settings.input_size + ' ' + itemClasses + '" name="form_field_' + i + '" id="form_field_' + i + '" rows="' + item.rows + '" ' + required + ' ' + placeholder + '>' + item.field_value + '</textarea>'; break; case 'select': if ( options ) { var size = ''; if ( item.allow_multiple && item.select_size ) { size = ' size="' + item.select_size + '"'; } inputField = '<div class="ui-e-field ui-e-field-select ui-e-field-subgroup' + itemClasses + '">'; inputField += '<select class="ui-e-field-textual" name="form_field_' + i + '" id="form_field_' + i + '" ' + required + multiple + size + ' >'; for ( var x in options ) { var option_value = options[ x ]; var option_label = options[ x ]; var option_id = 'form_field_option' + i + x; if ( options[ x ].indexOf( '|' ) > -1 ) { var label_value = options[ x ].split( '|' ); option_label = label_value[0]; option_value = label_value[1]; } view.addRenderAttribute( option_id, 'value', option_value ); if ( item.field_value.split( ',' ) .indexOf( option_value ) ) { view.addRenderAttribute( option_id, 'selected', 'selected' ); } inputField += '<option ' + view.getRenderAttributeString( option_id ) + '>' + option_label + '</option>'; } inputField += '</select></div>'; } break; case 'radio': case 'checkbox': if ( options ) { var multiple = ''; if ( 'checkbox' === item.field_type && options.length > 1 ) { multiple = '[]'; } inputField = '<div class="ui-e-field-subgroup ' + itemClasses + ' ' + _.escape( item.inline_list ) + '">'; for ( var x in options ) { var option_value = options[ x ]; var option_label = options[ x ]; var option_id = 'form_field_' + item.field_type + i + x; if ( options[x].indexOf( '|' ) > -1 ) { var label_value = options[x].split( '|' ); option_label = label_value[0]; option_value = label_value[1]; } view.addRenderAttribute( option_id, { value: option_value, type: item.field_type, id: 'form_field_' + i + '-' + x, name: 'form_field_' + i + multiple } ); if ( option_value === item.field_value ) { view.addRenderAttribute( option_id, 'checked', 'checked' ); } inputField += '<span class="ui-e-field-option"><input ' + view.getRenderAttributeString( option_id ) + ' ' + required + '> '; inputField += '<label for="form_field_' + i + '-' + x + '">' + option_label + '</label></span>'; } inputField += '</div>'; } break; case 'acceptance' : var checked = ''; if(item.checked_by_default == 'yes') { checked = ' checked'; } inputField += '<div class="ui-e-field-subgroup">'; inputField += '<input type="checkbox" class="ui-e-field ui-e-acceptance-field" name="form_field_' + i + '" id="form_field_' + i + '" ' + required + checked + '>'; inputField += '<label for="form_field_' + i + '">' + item.acceptance_text + '</label>'; inputField += '</div>'; break; case 'recaptcha' : case 'recaptcha_v3' : inputField = '<input type="hidden" name="recaptcha"/> <div id="ui-e-recaptcha"></div>'; break; default: itemClasses = 'ui-e-field-textual ' + itemClasses; inputField = '<input size="1" type="' + item.field_type + '" value="' + item.field_value + '" class="ui-e-field elementor-size-' + settings.input_size + ' ' + itemClasses + '" name="form_field_' + i + '" id="form_field_' + i + '" ' + required + ' ' + placeholder + ' >'; break; } if ( inputField ) { #> <div class="{{ fieldGroupClasses }}"> <# if ( printLabel && item.field_label ) { #> <label class="ui-e-field-label" for="form_field_{{ i }}" {{{ labelVisibility }}}>{{{ item.field_label }}}</label> <# } #> {{{ inputField }}} </div> <# } } var buttonClasses = 'ui-e-field-group elementor-column ui-e-field-type-submit e-form__buttons'; buttonClasses += ' elementor-col-' + ( ( '' !== settings.button_width ) ? settings.button_width : '100' ); if ( settings.button_width_tablet ) { buttonClasses += ' elementor-md-' + settings.button_width_tablet; } if ( settings.button_width_mobile ) { buttonClasses += ' elementor-sm-' + settings.button_width_mobile; } var iconHTML = elementor.helpers.renderIcon( view, settings.selected_button_icon, { 'aria-hidden': true }, 'i' , 'object' ) #> <div class="{{ buttonClasses }}"> <button id="{{ settings.button_css_id }}" type="submit" class="elementor-button elementor-animation-{{ settings.button_hover_animation }}"> <span> <# if ( settings.button_icon || settings.selected_button_icon ) { #> <span class="ui-e-icon ui-e-align-{{ settings.button_icon_align }}"> <# if ( iconHTML && iconHTML.rendered && ( ! settings.button_icon ) ) { #> {{{ iconHTML.value }}} <# } else { #> <i class="{{ settings.button_icon }}" aria-hidden="true"></i> <# } #> <span class="elementor-screen-only"><?php echo esc_html__( 'Submit', 'uicore-elements' ); ?></span> </span> <# } #> <# if ( settings.button_text ) { #> <span class="ui-e-text">{{{ settings.button_text }}}</span> <# } #> </span> </button> </div> </div> <div class="ui-e-message elementor-hidden"> <# const success = settings.success_message; const error = settings.error_message; #> <span class="success">{{{ success }}}</span> <br> <span class="error">{{{ error }}}</span> </div> </form> <?php } } \Elementor\Plugin::instance()->widgets_manager->register(new ContactForm());PK }\�V'ޡ ޡ includes/widgets/icon-list.phpnu �[��� <?php namespace UiCoreElements; use Elementor\Repeater; use Elementor\Controls_Manager; use Elementor\Icons_Manager; use Elementor\Group_Control_Border; use Elementor\Group_Control_Box_Shadow; use Elementor\Group_Control_Typography; use Elementor\Group_Control_Background; use Elementor\Core\Kits\Documents\Tabs\Global_Colors; use UiCoreElements\UiCoreWidget; use UiCoreELements\Helper; defined('ABSPATH') || exit(); /** * Icon List * * @author Lucas Marini Falbo <lucas95@uicore.co> * @since 1.0.0 */ class IconList extends UiCoreWidget { public function get_name() { return 'uicore-icon-list'; } public function get_title() { return esc_html__('Icon List', 'uicore-elements'); } public function get_icon() { return 'eicon-post-list ui-e-widget'; } public function get_categories() { return ['uicore']; } public function get_styles() { return ['icon-list']; } public function get_scripts() { return []; } public function has_widget_inner_wrapper(): bool { // TODO: remove after 3.30, when the full deprecation of widget innet wrapper is ready return ! \Elementor\Plugin::$instance->experiments->is_feature_active( 'e_optimized_markup' ); } public function get_keywords() { return ['icon', 'list', 'uicore']; } protected function register_controls() { $this->start_controls_section( 'section_layout', [ 'label' => esc_html__('Items', 'uicore-elements'), ] ); $repeater = new Repeater(); $repeater->add_control( 'text', [ 'label' => esc_html__('Title', 'uicore-elements'), 'type' => Controls_Manager::TEXT, 'label_block' => true, 'placeholder' => esc_html__('List Item', 'uicore-elements'), 'default' => esc_html__('List Item', 'uicore-elements'), 'dynamic' => [ 'active' => true, ], ] ); $repeater->add_control( 'text_details', [ 'label' => esc_html__('Subtitle', 'uicore-elements'), 'type' => Controls_Manager::TEXT, 'label_block' => true, 'placeholder' => esc_html__('Subtitle', 'uicore-elements'), 'dynamic' => [ 'active' => true, ], ] ); $repeater->add_control( 'list_icon', [ 'label' => esc_html__('Icon', 'uicore-elements'), 'type' => Controls_Manager::ICONS, 'label_block' => false, 'skin' => 'inline', 'default' => [ 'value' => 'fas fa-check', 'library' => 'fa-solid', ], ] ); $repeater->add_control( 'img', [ 'label' => esc_html__('Image', 'uicore-elements'), 'type' => Controls_Manager::MEDIA, 'dynamic' => [ 'active' => true, ], 'label_block' => false, ] ); $repeater->add_control( 'link', [ 'label' => esc_html__('Link', 'uicore-elements'), 'type' => Controls_Manager::URL, 'options' => [ 'url', 'is_external', 'nofollow' ], 'default' => [ 'url' => '', 'is_external' => false, 'nofollow' => false, ], 'dynamic' => [ 'active' => true, ], 'label_block' => true, ] ); $this->add_control( 'icon_list', [ 'label' => '', 'type' => Controls_Manager::REPEATER, 'fields' => $repeater->get_controls(), 'default' => [ [ 'text' => esc_html__('List Item #1', 'uicore-elements'), ], [ 'text' => esc_html__('List Item #2', 'uicore-elements'), ], [ 'text' => esc_html__('List Item #3', 'uicore-elements'), ], ], 'title_field' => '{{{ elementor.helpers.renderIcon( this, list_icon, {}, "i", "panel" ) || \'<i class="{{ icon }}" aria-hidden="true"></i>\' }}} {{{ text }}}', ] ); $this->add_responsive_control( 'columns', [ 'label' => esc_html__('Columns', 'uicore-elements'), 'type' => Controls_Manager::SELECT, 'default' => '1', 'tablet_default' => '1', 'mobile_default' => '1', 'options' => [ '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', ], 'selectors' => [ '{{WRAPPER}} ul' => 'grid-template-columns: repeat({{SIZE}}, 1fr);', ], 'separator' => 'before', ] ); $this->add_responsive_control( 'list_item_space_between', [ 'label' => esc_html__('Grid Gap', 'uicore-elements'), 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'min' => 0, 'max' => 50, ], ], 'default' => [ 'unit' => 'px', 'size' => 10, ], 'selectors' => [ '{{WRAPPER}}' => '--ui-e-grid-gap: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'show_number_icon', [ 'label' => esc_html__('Show Number Count', 'uicore-elements'), 'type' => Controls_Manager::SWITCHER, ] ); $this->add_control( 'vertical_alignment_number', [ 'label' => esc_html__('Number Vertical Alignment', 'uicore-elements'), 'type' => Controls_Manager::CHOOSE, 'toggle' => false, 'default' => 'center', 'options' => [ 'start' => [ 'title' => esc_html__('Top', 'uicore-elements'), 'icon' => 'eicon-v-align-top', ], 'center' => [ 'title' => esc_html__('Center', 'uicore-elements'), 'icon' => 'eicon-v-align-middle', ], 'end' => [ 'title' => esc_html__('Bottom', 'uicore-elements'), 'icon' => 'eicon-v-align-bottom', ], ], 'condition' => [ 'show_number_icon' => 'yes' ], 'selectors' => [ '{{WRAPPER}} .ui-e-number' => 'align-self: {{VALUE}}', ], ] ); $this->add_control( 'connector_line', [ 'label' => esc_html__('Connector Line', 'uicore-elements'), 'type' => Controls_Manager::SWITCHER, 'prefix_class' => 'ui-e-connector-line-' ] ); $this->add_control( 'title_tags', [ 'label' => esc_html__('Title HTML Tag', 'uicore-elements'), 'type' => Controls_Manager::SELECT, 'default' => 'span', 'options' => Helper::get_title_tags(), ] ); $this->add_responsive_control( 'icon_position', [ 'label' => esc_html__('Icon Position', 'uicore-elements'), 'type' => Controls_Manager::CHOOSE, 'toggle' => false, 'options' => [ 'left' => [ 'title' => esc_html__('Left', 'uicore-elements'), 'icon' => 'eicon-h-align-left', ], 'right' => [ 'title' => esc_html__('Right', 'uicore-elements'), 'icon' => 'eicon-h-align-right', ], ], 'default' => 'left', 'prefix_class' => 'ui-e-icon-', 'separator' => 'before' ] ); $this->add_responsive_control( 'vertical_alignment', [ 'label' => esc_html__('Icon Vertical Alignment', 'uicore-elements'), 'type' => Controls_Manager::CHOOSE, 'toggle' => false, 'options' => [ 'start' => [ 'title' => esc_html__('Top', 'uicore-elements'), 'icon' => 'eicon-v-align-top', ], 'center' => [ 'title' => esc_html__('Center', 'uicore-elements'), 'icon' => 'eicon-v-align-middle', ], 'end' => [ 'title' => esc_html__('Bottom', 'uicore-elements'), 'icon' => 'eicon-v-align-bottom', ], ], 'default' => 'center', 'selectors' => [ '{{WRAPPER}} .ui-e-icon' => 'align-self: {{VALUE}}', ], ] ); $this->add_responsive_control( 'vertical_alignment_offset', [ 'label' => esc_html__( 'Vertical Alignment Offset', 'uicore-elements' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ], 'range' => [ 'px' => [ 'min' => -25, 'max' => 25, 'step' => 1, ], '%' => [ 'min' => -100, 'max' => 100, 'step' => 5, ], ], 'default' => [ 'size' => 0, 'unit' => 'px', ], 'selectors' => [ '{{WRAPPER}} .ui-e-icon' => 'transform: translate3d(0,{{SIZE}}{{UNIT}},0);', ], ] ); $this->add_control( 'content_position', [ 'label' => esc_html__('Content Position', 'uicore-elements'), 'type' => Controls_Manager::CHOOSE, 'toggle' => false, 'options' => [ 'left' => [ 'title' => esc_html__('Left', 'uicore-elements'), 'icon' => 'eicon-h-align-left', ], 'right' => [ 'title' => esc_html__('Right', 'uicore-elements'), 'icon' => 'eicon-h-align-right', ], ], 'default' => is_rtl() ? 'right' : 'left', 'prefix_class' => 'ui-e-', ] ); $this->add_responsive_control( 'list_item_align', [ 'label' => esc_html__('Alignment', 'uicore-elements'), 'type' => Controls_Manager::CHOOSE, 'toggle' => false, 'options' => [ 'left' => [ 'title' => esc_html__('Left', 'uicore-elements'), 'icon' => 'eicon-h-align-left', ], 'center' => [ 'title' => esc_html__('Center', 'uicore-elements'), 'icon' => 'eicon-h-align-center', ], 'right' => [ 'title' => esc_html__('Right', 'uicore-elements'), 'icon' => 'eicon-h-align-right', ], ], 'default' => is_rtl() ? 'right' : 'left', 'prefix_class' => 'elementor%s-align-', ] ); $this->end_controls_section(); $this->start_controls_section( 'section_list_items', [ 'label' => esc_html__('List Item', 'uicore-elements'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->start_controls_tabs( 'list_item_tabs' ); $this->start_controls_tab( 'list_item_tabs_normal', [ 'label' => esc_html__('Normal', 'uicore-elements'), ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'list_item_bg_color', 'selector' => '{{WRAPPER}} .ui-e-wrap', ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'list_item_border', 'label' => esc_html__('Border', 'uicore-elements'), 'selector' => '{{WRAPPER}} .ui-e-wrap', ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'list_item_box_shadow', 'label' => esc_html__('Box Shadow', 'uicore-elements'), 'selector' => '{{WRAPPER}} .ui-e-wrap', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'list_item_tabs_hover', [ 'label' => esc_html__('Hover', 'uicore-elements'), ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'list_item_hover_bg_color', 'selector' => '{{WRAPPER}} .ui-e-wrap:hover', ] ); $this->add_control( 'list_item_hover_border', [ 'label' => esc_html__('Border Color', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ui-e-wrap:hover' => 'border-color: {{VALUE}} !important', ], 'condition' => [ 'list_item_border_border!' => '' ] ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'list_item_box_shadow_hover', 'label' => esc_html__('Box Shadow', 'uicore-elements'), 'selector' => '{{WRAPPER}} .ui-e-wrap:hover', ] ); $this->add_responsive_control( 'list_item_transition', [ 'label' => esc_html__('Transition', 'uicore-elements'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['s'], 'range' => [ 's' => [ 'min' => 0.01, 'max' => 1, ], ], 'default' => [ 'unit' => 's', 'size' => 0.2, ], 'selectors' => [ '{{WRAPPER}} .ui-e-wrap' => '--ui-e-transition: {{SIZE}}{{UNIT}}', ], ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->add_control( 'hr', [ 'type' => \Elementor\Controls_Manager::DIVIDER, ] ); $this->add_responsive_control( 'list_item_border_radius', [ 'label' => esc_html__('Border Radius', 'uicore-elements'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', '%'], 'selectors' => [ '{{WRAPPER}} .ui-e-wrap' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;', ], ] ); $this->add_responsive_control( 'list_item_padding', [ 'label' => esc_html__('Padding', 'uicore-elements'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', 'em', '%'], 'selectors' => [ '{{WRAPPER}} .ui-e-wrap' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} ', ], ] ); $this->add_responsive_control( 'list_item_height', [ 'label' => esc_html__('Height', 'uicore-elements'), 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'min' => 1, 'max' => 200, ], ], 'selectors' => [ '{{WRAPPER}} .ui-e-wrap' => 'min-height: {{SIZE}}{{UNIT}}', ], ] ); $this->add_responsive_control( 'list_item_spacing', [ 'label' => esc_html__('Space between elements', 'uicore-elements'), 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'min' => 1, 'max' => 80, ], ], 'default' => [ 'unit' => 'px', 'size' => 10, ], 'selectors' => [ '{{WRAPPER}} .ui-e-wrap' => 'gap: {{SIZE}}{{UNIT}}', ], ] ); $this->end_controls_section(); $this->start_controls_section( 'section_icon', [ 'label' => esc_html__('Number Count', 'uicore-elements'), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => [ 'show_number_icon' => 'yes', ], ] ); $this->start_controls_tabs('tabs_number_icon_style'); $this->start_controls_tab( 'tab_number_icon_normal', [ 'label' => esc_html__('Normal', 'uicore-elements'), ] ); $this->add_control( 'number_icon_color', [ 'label' => esc_html__('Color', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ui-e-number span' => 'color: {{VALUE}} ', ], ] ); $this->add_control( 'icon_bg_color', [ 'label' => esc_html__('Background Color', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ui-e-number' => 'background-color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'icon_number_border', 'label' => esc_html__('Border', 'uicore-elements'), 'selector' => '{{WRAPPER}} .ui-e-number', ] ); $this->add_responsive_control( 'icon_number_border_radius', [ 'label' => esc_html__('Border Radius', 'uicore-elements'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', '%'], 'selectors' => [ '{{WRAPPER}} .ui-e-number' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} ', ], ] ); $this->add_responsive_control( 'icon_number_padding', [ 'label' => esc_html__('Padding', 'uicore-elements'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', 'em', '%'], 'selectors' => [ '{{WRAPPER}} .ui-e-number' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'icon_number_margin', [ 'label' => esc_html__('Margin', 'uicore-elements'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', 'em', '%'], 'selectors' => [ '{{WRAPPER}} .ui-e-number' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'number_icon_typography', 'selector' => '{{WRAPPER}} .ui-e-number span', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'tab_number_icon_hover', [ 'label' => esc_html__('Hover', 'uicore-elements'), ] ); $this->add_control( 'number_icon_color_hover', [ 'label' => esc_html__('Color', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} ul li:hover .ui-e-number span' => 'color: {{VALUE}} ', ], ] ); $this->add_control( 'number_icon_bg_color_hover', [ 'label' => esc_html__('Background Color', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} ul li:hover .ui-e-number' => 'background-color: {{VALUE}}', ], ] ); $this->add_control( 'number_icon_border_color_hover', [ 'label' => esc_html__('Border Color', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} ul li:hover .ui-e-number' => 'border-color: {{VALUE}}', ], 'condition' => [ 'icon_number_border_border!' => '' ] ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); $this->start_controls_section( 'section_text_style', [ 'label' => esc_html__('Title / Subtitle', 'uicore-elements'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->start_controls_tabs('tabs_mode_style'); $this->start_controls_tab( 'tab_normal_mode_normal', [ 'label' => esc_html__('Normal', 'uicore-elements'), ] ); $this->add_control( 'title_heading', [ 'label' => esc_html__('Title', 'uicore-elements'), 'type' => Controls_Manager::HEADING, ] ); $this->add_control( 'title_color', [ 'label' => esc_html__('Color', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ui-e-title ' => 'color: {{VALUE}} ', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'title_typography', 'selector' => '{{WRAPPER}} .ui-e-title', ] ); $this->add_control( 'subtitle_heading', [ 'label' => esc_html__('Subtitle', 'uicore-elements'), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_control( 'subtitle_color', [ 'label' => esc_html__('Color', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ui-e-text' => 'color: {{VALUE}} ', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'sub_title_typography', 'selector' => '{{WRAPPER}} .ui-e-text', ] ); $this->add_responsive_control( 'subtitle_margin', [ 'label' => esc_html__('Margin', 'uicore-elements'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', 'em', '%'], 'selectors' => [ '{{WRAPPER}} .ui-e-text' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'tab_hover_mode_normal', [ 'label' => esc_html__('Hover', 'uicore-elements'), ] ); $this->add_control( 'title_color_hover', [ 'label' => esc_html__('Title Color', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} ul li:hover .ui-e-title' => 'color: {{VALUE}}', ], ] ); $this->add_control( 'title_link_color', [ 'label' => esc_html__('Linked Title Color', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} ul li:hover a .ui-e-title ' => 'color: {{VALUE}} ', ], ] ); $this->add_control( 'subtitle_color_hover', [ 'label' => esc_html__('Subtitle Color', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} ul li:hover .ui-e-text' => 'color: {{VALUE}}', ], 'separator' => 'before', ] ); $this->add_control( 'subtitle_link_color', [ 'label' => esc_html__('Linked Subtitle Color', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} ul li:hover a .ui-e-text ' => 'color: {{VALUE}} ', ], ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); $this->start_controls_section( 'section_icon_style', [ 'label' => esc_html__('Icon', 'uicore-elements'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'icon_size', [ 'label' => esc_html__( 'Icon Size', 'uicore-elements' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 80, 'step' => 3, ], ], 'default' => [ 'unit' => 'px', 'size' => 15, ], 'selectors' => [ '{{WRAPPER}} .ui-e-icon' => '--ui-e-icon-size: {{SIZE}}{{UNIT}};', ], ] ); $this->start_controls_tabs('tabs_mode_style1'); $this->start_controls_tab( 'tab_normal_mode_normal1', [ 'label' => esc_html__('Normal', 'uicore-elements'), ] ); $this->add_control( 'icon_color', [ 'label' => esc_html__('Color', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'global' => [ 'default' => Global_Colors::COLOR_PRIMARY, ], 'selectors' => [ '{{WRAPPER}} .ui-e-icon' => '--ui-e-icon-color: {{VALUE}}', ], ] ); $this->add_control( 'right_icon_bg_color', [ 'label' => esc_html__('Background Color', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ui-e-icon ' => 'background: {{VALUE}} ;' ], ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'icon_border', 'label' => esc_html__('Border', 'uicore-elements'), 'selector' => '{{WRAPPER}} .ui-e-icon', ] ); $this->add_responsive_control( 'icon_border_radius', [ 'label' => esc_html__('Border Radius', 'uicore-elements'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', '%'], 'selectors' => [ '{{WRAPPER}} .ui-e-icon' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} ;', ], ] ); $this->add_responsive_control( 'icon_padding', [ 'label' => esc_html__('Padding', 'uicore-elements'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', 'em', '%'], 'default' => [ 'unit' => 'px', 'size' => 8, ], 'selectors' => [ '{{WRAPPER}} .ui-e-icon' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'icon_margin', [ 'label' => esc_html__('Margin', 'uicore-elements'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', 'em', '%'], 'selectors' => [ '{{WRAPPER}} .ui-e-icon' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'tab_hover_mode_normal1', [ 'label' => esc_html__('Hover', 'uicore-elements'), ] ); $this->add_control( 'icon_color_hover', [ 'label' => esc_html__('Color', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ui-e-wrap:hover .ui-e-icon' => 'color: {{VALUE}} !important;', '{{WRAPPER}} .ui-e-wrap:hover .ui-e-icon i' => 'color: {{VALUE}} !important;', '{{WRAPPER}} .ui-e-wrap:hover .ui-e-icon svg' => 'fill: {{VALUE}} !important;', ], ] ); $this->add_control( 'icon_bg_color_hover', [ 'label' => esc_html__('Background Color', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .ui-e-wrap:hover .ui-e-icon' => 'background-color: {{VALUE}} ;', ], ] ); $this->add_control( 'icon_border_color_hover', [ 'label' => esc_html__('Border Color', 'uicore-elements'), 'type' => Controls_Manager::COLOR, 'condition' => [ 'icon_border_border!' => '', ], 'selectors' => [ '{{WRAPPER}} .ui-e-wrap:hover .ui-e-icon' => 'border-color: {{VALUE}} ;', ], ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); $this->start_controls_section( 'section_line_style', [ 'label' => esc_html__('Connector Line', 'uicore-elements'), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => [ 'connector_line' => 'yes', ], ] ); $this->add_control( 'line_color', [ 'label' => esc_html__( 'Line Color', 'uicore-elements' ), 'type' => \Elementor\Controls_Manager::COLOR, 'default' => '#333', 'global' => [ 'default' => Global_Colors::COLOR_PRIMARY, ], 'selectors' => [ '{{WRAPPER}} li:after' => 'background-color: {{VALUE}}', ], ] ); $this->add_responsive_control( 'line_thick', [ 'label' => esc_html__( 'Line Thickness', 'uicore-elements' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px'], 'range' => [ 'px' => [ 'min' => 1, 'max' => 10, 'step' => 1, ], ], 'default' => [ 'unit' => 'px', 'size' => 1, ], 'selectors' => [ '{{WRAPPER}} li:after' => 'width: {{SIZE}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'line_horizontal_offset', [ 'label' => esc_html__( 'Line Horizontal Offset', 'uicore-elements' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 50, 'step' => 1, ], ], 'default' => [ 'unit' => 'px', 'size' => 5, ], 'selectors' => [ '{{WRAPPER}} li:after' => '{{icon_position.VALUE}}: {{SIZE}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'line_vertical_offset', [ 'label' => esc_html__( 'Line Vertical Offset', 'uicore-elements' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 100, 'step' => 1, ], ], 'default' => [ 'unit' => 'px', 'size' => 15, ], 'selectors' => [ '{{WRAPPER}} li:after' => 'top: {{SIZE}}{{UNIT}};', ], ] ); $this->end_controls_section(); $this->start_controls_section( 'section_image_style', [ 'label' => esc_html__('Image', 'uicore-elements'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'image_border', 'label' => esc_html__('Border', 'uicore-elements'), 'selector' => '{{WRAPPER}} .ui-e-img img', ] ); $this->add_responsive_control( 'border_radius', [ 'label' => esc_html__('Border Radius', 'uicore-elements'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', '%'], 'selectors' => [ '{{WRAPPER}} .ui-e-img img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} ;', ], ] ); $this->add_responsive_control( 'image_margin', [ 'label' => esc_html__('Margin', 'uicore-elements'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', 'em', '%'], 'selectors' => [ '{{WRAPPER}} .ui-e-img' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); //size $this->add_responsive_control( 'image_size', [ 'label' => esc_html__('Size', 'uicore-elements'), 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'min' => 10, 'max' => 100, ], ], 'default' => [ 'unit' => 'px', 'size' => 40, ], 'selectors' => [ '{{WRAPPER}} .ui-e-img img' => 'width: {{SIZE}}{{UNIT}};', ], ] ); $this->end_controls_section(); } protected function render() { $settings = $this->get_settings_for_display(); $this->add_render_attribute('icon_list', 'class', $this->is_option('show_number_icon', 'yes') ? 'ui-e-number' : ''); ?> <ul> <?php foreach ($settings['icon_list'] as $index => $item) : $i = $index + 1; // index is 0 based // Prepare the atts $repeater_setting_key = $this->get_repeater_setting_key('text', 'icon_list', $index); $tag = $settings['title_tags']; $this->add_render_attribute($repeater_setting_key, 'class', 'elementor-icon-list-text'); $this->add_render_attribute('list_title_tags', 'class', 'ui-e-title', true); // Build url wrapper if link is set if (!empty( $item['link']['url'] ) ) { $link_key = 'link_' . $index; $this->add_link_attributes( $link_key, $item['link'] ); $wrapper = "<a class='ui-e-wrap' {$this->get_render_attribute_string($link_key)}>"; $wrapperClosure = 'a'; // Build default wrapper otherwise } else { $wrapper = '<div class="ui-e-wrap">'; $wrapperClosure = 'div'; } ?> <li <?php $this->print_render_attribute_string('list_class');?>> <?php echo wp_kses_post($wrapper); ?> <?php if( $this->is_option('show_number_icon', 'yes') ) : ?> <div class='ui-e-number'> <span> <?php echo esc_html($i);?> </span> </div> <?php endif; ?> <?php if (!empty($item['img']['url'])) : ?> <div class="ui-e-img"> <?php $thumb_url = $item['img']['url']; if ($thumb_url) { echo wp_kses_post(wp_get_attachment_image( $item['img']['id'], 'medium', false, [ 'alt' => esc_html($item['text']) ] )); } ?> </div> <?php endif; ?> <div class="ui-e-content"> <<?php echo esc_html($tag);?> <?php $this->print_render_attribute_string('list_title_tags');?>> <?php echo wp_kses_post($item['text']); ?> </<?php echo esc_html($tag);?>> <p class="ui-e-text"> <?php echo wp_kses_post($item['text_details']);?> </p> </div> <?php if (!empty($item['list_icon']['value'])) : ?> <div class="ui-e-icon"> <?php Icons_Manager::render_icon($item['list_icon'], ['aria-hidden' => 'true']); ?> </div> <?php endif; ?> </<?php echo esc_html($wrapperClosure)?>> </li> <?php endforeach; ?> </ul> <?php } } \Elementor\Plugin::instance()->widgets_manager->register(new IconList());PK }\��ᢏ( �( '