Plugin Directory

Changeset 3447763


Ignore:
Timestamp:
01/27/2026 10:48:17 AM (3 weeks ago)
Author:
debuggersstudio
Message:

Update to version 3.9.15 from GitHub

Location:
marquee-addons-for-elementor
Files:
2 added
20 edited
1 copied

Legend:

Unmodified
Added
Removed
  • marquee-addons-for-elementor/tags/3.9.15/assets/css/admin/admin.min.css

    r3446117 r3447763  
    1 a.toplevel_page_marquee-addons-settings .wp-menu-image img{width:23px;margin-top:-3px}.deensimc-addons-settings{margin-top:20px}.deensimc-marquee-settings-container{background:#fff;border:1px solid #ccd0d4;box-shadow:0 1px 1px rgba(0, 0, 0, 0.04);margin-top:20px}.deensimc-tabs{display:flex;border-bottom:1px solid #ccd0d4;background:#f3f4f5}.deensimc-tab-btn{padding:15px 25px;background:transparent;border:none;cursor:pointer;font-size:14px;font-weight:500;color:#555;border-bottom:3px solid transparent;transition:all .3s ease;display:flex;align-items:center;gap:8px}.deensimc-tab-btn:hover{background:#fff;color:#7456ff}.deensimc-tab-btn.active{background:#fff;color:#7456ff;border-bottom-color:#7456ff}.deensimc-tab-btn .dashicons{font-size:18px;width:18px;height:18px}.deensimc-tab-content{display:none;padding:24px}.deensimc-tab-content.active{display:block}.deensimc-section{margin-bottom:30px}.deensimc-section-header{margin-bottom:25px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.deensimc-section-header h2{margin:0;font-size:20px;line-height:1.5}.deensimc-section-header p.deensimc-description{font-size:13px;color:#646970;margin:0;margin-bottom:15px}.deensimc-bulk-actions{display:flex;gap:12px}.deensimc-settings-container{background-color:#fff;border-radius:8px;overflow:hidden;margin-top:20px}.deensimc-settings-container .deensimc-enable-btn{border:1px solid #7456ff;color:#7456ff;background-color:#fff}.deensimc-settings-container .deensimc-disable-btn{border:1px solid red;color:red;background-color:#fff}.deensimc-settings-footer #submit{background-color:#7456ff;border-color:#7456ff}.deensimc-category-section{margin:30px 0 20px 0}.deensimc-category-title{font-size:18px;margin:0 0 20px 0;padding:0;color:#1d2327}.deensimc-widgets-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));gap:20px}.deensimc-widget-card{border:1px solid #ddd;border-radius:8px;padding:24px;background:#fff;transition:all .3s ease;box-shadow:0 0 4px 0 rgba(0, 0, 0, 0.1);position:relative;overflow:hidden}.deensimc-widget-card:hover{box-shadow:0 4px 8px rgba(0, 0, 0, 0.2);transform:translateY(-2px)}.deensimc-widget-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.deensimc-widget-header .dashicons{font-size:24px;width:24px;height:24px;color:#7456ff}.deensimc-widget-custom-icon{width:24px;height:24px;object-fit:contain}.deensimc-settings-header{padding:0}.deensimc-widget-header h3{margin:0;font-size:16px;font-weight:600;flex:1}.deensimc-pro-badge{background:linear-gradient(135deg, #667eea 0%, #764ba2 100%);color:#fff;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;user-select:none;position:absolute;left:0;top:0;transform:rotateZ(-45deg) translate(-26%, -80%);width:80px;display:flex;align-items:center;justify-content:center}.deensimc-widget-description{color:#646970;font-size:13px;line-height:1.5;margin:0 0 15px 0}.deensimc-widget-toggle{display:flex;align-items:center;gap:12px}.deensimc-toggle-label{font-size:13px;color:#646970;font-weight:500}.deensimc-pro-lock-notice{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;margin:10px 0;font-size:12px;color:#856404}.deensimc-pro-lock-notice .dashicons{font-size:16px;width:16px;height:16px}.deensimc-switch{position:relative;display:inline-block;width:32px;height:18px}.deensimc-switch.disabled{opacity:.5;cursor:not-allowed}.deensimc-switch.disabled .slider{cursor:not-allowed}.deensimc-switch input{opacity:0;width:0;height:0}.deensimc-switch .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.3s;border-radius:24px}.deensimc-switch .slider:before{position:absolute;content:"";height:12px;width:12px;left:3px;bottom:3px;background-color:white;transition:.3s;border-radius:50%}.deensimc-switch input:checked+.slider{background-color:#7456ff}.deensimc-switch input:focus+.slider{box-shadow:0 0 1px #7456ff}.deensimc-switch input:checked+.slider:before{transform:translateX(14px)}.deensimc-settings-footer{padding:20px 30px;background:#f9f9f9;border-top:1px solid #ccd0d4;display:flex;gap:10px;align-items:center}.deensimc-tab-content .form-table th{padding:20px 10px 20px 0;width:220px}.deensimc-tab-content .form-table td{padding:20px 10px}.deensimc-tab-content .form-table .description{margin-top:8px}.deensimc-toggle-demo-wrapper{display:flex;align-items:center;justify-content:space-between}.deensimc-see-demo-btn{color:#7456ff;font-weight:500}@media screen and (max-width: 782px){.deensimc-widgets-grid{grid-template-columns:1fr}.deensimc-tab-content{padding:20px}.deensimc-settings-footer{padding:15px 20px;flex-direction:column;align-items:stretch}.deensimc-settings-footer .button{width:100%;text-align:center}}div.deensimc-notice{position:fixed;right:0;top:32px;margin:20px 0;padding:12px 15px;border-left:4px solid lime;background:#f8fff8;box-shadow:0 1px 1px rgba(0, 0, 0, 0.04)}div.deensimc-notice.error{border-left-color:#d63638;background:#fff6f6}div.deensimc-notice.info{border-left-color:#7456ff;background:#f8f7ff}.deensimc-loading{opacity:.6;pointer-events:none}.deensimc-loading::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);border:3px solid #f3f3f3;border-top:3px solid #2271b1;border-radius:50%;width:40px;height:40px;animation:deensimc-spin 1s linear infinite}@keyframes deensimc-spin{0%{transform:translate(-50%, -50%) rotate(0deg)}100%{transform:translate(-50%, -50%) rotate(360deg)}}.deensimc-toggle-label{transition:color .3s ease}.deensimc-switch.deensimc-pro-locked:focus,.deensimc-switch.deensimc-pro-locked:active,.deensimc-see-demo-btn:focus,.deensimc-see-demo-btn:active{outline:none !important;box-shadow:none !important}.deensimc-button-group-wrapper{display:flex;align-items:center;gap:12px !important}.deensimc-pro-locked .slider[data-tooltip]::after{content:attr(data-tooltip);position:absolute;top:-38px;left:50%;transform:translateX(-50%) translateY(6px);background:#6d6d6d;color:#fff;font-size:12px;font-weight:600;padding:6px 14px;border-radius:4px;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:.2s ease;z-index:9999}.deensimc-pro-locked:hover .slider[data-tooltip]::after{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
     1a.toplevel_page_marquee-addons-settings .wp-menu-image img{width:23px;margin-top:-3px}.deensimc-addons-settings{margin-top:20px}.deensimc-marquee-settings-container{background:#fff;border:1px solid #ccd0d4;box-shadow:0 1px 1px rgba(0, 0, 0, 0.04);margin-top:20px}.deensimc-tabs{display:flex;border-bottom:1px solid #ccd0d4;background:#f3f4f5}.deensimc-tab-btn{padding:15px 25px;background:transparent;border:none;cursor:pointer;font-size:14px;font-weight:500;color:#555;border-bottom:3px solid transparent;transition:all .3s ease;display:flex;align-items:center;gap:8px}.deensimc-tab-btn:hover{background:#fff;color:#7456ff}.deensimc-tab-btn.active{background:#fff;color:#7456ff;border-bottom-color:#7456ff}.deensimc-tab-btn .dashicons{font-size:18px;width:18px;height:18px}.deensimc-tab-content{display:none;padding:24px}.deensimc-tab-content.active{display:block}.deensimc-section{margin-bottom:30px}.deensimc-section-header{margin-bottom:25px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.deensimc-section-header h2{margin:0;font-size:20px;line-height:1.5}.deensimc-section-header p.deensimc-description{font-size:13px;color:#646970;margin:0;margin-bottom:15px}.deensimc-bulk-actions{display:flex;gap:12px}.deensimc-settings-container{background-color:#fff;border-radius:8px;overflow:hidden;margin-top:20px}.deensimc-settings-container .deensimc-enable-btn{border:1px solid #7456ff;color:#7456ff;background-color:#fff}.deensimc-settings-container .deensimc-disable-btn{border:1px solid red;color:red;background-color:#fff}.deensimc-category-section{margin:30px 0 20px 0}.deensimc-category-title{font-size:18px;margin:0 0 20px 0;padding:0;color:#1d2327}.deensimc-widgets-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));gap:20px}.deensimc-widget-card{border:1px solid #ddd;border-radius:8px;padding:24px;background:#fff;transition:all .3s ease;box-shadow:0 0 4px 0 rgba(0, 0, 0, 0.1);position:relative;overflow:hidden}.deensimc-widget-card:hover{box-shadow:0 4px 8px rgba(0, 0, 0, 0.2);transform:translateY(-2px)}.deensimc-widget-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.deensimc-widget-header .dashicons{font-size:24px;width:24px;height:24px;color:#7456ff}.deensimc-widget-custom-icon{width:24px;height:24px;object-fit:contain}.deensimc-settings-header{padding:0}.deensimc-widget-header h3{margin:0;font-size:16px;font-weight:600;flex:1}.deensimc-pro-badge{background:linear-gradient(135deg, #667eea 0%, #764ba2 100%);color:#fff;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;user-select:none;position:absolute;left:0;top:0;transform:rotateZ(-45deg) translate(-26%, -80%);width:80px;display:flex;align-items:center;justify-content:center}.deensimc-widget-description{color:#646970;font-size:13px;line-height:1.5;margin:0 0 15px 0}.deensimc-widget-toggle{display:flex;align-items:center;gap:12px}.deensimc-toggle-label{font-size:13px;color:#646970;font-weight:500}.deensimc-pro-lock-notice{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;margin:10px 0;font-size:12px;color:#856404}.deensimc-pro-lock-notice .dashicons{font-size:16px;width:16px;height:16px}.deensimc-switch{position:relative;display:inline-block;width:32px;height:18px}.deensimc-switch.disabled{opacity:.5;cursor:not-allowed}.deensimc-switch.disabled .slider{cursor:not-allowed}.deensimc-switch input{opacity:0;width:0;height:0}.deensimc-switch .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.3s;border-radius:24px}.deensimc-switch .slider:before{position:absolute;content:"";height:12px;width:12px;left:3px;bottom:3px;background-color:white;transition:.3s;border-radius:50%}.deensimc-switch input:checked+.slider{background-color:#7456ff}.deensimc-switch input:focus+.slider{box-shadow:0 0 1px #7456ff}.deensimc-switch input:checked+.slider:before{transform:translateX(14px)}.deensimc-settings-footer{display:none}.deensimc-tab-content .form-table th{padding:20px 10px 20px 0;width:220px}.deensimc-tab-content .form-table td{padding:20px 10px}.deensimc-tab-content .form-table .description{margin-top:8px}.deensimc-toggle-demo-wrapper{display:flex;align-items:center;justify-content:space-between}.deensimc-see-demo-btn{color:#7456ff;font-weight:500}@media screen and (max-width: 782px){.deensimc-widgets-grid{grid-template-columns:1fr}.deensimc-tab-content{padding:20px}}div.deensimc-notice{position:fixed;right:0;top:32px;margin:20px 0;padding:12px 15px;border-left:4px solid lime;background:#f8fff8;box-shadow:0 1px 1px rgba(0, 0, 0, 0.04)}div.deensimc-notice.error{border-left-color:#d63638;background:#fff6f6}div.deensimc-notice.info{border-left-color:#7456ff;background:#f8f7ff}.deensimc-loading{opacity:.6;pointer-events:none}.deensimc-loading::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);border:3px solid #f3f3f3;border-top:3px solid #2271b1;border-radius:50%;width:40px;height:40px;animation:deensimc-spin 1s linear infinite}@keyframes deensimc-spin{0%{transform:translate(-50%, -50%) rotate(0deg)}100%{transform:translate(-50%, -50%) rotate(360deg)}}.deensimc-toggle-label{transition:color .3s ease}.deensimc-switch.deensimc-pro-locked:focus,.deensimc-switch.deensimc-pro-locked:active,.deensimc-see-demo-btn:focus,.deensimc-see-demo-btn:active{outline:none !important;box-shadow:none !important}.deensimc-button-group-wrapper{display:flex;align-items:center;gap:12px !important}.deensimc-pro-locked .slider[data-tooltip]::after{content:attr(data-tooltip);position:absolute;top:-38px;left:50%;transform:translateX(-50%) translateY(6px);background:#6d6d6d;color:#fff;font-size:12px;font-weight:600;padding:6px 14px;border-radius:4px;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:.2s ease;z-index:9999}.deensimc-pro-locked:hover .slider[data-tooltip]::after{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
  • marquee-addons-for-elementor/tags/3.9.15/assets/css/admin/notice.min.css

    r3413371 r3447763  
    1 #deensimc-feedback-notice.deensimc-notice-wrap{display:flex;align-items:flex-start;border-left:4px solid #4f46e5;background:#fff;padding:20px;margin:20px 0;box-shadow:0 1px 3px rgba(0, 0, 0, 0.05)}.deensimc-notice-icon{width:48px;margin-right:20px}.deensimc-notice-icon img{width:100%;height:auto}.deensimc-notice-content h3{margin:0 0 8px;font-size:1.25em}.deensimc-notice-content p{margin:0 0 16px;color:#555d66}.deensimc-notice-content .button-primary{background-color:#4f46e5;border-color:#4f46e5;color:#fff;margin-right:8px}button.button.deensimc-never-show{margin-left:8px}.deensimc-dismiss-btn{background:transparent;border:1px solid #ccd0d4;color:#666}.deensimc-dismiss-btn:hover{background-color:#f0f0f0;color:#111}
     1#deensimc-feedback-notice.deensimc-notice-wrap{display:flex;align-items:flex-start;border-left:4px solid #4f46e5;background:#fff;padding:20px;margin:20px 0;box-shadow:0 1px 3px rgba(0, 0, 0, 0.05)}.deensimc-notice-icon{width:48px;margin-right:20px}.deensimc-notice-icon img{width:100%;height:auto}.deensimc-notice-content{width:100%}.deensimc-notice-content h3{margin:0 0 8px;font-size:1.25em}.deensimc-notice-content p{margin:0 0 16px;color:#555d66}.deensimc-notice-content .button-primary{background-color:#4f46e5;border-color:#4f46e5;color:#fff}button.button.deensimc-never-show{margin-left:8px}.deensimc-notice-content .deensimc-dismiss-btns,.deensimc-notice-content .deensimc-action-btns{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.deensimc-notice-content .button-tertiary{border:none;background-color:transparent;padding:0}.deensimc-notice-content .button-tertiary:hover{background-color:transparent;color:#111}.deensimc-notice-content .deensimc-btns{display:flex;align-items:end;justify-content:space-between}
  • marquee-addons-for-elementor/tags/3.9.15/assets/js/admin/admin.min.js

    r3446117 r3447763  
    1 (function(e){"use strict";function t(t,n="info"){e(".deensimc-notice").remove();const i=`deensimc-notice ${n}`;const s=e('<div class="'+i+'">'+t+"</div>");e("body").prepend(s);setTimeout(function(){s.fadeOut(300,function(){e(this).remove()})},3e3)}window.marqueeAddonsAdmin=window.marqueeAddonsAdmin||{};window.marqueeAddonsAdmin.showNotification=t;e(document).ready(function(){e(".deensimc-see-demo-btn").on("click",function(e){e.stopPropagation()});e(".deensimc-tab-btn").on("click",function(){const t=e(this).data("tab");e(".deensimc-tab-btn").removeClass("active");e(this).addClass("active");e(".deensimc-tab-content").removeClass("active");e("#tab-"+t).addClass("active")});e(".deensimc-widget-card").on("click",function(t){const n=e(this);if(!n.hasClass("deensimc-pro-locked")){return}const i=e(t.target);if(i.closest(".deensimc-widget-toggle").length>0||i.is("input")||i.is("label")||i.hasClass("deensimc-slider")||i.hasClass("deensimc-toggle-label")){return}const s=n.attr("data-pro-url");if(s&&s!==""&&s!=="undefined"){window.open(s,"_blank")}else{}});e(".deensimc-widget-card.pro-locked").css({cursor:"pointer",transition:"all 0.3s ease"}).attr("title","Click to upgrade to PRO");e(".deensimc-widget-card.pro-locked").hover(function(){e(this).css("transform","translateY(-2px)")},function(){e(this).css("transform","translateY(0)")});e(".deensimc-widget-card.pro-locked .deensimc-widget-toggle").on("click",function(e){e.stopPropagation()});e("#enable-all").on("click",function(){e('.deensimc-widget-card input[type="checkbox"]').each(function(){if(!e(this).is(":disabled")){e(this).prop("checked",true).trigger("change")}});t("All available widgets are enabled now","success")});e("#disable-all").on("click",function(){e('.deensimc-widget-card input[type="checkbox"]').each(function(){if(!e(this).is(":disabled")){e(this).prop("checked",false).trigger("change")}});t("All available widgets are disabled now!","info")});e(".deensimc-switch input").on("change",function(){if(e(this).is(":disabled")){return}const t=e(this).closest(".deensimc-widget-toggle").find(".deensimc-toggle-label");if(e(this).is(":checked")){t.text("Enabled").css("color","#00a32a")}else{t.text("Disabled").css("color","#d63638")}});e(".deensimc-switch input").each(function(){const t=e(this).closest(".deensimc-widget-toggle").find(".deensimc-toggle-label");if(e(this).is(":disabled")){t.text("Locked").css("color","#856404");return}if(e(this).is(":checked")){t.css("color","#00a32a")}else{t.text("Disabled").css("color","#d63638")}});e(".deensimc-addons-settings form").on("submit",function(t){const n=e(this).find("#submit");n.prop("disabled",true).val("Saving...")});const n=new URLSearchParams(window.location.search);if(n.get("settings-updated")==="true"){t("Settings saved successfully!","success");const e=window.location.pathname+window.location.search.replace(/[?&]settings-updated=true/,"").replace(/^&/,"?");window.history.replaceState({},"",e||window.location.pathname)}const i=function(){const t=e(".deensimc-widget-card input:checked:not(:disabled)").length;const n=e(".deensimc-widget-card").length;if(e("#widget-count").length===0){const i=`\n                    <div id="widget-count" style="margin-top: 15px; color: #646970; font-size: 13px;">\n                        <strong>${t}</strong> of <strong>${n}</strong> available widgets enabled\n                    </div>\n                `;e(".deensimc-description").after(i)}else{e("#widget-count").html(`<strong>${t}</strong> of <strong>${n}</strong> available widgets enabled`)}};i();e(".deensimc-widget-card input").on("change",i);e(document).on("keydown",function(t){if((t.ctrlKey||t.metaKey)&&t.which===83){t.preventDefault();e("form").submit()}});if(window.location.hash){const t=window.location.hash.substring(1);if(t==="widgets"||t==="general"){e('.deensimc-tab-btn[data-tab="'+t+'"]').click()}}e(".deensimc-tab-btn").on("click",function(){const t=e(this).data("tab");window.location.hash=t});e("form").on("submit",function(){e(".deensimc-settings-container").addClass("deensimc-loading")});let s=false;e("form input, form select, form textarea").on("change",function(){s=true});e("form").on("submit",function(){s=false});e(window).on("beforeunload",function(){if(s){return"You have unsaved changes. Are you sure you want to leave?"}})});e(".deensimc-enable-category").on("click",function(){const n=e(this).data("category");e(`.deensimc-widget-card[data-category="${n}"] input[type="checkbox"]`).each(function(){if(!e(this).is(":disabled")){e(this).prop("checked",true).trigger("change")}});t(`All ${n} items enabled successfully!`,"success")});e(".deensimc-disable-category").on("click",function(){const n=e(this).data("category");e(`.deensimc-widget-card[data-category="${n}"] input[type="checkbox"]`).each(function(){if(!e(this).is(":disabled")){e(this).prop("checked",false).trigger("change")}});t(`All ${n} items disabled successfully!`,"info")})})(jQuery);
     1(function(e){"use strict";function t(t,n="info"){e(".deensimc-notice").remove();const i=`deensimc-notice ${n}`;const c=e('<div class="'+i+'">'+t+"</div>");e("body").prepend(c);setTimeout(function(){c.fadeOut(300,function(){e(this).remove()})},3e3)}window.marqueeAddonsAdmin=window.marqueeAddonsAdmin||{};window.marqueeAddonsAdmin.showNotification=t;e(document).ready(function(){e(".deensimc-see-demo-btn").on("click",function(e){e.stopPropagation()});e(".deensimc-tab-btn").on("click",function(){const t=e(this).data("tab");e(".deensimc-tab-btn").removeClass("active");e(this).addClass("active");e(".deensimc-tab-content").removeClass("active");e("#tab-"+t).addClass("active")});e(".deensimc-widget-card").on("click",function(t){const n=e(this);if(!n.hasClass("deensimc-pro-locked")){return}const i=e(t.target);if(i.closest(".deensimc-widget-toggle").length>0||i.is("input")||i.is("label")||i.hasClass("deensimc-slider")||i.hasClass("deensimc-toggle-label")){return}const c=n.attr("data-pro-url");if(c&&c!==""&&c!=="undefined"){window.open(c,"_blank")}else{}});e(".deensimc-widget-card.pro-locked").css({cursor:"pointer",transition:"all 0.3s ease"}).attr("title","Click to upgrade to PRO");e(".deensimc-widget-card.pro-locked").hover(function(){e(this).css("transform","translateY(-2px)")},function(){e(this).css("transform","translateY(0)")});e(".deensimc-widget-card.pro-locked .deensimc-widget-toggle").on("click",function(e){e.stopPropagation()});e("#enable-all").on("click",function(){e('.deensimc-widget-card input[type="checkbox"]').each(function(){if(!e(this).is(":disabled")){e(this).prop("checked",true).trigger("change")}});t("All available widgets are enabled now","success")});e("#disable-all").on("click",function(){e('.deensimc-widget-card input[type="checkbox"]').each(function(){if(!e(this).is(":disabled")){e(this).prop("checked",false).trigger("change")}});t("All available widgets are disabled now!","info")});e(".deensimc-switch input").on("change",function(){setTimeout(()=>{e("#submit").click();e(".deensimc-widget-card").css({opacity:"0.5","pointer-events":"none"})},100)});e(".deensimc-addons-settings form").on("submit",function(t){const n=e(this).find("#submit");n.prop("disabled",true).val("Saving...")});const n=new URLSearchParams(window.location.search);if(n.get("settings-updated")==="true"){t("Settings saved successfully!","success");const e=window.location.pathname+window.location.search.replace(/[?&]settings-updated=true/,"").replace(/^&/,"?");window.history.replaceState({},"",e||window.location.pathname)}const i=function(){const t=e(".deensimc-widget-card input:checked:not(:disabled)").length;const n=e(".deensimc-widget-card").length;if(e("#widget-count").length===0){const i=`\n                    <div id="widget-count" style="margin-top: 15px; color: #646970; font-size: 13px;">\n                        <strong>${t}</strong> of <strong>${n}</strong> available widgets enabled\n                    </div>\n                `;e(".deensimc-description").after(i)}else{e("#widget-count").html(`<strong>${t}</strong> of <strong>${n}</strong> available widgets enabled`)}};i();e(".deensimc-widget-card input").on("change",i);e(document).on("keydown",function(t){if((t.ctrlKey||t.metaKey)&&t.which===83){t.preventDefault();e("form").submit()}});if(window.location.hash){const t=window.location.hash.substring(1);if(t==="widgets"||t==="general"){e('.deensimc-tab-btn[data-tab="'+t+'"]').click()}}e(".deensimc-tab-btn").on("click",function(){const t=e(this).data("tab");window.location.hash=t});let c=false;e("form input, form select, form textarea").on("change",function(){c=true});e("form").on("submit",function(){c=false});e(window).on("beforeunload",function(){if(c){return"You have unsaved changes. Are you sure you want to leave?"}})});e(".deensimc-enable-category").on("click",function(){const n=e(this).data("category");e(`.deensimc-widget-card[data-category="${n}"] input[type="checkbox"]`).each(function(){if(!e(this).is(":disabled")){e(this).prop("checked",true).trigger("change")}});t(`All ${n} items enabled successfully!`,"success")});e(".deensimc-disable-category").on("click",function(){const n=e(this).data("category");e(`.deensimc-widget-card[data-category="${n}"] input[type="checkbox"]`).each(function(){if(!e(this).is(":disabled")){e(this).prop("checked",false).trigger("change")}});t(`All ${n} items disabled successfully!`,"info")})})(jQuery);
  • marquee-addons-for-elementor/tags/3.9.15/assets/js/handle-animation-duration.min.js

    r3413371 r3447763  
    1 (function(e,n){"use strict";function t(n){const t=n.find(".deensimc-marquee-main-container");const i=n.find(".deensimc-marquee-track");const a=t.data("is-marquee-on")??true;const c=t.data("marquee-speed");const s=!window.matchMedia("(max-width: 767px)").matches&&i.closest(".deensimc-marquee-vertical").length>0;if(a&&i.length){let n=0;i.each((e,t)=>{n+=s?t.scrollHeight:t.scrollWidth});const t=10;const a=c*t;const o=n/a;i.each((n,t)=>{e(t).css("animation-duration",`${o}s`)})}}window.handleAnimationDuration=t})(jQuery,window._);
     1(function(n,e){"use strict";function t(e){const t=e.find(".deensimc-marquee-main-container");const c=e.find(".deensimc-marquee-track");const i=t.data("is-marquee-on")??true;const s=t.data("marquee-speed");const a=c.closest(".deensimc-marquee-vertical").length>0;if(i&&c.length){let e=0;c.each((n,t)=>{e+=a?t.scrollHeight:t.scrollWidth});const t=10;const i=s*t;const o=e/i;c.each((e,t)=>{n(t).css("animation-duration",`${o}s`)})}}window.handleAnimationDuration=t})(jQuery,window._);
  • marquee-addons-for-elementor/tags/3.9.15/base.php

    r3446507 r3447763  
    66{
    77    private static $_instance = null;
    8     const VERSION = '3.9.14';
     8    const VERSION = '3.9.15';
    99
    1010    public function __construct()
  • marquee-addons-for-elementor/tags/3.9.15/includes/widget.php

    r3446507 r3447763  
    99    use Deensimcpro_Promo;
    1010
    11     const VERSION = '3.9.14';
     11    const VERSION = '3.9.15';
    1212    const MINIMUM_ELEMENTOR_VERSION = '3.5.0';
    1313    const MINIMUM_PHP_VERSION = '7.4';
     
    217217        echo '  </div>';
    218218        echo '  <div class="deensimc-notice-content">';
    219         echo '    <h3>Upgrade to Marquee Addons Pro</h3>';
    220         echo '    <p>Unlock more advance widgets and make your Elementor website 10x better with Marquee Addons.</p>';
    221         echo '    <a href="https://marqueeaddons.com/pricing/" target="_blank" class="button button-primary">Upgrade to Pro</a>';
     219        echo '    <h3>Enjoying Marquee Addons?</h3>';
     220        echo '    <p>A quick rating helps other Elementor users discover Marquee Addons. You can also share feature ideas or suggestions to help us improve.</p>';
     221        echo '    <div class="deensimc-btns">';
     222        echo '      <div class="deensimc-action-btns">';
    222223        echo '    <a href="https://wordpress.org/support/plugin/marquee-addons-for-elementor/reviews/#new-post" target="_blank" class="button button-primary">Rate Us</a>';
    223         echo '    <button class="button deensimc-dismiss-btn">Remind me later</button>';
    224         echo '    <button class="button deensimc-never-show">Don\'t show me again</button>';
     224        echo '    <a href="https://wordpress.org/support/plugin/marquee-addons-for-elementor/" target="_blank" class="button"> Feature Request</a>';
     225        echo '    <a href="https://marqueeaddons.com/pricing/" target="_blank" class="button">Upgrade to Pro</a>';
     226        echo '      </div>';
     227        echo '      <div class="deensimc-dismiss-btns">';
     228        echo '    <button class="button deensimc-dismiss-btn button-tertiary">Remind me later</button>';
     229        echo '    <button class="button deensimc-never-show button-tertiary">Don\'t show me again</button>';
     230        echo '      </div>';
     231        echo '    </div>';
    225232        echo '  </div>';
    226233        echo '</div>';
     
    429436            ]
    430437        );
    431        
     438
    432439        // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
    433440        if (!class_exists('\Deensimcpro_Marquee\Marqueepro') || !apply_filters('marquee_addons_is_license_active', false)) {
  • marquee-addons-for-elementor/tags/3.9.15/includes/widgets/class-deensimc-text-marquee.php

    r3436552 r3447763  
    1919    use Deensimc_Promotional_Banner;
    2020    use Deensimc_Textmarquee_Content_Text_Repeater;
     21    use Deensimc_Textmarquee_Layout_Controls;
    2122    use Deensimc_Marquee_Controls;
    2223    use Deensimc_Textmarquee_Style_Text_Contents;
     
    6869        $this->content_text_repeater();
    6970        $this->register_marquee_control('deensimc_text_marquee_options');
    70 
    7171        $this->style_text_contents();
     72        $this->register_layout_controls();
    7273        $this->register_style_edge_shadow('deensimc_text_marquee_edge_shadow');
    7374    }
     
    134135        $settings = $this->get_settings_for_display();
    135136        $texts = $settings['deensimc_repeater_text_main'];
    136         $tag = self::validate_html_tag( $settings['deensimc_text_marquee_tag'] );
     137        $tag = self::validate_html_tag($settings['deensimc_text_marquee_tag']);
    137138
    138139        $is_vertical = $settings['deensimc_marquee_vertical_orientation'] === 'yes';
     
    177178            <div class="deensimc-marquee-track-wrapper">
    178179                <div class="deensimc-marquee-track">
    179                     <?php $this->render_marquee_texts($texts, $is_vertical, $tag,'track-1') ?>
     180                    <?php $this->render_marquee_texts($texts, $is_vertical, $tag, 'track-1') ?>
    180181                </div>
    181182                <div aria-hidden="true" class="deensimc-marquee-track">
  • marquee-addons-for-elementor/tags/3.9.15/includes/widgets/traits/text-marquee/style-text-contents.php

    r3420892 r3447763  
    8181
    8282        $this->end_controls_tabs();
    83 
    84         $this->add_responsive_control(
    85             'deensimc_widget_height',
    86             [
    87                 'label' => esc_html__('Section Height', 'marquee-addons-for-elementor'),
    88                 'type' =>  Controls_Manager::SLIDER,
    89                 'size_units' => ['vh'],
    90                 'range' => [
    91                     'vh' => [
    92                         'min' => 1,
    93                         'max' => 100,
    94                         'step' => 1,
    95                     ],
    96                 ],
    97 
    98                 'default' => [
    99                     'unit' => 'vh',
    100                     'size' => 60,
    101                 ],
    102                 'condition' => [
    103                     'deensimc_marquee_vertical_orientation' => 'yes',
    104                 ],
    105                 'selectors' => [
    106                     '{{WRAPPER}} .deensimc-marquee-vertical.deensimc-marquee-main-container' => 'height: {{SIZE}}vh;',
    107                 ],
    108             ]
    109         );
    11083
    11184
     
    213186            ]
    214187        );
    215 
    216         $this->add_responsive_control(
    217             'deensimc_icon_adjust_vertical_position',
    218             [
    219                 'label' => esc_html__('Adjust Vertical Position', 'marquee-addons-for-elementor'),
    220                 'type' => Controls_Manager::SLIDER,
    221                 'size_units' => ['px', 'em', 'rem'],
    222                 'range' => [
    223                     'px' => [
    224                         'min' => -16,
    225                         'max' => 16,
    226                         'step' => 1,
    227                     ],
    228                     'em' => [
    229                         'min' => -1,
    230                         'max' => 1,
    231                         'step' => 0.1,
    232                     ],
    233                     'rem' => [
    234                         'min' => -1,
    235                         'max' => 1,
    236                         'step' => 0.1,
    237                     ],
    238                 ],
    239                 'default' => [
    240                     'unit' => 'px',
    241                     'size' => 0,
    242                 ],
    243                 'selectors' => [
    244                     '{{WRAPPER}} .deensimc-text-wrapper svg' => 'margin-block: {{SIZE}}{{UNIT}};',
    245                     '{{WRAPPER}} .deensimc-text-wrapper i' => 'margin-block: {{SIZE}}{{UNIT}};',
    246                 ],
    247                 'condition' => [
    248                     'deensimc_marquee_vertical_orientation' => 'yes',
    249                 ],
    250             ]
    251         );
    252188        // animation 
    253189        $this->add_control(
  • marquee-addons-for-elementor/tags/3.9.15/marquee-addons-for-elementor.php

    r3446507 r3447763  
    44 * Plugin Name: Marquee Addons for Elementor - Essential Motion Widgets & Templates
    55 * Description: Marquee Addons an Elementor addon to create smooth, endless marquee carousels, showcases images, logos, or content with dynamic movement to engage visitors. It also allows you to create image accordions, stacked sliders, and text marquees.
    6  * Version: 3.9.14
     6 * Version: 3.9.15
    77 * Requires at least: 5.8
    88 * Requires PHP: 7.4
     
    2626define('DEENSIMC_PATH', plugin_dir_path(__FILE__));
    2727define('DEENSIMC_ASSETS_URL', DEENSIMC_URL . 'assets/');
    28 define('DEENSIMC_VERSION', '3.9.14');
     28define('DEENSIMC_VERSION', '3.9.15');
    2929
    3030function deensimc_load_plugin_data(): void
  • marquee-addons-for-elementor/tags/3.9.15/readme.txt

    r3446507 r3447763  
    44Requires at least: 5.8
    55Tested up to: 6.9
    6 Stable tag: 3.9.14
     6Stable tag: 3.9.15
    77Requires PHP: 7.4
    88License: GPLv2 or later
     
    266266== Changelog ==
    267267
     268= 3.9.15 - 2026-01-25 =
     269- Fix: Fixed an issue where animation speed increased on mobile.
     270- New: Separated the Section Height control for Vertical Text Marquee for improved structure.
     271- Fix: Removed the Icon Adjust Vertical Position control.
     272- New: Implemented widget enable/disable functionality on toggle change for better user control.
     273
    268274= 3.9.14 - 2026-01-25 =
    269275- Fix: Render only valid images in the gallery in Image Marquee.
    270 - Fix: Removed extra whitespace testimonial card in Testimonial marquee.
     276- Fix: Removed extra whitespace from testimonial card in Testimonial marquee.
    271277
    272278= 3.9.13 - 2026-01-24 =
  • marquee-addons-for-elementor/trunk/assets/css/admin/admin.min.css

    r3446117 r3447763  
    1 a.toplevel_page_marquee-addons-settings .wp-menu-image img{width:23px;margin-top:-3px}.deensimc-addons-settings{margin-top:20px}.deensimc-marquee-settings-container{background:#fff;border:1px solid #ccd0d4;box-shadow:0 1px 1px rgba(0, 0, 0, 0.04);margin-top:20px}.deensimc-tabs{display:flex;border-bottom:1px solid #ccd0d4;background:#f3f4f5}.deensimc-tab-btn{padding:15px 25px;background:transparent;border:none;cursor:pointer;font-size:14px;font-weight:500;color:#555;border-bottom:3px solid transparent;transition:all .3s ease;display:flex;align-items:center;gap:8px}.deensimc-tab-btn:hover{background:#fff;color:#7456ff}.deensimc-tab-btn.active{background:#fff;color:#7456ff;border-bottom-color:#7456ff}.deensimc-tab-btn .dashicons{font-size:18px;width:18px;height:18px}.deensimc-tab-content{display:none;padding:24px}.deensimc-tab-content.active{display:block}.deensimc-section{margin-bottom:30px}.deensimc-section-header{margin-bottom:25px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.deensimc-section-header h2{margin:0;font-size:20px;line-height:1.5}.deensimc-section-header p.deensimc-description{font-size:13px;color:#646970;margin:0;margin-bottom:15px}.deensimc-bulk-actions{display:flex;gap:12px}.deensimc-settings-container{background-color:#fff;border-radius:8px;overflow:hidden;margin-top:20px}.deensimc-settings-container .deensimc-enable-btn{border:1px solid #7456ff;color:#7456ff;background-color:#fff}.deensimc-settings-container .deensimc-disable-btn{border:1px solid red;color:red;background-color:#fff}.deensimc-settings-footer #submit{background-color:#7456ff;border-color:#7456ff}.deensimc-category-section{margin:30px 0 20px 0}.deensimc-category-title{font-size:18px;margin:0 0 20px 0;padding:0;color:#1d2327}.deensimc-widgets-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));gap:20px}.deensimc-widget-card{border:1px solid #ddd;border-radius:8px;padding:24px;background:#fff;transition:all .3s ease;box-shadow:0 0 4px 0 rgba(0, 0, 0, 0.1);position:relative;overflow:hidden}.deensimc-widget-card:hover{box-shadow:0 4px 8px rgba(0, 0, 0, 0.2);transform:translateY(-2px)}.deensimc-widget-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.deensimc-widget-header .dashicons{font-size:24px;width:24px;height:24px;color:#7456ff}.deensimc-widget-custom-icon{width:24px;height:24px;object-fit:contain}.deensimc-settings-header{padding:0}.deensimc-widget-header h3{margin:0;font-size:16px;font-weight:600;flex:1}.deensimc-pro-badge{background:linear-gradient(135deg, #667eea 0%, #764ba2 100%);color:#fff;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;user-select:none;position:absolute;left:0;top:0;transform:rotateZ(-45deg) translate(-26%, -80%);width:80px;display:flex;align-items:center;justify-content:center}.deensimc-widget-description{color:#646970;font-size:13px;line-height:1.5;margin:0 0 15px 0}.deensimc-widget-toggle{display:flex;align-items:center;gap:12px}.deensimc-toggle-label{font-size:13px;color:#646970;font-weight:500}.deensimc-pro-lock-notice{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;margin:10px 0;font-size:12px;color:#856404}.deensimc-pro-lock-notice .dashicons{font-size:16px;width:16px;height:16px}.deensimc-switch{position:relative;display:inline-block;width:32px;height:18px}.deensimc-switch.disabled{opacity:.5;cursor:not-allowed}.deensimc-switch.disabled .slider{cursor:not-allowed}.deensimc-switch input{opacity:0;width:0;height:0}.deensimc-switch .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.3s;border-radius:24px}.deensimc-switch .slider:before{position:absolute;content:"";height:12px;width:12px;left:3px;bottom:3px;background-color:white;transition:.3s;border-radius:50%}.deensimc-switch input:checked+.slider{background-color:#7456ff}.deensimc-switch input:focus+.slider{box-shadow:0 0 1px #7456ff}.deensimc-switch input:checked+.slider:before{transform:translateX(14px)}.deensimc-settings-footer{padding:20px 30px;background:#f9f9f9;border-top:1px solid #ccd0d4;display:flex;gap:10px;align-items:center}.deensimc-tab-content .form-table th{padding:20px 10px 20px 0;width:220px}.deensimc-tab-content .form-table td{padding:20px 10px}.deensimc-tab-content .form-table .description{margin-top:8px}.deensimc-toggle-demo-wrapper{display:flex;align-items:center;justify-content:space-between}.deensimc-see-demo-btn{color:#7456ff;font-weight:500}@media screen and (max-width: 782px){.deensimc-widgets-grid{grid-template-columns:1fr}.deensimc-tab-content{padding:20px}.deensimc-settings-footer{padding:15px 20px;flex-direction:column;align-items:stretch}.deensimc-settings-footer .button{width:100%;text-align:center}}div.deensimc-notice{position:fixed;right:0;top:32px;margin:20px 0;padding:12px 15px;border-left:4px solid lime;background:#f8fff8;box-shadow:0 1px 1px rgba(0, 0, 0, 0.04)}div.deensimc-notice.error{border-left-color:#d63638;background:#fff6f6}div.deensimc-notice.info{border-left-color:#7456ff;background:#f8f7ff}.deensimc-loading{opacity:.6;pointer-events:none}.deensimc-loading::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);border:3px solid #f3f3f3;border-top:3px solid #2271b1;border-radius:50%;width:40px;height:40px;animation:deensimc-spin 1s linear infinite}@keyframes deensimc-spin{0%{transform:translate(-50%, -50%) rotate(0deg)}100%{transform:translate(-50%, -50%) rotate(360deg)}}.deensimc-toggle-label{transition:color .3s ease}.deensimc-switch.deensimc-pro-locked:focus,.deensimc-switch.deensimc-pro-locked:active,.deensimc-see-demo-btn:focus,.deensimc-see-demo-btn:active{outline:none !important;box-shadow:none !important}.deensimc-button-group-wrapper{display:flex;align-items:center;gap:12px !important}.deensimc-pro-locked .slider[data-tooltip]::after{content:attr(data-tooltip);position:absolute;top:-38px;left:50%;transform:translateX(-50%) translateY(6px);background:#6d6d6d;color:#fff;font-size:12px;font-weight:600;padding:6px 14px;border-radius:4px;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:.2s ease;z-index:9999}.deensimc-pro-locked:hover .slider[data-tooltip]::after{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
     1a.toplevel_page_marquee-addons-settings .wp-menu-image img{width:23px;margin-top:-3px}.deensimc-addons-settings{margin-top:20px}.deensimc-marquee-settings-container{background:#fff;border:1px solid #ccd0d4;box-shadow:0 1px 1px rgba(0, 0, 0, 0.04);margin-top:20px}.deensimc-tabs{display:flex;border-bottom:1px solid #ccd0d4;background:#f3f4f5}.deensimc-tab-btn{padding:15px 25px;background:transparent;border:none;cursor:pointer;font-size:14px;font-weight:500;color:#555;border-bottom:3px solid transparent;transition:all .3s ease;display:flex;align-items:center;gap:8px}.deensimc-tab-btn:hover{background:#fff;color:#7456ff}.deensimc-tab-btn.active{background:#fff;color:#7456ff;border-bottom-color:#7456ff}.deensimc-tab-btn .dashicons{font-size:18px;width:18px;height:18px}.deensimc-tab-content{display:none;padding:24px}.deensimc-tab-content.active{display:block}.deensimc-section{margin-bottom:30px}.deensimc-section-header{margin-bottom:25px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.deensimc-section-header h2{margin:0;font-size:20px;line-height:1.5}.deensimc-section-header p.deensimc-description{font-size:13px;color:#646970;margin:0;margin-bottom:15px}.deensimc-bulk-actions{display:flex;gap:12px}.deensimc-settings-container{background-color:#fff;border-radius:8px;overflow:hidden;margin-top:20px}.deensimc-settings-container .deensimc-enable-btn{border:1px solid #7456ff;color:#7456ff;background-color:#fff}.deensimc-settings-container .deensimc-disable-btn{border:1px solid red;color:red;background-color:#fff}.deensimc-category-section{margin:30px 0 20px 0}.deensimc-category-title{font-size:18px;margin:0 0 20px 0;padding:0;color:#1d2327}.deensimc-widgets-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));gap:20px}.deensimc-widget-card{border:1px solid #ddd;border-radius:8px;padding:24px;background:#fff;transition:all .3s ease;box-shadow:0 0 4px 0 rgba(0, 0, 0, 0.1);position:relative;overflow:hidden}.deensimc-widget-card:hover{box-shadow:0 4px 8px rgba(0, 0, 0, 0.2);transform:translateY(-2px)}.deensimc-widget-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.deensimc-widget-header .dashicons{font-size:24px;width:24px;height:24px;color:#7456ff}.deensimc-widget-custom-icon{width:24px;height:24px;object-fit:contain}.deensimc-settings-header{padding:0}.deensimc-widget-header h3{margin:0;font-size:16px;font-weight:600;flex:1}.deensimc-pro-badge{background:linear-gradient(135deg, #667eea 0%, #764ba2 100%);color:#fff;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;user-select:none;position:absolute;left:0;top:0;transform:rotateZ(-45deg) translate(-26%, -80%);width:80px;display:flex;align-items:center;justify-content:center}.deensimc-widget-description{color:#646970;font-size:13px;line-height:1.5;margin:0 0 15px 0}.deensimc-widget-toggle{display:flex;align-items:center;gap:12px}.deensimc-toggle-label{font-size:13px;color:#646970;font-weight:500}.deensimc-pro-lock-notice{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;margin:10px 0;font-size:12px;color:#856404}.deensimc-pro-lock-notice .dashicons{font-size:16px;width:16px;height:16px}.deensimc-switch{position:relative;display:inline-block;width:32px;height:18px}.deensimc-switch.disabled{opacity:.5;cursor:not-allowed}.deensimc-switch.disabled .slider{cursor:not-allowed}.deensimc-switch input{opacity:0;width:0;height:0}.deensimc-switch .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.3s;border-radius:24px}.deensimc-switch .slider:before{position:absolute;content:"";height:12px;width:12px;left:3px;bottom:3px;background-color:white;transition:.3s;border-radius:50%}.deensimc-switch input:checked+.slider{background-color:#7456ff}.deensimc-switch input:focus+.slider{box-shadow:0 0 1px #7456ff}.deensimc-switch input:checked+.slider:before{transform:translateX(14px)}.deensimc-settings-footer{display:none}.deensimc-tab-content .form-table th{padding:20px 10px 20px 0;width:220px}.deensimc-tab-content .form-table td{padding:20px 10px}.deensimc-tab-content .form-table .description{margin-top:8px}.deensimc-toggle-demo-wrapper{display:flex;align-items:center;justify-content:space-between}.deensimc-see-demo-btn{color:#7456ff;font-weight:500}@media screen and (max-width: 782px){.deensimc-widgets-grid{grid-template-columns:1fr}.deensimc-tab-content{padding:20px}}div.deensimc-notice{position:fixed;right:0;top:32px;margin:20px 0;padding:12px 15px;border-left:4px solid lime;background:#f8fff8;box-shadow:0 1px 1px rgba(0, 0, 0, 0.04)}div.deensimc-notice.error{border-left-color:#d63638;background:#fff6f6}div.deensimc-notice.info{border-left-color:#7456ff;background:#f8f7ff}.deensimc-loading{opacity:.6;pointer-events:none}.deensimc-loading::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);border:3px solid #f3f3f3;border-top:3px solid #2271b1;border-radius:50%;width:40px;height:40px;animation:deensimc-spin 1s linear infinite}@keyframes deensimc-spin{0%{transform:translate(-50%, -50%) rotate(0deg)}100%{transform:translate(-50%, -50%) rotate(360deg)}}.deensimc-toggle-label{transition:color .3s ease}.deensimc-switch.deensimc-pro-locked:focus,.deensimc-switch.deensimc-pro-locked:active,.deensimc-see-demo-btn:focus,.deensimc-see-demo-btn:active{outline:none !important;box-shadow:none !important}.deensimc-button-group-wrapper{display:flex;align-items:center;gap:12px !important}.deensimc-pro-locked .slider[data-tooltip]::after{content:attr(data-tooltip);position:absolute;top:-38px;left:50%;transform:translateX(-50%) translateY(6px);background:#6d6d6d;color:#fff;font-size:12px;font-weight:600;padding:6px 14px;border-radius:4px;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:.2s ease;z-index:9999}.deensimc-pro-locked:hover .slider[data-tooltip]::after{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
  • marquee-addons-for-elementor/trunk/assets/css/admin/notice.min.css

    r3413371 r3447763  
    1 #deensimc-feedback-notice.deensimc-notice-wrap{display:flex;align-items:flex-start;border-left:4px solid #4f46e5;background:#fff;padding:20px;margin:20px 0;box-shadow:0 1px 3px rgba(0, 0, 0, 0.05)}.deensimc-notice-icon{width:48px;margin-right:20px}.deensimc-notice-icon img{width:100%;height:auto}.deensimc-notice-content h3{margin:0 0 8px;font-size:1.25em}.deensimc-notice-content p{margin:0 0 16px;color:#555d66}.deensimc-notice-content .button-primary{background-color:#4f46e5;border-color:#4f46e5;color:#fff;margin-right:8px}button.button.deensimc-never-show{margin-left:8px}.deensimc-dismiss-btn{background:transparent;border:1px solid #ccd0d4;color:#666}.deensimc-dismiss-btn:hover{background-color:#f0f0f0;color:#111}
     1#deensimc-feedback-notice.deensimc-notice-wrap{display:flex;align-items:flex-start;border-left:4px solid #4f46e5;background:#fff;padding:20px;margin:20px 0;box-shadow:0 1px 3px rgba(0, 0, 0, 0.05)}.deensimc-notice-icon{width:48px;margin-right:20px}.deensimc-notice-icon img{width:100%;height:auto}.deensimc-notice-content{width:100%}.deensimc-notice-content h3{margin:0 0 8px;font-size:1.25em}.deensimc-notice-content p{margin:0 0 16px;color:#555d66}.deensimc-notice-content .button-primary{background-color:#4f46e5;border-color:#4f46e5;color:#fff}button.button.deensimc-never-show{margin-left:8px}.deensimc-notice-content .deensimc-dismiss-btns,.deensimc-notice-content .deensimc-action-btns{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.deensimc-notice-content .button-tertiary{border:none;background-color:transparent;padding:0}.deensimc-notice-content .button-tertiary:hover{background-color:transparent;color:#111}.deensimc-notice-content .deensimc-btns{display:flex;align-items:end;justify-content:space-between}
  • marquee-addons-for-elementor/trunk/assets/js/admin/admin.min.js

    r3446117 r3447763  
    1 (function(e){"use strict";function t(t,n="info"){e(".deensimc-notice").remove();const i=`deensimc-notice ${n}`;const s=e('<div class="'+i+'">'+t+"</div>");e("body").prepend(s);setTimeout(function(){s.fadeOut(300,function(){e(this).remove()})},3e3)}window.marqueeAddonsAdmin=window.marqueeAddonsAdmin||{};window.marqueeAddonsAdmin.showNotification=t;e(document).ready(function(){e(".deensimc-see-demo-btn").on("click",function(e){e.stopPropagation()});e(".deensimc-tab-btn").on("click",function(){const t=e(this).data("tab");e(".deensimc-tab-btn").removeClass("active");e(this).addClass("active");e(".deensimc-tab-content").removeClass("active");e("#tab-"+t).addClass("active")});e(".deensimc-widget-card").on("click",function(t){const n=e(this);if(!n.hasClass("deensimc-pro-locked")){return}const i=e(t.target);if(i.closest(".deensimc-widget-toggle").length>0||i.is("input")||i.is("label")||i.hasClass("deensimc-slider")||i.hasClass("deensimc-toggle-label")){return}const s=n.attr("data-pro-url");if(s&&s!==""&&s!=="undefined"){window.open(s,"_blank")}else{}});e(".deensimc-widget-card.pro-locked").css({cursor:"pointer",transition:"all 0.3s ease"}).attr("title","Click to upgrade to PRO");e(".deensimc-widget-card.pro-locked").hover(function(){e(this).css("transform","translateY(-2px)")},function(){e(this).css("transform","translateY(0)")});e(".deensimc-widget-card.pro-locked .deensimc-widget-toggle").on("click",function(e){e.stopPropagation()});e("#enable-all").on("click",function(){e('.deensimc-widget-card input[type="checkbox"]').each(function(){if(!e(this).is(":disabled")){e(this).prop("checked",true).trigger("change")}});t("All available widgets are enabled now","success")});e("#disable-all").on("click",function(){e('.deensimc-widget-card input[type="checkbox"]').each(function(){if(!e(this).is(":disabled")){e(this).prop("checked",false).trigger("change")}});t("All available widgets are disabled now!","info")});e(".deensimc-switch input").on("change",function(){if(e(this).is(":disabled")){return}const t=e(this).closest(".deensimc-widget-toggle").find(".deensimc-toggle-label");if(e(this).is(":checked")){t.text("Enabled").css("color","#00a32a")}else{t.text("Disabled").css("color","#d63638")}});e(".deensimc-switch input").each(function(){const t=e(this).closest(".deensimc-widget-toggle").find(".deensimc-toggle-label");if(e(this).is(":disabled")){t.text("Locked").css("color","#856404");return}if(e(this).is(":checked")){t.css("color","#00a32a")}else{t.text("Disabled").css("color","#d63638")}});e(".deensimc-addons-settings form").on("submit",function(t){const n=e(this).find("#submit");n.prop("disabled",true).val("Saving...")});const n=new URLSearchParams(window.location.search);if(n.get("settings-updated")==="true"){t("Settings saved successfully!","success");const e=window.location.pathname+window.location.search.replace(/[?&]settings-updated=true/,"").replace(/^&/,"?");window.history.replaceState({},"",e||window.location.pathname)}const i=function(){const t=e(".deensimc-widget-card input:checked:not(:disabled)").length;const n=e(".deensimc-widget-card").length;if(e("#widget-count").length===0){const i=`\n                    <div id="widget-count" style="margin-top: 15px; color: #646970; font-size: 13px;">\n                        <strong>${t}</strong> of <strong>${n}</strong> available widgets enabled\n                    </div>\n                `;e(".deensimc-description").after(i)}else{e("#widget-count").html(`<strong>${t}</strong> of <strong>${n}</strong> available widgets enabled`)}};i();e(".deensimc-widget-card input").on("change",i);e(document).on("keydown",function(t){if((t.ctrlKey||t.metaKey)&&t.which===83){t.preventDefault();e("form").submit()}});if(window.location.hash){const t=window.location.hash.substring(1);if(t==="widgets"||t==="general"){e('.deensimc-tab-btn[data-tab="'+t+'"]').click()}}e(".deensimc-tab-btn").on("click",function(){const t=e(this).data("tab");window.location.hash=t});e("form").on("submit",function(){e(".deensimc-settings-container").addClass("deensimc-loading")});let s=false;e("form input, form select, form textarea").on("change",function(){s=true});e("form").on("submit",function(){s=false});e(window).on("beforeunload",function(){if(s){return"You have unsaved changes. Are you sure you want to leave?"}})});e(".deensimc-enable-category").on("click",function(){const n=e(this).data("category");e(`.deensimc-widget-card[data-category="${n}"] input[type="checkbox"]`).each(function(){if(!e(this).is(":disabled")){e(this).prop("checked",true).trigger("change")}});t(`All ${n} items enabled successfully!`,"success")});e(".deensimc-disable-category").on("click",function(){const n=e(this).data("category");e(`.deensimc-widget-card[data-category="${n}"] input[type="checkbox"]`).each(function(){if(!e(this).is(":disabled")){e(this).prop("checked",false).trigger("change")}});t(`All ${n} items disabled successfully!`,"info")})})(jQuery);
     1(function(e){"use strict";function t(t,n="info"){e(".deensimc-notice").remove();const i=`deensimc-notice ${n}`;const c=e('<div class="'+i+'">'+t+"</div>");e("body").prepend(c);setTimeout(function(){c.fadeOut(300,function(){e(this).remove()})},3e3)}window.marqueeAddonsAdmin=window.marqueeAddonsAdmin||{};window.marqueeAddonsAdmin.showNotification=t;e(document).ready(function(){e(".deensimc-see-demo-btn").on("click",function(e){e.stopPropagation()});e(".deensimc-tab-btn").on("click",function(){const t=e(this).data("tab");e(".deensimc-tab-btn").removeClass("active");e(this).addClass("active");e(".deensimc-tab-content").removeClass("active");e("#tab-"+t).addClass("active")});e(".deensimc-widget-card").on("click",function(t){const n=e(this);if(!n.hasClass("deensimc-pro-locked")){return}const i=e(t.target);if(i.closest(".deensimc-widget-toggle").length>0||i.is("input")||i.is("label")||i.hasClass("deensimc-slider")||i.hasClass("deensimc-toggle-label")){return}const c=n.attr("data-pro-url");if(c&&c!==""&&c!=="undefined"){window.open(c,"_blank")}else{}});e(".deensimc-widget-card.pro-locked").css({cursor:"pointer",transition:"all 0.3s ease"}).attr("title","Click to upgrade to PRO");e(".deensimc-widget-card.pro-locked").hover(function(){e(this).css("transform","translateY(-2px)")},function(){e(this).css("transform","translateY(0)")});e(".deensimc-widget-card.pro-locked .deensimc-widget-toggle").on("click",function(e){e.stopPropagation()});e("#enable-all").on("click",function(){e('.deensimc-widget-card input[type="checkbox"]').each(function(){if(!e(this).is(":disabled")){e(this).prop("checked",true).trigger("change")}});t("All available widgets are enabled now","success")});e("#disable-all").on("click",function(){e('.deensimc-widget-card input[type="checkbox"]').each(function(){if(!e(this).is(":disabled")){e(this).prop("checked",false).trigger("change")}});t("All available widgets are disabled now!","info")});e(".deensimc-switch input").on("change",function(){setTimeout(()=>{e("#submit").click();e(".deensimc-widget-card").css({opacity:"0.5","pointer-events":"none"})},100)});e(".deensimc-addons-settings form").on("submit",function(t){const n=e(this).find("#submit");n.prop("disabled",true).val("Saving...")});const n=new URLSearchParams(window.location.search);if(n.get("settings-updated")==="true"){t("Settings saved successfully!","success");const e=window.location.pathname+window.location.search.replace(/[?&]settings-updated=true/,"").replace(/^&/,"?");window.history.replaceState({},"",e||window.location.pathname)}const i=function(){const t=e(".deensimc-widget-card input:checked:not(:disabled)").length;const n=e(".deensimc-widget-card").length;if(e("#widget-count").length===0){const i=`\n                    <div id="widget-count" style="margin-top: 15px; color: #646970; font-size: 13px;">\n                        <strong>${t}</strong> of <strong>${n}</strong> available widgets enabled\n                    </div>\n                `;e(".deensimc-description").after(i)}else{e("#widget-count").html(`<strong>${t}</strong> of <strong>${n}</strong> available widgets enabled`)}};i();e(".deensimc-widget-card input").on("change",i);e(document).on("keydown",function(t){if((t.ctrlKey||t.metaKey)&&t.which===83){t.preventDefault();e("form").submit()}});if(window.location.hash){const t=window.location.hash.substring(1);if(t==="widgets"||t==="general"){e('.deensimc-tab-btn[data-tab="'+t+'"]').click()}}e(".deensimc-tab-btn").on("click",function(){const t=e(this).data("tab");window.location.hash=t});let c=false;e("form input, form select, form textarea").on("change",function(){c=true});e("form").on("submit",function(){c=false});e(window).on("beforeunload",function(){if(c){return"You have unsaved changes. Are you sure you want to leave?"}})});e(".deensimc-enable-category").on("click",function(){const n=e(this).data("category");e(`.deensimc-widget-card[data-category="${n}"] input[type="checkbox"]`).each(function(){if(!e(this).is(":disabled")){e(this).prop("checked",true).trigger("change")}});t(`All ${n} items enabled successfully!`,"success")});e(".deensimc-disable-category").on("click",function(){const n=e(this).data("category");e(`.deensimc-widget-card[data-category="${n}"] input[type="checkbox"]`).each(function(){if(!e(this).is(":disabled")){e(this).prop("checked",false).trigger("change")}});t(`All ${n} items disabled successfully!`,"info")})})(jQuery);
  • marquee-addons-for-elementor/trunk/assets/js/handle-animation-duration.min.js

    r3413371 r3447763  
    1 (function(e,n){"use strict";function t(n){const t=n.find(".deensimc-marquee-main-container");const i=n.find(".deensimc-marquee-track");const a=t.data("is-marquee-on")??true;const c=t.data("marquee-speed");const s=!window.matchMedia("(max-width: 767px)").matches&&i.closest(".deensimc-marquee-vertical").length>0;if(a&&i.length){let n=0;i.each((e,t)=>{n+=s?t.scrollHeight:t.scrollWidth});const t=10;const a=c*t;const o=n/a;i.each((n,t)=>{e(t).css("animation-duration",`${o}s`)})}}window.handleAnimationDuration=t})(jQuery,window._);
     1(function(n,e){"use strict";function t(e){const t=e.find(".deensimc-marquee-main-container");const c=e.find(".deensimc-marquee-track");const i=t.data("is-marquee-on")??true;const s=t.data("marquee-speed");const a=c.closest(".deensimc-marquee-vertical").length>0;if(i&&c.length){let e=0;c.each((n,t)=>{e+=a?t.scrollHeight:t.scrollWidth});const t=10;const i=s*t;const o=e/i;c.each((e,t)=>{n(t).css("animation-duration",`${o}s`)})}}window.handleAnimationDuration=t})(jQuery,window._);
  • marquee-addons-for-elementor/trunk/base.php

    r3446507 r3447763  
    66{
    77    private static $_instance = null;
    8     const VERSION = '3.9.14';
     8    const VERSION = '3.9.15';
    99
    1010    public function __construct()
  • marquee-addons-for-elementor/trunk/includes/widget.php

    r3446507 r3447763  
    99    use Deensimcpro_Promo;
    1010
    11     const VERSION = '3.9.14';
     11    const VERSION = '3.9.15';
    1212    const MINIMUM_ELEMENTOR_VERSION = '3.5.0';
    1313    const MINIMUM_PHP_VERSION = '7.4';
     
    217217        echo '  </div>';
    218218        echo '  <div class="deensimc-notice-content">';
    219         echo '    <h3>Upgrade to Marquee Addons Pro</h3>';
    220         echo '    <p>Unlock more advance widgets and make your Elementor website 10x better with Marquee Addons.</p>';
    221         echo '    <a href="https://marqueeaddons.com/pricing/" target="_blank" class="button button-primary">Upgrade to Pro</a>';
     219        echo '    <h3>Enjoying Marquee Addons?</h3>';
     220        echo '    <p>A quick rating helps other Elementor users discover Marquee Addons. You can also share feature ideas or suggestions to help us improve.</p>';
     221        echo '    <div class="deensimc-btns">';
     222        echo '      <div class="deensimc-action-btns">';
    222223        echo '    <a href="https://wordpress.org/support/plugin/marquee-addons-for-elementor/reviews/#new-post" target="_blank" class="button button-primary">Rate Us</a>';
    223         echo '    <button class="button deensimc-dismiss-btn">Remind me later</button>';
    224         echo '    <button class="button deensimc-never-show">Don\'t show me again</button>';
     224        echo '    <a href="https://wordpress.org/support/plugin/marquee-addons-for-elementor/" target="_blank" class="button"> Feature Request</a>';
     225        echo '    <a href="https://marqueeaddons.com/pricing/" target="_blank" class="button">Upgrade to Pro</a>';
     226        echo '      </div>';
     227        echo '      <div class="deensimc-dismiss-btns">';
     228        echo '    <button class="button deensimc-dismiss-btn button-tertiary">Remind me later</button>';
     229        echo '    <button class="button deensimc-never-show button-tertiary">Don\'t show me again</button>';
     230        echo '      </div>';
     231        echo '    </div>';
    225232        echo '  </div>';
    226233        echo '</div>';
     
    429436            ]
    430437        );
    431        
     438
    432439        // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
    433440        if (!class_exists('\Deensimcpro_Marquee\Marqueepro') || !apply_filters('marquee_addons_is_license_active', false)) {
  • marquee-addons-for-elementor/trunk/includes/widgets/class-deensimc-text-marquee.php

    r3436552 r3447763  
    1919    use Deensimc_Promotional_Banner;
    2020    use Deensimc_Textmarquee_Content_Text_Repeater;
     21    use Deensimc_Textmarquee_Layout_Controls;
    2122    use Deensimc_Marquee_Controls;
    2223    use Deensimc_Textmarquee_Style_Text_Contents;
     
    6869        $this->content_text_repeater();
    6970        $this->register_marquee_control('deensimc_text_marquee_options');
    70 
    7171        $this->style_text_contents();
     72        $this->register_layout_controls();
    7273        $this->register_style_edge_shadow('deensimc_text_marquee_edge_shadow');
    7374    }
     
    134135        $settings = $this->get_settings_for_display();
    135136        $texts = $settings['deensimc_repeater_text_main'];
    136         $tag = self::validate_html_tag( $settings['deensimc_text_marquee_tag'] );
     137        $tag = self::validate_html_tag($settings['deensimc_text_marquee_tag']);
    137138
    138139        $is_vertical = $settings['deensimc_marquee_vertical_orientation'] === 'yes';
     
    177178            <div class="deensimc-marquee-track-wrapper">
    178179                <div class="deensimc-marquee-track">
    179                     <?php $this->render_marquee_texts($texts, $is_vertical, $tag,'track-1') ?>
     180                    <?php $this->render_marquee_texts($texts, $is_vertical, $tag, 'track-1') ?>
    180181                </div>
    181182                <div aria-hidden="true" class="deensimc-marquee-track">
  • marquee-addons-for-elementor/trunk/includes/widgets/traits/text-marquee/style-text-contents.php

    r3420892 r3447763  
    8181
    8282        $this->end_controls_tabs();
    83 
    84         $this->add_responsive_control(
    85             'deensimc_widget_height',
    86             [
    87                 'label' => esc_html__('Section Height', 'marquee-addons-for-elementor'),
    88                 'type' =>  Controls_Manager::SLIDER,
    89                 'size_units' => ['vh'],
    90                 'range' => [
    91                     'vh' => [
    92                         'min' => 1,
    93                         'max' => 100,
    94                         'step' => 1,
    95                     ],
    96                 ],
    97 
    98                 'default' => [
    99                     'unit' => 'vh',
    100                     'size' => 60,
    101                 ],
    102                 'condition' => [
    103                     'deensimc_marquee_vertical_orientation' => 'yes',
    104                 ],
    105                 'selectors' => [
    106                     '{{WRAPPER}} .deensimc-marquee-vertical.deensimc-marquee-main-container' => 'height: {{SIZE}}vh;',
    107                 ],
    108             ]
    109         );
    11083
    11184
     
    213186            ]
    214187        );
    215 
    216         $this->add_responsive_control(
    217             'deensimc_icon_adjust_vertical_position',
    218             [
    219                 'label' => esc_html__('Adjust Vertical Position', 'marquee-addons-for-elementor'),
    220                 'type' => Controls_Manager::SLIDER,
    221                 'size_units' => ['px', 'em', 'rem'],
    222                 'range' => [
    223                     'px' => [
    224                         'min' => -16,
    225                         'max' => 16,
    226                         'step' => 1,
    227                     ],
    228                     'em' => [
    229                         'min' => -1,
    230                         'max' => 1,
    231                         'step' => 0.1,
    232                     ],
    233                     'rem' => [
    234                         'min' => -1,
    235                         'max' => 1,
    236                         'step' => 0.1,
    237                     ],
    238                 ],
    239                 'default' => [
    240                     'unit' => 'px',
    241                     'size' => 0,
    242                 ],
    243                 'selectors' => [
    244                     '{{WRAPPER}} .deensimc-text-wrapper svg' => 'margin-block: {{SIZE}}{{UNIT}};',
    245                     '{{WRAPPER}} .deensimc-text-wrapper i' => 'margin-block: {{SIZE}}{{UNIT}};',
    246                 ],
    247                 'condition' => [
    248                     'deensimc_marquee_vertical_orientation' => 'yes',
    249                 ],
    250             ]
    251         );
    252188        // animation 
    253189        $this->add_control(
  • marquee-addons-for-elementor/trunk/marquee-addons-for-elementor.php

    r3446507 r3447763  
    44 * Plugin Name: Marquee Addons for Elementor - Essential Motion Widgets & Templates
    55 * Description: Marquee Addons an Elementor addon to create smooth, endless marquee carousels, showcases images, logos, or content with dynamic movement to engage visitors. It also allows you to create image accordions, stacked sliders, and text marquees.
    6  * Version: 3.9.14
     6 * Version: 3.9.15
    77 * Requires at least: 5.8
    88 * Requires PHP: 7.4
     
    2626define('DEENSIMC_PATH', plugin_dir_path(__FILE__));
    2727define('DEENSIMC_ASSETS_URL', DEENSIMC_URL . 'assets/');
    28 define('DEENSIMC_VERSION', '3.9.14');
     28define('DEENSIMC_VERSION', '3.9.15');
    2929
    3030function deensimc_load_plugin_data(): void
  • marquee-addons-for-elementor/trunk/readme.txt

    r3446507 r3447763  
    44Requires at least: 5.8
    55Tested up to: 6.9
    6 Stable tag: 3.9.14
     6Stable tag: 3.9.15
    77Requires PHP: 7.4
    88License: GPLv2 or later
     
    266266== Changelog ==
    267267
     268= 3.9.15 - 2026-01-25 =
     269- Fix: Fixed an issue where animation speed increased on mobile.
     270- New: Separated the Section Height control for Vertical Text Marquee for improved structure.
     271- Fix: Removed the Icon Adjust Vertical Position control.
     272- New: Implemented widget enable/disable functionality on toggle change for better user control.
     273
    268274= 3.9.14 - 2026-01-25 =
    269275- Fix: Render only valid images in the gallery in Image Marquee.
    270 - Fix: Removed extra whitespace testimonial card in Testimonial marquee.
     276- Fix: Removed extra whitespace from testimonial card in Testimonial marquee.
    271277
    272278= 3.9.13 - 2026-01-24 =
Note: See TracChangeset for help on using the changeset viewer.