OoohBoi Steroids for Elementor - Version 1.4.6

Version Description

  • New feature added, Shadough
  • Teleporter - fix for the content width not being 100%
  • Teleporter - fix for content animation when "Teleport to parent" inactive
Download this release

Release Info

Developer ooohboi
Plugin Icon 128x128 OoohBoi Steroids for Elementor
Version 1.4.6
Comparing to
See all releases

Version 1.4.6

assets/css/editor.css ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Elementor editor styles should go here */
2
+
3
+ .elementor-control-_ob_steroids_background_overlay .elementor-panel-heading-title:after,
4
+ .elementor-control-_ob_overlaiz_plugin_title:after,
5
+ .elementor-control-_ob_harakiri_plugin_title:after,
6
+ .elementor-control-_ob_paginini_plugin_title:after,
7
+ .elementor-control-_ob_photogiraffe_plugin_title:after,
8
+ .elementor-control-_ob_bbad_section_title:after,
9
+ .elementor-control-_ob_bbad_column_title:after,
10
+ .elementor-control-_ob_teleporter_plugin_title:after,
11
+ .elementor-control-_ob_cartshut_plugin_title:after,
12
+ .elementor-control-_ob_searchcop_plugin_title:after,
13
+ .elementor-control-_ob_videomasq_plugin_title:after,
14
+ .elementor-control-_ob_butterbutton:after,
15
+ .elementor-control-_ob_perspektive:after,
16
+ .elementor-control-_ob_shadough:after {
17
+ content: "";
18
+ position: absolute;
19
+ height: 20px;
20
+ width: 20px;
21
+ top: 10px;
22
+ right: 20px;
23
+ background-image: url("../img/ooohboi-poopart-icon.png");
24
+ background-position: center center;
25
+ background-size: cover;
26
+ z-index: 1;
27
+ }
28
+ .rtl .elementor-control-_ob_steroids_background_overlay .elementor-panel-heading-title:after,
29
+ .rtl .elementor-control-_ob_overlaiz_plugin_title:after,
30
+ .rtl .elementor-control-_ob_harakiri_plugin_title:after,
31
+ .rtl .elementor-control-_ob_paginini_plugin_title:after,
32
+ .rtl .elementor-control-_ob_photogiraffe_plugin_title:after,
33
+ .rtl .elementor-control-_ob_bbad_section_title:after,
34
+ .rtl .elementor-control-_ob_bbad_column_title:after,
35
+ .rtl .elementor-control-_ob_teleporter_plugin_title:after,
36
+ .rtl .elementor-control-_ob_cartshut_plugin_title:after,
37
+ .rtl .elementor-control-_ob_searchcop_plugin_title:after,
38
+ .rtl .elementor-control-_ob_videomasq_plugin_title:after,
39
+ .rtl .elementor-control-_ob_butterbutton:after,
40
+ .rtl .elementor-control-_ob_perspektive:after,
41
+ .rtl .elementor-control-_ob_shadough:after {
42
+ left: 20px;
43
+ right: unset;
44
+ }
45
+ .ob-is-breaking-bad.elementor-top-section > .elementor-container > .elementor-row,
46
+ .ob-is-breaking-bad.elementor-inner-section > .elementor-container > .elementor-row {
47
+ flex-wrap: wrap;
48
+ }
49
+
50
+ /* MISC */
51
+ div[class*="_ob_sponsorship"] * {
52
+ transition: none;
53
+ border: none;
54
+ }
55
+ div[class*="_ob_sponsorship"] {
56
+ padding-top: 15px;
57
+ border-top: 2px dashed rgba(0,0,0,0.1);
58
+ }
59
+ div[class*="_ob_sponsorship"] a {
60
+ display: block;
61
+ line-height: 0;
62
+ }
63
+ div[class*="_ob_sponsorship"] a:hover {
64
+ text-decoration: none;
65
+ border: none;
66
+ }
assets/css/index.php ADDED
File without changes
assets/css/main.css ADDED
@@ -0,0 +1,193 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Default add-on styles. Please note that these might get overwritten by compiler */
2
+ .ob-has-background-overlay > .elementor-widget-container {
3
+ position: relative;
4
+ }
5
+ .ob-has-background-overlay > .elementor-widget-container:before {
6
+ content: "";
7
+ position: absolute;
8
+ top: 0;
9
+ left: 0;
10
+ width: 100%;
11
+ height: 100%;
12
+ z-index: -1;
13
+ pointer-events: none;
14
+ }
15
+ .ob-has-background-overlay > .elementor-widget-container:after {
16
+ content: "";
17
+ position: absolute;
18
+ top: 0;
19
+ left: 0;
20
+ width: 100%;
21
+ height: 100%;
22
+ z-index: -1;
23
+ pointer-events: none;
24
+ }
25
+
26
+ /* flex section */
27
+ .ob-is-breaking-bad.elementor-top-section > .elementor-container > .elementor-row,
28
+ .ob-is-breaking-bad.elementor-inner-section > .elementor-container > .elementor-row,
29
+ .ob-is-breaking-bad.elementor-top-section > .elementor-container,
30
+ .ob-is-breaking-bad.elementor-inner-section > .elementor-container {
31
+ flex-wrap: wrap;
32
+ }
33
+
34
+ /* GLIDER */
35
+ .ob-is-glider .elementor-container > .elementor-row.swiper-wrapper,
36
+ .ob-is-glider .elementor-container > .swiper-wrapper {
37
+ flex-wrap: nowrap !important;
38
+ }
39
+ .ob-is-glider .elementor-container > .elementor-row.swiper-wrapper > .elementor-element.elementor-column,
40
+ .ob-is-glider .elementor-container > .swiper-wrapper > .elementor-element.elementor-column {
41
+ width: 100%;
42
+ }
43
+ .ob-is-glider .elementor-container.swiper-container-vertical > .elementor-row.swiper-wrapper > .swiper-slide,
44
+ .ob-is-glider .elementor-container.swiper-container-vertical > .swiper-wrapper > .swiper-slide {
45
+ width: 100% !important;
46
+ }
47
+ .ob-is-glider .swiper-slide a.elementor-button {
48
+ display: inline-block;
49
+ }
50
+ .ob-is-glider .swiper-button-prev,
51
+ .ob-is-glider .swiper-button-next {
52
+ z-index: 12;
53
+ transition: all 0.25s ease;
54
+ }
55
+ .ob-is-glider .swiper-button-prev {
56
+ background-image: none;
57
+ }
58
+ .ob-is-glider .swiper-button-next {
59
+ background-image: none;
60
+ }
61
+
62
+ /* TELEPORTER */
63
+ .ob-is-teleporter .widget-wrap-children {
64
+ width: 100%;
65
+ }
66
+ .elementor-column.ob-is-teleporter .widget-wrap-children {
67
+ position: relative;
68
+ }
69
+ .elementor-column.ob-is-teleporter .elementor-widget-wrap,
70
+ .elementor-column.ob-is-teleporter .elementor-widget-wrap > .widget-wrap-children {
71
+ transition: all 0.25s ease;
72
+ }
73
+ div[class*='ob-teleporter-'] {
74
+ position: absolute;
75
+ top: 0;
76
+ left: 0;
77
+ width: 100%;
78
+ height: 100%;
79
+ opacity: 0;
80
+ }
81
+
82
+ .ob-tele-eff-fade {
83
+ transition: opacity 0.45s ease;
84
+ }
85
+ .ob-tele-eff-zoom {
86
+ transform: scale(1.2);
87
+ transition: opacity 0.35s ease, transform 0.45s cubic-bezier(0.1, 0, 0, 1);
88
+ }
89
+ .ob-tele-eff-stutter {
90
+ transform: scale(1.25);
91
+ transition: opacity 0.45s ease, transform 0.35s cubic-bezier(0.755, 0.05, 0.855, 0.06);
92
+ }
93
+ .elementor-column.ob-is-teleporter > .ob-teleporter-hover.ob-tele-eff-zoom {
94
+ transform: scale(1.2);
95
+ }
96
+ .elementor-column.ob-is-teleporter > .ob-teleporter-hover.ob-tele-eff-stutter {
97
+ transform: scale(1.25);
98
+ }
99
+
100
+ .elementor-section.ob-tele-mom-hover .ob-teleporter-hover,
101
+ .elementor-container.ob-tele-mom-hover .ob-teleporter-hover,
102
+ .elementor-column.ob-is-teleporter .ob-teleporter-hover {
103
+ opacity: 1;
104
+ transform: scale(1);
105
+ }
106
+ .elementor-column.ob-is-teleporter > .ob-teleporter-hover {
107
+ opacity: 0;
108
+ }
109
+ .elementor-section div.ob-tele-overlay,
110
+ .elementor-container div.ob-tele-overlay {
111
+ width: 100%;
112
+ height: 100%;
113
+ }
114
+ .elementor-section.ob-tele-mom-hover:hover {
115
+ background-image: none !important;
116
+ }
117
+ [data-elementor-device-mode="tablet"] .elementor-column.ob-tele-no-tablet div[class*='ob-teleporter-'],
118
+ [data-elementor-device-mode="mobile"] .elementor-column.ob-tele-no-mobile div[class*='ob-teleporter-'] {
119
+ opacity: 1;
120
+ transform: scale(1);
121
+ }
122
+ .ob-chrome-resize,
123
+ .ob-chrome-resize .elementor-column-wrap,
124
+ .ob-chrome-resize.ob-is-e3 .elementor-widget-wrap {
125
+ height: unset !important;
126
+ overflow: visible !important;
127
+ }
128
+ .ob-chrome-resize .elementor-widget-wrap,
129
+ .ob-chrome-resize.ob-is-e3 .elementor-widget-wrap > .widget-wrap-children {
130
+ height: fit-content;
131
+ top: unset !important;
132
+ }
133
+
134
+ /* BUTTER BUTTON*/
135
+ .ob-is-butterbutton .elementor-button-wrapper {
136
+ position: relative;
137
+ line-height: 0;
138
+ z-index: 1;
139
+ }
140
+ .ob-is-butterbutton .elementor-button-wrapper > .elementor-button {
141
+ position: relative;
142
+ overflow: hidden;
143
+ background-color: transparent;
144
+ }
145
+ .ob-is-butterbutton .elementor-button-wrapper > .elementor-button:hover {
146
+ background-color: transparent;
147
+ }
148
+ .ob-is-butterbutton .elementor-button-wrapper > .elementor-button:before {
149
+ background-color: #000000;
150
+ }
151
+ .ob-is-butterbutton .elementor-button-wrapper > .elementor-button:after {
152
+ background-color: #F2F3F4;
153
+ }
154
+ .ob-is-butterbutton .elementor-button {
155
+ transition: box-shadow 0.25s ease, border-radius 0.25s ease, border-width 0.25s ease, border-color 0.25s ease;
156
+ }
157
+ .ob-is-butterbutton .elementor-button:before,
158
+ .ob-is-butterbutton .elementor-button:after {
159
+ transition: opacity 0.25s ease;
160
+ }
161
+ .ob-is-butterbutton .elementor-button .elementor-button-content-wrapper span {
162
+ transition: text-shadow 0.25s ease;
163
+ }
164
+ .ob-is-butterbutton .elementor-button .elementor-button-content-wrapper {
165
+ align-items: center;
166
+ }
167
+ .ob-is-butterbutton .elementor-button:before,
168
+ .ob-is-butterbutton .elementor-button:after {
169
+ content: "";
170
+ position: absolute;
171
+ width: 100%;
172
+ height: 100%;
173
+ top: 0;
174
+ left: 0;
175
+ }
176
+ .ob-is-butterbutton .elementor-button:before {
177
+ z-index: -1;
178
+ }
179
+ .ob-is-butterbutton .elementor-button:after {
180
+ z-index: -2;
181
+ opacity: 0;
182
+ }
183
+ .ob-is-butterbutton .elementor-button:hover::before {
184
+ opacity: 0;
185
+ }
186
+ .ob-is-butterbutton .elementor-button:hover::after {
187
+ opacity: 1;
188
+ }
189
+
190
+ /* wooc */
191
+ .button[class*='product_type'] {
192
+ transition: all 0.25s ease;
193
+ }
assets/css/preview.css ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Elementor preview styles should go here */
2
+
3
+ div[class*="ob-harakiri-vertical"] .elementor-editor-widget-settings .elementor-editor-element-setting {
4
+ height: 26px;
5
+ background-color: #ff4ee3;
6
+ }
7
+
8
+ div[class*="ob-harakiri-vertical"] .elementor-editor-widget-settings .elementor-editor-element-setting:not(:hover) {
9
+ background-image: -webkit-gradient(linear,left bottom,left top,from(#dd3fcd),to(#ff4ee3));
10
+ background-image: -webkit-linear-gradient(bottom,#dd3fcd,#ff4ee3);
11
+ background-image: -o-linear-gradient(bottom,#dd3fcd,#ff4ee3);
12
+ background-image: linear-gradient(0deg,#dd3fcd,#ff4ee3);
13
+ }
14
+
15
+ .elementor-edit-area-active div[class*="ob-harakiri-vertical"].elementor-widget.elementor-element-edit-mode:hover,
16
+ .elementor-edit-area-active div[class*="ob-harakiri-vertical"].elementor-widget.elementor-element-editable {
17
+ -webkit-box-shadow: 0 0 0 1px #ff4ee3;
18
+ box-shadow: 0 0 0 1px#ff4ee3;
19
+ }
20
+
21
+ .elementor-edit-area-active .ob-has-background-overlay .elementor-widget-container:before,
22
+ .elementor-edit-area-active .ob-has-background-overlay .elementor-widget-container:after {
23
+ z-index: -1;
24
+ }
25
+ /* GLIDER */
26
+ .elementor-edit-area-active .ob-is-glider .elementor-container > .elementor-row.swiper-wrapper,
27
+ .elementor-edit-area-active .ob-is-glider .elementor-container > .swiper-wrapper {
28
+ flex-wrap: nowrap !important;
29
+ }
30
+ .elementor-edit-area-active .ob-is-glider .elementor-container > .elementor-row.swiper-wrapper > .elementor-element.elementor-column,
31
+ .elementor-edit-area-active .ob-is-glider .elementor-container > .swiper-wrapper > .elementor-element.elementor-column {
32
+ width: 100%;
33
+ }
34
+ .elementor-edit-area-active .ob-is-glider .elementor-container.swiper-container-vertical > .elementor-row.swiper-wrapper > .swiper-slide,
35
+ .elementor-edit-area-active .ob-is-glider .elementor-container.swiper-container-vertical > .swiper-wrapper > .swiper-slide {
36
+ width: 100% !important;
37
+ }
38
+ .elementor-edit-area-active .ob-is-glider .swiper-slide a.elementor-button {
39
+ display: inline-block;
40
+ }
41
+ .elementor-edit-area-active .ob-is-glider .swiper-button-prev,
42
+ .elementor-edit-area-active .ob-is-glider .swiper-button-next {
43
+ z-index: 12;
44
+ background-image: none;
45
+ transition: all 0.25s ease;
46
+ }
assets/img/banner-pre.png ADDED
Binary file
assets/img/ooohboi-poopart-icon.png ADDED
Binary file
assets/js/index.php ADDED
File without changes
assets/js/ooohboi-steroids-min.js ADDED
@@ -0,0 +1 @@
 
1
+ "use strict";!function(e,t){var o=e(t);o.on("elementor/frontend/init",(function(){var t=elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.initPoopArtPerspektive()},initPoopArtPerspektive:function(){this.isEdit&&(this.$element.addClass("ob-has-background-overlay"),"yes"===this.getElementSettings("_ob_perspektive_use")&&this.$element.addClass("ob-use-perspektive"))},onElementChange:function(e){"_ob_perspektive_use"===e&&("yes"===this.getElementSettings("_ob_perspektive_use")?this.$element.addClass("ob-use-perspektive"):this.$element.removeClass("ob-use-perspektive"))},isPerspektive:function(){return this.$element.hasClass("ob-use-perspektive")}}),r=elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.initHarakiri()},initHarakiri:function(){this.isEdit&&"inherit"!==this.getElementSettings("_ob_harakiri_writing_mode")&&this.$element.addClass("ob-harakiri")},onElementChange:function(e){"_ob_harakiri_writing_mode"===e&&("inherit"!==this.getElementSettings("_ob_harakiri_writing_mode")?this.$element.addClass("ob-harakiri"):this.$element.removeClass("ob-harakiri"))}}),s={widget:t,"heading.default":r,"text-editor.default":r,section:elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.initSectionExtends()},isBreakingBad:function(){return this.$element.hasClass("ob-is-breaking-bad")},isGlider:function(){return this.$element.hasClass("ob-is-glider")},onElementChange:function(e){"_ob_bbad_use_it"===e&&("yes"===this.getElementSettings("_ob_bbad_use_it")?this.$element.addClass("ob-is-breaking-bad"):this.$element.removeClass("ob-is-breaking-bad")),"_ob_glider_is_slider"===e&&("yes"===this.getElementSettings("_ob_glider_is_slider")?(this.$element.addClass("ob-is-glider"),this.addClassesRouteGlider(".elementor-element-"+this.$element.attr("data-id"),"addClass"),this.initSwiperElements()):"yes"!=this.getElementSettings("_ob_glider_is_slider")&&(this.$element.removeClass("ob-is-glider"),this.addClassesRouteGlider(".elementor-element-"+this.$element.attr("data-id"),"removeClass")))},addClassesRouteGlider:function(t,o){var n=e(t).children(".elementor-container").first();n.length&&n.addClass("swiper-container");var r=e(n).children(".elementor-row").first();r.length&&"addClass"==o?(r.addClass("swiper-wrapper"),e(r).children("div.elementor-column").addClass("swiper-slide")):(e(n).children("div.elementor-column").wrapAll('<div class="swiper-wrapper" />'),e(n).children(".swiper-wrapper").first().children("div.elementor-column").addClass("swiper-slide")),r.length&&"removeClass"==o?(r.removeClass("swiper-wrapper"),e(r).children("div.elementor-column").removeClass("swiper-slide")):(e(n).children("div.elementor-column").unwrap(),e(n).children("div.elementor-column").removeClass("swiper-slide"))},initSectionExtends:function(){this.isEdit?("yes"!==this.getElementSettings("_ob_bbad_use_it")||this.isBreakingBad()||this.$element.addClass("ob-is-breaking-bad"),"yes"===this.getElementSettings("_ob_glider_is_slider")&&(this.$element.addClass("ob-is-glider"),this.addClassesRouteGlider(".elementor-element-"+this.$element.attr("data-id"),"addClass"),this.initSwiperElements())):"yes"===this.getElementSettings("_ob_glider_is_slider")&&(this.$element.addClass("ob-is-glider"),this.addClassesRouteGlider(".elementor-element-"+this.$element.attr("data-id"),"addClass"),this.initSwiperElements())},initSwiperElements:function(){this.$element.children(".elementor-container .swiper-button-next").first().length||this.$element.children(".elementor-container").first().append('<div class="swiper-button-next"><svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMin" viewBox="0 0 27 44"><path d="M27 22L5 44l-2.1-2.1L22.8 22 2.9 2.1 5 0l22 22z"></path></svg></div>'),this.$element.children(".elementor-container .swiper-button-prev").first().length||this.$element.children(".elementor-container").first().append('<div class="swiper-button-prev"><svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMin" viewBox="0 0 27 44"><path d="M0 22L22 0l2.1 2.1L4.2 22l19.9 19.9L22 44 0 22z"></path></svg></div>'),this.$element.children(".elementor-container .swiper-pagination").first().length||this.$element.children(".elementor-container").first().append('<div class="swiper-pagination"></div>');var e={};e.pagination_type=this.getElementSettings("_ob_glider_pagination_type"),e.allowTouchMove=this.getElementSettings("_ob_glider_allow_touch_move"),e.autoheight=this.getElementSettings("_ob_glider_auto_h"),e.effect=this.getElementSettings("_ob_glider_effect"),e.loop=this.getElementSettings("_ob_glider_loop"),e.direction=this.getElementSettings("_ob_glider_direction"),e.parallax=this.getElementSettings("_ob_glider_parallax"),e.speed=this.getElementSettings("_ob_glider_speed");var t=this.getElementSettings("_ob_glider_autoplay");e.autoplay=!!t&&{delay:this.getElementSettings("_ob_glider_autoplay_delay")},n(this.$element.attr("data-id"),e)}}),column:elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.$element.find(".elementor-column-wrap").first().length||this.$element.addClass("ob-is-e3");var e=navigator.userAgent.toLowerCase();e.indexOf("chrome")>-1&&this.teleporterChromeResize(),this.initColumnExtends()},teleporterChromeResize:function(){if(this.isTeleporter()){var e=this,t=this.$element.attr("data-id");o.on("resize",(function(){e.$element.closest(".ob-is-teleporter").addClass("ob-chrome-resize"),clearTimeout(t),t=setTimeout((function(){var t=parseInt(e.$element.closest(".ob-is-teleporter").css("height")),o=e.$element.find(".elementor-column-wrap").first();o.length?o.css({height:t}):e.$element.find(".elementor-widget-wrap").first().css({height:t}),e.$element.closest(".ob-is-teleporter").removeClass("ob-chrome-resize")}),500)})),o.trigger("resize")}},isTeleporter:function(){return this.$element.hasClass("ob-is-teleporter")},initColumnExtends:function(){this.isEdit&&"use-teleporter"===this.getElementSettings("_ob_teleporter_use")&&(this.$element.addClass("ob-is-teleporter"),this.$element.find(".elementor-widget-wrap").first().addClass("ob-tele-midget"),this.doTeleporterEditor()),!this.isEdit&&this.isTeleporter()&&(this.$element.find(".elementor-widget-wrap").first().addClass("ob-tele-midget"),this.doTeleporter())},onElementChange:function(e){"_ob_teleporter_overlay_color"===e?this.$element.find('div[class*="ob-teleporter-"] > .ob-tele-overlay').css("background-color",this.getElementSettings("_ob_teleporter_overlay_color")):"_ob_teleporter_no_pass_tablet"===e?"no-tablet"===this.getElementSettings("_ob_teleporter_no_pass_tablet")?this.$element.addClass("ob-tele-no-tablet"):this.$element.removeClass("ob-tele-no-tablet"):"_ob_teleporter_no_pass_mobile"===e&&("no-mobile"===this.getElementSettings("_ob_teleporter_no_pass_mobile")?this.$element.addClass("ob-tele-no-mobile"):this.$element.removeClass("ob-tele-no-mobile"))},doTeleporterEditor:function(){if("use-teleporter"===this.getElementSettings("_ob_teleporter_use")){var t=this.$element.find(".elementor-widget-wrap").first();if(t.length&&(t.wrapInner('<div class="widget-wrap-children" />'),t.find(".elementor-background-overlay").first().length&&t.find(".elementor-background-overlay").first().insertBefore(t.find(".elementor-background-overlay").first().parent())),"do-pass"===this.getElementSettings("_ob_teleporter_pass")){var o=this,n=this.$element,r=this.$element.attr("data-id");"no-tablet"===this.getElementSettings("_ob_teleporter_no_pass_tablet")&&this.$element.addClass("ob-tele-no-tablet"),"no-mobile"===this.getElementSettings("_ob_teleporter_no_pass_mobile")&&this.$element.addClass("ob-tele-no-mobile");var s="section"===this.getElementSettings("_ob_teleporter_pass_element")?this.$element.closest(".elementor-section"):this.$element.closest(".elementor-container");if(s.length){s.css("overflow","hidden");var i=this.getElementSettings("_ob_teleporter_pass_effect"),l='<div class="ob-teleporter-'+r+" ob-tele-eff-"+i+'" data-id-teleporter="'+r+'"><div class="ob-tele-overlay" style="background-color: '+this.getElementSettings("_ob_teleporter_overlay_color")+';"></div></div>';e(".ob-teleporter-"+r).length||this.$element.prepend(l),this.$element.off("mouseenter mouseleave"),this.$element.on("mouseenter mouseleave",(function(t){if("mouseenter"===t.type){if("no-tablet"===o.getElementSettings("_ob_teleporter_no_pass_tablet")&&"tablet"===elementorFrontend.getCurrentDeviceMode())return;if("no-mobile"===o.getElementSettings("_ob_teleporter_no_pass_mobile")&&"mobile"===elementorFrontend.getCurrentDeviceMode())return;if("do-pass"!==o.getElementSettings("_ob_teleporter_pass"))return;var i={"background-color":e(".ob-teleporter-"+r).css("background-color"),"background-image":e(".ob-teleporter-"+r).css("background-image"),"background-position":e(".ob-teleporter-"+r).css("background-position"),"background-size":e(".ob-teleporter-"+r).css("background-size"),"background-repeat":e(".ob-teleporter-"+r).css("background-repeat")};if("section"===o.getElementSettings("_ob_teleporter_pass_element")){var l=s.children().not(".elementor-container").detach();s.addClass("ob-tele-mom-hover").prepend(e(".ob-teleporter-"+r)),s.prepend(l)}else s.addClass("ob-tele-mom-hover").prepend(e(".ob-teleporter-"+r));e(".ob-teleporter-"+r).css(i).hide(),e(".ob-teleporter-"+r).addClass("ob-teleporter-hover").show()}else s.removeClass("ob-tele-mom-hover"),setTimeout((function(){e(".ob-teleporter-"+r).removeAttr("style").removeClass("ob-teleporter-hover"),n.prepend(e(".ob-teleporter-"+r))}),100)}))}}}},doTeleporter:function(){var t=e.parseJSON(this.$element.attr("data-settings"));if("use-teleporter"===t._ob_teleporter_use){var o=this.$element.find(".elementor-widget-wrap").first();if(o.length&&(o.wrapInner('<div class="widget-wrap-children" />'),o.find(".elementor-background-overlay").first().length&&o.find(".elementor-background-overlay").first().insertBefore(o.find(".elementor-background-overlay").first().parent())),"do-pass"===t._ob_teleporter_pass){var n=this.$element,r=this.$element.attr("data-id");"no-tablet"===t._ob_teleporter_no_pass_tablet&&this.$element.addClass("ob-tele-no-tablet"),"no-mobile"===t._ob_teleporter_no_pass_mobile&&this.$element.addClass("ob-tele-no-mobile");var s="section"===t._ob_teleporter_pass_element?this.$element.closest(".elementor-section"):this.$element.closest(".elementor-container");if(s.length){s.css("overflow","hidden");var i=t._ob_teleporter_pass_effect,l='<div class="ob-teleporter-'+r+" ob-tele-eff-"+i+'" data-id-teleporter="'+r+'"><div class="ob-tele-overlay" style="background-color: '+t._ob_teleporter_overlay_color+';"></div>';if(e(".ob-teleporter-"+r).length||this.$element.prepend(l),this.$element.off("mouseenter mouseleave"),this.$element.on("mouseenter",(function(){if(!("no-tablet"===t._ob_teleporter_no_pass_tablet&&"tablet"===elementorFrontend.getCurrentDeviceMode()||"no-mobile"===t._ob_teleporter_no_pass_mobile&&"mobile"===elementorFrontend.getCurrentDeviceMode())){var o={"background-color":e(".ob-teleporter-"+r).css("background-color"),"background-image":e(".ob-teleporter-"+r).css("background-image"),"background-position":e(".ob-teleporter-"+r).css("background-position"),"background-size":e(".ob-teleporter-"+r).css("background-size"),"background-repeat":e(".ob-teleporter-"+r).css("background-repeat")};if("section"===t._ob_teleporter_pass_element){var n=s.children().not(".elementor-container").detach();s.addClass("ob-tele-mom-hover").prepend(e(".ob-teleporter-"+r)),s.prepend(n)}else s.addClass("ob-tele-mom-hover").prepend(e(".ob-teleporter-"+r));e(".ob-teleporter-"+r).css(o).hide(),e(".ob-teleporter-"+r).show().addClass("ob-teleporter-hover")}})),this.$element.on("mouseleave",(function(){s.removeClass("ob-tele-mom-hover"),setTimeout((function(){e(".ob-teleporter-"+r).removeAttr("style").removeClass("ob-teleporter-hover"),n.prepend(e(".ob-teleporter-"+r))}),100)})),void 0!==t._ob_teleporter_link){var a=t._ob_teleporter_link;if(""===a.url)return;this.$element.off("click.obTeleporter"),this.$element.on("click.obTeleporter",(function(){a.is_external?window.open(a.url):location.href=a.url}))}}}}}}),"search-form.default":elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.initSearchCop()},onElementChange:function(e){"_ob_searchcop_srch_options"===e&&this.routeSearchCop()},initSearchCop:function(){this.routeSearchCop()},routeSearchCop:function(){var e=this.getElementSettings("_ob_searchcop_srch_options");if("post"===e||"page"===e){var t=this.$element.find(".elementor-search-form__container");if(!t.length)return;var o='<input type="hidden" name="post_type" value="'+e+'" />';t.prepend(o)}}}),"button.default":elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.initButterButton()},isButterButton:function(){return this.$element.hasClass("ob-is-butterbutton")},onElementChange:function(e){"_ob_butterbutton_use_it"===e&&this.routeButterButton()},initButterButton:function(){this.isEdit&&"yes"===this.getElementSettings("_ob_butterbutton_use_it")&&this.$element.addClass("ob-is-butterbutton")},routeButterButton:function(){this.isButterButton()||"yes"!==this.getElementSettings("_ob_butterbutton_use_it")?this.$element.removeClass("ob-is-butterbutton"):this.$element.addClass("ob-is-butterbutton")}})};e.each(s,(function(e,t){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,(function(e){elementorFrontend.elementsHandler.addHandler(t,{$element:e})}))}))}));var n=function(e,t){new Swiper(".elementor-element-"+e+" .swiper-container",{allowTouchMove:"yes"===t.allowTouchMove,autoHeight:"yes"===t.autoheight,effect:t.effect,loop:t.loop,direction:"fade"===t.effect?"horizontal":t.direction,parallax:"yes"===t.parallax,speed:t.speed,navigation:{nextEl:".elementor-element-"+e+" .swiper-button-next",prevEl:".elementor-element-"+e+" .swiper-button-prev"},pagination:{el:".elementor-element-"+e+" .swiper-pagination",type:t.pagination_type,clickable:!0},autoplay:t.autoplay,watchOverflow:!0})}}(jQuery,window);
assets/js/ooohboi-steroids.js ADDED
@@ -0,0 +1,575 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Elementor hooks - editor - frontend */
2
+
3
+ 'use strict';
4
+
5
+ ( function ( $, w ) {
6
+
7
+ var $window = $( w );
8
+
9
+ $window.on( 'elementor/frontend/init', function() {
10
+
11
+ var PoopArtPerspektive = elementorModules.frontend.handlers.Base.extend( {
12
+
13
+ onInit: function() {
14
+
15
+ elementorModules.frontend.handlers.Base.prototype.onInit.apply( this, arguments );
16
+ this.initPoopArtPerspektive();
17
+
18
+ },
19
+
20
+ initPoopArtPerspektive: function() {
21
+
22
+ if( this.isEdit ) {
23
+ this.$element.addClass( 'ob-has-background-overlay' ); // PoopArt
24
+ // Perspektive
25
+ if( 'yes' === this.getElementSettings( '_ob_perspektive_use' ) ) {
26
+ this.$element.addClass( 'ob-use-perspektive' );
27
+ }
28
+ }
29
+
30
+ },
31
+
32
+ onElementChange: function( changedProp ) {
33
+
34
+ if( changedProp === '_ob_perspektive_use' ) {
35
+ if( 'yes' === this.getElementSettings( '_ob_perspektive_use' ) ) this.$element.addClass( 'ob-use-perspektive' );
36
+ else this.$element.removeClass( 'ob-use-perspektive' );
37
+ }
38
+
39
+ },
40
+
41
+ isPerspektive: function() {
42
+ return this.$element.hasClass( 'ob-use-perspektive' );
43
+ },
44
+
45
+ } );
46
+
47
+ var Harakiri = elementorModules.frontend.handlers.Base.extend( {
48
+
49
+ onInit: function onInit() {
50
+
51
+ elementorModules.frontend.handlers.Base.prototype.onInit.apply( this, arguments );
52
+ this.initHarakiri();
53
+
54
+ },
55
+
56
+ initHarakiri: function() {
57
+
58
+ if( this.isEdit ) {
59
+ if( 'inherit' !== this.getElementSettings( '_ob_harakiri_writing_mode' ) ) this.$element.addClass( 'ob-harakiri' );
60
+ }
61
+
62
+ },
63
+
64
+ onElementChange: function( changedProp ) {
65
+
66
+ if( changedProp === '_ob_harakiri_writing_mode' ) {
67
+ if( 'inherit' !== this.getElementSettings( '_ob_harakiri_writing_mode' ) ) this.$element.addClass( 'ob-harakiri' );
68
+ else this.$element.removeClass( 'ob-harakiri' );
69
+ }
70
+
71
+ }
72
+
73
+ } );
74
+
75
+ var SectionExtends = elementorModules.frontend.handlers.Base.extend( {
76
+
77
+ onInit: function onInit() {
78
+
79
+ elementorModules.frontend.handlers.Base.prototype.onInit.apply( this, arguments );
80
+ this.initSectionExtends();
81
+
82
+ },
83
+ isBreakingBad: function() {
84
+
85
+ return this.$element.hasClass( 'ob-is-breaking-bad' );
86
+
87
+ },
88
+ isGlider: function() {
89
+
90
+ return this.$element.hasClass( 'ob-is-glider' );
91
+
92
+ },
93
+ onElementChange: function( changedProp ) {
94
+
95
+ // Breaking Bad
96
+ if( changedProp === '_ob_bbad_use_it' ) {
97
+ if( 'yes' === this.getElementSettings( '_ob_bbad_use_it' ) ) this.$element.addClass( 'ob-is-breaking-bad' );
98
+ else this.$element.removeClass( 'ob-is-breaking-bad' );
99
+ }
100
+ // Glider
101
+ if( changedProp === '_ob_glider_is_slider' ) {
102
+
103
+ if( 'yes' === this.getElementSettings( '_ob_glider_is_slider' ) ) {
104
+ this.$element.addClass( 'ob-is-glider' );
105
+ this.addClassesRouteGlider( '.elementor-element-' + this.$element.attr( 'data-id' ), 'addClass' );
106
+ this.initSwiperElements();
107
+ } else {
108
+ if( 'yes' != this.getElementSettings( '_ob_glider_is_slider' ) ) {
109
+ this.$element.removeClass( 'ob-is-glider' );
110
+ this.addClassesRouteGlider( '.elementor-element-' + this.$element.attr( 'data-id' ), 'removeClass' );
111
+ }
112
+ }
113
+
114
+ }
115
+
116
+ },
117
+ addClassesRouteGlider: function( el, action ) {
118
+
119
+ // elementor-container add swiper-container
120
+ var container = $( el ).children( '.elementor-container' ).first();
121
+ if( container.length ) container.addClass( 'swiper-container' );
122
+ // wrapper
123
+ var wrapper = $( container ).children( '.elementor-row' ).first();
124
+
125
+ if( wrapper.length && 'addClass' == action ) {
126
+ wrapper.addClass( 'swiper-wrapper' );
127
+ $( wrapper ).children( 'div.elementor-column' ).addClass( 'swiper-slide' );
128
+ } else {
129
+ // elementor 3.0+ ditched .elementor-row, we have to add the wrapper!
130
+ $( container ).children( 'div.elementor-column' ).wrapAll( '<div class="swiper-wrapper" />' );
131
+ $( container ).children( '.swiper-wrapper' ).first().children( 'div.elementor-column' ).addClass( 'swiper-slide' );
132
+ }
133
+ if( wrapper.length && 'removeClass' == action ) {
134
+ wrapper.removeClass( 'swiper-wrapper' );
135
+ $( wrapper ).children( 'div.elementor-column' ).removeClass( 'swiper-slide' );
136
+ } else {
137
+ // elementor 3.0+ patch
138
+ $( container ).children( 'div.elementor-column' ).unwrap();
139
+ $( container ).children( 'div.elementor-column' ).removeClass( 'swiper-slide' );
140
+ }
141
+
142
+ },
143
+ initSectionExtends: function() {
144
+
145
+ if( this.isEdit ) {
146
+ // Breaking Bad
147
+ if( 'yes' === this.getElementSettings( '_ob_bbad_use_it' ) && ! this.isBreakingBad() ) this.$element.addClass( 'ob-is-breaking-bad' );
148
+ // Glider: editor and font-end
149
+ if( 'yes' === this.getElementSettings( '_ob_glider_is_slider' ) ) {
150
+ this.$element.addClass( 'ob-is-glider' );
151
+ this.addClassesRouteGlider( '.elementor-element-' + this.$element.attr( 'data-id' ), 'addClass' );
152
+ this.initSwiperElements();
153
+ }
154
+ } else {
155
+
156
+ if( 'yes' === this.getElementSettings( '_ob_glider_is_slider' ) ) {
157
+
158
+ this.$element.addClass( 'ob-is-glider' );
159
+ this.addClassesRouteGlider( '.elementor-element-' + this.$element.attr( 'data-id' ), 'addClass' );
160
+ this.initSwiperElements();
161
+
162
+ }
163
+
164
+ }
165
+
166
+ },
167
+ initSwiperElements: function() {
168
+ // navig
169
+ if( ! this.$element.children( '.elementor-container .swiper-button-next' ).first().length ) {
170
+ this.$element.children( '.elementor-container' ).first().append(
171
+ '<div class="swiper-button-next"><svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMin" viewBox="0 0 27 44"><path d="M27 22L5 44l-2.1-2.1L22.8 22 2.9 2.1 5 0l22 22z"></path></svg></div>'
172
+ );
173
+ }
174
+ if( ! this.$element.children( '.elementor-container .swiper-button-prev' ).first().length ) {
175
+ this.$element.children( '.elementor-container' ).first().append(
176
+ '<div class="swiper-button-prev"><svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMin" viewBox="0 0 27 44"><path d="M0 22L22 0l2.1 2.1L4.2 22l19.9 19.9L22 44 0 22z"></path></svg></div>'
177
+ );
178
+ }
179
+ // pagination
180
+ if( ! this.$element.children( '.elementor-container .swiper-pagination' ).first().length ) {
181
+ this.$element.children( '.elementor-container' ).first().append( '<div class="swiper-pagination"></div>' );
182
+ }
183
+ // settings
184
+ var settingz = {};
185
+ settingz.pagination_type = this.getElementSettings( '_ob_glider_pagination_type' );
186
+ settingz.allowTouchMove = this.getElementSettings( '_ob_glider_allow_touch_move' );
187
+ settingz.autoheight = this.getElementSettings( '_ob_glider_auto_h' );
188
+ settingz.effect = this.getElementSettings( '_ob_glider_effect' );
189
+ settingz.loop = this.getElementSettings( '_ob_glider_loop' );
190
+ settingz.direction = this.getElementSettings( '_ob_glider_direction' );
191
+ settingz.parallax = this.getElementSettings( '_ob_glider_parallax' );
192
+ settingz.speed = this.getElementSettings( '_ob_glider_speed' );
193
+ var autoplayed = this.getElementSettings( '_ob_glider_autoplay' );
194
+ if( autoplayed ) {
195
+ settingz.autoplay = {
196
+ 'delay': this.getElementSettings( '_ob_glider_autoplay_delay' ),
197
+ }
198
+ } else settingz.autoplay = false;
199
+
200
+ // run swiper
201
+ makeSwiper( this.$element.attr( 'data-id' ), settingz );
202
+
203
+ },
204
+
205
+ } );
206
+
207
+ var ColumnExtends = elementorModules.frontend.handlers.Base.extend( {
208
+
209
+ onInit: function onInit() {
210
+
211
+ elementorModules.frontend.handlers.Base.prototype.onInit.apply( this, arguments );
212
+ // is E3.0 column?
213
+ if( ! this.$element.find( '.elementor-column-wrap' ).first().length ) this.$element.addClass( 'ob-is-e3' );
214
+ // Teleporter issue with Chrome
215
+ var ua = navigator.userAgent.toLowerCase();
216
+ if( ua.indexOf( 'chrome' ) > -1 ) this.teleporterChromeResize();
217
+ // columns...
218
+ this.initColumnExtends();
219
+
220
+ },
221
+ teleporterChromeResize: function() {
222
+
223
+ if( ! this.isTeleporter() ) return;
224
+
225
+ var dis = this;
226
+ var myID = this.$element.attr( 'data-id' );
227
+ $window.on( 'resize', function() {
228
+ dis.$element.closest( '.ob-is-teleporter' ).addClass( 'ob-chrome-resize' );
229
+ clearTimeout( myID );
230
+ myID = setTimeout( function() {
231
+ var column_height = parseInt( dis.$element.closest( '.ob-is-teleporter' ).css( 'height' ) );
232
+ var col_wrap = dis.$element.find( '.elementor-column-wrap' ).first();
233
+ if( col_wrap.length ) col_wrap.css( { 'height': column_height } );
234
+ else {
235
+ dis.$element.find( '.elementor-widget-wrap' ).first().css( { 'height': column_height } );
236
+ }
237
+ dis.$element.closest( '.ob-is-teleporter' ).removeClass( 'ob-chrome-resize' );
238
+ }, 500 );
239
+ } );
240
+ $window.trigger( 'resize' );
241
+
242
+ },
243
+ isTeleporter: function() {
244
+
245
+ return this.$element.hasClass( 'ob-is-teleporter' );
246
+
247
+ },
248
+ initColumnExtends: function() {
249
+
250
+ if( this.isEdit && 'use-teleporter' === this.getElementSettings( '_ob_teleporter_use' ) ) {
251
+ this.$element.addClass( 'ob-is-teleporter' );
252
+ this.$element.find( '.elementor-widget-wrap' ).first().addClass( 'ob-tele-midget' );
253
+ this.doTeleporterEditor();
254
+ }
255
+ if( ! this.isEdit && this.isTeleporter() ) {
256
+ this.$element.find( '.elementor-widget-wrap' ).first().addClass( 'ob-tele-midget' );
257
+ this.doTeleporter();
258
+ }
259
+
260
+ },
261
+ onElementChange: function( changedProp ) {
262
+
263
+ if( changedProp === '_ob_teleporter_overlay_color' ) {
264
+ this.$element.find( 'div[class*="ob-teleporter-"] > .ob-tele-overlay' ).css( 'background-color', this.getElementSettings( '_ob_teleporter_overlay_color' ) );
265
+ } else if( changedProp === '_ob_teleporter_no_pass_tablet' ) {
266
+ if( 'no-tablet' === this.getElementSettings( '_ob_teleporter_no_pass_tablet' ) )
267
+ this.$element.addClass( 'ob-tele-no-tablet' );
268
+ else
269
+ this.$element.removeClass( 'ob-tele-no-tablet' );
270
+ } else if( changedProp === '_ob_teleporter_no_pass_mobile' ) {
271
+ if( 'no-mobile' === this.getElementSettings( '_ob_teleporter_no_pass_mobile' ) )
272
+ this.$element.addClass( 'ob-tele-no-mobile' );
273
+ else
274
+ this.$element.removeClass( 'ob-tele-no-mobile' );
275
+ }
276
+
277
+ },
278
+ doTeleporterEditor: function() {
279
+
280
+ if( 'use-teleporter' !== this.getElementSettings( '_ob_teleporter_use' ) ) return; // bail
281
+
282
+ // E3.0+ wrap the children of .elementor-widget-wrap for the animation purpose
283
+ var widgets_wrapper = this.$element.find( '.elementor-widget-wrap' ).first();
284
+ if( widgets_wrapper.length ) {
285
+ widgets_wrapper.wrapInner( '<div class="widget-wrap-children" />' );
286
+ if( widgets_wrapper.find( '.elementor-background-overlay' ).first().length ) {
287
+ widgets_wrapper.find( '.elementor-background-overlay' ).first().insertBefore( widgets_wrapper.find( '.elementor-background-overlay' ).first().parent() );
288
+ }
289
+ }
290
+
291
+ if( 'do-pass' !== this.getElementSettings( '_ob_teleporter_pass' ) ) return; // bail too
292
+
293
+ var this_ob = this;
294
+ var myself = this.$element;
295
+ var my_id = this.$element.attr( 'data-id' );
296
+
297
+ // default classes
298
+ if( 'no-tablet' === this.getElementSettings( '_ob_teleporter_no_pass_tablet' ) )
299
+ this.$element.addClass( 'ob-tele-no-tablet' );
300
+ if( 'no-mobile' === this.getElementSettings( '_ob_teleporter_no_pass_mobile' ) )
301
+ this.$element.addClass( 'ob-tele-no-mobile' );
302
+
303
+ // this column's parent section
304
+ var parent_section = ( 'section' === this.getElementSettings( '_ob_teleporter_pass_element' ) ) ? this.$element.closest( '.elementor-section' ) : this.$element.closest( '.elementor-container' );
305
+ if( ! parent_section.length ) return; // bail
306
+
307
+ // parent overflow
308
+ parent_section.css( 'overflow', 'hidden' );
309
+
310
+ // new element & effect
311
+ var hover_effect = this.getElementSettings( '_ob_teleporter_pass_effect' );
312
+ var hover_element = '<div class="ob-teleporter-' + my_id + ' ob-tele-eff-' + hover_effect + '" data-id-teleporter="' + my_id + '"><div class="ob-tele-overlay" style="background-color: ' + this.getElementSettings( '_ob_teleporter_overlay_color' ) + ';"></div></div>';
313
+
314
+ if( ! $( '.ob-teleporter-' + my_id ).length ) this.$element.prepend( hover_element );
315
+
316
+ this.$element.off( 'mouseenter mouseleave' );
317
+ this.$element.on( 'mouseenter mouseleave', function( ev ) {
318
+
319
+ if( 'mouseenter' === ev.type ) {
320
+
321
+ if( 'no-tablet' === this_ob.getElementSettings( '_ob_teleporter_no_pass_tablet' ) &&
322
+ 'tablet' === elementorFrontend.getCurrentDeviceMode() ) return; // bail
323
+ if( 'no-mobile' === this_ob.getElementSettings( '_ob_teleporter_no_pass_mobile' ) &&
324
+ 'mobile' === elementorFrontend.getCurrentDeviceMode() ) return; // bail
325
+ if( 'do-pass' !== this_ob.getElementSettings( '_ob_teleporter_pass' ) ) return;
326
+
327
+ var tele_css = {
328
+ 'background-color': $( '.ob-teleporter-' + my_id ).css( 'background-color' ),
329
+ 'background-image': $( '.ob-teleporter-' + my_id ).css( 'background-image' ),
330
+ 'background-position': $( '.ob-teleporter-' + my_id ).css( 'background-position' ),
331
+ 'background-size': $( '.ob-teleporter-' + my_id ).css( 'background-size' ),
332
+ 'background-repeat': $( '.ob-teleporter-' + my_id ).css( 'background-repeat' )
333
+ };
334
+
335
+ if( 'section' === this_ob.getElementSettings( '_ob_teleporter_pass_element' ) ) {
336
+ var all_children = parent_section.children().not( '.elementor-container' ).detach();
337
+ parent_section.addClass( 'ob-tele-mom-hover' ).prepend( $( '.ob-teleporter-' + my_id ) );
338
+ parent_section.prepend( all_children );
339
+ } else {
340
+ parent_section.addClass( 'ob-tele-mom-hover' ).prepend( $( '.ob-teleporter-' + my_id ) );
341
+ }
342
+
343
+ $( '.ob-teleporter-' + my_id ).css( tele_css ).hide();
344
+ $( '.ob-teleporter-' + my_id ).addClass( 'ob-teleporter-hover' ).show();
345
+
346
+ } else {
347
+
348
+ parent_section.removeClass( 'ob-tele-mom-hover' );
349
+ setTimeout( function() {
350
+ $( '.ob-teleporter-' + my_id ).removeAttr( 'style' ).removeClass( 'ob-teleporter-hover' );
351
+ myself.prepend( $( '.ob-teleporter-' + my_id ) );
352
+ }, 100 );
353
+
354
+ }
355
+
356
+ } );
357
+
358
+ },
359
+ doTeleporter: function() {
360
+
361
+ var teleporter_settings = $.parseJSON( this.$element.attr( 'data-settings' ) );
362
+ if( 'use-teleporter' !== teleporter_settings._ob_teleporter_use ) return; // bail
363
+
364
+ // E3.0+ wrap the children of .elementor-widget-wrap for the animation purpose
365
+ var widgets_wrapper = this.$element.find( '.elementor-widget-wrap' ).first();
366
+ if( widgets_wrapper.length ) {
367
+ widgets_wrapper.wrapInner( '<div class="widget-wrap-children" />' );
368
+ if( widgets_wrapper.find( '.elementor-background-overlay' ).first().length ) {
369
+ widgets_wrapper.find( '.elementor-background-overlay' ).first().insertBefore( widgets_wrapper.find( '.elementor-background-overlay' ).first().parent() );
370
+ }
371
+ }
372
+
373
+ if( 'do-pass' !== teleporter_settings._ob_teleporter_pass ) return; // bail too
374
+
375
+ var myself = this.$element;
376
+ var my_id = this.$element.attr( 'data-id' );
377
+
378
+ // default classes
379
+ if( 'no-tablet' === teleporter_settings._ob_teleporter_no_pass_tablet )
380
+ this.$element.addClass( 'ob-tele-no-tablet' );
381
+ if( 'no-mobile' === teleporter_settings._ob_teleporter_no_pass_mobile )
382
+ this.$element.addClass( 'ob-tele-no-mobile' );
383
+
384
+ // this column's parent section
385
+ var parent_section = ( 'section' === teleporter_settings._ob_teleporter_pass_element ) ? this.$element.closest( '.elementor-section' ) : this.$element.closest( '.elementor-container' );
386
+ if( ! parent_section.length ) return; // bail
387
+
388
+ // parent overflow
389
+ parent_section.css( 'overflow', 'hidden' );
390
+
391
+
392
+ // new element
393
+ var hover_effect = teleporter_settings._ob_teleporter_pass_effect;
394
+ var hover_element = '<div class="ob-teleporter-' + my_id + ' ob-tele-eff-' + hover_effect + '" data-id-teleporter="' + my_id + '"><div class="ob-tele-overlay" style="background-color: ' + teleporter_settings._ob_teleporter_overlay_color + ';"></div>';
395
+
396
+ if( ! $( '.ob-teleporter-' + my_id ).length ) this.$element.prepend( hover_element );
397
+
398
+ this.$element.off( 'mouseenter mouseleave' );
399
+ this.$element.on( 'mouseenter', function() {
400
+
401
+ if( 'no-tablet' === teleporter_settings._ob_teleporter_no_pass_tablet &&
402
+ 'tablet' === elementorFrontend.getCurrentDeviceMode() ) return; // bail
403
+ if( 'no-mobile' === teleporter_settings._ob_teleporter_no_pass_mobile &&
404
+ 'mobile' === elementorFrontend.getCurrentDeviceMode() ) return; // bail
405
+
406
+ var tele_css = {
407
+ 'background-color': $( '.ob-teleporter-' + my_id ).css( 'background-color' ),
408
+ 'background-image': $( '.ob-teleporter-' + my_id ).css( 'background-image' ),
409
+ 'background-position': $( '.ob-teleporter-' + my_id ).css( 'background-position' ),
410
+ 'background-size': $( '.ob-teleporter-' + my_id ).css( 'background-size' ),
411
+ 'background-repeat': $( '.ob-teleporter-' + my_id ).css( 'background-repeat' )
412
+ };
413
+
414
+ if( 'section' === teleporter_settings._ob_teleporter_pass_element ) {
415
+ var all_children = parent_section.children().not( '.elementor-container' ).detach();
416
+ parent_section.addClass( 'ob-tele-mom-hover' ).prepend( $( '.ob-teleporter-' + my_id ) );
417
+ parent_section.prepend( all_children );
418
+ } else parent_section.addClass( 'ob-tele-mom-hover' ).prepend( $( '.ob-teleporter-' + my_id ) );
419
+
420
+ $( '.ob-teleporter-' + my_id ).css( tele_css ).hide();
421
+ $( '.ob-teleporter-' + my_id ).show().addClass( 'ob-teleporter-hover' );
422
+
423
+ } );
424
+
425
+ this.$element.on( 'mouseleave', function() {
426
+
427
+ parent_section.removeClass( 'ob-tele-mom-hover' );
428
+ setTimeout( function() {
429
+ $( '.ob-teleporter-' + my_id ).removeAttr( 'style' ).removeClass( 'ob-teleporter-hover' );
430
+ myself.prepend( $( '.ob-teleporter-' + my_id ) );
431
+ }, 100 );
432
+
433
+ } );
434
+
435
+ if( undefined !== teleporter_settings._ob_teleporter_link ) {
436
+
437
+ var tele_link = teleporter_settings._ob_teleporter_link;
438
+ if( '' === tele_link.url ) return;
439
+
440
+ this.$element.off( 'click.obTeleporter' );
441
+ this.$element.on( 'click.obTeleporter', function() {
442
+ if( tele_link.is_external ) window.open( tele_link.url );
443
+ else location.href = tele_link.url;
444
+ } );
445
+
446
+ }
447
+
448
+ },
449
+
450
+ } );
451
+
452
+ var SearchCop = elementorModules.frontend.handlers.Base.extend( {
453
+
454
+ onInit: function() {
455
+
456
+ elementorModules.frontend.handlers.Base.prototype.onInit.apply( this, arguments );
457
+ this.initSearchCop();
458
+
459
+ },
460
+
461
+ onElementChange: function( changedProp ) {
462
+
463
+ if( changedProp === '_ob_searchcop_srch_options' ) this.routeSearchCop();
464
+
465
+ },
466
+
467
+ initSearchCop: function() {
468
+
469
+ this.routeSearchCop();
470
+
471
+ },
472
+
473
+ routeSearchCop: function() {
474
+ var search_cop_val = this.getElementSettings( '_ob_searchcop_srch_options' );
475
+ if( 'post' === search_cop_val || 'page' === search_cop_val ) {
476
+ var this_input_wrapper = this.$element.find( '.elementor-search-form__container' );
477
+ if( ! this_input_wrapper.length ) return;
478
+ var param_input = '<input type="hidden" name="post_type" value="' + search_cop_val + '" />';
479
+ this_input_wrapper.prepend( param_input );
480
+ }
481
+ },
482
+
483
+ } );
484
+
485
+ var ButterButton = elementorModules.frontend.handlers.Base.extend( {
486
+
487
+ onInit: function() {
488
+
489
+ elementorModules.frontend.handlers.Base.prototype.onInit.apply( this, arguments );
490
+ this.initButterButton();
491
+
492
+ },
493
+
494
+ isButterButton: function() {
495
+
496
+ return this.$element.hasClass( 'ob-is-butterbutton' );
497
+
498
+ },
499
+
500
+ onElementChange: function( changedProp ) {
501
+
502
+ if( changedProp === '_ob_butterbutton_use_it' ) {
503
+ this.routeButterButton();
504
+ }
505
+
506
+ },
507
+
508
+ initButterButton: function() {
509
+
510
+ if( this.isEdit && 'yes' === this.getElementSettings( '_ob_butterbutton_use_it' ) ) {
511
+ this.$element.addClass( 'ob-is-butterbutton' );
512
+ }
513
+
514
+ },
515
+
516
+ routeButterButton: function() {
517
+
518
+ if( ! this.isButterButton() && 'yes' === this.getElementSettings( '_ob_butterbutton_use_it' ) ) this.$element.addClass( 'ob-is-butterbutton' );
519
+ else this.$element.removeClass( 'ob-is-butterbutton' );
520
+
521
+ },
522
+
523
+
524
+ } );
525
+
526
+ var handlersList = {
527
+
528
+ 'widget': PoopArtPerspektive,
529
+ 'heading.default': Harakiri,
530
+ 'text-editor.default': Harakiri,
531
+ 'section': SectionExtends,
532
+ 'column': ColumnExtends,
533
+ 'search-form.default': SearchCop,
534
+ 'button.default' : ButterButton
535
+
536
+ };
537
+
538
+ $.each( handlersList, function( widgetName, handlerClass ) {
539
+
540
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/' + widgetName, function( $scope ) {
541
+
542
+ elementorFrontend.elementsHandler.addHandler( handlerClass, { $element: $scope } );
543
+
544
+ } );
545
+
546
+ } );
547
+
548
+ } );
549
+
550
+ var makeSwiper = function( elem_id, settings ) {
551
+
552
+ var me_the_swiper = new Swiper( '.elementor-element-' + elem_id + ' .swiper-container', {
553
+ allowTouchMove: ( 'yes' === settings.allowTouchMove ? true : false ),
554
+ autoHeight: ( 'yes' === settings.autoheight ? true : false ),
555
+ effect: settings.effect,
556
+ loop: settings.loop,
557
+ direction: ( 'fade' === settings.effect ? 'horizontal' : settings.direction ),
558
+ parallax: ( 'yes' === settings.parallax ? true : false ),
559
+ speed: settings.speed,
560
+ navigation: {
561
+ nextEl: '.elementor-element-' + elem_id + ' .swiper-button-next',
562
+ prevEl: '.elementor-element-' + elem_id + ' .swiper-button-prev',
563
+ },
564
+ pagination: {
565
+ el: '.elementor-element-' + elem_id + ' .swiper-pagination',
566
+ type: settings.pagination_type,
567
+ clickable: true,
568
+ },
569
+ autoplay: settings.autoplay,
570
+ watchOverflow : true, /* gotta force it down */
571
+ } );
572
+
573
+ }
574
+
575
+ } ( jQuery, window ) );
controls/index.php ADDED
File without changes
controls/ooohboi-breaking-bad.php ADDED
@@ -0,0 +1,248 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use Elementor\Controls_Manager;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) {
5
+ exit; // Exit if accessed directly.
6
+ }
7
+
8
+ /**
9
+ * Main OoohBoi Breaking Bad Class
10
+ *
11
+ * The main class that initiates and runs the plugin.
12
+ *
13
+ * @since 1.0.0
14
+ */
15
+ class OoohBoi_Breaking_Bad {
16
+
17
+ /**
18
+ * Initialize
19
+ *
20
+ * @since 1.0.0
21
+ *
22
+ * @access public
23
+ */
24
+ public static function init() {
25
+
26
+ add_action( 'elementor/element/section/section_layout/before_section_end', [ __CLASS__, 'ooohboi_handle_section' ], 10, 2 );
27
+ add_action( 'elementor/element/column/layout/before_section_end', [ __CLASS__, 'ooohboi_handle_columns' ], 10, 2 );
28
+
29
+ add_action( 'elementor/frontend/section/before_render', function( \Elementor\Element_Base $element ) {
30
+
31
+ if ( \Elementor\Plugin::instance()->editor->is_edit_mode() ) return;
32
+ $settings = $element->get_settings_for_display();
33
+
34
+ if ( isset( $settings[ '_ob_bbad_use_it' ] ) && 'yes' === $settings[ '_ob_bbad_use_it' ] ) {
35
+
36
+ $element->add_render_attribute( '_wrapper', [
37
+ 'class' => 'ob-is-breaking-bad'
38
+ ] );
39
+
40
+ }
41
+
42
+ } );
43
+
44
+ }
45
+
46
+ public static function ooohboi_handle_section( $element, $args ) {
47
+
48
+ // create panel section
49
+ $element->add_control(
50
+ '_ob_bbad_section_title',
51
+ [
52
+ 'label' => 'B R E A K I N G - B A D',
53
+ 'type' => Controls_Manager::HEADING,
54
+ 'separator' => 'before',
55
+ ]
56
+ );
57
+ // ------------------------------------------------------------------------- CONTROL: Use Breaking Bad for Section and Columns
58
+ $element->add_control(
59
+ '_ob_bbad_use_it',
60
+ [
61
+ 'label' => __( 'Enable Breaking Bad?', 'ooohboi-steroids' ),
62
+ 'description' => __( 'By enabling Breaking Bad for this SECTION, all the Columns will break in order to fit the available width.', 'ooohboi-steroids' ),
63
+ 'separator' => 'before',
64
+ 'type' => Controls_Manager::SWITCHER,
65
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
66
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
67
+ 'return_value' => 'yes',
68
+ 'default' => 'yes',
69
+ 'frontend_available' => true,
70
+ ]
71
+ );
72
+ // ------------------------------------------------------------------------- CONTROL: Align columns
73
+ $element->add_responsive_control(
74
+ '_ob_bbad_arrange_cols',
75
+ [
76
+ 'label' => __( 'Align Columns', 'ooohboi-steroids' ),
77
+ 'type' => Controls_Manager::SELECT,
78
+ 'default' => 'flex-start',
79
+ 'options' => [
80
+ 'flex-start' => __( 'Start', 'ooohboi-steroids' ),
81
+ 'center' => __( 'Center', 'ooohboi-steroids' ),
82
+ 'flex-end' => __( 'End', 'ooohboi-steroids' ),
83
+ 'space-between' => __( 'Space Between', 'ooohboi-steroids' ),
84
+ 'space-around' => __( 'Space Around', 'ooohboi-steroids' ),
85
+ 'space-evenly' => __( 'Space Evenly', 'ooohboi-steroids' ),
86
+ ],
87
+ 'selectors' => [
88
+ '{{WRAPPER}}.ob-is-breaking-bad .elementor-container > .elementor-row, {{WRAPPER}}.ob-is-breaking-bad .elementor-container' => 'justify-content: {{VALUE}} !important;',
89
+ ],
90
+ 'condition' => [
91
+ '_ob_bbad_use_it' => 'yes',
92
+ ],
93
+ ]
94
+ );
95
+ // ------------------------------------------------------------------------- CONTROL: Columns direction
96
+ $element->add_responsive_control(
97
+ '_ob_bbad_cols_direction',
98
+ [
99
+ 'label' => __( 'Columns Direction', 'ooohboi-steroids' ),
100
+ 'type' => Controls_Manager::SELECT,
101
+ 'default' => 'row',
102
+ 'options' => [
103
+ 'row' => __( 'Row', 'ooohboi-steroids' ),
104
+ 'column' => __( 'Column', 'ooohboi-steroids' ),
105
+ ],
106
+ 'selectors' => [
107
+ '{{WRAPPER}}.ob-is-breaking-bad .elementor-container > .elementor-row, {{WRAPPER}}.ob-is-breaking-bad .elementor-container' => 'flex-direction: {{VALUE}};',
108
+ '{{WRAPPER}}.ob-is-breaking-bad.ob-is-glider .elementor-container.swiper-container-vertical > .elementor-row, {{WRAPPER}}.ob-is-breaking-bad.ob-is-glider .elementor-container.swiper-container-vertical' => 'flex-direction: column;',
109
+ ],
110
+ 'condition' => [
111
+ '_ob_bbad_use_it' => 'yes',
112
+ ],
113
+ ]
114
+ );
115
+ // ------------------------------------------------------------------------- CONTROL: Columns direction - items alignment
116
+ $element->add_responsive_control(
117
+ '_ob_bbad_cols_direction_align',
118
+ [
119
+ 'label' => __( 'Align Items', 'ooohboi-steroids' ),
120
+ 'type' => Controls_Manager::SELECT,
121
+ 'default' => 'flex-start',
122
+ 'options' => [
123
+ 'flex-start' => __( 'Start', 'ooohboi-steroids' ),
124
+ 'center' => __( 'Center', 'ooohboi-steroids' ),
125
+ 'flex-end' => __( 'End', 'ooohboi-steroids' ),
126
+ ],
127
+ 'selectors' => [
128
+ '{{WRAPPER}}.ob-is-breaking-bad .elementor-container > .elementor-row, {{WRAPPER}}.ob-is-breaking-bad .elementor-container' => 'align-items: {{VALUE}};',
129
+ ],
130
+ 'condition' => [
131
+ '_ob_bbad_use_it' => 'yes',
132
+ '_ob_bbad_cols_direction' => [ 'column' ],
133
+ ],
134
+ ]
135
+ );
136
+
137
+ // ------------------------------------------------------------------------- CONTROL: Sponsor
138
+ $element->add_control(
139
+ '_ob_shadough_sponsorship',
140
+ [
141
+ 'type' => Controls_Manager::RAW_HTML,
142
+ 'raw' => OoohBoi_Steroids::ooohboi_commercializer(),
143
+ 'prefix_class' => 'ob-steroids-sponsor-',
144
+ ]
145
+ );
146
+
147
+ }
148
+
149
+ public static function ooohboi_handle_columns( $element, $args ) {
150
+
151
+ $element->add_control(
152
+ '_ob_bbad_column_title',
153
+ [
154
+ 'label' => 'B R E A K I N G - B A D',
155
+ 'type' => Controls_Manager::HEADING,
156
+ 'separator' => 'before',
157
+ ]
158
+ );
159
+ // --------------------------------------------------------------------------------------------- CONTROL Column width
160
+ $element->add_responsive_control(
161
+ '_ob_bbad_column_width',
162
+ [
163
+ 'label' => __( 'Custom Width', 'ooohboi-steroids' ),
164
+ 'type' => Controls_Manager::TEXT,
165
+ 'separator' => 'before',
166
+ 'label_block' => true,
167
+ 'description' => __( 'You can enter any acceptable CSS value, for example: 50em, 300px, 100%, calc(100% - 300px). NOTE: If you want to make the columns wrap, Enable Breaking Bad for this Column parent SECTION!', 'ooohboi-steroids' ),
168
+ 'selectors' => [
169
+ '{{WRAPPER}}.elementor-column' => 'width: {{VALUE}};',
170
+ ],
171
+ ]
172
+ );
173
+ // --------------------------------------------------------------------------------------------- CONTROL Column height
174
+ $element->add_responsive_control(
175
+ '_ob_bbad_column_height',
176
+ [
177
+ 'label' => __( 'Custom Height', 'ooohboi-steroids' ),
178
+ 'type' => Controls_Manager::SLIDER,
179
+ 'range' => [
180
+ 'px' => [
181
+ 'max' => 1000,
182
+ 'step' => 1,
183
+ ],
184
+ 'em' => [
185
+ 'max' => 100,
186
+ 'step' => 1,
187
+ ],
188
+ 'vh' => [
189
+ 'max' => 100,
190
+ 'step' => 1,
191
+ ],
192
+ ],
193
+ 'size_units' => [ 'px', 'em', 'vh' ],
194
+ 'selectors' => [
195
+ '{{WRAPPER}}.elementor-column, {{WRAPPER}}.elementor-column > .elementor-widget-wrap' => 'height: {{SIZE}}{{UNIT}};',
196
+ ],
197
+ ]
198
+ );
199
+ // --------------------------------------------------------------------------------------------- CONTROL Column order
200
+ $element->add_responsive_control(
201
+ '_ob_bbad_column_order',
202
+ [
203
+ 'label' => __( 'Column Order', 'ooohboi-steroids' ),
204
+ 'description' => sprintf(
205
+ __( 'More info at %sMozilla%s.', 'ooohboi-steroids' ),
206
+ '<a
207
+ href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Ordering_Flex_Items#The_order_property" target="_blank">',
208
+ '</a>'
209
+ ),
210
+ 'type' => Controls_Manager::NUMBER,
211
+ 'style_transfer' => true,
212
+ 'selectors' => [
213
+ '{{WRAPPER}}.elementor-column' => '-webkit-box-ordinal-group: calc({{VALUE}} + 1 ); -ms-flex-order:{{VALUE}}; order: {{VALUE}};',
214
+ ],
215
+ ]
216
+ );
217
+ // --------------------------------------------------------------------------------------------- CONTROL Scrollable
218
+ $element->add_control(
219
+ '_ob_bbad_column_scrollable',
220
+ [
221
+ 'label' => __( 'Scrollable Column?', 'ooohboi-steroids' ),
222
+ 'separator' => 'before',
223
+ 'type' => Controls_Manager::SWITCHER,
224
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
225
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
226
+ 'return_value' => 'scroll',
227
+ 'default' => 'visible',
228
+ 'selectors' => [
229
+ '{{WRAPPER}}.elementor-column > .elementor-column-wrap, {{WRAPPER}}.elementor-column > .elementor-widget-wrap' => 'overflow-y: {{VALUE}};',
230
+ ],
231
+ 'condition' => [
232
+ '_ob_bbad_column_height!' => '',
233
+ ],
234
+ ]
235
+ );
236
+ // ------------------------------------------------------------------------- CONTROL: Sponsor
237
+ $element->add_control(
238
+ '_ob_sponsorship_breakingbad',
239
+ [
240
+ 'type' => Controls_Manager::RAW_HTML,
241
+ 'raw' => OoohBoi_Steroids::ooohboi_commercializer(),
242
+ 'prefix_class' => 'ob-steroids-sponsor-',
243
+ ]
244
+ );
245
+
246
+ }
247
+
248
+ }
controls/ooohboi-butter-button.php ADDED
@@ -0,0 +1,415 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use Elementor\Controls_Manager;
3
+ use Elementor\Scheme_Typography;
4
+ use Elementor\Group_Control_Background;
5
+ use Elementor\Group_Control_Typography;
6
+ use Elementor\Group_Control_Text_Shadow;
7
+ use Elementor\Group_Control_Box_Shadow;
8
+ use Elementor\Group_Control_Border;
9
+
10
+ if ( ! defined( 'ABSPATH' ) ) {
11
+ exit; // Exit if accessed directly.
12
+ }
13
+
14
+ /**
15
+ * Main OoohBoi Butter Button
16
+ *
17
+ * The main class that initiates and runs the plugin.
18
+ *
19
+ * @since 1.3.6
20
+ */
21
+ final class OoohBoi_Butter_Button {
22
+
23
+ /**
24
+ * Initialize
25
+ *
26
+ * @since 1.3.6
27
+ *
28
+ * @access public
29
+ */
30
+ public static function init() {
31
+
32
+ add_action( 'elementor/element/button/section_style/after_section_end', [ __CLASS__, 'ob_butterbutton_panel' ], 10, 2 );
33
+ add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
34
+
35
+ }
36
+
37
+ public static function add_attributes( $element ) {
38
+
39
+ if ( 'button' !== $element->get_name() ) return;
40
+
41
+ if ( \Elementor\Plugin::instance()->editor->is_edit_mode() ) return;
42
+
43
+ $settings = $element->get_settings_for_display();
44
+
45
+ $butterbutton_in_use = isset( $settings[ '_ob_butterbutton_use_it' ] ) ? $settings[ '_ob_butterbutton_use_it' ] : '';
46
+
47
+ if ( 'yes' === $butterbutton_in_use ) $element->add_render_attribute( '_wrapper', 'class', 'ob-is-butterbutton' );
48
+
49
+ }
50
+
51
+ public static function ob_butterbutton_panel( $element, $args ) {
52
+
53
+ // selector based on the current element
54
+ $selector = '{{WRAPPER}}.ob-is-butterbutton .elementor-button';
55
+
56
+ $element->start_controls_section(
57
+ '_ob_butterbutton',
58
+ [
59
+ 'label' => 'B U T T E R - B U T T O N',
60
+ 'tab' => Controls_Manager::TAB_STYLE,
61
+ ]
62
+ );
63
+
64
+ // --------------------------------------------------------------------------------------------- CONTROL: Use Butter Button
65
+ $element->add_control(
66
+ '_ob_butterbutton_use_it',
67
+ [
68
+ 'label' => __( 'Enable Butter Buttons?', 'ooohboi-steroids' ),
69
+ 'separator' => 'after',
70
+ 'type' => Controls_Manager::SWITCHER,
71
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
72
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
73
+ 'return_value' => 'yes',
74
+ 'default' => 'no',
75
+ 'frontend_available' => true,
76
+ ]
77
+ );
78
+
79
+ // --------------------------------------------------------------------------------------------- CONTROL Button Typography
80
+ $element->add_group_control(
81
+ Group_Control_Typography::get_type(),
82
+ [
83
+ 'name' => '_ob_butterbutton_typography',
84
+ 'label' => __( 'Typography', 'ooohboi-steroids' ),
85
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_3,
86
+ 'selector' => $selector,
87
+ 'condition' => [
88
+ '_ob_butterbutton_use_it' => 'yes',
89
+ ],
90
+ ]
91
+ );
92
+
93
+ // --------------------------------------------------------------------------------------------- CONTROL Icon Size
94
+ $element->add_responsive_control(
95
+ '_ob_butterbutton_icon_size',
96
+ [
97
+ 'label' => __( 'Icon Size', 'ooohboi-steroids' ),
98
+ 'description' => __( 'Be sure the icon is selected in the Content tab!', 'ooohboi-steroids' ),
99
+ 'type' => Controls_Manager::SLIDER,
100
+ 'size_units' => [ 'px', 'em', 'rem' ],
101
+ 'range' => [
102
+ 'px' => [
103
+ 'min' => 0,
104
+ 'max' => 100,
105
+ ],
106
+ 'em' => [
107
+ 'min' => 0,
108
+ 'max' => 100,
109
+ ],
110
+ 'rem' => [
111
+ 'min' => 0,
112
+ 'max' => 100,
113
+ ],
114
+ ],
115
+ 'default' => [
116
+ 'unit' => 'em',
117
+ 'size' => 1,
118
+ ],
119
+ 'selectors' => [
120
+ $selector . ' .elementor-button-icon i' => 'font-size: {{SIZE}}{{UNIT}};',
121
+ ],
122
+ 'condition' => [
123
+ '_ob_butterbutton_use_it' => 'yes',
124
+ ],
125
+ ]
126
+ );
127
+
128
+ // --------------------------------------------------------------------------------------------- CONTROL Transition duration
129
+ $element->add_control(
130
+ '_ob_butterbutton_transitions',
131
+ [
132
+ 'label' => __( 'Transition Duration', 'ooohboi-steroids' ),
133
+ 'separator' => 'before',
134
+ 'type' => Controls_Manager::SLIDER,
135
+ 'render_type' => 'template',
136
+ 'default' => [
137
+ 'size' => 250,
138
+ ],
139
+ 'range' => [
140
+ 'px' => [
141
+ 'min' => 0,
142
+ 'max' => 1000,
143
+ ],
144
+ ],
145
+ 'selectors' => [
146
+ "$selector, $selector:before, $selector:after, $selector .elementor-button-content-wrapper span" => 'transition-duration: {{SIZE}}ms;',
147
+ ],
148
+ 'condition' => [
149
+ '_ob_butterbutton_use_it' => 'yes',
150
+ ],
151
+ ]
152
+ );
153
+
154
+ // --------------------------------------------------------------------------------------------- CONTROL Padding
155
+ $element->add_responsive_control(
156
+ '_ob_butterbutton_padding',
157
+ [
158
+ 'label' => __( 'Padding', 'ooohboi-steroids' ),
159
+ 'separator' => 'before',
160
+ 'type' => Controls_Manager::DIMENSIONS,
161
+ 'size_units' => [ 'px', 'em', '%' ],
162
+ 'selectors' => [
163
+ $selector => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
164
+ ],
165
+ 'condition' => [
166
+ '_ob_butterbutton_use_it' => 'yes',
167
+ ],
168
+ ]
169
+ );
170
+
171
+ // --------------------------------------------------------------------------------------------- START 2 TABS Regular & Hover
172
+ $element->start_controls_tabs( '_ob_butterbutton_tabs' );
173
+
174
+ // --------------------------------------------------------------------------------------------- START TAB Regular
175
+ $element->start_controls_tab(
176
+ '_ob_butterbutton_tabs_reg',
177
+ [
178
+ 'label' => __( 'Regular', 'ooohboi-steroids' ),
179
+ ]
180
+ );
181
+
182
+ // --------------------------------------------------------------------------------------------- CONTROL: Text COLOR Regular
183
+ $element->add_control(
184
+ '_ob_butterbutton_color_reg',
185
+ [
186
+ 'label' => __( 'Text Color', 'ooohboi-steroids' ),
187
+ 'type' => Controls_Manager::COLOR,
188
+ 'default' => '#FFFFFF',
189
+ 'selectors' => [
190
+ $selector => 'color: {{VALUE}};',
191
+ ],
192
+ 'condition' => [
193
+ '_ob_butterbutton_use_it' => 'yes',
194
+ ],
195
+ ]
196
+ );
197
+ // --------------------------------------------------------------------------------------------- CONTROL: Text SHADOW Regular
198
+ $element->add_group_control(
199
+ Group_Control_Text_Shadow::get_type(),
200
+ [
201
+ 'name' => '_ob_butterbutton_text_shadow_reg',
202
+ 'separator' => 'before',
203
+ 'selector' => $selector . ' .elementor-button-content-wrapper span',
204
+ 'fields_options' => [
205
+ 'text_shadow_type' => [
206
+ 'label' => _x( 'Text Shadow', 'Butter Button Text Shadow Control', 'ooohboi-steroids' ),
207
+ ],
208
+ ],
209
+ 'condition' => [
210
+ '_ob_butterbutton_use_it' => 'yes',
211
+ ],
212
+ ]
213
+ );
214
+
215
+ // --------------------------------------------------------------------------------------------- CONTROL BACKGROUND Regular
216
+ $element->add_group_control(
217
+ Group_Control_Background::get_type(),
218
+ [
219
+ 'name' => '_ob_butterbutton_tabs_reg_bg',
220
+ 'frontend_available' => true,
221
+ 'selector' => $selector . ':before',
222
+ 'condition' => [
223
+ '_ob_butterbutton_use_it' => 'yes',
224
+ ],
225
+ ]
226
+ );
227
+
228
+ // --------------------------------------------------------------------------------------------- CONTROL BORDER Regular
229
+ $element->add_group_control(
230
+ Group_Control_Border::get_type(),
231
+ [
232
+ 'name' => '_ob_butterbutton_border_reg',
233
+ 'label' => __( 'Border', 'ooohboi-steroids' ),
234
+ 'separator' => 'before',
235
+ 'selector' => $selector,
236
+ 'condition' => [
237
+ '_ob_butterbutton_use_it' => 'yes',
238
+ ],
239
+ ]
240
+ );
241
+
242
+ // --------------------------------------------------------------------------------------------- CONTROL BORDER RADIUS Regular
243
+ $element->add_responsive_control(
244
+ '_ob_butterbutton_border_rad_reg',
245
+ [
246
+ 'label' => __( 'Border Radius', 'ooohboi-steroids' ),
247
+ 'separator' => 'before',
248
+ 'type' => Controls_Manager::DIMENSIONS,
249
+ 'size_units' => [ 'px', '%' ],
250
+ 'selectors' => [
251
+ $selector => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
252
+ ],
253
+ 'condition' => [
254
+ '_ob_butterbutton_use_it' => 'yes',
255
+ ],
256
+ ]
257
+ );
258
+
259
+ // --------------------------------------------------------------------------------------------- CONTROL Box Shadow Regular
260
+ $element->add_group_control(
261
+ Group_Control_Box_Shadow::get_type(),
262
+ [
263
+ 'name' => '_ob_butterbutton_shadow_reg',
264
+ 'label' => __( 'Box Shadow', 'ooohboi-steroids' ),
265
+ 'separator' => 'before',
266
+ 'selector' => $selector,
267
+ 'fields_options' => [
268
+ 'box_shadow' => [
269
+ 'default' => [
270
+ 'horizontal' => 5,
271
+ 'vertical' => 5,
272
+ 'blur' => 10,
273
+ 'spread' => 3,
274
+ 'color' => 'rgba(0,0,0,0.2)',
275
+ ],
276
+ ],
277
+ ],
278
+ 'condition' => [
279
+ '_ob_butterbutton_use_it' => 'yes',
280
+ ],
281
+ ]
282
+ );
283
+
284
+ $element->end_controls_tab(); // Regular tab end
285
+
286
+ // --------------------------------------------------------------------------------------------- START TAB Hover
287
+ $element->start_controls_tab(
288
+ '_ob_butterbutton_tabs_hov',
289
+ [
290
+ 'label' => __( 'Hover', 'ooohboi-steroids' ),
291
+ ]
292
+ );
293
+
294
+ // --------------------------------------------------------------------------------------------- CONTROL: Text COLOR Hover
295
+ $element->add_control(
296
+ '_ob_butterbutton_color_hov',
297
+ [
298
+ 'label' => __( 'Text Color', 'ooohboi-steroids' ),
299
+ 'type' => Controls_Manager::COLOR,
300
+ 'default' => '#000000',
301
+ 'selectors' => [
302
+ $selector . ':hover' => 'color: {{VALUE}};',
303
+ ],
304
+ 'condition' => [
305
+ '_ob_butterbutton_use_it' => 'yes',
306
+ ],
307
+ ]
308
+ );
309
+
310
+ // --------------------------------------------------------------------------------------------- CONTROL: Text SHADOW Hover
311
+ $element->add_group_control(
312
+ Group_Control_Text_Shadow::get_type(),
313
+ [
314
+ 'name' => '_ob_butterbutton_text_shadow_hov',
315
+ 'separator' => 'before',
316
+ 'selector' => $selector . ':hover .elementor-button-content-wrapper span',
317
+ 'fields_options' => [
318
+ 'text_shadow_type' => [
319
+ 'label' => _x( 'Text Shadow', 'Butter Button Text Shadow Control', 'ooohboi-steroids' ),
320
+ ],
321
+ ],
322
+ 'condition' => [
323
+ '_ob_butterbutton_use_it' => 'yes',
324
+ ],
325
+ ]
326
+ );
327
+
328
+ // --------------------------------------------------------------------------------------------- CONTROL BACKGROUND Hover
329
+ $element->add_group_control(
330
+ Group_Control_Background::get_type(),
331
+ [
332
+ 'name' => '_ob_butterbutton_tabs_hov_bg',
333
+ 'frontend_available' => true,
334
+ 'selector' => $selector . ':after',
335
+ 'condition' => [
336
+ '_ob_butterbutton_use_it' => 'yes',
337
+ ],
338
+ ]
339
+ );
340
+
341
+ // --------------------------------------------------------------------------------------------- CONTROL BORDER Hover
342
+ $element->add_group_control(
343
+ Group_Control_Border::get_type(),
344
+ [
345
+ 'name' => '_ob_butterbutton_border_hov',
346
+ 'label' => __( 'Border', 'ooohboi-steroids' ),
347
+ 'separator' => 'before',
348
+ 'selector' => $selector . ':hover',
349
+ 'condition' => [
350
+ '_ob_butterbutton_use_it' => 'yes',
351
+ ],
352
+ ]
353
+ );
354
+
355
+ // --------------------------------------------------------------------------------------------- CONTROL BORDER RADIUS Hover
356
+ $element->add_responsive_control(
357
+ '_ob_butterbutton_border_rad_hov',
358
+ [
359
+ 'label' => __( 'Border Radius', 'ooohboi-steroids' ),
360
+ 'separator' => 'before',
361
+ 'type' => Controls_Manager::DIMENSIONS,
362
+ 'size_units' => [ 'px', '%' ],
363
+ 'selectors' => [
364
+ $selector . ':hover' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
365
+ ],
366
+ 'condition' => [
367
+ '_ob_butterbutton_use_it' => 'yes',
368
+ ],
369
+ ]
370
+ );
371
+
372
+ // --------------------------------------------------------------------------------------------- CONTROL Box Shadow Hover
373
+ $element->add_group_control(
374
+ Group_Control_Box_Shadow::get_type(),
375
+ [
376
+ 'name' => '_ob_butterbutton_shadow_hov',
377
+ 'label' => __( 'Box Shadow', 'ooohboi-steroids' ),
378
+ 'separator' => 'before',
379
+ 'selector' => $selector . ':hover',
380
+ 'fields_options' => [
381
+ 'box_shadow' => [
382
+ 'default' => [
383
+ 'horizontal' => 5,
384
+ 'vertical' => 5,
385
+ 'blur' => 10,
386
+ 'spread' => 3,
387
+ 'color' => 'rgba(0,0,0,0.2)',
388
+ ],
389
+ ],
390
+ ],
391
+ 'condition' => [
392
+ '_ob_butterbutton_use_it' => 'yes',
393
+ ],
394
+ ]
395
+ );
396
+
397
+ $element->end_controls_tab(); // Hover tab end
398
+
399
+ $element->end_controls_tabs(); // Regular & Hover tabs end
400
+
401
+ // ------------------------------------------------------------------------- CONTROL: Sponsor
402
+ $element->add_control(
403
+ '_ob_sponsorship_butterbutton',
404
+ [
405
+ 'type' => Controls_Manager::RAW_HTML,
406
+ 'raw' => OoohBoi_Steroids::ooohboi_commercializer(),
407
+ 'prefix_class' => 'ob-steroids-sponsor-',
408
+ ]
409
+ );
410
+
411
+ $element->end_controls_section(); // END SECTION / PANEL
412
+
413
+ }
414
+
415
+ }
controls/ooohboi-glider.php ADDED
@@ -0,0 +1,599 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use Elementor\Controls_Manager;
3
+ use Elementor\Controls_Stack;
4
+ use Elementor\Element_Base;
5
+
6
+ if ( ! defined( 'ABSPATH' ) ) {
7
+ exit; // Exit if accessed directly.
8
+ }
9
+
10
+ /**
11
+ * Main OoohBoi Glider class
12
+ *
13
+ * The main class that initiates and runs the plugin.
14
+ *
15
+ * @since 1.0.0
16
+ */
17
+ final class OoohBoi_Glider {
18
+
19
+ /**
20
+ * Initialize
21
+ *
22
+ * @since 1.0.0
23
+ *
24
+ * @access public
25
+ */
26
+ public static function init() {
27
+
28
+ add_action( 'elementor/element/section/section_layout/after_section_end', [ __CLASS__, 'add_section' ], 10, 2 );
29
+ add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
30
+
31
+ }
32
+
33
+ public static function add_attributes( Element_Base $element ) {
34
+ // bail if any other element but section
35
+ if ( $element->get_name() !== 'section' ) return;
36
+ // bail if editor
37
+ if ( \Elementor\Plugin::instance()->editor->is_edit_mode() ) return;
38
+ // grab the settings
39
+ $settings = $element->get_settings_for_display();
40
+
41
+ if( isset( $settings[ '_ob_glider_is_slider' ] ) && 'yes' === $settings[ '_ob_glider_is_slider' ] ) {
42
+ $element->add_render_attribute( '_wrapper', [
43
+ 'class' => 'ob-is-glider',
44
+ ] );
45
+ }
46
+
47
+ }
48
+
49
+ public static function add_section( Element_Base $element ) {
50
+
51
+ $element->start_controls_section(
52
+ '_ob_steroids_background_overlay',
53
+ [
54
+ 'label' => 'G L I D E R',
55
+ 'tab' => Controls_Manager::TAB_LAYOUT,
56
+ 'hide_in_inner' => true,
57
+ ]
58
+ );
59
+
60
+ // ------------------------------------------------------------------------- CONTROL: Turn section to Slider
61
+ $element->add_control(
62
+ '_ob_glider_is_slider',
63
+ [
64
+ 'label' => __( 'Create Slider?', 'ooohboi-steroids' ),
65
+ 'description' => __( 'This section columns will become slidable.', 'ooohboi-steroids' ),
66
+ 'separator' => 'before',
67
+ 'type' => Controls_Manager::SWITCHER,
68
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
69
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
70
+ 'return_value' => 'yes',
71
+ 'default' => 'no',
72
+ 'frontend_available' => true,
73
+ 'hide_in_inner' => true,
74
+ ]
75
+ );
76
+ // ------------------------------------------------------------------------- CONTROL: Slider AutoHeight
77
+ $element->add_control(
78
+ '_ob_glider_auto_h',
79
+ [
80
+ 'label' => __( 'Adaptable height?', 'ooohboi-steroids' ),
81
+ 'separator' => 'before',
82
+ 'type' => Controls_Manager::SWITCHER,
83
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
84
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
85
+ 'return_value' => 'yes',
86
+ 'default' => 'no',
87
+ 'frontend_available' => true,
88
+ 'hide_in_inner' => true,
89
+ 'condition' => [
90
+ '_ob_glider_is_slider' => 'yes',
91
+ ],
92
+ ]
93
+ );
94
+ // ------------------------------------------------------------------------- CONTROL SLIDER HEIGHT
95
+ $element->add_responsive_control(
96
+ '_ob_glider_h',
97
+ [
98
+ 'label' => __( 'Slider height', 'ooohboi-steroids' ),
99
+ 'type' => Controls_Manager::SLIDER,
100
+ 'separator' => 'before',
101
+ 'size_units' => [ 'px', 'vh' ],
102
+ 'range' => [
103
+ 'px' => [
104
+ 'min' => 0,
105
+ 'max' => 1000,
106
+ ],
107
+ 'vh' => [
108
+ 'min' => 0,
109
+ 'max' => 100,
110
+ ],
111
+ ],
112
+ 'default' => [
113
+ 'unit' => 'px',
114
+ 'size' => 500,
115
+ ],
116
+ 'selectors' => [
117
+ '{{WRAPPER}}.ob-is-glider .swiper-container-vertical, {{WRAPPER}}.ob-is-glider .elementor-row .swiper-slide' => 'height: {{SIZE}}{{UNIT}};',
118
+ ],
119
+ 'condition' => [
120
+ '_ob_glider_is_slider' => 'yes',
121
+ '_ob_glider_auto_h!' => 'yes',
122
+ ],
123
+ 'frontend_available' => true,
124
+ 'hide_in_inner' => true,
125
+ ]
126
+ );
127
+ // ------------------------------------------------------------------------- CONTROL Navig - prev and next
128
+ $element->add_control(
129
+ '_ob_glider_add_navig',
130
+ [
131
+ 'label' => __( 'Hide Navigation', 'ooohboi-steroids' ),
132
+ 'type' => Controls_Manager::SWITCHER,
133
+ 'separator' => 'before',
134
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
135
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
136
+ 'return_value' => 'none',
137
+ 'default' => 'block',
138
+ 'selectors' => [
139
+ '{{WRAPPER}}.ob-is-glider .elementor-container .swiper-button-prev, {{WRAPPER}}.ob-is-glider .elementor-container .swiper-button-next' => 'display: {{VALUE}};',
140
+ ],
141
+ 'condition' => [
142
+ '_ob_glider_is_slider' => 'yes',
143
+ ],
144
+ 'frontend_available' => true,
145
+ 'hide_in_inner' => true,
146
+ ]
147
+ );
148
+ // ------------------------------------------------------------------------- CONTROL POPOVER Navig
149
+ $element->add_control(
150
+ '_ob_glider_nav_styles',
151
+ [
152
+ 'label' => __( 'Navigation styles', 'ooohboi-steroids' ),
153
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
154
+ 'return_value' => 'yes',
155
+ 'hide_in_inner' => true,
156
+ 'condition' => [
157
+ '_ob_glider_is_slider' => 'yes',
158
+ '_ob_glider_add_navig!' => 'none',
159
+ ],
160
+ ]
161
+ );
162
+
163
+ $element->start_popover();
164
+
165
+ // ------------------------------------------------------------------------- CONTROL: Nav COLOR
166
+ $element->add_control(
167
+ '_ob_glider_nav_color',
168
+ [
169
+ 'label' => __( 'Arrows Color', 'ooohboi-steroids' ),
170
+ 'type' => Controls_Manager::COLOR,
171
+ 'default' => '#FFFFFF',
172
+ 'selectors' => [
173
+ '{{WRAPPER}}.ob-is-glider .swiper-button-prev path' => 'fill: {{VALUE}};',
174
+ '{{WRAPPER}}.ob-is-glider .swiper-button-next path' => 'fill: {{VALUE}};',
175
+ ],
176
+ ]
177
+ );
178
+ // ------------------------------------------------------------------------- CONTROL: Nav COLOR - Hover
179
+ $element->add_control(
180
+ '_ob_glider_nav_color_hover',
181
+ [
182
+ 'label' => __( 'Arrows Color - Hover', 'ooohboi-steroids' ),
183
+ 'type' => Controls_Manager::COLOR,
184
+ 'default' => '#FFFFFF80',
185
+ 'selectors' => [
186
+ '{{WRAPPER}}.ob-is-glider .swiper-button-prev:hover path' => 'fill: {{VALUE}};',
187
+ '{{WRAPPER}}.ob-is-glider .swiper-button-next:hover path' => 'fill: {{VALUE}};',
188
+ ],
189
+ ]
190
+ );
191
+ // ------------------------------------------------------------------------- CONTROL: Nav BG COLOR
192
+ $element->add_control(
193
+ '_ob_glider_nav_color_bg',
194
+ [
195
+ 'label' => __( 'Background Color', 'ooohboi-steroids' ),
196
+ 'type' => Controls_Manager::COLOR,
197
+ 'default' => '#0000004D',
198
+ 'selectors' => [
199
+ '{{WRAPPER}}.ob-is-glider .swiper-button-next, {{WRAPPER}}.ob-is-glider .swiper-button-prev' => 'background-color: {{VALUE}};',
200
+ ],
201
+ ]
202
+ );
203
+ // ------------------------------------------------------------------------- CONTROL: Nav BG COLOR - HOVER
204
+ $element->add_control(
205
+ '_ob_glider_nav_color_bg_hover',
206
+ [
207
+ 'label' => __( 'Background Color - Hover', 'ooohboi-steroids' ),
208
+ 'type' => Controls_Manager::COLOR,
209
+ 'default' => '#FFCC00E6',
210
+ 'selectors' => [
211
+ '{{WRAPPER}}.ob-is-glider .swiper-button-next:hover, {{WRAPPER}}.ob-is-glider .swiper-button-prev:hover' => 'background-color: {{VALUE}};',
212
+ ],
213
+ ]
214
+ );
215
+ // ------------------------------------------------------------------------- CONTROL: Nav BG border radius
216
+ $element->add_control(
217
+ '_ob_glider_nav_bord_rad',
218
+ [
219
+ 'label' => __( 'Border Radius', 'ooohboi-steroids' ),
220
+ 'type' => Controls_Manager::DIMENSIONS,
221
+ 'size_units' => [ 'px', '%' ],
222
+ 'selectors' => [
223
+ '{{WRAPPER}}.ob-is-glider .swiper-button-next, {{WRAPPER}}.ob-is-glider .swiper-button-prev' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
224
+ ],
225
+ ]
226
+ );
227
+ // -------------------------------------------------------------------------- CONTROL Icon Size
228
+ $element->add_control(
229
+ '_ob_glider_nav_icon_size',
230
+ [
231
+ 'label' => __( 'Icon size', 'ooohboi-steroids' ),
232
+ 'type' => Controls_Manager::SLIDER,
233
+ 'range' => [
234
+ 'px' => [
235
+ 'max' => 100,
236
+ 'step' => 1,
237
+ ],
238
+ ],
239
+ 'default' => [
240
+ 'unit' => 'px',
241
+ 'size' => 30,
242
+ ],
243
+ 'selectors' => [
244
+ '{{WRAPPER}}.ob-is-glider .swiper-button-next, {{WRAPPER}}.ob-is-glider .swiper-button-prev' => 'width: unset; height: unset;',
245
+ '{{WRAPPER}}.ob-is-glider .swiper-button-next svg, {{WRAPPER}}.ob-is-glider .swiper-button-prev svg' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}}; display: block;',
246
+ ],
247
+ ]
248
+ );
249
+ // -------------------------------------------------------------------------- CONTROL Padding
250
+ $element->add_control(
251
+ '_ob_glider_nav_padding',
252
+ [
253
+ 'label' => __( 'Padding', 'ooohboi-steroids' ),
254
+ 'type' => Controls_Manager::SLIDER,
255
+ 'range' => [
256
+ 'px' => [
257
+ 'max' => 100,
258
+ 'step' => 1,
259
+ ],
260
+ ],
261
+ 'default' => [
262
+ 'unit' => 'px',
263
+ 'size' => 10,
264
+ ],
265
+ 'selectors' => [
266
+ '{{WRAPPER}}.ob-is-glider .swiper-button-next, {{WRAPPER}}.ob-is-glider .swiper-button-prev' => 'padding: {{SIZE}}{{UNIT}}; margin-top: unset;',
267
+ ],
268
+ ]
269
+ );
270
+ // ------------------------------------------------------------------------- CONTROL: position Y both
271
+ $element->add_control(
272
+ '_ob_glider_nav_pos_y_alt',
273
+ [
274
+ 'label' => __( 'Calc - Y', 'ooohboi-steroids' ),
275
+ 'description' => __( 'Valid CSS only! Like: 25px or 15em or 100% - 50px or 50% + 3rem', 'ooohboi-steroids' ),
276
+ 'default' => '50% - 25px',
277
+ 'type' => Controls_Manager::TEXT,
278
+ 'selectors' => [
279
+ '{{WRAPPER}}.ob-is-glider .swiper-button-next, {{WRAPPER}}.ob-is-glider .swiper-button-prev' => 'top: calc({{VALUE}});',
280
+ ],
281
+ ]
282
+ );
283
+ // -------------------------------------------------------------------------- CONTROL position X prev
284
+ $element->add_control(
285
+ '_ob_glider_nav_pos_x_prev_alt',
286
+ [
287
+ 'label' => __( 'Calc Prev - X', 'ooohboi-steroids' ),
288
+ 'type' => Controls_Manager::TEXT,
289
+ 'description' => __( 'Valid CSS only! Like: 25px or 15em or 100% - 50px or 50% + 3rem', 'ooohboi-steroids' ),
290
+ 'default' => '0%',
291
+ 'selectors' => [
292
+ '{{WRAPPER}}.ob-is-glider .swiper-button-prev' => 'left: calc({{VALUE}}); right: unset;',
293
+ ],
294
+ ]
295
+ );
296
+ // -------------------------------------------------------------------------- CONTROL position X next
297
+ $element->add_control(
298
+ '_ob_glider_nav_pos_x_next_alt',
299
+ [
300
+ 'label' => __( 'Calc Next - X', 'ooohboi-steroids' ),
301
+ 'type' => Controls_Manager::TEXT,
302
+ 'description' => __( 'Valid CSS only! Like: 25px or 15em or 100% - 50px or 50% + 3rem', 'ooohboi-steroids' ),
303
+ 'default' => '0%',
304
+ 'selectors' => [
305
+ '{{WRAPPER}}.ob-is-glider .swiper-button-next' => 'right: calc({{VALUE}}); left: unset;',
306
+ ],
307
+ ]
308
+ );
309
+
310
+ $element->end_popover(); // popover end
311
+
312
+ // ------------------------------------------------------------------------- CONTROL Pagination
313
+ $element->add_control(
314
+ '_ob_glider_add_pagination',
315
+ [
316
+ 'label' => __( 'Hide Pagination', 'ooohboi-steroids' ),
317
+ 'type' => Controls_Manager::SWITCHER,
318
+ 'separator' => 'before',
319
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
320
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
321
+ 'return_value' => 'none',
322
+ 'default' => 'block',
323
+ 'selectors' => [
324
+ '{{WRAPPER}}.ob-is-glider .elementor-container .swiper-pagination' => 'display: {{VALUE}};',
325
+ ],
326
+ 'condition' => [
327
+ '_ob_glider_is_slider' => 'yes',
328
+ ],
329
+ 'frontend_available' => true,
330
+ 'hide_in_inner' => true,
331
+ ]
332
+ );
333
+
334
+ // ------------------------------------------------------------------------- CONTROL POPOVER Pagination
335
+ $element->add_control(
336
+ '_ob_glider_pagination_styles',
337
+ [
338
+ 'label' => __( 'Pagination styles', 'ooohboi-steroids' ),
339
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
340
+ 'return_value' => 'yes',
341
+ 'hide_in_inner' => true,
342
+ 'condition' => [
343
+ '_ob_glider_is_slider' => 'yes',
344
+ '_ob_glider_add_pagination!' => 'none',
345
+ ],
346
+ ]
347
+ );
348
+
349
+ $element->start_popover();
350
+ // ------------------------------------------------------------------------- CONTROL: Pagination Type
351
+ $element->add_control(
352
+ '_ob_glider_pagination_type',
353
+ [
354
+ 'label' => __( 'Pagination type', 'ooohboi-steroids' ),
355
+ 'type' => Controls_Manager::SELECT,
356
+ 'default' => 'bullets',
357
+ 'options' => [
358
+ 'bullets' => __( 'Bullets', 'ooohboi-steroids' ),
359
+ 'fraction' => __( 'Fraction', 'ooohboi-steroids' ),
360
+ 'progressbar' => __( 'Progress Bar', 'ooohboi-steroids' ),
361
+ ],
362
+ 'condition' => [
363
+ '_ob_glider_is_slider' => 'yes',
364
+ ],
365
+ 'frontend_available' => true,
366
+ ]
367
+ );
368
+
369
+ // ------------------------------------------------------------------------- CONTROL: Pagination COLOR
370
+ $element->add_control(
371
+ '_ob_glider_pagination_color',
372
+ [
373
+ 'label' => __( 'Pagination Color', 'ooohboi-steroids' ),
374
+ 'type' => Controls_Manager::COLOR,
375
+ 'default' => '#00000080',
376
+ 'selectors' => [
377
+ '{{WRAPPER}}.ob-is-glider .swiper-pagination-bullet' => 'background-color: {{VALUE}}; opacity: 1;',
378
+ '{{WRAPPER}}.ob-is-glider .swiper-pagination-progressbar' => 'background: {{VALUE}};',
379
+ ],
380
+ ]
381
+ );
382
+ // ------------------------------------------------------------------------- CONTROL: Pagination COLOR Active
383
+ $element->add_control(
384
+ '_ob_glider_pagination_color_active',
385
+ [
386
+ 'label' => __( 'Pagination Color - Active', 'ooohboi-steroids' ),
387
+ 'type' => Controls_Manager::COLOR,
388
+ 'default' => '#000000',
389
+ 'selectors' => [
390
+ '{{WRAPPER}}.ob-is-glider .swiper-pagination-bullet-active' => 'background-color: {{VALUE}}; opacity: 1;',
391
+ '{{WRAPPER}}.ob-is-glider .swiper-pagination-fraction' => 'color: {{VALUE}};',
392
+ '{{WRAPPER}}.ob-is-glider .swiper-pagination-progressbar .swiper-pagination-progressbar-fill' => 'background: {{VALUE}};',
393
+ ],
394
+ ]
395
+ );
396
+ // ------------------------------------------------------------------------- CONTROL: Pagination Size
397
+ $element->add_control(
398
+ '_ob_glider_pagination_size',
399
+ [
400
+ 'label' => __( 'Size', 'ooohboi-steroids' ),
401
+ 'type' => Controls_Manager::SLIDER,
402
+ 'default' => [
403
+ 'size' => 12,
404
+ ],
405
+ 'range' => [
406
+ 'px' => [
407
+ 'max' => 100,
408
+ 'step' => 1,
409
+ ],
410
+ ],
411
+ 'selectors' => [
412
+ '{{WRAPPER}}.ob-is-glider .swiper-pagination-bullet' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
413
+ '{{WRAPPER}}.ob-is-glider .swiper-pagination-fraction' => 'font-size: {{SIZE}}{{UNIT}};',
414
+ '{{WRAPPER}}.ob-is-glider .swiper-container-horizontal > .swiper-pagination-progressbar' => 'height: {{SIZE}}{{UNIT}};',
415
+ '{{WRAPPER}}.ob-is-glider .swiper-container-vertical > .swiper-pagination-progressbar' => 'width: {{SIZE}}{{UNIT}};',
416
+ ],
417
+ ]
418
+ );
419
+ // ------------------------------------------------------------------------- CONTROL: Nav BG border radius
420
+ $element->add_control(
421
+ '_ob_glider_pagination_bord_rad',
422
+ [
423
+ 'label' => __( 'Border Radius', 'ooohboi-steroids' ),
424
+ 'type' => Controls_Manager::DIMENSIONS,
425
+ 'size_units' => [ 'px', '%' ],
426
+ 'selectors' => [
427
+ '{{WRAPPER}}.ob-is-glider .swiper-pagination-bullet' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
428
+ ],
429
+ 'condition' => [
430
+ '_ob_glider_pagination_type' => [ 'bullets' ],
431
+ ],
432
+ ]
433
+ );
434
+
435
+ $element->end_popover(); // popover end
436
+
437
+ // ------------------------------------------------------------------------- CONTROL: Effect
438
+ $element->add_control(
439
+ '_ob_glider_effect',
440
+ [
441
+ 'label' => __( 'Transition type', 'ooohboi-steroids' ),
442
+ 'type' => Controls_Manager::SELECT,
443
+ 'separator' => 'before',
444
+ 'default' => 'slide',
445
+ 'options' => [
446
+ 'slide' => __( 'Slide', 'ooohboi-steroids' ),
447
+ 'fade' => __( 'Fade', 'ooohboi-steroids' ),
448
+ ],
449
+ 'condition' => [
450
+ '_ob_glider_is_slider' => 'yes',
451
+ ],
452
+ 'frontend_available' => true,
453
+ 'hide_in_inner' => true,
454
+ ]
455
+ );
456
+ // ------------------------------------------------------------------------- CONTROL Loop
457
+ $element->add_control(
458
+ '_ob_glider_loop',
459
+ [
460
+ 'label' => __( 'Infinite Loop', 'ooohboi-steroids' ),
461
+ 'type' => Controls_Manager::SWITCHER,
462
+ 'separator' => 'before',
463
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
464
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
465
+ 'return_value' => 'yes',
466
+ 'default' => 'yes',
467
+ 'condition' => [
468
+ '_ob_glider_is_slider' => 'yes',
469
+ '_ob_glider_effect' => 'slide',
470
+ ],
471
+ 'frontend_available' => true,
472
+ 'hide_in_inner' => true,
473
+ ]
474
+ );
475
+ // ------------------------------------------------------------------------- CONTROL: Direction
476
+ $element->add_control(
477
+ '_ob_glider_direction',
478
+ [
479
+ 'label' => __( 'Direction', 'ooohboi-steroids' ),
480
+ 'type' => Controls_Manager::SELECT,
481
+ 'separator' => 'before',
482
+ 'default' => 'horizontal',
483
+ 'options' => [
484
+ 'horizontal' => __( 'Horizontal', 'ooohboi-steroids' ),
485
+ 'vertical' => __( 'Vertical', 'ooohboi-steroids' ),
486
+ ],
487
+ 'condition' => [
488
+ '_ob_glider_is_slider' => 'yes',
489
+ '_ob_glider_effect' => 'slide',
490
+ ],
491
+ 'frontend_available' => true,
492
+ 'hide_in_inner' => true,
493
+ ]
494
+ );
495
+ // ------------------------------------------------------------------------- CONTROL Parallax
496
+ $element->add_control(
497
+ '_ob_glider_parallax',
498
+ [
499
+ 'label' => __( 'Parallax', 'ooohboi-steroids' ),
500
+ 'description' => __( 'It will work with Elementor PRO Attributes only.', 'ooohboi-steroids' ),
501
+ 'type' => Controls_Manager::SWITCHER,
502
+ 'separator' => 'before',
503
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
504
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
505
+ 'return_value' => 'yes',
506
+ 'default' => 'yes',
507
+ 'condition' => [
508
+ '_ob_glider_is_slider' => 'yes',
509
+ '_ob_glider_effect' => 'slide',
510
+ ],
511
+ 'frontend_available' => true,
512
+ 'hide_in_inner' => true,
513
+ ]
514
+ );
515
+ // ------------------------------------------------------------------------- CONTROL Speed
516
+ $element->add_control(
517
+ '_ob_glider_speed',
518
+ [
519
+ 'label' => __( 'Transition speed', 'ooohboi-steroids' ),
520
+ 'type' => Controls_Manager::NUMBER,
521
+ 'separator' => 'before',
522
+ 'min' => 1,
523
+ 'default' => 450,
524
+ 'condition' => [
525
+ '_ob_glider_is_slider' => 'yes',
526
+ ],
527
+ 'frontend_available' => true,
528
+ 'hide_in_inner' => true,
529
+ ]
530
+ );
531
+ // ------------------------------------------------------------------------- CONTROL Disable TouchMove
532
+ $element->add_control(
533
+ '_ob_glider_allow_touch_move',
534
+ [
535
+ 'label' => __( 'Allow Touch Move', 'ooohboi-steroids' ),
536
+ 'type' => Controls_Manager::SWITCHER,
537
+ 'separator' => 'before',
538
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
539
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
540
+ 'return_value' => 'yes',
541
+ 'default' => 'yes',
542
+ 'condition' => [
543
+ '_ob_glider_is_slider' => 'yes',
544
+ ],
545
+ 'frontend_available' => true,
546
+ 'hide_in_inner' => true,
547
+ ]
548
+ );
549
+ // ------------------------------------------------------------------------- CONTROL Autoplay
550
+ $element->add_control(
551
+ '_ob_glider_autoplay',
552
+ [
553
+ 'label' => __( 'Autoplay', 'ooohboi-steroids' ),
554
+ 'type' => Controls_Manager::SWITCHER,
555
+ 'separator' => 'before',
556
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
557
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
558
+ 'return_value' => true,
559
+ 'default' => '',
560
+ 'condition' => [
561
+ '_ob_glider_is_slider' => 'yes',
562
+ ],
563
+ 'frontend_available' => true,
564
+ 'hide_in_inner' => true,
565
+ ]
566
+ );
567
+ // ------------------------------------------------------------------------- CONTROL Autoplay delay
568
+ $element->add_control(
569
+ '_ob_glider_autoplay_delay',
570
+ [
571
+ 'label' => __( 'Autoplay delay', 'ooohboi-steroids' ),
572
+ 'description' => __( 'In miliseconds! 1000 is one second.', 'ooohboi-steroids' ),
573
+ 'type' => Controls_Manager::NUMBER,
574
+ 'min' => 1000,
575
+ 'default' => 3000,
576
+ 'condition' => [
577
+ '_ob_glider_is_slider' => 'yes',
578
+ '_ob_glider_autoplay!' => '',
579
+ ],
580
+ 'frontend_available' => true,
581
+ 'hide_in_inner' => true,
582
+ ]
583
+ );
584
+
585
+ // ------------------------------------------------------------------------- CONTROL: Sponsor
586
+ $element->add_control(
587
+ '_ob_sponsorship_glider',
588
+ [
589
+ 'type' => Controls_Manager::RAW_HTML,
590
+ 'raw' => OoohBoi_Steroids::ooohboi_commercializer(),
591
+ 'prefix_class' => 'ob-steroids-sponsor-',
592
+ ]
593
+ );
594
+
595
+ $element->end_controls_section();
596
+
597
+ }
598
+
599
+ }
controls/ooohboi-harakiri.php ADDED
@@ -0,0 +1,200 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use Elementor\Controls_Manager;
3
+ use Elementor\Controls_Stack;
4
+ use Elementor\Element_Base;
5
+
6
+ if ( ! defined( 'ABSPATH' ) ) {
7
+ exit; // Exit if accessed directly.
8
+ }
9
+
10
+ /**
11
+ * Main OoohBoi Harakiri
12
+ *
13
+ * The main class that initiates and runs the plugin.
14
+ *
15
+ * @since 1.0.0
16
+ */
17
+ final class OoohBoi_Harakiri {
18
+
19
+ /**
20
+ * Initialize
21
+ *
22
+ * @since 1.0.0
23
+ *
24
+ * @access public
25
+ */
26
+ public static function init() {
27
+
28
+ add_action( 'elementor/element/heading/section_title_style/before_section_end', [ __CLASS__, 'add_section' ] );
29
+ add_action( 'elementor/element/text-editor/section_style/before_section_end', [ __CLASS__, 'add_section' ] );
30
+ add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
31
+
32
+ }
33
+
34
+ public static function add_attributes( Element_Base $element ) {
35
+
36
+ if( ! in_array( $element->get_name(), [ 'heading', 'text-editor' ] ) ) return;
37
+ $settings = $element->get_settings();
38
+ $does_harakiri = isset( $settings[ '_ob_harakiri_writing_mode' ] ) ? $settings[ '_ob_harakiri_writing_mode' ] : '';
39
+
40
+ if( 'inherit' !== $settings[ '_ob_harakiri_writing_mode' ] )
41
+ $element->add_render_attribute( '_wrapper', 'class', 'ob-harakiri' );
42
+
43
+ }
44
+
45
+ public static function add_section( Element_Base $element ) {
46
+
47
+ // create panel section
48
+ $element->add_control(
49
+ '_ob_harakiri_plugin_title',
50
+ [
51
+ 'label' => 'H A R A K I R I',
52
+ 'type' => Controls_Manager::HEADING,
53
+ 'separator' => 'before',
54
+ ]
55
+ );
56
+ $element->add_responsive_control(
57
+ '_ob_harakiri_writing_mode',
58
+ [
59
+ 'label' => __( 'Writing Mode', 'ooohboi-steroids' ),
60
+ 'type' => Controls_Manager::SELECT,
61
+ 'default' => 'inherit',
62
+ 'prefix_class' => 'ob-harakiri-',
63
+ 'frontend_available' => true,
64
+ 'options' => [
65
+ 'vertical-lr' => __( 'Vertical LR', 'ooohboi-steroids' ),
66
+ 'vertical-rl' => __( 'Vertical RL', 'ooohboi-steroids' ),
67
+ 'inherit' => __( 'Normal', 'ooohboi-steroids' ),
68
+ ],
69
+ 'selectors' => [
70
+ '{{WRAPPER}}.ob-harakiri' => 'writing-mode: {{VALUE}};',
71
+ '{{WRAPPER}}.ob-harakiri .elementor-heading-title' => 'writing-mode: {{VALUE}};',
72
+ '{{WRAPPER}}.ob-harakiri .elementor-text-editor' => 'writing-mode: {{VALUE}};',
73
+ ],
74
+ ]
75
+ );
76
+ $element->add_responsive_control(
77
+ '_ob_harakiri_make_inline',
78
+ [
79
+ 'label' => __( 'Flip', 'ooohboi-steroids' ),
80
+ 'type' => Controls_Manager::SWITCHER,
81
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
82
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
83
+ 'return_value' => 'no',
84
+ 'default' => 'no',
85
+ 'label_block' => false,
86
+ 'condition' => [
87
+ '_ob_harakiri_writing_mode!' => 'inherit',
88
+ ],
89
+ 'selectors' => [
90
+ '{{WRAPPER}}.ob-harakiri .elementor-heading-title' => 'transform: rotate(180deg);',
91
+ '{{WRAPPER}}.ob-harakiri .elementor-text-editor' => 'transform: rotate(180deg);',
92
+ ],
93
+ 'device_args' => [
94
+ Controls_Stack::RESPONSIVE_TABLET => [
95
+ 'selectors' => [
96
+ '{{WRAPPER}}.ob-harakiri .elementor-heading-title' => 'transform: rotate(180deg);',
97
+ '{{WRAPPER}}.ob-harakiri .elementor-text-editor' => 'transform: rotate(180deg);',
98
+ ],
99
+ 'condition' => [
100
+ '_ob_harakiri_writing_mode_tablet!' => 'inherit',
101
+ ],
102
+ ],
103
+ Controls_Stack::RESPONSIVE_MOBILE => [
104
+ 'selectors' => [
105
+ '{{WRAPPER}}.ob-harakiri .elementor-heading-title' => 'transform: rotate(180deg);',
106
+ '{{WRAPPER}}.ob-harakiri .elementor-text-editor' => 'transform: rotate(180deg);',
107
+ ],
108
+ 'condition' => [
109
+ '_ob_harakiri_writing_mode_mobile!' => 'inherit',
110
+ ],
111
+ ],
112
+ ],
113
+ ]
114
+ );
115
+ $element->add_responsive_control(
116
+ '_ob_harakiri_height',
117
+ [
118
+ 'label' => __( 'Height', 'ooohboi-steroids' ),
119
+ 'type' => Controls_Manager::SELECT,
120
+ 'default' => '',
121
+ 'options' => [
122
+ '' => __( 'Default', 'ooohboi-steroids' ),
123
+ 'auto' => __( 'Inline', 'ooohboi-steroids' ) . ' (auto)',
124
+ 'initial' => __( 'Custom', 'ooohboi-steroids' ),
125
+ ],
126
+ 'selectors_dictionary' => [
127
+ 'inherit' => '100%',
128
+ ],
129
+ 'selectors' => [
130
+ '{{WRAPPER}}.ob-harakiri' => 'inline-size: {{VALUE}}; width: unset;',
131
+ '{{WRAPPER}}.ob-harakiri .elementor-heading-title' => 'inline-size: {{VALUE}};',
132
+ '{{WRAPPER}}.ob-harakiri .elementor-text-editor' => 'inline-size: {{VALUE}};',
133
+ ],
134
+ 'condition' => [
135
+ '_ob_harakiri_writing_mode!' => 'inherit',
136
+ ],
137
+ ]
138
+ );
139
+ $element->add_responsive_control(
140
+ '_ob_harakiri_height_custom',
141
+ [
142
+ 'label' => __( 'Custom Height', 'ooohboi-steroids' ),
143
+ 'description' => __( 'NOTE: [%] unit works properly only if Column height is a fixed value!', 'ooohboi-steroids' ),
144
+ 'type' => Controls_Manager::SLIDER,
145
+ 'range' => [
146
+ 'px' => [
147
+ 'max' => 1000,
148
+ 'step' => 1,
149
+ ],
150
+ '%' => [
151
+ 'max' => 100,
152
+ 'step' => 1,
153
+ ],
154
+ 'vh' => [
155
+ 'max' => 100,
156
+ 'step' => 1,
157
+ ],
158
+ ],
159
+ 'default' => [
160
+ 'unit' => '%',
161
+ 'size' => 100,
162
+ ],
163
+ 'size_units' => [ 'px', '%', 'vh' ],
164
+ 'selectors' => [
165
+ '{{WRAPPER}}.ob-harakiri' => 'inline-size: {{SIZE}}{{UNIT}}; width: unset;',
166
+ ],
167
+ 'device_args' => [
168
+ Controls_Stack::RESPONSIVE_TABLET => [
169
+ 'condition' => [
170
+ '_ob_harakiri_height_tablet' => [ 'initial' ],
171
+ '_ob_harakiri_writing_mode!' => 'inherit',
172
+ ],
173
+ ],
174
+ Controls_Stack::RESPONSIVE_MOBILE => [
175
+ 'condition' => [
176
+ '_ob_harakiri_height_mobile' => [ 'initial' ],
177
+ '_ob_harakiri_writing_mode!' => 'inherit',
178
+ ],
179
+ ],
180
+ ],
181
+ 'condition' => [
182
+ '_ob_harakiri_height' => [ 'initial' ],
183
+ '_ob_harakiri_writing_mode!' => 'inherit',
184
+ ],
185
+ ]
186
+ );
187
+
188
+ // ------------------------------------------------------------------------- CONTROL: Sponsor
189
+ $element->add_control(
190
+ '_ob_sponsorship_overlaiz',
191
+ [
192
+ 'type' => Controls_Manager::RAW_HTML,
193
+ 'raw' => OoohBoi_Steroids::ooohboi_commercializer(),
194
+ 'prefix_class' => 'ob-steroids-sponsor-',
195
+ ]
196
+ );
197
+
198
+ }
199
+
200
+ }
controls/ooohboi-overlaiz.php ADDED
@@ -0,0 +1,448 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use Elementor\Controls_Manager;
3
+ use Elementor\Controls_Stack;
4
+ use Elementor\Group_Control_Border;
5
+ use Elementor\Group_Control_Box_Shadow;
6
+
7
+ if ( ! defined( 'ABSPATH' ) ) {
8
+ exit; // Exit if accessed directly.
9
+ }
10
+
11
+ /**
12
+ * Main OoohBoi Overlaiz
13
+ *
14
+ * The main class that initiates and runs the plugin.
15
+ *
16
+ * @since 1.0.0
17
+ */
18
+ final class OoohBoi_Overlaiz {
19
+
20
+ /**
21
+ * Initialize
22
+ *
23
+ * @since 1.0.0
24
+ *
25
+ * @access public
26
+ */
27
+ public static function init() {
28
+
29
+ add_action( 'elementor/element/section/section_background_overlay/before_section_end', [ __CLASS__, 'ooohboi_overlaiz_get_controls' ], 10, 2 );
30
+ add_action( 'elementor/element/column/section_background_overlay/before_section_end', [ __CLASS__, 'ooohboi_overlaiz_get_controls' ], 10, 2 );
31
+
32
+ }
33
+
34
+ public static function ooohboi_overlaiz_get_controls( $element, $args ) {
35
+
36
+ // selector based on the current element
37
+ $selector = '{{WRAPPER}} > .elementor-column-wrap > .elementor-background-overlay, {{WRAPPER}} > .elementor-widget-wrap > .elementor-background-overlay';
38
+ if( 'section' == $element->get_name() )
39
+ $selector = '{{WRAPPER}} > .elementor-background-overlay';
40
+
41
+
42
+ $element->add_control(
43
+ '_ob_overlaiz_plugin_title',
44
+ [
45
+ 'label' => 'O V E R L A I Z',
46
+ 'type' => Controls_Manager::HEADING,
47
+ 'separator' => 'before',
48
+ 'condition' => [
49
+ 'background_overlay_background' => [ 'classic', 'gradient' ],
50
+ ],
51
+ ]
52
+ );
53
+
54
+ // ------------------------------------------------------------------------- CONTROL: Use Overlaiz
55
+ $element->add_control(
56
+ '_ob_overlaiz_use_it',
57
+ [
58
+ 'label' => __( 'Enable Overlaiz?', 'ooohboi-steroids' ),
59
+ 'separator' => 'after',
60
+ 'type' => Controls_Manager::SWITCHER,
61
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
62
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
63
+ 'return_value' => 'yes',
64
+ 'default' => 'no',
65
+ 'condition' => [
66
+ 'background_overlay_background' => [ 'classic', 'gradient' ],
67
+ ],
68
+ ]
69
+ );
70
+
71
+ // ------------------------------------------------------------------------- CONTROL: background overlay width
72
+ $element->add_responsive_control(
73
+ '_ob_overlaiz_width',
74
+ [
75
+ 'label' => __( 'Width', 'ooohboi-steroids' ),
76
+ 'type' => Controls_Manager::SLIDER,
77
+ 'size_units' => [ 'px', '%' ],
78
+ 'default' => [
79
+ 'unit' => '%',
80
+ 'size' => 100,
81
+ ],
82
+ 'default_tablet' => [
83
+ 'unit' => '%',
84
+ 'size' => 100,
85
+ ],
86
+ 'default_mobile' => [
87
+ 'unit' => '%',
88
+ 'size' => 100,
89
+ ],
90
+ 'range' => [
91
+ 'px' => [
92
+ 'min' => -500,
93
+ 'max' => 500,
94
+ ],
95
+ '%' => [
96
+ 'min' => 5,
97
+ 'max' => 500,
98
+ ],
99
+ ],
100
+ 'selectors' => [
101
+ $selector => 'width: {{SIZE}}{{UNIT}};',
102
+ ],
103
+ 'condition' => [
104
+ '_ob_overlaiz_use_it' => 'yes',
105
+ 'background_overlay_background' => [ 'classic', 'gradient' ],
106
+ '_ob_overlaiz_width_alt' => '',
107
+ ],
108
+ 'device_args' => [
109
+ Controls_Stack::RESPONSIVE_TABLET => [
110
+ 'selectors' => [
111
+ $selector => 'width: {{SIZE}}{{UNIT}};',
112
+ ],
113
+ ],
114
+ Controls_Stack::RESPONSIVE_MOBILE => [
115
+ 'selectors' => [
116
+ $selector => 'width: {{SIZE}}{{UNIT}};',
117
+ ],
118
+ ],
119
+ ],
120
+ ]
121
+ );
122
+ // --------------------------------------------------------------------------------------------- CONTROL: background overlay width - Alternative
123
+ $element->add_responsive_control(
124
+ '_ob_overlaiz_width_alt',
125
+ [
126
+ 'label' => __( 'Calc Width', 'ooohboi-steroids' ),
127
+ 'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
128
+ 'type' => Controls_Manager::TEXT,
129
+ 'selectors' => [
130
+ $selector => 'width: calc({{VALUE}});',
131
+ ],
132
+ 'condition' => [
133
+ '_ob_overlaiz_use_it' => 'yes',
134
+ 'background_overlay_background' => [ 'classic', 'gradient' ],
135
+ ],
136
+ ]
137
+ );
138
+ // ------------------------------------------------------------------------- CONTROL: background overlay height
139
+ $element->add_responsive_control(
140
+ '_ob_overlaiz_height',
141
+ [
142
+ 'label' => __( 'Height', 'ooohboi-steroids' ),
143
+ 'type' => Controls_Manager::SLIDER,
144
+ 'size_units' => [ 'px', '%' ],
145
+ 'default' => [
146
+ 'unit' => '%',
147
+ 'size' => 100,
148
+ ],
149
+ 'default_tablet' => [
150
+ 'unit' => '%',
151
+ 'size' => 100,
152
+ ],
153
+ 'default_mobile' => [
154
+ 'unit' => '%',
155
+ 'size' => 100,
156
+ ],
157
+ 'range' => [
158
+ 'px' => [
159
+ 'min' => -500,
160
+ 'max' => 500,
161
+ ],
162
+ '%' => [
163
+ 'min' => 5,
164
+ 'max' => 500,
165
+ ],
166
+ ],
167
+ 'selectors' => [
168
+ $selector => 'height: {{SIZE}}{{UNIT}};',
169
+ ],
170
+ 'condition' => [
171
+ '_ob_overlaiz_use_it' => 'yes',
172
+ 'background_overlay_background' => [ 'classic', 'gradient' ],
173
+ '_ob_overlaiz_height_alt' => '',
174
+ ],
175
+ 'device_args' => [
176
+ Controls_Stack::RESPONSIVE_TABLET => [
177
+ 'selectors' => [
178
+ $selector => 'height: {{SIZE}}{{UNIT}};',
179
+ ],
180
+ ],
181
+ Controls_Stack::RESPONSIVE_MOBILE => [
182
+ 'selectors' => [
183
+ $selector => 'height: {{SIZE}}{{UNIT}};',
184
+ ],
185
+ ],
186
+ ],
187
+ ]
188
+ );
189
+ // --------------------------------------------------------------------------------------------- CONTROL: background overlay height - Alternative
190
+ $element->add_responsive_control(
191
+ '_ob_overlaiz_height_alt',
192
+ [
193
+ 'label' => __( 'Calc Height', 'ooohboi-steroids' ),
194
+ 'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
195
+ 'type' => Controls_Manager::TEXT,
196
+ 'selectors' => [
197
+ $selector => 'height: calc({{VALUE}});',
198
+ ],
199
+ 'condition' => [
200
+ '_ob_overlaiz_use_it' => 'yes',
201
+ 'background_overlay_background' => [ 'classic', 'gradient' ],
202
+ ],
203
+ ]
204
+ );
205
+ // ------------------------------------------------------------------------- CONTROL: move background overlay - X
206
+ $element->add_responsive_control(
207
+ '_ob_overlaiz_move_bg_x',
208
+ [
209
+ 'label' => __( 'Position - X', 'ooohboi-steroids' ),
210
+ 'type' => Controls_Manager::SLIDER,
211
+ 'size_units' => [ 'px', '%' ],
212
+ 'default' => [
213
+ 'unit' => '%',
214
+ 'size' => 0,
215
+ ],
216
+ 'default_tablet' => [
217
+ 'unit' => '%',
218
+ 'size' => 0,
219
+ ],
220
+ 'default_mobile' => [
221
+ 'unit' => '%',
222
+ 'size' => 0,
223
+ ],
224
+ 'range' => [
225
+ 'px' => [
226
+ 'min' => -500,
227
+ 'max' => 500,
228
+ ],
229
+ '%' => [
230
+ 'min' => -100,
231
+ 'max' => 100,
232
+ ],
233
+ ],
234
+ 'selectors' => [
235
+ $selector => 'left: {{SIZE}}{{UNIT}};',
236
+ ],
237
+ 'condition' => [
238
+ '_ob_overlaiz_use_it' => 'yes',
239
+ 'background_overlay_background' => [ 'classic', 'gradient' ],
240
+ '_ob_overlaiz_move_bg_x_alt' => '',
241
+ ],
242
+ 'device_args' => [
243
+ Controls_Stack::RESPONSIVE_TABLET => [
244
+ 'selectors' => [
245
+ $selector => 'left: {{SIZE}}{{UNIT}};',
246
+ ],
247
+ ],
248
+ Controls_Stack::RESPONSIVE_MOBILE => [
249
+ 'selectors' => [
250
+ $selector => 'left: {{SIZE}}{{UNIT}};',
251
+ ],
252
+ ],
253
+ ],
254
+ ]
255
+ );
256
+ // --------------------------------------------------------------------------------------------- CONTROL: move background overlay - X - Alternative
257
+ $element->add_responsive_control(
258
+ '_ob_overlaiz_move_bg_x_alt',
259
+ [
260
+ 'label' => __( 'Calc Position - X', 'ooohboi-steroids' ),
261
+ 'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
262
+ 'type' => Controls_Manager::TEXT,
263
+ 'selectors' => [
264
+ $selector => 'left: calc({{VALUE}});',
265
+ ],
266
+ 'condition' => [
267
+ '_ob_overlaiz_use_it' => 'yes',
268
+ 'background_overlay_background' => [ 'classic', 'gradient' ],
269
+ ],
270
+ ]
271
+ );
272
+ // ------------------------------------------------------------------------- CONTROL: Magic Overlays - move background overlay - Y
273
+ $element->add_responsive_control(
274
+ '_ob_overlaiz_move_bg_y',
275
+ [
276
+ 'label' => __( 'Position - Y', 'ooohboi-steroids' ),
277
+ 'type' => Controls_Manager::SLIDER,
278
+ 'size_units' => [ 'px', '%' ],
279
+ 'default' => [
280
+ 'unit' => '%',
281
+ 'size' => 0,
282
+ ],
283
+ 'default_tablet' => [
284
+ 'unit' => '%',
285
+ 'size' => 0,
286
+ ],
287
+ 'default_mobile' => [
288
+ 'unit' => '%',
289
+ 'size' => 0,
290
+ ],
291
+ 'range' => [
292
+ 'px' => [
293
+ 'min' => -500,
294
+ 'max' => 500,
295
+ ],
296
+ '%' => [
297
+ 'min' => -100,
298
+ 'max' => 100,
299
+ ],
300
+ ],
301
+ 'selectors' => [
302
+ $selector => 'top: {{SIZE}}{{UNIT}};',
303
+ ],
304
+ 'condition' => [
305
+ '_ob_overlaiz_use_it' => 'yes',
306
+ 'background_overlay_background' => [ 'classic', 'gradient' ],
307
+ '_ob_overlaiz_move_bg_y_alt' => '',
308
+ ],
309
+ 'device_args' => [
310
+ Controls_Stack::RESPONSIVE_TABLET => [
311
+ 'selectors' => [
312
+ $selector => 'top: {{SIZE}}{{UNIT}};',
313
+ ],
314
+ ],
315
+ Controls_Stack::RESPONSIVE_MOBILE => [
316
+ 'selectors' => [
317
+ $selector => 'top: {{SIZE}}{{UNIT}};',
318
+ ],
319
+ ],
320
+ ],
321
+ ]
322
+ );
323
+ // --------------------------------------------------------------------------------------------- CONTROL: move background overlay - Y - Alternative
324
+ $element->add_responsive_control(
325
+ '_ob_overlaiz_move_bg_y_alt',
326
+ [
327
+ 'label' => __( 'Calc Position - Y', 'ooohboi-steroids' ),
328
+ 'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
329
+ 'type' => Controls_Manager::TEXT,
330
+ 'selectors' => [
331
+ $selector => 'top: calc({{VALUE}});',
332
+ ],
333
+ 'condition' => [
334
+ '_ob_overlaiz_use_it' => 'yes',
335
+ 'background_overlay_background' => [ 'classic', 'gradient' ],
336
+ ],
337
+ ]
338
+ );
339
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER BORDER
340
+ $element->add_control(
341
+ '_ob_overlaiz_popover_border',
342
+ [
343
+ 'label' => __( 'Border', 'ooohboi-steroids' ),
344
+ 'separator' => 'before',
345
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
346
+ 'return_value' => 'yes',
347
+ 'frontend_available' => true,
348
+ 'condition' => [
349
+ '_ob_overlaiz_use_it' => 'yes',
350
+ 'background_overlay_background' => [ 'classic', 'gradient' ],
351
+ ],
352
+ ]
353
+ );
354
+
355
+ $element->start_popover();
356
+
357
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER BORDER ALL
358
+ $element->add_group_control(
359
+ Group_Control_Border::get_type(),
360
+ [
361
+ 'name' => '_ob_overlaiz_borders',
362
+ 'label' => __( 'Border', 'ooohboi-steroids' ),
363
+ 'selector' => $selector,
364
+ 'condition' => [
365
+ '_ob_overlaiz_use_it' => 'yes',
366
+ 'background_overlay_background' => [ 'classic', 'gradient' ],
367
+ ],
368
+ ]
369
+ );
370
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER BORDER RADIUS
371
+ $element->add_responsive_control(
372
+ '_ob_overlaiz_border_rad',
373
+ [
374
+ 'label' => __( 'Border Radius', 'ooohboi-steroids' ),
375
+ 'type' => Controls_Manager::DIMENSIONS,
376
+ 'size_units' => [ 'px', '%' ],
377
+ 'selectors' => [
378
+ $selector => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
379
+ ],
380
+ 'condition' => [
381
+ '_ob_overlaiz_use_it' => 'yes',
382
+ 'background_overlay_background' => [ 'classic', 'gradient' ],
383
+ ],
384
+ ]
385
+ );
386
+
387
+ $element->end_popover(); // popover BORdER end
388
+
389
+ // --------------------------------------------------------------------------------------------- CONTROL Box Shadow
390
+ $element->add_group_control(
391
+ Group_Control_Box_Shadow::get_type(),
392
+ [
393
+ 'name' => '_ob_overlaiz_shadow',
394
+ 'label' => __( 'Box Shadow', 'ooohboi-steroids' ),
395
+ 'separator' => 'before',
396
+ 'selector' => $selector,
397
+ 'fields_options' => [
398
+ 'box_shadow' => [
399
+ 'default' => [
400
+ 'horizontal' => 5,
401
+ 'vertical' => 5,
402
+ 'blur' => 10,
403
+ 'spread' => 3,
404
+ 'color' => 'rgba(0,0,0,0.2)',
405
+ ],
406
+ ],
407
+ ],
408
+ 'condition' => [
409
+ '_ob_overlaiz_use_it' => 'yes',
410
+ 'background_overlay_background' => [ 'classic', 'gradient' ],
411
+ ],
412
+ ]
413
+ );
414
+
415
+ // --------------------------------------------------------------------------------------------- CONTROL Z-INDeX
416
+ $element->add_control(
417
+ '_ob_overlaiz_z_index',
418
+ [
419
+ 'label' => __( 'Z-Index', 'ooohboi-steroids' ),
420
+ 'type' => Controls_Manager::NUMBER,
421
+ 'separator' => 'before',
422
+ 'min' => -9999,
423
+ 'selectors' => [
424
+ $selector => 'z-index: {{VALUE}};',
425
+ ],
426
+ 'condition' => [
427
+ '_ob_overlaiz_use_it' => 'yes',
428
+ 'background_overlay_background' => [ 'classic', 'gradient' ],
429
+ ],
430
+ ]
431
+ );
432
+
433
+ // ------------------------------------------------------------------------- CONTROL: Sponsor
434
+ $element->add_control(
435
+ '_ob_sponsorship_overlaiz',
436
+ [
437
+ 'type' => Controls_Manager::RAW_HTML,
438
+ 'raw' => OoohBoi_Steroids::ooohboi_commercializer(),
439
+ 'prefix_class' => 'ob-steroids-sponsor-',
440
+ 'condition' => [
441
+ '_ob_overlaiz_use_it' => 'yes',
442
+ ],
443
+ ]
444
+ );
445
+
446
+ }
447
+
448
+ }
controls/ooohboi-overlay-underlay.php ADDED
@@ -0,0 +1,1342 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use Elementor\Controls_Manager;
3
+ use Elementor\Controls_Stack;
4
+ use Elementor\Element_Base;
5
+ use Elementor\Group_Control_Background;
6
+ use Elementor\Group_Control_Border;
7
+ use Elementor\Group_Control_Css_Filter;
8
+
9
+ if ( ! defined( 'ABSPATH' ) ) {
10
+ exit; // Exit if accessed directly.
11
+ }
12
+
13
+ /**
14
+ * Main OoohBoi Underlay Overlay Class
15
+ *
16
+ * The main class that initiates and runs the plugin.
17
+ *
18
+ * @since 1.0.0
19
+ */
20
+ class OoohBoi_Overlay_Underlay {
21
+
22
+ /**
23
+ * Initialize
24
+ *
25
+ * @since 1.0.0
26
+ *
27
+ * @access public
28
+ */
29
+ public static function init() {
30
+
31
+ add_action( 'elementor/element/common/_section_background/after_section_end', [ __CLASS__, 'add_section' ] );
32
+ add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
33
+ // Document Settings
34
+ add_action( 'elementor/element/post/document_settings/before_section_end', [ __CLASS__, 'poopart_remove_horizontal_scroller' ] );
35
+
36
+ }
37
+
38
+ public static function add_attributes( Element_Base $element ) {
39
+
40
+ if ( in_array( $element->get_name(), [ 'section', 'column' ] ) ) {
41
+ return;
42
+ }
43
+
44
+ if ( \Elementor\Plugin::instance()->editor->is_edit_mode() ) {
45
+ return;
46
+ }
47
+
48
+ $settings = $element->get_settings_for_display();
49
+
50
+ $overlay_bg = isset( $settings[ '_ob_steroids_overlay_background_background' ] ) ? $settings[ '_ob_steroids_overlay_background_background' ] : '';
51
+ $underlay_bg = isset( $settings[ '_ob_steroids_underlay_background_background' ] ) ? $settings[ '_ob_steroids_underlay_background_background' ] : '';
52
+
53
+ $has_background_overlay = ( in_array( $overlay_bg, [ 'classic', 'gradient' ], true ) || in_array( $underlay_bg, [ 'classic', 'gradient' ], true ) );
54
+
55
+ if ( $has_background_overlay ) {
56
+ $element->add_render_attribute( '_wrapper', 'class', 'ob-has-background-overlay' );
57
+ }
58
+
59
+ }
60
+
61
+ public static function add_section( Element_Base $element ) {
62
+
63
+ $element->start_controls_section(
64
+ '_ob_steroids_background_overlay',
65
+ [
66
+ 'label' => 'P O O P A R T',
67
+ 'tab' => Controls_Manager::TAB_ADVANCED,
68
+ ]
69
+ );
70
+
71
+ // --------------------------------------------------------------------------------------------- START 2 TABS Overlay & Underlay
72
+ $element->start_controls_tabs( '_ob_steroids_tabs' );
73
+
74
+ // --------------------------------------------------------------------------------------------- START TAB Overlay
75
+ $element->start_controls_tab(
76
+ '_ob_steroids_tab_overlay',
77
+ [
78
+ 'label' => __( 'Overlay', 'ooohboi-steroids' ),
79
+ ]
80
+ );
81
+ // --------------------------------------------------------------------------------------------- CONTROL BACKGROUND
82
+ $element->add_group_control(
83
+ Group_Control_Background::get_type(),
84
+ [
85
+ 'name' => '_ob_steroids_overlay_background',
86
+ 'selector' => '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before',
87
+ ]
88
+ );
89
+ // --------------------------------------------------------------------------------------------- CONTROL BACKGROUND OPACITY
90
+ $element->add_control(
91
+ '_ob_steroids_overlay_bg_opacity',
92
+ [
93
+ 'label' => __( 'Opacity', 'ooohboi-steroids' ),
94
+ 'type' => Controls_Manager::SLIDER,
95
+ 'default' => [
96
+ 'size' => 0.7,
97
+ ],
98
+ 'range' => [
99
+ 'px' => [
100
+ 'max' => 1,
101
+ 'step' => 0.01,
102
+ ],
103
+ ],
104
+ 'selectors' => [
105
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => 'opacity: {{SIZE}};',
106
+ ],
107
+ 'condition' => [
108
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
109
+ ],
110
+ ]
111
+ );
112
+ // --------------------------------------------------------------------------------------------- CONTROL FILTERS
113
+ $element->add_group_control(
114
+ Group_Control_Css_Filter::get_type(),
115
+ [
116
+ 'name' => '_ob_steroids_overlay_bg_filters',
117
+ 'selector' => '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before',
118
+ 'condition' => [
119
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
120
+ ],
121
+ ]
122
+ );
123
+ // --------------------------------------------------------------------------------------------- CONTROL BLEND MODE
124
+ $element->add_control(
125
+ '_ob_steroids_overlay_bg_blend_mode',
126
+ [
127
+ 'label' => __( 'Blend Mode', 'ooohboi-steroids' ),
128
+ 'type' => Controls_Manager::SELECT,
129
+ 'options' => [
130
+ '' => __( 'Normal', 'ooohboi-steroids' ),
131
+ 'multiply' => 'Multiply',
132
+ 'screen' => 'Screen',
133
+ 'overlay' => 'Overlay',
134
+ 'darken' => 'Darken',
135
+ 'lighten' => 'Lighten',
136
+ 'color-dodge' => 'Color Dodge',
137
+ 'saturation' => 'Saturation',
138
+ 'color' => 'Color',
139
+ 'luminosity' => 'Luminosity',
140
+ ],
141
+ 'selectors' => [
142
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => 'mix-blend-mode: {{VALUE}}',
143
+ ],
144
+ 'condition' => [
145
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
146
+ ],
147
+ ]
148
+ );
149
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER W H Y X Rot
150
+ $element->add_control(
151
+ '_ob_steroids_overlay_popover_whyxrot',
152
+ [
153
+ 'label' => __( 'Position and Size', 'ooohboi-steroids' ),
154
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
155
+ 'return_value' => 'yes',
156
+ 'frontend_available' => true,
157
+ 'condition' => [
158
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
159
+ ],
160
+ ]
161
+ );
162
+
163
+ $element->start_popover();
164
+
165
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER WIDTH
166
+ $element->add_responsive_control(
167
+ '_ob_steroids_overlay_w',
168
+ [
169
+ 'label' => __( 'Width', 'ooohboi-steroids' ),
170
+ 'type' => Controls_Manager::SLIDER,
171
+ 'size_units' => [ 'px', '%' ],
172
+ 'range' => [
173
+ 'px' => [
174
+ 'min' => 0,
175
+ 'max' => 1000,
176
+ ],
177
+ '%' => [
178
+ 'min' => 0,
179
+ 'max' => 500,
180
+ ],
181
+ ],
182
+ 'default' => [
183
+ 'unit' => '%',
184
+ 'size' => 100,
185
+ ],
186
+ 'device_args' => [
187
+ Controls_Stack::RESPONSIVE_TABLET => [
188
+ 'condition' => [
189
+ '_ob_steroids_overlay_w_alt_tablet' => '',
190
+ ],
191
+ ],
192
+ Controls_Stack::RESPONSIVE_MOBILE => [
193
+ 'condition' => [
194
+ '_ob_steroids_overlay_w_alt_mobile' => '',
195
+ ],
196
+ ],
197
+ ],
198
+ 'selectors' => [
199
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => 'width: {{SIZE}}{{UNIT}};',
200
+ ],
201
+ 'condition' => [
202
+ '_ob_steroids_overlay_w_alt' => '',
203
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
204
+ ],
205
+ ]
206
+ );
207
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER WIDTH - Alternative
208
+ $element->add_responsive_control(
209
+ '_ob_steroids_overlay_w_alt',
210
+ [
211
+ 'label' => __( 'Calc Width', 'ooohboi-steroids' ),
212
+ 'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
213
+ 'type' => Controls_Manager::TEXT,
214
+ 'selectors' => [
215
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => 'width: calc({{VALUE}});',
216
+ ],
217
+ 'condition' => [
218
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
219
+ ],
220
+ ]
221
+ );
222
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER HEIGHT
223
+ $element->add_responsive_control(
224
+ '_ob_steroids_overlay_h',
225
+ [
226
+ 'label' => __( 'Height', 'ooohboi-steroids' ),
227
+ 'type' => Controls_Manager::SLIDER,
228
+ 'size_units' => [ 'px', '%' ],
229
+ 'range' => [
230
+ 'px' => [
231
+ 'min' => 0,
232
+ 'max' => 1000,
233
+ ],
234
+ '%' => [
235
+ 'min' => 0,
236
+ 'max' => 500,
237
+ ],
238
+ ],
239
+ 'default' => [
240
+ 'unit' => '%',
241
+ 'size' => 100,
242
+ ],
243
+ 'device_args' => [
244
+ Controls_Stack::RESPONSIVE_TABLET => [
245
+ 'condition' => [
246
+ '_ob_steroids_overlay_h_alt_tablet' => '',
247
+ ],
248
+ ],
249
+ Controls_Stack::RESPONSIVE_MOBILE => [
250
+ 'condition' => [
251
+ '_ob_steroids_overlay_h_alt_mobile' => '',
252
+ ],
253
+ ],
254
+ ],
255
+ 'selectors' => [
256
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => 'height: {{SIZE}}{{UNIT}};',
257
+ ],
258
+ 'condition' => [
259
+ '_ob_steroids_overlay_h_alt' => '',
260
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
261
+ ],
262
+ ]
263
+ );
264
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER HEIGHT - Alternative
265
+ $element->add_responsive_control(
266
+ '_ob_steroids_overlay_h_alt',
267
+ [
268
+ 'label' => __( 'Calc Height', 'ooohboi-steroids' ),
269
+ 'description' => __( 'Enter CSS calc value only! Like: 45% + 85px or 100% - 3em', 'ooohboi-steroids' ),
270
+ 'type' => Controls_Manager::TEXT,
271
+ 'selectors' => [
272
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => 'height: calc({{VALUE}});',
273
+ ],
274
+ 'condition' => [
275
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
276
+ ],
277
+ ]
278
+ );
279
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER OFFSET TOP
280
+ $element->add_responsive_control(
281
+ '_ob_steroids_overlay_y',
282
+ [
283
+ 'label' => __( 'Offset Top', 'ooohboi-steroids' ),
284
+ 'type' => Controls_Manager::SLIDER,
285
+ 'size_units' => [ 'px', '%' ],
286
+ 'range' => [
287
+ 'px' => [
288
+ 'min' => -500,
289
+ 'max' => 500,
290
+ ],
291
+ '%' => [
292
+ 'min' => -500,
293
+ 'max' => 500,
294
+ ],
295
+ ],
296
+ 'default' => [
297
+ 'unit' => '%',
298
+ 'size' => 2,
299
+ ],
300
+ 'device_args' => [
301
+ Controls_Stack::RESPONSIVE_TABLET => [
302
+ 'condition' => [
303
+ '_ob_steroids_overlay_y_alt_tablet' => '',
304
+ ],
305
+ ],
306
+ Controls_Stack::RESPONSIVE_MOBILE => [
307
+ 'condition' => [
308
+ '_ob_steroids_overlay_y_alt_mobile' => '',
309
+ ],
310
+ ],
311
+ ],
312
+ 'selectors' => [
313
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => 'top: {{SIZE}}{{UNIT}};',
314
+ ],
315
+ 'condition' => [
316
+ '_ob_steroids_overlay_y_alt' => '',
317
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
318
+ ],
319
+ ]
320
+ );
321
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER OFFSET TOP - Alternative
322
+ $element->add_responsive_control(
323
+ '_ob_steroids_overlay_y_alt',
324
+ [
325
+ 'label' => __( 'Calc Offset Top', 'ooohboi-steroids' ),
326
+ 'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
327
+ 'type' => Controls_Manager::TEXT,
328
+ 'selectors' => [
329
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => 'top: calc({{VALUE}});',
330
+ ],
331
+ 'condition' => [
332
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
333
+ ],
334
+ ]
335
+ );
336
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER OFFSET LEFT
337
+ $element->add_responsive_control(
338
+ '_ob_steroids_overlay_x',
339
+ [
340
+ 'label' => __( 'Offset Left', 'ooohboi-steroids' ),
341
+ 'type' => Controls_Manager::SLIDER,
342
+ 'size_units' => [ 'px', '%' ],
343
+ 'range' => [
344
+ 'px' => [
345
+ 'min' => -500,
346
+ 'max' => 500,
347
+ ],
348
+ '%' => [
349
+ 'min' => -500,
350
+ 'max' => 500,
351
+ ],
352
+ ],
353
+ 'default' => [
354
+ 'unit' => '%',
355
+ 'size' => 2,
356
+ ],
357
+ 'device_args' => [
358
+ Controls_Stack::RESPONSIVE_TABLET => [
359
+ 'condition' => [
360
+ '_ob_steroids_overlay_x_alt_tablet' => '',
361
+ ],
362
+ ],
363
+ Controls_Stack::RESPONSIVE_MOBILE => [
364
+ 'condition' => [
365
+ '_ob_steroids_overlay_x_alt_mobile' => '',
366
+ ],
367
+ ],
368
+ ],
369
+ 'selectors' => [
370
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => 'left: {{SIZE}}{{UNIT}};',
371
+ ],
372
+ 'condition' => [
373
+ '_ob_steroids_overlay_x_alt' => '',
374
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
375
+ ],
376
+ ]
377
+ );
378
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER OFFSET LEFT - Alternative
379
+ $element->add_responsive_control(
380
+ '_ob_steroids_overlay_x_alt',
381
+ [
382
+ 'label' => __( 'Calc Offset Left', 'ooohboi-steroids' ),
383
+ 'description' => __( 'Enter CSS calc value only! Like: 45% + 85px or 100% - 3em', 'ooohboi-steroids' ),
384
+ 'type' => Controls_Manager::TEXT,
385
+ 'selectors' => [
386
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => 'left: calc({{VALUE}});',
387
+ ],
388
+ 'condition' => [
389
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
390
+ ],
391
+ ]
392
+ );
393
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER ROTATION
394
+ # NOTE : this is the hack. Elementor does not do well with 'deg' when speaking of responsiveness!
395
+ $element->add_responsive_control(
396
+ '_ob_steroids_overlay_rot',
397
+ [
398
+ 'label' => __( 'Rotate', 'ooohboi-steroids' ),
399
+ 'type' => Controls_Manager::SLIDER,
400
+ 'range' => [
401
+ 'px' => [
402
+ 'min' => 0,
403
+ 'max' => 360,
404
+ 'step' => 5,
405
+ ],
406
+ ],
407
+ 'default' => [
408
+ 'size' => 0,
409
+ ],
410
+ 'selectors' => [
411
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => 'transform: rotate({{SIZE}}deg);',
412
+ ],
413
+ 'condition' => [
414
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
415
+ ],
416
+ ]
417
+ );
418
+
419
+ $element->end_popover(); // popover end
420
+
421
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER BORDER
422
+ $element->add_control(
423
+ '_ob_steroids_overlay_popover_border',
424
+ [
425
+ 'label' => __( 'Border', 'ooohboi-steroids' ),
426
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
427
+ 'return_value' => 'yes',
428
+ 'frontend_available' => true,
429
+ 'condition' => [
430
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
431
+ ],
432
+ ]
433
+ );
434
+
435
+ $element->start_popover();
436
+
437
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER BORDER ALL
438
+ $element->add_group_control(
439
+ Group_Control_Border::get_type(),
440
+ [
441
+ 'name' => '_ob_steroids_overlay_borders',
442
+ 'label' => __( 'Border', 'ooohboi-steroids' ),
443
+ 'selector' => '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before',
444
+ 'condition' => [
445
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
446
+ ],
447
+ ]
448
+ );
449
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER BORDER RADIUS
450
+ $element->add_responsive_control(
451
+ '_ob_steroids_overlay_border_rad',
452
+ [
453
+ 'label' => __( 'Border Radius', 'ooohboi-steroids' ),
454
+ 'type' => Controls_Manager::DIMENSIONS,
455
+ 'size_units' => [ 'px', '%' ],
456
+ 'selectors' => [
457
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
458
+ ],
459
+ 'condition' => [
460
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
461
+ ],
462
+ ]
463
+ );
464
+
465
+ $element->end_popover(); // popover BORdER end
466
+
467
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER MASQ
468
+ $element->add_control(
469
+ '_ob_steroids_overlay_popover_masq',
470
+ [
471
+ 'label' => __( 'Overlay Mask', 'ooohboi-steroids' ),
472
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
473
+ 'return_value' => 'yes',
474
+ 'frontend_available' => true,
475
+ 'condition' => [
476
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
477
+ ],
478
+ ]
479
+ );
480
+
481
+ $element->start_popover();
482
+
483
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER MASQ IMAGE
484
+ $element->add_responsive_control(
485
+ '_ob_steroids_overlay_mask_img',
486
+ [
487
+ 'label' => __( 'Choose Image Mask', 'ooohboi-steroids' ),
488
+ 'description' => __( 'NOTE: Image Mask should be black-and-transparent SVG file! Anything that’s 100% black in the image mask with be completely visible, anything that’s transparent will be completely hidden.', 'ooohboi-steroids' ),
489
+ 'type' => Controls_Manager::MEDIA,
490
+ 'default' => [
491
+ 'url' => '',
492
+ ],
493
+ 'selectors' => [
494
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => '-webkit-mask-image: url("{{URL}}"); mask-image: url("{{URL}}"); -webkit-mask-mode: alpha; mask-mode: alpha;',
495
+ ],
496
+ 'condition' => [
497
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
498
+ ],
499
+ ]
500
+ );
501
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER MASQ POSITION
502
+ $element->add_responsive_control(
503
+ '_ob_steroids_overlay_mask_position',
504
+ [
505
+ 'label' => __( 'Mask position', 'ooohboi-steroids' ),
506
+ 'type' => Controls_Manager::SELECT,
507
+ 'default' => 'center center',
508
+ 'options' => [
509
+ '' => __( 'Default', 'ooohboi-steroids' ),
510
+ 'center center' => __( 'Center Center', 'ooohboi-steroids' ),
511
+ 'center left' => __( 'Center Left', 'ooohboi-steroids' ),
512
+ 'center right' => __( 'Center Right', 'ooohboi-steroids' ),
513
+ 'top center' => __( 'Top Center', 'ooohboi-steroids' ),
514
+ 'top left' => __( 'Top Left', 'ooohboi-steroids' ),
515
+ 'top right' => __( 'Top Right', 'ooohboi-steroids' ),
516
+ 'bottom center' => __( 'Bottom Center', 'ooohboi-steroids' ),
517
+ 'bottom left' => __( 'Bottom Left', 'ooohboi-steroids' ),
518
+ 'bottom right' => __( 'Bottom Right', 'ooohboi-steroids' ),
519
+ ],
520
+ 'selectors' => [
521
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => '-webkit-mask-position: {{VALUE}}; mask-position: {{VALUE}};',
522
+ ],
523
+ 'condition' => [
524
+ '_ob_steroids_overlay_mask_img[url]!' => '',
525
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
526
+ ],
527
+ ]
528
+ );
529
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER MASQ SIZE
530
+ $element->add_responsive_control(
531
+ '_ob_steroids_overlay_mask_size',
532
+ [
533
+ 'label' => __( 'Mask size', 'ooohboi-steroids' ),
534
+ 'type' => Controls_Manager::SELECT,
535
+ 'default' => 'contain',
536
+ 'options' => [
537
+ '' => __( 'Default', 'ooohboi-steroids' ),
538
+ 'auto' => __( 'Auto', 'ooohboi-steroids' ),
539
+ 'cover' => __( 'Cover', 'ooohboi-steroids' ),
540
+ 'contain' => __( 'Contain', 'ooohboi-steroids' ),
541
+ 'initial' => __( 'Custom', 'ooohboi-steroids' ),
542
+ ],
543
+ 'selectors' => [
544
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => '-webkit-mask-size: {{VALUE}}; mask-size: {{VALUE}};',
545
+ ],
546
+ 'condition' => [
547
+ '_ob_steroids_overlay_mask_img[url]!' => '',
548
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
549
+ ],
550
+ ]
551
+ );
552
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER MASQ SIZE Custom
553
+ $element->add_responsive_control(
554
+ '_ob_steroids_overlay_mask_size_width',
555
+ [
556
+ 'label' => __( 'Width', 'ooohboi-steroids' ),
557
+ 'type' => Controls_Manager::SLIDER,
558
+ 'size_units' => [ '%', 'px' ],
559
+ 'range' => [
560
+ 'px' => [
561
+ 'min' => 0,
562
+ 'max' => 1000,
563
+ ],
564
+ '%' => [
565
+ 'min' => 0,
566
+ 'max' => 300,
567
+ ],
568
+ ],
569
+ 'default' => [
570
+ 'size' => 100,
571
+ 'unit' => '%',
572
+ ],
573
+ 'selectors' => [
574
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
575
+ ],
576
+ 'condition' => [
577
+ '_ob_steroids_overlay_mask_size' => [ 'initial' ],
578
+ '_ob_steroids_overlay_mask_img[url]!' => '',
579
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
580
+ ],
581
+ 'device_args' => [
582
+ Controls_Stack::RESPONSIVE_TABLET => [
583
+ 'selectors' => [
584
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
585
+ ],
586
+ 'condition' => [
587
+ '_ob_steroids_overlay_mask_size_tablet' => [ 'initial' ],
588
+ ],
589
+ ],
590
+ Controls_Stack::RESPONSIVE_MOBILE => [
591
+ 'selectors' => [
592
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
593
+ ],
594
+ 'condition' => [
595
+ '_ob_steroids_overlay_mask_size_mobile' => [ 'initial' ],
596
+ ],
597
+ ],
598
+ ],
599
+ ]
600
+ );
601
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER MASQ REPEAT
602
+ $element->add_responsive_control(
603
+ '_ob_steroids_overlay_mask_repeat',
604
+ [
605
+ 'label' => __( 'Mask repeat', 'ooohboi-steroids' ),
606
+ 'type' => Controls_Manager::SELECT,
607
+ 'default' => 'no-repeat',
608
+ 'options' => [
609
+ 'no-repeat' => __( 'No-repeat', 'ooohboi-steroids' ),
610
+ 'repeat' => __( 'Repeat', 'ooohboi-steroids' ),
611
+ 'repeat-x' => __( 'Repeat-x', 'ooohboi-steroids' ),
612
+ 'repeat-y' => __( 'Repeat-y', 'ooohboi-steroids' ),
613
+ ],
614
+ 'selectors' => [
615
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => '-webkit-mask-repeat: {{VALUE}}; mask-repeat: {{VALUE}};',
616
+ ],
617
+ 'condition' => [
618
+ '_ob_steroids_overlay_mask_img[url]!' => '',
619
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
620
+ ],
621
+ ]
622
+ );
623
+
624
+ $element->end_popover(); // popover MASQ end
625
+
626
+ // --------------------------------------------------------------------------------------------- CONTROL Z-INDeX
627
+ $element->add_control(
628
+ '_ob_steroids_overlay_z_index',
629
+ [
630
+ 'label' => __( 'Z-Index', 'ooohboi-steroids' ),
631
+ 'type' => Controls_Manager::NUMBER,
632
+ 'min' => -9999,
633
+ 'default' => -1,
634
+ 'selectors' => [
635
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => 'z-index: {{VALUE}};',
636
+ ],
637
+ 'label_block' => false,
638
+ 'condition' => [
639
+ '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
640
+ ],
641
+ ]
642
+ );
643
+
644
+ $element->end_controls_tab(); // Overlay tab end
645
+
646
+ // --------------------------------------------------------------------------------------------- START TAB Underlay ------------------------------- >>>>>
647
+
648
+ $element->start_controls_tab(
649
+ '_ob_steroids_tab_underlay',
650
+ [
651
+ 'label' => __( 'Underlay', 'ooohboi-steroids' ),
652
+ ]
653
+ );
654
+
655
+ // --------------------------------------------------------------------------------------------- CONTROL BACKGROUND
656
+ $element->add_group_control(
657
+ Group_Control_Background::get_type(),
658
+ [
659
+ 'name' => '_ob_steroids_underlay_background',
660
+ 'selector' => '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after',
661
+ ]
662
+ );
663
+ // --------------------------------------------------------------------------------------------- CONTROL BACKGROUND OPACITY
664
+ $element->add_control(
665
+ '_ob_steroids_underlay_bg_opacity',
666
+ [
667
+ 'label' => __( 'Opacity', 'ooohboi-steroids' ),
668
+ 'type' => Controls_Manager::SLIDER,
669
+ 'default' => [
670
+ 'size' => 0.7,
671
+ ],
672
+ 'range' => [
673
+ 'px' => [
674
+ 'max' => 1,
675
+ 'step' => 0.01,
676
+ ],
677
+ ],
678
+ 'selectors' => [
679
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'opacity: {{SIZE}};',
680
+ ],
681
+ 'condition' => [
682
+ '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
683
+ ],
684
+ ]
685
+ );
686
+ // --------------------------------------------------------------------------------------------- CONTROL FILTERS
687
+ $element->add_group_control(
688
+ Group_Control_Css_Filter::get_type(),
689
+ [
690
+ 'name' => '_ob_steroids_underlay_bg_filters',
691
+ 'selector' => '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after',
692
+ 'condition' => [
693
+ '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
694
+ ],
695
+ ]
696
+ );
697
+ // --------------------------------------------------------------------------------------------- CONTROL BLEND MODE
698
+ $element->add_control(
699
+ '_ob_steroids_underlay_bg_blend_mode',
700
+ [
701
+ 'label' => __( 'Blend Mode', 'ooohboi-steroids' ),
702
+ 'type' => Controls_Manager::SELECT,
703
+ 'options' => [
704
+ '' => __( 'Normal', 'ooohboi-steroids' ),
705
+ 'multiply' => 'Multiply',
706
+ 'screen' => 'Screen',
707
+ 'overlay' => 'Overlay',
708
+ 'darken' => 'Darken',
709
+ 'lighten' => 'Lighten',
710
+ 'color-dodge' => 'Color Dodge',
711
+ 'saturation' => 'Saturation',
712
+ 'color' => 'Color',
713
+ 'luminosity' => 'Luminosity',
714
+ ],
715
+ 'selectors' => [
716
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'mix-blend-mode: {{VALUE}}',
717
+ ],
718
+ 'condition' => [
719
+ '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
720
+ ],
721
+ ]
722
+ );
723
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER W H Y X Rot
724
+ $element->add_control(
725
+ '_ob_steroids_underlay_popover_whyxrot',
726
+ [
727
+ 'label' => __( 'Position and Size', 'ooohboi-steroids' ),
728
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
729
+ 'return_value' => 'yes',
730
+ 'frontend_available' => true,
731
+ 'condition' => [
732
+ '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
733
+ ],
734
+ ]
735
+ );
736
+
737
+ $element->start_popover();
738
+
739
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER WIDTH
740
+ $element->add_responsive_control(
741
+ '_ob_steroids_underlay_w',
742
+ [
743
+ 'label' => __( 'Width', 'ooohboi-steroids' ),
744
+ 'type' => Controls_Manager::SLIDER,
745
+ 'size_units' => [ 'px', '%' ],
746
+ 'range' => [
747
+ 'px' => [
748
+ 'min' => 0,
749
+ 'max' => 1000,
750
+ ],
751
+ '%' => [
752
+ 'min' => 0,
753
+ 'max' => 500,
754
+ ],
755
+ ],
756
+ 'default' => [
757
+ 'unit' => '%',
758
+ 'size' => 100,
759
+ ],
760
+ 'device_args' => [
761
+ Controls_Stack::RESPONSIVE_TABLET => [
762
+ 'condition' => [
763
+ '_ob_steroids_underlay_w_alt_tablet' => '',
764
+ ],
765
+ ],
766
+ Controls_Stack::RESPONSIVE_MOBILE => [
767
+ 'condition' => [
768
+ '_ob_steroids_underlay_w_alt_mobile' => '',
769
+ ],
770
+ ],
771
+ ],
772
+ 'selectors' => [
773
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'width: {{SIZE}}{{UNIT}};',
774
+ ],
775
+ 'condition' => [
776
+ '_ob_steroids_underlay_w_alt' => '',
777
+ ],
778
+ ]
779
+ );
780
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER WIDTH - Alternative
781
+ $element->add_responsive_control(
782
+ '_ob_steroids_underlay_w_alt',
783
+ [
784
+ 'label' => __( 'Calc Width', 'ooohboi-steroids' ),
785
+ 'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
786
+ 'type' => Controls_Manager::TEXT,
787
+ 'selectors' => [
788
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'width: calc({{VALUE}});',
789
+ ],
790
+ ]
791
+ );
792
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER HEIGHT
793
+ $element->add_responsive_control(
794
+ '_ob_steroids_underlay_h',
795
+ [
796
+ 'label' => __( 'Height', 'ooohboi-steroids' ),
797
+ 'type' => Controls_Manager::SLIDER,
798
+ 'size_units' => [ 'px', '%' ],
799
+ 'range' => [
800
+ 'px' => [
801
+ 'min' => 0,
802
+ 'max' => 1000,
803
+ ],
804
+ '%' => [
805
+ 'min' => 0,
806
+ 'max' => 500,
807
+ ],
808
+ ],
809
+ 'default' => [
810
+ 'unit' => '%',
811
+ 'size' => 100,
812
+ ],
813
+ 'device_args' => [
814
+ Controls_Stack::RESPONSIVE_TABLET => [
815
+ 'condition' => [
816
+ '_ob_steroids_underlay_h_alt_tablet' => '',
817
+ ],
818
+ ],
819
+ Controls_Stack::RESPONSIVE_MOBILE => [
820
+ 'condition' => [
821
+ '_ob_steroids_underlay_h_alt_mobile' => '',
822
+ ],
823
+ ],
824
+ ],
825
+ 'selectors' => [
826
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'height: {{SIZE}}{{UNIT}};',
827
+ ],
828
+ 'condition' => [
829
+ '_ob_steroids_underlay_h_alt' => '',
830
+ ],
831
+ ]
832
+ );
833
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER HEIGHT - Alternative
834
+ $element->add_responsive_control(
835
+ '_ob_steroids_underlay_h_alt',
836
+ [
837
+ 'label' => __( 'Calc Height', 'ooohboi-steroids' ),
838
+ 'description' => __( 'Enter CSS calc value only! Like: 45% + 85px or 100% - 3em', 'ooohboi-steroids' ),
839
+ 'type' => Controls_Manager::TEXT,
840
+ 'selectors' => [
841
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'height: calc({{VALUE}});',
842
+ ],
843
+ ]
844
+ );
845
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER OFFSET TOP
846
+ $element->add_responsive_control(
847
+ '_ob_steroids_underlay_y',
848
+ [
849
+ 'label' => __( 'Offset Top', 'ooohboi-steroids' ),
850
+ 'type' => Controls_Manager::SLIDER,
851
+ 'size_units' => [ 'px', '%' ],
852
+ 'range' => [
853
+ 'px' => [
854
+ 'min' => -500,
855
+ 'max' => 500,
856
+ ],
857
+ '%' => [
858
+ 'min' => -500,
859
+ 'max' => 500,
860
+ ],
861
+ ],
862
+ 'default' => [
863
+ 'unit' => '%',
864
+ 'size' => 2,
865
+ ],
866
+ 'device_args' => [
867
+ Controls_Stack::RESPONSIVE_TABLET => [
868
+ 'condition' => [
869
+ '_ob_steroids_underlay_y_alt_tablet' => '',
870
+ ],
871
+ ],
872
+ Controls_Stack::RESPONSIVE_MOBILE => [
873
+ 'condition' => [
874
+ '_ob_steroids_underlay_y_alt_mobile' => '',
875
+ ],
876
+ ],
877
+ ],
878
+ 'selectors' => [
879
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'top: {{SIZE}}{{UNIT}};',
880
+ ],
881
+ 'condition' => [
882
+ '_ob_steroids_underlay_y_alt' => '',
883
+ ],
884
+ ]
885
+ );
886
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER OFFSET TOP - Alternative
887
+ $element->add_responsive_control(
888
+ '_ob_steroids_underlay_y_alt',
889
+ [
890
+ 'label' => __( 'Calc Offset Top', 'ooohboi-steroids' ),
891
+ 'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
892
+ 'type' => Controls_Manager::TEXT,
893
+ 'selectors' => [
894
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'top: calc({{VALUE}});',
895
+ ],
896
+ ]
897
+ );
898
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER OFFSET LEFT
899
+ $element->add_responsive_control(
900
+ '_ob_steroids_underlay_x',
901
+ [
902
+ 'label' => __( 'Offset Left', 'ooohboi-steroids' ),
903
+ 'type' => Controls_Manager::SLIDER,
904
+ 'size_units' => [ 'px', '%' ],
905
+ 'range' => [
906
+ 'px' => [
907
+ 'min' => -500,
908
+ 'max' => 500,
909
+ ],
910
+ '%' => [
911
+ 'min' => -500,
912
+ 'max' => 500,
913
+ ],
914
+ ],
915
+ 'default' => [
916
+ 'unit' => '%',
917
+ 'size' => 2,
918
+ ],
919
+ 'device_args' => [
920
+ Controls_Stack::RESPONSIVE_TABLET => [
921
+ 'condition' => [
922
+ '_ob_steroids_underlay_x_alt_tablet' => '',
923
+ ],
924
+ ],
925
+ Controls_Stack::RESPONSIVE_MOBILE => [
926
+ 'condition' => [
927
+ '_ob_steroids_underlay_x_alt_mobile' => '',
928
+ ],
929
+ ],
930
+ ],
931
+ 'selectors' => [
932
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'left: {{SIZE}}{{UNIT}};',
933
+ ],
934
+ 'condition' => [
935
+ '_ob_steroids_underlay_x_alt' => '',
936
+ ],
937
+ ]
938
+ );
939
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER OFFSET LEFT - Alternative
940
+ $element->add_responsive_control(
941
+ '_ob_steroids_underlay_x_alt',
942
+ [
943
+ 'label' => __( 'Calc Offset Left', 'ooohboi-steroids' ),
944
+ 'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
945
+ 'type' => Controls_Manager::TEXT,
946
+ 'selectors' => [
947
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'left: calc({{VALUE}});',
948
+ ],
949
+ ]
950
+ );
951
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER ROTATION
952
+ # NOTE : this is the hack. Elementor does not do well with 'deg' when speaking of responsiveness!
953
+ $element->add_responsive_control(
954
+ '_ob_steroids_underlay_rot',
955
+ [
956
+ 'label' => __( 'Rotate', 'ooohboi-steroids' ),
957
+ 'type' => Controls_Manager::SLIDER,
958
+ 'range' => [
959
+ 'px' => [
960
+ 'min' => 0,
961
+ 'max' => 360,
962
+ 'step' => 5,
963
+ ],
964
+ ],
965
+ 'default' => [
966
+ 'size' => 0,
967
+ ],
968
+ 'selectors' => [
969
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'transform: rotate({{SIZE}}deg);',
970
+ ],
971
+ ]
972
+ );
973
+
974
+ $element->end_popover(); // popover end
975
+
976
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER BORDER
977
+ $element->add_control(
978
+ '_ob_steroids_underlay_popover_border',
979
+ [
980
+ 'label' => __( 'Border', 'ooohboi-steroids' ),
981
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
982
+ 'return_value' => 'yes',
983
+ 'frontend_available' => true,
984
+ 'condition' => [
985
+ '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
986
+ ],
987
+ ]
988
+ );
989
+
990
+ $element->start_popover();
991
+
992
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER BORDER ALL
993
+ $element->add_group_control(
994
+ Group_Control_Border::get_type(),
995
+ [
996
+ 'name' => '_ob_steroids_underlay_borders',
997
+ 'label' => __( 'Border', 'ooohboi-steroids' ),
998
+ 'selector' => '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after',
999
+ ]
1000
+ );
1001
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER BORDER RADIUS
1002
+ $element->add_responsive_control(
1003
+ '_ob_steroids_underlay_border_rad',
1004
+ [
1005
+ 'label' => __( 'Border Radius', 'ooohboi-steroids' ),
1006
+ 'type' => Controls_Manager::DIMENSIONS,
1007
+ 'size_units' => [ 'px', '%' ],
1008
+ 'selectors' => [
1009
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1010
+ ],
1011
+ ]
1012
+ );
1013
+
1014
+ $element->end_popover(); // popover BORdER end
1015
+
1016
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER MASQ - UNDERLAY ------------------->>
1017
+ $element->add_control(
1018
+ '_ob_steroids_underlay_popover_masq',
1019
+ [
1020
+ 'label' => __( 'Underlay Mask', 'ooohboi-steroids' ),
1021
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
1022
+ 'return_value' => 'yes',
1023
+ 'frontend_available' => true,
1024
+ 'condition' => [
1025
+ '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
1026
+ ],
1027
+ ]
1028
+ );
1029
+
1030
+ $element->start_popover();
1031
+
1032
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER MASQ IMAGE
1033
+ $element->add_responsive_control(
1034
+ '_ob_steroids_underlay_mask_img',
1035
+ [
1036
+ 'label' => __( 'Choose Image Mask', 'ooohboi-steroids' ),
1037
+ 'description' => __( 'NOTE: Image Mask should be black-and-transparent SVG file! Anything that’s 100% black in the image mask with be completely visible, anything that’s transparent will be completely hidden.', 'ooohboi-steroids' ),
1038
+ 'type' => Controls_Manager::MEDIA,
1039
+ 'default' => [
1040
+ 'url' => '',
1041
+ ],
1042
+ 'selectors' => [
1043
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => '-webkit-mask-image: url("{{URL}}"); mask-image: url("{{URL}}"); -webkit-mask-mode: alpha; mask-mode: alpha;',
1044
+ ],
1045
+ ]
1046
+ );
1047
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER MASQ POSITION
1048
+ $element->add_responsive_control(
1049
+ '_ob_steroids_underlay_mask_position',
1050
+ [
1051
+ 'label' => __( 'Mask position', 'ooohboi-steroids' ),
1052
+ 'type' => Controls_Manager::SELECT,
1053
+ 'default' => 'center center',
1054
+ 'options' => [
1055
+ '' => __( 'Default', 'ooohboi-steroids' ),
1056
+ 'center center' => __( 'Center Center', 'ooohboi-steroids' ),
1057
+ 'center left' => __( 'Center Left', 'ooohboi-steroids' ),
1058
+ 'center right' => __( 'Center Right', 'ooohboi-steroids' ),
1059
+ 'top center' => __( 'Top Center', 'ooohboi-steroids' ),
1060
+ 'top left' => __( 'Top Left', 'ooohboi-steroids' ),
1061
+ 'top right' => __( 'Top Right', 'ooohboi-steroids' ),
1062
+ 'bottom center' => __( 'Bottom Center', 'ooohboi-steroids' ),
1063
+ 'bottom left' => __( 'Bottom Left', 'ooohboi-steroids' ),
1064
+ 'bottom right' => __( 'Bottom Right', 'ooohboi-steroids' ),
1065
+ ],
1066
+ 'selectors' => [
1067
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => '-webkit-mask-position: {{VALUE}}; mask-position: {{VALUE}};',
1068
+ ],
1069
+ 'condition' => [
1070
+ '_ob_steroids_underlay_mask_img[url]!' => '',
1071
+ ],
1072
+ ]
1073
+ );
1074
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER MASQ SIZE
1075
+ $element->add_responsive_control(
1076
+ '_ob_steroids_underlay_mask_size',
1077
+ [
1078
+ 'label' => __( 'Mask size', 'ooohboi-steroids' ),
1079
+ 'type' => Controls_Manager::SELECT,
1080
+ 'default' => 'contain',
1081
+ 'options' => [
1082
+ '' => __( 'Default', 'ooohboi-steroids' ),
1083
+ 'auto' => __( 'Auto', 'ooohboi-steroids' ),
1084
+ 'cover' => __( 'Cover', 'ooohboi-steroids' ),
1085
+ 'contain' => __( 'Contain', 'ooohboi-steroids' ),
1086
+ 'initial' => __( 'Custom', 'ooohboi-steroids' ),
1087
+ ],
1088
+ 'selectors' => [
1089
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => '-webkit-mask-size: {{VALUE}}; mask-size: {{VALUE}};',
1090
+ ],
1091
+ 'condition' => [
1092
+ '_ob_steroids_underlay_mask_img[url]!' => '',
1093
+ ],
1094
+ ]
1095
+ );
1096
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER MASQ SIZE Custom
1097
+ $element->add_responsive_control(
1098
+ '_ob_steroids_underlay_mask_size_width',
1099
+ [
1100
+ 'label' => __( 'Width', 'ooohboi-steroids' ),
1101
+ 'type' => Controls_Manager::SLIDER,
1102
+ 'size_units' => [ '%', 'px' ],
1103
+ 'range' => [
1104
+ 'px' => [
1105
+ 'min' => 0,
1106
+ 'max' => 1000,
1107
+ ],
1108
+ '%' => [
1109
+ 'min' => 0,
1110
+ 'max' => 300,
1111
+ ],
1112
+ ],
1113
+ 'default' => [
1114
+ 'size' => 100,
1115
+ 'unit' => '%',
1116
+ ],
1117
+ 'selectors' => [
1118
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
1119
+ ],
1120
+ 'condition' => [
1121
+ '_ob_steroids_underlay_mask_size' => [ 'initial' ],
1122
+ '_ob_steroids_underlay_mask_img[url]!' => '',
1123
+ ],
1124
+ 'device_args' => [
1125
+ Controls_Stack::RESPONSIVE_TABLET => [
1126
+ 'selectors' => [
1127
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
1128
+ ],
1129
+ 'condition' => [
1130
+ '_ob_steroids_underlay_mask_size_tablet' => [ 'initial' ],
1131
+ ],
1132
+ ],
1133
+ Controls_Stack::RESPONSIVE_MOBILE => [
1134
+ 'selectors' => [
1135
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
1136
+ ],
1137
+ 'condition' => [
1138
+ '_ob_steroids_underlay_mask_size_mobile' => [ 'initial' ],
1139
+ ],
1140
+ ],
1141
+ ],
1142
+ ]
1143
+ );
1144
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER MASQ REPEAT
1145
+ $element->add_responsive_control(
1146
+ '_ob_steroids_underlay_mask_repeat',
1147
+ [
1148
+ 'label' => __( 'Mask repeat', 'ooohboi-steroids' ),
1149
+ 'type' => Controls_Manager::SELECT,
1150
+ 'default' => 'no-repeat',
1151
+ 'options' => [
1152
+ 'no-repeat' => __( 'No-repeat', 'ooohboi-steroids' ),
1153
+ 'repeat' => __( 'Repeat', 'ooohboi-steroids' ),
1154
+ 'repeat-x' => __( 'Repeat-x', 'ooohboi-steroids' ),
1155
+ 'repeat-y' => __( 'Repeat-y', 'ooohboi-steroids' ),
1156
+ ],
1157
+ 'selectors' => [
1158
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => '-webkit-mask-repeat: {{VALUE}}; mask-repeat: {{VALUE}};',
1159
+ ],
1160
+ 'condition' => [
1161
+ '_ob_steroids_underlay_mask_img[url]!' => '',
1162
+ ],
1163
+ ]
1164
+ );
1165
+
1166
+ $element->end_popover(); // popover MASQ end
1167
+
1168
+ // --------------------------------------------------------------------------------------------- CONTROL Z-INDeX
1169
+ $element->add_control(
1170
+ '_ob_steroids_underlay_z_index',
1171
+ [
1172
+ 'label' => __( 'Z-Index', 'ooohboi-steroids' ),
1173
+ 'type' => Controls_Manager::NUMBER,
1174
+ 'min' => -9999,
1175
+ 'default' => -1,
1176
+ 'selectors' => [
1177
+ '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'z-index: {{VALUE}};',
1178
+ ],
1179
+ 'label_block' => false,
1180
+ 'condition' => [
1181
+ '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
1182
+ ],
1183
+ ]
1184
+ );
1185
+
1186
+ $element->end_controls_tab(); // Underlay tab end
1187
+
1188
+ $element->end_controls_tabs(); // Underlay and Overlay tabs end
1189
+
1190
+ // ------------------------------------------------------------------------- CONTROL: Sponsor
1191
+ $element->add_control(
1192
+ '_ob_sponsorship_poopart',
1193
+ [
1194
+ 'type' => Controls_Manager::RAW_HTML,
1195
+ 'raw' => OoohBoi_Steroids::ooohboi_commercializer(),
1196
+ 'prefix_class' => 'ob-steroids-sponsor-',
1197
+ ]
1198
+ );
1199
+
1200
+ $element->end_controls_section(); // END SECTION / PANEL
1201
+
1202
+ }
1203
+
1204
+ public static function poopart_remove_horizontal_scroller( \Elementor\Core\DocumentTypes\PageBase $page ) {
1205
+
1206
+ // ------------------------------------------------------------------------- CONTROL: get rid of horizontal scroller
1207
+ $page->add_control(
1208
+ '_ob_steroids_no_horizontal_scroller',
1209
+ [
1210
+ 'label' => __( 'Get rid of the Horizontal scroller?', 'ooohboi-steroids' ),
1211
+ 'description' => __( 'OoohBoi POOOPART may cause Horizontal Scroller to show up. This is how you can remove it.', 'ooohboi-steroids' ),
1212
+ 'type' => Controls_Manager::SWITCHER,
1213
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
1214
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
1215
+ 'return_value' => 'hidden',
1216
+ 'default' => 'inherit',
1217
+ 'selectors' => [
1218
+ 'html, body' => 'overflow-x: {{VALUE}};',
1219
+ ],
1220
+ 'label_block' => false,
1221
+ 'separator' => 'before',
1222
+ ]
1223
+ );
1224
+
1225
+ // ------------------------------------------------------------------------- CONTROL: design your baseline grid
1226
+ $page->add_control(
1227
+ '_ob_steroids_use_baseline_grid',
1228
+ [
1229
+ 'label' => __( 'Baseline Grid', 'ooohboi-steroids' ),
1230
+ 'description' => __( 'Baseline grid helps you maintain accuracy and consistency', 'ooohboi-steroids' ),
1231
+ 'type' => Controls_Manager::SWITCHER,
1232
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
1233
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
1234
+ 'return_value' => 'yes',
1235
+ 'default' => 'no',
1236
+ 'label_block' => false,
1237
+ 'separator' => 'before',
1238
+ ]
1239
+ );
1240
+ $page->add_control(
1241
+ '_ob_steroids_baseline_grid_style',
1242
+ [
1243
+ 'label' => __( 'Grid style', 'ooohboi-steroids' ),
1244
+ 'type' => Controls_Manager::SELECT,
1245
+ 'default' => 'both',
1246
+ 'options' => [
1247
+ 'both' => __( 'Squares', 'ooohboi-steroids' ),
1248
+ 'vertical' => __( 'Vertical lines', 'ooohboi-steroids' ),
1249
+ 'horizontal' => __( 'Horizontal lines', 'ooohboi-steroids' ),
1250
+ ],
1251
+ 'condition' => [
1252
+ '_ob_steroids_use_baseline_grid' => 'yes',
1253
+ ],
1254
+ ]
1255
+ );
1256
+ $page->add_control(
1257
+ '_ob_steroids_baseline_grid_color',
1258
+ [
1259
+ 'label' => __( 'Grid color', 'ooohboi-steroids' ),
1260
+ 'type' => Controls_Manager::COLOR,
1261
+ 'default' => '#F9F9F9',
1262
+ 'condition' => [
1263
+ '_ob_steroids_use_baseline_grid' => 'yes',
1264
+ ],
1265
+ ]
1266
+ );
1267
+ $page->add_control(
1268
+ '_ob_steroids_baseline_grid_size',
1269
+ [
1270
+ 'label' => __( 'Grid size', 'ooohboi-steroids' ),
1271
+ 'type' => Controls_Manager::SLIDER,
1272
+ 'range' => [
1273
+ 'px' => [
1274
+ 'max' => 50,
1275
+ 'step' => 1,
1276
+ ],
1277
+ ],
1278
+ 'default' => [
1279
+ 'unit' => 'px',
1280
+ 'size' => 4,
1281
+ ],
1282
+ 'selectors' => [
1283
+ 'body.elementor-editor-active' => 'background-image: repeating-linear-gradient(to right, {{_ob_steroids_baseline_grid_color.VALUE}}, {{_ob_steroids_baseline_grid_color.VALUE}} 1px, transparent 1px, transparent {{SIZE}}{{UNIT}}), repeating-linear-gradient(to bottom, {{_ob_steroids_baseline_grid_color.VALUE}}, {{_ob_steroids_baseline_grid_color.VALUE}} 1px, transparent 1px, transparent {{SIZE}}{{UNIT}});',
1284
+ ],
1285
+ 'condition' => [
1286
+ '_ob_steroids_use_baseline_grid' => 'yes',
1287
+ '_ob_steroids_baseline_grid_style' => [ 'both' ],
1288
+ ],
1289
+ ]
1290
+ );
1291
+ $page->add_control(
1292
+ '_ob_steroids_baseline_grid_size_vert',
1293
+ [
1294
+ 'label' => __( 'Vertical Spacing', 'ooohboi-steroids' ),
1295
+ 'type' => Controls_Manager::SLIDER,
1296
+ 'range' => [
1297
+ 'px' => [
1298
+ 'max' => 50,
1299
+ 'step' => 1,
1300
+ ],
1301
+ ],
1302
+ 'default' => [
1303
+ 'unit' => 'px',
1304
+ 'size' => 8,
1305
+ ],
1306
+ 'selectors' => [
1307
+ 'body.elementor-editor-active' => 'background-image: repeating-linear-gradient(90deg, {{_ob_steroids_baseline_grid_color.VALUE}}, {{_ob_steroids_baseline_grid_color.VALUE}} 1px, transparent 1px, transparent {{SIZE}}{{UNIT}});',
1308
+ ],
1309
+ 'condition' => [
1310
+ '_ob_steroids_use_baseline_grid' => 'yes',
1311
+ '_ob_steroids_baseline_grid_style' => [ 'vertical' ],
1312
+ ],
1313
+ ]
1314
+ );
1315
+ $page->add_control(
1316
+ '_ob_steroids_baseline_grid_size_horiz',
1317
+ [
1318
+ 'label' => __( 'Horizontal Spacing', 'ooohboi-steroids' ),
1319
+ 'type' => Controls_Manager::SLIDER,
1320
+ 'range' => [
1321
+ 'px' => [
1322
+ 'max' => 50,
1323
+ 'step' => 1,
1324
+ ],
1325
+ ],
1326
+ 'default' => [
1327
+ 'unit' => 'px',
1328
+ 'size' => 8,
1329
+ ],
1330
+ 'selectors' => [
1331
+ 'body.elementor-editor-active' => 'background-image: repeating-linear-gradient(0deg, {{_ob_steroids_baseline_grid_color.VALUE}}, {{_ob_steroids_baseline_grid_color.VALUE}} 1px, transparent 1px, transparent {{SIZE}}{{UNIT}});',
1332
+ ],
1333
+ 'condition' => [
1334
+ '_ob_steroids_use_baseline_grid' => 'yes',
1335
+ '_ob_steroids_baseline_grid_style' => [ 'horizontal' ],
1336
+ ],
1337
+ ]
1338
+ );
1339
+
1340
+ }
1341
+
1342
+ }
controls/ooohboi-paginini.php ADDED
@@ -0,0 +1,245 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use Elementor\Controls_Manager;
3
+ use Elementor\Group_Control_Border;
4
+
5
+ if ( ! defined( 'ABSPATH' ) ) {
6
+ exit; // Exit if accessed directly.
7
+ }
8
+
9
+ /**
10
+ * Main OoohBoi Paginini
11
+ *
12
+ * The main class that initiates and runs the plugin.
13
+ *
14
+ * @since 1.0.0
15
+ */
16
+ final class OoohBoi_Paginini {
17
+
18
+ /**
19
+ * Initialize
20
+ *
21
+ * @since 1.0.0
22
+ *
23
+ * @access public
24
+ */
25
+ public static function init() {
26
+
27
+ add_action( 'elementor/element/posts/section_pagination_style/before_section_end', [ __CLASS__, 'ooohboi_paginini_get_controls' ], 10, 2 );
28
+ add_action( 'elementor/element/archive-posts/section_pagination_style/before_section_end', [ __CLASS__, 'ooohboi_paginini_get_controls' ], 10, 2 );
29
+
30
+ }
31
+
32
+ public static function ooohboi_paginini_get_controls( $element, $args ) {
33
+
34
+ $element->add_control(
35
+ '_ob_paginini_plugin_title',
36
+ [
37
+ 'label' => 'P A G I N I N I',
38
+ 'type' => Controls_Manager::HEADING,
39
+ 'separator' => 'before',
40
+ ]
41
+ );
42
+
43
+ // ------------------------------------------------------------------------- CONTROL: Pagination BG COLOR
44
+ $element->add_control(
45
+ 'ooohboi_paginini_bg_color',
46
+ [
47
+ 'label' => __( 'Background Color', 'ooohboi-steroids' ),
48
+ 'type' => Controls_Manager::COLOR,
49
+ 'default' => '#00000000',
50
+ 'selectors' => [
51
+ '{{WRAPPER}} .elementor-pagination' => 'background-color: {{VALUE}};',
52
+ ],
53
+ ]
54
+ );
55
+ // ------------------------------------------------------------------------- CONTROL: Pagination PADDING
56
+ $element->add_responsive_control(
57
+ 'ooohboi_paginini_paddingz',
58
+ [
59
+ 'label' => __( 'Padding', 'ooohboi-steroids' ),
60
+ 'type' => Controls_Manager::DIMENSIONS,
61
+ 'size_units' => [ 'px', 'em', '%' ],
62
+ 'default' => [
63
+ 'unit' => '%',
64
+ 'size' => 0,
65
+ ],
66
+ 'selectors' => [
67
+ '{{WRAPPER}} .elementor-pagination' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
68
+ ],
69
+ ]
70
+ );
71
+ // ------------------------------------------------------------------------- CONTROL: Pagination MARGIN
72
+ $element->add_responsive_control(
73
+ 'ooohboi_paginini_marginz',
74
+ [
75
+ 'label' => __( 'Margin', 'ooohboi-steroids' ),
76
+ 'type' => Controls_Manager::DIMENSIONS,
77
+ 'size_units' => [ 'px', 'em', '%' ],
78
+ 'default' => [
79
+ 'unit' => '%',
80
+ 'size' => 0,
81
+ ],
82
+ 'selectors' => [
83
+ '{{WRAPPER}} .elementor-pagination' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
84
+ ],
85
+ ]
86
+ );
87
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER: Pagination page numbers padding
88
+ $element->add_responsive_control(
89
+ '_ob_paginini_page_number_padding',
90
+ [
91
+ 'label' => __( 'Page Number Padding', 'ooohboi-steroids' ),
92
+ 'type' => Controls_Manager::DIMENSIONS,
93
+ 'size_units' => [ 'px', 'em', '%' ],
94
+ 'default' => [
95
+ 'unit' => '%',
96
+ 'size' => 0,
97
+ ],
98
+ 'selectors' => [
99
+ '{{WRAPPER}} .elementor-pagination .page-numbers' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
100
+ ],
101
+ ]
102
+ );
103
+
104
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER: Pagination page numbers
105
+ $element->add_control(
106
+ '_ob_paginini_popover_page_numbers',
107
+ [
108
+ 'label' => __( 'Page numbers', 'ooohboi-steroids' ),
109
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
110
+ 'return_value' => 'yes',
111
+ 'frontend_available' => true,
112
+ ]
113
+ );
114
+
115
+ $element->start_popover();
116
+
117
+ // ------------------------------------------------------------------------- CONTROL POPOVER: Pagination page numbers bg color
118
+ $element->add_control(
119
+ '_ob_paginini_popover_pn_bg_color',
120
+ [
121
+ 'label' => __( 'Background Color', 'ooohboi-steroids' ),
122
+ 'type' => Controls_Manager::COLOR,
123
+ 'default' => '#00000000',
124
+ 'selectors' => [
125
+ '{{WRAPPER}} .elementor-pagination .page-numbers:not(.current)' => 'background-color: {{VALUE}};',
126
+ ],
127
+ ]
128
+ );
129
+ // ------------------------------------------------------------------------- CONTROL POPOVER: Pagination page numbers bg color - hover
130
+ $element->add_control(
131
+ '_ob_paginini_popover_pn_bg_color_hover',
132
+ [
133
+ 'label' => __( 'Background Color - HOVER', 'ooohboi-steroids' ),
134
+ 'type' => Controls_Manager::COLOR,
135
+ 'default' => '#00000000',
136
+ 'selectors' => [
137
+ '{{WRAPPER}} .elementor-pagination .page-numbers:not(.current):hover' => 'background-color: {{VALUE}};',
138
+ ],
139
+ ]
140
+ );
141
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER: Pagination page numbers border
142
+ $element->add_group_control(
143
+ Group_Control_Border::get_type(),
144
+ [
145
+ 'name' => '_ob_paginini_popover_pn_bord',
146
+ 'label' => __( 'Border', 'ooohboi-steroids' ),
147
+ 'selector' => '{{WRAPPER}} .elementor-pagination .page-numbers:not(.current)',
148
+ ]
149
+ );
150
+ // ------------------------------------------------------------------------- CONTROL POPOVER: Pagination page numbers border radius
151
+ $element->add_responsive_control(
152
+ '_ob_paginini_popover_pn_bord_rad',
153
+ [
154
+ 'label' => __( 'Border Radius', 'ooohboi-steroids' ),
155
+ 'type' => Controls_Manager::DIMENSIONS,
156
+ 'size_units' => [ 'px', '%' ],
157
+ 'selectors' => [
158
+ '{{WRAPPER}} .elementor-pagination .page-numbers:not(.current)' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
159
+ ],
160
+ ]
161
+ );
162
+
163
+ $element->end_popover(); // popover end
164
+
165
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER: Pagination Current Item
166
+ $element->add_control(
167
+ '_ob_paginini_popover_current_page',
168
+ [
169
+ 'label' => __( 'Current Page', 'ooohboi-steroids' ),
170
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
171
+ 'return_value' => 'yes',
172
+ 'frontend_available' => true,
173
+ ]
174
+ );
175
+
176
+ $element->start_popover();
177
+
178
+ // ------------------------------------------------------------------------- CONTROL POPOVER: Pagination Current Item bg color
179
+ $element->add_control(
180
+ '_ob_paginini_popover_current_bg_color',
181
+ [
182
+ 'label' => __( 'Background Color', 'ooohboi-steroids' ),
183
+ 'type' => Controls_Manager::COLOR,
184
+ 'default' => '#00000000',
185
+ 'selectors' => [
186
+ '{{WRAPPER}} .elementor-pagination .page-numbers.current' => 'background-color: {{VALUE}}; opacity: unset;',
187
+ ],
188
+ ]
189
+ );
190
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER: Pagination Current Item border
191
+ $element->add_group_control(
192
+ Group_Control_Border::get_type(),
193
+ [
194
+ 'name' => '_ob_paginini_popover_current_bord',
195
+ 'label' => __( 'Border', 'ooohboi-steroids' ),
196
+ 'selector' => '{{WRAPPER}} .elementor-pagination .page-numbers.current',
197
+ ]
198
+ );
199
+ // ------------------------------------------------------------------------- CONTROL POPOVER: Pagination Current Item border radius
200
+ $element->add_responsive_control(
201
+ '_ob_paginini_popover_current_bord_rad',
202
+ [
203
+ 'label' => __( 'Border Radius', 'ooohboi-steroids' ),
204
+ 'type' => Controls_Manager::DIMENSIONS,
205
+ 'size_units' => [ 'px', '%' ],
206
+ 'selectors' => [
207
+ '{{WRAPPER}} .elementor-pagination .page-numbers.current' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
208
+ ],
209
+ ]
210
+ );
211
+
212
+ $element->end_popover(); // popover end
213
+
214
+ // ------------------------------------------------------------------------- CONTROL: Exclude Prev and Next
215
+ $element->add_control(
216
+ '_ob_paginini_exclude_prev_next',
217
+ [
218
+ 'label' => __( 'Unstyle Prev and Next?', 'ooohboi-steroids' ),
219
+ 'type' => Controls_Manager::SWITCHER,
220
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
221
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
222
+ 'return_value' => 'yes',
223
+ 'default' => 'yes',
224
+ 'selectors' => [
225
+ '{{WRAPPER}} .elementor-pagination .page-numbers.prev' => 'background-color: transparent; border: none; border-radius: 0;',
226
+ '{{WRAPPER}} .elementor-pagination .page-numbers.next' => 'background-color: transparent; border: none; border-radius: 0;',
227
+ '{{WRAPPER}} .elementor-pagination .page-numbers.prev:hover' => 'background-color: transparent;',
228
+ '{{WRAPPER}} .elementor-pagination .page-numbers.next:hover' => 'background-color: transparent;',
229
+ ],
230
+ ]
231
+ );
232
+
233
+ // ------------------------------------------------------------------------- CONTROL: Sponsor
234
+ $element->add_control(
235
+ '_ob_sponsorship_paginini',
236
+ [
237
+ 'type' => Controls_Manager::RAW_HTML,
238
+ 'raw' => OoohBoi_Steroids::ooohboi_commercializer(),
239
+ 'prefix_class' => 'ob-steroids-sponsor-',
240
+ ]
241
+ );
242
+
243
+ }
244
+
245
+ }
controls/ooohboi-perspektive.php ADDED
@@ -0,0 +1,255 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use Elementor\Controls_Manager;
3
+ use Elementor\Controls_Stack;
4
+ use Elementor\Element_Base;
5
+
6
+ if ( ! defined( 'ABSPATH' ) ) {
7
+ exit; // Exit if accessed directly.
8
+ }
9
+
10
+ /**
11
+ * Main OoohBoi Perspektive Class
12
+ *
13
+ * The main class that initiates and runs the plugin.
14
+ *
15
+ * @since 1.0.0
16
+ */
17
+ class OoohBoi_Perspektive {
18
+
19
+ /**
20
+ * Initialize
21
+ *
22
+ * @since 1.4.4
23
+ *
24
+ * @access public
25
+ */
26
+ public static function init() {
27
+
28
+ add_action( 'elementor/element/common/_section_style/before_section_end', [ __CLASS__, 'ob_perspektive_add_section' ] );
29
+ add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'ob_perspektive_add_attributes' ] );
30
+
31
+ }
32
+
33
+ public static function ob_perspektive_add_attributes( Element_Base $element ) {
34
+
35
+ if ( in_array( $element->get_name(), [ 'section', 'column' ] ) ) {
36
+ return;
37
+ }
38
+
39
+ if ( \Elementor\Plugin::instance()->editor->is_edit_mode() ) {
40
+ return;
41
+ }
42
+
43
+ $settings = $element->get_settings_for_display();
44
+
45
+ $use_perspektive = isset( $settings[ '_ob_perspektive_use' ] ) ? $settings[ '_ob_perspektive_use' ] : '';
46
+
47
+ if ( 'yes' === $use_perspektive ) {
48
+ $element->add_render_attribute( '_wrapper', 'class', 'ob-use-perspektive' );
49
+ }
50
+
51
+ }
52
+
53
+ public static function ob_perspektive_add_section( Element_Base $element ) {
54
+
55
+ $selector = '{{WRAPPER}}.ob-use-perspektive .elementor-widget-container';
56
+
57
+ // create panel section
58
+ $element->add_control(
59
+ '_ob_perspektive',
60
+ [
61
+ 'label' => 'P E R S P E K T I V E',
62
+ 'type' => Controls_Manager::HEADING,
63
+ 'separator' => 'before',
64
+ ]
65
+ );
66
+ // ------------------------------------------------------------------------- CONTROL: Use Perspektive
67
+ $element->add_control(
68
+ '_ob_perspektive_use',
69
+ [
70
+ 'label' => __( 'Enable Perspektive?', 'ooohboi-steroids' ),
71
+ 'description' => __( 'NOTE: Perspektive interferes with z-index! The background of the element with the Perspektive will not be affected by the Perspektive.', 'ooohboi-steroids' ),
72
+ 'separator' => 'before',
73
+ 'type' => Controls_Manager::SWITCHER,
74
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
75
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
76
+ 'return_value' => 'yes',
77
+ 'default' => 'no',
78
+ 'frontend_available' => true,
79
+ ]
80
+ );
81
+
82
+ // --------------------------------------------------------------------------------------------- CONTROL Perspective depth
83
+ $element->add_responsive_control(
84
+ '_ob_perspektive_val',
85
+ [
86
+ 'label' => __( 'Perspective', 'ooohboi-steroids' ),
87
+ 'type' => Controls_Manager::SLIDER,
88
+ 'size_units' => [ 'px', 'em', 'rem' ],
89
+ 'range' => [
90
+ 'px' => [
91
+ 'min' => 100,
92
+ 'max' => 1500,
93
+ ],
94
+ 'em' => [
95
+ 'min' => 10,
96
+ 'max' => 150,
97
+ ],
98
+ 'rem' => [
99
+ 'min' => 10,
100
+ 'max' => 500,
101
+ ],
102
+ ],
103
+ 'default' => [
104
+ 'unit' => 'px',
105
+ 'size' => 800,
106
+ ],
107
+ 'selectors' => [
108
+ $selector => 'perspective: {{SIZE}}{{UNIT}}; transform-style: preserve-3d;',
109
+ ],
110
+ 'condition' => [
111
+ '_ob_perspektive_use' => 'yes',
112
+ ],
113
+ ]
114
+ );
115
+ // --------------------------------------------------------------------------------------------- CONTROL Perspective origin
116
+ $element->add_responsive_control(
117
+ '_ob_perspektive_origin',
118
+ [
119
+ 'label' => __( 'Perspective Origin', 'ooohboi-steroids' ),
120
+ 'type' => Controls_Manager::SLIDER,
121
+ 'size_units' => [ '%' ],
122
+ 'range' => [
123
+ '%' => [
124
+ 'min' => 0,
125
+ 'max' => 100,
126
+ ],
127
+ ],
128
+ 'default' => [
129
+ 'unit' => '%',
130
+ 'size' => 0,
131
+ ],
132
+ 'selectors' => [
133
+ $selector => 'perspective-origin: {{SIZE}}{{UNIT}} {{SIZE}}{{UNIT}};',
134
+ ],
135
+ 'condition' => [
136
+ '_ob_perspektive_use' => 'yes',
137
+ ],
138
+ ]
139
+ );
140
+ // --------------------------------------------------------------------------------------------- CONTROL Perspective Z
141
+ $element->add_responsive_control(
142
+ '_ob_perspektive_z',
143
+ [
144
+ 'label' => __( 'Translate Z', 'ooohboi-steroids' ),
145
+ 'type' => Controls_Manager::SLIDER,
146
+ 'size_units' => [ 'px', 'em', 'rem' ],
147
+ 'range' => [
148
+ 'px' => [
149
+ 'min' => -100,
150
+ 'max' => 100,
151
+ ],
152
+ 'em' => [
153
+ 'min' => -10,
154
+ 'max' => 10,
155
+ ],
156
+ 'rem' => [
157
+ 'min' => -10,
158
+ 'max' => 10,
159
+ ],
160
+ ],
161
+ 'default' => [
162
+ 'unit' => 'px',
163
+ 'size' => 0,
164
+ ],
165
+ 'selectors' => [
166
+ $selector . ' > [class*="elementor-"]' => 'transform: translateZ({{SIZE}}{{UNIT}});',
167
+ ],
168
+ 'condition' => [
169
+ '_ob_perspektive_use' => 'yes',
170
+ ],
171
+ ]
172
+ );
173
+ // --------------------------------------------------------------------------------------------- CONTROL Rotate X
174
+ $element->add_responsive_control(
175
+ '_ob_perspektive_xrot',
176
+ [
177
+ 'label' => __( 'Rotate X', 'ooohboi-steroids' ),
178
+ 'type' => Controls_Manager::SLIDER,
179
+ 'range' => [
180
+ 'px' => [
181
+ 'min' => -90,
182
+ 'max' => 90,
183
+ 'step' => 5,
184
+ ],
185
+ ],
186
+ 'default' => [
187
+ 'size' => 0,
188
+ ],
189
+ 'selectors' => [
190
+ $selector . ' > [class*="elementor-"]' => 'transform: rotateX({{SIZE}}deg) rotateY({{_ob_perspektive_yrot.SIZE}}deg) translateZ({{_ob_perspektive_z.SIZE}}{{_ob_perspektive_z.UNIT}});',
191
+ ],
192
+ 'condition' => [
193
+ '_ob_perspektive_use' => 'yes',
194
+ ],
195
+ ]
196
+ );
197
+ // --------------------------------------------------------------------------------------------- CONTROL Rotate Y
198
+ $element->add_responsive_control(
199
+ '_ob_perspektive_yrot',
200
+ [
201
+ 'label' => __( 'Rotate Y', 'ooohboi-steroids' ),
202
+ 'type' => Controls_Manager::SLIDER,
203
+ 'range' => [
204
+ 'px' => [
205
+ 'min' => -90,
206
+ 'max' => 90,
207
+ 'step' => 5,
208
+ ],
209
+ ],
210
+ 'default' => [
211
+ 'size' => 0,
212
+ ],
213
+ 'selectors' => [
214
+ $selector . ' > [class*="elementor-"]' => 'transform: rotateX({{_ob_perspektive_xrot.SIZE}}deg) rotateY({{SIZE}}deg) translateZ({{_ob_perspektive_z.SIZE}}{{_ob_perspektive_z.UNIT}});',
215
+ ],
216
+ 'condition' => [
217
+ '_ob_perspektive_use' => 'yes',
218
+ ],
219
+ ]
220
+ );
221
+ // ------------------------------------------------------------------------- CONTROL: Visibility
222
+ $element->add_control(
223
+ '_ob_parspektive_visibility',
224
+ [
225
+ 'label' => __( 'Content Overflow', 'ooohboi-steroids' ),
226
+ 'description' => __( 'Just in case the wrapper is "overflow: hidden"', 'ooohboi-steroids' ),
227
+ 'type' => Controls_Manager::SELECT,
228
+ 'default' => 'visible',
229
+ 'separator' => 'before',
230
+ 'options' => [
231
+ 'visible' => __( 'Visible', 'ooohboi-steroids' ),
232
+ 'hidden' => __( 'Hidden', 'ooohboi-steroids' ),
233
+ ],
234
+ 'selectors' => [
235
+ $selector => 'overflow: {{value}};',
236
+ ],
237
+ 'condition' => [
238
+ '_ob_perspektive_use' => 'yes',
239
+ ],
240
+ ]
241
+ );
242
+
243
+ // ------------------------------------------------------------------------- CONTROL: Sponsor
244
+ $element->add_control(
245
+ '_ob_sponsorship_perspektive',
246
+ [
247
+ 'type' => Controls_Manager::RAW_HTML,
248
+ 'raw' => OoohBoi_Steroids::ooohboi_commercializer(),
249
+ 'prefix_class' => 'ob-steroids-sponsor-',
250
+ ]
251
+ );
252
+
253
+ }
254
+
255
+ }
controls/ooohboi-photogiraffe.php ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use Elementor\Controls_Manager;
3
+ use Elementor\Group_Control_Border;
4
+
5
+ if ( ! defined( 'ABSPATH' ) ) {
6
+ exit; // Exit if accessed directly.
7
+ }
8
+
9
+ /**
10
+ * Main OoohBoi PhotoGiraffe
11
+ *
12
+ * The main class that initiates and runs the plugin.
13
+ *
14
+ * @since 1.0.0
15
+ */
16
+ final class OoohBoi_PhotoGiraffe {
17
+
18
+ /**
19
+ * Initialize
20
+ *
21
+ * @since 1.3.0
22
+ *
23
+ * @access public
24
+ */
25
+ public static function init() {
26
+
27
+ add_action( 'elementor/element/image/section_style_image/before_section_end', [ __CLASS__, 'ooohboi_photogiraffe_get_controls' ], 10, 2 );
28
+
29
+ }
30
+
31
+ public static function ooohboi_photogiraffe_get_controls( $element, $args ) {
32
+
33
+ $element->add_control(
34
+ '_ob_photogiraffe_plugin_title',
35
+ [
36
+ 'label' => 'P H O T O G I R A F F E',
37
+ 'type' => Controls_Manager::HEADING,
38
+ 'separator' => 'before',
39
+ ]
40
+ );
41
+
42
+ // ------------------------------------------------------------------------- CONTROL: Yes 4 PhotoGiraffe !
43
+ $element->add_control(
44
+ '_ob_photogiraffe_use',
45
+ [
46
+ 'label' => __( 'Enable PhotoGiraffe', 'ooohboi-steroids' ),
47
+ 'description' => __( 'That will make the photo full-height. Be sure that the parent conteiner (Column) uses the fixed height.', 'ooohboi-steroids' ),
48
+ 'type' => Controls_Manager::SWITCHER,
49
+ 'default' => false,
50
+ 'separator' => 'before',
51
+ 'selectors' => [
52
+ '{{WRAPPER}}, {{WRAPPER}} .elementor-widget-container, {{WRAPPER}} .elementor-image, {{WRAPPER}} .elementor-image > a' => 'height: 100%;',
53
+ '{{WRAPPER}} .elementor-image img' => 'object-fit: cover; object-position: 50% 50%; height: 100%;',
54
+ ],
55
+ ]
56
+ );
57
+
58
+ // ------------------------------------------------------------------------- CONTROL: Sponsor
59
+ $element->add_control(
60
+ '_ob_sponsorship_photogiraffe',
61
+ [
62
+ 'type' => Controls_Manager::RAW_HTML,
63
+ 'raw' => OoohBoi_Steroids::ooohboi_commercializer(),
64
+ 'prefix_class' => 'ob-steroids-sponsor-',
65
+ ]
66
+ );
67
+
68
+ }
69
+
70
+ }
controls/ooohboi-searchcop.php ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use Elementor\Controls_Manager;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) {
5
+ exit; // Exit if accessed directly.
6
+ }
7
+
8
+ /**
9
+ * Main OoohBoi SearchCop
10
+ *
11
+ * The main class that initiates and runs the plugin.
12
+ *
13
+ * @since 1.3.3
14
+ */
15
+ final class OoohBoi_SearchCop {
16
+
17
+ /**
18
+ * Initialize
19
+ *
20
+ * @since 1.3.3
21
+ *
22
+ * @access public
23
+ */
24
+ public static function init() {
25
+
26
+ add_action( 'elementor/element/search-form/search_content/before_section_end', [ __CLASS__, 'ooohboi_searchcop_get_controls' ], 10, 2 );
27
+
28
+ }
29
+
30
+ public static function ooohboi_searchcop_get_controls( $element, $args ) {
31
+
32
+ $element->add_control(
33
+ '_ob_searchcop_plugin_title',
34
+ [
35
+ 'label' => 'S E A R C H - C O P',
36
+ 'type' => Controls_Manager::HEADING,
37
+ 'separator' => 'before',
38
+ ]
39
+ );
40
+
41
+ // ------------------------------------------------------------------------- CONTROL: Yes 4 Search Cop !
42
+ $element->add_control(
43
+ '_ob_searchcop_srch_options',
44
+ [
45
+ 'label' => __( 'Search Target', 'ooohboi-steroids' ),
46
+ 'type' => Controls_Manager::SELECT,
47
+ 'default' => 'all',
48
+ 'frontend_available' => true,
49
+ 'options' => [
50
+ 'post' => __( 'Search Posts', 'ooohboi-steroids' ),
51
+ 'page' => __( 'Search Pages', 'ooohboi-steroids' ),
52
+ 'all' => __( 'Search All', 'ooohboi-steroids' ),
53
+ ],
54
+ ]
55
+ );
56
+
57
+ // ------------------------------------------------------------------------- CONTROL: Sponsor
58
+ $element->add_control(
59
+ '_ob_sponsorship_searchcop',
60
+ [
61
+ 'type' => Controls_Manager::RAW_HTML,
62
+ 'raw' => OoohBoi_Steroids::ooohboi_commercializer(),
63
+ 'prefix_class' => 'ob-steroids-sponsor-',
64
+ ]
65
+ );
66
+
67
+ }
68
+
69
+ }
controls/ooohboi-shadough.php ADDED
@@ -0,0 +1,179 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use Elementor\Controls_Manager;
3
+ use Elementor\Controls_Stack;
4
+ use Elementor\Element_Base;
5
+
6
+ if ( ! defined( 'ABSPATH' ) ) {
7
+ exit; // Exit if accessed directly.
8
+ }
9
+
10
+ /**
11
+ * Main OoohBoi Shadough
12
+ *
13
+ * The main class that initiates and runs the plugin.
14
+ *
15
+ * @since 1.4.6
16
+ */
17
+ final class OoohBoi_Shadough {
18
+
19
+ /**
20
+ * Initialize
21
+ *
22
+ * @since 1.4.6
23
+ *
24
+ * @access public
25
+ */
26
+ public static function init() {
27
+
28
+ add_action( 'elementor/element/common/_section_background/after_section_end', [ __CLASS__, 'ooohboi_shadough_controls' ], 10 );
29
+
30
+ }
31
+
32
+ public static function ooohboi_shadough_controls( Element_Base $element ) {
33
+
34
+ $element->start_controls_section(
35
+ '_ob_shadough',
36
+ [
37
+ 'label' => 'S H A D O U G H',
38
+ 'tab' => Controls_Manager::TAB_ADVANCED,
39
+ ]
40
+ );
41
+
42
+ // ------------------------------------------------------------------------- CONTROL: Yes 4 Shadough !
43
+ $element->add_control(
44
+ '_ob_shadough_use',
45
+ [
46
+ 'label' => __( 'Enable Shadough?', 'ooohboi-steroids' ),
47
+ 'description' => __( 'Creates a shadow that conforms to the shape.', 'ooohboi-steroids' ),
48
+ 'separator' => 'after',
49
+ 'type' => Controls_Manager::SWITCHER,
50
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
51
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
52
+ 'return_value' => 'yes',
53
+ 'default' => 'no',
54
+ 'frontend_available' => true,
55
+ ]
56
+ );
57
+ // ------------------------------------------------------------------------- CONTROL: Offset X
58
+ $element->add_responsive_control(
59
+ '_ob_shadough_x',
60
+ [
61
+ 'label' => __( 'Offset X', 'ooohboi-steroids' ),
62
+ 'type' => Controls_Manager::SLIDER,
63
+ 'range' => [
64
+ 'px' => [
65
+ 'min' => -50,
66
+ 'max' => 50,
67
+ 'step' => 1,
68
+ ],
69
+ 'em' => [
70
+ 'min' => -5,
71
+ 'max' => 5,
72
+ 'step' => 0.1,
73
+ ],
74
+ ],
75
+ 'default' => [
76
+ 'unit' => 'px',
77
+ 'size' => 5,
78
+ ],
79
+ 'size_units' => [ 'px', 'em' ],
80
+ 'selectors' => [
81
+ '{{WRAPPER}} .elementor-widget-container' => 'filter: drop-shadow({{SIZE}}{{UNIT}} {{_ob_shadough_y.SIZE}}{{_ob_shadough_y.UNIT}} {{_ob_shadough_blur.SIZE}}{{_ob_shadough_blur.UNIT}} {{_ob_shadough_color.VALUE}});',
82
+ ],
83
+ 'condition' => [
84
+ '_ob_shadough_use' => 'yes',
85
+ ],
86
+ ]
87
+ );
88
+ // ------------------------------------------------------------------------- CONTROL: Offset Y
89
+ $element->add_responsive_control(
90
+ '_ob_shadough_y',
91
+ [
92
+ 'label' => __( 'Offset Y', 'ooohboi-steroids' ),
93
+ 'type' => Controls_Manager::SLIDER,
94
+ 'range' => [
95
+ 'px' => [
96
+ 'min' => -50,
97
+ 'max' => 50,
98
+ 'step' => 1,
99
+ ],
100
+ 'em' => [
101
+ 'min' => -5,
102
+ 'max' => 5,
103
+ 'step' => 0.1,
104
+ ],
105
+ ],
106
+ 'default' => [
107
+ 'unit' => 'px',
108
+ 'size' => 5,
109
+ ],
110
+ 'size_units' => [ 'px', 'em' ],
111
+ 'selectors' => [
112
+ '{{WRAPPER}} .elementor-widget-container' => 'filter: drop-shadow({{_ob_shadough_x.SIZE}}{{_ob_shadough_x.UNIT}} {{SIZE}}{{UNIT}} {{_ob_shadough_blur.SIZE}}{{_ob_shadough_blur.UNIT}} {{_ob_shadough_color.VALUE}});',
113
+ ],
114
+ 'condition' => [
115
+ '_ob_shadough_use' => 'yes',
116
+ ],
117
+ ]
118
+ );
119
+ // ------------------------------------------------------------------------- CONTROL: Blur
120
+ $element->add_responsive_control(
121
+ '_ob_shadough_blur',
122
+ [
123
+ 'label' => __( 'Blur', 'ooohboi-steroids' ),
124
+ 'type' => Controls_Manager::SLIDER,
125
+ 'range' => [
126
+ 'px' => [
127
+ 'max' => 50,
128
+ 'step' => 1,
129
+ ],
130
+ 'em' => [
131
+ 'max' => 10,
132
+ 'step' => 0.1,
133
+ ],
134
+ ],
135
+ 'default' => [
136
+ 'unit' => 'px',
137
+ 'size' => 5,
138
+ ],
139
+ 'size_units' => [ 'px', 'em' ],
140
+ 'selectors' => [
141
+ '{{WRAPPER}} .elementor-widget-container' => 'filter: drop-shadow({{_ob_shadough_x.SIZE}}{{_ob_shadough_x.UNIT}} {{_ob_shadough_y.SIZE}}{{_ob_shadough_y.UNIT}} {{SIZE}}{{UNIT}} {{_ob_shadough_color.VALUE}});',
142
+ ],
143
+ 'condition' => [
144
+ '_ob_shadough_use' => 'yes',
145
+ ],
146
+ ]
147
+ );
148
+
149
+ // ------------------------------------------------------------------------- CONTROL: COLOR
150
+ $element->add_control(
151
+ '_ob_shadough_color',
152
+ [
153
+ 'label' => __( 'Shadow Color', 'ooohboi-steroids' ),
154
+ 'type' => Controls_Manager::COLOR,
155
+ 'default' => '#0000001C',
156
+ 'selectors' => [
157
+ '{{WRAPPER}} .elementor-widget-container' => 'filter: drop-shadow({{_ob_shadough_x.SIZE}}{{_ob_shadough_x.UNIT}} {{_ob_shadough_y.SIZE}}{{_ob_shadough_y.UNIT}} {{_ob_shadough_blur.SIZE}}{{_ob_shadough_blur.UNIT}} {{VALUE}});',
158
+ ],
159
+ 'condition' => [
160
+ '_ob_shadough_use' => 'yes',
161
+ ],
162
+ ]
163
+ );
164
+
165
+ // ------------------------------------------------------------------------- CONTROL: Sponsor
166
+ $element->add_control(
167
+ '_ob_sponsorship_shadough',
168
+ [
169
+ 'type' => Controls_Manager::RAW_HTML,
170
+ 'raw' => OoohBoi_Steroids::ooohboi_commercializer(),
171
+ 'prefix_class' => 'ob-steroids-sponsor-',
172
+ ]
173
+ );
174
+
175
+ $element->end_controls_section(); // END SECTION / PANEL
176
+
177
+ }
178
+
179
+ }
controls/ooohboi-teleporter.php ADDED
@@ -0,0 +1,391 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use Elementor\Controls_Manager;
3
+ use Elementor\Controls_Stack;
4
+ use Elementor\Element_Base;
5
+ use Elementor\Group_Control_Background;
6
+
7
+ if ( ! defined( 'ABSPATH' ) ) {
8
+ exit; // Exit if accessed directly.
9
+ }
10
+
11
+ /**
12
+ * Main OoohBoi Teleporter
13
+ *
14
+ * The main class that initiates and runs the plugin.
15
+ *
16
+ * @since 1.3.0
17
+ */
18
+ final class OoohBoi_Teleporter {
19
+
20
+ /**
21
+ * Initialize
22
+ *
23
+ * @since 1.3.0
24
+ *
25
+ * @access public
26
+ */
27
+ public static function init() {
28
+
29
+ add_action( 'elementor/element/column/layout/before_section_end', [ __CLASS__, 'ooohboi_column_teleport' ], 10, 2 );
30
+ add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
31
+
32
+ }
33
+
34
+ public static function add_attributes( Element_Base $element ) {
35
+
36
+ if ( 'column' !== $element->get_name() ) return;
37
+ if ( \Elementor\Plugin::instance()->editor->is_edit_mode() ) return;
38
+
39
+ $settings = $element->get_settings_for_display();
40
+ if ( isset( $settings[ '_ob_teleporter_use' ] ) && $settings[ '_ob_teleporter_use' ] ) {
41
+ $element->add_render_attribute( '_wrapper', 'class', 'ob-is-teleporter' );
42
+ }
43
+
44
+ }
45
+
46
+ public static function ooohboi_column_teleport( $element, $args ) {
47
+
48
+ $element->add_control(
49
+ '_ob_teleporter_plugin_title',
50
+ [
51
+ 'label' => 'T E L E P O R T E R',
52
+ 'type' => Controls_Manager::HEADING,
53
+ 'separator' => 'before',
54
+ ]
55
+ );
56
+
57
+ // ------------------------------------------------------------------------- CONTROL: Yes 4 Teleporter !
58
+ $element->add_control(
59
+ '_ob_teleporter_use',
60
+ [
61
+ 'label' => __( 'Enable Teleporter', 'ooohboi-steroids' ),
62
+ 'type' => Controls_Manager::SWITCHER,
63
+ 'frontend_available' => true,
64
+ 'return_value' => 'use-teleporter',
65
+ 'default' => false,
66
+ 'separator' => 'before',
67
+ ]
68
+ );
69
+ // ------------------------------------------------------------------------- CONTROL: Link or No?
70
+ $element->add_control(
71
+ '_ob_teleporter_link_type',
72
+ [
73
+ 'label' => __( 'Link', 'ooohboi-steroids' ),
74
+ 'type' => Controls_Manager::SELECT,
75
+ 'default' => 'none',
76
+ 'separator' => 'before',
77
+ 'options' => [
78
+ 'none' => __( 'None', 'ooohboi-steroids' ),
79
+ 'custom' => __( 'Custom URL', 'ooohboi-steroids' ),
80
+ ],
81
+ 'condition' => [
82
+ '_ob_teleporter_use' => 'use-teleporter',
83
+ ],
84
+ ]
85
+ );
86
+ // ------------------------------------------------------------------------- CONTROL: Link to...
87
+ $element->add_control(
88
+ '_ob_teleporter_link',
89
+ [
90
+ 'label' => __( 'Link', 'ooohboi-steroids' ),
91
+ 'type' => Controls_Manager::URL,
92
+ 'separator' => 'before',
93
+ 'frontend_available' => true,
94
+ 'dynamic' => [
95
+ 'active' => true,
96
+ ],
97
+ 'placeholder' => __( 'https://your-link.com', 'ooohboi-steroids' ),
98
+ 'condition' => [
99
+ '_ob_teleporter_use' => 'use-teleporter',
100
+ '_ob_teleporter_link_type' => 'custom',
101
+ ],
102
+ 'show_label' => false,
103
+ ]
104
+ );
105
+ // ------------------------------------------------------------------------- CONTROL: Cursor pointer
106
+ $element->add_control(
107
+ '_ob_teleporter_pointer',
108
+ [
109
+ 'label' => __( 'Cursor Pointer', 'ooohboi-steroids' ),
110
+ 'description' => __( 'Keep the default cursor or show pointer on Hover?', 'ooohboi-steroids' ),
111
+ 'type' => Controls_Manager::SWITCHER,
112
+ 'default' => false,
113
+ 'separator' => 'before',
114
+ 'selectors' => [
115
+ '{{WRAPPER}}.ob-is-teleporter' => 'cursor: pointer;',
116
+ ],
117
+ 'condition' => [
118
+ '_ob_teleporter_use' => 'use-teleporter',
119
+ ],
120
+ ]
121
+ );
122
+ // ------------------------------------------------------------------------- START 2 TABS Normal & Hover
123
+ $element->start_controls_tabs( '_ob_teleporter_tabs' );
124
+
125
+ // ------------------------------------------------------------------------- START TAB Normal
126
+ $element->start_controls_tab(
127
+ '_ob_teleporter_tab_normal',
128
+ [
129
+ 'label' => __( 'Normal', 'ooohboi-steroids' ),
130
+ ]
131
+ );
132
+ // ------------------------------------------------------------------------- CONTROL: content - X
133
+ $element->add_responsive_control(
134
+ '_ob_teleporter_move_content_xp',
135
+ [
136
+ 'label' => __( 'Content Position - X', 'ooohboi-steroids' ),
137
+ 'description' => __( 'You can enter any acceptable CSS value, for example: 50em, 300px, 100%, calc(100% - 300px).', 'ooohboi-steroids' ),
138
+ 'type' => Controls_Manager::TEXT,
139
+ 'label_block' => true,
140
+ 'separator' => 'before',
141
+ 'default' => 0,
142
+ 'selectors' => [
143
+ '{{WRAPPER}}.ob-is-teleporter .ob-tele-midget > .widget-wrap-children' => 'left: {{value}};',
144
+ ],
145
+ 'condition' => [
146
+ '_ob_teleporter_use' => 'use-teleporter',
147
+ ],
148
+ ]
149
+ );
150
+ // ------------------------------------------------------------------------- CONTROL: content - Y
151
+ $element->add_responsive_control(
152
+ '_ob_teleporter_move_content_yp',
153
+ [
154
+ 'label' => __( 'Content Position - Y', 'ooohboi-steroids' ),
155
+ 'description' => __( 'You can enter any acceptable CSS value, for example: 50em, 300px, 100%, calc(100% - 300px).', 'ooohboi-steroids' ),
156
+ 'type' => Controls_Manager::TEXT,
157
+ 'label_block' => true,
158
+ 'default' => 0,
159
+ 'selectors' => [
160
+ '{{WRAPPER}}.ob-is-teleporter .ob-tele-midget > .widget-wrap-children' => 'top: {{value}};',
161
+ ],
162
+ 'condition' => [
163
+ '_ob_teleporter_use' => 'use-teleporter',
164
+ ],
165
+ ]
166
+ );
167
+
168
+ $element->end_controls_tab(); // Normal tab end
169
+
170
+ // ------------------------------------------------------------------------- START TAB Hover
171
+ $element->start_controls_tab(
172
+ '_ob_teleporter_tab_hover',
173
+ [
174
+ 'label' => __( 'Hover', 'ooohboi-steroids' ),
175
+ ]
176
+ );
177
+ // ------------------------------------------------------------------------- CONTROL: content - X hover
178
+ $element->add_responsive_control(
179
+ '_ob_teleporter_move_content_xp_hover',
180
+ [
181
+ 'label' => __( 'Content Position - X', 'ooohboi-steroids' ),
182
+ 'type' => Controls_Manager::TEXT,
183
+ 'label_block' => true,
184
+ 'separator' => 'before',
185
+ 'default' => 0,
186
+ 'description' => __( 'You can enter any acceptable CSS value, for example: 50em, 300px, 100%, calc(100% - 300px).', 'ooohboi-steroids' ),
187
+ 'selectors' => [
188
+ '{{WRAPPER}}.ob-is-teleporter:hover .ob-tele-midget > .widget-wrap-children' => 'left: {{value}};',
189
+ ],
190
+ 'condition' => [
191
+ '_ob_teleporter_use' => 'use-teleporter',
192
+ ],
193
+ ]
194
+ );
195
+ // ------------------------------------------------------------------------- CONTROL: content - Y hover
196
+ $element->add_responsive_control(
197
+ '_ob_teleporter_move_content_yp_hover',
198
+ [
199
+ 'label' => __( 'Content Position - Y', 'ooohboi-steroids' ),
200
+ 'type' => Controls_Manager::TEXT,
201
+ 'label_block' => true,
202
+ 'default' => 0,
203
+ 'description' => __( 'You can enter any acceptable CSS value, for example: 50em, 300px, 100%, calc(100% - 300px).', 'ooohboi-steroids' ),
204
+ 'selectors' => [
205
+ '{{WRAPPER}}.ob-is-teleporter:hover .ob-tele-midget > .widget-wrap-children' => 'top: {{value}};',
206
+ ],
207
+ 'condition' => [
208
+ '_ob_teleporter_use' => 'use-teleporter',
209
+ ],
210
+ ]
211
+ );
212
+ // ------------------------------------------------------------------------- CONTROL: Hover IMAGE pass to parent
213
+ $element->add_control(
214
+ '_ob_teleporter_pass',
215
+ [
216
+ 'label' => __( 'Teleport to parent', 'ooohboi-steroids' ),
217
+ 'description' => __( 'Column Hover event is teleported to the parent element instead!', 'ooohboi-steroids' ),
218
+ 'type' => Controls_Manager::SWITCHER,
219
+ 'return_value' => 'do-pass',
220
+ 'default' => false,
221
+ 'separator' => 'before',
222
+ 'frontend_available' => true,
223
+ 'condition' => [
224
+ '_ob_teleporter_use' => 'use-teleporter',
225
+ ],
226
+ ]
227
+ );
228
+ // ------------------------------------------------------------------------- CONTROL parent
229
+ $element->add_control(
230
+ '_ob_teleporter_pass_element',
231
+ [
232
+ 'label' => __( 'Which parent?', 'ooohboi-steroids' ),
233
+ 'type' => Controls_Manager::SELECT,
234
+ 'default' => 'section',
235
+ 'frontend_available' => true,
236
+ 'separator' => 'after',
237
+ 'options' => [
238
+ 'section' => __( 'Section', 'ooohboi-steroids' ),
239
+ 'container' => __( 'Container', 'ooohboi-steroids' ),
240
+ ],
241
+ 'condition' => [
242
+ '_ob_teleporter_use' => 'use-teleporter',
243
+ '_ob_teleporter_pass' => 'do-pass',
244
+ ],
245
+ ]
246
+ );
247
+ // ------------------------------------------------------------------------- CONTROL: Disable Tablet
248
+ $element->add_control(
249
+ '_ob_teleporter_no_pass_tablet',
250
+ [
251
+ 'label' => __( 'Disable on Tablet', 'ooohboi-steroids' ),
252
+ 'type' => Controls_Manager::SWITCHER,
253
+ 'return_value' => 'no-tablet',
254
+ 'default' => false,
255
+ 'frontend_available' => true,
256
+ 'condition' => [
257
+ '_ob_teleporter_use' => 'use-teleporter',
258
+ '_ob_teleporter_pass' => 'do-pass',
259
+ ],
260
+ ]
261
+ );
262
+ // ------------------------------------------------------------------------- CONTROL: Disable Mobile
263
+ $element->add_control(
264
+ '_ob_teleporter_no_pass_mobile',
265
+ [
266
+ 'label' => __( 'Disable on Mobile', 'ooohboi-steroids' ),
267
+ 'type' => Controls_Manager::SWITCHER,
268
+ 'return_value' => 'no-mobile',
269
+ 'default' => false,
270
+ 'separator' => 'after',
271
+ 'frontend_available' => true,
272
+ 'condition' => [
273
+ '_ob_teleporter_use' => 'use-teleporter',
274
+ '_ob_teleporter_pass' => 'do-pass',
275
+ ],
276
+ ]
277
+ );
278
+ // ------------------------------------------------------------------------- CONTROL BACKGROUND
279
+ $element->add_group_control(
280
+ Group_Control_Background::get_type(),
281
+ [
282
+ 'name' => '_ob_teleporter_bg_img',
283
+ 'selector' => '{{WRAPPER}}.ob-is-teleporter div[class*="ob-teleporter-"]',
284
+ 'condition' => [
285
+ '_ob_teleporter_use' => 'use-teleporter',
286
+ '_ob_teleporter_pass' => 'do-pass',
287
+ ],
288
+ ]
289
+ );
290
+ // ------------------------------------------------------------------------- CONTROL: Overlay COLOR
291
+ $element->add_control(
292
+ '_ob_teleporter_overlay_color',
293
+ [
294
+ 'label' => __( 'Overlay Color', 'ooohboi-steroids' ),
295
+ 'type' => Controls_Manager::COLOR,
296
+ 'frontend_available' => true,
297
+ 'default' => '#0000004D',
298
+ 'selectors' => [
299
+ '{{WRAPPER}}.ob-is-teleporter div[class*="ob-teleporter-"] > .ob-tele-overlay' => 'background-color: {{VALUE}};',
300
+ ],
301
+ 'condition' => [
302
+ '_ob_teleporter_use' => 'use-teleporter',
303
+ '_ob_teleporter_pass' => 'do-pass',
304
+ ],
305
+ ]
306
+ );
307
+ // ------------------------------------------------------------------------- CONTROL: effect
308
+ $element->add_control(
309
+ '_ob_teleporter_pass_effect',
310
+ [
311
+ 'label' => __( 'Hover effect', 'ooohboi-steroids' ),
312
+ 'type' => Controls_Manager::SELECT,
313
+ 'default' => 'fade',
314
+ 'frontend_available' => true,
315
+ 'separator' => 'before',
316
+ 'options' => [
317
+ 'fade' => __( 'Fade', 'ooohboi-steroids' ),
318
+ 'zoom' => __( 'Zoom', 'ooohboi-steroids' ),
319
+ 'stutter' => __( 'Stutter', 'ooohboi-steroids' ),
320
+ ],
321
+ 'condition' => [
322
+ '_ob_teleporter_use' => 'use-teleporter',
323
+ '_ob_teleporter_pass' => 'do-pass',
324
+ ],
325
+ ]
326
+ );
327
+ // ------------------------------------------------------------------------- CONTROL Transition duration
328
+ $element->add_control(
329
+ '_ob_butterbutton_transitions',
330
+ [
331
+ 'label' => __( 'Effect Duration', 'ooohboi-steroids' ),
332
+ 'separator' => 'before',
333
+ 'type' => Controls_Manager::SLIDER,
334
+ 'render_type' => 'template',
335
+ 'default' => [
336
+ 'size' => 250,
337
+ ],
338
+ 'range' => [
339
+ 'px' => [
340
+ 'min' => 0,
341
+ 'max' => 1000,
342
+ ],
343
+ ],
344
+ 'selectors' => [
345
+ '{{WRAPPER}}.ob-is-teleporter .elementor-widget-wrap, .ob-tele-eff-fade, .ob-tele-eff-zoom, .ob-tele-eff-stutter' => 'transition-duration: {{SIZE}}ms;',
346
+ ],
347
+ 'condition' => [
348
+ '_ob_teleporter_use' => 'use-teleporter',
349
+ ],
350
+ ]
351
+ );
352
+
353
+ $element->end_controls_tab(); // Hover tab end
354
+
355
+ $element->end_controls_tabs(); // Normal & Hover tabs end
356
+
357
+ // ------------------------------------------------------------------------- CONTROL: Visibility
358
+ $element->add_control(
359
+ '_ob_teleporter_visibility',
360
+ [
361
+ 'label' => __( 'Content Overflow', 'ooohboi-steroids' ),
362
+ 'description' => __( 'Strongly advised: HIDDEN.', 'ooohboi-steroids' ),
363
+ 'type' => Controls_Manager::SELECT,
364
+ 'default' => 'hidden',
365
+ 'separator' => 'before',
366
+ 'options' => [
367
+ 'visible' => __( 'Visible', 'ooohboi-steroids' ),
368
+ 'hidden' => __( 'Hidden', 'ooohboi-steroids' ),
369
+ ],
370
+ 'selectors' => [
371
+ '{{WRAPPER}}.ob-is-teleporter' => 'overflow: {{value}};',
372
+ ],
373
+ 'condition' => [
374
+ '_ob_teleporter_use' => 'use-teleporter',
375
+ ],
376
+ ]
377
+ );
378
+
379
+ // ------------------------------------------------------------------------- CONTROL: Sponsor
380
+ $element->add_control(
381
+ '_ob_sponsorship_teleporter',
382
+ [
383
+ 'type' => Controls_Manager::RAW_HTML,
384
+ 'raw' => OoohBoi_Steroids::ooohboi_commercializer(),
385
+ 'prefix_class' => 'ob-steroids-sponsor-',
386
+ ]
387
+ );
388
+
389
+ }
390
+
391
+ }
controls/ooohboi-videomasq.php ADDED
@@ -0,0 +1,205 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use Elementor\Controls_Manager;
3
+ use Elementor\Controls_Stack;
4
+
5
+ if ( ! defined( 'ABSPATH' ) ) {
6
+ exit; // Exit if accessed directly.
7
+ }
8
+
9
+ /**
10
+ * Main OoohBoi Videomasq
11
+ *
12
+ * The main class that initiates and runs the plugin.
13
+ *
14
+ * @since 1.0.0
15
+ */
16
+ final class OoohBoi_Videomasq {
17
+
18
+ /**
19
+ * Initialize
20
+ *
21
+ * @since 1.0.0
22
+ *
23
+ * @access public
24
+ */
25
+ public static function init() {
26
+
27
+ add_action( 'elementor/element/section/section_background/before_section_end', [ __CLASS__, 'ooohboi_videomasq_get_controls' ], 10, 2 );
28
+
29
+ }
30
+
31
+ public static function ooohboi_videomasq_get_controls( $element, $args ) {
32
+
33
+ // selector based on the current element
34
+ $selector = '{{WRAPPER}} .elementor-background-video-container';
35
+
36
+
37
+ $element->add_control(
38
+ '_ob_videomasq_plugin_title',
39
+ [
40
+ 'label' => 'V I D E O M A S Q',
41
+ 'type' => Controls_Manager::HEADING,
42
+ 'separator' => 'before',
43
+ 'condition' => [
44
+ 'background_background' => [ 'video' ],
45
+ ],
46
+ ]
47
+ );
48
+
49
+ // --------------------------------------------------------------------------------------------- CONTROL VIDEOMASQ IMAGE
50
+ $element->add_responsive_control(
51
+ '_ob_videomasq_mask_img',
52
+ [
53
+ 'label' => __( 'Choose Video Mask', 'ooohboi-steroids' ),
54
+ 'description' => __( 'NOTE: The video mask should be black-and-transparent SVG file! Anything that’s 100% black in the mask image with be completely visible, anything that’s transparent will be completely hidden.', 'ooohboi-steroids' ),
55
+ 'type' => Controls_Manager::MEDIA,
56
+ 'default' => [
57
+ 'url' => '',
58
+ ],
59
+ 'selectors' => [
60
+ $selector => '-webkit-mask-image: url("{{URL}}"); mask-image: url("{{URL}}"); -webkit-mask-mode: alpha; mask-mode: alpha;',
61
+ ],
62
+ 'condition' => [
63
+ 'background_background' => [ 'video' ],
64
+ ],
65
+ ]
66
+ );
67
+ // --------------------------------------------------------------------------------------------- CONTROL VIDEOMASQ POSITION
68
+ $element->add_responsive_control(
69
+ '_ob_videomasq_mask_position',
70
+ [
71
+ 'label' => __( 'Mask position', 'ooohboi-steroids' ),
72
+ 'type' => Controls_Manager::SELECT,
73
+ 'default' => 'center center',
74
+ 'options' => [
75
+ '' => __( 'Default', 'ooohboi-steroids' ),
76
+ 'center center' => __( 'Center Center', 'ooohboi-steroids' ),
77
+ 'center left' => __( 'Center Left', 'ooohboi-steroids' ),
78
+ 'center right' => __( 'Center Right', 'ooohboi-steroids' ),
79
+ 'top center' => __( 'Top Center', 'ooohboi-steroids' ),
80
+ 'top left' => __( 'Top Left', 'ooohboi-steroids' ),
81
+ 'top right' => __( 'Top Right', 'ooohboi-steroids' ),
82
+ 'bottom center' => __( 'Bottom Center', 'ooohboi-steroids' ),
83
+ 'bottom left' => __( 'Bottom Left', 'ooohboi-steroids' ),
84
+ 'bottom right' => __( 'Bottom Right', 'ooohboi-steroids' ),
85
+ ],
86
+ 'selectors' => [
87
+ $selector => '-webkit-mask-position: {{VALUE}}; mask-position: {{VALUE}};',
88
+ ],
89
+ 'condition' => [
90
+ '_ob_videomasq_mask_img[url]!' => '',
91
+ 'background_background' => [ 'video' ],
92
+ ],
93
+ ]
94
+ );
95
+ // --------------------------------------------------------------------------------------------- CONTROL VIDEOMASQ SIZE
96
+ $element->add_responsive_control(
97
+ '_ob_videomasq_mask_size',
98
+ [
99
+ 'label' => __( 'Mask size', 'ooohboi-steroids' ),
100
+ 'type' => Controls_Manager::SELECT,
101
+ 'default' => 'contain',
102
+ 'options' => [
103
+ '' => __( 'Default', 'ooohboi-steroids' ),
104
+ 'auto' => __( 'Auto', 'ooohboi-steroids' ),
105
+ 'cover' => __( 'Cover', 'ooohboi-steroids' ),
106
+ 'contain' => __( 'Contain', 'ooohboi-steroids' ),
107
+ 'initial' => __( 'Custom', 'ooohboi-steroids' ),
108
+ ],
109
+ 'selectors' => [
110
+ $selector => '-webkit-mask-size: {{VALUE}}; mask-size: {{VALUE}};',
111
+ ],
112
+ 'condition' => [
113
+ '_ob_videomasq_mask_img[url]!' => '',
114
+ 'background_background' => [ 'video' ],
115
+ ],
116
+ ]
117
+ );
118
+ // --------------------------------------------------------------------------------------------- CONTROL VIDEOMASQ SIZE Custom
119
+ $element->add_responsive_control(
120
+ '_ob_videomasq_mask_size_width',
121
+ [
122
+ 'label' => __( 'Width', 'ooohboi-steroids' ),
123
+ 'type' => Controls_Manager::SLIDER,
124
+ 'size_units' => [ '%', 'px' ],
125
+ 'range' => [
126
+ 'px' => [
127
+ 'min' => 0,
128
+ 'max' => 1000,
129
+ ],
130
+ '%' => [
131
+ 'min' => 0,
132
+ 'max' => 300,
133
+ ],
134
+ ],
135
+ 'default' => [
136
+ 'size' => 100,
137
+ 'unit' => '%',
138
+ ],
139
+ 'selectors' => [
140
+ $selector => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
141
+ ],
142
+ 'condition' => [
143
+ '_ob_videomasq_mask_size' => [ 'initial' ],
144
+ '_ob_videomasq_mask_img[url]!' => '',
145
+ 'background_background' => [ 'video' ],
146
+ ],
147
+ 'device_args' => [
148
+ Controls_Stack::RESPONSIVE_TABLET => [
149
+ 'selectors' => [
150
+ $selector => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
151
+ ],
152
+ 'condition' => [
153
+ '_ob_videomasq_mask_size_tablet' => [ 'initial' ],
154
+ ],
155
+ ],
156
+ Controls_Stack::RESPONSIVE_MOBILE => [
157
+ 'selectors' => [
158
+ $selector => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
159
+ ],
160
+ 'condition' => [
161
+ '_ob_videomasq_mask_size_mobile' => [ 'initial' ],
162
+ ],
163
+ ],
164
+ ],
165
+ ]
166
+ );
167
+ // --------------------------------------------------------------------------------------------- CONTROL VIDEOMASQ REPEAT
168
+ $element->add_responsive_control(
169
+ '_ob_videomasq_mask_repeat',
170
+ [
171
+ 'label' => __( 'Mask repeat', 'ooohboi-steroids' ),
172
+ 'type' => Controls_Manager::SELECT,
173
+ 'default' => 'no-repeat',
174
+ 'options' => [
175
+ 'no-repeat' => __( 'No-repeat', 'ooohboi-steroids' ),
176
+ 'repeat' => __( 'Repeat', 'ooohboi-steroids' ),
177
+ 'repeat-x' => __( 'Repeat-x', 'ooohboi-steroids' ),
178
+ 'repeat-y' => __( 'Repeat-y', 'ooohboi-steroids' ),
179
+ ],
180
+ 'selectors' => [
181
+ $selector => '-webkit-mask-repeat: {{VALUE}}; mask-repeat: {{VALUE}};',
182
+ ],
183
+ 'condition' => [
184
+ '_ob_videomasq_mask_img[url]!' => '',
185
+ 'background_background' => [ 'video' ],
186
+ ],
187
+ ]
188
+ );
189
+
190
+ // ------------------------------------------------------------------------- CONTROL: Sponsor
191
+ $element->add_control(
192
+ '_ob_sponsorship_videomasq',
193
+ [
194
+ 'type' => Controls_Manager::RAW_HTML,
195
+ 'raw' => OoohBoi_Steroids::ooohboi_commercializer(),
196
+ 'prefix_class' => 'ob-steroids-sponsor-',
197
+ 'condition' => [
198
+ 'background_background' => [ 'video' ],
199
+ ],
200
+ ]
201
+ );
202
+
203
+ }
204
+
205
+ }
inc/common-functions.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /* Common task helpers */
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) {
5
+ exit; // Exit if accessed directly.
6
+ }
7
+
8
+ function ooohboi_panel_icon() {
9
+
10
+ return '<i style="position: relative; top: 1px" class="fas fa-crow"></i> ';
11
+
12
+ }
index.php ADDED
File without changes
lang/ooohboi-steroids.pot ADDED
@@ -0,0 +1,928 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #, fuzzy
2
+ msgid ""
3
+ msgstr ""
4
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
5
+ "Project-Id-Version: OoohBoi Steroids for Elementor\n"
6
+ "POT-Creation-Date: 2020-08-07 15:23+0200\n"
7
+ "PO-Revision-Date: 2020-08-07 15:23+0200\n"
8
+ "Last-Translator: \n"
9
+ "Language-Team: \n"
10
+ "MIME-Version: 1.0\n"
11
+ "Content-Type: text/plain; charset=UTF-8\n"
12
+ "Content-Transfer-Encoding: 8bit\n"
13
+ "X-Generator: Poedit 2.3.1\n"
14
+ "X-Poedit-Basepath: ..\n"
15
+ "X-Poedit-Flags-xgettext: --add-comments=translators:\n"
16
+ "X-Poedit-WPHeader: ooohboi-steroids.php\n"
17
+ "X-Poedit-SourceCharset: UTF-8\n"
18
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
19
+ "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
20
+ "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
21
+ "X-Poedit-SearchPath-0: .\n"
22
+ "X-Poedit-SearchPathExcluded-0: *.min.js\n"
23
+
24
+ #: controls/ooohboi-breaking-bad.php:61
25
+ msgid "Enable Breaking Bad?"
26
+ msgstr ""
27
+
28
+ #: controls/ooohboi-breaking-bad.php:62
29
+ msgid ""
30
+ "By enabling Breaking Bad for this SECTION, all the Columns will break in "
31
+ "order to fit the available width."
32
+ msgstr ""
33
+
34
+ #: controls/ooohboi-breaking-bad.php:65 controls/ooohboi-breaking-bad.php:224
35
+ #: controls/ooohboi-butter-button.php:71 controls/ooohboi-glider.php:68
36
+ #: controls/ooohboi-glider.php:83 controls/ooohboi-glider.php:134
37
+ #: controls/ooohboi-glider.php:319 controls/ooohboi-glider.php:463
38
+ #: controls/ooohboi-glider.php:503 controls/ooohboi-glider.php:538
39
+ #: controls/ooohboi-glider.php:556 controls/ooohboi-harakiri.php:81
40
+ #: controls/ooohboi-overlaiz.php:61 controls/ooohboi-overlay-underlay.php:1213
41
+ #: controls/ooohboi-overlay-underlay.php:1232 controls/ooohboi-paginini.php:220
42
+ #: controls/ooohboi-perspektive.php:74 controls/ooohboi-shadough.php:50
43
+ msgid "Yes"
44
+ msgstr ""
45
+
46
+ #: controls/ooohboi-breaking-bad.php:66 controls/ooohboi-breaking-bad.php:225
47
+ #: controls/ooohboi-butter-button.php:72 controls/ooohboi-glider.php:69
48
+ #: controls/ooohboi-glider.php:84 controls/ooohboi-glider.php:135
49
+ #: controls/ooohboi-glider.php:320 controls/ooohboi-glider.php:464
50
+ #: controls/ooohboi-glider.php:504 controls/ooohboi-glider.php:539
51
+ #: controls/ooohboi-glider.php:557 controls/ooohboi-harakiri.php:82
52
+ #: controls/ooohboi-overlaiz.php:62 controls/ooohboi-overlay-underlay.php:1214
53
+ #: controls/ooohboi-overlay-underlay.php:1233 controls/ooohboi-paginini.php:221
54
+ #: controls/ooohboi-perspektive.php:75 controls/ooohboi-shadough.php:51
55
+ msgid "No"
56
+ msgstr ""
57
+
58
+ #: controls/ooohboi-breaking-bad.php:76
59
+ msgid "Align Columns"
60
+ msgstr ""
61
+
62
+ #: controls/ooohboi-breaking-bad.php:80 controls/ooohboi-breaking-bad.php:123
63
+ msgid "Start"
64
+ msgstr ""
65
+
66
+ #: controls/ooohboi-breaking-bad.php:81 controls/ooohboi-breaking-bad.php:124
67
+ msgid "Center"
68
+ msgstr ""
69
+
70
+ #: controls/ooohboi-breaking-bad.php:82 controls/ooohboi-breaking-bad.php:125
71
+ msgid "End"
72
+ msgstr ""
73
+
74
+ #: controls/ooohboi-breaking-bad.php:83
75
+ msgid "Space Between"
76
+ msgstr ""
77
+
78
+ #: controls/ooohboi-breaking-bad.php:84
79
+ msgid "Space Around"
80
+ msgstr ""
81
+
82
+ #: controls/ooohboi-breaking-bad.php:85
83
+ msgid "Space Evenly"
84
+ msgstr ""
85
+
86
+ #: controls/ooohboi-breaking-bad.php:99
87
+ msgid "Columns Direction"
88
+ msgstr ""
89
+
90
+ #: controls/ooohboi-breaking-bad.php:103
91
+ msgid "Row"
92
+ msgstr ""
93
+
94
+ #: controls/ooohboi-breaking-bad.php:104
95
+ msgid "Column"
96
+ msgstr ""
97
+
98
+ #: controls/ooohboi-breaking-bad.php:119
99
+ msgid "Align Items"
100
+ msgstr ""
101
+
102
+ #: controls/ooohboi-breaking-bad.php:163
103
+ msgid "Custom Width"
104
+ msgstr ""
105
+
106
+ #: controls/ooohboi-breaking-bad.php:167
107
+ msgid ""
108
+ "You can enter any acceptable CSS value, for example: 50em, 300px, 100%, "
109
+ "calc(100% - 300px). NOTE: If you want to make the columns wrap, Enable "
110
+ "Breaking Bad for this Column parent SECTION!"
111
+ msgstr ""
112
+
113
+ #: controls/ooohboi-breaking-bad.php:177 controls/ooohboi-harakiri.php:142
114
+ msgid "Custom Height"
115
+ msgstr ""
116
+
117
+ #: controls/ooohboi-breaking-bad.php:203
118
+ msgid "Column Order"
119
+ msgstr ""
120
+
121
+ #: controls/ooohboi-breaking-bad.php:205
122
+ #, php-format
123
+ msgid "More info at %sMozilla%s."
124
+ msgstr ""
125
+
126
+ #: controls/ooohboi-breaking-bad.php:221
127
+ msgid "Scrollable Column?"
128
+ msgstr ""
129
+
130
+ #: controls/ooohboi-butter-button.php:68
131
+ msgid "Enable Butter Buttons?"
132
+ msgstr ""
133
+
134
+ #: controls/ooohboi-butter-button.php:84
135
+ msgid "Typography"
136
+ msgstr ""
137
+
138
+ #: controls/ooohboi-butter-button.php:97
139
+ msgid "Icon Size"
140
+ msgstr ""
141
+
142
+ #: controls/ooohboi-butter-button.php:98
143
+ msgid "Be sure the icon is selected in the Content tab!"
144
+ msgstr ""
145
+
146
+ #: controls/ooohboi-butter-button.php:132
147
+ msgid "Transition Duration"
148
+ msgstr ""
149
+
150
+ #: controls/ooohboi-butter-button.php:158 controls/ooohboi-glider.php:253
151
+ #: controls/ooohboi-paginini.php:59
152
+ msgid "Padding"
153
+ msgstr ""
154
+
155
+ #: controls/ooohboi-butter-button.php:178
156
+ msgid "Regular"
157
+ msgstr ""
158
+
159
+ #: controls/ooohboi-butter-button.php:186
160
+ #: controls/ooohboi-butter-button.php:298
161
+ msgid "Text Color"
162
+ msgstr ""
163
+
164
+ #: controls/ooohboi-butter-button.php:206
165
+ #: controls/ooohboi-butter-button.php:319
166
+ msgctxt "Butter Button Text Shadow Control"
167
+ msgid "Text Shadow"
168
+ msgstr ""
169
+
170
+ #: controls/ooohboi-butter-button.php:233
171
+ #: controls/ooohboi-butter-button.php:346 controls/ooohboi-overlaiz.php:343
172
+ #: controls/ooohboi-overlaiz.php:362 controls/ooohboi-overlay-underlay.php:425
173
+ #: controls/ooohboi-overlay-underlay.php:442
174
+ #: controls/ooohboi-overlay-underlay.php:980
175
+ #: controls/ooohboi-overlay-underlay.php:997 controls/ooohboi-paginini.php:146
176
+ #: controls/ooohboi-paginini.php:195
177
+ msgid "Border"
178
+ msgstr ""
179
+
180
+ #: controls/ooohboi-butter-button.php:246
181
+ #: controls/ooohboi-butter-button.php:359 controls/ooohboi-glider.php:219
182
+ #: controls/ooohboi-glider.php:423 controls/ooohboi-overlaiz.php:374
183
+ #: controls/ooohboi-overlay-underlay.php:453
184
+ #: controls/ooohboi-overlay-underlay.php:1005 controls/ooohboi-paginini.php:154
185
+ #: controls/ooohboi-paginini.php:203
186
+ msgid "Border Radius"
187
+ msgstr ""
188
+
189
+ #: controls/ooohboi-butter-button.php:264
190
+ #: controls/ooohboi-butter-button.php:377 controls/ooohboi-overlaiz.php:394
191
+ msgid "Box Shadow"
192
+ msgstr ""
193
+
194
+ #: controls/ooohboi-butter-button.php:290 controls/ooohboi-teleporter.php:174
195
+ msgid "Hover"
196
+ msgstr ""
197
+
198
+ #: controls/ooohboi-glider.php:64
199
+ msgid "Create Slider?"
200
+ msgstr ""
201
+
202
+ #: controls/ooohboi-glider.php:65
203
+ msgid "This section columns will become slidable."
204
+ msgstr ""
205
+
206
+ #: controls/ooohboi-glider.php:80
207
+ msgid "Adaptable height?"
208
+ msgstr ""
209
+
210
+ #: controls/ooohboi-glider.php:98
211
+ msgid "Slider height"
212
+ msgstr ""
213
+
214
+ #: controls/ooohboi-glider.php:131
215
+ msgid "Hide Navigation"
216
+ msgstr ""
217
+
218
+ #: controls/ooohboi-glider.php:152
219
+ msgid "Navigation styles"
220
+ msgstr ""
221
+
222
+ #: controls/ooohboi-glider.php:169
223
+ msgid "Arrows Color"
224
+ msgstr ""
225
+
226
+ #: controls/ooohboi-glider.php:182
227
+ msgid "Arrows Color - Hover"
228
+ msgstr ""
229
+
230
+ #: controls/ooohboi-glider.php:195 controls/ooohboi-paginini.php:47
231
+ #: controls/ooohboi-paginini.php:121 controls/ooohboi-paginini.php:182
232
+ msgid "Background Color"
233
+ msgstr ""
234
+
235
+ #: controls/ooohboi-glider.php:207
236
+ msgid "Background Color - Hover"
237
+ msgstr ""
238
+
239
+ #: controls/ooohboi-glider.php:231
240
+ msgid "Icon size"
241
+ msgstr ""
242
+
243
+ #: controls/ooohboi-glider.php:274
244
+ msgid "Calc - Y"
245
+ msgstr ""
246
+
247
+ #: controls/ooohboi-glider.php:275 controls/ooohboi-glider.php:289
248
+ #: controls/ooohboi-glider.php:302
249
+ msgid "Valid CSS only! Like: 25px or 15em or 100% - 50px or 50% + 3rem"
250
+ msgstr ""
251
+
252
+ #: controls/ooohboi-glider.php:287
253
+ msgid "Calc Prev - X"
254
+ msgstr ""
255
+
256
+ #: controls/ooohboi-glider.php:300
257
+ msgid "Calc Next - X"
258
+ msgstr ""
259
+
260
+ #: controls/ooohboi-glider.php:316
261
+ msgid "Hide Pagination"
262
+ msgstr ""
263
+
264
+ #: controls/ooohboi-glider.php:338
265
+ msgid "Pagination styles"
266
+ msgstr ""
267
+
268
+ #: controls/ooohboi-glider.php:354
269
+ msgid "Pagination type"
270
+ msgstr ""
271
+
272
+ #: controls/ooohboi-glider.php:358
273
+ msgid "Bullets"
274
+ msgstr ""
275
+
276
+ #: controls/ooohboi-glider.php:359
277
+ msgid "Fraction"
278
+ msgstr ""
279
+
280
+ #: controls/ooohboi-glider.php:360
281
+ msgid "Progress Bar"
282
+ msgstr ""
283
+
284
+ #: controls/ooohboi-glider.php:373
285
+ msgid "Pagination Color"
286
+ msgstr ""
287
+
288
+ #: controls/ooohboi-glider.php:386
289
+ msgid "Pagination Color - Active"
290
+ msgstr ""
291
+
292
+ #: controls/ooohboi-glider.php:400
293
+ msgid "Size"
294
+ msgstr ""
295
+
296
+ #: controls/ooohboi-glider.php:441
297
+ msgid "Transition type"
298
+ msgstr ""
299
+
300
+ #: controls/ooohboi-glider.php:446
301
+ msgid "Slide"
302
+ msgstr ""
303
+
304
+ #: controls/ooohboi-glider.php:447 controls/ooohboi-teleporter.php:317
305
+ msgid "Fade"
306
+ msgstr ""
307
+
308
+ #: controls/ooohboi-glider.php:460
309
+ msgid "Infinite Loop"
310
+ msgstr ""
311
+
312
+ #: controls/ooohboi-glider.php:479
313
+ msgid "Direction"
314
+ msgstr ""
315
+
316
+ #: controls/ooohboi-glider.php:484
317
+ msgid "Horizontal"
318
+ msgstr ""
319
+
320
+ #: controls/ooohboi-glider.php:485
321
+ msgid "Vertical"
322
+ msgstr ""
323
+
324
+ #: controls/ooohboi-glider.php:499
325
+ msgid "Parallax"
326
+ msgstr ""
327
+
328
+ #: controls/ooohboi-glider.php:500
329
+ msgid "It will work with Elementor PRO Attributes only."
330
+ msgstr ""
331
+
332
+ #: controls/ooohboi-glider.php:519
333
+ msgid "Transition speed"
334
+ msgstr ""
335
+
336
+ #: controls/ooohboi-glider.php:535
337
+ msgid "Allow Touch Move"
338
+ msgstr ""
339
+
340
+ #: controls/ooohboi-glider.php:553
341
+ msgid "Autoplay"
342
+ msgstr ""
343
+
344
+ #: controls/ooohboi-glider.php:571
345
+ msgid "Autoplay delay"
346
+ msgstr ""
347
+
348
+ #: controls/ooohboi-glider.php:572
349
+ msgid "In miliseconds! 1000 is one second."
350
+ msgstr ""
351
+
352
+ #: controls/ooohboi-harakiri.php:59
353
+ msgid "Writing Mode"
354
+ msgstr ""
355
+
356
+ #: controls/ooohboi-harakiri.php:65
357
+ msgid "Vertical LR"
358
+ msgstr ""
359
+
360
+ #: controls/ooohboi-harakiri.php:66
361
+ msgid "Vertical RL"
362
+ msgstr ""
363
+
364
+ #: controls/ooohboi-harakiri.php:67 controls/ooohboi-overlay-underlay.php:130
365
+ #: controls/ooohboi-overlay-underlay.php:704
366
+ #: controls/ooohboi-teleporter.php:129
367
+ msgid "Normal"
368
+ msgstr ""
369
+
370
+ #: controls/ooohboi-harakiri.php:79
371
+ msgid "Flip"
372
+ msgstr ""
373
+
374
+ #: controls/ooohboi-harakiri.php:118 controls/ooohboi-overlaiz.php:142
375
+ #: controls/ooohboi-overlay-underlay.php:226
376
+ #: controls/ooohboi-overlay-underlay.php:796
377
+ msgid "Height"
378
+ msgstr ""
379
+
380
+ #: controls/ooohboi-harakiri.php:122 controls/ooohboi-overlay-underlay.php:509
381
+ #: controls/ooohboi-overlay-underlay.php:537
382
+ #: controls/ooohboi-overlay-underlay.php:1055
383
+ #: controls/ooohboi-overlay-underlay.php:1082 controls/ooohboi-videomasq.php:75
384
+ #: controls/ooohboi-videomasq.php:103
385
+ msgid "Default"
386
+ msgstr ""
387
+
388
+ #: controls/ooohboi-harakiri.php:123
389
+ msgid "Inline"
390
+ msgstr ""
391
+
392
+ #: controls/ooohboi-harakiri.php:124 controls/ooohboi-overlay-underlay.php:541
393
+ #: controls/ooohboi-overlay-underlay.php:1086
394
+ #: controls/ooohboi-videomasq.php:107
395
+ msgid "Custom"
396
+ msgstr ""
397
+
398
+ #: controls/ooohboi-harakiri.php:143
399
+ msgid "NOTE: [%] unit works properly only if Column height is a fixed value!"
400
+ msgstr ""
401
+
402
+ #: controls/ooohboi-overlaiz.php:58
403
+ msgid "Enable Overlaiz?"
404
+ msgstr ""
405
+
406
+ #: controls/ooohboi-overlaiz.php:75 controls/ooohboi-overlay-underlay.php:169
407
+ #: controls/ooohboi-overlay-underlay.php:556
408
+ #: controls/ooohboi-overlay-underlay.php:743
409
+ #: controls/ooohboi-overlay-underlay.php:1100
410
+ #: controls/ooohboi-videomasq.php:122
411
+ msgid "Width"
412
+ msgstr ""
413
+
414
+ #: controls/ooohboi-overlaiz.php:126 controls/ooohboi-overlay-underlay.php:211
415
+ #: controls/ooohboi-overlay-underlay.php:784
416
+ msgid "Calc Width"
417
+ msgstr ""
418
+
419
+ #: controls/ooohboi-overlaiz.php:127 controls/ooohboi-overlaiz.php:194
420
+ #: controls/ooohboi-overlaiz.php:261 controls/ooohboi-overlaiz.php:328
421
+ #: controls/ooohboi-overlay-underlay.php:212
422
+ #: controls/ooohboi-overlay-underlay.php:326
423
+ #: controls/ooohboi-overlay-underlay.php:785
424
+ #: controls/ooohboi-overlay-underlay.php:891
425
+ #: controls/ooohboi-overlay-underlay.php:944
426
+ msgid "Enter CSS calc value only! Like: 100% - 50px or 100% + 2em"
427
+ msgstr ""
428
+
429
+ #: controls/ooohboi-overlaiz.php:193 controls/ooohboi-overlay-underlay.php:268
430
+ #: controls/ooohboi-overlay-underlay.php:837
431
+ msgid "Calc Height"
432
+ msgstr ""
433
+
434
+ #: controls/ooohboi-overlaiz.php:209
435
+ msgid "Position - X"
436
+ msgstr ""
437
+
438
+ #: controls/ooohboi-overlaiz.php:260
439
+ msgid "Calc Position - X"
440
+ msgstr ""
441
+
442
+ #: controls/ooohboi-overlaiz.php:276
443
+ msgid "Position - Y"
444
+ msgstr ""
445
+
446
+ #: controls/ooohboi-overlaiz.php:327
447
+ msgid "Calc Position - Y"
448
+ msgstr ""
449
+
450
+ #: controls/ooohboi-overlaiz.php:419 controls/ooohboi-overlay-underlay.php:630
451
+ #: controls/ooohboi-overlay-underlay.php:1172
452
+ msgid "Z-Index"
453
+ msgstr ""
454
+
455
+ #: controls/ooohboi-overlay-underlay.php:78
456
+ msgid "Overlay"
457
+ msgstr ""
458
+
459
+ #: controls/ooohboi-overlay-underlay.php:93
460
+ #: controls/ooohboi-overlay-underlay.php:667
461
+ msgid "Opacity"
462
+ msgstr ""
463
+
464
+ #: controls/ooohboi-overlay-underlay.php:127
465
+ #: controls/ooohboi-overlay-underlay.php:701
466
+ msgid "Blend Mode"
467
+ msgstr ""
468
+
469
+ #: controls/ooohboi-overlay-underlay.php:153
470
+ #: controls/ooohboi-overlay-underlay.php:727
471
+ msgid "Position and Size"
472
+ msgstr ""
473
+
474
+ #: controls/ooohboi-overlay-underlay.php:269
475
+ #: controls/ooohboi-overlay-underlay.php:383
476
+ #: controls/ooohboi-overlay-underlay.php:838
477
+ msgid "Enter CSS calc value only! Like: 45% + 85px or 100% - 3em"
478
+ msgstr ""
479
+
480
+ #: controls/ooohboi-overlay-underlay.php:283
481
+ #: controls/ooohboi-overlay-underlay.php:849
482
+ msgid "Offset Top"
483
+ msgstr ""
484
+
485
+ #: controls/ooohboi-overlay-underlay.php:325
486
+ #: controls/ooohboi-overlay-underlay.php:890
487
+ msgid "Calc Offset Top"
488
+ msgstr ""
489
+
490
+ #: controls/ooohboi-overlay-underlay.php:340
491
+ #: controls/ooohboi-overlay-underlay.php:902
492
+ msgid "Offset Left"
493
+ msgstr ""
494
+
495
+ #: controls/ooohboi-overlay-underlay.php:382
496
+ #: controls/ooohboi-overlay-underlay.php:943
497
+ msgid "Calc Offset Left"
498
+ msgstr ""
499
+
500
+ #: controls/ooohboi-overlay-underlay.php:398
501
+ #: controls/ooohboi-overlay-underlay.php:956
502
+ msgid "Rotate"
503
+ msgstr ""
504
+
505
+ #: controls/ooohboi-overlay-underlay.php:471
506
+ msgid "Overlay Mask"
507
+ msgstr ""
508
+
509
+ #: controls/ooohboi-overlay-underlay.php:487
510
+ #: controls/ooohboi-overlay-underlay.php:1036
511
+ msgid "Choose Image Mask"
512
+ msgstr ""
513
+
514
+ #: controls/ooohboi-overlay-underlay.php:488
515
+ #: controls/ooohboi-overlay-underlay.php:1037
516
+ #, php-format
517
+ msgid ""
518
+ "NOTE: Image Mask should be black-and-transparent SVG file! Anything that’s "
519
+ "100% black in the image mask with be completely visible, anything that’s "
520
+ "transparent will be completely hidden."
521
+ msgstr ""
522
+
523
+ #: controls/ooohboi-overlay-underlay.php:505
524
+ #: controls/ooohboi-overlay-underlay.php:1051 controls/ooohboi-videomasq.php:71
525
+ msgid "Mask position"
526
+ msgstr ""
527
+
528
+ #: controls/ooohboi-overlay-underlay.php:510
529
+ #: controls/ooohboi-overlay-underlay.php:1056 controls/ooohboi-videomasq.php:76
530
+ msgid "Center Center"
531
+ msgstr ""
532
+
533
+ #: controls/ooohboi-overlay-underlay.php:511
534
+ #: controls/ooohboi-overlay-underlay.php:1057 controls/ooohboi-videomasq.php:77
535
+ msgid "Center Left"
536
+ msgstr ""
537
+
538
+ #: controls/ooohboi-overlay-underlay.php:512
539
+ #: controls/ooohboi-overlay-underlay.php:1058 controls/ooohboi-videomasq.php:78
540
+ msgid "Center Right"
541
+ msgstr ""
542
+
543
+ #: controls/ooohboi-overlay-underlay.php:513
544
+ #: controls/ooohboi-overlay-underlay.php:1059 controls/ooohboi-videomasq.php:79
545
+ msgid "Top Center"
546
+ msgstr ""
547
+
548
+ #: controls/ooohboi-overlay-underlay.php:514
549
+ #: controls/ooohboi-overlay-underlay.php:1060 controls/ooohboi-videomasq.php:80
550
+ msgid "Top Left"
551
+ msgstr ""
552
+
553
+ #: controls/ooohboi-overlay-underlay.php:515
554
+ #: controls/ooohboi-overlay-underlay.php:1061 controls/ooohboi-videomasq.php:81
555
+ msgid "Top Right"
556
+ msgstr ""
557
+
558
+ #: controls/ooohboi-overlay-underlay.php:516
559
+ #: controls/ooohboi-overlay-underlay.php:1062 controls/ooohboi-videomasq.php:82
560
+ msgid "Bottom Center"
561
+ msgstr ""
562
+
563
+ #: controls/ooohboi-overlay-underlay.php:517
564
+ #: controls/ooohboi-overlay-underlay.php:1063 controls/ooohboi-videomasq.php:83
565
+ msgid "Bottom Left"
566
+ msgstr ""
567
+
568
+ #: controls/ooohboi-overlay-underlay.php:518
569
+ #: controls/ooohboi-overlay-underlay.php:1064 controls/ooohboi-videomasq.php:84
570
+ msgid "Bottom Right"
571
+ msgstr ""
572
+
573
+ #: controls/ooohboi-overlay-underlay.php:533
574
+ #: controls/ooohboi-overlay-underlay.php:1078 controls/ooohboi-videomasq.php:99
575
+ msgid "Mask size"
576
+ msgstr ""
577
+
578
+ #: controls/ooohboi-overlay-underlay.php:538
579
+ #: controls/ooohboi-overlay-underlay.php:1083
580
+ #: controls/ooohboi-videomasq.php:104
581
+ msgid "Auto"
582
+ msgstr ""
583
+
584
+ #: controls/ooohboi-overlay-underlay.php:539
585
+ #: controls/ooohboi-overlay-underlay.php:1084
586
+ #: controls/ooohboi-videomasq.php:105
587
+ msgid "Cover"
588
+ msgstr ""
589
+
590
+ #: controls/ooohboi-overlay-underlay.php:540
591
+ #: controls/ooohboi-overlay-underlay.php:1085
592
+ #: controls/ooohboi-videomasq.php:106
593
+ msgid "Contain"
594
+ msgstr ""
595
+
596
+ #: controls/ooohboi-overlay-underlay.php:605
597
+ #: controls/ooohboi-overlay-underlay.php:1148
598
+ #: controls/ooohboi-videomasq.php:171
599
+ msgid "Mask repeat"
600
+ msgstr ""
601
+
602
+ #: controls/ooohboi-overlay-underlay.php:609
603
+ #: controls/ooohboi-overlay-underlay.php:1152
604
+ #: controls/ooohboi-videomasq.php:175
605
+ msgid "No-repeat"
606
+ msgstr ""
607
+
608
+ #: controls/ooohboi-overlay-underlay.php:610
609
+ #: controls/ooohboi-overlay-underlay.php:1153
610
+ #: controls/ooohboi-videomasq.php:176
611
+ msgid "Repeat"
612
+ msgstr ""
613
+
614
+ #: controls/ooohboi-overlay-underlay.php:611
615
+ #: controls/ooohboi-overlay-underlay.php:1154
616
+ #: controls/ooohboi-videomasq.php:177
617
+ msgid "Repeat-x"
618
+ msgstr ""
619
+
620
+ #: controls/ooohboi-overlay-underlay.php:612
621
+ #: controls/ooohboi-overlay-underlay.php:1155
622
+ #: controls/ooohboi-videomasq.php:178
623
+ msgid "Repeat-y"
624
+ msgstr ""
625
+
626
+ #: controls/ooohboi-overlay-underlay.php:651
627
+ msgid "Underlay"
628
+ msgstr ""
629
+
630
+ #: controls/ooohboi-overlay-underlay.php:1020
631
+ msgid "Underlay Mask"
632
+ msgstr ""
633
+
634
+ #: controls/ooohboi-overlay-underlay.php:1210
635
+ msgid "Get rid of the Horizontal scroller?"
636
+ msgstr ""
637
+
638
+ #: controls/ooohboi-overlay-underlay.php:1211
639
+ msgid ""
640
+ "OoohBoi POOOPART may cause Horizontal Scroller to show up. This is how you "
641
+ "can remove it."
642
+ msgstr ""
643
+
644
+ #: controls/ooohboi-overlay-underlay.php:1229
645
+ msgid "Baseline Grid"
646
+ msgstr ""
647
+
648
+ #: controls/ooohboi-overlay-underlay.php:1230
649
+ msgid "Baseline grid helps you maintain accuracy and consistency"
650
+ msgstr ""
651
+
652
+ #: controls/ooohboi-overlay-underlay.php:1243
653
+ msgid "Grid style"
654
+ msgstr ""
655
+
656
+ #: controls/ooohboi-overlay-underlay.php:1247
657
+ msgid "Squares"
658
+ msgstr ""
659
+
660
+ #: controls/ooohboi-overlay-underlay.php:1248
661
+ msgid "Vertical lines"
662
+ msgstr ""
663
+
664
+ #: controls/ooohboi-overlay-underlay.php:1249
665
+ msgid "Horizontal lines"
666
+ msgstr ""
667
+
668
+ #: controls/ooohboi-overlay-underlay.php:1259
669
+ msgid "Grid color"
670
+ msgstr ""
671
+
672
+ #: controls/ooohboi-overlay-underlay.php:1270
673
+ msgid "Grid size"
674
+ msgstr ""
675
+
676
+ #: controls/ooohboi-overlay-underlay.php:1294
677
+ msgid "Vertical Spacing"
678
+ msgstr ""
679
+
680
+ #: controls/ooohboi-overlay-underlay.php:1318
681
+ msgid "Horizontal Spacing"
682
+ msgstr ""
683
+
684
+ #: controls/ooohboi-paginini.php:75
685
+ msgid "Margin"
686
+ msgstr ""
687
+
688
+ #: controls/ooohboi-paginini.php:91
689
+ msgid "Page Number Padding"
690
+ msgstr ""
691
+
692
+ #: controls/ooohboi-paginini.php:108
693
+ msgid "Page numbers"
694
+ msgstr ""
695
+
696
+ #: controls/ooohboi-paginini.php:133
697
+ msgid "Background Color - HOVER"
698
+ msgstr ""
699
+
700
+ #: controls/ooohboi-paginini.php:169
701
+ msgid "Current Page"
702
+ msgstr ""
703
+
704
+ #: controls/ooohboi-paginini.php:218
705
+ msgid "Unstyle Prev and Next?"
706
+ msgstr ""
707
+
708
+ #: controls/ooohboi-perspektive.php:70
709
+ msgid "Enable Perspektive?"
710
+ msgstr ""
711
+
712
+ #: controls/ooohboi-perspektive.php:71
713
+ msgid ""
714
+ "NOTE: Perspektive interferes with z-index! The background of the element "
715
+ "with the Perspektive will not be affected by the Perspektive."
716
+ msgstr ""
717
+
718
+ #: controls/ooohboi-perspektive.php:86
719
+ msgid "Perspective"
720
+ msgstr ""
721
+
722
+ #: controls/ooohboi-perspektive.php:119
723
+ msgid "Perspective Origin"
724
+ msgstr ""
725
+
726
+ #: controls/ooohboi-perspektive.php:144
727
+ msgid "Translate Z"
728
+ msgstr ""
729
+
730
+ #: controls/ooohboi-perspektive.php:177
731
+ msgid "Rotate X"
732
+ msgstr ""
733
+
734
+ #: controls/ooohboi-perspektive.php:201
735
+ msgid "Rotate Y"
736
+ msgstr ""
737
+
738
+ #: controls/ooohboi-perspektive.php:225 controls/ooohboi-teleporter.php:361
739
+ msgid "Content Overflow"
740
+ msgstr ""
741
+
742
+ #: controls/ooohboi-perspektive.php:226
743
+ msgid "Just in case the wrapper is \"overflow: hidden\""
744
+ msgstr ""
745
+
746
+ #: controls/ooohboi-perspektive.php:231 controls/ooohboi-teleporter.php:367
747
+ msgid "Visible"
748
+ msgstr ""
749
+
750
+ #: controls/ooohboi-perspektive.php:232 controls/ooohboi-teleporter.php:368
751
+ msgid "Hidden"
752
+ msgstr ""
753
+
754
+ #: controls/ooohboi-photogiraffe.php:46
755
+ msgid "Enable PhotoGiraffe"
756
+ msgstr ""
757
+
758
+ #: controls/ooohboi-photogiraffe.php:47
759
+ msgid ""
760
+ "That will make the photo full-height. Be sure that the parent conteiner "
761
+ "(Column) uses the fixed height."
762
+ msgstr ""
763
+
764
+ #: controls/ooohboi-searchcop.php:45
765
+ msgid "Search Target"
766
+ msgstr ""
767
+
768
+ #: controls/ooohboi-searchcop.php:50
769
+ msgid "Search Posts"
770
+ msgstr ""
771
+
772
+ #: controls/ooohboi-searchcop.php:51
773
+ msgid "Search Pages"
774
+ msgstr ""
775
+
776
+ #: controls/ooohboi-searchcop.php:52
777
+ msgid "Search All"
778
+ msgstr ""
779
+
780
+ #: controls/ooohboi-shadough.php:46
781
+ msgid "Enable Shadough?"
782
+ msgstr ""
783
+
784
+ #: controls/ooohboi-shadough.php:47
785
+ msgid "Creates a shadow that conforms to the shape."
786
+ msgstr ""
787
+
788
+ #: controls/ooohboi-shadough.php:61
789
+ msgid "Offset X"
790
+ msgstr ""
791
+
792
+ #: controls/ooohboi-shadough.php:92
793
+ msgid "Offset Y"
794
+ msgstr ""
795
+
796
+ #: controls/ooohboi-shadough.php:123
797
+ msgid "Blur"
798
+ msgstr ""
799
+
800
+ #: controls/ooohboi-shadough.php:153
801
+ msgid "Shadow Color"
802
+ msgstr ""
803
+
804
+ #: controls/ooohboi-teleporter.php:61
805
+ msgid "Enable Teleporter"
806
+ msgstr ""
807
+
808
+ #: controls/ooohboi-teleporter.php:73 controls/ooohboi-teleporter.php:90
809
+ msgid "Link"
810
+ msgstr ""
811
+
812
+ #: controls/ooohboi-teleporter.php:78
813
+ msgid "None"
814
+ msgstr ""
815
+
816
+ #: controls/ooohboi-teleporter.php:79
817
+ msgid "Custom URL"
818
+ msgstr ""
819
+
820
+ #: controls/ooohboi-teleporter.php:97
821
+ msgid "https://your-link.com"
822
+ msgstr ""
823
+
824
+ #: controls/ooohboi-teleporter.php:109
825
+ msgid "Cursor Pointer"
826
+ msgstr ""
827
+
828
+ #: controls/ooohboi-teleporter.php:110
829
+ msgid "Keep the default cursor or show pointer on Hover?"
830
+ msgstr ""
831
+
832
+ #: controls/ooohboi-teleporter.php:136 controls/ooohboi-teleporter.php:181
833
+ msgid "Content Position - X"
834
+ msgstr ""
835
+
836
+ #: controls/ooohboi-teleporter.php:137 controls/ooohboi-teleporter.php:155
837
+ #: controls/ooohboi-teleporter.php:186 controls/ooohboi-teleporter.php:203
838
+ msgid ""
839
+ "You can enter any acceptable CSS value, for example: 50em, 300px, 100%, "
840
+ "calc(100% - 300px)."
841
+ msgstr ""
842
+
843
+ #: controls/ooohboi-teleporter.php:154 controls/ooohboi-teleporter.php:199
844
+ msgid "Content Position - Y"
845
+ msgstr ""
846
+
847
+ #: controls/ooohboi-teleporter.php:216
848
+ msgid "Teleport to parent"
849
+ msgstr ""
850
+
851
+ #: controls/ooohboi-teleporter.php:217
852
+ msgid "Column Hover event is teleported to the parent element instead!"
853
+ msgstr ""
854
+
855
+ #: controls/ooohboi-teleporter.php:232
856
+ msgid "Which parent?"
857
+ msgstr ""
858
+
859
+ #: controls/ooohboi-teleporter.php:238
860
+ msgid "Section"
861
+ msgstr ""
862
+
863
+ #: controls/ooohboi-teleporter.php:239
864
+ msgid "Container"
865
+ msgstr ""
866
+
867
+ #: controls/ooohboi-teleporter.php:251
868
+ msgid "Disable on Tablet"
869
+ msgstr ""
870
+
871
+ #: controls/ooohboi-teleporter.php:266
872
+ msgid "Disable on Mobile"
873
+ msgstr ""
874
+
875
+ #: controls/ooohboi-teleporter.php:294
876
+ msgid "Overlay Color"
877
+ msgstr ""
878
+
879
+ #: controls/ooohboi-teleporter.php:311
880
+ msgid "Hover effect"
881
+ msgstr ""
882
+
883
+ #: controls/ooohboi-teleporter.php:318
884
+ msgid "Zoom"
885
+ msgstr ""
886
+
887
+ #: controls/ooohboi-teleporter.php:319
888
+ msgid "Stutter"
889
+ msgstr ""
890
+
891
+ #: controls/ooohboi-teleporter.php:331
892
+ msgid "Effect Duration"
893
+ msgstr ""
894
+
895
+ #: controls/ooohboi-teleporter.php:362
896
+ msgid "Strongly advised: HIDDEN."
897
+ msgstr ""
898
+
899
+ #: controls/ooohboi-videomasq.php:53
900
+ msgid "Choose Video Mask"
901
+ msgstr ""
902
+
903
+ #: controls/ooohboi-videomasq.php:54
904
+ #, php-format
905
+ msgid ""
906
+ "NOTE: The video mask should be black-and-transparent SVG file! Anything "
907
+ "that’s 100% black in the mask image with be completely visible, anything "
908
+ "that’s transparent will be completely hidden."
909
+ msgstr ""
910
+
911
+ #. Plugin Name of the plugin/theme
912
+ msgid "OoohBoi Steroids for Elementor"
913
+ msgstr ""
914
+
915
+ #. Description of the plugin/theme
916
+ msgid ""
917
+ "An awesome set of tools, options and settings that expand Elementor "
918
+ "defaults. Instead of creating new Elementor Widgets, these act like an "
919
+ "upgrade of existing options or the self-standing panels."
920
+ msgstr ""
921
+
922
+ #. Author of the plugin/theme
923
+ msgid "OoohBoi"
924
+ msgstr ""
925
+
926
+ #. Author URI of the plugin/theme
927
+ msgid "https://www.youtube.com/c/OoohBoi"
928
+ msgstr ""
ooohboi-steroids.php ADDED
@@ -0,0 +1,279 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plugin Name: OoohBoi Steroids for Elementor
4
+ * Description: An awesome set of tools, options and settings that expand Elementor defaults. Instead of creating new Elementor Widgets, these act like an upgrade of existing options or the self-standing panels.
5
+ * Version: 1.4.6
6
+ * Author: OoohBoi
7
+ * Author URI: https://www.youtube.com/c/OoohBoi
8
+ * Text Domain: ooohboi-steroids
9
+ * Domain Path: /lang
10
+ * License: GPLv3
11
+ * License URI: http://www.gnu.org/licenses/gpl-3.0
12
+ */
13
+
14
+ if ( ! defined( 'ABSPATH' ) ) {
15
+ exit; // Exit if accessed directly.
16
+ }
17
+
18
+ /**
19
+ * Main OoohBoi Steroids Class
20
+ *
21
+ * The main class that initiates and runs the plugin.
22
+ *
23
+ * @since 1.0.0
24
+ */
25
+ final class OoohBoi_Steroids {
26
+
27
+ /**
28
+ * Plugin Version
29
+ *
30
+ * @since 1.0.0
31
+ *
32
+ * @var string The plugin version.
33
+ */
34
+ const VERSION = '1.4.6';
35
+
36
+ /**
37
+ * Minimum Elementor Version
38
+ *
39
+ * @since 1.0.0
40
+ *
41
+ * @var string Minimum Elementor version required to run the plugin.
42
+ */
43
+ const MINIMUM_ELEMENTOR_VERSION = '2.5.11';
44
+
45
+ /**
46
+ * Minimum PHP Version
47
+ *
48
+ * @since 1.0.0
49
+ *
50
+ * @var string Minimum PHP version required to run the plugin.
51
+ */
52
+ const MINIMUM_PHP_VERSION = '7.0';
53
+
54
+ /**
55
+ * Instance
56
+ *
57
+ * @since 1.0.0
58
+ *
59
+ * @access private
60
+ * @static
61
+ *
62
+ * @var OoohBoi_Steroids The single instance of the class.
63
+ */
64
+ private static $_instance = null;
65
+
66
+ /**
67
+ * Instance
68
+ *
69
+ * Ensures only one instance of the class is loaded or can be loaded.
70
+ *
71
+ * @since 1.0.0
72
+ *
73
+ * @access public
74
+ * @static
75
+ *
76
+ * @return OoohBoi_Steroids An instance of the class.
77
+ */
78
+ public static function instance() {
79
+
80
+ if ( is_null( self::$_instance ) ) {
81
+ self::$_instance = new self();
82
+ }
83
+
84
+ return self::$_instance;
85
+ }
86
+
87
+ /**
88
+ * Constructor
89
+ *
90
+ * @since 1.0.0
91
+ *
92
+ * @access public
93
+ */
94
+
95
+ public function __construct() {
96
+ add_action( 'init', [ $this, 'i18n' ] );
97
+ add_action( 'plugins_loaded', [ $this, 'init' ] );
98
+ }
99
+
100
+ /**
101
+ * Load Textdomain
102
+ *
103
+ * Load plugin localization files.
104
+ *
105
+ * Fired by `init` action hook.
106
+ *
107
+ * @since 1.0.0
108
+ *
109
+ * @access public
110
+ */
111
+ public function i18n() {
112
+ load_plugin_textdomain( 'ooohboi-steroids', FALSE, basename( dirname( __FILE__ ) ) . '/lang/' );
113
+ }
114
+
115
+ /**
116
+ * Initialize the plugin
117
+ *
118
+ * Load the plugin only after Elementor (and other plugins) are loaded.
119
+ * Checks for basic plugin requirements, if one check fail don't continue,
120
+ * if all check have passed load the files required to run the plugin.
121
+ *
122
+ * Fired by 'plugins_loaded' action hook.
123
+ *
124
+ * @since 1.0.0
125
+ *
126
+ * @access public
127
+ */
128
+ public function init() {
129
+
130
+ // Check if Elementor installed and activated
131
+ if ( ! did_action( 'elementor/loaded' ) ) {
132
+ add_action( 'admin_notices', [ $this, 'admin_notice_missing_main_plugin' ] );
133
+ return;
134
+ }
135
+
136
+ // Check for required Elementor version
137
+ if ( ! version_compare( ELEMENTOR_VERSION, self::MINIMUM_ELEMENTOR_VERSION, '>=' ) ) {
138
+ add_action( 'admin_notices', [ $this, 'admin_notice_minimum_elementor_version' ] );
139
+ return;
140
+ }
141
+
142
+ // Check for required PHP version
143
+ if ( version_compare( PHP_VERSION, self::MINIMUM_PHP_VERSION, '<' ) ) {
144
+ add_action( 'admin_notices', [ $this, 'admin_notice_minimum_php_version' ] );
145
+ return;
146
+ }
147
+
148
+ // load common stuff functions
149
+ require plugin_dir_path( __FILE__ ) . 'inc/common-functions.php';
150
+
151
+ // Editor Styles
152
+ add_action( 'elementor/editor/after_enqueue_styles', [ $this, 'ooohboi_register_styles_editor' ] );
153
+
154
+ // Register/Enqueue Scripts
155
+ add_action( 'elementor/frontend/after_register_scripts', [ $this, 'ooohboi_register_scripts_front' ] );
156
+ add_action( 'elementor/frontend/after_register_styles', [ $this, 'ooohboi_register_styles' ] );
157
+ add_action( 'elementor/frontend/after_enqueue_styles', function() {
158
+ wp_enqueue_style( 'ooohboi-steroids-styles' );
159
+ wp_enqueue_script( 'ooohboi-steroids' );
160
+ } );
161
+
162
+ // editor preview styles
163
+ add_action( 'elementor/preview/enqueue_styles', function() {
164
+ wp_enqueue_style(
165
+ 'ooohboi-steroids-preview',
166
+ plugins_url( 'assets/css/preview.css', __FILE__ ),
167
+ [ 'editor-preview' ],
168
+ self::VERSION
169
+ );
170
+ } );
171
+
172
+ // Include extension classes
173
+ self::ooohboi_take_steroids();
174
+
175
+ // Init Extensions
176
+ OoohBoi_Overlay_Underlay::init(); // OoohBoi Overlay Underlay
177
+ OoohBoi_Overlaiz::init(); // OoohBoi Overlaiz
178
+ OoohBoi_Harakiri::init(); // OoohBoi Harakiri
179
+ OoohBoi_Paginini::init(); // OoohBoi Paginini
180
+ OoohBoi_Breaking_Bad::init(); // OoohBoi Breaking Bad
181
+ OoohBoi_Glider::init(); // OoohBoi Glider Slider
182
+ OoohBoi_PhotoGiraffe::init(); // OoohBoi PhotoGiraffe
183
+ OoohBoi_Teleporter::init(); // OoohBoi Teleporter
184
+ OoohBoi_SearchCop::init(); // OoohBoi Search Cop
185
+ OoohBoi_Videomasq::init(); // OoohBoi Videomasq
186
+ OoohBoi_Butter_Button::init(); // OoohBoi Butter Button
187
+ OoohBoi_Perspektive::init(); // OoohBoi Perspektive
188
+ OoohBoi_Shadough::init(); // OoohBoi Shadough
189
+
190
+ }
191
+
192
+ /*
193
+ * Init styles for Elementor Editor
194
+ *
195
+ * Include css files and register them
196
+ *
197
+ * @since 1.0.0
198
+ *
199
+ * @access public
200
+ */
201
+ public function ooohboi_register_styles_editor() {
202
+
203
+ wp_enqueue_style( 'ooohboi-steroids-styles-editor', plugins_url( 'assets/css/editor.css', __FILE__ ), [ 'elementor-editor' ], self::VERSION );
204
+
205
+ }
206
+
207
+ /*
208
+ * Init styles
209
+ *
210
+ * Include css files and register them
211
+ *
212
+ * @since 1.0.0
213
+ *
214
+ * @access public
215
+ */
216
+ public function ooohboi_register_styles() {
217
+
218
+ wp_register_style( 'ooohboi-steroids-styles', plugins_url( 'assets/css/main.css', __FILE__ ), NULL, self::VERSION );
219
+
220
+ }
221
+
222
+ /*
223
+ * Init Scripts
224
+ *
225
+ * Include js files and register them
226
+ *
227
+ * @since 1.0.0
228
+ *
229
+ * @access public
230
+ */
231
+ public function ooohboi_register_scripts_front() {
232
+
233
+ wp_register_script( 'ooohboi-steroids', plugins_url( 'assets/js/ooohboi-steroids-min.js', __FILE__ ), [ 'jquery' ], self::VERSION, true );
234
+
235
+ }
236
+
237
+ /*
238
+ * Commercializer
239
+ *
240
+ * @since 1.4.6
241
+ *
242
+ * @access public
243
+ */
244
+ public static function ooohboi_commercializer() {
245
+
246
+ $com_lnk = '<a href="mailto:oooh.boi29@gmail.com?subject=Steroids Sponsorship"><img src="' . plugins_url( 'assets/img/banner-pre.png', __FILE__ ) . '" alt="Sponsorhip" /></a>';
247
+ return $com_lnk;
248
+
249
+ }
250
+
251
+ /**
252
+ *
253
+ * Include extensions
254
+ *
255
+ * @since 1.0.0
256
+ *
257
+ * @access public
258
+ */
259
+ public static function ooohboi_take_steroids() {
260
+
261
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-overlay-underlay.php'; // OoohBoi Overlay Underlay
262
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-overlaiz.php'; // OoohBoi Overlaiz
263
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-harakiri.php'; // OoohBoi Harakiri
264
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-paginini.php'; // OoohBoi Paginini
265
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-breaking-bad.php'; // OoohBoi Breaking Bad
266
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-glider.php'; // OoohBoi Glider Slider
267
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-photogiraffe.php'; // OoohBoi PhotoGiraffe
268
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-teleporter.php'; // OoohBoi Teleporter
269
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-searchcop.php'; // OoohBoi Search Cop
270
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-videomasq.php'; // OoohBoi Video Masq
271
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-butter-button.php'; // OoohBoi Butter Button
272
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-perspektive.php'; // OoohBoi Perspektive
273
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-shadough.php'; // OoohBoi Shadough
274
+
275
+ }
276
+
277
+ }
278
+
279
+ OoohBoi_Steroids::instance();
readme.txt ADDED
@@ -0,0 +1,205 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === OoohBoi Steroids for Elementor ===
2
+ Contributors: OoohBoi
3
+ Tags: page-builder, elementor, add-on, background-overlay, vertical text, ghost elements, overlapping columns
4
+ Donate link: https://www.paypal.me/ooohboi
5
+ Requires at least: 5.0
6
+ Tested up to: 5.5
7
+ Stable tag: 1.4.6
8
+ Requires PHP: 7.0
9
+ License: GPLv3
10
+ License URI: http://www.gnu.org/licenses/gpl-3.0
11
+
12
+ Boost your Elementor with some fresh and yet innovative options.
13
+
14
+ == Description ==
15
+
16
+ [youtube https://www.youtube.com/watch?v=HMkazBFTpkE&t=2s]
17
+
18
+ [youtube https://www.youtube.com/watch?v=9t4vugF2Lok]
19
+
20
+ An awesome set of tools, options and settings that expand Elementor defaults. Instead of creating new Elementor Widgets, these act like an upgrade of existing options or the self-standing panels thing.
21
+
22
+ = NEW ADD-ON NOW AVAILABLE - SHADOUGH =
23
+
24
+ From now on you can create the shadow that conforms the shape.
25
+
26
+ = In the package so far =
27
+
28
+ 1. HARAKIRI
29
+ Allows you to change the writing mode (CSS property writing-mode) of Elementor's Heading and Text Editor widgets.
30
+
31
+ 2. POOPART
32
+ Add an overlay or underlay ghost-element to any Elementor Widget. By adding a mask image to these, and/or combining them with CSS filters, blend mode, a wow effect is inevitable. Oh, yes, you can also resize and reposition these if you like.
33
+
34
+ 3. OVERLAIZ
35
+ From now on, you can move the Background Overlay in any direction, as well as to resize it. Creating overlapping columns is now piece of cake.
36
+
37
+ 4. PAGININI
38
+ Your frustration with styling up the posts pagination in Elementor is now officially over.
39
+
40
+ 5. BREAKING BAD
41
+ Tailor the Section columns at will! Set the custom width, height and let them collapse naturally.
42
+
43
+ 6. GLIDER
44
+ Generate the slider out of Section and columns with one click only!
45
+
46
+ 7. PHOTOGIRAFFE
47
+ Make any Image full-height
48
+
49
+ 8. TELEPORTER
50
+ An awesome Coulmn hover controls
51
+
52
+ 9. SEARCH COP
53
+ Decide what to search for; posts only, pages only or everything.
54
+
55
+ 10. VIDEOMASQ
56
+ Add the SVG mask to the Section video background and let the video play inside any shape
57
+
58
+ 11. BASELINE GRID
59
+ Find it uder the Page Settings! It allows you to define the visual grid and thus ensure consistent vertical spacing with your typography and page elements.
60
+
61
+ 12. BUTTER BUTTON
62
+ From now on you can design awesome buttons in Elementor! Forget about those flat, boring and outdated buttons style, Butter Button brings fun!
63
+
64
+ 13. PERSPEKTIVE
65
+ A small set of options that allow you to move widgets in 3D space
66
+
67
+ 14. SHADOUGH
68
+ This extension allows you to create the shadow that conforms the shape.
69
+
70
+ 15. MORE TO COME SOON!
71
+
72
+ == Installation ==
73
+
74
+ 1. Upload the plugin files to the `/wp-content/plugins/plugin-name` directory, or install the plugin through the WordPress plugins screen directly.
75
+ 2. Activate the plugin through the 'Plugins' screen in WordPress
76
+
77
+ == Upgrade Notice ==
78
+
79
+ 1.4.6 - Beware of the changes in the language file!
80
+
81
+ == Frequently Asked Questions ==
82
+
83
+ = How do I use OoohBoi Steroids? =
84
+
85
+ It depends on the widgets that you are editing. For example, if you are about to style Heading widget or Text Editor widget, HARAKIRI options will show up.
86
+ All the POOPART options can be found under "Advanced" tab, POOPART panel.
87
+ Rest assured, you won't miss them because there will always be an eye-catching icon next to the set of options (or the panel title).
88
+
89
+ = Do I need Elementor PRO with this add-on? =
90
+
91
+ No, you don't. It'll work with both free version of Elementor and Elementor PRO.
92
+
93
+ == Screenshots ==
94
+
95
+ 1. HARAKIRI text options
96
+ 2. POOPART interface
97
+ 3. OVERLAIZ interface
98
+ 4. HARAKIRI in action
99
+ 5. POOPART composition
100
+ 6. OVERLAIZ overlapping
101
+ 7. PAGININI options
102
+ 8. BREAKING BAD section
103
+ 9. BREAKING BAD column
104
+ 10. GLIDER interface
105
+ 11. GLIDER as a Slider
106
+ 12. PHOTOGIRAFFE option
107
+ 13. TELEPORTER options
108
+ 14. VIDEOMASQ options
109
+ 15. BASELINE GRID options
110
+ 16. BUTTER BUTTON options
111
+ 17. PERSPEKTIVE options
112
+ 18. SHADOUGH options
113
+
114
+ == Changelog ==
115
+
116
+ = 1.4.6 =
117
+ - New feature added, Shadough
118
+ - Teleporter - fix for the content width not being 100%
119
+ - Teleporter - fix for content animation when "Teleport to parent" inactive
120
+
121
+ = 1.4.5 =
122
+ - New feature added, Perspektive
123
+ - Breaking Bad, fixed the alignment bug when chosen direction is "columns"
124
+ - Baseline Grid improved (allowed squares, vertical and horizontal lines)
125
+ - Butter Button fix, the feature not activated unless the background type set
126
+ - Teleporter - full cross browser fix (jQuery Migrate not needed any more)
127
+
128
+ = 1.4.3 =
129
+ - Teleporter, fixed problem with Chrome - partially
130
+
131
+ = 1.4.2 =
132
+ - THIS IS NOT A STABLE RELEASE, roll back to 1.4.1 if needed
133
+ - Teleporter, fixed problem with Chrome - failed
134
+
135
+ = 1.4.1 =
136
+ - PoopArt, fixed issue with the front-end appearance
137
+ - Glider, fixed issue that relates to disfunctional vertical mode
138
+
139
+ = 1.4.0 =
140
+ - Steroids are now Elementor 3.0 ready and still backwards compatible
141
+ - New feature added, Butter Button
142
+ - Teleporter, added control for the effect duration
143
+
144
+ = 1.3.5 =
145
+ - New feature added, Videomasq
146
+ - New feature added, the Baseline grid
147
+ - Teleporter, added option to position the content horizontally too (normal + hover)
148
+ - Teleporter, added option to set the content visibility
149
+
150
+ = 1.3.4 =
151
+ - Breaking Bad - new option: arrange the section columns in flex-direction "column"
152
+ - PoopArt - fixed problem with interactivity when either Overlay or Underlay is atop the host element
153
+
154
+ = 1.3.3 =
155
+ - New feature added: SEARCH COP
156
+ - Removed custom class names for inactive extensions (except PoopArt)
157
+ - PoopArt, fixed issue with Underlay's horizontal positioning
158
+ - z-index option added to Overlaiz extension
159
+
160
+ = 1.3.2 =
161
+ - Icon position fix for RTL
162
+
163
+ = 1.3.1 =
164
+ - New feature added: TELEPORTER - Awesome Column hover controls
165
+ - Overlaiz, fixed "Calc Height" bug
166
+ - Overlaiz, added box-shadow option
167
+ - Removed class name for inactive extensions
168
+
169
+ = 1.3.0 =
170
+ - New feature added: PHOTOGIRAFFE - Full-height Image Widget
171
+ - Breaking Bad scrollable column downgrade from being responsive to regular control
172
+ - Fixed Breaking Bad for Inner Section widget
173
+ - New Glider control added : allowTouchMove
174
+
175
+ = 1.2.1 =
176
+ - Fixed Glider control styles
177
+ - Added option to allow the column order control for Breaking Bad (columns part)
178
+
179
+ = 1.2.0 =
180
+ - New add-on has been added - GLIDER
181
+ - Fixed problem with non-editable Heading and Text Editor widgets
182
+ - Improved Overlaiz (z-index control added), fixed problem with responsiveness
183
+ - Fixed problem with Breaking Bad columns alignment
184
+
185
+ = 1.1.3 =
186
+ - All the options, across all add-ons are now fully responsive
187
+
188
+ = 1.1.2 =
189
+ - Fixed bug with scrollable columns
190
+
191
+ = 1.1.1 =
192
+ - Breaking Bad allows you to add scrollable column now
193
+ - Overlaiz now has a support for CSS' calc()
194
+
195
+ = 1.1.0 =
196
+ - Added new feature: BREAKING BAD
197
+ - Fixed problems with HARAKIRI addon that includes custom height and auto-width
198
+ - Many fixes and code improvements of existing components
199
+
200
+ = 1.0.1 =
201
+ - Added new feature: PAGININI
202
+ From now on you can style up the posts navigation within Elementor - visual way.
203
+
204
+ = 1.0.0 =
205
+ * Initial Launch