Version Description
- Big performance enhancements related to how customization settings and configurations get loaded.
- Fixed a nasty regression that caused customization settings saved in a option to not be loaded, causing styles to be missing.
- Pretty important code refactoring and cleanup to make things more predictable and stable.
Download this release
Release Info
Developer | pixelgrade |
Plugin | Customify – A Theme Customizer Booster |
Version | 2.4.0 |
Comparing to | |
See all releases |
Code changes from version 2.3.5.1 to 2.4.0
- css/admin.css +31 -21
- css/customizer.css +3210 -1671
- customify.php +3 -3
- features/customizer/controls/class-Pix_Customize_Background_Control.php +31 -2
- features/customizer/controls/class-Pix_Customize_Import_Demo_Data_Control.php +0 -57
- includes/admin-notifications-manager/admin-notice-manager.css +0 -29
- includes/admin-notifications-manager/admin-notice-manager.js +0 -80
- includes/admin-notifications-manager/class-admin-notifications-manager.php +0 -1300
- includes/admin-notifications-manager/class-notification-conditions.php +0 -732
- includes/admin-notifications-manager/class-notification-logicalexpression.php +0 -441
- includes/admin-notifications-manager/index.php +0 -3
- includes/class-customify-customizer.php +4 -53
- includes/class-customify-settings.php +7 -4
- includes/class-customify-style-manager.php +0 -20
- includes/class-pixcustomify.php +173 -42
- js/customizer.js +0 -147
- palettes.md +0 -292
- readme.txt +6 -1
css/admin.css
CHANGED
@@ -1,28 +1,38 @@
|
|
1 |
-
.
|
2 |
-
{
|
|
|
|
|
|
|
3 |
|
4 |
-
|
5 |
-
|
6 |
-
|
|
|
7 |
|
8 |
-
|
9 |
-
|
10 |
-
|
|
|
11 |
|
12 |
-
|
13 |
-
|
14 |
-
|
|
|
|
|
15 |
|
16 |
-
|
17 |
-
|
18 |
-
|
|
|
|
|
19 |
|
20 |
-
|
21 |
-
|
22 |
-
|
|
|
|
|
|
|
23 |
|
24 |
-
|
25 |
-
|
26 |
-
{
|
27 |
-
margin-top: 15px;
|
28 |
}
|
1 |
+
/* This stylesheet is used to style the admin option form of the plugin. */
|
2 |
+
.extendable_options {
|
3 |
+
height: 0;
|
4 |
+
overflow: hidden;
|
5 |
+
}
|
6 |
|
7 |
+
fieldset.group {
|
8 |
+
border-left: 1px solid #333;
|
9 |
+
padding-left: 20px;
|
10 |
+
}
|
11 |
|
12 |
+
.postbox h3.hndle {
|
13 |
+
padding: 7px;
|
14 |
+
font-size: 15px;
|
15 |
+
}
|
16 |
|
17 |
+
.postbox .row {
|
18 |
+
width: 100%;
|
19 |
+
display: inline-block;
|
20 |
+
padding: 5px 0;
|
21 |
+
}
|
22 |
|
23 |
+
.postbox .row .field {
|
24 |
+
width: 100%;
|
25 |
+
display: inline-block;
|
26 |
+
padding: 5px 0;
|
27 |
+
}
|
28 |
|
29 |
+
.postbox .row .group {
|
30 |
+
border: 1px solid rgba(203, 203, 203, 0.2);
|
31 |
+
background-color: rgba(203, 203, 203, 0.2);
|
32 |
+
padding-left: 15px;
|
33 |
+
margin-left: 5px;
|
34 |
+
}
|
35 |
|
36 |
+
.postbox .uninstall_area {
|
37 |
+
margin-top: 15px;
|
|
|
|
|
38 |
}
|
css/customizer.css
CHANGED
@@ -1,350 +1,709 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
{
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
{
|
40 |
-
|
41 |
-
}
|
42 |
-
|
43 |
-
{
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
{
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
{
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
{
|
164 |
-
|
165 |
-
}
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
.wp-core-ui .button-primary,
|
202 |
-
.wp-core-ui .button-secondary
|
203 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
204 |
|
205 |
-
|
206 |
-
}.wp-core-ui .button:not(.theme-details):not(.collapse-sidebar):not(.wp-color-result):hover,
|
207 |
.wp-core-ui .button-primary:hover,
|
208 |
-
.wp-core-ui .button-secondary:hover
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
}
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
}
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
}
|
227 |
-
|
228 |
-
{
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
{
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
}
|
239 |
-
|
240 |
-
{
|
241 |
-
|
242 |
-
}
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
}
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
}
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
{
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
{
|
278 |
-
|
279 |
-
}
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
{
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
}
|
294 |
-
|
295 |
-
{
|
296 |
-
|
297 |
-
}
|
298 |
-
|
299 |
-
{
|
300 |
-
|
301 |
-
}
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
{
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
{
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
348 |
.wp-full-overlay-sidebar-content .customize-control input[type=checkbox],
|
349 |
.wp-full-overlay-sidebar-content .customize-control input[type=password],
|
350 |
.wp-full-overlay-sidebar-content .customize-control input[type=color],
|
@@ -362,1345 +721,2525 @@
|
|
362 |
.wp-full-overlay-sidebar-content .customize-control input[type=search],
|
363 |
.wp-full-overlay-sidebar-content .customize-control select,
|
364 |
.wp-full-overlay-sidebar-content .customize-control textarea,
|
365 |
-
.wp-full-overlay-sidebar-content .customize-control input[type=
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
.wp-full-overlay-sidebar-content .customize-control input[type=
|
379 |
-
.wp-full-overlay-sidebar-content .customize-control input[type=
|
380 |
-
.wp-full-overlay-sidebar-content .customize-control input[type=
|
381 |
-
.wp-full-overlay-sidebar-content .customize-control input[type=
|
382 |
-
.wp-full-overlay-sidebar-content .customize-control input[type=
|
383 |
-
.wp-full-overlay-sidebar-content .customize-control input[type=
|
384 |
-
.wp-full-overlay-sidebar-content .customize-control input[type=
|
385 |
-
.wp-full-overlay-sidebar-content .customize-control input[type=
|
386 |
-
.wp-full-overlay-sidebar-content .customize-control input[type=
|
387 |
-
.wp-full-overlay-sidebar-content .customize-control input[type=
|
|
|
|
|
|
|
|
|
|
|
|
|
388 |
.wp-full-overlay-sidebar-content .customize-control select:focus,
|
389 |
.wp-full-overlay-sidebar-content .customize-control textarea:focus,
|
390 |
-
.wp-full-overlay-sidebar-content .customize-control input[type=
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
}.font-options__head,
|
396 |
-
.wp-full-overlay-sidebar-content .customize-control select,
|
397 |
-
ul.font-options__options-list .select2-container .select2-selection--single,
|
398 |
-
#customize-theme-controls .select2-container .select2-selection--multiple
|
399 |
-
{font-weight: 600;
|
400 |
-
|
401 |
-
width: 100%;background: white url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE1cHgiIGhlaWdodD0iOXB4IiB2aWV3Qm94PSIwIDAgMTUgOSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJDdXN0b21pZnktQ29weS0yIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU2LjAwMDAwMCwgLTM4Ni4wMDAwMDApIiBmaWxsPSIjOThDNkRFIj4KICAgICAgICAgICAgPGcgaWQ9IkhlYWRlciIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIxLjAwMDAwMCwgNDcuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0iQ29udGVudCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAuMDAwMDAwLCA3NS4wMDAwMDApIj4KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iVGl0bGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI2LjAwMDAwMCwgMjE5LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iRmllbGQtLS1TZWxlY3QtQ29weSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iU2VsZWN0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwgMjcuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTI1NC40ODEyLDE4IEwyNTYsMTkuNTE0IEwyNDguNSwyNyBMMjQxLDE5LjUxNCBMMjQyLjUxODgsMTggTDI0OC41LDIzLjk2NzIgTDI1NC40ODEyLDE4IFoiIGlkPSJQYWdlLTEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+) no-repeat;background-position: right 16px top 16px;-webkit-appearance: button;-moz-appearance: none;
|
402 |
-
}[multiple].font-options__head,
|
403 |
-
.wp-full-overlay-sidebar-content .customize-control select[multiple],
|
404 |
-
ul.font-options__options-list .select2-container [multiple].select2-selection--single,
|
405 |
-
#customize-theme-controls .select2-container [multiple].select2-selection--multiple
|
406 |
-
{
|
407 |
-
background: white;
|
408 |
-
}.wp-full-overlay-sidebar-content .customize-control input[type=text],
|
409 |
-
.wp-full-overlay-sidebar-content .customize-control textarea
|
410 |
-
{
|
411 |
-
font-size: 13px;
|
412 |
-
}.wp-full-overlay-sidebar-content .customize-control textarea
|
413 |
-
{
|
414 |
-
height: auto;
|
415 |
-
}.wp-full-overlay-sidebar-content .customize-control input[type=checkbox],
|
416 |
-
.wp-full-overlay-sidebar-content .customize-control input[type=radio]
|
417 |
-
{
|
418 |
-
width: 22px;height: 22px;
|
419 |
-
}.wp-full-overlay-sidebar-content .customize-control input[type=checkbox]:checked,
|
420 |
-
.wp-full-overlay-sidebar-content .customize-control input[type=radio]:checked
|
421 |
-
{border-color: #5ab9e8;
|
422 |
-
background: #73c5ee;
|
423 |
-
}.wp-full-overlay-sidebar-content .customize-control input[type=checkbox]:checked:before,
|
424 |
-
.wp-full-overlay-sidebar-content .customize-control input[type=radio]:checked:before
|
425 |
-
{margin: -1px 0 0 -2px;
|
426 |
-
|
427 |
-
color: white;
|
428 |
-
}.wp-full-overlay-sidebar-content .customize-control .awesome_preset input[type=radio]:checked
|
429 |
-
{
|
430 |
-
background: transparent;
|
431 |
-
}.wp-full-overlay-sidebar-content .customize-control.customize-control-checkbox:not(#customize-control-jetpack_css_mode_control) label:not(:only-of-type),
|
432 |
-
.wp-full-overlay-sidebar-content .customize-control.customize-control-checkbox:not(#customize-control-jetpack_css_mode_control) > .customize-inside-control-row:not(:only-of-type),
|
433 |
-
.wp-full-overlay-sidebar-content .customize-control.customize-control-radio label:not(:only-of-type),
|
434 |
-
.wp-full-overlay-sidebar-content .customize-control.customize-control-radio > .customize-inside-control-row:not(:only-of-type)
|
435 |
-
{display: inline-block;width: calc(49% - 30px);
|
436 |
-
margin-left: 30px;padding-top: 0;padding-bottom: 0;text-indent: -6px;
|
437 |
-
}.wp-full-overlay-sidebar-content .customize-control.customize-control-checkbox:not(#customize-control-jetpack_css_mode_control) label,
|
438 |
-
.wp-full-overlay-sidebar-content .customize-control.customize-control-radio label
|
439 |
-
{
|
440 |
-
color: #416b7e;
|
441 |
-
}[id*='divider'] + .wp-full-overlay-sidebar-content .customize-control.customize-control-checkbox:not(#customize-control-jetpack_css_mode_control),
|
442 |
-
[id*='divider'] + .wp-full-overlay-sidebar-content .customize-control.customize-control-radio
|
443 |
-
{
|
444 |
-
margin-top: 0;
|
445 |
-
}.wp-full-overlay-sidebar-content .customize-control input[type=radio]
|
446 |
-
{
|
447 |
-
border-radius: 50%;
|
448 |
-
}.wp-full-overlay-sidebar-content .customize-control input[type=radio]:checked:before
|
449 |
-
{
|
450 |
-
content: none;
|
451 |
-
}.customize-control-html + .wp-full-overlay-sidebar-content .customize-control.customize-control-checkbox
|
452 |
-
{
|
453 |
-
margin-top: -24px;
|
454 |
-
}.wp-full-overlay-sidebar-content .customize-control.customize-control-radio label,
|
455 |
-
.wp-full-overlay-sidebar-content .customize-control.customize-control-radio .customize-inside-control-row
|
456 |
-
{
|
457 |
-
margin-top: 12px;
|
458 |
-
}.wp-full-overlay-sidebar-content .customize-control.customize-control-radio#customize-control-changeset_status .customize-inside-control-row
|
459 |
-
{
|
460 |
-
margin-top: 0;text-indent: 0;
|
461 |
-
}.wp-full-overlay-sidebar-content .customize-control input[type='range']
|
462 |
-
{
|
463 |
-
width: 65%;
|
464 |
-
}.wp-full-overlay-sidebar-content .customize-control input[type='range']
|
465 |
-
{
|
466 |
-
position: relative;overflow: hidden;width: calc(100% - 55px);height: 22px;outline: none;background: none;-webkit-appearance: none;
|
467 |
-
}.wp-full-overlay-sidebar-content .customize-control input[type='range']:before
|
468 |
-
{position: absolute;top: 8px;left: 0;width: 100%;height: 6px;
|
469 |
-
|
470 |
-
content: ' ';border-radius: 10px;background: #dfe8ef;box-shadow: inset 0 1px 3px 0 rgba(0,0,0,.3);
|
471 |
-
}.wp-full-overlay-sidebar-content .customize-control input[type='range']::-webkit-slider-thumb
|
472 |
-
{position: relative;z-index: 3;width: 22px;height: 22px;border: 2px solid #b8daeb;border-radius: 4px;background: #27ae60;background: #fff;
|
473 |
-
|
474 |
-
-webkit-appearance: none;
|
475 |
-
}.wp-full-overlay-sidebar-content .customize-control input[type='range']::-webkit-slider-thumb:before
|
476 |
-
{font-size: 1em;position: absolute;top: -5px;left: 5px;
|
477 |
-
|
478 |
-
content: '..';letter-spacing: 1px;color: #b8daeb;
|
479 |
-
}.wp-full-overlay-sidebar-content .customize-control input[type='range']::-webkit-slider-thumb:after
|
480 |
-
{position: absolute;z-index: 1;top: 6px;right: 20px;width: calc(100% - 55px);height: 6px;
|
481 |
-
|
482 |
-
content: ' ';background: #73c5ee;
|
483 |
-
}.wp-full-overlay-sidebar-content .customize-control input[type='number'].range-value
|
484 |
-
{font-size: 13px;line-height: 1;top: -5px;float: right;width: auto;
|
485 |
-
min-width: 40px;max-width: 80px;height: 30px;margin-left: 10px;padding: 4px 0 5px 0;text-align: center;
|
486 |
-
}.wp-full-overlay-sidebar-content .customize-control input[type=number]::-webkit-inner-spin-button,
|
487 |
-
.wp-full-overlay-sidebar-content .customize-control input[type=number]::-webkit-outer-spin-button
|
488 |
-
{margin: 0;
|
489 |
-
|
490 |
-
-webkit-appearance: none;
|
491 |
-
}.customize-control-color
|
492 |
-
{
|
493 |
-
display: block;
|
494 |
-
}.customize-control-color .customize-control-title,
|
495 |
-
.customize-control-color .separator.label
|
496 |
-
{
|
497 |
-
float: left;
|
498 |
-
}.customize-control-color .wp-picker-container
|
499 |
-
{
|
500 |
-
position: relative;top: -3px;float: right;
|
501 |
-
}.customize-control-color .wp-picker-container .wp-picker-holder
|
502 |
-
{
|
503 |
-
position: relative;
|
504 |
-
}.customize-control-color .wp-picker-container .wp-color-result,
|
505 |
-
.customize-control-color .wp-picker-container .wp-color-result.button
|
506 |
-
{
|
507 |
-
top: 0;width: 40px;height: 30px;margin: 0;padding: 0;border: 2px solid #b8daeb;border-radius: 4px;background: #2ecc71;box-shadow: none;
|
508 |
-
}.customize-control-color .wp-picker-container .wp-color-result:after,
|
509 |
-
.customize-control-color .wp-picker-container .wp-color-result .wp-color-result-text,
|
510 |
-
.customize-control-color .wp-picker-container .wp-color-result.button:after,
|
511 |
-
.customize-control-color .wp-picker-container .wp-color-result.button .wp-color-result-text
|
512 |
-
{
|
513 |
-
display: none;
|
514 |
-
}.customize-control-color .wp-picker-container .iris-picker
|
515 |
-
{
|
516 |
-
position: absolute;z-index: 1000;top: 40px;right: 0;width: 275px !important;border: none;border-color: #dfdfde;border-top: none;border-radius: 0 0 3px 3px;background: white;
|
517 |
-
}.customize-control-color .wp-picker-container .iris-picker,
|
518 |
-
.customize-control-color .wp-picker-container .iris-picker *
|
519 |
-
{
|
520 |
-
box-sizing: content-box;
|
521 |
-
}.customize-control-color .wp-picker-container .iris-picker .iris-square
|
522 |
-
{
|
523 |
-
width: 215px !important;height: 173px !important;margin-right: 0;
|
524 |
-
}.customize-control-color .wp-picker-container .iris-picker .iris-strip
|
525 |
-
{
|
526 |
-
float: right;box-shadow: rgba(0,0,0,.4) 0 1px 1px inset;
|
527 |
-
}.customize-control-color .wp-picker-container .iris-picker .iris-strip .ui-slider-handle
|
528 |
-
{opacity: 1;
|
529 |
-
border-color: #aaa !important;box-shadow: none;
|
530 |
-
}.customize-control-color .wp-picker-container .iris-picker .iris-palette
|
531 |
-
{
|
532 |
-
width: 24px !important;height: 24px !important;border-radius: 50px;box-shadow: rgba(0,0,0,.4) 0 1px 1px inset;
|
533 |
-
}.customize-control-color .wp-picker-container .wp-picker-open + .wp-picker-input-wrap
|
534 |
-
{
|
535 |
-
position: absolute;z-index: 1000;top: 35px;right: 0;width: 275px;padding: 9px 12px;border: none;border-radius: 3px 3px 0 0;background: white;
|
536 |
-
}.customize-control-color .wp-picker-container .wp-picker-open + .wp-picker-input-wrap input.wp-color-picker
|
537 |
-
{font-size: 13px;
|
538 |
-
|
539 |
-
float: left;width: 100px;height: auto;margin: 0;padding: 6px 12px;text-align: left;
|
540 |
-
}.customize-control-color .wp-picker-container .wp-picker-open + .wp-picker-input-wrap input.button
|
541 |
-
{
|
542 |
-
float: right;height: 30px;padding: 4px 12px;
|
543 |
-
}.customize-control-font:last-child
|
544 |
-
{
|
545 |
-
margin-bottom: 150px;
|
546 |
-
}#accordion-section-live_css_edit_section .customize-section-title
|
547 |
-
{
|
548 |
-
margin-top: -13px;border-bottom: 1px solid #ddd;
|
549 |
-
}#accordion-section-live_css_edit_section #css_editor
|
550 |
-
{
|
551 |
-
top: 70px;overflow: visible;border-top: 10px solid white;
|
552 |
-
}#accordion-section-live_css_edit_section #css_editor:before
|
553 |
-
{position: absolute;z-index: 10000000;top: -10px;left: 0;display: block;width: 48px;height: 10px;
|
554 |
-
|
555 |
-
content: '';background: #e8e8e8;
|
556 |
-
}#accordion-section-live_css_edit_section .ace_scroller
|
557 |
-
{
|
558 |
-
padding-left: 10px;
|
559 |
-
}.wp-full-overlay.editor_opened
|
560 |
-
{
|
561 |
-
margin-left: 500px;
|
562 |
-
}.wp-full-overlay.editor_opened #customize-controls
|
563 |
-
{
|
564 |
-
width: 500px;
|
565 |
-
}.wp-full-overlay.editor_opened.collapsed #customize-controls
|
566 |
-
{
|
567 |
-
width: 300px;
|
568 |
-
}.customize-control-media .current,
|
569 |
-
.customize-control-site_icon .current,
|
570 |
-
li#customize-control-site_logo .current
|
571 |
-
{min-height: 44px;
|
572 |
-
margin-bottom: 10px;border: 2px solid #b8daeb;border-radius: 4px;background: #f5fcff;
|
573 |
-
}.customize-control-media .current .container,
|
574 |
-
.customize-control-media .current span,
|
575 |
-
.customize-control-site_icon .current .container,
|
576 |
-
.customize-control-site_icon .current span,
|
577 |
-
li#customize-control-site_logo .current .container,
|
578 |
-
li#customize-control-site_logo .current span
|
579 |
-
{
|
580 |
-
border: none;
|
581 |
-
}.customize-control-media .inner,
|
582 |
-
.customize-control-media .current span,
|
583 |
-
.customize-control-site_icon .inner,
|
584 |
-
.customize-control-site_icon .current span,
|
585 |
-
li#customize-control-site_logo .inner,
|
586 |
-
li#customize-control-site_logo .current span
|
587 |
-
{
|
588 |
-
font-size: 13px;color: #98c6dd;
|
589 |
-
}.customize-control-media .inner,
|
590 |
-
.customize-control-site_icon .inner,
|
591 |
-
li#customize-control-site_logo .inner
|
592 |
-
{
|
593 |
-
line-height: 1.4;
|
594 |
-
}.customize-control-media .thumbnail-image,
|
595 |
-
.customize-control-site_icon .thumbnail-image,
|
596 |
-
li#customize-control-site_logo .thumbnail-image
|
597 |
-
{
|
598 |
-
padding: 14px;text-align: center;
|
599 |
-
}.customize-control-media .thumbnail-image img,
|
600 |
-
.customize-control-site_icon .thumbnail-image img,
|
601 |
-
li#customize-control-site_logo .thumbnail-image img
|
602 |
-
{
|
603 |
-
width: auto;
|
604 |
-
}.customize-control-media .actions,
|
605 |
-
.customize-control-site_icon .actions,
|
606 |
-
li#customize-control-site_logo .actions
|
607 |
-
{
|
608 |
-
margin-bottom: 0;
|
609 |
-
}.customize-control-typography select,
|
610 |
-
.customize-control-typography select
|
611 |
-
{
|
612 |
-
margin-bottom: 10px;
|
613 |
-
}.customize-control-typography .description,
|
614 |
-
.customize-control-typography .description
|
615 |
-
{
|
616 |
-
margin-top: -3px;
|
617 |
-
}.customize-control-typography ul li,
|
618 |
-
.customize-control-typography ul li
|
619 |
-
{
|
620 |
-
width: 100%;margin: 0;
|
621 |
-
}.default-preset-button
|
622 |
-
{font-family: 'Open Sans',sans-serif;font-size: 13px;float: right;margin-right: 4px;padding: 1px 8px;border: 1px solid #cbcbcb;border-radius: 3px;
|
623 |
-
background-color: #f5f6f6;
|
624 |
-
}.customize-control-preset .description
|
625 |
-
{font-style: normal;
|
626 |
-
|
627 |
-
margin-right: 5px;
|
628 |
-
}.customify_preset.radio_buttons .customify_radio_button
|
629 |
-
{position: relative;display: inline-block;overflow: hidden;height: auto;margin: 3px;padding: 2px;
|
630 |
-
|
631 |
-
border: none;
|
632 |
-
}.customify_preset.radio_buttons .customify_radio_button input[type='radio']
|
633 |
-
{position: absolute;z-index: 9999;width: 100%;height: 100%;
|
634 |
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
content: '<';color: inherit;
|
645 |
-
}.customify_preset.radio_buttons .customify_radio_button input[type='radio']:checked:before
|
646 |
-
{
|
647 |
-
opacity: 0;
|
648 |
-
}.customify_preset.radio_buttons .customify_radio_button label
|
649 |
-
{
|
650 |
-
position: relative;z-index: 999;border-left: 4px solid;
|
651 |
-
}.customify_preset .awesome_preset
|
652 |
-
{position: relative;display: inline-block;
|
653 |
-
|
654 |
-
width: 45%;margin-top: 5px;margin-bottom: 25px;transition: all .2s;text-align: center;color: white;
|
655 |
-
}.customify_preset .awesome_preset:hover
|
656 |
-
{
|
657 |
-
opacity: .9;
|
658 |
-
}.customify_preset .awesome_preset:before
|
659 |
-
{position: absolute;z-index: 5;top: 1px;right: 1px;bottom: 1px;left: 1px;
|
660 |
-
|
661 |
-
content: '';opacity: .5;border: 1px solid #fff;border-radius: 4px;background: transparent;
|
662 |
-
}.customify_preset .awesome_preset .preset-wrap .preset-color
|
663 |
-
{
|
664 |
-
height: 128px;padding: 17px 0 27px;border-radius: 4px 4px 0 0;
|
665 |
-
}.customify_preset .awesome_preset .preset-wrap .preset-color .first-font
|
666 |
-
{font-size: 55px;line-height: 1;
|
667 |
-
|
668 |
-
display: inline-block;width: 100%;
|
669 |
-
}.customify_preset .awesome_preset .preset-wrap .preset-color .secondary-font
|
670 |
-
{font-size: 20px;line-height: 1;
|
671 |
-
|
672 |
-
display: inline-block;width: 100%;margin-top: 8px;
|
673 |
-
}.customify_preset .awesome_preset .preset-wrap .preset-name
|
674 |
-
{font-size: 11px;
|
675 |
-
|
676 |
-
position: relative;padding: 1px;text-transform: UPPERCASE;border-radius: 0 0 4px 4px;
|
677 |
-
}.customify_preset .awesome_preset .preset-wrap .preset-name:before
|
678 |
-
{position: absolute;top: -10px;left: 40%;
|
679 |
-
|
680 |
-
content: '';border: 10px solid;border-color: inherit;border-top: transparent;border-right-color: transparent;border-bottom-color: inherit;border-left-color: transparent;
|
681 |
-
}.customify_preset .awesome_preset:nth-child(odd)
|
682 |
-
{
|
683 |
-
margin-right: 7%;
|
684 |
-
}.customify_preset .awesome_preset input[type=radio]
|
685 |
-
{position: absolute;z-index: 10;top: 0;left: 0;display: inline-block;width: 100%;
|
686 |
-
height: 100%;margin: 0;color: #006505;border: 0;border-radius: 0;background-color: transparent;box-shadow: none;
|
687 |
-
}.customify_preset .awesome_preset input[type=radio]:checked:before
|
688 |
-
{
|
689 |
-
position: absolute;z-index: 1;top: -13px;right: -14px;width: 25px;height: 25px;background: #fff;
|
690 |
-
}.customify_preset .awesome_preset input[type=radio]:checked:after
|
691 |
-
{position: absolute;z-index: 10;top: -5px;right: -5px;width: 26px;height: 26px;content: '';border-radius: 50%;background: #73c5ee url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjEzcHgiIGhlaWdodD0iOXB4IiB2aWV3Qm94PSIwIDAgMTMgOSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJDdXN0b21pZnktQ29weSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIxLjAwMDAwMCwgLTQwOC4wMDAwMDApIiBmaWxsPSIjRkZGRkZGIj4KICAgICAgICAgICAgPGcgaWQ9IkhlYWRlciIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIxLjAwMDAwMCwgNDcuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0iQ29udGVudCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAuMDAwMDAwLCA3NS4wMDAwMDApIj4KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iRmllbGQtLS1DaGVja2JveC1Db3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNy4wMDAwMDAsIDI0OS4wMDAwMDApIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9IkNoZWNrYm94IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwgMzAuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTAuMDM4NDk1LDE2IEwxNy4xMTYxMzc1LDguOTIxNDg3NiBMMTUuMTk0NjQ5OCw3IEwxMC4wMzg0OTUsMTIuMTU1MDY3NCBMNi45MjE0ODc2LDkuMDM4OTI5OTcgTDUsMTAuOTYwNDE3NiBMMTAuMDM4NDk1LDE2IFoiIGlkPSJQYWdlLTEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+) no-repeat;background-position: center center;
|
692 |
-
|
693 |
-
-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=0)';filter: alpha(opacity=0);
|
694 |
-
}.customify_radio_image
|
695 |
-
{
|
696 |
-
display: inline-block;
|
697 |
-
}.customify_radio_image label
|
698 |
-
{position: relative;
|
699 |
-
|
700 |
-
display: block;float: left;margin-right: 10px;
|
701 |
-
}.customify_radio_image label input[type=radio]
|
702 |
-
{
|
703 |
-
position: absolute;top: 0;right: 0;bottom: 0;left: 0;visibility: hidden;width: 100%;height: 100%;
|
704 |
-
}.customify_radio_image label input[type=radio] img
|
705 |
-
{
|
706 |
-
cursor: pointer;border: 2px solid transparent;
|
707 |
-
}.customify_radio_image label input[type=radio]:checked + img
|
708 |
-
{
|
709 |
-
border: 3px solid #73c5ee;
|
710 |
-
}.customify_ace_editor
|
711 |
-
{
|
712 |
-
display: block;min-height: 200px;border: 1px solid #ddd;
|
713 |
-
}.customize-control-custom_background .hide
|
714 |
-
{
|
715 |
-
display: none;
|
716 |
-
}.customize-control-custom_background .upload_button_div
|
717 |
-
{
|
718 |
-
margin: 10px 0;
|
719 |
-
}.customize-control-custom_background .upload_button_div > *
|
720 |
-
{
|
721 |
-
margin-right: 10px;
|
722 |
-
}.customize-control-custom_background .preview_screenshot
|
723 |
-
{margin: 10px 0;
|
724 |
-
|
725 |
-
text-align: center;
|
726 |
-
}.customize-control-custom_background .preview_screenshot img
|
727 |
-
{
|
728 |
-
border: 2px solid #ccc;
|
729 |
-
}#customify_import_demo_data_button
|
730 |
-
{display: inline-block;
|
731 |
-
|
732 |
-
width: 70%;height: auto;margin: 0 15% 10% 15%;padding: 10px;text-align: center;
|
733 |
-
}.import_step_note
|
734 |
-
{display: inline-block;width: 100%;
|
735 |
-
margin: 5px;
|
736 |
-
}.import_step_note:before
|
737 |
-
{
|
738 |
-
content: '\1F449';
|
739 |
-
}.import_step_note.success:before
|
740 |
-
{
|
741 |
-
content: '\1F44D';
|
742 |
-
}.import_step_note.failed:before
|
743 |
-
{
|
744 |
-
content: '\274C';
|
745 |
-
}#customize-header-actions
|
746 |
-
{border-color: #e0e8ef;
|
747 |
-
background: #fff;
|
748 |
-
}.wp-full-overlay-sidebar,
|
749 |
-
.customize-themes-panel,
|
750 |
-
#customize-sidebar-outer-content
|
751 |
-
{border-right: 1px solid #e0e8ef;
|
752 |
-
background: #f7f9fa;
|
753 |
-
}.outer-section-open #customize-controls .wp-full-overlay-sidebar-content,
|
754 |
-
.attachment-media-view,
|
755 |
-
.media-widget-preview.media_audio,
|
756 |
-
.media-widget-preview.media_image
|
757 |
-
{
|
758 |
-
background: #f7f9fa;
|
759 |
-
}#customize-theme-controls #accordion-section-menu_locations
|
760 |
-
{
|
761 |
-
border-bottom: 1px solid #e0e8ef;
|
762 |
-
}#customize-controls #accordion-section-themes > .accordion-section-title
|
763 |
-
{
|
764 |
-
font-weight: 600;border-bottom: 1px solid #e0e8ef;
|
765 |
-
}#customize-controls #accordion-section-themes > .accordion-section-title:hover
|
766 |
-
{
|
767 |
-
background: #fff;
|
768 |
-
}#customize-controls .panel-meta.customize-info
|
769 |
-
{
|
770 |
-
border-bottom-color: #e0e8ef;
|
771 |
-
}#customize-theme-controls .control-section .accordion-section-title
|
772 |
-
{
|
773 |
-
font-weight: 400;border-top: 1px solid #e0e8ef;border-bottom: none;
|
774 |
-
}#customize-theme-controls .control-section:last-of-type > .accordion-section-title
|
775 |
-
{
|
776 |
-
border-bottom: 1px solid #e0e8ef;
|
777 |
-
}#customize-theme-controls .customize-section-title
|
778 |
-
{
|
779 |
-
border-top: 1px solid #e0e8ef;border-bottom: 1px solid #e0e8ef;
|
780 |
-
}#customize-controls .control-section .accordion-section-title:focus,
|
781 |
-
#customize-controls .control-section .accordion-section-title:hover,
|
782 |
-
#customize-controls .control-section.open .accordion-section-title,
|
783 |
-
#customize-controls .control-section:hover > .accordion-section-title
|
784 |
-
{
|
785 |
-
color: #056184;border-left-color: #f5fcff;background: #f5fcff;
|
786 |
-
}.wp-customizer .menu-item-edit-active .menu-item-handle,
|
787 |
-
.wp-customizer .section-open .menu-item-settings,
|
788 |
-
.wp-customizer .menu-item-bar .menu-item-handle:hover
|
789 |
-
{
|
790 |
-
border-color: #e0e8ef;
|
791 |
-
}.wp-customizer .section-open .menu-item-settings
|
792 |
-
{
|
793 |
-
background: #f5fcff;
|
794 |
-
}.wp-customizer .control-section-nav_menu .menu-location-settings
|
795 |
-
{
|
796 |
-
border-top-color: #e0e8ef !important;
|
797 |
-
}[data-balloon]
|
798 |
-
{
|
799 |
-
position: relative;
|
800 |
-
}[data-balloon]::before
|
801 |
-
{font-size: 12px;position: absolute;z-index: 10;padding: .5em 1em;content: attr(data-balloon);transition: all .18s ease-out;white-space: nowrap;pointer-events: none;
|
802 |
-
|
803 |
-
opacity: 0;color: #fff;border-radius: 4px;background: rgba(17,17,17,.9);
|
804 |
-
}[data-balloon]::after
|
805 |
-
{position: absolute;z-index: 10;width: 18px;height: 6px;content: '';transition: all .18s ease-out;pointer-events: none;opacity: 0;
|
806 |
-
background: no-repeat url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="36px" height="12px"><path fill="rgba(17, 17, 17, 0.9)" transform="rotate(0)" d="M2.658,0.000 C-13.615,0.000 50.938,0.000 34.662,0.000 C28.662,0.000 23.035,12.002 18.660,12.002 C14.285,12.002 8.594,0.000 2.658,0.000 Z"/></svg>');background-size: 100% auto;
|
807 |
-
}[data-balloon]:hover::before,
|
808 |
-
[data-balloon]:hover::after
|
809 |
-
{pointer-events: auto;
|
810 |
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
bottom: 100%;left: 50%;margin-bottom: 11px;-webkit-transform: translate3d(-50%, 10px, 0);transform: translate3d(-50%, 10px, 0);-webkit-transform-origin: top;transform-origin: top;
|
815 |
-
}[data-balloon][data-balloon-pos='up']::after
|
816 |
-
{
|
817 |
-
bottom: 100%;left: 50%;margin-bottom: 5px;-webkit-transform: translate3d(-50%, 10px, 0);transform: translate3d(-50%, 10px, 0);-webkit-transform-origin: top;transform-origin: top;
|
818 |
-
}[data-balloon][data-balloon-pos='up']:hover::before
|
819 |
-
{
|
820 |
-
-webkit-transform: translate3d(-50%, 0, 0) ;transform: translate3d(-50%, 0, 0);
|
821 |
-
}[data-balloon][data-balloon-pos='up']:hover::after
|
822 |
-
{
|
823 |
-
-webkit-transform: translate3d(-50%, 0, 0) ;transform: translate3d(-50%, 0, 0);
|
824 |
-
}[data-balloon][data-balloon-pos='down']::before
|
825 |
-
{top: 100%;
|
826 |
-
left: 50%;margin-top: 11px;-webkit-transform: translate3d(-50%, -10px, 0);transform: translate3d(-50%, -10px, 0);
|
827 |
-
}[data-balloon][data-balloon-pos='down']::after
|
828 |
-
{top: 100%;left: 50%;width: 18px;height: 6px;margin-top: 5px;-webkit-transform: translate3d(-50%, -10px, 0);transform: translate3d(-50%, -10px, 0);
|
829 |
-
|
830 |
-
background: no-repeat url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="36px" height="12px"><path fill="rgba(17, 17, 17, 0.9)" transform="rotate(180 18 6)" d="M2.658,0.000 C-13.615,0.000 50.938,0.000 34.662,0.000 C28.662,0.000 23.035,12.002 18.660,12.002 C14.285,12.002 8.594,0.000 2.658,0.000 Z"/></svg>');background-size: 100% auto;
|
831 |
-
}[data-balloon][data-balloon-pos='down']:hover::before
|
832 |
-
{
|
833 |
-
-webkit-transform: translate3d(-50%, 0, 0) ;transform: translate3d(-50%, 0, 0);
|
834 |
-
}[data-balloon][data-balloon-pos='down']:hover::after
|
835 |
-
{
|
836 |
-
-webkit-transform: translate3d(-50%, 0, 0) ;transform: translate3d(-50%, 0, 0);
|
837 |
-
}[data-balloon][data-balloon-pos='left']::before
|
838 |
-
{top: 50%;right: 100%;
|
839 |
-
|
840 |
-
margin-right: 11px;-webkit-transform: translate3d(10px, -50%, 0);transform: translate3d(10px, -50%, 0);
|
841 |
-
}[data-balloon][data-balloon-pos='left']::after
|
842 |
-
{top: 50%;right: 100%;width: 6px;height: 18px;margin-right: 5px;-webkit-transform: translate3d(10px, -50%, 0);transform: translate3d(10px, -50%, 0);
|
843 |
-
|
844 |
-
background: no-repeat url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12px" height="36px"><path fill="rgba(17, 17, 17, 0.9)" transform="rotate(-90 18 18)" d="M2.658,0.000 C-13.615,0.000 50.938,0.000 34.662,0.000 C28.662,0.000 23.035,12.002 18.660,12.002 C14.285,12.002 8.594,0.000 2.658,0.000 Z"/></svg>');background-size: 100% auto;
|
845 |
-
}[data-balloon][data-balloon-pos='left']:hover::before
|
846 |
-
{
|
847 |
-
-webkit-transform: translate3d(0, -50%, 0) ;transform: translate3d(0, -50%, 0);
|
848 |
-
}[data-balloon][data-balloon-pos='left']:hover::after
|
849 |
-
{
|
850 |
-
-webkit-transform: translate3d(0, -50%, 0) ;transform: translate3d(0, -50%, 0);
|
851 |
-
}[data-balloon][data-balloon-pos='right']::before
|
852 |
-
{top: 50%;
|
853 |
-
left: 100%;margin-left: 11px;-webkit-transform: translate3d(-10px, -50%, 0);transform: translate3d(-10px, -50%, 0);
|
854 |
-
}[data-balloon][data-balloon-pos='right']::after
|
855 |
-
{top: 50%;left: 100%;width: 6px;height: 18px;margin-left: 5px;-webkit-transform: translate3d(-10px, -50%, 0);transform: translate3d(-10px, -50%, 0);
|
856 |
-
|
857 |
-
background: no-repeat url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12px" height="36px"><path fill="rgba(17, 17, 17, 0.9)" transform="rotate(90 6 6)" d="M2.658,0.000 C-13.615,0.000 50.938,0.000 34.662,0.000 C28.662,0.000 23.035,12.002 18.660,12.002 C14.285,12.002 8.594,0.000 2.658,0.000 Z"/></svg>');background-size: 100% auto;
|
858 |
-
}[data-balloon][data-balloon-pos='right']:hover::before
|
859 |
-
{
|
860 |
-
-webkit-transform: translate3d(0, -50%, 0) ;transform: translate3d(0, -50%, 0);
|
861 |
-
}[data-balloon][data-balloon-pos='right']:hover::after
|
862 |
-
{
|
863 |
-
-webkit-transform: translate3d(0, -50%, 0) ;transform: translate3d(0, -50%, 0);
|
864 |
-
}[data-balloon][data-balloon-length='small']::before
|
865 |
-
{width: 80px;
|
866 |
|
867 |
-
|
868 |
-
|
869 |
-
|
|
|
870 |
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
|
875 |
-
|
876 |
-
|
877 |
-
|
|
|
|
|
878 |
|
879 |
-
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
|
|
889 |
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
overflow: hidden;
|
894 |
-
}body.modal-open #style-manager-user-feedback-modal .modal
|
895 |
-
{visibility: visible;
|
896 |
-
overflow-x: hidden;overflow-y: auto;-webkit-transform: translate(0, 0);transform: translate(0, 0);opacity: 1;
|
897 |
-
}#style-manager-user-feedback-modal
|
898 |
-
{
|
899 |
-
height: 100%;
|
900 |
-
}#style-manager-user-feedback-modal .modal
|
901 |
-
{font-family: 'Galano Grotesque Alt', -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-size: 16px;font-weight: 400;line-height: 1.7;
|
902 |
-
|
903 |
-
position: relative;z-index: 1050;top: 0;right: 0;bottom: 0;left: 0;display: -ms-flexbox;display: flex;visibility: hidden;overflow: hidden;height: 100%;transition: all .3s ease;-webkit-transform: translate(0, -10%);transform: translate(0, -10%);opacity: 0;outline: 0;-ms-flex-align: center;align-items: center;
|
904 |
-
}#style-manager-user-feedback-modal .modal-dialog
|
905 |
-
{
|
906 |
-
position: relative;width: auto;margin: 10px;text-align: left;
|
907 |
-
}#style-manager-user-feedback-modal .modal-content
|
908 |
-
{
|
909 |
-
position: relative;display: -ms-flexbox;display: flex;flex-direction: column;border: none;border-radius: 4px;outline: 0;background-color: #fff;background-clip: padding-box;box-shadow: 0 4px 4px 0 rgba(42,54,52,.1),0 8px 8px 0 rgba(42,54,52,.1),0 16px 16px 0 rgba(42,54,52,.1),0 16px 32px 0 rgba(42,54,52,.1),0 32px 64px 0 rgba(42,54,52,.1),0 64px 128px 0 rgba(42,54,52,.1);-ms-flex-direction: column;
|
910 |
-
}#style-manager-user-feedback-modal .modal-content p
|
911 |
-
{
|
912 |
-
color: #000;
|
913 |
-
}#style-manager-user-feedback-modal .modal-content p a
|
914 |
-
{
|
915 |
-
font-weight: 500;color: #9660c6;border-bottom: 1px solid #9660c6;
|
916 |
-
}#style-manager-user-feedback-modal .modal-content > form
|
917 |
-
{
|
918 |
-
margin-bottom: 20px;
|
919 |
-
}#style-manager-user-feedback-modal .modal-backdrop
|
920 |
-
{
|
921 |
-
position: fixed;z-index: 1040;top: 0;right: 0;bottom: 0;left: 0;visibility: hidden;transition: all .3s ease;opacity: 0;background-color: #000;
|
922 |
-
}.modal-open #style-manager-user-feedback-modal .modal-backdrop
|
923 |
-
{visibility: visible;
|
924 |
-
|
925 |
-
opacity: .8;
|
926 |
-
}#style-manager-user-feedback-modal .modal-header
|
927 |
-
{
|
928 |
-
display: -ms-flexbox ;display: flex;padding: 30px 48px 10px 48px;-ms-flex-align: start;align-items: flex-start;-ms-flex-pack: justify;justify-content: space-between;
|
929 |
-
}#style-manager-user-feedback-modal .modal-header .close.button
|
930 |
-
{
|
931 |
-
top: -10px;
|
932 |
-
}#style-manager-user-feedback-modal .modal-header .close.icon
|
933 |
-
{
|
934 |
-
opacity: .5;
|
935 |
-
}#style-manager-user-feedback-modal .modal-header .close:hover
|
936 |
-
{
|
937 |
-
opacity: 1;
|
938 |
-
}#style-manager-user-feedback-modal .modal-title
|
939 |
-
{line-height: 1.5;
|
940 |
-
|
941 |
-
margin-bottom: 10px;
|
942 |
-
}#style-manager-user-feedback-modal .modal-title.modal-title--small
|
943 |
-
{
|
944 |
-
font-weight: 500;
|
945 |
-
}#style-manager-user-feedback-modal .modal-body
|
946 |
-
{
|
947 |
-
position: relative;padding: 30px 30px 0 30px;-ms-flex: 1 1 auto;flex: 1 1 auto;
|
948 |
-
}#style-manager-user-feedback-modal .modal-body.full
|
949 |
-
{
|
950 |
-
padding: 0;
|
951 |
-
}#style-manager-user-feedback-modal .modal-body.full .box
|
952 |
-
{margin-top: 0;
|
953 |
-
padding-top: 0;padding-bottom: 0;
|
954 |
-
}#style-manager-user-feedback-modal .modal-body.full + .modal-footer.full .box
|
955 |
-
{
|
956 |
-
padding-top: 18px;
|
957 |
-
}#style-manager-user-feedback-modal .modal-footer
|
958 |
-
{
|
959 |
-
padding: 30px;text-align: center;
|
960 |
-
}#style-manager-user-feedback-modal .modal-footer .box .button:last-child
|
961 |
-
{
|
962 |
-
margin-bottom: 0;
|
963 |
-
}#style-manager-user-feedback-modal .modal-footer.full
|
964 |
-
{
|
965 |
-
padding: 0;
|
966 |
-
}#style-manager-user-feedback-modal .modal-scrollbar-measure
|
967 |
-
{
|
968 |
-
position: absolute;top: -9999px;overflow: scroll;width: 50px;height: 50px;
|
969 |
-
}#style-manager-user-feedback-modal .modal-state
|
970 |
-
{
|
971 |
-
display: none;
|
972 |
-
}#style-manager-user-feedback-modal .modal-state:checked + .modal
|
973 |
-
{visibility: visible;
|
974 |
|
975 |
-
|
976 |
-
|
977 |
-
{
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
-
|
982 |
-
|
983 |
-
|
984 |
-
|
985 |
-
{
|
986 |
-
max-width: 300px;
|
987 |
-
}
|
988 |
-
}@media (min-width: 576px)
|
989 |
-
{
|
990 |
-
#style-manager-user-feedback-modal .modal-lg
|
991 |
-
{
|
992 |
-
max-width: 800px;
|
993 |
-
}
|
994 |
-
}#style-manager-user-feedback .modal-body .box
|
995 |
-
{
|
996 |
-
position: relative;display: -ms-flexbox;display: flex;flex-direction: column;margin: 20px 0;padding: 16px 52px;border-radius: 4px;-ms-flex-direction: column;-ms-flex-wrap: nowrap;flex-wrap: nowrap;-ms-flex-align: center;align-items: center;
|
997 |
-
}#style-manager-user-feedback .modal-body .box > *
|
998 |
-
{
|
999 |
-
width: 100%;
|
1000 |
-
}#style-manager-user-feedback .modal-body p
|
1001 |
-
{
|
1002 |
-
font-size: 16px;margin-bottom: 20px;
|
1003 |
-
}#style-manager-user-feedback .modal-body textarea
|
1004 |
-
{font-family: 'Galano Grotesque Alt', -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-size: 16px;line-height: 26px;
|
1005 |
-
|
1006 |
-
width: 100%;margin: 0;padding: 11px 18px;color: #473850;border: 1px solid #ddd;border-radius: 4px;box-shadow: none;
|
1007 |
-
}#style-manager-user-feedback .modal-title
|
1008 |
-
{font-family: 'Galano Classic', -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-size: 28px;font-weight: 600;line-height: 1.4;
|
1009 |
-
|
1010 |
-
margin-top: 0;margin-bottom: 34px;text-align: center;
|
1011 |
-
}#style-manager-user-feedback .button
|
1012 |
-
{font-family: 'Galano Classic', -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-size: 16px;font-weight: 600;line-height: 23px;position: relative;display: inline-block;width: 100%;height: auto;margin-top: 20px;padding: 15px 50px;cursor: pointer;transition-timing-function: cubic-bezier(0, 0, .58, 1);transition-duration: .2s;transition-property: -webkit-transform,background,background-color,color,box-shadow;transition-property: transform,background,background-color,color,box-shadow;text-align: center;
|
1013 |
-
text-decoration: none;color: #fff;border-radius: 2px;border-radius: 4px;background-color: #9660c6;box-shadow: none;-webkit-font-smoothing: antialiased;
|
1014 |
-
}#style-manager-user-feedback .button:hover
|
1015 |
-
{-webkit-transform: scale(1.05) translateY(-3px) ;transform: scale(1.05) translateY(-3px);color: #fff;
|
1016 |
-
background-color: #9660c6;box-shadow: 0 10px 20px -10px rgba(0,0,0,.7);
|
1017 |
-
}#style-manager-user-feedback .second-step
|
1018 |
-
{
|
1019 |
-
margin-top: 18px;
|
1020 |
-
}#style-manager-user-feedback .thanks-step,
|
1021 |
-
#style-manager-user-feedback .error-step
|
1022 |
-
{
|
1023 |
-
text-align: center;
|
1024 |
-
}#style-manager-user-feedback .thanks-step .modal-title,
|
1025 |
-
#style-manager-user-feedback .error-step .modal-title
|
1026 |
-
{
|
1027 |
-
margin-bottom: 0;
|
1028 |
-
}#style-manager-user-feedback .thanks-step p:last-child,
|
1029 |
-
#style-manager-user-feedback .error-step p:last-child
|
1030 |
-
{
|
1031 |
-
margin-bottom: 10px;
|
1032 |
-
}.scorecard
|
1033 |
-
{font-family: 'Galano Classic', -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-size: 18px;font-weight: 600;
|
1034 |
-
|
1035 |
-
display: -ms-flexbox;display: flex;text-align: center;color: #9660c6;-ms-flex-align: baseline;align-items: baseline;-ms-flex-pack: space-evenly;justify-content: space-evenly;
|
1036 |
-
}.scorecard > label
|
1037 |
-
{
|
1038 |
-
font-size: 20px;
|
1039 |
-
}.scorecard > label span
|
1040 |
-
{line-height: 46px;
|
1041 |
-
|
1042 |
-
display: block;width: 46px;transition: all .25s ease;border: 2px solid #9660c6;border-radius: 100%;background: #fff;
|
1043 |
-
}.scorecard > label input[type='radio']
|
1044 |
-
{
|
1045 |
-
display: none;
|
1046 |
-
}.scorecard > label span:hover,
|
1047 |
-
.scorecard > label input[type='radio']:checked ~ span
|
1048 |
-
{color: #fff;
|
1049 |
-
background: #9660c6;
|
1050 |
-
}.font-options__wrapper .font-options__options-list
|
1051 |
-
{
|
1052 |
-
border-color: #b8daeb;box-shadow: 0 10px 20px 0 rgba(0,0,0,.15);
|
1053 |
-
}.font-options__wrapper .font-options__option
|
1054 |
-
{
|
1055 |
-
margin-bottom: 12px;
|
1056 |
-
}.font-options__wrapper .font-options__option label
|
1057 |
-
{
|
1058 |
-
display: block;margin-bottom: 6px;
|
1059 |
-
}.font-options__wrapper [type=checkbox]:checked ~ .font-options__options-list
|
1060 |
-
{display: block;
|
1061 |
|
1062 |
-
|
1063 |
-
|
1064 |
-
|
1065 |
-
display: none;
|
1066 |
-
}ul.font-options__options-list .select2-container
|
1067 |
-
{
|
1068 |
-
width: 100% !important;
|
1069 |
-
}ul.font-options__options-list .select2-container .select2-selection--single
|
1070 |
-
{
|
1071 |
-
-webkit-appearance: initial;
|
1072 |
-
}ul.font-options__options-list .select2-container .select2-selection--single .select2-selection__arrow
|
1073 |
-
{
|
1074 |
-
display: none;
|
1075 |
-
}ul.font-options__options-list .select2-container--default .select2-selection--single .select2-selection__rendered
|
1076 |
-
{line-height: initial;
|
1077 |
-
|
1078 |
-
color: inherit;
|
1079 |
-
}.select2-container.select2-container--open
|
1080 |
-
{
|
1081 |
-
z-index: 99999999;
|
1082 |
-
}#customize-theme-controls .select2-container
|
1083 |
-
{
|
1084 |
-
width: 100% !important;
|
1085 |
-
}#customize-theme-controls .select2-container .select2-selection--multiple
|
1086 |
-
{height: auto;padding: 4px 8px 4px;background: none;
|
1087 |
-
|
1088 |
-
-webkit-appearance: initial;
|
1089 |
-
}#customize-theme-controls .select2-container .select2-selection--multiple .select2-selection__arrow
|
1090 |
-
{
|
1091 |
-
display: none;
|
1092 |
-
}#customize-theme-controls .select2-container .select2-selection--multiple .select2-selection__rendered
|
1093 |
-
{display: -ms-flexbox;display: flex;
|
1094 |
-
|
1095 |
-
padding: 0;
|
1096 |
-
}#customize-theme-controls .select2-container .select2-selection--multiple .select2-selection__rendered .select2-search--inline
|
1097 |
-
{
|
1098 |
-
-ms-flex: 1 ;flex: 1;
|
1099 |
-
}#customize-theme-controls .select2-container .select2-selection--multiple .select2-selection__rendered .select2-search--inline .select2-search__field[class]
|
1100 |
-
{
|
1101 |
-
min-width: 100%;margin-top: 3px !important;border-width: 0;
|
1102 |
-
}#customize-theme-controls .select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice
|
1103 |
-
{margin-top: 0;margin-right: 6px;
|
1104 |
-
padding: 3px 7px;border-color: #e0e8ef;background-color: #f6fbff;
|
1105 |
-
}#customize-theme-controls .select2-container .select2-search--inline .select2-search__field
|
1106 |
-
{min-width: 9em;
|
1107 |
-
height: 29px;margin-top: 0;
|
1108 |
-
}.select2-container--default .select2-results__option[aria-selected=true][class]
|
1109 |
-
{pointer-events: none;opacity: .3;
|
1110 |
-
background: transparent;
|
1111 |
-
}.select2-container .select2-dropdown
|
1112 |
-
{
|
1113 |
-
border-color: #e0e8ef;
|
1114 |
-
}#customize-theme-controls .widget-content .accordion-container
|
1115 |
-
{margin-top: 20px;margin-right: -10px;margin-bottom: 10px;
|
1116 |
-
margin-left: -10px;
|
1117 |
-
}#customize-theme-controls .widget-content .accordion-container .accordion-section .accordion-section-content
|
1118 |
-
{
|
1119 |
-
position: relative;left: 0;overflow: hidden;max-height: 0;padding-top: 0;padding-bottom: 0;transition: all .4s ease;color: #416b7e;
|
1120 |
-
}#customize-theme-controls .widget-content .accordion-container .accordion-section .accordion-section-content p:first-child
|
1121 |
-
{
|
1122 |
-
margin-top: 0;
|
1123 |
-
}#customize-theme-controls .widget-content .accordion-container .accordion-section .accordion-section-content p:last-child
|
1124 |
-
{
|
1125 |
-
margin-bottom: 0;
|
1126 |
-
}#customize-theme-controls .widget-content .accordion-container .accordion-section .accordion-section-title
|
1127 |
-
{
|
1128 |
-
color: #39474d;
|
1129 |
-
}#customize-theme-controls .widget-content .accordion-container .accordion-section .accordion-section-title:after
|
1130 |
-
{
|
1131 |
-
content: '\f142';-webkit-transform: rotate(180deg);transform: rotate(180deg);
|
1132 |
-
}#customize-theme-controls .widget-content .accordion-container .accordion-section.open
|
1133 |
-
{
|
1134 |
-
border-bottom: none;
|
1135 |
-
}#customize-theme-controls .widget-content .accordion-container .accordion-section.open .accordion-section-content
|
1136 |
-
{
|
1137 |
-
max-height: 100%;padding-top: 17px;padding-bottom: 17px;
|
1138 |
-
}#customize-theme-controls .widget-content .accordion-container .accordion-section.open .accordion-section-title
|
1139 |
-
{
|
1140 |
-
border-bottom: 1px solid;
|
1141 |
-
}#customize-theme-controls .widget-content .accordion-container .accordion-section.open .accordion-section-title:after
|
1142 |
-
{
|
1143 |
-
-webkit-transform: rotate(0deg) ;transform: rotate(0deg);
|
1144 |
-
}#customize-theme-controls .widget-content .accordion-container label.customize-control-title,
|
1145 |
-
#customize-theme-controls .widget-content .accordion-container label.separator.label
|
1146 |
-
{
|
1147 |
-
cursor: default;
|
1148 |
-
}.widget .widget-content > p input[type=checkbox],
|
1149 |
-
.widget .widget-content > p input[type=radio]
|
1150 |
-
{margin-top: 3px;
|
1151 |
-
margin-bottom: 3px;
|
1152 |
-
}.widget .widget-content small
|
1153 |
-
{display: block;
|
1154 |
-
|
1155 |
-
margin-top: 5px;
|
1156 |
-
}#available-widgets [class*=pixelgrade] .widget .widget-title:before,
|
1157 |
-
#available-widgets [class*=featured-posts] .widget .widget-title:before,
|
1158 |
-
#available-widgets [class*=categories-image-grid] .widget .widget-title:before
|
1159 |
-
{
|
1160 |
-
content: '\f538';color: #9660c6;
|
1161 |
-
}#available-widgets [class*=pixelgrade-featured-posts-slideshow] .widget .widget-title:before
|
1162 |
-
{
|
1163 |
-
content: '\f233';
|
1164 |
-
}#available-widgets [class*=pixelgrade-featured-posts-carousel] .widget .widget-title:before
|
1165 |
-
{
|
1166 |
-
content: '\f169';
|
1167 |
-
}#available-widgets [class*=featured-posts-grid] .widget .widget-title:before
|
1168 |
-
{
|
1169 |
-
content: '\f180';
|
1170 |
-
}#available-widgets [class*=featured-posts-list] .widget .widget-title:before
|
1171 |
-
{
|
1172 |
-
content: '\f164';
|
1173 |
-
}#available-widgets [class*=categories-image-grid] .widget .widget-title:before
|
1174 |
-
{
|
1175 |
-
content: '\f163';
|
1176 |
-
}#available-widgets [class*=pixelgrade-promo-box] .widget .widget-title:before
|
1177 |
-
{
|
1178 |
-
content: '\f488';
|
1179 |
-
}.ui-tooltip
|
1180 |
-
{
|
1181 |
-
z-index: 999999;
|
1182 |
-
}.wp-customizer .widget-conditional .condition-control:after
|
1183 |
-
{display: table;clear: both;
|
1184 |
-
|
1185 |
-
content: ' ';
|
1186 |
-
}.wp-customizer .widget-conditional .selection
|
1187 |
-
{margin-right: 0;margin-bottom: 10px;margin-left: 0;
|
1188 |
-
padding-right: 50px;padding-bottom: 19px;padding-left: 28px;border-bottom: 1px solid #cbcfd4;
|
1189 |
-
}.wp-customizer .widget-conditional .condition:last-child .selection
|
1190 |
-
{
|
1191 |
-
border: 0;
|
1192 |
-
}.wp-customizer .widget-conditional select
|
1193 |
-
{width: 170px;
|
1194 |
-
max-width: 100%;
|
1195 |
-
}.wp-customizer .widget-conditional .condition-top select
|
1196 |
-
{
|
1197 |
-
width: 130px;
|
1198 |
-
}.pix_customizer_setting .customize-inside-control-row
|
1199 |
-
{
|
1200 |
-
position: relative;overflow: hidden;width: 100% !important;height: 64px;margin-left: 0 !important;text-indent: 0 !important;border-radius: 5px;background-position: 50% 50%;background-size: cover;
|
1201 |
-
}.pix_customizer_setting .customize-inside-control-row:before
|
1202 |
-
{position: absolute;z-index: 10;top: 0;right: 0;bottom: 0;left: 0;
|
1203 |
-
|
1204 |
-
content: '';pointer-events: none;box-shadow: inset 0 0 3px 0 rgba(0,0,0,.2);
|
1205 |
-
}.pix_customizer_setting .customize-inside-control-row:hover:before
|
1206 |
-
{
|
1207 |
-
box-shadow: inset 0 0 3px 0 rgba(0,0,0,.4);
|
1208 |
-
}.pix_customizer_setting .customize-inside-control-row:hover .palette__item
|
1209 |
-
{
|
1210 |
-
-webkit-transform: translateY(0%) ;transform: translateY(0%);
|
1211 |
-
}.pix_customizer_setting .customize-inside-control-row:hover label
|
1212 |
-
{
|
1213 |
-
left: 10px;
|
1214 |
-
}.pix_customizer_setting .customize-inside-control-row input
|
1215 |
-
{
|
1216 |
-
opacity: 0;
|
1217 |
-
}.pix_customizer_setting .customize-inside-control-row input:checked + label .preview__letter--checked
|
1218 |
-
{
|
1219 |
-
display: inline-block;vertical-align: middle;
|
1220 |
-
}.pix_customizer_setting .customize-inside-control-row input:checked + label .preview__letter
|
1221 |
-
{
|
1222 |
-
display: none;
|
1223 |
-
}.pix_customizer_setting .customize-inside-control-row label
|
1224 |
-
{
|
1225 |
-
position: absolute;z-index: 2;top: 0;left: 0;display: -ms-flexbox;display: flex;width: 100%;height: 100%;margin-top: 0 !important;padding: 0 10px;transition: all .3s ease;-ms-flex-align: center;align-items: center;
|
1226 |
-
}.pix_customizer_setting .customize-inside-control-row .palette
|
1227 |
-
{
|
1228 |
-
position: absolute;z-index: 1;top: 0;left: 0;display: -ms-flexbox;display: flex;width: 100%;height: 100%;transition: all .2s ease;
|
1229 |
-
}.pix_customizer_setting .customize-inside-control-row .palette__item
|
1230 |
-
{transition: all .3s ease;-webkit-transform: translateY(100%);transform: translateY(100%);
|
1231 |
-
|
1232 |
-
-ms-flex: 1;flex: 1;
|
1233 |
-
}.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(1)
|
1234 |
-
{
|
1235 |
-
transition-delay: 0s;
|
1236 |
-
}.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(2)
|
1237 |
-
{
|
1238 |
-
transition-delay: .05s;
|
1239 |
-
}.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(3)
|
1240 |
-
{
|
1241 |
-
transition-delay: .1s;
|
1242 |
-
}.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(4)
|
1243 |
-
{
|
1244 |
-
transition-delay: .15s;
|
1245 |
-
}.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(5)
|
1246 |
-
{
|
1247 |
-
transition-delay: .2s;
|
1248 |
-
}.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(6)
|
1249 |
-
{
|
1250 |
-
transition-delay: .25s;
|
1251 |
-
}.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(7)
|
1252 |
-
{
|
1253 |
-
transition-delay: .3s;
|
1254 |
-
}.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(8)
|
1255 |
-
{
|
1256 |
-
transition-delay: .35s;
|
1257 |
-
}.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(9)
|
1258 |
-
{
|
1259 |
-
transition-delay: .4s;
|
1260 |
-
}.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(10)
|
1261 |
-
{
|
1262 |
-
transition-delay: .45s;
|
1263 |
-
}.pix_customizer_setting .customize-inside-control-row .preview__letter,
|
1264 |
-
.pix_customizer_setting .customize-inside-control-row .preview__letter--checked
|
1265 |
-
{font-style: normal;
|
1266 |
-
|
1267 |
-
display: inline-block;min-width: 26px;min-height: 26px;margin-right: 5px;padding: 3px;text-align: center;vertical-align: baseline;color: white;border-radius: 2px;background-repeat: no-repeat;background-position: center center;background-size: 15px 15px;
|
1268 |
-
}.pix_customizer_setting .customize-inside-control-row .preview__letter--checked
|
1269 |
-
{
|
1270 |
-
display: none;
|
1271 |
-
}[id*='sm_current_color_palette_control'] .customize-inside-control-row .palette__item[class]
|
1272 |
-
{
|
1273 |
-
-webkit-transform: none ;transform: none;
|
1274 |
-
}[id*='sm_current_color_palette_control'] .variation-control
|
1275 |
-
{
|
1276 |
-
display: -ms-flexbox ;display: flex;
|
1277 |
-
}.label__inner
|
1278 |
-
{z-index: 2;padding: 7px 12px 7px 7px;
|
1279 |
-
|
1280 |
-
color: #000;border-radius: 3px;background: #f5f6f1;box-shadow: 0 2px 5px rgba(0,0,0,.15);
|
1281 |
-
}.picker
|
1282 |
-
{
|
1283 |
-
position: relative;top: 0;left: 50%;overflow: hidden;width: 80%;max-width: 3em;margin-top: auto;margin-bottom: auto;-webkit-transform: translate3d(-50%, 0, 0);transform: translate3d(-50%, 0, 0);border-radius: 50%;
|
1284 |
-
}.colors .picker > i
|
1285 |
-
{position: absolute;z-index: 20;top: 0;right: 0;bottom: 0;left: 0;
|
1286 |
-
|
1287 |
-
display: block;pointer-events: none;border-radius: 50%;box-shadow: inset 0 0 3px 0 rgba(0,0,0,.2);
|
1288 |
-
}.picker:before,
|
1289 |
-
.picker:after
|
1290 |
-
{display: block;
|
1291 |
-
|
1292 |
-
content: '';border-radius: 50%;background: currentColor;
|
1293 |
-
}.picker:before
|
1294 |
-
{
|
1295 |
-
padding-top: 100%;
|
1296 |
-
}.picker:after
|
1297 |
-
{
|
1298 |
-
position: absolute;top: 0;left: 0;width: 100%;height: 100%;
|
1299 |
-
}.fill
|
1300 |
-
{
|
1301 |
-
overflow: hidden;
|
1302 |
-
}.color:first-child .fill
|
1303 |
-
{
|
1304 |
-
border-top-left-radius: 5px;border-bottom-left-radius: 5px;
|
1305 |
-
}.color:last-child .fill
|
1306 |
-
{
|
1307 |
-
border-top-right-radius: 5px;border-bottom-right-radius: 5px;
|
1308 |
-
}.label
|
1309 |
-
{
|
1310 |
-
margin-right: auto;
|
1311 |
-
}#customize-theme-controls [id*='sm_current_color_palette_control']
|
1312 |
-
{
|
1313 |
-
display: block;width: auto;
|
1314 |
-
}#customize-theme-controls [id*='sm_current_color_palette_control'] .color-palette-container
|
1315 |
-
{
|
1316 |
-
background: white;
|
1317 |
-
}#customize-theme-controls [id*='sm_current_color_palette_control'] .color-palette-container .description
|
1318 |
-
{
|
1319 |
-
margin-bottom: 15px;
|
1320 |
-
}#customize-theme-controls [id*='sm_current_color_palette_control'] .description.c-color-palette__notification
|
1321 |
-
{font-size: inherit;font-weight: bold;margin-bottom: 0;
|
1322 |
-
padding-top: 19px;
|
1323 |
-
}.c-color-palette__fields
|
1324 |
-
{
|
1325 |
-
position: relative;
|
1326 |
-
}.c-color-palette .iris-picker
|
1327 |
-
{
|
1328 |
-
position: absolute;z-index: 100;top: 100%;left: 0;margin-top: 1em;border: 0;box-shadow: black 0 3px 12px -4px;
|
1329 |
-
}.c-color-palette .iris-picker .iris-square-handle
|
1330 |
-
{top: -6px;left: -6px;
|
1331 |
-
|
1332 |
-
border-color: transparent;
|
1333 |
-
}.c-color-palette .iris-picker .iris-square-handle:after
|
1334 |
-
{
|
1335 |
-
position: absolute;top: 0;right: 0;bottom: 0;left: 0;border: 2px solid white;
|
1336 |
-
}.c-color-palette .iris-picker .iris-square-value
|
1337 |
-
{
|
1338 |
-
box-shadow: none !important;
|
1339 |
-
}.colors
|
1340 |
-
{
|
1341 |
-
position: relative;display: -ms-flexbox;display: flex;width: 100%;height: 3em;-ms-flex-wrap: wrap;flex-wrap: wrap;-ms-flex-align: center;align-items: center;
|
1342 |
-
}.color
|
1343 |
-
{
|
1344 |
-
display: -ms-flexbox ;display: flex;overflow: hidden;flex-direction: column;transition: -ms-flex-positive .3s cubic-bezier(.18, .89, .32, 1.28);transition: flex-grow .3s cubic-bezier(.18, .89, .32, 1.28);-ms-flex-direction: column;-ms-flex: 1 1 0;flex: 1 1 0;
|
1345 |
-
}.color.hidden
|
1346 |
-
{
|
1347 |
-
display: -ms-flexbox ;display: flex;transition: -ms-flex-positive .3s cubic-bezier(.6, -1, .74, .05);transition: flex-grow .3s cubic-bezier(.6, -1, .74, .05);-ms-flex-positive: 0;flex-grow: 0;
|
1348 |
-
}.color.hidden .picker
|
1349 |
-
{transition: opacity .2s ease-out;
|
1350 |
|
1351 |
-
|
1352 |
-
|
1353 |
-
|
1354 |
-
|
1355 |
-
|
1356 |
-
|
1357 |
-
|
1358 |
-
|
1359 |
-
{
|
1360 |
-
|
1361 |
-
}
|
1362 |
-
|
1363 |
-
|
1364 |
-
|
1365 |
-
|
1366 |
-
|
1367 |
-
|
1368 |
-
{
|
1369 |
-
|
1370 |
-
}
|
1371 |
-
|
1372 |
-
|
1373 |
-
|
1374 |
-
|
1375 |
-
|
1376 |
-
|
1377 |
-
|
1378 |
-
|
1379 |
-
|
1380 |
-
|
1381 |
-
|
1382 |
-
|
1383 |
-
|
1384 |
-
|
1385 |
-
|
1386 |
-
|
1387 |
-
|
1388 |
-
|
1389 |
-
|
1390 |
-
|
1391 |
-
|
1392 |
-
|
1393 |
-
|
1394 |
-
|
1395 |
-
|
1396 |
-
|
1397 |
-
|
1398 |
-
|
1399 |
-
|
1400 |
-
|
1401 |
-
|
1402 |
-
}
|
1403 |
-
|
1404 |
-
|
1405 |
-
|
1406 |
-
|
1407 |
-
|
1408 |
-
|
1409 |
-
|
1410 |
-
|
1411 |
-
|
1412 |
-
|
1413 |
-
|
1414 |
-
|
1415 |
-
|
1416 |
-
|
1417 |
-
|
1418 |
-
|
1419 |
-
|
1420 |
-
|
1421 |
-
|
1422 |
-
|
1423 |
-
|
1424 |
-
|
1425 |
-
|
1426 |
-
|
1427 |
-
|
1428 |
-
|
1429 |
-
|
1430 |
-
|
1431 |
-
|
1432 |
-
|
1433 |
-
|
1434 |
-
|
1435 |
-
|
1436 |
-
|
1437 |
-
|
1438 |
-
|
1439 |
-
|
1440 |
-
|
1441 |
-
|
1442 |
-
|
1443 |
-
|
1444 |
-
|
1445 |
-
|
1446 |
-
|
1447 |
-
|
1448 |
-
|
1449 |
-
}
|
1450 |
-
|
1451 |
-
|
1452 |
-
|
1453 |
-
|
1454 |
-
|
1455 |
-
|
1456 |
-
|
1457 |
-
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
1461 |
-
|
1462 |
-
|
1463 |
-
|
1464 |
-
|
1465 |
-
|
1466 |
-
|
1467 |
-
|
1468 |
-
|
1469 |
-
|
1470 |
-
|
1471 |
-
|
1472 |
-
|
1473 |
-
|
1474 |
-
|
1475 |
-
|
1476 |
-
{
|
1477 |
-
|
1478 |
-
|
1479 |
-
|
1480 |
-
|
1481 |
-
|
1482 |
-
|
1483 |
-
|
1484 |
-
|
1485 |
-
|
1486 |
-
|
1487 |
-
|
1488 |
-
|
1489 |
-
|
1490 |
-
|
1491 |
-
|
1492 |
-
|
1493 |
-
|
1494 |
-
|
1495 |
-
|
1496 |
-
|
1497 |
-
|
1498 |
-
|
1499 |
-
|
1500 |
-
|
1501 |
-
|
1502 |
-
|
1503 |
-
|
1504 |
-
|
1505 |
-
|
1506 |
-
|
1507 |
-
}
|
1508 |
-
|
1509 |
-
|
1510 |
-
|
1511 |
-
|
1512 |
-
|
1513 |
-
|
1514 |
-
{
|
1515 |
-
|
1516 |
-
|
1517 |
-
|
1518 |
-
|
1519 |
-
|
1520 |
-
{
|
1521 |
-
|
1522 |
-
|
1523 |
-
|
1524 |
-
|
1525 |
-
|
1526 |
-
{
|
1527 |
-
|
1528 |
-
|
1529 |
-
|
1530 |
-
|
1531 |
-
}
|
1532 |
-
|
1533 |
-
|
1534 |
-
|
1535 |
-
|
1536 |
-
|
1537 |
-
|
1538 |
-
|
1539 |
-
|
1540 |
-
|
1541 |
-
{
|
1542 |
-
|
1543 |
-
|
1544 |
-
|
1545 |
-
|
1546 |
-
|
1547 |
-
|
1548 |
-
|
1549 |
-
|
1550 |
-
|
1551 |
-
|
1552 |
-
|
1553 |
-
{
|
1554 |
-
|
1555 |
-
|
1556 |
-
|
1557 |
-
|
1558 |
-
|
1559 |
-
|
1560 |
-
|
1561 |
-
}
|
1562 |
-
|
1563 |
-
|
1564 |
-
|
1565 |
-
|
1566 |
-
|
1567 |
-
}
|
1568 |
-
|
1569 |
-
|
1570 |
-
|
1571 |
-
|
1572 |
-
|
1573 |
-
|
1574 |
-
|
1575 |
-
|
1576 |
-
}
|
1577 |
-
|
1578 |
-
|
1579 |
-
|
1580 |
-
|
1581 |
-
|
1582 |
-
|
1583 |
-
|
1584 |
-
|
1585 |
-
|
1586 |
-
|
1587 |
-
|
1588 |
-
|
1589 |
-
|
1590 |
-
|
1591 |
-
|
1592 |
-
|
1593 |
-
|
1594 |
-
|
1595 |
-
|
1596 |
-
|
1597 |
-
|
1598 |
-
|
1599 |
-
|
1600 |
-
|
1601 |
-
|
1602 |
-
|
1603 |
-
|
1604 |
-
|
1605 |
-
|
1606 |
-
|
1607 |
-
|
1608 |
-
{
|
1609 |
-
|
1610 |
-
}
|
1611 |
-
|
1612 |
-
|
1613 |
-
|
1614 |
-
|
1615 |
-
|
1616 |
-
|
1617 |
-
|
1618 |
-
|
1619 |
-
|
1620 |
-
|
1621 |
-
|
1622 |
-
|
1623 |
-
|
1624 |
-
|
1625 |
-
|
1626 |
-
|
1627 |
-
|
1628 |
-
|
1629 |
-
|
1630 |
-
|
1631 |
-
|
1632 |
-
|
1633 |
-
|
1634 |
-
{
|
1635 |
-
|
1636 |
-
|
1637 |
-
|
1638 |
-
|
1639 |
-
|
1640 |
-
|
1641 |
-
|
1642 |
-
|
1643 |
-
|
1644 |
-
|
1645 |
-
|
1646 |
-
|
1647 |
-
|
1648 |
-
|
1649 |
-
|
1650 |
-
|
1651 |
-
|
1652 |
-
|
1653 |
-
|
1654 |
-
|
1655 |
-
|
1656 |
-
|
1657 |
-
|
1658 |
-
|
1659 |
-
|
1660 |
-
|
1661 |
-
|
1662 |
-
|
1663 |
-
|
1664 |
-
|
1665 |
-
|
1666 |
-
|
1667 |
-
|
1668 |
-
.customize-control-
|
1669 |
-
|
1670 |
-
|
1671 |
-
|
1672 |
-
{
|
1673 |
-
|
1674 |
-
|
1675 |
-
|
1676 |
-
|
1677 |
-
|
1678 |
-
|
1679 |
-
|
1680 |
-
|
1681 |
-
|
1682 |
-
|
1683 |
-
|
1684 |
-
|
1685 |
-
|
1686 |
-
|
1687 |
-
|
1688 |
-
|
1689 |
-
|
1690 |
-
|
1691 |
-
|
1692 |
-
|
1693 |
-
{
|
1694 |
-
|
1695 |
-
|
1696 |
-
|
1697 |
-
|
1698 |
-
|
1699 |
-
|
1700 |
-
|
1701 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1702 |
#customize-theme-controls .control-panel-nav_menus .control-section-nav_menu,
|
1703 |
-
#customize-theme-controls .control-section-nav_menu_locations .accordion-section-title
|
1704 |
-
|
1705 |
-
border-top: 0;
|
1706 |
}
|
1 |
+
.sm-radio-group {
|
2 |
+
position: relative;
|
3 |
+
border-radius: 999em;
|
4 |
+
overflow: hidden;
|
5 |
+
height: 2.428em;
|
6 |
+
display: -webkit-box;
|
7 |
+
display: -ms-flexbox;
|
8 |
+
display: flex;
|
9 |
+
-ms-flex-wrap: nowrap;
|
10 |
+
flex-wrap: nowrap;
|
11 |
+
-webkit-box-align: stretch;
|
12 |
+
-ms-flex-align: stretch;
|
13 |
+
align-items: stretch;
|
14 |
+
color: rgba(65, 107, 126, 0.7);
|
15 |
+
font-size: 14px;
|
16 |
+
-webkit-font-smoothing: antialiased;
|
17 |
+
font-weight: 600;
|
18 |
+
line-height: 1.142em;
|
19 |
+
}
|
20 |
+
|
21 |
+
.sm-radio-group > * {
|
22 |
+
-webkit-box-flex: 1;
|
23 |
+
-ms-flex: 1 1 0px;
|
24 |
+
flex: 1 1 0;
|
25 |
+
}
|
26 |
+
|
27 |
+
.sm-radio-group:after {
|
28 |
+
content: "";
|
29 |
+
position: absolute;
|
30 |
+
top: 0;
|
31 |
+
right: 0;
|
32 |
+
bottom: 0;
|
33 |
+
left: 0;
|
34 |
+
border: 0.142em solid #57abd5;
|
35 |
+
border-radius: 999em;
|
36 |
+
pointer-events: none;
|
37 |
+
}
|
38 |
+
|
39 |
+
.sm-radio-group input[type="radio"] {
|
40 |
+
display: none;
|
41 |
+
}
|
42 |
+
|
43 |
+
.sm-radio-group input[type="radio"]:checked + label {
|
44 |
+
background-color: #57abd5;
|
45 |
+
color: #ffffff;
|
46 |
+
}
|
47 |
+
|
48 |
+
.sm-radio-group input[type="radio"]:checked + label:before {
|
49 |
+
content: "";
|
50 |
+
display: inline-block;
|
51 |
+
color: inherit;
|
52 |
+
position: relative;
|
53 |
+
top: .285em;
|
54 |
+
margin-right: .45em;
|
55 |
+
height: .8em;
|
56 |
+
width: .55em;
|
57 |
+
border-right: 2px solid;
|
58 |
+
border-bottom: 2px solid;
|
59 |
+
-webkit-transform: translateY(-50%) rotate(45deg);
|
60 |
+
transform: translateY(-50%) rotate(45deg);
|
61 |
+
}
|
62 |
+
|
63 |
+
.sm-radio-group label {
|
64 |
+
display: -webkit-box;
|
65 |
+
display: -ms-flexbox;
|
66 |
+
display: flex;
|
67 |
+
-webkit-box-align: center;
|
68 |
+
-ms-flex-align: center;
|
69 |
+
align-items: center;
|
70 |
+
-webkit-box-pack: center;
|
71 |
+
-ms-flex-pack: center;
|
72 |
+
justify-content: center;
|
73 |
+
position: relative;
|
74 |
+
cursor: pointer;
|
75 |
+
-webkit-transition: all .25s ease;
|
76 |
+
transition: all .25s ease;
|
77 |
+
color: inherit;
|
78 |
+
}
|
79 |
+
|
80 |
+
.sm-radio-group label:hover {
|
81 |
+
color: #416b7e;
|
82 |
+
}
|
83 |
+
|
84 |
+
.sm-radio-group label:nth-of-type(2) {
|
85 |
+
border-left: 2px solid #57abd5;
|
86 |
+
border-right: 2px solid #57abd5;
|
87 |
+
}
|
88 |
+
|
89 |
+
[id="customize-control-sm_coloration_level_control"] .sm-radio-group {
|
90 |
+
display: -webkit-box;
|
91 |
+
display: -ms-flexbox;
|
92 |
+
display: flex;
|
93 |
+
-webkit-box-orient: horizontal;
|
94 |
+
-webkit-box-direction: reverse;
|
95 |
+
-ms-flex-direction: row-reverse;
|
96 |
+
flex-direction: row-reverse;
|
97 |
+
-ms-flex-wrap: nowrap;
|
98 |
+
flex-wrap: nowrap;
|
99 |
+
-webkit-box-align: stretch;
|
100 |
+
-ms-flex-align: stretch;
|
101 |
+
align-items: stretch;
|
102 |
+
-webkit-box-pack: start;
|
103 |
+
-ms-flex-pack: start;
|
104 |
+
justify-content: flex-start;
|
105 |
+
}
|
106 |
+
|
107 |
+
[id="customize-control-sm_coloration_level_control"] .sm-radio-group > * {
|
108 |
+
-webkit-box-flex: 0;
|
109 |
+
-ms-flex: 0 0 33.33%;
|
110 |
+
flex: 0 0 33.33%;
|
111 |
+
}
|
112 |
+
|
113 |
+
[id="customize-control-sm_coloration_level_control"] .sm-radio-group input[type="radio"]:last-of-type:checked + label {
|
114 |
+
background: -webkit-gradient(linear, left top, right top, from(#3DAAE0), to(#D557BE));
|
115 |
+
background: linear-gradient(90deg, #3DAAE0 0%, #D557BE 100%);
|
116 |
+
}
|
117 |
+
|
118 |
+
[id="customize-control-sm_coloration_level_control"] .sm-radio-group input[type="radio"]:nth-of-type(1):checked ~ label:last-of-type, [id="customize-control-sm_coloration_level_control"] .sm-radio-group input[type="radio"]:nth-of-type(2):checked ~ label:last-of-type {
|
119 |
+
margin-right: -33.33%;
|
120 |
+
}
|
121 |
+
|
122 |
+
[id="customize-control-sm_coloration_level_control"] .sm-radio-group label:nth-of-type(1) {
|
123 |
+
-webkit-box-ordinal-group: 5;
|
124 |
+
-ms-flex-order: 4;
|
125 |
+
order: 4;
|
126 |
+
}
|
127 |
+
|
128 |
+
[id="customize-control-sm_coloration_level_control"] .sm-radio-group label:nth-of-type(2) {
|
129 |
+
-webkit-box-ordinal-group: 4;
|
130 |
+
-ms-flex-order: 3;
|
131 |
+
order: 3;
|
132 |
+
border-left: 2px solid #57abd5;
|
133 |
+
border-right: 2px solid #57abd5;
|
134 |
+
}
|
135 |
+
|
136 |
+
[id="customize-control-sm_coloration_level_control"] .sm-radio-group label:nth-of-type(3) {
|
137 |
+
-webkit-box-ordinal-group: 3;
|
138 |
+
-ms-flex-order: 2;
|
139 |
+
order: 2;
|
140 |
+
}
|
141 |
+
|
142 |
+
[id="customize-control-sm_coloration_level_control"] .sm-radio-group label:nth-of-type(4) {
|
143 |
+
-webkit-box-ordinal-group: 2;
|
144 |
+
-ms-flex-order: 1;
|
145 |
+
order: 1;
|
146 |
+
border-left: 2px solid #57abd5;
|
147 |
+
}
|
148 |
+
|
149 |
+
[id="sub-accordion-section-sm_color_palettes_section"].sm-view-customize li.customize-control-sm_switch {
|
150 |
+
display: -webkit-box !important;
|
151 |
+
display: -ms-flexbox !important;
|
152 |
+
display: flex !important;
|
153 |
+
-webkit-box-align: center;
|
154 |
+
-ms-flex-align: center;
|
155 |
+
align-items: center;
|
156 |
+
-webkit-box-pack: justify;
|
157 |
+
-ms-flex-pack: justify;
|
158 |
+
justify-content: space-between;
|
159 |
+
padding-top: 42px;
|
160 |
+
padding-bottom: 42px;
|
161 |
+
}
|
162 |
+
|
163 |
+
[id="sub-accordion-section-sm_color_palettes_section"].sm-view-customize li.customize-control-sm_switch .customize-control-title, [id="sub-accordion-section-sm_color_palettes_section"].sm-view-customize li.customize-control-sm_switch .separator.label {
|
164 |
+
display: inline-block;
|
165 |
+
}
|
166 |
+
|
167 |
+
.sm-switch {
|
168 |
+
display: -webkit-box;
|
169 |
+
display: -ms-flexbox;
|
170 |
+
display: flex;
|
171 |
+
-ms-flex-wrap: nowrap;
|
172 |
+
flex-wrap: nowrap;
|
173 |
+
-webkit-box-align: stretch;
|
174 |
+
-ms-flex-align: stretch;
|
175 |
+
align-items: stretch;
|
176 |
+
-webkit-box-pack: start;
|
177 |
+
-ms-flex-pack: start;
|
178 |
+
justify-content: flex-start;
|
179 |
+
overflow: hidden;
|
180 |
+
position: relative;
|
181 |
+
height: 2.428em;
|
182 |
+
max-width: 5.5em;
|
183 |
+
border-radius: 999em;
|
184 |
+
color: #ffffff;
|
185 |
+
font-size: 14px;
|
186 |
+
-webkit-font-smoothing: antialiased;
|
187 |
+
font-weight: 600;
|
188 |
+
line-height: 1.142em;
|
189 |
+
z-index: 10;
|
190 |
+
}
|
191 |
+
|
192 |
+
.sm-switch input[type="radio"] {
|
193 |
+
display: none;
|
194 |
+
}
|
195 |
+
|
196 |
+
.sm-switch input[type="radio"] + label {
|
197 |
+
display: -webkit-box;
|
198 |
+
display: -ms-flexbox;
|
199 |
+
display: flex;
|
200 |
+
-webkit-box-align: center;
|
201 |
+
-ms-flex-align: center;
|
202 |
+
align-items: center;
|
203 |
+
-webkit-box-flex: 0;
|
204 |
+
-ms-flex: 0 0 100%;
|
205 |
+
flex: 0 0 100%;
|
206 |
+
}
|
207 |
+
|
208 |
+
.sm-switch input[type="radio"] + label, .sm-switch input[type="radio"] + label:after {
|
209 |
+
-webkit-transition: all 0.2s ease-out;
|
210 |
+
transition: all 0.2s ease-out;
|
211 |
+
}
|
212 |
+
|
213 |
+
.sm-switch input[type="radio"]:checked + label {
|
214 |
+
pointer-events: none;
|
215 |
+
}
|
216 |
+
|
217 |
+
.sm-switch input[type="radio"]:nth-of-type(1) + label {
|
218 |
+
padding-left: 1.214em;
|
219 |
+
}
|
220 |
+
|
221 |
+
.sm-switch input[type="radio"]:nth-of-type(1) + label:after {
|
222 |
+
content: "";
|
223 |
+
position: absolute;
|
224 |
+
top: 0;
|
225 |
+
right: 0;
|
226 |
+
bottom: 0;
|
227 |
+
left: 0;
|
228 |
+
background-color: #57abd5;
|
229 |
+
z-index: -1;
|
230 |
+
}
|
231 |
+
|
232 |
+
.sm-switch input[type="radio"]:nth-of-type(1):not(:checked) + label {
|
233 |
+
-webkit-transform: translateX(-100%) translateX(2.125em);
|
234 |
+
transform: translateX(-100%) translateX(2.125em);
|
235 |
+
}
|
236 |
+
|
237 |
+
.sm-switch input[type="radio"]:nth-of-type(1):not(:checked) + label:after {
|
238 |
+
background: #cccccc;
|
239 |
+
-webkit-transform: translateX(100%) translateX(-2.125em);
|
240 |
+
transform: translateX(100%) translateX(-2.125em);
|
241 |
+
}
|
242 |
+
|
243 |
+
.sm-switch input[type="radio"]:nth-of-type(1):not(:checked) + label ~ label {
|
244 |
+
-webkit-transform: translateX(-100%);
|
245 |
+
transform: translateX(-100%);
|
246 |
+
}
|
247 |
+
|
248 |
+
.sm-switch input[type="radio"]:nth-of-type(1):checked + label ~ label {
|
249 |
+
-webkit-transform: translateX(-2.4em);
|
250 |
+
transform: translateX(-2.4em);
|
251 |
+
}
|
252 |
+
|
253 |
+
.sm-switch input[type="radio"]:nth-of-type(1):checked + label ~ label:before {
|
254 |
+
-webkit-transform: translateX(-100%) translateX(2.125em);
|
255 |
+
transform: translateX(-100%) translateX(2.125em);
|
256 |
+
}
|
257 |
+
|
258 |
+
.sm-switch input[type="radio"]:nth-of-type(2) + label {
|
259 |
+
-webkit-box-orient: horizontal;
|
260 |
+
-webkit-box-direction: reverse;
|
261 |
+
-ms-flex-direction: row-reverse;
|
262 |
+
flex-direction: row-reverse;
|
263 |
+
padding-right: 1em;
|
264 |
+
}
|
265 |
+
|
266 |
+
.sm-switch input[type="radio"]:nth-of-type(2) + label:before {
|
267 |
+
content: "";
|
268 |
+
position: absolute;
|
269 |
+
top: 0;
|
270 |
+
right: 0;
|
271 |
+
bottom: 0;
|
272 |
+
left: 0;
|
273 |
+
}
|
274 |
+
|
275 |
+
.sm-switch input[type="radio"]:nth-of-type(2) + label:after {
|
276 |
+
content: "";
|
277 |
+
display: block;
|
278 |
+
height: 2.142em;
|
279 |
+
width: 2.142em;
|
280 |
+
margin-right: auto;
|
281 |
+
margin-left: 0.125em;
|
282 |
+
border-radius: 50%;
|
283 |
+
background-color: #ffffff;
|
284 |
+
-webkit-box-shadow: 1px 2px 2px 0 rgba(23, 21, 21, 0.15);
|
285 |
+
box-shadow: 1px 2px 2px 0 rgba(23, 21, 21, 0.15);
|
286 |
+
pointer-events: none;
|
287 |
+
}
|
288 |
+
|
289 |
+
.wp-full-overlay-sidebar *, .wp-full-overlay-sidebar *:before, .wp-full-overlay-sidebar *:after {
|
290 |
+
-webkit-box-sizing: border-box;
|
291 |
+
box-sizing: border-box;
|
292 |
+
}
|
293 |
+
|
294 |
+
.iris-picker,
|
295 |
+
.iris-picker * {
|
296 |
+
-webkit-box-sizing: content-box;
|
297 |
+
box-sizing: content-box;
|
298 |
+
}
|
299 |
+
|
300 |
+
.wp-full-overlay-sidebar-content .accordion-section-content {
|
301 |
+
overflow: visible;
|
302 |
+
}
|
303 |
+
|
304 |
+
.control-section:not(.control-section-themes) .customize-control {
|
305 |
+
padding: 0;
|
306 |
+
width: 100%;
|
307 |
+
min-height: initial;
|
308 |
+
}
|
309 |
+
|
310 |
+
#customize-header-actions #customize-save-button-wrapper {
|
311 |
+
margin-top: 7px;
|
312 |
+
}
|
313 |
+
|
314 |
+
.wp-full-overlay-footer .devices button {
|
315 |
+
float: left;
|
316 |
+
border-radius: 0;
|
317 |
+
}
|
318 |
+
|
319 |
+
.customize-controls-close {
|
320 |
+
width: 48px;
|
321 |
+
height: 44px;
|
322 |
+
color: #7da9c3;
|
323 |
+
background: #ffffff;
|
324 |
+
border-top: none;
|
325 |
+
border-right-color: #e0e8ef;
|
326 |
+
}
|
327 |
+
|
328 |
+
.customize-controls-close:focus, .customize-controls-close:hover {
|
329 |
+
background: #f5fcff;
|
330 |
+
}
|
331 |
+
|
332 |
+
.customize-controls-close:before {
|
333 |
+
top: 0px;
|
334 |
+
}
|
335 |
+
|
336 |
+
#customize-controls .customize-info {
|
337 |
+
border-bottom-color: #e0e8ef;
|
338 |
+
}
|
339 |
+
|
340 |
+
.customize-panel-back, .customize-section-back {
|
341 |
+
height: 74px;
|
342 |
+
color: #7da9c3;
|
343 |
+
border-right-color: #e0e8ef;
|
344 |
+
}
|
345 |
+
|
346 |
+
.customize-panel-back:hover, .customize-panel-back:focus, .customize-section-back:hover, .customize-section-back:focus {
|
347 |
+
border-left-color: #f5fcff;
|
348 |
+
background: #f5fcff;
|
349 |
+
}
|
350 |
+
|
351 |
+
#customize-theme-controls .theme * {
|
352 |
+
-webkit-box-sizing: content-box;
|
353 |
+
box-sizing: content-box;
|
354 |
+
}
|
355 |
+
|
356 |
+
#customize-theme-controls .accordion-section-content {
|
357 |
+
padding: 17px;
|
358 |
+
}
|
359 |
+
|
360 |
+
#customize-theme-controls .customize-section-title {
|
361 |
+
margin-top: -17px;
|
362 |
+
margin-right: -17px;
|
363 |
+
}
|
364 |
+
|
365 |
+
#customize-theme-controls #accordion-section-add_menu {
|
366 |
+
border-bottom: none;
|
367 |
+
}
|
368 |
+
|
369 |
+
#customize-theme-controls #accordion-section-add_menu .add-menu-toggle {
|
370 |
+
float: none;
|
371 |
+
}
|
372 |
+
|
373 |
+
#customize-theme-controls .customize-pane-child.open {
|
374 |
+
height: 100%;
|
375 |
+
}
|
376 |
+
|
377 |
+
#customize-controls .description {
|
378 |
+
font-size: 12px;
|
379 |
+
font-weight: 300;
|
380 |
+
font-style: normal;
|
381 |
+
line-height: 1.6;
|
382 |
+
color: #4d7b90;
|
383 |
+
text-indent: 0;
|
384 |
+
}
|
385 |
+
|
386 |
+
.customize-control-description {
|
387 |
+
margin-top: 6px;
|
388 |
+
}
|
389 |
+
|
390 |
+
.customize-control {
|
391 |
+
margin-bottom: 24px;
|
392 |
+
}
|
393 |
+
|
394 |
+
#accordion-section-themes + .control-section {
|
395 |
+
border-top: none;
|
396 |
+
}
|
397 |
+
|
398 |
+
#customize-controls .panel-meta.customize-info .accordion-section-title {
|
399 |
+
border-top: none;
|
400 |
+
height: 74px;
|
401 |
+
}
|
402 |
+
|
403 |
+
.button-controls:after {
|
404 |
+
content: " ";
|
405 |
+
display: table;
|
406 |
+
clear: both;
|
407 |
+
}
|
408 |
+
|
409 |
+
.wp-core-ui .button:not(.theme-details):not(.collapse-sidebar):not(.wp-color-result),
|
410 |
.wp-core-ui .button-primary,
|
411 |
+
.wp-core-ui .button-secondary {
|
412 |
+
width: auto;
|
413 |
+
padding-left: 15px;
|
414 |
+
padding-right: 15px;
|
415 |
+
font-weight: 400;
|
416 |
+
color: #F5FCFF;
|
417 |
+
text-shadow: none;
|
418 |
+
border: none;
|
419 |
+
background: #AED2E5;
|
420 |
+
-webkit-box-shadow: 0px 2px 0px 0px #8DBED7;
|
421 |
+
box-shadow: 0px 2px 0px 0px #8DBED7;
|
422 |
+
border-radius: 4px;
|
423 |
+
}
|
424 |
|
425 |
+
.wp-core-ui .button:not(.theme-details):not(.collapse-sidebar):not(.wp-color-result):hover,
|
|
|
426 |
.wp-core-ui .button-primary:hover,
|
427 |
+
.wp-core-ui .button-secondary:hover {
|
428 |
+
color: white;
|
429 |
+
text-shadow: none;
|
430 |
+
background: #98C6DD;
|
431 |
+
-webkit-box-shadow: 0px 2px 0px 0px #74A7C2;
|
432 |
+
box-shadow: 0px 2px 0px 0px #74A7C2;
|
433 |
+
}
|
434 |
+
|
435 |
+
.wp-core-ui #customize-header-actions .button-primary {
|
436 |
+
background: #73C5EE;
|
437 |
+
-webkit-box-shadow: 0px 2px 0px 0px #57ABD5;
|
438 |
+
box-shadow: 0px 2px 0px 0px #57ABD5;
|
439 |
+
}
|
440 |
+
|
441 |
+
.wp-core-ui #customize-header-actions .button-primary:hover {
|
442 |
+
background: #58B0DD;
|
443 |
+
-webkit-box-shadow: 0px 2px 0px 0px #3F8AAF;
|
444 |
+
box-shadow: 0px 2px 0px 0px #3F8AAF;
|
445 |
+
}
|
446 |
+
|
447 |
+
.wp-core-ui #customize-header-actions .button-primary.has-next-sibling {
|
448 |
+
border-right: 1px solid #57ABD5;
|
449 |
+
}
|
450 |
+
|
451 |
+
.wp-core-ui #customize-header-actions .button-primary:disabled {
|
452 |
+
color: white !important;
|
453 |
+
background: #AED2E5 !important;
|
454 |
+
opacity: 0.7;
|
455 |
+
-webkit-box-shadow: 0px 2px 0px 0px #8db5ca !important;
|
456 |
+
box-shadow: 0px 2px 0px 0px #8db5ca !important;
|
457 |
+
}
|
458 |
+
|
459 |
+
.wp-core-ui #customize-header-actions .button-primary:disabled.has-next-sibling {
|
460 |
+
border-right: none;
|
461 |
+
}
|
462 |
+
|
463 |
+
.wp-core-ui .reset_section,
|
464 |
+
.wp-core-ui .reset_panel {
|
465 |
+
width: 100%;
|
466 |
+
height: 4em;
|
467 |
+
display: block;
|
468 |
+
margin: 0px 0 25px;
|
469 |
+
}
|
470 |
+
|
471 |
+
.wp-core-ui .reset_panel {
|
472 |
+
margin-top: 10px;
|
473 |
+
}
|
474 |
+
|
475 |
+
.separator.label {
|
476 |
+
display: block;
|
477 |
+
font-size: 14px;
|
478 |
+
line-height: 24px;
|
479 |
+
font-weight: 500;
|
480 |
+
}
|
481 |
+
|
482 |
+
.customize-control-title, .separator.label {
|
483 |
+
color: #2A3B44;
|
484 |
+
}
|
485 |
+
|
486 |
+
.separator.section:before, .separator.sub-section:before {
|
487 |
+
content: "";
|
488 |
+
position: absolute;
|
489 |
+
top: 0;
|
490 |
+
bottom: 0;
|
491 |
+
left: -18px;
|
492 |
+
right: -18px;
|
493 |
+
z-index: -1;
|
494 |
+
}
|
495 |
+
|
496 |
+
.separator.label {
|
497 |
+
font-weight: 500;
|
498 |
+
}
|
499 |
+
|
500 |
+
.separator.large {
|
501 |
+
margin-top: 12px;
|
502 |
+
font-size: 16px;
|
503 |
+
color: #39474D;
|
504 |
+
}
|
505 |
+
|
506 |
+
.separator.section {
|
507 |
+
position: relative;
|
508 |
+
padding: 14px 0;
|
509 |
+
margin-bottom: 0;
|
510 |
+
background: none;
|
511 |
+
border: none;
|
512 |
+
}
|
513 |
+
|
514 |
+
.separator.section[id*="layout"] {
|
515 |
+
margin-top: 0;
|
516 |
+
}
|
517 |
+
|
518 |
+
.separator.section[id*="layout"]:before {
|
519 |
+
border: none;
|
520 |
+
}
|
521 |
+
|
522 |
+
.separator.section:before {
|
523 |
+
border: 1px solid #e0e8ef;
|
524 |
+
background-color: #ffffff;
|
525 |
+
-webkit-box-shadow: 0px 1px 0px 0px #DFE8EF;
|
526 |
+
box-shadow: 0px 1px 0px 0px #DFE8EF;
|
527 |
+
}
|
528 |
+
|
529 |
+
.separator.sub-section {
|
530 |
+
position: relative;
|
531 |
+
padding: 12px 0;
|
532 |
+
}
|
533 |
+
|
534 |
+
.separator.sub-section:before {
|
535 |
+
border-top: 1px solid #e0e8ef;
|
536 |
+
border-bottom: 1px solid #e0e8ef;
|
537 |
+
background-color: #f6fbff;
|
538 |
+
}
|
539 |
+
|
540 |
+
.separator.sub-section + span {
|
541 |
+
margin-top: 20px;
|
542 |
+
font-style: normal;
|
543 |
+
}
|
544 |
+
|
545 |
+
.section-navigation-wrapper {
|
546 |
+
position: relative;
|
547 |
+
height: 43px;
|
548 |
+
margin: -15px -12px 0 -12px;
|
549 |
+
margin-right: -17px;
|
550 |
+
margin-left: -17px;
|
551 |
+
}
|
552 |
+
|
553 |
+
.section-navigation {
|
554 |
+
display: -webkit-box;
|
555 |
+
display: -ms-flexbox;
|
556 |
+
display: flex;
|
557 |
+
margin-top: -1px;
|
558 |
+
clear: both;
|
559 |
+
border-top: 1px solid #e0e8ef;
|
560 |
+
}
|
561 |
+
|
562 |
+
.section-navigation a {
|
563 |
+
-webkit-box-flex: 1;
|
564 |
+
-ms-flex: 1 1 auto;
|
565 |
+
flex: 1 1 auto;
|
566 |
+
display: block;
|
567 |
+
padding: 12px 0;
|
568 |
+
color: #3b484e;
|
569 |
+
background-color: #ffffff;
|
570 |
+
border-bottom: 1px solid #e0e8ef;
|
571 |
+
border-right: 1px solid #e0e8ef;
|
572 |
+
text-align: center;
|
573 |
+
text-decoration: none;
|
574 |
+
-webkit-transition: background-color .15s ease-in-out;
|
575 |
+
transition: background-color .15s ease-in-out;
|
576 |
+
}
|
577 |
+
|
578 |
+
.section-navigation a:last-child {
|
579 |
+
border-right: 0;
|
580 |
+
}
|
581 |
+
|
582 |
+
#customize-controls .customize-info.is-sticky.is-sticky,
|
583 |
+
#customize-controls .customize-section-title.is-sticky.is-sticky {
|
584 |
+
top: 40px;
|
585 |
+
}
|
586 |
+
|
587 |
+
#customize-controls .customize-info.is-in-view.is-in-view,
|
588 |
+
#customize-controls .customize-section-title.is-in-view.is-in-view {
|
589 |
+
-webkit-box-shadow: none;
|
590 |
+
box-shadow: none;
|
591 |
+
}
|
592 |
+
|
593 |
+
#customize-controls .has-nav .customize-info,
|
594 |
+
#customize-controls .has-nav .customize-section-title {
|
595 |
+
margin-right: -12px;
|
596 |
+
}
|
597 |
+
|
598 |
+
#customize-controls .customize-section-title.customize-section-title {
|
599 |
+
border-bottom: 0;
|
600 |
+
}
|
601 |
+
|
602 |
+
.customize-section-description-container.section-meta.has-nav {
|
603 |
+
margin-bottom: 0;
|
604 |
+
}
|
605 |
+
|
606 |
+
.font-options__wrapper {
|
607 |
+
position: relative;
|
608 |
+
}
|
609 |
+
|
610 |
+
.font-options__wrapper:after {
|
611 |
+
content: "";
|
612 |
+
position: absolute;
|
613 |
+
top: 90%;
|
614 |
+
left: 0;
|
615 |
+
right: 0;
|
616 |
+
z-index: 0;
|
617 |
+
display: block;
|
618 |
+
height: 30px;
|
619 |
+
}
|
620 |
+
|
621 |
+
.font-options__head {
|
622 |
+
display: -webkit-box;
|
623 |
+
display: -ms-flexbox;
|
624 |
+
display: flex;
|
625 |
+
-webkit-box-pack: justify;
|
626 |
+
-ms-flex-pack: justify;
|
627 |
+
justify-content: space-between;
|
628 |
+
}
|
629 |
+
|
630 |
+
.font-options__head.font-options__head {
|
631 |
+
-webkit-appearance: none;
|
632 |
+
text-overflow: ellipsis;
|
633 |
+
white-space: nowrap;
|
634 |
+
}
|
635 |
+
|
636 |
+
.font-options__font-title {
|
637 |
+
margin-right: 26px;
|
638 |
+
margin-left: 10px;
|
639 |
+
font-size: 12px;
|
640 |
+
line-height: 20px;
|
641 |
+
font-weight: 300;
|
642 |
+
color: #98c6dd;
|
643 |
+
text-overflow: ellipsis;
|
644 |
+
overflow: hidden;
|
645 |
+
white-space: nowrap;
|
646 |
+
}
|
647 |
+
|
648 |
+
.font-options__options-list {
|
649 |
+
position: absolute;
|
650 |
+
top: calc(100% + 6px);
|
651 |
+
left: -6px;
|
652 |
+
right: -6px;
|
653 |
+
z-index: 2;
|
654 |
+
display: block;
|
655 |
+
padding: 10px;
|
656 |
+
border: 1px solid #dfe8ef;
|
657 |
+
border-radius: 5px;
|
658 |
+
background-color: #ffffff;
|
659 |
+
opacity: 0;
|
660 |
+
display: none;
|
661 |
+
-webkit-transition: opacity .15s linear;
|
662 |
+
transition: opacity .15s linear;
|
663 |
+
}
|
664 |
+
|
665 |
+
.font-options__options-list:last-child {
|
666 |
+
margin-bottom: 0;
|
667 |
+
}
|
668 |
+
|
669 |
+
.font-options__options-list:before, .font-options__options-list:after {
|
670 |
+
content: "";
|
671 |
+
position: absolute;
|
672 |
+
top: -20px;
|
673 |
+
right: 25px;
|
674 |
+
height: 0;
|
675 |
+
width: 0;
|
676 |
+
border: solid transparent;
|
677 |
+
z-index: 10;
|
678 |
+
}
|
679 |
+
|
680 |
+
.font-options__options-list:before {
|
681 |
+
border-bottom-color: white;
|
682 |
+
border-width: 10px;
|
683 |
+
z-index: 11;
|
684 |
+
}
|
685 |
+
|
686 |
+
.font-options__options-list:after {
|
687 |
+
border-bottom-color: rgba(0, 0, 0, 0.075);
|
688 |
+
border-width: 12px;
|
689 |
+
top: -24px;
|
690 |
+
right: 23px;
|
691 |
+
}
|
692 |
+
|
693 |
+
.customize-control-color .wp-picker-container .wp-picker-open + .wp-picker-input-wrap:after {
|
694 |
+
content: "";
|
695 |
+
position: absolute;
|
696 |
+
bottom: 100%;
|
697 |
+
right: 12px;
|
698 |
+
border-collapse: separate;
|
699 |
+
width: 0;
|
700 |
+
height: 0;
|
701 |
+
border-width: 0 9px 9px 9px;
|
702 |
+
border-style: solid;
|
703 |
+
border-color: transparent transparent #fff transparent;
|
704 |
+
}
|
705 |
+
|
706 |
+
.font-options__head, .wp-full-overlay-sidebar-content .customize-control input[type=text]:not(#_customize-input-wpcom_custom_css_content_width_control):not(.wp-color-picker),
|
707 |
.wp-full-overlay-sidebar-content .customize-control input[type=checkbox],
|
708 |
.wp-full-overlay-sidebar-content .customize-control input[type=password],
|
709 |
.wp-full-overlay-sidebar-content .customize-control input[type=color],
|
721 |
.wp-full-overlay-sidebar-content .customize-control input[type=search],
|
722 |
.wp-full-overlay-sidebar-content .customize-control select,
|
723 |
.wp-full-overlay-sidebar-content .customize-control textarea,
|
724 |
+
.wp-full-overlay-sidebar-content .customize-control input.range-value[type="number"], ul.font-options__options-list .select2-container .select2-selection--single, #customize-theme-controls .select2-container .select2-selection--multiple {
|
725 |
+
width: 100%;
|
726 |
+
height: 44px;
|
727 |
+
padding: 10px 14px;
|
728 |
+
background: #FFFFFF;
|
729 |
+
border: 2px solid #B8DAEB;
|
730 |
+
border-radius: 4px;
|
731 |
+
font-size: 14px;
|
732 |
+
line-height: 1.5;
|
733 |
+
color: #416B7E;
|
734 |
+
outline: 0;
|
735 |
+
}
|
736 |
+
|
737 |
+
.font-options__head:focus, .wp-full-overlay-sidebar-content .customize-control input:focus[type=text]:not(#_customize-input-wpcom_custom_css_content_width_control):not(.wp-color-picker),
|
738 |
+
.wp-full-overlay-sidebar-content .customize-control input:focus[type=checkbox],
|
739 |
+
.wp-full-overlay-sidebar-content .customize-control input:focus[type=password],
|
740 |
+
.wp-full-overlay-sidebar-content .customize-control input:focus[type=color],
|
741 |
+
.wp-full-overlay-sidebar-content .customize-control input:focus[type=date],
|
742 |
+
.wp-full-overlay-sidebar-content .customize-control input:focus[type=datetime],
|
743 |
+
.wp-full-overlay-sidebar-content .customize-control input:focus[type=datetime-local],
|
744 |
+
.wp-full-overlay-sidebar-content .customize-control input:focus[type=email],
|
745 |
+
.wp-full-overlay-sidebar-content .customize-control input:focus[type=month],
|
746 |
+
.wp-full-overlay-sidebar-content .customize-control input:focus[type=number],
|
747 |
+
.wp-full-overlay-sidebar-content .customize-control input:focus[type=radio],
|
748 |
+
.wp-full-overlay-sidebar-content .customize-control input:focus[type=tel],
|
749 |
+
.wp-full-overlay-sidebar-content .customize-control input:focus[type=time],
|
750 |
+
.wp-full-overlay-sidebar-content .customize-control input:focus[type=url],
|
751 |
+
.wp-full-overlay-sidebar-content .customize-control input:focus[type=week],
|
752 |
+
.wp-full-overlay-sidebar-content .customize-control input:focus[type=search],
|
753 |
.wp-full-overlay-sidebar-content .customize-control select:focus,
|
754 |
.wp-full-overlay-sidebar-content .customize-control textarea:focus,
|
755 |
+
.wp-full-overlay-sidebar-content .customize-control input.range-value:focus[type="number"], ul.font-options__options-list .select2-container .select2-selection--single:focus, #customize-theme-controls .select2-container .select2-selection--multiple:focus {
|
756 |
+
border-color: #73C5EE;
|
757 |
+
-webkit-box-shadow: none;
|
758 |
+
box-shadow: none;
|
759 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
760 |
|
761 |
+
.font-options__head,
|
762 |
+
.wp-full-overlay-sidebar-content .customize-control select, ul.font-options__options-list .select2-container .select2-selection--single, #customize-theme-controls .select2-container .select2-selection--multiple {
|
763 |
+
width: 100%;
|
764 |
+
-webkit-appearance: button;
|
765 |
+
-moz-appearance: none;
|
766 |
+
font-weight: 600;
|
767 |
+
background: white url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE1cHgiIGhlaWdodD0iOXB4IiB2aWV3Qm94PSIwIDAgMTUgOSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJDdXN0b21pZnktQ29weS0yIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU2LjAwMDAwMCwgLTM4Ni4wMDAwMDApIiBmaWxsPSIjOThDNkRFIj4KICAgICAgICAgICAgPGcgaWQ9IkhlYWRlciIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIxLjAwMDAwMCwgNDcuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0iQ29udGVudCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAuMDAwMDAwLCA3NS4wMDAwMDApIj4KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iVGl0bGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI2LjAwMDAwMCwgMjE5LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iRmllbGQtLS1TZWxlY3QtQ29weSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iU2VsZWN0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwgMjcuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTI1NC40ODEyLDE4IEwyNTYsMTkuNTE0IEwyNDguNSwyNyBMMjQxLDE5LjUxNCBMMjQyLjUxODgsMTggTDI0OC41LDIzLjk2NzIgTDI1NC40ODEyLDE4IFoiIGlkPSJQYWdlLTEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+) no-repeat;
|
768 |
+
background-position: right 16px top 16px;
|
769 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
770 |
|
771 |
+
.font-options__head[multiple], .wp-full-overlay-sidebar-content .customize-control select[multiple], ul.font-options__options-list .select2-container .select2-selection--single[multiple], #customize-theme-controls .select2-container .select2-selection--multiple[multiple] {
|
772 |
+
background: white;
|
773 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
774 |
|
775 |
+
.wp-full-overlay-sidebar-content .customize-control input[type=text],
|
776 |
+
.wp-full-overlay-sidebar-content .customize-control textarea {
|
777 |
+
font-size: 13px;
|
778 |
+
}
|
779 |
|
780 |
+
.wp-full-overlay-sidebar-content .customize-control textarea {
|
781 |
+
height: auto;
|
782 |
+
}
|
783 |
|
784 |
+
.wp-full-overlay-sidebar-content .customize-control input[type=checkbox],
|
785 |
+
.wp-full-overlay-sidebar-content .customize-control input[type=radio] {
|
786 |
+
width: 22px;
|
787 |
+
height: 22px;
|
788 |
+
}
|
789 |
|
790 |
+
.wp-full-overlay-sidebar-content .customize-control input[type=checkbox]:checked,
|
791 |
+
.wp-full-overlay-sidebar-content .customize-control input[type=radio]:checked {
|
792 |
+
background: #73C5EE;
|
793 |
+
border-color: #5AB9E8;
|
794 |
+
}
|
795 |
|
796 |
+
.wp-full-overlay-sidebar-content .customize-control input[type=checkbox]:checked:before,
|
797 |
+
.wp-full-overlay-sidebar-content .customize-control input[type=radio]:checked:before {
|
798 |
+
color: white;
|
799 |
+
margin: -1px 0 0 -2px;
|
800 |
+
}
|
801 |
|
802 |
+
.wp-full-overlay-sidebar-content .customize-control .awesome_preset input[type=radio]:checked {
|
803 |
+
background: transparent;
|
804 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
805 |
|
806 |
+
.wp-full-overlay-sidebar-content .customize-control.customize-control-checkbox:not(#customize-control-jetpack_css_mode_control) label:not(:only-of-type),
|
807 |
+
.wp-full-overlay-sidebar-content .customize-control.customize-control-checkbox:not(#customize-control-jetpack_css_mode_control) > .customize-inside-control-row:not(:only-of-type), .wp-full-overlay-sidebar-content .customize-control.customize-control-radio label:not(:only-of-type),
|
808 |
+
.wp-full-overlay-sidebar-content .customize-control.customize-control-radio > .customize-inside-control-row:not(:only-of-type) {
|
809 |
+
margin-left: 30px;
|
810 |
+
padding-top: 0;
|
811 |
+
padding-bottom: 0;
|
812 |
+
display: inline-block;
|
813 |
+
width: calc(49% - 30px);
|
814 |
+
text-indent: -6px;
|
815 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
816 |
|
817 |
+
.wp-full-overlay-sidebar-content .customize-control.customize-control-checkbox:not(#customize-control-jetpack_css_mode_control) label, .wp-full-overlay-sidebar-content .customize-control.customize-control-radio label {
|
818 |
+
color: #416B7E;
|
819 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
820 |
|
821 |
+
[id*="divider"] + .wp-full-overlay-sidebar-content .customize-control.customize-control-checkbox:not(#customize-control-jetpack_css_mode_control), [id*="divider"] + .wp-full-overlay-sidebar-content .customize-control.customize-control-radio {
|
822 |
+
margin-top: 0;
|
823 |
+
}
|
824 |
+
|
825 |
+
.wp-full-overlay-sidebar-content .customize-control input[type=radio] {
|
826 |
+
border-radius: 50%;
|
827 |
+
}
|
828 |
+
|
829 |
+
.wp-full-overlay-sidebar-content .customize-control input[type=radio]:checked:before {
|
830 |
+
content: none;
|
831 |
+
}
|
832 |
+
|
833 |
+
.customize-control-html + .wp-full-overlay-sidebar-content .customize-control.customize-control-checkbox {
|
834 |
+
margin-top: -24px;
|
835 |
+
}
|
836 |
+
|
837 |
+
.wp-full-overlay-sidebar-content .customize-control.customize-control-radio label,
|
838 |
+
.wp-full-overlay-sidebar-content .customize-control.customize-control-radio .customize-inside-control-row {
|
839 |
+
margin-top: 12px;
|
840 |
+
}
|
841 |
+
|
842 |
+
.wp-full-overlay-sidebar-content .customize-control.customize-control-radio#customize-control-changeset_status .customize-inside-control-row {
|
843 |
+
margin-top: 0;
|
844 |
+
text-indent: 0;
|
845 |
+
}
|
846 |
+
|
847 |
+
.wp-full-overlay-sidebar-content .customize-control input[type="range"] {
|
848 |
+
width: 65%;
|
849 |
+
}
|
850 |
+
|
851 |
+
.wp-full-overlay-sidebar-content .customize-control input[type="range"] {
|
852 |
+
position: relative;
|
853 |
+
-webkit-appearance: none;
|
854 |
+
width: calc(100% - 55px);
|
855 |
+
height: 22px;
|
856 |
+
overflow: hidden;
|
857 |
+
outline: none;
|
858 |
+
background: none;
|
859 |
+
}
|
860 |
+
|
861 |
+
.wp-full-overlay-sidebar-content .customize-control input[type="range"]:before {
|
862 |
+
content: " ";
|
863 |
+
position: absolute;
|
864 |
+
top: 8px;
|
865 |
+
left: 0;
|
866 |
+
height: 6px;
|
867 |
+
width: 100%;
|
868 |
+
background: #DFE8EF;
|
869 |
+
-webkit-box-shadow: inset 0px 1px 3px 0px rgba(0, 0, 0, 0.3);
|
870 |
+
box-shadow: inset 0px 1px 3px 0px rgba(0, 0, 0, 0.3);
|
871 |
+
border-radius: 10px;
|
872 |
+
}
|
873 |
+
|
874 |
+
.wp-full-overlay-sidebar-content .customize-control input[type="range"]::-webkit-slider-thumb {
|
875 |
+
-webkit-appearance: none;
|
876 |
+
width: 22px;
|
877 |
+
height: 22px;
|
878 |
+
background: #27ae60;
|
879 |
+
position: relative;
|
880 |
+
z-index: 3;
|
881 |
+
background: #FFFFFF;
|
882 |
+
border: 2px solid #B8DAEB;
|
883 |
+
border-radius: 4px;
|
884 |
+
}
|
885 |
+
|
886 |
+
.wp-full-overlay-sidebar-content .customize-control input[type="range"]::-webkit-slider-thumb:before {
|
887 |
+
content: "..";
|
888 |
+
position: absolute;
|
889 |
+
left: 5px;
|
890 |
+
top: -5px;
|
891 |
+
color: #B8DAEB;
|
892 |
+
font-size: 1em;
|
893 |
+
letter-spacing: 1px;
|
894 |
+
}
|
895 |
+
|
896 |
+
.wp-full-overlay-sidebar-content .customize-control input[type="range"]::-webkit-slider-thumb:after {
|
897 |
+
content: " ";
|
898 |
+
width: calc(100% - 55px);
|
899 |
+
height: 6px;
|
900 |
+
position: absolute;
|
901 |
+
z-index: 1;
|
902 |
+
right: 20px;
|
903 |
+
top: 6px;
|
904 |
+
background: #73C5EE;
|
905 |
+
}
|
906 |
+
|
907 |
+
.wp-full-overlay-sidebar-content .customize-control input[type="number"].range-value {
|
908 |
+
min-width: 40px;
|
909 |
+
max-width: 80px;
|
910 |
+
width: auto;
|
911 |
+
height: 30px;
|
912 |
+
top: -5px;
|
913 |
+
float: right;
|
914 |
+
padding: 4px 0px 5px 0px;
|
915 |
+
margin-left: 10px;
|
916 |
+
font-size: 13px;
|
917 |
+
line-height: 1;
|
918 |
+
text-align: center;
|
919 |
+
}
|
920 |
+
|
921 |
+
.wp-full-overlay-sidebar-content .customize-control input[type=number]::-webkit-inner-spin-button,
|
922 |
+
.wp-full-overlay-sidebar-content .customize-control input[type=number]::-webkit-outer-spin-button {
|
923 |
+
-webkit-appearance: none;
|
924 |
+
margin: 0;
|
925 |
+
}
|
926 |
+
|
927 |
+
.customize-control-color {
|
928 |
+
display: block;
|
929 |
+
}
|
930 |
+
|
931 |
+
.customize-control-color .customize-control-title, .customize-control-color .separator.label {
|
932 |
+
float: left;
|
933 |
+
}
|
934 |
+
|
935 |
+
.customize-control-color .wp-picker-container {
|
936 |
+
position: relative;
|
937 |
+
float: right;
|
938 |
+
top: -3px;
|
939 |
+
}
|
940 |
+
|
941 |
+
.customize-control-color .wp-picker-container .wp-picker-holder {
|
942 |
+
position: relative;
|
943 |
+
}
|
944 |
+
|
945 |
+
.customize-control-color .wp-picker-container .wp-color-result,
|
946 |
+
.customize-control-color .wp-picker-container .wp-color-result.button {
|
947 |
+
top: 0;
|
948 |
+
height: 30px;
|
949 |
+
width: 40px;
|
950 |
+
margin: 0;
|
951 |
+
padding: 0;
|
952 |
+
border-radius: 4px;
|
953 |
+
background: #2ECC71;
|
954 |
+
border: 2px solid #B8DAEB;
|
955 |
+
-webkit-box-shadow: none;
|
956 |
+
box-shadow: none;
|
957 |
+
}
|
958 |
+
|
959 |
+
.customize-control-color .wp-picker-container .wp-color-result:after,
|
960 |
+
.customize-control-color .wp-picker-container .wp-color-result .wp-color-result-text,
|
961 |
+
.customize-control-color .wp-picker-container .wp-color-result.button:after,
|
962 |
+
.customize-control-color .wp-picker-container .wp-color-result.button .wp-color-result-text {
|
963 |
+
display: none;
|
964 |
+
}
|
965 |
+
|
966 |
+
.customize-control-color .wp-picker-container .iris-picker {
|
967 |
+
position: absolute;
|
968 |
+
top: 40px;
|
969 |
+
right: 0;
|
970 |
+
z-index: 1000;
|
971 |
+
width: 275px !important;
|
972 |
+
border-top: none;
|
973 |
+
border-color: #DFDFDE;
|
974 |
+
border-radius: 0 0 3px 3px;
|
975 |
+
border: none;
|
976 |
+
background: white;
|
977 |
+
}
|
978 |
+
|
979 |
+
.customize-control-color .wp-picker-container .iris-picker, .customize-control-color .wp-picker-container .iris-picker * {
|
980 |
+
-webkit-box-sizing: content-box;
|
981 |
+
box-sizing: content-box;
|
982 |
+
}
|
983 |
+
|
984 |
+
.customize-control-color .wp-picker-container .iris-picker .iris-square {
|
985 |
+
width: 215px !important;
|
986 |
+
height: 173px !important;
|
987 |
+
margin-right: 0;
|
988 |
+
}
|
989 |
+
|
990 |
+
.customize-control-color .wp-picker-container .iris-picker .iris-strip {
|
991 |
+
float: right;
|
992 |
+
-webkit-box-shadow: rgba(0, 0, 0, 0.4) 0 1px 1px inset;
|
993 |
+
box-shadow: rgba(0, 0, 0, 0.4) 0 1px 1px inset;
|
994 |
+
}
|
995 |
+
|
996 |
+
.customize-control-color .wp-picker-container .iris-picker .iris-strip .ui-slider-handle {
|
997 |
+
border-color: #aaa !important;
|
998 |
+
opacity: 1;
|
999 |
+
-webkit-box-shadow: none;
|
1000 |
+
box-shadow: none;
|
1001 |
+
}
|
1002 |
+
|
1003 |
+
.customize-control-color .wp-picker-container .iris-picker .iris-palette {
|
1004 |
+
width: 24px !important;
|
1005 |
+
height: 24px !important;
|
1006 |
+
border-radius: 50px;
|
1007 |
+
-webkit-box-shadow: rgba(0, 0, 0, 0.4) 0 1px 1px inset;
|
1008 |
+
box-shadow: rgba(0, 0, 0, 0.4) 0 1px 1px inset;
|
1009 |
+
}
|
1010 |
+
|
1011 |
+
.customize-control-color .wp-picker-container .wp-picker-open + .wp-picker-input-wrap {
|
1012 |
+
position: absolute;
|
1013 |
+
z-index: 1000;
|
1014 |
+
top: 35px;
|
1015 |
+
right: 0;
|
1016 |
+
width: 275px;
|
1017 |
+
padding: 9px 12px;
|
1018 |
+
background: white;
|
1019 |
+
border: none;
|
1020 |
+
border-radius: 3px 3px 0 0;
|
1021 |
+
}
|
1022 |
+
|
1023 |
+
.customize-control-color .wp-picker-container .wp-picker-open + .wp-picker-input-wrap input.wp-color-picker {
|
1024 |
+
float: left;
|
1025 |
+
width: 100px;
|
1026 |
+
font-size: 13px;
|
1027 |
+
text-align: left;
|
1028 |
+
margin: 0;
|
1029 |
+
padding: 6px 12px;
|
1030 |
+
height: auto;
|
1031 |
+
}
|
1032 |
+
|
1033 |
+
.customize-control-color .wp-picker-container .wp-picker-open + .wp-picker-input-wrap input.button {
|
1034 |
+
float: right;
|
1035 |
+
padding: 4px 12px;
|
1036 |
+
height: 30px;
|
1037 |
+
}
|
1038 |
+
|
1039 |
+
.customize-control-font:last-child {
|
1040 |
+
margin-bottom: 150px;
|
1041 |
+
}
|
1042 |
+
|
1043 |
+
#accordion-section-live_css_edit_section .customize-section-title {
|
1044 |
+
margin-top: -13px;
|
1045 |
+
border-bottom: 1px solid #ddd;
|
1046 |
+
}
|
1047 |
+
|
1048 |
+
#accordion-section-live_css_edit_section #css_editor {
|
1049 |
+
top: 70px;
|
1050 |
+
border-top: 10px solid white;
|
1051 |
+
overflow: visible;
|
1052 |
+
}
|
1053 |
+
|
1054 |
+
#accordion-section-live_css_edit_section #css_editor:before {
|
1055 |
+
content: "";
|
1056 |
+
width: 48px;
|
1057 |
+
height: 10px;
|
1058 |
+
display: block;
|
1059 |
+
background: #e8e8e8;
|
1060 |
+
top: -10px;
|
1061 |
+
position: absolute;
|
1062 |
+
z-index: 10000000;
|
1063 |
+
left: 0;
|
1064 |
+
}
|
1065 |
+
|
1066 |
+
#accordion-section-live_css_edit_section .ace_scroller {
|
1067 |
+
padding-left: 10px;
|
1068 |
+
}
|
1069 |
+
|
1070 |
+
.wp-full-overlay.editor_opened {
|
1071 |
+
margin-left: 500px;
|
1072 |
+
}
|
1073 |
+
|
1074 |
+
.wp-full-overlay.editor_opened #customize-controls {
|
1075 |
+
width: 500px;
|
1076 |
+
}
|
1077 |
+
|
1078 |
+
.wp-full-overlay.editor_opened.collapsed #customize-controls {
|
1079 |
+
width: 300px;
|
1080 |
+
}
|
1081 |
+
|
1082 |
+
.customize-control-media .current,
|
1083 |
+
.customize-control-site_icon .current,
|
1084 |
+
li#customize-control-site_logo .current {
|
1085 |
+
margin-bottom: 10px;
|
1086 |
+
min-height: 44px;
|
1087 |
+
background: #F5FCFF;
|
1088 |
+
border: 2px solid #B8DAEB;
|
1089 |
+
border-radius: 4px;
|
1090 |
+
}
|
1091 |
+
|
1092 |
+
.customize-control-media .current .container, .customize-control-media .current span,
|
1093 |
+
.customize-control-site_icon .current .container,
|
1094 |
+
.customize-control-site_icon .current span,
|
1095 |
+
li#customize-control-site_logo .current .container,
|
1096 |
+
li#customize-control-site_logo .current span {
|
1097 |
+
border: none;
|
1098 |
+
}
|
1099 |
+
|
1100 |
+
.customize-control-media .inner, .customize-control-media .current span,
|
1101 |
+
.customize-control-site_icon .inner,
|
1102 |
+
.customize-control-site_icon .current span,
|
1103 |
+
li#customize-control-site_logo .inner,
|
1104 |
+
li#customize-control-site_logo .current span {
|
1105 |
+
font-size: 13px;
|
1106 |
+
color: #98C6DD;
|
1107 |
+
}
|
1108 |
+
|
1109 |
+
.customize-control-media .inner,
|
1110 |
+
.customize-control-site_icon .inner,
|
1111 |
+
li#customize-control-site_logo .inner {
|
1112 |
+
line-height: 1.4;
|
1113 |
+
}
|
1114 |
+
|
1115 |
+
.customize-control-media .thumbnail-image,
|
1116 |
+
.customize-control-site_icon .thumbnail-image,
|
1117 |
+
li#customize-control-site_logo .thumbnail-image {
|
1118 |
+
padding: 14px;
|
1119 |
+
text-align: center;
|
1120 |
+
}
|
1121 |
+
|
1122 |
+
.customize-control-media .thumbnail-image img,
|
1123 |
+
.customize-control-site_icon .thumbnail-image img,
|
1124 |
+
li#customize-control-site_logo .thumbnail-image img {
|
1125 |
+
width: auto;
|
1126 |
+
}
|
1127 |
+
|
1128 |
+
.customize-control-media .actions,
|
1129 |
+
.customize-control-site_icon .actions,
|
1130 |
+
li#customize-control-site_logo .actions {
|
1131 |
+
margin-bottom: 0;
|
1132 |
+
}
|
1133 |
+
|
1134 |
+
.customize-control-typography select, .customize-control-typography select {
|
1135 |
+
margin-bottom: 10px;
|
1136 |
+
}
|
1137 |
+
|
1138 |
+
.customize-control-typography .description, .customize-control-typography .description {
|
1139 |
+
margin-top: -3px;
|
1140 |
+
}
|
1141 |
+
|
1142 |
+
.customize-control-typography ul li, .customize-control-typography ul li {
|
1143 |
+
width: 100%;
|
1144 |
+
margin: 0;
|
1145 |
+
}
|
1146 |
+
|
1147 |
+
.default-preset-button {
|
1148 |
+
background-color: #F5F6F6;
|
1149 |
+
float: right;
|
1150 |
+
padding: 1px 8px;
|
1151 |
+
border-radius: 3px;
|
1152 |
+
border: 1px solid #CBCBCB;
|
1153 |
+
margin-right: 4px;
|
1154 |
+
font-family: "Open Sans",sans-serif;
|
1155 |
+
font-size: 13px;
|
1156 |
+
}
|
1157 |
+
|
1158 |
+
.customize-control-preset .description {
|
1159 |
+
margin-right: 5px;
|
1160 |
+
font-style: normal;
|
1161 |
+
}
|
1162 |
+
|
1163 |
+
.customify_preset.radio_buttons .customify_radio_button {
|
1164 |
+
border: none;
|
1165 |
+
display: inline-block;
|
1166 |
+
padding: 2px;
|
1167 |
+
margin: 3px;
|
1168 |
+
position: relative;
|
1169 |
+
overflow: hidden;
|
1170 |
+
height: auto;
|
1171 |
+
}
|
1172 |
+
|
1173 |
+
.customify_preset.radio_buttons .customify_radio_button input[type="radio"] {
|
1174 |
+
opacity: 0;
|
1175 |
+
width: 100%;
|
1176 |
+
height: 100%;
|
1177 |
+
position: absolute;
|
1178 |
+
z-index: 9999;
|
1179 |
+
}
|
1180 |
+
|
1181 |
+
.customify_preset.radio_buttons .customify_radio_button input[type="radio"]:checked + label {
|
1182 |
+
background-color: #ebebeb;
|
1183 |
+
}
|
1184 |
+
|
1185 |
+
.customify_preset.radio_buttons .customify_radio_button input[type="radio"]:checked + label:before {
|
1186 |
+
content: '>';
|
1187 |
+
color: inherit;
|
1188 |
+
}
|
1189 |
+
|
1190 |
+
.customify_preset.radio_buttons .customify_radio_button input[type="radio"]:checked + label:after {
|
1191 |
+
content: '<';
|
1192 |
+
color: inherit;
|
1193 |
+
}
|
1194 |
+
|
1195 |
+
.customify_preset.radio_buttons .customify_radio_button input[type="radio"]:checked:before {
|
1196 |
+
opacity: 0;
|
1197 |
+
}
|
1198 |
+
|
1199 |
+
.customify_preset.radio_buttons .customify_radio_button label {
|
1200 |
+
position: relative;
|
1201 |
+
z-index: 999;
|
1202 |
+
border-left: 4px solid;
|
1203 |
+
}
|
1204 |
+
|
1205 |
+
.customify_preset .awesome_preset {
|
1206 |
+
width: 45%;
|
1207 |
+
position: relative;
|
1208 |
+
display: inline-block;
|
1209 |
+
text-align: center;
|
1210 |
+
color: white;
|
1211 |
+
margin-top: 5px;
|
1212 |
+
margin-bottom: 25px;
|
1213 |
+
-webkit-transition: all 0.2s;
|
1214 |
+
transition: all 0.2s;
|
1215 |
+
}
|
1216 |
+
|
1217 |
+
.customify_preset .awesome_preset:hover {
|
1218 |
+
opacity: 0.9;
|
1219 |
+
}
|
1220 |
+
|
1221 |
+
.customify_preset .awesome_preset:before {
|
1222 |
+
content: '';
|
1223 |
+
position: absolute;
|
1224 |
+
top: 1px;
|
1225 |
+
left: 1px;
|
1226 |
+
right: 1px;
|
1227 |
+
bottom: 1px;
|
1228 |
+
border: 1px solid #FFF;
|
1229 |
+
background: transparent;
|
1230 |
+
opacity: .5;
|
1231 |
+
border-radius: 4px;
|
1232 |
+
z-index: 5;
|
1233 |
+
}
|
1234 |
+
|
1235 |
+
.customify_preset .awesome_preset .preset-wrap .preset-color {
|
1236 |
+
height: 128px;
|
1237 |
+
border-radius: 4px 4px 0 0;
|
1238 |
+
padding: 17px 0 27px;
|
1239 |
+
}
|
1240 |
+
|
1241 |
+
.customify_preset .awesome_preset .preset-wrap .preset-color .first-font {
|
1242 |
+
display: inline-block;
|
1243 |
+
width: 100%;
|
1244 |
+
font-size: 55px;
|
1245 |
+
line-height: 1;
|
1246 |
+
}
|
1247 |
+
|
1248 |
+
.customify_preset .awesome_preset .preset-wrap .preset-color .secondary-font {
|
1249 |
+
display: inline-block;
|
1250 |
+
width: 100%;
|
1251 |
+
font-size: 20px;
|
1252 |
+
line-height: 1;
|
1253 |
+
margin-top: 8px;
|
1254 |
+
}
|
1255 |
+
|
1256 |
+
.customify_preset .awesome_preset .preset-wrap .preset-name {
|
1257 |
+
position: relative;
|
1258 |
+
font-size: 11px;
|
1259 |
+
text-transform: UPPERCASE;
|
1260 |
+
border-radius: 0 0 4px 4px;
|
1261 |
+
padding: 1px;
|
1262 |
+
}
|
1263 |
+
|
1264 |
+
.customify_preset .awesome_preset .preset-wrap .preset-name:before {
|
1265 |
+
content: '';
|
1266 |
+
position: absolute;
|
1267 |
+
border-color: inherit;
|
1268 |
+
border: 10px solid;
|
1269 |
+
border-left-color: transparent;
|
1270 |
+
border-right-color: transparent;
|
1271 |
+
border-top: transparent;
|
1272 |
+
top: -10px;
|
1273 |
+
border-bottom-color: inherit;
|
1274 |
+
left: 40%;
|
1275 |
+
}
|
1276 |
+
|
1277 |
+
.customify_preset .awesome_preset:nth-child(odd) {
|
1278 |
+
margin-right: 7%;
|
1279 |
+
}
|
1280 |
+
|
1281 |
+
.customify_preset .awesome_preset input[type=radio] {
|
1282 |
+
height: 100%;
|
1283 |
+
width: 100%;
|
1284 |
+
position: absolute;
|
1285 |
+
border: 0;
|
1286 |
+
-webkit-box-shadow: none;
|
1287 |
+
box-shadow: none;
|
1288 |
+
color: #006505;
|
1289 |
+
background-color: transparent;
|
1290 |
+
border-radius: 0;
|
1291 |
+
margin: 0;
|
1292 |
+
display: inline-block;
|
1293 |
+
top: 0;
|
1294 |
+
left: 0;
|
1295 |
+
z-index: 10;
|
1296 |
+
}
|
1297 |
+
|
1298 |
+
.customify_preset .awesome_preset input[type=radio]:checked:before {
|
1299 |
+
position: absolute;
|
1300 |
+
height: 25px;
|
1301 |
+
width: 25px;
|
1302 |
+
top: -13px;
|
1303 |
+
right: -14px;
|
1304 |
+
background: #FFF;
|
1305 |
+
z-index: 1;
|
1306 |
+
}
|
1307 |
+
|
1308 |
+
.customify_preset .awesome_preset input[type=radio]:checked:after {
|
1309 |
+
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
1310 |
+
filter: alpha(opacity=0);
|
1311 |
+
content: '';
|
1312 |
+
position: absolute;
|
1313 |
+
width: 26px;
|
1314 |
+
height: 26px;
|
1315 |
+
border-radius: 50%;
|
1316 |
+
top: -5px;
|
1317 |
+
right: -5px;
|
1318 |
+
z-index: 10;
|
1319 |
+
background: #73C5EE url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjEzcHgiIGhlaWdodD0iOXB4IiB2aWV3Qm94PSIwIDAgMTMgOSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJDdXN0b21pZnktQ29weSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIxLjAwMDAwMCwgLTQwOC4wMDAwMDApIiBmaWxsPSIjRkZGRkZGIj4KICAgICAgICAgICAgPGcgaWQ9IkhlYWRlciIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIxLjAwMDAwMCwgNDcuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0iQ29udGVudCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAuMDAwMDAwLCA3NS4wMDAwMDApIj4KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iRmllbGQtLS1DaGVja2JveC1Db3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNy4wMDAwMDAsIDI0OS4wMDAwMDApIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9IkNoZWNrYm94IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwgMzAuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTAuMDM4NDk1LDE2IEwxNy4xMTYxMzc1LDguOTIxNDg3NiBMMTUuMTk0NjQ5OCw3IEwxMC4wMzg0OTUsMTIuMTU1MDY3NCBMNi45MjE0ODc2LDkuMDM4OTI5OTcgTDUsMTAuOTYwNDE3NiBMMTAuMDM4NDk1LDE2IFoiIGlkPSJQYWdlLTEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+) no-repeat;
|
1320 |
+
background-position: center center;
|
1321 |
+
}
|
1322 |
+
|
1323 |
+
.customify_radio_image {
|
1324 |
+
display: inline-block;
|
1325 |
+
}
|
1326 |
+
|
1327 |
+
.customify_radio_image label {
|
1328 |
+
display: block;
|
1329 |
+
float: left;
|
1330 |
+
margin-right: 10px;
|
1331 |
+
position: relative;
|
1332 |
+
}
|
1333 |
+
|
1334 |
+
.customify_radio_image label input[type=radio] {
|
1335 |
+
position: absolute;
|
1336 |
+
top: 0;
|
1337 |
+
bottom: 0;
|
1338 |
+
left: 0;
|
1339 |
+
right: 0;
|
1340 |
+
width: 100%;
|
1341 |
+
height: 100%;
|
1342 |
+
visibility: hidden;
|
1343 |
+
}
|
1344 |
+
|
1345 |
+
.customify_radio_image label input[type=radio] img {
|
1346 |
+
cursor: pointer;
|
1347 |
+
border: 2px solid transparent;
|
1348 |
+
}
|
1349 |
+
|
1350 |
+
.customify_radio_image label input[type=radio]:checked + img {
|
1351 |
+
border: 3px solid #73C5EE;
|
1352 |
+
}
|
1353 |
+
|
1354 |
+
.customify_ace_editor {
|
1355 |
+
display: block;
|
1356 |
+
min-height: 200px;
|
1357 |
+
border: 1px solid #ddd;
|
1358 |
+
}
|
1359 |
+
|
1360 |
+
.customize-control-custom_background .hide {
|
1361 |
+
display: none;
|
1362 |
+
}
|
1363 |
+
|
1364 |
+
.customize-control-custom_background .upload_button_div {
|
1365 |
+
margin: 10px 0;
|
1366 |
+
}
|
1367 |
+
|
1368 |
+
.customize-control-custom_background .upload_button_div > * {
|
1369 |
+
margin-right: 10px;
|
1370 |
+
}
|
1371 |
+
|
1372 |
+
.customize-control-custom_background .preview_screenshot {
|
1373 |
+
text-align: center;
|
1374 |
+
margin: 10px 0;
|
1375 |
+
}
|
1376 |
+
|
1377 |
+
.customize-control-custom_background .preview_screenshot img {
|
1378 |
+
border: 2px solid #ccc;
|
1379 |
+
}
|
1380 |
+
|
1381 |
+
#customify_import_demo_data_button {
|
1382 |
+
width: 70%;
|
1383 |
+
text-align: center;
|
1384 |
+
padding: 10px;
|
1385 |
+
display: inline-block;
|
1386 |
+
height: auto;
|
1387 |
+
margin: 0 15% 10% 15%;
|
1388 |
+
}
|
1389 |
+
|
1390 |
+
.import_step_note {
|
1391 |
+
margin: 5px;
|
1392 |
+
width: 100%;
|
1393 |
+
display: inline-block;
|
1394 |
+
}
|
1395 |
+
|
1396 |
+
.import_step_note:before {
|
1397 |
+
content: "\1F449";
|
1398 |
+
}
|
1399 |
+
|
1400 |
+
.import_step_note.success:before {
|
1401 |
+
content: "\1F44D";
|
1402 |
+
}
|
1403 |
+
|
1404 |
+
.import_step_note.failed:before {
|
1405 |
+
content: "\274C";
|
1406 |
+
}
|
1407 |
+
|
1408 |
+
#customize-header-actions {
|
1409 |
+
background: #ffffff;
|
1410 |
+
border-color: #e0e8ef;
|
1411 |
+
}
|
1412 |
+
|
1413 |
+
.wp-full-overlay-sidebar,
|
1414 |
+
.customize-themes-panel,
|
1415 |
+
#customize-sidebar-outer-content {
|
1416 |
+
background: #F7F9FA;
|
1417 |
+
border-right: 1px solid #e0e8ef;
|
1418 |
+
}
|
1419 |
+
|
1420 |
+
.outer-section-open #customize-controls .wp-full-overlay-sidebar-content,
|
1421 |
+
.attachment-media-view, .media-widget-preview.media_audio, .media-widget-preview.media_image {
|
1422 |
+
background: #F7F9FA;
|
1423 |
+
}
|
1424 |
+
|
1425 |
+
#customize-theme-controls #accordion-section-menu_locations {
|
1426 |
+
border-bottom: 1px solid #e0e8ef;
|
1427 |
+
}
|
1428 |
+
|
1429 |
+
#customize-controls #accordion-section-themes > .accordion-section-title {
|
1430 |
+
font-weight: 600;
|
1431 |
+
border-bottom: 1px solid #e0e8ef;
|
1432 |
+
}
|
1433 |
+
|
1434 |
+
#customize-controls #accordion-section-themes > .accordion-section-title:hover {
|
1435 |
+
background: #fff;
|
1436 |
+
}
|
1437 |
+
|
1438 |
+
#customize-controls .panel-meta.customize-info {
|
1439 |
+
border-bottom-color: #e0e8ef;
|
1440 |
+
}
|
1441 |
+
|
1442 |
+
#customize-theme-controls .control-section .accordion-section-title {
|
1443 |
+
font-weight: 400;
|
1444 |
+
border-top: 1px solid #e0e8ef;
|
1445 |
+
border-bottom: none;
|
1446 |
+
}
|
1447 |
+
|
1448 |
+
#customize-theme-controls .control-section:last-of-type > .accordion-section-title {
|
1449 |
+
border-bottom: 1px solid #e0e8ef;
|
1450 |
+
}
|
1451 |
+
|
1452 |
+
#customize-theme-controls .customize-section-title {
|
1453 |
+
border-top: 1px solid #e0e8ef;
|
1454 |
+
border-bottom: 1px solid #e0e8ef;
|
1455 |
+
}
|
1456 |
+
|
1457 |
+
#customize-controls .control-section .accordion-section-title:focus, #customize-controls .control-section .accordion-section-title:hover, #customize-controls .control-section.open .accordion-section-title, #customize-controls .control-section:hover > .accordion-section-title {
|
1458 |
+
color: #056184;
|
1459 |
+
background: #f5fcff;
|
1460 |
+
border-left-color: #f5fcff;
|
1461 |
+
}
|
1462 |
+
|
1463 |
+
.wp-customizer {
|
1464 |
+
/* SECTION: NAV MENUS */
|
1465 |
+
}
|
1466 |
+
|
1467 |
+
.wp-customizer .menu-item-edit-active .menu-item-handle, .wp-customizer .section-open .menu-item-settings, .wp-customizer .menu-item-bar .menu-item-handle:hover {
|
1468 |
+
border-color: #e0e8ef;
|
1469 |
+
}
|
1470 |
+
|
1471 |
+
.wp-customizer .section-open .menu-item-settings {
|
1472 |
+
background: #f5fcff;
|
1473 |
+
}
|
1474 |
+
|
1475 |
+
.wp-customizer .control-section-nav_menu .menu-location-settings {
|
1476 |
+
border-top-color: #e0e8ef !important;
|
1477 |
+
}
|
1478 |
+
|
1479 |
+
[data-balloon] {
|
1480 |
+
position: relative;
|
1481 |
+
}
|
1482 |
+
|
1483 |
+
[data-balloon]::before {
|
1484 |
+
opacity: 0;
|
1485 |
+
pointer-events: none;
|
1486 |
+
-webkit-transition: all .18s ease-out;
|
1487 |
+
transition: all .18s ease-out;
|
1488 |
+
background: rgba(17, 17, 17, 0.9);
|
1489 |
+
border-radius: 4px;
|
1490 |
+
color: #fff;
|
1491 |
+
content: attr(data-balloon);
|
1492 |
+
font-size: 12px;
|
1493 |
+
padding: .5em 1em;
|
1494 |
+
position: absolute;
|
1495 |
+
white-space: nowrap;
|
1496 |
+
z-index: 10;
|
1497 |
+
}
|
1498 |
+
|
1499 |
+
[data-balloon]::after {
|
1500 |
+
background: no-repeat url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="36px" height="12px"><path fill="rgba(17, 17, 17, 0.9)" transform="rotate(0)" d="M2.658,0.000 C-13.615,0.000 50.938,0.000 34.662,0.000 C28.662,0.000 23.035,12.002 18.660,12.002 C14.285,12.002 8.594,0.000 2.658,0.000 Z"/></svg>');
|
1501 |
+
background-size: 100% auto;
|
1502 |
+
width: 18px;
|
1503 |
+
height: 6px;
|
1504 |
+
opacity: 0;
|
1505 |
+
pointer-events: none;
|
1506 |
+
-webkit-transition: all .18s ease-out;
|
1507 |
+
transition: all .18s ease-out;
|
1508 |
+
content: '';
|
1509 |
+
position: absolute;
|
1510 |
+
z-index: 10;
|
1511 |
+
}
|
1512 |
+
|
1513 |
+
[data-balloon]:hover::before, [data-balloon]:hover::after {
|
1514 |
+
opacity: 1;
|
1515 |
+
pointer-events: auto;
|
1516 |
+
}
|
1517 |
+
|
1518 |
+
[data-balloon][data-balloon-pos="up"]::before {
|
1519 |
+
bottom: 100%;
|
1520 |
+
left: 50%;
|
1521 |
+
margin-bottom: 11px;
|
1522 |
+
-webkit-transform: translate3d(-50%, 10px, 0);
|
1523 |
+
transform: translate3d(-50%, 10px, 0);
|
1524 |
+
-webkit-transform-origin: top;
|
1525 |
+
transform-origin: top;
|
1526 |
+
}
|
1527 |
+
|
1528 |
+
[data-balloon][data-balloon-pos="up"]::after {
|
1529 |
+
bottom: 100%;
|
1530 |
+
left: 50%;
|
1531 |
+
margin-bottom: 5px;
|
1532 |
+
-webkit-transform: translate3d(-50%, 10px, 0);
|
1533 |
+
transform: translate3d(-50%, 10px, 0);
|
1534 |
+
-webkit-transform-origin: top;
|
1535 |
+
transform-origin: top;
|
1536 |
+
}
|
1537 |
+
|
1538 |
+
[data-balloon][data-balloon-pos="up"]:hover::before {
|
1539 |
+
-webkit-transform: translate3d(-50%, 0, 0);
|
1540 |
+
transform: translate3d(-50%, 0, 0);
|
1541 |
+
}
|
1542 |
+
|
1543 |
+
[data-balloon][data-balloon-pos="up"]:hover::after {
|
1544 |
+
-webkit-transform: translate3d(-50%, 0, 0);
|
1545 |
+
transform: translate3d(-50%, 0, 0);
|
1546 |
+
}
|
1547 |
+
|
1548 |
+
[data-balloon][data-balloon-pos='down']::before {
|
1549 |
+
left: 50%;
|
1550 |
+
margin-top: 11px;
|
1551 |
+
top: 100%;
|
1552 |
+
-webkit-transform: translate3d(-50%, -10px, 0);
|
1553 |
+
transform: translate3d(-50%, -10px, 0);
|
1554 |
+
}
|
1555 |
+
|
1556 |
+
[data-balloon][data-balloon-pos='down']::after {
|
1557 |
+
background: no-repeat url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="36px" height="12px"><path fill="rgba(17, 17, 17, 0.9)" transform="rotate(180 18 6)" d="M2.658,0.000 C-13.615,0.000 50.938,0.000 34.662,0.000 C28.662,0.000 23.035,12.002 18.660,12.002 C14.285,12.002 8.594,0.000 2.658,0.000 Z"/></svg>');
|
1558 |
+
background-size: 100% auto;
|
1559 |
+
width: 18px;
|
1560 |
+
height: 6px;
|
1561 |
+
left: 50%;
|
1562 |
+
margin-top: 5px;
|
1563 |
+
top: 100%;
|
1564 |
+
-webkit-transform: translate3d(-50%, -10px, 0);
|
1565 |
+
transform: translate3d(-50%, -10px, 0);
|
1566 |
+
}
|
1567 |
+
|
1568 |
+
[data-balloon][data-balloon-pos='down']:hover::before {
|
1569 |
+
-webkit-transform: translate3d(-50%, 0, 0);
|
1570 |
+
transform: translate3d(-50%, 0, 0);
|
1571 |
+
}
|
1572 |
+
|
1573 |
+
[data-balloon][data-balloon-pos='down']:hover::after {
|
1574 |
+
-webkit-transform: translate3d(-50%, 0, 0);
|
1575 |
+
transform: translate3d(-50%, 0, 0);
|
1576 |
+
}
|
1577 |
+
|
1578 |
+
[data-balloon][data-balloon-pos='left']::before {
|
1579 |
+
margin-right: 11px;
|
1580 |
+
right: 100%;
|
1581 |
+
top: 50%;
|
1582 |
+
-webkit-transform: translate3d(10px, -50%, 0);
|
1583 |
+
transform: translate3d(10px, -50%, 0);
|
1584 |
+
}
|
1585 |
+
|
1586 |
+
[data-balloon][data-balloon-pos='left']::after {
|
1587 |
+
background: no-repeat url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12px" height="36px"><path fill="rgba(17, 17, 17, 0.9)" transform="rotate(-90 18 18)" d="M2.658,0.000 C-13.615,0.000 50.938,0.000 34.662,0.000 C28.662,0.000 23.035,12.002 18.660,12.002 C14.285,12.002 8.594,0.000 2.658,0.000 Z"/></svg>');
|
1588 |
+
background-size: 100% auto;
|
1589 |
+
width: 6px;
|
1590 |
+
height: 18px;
|
1591 |
+
margin-right: 5px;
|
1592 |
+
right: 100%;
|
1593 |
+
top: 50%;
|
1594 |
+
-webkit-transform: translate3d(10px, -50%, 0);
|
1595 |
+
transform: translate3d(10px, -50%, 0);
|
1596 |
+
}
|
1597 |
+
|
1598 |
+
[data-balloon][data-balloon-pos='left']:hover::before {
|
1599 |
+
-webkit-transform: translate3d(0, -50%, 0);
|
1600 |
+
transform: translate3d(0, -50%, 0);
|
1601 |
+
}
|
1602 |
+
|
1603 |
+
[data-balloon][data-balloon-pos='left']:hover::after {
|
1604 |
+
-webkit-transform: translate3d(0, -50%, 0);
|
1605 |
+
transform: translate3d(0, -50%, 0);
|
1606 |
+
}
|
1607 |
+
|
1608 |
+
[data-balloon][data-balloon-pos='right']::before {
|
1609 |
+
left: 100%;
|
1610 |
+
margin-left: 11px;
|
1611 |
+
top: 50%;
|
1612 |
+
-webkit-transform: translate3d(-10px, -50%, 0);
|
1613 |
+
transform: translate3d(-10px, -50%, 0);
|
1614 |
+
}
|
1615 |
+
|
1616 |
+
[data-balloon][data-balloon-pos='right']::after {
|
1617 |
+
background: no-repeat url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12px" height="36px"><path fill="rgba(17, 17, 17, 0.9)" transform="rotate(90 6 6)" d="M2.658,0.000 C-13.615,0.000 50.938,0.000 34.662,0.000 C28.662,0.000 23.035,12.002 18.660,12.002 C14.285,12.002 8.594,0.000 2.658,0.000 Z"/></svg>');
|
1618 |
+
background-size: 100% auto;
|
1619 |
+
width: 6px;
|
1620 |
+
height: 18px;
|
1621 |
+
left: 100%;
|
1622 |
+
margin-left: 5px;
|
1623 |
+
top: 50%;
|
1624 |
+
-webkit-transform: translate3d(-10px, -50%, 0);
|
1625 |
+
transform: translate3d(-10px, -50%, 0);
|
1626 |
+
}
|
1627 |
+
|
1628 |
+
[data-balloon][data-balloon-pos='right']:hover::before {
|
1629 |
+
-webkit-transform: translate3d(0, -50%, 0);
|
1630 |
+
transform: translate3d(0, -50%, 0);
|
1631 |
+
}
|
1632 |
+
|
1633 |
+
[data-balloon][data-balloon-pos='right']:hover::after {
|
1634 |
+
-webkit-transform: translate3d(0, -50%, 0);
|
1635 |
+
transform: translate3d(0, -50%, 0);
|
1636 |
+
}
|
1637 |
+
|
1638 |
+
[data-balloon][data-balloon-length='small']::before {
|
1639 |
+
white-space: normal;
|
1640 |
+
width: 80px;
|
1641 |
+
}
|
1642 |
+
|
1643 |
+
[data-balloon][data-balloon-length='medium']::before {
|
1644 |
+
white-space: normal;
|
1645 |
+
width: 150px;
|
1646 |
+
}
|
1647 |
+
|
1648 |
+
[data-balloon][data-balloon-length='large']::before {
|
1649 |
+
white-space: normal;
|
1650 |
+
width: 260px;
|
1651 |
+
}
|
1652 |
+
|
1653 |
+
[data-balloon][data-balloon-length='xlarge']::before {
|
1654 |
+
white-space: normal;
|
1655 |
+
width: 380px;
|
1656 |
+
}
|
1657 |
+
|
1658 |
+
@media screen and (max-width: 768px) {
|
1659 |
+
[data-balloon][data-balloon-length='xlarge']::before {
|
1660 |
+
white-space: normal;
|
1661 |
+
width: 90vw;
|
1662 |
+
}
|
1663 |
+
}
|
1664 |
+
|
1665 |
+
[data-balloon][data-balloon-length='fit']::before {
|
1666 |
+
white-space: normal;
|
1667 |
+
width: 100%;
|
1668 |
+
}
|
1669 |
+
|
1670 |
+
/* ==========================================================================
|
1671 |
+
#FEEDBACK MODAL
|
1672 |
+
========================================================================== */
|
1673 |
+
body.modal-open {
|
1674 |
+
overflow: hidden;
|
1675 |
+
}
|
1676 |
+
|
1677 |
+
body.modal-open #style-manager-user-feedback-modal .modal {
|
1678 |
+
overflow-x: hidden;
|
1679 |
+
overflow-y: auto;
|
1680 |
+
visibility: visible;
|
1681 |
+
opacity: 1;
|
1682 |
+
-webkit-transform: translate(0, 0);
|
1683 |
+
transform: translate(0, 0);
|
1684 |
+
}
|
1685 |
+
|
1686 |
+
#style-manager-user-feedback-modal {
|
1687 |
+
height: 100%;
|
1688 |
+
}
|
1689 |
+
|
1690 |
+
#style-manager-user-feedback-modal .modal {
|
1691 |
+
position: relative;
|
1692 |
+
height: 100%;
|
1693 |
+
display: -webkit-box;
|
1694 |
+
display: -ms-flexbox;
|
1695 |
+
display: flex;
|
1696 |
+
-webkit-box-align: center;
|
1697 |
+
-ms-flex-align: center;
|
1698 |
+
align-items: center;
|
1699 |
+
top: 0;
|
1700 |
+
right: 0;
|
1701 |
+
bottom: 0;
|
1702 |
+
left: 0;
|
1703 |
+
z-index: 1050;
|
1704 |
+
opacity: 0;
|
1705 |
+
visibility: hidden;
|
1706 |
+
overflow: hidden;
|
1707 |
+
outline: 0;
|
1708 |
+
-webkit-transition: all .3s ease;
|
1709 |
+
transition: all .3s ease;
|
1710 |
+
-webkit-transform: translate(0, -10%);
|
1711 |
+
transform: translate(0, -10%);
|
1712 |
+
font-family: 'Galano Grotesque Alt', -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
|
1713 |
+
font-weight: 400;
|
1714 |
+
font-size: 16px;
|
1715 |
+
line-height: 1.7;
|
1716 |
+
}
|
1717 |
+
|
1718 |
+
#style-manager-user-feedback-modal .modal-dialog {
|
1719 |
+
position: relative;
|
1720 |
+
width: auto;
|
1721 |
+
margin: 10px;
|
1722 |
+
text-align: left;
|
1723 |
+
}
|
1724 |
+
|
1725 |
+
#style-manager-user-feedback-modal .modal-content {
|
1726 |
+
position: relative;
|
1727 |
+
display: -webkit-box;
|
1728 |
+
display: -ms-flexbox;
|
1729 |
+
display: flex;
|
1730 |
+
-webkit-box-orient: vertical;
|
1731 |
+
-webkit-box-direction: normal;
|
1732 |
+
-ms-flex-direction: column;
|
1733 |
+
flex-direction: column;
|
1734 |
+
background-color: #fff;
|
1735 |
+
background-clip: padding-box;
|
1736 |
+
border: none;
|
1737 |
+
border-radius: 4px;
|
1738 |
+
-webkit-box-shadow: 0 4px 4px 0 rgba(42, 54, 52, 0.1), 0 8px 8px 0 rgba(42, 54, 52, 0.1), 0 16px 16px 0 rgba(42, 54, 52, 0.1), 0 16px 32px 0 rgba(42, 54, 52, 0.1), 0 32px 64px 0 rgba(42, 54, 52, 0.1), 0 64px 128px 0 rgba(42, 54, 52, 0.1);
|
1739 |
+
box-shadow: 0 4px 4px 0 rgba(42, 54, 52, 0.1), 0 8px 8px 0 rgba(42, 54, 52, 0.1), 0 16px 16px 0 rgba(42, 54, 52, 0.1), 0 16px 32px 0 rgba(42, 54, 52, 0.1), 0 32px 64px 0 rgba(42, 54, 52, 0.1), 0 64px 128px 0 rgba(42, 54, 52, 0.1);
|
1740 |
+
outline: 0;
|
1741 |
+
}
|
1742 |
+
|
1743 |
+
#style-manager-user-feedback-modal .modal-content p {
|
1744 |
+
color: #000;
|
1745 |
+
}
|
1746 |
+
|
1747 |
+
#style-manager-user-feedback-modal .modal-content p a {
|
1748 |
+
font-weight: 500;
|
1749 |
+
color: #9660C6;
|
1750 |
+
border-bottom: 1px solid #9660C6;
|
1751 |
+
}
|
1752 |
+
|
1753 |
+
#style-manager-user-feedback-modal .modal-content > form {
|
1754 |
+
margin-bottom: 20px;
|
1755 |
+
}
|
1756 |
+
|
1757 |
+
#style-manager-user-feedback-modal .modal-backdrop {
|
1758 |
+
position: fixed;
|
1759 |
+
top: 0;
|
1760 |
+
right: 0;
|
1761 |
+
bottom: 0;
|
1762 |
+
left: 0;
|
1763 |
+
z-index: 1040;
|
1764 |
+
background-color: #000;
|
1765 |
+
opacity: 0;
|
1766 |
+
visibility: hidden;
|
1767 |
+
-webkit-transition: all 0.3s ease;
|
1768 |
+
transition: all 0.3s ease;
|
1769 |
+
}
|
1770 |
+
|
1771 |
+
.modal-open #style-manager-user-feedback-modal .modal-backdrop {
|
1772 |
+
opacity: 0.8;
|
1773 |
+
visibility: visible;
|
1774 |
+
}
|
1775 |
+
|
1776 |
+
#style-manager-user-feedback-modal .modal-header {
|
1777 |
+
display: -webkit-box;
|
1778 |
+
display: -ms-flexbox;
|
1779 |
+
display: flex;
|
1780 |
+
-webkit-box-align: start;
|
1781 |
+
-ms-flex-align: start;
|
1782 |
+
align-items: flex-start;
|
1783 |
+
-webkit-box-pack: justify;
|
1784 |
+
-ms-flex-pack: justify;
|
1785 |
+
justify-content: space-between;
|
1786 |
+
padding: 30px 48px 10px 48px;
|
1787 |
+
}
|
1788 |
+
|
1789 |
+
#style-manager-user-feedback-modal .modal-header .close.button {
|
1790 |
+
top: -10px;
|
1791 |
+
}
|
1792 |
+
|
1793 |
+
#style-manager-user-feedback-modal .modal-header .close.icon {
|
1794 |
+
opacity: 0.5;
|
1795 |
+
}
|
1796 |
+
|
1797 |
+
#style-manager-user-feedback-modal .modal-header .close:hover {
|
1798 |
+
opacity: 1;
|
1799 |
+
}
|
1800 |
+
|
1801 |
+
#style-manager-user-feedback-modal .modal-title {
|
1802 |
+
margin-bottom: 10px;
|
1803 |
+
line-height: 1.5;
|
1804 |
+
}
|
1805 |
+
|
1806 |
+
#style-manager-user-feedback-modal .modal-title.modal-title--small {
|
1807 |
+
font-weight: 500;
|
1808 |
+
}
|
1809 |
+
|
1810 |
+
#style-manager-user-feedback-modal .modal-body {
|
1811 |
+
position: relative;
|
1812 |
+
-webkit-box-flex: 1;
|
1813 |
+
-ms-flex: 1 1 auto;
|
1814 |
+
flex: 1 1 auto;
|
1815 |
+
padding: 30px 30px 0 30px;
|
1816 |
+
}
|
1817 |
+
|
1818 |
+
#style-manager-user-feedback-modal .modal-body.full {
|
1819 |
+
padding: 0;
|
1820 |
+
}
|
1821 |
+
|
1822 |
+
#style-manager-user-feedback-modal .modal-body.full .box {
|
1823 |
+
padding-top: 0;
|
1824 |
+
padding-bottom: 0;
|
1825 |
+
margin-top: 0;
|
1826 |
+
}
|
1827 |
+
|
1828 |
+
#style-manager-user-feedback-modal .modal-body.full + .modal-footer.full .box {
|
1829 |
+
padding-top: 18px;
|
1830 |
+
}
|
1831 |
+
|
1832 |
+
#style-manager-user-feedback-modal .modal-footer {
|
1833 |
+
padding: 30px;
|
1834 |
+
text-align: center;
|
1835 |
+
}
|
1836 |
+
|
1837 |
+
#style-manager-user-feedback-modal .modal-footer .box .button:last-child {
|
1838 |
+
margin-bottom: 0;
|
1839 |
+
}
|
1840 |
+
|
1841 |
+
#style-manager-user-feedback-modal .modal-footer.full {
|
1842 |
+
padding: 0;
|
1843 |
+
}
|
1844 |
+
|
1845 |
+
#style-manager-user-feedback-modal .modal-scrollbar-measure {
|
1846 |
+
position: absolute;
|
1847 |
+
top: -9999px;
|
1848 |
+
width: 50px;
|
1849 |
+
height: 50px;
|
1850 |
+
overflow: scroll;
|
1851 |
+
}
|
1852 |
+
|
1853 |
+
#style-manager-user-feedback-modal .modal-state {
|
1854 |
+
display: none;
|
1855 |
+
}
|
1856 |
+
|
1857 |
+
#style-manager-user-feedback-modal .modal-state:checked + .modal {
|
1858 |
+
opacity: 1;
|
1859 |
+
visibility: visible;
|
1860 |
+
}
|
1861 |
+
|
1862 |
+
#style-manager-user-feedback-modal .modal-state:checked + .modal .modal__inner {
|
1863 |
+
top: 0;
|
1864 |
+
}
|
1865 |
+
|
1866 |
+
@media (min-width: 576px) {
|
1867 |
+
#style-manager-user-feedback-modal .modal-dialog {
|
1868 |
+
max-width: 655px;
|
1869 |
+
margin: 30px auto;
|
1870 |
+
}
|
1871 |
+
#style-manager-user-feedback-modal .modal-sm {
|
1872 |
+
max-width: 300px;
|
1873 |
+
}
|
1874 |
+
}
|
1875 |
+
|
1876 |
+
@media (min-width: 576px) {
|
1877 |
+
#style-manager-user-feedback-modal .modal-lg {
|
1878 |
+
max-width: 800px;
|
1879 |
+
}
|
1880 |
+
}
|
1881 |
+
|
1882 |
+
#style-manager-user-feedback .modal-body .box {
|
1883 |
+
position: relative;
|
1884 |
+
-webkit-box-orient: vertical;
|
1885 |
+
-webkit-box-direction: normal;
|
1886 |
+
-ms-flex-direction: column;
|
1887 |
+
flex-direction: column;
|
1888 |
+
display: -webkit-box;
|
1889 |
+
display: -ms-flexbox;
|
1890 |
+
display: flex;
|
1891 |
+
-ms-flex-wrap: nowrap;
|
1892 |
+
flex-wrap: nowrap;
|
1893 |
+
-webkit-box-align: center;
|
1894 |
+
-ms-flex-align: center;
|
1895 |
+
align-items: center;
|
1896 |
+
margin: 20px 0;
|
1897 |
+
padding: 16px 52px;
|
1898 |
+
border-radius: 4px;
|
1899 |
+
}
|
1900 |
+
|
1901 |
+
#style-manager-user-feedback .modal-body .box > * {
|
1902 |
+
width: 100%;
|
1903 |
+
}
|
1904 |
+
|
1905 |
+
#style-manager-user-feedback .modal-body p {
|
1906 |
+
font-size: 16px;
|
1907 |
+
margin-bottom: 20px;
|
1908 |
+
}
|
1909 |
+
|
1910 |
+
#style-manager-user-feedback .modal-body textarea {
|
1911 |
+
width: 100%;
|
1912 |
+
margin: 0;
|
1913 |
+
padding: 11px 18px;
|
1914 |
+
border: 1px solid #dddddd;
|
1915 |
+
border-radius: 4px;
|
1916 |
+
-webkit-box-shadow: none;
|
1917 |
+
box-shadow: none;
|
1918 |
+
font-family: 'Galano Grotesque Alt', -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
|
1919 |
+
font-size: 16px;
|
1920 |
+
line-height: 26px;
|
1921 |
+
color: #473850;
|
1922 |
+
}
|
1923 |
+
|
1924 |
+
#style-manager-user-feedback .modal-title {
|
1925 |
+
margin-top: 0;
|
1926 |
+
margin-bottom: 34px;
|
1927 |
+
font-family: 'Galano Classic', -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
|
1928 |
+
font-weight: 600;
|
1929 |
+
font-size: 28px;
|
1930 |
+
line-height: 1.4;
|
1931 |
+
text-align: center;
|
1932 |
+
}
|
1933 |
+
|
1934 |
+
#style-manager-user-feedback .button {
|
1935 |
+
text-decoration: none;
|
1936 |
+
cursor: pointer;
|
1937 |
+
-webkit-font-smoothing: antialiased;
|
1938 |
+
position: relative;
|
1939 |
+
-webkit-transition-duration: .2s;
|
1940 |
+
transition-duration: .2s;
|
1941 |
+
-webkit-transition-timing-function: cubic-bezier(0, 0, 0.58, 1);
|
1942 |
+
transition-timing-function: cubic-bezier(0, 0, 0.58, 1);
|
1943 |
+
-webkit-transition-property: background,background-color,color,-webkit-transform,-webkit-box-shadow;
|
1944 |
+
transition-property: background,background-color,color,-webkit-transform,-webkit-box-shadow;
|
1945 |
+
transition-property: transform,background,background-color,color,box-shadow;
|
1946 |
+
transition-property: transform,background,background-color,color,box-shadow,-webkit-transform,-webkit-box-shadow;
|
1947 |
+
display: inline-block;
|
1948 |
+
padding: 15px 50px;
|
1949 |
+
border-radius: 2px;
|
1950 |
+
font-family: "Galano Classic", -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
|
1951 |
+
font-size: 16px;
|
1952 |
+
line-height: 23px;
|
1953 |
+
font-weight: 600;
|
1954 |
+
text-align: center;
|
1955 |
+
background-color: #9660c6;
|
1956 |
+
color: #ffffff;
|
1957 |
+
border-radius: 4px;
|
1958 |
+
-webkit-box-shadow: none;
|
1959 |
+
box-shadow: none;
|
1960 |
+
height: auto;
|
1961 |
+
width: 100%;
|
1962 |
+
margin-top: 20px;
|
1963 |
+
}
|
1964 |
+
|
1965 |
+
#style-manager-user-feedback .button:hover {
|
1966 |
+
background-color: #9660c6;
|
1967 |
+
color: #ffffff;
|
1968 |
+
-webkit-transform: scale(1.05) translateY(-3px);
|
1969 |
+
transform: scale(1.05) translateY(-3px);
|
1970 |
+
-webkit-box-shadow: 0 10px 20px -10px rgba(0, 0, 0, 0.7);
|
1971 |
+
box-shadow: 0 10px 20px -10px rgba(0, 0, 0, 0.7);
|
1972 |
+
}
|
1973 |
+
|
1974 |
+
#style-manager-user-feedback .second-step {
|
1975 |
+
margin-top: 18px;
|
1976 |
+
}
|
1977 |
+
|
1978 |
+
#style-manager-user-feedback .thanks-step,
|
1979 |
+
#style-manager-user-feedback .error-step {
|
1980 |
+
text-align: center;
|
1981 |
+
}
|
1982 |
+
|
1983 |
+
#style-manager-user-feedback .thanks-step .modal-title,
|
1984 |
+
#style-manager-user-feedback .error-step .modal-title {
|
1985 |
+
margin-bottom: 0;
|
1986 |
+
}
|
1987 |
+
|
1988 |
+
#style-manager-user-feedback .thanks-step p:last-child,
|
1989 |
+
#style-manager-user-feedback .error-step p:last-child {
|
1990 |
+
margin-bottom: 10px;
|
1991 |
+
}
|
1992 |
+
|
1993 |
+
.scorecard {
|
1994 |
+
display: -webkit-box;
|
1995 |
+
display: -ms-flexbox;
|
1996 |
+
display: flex;
|
1997 |
+
-webkit-box-align: baseline;
|
1998 |
+
-ms-flex-align: baseline;
|
1999 |
+
align-items: baseline;
|
2000 |
+
-webkit-box-pack: space-evenly;
|
2001 |
+
-ms-flex-pack: space-evenly;
|
2002 |
+
justify-content: space-evenly;
|
2003 |
+
color: #9660C6;
|
2004 |
+
font-family: "Galano Classic", -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
|
2005 |
+
font-size: 18px;
|
2006 |
+
font-weight: 600;
|
2007 |
+
text-align: center;
|
2008 |
+
}
|
2009 |
+
|
2010 |
+
.scorecard > label {
|
2011 |
+
font-size: 20px;
|
2012 |
+
}
|
2013 |
+
|
2014 |
+
.scorecard > label span {
|
2015 |
+
display: block;
|
2016 |
+
width: 46px;
|
2017 |
+
border: 2px solid #9660C6;
|
2018 |
+
line-height: 46px;
|
2019 |
+
border-radius: 100%;
|
2020 |
+
background: #FFF;
|
2021 |
+
-webkit-transition: all 0.25s ease;
|
2022 |
+
transition: all 0.25s ease;
|
2023 |
+
}
|
2024 |
+
|
2025 |
+
.scorecard > label input[type="radio"] {
|
2026 |
+
display: none;
|
2027 |
+
}
|
2028 |
+
|
2029 |
+
.scorecard > label span:hover,
|
2030 |
+
.scorecard > label input[type="radio"]:checked ~ span {
|
2031 |
+
background: #9660C6;
|
2032 |
+
color: #FFF;
|
2033 |
+
}
|
2034 |
+
|
2035 |
+
.font-options__wrapper .font-options__options-list {
|
2036 |
+
border-color: #B8DAEB;
|
2037 |
+
-webkit-box-shadow: 0 10px 20px 0 rgba(0, 0, 0, 0.15);
|
2038 |
+
box-shadow: 0 10px 20px 0 rgba(0, 0, 0, 0.15);
|
2039 |
+
}
|
2040 |
+
|
2041 |
+
.font-options__wrapper .font-options__option {
|
2042 |
+
margin-bottom: 12px;
|
2043 |
+
}
|
2044 |
+
|
2045 |
+
.font-options__wrapper .font-options__option label {
|
2046 |
+
display: block;
|
2047 |
+
margin-bottom: 6px;
|
2048 |
+
}
|
2049 |
+
|
2050 |
+
.font-options__wrapper [type=checkbox]:checked ~ .font-options__options-list {
|
2051 |
+
opacity: 1;
|
2052 |
+
display: block;
|
2053 |
+
}
|
2054 |
+
|
2055 |
+
input.customify_font_tooltip {
|
2056 |
+
display: none;
|
2057 |
+
}
|
2058 |
+
|
2059 |
+
ul.font-options__options-list .select2-container {
|
2060 |
+
width: 100% !important;
|
2061 |
+
}
|
2062 |
+
|
2063 |
+
ul.font-options__options-list .select2-container .select2-selection--single {
|
2064 |
+
-webkit-appearance: initial;
|
2065 |
+
}
|
2066 |
+
|
2067 |
+
ul.font-options__options-list .select2-container .select2-selection--single .select2-selection__arrow {
|
2068 |
+
display: none;
|
2069 |
+
}
|
2070 |
+
|
2071 |
+
ul.font-options__options-list .select2-container--default .select2-selection--single .select2-selection__rendered {
|
2072 |
+
color: inherit;
|
2073 |
+
line-height: initial;
|
2074 |
+
}
|
2075 |
+
|
2076 |
+
.select2-container.select2-container--open {
|
2077 |
+
z-index: 99999999;
|
2078 |
+
}
|
2079 |
+
|
2080 |
+
#customize-theme-controls .select2-container {
|
2081 |
+
width: 100% !important;
|
2082 |
+
}
|
2083 |
+
|
2084 |
+
#customize-theme-controls .select2-container .select2-selection--multiple {
|
2085 |
+
-webkit-appearance: initial;
|
2086 |
+
padding: 4px 8px 4px;
|
2087 |
+
height: auto;
|
2088 |
+
background: none;
|
2089 |
+
}
|
2090 |
+
|
2091 |
+
#customize-theme-controls .select2-container .select2-selection--multiple .select2-selection__arrow {
|
2092 |
+
display: none;
|
2093 |
+
}
|
2094 |
+
|
2095 |
+
#customize-theme-controls .select2-container .select2-selection--multiple .select2-selection__rendered {
|
2096 |
+
padding: 0;
|
2097 |
+
display: -webkit-box;
|
2098 |
+
display: -ms-flexbox;
|
2099 |
+
display: flex;
|
2100 |
+
}
|
2101 |
+
|
2102 |
+
#customize-theme-controls .select2-container .select2-selection--multiple .select2-selection__rendered .select2-search--inline {
|
2103 |
+
-webkit-box-flex: 1;
|
2104 |
+
-ms-flex: 1;
|
2105 |
+
flex: 1;
|
2106 |
+
}
|
2107 |
+
|
2108 |
+
#customize-theme-controls .select2-container .select2-selection--multiple .select2-selection__rendered .select2-search--inline .select2-search__field[class] {
|
2109 |
+
min-width: 100%;
|
2110 |
+
border-width: 0;
|
2111 |
+
margin-top: 3px !important;
|
2112 |
+
}
|
2113 |
+
|
2114 |
+
#customize-theme-controls .select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice {
|
2115 |
+
padding: 3px 7px;
|
2116 |
+
margin-right: 6px;
|
2117 |
+
margin-top: 0px;
|
2118 |
+
border-color: #e0e8ef;
|
2119 |
+
background-color: #f6fbff;
|
2120 |
+
}
|
2121 |
+
|
2122 |
+
#customize-theme-controls .select2-container .select2-search--inline .select2-search__field {
|
2123 |
+
height: 29px;
|
2124 |
+
min-width: 9em;
|
2125 |
+
margin-top: 0;
|
2126 |
+
}
|
2127 |
+
|
2128 |
+
.select2-container--default .select2-results__option[aria-selected=true][class] {
|
2129 |
+
background: transparent;
|
2130 |
+
opacity: 0.3;
|
2131 |
+
pointer-events: none;
|
2132 |
+
}
|
2133 |
+
|
2134 |
+
.select2-container .select2-dropdown {
|
2135 |
+
border-color: #e0e8ef;
|
2136 |
+
}
|
2137 |
+
|
2138 |
+
#customize-theme-controls .widget-content .accordion-container {
|
2139 |
+
margin-left: -10px;
|
2140 |
+
margin-right: -10px;
|
2141 |
+
margin-top: 20px;
|
2142 |
+
margin-bottom: 10px;
|
2143 |
+
}
|
2144 |
+
|
2145 |
+
#customize-theme-controls .widget-content .accordion-container .accordion-section .accordion-section-content {
|
2146 |
+
position: relative;
|
2147 |
+
left: 0;
|
2148 |
+
max-height: 0;
|
2149 |
+
padding-top: 0;
|
2150 |
+
padding-bottom: 0;
|
2151 |
+
overflow: hidden;
|
2152 |
+
-webkit-transition: all .4s ease;
|
2153 |
+
transition: all .4s ease;
|
2154 |
+
color: #416B7E;
|
2155 |
+
}
|
2156 |
+
|
2157 |
+
#customize-theme-controls .widget-content .accordion-container .accordion-section .accordion-section-content p:first-child {
|
2158 |
+
margin-top: 0;
|
2159 |
+
}
|
2160 |
+
|
2161 |
+
#customize-theme-controls .widget-content .accordion-container .accordion-section .accordion-section-content p:last-child {
|
2162 |
+
margin-bottom: 0;
|
2163 |
+
}
|
2164 |
+
|
2165 |
+
#customize-theme-controls .widget-content .accordion-container .accordion-section .accordion-section-title {
|
2166 |
+
color: #39474D;
|
2167 |
+
}
|
2168 |
+
|
2169 |
+
#customize-theme-controls .widget-content .accordion-container .accordion-section .accordion-section-title:after {
|
2170 |
+
content: "\f142";
|
2171 |
+
-webkit-transform: rotate(180deg);
|
2172 |
+
transform: rotate(180deg);
|
2173 |
+
}
|
2174 |
+
|
2175 |
+
#customize-theme-controls .widget-content .accordion-container .accordion-section.open {
|
2176 |
+
border-bottom: none;
|
2177 |
+
}
|
2178 |
+
|
2179 |
+
#customize-theme-controls .widget-content .accordion-container .accordion-section.open .accordion-section-content {
|
2180 |
+
max-height: 100%;
|
2181 |
+
padding-top: 17px;
|
2182 |
+
padding-bottom: 17px;
|
2183 |
+
}
|
2184 |
+
|
2185 |
+
#customize-theme-controls .widget-content .accordion-container .accordion-section.open .accordion-section-title {
|
2186 |
+
border-bottom: 1px solid;
|
2187 |
+
}
|
2188 |
+
|
2189 |
+
#customize-theme-controls .widget-content .accordion-container .accordion-section.open .accordion-section-title:after {
|
2190 |
+
-webkit-transform: rotate(0deg);
|
2191 |
+
transform: rotate(0deg);
|
2192 |
+
}
|
2193 |
+
|
2194 |
+
#customize-theme-controls .widget-content .accordion-container label.customize-control-title, #customize-theme-controls .widget-content .accordion-container label.separator.label {
|
2195 |
+
cursor: default;
|
2196 |
+
}
|
2197 |
+
|
2198 |
+
.widget .widget-content > p input[type=checkbox],
|
2199 |
+
.widget .widget-content > p input[type=radio] {
|
2200 |
+
margin-bottom: 3px;
|
2201 |
+
margin-top: 3px;
|
2202 |
+
}
|
2203 |
+
|
2204 |
+
.widget .widget-content small {
|
2205 |
+
margin-top: 5px;
|
2206 |
+
display: block;
|
2207 |
+
}
|
2208 |
+
|
2209 |
+
#available-widgets [class*=pixelgrade] .widget .widget-title:before,
|
2210 |
+
#available-widgets [class*=featured-posts] .widget .widget-title:before,
|
2211 |
+
#available-widgets [class*=categories-image-grid] .widget .widget-title:before {
|
2212 |
+
content: "\f538";
|
2213 |
+
color: #9660c6;
|
2214 |
+
}
|
2215 |
+
|
2216 |
+
#available-widgets [class*=pixelgrade-featured-posts-slideshow] .widget .widget-title:before {
|
2217 |
+
content: "\f233";
|
2218 |
+
}
|
2219 |
+
|
2220 |
+
#available-widgets [class*=pixelgrade-featured-posts-carousel] .widget .widget-title:before {
|
2221 |
+
content: "\f169";
|
2222 |
+
}
|
2223 |
+
|
2224 |
+
#available-widgets [class*=featured-posts-grid] .widget .widget-title:before {
|
2225 |
+
content: "\f180";
|
2226 |
+
}
|
2227 |
+
|
2228 |
+
#available-widgets [class*=featured-posts-list] .widget .widget-title:before {
|
2229 |
+
content: "\f164";
|
2230 |
+
}
|
2231 |
+
|
2232 |
+
#available-widgets [class*=categories-image-grid] .widget .widget-title:before {
|
2233 |
+
content: "\f163";
|
2234 |
+
}
|
2235 |
+
|
2236 |
+
#available-widgets [class*=pixelgrade-promo-box] .widget .widget-title:before {
|
2237 |
+
content: "\f488";
|
2238 |
+
}
|
2239 |
+
|
2240 |
+
.ui-tooltip {
|
2241 |
+
z-index: 999999;
|
2242 |
+
}
|
2243 |
+
|
2244 |
+
.wp-customizer .widget-conditional .condition-control:after {
|
2245 |
+
content: " ";
|
2246 |
+
display: table;
|
2247 |
+
clear: both;
|
2248 |
+
}
|
2249 |
+
|
2250 |
+
.wp-customizer .widget-conditional .selection {
|
2251 |
+
padding-right: 50px;
|
2252 |
+
padding-left: 28px;
|
2253 |
+
padding-bottom: 19px;
|
2254 |
+
margin-left: 0;
|
2255 |
+
margin-right: 0;
|
2256 |
+
margin-bottom: 10px;
|
2257 |
+
border-bottom: 1px solid #cbcfd4;
|
2258 |
+
}
|
2259 |
+
|
2260 |
+
.wp-customizer .widget-conditional .condition:last-child .selection {
|
2261 |
+
border: 0;
|
2262 |
+
}
|
2263 |
+
|
2264 |
+
.wp-customizer .widget-conditional select {
|
2265 |
+
max-width: 100%;
|
2266 |
+
width: 170px;
|
2267 |
+
}
|
2268 |
+
|
2269 |
+
.wp-customizer .widget-conditional .condition-top select {
|
2270 |
+
width: 130px;
|
2271 |
+
}
|
2272 |
+
|
2273 |
+
.pix_customizer_setting .customize-inside-control-row {
|
2274 |
+
position: relative;
|
2275 |
+
width: 100% !important;
|
2276 |
+
margin-left: 0 !important;
|
2277 |
+
text-indent: 0 !important;
|
2278 |
+
background-size: cover;
|
2279 |
+
background-position: 50% 50%;
|
2280 |
+
height: 64px;
|
2281 |
+
border-radius: 5px;
|
2282 |
+
overflow: hidden;
|
2283 |
+
}
|
2284 |
+
|
2285 |
+
.pix_customizer_setting .customize-inside-control-row:before {
|
2286 |
+
content: '';
|
2287 |
+
position: absolute;
|
2288 |
+
top: 0;
|
2289 |
+
bottom: 0;
|
2290 |
+
left: 0;
|
2291 |
+
right: 0;
|
2292 |
+
z-index: 10;
|
2293 |
+
pointer-events: none;
|
2294 |
+
-webkit-box-shadow: inset 0 0 3px 0 rgba(0, 0, 0, 0.2);
|
2295 |
+
box-shadow: inset 0 0 3px 0 rgba(0, 0, 0, 0.2);
|
2296 |
+
}
|
2297 |
+
|
2298 |
+
.pix_customizer_setting .customize-inside-control-row:hover:before {
|
2299 |
+
-webkit-box-shadow: inset 0 0 3px 0 rgba(0, 0, 0, 0.4);
|
2300 |
+
box-shadow: inset 0 0 3px 0 rgba(0, 0, 0, 0.4);
|
2301 |
+
}
|
2302 |
+
|
2303 |
+
.pix_customizer_setting .customize-inside-control-row:hover .palette__item {
|
2304 |
+
-webkit-transform: translateY(0%);
|
2305 |
+
transform: translateY(0%);
|
2306 |
+
}
|
2307 |
+
|
2308 |
+
.pix_customizer_setting .customize-inside-control-row:hover label {
|
2309 |
+
left: 10px;
|
2310 |
+
}
|
2311 |
+
|
2312 |
+
.pix_customizer_setting .customize-inside-control-row input {
|
2313 |
+
opacity: 0;
|
2314 |
+
}
|
2315 |
+
|
2316 |
+
.pix_customizer_setting .customize-inside-control-row input:checked + label .preview__letter--checked {
|
2317 |
+
display: inline-block;
|
2318 |
+
vertical-align: middle;
|
2319 |
+
}
|
2320 |
+
|
2321 |
+
.pix_customizer_setting .customize-inside-control-row input:checked + label .preview__letter {
|
2322 |
+
display: none;
|
2323 |
+
}
|
2324 |
+
|
2325 |
+
.pix_customizer_setting .customize-inside-control-row label {
|
2326 |
+
position: absolute;
|
2327 |
+
display: -webkit-box;
|
2328 |
+
display: -ms-flexbox;
|
2329 |
+
display: flex;
|
2330 |
+
z-index: 2;
|
2331 |
+
width: 100%;
|
2332 |
+
height: 100%;
|
2333 |
+
top: 0;
|
2334 |
+
left: 0;
|
2335 |
+
padding: 0 10px;
|
2336 |
+
margin-top: 0 !important;
|
2337 |
+
-webkit-box-align: center;
|
2338 |
+
-ms-flex-align: center;
|
2339 |
+
align-items: center;
|
2340 |
+
-webkit-transition: all .3s ease;
|
2341 |
+
transition: all .3s ease;
|
2342 |
+
}
|
2343 |
+
|
2344 |
+
.pix_customizer_setting .customize-inside-control-row .palette {
|
2345 |
+
position: absolute;
|
2346 |
+
display: -webkit-box;
|
2347 |
+
display: -ms-flexbox;
|
2348 |
+
display: flex;
|
2349 |
+
top: 0;
|
2350 |
+
left: 0;
|
2351 |
+
z-index: 1;
|
2352 |
+
width: 100%;
|
2353 |
+
height: 100%;
|
2354 |
+
-webkit-transition: all .2s ease;
|
2355 |
+
transition: all .2s ease;
|
2356 |
+
}
|
2357 |
+
|
2358 |
+
.pix_customizer_setting .customize-inside-control-row .palette__item {
|
2359 |
+
-webkit-box-flex: 1;
|
2360 |
+
-ms-flex: 1;
|
2361 |
+
flex: 1;
|
2362 |
+
-webkit-transform: translateY(100%);
|
2363 |
+
transform: translateY(100%);
|
2364 |
+
-webkit-transition: all .3s ease;
|
2365 |
+
transition: all .3s ease;
|
2366 |
+
}
|
2367 |
+
|
2368 |
+
.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(1) {
|
2369 |
+
-webkit-transition-delay: 0s;
|
2370 |
+
transition-delay: 0s;
|
2371 |
+
}
|
2372 |
+
|
2373 |
+
.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(2) {
|
2374 |
+
-webkit-transition-delay: 0.05s;
|
2375 |
+
transition-delay: 0.05s;
|
2376 |
+
}
|
2377 |
+
|
2378 |
+
.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(3) {
|
2379 |
+
-webkit-transition-delay: 0.1s;
|
2380 |
+
transition-delay: 0.1s;
|
2381 |
+
}
|
2382 |
+
|
2383 |
+
.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(4) {
|
2384 |
+
-webkit-transition-delay: 0.15s;
|
2385 |
+
transition-delay: 0.15s;
|
2386 |
+
}
|
2387 |
+
|
2388 |
+
.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(5) {
|
2389 |
+
-webkit-transition-delay: 0.2s;
|
2390 |
+
transition-delay: 0.2s;
|
2391 |
+
}
|
2392 |
+
|
2393 |
+
.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(6) {
|
2394 |
+
-webkit-transition-delay: 0.25s;
|
2395 |
+
transition-delay: 0.25s;
|
2396 |
+
}
|
2397 |
+
|
2398 |
+
.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(7) {
|
2399 |
+
-webkit-transition-delay: 0.3s;
|
2400 |
+
transition-delay: 0.3s;
|
2401 |
+
}
|
2402 |
+
|
2403 |
+
.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(8) {
|
2404 |
+
-webkit-transition-delay: 0.35s;
|
2405 |
+
transition-delay: 0.35s;
|
2406 |
+
}
|
2407 |
+
|
2408 |
+
.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(9) {
|
2409 |
+
-webkit-transition-delay: 0.4s;
|
2410 |
+
transition-delay: 0.4s;
|
2411 |
+
}
|
2412 |
+
|
2413 |
+
.pix_customizer_setting .customize-inside-control-row .palette__item:nth-child(10) {
|
2414 |
+
-webkit-transition-delay: 0.45s;
|
2415 |
+
transition-delay: 0.45s;
|
2416 |
+
}
|
2417 |
+
|
2418 |
+
.pix_customizer_setting .customize-inside-control-row .preview__letter,
|
2419 |
+
.pix_customizer_setting .customize-inside-control-row .preview__letter--checked {
|
2420 |
+
display: inline-block;
|
2421 |
+
padding: 3px;
|
2422 |
+
border-radius: 2px;
|
2423 |
+
color: white;
|
2424 |
+
margin-right: 5px;
|
2425 |
+
min-height: 26px;
|
2426 |
+
min-width: 26px;
|
2427 |
+
text-align: center;
|
2428 |
+
background-position: center center;
|
2429 |
+
background-repeat: no-repeat;
|
2430 |
+
background-size: 15px 15px;
|
2431 |
+
font-style: normal;
|
2432 |
+
vertical-align: baseline;
|
2433 |
+
}
|
2434 |
+
|
2435 |
+
.pix_customizer_setting .customize-inside-control-row .preview__letter--checked {
|
2436 |
+
display: none;
|
2437 |
+
}
|
2438 |
+
|
2439 |
+
[id*="sm_current_color_palette_control"] .customize-inside-control-row .palette__item[class] {
|
2440 |
+
-webkit-transform: none;
|
2441 |
+
transform: none;
|
2442 |
+
}
|
2443 |
+
|
2444 |
+
[id*="sm_current_color_palette_control"] .variation-control {
|
2445 |
+
display: -webkit-box;
|
2446 |
+
display: -ms-flexbox;
|
2447 |
+
display: flex;
|
2448 |
+
}
|
2449 |
+
|
2450 |
+
.label__inner {
|
2451 |
+
color: #000000;
|
2452 |
+
background: #F5F6F1;
|
2453 |
+
padding: 7px 12px 7px 7px;
|
2454 |
+
z-index: 2;
|
2455 |
+
border-radius: 3px;
|
2456 |
+
-webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
|
2457 |
+
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
|
2458 |
+
}
|
2459 |
+
|
2460 |
+
.picker {
|
2461 |
+
position: relative;
|
2462 |
+
top: 0;
|
2463 |
+
left: 50%;
|
2464 |
+
width: 80%;
|
2465 |
+
max-width: 3em;
|
2466 |
+
margin-top: auto;
|
2467 |
+
margin-bottom: auto;
|
2468 |
+
border-radius: 50%;
|
2469 |
+
overflow: hidden;
|
2470 |
+
-webkit-transform: translate3d(-50%, 0, 0);
|
2471 |
+
transform: translate3d(-50%, 0, 0);
|
2472 |
+
}
|
2473 |
+
|
2474 |
+
.colors .picker > i {
|
2475 |
+
display: block;
|
2476 |
+
position: absolute;
|
2477 |
+
top: 0;
|
2478 |
+
right: 0;
|
2479 |
+
bottom: 0;
|
2480 |
+
left: 0;
|
2481 |
+
-webkit-box-shadow: inset 0 0 3px 0 rgba(0, 0, 0, 0.2);
|
2482 |
+
box-shadow: inset 0 0 3px 0 rgba(0, 0, 0, 0.2);
|
2483 |
+
border-radius: 50%;
|
2484 |
+
pointer-events: none;
|
2485 |
+
z-index: 20;
|
2486 |
+
}
|
2487 |
+
|
2488 |
+
.picker:before,
|
2489 |
+
.picker:after {
|
2490 |
+
content: "";
|
2491 |
+
display: block;
|
2492 |
+
background: currentColor;
|
2493 |
+
border-radius: 50%;
|
2494 |
+
}
|
2495 |
+
|
2496 |
+
.picker:before {
|
2497 |
+
padding-top: 100%;
|
2498 |
+
}
|
2499 |
+
|
2500 |
+
.picker:after {
|
2501 |
+
position: absolute;
|
2502 |
+
top: 0;
|
2503 |
+
left: 0;
|
2504 |
+
width: 100%;
|
2505 |
+
height: 100%;
|
2506 |
+
}
|
2507 |
+
|
2508 |
+
.fill {
|
2509 |
+
overflow: hidden;
|
2510 |
+
}
|
2511 |
+
|
2512 |
+
.color:first-child .fill {
|
2513 |
+
border-top-left-radius: 5px;
|
2514 |
+
border-bottom-left-radius: 5px;
|
2515 |
+
}
|
2516 |
+
|
2517 |
+
.color:last-child .fill {
|
2518 |
+
border-top-right-radius: 5px;
|
2519 |
+
border-bottom-right-radius: 5px;
|
2520 |
+
}
|
2521 |
+
|
2522 |
+
.label {
|
2523 |
+
margin-right: auto;
|
2524 |
+
}
|
2525 |
+
|
2526 |
+
#customize-theme-controls [id*="sm_current_color_palette_control"] {
|
2527 |
+
display: block;
|
2528 |
+
width: auto;
|
2529 |
+
}
|
2530 |
+
|
2531 |
+
#customize-theme-controls [id*="sm_current_color_palette_control"] .color-palette-container {
|
2532 |
+
background: white;
|
2533 |
+
}
|
2534 |
+
|
2535 |
+
#customize-theme-controls [id*="sm_current_color_palette_control"] .color-palette-container .description {
|
2536 |
+
margin-bottom: 15px;
|
2537 |
+
}
|
2538 |
+
|
2539 |
+
#customize-theme-controls [id*="sm_current_color_palette_control"] .description.c-color-palette__notification {
|
2540 |
+
padding-top: 19px;
|
2541 |
+
margin-bottom: 0;
|
2542 |
+
font-size: inherit;
|
2543 |
+
font-weight: bold;
|
2544 |
+
}
|
2545 |
+
|
2546 |
+
.c-color-palette__fields {
|
2547 |
+
position: relative;
|
2548 |
+
}
|
2549 |
+
|
2550 |
+
.c-color-palette .iris-picker {
|
2551 |
+
position: absolute;
|
2552 |
+
top: 100%;
|
2553 |
+
left: 0;
|
2554 |
+
z-index: 100;
|
2555 |
+
margin-top: 1em;
|
2556 |
+
border: 0;
|
2557 |
+
-webkit-box-shadow: black 0 3px 12px -4px;
|
2558 |
+
box-shadow: black 0 3px 12px -4px;
|
2559 |
+
}
|
2560 |
+
|
2561 |
+
.c-color-palette .iris-picker .iris-square-handle {
|
2562 |
+
border-color: transparent;
|
2563 |
+
left: -6px;
|
2564 |
+
top: -6px;
|
2565 |
+
}
|
2566 |
+
|
2567 |
+
.c-color-palette .iris-picker .iris-square-handle:after {
|
2568 |
+
position: absolute;
|
2569 |
+
bottom: 0;
|
2570 |
+
right: 0;
|
2571 |
+
left: 0;
|
2572 |
+
top: 0;
|
2573 |
+
border: 2px solid white;
|
2574 |
+
}
|
2575 |
+
|
2576 |
+
.c-color-palette .iris-picker .iris-square-value {
|
2577 |
+
-webkit-box-shadow: none !important;
|
2578 |
+
box-shadow: none !important;
|
2579 |
+
}
|
2580 |
+
|
2581 |
+
.colors {
|
2582 |
+
position: relative;
|
2583 |
+
display: -webkit-box;
|
2584 |
+
display: -ms-flexbox;
|
2585 |
+
display: flex;
|
2586 |
+
-ms-flex-wrap: wrap;
|
2587 |
+
flex-wrap: wrap;
|
2588 |
+
-webkit-box-align: center;
|
2589 |
+
-ms-flex-align: center;
|
2590 |
+
align-items: center;
|
2591 |
+
width: 100%;
|
2592 |
+
height: 3em;
|
2593 |
+
}
|
2594 |
+
|
2595 |
+
.color {
|
2596 |
+
display: -webkit-box;
|
2597 |
+
display: -ms-flexbox;
|
2598 |
+
display: flex;
|
2599 |
+
-webkit-box-orient: vertical;
|
2600 |
+
-webkit-box-direction: normal;
|
2601 |
+
-ms-flex-direction: column;
|
2602 |
+
flex-direction: column;
|
2603 |
+
-webkit-box-flex: 1;
|
2604 |
+
-ms-flex: 1 1 0px;
|
2605 |
+
flex: 1 1 0;
|
2606 |
+
overflow: hidden;
|
2607 |
+
-webkit-transition: flex-grow 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28), -webkit-box-flex 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28);
|
2608 |
+
transition: flex-grow 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28), -webkit-box-flex 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28);
|
2609 |
+
transition: flex-grow 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28);
|
2610 |
+
transition: flex-grow 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28), -webkit-box-flex 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28), -ms-flex-positive 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28);
|
2611 |
+
}
|
2612 |
+
|
2613 |
+
.color.hidden {
|
2614 |
+
display: -webkit-box;
|
2615 |
+
display: -ms-flexbox;
|
2616 |
+
display: flex;
|
2617 |
+
-webkit-box-flex: 0;
|
2618 |
+
-ms-flex-positive: 0;
|
2619 |
+
flex-grow: 0;
|
2620 |
+
-webkit-transition: flex-grow 0.3s cubic-bezier(0.6, -1, 0.74, 0.05), -webkit-box-flex 0.3s cubic-bezier(0.6, -1, 0.74, 0.05);
|
2621 |
+
transition: flex-grow 0.3s cubic-bezier(0.6, -1, 0.74, 0.05), -webkit-box-flex 0.3s cubic-bezier(0.6, -1, 0.74, 0.05);
|
2622 |
+
transition: flex-grow 0.3s cubic-bezier(0.6, -1, 0.74, 0.05);
|
2623 |
+
transition: flex-grow 0.3s cubic-bezier(0.6, -1, 0.74, 0.05), -webkit-box-flex 0.3s cubic-bezier(0.6, -1, 0.74, 0.05), -ms-flex-positive 0.3s cubic-bezier(0.6, -1, 0.74, 0.05);
|
2624 |
+
}
|
2625 |
+
|
2626 |
+
.color.hidden .picker {
|
2627 |
+
opacity: 0;
|
2628 |
+
-webkit-transition: opacity .2s ease-out;
|
2629 |
+
transition: opacity .2s ease-out;
|
2630 |
+
}
|
2631 |
+
|
2632 |
+
.color .picker {
|
2633 |
+
-webkit-transition: opacity .3s ease-in-out, border-color .3s ease-in-out;
|
2634 |
+
transition: opacity .3s ease-in-out, border-color .3s ease-in-out;
|
2635 |
+
cursor: pointer;
|
2636 |
+
}
|
2637 |
+
|
2638 |
+
.color.inactive .picker {
|
2639 |
+
opacity: 0.2;
|
2640 |
+
}
|
2641 |
+
|
2642 |
+
.color.inactive .picker:hover {
|
2643 |
+
opacity: 1;
|
2644 |
+
}
|
2645 |
+
|
2646 |
+
input.c-color-palette__input[class] {
|
2647 |
+
margin-top: 1em;
|
2648 |
+
}
|
2649 |
+
|
2650 |
+
#customize-control-sm_toggle_advanced_settings_control {
|
2651 |
+
margin-bottom: 0;
|
2652 |
+
opacity: 0;
|
2653 |
+
}
|
2654 |
+
|
2655 |
+
#customize-control-sm_toggle_advanced_settings_control button {
|
2656 |
+
width: 100%;
|
2657 |
+
}
|
2658 |
+
|
2659 |
+
@-webkit-keyframes bounceIn {
|
2660 |
+
0%, 20%, 40%, 60%, 80%, 100% {
|
2661 |
+
-webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
|
2662 |
+
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
|
2663 |
+
}
|
2664 |
+
0% {
|
2665 |
+
opacity: 0;
|
2666 |
+
-webkit-transform: scale3d(0.3, 0.3, 0.3);
|
2667 |
+
transform: scale3d(0.3, 0.3, 0.3);
|
2668 |
+
}
|
2669 |
+
20% {
|
2670 |
+
-webkit-transform: scale3d(1.1, 1.1, 1.1);
|
2671 |
+
transform: scale3d(1.1, 1.1, 1.1);
|
2672 |
+
}
|
2673 |
+
40% {
|
2674 |
+
-webkit-transform: scale3d(0.9, 0.9, 0.9);
|
2675 |
+
transform: scale3d(0.9, 0.9, 0.9);
|
2676 |
+
}
|
2677 |
+
60% {
|
2678 |
+
opacity: 1;
|
2679 |
+
-webkit-transform: scale3d(1.03, 1.03, 1.03);
|
2680 |
+
transform: scale3d(1.03, 1.03, 1.03);
|
2681 |
+
}
|
2682 |
+
80% {
|
2683 |
+
-webkit-transform: scale3d(0.97, 0.97, 0.97);
|
2684 |
+
transform: scale3d(0.97, 0.97, 0.97);
|
2685 |
+
}
|
2686 |
+
100% {
|
2687 |
+
opacity: 1;
|
2688 |
+
-webkit-transform: scale3d(1, 1, 1);
|
2689 |
+
transform: scale3d(1, 1, 1);
|
2690 |
+
}
|
2691 |
+
}
|
2692 |
+
|
2693 |
+
@keyframes bounceIn {
|
2694 |
+
0%, 20%, 40%, 60%, 80%, 100% {
|
2695 |
+
-webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
|
2696 |
+
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
|
2697 |
+
}
|
2698 |
+
0% {
|
2699 |
+
opacity: 0;
|
2700 |
+
-webkit-transform: scale3d(0.3, 0.3, 0.3);
|
2701 |
+
transform: scale3d(0.3, 0.3, 0.3);
|
2702 |
+
}
|
2703 |
+
20% {
|
2704 |
+
-webkit-transform: scale3d(1.1, 1.1, 1.1);
|
2705 |
+
transform: scale3d(1.1, 1.1, 1.1);
|
2706 |
+
}
|
2707 |
+
40% {
|
2708 |
+
-webkit-transform: scale3d(0.9, 0.9, 0.9);
|
2709 |
+
transform: scale3d(0.9, 0.9, 0.9);
|
2710 |
+
}
|
2711 |
+
60% {
|
2712 |
+
opacity: 1;
|
2713 |
+
-webkit-transform: scale3d(1.03, 1.03, 1.03);
|
2714 |
+
transform: scale3d(1.03, 1.03, 1.03);
|
2715 |
+
}
|
2716 |
+
80% {
|
2717 |
+
-webkit-transform: scale3d(0.97, 0.97, 0.97);
|
2718 |
+
transform: scale3d(0.97, 0.97, 0.97);
|
2719 |
+
}
|
2720 |
+
100% {
|
2721 |
+
opacity: 1;
|
2722 |
+
-webkit-transform: scale3d(1, 1, 1);
|
2723 |
+
transform: scale3d(1, 1, 1);
|
2724 |
+
}
|
2725 |
+
}
|
2726 |
+
|
2727 |
+
#customize-theme-controls #sub-accordion-panel-style_manager_panel .customize-panel-description,
|
2728 |
+
#customize-theme-controls #sub-accordion-panel-theme_options_panel .customize-panel-description {
|
2729 |
+
display: block;
|
2730 |
+
}
|
2731 |
+
|
2732 |
+
#customize-theme-controls li#accordion-panel-style_manager_panel h3.accordion-section-title:before {
|
2733 |
+
position: relative;
|
2734 |
+
float: right;
|
2735 |
+
content: "";
|
2736 |
+
color: #aed2e5;
|
2737 |
+
font-family: dashicons;
|
2738 |
+
padding: 1px;
|
2739 |
+
margin-right: 28px;
|
2740 |
+
font-size: 17px;
|
2741 |
+
-webkit-font-smoothing: antialiased;
|
2742 |
+
}
|
2743 |
+
|
2744 |
+
#customize-theme-controls li#accordion-panel-style_manager_panel h3.accordion-section-title:before {
|
2745 |
+
font-size: 18px;
|
2746 |
+
color: #f8bc30;
|
2747 |
+
}
|
2748 |
+
|
2749 |
+
#customize-theme-controls li#accordion-section-sm_color_palettes_section h3.accordion-section-title:before {
|
2750 |
+
position: relative;
|
2751 |
+
float: right;
|
2752 |
+
content: "";
|
2753 |
+
color: #aed2e5;
|
2754 |
+
font-family: dashicons;
|
2755 |
+
padding: 1px;
|
2756 |
+
margin-right: 28px;
|
2757 |
+
font-size: 17px;
|
2758 |
+
-webkit-font-smoothing: antialiased;
|
2759 |
+
}
|
2760 |
+
|
2761 |
+
#customize-theme-controls li#accordion-section-sm_color_palettes_section h3.accordion-section-title {
|
2762 |
+
border-top: none;
|
2763 |
+
}
|
2764 |
+
|
2765 |
+
#customize-theme-controls li#accordion-section-sm_font_palettes_section h3.accordion-section-title:before {
|
2766 |
+
position: relative;
|
2767 |
+
float: right;
|
2768 |
+
content: "";
|
2769 |
+
color: #aed2e5;
|
2770 |
+
font-family: dashicons;
|
2771 |
+
padding: 1px;
|
2772 |
+
margin-right: 28px;
|
2773 |
+
font-size: 17px;
|
2774 |
+
-webkit-font-smoothing: antialiased;
|
2775 |
+
}
|
2776 |
+
|
2777 |
+
#customize-theme-controls li#accordion-section-sm_color_palettes_section h3.accordion-section-title:before,
|
2778 |
+
#customize-theme-controls li#accordion-section-sm_font_palettes_section h3.accordion-section-title:before {
|
2779 |
+
padding: 3px;
|
2780 |
+
margin-right: 5px;
|
2781 |
+
margin-top: -2px;
|
2782 |
+
}
|
2783 |
+
|
2784 |
+
#customize-theme-controls li#accordion-panel-theme_options_panel h3.accordion-section-title:before {
|
2785 |
+
position: relative;
|
2786 |
+
float: right;
|
2787 |
+
content: "";
|
2788 |
+
color: #aed2e5;
|
2789 |
+
font-family: dashicons;
|
2790 |
+
padding: 1px;
|
2791 |
+
margin-right: 28px;
|
2792 |
+
font-size: 17px;
|
2793 |
+
-webkit-font-smoothing: antialiased;
|
2794 |
+
}
|
2795 |
+
|
2796 |
+
#customize-theme-controls li#accordion-panel-theme_options_panel h3.accordion-section-title {
|
2797 |
+
border-bottom: 1px solid #ddd;
|
2798 |
+
border-left: none;
|
2799 |
+
border-right: none;
|
2800 |
+
margin: 0 0 15px 0;
|
2801 |
+
}
|
2802 |
+
|
2803 |
+
.color .disc {
|
2804 |
+
display: block;
|
2805 |
+
overflow: hidden;
|
2806 |
+
position: absolute;
|
2807 |
+
top: 0;
|
2808 |
+
right: 0;
|
2809 |
+
bottom: 0;
|
2810 |
+
left: 0;
|
2811 |
+
z-index: 15;
|
2812 |
+
pointer-events: none;
|
2813 |
+
opacity: 0;
|
2814 |
+
-webkit-transition: opacity .3s ease-in-out;
|
2815 |
+
transition: opacity .3s ease-in-out;
|
2816 |
+
}
|
2817 |
+
|
2818 |
+
.color .disc:after {
|
2819 |
+
content: "";
|
2820 |
+
-webkit-filter: blur(6px) saturate(0.7) brightness(1.1);
|
2821 |
+
filter: blur(6px) saturate(0.7) brightness(1.1);
|
2822 |
+
display: block;
|
2823 |
+
width: 200%;
|
2824 |
+
height: 200%;
|
2825 |
+
padding-top: 100%;
|
2826 |
+
position: absolute;
|
2827 |
+
top: -50%;
|
2828 |
+
left: -50%;
|
2829 |
+
-webkit-transform: scale(1);
|
2830 |
+
transform: scale(1);
|
2831 |
+
background-image: linear-gradient(330deg, transparent 50%, #ff8100 0), linear-gradient(300deg, transparent 50%, #ff5800 0), linear-gradient(270deg, transparent 50%, #c92323 0), linear-gradient(240deg, transparent 50%, #cc42a2 0), linear-gradient(210deg, transparent 50%, #9f49ac 0), linear-gradient(180deg, transparent 50%, #306cd3 0), linear-gradient(150deg, transparent 50%, #179067 0), linear-gradient(120deg, transparent 50%, #0eb5d6 0), linear-gradient(90deg, transparent 50%, #50b517 0), linear-gradient(60deg, transparent 50%, #ede604 0), linear-gradient(30deg, transparent 50%, #fc0 0), linear-gradient(0deg, transparent 50%, #feac00 0);
|
2832 |
+
background-clip: content-box,content-box,content-box,content-box,content-box,content-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box;
|
2833 |
+
}
|
2834 |
+
|
2835 |
+
.color.altered .disc {
|
2836 |
+
opacity: 1;
|
2837 |
+
}
|
2838 |
+
|
2839 |
+
.customize-control-color .wp-picker-container .iris-picker .iris-palette-container {
|
2840 |
+
display: -webkit-box;
|
2841 |
+
display: -ms-flexbox;
|
2842 |
+
display: flex;
|
2843 |
+
width: 215px;
|
2844 |
+
}
|
2845 |
+
|
2846 |
+
.customize-control-color .wp-picker-container .iris-picker .iris-palette {
|
2847 |
+
width: auto !important;
|
2848 |
+
height: auto !important;
|
2849 |
+
-webkit-box-flex: 1;
|
2850 |
+
-ms-flex: 1 1 0px;
|
2851 |
+
flex: 1 1 0;
|
2852 |
+
float: none;
|
2853 |
+
}
|
2854 |
+
|
2855 |
+
.customize-control-color .wp-picker-container .iris-picker .iris-palette:after {
|
2856 |
+
content: "";
|
2857 |
+
display: block;
|
2858 |
+
padding-top: 100%;
|
2859 |
+
}
|
2860 |
+
|
2861 |
+
.c-color-palette {
|
2862 |
+
padding: 30px 20px 18px;
|
2863 |
+
}
|
2864 |
+
|
2865 |
+
[id="customize-control-sm_current_color_palette_control"][id] {
|
2866 |
+
margin-bottom: 0;
|
2867 |
+
}
|
2868 |
+
|
2869 |
+
[id="customize-control-sm_current_color_palette_control"][id] ~ .customize-control {
|
2870 |
+
background-color: #FFFFFF;
|
2871 |
+
margin-bottom: 0;
|
2872 |
+
padding: 24px 20px 0;
|
2873 |
+
}
|
2874 |
+
|
2875 |
+
#customize-control-sm_dark_color_primary_slider_control,
|
2876 |
+
#customize-control-sm_dark_color_secondary_slider_control,
|
2877 |
+
#customize-control-sm_dark_color_tertiary_slider_control {
|
2878 |
+
display: none !important;
|
2879 |
+
}
|
2880 |
+
|
2881 |
+
.sm_color_matrix {
|
2882 |
+
display: -webkit-box;
|
2883 |
+
display: -ms-flexbox;
|
2884 |
+
display: flex;
|
2885 |
+
-ms-flex-wrap: wrap;
|
2886 |
+
flex-wrap: wrap;
|
2887 |
+
margin-left: -15px;
|
2888 |
+
}
|
2889 |
+
|
2890 |
+
.sm_color_matrix > * {
|
2891 |
+
display: grid;
|
2892 |
+
grid-auto-rows: 2px;
|
2893 |
+
grid-auto-columns: 2px;
|
2894 |
+
-webkit-box-flex: 0;
|
2895 |
+
-ms-flex: 0 0 33.33333%;
|
2896 |
+
flex: 0 0 33.33333%;
|
2897 |
+
padding-top: 15px;
|
2898 |
+
padding-left: 15px;
|
2899 |
+
}
|
2900 |
+
|
2901 |
+
.sm_color_matrix > * > * {
|
2902 |
+
background-color: currentColor;
|
2903 |
+
border-radius: 50%;
|
2904 |
+
border: 1px solid #ccc;
|
2905 |
+
-webkit-animation-duration: 0.75s;
|
2906 |
+
animation-duration: 0.75s;
|
2907 |
+
-webkit-animation-name: bounceIn;
|
2908 |
+
animation-name: bounceIn;
|
2909 |
+
}
|
2910 |
+
|
2911 |
+
.sm_color_matrix > * > :nth-child(1) {
|
2912 |
+
grid-area: 16 / 12 / span 12 / span 12;
|
2913 |
+
}
|
2914 |
+
|
2915 |
+
.sm_color_matrix > * > :nth-child(2) {
|
2916 |
+
grid-area: 26 / 24 / span 4 / span 4;
|
2917 |
+
}
|
2918 |
+
|
2919 |
+
.sm_color_matrix > * > :nth-child(3) {
|
2920 |
+
grid-area: 13 / 24 / span 4 / span 4;
|
2921 |
+
}
|
2922 |
+
|
2923 |
+
.sm_color_matrix > * > :nth-child(4) {
|
2924 |
+
grid-area: 8 / 8 / span 8 / span 8;
|
2925 |
+
}
|
2926 |
+
|
2927 |
+
.sm_color_matrix > * > :nth-child(5) {
|
2928 |
+
grid-area: 32 / 8 / span 4 / span 4;
|
2929 |
+
}
|
2930 |
+
|
2931 |
+
.sm_color_matrix > * > :nth-child(6) {
|
2932 |
+
grid-area: 30 / 16 / span 8 / span 8;
|
2933 |
+
}
|
2934 |
+
|
2935 |
+
.sm_color_matrix > * > :nth-child(7) {
|
2936 |
+
grid-area: 4 / 20 / span 8 / span 8;
|
2937 |
+
}
|
2938 |
+
|
2939 |
+
.sm_color_matrix > * > :nth-child(8) {
|
2940 |
+
grid-area: 17 / 26 / span 8 / span 8;
|
2941 |
+
}
|
2942 |
+
|
2943 |
+
.sm_color_matrix > * > :nth-child(9) {
|
2944 |
+
grid-area: 22 / 2 / span 8 / span 8;
|
2945 |
+
}
|
2946 |
+
|
2947 |
+
.sm_color_matrix > * > :nth-child(10) {
|
2948 |
+
grid-area: 28 / 11 / span 2 / span 2;
|
2949 |
+
}
|
2950 |
+
|
2951 |
+
.sm_color_matrix > * > :nth-child(11) {
|
2952 |
+
grid-area: 9 / 31 / span 6 / span 6;
|
2953 |
+
}
|
2954 |
+
|
2955 |
+
.sm_color_matrix > * > :nth-child(11) {
|
2956 |
+
grid-area: 26 / 30 / span 9 / span 9;
|
2957 |
+
}
|
2958 |
+
|
2959 |
+
.sm_color_matrix > * > :nth-child(12) {
|
2960 |
+
grid-area: 17 / 7 / span 4 / span 4;
|
2961 |
+
}
|
2962 |
+
|
2963 |
+
.sm_color_matrix > * > :nth-child(13) {
|
2964 |
+
grid-area: 19 / 36 / span 6 / span 6;
|
2965 |
+
}
|
2966 |
+
|
2967 |
+
.sm_color_matrix > * > :nth-child(14) {
|
2968 |
+
grid-area: 12 / 18 / span 2 / span 2;
|
2969 |
+
}
|
2970 |
+
|
2971 |
+
.sm_color_matrix > * > :nth-child(n+15) {
|
2972 |
+
display: none;
|
2973 |
+
}
|
2974 |
+
|
2975 |
+
.sm-tabs {
|
2976 |
+
display: -webkit-box;
|
2977 |
+
display: -ms-flexbox;
|
2978 |
+
display: flex;
|
2979 |
+
-webkit-box-pack: justify;
|
2980 |
+
-ms-flex-pack: justify;
|
2981 |
+
justify-content: space-between;
|
2982 |
+
padding: 0 16px;
|
2983 |
+
text-align: center;
|
2984 |
+
border-bottom: 1px solid #DFE8EF;
|
2985 |
+
}
|
2986 |
+
|
2987 |
+
.sm-tabs__item {
|
2988 |
+
padding: 12px 0;
|
2989 |
+
margin-bottom: -1px;
|
2990 |
+
-ms-flex-preferred-size: 31%;
|
2991 |
+
flex-basis: 31%;
|
2992 |
+
font-size: 14px;
|
2993 |
+
color: #416B7E;
|
2994 |
+
opacity: 0.7;
|
2995 |
+
border-bottom: 3px solid transparent;
|
2996 |
+
cursor: pointer;
|
2997 |
+
-webkit-transition: all 0.2s ease;
|
2998 |
+
transition: all 0.2s ease;
|
2999 |
+
}
|
3000 |
+
|
3001 |
+
.sm-tabs__item:not(.sm-tabs__item--active):hover {
|
3002 |
+
color: #2A3B44;
|
3003 |
+
border-bottom-color: #E2E4E7;
|
3004 |
+
opacity: 1;
|
3005 |
+
}
|
3006 |
+
|
3007 |
+
.sm-tabs__item--active {
|
3008 |
+
color: #2A3B44;
|
3009 |
+
border-bottom-color: #57ABD5;
|
3010 |
+
opacity: 1;
|
3011 |
+
}
|
3012 |
+
|
3013 |
+
[id="sub-accordion-section-sm_color_palettes_section"] {
|
3014 |
+
display: -webkit-box !important;
|
3015 |
+
display: -ms-flexbox !important;
|
3016 |
+
display: flex !important;
|
3017 |
+
-webkit-box-orient: vertical;
|
3018 |
+
-webkit-box-direction: normal;
|
3019 |
+
-ms-flex-direction: column;
|
3020 |
+
flex-direction: column;
|
3021 |
+
padding: 12px 0 0 !important;
|
3022 |
+
overflow: hidden;
|
3023 |
+
}
|
3024 |
+
|
3025 |
+
[id="sub-accordion-section-sm_color_palettes_section"] #customize-control-sm_color_palette_control {
|
3026 |
+
-ms-flex-negative: 0;
|
3027 |
+
flex-shrink: 0;
|
3028 |
+
-webkit-box-flex: 1;
|
3029 |
+
-ms-flex-positive: 1;
|
3030 |
+
flex-grow: 1;
|
3031 |
+
overflow-y: scroll;
|
3032 |
+
margin-bottom: 0;
|
3033 |
+
padding-top: 12px;
|
3034 |
+
}
|
3035 |
+
|
3036 |
+
[id="sub-accordion-section-sm_color_palettes_section"] > * {
|
3037 |
+
-webkit-box-flex: 0;
|
3038 |
+
-ms-flex-positive: 0;
|
3039 |
+
flex-grow: 0;
|
3040 |
+
padding: 0 12px;
|
3041 |
+
}
|
3042 |
+
|
3043 |
+
[id="sub-accordion-section-sm_color_palettes_section"] [id="customize-control-sm_current_color_palette_control"] ~ * {
|
3044 |
+
display: none !important;
|
3045 |
+
}
|
3046 |
+
|
3047 |
+
[id="sub-accordion-section-sm_color_palettes_section"] [id="customize-control-sm_palettes_description_control"] span,
|
3048 |
+
[id="sub-accordion-section-sm_color_palettes_section"] [id="customize-control-sm_filters_description_control"] span,
|
3049 |
+
[id="sub-accordion-section-sm_color_palettes_section"] [id="customize-control-sm_customize_description_control"] span {
|
3050 |
+
margin: 0;
|
3051 |
+
}
|
3052 |
+
|
3053 |
+
[id="sub-accordion-section-sm_color_palettes_section"].sm-view-palettes [id="customize-control-sm_palettes_description_control"],
|
3054 |
+
[id="sub-accordion-section-sm_color_palettes_section"].sm-view-palettes [id="customize-control-sm_color_palette_control"] {
|
3055 |
+
display: block !important;
|
3056 |
+
}
|
3057 |
+
|
3058 |
+
[id="sub-accordion-section-sm_color_palettes_section"].sm-view-filters [id="customize-control-sm_filters_description_control"],
|
3059 |
+
[id="sub-accordion-section-sm_color_palettes_section"].sm-view-filters [id="customize-control-sm_palette_filter_control"] {
|
3060 |
+
display: block !important;
|
3061 |
+
}
|
3062 |
+
|
3063 |
+
[id="sub-accordion-section-sm_color_palettes_section"].sm-view-customize [id="customize-control-sm_customize_description_control"],
|
3064 |
+
[id="sub-accordion-section-sm_color_palettes_section"].sm-view-customize [id="customize-control-sm_coloration_level_control"],
|
3065 |
+
[id="sub-accordion-section-sm_color_palettes_section"].sm-view-customize [id="customize-control-sm_color_diversity_control"],
|
3066 |
+
[id="sub-accordion-section-sm_color_palettes_section"].sm-view-customize [id="customize-control-sm_shuffle_colors_control"],
|
3067 |
+
[id="sub-accordion-section-sm_color_palettes_section"].sm-view-customize [id="customize-control-sm_dark_mode_control"] {
|
3068 |
+
display: block !important;
|
3069 |
+
}
|
3070 |
+
|
3071 |
+
[id="sub-accordion-section-sm_color_palettes_section"] [id="customize-control-sm_spacing_bottom_control"][id] {
|
3072 |
+
display: block !important;
|
3073 |
+
min-height: 24px;
|
3074 |
+
-webkit-box-flex: 1;
|
3075 |
+
-ms-flex-positive: 1;
|
3076 |
+
flex-grow: 1;
|
3077 |
+
}
|
3078 |
+
|
3079 |
+
[id="customize-control-sm_color_palette_control"] .customize-control-title, [id="customize-control-sm_color_palette_control"] .separator.label,
|
3080 |
+
[id="customize-control-sm_color_palette_control"] .customize-control-description {
|
3081 |
+
display: none;
|
3082 |
+
}
|
3083 |
+
|
3084 |
+
.customize-control-radio[class][id="customize-control-sm_palette_filter_control"] > .customize-inside-control-row:not(:only-of-type) {
|
3085 |
+
display: block;
|
3086 |
+
width: auto;
|
3087 |
+
}
|
3088 |
+
|
3089 |
+
.color[class*="sm_color"][class*="_connected"], .color[class*="sm_dark"][class*="_connected"], .color[class*="sm_light"][class*="_connected"] {
|
3090 |
+
display: none;
|
3091 |
+
}
|
3092 |
+
|
3093 |
+
.c-color-palette__colors {
|
3094 |
+
position: relative;
|
3095 |
+
}
|
3096 |
+
|
3097 |
+
.c-color-palette canvas, .c-color-palette svg {
|
3098 |
+
max-width: 100%;
|
3099 |
+
height: auto;
|
3100 |
+
}
|
3101 |
+
|
3102 |
+
.c-color-palette__fields {
|
3103 |
+
position: absolute;
|
3104 |
+
top: 100%;
|
3105 |
+
left: 0;
|
3106 |
+
right: 0;
|
3107 |
+
z-index: 100;
|
3108 |
+
}
|
3109 |
+
|
3110 |
+
[id="sub-accordion-section-sm_color_palettes_section"] > .customize-section-description-container {
|
3111 |
+
margin-bottom: 0;
|
3112 |
+
border-bottom: 1px solid #DFE8EF;
|
3113 |
+
}
|
3114 |
+
|
3115 |
+
.sm-palette-filter .colors {
|
3116 |
+
width: auto;
|
3117 |
+
height: auto;
|
3118 |
+
padding: 10px 10px;
|
3119 |
+
border-radius: 999em;
|
3120 |
+
}
|
3121 |
+
|
3122 |
+
.sm-palette-filter .picker:after {
|
3123 |
+
-webkit-box-shadow: inset 0 0 3px 0 rgba(0, 0, 0, 0.2);
|
3124 |
+
box-shadow: inset 0 0 3px 0 rgba(0, 0, 0, 0.2);
|
3125 |
+
}
|
3126 |
+
|
3127 |
+
.sm-palette-filter > label {
|
3128 |
+
position: relative;
|
3129 |
+
display: block;
|
3130 |
+
margin: 0 0 10px;
|
3131 |
+
}
|
3132 |
+
|
3133 |
+
.sm-palette-filter > label:hover .filter-label {
|
3134 |
+
opacity: 1;
|
3135 |
+
}
|
3136 |
+
|
3137 |
+
.sm-palette-filter > input {
|
3138 |
+
display: none;
|
3139 |
+
}
|
3140 |
+
|
3141 |
+
.sm-palette-filter .filter-label {
|
3142 |
+
position: absolute;
|
3143 |
+
top: 0;
|
3144 |
+
left: 0;
|
3145 |
+
z-index: 10;
|
3146 |
+
width: 100%;
|
3147 |
+
height: 100%;
|
3148 |
+
display: -webkit-box;
|
3149 |
+
display: -ms-flexbox;
|
3150 |
+
display: flex;
|
3151 |
+
-webkit-box-align: center;
|
3152 |
+
-ms-flex-align: center;
|
3153 |
+
align-items: center;
|
3154 |
+
-webkit-box-pack: center;
|
3155 |
+
-ms-flex-pack: center;
|
3156 |
+
justify-content: center;
|
3157 |
+
opacity: 0;
|
3158 |
+
-webkit-transition: opacity .2s ease-out;
|
3159 |
+
transition: opacity .2s ease-out;
|
3160 |
+
}
|
3161 |
+
|
3162 |
+
.sm-palette-filter .filter-label span {
|
3163 |
+
position: relative;
|
3164 |
+
z-index: 20;
|
3165 |
+
}
|
3166 |
+
|
3167 |
+
.sm-palette-filter .filter-label:after {
|
3168 |
+
content: "";
|
3169 |
+
display: block;
|
3170 |
+
position: absolute;
|
3171 |
+
top: 0;
|
3172 |
+
left: 0;
|
3173 |
+
z-index: 10;
|
3174 |
+
width: 100%;
|
3175 |
+
height: 100%;
|
3176 |
+
background-color: #ffffff;
|
3177 |
+
-webkit-box-shadow: #d6e0e5 0 0 0 1px;
|
3178 |
+
box-shadow: #d6e0e5 0 0 0 1px;
|
3179 |
+
border-radius: 999em;
|
3180 |
+
}
|
3181 |
+
|
3182 |
+
.sm-palette-filter > input:checked + label .filter-label:after {
|
3183 |
+
background-color: #f7f9fa;
|
3184 |
+
-webkit-box-shadow: none;
|
3185 |
+
box-shadow: none;
|
3186 |
+
}
|
3187 |
+
|
3188 |
+
.sm-palette-filter > input:checked + label .colors {
|
3189 |
+
background-color: #f7f9fa;
|
3190 |
+
-webkit-box-shadow: #57ABD5 0 0 0 2px;
|
3191 |
+
box-shadow: #57ABD5 0 0 0 2px;
|
3192 |
+
}
|
3193 |
+
|
3194 |
+
.customize-control-sm_palette_filter .customize-control-title, .customize-control-sm_palette_filter .separator.label {
|
3195 |
+
display: none;
|
3196 |
+
}
|
3197 |
+
|
3198 |
+
#customize-control-sm_font_palette_control ~ .customize-control {
|
3199 |
+
display: none !important;
|
3200 |
+
}
|
3201 |
+
|
3202 |
+
.pix_customizer_setting .font_palette[class][class] .customize-inside-control-row {
|
3203 |
+
height: auto;
|
3204 |
+
padding-top: 52%;
|
3205 |
+
background-color: white;
|
3206 |
+
border-radius: 6px;
|
3207 |
+
overflow: hidden;
|
3208 |
+
}
|
3209 |
+
|
3210 |
+
.pix_customizer_setting .font_palette[class][class] .customize-inside-control-row:before {
|
3211 |
+
border: 1px solid #DFE8EF;
|
3212 |
+
border-radius: 6px;
|
3213 |
+
}
|
3214 |
+
|
3215 |
+
.pix_customizer_setting .font_palette[class][class] .customize-inside-control-row:before, .pix_customizer_setting .font_palette[class][class] .customize-inside-control-row:hover:before {
|
3216 |
+
-webkit-box-shadow: 0 1px 0 0 #B8DAEB;
|
3217 |
+
box-shadow: 0 1px 0 0 #B8DAEB;
|
3218 |
+
}
|
3219 |
+
|
3220 |
+
.pix_customizer_setting .font_palette[class][class] .customize-inside-control-row input {
|
3221 |
+
display: none;
|
3222 |
+
}
|
3223 |
+
|
3224 |
+
.pix_customizer_setting .font_palette[class][class] .customize-inside-control-row label {
|
3225 |
+
border-radius: 6px;
|
3226 |
+
left: 0;
|
3227 |
+
}
|
3228 |
+
|
3229 |
+
.pix_customizer_setting .font_palette[class][class] .customize-inside-control-row input + label {
|
3230 |
+
border: 2px solid transparent;
|
3231 |
+
}
|
3232 |
+
|
3233 |
+
.pix_customizer_setting .font_palette[class][class] .customize-inside-control-row input:checked + label {
|
3234 |
+
border-color: #57ABD5;
|
3235 |
+
}
|
3236 |
+
|
3237 |
+
.pix_customizer_setting .font_palette[class][class] .customize-inside-control-row .label__inner {
|
3238 |
+
display: none;
|
3239 |
+
}
|
3240 |
+
|
3241 |
+
#customize-theme-controls .control-panel-content:not(.control-panel-nav_menus) .control-section:nth-child(2),
|
3242 |
#customize-theme-controls .control-panel-nav_menus .control-section-nav_menu,
|
3243 |
+
#customize-theme-controls .control-section-nav_menu_locations .accordion-section-title {
|
3244 |
+
border-top: 0;
|
|
|
3245 |
}
|
customify.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Customify
|
4 |
Plugin URI: https://wordpress.org/plugins/customify/
|
5 |
Description: A Theme Customizer Booster to easily customize Fonts, Colors, and other options for your site.
|
6 |
-
Version: 2.
|
7 |
Author: Pixelgrade
|
8 |
Author URI: https://pixelgrade.com
|
9 |
Author Email: contact@pixelgrade.com
|
@@ -12,7 +12,7 @@ License: GPL-2.0+
|
|
12 |
License URI: http://www.gnu.org/licenses/gpl-2.0.txt
|
13 |
Domain Path: /languages/
|
14 |
Requires at least: 4.9.9
|
15 |
-
Tested up to: 5.2.
|
16 |
*/
|
17 |
|
18 |
// If this file is called directly, abort.
|
@@ -32,7 +32,7 @@ require_once 'includes/extras.php';
|
|
32 |
function PixCustomifyPlugin() {
|
33 |
require_once plugin_dir_path( __FILE__ ) . 'includes/class-pixcustomify.php';
|
34 |
|
35 |
-
return PixCustomifyPlugin::instance( __FILE__, '2.
|
36 |
}
|
37 |
|
38 |
// Now get the party started
|
3 |
Plugin Name: Customify
|
4 |
Plugin URI: https://wordpress.org/plugins/customify/
|
5 |
Description: A Theme Customizer Booster to easily customize Fonts, Colors, and other options for your site.
|
6 |
+
Version: 2.4.0
|
7 |
Author: Pixelgrade
|
8 |
Author URI: https://pixelgrade.com
|
9 |
Author Email: contact@pixelgrade.com
|
12 |
License URI: http://www.gnu.org/licenses/gpl-2.0.txt
|
13 |
Domain Path: /languages/
|
14 |
Requires at least: 4.9.9
|
15 |
+
Tested up to: 5.2.2
|
16 |
*/
|
17 |
|
18 |
// If this file is called directly, abort.
|
32 |
function PixCustomifyPlugin() {
|
33 |
require_once plugin_dir_path( __FILE__ ) . 'includes/class-pixcustomify.php';
|
34 |
|
35 |
+
return PixCustomifyPlugin::instance( __FILE__, '2.4.0' );
|
36 |
}
|
37 |
|
38 |
// Now get the party started
|
features/customizer/controls/class-Pix_Customize_Background_Control.php
CHANGED
@@ -156,6 +156,10 @@ class Pix_Customize_Background_Control extends Pix_Customize_Control {
|
|
156 |
'inherit' => 'Inherit',
|
157 |
);
|
158 |
|
|
|
|
|
|
|
|
|
159 |
echo '<select id="' . $this->id . '-repeat-select" name="' . $this->setting->id . '[background-repeat]" class="customify_background_select ' . $this->field['class'] . ' ' . $hide . '" data-select_name="background-repeat" data-customize-setting-link="' . esc_attr( $this->setting->id ) . '[background-repeat]">';
|
160 |
echo '<option></option>';
|
161 |
foreach ( $array as $k => $v ) {
|
@@ -171,6 +175,11 @@ class Pix_Customize_Background_Control extends Pix_Customize_Control {
|
|
171 |
'content-box' => 'Content Box',
|
172 |
'padding-box' => 'Padding Box',
|
173 |
);
|
|
|
|
|
|
|
|
|
|
|
174 |
echo '<select id="' . $this->id . '-repeat-select" name="' . $this->setting->id . '[background-clip]" class="customify_background_select ' . $this->field['class'] . ' ' . $hide . '" data-select_name="background-clip" data-customize-setting-link="' . esc_attr( $this->setting->id ) . '[background-clip]">';
|
175 |
echo '<option></option>';
|
176 |
|
@@ -187,6 +196,11 @@ class Pix_Customize_Background_Control extends Pix_Customize_Control {
|
|
187 |
'content-box' => 'Content Box',
|
188 |
'padding-box' => 'Padding Box',
|
189 |
);
|
|
|
|
|
|
|
|
|
|
|
190 |
echo '<select id="' . $this->id . '-repeat-select" name="' . $this->setting->id . '[background-origin]" class="customify_background_select ' . $this->field['class'] . ' ' . $hide . '" data-select_name="background-origin" data-customize-setting-link="' . esc_attr( $this->setting->id ) . '[background-origin]">';
|
191 |
echo '<option></option>';
|
192 |
|
@@ -202,7 +216,12 @@ class Pix_Customize_Background_Control extends Pix_Customize_Control {
|
|
202 |
'cover' => 'Cover',
|
203 |
'contain' => 'Contain',
|
204 |
);
|
205 |
-
|
|
|
|
|
|
|
|
|
|
|
206 |
echo '<option></option>';
|
207 |
|
208 |
foreach ( $array as $k => $v ) {
|
@@ -217,6 +236,11 @@ class Pix_Customize_Background_Control extends Pix_Customize_Control {
|
|
217 |
'scroll' => 'Scroll',
|
218 |
'inherit' => 'Inherit',
|
219 |
);
|
|
|
|
|
|
|
|
|
|
|
220 |
echo '<select id="' . $this->id . '-attachment-select" name="' . $this->setting->id . '[background-attachment]" class="customify_background_select ' . $this->field['class'] . ' ' . $hide . '" data-select_name="background-attachment" data-customize-setting-link="' . esc_attr( $this->setting->id ) . '[background-attachment]">';
|
221 |
echo '<option></option>';
|
222 |
foreach ( $array as $k => $v ) {
|
@@ -237,6 +261,11 @@ class Pix_Customize_Background_Control extends Pix_Customize_Control {
|
|
237 |
'right center' => 'Right center',
|
238 |
'right bottom' => 'Right Bottom',
|
239 |
);
|
|
|
|
|
|
|
|
|
|
|
240 |
echo '<select id="' . $this->id . '-position-select" name="' . $this->setting->id . '[background-position]" class="customify_background_select ' . $this->field['class'] . ' ' . $hide . '" data-select_name="background-position" data-customize-setting-link="' . esc_attr( $this->setting->id ) . '[background-position]">';
|
241 |
echo '<option></option>';
|
242 |
|
@@ -250,4 +279,4 @@ class Pix_Customize_Background_Control extends Pix_Customize_Control {
|
|
250 |
static function css_output() {
|
251 |
|
252 |
}
|
253 |
-
}
|
156 |
'inherit' => 'Inherit',
|
157 |
);
|
158 |
|
159 |
+
if ( ! isset( $this->value['background-repeat'] ) ) {
|
160 |
+
$this->value['background-repeat'] = '';
|
161 |
+
}
|
162 |
+
|
163 |
echo '<select id="' . $this->id . '-repeat-select" name="' . $this->setting->id . '[background-repeat]" class="customify_background_select ' . $this->field['class'] . ' ' . $hide . '" data-select_name="background-repeat" data-customize-setting-link="' . esc_attr( $this->setting->id ) . '[background-repeat]">';
|
164 |
echo '<option></option>';
|
165 |
foreach ( $array as $k => $v ) {
|
175 |
'content-box' => 'Content Box',
|
176 |
'padding-box' => 'Padding Box',
|
177 |
);
|
178 |
+
|
179 |
+
if ( ! isset( $this->value['background-clip'] ) ) {
|
180 |
+
$this->value['background-clip'] = '';
|
181 |
+
}
|
182 |
+
|
183 |
echo '<select id="' . $this->id . '-repeat-select" name="' . $this->setting->id . '[background-clip]" class="customify_background_select ' . $this->field['class'] . ' ' . $hide . '" data-select_name="background-clip" data-customize-setting-link="' . esc_attr( $this->setting->id ) . '[background-clip]">';
|
184 |
echo '<option></option>';
|
185 |
|
196 |
'content-box' => 'Content Box',
|
197 |
'padding-box' => 'Padding Box',
|
198 |
);
|
199 |
+
|
200 |
+
if ( ! isset( $this->value['background-origin'] ) ) {
|
201 |
+
$this->value['background-origin'] = '';
|
202 |
+
}
|
203 |
+
|
204 |
echo '<select id="' . $this->id . '-repeat-select" name="' . $this->setting->id . '[background-origin]" class="customify_background_select ' . $this->field['class'] . ' ' . $hide . '" data-select_name="background-origin" data-customize-setting-link="' . esc_attr( $this->setting->id ) . '[background-origin]">';
|
205 |
echo '<option></option>';
|
206 |
|
216 |
'cover' => 'Cover',
|
217 |
'contain' => 'Contain',
|
218 |
);
|
219 |
+
|
220 |
+
if ( ! isset( $this->value['background-size'] ) ) {
|
221 |
+
$this->value['background-size'] = '';
|
222 |
+
}
|
223 |
+
|
224 |
+
echo '<select id="' . $this->id . '-repeat-select" name="' . esc_attr( $this->label ) . '[background-size]" class="customify_background_select ' . $this->field['class'] . ' ' . $hide . '" data-select_name="background-size" data-customize-setting-link="' . esc_attr( $this->setting->id ) . '[background-size]">';
|
225 |
echo '<option></option>';
|
226 |
|
227 |
foreach ( $array as $k => $v ) {
|
236 |
'scroll' => 'Scroll',
|
237 |
'inherit' => 'Inherit',
|
238 |
);
|
239 |
+
|
240 |
+
if ( ! isset( $this->value['background-attachment'] ) ) {
|
241 |
+
$this->value['background-attachment'] = '';
|
242 |
+
}
|
243 |
+
|
244 |
echo '<select id="' . $this->id . '-attachment-select" name="' . $this->setting->id . '[background-attachment]" class="customify_background_select ' . $this->field['class'] . ' ' . $hide . '" data-select_name="background-attachment" data-customize-setting-link="' . esc_attr( $this->setting->id ) . '[background-attachment]">';
|
245 |
echo '<option></option>';
|
246 |
foreach ( $array as $k => $v ) {
|
261 |
'right center' => 'Right center',
|
262 |
'right bottom' => 'Right Bottom',
|
263 |
);
|
264 |
+
|
265 |
+
if ( ! isset( $this->value['background-position'] ) ) {
|
266 |
+
$this->value['background-position'] = '';
|
267 |
+
}
|
268 |
+
|
269 |
echo '<select id="' . $this->id . '-position-select" name="' . $this->setting->id . '[background-position]" class="customify_background_select ' . $this->field['class'] . ' ' . $hide . '" data-select_name="background-position" data-customize-setting-link="' . esc_attr( $this->setting->id ) . '[background-position]">';
|
270 |
echo '<option></option>';
|
271 |
|
279 |
static function css_output() {
|
280 |
|
281 |
}
|
282 |
+
}
|
features/customizer/controls/class-Pix_Customize_Import_Demo_Data_Control.php
DELETED
@@ -1,57 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Class Pix_Customize_Import_Demo_Data_Control
|
5 |
-
*
|
6 |
-
*/
|
7 |
-
class Pix_Customize_Import_Demo_Data_Control extends Pix_Customize_Control {
|
8 |
-
public $type = 'import_demo_data';
|
9 |
-
public $action = null;
|
10 |
-
public $notices = array();
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Render the control's content.
|
14 |
-
*
|
15 |
-
* @since 3.4.0
|
16 |
-
*/
|
17 |
-
public function render_content() {?>
|
18 |
-
|
19 |
-
<a href="#" class="button button-primary customify_import_demo_data_button" data-key="<?php echo $this->setting->id ?>"><?php echo $this->label ?></a>
|
20 |
-
|
21 |
-
<div class="wpGrade-loading-wrap hidden">
|
22 |
-
<span class="wpGrade-loading wpGrade-import-loading"></span>
|
23 |
-
<div class="wpGrade-import-wait">
|
24 |
-
<?php
|
25 |
-
if ( isset( $this->notices['wait'] ) ) {
|
26 |
-
|
27 |
-
echo wp_kses( $this->notices['wait'], array(
|
28 |
-
'a' => array(
|
29 |
-
'href' => array(),
|
30 |
-
'title' => array()
|
31 |
-
),
|
32 |
-
'br' => array(),
|
33 |
-
'em' => array(),
|
34 |
-
'strong' => array(),
|
35 |
-
'p' => array(),
|
36 |
-
'div' => array( 'class', 'id' ),
|
37 |
-
'span' => array( 'class', 'id' ),
|
38 |
-
) );
|
39 |
-
|
40 |
-
} else {
|
41 |
-
esc_html_e( 'Please wait a few minutes (between 1 and 3 minutes usually, but depending on your hosting it can take longer) and ', 'customify' ); ?>
|
42 |
-
<strong><?php esc_html_e( 'don\'t reload the page', 'customify' ); ?></strong>
|
43 |
-
<?php esc_html__( 'You will be notified as soon as the import has finished!', 'customify' );
|
44 |
-
} ?>
|
45 |
-
</div>
|
46 |
-
</div>
|
47 |
-
|
48 |
-
<?php if ( ! empty( $this->description ) ) { ?>
|
49 |
-
<span class="description customize-control-description"><?php echo $this->description; ?></span>
|
50 |
-
<?php } ?>
|
51 |
-
|
52 |
-
<div class="wpGrade-import-results hidden"></div>
|
53 |
-
<div class="hr">
|
54 |
-
<div class="inner"><span> </span></div>
|
55 |
-
</div>
|
56 |
-
<?php }
|
57 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/admin-notifications-manager/admin-notice-manager.css
DELETED
@@ -1,29 +0,0 @@
|
|
1 |
-
/* Styling for Pixcloud Admin Notice Manager */
|
2 |
-
|
3 |
-
/* Style redirect button to look like link */
|
4 |
-
.pixcloud_anm-link {
|
5 |
-
color: #0073aa;
|
6 |
-
padding: 0;
|
7 |
-
margin: 0;
|
8 |
-
border-style: none;
|
9 |
-
background: none;
|
10 |
-
outline: 0;
|
11 |
-
transition-property: border, background, color;
|
12 |
-
transition-duration: .05s;
|
13 |
-
transition-timing-function: ease-in-out;
|
14 |
-
text-decoration: underline;
|
15 |
-
}
|
16 |
-
|
17 |
-
.pixcloud_anm-link:active {
|
18 |
-
color: #00a0d2;
|
19 |
-
}
|
20 |
-
|
21 |
-
.pixcloud_anm-link:hover {
|
22 |
-
color: #00a0d2;
|
23 |
-
cursor: pointer;
|
24 |
-
}
|
25 |
-
|
26 |
-
.pixcloud_anm-link:focus {
|
27 |
-
color: #124964;
|
28 |
-
box-shadow: 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, .8);
|
29 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/admin-notifications-manager/admin-notice-manager.js
DELETED
@@ -1,80 +0,0 @@
|
|
1 |
-
(function( $ ) {
|
2 |
-
'use strict';
|
3 |
-
|
4 |
-
/**
|
5 |
-
* Javascript for Admin Notice Manager
|
6 |
-
*/
|
7 |
-
|
8 |
-
// On document ready
|
9 |
-
$( function() {
|
10 |
-
|
11 |
-
var redirectUrl = '';
|
12 |
-
var dismissEvent = '';
|
13 |
-
var redirectNewTab = false;
|
14 |
-
|
15 |
-
// Send ajax
|
16 |
-
function ajaxDismiss( dismissElement ) {
|
17 |
-
var container = dismissElement.closest( '.notice' );
|
18 |
-
var noticeID = container.find('.pixcloud_anm-notice-id').val();
|
19 |
-
var data = {
|
20 |
-
action : container.find( '.pixcloud_anm-id' ).val() + '_dismiss_admin_notice',
|
21 |
-
noticeID : noticeID
|
22 |
-
};
|
23 |
-
data['nonce-pixcloud_anm-' + noticeID] = container.find( '#nonce-pixcloud_anm-' + noticeID ).val();
|
24 |
-
if ( dismissEvent.length ) {
|
25 |
-
data['pixcloud_anm-event'] = dismissEvent;
|
26 |
-
}
|
27 |
-
$.ajax({
|
28 |
-
url: ajaxurl,
|
29 |
-
type: 'post',
|
30 |
-
data: data
|
31 |
-
});
|
32 |
-
}
|
33 |
-
|
34 |
-
// Dismiss notice
|
35 |
-
function dismissNotice( dismissElement ) {
|
36 |
-
var container = dismissElement.closest( '.notice' );
|
37 |
-
container.fadeTo( 100, 0, function() {
|
38 |
-
container.slideUp( 100, function() {
|
39 |
-
container.remove();
|
40 |
-
});
|
41 |
-
});
|
42 |
-
}
|
43 |
-
|
44 |
-
// Send ajax on click of dismiss icon
|
45 |
-
$( 'body' ).on( 'click', '.notice-manager-ajax .notice-dismiss', function() {
|
46 |
-
ajaxDismiss( $(this) );
|
47 |
-
});
|
48 |
-
|
49 |
-
// On click of dismiss element, set redirect url or event and trigger ajax dismiss
|
50 |
-
$( 'body' ).on( 'click', '.pixcloud_anm-dismiss', function() {
|
51 |
-
if ( 'pixcloud_anm-redirect' == $(this).attr('name') ) {
|
52 |
-
redirectUrl = $(this).val();
|
53 |
-
if ( $(this).data( 'newtab' ) ) {
|
54 |
-
redirectNewTab = true;
|
55 |
-
}
|
56 |
-
} else if ( 'pixcloud_anm-event' == $(this).attr('name') ) {
|
57 |
-
dismissEvent = $(this).val();
|
58 |
-
}
|
59 |
-
ajaxDismiss( $(this) );
|
60 |
-
dismissNotice( $(this) );
|
61 |
-
});
|
62 |
-
|
63 |
-
// Prevent form submit and redirect if url has been set
|
64 |
-
$( 'body' ).on( 'submit', '.pixcloud_anm-form', function(evt) {
|
65 |
-
evt.preventDefault();
|
66 |
-
if ( redirectUrl.length > 0 ) {
|
67 |
-
setTimeout( function() {
|
68 |
-
if ( redirectNewTab ) {
|
69 |
-
window.open( redirectUrl, '_blank' );
|
70 |
-
} else {
|
71 |
-
window.location.href = redirectUrl;
|
72 |
-
}
|
73 |
-
}, 100 );
|
74 |
-
}
|
75 |
-
return false;
|
76 |
-
});
|
77 |
-
|
78 |
-
});
|
79 |
-
|
80 |
-
})( jQuery );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/admin-notifications-manager/class-admin-notifications-manager.php
DELETED
@@ -1,1300 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
*
|
5 |
-
* A class to handle the display and dismissal of pixcloud admin notices.
|
6 |
-
*
|
7 |
-
* This class started from this one https://github.com/jlad26/admin-notice-manager/blob/master/admin-notice-manager/class-admin-notice-manager.php
|
8 |
-
*
|
9 |
-
*/
|
10 |
-
class Pixcloud_Admin_Notifications_Manager {
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Holds the only instance of this class.
|
14 |
-
* @var null|Pixcloud_Admin_Notifications_Manager
|
15 |
-
* @access protected
|
16 |
-
* @since 1.9.0
|
17 |
-
*/
|
18 |
-
protected static $_instance = null;
|
19 |
-
|
20 |
-
/**
|
21 |
-
* The unique identifier of this admin notice manager.
|
22 |
-
*
|
23 |
-
* @access protected
|
24 |
-
* @since 1.9.0
|
25 |
-
* @var string $manager_id The string used to uniquely identify this manager.
|
26 |
-
* Used as a prefix to keys when storing in usermeta.
|
27 |
-
*/
|
28 |
-
protected $manager_id;
|
29 |
-
|
30 |
-
/**
|
31 |
-
* The version of this plugin.
|
32 |
-
*
|
33 |
-
* @access protected
|
34 |
-
* @since 1.9.0
|
35 |
-
* @var string $version The current version of the parent plugin.
|
36 |
-
*/
|
37 |
-
protected $version;
|
38 |
-
|
39 |
-
/**
|
40 |
-
* The url to the assets directory.
|
41 |
-
*
|
42 |
-
* @access protected
|
43 |
-
* @since 1.9.0
|
44 |
-
* @var string $url_to_assets_dir Url to the directory where the files admin-notice-manager.js and
|
45 |
-
* admin-notice-manager.css are located. Must include trailing slash.
|
46 |
-
*/
|
47 |
-
protected $url_to_assets_dir;
|
48 |
-
|
49 |
-
/**
|
50 |
-
* The text domain for translation.
|
51 |
-
*
|
52 |
-
* @access protected
|
53 |
-
* @since 1.9.0
|
54 |
-
* @var string $text_domain Text domain for translation.
|
55 |
-
*/
|
56 |
-
protected $text_domain;
|
57 |
-
|
58 |
-
/**
|
59 |
-
* Notifications to be processed and maybe displayed.
|
60 |
-
*
|
61 |
-
* @access protected
|
62 |
-
* @since 1.9.0
|
63 |
-
* @var array $notifications
|
64 |
-
*/
|
65 |
-
protected $notifications = array();
|
66 |
-
|
67 |
-
/**
|
68 |
-
* The supported notification types and their conversions.
|
69 |
-
*
|
70 |
-
* @access protected
|
71 |
-
* @since 1.9.0
|
72 |
-
* @var array
|
73 |
-
*/
|
74 |
-
protected $types = array(
|
75 |
-
'info' => 'info',
|
76 |
-
'standard_info' => 'info',
|
77 |
-
'success' => 'success',
|
78 |
-
'standard_success' => 'success',
|
79 |
-
'warning' => 'warning',
|
80 |
-
'standard_warning' => 'warning',
|
81 |
-
'error' => 'error',
|
82 |
-
'standard_error' => 'error',
|
83 |
-
'custom' => 'custom',
|
84 |
-
);
|
85 |
-
|
86 |
-
/**
|
87 |
-
* Constructor.
|
88 |
-
*
|
89 |
-
* @since 1.9.0
|
90 |
-
*
|
91 |
-
* @param array $args
|
92 |
-
*/
|
93 |
-
protected function __construct( $args = array() ) {
|
94 |
-
$this->init( $args );
|
95 |
-
}
|
96 |
-
|
97 |
-
/**
|
98 |
-
* Initialize the notifications manager.
|
99 |
-
*
|
100 |
-
* @since 1.9.0
|
101 |
-
*
|
102 |
-
* @param array $args {
|
103 |
-
*
|
104 |
-
* @type string $manager_id Unique id for this manager. Used as a prefix for database keys.
|
105 |
-
* @type string $plugin_name Name of the parent plugin.
|
106 |
-
* @type string $url_to_assets_dir Path to directory containing admin-notice-manager.js.
|
107 |
-
* @type string $text_domain Text domain for translation.
|
108 |
-
* @type string $version Plugin version.
|
109 |
-
* @type array $notifications Array of array of notifications with keys the notification id
|
110 |
-
* }
|
111 |
-
*/
|
112 |
-
public function init( array $args ) {
|
113 |
-
// We will only initialize in the WP dashboard (admin area).
|
114 |
-
if ( ! is_admin() ) {
|
115 |
-
return;
|
116 |
-
}
|
117 |
-
|
118 |
-
$defaults = array(
|
119 |
-
'manager_id' => 'pixcloud_anm',
|
120 |
-
'plugin_name' => 'Unnamed plugin',
|
121 |
-
'url_to_assets_dir' => '',
|
122 |
-
'text_domain' => 'default',
|
123 |
-
'version' => '',
|
124 |
-
'notifications' => array(),
|
125 |
-
);
|
126 |
-
|
127 |
-
$args = wp_parse_args( $args, $defaults );
|
128 |
-
|
129 |
-
// Set manager id, text domain and version.
|
130 |
-
$this->manager_id = empty( $args['manager_id'] ) ? 'pixcloud_anm' : $args['manager_id'];
|
131 |
-
$this->text_domain = $args['text_domain'];
|
132 |
-
$this->version = $args['version'];
|
133 |
-
$this->plugin_name = $args['plugin_name'];
|
134 |
-
$this->notifications = $args['notifications'];
|
135 |
-
|
136 |
-
// Add hooks, but only if we are not uninstalling the plugin.
|
137 |
-
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
|
138 |
-
$this->add_hooks();
|
139 |
-
}
|
140 |
-
|
141 |
-
// Set url to js directory, adding trailing slash if needed. Defaults to this file's directory.
|
142 |
-
if ( empty( $args['url_to_assets_dir'] ) ) {
|
143 |
-
$args['url_to_assets_dir'] = plugin_dir_url( __FILE__ );
|
144 |
-
}
|
145 |
-
if ( '/' != substr( $args['url_to_assets_dir'], - 1 ) ) {
|
146 |
-
$args['url_to_assets_dir'] .= '/';
|
147 |
-
}
|
148 |
-
$this->url_to_assets_dir = $args['url_to_assets_dir'];
|
149 |
-
|
150 |
-
// Make sure that the conditions processing logic is loaded.
|
151 |
-
require_once 'class-notification-conditions.php';
|
152 |
-
}
|
153 |
-
|
154 |
-
/**
|
155 |
-
* Initiate our hooks.
|
156 |
-
*
|
157 |
-
* @since 1.9.0
|
158 |
-
*/
|
159 |
-
public function add_hooks() {
|
160 |
-
// Add action to load remote notifications.
|
161 |
-
add_action( 'admin_init', array( $this, 'maybe_load_remote_notifications' ) );
|
162 |
-
|
163 |
-
// Add actions to display notices as needed.
|
164 |
-
add_action( 'admin_notices', array( $this, 'display_notices' ) );
|
165 |
-
|
166 |
-
// Add JS and ajax processing to handle dismissal of persistent notices.
|
167 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
|
168 |
-
add_action( 'wp_ajax_' . $this->manager_id . '_dismiss_admin_notice', array( $this, 'dismiss_notice' ) );
|
169 |
-
|
170 |
-
// Add notifications data to requests.
|
171 |
-
add_filter( 'customify_pixelgrade_cloud_request_data', array( $this, 'add_data_to_request' ), 10, 1 );
|
172 |
-
}
|
173 |
-
|
174 |
-
public function maybe_load_remote_notifications() {
|
175 |
-
if ( empty( $this->notifications ) ) {
|
176 |
-
$this->notifications = $this->convert_remote_notifications_config( $this->get_remote_notifications_config() );
|
177 |
-
}
|
178 |
-
}
|
179 |
-
|
180 |
-
/**
|
181 |
-
* Get the remote notifications configuration.
|
182 |
-
*
|
183 |
-
* @since 1.9.0
|
184 |
-
*
|
185 |
-
* @param bool $skip_cache Optional. Whether to use the cached config or fetch a new one.
|
186 |
-
*
|
187 |
-
* @return array
|
188 |
-
*/
|
189 |
-
public function get_remote_notifications_config( $skip_cache = false ) {
|
190 |
-
// Make sure that the Design Assets class is loaded.
|
191 |
-
require_once dirname(__FILE__ ) . '/../lib/class-customify-design-assets.php';
|
192 |
-
|
193 |
-
// Get the design assets data.
|
194 |
-
$design_assets = Customify_Design_Assets::instance()->get( $skip_cache );
|
195 |
-
if ( false === $design_assets || empty( $design_assets['notifications'] ) ) {
|
196 |
-
$notifications_config = array();
|
197 |
-
} else {
|
198 |
-
$notifications_config = $design_assets['notifications'];
|
199 |
-
}
|
200 |
-
|
201 |
-
return apply_filters( 'customify_get_remote_notifications', $notifications_config );
|
202 |
-
}
|
203 |
-
|
204 |
-
public function convert_remote_notifications_config( $notifications_config ) {
|
205 |
-
$notifications = array();
|
206 |
-
if ( empty( $notifications_config ) || ! is_array( $notifications_config ) ) {
|
207 |
-
return $notifications;
|
208 |
-
}
|
209 |
-
|
210 |
-
foreach ( $notifications_config as $notification_config ) {
|
211 |
-
// Make sure we have something to work with.
|
212 |
-
if ( empty( $notification_config['hashid'] ) || empty( $notification_config['options'] ) || ! is_array( $notification_config['options'] ) ) {
|
213 |
-
continue;
|
214 |
-
}
|
215 |
-
|
216 |
-
$options = $notification_config['options'];
|
217 |
-
|
218 |
-
$options['id'] = $notification_config['hashid'];
|
219 |
-
|
220 |
-
// Make sure we support the notification type.
|
221 |
-
if ( empty( $options['type']) || ! array_key_exists( $options['type'], $this->types ) ) {
|
222 |
-
continue;
|
223 |
-
}
|
224 |
-
// Use the standard (converted) type.
|
225 |
-
$options['type'] = $this->types[ $options['type'] ];
|
226 |
-
|
227 |
-
// Handle the empty message.
|
228 |
-
if ( empty( $options['message'] ) ) {
|
229 |
-
continue;
|
230 |
-
}
|
231 |
-
|
232 |
-
// Parse the details.
|
233 |
-
$notification = $this->parse_notice_args( $options );
|
234 |
-
|
235 |
-
if ( ! empty( $notification ) ) {
|
236 |
-
$notifications[ $notification_config['hashid'] ] = $notification;
|
237 |
-
}
|
238 |
-
}
|
239 |
-
|
240 |
-
return $notifications;
|
241 |
-
}
|
242 |
-
|
243 |
-
/**
|
244 |
-
* Parse notice args.
|
245 |
-
*
|
246 |
-
* @access protected
|
247 |
-
* @since 1.9.0
|
248 |
-
*
|
249 |
-
* @param array $notice Array of user-set args
|
250 |
-
*
|
251 |
-
* @return array|false Notice with defaults validated and set as necessary, or false if values not validated.
|
252 |
-
*/
|
253 |
-
protected function parse_notice_args( $notice ) {
|
254 |
-
if ( empty( $notice ) ) {
|
255 |
-
return false;
|
256 |
-
}
|
257 |
-
|
258 |
-
// Set the notice arguments using defaults where necessary. (user_ids should always be set for an opt out notice.)
|
259 |
-
$defaults = array(
|
260 |
-
'type' => 'error',
|
261 |
-
'message' => '',
|
262 |
-
'container_classes' => array(),
|
263 |
-
'wrap_tag' => 'p',
|
264 |
-
'user_ids' => array(),
|
265 |
-
'screen_ids' => array(),
|
266 |
-
'post_ids' => array(),
|
267 |
-
'persistent' => false,
|
268 |
-
'dismissable' => true,
|
269 |
-
'no_js_dismissable' => false,
|
270 |
-
'dismiss_for_all_users' => false,
|
271 |
-
);
|
272 |
-
|
273 |
-
$notice = wp_parse_args( $notice, $defaults );
|
274 |
-
|
275 |
-
// Set the notice id if not already set.
|
276 |
-
if ( ! isset( $notice['id'] ) ) {
|
277 |
-
$notice['id'] = md5( $notice['message'] . $notice['type'] );
|
278 |
-
}
|
279 |
-
|
280 |
-
// Set the screen ids if not already set. (Will always already be set for opt out notices.)
|
281 |
-
if ( ! isset( $notice['screen_ids'] ) ) {
|
282 |
-
|
283 |
-
// Default is generally all screens...
|
284 |
-
$notice['screen_ids'] = array();
|
285 |
-
|
286 |
-
// ...but for persistent notices we set default to current screen if we can
|
287 |
-
if ( $notice['persistent'] && $screen_id = $this->get_current_screen_id() ) {
|
288 |
-
$notice['screen_ids'] = array( $screen_id );
|
289 |
-
}
|
290 |
-
}
|
291 |
-
|
292 |
-
// If notice is not dismissable, set no-js-dismissable to false as well.
|
293 |
-
if ( ! $notice['dismissable'] ) {
|
294 |
-
$notice['no_js_dismissable'] = false;
|
295 |
-
}
|
296 |
-
|
297 |
-
// Validate all values.
|
298 |
-
foreach ( $notice as $key => $value ) {
|
299 |
-
|
300 |
-
switch ( $key ) {
|
301 |
-
case 'id' :
|
302 |
-
if ( ! is_string( $value ) && ! is_int( $value ) ) {
|
303 |
-
return false;
|
304 |
-
}
|
305 |
-
break;
|
306 |
-
case 'message' :
|
307 |
-
if ( ! is_string( $value ) && ! is_array( $value ) ) {
|
308 |
-
return false;
|
309 |
-
}
|
310 |
-
if ( empty( $value ) ) {
|
311 |
-
return false;
|
312 |
-
}
|
313 |
-
break;
|
314 |
-
case 'wrap_tag' :
|
315 |
-
if ( ! is_string( $value ) ) {
|
316 |
-
return false;
|
317 |
-
}
|
318 |
-
break;
|
319 |
-
case 'user_ids' :
|
320 |
-
if ( ! is_array( $value ) ) {
|
321 |
-
return false;
|
322 |
-
} else {
|
323 |
-
foreach ( $value as $user_info ) {
|
324 |
-
if ( ! is_int( $user_info ) && ! is_string( $user_info ) ) {
|
325 |
-
return false;
|
326 |
-
break;
|
327 |
-
}
|
328 |
-
}
|
329 |
-
}
|
330 |
-
break;
|
331 |
-
case 'screen_ids' :
|
332 |
-
if ( ! is_array( $value ) ) {
|
333 |
-
return false;
|
334 |
-
} else {
|
335 |
-
foreach ( $value as $screen_id ) {
|
336 |
-
if ( ! is_string( $screen_id ) ) {
|
337 |
-
return false;
|
338 |
-
break;
|
339 |
-
}
|
340 |
-
}
|
341 |
-
}
|
342 |
-
break;
|
343 |
-
case 'post_ids' :
|
344 |
-
if ( ! is_array( $value ) ) {
|
345 |
-
return false;
|
346 |
-
} else {
|
347 |
-
foreach ( $value as $post_id ) {
|
348 |
-
if ( ! is_int( $post_id ) ) {
|
349 |
-
return false;
|
350 |
-
break;
|
351 |
-
}
|
352 |
-
}
|
353 |
-
}
|
354 |
-
break;
|
355 |
-
case 'persistent' :
|
356 |
-
case 'dismissable' :
|
357 |
-
case 'dismiss_for_all_users' :
|
358 |
-
if ( ! is_bool( $value ) ) {
|
359 |
-
return false;
|
360 |
-
}
|
361 |
-
break;
|
362 |
-
default:
|
363 |
-
break;
|
364 |
-
}
|
365 |
-
}
|
366 |
-
|
367 |
-
return $notice;
|
368 |
-
}
|
369 |
-
|
370 |
-
/**
|
371 |
-
* Enqueue scripts and styles.
|
372 |
-
*
|
373 |
-
* @param string $hook Hook
|
374 |
-
*
|
375 |
-
* @hooked admin_enqueue_scripts
|
376 |
-
*/
|
377 |
-
public function enqueue_scripts( $hook ) {
|
378 |
-
// Note that handle is not specific to the manager id so if we are using two plugins with the notice manager files are only loaded once.
|
379 |
-
wp_enqueue_script( 'pixcloud-admin-notice-manager-js', $this->url_to_assets_dir . 'admin-notice-manager.js', array( 'jquery' ), $this->version );
|
380 |
-
wp_enqueue_style( 'pixcloud-admin-notice-manager-css', $this->url_to_assets_dir . 'admin-notice-manager.css', array(), $this->version );
|
381 |
-
}
|
382 |
-
|
383 |
-
/**
|
384 |
-
* Add a notification.
|
385 |
-
*
|
386 |
-
* @since 1.9.0
|
387 |
-
*
|
388 |
-
* @param array $notice {
|
389 |
-
* @type string $id Unique id for this notice. Default is hashed value of some of the notice parameters.
|
390 |
-
* Setting an id is recommended however - otherwise non-unique ids are possible and may
|
391 |
-
* cause unexpected deletion of notices. Updating messages when they are changed by the
|
392 |
-
* developer gets fiddly too.
|
393 |
-
* @type string $message Message to be displayed.
|
394 |
-
* @type string $wrap_tag Tag to wrap message in. Default is 'p'. Set to empty string or false for no wrap.
|
395 |
-
* @type string $type One of 'success', 'error', warning', 'info'. Default is 'error'.
|
396 |
-
* @type array $user_ids Empty array means all users. Default is all users (not current user).
|
397 |
-
* For example: array( 3, 'administrator', 55, 153, 'editors' ) will set the message
|
398 |
-
* for users with ids of 3, 55 and 153, and for all users that are administrators or editors.
|
399 |
-
* @type array $screen_ids Array of screen ids on which message should be displayed.
|
400 |
-
* Set to empty array for all screens. If left unset the current screen is set if possible,
|
401 |
-
* it is recommended to explicitly specify the desired screen rather than leaving unset.
|
402 |
-
* If during testing the notice is set on a screen that is then not viewed because of a redirect
|
403 |
-
* (e.g. options), changing the screen in the notice args will have no effect because the notice
|
404 |
-
* has been stored in the db and will not be updated.
|
405 |
-
* Default is all screens (empty array).
|
406 |
-
* @type array $post_ids Array of post ids on which message should be displayed. Empty array means all posts.
|
407 |
-
* Default is all posts.
|
408 |
-
* @type string $persistent True for persistent, false for one-time. Default is false.
|
409 |
-
* @type bool $dismissable Whether notice is dismissable. Default is true.
|
410 |
-
* @type bool $no_js_dismissable Whether to give option to dismiss notice if no js. Only applies when $dismissable is true.
|
411 |
-
* Default is false. Caution should be used in setting this to true. The act of dismissing the
|
412 |
-
* notice refreshes the screen so any changed data on screen will be lost. This could be extremely
|
413 |
-
* frustrating for a user who has just entered or updated loads of data (e.g., when editing a post).
|
414 |
-
* @type bool $dismiss_for_all_users Whether to delete notice for all users or just the user that has dismissed the notice.
|
415 |
-
* Only applies when $dismissable is true. Default is false.
|
416 |
-
* }
|
417 |
-
* @return array|WP_Error|bool Notice that has been set by user, or error if notice has failed.
|
418 |
-
*/
|
419 |
-
public function add_notification( array $notice ) {
|
420 |
-
|
421 |
-
// If not set, set user ids to empty array to indicate all users.
|
422 |
-
if ( ! isset( $notice['user_ids'] ) ) {
|
423 |
-
$notice['user_ids'] = array();
|
424 |
-
}
|
425 |
-
|
426 |
-
// If required, set default screen ids to all screens.
|
427 |
-
if ( ! isset( $notice['screen_ids'] ) ) {
|
428 |
-
$notice['screen_ids'] = array();
|
429 |
-
}
|
430 |
-
|
431 |
-
$notice = $this->parse_notice_args( $notice );
|
432 |
-
|
433 |
-
$notice_id = $notice['id'];
|
434 |
-
unset( $notice['id'] );
|
435 |
-
|
436 |
-
$notices = $this->notifications;
|
437 |
-
|
438 |
-
// Add new notice to existing notices. NB this over-writes a notice with the same id.
|
439 |
-
$notices[ $notice_id ] = $notice;
|
440 |
-
|
441 |
-
// Update notices.
|
442 |
-
$this->notifications = $notices;
|
443 |
-
|
444 |
-
return $notice;
|
445 |
-
|
446 |
-
}
|
447 |
-
|
448 |
-
/**
|
449 |
-
* Add notifications.
|
450 |
-
*
|
451 |
-
* @since 1.9.0
|
452 |
-
*
|
453 |
-
* @param array $notices Array of notices. If notice id is not set, key of array is used.
|
454 |
-
*
|
455 |
-
* @return array Array with keys as notice ids and values as either notice set or WP Error object.
|
456 |
-
*/
|
457 |
-
public function add_notifications( array $notices ) {
|
458 |
-
|
459 |
-
$results = array();
|
460 |
-
|
461 |
-
foreach ( $notices as $key => $notice ) {
|
462 |
-
if ( ! isset( $notice['id'] ) ) {
|
463 |
-
$notice['id'] = $key;
|
464 |
-
}
|
465 |
-
$results[] = $this->add_notification( $notice );
|
466 |
-
}
|
467 |
-
|
468 |
-
return $results;
|
469 |
-
|
470 |
-
}
|
471 |
-
|
472 |
-
/**
|
473 |
-
* Parse user ids, converting roles to user ids.
|
474 |
-
*
|
475 |
-
* @access protected
|
476 |
-
* @since 1.9.0
|
477 |
-
*
|
478 |
-
* @param array $user_ids
|
479 |
-
*
|
480 |
-
* @return array $user_ids Parsed user ids
|
481 |
-
*/
|
482 |
-
protected function parse_user_roles( array $user_ids ) {
|
483 |
-
|
484 |
-
// Convert user roles to user ids and add them.
|
485 |
-
if ( ! empty( $user_ids ) ) {
|
486 |
-
|
487 |
-
$user_roles = array();
|
488 |
-
foreach ( $user_ids as $key => $user_info ) {
|
489 |
-
if ( is_string( $user_info ) ) {
|
490 |
-
$user_roles[] = $user_info;
|
491 |
-
unset( $user_ids[ $key ] );
|
492 |
-
}
|
493 |
-
}
|
494 |
-
if ( ! empty( $user_roles ) ) {
|
495 |
-
$args = array(
|
496 |
-
'count_total' => false,
|
497 |
-
'fields' => 'ID',
|
498 |
-
'role__in' => $user_roles,
|
499 |
-
);
|
500 |
-
$role_user_ids = get_users( $args );
|
501 |
-
|
502 |
-
if ( ! empty( $role_user_ids ) ) {
|
503 |
-
$user_ids = array_unique( array_merge( $user_ids, $role_user_ids ) );
|
504 |
-
}
|
505 |
-
}
|
506 |
-
}
|
507 |
-
|
508 |
-
return $user_ids;
|
509 |
-
|
510 |
-
}
|
511 |
-
|
512 |
-
|
513 |
-
/**
|
514 |
-
* Get current screen id.
|
515 |
-
*
|
516 |
-
* @since 1.9.0
|
517 |
-
*
|
518 |
-
* @access protected
|
519 |
-
* @return int $screen_id id of current screen, 0 if not available
|
520 |
-
*/
|
521 |
-
protected function get_current_screen_id() {
|
522 |
-
$screen_id = 0;
|
523 |
-
if ( function_exists( 'get_current_screen' ) ) {
|
524 |
-
$screen = get_current_screen();
|
525 |
-
if ( ! empty( $screen ) ) {
|
526 |
-
$screen_id = $screen->id;
|
527 |
-
}
|
528 |
-
}
|
529 |
-
|
530 |
-
return $screen_id;
|
531 |
-
}
|
532 |
-
|
533 |
-
/**
|
534 |
-
* Returns html for a dismiss on redirect link.
|
535 |
-
*
|
536 |
-
* @since 1.9.0
|
537 |
-
*
|
538 |
-
* @param array $args {
|
539 |
-
*
|
540 |
-
* @type string $content Html to display as link.
|
541 |
-
* @type string $redirect Redirect url. Set as empty string for no redirect. Default is no redirect.
|
542 |
-
* @type string $new_tab If true, link is opened in a new window / tab (equivalent to target="_blank". Default is false.
|
543 |
-
* Only works on browsers with js enabled.
|
544 |
-
* @type array $classes Array of classes for the button. Default is array( pixcloud_anm-link ) which styles as a link.
|
545 |
-
* }
|
546 |
-
* @return string Button html (styled by default as link)
|
547 |
-
*/
|
548 |
-
public function dismiss_on_redirect_link( array $args ) {
|
549 |
-
|
550 |
-
$defaults = array(
|
551 |
-
'content' => 'Undefined',
|
552 |
-
'redirect' => '',
|
553 |
-
'new_tab' => false,
|
554 |
-
'classes' => array( 'pixcloud_anm-link' ),
|
555 |
-
);
|
556 |
-
|
557 |
-
$args = wp_parse_args( $args, $defaults );
|
558 |
-
|
559 |
-
$classes = array( 'pixcloud_anm-dismiss' );
|
560 |
-
if ( ! empty( $args['classes'] ) && is_array( $args['classes'] ) ) {
|
561 |
-
$classes = array_merge( $args['classes'], $classes );
|
562 |
-
}
|
563 |
-
$classes = implode( ' ', $classes );
|
564 |
-
|
565 |
-
// Add button with value of redirect url.
|
566 |
-
return '<button type="submit" class="' . $classes . '" name="pixcloud_anm-redirect" data-newtab="' . intval( $args['new_tab'] ) . '" value="' . esc_attr( $args['redirect'] ) . '">' . $args['content'] . '</button>';
|
567 |
-
|
568 |
-
}
|
569 |
-
|
570 |
-
/**
|
571 |
-
* Returns html for button that triggers a specific action hook.
|
572 |
-
*
|
573 |
-
* @since 1.9.0
|
574 |
-
*
|
575 |
-
* @param array $args {
|
576 |
-
*
|
577 |
-
* @type string $content Html to display as button / link content.
|
578 |
-
* @type string $event String to identify dismiss event. The action triggered will be
|
579 |
-
* "{$manager_id}_user_notice_dismissed_{$notice_id}_{$event}" and the dismissing
|
580 |
-
* user id is passed as an argument to the action. Leave unset for no specific action to be fired.
|
581 |
-
* @type array $classes Array of classes for the button. Default is array( pixcloud_anm-link ) which styles as a link.
|
582 |
-
* }
|
583 |
-
* @return string
|
584 |
-
*/
|
585 |
-
public function dismiss_event_button( array $args ) {
|
586 |
-
|
587 |
-
$defaults = array(
|
588 |
-
'content' => 'Undefined',
|
589 |
-
'event' => '',
|
590 |
-
'classes' => array( 'pixcloud_anm-link' ),
|
591 |
-
);
|
592 |
-
|
593 |
-
$args = wp_parse_args( $args, $defaults );
|
594 |
-
|
595 |
-
$classes = array( 'pixcloud_anm-dismiss', 'pixcloud_anm-event' );
|
596 |
-
if ( ! empty( $args['classes'] ) && is_array( $args['classes'] ) ) {
|
597 |
-
$classes = array_merge( $args['classes'], $classes );
|
598 |
-
}
|
599 |
-
$classes = implode( ' ', $classes );
|
600 |
-
|
601 |
-
// Add button with value of event.
|
602 |
-
return '<button type="submit" class="' . $classes . '" name="pixcloud_anm-event" value="' . esc_attr( $args['event'] ) . '">' . $args['content'] . '</button>';
|
603 |
-
|
604 |
-
}
|
605 |
-
|
606 |
-
/**
|
607 |
-
* Display user notices.
|
608 |
-
*
|
609 |
-
* @since 1.9.0
|
610 |
-
*
|
611 |
-
* @hooked admin_notices
|
612 |
-
*/
|
613 |
-
public function display_notices() {
|
614 |
-
|
615 |
-
$screen_id = $this->get_current_screen_id();
|
616 |
-
$user_id = get_current_user_id();
|
617 |
-
|
618 |
-
$this->display_opt_out_notices( $screen_id, $user_id );
|
619 |
-
}
|
620 |
-
|
621 |
-
/**
|
622 |
-
* Display opt out notices.
|
623 |
-
*
|
624 |
-
* @access protected
|
625 |
-
* @since 1.9.0
|
626 |
-
*
|
627 |
-
* @param int $screen_id Current screen id (0 if not known).
|
628 |
-
* @param int $user_id Current user id.
|
629 |
-
*/
|
630 |
-
protected function display_opt_out_notices( $screen_id, $user_id ) {
|
631 |
-
|
632 |
-
global $post;
|
633 |
-
$post_id = is_object( $post ) ? $post->ID : 0;
|
634 |
-
|
635 |
-
$notices = $this->notifications;
|
636 |
-
|
637 |
-
if ( ! empty( $notices ) ) {
|
638 |
-
$user_notifications_details = get_user_meta( $user_id, $this->manager_id . '_notifications', true );
|
639 |
-
|
640 |
-
foreach ( $notices as $notice_id => $notice ) {
|
641 |
-
|
642 |
-
$notice['id'] = $notice_id;
|
643 |
-
|
644 |
-
// If screen ids have been specified, check whether notice should be displayed
|
645 |
-
if ( ! empty( $notice['screen_ids'] ) ) {
|
646 |
-
if ( ! in_array( $screen_id, $notice['screen_ids'] ) ) {
|
647 |
-
continue;
|
648 |
-
}
|
649 |
-
}
|
650 |
-
|
651 |
-
// If post ids have been specified, check whether notice should be displayed
|
652 |
-
if ( ! empty( $notice['post_ids'] ) ) {
|
653 |
-
if ( ! in_array( $post_id, $notice['post_ids'] ) ) {
|
654 |
-
continue;
|
655 |
-
}
|
656 |
-
}
|
657 |
-
|
658 |
-
// If user ids or roles have been specified, check whether notice should be displayed to the current user.
|
659 |
-
if ( ! empty( $notice['user_ids'] ) ) {
|
660 |
-
// Convert roles to user ids
|
661 |
-
$user_ids = $this->parse_user_roles( $notice['user_ids'] );
|
662 |
-
|
663 |
-
if ( ! in_array( $user_id, $user_ids ) ) {
|
664 |
-
continue;
|
665 |
-
}
|
666 |
-
}
|
667 |
-
|
668 |
-
// Check whether user has already dismissed this notice
|
669 |
-
if ( ! empty( $user_notifications_details ) ) {
|
670 |
-
if ( array_key_exists( $notice['id'], $user_notifications_details ) && ! empty( $user_notifications_details[ $notice['id'] ]['dismissed'] ) ) {
|
671 |
-
continue;
|
672 |
-
}
|
673 |
-
}
|
674 |
-
|
675 |
-
// Check the start and end dates.
|
676 |
-
if ( ! empty( $notice['start_date'] ) && time() < strtotime( $notice['start_date'] ) ) {
|
677 |
-
continue;
|
678 |
-
}
|
679 |
-
if ( ! empty( $notice['end_date'] ) && strtotime( $notice['end_date'] ) < time() ) {
|
680 |
-
continue;
|
681 |
-
}
|
682 |
-
|
683 |
-
$display = true;
|
684 |
-
// If the notice has local conditions, process them.
|
685 |
-
if ( ! empty( $notice['local_conditions'] ) ) {
|
686 |
-
$display = Pixcloud_Notification_Conditions::process( $notice['local_conditions'] );
|
687 |
-
}
|
688 |
-
|
689 |
-
// Display the notice with option to filter display.
|
690 |
-
if ( true === apply_filters( $this->manager_id . '_display_notice', $display, $notice ) ) {
|
691 |
-
|
692 |
-
if ( 'custom' !== $notice['type'] ) {
|
693 |
-
$this->display_standard_notice( $notice );
|
694 |
-
} else {
|
695 |
-
$this->display_custom_notice( $notice );
|
696 |
-
}
|
697 |
-
|
698 |
-
// Register the notice display
|
699 |
-
$this->register_user_notice_display( $notice['id'], $user_id );
|
700 |
-
|
701 |
-
// Remove notice once viewed if this is a one-time notice.
|
702 |
-
if ( ! $notice['persistent'] ) {
|
703 |
-
$this->dismiss_notice_for_user( $notice['id'], $user_id );
|
704 |
-
}
|
705 |
-
}
|
706 |
-
}
|
707 |
-
}
|
708 |
-
}
|
709 |
-
|
710 |
-
/**
|
711 |
-
* Display standard notice.
|
712 |
-
*
|
713 |
-
* @access protected
|
714 |
-
* @since 1.9.0
|
715 |
-
*
|
716 |
-
* @param array $notice array of notice parameters.
|
717 |
-
*/
|
718 |
-
protected function display_standard_notice( $notice ) {
|
719 |
-
|
720 |
-
// Add classes to the notice container as needed.
|
721 |
-
$container_classes = array(
|
722 |
-
'notice',
|
723 |
-
'notice-' . esc_attr( $notice['type'] ),
|
724 |
-
);
|
725 |
-
if ( $notice['dismissable'] ) {
|
726 |
-
$container_classes[] = 'is-dismissible';
|
727 |
-
}
|
728 |
-
if ( $notice['persistent'] && $notice['dismissable'] ) {
|
729 |
-
$container_classes[] = 'notice-manager-ajax';
|
730 |
-
}
|
731 |
-
|
732 |
-
// Parse any content tags.
|
733 |
-
$notice['message'] = self::parse_content_tags( $notice['message'] );
|
734 |
-
|
735 |
-
// Convert newlines to <br>s.
|
736 |
-
$notice['message'] = nl2br( $notice['message'] );
|
737 |
-
|
738 |
-
if ( ! empty( $notice['wrap_tag'] ) ) {
|
739 |
-
$notice['message'] = '<' . $notice['wrap_tag'] . '>' . $notice['message'] . '</' . $notice['wrap_tag'] . '>';
|
740 |
-
}
|
741 |
-
|
742 |
-
// Display the notice markup.
|
743 |
-
?>
|
744 |
-
<div id="<?php echo esc_attr( $this->manager_id . '-' . $notice['id'] ); ?>" class="<?php echo implode( ' ', $container_classes ); ?>">
|
745 |
-
<form class="pixcloud_anm-form"
|
746 |
-
action="<?php echo admin_url( 'admin-ajax.php?action=' . $this->manager_id . '_dismiss_admin_notice' ); ?>"
|
747 |
-
method="post">
|
748 |
-
<?php if ( in_array( 'notice-manager-ajax', $container_classes ) ) { ?>
|
749 |
-
<input type="hidden" class="pixcloud_anm-id" value="<?php echo esc_attr( $this->manager_id ); ?>"/>
|
750 |
-
<input type="hidden" class="pixcloud_anm-notice-id" name="noticeID"
|
751 |
-
value="<?php echo esc_attr( $this->manager_id . '-' . $notice['id'] ); ?>"/>
|
752 |
-
<noscript><input type="hidden" name="pixcloud_anm-no-js" value="1"/></noscript>
|
753 |
-
<?php wp_nonce_field( $this->manager_id . '_dismiss_admin_notice', 'nonce-pixcloud_anm-' . $this->manager_id . '-' . $notice['id'] );
|
754 |
-
}
|
755 |
-
if ( $notice['no_js_dismissable'] ) {
|
756 |
-
?>
|
757 |
-
<noscript>
|
758 |
-
<table>
|
759 |
-
<tr>
|
760 |
-
<td style="width: 100%">
|
761 |
-
</noscript><?php
|
762 |
-
}
|
763 |
-
|
764 |
-
echo $notice['message'];
|
765 |
-
|
766 |
-
if ( $notice['no_js_dismissable'] ) {
|
767 |
-
?>
|
768 |
-
<noscript>
|
769 |
-
</td>
|
770 |
-
<td>
|
771 |
-
<button type="submit" class="notice-dismiss"><span class="screen-reader-text"><?php esc_html_e( 'Dismiss this notice.', 'customify' ); ?></span>
|
772 |
-
</button>
|
773 |
-
</td>
|
774 |
-
</tr></table>
|
775 |
-
</noscript>
|
776 |
-
<?php } ?>
|
777 |
-
</form>
|
778 |
-
</div>
|
779 |
-
<?php
|
780 |
-
}
|
781 |
-
|
782 |
-
/**
|
783 |
-
* Display custom notice.
|
784 |
-
*
|
785 |
-
* @access protected
|
786 |
-
* @since 1.9.0
|
787 |
-
*
|
788 |
-
* @param array $notice array of notice parameters.
|
789 |
-
*/
|
790 |
-
protected function display_custom_notice( $notice ) {
|
791 |
-
|
792 |
-
// Add classes to the notice container as needed.
|
793 |
-
$container_classes = array(
|
794 |
-
'notice', // this class is needed by WordPress to properly identify notices and move/enhance them with JS.
|
795 |
-
);
|
796 |
-
|
797 |
-
// Merge with the custom classes received.
|
798 |
-
if ( ! empty( $notice['container_classes' ] ) || is_array( $notice['container_classes'] ) ) {
|
799 |
-
$container_classes = array_merge( $container_classes, $notice['container_classes'] );
|
800 |
-
}
|
801 |
-
|
802 |
-
if ( $notice['dismissable'] ) {
|
803 |
-
$container_classes[] = 'is-dismissible';
|
804 |
-
}
|
805 |
-
if ( $notice['persistent'] && $notice['dismissable'] ) {
|
806 |
-
$container_classes[] = 'notice-manager-ajax';
|
807 |
-
}
|
808 |
-
|
809 |
-
// Standardize the message since we can receive the markup directly or a complex data structure with markup, CSS, and so on.
|
810 |
-
if ( is_string( $notice['message'] ) ) {
|
811 |
-
$notice['message'] = array(
|
812 |
-
'markup' => $notice['message'],
|
813 |
-
);
|
814 |
-
}
|
815 |
-
|
816 |
-
// Bail if we don't have any markup.
|
817 |
-
if ( empty( $notice['message']['markup'] ) ) {
|
818 |
-
return;
|
819 |
-
}
|
820 |
-
|
821 |
-
// Parse any content tags.
|
822 |
-
$notice['message']['markup'] = self::parse_content_tags( $notice['message']['markup'] );
|
823 |
-
|
824 |
-
// Output the custom CSS.
|
825 |
-
if ( ! empty( $notice['message']['css'] ) ) { ?>
|
826 |
-
<style type="text/css">
|
827 |
-
<?php echo $notice['message']['css']; ?>
|
828 |
-
</style>
|
829 |
-
<?php }
|
830 |
-
|
831 |
-
// Display the notice markup.
|
832 |
-
?>
|
833 |
-
<div id="<?php echo esc_attr( $this->manager_id . '-' . $notice['id'] ); ?>" class="<?php echo implode( ' ', $container_classes ); ?>">
|
834 |
-
<form class="pixcloud_anm-form"
|
835 |
-
action="<?php echo admin_url( 'admin-ajax.php?action=' . $this->manager_id . '_dismiss_admin_notice' ); ?>"
|
836 |
-
method="post">
|
837 |
-
<?php if ( in_array( 'notice-manager-ajax', $container_classes ) ) { ?>
|
838 |
-
<input type="hidden" class="pixcloud_anm-id" value="<?php echo esc_attr( $this->manager_id ); ?>"/>
|
839 |
-
<input type="hidden" class="pixcloud_anm-notice-id" name="noticeID"
|
840 |
-
value="<?php echo esc_attr( $this->manager_id . '-' . $notice['id'] ); ?>"/>
|
841 |
-
<noscript><input type="hidden" name="pixcloud_anm-no-js" value="1"/></noscript>
|
842 |
-
<?php wp_nonce_field( $this->manager_id . '_dismiss_admin_notice', 'nonce-pixcloud_anm-' . $this->manager_id . '-' . $notice['id'] );
|
843 |
-
}
|
844 |
-
if ( $notice['no_js_dismissable'] ) {
|
845 |
-
?>
|
846 |
-
<noscript>
|
847 |
-
<table>
|
848 |
-
<tr>
|
849 |
-
<td style="width: 100%">
|
850 |
-
</noscript><?php
|
851 |
-
}
|
852 |
-
|
853 |
-
echo $notice['message']['markup'];
|
854 |
-
|
855 |
-
if ( $notice['no_js_dismissable'] ) {
|
856 |
-
?>
|
857 |
-
<noscript>
|
858 |
-
</td>
|
859 |
-
<td>
|
860 |
-
<button type="submit" class="notice-dismiss"><span class="screen-reader-text"><?php esc_html_e( 'Dismiss this notice.', 'customify' ); ?></span></button>
|
861 |
-
</td>
|
862 |
-
</tr></table>
|
863 |
-
</noscript>
|
864 |
-
<?php } ?>
|
865 |
-
</form>
|
866 |
-
</div>
|
867 |
-
<?php
|
868 |
-
}
|
869 |
-
|
870 |
-
/**
|
871 |
-
* Replace any content tags present in the content.
|
872 |
-
*
|
873 |
-
* @param string $content
|
874 |
-
*
|
875 |
-
* @return string
|
876 |
-
*/
|
877 |
-
protected function parse_content_tags( $content ) {
|
878 |
-
$original_content = $content;
|
879 |
-
|
880 |
-
// Allow others to alter the content before we do our work
|
881 |
-
$content = apply_filters( 'pixcloud_notifications_before_parse_content_tags', $content );
|
882 |
-
|
883 |
-
// Now we will replace all the supported tags with their value
|
884 |
-
// %year%
|
885 |
-
$content = str_replace( '%year%', date( 'Y' ), $content );
|
886 |
-
|
887 |
-
// %site-title% or %site_title%
|
888 |
-
$content = str_replace( '%site-title%', get_bloginfo( 'name' ), $content );
|
889 |
-
$content = str_replace( '%site_title%', get_bloginfo( 'name' ), $content );
|
890 |
-
|
891 |
-
// Handle the current user tags.
|
892 |
-
if ( false !== strpos( $content, '%user_first_name%' ) ||
|
893 |
-
false !== strpos( $content, '%user_last_name%' ) ||
|
894 |
-
false !== strpos( $content, '%user_nickname%' ) ||
|
895 |
-
false !== strpos( $content, '%user_display_name%' ) ) {
|
896 |
-
$user = wp_get_current_user();
|
897 |
-
|
898 |
-
if ( ! empty( $user ) && ! is_wp_error( $user ) ) {
|
899 |
-
// %first_name%
|
900 |
-
if ( ! empty( $user->first_name ) ) {
|
901 |
-
$content = str_replace( '%user_first_name%', $user->first_name, $content );
|
902 |
-
} else {
|
903 |
-
// Fallback to display_name.
|
904 |
-
$content = str_replace( '%user_first_name%', $user->display_name, $content );
|
905 |
-
}
|
906 |
-
// %last_name%
|
907 |
-
$content = str_replace( '%user_last_name%', $user->last_name, $content );
|
908 |
-
// %display_name%
|
909 |
-
$content = str_replace( '%user_nickname%', $user->display_name, $content );
|
910 |
-
// %nickname%
|
911 |
-
$content = str_replace( '%user_display_name%', $user->nickname, $content );
|
912 |
-
}
|
913 |
-
}
|
914 |
-
|
915 |
-
// %active_theme%
|
916 |
-
$content = str_replace( '%active_theme%', Pixcloud_Notification_Conditions::get_active_theme_name(), $content );
|
917 |
-
|
918 |
-
// %customify_version%
|
919 |
-
$content = str_replace( '%customify_version%', Pixcloud_Notification_Conditions::get_customify_version(), $content );
|
920 |
-
|
921 |
-
// %style_manager_version%
|
922 |
-
$content = str_replace( '%style_manager_version%', Pixcloud_Notification_Conditions::get_style_manager_version(), $content );
|
923 |
-
|
924 |
-
// %current_color_palette%
|
925 |
-
$content = str_replace( '%current_color_palette%', Pixcloud_Notification_Conditions::get_current_color_palette_label(), $content );
|
926 |
-
|
927 |
-
/*
|
928 |
-
* URLs.
|
929 |
-
*/
|
930 |
-
// %home_url%
|
931 |
-
$content = str_replace( '%home_url%', home_url(), $content );
|
932 |
-
|
933 |
-
// %customizer_url%
|
934 |
-
$content = str_replace( '%customizer_url%', wp_customize_url(), $content );
|
935 |
-
// %customizer_style_manager_url%
|
936 |
-
$section_link = add_query_arg( array( 'autofocus[panel]' => 'style_manager_panel' ), admin_url( 'customize.php' ) );
|
937 |
-
$content = str_replace( '%customizer_style_manager_url%', $section_link, $content );
|
938 |
-
// %customizer_style_manager_colors_url%
|
939 |
-
$section_link = add_query_arg( array( 'autofocus[section]' => 'sm_color_palettes_section' ), admin_url( 'customize.php' ) );
|
940 |
-
$content = str_replace( '%customizer_style_manager_colors_url%', $section_link, $content );
|
941 |
-
// %customizer_style_manager_fonts_url%
|
942 |
-
$section_link = add_query_arg( array( 'autofocus[section]' => 'sm_font_palettes_section' ), admin_url( 'customize.php' ) );
|
943 |
-
$content = str_replace( '%customizer_style_manager_fonts_url%', $section_link, $content );
|
944 |
-
// %customizer_theme_options_url%
|
945 |
-
$section_link = add_query_arg( array( 'autofocus[panel]' => 'theme_options_panel' ), admin_url( 'customize.php' ) );
|
946 |
-
$content = str_replace( '%customizer_theme_options_url%', $section_link, $content );
|
947 |
-
// %customizer_menus_url%
|
948 |
-
$section_link = add_query_arg( array( 'autofocus[panel]' => 'nav_menus' ), admin_url( 'customize.php' ) );
|
949 |
-
$content = str_replace( '%customizer_menus_url%', $section_link, $content );
|
950 |
-
// %customizer_widgets_url%
|
951 |
-
$section_link = add_query_arg( array( 'autofocus[panel]' => 'widgets' ), admin_url( 'customize.php' ) );
|
952 |
-
$content = str_replace( '%customizer_widgets_url%', $section_link, $content );
|
953 |
-
// %customizer_homepage_settings_url%
|
954 |
-
$section_link = add_query_arg( array( 'autofocus[section]' => 'static_front_page' ), admin_url( 'customize.php' ) );
|
955 |
-
$content = str_replace( '%customizer_homepage_settings_url%', $section_link, $content );
|
956 |
-
// %customizer_site_identity_url%
|
957 |
-
$section_link = add_query_arg( array( 'autofocus[section]' => 'publish_settings' ), admin_url( 'customize.php' ) );
|
958 |
-
$content = str_replace( '%customizer_site_identity_url%', $section_link, $content );
|
959 |
-
|
960 |
-
// %pixelgrade_care_dashboard_url%
|
961 |
-
$content = str_replace( '%pixelgrade_care_dashboard_url%', admin_url( 'admin.php?page=pixelgrade_care' ), $content );
|
962 |
-
// %pixelgrade_care_themes_url%
|
963 |
-
$content = str_replace( '%pixelgrade_care_themes_url%', admin_url( 'admin.php?page=pixelgrade_themes' ), $content );
|
964 |
-
|
965 |
-
// Allow others to alter the content after we did our work
|
966 |
-
return apply_filters( 'pixcloud_notifications_after_parse_content_tags', $content, $original_content );
|
967 |
-
}
|
968 |
-
|
969 |
-
/**
|
970 |
-
* Process ajax call to dismiss notice.
|
971 |
-
*
|
972 |
-
* @since 1.9.0
|
973 |
-
*/
|
974 |
-
public function dismiss_notice() {
|
975 |
-
|
976 |
-
if ( isset( $_POST['noticeID'] ) ) {
|
977 |
-
|
978 |
-
$notice_id = sanitize_text_field( $_POST['noticeID'] );
|
979 |
-
|
980 |
-
// Check nonce.
|
981 |
-
check_ajax_referer( $this->manager_id . '_dismiss_admin_notice', 'nonce-pixcloud_anm-' . $notice_id );
|
982 |
-
|
983 |
-
// Sanitize message ID after stripping off the '[manager_id]-'.
|
984 |
-
$notice_id = str_replace( $this->manager_id . '-', '', sanitize_text_field( $_POST['noticeID'] ) );
|
985 |
-
|
986 |
-
// Get notice info.
|
987 |
-
if ( $user = wp_get_current_user() ) {
|
988 |
-
|
989 |
-
// Get event if there was one.
|
990 |
-
$event = isset( $_POST['pixcloud_anm-event'] ) ? sanitize_text_field( $_POST['pixcloud_anm-event'] ) : false;
|
991 |
-
|
992 |
-
if ( ! empty( $this->notifications[ $notice_id ] ) && ! empty( $this->notifications[ $notice_id ]['dismissable'] ) ) {
|
993 |
-
|
994 |
-
if ( ! empty( $this->notifications[ $notice_id ]['dismiss_for_all_users'] ) ) {
|
995 |
-
// Dismiss for all users
|
996 |
-
$this->dismiss_notice_for_all_users( $notice_id, $this->notifications[ $notice_id ], $event );
|
997 |
-
} else {
|
998 |
-
// Dismiss notice just for the current user.
|
999 |
-
$this->dismiss_notice_for_user( $notice_id, $user->ID, $event );
|
1000 |
-
}
|
1001 |
-
|
1002 |
-
// Redirect if this is not an ajax request.
|
1003 |
-
if ( isset( $_POST['pixcloud_anm-no-js'] ) ) {
|
1004 |
-
|
1005 |
-
// If a redirect has been set, use it.
|
1006 |
-
if ( isset( $_POST['pixcloud_anm-redirect'] ) ) {
|
1007 |
-
if ( ! empty( $_POST['pixcloud_anm-redirect'] ) ) {
|
1008 |
-
wp_redirect( $_POST['pixcloud_anm-redirect'] );
|
1009 |
-
exit();
|
1010 |
-
}
|
1011 |
-
}
|
1012 |
-
|
1013 |
-
// If not redirected, go back to where we came from.
|
1014 |
-
wp_safe_redirect( wp_get_referer() );
|
1015 |
-
exit();
|
1016 |
-
}
|
1017 |
-
}
|
1018 |
-
}
|
1019 |
-
}
|
1020 |
-
|
1021 |
-
wp_die();
|
1022 |
-
|
1023 |
-
}
|
1024 |
-
|
1025 |
-
/**
|
1026 |
-
* Add dismissal to all users for a notice.
|
1027 |
-
*
|
1028 |
-
* @access protected
|
1029 |
-
* @since 1.9.0
|
1030 |
-
*
|
1031 |
-
* @param string $notice_id Unique ID of message.
|
1032 |
-
* @param array $notice The notice details.
|
1033 |
-
* @param string|false $event
|
1034 |
-
*
|
1035 |
-
* @return bool $dismissed True if notice was dismissed successfully.
|
1036 |
-
*/
|
1037 |
-
protected function dismiss_notice_for_all_users( $notice_id, $notice, $event = false ) {
|
1038 |
-
|
1039 |
-
$dismissed = true;
|
1040 |
-
|
1041 |
-
// If user ids have been specified, check whether notice should be displayed to this user
|
1042 |
-
if ( ! empty( $notice['user_ids'] ) ) {
|
1043 |
-
// Convert roles to user ids
|
1044 |
-
$user_ids = $this->parse_user_roles( $notice['user_ids'] );
|
1045 |
-
} else {
|
1046 |
-
$user_ids = get_users( array( 'fields' => 'id' ) );
|
1047 |
-
}
|
1048 |
-
|
1049 |
-
if ( ! empty( $user_ids ) && is_array( $user_ids ) ) {
|
1050 |
-
foreach ( $user_ids as $user_id ) {
|
1051 |
-
// We are only interested in failures. One failure is enough to return false overall.
|
1052 |
-
$dismissed = $this->dismiss_notice_for_user( $notice_id, $user_id, $event ) ? $dismissed : false;
|
1053 |
-
}
|
1054 |
-
}
|
1055 |
-
|
1056 |
-
return $dismissed;
|
1057 |
-
}
|
1058 |
-
|
1059 |
-
/**
|
1060 |
-
* Add dismissal to a user for a notice.
|
1061 |
-
*
|
1062 |
-
* @access protected
|
1063 |
-
* @since 1.9.0
|
1064 |
-
*
|
1065 |
-
* @param string $notice_id Unique ID of message.
|
1066 |
-
* @param int $user_id User id for whom message should be dismissed.
|
1067 |
-
* @param string|false $event
|
1068 |
-
*
|
1069 |
-
* @return bool $dismissed True if notice was dismissed successfully.
|
1070 |
-
*/
|
1071 |
-
protected function dismiss_notice_for_user( $notice_id, $user_id, $event = false ) {
|
1072 |
-
|
1073 |
-
$dismissed = false;
|
1074 |
-
if ( ! $notices = get_user_meta( $user_id, $this->manager_id . '_notifications', true ) ) {
|
1075 |
-
$notices = array();
|
1076 |
-
}
|
1077 |
-
|
1078 |
-
if ( ! array_key_exists( $notice_id, $notices ) ) {
|
1079 |
-
$notices[ $notice_id ] = array(
|
1080 |
-
'dismissed' => true,
|
1081 |
-
);
|
1082 |
-
$dismissed = update_user_meta( $user_id, $this->manager_id . '_notifications', $notices );
|
1083 |
-
} elseif ( empty( $notices[ $notice_id ]['dismissed'] ) ) {
|
1084 |
-
$notices[ $notice_id ]['dismissed'] = true;
|
1085 |
-
$dismissed = update_user_meta( $user_id, $this->manager_id . '_notifications', $notices );
|
1086 |
-
}
|
1087 |
-
|
1088 |
-
// Allow for other actions on dismissal of notice.
|
1089 |
-
if ( $dismissed ) {
|
1090 |
-
do_action( $this->manager_id . '_user_notice_dismissed_' . $notice_id, $user_id );
|
1091 |
-
if ( $event ) {
|
1092 |
-
do_action( $this->manager_id . '_user_notice_dismissed_' . $notice_id . '_' . $event, $user_id );
|
1093 |
-
}
|
1094 |
-
}
|
1095 |
-
|
1096 |
-
return $dismissed;
|
1097 |
-
|
1098 |
-
}
|
1099 |
-
|
1100 |
-
/**
|
1101 |
-
* Register display of a notice for a user.
|
1102 |
-
*
|
1103 |
-
* @access protected
|
1104 |
-
* @since 1.9.0
|
1105 |
-
*
|
1106 |
-
* @param string $notice_id Unique ID of notice.
|
1107 |
-
* @param int $user_id User id for whom the notice should be registered as displayed.
|
1108 |
-
*
|
1109 |
-
* @return bool $displayed True if notice was registered as displayed successfully.
|
1110 |
-
*/
|
1111 |
-
protected function register_user_notice_display( $notice_id, $user_id ) {
|
1112 |
-
|
1113 |
-
$registered = false;
|
1114 |
-
if ( ! $notices = get_user_meta( $user_id, $this->manager_id . '_notifications', true ) ) {
|
1115 |
-
$notices = array();
|
1116 |
-
}
|
1117 |
-
|
1118 |
-
if ( ! array_key_exists( $notice_id, $notices ) ) {
|
1119 |
-
$notices[ $notice_id ] = array(
|
1120 |
-
'displayed' => true,
|
1121 |
-
);
|
1122 |
-
$registered = update_user_meta( $user_id, $this->manager_id . '_notifications', $notices );
|
1123 |
-
} elseif ( empty( $notices[ $notice_id ]['displayed'] ) ) {
|
1124 |
-
$notices[ $notice_id ]['displayed'] = true;
|
1125 |
-
$registered = update_user_meta( $user_id, $this->manager_id . '_notifications', $notices );
|
1126 |
-
}
|
1127 |
-
|
1128 |
-
// Allow for other actions on register display of notice.
|
1129 |
-
if ( $registered ) {
|
1130 |
-
do_action( $this->manager_id . '_user_notice_displayed_' . $notice_id, $user_id );
|
1131 |
-
}
|
1132 |
-
|
1133 |
-
return $registered;
|
1134 |
-
|
1135 |
-
}
|
1136 |
-
|
1137 |
-
/**
|
1138 |
-
* Get all user ids with notifications data.
|
1139 |
-
*
|
1140 |
-
* @since 1.9.0
|
1141 |
-
*
|
1142 |
-
* @access protected
|
1143 |
-
* @return array Array of user ids.
|
1144 |
-
*/
|
1145 |
-
protected function get_users_with_notifications_data() {
|
1146 |
-
|
1147 |
-
$args = array(
|
1148 |
-
'meta_query' => array(
|
1149 |
-
array(
|
1150 |
-
'key' => $this->manager_id . '_notifications',
|
1151 |
-
'compare' => '!=',
|
1152 |
-
'value' => '',
|
1153 |
-
),
|
1154 |
-
),
|
1155 |
-
'fields' => 'ID',
|
1156 |
-
);
|
1157 |
-
|
1158 |
-
return get_users( $args );
|
1159 |
-
|
1160 |
-
}
|
1161 |
-
|
1162 |
-
/**
|
1163 |
-
* Remove notifications data from a user.
|
1164 |
-
*
|
1165 |
-
* @since 1.9.0
|
1166 |
-
*
|
1167 |
-
* @param int $user_id User ID from whom to remove dismissals. Set to 0 for all users.
|
1168 |
-
* @param array $notice_ids Array of notice ids to remove
|
1169 |
-
*/
|
1170 |
-
public function remove_user_notifications_data( $user_id = 0, $notice_ids = array() ) {
|
1171 |
-
|
1172 |
-
if ( ! empty( $notice_ids ) ) {
|
1173 |
-
|
1174 |
-
if ( $user_notifications_details = get_user_meta( $user_id, $this->manager_id . '_notifications', true ) ) {
|
1175 |
-
|
1176 |
-
$update = false;
|
1177 |
-
foreach ( $notice_ids as $notice_id ) {
|
1178 |
-
if ( ! empty( $user_notifications_details[ $notice_id ] ) ) {
|
1179 |
-
unset( $user_notifications_details[ $notice_id ] );
|
1180 |
-
$update = true;
|
1181 |
-
}
|
1182 |
-
}
|
1183 |
-
|
1184 |
-
if ( $update ) {
|
1185 |
-
if ( empty( $user_notifications_details ) ) {
|
1186 |
-
delete_user_meta( $user_id, $this->manager_id . '_notifications' );
|
1187 |
-
} else {
|
1188 |
-
update_user_meta( $user_id, $this->manager_id . '_notifications', $user_notifications_details );
|
1189 |
-
}
|
1190 |
-
return;
|
1191 |
-
}
|
1192 |
-
}
|
1193 |
-
}
|
1194 |
-
|
1195 |
-
delete_metadata( 'user', $user_id, $this->manager_id . '_notifications', false, true );
|
1196 |
-
}
|
1197 |
-
|
1198 |
-
/**
|
1199 |
-
* Remove all notifications data from a user.
|
1200 |
-
*
|
1201 |
-
* @since 1.9.0
|
1202 |
-
*
|
1203 |
-
* @param int $user_id User ID from whom to remove dismissals. Set to 0 for all users.
|
1204 |
-
*/
|
1205 |
-
public function remove_user_data( $user_id = 0 ) {
|
1206 |
-
delete_metadata( 'user', $user_id, $this->manager_id . '_notifications', false, true );
|
1207 |
-
}
|
1208 |
-
|
1209 |
-
/**
|
1210 |
-
* Remove all data from the database. (Can be called on plugin uninstall, for example.)
|
1211 |
-
*
|
1212 |
-
* @since 1.9.0
|
1213 |
-
*/
|
1214 |
-
public function remove_all_data() {
|
1215 |
-
$this->remove_user_data();
|
1216 |
-
}
|
1217 |
-
|
1218 |
-
public function add_data_to_request( $data ) {
|
1219 |
-
// Do nothing if data is already there.
|
1220 |
-
if ( isset( $data['notifications_data'] ) ) {
|
1221 |
-
return $data;
|
1222 |
-
}
|
1223 |
-
|
1224 |
-
$notifications_data = array();
|
1225 |
-
|
1226 |
-
$user_ids = $this->get_users_with_notifications_data();
|
1227 |
-
if ( ! empty( $user_ids ) ) {
|
1228 |
-
foreach ( $user_ids as $user_id ) {
|
1229 |
-
$user_notifications_data = get_user_meta( $user_id, $this->manager_id . '_notifications', true );
|
1230 |
-
if ( ! empty( $user_notifications_data ) ) {
|
1231 |
-
foreach ( $user_notifications_data as $id => $user_notification_data ) {
|
1232 |
-
// We will send data user agnostic.
|
1233 |
-
// We will rely on the fact that displayed and dismissed is boolean (so they can be translated to 0 and 1),
|
1234 |
-
// and simply do the sum of them.
|
1235 |
-
if ( ! isset( $notifications_data[ $id ] ) ) {
|
1236 |
-
$notifications_data[ $id ] = array(
|
1237 |
-
'seen_by_users' => 0,
|
1238 |
-
'dismissed_by_users' => 0,
|
1239 |
-
);
|
1240 |
-
}
|
1241 |
-
|
1242 |
-
if ( ! empty( $user_notification_data['displayed'] ) ) {
|
1243 |
-
$notifications_data[ $id ]['seen_by_users'] ++;
|
1244 |
-
}
|
1245 |
-
|
1246 |
-
if ( ! empty( $user_notification_data['dismissed'] ) ) {
|
1247 |
-
$notifications_data[ $id ]['dismissed_by_users'] ++;
|
1248 |
-
}
|
1249 |
-
}
|
1250 |
-
}
|
1251 |
-
}
|
1252 |
-
}
|
1253 |
-
|
1254 |
-
if ( ! empty( $notifications_data ) ) {
|
1255 |
-
$data['notifications_data'] = $notifications_data;
|
1256 |
-
}
|
1257 |
-
|
1258 |
-
return $data;
|
1259 |
-
}
|
1260 |
-
|
1261 |
-
/**
|
1262 |
-
* Main Pixcloud_Admin_Notifications_Manager Instance
|
1263 |
-
*
|
1264 |
-
* Ensures only one instance of Pixcloud_Admin_Notifications_Manager is loaded or can be loaded.
|
1265 |
-
*
|
1266 |
-
* @since 1.9.0
|
1267 |
-
* @static
|
1268 |
-
*
|
1269 |
-
* @param array $args The arguments to initialize the notifications manager.
|
1270 |
-
* @return Pixcloud_Admin_Notifications_Manager Main Pixcloud_Admin_Notifications_Manager instance
|
1271 |
-
*/
|
1272 |
-
public static function instance( $args = array() ) {
|
1273 |
-
|
1274 |
-
if ( is_null( self::$_instance ) ) {
|
1275 |
-
self::$_instance = new self( $args );
|
1276 |
-
}
|
1277 |
-
return self::$_instance;
|
1278 |
-
} // End instance ()
|
1279 |
-
|
1280 |
-
/**
|
1281 |
-
* Cloning is forbidden.
|
1282 |
-
*
|
1283 |
-
* @since 1.9.0
|
1284 |
-
*/
|
1285 |
-
public function __clone() {
|
1286 |
-
|
1287 |
-
_doing_it_wrong( __FUNCTION__,esc_html( __( 'Cheatin’ huh?' ) ), null );
|
1288 |
-
} // End __clone ()
|
1289 |
-
|
1290 |
-
/**
|
1291 |
-
* Unserializing instances of this class is forbidden.
|
1292 |
-
*
|
1293 |
-
* @since 1.9.0
|
1294 |
-
*/
|
1295 |
-
public function __wakeup() {
|
1296 |
-
|
1297 |
-
_doing_it_wrong( __FUNCTION__, esc_html( __( 'Cheatin’ huh?' ) ), null );
|
1298 |
-
} // End __wakeup ()
|
1299 |
-
|
1300 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/admin-notifications-manager/class-notification-conditions.php
DELETED
@@ -1,732 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
*
|
5 |
-
* A class to handle the conditions of notifications.
|
6 |
-
*
|
7 |
-
* These conditions are in the format provided by jQuery QueryBuilder.
|
8 |
-
*/
|
9 |
-
class Pixcloud_Notification_Conditions {
|
10 |
-
|
11 |
-
protected static $group_relations = array(
|
12 |
-
'AND', 'OR',
|
13 |
-
);
|
14 |
-
|
15 |
-
protected static $active_theme_details = null;
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Process a notification's conditions.
|
19 |
-
*
|
20 |
-
* @param array $conditions
|
21 |
-
*
|
22 |
-
* @return bool|mixed
|
23 |
-
*/
|
24 |
-
public static function process( $conditions ) {
|
25 |
-
// First check if the conditions are valid.
|
26 |
-
// On invalid conditions we return true.
|
27 |
-
if ( empty( $conditions['valid'] ) ) {
|
28 |
-
return apply_filters( 'pixcloud_notification_conditions_result', true, $conditions );
|
29 |
-
}
|
30 |
-
|
31 |
-
// Process the group. Any top level conditions are expected to be a group, not an individual rule.
|
32 |
-
$result = self::process_group( $conditions );
|
33 |
-
|
34 |
-
return apply_filters( 'pixcloud_notification_conditions_result', $result, $conditions );
|
35 |
-
}
|
36 |
-
|
37 |
-
/**
|
38 |
-
* Process and evaluate a notification condition group.
|
39 |
-
*
|
40 |
-
* @param array $group_conditions
|
41 |
-
*
|
42 |
-
* @return bool
|
43 |
-
*/
|
44 |
-
public static function process_group( $group_conditions ) {
|
45 |
-
// By default we will use the AND relation among group rules or subgroups.
|
46 |
-
$group_relation = 'AND';
|
47 |
-
if ( ! empty( $group_conditions['condition'] ) && in_array( $group_conditions['condition'], self::$group_relations ) ) {
|
48 |
-
$group_relation = $group_conditions['condition'];
|
49 |
-
}
|
50 |
-
|
51 |
-
if ( empty( $group_conditions['rules'] ) || ! is_array( $group_conditions['rules'] ) ) {
|
52 |
-
return true;
|
53 |
-
}
|
54 |
-
|
55 |
-
switch ( $group_relation ) {
|
56 |
-
case 'AND':
|
57 |
-
// By default we assure that the conditions evaluate to true.
|
58 |
-
$result = true;
|
59 |
-
break;
|
60 |
-
case 'OR':
|
61 |
-
// By default we assure that the conditions evaluate to false.
|
62 |
-
$result = false;
|
63 |
-
break;
|
64 |
-
default:
|
65 |
-
$result = false;
|
66 |
-
break;
|
67 |
-
}
|
68 |
-
|
69 |
-
$stop = false;
|
70 |
-
foreach ( $group_conditions['rules'] as $rule ) {
|
71 |
-
// Determine if it is a simple rule or a subgroup.
|
72 |
-
if ( ! empty( $rule['rules'] ) ) {
|
73 |
-
$result = self::process_group( $rule );
|
74 |
-
} else {
|
75 |
-
$result = self::process_rule( $rule );
|
76 |
-
}
|
77 |
-
|
78 |
-
// Now evaluate the rule result according to the group relation.
|
79 |
-
switch ( $group_relation ) {
|
80 |
-
case 'AND':
|
81 |
-
if ( false === $result ) {
|
82 |
-
// Stop the evaluation.
|
83 |
-
$stop = true;
|
84 |
-
}
|
85 |
-
break;
|
86 |
-
case 'OR':
|
87 |
-
if ( true === $result ) {
|
88 |
-
// Stop the evaluation.
|
89 |
-
$stop = true;
|
90 |
-
}
|
91 |
-
break;
|
92 |
-
default:
|
93 |
-
// We should not reach here but just in case.
|
94 |
-
$stop = true;
|
95 |
-
break;
|
96 |
-
}
|
97 |
-
|
98 |
-
// Stop the rules processing if this is the case.
|
99 |
-
if ( true === $stop ) {
|
100 |
-
break;
|
101 |
-
}
|
102 |
-
}
|
103 |
-
|
104 |
-
return apply_filters( 'pixcloud_notification_conditions_group_result', $result, $group_conditions['rules'], $group_relation, $group_conditions );
|
105 |
-
}
|
106 |
-
|
107 |
-
/**
|
108 |
-
* Process and evaluate a notification condition rule.
|
109 |
-
*
|
110 |
-
* @param array $rule
|
111 |
-
*
|
112 |
-
* @return bool
|
113 |
-
*/
|
114 |
-
public static function process_rule( $rule ) {
|
115 |
-
$result = true;
|
116 |
-
|
117 |
-
// First validate the rule, just in case. On anything invalid we will return true.
|
118 |
-
if ( empty( $rule['id'] ) ) {
|
119 |
-
return $result;
|
120 |
-
}
|
121 |
-
if ( empty( $rule['operator'] ) ) {
|
122 |
-
return $result;
|
123 |
-
}
|
124 |
-
|
125 |
-
if ( ! isset( $rule['value'] ) ) {
|
126 |
-
$rule['value'] = null;
|
127 |
-
}
|
128 |
-
|
129 |
-
// Now determine the field value (the dynamic part of the rule).
|
130 |
-
if ( ! method_exists( __CLASS__, 'get_' . $rule['id'] ) ) {
|
131 |
-
return $result;
|
132 |
-
}
|
133 |
-
$field_value = call_user_func( array( __CLASS__, 'get_' . $rule['id'] ), $rule );
|
134 |
-
// Make sure that we work with the provided field type, regardless if it is a single value or a list.
|
135 |
-
$field_value = self::convert_value_to_type( $field_value, $rule['type'] );
|
136 |
-
$rule['value'] = self::convert_value_to_type( $rule['value'], $rule['type'] );
|
137 |
-
|
138 |
-
// Before we evaluate the expression, we need to account for the special expressions (e.g. function_exists, class_exists).
|
139 |
-
switch ( $rule['id'] ) {
|
140 |
-
case 'function_exists':
|
141 |
-
// We apply function_exists to each value.
|
142 |
-
if ( is_array( $rule['value'] ) ) {
|
143 |
-
$rule['value'] = array_map( 'function_exists', $rule['value'] );
|
144 |
-
} else {
|
145 |
-
$rule['value'] = function_exists( $rule['value'] );
|
146 |
-
}
|
147 |
-
|
148 |
-
// Make sure that the field value is true.
|
149 |
-
$field_value = true;
|
150 |
-
break;
|
151 |
-
case 'class_exists':
|
152 |
-
// We apply function_exists to each value.
|
153 |
-
if ( is_array( $rule['value'] ) ) {
|
154 |
-
$rule['value'] = array_map( 'class_exists', $rule['value'] );
|
155 |
-
} else {
|
156 |
-
$rule['value'] = class_exists( $rule['value'] );
|
157 |
-
}
|
158 |
-
|
159 |
-
// Make sure that the field value is true.
|
160 |
-
$field_value = true;
|
161 |
-
break;
|
162 |
-
default:
|
163 |
-
break;
|
164 |
-
}
|
165 |
-
|
166 |
-
// Now evaluate the expression.
|
167 |
-
require_once 'class-notification-logicalexpression.php';
|
168 |
-
$result = Pixcloud_Notification_LogicalExpression::evaluate( $field_value, $rule['operator'], $rule['value'] );
|
169 |
-
|
170 |
-
return apply_filters( 'pixcloud_notification_conditions_rule_result', $result, $field_value, $rule['operator'], $rule['value'], $rule );
|
171 |
-
}
|
172 |
-
|
173 |
-
public static function evaluate_expression( $left, $operator, $right, $rule ) {
|
174 |
-
|
175 |
-
}
|
176 |
-
|
177 |
-
/* ========================
|
178 |
-
* THE FIELD VALUES GETTERS
|
179 |
-
*/
|
180 |
-
|
181 |
-
public static function get_style_manager_is_supported( $rule = null ) {
|
182 |
-
if ( class_exists( 'Customify_Style_Manager' ) && Customify_Style_Manager::instance()->is_supported() ) {
|
183 |
-
return true;
|
184 |
-
}
|
185 |
-
|
186 |
-
return false;
|
187 |
-
}
|
188 |
-
|
189 |
-
public static function get_style_manager_user_provided_feedback( $rule = null ) {
|
190 |
-
if ( class_exists( 'Customify_Style_Manager' ) && Customify_Style_Manager::instance()->user_provided_feedback() ) {
|
191 |
-
return true;
|
192 |
-
}
|
193 |
-
|
194 |
-
return false;
|
195 |
-
}
|
196 |
-
|
197 |
-
public static function get_style_manager_user_provided_feedback_days_ago( $rule = null ) {
|
198 |
-
$user_provided_feedback = get_option( 'style_manager_user_feedback_provided' );
|
199 |
-
if ( empty( $user_provided_feedback ) ) {
|
200 |
-
return false;
|
201 |
-
}
|
202 |
-
|
203 |
-
return round( ( time() - $user_provided_feedback ) / DAY_IN_SECONDS );
|
204 |
-
}
|
205 |
-
|
206 |
-
public static function get_current_color_palette_hashid( $rule = null ) {
|
207 |
-
if ( class_exists('Customify_Color_Palettes') ) {
|
208 |
-
return Customify_Color_Palettes::instance()->get_current_palette();
|
209 |
-
}
|
210 |
-
|
211 |
-
return '';
|
212 |
-
}
|
213 |
-
|
214 |
-
public static function get_current_color_palette_label( $rule = null ) {
|
215 |
-
if ( class_exists('Customify_Color_Palettes') ) {
|
216 |
-
$color_palette_hashid = self::get_current_color_palette_hashid( $rule );
|
217 |
-
$color_palettes = Customify_Color_Palettes::instance()->get_palettes();
|
218 |
-
if ( ! empty( $color_palettes[ $color_palette_hashid ] ) ) {
|
219 |
-
return $color_palettes[ $color_palette_hashid ]['label'];
|
220 |
-
}
|
221 |
-
}
|
222 |
-
|
223 |
-
return '';
|
224 |
-
}
|
225 |
-
|
226 |
-
public static function get_current_color_palette_is_custom( $rule = null ) {
|
227 |
-
if ( class_exists('Customify_Color_Palettes') ) {
|
228 |
-
return Customify_Color_Palettes::instance()->is_using_custom_palette();
|
229 |
-
}
|
230 |
-
|
231 |
-
return false;
|
232 |
-
}
|
233 |
-
|
234 |
-
public static function get_current_color_palette_is_variation_in_use( $rule = null ) {
|
235 |
-
if ( class_exists('Customify_Color_Palettes') ) {
|
236 |
-
return Customify_Color_Palettes::instance()->get_current_palette_variation();
|
237 |
-
}
|
238 |
-
|
239 |
-
return false;
|
240 |
-
}
|
241 |
-
|
242 |
-
public static function get_active_theme_slug( $rule = null ) {
|
243 |
-
$theme_details = self::get_active_theme_details();
|
244 |
-
|
245 |
-
if ( ! empty( $theme_details['slug'] ) ) {
|
246 |
-
return $theme_details['slug'];
|
247 |
-
}
|
248 |
-
|
249 |
-
return '';
|
250 |
-
}
|
251 |
-
|
252 |
-
public static function get_active_theme_hashid( $rule = null ) {
|
253 |
-
$theme_details = self::get_active_theme_details();
|
254 |
-
|
255 |
-
if ( ! empty( $theme_details['hashid'] ) ) {
|
256 |
-
return $theme_details['hashid'];
|
257 |
-
}
|
258 |
-
|
259 |
-
return '';
|
260 |
-
}
|
261 |
-
|
262 |
-
public static function get_active_theme_name( $rule = null ) {
|
263 |
-
$theme_details = self::get_active_theme_details();
|
264 |
-
|
265 |
-
if ( ! empty( $theme_details['name'] ) ) {
|
266 |
-
return $theme_details['name'];
|
267 |
-
}
|
268 |
-
|
269 |
-
return '';
|
270 |
-
}
|
271 |
-
|
272 |
-
public static function get_active_theme_author( $rule = null ) {
|
273 |
-
$theme_details = self::get_active_theme_details();
|
274 |
-
|
275 |
-
if ( ! empty( $theme_details['author'] ) ) {
|
276 |
-
return $theme_details['author'];
|
277 |
-
}
|
278 |
-
|
279 |
-
return '';
|
280 |
-
}
|
281 |
-
|
282 |
-
public static function get_active_theme_has_wupdates_valid_code( $rule = null ) {
|
283 |
-
$theme_details = self::get_active_theme_details();
|
284 |
-
|
285 |
-
if ( ! empty( $theme_details['wupdates_code_unchanged'] ) ) {
|
286 |
-
return true;
|
287 |
-
}
|
288 |
-
|
289 |
-
return false;
|
290 |
-
}
|
291 |
-
|
292 |
-
public static function get_active_theme_has_pixelgrade_license( $rule = null ) {
|
293 |
-
$theme_details = self::get_active_theme_details();
|
294 |
-
|
295 |
-
if ( ! empty( $theme_details['license_hash'] ) ) {
|
296 |
-
return true;
|
297 |
-
}
|
298 |
-
|
299 |
-
return false;
|
300 |
-
}
|
301 |
-
|
302 |
-
public static function get_active_theme_pixelgrade_license_status( $rule = null ) {
|
303 |
-
$theme_details = self::get_active_theme_details();
|
304 |
-
|
305 |
-
if ( ! empty( $theme_details['license_status'] ) ) {
|
306 |
-
return $theme_details['license_status'];
|
307 |
-
}
|
308 |
-
|
309 |
-
return '';
|
310 |
-
}
|
311 |
-
|
312 |
-
public static function get_active_theme_version( $rule = null ) {
|
313 |
-
$theme_details = self::get_active_theme_details();
|
314 |
-
|
315 |
-
if ( ! empty( $theme_details['version'] ) ) {
|
316 |
-
return $theme_details['version'];
|
317 |
-
}
|
318 |
-
|
319 |
-
return '0.0.1';
|
320 |
-
}
|
321 |
-
|
322 |
-
public static function get_customify_version( $rule = null ) {
|
323 |
-
if ( function_exists( 'PixCustomifyPlugin' ) ) {
|
324 |
-
return PixCustomifyPlugin()->get_version();
|
325 |
-
}
|
326 |
-
|
327 |
-
return false;
|
328 |
-
}
|
329 |
-
|
330 |
-
public static function get_style_manager_version( $rule = null ) {
|
331 |
-
if ( function_exists( 'StyleManager_Plugin' ) ) {
|
332 |
-
return StyleManager_Plugin()->get_version();
|
333 |
-
}
|
334 |
-
|
335 |
-
return false;
|
336 |
-
}
|
337 |
-
|
338 |
-
public static function get_wp_version( $rule = null ) {
|
339 |
-
return get_bloginfo( 'version' );
|
340 |
-
}
|
341 |
-
|
342 |
-
public static function get_php_version( $rule = null ) {
|
343 |
-
if ( function_exists( 'phpversion' ) ) {
|
344 |
-
return phpversion();
|
345 |
-
}
|
346 |
-
|
347 |
-
return false;
|
348 |
-
}
|
349 |
-
|
350 |
-
public static function get_current_user_role( $rule = null ) {
|
351 |
-
$current_user = wp_get_current_user();
|
352 |
-
|
353 |
-
if ( ! empty( $current_user ) && ! is_wp_error( $current_user ) ) {
|
354 |
-
return $current_user->roles;
|
355 |
-
}
|
356 |
-
|
357 |
-
return false;
|
358 |
-
}
|
359 |
-
|
360 |
-
public static function get_current_user_capabilities( $rule = null ) {
|
361 |
-
$current_user = wp_get_current_user();
|
362 |
-
|
363 |
-
if ( ! empty( $current_user ) && ! is_wp_error( $current_user ) ) {
|
364 |
-
return $current_user->allcaps;
|
365 |
-
}
|
366 |
-
|
367 |
-
return false;
|
368 |
-
}
|
369 |
-
|
370 |
-
public static function get_site_is_public( $rule = null ) {
|
371 |
-
// Local/development url parts to match for
|
372 |
-
$devsite_needles = array(
|
373 |
-
'localhost',
|
374 |
-
':8888',
|
375 |
-
'.local',
|
376 |
-
'.dev',
|
377 |
-
':8082',
|
378 |
-
'staging.',
|
379 |
-
'.invalid',
|
380 |
-
'.test',
|
381 |
-
'.example',
|
382 |
-
);
|
383 |
-
|
384 |
-
if ( self::string_contains_any( get_bloginfo( 'url'), $devsite_needles ) ) {
|
385 |
-
return false;
|
386 |
-
}
|
387 |
-
|
388 |
-
return true;
|
389 |
-
}
|
390 |
-
|
391 |
-
public static function get_site_url( $rule = null ) {
|
392 |
-
return get_bloginfo( 'url');
|
393 |
-
}
|
394 |
-
|
395 |
-
public static function get_site_is_multisite( $rule = null ) {
|
396 |
-
return is_multisite();
|
397 |
-
}
|
398 |
-
|
399 |
-
public static function get_site_number_of_posts( $rule = null ) {
|
400 |
-
// Make sure it is an array.
|
401 |
-
$post_count = json_decode( json_encode( wp_count_posts( 'post' ) ), true );
|
402 |
-
return ! empty( $post_count['publish'] ) ? $post_count['publish'] : 0;
|
403 |
-
}
|
404 |
-
|
405 |
-
public static function get_site_number_of_pages( $rule = null ) {
|
406 |
-
// Make sure it is an array.
|
407 |
-
$post_count = json_decode( json_encode( wp_count_posts( 'page' ) ), true );
|
408 |
-
return ! empty( $post_count['publish'] ) ? $post_count['publish'] : 0;
|
409 |
-
}
|
410 |
-
|
411 |
-
public static function get_current_date( $rule = null ) {
|
412 |
-
return date('Y/m/d');
|
413 |
-
}
|
414 |
-
|
415 |
-
// This is special.
|
416 |
-
public static function get_class_exists( $rule = null ) {
|
417 |
-
return true;
|
418 |
-
}
|
419 |
-
|
420 |
-
// This is special.
|
421 |
-
public static function get_function_exists( $rule = null ) {
|
422 |
-
return true;
|
423 |
-
}
|
424 |
-
|
425 |
-
public static function get_wp_debug_active( $rule = null ) {
|
426 |
-
return defined( 'WP_DEBUG') && true === WP_DEBUG;
|
427 |
-
}
|
428 |
-
|
429 |
-
public static function get_pixelgrade_dev_mode_active( $rule = null ) {
|
430 |
-
return defined( 'PIXELGRADE_CARE__DEV_MODE') && true === PIXELGRADE_CARE__DEV_MODE;
|
431 |
-
}
|
432 |
-
|
433 |
-
public static function get_customify_dev_force_defaults_active( $rule = null ) {
|
434 |
-
return defined( 'CUSTOMIFY_DEV_FORCE_DEFAULTS') && true === CUSTOMIFY_DEV_FORCE_DEFAULTS;
|
435 |
-
}
|
436 |
-
|
437 |
-
public static function get_sm_dev_customizer_force_defaults_active( $rule = null ) {
|
438 |
-
return defined( 'SM_DEV_CUSTOMIZER_FORCE_DEFAULTS') && true === SM_DEV_CUSTOMIZER_FORCE_DEFAULTS;
|
439 |
-
}
|
440 |
-
|
441 |
-
/* =======
|
442 |
-
* HELPERS
|
443 |
-
*/
|
444 |
-
|
445 |
-
/**
|
446 |
-
* @param $value
|
447 |
-
* @param $type
|
448 |
-
*
|
449 |
-
* @return false|float|int|string
|
450 |
-
*/
|
451 |
-
public static function convert_value_to_type( $value, $type ) {
|
452 |
-
if ( null === $value ) {
|
453 |
-
return $value;
|
454 |
-
}
|
455 |
-
|
456 |
-
// Make sure we are not dealing with stdClass.
|
457 |
-
if ( $value instanceof stdClass ) {
|
458 |
-
$value = json_decode( json_encode( $value ), true );
|
459 |
-
}
|
460 |
-
|
461 |
-
if ( ! empty( $type ) ) {
|
462 |
-
switch ( $type ) {
|
463 |
-
case 'integer':
|
464 |
-
if ( is_array( $value ) ) {
|
465 |
-
$value = array_map( 'intval', $value );
|
466 |
-
} else {
|
467 |
-
$value = intval( $value );
|
468 |
-
}
|
469 |
-
break;
|
470 |
-
case 'string':
|
471 |
-
if ( is_array( $value ) ) {
|
472 |
-
$value = array_map( 'strval', $value );
|
473 |
-
} else {
|
474 |
-
$value = strval( $value );
|
475 |
-
}
|
476 |
-
break;
|
477 |
-
case 'double':
|
478 |
-
if ( is_array( $value ) ) {
|
479 |
-
$value = array_map( 'doubleval', $value );
|
480 |
-
} else {
|
481 |
-
$value = doubleval( $value );
|
482 |
-
}
|
483 |
-
break;
|
484 |
-
case 'date':
|
485 |
-
if ( is_array( $value ) ) {
|
486 |
-
$value = array_map( 'strtotime', $value );
|
487 |
-
$value = array_map( array( __CLASS__, 'dateval' ), $value );
|
488 |
-
} else {
|
489 |
-
$value = self::dateval( strtotime( $value ) );
|
490 |
-
}
|
491 |
-
break;
|
492 |
-
case 'time':
|
493 |
-
if ( is_array( $value ) ) {
|
494 |
-
$value = array_map( 'strtotime', $value );
|
495 |
-
$value = array_map( array( __CLASS__, 'timeval' ), $value );
|
496 |
-
} else {
|
497 |
-
$value = self::timeval( strtotime( $value ) );
|
498 |
-
}
|
499 |
-
break;
|
500 |
-
case 'datetime':
|
501 |
-
if ( is_array( $value ) ) {
|
502 |
-
$value = array_map( 'strtotime', $value );
|
503 |
-
$value = array_map( array( __CLASS__, 'datetimeval' ), $value );
|
504 |
-
} else {
|
505 |
-
$value = self::datetimeval( strtotime( $value ) );
|
506 |
-
}
|
507 |
-
break;
|
508 |
-
case 'boolean':
|
509 |
-
if ( is_array( $value ) ) {
|
510 |
-
$value = array_map( 'boolval', $value );
|
511 |
-
} else {
|
512 |
-
$value = boolval( $value );
|
513 |
-
}
|
514 |
-
break;
|
515 |
-
default:
|
516 |
-
break;
|
517 |
-
}
|
518 |
-
}
|
519 |
-
|
520 |
-
return $value;
|
521 |
-
}
|
522 |
-
|
523 |
-
protected static function dateval( $timestamp ) {
|
524 |
-
return date('Y/m/d', $timestamp );
|
525 |
-
}
|
526 |
-
|
527 |
-
protected static function timeval( $timestamp ) {
|
528 |
-
return date('H:i:s', $timestamp );
|
529 |
-
}
|
530 |
-
|
531 |
-
protected static function datetimeval( $timestamp ) {
|
532 |
-
return date('Y/m/d H:i:s', $timestamp );
|
533 |
-
}
|
534 |
-
|
535 |
-
/**
|
536 |
-
* Grab all the details about the current active theme.
|
537 |
-
*
|
538 |
-
* @return array
|
539 |
-
*/
|
540 |
-
public static function get_active_theme_details() {
|
541 |
-
if ( self::$active_theme_details !== null ) {
|
542 |
-
return self::$active_theme_details;
|
543 |
-
}
|
544 |
-
|
545 |
-
$theme_details = array();
|
546 |
-
|
547 |
-
// Gather Pixelgrade and WUpdates theme details.
|
548 |
-
$theme_details['is_pixelgrade_theme'] = self::is_pixelgrade_theme();
|
549 |
-
$theme_details['hashid'] = self::get_wupdates_theme_hashid();
|
550 |
-
$theme_details['wupdates_code_unchanged'] = self::is_wupdates_code_unchanged();
|
551 |
-
$theme_details['license_hash'] = get_theme_mod( 'pixcare_license_hash', false );
|
552 |
-
$theme_details['license_status'] = get_theme_mod( 'pixcare_license_status', false );
|
553 |
-
|
554 |
-
// Gather the rest of the theme details.
|
555 |
-
/** @var WP_Theme $theme */
|
556 |
-
$theme = wp_get_theme();
|
557 |
-
$parent = $theme->parent();
|
558 |
-
if ( is_child_theme() && ! empty( $parent ) ) {
|
559 |
-
$theme = $parent;
|
560 |
-
}
|
561 |
-
|
562 |
-
// The theme name should be the one from the wupdates array.
|
563 |
-
$wupdates_theme_name = self::get_original_theme_name();
|
564 |
-
if ( ! empty( $wupdates_theme_name ) ) {
|
565 |
-
$theme_details['name'] = $wupdates_theme_name;
|
566 |
-
}
|
567 |
-
// If for some reason we couldn't get the theme name from the WUpdates code, use the standard theme name.
|
568 |
-
if ( empty( $theme_details['name'] ) ) {
|
569 |
-
$theme_details['name'] = $theme->get( 'Name' );
|
570 |
-
}
|
571 |
-
|
572 |
-
// The theme slug should be the one from the wupdates array
|
573 |
-
$wupdates_theme_slug = self::get_original_theme_slug();
|
574 |
-
if ( ! empty( $wupdates_theme_slug ) ) {
|
575 |
-
$theme_details['slug'] = $wupdates_theme_slug;
|
576 |
-
}
|
577 |
-
// If for some reason we couldn't get the theme slug from the WUpdates code, use the standard theme slug.
|
578 |
-
if ( empty( $theme_details['slug'] ) ) {
|
579 |
-
$theme_details['slug'] = basename( get_template_directory() );
|
580 |
-
}
|
581 |
-
|
582 |
-
$theme_details['uri'] = $theme->get( 'ThemeURI' );
|
583 |
-
$theme_details['desc'] = $theme->get( 'Description' );
|
584 |
-
$theme_details['author'] = $theme->get( 'Author' );
|
585 |
-
$theme_details['version'] = $theme->get( 'Version' );
|
586 |
-
|
587 |
-
$theme_details['is_child'] = is_child_theme();
|
588 |
-
$theme_details['template'] = $theme->get_template();
|
589 |
-
|
590 |
-
self::$active_theme_details = $theme_details;
|
591 |
-
|
592 |
-
return $theme_details;
|
593 |
-
}
|
594 |
-
|
595 |
-
/**
|
596 |
-
* Determine if the current theme is one of ours.
|
597 |
-
*
|
598 |
-
* @return bool
|
599 |
-
*/
|
600 |
-
public static function is_pixelgrade_theme() {
|
601 |
-
// Get the id of the current theme
|
602 |
-
$wupdates_ids = apply_filters( 'wupdates_gather_ids', array() );
|
603 |
-
$slug = basename( get_template_directory() );
|
604 |
-
// If we have the WUpdates information tied to the current theme slug, then we are good
|
605 |
-
if ( isset( $wupdates_ids[ $slug ] ) ) {
|
606 |
-
return true;
|
607 |
-
}
|
608 |
-
|
609 |
-
// Next we will test for the author in the theme header
|
610 |
-
$theme = wp_get_theme();
|
611 |
-
$theme_author = $theme->get( 'Author' );
|
612 |
-
if ( ! empty( $theme_author ) && strtolower( $theme_author ) == 'pixelgrade' ) {
|
613 |
-
return true;
|
614 |
-
}
|
615 |
-
|
616 |
-
return false;
|
617 |
-
}
|
618 |
-
|
619 |
-
/**
|
620 |
-
* Checks if the wupdates_gather_ids code has been tempered with.
|
621 |
-
*
|
622 |
-
* @return bool
|
623 |
-
*/
|
624 |
-
public static function is_wupdates_code_unchanged() {
|
625 |
-
// Get the id of the current theme
|
626 |
-
$wupdates_ids = apply_filters( 'wupdates_gather_ids', array() );
|
627 |
-
$slug = basename( get_template_directory() );
|
628 |
-
// If the user hasn't got any pixelgrade themes - return true. They don't need this filter
|
629 |
-
if ( ! self::has_pixelgrade_theme() ) {
|
630 |
-
return true;
|
631 |
-
}
|
632 |
-
|
633 |
-
// Check if the wupdates_ids array is missing either of this properties
|
634 |
-
if ( ! isset( $wupdates_ids[ $slug ] ) || ! isset( $wupdates_ids[ $slug ]['name'] ) || ! isset( $wupdates_ids[ $slug ]['slug'] ) || ! isset( $wupdates_ids[ $slug ]['id'] ) || ! isset( $wupdates_ids[ $slug ]['type'] ) || ! isset( $wupdates_ids[ $slug ]['digest'] ) ) {
|
635 |
-
return false;
|
636 |
-
}
|
637 |
-
// Create the md5 hash from the properties of wupdates_ids and compare it to the digest from that array
|
638 |
-
$md5 = md5( 'name-' . $wupdates_ids[ $slug ]['name'] . ';slug-' . $wupdates_ids[ $slug ]['slug'] . ';id-' . $wupdates_ids[ $slug ]['id'] . ';type-' . $wupdates_ids[ $slug ]['type'] );
|
639 |
-
// the md5 hash should be the same one as the digest hash
|
640 |
-
if ( $md5 !== $wupdates_ids[ $slug ]['digest'] ) {
|
641 |
-
return false;
|
642 |
-
}
|
643 |
-
return true;
|
644 |
-
}
|
645 |
-
|
646 |
-
/**
|
647 |
-
* Determine if there are any Pixelgrade themes currently installed.
|
648 |
-
*
|
649 |
-
* @return bool
|
650 |
-
*/
|
651 |
-
public static function has_pixelgrade_theme() {
|
652 |
-
$themes = wp_get_themes();
|
653 |
-
// Loop through the themes.
|
654 |
-
// If we find a theme from pixelgrade return true.
|
655 |
-
/** @var WP_Theme $theme */
|
656 |
-
foreach ( $themes as $theme ) {
|
657 |
-
$theme_author = $theme->get( 'Author' );
|
658 |
-
|
659 |
-
if ( ! empty( $theme_author ) && strtolower( $theme_author ) == 'pixelgrade' ) {
|
660 |
-
return true;
|
661 |
-
}
|
662 |
-
}
|
663 |
-
|
664 |
-
// No themes from pixelgrade found, return false.
|
665 |
-
return false;
|
666 |
-
}
|
667 |
-
|
668 |
-
/**
|
669 |
-
* Get the current theme original name from the WUpdates code.
|
670 |
-
*
|
671 |
-
* @return string
|
672 |
-
*/
|
673 |
-
public static function get_original_theme_name() {
|
674 |
-
// Get the id of the current theme
|
675 |
-
$wupdates_ids = apply_filters( 'wupdates_gather_ids', array() );
|
676 |
-
$slug = basename( get_template_directory() );
|
677 |
-
if ( ! isset( $wupdates_ids[ $slug ] ) || ! isset( $wupdates_ids[ $slug ]['name'] ) ) {
|
678 |
-
return ucfirst( $slug );
|
679 |
-
}
|
680 |
-
return $wupdates_ids[ $slug ]['name'];
|
681 |
-
}
|
682 |
-
|
683 |
-
/**
|
684 |
-
* Get the current theme original slug from the WUpdates code.
|
685 |
-
*
|
686 |
-
* @return string
|
687 |
-
*/
|
688 |
-
public static function get_original_theme_slug() {
|
689 |
-
// Get the id of the current theme
|
690 |
-
$wupdates_ids = apply_filters( 'wupdates_gather_ids', array() );
|
691 |
-
$slug = basename( get_template_directory() );
|
692 |
-
if ( ! isset( $wupdates_ids[ $slug ] ) || ! isset( $wupdates_ids[ $slug ]['slug'] ) ) {
|
693 |
-
return $slug;
|
694 |
-
}
|
695 |
-
|
696 |
-
return sanitize_title( $wupdates_ids[ $slug ]['slug'] );
|
697 |
-
}
|
698 |
-
|
699 |
-
/**
|
700 |
-
* Get the current theme hashid from the WUpdates code.
|
701 |
-
*
|
702 |
-
* @return string
|
703 |
-
*/
|
704 |
-
public static function get_wupdates_theme_hashid() {
|
705 |
-
// Get the id of the current theme
|
706 |
-
$wupdates_ids = apply_filters( 'wupdates_gather_ids', array() );
|
707 |
-
$slug = basename( get_template_directory() );
|
708 |
-
if ( ! isset( $wupdates_ids[ $slug ] ) || ! isset( $wupdates_ids[ $slug ]['id'] ) ) {
|
709 |
-
return false;
|
710 |
-
}
|
711 |
-
|
712 |
-
return $wupdates_ids[ $slug ]['id'];
|
713 |
-
}
|
714 |
-
|
715 |
-
/**
|
716 |
-
* Check if the $haystack contains any of the needles.
|
717 |
-
*
|
718 |
-
* @param string $haystack
|
719 |
-
* @param array $needles
|
720 |
-
*
|
721 |
-
* @return bool
|
722 |
-
*/
|
723 |
-
public static function string_contains_any( $haystack, $needles ) {
|
724 |
-
foreach ( $needles as $needle ) {
|
725 |
-
if ( false !== strpos( $haystack, $needle ) ) {
|
726 |
-
return true;
|
727 |
-
}
|
728 |
-
}
|
729 |
-
|
730 |
-
return false;
|
731 |
-
}
|
732 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/admin-notifications-manager/class-notification-logicalexpression.php
DELETED
@@ -1,441 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
*
|
5 |
-
* A class to handle logical expression for notification conditions.
|
6 |
-
*
|
7 |
-
* Please note that we only support scalar data types and lists of these data types (only when the operator operates on lists)!
|
8 |
-
*/
|
9 |
-
class Pixcloud_Notification_LogicalExpression {
|
10 |
-
|
11 |
-
/**
|
12 |
-
* All the supported operators.
|
13 |
-
*
|
14 |
-
* @var array
|
15 |
-
*/
|
16 |
-
protected static $all_operators = array(
|
17 |
-
'equal', 'not_equal', 'is_empty', 'is_not_empty',
|
18 |
-
'less', 'less_or_equal', 'greater', 'greater_or_equal',
|
19 |
-
'begins_with', 'not_begins_with', 'contains', 'not_contains', 'ends_with', 'not_ends_with',
|
20 |
-
'between', 'not_between',
|
21 |
-
'in', 'not_in', 'any', 'all',
|
22 |
-
);
|
23 |
-
|
24 |
-
/**
|
25 |
-
* All the unary operators (i.e. work with only the left operand).
|
26 |
-
*
|
27 |
-
* @var array
|
28 |
-
*/
|
29 |
-
protected static $unary_operators = array(
|
30 |
-
'is_empty', 'is_not_empty',
|
31 |
-
);
|
32 |
-
|
33 |
-
/**
|
34 |
-
* All the binary operators (i.e. work with left and a single right operand).
|
35 |
-
*
|
36 |
-
* @var array
|
37 |
-
*/
|
38 |
-
protected static $binary_operators = array(
|
39 |
-
'equal', 'not_equal',
|
40 |
-
'less', 'less_or_equal', 'greater', 'greater_or_equal',
|
41 |
-
'begins_with', 'not_begins_with', 'contains', 'not_contains', 'ends_with', 'not_ends_with',
|
42 |
-
);
|
43 |
-
|
44 |
-
/**
|
45 |
-
* All the ternary operators (i.e. work with a left operand and two right operands).
|
46 |
-
*
|
47 |
-
* @var array
|
48 |
-
*/
|
49 |
-
protected static $ternary_operators = array(
|
50 |
-
'between', 'not_between',
|
51 |
-
);
|
52 |
-
|
53 |
-
|
54 |
-
/**
|
55 |
-
* All the list operators (i.e. work with a (list) left operand and (list) right operand).
|
56 |
-
*
|
57 |
-
* @var array
|
58 |
-
*/
|
59 |
-
protected static $list_operators = array(
|
60 |
-
'in', 'not_in', 'any', 'all',
|
61 |
-
);
|
62 |
-
|
63 |
-
/**
|
64 |
-
* Evaluate a logical expression with one or two operands and an operator.
|
65 |
-
*
|
66 |
-
* @param mixed $left
|
67 |
-
* @param string $operator
|
68 |
-
* @param mixed $right Optional.
|
69 |
-
*
|
70 |
-
* @return bool|null The logical expression result or null on invalid data.
|
71 |
-
*/
|
72 |
-
public static function evaluate( $left, $operator, $right = null ) {
|
73 |
-
// Reject unknown operators.
|
74 |
-
if ( ! in_array( $operator, self::$all_operators ) ) {
|
75 |
-
return null;
|
76 |
-
}
|
77 |
-
// Now, check the number of values a operator can handle and reject on wrong number.
|
78 |
-
if ( in_array( $operator, self::$binary_operators ) && is_array( $right ) && count( $right ) > 1 ) {
|
79 |
-
return null;
|
80 |
-
}
|
81 |
-
if ( in_array( $operator, self::$ternary_operators ) && ( ! is_array( $right ) || count( $right ) != 2 ) ) {
|
82 |
-
return null;
|
83 |
-
}
|
84 |
-
if ( in_array( $operator, self::$list_operators ) && ! is_array( $right ) ) {
|
85 |
-
return null;
|
86 |
-
}
|
87 |
-
|
88 |
-
// Reject missing operator evaluation method.
|
89 |
-
if ( ! method_exists( __CLASS__, 'evaluate_' . $operator ) ) {
|
90 |
-
return null;
|
91 |
-
}
|
92 |
-
|
93 |
-
return (bool) call_user_func( array( __CLASS__, 'evaluate_' . $operator ), $left, $right );
|
94 |
-
}
|
95 |
-
|
96 |
-
/* =============================
|
97 |
-
* EVALUATORS FOR EACH OPERATOR.
|
98 |
-
*/
|
99 |
-
|
100 |
-
/**
|
101 |
-
* Determine if the left operand is equal to the right operand. The comparison is strict type.
|
102 |
-
*
|
103 |
-
* @param mixed $left
|
104 |
-
* @param mixed $right
|
105 |
-
*
|
106 |
-
* @return bool
|
107 |
-
*/
|
108 |
-
public static function evaluate_equal( $left, $right ) {
|
109 |
-
// Sanity check.
|
110 |
-
if ( is_array( $right ) ) {
|
111 |
-
$right = array_shift( $right );
|
112 |
-
}
|
113 |
-
|
114 |
-
return $left === $right;
|
115 |
-
}
|
116 |
-
|
117 |
-
/**
|
118 |
-
* Determine if the left operand is not equal to the right operand. The comparison is strict type.
|
119 |
-
*
|
120 |
-
* @param mixed $left
|
121 |
-
* @param mixed $right
|
122 |
-
*
|
123 |
-
* @return bool
|
124 |
-
*/
|
125 |
-
public static function evaluate_not_equal( $left, $right ) {
|
126 |
-
// Sanity check.
|
127 |
-
if ( is_array( $right ) ) {
|
128 |
-
$right = array_shift( $right );
|
129 |
-
}
|
130 |
-
|
131 |
-
return $left !== $right;
|
132 |
-
}
|
133 |
-
|
134 |
-
/**
|
135 |
-
* Determine if the left operand is empty (the php empty() function is applied).
|
136 |
-
*
|
137 |
-
* @param mixed $left
|
138 |
-
* @param mixed $right Optional. Not used.
|
139 |
-
*
|
140 |
-
* @return bool
|
141 |
-
*/
|
142 |
-
public static function evaluate_is_empty( $left, $right = null ) {
|
143 |
-
return empty( $left );
|
144 |
-
}
|
145 |
-
|
146 |
-
/**
|
147 |
-
* Determine if the left operand is not empty (the php empty() function is applied).
|
148 |
-
*
|
149 |
-
* @param mixed $left
|
150 |
-
* @param mixed $right Optional. Not used.
|
151 |
-
*
|
152 |
-
* @return bool
|
153 |
-
*/
|
154 |
-
public static function evaluate_is_not_empty( $left, $right = null ) {
|
155 |
-
return ! empty( $left );
|
156 |
-
}
|
157 |
-
|
158 |
-
/**
|
159 |
-
* Determine if the left (numeric) operand less than the right (numeric) operand.
|
160 |
-
*
|
161 |
-
* @param int|double|float $left
|
162 |
-
* @param int|double|float $right
|
163 |
-
*
|
164 |
-
* @return bool
|
165 |
-
*/
|
166 |
-
public static function evaluate_less( $left, $right ) {
|
167 |
-
// Sanity check.
|
168 |
-
if ( is_array( $right ) ) {
|
169 |
-
$right = array_shift( $right );
|
170 |
-
}
|
171 |
-
|
172 |
-
return $left < $right;
|
173 |
-
}
|
174 |
-
|
175 |
-
/**
|
176 |
-
* Determine if the left (numeric) operand less or equal than the right (numeric) operand.
|
177 |
-
*
|
178 |
-
* @param int|double|float $left
|
179 |
-
* @param int|double|float $right
|
180 |
-
*
|
181 |
-
* @return bool
|
182 |
-
*/
|
183 |
-
public static function evaluate_less_or_equal( $left, $right ) {
|
184 |
-
// Sanity check.
|
185 |
-
if ( is_array( $right ) ) {
|
186 |
-
$right = array_shift( $right );
|
187 |
-
}
|
188 |
-
|
189 |
-
return $left <= $right;
|
190 |
-
}
|
191 |
-
|
192 |
-
/**
|
193 |
-
* Determine if the left (numeric) operand greater than the right (numeric) operand.
|
194 |
-
*
|
195 |
-
* @param int|double|float $left
|
196 |
-
* @param int|double|float $right
|
197 |
-
*
|
198 |
-
* @return bool
|
199 |
-
*/
|
200 |
-
public static function evaluate_greater( $left, $right ) {
|
201 |
-
// Sanity check.
|
202 |
-
if ( is_array( $right ) ) {
|
203 |
-
$right = array_shift( $right );
|
204 |
-
}
|
205 |
-
|
206 |
-
return $left > $right;
|
207 |
-
}
|
208 |
-
|
209 |
-
/**
|
210 |
-
* Determine if the left (numeric) operand greater or equal than the right (numeric) operand.
|
211 |
-
*
|
212 |
-
* @param int|double|float $left
|
213 |
-
* @param int|double|float $right
|
214 |
-
*
|
215 |
-
* @return bool
|
216 |
-
*/
|
217 |
-
public static function evaluate_greater_or_equal( $left, $right ) {
|
218 |
-
// Sanity check.
|
219 |
-
if ( is_array( $right ) ) {
|
220 |
-
$right = array_shift( $right );
|
221 |
-
}
|
222 |
-
|
223 |
-
return $left >= $right;
|
224 |
-
}
|
225 |
-
|
226 |
-
/**
|
227 |
-
* Determine if the right (string) operand is at start of the left (string) operand.
|
228 |
-
*
|
229 |
-
* @param string $left
|
230 |
-
* @param string $right
|
231 |
-
*
|
232 |
-
* @return bool
|
233 |
-
*/
|
234 |
-
public static function evaluate_begins_with( $left, $right ) {
|
235 |
-
// Sanity check.
|
236 |
-
if ( is_array( $right ) ) {
|
237 |
-
$right = array_shift( $right );
|
238 |
-
}
|
239 |
-
|
240 |
-
return 0 === strpos( $left, $right );
|
241 |
-
}
|
242 |
-
|
243 |
-
/**
|
244 |
-
* Determine if the right (string) operand is not at start of the left (string) operand.
|
245 |
-
*
|
246 |
-
* @param string $left
|
247 |
-
* @param string $right
|
248 |
-
*
|
249 |
-
* @return bool
|
250 |
-
*/
|
251 |
-
public static function evaluate_not_begins_with( $left, $right ) {
|
252 |
-
// Sanity check.
|
253 |
-
if ( is_array( $right ) ) {
|
254 |
-
$right = array_shift( $right );
|
255 |
-
}
|
256 |
-
|
257 |
-
return 0 !== strpos( $left, $right );
|
258 |
-
}
|
259 |
-
|
260 |
-
/**
|
261 |
-
* Determine if the right (string) operand is part of the left (string) operand.
|
262 |
-
*
|
263 |
-
* @param string $left
|
264 |
-
* @param string $right
|
265 |
-
*
|
266 |
-
* @return bool
|
267 |
-
*/
|
268 |
-
public static function evaluate_contains( $left, $right ) {
|
269 |
-
// Sanity check.
|
270 |
-
if ( is_array( $right ) ) {
|
271 |
-
$right = array_shift( $right );
|
272 |
-
}
|
273 |
-
|
274 |
-
return false !== strpos( $left, $right );
|
275 |
-
}
|
276 |
-
|
277 |
-
/**
|
278 |
-
* Determine if the right (string) operand is not part of the left (string) operand.
|
279 |
-
*
|
280 |
-
* @param string $left
|
281 |
-
* @param string $right
|
282 |
-
*
|
283 |
-
* @return bool
|
284 |
-
*/
|
285 |
-
public static function evaluate_not_contains( $left, $right ) {
|
286 |
-
// Sanity check.
|
287 |
-
if ( is_array( $right ) ) {
|
288 |
-
$right = array_shift( $right );
|
289 |
-
}
|
290 |
-
|
291 |
-
return false === strpos( $left, $right );
|
292 |
-
}
|
293 |
-
|
294 |
-
/**
|
295 |
-
* Determine if the right (string) operand is at end of the left (string) operand.
|
296 |
-
*
|
297 |
-
* @param string $left
|
298 |
-
* @param string $right
|
299 |
-
*
|
300 |
-
* @return bool
|
301 |
-
*/
|
302 |
-
public static function evaluate_ends_with( $left, $right ) {
|
303 |
-
// Sanity check.
|
304 |
-
if ( is_array( $right ) ) {
|
305 |
-
$right = array_shift( $right );
|
306 |
-
}
|
307 |
-
|
308 |
-
return ( strlen( $left ) - strlen( $right ) ) === strrpos( $left, $right );
|
309 |
-
}
|
310 |
-
|
311 |
-
/**
|
312 |
-
* Determine if the right (string) operand is not at end of the left (string) operand.
|
313 |
-
*
|
314 |
-
* @param string $left
|
315 |
-
* @param string $right
|
316 |
-
*
|
317 |
-
* @return bool
|
318 |
-
*/
|
319 |
-
public static function evaluate_not_ends_with( $left, $right ) {
|
320 |
-
// Sanity check.
|
321 |
-
if ( is_array( $right ) ) {
|
322 |
-
$right = array_shift( $right );
|
323 |
-
}
|
324 |
-
|
325 |
-
return ( strlen( $left ) - strlen( $right ) ) !== strrpos( $left, $right );
|
326 |
-
}
|
327 |
-
|
328 |
-
/**
|
329 |
-
* Determine if the left operand is between in the two values in right one.
|
330 |
-
*
|
331 |
-
* @param $left
|
332 |
-
* @param array $right
|
333 |
-
*
|
334 |
-
* @return bool
|
335 |
-
*/
|
336 |
-
public static function evaluate_between( $left, $right ) {
|
337 |
-
// Get the two values
|
338 |
-
$small = array_shift( $right );
|
339 |
-
$big = array_shift( $right );
|
340 |
-
|
341 |
-
return ( $small <= $left ) && ( $left <= $big );
|
342 |
-
}
|
343 |
-
|
344 |
-
/**
|
345 |
-
* Determine if the left operand is not between in the two values in right one.
|
346 |
-
*
|
347 |
-
* @param $left
|
348 |
-
* @param array $right
|
349 |
-
*
|
350 |
-
* @return bool
|
351 |
-
*/
|
352 |
-
public static function evaluate_not_between( $left, $right ) {
|
353 |
-
// Get the two values
|
354 |
-
$small = array_shift( $right );
|
355 |
-
$big = array_shift( $right );
|
356 |
-
|
357 |
-
return ! ( ( $small <= $left ) && ( $left <= $big ) );
|
358 |
-
}
|
359 |
-
|
360 |
-
/**
|
361 |
-
* Determine if the left operand is present in the right (list) one.
|
362 |
-
*
|
363 |
-
* @param $left
|
364 |
-
* @param array $right
|
365 |
-
*
|
366 |
-
* @return bool
|
367 |
-
*/
|
368 |
-
public static function evaluate_in( $left, $right ) {
|
369 |
-
// Sanity check.
|
370 |
-
if ( ! is_array( $right ) ) {
|
371 |
-
$right = array( $right );
|
372 |
-
}
|
373 |
-
|
374 |
-
return ( in_array( $left, $right ) );
|
375 |
-
}
|
376 |
-
|
377 |
-
/**
|
378 |
-
* Determine if the left operand is not present in the right (list) one.
|
379 |
-
*
|
380 |
-
* @param $left
|
381 |
-
* @param array $right
|
382 |
-
*
|
383 |
-
* @return bool
|
384 |
-
*/
|
385 |
-
public static function evaluate_not_in( $left, $right ) {
|
386 |
-
// Sanity check.
|
387 |
-
if ( ! is_array( $right ) ) {
|
388 |
-
$right = array( $right );
|
389 |
-
}
|
390 |
-
|
391 |
-
return ! ( in_array( $left, $right ) );
|
392 |
-
}
|
393 |
-
|
394 |
-
/**
|
395 |
-
* Determine if any of the values in the left operand are present in the right one.
|
396 |
-
*
|
397 |
-
* @param array $left
|
398 |
-
* @param array $right
|
399 |
-
*
|
400 |
-
* @return bool
|
401 |
-
*/
|
402 |
-
public static function evaluate_any( $left, $right ) {
|
403 |
-
// Sanity check.
|
404 |
-
if ( ! is_array( $left ) ) {
|
405 |
-
$left = array( $left );
|
406 |
-
}
|
407 |
-
if ( ! is_array( $right ) ) {
|
408 |
-
$right = array( $right );
|
409 |
-
}
|
410 |
-
|
411 |
-
$intersect = array_intersect( $left, $right );
|
412 |
-
|
413 |
-
return ! empty( $intersect );
|
414 |
-
}
|
415 |
-
|
416 |
-
/**
|
417 |
-
* Determine if all of the values in the left operand are present in the right one.
|
418 |
-
*
|
419 |
-
* @param array $left
|
420 |
-
* @param array $right
|
421 |
-
*
|
422 |
-
* @return bool
|
423 |
-
*/
|
424 |
-
public static function evaluate_all( $left, $right ) {
|
425 |
-
// Sanity check.
|
426 |
-
if ( ! is_array( $left ) ) {
|
427 |
-
$left = array( $left );
|
428 |
-
}
|
429 |
-
if ( ! is_array( $right ) ) {
|
430 |
-
$right = array( $right );
|
431 |
-
}
|
432 |
-
|
433 |
-
$intersect = array_intersect( $left, $right );
|
434 |
-
|
435 |
-
return count( $intersect ) === count( $left );
|
436 |
-
}
|
437 |
-
|
438 |
-
/* =======
|
439 |
-
* HELPERS
|
440 |
-
*/
|
441 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/admin-notifications-manager/index.php
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
// Silence is golden
|
3 |
-
// Golden is deprecated
|
|
|
|
|
|
includes/class-customify-customizer.php
CHANGED
@@ -90,13 +90,6 @@ if ( ! class_exists( 'Customify_Customizer' ) ) :
|
|
90 |
|
91 |
$this->localized['options_name'] = PixCustomifyPlugin()->get_options_key();
|
92 |
|
93 |
-
if ( $this->import_button_exists() ) {
|
94 |
-
$this->localized['import_rest_url'] = get_rest_url( '/customify/1.0/' );
|
95 |
-
$this->localized['import_rest_nonce'] = wp_create_nonce( 'wp_rest' );
|
96 |
-
|
97 |
-
$this->register_import_api();
|
98 |
-
}
|
99 |
-
|
100 |
require_once( PixCustomifyPlugin()->get_base_path() . 'features/class-Font_Selector.php' );
|
101 |
$this->localized['theme_fonts'] = $this->theme_fonts = Customify_Font_Selector::instance()->get_theme_fonts();
|
102 |
|
@@ -108,30 +101,6 @@ if ( ! class_exists( 'Customify_Customizer' ) ) :
|
|
108 |
$this->add_hooks();
|
109 |
}
|
110 |
|
111 |
-
/**
|
112 |
-
* Use this function when you need to know if an import button is used
|
113 |
-
* @return bool
|
114 |
-
*/
|
115 |
-
protected function import_button_exists() {
|
116 |
-
$options_details = PixCustomifyPlugin()->get_options_details(true);
|
117 |
-
|
118 |
-
foreach ( $options_details as $option ) {
|
119 |
-
if ( isset( $option['type'] ) && 'import_demo_data' === $option['type'] ) {
|
120 |
-
return true;
|
121 |
-
break;
|
122 |
-
}
|
123 |
-
}
|
124 |
-
|
125 |
-
return false;
|
126 |
-
}
|
127 |
-
|
128 |
-
protected function register_import_api() {
|
129 |
-
|
130 |
-
include_once( PixCustomifyPlugin()->get_base_path() . 'features/class-Customify_Importer.php' );
|
131 |
-
$controller = new Customify_Importer_Controller();
|
132 |
-
$controller->init();
|
133 |
-
}
|
134 |
-
|
135 |
/**
|
136 |
* Initiate our hooks
|
137 |
*
|
@@ -309,7 +278,7 @@ if ( ! class_exists( 'Customify_Customizer' ) ) :
|
|
309 |
return;
|
310 |
}
|
311 |
|
312 |
-
foreach ( PixCustomifyPlugin()->get_options_details( false, true) as $option_id => $option_details ) {
|
313 |
|
314 |
if ( isset( $option_details['type'] ) && $option_details['type'] === 'custom_background' ) {
|
315 |
$custom_background_output = $this->process_custom_background_field_output( $option_details ); ?>
|
@@ -359,7 +328,7 @@ if ( ! class_exists( 'Customify_Customizer' ) ) :
|
|
359 |
function get_dynamic_style() {
|
360 |
$custom_css = '';
|
361 |
|
362 |
-
foreach ( PixCustomifyPlugin()->get_options_details(true) as $option_id => $option_details ) {
|
363 |
|
364 |
if ( isset( $option_details['css'] ) && ! empty( $option_details['css'] ) ) {
|
365 |
// now process each
|
@@ -431,7 +400,7 @@ if ( ! class_exists( 'Customify_Customizer' ) ) :
|
|
431 |
function get_typography_dynamic_style() {
|
432 |
$output = '';
|
433 |
|
434 |
-
$this->get_typography_fields( PixCustomifyPlugin()->get_options_details(true), 'type', 'typography', $this->typo_settings );
|
435 |
|
436 |
if ( empty( $this->typo_settings ) ) {
|
437 |
return $output;
|
@@ -559,7 +528,7 @@ if ( ! class_exists( 'Customify_Customizer' ) ) :
|
|
559 |
function get_typography_dynamic_script() {
|
560 |
$output = '';
|
561 |
|
562 |
-
$this->get_typography_fields( PixCustomifyPlugin()->get_options_details(true), 'type', 'typography', $this->typo_settings );
|
563 |
|
564 |
if ( empty( $this->typo_settings ) ) {
|
565 |
return $output;
|
@@ -1719,24 +1688,6 @@ if ( ! class_exists( 'Customify_Customizer' ) ) :
|
|
1719 |
$control_class_name = 'Pix_Customize_HTML_Control';
|
1720 |
break;
|
1721 |
|
1722 |
-
case 'import_demo_data' :
|
1723 |
-
if ( isset( $field_config['html'] ) || ! empty( $field_config['html'] ) ) {
|
1724 |
-
$control_args['html'] = $field_config['html'];
|
1725 |
-
}
|
1726 |
-
|
1727 |
-
if ( ! isset( $field_config['label'] ) || empty( $field_config['label'] ) ) {
|
1728 |
-
$control_args['label'] = esc_html__( 'Import', 'customify' );
|
1729 |
-
} else {
|
1730 |
-
$control_args['label'] = $field_config['label'];
|
1731 |
-
}
|
1732 |
-
|
1733 |
-
if ( isset( $field_config['notices'] ) && ! empty( $field_config['notices'] ) ) {
|
1734 |
-
$control_args['notices'] = $field_config['notices'];
|
1735 |
-
}
|
1736 |
-
|
1737 |
-
$control_class_name = 'Pix_Customize_Import_Demo_Data_Control';
|
1738 |
-
break;
|
1739 |
-
|
1740 |
default:
|
1741 |
// if we don't have a real control just quit, it doesn't even matter
|
1742 |
return;
|
90 |
|
91 |
$this->localized['options_name'] = PixCustomifyPlugin()->get_options_key();
|
92 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
require_once( PixCustomifyPlugin()->get_base_path() . 'features/class-Font_Selector.php' );
|
94 |
$this->localized['theme_fonts'] = $this->theme_fonts = Customify_Font_Selector::instance()->get_theme_fonts();
|
95 |
|
101 |
$this->add_hooks();
|
102 |
}
|
103 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
/**
|
105 |
* Initiate our hooks
|
106 |
*
|
278 |
return;
|
279 |
}
|
280 |
|
281 |
+
foreach ( PixCustomifyPlugin()->get_options_details( false, true ) as $option_id => $option_details ) {
|
282 |
|
283 |
if ( isset( $option_details['type'] ) && $option_details['type'] === 'custom_background' ) {
|
284 |
$custom_background_output = $this->process_custom_background_field_output( $option_details ); ?>
|
328 |
function get_dynamic_style() {
|
329 |
$custom_css = '';
|
330 |
|
331 |
+
foreach ( PixCustomifyPlugin()->get_options_details( true ) as $option_id => $option_details ) {
|
332 |
|
333 |
if ( isset( $option_details['css'] ) && ! empty( $option_details['css'] ) ) {
|
334 |
// now process each
|
400 |
function get_typography_dynamic_style() {
|
401 |
$output = '';
|
402 |
|
403 |
+
$this->get_typography_fields( PixCustomifyPlugin()->get_options_details( true ), 'type', 'typography', $this->typo_settings );
|
404 |
|
405 |
if ( empty( $this->typo_settings ) ) {
|
406 |
return $output;
|
528 |
function get_typography_dynamic_script() {
|
529 |
$output = '';
|
530 |
|
531 |
+
$this->get_typography_fields( PixCustomifyPlugin()->get_options_details( true ), 'type', 'typography', $this->typo_settings );
|
532 |
|
533 |
if ( empty( $this->typo_settings ) ) {
|
534 |
return $output;
|
1688 |
$control_class_name = 'Pix_Customize_HTML_Control';
|
1689 |
break;
|
1690 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1691 |
default:
|
1692 |
// if we don't have a real control just quit, it doesn't even matter
|
1693 |
return;
|
includes/class-customify-settings.php
CHANGED
@@ -80,10 +80,13 @@ class Customify_Settings {
|
|
80 |
* Register the administration menu for this plugin into the WordPress Dashboard menu.
|
81 |
*/
|
82 |
function add_plugin_admin_menu() {
|
83 |
-
$this->plugin_screen_hook_suffix = add_options_page(
|
84 |
-
|
85 |
-
'
|
86 |
-
|
|
|
|
|
|
|
87 |
}
|
88 |
|
89 |
/**
|
80 |
* Register the administration menu for this plugin into the WordPress Dashboard menu.
|
81 |
*/
|
82 |
function add_plugin_admin_menu() {
|
83 |
+
$this->plugin_screen_hook_suffix = add_options_page(
|
84 |
+
esc_html__( 'Customify', 'customify' ),
|
85 |
+
esc_html__( 'Customify', 'customify' ),
|
86 |
+
'manage_options',
|
87 |
+
$this->slug,
|
88 |
+
array( $this, 'display_plugin_admin_page' )
|
89 |
+
);
|
90 |
}
|
91 |
|
92 |
/**
|
includes/class-customify-style-manager.php
CHANGED
@@ -55,14 +55,6 @@ class Customify_Style_Manager {
|
|
55 |
*/
|
56 |
protected $font_palettes = null;
|
57 |
|
58 |
-
/**
|
59 |
-
* The notifications object.
|
60 |
-
* @var null|Pixcloud_Admin_Notifications_Manager
|
61 |
-
* @access public
|
62 |
-
* @since 1.9.0
|
63 |
-
*/
|
64 |
-
protected $notifications = null;
|
65 |
-
|
66 |
/**
|
67 |
* The Cloud API object.
|
68 |
* @var null|Customify_Cloud_Api
|
@@ -104,18 +96,6 @@ class Customify_Style_Manager {
|
|
104 |
require_once 'class-customify-font-palettes.php';
|
105 |
$this->font_palettes = Customify_Font_Palettes::instance();
|
106 |
|
107 |
-
/**
|
108 |
-
* Initialize the Notifications logic.
|
109 |
-
*/
|
110 |
-
require_once 'admin-notifications-manager/class-admin-notifications-manager.php';
|
111 |
-
$this->notifications = Pixcloud_Admin_Notifications_Manager::instance(
|
112 |
-
array(
|
113 |
-
'plugin_name' => 'Customify',
|
114 |
-
'text_domain' => 'customify',
|
115 |
-
'version' => '',
|
116 |
-
)
|
117 |
-
);
|
118 |
-
|
119 |
/**
|
120 |
* Initialize the Cloud API logic.
|
121 |
*/
|
55 |
*/
|
56 |
protected $font_palettes = null;
|
57 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
/**
|
59 |
* The Cloud API object.
|
60 |
* @var null|Customify_Cloud_Api
|
96 |
require_once 'class-customify-font-palettes.php';
|
97 |
$this->font_palettes = Customify_Font_Palettes::instance();
|
98 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
99 |
/**
|
100 |
* Initialize the Cloud API logic.
|
101 |
*/
|
includes/class-pixcustomify.php
CHANGED
@@ -216,20 +216,30 @@ class PixCustomifyPlugin {
|
|
216 |
return $this->opt_name;
|
217 |
}
|
218 |
|
|
|
|
|
|
|
|
|
219 |
// First try and get the cached data
|
220 |
$data = get_option( $this->get_customizer_opt_name_cache_key() );
|
|
|
221 |
|
222 |
-
//
|
223 |
-
|
|
|
|
|
|
|
224 |
|
225 |
// The data isn't set, is expired or we were instructed to skip the cache; we need to regenerate the config.
|
226 |
if ( true === $skip_cache || false === $data || false === $expire_timestamp || $expire_timestamp < time() ) {
|
227 |
|
228 |
$data = $this->get_customizer_config( 'opt-name' );
|
229 |
|
230 |
-
|
231 |
-
|
232 |
-
|
|
|
|
|
233 |
}
|
234 |
|
235 |
$this->opt_name = $data;
|
@@ -242,6 +252,8 @@ class PixCustomifyPlugin {
|
|
242 |
|
243 |
public function invalidate_customizer_opt_name_cache() {
|
244 |
update_option( $this->get_customizer_opt_name_cache_key() . '_timestamp' , time() - 24 * HOUR_IN_SECONDS, true );
|
|
|
|
|
245 |
}
|
246 |
|
247 |
public function filter_invalidate_customizer_opt_name_cache( $value ) {
|
@@ -257,19 +269,16 @@ class PixCustomifyPlugin {
|
|
257 |
if ( true === $only_minimal_details && ! empty( $this->options_minimal_details ) ) {
|
258 |
return $this->options_minimal_details;
|
259 |
}
|
260 |
-
|
261 |
if ( ! empty( $this->options_details ) ) {
|
262 |
return $this->options_details;
|
263 |
}
|
264 |
|
265 |
-
|
266 |
-
|
267 |
-
// We don't force skip the cache for AJAX requests for performance reasons.
|
268 |
-
if ( defined('CUSTOMIFY_ALWAYS_GENERATE_CUSTOMIZER_CONFIG' )
|
269 |
-
&& true === CUSTOMIFY_ALWAYS_GENERATE_CUSTOMIZER_CONFIG ) {
|
270 |
$skip_cache = true;
|
271 |
}
|
272 |
|
|
|
|
|
273 |
$data = $this->options_minimal_details = get_option( $this->get_options_minimal_details_cache_key() );
|
274 |
if ( false !== $data && false === $only_minimal_details ) {
|
275 |
$extra_details_data = get_option( $this->get_options_extra_details_cache_key() );
|
@@ -277,7 +286,7 @@ class PixCustomifyPlugin {
|
|
277 |
$data = $this->options_details = Customify_Array::array_merge_recursive_distinct( $data, $extra_details_data );
|
278 |
} else {
|
279 |
// Something is wrong with the extra details and we need to regenerate.
|
280 |
-
$
|
281 |
}
|
282 |
}
|
283 |
|
@@ -287,8 +296,13 @@ class PixCustomifyPlugin {
|
|
287 |
return $data;
|
288 |
}
|
289 |
|
290 |
-
|
291 |
-
|
|
|
|
|
|
|
|
|
|
|
292 |
|
293 |
// The data isn't set, is expired or we were instructed to skip the cache; we need to regenerate the config.
|
294 |
if ( true === $skip_cache || false === $data || false === $expire_timestamp || $expire_timestamp < time() ) {
|
@@ -355,10 +369,12 @@ class PixCustomifyPlugin {
|
|
355 |
}
|
356 |
}
|
357 |
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
|
|
|
|
362 |
|
363 |
$data = $this->options_minimal_details = $options_minimal_details;
|
364 |
$this->options_details = Customify_Array::array_merge_recursive_distinct( $options_minimal_details, $options_extra_details );
|
@@ -370,6 +386,54 @@ class PixCustomifyPlugin {
|
|
370 |
return $data;
|
371 |
}
|
372 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
373 |
private function get_options_minimal_details_cache_key() {
|
374 |
return 'customify_options_minimal_details';
|
375 |
}
|
@@ -384,6 +448,8 @@ class PixCustomifyPlugin {
|
|
384 |
|
385 |
public function invalidate_options_details_cache() {
|
386 |
update_option( $this->get_options_details_cache_timestamp_key(), time() - 24 * HOUR_IN_SECONDS, true );
|
|
|
|
|
387 |
}
|
388 |
|
389 |
public function filter_invalidate_options_details_cache( $value ) {
|
@@ -425,20 +491,17 @@ class PixCustomifyPlugin {
|
|
425 |
* @return array
|
426 |
*/
|
427 |
protected function load_customizer_config( $skip_cache = false ) {
|
428 |
-
if ( ! empty( $this->customizer_config )
|
429 |
return $this->customizer_config;
|
430 |
}
|
431 |
|
432 |
-
|
433 |
-
$data = get_option( $this->get_customizer_config_cache_key() );
|
434 |
-
|
435 |
-
// We don't force skip the cache for AJAX requests for performance reasons.
|
436 |
-
if ( ! wp_doing_ajax()
|
437 |
-
&& defined('CUSTOMIFY_ALWAYS_GENERATE_CUSTOMIZER_CONFIG' )
|
438 |
-
&& true === CUSTOMIFY_ALWAYS_GENERATE_CUSTOMIZER_CONFIG ) {
|
439 |
$skip_cache = true;
|
440 |
}
|
441 |
|
|
|
|
|
|
|
442 |
// For performance reasons, we will use the cached data (even if stale)
|
443 |
// when a user is not logged in or a user without administrative capabilities is logged in.
|
444 |
if ( false !== $data && false === $skip_cache && ! current_user_can( 'manage_options' ) ) {
|
@@ -446,8 +509,13 @@ class PixCustomifyPlugin {
|
|
446 |
return $data;
|
447 |
}
|
448 |
|
449 |
-
|
450 |
-
|
|
|
|
|
|
|
|
|
|
|
451 |
|
452 |
// The data isn't set, is expired or we were instructed to skip the cache; we need to regenerate the config.
|
453 |
if ( true === $skip_cache || false === $data || false === $expire_timestamp || $expire_timestamp < time() ) {
|
@@ -456,9 +524,11 @@ class PixCustomifyPlugin {
|
|
456 |
// We apply a second filter for those that wish to work with the final config and not rely on a a huge priority number.
|
457 |
$data = apply_filters( 'customify_final_config', $data );
|
458 |
|
459 |
-
|
460 |
-
|
461 |
-
|
|
|
|
|
462 |
}
|
463 |
|
464 |
$this->customizer_config = $data;
|
@@ -471,10 +541,12 @@ class PixCustomifyPlugin {
|
|
471 |
|
472 |
public function invalidate_customizer_config_cache() {
|
473 |
update_option( $this->get_customizer_config_cache_key() . '_timestamp' , time() - 24 * HOUR_IN_SECONDS, true );
|
|
|
|
|
474 |
}
|
475 |
|
476 |
/**
|
477 |
-
* Invalidate the customizer config cache, when hooked via a filter.
|
478 |
*
|
479 |
* @since 2.4.0
|
480 |
*
|
@@ -522,10 +594,49 @@ class PixCustomifyPlugin {
|
|
522 |
return $this->get_options_details( $only_minimal_details, $skip_cache );
|
523 |
}
|
524 |
|
525 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
526 |
global $wp_customize;
|
527 |
|
528 |
-
if ( empty( $setting_id ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
529 |
return null;
|
530 |
}
|
531 |
|
@@ -538,8 +649,8 @@ class PixCustomifyPlugin {
|
|
538 |
|
539 |
$values = get_theme_mod( $this->get_options_key() );
|
540 |
|
541 |
-
if ( ! empty( $values ) && is_array( $values ) && isset( $values[ $
|
542 |
-
return $values[ $
|
543 |
}
|
544 |
|
545 |
return null;
|
@@ -578,19 +689,39 @@ class PixCustomifyPlugin {
|
|
578 |
// If we already have the value cached in the option details, we will use that.
|
579 |
$value = $option_details['value'];
|
580 |
} else {
|
|
|
|
|
|
|
|
|
|
|
581 |
$setting_id = $this->get_options_key() . '[' . $option_id . ']';
|
582 |
-
// If we have been explicitly given a setting ID we will use that
|
583 |
if ( ! empty( $option_details['setting_id'] ) ) {
|
584 |
$setting_id = $option_details['setting_id'];
|
585 |
}
|
586 |
|
|
|
|
|
|
|
|
|
|
|
|
|
587 |
if ( isset( $option_details['setting_type'] ) && $option_details['setting_type'] === 'option' ) {
|
588 |
-
// We have a setting that is saved in the wp_options table, not in theme_mods.
|
589 |
-
// We will fetch it directly.
|
590 |
$value = get_option( $setting_id, null );
|
591 |
-
}
|
592 |
-
|
593 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
594 |
}
|
595 |
}
|
596 |
}
|
216 |
return $this->opt_name;
|
217 |
}
|
218 |
|
219 |
+
if ( $this->should_force_skip_cache() ) {
|
220 |
+
$skip_cache = true;
|
221 |
+
}
|
222 |
+
|
223 |
// First try and get the cached data
|
224 |
$data = get_option( $this->get_customizer_opt_name_cache_key() );
|
225 |
+
$expire_timestamp = false;
|
226 |
|
227 |
+
// Only try to get the expire timestamp if we really need to.
|
228 |
+
if ( true !== $skip_cache && false !== $data ) {
|
229 |
+
// Get the cache data expiration timestamp.
|
230 |
+
$expire_timestamp = get_option( $this->get_customizer_opt_name_cache_key() . '_timestamp' );
|
231 |
+
}
|
232 |
|
233 |
// The data isn't set, is expired or we were instructed to skip the cache; we need to regenerate the config.
|
234 |
if ( true === $skip_cache || false === $data || false === $expire_timestamp || $expire_timestamp < time() ) {
|
235 |
|
236 |
$data = $this->get_customizer_config( 'opt-name' );
|
237 |
|
238 |
+
if ( true !== $skip_cache ) {
|
239 |
+
// Cache the data in an option for 6 hours, but only if we are not supposed to skip the cache entirely.
|
240 |
+
update_option( $this->get_customizer_opt_name_cache_key(), $data, true );
|
241 |
+
update_option( $this->get_customizer_opt_name_cache_key() . '_timestamp', time() + 6 * HOUR_IN_SECONDS, true );
|
242 |
+
}
|
243 |
}
|
244 |
|
245 |
$this->opt_name = $data;
|
252 |
|
253 |
public function invalidate_customizer_opt_name_cache() {
|
254 |
update_option( $this->get_customizer_opt_name_cache_key() . '_timestamp' , time() - 24 * HOUR_IN_SECONDS, true );
|
255 |
+
|
256 |
+
$this->clear_locally_cached_data();
|
257 |
}
|
258 |
|
259 |
public function filter_invalidate_customizer_opt_name_cache( $value ) {
|
269 |
if ( true === $only_minimal_details && ! empty( $this->options_minimal_details ) ) {
|
270 |
return $this->options_minimal_details;
|
271 |
}
|
|
|
272 |
if ( ! empty( $this->options_details ) ) {
|
273 |
return $this->options_details;
|
274 |
}
|
275 |
|
276 |
+
if ( $this->should_force_skip_cache() ) {
|
|
|
|
|
|
|
|
|
277 |
$skip_cache = true;
|
278 |
}
|
279 |
|
280 |
+
// We will first look for cached data
|
281 |
+
|
282 |
$data = $this->options_minimal_details = get_option( $this->get_options_minimal_details_cache_key() );
|
283 |
if ( false !== $data && false === $only_minimal_details ) {
|
284 |
$extra_details_data = get_option( $this->get_options_extra_details_cache_key() );
|
286 |
$data = $this->options_details = Customify_Array::array_merge_recursive_distinct( $data, $extra_details_data );
|
287 |
} else {
|
288 |
// Something is wrong with the extra details and we need to regenerate.
|
289 |
+
$this->invalidate_options_details_cache();
|
290 |
}
|
291 |
}
|
292 |
|
296 |
return $data;
|
297 |
}
|
298 |
|
299 |
+
$expire_timestamp = false;
|
300 |
+
|
301 |
+
// Only try to get the expire timestamp if we really need to.
|
302 |
+
if ( true !== $skip_cache && false !== $data ) {
|
303 |
+
// Get the cached data expiration timestamp.
|
304 |
+
$expire_timestamp = get_option( $this->get_options_details_cache_timestamp_key() );
|
305 |
+
}
|
306 |
|
307 |
// The data isn't set, is expired or we were instructed to skip the cache; we need to regenerate the config.
|
308 |
if ( true === $skip_cache || false === $data || false === $expire_timestamp || $expire_timestamp < time() ) {
|
369 |
}
|
370 |
}
|
371 |
|
372 |
+
if ( true !== $skip_cache ) {
|
373 |
+
// Cache the data for 6 hours, but only if we are not supposed to skip the cache entirely.
|
374 |
+
update_option( $this->get_options_minimal_details_cache_key(), $options_minimal_details, true );
|
375 |
+
update_option( $this->get_options_extra_details_cache_key(), $options_extra_details, false ); // we will not autoload extra details for performance reasons.
|
376 |
+
update_option( $this->get_options_details_cache_timestamp_key(), time() + 6 * HOUR_IN_SECONDS, true );
|
377 |
+
}
|
378 |
|
379 |
$data = $this->options_minimal_details = $options_minimal_details;
|
380 |
$this->options_details = Customify_Array::array_merge_recursive_distinct( $options_minimal_details, $options_extra_details );
|
386 |
return $data;
|
387 |
}
|
388 |
|
389 |
+
private function should_force_skip_cache() {
|
390 |
+
// If our development constant is defined and true, we will always skip the cache, except for AJAX calls.
|
391 |
+
// Other, more specific cases may impose skipping the cache also on AJAX calls.
|
392 |
+
if ( ! wp_doing_ajax()
|
393 |
+
&& defined('CUSTOMIFY_ALWAYS_GENERATE_CUSTOMIZER_CONFIG' )
|
394 |
+
&& true === CUSTOMIFY_ALWAYS_GENERATE_CUSTOMIZER_CONFIG ) {
|
395 |
+
return true;
|
396 |
+
}
|
397 |
+
|
398 |
+
// If we are in the Customizer and the request has a $_POST['customized'] parameter, we will skip the cache
|
399 |
+
// since this means that the preview is being reloaded with temporary settings values.
|
400 |
+
if ( ! empty( $_POST['customized'] ) ) {
|
401 |
+
return true;
|
402 |
+
}
|
403 |
+
|
404 |
+
// If we are currently previewing a theme without being actually active, we should not use cached data.
|
405 |
+
|
406 |
+
if ( ! empty( $_REQUEST['theme'] ) || ! empty( $_REQUEST['customize_theme'] ) ) {
|
407 |
+
return true;
|
408 |
+
}
|
409 |
+
|
410 |
+
/** @var WP_Customize_Manager $wp_customize */
|
411 |
+
global $wp_customize;
|
412 |
+
if ( ! empty( $wp_customize )
|
413 |
+
&& method_exists( $wp_customize, 'is_theme_active' )
|
414 |
+
&& ! $wp_customize->is_theme_active() ) {
|
415 |
+
|
416 |
+
return true;
|
417 |
+
}
|
418 |
+
|
419 |
+
return false;
|
420 |
+
}
|
421 |
+
|
422 |
+
/**
|
423 |
+
* This will clear any instance properties that are used as local cache during a request to avoid
|
424 |
+
* fetching the data from DB on each method call.
|
425 |
+
*
|
426 |
+
* This may be called during a request when something happens that (potentially) invalidates our data mid-request.
|
427 |
+
*/
|
428 |
+
public function clear_locally_cached_data() {
|
429 |
+
$this->opt_name = null;
|
430 |
+
|
431 |
+
$this->customizer_config = null;
|
432 |
+
|
433 |
+
$this->options_minimal_details = null;
|
434 |
+
$this->options_details = null;
|
435 |
+
}
|
436 |
+
|
437 |
private function get_options_minimal_details_cache_key() {
|
438 |
return 'customify_options_minimal_details';
|
439 |
}
|
448 |
|
449 |
public function invalidate_options_details_cache() {
|
450 |
update_option( $this->get_options_details_cache_timestamp_key(), time() - 24 * HOUR_IN_SECONDS, true );
|
451 |
+
|
452 |
+
$this->clear_locally_cached_data();
|
453 |
}
|
454 |
|
455 |
public function filter_invalidate_options_details_cache( $value ) {
|
491 |
* @return array
|
492 |
*/
|
493 |
protected function load_customizer_config( $skip_cache = false ) {
|
494 |
+
if ( ! empty( $this->customizer_config ) ) {
|
495 |
return $this->customizer_config;
|
496 |
}
|
497 |
|
498 |
+
if ( $this->should_force_skip_cache() ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
499 |
$skip_cache = true;
|
500 |
}
|
501 |
|
502 |
+
// First try and get the cached data
|
503 |
+
$data = get_option( $this->get_customizer_config_cache_key() );
|
504 |
+
|
505 |
// For performance reasons, we will use the cached data (even if stale)
|
506 |
// when a user is not logged in or a user without administrative capabilities is logged in.
|
507 |
if ( false !== $data && false === $skip_cache && ! current_user_can( 'manage_options' ) ) {
|
509 |
return $data;
|
510 |
}
|
511 |
|
512 |
+
$expire_timestamp = false;
|
513 |
+
|
514 |
+
// Only try to get the expire timestamp if we really need to.
|
515 |
+
if ( true !== $skip_cache && false !== $data ) {
|
516 |
+
// Get the cache data expiration timestamp.
|
517 |
+
$expire_timestamp = get_option( $this->get_customizer_config_cache_key() . '_timestamp' );
|
518 |
+
}
|
519 |
|
520 |
// The data isn't set, is expired or we were instructed to skip the cache; we need to regenerate the config.
|
521 |
if ( true === $skip_cache || false === $data || false === $expire_timestamp || $expire_timestamp < time() ) {
|
524 |
// We apply a second filter for those that wish to work with the final config and not rely on a a huge priority number.
|
525 |
$data = apply_filters( 'customify_final_config', $data );
|
526 |
|
527 |
+
if ( true !== $skip_cache ) {
|
528 |
+
// Cache the data in an option for 6 hours, but only if we are not supposed to skip the cache entirely.
|
529 |
+
update_option( $this->get_customizer_config_cache_key(), $data, false );
|
530 |
+
update_option( $this->get_customizer_config_cache_key() . '_timestamp', time() + 6 * HOUR_IN_SECONDS, true );
|
531 |
+
}
|
532 |
}
|
533 |
|
534 |
$this->customizer_config = $data;
|
541 |
|
542 |
public function invalidate_customizer_config_cache() {
|
543 |
update_option( $this->get_customizer_config_cache_key() . '_timestamp' , time() - 24 * HOUR_IN_SECONDS, true );
|
544 |
+
|
545 |
+
$this->clear_locally_cached_data();
|
546 |
}
|
547 |
|
548 |
/**
|
549 |
+
* Invalidate the customizer config cache, when hooked via a filter (just pass through the value).
|
550 |
*
|
551 |
* @since 2.4.0
|
552 |
*
|
594 |
return $this->get_options_details( $only_minimal_details, $skip_cache );
|
595 |
}
|
596 |
|
597 |
+
/**
|
598 |
+
* Get the value of a setting ID saved in a wp_options array entry.
|
599 |
+
*
|
600 |
+
* @param string $option_id This is only the option ID, that may differ from setting ID ( like in `body_font` vs `rosa_opt[body_font]`)
|
601 |
+
* @param string $setting_id We will use this to get the Customizer value, when in that context.
|
602 |
+
*
|
603 |
+
* @return mixed|null
|
604 |
+
*/
|
605 |
+
protected function get_option_mod_value( $option_id, $setting_id ) {
|
606 |
global $wp_customize;
|
607 |
|
608 |
+
if ( empty( $option_id ) || empty( $setting_id ) ) {
|
609 |
+
return null;
|
610 |
+
}
|
611 |
+
|
612 |
+
if ( ! empty( $wp_customize ) && method_exists( $wp_customize, 'get_setting' ) ) {
|
613 |
+
$setting = $wp_customize->get_setting( $setting_id );
|
614 |
+
if ( ! empty( $setting ) ) {
|
615 |
+
return $setting->value();
|
616 |
+
}
|
617 |
+
}
|
618 |
+
|
619 |
+
$values = get_option( $this->get_options_key() );
|
620 |
+
|
621 |
+
if ( ! empty( $values ) && is_array( $values ) && isset( $values[ $option_id ] ) ) {
|
622 |
+
return $values[ $option_id ];
|
623 |
+
}
|
624 |
+
|
625 |
+
return null;
|
626 |
+
}
|
627 |
+
|
628 |
+
/**
|
629 |
+
* Get the value of a certain setting ID saved in the theme mod array.
|
630 |
+
*
|
631 |
+
* @param string $option_id This is only the option ID, that may differ from setting ID ( like in `body_font` vs `rosa_opt[body_font]`)
|
632 |
+
* @param string $setting_id We will use this to get the Customizer value, when in that context.
|
633 |
+
*
|
634 |
+
* @return mixed|null
|
635 |
+
*/
|
636 |
+
protected function get_theme_mod_value( $option_id, $setting_id ) {
|
637 |
+
global $wp_customize;
|
638 |
+
|
639 |
+
if ( empty( $option_id ) || empty( $setting_id ) ) {
|
640 |
return null;
|
641 |
}
|
642 |
|
649 |
|
650 |
$values = get_theme_mod( $this->get_options_key() );
|
651 |
|
652 |
+
if ( ! empty( $values ) && is_array( $values ) && isset( $values[ $option_id ] ) ) {
|
653 |
+
return $values[ $option_id ];
|
654 |
}
|
655 |
|
656 |
return null;
|
689 |
// If we already have the value cached in the option details, we will use that.
|
690 |
$value = $option_details['value'];
|
691 |
} else {
|
692 |
+
$value = null;
|
693 |
+
|
694 |
+
/*
|
695 |
+
* First determine the setting ID.
|
696 |
+
*/
|
697 |
$setting_id = $this->get_options_key() . '[' . $option_id . ']';
|
698 |
+
// If we have been explicitly given a setting ID we will use that.
|
699 |
if ( ! empty( $option_details['setting_id'] ) ) {
|
700 |
$setting_id = $option_details['setting_id'];
|
701 |
}
|
702 |
|
703 |
+
/*
|
704 |
+
* Second, try to get the stored value of the setting.
|
705 |
+
*/
|
706 |
+
|
707 |
+
// If we have a setting that directly declares it (not deduced like when registering fields in the Customizer)
|
708 |
+
// should be saved in the wp_options table, not in theme_mods, we will attempt to fetch it directly, first.
|
709 |
if ( isset( $option_details['setting_type'] ) && $option_details['setting_type'] === 'option' ) {
|
|
|
|
|
710 |
$value = get_option( $setting_id, null );
|
711 |
+
}
|
712 |
+
|
713 |
+
// If we don't have a value, we will grab the setting value from the array of values stored in either
|
714 |
+
// a wp_option entry or in the theme_mods.
|
715 |
+
// The "save as array" behavior happens even in the case of 'option' setting type if
|
716 |
+
// the setting ID is of the form 'rosa_option[some_key]' (aka a multidimensional setting ID).
|
717 |
+
if ( null === $value ) {
|
718 |
+
if ( PixCustomifyPlugin()->settings->get_plugin_setting( 'values_store_mod' ) === 'option' ) {
|
719 |
+
// Get the value stored in a option.
|
720 |
+
$value = $this->get_option_mod_value( $option_id, $setting_id );
|
721 |
+
} else {
|
722 |
+
// Get the value stored in theme_mods.
|
723 |
+
$value = $this->get_theme_mod_value( $option_id, $setting_id );
|
724 |
+
}
|
725 |
}
|
726 |
}
|
727 |
}
|
js/customizer.js
CHANGED
@@ -241,32 +241,6 @@
|
|
241 |
$(this).trigger('customify:preset-change')
|
242 |
})
|
243 |
|
244 |
-
// bind our event on click
|
245 |
-
$(document).on('click', '.customify_import_demo_data_button', function (event) {
|
246 |
-
let key = $(this).data('key')
|
247 |
-
let import_queue = new Queue(api)
|
248 |
-
let steps = []
|
249 |
-
|
250 |
-
if (!_.isUndefined(customify_settings.settings[key].imports)) {
|
251 |
-
|
252 |
-
$.each(customify_settings.settings[key].imports, function (i, import_setts, k) {
|
253 |
-
if (_.isUndefined(import_setts.steps)) {
|
254 |
-
steps.push({id: i, type: import_setts.type})
|
255 |
-
} else {
|
256 |
-
var count = import_setts.steps
|
257 |
-
|
258 |
-
while (count >= 1) {
|
259 |
-
steps.push({id: i, type: import_setts.type, count: count})
|
260 |
-
count = count - 1
|
261 |
-
}
|
262 |
-
}
|
263 |
-
})
|
264 |
-
}
|
265 |
-
|
266 |
-
import_queue.add_steps('import_demo_data_action_id', steps)
|
267 |
-
return false
|
268 |
-
})
|
269 |
-
|
270 |
customifyBackgroundJsControl.init()
|
271 |
|
272 |
// sometimes a php save may be needed
|
@@ -1079,127 +1053,6 @@
|
|
1079 |
}
|
1080 |
)(jQuery)
|
1081 |
|
1082 |
-
var Queue = function () {
|
1083 |
-
var lastPromise = null
|
1084 |
-
var queueDeferred = null
|
1085 |
-
var methodDeferred = null
|
1086 |
-
|
1087 |
-
this.add_steps = function (key, steps, args) {
|
1088 |
-
var self = this
|
1089 |
-
this.methodDeferred = $.Deferred()
|
1090 |
-
this.queueDeferred = this.setup()
|
1091 |
-
|
1092 |
-
$.each(steps, function (i, step) {
|
1093 |
-
self.queue(key, step)
|
1094 |
-
})
|
1095 |
-
}
|
1096 |
-
|
1097 |
-
this.process_remote_step = function (key, data, step) {
|
1098 |
-
var self = this
|
1099 |
-
|
1100 |
-
if (_.isUndefined(data) || _.isNull(data)) {
|
1101 |
-
return false
|
1102 |
-
}
|
1103 |
-
|
1104 |
-
var new_step = step
|
1105 |
-
$.each(data, function (i, k) {
|
1106 |
-
debugger
|
1107 |
-
// prepare data for new requests
|
1108 |
-
new_step.recall_data = k.data
|
1109 |
-
new_step.recall_type = k.type
|
1110 |
-
new_step.type = 'recall'
|
1111 |
-
|
1112 |
-
self.queue(key, new_step, k.id)
|
1113 |
-
})
|
1114 |
-
}
|
1115 |
-
|
1116 |
-
this.log_action = function (action, key, msg) {
|
1117 |
-
if (action === 'start') {
|
1118 |
-
$('.wpGrade-import-results').show()
|
1119 |
-
$('.wpGrade-import-results').append('<span class="import_step_note imports_step_' + key + '" ><span class="step_info" data-balloon="Working on it" data-balloon-pos="up"></span>Importing ' + key + '</span>')
|
1120 |
-
} else if (action === 'end') {
|
1121 |
-
var $notice = $('.imports_step_' + key + ' .step_info')
|
1122 |
-
|
1123 |
-
if ($notice.length > 0 || msg !== 'undefined') {
|
1124 |
-
$notice.attr('data-balloon', msg)
|
1125 |
-
$notice.addClass('success')
|
1126 |
-
} else {
|
1127 |
-
$notice.attr('data-balloon', 'Done')
|
1128 |
-
$notice.addClass('failed')
|
1129 |
-
}
|
1130 |
-
}
|
1131 |
-
}
|
1132 |
-
|
1133 |
-
this.queue = function (key, data, step_key) {
|
1134 |
-
var self = this
|
1135 |
-
if (!_.isUndefined(step_key)) {
|
1136 |
-
this.log_action('start', step_key)
|
1137 |
-
}
|
1138 |
-
|
1139 |
-
// execute next queue method
|
1140 |
-
this.queueDeferred.done(this.request(key, data, step_key))
|
1141 |
-
lastPromise = self.methodDeferred.promise()
|
1142 |
-
}
|
1143 |
-
|
1144 |
-
this.request = function (key, step, step_key) {
|
1145 |
-
var self = this
|
1146 |
-
// call actual method and wrap output in deferred
|
1147 |
-
//setTimeout( function() {
|
1148 |
-
var data_args = {
|
1149 |
-
action: 'customify_import_step',
|
1150 |
-
step_id: step.id,
|
1151 |
-
step_type: step.type,
|
1152 |
-
option_key: key
|
1153 |
-
}
|
1154 |
-
|
1155 |
-
if (!_.isUndefined(step.recall_data)) {
|
1156 |
-
data_args.recall_data = step.recall_data
|
1157 |
-
}
|
1158 |
-
|
1159 |
-
if (!_.isUndefined(step.recall_type)) {
|
1160 |
-
data_args.recall_type = step.recall_type
|
1161 |
-
}
|
1162 |
-
|
1163 |
-
$.ajax({
|
1164 |
-
url: customify_settings.import_rest_url + 'customify/1.0/import',
|
1165 |
-
method: 'POST',
|
1166 |
-
beforeSend: function (xhr) {
|
1167 |
-
xhr.setRequestHeader('X-WP-Nonce', WP_API_Settings.nonce)
|
1168 |
-
},
|
1169 |
-
dataType: 'json',
|
1170 |
-
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
|
1171 |
-
data: data_args
|
1172 |
-
}).done(function (response) {
|
1173 |
-
if (!_.isUndefined(response.success) && response.success) {
|
1174 |
-
var results = response.data
|
1175 |
-
if (step.type === 'remote') {
|
1176 |
-
self.process_remote_step(key, results, step)
|
1177 |
-
}
|
1178 |
-
}
|
1179 |
-
|
1180 |
-
if (!_.isUndefined(step_key) && !_.isUndefined(response.message)) {
|
1181 |
-
self.log_action('end', step_key, response.message)
|
1182 |
-
}
|
1183 |
-
})
|
1184 |
-
|
1185 |
-
self.methodDeferred.resolve()
|
1186 |
-
//}, 3450 );
|
1187 |
-
}
|
1188 |
-
|
1189 |
-
this.setup = function () {
|
1190 |
-
var self = this
|
1191 |
-
|
1192 |
-
self.queueDeferred = $.Deferred()
|
1193 |
-
|
1194 |
-
// when the previous method returns, resolve this one
|
1195 |
-
$.when(lastPromise).always(function () {
|
1196 |
-
self.queueDeferred.resolve()
|
1197 |
-
})
|
1198 |
-
|
1199 |
-
return self.queueDeferred.promise()
|
1200 |
-
}
|
1201 |
-
}
|
1202 |
-
|
1203 |
/** HELPERS **/
|
1204 |
|
1205 |
/**
|
241 |
$(this).trigger('customify:preset-change')
|
242 |
})
|
243 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
244 |
customifyBackgroundJsControl.init()
|
245 |
|
246 |
// sometimes a php save may be needed
|
1053 |
}
|
1054 |
)(jQuery)
|
1055 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1056 |
/** HELPERS **/
|
1057 |
|
1058 |
/**
|
palettes.md
DELETED
@@ -1,292 +0,0 @@
|
|
1 |
-
# Color Palettes Integration Guide
|
2 |
-
|
3 |
-
Intro cu pasii mari pe care trebuie sa-i faca.
|
4 |
-
|
5 |
-
## 1. Define your Color Palette
|
6 |
-
|
7 |
-
### 1.1 Find all the Colors from Your Site
|
8 |
-
The first step is to scan your site and list all the colors that you can find.
|
9 |
-
|
10 |
-
Next you need to organize and reduce the number of all those colors to three groups:
|
11 |
-
- **Color**: accents elements that give personality to the composition *(e.g., headlines)*
|
12 |
-
- **Dark**: used for most of the foreground elements *(e.g., body copy)*
|
13 |
-
- **Light**: usually used for the element's background, as a contrasted version of the two above
|
14 |
-
|
15 |
-
From over 7-years experience of building sites, we find out that those three categories could fill up most of the decisions that a designer take in setting up their site’s elements.
|
16 |
-
|
17 |
-
### 1.2 Define the Master Colors
|
18 |
-
Our current color palettes system supports at most 9 colors (3 accent colors, 3 dark shades and 3 light shades). Below are some guidelines and suggestions about the purpose of each color:
|
19 |
-
|
20 |
-
| Section | Type | Description |
|
21 |
-
|:--|:--|:--|
|
22 |
-
| **Color** | Primary | The main Accent color use it to draw the highest attention.|
|
23 |
-
| | Secondary | An alternative color for Primary |
|
24 |
-
| | Tertiary | An alternative color for Secondary |
|
25 |
-
| **Dark** | Primary | Headings Color – usually the darkest shade. |
|
26 |
-
| | Secondary | Body text color |
|
27 |
-
| | Tertiary | The lightest shade of dark. |
|
28 |
-
| **Light** | Primary | Main site background color |
|
29 |
-
| | Secondary | A complementary color for site background |
|
30 |
-
| | Tertiary | A *highlighter* background color for various elements (e.g. post-it notes, brush strokes). Should have a greater intensity than the others two light colors. |
|
31 |
-
|
32 |
-
|
33 |
-
To make things easier define those colors as constants in your `functions.php` file like so:
|
34 |
-
|
35 |
-
```php
|
36 |
-
// Color
|
37 |
-
define( 'SM_COLOR_PRIMARY', '#FF0000' ); // Use it for Accent Elements
|
38 |
-
define( 'SM_COLOR_SECONDARY', '#00FF00' );
|
39 |
-
define( 'SM_COLOR_TERTIARY', '#0000FF' );
|
40 |
-
|
41 |
-
// Dark
|
42 |
-
define( 'SM_DARK_PRIMARY', '#111111' );
|
43 |
-
define( 'SM_DARK_SECONDARY', '#222222' ); // Use it for Body Text
|
44 |
-
define( 'SM_DARK_TERTIARY', '#333333' );
|
45 |
-
|
46 |
-
// Light
|
47 |
-
define( 'SM_LIGHT_PRIMARY', '#EEEEEE' );
|
48 |
-
define( 'SM_LIGHT_SECONDARY', '#DDDDDD' );
|
49 |
-
define( 'SM_LIGHT_TERTIARY', '#CCCCCC' );
|
50 |
-
```
|
51 |
-
|
52 |
-
You may want to keep all nine definitions even if you don't need them. If you’re not using one constant in the config you can either copy-paste the value of another one in the same group or event alter it's value a little.
|
53 |
-
|
54 |
-
Having all these constants defined will come in handy when using palettes variations and also in defining the default palette for the theme.
|
55 |
-
|
56 |
-
Limit yourself to using as few colors as possible
|
57 |
-
|
58 |
-
Try to use as few colors as possible in your configuration.
|
59 |
-
|
60 |
-
## 2. Create a Baseline for Color Customizations
|
61 |
-
To create a baseline for color customizations, we need to set up the system for being capable of changing any color from our website. We will do that by mapping each site element (e.g., page title) to a color option.
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
### 2.1 Scan all Your Site Elements for Color Rules
|
66 |
-
|
67 |
-
The first step is to scan throughout all the stylesheet files (CSS) and list all the elements that have a color-based rule declaration(e.g., color, background, border).
|
68 |
-
|
69 |
-
Then we will **group** all those CSS rules and place them under a limited number of color fields. To keep things consistent we suggest to start with the following structure and adjust to the theme needs:
|
70 |
-
|
71 |
-
| Section | Fields | Description |
|
72 |
-
|:--|:--|:--|
|
73 |
-
| **Header** | Header Text Color |
|
74 |
-
| | Navigation Links Color |
|
75 |
-
| | Links Active Color |
|
76 |
-
| | Header Background |
|
77 |
-
| **Main Content** | Page Title Color |
|
78 |
-
| | Body Text Color |
|
79 |
-
| | Body Link Color |
|
80 |
-
| | Body Link Active Color |
|
81 |
-
| ↳ *Headings Color* | Heading 1 |
|
82 |
-
| | Heading 2 |
|
83 |
-
| | Heading 3 |
|
84 |
-
| | Heading 4 |
|
85 |
-
| | Heading 5 |
|
86 |
-
| | Heading 6 |
|
87 |
-
| ↳ *Backgrounds* | Content Background Color |
|
88 |
-
| **Buttons** | Text Color |
|
89 |
-
| | Background Color |
|
90 |
-
| **Footer** | Footer Text Color |
|
91 |
-
| | Footer Links Color |
|
92 |
-
| | Footer Headings Color |
|
93 |
-
| | Footer Background |
|
94 |
-
| **Miscellaneous** | Other Fields |
|
95 |
-
|
96 |
-
### 2.2 The Structure Of a Color Field
|
97 |
-
Details:
|
98 |
-
```php
|
99 |
-
function make_this_function_name_unique( $config ) {
|
100 |
-
|
101 |
-
// usually the sections key will be here, but a check won't hurt
|
102 |
-
if ( ! isset($config['sections']) ) {
|
103 |
-
$config['sections'] = array();
|
104 |
-
}
|
105 |
-
|
106 |
-
// this means that we add a new entry named "theme_added_settings" in the sections area
|
107 |
-
$config['sections']['theme_added_settings'] = array(
|
108 |
-
'title' => 'Section added dynamically',
|
109 |
-
'settings' => array(
|
110 |
-
|
111 |
-
// this is the field id and it must be unique
|
112 |
-
'field_example' => array(
|
113 |
-
'type' => 'color', // there is a list of types below
|
114 |
-
'label' => 'Body color', // the label is optional but is nice to have one
|
115 |
-
'css' => array(
|
116 |
-
|
117 |
-
// the CSS key is the one which controls the output of this field
|
118 |
-
array(
|
119 |
-
// a CSS selector
|
120 |
-
'selector' => '#logo',
|
121 |
-
// the CSS property which should be affected by this field
|
122 |
-
'property' => 'background-color',
|
123 |
-
)
|
124 |
-
|
125 |
-
// repeat this as long as you need
|
126 |
-
array(
|
127 |
-
'selector' => 'body',
|
128 |
-
'property' => 'color',
|
129 |
-
)
|
130 |
-
)
|
131 |
-
)
|
132 |
-
)
|
133 |
-
);
|
134 |
-
|
135 |
-
// when working with filters always return filtered value
|
136 |
-
return $config;
|
137 |
-
}
|
138 |
-
add_filter('customify_filter_fields', 'make_this_function_name_unique' );
|
139 |
-
```
|
140 |
-
### 2.3 Add Color Controls to all Your Site Elements
|
141 |
-
Add the code snippet below to `functions.php` in order to..
|
142 |
-
[un snippet si cu sectiunile de mai sus in care doar sa completeze reguli de CSS?]
|
143 |
-
```php
|
144 |
-
|
145 |
-
```
|
146 |
-
|
147 |
-
|
148 |
-
## 3. Add Style Manager section with master controls
|
149 |
-
### 3.1. Add Style Manager support to the theme
|
150 |
-
In your function.php file add the following line of code to add support for the Style Manager section.
|
151 |
-
This is usually done
|
152 |
-
```php
|
153 |
-
if ( ! function_exists( 'themename_setup' ) ) :
|
154 |
-
function listable_setup() {
|
155 |
-
...
|
156 |
-
add_theme_support('customizer_style_manager');
|
157 |
-
...
|
158 |
-
endif;
|
159 |
-
|
160 |
-
add_action( 'after_setup_theme', 'themename_setup' );
|
161 |
-
```
|
162 |
-
|
163 |
-
### 3.2. Add a function to filter the Style Manager config
|
164 |
-
```php
|
165 |
-
/**
|
166 |
-
* Add the Style Manager cross-theme Customizer section.
|
167 |
-
*
|
168 |
-
* @param array $options
|
169 |
-
*
|
170 |
-
* @return array
|
171 |
-
*/
|
172 |
-
function pixelgrade_add_customify_style_manager_section( $options ) {
|
173 |
-
// If the theme hasn't declared support for style manager, bail.
|
174 |
-
if ( ! current_theme_supports( 'customizer_style_manager' ) ) {
|
175 |
-
return $options;
|
176 |
-
}
|
177 |
-
|
178 |
-
if ( ! isset( $options['sections']['style_manager_section'] ) ) {
|
179 |
-
$options['sections']['style_manager_section'] = array();
|
180 |
-
}
|
181 |
-
}
|
182 |
-
```
|
183 |
-
```php
|
184 |
-
add_filter( 'customify_filter_fields', 'pixelgrade_add_customify_style_manager_section', 12, 1 );
|
185 |
-
```
|
186 |
-
|
187 |
-
### 3.3. Extend Style Manager fields with proper defaults and connected fields
|
188 |
-
```php
|
189 |
-
// The section might be already defined, thus we merge, not replace the entire section config.
|
190 |
-
$options['sections']['style_manager_section'] = array_replace_recursive( $options['sections']['style_manager_section'], array(
|
191 |
-
'options' => array(
|
192 |
-
'sm_color_primary' => array(
|
193 |
-
'default' => SM_COLOR_PRIMARY,
|
194 |
-
'connected_fields' => array(
|
195 |
-
'accent_color',
|
196 |
-
),
|
197 |
-
),
|
198 |
-
...
|
199 |
-
),
|
200 |
-
);
|
201 |
-
|
202 |
-
```
|
203 |
-
|
204 |
-
### 3.4. Create a default Color Palette for the current Theme
|
205 |
-
#### 3.4.1 Upload an image to Pixelgrade Cloud in order to use it as a mood background image for this Palette
|
206 |
-
#### 3.4.2 Write the proper configuration and use the `customify_get_color_palettes` hook to add it to the main list
|
207 |
-
Color values listed in the options attribute should match the ones that we've just set for the options in the Style Manager section (or rather the other way around)
|
208 |
-
```php
|
209 |
-
function themename_add_default_color_palette( $color_palettes ) {
|
210 |
-
|
211 |
-
$color_palettes = array_merge(array(
|
212 |
-
'default' => array(
|
213 |
-
'label' => 'Default',
|
214 |
-
'preview' => array(
|
215 |
-
'background_image_url' => '',
|
216 |
-
),
|
217 |
-
'options' => array(
|
218 |
-
'sm_color_primary' => '#FF4D58',
|
219 |
-
'sm_color_secondary' => '#F53C48',
|
220 |
-
'sm_color_tertiary' => '#FF4D58',
|
221 |
-
'sm_dark_primary' => '#484848',
|
222 |
-
'sm_dark_secondary' => '#2F2929',
|
223 |
-
'sm_dark_tertiary' => '#919191',
|
224 |
-
'sm_light_primary' => '#FFFFFF',
|
225 |
-
'sm_light_secondary' => '#F9F9F9',
|
226 |
-
'sm_light_tertiary' => '#F9F9F9',
|
227 |
-
),
|
228 |
-
),
|
229 |
-
), $color_palettes);
|
230 |
-
|
231 |
-
return $color_palettes;
|
232 |
-
}
|
233 |
-
add_filter( 'customify_get_color_palettes', 'themename_add_default_color_palette' );
|
234 |
-
```
|
235 |
-
darkest shades should go in dark_primary
|
236 |
-
body text color should go in dark_secondary
|
237 |
-
|
238 |
-
Pairs of options that control the foreground / background for the same element should not stay in the same group (color, dark or light). One should stay in one of the light groups, and the other one can stay either in the color or the dark groups.
|
239 |
-
|
240 |
-
---
|
241 |
-
## Tips and Tricks / FAQs
|
242 |
-
### What if I have more colors?
|
243 |
-
It happens a lot for developers to write unneeded code, or overly specific CSS selectors. This is a good time to give your code a health check.
|
244 |
-
|
245 |
-
Things that have a big chance of needed to be improved in your code.
|
246 |
-
|
247 |
-
1. Use `opacity` instead of using a new color value when possible.
|
248 |
-
```css
|
249 |
-
.container {
|
250 |
-
color: #222;
|
251 |
-
}
|
252 |
-
|
253 |
-
.container-child {
|
254 |
-
/* color: #444 */
|
255 |
-
opacity: 0.9;
|
256 |
-
}
|
257 |
-
```
|
258 |
-
|
259 |
-
2. Use the `currentColor` value for properties like `border`, `outline`, `box-shadow`, `placeholder` and other properties or pseudo-elements.
|
260 |
-
```css
|
261 |
-
.element {
|
262 |
-
color: #222;
|
263 |
-
/* box-shadow: #222 0 1em 1em; */
|
264 |
-
box-shadow: currentColor 0 1em 1em;
|
265 |
-
}
|
266 |
-
|
267 |
-
.element::after {
|
268 |
-
content: "";
|
269 |
-
/* border: 2px solid #222; */
|
270 |
-
border: 2px solid;
|
271 |
-
}
|
272 |
-
```
|
273 |
-
Use `color: inherit` when possible
|
274 |
-
```
|
275 |
-
a {
|
276 |
-
color: #f00;
|
277 |
-
}
|
278 |
-
|
279 |
-
.container {
|
280 |
-
color: #222;
|
281 |
-
}
|
282 |
-
|
283 |
-
.container a {
|
284 |
-
/* color: #222; */
|
285 |
-
color: inherit;
|
286 |
-
text-decoration: underline;
|
287 |
-
}
|
288 |
-
|
289 |
-
```
|
290 |
-
|
291 |
-
**Make use of Customify's callback filters**
|
292 |
-
If your theme uses more than 3 dark or white shades, you can always make use of the callback filters feature that Customify uses.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
readme.txt
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
Contributors: pixelgrade, euthelup, babbardel, vlad.olaru, raduconstantin, razvanonofrei
|
3 |
Tags: customizer, css, editor, gutenberg, live, preview, customizer
|
4 |
Requires at least: 4.9.9
|
5 |
-
Tested up to: 5.2.
|
6 |
Stable tag: 2.3.5.1
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
@@ -45,6 +45,11 @@ With [Customify](https://github.com/pixelgrade/customify), developers can easily
|
|
45 |
|
46 |
== Changelog ==
|
47 |
|
|
|
|
|
|
|
|
|
|
|
48 |
= 2.3.5.1 =
|
49 |
* Minor configuration fix.
|
50 |
|
2 |
Contributors: pixelgrade, euthelup, babbardel, vlad.olaru, raduconstantin, razvanonofrei
|
3 |
Tags: customizer, css, editor, gutenberg, live, preview, customizer
|
4 |
Requires at least: 4.9.9
|
5 |
+
Tested up to: 5.2.2
|
6 |
Stable tag: 2.3.5.1
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
45 |
|
46 |
== Changelog ==
|
47 |
|
48 |
+
= 2.4.0 =
|
49 |
+
* Big performance enhancements related to how customization settings and configurations get loaded.
|
50 |
+
* Fixed a nasty regression that caused customization settings saved in a option to not be loaded, causing styles to be missing.
|
51 |
+
* Pretty important code refactoring and cleanup to make things more predictable and stable.
|
52 |
+
|
53 |
= 2.3.5.1 =
|
54 |
* Minor configuration fix.
|
55 |
|