Kirki - Version 0.6.0

Version Description

  • 2012-02-25, dev time: 9 hours==
  • Fix: Tooltips now properly working
  • New: Added checkbox switches
  • New: Added checkbox toggles
  • Fix: Generated CSS is not properly combined & minified
  • Fix: Re-structuring files hierarchy
  • Fix: Simplify the way controls are loaded
  • New: Only load control classes when they are needed
  • New: Introducing Kirki_Customize_Control class
  • Fix: CSS tweaks
  • New: Sortable control (creating one is identical to a select control, but with 'type' => 'sortable')
  • Fix: Double output CSS (props @agusmu)
  • New: Google fonts now parsed from a json file.

=

Download this release

Release Info

Developer aristath
Plugin Icon 128x128 Kirki
Version 0.6.0
Comparing to
See all releases

Code changes from version 0.5.1 to 0.6.0

Files changed (40) hide show
  1. README.md +92 -3
  2. assets/css/customizer.css +171 -5
  3. assets/css/jquery-ui-1.10.0.custom.css +56 -58
  4. assets/js/customizer.js +57 -0
  5. assets/js/serialize.js +302 -0
  6. assets/json/webfonts.json +12822 -0
  7. includes/class-Kirki_Controls.php +0 -302
  8. includes/class-Kirki_Fonts.php +0 -7201
  9. includes/class-Kirki_Style_Color.php +0 -47
  10. includes/class-Kirki_Style_Generic.php +0 -69
  11. includes/{class-Kirki_Color.php → class-kirki-color.php} +0 -0
  12. includes/class-kirki-controls.php +146 -0
  13. includes/class-kirki-customize-control.php +24 -0
  14. includes/class-kirki-fonts.php +318 -0
  15. includes/{class-Kirki_Scripts.php → class-kirki-scripts.php} +62 -1
  16. includes/{class-Kirki_Settings.php → class-kirki-settings.php} +0 -0
  17. includes/{class-Kirki_Style_Background.php → class-kirki-style-background.php} +9 -46
  18. includes/class-kirki-style-color.php +14 -0
  19. includes/{class-Kirki_Style_Fonts.php → class-kirki-style-fonts.php} +45 -39
  20. includes/class-kirki-style.php +93 -0
  21. includes/controls/class-Kirki_Customize_Checkbox_Control.php +0 -22
  22. includes/controls/class-Kirki_Customize_Group_Title_Control.php +0 -26
  23. includes/controls/class-Kirki_Customize_Text_Control.php +0 -29
  24. includes/controls/class-Kirki_Customize_Textarea_Control.php +0 -27
  25. includes/controls/class-Kirki_Select_Control.php +0 -39
  26. includes/controls/class-kirki-customize-checkbox-control.php +34 -0
  27. includes/controls/{class-Kirki_Customize_Color_Control.php → class-kirki-customize-color-control.php} +5 -23
  28. includes/controls/class-kirki-customize-group-title-control.php +21 -0
  29. includes/controls/{class-Kirki_Customize_Image_Control.php → class-kirki-customize-image-control.php} +0 -0
  30. includes/controls/{class-Kirki_Customize_Multicheck_Control.php → class-kirki-customize-multicheck-control.php} +8 -10
  31. includes/controls/{class-Kirki_Customize_Number_Control.php → class-kirki-customize-number-control.php} +7 -13
  32. includes/controls/{class-Kirki_Customize_Radio_Control.php → class-kirki-customize-radio-control.php} +8 -11
  33. includes/controls/class-kirki-customize-select-control.php +32 -0
  34. includes/controls/{class-Kirki_Customize_Sliderui_Control.php → class-kirki-customize-slider-control.php} +7 -11
  35. includes/controls/class-kirki-customize-sortable-control.php +57 -0
  36. includes/controls/class-kirki-customize-text-control.php +24 -0
  37. includes/controls/class-kirki-customize-textarea-control.php +23 -0
  38. includes/controls/{class-Kirki_Customize_Upload_Control.php → class-kirki-customize-upload-control.php} +8 -11
  39. kirki.php +34 -29
  40. readme.txt +20 -3
README.md CHANGED
@@ -1,4 +1,93 @@
1
- Kirki
2
- =====
3
4
- Please visit http://kirki.org for documentation and examples
1
+ === Kirki ===
2
+ Contributors: aristath, fovoc
3
+ Donate link: http://kirki.org
4
+ Tags: customizer
5
+ Requires at least: 3.9
6
+ Tested up to: 4.1
7
+ Stable tag: 0.6.0
8
+ License: GPLv2 or later
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
11
+ Tired of all the bloated options frameworks? You can use the WordPress Customizer instead, and extend it using Kirki!
12
+
13
+ == Description ==
14
+
15
+ Kirki allows developers to add advanced controls to their customizer as well as customize the way the customizer looks and feels.
16
+
17
+ The following controls are included:
18
+
19
+ * Buttonset
20
+ * Checkbox
21
+ * Color
22
+ * Image
23
+ * Background
24
+ * Image Radio
25
+ * Multicheck
26
+ * Radio
27
+ * Select
28
+ * Slider
29
+ * Text
30
+ * Textarea
31
+ * Upload
32
+ * Switch
33
+ * Toggle
34
+ * Sortable
35
+
36
+ For documentation and examples on how to use these controls, please visit [kirki.org](http://kirki.org/#fields).
37
+
38
+ In addition you can also automatically generate the CSS for a lot of controls and have it added to the head of your document without writing any custom functions and code for that. [Learn more about automatic output of CSS here](http://kirki.org/#output)
39
+
40
+ == Installation ==
41
+
42
+ Just install this plugin and activate it.
43
+ For configuration instructions please visit http://kirki.org/#configuration
44
+
45
+ == 0.6.0 ==
46
+ * 2012-02-25, 9 hours
47
+ * Fix: Tooltips now properly working
48
+ * New: Added checkbox switches
49
+ * New: Added checkbox toggles
50
+ * Fix: Generated CSS is not properly combined & minified
51
+ * Fix: Re-structuring files hierarchy
52
+ * Fix: Simplify the way controls are loaded
53
+ * New: Only load control classes when they are needed
54
+ * New: Introducing Kirki_Customize_Control class
55
+ * Fix: CSS tweaks
56
+ * New: Sortable control (creating one is identical to a select control, but with `'type' => 'sortable'`)
57
+ * Fix: Double output CSS (props @agusmu)
58
+ * New: Google fonts now parsed from a json file.
59
+
60
+ == 0.5.1 ==
61
+ * Fix: Transport defaults to refresh instead of postMessage
62
+ * Fix: undefined index notice.
63
+
64
+ == 0.5 ==
65
+ * New: Automatic output of styles for generic controls.
66
+ * New: Automatic output of styles + scripts for fonts (including googlefonts )
67
+ * New: The 'output' argument on background controls is now an array for consistency with other controls. Older syntax is still compatible though. :)
68
+ * New: Add the ability to auto-generate styles for colors.
69
+ * Fix: Add a blank stylesheet if we need one and no stylesheet_id has been defined in the config options.
70
+ * Fix: CSS-only tooltips. Fixes issue with tooltips now showing up on WP >= 4.1
71
+ * Fix: Code cleanups
72
+ * New: Added support for WordPress's transport arguments
73
+ * Fix: All controls now have a sanitization callback. Users can override the default sanitizations by adding their own 'sanitize_callback' argument.
74
+ * Fix: OOP rewrite
75
+ * Fix: Strip protocol from Google API link
76
+ * Fix: Loading order for some files
77
+ * Fix: Removed deprecated less_var argument
78
+
79
+ = 0.4 =
80
+ * Fix: bugfix for selector
81
+ * New: Change the Kirki theme based on which admin theme is selected.
82
+ * Fix: Tranlsation domain issue
83
+ * New: Added a "group_title" control
84
+ * Fix: Updated the required script
85
+ * Fix: Updating CSS
86
+ * Other minor improvements and bugfixes
87
+
88
+ = 0.3 =
89
+ * new: added background field
90
+ * new: added 'output' argument to directly output the CSS
91
+
92
+ = 0.2 =
93
+ * Initial version
assets/css/customizer.css CHANGED
@@ -23,11 +23,12 @@ li.customize-control.customize-control-slider .ss-slider {
23
-webkit-box-shadow: none;
24
box-shadow: none;
25
float: right;
26
}
27
28
.customize-control-radio label {
29
- line-height: 28px;
30
- padding: 5px 10px;
31
}
32
33
.image.ui-buttonset label.ui-button {
@@ -105,12 +106,177 @@ li.customize-control.customize-control-group_title {
105
a.hint--left:after {
106
height: auto;
107
margin-bottom: -14px;
108
- width: 250px;
109
- max-width: 250px;
110
display: block;
111
white-space: normal;
112
text-align: right;
113
position: relative;
114
top: -22px;
115
- left: -270px;
116
}
23
-webkit-box-shadow: none;
24
box-shadow: none;
25
float: right;
26
+ overflow: visible !important;
27
}
28
29
.customize-control-radio label {
30
+ line-height: 22px;
31
+ padding: 5px 8px;
32
}
33
34
.image.ui-buttonset label.ui-button {
106
a.hint--left:after {
107
height: auto;
108
margin-bottom: -14px;
109
+ width: 170px;
110
+ max-width: 170px;
111
display: block;
112
white-space: normal;
113
text-align: right;
114
position: relative;
115
top: -22px;
116
+ left: -190px;
117
+ }
118
+
119
+ ul.ui-sortable li.kirki-sortable-item {
120
+ padding: 3px;
121
+ }
122
+
123
+ ul.ui-sortable li.kirki-sortable-item .dashicons-menu {
124
+ float: right;
125
+ }
126
+
127
+ ul.ui-sortable li.kirki-sortable-item .visibility {
128
+ padding-right: 10px;
129
+ }
130
+
131
+ ul.ui-sortable li.kirki-sortable-item.invisible,
132
+ ul.ui-sortable li.kirki-sortable-item.invisible .visibility {
133
+ color: #ccc;
134
+ border: 1px solid rgba(0,0,0,0);
135
+ }
136
+
137
+ .wp-full-overlay-sidebar {
138
+ background: #fff;
139
+ }
140
+
141
+ .wp-core-ui.wp-customizer .button,
142
+ .press-this.wp-core-ui .button,
143
+ .press-this input#publish,
144
+ .press-this input#save-post,
145
+ .press-this a.preview {
146
+ border: none;
147
+ cursor: pointer;
148
+ overflow: hidden;
149
+ -webkit-user-select: none;
150
+ -moz-user-select: none;
151
+ -ms-user-select: none;
152
+ user-select: none;
153
+ -webkit-tap-highlight-color: transparent;
154
+ z-index: 1;
155
+ will-change: opacity, transform;
156
+ -webkit-transition: all 0.3s ease-out;
157
+ -moz-transition: all 0.3s ease-out;
158
+ -o-transition: all 0.3s ease-out;
159
+ -ms-transition: all 0.3s ease-out;
160
+ transition: all 0.3s ease-out;
161
+ text-decoration: none;
162
+ color: #FFF;
163
+ background-color: #26a69a;
164
+ text-align: center;
165
+ letter-spacing: 0.5px;
166
+ -webkit-transition: 0.2s ease-out;
167
+ -moz-transition: 0.2s ease-out;
168
+ -o-transition: 0.2s ease-out;
169
+ -ms-transition: 0.2s ease-out;
170
+ transition: 0.2s ease-out;
171
+ cursor: pointer;
172
+ display: inline-block;
173
+ -webkit-border-radius: 2px;
174
+ -moz-border-radius: 2px;
175
+ border-radius: 2px;
176
+ background-clip: padding-box;
177
+ border: none;
178
+ outline: 0;
179
+ -webkit-tap-highlight-color: transparent;
180
+
181
+ }
182
+
183
+ .wp-core-ui.wp-customizer .button:hover,
184
+ .press-this.wp-core-ui .button:hover,
185
+ .press-this input#publish:hover,
186
+ .press-this input#save-post:hover,
187
+ .press-this a.preview:hover {
188
+ background-color: #2bbbad;
189
+ webkit-box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
190
+ -moz-box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
191
+ box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
192
+ }
193
+
194
+ .ui-button {
195
+ border-color: #f2f2f2;
196
+ background-color: #transparent !important;
197
+ }
198
+
199
+ .customize-control input[type="text"] {
200
+ border: none;
201
+ border-radius: 0;
202
+ border-bottom: 1px solid #ccc;
203
+ -webkit-box-shadow: none;
204
+ box-shadow: none;
205
+ }
206
+
207
+ .customize-control input[type="text"]:focus {
208
+ border-color: #333;
209
+ }
210
+
211
+ /*------------------------------------------------*/
212
+ /* Switch SECTION START*/
213
+ /*------------------------------------------------*/
214
+ .Switch {
215
+ position: relative;
216
+ display: inline-block;
217
+ font-size: 1.6em;
218
+ font-weight: bold;
219
+ color: #ccc;
220
+ text-shadow: 0px 1px 1px rgba(255,255,255,0.8);
221
+ height: 18px;
222
+ padding: 6px 6px 5px 6px;
223
+ border: 1px solid #ccc;
224
+ border: 1px solid rgba(0,0,0,0.2);
225
+ border-radius: 4px;
226
+ background: #ececec;
227
+ box-shadow: 0px 0px 4px rgba(0,0,0,0.1), inset 0px 1px 3px 0px rgba(0,0,0,0.1);
228
+ cursor: pointer;
229
+ font-size: 16px;
230
+ float: right;
231
+ }
232
+ body.IE7 .Switch { width: 78px; }
233
+ .Switch span {
234
+ display: inline-block;
235
+ width: 35px;
236
+ position: relative;
237
+ top: -5px;
238
+ }
239
+ .Switch span.On { color: #33d2da; }
240
+ .Switch .Toggle {
241
+ position: absolute;
242
+ top: 1px;
243
+ width: 37px;
244
+ height: 25px;
245
+ border: 1px solid #ccc;
246
+ border: 1px solid rgba(0,0,0,0.3);
247
+ border-radius: 4px;
248
+ background: #fff;
249
+ background: -moz-linear-gradient(top, #ececec 0%, #ffffff 100%);
250
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ececec), color-stop(100%, #ffffff));
251
+ background: -webkit-linear-gradient(top, #ececec 0%, #ffffff 100%);
252
+ background: -o-linear-gradient(top, #ececec 0%, #ffffff 100%);
253
+ background: -ms-linear-gradient(top, #ececec 0%, #ffffff 100%);
254
+ background: linear-gradient(top, #ececec 0%, #ffffff 100%);
255
+ box-shadow: inset 0px 1px 0px 0px rgba(255,255,255,0.5);
256
+ z-index: 999;
257
+ -webkit-transition: all 0.15s ease-in-out;
258
+ -moz-transition: all 0.15s ease-in-out;
259
+ -o-transition: all 0.15s ease-in-out;
260
+ -ms-transition: all 0.15s ease-in-out;
261
+ }
262
+ .Switch.On .Toggle { left: 54%; }
263
+ .Switch.Off .Toggle { left: 2%; }
264
+ /* Round Switch */
265
+ .Switch.Round {
266
+ padding: 0px 20px;
267
+ border-radius: 40px;
268
+ margin-top: 5px;
269
+ }
270
+ body.IE7 .Switch.Round { width: 1px; }
271
+ .Switch.Round .Toggle {
272
+ border-radius: 40px;
273
+ width: 14px;
274
+ height: 14px;
275
+ }
276
+ .Switch.Round.Off .Toggle {
277
+ left: 3%;
278
+ }
279
+ .Switch.Round.On .Toggle { left: 58%; }
280
+ .switch-info {
281
+ /*float: left;*/
282
}
assets/css/jquery-ui-1.10.0.custom.css CHANGED
@@ -281,9 +281,9 @@
281
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
282
border-width: 1px;
283
border-style: solid;
284
- -webkit-border-radius: 4px;
285
- -moz-border-radius: 4px;
286
- border-radius: 4px;
287
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
288
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
289
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
@@ -299,9 +299,9 @@
299
color: #ffffff;
300
border-width: 1px;
301
border-style: solid;
302
- -webkit-border-radius: 4px;
303
- -moz-border-radius: 4px;
304
- border-radius: 4px;
305
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
306
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
307
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
@@ -527,37 +527,37 @@
527
.ui-corner-top,
528
.ui-corner-left,
529
.ui-corner-tl {
530
- -moz-border-radius-topleft: 4px;
531
- -webkit-border-top-left-radius: 4px;
532
- -khtml-border-top-left-radius: 4px;
533
- border-top-left-radius: 4px;
534
}
535
.ui-corner-all,
536
.ui-corner-top,
537
.ui-corner-right,
538
.ui-corner-tr {
539
- -moz-border-radius-topright: 4px;
540
- -webkit-border-top-right-radius: 4px;
541
- -khtml-border-top-right-radius: 4px;
542
- border-top-right-radius: 4px;
543
}
544
.ui-corner-all,
545
.ui-corner-bottom,
546
.ui-corner-left,
547
.ui-corner-bl {
548
- -moz-border-radius-bottomleft: 4px;
549
- -webkit-border-bottom-left-radius: 4px;
550
- -khtml-border-bottom-left-radius: 4px;
551
- border-bottom-left-radius: 4px;
552
}
553
.ui-corner-all,
554
.ui-corner-bottom,
555
.ui-corner-right,
556
.ui-corner-br {
557
- -moz-border-radius-bottomright: 4px;
558
- -webkit-border-bottom-right-radius: 4px;
559
- -khtml-border-bottom-right-radius: 4px;
560
- border-bottom-right-radius: 4px;
561
}
562
563
@@ -572,12 +572,12 @@
572
.ui-widget-shadow {
573
margin: -8px 0 0 -8px;
574
padding: 8px;
575
- background: #aaaaaa url(../images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
576
opacity: .30;filter:Alpha(Opacity=30);
577
- -moz-border-radius: 8px;
578
- -khtml-border-radius: 8px;
579
- -webkit-border-radius: 8px;
580
- border-radius: 8px;
581
}
582
583
/*
@@ -668,15 +668,14 @@
668
669
cursor: pointer;
670
display: inline-block;
671
- background-color: #f2f2f2;
672
background-repeat: no-repeat;
673
padding: 5px 14px 6px;
674
margin: 0;
675
color: #333;
676
font-size: 13px;
677
line-height: normal;
678
- border: 1px solid #ccc;
679
- border-bottom-color: #bbb;
680
681
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
682
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
@@ -743,7 +742,6 @@ button.ui-button-icons-only { width: 3.7em; }
743
color: #ffffff;
744
background-color: #34495e;
745
background-repeat: repeat-x;
746
- border: 1px solid #3D7A99;
747
}
748
.ui-buttonset .ui-button { margin-left: 0; margin-right: -.4em; }
749
@@ -851,7 +849,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
851
background-clip: padding-box;
852
background-color: #FFFFFF;
853
border: 1px solid rgba(0, 0, 0, 0.3);
854
- border-radius: 6px 6px 6px 6px;
855
box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
856
/*left: 50%;
857
margin-left: -280px;*/
@@ -933,9 +931,9 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
933
background-color: #f5f5f5;
934
padding: 5px 15px 5px;
935
border-top: 1px solid #ddd;
936
- -webkit-border-radius: 0 0 6px 6px;
937
- -moz-border-radius: 0 0 6px 6px;
938
- border-radius: 0 0 6px 6px;
939
-webkit-box-shadow: inset 0 1px 0 #ffffff;
940
-moz-box-shadow: inset 0 1px 0 #ffffff;
941
box-shadow: inset 0 1px 0 #ffffff;
@@ -1019,9 +1017,9 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
1019
margin-right: 2px;
1020
line-height: 34px;
1021
border: 1px solid transparent;
1022
- -webkit-border-radius: 4px 4px 0 0;
1023
- -moz-border-radius: 4px 4px 0 0;
1024
- border-radius: 4px 4px 0 0;
1025
1026
1027
}
@@ -1193,19 +1191,19 @@ body .ui-tooltip { border-width:2px; }
1193
margin-bottom:0px;
1194
font-size:normal;
1195
color: #ffffff;
1196
- -webkit-border-radius: 4px;
1197
- -moz-border-radius: 4px;
1198
- border-radius: 4px;
1199
}
1200
1201
.ui-datepicker td .ui-state-hover {
1202
color: #ffffff;
1203
background: #0064cd;
1204
background-color: #0064cd;
1205
- -webkit-border-radius: 4px;
1206
- -moz-border-radius: 4px;
1207
- -khtml-border-radius: 4px;
1208
- border-radius: 4px;
1209
}
1210
1211
/*
@@ -1263,9 +1261,9 @@ textarea,
1263
line-height: 18px;
1264
color: #808080;
1265
border: 1px solid #ccc;
1266
- -webkit-border-radius: 3px;
1267
- -moz-border-radius: 3px;
1268
- border-radius: 3px;
1269
}
1270
1271
@@ -1286,9 +1284,9 @@ textarea,
1286
background-image: linear-gradient(top, #ffffff, #f5f5f5);
1287
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);
1288
border: 1px solid #ddd;
1289
- -webkit-border-radius: 3px;
1290
- -moz-border-radius: 3px;
1291
- border-radius: 3px;
1292
-webkit-box-shadow: inset 0 1px 0 #ffffff;
1293
-moz-box-shadow: inset 0 1px 0 #ffffff;
1294
box-shadow: inset 0 1px 0 #ffffff;
@@ -1307,9 +1305,9 @@ textarea,
1307
line-height: normal;
1308
border: 1px solid #ccc;
1309
border-bottom-color: #bbb;
1310
- -webkit-border-radius: 4px;
1311
- -moz-border-radius: 4px;
1312
- border-radius: 4px;
1313
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1314
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1315
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
@@ -1399,9 +1397,9 @@ div.wijmo-wijmenu .wijmo-wijmenu-item .wijmo-wijmenu-child{
1399
margin:0;
1400
padding: 6px 0;
1401
width:160px;
1402
- -webkit-border-radius: 0 0 6px 6px;
1403
- -moz-border-radius: 0 0 6px 6px;
1404
- border-radius: 0 0 6px 6px;
1405
-webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
1406
-moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
1407
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
@@ -1452,7 +1450,7 @@ div.wijmo-wijmenu .wijmo-wijmenu-child .wijmo-wijmenu-text
1452
-moz-transition: none 0s ease 0s;
1453
background-color: rgba(255, 255, 255, 0.3);
1454
border: 1px solid #111111;
1455
- border-radius: 4px 4px 4px 4px;
1456
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset, 0 1px 0 rgba(255, 255, 255, 0.25);
1457
color: rgba(255, 255, 255, 0.75);
1458
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
281
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
282
border-width: 1px;
283
border-style: solid;
284
+ -webkit-border-radius: 2px;
285
+ -moz-border-radius: 2px;
286
+ border-radius: 2px;
287
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
288
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
289
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
299
color: #ffffff;
300
border-width: 1px;
301
border-style: solid;
302
+ -webkit-border-radius: 2px;
303
+ -moz-border-radius: 2px;
304
+ border-radius: 2px;
305
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
306
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
307
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
527
.ui-corner-top,
528
.ui-corner-left,
529
.ui-corner-tl {
530
+ -moz-border-radius-topleft: 2px;
531
+ -webkit-border-top-left-radius: 2px;
532
+ -khtml-border-top-left-radius: 2px;
533
+ border-top-left-radius: 2px;
534
}
535
.ui-corner-all,
536
.ui-corner-top,
537
.ui-corner-right,
538
.ui-corner-tr {
539
+ -moz-border-radius-topright: 2px;
540
+ -webkit-border-top-right-radius: 2px;
541
+ -khtml-border-top-right-radius: 2px;
542
+ border-top-right-radius: 2px;
543
}
544
.ui-corner-all,
545
.ui-corner-bottom,
546
.ui-corner-left,
547
.ui-corner-bl {
548
+ -moz-border-radius-bottomleft: 2px;
549
+ -webkit-border-bottom-left-radius: 2px;
550
+ -khtml-border-bottom-left-radius: 2px;
551
+ border-bottom-left-radius: 2px;
552
}
553
.ui-corner-all,
554
.ui-corner-bottom,
555
.ui-corner-right,
556
.ui-corner-br {
557
+ -moz-border-radius-bottomright: 2px;
558
+ -webkit-border-bottom-right-radius: 2px;
559
+ -khtml-border-bottom-right-radius: 2px;
560
+ border-bottom-right-radius: 2px;
561
}
562
563
572
.ui-widget-shadow {
573
margin: -8px 0 0 -8px;
574
padding: 8px;
575
+ background: #aaaaaa;
576
opacity: .30;filter:Alpha(Opacity=30);
577
+ -moz-border-radius: 2px;
578
+ -khtml-border-radius: 2px;
579
+ -webkit-border-radius: 2px;
580
+ border-radius: 2px;
581
}
582
583
/*
668
669
cursor: pointer;
670
display: inline-block;
671
+ background-color: #f7f7f7;
672
background-repeat: no-repeat;
673
padding: 5px 14px 6px;
674
margin: 0;
675
color: #333;
676
font-size: 13px;
677
line-height: normal;
678
+ border: 1px solid #efefef;
679
680
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
681
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
742
color: #ffffff;
743
background-color: #34495e;
744
background-repeat: repeat-x;
745
}
746
.ui-buttonset .ui-button { margin-left: 0; margin-right: -.4em; }
747
849
background-clip: padding-box;
850
background-color: #FFFFFF;
851
border: 1px solid rgba(0, 0, 0, 0.3);
852
+ border-radius: 2px;
853
box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
854
/*left: 50%;
855
margin-left: -280px;*/
931
background-color: #f5f5f5;
932
padding: 5px 15px 5px;
933
border-top: 1px solid #ddd;
934
+ -webkit-border-radius: 0 0 2px 2px;
935
+ -moz-border-radius: 0 0 2px 2px;
936
+ border-radius: 0 0 2px 2px;
937
-webkit-box-shadow: inset 0 1px 0 #ffffff;
938
-moz-box-shadow: inset 0 1px 0 #ffffff;
939
box-shadow: inset 0 1px 0 #ffffff;
1017
margin-right: 2px;
1018
line-height: 34px;
1019
border: 1px solid transparent;
1020
+ -webkit-border-radius: 2px 2px 0 0;
1021
+ -moz-border-radius: 2px 2px 0 0;
1022
+ border-radius: 2px 2px 0 0;
1023
1024
1025
}
1191
margin-bottom:0px;
1192
font-size:normal;
1193
color: #ffffff;
1194
+ -webkit-border-radius: 2px;
1195
+ -moz-border-radius: 2px;
1196
+ border-radius: 2px;
1197
}
1198
1199
.ui-datepicker td .ui-state-hover {
1200
color: #ffffff;
1201
background: #0064cd;
1202
background-color: #0064cd;
1203
+ -webkit-border-radius: 2px;
1204
+ -moz-border-radius: 2px;
1205
+ -khtml-border-radius: 2px;
1206
+ border-radius: 2px;
1207
}
1208
1209
/*
1261
line-height: 18px;
1262
color: #808080;
1263
border: 1px solid #ccc;
1264
+ -webkit-border-radius: 2px;
1265
+ -moz-border-radius: 2px;
1266
+ border-radius: 2px;
1267
}
1268
1269
1284
background-image: linear-gradient(top, #ffffff, #f5f5f5);
1285
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);
1286
border: 1px solid #ddd;
1287
+ -webkit-border-radius: 2px;
1288
+ -moz-border-radius: 2px;
1289
+ border-radius: 2px;
1290
-webkit-box-shadow: inset 0 1px 0 #ffffff;
1291
-moz-box-shadow: inset 0 1px 0 #ffffff;
1292
box-shadow: inset 0 1px 0 #ffffff;
1305
line-height: normal;
1306
border: 1px solid #ccc;
1307
border-bottom-color: #bbb;
1308
+ -webkit-border-radius: 2px;
1309
+ -moz-border-radius: 2px;
1310
+ border-radius: 2px;
1311
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1312
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1313
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1397
margin:0;
1398
padding: 6px 0;
1399
width:160px;
1400
+ -webkit-border-radius: 0 0 2px 2px;
1401
+ -moz-border-radius: 0 0 2px 2px;
1402
+ border-radius: 0 0 2px 2px;
1403
-webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
1404
-moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
1405
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
1450
-moz-transition: none 0s ease 0s;
1451
background-color: rgba(255, 255, 255, 0.3);
1452
border: 1px solid #111111;
1453
+ border-radius: 2px;
1454
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset, 0 1px 0 rgba(255, 255, 255, 0.25);
1455
color: rgba(255, 255, 255, 0.75);
1456
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
assets/js/customizer.js CHANGED
@@ -3,3 +3,60 @@ jQuery.noConflict();
3
jQuery(document).ready(function($){
4
$("a.tooltip").tooltip();
5
});
3
jQuery(document).ready(function($){
4
$("a.tooltip").tooltip();
5
});
6
+
7
+ jQuery(document).ready(function($) {
8
+ "use strict";
9
+ // initialize
10
+ $('.kirki-sortable > ul ~ input').each(function() {
11
+ var value = $(this).val();
12
+ try {
13
+ value = unserialize( value );
14
+ } catch (err) {
15
+ return;
16
+ }
17
+ var ul = $(this).siblings('ul:eq(0)');
18
+ ul.find('li').addClass('invisible').find('i.visibility').toggleClass('dashicons-visibility-faint');
19
+ $.each(value, function(i, val) {
20
+ ul.find('li[data-value=' + val + ']').removeClass('invisible').find('i.visibility').toggleClass('dashicons-visibility-faint');
21
+ });
22
+ });
23
+ $('.kirki-sortable > ul').each(function() {
24
+ $(this).sortable()
25
+ .disableSelection()
26
+ .on( "sortstop", function( event, ui ) {
27
+ kirkiUpdateSortable(ui.item.parent());
28
+ })
29
+ .find('li').each(function() {
30
+ $(this).find('i.visibility').click(function() {
31
+ $(this).toggleClass('dashicons-visibility-faint').parents('li:eq(0)').toggleClass('invisible');
32
+ });
33
+ })
34
+ .click(function() {
35
+ kirkiUpdateSortable( $(this).parents('ul:eq(0)') );
36
+ })
37
+ });
38
+
39
+
40
+ // Switch Click
41
+ $('.Switch').click(function() {
42
+ if ($(this).hasClass('On')){
43
+ $(this).parent().find('input:checkbox').attr('checked', true);
44
+ $(this).removeClass('On').addClass('Off');
45
+ } else {
46
+ $(this).parent().find('input:checkbox').attr('checked', false);
47
+ $(this).removeClass('Off').addClass('On');
48
+ }
49
+ });
50
+
51
+ });
52
+ function kirkiUpdateSortable(ul) {
53
+ "use strict";
54
+ var $ = jQuery;
55
+ var values = [];
56
+ ul.find('li').each(function() {
57
+ if ( ! $(this).is('.invisible') ) {
58
+ values.push( $(this).attr('data-value') );
59
+ }
60
+ });
61
+ ul.siblings('input').eq(0).val( serialize( values ) ).trigger('change');
62
+ }
assets/js/serialize.js ADDED
@@ -0,0 +1,302 @@
1
+ function serialize(mixed_value) {
2
+ // discuss at: http://phpjs.org/functions/serialize/
3
+ // original by: Arpad Ray (mailto:arpad@php.net)
4
+ // improved by: Dino
5
+ // improved by: Le Torbi (http://www.letorbi.de/)
6
+ // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net/)
7
+ // bugfixed by: Andrej Pavlovic
8
+ // bugfixed by: Garagoth
9
+ // bugfixed by: Russell Walker (http://www.nbill.co.uk/)
10
+ // bugfixed by: Jamie Beck (http://www.terabit.ca/)
11
+ // bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net/)
12
+ // bugfixed by: Ben (http://benblume.co.uk/)
13
+ // input by: DtTvB (http://dt.in.th/2008-09-16.string-length-in-bytes.html)
14
+ // input by: Martin (http://www.erlenwiese.de/)
15
+ // note: We feel the main purpose of this function should be to ease the transport of data between php & js
16
+ // note: Aiming for PHP-compatibility, we have to translate objects to arrays
17
+ // example 1: serialize(['Kevin', 'van', 'Zonneveld']);
18
+ // returns 1: 'a:3:{i:0;s:5:"Kevin";i:1;s:3:"van";i:2;s:9:"Zonneveld";}'
19
+ // example 2: serialize({firstName: 'Kevin', midName: 'van', surName: 'Zonneveld'});
20
+ // returns 2: 'a:3:{s:9:"firstName";s:5:"Kevin";s:7:"midName";s:3:"van";s:7:"surName";s:9:"Zonneveld";}'
21
+
22
+ var val, key, okey,
23
+ ktype = '',
24
+ vals = '',
25
+ count = 0,
26
+ _utf8Size = function(str) {
27
+ var size = 0,
28
+ i = 0,
29
+ l = str.length,
30
+ code = '';
31
+ for (i = 0; i < l; i++) {
32
+ code = str.charCodeAt(i);
33
+ if (code < 0x0080) {
34
+ size += 1;
35
+ } else if (code < 0x0800) {
36
+ size += 2;
37
+ } else {
38
+ size += 3;
39
+ }
40
+ }
41
+ return size;
42
+ };
43
+ _getType = function(inp) {
44
+ var match, key, cons, types, type = typeof inp;
45
+
46
+ if (type === 'object' && !inp) {
47
+ return 'null';
48
+ }
49
+ if (type === 'object') {
50
+ if (!inp.constructor) {
51
+ return 'object';
52
+ }
53
+ cons = inp.constructor.toString();
54
+ match = cons.match(/(\w+)\(/);
55
+ if (match) {
56
+ cons = match[1].toLowerCase();
57
+ }
58
+ types = ['boolean', 'number', 'string', 'array'];
59
+ for (key in types) {
60
+ if (cons == types[key]) {
61
+ type = types[key];
62
+ break;
63
+ }
64
+ }
65
+ }
66
+ return type;
67
+ };
68
+ type = _getType(mixed_value);
69
+
70
+ switch (type) {
71
+ case 'function':
72
+ val = '';
73
+ break;
74
+ case 'boolean':
75
+ val = 'b:' + (mixed_value ? '1' : '0');
76
+ break;
77
+ case 'number':
78
+ val = (Math.round(mixed_value) == mixed_value ? 'i' : 'd') + ':' + mixed_value;
79
+ break;
80
+ case 'string':
81
+ val = 's:' + _utf8Size(mixed_value) + ':"' + mixed_value + '"';
82
+ break;
83
+ case 'array':
84
+ case 'object':
85
+ val = 'a';
86
+ /*
87
+ if (type === 'object') {
88
+ var objname = mixed_value.constructor.toString().match(/(\w+)\(\)/);
89
+ if (objname == undefined) {
90
+ return;
91
+ }
92
+ objname[1] = this.serialize(objname[1]);
93
+ val = 'O' + objname[1].substring(1, objname[1].length - 1);
94
+ }
95
+ */
96
+
97
+ for (key in mixed_value) {
98
+ if (mixed_value.hasOwnProperty(key)) {
99
+ ktype = _getType(mixed_value[key]);
100
+ if (ktype === 'function') {
101
+ continue;
102
+ }
103
+
104
+
105
+ okey = (key.match(/^[0-9]+#x2F;) ? parseInt(key, 10) : key);
106
+ vals += this.serialize(okey) + this.serialize(mixed_value[key]);
107
+ count++;
108
+ }
109
+ }
110
+ val += ':' + count + ':{' + vals + '}';
111
+ break;
112
+ case 'undefined':
113
+ // Fall-through
114
+ default:
115
+ // if the JS object has a property which contains a null value, the string cannot be unserialized by PHP
116
+ val = 'N';
117
+ break;
118
+ }
119
+ if (type !== 'object' && type !== 'array') {
120
+ if ( type == 'string' && val.indexOf('}') != -1 ) {
121
+ } else {
122
+ val += ';';
123
+ }
124
+ }
125
+ return val;
126
+ }
127
+
128
+
129
+ function unserialize(data) {
130
+ // discuss at: http://phpjs.org/functions/unserialize/
131
+ // original by: Arpad Ray (mailto:arpad@php.net)
132
+ // improved by: Pedro Tainha (http://www.pedrotainha.com)
133
+ // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
134
+ // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
135
+ // improved by: Chris
136
+ // improved by: James
137
+ // improved by: Le Torbi
138
+ // improved by: Eli Skeggs
139
+ // bugfixed by: dptr1988
140
+ // bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
141
+ // bugfixed by: Brett Zamir (http://brett-zamir.me)
142
+ // revised by: d3x
143
+ // input by: Brett Zamir (http://brett-zamir.me)
144
+ // input by: Martin (http://www.erlenwiese.de/)
145
+ // input by: kilops
146
+ // input by: Jaroslaw Czarniak
147
+ // note: We feel the main purpose of this function should be to ease the transport of data between php & js
148
+ // note: Aiming for PHP-compatibility, we have to translate objects to arrays
149
+ // example 1: unserialize('a:3:{i:0;s:5:"Kevin";i:1;s:3:"van";i:2;s:9:"Zonneveld";}');
150
+ // returns 1: ['Kevin', 'van', 'Zonneveld']
151
+ // example 2: unserialize('a:3:{s:9:"firstName";s:5:"Kevin";s:7:"midName";s:3:"van";s:7:"surName";s:9:"Zonneveld";}');
152
+ // returns 2: {firstName: 'Kevin', midName: 'van', surName: 'Zonneveld'}
153
+
154
+ var that = this,
155
+ utf8Overhead = function(chr) {
156
+ // http://phpjs.org/functions/unserialize:571#comment_95906
157
+ var code = chr.charCodeAt(0);
158
+ if (code < 0x0080) {
159
+ return 0;
160
+ }
161
+ if (code < 0x0800) {
162
+ return 1;
163
+ }
164
+ return 2;
165
+ };
166
+ error = function(type, msg, filename, line) {
167
+ throw new that.window[type](msg, filename, line);
168
+ };
169
+ read_until = function(data, offset, stopchr) {
170
+ var i = 2,
171
+ buf = [],
172
+ chr = data.slice(offset, offset + 1);
173
+
174
+ while (chr != stopchr) {
175
+ if ((i + offset) > data.length) {
176
+ error('Error', 'Invalid');
177
+ }
178
+ buf.push(chr);
179
+ chr = data.slice(offset + (i - 1), offset + i);
180
+ i += 1;
181
+ }
182
+ return [buf.length, buf.join('')];
183
+ };
184
+ read_chrs = function(data, offset, length) {
185
+ var i, chr, buf;
186
+
187
+ buf = [];
188
+ for (i = 0; i < length; i++) {
189
+ chr = data.slice(offset + (i - 1), offset + i);
190
+ buf.push(chr);
191
+ length -= utf8Overhead(chr);
192
+ }
193
+ return [buf.length, buf.join('')];
194
+ };
195
+ _unserialize = function(data, offset) {
196
+ var dtype, dataoffset, keyandchrs, keys, contig,
197
+ length, array, readdata, readData, ccount,
198
+ stringlength, i, key, kprops, kchrs, vprops,
199
+ vchrs, value, chrs = 0,
200
+ typeconvert = function(x) {
201
+ return x;
202
+ };
203
+
204
+ if (!offset) {
205
+ offset = 0;
206
+ }
207
+ dtype = (data.slice(offset, offset + 1))
208
+ .toLowerCase();
209
+
210
+ dataoffset = offset + 2;
211
+
212
+ switch (dtype) {
213
+ case 'i':
214
+ typeconvert = function(x) {
215
+ return parseInt(x, 10);
216
+ };
217
+ readData = read_until(data, dataoffset, ';');
218
+ chrs = readData[0];
219
+ readdata = readData[1];
220
+ dataoffset += chrs + 1;
221
+ break;
222
+ case 'b':
223
+ typeconvert = function(x) {
224
+ return parseInt(x, 10) !== 0;
225
+ };
226
+ readData = read_until(data, dataoffset, ';');
227
+ chrs = readData[0];
228
+ readdata = readData[1];
229
+ dataoffset += chrs + 1;
230
+ break;
231
+ case 'd':
232
+ typeconvert = function(x) {
233
+ return parseFloat(x);
234
+ };
235
+ readData = read_until(data, dataoffset, ';');
236
+ chrs = readData[0];
237
+ readdata = readData[1];
238
+ dataoffset += chrs + 1;
239
+ break;
240
+ case 'n':
241
+ readdata = null;
242
+ break;
243
+ case 's':
244
+ ccount = read_until(data, dataoffset, ':');
245
+ chrs = ccount[0];
246
+ stringlength = ccount[1];
247
+ dataoffset += chrs + 2;
248
+
249
+ readData = read_chrs(data, dataoffset + 1, parseInt(stringlength, 10));
250
+ chrs = readData[0];
251
+ readdata = readData[1];
252
+ dataoffset += chrs + 2;
253
+ if (chrs != parseInt(stringlength, 10) && chrs != readdata.length) {
254
+ error('SyntaxError', 'String length mismatch');
255
+ }
256
+ break;
257
+ case 'a':
258
+ readdata = {};
259
+
260
+ keyandchrs = read_until(data, dataoffset, ':');
261
+ chrs = keyandchrs[0];
262
+ keys = keyandchrs[1];
263
+ dataoffset += chrs + 2;
264
+
265
+ length = parseInt(keys, 10);
266
+ contig = true;
267
+
268
+ for (i = 0; i < length; i++) {
269
+ kprops = _unserialize(data, dataoffset);
270
+ kchrs = kprops[1];
271
+ key = kprops[2];
272
+ dataoffset += kchrs;
273
+
274
+ vprops = _unserialize(data, dataoffset);
275
+ vchrs = vprops[1];
276
+ value = vprops[2];
277
+ dataoffset += vchrs;
278
+
279
+ if (key !== i)
280
+ contig = false;
281
+
282
+ readdata[key] = value;
283
+ }
284
+
285
+ if (contig) {
286
+ array = new Array(length);
287
+ for (i = 0; i < length; i++)
288
+ array[i] = readdata[i];
289
+ readdata = array;
290
+ }
291
+
292
+ dataoffset += 1;
293
+ break;
294
+ default:
295
+ error('SyntaxError', 'Unknown / Unhandled data type(s): ' + dtype);
296
+ break;
297
+ }
298
+ return [dtype, dataoffset - offset, typeconvert(readdata)];
299
+ };
300
+
301
+ return _unserialize((data + ''), 0)[2];
302
+ }
assets/json/webfonts.json ADDED
</
@@ -0,0 +1,12822 @@