Real Testimonials - Version 2.2

Version Description

  • Mar 25, 2020 =
  • Fix: Security issue. (This vulnerability was discovered by Vishnupriya Ilango of Fortinet's FortiGuard Labs.)
Download this release

Release Info

Developer shapedplugin
Plugin Icon 128x128 Real Testimonials
Version 2.2
Comparing to
See all releases

Code changes from version 2.1.7 to 2.2

Files changed (105) hide show
  1. admin/assets/css/admin.css +1064 -0
  2. admin/assets/css/admin.min.css +1 -1
  3. admin/{views/tp-metabox/assets → assets}/images/tpro-tiny-mce.png +0 -0
  4. admin/views/framework/assets/css/csf-rtl.css +517 -0
  5. admin/views/framework/assets/css/csf-rtl.min.css +1 -0
  6. admin/views/framework/assets/css/csf.css +4116 -0
  7. admin/views/framework/assets/css/csf.min.css +1 -0
  8. admin/views/{tp-metabox → framework}/assets/images/checkerboard.png +0 -0
  9. admin/views/framework/assets/images/wp-logo.svg +1 -0
  10. admin/views/framework/assets/images/wp-plugin-logo.svg +1 -0
  11. admin/views/{tp-metabox/assets/js/spftestimonial-plugins.js → framework/assets/js/csf-plugins.js} +40 -40
  12. admin/views/framework/assets/js/csf-plugins.min.js +3 -0
  13. admin/views/framework/assets/js/csf.js +3329 -0
  14. admin/views/framework/assets/js/csf.min.js +1 -0
  15. admin/views/framework/assets/scss/csf-rtl.scss +646 -0
  16. admin/views/framework/assets/scss/csf.scss +94 -0
  17. admin/views/framework/assets/scss/vendor/_base.scss +446 -0
  18. admin/views/framework/assets/scss/vendor/_chosen.scss +405 -0
  19. admin/views/framework/assets/scss/vendor/_customizer.scss +185 -0
  20. admin/views/framework/assets/scss/vendor/_fields.scss +2193 -0
  21. admin/views/framework/assets/scss/vendor/_helper.scss +183 -0
  22. admin/views/framework/assets/scss/vendor/_mixins.scss +3 -0
  23. admin/views/framework/assets/scss/vendor/_modal.scss +339 -0
  24. admin/views/framework/assets/scss/vendor/_profile.scss +66 -0
  25. admin/views/framework/assets/scss/vendor/_responsive.scss +141 -0
  26. admin/views/framework/assets/scss/vendor/_taxonomy.scss +112 -0
  27. admin/views/framework/assets/scss/vendor/_themes.scss +204 -0
  28. admin/views/framework/assets/scss/vendor/_welcome.scss +346 -0
  29. admin/views/framework/assets/scss/vendor/_widget.scss +48 -0
  30. admin/views/framework/classes/abstract.class.php +118 -0
  31. admin/views/framework/classes/comment-metabox.class.php +337 -0
  32. admin/views/framework/classes/customize-options.class.php +279 -0
  33. admin/views/framework/classes/fields.class.php +379 -0
  34. admin/views/{tp-metabox → framework}/classes/metabox.class.php +49 -49
  35. admin/views/{tp-metabox → framework}/classes/options.class.php +84 -79
  36. admin/views/framework/classes/profile-options.class.php +227 -0
  37. admin/views/{tp-metabox → framework}/classes/setup.class.php +251 -85
  38. admin/views/framework/classes/shortcoder.class.php +279 -0
  39. admin/views/framework/classes/taxonomy-options.class.php +244 -0
  40. admin/views/framework/classes/widgets.class.php +129 -0
  41. admin/views/framework/fields/accordion/accordion.php +64 -0
  42. admin/views/framework/fields/background/background.php +332 -0
  43. admin/views/framework/fields/backup/backup.php +42 -0
  44. admin/views/framework/fields/border/border.php +178 -0
  45. admin/views/framework/fields/button_set/button_set.php +57 -0
  46. admin/views/framework/fields/checkbox/checkbox.php +82 -0
  47. admin/views/framework/fields/code_editor/code_editor.php +57 -0
  48. admin/views/framework/fields/color/color.php +52 -0
  49. admin/views/framework/fields/color_group/color_group.php +44 -0
  50. admin/views/framework/fields/content/content.php +22 -0
  51. admin/views/framework/fields/date/date.php +64 -0
  52. admin/views/framework/fields/dimensions/dimensions.php +101 -0
  53. admin/views/framework/fields/fieldset/fieldset.php +41 -0
  54. admin/views/framework/fields/gallery/gallery.php +53 -0
  55. admin/views/framework/fields/group/group.php +145 -0
  56. admin/views/framework/fields/heading/heading.php +24 -0
  57. admin/views/framework/fields/icon/default-icons.php +13 -0
  58. admin/views/framework/fields/icon/icon.php +41 -0
  59. admin/views/framework/fields/image_select/image_select.php +76 -0
  60. admin/views/{tp-metabox → framework}/fields/index.php +0 -0
  61. admin/views/framework/fields/link_color/link_color.php +91 -0
  62. admin/views/framework/fields/map/map.php +99 -0
  63. admin/views/framework/fields/media/media.php +86 -0
  64. admin/views/framework/fields/notice/notice.php +26 -0
  65. admin/views/framework/fields/number/number.php +61 -0
  66. admin/views/framework/fields/palette/palette.php +60 -0
  67. admin/views/framework/fields/radio/radio.php +76 -0
  68. admin/views/{tp-metabox → framework}/fields/rating/rating.php +2 -2
  69. admin/views/framework/fields/repeater/repeater.php +116 -0
  70. admin/views/framework/fields/select/select.php +131 -0
  71. admin/views/{tp-metabox → framework}/fields/select_f/select_f.php +2 -2
  72. admin/views/framework/fields/slider/slider.php +78 -0
  73. admin/views/framework/fields/sortable/sortable.php +81 -0
  74. admin/views/framework/fields/sorter/sorter.php +75 -0
  75. admin/views/framework/fields/spacing/spacing.php +150 -0
  76. admin/views/framework/fields/spinner/spinner.php +68 -0
  77. admin/views/{tp-metabox → framework}/fields/subheading/subheading.php +2 -2
  78. admin/views/framework/fields/submessage/submessage.php +26 -0
  79. admin/views/framework/fields/switcher/switcher.php +42 -0
  80. admin/views/framework/fields/tabbed/tabbed.php +64 -0
  81. admin/views/framework/fields/text/text.php +30 -0
  82. admin/views/{tp-metabox → framework}/fields/text_f/text_f.php +2 -2
  83. admin/views/framework/fields/textarea/textarea.php +49 -0
  84. admin/views/framework/fields/typography/google-fonts.php +981 -0
  85. admin/views/{tp-metabox → framework}/fields/typography/typography.php +106 -106
  86. admin/views/{tp-metabox → framework}/fields/upgrade/upgrade.php +2 -2
  87. admin/views/framework/fields/upload/upload.php +41 -0
  88. admin/views/{tp-metabox → framework}/fields/wp_editor/wp_editor.php +10 -10
  89. admin/views/framework/framework.php +22 -0
  90. admin/views/framework/functions/actions.php +202 -0
  91. admin/views/framework/functions/customize.php +116 -0
  92. admin/views/{tp-metabox → framework}/functions/deprecated.php +0 -0
  93. admin/views/framework/functions/helpers.php +111 -0
  94. admin/views/framework/functions/sanitize.php +29 -0
  95. admin/views/framework/functions/validate.php +152 -0
  96. admin/views/{tp-metabox → framework}/index.php +0 -0
  97. admin/views/framework/languages/csf.pot +669 -0
  98. admin/views/framework/languages/es_ES.mo +0 -0
  99. admin/views/framework/languages/es_ES.po +277 -0
  100. admin/views/testimonial-metaboxs.php +27 -10
  101. admin/views/testimonial-settings.php +14 -3
  102. admin/views/tp-metabox/assets/css/spftestimonial-rtl.css +0 -381
  103. admin/views/tp-metabox/assets/css/spftestimonial-rtl.min.css +0 -1
  104. admin/views/tp-metabox/assets/css/spftestimonial.css +0 -3044
  105. admin/views/tp-metabox/assets/css/spftestimonial.min.css +0 -1
admin/assets/css/admin.css CHANGED
@@ -1,3 +1,1067 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  /* Help Page */
2
  .sp-tfree-text-center{
3
  text-align: center;
1
+ .text-center{
2
+ text-align: center;
3
+ }
4
+
5
+ /**
6
+ * 01. 01. Header
7
+ */
8
+ .spt-main-class .csf-header-inner h1 {
9
+ color: #444444;
10
+ font-size: 22px;
11
+ font-weight: 600;
12
+ }
13
+
14
+ /**
15
+ * 01. 02. Sticky
16
+ */
17
+ .spt-main-class .csf-sticky .csf-header-inner {
18
+ z-index: 20;
19
+ }
20
+
21
+ /**
22
+ * 01. 04. Navigation
23
+ */
24
+
25
+ .spt-main-class .csf-metabox .csf-nav {
26
+ position: inherit;
27
+ float: none;
28
+ width: 100%;
29
+ background: #f1f1f1;
30
+ }
31
+ .spt-main-class .csf-metabox .csf-nav ul li {
32
+ display: inline-block;
33
+ }
34
+ .spt-main-class .csf-nav ul li a {
35
+ text-transform: uppercase;
36
+ font-weight: 600;
37
+ }
38
+
39
+ /**
40
+ * 01. 06. Content
41
+ */
42
+ .spt-main-class .csf-metabox .csf-content {
43
+ margin-left: 0;
44
+ }
45
+
46
+ /**
47
+ * 01. 12. Metabox
48
+ */
49
+ .spt-main-class .csf-metabox {
50
+ margin: -6px -12px -12px -12px;
51
+ }
52
+
53
+ /**
54
+ * 02. Themes
55
+ */
56
+ /**
57
+ * 02. 01. Theme Dark
58
+ */
59
+ .spt-main-class .csf-metabox .csf-nav ul li a {
60
+ background-color: #52b3d9;
61
+ font-size: 14px;
62
+ padding: 15px 15px;
63
+ line-height: 1.4;
64
+ color: #ffffff;
65
+ border-right: 1px solid #E2E2E1;
66
+ font-weight: 600;
67
+ border-bottom: 0;
68
+ }
69
+ #sp_tpro_shortcode_options_new .csf-metabox .csf-nav ul li a {
70
+ font-size: 13px;
71
+ text-transform: uppercase;
72
+ padding: 16px 15px;
73
+ }
74
+ .spt-main-class .csf-nav ul li .csf-section-active:after {
75
+ display: none;
76
+ }
77
+ .spt-main-class .csf-metabox .csf-nav ul li .csf-section-active {
78
+ color: #444;
79
+ background-color: #fff;
80
+ box-shadow: 0 3px 0 0 #52b3d9 inset;
81
+ }
82
+ .spt-main-class .csf-metabox .csf-nav ul li .csf-section-active .fa {
83
+ color: #52b3d9;
84
+ }
85
+ .spt-main-class .csf-metabox .csf-nav-background {
86
+ display: none;
87
+ }
88
+
89
+ /**
90
+ * 02. 02. Theme Light
91
+ */
92
+ .spt-main-class.csf-theme-light .csf-container {
93
+ border: 1px solid #ccd0d4;
94
+ }
95
+ .spt-main-class.csf-theme-light .csf-header-inner {
96
+ border-bottom: 1px solid #ccd0d4;
97
+ }
98
+ .spt-main-class.csf-theme-light .csf-nav ul li a {
99
+ color: #464646;
100
+ background-color: #f5f5f5;
101
+ border-top: 0;
102
+ border-right: 0;
103
+ border-bottom: 1px solid #ccd0d4 !important;
104
+ margin-bottom: 0;
105
+ padding: 15px 15px;
106
+ }
107
+ .spt-main-class.csf-theme-light .csf-nav ul li .csf-section-active {
108
+ box-shadow: 3px 0 0 0 #52b3d9 inset;
109
+ background-color: #ffffff;
110
+ color: #52b3d9;
111
+ }
112
+ .spt-main-class.csf-theme-light .csf-nav ul ul li a {
113
+ background-color: #f8fdff;
114
+ padding: 13px 15px 13px 24px;
115
+ }
116
+ .spt-main-class.csf-theme-light .csf-nav-background {
117
+ border-right: 1px solid #ccd0d4;
118
+ }
119
+
120
+ /**
121
+ * 03. Fields
122
+ */
123
+ .spt-main-class .csf-field {
124
+ padding: 22px 30px;
125
+ }
126
+
127
+ /**
128
+ * 03. 05. Field: border, spacing, dimensions
129
+ */
130
+ .spt-main-class .csf-field-border .csf--input,
131
+ .spt-main-class .csf-field-spacing .csf--input,
132
+ .spt-main-class .csf-field-dimensions .csf--input {
133
+ margin-right: 10px;
134
+ margin-bottom: 7px;
135
+ }
136
+ .spt-main-class .csf-field-border .csf--input select,
137
+ .spt-main-class .csf-field-spacing .csf--input select,
138
+ .spt-main-class .csf-field-dimensions .csf--input select {
139
+ line-height: 26px;
140
+ }
141
+ .spt-main-class .csf-field-border .csf--input input,
142
+ .spt-main-class .csf-field-spacing .csf--input input,
143
+ .spt-main-class .csf-field-dimensions .csf--input input {
144
+ line-height: 30px;
145
+ float: left;
146
+ padding: 0;
147
+ border-radius: 0;
148
+ }
149
+ .spt-main-class .csf-field-border .csf--label,
150
+ .spt-main-class .csf-field-spacing .csf--label,
151
+ .spt-main-class .csf-field-dimensions .csf--label {
152
+ max-width: 100%;
153
+ font-size: 12px;
154
+ line-height: 30px;
155
+ vertical-align: top;
156
+ text-align: center;
157
+ color: #555;
158
+ border: 1px solid #ddd;
159
+ background-color: #eee;
160
+ padding: 0 6px;
161
+ min-height: 30px;
162
+ }
163
+ .spt-main-class .csf-field-border .csf--label-icon,
164
+ .spt-main-class .csf-field-spacing .csf--label-icon,
165
+ .spt-main-class .csf-field-dimensions .csf--label-icon {
166
+ min-width: 20px;
167
+ border-radius: 2px 0 0 2px;
168
+ }
169
+ .spt-main-class .csf-field-border .csf--label-unit,
170
+ .spt-main-class .csf-field-spacing .csf--label-unit,
171
+ .spt-main-class .csf-field-dimensions .csf--label-unit {
172
+ color: #999;
173
+ border-radius: 0 2px 2px 0;
174
+ }
175
+
176
+ /**
177
+ * 03. 16. Field: image_select, icon_select
178
+ */
179
+ .spt-main-class .csf-field-icon_select .csf--image {
180
+ width: 35px;
181
+ height: 35px;
182
+ text-align: center;
183
+ line-height: 35px;
184
+ font-size: 20px;
185
+ }
186
+ .spt-main-class .csf-field-image_select .csf--image,
187
+ .spt-main-class .csf-field-icon_select .csf--image {
188
+ cursor: pointer;
189
+ position: relative;
190
+ display: inline-block;
191
+ max-width: 100%;
192
+ margin: 0 5px 5px 0;
193
+ vertical-align: bottom;
194
+ border: 2px solid #f4f4f4;
195
+ background-color: #fff;
196
+ user-select: none;
197
+ -webkit-user-select: none;
198
+ -moz-transition: all 0.2s;
199
+ -o-transition: all 0.2s;
200
+ -webkit-transition: all 0.2s;
201
+ transition: all 0.2s;
202
+ }
203
+ .spt-main-class .csf-field-image_select .csf--image:before,
204
+ .spt-main-class .csf-field-icon_select .csf--image:before {
205
+ position: absolute;
206
+ top: 0;
207
+ left: 0;
208
+ text-align: center;
209
+ font-size: 11px;
210
+ font-family: FontAwesome;
211
+ content: "\f00c";
212
+ width: 15px;
213
+ height: 15px;
214
+ line-height: 15px;
215
+ opacity: 0;
216
+ color: #fff;
217
+ background-color: #52b3d9;
218
+ transition: opacity .2s;
219
+ }
220
+ .spt-main-class .csf-field-image_select .csf--active,
221
+ .spt-main-class .csf-field-icon_select .csf--active {
222
+ border-color: #52b3d9;
223
+ }
224
+ .spt-main-class .csf-field-image_select .csf--active:before,
225
+ .spt-main-class .csf-field-icon_select .csf--active:before {
226
+ opacity: 0;
227
+ }
228
+ .spt-main-class .csf-field-image_select img {
229
+ vertical-align: top;
230
+ }
231
+ .spt-main-class .csf-field-image_select input,
232
+ .spt-main-class .csf-field-icon_select input {
233
+ display: none;
234
+ }
235
+
236
+
237
+
238
+ /**
239
+ * 03. 25. Field: spinner
240
+ */
241
+ .spt-main-class .csf-field-spinner .csf--unit {
242
+ float: right;
243
+ height: 30px;
244
+ line-height: 26px;
245
+ text-align: center;
246
+ border-left: none;
247
+ color: #999;
248
+ border: 1px solid #ddd;
249
+ border-left: 0;
250
+ background-color: #eee;
251
+ padding: 0 6px;
252
+ margin: 0;
253
+ box-sizing: border-box;
254
+ }
255
+ .spt-main-class .csf-field-spinner .ui-spinner-button {
256
+ cursor: pointer;
257
+ position: relative;
258
+ overflow: hidden;
259
+ margin: 0;
260
+ padding: 0;
261
+ width: 30px;
262
+ height: 30px;
263
+ line-height: 30px;
264
+ text-align: center;
265
+ border: 1px solid #ddd;
266
+ color: #555;
267
+ background-color: #eee;
268
+ box-sizing: border-box;
269
+ }
270
+ .spt-main-class .csf-field-spinner .ui-spinner-button:before {
271
+ font-family: FontAwesome;
272
+ font-size: 16px;
273
+ line-height: 16px;
274
+ }
275
+ .spt-main-class .csf-field-spinner .ui-spinner-down {
276
+ float: left;
277
+ border-right: 0;
278
+ border-radius: 2px 0 0 2px;
279
+ }
280
+ .spt-main-class .csf-field-spinner .ui-spinner-up {
281
+ float: right;
282
+ border-left: 0;
283
+ border-radius: 0 2px 2px 0;
284
+ }
285
+ .spt-main-class .csf-field-spinner input {
286
+ width: 60px;
287
+ text-align: center;
288
+ margin: 0;
289
+ padding: 0 8px;
290
+ height: 31px;
291
+ line-height: 31px;
292
+ border: 1px solid #ddd;
293
+ border-radius: 0;
294
+ }
295
+ .spt-main-class .csf-field-spinner input:focus {
296
+ outline: none;
297
+ }
298
+
299
+ /**
300
+ * 03. 27. Field: tabbed
301
+ */
302
+ .spt-main-class .csf-field-tabbed .csf-tabbed-section {
303
+ border: 1px solid #eee;
304
+ }
305
+
306
+ /**
307
+ * 03. 28. Field: text
308
+ */
309
+ .spt-main-class .csf-field-text input,
310
+ .spt-main-class .csf-field-text_f input {
311
+ width: 340px;
312
+ max-width: 100%;
313
+ }
314
+
315
+ /**
316
+ * 03. 30. Field: typography
317
+ */
318
+ .spt-main-class .csf-field-typography textarea,
319
+ .spt-main-class .csf-field-typography select {
320
+ margin: 0;
321
+ width: 100%;
322
+ }
323
+ .spt-main-class .csf-field-typography .csf--title {
324
+ color: #999;
325
+ margin: 0 0 2px 0;
326
+ }
327
+ .spt-main-class .csf-field-typography .csf--block {
328
+ padding-right: 5px;
329
+ padding-bottom: 10px;
330
+ box-sizing: border-box;
331
+ }
332
+ .spt-main-class .csf-field-typography .csf--block .csf--block {
333
+ padding-right: 0;
334
+ padding-bottom: 0;
335
+ }
336
+ .spt-main-class .csf-field-typography .csf--blocks-selects .csf--block {
337
+ flex: 1 33.3%;
338
+ }
339
+ .spt-main-class .csf-field-typography .csf--blocks-inputs .csf--block {
340
+ flex: 1 25%;
341
+ }
342
+ .spt-main-class .csf-field-typography .csf--blocks-inputs .csf--block .csf--block {
343
+ flex: 1;
344
+ }
345
+ .spt-main-class .csf-field-typography .csf--input {
346
+ margin: 0;
347
+ width: 100%;
348
+ padding: 2px 8px;
349
+ border-radius: 4px 0 0 4px;
350
+ }
351
+ .spt-main-class .csf-field-typography .csf--unit {
352
+ min-width: 40px;
353
+ max-width: 40px;
354
+ font-size: 12px;
355
+ font-weight: 400;
356
+ text-align: center;
357
+ color: #777;
358
+ border: 1px solid #ddd;
359
+ background-color: #eee;
360
+ border-radius: 0 2px 2px 0;
361
+ border-left: 0;
362
+ line-height: 30px;
363
+ }
364
+ .spt-main-class .csf-field-typography .csf--preview {
365
+ font-size: 16px;
366
+ line-height: 20px;
367
+ padding: 20px;
368
+ color: #222;
369
+ border: 1px solid #eee;
370
+ background-color: #fff;
371
+ border-radius: 2.5px;
372
+ user-select: none;
373
+ -webkit-user-select: none;
374
+ transition: background-color .2s, border-color .2s;
375
+ }
376
+ .spt-main-class .csf-field-typography .csf--block-preview {
377
+ cursor: pointer;
378
+ position: relative;
379
+ overflow: hidden;
380
+ margin-top: 10px;
381
+ max-width: 100%;
382
+ }
383
+ .spt-main-class .csf-field-typography .csf--black-background {
384
+ border-color: #000;
385
+ background-color: #000;
386
+ }
387
+ .spt-main-class .csf-field-typography .csf--toggle {
388
+ position: absolute;
389
+ top: 5px;
390
+ right: 10px;
391
+ color: #999;
392
+ }
393
+ .spt-main-class .csf-field-typography .csf--block-extra-styles {
394
+ margin-top: 5px;
395
+ }
396
+
397
+ /**
398
+ * 03. 37. others
399
+ */
400
+ /* .csf-field .csf--transparent-button {
401
+ display: inline-block;
402
+ text-align: center;
403
+ cursor: pointer;
404
+ margin-top: 10px;
405
+ user-select: none;
406
+ -webkit-user-select: none;
407
+ color: #999;
408
+ transition: background-color .2s, border-color .2s, color .2s;
409
+ } */
410
+
411
+ /**
412
+ * 05. Widget
413
+ */
414
+
415
+ .spt-main-class .control-section .csf-field .csf-title {
416
+ margin-bottom: 10px;
417
+ }
418
+ .spt-main-class .control-section .csf-field .csf-title h4 {
419
+ font-size: 14px;
420
+ }
421
+ .spt-main-class .control-section .csf-field-background .csf--select {
422
+ width: 100%;
423
+ }
424
+ .spt-main-class .control-section .csf-field-border select,
425
+ .spt-main-class .control-section .csf-field-spacing select,
426
+ .spt-main-class .control-section .csf-field-dimensions select {
427
+ width: auto;
428
+ }
429
+
430
+
431
+ /**
432
+ * 08. Helper
433
+ */
434
+ .spt-main-class .csf-text-desc,
435
+ .spt-main-class .csf-text-subtitle {
436
+ font-style: italic;
437
+ }
438
+
439
+ /**
440
+ * 11. Responsive
441
+ */
442
+ @media only screen and (max-width: 1200px) {
443
+ .spt-main-class .csf-metabox .csf-field .csf-title {
444
+ float: none;
445
+ width: 100%;
446
+ margin-bottom: 10px;
447
+ }
448
+ .spt-main-class .csf-metabox .csf-field .csf-fieldset {
449
+ margin-left: 0;
450
+ }
451
+ }
452
+ @media only screen and (max-width: 782px) {
453
+ .spt-main-class .csf-header-inner {
454
+ text-align: center;
455
+ }
456
+ .spt-main-class .csf-header-inner h1 {
457
+ width: 100%;
458
+ margin-bottom: 10px;
459
+ }
460
+ .spt-main-class .csf-search,
461
+ .spt-main-class .csf-header-right,
462
+ .spt-main-class .csf-header-left {
463
+ width: 100%;
464
+ }
465
+ .spt-main-class .csf-search {
466
+ text-align: center;
467
+ margin-bottom: 15px;
468
+ }
469
+ .spt-main-class .csf-footer {
470
+ text-align: center;
471
+ }
472
+ .spt-main-class .csf-buttons {
473
+ float: none;
474
+ }
475
+ .spt-main-class .csf-copyright {
476
+ float: none;
477
+ margin-top: 10px;
478
+ }
479
+ .spt-main-class .csf-nav,
480
+ .spt-main-class .csf-expand-all,
481
+ .spt-main-class .csf-reset-section,
482
+ .spt-main-class .csf-nav-background {
483
+ display: none !important;
484
+ }
485
+
486
+ .spt-main-class .csf-content {
487
+ margin-left: 0;
488
+ }
489
+
490
+ .spt-main-class .csf-section-title,
491
+ .spt-main-class .csf-section {
492
+ display: block !important;
493
+ }
494
+
495
+ .spt-main-class .csf-field .csf-title {
496
+ float: none;
497
+ width: 100%;
498
+ margin-bottom: 10px;
499
+ }
500
+ .spt-main-class .csf-field .csf-fieldset {
501
+ margin-left: 0;
502
+ }
503
+
504
+ .spt-main-class .csf-modal-inner {
505
+ width: 350px;
506
+ height: 380px;
507
+ }
508
+
509
+ .spt-main-class .csf-modal-content {
510
+ height: 282px;
511
+ }
512
+
513
+ .spt-main-class .csf-icon-dialog .csf-modal-inner {
514
+ width: 305px;
515
+ height: 380px;
516
+ }
517
+ .spt-main-class .csf-icon-dialog .csf-modal-content {
518
+ height: 267px;
519
+ }
520
+
521
+ .spt-main-class .csf-modal-icon .csf-modal-inner {
522
+ width: 330px;
523
+ height: 385px;
524
+ }
525
+ .spt-main-class .csf-modal-icon .csf-modal-content {
526
+ height: 252px;
527
+ }
528
+
529
+ .spt-main-class .csf-profile > .csf-field > .csf-title {
530
+ float: none;
531
+ width: 100%;
532
+ margin-bottom: 10px;
533
+ }
534
+ .spt-main-class .csf-profile > .csf-field > .csf-fieldset {
535
+ margin-left: 0;
536
+ }
537
+ }
538
+
539
+ /* Rating */
540
+ .sp-tpro-client-rating{
541
+ float: left;
542
+ }
543
+ .sp-tpro-client-rating:not(:checked) > input {
544
+ visibility:hidden;
545
+ display: none;
546
+ width:0;
547
+ height:0;
548
+ float: right;;
549
+ top: 100%;
550
+ clip: rect(0,0,0,0);
551
+ margin: 0;
552
+ padding: 0;
553
+ border:10px #fff solid;
554
+ }
555
+ .sp-tpro-client-rating:not(:checked) > label {
556
+ float: right;
557
+ display: block;
558
+ padding: 0;
559
+ margin: 0;
560
+ cursor: pointer;
561
+ font-size: 150%;
562
+ line-height: 1.2;
563
+ color: #d4d4d4;
564
+ width: 1em;
565
+ }
566
+ .sp-tpro-client-rating > input:checked ~ label {
567
+ color: #f3bb00;
568
+ }
569
+ .sp-tpro-client-rating:not(:checked) > label:hover,
570
+ .sp-tpro-client-rating:not(:checked) > label:hover ~ label {
571
+ color: #de7202;
572
+ }
573
+ .sp-tpro-client-rating > input:checked + label:hover,
574
+ .sp-tpro-client-rating > input:checked + label:hover ~ label,
575
+ .sp-tpro-client-rating > input:checked ~ label:hover,
576
+ .sp-tpro-client-rating > input:checked ~ label:hover ~ label,
577
+ .sp-tpro-client-rating > label:hover ~ input:checked ~ label {
578
+ color: #de7202;
579
+ }
580
+
581
+ /*ShortCode Area*/
582
+ .csf-metabox .sp-tpro-banner {
583
+ background-color:#2684a6;
584
+ padding: 22px 28px;
585
+ overflow: hidden;
586
+ background-image: -webkit-gradient(linear,left top,right top,from(#2684a6),to(#52b3d9));
587
+ background-image: linear-gradient(to right, #2684a6,#52b3d9);
588
+ }
589
+ .csf-metabox .sp-tpro-logo{
590
+ float: left;
591
+ }
592
+ .csf-metabox .sp-tpro-logo img{
593
+ display: block;
594
+ width: 182px;
595
+ }
596
+ .csf-metabox .sp-tpro-short-links{
597
+ float: right;
598
+ line-height: 30px;
599
+ }
600
+ .csf-metabox .sp-tpro-short-links a{
601
+ color: #ffffff;
602
+ text-decoration: none;
603
+ margin-left: 16px;
604
+ font-size: 15px;
605
+ }
606
+ .csf-metabox .sp-tpro-short-links a i.fa{
607
+ margin-right: 7px;
608
+ }
609
+ .sp-testimonial-shortcode-divider {
610
+ height: 20px;
611
+ background: #f1f1f1;
612
+ border-top: 1px solid #dddddd;
613
+ }
614
+ .csf-metabox .tpro_shortcode{
615
+ display: inline-flex;
616
+ width:100%;
617
+ background-color: #fffdfd;
618
+ }
619
+ .tpro_shortcode .tpro-col-lg-3 {
620
+ border-right: 1px solid #dddddd;
621
+ width: 33.33%;
622
+ }
623
+ .tpro_shortcode .tpro-col-lg-3 .tpro_shortcode_content{
624
+ padding: 42px 16px;
625
+ }
626
+ .tpro_shortcode .tpro-col-lg-3:last-child .tpro_shortcode_content{
627
+ padding: 42px 16px 0 16px;
628
+ }
629
+ .tpro_shortcode .tpro-col-lg-3 .tpro_shortcode_content .tpro-sc-code{
630
+ background-color: rgba(82, 179, 217, 0.11);
631
+ padding: 10px 15px;
632
+ display: inline-block;
633
+ }
634
+ .tpro_shortcode .tpro-col-lg-3:last-child {
635
+ border-right: none;
636
+ }
637
+ .tpro_shortcode .tpro-col-lg-3 .tpro-shortcode-title {
638
+ font-weight: 500;
639
+ font-size: 17px !important;
640
+ padding-top: 0 !important;
641
+ color: #4c5158;
642
+ }
643
+ .tpro_shortcode .tpro-col-lg-3 p {
644
+ margin-top: 2px;
645
+ color: #4c5158;
646
+ }
647
+ .tpro_shortcode .tpro-col-lg-3 .back-image {
648
+ max-width: 100%;
649
+ display: block;
650
+ margin: 0 auto;
651
+ }
652
+ .tpro_shortcode .tpro-col-lg-3 textarea {
653
+ border-color: transparent;
654
+ box-shadow: none;
655
+ background-color: #eee;
656
+ padding: 4px 6px;
657
+ resize: none;
658
+ text-align: center;
659
+ max-width: 100%;
660
+ }
661
+
662
+ /**
663
+ Upgrade to Pro
664
+ */
665
+ #poststuff .sp-tfree-upgrade-body .sp-tfree-section-title {
666
+ padding: 13px 30px;
667
+ font-size: 28px;
668
+ line-height: 1;
669
+ font-weight: 700;
670
+ color: #2e9cc7;
671
+ text-transform: uppercase;
672
+ margin-bottom: 0;
673
+ margin-top: 0;
674
+ }
675
+
676
+ #poststuff .sp-tfree-upgrade-body .sp-tfree-section-feature-icon {
677
+ padding: 30px 30px 0 30px;
678
+ }
679
+
680
+ .sp-tfree-upgrade-body .tfree-option {
681
+ padding: 30px 30px;
682
+ border-bottom: 1px solid #efefef;
683
+ }
684
+
685
+ .sp-tfree-upgrade-body .tfree-option:nth-child(2n+0) {
686
+ background-color: #fafafa;
687
+ }
688
+
689
+ .sp-tfree-upgrade-header .tfree-overlay-color {
690
+ background: #2684a6;
691
+ position: absolute;
692
+ width: 100%;
693
+ height: 100%;
694
+ top: 0;
695
+ left: 0;
696
+ z-index: 1;
697
+ }
698
+
699
+ .sp-tfree-upgrade-header {
700
+ overflow: hidden;
701
+ padding: 43px 40px;
702
+ position: relative;
703
+ }
704
+
705
+ .sp-tfree-upgrade-header .sp-tfree-container {
706
+ position: relative;
707
+ z-index: 2;
708
+ }
709
+
710
+ .sp-tfree-upgrade-header .free-upgrade-btn {
711
+ font-size: 15px;
712
+ color: #ffffff;
713
+ border-radius: 0;
714
+ border: 0;
715
+ height: auto !important;
716
+ line-height: 24px !important;
717
+ padding: 13px 18px !important;
718
+ text-align: center;
719
+ font-weight: 500;
720
+ }
721
+
722
+ .sp-tfree-upgrade-header .sp-tfree-col-lg-7 {
723
+ width: 58.33333333%;
724
+ float: left;
725
+ }
726
+
727
+ .sp-tfree-upgrade-header .sp-tfree-col-lg-5 {
728
+ width: 41.66666667%;
729
+ float: left;
730
+ text-align: right;
731
+ }
732
+
733
+ .sp-tfree-upgrade-header .sp-tfree-upgrade-title {
734
+ margin: 0;
735
+ padding: 0;
736
+ font-size: 24px;
737
+ font-weight: 700;
738
+ color: #ffffff;
739
+ }
740
+
741
+ .sp-tfree-upgrade-header .sp-tfree-upgrade-subtitle {
742
+ font-size: 15px;
743
+ font-weight: 500;
744
+ margin-top: 10px;
745
+ margin-bottom: 0;
746
+ color: #ffffff;
747
+ }
748
+
749
+ .sp-tfree-upgrade-footer .free-upgrade-btn.upgrade-btn,
750
+ .sp-tfree-upgrade-footer .free-upgrade-btn.demo-btn {
751
+ font-family: 'Raleway', sans-serif;
752
+ box-shadow: none;
753
+ border: 0;
754
+ color: #fff;
755
+ border-radius: 0;
756
+ font-size: 16px;
757
+ font-weight: 500;
758
+ height: auto !important;
759
+ line-height: 24px !important;
760
+ padding: 13px 20px !important;
761
+ text-align: center;
762
+ }
763
+
764
+ .sp-tfree-upgrade-header .upgrade-btn,
765
+ .sp-tfree-upgrade-footer .upgrade-btn {
766
+ background-color: #3cb371;
767
+ box-shadow: 0px 1px 26px -3px #333333;
768
+ margin-right: 14px;
769
+ }
770
+
771
+ .sp-tfree-upgrade-header .upgrade-btn:hover,
772
+ .sp-tfree-upgrade-footer .upgrade-btn:hover,
773
+ .sp-tfree-upgrade-footer .free-upgrade-btn.upgrade-btn:focus,
774
+ .sp-tfree-upgrade-header .free-upgrade-btn.upgrade-btn:focus {
775
+ background: #26a55f;
776
+ color: #fff;
777
+ }
778
+
779
+ .sp-tfree-upgrade-header .demo-btn,
780
+ .sp-tfree-upgrade-footer .demo-btn {
781
+ background-color: #52b3d9;
782
+ box-shadow: 0px 1px 26px -3px #333333;
783
+ }
784
+
785
+ .sp-tfree-upgrade-header .demo-btn:hover,
786
+ .sp-tfree-upgrade-footer .demo-btn:hover,
787
+ .sp-tfree-upgrade-footer .free-upgrade-btn.demo-btn:focus,
788
+ .sp-tfree-upgrade-header .free-upgrade-btn.demo-btn:focus {
789
+ background: #2e9cc7;
790
+ color: #fff;
791
+ }
792
+
793
+ .sp-tfree-upgrade-header h1,
794
+ .sp-tfree-upgrade-header h4,
795
+ .sp-tfree-upgrade-footer h2,
796
+ .sp-tfree-upgrade-header p {
797
+ color: #fff;
798
+ font-family: 'Raleway', sans-serif;
799
+ }
800
+
801
+ #poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h2 {
802
+ font-size: 28px;
803
+ padding-top: 40px;
804
+ padding-left: 0;
805
+ text-transform: uppercase;
806
+ font-weight: 700;
807
+ padding-bottom: 0;
808
+ }
809
+
810
+ #poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h4{
811
+ line-height: 24px;
812
+ }
813
+
814
+ .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h4 {
815
+ font-size: 20px;
816
+ font-weight: 600;
817
+ margin-bottom: 20px;
818
+ line-height: 1.1;
819
+ }
820
+
821
+ #poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h2,
822
+ .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h4 {
823
+ color: #7c848e;
824
+ }
825
+
826
+ .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 p {
827
+ font-size: 15px;
828
+ color: #444;
829
+ margin-top: 10px;
830
+ }
831
+
832
+ .sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 {
833
+ width: 50%;
834
+ float: left;
835
+ }
836
+
837
+ .sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 .sp-tfree-content {
838
+ font-family: 'Raleway', sans-serif;
839
+ padding: 25px;
840
+ }
841
+
842
+ .sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 img {
843
+ width: 100%;
844
+ }
845
+
846
+ .sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 .sp-tfree-content img {
847
+ box-shadow: 0px 0px 20px 0px #aaaaaa;
848
+ }
849
+
850
+ .sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 h4 {
851
+ margin-top: 0.33em;
852
+ }
853
+
854
+ .sp-tfree-mbf-tab-content .tfree-option:after {
855
+ content: "";
856
+ display: table;
857
+ clear: both;
858
+ }
859
+
860
+ .sp-tfree-mbf-tab-content .sp-tfree-video-tutorial {
861
+ padding: 30px 80px 50px;
862
+ }
863
+
864
+ .sp-tfree-mbf-tab-content .sp-tfree-video-tutorial-video {
865
+ position: relative;
866
+ padding-bottom: 56.4%;
867
+ width: 100%;
868
+ max-width: 100%;
869
+ height: 0;
870
+ text-align: center;
871
+ }
872
+
873
+ .sp-tfree-mbf-tab-content .sp-tfree-video-tutorial-video iframe {
874
+ position: absolute;
875
+ top: 0;
876
+ left: 0;
877
+ width: 100%;
878
+ height: 100%;
879
+ }
880
+
881
+ #poststuff .sp-tfree-mbf-tab-content .sp-tfree-video-tutorial h2 {
882
+ font-size: 30px;
883
+ font-weight: 600;
884
+ color: #444444;
885
+ margin-bottom: 20px;
886
+ }
887
+
888
+ .sp-tfree-mbf-tab-content .tfree-option:after, .sp-tfree-mbf-tab-content .tfree-option:before {
889
+ -webkit-box-sizing: border-box;
890
+ -moz-box-sizing: border-box;
891
+ box-sizing: border-box;
892
+ }
893
+
894
+ .sp-tfree-upgrade-footer {
895
+ padding: 60px 40px 40px 40px;
896
+ }
897
+
898
+ .sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer {
899
+ font-family: 'Raleway', sans-serif;
900
+ color: #fff;
901
+ position: relative;
902
+ z-index: 1;
903
+ }
904
+
905
+ .sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer .tfree-overlay-color {
906
+ position: absolute;
907
+ width: 100%;
908
+ height: 100%;
909
+ top: 0px;
910
+ left: 0px;
911
+ z-index: -1;
912
+ background: #2684a6;
913
+ }
914
+
915
+ #poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer h2 {
916
+ font-size: 28px;
917
+ margin-top: 12px;
918
+ font-weight: 700;
919
+ }
920
+
921
+ .sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer p {
922
+ margin-top: 0;
923
+ }
924
+
925
+ .sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer p {
926
+ margin-top: 0;
927
+ margin-bottom: 34px;
928
+ }
929
+
930
+ .sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer a {
931
+ margin-bottom: 20px;
932
+ }
933
+
934
+ .sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer p {
935
+ font-size: 18px;
936
+ font-weight: 500;
937
+ }
938
+
939
+ /* Responsive */
940
+ @media (max-width: 1200px) {
941
+ .sp-tfree-metabox-framework .sp-tfree-mbf {
942
+ display: block;
943
+ }
944
+
945
+ .sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 {
946
+ width: 100%;
947
+ float: none;
948
+ }
949
+
950
+ #poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h2 {
951
+ padding-top: 0;
952
+ }
953
+
954
+ .sp-tfree-mbf-tab-content .sp-tfree-col-lg-2:last-of-type .sp-tfree-content {
955
+ padding-top: 0;
956
+ padding-bottom: 40px;
957
+ }
958
+
959
+ .sp-tfree-mbf .sp-tfree-col-lg-3,
960
+ .sp-tfree-element .sp-tfree-input-label,
961
+ .sp-tfree-element .sp-tfree-input-field {
962
+ width: 100%;
963
+ }
964
+
965
+ .sp-tfree-mbf .sp-tfree-col-lg-3 {
966
+ display: block;
967
+ border-bottom: 1px solid #e5e5e5;
968
+ padding-bottom: 15px;
969
+ border-right: none;
970
+ }
971
+
972
+ .sp-tfree-mbf .sp-tfree-col-lg-3:last-of-type {
973
+ border-bottom: none;
974
+ padding-bottom: 0;
975
+ }
976
+ .sp-tfree-upgrade-header .sp-tfree-col-lg-7 {
977
+ width: 100%;
978
+ float: none;
979
+ }
980
+ .sp-tfree-upgrade-header .sp-tfree-col-lg-5 {
981
+ width: 100%;
982
+ float: none;
983
+ text-align: center;
984
+ }
985
+ .sp-tfree-upgrade-header .sp-tfree-container {
986
+ text-align: center;
987
+ }
988
+ .sp-tfree-upgrade-header .sp-tfree-upgrade-subtitle {
989
+ margin-bottom: 20px;
990
+ }
991
+ }
992
+
993
+ @media (max-width: 1024px) {
994
+ .sp-tfree-upgrade-header .demo-btn,
995
+ .sp-tfree-upgrade-footer .demo-btn,
996
+ .sp-tfree-upgrade-header .upgrade-btn,
997
+ .sp-tfree-upgrade-footer .upgrade-btn {
998
+ margin: 0 auto;
999
+ display: block;
1000
+ }
1001
+
1002
+ .sp-tfree-mbf-tab-content .sp-tfree-upgrade-header a.upgrade-btn,
1003
+ .sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer a.upgrade-btn,
1004
+ .sp-tfree-upgrade-header .sp-tfree-upgrade-subtitle {
1005
+ margin-bottom: 20px;
1006
+ }
1007
+
1008
+ .sp-tfree-upgrade-header .sp-tfree-col-lg-7 {
1009
+ width: 100%;
1010
+ float: none;
1011
+ }
1012
+
1013
+ .sp-tfree-upgrade-header .sp-tfree-col-lg-5 {
1014
+ width: 100%;
1015
+ float: none;
1016
+ text-align: center;
1017
+ }
1018
+
1019
+ .sp-tfree-upgrade-header .sp-tfree-container {
1020
+ text-align: center;
1021
+ }
1022
+ }
1023
+
1024
+ /* Custom */
1025
+ .sp-testimonial-shortcode {
1026
+ background-color: rgba(82, 179, 217, 0.11);
1027
+ padding: 8px 12px;
1028
+ display: inline-block;
1029
+ margin-left: 8px;
1030
+ }
1031
+ .selectable {
1032
+ -webkit-touch-callout: all;
1033
+ -webkit-user-select: all;
1034
+ -khtml-user-select: all;
1035
+ -moz-user-select: all;
1036
+ -ms-user-select: all;
1037
+ user-select: all;
1038
+ }
1039
+ .js #sp_tpro_shortcode_options.postbox .handlediv, .js #sp_tpro_shortcode_options.postbox .hndle,
1040
+ .js #sp_tpro_meta_options.postbox .handlediv, .js #sp_tpro_meta_options.postbox .hndle {
1041
+ display: none;
1042
+ }
1043
+ .sp-testimonial-font-load .csf--switcher,
1044
+ .sp-testimonial-font-color .wp-picker-container {
1045
+ pointer-events: none;
1046
+ opacity: .6;
1047
+ }
1048
+ #sp_tpro_shortcode_options .csf-metabox .csf-nav ul li:last-of-type a {
1049
+ background-color: #35b135;
1050
+ }
1051
+ #sp_tpro_shortcode_options .csf-metabox .csf-nav ul li:last-of-type .csf-section-active {
1052
+ color: #35b135;
1053
+ background-color: #fff;
1054
+ box-shadow: 0 3px 0 0 #35b135 inset;
1055
+ }
1056
+ #sp_tpro_shortcode_options .csf-metabox .csf-nav ul li:last-of-type .csf-section-active .fa{
1057
+ color: #35b135;
1058
+ }
1059
+ #sp_tpro_shortcode_options .csf-field.csf-field-upgrade {
1060
+ padding: 0;
1061
+ }
1062
+
1063
+
1064
+
1065
  /* Help Page */
1066
  .sp-tfree-text-center{
1067
  text-align: center;
admin/assets/css/admin.min.css CHANGED
@@ -1 +1 @@
1
- .sp-tfree-text-center{text-align:center}div.sp-tfree-help .wp-badge{border:none;background:url(../images/icon-256.png) right no-repeat;background-size:110px 110px;box-shadow:none;height:auto}.about-wrap.sp-tfree-help [class$="-col"]{display:flex;justify-content:space-between;flex-wrap:wrap}.about-wrap [class$="-col"]{display:flex;justify-content:space-between;flex-wrap:wrap}.sp-tfree-help [class$="-col"] .col{flex:1;align-self:flex-start}.sp-tfree-help .col{margin-top:40px}.sp-tfree-help.about-wrap [class$="-col"] .col+.col{margin-left:0}.sp-tfree-help.about-wrap .help-section[class$="-col"] .col+.col{margin-left:20px}div.sp-tfree-help .headline-feature.feature-video{position:relative;margin:40px 0;padding-bottom:56.25%;width:100%;max-width:100%;height:0;text-align:center}div.sp-tfree-help .headline-feature.feature-video iframe{position:absolute;top:0;left:0;width:100%;height:100%}div.sp-tfree-help .feature-section .sp-tfree-feature{background-color:#fff;padding:20px 20px;border:1px solid #ddd}div.sp-tfree-help .feature-section .sp-tfree-feature h3{font-size:16px;margin-top:18px}div.sp-tfree-help .feature-section i.sp-tfree-font-icon{font-size:30px;display:block;color:#52b3d9}div.sp-tfree-help .sp-tfree-pro-features .feature-section span.dashicons{font-size:22px;color:#fff;background-color:#52b3d9;width:28px;height:28px;line-height:28px;border-radius:50%;margin-right:10px}div.sp-tfree-help .sp-tfree-pro-features .feature-section{margin-bottom:40px;margin-left:-2%}div.sp-tfree-help .sp-tfree-pro-features .feature-section .sp-tfree-feature h3{margin-top:0}div.sp-tfree-help .sp-tfree-pro-features .feature-section .sp-tfree-feature p{margin-bottom:0}div.sp-tfree-help .sp-tfree-pro-features .feature-section .sp-tfree-feature{box-shadow:0 0 10px 0 #ddd;margin:4px;border:0 solid}div.sp-tfree-help .sp-tfree-pro-features .feature-section.three-col .col{min-width:31.3%;max-width:31.3%;margin-top:20px;padding-left:2%}div.sp-tfree-help .sp-tfree-pro-features .sp-tfree-pro-subtitle{font-size:1.2em;margin-bottom:26px}div.sp-tfree-help .sp-tfree-upgrade-sticky-footer{position:fixed;bottom:0;background:#fff;width:calc(100% - 195px);z-index:9;margin-left:-25px;text-align:center;border:1px solid #dfdfdf;padding:15px 0;border-bottom:none}div.sp-tfree-help .sp-tfree-pro-features h2{font-size:2.5em;font-weight:400}div.sp-tfree-help .sp-tfree-upgrade-sticky-footer h3{margin-top:17px;margin-bottom:20px}div.sp-tfree-help .sp-tfree-upgrade-sticky-footer a.button{margin:0 8px}.sp-tfree-upgrade>h1{font-size:2.5em;color:#444;font-weight:300}.sp-tfree-upgrade>h1 span{font-weight:400}.sp-tfree-upgrade .about-text{margin-bottom:0}.sp-tfree-upgrade ul{margin-top:0}.about-wrap.sp-tfree-upgrade .about-text{min-height:60px}.about-wrap.sp-tfree-upgrade hr{order:0;height:0;margin:0;border-top:1px solid rgba(0,0,0,.1)}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section{margin-bottom:40px;display:flex;flex-wrap:wrap}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section .sp-tfree-feature h3{margin-top:0}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section .sp-tfree-feature p{margin-bottom:0}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section .sp-tfree-feature{box-shadow:0 0 10px 0 #ddd;margin:4px;border:0 solid}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section.three-col .col{min-width:32%;max-width:32%;margin-top:20px;display:flex;align-self:auto}.sp-tfree-upgrade .sp-tfree-pro-features .sp-tfree-pro-subtitle{font-size:1.2em;margin-bottom:26px}.sp-tfree-upgrade .sp-tfree-pro-features h2,.sp-tfree-upgrade .sp-tfree-promo-video-title{font-size:2.2em;font-weight:400}.sp-tfree-join-community h2{font-size:2em}.sp-tfree-upgrade .sp-tfree-upgrade-sticky-footer h3{margin-top:17px;margin-bottom:20px}.sp-tfree-upgrade .sp-tfree-upgrade-sticky-footer a.button{margin:0 8px}.sp-tfree-upgrade .tfree-upgrade-btn{display:inline-block;padding:0 20px 0 0}.sp-tfree-upgrade .tfree-upgrade-btn a,.sp-tfree-upgrade a.tfree-upgrade-btn{text-decoration:none;text-align:center;font-size:16px}.sp-tfree-upgrade .tfree-upgrade-btn a:focus{outline:0}.sp-tfree-upgrade a.tfree-upgrade-btn,.sp-tfree-upgrade ul li.tfree-upgrade-btn:first-child a{background:#52b3d9;padding:0 15px;line-height:46px;display:block;color:#fff;border-radius:3px;font-weight:500}.sp-tfree-upgrade ul li.tfree-upgrade-btn:last-child a{text-decoration:underline}.sp-tfree-upgrade ul li.tfree-upgrade-btn a i{margin-left:4px}.sp-tfree-upgrade ul li.tfree-upgrade-btn:last-child a i{font-size:14px}.sp-tfree-upgrade a.tfree-upgrade-btn{display:inline-block}#sp-tfree-review-notice{padding:15px 15px 15px 0;background-color:#fff;border-radius:3px;margin:20px 20px 0 0}#sp-tfree-review-notice .sp-tfree-plugin-icon{width:125px;float:left;line-height:90px;text-align:center}#sp-tfree-review-notice .sp-tfree-plugin-icon img{max-width:83px;vertical-align:middle}#sp-tfree-review-notice .sp-tfree-notice-text{overflow:hidden}#sp-tfree-review-notice .sp-tfree-notice-text h3{font-size:24px;margin:0 0 5px;font-weight:400;line-height:1}#sp-tfree-review-notice .sp-tfree-notice-text p{margin:10px 0 10px 0;font-size:13px}#sp-tfree-review-notice .sp-tfree-notice-text p.sp-tfree-review-actions{margin:10px 0 2px 0}#sp-tfree-review-notice .sp-tfree-notice-text .sp-tfree-review-actions a{text-decoration:none;margin-right:8px;color:#63a37b;display:inline-block;position:relative}#sp-tfree-review-notice .sp-tfree-notice-text .sp-tfree-review-actions a span{padding-right:2px}#sp-tfree-review-notice .sp-tfree-notice-text .sp-tfree-review-actions a.button{color:#fff}@media (max-width:960px){div.sp-tfree-help .sp-tfree-upgrade-sticky-footer{width:calc(100%)}}@media screen and (max-width:782px){div.sp-tfree-help .three-col .col{min-width:48%!important;max-width:48%!important;margin-left:0!important}}@media (max-width:500px){div.sp-tfree-help .wp-badge{background-position-x:center}div.sp-tfree-help .three-col .col{min-width:100%!important;max-width:100%!important;margin-top:1em}}
1
+ .text-center{text-align:center}.spt-main-class .csf-header-inner h1{color:#444;font-size:22px;font-weight:600}.spt-main-class .csf-sticky .csf-header-inner{z-index:20}.spt-main-class .csf-metabox .csf-nav{position:inherit;float:none;width:100%;background:#f1f1f1}.spt-main-class .csf-metabox .csf-nav ul li{display:inline-block}.spt-main-class .csf-nav ul li a{text-transform:uppercase;font-weight:600}.spt-main-class .csf-metabox .csf-content{margin-left:0}.spt-main-class .csf-metabox{margin:-6px -12px -12px -12px}.spt-main-class .csf-metabox .csf-nav ul li a{background-color:#52b3d9;font-size:14px;padding:15px 15px;line-height:1.4;color:#fff;border-right:1px solid #e2e2e1;font-weight:600;border-bottom:0}#sp_tpro_shortcode_options_new .csf-metabox .csf-nav ul li a{font-size:13px;text-transform:uppercase;padding:16px 15px}.spt-main-class .csf-nav ul li .csf-section-active:after{display:none}.spt-main-class .csf-metabox .csf-nav ul li .csf-section-active{color:#444;background-color:#fff;box-shadow:0 3px 0 0 #52b3d9 inset}.spt-main-class .csf-metabox .csf-nav ul li .csf-section-active .fa{color:#52b3d9}.spt-main-class .csf-metabox .csf-nav-background{display:none}.spt-main-class.csf-theme-light .csf-container{border:1px solid #ccd0d4}.spt-main-class.csf-theme-light .csf-header-inner{border-bottom:1px solid #ccd0d4}.spt-main-class.csf-theme-light .csf-nav ul li a{color:#464646;background-color:#f5f5f5;border-top:0;border-right:0;border-bottom:1px solid #ccd0d4!important;margin-bottom:0;padding:15px 15px}.spt-main-class.csf-theme-light .csf-nav ul li .csf-section-active{box-shadow:3px 0 0 0 #52b3d9 inset;background-color:#fff;color:#52b3d9}.spt-main-class.csf-theme-light .csf-nav ul ul li a{background-color:#f8fdff;padding:13px 15px 13px 24px}.spt-main-class.csf-theme-light .csf-nav-background{border-right:1px solid #ccd0d4}.spt-main-class .csf-field{padding:22px 30px}.spt-main-class .csf-field-border .csf--input,.spt-main-class .csf-field-dimensions .csf--input,.spt-main-class .csf-field-spacing .csf--input{margin-right:10px;margin-bottom:7px}.spt-main-class .csf-field-border .csf--input select,.spt-main-class .csf-field-dimensions .csf--input select,.spt-main-class .csf-field-spacing .csf--input select{line-height:26px}.spt-main-class .csf-field-border .csf--input input,.spt-main-class .csf-field-dimensions .csf--input input,.spt-main-class .csf-field-spacing .csf--input input{line-height:30px;float:left;padding:0;border-radius:0}.spt-main-class .csf-field-border .csf--label,.spt-main-class .csf-field-dimensions .csf--label,.spt-main-class .csf-field-spacing .csf--label{max-width:100%;font-size:12px;line-height:30px;vertical-align:top;text-align:center;color:#555;border:1px solid #ddd;background-color:#eee;padding:0 6px;min-height:30px}.spt-main-class .csf-field-border .csf--label-icon,.spt-main-class .csf-field-dimensions .csf--label-icon,.spt-main-class .csf-field-spacing .csf--label-icon{min-width:20px;border-radius:2px 0 0 2px}.spt-main-class .csf-field-border .csf--label-unit,.spt-main-class .csf-field-dimensions .csf--label-unit,.spt-main-class .csf-field-spacing .csf--label-unit{color:#999;border-radius:0 2px 2px 0}.spt-main-class .csf-field-icon_select .csf--image{width:35px;height:35px;text-align:center;line-height:35px;font-size:20px}.spt-main-class .csf-field-icon_select .csf--image,.spt-main-class .csf-field-image_select .csf--image{cursor:pointer;position:relative;display:inline-block;max-width:100%;margin:0 5px 5px 0;vertical-align:bottom;border:2px solid #f4f4f4;background-color:#fff;user-select:none;-webkit-user-select:none;-moz-transition:all .2s;-o-transition:all .2s;-webkit-transition:all .2s;transition:all .2s}.spt-main-class .csf-field-icon_select .csf--image:before,.spt-main-class .csf-field-image_select .csf--image:before{position:absolute;top:0;left:0;text-align:center;font-size:11px;font-family:FontAwesome;content:"\f00c";width:15px;height:15px;line-height:15px;opacity:0;color:#fff;background-color:#52b3d9;transition:opacity .2s}.spt-main-class .csf-field-icon_select .csf--active,.spt-main-class .csf-field-image_select .csf--active{border-color:#52b3d9}.spt-main-class .csf-field-icon_select .csf--active:before,.spt-main-class .csf-field-image_select .csf--active:before{opacity:0}.spt-main-class .csf-field-image_select img{vertical-align:top}.spt-main-class .csf-field-icon_select input,.spt-main-class .csf-field-image_select input{display:none}.spt-main-class .csf-field-spinner .csf--unit{float:right;height:30px;line-height:26px;text-align:center;border-left:none;color:#999;border:1px solid #ddd;border-left:0;background-color:#eee;padding:0 6px;margin:0;box-sizing:border-box}.spt-main-class .csf-field-spinner .ui-spinner-button{cursor:pointer;position:relative;overflow:hidden;margin:0;padding:0;width:30px;height:30px;line-height:30px;text-align:center;border:1px solid #ddd;color:#555;background-color:#eee;box-sizing:border-box}.spt-main-class .csf-field-spinner .ui-spinner-button:before{font-family:FontAwesome;font-size:16px;line-height:16px}.spt-main-class .csf-field-spinner .ui-spinner-down{float:left;border-right:0;border-radius:2px 0 0 2px}.spt-main-class .csf-field-spinner .ui-spinner-up{float:right;border-left:0;border-radius:0 2px 2px 0}.spt-main-class .csf-field-spinner input{width:60px;text-align:center;margin:0;padding:0 8px;height:31px;line-height:31px;border:1px solid #ddd;border-radius:0}.spt-main-class .csf-field-spinner input:focus{outline:0}.spt-main-class .csf-field-tabbed .csf-tabbed-section{border:1px solid #eee}.spt-main-class .csf-field-text input,.spt-main-class .csf-field-text_f input{width:340px;max-width:100%}.spt-main-class .csf-field-typography select,.spt-main-class .csf-field-typography textarea{margin:0;width:100%}.spt-main-class .csf-field-typography .csf--title{color:#999;margin:0 0 2px 0}.spt-main-class .csf-field-typography .csf--block{padding-right:5px;padding-bottom:10px;box-sizing:border-box}.spt-main-class .csf-field-typography .csf--block .csf--block{padding-right:0;padding-bottom:0}.spt-main-class .csf-field-typography .csf--blocks-selects .csf--block{flex:1 33.3%}.spt-main-class .csf-field-typography .csf--blocks-inputs .csf--block{flex:1 25%}.spt-main-class .csf-field-typography .csf--blocks-inputs .csf--block .csf--block{flex:1}.spt-main-class .csf-field-typography .csf--input{margin:0;width:100%;padding:2px 8px;border-radius:4px 0 0 4px}.spt-main-class .csf-field-typography .csf--unit{min-width:40px;max-width:40px;font-size:12px;font-weight:400;text-align:center;color:#777;border:1px solid #ddd;background-color:#eee;border-radius:0 2px 2px 0;border-left:0;line-height:30px}.spt-main-class .csf-field-typography .csf--preview{font-size:16px;line-height:20px;padding:20px;color:#222;border:1px solid #eee;background-color:#fff;border-radius:2.5px;user-select:none;-webkit-user-select:none;transition:background-color .2s,border-color .2s}.spt-main-class .csf-field-typography .csf--block-preview{cursor:pointer;position:relative;overflow:hidden;margin-top:10px;max-width:100%}.spt-main-class .csf-field-typography .csf--black-background{border-color:#000;background-color:#000}.spt-main-class .csf-field-typography .csf--toggle{position:absolute;top:5px;right:10px;color:#999}.spt-main-class .csf-field-typography .csf--block-extra-styles{margin-top:5px}.spt-main-class .control-section .csf-field .csf-title{margin-bottom:10px}.spt-main-class .control-section .csf-field .csf-title h4{font-size:14px}.spt-main-class .control-section .csf-field-background .csf--select{width:100%}.spt-main-class .control-section .csf-field-border select,.spt-main-class .control-section .csf-field-dimensions select,.spt-main-class .control-section .csf-field-spacing select{width:auto}.spt-main-class .csf-text-desc,.spt-main-class .csf-text-subtitle{font-style:italic}@media only screen and (max-width:1200px){.spt-main-class .csf-metabox .csf-field .csf-title{float:none;width:100%;margin-bottom:10px}.spt-main-class .csf-metabox .csf-field .csf-fieldset{margin-left:0}}@media only screen and (max-width:782px){.spt-main-class .csf-header-inner{text-align:center}.spt-main-class .csf-header-inner h1{width:100%;margin-bottom:10px}.spt-main-class .csf-header-left,.spt-main-class .csf-header-right,.spt-main-class .csf-search{width:100%}.spt-main-class .csf-search{text-align:center;margin-bottom:15px}.spt-main-class .csf-footer{text-align:center}.spt-main-class .csf-buttons{float:none}.spt-main-class .csf-copyright{float:none;margin-top:10px}.spt-main-class .csf-expand-all,.spt-main-class .csf-nav,.spt-main-class .csf-nav-background,.spt-main-class .csf-reset-section{display:none!important}.spt-main-class .csf-content{margin-left:0}.spt-main-class .csf-section,.spt-main-class .csf-section-title{display:block!important}.spt-main-class .csf-field .csf-title{float:none;width:100%;margin-bottom:10px}.spt-main-class .csf-field .csf-fieldset{margin-left:0}.spt-main-class .csf-modal-inner{width:350px;height:380px}.spt-main-class .csf-modal-content{height:282px}.spt-main-class .csf-icon-dialog .csf-modal-inner{width:305px;height:380px}.spt-main-class .csf-icon-dialog .csf-modal-content{height:267px}.spt-main-class .csf-modal-icon .csf-modal-inner{width:330px;height:385px}.spt-main-class .csf-modal-icon .csf-modal-content{height:252px}.spt-main-class .csf-profile>.csf-field>.csf-title{float:none;width:100%;margin-bottom:10px}.spt-main-class .csf-profile>.csf-field>.csf-fieldset{margin-left:0}}.sp-tpro-client-rating{float:left}.sp-tpro-client-rating:not(:checked)>input{visibility:hidden;display:none;width:0;height:0;float:right;top:100%;clip:rect(0,0,0,0);margin:0;padding:0;border:10px #fff solid}.sp-tpro-client-rating:not(:checked)>label{float:right;display:block;padding:0;margin:0;cursor:pointer;font-size:150%;line-height:1.2;color:#d4d4d4;width:1em}.sp-tpro-client-rating>input:checked~label{color:#f3bb00}.sp-tpro-client-rating:not(:checked)>label:hover,.sp-tpro-client-rating:not(:checked)>label:hover~label{color:#de7202}.sp-tpro-client-rating>input:checked+label:hover,.sp-tpro-client-rating>input:checked+label:hover~label,.sp-tpro-client-rating>input:checked~label:hover,.sp-tpro-client-rating>input:checked~label:hover~label,.sp-tpro-client-rating>label:hover~input:checked~label{color:#de7202}.csf-metabox .sp-tpro-banner{background-color:#2684a6;padding:22px 28px;overflow:hidden;background-image:-webkit-gradient(linear,left top,right top,from(#2684a6),to(#52b3d9));background-image:linear-gradient(to right,#2684a6,#52b3d9)}.csf-metabox .sp-tpro-logo{float:left}.csf-metabox .sp-tpro-logo img{display:block;width:182px}.csf-metabox .sp-tpro-short-links{float:right;line-height:30px}.csf-metabox .sp-tpro-short-links a{color:#fff;text-decoration:none;margin-left:16px;font-size:15px}.csf-metabox .sp-tpro-short-links a i.fa{margin-right:7px}.sp-testimonial-shortcode-divider{height:20px;background:#f1f1f1;border-top:1px solid #ddd}.csf-metabox .tpro_shortcode{display:inline-flex;width:100%;background-color:#fffdfd}.tpro_shortcode .tpro-col-lg-3{border-right:1px solid #ddd;width:33.33%}.tpro_shortcode .tpro-col-lg-3 .tpro_shortcode_content{padding:42px 16px}.tpro_shortcode .tpro-col-lg-3:last-child .tpro_shortcode_content{padding:42px 16px 0 16px}.tpro_shortcode .tpro-col-lg-3 .tpro_shortcode_content .tpro-sc-code{background-color:rgba(82,179,217,.11);padding:10px 15px;display:inline-block}.tpro_shortcode .tpro-col-lg-3:last-child{border-right:none}.tpro_shortcode .tpro-col-lg-3 .tpro-shortcode-title{font-weight:500;font-size:17px!important;padding-top:0!important;color:#4c5158}.tpro_shortcode .tpro-col-lg-3 p{margin-top:2px;color:#4c5158}.tpro_shortcode .tpro-col-lg-3 .back-image{max-width:100%;display:block;margin:0 auto}.tpro_shortcode .tpro-col-lg-3 textarea{border-color:transparent;box-shadow:none;background-color:#eee;padding:4px 6px;resize:none;text-align:center;max-width:100%}#poststuff .sp-tfree-upgrade-body .sp-tfree-section-title{padding:13px 30px;font-size:28px;line-height:1;font-weight:700;color:#2e9cc7;text-transform:uppercase;margin-bottom:0;margin-top:0}#poststuff .sp-tfree-upgrade-body .sp-tfree-section-feature-icon{padding:30px 30px 0 30px}.sp-tfree-upgrade-body .tfree-option{padding:30px 30px;border-bottom:1px solid #efefef}.sp-tfree-upgrade-body .tfree-option:nth-child(2n+0){background-color:#fafafa}.sp-tfree-upgrade-header .tfree-overlay-color{background:#2684a6;position:absolute;width:100%;height:100%;top:0;left:0;z-index:1}.sp-tfree-upgrade-header{overflow:hidden;padding:43px 40px;position:relative}.sp-tfree-upgrade-header .sp-tfree-container{position:relative;z-index:2}.sp-tfree-upgrade-header .free-upgrade-btn{font-size:15px;color:#fff;border-radius:0;border:0;height:auto!important;line-height:24px!important;padding:13px 18px!important;text-align:center;font-weight:500}.sp-tfree-upgrade-header .sp-tfree-col-lg-7{width:58.33333333%;float:left}.sp-tfree-upgrade-header .sp-tfree-col-lg-5{width:41.66666667%;float:left;text-align:right}.sp-tfree-upgrade-header .sp-tfree-upgrade-title{margin:0;padding:0;font-size:24px;font-weight:700;color:#fff}.sp-tfree-upgrade-header .sp-tfree-upgrade-subtitle{font-size:15px;font-weight:500;margin-top:10px;margin-bottom:0;color:#fff}.sp-tfree-upgrade-footer .free-upgrade-btn.demo-btn,.sp-tfree-upgrade-footer .free-upgrade-btn.upgrade-btn{font-family:Raleway,sans-serif;box-shadow:none;border:0;color:#fff;border-radius:0;font-size:16px;font-weight:500;height:auto!important;line-height:24px!important;padding:13px 20px!important;text-align:center}.sp-tfree-upgrade-footer .upgrade-btn,.sp-tfree-upgrade-header .upgrade-btn{background-color:#3cb371;box-shadow:0 1px 26px -3px #333;margin-right:14px}.sp-tfree-upgrade-footer .free-upgrade-btn.upgrade-btn:focus,.sp-tfree-upgrade-footer .upgrade-btn:hover,.sp-tfree-upgrade-header .free-upgrade-btn.upgrade-btn:focus,.sp-tfree-upgrade-header .upgrade-btn:hover{background:#26a55f;color:#fff}.sp-tfree-upgrade-footer .demo-btn,.sp-tfree-upgrade-header .demo-btn{background-color:#52b3d9;box-shadow:0 1px 26px -3px #333}.sp-tfree-upgrade-footer .demo-btn:hover,.sp-tfree-upgrade-footer .free-upgrade-btn.demo-btn:focus,.sp-tfree-upgrade-header .demo-btn:hover,.sp-tfree-upgrade-header .free-upgrade-btn.demo-btn:focus{background:#2e9cc7;color:#fff}.sp-tfree-upgrade-footer h2,.sp-tfree-upgrade-header h1,.sp-tfree-upgrade-header h4,.sp-tfree-upgrade-header p{color:#fff;font-family:Raleway,sans-serif}#poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h2{font-size:28px;padding-top:40px;padding-left:0;text-transform:uppercase;font-weight:700;padding-bottom:0}#poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h4{line-height:24px}.sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h4{font-size:20px;font-weight:600;margin-bottom:20px;line-height:1.1}#poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h2,.sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h4{color:#7c848e}.sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 p{font-size:15px;color:#444;margin-top:10px}.sp-tfree-mbf-tab-content .sp-tfree-col-lg-2{width:50%;float:left}.sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 .sp-tfree-content{font-family:Raleway,sans-serif;padding:25px}.sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 img{width:100%}.sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 .sp-tfree-content img{box-shadow:0 0 20px 0 #aaa}.sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 h4{margin-top:.33em}.sp-tfree-mbf-tab-content .tfree-option:after{content:"";display:table;clear:both}.sp-tfree-mbf-tab-content .sp-tfree-video-tutorial{padding:30px 80px 50px}.sp-tfree-mbf-tab-content .sp-tfree-video-tutorial-video{position:relative;padding-bottom:56.4%;width:100%;max-width:100%;height:0;text-align:center}.sp-tfree-mbf-tab-content .sp-tfree-video-tutorial-video iframe{position:absolute;top:0;left:0;width:100%;height:100%}#poststuff .sp-tfree-mbf-tab-content .sp-tfree-video-tutorial h2{font-size:30px;font-weight:600;color:#444;margin-bottom:20px}.sp-tfree-mbf-tab-content .tfree-option:after,.sp-tfree-mbf-tab-content .tfree-option:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.sp-tfree-upgrade-footer{padding:60px 40px 40px 40px}.sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer{font-family:Raleway,sans-serif;color:#fff;position:relative;z-index:1}.sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer .tfree-overlay-color{position:absolute;width:100%;height:100%;top:0;left:0;z-index:-1;background:#2684a6}#poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer h2{font-size:28px;margin-top:12px;font-weight:700}.sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer p{margin-top:0}.sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer p{margin-top:0;margin-bottom:34px}.sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer a{margin-bottom:20px}.sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer p{font-size:18px;font-weight:500}@media (max-width:1200px){.sp-tfree-metabox-framework .sp-tfree-mbf{display:block}.sp-tfree-mbf-tab-content .sp-tfree-col-lg-2{width:100%;float:none}#poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h2{padding-top:0}.sp-tfree-mbf-tab-content .sp-tfree-col-lg-2:last-of-type .sp-tfree-content{padding-top:0;padding-bottom:40px}.sp-tfree-element .sp-tfree-input-field,.sp-tfree-element .sp-tfree-input-label,.sp-tfree-mbf .sp-tfree-col-lg-3{width:100%}.sp-tfree-mbf .sp-tfree-col-lg-3{display:block;border-bottom:1px solid #e5e5e5;padding-bottom:15px;border-right:none}.sp-tfree-mbf .sp-tfree-col-lg-3:last-of-type{border-bottom:none;padding-bottom:0}.sp-tfree-upgrade-header .sp-tfree-col-lg-7{width:100%;float:none}.sp-tfree-upgrade-header .sp-tfree-col-lg-5{width:100%;float:none;text-align:center}.sp-tfree-upgrade-header .sp-tfree-container{text-align:center}.sp-tfree-upgrade-header .sp-tfree-upgrade-subtitle{margin-bottom:20px}}@media (max-width:1024px){.sp-tfree-upgrade-footer .demo-btn,.sp-tfree-upgrade-footer .upgrade-btn,.sp-tfree-upgrade-header .demo-btn,.sp-tfree-upgrade-header .upgrade-btn{margin:0 auto;display:block}.sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer a.upgrade-btn,.sp-tfree-mbf-tab-content .sp-tfree-upgrade-header a.upgrade-btn,.sp-tfree-upgrade-header .sp-tfree-upgrade-subtitle{margin-bottom:20px}.sp-tfree-upgrade-header .sp-tfree-col-lg-7{width:100%;float:none}.sp-tfree-upgrade-header .sp-tfree-col-lg-5{width:100%;float:none;text-align:center}.sp-tfree-upgrade-header .sp-tfree-container{text-align:center}}.sp-testimonial-shortcode{background-color:rgba(82,179,217,.11);padding:8px 12px;display:inline-block;margin-left:8px}.selectable{-webkit-touch-callout:all;-webkit-user-select:all;-khtml-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all}.js #sp_tpro_meta_options.postbox .handlediv,.js #sp_tpro_meta_options.postbox .hndle,.js #sp_tpro_shortcode_options.postbox .handlediv,.js #sp_tpro_shortcode_options.postbox .hndle{display:none}.sp-testimonial-font-color .wp-picker-container,.sp-testimonial-font-load .csf--switcher{pointer-events:none;opacity:.6}#sp_tpro_shortcode_options .csf-metabox .csf-nav ul li:last-of-type a{background-color:#35b135}#sp_tpro_shortcode_options .csf-metabox .csf-nav ul li:last-of-type .csf-section-active{color:#35b135;background-color:#fff;box-shadow:0 3px 0 0 #35b135 inset}#sp_tpro_shortcode_options .csf-metabox .csf-nav ul li:last-of-type .csf-section-active .fa{color:#35b135}#sp_tpro_shortcode_options .csf-field.csf-field-upgrade{padding:0}.sp-tfree-text-center{text-align:center}div.sp-tfree-help .wp-badge{border:none;background:url(../images/icon-256.png) right no-repeat;background-size:110px 110px;box-shadow:none;height:auto}.about-wrap.sp-tfree-help [class$="-col"]{display:flex;justify-content:space-between;flex-wrap:wrap}.about-wrap [class$="-col"]{display:flex;justify-content:space-between;flex-wrap:wrap}.sp-tfree-help [class$="-col"] .col{flex:1;align-self:flex-start}.sp-tfree-help .col{margin-top:40px}.sp-tfree-help.about-wrap [class$="-col"] .col+.col{margin-left:0}.sp-tfree-help.about-wrap .help-section[class$="-col"] .col+.col{margin-left:20px}div.sp-tfree-help .headline-feature.feature-video{position:relative;margin:40px 0;padding-bottom:56.25%;width:100%;max-width:100%;height:0;text-align:center}div.sp-tfree-help .headline-feature.feature-video iframe{position:absolute;top:0;left:0;width:100%;height:100%}div.sp-tfree-help .feature-section .sp-tfree-feature{background-color:#fff;padding:20px 20px;border:1px solid #ddd}div.sp-tfree-help .feature-section .sp-tfree-feature h3{font-size:16px;margin-top:18px}div.sp-tfree-help .feature-section i.sp-tfree-font-icon{font-size:30px;display:block;color:#52b3d9}div.sp-tfree-help .sp-tfree-pro-features .feature-section span.dashicons{font-size:22px;color:#fff;background-color:#52b3d9;width:28px;height:28px;line-height:28px;border-radius:50%;margin-right:10px}div.sp-tfree-help .sp-tfree-pro-features .feature-section{margin-bottom:40px;margin-left:-2%}div.sp-tfree-help .sp-tfree-pro-features .feature-section .sp-tfree-feature h3{margin-top:0}div.sp-tfree-help .sp-tfree-pro-features .feature-section .sp-tfree-feature p{margin-bottom:0}div.sp-tfree-help .sp-tfree-pro-features .feature-section .sp-tfree-feature{box-shadow:0 0 10px 0 #ddd;margin:4px;border:0 solid}div.sp-tfree-help .sp-tfree-pro-features .feature-section.three-col .col{min-width:31.3%;max-width:31.3%;margin-top:20px;padding-left:2%}div.sp-tfree-help .sp-tfree-pro-features .sp-tfree-pro-subtitle{font-size:1.2em;margin-bottom:26px}div.sp-tfree-help .sp-tfree-upgrade-sticky-footer{position:fixed;bottom:0;background:#fff;width:calc(100% - 195px);z-index:9;margin-left:-25px;text-align:center;border:1px solid #dfdfdf;padding:15px 0;border-bottom:none}div.sp-tfree-help .sp-tfree-pro-features h2{font-size:2.5em;font-weight:400}div.sp-tfree-help .sp-tfree-upgrade-sticky-footer h3{margin-top:17px;margin-bottom:20px}div.sp-tfree-help .sp-tfree-upgrade-sticky-footer a.button{margin:0 8px}.sp-tfree-upgrade>h1{font-size:2.5em;color:#444;font-weight:300}.sp-tfree-upgrade>h1 span{font-weight:400}.sp-tfree-upgrade .about-text{margin-bottom:0}.sp-tfree-upgrade ul{margin-top:0}.about-wrap.sp-tfree-upgrade .about-text{min-height:60px}.about-wrap.sp-tfree-upgrade hr{order:0;height:0;margin:0;border-top:1px solid rgba(0,0,0,.1)}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section{margin-bottom:40px;display:flex;flex-wrap:wrap}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section .sp-tfree-feature h3{margin-top:0}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section .sp-tfree-feature p{margin-bottom:0}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section .sp-tfree-feature{box-shadow:0 0 10px 0 #ddd;margin:4px;border:0 solid}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section.three-col .col{min-width:32%;max-width:32%;margin-top:20px;display:flex;align-self:auto}.sp-tfree-upgrade .sp-tfree-pro-features .sp-tfree-pro-subtitle{font-size:1.2em;margin-bottom:26px}.sp-tfree-upgrade .sp-tfree-pro-features h2,.sp-tfree-upgrade .sp-tfree-promo-video-title{font-size:2.2em;font-weight:400}.sp-tfree-join-community h2{font-size:2em}.sp-tfree-upgrade .sp-tfree-upgrade-sticky-footer h3{margin-top:17px;margin-bottom:20px}.sp-tfree-upgrade .sp-tfree-upgrade-sticky-footer a.button{margin:0 8px}.sp-tfree-upgrade .tfree-upgrade-btn{display:inline-block;padding:0 20px 0 0}.sp-tfree-upgrade .tfree-upgrade-btn a,.sp-tfree-upgrade a.tfree-upgrade-btn{text-decoration:none;text-align:center;font-size:16px}.sp-tfree-upgrade .tfree-upgrade-btn a:focus{outline:0}.sp-tfree-upgrade a.tfree-upgrade-btn,.sp-tfree-upgrade ul li.tfree-upgrade-btn:first-child a{background:#52b3d9;padding:0 15px;line-height:46px;display:block;color:#fff;border-radius:3px;font-weight:500}.sp-tfree-upgrade ul li.tfree-upgrade-btn:last-child a{text-decoration:underline}.sp-tfree-upgrade ul li.tfree-upgrade-btn a i{margin-left:4px}.sp-tfree-upgrade ul li.tfree-upgrade-btn:last-child a i{font-size:14px}.sp-tfree-upgrade a.tfree-upgrade-btn{display:inline-block}#sp-tfree-review-notice{padding:15px 15px 15px 0;background-color:#fff;border-radius:3px;margin:20px 20px 0 0}#sp-tfree-review-notice .sp-tfree-plugin-icon{width:125px;float:left;line-height:90px;text-align:center}#sp-tfree-review-notice .sp-tfree-plugin-icon img{max-width:83px;vertical-align:middle}#sp-tfree-review-notice .sp-tfree-notice-text{overflow:hidden}#sp-tfree-review-notice .sp-tfree-notice-text h3{font-size:24px;margin:0 0 5px;font-weight:400;line-height:1}#sp-tfree-review-notice .sp-tfree-notice-text p{margin:10px 0 10px 0;font-size:13px}#sp-tfree-review-notice .sp-tfree-notice-text p.sp-tfree-review-actions{margin:10px 0 2px 0}#sp-tfree-review-notice .sp-tfree-notice-text .sp-tfree-review-actions a{text-decoration:none;margin-right:8px;color:#63a37b;display:inline-block;position:relative}#sp-tfree-review-notice .sp-tfree-notice-text .sp-tfree-review-actions a span{padding-right:2px}#sp-tfree-review-notice .sp-tfree-notice-text .sp-tfree-review-actions a.button{color:#fff}@media (max-width:960px){div.sp-tfree-help .sp-tfree-upgrade-sticky-footer{width:calc(100%)}}@media screen and (max-width:782px){div.sp-tfree-help .three-col .col{min-width:48%!important;max-width:48%!important;margin-left:0!important}}@media (max-width:500px){div.sp-tfree-help .wp-badge{background-position-x:center}div.sp-tfree-help .three-col .col{min-width:100%!important;max-width:100%!important;margin-top:1em}}
admin/{views/tp-metabox/assets → assets}/images/tpro-tiny-mce.png RENAMED
File without changes
admin/views/framework/assets/css/csf-rtl.css ADDED
@@ -0,0 +1,517 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ *
3
+ * ---------------------------------------------------------
4
+ * CODESTAR FRAMEWORK RTL CSS MAP
5
+ * ---------------------------------------------------------
6
+ *
7
+ * 01. Base
8
+ * 01. 01. Header
9
+ * 01. 02. Header Buttons
10
+ * 01. 03. Navigation
11
+ * 01. 04. Content
12
+ * 01. 05. Section
13
+ * 01. 06. Show All Options
14
+ * 01. 07. Search Input
15
+ * 01. 08. Copyright
16
+ * 01. 09. Metabox
17
+ * 02. Fields
18
+ * 02. 01. Field: typography
19
+ * 02. 02. Field: checkbox, radio
20
+ * 02. 03. Field: switcher
21
+ * 02. 04. Field: upload
22
+ * 02. 05. Field: group
23
+ * 02. 06. Field: repeater
24
+ * 02. 07. Field: help
25
+ * 02. 08. Field: icon
26
+ * 02. 09. Field: gallery
27
+ * 02. 10. Field: sorter
28
+ * 02. 11. Field: tabbed
29
+ * 02. 12. Field: media
30
+ * 02. 13. Field: notice
31
+ * 02. 14. Field: border, spacing, dimensions
32
+ * 02. 15. Field: background
33
+ * 02. 16. Field: spinner
34
+ * 02. 17. Field: slider
35
+ * 02. 18. Field: button_set
36
+ * 02. 19. Field: link_color
37
+ * 02. 20. Field: color_group
38
+ * 02. 21. Field: palette
39
+ * 03. Taxonomy
40
+ * 04. Profile
41
+ * 05. Modal
42
+ * 06. Customizer
43
+ * 07. Responsive
44
+ * 08. Others
45
+ *
46
+ * ---------------------------------------------------------
47
+ *
48
+ */
49
+ /**
50
+ * 01. Base
51
+ */
52
+ .csf {
53
+ margin-left: 20px;
54
+ margin-right: 0;
55
+ }
56
+
57
+ /**
58
+ * 01. 01. Header
59
+ */
60
+ .csf-header h1 {
61
+ float: right;
62
+ }
63
+ .csf-header fieldset {
64
+ float: left;
65
+ }
66
+
67
+ /**
68
+ * 01. 02. Header Buttons
69
+ */
70
+ .csf-buttons {
71
+ float: left;
72
+ direction: ltr;
73
+ }
74
+
75
+ .csf-header-left {
76
+ float: right;
77
+ }
78
+
79
+ .csf-header-right {
80
+ float: left;
81
+ }
82
+
83
+ /**
84
+ * 01. 03. Navigation
85
+ */
86
+ .csf-nav {
87
+ float: right;
88
+ }
89
+ .csf-nav ul {
90
+ clear: right;
91
+ }
92
+ .csf-nav ul li .csf-section-active:after {
93
+ right: auto;
94
+ left: 0;
95
+ border-left-color: #fff;
96
+ border-right-color: transparent;
97
+ }
98
+ .csf-nav ul li .csf-arrow:after {
99
+ content: "\f053";
100
+ right: auto;
101
+ left: 10px;
102
+ }
103
+ .csf-nav ul li.csf-tab-active .csf-arrow:after {
104
+ -moz-transform: rotate(-90deg);
105
+ -ms-transform: rotate(-90deg);
106
+ -webkit-transform: rotate(-90deg);
107
+ transform: rotate(-90deg);
108
+ }
109
+ .csf-nav ul ul li a {
110
+ padding-right: 25px;
111
+ padding-left: 15px;
112
+ }
113
+ .csf-nav ul ul:before {
114
+ left: auto;
115
+ right: 15px;
116
+ }
117
+ .csf-nav .fa {
118
+ margin-left: 5px;
119
+ margin-right: 0;
120
+ }
121
+
122
+ .csf-nav-background {
123
+ left: auto;
124
+ right: 0;
125
+ }
126
+
127
+ /**
128
+ * 01. 04. Content
129
+ */
130
+ .csf-content {
131
+ margin-left: 0;
132
+ margin-right: 225px;
133
+ }
134
+
135
+ /**
136
+ * 01. 05. Section
137
+ */
138
+ .csf-sections {
139
+ float: right;
140
+ }
141
+
142
+ /**
143
+ * 01. 06. Show all options
144
+ */
145
+ .csf-show-all .csf-content {
146
+ margin-right: 0;
147
+ overflow: hidden;
148
+ }
149
+
150
+ .csf-expand-all {
151
+ float: right;
152
+ right: auto;
153
+ left: 40px;
154
+ margin-right: 0;
155
+ margin-left: 4px;
156
+ }
157
+
158
+ /**
159
+ * 01. 07. Search Input
160
+ */
161
+ .csf-search {
162
+ float: right;
163
+ }
164
+ .csf-search input {
165
+ margin: 0 0 0 5px;
166
+ }
167
+
168
+ /**
169
+ * 01. 08. Copyright
170
+ */
171
+ .csf-copyright {
172
+ float: right;
173
+ }
174
+
175
+ /**
176
+ * 01. 09. Metabox
177
+ */
178
+ .csf-metabox {
179
+ margin: -6px -12px -12px -12px;
180
+ }
181
+ .csf-metabox .csf-section-title {
182
+ padding: 20px;
183
+ }
184
+ .csf-metabox .csf-section-title .fa {
185
+ margin-left: 5px;
186
+ margin-right: 0;
187
+ }
188
+
189
+ .csf-section-title .fa {
190
+ margin-left: 5px;
191
+ margin-right: 0;
192
+ }
193
+
194
+ /**
195
+ * 02. Fields
196
+ */
197
+ .csf-field .csf-title {
198
+ float: right;
199
+ }
200
+ .csf-field .csf-fieldset {
201
+ margin-left: 0;
202
+ margin-right: 30%;
203
+ }
204
+
205
+ .csf-pseudo-field {
206
+ padding: 0 0 0 5px !important;
207
+ }
208
+
209
+ /**
210
+ * 02. 01. Field: typography
211
+ */
212
+ .csf-field-typography select {
213
+ margin: 0;
214
+ width: 100%;
215
+ }
216
+ .csf-field-typography .csf--blocks-inputs .csf--blocks {
217
+ flex-direction: row-reverse;
218
+ }
219
+
220
+ /**
221
+ * 02. 02. Field: checkbox, radio
222
+ */
223
+ .csf-field-checkbox .csf--inline-list li,
224
+ .csf-field-radio .csf--inline-list li {
225
+ margin-right: 0;
226
+ margin-left: 15px;
227
+ }
228
+
229
+ /**
230
+ * 02. 03. Field: switcher
231
+ */
232
+ .csf-field-switcher .csf--switcher {
233
+ float: right;
234
+ }
235
+ .csf-field-switcher .csf--label {
236
+ float: right;
237
+ margin-left: 0;
238
+ margin-right: 5px;
239
+ }
240
+
241
+ /**
242
+ * 02. 04. Field: upload
243
+ */
244
+ .csf-field-upload .csf--remove,
245
+ .csf-field-upload .csf--buttons {
246
+ margin-left: 0;
247
+ margin-right: 5px;
248
+ }
249
+
250
+ /**
251
+ * 02. 05. Field: group
252
+ */
253
+ .csf-field-group .csf-cloneable-title {
254
+ padding: 15px 10px 15px 65px;
255
+ }
256
+ .csf-field-group .csf-cloneable-helper {
257
+ right: auto;
258
+ left: 10px;
259
+ }
260
+
261
+ /**
262
+ * 02. 06. Field: repeater
263
+ */
264
+ .csf-field-repeater .csf-repeater-helper {
265
+ border-left: 0;
266
+ border-right: 1px solid #eee;
267
+ }
268
+
269
+ /**
270
+ * 02. 07. Field: help
271
+ */
272
+ .csf-help {
273
+ right: auto;
274
+ left: 5px;
275
+ }
276
+
277
+ /**
278
+ * 02. 08. Field: icon
279
+ */
280
+ .csf-field-icon .button {
281
+ margin-right: 0;
282
+ margin-left: 5px;
283
+ }
284
+ .csf-field-icon .csf-icon-preview i {
285
+ margin-right: 0;
286
+ margin-left: 5px;
287
+ }
288
+
289
+ /**
290
+ * 02. 09. Field: gallery
291
+ */
292
+ .csf-field-gallery ul li {
293
+ margin-right: 0;
294
+ margin-left: 5px;
295
+ }
296
+ .csf-field-gallery .button {
297
+ margin-right: 0;
298
+ margin-left: 5px;
299
+ }
300
+
301
+ /**
302
+ * 02. 11. Field: tabbed
303
+ */
304
+ .csf-field-tabbed .csf-tabbed-nav .fa {
305
+ padding-right: 0;
306
+ padding-left: 5px;
307
+ }
308
+ .csf-field-tabbed .csf-tabbed-nav a {
309
+ margin-right: 0;
310
+ margin-left: 5px;
311
+ }
312
+
313
+ /**
314
+ * 02. 12. Field: media
315
+ */
316
+ .csf-field-media .button {
317
+ margin-left: 0;
318
+ margin-right: 7px;
319
+ }
320
+ .csf-field-media .hidden + .button {
321
+ margin-right: 0;
322
+ }
323
+
324
+ /**
325
+ * 02. 13. Field: notice
326
+ */
327
+ .csf-notice {
328
+ border-left: none;
329
+ border-right-style: solid;
330
+ border-right-width: 4px;
331
+ }
332
+
333
+ /**
334
+ * 02. 14. Field: border, spacing, dimensions
335
+ */
336
+ .csf-field-dimensions .csf--input,
337
+ .csf-field-spacing .csf--input,
338
+ .csf-field-border .csf--input {
339
+ float: right;
340
+ margin-right: 0;
341
+ margin-left: 15px;
342
+ }
343
+ .csf-field-dimensions .csf--left,
344
+ .csf-field-spacing .csf--left,
345
+ .csf-field-border .csf--left {
346
+ float: right;
347
+ }
348
+
349
+ /**
350
+ * 02. 15. Field: background
351
+ */
352
+ .csf-field-background .csf--block {
353
+ float: right;
354
+ }
355
+ .csf-field-background .csf--select,
356
+ .csf-field-background .csf--media {
357
+ padding-right: 0;
358
+ }
359
+ .csf-field-background .csf--title {
360
+ margin-right: 0;
361
+ margin-left: 5px;
362
+ }
363
+
364
+ /**
365
+ * 02. 16. Field: spinner
366
+ */
367
+ .csf-field-spinner .csf--spin {
368
+ float: right;
369
+ }
370
+
371
+ /**
372
+ * 02. 17. Field: slider
373
+ */
374
+ .csf-field-slider .ui-slider {
375
+ direction: ltr;
376
+ }
377
+ .csf-field-slider input[type="text"] {
378
+ margin-left: 0;
379
+ margin-right: 15px;
380
+ }
381
+ .csf-field-slider em {
382
+ padding-left: 0;
383
+ padding-right: 5px;
384
+ }
385
+
386
+ /**
387
+ * 02. 18. Field: button_set
388
+ */
389
+ .csf-field-button_set .csf--button-group {
390
+ float: right;
391
+ }
392
+
393
+ /**
394
+ * 02. 19. Field: link_color
395
+ */
396
+ .csf-field-link_color .csf--left {
397
+ float: right;
398
+ margin-right: 0;
399
+ margin-left: 10px;
400
+ }
401
+
402
+ /**
403
+ * 02. 20. Field: color_group
404
+ */
405
+ .csf-field-color_group .csf--left {
406
+ float: right;
407
+ margin-right: 0;
408
+ margin-left: 10px;
409
+ }
410
+
411
+ /**
412
+ * 02. 21. Field: palette
413
+ */
414
+ .csf-field-palette .csf--palette {
415
+ margin-right: 0;
416
+ margin-left: 10px;
417
+ }
418
+
419
+ /**
420
+ * 03. Taxonomy
421
+ */
422
+ .csf-taxonomy-add-fields .csf-fieldset {
423
+ margin-right: 0;
424
+ }
425
+ .csf-taxonomy-add-fields .csf-field > .csf-fieldset > .csf-help {
426
+ left: -5px;
427
+ right: auto;
428
+ }
429
+
430
+ .csf-taxonomy-edit-fields .csf-fieldset {
431
+ margin-left: 0;
432
+ margin-right: 225px;
433
+ }
434
+ .csf-taxonomy-edit-fields .csf-field > .csf-fieldset > .csf-help {
435
+ right: auto;
436
+ left: -5px;
437
+ }
438
+
439
+ /**
440
+ * 04. Profile
441
+ */
442
+ .csf-profile > h2 > .fa {
443
+ padding-right: 0;
444
+ padding-left: 7px;
445
+ }
446
+ .csf-profile > .csf-field > .csf-fieldset {
447
+ margin-left: 0;
448
+ margin-right: 220px;
449
+ }
450
+ .csf-profile > .csf-field > .csf-help {
451
+ left: 0;
452
+ right: auto;
453
+ }
454
+
455
+ .csf-taxonomy-edit-fields .csf-fieldset {
456
+ margin-left: 0;
457
+ margin-right: 225px;
458
+ }
459
+ .csf-taxonomy-edit-fields .csf-field > .csf-fieldset > .csf-help {
460
+ right: auto;
461
+ left: -5px;
462
+ }
463
+
464
+ /**
465
+ * 05. Modal
466
+ */
467
+ .csf-modal-content .csf-field {
468
+ padding: 15px 15px 15px 30px;
469
+ }
470
+
471
+ .csf-modal-title {
472
+ padding: 0 16px 0 36px;
473
+ }
474
+
475
+ .csf-modal-close {
476
+ right: auto;
477
+ left: 0;
478
+ }
479
+
480
+ /**
481
+ * 06. Customizer
482
+ */
483
+ .control-section .csf-field .csf-fieldset {
484
+ margin-right: 0;
485
+ }
486
+
487
+ /**
488
+ * 07. Responsive
489
+ */
490
+ @media only screen and (max-width: 1200px) {
491
+ .csf-metabox .csf-field .csf-fieldset {
492
+ margin-left: 0;
493
+ }
494
+ }
495
+ @media only screen and (max-width: 782px) {
496
+ .csf .csf-fieldset,
497
+ .csf .csf-content {
498
+ margin-right: 0;
499
+ }
500
+ }
501
+ /**
502
+ * 08. Others
503
+ */
504
+ .csf-field .csf--transparent-slider {
505
+ margin-left: 0;
506
+ margin-right: 2px;
507
+ }
508
+ .csf-field .csf--transparent-slider .ui-slider-handle {
509
+ margin: 0 -11px;
510
+ }
511
+ .csf-field .csf--transparent-offset {
512
+ background-position: center right;
513
+ }
514
+ .csf-field .csf--transparent-text {
515
+ right: auto;
516
+ left: 10px;
517
+ }
admin/views/framework/assets/css/csf-rtl.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .csf{margin-left:20px;margin-right:0}.csf-header h1{float:right}.csf-header fieldset{float:left}.csf-buttons{float:left;direction:ltr}.csf-header-left{float:right}.csf-header-right{float:left}.csf-nav{float:right}.csf-nav ul{clear:right}.csf-nav ul li .csf-section-active:after{right:auto;left:0;border-left-color:#fff;border-right-color:transparent}.csf-nav ul li .csf-arrow:after{content:"\f053";right:auto;left:10px}.csf-nav ul li.csf-tab-active .csf-arrow:after{-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.csf-nav ul ul li a{padding-right:25px;padding-left:15px}.csf-nav ul ul:before{left:auto;right:15px}.csf-nav .fa{margin-left:5px;margin-right:0}.csf-nav-background{left:auto;right:0}.csf-content{margin-left:0;margin-right:225px}.csf-sections{float:right}.csf-show-all .csf-content{margin-right:0;overflow:hidden}.csf-expand-all{float:right;right:auto;left:40px;margin-right:0;margin-left:4px}.csf-search{float:right}.csf-search input{margin:0 0 0 5px}.csf-copyright{float:right}.csf-metabox{margin:-6px -12px -12px -12px}.csf-metabox .csf-section-title{padding:20px}.csf-metabox .csf-section-title .fa{margin-left:5px;margin-right:0}.csf-section-title .fa{margin-left:5px;margin-right:0}.csf-field .csf-title{float:right}.csf-field .csf-fieldset{margin-left:0;margin-right:30%}.csf-pseudo-field{padding:0 0 0 5px!important}.csf-field-typography select{margin:0;width:100%}.csf-field-typography .csf--blocks-inputs .csf--blocks{flex-direction:row-reverse}.csf-field-checkbox .csf--inline-list li,.csf-field-radio .csf--inline-list li{margin-right:0;margin-left:15px}.csf-field-switcher .csf--switcher{float:right}.csf-field-switcher .csf--label{float:right;margin-left:0;margin-right:5px}.csf-field-upload .csf--buttons,.csf-field-upload .csf--remove{margin-left:0;margin-right:5px}.csf-field-group .csf-cloneable-title{padding:15px 10px 15px 65px}.csf-field-group .csf-cloneable-helper{right:auto;left:10px}.csf-field-repeater .csf-repeater-helper{border-left:0;border-right:1px solid #eee}.csf-help{right:auto;left:5px}.csf-field-icon .button{margin-right:0;margin-left:5px}.csf-field-icon .csf-icon-preview i{margin-right:0;margin-left:5px}.csf-field-gallery ul li{margin-right:0;margin-left:5px}.csf-field-gallery .button{margin-right:0;margin-left:5px}.csf-field-tabbed .csf-tabbed-nav .fa{padding-right:0;padding-left:5px}.csf-field-tabbed .csf-tabbed-nav a{margin-right:0;margin-left:5px}.csf-field-media .button{margin-left:0;margin-right:7px}.csf-field-media .hidden+.button{margin-right:0}.csf-notice{border-left:none;border-right-style:solid;border-right-width:4px}.csf-field-border .csf--input,.csf-field-dimensions .csf--input,.csf-field-spacing .csf--input{float:right;margin-right:0;margin-left:15px}.csf-field-border .csf--left,.csf-field-dimensions .csf--left,.csf-field-spacing .csf--left{float:right}.csf-field-background .csf--block{float:right}.csf-field-background .csf--media,.csf-field-background .csf--select{padding-right:0}.csf-field-background .csf--title{margin-right:0;margin-left:5px}.csf-field-spinner .csf--spin{float:right}.csf-field-slider .ui-slider{direction:ltr}.csf-field-slider input[type=text]{margin-left:0;margin-right:15px}.csf-field-slider em{padding-left:0;padding-right:5px}.csf-field-button_set .csf--button-group{float:right}.csf-field-link_color .csf--left{float:right;margin-right:0;margin-left:10px}.csf-field-color_group .csf--left{float:right;margin-right:0;margin-left:10px}.csf-field-palette .csf--palette{margin-right:0;margin-left:10px}.csf-taxonomy-add-fields .csf-fieldset{margin-right:0}.csf-taxonomy-add-fields .csf-field>.csf-fieldset>.csf-help{left:-5px;right:auto}.csf-taxonomy-edit-fields .csf-fieldset{margin-left:0;margin-right:225px}.csf-taxonomy-edit-fields .csf-field>.csf-fieldset>.csf-help{right:auto;left:-5px}.csf-profile>h2>.fa{padding-right:0;padding-left:7px}.csf-profile>.csf-field>.csf-fieldset{margin-left:0;margin-right:220px}.csf-profile>.csf-field>.csf-help{left:0;right:auto}.csf-taxonomy-edit-fields .csf-fieldset{margin-left:0;margin-right:225px}.csf-taxonomy-edit-fields .csf-field>.csf-fieldset>.csf-help{right:auto;left:-5px}.csf-modal-content .csf-field{padding:15px 15px 15px 30px}.csf-modal-title{padding:0 16px 0 36px}.csf-modal-close{right:auto;left:0}.control-section .csf-field .csf-fieldset{margin-right:0}@media only screen and (max-width:1200px){.csf-metabox .csf-field .csf-fieldset{margin-left:0}}@media only screen and (max-width:782px){.csf .csf-content,.csf .csf-fieldset{margin-right:0}}.csf-field .csf--transparent-slider{margin-left:0;margin-right:2px}.csf-field .csf--transparent-slider .ui-slider-handle{margin:0 -11px}.csf-field .csf--transparent-offset{background-position:center right}.csf-field .csf--transparent-text{right:auto;left:10px}
admin/views/framework/assets/css/csf.css ADDED
@@ -0,0 +1,4116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ *
3
+ * ---------------------------------------------------------
4
+ * CODESTAR FRAMEWORK CSS MAP
5
+ * ---------------------------------------------------------
6
+ *
7
+ * 01. Base
8
+ * 01. 01. Header
9
+ * 01. 02. Sticky
10
+ * 01. 03. Header Buttons
11
+ * 01. 04. Navigation
12
+ * 01. 05. Wrapper
13
+ * 01. 06. Content
14
+ * 01. 07. Section
15
+ * 01. 08. Footer
16
+ * 01. 09. Copyright
17
+ * 01. 10. Show All Options
18
+ * 01. 11. Search Input
19
+ * 01. 12. Metabox
20
+ * 01. 13. Comment Metabox
21
+ * 01. 14. Help Tooltip
22
+ * 02. Themes
23
+ * 02. 01. Theme Dark
24
+ * 02. 02. Theme Light
25
+ * 03. Fields
26
+ * 03. 01. Field
27
+ * 03. 02. Field: accordion
28
+ * 03. 03. Field: background
29
+ * 03. 04. Field: backup
30
+ * 03. 05. Field: border, spacing, dimensions
31
+ * 03. 06. Field: button_set
32
+ * 03. 07. Field: checkbox, radio
33
+ * 03. 08. Field: code_editor
34
+ * 03. 09. Field: color
35
+ * 03. 10. Field: color_group
36
+ * 03. 11. Field: fieldset
37
+ * 03. 12. Field: date
38
+ * 03. 13. Field: gallery
39
+ * 03. 14. Field: group
40
+ * 03. 15. Field: icon
41
+ * 03. 16. Field: image_select
42
+ * 03. 17. Field: link_color
43
+ * 03. 18. Field: map
44
+ * 03. 19. Field: media
45
+ * 03. 20. Field: palette
46
+ * 03. 21. Field: repeater
47
+ * 03. 22. Field: select
48
+ * 03. 23. Field: slider
49
+ * 03. 24. Field: sortable
50
+ * 03. 25. Field: sorter
51
+ * 03. 26. Field: spinner
52
+ * 03. 27. Field: switcher
53
+ * 03. 28. Field: tabbed
54
+ * 03. 29. Field: text
55
+ * 03. 30. Field: textarea
56
+ * 03. 31. Field: typography
57
+ * 03. 32. Field: upload
58
+ * 03. 33. Field: wp_editor
59
+ * 03. 34. Field: heading
60
+ * 03. 35. Field: subheading
61
+ * 03. 36. Field: submessage
62
+ * 03. 37. Field: notice
63
+ * 03. 38. Field: number
64
+ * 03. 39. Field: others
65
+ * 04. Widget
66
+ * 05. Customizer
67
+ * 06. Taxonomy
68
+ * 07. Profile
69
+ * 08. Modal
70
+ * 08. 01. Shortcode Modal
71
+ * 08. 03. Icon Modal
72
+ * 09. Helper
73
+ * 10. Welcome Page
74
+ * 11. Responsive
75
+ * 12. Others
76
+ *
77
+ * ---------------------------------------------------------
78
+ *
79
+ */
80
+ /**
81
+ * 01. Base
82
+ */
83
+ .csf {
84
+ position: relative;
85
+ }
86
+ .csf label {
87
+ padding: 0;
88
+ margin: 0;
89
+ display: inline-block;
90
+ }
91
+
92
+ .csf-ab-icon {
93
+ top: 2px;
94
+ }
95
+
96
+ #screen-meta-links + .csf-options {
97
+ margin-top: 40px;
98
+ }
99
+
100
+ .csf-options {
101
+ margin-top: 20px;
102
+ margin-right: 20px;
103
+ }
104
+
105
+ /**
106
+ * 01. 01. Header
107
+ */
108
+ .csf-header {
109
+ position: relative;
110
+ }
111
+
112
+ .csf-header-inner {
113
+ padding: 25px;
114
+ }
115
+ .csf-header-inner h1 {
116
+ float: left;
117
+ font-size: 1.5em;
118
+ line-height: 26px;
119
+ font-weight: 400;
120
+ margin: 0;
121
+ }
122
+ .csf-header-inner h1 small {
123
+ font-size: 11px;
124
+ font-weight: 500;
125
+ }
126
+
127
+ /**
128
+ * 01. 02. Sticky
129
+ */
130
+ .csf-sticky .csf-header-inner {
131
+ position: fixed;
132
+ z-index: 99999;
133
+ top: 32px;
134
+ -moz-box-shadow: 0 5px 25px rgba(0, 0, 0, 0.125);
135
+ -webkit-box-shadow: 0 5px 25px rgba(0, 0, 0, 0.125);
136
+ box-shadow: 0 5px 25px rgba(0, 0, 0, 0.125);
137
+ }
138
+
139
+ /**
140
+ * 01. 03. Header Buttons
141
+ */
142
+ .csf-buttons {
143
+ float: right;
144
+ -moz-transition: opacity 0.2s;
145
+ -o-transition: opacity 0.2s;
146
+ -webkit-transition: opacity 0.2s;
147
+ transition: opacity 0.2s;
148
+ }
149
+ .csf-buttons .button {
150
+ margin: 0 2px;
151
+ line-height: 26px;
152
+ }
153
+ .csf-buttons .button:focus {
154
+ outline: none !important;
155
+ box-shadow: none !important;
156
+ }
157
+ .csf-buttons .csf-save {
158
+ min-width: 72px;
159
+ }
160
+
161
+ .csf-header-left {
162
+ float: left;
163
+ }
164
+
165
+ .csf-header-right {
166
+ float: right;
167
+ }
168
+
169
+ /**
170
+ * 01. 04. Navigation
171
+ */
172
+ .csf-nav {
173
+ display: block;
174
+ position: relative;
175
+ z-index: 10;
176
+ float: left;
177
+ width: 225px;
178
+ }
179
+ .csf-nav ul {
180
+ clear: left;
181
+ margin: 0;
182
+ list-style-type: none;
183
+ }
184
+ .csf-nav ul li {
185
+ margin-bottom: 0;
186
+ }
187
+ .csf-nav ul li a {
188
+ font-size: 13px;
189
+ position: relative;
190
+ display: block;
191
+ padding: 14px 12px;
192
+ text-decoration: none;
193
+ -moz-transition: all 0.3s ease;
194
+ -o-transition: all 0.3s ease;
195
+ -webkit-transition: all 0.3s ease;
196
+ transition: all 0.3s ease;
197
+ }
198
+ .csf-nav ul li a:focus {
199
+ outline: none;
200
+ -moz-box-shadow: none;
201
+ -webkit-box-shadow: none;
202
+ box-shadow: none;
203
+ }
204
+ .csf-nav ul li .csf-section-active:after {
205
+ content: " ";
206
+ position: absolute;
207
+ right: 0;
208
+ top: 50%;
209
+ height: 0;
210
+ width: 0;
211
+ pointer-events: none;
212
+ border: solid transparent;
213
+ border-right-color: #fff;
214
+ border-width: 4px;
215
+ margin-top: -4px;
216
+ }
217
+ .csf-nav ul li .csf-arrow:after {
218
+ content: "\f054";
219
+ display: inline-block;
220
+ font-family: "FontAwesome";
221
+ font-size: 9px;
222
+ line-height: 1;
223
+ position: absolute;
224
+ right: 10px;
225
+ top: 50%;
226
+ margin-top: -4px;
227
+ -moz-transform: rotate(0);
228
+ -ms-transform: rotate(0);
229
+ -webkit-transform: rotate(0);
230
+ transform: rotate(0);
231
+ }
232
+ .csf-nav ul li.csf-tab-active .csf-arrow:after {
233
+ -moz-transform: rotate(90deg);
234
+ -ms-transform: rotate(90deg);
235
+ -webkit-transform: rotate(90deg);
236
+ transform: rotate(90deg);
237
+ }
238
+ .csf-nav ul li.csf-tab-active ul {
239
+ display: block;
240
+ }
241
+ .csf-nav ul ul {
242
+ display: none;
243
+ position: relative;
244
+ }
245
+ .csf-nav ul ul li a {
246
+ font-size: 12px;
247
+ padding: 12px 14px 12px 24px;
248
+ }
249
+ .csf-nav .fa {
250
+ width: 20px;
251
+ margin-right: 5px;
252
+ font-size: 14px;
253
+ text-align: center;
254
+ }
255
+ .csf-nav .csf-label-error {
256
+ margin-left: 4px;
257
+ vertical-align: top;
258
+ }
259
+
260
+ .csf-nav-background {
261
+ position: absolute;
262
+ top: 0;
263
+ left: 0;
264
+ bottom: 0;
265
+ z-index: 9;
266
+ width: 225px;
267
+ }
268
+
269
+ /**
270
+ * 01. 05. Wrapper
271
+ */
272
+ .csf-wrapper {
273
+ position: relative;
274
+ }
275
+
276
+ /**
277
+ * 01. 06. Content
278
+ */
279
+ .csf-content {
280
+ position: relative;
281
+ margin-left: 225px;
282
+ background-color: #fff;
283
+ -moz-transition: opacity 0.2s;
284
+ -o-transition: opacity 0.2s;
285
+ -webkit-transition: opacity 0.2s;
286
+ transition: opacity 0.2s;
287
+ }
288
+
289
+ /**
290
+ * 01. 07. Section
291
+ */
292
+ .csf-sections {
293
+ float: left;
294
+ width: 100%;
295
+ }
296
+
297
+ .csf-section {
298
+ display: none;
299
+ }
300
+
301
+ .csf-section-title {
302
+ display: none;
303
+ padding: 20px 30px;
304
+ background-color: #f5f5f5;
305
+ border-top: 1px solid #eee;
306
+ border-bottom: 1px solid #eee;
307
+ }
308
+ .csf-section-title h3 {
309
+ margin: 0;
310
+ padding: 0;
311
+ font-size: 13px;
312
+ font-weight: bold;
313
+ text-transform: uppercase;
314
+ }
315
+ .csf-section-title .fa {
316
+ margin-right: 5px;
317
+ }
318
+
319
+ /**
320
+ * 01. 08. Footer
321
+ */
322
+ .csf-footer {
323
+ padding: 20px;
324
+ font-size: 11px;
325
+ }
326
+
327
+ /**
328
+ * 01. 09. Copyright
329
+ */
330
+ .csf-copyright {
331
+ float: left;
332
+ margin-top: 5px;
333
+ }
334
+
335
+ /**
336
+ * 01. 10. Show All Options
337
+ */
338
+ .csf-search-all .csf-nav-background,
339
+ .csf-search-all .csf-nav,
340
+ .csf-show-all .csf-nav-background,
341
+ .csf-show-all .csf-nav {
342
+ display: none;
343
+ }
344
+ .csf-search-all .csf-content,
345
+ .csf-show-all .csf-content {
346
+ margin-left: 0;
347
+ }
348
+ .csf-search-all .csf-section-title,
349
+ .csf-search-all .csf-section,
350
+ .csf-show-all .csf-section-title,
351
+ .csf-show-all .csf-section {
352
+ display: block !important;
353
+ }
354
+
355
+ .csf-search-all .csf-section-title {
356
+ display: none !important;
357
+ }
358
+
359
+ .csf-expand-all {
360
+ float: left;
361
+ padding: 0 8px;
362
+ margin-right: 4px;
363
+ z-index: 1;
364
+ font-size: 14px;
365
+ line-height: 28px;
366
+ cursor: pointer;
367
+ user-select: none;
368
+ -moz-border-radius: 2px;
369
+ -webkit-border-radius: 2px;
370
+ border-radius: 2px;
371
+ -moz-transition: all 0.2s;
372
+ -o-transition: all 0.2s;
373
+ -webkit-transition: all 0.2s;
374
+ transition: all 0.2s;
375
+ }
376
+ .csf-expand-all span {
377
+ font-size: 11px;
378
+ vertical-align: middle;
379
+ }
380
+
381
+ /**
382
+ * 01. 11. Search Input
383
+ */
384
+ .csf-search {
385
+ float: left;
386
+ }
387
+ .csf-search input {
388
+ margin: 0 2px 0 0;
389
+ border: none;
390
+ font-size: 12px;
391
+ line-height: 28px;
392
+ min-height: 28px;
393
+ text-align: inherit;
394
+ padding: 0 10px;
395
+ -moz-border-radius: 2px;
396
+ -webkit-border-radius: 2px;
397
+ border-radius: 2px;
398
+ -moz-box-shadow: none;
399
+ -webkit-box-shadow: none;
400
+ box-shadow: none;
401
+ }
402
+ .csf-search input:focus {
403
+ -moz-box-shadow: none;
404
+ -webkit-box-shadow: none;
405
+ box-shadow: none;
406
+ }
407
+
408
+ .csf-saving .csf-buttons,
409
+ .csf-saving .csf-content {
410
+ cursor: default;
411
+ pointer-events: none;
412
+ opacity: 0.5;
413
+ }
414
+
415
+ /**
416
+ * 01. 12. Metabox
417
+ */
418
+ .csf-metabox {
419
+ margin: -6px -12px -12px -12px;
420
+ }
421
+ .csf-metabox .csf-section-title {
422
+ padding: 20px;
423
+ }
424
+
425
+ .block-editor-page .csf-metabox {
426
+ margin: -6px -14px -12px -14px;
427
+ }
428
+
429
+ .csf-restore-wrapper {
430
+ text-align: right;
431
+ padding: 10px;
432
+ border-top: 1px solid #eee;
433
+ }
434
+ .csf-restore-wrapper .csf-button-cancel,
435
+ .csf-restore-wrapper input {
436
+ display: none;
437
+ }
438
+ .csf-restore-wrapper span {
439
+ -webkit-user-select: none;
440
+ user-select: none;
441
+ }
442
+ .csf-restore-wrapper input:checked ~ .csf-button-restore {
443
+ display: none;
444
+ }
445
+ .csf-restore-wrapper input:checked ~ .csf-button-cancel {
446
+ display: inline-block;
447
+ }
448
+
449
+ #side-sortables .csf-section-title {
450
+ padding: 12px;
451
+ }
452
+ #side-sortables .csf-field {
453
+ padding: 12px;
454
+ }
455
+ #side-sortables .csf-field .csf-title {
456
+ float: none;
457
+ width: 100%;
458
+ margin-bottom: 10px;
459
+ }
460
+ #side-sortables .csf-field .csf-fieldset {
461
+ margin-left: 0;
462
+ }
463
+ #side-sortables .csf-notice {
464
+ padding: 12px;
465
+ }
466
+
467
+ /**
468
+ * 01. 13. Comment Metabox
469
+ */
470
+ .csf-comment-metabox {
471
+ margin: -6px -12px -12px -12px;
472
+ }
473
+ .csf-comment-metabox .csf-section-title {
474
+ padding: 20px;
475
+ }
476
+
477
+ /**
478
+ * 01. 14. Help Tooltip
479
+ */
480
+ .csf-tooltip {
481
+ position: absolute;
482
+ z-index: 5000001;
483
+ font-size: 12px;
484
+ line-height: 1.4;
485
+ text-align: center;
486
+ text-decoration: none;
487
+ padding: 6px 12px;
488
+ max-width: 200px;
489
+ color: #fff;
490
+ background-color: #000;
491
+ background-color: rgba(0, 0, 0, 0.85);
492
+ -moz-border-radius: 4px;
493
+ -webkit-border-radius: 4px;
494
+ border-radius: 4px;
495
+ }
496
+
497
+ /**
498
+ * 02. Themes
499
+ */
500
+ /**
501
+ * 02. 01. Theme Dark
502
+ */
503
+ .csf-theme-dark .csf-header-inner {
504
+ background-color: #050505;
505
+ }
506
+ .csf-theme-dark .csf-header-inner h1 {
507
+ color: #fff;
508
+ }
509
+ .csf-theme-dark .csf-header-inner h1 small {
510
+ color: #555;
511
+ }
512
+ .csf-theme-dark .csf-expand-all {
513
+ color: #999;
514
+ background-color: #222;
515
+ }
516
+ .csf-theme-dark .csf-expand-all:hover {
517
+ color: #fff;
518
+ background-color: #333;
519
+ }
520
+ .csf-theme-dark .csf-search input {
521
+ color: #fff;
522
+ background-color: #222;
523
+ }
524
+ .csf-theme-dark .csf-search:focus {
525
+ background-color: #444;
526
+ }
527
+ .csf-theme-dark .csf-search::-webkit-input-placeholder {
528
+ color: #666;
529
+ }
530
+ .csf-theme-dark .csf-nav ul li a {
531
+ color: #999;
532
+ background-color: #222;
533
+ border-bottom: 1px solid #2f2f2f;
534
+ }
535
+ .csf-theme-dark .csf-nav ul li a:hover {
536
+ color: #fff;
537
+ }
538
+ .csf-theme-dark .csf-nav ul li .csf-section-active {
539
+ color: #fff;
540
+ background-color: #111;
541
+ }
542
+ .csf-theme-dark .csf-nav ul ul li a {
543
+ background-color: #191919;
544
+ border-bottom: 1px solid #2f2f2f;
545
+ }
546
+ .csf-theme-dark .csf-nav ul ul li .csf-section-active {
547
+ background-color: #101010;
548
+ }
549
+ .csf-theme-dark .csf-nav ul ul:before {
550
+ background-color: rgba(34, 34, 34, 0.75);
551
+ }
552
+ .csf-theme-dark .csf-nav > ul > li:last-child > a {
553
+ border-bottom: none;
554
+ }
555
+ .csf-theme-dark .csf-nav-background {
556
+ background-color: #222;
557
+ }
558
+ .csf-theme-dark .csf-footer {
559
+ color: #555;
560
+ background-color: #050505;
561
+ }
562
+
563
+ /**
564
+ * 02. 02. Theme Light
565
+ */
566
+ .csf-theme-light .csf-container {
567
+ border: 1px solid #e5e5e5;
568
+ -moz-box-shadow: 0 0 15px rgba(0, 0, 0, 0.04);
569
+ -webkit-box-shadow: 0 0 15px rgba(0, 0, 0, 0.04);
570
+ box-shadow: 0 0 15px rgba(0, 0, 0, 0.04);
571
+ }
572
+ .csf-theme-light .csf-header-inner {
573
+ border-bottom: 1px solid #e5e5e5;
574
+ background-color: #f5f5f5;
575
+ background: linear-gradient(#fefefe, #f5f5f5);
576
+ }
577
+ .csf-theme-light .csf-header-inner h1 small {
578
+ color: #999;
579
+ }
580
+ .csf-theme-light .csf-expand-all {
581
+ color: #999;
582
+ background-color: #fff;
583
+ -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
584
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
585
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
586
+ }
587
+ .csf-theme-light .csf-expand-all:hover {
588
+ color: #555;
589
+ }
590
+ .csf-theme-light .csf-search input {
591
+ color: #555;
592
+ background-color: #fff;
593
+ -moz-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05);
594
+ -webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05);
595
+ box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05);
596
+ }
597
+ .csf-theme-light .csf-search input::-webkit-input-placeholder {
598
+ color: #bbb;
599
+ }
600
+ .csf-theme-light .csf-nav ul li a {
601
+ color: #666;
602
+ background-color: #f5f5f5;
603
+ border-bottom: 1px solid #e5e5e5;
604
+ }
605
+ .csf-theme-light .csf-nav ul li a:hover {
606
+ color: #222;
607
+ }
608
+ .csf-theme-light .csf-nav ul li .csf-section-active {
609
+ color: #222;
610
+ background-color: #fff;
611
+ }
612
+ .csf-theme-light .csf-nav ul li .csf-section-active:after {
613
+ display: none;
614
+ }
615
+ .csf-theme-light .csf-nav ul ul li a {
616
+ background-color: #eee;
617
+ border-bottom: 1px solid #e5e5e5;
618
+ }
619
+ .csf-theme-light .csf-nav > ul > li:last-child > a {
620
+ border-bottom: none;
621
+ }
622
+ .csf-theme-light .csf-nav-background {
623
+ background-color: #f5f5f5;
624
+ }
625
+ .csf-theme-light .csf-footer {
626
+ color: #555;
627
+ border-top: 1px solid #e5e5e5;
628
+ background-color: #f5f5f5;
629
+ background: linear-gradient(#fafafa, #f5f5f5);
630
+ }
631
+
632
+ /**
633
+ * 03. Fields
634
+ */
635
+ .csf-field {
636
+ position: relative;
637
+ padding: 30px;
638
+ }
639
+ .csf-field + .csf-field:not(.hidden) {
640
+ border-top: 1px solid #eee;
641
+ }
642
+ .csf-field p:first-child {
643
+ margin-top: 0;
644
+ }
645
+ .csf-field p:last-child {
646
+ margin-bottom: 0;
647
+ }
648
+ .csf-field:after, .csf-field:before {
649
+ content: " ";
650
+ display: table;
651
+ }
652
+ .csf-field:after {
653
+ clear: both;
654
+ }
655
+ .csf-field h4 {
656
+ margin-top: 0;
657
+ }
658
+ .csf-field .csf-title {
659
+ position: relative;
660
+ width: 20%;
661
+ float: left;
662
+ }
663
+ .csf-field .csf-title h4 {
664
+ margin: 0;
665
+ color: #23282d;
666
+ }
667
+ .csf-field .csf-fieldset {
668
+ margin-left: 25%;
669
+ }
670
+
671
+ .csf-pseudo-field {
672
+ padding: 0 5px 0 0 !important;
673
+ display: inline-block;
674
+ }
675
+ .csf-pseudo-field + .csf-pseudo-field {
676
+ border: 0;
677
+ }
678
+ .csf-pseudo-field pre {
679
+ display: none;
680
+ }
681
+
682
+ /**
683
+ * 03. 02. Field: accordion
684
+ */
685
+ .csf-field-accordion .csf-accordion-item {
686
+ position: relative;
687
+ margin-bottom: 5px;
688
+ }
689
+ .csf-field-accordion .csf-accordion-item h4 {
690
+ font-size: 1em;
691
+ }
692
+ .csf-field-accordion .csf-accordion-title {
693
+ display: block;
694
+ cursor: pointer;
695
+ position: relative;
696
+ margin: 0;
697
+ padding: 15px;
698
+ min-height: 0;
699
+ font-size: 100%;
700
+ user-select: none;
701
+ border: 1px solid #ccd0d4;
702
+ background-color: #fafafa;
703
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
704
+ transition: border-color .15s;
705
+ }
706
+ .csf-field-accordion .csf-accordion-title:active, .csf-field-accordion .csf-accordion-title:hover, .csf-field-accordion .csf-accordion-title:focus {
707
+ outline: none;
708
+ border-color: #999;
709
+ }
710
+ .csf-field-accordion .csf-accordion-icon {
711
+ width: 14px;
712
+ text-align: center;
713
+ }
714
+ .csf-field-accordion .csf--icon {
715
+ width: 20px;
716
+ text-align: center;
717
+ }
718
+ .csf-field-accordion .csf-accordion-content {
719
+ display: none;
720
+ padding: 0;
721
+ border: 1px solid #ccd0d4;
722
+ border-top: none;
723
+ background-color: #fff;
724
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
725
+ }
726
+ .csf-field-accordion .csf-accordion-content > .csf-field {
727
+ padding: 15px;
728
+ }
729
+ .csf-field-accordion .csf-accordion-open {
730
+ display: block;
731
+ }
732
+
733
+ /**
734
+ * 03. 03. Field: background
735
+ */
736
+ .csf-field-background .csf-field {
737
+ border: 0 !important;
738
+ padding: 0;
739
+ margin-bottom: 6px;
740
+ margin-right: 6px;
741
+ }
742
+ .csf-field-background .csf--title {
743
+ color: #777;
744
+ font-size: 12px;
745
+ }
746
+ .csf-field-background .csf--background-colors {
747
+ display: flex;
748
+ }
749
+ .csf-field-background .csf--background-attributes {
750
+ display: flex;
751
+ flex-wrap: wrap;
752
+ }
753
+ .csf-field-background .csf--background-attributes select {
754
+ min-width: 100%;
755
+ margin: 0;
756
+ }
757
+ .csf-field-background .csf--background-attributes .csf-field {
758
+ flex: 1;
759
+ }
760
+ .csf-field-background .csf--attributes-hidden {
761
+ display: none;
762
+ }
763
+ .csf-field-background .wp-color-result.button {
764
+ margin-bottom: 0;
765
+ }
766
+
767
+ /**
768
+ * 03. 04. Field: backup
769
+ */
770
+ .csf-field-backup textarea {
771
+ width: 100%;
772
+ min-height: 200px;
773
+ margin-bottom: 5px;
774
+ }
775
+ .csf-field-backup small {
776
+ display: inline-block;
777
+ margin: 5px;
778
+ }
779
+ .csf-field-backup hr {
780
+ margin: 20px 0;
781
+ border: none;
782
+ border-bottom: 1px solid #e5e5e5;
783
+ }
784
+
785
+ /**
786
+ * 03. 05. Field: border, spacing, dimensions
787
+ */
788
+ .csf-field-border .csf--inputs,
789
+ .csf-field-spacing .csf--inputs,
790
+ .csf-field-dimensions .csf--inputs {
791
+ float: left;
792
+ display: flex;
793
+ flex-wrap: wrap;
794
+ }
795
+ .csf-field-border .csf--input,
796
+ .csf-field-spacing .csf--input,
797
+ .csf-field-dimensions .csf--input {
798
+ display: flex;
799
+ padding-right: 6px;
800
+ padding-bottom: 4px;
801
+ box-sizing: border-box;
802
+ }
803
+ .csf-field-border .csf--input select,
804
+ .csf-field-spacing .csf--input select,
805
+ .csf-field-dimensions .csf--input select {
806
+ margin: 0;
807
+ }
808
+ .csf-field-border .csf--input input,
809
+ .csf-field-spacing .csf--input input,
810
+ .csf-field-dimensions .csf--input input {
811
+ position: relative;
812
+ z-index: 1;
813
+ margin: 0;
814
+ width: 65px;
815
+ max-width: 100%;
816
+ text-align: center;
817
+ }
818
+ .csf-field-border .csf--color,
819
+ .csf-field-spacing .csf--color,
820
+ .csf-field-dimensions .csf--color {
821
+ float: left;
822
+ }
823
+ .csf-field-border .csf--label,
824
+ .csf-field-spacing .csf--label,
825
+ .csf-field-dimensions .csf--label {
826
+ display: flex;
827
+ flex-direction: column;
828
+ justify-content: center;
829
+ user-select: none;
830
+ min-width: 20px;
831
+ max-width: 100%;
832
+ padding: 0 4px;
833
+ font-size: 12px;
834
+ text-align: center;
835
+ color: #555;
836
+ border: 1px solid #7B776C;
837
+ background-color: #f5f5f5;
838
+ }
839
+ .csf-field-border .csf--icon,
840
+ .csf-field-spacing .csf--icon,
841
+ .csf-field-dimensions .csf--icon {
842
+ border-right: 0;
843
+ border-radius: 4px 0 0 4px;
844
+ }
845
+ .csf-field-border .csf--icon + input,
846
+ .csf-field-spacing .csf--icon + input,
847
+ .csf-field-dimensions .csf--icon + input {
848
+ border-top-left-radius: 0;
849
+ border-bottom-left-radius: 0;
850
+ }
851
+ .csf-field-border .csf--unit,
852
+ .csf-field-spacing .csf--unit,
853
+ .csf-field-dimensions .csf--unit {
854
+ border-left: 0;
855
+ border-radius: 0 4px 4px 0;
856
+ }
857
+ .csf-field-border .csf--is-unit,
858
+ .csf-field-spacing .csf--is-unit,
859
+ .csf-field-dimensions .csf--is-unit {
860
+ border-top-right-radius: 0;
861
+ border-bottom-right-radius: 0;
862
+ }
863
+
864
+ /**
865
+ * 03. 06. Field: button_set
866
+ */
867
+ .csf-field-button_set .csf--buttons {
868
+ display: inline-block;
869
+ }
870
+ .csf-field-button_set .csf--button {
871
+ position: relative;
872
+ z-index: 1;
873
+ float: left;
874
+ cursor: pointer;
875
+ padding: 7px 14px;
876
+ min-width: 40px;
877
+ text-align: center;
878
+ color: #555;
879
+ border: 1px solid #cccccc;
880
+ background-color: #f7f7f7;
881
+ user-select: none;
882
+ -webkit-user-select: none;
883
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
884
+ }
885
+ .csf-field-button_set .csf--button:first-child {
886
+ border-radius: 4px 0 0 4px;
887
+ }
888
+ .csf-field-button_set .csf--button:last-child {
889
+ border-radius: 0 4px 4px 0;
890
+ }
891
+ .csf-field-button_set .csf--button:not(:first-child) {
892
+ margin-left: -1px;
893
+ }
894
+ .csf-field-button_set .csf--button:hover {
895
+ background-color: #eee;
896
+ }
897
+ .csf-field-button_set .csf--active:hover,
898
+ .csf-field-button_set .csf--active {
899
+ z-index: 2;
900
+ color: #fff;
901
+ border-color: #006799;
902
+ background-color: #0085ba;
903
+ }
904
+ .csf-field-button_set input {
905
+ display: none;
906
+ }
907
+
908
+ /**
909
+ * 03. 07. Field: checkbox, radio
910
+ */
911
+ .csf-field-checkbox ul,
912
+ .csf-field-radio ul {
913
+ margin: 0;
914
+ padding: 0 1px;
915
+ list-style-type: none;
916
+ overflow-y: auto;
917
+ max-height: 305px;
918
+ }
919
+ .csf-field-checkbox ul ul,
920
+ .csf-field-radio ul ul {
921
+ max-height: none;
922
+ }
923
+ .csf-field-checkbox .csf--inline-list li,
924
+ .csf-field-radio .csf--inline-list li {
925
+ display: inline-block;
926
+ margin-right: 15px;
927
+ }
928
+ .csf-field-checkbox input[type="radio"]:checked:before,
929
+ .csf-field-radio input[type="radio"]:checked:before {
930
+ line-height: 10px;
931
+ }
932
+ .csf-field-checkbox .csf-checker,
933
+ .csf-field-radio .csf-checker {
934
+ cursor: pointer;
935
+ }
936
+
937
+ /**
938
+ * 03. 08. Field: code_editor
939
+ */
940
+ .csf-field-code_editor .CodeMirror {
941
+ width: 100%;
942
+ height: 400px;
943
+ }
944
+ .csf-field-code_editor .cm-s-default {
945
+ border: 1px solid #ccd0d4;
946
+ }
947
+ .csf-field-code_editor textarea {
948
+ width: 100%;
949
+ height: 400px;
950
+ }
951
+
952
+ /**
953
+ * 03. 09. Field: color
954
+ */
955
+ .csf-field-color > input {
956
+ opacity: 0.75;
957
+ width: 115px;
958
+ max-width: 100%;
959
+ }
960
+ .csf-field-color .button.wp-picker-clear {
961
+ margin-left: 6px;
962
+ padding: 2px 8px;
963
+ }
964
+
965
+ /**
966
+ * 03. 10. Field: color_group
967
+ */
968
+ .csf-field-color_group .csf--left {
969
+ float: left;
970
+ margin-right: 10px;
971
+ margin-bottom: 5px;
972
+ }
973
+ .csf-field-color_group .csf--title {
974
+ color: #999;
975
+ margin-bottom: 5px;
976
+ }
977
+
978
+ /**
979
+ * 03. 11. Field: fieldset
980
+ */
981
+ .csf-field-fieldset .csf-fieldset-content {
982
+ border: 1px solid #ccd0d4;
983
+ background-color: #fff;
984
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
985
+ }
986
+ .csf-field-fieldset .csf-fieldset-content > .csf-field {
987
+ padding: 15px;
988
+ }
989
+ .csf-field-fieldset .csf-field-subheading {
990
+ font-size: 13px;
991
+ }
992
+
993
+ /**
994
+ * 03. 12. Field: date
995
+ */
996
+ .csf-field-date input {
997
+ margin: 0;
998
+ }
999
+ .csf-field-date .csf--to {
1000
+ margin-left: 7px;
1001
+ }
1002
+
1003
+ .csf-datepicker-wrapper {
1004
+ margin-top: 5px;
1005
+ width: auto;
1006
+ background-color: #fff;
1007
+ z-index: 9999999 !important;
1008
+ -moz-box-shadow: 0 0 30px rgba(0, 0, 0, 0.15);
1009
+ -webkit-box-shadow: 0 0 30px rgba(0, 0, 0, 0.15);
1010
+ box-shadow: 0 0 30px rgba(0, 0, 0, 0.15);
1011
+ }
1012
+ .csf-datepicker-wrapper * {
1013
+ float: none;
1014
+ margin: 0;
1015
+ padding: 0;
1016
+ font-family: inherit;
1017
+ font-weight: normal;
1018
+ font-style: normal;
1019
+ text-decoration: none;
1020
+ border: 0;
1021
+ border-radius: 0;
1022
+ box-shadow: none;
1023
+ }
1024
+ .csf-datepicker-wrapper .ui-widget-header,
1025
+ .csf-datepicker-wrapper .ui-datepicker-header {
1026
+ color: #fff;
1027
+ background: #00a0d2;
1028
+ }
1029
+ .csf-datepicker-wrapper .ui-datepicker-header .ui-state-hover {
1030
+ cursor: pointer;
1031
+ }
1032
+ .csf-datepicker-wrapper .ui-datepicker-title {
1033
+ font-size: 14px;
1034
+ line-height: 40px;
1035
+ text-align: center;
1036
+ }
1037
+ .csf-datepicker-wrapper .ui-datepicker-prev,
1038
+ .csf-datepicker-wrapper .ui-datepicker-next {
1039
+ position: static;
1040
+ top: auto;
1041
+ left: auto;
1042
+ right: auto;
1043
+ font-family: "FontAwesome";
1044
+ font-size: 12px;
1045
+ text-align: center;
1046
+ width: 41px;
1047
+ height: 40px;
1048
+ line-height: 40px;
1049
+ color: #fff;
1050
+ background-color: rgba(255, 255, 255, 0.1);
1051
+ text-rendering: auto;
1052
+ -webkit-font-smoothing: antialiased;
1053
+ -moz-osx-font-smoothing: grayscale;
1054
+ }
1055
+ .csf-datepicker-wrapper .ui-datepicker-next span,
1056
+ .csf-datepicker-wrapper .ui-datepicker-prev span {
1057
+ display: none;
1058
+ }
1059
+ .csf-datepicker-wrapper .ui-datepicker-prev {
1060
+ float: left;
1061
+ }
1062
+ .csf-datepicker-wrapper .ui-datepicker-next {
1063
+ float: right;
1064
+ }
1065
+ .csf-datepicker-wrapper .ui-datepicker-prev:before {
1066
+ content: '\f053';
1067
+ }
1068
+ .csf-datepicker-wrapper .ui-datepicker-next:before {
1069
+ content: '\f054';
1070
+ }
1071
+ .csf-datepicker-wrapper .ui-datepicker-prev-hover,
1072
+ .csf-datepicker-wrapper .ui-datepicker-next-hover {
1073
+ opacity: 0.75;
1074
+ }
1075
+ .csf-datepicker-wrapper tbody .ui-datepicker-week-col {
1076
+ background-color: #f7f7f7;
1077
+ }
1078
+ .csf-datepicker-wrapper .ui-datepicker-buttonpane {
1079
+ padding: 10px;
1080
+ text-align: center;
1081
+ background-color: #f7f7f7;
1082
+ }
1083
+ .csf-datepicker-wrapper .ui-datepicker-buttonpane button {
1084
+ cursor: pointer;
1085
+ margin: 0 5px;
1086
+ padding: 7px 14px;
1087
+ border: 1px solid #eee;
1088
+ background-color: #fff;
1089
+ }
1090
+ .csf-datepicker-wrapper select {
1091
+ margin: 0 4px;
1092
+ }
1093
+ .csf-datepicker-wrapper select option {
1094
+ color: #555;
1095
+ }
1096
+ .csf-datepicker-wrapper table {
1097
+ font-size: 13px;
1098
+ border-collapse: collapse;
1099
+ width: 100%;
1100
+ }
1101
+ .csf-datepicker-wrapper thead {
1102
+ color: #fff;
1103
+ background: #32373c;
1104
+ }
1105
+ .csf-datepicker-wrapper th {
1106
+ text-align: center;
1107
+ padding: 7px;
1108
+ border: 1px solid #444;
1109
+ }
1110
+ .csf-datepicker-wrapper td {
1111
+ text-align: center;
1112
+ border: 1px solid #f4f4f4;
1113
+ }
1114
+ .csf-datepicker-wrapper td.ui-datepicker-other-month {
1115
+ border: transparent;
1116
+ }
1117
+ .csf-datepicker-wrapper td .ui-state-default {
1118
+ color: #555;
1119
+ width: auto;
1120
+ display: block;
1121
+ padding: 6px 12px;
1122
+ }
1123
+ .csf-datepicker-wrapper td .ui-state-active,
1124
+ .csf-datepicker-wrapper td .ui-state-hover {
1125
+ color: #fff;
1126
+ background-color: #0073aa;
1127
+ }
1128
+ .csf-datepicker-wrapper td.ui-state-disabled .ui-state-default {
1129
+ opacity: 0.5;
1130
+ }
1131
+
1132
+ /**
1133
+ * 03. 13. Field: gallery
1134
+ */
1135
+ .csf-field-gallery input {
1136
+ display: none;
1137
+ }
1138
+ .csf-field-gallery ul {
1139
+ margin: 0;
1140
+ padding: 0;
1141
+ list-style-type: none;
1142
+ }
1143
+ .csf-field-gallery ul li {
1144
+ display: inline-block;
1145
+ position: relative;
1146
+ padding: 4px;
1147
+ margin: 0 5px 10px 0;
1148
+ border: 1px solid #ccc;
1149
+ background-color: #f9f9f9;
1150
+ -moz-border-radius: 2px;
1151
+ -webkit-border-radius: 2px;
1152
+ border-radius: 2px;
1153
+ -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
1154
+ -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
1155
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
1156
+ }
1157
+ .csf-field-gallery ul li img {
1158
+ max-height: 60px;
1159
+ display: inline-block;
1160
+ vertical-align: middle;
1161
+ }
1162
+ .csf-field-gallery .button {
1163
+ margin-right: 5px;
1164
+ margin-bottom: 5px;
1165
+ }
1166
+
1167
+ /**
1168
+ * 03. 14. Field: group
1169
+ */
1170
+ .csf-field-group .csf-cloneable-hidden {
1171
+ display: none !important;
1172
+ }
1173
+ .csf-field-group .csf-cloneable-wrapper {
1174
+ position: relative;
1175
+ }
1176
+ .csf-field-group .csf-cloneable-item {
1177
+ display: none;
1178
+ position: relative;
1179
+ margin-bottom: 5px;
1180
+ }
1181
+ .csf-field-group .csf-cloneable-item h4 {
1182
+ font-size: 1em;
1183
+ }
1184
+ .csf-field-group .ui-accordion .csf-cloneable-item {
1185
+ display: block;
1186
+ }
1187
+ .csf-field-group .csf-cloneable-content {
1188
+ border: 1px solid #ccd0d4;
1189
+ background-color: #fff;
1190
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
1191
+ }
1192
+ .csf-field-group .csf-cloneable-content > .csf-field {
1193
+ padding: 15px;
1194
+ }
1195
+ .csf-field-group .csf-cloneable-title {
1196
+ display: block;
1197
+ cursor: pointer;
1198
+ position: relative;
1199
+ user-select: none;
1200
+ margin: 0;
1201
+ padding: 15px 65px 15px 10px;
1202
+ min-height: 0;
1203
+ font-size: 100%;
1204
+ border: 1px solid #ccd0d4;
1205
+ background-color: #fafafa;
1206
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
1207
+ transition: border-color .15s;
1208
+ }
1209
+ .csf-field-group .csf-cloneable-title:active, .csf-field-group .csf-cloneable-title:hover, .csf-field-group .csf-cloneable-title:focus {
1210
+ border-color: #999;
1211
+ outline: none;
1212
+ }
1213
+ .csf-field-group .csf-cloneable-helper {
1214
+ position: absolute;
1215
+ top: 12px;
1216
+ right: 10px;
1217
+ z-index: 1;
1218
+ font-size: 14px;
1219
+ line-height: 1em;
1220
+ }
1221
+ .csf-field-group .csf-cloneable-helper i {
1222
+ display: inline-block;
1223
+ cursor: pointer;
1224
+ padding: 5px;
1225
+ color: #999;
1226
+ }
1227
+ .csf-field-group .csf-cloneable-helper i:hover {
1228
+ color: #555;
1229
+ }
1230
+ .csf-field-group .csf-cloneable-content {
1231
+ padding: 0;
1232
+ border-top: 0;
1233
+ }
1234
+ .csf-field-group .csf-cloneable-title-prefix,
1235
+ .csf-field-group .csf-cloneable-title-number {
1236
+ margin-right: 5px;
1237
+ }
1238
+ .csf-field-group .csf-cloneable-alert {
1239
+ display: none;
1240
+ margin-bottom: 5px;
1241
+ padding: 10px 20px;
1242
+ color: #a94442;
1243
+ border: 1px solid #ebccd1;
1244
+ background-color: #f2dede;
1245
+ }
1246
+ .csf-field-group .widget-placeholder {
1247
+ margin-bottom: 10px;
1248
+ border: 1px dashed #f1c40f;
1249
+ background-color: #fffae4;
1250
+ }
1251
+ .csf-field-group .csf-cloneable-header-icon {
1252
+ display: inline-block;
1253
+ text-align: center;
1254
+ font-size: 14px;
1255
+ width: 17px;
1256
+ text-indent: 0;
1257
+ vertical-align: text-top;
1258
+ }
1259
+ .csf-field-group .csf-cloneable-placeholder {
1260
+ background-color: #ddd;
1261
+ margin-top: 4px;
1262
+ width: 100px;
1263
+ height: 10px;
1264
+ font-size: 10px;
1265
+ line-height: 10px;
1266
+ display: inline-block;
1267
+ vertical-align: top;
1268
+ border-radius: 2px;
1269
+ }
1270
+
1271
+ /**
1272
+ * 03. 15. Field: icon
1273
+ */
1274
+ .csf-field-icon input {
1275
+ display: none;
1276
+ }
1277
+ .csf-field-icon .button {
1278
+ margin-right: 5px;
1279
+ }
1280
+ .csf-field-icon .csf-icon-preview i {
1281
+ display: inline-block;
1282
+ font-size: 14px;
1283
+ width: 30px;
1284
+ height: 26px;
1285
+ line-height: 26px;
1286
+ margin-right: 5px;
1287
+ text-align: center;
1288
+ vertical-align: top;
1289
+ color: #555;
1290
+ border: 1px solid #ccc;
1291
+ background-color: #f7f7f7;
1292
+ -moz-border-radius: 3px;
1293
+ -webkit-border-radius: 3px;
1294
+ border-radius: 3px;
1295
+ -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
1296
+ -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
1297
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
1298
+ -moz-box-sizing: content-box;
1299
+ -webkit-box-sizing: content-box;
1300
+ box-sizing: content-box;
1301
+ }
1302
+
1303
+ /**
1304
+ * 03. 16. Field: image_select
1305
+ */
1306
+ .csf-field-image_select .csf--image {
1307
+ cursor: pointer;
1308
+ position: relative;
1309
+ display: inline-block;
1310
+ max-width: 100%;
1311
+ margin: 0 5px 5px 0;
1312
+ vertical-align: bottom;
1313
+ border: 2px solid transparent;
1314
+ background-color: #fff;
1315
+ user-select: none;
1316
+ -webkit-user-select: none;
1317
+ -moz-transition: all 0.2s;
1318
+ -o-transition: all 0.2s;
1319
+ -webkit-transition: all 0.2s;
1320
+ transition: all 0.2s;
1321
+ }
1322
+ .csf-field-image_select .csf--image:before {
1323
+ position: absolute;
1324
+ top: 0;
1325
+ left: 0;
1326
+ text-align: center;
1327
+ font-size: 11px;
1328
+ font-family: FontAwesome;
1329
+ content: "\f00c";
1330
+ width: 15px;
1331
+ height: 15px;
1332
+ line-height: 15px;
1333
+ opacity: 0;
1334
+ color: #fff;
1335
+ background-color: #222;
1336
+ transition: opacity .2s;
1337
+ }
1338
+ .csf-field-image_select .csf--active {
1339
+ border-color: #222;
1340
+ box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
1341
+ }
1342
+ .csf-field-image_select .csf--active:before {
1343
+ opacity: 1;
1344
+ }
1345
+ .csf-field-image_select img {
1346
+ vertical-align: top;
1347
+ }
1348
+ .csf-field-image_select input {
1349
+ display: none;
1350
+ }
1351
+
1352
+ /**
1353
+ * 03. 17. Field: link_color
1354
+ */
1355
+ .csf-field-link_color .csf--left {
1356
+ float: left;
1357
+ margin-right: 10px;
1358
+ margin-bottom: 5px;
1359
+ }
1360
+ .csf-field-link_color .csf--title {
1361
+ color: #777;
1362
+ margin-bottom: 5px;
1363
+ }
1364
+
1365
+ /**
1366
+ * 03. 18. Field: map
1367
+ */
1368
+ .csf-field-map input {
1369
+ width: 100%;
1370
+ }
1371
+ .csf-field-map input[type="text"].ui-autocomplete-loading {
1372
+ background-position-x: calc(100% - 5px);
1373
+ }
1374
+ .csf-field-map .csf--map-search + .csf--map-osm-wrap {
1375
+ margin-top: 10px;
1376
+ }
1377
+ .csf-field-map .csf--map-osm-wrap {
1378
+ position: relative;
1379
+ padding: 5px;
1380
+ border: 1px solid #eee;
1381
+ background-color: #fff;
1382
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
1383
+ }
1384
+ .csf-field-map .csf--map-osm {
1385
+ position: relative;
1386
+ z-index: 1;
1387
+ min-height: 250px;
1388
+ }
1389
+ .csf-field-map .csf--map-inputs {
1390
+ margin-top: 10px;
1391
+ display: flex;
1392
+ justify-content: space-between;
1393
+ }
1394
+ .csf-field-map .csf--map-input {
1395
+ flex: 1;
1396
+ }
1397
+ .csf-field-map .csf--map-input:last-child {
1398
+ padding-left: 10px;
1399
+ }
1400
+ .csf-field-map label {
1401
+ display: block;
1402
+ color: #777;
1403
+ font-size: 12px;
1404
+ margin: 0 0 2px 0;
1405
+ }
1406
+
1407
+ .csf-map-ui-autocomplate {
1408
+ z-index: 999999;
1409
+ border-radius: 4px;
1410
+ overflow: hidden;
1411
+ }
1412
+
1413
+ /**
1414
+ * 03. 19. Field: media
1415
+ */
1416
+ .csf-field-media .csf--placeholder {
1417
+ display: flex;
1418
+ }
1419
+ .csf-field-media .csf--placeholder input {
1420
+ width: 100%;
1421
+ margin: 0;
1422
+ }
1423
+ .csf-field-media .button {
1424
+ margin-left: 5px;
1425
+ }
1426
+ .csf-field-media .hidden + .button {
1427
+ margin-left: 0;
1428
+ }
1429
+ .csf-field-media .csf--preview {
1430
+ position: relative;
1431
+ }
1432
+ .csf-field-media .csf--preview .fa-times {
1433
+ position: absolute;
1434
+ z-index: 1;
1435
+ right: 4px;
1436
+ top: 4px;
1437
+ font-size: 14px;
1438
+ width: 22px;
1439
+ height: 22px;
1440
+ line-height: 22px;
1441
+ text-align: center;
1442
+ text-decoration: none;
1443
+ color: #fff;
1444
+ background-color: #dd3333;
1445
+ opacity: 0.8;
1446
+ transition: all .2s;
1447
+ }
1448
+ .csf-field-media .csf--preview .fa-times:hover {
1449
+ opacity: 1;
1450
+ }
1451
+ .csf-field-media .csf--preview .fa-times:focus {
1452
+ box-shadow: none;
1453
+ }
1454
+
1455
+ /**
1456
+ * 03. 20. Field: palette
1457
+ */
1458
+ .csf-field-palette .csf--palette {
1459
+ position: relative;
1460
+ display: inline-block;
1461
+ cursor: pointer;
1462
+ border: 2px solid #ddd;
1463
+ margin-right: 10px;
1464
+ margin-bottom: 10px;
1465
+ user-select: none;
1466
+ -webkit-user-select: none;
1467
+ transition: all .2s;
1468
+ }
1469
+ .csf-field-palette .csf--palette span {
1470
+ vertical-align: middle;
1471
+ display: inline-block;
1472
+ width: 22px;
1473
+ height: 60px;
1474
+ line-height: 60px;
1475
+ overflow: hidden;
1476
+ text-indent: -999px;
1477
+ }
1478
+ .csf-field-palette .csf--palette:before {
1479
+ position: absolute;
1480
+ top: 0;
1481
+ left: 0;
1482
+ text-align: center;
1483
+ font-size: 11px;
1484
+ font-family: FontAwesome;
1485
+ content: "\f00c";
1486
+ width: 15px;
1487
+ height: 15px;
1488
+ line-height: 15px;
1489
+ opacity: 0;
1490
+ color: #fff;
1491
+ background-color: #222;
1492
+ transition: opacity .2s;
1493
+ }
1494
+ .csf-field-palette .csf--active {
1495
+ border-color: #222;
1496
+ box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
1497
+ }
1498
+ .csf-field-palette .csf--active:before {
1499
+ opacity: 1;
1500
+ }
1501
+ .csf-field-palette input {
1502
+ display: none;
1503
+ }
1504
+
1505
+ /**
1506
+ * 03. 21. Field: repeater
1507
+ */
1508
+ .csf-field-repeater .csf-field-text input {
1509
+ width: 100%;
1510
+ }
1511
+ .csf-field-repeater .csf-repeater-hidden {
1512
+ display: none !important;
1513
+ }
1514
+ .csf-field-repeater .csf-repeater-wrapper .csf-repeater-item {
1515
+ display: table;
1516
+ width: 100%;
1517
+ margin-bottom: 5px;
1518
+ border: 1px solid #eee;
1519
+ }
1520
+ .csf-field-repeater .csf-repeater-wrapper .csf-repeater-item h4 {
1521
+ font-size: 1em;
1522
+ }
1523
+ .csf-field-repeater .csf-repeater-content {
1524
+ width: 100%;
1525
+ display: table-cell;
1526
+ vertical-align: middle;
1527
+ background-color: #fff;
1528
+ }
1529
+ .csf-field-repeater .csf-repeater-content > .csf-field {
1530
+ padding: 15px;
1531
+ }
1532
+ .csf-field-repeater .csf-repeater-helper {
1533
+ width: 100%;
1534
+ display: table-cell;
1535
+ vertical-align: middle;
1536
+ text-align: center;
1537
+ font-size: 14px;
1538
+ line-height: 1em;
1539
+ border-left: 1px solid #eee;
1540
+ background-color: #f7f7f7;
1541
+ }
1542
+ .csf-field-repeater .csf-repeater-helper i {
1543
+ display: inline-block;
1544
+ cursor: pointer;
1545
+ color: #999;
1546
+ padding: 5px;
1547
+ }
1548
+ .csf-field-repeater .csf-repeater-helper i:hover {
1549
+ color: #555;
1550
+ }
1551
+ .csf-field-repeater .csf-repeater-helper-inner {
1552
+ width: 75px;
1553
+ }
1554
+ .csf-field-repeater .csf-repeater-alert {
1555
+ display: none;
1556
+ margin-bottom: 5px;
1557
+ padding: 10px 20px;
1558
+ color: #a94442;
1559
+ border: 1px solid #ebccd1;
1560
+ background-color: #f2dede;
1561
+ }
1562
+ .csf-field-repeater .widget-placeholder {
1563
+ height: 50px;
1564
+ margin-bottom: 3px;
1565
+ border: 1px dashed #f1c40f;
1566
+ background-color: #fffae4;
1567
+ }
1568
+ .csf-field-repeater .ui-sortable-helper {
1569
+ height: 50px !important;
1570
+ overflow: hidden !important;
1571
+ border-color: #ccc !important;
1572
+ background-color: #eee !important;
1573
+ opacity: 0.5;
1574
+ }
1575
+ .csf-field-repeater .ui-sortable-helper .csf-repeater-helper,
1576
+ .csf-field-repeater .ui-sortable-helper .csf-repeater-content {
1577
+ display: none;
1578
+ }
1579
+
1580
+ /**
1581
+ * 03. 22. Field: select
1582
+ */
1583
+ .csf-field-select .csf-fieldset {
1584
+ min-height: 30px;
1585
+ }
1586
+ .csf-field-select .csf-chosen {
1587
+ display: none;
1588
+ }
1589
+ .csf-field-select select {
1590
+ max-width: 100%;
1591
+ margin: 0;
1592
+ }
1593
+
1594
+ /**
1595
+ * 03. 23. Field: slider
1596
+ */
1597
+ .csf-field-slider .csf--wrap {
1598
+ display: flex;
1599
+ align-items: center;
1600
+ }
1601
+ .csf-field-slider .csf--input {
1602
+ display: flex;
1603
+ }
1604
+ .csf-field-slider .csf--unit {
1605
+ display: flex;
1606
+ justify-content: center;
1607
+ flex-direction: column;
1608
+ user-select: none;
1609
+ padding: 0 6px;
1610
+ font-size: 11px;
1611
+ line-height: 1;
1612
+ border-radius: 0 4px 4px 0;
1613
+ color: #555;
1614
+ border: 1px solid #7e8993;
1615
+ border-left: 0;
1616
+ background-color: #f5f5f5;
1617
+ }
1618
+ .csf-field-slider input[type=number] {
1619
+ position: relative;
1620
+ z-index: 1;
1621
+ width: 50px;
1622
+ margin: 0 0 0 15px;
1623
+ text-align: center;
1624
+ }
1625
+ .csf-field-slider .csf--is-unit {
1626
+ border-top-right-radius: 0;
1627
+ border-bottom-right-radius: 0;
1628
+ }
1629
+ .csf-field-slider .ui-slider {
1630
+ position: relative;
1631
+ width: 100%;
1632
+ height: 3px;
1633
+ border: none;
1634
+ background: #ddd;
1635
+ border-radius: 2px;
1636
+ }
1637
+ .csf-field-slider .ui-slider-range {
1638
+ height: 3px;
1639
+ border: none;
1640
+ background: #333;
1641
+ border-radius: 2px;
1642
+ }
1643
+ .csf-field-slider .ui-slider-handle {
1644
+ position: absolute;
1645
+ width: 16px;
1646
+ height: 16px;
1647
+ top: -7px;
1648
+ margin-left: -8px;
1649
+ border: none;
1650
+ background: #333;
1651
+ border-radius: 2px;
1652
+ }
1653
+ .csf-field-slider .ui-state-active,
1654
+ .csf-field-slider .ui-slider-handle:hover {
1655
+ cursor: pointer;
1656
+ background: #111;
1657
+ }
1658
+
1659
+ /**
1660
+ * 03. 24. Field: sortable
1661
+ */
1662
+ .csf-field-sortable .csf-field-text input {
1663
+ width: 100%;
1664
+ max-width: 100%;
1665
+ }
1666
+ .csf-field-sortable .csf--sortable .csf--sortable-item {
1667
+ display: table;
1668
+ width: 100%;
1669
+ margin-bottom: 5px;
1670
+ border: 1px solid #eee;
1671
+ }
1672
+ .csf-field-sortable .csf--sortable .csf--sortable-item h4 {
1673
+ font-size: 1em;
1674
+ }
1675
+ .csf-field-sortable .csf--sortable-content {
1676
+ width: 100%;
1677
+ display: table-cell;
1678
+ vertical-align: middle;
1679
+ background-color: #fff;
1680
+ }
1681
+ .csf-field-sortable .csf--sortable-content > .csf-field {
1682
+ padding: 15px;
1683
+ }
1684
+ .csf-field-sortable .csf--sortable-helper {
1685
+ width: 100%;
1686
+ display: table-cell;
1687
+ vertical-align: middle;
1688
+ text-align: center;
1689
+ font-size: 14px;
1690
+ line-height: 1em;
1691
+ border-left: 1px solid #eee;
1692
+ background-color: #f7f7f7;
1693
+ }
1694
+ .csf-field-sortable .csf--sortable-helper .fa {
1695
+ display: inline-block;
1696
+ cursor: pointer;
1697
+ width: 50px;
1698
+ color: #555;
1699
+ }
1700
+ .csf-field-sortable .csf--sortable-helper .fa:hover {
1701
+ opacity: 0.5;
1702
+ }
1703
+ .csf-field-sortable .widget-placeholder {
1704
+ height: 50px;
1705
+ margin-bottom: 3px;
1706
+ border: 1px dashed #f1c40f;
1707
+ background-color: #fffae4;
1708
+ }
1709
+ .csf-field-sortable .ui-sortable-helper {
1710
+ height: 50px !important;
1711
+ overflow: hidden !important;
1712
+ border-color: #ccc !important;
1713
+ background-color: #eee !important;
1714
+ opacity: 0.5;
1715
+ }
1716
+ .csf-field-sortable .ui-sortable-helper .csf--sortable-helper,
1717
+ .csf-field-sortable .ui-sortable-helper .csf--sortable-content {
1718
+ display: none;
1719
+ }
1720
+
1721
+ /**
1722
+ * 03. 25. Field: sorter
1723
+ */
1724
+ .csf-field-sorter .ui-sortable-placeholder {
1725
+ height: 20px;
1726
+ border: 1px dashed #f1c40f;
1727
+ background-color: #fffae4;
1728
+ }
1729
+ .csf-field-sorter .csf-modules {
1730
+ float: left;
1731
+ width: 50%;
1732
+ box-sizing: border-box;
1733
+ }
1734
+ .csf-field-sorter .csf-modules:first-child {
1735
+ padding-right: 15px;
1736
+ }
1737
+ .csf-field-sorter .csf-modules:last-child {
1738
+ padding-left: 15px;
1739
+ }
1740
+ .csf-field-sorter .csf-disabled,
1741
+ .csf-field-sorter .csf-enabled {
1742
+ padding: 5px 15px;
1743
+ border: 1px dashed #ddd;
1744
+ background-color: #fff;
1745
+ }
1746
+ .csf-field-sorter .csf-disabled li {
1747
+ -moz-transition: opacity 0.15s;
1748
+ -o-transition: opacity 0.15s;
1749
+ -webkit-transition: opacity 0.15s;
1750
+ transition: opacity 0.15s;
1751
+ opacity: 0.5;
1752
+ }
1753
+ .csf-field-sorter .csf-disabled .ui-sortable-helper {
1754
+ opacity: 1;
1755
+ }
1756
+ .csf-field-sorter .csf-sorter-title {
1757
+ font-size: 13px;
1758
+ font-weight: 600;
1759
+ padding: 10px;
1760
+ text-align: center;
1761
+ border: 1px dashed #ddd;
1762
+ border-bottom: none;
1763
+ background-color: #f8f8f8;
1764
+ text-transform: uppercase;
1765
+ }
1766
+ .csf-field-sorter ul {
1767
+ list-style-type: none;
1768
+ margin: 0;
1769
+ padding: 0;
1770
+ min-height: 62px;
1771
+ }
1772
+ .csf-field-sorter ul li {
1773
+ margin: 10px 0;
1774
+ padding: 10px 15px;
1775
+ cursor: move;
1776
+ font-weight: bold;
1777
+ text-align: center;
1778
+ border: 1px solid #e5e5e5;
1779
+ background-color: #fafafa;
1780
+ -moz-transition: border-color 0.15s;
1781
+ -o-transition: border-color 0.15s;
1782
+ -webkit-transition: border-color 0.15s;
1783
+ transition: border-color 0.15s;
1784
+ }
1785
+ .csf-field-sorter ul li:hover {
1786
+ border-color: #bbb;
1787
+ }
1788
+
1789
+ /**
1790
+ * 03. 26. Field: spinner
1791
+ */
1792
+ .csf-field-spinner .csf--spin {
1793
+ display: flex;
1794
+ }
1795
+ .csf-field-spinner .ui-spinner {
1796
+ display: flex;
1797
+ }
1798
+ .csf-field-spinner .ui-button-text-only {
1799
+ display: flex;
1800
+ flex-direction: column;
1801
+ justify-content: center;
1802
+ text-align: center;
1803
+ min-width: 20px;
1804
+ padding: 0 4px;
1805
+ color: #555;
1806
+ border: 1px solid #7e8993;
1807
+ background-color: #f5f5f5;
1808
+ }
1809
+ .csf-field-spinner .ui-button {
1810
+ cursor: pointer;
1811
+ }
1812
+ .csf-field-spinner .ui-button:hover {
1813
+ background-color: #e7e7e7;
1814
+ }
1815
+ .csf-field-spinner .ui-button:active {
1816
+ background-color: #ddd;
1817
+ }
1818
+ .csf-field-spinner .ui-button:before {
1819
+ font-family: FontAwesome;
1820
+ font-size: 14px;
1821
+ }
1822
+ .csf-field-spinner .ui-spinner-down {
1823
+ order: 1;
1824
+ border-right: 0;
1825
+ border-radius: 4px 0 0 4px;
1826
+ }
1827
+ .csf-field-spinner .ui-spinner-down:before {
1828
+ content: "\f0d9";
1829
+ }
1830
+ .csf-field-spinner .ui-spinner-input {
1831
+ order: 2;
1832
+ }
1833
+ .csf-field-spinner .csf--unit {
1834
+ order: 3;
1835
+ border-left: 0;
1836
+ user-select: none;
1837
+ }
1838
+ .csf-field-spinner .ui-spinner-up {
1839
+ order: 4;
1840
+ border-left: 0;
1841
+ border-radius: 0 4px 4px 0;
1842
+ }
1843
+ .csf-field-spinner .ui-spinner-up:before {
1844
+ content: "\f0da";
1845
+ }
1846
+ .csf-field-spinner input {
1847
+ position: relative;
1848
+ z-index: 1;
1849
+ width: 50px;
1850
+ text-align: center;
1851
+ margin: 0;
1852
+ padding: 0 8px;
1853
+ border-radius: 0;
1854
+ }
1855
+ .csf-field-spinner .ui-button-text {
1856
+ display: none;
1857
+ }
1858
+
1859
+ /**
1860
+ * 03. 27. Field: switcher
1861
+ */
1862
+ .csf-field-switcher .csf--switcher {
1863
+ float: left;
1864
+ cursor: pointer;
1865
+ position: relative;
1866
+ width: 60px;
1867
+ height: 26px;
1868
+ padding: 0;
1869
+ margin: 0;
1870
+ overflow: hidden;
1871
+ border-radius: 4px;
1872
+ background-color: #ed6f6f;
1873
+ user-select: none;
1874
+ -webkit-user-select: none;
1875
+ }
1876
+ .csf-field-switcher .csf--ball {
1877
+ position: absolute;
1878
+ top: 4px;
1879
+ left: 4px;
1880
+ width: 24px;
1881
+ height: 18px;
1882
+ background-color: #fff;
1883
+ border-radius: 4px;
1884
+ transition: all .1s;
1885
+ box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.15);
1886
+ }
1887
+ .csf-field-switcher .csf--on,
1888
+ .csf-field-switcher .csf--off {
1889
+ position: absolute;
1890
+ top: 0;
1891
+ left: 0;
1892
+ right: 0;
1893
+ font-size: 11px;
1894
+ line-height: 26px;
1895
+ font-weight: 500;
1896
+ font-style: normal;
1897
+ text-align: center;
1898
+ text-transform: uppercase;
1899
+ color: #fff;
1900
+ padding-right: 28px;
1901
+ opacity: 0;
1902
+ transition: all .1s;
1903
+ }
1904
+ .csf-field-switcher .csf--off {
1905
+ padding-right: 0;
1906
+ padding-left: 28px;
1907
+ opacity: 1;
1908
+ }
1909
+ .csf-field-switcher .csf--active {
1910
+ background: #4fb845;
1911
+ }
1912
+ .csf-field-switcher .csf--active .csf--on {
1913
+ opacity: 1;
1914
+ }
1915
+ .csf-field-switcher .csf--active .csf--off {
1916
+ opacity: 0;
1917
+ }
1918
+ .csf-field-switcher .csf--active .csf--ball {
1919
+ left: 100%;
1920
+ margin-left: -28px;
1921
+ }
1922
+ .csf-field-switcher .csf--label {
1923
+ float: left;
1924
+ margin-top: 4px;
1925
+ margin-left: 8px;
1926
+ font-weight: 400;
1927
+ color: #999;
1928
+ }
1929
+ .csf-field-switcher input {
1930
+ display: none;
1931
+ }
1932
+
1933
+ /**
1934
+ * 03. 28. Field: tabbed
1935
+ */
1936
+ .csf-field-tabbed .csf-tabbed-section {
1937
+ border: 1px solid #ccd0d4;
1938
+ background-color: #fff;
1939
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
1940
+ }
1941
+ .csf-field-tabbed .csf-tabbed-section > .csf-field {
1942
+ padding: 15px;
1943
+ }
1944
+ .csf-field-tabbed .csf-tabbed-nav .csf--icon {
1945
+ padding-right: 5px;
1946
+ }
1947
+ .csf-field-tabbed .csf-tabbed-nav a {
1948
+ display: inline-block;
1949
+ padding: 12px 15px;
1950
+ margin-top: 1px;
1951
+ margin-right: 5px;
1952
+ margin-bottom: -1px;
1953
+ position: relative;
1954
+ text-decoration: none;
1955
+ color: #444;
1956
+ font-weight: 600;
1957
+ border: 1px solid #ccd0d4;
1958
+ background-color: #f3f3f3;
1959
+ transition: all .2s;
1960
+ }
1961
+ .csf-field-tabbed .csf-tabbed-nav a:hover {
1962
+ background-color: #f9f9f9;
1963
+ }
1964
+ .csf-field-tabbed .csf-tabbed-nav a.csf-tabbed-active {
1965
+ background-color: #fff;
1966
+ border-bottom-color: #fff;
1967
+ }
1968
+ .csf-field-tabbed .csf-tabbed-nav a:focus {
1969
+ outline: none;
1970
+ -moz-box-shadow: none;
1971
+ -webkit-box-shadow: none;
1972
+ box-shadow: none;
1973
+ }
1974
+
1975
+ /**
1976
+ * 03. 29. Field: text
1977
+ */
1978
+ .csf-field-text input {
1979
+ width: 50%;
1980
+ max-width: 100%;
1981
+ margin: 0;
1982
+ }
1983
+
1984
+ /**
1985
+ * 03. 30. Field: textarea
1986
+ */
1987
+ .csf-field-textarea textarea {
1988
+ width: 100%;
1989
+ max-width: 100%;
1990
+ min-height: 125px;
1991
+ }
1992
+ .csf-field-textarea .csf-shortcode-button {
1993
+ margin-bottom: 10px;
1994
+ margin-right: 5px;
1995
+ }
1996
+
1997
+ /**
1998
+ * 03. 31. Field: typography
1999
+ */
2000
+ .csf-field-typography textarea,
2001
+ .csf-field-typography select {
2002
+ min-width: 100%;
2003
+ margin: 0;
2004
+ }
2005
+ .csf-field-typography .csf--title {
2006
+ color: #777;
2007
+ margin: 0 0 2px 0;
2008
+ font-size: 12px;
2009
+ }
2010
+ .csf-field-typography .csf--title small {
2011
+ vertical-align: top;
2012
+ }
2013
+ .csf-field-typography .csf--blocks {
2014
+ display: flex;
2015
+ flex-wrap: wrap;
2016
+ }
2017
+ .csf-field-typography .csf--block {
2018
+ flex: 1;
2019
+ padding-right: 6px;
2020
+ padding-bottom: 6px;
2021
+ }
2022
+ .csf-field-typography .csf--input {
2023
+ margin: 0;
2024
+ min-width: 100%;
2025
+ }
2026
+ .csf-field-typography .csf--input-wrap {
2027
+ position: relative;
2028
+ }
2029
+ .csf-field-typography .csf--unit {
2030
+ position: absolute;
2031
+ z-index: 1;
2032
+ right: 4px;
2033
+ top: 4px;
2034
+ bottom: 4px;
2035
+ padding: 2px 6px;
2036
+ color: #666;
2037
+ font-size: 11px;
2038
+ line-height: 1;
2039
+ border-radius: 2px;
2040
+ background: #eee;
2041
+ user-select: none;
2042
+ display: flex;
2043
+ justify-content: center;
2044
+ flex-direction: column;
2045
+ }
2046
+ .csf-field-typography .csf--preview {
2047
+ font-size: 16px;
2048
+ line-height: 20px;
2049
+ padding: 20px;
2050
+ color: #222;
2051
+ border: 1px solid #eee;
2052
+ background-color: #fff;
2053
+ border-radius: 2.5px;
2054
+ user-select: none;
2055
+ -webkit-user-select: none;
2056
+ transition: background-color .2s, border-color .2s;
2057
+ }
2058
+ .csf-field-typography .csf--block-preview {
2059
+ cursor: pointer;
2060
+ position: relative;
2061
+ overflow: hidden;
2062
+ margin-top: 10px;
2063
+ max-width: 100%;
2064
+ }
2065
+ .csf-field-typography .csf--black-background {
2066
+ border-color: #000;
2067
+ background-color: #000;
2068
+ }
2069
+ .csf-field-typography .csf--toggle {
2070
+ position: absolute;
2071
+ top: 5px;
2072
+ right: 10px;
2073
+ color: #999;
2074
+ }
2075
+ .csf-field-typography .csf--block-extra-styles {
2076
+ margin-top: 5px;
2077
+ }
2078
+
2079
+ /**
2080
+ * 03. 32. Field: upload
2081
+ */
2082
+ .csf-field-upload input {
2083
+ width: 100%;
2084
+ margin: 0;
2085
+ }
2086
+ .csf-field-upload .csf--wrap {
2087
+ display: flex;
2088
+ }
2089
+ .csf-field-upload .button {
2090
+ margin-left: 5px;
2091
+ }
2092
+
2093
+ /**
2094
+ * 03. 33. Field: wp_editor
2095
+ */
2096
+ .csf-field-wp_editor .csf-wp-editor {
2097
+ float: left;
2098
+ width: 100%;
2099
+ }
2100
+ .csf-field-wp_editor .mce-toolbar-grp {
2101
+ border: none;
2102
+ }
2103
+ .csf-field-wp_editor .mce-btn.mce-active button,
2104
+ .csf-field-wp_editor .mce-btn.mce-active:hover button,
2105
+ .csf-field-wp_editor .mce-btn.mce-active i,
2106
+ .csf-field-wp_editor .mce-btn.mce-active:hover i {
2107
+ color: #23282d;
2108
+ }
2109
+ .csf-field-wp_editor .wp-media-buttons {
2110
+ position: relative;
2111
+ z-index: 2;
2112
+ }
2113
+ .csf-field-wp_editor .wp-editor-tabs {
2114
+ position: relative;
2115
+ z-index: 1;
2116
+ }
2117
+ .csf-field-wp_editor .csf-no-tinymce {
2118
+ border: 1px solid #e5e5e5;
2119
+ }
2120
+ .csf-field-wp_editor .csf-no-quicktags .wp-media-buttons {
2121
+ float: none;
2122
+ display: block;
2123
+ }
2124
+ .csf-field-wp_editor .csf-no-quicktags .mce-tinymce {
2125
+ box-shadow: none;
2126
+ border: 1px solid #e5e5e5;
2127
+ }
2128
+ .csf-field-wp_editor textarea {
2129
+ width: 100%;
2130
+ max-width: 100%;
2131
+ margin: 0;
2132
+ box-shadow: none;
2133
+ }
2134
+
2135
+ /**
2136
+ * 03. 34. Field: heading
2137
+ */
2138
+ .csf-field-heading {
2139
+ font-size: 1.5em;
2140
+ font-weight: bold;
2141
+ color: #23282d;
2142
+ background-color: #f5f5f5;
2143
+ }
2144
+
2145
+ /**
2146
+ * 03. 35. Field: subheading
2147
+ */
2148
+ .csf-field-subheading {
2149
+ font-size: 14px;
2150
+ font-weight: bold;
2151
+ padding-top: 17px;
2152
+ padding-bottom: 17px;
2153
+ color: #23282d;
2154
+ background-color: #f7f7f7;
2155
+ }
2156
+
2157
+ /**
2158
+ * 03. 36. Field: submessage
2159
+ */
2160
+ .csf-field-submessage {
2161
+ padding: 0 !important;
2162
+ border: 0 !important;
2163
+ }
2164
+ .csf-field-submessage + .csf-field {
2165
+ border-top: 0 !important;
2166
+ }
2167
+
2168
+ .csf-submessage {
2169
+ font-size: 12px;
2170
+ padding: 17px 30px;
2171
+ border-top: 1px solid transparent;
2172
+ border-bottom: 1px solid transparent;
2173
+ }
2174
+
2175
+ .csf-submessage-success {
2176
+ color: #3c763d;
2177
+ border-color: #d6e9c6;
2178
+ background-color: #dff0d8;
2179
+ }
2180
+
2181
+ .csf-submessage-info {
2182
+ color: #31708f;
2183
+ border-color: #bce8f1;
2184
+ background-color: #d9edf7;
2185
+ }
2186
+
2187
+ .csf-submessage-warning {
2188
+ color: #8a6d3b;
2189
+ border-color: #faebcc;
2190
+ background-color: #fcf8e3;
2191
+ }
2192
+
2193
+ .csf-submessage-danger {
2194
+ color: #a94442;
2195
+ border-color: #ebccd1;
2196
+ background-color: #f2dede;
2197
+ }
2198
+
2199
+ .csf-submessage-normal {
2200
+ color: #23282d;
2201
+ border-color: #eee;
2202
+ background-color: #f7f7f7;
2203
+ }
2204
+
2205
+ /**
2206
+ * 03. 37. Field: notice
2207
+ */
2208
+ .csf-field-notice {
2209
+ background-color: #f7f7f7;
2210
+ }
2211
+
2212
+ .csf-notice {
2213
+ padding: 12px;
2214
+ background-color: #fff;
2215
+ border-left-style: solid;
2216
+ border-left-width: 4px;
2217
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
2218
+ }
2219
+
2220
+ .csf-notice-success {
2221
+ border-color: #46b450;
2222
+ }
2223
+
2224
+ .csf-notice-info {
2225
+ border-color: #339fd4;
2226
+ }
2227
+
2228
+ .csf-notice-warning {
2229
+ border-color: #ffbc00;
2230
+ }
2231
+
2232
+ .csf-notice-danger {
2233
+ border-color: #dc3232;
2234
+ }
2235
+
2236
+ .csf-notice-normal {
2237
+ border-color: #222;
2238
+ }
2239
+
2240
+ /**
2241
+ * 03. 38. Field: number
2242
+ */
2243
+ .csf-field-number input {
2244
+ width: 100%;
2245
+ margin: 0;
2246
+ }
2247
+ .csf-field-number .csf--wrap {
2248
+ position: relative;
2249
+ float: left;
2250
+ width: 100px;
2251
+ }
2252
+ .csf-field-number .csf--unit {
2253
+ position: absolute;
2254
+ z-index: 1;
2255
+ right: 4px;
2256
+ top: 4px;
2257
+ bottom: 4px;
2258
+ padding: 2px 6px;
2259
+ color: #666;
2260
+ font-size: 11px;
2261
+ line-height: 1;
2262
+ border-radius: 2px;
2263
+ background: #eee;
2264
+ user-select: none;
2265
+ display: flex;
2266
+ justify-content: center;
2267
+ flex-direction: column;
2268
+ }
2269
+
2270
+ /**
2271
+ * 03. 39. others
2272
+ */
2273
+ .csf-help {
2274
+ cursor: help;
2275
+ position: absolute;
2276
+ top: 0;
2277
+ right: 0;
2278
+ padding: 5px;
2279
+ font-size: 14px;
2280
+ color: #aaa;
2281
+ }
2282
+ .csf-help .csf-help-text {
2283
+ display: none;
2284
+ }
2285
+
2286
+ .csf-image-preview {
2287
+ display: inline-block;
2288
+ position: relative;
2289
+ padding: 4px;
2290
+ min-width: 44px;
2291
+ min-height: 22px;
2292
+ margin-bottom: 10px;
2293
+ border: 1px solid #ccc;
2294
+ background-color: #f9f9f9;
2295
+ -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
2296
+ -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
2297
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
2298
+ }
2299
+ .csf-image-preview img {
2300
+ max-height: 90px;
2301
+ display: inline-block;
2302
+ vertical-align: middle;
2303
+ }
2304
+
2305
+ .csf-field-custom .csf-field {
2306
+ padding: 0;
2307
+ }
2308
+
2309
+ .csf-field .chosen-container-single .chosen-single {
2310
+ height: 28px;
2311
+ line-height: 26px;
2312
+ }
2313
+ .csf-field .chosen-container-single .chosen-single abbr {
2314
+ top: 0;
2315
+ right: 20px;
2316
+ font-family: FontAwesome;
2317
+ font-size: 12px;
2318
+ height: 100%;
2319
+ width: 18px;
2320
+ color: #aaa;
2321
+ text-align: center;
2322
+ background: none;
2323
+ }
2324
+ .csf-field .chosen-container-single .chosen-single abbr:before {
2325
+ content: "\f00d";
2326
+ }
2327
+ .csf-field .chosen-container-single .chosen-single abbr:hover {
2328
+ color: #555;
2329
+ }
2330
+ .csf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
2331
+ font-family: FontAwesome;
2332
+ font-size: 12px;
2333
+ height: 100%;
2334
+ width: 18px;
2335
+ color: #aaa;
2336
+ text-align: center;
2337
+ background: none;
2338
+ }
2339
+ .csf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:before {
2340
+ content: "\f00d";
2341
+ display: inline-block;
2342
+ padding-top: 3px;
2343
+ }
2344
+ .csf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
2345
+ color: #555;
2346
+ }
2347
+ .csf-field .chosen-container-single .chosen-single div b {
2348
+ font-family: FontAwesome;
2349
+ font-size: 14px;
2350
+ color: #aaa;
2351
+ background: none;
2352
+ }
2353
+ .csf-field .chosen-container-single .chosen-single div b:before {
2354
+ content: "\f107";
2355
+ }
2356
+ .csf-field .chosen-container-single .chosen-single div b:hover {
2357
+ color: #555;
2358
+ }
2359
+ .csf-field .chosen-container-multi .chosen-choices li.search-choice-placeholder {
2360
+ border: 1px dashed #aaa;
2361
+ margin: 3px 5px 3px 0;
2362
+ }
2363
+ .csf-field .chosen-container-multi .ui-sortable li.search-choice span {
2364
+ cursor: move;
2365
+ }
2366
+ .csf-field .chosen-container-active.chosen-with-drop .chosen-single div b:before {
2367
+ content: "\f106";
2368
+ }
2369
+ .csf-field .chosen-container-single .chosen-single-with-deselect span {
2370
+ margin-right: 40px;
2371
+ }
2372
+ .csf-field .chosen-container-single .chosen-search input[type="text"] {
2373
+ background: none;
2374
+ }
2375
+ .csf-field .chosen-container-single .chosen-search:before {
2376
+ font-family: FontAwesome;
2377
+ position: absolute;
2378
+ content: "\f002";
2379
+ font-size: 11px;
2380
+ right: 10px;
2381
+ top: 7px;
2382
+ color: #aaa;
2383
+ }
2384
+ .csf-field .wp-picker-container {
2385
+ display: inline-block;
2386
+ }
2387
+ .csf-field .csf--transparent-wrap {
2388
+ display: none;
2389
+ position: relative;
2390
+ top: -1px;
2391
+ width: 235px;
2392
+ padding: 9px 10px;
2393
+ border: 1px solid #dfdfdf;
2394
+ border-top: none;
2395
+ background-color: #fff;
2396
+ }
2397
+ .csf-field .wp-picker-active .csf--transparent-wrap {
2398
+ display: block;
2399
+ }
2400
+ .csf-field .csf--transparent-slider {
2401
+ position: absolute;
2402
+ width: 190px;
2403
+ margin-left: 2px;
2404
+ height: 18px;
2405
+ }
2406
+ .csf-field .csf--transparent-slider .ui-slider-handle {
2407
+ position: absolute;
2408
+ top: -3px;
2409
+ bottom: -3px;
2410
+ z-index: 5;
2411
+ border-color: #aaa;
2412
+ border-style: solid;
2413
+ border-width: 4px 3px;
2414
+ width: 10px;
2415
+ height: 16px;
2416
+ margin: 0 -5px;
2417
+ background: none;
2418
+ cursor: ew-resize;
2419
+ opacity: 0.9;
2420
+ -moz-border-radius: 4px;
2421
+ -webkit-border-radius: 4px;
2422
+ border-radius: 4px;
2423
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
2424
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
2425
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
2426
+ }
2427
+ .csf-field .csf--transparent-slider .ui-slider-handle:before {
2428
+ content: " ";
2429
+ position: absolute;
2430
+ left: -2px;
2431
+ right: -2px;
2432
+ top: -3px;
2433
+ bottom: -3px;
2434
+ border: 2px solid #fff;
2435
+ -moz-border-radius: 3px;
2436
+ -webkit-border-radius: 3px;
2437
+ border-radius: 3px;
2438
+ }
2439
+ .csf-field .csf--transparent-offset {
2440
+ height: 18px;
2441
+ width: 200px;
2442
+ background: url(../images/checkerboard.png) repeat-y center left scroll #fff;
2443
+ -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.4) inset;
2444
+ -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.4) inset;
2445
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.4) inset;
2446
+ -moz-border-radius: 2px;
2447
+ -webkit-border-radius: 2px;
2448
+ border-radius: 2px;
2449
+ }
2450
+ .csf-field .csf--transparent-text {
2451
+ position: absolute;
2452
+ top: 12px;
2453
+ right: 10px;
2454
+ width: 30px;
2455
+ font-size: 12px;
2456
+ line-height: 12px;
2457
+ text-align: center;
2458
+ color: #999;
2459
+ }
2460
+ .csf-field .csf--transparent-button {
2461
+ cursor: pointer;
2462
+ user-select: none;
2463
+ margin-top: 10px;
2464
+ font-size: 11px;
2465
+ text-align: center;
2466
+ border-radius: 2px;
2467
+ padding: 3px 7px;
2468
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
2469
+ letter-spacing: 0.2px;
2470
+ color: #777;
2471
+ border: 1px solid #ccc;
2472
+ background-color: #f7f7f7;
2473
+ transition: background-color .2s, border-color .2s, color .2s;
2474
+ }
2475
+ .csf-field .csf--transparent-active .wp-color-result {
2476
+ background-image: url(../images/checkerboard.png);
2477
+ background-size: 135px;
2478
+ background-position: center left;
2479
+ background-color: transparent !important;
2480
+ }
2481
+ .csf-field .csf--transparent-active .csf--transparent-button {
2482
+ color: #fff;
2483
+ border-color: #3ea032;
2484
+ background-color: #4fb845;
2485
+ }
2486
+ .csf-field .csf--transparent-active .fa:before {
2487
+ content: "\f205";
2488
+ }
2489
+
2490
+ /**
2491
+ * 04. Widget
2492
+ */
2493
+ .csf-widgets > .csf-field {
2494
+ position: relative;
2495
+ top: -1px;
2496
+ margin-right: -15px;
2497
+ margin-left: -15px;
2498
+ padding: 12px 15px;
2499
+ }
2500
+ .csf-widgets > .csf-field .csf-field {
2501
+ margin-left: 0;
2502
+ margin-right: 0;
2503
+ }
2504
+ .csf-widgets > .csf-field .csf-title {
2505
+ float: none;
2506
+ width: 100%;
2507
+ margin-bottom: 5px;
2508
+ }
2509
+ .csf-widgets > .csf-field .csf-fieldset {
2510
+ margin-left: 0;
2511
+ }
2512
+ .csf-widgets .csf-field-text input {
2513
+ width: 100%;
2514
+ }
2515
+ .csf-widgets .csf-field-notice .csf-notice {
2516
+ padding: 15px;
2517
+ }
2518
+
2519
+ .control-section .csf-widgets > .csf-field {
2520
+ margin-right: -10px;
2521
+ margin-left: -10px;
2522
+ padding: 10px 12px;
2523
+ }
2524
+
2525
+ /**
2526
+ * 05. Widget
2527
+ */
2528
+ .control-section .csf-field {
2529
+ padding: 0;
2530
+ }
2531
+ .control-section .csf-field .csf-title {
2532
+ float: none;
2533
+ width: 100%;
2534
+ margin-bottom: 6px;
2535
+ }
2536
+ .control-section .csf-field .csf-title h4 {
2537
+ display: block;
2538
+ font-size: 13px;
2539
+ line-height: 1;
2540
+ font-weight: 600;
2541
+ color: inherit;
2542
+ }
2543
+ .control-section .csf-field .csf-fieldset {
2544
+ margin-left: 0;
2545
+ }
2546
+ .control-section .csf-help {
2547
+ top: -5px;
2548
+ right: -5px;
2549
+ }
2550
+ .control-section .csf-field-select select {
2551
+ width: 100%;
2552
+ }
2553
+ .control-section .csf-field-heading {
2554
+ color: inherit;
2555
+ font-size: 14px;
2556
+ line-height: 1em;
2557
+ margin-right: -15px;
2558
+ margin-left: -15px;
2559
+ padding: 15px;
2560
+ }
2561
+ .control-section .csf-field-subheading {
2562
+ color: inherit;
2563
+ font-size: 11px;
2564
+ margin-right: -15px;
2565
+ margin-left: -15px;
2566
+ padding: 10px 15px;
2567
+ }
2568
+ .control-section .csf-text-subtitle {
2569
+ margin-top: 4px;
2570
+ font-size: 12px;
2571
+ }
2572
+ .control-section .csf-field-submessage .csf-submessage {
2573
+ margin-right: -15px;
2574
+ margin-left: -15px;
2575
+ padding: 15px;
2576
+ }
2577
+ .control-section .csf-fieldset .csf-field-submessage .csf-submessage,
2578
+ .control-section .csf-fieldset .csf-field-heading,
2579
+ .control-section .csf-fieldset .csf-field-subheading {
2580
+ margin-left: 0;
2581
+ margin-right: 0;
2582
+ }
2583
+ .control-section .csf-field-date .csf--to {
2584
+ margin-left: 0;
2585
+ }
2586
+ .control-section .csf-field-sorter ul li {
2587
+ padding: 5px;
2588
+ }
2589
+ .control-section .csf-field-sorter .csf-modules {
2590
+ float: none;
2591
+ width: 100%;
2592
+ }
2593
+ .control-section .csf-field-sorter .csf-modules:first-child {
2594
+ padding-right: 0;
2595
+ padding-bottom: 15px;
2596
+ }
2597
+ .control-section .csf-field-background .csf--background-attributes {
2598
+ flex-direction: column;
2599
+ }
2600
+ .control-section .csf-field-spacing input {
2601
+ width: 90px;
2602
+ }
2603
+ .control-section .csf-field-border .csf--input {
2604
+ flex: 1 50%;
2605
+ }
2606
+ .control-section .csf-field-border input,
2607
+ .control-section .csf-field-border select {
2608
+ width: 100%;
2609
+ }
2610
+ .control-section .csf-field-spinner input {
2611
+ width: 50px;
2612
+ }
2613
+ .control-section .csf-field-number .csf--wrap {
2614
+ width: 100%;
2615
+ }
2616
+ .control-section .csf-field-backup .csf-export-data {
2617
+ display: none;
2618
+ }
2619
+ .control-section .csf-field-fieldset .csf-fieldset-content {
2620
+ border-color: #e5e5e5;
2621
+ }
2622
+ .control-section .csf-field-fieldset .csf-field {
2623
+ padding: 10px;
2624
+ }
2625
+ .control-section .csf-field-fieldset .csf-field .csf-title {
2626
+ margin-bottom: 5px;
2627
+ }
2628
+ .control-section .csf-field-fieldset .csf-field h4 {
2629
+ font-size: 12px;
2630
+ }
2631
+ .control-section .csf-field-group .csf-field,
2632
+ .control-section .csf-field-tabbed .csf-field,
2633
+ .control-section .csf-field-sortable .csf-field,
2634
+ .control-section .csf-field-repeater .csf-field,
2635
+ .control-section .csf-field-accordion .csf-field {
2636
+ padding: 10px;
2637
+ }
2638
+ .control-section .csf-field-group .csf-field .csf-title,
2639
+ .control-section .csf-field-tabbed .csf-field .csf-title,
2640
+ .control-section .csf-field-sortable .csf-field .csf-title,
2641
+ .control-section .csf-field-repeater .csf-field .csf-title,
2642
+ .control-section .csf-field-accordion .csf-field .csf-title {
2643
+ margin-bottom: 5px;
2644
+ }
2645
+ .control-section .csf-field-group .csf-field h4,
2646
+ .control-section .csf-field-tabbed .csf-field h4,
2647
+ .control-section .csf-field-sortable .csf-field h4,
2648
+ .control-section .csf-field-repeater .csf-field h4,
2649
+ .control-section .csf-field-accordion .csf-field h4 {
2650
+ font-size: 12px;
2651
+ }
2652
+ .control-section .csf-dependency-control.hidden {
2653
+ display: none !important;
2654
+ }
2655
+
2656
+ /**
2657
+ * 06. Taxonomy
2658
+ */
2659
+ .csf-taxonomy > .csf-field {
2660
+ border-top: none !important;
2661
+ }
2662
+ .csf-taxonomy > .csf-field-heading {
2663
+ font-size: 1.1em;
2664
+ padding: 20px !important;
2665
+ border: 1px solid #ddd;
2666
+ }
2667
+ .csf-taxonomy > .csf-field-subheading {
2668
+ font-size: 12px;
2669
+ padding: 15px !important;
2670
+ border: 1px solid #ddd;
2671
+ }
2672
+ .csf-taxonomy > .csf-field-submessage .csf-submessage {
2673
+ padding: 15px;
2674
+ border-left-width: 1px;
2675
+ border-left-style: solid;
2676
+ border-right-width: 1px;
2677
+ border-right-style: solid;
2678
+ }
2679
+ .csf-taxonomy > .csf-field-notice {
2680
+ background-color: transparent;
2681
+ }
2682
+ .csf-taxonomy .csf-section-title {
2683
+ display: block;
2684
+ padding: 15px;
2685
+ background-color: #f9f9f9;
2686
+ border: 1px solid #e5e5e5;
2687
+ -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
2688
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
2689
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
2690
+ }
2691
+
2692
+ .csf-taxonomy-add-fields > .csf-field {
2693
+ padding: 8px 0;
2694
+ }
2695
+ .csf-taxonomy-add-fields > .csf-field > .csf-title {
2696
+ float: none;
2697
+ width: 100%;
2698
+ padding: 2px 2px 4px 0;
2699
+ }
2700
+ .csf-taxonomy-add-fields > .csf-field > .csf-title h4 {
2701
+ font-size: 12px;
2702
+ font-weight: normal;
2703
+ }
2704
+ .csf-taxonomy-add-fields > .csf-field > .csf-fieldset {
2705
+ margin-left: 0;
2706
+ }
2707
+ .csf-taxonomy-add-fields > .csf-field > .csf-fieldset > .csf-help {
2708
+ right: -5px;
2709
+ }
2710
+ .csf-taxonomy-add-fields + p.submit {
2711
+ margin-top: 0;
2712
+ }
2713
+
2714
+ .csf-taxonomy-edit-fields > .csf-field {
2715
+ padding: 20px 0;
2716
+ }
2717
+ .csf-taxonomy-edit-fields > .csf-field > .csf-title {
2718
+ width: 225px;
2719
+ }
2720
+ .csf-taxonomy-edit-fields > .csf-field > .csf-title h4 {
2721
+ font-size: 14px;
2722
+ font-weight: 600;
2723
+ line-height: 1.3;
2724
+ display: inline-block;
2725
+ vertical-align: middle;
2726
+ }
2727
+ .csf-taxonomy-edit-fields > .csf-field > .csf-fieldset {
2728
+ margin-left: 225px;
2729
+ }
2730
+ .csf-taxonomy-edit-fields > .csf-field > .csf-fieldset > .csf-help {
2731
+ top: -5px;
2732
+ right: -5px;
2733
+ }
2734
+ .csf-taxonomy-edit-fields > .csf-field-submessage {
2735
+ margin: 20px 0;
2736
+ }
2737
+ .csf-taxonomy-edit-fields > .csf-field-subheading,
2738
+ .csf-taxonomy-edit-fields > .csf-field-heading {
2739
+ margin: 20px 0;
2740
+ border: 1px solid #ddd;
2741
+ }
2742
+
2743
+ /**
2744
+ * 06. Profile
2745
+ */
2746
+ .csf-profile > h2 > .fa {
2747
+ padding-right: 7px;
2748
+ }
2749
+ .csf-profile > .csf-field {
2750
+ padding: 15px 0;
2751
+ border-top: none !important;
2752
+ }
2753
+ .csf-profile > .csf-field > .csf-title {
2754
+ width: 220px;
2755
+ }
2756
+ .csf-profile > .csf-field > .csf-title h4 {
2757
+ font-size: 14px;
2758
+ font-weight: 600;
2759
+ line-height: 1.3;
2760
+ display: inline-block;
2761
+ vertical-align: middle;
2762
+ }
2763
+ .csf-profile > .csf-field > .csf-fieldset {
2764
+ margin-left: 220px;
2765
+ }
2766
+ .csf-profile > .csf-field > .csf-fieldset > .csf-help {
2767
+ top: -15px;
2768
+ right: -5px;
2769
+ }
2770
+ .csf-profile > .csf-field-heading {
2771
+ font-size: 1.1em;
2772
+ }
2773
+ .csf-profile > .csf-field-subheading {
2774
+ font-size: 12px;
2775
+ }
2776
+ .csf-profile > .csf-field-subheading,
2777
+ .csf-profile > .csf-field-heading {
2778
+ margin: 10px 0;
2779
+ padding: 15px !important;
2780
+ border: 1px solid #ddd;
2781
+ }
2782
+ .csf-profile > .csf-field-submessage {
2783
+ margin: 20px 0;
2784
+ }
2785
+ .csf-profile > .csf-field-submessage .csf-submessage {
2786
+ padding: 10px;
2787
+ border-left-width: 1px;
2788
+ border-left-style: solid;
2789
+ border-right-width: 1px;
2790
+ border-right-style: solid;
2791
+ }
2792
+ .csf-profile > .csf-field-notice {
2793
+ background-color: transparent;
2794
+ }
2795
+
2796
+ /**
2797
+ * 08. Modal
2798
+ */
2799
+ .csf-modal {
2800
+ display: none;
2801
+ position: fixed;
2802
+ z-index: 100101;
2803
+ top: 0;
2804
+ left: 0;
2805
+ width: 100%;
2806
+ height: 100%;
2807
+ }
2808
+
2809
+ .csf-modal-icon {
2810
+ z-index: 100102;
2811
+ }
2812
+
2813
+ .csf-modal-table {
2814
+ display: table;
2815
+ width: 100%;
2816
+ height: 100%;
2817
+ }
2818
+
2819
+ .csf-modal-table-cell {
2820
+ display: table-cell;
2821
+ vertical-align: middle;
2822
+ margin: 100px 0;
2823
+ }
2824
+
2825
+ .csf-modal-inner {
2826
+ position: relative;
2827
+ z-index: 10;
2828
+ width: 760px;
2829
+ height: 750px;
2830
+ margin: 0 auto;
2831
+ background-color: #fff;
2832
+ }
2833
+
2834
+ .csf-modal-content {
2835
+ position: relative;
2836
+ overflow: hidden;
2837
+ overflow-y: auto;
2838
+ height: 595px;
2839
+ }
2840
+ .csf-modal-content .csf-shortcode-button {
2841
+ display: none;
2842
+ }
2843
+ .csf-modal-content .csf-fieldset {
2844
+ margin-left: 25%;
2845
+ }
2846
+ .csf-modal-content .csf-title {
2847
+ width: 20%;
2848
+ }
2849
+ .csf-modal-content .csf-field {
2850
+ padding: 15px 30px 15px 15px;
2851
+ }
2852
+ .csf-modal-content a:active, .csf-modal-content a:focus {
2853
+ outline: none;
2854
+ -moz-box-shadow: none;
2855
+ -webkit-box-shadow: none;
2856
+ box-shadow: none;
2857
+ }
2858
+ .csf-modal-content h4 {
2859
+ font-size: 13px;
2860
+ }
2861
+ .csf-modal-content h4 small {
2862
+ font-style: italic;
2863
+ font-weight: 400;
2864
+ color: #aaa;
2865
+ }
2866
+
2867
+ .csf-modal-title {
2868
+ position: relative;
2869
+ background-color: #fcfcfc;
2870
+ border-bottom: 1px solid #ddd;
2871
+ height: 36px;
2872
+ font-size: 16px;
2873
+ font-weight: 600;
2874
+ line-height: 36px;
2875
+ margin: 0;
2876
+ padding: 0 36px 0 16px;
2877
+ }
2878
+
2879
+ .csf-modal-header {
2880
+ width: 100%;
2881
+ padding: 14px 0;
2882
+ background-color: #f5f5f5;
2883
+ border-bottom: 1px solid #eee;
2884
+ }
2885
+ .csf-modal-header select {
2886
+ display: block;
2887
+ width: 250px;
2888
+ margin: 0 auto;
2889
+ font-size: 13px;
2890
+ line-height: 1;
2891
+ height: 30px;
2892
+ min-height: 30px;
2893
+ background-color: #fff;
2894
+ }
2895
+
2896
+ .csf-modal-close {
2897
+ color: #666;
2898
+ padding: 0;
2899
+ position: absolute;
2900
+ top: 0;
2901
+ right: 0;
2902
+ width: 36px;
2903
+ height: 36px;
2904
+ text-align: center;
2905
+ background: none;
2906
+ border: none;
2907
+ cursor: pointer;
2908
+ }
2909
+ .csf-modal-close:before {
2910
+ font: normal 20px/36px dashicons;
2911
+ content: "\f158";
2912
+ vertical-align: top;
2913
+ width: 36px;
2914
+ height: 36px;
2915
+ }
2916
+ .csf-modal-close:hover {
2917
+ opacity: 0.5;
2918
+ }
2919
+
2920
+ .csf-modal-insert-wrapper {
2921
+ text-align: center;
2922
+ width: 100%;
2923
+ padding: 15px 0;
2924
+ background-color: #f5f5f5;
2925
+ border-top: 1px solid #eee;
2926
+ }
2927
+
2928
+ .csf-modal-overlay {
2929
+ position: absolute;
2930
+ top: 0;
2931
+ left: 0;
2932
+ width: 100%;
2933
+ height: 100%;
2934
+ background-color: #000;
2935
+ opacity: 0.5;
2936
+ }
2937
+
2938
+ /**
2939
+ * 08. 01. Shortcode Modal
2940
+ */
2941
+ .csf--repeatable {
2942
+ padding: 15px 15px 0 15px;
2943
+ }
2944
+
2945
+ .csf--repeat-button-block {
2946
+ text-align: center;
2947
+ padding-bottom: 15px;
2948
+ }
2949
+
2950
+ .csf--repeat-shortcode {
2951
+ position: relative;
2952
+ margin-bottom: 15px;
2953
+ border: 1px dashed #ddd;
2954
+ }
2955
+ .csf--repeat-shortcode:first-child .csf-repeat-remove {
2956
+ display: none;
2957
+ }
2958
+ .csf--repeat-shortcode .csf-repeat-remove {
2959
+ position: absolute;
2960
+ right: 10px;
2961
+ top: 10px;
2962
+ z-index: 10;
2963
+ cursor: pointer;
2964
+ display: inline-block;
2965
+ font-size: 11px;
2966
+ width: 18px;
2967
+ height: 18px;
2968
+ line-height: 18px;
2969
+ text-align: center;
2970
+ border-radius: 2px;
2971
+ color: #fff;
2972
+ background-color: #e14d43;
2973
+ opacity: 0.5;
2974
+ }
2975
+ .csf--repeat-shortcode .csf-repeat-remove:hover {
2976
+ opacity: 1;
2977
+ }
2978
+
2979
+ .csf-shortcode-single .csf-modal-inner {
2980
+ height: 750px;
2981
+ }
2982
+ .csf-shortcode-single .csf-modal-content {
2983
+ height: 652px;
2984
+ }
2985
+
2986
+ .elementor-editor-active .csf-shortcode-button {
2987
+ margin-left: 5px;
2988
+ }
2989
+ .elementor-editor-active .csf-modal .hidden {
2990
+ display: none !important;
2991
+ }
2992
+
2993
+ /**
2994
+ * 08. 03. Icon Modal
2995
+ */
2996
+ .csf-modal-icon .csf-icon-title {
2997
+ padding: 15px 0;
2998
+ margin: 4px;
2999
+ font-size: 14px;
3000
+ font-weight: bold;
3001
+ text-align: center;
3002
+ border: 1px solid #eee;
3003
+ background-color: #f7f7f7;
3004
+ }
3005
+ .csf-modal-icon .csf-icon-search {
3006
+ width: 250px;
3007
+ height: 40px;
3008
+ line-height: 40px;
3009
+ }
3010
+ .csf-modal-icon a {
3011
+ display: inline-block;
3012
+ padding: 4px;
3013
+ cursor: pointer;
3014
+ }
3015
+ .csf-modal-icon a .csf-icon {
3016
+ position: relative;
3017
+ padding: 4px;
3018
+ display: inline-block;
3019
+ font-size: 14px;
3020
+ width: 30px;
3021
+ height: 26px;
3022
+ line-height: 26px;
3023
+ text-align: center;
3024
+ vertical-align: top;
3025
+ color: #555;
3026
+ border: 1px solid #ccc;
3027
+ background-color: #f7f7f7;
3028
+ -moz-border-radius: 3px;
3029
+ -webkit-border-radius: 3px;
3030
+ border-radius: 3px;
3031
+ -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
3032
+ -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
3033
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
3034
+ -moz-box-sizing: content-box;
3035
+ -webkit-box-sizing: content-box;
3036
+ box-sizing: content-box;
3037
+ }
3038
+ .csf-modal-icon a:hover .csf-icon {
3039
+ color: #fff;
3040
+ border-color: #222;
3041
+ background-color: #222;
3042
+ }
3043
+ .csf-modal-icon .csf-modal-content {
3044
+ padding: 10px;
3045
+ height: 618px;
3046
+ }
3047
+ .csf-modal-icon .csf-text-error {
3048
+ padding: 10px;
3049
+ }
3050
+
3051
+ .csf-modal-loading {
3052
+ display: none;
3053
+ position: absolute;
3054
+ left: 15px;
3055
+ top: 15px;
3056
+ }
3057
+
3058
+ .csf-loading {
3059
+ position: relative;
3060
+ width: 20px;
3061
+ height: 20px;
3062
+ background: #ccc;
3063
+ -moz-border-radius: 20px;
3064
+ -webkit-border-radius: 20px;
3065
+ border-radius: 20px;
3066
+ -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.07);
3067
+ -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.07);
3068
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.07);
3069
+ }
3070
+ .csf-loading:after {
3071
+ position: absolute;
3072
+ top: 50%;
3073
+ left: 50%;
3074
+ width: 4px;
3075
+ height: 4px;
3076
+ content: "";
3077
+ margin-top: -2px;
3078
+ margin-left: -2px;
3079
+ background-color: white;
3080
+ -moz-animation-duration: 0.5s;
3081
+ -webkit-animation-duration: 0.5s;
3082
+ animation-duration: 0.5s;
3083
+ -moz-animation-iteration-count: infinite;
3084
+ -webkit-animation-iteration-count: infinite;
3085
+ animation-iteration-count: infinite;
3086
+ -moz-animation-timing-function: linear;
3087
+ -webkit-animation-timing-function: linear;
3088
+ animation-timing-function: linear;
3089
+ -moz-animation-name: csfLoader;
3090
+ -webkit-animation-name: csfLoader;
3091
+ animation-name: csfLoader;
3092
+ -moz-border-radius: 4px;
3093
+ -webkit-border-radius: 4px;
3094
+ border-radius: 4px;
3095
+ }
3096
+
3097
+ @-moz-keyframes csfLoader {
3098
+ 0% {
3099
+ -moz-transform: rotate(0deg) translateX(-6px) rotate(0deg);
3100
+ transform: rotate(0deg) translateX(-6px) rotate(0deg);
3101
+ }
3102
+ 100% {
3103
+ -moz-transform: rotate(360deg) translateX(-6px) rotate(-360deg);
3104
+ transform: rotate(360deg) translateX(-6px) rotate(-360deg);
3105
+ }
3106
+ }
3107
+ @-webkit-keyframes csfLoader {
3108
+ 0% {
3109
+ -webkit-transform: rotate(0deg) translateX(-6px) rotate(0deg);
3110
+ transform: rotate(0deg) translateX(-6px) rotate(0deg);
3111
+ }
3112
+ 100% {
3113
+ -webkit-transform: rotate(360deg) translateX(-6px) rotate(-360deg);
3114
+ transform: rotate(360deg) translateX(-6px) rotate(-360deg);
3115
+ }
3116
+ }
3117
+ @keyframes csfLoader {
3118
+ 0% {
3119
+ -moz-transform: rotate(0deg) translateX(-6px) rotate(0deg);
3120
+ -ms-transform: rotate(0deg) translateX(-6px) rotate(0deg);
3121
+ -webkit-transform: rotate(0deg) translateX(-6px) rotate(0deg);
3122
+ transform: rotate(0deg) translateX(-6px) rotate(0deg);
3123
+ }
3124
+ 100% {
3125
+ -moz-transform: rotate(360deg) translateX(-6px) rotate(-360deg);
3126
+ -ms-transform: rotate(360deg) translateX(-6px) rotate(-360deg);
3127
+ -webkit-transform: rotate(360deg) translateX(-6px) rotate(-360deg);
3128
+ transform: rotate(360deg) translateX(-6px) rotate(-360deg);
3129
+ }
3130
+ }
3131
+ /**
3132
+ * 08. Helper
3133
+ */
3134
+ .csf-text-desc,
3135
+ .csf-text-subtitle {
3136
+ font-weight: 400;
3137
+ margin-top: 10px;
3138
+ color: #999;
3139
+ }
3140
+
3141
+ .csf-text-success {
3142
+ color: #2b542c;
3143
+ }
3144
+
3145
+ .csf-text-error {
3146
+ color: #d02c21;
3147
+ }
3148
+
3149
+ .csf-text-info {
3150
+ color: #31708f;
3151
+ }
3152
+
3153
+ .csf-text-warning {
3154
+ color: #ffb900;
3155
+ }
3156
+
3157
+ .csf-text-muted {
3158
+ color: #aaa;
3159
+ }
3160
+
3161
+ .csf-text-left {
3162
+ text-align: left;
3163
+ }
3164
+
3165
+ .csf-text-center {
3166
+ text-align: center;
3167
+ }
3168
+
3169
+ .csf-text-right {
3170
+ text-align: right;
3171
+ }
3172
+
3173
+ .csf-block-left {
3174
+ float: left;
3175
+ }
3176
+
3177
+ .csf-block-right {
3178
+ float: right;
3179
+ }
3180
+
3181
+ .csf-full-width {
3182
+ width: 100%;
3183
+ }
3184
+
3185
+ .csf-full-half {
3186
+ width: 50%;
3187
+ }
3188
+
3189
+ .csf-table {
3190
+ width: 100%;
3191
+ display: table;
3192
+ }
3193
+
3194
+ .csf-table-cell {
3195
+ display: table-cell;
3196
+ vertical-align: middle;
3197
+ }
3198
+
3199
+ .csf-table-expanded {
3200
+ width: 100%;
3201
+ }
3202
+
3203
+ .csf-nowrap {
3204
+ white-space: nowrap;
3205
+ }
3206
+
3207
+ .csf-text-highlight {
3208
+ padding: 2px 4px;
3209
+ font-size: 90%;
3210
+ color: #c7254e;
3211
+ background-color: #f9f2f4;
3212
+ -moz-border-radius: 2px;
3213
+ -webkit-border-radius: 2px;
3214
+ border-radius: 2px;
3215
+ }
3216
+
3217
+ .csf-text-highlight-gray {
3218
+ padding: 2px 4px;
3219
+ font-size: 90%;
3220
+ background-color: #f0f0f0;
3221
+ -moz-border-radius: 2px;
3222
+ -webkit-border-radius: 2px;
3223
+ border-radius: 2px;
3224
+ }
3225
+
3226
+ .csf-hidden {
3227
+ display: none;
3228
+ }
3229
+
3230
+ .csf-hide {
3231
+ display: none !important;
3232
+ }
3233
+
3234
+ .csf-show {
3235
+ display: block !important;
3236
+ }
3237
+
3238
+ .csf-opacity {
3239
+ opacity: 0.5;
3240
+ }
3241
+
3242
+ .csf-warning-primary {
3243
+ color: #fff !important;
3244
+ border-color: #dc3545 !important;
3245
+ background: #dc3545 !important;
3246
+ }
3247
+ .csf-warning-primary:hover, .csf-warning-primary:focus {
3248
+ border-color: #bd2130 !important;
3249
+ background: #bd2130 !important;
3250
+ }
3251
+ .csf-warning-primary:focus {
3252
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px #bd2130 !important;
3253
+ }
3254
+ .csf-warning-primary:active {
3255
+ border-color: #bd2130 !important;
3256
+ background: #bd2130 !important;
3257
+ }
3258
+
3259
+ .csf-form-result {
3260
+ display: none;
3261
+ float: left;
3262
+ padding: 0 8px;
3263
+ margin-right: 4px;
3264
+ font-size: 11px;
3265
+ line-height: 28px;
3266
+ user-select: none;
3267
+ border-radius: 2px;
3268
+ }
3269
+
3270
+ .csf-form-show {
3271
+ display: block;
3272
+ }
3273
+
3274
+ .csf-form-success {
3275
+ color: #fff;
3276
+ background-color: #46b450;
3277
+ }
3278
+
3279
+ .csf-form-warning {
3280
+ color: #8a6d3b;
3281
+ background-color: #faebcc;
3282
+ }
3283
+
3284
+ .csf-label-error {
3285
+ position: relative;
3286
+ top: -2px;
3287
+ display: inline-block;
3288
+ font-size: 10px;
3289
+ line-height: 10px;
3290
+ height: 10px;
3291
+ width: 10px;
3292
+ padding: 1px;
3293
+ font-style: normal;
3294
+ text-align: center;
3295
+ color: #fff;
3296
+ vertical-align: middle;
3297
+ background-color: #e10000;
3298
+ -moz-border-radius: 2px;
3299
+ -webkit-border-radius: 2px;
3300
+ border-radius: 2px;
3301
+ }
3302
+
3303
+ .csf-no-option {
3304
+ padding: 30px;
3305
+ }
3306
+
3307
+ .csf-input-number {
3308
+ -moz-appearance: textfield;
3309
+ }
3310
+
3311
+ .csf-input-number::-webkit-inner-spin-button,
3312
+ .csf-input-number::-webkit-outer-spin-button {
3313
+ -webkit-appearance: none;
3314
+ margin: 0;
3315
+ }
3316
+
3317
+ /**
3318
+ * 10. Welcome Page
3319
+ */
3320
+ .csf-welcome-wrap {
3321
+ position: relative;
3322
+ margin: 25px 40px 0 20px;
3323
+ font-size: 15px;
3324
+ max-width: 1200px;
3325
+ }
3326
+ .csf-welcome-wrap p {
3327
+ font-size: 14px;
3328
+ line-height: 1.5;
3329
+ }
3330
+ .csf-welcome-wrap h1 {
3331
+ margin: 0.2em 200px 0 0;
3332
+ padding: 0;
3333
+ color: #32373c;
3334
+ line-height: 1.2em;
3335
+ font-size: 2.8em;
3336
+ font-weight: 400;
3337
+ }
3338
+ .csf-welcome-wrap .csf-logo {
3339
+ position: absolute;
3340
+ overflow: hidden;
3341
+ top: 0;
3342
+ right: 0;
3343
+ height: 160px;
3344
+ width: 140px;
3345
+ background-image: linear-gradient(45deg, #2d67cb, #ad19f3);
3346
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25), inset 0 0 0 4px rgba(0, 0, 0, 0.25);
3347
+ }
3348
+ .csf-welcome-wrap .csf-logo .csf--effects i {
3349
+ position: absolute;
3350
+ width: 200px;
3351
+ height: 100px;
3352
+ background-color: rgba(0, 0, 0, 0.15);
3353
+ transform: rotate(-45deg);
3354
+ }
3355
+ .csf-welcome-wrap .csf-logo .csf--effects i:nth-child(1) {
3356
+ bottom: -20px;
3357
+ right: -70px;
3358
+ }
3359
+ .csf-welcome-wrap .csf-logo .csf--effects i:nth-child(2) {
3360
+ bottom: -35px;
3361
+ right: -80px;
3362
+ }
3363
+ .csf-welcome-wrap .csf-logo .csf--effects i:nth-child(3) {
3364
+ bottom: -50px;
3365
+ right: -90px;
3366
+ }
3367
+ .csf-welcome-wrap .csf-logo .csf--effects i:nth-child(4) {
3368
+ bottom: -65px;
3369
+ right: -100px;
3370
+ }
3371
+ .csf-welcome-wrap .csf-logo .csf--wp-logos {
3372
+ position: relative;
3373
+ padding-top: 25px;
3374
+ text-align: center;
3375
+ }
3376
+ .csf-welcome-wrap .csf-logo .csf--wp-logo {
3377
+ position: absolute;
3378
+ left: 20px;
3379
+ width: 20px;
3380
+ height: 20px;
3381
+ background-repeat: no-repeat;
3382
+ background-position: center center;
3383
+ background-image: url(../images/wp-logo.svg);
3384
+ }
3385
+ .csf-welcome-wrap .csf-logo .csf--wp-plugin-logo {
3386
+ display: inline-block;
3387
+ width: 50px;
3388
+ height: 50px;
3389
+ border: 3px solid #fff;
3390
+ background-size: 40px;
3391
+ background-repeat: no-repeat;
3392
+ background-position: center center;
3393
+ background-image: url(../images/wp-plugin-logo.svg);
3394
+ border-radius: 100%;
3395
+ vertical-align: middle;
3396
+ }
3397
+ .csf-welcome-wrap .csf-logo .csf--text {
3398
+ position: absolute;
3399
+ left: 0;
3400
+ right: 0;
3401
+ top: 90px;
3402
+ color: #fff;
3403
+ font-size: 13px;
3404
+ line-height: 1.2em;
3405
+ font-weight: 600;
3406
+ text-align: center;
3407
+ text-transform: uppercase;
3408
+ text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.25);
3409
+ }
3410
+ .csf-welcome-wrap .csf-logo .csf--version {
3411
+ top: auto;
3412
+ left: auto;
3413
+ right: 8px;
3414
+ bottom: 4px;
3415
+ font-size: 11px;
3416
+ text-transform: lowercase;
3417
+ }
3418
+ .csf-welcome-wrap .csf-about-text {
3419
+ font-weight: 400;
3420
+ line-height: 1.6em;
3421
+ font-size: 19px;
3422
+ margin: 1em 200px 1em 0;
3423
+ color: #555d66;
3424
+ }
3425
+ .csf-welcome-wrap .csf-demo-button {
3426
+ margin: 1em 200px 2em 0;
3427
+ }
3428
+ .csf-welcome-wrap .nav-tab-wrapper {
3429
+ margin-bottom: 20px;
3430
+ }
3431
+ .csf-welcome-wrap ul {
3432
+ list-style-type: disc;
3433
+ padding-left: 15px;
3434
+ }
3435
+ .csf-welcome-wrap .csf--col {
3436
+ float: left;
3437
+ padding-right: 20px;
3438
+ box-sizing: border-box;
3439
+ }
3440
+ .csf-welcome-wrap .csf--col-2 {
3441
+ width: 50%;
3442
+ }
3443
+ .csf-welcome-wrap .csf--col-3 {
3444
+ width: 33.333%;
3445
+ }
3446
+ .csf-welcome-wrap .csf--col-4 {
3447
+ width: 25%;
3448
+ }
3449
+ .csf-welcome-wrap .csf--col-5 {
3450
+ width: 20%;
3451
+ }
3452
+ .csf-welcome-wrap .csf--col-last {
3453
+ padding-right: 0;
3454
+ }
3455
+ .csf-welcome-wrap .csf--col-upgrade {
3456
+ padding: 10px 0;
3457
+ text-align: center;
3458
+ border-top: 1px solid #e5e5e5;
3459
+ }
3460
+
3461
+ .csf--table-compare thead td,
3462
+ .csf--table-compare tfoot td {
3463
+ text-align: center;
3464
+ }
3465
+ .csf--table-compare td {
3466
+ font-size: 14px;
3467
+ text-align: center;
3468
+ vertical-align: middle;
3469
+ padding: 10px;
3470
+ }
3471
+ .csf--table-compare td:first-child {
3472
+ text-align: left;
3473
+ }
3474
+ .csf--table-compare tfoot td {
3475
+ padding: 15px 0;
3476
+ }
3477
+ .csf--table-compare .fa {
3478
+ font-size: 18px;
3479
+ }
3480
+ .csf--table-compare .fa-check-circle {
3481
+ color: #46b450;
3482
+ }
3483
+ .csf--table-compare .fa-times-circle {
3484
+ color: #dc3232;
3485
+ }
3486
+
3487
+ .csf-welcome-cols {
3488
+ clear: both;
3489
+ margin: 20px 0;
3490
+ background-color: #fff;
3491
+ padding: 0 0;
3492
+ border-radius: 2px;
3493
+ border: 1px solid #e5e5e5;
3494
+ }
3495
+ .csf-welcome-cols .csf--col {
3496
+ width: 25%;
3497
+ float: left;
3498
+ padding: 20px;
3499
+ text-align: center;
3500
+ box-sizing: border-box;
3501
+ min-height: 200px;
3502
+ border-right: 1px solid #e5e5e5;
3503
+ }
3504
+ .csf-welcome-cols .csf--left,
3505
+ .csf-welcome-cols .csf--block {
3506
+ float: left;
3507
+ width: 20%;
3508
+ padding: 0 30px;
3509
+ text-align: center;
3510
+ box-sizing: border-box;
3511
+ }
3512
+ .csf-welcome-cols .csf--block {
3513
+ width: 80%;
3514
+ }
3515
+ .csf-welcome-cols .csf--col-first {
3516
+ border-bottom: 1px solid #e5e5e5;
3517
+ }
3518
+ .csf-welcome-cols .csf--last {
3519
+ border-right: none;
3520
+ }
3521
+ .csf-welcome-cols .csf--space {
3522
+ height: 20px;
3523
+ }
3524
+ .csf-welcome-cols .csf--icon {
3525
+ display: inline-block;
3526
+ font-size: 20px;
3527
+ width: 30px;
3528
+ height: 30px;
3529
+ line-height: 30px;
3530
+ text-align: center;
3531
+ margin-bottom: 10px;
3532
+ color: #fff;
3533
+ background-color: #555;
3534
+ border-radius: 30px;
3535
+ }
3536
+ .csf-welcome-cols .csf--active {
3537
+ background-color: #5cb85c;
3538
+ }
3539
+ .csf-welcome-cols .csf--deactive {
3540
+ background-color: #e14d43;
3541
+ }
3542
+ .csf-welcome-cols .csf--title {
3543
+ font-weight: bold;
3544
+ display: block;
3545
+ }
3546
+ .csf-welcome-cols p:last-child {
3547
+ margin-bottom: 0;
3548
+ }
3549
+
3550
+ .csf-features-cols .csf--key-features {
3551
+ width: 30%;
3552
+ }
3553
+ .csf-features-cols .csf--available-fields {
3554
+ width: 70%;
3555
+ }
3556
+
3557
+ .csf-code-block {
3558
+ margin: 20px 0;
3559
+ padding: 5px 20px;
3560
+ background-color: #fff;
3561
+ border-radius: 2px;
3562
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);
3563
+ }
3564
+ .csf-code-block pre {
3565
+ font-size: 13px;
3566
+ color: #0073aa;
3567
+ }
3568
+ .csf-code-block pre span {
3569
+ color: #999;
3570
+ }
3571
+
3572
+ .csf--table-fields td {
3573
+ font-size: 14px;
3574
+ }
3575
+
3576
+ .csf--upgrade a {
3577
+ color: #5cb85c;
3578
+ font-weight: bold;
3579
+ }
3580
+ .csf--upgrade a:focus, .csf--upgrade a:hover {
3581
+ color: #4aa14a;
3582
+ outline: none;
3583
+ box-shadow: none;
3584
+ }
3585
+
3586
+ @media only screen and (max-width: 782px) {
3587
+ .csf-welcome-cols .csf--col {
3588
+ width: 100%;
3589
+ min-height: auto;
3590
+ border-right: none;
3591
+ border-bottom: 1px solid #e5e5e5;
3592
+ }
3593
+
3594
+ .csf-features-cols .csf--key-features {
3595
+ width: 100%;
3596
+ }
3597
+ .csf-features-cols .csf--available-fields {
3598
+ width: 100%;
3599
+ }
3600
+ }
3601
+ /**
3602
+ * 11. Responsive
3603
+ */
3604
+ @media only screen and (max-width: 1200px) {
3605
+ .csf-metabox .csf-field .csf-title {
3606
+ float: none;
3607
+ width: 100%;
3608
+ margin-bottom: 10px;
3609
+ }
3610
+ .csf-metabox .csf-field .csf-fieldset {
3611
+ margin-left: 0;
3612
+ }
3613
+ }
3614
+ @media only screen and (max-width: 782px) {
3615
+ .csf-header-inner {
3616
+ text-align: center;
3617
+ }
3618
+ .csf-header-inner h1 {
3619
+ width: 100%;
3620
+ margin-bottom: 10px;
3621
+ }
3622
+
3623
+ .csf-form-result {
3624
+ float: none;
3625
+ margin-right: 0;
3626
+ margin-bottom: 10px;
3627
+ }
3628
+
3629
+ .csf-search,
3630
+ .csf-header-right,
3631
+ .csf-header-left {
3632
+ width: 100%;
3633
+ }
3634
+
3635
+ .csf-search {
3636
+ text-align: center;
3637
+ margin-bottom: 15px;
3638
+ }
3639
+
3640
+ .csf-footer {
3641
+ text-align: center;
3642
+ }
3643
+
3644
+ .csf-buttons {
3645
+ float: none;
3646
+ }
3647
+
3648
+ .csf-copyright {
3649
+ float: none;
3650
+ margin-top: 10px;
3651
+ }
3652
+
3653
+ .csf-nav,
3654
+ .csf-expand-all,
3655
+ .csf-reset-section,
3656
+ .csf-nav-background {
3657
+ display: none !important;
3658
+ }
3659
+
3660
+ .csf-content {
3661
+ margin-left: 0;
3662
+ }
3663
+
3664
+ .csf-section-title,
3665
+ .csf-section {
3666
+ display: block !important;
3667
+ }
3668
+
3669
+ .csf-field .csf-title {
3670
+ float: none;
3671
+ width: 100%;
3672
+ margin-bottom: 10px;
3673
+ }
3674
+ .csf-field .csf-fieldset {
3675
+ margin-left: 0;
3676
+ }
3677
+
3678
+ .csf-modal-inner {
3679
+ width: 350px;
3680
+ height: 400px;
3681
+ }
3682
+
3683
+ .csf-modal-content {
3684
+ height: 237px;
3685
+ }
3686
+
3687
+ .csf-icon-dialog .csf-modal-inner {
3688
+ width: 305px;
3689
+ height: 380px;
3690
+ }
3691
+ .csf-icon-dialog .csf-modal-content {
3692
+ height: 267px;
3693
+ }
3694
+
3695
+ .csf-modal-icon .csf-modal-inner {
3696
+ width: 330px;
3697
+ height: 385px;
3698
+ }
3699
+ .csf-modal-icon .csf-modal-content {
3700
+ height: 252px;
3701
+ }
3702
+
3703
+ .csf-profile > .csf-field > .csf-title {
3704
+ float: none;
3705
+ width: 100%;
3706
+ margin-bottom: 10px;
3707
+ }
3708
+ .csf-profile > .csf-field > .csf-fieldset {
3709
+ margin-left: 0;
3710
+ }
3711
+ }
3712
+ /**
3713
+ * Chosen JS Styles
3714
+ */
3715
+ .chosen-container {
3716
+ position: relative;
3717
+ display: inline-block;
3718
+ vertical-align: middle;
3719
+ font-size: 13px;
3720
+ user-select: none;
3721
+ }
3722
+
3723
+ .chosen-container * {
3724
+ box-sizing: border-box;
3725
+ }
3726
+
3727
+ .chosen-container .chosen-drop {
3728
+ position: absolute;
3729
+ top: 100%;
3730
+ z-index: 1010;
3731
+ width: 100%;
3732
+ border: 1px solid #aaa;
3733
+ border-top: 0;
3734
+ background: #fff;
3735
+ box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
3736
+ clip: rect(0, 0, 0, 0);
3737
+ clip-path: inset(100% 100%);
3738
+ }
3739
+
3740
+ .chosen-container.chosen-with-drop .chosen-drop {
3741
+ clip: auto;
3742
+ clip-path: none;
3743
+ }
3744
+
3745
+ .chosen-container a {
3746
+ cursor: pointer;
3747
+ }
3748
+
3749
+ .chosen-container .search-choice .group-name, .chosen-container .chosen-single .group-name {
3750
+ margin-right: 4px;
3751
+ overflow: hidden;
3752
+ white-space: nowrap;
3753
+ text-overflow: ellipsis;
3754
+ font-weight: normal;
3755
+ color: #999999;
3756
+ }
3757
+
3758
+ .chosen-container .search-choice .group-name:after, .chosen-container .chosen-single .group-name:after {
3759
+ content: ":";
3760
+ padding-left: 2px;
3761
+ vertical-align: top;
3762
+ }
3763
+
3764
+ .chosen-container-single .chosen-single {
3765
+ position: relative;
3766
+ display: block;
3767
+ overflow: hidden;
3768
+ padding: 0 0 0 8px;
3769
+ height: 25px;
3770
+ border: 1px solid #aaa;
3771
+ border-radius: 5px;
3772
+ background-color: #fff;
3773
+ background: linear-gradient(#ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
3774
+ background-clip: padding-box;
3775
+ box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1);
3776
+ color: #444;
3777
+ text-decoration: none;
3778
+ white-space: nowrap;
3779
+ line-height: 24px;
3780
+ }
3781
+
3782
+ .chosen-container-single .chosen-default {
3783
+ color: #999;
3784
+ }
3785
+
3786
+ .chosen-container-single .chosen-single span {
3787
+ display: block;
3788
+ overflow: hidden;
3789
+ margin-right: 26px;
3790
+ text-overflow: ellipsis;
3791
+ white-space: nowrap;
3792
+ }
3793
+
3794
+ .chosen-container-single .chosen-single-with-deselect span {
3795
+ margin-right: 38px;
3796
+ }
3797
+
3798
+ .chosen-container-single .chosen-single abbr {
3799
+ position: absolute;
3800
+ top: 6px;
3801
+ right: 26px;
3802
+ display: block;
3803
+ width: 12px;
3804
+ height: 12px;
3805
+ font-size: 1px;
3806
+ }
3807
+
3808
+ .chosen-container-single .chosen-single div {
3809
+ position: absolute;
3810
+ top: 0;
3811
+ right: 0;
3812
+ display: block;
3813
+ width: 18px;
3814
+ height: 100%;
3815
+ }
3816
+
3817
+ .chosen-container-single .chosen-single div b {
3818
+ display: block;
3819
+ width: 100%;
3820
+ height: 100%;
3821
+ }
3822
+
3823
+ .chosen-container-single .chosen-search {
3824
+ position: relative;
3825
+ z-index: 1010;
3826
+ margin: 0;
3827
+ padding: 3px 4px;
3828
+ white-space: nowrap;
3829
+ }
3830
+
3831
+ .chosen-container-single .chosen-search input[type="text"] {
3832
+ margin: 1px 0;
3833
+ padding: 4px 20px 4px 5px;
3834
+ width: 100%;
3835
+ height: auto;
3836
+ outline: 0;
3837
+ border: 1px solid #aaa;
3838
+ font-size: 1em;
3839
+ font-family: sans-serif;
3840
+ line-height: normal;
3841
+ border-radius: 0;
3842
+ }
3843
+
3844
+ .chosen-container-single .chosen-drop {
3845
+ margin-top: -1px;
3846
+ border-radius: 0 0 4px 4px;
3847
+ background-clip: padding-box;
3848
+ }
3849
+
3850
+ .chosen-container-single.chosen-container-single-nosearch .chosen-search {
3851
+ position: absolute;
3852
+ clip: rect(0, 0, 0, 0);
3853
+ clip-path: inset(100% 100%);
3854
+ }
3855
+
3856
+ .chosen-container .chosen-results {
3857
+ color: #444;
3858
+ position: relative;
3859
+ overflow-x: hidden;
3860
+ overflow-y: auto;
3861
+ margin: 0 4px 4px 0;
3862
+ padding: 0 0 0 4px;
3863
+ max-height: 240px;
3864
+ -webkit-overflow-scrolling: touch;
3865
+ }
3866
+
3867
+ .chosen-container .chosen-results li {
3868
+ display: none;
3869
+ margin: 0;
3870
+ padding: 5px 6px;
3871
+ list-style: none;
3872
+ line-height: 15px;
3873
+ word-wrap: break-word;
3874
+ -webkit-touch-callout: none;
3875
+ }
3876
+
3877
+ .chosen-container .chosen-results li.active-result {
3878
+ display: list-item;
3879
+ cursor: pointer;
3880
+ }
3881
+
3882
+ .chosen-container .chosen-results li.disabled-result {
3883
+ display: list-item;
3884
+ color: #ccc;
3885
+ cursor: default;
3886
+ }
3887
+
3888
+ .chosen-container .chosen-results li.highlighted {
3889
+ background-color: #3875d7;
3890
+ background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
3891
+ color: #fff;
3892
+ }
3893
+
3894
+ .chosen-container .chosen-results li.no-results {
3895
+ color: #777;
3896
+ display: list-item;
3897
+ background: #f4f4f4;
3898
+ }
3899
+
3900
+ .chosen-container .chosen-results li.group-result {
3901
+ display: list-item;
3902
+ font-weight: bold;
3903
+ cursor: default;
3904
+ }
3905
+
3906
+ .chosen-container .chosen-results li.group-option {
3907
+ padding-left: 15px;
3908
+ }
3909
+
3910
+ .chosen-container .chosen-results li em {
3911
+ font-style: normal;
3912
+ text-decoration: underline;
3913
+ }
3914
+
3915
+ .chosen-container-multi .chosen-choices {
3916
+ position: relative;
3917
+ overflow: hidden;
3918
+ margin: 0;
3919
+ padding: 0 5px;
3920
+ width: 100%;
3921
+ height: auto;
3922
+ border: 1px solid #aaa;
3923
+ background-color: #fff;
3924
+ background-image: linear-gradient(#eeeeee 1%, #ffffff 15%);
3925
+ cursor: text;
3926
+ }
3927
+
3928
+ .chosen-container-multi .chosen-choices li {
3929
+ float: left;
3930
+ list-style: none;
3931
+ }
3932
+
3933
+ .chosen-container-multi .chosen-choices li.search-field {
3934
+ margin: 0;
3935
+ padding: 0;
3936
+ white-space: nowrap;
3937
+ }
3938
+
3939
+ .chosen-container-multi .chosen-choices li.search-field input[type="text"] {
3940
+ margin: 1px 0;
3941
+ padding: 0;
3942
+ outline: 0;
3943
+ border: 0 !important;
3944
+ background: transparent !important;
3945
+ box-shadow: none;
3946
+ color: #999;
3947
+ font-size: 100%;
3948
+ font-family: sans-serif;
3949
+ line-height: normal;
3950
+ border-radius: 0;
3951
+ width: 25px;
3952
+ height: 25px;
3953
+ min-height: 25px;
3954
+ }
3955
+
3956
+ .chosen-container-multi .chosen-choices li.search-choice {
3957
+ position: relative;
3958
+ margin: 3px 5px 3px 0;
3959
+ padding: 3px 20px 3px 6px;
3960
+ border: 1px solid #aaa;
3961
+ max-width: 100%;
3962
+ border-radius: 3px;
3963
+ background-color: #eeeeee;
3964
+ background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
3965
+ background-size: 100% 19px;
3966
+ background-repeat: repeat-x;
3967
+ background-clip: padding-box;
3968
+ box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
3969
+ color: #333;
3970
+ line-height: 13px;
3971
+ cursor: default;
3972
+ }
3973
+
3974
+ .chosen-container-multi .chosen-choices li.search-choice span {
3975
+ word-wrap: break-word;
3976
+ white-space: nowrap;
3977
+ }
3978
+
3979
+ .chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
3980
+ position: absolute;
3981
+ top: 0;
3982
+ right: 0;
3983
+ display: block;
3984
+ width: 12px;
3985
+ height: 12px;
3986
+ font-size: 1px;
3987
+ }
3988
+
3989
+ .chosen-container-multi .chosen-choices li.search-choice-disabled {
3990
+ padding-right: 5px;
3991
+ border: 1px solid #ccc;
3992
+ background-color: #e4e4e4;
3993
+ background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
3994
+ color: #666;
3995
+ }
3996
+
3997
+ .chosen-container-multi .chosen-choices li.search-choice-focus {
3998
+ background: #d4d4d4;
3999
+ }
4000
+
4001
+ .chosen-container-multi .chosen-results {
4002
+ margin: 0;
4003
+ padding: 0;
4004
+ }
4005
+
4006
+ .chosen-container-multi .chosen-drop .result-selected {
4007
+ display: list-item;
4008
+ color: #ccc;
4009
+ cursor: default;
4010
+ }
4011
+
4012
+ .chosen-container-active .chosen-single {
4013
+ border: 1px solid #5897fb;
4014
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
4015
+ }
4016
+
4017
+ .chosen-container-active.chosen-with-drop .chosen-single {
4018
+ border: 1px solid #aaa;
4019
+ border-bottom-right-radius: 0;
4020
+ border-bottom-left-radius: 0;
4021
+ background-image: linear-gradient(#eeeeee 20%, #ffffff 80%);
4022
+ box-shadow: 0 1px 0 #fff inset;
4023
+ }
4024
+
4025
+ .chosen-container-active.chosen-with-drop .chosen-single div {
4026
+ border-left: none;
4027
+ background: transparent;
4028
+ }
4029
+
4030
+ .chosen-container-active .chosen-choices {
4031
+ border: 1px solid #5897fb;
4032
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
4033
+ }
4034
+
4035
+ .chosen-container-active .chosen-choices li.search-field input[type="text"] {
4036
+ color: #222 !important;
4037
+ }
4038
+
4039
+ .chosen-disabled {
4040
+ opacity: 0.5 !important;
4041
+ cursor: default;
4042
+ }
4043
+
4044
+ .chosen-disabled .chosen-single {
4045
+ cursor: default;
4046
+ }
4047
+
4048
+ .chosen-disabled .chosen-choices .search-choice .search-choice-close {
4049
+ cursor: default;
4050
+ }
4051
+
4052
+ .chosen-rtl {
4053
+ text-align: right;
4054
+ }
4055
+
4056
+ .chosen-rtl .chosen-single {
4057
+ overflow: visible;
4058
+ padding: 0 8px 0 0;
4059
+ }
4060
+
4061
+ .chosen-rtl .chosen-single span {
4062
+ margin-right: 0;
4063
+ margin-left: 26px;
4064
+ direction: rtl;
4065
+ }
4066
+
4067
+ .chosen-rtl .chosen-single-with-deselect span {
4068
+ margin-left: 38px;
4069
+ }
4070
+
4071
+ .chosen-rtl .chosen-single div {
4072
+ right: auto;
4073
+ left: 3px;
4074
+ }
4075
+
4076
+ .chosen-rtl .chosen-single abbr {
4077
+ right: auto;
4078
+ left: 26px;
4079
+ }
4080
+
4081
+ .chosen-rtl .chosen-choices li {
4082
+ float: right;
4083
+ }
4084
+
4085
+ .chosen-rtl .chosen-choices li.search-field input[type="text"] {
4086
+ direction: rtl;
4087
+ }
4088
+
4089
+ .chosen-rtl .chosen-choices li.search-choice {
4090
+ margin: 3px 5px 3px 0;
4091
+ padding: 3px 5px 3px 19px;
4092
+ }
4093
+
4094
+ .chosen-rtl .chosen-choices li.search-choice .search-choice-close {
4095
+ right: auto;
4096
+ left: 4px;
4097
+ }
4098
+
4099
+ .chosen-rtl.chosen-container-single .chosen-results {
4100
+ margin: 0 0 4px 4px;
4101
+ padding: 0 4px 0 0;
4102
+ }
4103
+
4104
+ .chosen-rtl .chosen-results li.group-option {
4105
+ padding-right: 15px;
4106
+ padding-left: 0;
4107
+ }
4108
+
4109
+ .chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
4110
+ border-right: none;
4111
+ }
4112
+
4113
+ .chosen-rtl .chosen-search input[type="text"] {
4114
+ padding: 4px 5px 4px 20px;
4115
+ direction: rtl;
4116
+ }
admin/views/framework/assets/css/csf.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .csf{position:relative}.csf label{padding:0;margin:0;display:inline-block}.csf-ab-icon{top:2px}#screen-meta-links+.csf-options{margin-top:40px}.csf-options{margin-top:20px;margin-right:20px}.csf-header{position:relative}.csf-header-inner{padding:25px}.csf-header-inner h1{float:left;font-size:1.5em;line-height:26px;font-weight:400;margin:0}.csf-header-inner h1 small{font-size:11px;font-weight:500}.csf-sticky .csf-header-inner{position:fixed;z-index:99999;top:32px;-moz-box-shadow:0 5px 25px rgba(0,0,0,.125);-webkit-box-shadow:0 5px 25px rgba(0,0,0,.125);box-shadow:0 5px 25px rgba(0,0,0,.125)}.csf-buttons{float:right;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.csf-buttons .button{margin:0 2px;line-height:26px}.csf-buttons .button:focus{outline:0!important;box-shadow:none!important}.csf-buttons .csf-save{min-width:72px}.csf-header-left{float:left}.csf-header-right{float:right}.csf-nav{display:block;position:relative;z-index:10;float:left;width:225px}.csf-nav ul{clear:left;margin:0;list-style-type:none}.csf-nav ul li{margin-bottom:0}.csf-nav ul li a{font-size:13px;position:relative;display:block;padding:14px 12px;text-decoration:none;-moz-transition:all .3s ease;-o-transition:all .3s ease;-webkit-transition:all .3s ease;transition:all .3s ease}.csf-nav ul li a:focus{outline:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.csf-nav ul li .csf-section-active:after{content:" ";position:absolute;right:0;top:50%;height:0;width:0;pointer-events:none;border:solid transparent;border-right-color:#fff;border-width:4px;margin-top:-4px}.csf-nav ul li .csf-arrow:after{content:"\f054";display:inline-block;font-family:FontAwesome;font-size:9px;line-height:1;position:absolute;right:10px;top:50%;margin-top:-4px;-moz-transform:rotate(0);-ms-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}.csf-nav ul li.csf-tab-active .csf-arrow:after{-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-webkit-transform:rotate(90deg);transform:rotate(90deg)}.csf-nav ul li.csf-tab-active ul{display:block}.csf-nav ul ul{display:none;position:relative}.csf-nav ul ul li a{font-size:12px;padding:12px 14px 12px 24px}.csf-nav .fa{width:20px;margin-right:5px;font-size:14px;text-align:center}.csf-nav .csf-label-error{margin-left:4px;vertical-align:top}.csf-nav-background{position:absolute;top:0;left:0;bottom:0;z-index:9;width:225px}.csf-wrapper{position:relative}.csf-content{position:relative;margin-left:225px;background-color:#fff;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.csf-sections{float:left;width:100%}.csf-section{display:none}.csf-section-title{display:none;padding:20px 30px;background-color:#f5f5f5;border-top:1px solid #eee;border-bottom:1px solid #eee}.csf-section-title h3{margin:0;padding:0;font-size:13px;font-weight:700;text-transform:uppercase}.csf-section-title .fa{margin-right:5px}.csf-footer{padding:20px;font-size:11px}.csf-copyright{float:left;margin-top:5px}.csf-search-all .csf-nav,.csf-search-all .csf-nav-background,.csf-show-all .csf-nav,.csf-show-all .csf-nav-background{display:none}.csf-search-all .csf-content,.csf-show-all .csf-content{margin-left:0}.csf-search-all .csf-section,.csf-search-all .csf-section-title,.csf-show-all .csf-section,.csf-show-all .csf-section-title{display:block!important}.csf-search-all .csf-section-title{display:none!important}.csf-expand-all{float:left;padding:0 8px;margin-right:4px;z-index:1;font-size:14px;line-height:28px;cursor:pointer;user-select:none;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-transition:all .2s;-o-transition:all .2s;-webkit-transition:all .2s;transition:all .2s}.csf-expand-all span{font-size:11px;vertical-align:middle}.csf-search{float:left}.csf-search input{margin:0 2px 0 0;border:none;font-size:12px;line-height:28px;min-height:28px;text-align:inherit;padding:0 10px;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.csf-search input:focus{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.csf-saving .csf-buttons,.csf-saving .csf-content{cursor:default;pointer-events:none;opacity:.5}.csf-metabox{margin:-6px -12px -12px -12px}.csf-metabox .csf-section-title{padding:20px}.block-editor-page .csf-metabox{margin:-6px -14px -12px -14px}.csf-restore-wrapper{text-align:right;padding:10px;border-top:1px solid #eee}.csf-restore-wrapper .csf-button-cancel,.csf-restore-wrapper input{display:none}.csf-restore-wrapper span{-webkit-user-select:none;user-select:none}.csf-restore-wrapper input:checked~.csf-button-restore{display:none}.csf-restore-wrapper input:checked~.csf-button-cancel{display:inline-block}#side-sortables .csf-section-title{padding:12px}#side-sortables .csf-field{padding:12px}#side-sortables .csf-field .csf-title{float:none;width:100%;margin-bottom:10px}#side-sortables .csf-field .csf-fieldset{margin-left:0}#side-sortables .csf-notice{padding:12px}.csf-comment-metabox{margin:-6px -12px -12px -12px}.csf-comment-metabox .csf-section-title{padding:20px}.csf-tooltip{position:absolute;z-index:5000001;font-size:12px;line-height:1.4;text-align:center;text-decoration:none;padding:6px 12px;max-width:200px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.85);-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.csf-theme-dark .csf-header-inner{background-color:#050505}.csf-theme-dark .csf-header-inner h1{color:#fff}.csf-theme-dark .csf-header-inner h1 small{color:#555}.csf-theme-dark .csf-expand-all{color:#999;background-color:#222}.csf-theme-dark .csf-expand-all:hover{color:#fff;background-color:#333}.csf-theme-dark .csf-search input{color:#fff;background-color:#222}.csf-theme-dark .csf-search:focus{background-color:#444}.csf-theme-dark .csf-search::-webkit-input-placeholder{color:#666}.csf-theme-dark .csf-nav ul li a{color:#999;background-color:#222;border-bottom:1px solid #2f2f2f}.csf-theme-dark .csf-nav ul li a:hover{color:#fff}.csf-theme-dark .csf-nav ul li .csf-section-active{color:#fff;background-color:#111}.csf-theme-dark .csf-nav ul ul li a{background-color:#191919;border-bottom:1px solid #2f2f2f}.csf-theme-dark .csf-nav ul ul li .csf-section-active{background-color:#101010}.csf-theme-dark .csf-nav ul ul:before{background-color:rgba(34,34,34,.75)}.csf-theme-dark .csf-nav>ul>li:last-child>a{border-bottom:none}.csf-theme-dark .csf-nav-background{background-color:#222}.csf-theme-dark .csf-footer{color:#555;background-color:#050505}.csf-theme-light .csf-container{border:1px solid #e5e5e5;-moz-box-shadow:0 0 15px rgba(0,0,0,.04);-webkit-box-shadow:0 0 15px rgba(0,0,0,.04);box-shadow:0 0 15px rgba(0,0,0,.04)}.csf-theme-light .csf-header-inner{border-bottom:1px solid #e5e5e5;background-color:#f5f5f5;background:linear-gradient(#fefefe,#f5f5f5)}.csf-theme-light .csf-header-inner h1 small{color:#999}.csf-theme-light .csf-expand-all{color:#999;background-color:#fff;-moz-box-shadow:0 1px 1px rgba(0,0,0,.05);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.csf-theme-light .csf-expand-all:hover{color:#555}.csf-theme-light .csf-search input{color:#555;background-color:#fff;-moz-box-shadow:0 1px 1px rgba(0,0,0,.05);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.csf-theme-light .csf-search input::-webkit-input-placeholder{color:#bbb}.csf-theme-light .csf-nav ul li a{color:#666;background-color:#f5f5f5;border-bottom:1px solid #e5e5e5}.csf-theme-light .csf-nav ul li a:hover{color:#222}.csf-theme-light .csf-nav ul li .csf-section-active{color:#222;background-color:#fff}.csf-theme-light .csf-nav ul li .csf-section-active:after{display:none}.csf-theme-light .csf-nav ul ul li a{background-color:#eee;border-bottom:1px solid #e5e5e5}.csf-theme-light .csf-nav>ul>li:last-child>a{border-bottom:none}.csf-theme-light .csf-nav-background{background-color:#f5f5f5}.csf-theme-light .csf-footer{color:#555;border-top:1px solid #e5e5e5;background-color:#f5f5f5;background:linear-gradient(#fafafa,#f5f5f5)}.csf-field{position:relative;padding:30px}.csf-field+.csf-field:not(.hidden){border-top:1px solid #eee}.csf-field p:first-child{margin-top:0}.csf-field p:last-child{margin-bottom:0}.csf-field:after,.csf-field:before{content:" ";display:table}.csf-field:after{clear:both}.csf-field h4{margin-top:0}.csf-field .csf-title{position:relative;width:20%;float:left}.csf-field .csf-title h4{margin:0;color:#23282d}.csf-field .csf-fieldset{margin-left:25%}.csf-pseudo-field{padding:0 5px 0 0!important;display:inline-block}.csf-pseudo-field+.csf-pseudo-field{border:0}.csf-pseudo-field pre{display:none}.csf-field-accordion .csf-accordion-item{position:relative;margin-bottom:5px}.csf-field-accordion .csf-accordion-item h4{font-size:1em}.csf-field-accordion .csf-accordion-title{display:block;cursor:pointer;position:relative;margin:0;padding:15px;min-height:0;font-size:100%;user-select:none;border:1px solid #ccd0d4;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,.04);transition:border-color .15s}.csf-field-accordion .csf-accordion-title:active,.csf-field-accordion .csf-accordion-title:focus,.csf-field-accordion .csf-accordion-title:hover{outline:0;border-color:#999}.csf-field-accordion .csf-accordion-icon{width:14px;text-align:center}.csf-field-accordion .csf--icon{width:20px;text-align:center}.csf-field-accordion .csf-accordion-content{display:none;padding:0;border:1px solid #ccd0d4;border-top:none;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-accordion .csf-accordion-content>.csf-field{padding:15px}.csf-field-accordion .csf-accordion-open{display:block}.csf-field-background .csf-field{border:0!important;padding:0;margin-bottom:6px;margin-right:6px}.csf-field-background .csf--title{color:#777;font-size:12px}.csf-field-background .csf--background-colors{display:flex}.csf-field-background .csf--background-attributes{display:flex;flex-wrap:wrap}.csf-field-background .csf--background-attributes select{min-width:100%;margin:0}.csf-field-background .csf--background-attributes .csf-field{flex:1}.csf-field-background .csf--attributes-hidden{display:none}.csf-field-background .wp-color-result.button{margin-bottom:0}.csf-field-backup textarea{width:100%;min-height:200px;margin-bottom:5px}.csf-field-backup small{display:inline-block;margin:5px}.csf-field-backup hr{margin:20px 0;border:none;border-bottom:1px solid #e5e5e5}.csf-field-border .csf--inputs,.csf-field-dimensions .csf--inputs,.csf-field-spacing .csf--inputs{float:left;display:flex;flex-wrap:wrap}.csf-field-border .csf--input,.csf-field-dimensions .csf--input,.csf-field-spacing .csf--input{display:flex;padding-right:6px;padding-bottom:4px;box-sizing:border-box}.csf-field-border .csf--input select,.csf-field-dimensions .csf--input select,.csf-field-spacing .csf--input select{margin:0}.csf-field-border .csf--input input,.csf-field-dimensions .csf--input input,.csf-field-spacing .csf--input input{position:relative;z-index:1;margin:0;width:65px;max-width:100%;text-align:center}.csf-field-border .csf--color,.csf-field-dimensions .csf--color,.csf-field-spacing .csf--color{float:left}.csf-field-border .csf--label,.csf-field-dimensions .csf--label,.csf-field-spacing .csf--label{display:flex;flex-direction:column;justify-content:center;user-select:none;min-width:20px;max-width:100%;padding:0 4px;font-size:12px;text-align:center;color:#555;border:1px solid #7b776c;background-color:#f5f5f5}.csf-field-border .csf--icon,.csf-field-dimensions .csf--icon,.csf-field-spacing .csf--icon{border-right:0;border-radius:4px 0 0 4px}.csf-field-border .csf--icon+input,.csf-field-dimensions .csf--icon+input,.csf-field-spacing .csf--icon+input{border-top-left-radius:0;border-bottom-left-radius:0}.csf-field-border .csf--unit,.csf-field-dimensions .csf--unit,.csf-field-spacing .csf--unit{border-left:0;border-radius:0 4px 4px 0}.csf-field-border .csf--is-unit,.csf-field-dimensions .csf--is-unit,.csf-field-spacing .csf--is-unit{border-top-right-radius:0;border-bottom-right-radius:0}.csf-field-button_set .csf--buttons{display:inline-block}.csf-field-button_set .csf--button{position:relative;z-index:1;float:left;cursor:pointer;padding:7px 14px;min-width:40px;text-align:center;color:#555;border:1px solid #ccc;background-color:#f7f7f7;user-select:none;-webkit-user-select:none;box-shadow:0 1px 0 rgba(0,0,0,.1)}.csf-field-button_set .csf--button:first-child{border-radius:4px 0 0 4px}.csf-field-button_set .csf--button:last-child{border-radius:0 4px 4px 0}.csf-field-button_set .csf--button:not(:first-child){margin-left:-1px}.csf-field-button_set .csf--button:hover{background-color:#eee}.csf-field-button_set .csf--active,.csf-field-button_set .csf--active:hover{z-index:2;color:#fff;border-color:#006799;background-color:#0085ba}.csf-field-button_set input{display:none}.csf-field-checkbox ul,.csf-field-radio ul{margin:0;padding:0 1px;list-style-type:none;overflow-y:auto;max-height:305px}.csf-field-checkbox ul ul,.csf-field-radio ul ul{max-height:none}.csf-field-checkbox .csf--inline-list li,.csf-field-radio .csf--inline-list li{display:inline-block;margin-right:15px}.csf-field-checkbox input[type=radio]:checked:before,.csf-field-radio input[type=radio]:checked:before{line-height:10px}.csf-field-checkbox .csf-checker,.csf-field-radio .csf-checker{cursor:pointer}.csf-field-code_editor .CodeMirror{width:100%;height:400px}.csf-field-code_editor .cm-s-default{border:1px solid #ccd0d4}.csf-field-code_editor textarea{width:100%;height:400px}.csf-field-color>input{opacity:.75;width:115px;max-width:100%}.csf-field-color .button.wp-picker-clear{margin-left:6px;padding:2px 8px}.csf-field-color_group .csf--left{float:left;margin-right:10px;margin-bottom:5px}.csf-field-color_group .csf--title{color:#999;margin-bottom:5px}.csf-field-fieldset .csf-fieldset-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-fieldset .csf-fieldset-content>.csf-field{padding:15px}.csf-field-fieldset .csf-field-subheading{font-size:13px}.csf-field-date input{margin:0}.csf-field-date .csf--to{margin-left:7px}.csf-datepicker-wrapper{margin-top:5px;width:auto;background-color:#fff;z-index:9999999!important;-moz-box-shadow:0 0 30px rgba(0,0,0,.15);-webkit-box-shadow:0 0 30px rgba(0,0,0,.15);box-shadow:0 0 30px rgba(0,0,0,.15)}.csf-datepicker-wrapper *{float:none;margin:0;padding:0;font-family:inherit;font-weight:400;font-style:normal;text-decoration:none;border:0;border-radius:0;box-shadow:none}.csf-datepicker-wrapper .ui-datepicker-header,.csf-datepicker-wrapper .ui-widget-header{color:#fff;background:#00a0d2}.csf-datepicker-wrapper .ui-datepicker-header .ui-state-hover{cursor:pointer}.csf-datepicker-wrapper .ui-datepicker-title{font-size:14px;line-height:40px;text-align:center}.csf-datepicker-wrapper .ui-datepicker-next,.csf-datepicker-wrapper .ui-datepicker-prev{position:static;top:auto;left:auto;right:auto;font-family:FontAwesome;font-size:12px;text-align:center;width:41px;height:40px;line-height:40px;color:#fff;background-color:rgba(255,255,255,.1);text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.csf-datepicker-wrapper .ui-datepicker-next span,.csf-datepicker-wrapper .ui-datepicker-prev span{display:none}.csf-datepicker-wrapper .ui-datepicker-prev{float:left}.csf-datepicker-wrapper .ui-datepicker-next{float:right}.csf-datepicker-wrapper .ui-datepicker-prev:before{content:'\f053'}.csf-datepicker-wrapper .ui-datepicker-next:before{content:'\f054'}.csf-datepicker-wrapper .ui-datepicker-next-hover,.csf-datepicker-wrapper .ui-datepicker-prev-hover{opacity:.75}.csf-datepicker-wrapper tbody .ui-datepicker-week-col{background-color:#f7f7f7}.csf-datepicker-wrapper .ui-datepicker-buttonpane{padding:10px;text-align:center;background-color:#f7f7f7}.csf-datepicker-wrapper .ui-datepicker-buttonpane button{cursor:pointer;margin:0 5px;padding:7px 14px;border:1px solid #eee;background-color:#fff}.csf-datepicker-wrapper select{margin:0 4px}.csf-datepicker-wrapper select option{color:#555}.csf-datepicker-wrapper table{font-size:13px;border-collapse:collapse;width:100%}.csf-datepicker-wrapper thead{color:#fff;background:#32373c}.csf-datepicker-wrapper th{text-align:center;padding:7px;border:1px solid #444}.csf-datepicker-wrapper td{text-align:center;border:1px solid #f4f4f4}.csf-datepicker-wrapper td.ui-datepicker-other-month{border:transparent}.csf-datepicker-wrapper td .ui-state-default{color:#555;width:auto;display:block;padding:6px 12px}.csf-datepicker-wrapper td .ui-state-active,.csf-datepicker-wrapper td .ui-state-hover{color:#fff;background-color:#0073aa}.csf-datepicker-wrapper td.ui-state-disabled .ui-state-default{opacity:.5}.csf-field-gallery input{display:none}.csf-field-gallery ul{margin:0;padding:0;list-style-type:none}.csf-field-gallery ul li{display:inline-block;position:relative;padding:4px;margin:0 5px 10px 0;border:1px solid #ccc;background-color:#f9f9f9;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 1px 0 rgba(0,0,0,.08);-webkit-box-shadow:0 1px 0 rgba(0,0,0,.08);box-shadow:0 1px 0 rgba(0,0,0,.08)}.csf-field-gallery ul li img{max-height:60px;display:inline-block;vertical-align:middle}.csf-field-gallery .button{margin-right:5px;margin-bottom:5px}.csf-field-group .csf-cloneable-hidden{display:none!important}.csf-field-group .csf-cloneable-wrapper{position:relative}.csf-field-group .csf-cloneable-item{display:none;position:relative;margin-bottom:5px}.csf-field-group .csf-cloneable-item h4{font-size:1em}.csf-field-group .ui-accordion .csf-cloneable-item{display:block}.csf-field-group .csf-cloneable-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-group .csf-cloneable-content>.csf-field{padding:15px}.csf-field-group .csf-cloneable-title{display:block;cursor:pointer;position:relative;user-select:none;margin:0;padding:15px 65px 15px 10px;min-height:0;font-size:100%;border:1px solid #ccd0d4;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,.04);transition:border-color .15s}.csf-field-group .csf-cloneable-title:active,.csf-field-group .csf-cloneable-title:focus,.csf-field-group .csf-cloneable-title:hover{border-color:#999;outline:0}.csf-field-group .csf-cloneable-helper{position:absolute;top:12px;right:10px;z-index:1;font-size:14px;line-height:1em}.csf-field-group .csf-cloneable-helper i{display:inline-block;cursor:pointer;padding:5px;color:#999}.csf-field-group .csf-cloneable-helper i:hover{color:#555}.csf-field-group .csf-cloneable-content{padding:0;border-top:0}.csf-field-group .csf-cloneable-title-number,.csf-field-group .csf-cloneable-title-prefix{margin-right:5px}.csf-field-group .csf-cloneable-alert{display:none;margin-bottom:5px;padding:10px 20px;color:#a94442;border:1px solid #ebccd1;background-color:#f2dede}.csf-field-group .widget-placeholder{margin-bottom:10px;border:1px dashed #f1c40f;background-color:#fffae4}.csf-field-group .csf-cloneable-header-icon{display:inline-block;text-align:center;font-size:14px;width:17px;text-indent:0;vertical-align:text-top}.csf-field-group .csf-cloneable-placeholder{background-color:#ddd;margin-top:4px;width:100px;height:10px;font-size:10px;line-height:10px;display:inline-block;vertical-align:top;border-radius:2px}.csf-field-icon input{display:none}.csf-field-icon .button{margin-right:5px}.csf-field-icon .csf-icon-preview i{display:inline-block;font-size:14px;width:30px;height:26px;line-height:26px;margin-right:5px;text-align:center;vertical-align:top;color:#555;border:1px solid #ccc;background-color:#f7f7f7;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(0,0,0,.08);-webkit-box-shadow:0 1px 0 rgba(0,0,0,.08);box-shadow:0 1px 0 rgba(0,0,0,.08);-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}.csf-field-image_select .csf--image{cursor:pointer;position:relative;display:inline-block;max-width:100%;margin:0 5px 5px 0;vertical-align:bottom;border:2px solid transparent;background-color:#fff;user-select:none;-webkit-user-select:none;-moz-transition:all .2s;-o-transition:all .2s;-webkit-transition:all .2s;transition:all .2s}.csf-field-image_select .csf--image:before{position:absolute;top:0;left:0;text-align:center;font-size:11px;font-family:FontAwesome;content:"\f00c";width:15px;height:15px;line-height:15px;opacity:0;color:#fff;background-color:#222;transition:opacity .2s}.csf-field-image_select .csf--active{border-color:#222;box-shadow:0 0 20px rgba(0,0,0,.2)}.csf-field-image_select .csf--active:before{opacity:1}.csf-field-image_select img{vertical-align:top}.csf-field-image_select input{display:none}.csf-field-link_color .csf--left{float:left;margin-right:10px;margin-bottom:5px}.csf-field-link_color .csf--title{color:#777;margin-bottom:5px}.csf-field-map input{width:100%}.csf-field-map input[type=text].ui-autocomplete-loading{background-position-x:calc(100% - 5px)}.csf-field-map .csf--map-search+.csf--map-osm-wrap{margin-top:10px}.csf-field-map .csf--map-osm-wrap{position:relative;padding:5px;border:1px solid #eee;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-map .csf--map-osm{position:relative;z-index:1;min-height:250px}.csf-field-map .csf--map-inputs{margin-top:10px;display:flex;justify-content:space-between}.csf-field-map .csf--map-input{flex:1}.csf-field-map .csf--map-input:last-child{padding-left:10px}.csf-field-map label{display:block;color:#777;font-size:12px;margin:0 0 2px 0}.csf-map-ui-autocomplate{z-index:999999;border-radius:4px;overflow:hidden}.csf-field-media .csf--placeholder{display:flex}.csf-field-media .csf--placeholder input{width:100%;margin:0}.csf-field-media .button{margin-left:5px}.csf-field-media .hidden+.button{margin-left:0}.csf-field-media .csf--preview{position:relative}.csf-field-media .csf--preview .fa-times{position:absolute;z-index:1;right:4px;top:4px;font-size:14px;width:22px;height:22px;line-height:22px;text-align:center;text-decoration:none;color:#fff;background-color:#d33;opacity:.8;transition:all .2s}.csf-field-media .csf--preview .fa-times:hover{opacity:1}.csf-field-media .csf--preview .fa-times:focus{box-shadow:none}.csf-field-palette .csf--palette{position:relative;display:inline-block;cursor:pointer;border:2px solid #ddd;margin-right:10px;margin-bottom:10px;user-select:none;-webkit-user-select:none;transition:all .2s}.csf-field-palette .csf--palette span{vertical-align:middle;display:inline-block;width:22px;height:60px;line-height:60px;overflow:hidden;text-indent:-999px}.csf-field-palette .csf--palette:before{position:absolute;top:0;left:0;text-align:center;font-size:11px;font-family:FontAwesome;content:"\f00c";width:15px;height:15px;line-height:15px;opacity:0;color:#fff;background-color:#222;transition:opacity .2s}.csf-field-palette .csf--active{border-color:#222;box-shadow:0 0 20px rgba(0,0,0,.2)}.csf-field-palette .csf--active:before{opacity:1}.csf-field-palette input{display:none}.csf-field-repeater .csf-field-text input{width:100%}.csf-field-repeater .csf-repeater-hidden{display:none!important}.csf-field-repeater .csf-repeater-wrapper .csf-repeater-item{display:table;width:100%;margin-bottom:5px;border:1px solid #eee}.csf-field-repeater .csf-repeater-wrapper .csf-repeater-item h4{font-size:1em}.csf-field-repeater .csf-repeater-content{width:100%;display:table-cell;vertical-align:middle;background-color:#fff}.csf-field-repeater .csf-repeater-content>.csf-field{padding:15px}.csf-field-repeater .csf-repeater-helper{width:100%;display:table-cell;vertical-align:middle;text-align:center;font-size:14px;line-height:1em;border-left:1px solid #eee;background-color:#f7f7f7}.csf-field-repeater .csf-repeater-helper i{display:inline-block;cursor:pointer;color:#999;padding:5px}.csf-field-repeater .csf-repeater-helper i:hover{color:#555}.csf-field-repeater .csf-repeater-helper-inner{width:75px}.csf-field-repeater .csf-repeater-alert{display:none;margin-bottom:5px;padding:10px 20px;color:#a94442;border:1px solid #ebccd1;background-color:#f2dede}.csf-field-repeater .widget-placeholder{height:50px;margin-bottom:3px;border:1px dashed #f1c40f;background-color:#fffae4}.csf-field-repeater .ui-sortable-helper{height:50px!important;overflow:hidden!important;border-color:#ccc!important;background-color:#eee!important;opacity:.5}.csf-field-repeater .ui-sortable-helper .csf-repeater-content,.csf-field-repeater .ui-sortable-helper .csf-repeater-helper{display:none}.csf-field-select .csf-fieldset{min-height:30px}.csf-field-select .csf-chosen{display:none}.csf-field-select select{max-width:100%;margin:0}.csf-field-slider .csf--wrap{display:flex;align-items:center}.csf-field-slider .csf--input{display:flex}.csf-field-slider .csf--unit{display:flex;justify-content:center;flex-direction:column;user-select:none;padding:0 6px;font-size:11px;line-height:1;border-radius:0 4px 4px 0;color:#555;border:1px solid #7e8993;border-left:0;background-color:#f5f5f5}.csf-field-slider input[type=number]{position:relative;z-index:1;width:50px;margin:0 0 0 15px;text-align:center}.csf-field-slider .csf--is-unit{border-top-right-radius:0;border-bottom-right-radius:0}.csf-field-slider .ui-slider{position:relative;width:100%;height:3px;border:none;background:#ddd;border-radius:2px}.csf-field-slider .ui-slider-range{height:3px;border:none;background:#333;border-radius:2px}.csf-field-slider .ui-slider-handle{position:absolute;width:16px;height:16px;top:-7px;margin-left:-8px;border:none;background:#333;border-radius:2px}.csf-field-slider .ui-slider-handle:hover,.csf-field-slider .ui-state-active{cursor:pointer;background:#111}.csf-field-sortable .csf-field-text input{width:100%;max-width:100%}.csf-field-sortable .csf--sortable .csf--sortable-item{display:table;width:100%;margin-bottom:5px;border:1px solid #eee}.csf-field-sortable .csf--sortable .csf--sortable-item h4{font-size:1em}.csf-field-sortable .csf--sortable-content{width:100%;display:table-cell;vertical-align:middle;background-color:#fff}.csf-field-sortable .csf--sortable-content>.csf-field{padding:15px}.csf-field-sortable .csf--sortable-helper{width:100%;display:table-cell;vertical-align:middle;text-align:center;font-size:14px;line-height:1em;border-left:1px solid #eee;background-color:#f7f7f7}.csf-field-sortable .csf--sortable-helper .fa{display:inline-block;cursor:pointer;width:50px;color:#555}.csf-field-sortable .csf--sortable-helper .fa:hover{opacity:.5}.csf-field-sortable .widget-placeholder{height:50px;margin-bottom:3px;border:1px dashed #f1c40f;background-color:#fffae4}.csf-field-sortable .ui-sortable-helper{height:50px!important;overflow:hidden!important;border-color:#ccc!important;background-color:#eee!important;opacity:.5}.csf-field-sortable .ui-sortable-helper .csf--sortable-content,.csf-field-sortable .ui-sortable-helper .csf--sortable-helper{display:none}.csf-field-sorter .ui-sortable-placeholder{height:20px;border:1px dashed #f1c40f;background-color:#fffae4}.csf-field-sorter .csf-modules{float:left;width:50%;box-sizing:border-box}.csf-field-sorter .csf-modules:first-child{padding-right:15px}.csf-field-sorter .csf-modules:last-child{padding-left:15px}.csf-field-sorter .csf-disabled,.csf-field-sorter .csf-enabled{padding:5px 15px;border:1px dashed #ddd;background-color:#fff}.csf-field-sorter .csf-disabled li{-moz-transition:opacity .15s;-o-transition:opacity .15s;-webkit-transition:opacity .15s;transition:opacity .15s;opacity:.5}.csf-field-sorter .csf-disabled .ui-sortable-helper{opacity:1}.csf-field-sorter .csf-sorter-title{font-size:13px;font-weight:600;padding:10px;text-align:center;border:1px dashed #ddd;border-bottom:none;background-color:#f8f8f8;text-transform:uppercase}.csf-field-sorter ul{list-style-type:none;margin:0;padding:0;min-height:62px}.csf-field-sorter ul li{margin:10px 0;padding:10px 15px;cursor:move;font-weight:700;text-align:center;border:1px solid #e5e5e5;background-color:#fafafa;-moz-transition:border-color .15s;-o-transition:border-color .15s;-webkit-transition:border-color .15s;transition:border-color .15s}.csf-field-sorter ul li:hover{border-color:#bbb}.csf-field-spinner .csf--spin{display:flex}.csf-field-spinner .ui-spinner{display:flex}.csf-field-spinner .ui-button-text-only{display:flex;flex-direction:column;justify-content:center;text-align:center;min-width:20px;padding:0 4px;color:#555;border:1px solid #7e8993;background-color:#f5f5f5}.csf-field-spinner .ui-button{cursor:pointer}.csf-field-spinner .ui-button:hover{background-color:#e7e7e7}.csf-field-spinner .ui-button:active{background-color:#ddd}.csf-field-spinner .ui-button:before{font-family:FontAwesome;font-size:14px}.csf-field-spinner .ui-spinner-down{order:1;border-right:0;border-radius:4px 0 0 4px}.csf-field-spinner .ui-spinner-down:before{content:"\f0d9"}.csf-field-spinner .ui-spinner-input{order:2}.csf-field-spinner .csf--unit{order:3;border-left:0;user-select:none}.csf-field-spinner .ui-spinner-up{order:4;border-left:0;border-radius:0 4px 4px 0}.csf-field-spinner .ui-spinner-up:before{content:"\f0da"}.csf-field-spinner input{position:relative;z-index:1;width:50px;text-align:center;margin:0;padding:0 8px;border-radius:0}.csf-field-spinner .ui-button-text{display:none}.csf-field-switcher .csf--switcher{float:left;cursor:pointer;position:relative;width:60px;height:26px;padding:0;margin:0;overflow:hidden;border-radius:4px;background-color:#ed6f6f;user-select:none;-webkit-user-select:none}.csf-field-switcher .csf--ball{position:absolute;top:4px;left:4px;width:24px;height:18px;background-color:#fff;border-radius:4px;transition:all .1s;box-shadow:1px 1px 1px rgba(0,0,0,.15)}.csf-field-switcher .csf--off,.csf-field-switcher .csf--on{position:absolute;top:0;left:0;right:0;font-size:11px;line-height:26px;font-weight:500;font-style:normal;text-align:center;text-transform:uppercase;color:#fff;padding-right:28px;opacity:0;transition:all .1s}.csf-field-switcher .csf--off{padding-right:0;padding-left:28px;opacity:1}.csf-field-switcher .csf--active{background:#4fb845}.csf-field-switcher .csf--active .csf--on{opacity:1}.csf-field-switcher .csf--active .csf--off{opacity:0}.csf-field-switcher .csf--active .csf--ball{left:100%;margin-left:-28px}.csf-field-switcher .csf--label{float:left;margin-top:4px;margin-left:8px;font-weight:400;color:#999}.csf-field-switcher input{display:none}.csf-field-tabbed .csf-tabbed-section{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-tabbed .csf-tabbed-section>.csf-field{padding:15px}.csf-field-tabbed .csf-tabbed-nav .csf--icon{padding-right:5px}.csf-field-tabbed .csf-tabbed-nav a{display:inline-block;padding:12px 15px;margin-top:1px;margin-right:5px;margin-bottom:-1px;position:relative;text-decoration:none;color:#444;font-weight:600;border:1px solid #ccd0d4;background-color:#f3f3f3;transition:all .2s}.csf-field-tabbed .csf-tabbed-nav a:hover{background-color:#f9f9f9}.csf-field-tabbed .csf-tabbed-nav a.csf-tabbed-active{background-color:#fff;border-bottom-color:#fff}.csf-field-tabbed .csf-tabbed-nav a:focus{outline:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.csf-field-text input{width:50%;max-width:100%;margin:0}.csf-field-textarea textarea{width:100%;max-width:100%;min-height:125px}.csf-field-textarea .csf-shortcode-button{margin-bottom:10px;margin-right:5px}.csf-field-typography select,.csf-field-typography textarea{min-width:100%;margin:0}.csf-field-typography .csf--title{color:#777;margin:0 0 2px 0;font-size:12px}.csf-field-typography .csf--title small{vertical-align:top}.csf-field-typography .csf--blocks{display:flex;flex-wrap:wrap}.csf-field-typography .csf--block{flex:1;padding-right:6px;padding-bottom:6px}.csf-field-typography .csf--input{margin:0;min-width:100%}.csf-field-typography .csf--input-wrap{position:relative}.csf-field-typography .csf--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.csf-field-typography .csf--preview{font-size:16px;line-height:20px;padding:20px;color:#222;border:1px solid #eee;background-color:#fff;border-radius:2.5px;user-select:none;-webkit-user-select:none;transition:background-color .2s,border-color .2s}.csf-field-typography .csf--block-preview{cursor:pointer;position:relative;overflow:hidden;margin-top:10px;max-width:100%}.csf-field-typography .csf--black-background{border-color:#000;background-color:#000}.csf-field-typography .csf--toggle{position:absolute;top:5px;right:10px;color:#999}.csf-field-typography .csf--block-extra-styles{margin-top:5px}.csf-field-upload input{width:100%;margin:0}.csf-field-upload .csf--wrap{display:flex}.csf-field-upload .button{margin-left:5px}.csf-field-wp_editor .csf-wp-editor{float:left;width:100%}.csf-field-wp_editor .mce-toolbar-grp{border:none}.csf-field-wp_editor .mce-btn.mce-active button,.csf-field-wp_editor .mce-btn.mce-active i,.csf-field-wp_editor .mce-btn.mce-active:hover button,.csf-field-wp_editor .mce-btn.mce-active:hover i{color:#23282d}.csf-field-wp_editor .wp-media-buttons{position:relative;z-index:2}.csf-field-wp_editor .wp-editor-tabs{position:relative;z-index:1}.csf-field-wp_editor .csf-no-tinymce{border:1px solid #e5e5e5}.csf-field-wp_editor .csf-no-quicktags .wp-media-buttons{float:none;display:block}.csf-field-wp_editor .csf-no-quicktags .mce-tinymce{box-shadow:none;border:1px solid #e5e5e5}.csf-field-wp_editor textarea{width:100%;max-width:100%;margin:0;box-shadow:none}.csf-field-heading{font-size:1.5em;font-weight:700;color:#23282d;background-color:#f5f5f5}.csf-field-subheading{font-size:14px;font-weight:700;padding-top:17px;padding-bottom:17px;color:#23282d;background-color:#f7f7f7}.csf-field-submessage{padding:0!important;border:0!important}.csf-field-submessage+.csf-field{border-top:0!important}.csf-submessage{font-size:12px;padding:17px 30px;border-top:1px solid transparent;border-bottom:1px solid transparent}.csf-submessage-success{color:#3c763d;border-color:#d6e9c6;background-color:#dff0d8}.csf-submessage-info{color:#31708f;border-color:#bce8f1;background-color:#d9edf7}.csf-submessage-warning{color:#8a6d3b;border-color:#faebcc;background-color:#fcf8e3}.csf-submessage-danger{color:#a94442;border-color:#ebccd1;background-color:#f2dede}.csf-submessage-normal{color:#23282d;border-color:#eee;background-color:#f7f7f7}.csf-field-notice{background-color:#f7f7f7}.csf-notice{padding:12px;background-color:#fff;border-left-style:solid;border-left-width:4px;box-shadow:0 1px 1px rgba(0,0,0,.1)}.csf-notice-success{border-color:#46b450}.csf-notice-info{border-color:#339fd4}.csf-notice-warning{border-color:#ffbc00}.csf-notice-danger{border-color:#dc3232}.csf-notice-normal{border-color:#222}.csf-field-number input{width:100%;margin:0}.csf-field-number .csf--wrap{position:relative;float:left;width:100px}.csf-field-number .csf--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.csf-help{cursor:help;position:absolute;top:0;right:0;padding:5px;font-size:14px;color:#aaa}.csf-help .csf-help-text{display:none}.csf-image-preview{display:inline-block;position:relative;padding:4px;min-width:44px;min-height:22px;margin-bottom:10px;border:1px solid #ccc;background-color:#f9f9f9;-moz-box-shadow:0 1px 0 rgba(0,0,0,.08);-webkit-box-shadow:0 1px 0 rgba(0,0,0,.08);box-shadow:0 1px 0 rgba(0,0,0,.08)}.csf-image-preview img{max-height:90px;display:inline-block;vertical-align:middle}.csf-field-custom .csf-field{padding:0}.csf-field .chosen-container-single .chosen-single{height:28px;line-height:26px}.csf-field .chosen-container-single .chosen-single abbr{top:0;right:20px;font-family:FontAwesome;font-size:12px;height:100%;width:18px;color:#aaa;text-align:center;background:0 0}.csf-field .chosen-container-single .chosen-single abbr:before{content:"\f00d"}.csf-field .chosen-container-single .chosen-single abbr:hover{color:#555}.csf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close{font-family:FontAwesome;font-size:12px;height:100%;width:18px;color:#aaa;text-align:center;background:0 0}.csf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:before{content:"\f00d";display:inline-block;padding-top:3px}.csf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{color:#555}.csf-field .chosen-container-single .chosen-single div b{font-family:FontAwesome;font-size:14px;color:#aaa;background:0 0}.csf-field .chosen-container-single .chosen-single div b:before{content:"\f107"}.csf-field .chosen-container-single .chosen-single div b:hover{color:#555}.csf-field .chosen-container-multi .chosen-choices li.search-choice-placeholder{border:1px dashed #aaa;margin:3px 5px 3px 0}.csf-field .chosen-container-multi .ui-sortable li.search-choice span{cursor:move}.csf-field .chosen-container-active.chosen-with-drop .chosen-single div b:before{content:"\f106"}.csf-field .chosen-container-single .chosen-single-with-deselect span{margin-right:40px}.csf-field .chosen-container-single .chosen-search input[type=text]{background:0 0}.csf-field .chosen-container-single .chosen-search:before{font-family:FontAwesome;position:absolute;content:"\f002";font-size:11px;right:10px;top:7px;color:#aaa}.csf-field .wp-picker-container{display:inline-block}.csf-field .csf--transparent-wrap{display:none;position:relative;top:-1px;width:235px;padding:9px 10px;border:1px solid #dfdfdf;border-top:none;background-color:#fff}.csf-field .wp-picker-active .csf--transparent-wrap{display:block}.csf-field .csf--transparent-slider{position:absolute;width:190px;margin-left:2px;height:18px}.csf-field .csf--transparent-slider .ui-slider-handle{position:absolute;top:-3px;bottom:-3px;z-index:5;border-color:#aaa;border-style:solid;border-width:4px 3px;width:10px;height:16px;margin:0 -5px;background:0 0;cursor:ew-resize;opacity:.9;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.2);-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 1px 2px rgba(0,0,0,.2)}.csf-field .csf--transparent-slider .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.csf-field .csf--transparent-offset{height:18px;width:200px;background:url(../images/checkerboard.png) repeat-y center left scroll #fff;-moz-box-shadow:0 0 5px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 5px rgba(0,0,0,.4) inset;box-shadow:0 0 5px rgba(0,0,0,.4) inset;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.csf-field .csf--transparent-text{position:absolute;top:12px;right:10px;width:30px;font-size:12px;line-height:12px;text-align:center;color:#999}.csf-field .csf--transparent-button{cursor:pointer;user-select:none;margin-top:10px;font-size:11px;text-align:center;border-radius:2px;padding:3px 7px;box-shadow:0 1px 0 rgba(0,0,0,.1);letter-spacing:.2px;color:#777;border:1px solid #ccc;background-color:#f7f7f7;transition:background-color .2s,border-color .2s,color .2s}.csf-field .csf--transparent-active .wp-color-result{background-image:url(../images/checkerboard.png);background-size:135px;background-position:center left;background-color:transparent!important}.csf-field .csf--transparent-active .csf--transparent-button{color:#fff;border-color:#3ea032;background-color:#4fb845}.csf-field .csf--transparent-active .fa:before{content:"\f205"}.csf-widgets>.csf-field{position:relative;top:-1px;margin-right:-15px;margin-left:-15px;padding:12px 15px}.csf-widgets>.csf-field .csf-field{margin-left:0;margin-right:0}.csf-widgets>.csf-field .csf-title{float:none;width:100%;margin-bottom:5px}.csf-widgets>.csf-field .csf-fieldset{margin-left:0}.csf-widgets .csf-field-text input{width:100%}.csf-widgets .csf-field-notice .csf-notice{padding:15px}.control-section .csf-widgets>.csf-field{margin-right:-10px;margin-left:-10px;padding:10px 12px}.control-section .csf-field{padding:0}.control-section .csf-field .csf-title{float:none;width:100%;margin-bottom:6px}.control-section .csf-field .csf-title h4{display:block;font-size:13px;line-height:1;font-weight:600;color:inherit}.control-section .csf-field .csf-fieldset{margin-left:0}.control-section .csf-help{top:-5px;right:-5px}.control-section .csf-field-select select{width:100%}.control-section .csf-field-heading{color:inherit;font-size:14px;line-height:1em;margin-right:-15px;margin-left:-15px;padding:15px}.control-section .csf-field-subheading{color:inherit;font-size:11px;margin-right:-15px;margin-left:-15px;padding:10px 15px}.control-section .csf-text-subtitle{margin-top:4px;font-size:12px}.control-section .csf-field-submessage .csf-submessage{margin-right:-15px;margin-left:-15px;padding:15px}.control-section .csf-fieldset .csf-field-heading,.control-section .csf-fieldset .csf-field-subheading,.control-section .csf-fieldset .csf-field-submessage .csf-submessage{margin-left:0;margin-right:0}.control-section .csf-field-date .csf--to{margin-left:0}.control-section .csf-field-sorter ul li{padding:5px}.control-section .csf-field-sorter .csf-modules{float:none;width:100%}.control-section .csf-field-sorter .csf-modules:first-child{padding-right:0;padding-bottom:15px}.control-section .csf-field-background .csf--background-attributes{flex-direction:column}.control-section .csf-field-spacing input{width:90px}.control-section .csf-field-border .csf--input{flex:1 50%}.control-section .csf-field-border input,.control-section .csf-field-border select{width:100%}.control-section .csf-field-spinner input{width:50px}.control-section .csf-field-number .csf--wrap{width:100%}.control-section .csf-field-backup .csf-export-data{display:none}.control-section .csf-field-fieldset .csf-fieldset-content{border-color:#e5e5e5}.control-section .csf-field-fieldset .csf-field{padding:10px}.control-section .csf-field-fieldset .csf-field .csf-title{margin-bottom:5px}.control-section .csf-field-fieldset .csf-field h4{font-size:12px}.control-section .csf-field-accordion .csf-field,.control-section .csf-field-group .csf-field,.control-section .csf-field-repeater .csf-field,.control-section .csf-field-sortable .csf-field,.control-section .csf-field-tabbed .csf-field{padding:10px}.control-section .csf-field-accordion .csf-field .csf-title,.control-section .csf-field-group .csf-field .csf-title,.control-section .csf-field-repeater .csf-field .csf-title,.control-section .csf-field-sortable .csf-field .csf-title,.control-section .csf-field-tabbed .csf-field .csf-title{margin-bottom:5px}.control-section .csf-field-accordion .csf-field h4,.control-section .csf-field-group .csf-field h4,.control-section .csf-field-repeater .csf-field h4,.control-section .csf-field-sortable .csf-field h4,.control-section .csf-field-tabbed .csf-field h4{font-size:12px}.control-section .csf-dependency-control.hidden{display:none!important}.csf-taxonomy>.csf-field{border-top:none!important}.csf-taxonomy>.csf-field-heading{font-size:1.1em;padding:20px!important;border:1px solid #ddd}.csf-taxonomy>.csf-field-subheading{font-size:12px;padding:15px!important;border:1px solid #ddd}.csf-taxonomy>.csf-field-submessage .csf-submessage{padding:15px;border-left-width:1px;border-left-style:solid;border-right-width:1px;border-right-style:solid}.csf-taxonomy>.csf-field-notice{background-color:transparent}.csf-taxonomy .csf-section-title{display:block;padding:15px;background-color:#f9f9f9;border:1px solid #e5e5e5;-moz-box-shadow:0 1px 1px rgba(0,0,0,.04);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-taxonomy-add-fields>.csf-field{padding:8px 0}.csf-taxonomy-add-fields>.csf-field>.csf-title{float:none;width:100%;padding:2px 2px 4px 0}.csf-taxonomy-add-fields>.csf-field>.csf-title h4{font-size:12px;font-weight:400}.csf-taxonomy-add-fields>.csf-field>.csf-fieldset{margin-left:0}.csf-taxonomy-add-fields>.csf-field>.csf-fieldset>.csf-help{right:-5px}.csf-taxonomy-add-fields+p.submit{margin-top:0}.csf-taxonomy-edit-fields>.csf-field{padding:20px 0}.csf-taxonomy-edit-fields>.csf-field>.csf-title{width:225px}.csf-taxonomy-edit-fields>.csf-field>.csf-title h4{font-size:14px;font-weight:600;line-height:1.3;display:inline-block;vertical-align:middle}.csf-taxonomy-edit-fields>.csf-field>.csf-fieldset{margin-left:225px}.csf-taxonomy-edit-fields>.csf-field>.csf-fieldset>.csf-help{top:-5px;right:-5px}.csf-taxonomy-edit-fields>.csf-field-submessage{margin:20px 0}.csf-taxonomy-edit-fields>.csf-field-heading,.csf-taxonomy-edit-fields>.csf-field-subheading{margin:20px 0;border:1px solid #ddd}.csf-profile>h2>.fa{padding-right:7px}.csf-profile>.csf-field{padding:15px 0;border-top:none!important}.csf-profile>.csf-field>.csf-title{width:220px}.csf-profile>.csf-field>.csf-title h4{font-size:14px;font-weight:600;line-height:1.3;display:inline-block;vertical-align:middle}.csf-profile>.csf-field>.csf-fieldset{margin-left:220px}.csf-profile>.csf-field>.csf-fieldset>.csf-help{top:-15px;right:-5px}.csf-profile>.csf-field-heading{font-size:1.1em}.csf-profile>.csf-field-subheading{font-size:12px}.csf-profile>.csf-field-heading,.csf-profile>.csf-field-subheading{margin:10px 0;padding:15px!important;border:1px solid #ddd}.csf-profile>.csf-field-submessage{margin:20px 0}.csf-profile>.csf-field-submessage .csf-submessage{padding:10px;border-left-width:1px;border-left-style:solid;border-right-width:1px;border-right-style:solid}.csf-profile>.csf-field-notice{background-color:transparent}.csf-modal{display:none;position:fixed;z-index:100101;top:0;left:0;width:100%;height:100%}.csf-modal-icon{z-index:100102}.csf-modal-table{display:table;width:100%;height:100%}.csf-modal-table-cell{display:table-cell;vertical-align:middle;margin:100px 0}.csf-modal-inner{position:relative;z-index:10;width:760px;height:750px;margin:0 auto;background-color:#fff}.csf-modal-content{position:relative;overflow:hidden;overflow-y:auto;height:595px}.csf-modal-content .csf-shortcode-button{display:none}.csf-modal-content .csf-fieldset{margin-left:25%}.csf-modal-content .csf-title{width:20%}.csf-modal-content .csf-field{padding:15px 30px 15px 15px}.csf-modal-content a:active,.csf-modal-content a:focus{outline:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.csf-modal-content h4{font-size:13px}.csf-modal-content h4 small{font-style:italic;font-weight:400;color:#aaa}.csf-modal-title{position:relative;background-color:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:16px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}.csf-modal-header{width:100%;padding:14px 0;background-color:#f5f5f5;border-bottom:1px solid #eee}.csf-modal-header select{display:block;width:250px;margin:0 auto;font-size:13px;line-height:1;height:30px;min-height:30px;background-color:#fff}.csf-modal-close{color:#666;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}.csf-modal-close:before{font:normal 20px/36px dashicons;content:"\f158";vertical-align:top;width:36px;height:36px}.csf-modal-close:hover{opacity:.5}.csf-modal-insert-wrapper{text-align:center;width:100%;padding:15px 0;background-color:#f5f5f5;border-top:1px solid #eee}.csf-modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:.5}.csf--repeatable{padding:15px 15px 0 15px}.csf--repeat-button-block{text-align:center;padding-bottom:15px}.csf--repeat-shortcode{position:relative;margin-bottom:15px;border:1px dashed #ddd}.csf--repeat-shortcode:first-child .csf-repeat-remove{display:none}.csf--repeat-shortcode .csf-repeat-remove{position:absolute;right:10px;top:10px;z-index:10;cursor:pointer;display:inline-block;font-size:11px;width:18px;height:18px;line-height:18px;text-align:center;border-radius:2px;color:#fff;background-color:#e14d43;opacity:.5}.csf--repeat-shortcode .csf-repeat-remove:hover{opacity:1}.csf-shortcode-single .csf-modal-inner{height:750px}.csf-shortcode-single .csf-modal-content{height:652px}.elementor-editor-active .csf-shortcode-button{margin-left:5px}.elementor-editor-active .csf-modal .hidden{display:none!important}.csf-modal-icon .csf-icon-title{padding:15px 0;margin:4px;font-size:14px;font-weight:700;text-align:center;border:1px solid #eee;background-color:#f7f7f7}.csf-modal-icon .csf-icon-search{width:250px;height:40px;line-height:40px}.csf-modal-icon a{display:inline-block;padding:4px;cursor:pointer}.csf-modal-icon a .csf-icon{position:relative;padding:4px;display:inline-block;font-size:14px;width:30px;height:26px;line-height:26px;text-align:center;vertical-align:top;color:#555;border:1px solid #ccc;background-color:#f7f7f7;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(0,0,0,.08);-webkit-box-shadow:0 1px 0 rgba(0,0,0,.08);box-shadow:0 1px 0 rgba(0,0,0,.08);-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}.csf-modal-icon a:hover .csf-icon{color:#fff;border-color:#222;background-color:#222}.csf-modal-icon .csf-modal-content{padding:10px;height:618px}.csf-modal-icon .csf-text-error{padding:10px}.csf-modal-loading{display:none;position:absolute;left:15px;top:15px}.csf-loading{position:relative;width:20px;height:20px;background:#ccc;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;-moz-box-shadow:0 2px 5px rgba(0,0,0,.07);-webkit-box-shadow:0 2px 5px rgba(0,0,0,.07);box-shadow:0 2px 5px rgba(0,0,0,.07)}.csf-loading:after{position:absolute;top:50%;left:50%;width:4px;height:4px;content:"";margin-top:-2px;margin-left:-2px;background-color:#fff;-moz-animation-duration:.5s;-webkit-animation-duration:.5s;animation-duration:.5s;-moz-animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-moz-animation-timing-function:linear;-webkit-animation-timing-function:linear;animation-timing-function:linear;-moz-animation-name:csfLoader;-webkit-animation-name:csfLoader;animation-name:csfLoader;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}@-moz-keyframes csfLoader{0%{-moz-transform:rotate(0) translateX(-6px) rotate(0);transform:rotate(0) translateX(-6px) rotate(0)}100%{-moz-transform:rotate(360deg) translateX(-6px) rotate(-360deg);transform:rotate(360deg) translateX(-6px) rotate(-360deg)}}@-webkit-keyframes csfLoader{0%{-webkit-transform:rotate(0) translateX(-6px) rotate(0);transform:rotate(0) translateX(-6px) rotate(0)}100%{-webkit-transform:rotate(360deg) translateX(-6px) rotate(-360deg);transform:rotate(360deg) translateX(-6px) rotate(-360deg)}}@keyframes csfLoader{0%{-moz-transform:rotate(0) translateX(-6px) rotate(0);-ms-transform:rotate(0) translateX(-6px) rotate(0);-webkit-transform:rotate(0) translateX(-6px) rotate(0);transform:rotate(0) translateX(-6px) rotate(0)}100%{-moz-transform:rotate(360deg) translateX(-6px) rotate(-360deg);-ms-transform:rotate(360deg) translateX(-6px) rotate(-360deg);-webkit-transform:rotate(360deg) translateX(-6px) rotate(-360deg);transform:rotate(360deg) translateX(-6px) rotate(-360deg)}}.csf-text-desc,.csf-text-subtitle{font-weight:400;margin-top:10px;color:#999}.csf-text-success{color:#2b542c}.csf-text-error{color:#d02c21}.csf-text-info{color:#31708f}.csf-text-warning{color:#ffb900}.csf-text-muted{color:#aaa}.csf-text-left{text-align:left}.csf-text-center{text-align:center}.csf-text-right{text-align:right}.csf-block-left{float:left}.csf-block-right{float:right}.csf-full-width{width:100%}.csf-full-half{width:50%}.csf-table{width:100%;display:table}.csf-table-cell{display:table-cell;vertical-align:middle}.csf-table-expanded{width:100%}.csf-nowrap{white-space:nowrap}.csf-text-highlight{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.csf-text-highlight-gray{padding:2px 4px;font-size:90%;background-color:#f0f0f0;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.csf-hidden{display:none}.csf-hide{display:none!important}.csf-show{display:block!important}.csf-opacity{opacity:.5}.csf-warning-primary{color:#fff!important;border-color:#dc3545!important;background:#dc3545!important}.csf-warning-primary:focus,.csf-warning-primary:hover{border-color:#bd2130!important;background:#bd2130!important}.csf-warning-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #bd2130!important}.csf-warning-primary:active{border-color:#bd2130!important;background:#bd2130!important}.csf-form-result{display:none;float:left;padding:0 8px;margin-right:4px;font-size:11px;line-height:28px;user-select:none;border-radius:2px}.csf-form-show{display:block}.csf-form-success{color:#fff;background-color:#46b450}.csf-form-warning{color:#8a6d3b;background-color:#faebcc}.csf-label-error{position:relative;top:-2px;display:inline-block;font-size:10px;line-height:10px;height:10px;width:10px;padding:1px;font-style:normal;text-align:center;color:#fff;vertical-align:middle;background-color:#e10000;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.csf-no-option{padding:30px}.csf-input-number{-moz-appearance:textfield}.csf-input-number::-webkit-inner-spin-button,.csf-input-number::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.csf-welcome-wrap{position:relative;margin:25px 40px 0 20px;font-size:15px;max-width:1200px}.csf-welcome-wrap p{font-size:14px;line-height:1.5}.csf-welcome-wrap h1{margin:.2em 200px 0 0;padding:0;color:#32373c;line-height:1.2em;font-size:2.8em;font-weight:400}.csf-welcome-wrap .csf-logo{position:absolute;overflow:hidden;top:0;right:0;height:160px;width:140px;background-image:linear-gradient(45deg,#2d67cb,#ad19f3);box-shadow:0 1px 4px rgba(0,0,0,.25),inset 0 0 0 4px rgba(0,0,0,.25)}.csf-welcome-wrap .csf-logo .csf--effects i{position:absolute;width:200px;height:100px;background-color:rgba(0,0,0,.15);transform:rotate(-45deg)}.csf-welcome-wrap .csf-logo .csf--effects i:nth-child(1){bottom:-20px;right:-70px}.csf-welcome-wrap .csf-logo .csf--effects i:nth-child(2){bottom:-35px;right:-80px}.csf-welcome-wrap .csf-logo .csf--effects i:nth-child(3){bottom:-50px;right:-90px}.csf-welcome-wrap .csf-logo .csf--effects i:nth-child(4){bottom:-65px;right:-100px}.csf-welcome-wrap .csf-logo .csf--wp-logos{position:relative;padding-top:25px;text-align:center}.csf-welcome-wrap .csf-logo .csf--wp-logo{position:absolute;left:20px;width:20px;height:20px;background-repeat:no-repeat;background-position:center center;background-image:url(../images/wp-logo.svg)}.csf-welcome-wrap .csf-logo .csf--wp-plugin-logo{display:inline-block;width:50px;height:50px;border:3px solid #fff;background-size:40px;background-repeat:no-repeat;background-position:center center;background-image:url(../images/wp-plugin-logo.svg);border-radius:100%;vertical-align:middle}.csf-welcome-wrap .csf-logo .csf--text{position:absolute;left:0;right:0;top:90px;color:#fff;font-size:13px;line-height:1.2em;font-weight:600;text-align:center;text-transform:uppercase;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.csf-welcome-wrap .csf-logo .csf--version{top:auto;left:auto;right:8px;bottom:4px;font-size:11px;text-transform:lowercase}.csf-welcome-wrap .csf-about-text{font-weight:400;line-height:1.6em;font-size:19px;margin:1em 200px 1em 0;color:#555d66}.csf-welcome-wrap .csf-demo-button{margin:1em 200px 2em 0}.csf-welcome-wrap .nav-tab-wrapper{margin-bottom:20px}.csf-welcome-wrap ul{list-style-type:disc;padding-left:15px}.csf-welcome-wrap .csf--col{float:left;padding-right:20px;box-sizing:border-box}.csf-welcome-wrap .csf--col-2{width:50%}.csf-welcome-wrap .csf--col-3{width:33.333%}.csf-welcome-wrap .csf--col-4{width:25%}.csf-welcome-wrap .csf--col-5{width:20%}.csf-welcome-wrap .csf--col-last{padding-right:0}.csf-welcome-wrap .csf--col-upgrade{padding:10px 0;text-align:center;border-top:1px solid #e5e5e5}.csf--table-compare tfoot td,.csf--table-compare thead td{text-align:center}.csf--table-compare td{font-size:14px;text-align:center;vertical-align:middle;padding:10px}.csf--table-compare td:first-child{text-align:left}.csf--table-compare tfoot td{padding:15px 0}.csf--table-compare .fa{font-size:18px}.csf--table-compare .fa-check-circle{color:#46b450}.csf--table-compare .fa-times-circle{color:#dc3232}.csf-welcome-cols{clear:both;margin:20px 0;background-color:#fff;padding:0 0;border-radius:2px;border:1px solid #e5e5e5}.csf-welcome-cols .csf--col{width:25%;float:left;padding:20px;text-align:center;box-sizing:border-box;min-height:200px;border-right:1px solid #e5e5e5}.csf-welcome-cols .csf--block,.csf-welcome-cols .csf--left{float:left;width:20%;padding:0 30px;text-align:center;box-sizing:border-box}.csf-welcome-cols .csf--block{width:80%}.csf-welcome-cols .csf--col-first{border-bottom:1px solid #e5e5e5}.csf-welcome-cols .csf--last{border-right:none}.csf-welcome-cols .csf--space{height:20px}.csf-welcome-cols .csf--icon{display:inline-block;font-size:20px;width:30px;height:30px;line-height:30px;text-align:center;margin-bottom:10px;color:#fff;background-color:#555;border-radius:30px}.csf-welcome-cols .csf--active{background-color:#5cb85c}.csf-welcome-cols .csf--deactive{background-color:#e14d43}.csf-welcome-cols .csf--title{font-weight:700;display:block}.csf-welcome-cols p:last-child{margin-bottom:0}.csf-features-cols .csf--key-features{width:30%}.csf-features-cols .csf--available-fields{width:70%}.csf-code-block{margin:20px 0;padding:5px 20px;background-color:#fff;border-radius:2px;box-shadow:0 1px 1px rgba(0,0,0,.15)}.csf-code-block pre{font-size:13px;color:#0073aa}.csf-code-block pre span{color:#999}.csf--table-fields td{font-size:14px}.csf--upgrade a{color:#5cb85c;font-weight:700}.csf--upgrade a:focus,.csf--upgrade a:hover{color:#4aa14a;outline:0;box-shadow:none}@media only screen and (max-width:782px){.csf-welcome-cols .csf--col{width:100%;min-height:auto;border-right:none;border-bottom:1px solid #e5e5e5}.csf-features-cols .csf--key-features{width:100%}.csf-features-cols .csf--available-fields{width:100%}}@media only screen and (max-width:1200px){.csf-metabox .csf-field .csf-title{float:none;width:100%;margin-bottom:10px}.csf-metabox .csf-field .csf-fieldset{margin-left:0}}@media only screen and (max-width:782px){.csf-header-inner{text-align:center}.csf-header-inner h1{width:100%;margin-bottom:10px}.csf-form-result{float:none;margin-right:0;margin-bottom:10px}.csf-header-left,.csf-header-right,.csf-search{width:100%}.csf-search{text-align:center;margin-bottom:15px}.csf-footer{text-align:center}.csf-buttons{float:none}.csf-copyright{float:none;margin-top:10px}.csf-expand-all,.csf-nav,.csf-nav-background,.csf-reset-section{display:none!important}.csf-content{margin-left:0}.csf-section,.csf-section-title{display:block!important}.csf-field .csf-title{float:none;width:100%;margin-bottom:10px}.csf-field .csf-fieldset{margin-left:0}.csf-modal-inner{width:350px;height:400px}.csf-modal-content{height:237px}.csf-icon-dialog .csf-modal-inner{width:305px;height:380px}.csf-icon-dialog .csf-modal-content{height:267px}.csf-modal-icon .csf-modal-inner{width:330px;height:385px}.csf-modal-icon .csf-modal-content{height:252px}.csf-profile>.csf-field>.csf-title{float:none;width:100%;margin-bottom:10px}.csf-profile>.csf-field>.csf-fieldset{margin-left:0}}.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;user-select:none}.chosen-container *{box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15);clip:rect(0,0,0,0);clip-path:inset(100% 100%)}.chosen-container.chosen-with-drop .chosen-drop{clip:auto;clip-path:none}.chosen-container a{cursor:pointer}.chosen-container .chosen-single .group-name,.chosen-container .search-choice .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#999}.chosen-container .chosen-single .group-name:after,.chosen-container .search-choice .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;font-size:1px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;clip:rect(0,0,0,0);clip-path:inset(100% 100%)}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto;border:1px solid #aaa;background-color:#fff;background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;outline:0;border:0!important;background:0 0!important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0;width:25px;height:25px;min-height:25px}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 6px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:0;right:0;display:block;width:12px;height:12px;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;border-bottom-right-radius:0;border-bottom-left-radius:0;background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:0 0}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;direction:rtl}
admin/views/{tp-metabox → framework}/assets/images/checkerboard.png RENAMED
File without changes
admin/views/framework/assets/images/wp-logo.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><rect x="0" fill="none" width="20" height="20"/><g><g fill="#fff"><path d="M20 10c0-5.52-4.48-10-10-10S0 4.48 0 10s4.48 10 10 10 10-4.48 10-10zM10 1.01c4.97 0 8.99 4.02 8.99 8.99s-4.02 8.99-8.99 8.99S1.01 14.97 1.01 10 5.03 1.01 10 1.01zM8.01 14.82L4.96 6.61c.49-.03 1.05-.08 1.05-.08.43-.05.38-1.01-.06-.99 0 0-1.29.1-2.13.1-.15 0-.33 0-.52-.01 1.44-2.17 3.9-3.6 6.7-3.6 2.09 0 3.99.79 5.41 2.09-.6-.08-1.45.35-1.45 1.42 0 .66.38 1.22.79 1.88.31.54.5 1.22.5 2.21 0 1.34-1.27 4.48-1.27 4.48l-2.71-7.5c.48-.03.75-.16.75-.16.43-.05.38-1.1-.05-1.08 0 0-1.3.11-2.14.11-.78 0-2.11-.11-2.11-.11-.43-.02-.48 1.06-.05 1.08l.84.08 1.12 3.04zm6.02 2.15L16.64 10s.67-1.69.39-3.81c.63 1.14.94 2.42.94 3.81 0 2.96-1.56 5.58-3.94 6.97zM2.68 6.77L6.5 17.25c-2.67-1.3-4.47-4.08-4.47-7.25 0-1.16.2-2.23.65-3.23zm7.45 4.53l2.29 6.25c-.75.27-1.57.42-2.42.42-.72 0-1.41-.11-2.06-.3z"/></g></g></svg>
admin/views/framework/assets/images/wp-plugin-logo.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><rect x="0" fill="none" width="20" height="20"/><g><g fill="#fff"><path d="M13.11 4.36L9.87 7.6 8 5.73l3.24-3.24c.35-.34 1.05-.2 1.56.32.52.51.66 1.21.31 1.55zm-8 1.77l.91-1.12 9.01 9.01-1.19.84c-.71.71-2.63 1.16-3.82 1.16H6.14L4.9 17.26c-.59.59-1.54.59-2.12 0-.59-.58-.59-1.53 0-2.12l1.24-1.24v-3.88c0-1.13.4-3.19 1.09-3.89zm7.26 3.97l3.24-3.24c.34-.35 1.04-.21 1.55.31.52.51.66 1.21.31 1.55l-3.24 3.25z"/></g></g></svg>
admin/views/{tp-metabox/assets/js/spftestimonial-plugins.js → framework/assets/js/csf-plugins.js} RENAMED
@@ -12,13 +12,13 @@
12
  */
13
  (function($) {
14
 
15
- function SPFTESTIMONIALAjaxChosen(element, options) {
16
  this.element = $(element);
17
  this.options = options;
18
  this.init();
19
  };
20
 
21
- SPFTESTIMONIALAjaxChosen.prototype.init = function() {
22
  this.element.chosen(this.options);
23
  this.container = this.element.next('.chosen-container');
24
  this.search_field = this.container.find('.chosen-search-input');
@@ -28,7 +28,7 @@
28
  this.events();
29
  };
30
 
31
- SPFTESTIMONIALAjaxChosen.prototype.events = function() {
32
 
33
  var _this = this;
34
 
@@ -51,14 +51,14 @@
51
 
52
  };
53
 
54
- SPFTESTIMONIALAjaxChosen.prototype.search_field_focused = function() {
55
  this.search_welcome_message();
56
  if ( this.options.min_length === 0 && this.search_field.val().length === 0 ) {
57
  this.update_list();
58
  }
59
  };
60
 
61
- SPFTESTIMONIALAjaxChosen.prototype.search_welcome_message = function() {
62
 
63
  var value = $.trim(this.search_field.val());
64
  var results = this.container.find('.chosen-results');
@@ -69,7 +69,7 @@
69
 
70
  };
71
 
72
- SPFTESTIMONIALAjaxChosen.prototype.update_list = function() {
73
 
74
  var _this = this;
75
 
@@ -100,7 +100,7 @@
100
 
101
  _this.options.data['term'] = value;
102
 
103
- _this.chosenXhr = window.wp.ajax.post('spftestimonial-chosen', _this.options.data).done( function( response ) {
104
  _this.show_results( response );
105
  }).fail( function( response ) {
106
  _this.container.find('.no-results').text(response.error);
@@ -110,7 +110,7 @@
110
 
111
  };
112
 
113
- SPFTESTIMONIALAjaxChosen.prototype.show_results = function( items ) {
114
 
115
  var _this = this;
116
 
@@ -147,10 +147,10 @@
147
 
148
  if( this.is_multiple ) {
149
 
150
- var $hidden_select = this.element.parent().find('.spftestimonial-hidden-select');
151
  var $hidden_value = $hidden_select.val() || [];
152
 
153
- this.element.SPFTESTIMONIALChosenOrder($hidden_value, true);
154
  this.search_field.css('width', width_before_trigger);
155
 
156
  }
@@ -163,9 +163,9 @@
163
 
164
  };
165
 
166
- $.fn.SPFTESTIMONIALAjaxChosen = function(chosenOptions) {
167
  return this.each(function() {
168
- new SPFTESTIMONIALAjaxChosen(this, chosenOptions);
169
  });
170
  };
171
 
@@ -175,20 +175,20 @@
175
  // Full source at https://github.com/tristanjahier/chosen-order
176
  // Copyright (c) 2013 - Tristan Jahier, http://tristan-jahier.fr
177
  (function() {
178
- var $, SPFTESTIMONIALAbstractChosenOrder, _ref,
179
  __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
180
  __hasProp = {}.hasOwnProperty,
181
  __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
182
 
183
- SPFTESTIMONIALAbstractChosenOrder = (function() {
184
 
185
- function SPFTESTIMONIALAbstractChosenOrder() {}
186
 
187
- SPFTESTIMONIALAbstractChosenOrder.insertAt = function(node, index, parentNode) {
188
  return parentNode.insertBefore(node, parentNode.children[index].nextSibling);
189
  };
190
 
191
- SPFTESTIMONIALAbstractChosenOrder.getFlattenedOptionsAndGroups = function(select) {
192
  var flattened_options, opt, options, sub_opt, sub_options, _i, _j, _len, _len1;
193
  options = Array.prototype.filter.call(select.childNodes, function(o) {
194
  var _ref;
@@ -211,11 +211,11 @@
211
  return flattened_options;
212
  };
213
 
214
- SPFTESTIMONIALAbstractChosenOrder.isValidMultipleSelectElement = function(element) {
215
  return element !== null && typeof element !== "undefined" && element.nodeName === "SELECT" && element.multiple;
216
  };
217
 
218
- SPFTESTIMONIALAbstractChosenOrder.getChosenUIContainer = function(select) {
219
  if (select.id !== "") {
220
  return document.getElementById(select.id.replace(/-/g, "_") + "_chosen");
221
  } else {
@@ -223,11 +223,11 @@
223
  }
224
  };
225
 
226
- SPFTESTIMONIALAbstractChosenOrder.isChosenified = function(select) {
227
  return this.getChosenUIContainer(select) != null;
228
  };
229
 
230
- SPFTESTIMONIALAbstractChosenOrder.forceSelection = function(select, selection) {
231
  var i, opt, options, _ref;
232
  options = this.getFlattenedOptionsAndGroups(select);
233
  i = 0;
@@ -245,7 +245,7 @@
245
  return this.triggerEvent(select, "chosen:updated");
246
  };
247
 
248
- SPFTESTIMONIALAbstractChosenOrder.SPFTESTIMONIALChosenOrder = function(select, order, force) {
249
  var chosen_choices, chosen_options, chosen_ui, i, j, opt, opt_val, option, options, rel, relAttributeName, _i, _j, _len, _len1, _results;
250
  if (this.getDOMElement != null) {
251
  select = this.getDOMElement(select);
@@ -290,33 +290,33 @@
290
  }
291
  };
292
 
293
- return SPFTESTIMONIALAbstractChosenOrder;
294
 
295
  })();
296
 
297
  $ = jQuery;
298
 
299
  $.fn.extend({
300
- SPFTESTIMONIALChosenOrder: function(order, force) {
301
- return _SPFTESTIMONIALChosenOrder.SPFTESTIMONIALChosenOrder(this, order, force);
302
  }
303
  });
304
 
305
- this._SPFTESTIMONIALChosenOrder = (function(_super) {
306
- __extends(_SPFTESTIMONIALChosenOrder, _super);
307
 
308
- function _SPFTESTIMONIALChosenOrder() {
309
- _ref = _SPFTESTIMONIALChosenOrder.__super__.constructor.apply(this, arguments);
310
  return _ref;
311
  }
312
 
313
- _SPFTESTIMONIALChosenOrder.relAttributeName = 'data-option-array-index';
314
 
315
- _SPFTESTIMONIALChosenOrder.isjQueryObject = function(obj) {
316
  return (typeof jQuery !== "undefined" && jQuery !== null) && obj instanceof jQuery;
317
  };
318
 
319
- _SPFTESTIMONIALChosenOrder.getDOMElement = function(element) {
320
  if (this.isjQueryObject(element)) {
321
  return element.get(0);
322
  } else {
@@ -324,7 +324,7 @@
324
  }
325
  };
326
 
327
- _SPFTESTIMONIALChosenOrder.searchChosenUIContainer = function(element) {
328
  if ($(element).data("chosen") != null) {
329
  return $(element).data("chosen").container[0];
330
  } else {
@@ -332,13 +332,13 @@
332
  }
333
  };
334
 
335
- _SPFTESTIMONIALChosenOrder.triggerEvent = function(target, event_name) {
336
  return $(target).trigger(event_name);
337
  };
338
 
339
- return _SPFTESTIMONIALChosenOrder;
340
 
341
- })(SPFTESTIMONIALAbstractChosenOrder);
342
 
343
  }).call(this);
344
  ;(function() {
@@ -1916,7 +1916,7 @@
1916
  }
1917
  });
1918
 
1919
- $.spftestimonial_deps = {
1920
 
1921
  createRuleset: function() {
1922
  return new Ruleset();
@@ -1979,7 +1979,7 @@
1979
  // Codestar: Added custom patterns for spesific validate
1980
  //
1981
  var patterns = {
1982
- validate: /^(?!_nonce)[a-zA-Z0-9_-]*(?:\[(?:\d*|(?!_nonce)[a-zA-Z0-9_-]+)\])*$/i,
1983
  key: /[a-zA-Z0-9_-]+|(?=\[\])/g,
1984
  named: /^[a-zA-Z0-9_-]+$/,
1985
  push: /^$/,
@@ -2082,8 +2082,8 @@
2082
  //
2083
 
2084
  if (typeof $.fn !== "undefined") {
2085
- $.fn.serializeObjectSPFTESTIMONIAL = FormSerializer.serializeObject;
2086
- $.fn.serializeJSONSPFTESTIMONIAL = FormSerializer.serializeJSON;
2087
  }
2088
 
2089
  exports.FormSerializer = FormSerializer;
12
  */
13
  (function($) {
14
 
15
+ function CSFAjaxChosen(element, options) {
16
  this.element = $(element);
17
  this.options = options;
18
  this.init();
19
  };
20
 
21
+ CSFAjaxChosen.prototype.init = function() {
22
  this.element.chosen(this.options);
23
  this.container = this.element.next('.chosen-container');
24
  this.search_field = this.container.find('.chosen-search-input');
28
  this.events();
29
  };
30
 
31
+ CSFAjaxChosen.prototype.events = function() {
32
 
33
  var _this = this;
34
 
51
 
52
  };
53
 
54
+ CSFAjaxChosen.prototype.search_field_focused = function() {
55
  this.search_welcome_message();
56
  if ( this.options.min_length === 0 && this.search_field.val().length === 0 ) {
57
  this.update_list();
58
  }
59
  };
60
 
61
+ CSFAjaxChosen.prototype.search_welcome_message = function() {
62
 
63
  var value = $.trim(this.search_field.val());
64
  var results = this.container.find('.chosen-results');
69
 
70
  };
71
 
72
+ CSFAjaxChosen.prototype.update_list = function() {
73
 
74
  var _this = this;
75
 
100
 
101
  _this.options.data['term'] = value;
102
 
103
+ _this.chosenXhr = window.wp.ajax.post('csf-chosen', _this.options.data).done( function( response ) {
104
  _this.show_results( response );
105
  }).fail( function( response ) {
106
  _this.container.find('.no-results').text(response.error);
110
 
111
  };
112
 
113
+ CSFAjaxChosen.prototype.show_results = function( items ) {
114
 
115
  var _this = this;
116
 
147
 
148
  if( this.is_multiple ) {
149
 
150
+ var $hidden_select = this.element.parent().find('.csf-hidden-select');
151
  var $hidden_value = $hidden_select.val() || [];
152
 
153
+ this.element.CSFChosenOrder($hidden_value, true);
154
  this.search_field.css('width', width_before_trigger);
155
 
156
  }
163
 
164
  };
165
 
166
+ $.fn.CSFAjaxChosen = function(chosenOptions) {
167
  return this.each(function() {
168
+ new CSFAjaxChosen(this, chosenOptions);
169
  });
170
  };
171
 
175
  // Full source at https://github.com/tristanjahier/chosen-order
176
  // Copyright (c) 2013 - Tristan Jahier, http://tristan-jahier.fr
177
  (function() {
178
+ var $, CSFAbstractChosenOrder, _ref,
179
  __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
180
  __hasProp = {}.hasOwnProperty,
181
  __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
182
 
183
+ CSFAbstractChosenOrder = (function() {
184
 
185
+ function CSFAbstractChosenOrder() {}
186
 
187
+ CSFAbstractChosenOrder.insertAt = function(node, index, parentNode) {
188
  return parentNode.insertBefore(node, parentNode.children[index].nextSibling);
189
  };
190
 
191
+ CSFAbstractChosenOrder.getFlattenedOptionsAndGroups = function(select) {
192
  var flattened_options, opt, options, sub_opt, sub_options, _i, _j, _len, _len1;
193
  options = Array.prototype.filter.call(select.childNodes, function(o) {
194
  var _ref;
211
  return flattened_options;
212
  };
213
 
214
+ CSFAbstractChosenOrder.isValidMultipleSelectElement = function(element) {
215
  return element !== null && typeof element !== "undefined" && element.nodeName === "SELECT" && element.multiple;
216
  };
217
 
218
+ CSFAbstractChosenOrder.getChosenUIContainer = function(select) {
219
  if (select.id !== "") {
220
  return document.getElementById(select.id.replace(/-/g, "_") + "_chosen");
221
  } else {
223
  }
224
  };
225
 
226
+ CSFAbstractChosenOrder.isChosenified = function(select) {
227
  return this.getChosenUIContainer(select) != null;
228
  };
229
 
230
+ CSFAbstractChosenOrder.forceSelection = function(select, selection) {
231
  var i, opt, options, _ref;
232
  options = this.getFlattenedOptionsAndGroups(select);
233
  i = 0;
245
  return this.triggerEvent(select, "chosen:updated");
246
  };
247
 
248
+ CSFAbstractChosenOrder.CSFChosenOrder = function(select, order, force) {
249
  var chosen_choices, chosen_options, chosen_ui, i, j, opt, opt_val, option, options, rel, relAttributeName, _i, _j, _len, _len1, _results;
250
  if (this.getDOMElement != null) {
251
  select = this.getDOMElement(select);
290
  }
291
  };
292
 
293
+ return CSFAbstractChosenOrder;
294
 
295
  })();
296
 
297
  $ = jQuery;
298
 
299
  $.fn.extend({
300
+ CSFChosenOrder: function(order, force) {
301
+ return _CSFChosenOrder.CSFChosenOrder(this, order, force);
302
  }
303
  });
304
 
305
+ this._CSFChosenOrder = (function(_super) {
306
+ __extends(_CSFChosenOrder, _super);
307
 
308
+ function _CSFChosenOrder() {
309
+ _ref = _CSFChosenOrder.__super__.constructor.apply(this, arguments);
310
  return _ref;
311
  }
312
 
313
+ _CSFChosenOrder.relAttributeName = 'data-option-array-index';
314
 
315
+ _CSFChosenOrder.isjQueryObject = function(obj) {
316
  return (typeof jQuery !== "undefined" && jQuery !== null) && obj instanceof jQuery;
317
  };
318
 
319
+ _CSFChosenOrder.getDOMElement = function(element) {
320
  if (this.isjQueryObject(element)) {
321
  return element.get(0);
322
  } else {
324
  }
325
  };
326
 
327
+ _CSFChosenOrder.searchChosenUIContainer = function(element) {
328
  if ($(element).data("chosen") != null) {
329
  return $(element).data("chosen").container[0];
330
  } else {
332
  }
333
  };
334
 
335
+ _CSFChosenOrder.triggerEvent = function(target, event_name) {
336
  return $(target).trigger(event_name);
337
  };
338
 
339
+ return _CSFChosenOrder;
340
 
341
+ })(CSFAbstractChosenOrder);
342
 
343
  }).call(this);
344
  ;(function() {
1916
  }
1917
  });
1918
 
1919
+ $.csf_deps = {
1920
 
1921
  createRuleset: function() {
1922
  return new Ruleset();
1979
  // Codestar: Added custom patterns for spesific validate
1980
  //
1981
  var patterns = {
1982
+ validate: /^(?!(_nonce|_pseudo))[a-zA-Z0-9_-]*(?:\[(?:\d*|(?!(_nonce|_pseudo))[a-zA-Z0-9_-]+)\])*$/i,
1983
  key: /[a-zA-Z0-9_-]+|(?=\[\])/g,
1984
  named: /^[a-zA-Z0-9_-]+$/,
1985
  push: /^$/,
2082
  //
2083
 
2084
  if (typeof $.fn !== "undefined") {
2085
+ $.fn.serializeObjectCSF = FormSerializer.serializeObject;
2086
+ $.fn.serializeJSONCSF = FormSerializer.serializeJSON;
2087
  }
2088
 
2089
  exports.FormSerializer = FormSerializer;
admin/views/framework/assets/js/csf-plugins.min.js ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ /* Codestar Framework | A Simple and Lightweight WordPress Option Framework - v2.1.3.x*/
2
+
3
+ !function(t){function e(e,s){this.element=t(e),this.options=s,this.init()}e.prototype.init=function(){this.element.chosen(this.options),this.container=this.element.next(".chosen-container"),this.search_field=this.container.find(".chosen-search-input"),this.is_multiple=this.container.hasClass("chosen-container-multi"),this.is_typing=!1,this.chosenXhr=null,this.events()},e.prototype.events=function(){var t=this;this.search_field.on("compositionstart",function(){t.is_typing=!0}),this.search_field.on("compositionend",function(){t.is_typing=!1,t.update_list()}),this.search_field.on("keyup",function(){t.update_list()}),this.search_field.on("focus",function(){t.search_field_focused()})},e.prototype.search_field_focused=function(){this.search_welcome_message(),0===this.options.min_length&&0===this.search_field.val().length&&this.update_list()},e.prototype.search_welcome_message=function(){var e=t.trim(this.search_field.val()),s=this.container.find(".chosen-results");0===s.children().length&&0===e.length&&s.html('<li class="no-results">'+this.options.typing_text.replace("%s",this.options.min_length-e.length)+"</li>")},e.prototype.update_list=function(){var e=this;if(this.search_welcome_message(),!this.is_typing){var s=t.trim(this.search_field.val()),i=s.length<this.options.min_length?this.options.typing_text.replace("%s",this.options.min_length-s.length):this.options.searching_text;this.container.find(".no-results").text(i),s!==this.search_field.data("prevVal")&&(this.search_field.data("prevVal",s),this.timer&&clearTimeout(this.timer),s.length<this.options.min_length||(this.timer=setTimeout(function(){e.chosenXhr&&e.chosenXhr.abort(),e.options.data.term=s,e.chosenXhr=window.wp.ajax.post("csf-chosen",e.options.data).done(function(t){e.show_results(t)}).fail(function(t){e.container.find(".no-results").text(t.error)})},this.options.type_delay)))}},e.prototype.show_results=function(e){var s=this;if(!this.is_typing&&null!==e){if(0===e.length)return this.element.data().chosen.no_results_clear(),void this.element.data().chosen.no_results(this.search_field.val());var i=[];this.element.find("option").each(function(){t(this).is(":selected")?i.push(t(this).val()+"-"+t(this).text()):t(this).attr("value").length&&t(this).remove()}),t.each(e,function(e,n){-1===t.inArray(n.value+"-"+n.text,i)&&t("<option />").attr("value",n.value).html(n.text).appendTo(s.element)});var n=this.search_field.val(),r=this.search_field.innerWidth();if(this.element.trigger("chosen:updated"),this.is_multiple){var o=this.element.parent().find(".csf-hidden-select").val()||[];this.element.CSFChosenOrder(o,!0),this.search_field.css("width",r)}this.search_field.val(n),null!==this.chosenXhr.done&&this.chosenXhr.done(e)}},t.fn.CSFAjaxChosen=function(t){return this.each(function(){new e(this,t)})}}(jQuery),function(){var t,e,s=[].indexOf||function(t){for(var e=0,s=this.length;e<s;e++)if(e in this&&this[e]===t)return e;return-1},i={}.hasOwnProperty;e=function(){function t(){}return t.insertAt=function(t,e,s){return s.insertBefore(t,s.children[e].nextSibling)},t.getFlattenedOptionsAndGroups=function(t){var e,s,i,n,r,o,h,l,c;for(e=[],o=0,l=(i=Array.prototype.filter.call(t.childNodes,function(t){var e;return"OPTION"===(e=t.nodeName.toUpperCase())||"OPTGROUP"===e})).length;o<l;o++)if(s=i[o],e.push(s),"OPTGROUP"===s.nodeName.toUpperCase())for(h=0,c=(r=Array.prototype.filter.call(s.childNodes,function(t){return"OPTION"===t.nodeName.toUpperCase()})).length;h<c;h++)n=r[h],e.push(n);return e},t.isValidMultipleSelectElement=function(t){return null!=t&&"SELECT"===t.nodeName&&t.multiple},t.getChosenUIContainer=function(t){return""!==t.id?document.getElementById(t.id.replace(/-/g,"_")+"_chosen"):this.searchChosenUIContainer(t)},t.isChosenified=function(t){return null!=this.getChosenUIContainer(t)},t.forceSelection=function(t,e){var i,n,r,o;for(r=this.getFlattenedOptionsAndGroups(t),i=0;i<r.length;)o=(n=r[i]).getAttribute("value"),s.call(e,o)>=0?(n.selected=!0,n.setAttribute("selected","")):(n.selected=!1,n.removeAttribute("selected")),i++;return this.triggerEvent(t,"chosen:updated")},t.CSFChosenOrder=function(t,e,s){var i,n,r,o,h,l,c,a,u,_,d,p,f,g;if(null!=this.getDOMElement&&(t=this.getDOMElement(t)),this.isValidMultipleSelectElement(t)&&null!=(n=this.getChosenUIContainer(t))&&e instanceof Array){for(e=e.map(Function.prototype.call,String.prototype.trim),c=this.getFlattenedOptionsAndGroups(t),null!=s&&!0===s&&this.forceSelection(t,e),g=[],r=_=0,p=e.length;_<p;r=++_){for(h=e[r],a=null,o=d=0,f=c.length;d<f;o=++d)c[o].value===h&&(a=o);i=n.querySelectorAll(".search-choice"),u=this.relAttributeName,null!=(l=Array.prototype.filter.call(i,function(t){return null!=t.querySelector("a.search-choice-close["+u+'="'+a+'"]')})[0])&&(n.querySelector("ul.chosen-choices"),g.push(this.insertAt(l,r,n.querySelector("ul.chosen-choices"))))}return g}},t}(),(t=jQuery).fn.extend({CSFChosenOrder:function(t,e){return _CSFChosenOrder.CSFChosenOrder(this,t,e)}}),this._CSFChosenOrder=function(s){function n(){return n.__super__.constructor.apply(this,arguments)}return function(t,e){for(var s in e)i.call(e,s)&&(t[s]=e[s]);function n(){this.constructor=t}n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype}(n,e),n.relAttributeName="data-option-array-index",n.isjQueryObject=function(t){return"undefined"!=typeof jQuery&&null!==jQuery&&t instanceof jQuery},n.getDOMElement=function(t){return this.isjQueryObject(t)?t.get(0):t},n.searchChosenUIContainer=function(e){return null!=t(e).data("chosen")?t(e).data("chosen").container[0]:t(e).next(".chosen-container.chosen-container-multi").get(0)},n.triggerEvent=function(e,s){return t(e).trigger(s)},n}()}.call(this),function(){var t,e,s,i,n=function(t,e){return function(){return t.apply(e,arguments)}},r={}.hasOwnProperty;(i=function(){function t(){this.options_index=0,this.parsed=[]}return t.prototype.add_node=function(t){return"OPTGROUP"===t.nodeName.toUpperCase()?this.add_group(t):this.add_option(t)},t.prototype.add_group=function(t){var e,s,i,n,r,o;for(e=this.parsed.length,this.parsed.push({array_index:e,group:!0,label:t.label,title:t.title?t.title:void 0,children:0,disabled:t.disabled,classes:t.className}),o=[],s=0,i=(r=t.childNodes).length;s<i;s++)n=r[s],o.push(this.add_option(n,e,t.disabled));return o},t.prototype.add_option=function(t,e,s){if("OPTION"===t.nodeName.toUpperCase())return""!==t.text?(null!=e&&(this.parsed[e].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:t.value,text:t.text,html:t.innerHTML,title:t.title?t.title:void 0,selected:t.selected,disabled:!0===s?s:t.disabled,group_array_index:e,group_label:null!=e?this.parsed[e].label:null,classes:t.className,style:t.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},t}()).select_to_array=function(t){var e,s,n,r,o;for(r=new i,s=0,n=(o=t.childNodes).length;s<n;s++)e=o[s],r.add_node(e);return r.parsed},e=function(){function t(e,s){this.form_field=e,this.options=null!=s?s:{},this.label_click_handler=n(this.label_click_handler,this),t.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return t.prototype.set_default_values=function(){var t,e;return this.click_test_action=(t=this,function(e){return t.test_active_click(e)}),this.activate_action=(e=this,function(t){return e.activate_field(t)}),this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.is_rtl=this.options.rtl||/\bchosen-rtl\b/.test(this.form_field.className),this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text&&this.options.allow_single_deselect,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null==this.options.enable_split_word_search||this.options.enable_split_word_search,this.group_search=null==this.options.group_search||this.options.group_search,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null==this.options.single_backstroke_delete||this.options.single_backstroke_delete,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null==this.options.display_selected_options||this.options.display_selected_options,this.display_disabled_options=null==this.options.display_disabled_options||this.options.display_disabled_options,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY,this.case_sensitive_search=this.options.case_sensitive_search||!1,this.hide_results_on_select=null==this.options.hide_results_on_select||this.options.hide_results_on_select},t.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||t.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||t.default_single_text,this.default_text=this.escape_html(this.default_text),this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||t.default_no_result_text},t.prototype.choice_label=function(t){return this.include_group_label_in_selected&&null!=t.group_label?"<b class='group-name'>"+this.escape_html(t.group_label)+"</b>"+t.html:t.html},t.prototype.mouse_enter=function(){return this.mouse_on_container=!0},t.prototype.mouse_leave=function(){return this.mouse_on_container=!1},t.prototype.input_focus=function(t){if(this.is_multiple){if(!this.active_field)return setTimeout((e=this,function(){return e.container_mousedown()}),50)}else if(!this.active_field)return this.activate_field();var e},t.prototype.input_blur=function(t){if(!this.mouse_on_container)return this.active_field=!1,setTimeout((e=this,function(){return e.blur_test()}),100);var e},t.prototype.label_click_handler=function(t){return this.is_multiple?this.container_mousedown(t):this.activate_field()},t.prototype.results_option_build=function(t){var e,s,i,n,r,o,h;for(e="",h=0,n=0,r=(o=this.results_data).length;n<r&&(i="",""!==(i=(s=o[n]).group?this.result_add_group(s):this.result_add_option(s))&&(h++,e+=i),(null!=t?t.first:void 0)&&(s.selected&&this.is_multiple?this.choice_build(s):s.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(s))),!(h>=this.max_shown_results));n++);return e},t.prototype.result_add_option=function(t){var e,s;return t.search_match&&this.include_option_in_results(t)?(e=[],t.disabled||t.selected&&this.is_multiple||e.push("active-result"),!t.disabled||t.selected&&this.is_multiple||e.push("disabled-result"),t.selected&&e.push("result-selected"),null!=t.group_array_index&&e.push("group-option"),""!==t.classes&&e.push(t.classes),(s=document.createElement("li")).className=e.join(" "),t.style&&(s.style.cssText=t.style),s.setAttribute("data-option-array-index",t.array_index),s.innerHTML=t.highlighted_html||t.html,t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.result_add_group=function(t){var e,s;return(t.search_match||t.group_match)&&t.active_options>0?((e=[]).push("group-result"),t.classes&&e.push(t.classes),(s=document.createElement("li")).className=e.join(" "),s.innerHTML=t.highlighted_html||this.escape_html(t.label),t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},t.prototype.reset_single_select_options=function(){var t,e,s,i,n;for(n=[],t=0,e=(s=this.results_data).length;t<e;t++)(i=s[t]).selected?n.push(i.selected=!1):n.push(void 0);return n},t.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},t.prototype.results_search=function(t){return this.results_showing?this.winnow_results():this.results_show()},t.prototype.winnow_results=function(t){var e,s,i,n,r,o,h,l,c,a,u,_,d,p,f;for(this.no_results_clear(),a=0,e=(h=this.get_search_text()).replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),c=this.get_search_regex(e),i=0,n=(l=this.results_data).length;i<n;i++)(r=l[i]).search_match=!1,u=null,_=null,r.highlighted_html="",this.include_option_in_results(r)&&(r.group&&(r.group_match=!1,r.active_options=0),null!=r.group_array_index&&this.results_data[r.group_array_index]&&(0===(u=this.results_data[r.group_array_index]).active_options&&u.search_match&&(a+=1),u.active_options+=1),f=r.group?r.label:r.text,r.group&&!this.group_search||(_=this.search_string_match(f,c),r.search_match=null!=_,r.search_match&&!r.group&&(a+=1),r.search_match?(h.length&&(d=_.index,o=f.slice(0,d),s=f.slice(d,d+h.length),p=f.slice(d+h.length),r.highlighted_html=this.escape_html(o)+"<em>"+this.escape_html(s)+"</em>"+this.escape_html(p)),null!=u&&(u.group_match=!0)):null!=r.group_array_index&&this.results_data[r.group_array_index].search_match&&(r.search_match=!0)));return this.result_clear_highlight(),a<1&&h.length?(this.update_results_content(""),this.no_results(h)):(this.update_results_content(this.results_option_build()),(null!=t?t.skip_highlight:void 0)?void 0:this.winnow_results_set_highlight())},t.prototype.get_search_regex=function(t){var e,s;return s=this.search_contains?t:"(^|\\s|\\b)"+t+"[^\\s]*",this.enable_split_word_search||this.search_contains||(s="^"+s),e=this.case_sensitive_search?"":"i",new RegExp(s,e)},t.prototype.search_string_match=function(t,e){var s;return s=e.exec(t),!this.search_contains&&(null!=s?s[1]:void 0)&&(s.index+=1),s},t.prototype.choices_count=function(){var t,e,s;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,t=0,e=(s=this.form_field.options).length;t<e;t++)s[t].selected&&(this.selected_option_count+=1);return this.selected_option_count},t.prototype.choices_click=function(t){if(t.preventDefault(),this.activate_field(),!this.results_showing&&!this.is_disabled)return this.results_show()},t.prototype.keydown_checker=function(t){var e,s;switch(s=null!=(e=t.which)?e:t.keyCode,this.search_field_scale(),8!==s&&this.pending_backstroke&&this.clear_backstroke(),s){case 8:this.backstroke_length=this.get_search_field_value().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(t),this.mouse_on_container=!1;break;case 13:case 27:this.results_showing&&t.preventDefault();break;case 32:this.disable_search&&t.preventDefault();break;case 38:t.preventDefault(),this.keyup_arrow();break;case 40:t.preventDefault(),this.keydown_arrow()}},t.prototype.keyup_checker=function(t){var e,s;switch(s=null!=(e=t.which)?e:t.keyCode,this.search_field_scale(),s){case 8:this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:t.preventDefault(),this.results_showing&&this.result_select(t);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},t.prototype.clipboard_event_checker=function(t){var e;if(!this.is_disabled)return setTimeout((e=this,function(){return e.results_search()}),50)},t.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.offsetWidth+"px"},t.prototype.include_option_in_results=function(t){return!(this.is_multiple&&!this.display_selected_options&&t.selected)&&(!(!this.display_disabled_options&&t.disabled)&&!t.empty)},t.prototype.search_results_touchstart=function(t){return this.touch_started=!0,this.search_results_mouseover(t)},t.prototype.search_results_touchmove=function(t){return this.touch_started=!1,this.search_results_mouseout(t)},t.prototype.search_results_touchend=function(t){if(this.touch_started)return this.search_results_mouseup(t)},t.prototype.outerHTML=function(t){var e;return t.outerHTML?t.outerHTML:((e=document.createElement("div")).appendChild(t),e.innerHTML)},t.prototype.get_single_html=function(){return'<a class="chosen-single chosen-default">\n <span>'+this.default_text+'</span>\n <div><b></b></div>\n</a>\n<div class="chosen-drop">\n <div class="chosen-search">\n <input class="chosen-search-input" type="text" autocomplete="off" />\n </div>\n <ul class="chosen-results"></ul>\n</div>'},t.prototype.get_multi_html=function(){return'<ul class="chosen-choices">\n <li class="search-field">\n <input class="chosen-search-input" type="text" autocomplete="off" value="'+this.default_text+'" />\n </li>\n</ul>\n<div class="chosen-drop">\n <ul class="chosen-results"></ul>\n</div>'},t.prototype.get_no_results_html=function(t){return'<li class="no-results">\n '+this.results_none_found+" <span>"+this.escape_html(t)+"</span>\n</li>"},t.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},t.default_multiple_text="Select Some Options",t.default_single_text="Select an Option",t.default_no_result_text="No results match",t}(),(t=jQuery).fn.extend({chosen:function(i){return e.browser_is_supported()?this.each(function(e){var n,r;r=(n=t(this)).data("chosen"),"destroy"!==i?r instanceof s||n.data("chosen",new s(this,i)):r instanceof s&&r.destroy()}):this}}),s=function(s){function n(){return n.__super__.constructor.apply(this,arguments)}return function(t,e){for(var s in e)r.call(e,s)&&(t[s]=e[s]);function i(){this.constructor=t}i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype}(n,e),n.prototype.setup=function(){return this.form_field_jq=t(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},n.prototype.set_up_html=function(){var e,s;return(e=["chosen-container"]).push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&e.push(this.form_field.className),this.is_rtl&&e.push("chosen-rtl"),s={class:e.join(" "),title:this.form_field.title},this.form_field.id.length&&(s.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=t("<div />",s),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},n.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},n.prototype.register_observers=function(){var t,e,s,i,n,r,o,h,l,c,a,u,_,d,p,f,g,m,v,y,b,w,x,k;return this.container.on("touchstart.chosen",(t=this,function(e){t.container_mousedown(e)})),this.container.on("touchend.chosen",(e=this,function(t){e.container_mouseup(t)})),this.container.on("mousedown.chosen",(s=this,function(t){s.container_mousedown(t)})),this.container.on("mouseup.chosen",(i=this,function(t){i.container_mouseup(t)})),this.container.on("mouseenter.chosen",(n=this,function(t){n.mouse_enter(t)})),this.container.on("mouseleave.chosen",(r=this,function(t){r.mouse_leave(t)})),this.search_results.on("mouseup.chosen",(o=this,function(t){o.search_results_mouseup(t)})),this.search_results.on("mouseover.chosen",(h=this,function(t){h.search_results_mouseover(t)})),this.search_results.on("mouseout.chosen",(l=this,function(t){l.search_results_mouseout(t)})),this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen",(c=this,function(t){c.search_results_mousewheel(t)})),this.search_results.on("touchstart.chosen",(a=this,function(t){a.search_results_touchstart(t)})),this.search_results.on("touchmove.chosen",(u=this,function(t){u.search_results_touchmove(t)})),this.search_results.on("touchend.chosen",(_=this,function(t){_.search_results_touchend(t)})),this.form_field_jq.on("chosen:updated.chosen",(d=this,function(t){d.results_update_field(t)})),this.form_field_jq.on("chosen:activate.chosen",(p=this,function(t){p.activate_field(t)})),this.form_field_jq.on("chosen:open.chosen",(f=this,function(t){f.container_mousedown(t)})),this.form_field_jq.on("chosen:close.chosen",(g=this,function(t){g.close_field(t)})),this.search_field.on("blur.chosen",(m=this,function(t){m.input_blur(t)})),this.search_field.on("keyup.chosen",(v=this,function(t){v.keyup_checker(t)})),this.search_field.on("keydown.chosen",(y=this,function(t){y.keydown_checker(t)})),this.search_field.on("focus.chosen",(b=this,function(t){b.input_focus(t)})),this.search_field.on("cut.chosen",(w=this,function(t){w.clipboard_event_checker(t)})),this.search_field.on("paste.chosen",(x=this,function(t){x.clipboard_event_checker(t)})),this.is_multiple?this.search_choices.on("click.chosen",(k=this,function(t){k.choices_click(t)})):this.container.on("click.chosen",function(t){t.preventDefault()})},n.prototype.destroy=function(){return t(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.form_field_label.length>0&&this.form_field_label.off("click.chosen"),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},n.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled||this.form_field_jq.parents("fieldset").is(":disabled"),this.container.toggleClass("chosen-disabled",this.is_disabled),this.search_field[0].disabled=this.is_disabled,this.is_multiple||this.selected_item.off("focus.chosen",this.activate_field),this.is_disabled?this.close_field():this.is_multiple?void 0:this.selected_item.on("focus.chosen",this.activate_field)},n.prototype.container_mousedown=function(e){var s;if(!this.is_disabled)return!e||"mousedown"!==(s=e.type)&&"touchstart"!==s||this.results_showing||e.preventDefault(),null!=e&&t(e.target).hasClass("search-choice-close")?void 0:(this.active_field?this.is_multiple||!e||t(e.target)[0]!==this.selected_item[0]&&!t(e.target).parents("a.chosen-single").length||(e.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),t(this.container[0].ownerDocument).on("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},n.prototype.container_mouseup=function(t){if("ABBR"===t.target.nodeName&&!this.is_disabled)return this.results_reset(t)},n.prototype.search_results_mousewheel=function(t){var e;if(t.originalEvent&&(e=t.originalEvent.deltaY||-t.originalEvent.wheelDelta||t.originalEvent.detail),null!=e)return t.preventDefault(),"DOMMouseScroll"===t.type&&(e*=40),this.search_results.scrollTop(e+this.search_results.scrollTop())},n.prototype.blur_test=function(t){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},n.prototype.close_field=function(){return t(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale(),this.search_field.blur()},n.prototype.activate_field=function(){if(!this.is_disabled)return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},n.prototype.test_active_click=function(e){var s;return(s=t(e.target).closest(".chosen-container")).length&&this.container[0]===s[0]?this.active_field=!0:this.close_field()},n.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=i.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},n.prototype.result_do_highlight=function(t){var e,s,i,n,r;if(t.length){if(this.result_clear_highlight(),this.result_highlight=t,this.result_highlight.addClass("highlighted"),n=(i=parseInt(this.search_results.css("maxHeight"),10))+(r=this.search_results.scrollTop()),(e=(s=this.result_highlight.position().top+this.search_results.scrollTop())+this.result_highlight.outerHeight())>=n)return this.search_results.scrollTop(e-i>0?e-i:0);if(s<r)return this.search_results.scrollTop(s)}},n.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},n.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.get_search_field_value()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},n.prototype.update_results_content=function(t){return this.search_results.html(t)},n.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},n.prototype.set_tab_index=function(t){var e;if(this.form_field.tabIndex)return e=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=e},n.prototype.set_label_behavior=function(){if(this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=t("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0)return this.form_field_label.on("click.chosen",this.label_click_handler)},n.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},n.prototype.search_results_mouseup=function(e){var s;if((s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first()).length)return this.result_highlight=s,this.result_select(e),this.search_field.focus()},n.prototype.search_results_mouseover=function(e){var s;if(s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first())return this.result_do_highlight(s)},n.prototype.search_results_mouseout=function(e){if(t(e.target).hasClass("active-result")||t(e.target).parents(".active-result").first())return this.result_clear_highlight()},n.prototype.choice_build=function(e){var s,i,n;return s=t("<li />",{class:"search-choice"}).html("<span>"+this.choice_label(e)+"</span>"),e.disabled?s.addClass("search-choice-disabled"):((i=t("<a />",{class:"search-choice-close","data-option-array-index":e.array_index})).on("click.chosen",(n=this,function(t){return n.choice_destroy_link_click(t)})),s.append(i)),this.search_container.before(s)},n.prototype.choice_destroy_link_click=function(e){if(e.preventDefault(),e.stopPropagation(),!this.is_disabled)return this.choice_destroy(t(e.target))},n.prototype.choice_destroy=function(t){if(this.result_deselect(t[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.get_search_field_value().length<1&&this.results_hide(),t.parents("li").first().remove(),this.search_field_scale()},n.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},n.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},n.prototype.result_select=function(t){var e,s;if(this.result_highlight)return e=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?e.removeClass("active-result"):this.reset_single_select_options(),e.addClass("result-selected"),(s=this.results_data[e[0].getAttribute("data-option-array-index")]).selected=!0,this.form_field.options[s.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(s):this.single_set_selected_text(this.choice_label(s)),this.is_multiple&&(!this.hide_results_on_select||t.metaKey||t.ctrlKey)?t.metaKey||t.ctrlKey?this.winnow_results({skip_highlight:!0}):(this.search_field.val(""),this.winnow_results()):(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change({selected:this.form_field.options[s.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,t.preventDefault(),this.search_field_scale())},n.prototype.single_set_selected_text=function(t){return null==t&&(t=this.default_text),t===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(t)},n.prototype.result_deselect=function(t){var e;return e=this.results_data[t],!this.form_field.options[e.options_index].disabled&&(e.selected=!1,this.form_field.options[e.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change({deselected:this.form_field.options[e.options_index].value}),this.search_field_scale(),!0)},n.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")},n.prototype.get_search_field_value=function(){return this.search_field.val()},n.prototype.get_search_text=function(){return t.trim(this.get_search_field_value())},n.prototype.escape_html=function(e){return t("<div/>").text(e).html()},n.prototype.winnow_results_set_highlight=function(){var t,e;if(null!=(t=(e=this.is_multiple?[]:this.search_results.find(".result-selected.active-result")).length?e.first():this.search_results.find(".active-result").first()))return this.result_do_highlight(t)},n.prototype.no_results=function(t){var e;return e=this.get_no_results_html(t),this.search_results.append(e),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},n.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},n.prototype.keydown_arrow=function(){var t;return this.results_showing&&this.result_highlight?(t=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(t):void 0:this.results_show()},n.prototype.keyup_arrow=function(){var t;return this.results_showing||this.is_multiple?this.result_highlight?(t=this.result_highlight.prevAll("li.active-result")).length?this.result_do_highlight(t.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight()):void 0:this.results_show()},n.prototype.keydown_backstroke=function(){var t;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(t=this.search_container.siblings("li.search-choice").last()).length&&!t.hasClass("search-choice-disabled")?(this.pending_backstroke=t,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0},n.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},n.prototype.search_field_scale=function(){var e,s,i,n,r,o,h;if(this.is_multiple){for(r={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},s=0,i=(o=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"]).length;s<i;s++)r[n=o[s]]=this.search_field.css(n);return(e=t("<div />").css(r)).text(this.get_search_field_value()),t("body").append(e),h=e.width()+25,e.remove(),this.container.is(":visible")&&(h=Math.min(this.container.outerWidth()-10,h)),this.search_field.width(h)}},n.prototype.trigger_form_field_change=function(t){return this.form_field_jq.trigger("input",t),this.form_field_jq.trigger("change",t)},n}()}.call(this),function(t){"use strict";function e(t,e,s){this.init(t,e,s)}function s(){this.rules=[]}t.extend(e.prototype,{init:function(t,e,s){this.controller=t,this.condition=e,this.value=s,this.rules=[],this.controls=[]},evalCondition:function(e,s,i,n,r){if("=="==i)return this.checkBoolean(n)==this.checkBoolean(r);if("!="==i)return this.checkBoolean(n)!=this.checkBoolean(r);if(">="==i)return Number(r)>=Number(n);if("<="==i)return Number(r)<=Number(n);if(">"==i)return Number(r)>Number(n);if("<"==i)return Number(r)<Number(n);if("()"==i)return window[n](e,s,r);if("any"==i){if(t.isArray(r)){for(var o=r.length-1;o>=0;o--)if(-1!==t.inArray(r[o],n.split(",")))return!0}else if(-1!==t.inArray(r,n.split(",")))return!0}else if("not-any"==i)if(t.isArray(r)){for(o=r.length-1;o>=0;o--)if(-1==t.inArray(r[o],n.split(",")))return!0}else if(-1==t.inArray(r,n.split(",")))return!0;return!1},checkBoolean:function(t){switch(t){case!0:case"true":case 1:case"1":t=!0;break;case null:case!1:case"false":case 0:case"0":t=!1}return t},checkCondition:function(t){if(!this.condition)return!0;var e=t.find(this.controller),s=this.getControlValue(t,e);return void 0!==s&&(s=this.normalizeValue(e,this.value,s),this.evalCondition(t,e,this.condition,this.value,s))},normalizeValue:function(t,e,s){return"number"==typeof e?parseFloat(s):s},getControlValue:function(t,e){return e.length>1&&("radio"==e.attr("type")||"checkbox"==e.attr("type"))?e.filter(":checked").map(function(){return this.value}).get():"checkbox"==e.attr("type")||"radio"==e.attr("type")?e.is(":checked"):e.val()},createRule:function(t,s,i){var n=new e(t,s,i);return this.rules.push(n),n},include:function(t){this.controls.push(t)},applyRule:function(e,s){var i;i=void 0===s?this.checkCondition(e):s;var n=t.map(this.controls,function(t,s){return e.find(t)});i?(t(n).each(function(){t(this).removeClass("hidden")}),t(this.rules).each(function(){this.applyRule(e)})):(t(n).each(function(){t(this).addClass("hidden")}),t(this.rules).each(function(){this.applyRule(e,!1)}))}}),t.extend(s.prototype,{createRule:function(t,s,i){var n=new e(t,s,i);return this.rules.push(n),n},applyRules:function(e){t(this.rules).each(function(){this.applyRule(e)})}}),t.csf_deps={createRuleset:function(){return new s},enable:function(t,e,s){return t.on("change keyup",function(i){var n=i.target.getAttribute("data-depend-id")||i.target.getAttribute("data-sub-depend-id");-1!==s.indexOf(n)&&e.applyRules(t)}),e.applyRules(t),!0}}}(jQuery),function(t,e){if("function"==typeof define&&define.amd)define(["exports","jquery"],function(t,s){return e(t,s)});else if("undefined"!=typeof exports){var s=require("jquery");e(exports,s)}else e(t,t.jQuery||t.Zepto||t.ender||t.$)}(this,function(t,e){var s={validate:/^(?!(_nonce|_pseudo))[a-zA-Z0-9_-]*(?:\[(?:\d*|(?!(_nonce|_pseudo))[a-zA-Z0-9_-]+)\])*$/i,key:/[a-zA-Z0-9_-]+|(?=\[\])/g,named:/^[a-zA-Z0-9_-]+$/,push:/^$/,fixed:/^\d+$/};function i(t,e){var i={},n={};function r(t,e,s){return t[e]=s,t}function o(){return i}this.addPair=function(e){if(!s.validate.test(e.name))return this;var o=function(t,e){for(var i,o=t.match(s.key);void 0!==(i=o.pop());)s.push.test(i)?e=r([],(h=t.replace(/\[\]$/,""),void 0===n[h]&&(n[h]=0),n[h]++),e):s.fixed.test(i)?e=r([],i,e):s.named.test(i)&&(e=r({},i,e));var h;return e}(e.name,e.value);return i=t.extend(!0,i,o),this},this.addPairs=function(e){if(!t.isArray(e))throw new Error("formSerializer.addPairs expects an Array");for(var s=0,i=e.length;s<i;s++)this.addPair(e[s]);return this},this.serialize=o,this.serializeJSON=function(){return JSON.stringify(o())}}return i.patterns=s,i.serializeObject=function(){return new i(e,this).addPairs(this.serializeArray()).serialize()},i.serializeJSON=function(){return new i(e,this).addPairs(this.serializeArray()).serializeJSON()},void 0!==e.fn&&(e.fn.serializeObjectCSF=i.serializeObject,e.fn.serializeJSONCSF=i.serializeJSON),t.FormSerializer=i,i});
admin/views/framework/assets/js/csf.js ADDED
@@ -0,0 +1,3329 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ *
3
+ * -----------------------------------------------------------
4
+ *
5
+ * Codestar Framework
6
+ * A Simple and Lightweight WordPress Option Framework
7
+ *
8
+ * -----------------------------------------------------------
9
+ *
10
+ */
11
+ ;(function( $, window, document, undefined ) {
12
+ 'use strict';
13
+
14
+ //
15
+ // Constants
16
+ //
17
+ var CSF = CSF || {};
18
+
19
+ CSF.funcs = {};
20
+
21
+ CSF.vars = {
22
+ onloaded: false,
23
+ $body: $('body'),
24
+ $window: $(window),
25
+ $document: $(document),
26
+ $form_warning: null,
27
+ form_modified: false,
28
+ code_themes: [],
29
+ is_rtl: $('body').hasClass('rtl'),
30
+ };
31
+
32
+ //
33
+ // Helper Functions
34
+ //
35
+ CSF.helper = {
36
+
37
+ //
38
+ // Generate UID
39
+ //
40
+ uid: function( prefix ) {
41
+ return ( prefix || '' ) + Math.random().toString(36).substr(2, 9);
42
+ },
43
+
44
+ // Quote regular expression characters
45
+ //
46
+ preg_quote: function( str ) {
47
+ return (str+'').replace(/(\[|\-|\])/g, "\\$1");
48
+ },
49
+
50
+ //
51
+ // Reneme input names
52
+ //
53
+ name_nested_replace: function( $selector, field_id ) {
54
+
55
+ var checks = [];
56
+ var regex = new RegExp('('+ CSF.helper.preg_quote(field_id) +')\\[(\\d+)\\]', 'g');
57
+
58
+ $selector.find(':radio').each(function() {
59
+ if( this.checked || this.orginal_checked ) {
60
+ this.orginal_checked = true;
61
+ }
62
+ });
63
+
64
+ $selector.each( function( index ) {
65
+ $(this).find(':input').each(function() {
66
+ this.name = this.name.replace(regex, field_id +'['+ index +']');
67
+ if( this.orginal_checked ) {
68
+ this.checked = true;
69
+ }
70
+ });
71
+ });
72
+
73
+ },
74
+
75
+ //
76
+ // Debounce
77
+ //
78
+ debounce: function( callback, threshold, immediate ) {
79
+ var timeout;
80
+ return function() {
81
+ var context = this, args = arguments;
82
+ var later = function() {
83
+ timeout = null;
84
+ if( !immediate ) {
85
+ callback.apply(context, args);
86
+ }
87
+ };
88
+ var callNow = ( immediate && !timeout );
89
+ clearTimeout( timeout );
90
+ timeout = setTimeout( later, threshold );
91
+ if( callNow ) {
92
+ callback.apply(context, args);
93
+ }
94
+ };
95
+ },
96
+
97
+ //
98
+ // Get a cookie
99
+ //
100
+ get_cookie: function( name ) {
101
+
102
+ var e, b, cookie = document.cookie, p = name + '=';
103
+
104
+ if( ! cookie ) {
105
+ return;
106
+ }
107
+
108
+ b = cookie.indexOf( '; ' + p );
109
+
110
+ if( b === -1 ) {
111
+ b = cookie.indexOf(p);
112
+
113
+ if( b !== 0 ) {
114
+ return null;
115
+ }
116
+ } else {
117
+ b += 2;
118
+ }
119
+
120
+ e = cookie.indexOf( ';', b );
121
+
122
+ if( e === -1 ) {
123
+ e = cookie.length;
124
+ }
125
+
126
+ return decodeURIComponent( cookie.substring( b + p.length, e ) );
127
+
128
+ },
129
+
130
+ //
131
+ // Set a cookie
132
+ //
133
+ set_cookie: function( name, value, expires, path, domain, secure ) {
134
+
135
+ var d = new Date();
136
+
137
+ if( typeof( expires ) === 'object' && expires.toGMTString ) {
138
+ expires = expires.toGMTString();
139
+ } else if( parseInt( expires, 10 ) ) {
140
+ d.setTime( d.getTime() + ( parseInt( expires, 10 ) * 1000 ) );
141
+ expires = d.toGMTString();
142
+ } else {
143
+ expires = '';
144
+ }
145
+
146
+ document.cookie = name + '=' + encodeURIComponent( value ) +
147
+ ( expires ? '; expires=' + expires : '' ) +
148
+ ( path ? '; path=' + path : '' ) +
149
+ ( domain ? '; domain=' + domain : '' ) +
150
+ ( secure ? '; secure' : '' );
151
+
152
+ },
153
+
154
+ //
155
+ // Remove a cookie
156
+ //
157
+ remove_cookie: function( name, path, domain, secure ) {
158
+ CSF.helper.set_cookie( name, '', -1000, path, domain, secure );
159
+ },
160
+
161
+ };
162
+
163
+ //
164
+ // Custom clone for textarea and select clone() bug
165
+ //
166
+ $.fn.csf_clone = function() {
167
+
168
+ var base = $.fn.clone.apply(this, arguments),
169
+ clone = this.find('select').add(this.filter('select')),
170
+ cloned = base.find('select').add(base.filter('select'));
171
+
172
+ for( var i = 0; i < clone.length; ++i ) {
173
+ for( var j = 0; j < clone[i].options.length; ++j ) {
174
+
175
+ if( clone[i].options[j].selected === true ) {
176
+ cloned[i].options[j].selected = true;
177
+ }
178
+
179
+ }
180
+ }
181
+
182
+ this.find(':radio').each( function() {
183
+ this.orginal_checked = this.checked;
184
+ });
185
+
186
+ return base;
187
+
188
+ };
189
+
190
+ //
191
+ // Expand All Options
192
+ //
193
+ $.fn.csf_expand_all = function() {
194
+ return this.each( function() {
195
+ $(this).on('click', function( e ) {
196
+
197
+ e.preventDefault();
198
+ $('.csf-wrapper').toggleClass('csf-show-all');
199
+ $('.csf-section').csf_reload_script();
200
+ $(this).find('.fa').toggleClass('fa-indent').toggleClass('fa-outdent');
201
+
202
+ });
203
+ });
204
+ };
205
+
206
+ //
207
+ // Options Navigation
208
+ //
209
+ $.fn.csf_nav_options = function() {
210
+ return this.each( function() {
211
+
212
+ var $nav = $(this),
213
+ $links = $nav.find('a'),
214
+ $hidden = $nav.closest('.csf').find('.csf-section-id'),
215
+ $last_section;
216
+
217
+ $(window).on('hashchange', function() {
218
+
219
+ var hash = window.location.hash.match(new RegExp('tab=([^&]*)'));
220
+ var slug = hash ? hash[1] : $links.first().attr('href').replace('#tab=', '');
221
+ var $link = $('#csf-tab-link-'+ slug);
222
+
223
+ if( $link.length > 0 ) {
224
+
225
+ $link.closest('.csf-tab-depth-0').addClass('csf-tab-active').siblings().removeClass('csf-tab-active');
226
+ $links.removeClass('csf-section-active');
227
+ $link.addClass('csf-section-active');
228
+
229
+ if( $last_section !== undefined ) {
230
+ $last_section.hide();
231
+ }
232
+
233
+ var $section = $('#csf-section-'+slug);
234
+ $section.css({display: 'block'});
235
+ $section.csf_reload_script();
236
+
237
+ $hidden.val(slug);
238
+
239
+ $last_section = $section;
240
+
241
+ }
242
+
243
+ }).trigger('hashchange');
244
+
245
+ });
246
+ };
247
+
248
+ //
249
+ // Metabox Tabs
250
+ //
251
+ $.fn.csf_nav_metabox = function() {
252
+ return this.each( function() {
253
+
254
+ var $nav = $(this),
255
+ $links = $nav.find('a'),
256
+ unique_id = $nav.data('unique'),
257
+ post_id = $('#post_ID').val() || 'global',
258
+ $last_section,
259
+ $last_link;
260
+
261
+ $links.on('click', function( e ) {
262
+
263
+ e.preventDefault();
264
+
265
+ var $link = $(this),
266
+ section_id = $link.data('section');
267
+
268
+ if( $last_link !== undefined ) {
269
+ $last_link.removeClass('csf-section-active');
270
+ }
271
+
272
+ if( $last_section !== undefined ) {
273
+ $last_section.hide();
274
+ }
275
+
276
+ $link.addClass('csf-section-active');
277
+
278
+ var $section = $('#csf-section-'+section_id);
279
+ $section.css({display: 'block'});
280
+ $section.csf_reload_script();
281
+
282
+ CSF.helper.set_cookie('csf-last-metabox-tab-'+ post_id +'-'+ unique_id, section_id);
283
+
284
+ $last_section = $section;
285
+ $last_link = $link;
286
+
287
+ });
288
+
289
+ var get_cookie = CSF.helper.get_cookie('csf-last-metabox-tab-'+ post_id +'-'+ unique_id);
290
+
291
+ if( get_cookie ) {
292
+ $nav.find('a[data-section="'+ get_cookie +'"]').trigger('click');
293
+ } else {
294
+ $links.first('a').trigger('click');
295
+ }
296
+
297
+ });
298
+ };
299
+
300
+ //
301
+ // Metabox Page Templates Listener
302
+ //
303
+ $.fn.csf_page_templates = function() {
304
+ if( this.length ) {
305
+
306
+ $(document).on('change', '.editor-page-attributes__template select, #page_template', function() {
307
+
308
+ var maybe_value = $(this).val() || 'default';
309
+
310
+ $('.csf-page-templates').removeClass('csf-show').addClass('csf-hide');
311
+ $('.csf-page-'+maybe_value.toLowerCase().replace(/[^a-zA-Z0-9]+/g,'-')).removeClass('csf-hide').addClass('csf-show');
312
+
313
+ });
314
+
315
+ }
316
+ };
317
+
318
+ //
319
+ // Metabox Post Formats Listener
320
+ //
321
+ $.fn.csf_post_formats = function() {
322
+ if( this.length ) {
323
+
324
+ $(document).on('change', '.editor-post-format select, #formatdiv input[name="post_format"]', function() {
325
+
326
+ var maybe_value = $(this).val() || 'default';
327
+
328
+ // Fallback for classic editor version
329
+ maybe_value = ( maybe_value === '0' ) ? 'default' : maybe_value;
330
+
331
+ $('.csf-post-formats').removeClass('csf-show').addClass('csf-hide');
332
+ $('.csf-post-format-'+maybe_value).removeClass('csf-hide').addClass('csf-show');
333
+
334
+ });
335
+
336
+ }
337
+ };
338
+
339
+ //
340
+ // Search
341
+ //
342
+ $.fn.csf_search = function() {
343
+ return this.each( function() {
344
+
345
+ var $this = $(this),
346
+ $input = $this.find('input');
347
+
348
+ $input.on('change keyup', function() {
349
+
350
+ var value = $(this).val(),
351
+ $wrapper = $('.csf-wrapper'),
352
+ $section = $wrapper.find('.csf-section'),
353
+ $fields = $section.find('> .csf-field:not(.hidden)'),
354
+ $titles = $fields.find('> .csf-title, .csf-search-tags');
355
+
356
+ if( value.length > 3 ) {
357
+
358
+ $fields.addClass('csf-hidden');
359
+ $wrapper.addClass('csf-search-all');
360
+
361
+ $titles.each( function() {
362
+
363
+ var $title = $(this);
364
+
365
+ if( $title.text().match( new RegExp('.*?' + value + '.*?', 'i') ) ) {
366
+
367
+ var $field = $title.closest('.csf-field');
368
+
369
+ $field.removeClass('csf-hidden');
370
+ $field.parent().csf_reload_script();
371
+
372
+ }
373
+
374
+ });
375
+
376
+ } else {
377
+
378
+ $fields.removeClass('csf-hidden');
379
+ $wrapper.removeClass('csf-search-all');
380
+
381
+ }
382
+
383
+ });
384
+
385
+ });
386
+ };
387
+
388
+ //
389
+ // Sticky Header
390
+ //
391
+ $.fn.csf_sticky = function() {
392
+ return this.each( function() {
393
+
394
+ var $this = $(this),
395
+ $window = $(window),
396
+ $inner = $this.find('.csf-header-inner'),
397
+ padding = parseInt( $inner.css('padding-left') ) + parseInt( $inner.css('padding-right') ),
398
+ offset = 32,
399
+ scrollTop = 0,
400
+ lastTop = 0,
401
+ ticking = false,
402
+ stickyUpdate = function() {
403
+
404
+ var offsetTop = $this.offset().top,
405
+ stickyTop = Math.max(offset, offsetTop - scrollTop ),
406
+ winWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
407
+
408
+ if( stickyTop <= offset && winWidth > 782 ) {
409
+ $inner.css({width: $this.outerWidth()-padding});
410
+ $this.css({height: $this.outerHeight()}).addClass( 'csf-sticky' );
411
+ } else {
412
+ $inner.removeAttr('style');
413
+ $this.removeAttr('style').removeClass( 'csf-sticky' );
414
+ }
415
+
416
+ },
417
+ requestTick = function() {
418
+
419
+ if( !ticking ) {
420
+ requestAnimationFrame( function() {
421
+ stickyUpdate();
422
+ ticking = false;
423
+ });
424
+ }
425
+
426
+ ticking = true;
427
+
428
+ },
429
+ onSticky = function() {
430
+
431
+ scrollTop = $window.scrollTop();
432
+ requestTick();
433
+
434
+ };
435
+
436
+ $window.on( 'scroll resize', onSticky);
437
+
438
+ onSticky();
439
+
440
+ });
441
+ };
442
+
443
+ //
444
+ // Dependency System
445
+ //
446
+ $.fn.csf_dependency = function() {
447
+ return this.each( function() {
448
+
449
+ var $this = $(this),
450
+ ruleset = $.csf_deps.createRuleset(),
451
+ depends = [],
452
+ is_global = false;
453
+
454
+ $this.children('[data-controller]').each( function() {
455
+
456
+ var $field = $(this),
457
+ controllers = $field.data('controller').split('|'),
458
+ conditions = $field.data('condition').split('|'),
459
+ values = $field.data('value').toString().split('|'),
460
+ rules = ruleset;
461
+
462
+ if( $field.data('depend-global') ) {
463
+ is_global = true;
464
+ }
465
+
466
+ $.each(controllers, function( index, depend_id ) {
467
+
468
+ var value = values[index] || '',
469
+ condition = conditions[index] || conditions[0];
470
+
471
+ rules = rules.createRule('[data-depend-id="'+ depend_id +'"]', condition, value);
472
+
473
+ rules.include($field);
474
+
475
+ depends.push(depend_id);
476
+
477
+ });
478
+
479
+ });
480
+
481
+ if( depends.length ) {
482
+
483
+ if( is_global ) {
484
+ $.csf_deps.enable(CSF.vars.$body, ruleset, depends);
485
+ } else {
486
+ $.csf_deps.enable($this, ruleset, depends);
487
+ }
488
+
489
+ }
490
+
491
+ });
492
+ };
493
+
494
+ //
495
+ // Field: accordion
496
+ //
497
+ $.fn.csf_field_accordion = function() {
498
+ return this.each( function() {
499
+
500
+ var $titles = $(this).find('.csf-accordion-title');
501
+
502
+ $titles.on('click', function() {
503
+
504
+ var $title = $(this),
505
+ $icon = $title.find('.csf-accordion-icon'),
506
+ $content = $title.next();
507
+
508
+ if( $icon.hasClass('fa-angle-right') ) {
509
+ $icon.removeClass('fa-angle-right').addClass('fa-angle-down');
510
+ } else {
511
+ $icon.removeClass('fa-angle-down').addClass('fa-angle-right');
512
+ }
513
+
514
+ if( !$content.data( 'opened' ) ) {
515
+
516
+ $content.csf_reload_script();
517
+ $content.data( 'opened', true );
518
+
519
+ }
520
+
521
+ $content.toggleClass('csf-accordion-open');
522
+
523
+ });
524
+
525
+ });
526
+ };
527
+
528
+ //
529
+ // Field: backup
530
+ //
531
+ $.fn.csf_field_backup = function() {
532
+ return this.each( function() {
533
+
534
+ if( window.wp.customize === undefined ) { return; }
535
+
536
+ var base = this,
537
+ $this = $(this),
538
+ $body = $('body'),
539
+ $import = $this.find('.csf-import'),
540
+ $reset = $this.find('.csf-reset');
541
+
542
+ base.notification = function( message_text ) {
543
+
544
+ if( wp.customize.notifications && wp.customize.OverlayNotification ) {
545
+
546
+ // clear if there is any saved data.
547
+ if( !wp.customize.state('saved').get() ) {
548
+ wp.customize.state('changesetStatus').set('trash');
549
+ wp.customize.each( function( setting ) { setting._dirty = false; });
550
+ wp.customize.state('saved').set(true);
551
+ }
552
+
553
+ // then show a notification overlay
554
+ wp.customize.notifications.add( new wp.customize.OverlayNotification('csf_field_backup_notification', {
555
+ type: 'info',
556
+ message: message_text,
557
+ loading: true
558
+ }));
559
+
560
+ }
561
+
562
+ };
563
+
564
+ $reset.on('click', function( e ) {
565
+
566
+ e.preventDefault();
567
+
568
+ if( CSF.vars.is_confirm ) {
569
+
570
+ base.notification( window.csf_vars.i18n.reset_notification );
571
+
572
+ window.wp.ajax.post('csf-reset', {
573
+ unique: $reset.data('unique'),
574
+ nonce: $reset.data('nonce')
575
+ })
576
+ .done( function( response ) {
577
+ window.location.reload(true);
578
+ })
579
+ .fail( function( response ) {
580
+ alert( response.error );
581
+ wp.customize.notifications.remove('csf_field_backup_notification');
582
+ });
583
+
584
+ }
585
+
586
+ });
587
+
588
+ $import.on('click', function( e ) {
589
+
590
+ e.preventDefault();
591
+
592
+ if( CSF.vars.is_confirm ) {
593
+
594
+ base.notification( window.csf_vars.i18n.import_notification );
595
+
596
+ window.wp.ajax.post( 'csf-import', {
597
+ unique: $import.data('unique'),
598
+ nonce: $import.data('nonce'),
599
+ import_data: $this.find('.csf-import-data').val()
600
+ }).done( function( response ) {
601
+ window.location.reload(true);
602
+ }).fail( function( response ) {
603
+ alert( response.error );
604
+ wp.customize.notifications.remove('csf_field_backup_notification');
605
+ });
606
+
607
+ }
608
+
609
+ });
610
+
611
+ });
612
+ };
613
+
614
+ //
615
+ // Field: background
616
+ //
617
+ $.fn.csf_field_background = function() {
618
+ return this.each( function() {
619
+ $(this).find('.csf--background-image').csf_reload_script();
620
+ });
621
+ };
622
+
623
+ //
624
+ // Field: code_editor
625
+ //
626
+ $.fn.csf_field_code_editor = function() {
627
+ return this.each( function() {
628
+
629
+ if( typeof CodeMirror !== 'function' ) { return; }
630
+
631
+ var $this = $(this),
632
+ $textarea = $this.find('textarea'),
633
+ $inited = $this.find('.CodeMirror'),
634
+ data_editor = $textarea.data('editor');
635
+
636
+ if( $inited.length ) {
637
+ $inited.remove();
638
+ }
639
+
640
+ var interval = setInterval(function () {
641
+ if( $this.is(':visible') ) {
642
+
643
+ var code_editor = CodeMirror.fromTextArea( $textarea[0], data_editor );
644
+
645
+ // load code-mirror theme css.
646
+ if( data_editor.theme !== 'default' && CSF.vars.code_themes.indexOf(data_editor.theme) === -1 ) {
647
+
648
+ var $cssLink = $('<link>');
649
+
650
+ $('#csf-codemirror-css').after( $cssLink );
651
+
652
+ $cssLink.attr({
653
+ rel: 'stylesheet',
654
+ id: 'csf-codemirror-'+ data_editor.theme +'-css',
655
+ href: data_editor.cdnURL +'/theme/'+ data_editor.theme +'.min.css',
656
+ type: 'text/css',
657
+ media: 'all'
658
+ });
659
+
660
+ CSF.vars.code_themes.push(data_editor.theme);
661
+
662
+ }
663
+
664
+ CodeMirror.modeURL = data_editor.cdnURL +'/mode/%N/%N.min.js';
665
+ CodeMirror.autoLoadMode(code_editor, data_editor.mode);
666
+
667
+ code_editor.on( 'change', function( editor, event ) {
668
+ $textarea.val( code_editor.getValue() ).trigger('change');
669
+ });
670
+
671
+ clearInterval(interval);
672
+
673
+ }
674
+ });
675
+
676
+ });
677
+ };
678
+
679
+ //
680
+ // Field: date
681
+ //
682
+ $.fn.csf_field_date = function() {
683
+ return this.each( function() {
684
+
685
+ var $this = $(this),
686
+ $inputs = $this.find('input'),
687
+ settings = $this.find('.csf-date-settings').data('settings'),
688
+ wrapper = '<div class="csf-datepicker-wrapper"></div>',
689
+ $datepicker;
690
+
691
+ var defaults = {
692
+ showAnim: '',
693
+ beforeShow: function(input, inst) {
694
+ $(inst.dpDiv).addClass('csf-datepicker-wrapper');
695
+ },
696
+ onClose: function( input, inst ) {
697
+ $(inst.dpDiv).removeClass('csf-datepicker-wrapper');
698
+ },
699
+ };
700
+
701
+ settings = $.extend({}, settings, defaults);
702
+
703
+ if( $inputs.length === 2 ) {
704
+
705
+ settings = $.extend({}, settings, {
706
+ onSelect: function( selectedDate ) {
707
+
708
+ var $this = $(this),
709
+ $from = $inputs.first(),
710
+ option = ( $inputs.first().attr('id') === $(this).attr('id') ) ? 'minDate' : 'maxDate',
711
+ date = $.datepicker.parseDate( settings.dateFormat, selectedDate );
712
+
713
+ $inputs.not(this).datepicker('option', option, date );
714
+
715
+ }
716
+ });
717
+
718
+ }
719
+
720
+ $inputs.each( function(){
721
+
722
+ var $input = $(this);
723
+
724
+ if( $input.hasClass('hasDatepicker') ) {
725
+ $input.removeAttr('id').removeClass('hasDatepicker');
726
+ }
727
+
728
+ $input.datepicker(settings);
729
+
730
+ });
731
+
732
+ });
733
+ };
734
+
735
+ //
736
+ // Field: fieldset
737
+ //
738
+ $.fn.csf_field_fieldset = function() {
739
+ return this.each( function() {
740
+ $(this).find('.csf-fieldset-content').csf_reload_script();
741
+ });
742
+ };
743
+
744
+ //
745
+ // Field: gallery
746
+ //
747
+ $.fn.csf_field_gallery = function() {
748
+ return this.each( function() {
749
+
750
+ var $this = $(this),
751
+ $edit = $this.find('.csf-edit-gallery'),
752
+ $clear = $this.find('.csf-clear-gallery'),
753
+ $list = $this.find('ul'),
754
+ $input = $this.find('input'),
755
+ $img = $this.find('img'),
756
+ wp_media_frame;
757
+
758
+ $this.on('click', '.csf-button, .csf-edit-gallery', function( e ) {
759
+
760
+ var $el = $(this),
761
+ ids = $input.val(),
762
+ what = ( $el.hasClass('csf-edit-gallery') ) ? 'edit' : 'add',
763
+ state = ( what === 'add' && !ids.length ) ? 'gallery' : 'gallery-edit';
764
+
765
+ e.preventDefault();
766
+
767
+ if( typeof window.wp === 'undefined' || ! window.wp.media || ! window.wp.media.gallery ) { return; }
768
+
769
+ // Open media with state
770
+ if( state === 'gallery' ) {
771
+
772
+ wp_media_frame = window.wp.media({
773
+ library: {
774
+ type: 'image'
775
+ },
776
+ frame: 'post',
777
+ state: 'gallery',
778
+ multiple: true
779
+ });
780
+
781
+ wp_media_frame.open();
782
+
783
+ } else {
784
+
785
+ wp_media_frame = window.wp.media.gallery.edit( '[gallery ids="'+ ids +'"]' );
786
+
787
+ if( what === 'add' ) {
788
+ wp_media_frame.setState('gallery-library');
789
+ }
790
+
791
+ }
792
+
793
+ // Media Update
794
+ wp_media_frame.on( 'update', function( selection ) {
795
+
796
+ $list.empty();
797
+
798
+ var selectedIds = selection.models.map( function( attachment ) {
799
+
800
+ var item = attachment.toJSON();
801
+ var thumb = ( item.sizes && item.sizes.thumbnail && item.sizes.thumbnail.url ) ? item.sizes.thumbnail.url : item.url;
802
+
803
+ $list.append('<li><img src="'+ thumb +'"></li>');
804
+
805
+ return item.id;
806
+
807
+ });
808
+
809
+ $input.val( selectedIds.join( ',' ) ).trigger('change');
810
+ $clear.removeClass('hidden');
811
+ $edit.removeClass('hidden');
812
+
813
+ });
814
+
815
+ });
816
+
817
+ $clear.on('click', function( e ) {
818
+ e.preventDefault();
819
+ $list.empty();
820
+ $input.val('').trigger('change');
821
+ $clear.addClass('hidden');
822
+ $edit.addClass('hidden');
823
+ });
824
+
825
+ });
826
+
827
+ };
828
+
829
+ //
830
+ // Field: group
831
+ //
832
+ $.fn.csf_field_group = function() {
833
+ return this.each( function() {
834
+
835
+ var $this = $(this),
836
+ $fieldset = $this.children('.csf-fieldset'),
837
+ $group = $fieldset.length ? $fieldset : $this,
838
+ $wrapper = $group.children('.csf-cloneable-wrapper'),
839
+ $hidden = $group.children('.csf-cloneable-hidden'),
840
+ $max = $group.children('.csf-cloneable-max'),
841
+ $min = $group.children('.csf-cloneable-min'),
842
+ field_id = $wrapper.data('field-id'),
843
+ unique_id = $wrapper.data('unique-id'),
844
+ is_number = Boolean( Number( $wrapper.data('title-number') ) ),
845
+ max = parseInt( $wrapper.data('max') ),
846
+ min = parseInt( $wrapper.data('min') );
847
+
848
+ // clear accordion arrows if multi-instance
849
+ if( $wrapper.hasClass('ui-accordion') ) {
850
+ $wrapper.find('.ui-accordion-header-icon').remove();
851
+ }
852
+
853
+ var update_title_numbers = function( $selector ) {
854
+ $selector.find('.csf-cloneable-title-number').each( function( index ) {
855
+ $(this).html( ( $(this).closest('.csf-cloneable-item').index()+1 ) + '.' );
856
+ });
857
+ };
858
+
859
+ $wrapper.accordion({
860
+ header: '> .csf-cloneable-item > .csf-cloneable-title',
861
+ collapsible : true,
862
+ active: false,
863
+ animate: false,
864
+ heightStyle: 'content',
865
+ icons: {
866
+ 'header': 'csf-cloneable-header-icon fa fa-angle-right',
867
+ 'activeHeader': 'csf-cloneable-header-icon fa fa-angle-down'
868
+ },
869
+ activate: function( event, ui ) {
870
+
871
+ var $panel = ui.newPanel;
872
+ var $header = ui.newHeader;
873
+
874
+ if( $panel.length && !$panel.data( 'opened' ) ) {
875
+
876
+ var $fields = $panel.children();
877
+ var $first = $fields.first().find(':input').first();
878
+ var $title = $header.find('.csf-cloneable-value');
879
+
880
+ $first.on('keyup', function( event ) {
881
+ $title.text($first.val());
882
+ });
883
+
884
+ $panel.csf_reload_script();
885
+ $panel.data( 'opened', true );
886
+ $panel.data( 'retry', false );
887
+
888
+ } else if( $panel.data( 'retry' ) ) {
889
+
890
+ $panel.csf_reload_script_retry();
891
+ $panel.data( 'retry', false );
892
+
893
+ }
894
+
895
+ }
896
+ });
897
+
898
+ $wrapper.sortable({
899
+ axis: 'y',
900
+ handle: '.csf-cloneable-title,.csf-cloneable-sort',
901
+ helper: 'original',
902
+ cursor: 'move',
903
+ placeholder: 'widget-placeholder',
904
+ start: function( event, ui ) {
905
+
906
+ $wrapper.accordion({ active:false });
907
+ $wrapper.sortable('refreshPositions');
908
+ ui.item.children('.csf-cloneable-content').data('retry', true);
909
+
910
+ },
911
+ update: function( event, ui ) {
912
+
913
+ CSF.helper.name_nested_replace( $wrapper.children('.csf-cloneable-item'), field_id );
914
+ $wrapper.csf_customizer_refresh();
915
+
916
+ if( is_number ) {
917
+ update_title_numbers($wrapper);
918
+ }
919
+
920
+ },
921
+ });
922
+
923
+ $group.children('.csf-cloneable-add').on('click', function( e ) {
924
+
925
+ e.preventDefault();
926
+
927
+ var count = $wrapper.children('.csf-cloneable-item').length;
928
+
929
+ $min.hide();
930
+
931
+ if( max && (count+1) > max ) {
932
+ $max.show();
933
+ return;
934
+ }
935
+
936
+ var new_field_id = unique_id + field_id + '['+ count +']';
937
+
938
+ var $cloned_item = $hidden.csf_clone(true);
939
+
940
+ $cloned_item.removeClass('csf-cloneable-hidden');
941
+
942
+ $cloned_item.find(':input[name!="_pseudo"]').each( function() {
943
+ this.name = new_field_id + this.name.replace( ( this.name.startsWith('_nonce') ? '_nonce' : unique_id ), '');
944
+ });
945
+
946
+ $cloned_item.find('.csf-data-wrapper').each( function(){
947
+ $(this).attr('data-unique-id', new_field_id );
948
+ });
949
+
950
+ $wrapper.append($cloned_item);
951
+ $wrapper.accordion('refresh');
952
+ $wrapper.accordion({active: count});
953
+ $wrapper.csf_customizer_refresh();
954
+ $wrapper.csf_customizer_listen({closest: true});
955
+
956
+ if( is_number ) {
957
+ update_title_numbers($wrapper);
958
+ }
959
+
960
+ });
961
+
962
+ var event_clone = function( e ) {
963
+
964
+ e.preventDefault();
965
+
966
+ var count = $wrapper.children('.csf-cloneable-item').length;
967
+
968
+ $min.hide();
969
+
970
+ if( max && (count+1) > max ) {
971
+ $max.show();
972
+ return;
973
+ }
974
+
975
+ var $this = $(this),
976
+ $parent = $this.parent().parent(),
977
+ $cloned_helper = $parent.children('.csf-cloneable-helper').csf_clone(true),
978
+ $cloned_title = $parent.children('.csf-cloneable-title').csf_clone(),
979
+ $cloned_content = $parent.children('.csf-cloneable-content').csf_clone(),
980
+ cloned_regex = new RegExp('('+ CSF.helper.preg_quote(field_id) +')\\[(\\d+)\\]', 'g');
981
+
982
+ $cloned_content.find('.csf-data-wrapper').each( function(){
983
+ var $this = $(this);
984
+ $this.attr('data-unique-id', $this.attr('data-unique-id').replace(cloned_regex, field_id +'['+ ($parent.index()+1) +']') );
985
+ });
986
+
987
+ var $cloned = $('<div class="csf-cloneable-item" />');
988
+
989
+ $cloned.append($cloned_helper);
990
+ $cloned.append($cloned_title);
991
+ $cloned.append($cloned_content);
992
+
993
+ $wrapper.children().eq($parent.index()).after($cloned);
994
+
995
+ CSF.helper.name_nested_replace( $wrapper.children('.csf-cloneable-item'), field_id );
996
+
997
+ $wrapper.accordion('refresh');
998
+ $wrapper.csf_customizer_refresh();
999
+ $wrapper.csf_customizer_listen({closest: true});
1000
+
1001
+ if( is_number ) {
1002
+ update_title_numbers($wrapper);
1003
+ }
1004
+
1005
+ };
1006
+
1007
+ $wrapper.children('.csf-cloneable-item').children('.csf-cloneable-helper').on('click', '.csf-cloneable-clone', event_clone);
1008
+ $group.children('.csf-cloneable-hidden').children('.csf-cloneable-helper').on('click', '.csf-cloneable-clone', event_clone);
1009
+
1010
+ var event_remove = function( e ) {
1011
+
1012
+ e.preventDefault();
1013
+
1014
+ var count = $wrapper.children('.csf-cloneable-item').length;
1015
+
1016
+ $max.hide();
1017
+ $min.hide();
1018
+
1019
+ if( min && (count-1) < min ) {
1020
+ $min.show();
1021
+ return;
1022
+ }
1023
+
1024
+ $(this).closest('.csf-cloneable-item').remove();
1025
+
1026
+ CSF.helper.name_nested_replace( $wrapper.children('.csf-cloneable-item'), field_id );
1027
+
1028
+ $wrapper.csf_customizer_refresh();
1029
+
1030
+ if( is_number ) {
1031
+ update_title_numbers($wrapper);
1032
+ }
1033
+
1034
+ };
1035
+
1036
+ $wrapper.children('.csf-cloneable-item').children('.csf-cloneable-helper').on('click', '.csf-cloneable-remove', event_remove);
1037
+ $group.children('.csf-cloneable-hidden').children('.csf-cloneable-helper').on('click', '.csf-cloneable-remove', event_remove);
1038
+
1039
+ });
1040
+ };
1041
+
1042
+ //
1043
+ // Field: icon
1044
+ //
1045
+ $.fn.csf_field_icon = function() {
1046
+ return this.each( function() {
1047
+
1048
+ var $this = $(this);
1049
+
1050
+ $this.on('click', '.csf-icon-add', function( e ) {
1051
+
1052
+ e.preventDefault();
1053
+
1054
+ var $button = $(this);
1055
+ var $modal = $('#csf-modal-icon');
1056
+
1057
+ $modal.show();
1058
+
1059
+ CSF.vars.$icon_target = $this;
1060
+
1061
+ if( !CSF.vars.icon_modal_loaded ) {
1062
+
1063
+ $modal.find('.csf-modal-loading').show();
1064
+
1065
+ window.wp.ajax.post( 'csf-get-icons', {
1066
+ nonce: $button.data('nonce')
1067
+ }).done( function( response ) {
1068
+
1069
+ $modal.find('.csf-modal-loading').hide();
1070
+
1071
+ CSF.vars.icon_modal_loaded = true;
1072
+
1073
+ var $load = $modal.find('.csf-modal-load').html( response.content );
1074
+
1075
+ $load.on('click', 'a', function( e ) {
1076
+
1077
+ e.preventDefault();
1078
+
1079
+ var icon = $(this).data('csf-icon');
1080
+
1081
+ CSF.vars.$icon_target.find('i').removeAttr('class').addClass(icon);
1082
+ CSF.vars.$icon_target.find('input').val(icon).trigger('change');
1083
+ CSF.vars.$icon_target.find('.csf-icon-preview').removeClass('hidden');
1084
+ CSF.vars.$icon_target.find('.csf-icon-remove').removeClass('hidden');
1085
+
1086
+ $modal.hide();
1087
+
1088
+ });
1089
+
1090
+ $modal.on('change keyup', '.csf-icon-search', function() {
1091
+
1092
+ var value = $(this).val(),
1093
+ $icons = $load.find('a');
1094
+
1095
+ $icons.each( function() {
1096
+
1097
+ var $elem = $(this);
1098
+
1099
+ if( $elem.data('csf-icon').search( new RegExp( value, 'i' ) ) < 0 ) {
1100
+ $elem.hide();
1101
+ } else {
1102
+ $elem.show();
1103
+ }
1104
+
1105
+ });
1106
+
1107
+ });
1108
+
1109
+ $modal.on('click', '.csf-modal-close, .csf-modal-overlay', function() {
1110
+ $modal.hide();
1111
+ });
1112
+
1113
+ }).fail( function( response ) {
1114
+ $modal.find('.csf-modal-loading').hide();
1115
+ $modal.find('.csf-modal-load').html( response.error );
1116
+ $modal.on('click', function() { $modal.hide(); });
1117
+ });
1118
+ }
1119
+
1120
+ });
1121
+
1122
+ $this.on('click', '.csf-icon-remove', function( e ) {
1123
+ e.preventDefault();
1124
+ $this.find('.csf-icon-preview').addClass('hidden');
1125
+ $this.find('input').val('').trigger('change');
1126
+ $(this).addClass('hidden');
1127
+ });
1128
+
1129
+ });
1130
+ };
1131
+
1132
+ //
1133
+ // Field: map
1134
+ //
1135
+ $.fn.csf_field_map = function() {
1136
+ return this.each( function() {
1137
+
1138
+ if( typeof L === 'undefined' ) { return; }
1139
+
1140
+ var $this = $(this),
1141
+ $map = $this.find('.csf--map-osm'),
1142
+ $search_input = $this.find('.csf--map-search input'),
1143
+ $latitude = $this.find('.csf--latitude'),
1144
+ $longitude = $this.find('.csf--longitude'),
1145
+ $zoom = $this.find('.csf--zoom'),
1146
+ map_data = $map.data( 'map' );
1147
+
1148
+ var mapInit = L.map( $map.get(0), map_data);
1149
+
1150
+ L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
1151
+ attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
1152
+ }).addTo(mapInit);
1153
+
1154
+ var mapMarker = L.marker(map_data.center,{draggable: true}).addTo(mapInit);
1155
+
1156
+ var update_latlng = function( data ) {
1157
+ $latitude.val( data.lat );
1158
+ $longitude.val( data.lng );
1159
+ $zoom.val( mapInit.getZoom() );
1160
+ };
1161
+
1162
+ mapInit.on( 'click', function ( data ) {
1163
+ mapMarker.setLatLng( data.latlng );
1164
+ update_latlng( data.latlng );
1165
+ });
1166
+
1167
+ mapInit.on( 'zoom', function () {
1168
+ update_latlng( mapMarker.getLatLng() );
1169
+ });
1170
+
1171
+ mapMarker.on( 'drag', function () {
1172
+ update_latlng( mapMarker.getLatLng() );
1173
+ });
1174
+
1175
+ if( ! $search_input.length ) {
1176
+ $search_input = $( '[data-depend-id="'+ $this.find('.csf--address-field').data( 'address-field' ) +'"]' );
1177
+ }
1178
+
1179
+ $search_input.autocomplete({
1180
+ source: function ( request, response ) {
1181
+ $.get( 'https://nominatim.openstreetmap.org/search', {
1182
+ format: 'json',
1183
+ q: request.term,
1184
+ }, function( results ) {
1185
+ if( results.length ) {
1186
+ response( results.map( function( item ) {
1187
+ return {
1188
+ value: item.display_name,
1189
+ label: item.display_name,
1190
+ lat: item.lat,
1191
+ lon: item.lon
1192
+ };
1193
+ }, 'json' ) );
1194
+ } else {
1195
+ response([{
1196
+ value: 'no-data',
1197
+ label: 'No Results.'
1198
+ }]);
1199
+ }
1200
+ });
1201
+ },
1202
+ select: function ( event, ui ) {
1203
+
1204
+ if( ui.item.value === 'no-data' ) { return false; }
1205
+
1206
+ var latLng = L.latLng( ui.item.lat, ui.item.lon );
1207
+
1208
+ mapInit.panTo( latLng );
1209
+ mapMarker.setLatLng( latLng );
1210
+ update_latlng( latLng );
1211
+
1212
+ },
1213
+ create: function (event, ui) {
1214
+ $(this).autocomplete('widget').addClass('csf-map-ui-autocomplate');
1215
+ }
1216
+ });
1217
+
1218
+ var input_update_latlng = function() {
1219
+
1220
+ var latLng = L.latLng( $latitude.val(), $longitude.val() );
1221
+
1222
+ mapInit.panTo( latLng );
1223
+ mapMarker.setLatLng( latLng );
1224
+
1225
+ };
1226
+
1227
+ $latitude.on('change', input_update_latlng );
1228
+ $longitude.on('change', input_update_latlng );
1229
+
1230
+ });
1231
+ };
1232
+
1233
+ //
1234
+ // Field: media
1235
+ //
1236
+ $.fn.csf_field_media = function() {
1237
+ return this.each( function() {
1238
+
1239
+ var $this = $(this),
1240
+ $upload_button = $this.find('.csf--button'),
1241
+ $remove_button = $this.find('.csf--remove'),
1242
+ $library = $upload_button.data('library') && $upload_button.data('library').split(',') || '',
1243
+ $auto_attributes = ( $this.hasClass('csf-assign-field-background') ) ? $this.closest('.csf-field-background').find('.csf--auto-attributes') : false,
1244
+ wp_media_frame;
1245
+
1246
+ $upload_button.on('click', function( e ) {
1247
+
1248
+ e.preventDefault();
1249
+
1250
+ if( typeof window.wp === 'undefined' || ! window.wp.media || ! window.wp.media.gallery ) {
1251
+ return;
1252
+ }
1253
+
1254
+ if( wp_media_frame ) {
1255
+ wp_media_frame.open();
1256
+ return;
1257
+ }
1258
+
1259
+ wp_media_frame = window.wp.media({
1260
+ library: {
1261
+ type: $library
1262
+ }
1263
+ });
1264
+
1265
+ wp_media_frame.on( 'select', function() {
1266
+
1267
+ var thumbnail;
1268
+ var attributes = wp_media_frame.state().get('selection').first().attributes;
1269
+ var preview_size = $upload_button.data('preview-size') || 'thumbnail';
1270
+
1271
+ if( $library.length && $library.indexOf(attributes.subtype) === -1 && $library.indexOf(attributes.type) === -1 ) {
1272
+ return;
1273
+ }
1274
+
1275
+ $this.find('.csf--id').val( attributes.id );
1276
+ $this.find('.csf--width').val( attributes.width );
1277
+ $this.find('.csf--height').val( attributes.height );
1278
+ $this.find('.csf--alt').val( attributes.alt );
1279
+ $this.find('.csf--title').val( attributes.title );
1280
+ $this.find('.csf--description').val( attributes.description );
1281
+
1282
+ if( typeof attributes.sizes !== 'undefined' && typeof attributes.sizes.thumbnail !== 'undefined' && preview_size === 'thumbnail' ) {
1283
+ thumbnail = attributes.sizes.thumbnail.url;
1284
+ } else if( typeof attributes.sizes !== 'undefined' && typeof attributes.sizes.full !== 'undefined' ) {
1285
+ thumbnail = attributes.sizes.full.url;
1286
+ } else {
1287
+ thumbnail = attributes.icon;
1288
+ }
1289
+
1290
+ if( $auto_attributes ) {
1291
+ $auto_attributes.removeClass('csf--attributes-hidden');
1292
+ }
1293
+
1294
+ $remove_button.removeClass('hidden');
1295
+
1296
+ $this.find('.csf--preview').removeClass('hidden');
1297
+ $this.find('.csf--src').attr('src', thumbnail);
1298
+ $this.find('.csf--thumbnail').val( thumbnail );
1299
+ $this.find('.csf--url').val( attributes.url ).trigger('change');
1300
+
1301
+ });
1302
+
1303
+ wp_media_frame.open();
1304
+
1305
+ });
1306
+
1307
+ $remove_button.on('click', function( e ) {
1308
+
1309
+ e.preventDefault();
1310
+
1311
+ if( $auto_attributes ) {
1312
+ $auto_attributes.addClass('csf--attributes-hidden');
1313
+ }
1314
+
1315
+ $remove_button.addClass('hidden');
1316
+ $this.find('input').val('');
1317
+ $this.find('.csf--preview').addClass('hidden');
1318
+ $this.find('.csf--url').trigger('change');
1319
+
1320
+ });
1321
+
1322
+ });
1323
+
1324
+ };
1325
+
1326
+ //
1327
+ // Field: repeater
1328
+ //
1329
+ $.fn.csf_field_repeater = function() {
1330
+ return this.each( function() {
1331
+
1332
+ var $this = $(this),
1333
+ $fieldset = $this.children('.csf-fieldset'),
1334
+ $repeater = $fieldset.length ? $fieldset : $this,
1335
+ $wrapper = $repeater.children('.csf-repeater-wrapper'),
1336
+ $hidden = $repeater.children('.csf-repeater-hidden'),
1337
+ $max = $repeater.children('.csf-repeater-max'),
1338
+ $min = $repeater.children('.csf-repeater-min'),
1339
+ field_id = $wrapper.data('field-id'),
1340
+ unique_id = $wrapper.data('unique-id'),
1341
+ max = parseInt( $wrapper.data('max') ),
1342
+ min = parseInt( $wrapper.data('min') );
1343
+
1344
+
1345
+ $wrapper.children('.csf-repeater-item').children('.csf-repeater-content').csf_reload_script();
1346
+
1347
+ $wrapper.sortable({
1348
+ axis: 'y',
1349
+ handle: '.csf-repeater-sort',
1350
+ helper: 'original',
1351
+ cursor: 'move',
1352
+ placeholder: 'widget-placeholder',
1353
+ update: function( event, ui ) {
1354
+
1355
+ CSF.helper.name_nested_replace( $wrapper.children('.csf-repeater-item'), field_id );
1356
+ $wrapper.csf_customizer_refresh();
1357
+ ui.item.csf_reload_script_retry();
1358
+
1359
+ }
1360
+ });
1361
+
1362
+ $repeater.children('.csf-repeater-add').on('click', function( e ) {
1363
+
1364
+ e.preventDefault();
1365
+
1366
+ var count = $wrapper.children('.csf-repeater-item').length;
1367
+
1368
+ $min.hide();
1369
+
1370
+ if( max && (count+1) > max ) {
1371
+ $max.show();
1372
+ return;
1373
+ }
1374
+
1375
+ var new_field_id = unique_id + field_id + '['+ count +']';
1376
+
1377
+ var $cloned_item = $hidden.csf_clone(true);
1378
+
1379
+ $cloned_item.removeClass('csf-repeater-hidden');
1380
+
1381
+ $cloned_item.find(':input[name!="_pseudo"]').each( function() {
1382
+ this.name = new_field_id + this.name.replace( ( this.name.startsWith('_nonce') ? '_nonce' : unique_id ), '');
1383
+ });
1384
+
1385
+ $cloned_item.find('.csf-data-wrapper').each( function(){
1386
+ $(this).attr('data-unique-id', new_field_id );
1387
+ });
1388
+
1389
+ $wrapper.append($cloned_item);
1390
+ $cloned_item.children('.csf-repeater-content').csf_reload_script();
1391
+ $wrapper.csf_customizer_refresh();
1392
+ $wrapper.csf_customizer_listen({closest: true});
1393
+
1394
+ });
1395
+
1396
+ var event_clone = function( e ) {
1397
+
1398
+ e.preventDefault();
1399
+
1400
+ var count = $wrapper.children('.csf-repeater-item').length;
1401
+
1402
+ $min.hide();
1403
+
1404
+ if( max && (count+1) > max ) {
1405
+ $max.show();
1406
+ return;
1407
+ }
1408
+
1409
+ var $this = $(this),
1410
+ $parent = $this.parent().parent().parent(),
1411
+ $cloned_content = $parent.children('.csf-repeater-content').csf_clone(),
1412
+ $cloned_helper = $parent.children('.csf-repeater-helper').csf_clone(true),
1413
+ cloned_regex = new RegExp('('+ CSF.helper.preg_quote(field_id) +')\\[(\\d+)\\]', 'g');
1414
+
1415
+ $cloned_content.find('.csf-data-wrapper').each( function(){
1416
+ var $this = $(this);
1417
+ $this.attr('data-unique-id', $this.attr('data-unique-id').replace(cloned_regex, field_id +'['+ ($parent.index()+1) +']') );
1418
+ });
1419
+
1420
+ var $cloned = $('<div class="csf-repeater-item" />');
1421
+
1422
+ $cloned.append($cloned_content);
1423
+ $cloned.append($cloned_helper);
1424
+
1425
+ $wrapper.children().eq($parent.index()).after($cloned);
1426
+
1427
+ $cloned.children('.csf-repeater-content').csf_reload_script();
1428
+
1429
+ CSF.helper.name_nested_replace( $wrapper.children('.csf-repeater-item'), field_id );
1430
+
1431
+ $wrapper.csf_customizer_refresh();
1432
+ $wrapper.csf_customizer_listen({closest: true});
1433
+
1434
+ };
1435
+
1436
+ $wrapper.children('.csf-repeater-item').children('.csf-repeater-helper').on('click', '.csf-repeater-clone', event_clone);
1437
+ $repeater.children('.csf-repeater-hidden').children('.csf-repeater-helper').on('click', '.csf-repeater-clone', event_clone);
1438
+
1439
+ var event_remove = function( e ) {
1440
+
1441
+ e.preventDefault();
1442
+
1443
+ var count = $wrapper.children('.csf-repeater-item').length;
1444
+
1445
+ $max.hide();
1446
+ $min.hide();
1447
+
1448
+ if( min && (count-1) < min ) {
1449
+ $min.show();
1450
+ return;
1451
+ }
1452
+
1453
+ $(this).closest('.csf-repeater-item').remove();
1454
+
1455
+ CSF.helper.name_nested_replace( $wrapper.children('.csf-repeater-item'), field_id );
1456
+
1457
+ $wrapper.csf_customizer_refresh();
1458
+
1459
+ };
1460
+
1461
+ $wrapper.children('.csf-repeater-item').children('.csf-repeater-helper').on('click', '.csf-repeater-remove', event_remove);
1462
+ $repeater.children('.csf-repeater-hidden').children('.csf-repeater-helper').on('click', '.csf-repeater-remove', event_remove);
1463
+
1464
+ });
1465
+ };
1466
+
1467
+ //
1468
+ // Field: slider
1469
+ //
1470
+ $.fn.csf_field_slider = function() {
1471
+ return this.each( function() {
1472
+
1473
+ var $this = $(this),
1474
+ $input = $this.find('input'),
1475
+ $slider = $this.find('.csf-slider-ui'),
1476
+ data = $input.data(),
1477
+ value = $input.val() || 0;
1478
+
1479
+ if( $slider.hasClass('ui-slider') ) {
1480
+ $slider.empty();
1481
+ }
1482
+
1483
+ $slider.slider({
1484
+ range: 'min',
1485
+ value: value,
1486
+ min: data.min,
1487
+ max: data.max,
1488
+ step: data.step,
1489
+ slide: function( e, o ) {
1490
+ $input.val( o.value ).trigger('change');
1491
+ }
1492
+ });
1493
+
1494
+ $input.keyup( function() {
1495
+ $slider.slider('value', $input.val());
1496
+ });
1497
+
1498
+ });
1499
+ };
1500
+
1501
+ //
1502
+ // Field: sortable
1503
+ //
1504
+ $.fn.csf_field_sortable = function() {
1505
+ return this.each( function() {
1506
+
1507
+ var $sortable = $(this).find('.csf--sortable');
1508
+
1509
+ $sortable.sortable({
1510
+ axis: 'y',
1511
+ helper: 'original',
1512
+ cursor: 'move',
1513
+ placeholder: 'widget-placeholder',
1514
+ update: function( event, ui ) {
1515
+ $sortable.csf_customizer_refresh();
1516
+ }
1517
+ });
1518
+
1519
+ $sortable.find('.csf--sortable-content').csf_reload_script();
1520
+
1521
+ });
1522
+ };
1523
+
1524
+ //
1525
+ // Field: sorter
1526
+ //
1527
+ $.fn.csf_field_sorter = function() {
1528
+ return this.each( function() {
1529
+
1530
+ var $this = $(this),
1531
+ $enabled = $this.find('.csf-enabled'),
1532
+ $has_disabled = $this.find('.csf-disabled'),
1533
+ $disabled = ( $has_disabled.length ) ? $has_disabled : false;
1534
+
1535
+ $enabled.sortable({
1536
+ connectWith: $disabled,
1537
+ placeholder: 'ui-sortable-placeholder',
1538
+ update: function( event, ui ) {
1539
+
1540
+ var $el = ui.item.find('input');
1541
+
1542
+ if( ui.item.parent().hasClass('csf-enabled') ) {
1543
+ $el.attr('name', $el.attr('name').replace('disabled', 'enabled'));
1544
+ } else {
1545
+ $el.attr('name', $el.attr('name').replace('enabled', 'disabled'));
1546
+ }
1547
+
1548
+ $this.csf_customizer_refresh();
1549
+
1550
+ }
1551
+ });
1552
+
1553
+ if( $disabled ) {
1554
+
1555
+ $disabled.sortable({
1556
+ connectWith: $enabled,
1557
+ placeholder: 'ui-sortable-placeholder',
1558
+ update: function( event, ui ) {
1559
+ $this.csf_customizer_refresh();
1560
+ }
1561
+ });
1562
+
1563
+ }
1564
+
1565
+ });
1566
+ };
1567
+
1568
+ //
1569
+ // Field: spinner
1570
+ //
1571
+ $.fn.csf_field_spinner = function() {
1572
+ return this.each( function() {
1573
+
1574
+ var $this = $(this),
1575
+ $input = $this.find('input'),
1576
+ $inited = $this.find('.ui-spinner-button'),
1577
+ $unit = $input.data('unit');
1578
+
1579
+ if( $inited.length ) {
1580
+ $inited.remove();
1581
+ }
1582
+
1583
+ $input.spinner({
1584
+ max: $input.data('max') || 100,
1585
+ min: $input.data('min') || 0,
1586
+ step: $input.data('step') || 1,
1587
+ create: function( event, ui ) {
1588
+ if( $unit.length ) {
1589
+ $this.find('.ui-spinner-up').after('<span class="ui-button-text-only csf--unit">'+ $unit +'</span>');
1590
+ }
1591
+ },
1592
+ spin: function (event, ui ) {
1593
+ $input.val(ui.value).trigger('change');
1594
+ }
1595
+ });
1596
+
1597
+ });
1598
+ };
1599
+
1600
+ //
1601
+ // Field: switcher
1602
+ //
1603
+ $.fn.csf_field_switcher = function() {
1604
+ return this.each( function() {
1605
+
1606
+ var $switcher = $(this).find('.csf--switcher');
1607
+
1608
+ $switcher.on('click', function() {
1609
+
1610
+ var value = 0;
1611
+ var $input = $switcher.find('input');
1612
+
1613
+ if( $switcher.hasClass('csf--active') ) {
1614
+ $switcher.removeClass('csf--active');
1615
+ } else {
1616
+ value = 1;
1617
+ $switcher.addClass('csf--active');
1618
+ }
1619
+
1620
+ $input.val(value).trigger('change');
1621
+
1622
+ });
1623
+
1624
+ });
1625
+ };
1626
+
1627
+ //
1628
+ // Field: tabbed
1629
+ //
1630
+ $.fn.csf_field_tabbed = function() {
1631
+ return this.each( function() {
1632
+
1633
+ var $this = $(this),
1634
+ $links = $this.find('.csf-tabbed-nav a'),
1635
+ $sections = $this.find('.csf-tabbed-section');
1636
+
1637
+ $sections.eq(0).csf_reload_script();
1638
+
1639
+ $links.on( 'click', function( e ) {
1640
+
1641
+ e.preventDefault();
1642
+
1643
+ var $link = $(this),
1644
+ index = $link.index(),
1645
+ $section = $sections.eq(index);
1646
+
1647
+ $link.addClass('csf-tabbed-active').siblings().removeClass('csf-tabbed-active');
1648
+ $section.csf_reload_script();
1649
+ $section.removeClass('hidden').siblings().addClass('hidden');
1650
+
1651
+ });
1652
+
1653
+ });
1654
+ };
1655
+
1656
+ //
1657
+ // Field: typography
1658
+ //
1659
+ $.fn.csf_field_typography = function() {
1660
+ return this.each(function () {
1661
+
1662
+ var base = this;
1663
+ var $this = $(this);
1664
+ var loaded_fonts = [];
1665
+ var webfonts = csf_typography_json.webfonts;
1666
+ var googlestyles = csf_typography_json.googlestyles;
1667
+ var defaultstyles = csf_typography_json.defaultstyles;
1668
+
1669
+ //
1670
+ //
1671
+ // Sanitize google font subset
1672
+ base.sanitize_subset = function( subset ) {
1673
+ subset = subset.replace('-ext', ' Extended');
1674
+ subset = subset.charAt(0).toUpperCase() + subset.slice(1);
1675
+ return subset;
1676
+ };
1677
+
1678
+ //
1679
+ //
1680
+ // Sanitize google font styles (weight and style)
1681
+ base.sanitize_style = function( style ) {
1682
+ return googlestyles[style] ? googlestyles[style] : style;
1683
+ };
1684
+
1685
+ //
1686
+ //
1687
+ // Load google font
1688
+ base.load_google_font = function( font_family, weight, style ) {
1689
+
1690
+ if( font_family && typeof WebFont === 'object' ) {
1691
+
1692
+ weight = weight ? weight.replace('normal', '') : '';
1693
+ style = style ? style.replace('normal', '') : '';
1694
+
1695
+ if( weight || style ) {
1696
+ font_family = font_family +':'+ weight + style;
1697
+ }
1698
+
1699
+ if( loaded_fonts.indexOf( font_family ) === -1 ) {
1700
+ WebFont.load({ google: { families: [font_family] } });
1701
+ }
1702
+
1703
+ loaded_fonts.push( font_family );
1704
+
1705
+ }
1706
+
1707
+ };
1708
+
1709
+ //
1710
+ //
1711
+ // Append select options
1712
+ base.append_select_options = function( $select, options, condition, type, is_multi ) {
1713
+
1714
+ $select.find('option').not(':first').remove();
1715
+
1716
+ var opts = '';
1717
+
1718
+ $.each( options, function( key, value ) {
1719
+
1720
+ var selected;
1721
+ var name = value;
1722
+
1723
+ // is_multi
1724
+ if( is_multi ) {
1725
+ selected = ( condition && condition.indexOf(value) !== -1 ) ? ' selected' : '';
1726
+ } else {
1727
+ selected = ( condition && condition === value ) ? ' selected' : '';
1728
+ }
1729
+
1730
+ if( type === 'subset' ) {
1731
+ name = base.sanitize_subset( value );
1732
+ } else if( type === 'style' ){
1733
+ name = base.sanitize_style( value );
1734
+ }
1735
+
1736
+ opts += '<option value="'+ value +'"'+ selected +'>'+ name +'</option>';
1737
+
1738
+ });
1739
+
1740
+ $select.append(opts).trigger('csf.change').trigger('chosen:updated');
1741
+
1742
+ };
1743
+
1744
+ base.init = function () {
1745
+
1746
+ //
1747
+ //
1748
+ // Constants
1749
+ var selected_styles = [];
1750
+ var $typography = $this.find('.csf--typography');
1751
+ var $type = $this.find('.csf--type');
1752
+ var $styles = $this.find('.csf--block-font-style');
1753
+ var unit = $typography.data('unit');
1754
+ var exclude_fonts = $typography.data('exclude') ? $typography.data('exclude').split(',') : [];
1755
+
1756
+ //
1757
+ //
1758
+ // Chosen init
1759
+ if( $this.find('.csf--chosen').length ) {
1760
+
1761
+ var $chosen_selects = $this.find('select');
1762
+
1763
+ $chosen_selects.each( function(){
1764
+
1765
+ var $chosen_select = $(this),
1766
+ $chosen_inited = $chosen_select.parent().find('.chosen-container');
1767
+
1768
+ if( $chosen_inited.length ) {
1769
+ $chosen_inited.remove();
1770
+ }
1771
+
1772
+ $chosen_select.chosen({
1773
+ allow_single_deselect: true,
1774
+ disable_search_threshold: 15,
1775
+ width: '100%'
1776
+ });
1777
+
1778
+ });
1779
+
1780
+ }
1781
+
1782
+ //
1783
+ //
1784
+ // Font family select
1785
+ var $font_family_select = $this.find('.csf--font-family');
1786
+ var first_font_family = $font_family_select.val();
1787
+
1788
+ // Clear default font family select options
1789
+ $font_family_select.find('option').not(':first-child').remove();
1790
+
1791
+ var opts = '';
1792
+
1793
+ $.each(webfonts, function( type, group ) {
1794
+
1795
+ // Check for exclude fonts
1796
+ if( exclude_fonts && exclude_fonts.indexOf(type) !== -1 ) { return; }
1797
+
1798
+ opts += '<optgroup label="' + group.label + '">';
1799
+
1800
+ $.each(group.fonts, function( key, value ) {
1801
+
1802
+ // use key if value is object
1803
+ value = ( typeof value === 'object' ) ? key : value;
1804
+ var selected = ( value === first_font_family ) ? ' selected' : '';
1805
+ opts += '<option value="'+ value +'" data-type="'+ type +'"'+ selected +'>'+ value +'</option>';
1806
+
1807
+ });
1808
+
1809
+ opts += '</optgroup>';
1810
+
1811
+ });
1812
+
1813
+ // Append google font select options
1814
+ $font_family_select.append(opts).trigger('chosen:updated');
1815
+
1816
+ //
1817
+ //
1818
+ // Font style select
1819
+ var $font_style_block = $this.find('.csf--block-font-style');
1820
+
1821
+ if( $font_style_block.length ) {
1822
+
1823
+ var $font_style_select = $this.find('.csf--font-style-select');
1824
+ var first_style_value = $font_style_select.val() ? $font_style_select.val().replace(/normal/g, '' ) : '';
1825
+
1826
+ //
1827
+ // Font Style on on change listener
1828
+ $font_style_select.on('change csf.change', function( event ) {
1829
+
1830
+ var style_value = $font_style_select.val();
1831
+
1832
+ // set a default value
1833
+ if( !style_value && selected_styles && selected_styles.indexOf('normal') === -1 ) {
1834
+ style_value = selected_styles[0];
1835
+ }
1836
+
1837
+ // set font weight, for eg. replacing 800italic to 800
1838
+ var font_normal = ( style_value && style_value !== 'italic' && style_value === 'normal' ) ? 'normal' : '';
1839
+ var font_weight = ( style_value && style_value !== 'italic' && style_value !== 'normal' ) ? style_value.replace('italic', '') : font_normal;
1840
+ var font_style = ( style_value && style_value.substr(-6) === 'italic' ) ? 'italic' : '';
1841
+
1842
+ $this.find('.csf--font-weight').val( font_weight );
1843
+ $this.find('.csf--font-style').val( font_style );
1844
+
1845
+ });
1846
+
1847
+ //
1848
+ //
1849
+ // Extra font style select
1850
+ var $extra_font_style_block = $this.find('.csf--block-extra-styles');
1851
+
1852
+ if( $extra_font_style_block.length ) {
1853
+ var $extra_font_style_select = $this.find('.csf--extra-styles');
1854
+ var first_extra_style_value = $extra_font_style_select.val();
1855
+ }
1856
+
1857
+ }
1858
+
1859
+ //
1860
+ //
1861
+ // Subsets select
1862
+ var $subset_block = $this.find('.csf--block-subset');
1863
+ if( $subset_block.length ) {
1864
+ var $subset_select = $this.find('.csf--subset');
1865
+ var first_subset_select_value = $subset_select.val();
1866
+ var subset_multi_select = $subset_select.data('multiple') || false;
1867
+ }
1868
+
1869
+ //
1870
+ //
1871
+ // Backup font family
1872
+ var $backup_font_family_block = $this.find('.csf--block-backup-font-family');
1873
+
1874
+ //
1875
+ //
1876
+ // Font Family on Change Listener
1877
+ $font_family_select.on('change csf.change', function( event ) {
1878
+
1879
+ // Hide subsets on change
1880
+ if( $subset_block.length ) {
1881
+ $subset_block.addClass('hidden');
1882
+ }
1883
+
1884
+ // Hide extra font style on change
1885
+ if( $extra_font_style_block.length ) {
1886
+ $extra_font_style_block.addClass('hidden');
1887
+ }
1888
+
1889
+ // Hide backup font family on change
1890
+ if( $backup_font_family_block.length ) {
1891
+ $backup_font_family_block.addClass('hidden');
1892
+ }
1893
+
1894
+ var $selected = $font_family_select.find(':selected');
1895
+ var value = $selected.val();
1896
+ var type = $selected.data('type');
1897
+
1898
+ if( type && value ) {
1899
+
1900
+ // Show backup fonts if font type google or custom
1901
+ if( ( type === 'google' || type === 'custom' ) && $backup_font_family_block.length ) {
1902
+ $backup_font_family_block.removeClass('hidden');
1903
+ }
1904
+
1905
+ // Appending font style select options
1906
+ if( $font_style_block.length ) {
1907
+
1908
+ // set styles for multi and normal style selectors
1909
+ var styles = defaultstyles;
1910
+
1911
+ // Custom or gogle font styles
1912
+ if( type === 'google' && webfonts[type].fonts[value][0] ) {
1913
+ styles = webfonts[type].fonts[value][0];
1914
+ } else if( type === 'custom' && webfonts[type].fonts[value] ) {
1915
+ styles = webfonts[type].fonts[value];
1916
+ }
1917
+
1918
+ selected_styles = styles;
1919
+
1920
+ // Set selected style value for avoid load errors
1921
+ var set_auto_style = ( styles.indexOf('normal') !== -1 ) ? 'normal' : styles[0];
1922
+ var set_style_value = ( first_style_value && styles.indexOf(first_style_value) !== -1 ) ? first_style_value : set_auto_style;
1923
+
1924
+ // Append style select options
1925
+ base.append_select_options( $font_style_select, styles, set_style_value, 'style' );
1926
+
1927
+ // Clear first value
1928
+ first_style_value = false;
1929
+
1930
+ // Show style select after appended
1931
+ $font_style_block.removeClass('hidden');
1932
+
1933
+ // Appending extra font style select options
1934
+ if( type === 'google' && $extra_font_style_block.length && styles.length > 1 ) {
1935
+
1936
+ // Append extra-style select options
1937
+ base.append_select_options( $extra_font_style_select, styles, first_extra_style_value, 'style', true );
1938
+
1939
+ // Clear first value
1940
+ first_extra_style_value = false;
1941
+
1942
+ // Show style select after appended
1943
+ $extra_font_style_block.removeClass('hidden');
1944
+
1945
+ }
1946
+
1947
+ }
1948
+
1949
+ // Appending google fonts subsets select options
1950
+ if( type === 'google' && $subset_block.length && webfonts[type].fonts[value][1] ) {
1951
+
1952
+ var subsets = webfonts[type].fonts[value][1];
1953
+ var set_auto_subset = ( subsets.length < 2 && subsets[0] !== 'latin' ) ? subsets[0] : '';
1954
+ var set_subset_value = ( first_subset_select_value && subsets.indexOf(first_subset_select_value) !== -1 ) ? first_subset_select_value : set_auto_subset;
1955
+
1956
+ // check for multiple subset select
1957
+ set_subset_value = ( subset_multi_select && first_subset_select_value ) ? first_subset_select_value : set_subset_value;
1958
+
1959
+ base.append_select_options( $subset_select, subsets, set_subset_value, 'subset', subset_multi_select );
1960
+
1961
+ first_subset_select_value = false;
1962
+
1963
+ $subset_block.removeClass('hidden');
1964
+
1965
+ }
1966
+
1967
+ } else {
1968
+
1969
+ // Clear Styles
1970
+ $styles.find(':input').val('');
1971
+
1972
+ // Clear subsets options if type and value empty
1973
+ if( $subset_block.length ) {
1974
+ $subset_select.find('option').not(':first-child').remove();
1975
+ $subset_select.trigger('chosen:updated');
1976
+ }
1977
+
1978
+ // Clear font styles options if type and value empty
1979
+ if( $font_style_block.length ) {
1980
+ $font_style_select.find('option').not(':first-child').remove();
1981
+ $font_style_select.trigger('chosen:updated');
1982
+ }
1983
+
1984
+ }
1985
+
1986
+ // Update font type input value
1987
+ $type.val(type);
1988
+
1989
+ }).trigger('csf.change');
1990
+
1991
+ //
1992
+ //
1993
+ // Preview
1994
+ var $preview_block = $this.find('.csf--block-preview');
1995
+
1996
+ if( $preview_block.length ) {
1997
+
1998
+ var $preview = $this.find('.csf--preview');
1999
+
2000
+ // Set preview styles on change
2001
+ $this.on('change', CSF.helper.debounce( function( event ) {
2002
+
2003
+ $preview_block.removeClass('hidden');
2004
+
2005
+ var font_family = $font_family_select.val(),
2006
+ font_weight = $this.find('.csf--font-weight').val(),
2007
+ font_style = $this.find('.csf--font-style').val(),
2008
+ font_size = $this.find('.csf--font-size').val(),
2009
+ font_variant = $this.find('.csf--font-variant').val(),
2010
+ line_height = $this.find('.csf--line-height').val(),
2011
+ text_align = $this.find('.csf--text-align').val(),
2012
+ text_transform = $this.find('.csf--text-transform').val(),
2013
+ text_decoration = $this.find('.csf--text-decoration').val(),
2014
+ text_color = $this.find('.csf--color').val(),
2015
+ word_spacing = $this.find('.csf--word-spacing').val(),
2016
+ letter_spacing = $this.find('.csf--letter-spacing').val(),
2017
+ custom_style = $this.find('.csf--custom-style').val(),
2018
+ type = $this.find('.csf--type').val();
2019
+
2020
+ if( type === 'google' ) {
2021
+ base.load_google_font(font_family, font_weight, font_style);
2022
+ }
2023
+
2024
+ var properties = {};
2025
+
2026
+ if( font_family ) { properties.fontFamily = font_family; }
2027
+ if( font_weight ) { properties.fontWeight = font_weight; }
2028
+ if( font_style ) { properties.fontStyle = font_style; }
2029
+ if( font_variant ) { properties.fontVariant = font_variant; }
2030
+ if( font_size ) { properties.fontSize = font_size + unit; }
2031
+ if( line_height ) { properties.lineHeight = line_height + unit; }
2032
+ if( letter_spacing ) { properties.letterSpacing = letter_spacing + unit; }
2033
+ if( word_spacing ) { properties.wordSpacing = word_spacing + unit; }
2034
+ if( text_align ) { properties.textAlign = text_align; }
2035
+ if( text_transform ) { properties.textTransform = text_transform; }
2036
+ if( text_decoration ) { properties.textDecoration = text_decoration; }
2037
+ if( text_color ) { properties.color = text_color; }
2038
+
2039
+ $preview.removeAttr('style');
2040
+
2041
+ // Customs style attribute
2042
+ if( custom_style ) { $preview.attr('style', custom_style); }
2043
+
2044
+ $preview.css(properties);
2045
+
2046
+ }, 100 ) );
2047
+
2048
+ // Preview black and white backgrounds trigger
2049
+ $preview_block.on('click', function() {
2050
+
2051
+ $preview.toggleClass('csf--black-background');
2052
+
2053
+ var $toggle = $preview_block.find('.csf--toggle');
2054
+
2055
+ if( $toggle.hasClass('fa-toggle-off') ) {
2056
+ $toggle.removeClass('fa-toggle-off').addClass('fa-toggle-on');
2057
+ } else {
2058
+ $toggle.removeClass('fa-toggle-on').addClass('fa-toggle-off');
2059
+ }
2060
+
2061
+ });
2062
+
2063
+ if( !$preview_block.hasClass('hidden') ) {
2064
+ $this.trigger('change');
2065
+ }
2066
+
2067
+ }
2068
+
2069
+ };
2070
+
2071
+ base.init();
2072
+
2073
+ });
2074
+ };
2075
+
2076
+ //
2077
+ // Field: upload
2078
+ //
2079
+ $.fn.csf_field_upload = function() {
2080
+ return this.each( function() {
2081
+
2082
+ var $this = $(this),
2083
+ $input = $this.find('input'),
2084
+ $upload_button = $this.find('.csf--button'),
2085
+ $remove_button = $this.find('.csf--remove'),
2086
+ $library = $upload_button.data('library') && $upload_button.data('library').split(',') || '',
2087
+ wp_media_frame;
2088
+
2089
+ $input.on('change', function( e ) {
2090
+ if( $input.val() ) {
2091
+ $remove_button.removeClass('hidden');
2092
+ } else {
2093
+ $remove_button.addClass('hidden');
2094
+ }
2095
+ });
2096
+
2097
+ $upload_button.on('click', function( e ) {
2098
+
2099
+ e.preventDefault();
2100
+
2101
+ if( typeof window.wp === 'undefined' || ! window.wp.media || ! window.wp.media.gallery ) {
2102
+ return;
2103
+ }
2104
+
2105
+ if( wp_media_frame ) {
2106
+ wp_media_frame.open();
2107
+ return;
2108
+ }
2109
+
2110
+ wp_media_frame = window.wp.media({
2111
+ library: {
2112
+ type: $library
2113
+ },
2114
+ });
2115
+
2116
+ wp_media_frame.on( 'select', function() {
2117
+
2118
+ var attributes = wp_media_frame.state().get('selection').first().attributes;
2119
+
2120
+ if( $library.length && $library.indexOf(attributes.subtype) === -1 && $library.indexOf(attributes.type) === -1 ) {
2121
+ return;
2122
+ }
2123
+
2124
+ $input.val(attributes.url).trigger('change');
2125
+
2126
+ });
2127
+
2128
+ wp_media_frame.open();
2129
+
2130
+ });
2131
+
2132
+ $remove_button.on('click', function( e ) {
2133
+ e.preventDefault();
2134
+ $input.val('').trigger('change');
2135
+ });
2136
+
2137
+ });
2138
+
2139
+ };
2140
+
2141
+ //
2142
+ // Field: wp_editor
2143
+ //
2144
+ $.fn.csf_field_wp_editor = function() {
2145
+ return this.each( function() {
2146
+
2147
+ if( typeof window.wp.editor === 'undefined' || typeof window.tinyMCEPreInit === 'undefined' || typeof window.tinyMCEPreInit.mceInit.csf_wp_editor === 'undefined' ) {
2148
+ return;
2149
+ }
2150
+
2151
+ var $this = $(this),
2152
+ $editor = $this.find('.csf-wp-editor'),
2153
+ $textarea = $this.find('textarea');
2154
+
2155
+ // If there is wp-editor remove it for avoid dupliated wp-editor conflicts.
2156
+ var $has_wp_editor = $this.find('.wp-editor-wrap').length || $this.find('.mce-container').length;
2157
+
2158
+ if( $has_wp_editor ) {
2159
+ $editor.empty();
2160
+ $editor.append($textarea);
2161
+ $textarea.css('display', '');
2162
+ }
2163
+
2164
+ // Generate a unique id
2165
+ var uid = CSF.helper.uid('csf-editor-');
2166
+
2167
+ $textarea.attr('id', uid);
2168
+
2169
+ // Get default editor settings
2170
+ var default_editor_settings = {
2171
+ tinymce: window.tinyMCEPreInit.mceInit.csf_wp_editor,
2172
+ quicktags: window.tinyMCEPreInit.qtInit.csf_wp_editor
2173
+ };
2174
+
2175
+ // Get default editor settings
2176
+ var field_editor_settings = $editor.data('editor-settings');
2177
+
2178
+ // Add on change event handle
2179
+ var editor_on_change = function( editor ) {
2180
+ editor.on('change', CSF.helper.debounce( function() {
2181
+ editor.save();
2182
+ $textarea.trigger('change');
2183
+ }, 250 ) );
2184
+ };
2185
+
2186
+ // Callback for old wp editor
2187
+ var wpEditor = wp.oldEditor ? wp.oldEditor : wp.editor;
2188
+
2189
+ if( wpEditor && wpEditor.hasOwnProperty('autop') ) {
2190
+ wp.editor.autop = wpEditor.autop;
2191
+ wp.editor.removep = wpEditor.removep;
2192
+ wp.editor.initialize = wpEditor.initialize;
2193
+ }
2194
+
2195
+ // Extend editor selector and on change event handler
2196
+ default_editor_settings.tinymce = $.extend( {}, default_editor_settings.tinymce, { selector: '#'+ uid, setup: editor_on_change } );
2197
+
2198
+ // Override editor tinymce settings
2199
+ if( field_editor_settings.tinymce === false ) {
2200
+ default_editor_settings.tinymce = false;
2201
+ $editor.addClass('csf-no-tinymce');
2202
+ }
2203
+
2204
+ // Override editor quicktags settings
2205
+ if( field_editor_settings.quicktags === false ) {
2206
+ default_editor_settings.quicktags = false;
2207
+ $editor.addClass('csf-no-quicktags');
2208
+ }
2209
+
2210
+ // Wait until :visible
2211
+ var interval = setInterval(function () {
2212
+ if( $this.is(':visible') ) {
2213
+ window.wp.editor.initialize(uid, default_editor_settings);
2214
+ clearInterval(interval);
2215
+ }
2216
+ });
2217
+
2218
+ // Add Media buttons
2219
+ if( field_editor_settings.media_buttons && window.csf_media_buttons ) {
2220
+
2221
+ var $editor_buttons = $editor.find('.wp-media-buttons');
2222
+
2223
+ if( $editor_buttons.length ) {
2224
+
2225
+ $editor_buttons.find('.csf-shortcode-button').data('editor-id', uid);
2226
+
2227
+ } else {
2228
+
2229
+ var $media_buttons = $(window.csf_media_buttons);
2230
+
2231
+ $media_buttons.find('.csf-shortcode-button').data('editor-id', uid);
2232
+
2233
+ $editor.prepend( $media_buttons );
2234
+
2235
+ }
2236
+
2237
+ }
2238
+
2239
+ });
2240
+
2241
+ };
2242
+
2243
+ //
2244
+ // Confirm
2245
+ //
2246
+ $.fn.csf_confirm = function() {
2247
+ return this.each( function() {
2248
+ $(this).on('click', function( e ) {
2249
+
2250
+ var confirm_text = $(this).data('confirm') || window.csf_vars.i18n.confirm;
2251
+ var confirm_answer = confirm( confirm_text );
2252
+ CSF.vars.is_confirm = true;
2253
+
2254
+ if( !confirm_answer ) {
2255
+ e.preventDefault();
2256
+ CSF.vars.is_confirm = false;
2257
+ return false;
2258
+ }
2259
+
2260
+ });
2261
+ });
2262
+ };
2263
+
2264
+ $.fn.serializeObject = function(){
2265
+
2266
+ var obj = {};
2267
+
2268
+ $.each( this.serializeArray(), function(i,o){
2269
+ var n = o.name,
2270
+ v = o.value;
2271
+
2272
+ obj[n] = obj[n] === undefined ? v
2273
+ : $.isArray( obj[n] ) ? obj[n].concat( v )
2274
+ : [ obj[n], v ];
2275
+ });
2276
+
2277
+ return obj;
2278
+
2279
+ };
2280
+
2281
+ //
2282
+ // Options Save
2283
+ //
2284
+ $.fn.csf_save = function() {
2285
+ return this.each( function() {
2286
+
2287
+ var $this = $(this),
2288
+ $buttons = $('.csf-save'),
2289
+ $panel = $('.csf-options'),
2290
+ flooding = false,
2291
+ timeout;
2292
+
2293
+ $this.on('click', function( e ) {
2294
+
2295
+ if( !flooding ) {
2296
+
2297
+ var $text = $this.data('save'),
2298
+ $value = $this.val();
2299
+
2300
+ $buttons.attr('value', $text);
2301
+
2302
+ if( $this.hasClass('csf-save-ajax') ) {
2303
+
2304
+ e.preventDefault();
2305
+
2306
+ $panel.addClass('csf-saving');
2307
+ $buttons.prop('disabled', true);
2308
+
2309
+ window.wp.ajax.post( 'csf_'+ $panel.data('unique') +'_ajax_save', {
2310
+ data: $('#csf-form').serializeJSONCSF()
2311
+ })
2312
+ .done( function( response ) {
2313
+
2314
+ // clear errors
2315
+ $('.csf-error').remove();
2316
+
2317
+ if( Object.keys( response.errors ).length ) {
2318
+
2319
+ var error_icon = '<i class="csf-label-error csf-error">!</i>';
2320
+
2321
+ $.each(response.errors, function( key, error_message ) {
2322
+
2323
+ var $field = $('[data-depend-id="'+ key +'"]'),
2324
+ $link = $('#csf-tab-link-'+ ($field.closest('.csf-section').index()+1)),
2325
+ $tab = $link.closest('.csf-tab-depth-0');
2326
+
2327
+ $field.closest('.csf-fieldset').append( '<p class="csf-text-error csf-error">'+ error_message +'</p>' );
2328
+
2329
+ if( !$link.find('.csf-error').length ) {
2330
+ $link.append( error_icon );
2331
+ }
2332
+
2333
+ if( !$tab.find('.csf-arrow .csf-error').length ) {
2334
+ $tab.find('.csf-arrow').append( error_icon );
2335
+ }
2336
+
2337
+ console.log(error_message);
2338
+
2339
+ });
2340
+
2341
+ }
2342
+
2343
+ $panel.removeClass('csf-saving');
2344
+ $buttons.prop('disabled', false).attr('value', $value);
2345
+ flooding = false;
2346
+
2347
+ CSF.vars.form_modified = false;
2348
+ CSF.vars.$form_warning.hide();
2349
+
2350
+ clearTimeout(timeout);
2351
+
2352
+ var $result_success = $('.csf-form-success');
2353
+ $result_success.empty().append(response.notice).fadeIn('fast', function() {
2354
+ timeout = setTimeout( function() {
2355
+ $result_success.fadeOut('fast');
2356
+ }, 1000);
2357
+ });
2358
+
2359
+ })
2360
+ .fail( function( response ) {
2361
+ alert( response.error );
2362
+ });
2363
+
2364
+ }
2365
+
2366
+ }
2367
+
2368
+ flooding = true;
2369
+
2370
+ });
2371
+
2372
+ });
2373
+ };
2374
+
2375
+ //
2376
+ // Option Framework
2377
+ //
2378
+ $.fn.csf_options = function() {
2379
+ return this.each( function() {
2380
+
2381
+ var $this = $(this),
2382
+ $content = $this.find('.csf-content'),
2383
+ $form_success = $this.find('.csf-form-success'),
2384
+ $form_warning = $this.find('.csf-form-warning'),
2385
+ $save_button = $this.find('.csf-header .csf-save');
2386
+
2387
+ CSF.vars.$form_warning = $form_warning;
2388
+
2389
+ // Shows a message white leaving theme options without saving
2390
+ if( $form_warning.length ) {
2391
+
2392
+ window.onbeforeunload = function() {
2393
+ return ( CSF.vars.form_modified ) ? true : undefined;
2394
+ };
2395
+
2396
+ $content.on('change keypress', ':input', function() {
2397
+ if( !CSF.vars.form_modified ) {
2398
+ $form_success.hide();
2399
+ $form_warning.fadeIn('fast');
2400
+ CSF.vars.form_modified = true;
2401
+ }
2402
+ });
2403
+
2404
+ }
2405
+
2406
+ if( $form_success.hasClass('csf-form-show') ) {
2407
+ setTimeout( function() {
2408
+ $form_success.fadeOut('fast');
2409
+ }, 1000);
2410
+ }
2411
+
2412
+ $(document).keydown(function (event) {
2413
+ if( ( event.ctrlKey || event.metaKey ) && event.which === 83 ) {
2414
+ $save_button.trigger('click');
2415
+ event.preventDefault();
2416
+ return false;
2417
+ }
2418
+ });
2419
+
2420
+ });
2421
+ };
2422
+
2423
+ //
2424
+ // Taxonomy Framework
2425
+ //
2426
+ $.fn.csf_taxonomy = function() {
2427
+ return this.each( function() {
2428
+
2429
+ var $this = $(this),
2430
+ $form = $this.parents('form');
2431
+
2432
+ if( $form.attr('id') === 'addtag' ) {
2433
+
2434
+ var $submit = $form.find('#submit'),
2435
+ $cloned = $this.find('.csf-field').csf_clone();
2436
+
2437
+ $submit.on( 'click', function() {
2438
+
2439
+ if( !$form.find('.form-required').hasClass('form-invalid') ) {
2440
+
2441
+ $this.data('inited', false);
2442
+
2443
+ $this.empty();
2444
+
2445
+ $this.html( $cloned );
2446
+
2447
+ $cloned = $cloned.csf_clone();
2448
+
2449
+ $this.csf_reload_script();
2450
+
2451
+ }
2452
+
2453
+ });
2454
+
2455
+ }
2456
+
2457
+ });
2458
+ };
2459
+
2460
+ //
2461
+ // Shortcode Framework
2462
+ //
2463
+ $.fn.csf_shortcode = function() {
2464
+
2465
+ var base = this;
2466
+
2467
+ base.shortcode_parse = function( serialize, key ) {
2468
+
2469
+ var shortcode = '';
2470
+
2471
+ $.each(serialize, function( shortcode_key, shortcode_values ) {
2472
+
2473
+ key = ( key ) ? key : shortcode_key;
2474
+
2475
+ shortcode += '[' + key;
2476
+
2477
+ $.each(shortcode_values, function( shortcode_tag, shortcode_value ) {
2478
+
2479
+ if( shortcode_tag === 'content' ) {
2480
+
2481
+ shortcode += ']';
2482
+ shortcode += shortcode_value;
2483
+ shortcode += '[/'+ key +'';
2484
+
2485
+ } else {
2486
+
2487
+ shortcode += base.shortcode_tags( shortcode_tag, shortcode_value );
2488
+
2489
+ }
2490
+
2491
+ });
2492
+
2493
+ shortcode += ']';
2494
+
2495
+ });
2496
+
2497
+ return shortcode;
2498
+
2499
+ };
2500
+
2501
+ base.shortcode_tags = function( shortcode_tag, shortcode_value ) {
2502
+
2503
+ var shortcode = '';
2504
+
2505
+ if( shortcode_value !== '' ) {
2506
+
2507
+ if( typeof shortcode_value === 'object' && !$.isArray( shortcode_value ) ) {
2508
+
2509
+ $.each(shortcode_value, function( sub_shortcode_tag, sub_shortcode_value ) {
2510
+
2511
+ // sanitize spesific key/value
2512
+ switch( sub_shortcode_tag ) {
2513
+
2514
+ case 'background-image':
2515
+ sub_shortcode_value = ( sub_shortcode_value.url ) ? sub_shortcode_value.url : '';
2516
+ break;
2517
+
2518
+ }
2519
+
2520
+ if( sub_shortcode_value !== '' ) {
2521
+ shortcode += ' ' + sub_shortcode_tag.replace('-', '_') + '="' + sub_shortcode_value.toString() + '"';
2522
+ }
2523
+
2524
+ });
2525
+
2526
+ } else {
2527
+
2528
+ shortcode += ' ' + shortcode_tag.replace('-', '_') + '="' + shortcode_value.toString() + '"';
2529
+
2530
+ }
2531
+
2532
+ }
2533
+
2534
+ return shortcode;
2535
+
2536
+ };
2537
+
2538
+ base.insertAtChars = function( _this, currentValue ) {
2539
+
2540
+ var obj = ( typeof _this[0].name !== 'undefined' ) ? _this[0] : _this;
2541
+
2542
+ if( obj.value.length && typeof obj.selectionStart !== 'undefined' ) {
2543
+ obj.focus();
2544
+ return obj.value.substring( 0, obj.selectionStart ) + currentValue + obj.value.substring( obj.selectionEnd, obj.value.length );
2545
+ } else {
2546
+ obj.focus();
2547
+ return currentValue;
2548
+ }
2549
+
2550
+ };
2551
+
2552
+ base.send_to_editor = function( html, editor_id ) {
2553
+
2554
+ var tinymce_editor;
2555
+
2556
+ if( typeof tinymce !== 'undefined' ) {
2557
+ tinymce_editor = tinymce.get( editor_id );
2558
+ }
2559
+
2560
+ if( tinymce_editor && !tinymce_editor.isHidden() ) {
2561
+ tinymce_editor.execCommand( 'mceInsertContent', false, html );
2562
+ } else {
2563
+ var $editor = $('#'+editor_id);
2564
+ $editor.val( base.insertAtChars( $editor, html ) ).trigger('change');
2565
+ }
2566
+
2567
+ };
2568
+
2569
+ return this.each( function() {
2570
+
2571
+ var $modal = $(this),
2572
+ $load = $modal.find('.csf-modal-load'),
2573
+ $content = $modal.find('.csf-modal-content'),
2574
+ $insert = $modal.find('.csf-modal-insert'),
2575
+ $loading = $modal.find('.csf-modal-loading'),
2576
+ $select = $modal.find('select'),
2577
+ modal_id = $modal.data('modal-id'),
2578
+ nonce = $modal.data('nonce'),
2579
+ editor_id,
2580
+ target_id,
2581
+ sc_key,
2582
+ sc_name,
2583
+ sc_view,
2584
+ sc_group,
2585
+ $cloned,
2586
+ $button;
2587
+
2588
+ $(document).on('click', '.csf-shortcode-button[data-modal-id="'+ modal_id +'"]', function( e ) {
2589
+
2590
+ e.preventDefault();
2591
+
2592
+ $button = $(this);
2593
+ editor_id = $button.data('editor-id') || false;
2594
+ target_id = $button.data('target-id') || false;
2595
+
2596
+ $modal.show();
2597
+
2598
+ // single usage trigger first shortcode
2599
+ if( $modal.hasClass('csf-shortcode-single') && sc_name === undefined ) {
2600
+ $select.trigger('change');
2601
+ }
2602
+
2603
+ });
2604
+
2605
+ $select.on( 'change', function() {
2606
+
2607
+ var $option = $(this);
2608
+ var $selected = $option.find(':selected');
2609
+
2610
+ sc_key = $option.val();
2611
+ sc_name = $selected.data('shortcode');
2612
+ sc_view = $selected.data('view') || 'normal';
2613
+ sc_group = $selected.data('group') || sc_name;
2614
+
2615
+ $load.empty();
2616
+
2617
+ if( sc_key ) {
2618
+
2619
+ $loading.show();
2620
+
2621
+ window.wp.ajax.post( 'csf-get-shortcode-'+ modal_id, {
2622
+ shortcode_key: sc_key,
2623
+ nonce: nonce
2624
+ })
2625
+ .done( function( response ) {
2626
+
2627
+ $loading.hide();
2628
+
2629
+ var $appended = $(response.content).appendTo($load);
2630
+
2631
+ $insert.parent().removeClass('hidden');
2632
+
2633
+ $cloned = $appended.find('.csf--repeat-shortcode').csf_clone();
2634
+
2635
+ $appended.csf_reload_script();
2636
+ $appended.find('.csf-fields').csf_reload_script();
2637
+
2638
+ });
2639
+
2640
+ } else {
2641
+
2642
+ $insert.parent().addClass('hidden');
2643
+
2644
+ }
2645
+
2646
+ });
2647
+
2648
+ $insert.on('click', function( e ) {
2649
+
2650
+ e.preventDefault();
2651
+
2652
+ if( $insert.prop('disabled') || $insert.attr('disabled') ) { return; }
2653
+
2654
+ var shortcode = '';
2655
+ var serialize = $modal.find('.csf-field:not(.hidden)').find(':input:not(.ignore)').serializeObjectCSF();
2656
+
2657
+ switch ( sc_view ) {
2658
+
2659
+ case 'contents':
2660
+ var contentsObj = ( sc_name ) ? serialize[sc_name] : serialize;
2661
+ $.each(contentsObj, function( sc_key, sc_value ) {
2662
+ var sc_tag = ( sc_name ) ? sc_name : sc_key;
2663
+ shortcode += '['+ sc_tag +']'+ sc_value +'[/'+ sc_tag +']';
2664
+ });
2665
+ break;
2666
+
2667
+ case 'group':
2668
+
2669
+ shortcode += '[' + sc_name;
2670
+ $.each(serialize[sc_name], function( sc_key, sc_value ) {
2671
+ shortcode += base.shortcode_tags( sc_key, sc_value );
2672
+ });
2673
+ shortcode += ']';
2674
+ shortcode += base.shortcode_parse( serialize[sc_group], sc_group );
2675
+ shortcode += '[/' + sc_name + ']';
2676
+
2677
+ break;
2678
+
2679
+ case 'repeater':
2680
+ shortcode += base.shortcode_parse( serialize[sc_group], sc_group );
2681
+ break;
2682
+
2683
+ default:
2684
+ shortcode += base.shortcode_parse( serialize );
2685
+ break;
2686
+
2687
+ }
2688
+
2689
+ shortcode = ( shortcode === '' ) ? '['+ sc_name +']' : shortcode;
2690
+
2691
+ if( editor_id ) {
2692
+
2693
+ base.send_to_editor( shortcode, editor_id );
2694
+
2695
+ } else {
2696
+
2697
+ var $textarea = (target_id) ? $(target_id) : $button.parent().find('textarea');
2698
+ $textarea.val( base.insertAtChars( $textarea, shortcode ) ).trigger('change');
2699
+
2700
+ }
2701
+
2702
+ $modal.hide();
2703
+
2704
+ });
2705
+
2706
+ $modal.on('click', '.csf--repeat-button', function( e ) {
2707
+
2708
+ e.preventDefault();
2709
+
2710
+ var $repeatable = $modal.find('.csf--repeatable');
2711
+ var $new_clone = $cloned.csf_clone();
2712
+ var $remove_btn = $new_clone.find('.csf-repeat-remove');
2713
+
2714
+ var $appended = $new_clone.appendTo( $repeatable );
2715
+
2716
+ $new_clone.find('.csf-fields').csf_reload_script();
2717
+
2718
+ CSF.helper.name_nested_replace( $modal.find('.csf--repeat-shortcode'), sc_group );
2719
+
2720
+ $remove_btn.on('click', function() {
2721
+
2722
+ $new_clone.remove();
2723
+
2724
+ CSF.helper.name_nested_replace( $modal.find('.csf--repeat-shortcode'), sc_group );
2725
+
2726
+ });
2727
+
2728
+ });
2729
+
2730
+ $modal.on('click', '.csf-modal-close, .csf-modal-overlay', function() {
2731
+ $modal.hide();
2732
+ });
2733
+
2734
+ });
2735
+ };
2736
+
2737
+ //
2738
+ // WP Color Picker
2739
+ //
2740
+ if( typeof Color === 'function' ) {
2741
+
2742
+ Color.fn.toString = function() {
2743
+
2744
+ if( this._alpha < 1 ) {
2745
+ return this.toCSS('rgba', this._alpha).replace(/\s+/g, '');
2746
+ }
2747
+
2748
+ var hex = parseInt( this._color, 10 ).toString( 16 );
2749
+
2750
+ if( this.error ) { return ''; }
2751
+
2752
+ if( hex.length < 6 ) {
2753
+ for (var i = 6 - hex.length - 1; i >= 0; i--) {
2754
+ hex = '0' + hex;
2755
+ }
2756
+ }
2757
+
2758
+ return '#' + hex;
2759
+
2760
+ };
2761
+
2762
+ }
2763
+
2764
+ CSF.funcs.parse_color = function( color ) {
2765
+
2766
+ var value = color.replace(/\s+/g, ''),
2767
+ trans = ( value.indexOf('rgba') !== -1 ) ? parseFloat( value.replace(/^.*,(.+)\)/, '$1') * 100 ) : 100,
2768
+ rgba = ( trans < 100 ) ? true : false;
2769
+
2770
+ return { value: value, transparent: trans, rgba: rgba };
2771
+
2772
+ };
2773
+
2774
+ $.fn.csf_color = function() {
2775
+ return this.each( function() {
2776
+
2777
+ var $input = $(this),
2778
+ picker_color = CSF.funcs.parse_color( $input.val() ),
2779
+ palette_color = window.csf_vars.color_palette.length ? window.csf_vars.color_palette : true,
2780
+ $container;
2781
+
2782
+ // Destroy and Reinit
2783
+ if( $input.hasClass('wp-color-picker') ) {
2784
+ $input.closest('.wp-picker-container').after($input).remove();
2785
+ }
2786
+
2787
+ $input.wpColorPicker({
2788
+ palettes: palette_color,
2789
+ change: function( event, ui ) {
2790
+
2791
+ var ui_color_value = ui.color.toString();
2792
+
2793
+ $container.removeClass('csf--transparent-active');
2794
+ $container.find('.csf--transparent-offset').css('background-color', ui_color_value);
2795
+ $input.val(ui_color_value).trigger('change');
2796
+
2797
+ },
2798
+ create: function() {
2799
+
2800
+ $container = $input.closest('.wp-picker-container');
2801
+
2802
+ var a8cIris = $input.data('a8cIris'),
2803
+ $transparent_wrap = $('<div class="csf--transparent-wrap">' +
2804
+ '<div class="csf--transparent-slider"></div>' +
2805
+ '<div class="csf--transparent-offset"></div>' +
2806
+ '<div class="csf--transparent-text"></div>' +
2807
+ '<div class="csf--transparent-button">transparent <i class="fa fa-toggle-off"></i></div>' +
2808
+ '</div>').appendTo( $container.find('.wp-picker-holder') ),
2809
+ $transparent_slider = $transparent_wrap.find('.csf--transparent-slider'),
2810
+ $transparent_text = $transparent_wrap.find('.csf--transparent-text'),
2811
+ $transparent_offset = $transparent_wrap.find('.csf--transparent-offset'),
2812
+ $transparent_button = $transparent_wrap.find('.csf--transparent-button');
2813
+
2814
+ if( $input.val() === 'transparent' ) {
2815
+ $container.addClass('csf--transparent-active');
2816
+ }
2817
+
2818
+ $transparent_button.on('click', function() {
2819
+ if( $input.val() !== 'transparent' ) {
2820
+ $input.val('transparent').trigger('change').removeClass('iris-error');
2821
+ $container.addClass('csf--transparent-active');
2822
+ } else {
2823
+ $input.val( a8cIris._color.toString() ).trigger('change');
2824
+ $container.removeClass('csf--transparent-active');
2825
+ }
2826
+ });
2827
+
2828
+ $transparent_slider.slider({
2829
+ value: picker_color.transparent,
2830
+ step: 1,
2831
+ min: 0,
2832
+ max: 100,
2833
+ slide: function( event, ui ) {
2834
+
2835
+ var slide_value = parseFloat( ui.value / 100 );
2836
+ a8cIris._color._alpha = slide_value;
2837
+ $input.wpColorPicker( 'color', a8cIris._color.toString() );
2838
+ $transparent_text.text( ( slide_value === 1 || slide_value === 0 ? '' : slide_value ) );
2839
+
2840
+ },
2841
+ create: function() {
2842
+
2843
+ var slide_value = parseFloat( picker_color.transparent / 100 ),
2844
+ text_value = slide_value < 1 ? slide_value : '';
2845
+
2846
+ $transparent_text.text(text_value);
2847
+ $transparent_offset.css('background-color', picker_color.value);
2848
+
2849
+ $container.on('click', '.wp-picker-clear', function() {
2850
+
2851
+ a8cIris._color._alpha = 1;
2852
+ $transparent_text.text('');
2853
+ $transparent_slider.slider('option', 'value', 100);
2854
+ $container.removeClass('csf--transparent-active');
2855
+ $input.trigger('change');
2856
+
2857
+ });
2858
+
2859
+ $container.on('click', '.wp-picker-default', function() {
2860
+
2861
+ var default_color = CSF.funcs.parse_color( $input.data('default-color') ),
2862
+ default_value = parseFloat( default_color.transparent / 100 ),
2863
+ default_text = default_value < 1 ? default_value : '';
2864
+
2865
+ a8cIris._color._alpha = default_value;
2866
+ $transparent_text.text(default_text);
2867
+ $transparent_slider.slider('option', 'value', default_color.transparent);
2868
+
2869
+ });
2870
+
2871
+ }
2872
+ });
2873
+ }
2874
+ });
2875
+
2876
+ });
2877
+ };
2878
+
2879
+ //
2880
+ // ChosenJS
2881
+ //
2882
+ $.fn.csf_chosen = function() {
2883
+ return this.each( function() {
2884
+
2885
+ var $this = $(this),
2886
+ $inited = $this.parent().find('.chosen-container'),
2887
+ is_sortable = $this.hasClass('csf-chosen-sortable') || false,
2888
+ is_ajax = $this.hasClass('csf-chosen-ajax') || false,
2889
+ is_multiple = $this.attr('multiple') || false,
2890
+ set_width = is_multiple ? '100%' : 'auto',
2891
+ set_options = $.extend({
2892
+ allow_single_deselect: true,
2893
+ disable_search_threshold: 10,
2894
+ width: set_width,
2895
+ no_results_text: window.csf_vars.i18n.no_results_text,
2896
+ }, $this.data('chosen-settings'));
2897
+
2898
+ if( $inited.length ) {
2899
+ $inited.remove();
2900
+ }
2901
+
2902
+ // Chosen ajax
2903
+ if( is_ajax ) {
2904
+
2905
+ var set_ajax_options = $.extend({
2906
+ data: {
2907
+ type: 'post',
2908
+ nonce: '',
2909
+ },
2910
+ allow_single_deselect: true,
2911
+ disable_search_threshold: -1,
2912
+ width: '100%',
2913
+ min_length: 3,
2914
+ type_delay: 500,
2915
+ typing_text: window.csf_vars.i18n.typing_text,
2916
+ searching_text: window.csf_vars.i18n.searching_text,
2917
+ no_results_text: window.csf_vars.i18n.no_results_text,
2918
+ }, $this.data('chosen-settings'));
2919
+
2920
+ $this.CSFAjaxChosen(set_ajax_options);
2921
+
2922
+ } else {
2923
+
2924
+ $this.chosen(set_options);
2925
+
2926
+ }
2927
+
2928
+ // Chosen keep options order
2929
+ if( is_multiple ) {
2930
+
2931
+ var $hidden_select = $this.parent().find('.csf-hidden-select');
2932
+ var $hidden_value = $hidden_select.val() || [];
2933
+
2934
+ $this.on('change', function(obj, result) {
2935
+
2936
+ if( result && result.selected ) {
2937
+ $hidden_select.append( '<option value="'+ result.selected +'" selected="selected">'+ result.selected +'</option>' );
2938
+ } else if( result && result.deselected ) {
2939
+ $hidden_select.find('option[value="'+ result.deselected +'"]').remove();
2940
+ }
2941
+
2942
+ // Force customize refresh
2943
+ if( $hidden_select.children().length === 0 && window.wp.customize !== undefined ) {
2944
+ window.wp.customize.control( $hidden_select.data('customize-setting-link') ).setting.set('');
2945
+ }
2946
+
2947
+ $hidden_select.trigger('change');
2948
+
2949
+ });
2950
+
2951
+ // Chosen order abstract
2952
+ $this.CSFChosenOrder($hidden_value, true);
2953
+
2954
+ }
2955
+
2956
+ // Chosen sortable
2957
+ if( is_sortable ) {
2958
+
2959
+ var $chosen_container = $this.parent().find('.chosen-container');
2960
+ var $chosen_choices = $chosen_container.find('.chosen-choices');
2961
+
2962
+ $chosen_choices.bind('mousedown', function( event ) {
2963
+ if( $(event.target).is('span') ) {
2964
+ event.stopPropagation();
2965
+ }
2966
+ });
2967
+
2968
+ $chosen_choices.sortable({
2969
+ items: 'li:not(.search-field)',
2970
+ helper: 'orginal',
2971
+ cursor: 'move',
2972
+ placeholder: 'search-choice-placeholder',
2973
+ start: function(e,ui) {
2974
+ ui.placeholder.width( ui.item.innerWidth() );
2975
+ ui.placeholder.height( ui.item.innerHeight() );
2976
+ },
2977
+ update: function( e, ui ) {
2978
+
2979
+ var select_options = '';
2980
+ var chosen_object = $this.data('chosen');
2981
+ var $prev_select = $this.parent().find('.csf-hidden-select');
2982
+
2983
+ $chosen_choices.find('.search-choice-close').each( function() {
2984
+ var option_array_index = $(this).data('option-array-index');
2985
+ $.each(chosen_object.results_data, function(index, data) {
2986
+ if( data.array_index === option_array_index ){
2987
+ select_options += '<option value="'+ data.value +'" selected>'+ data.value +'</option>';
2988
+ }
2989
+ });
2990
+ });
2991
+
2992
+ $prev_select.children().remove();
2993
+ $prev_select.append(select_options);
2994
+ $prev_select.trigger('change');
2995
+
2996
+ }
2997
+ });
2998
+
2999
+ }
3000
+
3001
+ });
3002
+ };
3003
+
3004
+ //
3005
+ // Helper Checkbox Checker
3006
+ //
3007
+ $.fn.csf_checkbox = function() {
3008
+ return this.each( function() {
3009
+
3010
+ var $this = $(this),
3011
+ $input = $this.find('.csf--input'),
3012
+ $checkbox = $this.find('.csf--checkbox');
3013
+
3014
+ $checkbox.on('click', function() {
3015
+ $input.val( Number( $checkbox.prop('checked') ) ).trigger('change');
3016
+ });
3017
+
3018
+ });
3019
+ };
3020
+
3021
+ //
3022
+ // Siblings
3023
+ //
3024
+ $.fn.csf_siblings = function() {
3025
+ return this.each( function() {
3026
+
3027
+ var $this = $(this),
3028
+ $siblings = $this.find('.csf--sibling'),
3029
+ multiple = $this.data('multiple') || false;
3030
+
3031
+ $siblings.on('click', function() {
3032
+
3033
+ var $sibling = $(this);
3034
+
3035
+ if( multiple ) {
3036
+
3037
+ if( $sibling.hasClass('csf--active') ) {
3038
+ $sibling.removeClass('csf--active');
3039
+ $sibling.find('input').prop('checked', false).trigger('change');
3040
+ } else {
3041
+ $sibling.addClass('csf--active');
3042
+ $sibling.find('input').prop('checked', true).trigger('change');
3043
+ }
3044
+
3045
+ } else {
3046
+
3047
+ $this.find('input').prop('checked', false);
3048
+ $sibling.find('input').prop('checked', true).trigger('change');
3049
+ $sibling.addClass('csf--active').siblings().removeClass('csf--active');
3050
+
3051
+ }
3052
+
3053
+ });
3054
+
3055
+ });
3056
+ };
3057
+
3058
+ //
3059
+ // Help Tooltip
3060
+ //
3061
+ $.fn.csf_help = function() {
3062
+ return this.each( function() {
3063
+
3064
+ var $this = $(this),
3065
+ $tooltip,
3066
+ offset_left;
3067
+
3068
+ $this.on({
3069
+ mouseenter: function() {
3070
+
3071
+ $tooltip = $( '<div class="csf-tooltip"></div>' ).html( $this.find('.csf-help-text').html() ).appendTo('body');
3072
+ offset_left = ( CSF.vars.is_rtl ) ? ( $this.offset().left + 24 ) : ( $this.offset().left - $tooltip.outerWidth() );
3073
+
3074
+ $tooltip.css({
3075
+ top: $this.offset().top - ( ( $tooltip.outerHeight() / 2 ) - 14 ),
3076
+ left: offset_left,
3077
+ });
3078
+
3079
+ },
3080
+ mouseleave: function() {
3081
+
3082
+ if( $tooltip !== undefined ) {
3083
+ $tooltip.remove();
3084
+ }
3085
+
3086
+ }
3087
+
3088
+ });
3089
+
3090
+ });
3091
+ };
3092
+
3093
+ //
3094
+ // Customize Refresh
3095
+ //
3096
+ $.fn.csf_customizer_refresh = function() {
3097
+ return this.each( function() {
3098
+
3099
+ var $this = $(this),
3100
+ $complex = $this.closest('.csf-customize-complex');
3101
+
3102
+ if( $complex.length ) {
3103
+
3104
+ var $input = $complex.find(':input'),
3105
+ $unique = $complex.data('unique-id'),
3106
+ $option = $complex.data('option-id'),
3107
+ obj = $input.serializeObjectCSF(),
3108
+ data = ( !$.isEmptyObject(obj) ) ? obj[$unique][$option] : '',
3109
+ control = window.wp.customize.control($unique +'['+ $option +']');
3110
+
3111
+ // clear the value to force refresh.
3112
+ control.setting._value = null;
3113
+
3114
+ control.setting.set( data );
3115
+
3116
+ } else {
3117
+
3118
+ $this.find(':input').first().trigger('change');
3119
+
3120
+ }
3121
+
3122
+ $(document).trigger('csf-customizer-refresh', $this);
3123
+
3124
+ });
3125
+ };
3126
+
3127
+ //
3128
+ // Customize Listen Form Elements
3129
+ //
3130
+ $.fn.csf_customizer_listen = function( options ) {
3131
+
3132
+ var settings = $.extend({
3133
+ closest: false,
3134
+ }, options );
3135
+
3136
+ return this.each( function() {
3137
+
3138
+ if( window.wp.customize === undefined ) { return; }
3139
+
3140
+ var $this = ( settings.closest ) ? $(this).closest('.csf-customize-complex') : $(this),
3141
+ $input = $this.find(':input'),
3142
+ unique_id = $this.data('unique-id'),
3143
+ option_id = $this.data('option-id');
3144
+
3145
+ if( unique_id === undefined ) { return; }
3146
+
3147
+ $input.on('change keyup', CSF.helper.debounce( function() {
3148
+
3149
+ var obj = $this.find(':input').serializeObjectCSF();
3150
+ var val = ( !$.isEmptyObject(obj) && obj[unique_id] && obj[unique_id][option_id] ) ? obj[unique_id][option_id] : '';
3151
+
3152
+ window.wp.customize.control( unique_id +'['+ option_id +']' ).setting.set( val );
3153
+
3154
+ }, 250 ) );
3155
+
3156
+ });
3157
+ };
3158
+
3159
+ //
3160
+ // Customizer Listener for Reload JS
3161
+ //
3162
+ $(document).on('expanded', '.control-section', function() {
3163
+
3164
+ var $this = $(this);
3165
+
3166
+ if( $this.hasClass('open') && !$this.data('inited') ) {
3167
+
3168
+ var $fields = $this.find('.csf-customize-field');
3169
+ var $complex = $this.find('.csf-customize-complex');
3170
+
3171
+ if( $fields.length ) {
3172
+ $this.csf_dependency();
3173
+ $fields.csf_reload_script({dependency: false});
3174
+ $complex.csf_customizer_listen();
3175
+ }
3176
+
3177
+ $this.data('inited', true);
3178
+
3179
+ }
3180
+
3181
+ });
3182
+
3183
+ //
3184
+ // Window on resize
3185
+ //
3186
+ CSF.vars.$window.on('resize csf.resize', CSF.helper.debounce( function( event ) {
3187
+
3188
+ var window_width = navigator.userAgent.indexOf('AppleWebKit/') > -1 ? CSF.vars.$window.width() : window.innerWidth;
3189
+
3190
+ if( window_width <= 782 && !CSF.vars.onloaded ) {
3191
+ $('.csf-section').csf_reload_script();
3192
+ CSF.vars.onloaded = true;
3193
+ }
3194
+
3195
+ }, 200)).trigger('csf.resize');
3196
+
3197
+ //
3198
+ // Widgets Framework
3199
+ //
3200
+ $.fn.csf_widgets = function() {
3201
+ if( this.length ) {
3202
+
3203
+ $(document).on('widget-added widget-updated', function( event, $widget ) {
3204
+ $widget.find('.csf-fields').csf_reload_script();
3205
+ });
3206
+
3207
+ $('.widgets-sortables, .control-section-sidebar').on('sortstop', function( event, ui ) {
3208
+ ui.item.find('.csf-fields').csf_reload_script_retry();
3209
+ });
3210
+
3211
+ $(document).on('click', '.widget-top', function( event ) {
3212
+ $(this).parent().find('.csf-fields').csf_reload_script();
3213
+ });
3214
+
3215
+ }
3216
+ };
3217
+
3218
+ //
3219
+ // Retry Plugins
3220
+ //
3221
+ $.fn.csf_reload_script_retry = function() {
3222
+ return this.each( function() {
3223
+
3224
+ var $this = $(this);
3225
+
3226
+ if( $this.data('inited') ) {
3227
+ $this.children('.csf-field-wp_editor').csf_field_wp_editor();
3228
+ }
3229
+
3230
+ });
3231
+ };
3232
+
3233
+ //
3234
+ // Reload Plugins
3235
+ //
3236
+ $.fn.csf_reload_script = function( options ) {
3237
+
3238
+ var settings = $.extend({
3239
+ dependency: true,
3240
+ }, options );
3241
+
3242
+ return this.each( function() {
3243
+
3244
+ var $this = $(this);
3245
+
3246
+ // Avoid for conflicts
3247
+ if( !$this.data('inited') ) {
3248
+
3249
+ // Field plugins
3250
+ $this.children('.csf-field-accordion').csf_field_accordion();
3251
+ $this.children('.csf-field-backup').csf_field_backup();
3252
+ $this.children('.csf-field-background').csf_field_background();
3253
+ $this.children('.csf-field-code_editor').csf_field_code_editor();
3254
+ $this.children('.csf-field-date').csf_field_date();
3255
+ $this.children('.csf-field-fieldset').csf_field_fieldset();
3256
+ $this.children('.csf-field-gallery').csf_field_gallery();
3257
+ $this.children('.csf-field-group').csf_field_group();
3258
+ $this.children('.csf-field-icon').csf_field_icon();
3259
+ $this.children('.csf-field-media').csf_field_media();
3260
+ $this.children('.csf-field-map').csf_field_map();
3261
+ $this.children('.csf-field-repeater').csf_field_repeater();
3262
+ $this.children('.csf-field-slider').csf_field_slider();
3263
+ $this.children('.csf-field-sortable').csf_field_sortable();
3264
+ $this.children('.csf-field-sorter').csf_field_sorter();
3265
+ $this.children('.csf-field-spinner').csf_field_spinner();
3266
+ $this.children('.csf-field-switcher').csf_field_switcher();
3267
+ $this.children('.csf-field-tabbed').csf_field_tabbed();
3268
+ $this.children('.csf-field-typography').csf_field_typography();
3269
+ $this.children('.csf-field-upload').csf_field_upload();
3270
+ $this.children('.csf-field-wp_editor').csf_field_wp_editor();
3271
+
3272
+ // Field colors
3273
+ $this.children('.csf-field-border').find('.csf-color').csf_color();
3274
+ $this.children('.csf-field-background').find('.csf-color').csf_color();
3275
+ $this.children('.csf-field-color').find('.csf-color').csf_color();
3276
+ $this.children('.csf-field-color_group').find('.csf-color').csf_color();
3277
+ $this.children('.csf-field-link_color').find('.csf-color').csf_color();
3278
+ $this.children('.csf-field-typography').find('.csf-color').csf_color();
3279
+
3280
+ // Field chosenjs
3281
+ $this.children('.csf-field-select').find('.csf-chosen').csf_chosen();
3282
+
3283
+ // Field Checkbox
3284
+ $this.children('.csf-field-checkbox').find('.csf-checkbox').csf_checkbox();
3285
+
3286
+ // Field Siblings
3287
+ $this.children('.csf-field-button_set').find('.csf-siblings').csf_siblings();
3288
+ $this.children('.csf-field-image_select').find('.csf-siblings').csf_siblings();
3289
+ $this.children('.csf-field-palette').find('.csf-siblings').csf_siblings();
3290
+
3291
+ // Help Tooptip
3292
+ $this.children('.csf-field').find('.csf-help').csf_help();
3293
+
3294
+ if( settings.dependency ) {
3295
+ $this.csf_dependency();
3296
+ }
3297
+
3298
+ $this.data('inited', true);
3299
+
3300
+ $(document).trigger('csf-reload-script', $this);
3301
+
3302
+ }
3303
+
3304
+ });
3305
+ };
3306
+
3307
+ //
3308
+ // Document ready and run scripts
3309
+ //
3310
+ $(document).ready( function() {
3311
+
3312
+ $('.csf-save').csf_save();
3313
+ $('.csf-options').csf_options();
3314
+ $('.csf-sticky-header').csf_sticky();
3315
+ $('.csf-nav-options').csf_nav_options();
3316
+ $('.csf-nav-metabox').csf_nav_metabox();
3317
+ $('.csf-taxonomy').csf_taxonomy();
3318
+ $('.csf-page-templates').csf_page_templates();
3319
+ $('.csf-post-formats').csf_post_formats();
3320
+ $('.csf-shortcode').csf_shortcode();
3321
+ $('.csf-search').csf_search();
3322
+ $('.csf-confirm').csf_confirm();
3323
+ $('.csf-expand-all').csf_expand_all();
3324
+ $('.csf-onload').csf_reload_script();
3325
+ $('.widget').csf_widgets();
3326
+
3327
+ });
3328
+
3329
+ })( jQuery, window, document );
admin/views/framework/assets/js/csf.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function($,window,document,undefined){"use strict";var CSF=CSF||{};CSF.funcs={},CSF.vars={onloaded:!1,$body:$("body"),$window:$(window),$document:$(document),$form_warning:null,form_modified:!1,code_themes:[],is_rtl:$("body").hasClass("rtl")},CSF.helper={uid:function(prefix){return(prefix||"")+Math.random().toString(36).substr(2,9)},preg_quote:function(str){return(str+"").replace(/(\[|\-|\])/g,"\\$1")},name_nested_replace:function($selector,field_id){var checks=[],regex=new RegExp("("+CSF.helper.preg_quote(field_id)+")\\[(\\d+)\\]","g");$selector.find(":radio").each((function(){(this.checked||this.orginal_checked)&&(this.orginal_checked=!0)})),$selector.each((function(index){$(this).find(":input").each((function(){this.name=this.name.replace(regex,field_id+"["+index+"]"),this.orginal_checked&&(this.checked=!0)}))}))},debounce:function(callback,threshold,immediate){var timeout;return function(){var context=this,args=arguments,later=function(){timeout=null,immediate||callback.apply(context,args)},callNow=immediate&&!timeout;clearTimeout(timeout),timeout=setTimeout(later,threshold),callNow&&callback.apply(context,args)}},get_cookie:function(name){var e,b,cookie=document.cookie,p=name+"=";if(cookie){if(-1===(b=cookie.indexOf("; "+p))){if(0!==(b=cookie.indexOf(p)))return null}else b+=2;return-1===(e=cookie.indexOf(";",b))&&(e=cookie.length),decodeURIComponent(cookie.substring(b+p.length,e))}},set_cookie:function(name,value,expires,path,domain,secure){var d=new Date;"object"==typeof expires&&expires.toGMTString?expires=expires.toGMTString():parseInt(expires,10)?(d.setTime(d.getTime()+1e3*parseInt(expires,10)),expires=d.toGMTString()):expires="",document.cookie=name+"="+encodeURIComponent(value)+(expires?"; expires="+expires:"")+(path?"; path="+path:"")+(domain?"; domain="+domain:"")+(secure?"; secure":"")},remove_cookie:function(name,path,domain,secure){CSF.helper.set_cookie(name,"",-1e3,path,domain,secure)}},$.fn.csf_clone=function(){for(var base=$.fn.clone.apply(this,arguments),clone=this.find("select").add(this.filter("select")),cloned=base.find("select").add(base.filter("select")),i=0;i<clone.length;++i)for(var j=0;j<clone[i].options.length;++j)!0===clone[i].options[j].selected&&(cloned[i].options[j].selected=!0);return this.find(":radio").each((function(){this.orginal_checked=this.checked})),base},$.fn.csf_expand_all=function(){return this.each((function(){$(this).on("click",(function(e){e.preventDefault(),$(".csf-wrapper").toggleClass("csf-show-all"),$(".csf-section").csf_reload_script(),$(this).find(".fa").toggleClass("fa-indent").toggleClass("fa-outdent")}))}))},$.fn.csf_nav_options=function(){return this.each((function(){var $nav=$(this),$links=$nav.find("a"),$hidden=$nav.closest(".csf").find(".csf-section-id"),$last_section;$(window).on("hashchange",(function(){var hash=window.location.hash.match(new RegExp("tab=([^&]*)")),slug=hash?hash[1]:$links.first().attr("href").replace("#tab=",""),$link=$("#csf-tab-link-"+slug);if($link.length>0){$link.closest(".csf-tab-depth-0").addClass("csf-tab-active").siblings().removeClass("csf-tab-active"),$links.removeClass("csf-section-active"),$link.addClass("csf-section-active"),void 0!==$last_section&&$last_section.hide();var $section=$("#csf-section-"+slug);$section.css({display:"block"}),$section.csf_reload_script(),$hidden.val(slug),$last_section=$section}})).trigger("hashchange")}))},$.fn.csf_nav_metabox=function(){return this.each((function(){var $nav=$(this),$links=$nav.find("a"),unique_id=$nav.data("unique"),post_id=$("#post_ID").val()||"global",$last_section,$last_link;$links.on("click",(function(e){e.preventDefault();var $link=$(this),section_id=$link.data("section");void 0!==$last_link&&$last_link.removeClass("csf-section-active"),void 0!==$last_section&&$last_section.hide(),$link.addClass("csf-section-active");var $section=$("#csf-section-"+section_id);$section.css({display:"block"}),$section.csf_reload_script(),CSF.helper.set_cookie("csf-last-metabox-tab-"+post_id+"-"+unique_id,section_id),$last_section=$section,$last_link=$link}));var get_cookie=CSF.helper.get_cookie("csf-last-metabox-tab-"+post_id+"-"+unique_id);get_cookie?$nav.find('a[data-section="'+get_cookie+'"]').trigger("click"):$links.first("a").trigger("click")}))},$.fn.csf_page_templates=function(){this.length&&$(document).on("change",".editor-page-attributes__template select, #page_template",(function(){var maybe_value=$(this).val()||"default";$(".csf-page-templates").removeClass("csf-show").addClass("csf-hide"),$(".csf-page-"+maybe_value.toLowerCase().replace(/[^a-zA-Z0-9]+/g,"-")).removeClass("csf-hide").addClass("csf-show")}))},$.fn.csf_post_formats=function(){this.length&&$(document).on("change",'.editor-post-format select, #formatdiv input[name="post_format"]',(function(){var maybe_value=$(this).val()||"default";maybe_value="0"===maybe_value?"default":maybe_value,$(".csf-post-formats").removeClass("csf-show").addClass("csf-hide"),$(".csf-post-format-"+maybe_value).removeClass("csf-hide").addClass("csf-show")}))},$.fn.csf_search=function(){return this.each((function(){var $this,$input;$(this).find("input").on("change keyup",(function(){var value=$(this).val(),$wrapper=$(".csf-wrapper"),$section,$fields=$wrapper.find(".csf-section").find("> .csf-field:not(.hidden)"),$titles=$fields.find("> .csf-title, .csf-search-tags");value.length>3?($fields.addClass("csf-hidden"),$wrapper.addClass("csf-search-all"),$titles.each((function(){var $title=$(this);if($title.text().match(new RegExp(".*?"+value+".*?","i"))){var $field=$title.closest(".csf-field");$field.removeClass("csf-hidden"),$field.parent().csf_reload_script()}}))):($fields.removeClass("csf-hidden"),$wrapper.removeClass("csf-search-all"))}))}))},$.fn.csf_sticky=function(){return this.each((function(){var $this=$(this),$window=$(window),$inner=$this.find(".csf-header-inner"),padding=parseInt($inner.css("padding-left"))+parseInt($inner.css("padding-right")),offset=32,scrollTop=0,lastTop=0,ticking=!1,stickyUpdate=function(){var offsetTop=$this.offset().top,stickyTop=Math.max(32,offsetTop-scrollTop),winWidth=Math.max(document.documentElement.clientWidth,window.innerWidth||0);stickyTop<=32&&winWidth>782?($inner.css({width:$this.outerWidth()-padding}),$this.css({height:$this.outerHeight()}).addClass("csf-sticky")):($inner.removeAttr("style"),$this.removeAttr("style").removeClass("csf-sticky"))},requestTick=function(){ticking||requestAnimationFrame((function(){stickyUpdate(),ticking=!1})),ticking=!0},onSticky=function(){scrollTop=$window.scrollTop(),requestTick()};$window.on("scroll resize",onSticky),onSticky()}))},$.fn.csf_dependency=function(){return this.each((function(){var $this=$(this),ruleset=$.csf_deps.createRuleset(),depends=[],is_global=!1;$this.children("[data-controller]").each((function(){var $field=$(this),controllers=$field.data("controller").split("|"),conditions=$field.data("condition").split("|"),values=$field.data("value").toString().split("|"),rules=ruleset;$field.data("depend-global")&&(is_global=!0),$.each(controllers,(function(index,depend_id){var value=values[index]||"",condition=conditions[index]||conditions[0];(rules=rules.createRule('[data-depend-id="'+depend_id+'"]',condition,value)).include($field),depends.push(depend_id)}))})),depends.length&&(is_global?$.csf_deps.enable(CSF.vars.$body,ruleset,depends):$.csf_deps.enable($this,ruleset,depends))}))},$.fn.csf_field_accordion=function(){return this.each((function(){var $titles;$(this).find(".csf-accordion-title").on("click",(function(){var $title=$(this),$icon=$title.find(".csf-accordion-icon"),$content=$title.next();$icon.hasClass("fa-angle-right")?$icon.removeClass("fa-angle-right").addClass("fa-angle-down"):$icon.removeClass("fa-angle-down").addClass("fa-angle-right"),$content.data("opened")||($content.csf_reload_script(),$content.data("opened",!0)),$content.toggleClass("csf-accordion-open")}))}))},$.fn.csf_field_backup=function(){return this.each((function(){if(void 0!==window.wp.customize){var base=this,$this=$(this),$body=$("body"),$import=$this.find(".csf-import"),$reset=$this.find(".csf-reset");base.notification=function(message_text){wp.customize.notifications&&wp.customize.OverlayNotification&&(wp.customize.state("saved").get()||(wp.customize.state("changesetStatus").set("trash"),wp.customize.each((function(setting){setting._dirty=!1})),wp.customize.state("saved").set(!0)),wp.customize.notifications.add(new wp.customize.OverlayNotification("csf_field_backup_notification",{type:"info",message:message_text,loading:!0})))},$reset.on("click",(function(e){e.preventDefault(),CSF.vars.is_confirm&&(base.notification(window.csf_vars.i18n.reset_notification),window.wp.ajax.post("csf-reset",{unique:$reset.data("unique"),nonce:$reset.data("nonce")}).done((function(response){window.location.reload(!0)})).fail((function(response){alert(response.error),wp.customize.notifications.remove("csf_field_backup_notification")})))})),$import.on("click",(function(e){e.preventDefault(),CSF.vars.is_confirm&&(base.notification(window.csf_vars.i18n.import_notification),window.wp.ajax.post("csf-import",{unique:$import.data("unique"),nonce:$import.data("nonce"),import_data:$this.find(".csf-import-data").val()}).done((function(response){window.location.reload(!0)})).fail((function(response){alert(response.error),wp.customize.notifications.remove("csf_field_backup_notification")})))}))}}))},$.fn.csf_field_background=function(){return this.each((function(){$(this).find(".csf--background-image").csf_reload_script()}))},$.fn.csf_field_code_editor=function(){return this.each((function(){if("function"==typeof CodeMirror){var $this=$(this),$textarea=$this.find("textarea"),$inited=$this.find(".CodeMirror"),data_editor=$textarea.data("editor");$inited.length&&$inited.remove();var interval=setInterval((function(){if($this.is(":visible")){var code_editor=CodeMirror.fromTextArea($textarea[0],data_editor);if("default"!==data_editor.theme&&-1===CSF.vars.code_themes.indexOf(data_editor.theme)){var $cssLink=$("<link>");$("#csf-codemirror-css").after($cssLink),$cssLink.attr({rel:"stylesheet",id:"csf-codemirror-"+data_editor.theme+"-css",href:data_editor.cdnURL+"/theme/"+data_editor.theme+".min.css",type:"text/css",media:"all"}),CSF.vars.code_themes.push(data_editor.theme)}CodeMirror.modeURL=data_editor.cdnURL+"/mode/%N/%N.min.js",CodeMirror.autoLoadMode(code_editor,data_editor.mode),code_editor.on("change",(function(editor,event){$textarea.val(code_editor.getValue()).trigger("change")})),clearInterval(interval)}}))}}))},$.fn.csf_field_date=function(){return this.each((function(){var $this=$(this),$inputs=$this.find("input"),settings=$this.find(".csf-date-settings").data("settings"),wrapper='<div class="csf-datepicker-wrapper"></div>',$datepicker,defaults={showAnim:"",beforeShow:function(input,inst){$(inst.dpDiv).addClass("csf-datepicker-wrapper")},onClose:function(input,inst){$(inst.dpDiv).removeClass("csf-datepicker-wrapper")}};settings=$.extend({},settings,defaults),2===$inputs.length&&(settings=$.extend({},settings,{onSelect:function(selectedDate){var $this=$(this),$from=$inputs.first(),option=$inputs.first().attr("id")===$(this).attr("id")?"minDate":"maxDate",date=$.datepicker.parseDate(settings.dateFormat,selectedDate);$inputs.not(this).datepicker("option",option,date)}})),$inputs.each((function(){var $input=$(this);$input.hasClass("hasDatepicker")&&$input.removeAttr("id").removeClass("hasDatepicker"),$input.datepicker(settings)}))}))},$.fn.csf_field_fieldset=function(){return this.each((function(){$(this).find(".csf-fieldset-content").csf_reload_script()}))},$.fn.csf_field_gallery=function(){return this.each((function(){var $this=$(this),$edit=$this.find(".csf-edit-gallery"),$clear=$this.find(".csf-clear-gallery"),$list=$this.find("ul"),$input=$this.find("input"),$img=$this.find("img"),wp_media_frame;$this.on("click",".csf-button, .csf-edit-gallery",(function(e){var $el=$(this),ids=$input.val(),what=$el.hasClass("csf-edit-gallery")?"edit":"add",state="add"!==what||ids.length?"gallery-edit":"gallery";e.preventDefault(),void 0!==window.wp&&window.wp.media&&window.wp.media.gallery&&("gallery"===state?(wp_media_frame=window.wp.media({library:{type:"image"},frame:"post",state:"gallery",multiple:!0})).open():(wp_media_frame=window.wp.media.gallery.edit('[gallery ids="'+ids+'"]'),"add"===what&&wp_media_frame.setState("gallery-library")),wp_media_frame.on("update",(function(selection){$list.empty();var selectedIds=selection.models.map((function(attachment){var item=attachment.toJSON(),thumb=item.sizes&&item.sizes.thumbnail&&item.sizes.thumbnail.url?item.sizes.thumbnail.url:item.url;return $list.append('<li><img src="'+thumb+'"></li>'),item.id}));$input.val(selectedIds.join(",")).trigger("change"),$clear.removeClass("hidden"),$edit.removeClass("hidden")})))})),$clear.on("click",(function(e){e.preventDefault(),$list.empty(),$input.val("").trigger("change"),$clear.addClass("hidden"),$edit.addClass("hidden")}))}))},$.fn.csf_field_group=function(){return this.each((function(){var $this=$(this),$fieldset=$this.children(".csf-fieldset"),$group=$fieldset.length?$fieldset:$this,$wrapper=$group.children(".csf-cloneable-wrapper"),$hidden=$group.children(".csf-cloneable-hidden"),$max=$group.children(".csf-cloneable-max"),$min=$group.children(".csf-cloneable-min"),field_id=$wrapper.data("field-id"),unique_id=$wrapper.data("unique-id"),is_number=Boolean(Number($wrapper.data("title-number"))),max=parseInt($wrapper.data("max")),min=parseInt($wrapper.data("min"));$wrapper.hasClass("ui-accordion")&&$wrapper.find(".ui-accordion-header-icon").remove();var update_title_numbers=function($selector){$selector.find(".csf-cloneable-title-number").each((function(index){$(this).html($(this).closest(".csf-cloneable-item").index()+1+".")}))};$wrapper.accordion({header:"> .csf-cloneable-item > .csf-cloneable-title",collapsible:!0,active:!1,animate:!1,heightStyle:"content",icons:{header:"csf-cloneable-header-icon fa fa-angle-right",activeHeader:"csf-cloneable-header-icon fa fa-angle-down"},activate:function(event,ui){var $panel=ui.newPanel,$header=ui.newHeader;if($panel.length&&!$panel.data("opened")){var $fields,$first=$panel.children().first().find(":input").first(),$title=$header.find(".csf-cloneable-value");$first.on("keyup",(function(event){$title.text($first.val())})),$panel.csf_reload_script(),$panel.data("opened",!0),$panel.data("retry",!1)}else $panel.data("retry")&&($panel.csf_reload_script_retry(),$panel.data("retry",!1))}}),$wrapper.sortable({axis:"y",handle:".csf-cloneable-title,.csf-cloneable-sort",helper:"original",cursor:"move",placeholder:"widget-placeholder",start:function(event,ui){$wrapper.accordion({active:!1}),$wrapper.sortable("refreshPositions"),ui.item.children(".csf-cloneable-content").data("retry",!0)},update:function(event,ui){CSF.helper.name_nested_replace($wrapper.children(".csf-cloneable-item"),field_id),$wrapper.csf_customizer_refresh(),is_number&&update_title_numbers($wrapper)}}),$group.children(".csf-cloneable-add").on("click",(function(e){e.preventDefault();var count=$wrapper.children(".csf-cloneable-item").length;if($min.hide(),max&&count+1>max)$max.show();else{var new_field_id=unique_id+field_id+"["+count+"]",$cloned_item=$hidden.csf_clone(!0);$cloned_item.removeClass("csf-cloneable-hidden"),$cloned_item.find(':input[name!="_pseudo"]').each((function(){this.name=new_field_id+this.name.replace(this.name.startsWith("_nonce")?"_nonce":unique_id,"")})),$cloned_item.find(".csf-data-wrapper").each((function(){$(this).attr("data-unique-id",new_field_id)})),$wrapper.append($cloned_item),$wrapper.accordion("refresh"),$wrapper.accordion({active:count}),$wrapper.csf_customizer_refresh(),$wrapper.csf_customizer_listen({closest:!0}),is_number&&update_title_numbers($wrapper)}}));var event_clone=function(e){e.preventDefault();var count=$wrapper.children(".csf-cloneable-item").length;if($min.hide(),max&&count+1>max)$max.show();else{var $this,$parent=$(this).parent().parent(),$cloned_helper=$parent.children(".csf-cloneable-helper").csf_clone(!0),$cloned_title=$parent.children(".csf-cloneable-title").csf_clone(),$cloned_content=$parent.children(".csf-cloneable-content").csf_clone(),cloned_regex=new RegExp("("+CSF.helper.preg_quote(field_id)+")\\[(\\d+)\\]","g");$cloned_content.find(".csf-data-wrapper").each((function(){var $this=$(this);$this.attr("data-unique-id",$this.attr("data-unique-id").replace(cloned_regex,field_id+"["+($parent.index()+1)+"]"))}));var $cloned=$('<div class="csf-cloneable-item" />');$cloned.append($cloned_helper),$cloned.append($cloned_title),$cloned.append($cloned_content),$wrapper.children().eq($parent.index()).after($cloned),CSF.helper.name_nested_replace($wrapper.children(".csf-cloneable-item"),field_id),$wrapper.accordion("refresh"),$wrapper.csf_customizer_refresh(),$wrapper.csf_customizer_listen({closest:!0}),is_number&&update_title_numbers($wrapper)}};$wrapper.children(".csf-cloneable-item").children(".csf-cloneable-helper").on("click",".csf-cloneable-clone",event_clone),$group.children(".csf-cloneable-hidden").children(".csf-cloneable-helper").on("click",".csf-cloneable-clone",event_clone);var event_remove=function(e){e.preventDefault();var count=$wrapper.children(".csf-cloneable-item").length;$max.hide(),$min.hide(),min&&count-1<min?$min.show():($(this).closest(".csf-cloneable-item").remove(),CSF.helper.name_nested_replace($wrapper.children(".csf-cloneable-item"),field_id),$wrapper.csf_customizer_refresh(),is_number&&update_title_numbers($wrapper))};$wrapper.children(".csf-cloneable-item").children(".csf-cloneable-helper").on("click",".csf-cloneable-remove",event_remove),$group.children(".csf-cloneable-hidden").children(".csf-cloneable-helper").on("click",".csf-cloneable-remove",event_remove)}))},$.fn.csf_field_icon=function(){return this.each((function(){var $this=$(this);$this.on("click",".csf-icon-add",(function(e){e.preventDefault();var $button=$(this),$modal=$("#csf-modal-icon");$modal.show(),CSF.vars.$icon_target=$this,CSF.vars.icon_modal_loaded||($modal.find(".csf-modal-loading").show(),window.wp.ajax.post("csf-get-icons",{nonce:$button.data("nonce")}).done((function(response){$modal.find(".csf-modal-loading").hide(),CSF.vars.icon_modal_loaded=!0;var $load=$modal.find(".csf-modal-load").html(response.content);$load.on("click","a",(function(e){e.preventDefault();var icon=$(this).data("csf-icon");CSF.vars.$icon_target.find("i").removeAttr("class").addClass(icon),CSF.vars.$icon_target.find("input").val(icon).trigger("change"),CSF.vars.$icon_target.find(".csf-icon-preview").removeClass("hidden"),CSF.vars.$icon_target.find(".csf-icon-remove").removeClass("hidden"),$modal.hide()})),$modal.on("change keyup",".csf-icon-search",(function(){var value=$(this).val(),$icons;$load.find("a").each((function(){var $elem=$(this);$elem.data("csf-icon").search(new RegExp(value,"i"))<0?$elem.hide():$elem.show()}))})),$modal.on("click",".csf-modal-close, .csf-modal-overlay",(function(){$modal.hide()}))})).fail((function(response){$modal.find(".csf-modal-loading").hide(),$modal.find(".csf-modal-load").html(response.error),$modal.on("click",(function(){$modal.hide()}))})))})),$this.on("click",".csf-icon-remove",(function(e){e.preventDefault(),$this.find(".csf-icon-preview").addClass("hidden"),$this.find("input").val("").trigger("change"),$(this).addClass("hidden")}))}))},$.fn.csf_field_map=function(){return this.each((function(){if("undefined"!=typeof L){var $this=$(this),$map=$this.find(".csf--map-osm"),$search_input=$this.find(".csf--map-search input"),$latitude=$this.find(".csf--latitude"),$longitude=$this.find(".csf--longitude"),$zoom=$this.find(".csf--zoom"),map_data=$map.data("map"),mapInit=L.map($map.get(0),map_data);L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'}).addTo(mapInit);var mapMarker=L.marker(map_data.center,{draggable:!0}).addTo(mapInit),update_latlng=function(data){$latitude.val(data.lat),$longitude.val(data.lng),$zoom.val(mapInit.getZoom())};mapInit.on("click",(function(data){mapMarker.setLatLng(data.latlng),update_latlng(data.latlng)})),mapInit.on("zoom",(function(){update_latlng(mapMarker.getLatLng())})),mapMarker.on("drag",(function(){update_latlng(mapMarker.getLatLng())})),$search_input.length||($search_input=$('[data-depend-id="'+$this.find(".csf--address-field").data("address-field")+'"]')),$search_input.autocomplete({source:function(request,response){$.get("https://nominatim.openstreetmap.org/search",{format:"json",q:request.term},(function(results){results.length?response(results.map((function(item){return{value:item.display_name,label:item.display_name,lat:item.lat,lon:item.lon}}),"json")):response([{value:"no-data",label:"No Results."}])}))},select:function(event,ui){if("no-data"===ui.item.value)return!1;var latLng=L.latLng(ui.item.lat,ui.item.lon);mapInit.panTo(latLng),mapMarker.setLatLng(latLng),update_latlng(latLng)},create:function(event,ui){$(this).autocomplete("widget").addClass("csf-map-ui-autocomplate")}});var input_update_latlng=function(){var latLng=L.latLng($latitude.val(),$longitude.val());mapInit.panTo(latLng),mapMarker.setLatLng(latLng)};$latitude.on("change",input_update_latlng),$longitude.on("change",input_update_latlng)}}))},$.fn.csf_field_media=function(){return this.each((function(){var $this=$(this),$upload_button=$this.find(".csf--button"),$remove_button=$this.find(".csf--remove"),$library=$upload_button.data("library")&&$upload_button.data("library").split(",")||"",$auto_attributes=!!$this.hasClass("csf-assign-field-background")&&$this.closest(".csf-field-background").find(".csf--auto-attributes"),wp_media_frame;$upload_button.on("click",(function(e){e.preventDefault(),void 0!==window.wp&&window.wp.media&&window.wp.media.gallery&&(wp_media_frame?wp_media_frame.open():((wp_media_frame=window.wp.media({library:{type:$library}})).on("select",(function(){var thumbnail,attributes=wp_media_frame.state().get("selection").first().attributes,preview_size=$upload_button.data("preview-size")||"thumbnail";$library.length&&-1===$library.indexOf(attributes.subtype)&&-1===$library.indexOf(attributes.type)||($this.find(".csf--id").val(attributes.id),$this.find(".csf--width").val(attributes.width),$this.find(".csf--height").val(attributes.height),$this.find(".csf--alt").val(attributes.alt),$this.find(".csf--title").val(attributes.title),$this.find(".csf--description").val(attributes.description),thumbnail=void 0!==attributes.sizes&&void 0!==attributes.sizes.thumbnail&&"thumbnail"===preview_size?attributes.sizes.thumbnail.url:void 0!==attributes.sizes&&void 0!==attributes.sizes.full?attributes.sizes.full.url:attributes.icon,$auto_attributes&&$auto_attributes.removeClass("csf--attributes-hidden"),$remove_button.removeClass("hidden"),$this.find(".csf--preview").removeClass("hidden"),$this.find(".csf--src").attr("src",thumbnail),$this.find(".csf--thumbnail").val(thumbnail),$this.find(".csf--url").val(attributes.url).trigger("change"))})),wp_media_frame.open()))})),$remove_button.on("click",(function(e){e.preventDefault(),$auto_attributes&&$auto_attributes.addClass("csf--attributes-hidden"),$remove_button.addClass("hidden"),$this.find("input").val(""),$this.find(".csf--preview").addClass("hidden"),$this.find(".csf--url").trigger("change")}))}))},$.fn.csf_field_repeater=function(){return this.each((function(){var $this=$(this),$fieldset=$this.children(".csf-fieldset"),$repeater=$fieldset.length?$fieldset:$this,$wrapper=$repeater.children(".csf-repeater-wrapper"),$hidden=$repeater.children(".csf-repeater-hidden"),$max=$repeater.children(".csf-repeater-max"),$min=$repeater.children(".csf-repeater-min"),field_id=$wrapper.data("field-id"),unique_id=$wrapper.data("unique-id"),max=parseInt($wrapper.data("max")),min=parseInt($wrapper.data("min"));$wrapper.children(".csf-repeater-item").children(".csf-repeater-content").csf_reload_script(),$wrapper.sortable({axis:"y",handle:".csf-repeater-sort",helper:"original",cursor:"move",placeholder:"widget-placeholder",update:function(event,ui){CSF.helper.name_nested_replace($wrapper.children(".csf-repeater-item"),field_id),$wrapper.csf_customizer_refresh(),ui.item.csf_reload_script_retry()}}),$repeater.children(".csf-repeater-add").on("click",(function(e){e.preventDefault();var count=$wrapper.children(".csf-repeater-item").length;if($min.hide(),max&&count+1>max)$max.show();else{var new_field_id=unique_id+field_id+"["+count+"]",$cloned_item=$hidden.csf_clone(!0);$cloned_item.removeClass("csf-repeater-hidden"),$cloned_item.find(':input[name!="_pseudo"]').each((function(){this.name=new_field_id+this.name.replace(this.name.startsWith("_nonce")?"_nonce":unique_id,"")})),$cloned_item.find(".csf-data-wrapper").each((function(){$(this).attr("data-unique-id",new_field_id)})),$wrapper.append($cloned_item),$cloned_item.children(".csf-repeater-content").csf_reload_script(),$wrapper.csf_customizer_refresh(),$wrapper.csf_customizer_listen({closest:!0})}}));var event_clone=function(e){e.preventDefault();var count=$wrapper.children(".csf-repeater-item").length;if($min.hide(),max&&count+1>max)$max.show();else{var $this,$parent=$(this).parent().parent().parent(),$cloned_content=$parent.children(".csf-repeater-content").csf_clone(),$cloned_helper=$parent.children(".csf-repeater-helper").csf_clone(!0),cloned_regex=new RegExp("("+CSF.helper.preg_quote(field_id)+")\\[(\\d+)\\]","g");$cloned_content.find(".csf-data-wrapper").each((function(){var $this=$(this);$this.attr("data-unique-id",$this.attr("data-unique-id").replace(cloned_regex,field_id+"["+($parent.index()+1)+"]"))}));var $cloned=$('<div class="csf-repeater-item" />');$cloned.append($cloned_content),$cloned.append($cloned_helper),$wrapper.children().eq($parent.index()).after($cloned),$cloned.children(".csf-repeater-content").csf_reload_script(),CSF.helper.name_nested_replace($wrapper.children(".csf-repeater-item"),field_id),$wrapper.csf_customizer_refresh(),$wrapper.csf_customizer_listen({closest:!0})}};$wrapper.children(".csf-repeater-item").children(".csf-repeater-helper").on("click",".csf-repeater-clone",event_clone),$repeater.children(".csf-repeater-hidden").children(".csf-repeater-helper").on("click",".csf-repeater-clone",event_clone);var event_remove=function(e){e.preventDefault();var count=$wrapper.children(".csf-repeater-item").length;$max.hide(),$min.hide(),min&&count-1<min?$min.show():($(this).closest(".csf-repeater-item").remove(),CSF.helper.name_nested_replace($wrapper.children(".csf-repeater-item"),field_id),$wrapper.csf_customizer_refresh())};$wrapper.children(".csf-repeater-item").children(".csf-repeater-helper").on("click",".csf-repeater-remove",event_remove),$repeater.children(".csf-repeater-hidden").children(".csf-repeater-helper").on("click",".csf-repeater-remove",event_remove)}))},$.fn.csf_field_slider=function(){return this.each((function(){var $this=$(this),$input=$this.find("input"),$slider=$this.find(".csf-slider-ui"),data=$input.data(),value=$input.val()||0;$slider.hasClass("ui-slider")&&$slider.empty(),$slider.slider({range:"min",value:value,min:data.min,max:data.max,step:data.step,slide:function(e,o){$input.val(o.value).trigger("change")}}),$input.keyup((function(){$slider.slider("value",$input.val())}))}))},$.fn.csf_field_sortable=function(){return this.each((function(){var $sortable=$(this).find(".csf--sortable");$sortable.sortable({axis:"y",helper:"original",cursor:"move",placeholder:"widget-placeholder",update:function(event,ui){$sortable.csf_customizer_refresh()}}),$sortable.find(".csf--sortable-content").csf_reload_script()}))},$.fn.csf_field_sorter=function(){return this.each((function(){var $this=$(this),$enabled=$this.find(".csf-enabled"),$has_disabled=$this.find(".csf-disabled"),$disabled=!!$has_disabled.length&&$has_disabled;$enabled.sortable({connectWith:$disabled,placeholder:"ui-sortable-placeholder",update:function(event,ui){var $el=ui.item.find("input");ui.item.parent().hasClass("csf-enabled")?$el.attr("name",$el.attr("name").replace("disabled","enabled")):$el.attr("name",$el.attr("name").replace("enabled","disabled")),$this.csf_customizer_refresh()}}),$disabled&&$disabled.sortable({connectWith:$enabled,placeholder:"ui-sortable-placeholder",update:function(event,ui){$this.csf_customizer_refresh()}})}))},$.fn.csf_field_spinner=function(){return this.each((function(){var $this=$(this),$input=$this.find("input"),$inited=$this.find(".ui-spinner-button"),$unit=$input.data("unit");$inited.length&&$inited.remove(),$input.spinner({max:$input.data("max")||100,min:$input.data("min")||0,step:$input.data("step")||1,create:function(event,ui){$unit.length&&$this.find(".ui-spinner-up").after('<span class="ui-button-text-only csf--unit">'+$unit+"</span>")},spin:function(event,ui){$input.val(ui.value).trigger("change")}})}))},$.fn.csf_field_switcher=function(){return this.each((function(){var $switcher=$(this).find(".csf--switcher");$switcher.on("click",(function(){var value=0,$input=$switcher.find("input");$switcher.hasClass("csf--active")?$switcher.removeClass("csf--active"):(value=1,$switcher.addClass("csf--active")),$input.val(value).trigger("change")}))}))},$.fn.csf_field_tabbed=function(){return this.each((function(){var $this=$(this),$links=$this.find(".csf-tabbed-nav a"),$sections=$this.find(".csf-tabbed-section");$sections.eq(0).csf_reload_script(),$links.on("click",(function(e){e.preventDefault();var $link=$(this),index=$link.index(),$section=$sections.eq(index);$link.addClass("csf-tabbed-active").siblings().removeClass("csf-tabbed-active"),$section.csf_reload_script(),$section.removeClass("hidden").siblings().addClass("hidden")}))}))},$.fn.csf_field_typography=function(){return this.each((function(){var base=this,$this=$(this),loaded_fonts=[],webfonts=csf_typography_json.webfonts,googlestyles=csf_typography_json.googlestyles,defaultstyles=csf_typography_json.defaultstyles;base.sanitize_subset=function(subset){return subset=(subset=subset.replace("-ext"," Extended")).charAt(0).toUpperCase()+subset.slice(1)},base.sanitize_style=function(style){return googlestyles[style]?googlestyles[style]:style},base.load_google_font=function(font_family,weight,style){font_family&&"object"==typeof WebFont&&(weight=weight?weight.replace("normal",""):"",style=style?style.replace("normal",""):"",(weight||style)&&(font_family=font_family+":"+weight+style),-1===loaded_fonts.indexOf(font_family)&&WebFont.load({google:{families:[font_family]}}),loaded_fonts.push(font_family))},base.append_select_options=function($select,options,condition,type,is_multi){$select.find("option").not(":first").remove();var opts="";$.each(options,(function(key,value){var selected,name=value;selected=is_multi?condition&&-1!==condition.indexOf(value)?" selected":"":condition&&condition===value?" selected":"","subset"===type?name=base.sanitize_subset(value):"style"===type&&(name=base.sanitize_style(value)),opts+='<option value="'+value+'"'+selected+">"+name+"</option>"})),$select.append(opts).trigger("csf.change").trigger("chosen:updated")},base.init=function(){var selected_styles=[],$typography=$this.find(".csf--typography"),$type=$this.find(".csf--type"),$styles=$this.find(".csf--block-font-style"),unit=$typography.data("unit"),exclude_fonts=$typography.data("exclude")?$typography.data("exclude").split(","):[],$chosen_selects;$this.find(".csf--chosen").length&&$this.find("select").each((function(){var $chosen_select=$(this),$chosen_inited=$chosen_select.parent().find(".chosen-container");$chosen_inited.length&&$chosen_inited.remove(),$chosen_select.chosen({allow_single_deselect:!0,disable_search_threshold:15,width:"100%"})}));var $font_family_select=$this.find(".csf--font-family"),first_font_family=$font_family_select.val();$font_family_select.find("option").not(":first-child").remove();var opts="";$.each(webfonts,(function(type,group){exclude_fonts&&-1!==exclude_fonts.indexOf(type)||(opts+='<optgroup label="'+group.label+'">',$.each(group.fonts,(function(key,value){var selected;opts+='<option value="'+(value="object"==typeof value?key:value)+'" data-type="'+type+'"'+(value===first_font_family?" selected":"")+">"+value+"</option>"})),opts+="</optgroup>")})),$font_family_select.append(opts).trigger("chosen:updated");var $font_style_block=$this.find(".csf--block-font-style");if($font_style_block.length){var $font_style_select=$this.find(".csf--font-style-select"),first_style_value=$font_style_select.val()?$font_style_select.val().replace(/normal/g,""):"";$font_style_select.on("change csf.change",(function(event){var style_value=$font_style_select.val();!style_value&&selected_styles&&-1===selected_styles.indexOf("normal")&&(style_value=selected_styles[0]);var font_normal=style_value&&"italic"!==style_value&&"normal"===style_value?"normal":"",font_weight=style_value&&"italic"!==style_value&&"normal"!==style_value?style_value.replace("italic",""):font_normal,font_style=style_value&&"italic"===style_value.substr(-6)?"italic":"";$this.find(".csf--font-weight").val(font_weight),$this.find(".csf--font-style").val(font_style)}));var $extra_font_style_block=$this.find(".csf--block-extra-styles");if($extra_font_style_block.length)var $extra_font_style_select=$this.find(".csf--extra-styles"),first_extra_style_value=$extra_font_style_select.val()}var $subset_block=$this.find(".csf--block-subset");if($subset_block.length)var $subset_select=$this.find(".csf--subset"),first_subset_select_value=$subset_select.val(),subset_multi_select=$subset_select.data("multiple")||!1;var $backup_font_family_block=$this.find(".csf--block-backup-font-family");$font_family_select.on("change csf.change",(function(event){$subset_block.length&&$subset_block.addClass("hidden"),$extra_font_style_block.length&&$extra_font_style_block.addClass("hidden"),$backup_font_family_block.length&&$backup_font_family_block.addClass("hidden");var $selected=$font_family_select.find(":selected"),value=$selected.val(),type=$selected.data("type");if(type&&value){if("google"!==type&&"custom"!==type||!$backup_font_family_block.length||$backup_font_family_block.removeClass("hidden"),$font_style_block.length){var styles=defaultstyles;"google"===type&&webfonts[type].fonts[value][0]?styles=webfonts[type].fonts[value][0]:"custom"===type&&webfonts[type].fonts[value]&&(styles=webfonts[type].fonts[value]),selected_styles=styles;var set_auto_style=-1!==styles.indexOf("normal")?"normal":styles[0],set_style_value=first_style_value&&-1!==styles.indexOf(first_style_value)?first_style_value:set_auto_style;base.append_select_options($font_style_select,styles,set_style_value,"style"),first_style_value=!1,$font_style_block.removeClass("hidden"),"google"===type&&$extra_font_style_block.length&&styles.length>1&&(base.append_select_options($extra_font_style_select,styles,first_extra_style_value,"style",!0),first_extra_style_value=!1,$extra_font_style_block.removeClass("hidden"))}if("google"===type&&$subset_block.length&&webfonts[type].fonts[value][1]){var subsets=webfonts[type].fonts[value][1],set_auto_subset=subsets.length<2&&"latin"!==subsets[0]?subsets[0]:"",set_subset_value=first_subset_select_value&&-1!==subsets.indexOf(first_subset_select_value)?first_subset_select_value:set_auto_subset;set_subset_value=subset_multi_select&&first_subset_select_value?first_subset_select_value:set_subset_value,base.append_select_options($subset_select,subsets,set_subset_value,"subset",subset_multi_select),first_subset_select_value=!1,$subset_block.removeClass("hidden")}}else $styles.find(":input").val(""),$subset_block.length&&($subset_select.find("option").not(":first-child").remove(),$subset_select.trigger("chosen:updated")),$font_style_block.length&&($font_style_select.find("option").not(":first-child").remove(),$font_style_select.trigger("chosen:updated"));$type.val(type)})).trigger("csf.change");var $preview_block=$this.find(".csf--block-preview");if($preview_block.length){var $preview=$this.find(".csf--preview");$this.on("change",CSF.helper.debounce((function(event){$preview_block.removeClass("hidden");var font_family=$font_family_select.val(),font_weight=$this.find(".csf--font-weight").val(),font_style=$this.find(".csf--font-style").val(),font_size=$this.find(".csf--font-size").val(),font_variant=$this.find(".csf--font-variant").val(),line_height=$this.find(".csf--line-height").val(),text_align=$this.find(".csf--text-align").val(),text_transform=$this.find(".csf--text-transform").val(),text_decoration=$this.find(".csf--text-decoration").val(),text_color=$this.find(".csf--color").val(),word_spacing=$this.find(".csf--word-spacing").val(),letter_spacing=$this.find(".csf--letter-spacing").val(),custom_style=$this.find(".csf--custom-style").val(),type;"google"===$this.find(".csf--type").val()&&base.load_google_font(font_family,font_weight,font_style);var properties={};font_family&&(properties.fontFamily=font_family),font_weight&&(properties.fontWeight=font_weight),font_style&&(properties.fontStyle=font_style),font_variant&&(properties.fontVariant=font_variant),font_size&&(properties.fontSize=font_size+unit),line_height&&(properties.lineHeight=line_height+unit),letter_spacing&&(properties.letterSpacing=letter_spacing+unit),word_spacing&&(properties.wordSpacing=word_spacing+unit),text_align&&(properties.textAlign=text_align),text_transform&&(properties.textTransform=text_transform),text_decoration&&(properties.textDecoration=text_decoration),text_color&&(properties.color=text_color),$preview.removeAttr("style"),custom_style&&$preview.attr("style",custom_style),$preview.css(properties)}),100)),$preview_block.on("click",(function(){$preview.toggleClass("csf--black-background");var $toggle=$preview_block.find(".csf--toggle");$toggle.hasClass("fa-toggle-off")?$toggle.removeClass("fa-toggle-off").addClass("fa-toggle-on"):$toggle.removeClass("fa-toggle-on").addClass("fa-toggle-off")})),$preview_block.hasClass("hidden")||$this.trigger("change")}},base.init()}))},$.fn.csf_field_upload=function(){return this.each((function(){var $this=$(this),$input=$this.find("input"),$upload_button=$this.find(".csf--button"),$remove_button=$this.find(".csf--remove"),$library=$upload_button.data("library")&&$upload_button.data("library").split(",")||"",wp_media_frame;$input.on("change",(function(e){$input.val()?$remove_button.removeClass("hidden"):$remove_button.addClass("hidden")})),$upload_button.on("click",(function(e){e.preventDefault(),void 0!==window.wp&&window.wp.media&&window.wp.media.gallery&&(wp_media_frame?wp_media_frame.open():((wp_media_frame=window.wp.media({library:{type:$library}})).on("select",(function(){var attributes=wp_media_frame.state().get("selection").first().attributes;$library.length&&-1===$library.indexOf(attributes.subtype)&&-1===$library.indexOf(attributes.type)||$input.val(attributes.url).trigger("change")})),wp_media_frame.open()))})),$remove_button.on("click",(function(e){e.preventDefault(),$input.val("").trigger("change")}))}))},$.fn.csf_field_wp_editor=function(){return this.each((function(){if(void 0!==window.wp.editor&&void 0!==window.tinyMCEPreInit&&void 0!==window.tinyMCEPreInit.mceInit.csf_wp_editor){var $this=$(this),$editor=$this.find(".csf-wp-editor"),$textarea=$this.find("textarea"),$has_wp_editor;($this.find(".wp-editor-wrap").length||$this.find(".mce-container").length)&&($editor.empty(),$editor.append($textarea),$textarea.css("display",""));var uid=CSF.helper.uid("csf-editor-");$textarea.attr("id",uid);var default_editor_settings={tinymce:window.tinyMCEPreInit.mceInit.csf_wp_editor,quicktags:window.tinyMCEPreInit.qtInit.csf_wp_editor},field_editor_settings=$editor.data("editor-settings"),editor_on_change=function(editor){editor.on("change",CSF.helper.debounce((function(){editor.save(),$textarea.trigger("change")}),250))},wpEditor=wp.oldEditor?wp.oldEditor:wp.editor;wpEditor&&wpEditor.hasOwnProperty("autop")&&(wp.editor.autop=wpEditor.autop,wp.editor.removep=wpEditor.removep,wp.editor.initialize=wpEditor.initialize),default_editor_settings.tinymce=$.extend({},default_editor_settings.tinymce,{selector:"#"+uid,setup:editor_on_change}),!1===field_editor_settings.tinymce&&(default_editor_settings.tinymce=!1,$editor.addClass("csf-no-tinymce")),!1===field_editor_settings.quicktags&&(default_editor_settings.quicktags=!1,$editor.addClass("csf-no-quicktags"));var interval=setInterval((function(){$this.is(":visible")&&(window.wp.editor.initialize(uid,default_editor_settings),clearInterval(interval))}));if(field_editor_settings.media_buttons&&window.csf_media_buttons){var $editor_buttons=$editor.find(".wp-media-buttons");if($editor_buttons.length)$editor_buttons.find(".csf-shortcode-button").data("editor-id",uid);else{var $media_buttons=$(window.csf_media_buttons);$media_buttons.find(".csf-shortcode-button").data("editor-id",uid),$editor.prepend($media_buttons)}}}}))},$.fn.csf_confirm=function(){return this.each((function(){$(this).on("click",(function(e){var confirm_text=$(this).data("confirm")||window.csf_vars.i18n.confirm,confirm_answer=confirm(confirm_text);if(CSF.vars.is_confirm=!0,!confirm_answer)return e.preventDefault(),CSF.vars.is_confirm=!1,!1}))}))},$.fn.serializeObject=function(){var obj={};return $.each(this.serializeArray(),(function(i,o){var n=o.name,v=o.value;obj[n]=void 0===obj[n]?v:$.isArray(obj[n])?obj[n].concat(v):[obj[n],v]})),obj},$.fn.csf_save=function(){return this.each((function(){var $this=$(this),$buttons=$(".csf-save"),$panel=$(".csf-options"),flooding=!1,timeout;$this.on("click",(function(e){if(!flooding){var $text=$this.data("save"),$value=$this.val();$buttons.attr("value",$text),$this.hasClass("csf-save-ajax")&&(e.preventDefault(),$panel.addClass("csf-saving"),$buttons.prop("disabled",!0),window.wp.ajax.post("csf_"+$panel.data("unique")+"_ajax_save",{data:$("#csf-form").serializeJSONCSF()}).done((function(response){if($(".csf-error").remove(),Object.keys(response.errors).length){var error_icon='<i class="csf-label-error csf-error">!</i>';$.each(response.errors,(function(key,error_message){var $field=$('[data-depend-id="'+key+'"]'),$link=$("#csf-tab-link-"+($field.closest(".csf-section").index()+1)),$tab=$link.closest(".csf-tab-depth-0");$field.closest(".csf-fieldset").append('<p class="csf-text-error csf-error">'+error_message+"</p>"),$link.find(".csf-error").length||$link.append(error_icon),$tab.find(".csf-arrow .csf-error").length||$tab.find(".csf-arrow").append(error_icon),console.log(error_message)}))}$panel.removeClass("csf-saving"),$buttons.prop("disabled",!1).attr("value",$value),flooding=!1,CSF.vars.form_modified=!1,CSF.vars.$form_warning.hide(),clearTimeout(timeout);var $result_success=$(".csf-form-success");$result_success.empty().append(response.notice).fadeIn("fast",(function(){timeout=setTimeout((function(){$result_success.fadeOut("fast")}),1e3)}))})).fail((function(response){alert(response.error)})))}flooding=!0}))}))},$.fn.csf_options=function(){return this.each((function(){var $this=$(this),$content=$this.find(".csf-content"),$form_success=$this.find(".csf-form-success"),$form_warning=$this.find(".csf-form-warning"),$save_button=$this.find(".csf-header .csf-save");CSF.vars.$form_warning=$form_warning,$form_warning.length&&(window.onbeforeunload=function(){return!!CSF.vars.form_modified||void 0},$content.on("change keypress",":input",(function(){CSF.vars.form_modified||($form_success.hide(),$form_warning.fadeIn("fast"),CSF.vars.form_modified=!0)}))),$form_success.hasClass("csf-form-show")&&setTimeout((function(){$form_success.fadeOut("fast")}),1e3),$(document).keydown((function(event){if((event.ctrlKey||event.metaKey)&&83===event.which)return $save_button.trigger("click"),event.preventDefault(),!1}))}))},$.fn.csf_taxonomy=function(){return this.each((function(){var $this=$(this),$form=$this.parents("form");if("addtag"===$form.attr("id")){var $submit=$form.find("#submit"),$cloned=$this.find(".csf-field").csf_clone();$submit.on("click",(function(){$form.find(".form-required").hasClass("form-invalid")||($this.data("inited",!1),$this.empty(),$this.html($cloned),$cloned=$cloned.csf_clone(),$this.csf_reload_script())}))}}))},$.fn.csf_shortcode=function(){var base=this;return base.shortcode_parse=function(serialize,key){var shortcode="";return $.each(serialize,(function(shortcode_key,shortcode_values){shortcode+="["+(key=key||shortcode_key),$.each(shortcode_values,(function(shortcode_tag,shortcode_value){"content"===shortcode_tag?(shortcode+="]",shortcode+=shortcode_value,shortcode+="[/"+key):shortcode+=base.shortcode_tags(shortcode_tag,shortcode_value)})),shortcode+="]"})),shortcode},base.shortcode_tags=function(shortcode_tag,shortcode_value){var shortcode="";return""!==shortcode_value&&("object"!=typeof shortcode_value||$.isArray(shortcode_value)?shortcode+=" "+shortcode_tag.replace("-","_")+'="'+shortcode_value.toString()+'"':$.each(shortcode_value,(function(sub_shortcode_tag,sub_shortcode_value){switch(sub_shortcode_tag){case"background-image":sub_shortcode_value=sub_shortcode_value.url?sub_shortcode_value.url:""}""!==sub_shortcode_value&&(shortcode+=" "+sub_shortcode_tag.replace("-","_")+'="'+sub_shortcode_value.toString()+'"')}))),shortcode},base.insertAtChars=function(_this,currentValue){var obj=void 0!==_this[0].name?_this[0]:_this;return obj.value.length&&void 0!==obj.selectionStart?(obj.focus(),obj.value.substring(0,obj.selectionStart)+currentValue+obj.value.substring(obj.selectionEnd,obj.value.length)):(obj.focus(),currentValue)},base.send_to_editor=function(html,editor_id){var tinymce_editor;if("undefined"!=typeof tinymce&&(tinymce_editor=tinymce.get(editor_id)),tinymce_editor&&!tinymce_editor.isHidden())tinymce_editor.execCommand("mceInsertContent",!1,html);else{var $editor=$("#"+editor_id);$editor.val(base.insertAtChars($editor,html)).trigger("change")}},this.each((function(){var $modal=$(this),$load=$modal.find(".csf-modal-load"),$content=$modal.find(".csf-modal-content"),$insert=$modal.find(".csf-modal-insert"),$loading=$modal.find(".csf-modal-loading"),$select=$modal.find("select"),modal_id=$modal.data("modal-id"),nonce=$modal.data("nonce"),editor_id,target_id,sc_key,sc_name,sc_view,sc_group,$cloned,$button;$(document).on("click",'.csf-shortcode-button[data-modal-id="'+modal_id+'"]',(function(e){e.preventDefault(),$button=$(this),editor_id=$button.data("editor-id")||!1,target_id=$button.data("target-id")||!1,$modal.show(),$modal.hasClass("csf-shortcode-single")&&void 0===sc_name&&$select.trigger("change")})),$select.on("change",(function(){var $option=$(this),$selected=$option.find(":selected");sc_key=$option.val(),sc_name=$selected.data("shortcode"),sc_view=$selected.data("view")||"normal",sc_group=$selected.data("group")||sc_name,$load.empty(),sc_key?($loading.show(),window.wp.ajax.post("csf-get-shortcode-"+modal_id,{shortcode_key:sc_key,nonce:nonce}).done((function(response){$loading.hide();var $appended=$(response.content).appendTo($load);$insert.parent().removeClass("hidden"),$cloned=$appended.find(".csf--repeat-shortcode").csf_clone(),$appended.csf_reload_script(),$appended.find(".csf-fields").csf_reload_script()}))):$insert.parent().addClass("hidden")})),$insert.on("click",(function(e){if(e.preventDefault(),!$insert.prop("disabled")&&!$insert.attr("disabled")){var shortcode="",serialize=$modal.find(".csf-field:not(.hidden)").find(":input:not(.ignore)").serializeObjectCSF();switch(sc_view){case"contents":var contentsObj=sc_name?serialize[sc_name]:serialize;$.each(contentsObj,(function(sc_key,sc_value){var sc_tag=sc_name||sc_key;shortcode+="["+sc_tag+"]"+sc_value+"[/"+sc_tag+"]"}));break;case"group":shortcode+="["+sc_name,$.each(serialize[sc_name],(function(sc_key,sc_value){shortcode+=base.shortcode_tags(sc_key,sc_value)})),shortcode+="]",shortcode+=base.shortcode_parse(serialize[sc_group],sc_group),shortcode+="[/"+sc_name+"]";break;case"repeater":shortcode+=base.shortcode_parse(serialize[sc_group],sc_group);break;default:shortcode+=base.shortcode_parse(serialize)}if(shortcode=""===shortcode?"["+sc_name+"]":shortcode,editor_id)base.send_to_editor(shortcode,editor_id);else{var $textarea=target_id?$(target_id):$button.parent().find("textarea");$textarea.val(base.insertAtChars($textarea,shortcode)).trigger("change")}$modal.hide()}})),$modal.on("click",".csf--repeat-button",(function(e){e.preventDefault();var $repeatable=$modal.find(".csf--repeatable"),$new_clone=$cloned.csf_clone(),$remove_btn=$new_clone.find(".csf-repeat-remove"),$appended=$new_clone.appendTo($repeatable);$new_clone.find(".csf-fields").csf_reload_script(),CSF.helper.name_nested_replace($modal.find(".csf--repeat-shortcode"),sc_group),$remove_btn.on("click",(function(){$new_clone.remove(),CSF.helper.name_nested_replace($modal.find(".csf--repeat-shortcode"),sc_group)}))})),$modal.on("click",".csf-modal-close, .csf-modal-overlay",(function(){$modal.hide()}))}))},"function"==typeof Color&&(Color.fn.toString=function(){if(this._alpha<1)return this.toCSS("rgba",this._alpha).replace(/\s+/g,"");var hex=parseInt(this._color,10).toString(16);if(this.error)return"";if(hex.length<6)for(var i=6-hex.length-1;i>=0;i--)hex="0"+hex;return"#"+hex}),CSF.funcs.parse_color=function(color){var value=color.replace(/\s+/g,""),trans=-1!==value.indexOf("rgba")?parseFloat(100*value.replace(/^.*,(.+)\)/,"$1")):100,rgba;return{value:value,transparent:trans,rgba:trans<100}},$.fn.csf_color=function(){return this.each((function(){var $input=$(this),picker_color=CSF.funcs.parse_color($input.val()),palette_color=!window.csf_vars.color_palette.length||window.csf_vars.color_palette,$container;$input.hasClass("wp-color-picker")&&$input.closest(".wp-picker-container").after($input).remove(),$input.wpColorPicker({palettes:palette_color,change:function(event,ui){var ui_color_value=ui.color.toString();$container.removeClass("csf--transparent-active"),$container.find(".csf--transparent-offset").css("background-color",ui_color_value),$input.val(ui_color_value).trigger("change")},create:function(){$container=$input.closest(".wp-picker-container");var a8cIris=$input.data("a8cIris"),$transparent_wrap=$('<div class="csf--transparent-wrap"><div class="csf--transparent-slider"></div><div class="csf--transparent-offset"></div><div class="csf--transparent-text"></div><div class="csf--transparent-button">transparent <i class="fa fa-toggle-off"></i></div></div>').appendTo($container.find(".wp-picker-holder")),$transparent_slider=$transparent_wrap.find(".csf--transparent-slider"),$transparent_text=$transparent_wrap.find(".csf--transparent-text"),$transparent_offset=$transparent_wrap.find(".csf--transparent-offset"),$transparent_button=$transparent_wrap.find(".csf--transparent-button");"transparent"===$input.val()&&$container.addClass("csf--transparent-active"),$transparent_button.on("click",(function(){"transparent"!==$input.val()?($input.val("transparent").trigger("change").removeClass("iris-error"),$container.addClass("csf--transparent-active")):($input.val(a8cIris._color.toString()).trigger("change"),$container.removeClass("csf--transparent-active"))})),$transparent_slider.slider({value:picker_color.transparent,step:1,min:0,max:100,slide:function(event,ui){var slide_value=parseFloat(ui.value/100);a8cIris._color._alpha=slide_value,$input.wpColorPicker("color",a8cIris._color.toString()),$transparent_text.text(1===slide_value||0===slide_value?"":slide_value)},create:function(){var slide_value=parseFloat(picker_color.transparent/100),text_value=slide_value<1?slide_value:"";$transparent_text.text(text_value),$transparent_offset.css("background-color",picker_color.value),$container.on("click",".wp-picker-clear",(function(){a8cIris._color._alpha=1,$transparent_text.text(""),$transparent_slider.slider("option","value",100),$container.removeClass("csf--transparent-active"),$input.trigger("change")})),$container.on("click",".wp-picker-default",(function(){var default_color=CSF.funcs.parse_color($input.data("default-color")),default_value=parseFloat(default_color.transparent/100),default_text=default_value<1?default_value:"";a8cIris._color._alpha=default_value,$transparent_text.text(default_text),$transparent_slider.slider("option","value",default_color.transparent)}))}})}})}))},$.fn.csf_chosen=function(){return this.each((function(){var $this=$(this),$inited=$this.parent().find(".chosen-container"),is_sortable=$this.hasClass("csf-chosen-sortable")||!1,is_ajax=$this.hasClass("csf-chosen-ajax")||!1,is_multiple=$this.attr("multiple")||!1,set_width=is_multiple?"100%":"auto",set_options=$.extend({allow_single_deselect:!0,disable_search_threshold:10,width:set_width,no_results_text:window.csf_vars.i18n.no_results_text},$this.data("chosen-settings"));if($inited.length&&$inited.remove(),is_ajax){var set_ajax_options=$.extend({data:{type:"post",nonce:""},allow_single_deselect:!0,disable_search_threshold:-1,width:"100%",min_length:3,type_delay:500,typing_text:window.csf_vars.i18n.typing_text,searching_text:window.csf_vars.i18n.searching_text,no_results_text:window.csf_vars.i18n.no_results_text},$this.data("chosen-settings"));$this.CSFAjaxChosen(set_ajax_options)}else $this.chosen(set_options);if(is_multiple){var $hidden_select=$this.parent().find(".csf-hidden-select"),$hidden_value=$hidden_select.val()||[];$this.on("change",(function(obj,result){result&&result.selected?$hidden_select.append('<option value="'+result.selected+'" selected="selected">'+result.selected+"</option>"):result&&result.deselected&&$hidden_select.find('option[value="'+result.deselected+'"]').remove(),0===$hidden_select.children().length&&void 0!==window.wp.customize&&window.wp.customize.control($hidden_select.data("customize-setting-link")).setting.set(""),$hidden_select.trigger("change")})),$this.CSFChosenOrder($hidden_value,!0)}if(is_sortable){var $chosen_container,$chosen_choices=$this.parent().find(".chosen-container").find(".chosen-choices");$chosen_choices.bind("mousedown",(function(event){$(event.target).is("span")&&event.stopPropagation()})),$chosen_choices.sortable({items:"li:not(.search-field)",helper:"orginal",cursor:"move",placeholder:"search-choice-placeholder",start:function(e,ui){ui.placeholder.width(ui.item.innerWidth()),ui.placeholder.height(ui.item.innerHeight())},update:function(e,ui){var select_options="",chosen_object=$this.data("chosen"),$prev_select=$this.parent().find(".csf-hidden-select");$chosen_choices.find(".search-choice-close").each((function(){var option_array_index=$(this).data("option-array-index");$.each(chosen_object.results_data,(function(index,data){data.array_index===option_array_index&&(select_options+='<option value="'+data.value+'" selected>'+data.value+"</option>")}))})),$prev_select.children().remove(),$prev_select.append(select_options),$prev_select.trigger("change")}})}}))},$.fn.csf_checkbox=function(){return this.each((function(){var $this=$(this),$input=$this.find(".csf--input"),$checkbox=$this.find(".csf--checkbox");$checkbox.on("click",(function(){$input.val(Number($checkbox.prop("checked"))).trigger("change")}))}))},$.fn.csf_siblings=function(){return this.each((function(){var $this=$(this),$siblings=$this.find(".csf--sibling"),multiple=$this.data("multiple")||!1;$siblings.on("click",(function(){var $sibling=$(this);multiple?$sibling.hasClass("csf--active")?($sibling.removeClass("csf--active"),$sibling.find("input").prop("checked",!1).trigger("change")):($sibling.addClass("csf--active"),$sibling.find("input").prop("checked",!0).trigger("change")):($this.find("input").prop("checked",!1),$sibling.find("input").prop("checked",!0).trigger("change"),$sibling.addClass("csf--active").siblings().removeClass("csf--active"))}))}))},$.fn.csf_help=function(){return this.each((function(){var $this=$(this),$tooltip,offset_left;$this.on({mouseenter:function(){$tooltip=$('<div class="csf-tooltip"></div>').html($this.find(".csf-help-text").html()).appendTo("body"),offset_left=CSF.vars.is_rtl?$this.offset().left+24:$this.offset().left-$tooltip.outerWidth(),$tooltip.css({top:$this.offset().top-($tooltip.outerHeight()/2-14),left:offset_left})},mouseleave:function(){void 0!==$tooltip&&$tooltip.remove()}})}))},$.fn.csf_customizer_refresh=function(){return this.each((function(){var $this=$(this),$complex=$this.closest(".csf-customize-complex");if($complex.length){var $input=$complex.find(":input"),$unique=$complex.data("unique-id"),$option=$complex.data("option-id"),obj=$input.serializeObjectCSF(),data=$.isEmptyObject(obj)?"":obj[$unique][$option],control=window.wp.customize.control($unique+"["+$option+"]");control.setting._value=null,control.setting.set(data)}else $this.find(":input").first().trigger("change");$(document).trigger("csf-customizer-refresh",$this)}))},$.fn.csf_customizer_listen=function(options){var settings=$.extend({closest:!1},options);return this.each((function(){if(void 0!==window.wp.customize){var $this=settings.closest?$(this).closest(".csf-customize-complex"):$(this),$input=$this.find(":input"),unique_id=$this.data("unique-id"),option_id=$this.data("option-id");void 0!==unique_id&&$input.on("change keyup",CSF.helper.debounce((function(){var obj=$this.find(":input").serializeObjectCSF(),val=!$.isEmptyObject(obj)&&obj[unique_id]&&obj[unique_id][option_id]?obj[unique_id][option_id]:"";window.wp.customize.control(unique_id+"["+option_id+"]").setting.set(val)}),250))}}))},$(document).on("expanded",".control-section",(function(){var $this=$(this);if($this.hasClass("open")&&!$this.data("inited")){var $fields=$this.find(".csf-customize-field"),$complex=$this.find(".csf-customize-complex");$fields.length&&($this.csf_dependency(),$fields.csf_reload_script({dependency:!1}),$complex.csf_customizer_listen()),$this.data("inited",!0)}})),CSF.vars.$window.on("resize csf.resize",CSF.helper.debounce((function(event){var window_width;(navigator.userAgent.indexOf("AppleWebKit/")>-1?CSF.vars.$window.width():window.innerWidth)<=782&&!CSF.vars.onloaded&&($(".csf-section").csf_reload_script(),CSF.vars.onloaded=!0)}),200)).trigger("csf.resize"),$.fn.csf_widgets=function(){this.length&&($(document).on("widget-added widget-updated",(function(event,$widget){$widget.find(".csf-fields").csf_reload_script()})),$(".widgets-sortables, .control-section-sidebar").on("sortstop",(function(event,ui){ui.item.find(".csf-fields").csf_reload_script_retry()})),$(document).on("click",".widget-top",(function(event){$(this).parent().find(".csf-fields").csf_reload_script()})))},$.fn.csf_reload_script_retry=function(){return this.each((function(){var $this=$(this);$this.data("inited")&&$this.children(".csf-field-wp_editor").csf_field_wp_editor()}))},$.fn.csf_reload_script=function(options){var settings=$.extend({dependency:!0},options);return this.each((function(){var $this=$(this);$this.data("inited")||($this.children(".csf-field-accordion").csf_field_accordion(),$this.children(".csf-field-backup").csf_field_backup(),$this.children(".csf-field-background").csf_field_background(),$this.children(".csf-field-code_editor").csf_field_code_editor(),$this.children(".csf-field-date").csf_field_date(),$this.children(".csf-field-fieldset").csf_field_fieldset(),$this.children(".csf-field-gallery").csf_field_gallery(),$this.children(".csf-field-group").csf_field_group(),$this.children(".csf-field-icon").csf_field_icon(),$this.children(".csf-field-media").csf_field_media(),$this.children(".csf-field-map").csf_field_map(),$this.children(".csf-field-repeater").csf_field_repeater(),$this.children(".csf-field-slider").csf_field_slider(),$this.children(".csf-field-sortable").csf_field_sortable(),$this.children(".csf-field-sorter").csf_field_sorter(),$this.children(".csf-field-spinner").csf_field_spinner(),$this.children(".csf-field-switcher").csf_field_switcher(),$this.children(".csf-field-tabbed").csf_field_tabbed(),$this.children(".csf-field-typography").csf_field_typography(),$this.children(".csf-field-upload").csf_field_upload(),$this.children(".csf-field-wp_editor").csf_field_wp_editor(),$this.children(".csf-field-border").find(".csf-color").csf_color(),$this.children(".csf-field-background").find(".csf-color").csf_color(),$this.children(".csf-field-color").find(".csf-color").csf_color(),$this.children(".csf-field-color_group").find(".csf-color").csf_color(),$this.children(".csf-field-link_color").find(".csf-color").csf_color(),$this.children(".csf-field-typography").find(".csf-color").csf_color(),$this.children(".csf-field-select").find(".csf-chosen").csf_chosen(),$this.children(".csf-field-checkbox").find(".csf-checkbox").csf_checkbox(),$this.children(".csf-field-button_set").find(".csf-siblings").csf_siblings(),$this.children(".csf-field-image_select").find(".csf-siblings").csf_siblings(),$this.children(".csf-field-palette").find(".csf-siblings").csf_siblings(),$this.children(".csf-field").find(".csf-help").csf_help(),settings.dependency&&$this.csf_dependency(),$this.data("inited",!0),$(document).trigger("csf-reload-script",$this))}))},$(document).ready((function(){$(".csf-save").csf_save(),$(".csf-options").csf_options(),$(".csf-sticky-header").csf_sticky(),$(".csf-nav-options").csf_nav_options(),$(".csf-nav-metabox").csf_nav_metabox(),$(".csf-taxonomy").csf_taxonomy(),$(".csf-page-templates").csf_page_templates(),$(".csf-post-formats").csf_post_formats(),$(".csf-shortcode").csf_shortcode(),$(".csf-search").csf_search(),$(".csf-confirm").csf_confirm(),$(".csf-expand-all").csf_expand_all(),$(".csf-onload").csf_reload_script(),$(".widget").csf_widgets()}))}(jQuery,window,document);
admin/views/framework/assets/scss/csf-rtl.scss ADDED
@@ -0,0 +1,646 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ *
3
+ * ---------------------------------------------------------
4
+ * CODESTAR FRAMEWORK RTL CSS MAP
5
+ * ---------------------------------------------------------
6
+ *
7
+ * 01. Base
8
+ * 01. 01. Header
9
+ * 01. 02. Header Buttons
10
+ * 01. 03. Navigation
11
+ * 01. 04. Content
12
+ * 01. 05. Section
13
+ * 01. 06. Show All Options
14
+ * 01. 07. Search Input
15
+ * 01. 08. Copyright
16
+ * 01. 09. Metabox
17
+ * 02. Fields
18
+ * 02. 01. Field: typography
19
+ * 02. 02. Field: checkbox, radio
20
+ * 02. 03. Field: switcher
21
+ * 02. 04. Field: upload
22
+ * 02. 05. Field: group
23
+ * 02. 06. Field: repeater
24
+ * 02. 07. Field: help
25
+ * 02. 08. Field: icon
26
+ * 02. 09. Field: gallery
27
+ * 02. 10. Field: sorter
28
+ * 02. 11. Field: tabbed
29
+ * 02. 12. Field: media
30
+ * 02. 13. Field: notice
31
+ * 02. 14. Field: border, spacing, dimensions
32
+ * 02. 15. Field: background
33
+ * 02. 16. Field: spinner
34
+ * 02. 17. Field: slider
35
+ * 02. 18. Field: button_set
36
+ * 02. 19. Field: link_color
37
+ * 02. 20. Field: color_group
38
+ * 02. 21. Field: palette
39
+ * 03. Taxonomy
40
+ * 04. Profile
41
+ * 05. Modal
42
+ * 06. Customizer
43
+ * 07. Responsive
44
+ * 08. Others
45
+ *
46
+ * ---------------------------------------------------------
47
+ *
48
+ */
49
+ @import "compass";
50
+ @import "vendor/mixins";
51
+
52
+ /**
53
+ * 01. Base
54
+ */
55
+ .csf{
56
+ margin-left: 20px;
57
+ margin-right: 0;
58
+ }
59
+
60
+ /**
61
+ * 01. 01. Header
62
+ */
63
+ .csf-header{
64
+ h1{
65
+ float: right;
66
+ }
67
+
68
+ fieldset{
69
+ float: left;
70
+ }
71
+ }
72
+
73
+ /**
74
+ * 01. 02. Header Buttons
75
+ */
76
+ .csf-buttons{
77
+ float: left;
78
+ direction: ltr;
79
+ }
80
+
81
+ .csf-header-left{
82
+ float: right;
83
+ }
84
+
85
+ .csf-header-right{
86
+ float: left;
87
+ }
88
+
89
+ /**
90
+ * 01. 03. Navigation
91
+ */
92
+ .csf-nav{
93
+ float: right;
94
+
95
+ ul{
96
+ clear: right;
97
+
98
+ li{
99
+ .csf-section-active:after{
100
+ right: auto;
101
+ left: 0;
102
+ border-left-color: #fff;
103
+ border-right-color: transparent;
104
+ }
105
+
106
+ .csf-arrow:after{
107
+ content: "\f053";
108
+ right: auto;
109
+ left: 10px;
110
+ }
111
+
112
+ &.csf-tab-active .csf-arrow:after{
113
+ @include transform( rotate(-90deg) );
114
+ }
115
+ }
116
+
117
+ ul{
118
+ li{
119
+ a{
120
+ padding-right: 25px;
121
+ padding-left: 15px;
122
+ }
123
+ }
124
+
125
+ &:before{
126
+ left: auto;
127
+ right: 15px;
128
+ }
129
+ }
130
+ }
131
+
132
+ .fa{
133
+ margin-left: 5px;
134
+ margin-right: 0;
135
+ }
136
+ }
137
+
138
+ .csf-nav-background{
139
+ left: auto;
140
+ right: 0;
141
+ }
142
+
143
+ /**
144
+ * 01. 04. Content
145
+ */
146
+ .csf-content{
147
+ margin-left: 0;
148
+ margin-right: 225px;
149
+ }
150
+
151
+ /**
152
+ * 01. 05. Section
153
+ */
154
+ .csf-sections{
155
+ float: right;
156
+ }
157
+
158
+ /**
159
+ * 01. 06. Show all options
160
+ */
161
+ .csf-show-all .csf-content{
162
+ margin-right: 0;
163
+ overflow: hidden;
164
+ }
165
+
166
+ .csf-expand-all{
167
+ float: right;
168
+ right: auto;
169
+ left: 40px;
170
+ margin-right: 0;
171
+ margin-left: 4px;
172
+ }
173
+
174
+ /**
175
+ * 01. 07. Search Input
176
+ */
177
+ .csf-search{
178
+ float: right;
179
+
180
+ input{
181
+ margin: 0 0 0 5px;
182
+ }
183
+ }
184
+
185
+ /**
186
+ * 01. 08. Copyright
187
+ */
188
+ .csf-copyright{
189
+ float: right;
190
+ }
191
+
192
+ /**
193
+ * 01. 09. Metabox
194
+ */
195
+ .csf-metabox{
196
+ margin: -6px -12px -12px -12px;
197
+
198
+ .csf-section-title{
199
+ padding: 20px;
200
+
201
+ .fa{
202
+ margin-left: 5px;
203
+ margin-right: 0;
204
+ }
205
+ }
206
+ }
207
+
208
+ .csf-section-title .fa{
209
+ margin-left: 5px;
210
+ margin-right: 0;
211
+ }
212
+
213
+ /**
214
+ * 02. Fields
215
+ */
216
+ .csf-field{
217
+
218
+ .csf-title{
219
+ float: right;
220
+ }
221
+
222
+ .csf-fieldset{
223
+ margin-left: 0;
224
+ margin-right: 30%;
225
+ }
226
+ }
227
+
228
+ .csf-pseudo-field{
229
+ padding: 0 0 0 5px !important;
230
+ }
231
+
232
+ /**
233
+ * 02. 01. Field: typography
234
+ */
235
+ .csf-field-typography{
236
+
237
+ select{
238
+ margin: 0;
239
+ width: 100%;
240
+ }
241
+
242
+ .csf--blocks-inputs{
243
+ .csf--blocks{
244
+ flex-direction: row-reverse;
245
+ }
246
+ }
247
+ }
248
+
249
+ /**
250
+ * 02. 02. Field: checkbox, radio
251
+ */
252
+ .csf-field-checkbox,
253
+ .csf-field-radio{
254
+
255
+ .csf--inline-list li{
256
+ margin-right: 0;
257
+ margin-left: 15px;
258
+ }
259
+ }
260
+
261
+ /**
262
+ * 02. 03. Field: switcher
263
+ */
264
+ .csf-field-switcher{
265
+
266
+ .csf--switcher{
267
+ float: right;
268
+ }
269
+
270
+ .csf--label{
271
+ float: right;
272
+ margin-left: 0;
273
+ margin-right: 5px;
274
+ }
275
+ }
276
+
277
+ /**
278
+ * 02. 04. Field: upload
279
+ */
280
+ .csf-field-upload{
281
+
282
+ .csf--remove,
283
+ .csf--buttons{
284
+ margin-left: 0;
285
+ margin-right: 5px;
286
+ }
287
+ }
288
+
289
+ /**
290
+ * 02. 05. Field: group
291
+ */
292
+ .csf-field-group{
293
+
294
+ .csf-cloneable-title{
295
+ padding: 15px 10px 15px 65px;
296
+ }
297
+
298
+ .csf-cloneable-helper{
299
+ right: auto;
300
+ left: 10px;
301
+ }
302
+ }
303
+
304
+ /**
305
+ * 02. 06. Field: repeater
306
+ */
307
+ .csf-field-repeater{
308
+
309
+ .csf-repeater-helper{
310
+ border-left: 0;
311
+ border-right: 1px solid #eee;
312
+ }
313
+ }
314
+
315
+ /**
316
+ * 02. 07. Field: help
317
+ */
318
+ .csf-help{
319
+ right: auto;
320
+ left: 5px;
321
+ }
322
+
323
+ /**
324
+ * 02. 08. Field: icon
325
+ */
326
+ .csf-field-icon{
327
+
328
+ .button{
329
+ margin-right: 0;
330
+ margin-left: 5px;
331
+ }
332
+
333
+ .csf-icon-preview i{
334
+ margin-right: 0;
335
+ margin-left: 5px;
336
+ }
337
+ }
338
+
339
+ /**
340
+ * 02. 09. Field: gallery
341
+ */
342
+ .csf-field-gallery{
343
+
344
+ ul li{
345
+ margin-right: 0;
346
+ margin-left: 5px;
347
+ }
348
+
349
+ .button{
350
+ margin-right: 0;
351
+ margin-left: 5px;
352
+ }
353
+ }
354
+
355
+ /**
356
+ * 02. 11. Field: tabbed
357
+ */
358
+ .csf-field-tabbed{
359
+
360
+ .csf-tabbed-nav{
361
+
362
+ .fa{
363
+ padding-right: 0;
364
+ padding-left: 5px;
365
+ }
366
+
367
+ a{
368
+ margin-right: 0;
369
+ margin-left: 5px;
370
+ }
371
+ }
372
+ }
373
+
374
+ /**
375
+ * 02. 12. Field: media
376
+ */
377
+ .csf-field-media{
378
+
379
+ .button{
380
+ margin-left: 0;
381
+ margin-right: 7px;
382
+ }
383
+
384
+ .hidden + .button{
385
+ margin-right: 0;
386
+ }
387
+ }
388
+
389
+ /**
390
+ * 02. 13. Field: notice
391
+ */
392
+ .csf-notice{
393
+ border-left: none;
394
+ border-right-style: solid;
395
+ border-right-width: 4px;
396
+ }
397
+
398
+ /**
399
+ * 02. 14. Field: border, spacing, dimensions
400
+ */
401
+ .csf-field-dimensions,
402
+ .csf-field-spacing,
403
+ .csf-field-border{
404
+
405
+ .csf--input{
406
+ float: right;
407
+ margin-right: 0;
408
+ margin-left: 15px;
409
+ }
410
+
411
+ .csf--left{
412
+ float: right;
413
+ }
414
+ }
415
+
416
+ /**
417
+ * 02. 15. Field: background
418
+ */
419
+ .csf-field-background{
420
+
421
+ .csf--block{
422
+ float: right;
423
+ }
424
+
425
+ .csf--select,
426
+ .csf--media{
427
+ padding-right: 0;
428
+ }
429
+
430
+ .csf--title{
431
+ margin-right: 0;
432
+ margin-left: 5px;
433
+ }
434
+ }
435
+
436
+ /**
437
+ * 02. 16. Field: spinner
438
+ */
439
+ .csf-field-spinner{
440
+
441
+ .csf--spin{
442
+ float: right;
443
+ }
444
+ }
445
+
446
+ /**
447
+ * 02. 17. Field: slider
448
+ */
449
+ .csf-field-slider{
450
+
451
+ .ui-slider{
452
+ direction: ltr;
453
+ }
454
+
455
+ input[type="text"]{
456
+ margin-left: 0;
457
+ margin-right: 15px;
458
+ }
459
+
460
+ em{
461
+ padding-left: 0;
462
+ padding-right: 5px;
463
+ }
464
+ }
465
+
466
+ /**
467
+ * 02. 18. Field: button_set
468
+ */
469
+ .csf-field-button_set{
470
+
471
+ .csf--button-group{
472
+ float: right;
473
+ }
474
+ }
475
+
476
+ /**
477
+ * 02. 19. Field: link_color
478
+ */
479
+ .csf-field-link_color{
480
+
481
+ .csf--left{
482
+ float: right;
483
+ margin-right: 0;
484
+ margin-left: 10px;
485
+ }
486
+ }
487
+
488
+ /**
489
+ * 02. 20. Field: color_group
490
+ */
491
+ .csf-field-color_group{
492
+
493
+ .csf--left{
494
+ float: right;
495
+ margin-right: 0;
496
+ margin-left: 10px;
497
+ }
498
+ }
499
+
500
+ /**
501
+ * 02. 21. Field: palette
502
+ */
503
+ .csf-field-palette{
504
+
505
+ .csf--palette{
506
+ margin-right: 0;
507
+ margin-left: 10px;
508
+ }
509
+ }
510
+
511
+ /**
512
+ * 03. Taxonomy
513
+ */
514
+ .csf-taxonomy-add-fields{
515
+
516
+ .csf-fieldset{
517
+ margin-right: 0;
518
+ }
519
+
520
+ .csf-field > .csf-fieldset > .csf-help{
521
+ left: -5px;
522
+ right: auto;
523
+ }
524
+ }
525
+
526
+ .csf-taxonomy-edit-fields{
527
+
528
+ .csf-fieldset{
529
+ margin-left: 0;
530
+ margin-right: 225px;
531
+ }
532
+
533
+ .csf-field > .csf-fieldset > .csf-help{
534
+ right: auto;
535
+ left: -5px;
536
+ }
537
+ }
538
+
539
+ /**
540
+ * 04. Profile
541
+ */
542
+ .csf-profile{
543
+
544
+ > h2 > .fa{
545
+ padding-right: 0;
546
+ padding-left: 7px;
547
+ }
548
+
549
+ > .csf-field{
550
+
551
+ > .csf-fieldset{
552
+ margin-left: 0;
553
+ margin-right: 220px;
554
+ }
555
+
556
+ > .csf-help{
557
+ left: 0;
558
+ right: auto;
559
+ }
560
+ }
561
+ }
562
+
563
+ .csf-taxonomy-edit-fields{
564
+
565
+ .csf-fieldset{
566
+ margin-left: 0;
567
+ margin-right: 225px;
568
+ }
569
+
570
+ .csf-field > .csf-fieldset > .csf-help{
571
+ right: auto;
572
+ left: -5px;
573
+ }
574
+ }
575
+
576
+ /**
577
+ * 05. Modal
578
+ */
579
+ .csf-modal-content{
580
+
581
+ .csf-field{
582
+ padding: 15px 15px 15px 30px;
583
+ }
584
+ }
585
+
586
+ .csf-modal-title{
587
+ padding: 0 16px 0 36px;
588
+ }
589
+
590
+ .csf-modal-close{
591
+ right: auto;
592
+ left: 0;
593
+ }
594
+
595
+ /**
596
+ * 06. Customizer
597
+ */
598
+ .control-section{
599
+
600
+ .csf-field{
601
+
602
+ .csf-fieldset{
603
+ margin-right: 0;
604
+ }
605
+ }
606
+ }
607
+
608
+ /**
609
+ * 07. Responsive
610
+ */
611
+ @media only screen and (max-width:1200px){
612
+ .csf-metabox .csf-field .csf-fieldset{
613
+ margin-left: 0;
614
+ }
615
+ }
616
+
617
+ @media only screen and (max-width:782px){
618
+ .csf .csf-fieldset,
619
+ .csf .csf-content{
620
+ margin-right: 0;
621
+ }
622
+ }
623
+
624
+ /**
625
+ * 08. Others
626
+ */
627
+ .csf-field{
628
+
629
+ .csf--transparent-slider{
630
+ margin-left: 0;
631
+ margin-right: 2px;
632
+
633
+ .ui-slider-handle{
634
+ margin: 0 -11px;
635
+ }
636
+ }
637
+
638
+ .csf--transparent-offset{
639
+ background-position: center right;
640
+ }
641
+
642
+ .csf--transparent-text{
643
+ right: auto;
644
+ left: 10px;
645
+ }
646
+ }
admin/views/framework/assets/scss/csf.scss ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ *
3
+ * ---------------------------------------------------------
4
+ * CODESTAR FRAMEWORK CSS MAP
5
+ * ---------------------------------------------------------
6
+ *
7
+ * 01. Base
8
+ * 01. 01. Header
9
+ * 01. 02. Sticky
10
+ * 01. 03. Header Buttons
11
+ * 01. 04. Navigation
12
+ * 01. 05. Wrapper
13
+ * 01. 06. Content
14
+ * 01. 07. Section
15
+ * 01. 08. Footer
16
+ * 01. 09. Copyright
17
+ * 01. 10. Show All Options
18
+ * 01. 11. Search Input
19
+ * 01. 12. Metabox
20
+ * 01. 13. Comment Metabox
21
+ * 01. 14. Help Tooltip
22
+ * 02. Themes
23
+ * 02. 01. Theme Dark
24
+ * 02. 02. Theme Light
25
+ * 03. Fields
26
+ * 03. 01. Field
27
+ * 03. 02. Field: accordion
28
+ * 03. 03. Field: background
29
+ * 03. 04. Field: backup
30
+ * 03. 05. Field: border, spacing, dimensions
31
+ * 03. 06. Field: button_set
32
+ * 03. 07. Field: checkbox, radio
33
+ * 03. 08. Field: code_editor
34
+ * 03. 09. Field: color
35
+ * 03. 10. Field: color_group
36
+ * 03. 11. Field: fieldset
37
+ * 03. 12. Field: date
38
+ * 03. 13. Field: gallery
39
+ * 03. 14. Field: group
40
+ * 03. 15. Field: icon
41
+ * 03. 16. Field: image_select
42
+ * 03. 17. Field: link_color
43
+ * 03. 18. Field: map
44
+ * 03. 19. Field: media
45
+ * 03. 20. Field: palette
46
+ * 03. 21. Field: repeater
47
+ * 03. 22. Field: select
48
+ * 03. 23. Field: slider
49
+ * 03. 24. Field: sortable
50
+ * 03. 25. Field: sorter
51
+ * 03. 26. Field: spinner
52
+ * 03. 27. Field: switcher
53
+ * 03. 28. Field: tabbed
54
+ * 03. 29. Field: text
55
+ * 03. 30. Field: textarea
56
+ * 03. 31. Field: typography
57
+ * 03. 32. Field: upload
58
+ * 03. 33. Field: wp_editor
59
+ * 03. 34. Field: heading
60
+ * 03. 35. Field: subheading
61
+ * 03. 36. Field: submessage
62
+ * 03. 37. Field: notice
63
+ * 03. 38. Field: number
64
+ * 03. 39. Field: others
65
+ * 04. Widget
66
+ * 05. Customizer
67
+ * 06. Taxonomy
68
+ * 07. Profile
69
+ * 08. Modal
70
+ * 08. 01. Shortcode Modal
71
+ * 08. 02. Gutenberg Modal
72
+ * 08. 03. Icon Modal
73
+ * 09. Helper
74
+ * 10. Welcome Page
75
+ * 11. Responsive
76
+ * 12. Others
77
+ *
78
+ * ---------------------------------------------------------
79
+ *
80
+ */
81
+ @import "compass";
82
+ @import "vendor/mixins";
83
+ @import "vendor/base";
84
+ @import "vendor/themes";
85
+ @import "vendor/fields";
86
+ @import "vendor/widget";
87
+ @import "vendor/customizer";
88
+ @import "vendor/taxonomy";
89
+ @import "vendor/profile";
90
+ @import "vendor/modal";
91
+ @import "vendor/helper";
92
+ @import "vendor/welcome";
93
+ @import "vendor/responsive";
94
+ @import "vendor/chosen";
admin/views/framework/assets/scss/vendor/_base.scss ADDED
@@ -0,0 +1,446 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * 01. Base
3
+ */
4
+ .csf{
5
+ position: relative;
6
+
7
+ label{
8
+ padding: 0;
9
+ margin: 0;
10
+ display: inline-block;
11
+ }
12
+ }
13
+
14
+ .csf-ab-icon{
15
+ top: 2px;
16
+ }
17
+
18
+ #screen-meta-links + .csf-options{
19
+ margin-top: 40px;
20
+ }
21
+
22
+ .csf-options{
23
+ margin-top: 20px;
24
+ margin-right: 20px;
25
+ }
26
+
27
+ /**
28
+ * 01. 01. Header
29
+ */
30
+ .csf-header{
31
+ position: relative;
32
+ }
33
+
34
+ .csf-header-inner{
35
+ padding: 25px;
36
+
37
+ h1{
38
+ float: left;
39
+ font-size: 1.5em;
40
+ line-height: 26px;
41
+ font-weight: 400;
42
+ margin: 0;
43
+
44
+ small{
45
+ font-size: 11px;
46
+ font-weight: 500;
47
+ }
48
+ }
49
+ }
50
+
51
+ /**
52
+ * 01. 02. Sticky
53
+ */
54
+ .csf-sticky{
55
+
56
+ .csf-header-inner{
57
+ position: fixed;
58
+ z-index: 99999;
59
+ top: 32px;
60
+ @include box-shadow(0 5px 25px rgba(black, 0.125));
61
+ }
62
+ }
63
+
64
+ /**
65
+ * 01. 03. Header Buttons
66
+ */
67
+ .csf-buttons{
68
+ float: right;
69
+ @include transition(opacity 0.2s);
70
+
71
+ .button{
72
+ margin: 0 2px;
73
+ line-height: 26px;
74
+
75
+ &:focus{
76
+ outline: none !important;
77
+ box-shadow: none !important;
78
+ }
79
+ }
80
+
81
+ .csf-save{
82
+ min-width: 72px;
83
+ }
84
+ }
85
+
86
+ .csf-header-left{
87
+ float: left;
88
+ }
89
+
90
+ .csf-header-right{
91
+ float: right;
92
+ }
93
+
94
+ /**
95
+ * 01. 04. Navigation
96
+ */
97
+ .csf-nav{
98
+ display: block;
99
+ position: relative;
100
+ z-index: 10;
101
+ float: left;
102
+ width: 225px;
103
+
104
+ ul{
105
+ clear: left;
106
+ margin: 0;
107
+ list-style-type: none;
108
+
109
+ li{
110
+ margin-bottom: 0;
111
+
112
+ a{
113
+ font-size: 13px;
114
+ position: relative;
115
+ display: block;
116
+ padding: 14px 12px;
117
+ text-decoration: none;
118
+ @include transition(all 0.3s ease);
119
+
120
+ &:focus{
121
+ outline: none;
122
+ @include box-shadow(none);
123
+ }
124
+ }
125
+
126
+ .csf-section-active{
127
+
128
+ &:after{
129
+ content: " ";
130
+ position: absolute;
131
+ right: 0;
132
+ top: 50%;
133
+ height: 0;
134
+ width: 0;
135
+ pointer-events: none;
136
+ border: solid transparent;
137
+ border-right-color: #fff;
138
+ border-width: 4px;
139
+ margin-top: -4px;
140
+ }
141
+ }
142
+
143
+ .csf-arrow:after{
144
+ content: "\f054";
145
+ display: inline-block;
146
+ font-family: "FontAwesome";
147
+ font-size: 9px;
148
+ line-height: 1;
149
+ position: absolute;
150
+ right: 10px;
151
+ top: 50%;
152
+ margin-top: -4px;
153
+ @include transform(rotate(0));
154
+ }
155
+
156
+ &.csf-tab-active{
157
+
158
+ .csf-arrow:after{
159
+ @include transform( rotate(90deg) );
160
+ }
161
+
162
+ ul{
163
+ display: block;
164
+ }
165
+ }
166
+ }
167
+
168
+ ul{
169
+ display: none;
170
+ position: relative;
171
+
172
+ li{
173
+
174
+ a{
175
+ font-size: 12px;
176
+ padding: 12px 14px 12px 24px;
177
+ }
178
+ }
179
+ }
180
+ }
181
+
182
+ .fa{
183
+ width: 20px;
184
+ margin-right: 5px;
185
+ font-size: 14px;
186
+ text-align: center;
187
+ }
188
+
189
+ .csf-label-error{
190
+ margin-left: 4px;
191
+ vertical-align: top;
192
+ }
193
+ }
194
+
195
+ .csf-nav-background{
196
+ position: absolute;
197
+ top: 0;
198
+ left: 0;
199
+ bottom: 0;
200
+ z-index: 9;
201
+ width: 225px;
202
+ }
203
+
204
+ /**
205
+ * 01. 05. Wrapper
206
+ */
207
+ .csf-wrapper{
208
+ position: relative;
209
+ }
210
+
211
+ /**
212
+ * 01. 06. Content
213
+ */
214
+ .csf-content{
215
+ position: relative;
216
+ margin-left: 225px;
217
+ background-color: #fff;
218
+ @include transition(opacity 0.2s);
219
+ }
220
+
221
+ /**
222
+ * 01. 07. Section
223
+ */
224
+ .csf-sections{
225
+ float: left;
226
+ width: 100%;
227
+ }
228
+
229
+ .csf-section{
230
+ display: none;
231
+ }
232
+
233
+ .csf-section-title{
234
+ display: none;
235
+ padding: 20px 30px;
236
+ background-color: #f5f5f5;
237
+ border-top: 1px solid #eee;
238
+ border-bottom: 1px solid #eee;
239
+
240
+ h3{
241
+ margin: 0;
242
+ padding: 0 ;
243
+ font-size: 13px;
244
+ font-weight: bold;
245
+ text-transform: uppercase;
246
+ }
247
+
248
+ .fa{
249
+ margin-right: 5px;
250
+ }
251
+ }
252
+
253
+ /**
254
+ * 01. 08. Footer
255
+ */
256
+ .csf-footer{
257
+ padding: 20px;
258
+ font-size: 11px;
259
+ }
260
+
261
+ /**
262
+ * 01. 09. Copyright
263
+ */
264
+ .csf-copyright{
265
+ float: left;
266
+ margin-top: 5px;
267
+ }
268
+
269
+ /**
270
+ * 01. 10. Show All Options
271
+ */
272
+ .csf-search-all,
273
+ .csf-show-all{
274
+ .csf-nav-background,
275
+ .csf-nav{
276
+ display: none;
277
+ }
278
+
279
+ .csf-content{
280
+ margin-left: 0;
281
+ }
282
+
283
+ .csf-section-title,
284
+ .csf-section{
285
+ display: block !important;
286
+ }
287
+ }
288
+
289
+ .csf-search-all{
290
+ .csf-section-title{
291
+ display: none !important;
292
+ }
293
+ }
294
+
295
+ //
296
+ // Expand
297
+ //
298
+ .csf-expand-all{
299
+ float: left;
300
+ padding: 0 8px;
301
+ margin-right: 4px;
302
+ z-index: 1;
303
+ font-size: 14px;
304
+ line-height: 28px;
305
+ cursor: pointer;
306
+ user-select: none;
307
+ @include border-radius(2px);
308
+ @include transition(all 0.2s);
309
+
310
+ span{
311
+ font-size: 11px;
312
+ vertical-align: middle;
313
+ }
314
+ }
315
+
316
+ /**
317
+ * 01. 11. Search Input
318
+ */
319
+ .csf-search{
320
+ float: left;
321
+
322
+ input{
323
+ margin: 0 2px 0 0;
324
+ border: none;
325
+ font-size: 12px;
326
+ line-height: 28px;
327
+ min-height: 28px;
328
+ text-align: inherit;
329
+ padding: 0 10px;
330
+ @include border-radius(2px);
331
+ @include box-shadow(none);
332
+
333
+ &:focus{
334
+ @include box-shadow(none);
335
+ }
336
+ }
337
+ }
338
+
339
+ .csf-saving{
340
+
341
+ .csf-buttons,
342
+ .csf-content{
343
+ cursor: default;
344
+ pointer-events: none;
345
+ @include opacity(0.5);
346
+ }
347
+ }
348
+
349
+ /**
350
+ * 01. 12. Metabox
351
+ */
352
+ .csf-metabox{
353
+ margin: -6px -12px -12px -12px;
354
+
355
+ .csf-section-title{
356
+ padding: 20px;
357
+ }
358
+ }
359
+
360
+ .block-editor-page{
361
+
362
+ .csf-metabox{
363
+ margin: -6px -14px -12px -14px;
364
+ }
365
+ }
366
+
367
+ .csf-restore-wrapper{
368
+ text-align: right;
369
+ padding: 10px;
370
+ border-top: 1px solid #eee;
371
+
372
+ .csf-button-cancel,
373
+ input{
374
+ display: none;
375
+ }
376
+
377
+ span{
378
+ -webkit-user-select: none;
379
+ user-select: none;
380
+ }
381
+
382
+
383
+ input:checked ~ .csf-button-restore{
384
+ display: none;
385
+ }
386
+
387
+ input:checked ~ .csf-button-cancel{
388
+ display: inline-block;
389
+ }
390
+
391
+ }
392
+
393
+ #side-sortables{
394
+
395
+ .csf-section-title{
396
+ padding: 12px;
397
+ }
398
+
399
+ .csf-field{
400
+ padding: 12px;
401
+
402
+ .csf-title{
403
+ float: none;
404
+ width: 100%;
405
+ margin-bottom: 10px;
406
+ }
407
+
408
+ .csf-fieldset{
409
+ margin-left: 0;
410
+ }
411
+ }
412
+
413
+ .csf-notice{
414
+ padding: 12px;
415
+ }
416
+ }
417
+
418
+ /**
419
+ * 01. 13. Comment Metabox
420
+ */
421
+ .csf-comment-metabox{
422
+ margin: -6px -12px -12px -12px;
423
+
424
+ .csf-section-title{
425
+ padding: 20px;
426
+ }
427
+ }
428
+
429
+
430
+ /**
431
+ * 01. 14. Help Tooltip
432
+ */
433
+ .csf-tooltip{
434
+ position: absolute;
435
+ z-index: 5000001;
436
+ font-size: 12px;
437
+ line-height: 1.4;
438
+ text-align: center;
439
+ text-decoration: none;
440
+ padding: 6px 12px;
441
+ max-width: 200px;
442
+ color: #fff;
443
+ background-color: #000;
444
+ background-color: rgba(black, 0.85);
445
+ @include border-radius(4px);
446
+ }
admin/views/framework/assets/scss/vendor/_chosen.scss ADDED
@@ -0,0 +1,405 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Chosen JS Styles
3
+ */
4
+ .chosen-container {
5
+ position: relative;
6
+ display: inline-block;
7
+ vertical-align: middle;
8
+ font-size: 13px;
9
+ user-select: none;
10
+ }
11
+
12
+ .chosen-container * {
13
+ box-sizing: border-box;
14
+ }
15
+
16
+ .chosen-container .chosen-drop {
17
+ position: absolute;
18
+ top: 100%;
19
+ z-index: 1010;
20
+ width: 100%;
21
+ border: 1px solid #aaa;
22
+ border-top: 0;
23
+ background: #fff;
24
+ box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
25
+ clip: rect(0, 0, 0, 0);
26
+ clip-path: inset(100% 100%);
27
+ }
28
+
29
+ .chosen-container.chosen-with-drop .chosen-drop {
30
+ clip: auto;
31
+ clip-path: none;
32
+ }
33
+
34
+ .chosen-container a {
35
+ cursor: pointer;
36
+ }
37
+
38
+ .chosen-container .search-choice .group-name, .chosen-container .chosen-single .group-name {
39
+ margin-right: 4px;
40
+ overflow: hidden;
41
+ white-space: nowrap;
42
+ text-overflow: ellipsis;
43
+ font-weight: normal;
44
+ color: #999999;
45
+ }
46
+
47
+ .chosen-container .search-choice .group-name:after, .chosen-container .chosen-single .group-name:after {
48
+ content: ":";
49
+ padding-left: 2px;
50
+ vertical-align: top;
51
+ }
52
+
53
+ .chosen-container-single .chosen-single {
54
+ position: relative;
55
+ display: block;
56
+ overflow: hidden;
57
+ padding: 0 0 0 8px;
58
+ height: 25px;
59
+ border: 1px solid #aaa;
60
+ border-radius: 5px;
61
+ background-color: #fff;
62
+ background: linear-gradient(#fff 20%, #f6f6f6 50%, #eee 52%, #f4f4f4 100%);
63
+ background-clip: padding-box;
64
+ box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1);
65
+ color: #444;
66
+ text-decoration: none;
67
+ white-space: nowrap;
68
+ line-height: 24px;
69
+ }
70
+
71
+ .chosen-container-single .chosen-default {
72
+ color: #999;
73
+ }
74
+
75
+ .chosen-container-single .chosen-single span {
76
+ display: block;
77
+ overflow: hidden;
78
+ margin-right: 26px;
79
+ text-overflow: ellipsis;
80
+ white-space: nowrap;
81
+ }
82
+
83
+ .chosen-container-single .chosen-single-with-deselect span {
84
+ margin-right: 38px;
85
+ }
86
+
87
+ .chosen-container-single .chosen-single abbr {
88
+ position: absolute;
89
+ top: 6px;
90
+ right: 26px;
91
+ display: block;
92
+ width: 12px;
93
+ height: 12px;
94
+ font-size: 1px;
95
+ }
96
+
97
+ .chosen-container-single .chosen-single div {
98
+ position: absolute;
99
+ top: 0;
100
+ right: 0;
101
+ display: block;
102
+ width: 18px;
103
+ height: 100%;
104
+ }
105
+
106
+ .chosen-container-single .chosen-single div b {
107
+ display: block;
108
+ width: 100%;
109
+ height: 100%;
110
+ }
111
+
112
+ .chosen-container-single .chosen-search {
113
+ position: relative;
114
+ z-index: 1010;
115
+ margin: 0;
116
+ padding: 3px 4px;
117
+ white-space: nowrap;
118
+ }
119
+
120
+ .chosen-container-single .chosen-search input[type="text"] {
121
+ margin: 1px 0;
122
+ padding: 4px 20px 4px 5px;
123
+ width: 100%;
124
+ height: auto;
125
+ outline: 0;
126
+ border: 1px solid #aaa;
127
+ font-size: 1em;
128
+ font-family: sans-serif;
129
+ line-height: normal;
130
+ border-radius: 0;
131
+ }
132
+
133
+ .chosen-container-single .chosen-drop {
134
+ margin-top: -1px;
135
+ border-radius: 0 0 4px 4px;
136
+ background-clip: padding-box;
137
+ }
138
+
139
+ .chosen-container-single.chosen-container-single-nosearch .chosen-search {
140
+ position: absolute;
141
+ clip: rect(0, 0, 0, 0);
142
+ clip-path: inset(100% 100%);
143
+ }
144
+
145
+ .chosen-container .chosen-results {
146
+ color: #444;
147
+ position: relative;
148
+ overflow-x: hidden;
149
+ overflow-y: auto;
150
+ margin: 0 4px 4px 0;
151
+ padding: 0 0 0 4px;
152
+ max-height: 240px;
153
+ -webkit-overflow-scrolling: touch;
154
+ }
155
+
156
+ .chosen-container .chosen-results li {
157
+ display: none;
158
+ margin: 0;
159
+ padding: 5px 6px;
160
+ list-style: none;
161
+ line-height: 15px;
162
+ word-wrap: break-word;
163
+ -webkit-touch-callout: none;
164
+ }
165
+
166
+ .chosen-container .chosen-results li.active-result {
167
+ display: list-item;
168
+ cursor: pointer;
169
+ }
170
+
171
+ .chosen-container .chosen-results li.disabled-result {
172
+ display: list-item;
173
+ color: #ccc;
174
+ cursor: default;
175
+ }
176
+
177
+ .chosen-container .chosen-results li.highlighted {
178
+ background-color: #3875d7;
179
+ background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
180
+ color: #fff;
181
+ }
182
+
183
+ .chosen-container .chosen-results li.no-results {
184
+ color: #777;
185
+ display: list-item;
186
+ background: #f4f4f4;
187
+ }
188
+
189
+ .chosen-container .chosen-results li.group-result {
190
+ display: list-item;
191
+ font-weight: bold;
192
+ cursor: default;
193
+ }
194
+
195
+ .chosen-container .chosen-results li.group-option {
196
+ padding-left: 15px;
197
+ }
198
+
199
+ .chosen-container .chosen-results li em {
200
+ font-style: normal;
201
+ text-decoration: underline;
202
+ }
203
+
204
+ .chosen-container-multi .chosen-choices {
205
+ position: relative;
206
+ overflow: hidden;
207
+ margin: 0;
208
+ padding: 0 5px;
209
+ width: 100%;
210
+ height: auto;
211
+ border: 1px solid #aaa;
212
+ background-color: #fff;
213
+ background-image: linear-gradient(#eee 1%, #fff 15%);
214
+ cursor: text;
215
+ }
216
+
217
+ .chosen-container-multi .chosen-choices li {
218
+ float: left;
219
+ list-style: none;
220
+ }
221
+
222
+ .chosen-container-multi .chosen-choices li.search-field {
223
+ margin: 0;
224
+ padding: 0;
225
+ white-space: nowrap;
226
+ }
227
+
228
+ .chosen-container-multi .chosen-choices li.search-field input[type="text"] {
229
+ margin: 1px 0;
230
+ padding: 0;
231
+ outline: 0;
232
+ border: 0 !important;
233
+ background: transparent !important;
234
+ box-shadow: none;
235
+ color: #999;
236
+ font-size: 100%;
237
+ font-family: sans-serif;
238
+ line-height: normal;
239
+ border-radius: 0;
240
+ width: 25px;
241
+ height: 25px;
242
+ min-height: 25px;
243
+ }
244
+
245
+ .chosen-container-multi .chosen-choices li.search-choice {
246
+ position: relative;
247
+ margin: 3px 5px 3px 0;
248
+ padding: 3px 20px 3px 6px;
249
+ border: 1px solid #aaa;
250
+ max-width: 100%;
251
+ border-radius: 3px;
252
+ background-color: #eeeeee;
253
+ background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
254
+ background-size: 100% 19px;
255
+ background-repeat: repeat-x;
256
+ background-clip: padding-box;
257
+ box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
258
+ color: #333;
259
+ line-height: 13px;
260
+ cursor: default;
261
+ }
262
+
263
+ .chosen-container-multi .chosen-choices li.search-choice span {
264
+ word-wrap: break-word;
265
+ white-space: nowrap;
266
+ }
267
+
268
+ .chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
269
+ position: absolute;
270
+ top: 0;
271
+ right: 0;
272
+ display: block;
273
+ width: 12px;
274
+ height: 12px;
275
+ font-size: 1px;
276
+ }
277
+
278
+ .chosen-container-multi .chosen-choices li.search-choice-disabled {
279
+ padding-right: 5px;
280
+ border: 1px solid #ccc;
281
+ background-color: #e4e4e4;
282
+ background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
283
+ color: #666;
284
+ }
285
+
286
+ .chosen-container-multi .chosen-choices li.search-choice-focus {
287
+ background: #d4d4d4;
288
+ }
289
+
290
+ .chosen-container-multi .chosen-results {
291
+ margin: 0;
292
+ padding: 0;
293
+ }
294
+
295
+ .chosen-container-multi .chosen-drop .result-selected {
296
+ display: list-item;
297
+ color: #ccc;
298
+ cursor: default;
299
+ }
300
+
301
+ .chosen-container-active .chosen-single {
302
+ border: 1px solid #5897fb;
303
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
304
+ }
305
+
306
+ .chosen-container-active.chosen-with-drop .chosen-single {
307
+ border: 1px solid #aaa;
308
+ border-bottom-right-radius: 0;
309
+ border-bottom-left-radius: 0;
310
+ background-image: linear-gradient(#eee 20%, #fff 80%);
311
+ box-shadow: 0 1px 0 #fff inset;
312
+ }
313
+
314
+ .chosen-container-active.chosen-with-drop .chosen-single div {
315
+ border-left: none;
316
+ background: transparent;
317
+ }
318
+
319
+ .chosen-container-active .chosen-choices {
320
+ border: 1px solid #5897fb;
321
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
322
+ }
323
+
324
+ .chosen-container-active .chosen-choices li.search-field input[type="text"] {
325
+ color: #222 !important;
326
+ }
327
+
328
+ .chosen-disabled {
329
+ opacity: 0.5 !important;
330
+ cursor: default;
331
+ }
332
+
333
+ .chosen-disabled .chosen-single {
334
+ cursor: default;
335
+ }
336
+
337
+ .chosen-disabled .chosen-choices .search-choice .search-choice-close {
338
+ cursor: default;
339
+ }
340
+
341
+ .chosen-rtl {
342
+ text-align: right;
343
+ }
344
+
345
+ .chosen-rtl .chosen-single {
346
+ overflow: visible;
347
+ padding: 0 8px 0 0;
348
+ }
349
+
350
+ .chosen-rtl .chosen-single span {
351
+ margin-right: 0;
352
+ margin-left: 26px;
353
+ direction: rtl;
354
+ }
355
+
356
+ .chosen-rtl .chosen-single-with-deselect span {
357
+ margin-left: 38px;
358
+ }
359
+
360
+ .chosen-rtl .chosen-single div {
361
+ right: auto;
362
+ left: 3px;
363
+ }
364
+
365
+ .chosen-rtl .chosen-single abbr {
366
+ right: auto;
367
+ left: 26px;
368
+ }
369
+
370
+ .chosen-rtl .chosen-choices li {
371
+ float: right;
372
+ }
373
+
374
+ .chosen-rtl .chosen-choices li.search-field input[type="text"] {
375
+ direction: rtl;
376
+ }
377
+
378
+ .chosen-rtl .chosen-choices li.search-choice {
379
+ margin: 3px 5px 3px 0;
380
+ padding: 3px 5px 3px 19px;
381
+ }
382
+
383
+ .chosen-rtl .chosen-choices li.search-choice .search-choice-close {
384
+ right: auto;
385
+ left: 4px;
386
+ }
387
+
388
+ .chosen-rtl.chosen-container-single .chosen-results {
389
+ margin: 0 0 4px 4px;
390
+ padding: 0 4px 0 0;
391
+ }
392
+
393
+ .chosen-rtl .chosen-results li.group-option {
394
+ padding-right: 15px;
395
+ padding-left: 0;
396
+ }
397
+
398
+ .chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
399
+ border-right: none;
400
+ }
401
+
402
+ .chosen-rtl .chosen-search input[type="text"] {
403
+ padding: 4px 5px 4px 20px;
404
+ direction: rtl;
405
+ }
admin/views/framework/assets/scss/vendor/_customizer.scss ADDED
@@ -0,0 +1,185 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * 05. Widget
3
+ */
4
+ .control-section{
5
+
6
+ .csf-field{
7
+ padding: 0;
8
+
9
+ .csf-title{
10
+ float: none;
11
+ width: 100%;
12
+ margin-bottom: 6px;
13
+
14
+ h4{
15
+ display: block;
16
+ font-size: 13px;
17
+ line-height: 1;
18
+ font-weight: 600;
19
+ color: inherit;
20
+ }
21
+ }
22
+
23
+ .csf-fieldset{
24
+ margin-left: 0;
25
+ }
26
+ }
27
+
28
+ .csf-help{
29
+ top: -5px;
30
+ right: -5px;
31
+ }
32
+
33
+ .csf-field-select select{
34
+ width: 100%;
35
+ }
36
+
37
+ .csf-field-heading{
38
+ color: inherit;
39
+ font-size: 14px;
40
+ line-height: 1em;
41
+ margin-right: -15px;
42
+ margin-left: -15px;
43
+ padding: 15px;
44
+ }
45
+
46
+ .csf-field-subheading{
47
+ color: inherit;
48
+ font-size: 11px;
49
+ margin-right: -15px;
50
+ margin-left: -15px;
51
+ padding: 10px 15px;
52
+ }
53
+
54
+ .csf-text-subtitle{
55
+ margin-top: 4px;
56
+ font-size: 12px;
57
+ }
58
+
59
+ .csf-field-submessage .csf-submessage{
60
+ margin-right: -15px;
61
+ margin-left: -15px;
62
+ padding: 15px;
63
+ }
64
+
65
+ .csf-fieldset{
66
+
67
+ .csf-field-submessage .csf-submessage,
68
+ .csf-field-heading,
69
+ .csf-field-subheading{
70
+ margin-left: 0;
71
+ margin-right: 0;
72
+ }
73
+ }
74
+
75
+ .csf-field-date{
76
+
77
+ .csf--to{
78
+ margin-left: 0;
79
+ }
80
+ }
81
+
82
+ .csf-field-sorter{
83
+
84
+ ul li{
85
+ padding: 5px;
86
+ }
87
+
88
+ .csf-modules{
89
+ float: none;
90
+ width: 100%;
91
+ }
92
+
93
+ .csf-modules:first-child{
94
+ padding-right: 0;
95
+ padding-bottom: 15px;
96
+ }
97
+ }
98
+
99
+ .csf-field-background{
100
+
101
+ .csf--background-attributes{
102
+ flex-direction: column;
103
+ }
104
+ }
105
+
106
+ .csf-field-spacing{
107
+ input{
108
+ width: 90px;
109
+ }
110
+ }
111
+
112
+ .csf-field-border{
113
+
114
+ .csf--input{
115
+ flex: 1 50%;
116
+ }
117
+
118
+ input,
119
+ select{
120
+ width: 100%;
121
+ }
122
+ }
123
+
124
+ .csf-field-spinner{
125
+ input{
126
+ width: 50px;
127
+ }
128
+ }
129
+
130
+ .csf-field-number{
131
+
132
+ .csf--wrap{
133
+ width: 100%;
134
+ }
135
+ }
136
+
137
+ .csf-field-backup{
138
+
139
+ .csf-export-data{
140
+ display: none;
141
+ }
142
+ }
143
+
144
+ .csf-field-fieldset{
145
+
146
+ .csf-fieldset-content{
147
+ border-color: #e5e5e5;
148
+ }
149
+
150
+ .csf-field{
151
+ padding: 10px;
152
+
153
+ .csf-title{
154
+ margin-bottom: 5px;
155
+ }
156
+
157
+ h4{
158
+ font-size: 12px;
159
+ }
160
+ }
161
+ }
162
+
163
+ .csf-field-group,
164
+ .csf-field-tabbed,
165
+ .csf-field-sortable,
166
+ .csf-field-repeater,
167
+ .csf-field-accordion{
168
+
169
+ .csf-field{
170
+ padding: 10px;
171
+
172
+ .csf-title{
173
+ margin-bottom: 5px;
174
+ }
175
+
176
+ h4{
177
+ font-size: 12px;
178
+ }
179
+ }
180
+ }
181
+
182
+ .csf-dependency-control.hidden{
183
+ display: none !important;
184
+ }
185
+ }
admin/views/framework/assets/scss/vendor/_fields.scss ADDED
@@ -0,0 +1,2193 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * 03. Fields
3
+ */
4
+ .csf-field{
5
+ position: relative;
6
+ padding: 30px;
7
+
8
+ + .csf-field:not(.hidden){
9
+ border-top: 1px solid #eee;
10
+ }
11
+
12
+ p:first-child{
13
+ margin-top: 0;
14
+ }
15
+
16
+ p:last-child{
17
+ margin-bottom: 0;
18
+ }
19
+
20
+ &:after,
21
+ &:before{
22
+ content: " ";
23
+ display: table;
24
+ }
25
+
26
+ &:after{
27
+ clear: both;
28
+ }
29
+
30
+ h4{
31
+ margin-top: 0;
32
+ }
33
+
34
+ .csf-title{
35
+ position: relative;
36
+ width: 20%;
37
+ float: left;
38
+
39
+ h4{
40
+ margin: 0;
41
+ color: #23282d;
42
+ }
43
+ }
44
+
45
+ .csf-fieldset{
46
+ margin-left: 25%;
47
+ }
48
+ }
49
+
50
+ .csf-pseudo-field{
51
+ padding: 0 5px 0 0 !important;
52
+ display: inline-block;
53
+
54
+ + .csf-pseudo-field{
55
+ border: 0;
56
+ }
57
+
58
+ pre{
59
+ display: none;
60
+ }
61
+ }
62
+
63
+ /**
64
+ * 03. 02. Field: accordion
65
+ */
66
+ .csf-field-accordion{
67
+
68
+ .csf-accordion-item{
69
+ position: relative;
70
+ margin-bottom: 5px;
71
+
72
+ h4{
73
+ font-size: 1em;
74
+ }
75
+ }
76
+
77
+ .csf-accordion-title{
78
+ display: block;
79
+ cursor: pointer;
80
+ position: relative;
81
+ margin: 0;
82
+ padding: 15px;
83
+ min-height: 0;
84
+ font-size: 100%;
85
+ user-select: none;
86
+ border: 1px solid #ccd0d4;
87
+ background-color: #fafafa;
88
+ box-shadow: 0 1px 1px rgba(0,0,0,.04);
89
+ transition: border-color .15s;
90
+
91
+ &:active,
92
+ &:hover,
93
+ &:focus{
94
+ outline: none;
95
+ border-color: #999;
96
+ }
97
+ }
98
+
99
+ .csf-accordion-icon{
100
+ width: 14px;
101
+ text-align: center;
102
+ }
103
+
104
+ .csf--icon{
105
+ width: 20px;
106
+ text-align: center;
107
+ }
108
+
109
+ .csf-accordion-content{
110
+ display: none;
111
+ padding: 0;
112
+ border: 1px solid #ccd0d4;
113
+ border-top: none;
114
+ background-color: #fff;
115
+ box-shadow: 0 1px 1px rgba(0,0,0,.04);
116
+
117
+ > .csf-field{
118
+ padding: 15px;
119
+ }
120
+ }
121
+
122
+ .csf-accordion-open{
123
+ display: block;
124
+ }
125
+ }
126
+
127
+ /**
128
+ * 03. 03. Field: background
129
+ */
130
+ .csf-field-background{
131
+
132
+ .csf-field{
133
+ border: 0 !important;
134
+ padding: 0;
135
+ margin-bottom: 6px;
136
+ margin-right: 6px;
137
+ }
138
+
139
+ .csf--title{
140
+ color: #777;
141
+ font-size: 12px;
142
+ }
143
+
144
+ .csf--background-colors{
145
+ display: flex;
146
+ }
147
+
148
+ .csf--background-attributes{
149
+ display: flex;
150
+ flex-wrap: wrap;
151
+
152
+ select{
153
+ min-width: 100%;
154
+ margin: 0;
155
+ }
156
+
157
+ .csf-field{
158
+ flex: 1;
159
+ }
160
+ }
161
+
162
+ .csf--attributes-hidden{
163
+ display: none;
164
+ }
165
+
166
+ .wp-color-result.button{
167
+ margin-bottom: 0;
168
+ }
169
+ }
170
+
171
+ /**
172
+ * 03. 04. Field: backup
173
+ */
174
+ .csf-field-backup{
175
+
176
+ textarea{
177
+ width: 100%;
178
+ min-height: 200px;
179
+ margin-bottom: 5px;
180
+ }
181
+
182
+ small{
183
+ display: inline-block;
184
+ margin: 5px;
185
+ }
186
+
187
+ hr{
188
+ margin: 20px 0;
189
+ border: none;
190
+ border-bottom: 1px solid #e5e5e5;
191
+ }
192
+ }
193
+
194
+ /**
195
+ * 03. 05. Field: border, spacing, dimensions
196
+ */
197
+ .csf-field-border,
198
+ .csf-field-spacing,
199
+ .csf-field-dimensions{
200
+
201
+ .csf--inputs{
202
+ float: left;
203
+ display: flex;
204
+ flex-wrap: wrap;
205
+ }
206
+
207
+ .csf--input{
208
+ display: flex;
209
+ padding-right: 6px;
210
+ padding-bottom: 4px;
211
+ box-sizing: border-box;
212
+
213
+ select{
214
+ margin: 0;
215
+ }
216
+
217
+ input{
218
+ position: relative;
219
+ z-index: 1;
220
+ margin: 0;
221
+ width: 65px;
222
+ max-width: 100%;
223
+ text-align: center;
224
+ }
225
+ }
226
+
227
+ .csf--color{
228
+ float: left;
229
+ }
230
+
231
+ .csf--label{
232
+ display: flex;
233
+ flex-direction: column;
234
+ justify-content: center;
235
+ user-select: none;
236
+ min-width: 20px;
237
+ max-width: 100%;
238
+ padding: 0 4px;
239
+ font-size: 12px;
240
+ text-align: center;
241
+ color: #555;
242
+ border: 1px solid #7B776C;
243
+ background-color: #f5f5f5;
244
+ }
245
+
246
+ .csf--icon{
247
+ border-right: 0;
248
+ border-radius: 4px 0 0 4px;
249
+ }
250
+
251
+ .csf--icon + input{
252
+ border-top-left-radius: 0;
253
+ border-bottom-left-radius: 0;
254
+ }
255
+
256
+ .csf--unit{
257
+ border-left: 0;
258
+ border-radius: 0 4px 4px 0;
259
+ }
260
+
261
+ .csf--is-unit{
262
+ border-top-right-radius: 0;
263
+ border-bottom-right-radius: 0;
264
+ }
265
+ }
266
+
267
+ /**
268
+ * 03. 06. Field: button_set
269
+ */
270
+ .csf-field-button_set{
271
+
272
+ .csf--buttons{
273
+ display: inline-block;
274
+ }
275
+
276
+ .csf--button{
277
+ position: relative;
278
+ z-index: 1;
279
+ float: left;
280
+ cursor: pointer;
281
+ padding: 7px 14px;
282
+ min-width: 40px;
283
+ text-align: center;
284
+ color: #555;
285
+ border: 1px solid #cccccc;
286
+ background-color: #f7f7f7;
287
+ user-select: none;
288
+ -webkit-user-select: none;
289
+ box-shadow: 0 1px 0 rgba(0,0,0,0.1);
290
+
291
+ &:first-child{
292
+ border-radius: 4px 0 0 4px;
293
+ }
294
+
295
+ &:last-child{
296
+ border-radius: 0 4px 4px 0;
297
+ }
298
+
299
+ &:not(:first-child){
300
+ margin-left: -1px;
301
+ }
302
+
303
+ &:hover{
304
+ background-color: #eee;
305
+ }
306
+ }
307
+
308
+ .csf--active:hover,
309
+ .csf--active{
310
+ z-index: 2;
311
+ color: #fff;
312
+ border-color: #006799;
313
+ background-color: #0085ba;
314
+ }
315
+
316
+ input{
317
+ display: none;
318
+ }
319
+ }
320
+
321
+ /**
322
+ * 03. 07. Field: checkbox, radio
323
+ */
324
+ .csf-field-checkbox,
325
+ .csf-field-radio{
326
+
327
+ ul{
328
+ margin: 0;
329
+ padding: 0 1px;
330
+ list-style-type: none;
331
+ overflow-y: auto;
332
+ max-height: 305px;
333
+
334
+ ul{
335
+ max-height: none;
336
+ }
337
+ }
338
+
339
+ .csf--inline-list li{
340
+ display: inline-block;
341
+ margin-right: 15px;
342
+ }
343
+
344
+ input[type="radio"]:checked:before{
345
+ line-height: 10px;
346
+ }
347
+
348
+ .csf-checker{
349
+ cursor: pointer;
350
+ }
351
+ }
352
+
353
+ /**
354
+ * 03. 08. Field: code_editor
355
+ */
356
+ .csf-field-code_editor{
357
+
358
+ .CodeMirror{
359
+ width: 100%;
360
+ height: 400px;
361
+ }
362
+
363
+ .cm-s-default{
364
+ border: 1px solid #ccd0d4;
365
+ }
366
+
367
+ textarea{
368
+ width: 100%;
369
+ height: 400px;
370
+ }
371
+ }
372
+
373
+ /**
374
+ * 03. 09. Field: color
375
+ */
376
+ .csf-field-color{
377
+
378
+ > input{
379
+ opacity: 0.75;
380
+ width: 115px;
381
+ max-width: 100%;
382
+ }
383
+
384
+ .button.wp-picker-clear{
385
+ margin-left: 6px;
386
+ padding: 2px 8px;
387
+ }
388
+ }
389
+
390
+ /**
391
+ * 03. 10. Field: color_group
392
+ */
393
+ .csf-field-color_group{
394
+
395
+ .csf--left{
396
+ float: left;
397
+ margin-right: 10px;
398
+ margin-bottom: 5px;
399
+ }
400
+
401
+ .csf--title{
402
+ color: #999;
403
+ margin-bottom: 5px;
404
+ }
405
+ }
406
+
407
+ /**
408
+ * 03. 11. Field: fieldset
409
+ */
410
+ .csf-field-fieldset{
411
+
412
+ .csf-fieldset-content{
413
+ border: 1px solid #ccd0d4;
414
+ background-color: #fff;
415
+ box-shadow: 0 1px 1px rgba(0,0,0,.04);
416
+
417
+ > .csf-field{
418
+ padding: 15px;
419
+ }
420
+ }
421
+
422
+ .csf-field-subheading{
423
+ font-size: 13px;
424
+ }
425
+ }
426
+
427
+ /**
428
+ * 03. 12. Field: date
429
+ */
430
+ .csf-field-date{
431
+
432
+ input{
433
+ margin: 0;
434
+ }
435
+
436
+ .csf--to{
437
+ margin-left: 7px;
438
+ }
439
+ }
440
+
441
+ .csf-datepicker-wrapper{
442
+ margin-top: 5px;
443
+ width: auto;
444
+ background-color: #fff;
445
+ z-index: 9999999 !important;
446
+ @include box-shadow(0 0 30px rgba(black, 0.15));
447
+
448
+ *{
449
+ float: none;
450
+ margin: 0;
451
+ padding: 0;
452
+ font-family: inherit;
453
+ font-weight: normal;
454
+ font-style: normal;
455
+ text-decoration: none;
456
+ border: 0;
457
+ border-radius: 0;
458
+ box-shadow: none;
459
+ }
460
+
461
+ .ui-widget-header,
462
+ .ui-datepicker-header{
463
+ color: #fff;
464
+ background: #00a0d2;
465
+ }
466
+
467
+ .ui-datepicker-header .ui-state-hover{
468
+ cursor: pointer;
469
+ }
470
+
471
+ .ui-datepicker-title{
472
+ font-size: 14px;
473
+ line-height: 40px;
474
+ text-align: center;
475
+ }
476
+
477
+ .ui-datepicker-prev,
478
+ .ui-datepicker-next{
479
+ position: static;
480
+ top: auto;
481
+ left: auto;
482
+ right: auto;
483
+ font-family: "FontAwesome";
484
+ font-size: 12px;
485
+ text-align: center;
486
+ width: 41px;
487
+ height: 40px;
488
+ line-height: 40px;
489
+ color: #fff;
490
+ background-color: rgba(white, 0.1);
491
+ text-rendering: auto;
492
+ -webkit-font-smoothing: antialiased;
493
+ -moz-osx-font-smoothing: grayscale;
494
+ }
495
+
496
+ .ui-datepicker-next span,
497
+ .ui-datepicker-prev span{
498
+ display: none;
499
+ }
500
+
501
+ .ui-datepicker-prev{
502
+ float: left;
503
+ }
504
+
505
+ .ui-datepicker-next{
506
+ float: right;
507
+ }
508
+
509
+ .ui-datepicker-prev:before{
510
+ content: '\f053';
511
+ }
512
+
513
+ .ui-datepicker-next:before{
514
+ content: '\f054';
515
+ }
516
+
517
+ .ui-datepicker-prev-hover,
518
+ .ui-datepicker-next-hover{
519
+ opacity: 0.75;
520
+ }
521
+
522
+ tbody .ui-datepicker-week-col{
523
+ background-color: #f7f7f7;
524
+ }
525
+
526
+ .ui-datepicker-buttonpane{
527
+ padding: 10px;
528
+ text-align: center;
529
+ background-color: #f7f7f7;
530
+ }
531
+
532
+ .ui-datepicker-buttonpane button{
533
+ cursor: pointer;
534
+ margin: 0 5px;
535
+ padding: 7px 14px;
536
+ border: 1px solid #eee;
537
+ background-color: #fff;
538
+ }
539
+
540
+ select{
541
+ margin: 0 4px;
542
+ }
543
+
544
+ select option{
545
+ color: #555;
546
+ }
547
+
548
+ table{
549
+ font-size: 13px;
550
+ border-collapse: collapse;
551
+ width: 100%;
552
+ }
553
+
554
+ thead{
555
+ color: #fff;
556
+ background: #32373c;
557
+ }
558
+
559
+ th{
560
+ text-align: center;
561
+ padding: 7px;
562
+ border: 1px solid #444;
563
+ }
564
+
565
+ td{
566
+ text-align: center;
567
+ border: 1px solid #f4f4f4;
568
+ }
569
+
570
+ td.ui-datepicker-other-month{
571
+ border: transparent;
572
+ }
573
+
574
+ td .ui-state-default{
575
+ color: #555;
576
+ width: auto;
577
+ display: block;
578
+ padding: 6px 12px;
579
+ }
580
+
581
+ td .ui-state-active,
582
+ td .ui-state-hover{
583
+ color: #fff;
584
+ background-color: #0073aa;
585
+ }
586
+
587
+ td.ui-state-disabled .ui-state-default{
588
+ opacity: 0.5;
589
+ }
590
+ }
591
+
592
+ /**
593
+ * 03. 13. Field: gallery
594
+ */
595
+ .csf-field-gallery{
596
+
597
+ input{
598
+ display: none;
599
+ }
600
+
601
+ ul{
602
+ margin: 0;
603
+ padding: 0;
604
+ list-style-type: none;
605
+
606
+ li{
607
+ display: inline-block;
608
+ position: relative;
609
+ padding: 4px;
610
+ margin: 0 5px 10px 0;
611
+ border: 1px solid #ccc;
612
+ background-color: #f9f9f9;
613
+ @include border-radius(2px);
614
+ @include box-shadow(0 1px 0 rgba(black, 0.08));
615
+
616
+ img{
617
+ max-height: 60px;
618
+ display: inline-block;
619
+ vertical-align: middle;
620
+ }
621
+ }
622
+ }
623
+
624
+ .button{
625
+ margin-right: 5px;
626
+ margin-bottom: 5px;
627
+ }
628
+ }
629
+
630
+ /**
631
+ * 03. 14. Field: group
632
+ */
633
+ .csf-field-group{
634
+
635
+ .csf-cloneable-hidden{
636
+ display: none !important;
637
+ }
638
+
639
+ .csf-cloneable-wrapper{
640
+ position: relative;
641
+ }
642
+
643
+ .csf-cloneable-item{
644
+ display: none;
645
+ position: relative;
646
+ margin-bottom: 5px;
647
+
648
+ h4{
649
+ font-size: 1em;
650
+ }
651
+ }
652
+
653
+ .ui-accordion .csf-cloneable-item{
654
+ display: block;
655
+ }
656
+
657
+ .csf-cloneable-content{
658
+ border: 1px solid #ccd0d4;
659
+ background-color: #fff;
660
+ box-shadow: 0 1px 1px rgba(0,0,0,.04);
661
+
662
+ > .csf-field{
663
+ padding: 15px;
664
+ }
665
+ }
666
+
667
+ .csf-cloneable-title{
668
+ display: block;
669
+ cursor: pointer;
670
+ position: relative;
671
+ user-select: none;
672
+ margin: 0;
673
+ padding: 15px 65px 15px 10px;
674
+ min-height: 0;
675
+ font-size: 100%;
676
+ border: 1px solid #ccd0d4;
677
+ background-color: #fafafa;
678
+ box-shadow: 0 1px 1px rgba(0,0,0,.04);
679
+ transition: border-color .15s;
680
+
681
+ &:active,
682
+ &:hover,
683
+ &:focus{
684
+ border-color: #999;
685
+ outline: none;
686
+ }
687
+ }
688
+
689
+ .csf-cloneable-helper{
690
+ position: absolute;
691
+ top: 12px;
692
+ right: 10px;
693
+ z-index: 1;
694
+ font-size: 14px;
695
+ line-height: 1em;
696
+
697
+ i{
698
+ display: inline-block;
699
+ cursor: pointer;
700
+ padding: 5px;
701
+ color: #999;
702
+
703
+ &:hover{
704
+ color: #555;
705
+ }
706
+ }
707
+ }
708
+
709
+ .csf-cloneable-content{
710
+ padding: 0;
711
+ border-top: 0;
712
+ }
713
+
714
+ .csf-cloneable-title-prefix,
715
+ .csf-cloneable-title-number{
716
+ margin-right: 5px;
717
+ }
718
+
719
+ .csf-cloneable-alert{
720
+ display: none;
721
+ margin-bottom: 5px;
722
+ padding: 10px 20px;
723
+ color: #a94442;
724
+ border: 1px solid #ebccd1;
725
+ background-color: #f2dede;
726
+ }
727
+
728
+ .widget-placeholder{
729
+ margin-bottom: 10px;
730
+ border: 1px dashed #f1c40f;
731
+ background-color: #fffae4;
732
+ }
733
+
734
+ .csf-cloneable-header-icon{
735
+ display: inline-block;
736
+ text-align: center;
737
+ font-size: 14px;
738
+ width: 17px;
739
+ text-indent: 0;
740
+ vertical-align: text-top;
741
+ }
742
+
743
+ .csf-cloneable-placeholder{
744
+ background-color: #ddd;
745
+ margin-top: 4px;
746
+ width: 100px;
747
+ height: 10px;
748
+ font-size: 10px;
749
+ line-height: 10px;
750
+ display: inline-block;
751
+ vertical-align: top;
752
+ border-radius: 2px;
753
+ }
754
+ }
755
+
756
+ /**
757
+ * 03. 15. Field: icon
758
+ */
759
+ .csf-field-icon{
760
+
761
+ input{
762
+ display: none;
763
+ }
764
+
765
+ .button{
766
+ margin-right: 5px;
767
+ }
768
+
769
+ .csf-icon-preview i{
770
+ display: inline-block;
771
+ font-size: 14px;
772
+ width: 30px;
773
+ height: 26px;
774
+ line-height: 26px;
775
+ margin-right: 5px;
776
+ text-align: center;
777
+ vertical-align: top;
778
+ color: #555;
779
+ border: 1px solid #ccc;
780
+ background-color: #f7f7f7;
781
+ @include border-radius(3px);
782
+ @include box-shadow(0 1px 0 rgba(black, 0.08));
783
+ @include box-sizing(content-box);
784
+ }
785
+ }
786
+
787
+ /**
788
+ * 03. 16. Field: image_select
789
+ */
790
+ .csf-field-image_select{
791
+
792
+ .csf--image{
793
+ cursor: pointer;
794
+ position: relative;
795
+ display: inline-block;
796
+ max-width: 100%;
797
+ margin: 0 5px 5px 0;
798
+ vertical-align: bottom;
799
+ border: 2px solid transparent;
800
+ background-color: #fff;
801
+ user-select: none;
802
+ -webkit-user-select: none;
803
+ @include transition(all 0.2s);
804
+
805
+ &:before{
806
+ position: absolute;
807
+ top: 0;
808
+ left: 0;
809
+ text-align: center;
810
+ font-size: 11px;
811
+ font-family: FontAwesome;
812
+ content: "\f00c";
813
+ width: 15px;
814
+ height: 15px;
815
+ line-height: 15px;
816
+ opacity: 0;
817
+ color: #fff;
818
+ background-color: #222;
819
+ transition: opacity .2s;
820
+ }
821
+ }
822
+
823
+ .csf--active{
824
+ border-color: #222;
825
+ box-shadow: 0 0 20px rgba(0,0,0,0.2);
826
+
827
+ &:before{
828
+ opacity: 1;
829
+ }
830
+ }
831
+
832
+ img{
833
+ vertical-align: top;
834
+ }
835
+
836
+ input{
837
+ display: none;
838
+ }
839
+ }
840
+
841
+ /**
842
+ * 03. 17. Field: link_color
843
+ */
844
+ .csf-field-link_color{
845
+
846
+ .csf--left{
847
+ float: left;
848
+ margin-right: 10px;
849
+ margin-bottom: 5px;
850
+ }
851
+
852
+ .csf--title{
853
+ color: #777;
854
+ margin-bottom: 5px;
855
+ }
856
+ }
857
+
858
+ /**
859
+ * 03. 18. Field: map
860
+ */
861
+ .csf-field-map{
862
+
863
+ input{
864
+ width: 100%;
865
+ }
866
+
867
+ input[type="text"].ui-autocomplete-loading{
868
+ background-position-x: calc(100% - 5px);
869
+ }
870
+
871
+ .csf--map-search + .csf--map-osm-wrap{
872
+ margin-top: 10px;
873
+ }
874
+
875
+ .csf--map-osm-wrap{
876
+ position: relative;
877
+ padding: 5px;
878
+ border: 1px solid #eee;
879
+ background-color: #fff;
880
+ box-shadow: 0 1px 1px rgba(0,0,0,.04);
881
+ }
882
+
883
+ .csf--map-osm{
884
+ position: relative;
885
+ z-index: 1;
886
+ min-height: 250px;
887
+ }
888
+
889
+ .csf--map-inputs{
890
+ margin-top: 10px;
891
+ display: flex;
892
+ justify-content: space-between;
893
+ }
894
+
895
+ .csf--map-input{
896
+ flex: 1;
897
+
898
+ &:last-child{
899
+ padding-left: 10px;
900
+ }
901
+ }
902
+
903
+ label{
904
+ display: block;
905
+ color: #777;
906
+ font-size: 12px;
907
+ margin: 0 0 2px 0;
908
+ }
909
+ }
910
+
911
+ .csf-map-ui-autocomplate{
912
+ z-index: 999999;
913
+ border-radius: 4px;
914
+ overflow: hidden;
915
+ }
916
+
917
+
918
+ /**
919
+ * 03. 19. Field: media
920
+ */
921
+ .csf-field-media{
922
+
923
+ .csf--placeholder{
924
+ display: flex;
925
+
926
+ input{
927
+ width: 100%;
928
+ margin: 0;
929
+ }
930
+ }
931
+
932
+ .button{
933
+ margin-left: 5px;
934
+ }
935
+
936
+ .hidden + .button{
937
+ margin-left: 0;
938
+ }
939
+
940
+ .csf--preview{
941
+ position: relative;
942
+
943
+ .fa-times{
944
+ position: absolute;
945
+ z-index: 1;
946
+ right: 4px;
947
+ top: 4px;
948
+ font-size: 14px;
949
+ width: 22px;
950
+ height: 22px;
951
+ line-height: 22px;
952
+ text-align: center;
953
+ text-decoration: none;
954
+ color: #fff;
955
+ background-color: #dd3333;
956
+ opacity: 0.8;
957
+ transition: all .2s;
958
+
959
+ &:hover{
960
+ opacity: 1;
961
+ }
962
+
963
+ &:focus{
964
+ box-shadow: none;
965
+ }
966
+ }
967
+ }
968
+ }
969
+
970
+ /**
971
+ * 03. 20. Field: palette
972
+ */
973
+ .csf-field-palette{
974
+
975
+ .csf--palette{
976
+ position: relative;
977
+ display: inline-block;
978
+ cursor: pointer;
979
+ border: 2px solid #ddd;
980
+ margin-right: 10px;
981
+ margin-bottom: 10px;
982
+ user-select: none;
983
+ -webkit-user-select: none;
984
+ transition: all .2s;
985
+
986
+ span{
987
+ vertical-align: middle;
988
+ display: inline-block;
989
+ width: 22px;
990
+ height: 60px;
991
+ line-height: 60px;
992
+ overflow: hidden;
993
+ text-indent: -999px;
994
+ }
995
+
996
+ &:before{
997
+ position: absolute;
998
+ top: 0;
999
+ left: 0;
1000
+ text-align: center;
1001
+ font-size: 11px;
1002
+ font-family: FontAwesome;
1003
+ content: "\f00c";
1004
+ width: 15px;
1005
+ height: 15px;
1006
+ line-height: 15px;
1007
+ opacity: 0;
1008
+ color: #fff;
1009
+ background-color: #222;
1010
+ transition: opacity .2s;
1011
+ }
1012
+ }
1013
+
1014
+ .csf--active{
1015
+ border-color: #222;
1016
+ box-shadow: 0 0 20px rgba(0,0,0,0.2);
1017
+
1018
+ &:before{
1019
+ opacity: 1;
1020
+ }
1021
+ }
1022
+
1023
+ input{
1024
+ display: none;
1025
+ }
1026
+ }
1027
+
1028
+ /**
1029
+ * 03. 21. Field: repeater
1030
+ */
1031
+ .csf-field-repeater{
1032
+
1033
+ .csf-field-text input{
1034
+ width: 100%;
1035
+ }
1036
+
1037
+ .csf-repeater-hidden{
1038
+ display: none !important;
1039
+ }
1040
+
1041
+ .csf-repeater-wrapper{
1042
+
1043
+ .csf-repeater-item{
1044
+ display: table;
1045
+ width: 100%;
1046
+ margin-bottom: 5px;
1047
+ border: 1px solid #eee;
1048
+
1049
+ h4{
1050
+ font-size: 1em;
1051
+ }
1052
+ }
1053
+ }
1054
+
1055
+ .csf-repeater-content{
1056
+ width: 100%;
1057
+ display: table-cell;
1058
+ vertical-align: middle;
1059
+ background-color: #fff;
1060
+
1061
+ > .csf-field{
1062
+ padding: 15px;
1063
+ }
1064
+ }
1065
+
1066
+ .csf-repeater-helper{
1067
+ width: 100%;
1068
+ display: table-cell;
1069
+ vertical-align: middle;
1070
+ text-align: center;
1071
+ font-size: 14px;
1072
+ line-height: 1em;
1073
+ border-left: 1px solid #eee;
1074
+ background-color: #f7f7f7;
1075
+
1076
+ i{
1077
+ display: inline-block;
1078
+ cursor: pointer;
1079
+ color: #999;
1080
+ padding: 5px;
1081
+
1082
+ &:hover{
1083
+ color: #555;
1084
+ }
1085
+ }
1086
+ }
1087
+
1088
+ .csf-repeater-helper-inner{
1089
+ width: 75px;
1090
+ }
1091
+
1092
+ .csf-repeater-alert{
1093
+ display: none;
1094
+ margin-bottom: 5px;
1095
+ padding: 10px 20px;
1096
+ color: #a94442;
1097
+ border: 1px solid #ebccd1;
1098
+ background-color: #f2dede;
1099
+ }
1100
+
1101
+ .widget-placeholder{
1102
+ height: 50px;
1103
+ margin-bottom: 3px;
1104
+ border: 1px dashed #f1c40f;
1105
+ background-color: #fffae4;
1106
+ }
1107
+
1108
+ .ui-sortable-helper{
1109
+ height: 50px !important;
1110
+ overflow: hidden !important;
1111
+ border-color: #ccc !important;
1112
+ background-color: #eee !important;
1113
+ @include opacity(0.5);
1114
+
1115
+ .csf-repeater-helper,
1116
+ .csf-repeater-content{
1117
+ display: none;
1118
+ }
1119
+ }
1120
+ }
1121
+
1122
+ /**
1123
+ * 03. 22. Field: select
1124
+ */
1125
+ .csf-field-select{
1126
+
1127
+ .csf-fieldset{
1128
+ min-height: 30px;
1129
+ }
1130
+
1131
+ .csf-chosen{
1132
+ display: none;
1133
+ }
1134
+
1135
+ select{
1136
+ max-width: 100%;
1137
+ margin: 0;
1138
+ }
1139
+ }
1140
+
1141
+ /**
1142
+ * 03. 23. Field: slider
1143
+ */
1144
+ .csf-field-slider{
1145
+
1146
+ .csf--wrap{
1147
+ display: flex;
1148
+ align-items: center;
1149
+ }
1150
+
1151
+ .csf--input{
1152
+ display: flex;
1153
+ }
1154
+
1155
+ .csf--unit{
1156
+ display: flex;
1157
+ justify-content: center;
1158
+ flex-direction: column;
1159
+ user-select: none;
1160
+ padding: 0 6px;
1161
+ font-size: 11px;
1162
+ line-height: 1;
1163
+ border-radius: 0 4px 4px 0;
1164
+ color: #555;
1165
+ border: 1px solid #7e8993;
1166
+ border-left: 0;
1167
+ background-color: #f5f5f5;
1168
+ }
1169
+
1170
+ input[type=number]{
1171
+ position: relative;
1172
+ z-index: 1;
1173
+ width: 50px;
1174
+ margin: 0 0 0 15px;
1175
+ text-align: center;
1176
+ }
1177
+
1178
+ .csf--is-unit{
1179
+ border-top-right-radius: 0;
1180
+ border-bottom-right-radius: 0;
1181
+ }
1182
+
1183
+ .ui-slider{
1184
+ position: relative;
1185
+ width: 100%;
1186
+ height: 3px;
1187
+ border: none;
1188
+ background: #ddd;
1189
+ border-radius: 2px;
1190
+ }
1191
+
1192
+ .ui-slider-range{
1193
+ height: 3px;
1194
+ border: none;
1195
+ background: #333;
1196
+ border-radius: 2px;
1197
+ }
1198
+
1199
+ .ui-slider-handle{
1200
+ position: absolute;
1201
+ width: 16px;
1202
+ height: 16px;
1203
+ top: -7px;
1204
+ margin-left: -8px;
1205
+ border: none;
1206
+ background: #333;
1207
+ border-radius: 2px;
1208
+ }
1209
+
1210
+ .ui-state-active,
1211
+ .ui-slider-handle:hover{
1212
+ cursor: pointer;
1213
+ background: #111;
1214
+ }
1215
+ }
1216
+
1217
+ /**
1218
+ * 03. 24. Field: sortable
1219
+ */
1220
+ .csf-field-sortable{
1221
+
1222
+ .csf-field-text{
1223
+
1224
+ input{
1225
+ width: 100%;
1226
+ max-width: 100%;
1227
+ }
1228
+ }
1229
+
1230
+ .csf--sortable{
1231
+
1232
+ .csf--sortable-item{
1233
+ display: table;
1234
+ width: 100%;
1235
+ margin-bottom: 5px;
1236
+ border: 1px solid #eee;
1237
+
1238
+ h4{
1239
+ font-size: 1em;
1240
+ }
1241
+ }
1242
+ }
1243
+
1244
+ .csf--sortable-content{
1245
+ width: 100%;
1246
+ display: table-cell;
1247
+ vertical-align: middle;
1248
+ background-color: #fff;
1249
+
1250
+ > .csf-field{
1251
+ padding: 15px;
1252
+ }
1253
+ }
1254
+
1255
+ .csf--sortable-helper{
1256
+ width: 100%;
1257
+ display: table-cell;
1258
+ vertical-align: middle;
1259
+ text-align: center;
1260
+ font-size: 14px;
1261
+ line-height: 1em;
1262
+ border-left: 1px solid #eee;
1263
+ background-color: #f7f7f7;
1264
+
1265
+ .fa{
1266
+ display: inline-block;
1267
+ cursor: pointer;
1268
+ width: 50px;
1269
+ color: #555;
1270
+
1271
+ &:hover{
1272
+ @include opacity(0.5);
1273
+ }
1274
+ }
1275
+ }
1276
+
1277
+ .widget-placeholder{
1278
+ height: 50px;
1279
+ margin-bottom: 3px;
1280
+ border: 1px dashed #f1c40f;
1281
+ background-color: #fffae4;
1282
+ }
1283
+
1284
+ .ui-sortable-helper{
1285
+ height: 50px !important;
1286
+ overflow: hidden !important;
1287
+ border-color: #ccc !important;
1288
+ background-color: #eee !important;
1289
+ @include opacity(0.5);
1290
+
1291
+ .csf--sortable-helper,
1292
+ .csf--sortable-content{
1293
+ display: none;
1294
+ }
1295
+ }
1296
+ }
1297
+
1298
+ /**
1299
+ * 03. 25. Field: sorter
1300
+ */
1301
+ .csf-field-sorter{
1302
+
1303
+ .ui-sortable-placeholder{
1304
+ height: 20px;
1305
+ border: 1px dashed #f1c40f;
1306
+ background-color: #fffae4;
1307
+ }
1308
+
1309
+ .csf-modules{
1310
+ float: left;
1311
+ width: 50%;
1312
+ box-sizing: border-box;
1313
+
1314
+ &:first-child{
1315
+ padding-right: 15px;
1316
+ }
1317
+
1318
+ &:last-child{
1319
+ padding-left: 15px;
1320
+ }
1321
+ }
1322
+
1323
+ .csf-disabled,
1324
+ .csf-enabled{
1325
+ padding: 5px 15px;
1326
+ border: 1px dashed #ddd;
1327
+ background-color: #fff;
1328
+ }
1329
+
1330
+ .csf-disabled{
1331
+ li{
1332
+ @include transition(opacity 0.15s);
1333
+ @include opacity(0.5);
1334
+ }
1335
+
1336
+ .ui-sortable-helper{
1337
+ @include opacity(1);
1338
+ }
1339
+ }
1340
+
1341
+ .csf-sorter-title{
1342
+ font-size: 13px;
1343
+ font-weight: 600;
1344
+ padding: 10px;
1345
+ text-align: center;
1346
+ border: 1px dashed #ddd;
1347
+ border-bottom: none;
1348
+ background-color: #f8f8f8;
1349
+ text-transform: uppercase;
1350
+ }
1351
+
1352
+ ul{
1353
+ list-style-type: none;
1354
+ margin: 0;
1355
+ padding: 0;
1356
+ min-height: 62px;
1357
+
1358
+ li{
1359
+ margin: 10px 0;
1360
+ padding: 10px 15px;
1361
+ cursor: move;
1362
+ font-weight: bold;
1363
+ text-align: center;
1364
+ border: 1px solid #e5e5e5;
1365
+ background-color: #fafafa;
1366
+ @include transition(border-color 0.15s);
1367
+
1368
+ &:hover{
1369
+ border-color: #bbb;
1370
+ }
1371
+ }
1372
+ }
1373
+ }
1374
+
1375
+ /**
1376
+ * 03. 26. Field: spinner
1377
+ */
1378
+ .csf-field-spinner{
1379
+
1380
+ .csf--spin{
1381
+ display: flex;
1382
+ }
1383
+
1384
+ .ui-spinner{
1385
+ display: flex;
1386
+ }
1387
+
1388
+ .ui-button-text-only{
1389
+ display: flex;
1390
+ flex-direction: column;
1391
+ justify-content: center;
1392
+ text-align: center;
1393
+ min-width: 20px;
1394
+ padding: 0 4px;
1395
+ color: #555;
1396
+ border: 1px solid #7e8993;
1397
+ background-color: #f5f5f5;
1398
+ }
1399
+
1400
+ .ui-button{
1401
+ cursor: pointer;
1402
+
1403
+ &:hover{
1404
+ background-color: #e7e7e7;
1405
+ }
1406
+
1407
+ &:active{
1408
+ background-color: #ddd;
1409
+ }
1410
+
1411
+ &:before{
1412
+ font-family: FontAwesome;
1413
+ font-size: 14px;
1414
+ }
1415
+ }
1416
+
1417
+ .ui-spinner-down{
1418
+ order: 1;
1419
+ border-right: 0;
1420
+ border-radius: 4px 0 0 4px;
1421
+
1422
+ &:before{
1423
+ content: "\f0d9";
1424
+ }
1425
+ }
1426
+
1427
+ .ui-spinner-input{
1428
+ order: 2;
1429
+ }
1430
+
1431
+ .csf--unit{
1432
+ order: 3;
1433
+ border-left: 0;
1434
+ user-select: none;
1435
+ }
1436
+
1437
+ .ui-spinner-up{
1438
+ order: 4;
1439
+ border-left: 0;
1440
+ border-radius: 0 4px 4px 0;
1441
+
1442
+ &:before{
1443
+ content: "\f0da";
1444
+ }
1445
+ }
1446
+
1447
+ input{
1448
+ position: relative;
1449
+ z-index: 1;
1450
+ width: 50px;
1451
+ text-align: center;
1452
+ margin: 0;
1453
+ padding: 0 8px;
1454
+ border-radius: 0;
1455
+ }
1456
+
1457
+ .ui-button-text{
1458
+ display: none;
1459
+ }
1460
+ }
1461
+
1462
+ /**
1463
+ * 03. 27. Field: switcher
1464
+ */
1465
+ .csf-field-switcher{
1466
+
1467
+ .csf--switcher{
1468
+ float: left;
1469
+ cursor: pointer;
1470
+ position: relative;
1471
+ width: 60px;
1472
+ height: 26px;
1473
+ padding: 0;
1474
+ margin: 0;
1475
+ overflow: hidden;
1476
+ border-radius: 4px;
1477
+ background-color: #ed6f6f;
1478
+ user-select: none;
1479
+ -webkit-user-select: none;
1480
+ }
1481
+
1482
+ .csf--ball{
1483
+ position: absolute;
1484
+ top: 4px;
1485
+ left: 4px;
1486
+ width: 24px;
1487
+ height: 18px;
1488
+ background-color: #fff;
1489
+ border-radius: 4px;
1490
+ transition: all .1s;
1491
+ box-shadow: 1px 1px 1px rgba(0,0,0,0.15);
1492
+ }
1493
+
1494
+ .csf--on,
1495
+ .csf--off{
1496
+ position: absolute;
1497
+ top: 0;
1498
+ left: 0;
1499
+ right: 0;
1500
+ font-size: 11px;
1501
+ line-height: 26px;
1502
+ font-weight: 500;
1503
+ font-style: normal;
1504
+ text-align: center;
1505
+ text-transform: uppercase;
1506
+ color: #fff;
1507
+ padding-right: 28px;
1508
+ opacity: 0;
1509
+ transition: all .1s;
1510
+ }
1511
+
1512
+ .csf--off{
1513
+ padding-right: 0;
1514
+ padding-left: 28px;
1515
+ opacity: 1;
1516
+ }
1517
+
1518
+ .csf--active{
1519
+ background: #4fb845;
1520
+
1521
+ .csf--on{
1522
+ opacity: 1;
1523
+ }
1524
+
1525
+ .csf--off{
1526
+ opacity: 0;
1527
+ }
1528
+
1529
+ .csf--ball{
1530
+ left: 100%;
1531
+ margin-left: -28px;
1532
+ }
1533
+ }
1534
+
1535
+ .csf--label{
1536
+ float: left;
1537
+ margin-top: 4px;
1538
+ margin-left: 8px;
1539
+ font-weight: 400;
1540
+ color: #999;
1541
+ }
1542
+
1543
+ input{
1544
+ display: none;
1545
+ }
1546
+ }
1547
+
1548
+ /**
1549
+ * 03. 28. Field: tabbed
1550
+ */
1551
+ .csf-field-tabbed{
1552
+
1553
+ .csf-tabbed-section{
1554
+ border: 1px solid #ccd0d4;
1555
+ background-color: #fff;
1556
+ box-shadow: 0 1px 1px rgba(0,0,0,.04);
1557
+
1558
+ > .csf-field{
1559
+ padding: 15px;
1560
+ }
1561
+ }
1562
+
1563
+ .csf-tabbed-nav{
1564
+
1565
+ .csf--icon{
1566
+ padding-right: 5px;
1567
+ }
1568
+
1569
+ a{
1570
+ display: inline-block;
1571
+ padding: 12px 15px;
1572
+ margin-top: 1px;
1573
+ margin-right: 5px;
1574
+ margin-bottom: -1px;
1575
+ position: relative;
1576
+ text-decoration: none;
1577
+ color: #444;
1578
+ font-weight: 600;
1579
+ border: 1px solid #ccd0d4;
1580
+ background-color: #f3f3f3;
1581
+ transition: all .2s;
1582
+
1583
+ &:hover{
1584
+ background-color: #f9f9f9;
1585
+ }
1586
+
1587
+ &.csf-tabbed-active{
1588
+ background-color: #fff;
1589
+ border-bottom-color: #fff;
1590
+ }
1591
+
1592
+ &:focus{
1593
+ outline: none;
1594
+ @include box-shadow(none);
1595
+ }
1596
+ }
1597
+ }
1598
+ }
1599
+
1600
+ /**
1601
+ * 03. 29. Field: text
1602
+ */
1603
+ .csf-field-text{
1604
+
1605
+ input{
1606
+ width: 50%;
1607
+ max-width: 100%;
1608
+ margin: 0;
1609
+ }
1610
+ }
1611
+
1612
+ /**
1613
+ * 03. 30. Field: textarea
1614
+ */
1615
+ .csf-field-textarea{
1616
+
1617
+ textarea{
1618
+ width: 100%;
1619
+ max-width: 100%;
1620
+ min-height: 125px;
1621
+ }
1622
+
1623
+ .csf-shortcode-button{
1624
+ margin-bottom: 10px;
1625
+ margin-right: 5px;
1626
+ }
1627
+ }
1628
+
1629
+ /**
1630
+ * 03. 31. Field: typography
1631
+ */
1632
+ .csf-field-typography{
1633
+
1634
+ textarea,
1635
+ select{
1636
+ min-width: 100%;
1637
+ margin: 0;
1638
+ }
1639
+
1640
+ .csf--title{
1641
+ color: #777;
1642
+ margin: 0 0 2px 0;
1643
+ font-size: 12px;
1644
+
1645
+ small{
1646
+ vertical-align: top;
1647
+ }
1648
+ }
1649
+
1650
+ .csf--blocks{
1651
+ display: flex;
1652
+ flex-wrap: wrap;
1653
+ }
1654
+
1655
+ .csf--block{
1656
+ flex: 1;
1657
+ padding-right: 6px;
1658
+ padding-bottom: 6px;
1659
+ }
1660
+
1661
+ .csf--input{
1662
+ margin: 0;
1663
+ min-width: 100%;
1664
+ }
1665
+
1666
+ .csf--input-wrap{
1667
+ position: relative;
1668
+ }
1669
+
1670
+ .csf--unit{
1671
+ position: absolute;
1672
+ z-index: 1;
1673
+ right: 4px;
1674
+ top: 4px;
1675
+ bottom: 4px;
1676
+ padding: 2px 6px;
1677
+ color: #666;
1678
+ font-size: 11px;
1679
+ line-height: 1;
1680
+ border-radius: 2px;
1681
+ background: #eee;
1682
+ user-select: none;
1683
+ display: flex;
1684
+ justify-content: center;
1685
+ flex-direction: column;
1686
+ }
1687
+
1688
+ .csf--preview{
1689
+ font-size: 16px;
1690
+ line-height: 20px;
1691
+ padding: 20px;
1692
+ color: #222;
1693
+ border: 1px solid #eee;
1694
+ background-color: #fff;
1695
+ border-radius: 2.5px;
1696
+ user-select: none;
1697
+ -webkit-user-select: none;
1698
+ transition: background-color .2s, border-color .2s;
1699
+ }
1700
+
1701
+ .csf--block-preview{
1702
+ cursor: pointer;
1703
+ position: relative;
1704
+ overflow: hidden;
1705
+ margin-top: 10px;
1706
+ max-width: 100%;
1707
+ }
1708
+
1709
+ .csf--black-background{
1710
+ border-color: #000;
1711
+ background-color: #000;
1712
+ }
1713
+
1714
+ .csf--toggle{
1715
+ position: absolute;
1716
+ top: 5px;
1717
+ right: 10px;
1718
+ color: #999;
1719
+ }
1720
+
1721
+ .csf--block-extra-styles{
1722
+ margin-top: 5px;
1723
+ }
1724
+ }
1725
+
1726
+ /**
1727
+ * 03. 32. Field: upload
1728
+ */
1729
+ .csf-field-upload{
1730
+
1731
+ input{
1732
+ width: 100%;
1733
+ margin: 0;
1734
+ }
1735
+
1736
+ .csf--wrap{
1737
+ display: flex;
1738
+ }
1739
+
1740
+ .button{
1741
+ margin-left: 5px;
1742
+ }
1743
+ }
1744
+
1745
+ /**
1746
+ * 03. 33. Field: wp_editor
1747
+ */
1748
+ .csf-field-wp_editor{
1749
+
1750
+ .csf-wp-editor{
1751
+ float: left;
1752
+ width: 100%;
1753
+ }
1754
+
1755
+ .mce-toolbar-grp{
1756
+ border: none;
1757
+ }
1758
+
1759
+ .mce-btn.mce-active button,
1760
+ .mce-btn.mce-active:hover button,
1761
+ .mce-btn.mce-active i,
1762
+ .mce-btn.mce-active:hover i{
1763
+ color: #23282d;
1764
+ }
1765
+
1766
+ .wp-media-buttons{
1767
+ position: relative;
1768
+ z-index: 2;
1769
+ }
1770
+
1771
+
1772
+ .wp-editor-tabs{
1773
+ position: relative;
1774
+ z-index: 1;
1775
+ }
1776
+
1777
+ .csf-no-tinymce{
1778
+ border: 1px solid #e5e5e5;
1779
+ }
1780
+
1781
+ .csf-no-quicktags{
1782
+
1783
+ .wp-media-buttons{
1784
+ float: none;
1785
+ display: block;
1786
+ }
1787
+
1788
+ .mce-tinymce{
1789
+ box-shadow: none;
1790
+ border: 1px solid #e5e5e5;
1791
+ }
1792
+ }
1793
+
1794
+ textarea{
1795
+ width: 100%;
1796
+ max-width: 100%;
1797
+ margin: 0;
1798
+ box-shadow: none;
1799
+ }
1800
+ }
1801
+
1802
+ /**
1803
+ * 03. 34. Field: heading
1804
+ */
1805
+ .csf-field-heading{
1806
+ font-size: 1.5em;
1807
+ font-weight: bold;
1808
+ color: #23282d;
1809
+ background-color: #f5f5f5;
1810
+ }
1811
+
1812
+ /**
1813
+ * 03. 35. Field: subheading
1814
+ */
1815
+ .csf-field-subheading{
1816
+ font-size: 14px;
1817
+ font-weight: bold;
1818
+ padding-top: 17px;
1819
+ padding-bottom: 17px;
1820
+ color: #23282d;
1821
+ background-color: #f7f7f7;
1822
+ }
1823
+
1824
+ /**
1825
+ * 03. 36. Field: submessage
1826
+ */
1827
+ .csf-field-submessage{
1828
+ padding: 0 !important;
1829
+ border: 0 !important;
1830
+
1831
+ + .csf-field{
1832
+ border-top: 0 !important;
1833
+ }
1834
+ }
1835
+
1836
+ .csf-submessage{
1837
+ font-size: 12px;
1838
+ padding: 17px 30px;
1839
+ border-top: 1px solid transparent;
1840
+ border-bottom: 1px solid transparent;
1841
+ }
1842
+
1843
+ .csf-submessage-success{
1844
+ color: #3c763d;
1845
+ border-color: #d6e9c6;
1846
+ background-color: #dff0d8;
1847
+ }
1848
+
1849
+ .csf-submessage-info{
1850
+ color: #31708f;
1851
+ border-color: #bce8f1;
1852
+ background-color: #d9edf7;
1853
+ }
1854
+
1855
+ .csf-submessage-warning{
1856
+ color: #8a6d3b;
1857
+ border-color: #faebcc;
1858
+ background-color: #fcf8e3;
1859
+ }
1860
+
1861
+ .csf-submessage-danger{
1862
+ color: #a94442;
1863
+ border-color: #ebccd1;
1864
+ background-color: #f2dede;
1865
+ }
1866
+
1867
+ .csf-submessage-normal{
1868
+ color: #23282d;
1869
+ border-color: #eee;
1870
+ background-color: #f7f7f7;
1871
+ }
1872
+
1873
+ /**
1874
+ * 03. 37. Field: notice
1875
+ */
1876
+ .csf-field-notice{
1877
+ background-color: #f7f7f7;
1878
+ }
1879
+
1880
+ .csf-notice{
1881
+ padding: 12px;
1882
+ background-color: #fff;
1883
+ border-left-style: solid;
1884
+ border-left-width: 4px;
1885
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
1886
+ }
1887
+
1888
+ .csf-notice-success{
1889
+ border-color: #46b450;
1890
+ }
1891
+
1892
+ .csf-notice-info{
1893
+ border-color: #339fd4;
1894
+ }
1895
+
1896
+ .csf-notice-warning{
1897
+ border-color: #ffbc00;
1898
+ }
1899
+
1900
+ .csf-notice-danger{
1901
+ border-color: #dc3232;
1902
+ }
1903
+
1904
+ .csf-notice-normal{
1905
+ border-color: #222;
1906
+ }
1907
+
1908
+ /**
1909
+ * 03. 38. Field: number
1910
+ */
1911
+ .csf-field-number{
1912
+
1913
+ input{
1914
+ width: 100%;
1915
+ margin: 0;
1916
+ }
1917
+
1918
+ .csf--wrap{
1919
+ position: relative;
1920
+ float: left;
1921
+ width: 100px;
1922
+ }
1923
+
1924
+ .csf--unit{
1925
+ position: absolute;
1926
+ z-index: 1;
1927
+ right: 4px;
1928
+ top: 4px;
1929
+ bottom: 4px;
1930
+ padding: 2px 6px;
1931
+ color: #666;
1932
+ font-size: 11px;
1933
+ line-height: 1;
1934
+ border-radius: 2px;
1935
+ background: #eee;
1936
+ user-select: none;
1937
+ display: flex;
1938
+ justify-content: center;
1939
+ flex-direction: column;
1940
+ }
1941
+ }
1942
+
1943
+ /**
1944
+ * 03. 39. others
1945
+ */
1946
+ .csf-help{
1947
+ cursor: help;
1948
+ position: absolute;
1949
+ top: 0;
1950
+ right: 0;
1951
+ padding: 5px;
1952
+ font-size: 14px;
1953
+ color: #aaa;
1954
+
1955
+ .csf-help-text{
1956
+ display: none;
1957
+ }
1958
+ }
1959
+
1960
+ .csf-image-preview{
1961
+ display: inline-block;
1962
+ position: relative;
1963
+ padding: 4px;
1964
+ min-width: 44px;
1965
+ min-height: 22px;
1966
+ margin-bottom: 10px;
1967
+ border: 1px solid #ccc;
1968
+ background-color: #f9f9f9;
1969
+ @include box-shadow(0 1px 0 rgba(black, 0.08));
1970
+
1971
+ img{
1972
+ max-height: 90px;
1973
+ display: inline-block;
1974
+ vertical-align: middle;
1975
+ }
1976
+ }
1977
+
1978
+ .csf-field-custom{
1979
+
1980
+ .csf-field{
1981
+ padding: 0;
1982
+ }
1983
+ }
1984
+
1985
+ .csf-field{
1986
+
1987
+ .chosen-container-single .chosen-single{
1988
+ height: 28px;
1989
+ line-height: 26px;
1990
+ }
1991
+
1992
+ .chosen-container-single .chosen-single abbr{
1993
+ top: 0;
1994
+ right: 20px;
1995
+ font-family: FontAwesome;
1996
+ font-size: 12px;
1997
+ height: 100%;
1998
+ width: 18px;
1999
+ color: #aaa;
2000
+ text-align: center;
2001
+ background: none;
2002
+
2003
+ &:before{
2004
+ content: "\f00d";
2005
+ }
2006
+
2007
+ &:hover{
2008
+ color: #555;
2009
+ }
2010
+ }
2011
+
2012
+ .chosen-container-multi .chosen-choices li.search-choice .search-choice-close{
2013
+ font-family: FontAwesome;
2014
+ font-size: 12px;
2015
+ height: 100%;
2016
+ width: 18px;
2017
+ color: #aaa;
2018
+ text-align: center;
2019
+ background: none;
2020
+
2021
+ &:before{
2022
+ content: "\f00d";
2023
+ display: inline-block;
2024
+ padding-top: 3px;
2025
+ }
2026
+
2027
+ &:hover{
2028
+ color: #555;
2029
+ }
2030
+ }
2031
+
2032
+ .chosen-container-single .chosen-single div b{
2033
+ font-family: FontAwesome;
2034
+ font-size: 14px;
2035
+ color: #aaa;
2036
+ background: none;
2037
+
2038
+ &:before{
2039
+ content: "\f107";
2040
+ }
2041
+
2042
+ &:hover{
2043
+ color: #555;
2044
+ }
2045
+ }
2046
+
2047
+ .chosen-container-multi .chosen-choices li.search-choice-placeholder {
2048
+ border: 1px dashed #aaa;
2049
+ margin: 3px 5px 3px 0;
2050
+ }
2051
+
2052
+ .chosen-container-multi .ui-sortable li.search-choice span {
2053
+ cursor: move;
2054
+ }
2055
+
2056
+ .chosen-container-active.chosen-with-drop .chosen-single div b{
2057
+
2058
+ &:before{
2059
+ content: "\f106";
2060
+ }
2061
+ }
2062
+
2063
+ .chosen-container-single .chosen-single-with-deselect span{
2064
+ margin-right: 40px;
2065
+ }
2066
+
2067
+ .chosen-container-single .chosen-search input[type="text"]{
2068
+ background: none;
2069
+ }
2070
+
2071
+ .chosen-container-single .chosen-search{
2072
+
2073
+ &:before{
2074
+ font-family: FontAwesome;
2075
+ position: absolute;
2076
+ content: "\f002";
2077
+ font-size: 11px;
2078
+ right: 10px;
2079
+ top: 7px;
2080
+ color: #aaa;
2081
+ }
2082
+ }
2083
+
2084
+ .wp-picker-container{
2085
+ display: inline-block;
2086
+ }
2087
+
2088
+ .csf--transparent-wrap{
2089
+ display: none;
2090
+ position: relative;
2091
+ top: -1px;
2092
+ width: 235px;
2093
+ padding: 9px 10px;
2094
+ border: 1px solid #dfdfdf;
2095
+ border-top: none;
2096
+ background-color: #fff;
2097
+ }
2098
+
2099
+ .wp-picker-active .csf--transparent-wrap{
2100
+ display: block;
2101
+ }
2102
+
2103
+ .csf--transparent-slider{
2104
+ position: absolute;
2105
+ width: 190px;
2106
+ margin-left: 2px;
2107
+ height: 18px;
2108
+
2109
+ .ui-slider-handle{
2110
+ position: absolute;
2111
+ top: -3px;
2112
+ bottom: -3px;
2113
+ z-index: 5;
2114
+ border-color: #aaa;
2115
+ border-style: solid;
2116
+ border-width: 4px 3px;
2117
+ width: 10px;
2118
+ height: 16px;
2119
+ margin: 0 -5px;
2120
+ background: none;
2121
+ cursor: ew-resize;
2122
+ @include opacity(0.9);
2123
+ @include border-radius(4px);
2124
+ @include box-shadow(0 1px 2px rgba(black, 0.2));
2125
+
2126
+ &:before{
2127
+ content: " ";
2128
+ position: absolute;
2129
+ left: -2px;
2130
+ right: -2px;
2131
+ top: -3px;
2132
+ bottom: -3px;
2133
+ border: 2px solid #fff;
2134
+ @include border-radius(3px);
2135
+ }
2136
+ }
2137
+ }
2138
+
2139
+ .csf--transparent-offset{
2140
+ height: 18px;
2141
+ width: 200px;
2142
+ background: url(../images/checkerboard.png) repeat-y center left scroll #fff;
2143
+ @include box-shadow(0 0 5px rgba(black, 0.4) inset);
2144
+ @include border-radius(2px);
2145
+ }
2146
+
2147
+ .csf--transparent-text{
2148
+ position: absolute;
2149
+ top: 12px;
2150
+ right: 10px;
2151
+ width: 30px;
2152
+ font-size: 12px;
2153
+ line-height: 12px;
2154
+ text-align: center;
2155
+ color: #999;
2156
+ }
2157
+
2158
+ .csf--transparent-button{
2159
+ cursor: pointer;
2160
+ user-select: none;
2161
+ margin-top: 10px;
2162
+ font-size: 11px;
2163
+ text-align: center;
2164
+ border-radius: 2px;
2165
+ padding: 3px 7px;
2166
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
2167
+ letter-spacing: 0.2px;
2168
+ color: #777;
2169
+ border: 1px solid #ccc;
2170
+ background-color: #f7f7f7;
2171
+ transition: background-color .2s, border-color .2s, color .2s;
2172
+ }
2173
+
2174
+ .csf--transparent-active{
2175
+
2176
+ .wp-color-result{
2177
+ background-image: url(../images/checkerboard.png);
2178
+ background-size: 135px;
2179
+ background-position: center left;
2180
+ background-color: transparent !important;
2181
+ }
2182
+
2183
+ .csf--transparent-button{
2184
+ color: #fff;
2185
+ border-color: #3ea032;
2186
+ background-color: #4fb845;
2187
+ }
2188
+
2189
+ .fa:before{
2190
+ content: "\f205";
2191
+ }
2192
+ }
2193
+ }
admin/views/framework/assets/scss/vendor/_helper.scss ADDED
@@ -0,0 +1,183 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * 08. Helper
3
+ */
4
+ .csf-text-desc,
5
+ .csf-text-subtitle{
6
+ font-weight: 400;
7
+ margin-top: 10px;
8
+ color: #999;
9
+ }
10
+
11
+ .csf-text-success{
12
+ color: #2b542c;
13
+ }
14
+
15
+ .csf-text-error{
16
+ color: #d02c21;
17
+ }
18
+
19
+ .csf-text-info{
20
+ color: #31708f;
21
+ }
22
+
23
+ .csf-text-warning{
24
+ color: #ffb900;
25
+ }
26
+
27
+ .csf-text-muted{
28
+ color: #aaa;
29
+ }
30
+
31
+ .csf-text-left{
32
+ text-align: left;
33
+ }
34
+
35
+ .csf-text-center{
36
+ text-align: center;
37
+ }
38
+
39
+ .csf-text-right{
40
+ text-align: right;
41
+ }
42
+
43
+ .csf-block-left{
44
+ float: left;
45
+ }
46
+
47
+ .csf-block-right{
48
+ float: right;
49
+ }
50
+
51
+ .csf-full-width{
52
+ width: 100%;
53
+ }
54
+
55
+ .csf-full-half{
56
+ width: 50%;
57
+ }
58
+
59
+ .csf-table{
60
+ width: 100%;
61
+ display: table;
62
+ }
63
+
64
+ .csf-table-cell{
65
+ display: table-cell;
66
+ vertical-align: middle;
67
+ }
68
+
69
+ .csf-table-expanded{
70
+ width: 100%;
71
+ }
72
+
73
+ .csf-nowrap{
74
+ white-space: nowrap;
75
+ }
76
+
77
+ .csf-text-highlight{
78
+ padding: 2px 4px;
79
+ font-size: 90%;
80
+ color: #c7254e;
81
+ background-color: #f9f2f4;
82
+ @include border-radius(2px);
83
+ }
84
+
85
+ .csf-text-highlight-gray{
86
+ padding: 2px 4px;
87
+ font-size: 90%;
88
+ background-color: #f0f0f0;
89
+ @include border-radius(2px);
90
+ }
91
+
92
+ .csf-hidden{
93
+ display: none;
94
+ }
95
+
96
+ .csf-hide{
97
+ display: none !important;
98
+ }
99
+
100
+ .csf-show{
101
+ display: block !important;
102
+ }
103
+
104
+ .csf-opacity{
105
+ opacity: 0.5;
106
+ }
107
+
108
+ .csf-warning-primary{
109
+ color: #fff !important;
110
+ border-color: #dc3545 !important;
111
+ background: #dc3545 !important;
112
+
113
+ &:hover,
114
+ &:focus{
115
+ border-color: #bd2130 !important;
116
+ background: #bd2130 !important;
117
+ }
118
+
119
+ &:focus{
120
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px #bd2130 !important;
121
+ }
122
+
123
+ &:active{
124
+ border-color: #bd2130 !important;
125
+ background: #bd2130 !important;
126
+ }
127
+ }
128
+
129
+ .csf-form-result{
130
+ display: none;
131
+ float: left;
132
+ padding: 0 8px;
133
+ margin-right: 4px;
134
+ font-size: 11px;
135
+ line-height: 28px;
136
+ user-select: none;
137
+ border-radius: 2px;
138
+ }
139
+
140
+ .csf-form-show{
141
+ display: block;
142
+ }
143
+
144
+ .csf-form-success{
145
+ color: #fff;
146
+ background-color: #46b450;
147
+ }
148
+
149
+ .csf-form-warning{
150
+ color: #8a6d3b;
151
+ background-color: #faebcc;
152
+ }
153
+
154
+ .csf-label-error{
155
+ position: relative;
156
+ top: -2px;
157
+ display: inline-block;
158
+ font-size: 10px;
159
+ line-height: 10px;
160
+ height: 10px;
161
+ width: 10px;
162
+ padding: 1px;
163
+ font-style: normal;
164
+ text-align: center;
165
+ color: #fff;
166
+ vertical-align: middle;
167
+ background-color: #e10000;
168
+ @include border-radius(2px);
169
+ }
170
+
171
+ .csf-no-option{
172
+ padding: 30px;
173
+ }
174
+
175
+ .csf-input-number{
176
+ -moz-appearance:textfield;
177
+ }
178
+
179
+ .csf-input-number::-webkit-inner-spin-button,
180
+ .csf-input-number::-webkit-outer-spin-button{
181
+ -webkit-appearance: none;
182
+ margin: 0;
183
+ }
admin/views/framework/assets/scss/vendor/_mixins.scss ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ @mixin opacity( $opacity ) {
2
+ opacity: $opacity;
3
+ }
admin/views/framework/assets/scss/vendor/_modal.scss ADDED
@@ -0,0 +1,339 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * 08. Modal
3
+ */
4
+ .csf-modal{
5
+ display: none;
6
+ position: fixed;
7
+ z-index: 100101;
8
+ top: 0;
9
+ left: 0;
10
+ width: 100%;
11
+ height: 100%;
12
+ }
13
+
14
+ .csf-modal-icon{
15
+ z-index: 100102;
16
+ }
17
+
18
+ .csf-modal-table{
19
+ display: table;
20
+ width: 100%;
21
+ height: 100%;
22
+ }
23
+
24
+ .csf-modal-table-cell{
25
+ display: table-cell;
26
+ vertical-align: middle;
27
+ margin: 100px 0;
28
+ }
29
+
30
+ .csf-modal-inner{
31
+ position: relative;
32
+ z-index: 10;
33
+ width: 760px;
34
+ height: 750px;
35
+ margin: 0 auto;
36
+ background-color: #fff;
37
+ }
38
+
39
+ .csf-modal-content{
40
+ position: relative;
41
+ overflow: hidden;
42
+ overflow-y: auto;
43
+ height: 595px;
44
+
45
+ .csf-shortcode-button{
46
+ display: none;
47
+ }
48
+
49
+ .csf-fieldset{
50
+ margin-left: 25%;
51
+ }
52
+
53
+ .csf-title{
54
+ width: 20%;
55
+ }
56
+
57
+ .csf-field{
58
+ padding: 15px 30px 15px 15px;
59
+ }
60
+
61
+ a{
62
+ &:active,
63
+ &:focus{
64
+ outline: none;
65
+ @include box-shadow(none);
66
+ }
67
+ }
68
+
69
+ h4{
70
+ font-size: 13px;
71
+
72
+ small{
73
+ font-style: italic;
74
+ font-weight: 400;
75
+ color: #aaa;
76
+ }
77
+ }
78
+ }
79
+
80
+ .csf-modal-title{
81
+ position: relative;
82
+ background-color: #fcfcfc;
83
+ border-bottom: 1px solid #ddd;
84
+ height: 36px;
85
+ font-size: 16px;
86
+ font-weight: 600;
87
+ line-height: 36px;
88
+ margin: 0;
89
+ padding: 0 36px 0 16px;
90
+ }
91
+
92
+ .csf-modal-header{
93
+ width: 100%;
94
+ padding: 14px 0;
95
+ background-color: #f5f5f5;
96
+ border-bottom: 1px solid #eee;
97
+
98
+ select{
99
+ display: block;
100
+ width: 250px;
101
+ margin: 0 auto;
102
+ font-size: 13px;
103
+ line-height: 1;
104
+ height: 30px;
105
+ min-height: 30px;
106
+ background-color: #fff;
107
+ }
108
+ }
109
+
110
+ .csf-modal-close{
111
+ color: #666;
112
+ padding: 0;
113
+ position: absolute;
114
+ top: 0;
115
+ right: 0;
116
+ width: 36px;
117
+ height: 36px;
118
+ text-align: center;
119
+ background: none;
120
+ border: none;
121
+ cursor: pointer;
122
+
123
+ &:before{
124
+ font: normal 20px/36px dashicons;
125
+ content: "\f158";
126
+ vertical-align: top;
127
+ width: 36px;
128
+ height: 36px;
129
+ }
130
+
131
+ &:hover{
132
+ @include opacity(0.5);
133
+ }
134
+ }
135
+
136
+ .csf-modal-insert-wrapper{
137
+ text-align: center;
138
+ width: 100%;
139
+ padding: 15px 0;
140
+ background-color: #f5f5f5;
141
+ border-top: 1px solid #eee;
142
+ }
143
+
144
+ .csf-modal-overlay{
145
+ position: absolute;
146
+ top: 0;
147
+ left: 0;
148
+ width: 100%;
149
+ height: 100%;
150
+ background-color: #000;
151
+ @include opacity(0.5);
152
+ }
153
+
154
+ /**
155
+ * 08. 01. Shortcode Modal
156
+ */
157
+ .csf--repeatable{
158
+ padding: 15px 15px 0 15px;
159
+ }
160
+
161
+ .csf--repeat-button-block{
162
+ text-align: center;
163
+ padding-bottom: 15px;
164
+ }
165
+
166
+ .csf--repeat-shortcode{
167
+ position: relative;
168
+ margin-bottom: 15px;
169
+ border: 1px dashed #ddd;
170
+
171
+ &:first-child{
172
+
173
+ .csf-repeat-remove{
174
+ display: none;
175
+ }
176
+ }
177
+
178
+ .csf-repeat-remove{
179
+ position: absolute;
180
+ right: 10px;
181
+ top: 10px;
182
+ z-index: 10;
183
+ cursor: pointer;
184
+ display: inline-block;
185
+ font-size: 11px;
186
+ width: 18px;
187
+ height: 18px;
188
+ line-height: 18px;
189
+ text-align: center;
190
+ border-radius: 2px;
191
+ color: #fff;
192
+ background-color: #e14d43;
193
+ @include opacity(0.5);
194
+
195
+ &:hover{
196
+ @include opacity(1);
197
+ }
198
+ }
199
+ }
200
+
201
+ .csf-shortcode-single{
202
+
203
+ .csf-modal-inner{
204
+ height: 750px;
205
+ }
206
+
207
+ .csf-modal-content{
208
+ height: 652px;
209
+ }
210
+ }
211
+
212
+ .elementor-editor-active{
213
+
214
+ .csf-shortcode-button{
215
+ margin-left: 5px;
216
+ }
217
+
218
+ .csf-modal .hidden{
219
+ display: none !important;
220
+ }
221
+ }
222
+
223
+ /**
224
+ * 08. 02. Gutenberg Modal
225
+ */
226
+ .csf-shortcode-block{
227
+ text-align: center;
228
+ padding: 14px;
229
+ font-size: 13px;
230
+ background-color: #f5f5f5;
231
+ font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
232
+ }
233
+
234
+ .csf-shortcode-block .button{
235
+ margin: 10px 0;
236
+ }
237
+
238
+ /**
239
+ * 08. 03. Icon Modal
240
+ */
241
+ .csf-modal-icon{
242
+
243
+ .csf-icon-title{
244
+ padding: 15px 0;
245
+ margin: 4px;
246
+ font-size: 14px;
247
+ font-weight: bold;
248
+ text-align: center;
249
+ border: 1px solid #eee;
250
+ background-color: #f7f7f7;
251
+ }
252
+
253
+ .csf-icon-search{
254
+ width: 250px;
255
+ height: 40px;
256
+ line-height: 40px;
257
+ }
258
+
259
+ a{
260
+ display: inline-block;
261
+ padding: 4px;
262
+ cursor: pointer;
263
+
264
+ .csf-icon{
265
+ position: relative;
266
+ padding: 4px;
267
+ display: inline-block;
268
+ font-size: 14px;
269
+ width: 30px;
270
+ height: 26px;
271
+ line-height: 26px;
272
+ text-align: center;
273
+ vertical-align: top;
274
+ color: #555;
275
+ border: 1px solid #ccc;
276
+ background-color: #f7f7f7;
277
+ @include border-radius(3px);
278
+ @include box-shadow(0 1px 0 rgba(black, 0.08));
279
+ @include box-sizing(content-box);
280
+ }
281
+
282
+ &:hover .csf-icon{
283
+ color: #fff;
284
+ border-color: #222;
285
+ background-color: #222;
286
+ }
287
+ }
288
+
289
+ .csf-modal-content{
290
+ padding: 10px;
291
+ height: 618px;
292
+ }
293
+
294
+ .csf-text-error{
295
+ padding: 10px;
296
+ }
297
+ }
298
+
299
+ .csf-modal-loading{
300
+ display: none;
301
+ position: absolute;
302
+ left: 15px;
303
+ top: 15px;
304
+ }
305
+
306
+ .csf-loading{
307
+ position: relative;
308
+ width: 20px;
309
+ height: 20px;
310
+ background: #ccc;
311
+ @include border-radius(20px);
312
+ @include box-shadow(0 2px 5px rgba(black, 0.070));
313
+
314
+ &:after{
315
+ position: absolute;
316
+ top: 50%;
317
+ left: 50%;
318
+ width: 4px;
319
+ height: 4px;
320
+ content: "";
321
+ margin-top: -2px;
322
+ margin-left: -2px;
323
+ background-color: white;
324
+ @include animation-duration(0.5s);
325
+ @include animation-iteration-count(infinite);
326
+ @include animation-timing-function(linear);
327
+ @include animation-name(csfLoader);
328
+ @include border-radius(4px);
329
+ }
330
+ }
331
+
332
+ @include keyframes(csfLoader){
333
+ 0%{
334
+ @include transform( rotate(0deg) translateX(-6px) rotate(0deg) );
335
+ }
336
+ 100%{
337
+ @include transform( rotate(360deg) translateX(-6px) rotate(-360deg) );
338
+ }
339
+ }
admin/views/framework/assets/scss/vendor/_profile.scss ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * 06. Profile
3
+ */
4
+ .csf-profile{
5
+
6
+ > h2 > .fa {
7
+ padding-right: 7px;
8
+ }
9
+
10
+ > .csf-field{
11
+ padding: 15px 0;
12
+ border-top: none !important;
13
+
14
+ > .csf-title{
15
+ width: 220px;
16
+
17
+ h4{
18
+ font-size: 14px;
19
+ font-weight: 600;
20
+ line-height: 1.3;
21
+ display: inline-block;
22
+ vertical-align: middle;
23
+ }
24
+ }
25
+
26
+ > .csf-fieldset{
27
+ margin-left: 220px;
28
+
29
+ > .csf-help{
30
+ top: -15px;
31
+ right: -5px;
32
+ }
33
+ }
34
+ }
35
+
36
+ > .csf-field-heading{
37
+ font-size: 1.1em;
38
+ }
39
+
40
+ > .csf-field-subheading{
41
+ font-size: 12px;
42
+ }
43
+
44
+ > .csf-field-subheading,
45
+ > .csf-field-heading{
46
+ margin: 10px 0;
47
+ padding: 15px !important;
48
+ border: 1px solid #ddd;
49
+ }
50
+
51
+ > .csf-field-submessage{
52
+ margin: 20px 0;
53
+
54
+ .csf-submessage{
55
+ padding: 10px;
56
+ border-left-width: 1px;
57
+ border-left-style: solid;
58
+ border-right-width: 1px;
59
+ border-right-style: solid;
60
+ }
61
+ }
62
+
63
+ > .csf-field-notice{
64
+ background-color: transparent;
65
+ }
66
+ }
admin/views/framework/assets/scss/vendor/_responsive.scss ADDED
@@ -0,0 +1,141 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * 11. Responsive
3
+ */
4
+ @media only screen and (max-width:1200px){
5
+
6
+ .csf-metabox{
7
+
8
+ .csf-field{
9
+
10
+ .csf-title{
11
+ float: none;
12
+ width: 100%;
13
+ margin-bottom: 10px;
14
+ }
15
+
16
+ .csf-fieldset{
17
+ margin-left: 0;
18
+ }
19
+ }
20
+ }
21
+ }
22
+
23
+ @media only screen and (max-width:782px){
24
+
25
+ .csf-header-inner{
26
+ text-align: center;
27
+
28
+ h1{
29
+ width: 100%;
30
+ margin-bottom: 10px;
31
+ }
32
+ }
33
+
34
+ .csf-form-result{
35
+ float: none;
36
+ margin-right: 0;
37
+ margin-bottom: 10px;
38
+ }
39
+
40
+ .csf-search,
41
+ .csf-header-right,
42
+ .csf-header-left{
43
+ width: 100%;
44
+ }
45
+
46
+ .csf-search{
47
+ text-align: center;
48
+ margin-bottom: 15px;
49
+ }
50
+
51
+ .csf-footer{
52
+ text-align: center;
53
+ }
54
+
55
+ .csf-buttons{
56
+ float: none;
57
+ }
58
+
59
+ .csf-copyright{
60
+ float: none;
61
+ margin-top: 10px;
62
+ }
63
+
64
+ .csf-nav,
65
+ .csf-expand-all,
66
+ .csf-reset-section,
67
+ .csf-nav-background{
68
+ display: none !important;
69
+ }
70
+
71
+ .csf-content{
72
+ margin-left: 0;
73
+ }
74
+
75
+ .csf-section-title,
76
+ .csf-section{
77
+ display: block !important;
78
+ }
79
+
80
+ .csf-field{
81
+
82
+ .csf-title{
83
+ float: none;
84
+ width: 100%;
85
+ margin-bottom: 10px;
86
+ }
87
+
88
+ .csf-fieldset{
89
+ margin-left: 0;
90
+ }
91
+ }
92
+
93
+ .csf-modal-inner{
94
+ width: 350px;
95
+ height: 400px;
96
+ }
97
+
98
+ .csf-modal-content{
99
+ height: 237px;
100
+ }
101
+
102
+ .csf-icon-dialog{
103
+
104
+ .csf-modal-inner{
105
+ width: 305px;
106
+ height: 380px;
107
+ }
108
+
109
+ .csf-modal-content{
110
+ height: 267px;
111
+ }
112
+ }
113
+
114
+ .csf-modal-icon{
115
+
116
+ .csf-modal-inner{
117
+ width: 330px;
118
+ height: 385px;
119
+ }
120
+
121
+ .csf-modal-content{
122
+ height: 252px;
123
+ }
124
+ }
125
+
126
+ .csf-profile{
127
+
128
+ > .csf-field{
129
+
130
+ > .csf-title{
131
+ float: none;
132
+ width: 100%;
133
+ margin-bottom: 10px;
134
+ }
135
+
136
+ > .csf-fieldset{
137
+ margin-left: 0;
138
+ }
139
+ }
140
+ }
141
+ }
admin/views/framework/assets/scss/vendor/_taxonomy.scss ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * 06. Taxonomy
3
+ */
4
+ .csf-taxonomy{
5
+
6
+ > .csf-field{
7
+ border-top: none !important;
8
+ }
9
+
10
+ > .csf-field-heading{
11
+ font-size: 1.1em;
12
+ padding: 20px !important;
13
+ border: 1px solid #ddd;
14
+ }
15
+
16
+ > .csf-field-subheading{
17
+ font-size: 12px;
18
+ padding: 15px !important;
19
+ border: 1px solid #ddd;
20
+ }
21
+
22
+ > .csf-field-submessage{
23
+
24
+ .csf-submessage{
25
+ padding: 15px;
26
+ border-left-width: 1px;
27
+ border-left-style: solid;
28
+ border-right-width: 1px;
29
+ border-right-style: solid;
30
+ }
31
+ }
32
+
33
+ > .csf-field-notice{
34
+ background-color: transparent;
35
+ }
36
+
37
+ .csf-section-title{
38
+ display: block;
39
+ padding: 15px ;
40
+ background-color: #f9f9f9;
41
+ border: 1px solid #e5e5e5;
42
+ @include box-shadow(0 1px 1px rgba(black, 0.04));
43
+ }
44
+ }
45
+
46
+ .csf-taxonomy-add-fields{
47
+
48
+ > .csf-field{
49
+ padding: 8px 0;
50
+
51
+ > .csf-title{
52
+ float: none;
53
+ width: 100%;
54
+ padding: 2px 2px 4px 0;
55
+
56
+ h4{
57
+ font-size: 12px;
58
+ font-weight: normal;
59
+ }
60
+ }
61
+
62
+ > .csf-fieldset{
63
+ margin-left: 0;
64
+
65
+ > .csf-help{
66
+ right: -5px;
67
+ }
68
+ }
69
+ }
70
+
71
+ + p.submit{
72
+ margin-top: 0;
73
+ }
74
+ }
75
+
76
+ .csf-taxonomy-edit-fields{
77
+
78
+ > .csf-field{
79
+ padding: 20px 0;
80
+
81
+ > .csf-title{
82
+ width: 225px;
83
+
84
+ h4{
85
+ font-size: 14px;
86
+ font-weight: 600;
87
+ line-height: 1.3;
88
+ display: inline-block;
89
+ vertical-align: middle;
90
+ }
91
+ }
92
+
93
+ > .csf-fieldset{
94
+ margin-left: 225px;
95
+
96
+ > .csf-help{
97
+ top: -5px;
98
+ right: -5px;
99
+ }
100
+ }
101
+ }
102
+
103
+ > .csf-field-submessage{
104
+ margin: 20px 0;
105
+ }
106
+
107
+ > .csf-field-subheading,
108
+ > .csf-field-heading{
109
+ margin: 20px 0;
110
+ border: 1px solid #ddd;
111
+ }
112
+ }
admin/views/framework/assets/scss/vendor/_themes.scss ADDED
@@ -0,0 +1,204 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * 02. Themes
3
+ */
4
+
5
+ /**
6
+ * 02. 01. Theme Dark
7
+ */
8
+ .csf-theme-dark{
9
+
10
+ .csf-header-inner{
11
+ background-color: #050505;
12
+
13
+ h1{
14
+ color: #fff;
15
+
16
+ small{
17
+ color: #555;
18
+ }
19
+ }
20
+ }
21
+
22
+ .csf-expand-all{
23
+ color: #999;
24
+ background-color: #222;
25
+
26
+ &:hover{
27
+ color: #fff;
28
+ background-color: #333;
29
+ }
30
+ }
31
+
32
+ .csf-search{
33
+
34
+ input{
35
+ color: #fff;
36
+ background-color: #222;
37
+ }
38
+
39
+ &:focus{
40
+ background-color: #444;
41
+ }
42
+
43
+ &::-webkit-input-placeholder{
44
+ color: #666;
45
+ }
46
+ }
47
+
48
+ .csf-nav{
49
+
50
+ ul{
51
+
52
+ li{
53
+
54
+ a{
55
+ color: #999;
56
+ background-color: #222;
57
+ border-bottom: 1px solid #2f2f2f;
58
+
59
+ &:hover{
60
+ color: #fff;
61
+ }
62
+ }
63
+
64
+ .csf-section-active{
65
+ color: #fff;
66
+ background-color: #111;
67
+ }
68
+ }
69
+
70
+ ul{
71
+
72
+ li{
73
+
74
+ a{
75
+ background-color: #191919;
76
+ border-bottom: 1px solid #2f2f2f;
77
+ }
78
+
79
+ .csf-section-active{
80
+ background-color: #101010;
81
+ }
82
+ }
83
+
84
+ &:before{
85
+ background-color: rgba(#222, 0.75);
86
+ }
87
+ }
88
+ }
89
+
90
+ > ul > li:last-child > a{
91
+ border-bottom: none;
92
+ }
93
+ }
94
+
95
+ .csf-nav-background{
96
+ background-color: #222;
97
+ }
98
+
99
+ .csf-footer{
100
+ color: #555;
101
+ background-color: #050505;
102
+ }
103
+ }
104
+
105
+ /**
106
+ * 02. 02. Theme Light
107
+ */
108
+ .csf-theme-light{
109
+
110
+ .csf-container{
111
+ border: 1px solid #e5e5e5;
112
+ @include box-shadow(0 0 15px rgba(black, 0.04));
113
+ }
114
+
115
+ .csf-header-inner{
116
+ border-bottom: 1px solid #e5e5e5;
117
+ background-color: #f5f5f5;
118
+ background: linear-gradient(#fefefe, #f5f5f5);
119
+
120
+ h1{
121
+
122
+ small{
123
+ color: #999;
124
+ }
125
+ }
126
+ }
127
+
128
+ .csf-expand-all{
129
+ color: #999;
130
+ background-color: #fff;
131
+ @include box-shadow(0 1px 1px rgba(black, 0.05));
132
+
133
+ &:hover{
134
+ color: #555;
135
+ }
136
+ }
137
+
138
+ .csf-search{
139
+
140
+ input{
141
+ color: #555;
142
+ background-color: #fff;
143
+ @include box-shadow(0px 1px 1px rgba(black, 0.05));
144
+
145
+ &::-webkit-input-placeholder{
146
+ color: #bbb;
147
+ }
148
+ }
149
+ }
150
+
151
+ .csf-nav{
152
+
153
+ ul{
154
+
155
+ li{
156
+
157
+ a{
158
+ color: #666;
159
+ background-color: #f5f5f5;
160
+ border-bottom: 1px solid #e5e5e5;
161
+
162
+ &:hover{
163
+ color: #222;
164
+ }
165
+ }
166
+
167
+ .csf-section-active{
168
+ color: #222;
169
+ background-color: #fff;
170
+
171
+ &:after{
172
+ display: none;
173
+ }
174
+ }
175
+ }
176
+
177
+ ul{
178
+
179
+ li{
180
+
181
+ a{
182
+ background-color: #eee;
183
+ border-bottom: 1px solid #e5e5e5;
184
+ }
185
+ }
186
+ }
187
+ }
188
+
189
+ > ul > li:last-child > a{
190
+ border-bottom: none;
191
+ }
192
+ }
193
+
194
+ .csf-nav-background{
195
+ background-color: #f5f5f5;
196
+ }
197
+
198
+ .csf-footer{
199
+ color: #555;
200
+ border-top: 1px solid #e5e5e5;
201
+ background-color: #f5f5f5;
202
+ background: linear-gradient(#fafafa, #f5f5f5);
203
+ }
204
+ }
admin/views/framework/assets/scss/vendor/_welcome.scss ADDED
@@ -0,0 +1,346 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * 10. Welcome Page
3
+ */
4
+ .csf-welcome-wrap{
5
+ position: relative;
6
+ margin: 25px 40px 0 20px;
7
+ font-size: 15px;
8
+ max-width: 1200px;
9
+
10
+ p{
11
+ font-size: 14px;
12
+ line-height: 1.5;
13
+ }
14
+
15
+ h1{
16
+ margin: 0.2em 200px 0 0;
17
+ padding: 0;
18
+ color: #32373c;
19
+ line-height: 1.2em;
20
+ font-size: 2.8em;
21
+ font-weight: 400;
22
+ }
23
+
24
+ .csf-logo{
25
+ position: absolute;
26
+ overflow: hidden;
27
+ top: 0;
28
+ right: 0;
29
+ height: 160px;
30
+ width: 140px;
31
+ background-image: linear-gradient( 45deg, #2d67cb, #ad19f3);
32
+ box-shadow: 0 1px 4px rgba(0,0,0,0.25), inset 0 0 0 4px rgba(0,0,0,0.25);
33
+
34
+ .csf--effects i{
35
+ position: absolute;
36
+ width: 200px;
37
+ height: 100px;
38
+ background-color: rgba(0,0,0,0.15);
39
+ transform: rotate(-45deg);
40
+ }
41
+
42
+ .csf--effects i:nth-child(1){
43
+ bottom: -20px;
44
+ right: -70px;
45
+ }
46
+
47
+ .csf--effects i:nth-child(2){
48
+ bottom: -35px;
49
+ right: -80px;
50
+ }
51
+
52
+ .csf--effects i:nth-child(3){
53
+ bottom: -50px;
54
+ right: -90px;
55
+ }
56
+
57
+ .csf--effects i:nth-child(4){
58
+ bottom: -65px;
59
+ right: -100px;
60
+ }
61
+
62
+ .csf--wp-logos{
63
+ position: relative;
64
+ padding-top: 25px;
65
+ text-align: center;
66
+ }
67
+
68
+ .csf--wp-logo{
69
+ position: absolute;
70
+ left: 20px;
71
+ width: 20px;
72
+ height: 20px;
73
+ background-repeat: no-repeat;
74
+ background-position: center center;
75
+ background-image: url(../images/wp-logo.svg);
76
+ }
77
+
78
+ .csf--wp-plugin-logo{
79
+ display: inline-block;
80
+ width: 50px;
81
+ height: 50px;
82
+ border: 3px solid #fff;
83
+ background-size: 40px;
84
+ background-repeat: no-repeat;
85
+ background-position: center center;
86
+ background-image: url(../images/wp-plugin-logo.svg);
87
+ border-radius: 100%;
88
+ vertical-align: middle;
89
+ }
90
+
91
+ .csf--text{
92
+ position: absolute;
93
+ left: 0;
94
+ right: 0;
95
+ top: 90px;
96
+ color: #fff;
97
+ font-size: 13px;
98
+ line-height: 1.2em;
99
+ font-weight: 600;
100
+ text-align: center;
101
+ text-transform: uppercase;
102
+ text-shadow: 1px 1px 0 rgba(0,0,0,0.25);
103
+ }
104
+
105
+ .csf--version{
106
+ top: auto;
107
+ left: auto;
108
+ right: 8px;
109
+ bottom: 4px;
110
+ font-size: 11px;
111
+ text-transform: lowercase;
112
+ }
113
+ }
114
+
115
+ .csf-about-text{
116
+ font-weight: 400;
117
+ line-height: 1.6em;
118
+ font-size: 19px;
119
+ margin: 1em 200px 1em 0;
120
+ color: #555d66;
121
+ }
122
+
123
+ .csf-demo-button{
124
+ margin: 1em 200px 2em 0;
125
+ }
126
+
127
+ .nav-tab-wrapper{
128
+ margin-bottom: 20px;
129
+ }
130
+
131
+ ul{
132
+ list-style-type: disc;
133
+ padding-left: 15px;
134
+ }
135
+
136
+ .csf--col{
137
+ float: left;
138
+ padding-right: 20px;
139
+ box-sizing: border-box;
140
+ }
141
+
142
+ .csf--col-2{
143
+ width: 50%;
144
+ }
145
+
146
+ .csf--col-3{
147
+ width: 33.333%;
148
+ }
149
+
150
+ .csf--col-4{
151
+ width: 25%;
152
+ }
153
+
154
+ .csf--col-5{
155
+ width: 20%;
156
+ }
157
+
158
+ .csf--col-last{
159
+ padding-right: 0;
160
+ }
161
+
162
+ .csf--col-upgrade{
163
+ padding: 10px 0;
164
+ text-align: center;
165
+ border-top: 1px solid #e5e5e5;
166
+ }
167
+ }
168
+
169
+ .csf--table-compare{
170
+
171
+ thead,
172
+ tfoot{
173
+ td{
174
+ text-align: center;
175
+ }
176
+ }
177
+
178
+ td{
179
+ font-size: 14px;
180
+ text-align: center;
181
+ vertical-align: middle;
182
+ padding: 10px;
183
+ }
184
+
185
+ td:first-child{
186
+ text-align: left;
187
+ }
188
+
189
+ tfoot{
190
+ td{
191
+ padding: 15px 0;
192
+ }
193
+ }
194
+
195
+ .fa{
196
+ font-size: 18px;
197
+ }
198
+
199
+ .fa-check-circle{
200
+ color: #46b450;
201
+ }
202
+
203
+ .fa-times-circle{
204
+ color: #dc3232;
205
+ }
206
+ }
207
+
208
+ .csf-welcome-cols{
209
+ clear: both;
210
+ margin: 20px 0;
211
+ background-color: #fff;
212
+ padding: 0 0;
213
+ border-radius: 2px;
214
+ border: 1px solid #e5e5e5;
215
+
216
+ .csf--col{
217
+ width: 25%;
218
+ float: left;
219
+ padding: 20px;
220
+ text-align: center;
221
+ box-sizing: border-box;
222
+ min-height: 200px;
223
+ border-right: 1px solid #e5e5e5;
224
+ }
225
+
226
+ .csf--left,
227
+ .csf--block{
228
+ float: left;
229
+ width: 20%;
230
+ padding: 0 30px;
231
+ text-align: center;
232
+ box-sizing: border-box;
233
+ }
234
+
235
+ .csf--block{
236
+ width: 80%;
237
+ }
238
+
239
+ .csf--col-first{
240
+ border-bottom: 1px solid #e5e5e5;
241
+ }
242
+
243
+ .csf--last{
244
+ border-right: none;
245
+ }
246
+
247
+ .csf--space{
248
+ height: 20px;
249
+ }
250
+
251
+ .csf--icon{
252
+ display: inline-block;
253
+ font-size: 20px;
254
+ width: 30px;
255
+ height: 30px;
256
+ line-height: 30px;
257
+ text-align: center;
258
+ margin-bottom: 10px;
259
+ color: #fff;
260
+ background-color: #555;
261
+ border-radius: 30px;
262
+ }
263
+
264
+ .csf--active{
265
+ background-color: #5cb85c;
266
+ }
267
+
268
+ .csf--deactive{
269
+ background-color: #e14d43;
270
+ }
271
+
272
+ .csf--title{
273
+ font-weight: bold;
274
+ display: block;
275
+ }
276
+
277
+ p:last-child{
278
+ margin-bottom: 0;
279
+ }
280
+ }
281
+
282
+ .csf-features-cols{
283
+
284
+ .csf--key-features{
285
+ width: 30%;
286
+ }
287
+ .csf--available-fields{
288
+ width: 70%;
289
+ }
290
+ }
291
+
292
+ .csf-code-block{
293
+ margin: 20px 0;
294
+ padding: 5px 20px;
295
+ background-color: #fff;
296
+ border-radius: 2px;
297
+ box-shadow: 0 1px 1px rgba(0,0,0,0.15);
298
+
299
+ pre{
300
+ font-size: 13px;
301
+ color: #0073aa;
302
+
303
+ span{
304
+ color: #999;
305
+ }
306
+ }
307
+ }
308
+
309
+ .csf--table-fields{
310
+ td{
311
+ font-size: 14px;
312
+ }
313
+ }
314
+
315
+ .csf--upgrade a{
316
+ color: #5cb85c;
317
+ font-weight: bold;
318
+
319
+ &:focus,
320
+ &:hover{
321
+ color: #4aa14a;
322
+ outline: none;
323
+ box-shadow: none;
324
+ }
325
+ }
326
+
327
+ @media only screen and (max-width:782px){
328
+
329
+ .csf-welcome-cols{
330
+ .csf--col{
331
+ width: 100%;
332
+ min-height: auto;
333
+ border-right: none;
334
+ border-bottom: 1px solid #e5e5e5;
335
+ }
336
+ }
337
+
338
+ .csf-features-cols{
339
+ .csf--key-features{
340
+ width: 100%;
341
+ }
342
+ .csf--available-fields{
343
+ width: 100%;
344
+ }
345
+ }
346
+ }
admin/views/framework/assets/scss/vendor/_widget.scss ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * 04. Widget
3
+ */
4
+ .csf-widgets{
5
+
6
+ > .csf-field{
7
+ position: relative;
8
+ top: -1px;
9
+ margin-right: -15px;
10
+ margin-left: -15px;
11
+ padding: 12px 15px;
12
+
13
+ .csf-field{
14
+ margin-left: 0;
15
+ margin-right: 0;
16
+ }
17
+
18
+ .csf-title{
19
+ float: none;
20
+ width: 100%;
21
+ margin-bottom: 5px;
22
+ }
23
+
24
+ .csf-fieldset{
25
+ margin-left: 0;
26
+ }
27
+ }
28
+
29
+ .csf-field-text input{
30
+ width: 100%;
31
+ }
32
+
33
+ .csf-field-notice .csf-notice{
34
+ padding: 15px;
35
+ }
36
+ }
37
+
38
+ .control-section{
39
+
40
+ .csf-widgets{
41
+
42
+ > .csf-field{
43
+ margin-right: -10px;
44
+ margin-left: -10px;
45
+ padding: 10px 12px;
46
+ }
47
+ }
48
+ }
admin/views/framework/classes/abstract.class.php ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Abstract Class
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Abstract' ) ) {
11
+ abstract class CSF_Abstract {
12
+
13
+ public $abstract = '';
14
+ public $output_css = '';
15
+ public $typographies = array();
16
+
17
+ public function __construct() {
18
+
19
+ // Check for embed google web fonts
20
+ if( ! empty( $this->args['enqueue_webfont'] ) ) {
21
+ add_action( 'wp_enqueue_scripts', array( &$this, 'add_enqueue_google_fonts' ), 100 );
22
+ }
23
+
24
+ // Check for embed custom css styles
25
+ if( ! empty( $this->args['output_css'] ) ) {
26
+ add_action( 'wp_head', array( &$this, 'add_output_css' ), 100 );
27
+ }
28
+
29
+ }
30
+
31
+ public function add_enqueue_google_fonts() {
32
+
33
+ if( ! empty( $this->pre_fields ) ) {
34
+
35
+ foreach( $this->pre_fields as $field ) {
36
+
37
+ $field_id = ( ! empty( $field['id'] ) ) ? $field['id'] : '';
38
+ $field_type = ( ! empty( $field['type'] ) ) ? $field['type'] : '';
39
+ $field_output = ( ! empty( $field['output'] ) ) ? $field['output'] : '';
40
+ $field_check = ( $field_type === 'typography' || $field_output ) ? true : false;
41
+
42
+ if( $field_type && $field_id ) {
43
+
44
+ CSF::maybe_include_field( $field_type );
45
+
46
+ $class_name = 'CSF_Field_' . $field_type;
47
+
48
+ if( class_exists( $class_name ) ) {
49
+
50
+ if( method_exists( $class_name, 'output' ) || method_exists( $class_name, 'enqueue_google_fonts' ) ) {
51
+
52
+ $field_value = '';
53
+
54
+ if( $field_check && ( $this->abstract === 'options' || $this->abstract === 'customize' ) ) {
55
+ $field_value = ( isset( $this->options[$field_id] ) && $this->options[$field_id] !== '' ) ? $this->options[$field_id] : '';
56
+ } else if( $field_check && $this->abstract === 'metabox' ) {
57
+ $field_value = $this->get_meta_value( $field );
58
+ }
59
+
60
+ $instance = new $class_name( $field, $field_value, $this->unique, 'wp/enqueue', $this );
61
+
62
+ // typography enqueue and embed google web fonts
63
+ if( $field_type === 'typography' && $this->args['enqueue_webfont'] && ! empty( $field_value['font-family'] ) ) {
64
+ $instance->enqueue_google_fonts();
65
+ }
66
+
67
+ // output css
68
+ if( $field_output && $this->args['output_css'] ) {
69
+ $instance->output();
70
+ }
71
+
72
+ unset( $instance );
73
+
74
+ }
75
+
76
+ }
77
+
78
+ }
79
+
80
+ }
81
+
82
+ }
83
+
84
+ if( ! empty( $this->typographies ) && empty( $this->args['async_webfont'] ) ) {
85
+
86
+ $query = array( 'family' => implode( '%7C', $this->typographies ) );
87
+ $api = '//fonts.googleapis.com/css';
88
+ $handle = 'csf-google-web-fonts-'. $this->unique;
89
+ $src = esc_url( add_query_arg( $query, $api ) );
90
+
91
+ wp_enqueue_style( $handle, $src, array(), null );
92
+
93
+ }
94
+
95
+ if( ! empty( $this->typographies ) && ! empty( $this->args['async_webfont'] ) ) {
96
+
97
+ $api = '//ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js';
98
+ echo '<script type="text/javascript">';
99
+ echo 'WebFontConfig={google:{families:['. "'" . implode( "','", $this->typographies ) . "'" .']}};';
100
+ echo '!function(e){var t=e.createElement("script"),s=e.scripts[0];t.src="'. $api .'",t.async=!0,s.parentNode.insertBefore(t,s)}(document);';
101
+ echo '</script>';
102
+
103
+ }
104
+
105
+ }
106
+
107
+ public function add_output_css() {
108
+
109
+ $this->output_css = apply_filters( "csf_{$this->unique}_output_css", $this->output_css, $this );
110
+
111
+ if ( ! empty( $this->output_css ) ) {
112
+ echo '<style type="text/css">'. $this->output_css . '</style>';
113
+ }
114
+
115
+ }
116
+
117
+ }
118
+ }
admin/views/framework/classes/comment-metabox.class.php ADDED
@@ -0,0 +1,337 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Comment Metabox Class
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Comment_Metabox' ) ) {
11
+ class CSF_Comment_Metabox extends CSF_Abstract{
12
+
13
+ // constans
14
+ public $unique = '';
15
+ public $abstract = 'comment_metabox';
16
+ public $pre_fields = array();
17
+ public $sections = array();
18
+ public $args = array(
19
+ 'title' => '',
20
+ 'data_type' => 'serialize',
21
+ 'priority' => 'default',
22
+ 'show_restore' => false,
23
+ 'theme' => 'dark',
24
+ 'class' => '',
25
+ 'defaults' => array(),
26
+ );
27
+
28
+ // run comment metabox construct
29
+ public function __construct( $key, $params = array() ) {
30
+
31
+ $this->unique = $key;
32
+ $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
33
+ $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
34
+ $this->pre_fields = $this->pre_fields( $this->sections );
35
+
36
+ add_action( 'add_meta_boxes_comment', array( &$this, 'add_comment_meta_box' ) );
37
+ add_action( 'edit_comment', array( &$this, 'save_comment_meta_box' ) );
38
+
39
+ if( ! empty( $this->args['class'] ) ) {
40
+ add_filter( 'postbox_classes_comment_'. $this->unique, array( &$this, 'add_comment_metabox_classes' ) );
41
+ }
42
+
43
+ // wp enqeueu for typography and output css
44
+ parent::__construct();
45
+
46
+ }
47
+
48
+ // instance
49
+ public static function instance( $key, $params = array() ) {
50
+ return new self( $key, $params );
51
+ }
52
+
53
+ public function pre_fields( $sections ) {
54
+
55
+ $result = array();
56
+
57
+ foreach( $sections as $key => $section ) {
58
+ if( ! empty( $section['fields'] ) ) {
59
+ foreach( $section['fields'] as $field ) {
60
+ $result[] = $field;
61
+ }
62
+ }
63
+ }
64
+
65
+ return $result;
66
+ }
67
+
68
+ public function add_comment_metabox_classes( $classes ) {
69
+
70
+ if( ! empty( $this->args['class'] ) ) {
71
+ $classes[] = $this->args['class'];
72
+ }
73
+
74
+ return $classes;
75
+
76
+ }
77
+
78
+ // add comment metabox
79
+ public function add_comment_meta_box( $post_type ) {
80
+
81
+ add_meta_box( $this->unique, $this->args['title'], array( &$this, 'add_comment_meta_box_content' ), 'comment', 'normal', $this->args['priority'], $this->args );
82
+
83
+ }
84
+
85
+ // get default value
86
+ public function get_default( $field ) {
87
+
88
+ $default = ( isset( $field['id'] ) && isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : null;
89
+ $default = ( isset( $field['default'] ) ) ? $field['default'] : $default;
90
+
91
+ return $default;
92
+
93
+ }
94
+
95
+ // get meta value
96
+ public function get_meta_value( $comment_id, $field ) {
97
+
98
+ $value = null;
99
+
100
+ if( ! empty( $comment_id ) && ! empty( $field['id'] ) ) {
101
+
102
+ if( $this->args['data_type'] !== 'serialize' ) {
103
+ $meta = get_comment_meta( $comment_id, $field['id'] );
104
+ $value = ( isset( $meta[0] ) ) ? $meta[0] : null;
105
+ } else {
106
+ $meta = get_comment_meta( $comment_id, $this->unique, true );
107
+ $value = ( isset( $meta[$field['id']] ) ) ? $meta[$field['id']] : null;
108
+ }
109
+
110
+ }
111
+
112
+ $default = $this->get_default( $field );
113
+ $value = ( isset( $value ) ) ? $value : $default;
114
+
115
+ return $value;
116
+
117
+ }
118
+
119
+ // add comment metabox content
120
+ public function add_comment_meta_box_content( $comment, $callback ) {
121
+
122
+ $has_nav = ( count( $this->sections ) > 1 ) ? true : false;
123
+ $show_all = ( ! $has_nav ) ? ' csf-show-all' : '';
124
+ $errors = ( is_object ( $comment ) ) ? get_comment_meta( $comment->comment_ID, '_csf_errors', true ) : array();
125
+ $errors = ( ! empty( $errors ) ) ? $errors : array();
126
+ $theme = ( $this->args['theme'] ) ? ' csf-theme-'. $this->args['theme'] : '';
127
+
128
+ if( is_object ( $comment ) && ! empty( $errors ) ) {
129
+ delete_comment_meta( $comment->comment_ID, '_csf_errors' );
130
+ }
131
+
132
+ wp_nonce_field( 'csf_comment_metabox_nonce', 'csf_comment_metabox_nonce'. $this->unique );
133
+
134
+ echo '<div class="csf csf-comment-metabox'. $theme .'">';
135
+
136
+ echo '<div class="csf-wrapper'. $show_all .'">';
137
+
138
+ if( $has_nav ) {
139
+
140
+ echo '<div class="csf-nav csf-nav-metabox" data-unique="'. $this->unique .'">';
141
+
142
+ echo '<ul>';
143
+ $tab_key = 1;
144
+ foreach( $this->sections as $section ) {
145
+
146
+ $tab_error = ( ! empty( $errors['sections'][$tab_key] ) ) ? '<i class="csf-label-error csf-error">!</i>' : '';
147
+ $tab_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-icon '. $section['icon'] .'"></i>' : '';
148
+
149
+ echo '<li><a href="#" data-section="'. $this->unique .'_'. $tab_key .'">'. $tab_icon . $section['title'] . $tab_error .'</a></li>';
150
+
151
+ $tab_key++;
152
+ }
153
+ echo '</ul>';
154
+
155
+ echo '</div>';
156
+
157
+ }
158
+
159
+ echo '<div class="csf-content">';
160
+
161
+ echo '<div class="csf-sections">';
162
+
163
+ $section_key = 1;
164
+
165
+ foreach( $this->sections as $section ) {
166
+
167
+ $onload = ( ! $has_nav ) ? ' csf-onload' : '';
168
+
169
+ echo '<div id="csf-section-'. $this->unique .'_'. $section_key .'" class="csf-section'. $onload .'">';
170
+
171
+ $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-icon '. $section['icon'] .'"></i>' : '';
172
+ $section_title = ( ! empty( $section['title'] ) ) ? $section['title'] : '';
173
+
174
+ echo ( $section_title || $section_icon ) ? '<div class="csf-section-title"><h3>'. $section_icon . $section_title .'</h3></div>' : '';
175
+
176
+ if( ! empty( $section['fields'] ) ) {
177
+
178
+ foreach ( $section['fields'] as $field ) {
179
+
180
+ if( ! empty( $field['id'] ) && ! empty( $errors['fields'][$field['id']] ) ) {
181
+ $field['_error'] = $errors['fields'][$field['id']];
182
+ }
183
+
184
+ CSF::field( $field, $this->get_meta_value( $comment->comment_ID, $field ), $this->unique, 'comment_metabox' );
185
+
186
+ }
187
+
188
+ } else {
189
+
190
+ echo '<div class="csf-no-option csf-text-muted">'. esc_html__( 'No option provided by developer.', 'csf' ) .'</div>';
191
+
192
+ }
193
+
194
+ echo '</div>';
195
+
196
+ $section_key++;
197
+ }
198
+
199
+ echo '</div>';
200
+
201
+ echo '<div class="clear"></div>';
202
+
203
+ if( ! empty( $this->args['show_restore'] ) ) {
204
+
205
+ echo '<div class="csf-restore-wrapper">';
206
+ echo '<label>';
207
+ echo '<input type="checkbox" name="'. $this->unique .'[_restore]" />';
208
+ echo '<span class="button csf-button-restore">'. esc_html__( 'Restore', 'csf' ) .'</span>';
209
+ echo '<span class="button csf-button-cancel">'. sprintf( '<small>( %s )</small> %s', esc_html__( 'update post for restore ', 'csf' ), esc_html__( 'Cancel', 'csf' ) ) .'</span>';
210
+ echo '</label>';
211
+ echo '</div>';
212
+
213
+ }
214
+
215
+ echo '</div>';
216
+
217
+ echo ( $has_nav ) ? '<div class="csf-nav-background"></div>' : '';
218
+
219
+ echo '<div class="clear"></div>';
220
+
221
+ echo '</div>';
222
+
223
+ echo '</div>';
224
+
225
+ }
226
+
227
+ // save comment metabox
228
+ public function save_comment_meta_box( $comment_id ) {
229
+
230
+
231
+ if( ! wp_verify_nonce( csf_get_var( 'csf_comment_metabox_nonce'. $this->unique ), 'csf_comment_metabox_nonce' ) ) {
232
+ return $comment_id;
233
+ }
234
+
235
+ if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
236
+ return $comment_id;
237
+ }
238
+
239
+ $errors = array();
240
+ $request = csf_get_var( $this->unique );
241
+
242
+ if( ! empty( $request ) ) {
243
+
244
+ // ignore _nonce
245
+ if( isset( $request['_nonce'] ) ) {
246
+ unset( $request['_nonce'] );
247
+ }
248
+
249
+ // sanitize and validate
250
+ $section_key = 1;
251
+ foreach( $this->sections as $section ) {
252
+
253
+ if( ! empty( $section['fields'] ) ) {
254
+
255
+ foreach( $section['fields'] as $field ) {
256
+
257
+ if( ! empty( $field['id'] ) ) {
258
+
259
+ // sanitize
260
+ if( ! empty( $field['sanitize'] ) ) {
261
+
262
+ $sanitize = $field['sanitize'];
263
+ $value_sanitize = isset( $request[$field['id']] ) ? $request[$field['id']] : '';
264
+ $request[$field['id']] = call_user_func( $sanitize, $value_sanitize );
265
+
266
+ }
267
+
268
+ // validate
269
+ if( ! empty( $field['validate'] ) ) {
270
+
271
+ $validate = $field['validate'];
272
+ $value_validate = isset( $request[$field['id']] ) ? $request[$field['id']] : '';
273
+ $has_validated = call_user_func( $validate, $value_validate );
274
+
275
+ if( ! empty( $has_validated ) ) {
276
+
277
+ $errors['sections'][$section_key] = true;
278
+ $errors['fields'][$field['id']] = $has_validated;
279
+ $request[$field['id']] = $this->get_meta_value( $comment_id, $field );
280
+
281
+ }
282
+
283
+ }
284
+
285
+ // auto sanitize
286
+ if( ! isset( $request[$field['id']] ) || is_null( $request[$field['id']] ) ) {
287
+ $request[$field['id']] = '';
288
+ }
289
+
290
+ }
291
+
292
+ }
293
+
294
+ }
295
+
296
+ $section_key++;
297
+ }
298
+
299
+ }
300
+
301
+ $request = apply_filters( "csf_{$this->unique}_save", $request, $comment_id, $this );
302
+
303
+ do_action( "csf_{$this->unique}_save_before", $request, $comment_id, $this );
304
+
305
+ if( empty( $request ) || ! empty( $request['_restore'] ) ) {
306
+
307
+ if( $this->args['data_type'] !== 'serialize' ) {
308
+ foreach ( $request as $key => $value ) {
309
+ delete_comment_meta( $comment_id, $key );
310
+ }
311
+ } else {
312
+ delete_comment_meta( $comment_id, $this->unique );
313
+ }
314
+
315
+ } else {
316
+
317
+ if( $this->args['data_type'] !== 'serialize' ) {
318
+ foreach ( $request as $key => $value ) {
319
+ update_comment_meta( $comment_id, $key, $value );
320
+ }
321
+ } else {
322
+ update_comment_meta( $comment_id, $this->unique, $request );
323
+ }
324
+
325
+ if( ! empty( $errors ) ) {
326
+ update_comment_meta( $comment_id, '_csf_errors', $errors );
327
+ }
328
+
329
+ }
330
+
331
+ do_action( "csf_{$this->unique}_saved", $request, $comment_id, $this );
332
+
333
+ do_action( "csf_{$this->unique}_save_after", $request, $comment_id, $this );
334
+
335
+ }
336
+ }
337
+ }
admin/views/framework/classes/customize-options.class.php ADDED
@@ -0,0 +1,279 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Customize Options Class
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Customize_Options' ) ) {
11
+ class CSF_Customize_Options extends CSF_Abstract {
12
+
13
+ // constans
14
+ public $unique = '';
15
+ public $abstract = 'customize';
16
+ public $options = array();
17
+ public $sections = array();
18
+ public $pre_fields = array();
19
+ public $pre_tabs = array();
20
+ public $priority = 10;
21
+ public $args = array(
22
+ 'database' => 'option',
23
+ 'transport' => 'refresh',
24
+ 'capability' => 'manage_options',
25
+ 'save_defaults' => true,
26
+ 'enqueue_webfont' => true,
27
+ 'async_webfont' => false,
28
+ 'output_css' => true,
29
+ 'defaults' => array()
30
+ );
31
+
32
+ // run customize construct
33
+ public function __construct( $key, $params ) {
34
+
35
+ $this->unique = $key;
36
+ $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
37
+ $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
38
+ $this->pre_fields = $this->pre_fields( $this->sections );
39
+
40
+ $this->get_options();
41
+ $this->save_defaults();
42
+
43
+ add_action( 'customize_register', array( &$this, 'add_customize_options' ) );
44
+ add_action( 'customize_save_after', array( &$this, 'add_customize_save_after' ) );
45
+
46
+ // Get options for enqueue actions
47
+ if( is_customize_preview() ) {
48
+ add_action( 'wp_enqueue_scripts', array( &$this, 'get_options' ) );
49
+ }
50
+
51
+ // wp enqeueu for typography and output css
52
+ parent::__construct();
53
+
54
+ }
55
+
56
+ // instance
57
+ public static function instance( $key, $params = array() ) {
58
+ return new self( $key, $params );
59
+ }
60
+
61
+ public function add_customize_save_after( $wp_customize ) {
62
+ do_action( "csf_{$this->unique}_save_before", $this->get_options(), $this, $wp_customize );
63
+ do_action( "csf_{$this->unique}_saved", $this->get_options(), $this, $wp_customize );
64
+ do_action( "csf_{$this->unique}_save_after", $this->get_options(), $this, $wp_customize );
65
+ }
66
+
67
+ // get default value
68
+ public function get_default( $field ) {
69
+
70
+ $default = ( isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : null;
71
+ $default = ( isset( $field['default'] ) ) ? $field['default'] : $default;
72
+
73
+ return $default;
74
+
75
+ }
76
+
77
+ // get option
78
+ public function get_options() {
79
+
80
+ if( $this->args['database'] === 'theme_mod' ) {
81
+ $this->options = get_theme_mod( $this->unique, array() );
82
+ } else {
83
+ $this->options = get_option( $this->unique, array() );
84
+ }
85
+
86
+ if( empty( $this->options ) ) {
87
+ $this->options = array();
88
+ }
89
+
90
+ return $this->options;
91
+
92
+ }
93
+
94
+ // save defaults and set new fields value to main options
95
+ public function save_defaults() {
96
+
97
+ $tmp_options = $this->options;
98
+
99
+ if( ! empty( $this->pre_fields ) ) {
100
+ foreach( $this->pre_fields as $field ) {
101
+ if( ! empty( $field['id'] ) ) {
102
+ $this->options[$field['id']] = ( isset( $this->options[$field['id']] ) ) ? $this->options[$field['id']] : $this->get_default( $field );
103
+ }
104
+ }
105
+ }
106
+
107
+ if( $this->args['save_defaults'] && empty( $this->args['show_in_customizer'] ) && empty( $tmp_options ) ) {
108
+
109
+ if( $this->args['database'] === 'theme_mod' ) {
110
+ set_theme_mod( $this->unique, $this->options );
111
+ } else {
112
+ update_option( $this->unique, $this->options );
113
+ }
114
+
115
+ }
116
+
117
+ }
118
+
119
+ public function pre_fields( $sections ) {
120
+
121
+ $result = array();
122
+
123
+ foreach( $sections as $key => $section ) {
124
+ if( ! empty( $section['fields'] ) ) {
125
+ foreach( $section['fields'] as $field ) {
126
+ $result[] = $field;
127
+ }
128
+ }
129
+ }
130
+
131
+ return $result;
132
+ }
133
+
134
+
135
+ public function pre_tabs( $sections ) {
136
+
137
+ $result = array();
138
+ $parents = array();
139
+
140
+ foreach( $sections as $key => $section ) {
141
+ if( ! empty( $section['parent'] ) ) {
142
+ $parents[$section['parent']][] = $section;
143
+ unset( $sections[$key] );
144
+ }
145
+ }
146
+
147
+ foreach( $sections as $key => $section ) {
148
+ if( ! empty( $section['id'] ) && ! empty( $parents[$section['id']] ) ) {
149
+ $section['subs'] = $parents[$section['id']];
150
+ }
151
+ $result[] = $section;
152
+ }
153
+
154
+ return $result;
155
+
156
+ }
157
+
158
+ public function add_customize_options( $wp_customize ) {
159
+
160
+ if( ! class_exists( 'WP_Customize_Panel_CSF' ) ) {
161
+ CSF::include_plugin_file( 'functions/customize.php' );
162
+ }
163
+
164
+ if( ! empty( $this->sections ) ) {
165
+
166
+ $sections = $this->pre_tabs( $this->sections );
167
+
168
+ foreach( $sections as $section ) {
169
+
170
+ if( ! empty( $section['subs'] ) ) {
171
+
172
+ $panel_id = ( isset( $section['id'] ) ) ? $section['id'] : $this->unique .'-panel-'. $this->priority;
173
+
174
+ $wp_customize->add_panel( new WP_Customize_Panel_CSF( $wp_customize, $panel_id, array(
175
+ 'title' => ( isset( $section['title'] ) ) ? $section['title'] : null,
176
+ 'description' => ( isset( $section['description'] ) ) ? $section['description'] : null,
177
+ 'priority' => ( isset( $section['priority'] ) ) ? $section['priority'] : null,
178
+ ) ) );
179
+
180
+ $this->priority++;
181
+
182
+ foreach( $section['subs'] as $sub_section ) {
183
+
184
+ $section_id = ( isset( $sub_section['id'] ) ) ? $sub_section['id'] : $this->unique .'-section-'. $this->priority;
185
+
186
+ $this->add_section( $wp_customize, $section_id, $sub_section, $panel_id );
187
+
188
+ $this->priority++;
189
+
190
+ }
191
+
192
+ } else {
193
+
194
+ $section_id = ( isset( $section['id'] ) ) ? $section['id'] : $this->unique .'-section-'. $this->priority;
195
+
196
+ $this->add_section( $wp_customize, $section_id, $section, false );
197
+
198
+ $this->priority++;
199
+
200
+ }
201
+
202
+ }
203
+
204
+ }
205
+
206
+ }
207
+
208
+ // add customize section
209
+ public function add_section( $wp_customize, $section_id, $section_args, $panel_id ) {
210
+
211
+ if( ! empty( $section_args['assign'] ) ) {
212
+
213
+ $section_id = $section_args['assign'];
214
+
215
+ } else {
216
+
217
+ $wp_customize->add_section( new WP_Customize_Section_CSF( $wp_customize, $section_id, array(
218
+ 'title' => ( isset( $section_args['title'] ) ) ? $section_args['title'] : null,
219
+ 'description' => ( isset( $section_args['description'] ) ) ? $section_args['description'] : null,
220
+ 'priority' => ( isset( $section_args['priority'] ) ) ? $section_args['priority'] : null,
221
+ 'panel' => ( $panel_id ) ? $panel_id : null,
222
+ ) ) );
223
+
224
+ }
225
+
226
+ if( ! empty( $section_args['fields'] ) ) {
227
+
228
+ $field_key = 1;
229
+
230
+ foreach( $section_args['fields'] as $field ) {
231
+
232
+ if( isset( $field['id'] ) ) {
233
+ $field['default'] = $this->get_default( $field );
234
+ }
235
+
236
+ $field_id = ( isset( $field['id'] ) ) ? $field['id'] : '_nonce-'. $section_id .'-'. $field_key;
237
+ $setting_id = $this->unique .'['. $field_id .']';
238
+ $setting_args = ( isset( $field['setting_args'] ) ) ? $field['setting_args'] : array();
239
+ $control_args = ( isset( $field['control_args'] ) ) ? $field['control_args'] : array();
240
+ $field_transport = ( isset( $field['transport'] ) ) ? $field['transport'] : $this->args['transport'];
241
+ $field_sanitize = ( isset( $field['sanitize'] ) ) ? $field['sanitize'] : null;
242
+ $field_validate = ( isset( $field['validate'] ) ) ? $field['validate'] : null;
243
+ $field_default = ( isset( $field['default'] ) ) ? $field['default'] : null;
244
+ $has_selective = ( isset( $field['selective_refresh'] ) && isset( $wp_customize->selective_refresh ) ) ? true : false;
245
+
246
+ $wp_customize->add_setting( $setting_id,
247
+ wp_parse_args( $setting_args, array(
248
+ 'default' => $field_default,
249
+ 'type' => $this->args['database'],
250
+ 'transport' => ( $has_selective ) ? 'postMessage' : $field_transport,
251
+ 'capability' => $this->args['capability'],
252
+ 'sanitize_callback' => $field_sanitize,
253
+ 'validate_callback' => $field_validate
254
+ ) )
255
+ );
256
+
257
+ $wp_customize->add_control( new WP_Customize_Control_CSF( $wp_customize, $setting_id,
258
+ wp_parse_args( $control_args, array(
259
+ 'unique' => $this->unique,
260
+ 'field' => $field,
261
+ 'section' => $section_id,
262
+ 'settings' => $setting_id
263
+ ) )
264
+ ) );
265
+
266
+ if( $has_selective ) {
267
+ $wp_customize->selective_refresh->add_partial( $setting_id, $field['selective_refresh'] );
268
+ }
269
+
270
+ $field_key++;
271
+ }
272
+
273
+ }
274
+
275
+
276
+ }
277
+
278
+ }
279
+ }
admin/views/framework/classes/fields.class.php ADDED
@@ -0,0 +1,379 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Fields Class
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Fields' ) ) {
11
+ abstract class CSF_Fields extends CSF_Abstract {
12
+
13
+ public function __construct( $field = array(), $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ $this->field = $field;
15
+ $this->value = $value;
16
+ $this->unique = $unique;
17
+ $this->where = $where;
18
+ $this->parent = $parent;
19
+ }
20
+
21
+ public function field_name( $nested_name = '' ) {
22
+
23
+ $field_id = ( ! empty( $this->field['id'] ) ) ? $this->field['id'] : '';
24
+ $unique_id = ( ! empty( $this->unique ) ) ? $this->unique .'['. $field_id .']' : $field_id;
25
+ $field_name = ( ! empty( $this->field['name'] ) ) ? $this->field['name'] : $unique_id;
26
+ $tag_prefix = ( ! empty( $this->field['tag_prefix'] ) ) ? $this->field['tag_prefix'] : '';
27
+
28
+ if( ! empty( $tag_prefix ) ) {
29
+ $nested_name = str_replace( '[', '['. $tag_prefix, $nested_name );
30
+ }
31
+
32
+ return $field_name . $nested_name;
33
+
34
+ }
35
+
36
+ public function field_attributes( $custom_atts = array() ) {
37
+
38
+ $field_id = ( ! empty( $this->field['id'] ) ) ? $this->field['id'] : '';
39
+ $attributes = ( ! empty( $this->field['attributes'] ) ) ? $this->field['attributes'] : array();
40
+
41
+ if( ! empty( $field_id ) && empty( $attributes['data-depend-id'] ) ) {
42
+ $attributes['data-depend-id'] = $field_id;
43
+ }
44
+
45
+ if( ! empty( $this->field['placeholder'] ) ) {
46
+ $attributes['placeholder'] = $this->field['placeholder'];
47
+ }
48
+
49
+ $attributes = wp_parse_args( $attributes, $custom_atts );
50
+
51
+ $atts = '';
52
+
53
+ if( ! empty( $attributes ) ) {
54
+ foreach( $attributes as $key => $value ) {
55
+ if( $value === 'only-key' ) {
56
+ $atts .= ' '. $key;
57
+ } else {
58
+ $atts .= ' '. $key . '="'. $value .'"';
59
+ }
60
+ }
61
+ }
62
+
63
+ return $atts;
64
+
65
+ }
66
+
67
+ public function field_before() {
68
+ return ( ! empty( $this->field['before'] ) ) ? $this->field['before'] : '';
69
+ }
70
+
71
+ public function field_after() {
72
+
73
+ $output = ( ! empty( $this->field['after'] ) ) ? $this->field['after'] : '';
74
+ $output .= ( ! empty( $this->field['desc'] ) ) ? '<p class="csf-text-desc">'. $this->field['desc'] .'</p>' : '';
75
+ $output .= ( ! empty( $this->field['help'] ) ) ? '<span class="csf-help"><span class="csf-help-text">'. $this->field['help'] .'</span><span class="fa fa-question-circle"></span></span>' : '';
76
+ $output .= ( ! empty( $this->field['_error'] ) ) ? '<p class="csf-text-error">'. $this->field['_error'] .'</p>' : '';
77
+
78
+ return $output;
79
+
80
+ }
81
+
82
+ public static function field_data( $type = '', $term = false, $query_args = array() ) {
83
+
84
+ $options = array();
85
+ $array_search = false;
86
+
87
+ // sanitize type name
88
+ if( in_array( $type, array( 'page', 'pages' ) ) ) {
89
+ $option = 'page';
90
+ } else if( in_array( $type, array( 'post', 'posts' ) ) ) {
91
+ $option = 'post';
92
+ } else if( in_array( $type, array( 'category', 'categories' ) ) ) {
93
+ $option = 'category';
94
+ } else if( in_array( $type, array( 'tag', 'tags' ) ) ) {
95
+ $option = 'post_tag';
96
+ } else if( in_array( $type, array( 'menu', 'menus' ) ) ) {
97
+ $option = 'nav_menu';
98
+ } else {
99
+ $option = '';
100
+ }
101
+
102
+ // switch type
103
+ switch( $type ) {
104
+
105
+ case 'page':
106
+ case 'pages':
107
+ case 'post':
108
+ case 'posts':
109
+
110
+ // term query required for ajax select
111
+ if( ! empty( $term ) ) {
112
+
113
+ $query = new WP_Query( wp_parse_args( $query_args, array(
114
+ 's' => $term,
115
+ 'post_type' => $option,
116
+ 'post_status' => 'publish',
117
+ 'posts_per_page' => 25,
118
+ ) ) );
119
+
120
+ } else {
121
+
122
+ $query = new WP_Query( wp_parse_args( $query_args, array(
123
+ 'post_type' => $option,
124
+ 'post_status' => 'publish',
125
+ ) ) );
126
+
127
+ }
128
+
129
+ if( ! is_wp_error( $query ) && ! empty( $query->posts ) ) {
130
+ foreach( $query->posts as $item ) {
131
+ $options[$item->ID] = $item->post_title;
132
+ }
133
+ }
134
+
135
+ break;
136
+
137
+ case 'category':
138
+ case 'categories':
139
+ case 'tag':
140
+ case 'tags':
141
+ case 'menu':
142
+ case 'menus':
143
+
144
+ if( ! empty( $term ) ) {
145
+
146
+ $query = new WP_Term_Query( wp_parse_args( $query_args, array(
147
+ 'search' => $term,
148
+ 'taxonomy' => $option,
149
+ 'hide_empty' => false,
150
+ 'number' => 25,
151
+ ) ) );
152
+
153
+ } else {
154
+
155
+ $query = new WP_Term_Query( wp_parse_args( $query_args, array(
156
+ 'taxonomy' => $option,
157
+ 'hide_empty' => false,
158
+ ) ) );
159
+
160
+ }
161
+
162
+ if( ! is_wp_error( $query ) && ! empty( $query->terms ) ) {
163
+ foreach( $query->terms as $item ) {
164
+ $options[$item->term_id] = $item->name;
165
+ }
166
+ }
167
+
168
+ break;
169
+
170
+ case 'user':
171
+ case 'users':
172
+
173
+ if( ! empty( $term ) ) {
174
+
175
+ $query = new WP_User_Query( array(
176
+ 'search' => '*'. $term .'*',
177
+ 'number' => 25,
178
+ 'orderby' => 'title',
179
+ 'order' => 'ASC',
180
+ 'fields' => array( 'display_name', 'ID' )
181
+ ) );
182
+
183
+ } else {
184
+
185
+ $query = new WP_User_Query( array( 'fields' => array( 'display_name', 'ID' ) ) );
186
+
187
+ }
188
+
189
+ if( ! is_wp_error( $query ) && ! empty( $query->get_results() ) ) {
190
+ foreach( $query->get_results() as $item ) {
191
+ $options[$item->ID] = $item->display_name;
192
+ }
193
+ }
194
+
195
+ break;
196
+
197
+ case 'sidebar':
198
+ case 'sidebars':
199
+
200
+ global $wp_registered_sidebars;
201
+
202
+ if( ! empty( $wp_registered_sidebars ) ) {
203
+ foreach( $wp_registered_sidebars as $sidebar ) {
204
+ $options[$sidebar['id']] = $sidebar['name'];
205
+ }
206
+ }
207
+
208
+ $array_search = true;
209
+
210
+ break;
211
+
212
+ case 'role':
213
+ case 'roles':
214
+
215
+ global $wp_roles;
216
+
217
+ if( ! empty( $wp_roles ) ) {
218
+ if( ! empty( $wp_roles->roles ) ) {
219
+ foreach( $wp_roles->roles as $role_key => $role_value ) {
220
+ $options[$role_key] = $role_value['name'];
221
+ }
222
+ }
223
+ }
224
+
225
+ $array_search = true;
226
+
227
+ break;
228
+
229
+ case 'post_type':
230
+ case 'post_types':
231
+
232
+ $post_types = get_post_types( array( 'show_in_nav_menus' => true ), 'objects' );
233
+
234
+ if( ! is_wp_error( $post_types ) && ! empty( $post_types ) ) {
235
+ foreach( $post_types as $post_type ) {
236
+ $options[$post_type->name] = $post_type->labels->name;
237
+ }
238
+ }
239
+
240
+ $array_search = true;
241
+
242
+ break;
243
+
244
+ default:
245
+
246
+ if( function_exists( $type ) ) {
247
+ if( ! empty( $term ) ) {
248
+ $options = call_user_func( $type, $query_args );
249
+ } else {
250
+ $options = call_user_func( $type, $term, $query_args );
251
+ }
252
+ }
253
+
254
+ break;
255
+
256
+ }
257
+
258
+ // Array search by "term"
259
+ if( ! empty( $term ) && ! empty( $options ) && ! empty( $array_search ) ) {
260
+ $options = preg_grep( '/'. $term .'/i', $options );
261
+ }
262
+
263
+ // Make multidimensional array for ajax search
264
+ if( ! empty( $term ) && ! empty( $options ) ) {
265
+ $arr = array();
266
+ foreach( $options as $option_key => $option_value ) {
267
+ $arr[] = array( 'value' => $option_key, 'text' => $option_value );
268
+ }
269
+ $options = $arr;
270
+ }
271
+
272
+ return $options;
273
+
274
+ }
275
+
276
+ public function field_wp_query_data_title( $type, $values ) {
277
+
278
+ $options = array();
279
+
280
+ if( ! empty( $values ) && is_array( $values ) ) {
281
+
282
+ foreach( $values as $value ) {
283
+
284
+ switch( $type ) {
285
+
286
+ case 'post':
287
+ case 'posts':
288
+ case 'page':
289
+ case 'pages':
290
+
291
+ $title = get_the_title( $value );
292
+
293
+ if( ! is_wp_error( $title ) && ! empty( $title ) ) {
294
+ $options[$value] = $title;
295
+ }
296
+
297
+ break;
298
+
299
+ case 'category':
300
+ case 'categories':
301
+ case 'tag':
302
+ case 'tags':
303
+ case 'menu':
304
+ case 'menus':
305
+
306
+ $term = get_term( $value );
307
+
308
+ if( ! is_wp_error( $term ) && ! empty( $term ) ) {
309
+ $options[$value] = $term->name;
310
+ }
311
+
312
+ break;
313
+
314
+ case 'user':
315
+ case 'users':
316
+
317
+ $user = get_user_by( 'id', $value );
318
+
319
+ if( ! is_wp_error( $user ) && ! empty( $user ) ) {
320
+ $options[$value] = $user->display_name;
321
+ }
322
+
323
+ break;
324
+
325
+ case 'sidebar':
326
+ case 'sidebars':
327
+
328
+ global $wp_registered_sidebars;
329
+
330
+ if( ! empty( $wp_registered_sidebars[$value] ) ) {
331
+ $options[$value] = $wp_registered_sidebars[$value]['name'];
332
+ }
333
+
334
+ break;
335
+
336
+ case 'role':
337
+ case 'roles':
338
+
339
+ global $wp_roles;
340
+
341
+ if( ! empty( $wp_roles ) && ! empty( $wp_roles->roles ) && ! empty( $wp_roles->roles[$value] ) ) {
342
+ $options[$value] = $wp_roles->roles[$value]['name'];
343
+ }
344
+
345
+ break;
346
+
347
+ case 'post_type':
348
+ case 'post_types':
349
+
350
+ $post_types = get_post_types( array( 'show_in_nav_menus' => true ) );
351
+
352
+ if( ! is_wp_error( $post_types ) && ! empty( $post_types ) && ! empty( $post_types[$value] ) ) {
353
+ $options[$value] = ucfirst( $value );
354
+ }
355
+
356
+ break;
357
+
358
+ default:
359
+
360
+ if( function_exists( $type .'_title' ) ) {
361
+ $options[$value] = call_user_func( $type .'_title', $value );
362
+ } else {
363
+ $options[$value] = ucfirst( $value );
364
+ }
365
+
366
+ break;
367
+
368
+ }
369
+
370
+ }
371
+
372
+ }
373
+
374
+ return $options;
375
+
376
+ }
377
+
378
+ }
379
+ }
admin/views/{tp-metabox → framework}/classes/metabox.class.php RENAMED
@@ -7,8 +7,8 @@
7
  * @since 1.0.0
8
  * @version 1.0.0
9
  */
10
- if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
11
- class SPFTESTIMONIAL_Metabox extends SPFTESTIMONIAL_Abstract {
12
 
13
  // constans
14
  public $unique = '';
@@ -38,8 +38,8 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
38
  public function __construct( $key, $params = array() ) {
39
 
40
  $this->unique = $key;
41
- $this->args = apply_filters( "spftestimonial_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
42
- $this->sections = apply_filters( "spftestimonial_{$this->unique}_sections", $params['sections'], $this );
43
  $this->post_type = ( is_array( $this->args['post_type'] ) ) ? $this->args['post_type'] : array_filter( (array) $this->args['post_type'] );
44
  $this->post_formats = ( is_array( $this->args['post_formats'] ) ) ? $this->args['post_formats'] : array_filter( (array) $this->args['post_formats'] );
45
  $this->page_templates = ( is_array( $this->args['page_templates'] ) ) ? $this->args['page_templates'] : array_filter( (array) $this->args['page_templates'] );
@@ -89,7 +89,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
89
  $saved_post_format = ( is_object( $post ) ) ? get_post_format( $post ) : false;
90
  $saved_post_format = ( ! empty( $saved_post_format ) ) ? $saved_post_format : 'default';
91
 
92
- $classes[] = 'spftestimonial-post-formats';
93
 
94
  // Sanitize post format for standard to default
95
  if ( ( $key = array_search( 'standard', $this->post_formats ) ) !== false ) {
@@ -97,13 +97,13 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
97
  }
98
 
99
  foreach ( $this->post_formats as $format ) {
100
- $classes[] = 'spftestimonial-post-format-' . $format;
101
  }
102
 
103
  if ( ! in_array( $saved_post_format, $this->post_formats ) ) {
104
- $classes[] = 'spftestimonial-hide';
105
  } else {
106
- $classes[] = 'spftestimonial-show';
107
  }
108
  }
109
 
@@ -111,16 +111,16 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
111
 
112
  $saved_template = ( is_object( $post ) && ! empty( $post->page_template ) ) ? $post->page_template : 'default';
113
 
114
- $classes[] = 'spftestimonial-page-templates';
115
 
116
  foreach ( $this->page_templates as $template ) {
117
- $classes[] = 'spftestimonial-page-' . preg_replace( '/[^a-zA-Z0-9]+/', '-', strtolower( $template ) );
118
  }
119
 
120
  if ( ! in_array( $saved_template, $this->page_templates ) ) {
121
- $classes[] = 'spftestimonial-hide';
122
  } else {
123
- $classes[] = 'spftestimonial-show';
124
  }
125
  }
126
 
@@ -182,29 +182,28 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
182
  global $post;
183
 
184
  $has_nav = ( count( $this->sections ) > 1 && $this->args['context'] !== 'side' ) ? true : false;
185
- $show_all = ( ! $has_nav ) ? ' spftestimonial-show-all' : '';
186
- $errors = ( is_object( $post ) ) ? get_post_meta( $post->ID, '_spftestimonial_errors', true ) : array();
187
  $errors = ( ! empty( $errors ) ) ? $errors : array();
188
- $theme = ( $this->args['theme'] ) ? ' spftestimonial-theme-' . $this->args['theme'] : '';
189
 
190
  if ( is_object( $post ) && ! empty( $errors ) ) {
191
- delete_post_meta( $post->ID, '_spftestimonial_errors' );
192
  }
193
 
194
- wp_nonce_field( 'spftestimonial_metabox_nonce', 'spftestimonial_metabox_nonce' . $this->unique );
195
 
196
- echo '<div class="spftestimonial spftestimonial-metabox' . $theme . '">';
197
 
198
  $current_screen = get_current_screen();
199
  $the_current_post_type = $current_screen->post_type;
200
- if ( $the_current_post_type == 'sp_tfree_shortcodes' ) {
201
- ?>
202
- <div class="sp-tpro-banner">
203
- <div class="sp-tpro-logo"><img src="<?php echo SP_TFREE_URL . 'admin/assets/images/testimonial-logo.png'; ?>" alt="Testimonial Pro"></div>
204
- <div class="sp-tpro-short-links">
205
  <a href="https://shapedplugin.com/support-forum/" target="_blank"><i class="fa fa-life-ring"></i>Support</a>
206
- </div>
207
  </div>
 
208
  <div class="tpro_shortcode text-center">
209
  <div class="tpro-col-lg-3">
210
  <div class="tpro_shortcode_content">
@@ -242,25 +241,26 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
242
  ?>
243
  </h2>
244
  <p><?php _e( 'Insert the shortcode with the TinyMCE button:', 'testimonial-free' ); ?></p>
245
- <img class="back-image" src="<?php echo SP_TFREE_URL . 'admin/views/tp-metabox/assets/images/tpro-tiny-mce.png'; ?>" alt="">
246
  </div>
247
  </div>
248
  </div>
249
- <div class="sp-testimonial-shortcode-divider"></div>
250
  <?php
251
  }
252
- echo '<div class="spftestimonial-wrapper' . $show_all . '">';
 
253
 
254
  if ( $has_nav ) {
255
 
256
- echo '<div class="spftestimonial-nav spftestimonial-nav-metabox" data-unique="' . $this->unique . '">';
257
 
258
  echo '<ul>';
259
  $tab_key = 1;
260
  foreach ( $this->sections as $section ) {
261
 
262
- $tab_error = ( ! empty( $errors['sections'][ $tab_key ] ) ) ? '<i class="spftestimonial-label-error spftestimonial-error">!</i>' : '';
263
- $tab_icon = ( ! empty( $section['icon'] ) ) ? '<i class="spftestimonial-icon ' . $section['icon'] . '"></i>' : '';
264
 
265
  echo '<li><a href="#" data-section="' . $this->unique . '_' . $tab_key . '">' . $tab_icon . $section['title'] . $tab_error . '</a></li>';
266
 
@@ -272,22 +272,22 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
272
 
273
  }
274
 
275
- echo '<div class="spftestimonial-content">';
276
 
277
- echo '<div class="spftestimonial-sections">';
278
 
279
  $section_key = 1;
280
 
281
  foreach ( $this->sections as $section ) {
282
 
283
- $onload = ( ! $has_nav ) ? ' spftestimonial-onload' : '';
284
 
285
- echo '<div id="spftestimonial-section-' . $this->unique . '_' . $section_key . '" class="spftestimonial-section' . $onload . '">';
286
 
287
- $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="spftestimonial-icon ' . $section['icon'] . '"></i>' : '';
288
  $section_title = ( ! empty( $section['title'] ) ) ? $section['title'] : '';
289
 
290
- echo ( $section_title || $section_icon ) ? '<div class="spftestimonial-section-title"><h3>' . $section_icon . $section_title . '</h3></div>' : '';
291
 
292
  if ( ! empty( $section['fields'] ) ) {
293
 
@@ -297,12 +297,12 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
297
  $field['_error'] = $errors['fields'][ $field['id'] ];
298
  }
299
 
300
- SPFTESTIMONIAL::field( $field, $this->get_meta_value( $field ), $this->unique, 'metabox' );
301
 
302
  }
303
  } else {
304
 
305
- echo '<div class="spftestimonial-no-option spftestimonial-text-muted">' . esc_html__( 'No option provided by developer.', 'testimonial-free' ) . '</div>';
306
 
307
  }
308
 
@@ -317,11 +317,11 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
317
 
318
  if ( ! empty( $this->args['show_restore'] ) ) {
319
 
320
- echo '<div class=" spftestimonial-metabox-restore">';
321
  echo '<label>';
322
  echo '<input type="checkbox" name="' . $this->unique . '[_restore]" />';
323
- echo '<span class="button spftestimonial-button-restore">' . esc_html__( 'Restore', 'testimonial-free' ) . '</span>';
324
- echo '<span class="button spftestimonial-button-cancel">' . sprintf( '<small>( %s )</small> %s', esc_html__( 'update post for restore ', 'testimonial-free' ), esc_html__( 'Cancel', 'testimonial-free' ) ) . '</span>';
325
  echo '</label>';
326
  echo '</div>';
327
 
@@ -329,7 +329,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
329
 
330
  echo '</div>';
331
 
332
- echo ( $has_nav ) ? '<div class="spftestimonial-nav-background"></div>' : '';
333
 
334
  echo '<div class="clear"></div>';
335
 
@@ -342,7 +342,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
342
  // save metabox
343
  public function save_meta_box( $post_id ) {
344
 
345
- if ( ! wp_verify_nonce( spftestimonial_get_var( 'spftestimonial_metabox_nonce' . $this->unique ), 'spftestimonial_metabox_nonce' ) ) {
346
  return $post_id;
347
  }
348
 
@@ -351,7 +351,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
351
  }
352
 
353
  $errors = array();
354
- $request = spftestimonial_get_var( $this->unique );
355
 
356
  if ( ! empty( $request ) ) {
357
 
@@ -407,9 +407,9 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
407
  }
408
  }
409
 
410
- $request = apply_filters( "spftestimonial_{$this->unique}_save", $request, $post_id, $this );
411
 
412
- do_action( "spftestimonial_{$this->unique}_save_before", $request, $post_id, $this );
413
 
414
  if ( empty( $request ) || ! empty( $request['_restore'] ) ) {
415
 
@@ -431,13 +431,13 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
431
  }
432
 
433
  if ( ! empty( $errors ) ) {
434
- update_post_meta( $post_id, '_spftestimonial_errors', $errors );
435
  }
436
  }
437
 
438
- do_action( "spftestimonial_{$this->unique}_saved", $request, $post_id, $this );
439
 
440
- do_action( "spftestimonial_{$this->unique}_save_after", $request, $post_id, $this );
441
 
442
  }
443
  }
7
  * @since 1.0.0
8
  * @version 1.0.0
9
  */
10
+ if ( ! class_exists( 'CSF_Metabox' ) ) {
11
+ class CSF_Metabox extends CSF_Abstract {
12
 
13
  // constans
14
  public $unique = '';
38
  public function __construct( $key, $params = array() ) {
39
 
40
  $this->unique = $key;
41
+ $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
42
+ $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
43
  $this->post_type = ( is_array( $this->args['post_type'] ) ) ? $this->args['post_type'] : array_filter( (array) $this->args['post_type'] );
44
  $this->post_formats = ( is_array( $this->args['post_formats'] ) ) ? $this->args['post_formats'] : array_filter( (array) $this->args['post_formats'] );
45
  $this->page_templates = ( is_array( $this->args['page_templates'] ) ) ? $this->args['page_templates'] : array_filter( (array) $this->args['page_templates'] );
89
  $saved_post_format = ( is_object( $post ) ) ? get_post_format( $post ) : false;
90
  $saved_post_format = ( ! empty( $saved_post_format ) ) ? $saved_post_format : 'default';
91
 
92
+ $classes[] = 'csf-post-formats';
93
 
94
  // Sanitize post format for standard to default
95
  if ( ( $key = array_search( 'standard', $this->post_formats ) ) !== false ) {
97
  }
98
 
99
  foreach ( $this->post_formats as $format ) {
100
+ $classes[] = 'csf-post-format-' . $format;
101
  }
102
 
103
  if ( ! in_array( $saved_post_format, $this->post_formats ) ) {
104
+ $classes[] = 'csf-hide';
105
  } else {
106
+ $classes[] = 'csf-show';
107
  }
108
  }
109
 
111
 
112
  $saved_template = ( is_object( $post ) && ! empty( $post->page_template ) ) ? $post->page_template : 'default';
113
 
114
+ $classes[] = 'csf-page-templates';
115
 
116
  foreach ( $this->page_templates as $template ) {
117
+ $classes[] = 'csf-page-' . preg_replace( '/[^a-zA-Z0-9]+/', '-', strtolower( $template ) );
118
  }
119
 
120
  if ( ! in_array( $saved_template, $this->page_templates ) ) {
121
+ $classes[] = 'csf-hide';
122
  } else {
123
+ $classes[] = 'csf-show';
124
  }
125
  }
126
 
182
  global $post;
183
 
184
  $has_nav = ( count( $this->sections ) > 1 && $this->args['context'] !== 'side' ) ? true : false;
185
+ $show_all = ( ! $has_nav ) ? ' csf-show-all' : '';
186
+ $errors = ( is_object( $post ) ) ? get_post_meta( $post->ID, '_csf_errors', true ) : array();
187
  $errors = ( ! empty( $errors ) ) ? $errors : array();
188
+ $theme = ( $this->args['theme'] ) ? ' csf-theme-' . $this->args['theme'] : '';
189
 
190
  if ( is_object( $post ) && ! empty( $errors ) ) {
191
+ delete_post_meta( $post->ID, '_csf_errors' );
192
  }
193
 
194
+ wp_nonce_field( 'csf_metabox_nonce', 'csf_metabox_nonce' . $this->unique );
195
 
196
+ echo '<div class="csf csf-metabox' . $theme . '">';
197
 
198
  $current_screen = get_current_screen();
199
  $the_current_post_type = $current_screen->post_type;
200
+ if ( $the_current_post_type == 'sp_tfree_shortcodes' ) { ?>
201
+ <div class="sp-tpro-banner">
202
+ <div class="sp-tpro-logo"><img src="<?php echo SP_TFREE_URL . 'admin/assets/images/testimonial-logo.png'; ?>" alt="Testimonial"></div>
203
+ <div class="sp-tpro-short-links">
 
204
  <a href="https://shapedplugin.com/support-forum/" target="_blank"><i class="fa fa-life-ring"></i>Support</a>
 
205
  </div>
206
+ </div>
207
  <div class="tpro_shortcode text-center">
208
  <div class="tpro-col-lg-3">
209
  <div class="tpro_shortcode_content">
241
  ?>
242
  </h2>
243
  <p><?php _e( 'Insert the shortcode with the TinyMCE button:', 'testimonial-free' ); ?></p>
244
+ <img class="back-image" src="<?php echo SP_TFREE_URL . 'admin/assets/images/tpro-tiny-mce.png'; ?>" alt="">
245
  </div>
246
  </div>
247
  </div>
248
+ <div class="sp-testimonial-shortcode-divider"></div>
249
  <?php
250
  }
251
+
252
+ echo '<div class="csf-wrapper' . $show_all . '">';
253
 
254
  if ( $has_nav ) {
255
 
256
+ echo '<div class="csf-nav csf-nav-metabox" data-unique="' . $this->unique . '">';
257
 
258
  echo '<ul>';
259
  $tab_key = 1;
260
  foreach ( $this->sections as $section ) {
261
 
262
+ $tab_error = ( ! empty( $errors['sections'][ $tab_key ] ) ) ? '<i class="csf-label-error csf-error">!</i>' : '';
263
+ $tab_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-icon ' . $section['icon'] . '"></i>' : '';
264
 
265
  echo '<li><a href="#" data-section="' . $this->unique . '_' . $tab_key . '">' . $tab_icon . $section['title'] . $tab_error . '</a></li>';
266
 
272
 
273
  }
274
 
275
+ echo '<div class="csf-content">';
276
 
277
+ echo '<div class="csf-sections">';
278
 
279
  $section_key = 1;
280
 
281
  foreach ( $this->sections as $section ) {
282
 
283
+ $onload = ( ! $has_nav ) ? ' csf-onload' : '';
284
 
285
+ echo '<div id="csf-section-' . $this->unique . '_' . $section_key . '" class="csf-section' . $onload . '">';
286
 
287
+ $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-icon ' . $section['icon'] . '"></i>' : '';
288
  $section_title = ( ! empty( $section['title'] ) ) ? $section['title'] : '';
289
 
290
+ echo ( $section_title || $section_icon ) ? '<div class="csf-section-title"><h3>' . $section_icon . $section_title . '</h3></div>' : '';
291
 
292
  if ( ! empty( $section['fields'] ) ) {
293
 
297
  $field['_error'] = $errors['fields'][ $field['id'] ];
298
  }
299
 
300
+ CSF::field( $field, $this->get_meta_value( $field ), $this->unique, 'metabox' );
301
 
302
  }
303
  } else {
304
 
305
+ echo '<div class="csf-no-option csf-text-muted">' . esc_html__( 'No option provided by developer.', 'csf' ) . '</div>';
306
 
307
  }
308
 
317
 
318
  if ( ! empty( $this->args['show_restore'] ) ) {
319
 
320
+ echo '<div class="csf-restore-wrapper">';
321
  echo '<label>';
322
  echo '<input type="checkbox" name="' . $this->unique . '[_restore]" />';
323
+ echo '<span class="button csf-button-restore">' . esc_html__( 'Restore', 'csf' ) . '</span>';
324
+ echo '<span class="button csf-button-cancel">' . sprintf( '<small>( %s )</small> %s', esc_html__( 'update post for restore ', 'csf' ), esc_html__( 'Cancel', 'csf' ) ) . '</span>';
325
  echo '</label>';
326
  echo '</div>';
327
 
329
 
330
  echo '</div>';
331
 
332
+ echo ( $has_nav ) ? '<div class="csf-nav-background"></div>' : '';
333
 
334
  echo '<div class="clear"></div>';
335
 
342
  // save metabox
343
  public function save_meta_box( $post_id ) {
344
 
345
+ if ( ! wp_verify_nonce( csf_get_var( 'csf_metabox_nonce' . $this->unique ), 'csf_metabox_nonce' ) ) {
346
  return $post_id;
347
  }
348
 
351
  }
352
 
353
  $errors = array();
354
+ $request = csf_get_var( $this->unique );
355
 
356
  if ( ! empty( $request ) ) {
357
 
407
  }
408
  }
409
 
410
+ $request = apply_filters( "csf_{$this->unique}_save", $request, $post_id, $this );
411
 
412
+ do_action( "csf_{$this->unique}_save_before", $request, $post_id, $this );
413
 
414
  if ( empty( $request ) || ! empty( $request['_restore'] ) ) {
415
 
431
  }
432
 
433
  if ( ! empty( $errors ) ) {
434
+ update_post_meta( $post_id, '_csf_errors', $errors );
435
  }
436
  }
437
 
438
+ do_action( "csf_{$this->unique}_saved", $request, $post_id, $this );
439
 
440
+ do_action( "csf_{$this->unique}_save_after", $request, $post_id, $this );
441
 
442
  }
443
  }
admin/views/{tp-metabox → framework}/classes/options.class.php RENAMED
@@ -7,8 +7,8 @@
7
  * @since 1.0.0
8
  * @version 1.0.0
9
  */
10
- if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
11
- class SPFTESTIMONIAL_Options extends SPFTESTIMONIAL_Abstract {
12
 
13
  // constans
14
  public $unique = '';
@@ -47,6 +47,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
47
  'show_reset_section' => true,
48
  'show_footer' => true,
49
  'show_all_options' => true,
 
50
  'sticky_header' => true,
51
  'save_defaults' => true,
52
  'ajax_save' => true,
@@ -88,8 +89,8 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
88
  public function __construct( $key, $params = array() ) {
89
 
90
  $this->unique = $key;
91
- $this->args = apply_filters( "spftestimonial_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
92
- $this->sections = apply_filters( "spftestimonial_{$this->unique}_sections", $params['sections'], $this );
93
 
94
  // run only is admin panel options, avoid performance loss
95
  $this->pre_tabs = $this->pre_tabs( $this->sections );
@@ -102,7 +103,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
102
 
103
  add_action( 'admin_menu', array( &$this, 'add_admin_menu' ) );
104
  add_action( 'admin_bar_menu', array( &$this, 'add_admin_bar_menu' ), $this->args['admin_bar_menu_priority'] );
105
- add_action( 'wp_ajax_spftestimonial_' . $this->unique . '_ajax_save', array( &$this, 'ajax_save' ) );
106
 
107
  if ( ! empty( $this->args['show_network_menu'] ) ) {
108
  add_action( 'network_admin_menu', array( &$this, 'add_admin_menu' ) );
@@ -186,7 +187,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
186
  global $submenu;
187
 
188
  $menu_slug = $this->args['menu_slug'];
189
- $menu_icon = ( ! empty( $this->args['admin_bar_menu_icon'] ) ) ? '<span class="spftestimonial-ab-icon ab-icon ' . $this->args['admin_bar_menu_icon'] . '"></span>' : '';
190
 
191
  $wp_admin_bar->add_node(
192
  array(
@@ -227,9 +228,10 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
227
 
228
  if ( ! empty( $_POST['data'] ) ) {
229
 
230
- $_POST = json_decode( stripslashes( $_POST['data'] ), true );
 
231
 
232
- if ( wp_verify_nonce( spftestimonial_get_var( 'spftestimonial_options_nonce' . $this->unique ), 'spftestimonial_options_nonce' ) ) {
233
 
234
  $this->set_options();
235
 
@@ -247,7 +249,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
247
  wp_send_json_error(
248
  array(
249
  'success' => false,
250
- 'error' => esc_html__( 'Error while saving.', 'testimonial-free' ),
251
  )
252
  );
253
 
@@ -284,19 +286,19 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
284
  // set options
285
  public function set_options() {
286
 
287
- if ( wp_verify_nonce( spftestimonial_get_var( 'spftestimonial_options_nonce' . $this->unique ), 'spftestimonial_options_nonce' ) ) {
288
 
289
- $request = spftestimonial_get_var( $this->unique, array() );
290
- $transient = spftestimonial_get_var( 'spftestimonial_transient' );
291
  $section_id = ( ! empty( $transient['section'] ) ) ? $transient['section'] : '';
292
 
293
  // import data
294
- if ( ! empty( $transient['spftestimonial_import_data'] ) ) {
295
 
296
- $import_data = json_decode( stripslashes( trim( $transient['spftestimonial_import_data'] ) ), true );
297
  $request = ( is_array( $import_data ) ) ? $import_data : array();
298
 
299
- $this->notice = esc_html__( 'Success. Imported backup options.', 'testimonial-free' );
300
 
301
  } elseif ( ! empty( $transient['reset'] ) ) {
302
 
@@ -306,7 +308,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
306
  }
307
  }
308
 
309
- $this->notice = esc_html__( 'Default options restored.', 'testimonial-free' );
310
 
311
  } elseif ( ! empty( $transient['reset_section'] ) && ! empty( $section_id ) ) {
312
 
@@ -319,7 +321,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
319
  }
320
  }
321
 
322
- $this->notice = esc_html__( 'Default options restored for only this section.', 'testimonial-free' );
323
 
324
  } else {
325
 
@@ -328,7 +330,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
328
 
329
  if ( ! empty( $field['id'] ) ) {
330
 
331
- // sanitize
332
  if ( ! empty( $field['sanitize'] ) ) {
333
 
334
  $sanitize = $field['sanitize'];
@@ -363,18 +365,18 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
363
 
364
  $request = wp_unslash( $request );
365
 
366
- $request = apply_filters( "spftestimonial_{$this->unique}_save", $request, $this );
367
 
368
- do_action( "spftestimonial_{$this->unique}_save_before", $request, $this );
369
 
370
  $this->options = $request;
371
 
372
  $this->save_options( $request );
373
 
374
- do_action( "spftestimonial_{$this->unique}_save_after", $request, $this );
375
 
376
  if ( empty( $this->notice ) ) {
377
- $this->notice = esc_html__( 'Settings saved.', 'testimonial-free' );
378
  }
379
  }
380
 
@@ -395,7 +397,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
395
  update_option( $this->unique, $request );
396
  }
397
 
398
- do_action( "spftestimonial_{$this->unique}_saved", $request, $this );
399
 
400
  }
401
 
@@ -469,7 +471,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
469
  $screen = get_current_screen();
470
 
471
  foreach ( $this->args['contextual_help'] as $tab ) {
472
- $screen->add_help_tab( $tab );
473
  }
474
 
475
  if ( ! empty( $this->args['contextual_help_sidebar'] ) ) {
@@ -477,6 +479,12 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
477
  }
478
  }
479
 
 
 
 
 
 
 
480
  }
481
 
482
  public function error_check( $sections, $err = '' ) {
@@ -487,7 +495,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
487
  foreach ( $sections['fields'] as $field ) {
488
  if ( ! empty( $field['id'] ) ) {
489
  if ( array_key_exists( $field['id'], $this->errors ) ) {
490
- $err = '<span class="spftestimonial-label-error">!</span>';
491
  }
492
  }
493
  }
@@ -511,54 +519,49 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
511
  public function add_options_html() {
512
 
513
  $has_nav = ( count( $this->pre_tabs ) > 1 ) ? true : false;
514
- $show_all = ( ! $has_nav ) ? ' spftestimonial-show-all' : '';
515
- $ajax_class = ( $this->args['ajax_save'] ) ? ' spftestimonial-save-ajax' : '';
516
- $sticky_class = ( $this->args['sticky_header'] ) ? ' spftestimonial-sticky-header' : '';
517
  $wrapper_class = ( $this->args['framework_class'] ) ? ' ' . $this->args['framework_class'] : '';
518
- $theme = ( $this->args['theme'] ) ? ' spftestimonial-theme-' . $this->args['theme'] : '';
519
  $class = ( $this->args['class'] ) ? ' ' . $this->args['class'] : '';
520
 
521
- echo '<div class="spftestimonial spftestimonial-options' . $theme . $class . $wrapper_class . '" data-slug="' . $this->args['menu_slug'] . '" data-unique="' . $this->unique . '">';
522
-
523
- $notice_class = ( ! empty( $this->notice ) ) ? ' spftestimonial-form-show' : '';
524
- $notice_text = ( ! empty( $this->notice ) ) ? $this->notice : '';
525
 
526
- echo '<div class="spftestimonial-form-result spftestimonial-form-success' . $notice_class . '">' . $notice_text . '</div>';
527
 
528
- $error_class = ( ! empty( $this->errors ) ) ? ' spftestimonial-form-show' : '';
529
 
530
- echo '<div class="spftestimonial-form-result spftestimonial-form-error' . $error_class . '">';
531
- if ( ! empty( $this->errors ) ) {
532
- foreach ( $this->errors as $error ) {
533
- echo '<i class="spftestimonial-label-error">!</i> ' . $error . '<br />';
534
- }
535
- }
536
- echo '</div>';
537
 
538
- echo '<div class="spftestimonial-container">';
539
 
540
- echo '<form method="post" action="" enctype="multipart/form-data" id="spftestimonial-form" autocomplete="off">';
541
 
542
- echo '<input type="hidden" class="spftestimonial-section-id" name="spftestimonial_transient[section]" value="1">';
543
- wp_nonce_field( 'spftestimonial_options_nonce', 'spftestimonial_options_nonce' . $this->unique );
544
 
545
- echo '<div class="spftestimonial-header' . esc_attr( $sticky_class ) . '">';
546
- echo '<div class="spftestimonial-header-inner">';
547
-
548
- echo '<div class="spftestimonial-header-left">';
549
  echo '<h1>' . $this->args['framework_title'] . '</h1>';
550
  echo '</div>';
551
 
552
- echo '<div class="spftestimonial-header-right">';
 
 
 
 
 
 
 
553
 
554
- echo ( $has_nav && $this->args['show_all_options'] ) ? '<div class="spftestimonial-expand-all" title="' . esc_html__( 'show all options', 'testimonial-free' ) . '"><i class="fa fa-outdent"></i></div>' : '';
555
 
556
- echo ( $this->args['show_search'] ) ? '<div class="spftestimonial-search"><input type="text" name="spftestimonial-search" placeholder="' . esc_html__( 'Search option(s)', 'testimonial-free' ) . '" autocomplete="off" /></div>' : '';
557
 
558
- echo '<div class="spftestimonial-buttons">';
559
- echo '<input type="submit" name="' . $this->unique . '[_nonce][save]" class="button button-primary spftestimonial-save' . $ajax_class . '" value="' . esc_html__( 'Save', 'testimonial-free' ) . '" data-save="' . esc_html__( 'Saving...', 'testimonial-free' ) . '">';
560
- echo ( $this->args['show_reset_section'] ) ? '<input type="submit" name="spftestimonial_transient[reset_section]" class="button button-secondary spftestimonial-reset-section spftestimonial-confirm" value="' . esc_html__( 'Reset Section', 'testimonial-free' ) . '" data-confirm="' . esc_html__( 'Are you sure to reset this section options?', 'testimonial-free' ) . '">' : '';
561
- echo ( $this->args['show_reset_all'] ) ? '<input type="submit" name="spftestimonial_transient[reset]" class="button button-secondary spftestimonial-warning-primary spftestimonial-reset-all spftestimonial-confirm" value="' . esc_html__( 'Reset All', 'testimonial-free' ) . '" data-confirm="' . esc_html__( 'Are you sure to reset all options?', 'testimonial-free' ) . '">' : '';
562
  echo '</div>';
563
 
564
  echo '</div>';
@@ -567,10 +570,10 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
567
  echo '</div>';
568
  echo '</div>';
569
 
570
- echo '<div class="spftestimonial-wrapper' . $show_all . '">';
571
 
572
  if ( $has_nav ) {
573
- echo '<div class="spftestimonial-nav spftestimonial-nav-options">';
574
 
575
  echo '<ul>';
576
 
@@ -583,9 +586,9 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
583
 
584
  if ( ! empty( $tab['subs'] ) ) {
585
 
586
- echo '<li class="spftestimonial-tab-depth-0">';
587
 
588
- echo '<a href="#tab=' . $tab_key . '" class="spftestimonial-arrow">' . $tab_icon . $tab['title'] . $tab_error . '</a>';
589
 
590
  echo '<ul>';
591
 
@@ -594,7 +597,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
594
  $sub_error = $this->error_check( $sub );
595
  $sub_icon = ( ! empty( $sub['icon'] ) ) ? '<i class="' . $sub['icon'] . '"></i>' : '';
596
 
597
- echo '<li class="spftestimonial-tab-depth-1"><a id="spftestimonial-tab-link-' . $tab_key . '" href="#tab=' . $tab_key . '">' . $sub_icon . $sub['title'] . $sub_error . '</a></li>';
598
 
599
  $tab_key++;
600
  }
@@ -605,7 +608,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
605
 
606
  } else {
607
 
608
- echo '<li class="spftestimonial-tab-depth-0"><a id="spftestimonial-tab-link-' . $tab_key . '" href="#tab=' . $tab_key . '">' . $tab_icon . $tab['title'] . $tab_error . '</a></li>';
609
 
610
  $tab_key++;
611
  }
@@ -617,20 +620,20 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
617
 
618
  }
619
 
620
- echo '<div class="spftestimonial-content">';
621
 
622
- echo '<div class="spftestimonial-sections">';
623
 
624
  $section_key = 1;
625
 
626
  foreach ( $this->pre_sections as $section ) {
627
 
628
- $onload = ( ! $has_nav ) ? ' spftestimonial-onload' : '';
629
- $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="spftestimonial-icon ' . $section['icon'] . '"></i>' : '';
630
 
631
- echo '<div id="spftestimonial-section-' . $section_key . '" class="spftestimonial-section' . $onload . '">';
632
- echo ( $has_nav ) ? '<div class="spftestimonial-section-title"><h3>' . $section_icon . $section['title'] . '</h3></div>' : '';
633
- echo ( ! empty( $section['description'] ) ) ? '<div class="spftestimonial-field spftestimonial-section-description">' . $section['description'] . '</div>' : '';
634
 
635
  if ( ! empty( $section['fields'] ) ) {
636
 
@@ -644,12 +647,12 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
644
 
645
  $value = ( ! empty( $field['id'] ) && isset( $this->options[ $field['id'] ] ) ) ? $this->options[ $field['id'] ] : '';
646
 
647
- SPFTESTIMONIAL::field( $field, $value, $this->unique, 'options' );
648
 
649
  }
650
  } else {
651
 
652
- echo '<div class="spftestimonial-no-option spftestimonial-text-muted">' . esc_html__( 'No option provided by developer.', 'testimonial-free' ) . '</div>';
653
 
654
  }
655
 
@@ -664,21 +667,21 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
664
 
665
  echo '</div>';
666
 
667
- echo '<div class="spftestimonial-nav-background"></div>';
668
 
669
  echo '</div>';
670
 
671
  if ( ! empty( $this->args['show_footer'] ) ) {
672
 
673
- echo '<div class="spftestimonial-footer">';
674
 
675
- echo '<div class="spftestimonial-buttons">';
676
- echo '<input type="submit" name="spftestimonial_transient[save]" class="button button-primary spftestimonial-save' . $ajax_class . '" value="' . esc_html__( 'Save', 'testimonial-free' ) . '" data-save="' . esc_html__( 'Saving...', 'testimonial-free' ) . '">';
677
- echo ( $this->args['show_reset_section'] ) ? '<input type="submit" name="spftestimonial_transient[reset_section]" class="button button-secondary spftestimonial-reset-section spftestimonial-confirm" value="' . esc_html__( 'Reset Section', 'testimonial-free' ) . '" data-confirm="' . esc_html__( 'Are you sure to reset this section options?', 'testimonial-free' ) . '">' : '';
678
- echo ( $this->args['show_reset_all'] ) ? '<input type="submit" name="spftestimonial_transient[reset]" class="button button-secondary spftestimonial-warning-primary spftestimonial-reset-all spftestimonial-confirm" value="' . esc_html__( 'Reset All', 'testimonial-free' ) . '" data-confirm="' . esc_html__( 'Are you sure to reset all options?', 'testimonial-free' ) . '">' : '';
679
  echo '</div>';
680
 
681
- echo ( ! empty( $this->args['footer_text'] ) ) ? '<div class="spftestimonial-copyright">' . $this->args['footer_text'] . '</div>' : '';
682
 
683
  echo '<div class="clear"></div>';
684
  echo '</div>';
@@ -695,6 +698,8 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
695
 
696
  echo '</div>';
697
 
 
 
698
  }
699
  }
700
  }
7
  * @since 1.0.0
8
  * @version 1.0.0
9
  */
10
+ if ( ! class_exists( 'CSF_Options' ) ) {
11
+ class CSF_Options extends CSF_Abstract {
12
 
13
  // constans
14
  public $unique = '';
47
  'show_reset_section' => true,
48
  'show_footer' => true,
49
  'show_all_options' => true,
50
+ 'show_form_warning' => true,
51
  'sticky_header' => true,
52
  'save_defaults' => true,
53
  'ajax_save' => true,
89
  public function __construct( $key, $params = array() ) {
90
 
91
  $this->unique = $key;
92
+ $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
93
+ $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
94
 
95
  // run only is admin panel options, avoid performance loss
96
  $this->pre_tabs = $this->pre_tabs( $this->sections );
103
 
104
  add_action( 'admin_menu', array( &$this, 'add_admin_menu' ) );
105
  add_action( 'admin_bar_menu', array( &$this, 'add_admin_bar_menu' ), $this->args['admin_bar_menu_priority'] );
106
+ add_action( 'wp_ajax_csf_' . $this->unique . '_ajax_save', array( &$this, 'ajax_save' ) );
107
 
108
  if ( ! empty( $this->args['show_network_menu'] ) ) {
109
  add_action( 'network_admin_menu', array( &$this, 'add_admin_menu' ) );
187
  global $submenu;
188
 
189
  $menu_slug = $this->args['menu_slug'];
190
+ $menu_icon = ( ! empty( $this->args['admin_bar_menu_icon'] ) ) ? '<span class="csf-ab-icon ab-icon ' . $this->args['admin_bar_menu_icon'] . '"></span>' : '';
191
 
192
  $wp_admin_bar->add_node(
193
  array(
228
 
229
  if ( ! empty( $_POST['data'] ) ) {
230
 
231
+ // $_POST = json_decode( stripslashes( $_POST['data'] ), true );
232
+ $_POST = json_decode( wp_unslash( wp_kses_post_deep( $_POST['data'] ) ), true );
233
 
234
+ if ( wp_verify_nonce( csf_get_var( 'csf_options_nonce' . $this->unique ), 'csf_options_nonce' ) ) {
235
 
236
  $this->set_options();
237
 
249
  wp_send_json_error(
250
  array(
251
  'success' => false,
252
+ 'error' => esc_html__( 'Error while saving.', 'csf' ),
253
  )
254
  );
255
 
286
  // set options
287
  public function set_options() {
288
 
289
+ if ( wp_verify_nonce( csf_get_var( 'csf_options_nonce' . $this->unique ), 'csf_options_nonce' ) ) {
290
 
291
+ $request = csf_get_var( $this->unique, array() );
292
+ $transient = csf_get_var( 'csf_transient' );
293
  $section_id = ( ! empty( $transient['section'] ) ) ? $transient['section'] : '';
294
 
295
  // import data
296
+ if ( ! empty( $transient['csf_import_data'] ) ) {
297
 
298
+ $import_data = json_decode( stripslashes( trim( $transient['csf_import_data'] ) ), true );
299
  $request = ( is_array( $import_data ) ) ? $import_data : array();
300
 
301
+ $this->notice = esc_html__( 'Success. Imported backup options.', 'csf' );
302
 
303
  } elseif ( ! empty( $transient['reset'] ) ) {
304
 
308
  }
309
  }
310
 
311
+ $this->notice = esc_html__( 'Default options restored.', 'csf' );
312
 
313
  } elseif ( ! empty( $transient['reset_section'] ) && ! empty( $section_id ) ) {
314
 
321
  }
322
  }
323
 
324
+ $this->notice = esc_html__( 'Default options restored for only this section.', 'csf' );
325
 
326
  } else {
327
 
330
 
331
  if ( ! empty( $field['id'] ) ) {
332
 
333
+ // sanitize
334
  if ( ! empty( $field['sanitize'] ) ) {
335
 
336
  $sanitize = $field['sanitize'];
365
 
366
  $request = wp_unslash( $request );
367
 
368
+ $request = apply_filters( "csf_{$this->unique}_save", $request, $this );
369
 
370
+ do_action( "csf_{$this->unique}_save_before", $request, $this );
371
 
372
  $this->options = $request;
373
 
374
  $this->save_options( $request );
375
 
376
+ do_action( "csf_{$this->unique}_save_after", $request, $this );
377
 
378
  if ( empty( $this->notice ) ) {
379
+ $this->notice = esc_html__( 'Settings saved.', 'csf' );
380
  }
381
  }
382
 
397
  update_option( $this->unique, $request );
398
  }
399
 
400
+ do_action( "csf_{$this->unique}_saved", $request, $this );
401
 
402
  }
403
 
471
  $screen = get_current_screen();
472
 
473
  foreach ( $this->args['contextual_help'] as $tab ) {
474
+ $screen->add_help_tab( $tab );
475
  }
476
 
477
  if ( ! empty( $this->args['contextual_help_sidebar'] ) ) {
479
  }
480
  }
481
 
482
+ add_filter( 'admin_footer_text', array( &$this, 'add_admin_footer_text' ) );
483
+ }
484
+
485
+ public function add_admin_footer_text() {
486
+ $default = 'Thank you for creating with <a href="http://codestarframework.com/" target="_blank">Codestar Framework</a>';
487
+ echo ( ! empty( $this->args['footer_credit'] ) ) ? $this->args['footer_credit'] : $default;
488
  }
489
 
490
  public function error_check( $sections, $err = '' ) {
495
  foreach ( $sections['fields'] as $field ) {
496
  if ( ! empty( $field['id'] ) ) {
497
  if ( array_key_exists( $field['id'], $this->errors ) ) {
498
+ $err = '<span class="csf-label-error">!</span>';
499
  }
500
  }
501
  }
519
  public function add_options_html() {
520
 
521
  $has_nav = ( count( $this->pre_tabs ) > 1 ) ? true : false;
522
+ $show_all = ( ! $has_nav ) ? ' csf-show-all' : '';
523
+ $ajax_class = ( $this->args['ajax_save'] ) ? ' csf-save-ajax' : '';
524
+ $sticky_class = ( $this->args['sticky_header'] ) ? ' csf-sticky-header' : '';
525
  $wrapper_class = ( $this->args['framework_class'] ) ? ' ' . $this->args['framework_class'] : '';
526
+ $theme = ( $this->args['theme'] ) ? ' csf-theme-' . $this->args['theme'] : '';
527
  $class = ( $this->args['class'] ) ? ' ' . $this->args['class'] : '';
528
 
529
+ do_action( 'csf_options_before' );
 
 
 
530
 
531
+ echo '<div class="csf csf-options' . $theme . $class . $wrapper_class . '" data-slug="' . $this->args['menu_slug'] . '" data-unique="' . $this->unique . '">';
532
 
533
+ echo '<div class="csf-container">';
534
 
535
+ echo '<form method="post" action="" enctype="multipart/form-data" id="csf-form" autocomplete="off">';
 
 
 
 
 
 
536
 
537
+ echo '<input type="hidden" class="csf-section-id" name="csf_transient[section]" value="1">';
538
 
539
+ wp_nonce_field( 'csf_options_nonce', 'csf_options_nonce' . $this->unique );
540
 
541
+ echo '<div class="csf-header' . esc_attr( $sticky_class ) . '">';
542
+ echo '<div class="csf-header-inner">';
543
 
544
+ echo '<div class="csf-header-left">';
 
 
 
545
  echo '<h1>' . $this->args['framework_title'] . '</h1>';
546
  echo '</div>';
547
 
548
+ echo '<div class="csf-header-right">';
549
+
550
+ $notice_class = ( ! empty( $this->notice ) ) ? ' csf-form-show' : '';
551
+ $notice_text = ( ! empty( $this->notice ) ) ? $this->notice : '';
552
+
553
+ echo '<div class="csf-form-result csf-form-success' . $notice_class . '">' . $notice_text . '</div>';
554
+
555
+ echo ( $this->args['show_form_warning'] ) ? '<div class="csf-form-result csf-form-warning">' . esc_html__( 'Settings have changed, you should save them!', 'csf' ) . '</div>' : '';
556
 
557
+ echo ( $has_nav && $this->args['show_all_options'] ) ? '<div class="csf-expand-all" title="' . esc_html__( 'show all options', 'csf' ) . '"><i class="fa fa-outdent"></i></div>' : '';
558
 
559
+ echo ( $this->args['show_search'] ) ? '<div class="csf-search"><input type="text" name="csf-search" placeholder="' . esc_html__( 'Search option(s)', 'csf' ) . '" autocomplete="off" /></div>' : '';
560
 
561
+ echo '<div class="csf-buttons">';
562
+ echo '<input type="submit" name="' . $this->unique . '[_nonce][save]" class="button button-primary csf-top-save csf-save' . $ajax_class . '" value="' . esc_html__( 'Save', 'csf' ) . '" data-save="' . esc_html__( 'Saving...', 'csf' ) . '">';
563
+ echo ( $this->args['show_reset_section'] ) ? '<input type="submit" name="csf_transient[reset_section]" class="button button-secondary csf-reset-section csf-confirm" value="' . esc_html__( 'Reset Section', 'csf' ) . '" data-confirm="' . esc_html__( 'Are you sure to reset this section options?', 'csf' ) . '">' : '';
564
+ echo ( $this->args['show_reset_all'] ) ? '<input type="submit" name="csf_transient[reset]" class="button csf-warning-primary csf-reset-all csf-confirm" value="' . esc_html__( 'Reset All', 'csf' ) . '" data-confirm="' . esc_html__( 'Are you sure to reset all options?', 'csf' ) . '">' : '';
565
  echo '</div>';
566
 
567
  echo '</div>';
570
  echo '</div>';
571
  echo '</div>';
572
 
573
+ echo '<div class="csf-wrapper' . $show_all . '">';
574
 
575
  if ( $has_nav ) {
576
+ echo '<div class="csf-nav csf-nav-options">';
577
 
578
  echo '<ul>';
579
 
586
 
587
  if ( ! empty( $tab['subs'] ) ) {
588
 
589
+ echo '<li class="csf-tab-depth-0">';
590
 
591
+ echo '<a href="#tab=' . $tab_key . '" class="csf-arrow">' . $tab_icon . $tab['title'] . $tab_error . '</a>';
592
 
593
  echo '<ul>';
594
 
597
  $sub_error = $this->error_check( $sub );
598
  $sub_icon = ( ! empty( $sub['icon'] ) ) ? '<i class="' . $sub['icon'] . '"></i>' : '';
599
 
600
+ echo '<li class="csf-tab-depth-1"><a id="csf-tab-link-' . $tab_key . '" href="#tab=' . $tab_key . '">' . $sub_icon . $sub['title'] . $sub_error . '</a></li>';
601
 
602
  $tab_key++;
603
  }
608
 
609
  } else {
610
 
611
+ echo '<li class="csf-tab-depth-0"><a id="csf-tab-link-' . $tab_key . '" href="#tab=' . $tab_key . '">' . $tab_icon . $tab['title'] . $tab_error . '</a></li>';
612
 
613
  $tab_key++;
614
  }
620
 
621
  }
622
 
623
+ echo '<div class="csf-content">';
624
 
625
+ echo '<div class="csf-sections">';
626
 
627
  $section_key = 1;
628
 
629
  foreach ( $this->pre_sections as $section ) {
630
 
631
+ $onload = ( ! $has_nav ) ? ' csf-onload' : '';
632
+ $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-icon ' . $section['icon'] . '"></i>' : '';
633
 
634
+ echo '<div id="csf-section-' . $section_key . '" class="csf-section' . $onload . '">';
635
+ echo ( $has_nav ) ? '<div class="csf-section-title"><h3>' . $section_icon . $section['title'] . '</h3></div>' : '';
636
+ echo ( ! empty( $section['description'] ) ) ? '<div class="csf-field csf-section-description">' . $section['description'] . '</div>' : '';
637
 
638
  if ( ! empty( $section['fields'] ) ) {
639
 
647
 
648
  $value = ( ! empty( $field['id'] ) && isset( $this->options[ $field['id'] ] ) ) ? $this->options[ $field['id'] ] : '';
649
 
650
+ CSF::field( $field, $value, $this->unique, 'options' );
651
 
652
  }
653
  } else {
654
 
655
+ echo '<div class="csf-no-option csf-text-muted">' . esc_html__( 'No option provided by developer.', 'csf' ) . '</div>';
656
 
657
  }
658
 
667
 
668
  echo '</div>';
669
 
670
+ echo '<div class="csf-nav-background"></div>';
671
 
672
  echo '</div>';
673
 
674
  if ( ! empty( $this->args['show_footer'] ) ) {
675
 
676
+ echo '<div class="csf-footer">';
677
 
678
+ echo '<div class="csf-buttons">';
679
+ echo '<input type="submit" name="csf_transient[save]" class="button button-primary csf-save' . $ajax_class . '" value="' . esc_html__( 'Save', 'csf' ) . '" data-save="' . esc_html__( 'Saving...', 'csf' ) . '">';
680
+ echo ( $this->args['show_reset_section'] ) ? '<input type="submit" name="csf_transient[reset_section]" class="button button-secondary csf-reset-section csf-confirm" value="' . esc_html__( 'Reset Section', 'csf' ) . '" data-confirm="' . esc_html__( 'Are you sure to reset this section options?', 'csf' ) . '">' : '';
681
+ echo ( $this->args['show_reset_all'] ) ? '<input type="submit" name="csf_transient[reset]" class="button csf-warning-primary csf-reset-all csf-confirm" value="' . esc_html__( 'Reset All', 'csf' ) . '" data-confirm="' . esc_html__( 'Are you sure to reset all options?', 'csf' ) . '">' : '';
682
  echo '</div>';
683
 
684
+ echo ( ! empty( $this->args['footer_text'] ) ) ? '<div class="csf-copyright">' . $this->args['footer_text'] . '</div>' : '';
685
 
686
  echo '<div class="clear"></div>';
687
  echo '</div>';
698
 
699
  echo '</div>';
700
 
701
+ do_action( 'csf_options_after' );
702
+
703
  }
704
  }
705
  }
admin/views/framework/classes/profile-options.class.php ADDED
@@ -0,0 +1,227 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Profile Options Class
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Profile_Options' ) ) {
11
+ class CSF_Profile_Options extends CSF_Abstract{
12
+
13
+ // constans
14
+ public $unique = '';
15
+ public $abstract = 'profile';
16
+ public $sections = array();
17
+ public $args = array(
18
+ 'data_type' => 'serialize',
19
+ 'defaults' => array(),
20
+ 'class' => '',
21
+ );
22
+
23
+ // run profile construct
24
+ public function __construct( $key, $params ) {
25
+
26
+ $this->unique = $key;
27
+ $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
28
+ $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
29
+
30
+ add_action( 'admin_init', array( &$this, 'add_profile_options' ) );
31
+
32
+ }
33
+
34
+ // instance
35
+ public static function instance( $key, $params ) {
36
+ return new self( $key, $params );
37
+ }
38
+
39
+ // add profile add/edit fields
40
+ public function add_profile_options() {
41
+
42
+ add_action( 'show_user_profile', array( &$this, 'render_profile_form_fields' ) );
43
+ add_action( 'edit_user_profile', array( &$this, 'render_profile_form_fields' ) );
44
+
45
+ add_action( 'personal_options_update', array( &$this, 'save_profile' ) );
46
+ add_action( 'edit_user_profile_update', array( &$this, 'save_profile' ) );
47
+
48
+ }
49
+
50
+ // get default value
51
+ public function get_default( $field ) {
52
+
53
+ $default = ( isset( $field['id'] ) && isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : null;
54
+ $default = ( isset( $field['default'] ) ) ? $field['default'] : $default;
55
+
56
+ return $default;
57
+
58
+ }
59
+
60
+ // get default value
61
+ public function get_meta_value( $user_id, $field ) {
62
+
63
+ $value = null;
64
+
65
+ if( ! empty( $user_id ) && ! empty( $field['id'] ) ) {
66
+
67
+ if( $this->args['data_type'] !== 'serialize' ) {
68
+ $meta = get_user_meta( $user_id, $field['id'] );
69
+ $value = ( isset( $meta[0] ) ) ? $meta[0] : null;
70
+ } else {
71
+ $meta = get_user_meta( $user_id, $this->unique, true );
72
+ $value = ( isset( $meta[$field['id']] ) ) ? $meta[$field['id']] : null;
73
+ }
74
+
75
+ }
76
+
77
+ $default = $this->get_default( $field );
78
+ $value = ( isset( $value ) ) ? $value : $default;
79
+
80
+ return $value;
81
+
82
+ }
83
+
84
+ // render profile add/edit form fields
85
+ public function render_profile_form_fields( $profileuser ) {
86
+
87
+ $is_profile = ( is_object( $profileuser ) && isset( $profileuser->ID ) ) ? true : false;
88
+ $profile_id = ( $is_profile ) ? $profileuser->ID : 0;
89
+ $errors = ( ! empty( $profile_id ) ) ? get_user_meta( $profile_id, '_csf_errors', true ) : array();
90
+ $errors = ( ! empty( $errors ) ) ? $errors : array();
91
+ $class = ( $this->args['class'] ) ? ' '. $this->args['class'] : '';
92
+
93
+ // clear errors
94
+ if( ! empty( $errors ) ) {
95
+ delete_user_meta( $profile_id, '_csf_errors' );
96
+ }
97
+
98
+ echo '<div class="csf csf-profile csf-onload'. $class .'">';
99
+
100
+ wp_nonce_field( 'csf_profile_nonce', 'csf_profile_nonce'. $this->unique );
101
+
102
+ foreach( $this->sections as $section ) {
103
+
104
+ $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-icon '. $section['icon'] .'"></i>' : '';
105
+ $section_title = ( ! empty( $section['title'] ) ) ? $section['title'] : '';
106
+
107
+ echo ( $section_title || $section_icon ) ? '<h2>'. $section_icon . $section_title .'</h2>' : '';
108
+
109
+ if( ! empty( $section['fields'] ) ) {
110
+ foreach( $section['fields'] as $field ) {
111
+
112
+ if( ! empty( $field['id'] ) && ! empty( $errors[$field['id']] ) ) {
113
+ $field['_error'] = $errors[$field['id']];
114
+ }
115
+
116
+ CSF::field( $field, $this->get_meta_value( $profile_id, $field ), $this->unique, 'profile' );
117
+
118
+ }
119
+ }
120
+
121
+ }
122
+
123
+ echo '</div>';
124
+
125
+ }
126
+
127
+ // save profile form fields
128
+ public function save_profile( $user_id ) {
129
+
130
+ if ( wp_verify_nonce( csf_get_var( 'csf_profile_nonce'. $this->unique ), 'csf_profile_nonce' ) ) {
131
+
132
+ $errors = array();
133
+
134
+ foreach ( $this->sections as $section ) {
135
+
136
+ $request = csf_get_var( $this->unique, array() );
137
+
138
+ // ignore _nonce
139
+ if( isset( $request['_nonce'] ) ) {
140
+ unset( $request['_nonce'] );
141
+ }
142
+
143
+ // sanitize and validate
144
+ if( ! empty( $section['fields'] ) ) {
145
+
146
+ foreach( $section['fields'] as $field ) {
147
+
148
+ if( ! empty( $field['id'] ) ) {
149
+
150
+ // sanitize
151
+ if( ! empty( $field['sanitize'] ) ) {
152
+
153
+ $sanitize = $field['sanitize'];
154
+ $value_sanitize = csf_get_vars( $this->unique, $field['id'] );
155
+ $request[$field['id']] = call_user_func( $sanitize, $value_sanitize );
156
+
157
+ }
158
+
159
+ // validate
160
+ if( ! empty( $field['validate'] ) ) {
161
+
162
+ $validate = $field['validate'];
163
+ $value_validate = csf_get_vars( $this->unique, $field['id'] );
164
+ $has_validated = call_user_func( $validate, $value_validate );
165
+
166
+ if( ! empty( $has_validated ) ) {
167
+
168
+ $errors[$field['id']] = $has_validated;
169
+ $request[$field['id']] = $this->get_meta_value( $user_id, $field );
170
+
171
+ }
172
+
173
+ }
174
+
175
+ // auto sanitize
176
+ if( ! isset( $request[$field['id']] ) || is_null( $request[$field['id']] ) ) {
177
+ $request[$field['id']] = '';
178
+ }
179
+
180
+ }
181
+
182
+ }
183
+
184
+ }
185
+
186
+ $request = apply_filters( "csf_{$this->unique}_save", $request, $user_id, $this );
187
+
188
+ do_action( "csf_{$this->unique}_save_before", $request, $user_id, $this );
189
+
190
+ if( empty( $request ) ) {
191
+
192
+ if( $this->args['data_type'] !== 'serialize' ) {
193
+ foreach ( $request as $key => $value ) {
194
+ delete_user_meta( $user_id, $key );
195
+ }
196
+ } else {
197
+ delete_user_meta( $user_id, $this->unique );
198
+ }
199
+
200
+ } else {
201
+
202
+ if( $this->args['data_type'] !== 'serialize' ) {
203
+ foreach ( $request as $key => $value ) {
204
+ update_user_meta( $user_id, $key, $value );
205
+ }
206
+ } else {
207
+ update_user_meta( $user_id, $this->unique, $request );
208
+ }
209
+
210
+ if( ! empty( $errors ) ) {
211
+ update_user_meta( $user_id, '_csf_errors', $errors );
212
+ }
213
+
214
+ }
215
+
216
+ do_action( "csf_{$this->unique}_saved", $request, $user_id, $this );
217
+
218
+ do_action( "csf_{$this->unique}_save_after", $request, $user_id, $this );
219
+
220
+ }
221
+
222
+ }
223
+
224
+ }
225
+
226
+ }
227
+ }
admin/views/{tp-metabox → framework}/classes/setup.class.php RENAMED
@@ -7,11 +7,11 @@
7
  * @since 1.0.0
8
  * @version 1.0.0
9
  */
10
- if ( ! class_exists( 'SPFTESTIMONIAL' ) ) {
11
- class SPFTESTIMONIAL {
12
 
13
- // constants.
14
- public static $version = '2.1.1';
15
  public static $premium = true;
16
  public static $dir = null;
17
  public static $url = null;
@@ -19,36 +19,46 @@ if ( ! class_exists( 'SPFTESTIMONIAL' ) ) {
19
  public static $fields = array();
20
  public static $args = array(
21
  'options' => array(),
 
22
  'metaboxes' => array(),
 
 
 
23
  'widgets' => array(),
 
24
  );
25
 
26
- // shortcode instances.
27
  public static $shortcode_instances = array();
28
 
29
- // init.
30
  public static function init() {
31
 
32
- // init action.
33
- do_action( 'spftestimonial_init' );
34
 
35
- // set constants.
36
  self::constants();
37
 
38
- // include files.
39
  self::includes();
40
 
41
- add_action( 'after_setup_theme', array( 'SPFTESTIMONIAL', 'setup' ) );
42
- add_action( 'init', array( 'SPFTESTIMONIAL', 'setup' ) );
43
- add_action( 'switch_theme', array( 'SPFTESTIMONIAL', 'setup' ) );
44
- add_action( 'admin_enqueue_scripts', array( 'SPFTESTIMONIAL', 'add_admin_enqueue_scripts' ), 20 );
 
 
 
 
 
45
 
46
  }
47
 
48
- /** Setup */
49
  public static function setup() {
50
 
51
- // setup options.
52
  $params = array();
53
  if ( ! empty( self::$args['options'] ) ) {
54
  foreach ( self::$args['options'] as $key => $value ) {
@@ -58,17 +68,35 @@ if ( ! class_exists( 'SPFTESTIMONIAL' ) ) {
58
  $params['sections'] = self::$args['sections'][ $key ];
59
  self::$inited[ $key ] = true;
60
 
61
- SPFTESTIMONIAL_Options::instance( $key, $params );
62
 
63
  if ( ! empty( $value['show_in_customizer'] ) ) {
64
- self::$args['customize_options'][ $key ] = $value;
65
- self::$inited[ $key ] = null;
 
 
66
  }
67
  }
68
  }
69
  }
70
 
71
- // setup metaboxes.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  $params = array();
73
  if ( ! empty( self::$args['metaboxes'] ) ) {
74
  foreach ( self::$args['metaboxes'] as $key => $value ) {
@@ -78,13 +106,67 @@ if ( ! class_exists( 'SPFTESTIMONIAL' ) ) {
78
  $params['sections'] = self::$args['sections'][ $key ];
79
  self::$inited[ $key ] = true;
80
 
81
- SPFTESTIMONIAL_Metabox::instance( $key, $params );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
 
83
  }
84
  }
85
  }
86
 
87
- // create widgets.
88
  if ( ! empty( self::$args['widgets'] ) && class_exists( 'WP_Widget_Factory' ) ) {
89
 
90
  $wp_widget_factory = new WP_Widget_Factory();
@@ -92,41 +174,82 @@ if ( ! class_exists( 'SPFTESTIMONIAL' ) ) {
92
  foreach ( self::$args['widgets'] as $key => $value ) {
93
  if ( ! isset( self::$inited[ $key ] ) ) {
94
  self::$inited[ $key ] = true;
95
- $wp_widget_factory->register( SPFTESTIMONIAL_Widget::instance( $key, $value ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  }
97
  }
98
  }
99
 
100
- do_action( 'spftestimonial_loaded' );
101
 
102
  }
103
 
104
- // Create options.
105
  public static function createOptions( $id, $args = array() ) {
106
  self::$args['options'][ $id ] = $args;
107
  }
108
 
109
- // create metabox options.
 
 
 
 
 
110
  public static function createMetabox( $id, $args = array() ) {
111
  self::$args['metaboxes'][ $id ] = $args;
112
  }
113
 
114
- // create widget.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
115
  public static function createWidget( $id, $args = array() ) {
116
  self::$args['widgets'][ $id ] = $args;
117
  self::set_used_fields( $args );
118
  }
119
 
120
- // create section.
 
 
 
 
 
121
  public static function createSection( $id, $sections ) {
122
  self::$args['sections'][ $id ][] = $sections;
123
  self::set_used_fields( $sections );
124
  }
125
 
126
- // constants.
127
  public static function constants() {
128
 
129
- // we need this path-finder code for set URL of framework.
130
  $dirname = wp_normalize_path( dirname( dirname( __FILE__ ) ) );
131
  $theme_dir = wp_normalize_path( get_parent_theme_file_path() );
132
  $plugin_dir = wp_normalize_path( WP_PLUGIN_DIR );
@@ -146,7 +269,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL' ) ) {
146
 
147
  $path = '';
148
  $file = ltrim( $file, '/' );
149
- $override = apply_filters( 'spftestimonial_override', 'spftestimonial-override' );
150
 
151
  if ( file_exists( get_parent_theme_file_path( $override . '/' . $file ) ) ) {
152
  $path = get_parent_theme_file_path( $override . '/' . $file );
@@ -173,7 +296,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL' ) ) {
173
  }
174
  } else {
175
 
176
- return self::$dir . '/' . $file;
177
 
178
  }
179
 
@@ -183,47 +306,57 @@ if ( ! class_exists( 'SPFTESTIMONIAL' ) ) {
183
  return in_array( $file, (array) get_option( 'active_plugins', array() ) );
184
  }
185
 
186
- // Sanitize dirname.
187
  public static function sanitize_dirname( $dirname ) {
188
  return preg_replace( '/[^A-Za-z]/', '', $dirname );
189
  }
190
 
191
- // Set plugin url.
192
  public static function include_plugin_url( $file ) {
193
  return self::$url . '/' . ltrim( $file, '/' );
194
  }
195
 
196
- // General includes.
197
  public static function includes() {
198
 
199
- // includes helpers.
200
  self::include_plugin_file( 'functions/actions.php' );
201
  self::include_plugin_file( 'functions/deprecated.php' );
202
  self::include_plugin_file( 'functions/helpers.php' );
203
  self::include_plugin_file( 'functions/sanitize.php' );
204
  self::include_plugin_file( 'functions/validate.php' );
205
 
206
- // includes free version classes.
207
  self::include_plugin_file( 'classes/abstract.class.php' );
208
  self::include_plugin_file( 'classes/fields.class.php' );
209
  self::include_plugin_file( 'classes/options.class.php' );
210
 
211
- // includes premium version classes.
212
  if ( self::$premium ) {
 
213
  self::include_plugin_file( 'classes/metabox.class.php' );
 
 
 
214
  self::include_plugin_file( 'classes/widgets.class.php' );
 
215
  }
216
 
217
  }
218
 
219
- // Include field.
220
  public static function maybe_include_field( $type = '' ) {
221
- if ( ! class_exists( 'SPFTESTIMONIAL_Field_' . $type ) && class_exists( 'SPFTESTIMONIAL_Fields' ) ) {
222
  self::include_plugin_file( 'fields/' . $type . '/' . $type . '.php' );
223
  }
224
  }
225
 
226
- // Get all of fields.
 
 
 
 
 
227
  public static function set_used_fields( $sections ) {
228
 
229
  if ( ! empty( $sections['fields'] ) ) {
@@ -239,11 +372,11 @@ if ( ! class_exists( 'SPFTESTIMONIAL' ) ) {
239
  }
240
 
241
  if ( ! empty( $field['accordions'] ) ) {
242
- self::set_used_fields( array( 'fields' => $field['accordions'] ) );
243
  }
244
 
245
  if ( ! empty( $field['type'] ) ) {
246
- self::$fields[ $field['type'] ] = $field;
247
  }
248
  }
249
  }
@@ -254,83 +387,116 @@ if ( ! class_exists( 'SPFTESTIMONIAL' ) ) {
254
  // Enqueue admin and fields styles and scripts.
255
  public static function add_admin_enqueue_scripts() {
256
 
257
- // check for developer mode.
258
- $min = ( apply_filters( 'spftestimonial_dev_mode', false ) || WP_DEBUG ) ? '' : '.min';
259
 
260
- // admin utilities.
261
  wp_enqueue_media();
262
 
263
- // wp color picker.
264
  wp_enqueue_style( 'wp-color-picker' );
265
  wp_enqueue_script( 'wp-color-picker' );
266
 
267
- // cdn styles.
268
- //wp_enqueue_style( 'spftestimonial-fa', 'https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css', array(), '4.7.0', 'all' );
269
- wp_enqueue_style( 'spftestimonial-font-awesome', SP_TFREE_URL . 'public/assets/css/font-awesome.min.css', array(), SP_TFREE_VERSION );
270
 
271
- // framework core styles.
272
- wp_enqueue_style( 'spftestimonial', SPFTESTIMONIAL::include_plugin_url( 'assets/css/spftestimonial' . $min . '.css' ), array(), '1.0.0', 'all' );
273
 
274
- // rtl styles.
275
  if ( is_rtl() ) {
276
- wp_enqueue_style( 'spftestimonial-rtl', SPFTESTIMONIAL::include_plugin_url( 'assets/css/spftestimonial-rtl' . $min . '.css' ), array(), '1.0.0', 'all' );
277
  }
278
 
279
- // framework core scripts.
280
- wp_enqueue_script( 'spftestimonial-plugins', SPFTESTIMONIAL::include_plugin_url( 'assets/js/spftestimonial-plugins' . $min . '.js' ), array(), '1.0.0', true );
281
- wp_enqueue_script( 'spftestimonial', SPFTESTIMONIAL::include_plugin_url( 'assets/js/spftestimonial' . $min . '.js' ), array( 'spftestimonial-plugins' ), '1.0.0', true );
282
 
283
  wp_localize_script(
284
- 'spftestimonial', 'spftestimonial_vars', array(
285
- 'color_palette' => apply_filters( 'spftestimonial_color_palette', array() ),
286
  'i18n' => array(
287
- // global localize.
288
- 'confirm' => esc_html__( 'Are you sure?', 'testimonial-free' ),
289
- 'reset_notification' => esc_html__( 'Restoring options.', 'testimonial-free' ),
290
- 'import_notification' => esc_html__( 'Importing options.', 'testimonial-free' ),
291
-
292
- // chosen localize.
293
- 'typing_text' => esc_html__( 'Please enter %s or more characters', 'testimonial-free' ),
294
- 'searching_text' => esc_html__( 'Searching...', 'testimonial-free' ),
295
- 'no_results_text' => esc_html__( 'No results match', 'testimonial-free' ),
296
  ),
297
  )
298
  );
299
 
300
- // load admin enqueue scripts and styles.
301
  $enqueued = array();
302
 
303
  if ( ! empty( self::$fields ) ) {
304
  foreach ( self::$fields as $field ) {
305
  if ( ! empty( $field['type'] ) ) {
306
- $classname = 'SPFTESTIMONIAL_Field_' . $field['type'];
307
  self::maybe_include_field( $field['type'] );
308
  if ( class_exists( $classname ) && method_exists( $classname, 'enqueue' ) ) {
309
- $instance = new $classname( $field );
310
  if ( method_exists( $classname, 'enqueue' ) ) {
311
  $instance->enqueue();
312
  }
313
- unset( $instance );
314
  }
315
  }
316
  }
317
  }
318
 
319
- do_action( 'spftestimonial_enqueue' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
320
 
321
  }
322
 
323
  //
324
- // Add a new framework field.
325
  public static function field( $field = array(), $value = '', $unique = '', $where = '', $parent = '' ) {
326
 
327
- // Check for unallow fields.
328
  if ( ! empty( $field['_notice'] ) ) {
329
 
330
  $field_type = $field['type'];
331
 
332
  $field = array();
333
- $field['content'] = sprintf( esc_html__( 'Ooops! This field type (%s) can not be used here, yet.', 'testimonial-free' ), '<strong>' . $field_type . '</strong>' );
334
  $field['type'] = 'notice';
335
  $field['style'] = 'danger';
336
 
@@ -340,7 +506,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL' ) ) {
340
  $hidden = '';
341
  $unique = ( ! empty( $unique ) ) ? $unique : '';
342
  $class = ( ! empty( $field['class'] ) ) ? ' ' . $field['class'] : '';
343
- $is_pseudo = ( ! empty( $field['pseudo'] ) ) ? ' spftestimonial-pseudo-field' : '';
344
  $field_type = ( ! empty( $field['type'] ) ) ? $field['type'] : '';
345
 
346
  if ( ! empty( $field['dependency'] ) ) {
@@ -373,30 +539,30 @@ if ( ! class_exists( 'SPFTESTIMONIAL' ) ) {
373
 
374
  if ( ! empty( $field_type ) ) {
375
 
376
- echo '<div class="spftestimonial-field spftestimonial-field-' . $field_type . $is_pseudo . $class . $hidden . '"' . $depend . '>';
377
 
378
  if ( ! empty( $field['title'] ) ) {
379
- $subtitle = ( ! empty( $field['subtitle'] ) ) ? '<p class="spftestimonial-text-subtitle">' . $field['subtitle'] . '</p>' : '';
380
- echo '<div class="spftestimonial-title"><h4>' . $field['title'] . '</h4>' . $subtitle . '</div>';
381
  }
382
 
383
- echo ( ! empty( $field['title'] ) ) ? '<div class="spftestimonial-fieldset">' : '';
384
 
385
  $value = ( ! isset( $value ) && isset( $field['default'] ) ) ? $field['default'] : $value;
386
  $value = ( isset( $field['value'] ) ) ? $field['value'] : $value;
387
 
388
  self::maybe_include_field( $field_type );
389
 
390
- $classname = 'SPFTESTIMONIAL_Field_' . $field_type;
391
 
392
  if ( class_exists( $classname ) ) {
393
  $instance = new $classname( $field, $value, $unique, $where, $parent );
394
  $instance->render();
395
  } else {
396
- echo '<p>' . esc_html__( 'This field class is not available!', 'testimonial-free' ) . '</p>';
397
  }
398
  } else {
399
- echo '<p>' . esc_html__( 'This type is not found!', 'testimonial-free' ) . '</p>';
400
  }
401
 
402
  echo ( ! empty( $field['title'] ) ) ? '</div>' : '';
@@ -407,5 +573,5 @@ if ( ! class_exists( 'SPFTESTIMONIAL' ) ) {
407
 
408
  }
409
 
410
- SPFTESTIMONIAL::init();
411
  }
7
  * @since 1.0.0
8
  * @version 1.0.0
9
  */
10
+ if ( ! class_exists( 'CSF' ) ) {
11
+ class CSF {
12
 
13
+ // constants
14
+ public static $version = '2.1.3';
15
  public static $premium = true;
16
  public static $dir = null;
17
  public static $url = null;
19
  public static $fields = array();
20
  public static $args = array(
21
  'options' => array(),
22
+ 'customize_options' => array(),
23
  'metaboxes' => array(),
24
+ 'profile_options' => array(),
25
+ 'shortcoders' => array(),
26
+ 'taxonomy_options' => array(),
27
  'widgets' => array(),
28
+ 'comment_metaboxes' => array(),
29
  );
30
 
31
+ // shortcode instances
32
  public static $shortcode_instances = array();
33
 
34
+ // init
35
  public static function init() {
36
 
37
+ // init action
38
+ do_action( 'csf_init' );
39
 
40
+ // set constants
41
  self::constants();
42
 
43
+ // include files
44
  self::includes();
45
 
46
+ // setup textdomain
47
+ self::textdomain();
48
+
49
+ add_action( 'after_setup_theme', array( 'CSF', 'setup' ) );
50
+ add_action( 'init', array( 'CSF', 'setup' ) );
51
+ add_action( 'switch_theme', array( 'CSF', 'setup' ) );
52
+ add_action( 'admin_enqueue_scripts', array( 'CSF', 'add_admin_enqueue_scripts' ), 20 );
53
+ add_action( 'admin_head', array( 'CSF', 'add_admin_head_css' ), 99 );
54
+ add_action( 'customize_controls_print_styles', array( 'CSF', 'add_admin_head_css' ), 99 );
55
 
56
  }
57
 
58
+ // setup
59
  public static function setup() {
60
 
61
+ // setup options
62
  $params = array();
63
  if ( ! empty( self::$args['options'] ) ) {
64
  foreach ( self::$args['options'] as $key => $value ) {
68
  $params['sections'] = self::$args['sections'][ $key ];
69
  self::$inited[ $key ] = true;
70
 
71
+ CSF_Options::instance( $key, $params );
72
 
73
  if ( ! empty( $value['show_in_customizer'] ) ) {
74
+ $value['output_css'] = false;
75
+ $value['enqueue_webfont'] = false;
76
+ self::$args['customize_options'][ $key ] = $value;
77
+ self::$inited[ $key ] = null;
78
  }
79
  }
80
  }
81
  }
82
 
83
+ // setup customize options
84
+ $params = array();
85
+ if ( ! empty( self::$args['customize_options'] ) ) {
86
+ foreach ( self::$args['customize_options'] as $key => $value ) {
87
+ if ( ! empty( self::$args['sections'][ $key ] ) && ! isset( self::$inited[ $key ] ) ) {
88
+
89
+ $params['args'] = $value;
90
+ $params['sections'] = self::$args['sections'][ $key ];
91
+ self::$inited[ $key ] = true;
92
+
93
+ CSF_Customize_Options::instance( $key, $params );
94
+
95
+ }
96
+ }
97
+ }
98
+
99
+ // setup metaboxes
100
  $params = array();
101
  if ( ! empty( self::$args['metaboxes'] ) ) {
102
  foreach ( self::$args['metaboxes'] as $key => $value ) {
106
  $params['sections'] = self::$args['sections'][ $key ];
107
  self::$inited[ $key ] = true;
108
 
109
+ CSF_Metabox::instance( $key, $params );
110
+
111
+ }
112
+ }
113
+ }
114
+
115
+ // setup profile options
116
+ $params = array();
117
+ if ( ! empty( self::$args['profile_options'] ) ) {
118
+ foreach ( self::$args['profile_options'] as $key => $value ) {
119
+ if ( ! empty( self::$args['sections'][ $key ] ) && ! isset( self::$inited[ $key ] ) ) {
120
+
121
+ $params['args'] = $value;
122
+ $params['sections'] = self::$args['sections'][ $key ];
123
+ self::$inited[ $key ] = true;
124
+
125
+ CSF_Profile_Options::instance( $key, $params );
126
+
127
+ }
128
+ }
129
+ }
130
+
131
+ // setup shortcoders
132
+ $params = array();
133
+ if ( ! empty( self::$args['shortcoders'] ) ) {
134
+
135
+ foreach ( self::$args['shortcoders'] as $key => $value ) {
136
+ if ( ! empty( self::$args['sections'][ $key ] ) && ! isset( self::$inited[ $key ] ) ) {
137
+
138
+ $params['args'] = $value;
139
+ $params['sections'] = self::$args['sections'][ $key ];
140
+ self::$inited[ $key ] = true;
141
+
142
+ CSF_Shortcoder::instance( $key, $params );
143
+
144
+ }
145
+ }
146
+
147
+ // Once editor setup for gutenberg and media buttons
148
+ if ( ! empty( CSF::$shortcode_instances ) ) {
149
+ CSF_Shortcoder::once_editor_setup();
150
+ }
151
+ }
152
+
153
+ // setup taxonomy options
154
+ $params = array();
155
+ if ( ! empty( self::$args['taxonomy_options'] ) ) {
156
+ foreach ( self::$args['taxonomy_options'] as $key => $value ) {
157
+ if ( ! empty( self::$args['sections'][ $key ] ) && ! isset( self::$inited[ $key ] ) ) {
158
+
159
+ $params['args'] = $value;
160
+ $params['sections'] = self::$args['sections'][ $key ];
161
+ self::$inited[ $key ] = true;
162
+
163
+ CSF_Taxonomy_Options::instance( $key, $params );
164
 
165
  }
166
  }
167
  }
168
 
169
+ // create widgets
170
  if ( ! empty( self::$args['widgets'] ) && class_exists( 'WP_Widget_Factory' ) ) {
171
 
172
  $wp_widget_factory = new WP_Widget_Factory();
174
  foreach ( self::$args['widgets'] as $key => $value ) {
175
  if ( ! isset( self::$inited[ $key ] ) ) {
176
  self::$inited[ $key ] = true;
177
+ $wp_widget_factory->register( CSF_Widget::instance( $key, $value ) );
178
+ }
179
+ }
180
+ }
181
+
182
+ // setup comment metabox
183
+ $params = array();
184
+ if ( ! empty( self::$args['comment_metaboxes'] ) ) {
185
+ foreach ( self::$args['comment_metaboxes'] as $key => $value ) {
186
+ if ( ! empty( self::$args['sections'][ $key ] ) && ! isset( self::$inited[ $key ] ) ) {
187
+
188
+ $params['args'] = $value;
189
+ $params['sections'] = self::$args['sections'][ $key ];
190
+ self::$inited[ $key ] = true;
191
+
192
+ CSF_Comment_Metabox::instance( $key, $params );
193
+
194
  }
195
  }
196
  }
197
 
198
+ do_action( 'csf_loaded' );
199
 
200
  }
201
 
202
+ // create options
203
  public static function createOptions( $id, $args = array() ) {
204
  self::$args['options'][ $id ] = $args;
205
  }
206
 
207
+ // create customize options
208
+ public static function createCustomizeOptions( $id, $args = array() ) {
209
+ self::$args['customize_options'][ $id ] = $args;
210
+ }
211
+
212
+ // create metabox options
213
  public static function createMetabox( $id, $args = array() ) {
214
  self::$args['metaboxes'][ $id ] = $args;
215
  }
216
 
217
+ // create shortcoder options
218
+ public static function createShortcoder( $id, $args = array() ) {
219
+ self::$args['shortcoders'][ $id ] = $args;
220
+ }
221
+
222
+ // create taxonomy options
223
+ public static function createTaxonomyOptions( $id, $args = array() ) {
224
+ self::$args['taxonomy_options'][ $id ] = $args;
225
+ }
226
+
227
+ // create profile options
228
+ public static function createProfileOptions( $id, $args = array() ) {
229
+ self::$args['profile_options'][ $id ] = $args;
230
+ }
231
+
232
+ // create widget
233
  public static function createWidget( $id, $args = array() ) {
234
  self::$args['widgets'][ $id ] = $args;
235
  self::set_used_fields( $args );
236
  }
237
 
238
+ // create comment metabox
239
+ public static function createCommentMetabox( $id, $args = array() ) {
240
+ self::$args['comment_metaboxes'][ $id ] = $args;
241
+ }
242
+
243
+ // create section
244
  public static function createSection( $id, $sections ) {
245
  self::$args['sections'][ $id ][] = $sections;
246
  self::set_used_fields( $sections );
247
  }
248
 
249
+ // constants
250
  public static function constants() {
251
 
252
+ // we need this path-finder code for set URL of framework
253
  $dirname = wp_normalize_path( dirname( dirname( __FILE__ ) ) );
254
  $theme_dir = wp_normalize_path( get_parent_theme_file_path() );
255
  $plugin_dir = wp_normalize_path( WP_PLUGIN_DIR );
269
 
270
  $path = '';
271
  $file = ltrim( $file, '/' );
272
+ $override = apply_filters( 'csf_override', 'csf-override' );
273
 
274
  if ( file_exists( get_parent_theme_file_path( $override . '/' . $file ) ) ) {
275
  $path = get_parent_theme_file_path( $override . '/' . $file );
296
  }
297
  } else {
298
 
299
+ return self::$dir . '/' . $file;
300
 
301
  }
302
 
306
  return in_array( $file, (array) get_option( 'active_plugins', array() ) );
307
  }
308
 
309
+ // Sanitize dirname
310
  public static function sanitize_dirname( $dirname ) {
311
  return preg_replace( '/[^A-Za-z]/', '', $dirname );
312
  }
313
 
314
+ // Set plugin url
315
  public static function include_plugin_url( $file ) {
316
  return self::$url . '/' . ltrim( $file, '/' );
317
  }
318
 
319
+ // General includes
320
  public static function includes() {
321
 
322
+ // includes helpers
323
  self::include_plugin_file( 'functions/actions.php' );
324
  self::include_plugin_file( 'functions/deprecated.php' );
325
  self::include_plugin_file( 'functions/helpers.php' );
326
  self::include_plugin_file( 'functions/sanitize.php' );
327
  self::include_plugin_file( 'functions/validate.php' );
328
 
329
+ // includes free version classes
330
  self::include_plugin_file( 'classes/abstract.class.php' );
331
  self::include_plugin_file( 'classes/fields.class.php' );
332
  self::include_plugin_file( 'classes/options.class.php' );
333
 
334
+ // includes premium version classes
335
  if ( self::$premium ) {
336
+ self::include_plugin_file( 'classes/customize-options.class.php' );
337
  self::include_plugin_file( 'classes/metabox.class.php' );
338
+ self::include_plugin_file( 'classes/profile-options.class.php' );
339
+ self::include_plugin_file( 'classes/shortcoder.class.php' );
340
+ self::include_plugin_file( 'classes/taxonomy-options.class.php' );
341
  self::include_plugin_file( 'classes/widgets.class.php' );
342
+ self::include_plugin_file( 'classes/comment-metabox.class.php' );
343
  }
344
 
345
  }
346
 
347
+ // Include field
348
  public static function maybe_include_field( $type = '' ) {
349
+ if ( ! class_exists( 'CSF_Field_' . $type ) && class_exists( 'CSF_Fields' ) ) {
350
  self::include_plugin_file( 'fields/' . $type . '/' . $type . '.php' );
351
  }
352
  }
353
 
354
+ // Load textdomain
355
+ public static function textdomain() {
356
+ load_textdomain( 'csf', self::$dir . '/languages/' . get_locale() . '.mo' );
357
+ }
358
+
359
+ // Get all of fields
360
  public static function set_used_fields( $sections ) {
361
 
362
  if ( ! empty( $sections['fields'] ) ) {
372
  }
373
 
374
  if ( ! empty( $field['accordions'] ) ) {
375
+ self::set_used_fields( array( 'fields' => $field['accordions'] ) );
376
  }
377
 
378
  if ( ! empty( $field['type'] ) ) {
379
+ self::$fields[ $field['type'] ] = $field;
380
  }
381
  }
382
  }
387
  // Enqueue admin and fields styles and scripts.
388
  public static function add_admin_enqueue_scripts() {
389
 
390
+ // check for developer mode
391
+ $min = ( apply_filters( 'csf_dev_mode', false ) || WP_DEBUG ) ? '' : '.min';
392
 
393
+ // admin utilities
394
  wp_enqueue_media();
395
 
396
+ // wp color picker
397
  wp_enqueue_style( 'wp-color-picker' );
398
  wp_enqueue_script( 'wp-color-picker' );
399
 
400
+ // cdn styles
401
+ wp_enqueue_style( 'csf-fa', 'https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css', array(), '4.7.1', 'all' );
 
402
 
403
+ // framework core styles
404
+ wp_enqueue_style( 'csf', CSF::include_plugin_url( 'assets/css/csf' . $min . '.css' ), array(), '1.0.0', 'all' );
405
 
406
+ // rtl styles
407
  if ( is_rtl() ) {
408
+ wp_enqueue_style( 'csf-rtl', CSF::include_plugin_url( 'assets/css/csf-rtl' . $min . '.css' ), array(), '1.0.0', 'all' );
409
  }
410
 
411
+ // framework core scripts
412
+ wp_enqueue_script( 'csf-plugins', CSF::include_plugin_url( 'assets/js/csf-plugins' . $min . '.js' ), array(), '1.0.0', true );
413
+ wp_enqueue_script( 'csf', CSF::include_plugin_url( 'assets/js/csf' . $min . '.js' ), array( 'csf-plugins' ), '1.0.0', true );
414
 
415
  wp_localize_script(
416
+ 'csf', 'csf_vars', array(
417
+ 'color_palette' => apply_filters( 'csf_color_palette', array() ),
418
  'i18n' => array(
419
+ // global localize
420
+ 'confirm' => esc_html__( 'Are you sure?', 'csf' ),
421
+ 'reset_notification' => esc_html__( 'Restoring options.', 'csf' ),
422
+ 'import_notification' => esc_html__( 'Importing options.', 'csf' ),
423
+
424
+ // chosen localize
425
+ 'typing_text' => esc_html__( 'Please enter %s or more characters', 'csf' ),
426
+ 'searching_text' => esc_html__( 'Searching...', 'csf' ),
427
+ 'no_results_text' => esc_html__( 'No results match', 'csf' ),
428
  ),
429
  )
430
  );
431
 
432
+ // load admin enqueue scripts and styles
433
  $enqueued = array();
434
 
435
  if ( ! empty( self::$fields ) ) {
436
  foreach ( self::$fields as $field ) {
437
  if ( ! empty( $field['type'] ) ) {
438
+ $classname = 'CSF_Field_' . $field['type'];
439
  self::maybe_include_field( $field['type'] );
440
  if ( class_exists( $classname ) && method_exists( $classname, 'enqueue' ) ) {
441
+ $instance = new $classname( $field );
442
  if ( method_exists( $classname, 'enqueue' ) ) {
443
  $instance->enqueue();
444
  }
445
+ unset( $instance );
446
  }
447
  }
448
  }
449
  }
450
 
451
+ do_action( 'csf_enqueue' );
452
+
453
+ }
454
+
455
+ //
456
+ // WP 5.2 fallback
457
+ //
458
+ // This function has been created as temporary.
459
+ // It will be remove after stable version of wp 5.3.
460
+ //
461
+ public static function add_admin_head_css() {
462
+
463
+ global $wp_version;
464
+
465
+ $current_branch = implode( '.', array_slice( preg_split( '/[.-]/', $wp_version ), 0, 2 ) );
466
+
467
+ if ( version_compare( $current_branch, '5.3', '<' ) ) {
468
+
469
+ echo '<style type="text/css">
470
+ .csf-field-slider .csf--unit,
471
+ .csf-field-border .csf--label,
472
+ .csf-field-spacing .csf--label,
473
+ .csf-field-dimensions .csf--label,
474
+ .csf-field-spinner .ui-button-text-only{
475
+ border-color: #ddd;
476
+ }
477
+ .csf-warning-primary{
478
+ box-shadow: 0 1px 0 #bd2130 !important;
479
+ }
480
+ .csf-warning-primary:focus{
481
+ box-shadow: none !important;
482
+ }
483
+ </style>';
484
+
485
+ }
486
 
487
  }
488
 
489
  //
490
+ // Add a new framework field
491
  public static function field( $field = array(), $value = '', $unique = '', $where = '', $parent = '' ) {
492
 
493
+ // Check for unallow fields
494
  if ( ! empty( $field['_notice'] ) ) {
495
 
496
  $field_type = $field['type'];
497
 
498
  $field = array();
499
+ $field['content'] = sprintf( esc_html__( 'Ooops! This field type (%s) can not be used here, yet.', 'csf' ), '<strong>' . $field_type . '</strong>' );
500
  $field['type'] = 'notice';
501
  $field['style'] = 'danger';
502
 
506
  $hidden = '';
507
  $unique = ( ! empty( $unique ) ) ? $unique : '';
508
  $class = ( ! empty( $field['class'] ) ) ? ' ' . $field['class'] : '';
509
+ $is_pseudo = ( ! empty( $field['pseudo'] ) ) ? ' csf-pseudo-field' : '';
510
  $field_type = ( ! empty( $field['type'] ) ) ? $field['type'] : '';
511
 
512
  if ( ! empty( $field['dependency'] ) ) {
539
 
540
  if ( ! empty( $field_type ) ) {
541
 
542
+ echo '<div class="csf-field csf-field-' . $field_type . $is_pseudo . $class . $hidden . '"' . $depend . '>';
543
 
544
  if ( ! empty( $field['title'] ) ) {
545
+ $subtitle = ( ! empty( $field['subtitle'] ) ) ? '<p class="csf-text-subtitle">' . $field['subtitle'] . '</p>' : '';
546
+ echo '<div class="csf-title"><h4>' . $field['title'] . '</h4>' . $subtitle . '</div>';
547
  }
548
 
549
+ echo ( ! empty( $field['title'] ) ) ? '<div class="csf-fieldset">' : '';
550
 
551
  $value = ( ! isset( $value ) && isset( $field['default'] ) ) ? $field['default'] : $value;
552
  $value = ( isset( $field['value'] ) ) ? $field['value'] : $value;
553
 
554
  self::maybe_include_field( $field_type );
555
 
556
+ $classname = 'CSF_Field_' . $field_type;
557
 
558
  if ( class_exists( $classname ) ) {
559
  $instance = new $classname( $field, $value, $unique, $where, $parent );
560
  $instance->render();
561
  } else {
562
+ echo '<p>' . esc_html__( 'This field class is not available!', 'csf' ) . '</p>';
563
  }
564
  } else {
565
+ echo '<p>' . esc_html__( 'This type is not found!', 'csf' ) . '</p>';
566
  }
567
 
568
  echo ( ! empty( $field['title'] ) ) ? '</div>' : '';
573
 
574
  }
575
 
576
+ CSF::init();
577
  }
admin/views/framework/classes/shortcoder.class.php ADDED
@@ -0,0 +1,279 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Shortcoder Class
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Shortcoder' ) ) {
11
+ class CSF_Shortcoder extends CSF_Abstract{
12
+
13
+ // constans
14
+ public $unique = '';
15
+ public $abstract = 'shortcoder';
16
+ public $blocks = array();
17
+ public $sections = array();
18
+ public $pre_tabs = array();
19
+ public $pre_sections = array();
20
+ public $args = array(
21
+ 'button_title' => 'Add Shortcode',
22
+ 'select_title' => 'Select a shortcode',
23
+ 'insert_title' => 'Insert Shortcode',
24
+ 'show_in_editor' => true,
25
+ 'defaults' => array(),
26
+ 'class' => '',
27
+ );
28
+
29
+ // run shortcode construct
30
+ public function __construct( $key, $params = array() ) {
31
+
32
+ $this->unique = $key;
33
+ $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
34
+ $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
35
+ $this->pre_tabs = $this->pre_tabs( $this->sections );
36
+ $this->pre_sections = $this->pre_sections( $this->sections );
37
+
38
+ add_action( 'admin_footer', array( &$this, 'add_shortcode_modal' ) );
39
+ add_action( 'customize_controls_print_footer_scripts', array( &$this, 'add_shortcode_modal' ) );
40
+ add_action( 'wp_ajax_csf-get-shortcode-'. $this->unique, array( &$this, 'get_shortcode' ) );
41
+
42
+ if( ! empty( $this->args['show_in_editor'] ) ) {
43
+
44
+ CSF::$shortcode_instances[] = wp_parse_args( array( 'hash' => md5( $key ), 'modal_id' => $this->unique ), $this->args );
45
+
46
+ // elementor editor support
47
+ if( CSF::is_active_plugin( 'elementor/elementor.php' ) ) {
48
+ add_action( 'elementor/editor/before_enqueue_scripts', array( 'CSF', 'add_admin_enqueue_scripts' ), 20 );
49
+ add_action( 'elementor/editor/footer', array( &$this, 'add_shortcode_modal' ) );
50
+ add_action( 'elementor/editor/footer', 'csf_set_icons' );
51
+ }
52
+
53
+ }
54
+
55
+ }
56
+
57
+ // instance
58
+ public static function instance( $key, $params = array() ) {
59
+ return new self( $key, $params );
60
+ }
61
+
62
+ public function pre_tabs( $sections ) {
63
+
64
+ $result = array();
65
+ $parents = array();
66
+ $count = 100;
67
+
68
+ foreach( $sections as $key => $section ) {
69
+ if( ! empty( $section['parent'] ) ) {
70
+ $section['priority'] = ( isset( $section['priority'] ) ) ? $section['priority'] : $count;
71
+ $parents[$section['parent']][] = $section;
72
+ unset( $sections[$key] );
73
+ }
74
+ $count++;
75
+ }
76
+
77
+ foreach( $sections as $key => $section ) {
78
+ $section['priority'] = ( isset( $section['priority'] ) ) ? $section['priority'] : $count;
79
+ if( ! empty( $section['id'] ) && ! empty( $parents[$section['id']] ) ) {
80
+ $section['subs'] = wp_list_sort( $parents[$section['id']], array( 'priority' => 'ASC' ), 'ASC', true );
81
+ }
82
+ $result[] = $section;
83
+ $count++;
84
+ }
85
+
86
+ return wp_list_sort( $result, array( 'priority' => 'ASC' ), 'ASC', true );
87
+ }
88
+
89
+ public function pre_sections( $sections ) {
90
+
91
+ $result = array();
92
+
93
+ foreach( $this->pre_tabs as $tab ) {
94
+ if( ! empty( $tab['subs'] ) ) {
95
+ foreach( $tab['subs'] as $sub ) {
96
+ $result[] = $sub;
97
+ }
98
+ }
99
+ if( empty( $tab['subs'] ) ) {
100
+ $result[] = $tab;
101
+ }
102
+ }
103
+
104
+ return $result;
105
+ }
106
+
107
+ // get default value
108
+ public function get_default( $field ) {
109
+
110
+ $default = ( isset( $field['id'] ) && isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : null;
111
+ $default = ( isset( $field['default'] ) ) ? $field['default'] : $default;
112
+
113
+ return $default;
114
+
115
+ }
116
+
117
+ public function add_shortcode_modal() {
118
+
119
+ $class = ( $this->args['class'] ) ? ' '. $this->args['class'] : '';
120
+ $has_select = ( count( $this->pre_tabs ) > 1 ) ? true : false;
121
+ $single_usage = ( ! $has_select ) ? ' csf-shortcode-single' : '';
122
+ $hide_header = ( ! $has_select ) ? ' hidden' : '';
123
+
124
+ ?>
125
+ <div id="csf-modal-<?php echo $this->unique; ?>" class="wp-core-ui csf-modal csf-shortcode<?php echo $single_usage . $class; ?>" data-modal-id="<?php echo $this->unique; ?>" data-nonce="<?php echo wp_create_nonce( 'csf_shortcode_nonce' ); ?>">
126
+ <div class="csf-modal-table">
127
+ <div class="csf-modal-table-cell">
128
+ <div class="csf-modal-overlay"></div>
129
+ <div class="csf-modal-inner">
130
+ <div class="csf-modal-title">
131
+ <?php echo $this->args['button_title']; ?>
132
+ <div class="csf-modal-close"></div>
133
+ </div>
134
+ <?php
135
+
136
+ echo '<div class="csf-modal-header'. $hide_header .'">';
137
+ echo '<select>';
138
+ echo ( $has_select ) ? '<option value="">'. $this->args['select_title'] .'</option>' : '';
139
+
140
+ $tab_key = 1;
141
+ foreach ( $this->pre_tabs as $tab ) {
142
+
143
+ if( ! empty( $tab['subs'] ) ) {
144
+
145
+ echo '<optgroup label="'. $tab['title'] .'">';
146
+
147
+ foreach ( $tab['subs'] as $sub ) {
148
+
149
+ $view = ( ! empty( $sub['view'] ) ) ? ' data-view="'. $sub['view'] .'"' : '';
150
+ $shortcode = ( ! empty( $sub['shortcode'] ) ) ? ' data-shortcode="'. $sub['shortcode'] .'"' : '';
151
+ $group = ( ! empty( $sub['group_shortcode'] ) ) ? ' data-group="'. $sub['group_shortcode'] .'"' : '';
152
+
153
+ echo '<option value="'. $tab_key .'"'. $view . $shortcode . $group .'>'. $sub['title'] .'</option>';
154
+
155
+ $tab_key++;
156
+ }
157
+
158
+ echo '</optgroup>' ;
159
+
160
+ } else {
161
+
162
+ $view = ( ! empty( $tab['view'] ) ) ? ' data-view="'. $tab['view'] .'"' : '';
163
+ $shortcode = ( ! empty( $tab['shortcode'] ) ) ? ' data-shortcode="'. $tab['shortcode'] .'"' : '';
164
+ $group = ( ! empty( $tab['group_shortcode'] ) ) ? ' data-group="'. $tab['group_shortcode'] .'"' : '';
165
+
166
+ echo '<option value="'. $tab_key .'"'. $view . $shortcode . $group .'>'. $tab['title'] .'</option>';
167
+
168
+ $tab_key++;
169
+ }
170
+
171
+ }
172
+
173
+ echo '</select>';
174
+ echo '</div>';
175
+
176
+ ?>
177
+ <div class="csf-modal-content">
178
+ <div class="csf-modal-loading"><div class="csf-loading"></div></div>
179
+ <div class="csf-modal-load"></div>
180
+ </div>
181
+ <div class="csf-modal-insert-wrapper hidden"><a href="#" class="button button-primary csf-modal-insert"><?php echo $this->args['insert_title']; ?></a></div>
182
+ </div>
183
+ </div>
184
+ </div>
185
+ </div>
186
+ <?php
187
+ }
188
+
189
+ public function get_shortcode() {
190
+
191
+ ob_start();
192
+
193
+ $shortcode_key = csf_get_var( 'shortcode_key' );
194
+
195
+ if( ! empty( $shortcode_key ) && wp_verify_nonce( csf_get_var( 'nonce' ), 'csf_shortcode_nonce' ) ) {
196
+
197
+ $unallows = array( 'group', 'repeater', 'sorter' );
198
+ $section = $this->pre_sections[$shortcode_key-1];
199
+ $shortcode = ( ! empty( $section['shortcode'] ) ) ? $section['shortcode'] : '';
200
+ $view = ( ! empty( $section['view'] ) ) ? $section['view'] : 'normal';
201
+
202
+ if( ! empty( $section ) ) {
203
+
204
+ //
205
+ // View: normal
206
+ if( ! empty( $section['fields'] ) && $view !== 'repeater' ) {
207
+
208
+ echo '<div class="csf-fields">';
209
+
210
+ foreach ( $section['fields'] as $field ) {
211
+
212
+ if( in_array( $field['type'], $unallows ) ) { $field['_notice'] = true; }
213
+
214
+ // Extra tag improves for spesific fields (border, spacing, dimensions etc...)
215
+ $field['tag_prefix'] = ( ! empty( $field['tag_prefix'] ) ) ? $field['tag_prefix'] .'_' : '';
216
+
217
+ $field_default = $this->get_default( $field );
218
+
219
+ CSF::field( $field, $field_default, $shortcode, 'shortcode' );
220
+
221
+ }
222
+
223
+ echo '</div>';
224
+
225
+ }
226
+
227
+ //
228
+ // View: group and repeater fields
229
+ $repeatable_fields = ( $view === 'repeater' && ! empty( $section['fields'] ) ) ? $section['fields'] : array();
230
+ $repeatable_fields = ( $view === 'group' && ! empty( $section['group_fields'] ) ) ? $section['group_fields'] : $repeatable_fields;
231
+
232
+ if( ! empty( $repeatable_fields ) ) {
233
+
234
+ $button_title = ( ! empty( $section['button_title'] ) ) ? ' '. $section['button_title'] : esc_html__( 'Add one more', 'csf' );
235
+ $inner_shortcode = ( ! empty( $section['group_shortcode'] ) ) ? $section['group_shortcode'] : $shortcode;
236
+
237
+ echo '<div class="csf--repeatable">';
238
+
239
+ echo '<div class="csf--repeat-shortcode">';
240
+
241
+ echo '<div class="csf-repeat-remove fa fa-times"></div>';
242
+
243
+ echo '<div class="csf-fields">';
244
+
245
+ foreach ( $repeatable_fields as $field ) {
246
+
247
+ if( in_array( $field['type'], $unallows ) ) { $field['_notice'] = true; }
248
+
249
+ // Extra tag improves for spesific fields (border, spacing, dimensions etc...)
250
+ $field['tag_prefix'] = ( ! empty( $field['tag_prefix'] ) ) ? $field['tag_prefix'] .'_' : '';
251
+
252
+ $field_default = $this->get_default( $field );
253
+
254
+ CSF::field( $field, $field_default, $inner_shortcode.'[0]', 'shortcode' );
255
+
256
+ }
257
+
258
+ echo '</div>';
259
+
260
+ echo '</div>';
261
+
262
+ echo '</div>';
263
+
264
+ echo '<div class="csf--repeat-button-block"><a class="button csf--repeat-button" href="#"><i class="fa fa-plus-circle"></i> '. $button_title .'</a></div>';
265
+
266
+ }
267
+
268
+ }
269
+
270
+ } else {
271
+ echo '<div class="csf-field csf-text-error">'. esc_html__( 'Error: Nonce verification has failed. Please try again.', 'csf' ) .'</div>';
272
+ }
273
+
274
+ wp_send_json_success( array( 'content' => ob_get_clean() ) );
275
+
276
+ }
277
+
278
+ }
279
+ }
admin/views/framework/classes/taxonomy-options.class.php ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Taxonomy Options Class
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Taxonomy_Options' ) ) {
11
+ class CSF_Taxonomy_Options extends CSF_Abstract{
12
+
13
+ // constans
14
+ public $unique = '';
15
+ public $taxonomy = '';
16
+ public $abstract = 'taxonomy';
17
+ public $sections = array();
18
+ public $taxonomies = array();
19
+ public $args = array(
20
+ 'taxonomy' => '',
21
+ 'data_type' => 'serialize',
22
+ 'defaults' => array(),
23
+ 'class' => '',
24
+ );
25
+
26
+ // run taxonomy construct
27
+ public function __construct( $key, $params ) {
28
+
29
+ $this->unique = $key;
30
+ $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
31
+ $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
32
+ $this->taxonomies = ( is_array( $this->args['taxonomy'] ) ) ? $this->args['taxonomy'] : array_filter( (array) $this->args['taxonomy'] );
33
+ $this->taxonomy = csf_get_var( 'taxonomy' );
34
+
35
+ if( ! empty( $this->taxonomies ) && in_array( $this->taxonomy, $this->taxonomies ) ) {
36
+ add_action( 'admin_init', array( &$this, 'add_taxonomy_options' ) );
37
+ }
38
+
39
+ }
40
+
41
+ // instance
42
+ public static function instance( $key, $params ) {
43
+ return new self( $key, $params );
44
+ }
45
+
46
+ // add taxonomy add/edit fields
47
+ public function add_taxonomy_options() {
48
+
49
+ add_action( $this->taxonomy .'_add_form_fields', array( &$this, 'render_taxonomy_form_fields' ) );
50
+ add_action( $this->taxonomy .'_edit_form', array( &$this, 'render_taxonomy_form_fields' ) );
51
+
52
+ add_action( 'created_'. $this->taxonomy, array( &$this, 'save_taxonomy' ) );
53
+ add_action( 'edited_'. $this->taxonomy, array( &$this, 'save_taxonomy' ) );
54
+
55
+ }
56
+
57
+ // get default value
58
+ public function get_default( $field ) {
59
+
60
+ $default = ( isset( $field['id'] ) && isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : null;
61
+ $default = ( isset( $field['default'] ) ) ? $field['default'] : $default;
62
+
63
+ return $default;
64
+
65
+ }
66
+
67
+ // get default value
68
+ public function get_meta_value( $term_id, $field ) {
69
+
70
+ $value = null;
71
+
72
+ if( ! empty( $term_id ) && ! empty( $field['id'] ) ) {
73
+
74
+ if( $this->args['data_type'] !== 'serialize' ) {
75
+ $meta = get_term_meta( $term_id, $field['id'] );
76
+ $value = ( isset( $meta[0] ) ) ? $meta[0] : null;
77
+ } else {
78
+ $meta = get_term_meta( $term_id, $this->unique, true );
79
+ $value = ( isset( $meta[$field['id']] ) ) ? $meta[$field['id']] : null;
80
+ }
81
+
82
+ }
83
+
84
+ $default = $this->get_default( $field );
85
+ $value = ( isset( $value ) ) ? $value : $default;
86
+
87
+ return $value;
88
+
89
+ }
90
+
91
+ // render taxonomy add/edit form fields
92
+ public function render_taxonomy_form_fields( $term ) {
93
+
94
+ $is_term = ( is_object( $term ) && isset( $term->taxonomy ) ) ? true : false;
95
+ $term_id = ( $is_term ) ? $term->term_id : 0;
96
+ $taxonomy = ( $is_term ) ? $term->taxonomy : $term;
97
+ $classname = ( $is_term ) ? 'edit' : 'add';
98
+ $errors = ( ! empty( $term_id ) ) ? get_term_meta( $term_id, '_csf_errors', true ) : array();
99
+ $errors = ( ! empty( $errors ) ) ? $errors : array();
100
+ $class = ( $this->args['class'] ) ? ' '. $this->args['class'] : '';
101
+
102
+ // clear errors
103
+ if( ! empty( $errors ) ) {
104
+ delete_term_meta( $term_id, '_csf_errors' );
105
+ }
106
+
107
+ wp_nonce_field( 'csf_taxonomy_nonce', 'csf_taxonomy_nonce'. $this->unique );
108
+
109
+ echo '<div class="csf csf-taxonomy csf-show-all csf-onload csf-taxonomy-'. $classname .'-fields'. $class .'">';
110
+
111
+ foreach( $this->sections as $section ) {
112
+
113
+ if( $taxonomy === $this->taxonomy ) {
114
+
115
+ $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-icon '. $section['icon'] .'"></i>' : '';
116
+ $section_title = ( ! empty( $section['title'] ) ) ? $section['title'] : '';
117
+
118
+ echo ( $section_title || $section_icon ) ? '<div class="csf-section-title"><h3>'. $section_icon . $section_title .'</h3></div>' : '';
119
+
120
+ if( ! empty( $section['fields'] ) ) {
121
+ foreach( $section['fields'] as $field ) {
122
+
123
+ if( ! empty( $field['id'] ) && ! empty( $errors[$field['id']] ) ) {
124
+ $field['_error'] = $errors[$field['id']];
125
+ }
126
+
127
+ CSF::field( $field, $this->get_meta_value( $term_id, $field ), $this->unique, 'taxonomy' );
128
+
129
+ }
130
+ }
131
+ }
132
+
133
+ }
134
+
135
+ echo '</div>';
136
+
137
+ }
138
+
139
+ // save taxonomy form fields
140
+ public function save_taxonomy( $term_id ) {
141
+
142
+ if ( wp_verify_nonce( csf_get_var( 'csf_taxonomy_nonce'. $this->unique ), 'csf_taxonomy_nonce' ) ) {
143
+
144
+ $errors = array();
145
+ $taxonomy = csf_get_var( 'taxonomy' );
146
+
147
+ foreach ( $this->sections as $section ) {
148
+
149
+ if( $taxonomy == $this->taxonomy ) {
150
+
151
+ $request = csf_get_var( $this->unique, array() );
152
+
153
+ // ignore _nonce
154
+ if( isset( $request['_nonce'] ) ) {
155
+ unset( $request['_nonce'] );
156
+ }
157
+
158
+ // sanitize and validate
159
+ if( ! empty( $section['fields'] ) ) {
160
+
161
+ foreach( $section['fields'] as $field ) {
162
+
163
+ if( ! empty( $field['id'] ) ) {
164
+
165
+ // sanitize
166
+ if( ! empty( $field['sanitize'] ) ) {
167
+
168
+ $sanitize = $field['sanitize'];
169
+ $value_sanitize = csf_get_vars( $this->unique, $field['id'] );
170
+ $request[$field['id']] = call_user_func( $sanitize, $value_sanitize );
171
+
172
+ }
173
+
174
+ // validate
175
+ if( ! empty( $field['validate'] ) ) {
176
+
177
+ $validate = $field['validate'];
178
+ $value_validate = csf_get_vars( $this->unique, $field['id'] );
179
+ $has_validated = call_user_func( $validate, $value_validate );
180
+
181
+ if( ! empty( $has_validated ) ) {
182
+
183
+ $errors[$field['id']] = $has_validated;
184
+ $request[$field['id']] = $this->get_meta_value( $term_id, $field );
185
+
186
+ }
187
+
188
+ }
189
+
190
+ // auto sanitize
191
+ if( ! isset( $request[$field['id']] ) || is_null( $request[$field['id']] ) ) {
192
+ $request[$field['id']] = '';
193
+ }
194
+
195
+ }
196
+
197
+ }
198
+
199
+ }
200
+
201
+ $request = apply_filters( "csf_{$this->unique}_save", $request, $term_id, $this );
202
+
203
+ do_action( "csf_{$this->unique}_save_before", $request, $term_id, $this );
204
+
205
+ if( empty( $request ) ) {
206
+
207
+ if( $this->args['data_type'] !== 'serialize' ) {
208
+ foreach ( $request as $key => $value ) {
209
+ delete_term_meta( $term_id, $key );
210
+ }
211
+ } else {
212
+ delete_term_meta( $term_id, $this->unique );
213
+ }
214
+
215
+ } else {
216
+
217
+ if( $this->args['data_type'] !== 'serialize' ) {
218
+ foreach ( $request as $key => $value ) {
219
+ update_term_meta( $term_id, $key, $value );
220
+ }
221
+ } else {
222
+ update_term_meta( $term_id, $this->unique, $request );
223
+ }
224
+
225
+ if( ! empty( $errors ) ) {
226
+ update_term_meta( $term_id, '_csf_errors', $errors );
227
+ }
228
+
229
+ }
230
+
231
+ do_action( "csf_{$this->unique}_saved", $request, $term_id, $this );
232
+
233
+ do_action( "csf_{$this->unique}_save_after", $request, $term_id, $this );
234
+
235
+ }
236
+
237
+ }
238
+
239
+ }
240
+
241
+ }
242
+
243
+ }
244
+ }
admin/views/framework/classes/widgets.class.php ADDED
@@ -0,0 +1,129 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Widgets Class
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Widget' ) ) {
11
+ class CSF_Widget extends WP_Widget {
12
+
13
+ // constans
14
+ public $unique = '';
15
+ public $args = array(
16
+ 'title' => '',
17
+ 'classname' => '',
18
+ 'description' => '',
19
+ 'width' => '',
20
+ 'defaults' => array(),
21
+ 'fields' => array(),
22
+ 'class' => '',
23
+ );
24
+
25
+ public function __construct( $key, $params ) {
26
+
27
+ $widget_ops = array();
28
+ $control_ops = array();
29
+
30
+ $this->unique = $key;
31
+ $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params, $this->args ), $this );
32
+
33
+ // Set control options
34
+ if( ! empty( $this->args['width'] ) ) {
35
+ $control_ops['width'] = $this->args['width'];
36
+ }
37
+
38
+ // Set widget options
39
+ if( ! empty( $this->args['description'] ) ) {
40
+ $widget_ops['description'] = $this->args['description'];
41
+ }
42
+
43
+ if( ! empty( $this->args['classname'] ) ) {
44
+ $widget_ops['classname'] = $this->args['classname'];
45
+ }
46
+
47
+ // Set filters
48
+ $widget_ops = apply_filters( "csf_{$this->unique}_widget_ops", $widget_ops, $this );
49
+ $control_ops = apply_filters( "csf_{$this->unique}_control_ops", $control_ops, $this );
50
+
51
+ parent::__construct( $this->unique, $this->args['title'], $widget_ops, $control_ops );
52
+
53
+ }
54
+
55
+ // Register widget with WordPress
56
+ public static function instance( $key, $params = array() ) {
57
+ return new self( $key, $params );
58
+ }
59
+
60
+ // Front-end display of widget.
61
+ public function widget( $args, $instance ) {
62
+ call_user_func( $this->unique, $args, $instance );
63
+ }
64
+
65
+ // get default value
66
+ public function get_default( $field, $options = array() ) {
67
+
68
+ $default = ( isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : null;
69
+ $default = ( isset( $field['default'] ) ) ? $field['default'] : $default;
70
+ $default = ( isset( $options[$field['id']] ) ) ? $options[$field['id']] : $default;
71
+
72
+ return $default;
73
+
74
+ }
75
+
76
+ // Back-end widget form.
77
+ public function form( $instance ) {
78
+
79
+ if( ! empty( $this->args['fields'] ) ) {
80
+
81
+ $class = ( $this->args['class'] ) ? ' '. $this->args['class'] : '';
82
+
83
+ echo '<div class="csf csf-widgets csf-fields'. $class .'">';
84
+
85
+ foreach( $this->args['fields'] as $field ) {
86
+
87
+ $field_value = '';
88
+ $field_unique = '';
89
+
90
+ if( ! empty( $field['id'] ) ) {
91
+
92
+ $field_value = $this->get_default( $field, $instance );
93
+ $field_unique = 'widget-' . $this->unique . '[' . $this->number . ']';
94
+
95
+ if( $field['id'] === 'title' ) {
96
+ $field['attributes']['id'] = 'widget-'. $this->unique .'-'. $this->number .'-title';
97
+ }
98
+
99
+ }
100
+
101
+ CSF::field( $field, $field_value, $field_unique );
102
+
103
+ }
104
+
105
+ echo '</div>';
106
+
107
+ }
108
+
109
+ }
110
+
111
+ // Sanitize widget form values as they are saved.
112
+ public function update( $new_instance, $old_instance ) {
113
+
114
+ // auto sanitize
115
+ foreach( $this->args['fields'] as $field ) {
116
+ if( ! empty( $field['id'] ) && ( ! isset( $new_instance[$field['id']] ) || is_null( $new_instance[$field['id']] ) ) ) {
117
+ $new_instance[$field['id']] = '';
118
+ }
119
+ }
120
+
121
+ $new_instance = apply_filters( "csf_{$this->unique}_save", $new_instance, $this->args, $this );
122
+
123
+ do_action( "csf_{$this->unique}_save_before", $new_instance, $this->args, $this );
124
+
125
+ return $new_instance;
126
+
127
+ }
128
+ }
129
+ }
admin/views/framework/fields/accordion/accordion.php ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: accordion
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_accordion' ) ) {
11
+ class CSF_Field_accordion extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $unallows = array( 'accordion' );
20
+
21
+ echo $this->field_before();
22
+
23
+ echo '<div class="csf-accordion-items">';
24
+
25
+ foreach ( $this->field['accordions'] as $key => $accordion ) {
26
+
27
+ echo '<div class="csf-accordion-item">';
28
+
29
+ $icon = ( ! empty( $accordion['icon'] ) ) ? 'csf--icon '. $accordion['icon'] : 'csf-accordion-icon fa fa-angle-right';
30
+
31
+ echo '<h4 class="csf-accordion-title">';
32
+ echo '<i class="'. $icon .'"></i>';
33
+ echo $accordion['title'];
34
+ echo '</h4>';
35
+
36
+ echo '<div class="csf-accordion-content">';
37
+
38
+ foreach ( $accordion['fields'] as $field ) {
39
+
40
+ if( in_array( $field['type'], $unallows ) ) { $field['_notice'] = true; }
41
+
42
+ $field_id = ( isset( $field['id'] ) ) ? $field['id'] : '';
43
+ $field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
44
+ $field_value = ( isset( $this->value[$field_id] ) ) ? $this->value[$field_id] : $field_default;
45
+ $unique_id = ( ! empty( $this->unique ) ) ? $this->unique .'['. $this->field['id'] .']' : $this->field['id'];
46
+
47
+ CSF::field( $field, $field_value, $unique_id, 'field/accordion' );
48
+
49
+ }
50
+
51
+ echo '</div>';
52
+
53
+ echo '</div>';
54
+
55
+ }
56
+
57
+ echo '</div>';
58
+
59
+ echo $this->field_after();
60
+
61
+ }
62
+
63
+ }
64
+ }
admin/views/framework/fields/background/background.php ADDED
@@ -0,0 +1,332 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: background
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_background' ) ) {
11
+ class CSF_Field_background extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'background_color' => true,
21
+ 'background_image' => true,
22
+ 'background_position' => true,
23
+ 'background_repeat' => true,
24
+ 'background_attachment' => true,
25
+ 'background_size' => true,
26
+ 'background_origin' => false,
27
+ 'background_clip' => false,
28
+ 'background_blend_mode' => false,
29
+ 'background_gradient' => false,
30
+ 'background_gradient_color' => true,
31
+ 'background_gradient_direction' => true,
32
+ 'background_image_preview' => true,
33
+ 'background_auto_attributes' => false,
34
+ 'background_image_library' => 'image',
35
+ 'background_image_placeholder' => esc_html__( 'No background selected', 'csf' ),
36
+ ) );
37
+
38
+ $default_value = array(
39
+ 'background-color' => '',
40
+ 'background-image' => '',
41
+ 'background-position' => '',
42
+ 'background-repeat' => '',
43
+ 'background-attachment' => '',
44
+ 'background-size' => '',
45
+ 'background-origin' => '',
46
+ 'background-clip' => '',
47
+ 'background-blend-mode' => '',
48
+ 'background-gradient-color' => '',
49
+ 'background-gradient-direction' => '',
50
+ );
51
+
52
+ $default_value = ( ! empty( $this->field['default'] ) ) ? wp_parse_args( $this->field['default'], $default_value ) : $default_value;
53
+
54
+ $this->value = wp_parse_args( $this->value, $default_value );
55
+
56
+ echo $this->field_before();
57
+
58
+ echo '<div class="csf--background-colors">';
59
+
60
+ //
61
+ // Background Color
62
+ if( ! empty( $args['background_color'] ) ) {
63
+
64
+ echo '<div class="csf--color">';
65
+
66
+ echo ( ! empty( $args['background_gradient'] ) ) ? '<div class="csf--title">'. esc_html__( 'From', 'csf' ) .'</div>' : '';
67
+
68
+ CSF::field( array(
69
+ 'id' => 'background-color',
70
+ 'type' => 'color',
71
+ 'default' => $default_value['background-color'],
72
+ ), $this->value['background-color'], $this->field_name(), 'field/background' );
73
+
74
+ echo '</div>';
75
+
76
+ }
77
+
78
+ //
79
+ // Background Gradient Color
80
+ if( ! empty( $args['background_gradient_color'] ) && ! empty( $args['background_gradient'] ) ) {
81
+
82
+ echo '<div class="csf--color">';
83
+
84
+ echo ( ! empty( $args['background_gradient'] ) ) ? '<div class="csf--title">'. esc_html__( 'To', 'csf' ) .'</div>' : '';
85
+
86
+ CSF::field( array(
87
+ 'id' => 'background-gradient-color',
88
+ 'type' => 'color',
89
+ 'default' => $default_value['background-gradient-color'],
90
+ ), $this->value['background-gradient-color'], $this->field_name(), 'field/background' );
91
+
92
+ echo '</div>';
93
+
94
+ }
95
+
96
+ //
97
+ // Background Gradient Direction
98
+ if( ! empty( $args['background_gradient_direction'] ) && ! empty( $args['background_gradient'] ) ) {
99
+
100
+ echo '<div class="csf--color">';
101
+
102
+ echo ( ! empty( $args['background_gradient'] ) ) ? '<div class="csf---title">'. esc_html__( 'Direction', 'csf' ) .'</div>' : '';
103
+
104
+ CSF::field( array(
105
+ 'id' => 'background-gradient-direction',
106
+ 'type' => 'select',
107
+ 'options' => array(
108
+ '' => esc_html__( 'Gradient Direction', 'csf' ),
109
+ 'to bottom' => esc_html__( '&#8659; top to bottom', 'csf' ),
110
+ 'to right' => esc_html__( '&#8658; left to right', 'csf' ),
111
+ '135deg' => esc_html__( '&#8664; corner top to right', 'csf' ),
112
+ '-135deg' => esc_html__( '&#8665; corner top to left', 'csf' ),
113
+ ),
114
+ ), $this->value['background-gradient-direction'], $this->field_name(), 'field/background' );
115
+
116
+ echo '</div>';
117
+
118
+ }
119
+
120
+ echo '</div>';
121
+
122
+ //
123
+ // Background Image
124
+ if( ! empty( $args['background_image'] ) ) {
125
+
126
+ echo '<div class="csf--background-image">';
127
+
128
+ CSF::field( array(
129
+ 'id' => 'background-image',
130
+ 'type' => 'media',
131
+ 'class' => 'csf-assign-field-background',
132
+ 'library' => $args['background_image_library'],
133
+ 'preview' => $args['background_image_preview'],
134
+ 'placeholder' => $args['background_image_placeholder'],
135
+ 'attributes' => array( 'data-depend-id' => $this->field['id'] ),
136
+ ), $this->value['background-image'], $this->field_name(), 'field/background' );
137
+
138
+ echo '</div>';
139
+
140
+ }
141
+
142
+ $auto_class = ( ! empty( $args['background_auto_attributes'] ) ) ? ' csf--auto-attributes' : '';
143
+ $hidden_class = ( ! empty( $args['background_auto_attributes'] ) && empty( $this->value['background-image']['url'] ) ) ? ' csf--attributes-hidden' : '';
144
+
145
+ echo '<div class="csf--background-attributes'. $auto_class . $hidden_class .'">';
146
+
147
+ //
148
+ // Background Position
149
+ if( ! empty( $args['background_position'] ) ) {
150
+
151
+ CSF::field( array(
152
+ 'id' => 'background-position',
153
+ 'type' => 'select',
154
+ 'options' => array(
155
+ '' => esc_html__( 'Background Position', 'csf' ),
156
+ 'left top' => esc_html__( 'Left Top', 'csf' ),
157
+ 'left center' => esc_html__( 'Left Center', 'csf' ),
158
+ 'left bottom' => esc_html__( 'Left Bottom', 'csf' ),
159
+ 'center top' => esc_html__( 'Center Top', 'csf' ),
160
+ 'center center' => esc_html__( 'Center Center', 'csf' ),
161
+ 'center bottom' => esc_html__( 'Center Bottom', 'csf' ),
162
+ 'right top' => esc_html__( 'Right Top', 'csf' ),
163
+ 'right center' => esc_html__( 'Right Center', 'csf' ),
164
+ 'right bottom' => esc_html__( 'Right Bottom', 'csf' ),
165
+ ),
166
+ ), $this->value['background-position'], $this->field_name(), 'field/background' );
167
+
168
+ }
169
+
170
+ //
171
+ // Background Repeat
172
+ if( ! empty( $args['background_repeat'] ) ) {
173
+
174
+ CSF::field( array(
175
+ 'id' => 'background-repeat',
176
+ 'type' => 'select',
177
+ 'options' => array(
178
+ '' => esc_html__( 'Background Repeat', 'csf' ),
179
+ 'repeat' => esc_html__( 'Repeat', 'csf' ),
180
+ 'no-repeat' => esc_html__( 'No Repeat', 'csf' ),
181
+ 'repeat-x' => esc_html__( 'Repeat Horizontally', 'csf' ),
182
+ 'repeat-y' => esc_html__( 'Repeat Vertically', 'csf' ),
183
+ ),
184
+ ), $this->value['background-repeat'], $this->field_name(), 'field/background' );
185
+
186
+ }
187
+
188
+ //
189
+ // Background Attachment
190
+ if( ! empty( $args['background_attachment'] ) ) {
191
+
192
+ CSF::field( array(
193
+ 'id' => 'background-attachment',
194
+ 'type' => 'select',
195
+ 'options' => array(
196
+ '' => esc_html__( 'Background Attachment', 'csf' ),
197
+ 'scroll' => esc_html__( 'Scroll', 'csf' ),
198
+ 'fixed' => esc_html__( 'Fixed', 'csf' ),
199
+ ),
200
+ ), $this->value['background-attachment'], $this->field_name(), 'field/background' );
201
+
202
+ }
203
+
204
+ //
205
+ // Background Size
206
+ if( ! empty( $args['background_size'] ) ) {
207
+
208
+ CSF::field( array(
209
+ 'id' => 'background-size',
210
+ 'type' => 'select',
211
+ 'options' => array(
212
+ '' => esc_html__( 'Background Size', 'csf' ),
213
+ 'cover' => esc_html__( 'Cover', 'csf' ),
214
+ 'contain' => esc_html__( 'Contain', 'csf' ),
215
+ ),
216
+ ), $this->value['background-size'], $this->field_name(), 'field/background' );
217
+
218
+ }
219
+
220
+ //
221
+ // Background Origin
222
+ if( ! empty( $args['background_origin'] ) ) {
223
+
224
+ CSF::field( array(
225
+ 'id' => 'background-origin',
226
+ 'type' => 'select',
227
+ 'options' => array(
228
+ '' => esc_html__( 'Background Origin', 'csf' ),
229
+ 'padding-box' => esc_html__( 'Padding Box', 'csf' ),
230
+ 'border-box' => esc_html__( 'Border Box', 'csf' ),
231
+ 'content-box' => esc_html__( 'Content Box', 'csf' ),
232
+ ),
233
+ ), $this->value['background-origin'], $this->field_name(), 'field/background' );
234
+
235
+ }
236
+
237
+ //
238
+ // Background Clip
239
+ if( ! empty( $args['background_clip'] ) ) {
240
+
241
+ CSF::field( array(
242
+ 'id' => 'background-clip',
243
+ 'type' => 'select',
244
+ 'options' => array(
245
+ '' => esc_html__( 'Background Clip', 'csf' ),
246
+ 'border-box' => esc_html__( 'Border Box', 'csf' ),
247
+ 'padding-box' => esc_html__( 'Padding Box', 'csf' ),
248
+ 'content-box' => esc_html__( 'Content Box', 'csf' ),
249
+ ),
250
+ ), $this->value['background-clip'], $this->field_name(), 'field/background' );
251
+
252
+ }
253
+
254
+ //
255
+ // Background Blend Mode
256
+ if( ! empty( $args['background_blend_mode'] ) ) {
257
+
258
+ CSF::field( array(
259
+ 'id' => 'background-blend-mode',
260
+ 'type' => 'select',
261
+ 'options' => array(
262
+ '' => esc_html__( 'Background Blend Mode', 'csf' ),
263
+ 'normal' => esc_html__( 'Normal', 'csf' ),
264
+ 'multiply' => esc_html__( 'Multiply', 'csf' ),
265
+ 'screen' => esc_html__( 'Screen', 'csf' ),
266
+ 'overlay' => esc_html__( 'Overlay', 'csf' ),
267
+ 'darken' => esc_html__( 'Darken', 'csf' ),
268
+ 'lighten' => esc_html__( 'Lighten', 'csf' ),
269
+ 'color-dodge' => esc_html__( 'Color Dodge', 'csf' ),
270
+ 'saturation' => esc_html__( 'Saturation', 'csf' ),
271
+ 'color' => esc_html__( 'Color', 'csf' ),
272
+ 'luminosity' => esc_html__( 'Luminosity', 'csf' ),
273
+ ),
274
+ ), $this->value['background-blend-mode'], $this->field_name(), 'field/background' );
275
+
276
+ }
277
+
278
+ echo '</div>';
279
+
280
+ echo $this->field_after();
281
+
282
+ }
283
+
284
+ public function output() {
285
+
286
+ $output = '';
287
+ $bg_image = array();
288
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
289
+ $element = ( is_array( $this->field['output'] ) ) ? join( ',', $this->field['output'] ) : $this->field['output'];
290
+
291
+ // Background image and gradient
292
+ $background_color = ( ! empty( $this->value['background-color'] ) ) ? $this->value['background-color'] : '';
293
+ $background_gd_color = ( ! empty( $this->value['background-gradient-color'] ) ) ? $this->value['background-gradient-color'] : '';
294
+ $background_gd_direction = ( ! empty( $this->value['background-gradient-direction'] ) ) ? $this->value['background-gradient-direction'] : '';
295
+ $background_image = ( ! empty( $this->value['background-image']['url'] ) ) ? $this->value['background-image']['url'] : '';
296
+
297
+
298
+ if( $background_color && $background_gd_color ) {
299
+ $gd_direction = ( $background_gd_direction ) ? $background_gd_direction .',' : '';
300
+ $bg_image[] = 'linear-gradient('. $gd_direction . $background_color .','. $background_gd_color .')';
301
+ }
302
+
303
+ if( $background_image ) {
304
+ $bg_image[] = 'url('. $background_image .')';
305
+ }
306
+
307
+ if( ! empty( $bg_image ) ) {
308
+ $output .= 'background-image:'. implode( ',', $bg_image ) . $important .';';
309
+ }
310
+
311
+ // Common background properties
312
+ $properties = array( 'color', 'position', 'repeat', 'attachment', 'size', 'origin', 'clip', 'blend-mode' );
313
+
314
+ foreach( $properties as $property ) {
315
+ $property = 'background-'. $property;
316
+ if( ! empty( $this->value[$property] ) ) {
317
+ $output .= $property .':'. $this->value[$property] . $important .';';
318
+ }
319
+ }
320
+
321
+ if( $output ) {
322
+ $output = $element .'{'. $output .'}';
323
+ }
324
+
325
+ $this->parent->output_css .= $output;
326
+
327
+ return $output;
328
+
329
+ }
330
+
331
+ }
332
+ }
admin/views/framework/fields/backup/backup.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: backup
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_backup' ) ) {
11
+ class CSF_Field_backup extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $unique = $this->unique;
20
+ $nonce = wp_create_nonce( 'csf_backup_nonce' );
21
+ $export = add_query_arg( array( 'action' => 'csf-export', 'export' => $unique, 'nonce' => $nonce ), admin_url( 'admin-ajax.php' ) );
22
+
23
+ echo $this->field_before();
24
+
25
+ echo '<textarea name="csf_transient[csf_import_data]" class="csf-import-data"></textarea>';
26
+ echo '<button type="submit" class="button button-primary csf-confirm csf-import" data-unique="'. $unique .'" data-nonce="'. $nonce .'">'. esc_html__( 'Import', 'csf' ) .'</button>';
27
+ echo '<small>( '. esc_html__( 'copy-paste your backup string here', 'csf' ).' )</small>';
28
+
29
+ echo '<hr />';
30
+ echo '<textarea readonly="readonly" class="csf-export-data">'. json_encode( get_option( $unique ) ) .'</textarea>';
31
+ echo '<a href="'. esc_url( $export ) .'" class="button button-primary csf-export" target="_blank">'. esc_html__( 'Export and Download Backup', 'csf' ) .'</a>';
32
+
33
+ echo '<hr />';
34
+ echo '<button type="submit" name="csf_transient[csf_reset_all]" value="csf_reset_all" class="button csf-warning-primary csf-confirm csf-reset" data-unique="'. $unique .'" data-nonce="'. $nonce .'">'. esc_html__( 'Reset All', 'csf' ) .'</button>';
35
+ echo '<small class="csf-text-error">'. esc_html__( 'Please be sure for reset all of options.', 'csf' ) .'</small>';
36
+
37
+ echo $this->field_after();
38
+
39
+ }
40
+
41
+ }
42
+ }
admin/views/framework/fields/border/border.php ADDED
@@ -0,0 +1,178 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: border
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_border' ) ) {
11
+ class CSF_Field_border extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'top_icon' => '<i class="fa fa-long-arrow-up"></i>',
21
+ 'left_icon' => '<i class="fa fa-long-arrow-left"></i>',
22
+ 'bottom_icon' => '<i class="fa fa-long-arrow-down"></i>',
23
+ 'right_icon' => '<i class="fa fa-long-arrow-right"></i>',
24
+ 'all_icon' => '<i class="fa fa-arrows"></i>',
25
+ 'top_placeholder' => esc_html__( 'top', 'csf' ),
26
+ 'right_placeholder' => esc_html__( 'right', 'csf' ),
27
+ 'bottom_placeholder' => esc_html__( 'bottom', 'csf' ),
28
+ 'left_placeholder' => esc_html__( 'left', 'csf' ),
29
+ 'all_placeholder' => esc_html__( 'all', 'csf' ),
30
+ 'top' => true,
31
+ 'left' => true,
32
+ 'bottom' => true,
33
+ 'right' => true,
34
+ 'all' => false,
35
+ 'color' => true,
36
+ 'style' => true,
37
+ 'unit' => 'px',
38
+ ) );
39
+
40
+ $default_value = array(
41
+ 'top' => '',
42
+ 'right' => '',
43
+ 'bottom' => '',
44
+ 'left' => '',
45
+ 'color' => '',
46
+ 'style' => 'solid',
47
+ 'all' => '',
48
+ );
49
+
50
+ $border_props = array(
51
+ 'solid' => esc_html__( 'Solid', 'csf' ),
52
+ 'dashed' => esc_html__( 'Dashed', 'csf' ),
53
+ 'dotted' => esc_html__( 'Dotted', 'csf' ),
54
+ 'double' => esc_html__( 'Double', 'csf' ),
55
+ 'inset' => esc_html__( 'Inset', 'csf' ),
56
+ 'outset' => esc_html__( 'Outset', 'csf' ),
57
+ 'groove' => esc_html__( 'Groove', 'csf' ),
58
+ 'ridge' => esc_html__( 'ridge', 'csf' ),
59
+ 'none' => esc_html__( 'None', 'csf' )
60
+ );
61
+
62
+ $default_value = ( ! empty( $this->field['default'] ) ) ? wp_parse_args( $this->field['default'], $default_value ) : $default_value;
63
+
64
+ $value = wp_parse_args( $this->value, $default_value );
65
+
66
+ echo $this->field_before();
67
+
68
+ echo '<div class="csf--inputs">';
69
+
70
+ if( ! empty( $args['all'] ) ) {
71
+
72
+ $placeholder = ( ! empty( $args['all_placeholder'] ) ) ? ' placeholder="'. $args['all_placeholder'] .'"' : '';
73
+
74
+ echo '<div class="csf--input">';
75
+ echo ( ! empty( $args['all_icon'] ) ) ? '<span class="csf--label csf--icon">'. $args['all_icon'] .'</span>' : '';
76
+ echo '<input type="number" name="'. $this->field_name('[all]') .'" value="'. $value['all'] .'"'. $placeholder .' class="csf-input-number csf--is-unit" />';
77
+ echo ( ! empty( $args['unit'] ) ) ? '<span class="csf--label csf--unit">'. $args['unit'] .'</span>' : '';
78
+ echo '</div>';
79
+
80
+ } else {
81
+
82
+ $properties = array();
83
+
84
+ foreach ( array( 'top', 'right', 'bottom', 'left' ) as $prop ) {
85
+ if( ! empty( $args[$prop] ) ) {
86
+ $properties[] = $prop;
87
+ }
88
+ }
89
+
90
+ $properties = ( $properties === array( 'right', 'left' ) ) ? array_reverse( $properties ) : $properties;
91
+
92
+ foreach( $properties as $property ) {
93
+
94
+ $placeholder = ( ! empty( $args[$property.'_placeholder'] ) ) ? ' placeholder="'. $args[$property.'_placeholder'] .'"' : '';
95
+
96
+ echo '<div class="csf--input">';
97
+ echo ( ! empty( $args[$property.'_icon'] ) ) ? '<span class="csf--label csf--icon">'. $args[$property.'_icon'] .'</span>' : '';
98
+ echo '<input type="number" name="'. $this->field_name('['. $property .']') .'" value="'. $value[$property] .'"'. $placeholder .' class="csf-input-number csf--is-unit" />';
99
+ echo ( ! empty( $args['unit'] ) ) ? '<span class="csf--label csf--unit">'. $args['unit'] .'</span>' : '';
100
+ echo '</div>';
101
+
102
+ }
103
+
104
+ }
105
+
106
+ if( ! empty( $args['style'] ) ) {
107
+ echo '<div class="csf--input">';
108
+ echo '<select name="'. $this->field_name('[style]') .'">';
109
+ foreach( $border_props as $border_prop_key => $border_prop_value ) {
110
+ $selected = ( $value['style'] === $border_prop_key ) ? ' selected' : '';
111
+ echo '<option value="'. $border_prop_key .'"'. $selected .'>'. $border_prop_value .'</option>';
112
+ }
113
+ echo '</select>';
114
+ echo '</div>';
115
+ }
116
+
117
+ echo '</div>';
118
+
119
+ if( ! empty( $args['color'] ) ) {
120
+ $default_color_attr = ( ! empty( $default_value['color'] ) ) ? ' data-default-color="'. $default_value['color'] .'"' : '';
121
+ echo '<div class="csf--color">';
122
+ echo '<div class="csf-field-color">';
123
+ echo '<input type="text" name="'. $this->field_name('[color]') .'" value="'. $value['color'] .'" class="csf-color"'. $default_color_attr .' />';
124
+ echo '</div>';
125
+ echo '</div>';
126
+ }
127
+
128
+ echo '<div class="clear"></div>';
129
+
130
+ echo $this->field_after();
131
+
132
+ }
133
+
134
+ public function output() {
135
+
136
+ $output = '';
137
+ $unit = ( ! empty( $this->value['unit'] ) ) ? $this->value['unit'] : 'px';
138
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
139
+ $element = ( is_array( $this->field['output'] ) ) ? join( ',', $this->field['output'] ) : $this->field['output'];
140
+
141
+ // properties
142
+ $top = ( isset( $this->value['top'] ) && $this->value['top'] !== '' ) ? $this->value['top'] : '';
143
+ $right = ( isset( $this->value['right'] ) && $this->value['right'] !== '' ) ? $this->value['right'] : '';
144
+ $bottom = ( isset( $this->value['bottom'] ) && $this->value['bottom'] !== '' ) ? $this->value['bottom'] : '';
145
+ $left = ( isset( $this->value['left'] ) && $this->value['left'] !== '' ) ? $this->value['left'] : '';
146
+ $style = ( isset( $this->value['style'] ) && $this->value['style'] !== '' ) ? $this->value['style'] : '';
147
+ $color = ( isset( $this->value['color'] ) && $this->value['color'] !== '' ) ? $this->value['color'] : '';
148
+ $all = ( isset( $this->value['all'] ) && $this->value['all'] !== '' ) ? $this->value['all'] : '';
149
+
150
+ if( ! empty( $this->field['all'] ) && ( $all !== '' || $color !== '' ) ) {
151
+
152
+ $output = $element .'{';
153
+ $output .= ( $all !== '' ) ? 'border-width:'. $all . $unit . $important .';' : '';
154
+ $output .= ( $color !== '' ) ? 'border-color:'. $color . $important .';' : '';
155
+ $output .= ( $style !== '' ) ? 'border-style:'. $style . $important .';' : '';
156
+ $output .= '}';
157
+
158
+ } else if( $top !== '' || $right !== '' || $bottom !== '' || $left !== '' || $color !== '' ) {
159
+
160
+ $output = $element .'{';
161
+ $output .= ( $top !== '' ) ? 'border-top-width:'. $top . $unit . $important .';' : '';
162
+ $output .= ( $right !== '' ) ? 'border-right-width:'. $right . $unit . $important .';' : '';
163
+ $output .= ( $bottom !== '' ) ? 'border-bottom-width:'. $bottom . $unit . $important .';' : '';
164
+ $output .= ( $left !== '' ) ? 'border-left-width:'. $left . $unit . $important .';' : '';
165
+ $output .= ( $color !== '' ) ? 'border-color:'. $color . $important .';' : '';
166
+ $output .= ( $style !== '' ) ? 'border-style:'. $style . $important .';' : '';
167
+ $output .= '}';
168
+
169
+ }
170
+
171
+ $this->parent->output_css .= $output;
172
+
173
+ return $output;
174
+
175
+ }
176
+
177
+ }
178
+ }
admin/views/framework/fields/button_set/button_set.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: button_set
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_button_set' ) ) {
11
+ class CSF_Field_button_set extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'multiple' => false,
21
+ 'options' => array(),
22
+ ) );
23
+
24
+ $value = ( is_array( $this->value ) ) ? $this->value : array_filter( (array) $this->value );
25
+
26
+ echo $this->field_before();
27
+
28
+ if( ! empty( $args['options'] ) ) {
29
+
30
+ echo '<div class="csf-siblings csf--button-group" data-multiple="'. $args['multiple'] .'">';
31
+
32
+ foreach( $args['options'] as $key => $option ) {
33
+
34
+ $type = ( $args['multiple'] ) ? 'checkbox' : 'radio';
35
+ $extra = ( $args['multiple'] ) ? '[]' : '';
36
+ $active = ( in_array( $key, $value ) || ( empty( $value ) && empty( $key ) ) ) ? ' csf--active' : '';
37
+ $checked = ( in_array( $key, $value ) || ( empty( $value ) && empty( $key ) ) ) ? ' checked' : '';
38
+
39
+ echo '<div class="csf--sibling csf--button'. $active .'">';
40
+ echo '<input type="'. $type .'" name="'. $this->field_name( $extra ) .'" value="'. $key .'"'. $this->field_attributes() . $checked .'/>';
41
+ echo $option;
42
+ echo '</div>';
43
+
44
+ }
45
+
46
+ echo '</div>';
47
+
48
+ }
49
+
50
+ echo '<div class="clear"></div>';
51
+
52
+ echo $this->field_after();
53
+
54
+ }
55
+
56
+ }
57
+ }
admin/views/framework/fields/checkbox/checkbox.php ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: checkbox
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_checkbox' ) ) {
11
+ class CSF_Field_checkbox extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'inline' => false,
21
+ 'query_args' => array(),
22
+ ) );
23
+
24
+ $inline_class = ( $args['inline'] ) ? ' class="csf--inline-list"' : '';
25
+
26
+ echo $this->field_before();
27
+
28
+ if( isset( $this->field['options'] ) ) {
29
+
30
+ $value = ( is_array( $this->value ) ) ? $this->value : array_filter( (array) $this->value );
31
+ $options = $this->field['options'];
32
+ $options = ( is_array( $options ) ) ? $options : array_filter( $this->field_data( $options, false, $args['query_args'] ) );
33
+
34
+ if( is_array( $options ) && ! empty( $options ) ) {
35
+
36
+ echo '<ul'. $inline_class .'>';
37
+ foreach ( $options as $option_key => $option_value ) {
38
+
39
+ if( is_array( $option_value ) && ! empty( $option_value ) ) {
40
+
41
+ echo '<li>';
42
+ echo '<ul>';
43
+ echo '<li><strong>'. $option_key .'</strong></li>';
44
+ foreach( $option_value as $sub_key => $sub_value ) {
45
+ $checked = ( in_array( $sub_key, $value ) ) ? ' checked' : '';
46
+ echo '<li><label><input type="checkbox" name="'. $this->field_name( '[]' ) .'" value="'. $sub_key .'"'. $this->field_attributes() . $checked .'/> '. $sub_value .'</label></li>';
47
+ }
48
+ echo '</ul>';
49
+ echo '</li>';
50
+
51
+ } else {
52
+
53
+ $checked = ( in_array( $option_key, $value ) ) ? ' checked' : '';
54
+ echo '<li><label><input type="checkbox" name="'. $this->field_name( '[]' ) .'" value="'. $option_key .'"'. $this->field_attributes() . $checked .'/> '. $option_value .'</label></li>';
55
+
56
+ }
57
+
58
+ }
59
+ echo '</ul>';
60
+
61
+ } else {
62
+
63
+ echo ( ! empty( $this->field['empty_message'] ) ) ? $this->field['empty_message'] : esc_html__( 'No data provided for this option type.', 'csf' );
64
+
65
+ }
66
+
67
+ } else {
68
+
69
+ echo '<label class="csf-checkbox">';
70
+ echo '<input type="hidden" name="'. $this->field_name() .'" value="'. $this->value .'" class="csf--input"'. $this->field_attributes() .'/>';
71
+ echo '<input type="checkbox" name="_pseudo" class="csf--checkbox"'. checked( $this->value, 1, false ) .'/>';
72
+ echo ( ! empty( $this->field['label'] ) ) ? ' '. $this->field['label'] : '';
73
+ echo '</label>';
74
+
75
+ }
76
+
77
+ echo $this->field_after();
78
+
79
+ }
80
+
81
+ }
82
+ }
admin/views/framework/fields/code_editor/code_editor.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: code_editor
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_code_editor' ) ) {
11
+ class CSF_Field_code_editor extends CSF_Fields {
12
+
13
+ public $version = '5.41.0';
14
+ public $cdn_url = 'https://cdn.jsdelivr.net/npm/codemirror@';
15
+
16
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
17
+ parent::__construct( $field, $value, $unique, $where, $parent );
18
+ }
19
+
20
+ public function render() {
21
+
22
+ $default_settings = array(
23
+ 'tabSize' => 2,
24
+ 'lineNumbers' => true,
25
+ 'theme' => 'default',
26
+ 'mode' => 'htmlmixed',
27
+ 'cdnURL' => $this->cdn_url . $this->version,
28
+ );
29
+
30
+ $settings = ( ! empty( $this->field['settings'] ) ) ? $this->field['settings'] : array();
31
+ $settings = wp_parse_args( $settings, $default_settings );
32
+ $encoded = htmlspecialchars( json_encode( $settings ) );
33
+
34
+ echo $this->field_before();
35
+ echo '<textarea name="'. $this->field_name() .'"'. $this->field_attributes() .' data-editor="'. $encoded .'">'. $this->value .'</textarea>';
36
+ echo $this->field_after();
37
+
38
+ }
39
+
40
+ public function enqueue() {
41
+
42
+ // Do not loads CodeMirror in revslider page.
43
+ if( in_array( csf_get_var( 'page' ), array( 'revslider' ) ) ) { return; }
44
+
45
+ if( ! wp_script_is( 'csf-codemirror' ) ) {
46
+ wp_enqueue_script( 'csf-codemirror', $this->cdn_url . $this->version .'/lib/codemirror.min.js', array( 'csf' ), $this->version, true );
47
+ wp_enqueue_script( 'csf-codemirror-loadmode', $this->cdn_url . $this->version .'/addon/mode/loadmode.min.js', array( 'csf-codemirror' ), $this->version, true );
48
+ }
49
+
50
+ if( ! wp_style_is( 'csf-codemirror' ) ) {
51
+ wp_enqueue_style( 'csf-codemirror', $this->cdn_url . $this->version .'/lib/codemirror.min.css', array(), $this->version );
52
+ }
53
+
54
+ }
55
+
56
+ }
57
+ }
admin/views/framework/fields/color/color.php ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: color
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_color' ) ) {
11
+ class CSF_Field_color extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $default_attr = ( ! empty( $this->field['default'] ) ) ? ' data-default-color="'. $this->field['default'] .'"' : '';
20
+
21
+ echo $this->field_before();
22
+ echo '<input type="text" name="'. $this->field_name() .'" value="'. $this->value .'" class="csf-color"'. $default_attr . $this->field_attributes() .'/>';
23
+ echo $this->field_after();
24
+
25
+ }
26
+
27
+ public function output() {
28
+
29
+ $output = '';
30
+ $elements = ( is_array( $this->field['output'] ) ) ? $this->field['output'] : array_filter( (array) $this->field['output'] );
31
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
32
+ $mode = ( ! empty( $this->field['output_mode'] ) ) ? $this->field['output_mode'] : 'color';
33
+
34
+ if( ! empty( $elements ) && isset( $this->value ) && $this->value !== '' ) {
35
+ foreach( $elements as $key_property => $element ) {
36
+ if( is_numeric( $key_property ) ) {
37
+ $output = implode( ',', $elements ) .'{'. $mode .':'. $this->value . $important .';}';
38
+ break;
39
+ } else {
40
+ $output .= $element .'{'. $key_property .':'. $this->value . $important .'}';
41
+ }
42
+ }
43
+ }
44
+
45
+ $this->parent->output_css .= $output;
46
+
47
+ return $output;
48
+
49
+ }
50
+
51
+ }
52
+ }
admin/views/framework/fields/color_group/color_group.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: color_group
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_color_group' ) ) {
11
+ class CSF_Field_color_group extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $options = ( ! empty( $this->field['options'] ) ) ? $this->field['options'] : array();
20
+
21
+ echo $this->field_before();
22
+
23
+ if( ! empty( $options ) ) {
24
+ foreach( $options as $key => $option ) {
25
+
26
+ $color_value = ( ! empty( $this->value[$key] ) ) ? $this->value[$key] : '';
27
+ $default_attr = ( ! empty( $this->field['default'][$key] ) ) ? ' data-default-color="'. $this->field['default'][$key] .'"' : '';
28
+
29
+ echo '<div class="csf--left csf-field-color">';
30
+ echo '<div class="csf--title">'. $option .'</div>';
31
+ echo '<input type="text" name="'. $this->field_name('['. $key .']') .'" value="'. $color_value .'" class="csf-color"'. $default_attr . $this->field_attributes() .'/>';
32
+ echo '</div>';
33
+
34
+ }
35
+ }
36
+
37
+ echo '<div class="clear"></div>';
38
+
39
+ echo $this->field_after();
40
+
41
+ }
42
+
43
+ }
44
+ }
admin/views/framework/fields/content/content.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: content
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_content' ) ) {
11
+ class CSF_Field_content extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+ echo $this->field['content'];
19
+ }
20
+
21
+ }
22
+ }
admin/views/framework/fields/date/date.php ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: date
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_date' ) ) {
11
+ class CSF_Field_date extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $default_settings = array(
20
+ 'dateFormat' => 'mm/dd/yy',
21
+ );
22
+
23
+ $settings = ( ! empty( $this->field['settings'] ) ) ? $this->field['settings'] : array();
24
+ $settings = wp_parse_args( $settings, $default_settings );
25
+
26
+ echo $this->field_before();
27
+
28
+ if( ! empty( $this->field['from_to'] ) ) {
29
+
30
+ $args = wp_parse_args( $this->field, array(
31
+ 'text_from' => esc_html__( 'From', 'csf' ),
32
+ 'text_to' => esc_html__( 'To', 'csf' ),
33
+ ) );
34
+
35
+ $value = wp_parse_args( $this->value, array(
36
+ 'from' => '',
37
+ 'to' => '',
38
+ ) );
39
+
40
+ echo '<label class="csf--from">'. $args['text_from'] .' <input type="text" name="'. $this->field_name('[from]') .'" value="'. $value['from'] .'"'. $this->field_attributes() .'/></label>';
41
+ echo '<label class="csf--to">'. $args['text_to'] .' <input type="text" name="'. $this->field_name('[to]') .'" value="'. $value['to'] .'"'. $this->field_attributes() .'/></label>';
42
+
43
+ } else {
44
+
45
+ echo '<input type="text" name="'. $this->field_name() .'" value="'. $this->value .'"'. $this->field_attributes() .'/>';
46
+
47
+ }
48
+
49
+ echo '<div class="csf-date-settings" data-settings="'. esc_attr( json_encode( $settings ) ) .'"></div>';
50
+
51
+ echo $this->field_after();
52
+
53
+ }
54
+
55
+ public function enqueue() {
56
+
57
+ if( ! wp_script_is( 'jquery-ui-datepicker' ) ) {
58
+ wp_enqueue_script( 'jquery-ui-datepicker' );
59
+ }
60
+
61
+ }
62
+
63
+ }
64
+ }
admin/views/framework/fields/dimensions/dimensions.php ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: dimensions
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_dimensions' ) ) {
11
+ class CSF_Field_dimensions extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'width_icon' => '<i class="fa fa-arrows-h"></i>',
21
+ 'height_icon' => '<i class="fa fa-arrows-v"></i>',
22
+ 'width_placeholder' => esc_html__( 'width', 'csf' ),
23
+ 'height_placeholder' => esc_html__( 'height', 'csf' ),
24
+ 'width' => true,
25
+ 'height' => true,
26
+ 'unit' => true,
27
+ 'show_units' => true,
28
+ 'units' => array( 'px', '%', 'em' )
29
+ ) );
30
+
31
+ $default_values = array(
32
+ 'width' => '',
33
+ 'height' => '',
34
+ 'unit' => 'px',
35
+ );
36
+
37
+ $value = wp_parse_args( $this->value, $default_values );
38
+ $unit = ( count( $args['units'] ) === 1 && ! empty( $args['unit'] ) ) ? $args['units'][0] : '';
39
+ $is_unit = ( ! empty( $unit ) ) ? ' csf--is-unit' : '';
40
+
41
+ echo $this->field_before();
42
+
43
+ echo '<div class="csf--inputs">';
44
+
45
+ if( ! empty( $args['width'] ) ) {
46
+ $placeholder = ( ! empty( $args['width_placeholder'] ) ) ? ' placeholder="'. $args['width_placeholder'] .'"' : '';
47
+ echo '<div class="csf--input">';
48
+ echo ( ! empty( $args['width_icon'] ) ) ? '<span class="csf--label csf--icon">'. $args['width_icon'] .'</span>' : '';
49
+ echo '<input type="number" name="'. $this->field_name('[width]') .'" value="'. $value['width'] .'"'. $placeholder .' class="csf-input-number'. $is_unit .'" />';
50
+ echo ( ! empty( $unit ) ) ? '<span class="csf--label csf--unit">'. $args['units'][0] .'</span>' : '';
51
+ echo '</div>';
52
+ }
53
+
54
+ if( ! empty( $args['height'] ) ) {
55
+ $placeholder = ( ! empty( $args['height_placeholder'] ) ) ? ' placeholder="'. $args['height_placeholder'] .'"' : '';
56
+ echo '<div class="csf--input">';
57
+ echo ( ! empty( $args['height_icon'] ) ) ? '<span class="csf--label csf--icon">'. $args['height_icon'] .'</span>' : '';
58
+ echo '<input type="number" name="'. $this->field_name('[height]') .'" value="'. $value['height'] .'"'. $placeholder .' class="csf-input-number'. $is_unit .'" />';
59
+ echo ( ! empty( $unit ) ) ? '<span class="csf--label csf--unit">'. $args['units'][0] .'</span>' : '';
60
+ echo '</div>';
61
+ }
62
+
63
+ if( ! empty( $args['unit'] ) && ! empty( $args['show_units'] ) && count( $args['units'] ) > 1 ) {
64
+ echo '<div class="csf--input">';
65
+ echo '<select name="'. $this->field_name('[unit]') .'">';
66
+ foreach( $args['units'] as $unit ) {
67
+ $selected = ( $value['unit'] === $unit ) ? ' selected' : '';
68
+ echo '<option value="'. $unit .'"'. $selected .'>'. $unit .'</option>';
69
+ }
70
+ echo '</select>';
71
+ echo '</div>';
72
+ }
73
+
74
+ echo '</div>';
75
+
76
+ echo $this->field_after();
77
+
78
+ }
79
+
80
+ public function output() {
81
+
82
+ $output = '';
83
+ $element = ( is_array( $this->field['output'] ) ) ? join( ',', $this->field['output'] ) : $this->field['output'];
84
+ $prefix = ( ! empty( $this->field['output_prefix'] ) ) ? $this->field['output_prefix'] .'-' : '';
85
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
86
+ $unit = ( ! empty( $this->value['unit'] ) ) ? $this->value['unit'] : 'px';
87
+ $width = ( isset( $this->value['width'] ) && $this->value['width'] !== '' ) ? $prefix .'width:'. $this->value['width'] . $unit . $important .';' : '';
88
+ $height = ( isset( $this->value['height'] ) && $this->value['width'] !== '' ) ? $prefix .'height:'. $this->value['height'] . $unit . $important .';' : '';
89
+
90
+ if( $width !== '' || $height !== '' ) {
91
+ $output = $element .'{'. $width . $height .'}';
92
+ }
93
+
94
+ $this->parent->output_css .= $output;
95
+
96
+ return $output;
97
+
98
+ }
99
+
100
+ }
101
+ }
admin/views/framework/fields/fieldset/fieldset.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: fieldset
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_fieldset' ) ) {
11
+ class CSF_Field_fieldset extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ echo $this->field_before();
20
+
21
+ echo '<div class="csf-fieldset-content">';
22
+
23
+ foreach ( $this->field['fields'] as $field ) {
24
+
25
+ $field_id = ( isset( $field['id'] ) ) ? $field['id'] : '';
26
+ $field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
27
+ $field_value = ( isset( $this->value[$field_id] ) ) ? $this->value[$field_id] : $field_default;
28
+ $unique_id = ( ! empty( $this->unique ) ) ? $this->unique .'['. $this->field['id'] .']' : $this->field['id'];
29
+
30
+ CSF::field( $field, $field_value, $unique_id, 'field/fieldset' );
31
+
32
+ }
33
+
34
+ echo '</div>';
35
+
36
+ echo $this->field_after();
37
+
38
+ }
39
+
40
+ }
41
+ }
admin/views/framework/fields/gallery/gallery.php ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: gallery
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_gallery' ) ) {
11
+ class CSF_Field_gallery extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'add_title' => esc_html__( 'Add Gallery', 'csf' ),
21
+ 'edit_title' => esc_html__( 'Edit Gallery', 'csf' ),
22
+ 'clear_title' => esc_html__( 'Clear', 'csf' ),
23
+ ) );
24
+
25
+ $hidden = ( empty( $this->value ) ) ? ' hidden' : '';
26
+
27
+ echo $this->field_before();
28
+
29
+ echo '<ul>';
30
+
31
+ if( ! empty( $this->value ) ) {
32
+
33
+ $values = explode( ',', $this->value );
34
+
35
+ foreach ( $values as $id ) {
36
+ $attachment = wp_get_attachment_image_src( $id, 'thumbnail' );
37
+ echo '<li><img src="'. $attachment[0] .'" /></li>';
38
+ }
39
+
40
+ }
41
+
42
+ echo '</ul>';
43
+ echo '<a href="#" class="button button-primary csf-button">'. $args['add_title'] .'</a>';
44
+ echo '<a href="#" class="button csf-edit-gallery'. $hidden .'">'. $args['edit_title'] .'</a>';
45
+ echo '<a href="#" class="button csf-warning-primary csf-clear-gallery'. $hidden .'">'. $args['clear_title'] .'</a>';
46
+ echo '<input type="text" name="'. $this->field_name() .'" value="'. $this->value .'"'. $this->field_attributes() .'/>';
47
+
48
+ echo $this->field_after();
49
+
50
+ }
51
+
52
+ }
53
+ }
admin/views/framework/fields/group/group.php ADDED
@@ -0,0 +1,145 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: group
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_group' ) ) {
11
+ class CSF_Field_group extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'max' => 0,
21
+ 'min' => 0,
22
+ 'fields' => array(),
23
+ 'button_title' => esc_html__( 'Add New', 'csf' ),
24
+ 'accordion_title_prefix' => '',
25
+ 'accordion_title_number' => false,
26
+ 'accordion_title_auto' => true,
27
+ ) );
28
+
29
+ $title_prefix = ( ! empty( $args['accordion_title_prefix'] ) ) ? $args['accordion_title_prefix'] : '';
30
+ $title_number = ( ! empty( $args['accordion_title_number'] ) ) ? true : false;
31
+ $title_auto = ( ! empty( $args['accordion_title_auto'] ) ) ? true : false;
32
+
33
+ if( ! empty( $this->parent ) && preg_match( '/'. preg_quote( '['. $this->field['id'] .']' ) .'/', $this->parent ) ) {
34
+
35
+ echo '<div class="csf-notice csf-notice-danger">'. esc_html__( 'Error: Nested field id can not be same with another nested field id.', 'csf' ) .'</div>';
36
+
37
+ } else {
38
+
39
+ echo $this->field_before();
40
+
41
+ echo '<div class="csf-cloneable-item csf-cloneable-hidden">';
42
+
43
+ echo '<div class="csf-cloneable-helper">';
44
+ echo '<i class="csf-cloneable-sort fa fa-arrows"></i>';
45
+ echo '<i class="csf-cloneable-clone fa fa-clone"></i>';
46
+ echo '<i class="csf-cloneable-remove csf-confirm fa fa-times" data-confirm="'. esc_html__( 'Are you sure to delete this item?', 'csf' ) .'"></i>';
47
+ echo '</div>';
48
+
49
+ echo '<h4 class="csf-cloneable-title">';
50
+ echo '<span class="csf-cloneable-text">';
51
+ echo ( $title_number ) ? '<span class="csf-cloneable-title-number"></span>' : '';
52
+ echo ( $title_prefix ) ? '<span class="csf-cloneable-title-prefix">'. $title_prefix .'</span>' : '';
53
+ echo ( $title_auto ) ? '<span class="csf-cloneable-value"><span class="csf-cloneable-placeholder"></span></span>' : '';
54
+ echo '</span>';
55
+ echo '</h4>';
56
+
57
+ echo '<div class="csf-cloneable-content">';
58
+ foreach ( $this->field['fields'] as $field ) {
59
+
60
+ $field_parent = $this->parent .'['. $this->field['id'] .']';
61
+ $field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
62
+
63
+ CSF::field( $field, $field_default, '_nonce', 'field/group', $field_parent );
64
+
65
+ }
66
+ echo '</div>';
67
+
68
+ echo '</div>';
69
+
70
+ echo '<div class="csf-cloneable-wrapper csf-data-wrapper" data-title-number="'. $title_number .'" data-unique-id="'. $this->unique .'" data-field-id="['. $this->field['id'] .']" data-max="'. $args['max'] .'" data-min="'. $args['min'] .'">';
71
+
72
+ if( ! empty( $this->value ) ) {
73
+
74
+ $num = 0;
75
+
76
+ foreach ( $this->value as $value ) {
77
+
78
+ $first_id = ( isset( $this->field['fields'][0]['id'] ) ) ? $this->field['fields'][0]['id'] : '';
79
+ $first_value = ( isset( $value[$first_id] ) ) ? $value[$first_id] : '';
80
+
81
+ echo '<div class="csf-cloneable-item">';
82
+
83
+ echo '<div class="csf-cloneable-helper">';
84
+ echo '<i class="csf-cloneable-sort fa fa-arrows"></i>';
85
+ echo '<i class="csf-cloneable-clone fa fa-clone"></i>';
86
+ echo '<i class="csf-cloneable-remove csf-confirm fa fa-times" data-confirm="'. esc_html__( 'Are you sure to delete this item?', 'csf' ) .'"></i>';
87
+ echo '</div>';
88
+
89
+ echo '<h4 class="csf-cloneable-title">';
90
+ echo '<span class="csf-cloneable-text">';
91
+ echo ( $title_number ) ? '<span class="csf-cloneable-title-number">'. ( $num+1 ) .'.</span>' : '';
92
+ echo ( $title_prefix ) ? '<span class="csf-cloneable-title-prefix">'. $title_prefix .'</span>' : '';
93
+ echo ( $title_auto ) ? '<span class="csf-cloneable-value">' . $first_value .'</span>' : '';
94
+ echo '</span>';
95
+ echo '</h4>';
96
+
97
+ echo '<div class="csf-cloneable-content">';
98
+
99
+ foreach ( $this->field['fields'] as $field ) {
100
+
101
+ $field_parent = $this->parent .'['. $this->field['id'] .']';
102
+ $field_unique = ( ! empty( $this->unique ) ) ? $this->unique .'['. $this->field['id'] .']['. $num .']' : $this->field['id'] .'['. $num .']';
103
+ $field_value = ( isset( $field['id'] ) && isset( $value[$field['id']] ) ) ? $value[$field['id']] : '';
104
+
105
+ CSF::field( $field, $field_value, $field_unique, 'field/group', $field_parent );
106
+
107
+ }
108
+
109
+ echo '</div>';
110
+
111
+ echo '</div>';
112
+
113
+ $num++;
114
+
115
+ }
116
+
117
+ }
118
+
119
+ echo '</div>';
120
+
121
+ echo '<div class="csf-cloneable-alert csf-cloneable-max">'. esc_html__( 'You can not add more than', 'csf' ) .' '. $args['max'] .'</div>';
122
+ echo '<div class="csf-cloneable-alert csf-cloneable-min">'. esc_html__( 'You can not remove less than', 'csf' ) .' '. $args['min'] .'</div>';
123
+
124
+ echo '<a href="#" class="button button-primary csf-cloneable-add">'. $args['button_title'] .'</a>';
125
+
126
+ echo $this->field_after();
127
+
128
+ }
129
+
130
+ }
131
+
132
+ public function enqueue() {
133
+
134
+ if( ! wp_script_is( 'jquery-ui-accordion' ) ) {
135
+ wp_enqueue_script( 'jquery-ui-accordion' );
136
+ }
137
+
138
+ if( ! wp_script_is( 'jquery-ui-sortable' ) ) {
139
+ wp_enqueue_script( 'jquery-ui-sortable' );
140
+ }
141
+
142
+ }
143
+
144
+ }
145
+ }
admin/views/framework/fields/heading/heading.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: heading
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_heading' ) ) {
11
+ class CSF_Field_heading extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ echo ( ! empty( $this->field['content'] ) ) ? $this->field['content'] : '';
20
+
21
+ }
22
+
23
+ }
24
+ }
admin/views/framework/fields/icon/default-icons.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ //
3
+ //
4
+ // Default Icons
5
+ // We are using Font-awesome icons as default
6
+ //
7
+ //
8
+ function csf_get_default_icons() {
9
+ return array( array(
10
+ 'title' => 'Font Awesome',
11
+ 'icons' => array( 'fa fa-glass','fa fa-music','fa fa-search','fa fa-envelope-o','fa fa-heart','fa fa-star','fa fa-star-o','fa fa-user','fa fa-film','fa fa-th-large','fa fa-th','fa fa-th-list','fa fa-check','fa fa-times','fa fa-search-plus','fa fa-search-minus','fa fa-power-off','fa fa-signal','fa fa-cog','fa fa-trash-o','fa fa-home','fa fa-file-o','fa fa-clock-o','fa fa-road','fa fa-download','fa fa-arrow-circle-o-down','fa fa-arrow-circle-o-up','fa fa-inbox','fa fa-play-circle-o','fa fa-repeat','fa fa-refresh','fa fa-list-alt','fa fa-lock','fa fa-flag','fa fa-headphones','fa fa-volume-off','fa fa-volume-down','fa fa-volume-up','fa fa-qrcode','fa fa-barcode','fa fa-tag','fa fa-tags','fa fa-book','fa fa-bookmark','fa fa-print','fa fa-camera','fa fa-font','fa fa-bold','fa fa-italic','fa fa-text-height','fa fa-text-width','fa fa-align-left','fa fa-align-center','fa fa-align-right','fa fa-align-justify','fa fa-list','fa fa-outdent','fa fa-indent','fa fa-video-camera','fa fa-picture-o','fa fa-pencil','fa fa-map-marker','fa fa-adjust','fa fa-tint','fa fa-pencil-square-o','fa fa-share-square-o','fa fa-check-square-o','fa fa-arrows','fa fa-step-backward','fa fa-fast-backward','fa fa-backward','fa fa-play','fa fa-pause','fa fa-stop','fa fa-forward','fa fa-fast-forward','fa fa-step-forward','fa fa-eject','fa fa-chevron-left','fa fa-chevron-right','fa fa-plus-circle','fa fa-minus-circle','fa fa-times-circle','fa fa-check-circle','fa fa-question-circle','fa fa-info-circle','fa fa-crosshairs','fa fa-times-circle-o','fa fa-check-circle-o','fa fa-ban','fa fa-arrow-left','fa fa-arrow-right','fa fa-arrow-up','fa fa-arrow-down','fa fa-share','fa fa-expand','fa fa-compress','fa fa-plus','fa fa-minus','fa fa-asterisk','fa fa-exclamation-circle','fa fa-gift','fa fa-leaf','fa fa-fire','fa fa-eye','fa fa-eye-slash','fa fa-exclamation-triangle','fa fa-plane','fa fa-calendar','fa fa-random','fa fa-comment','fa fa-magnet','fa fa-chevron-up','fa fa-chevron-down','fa fa-retweet','fa fa-shopping-cart','fa fa-folder','fa fa-folder-open','fa fa-arrows-v','fa fa-arrows-h','fa fa-bar-chart','fa fa-twitter-square','fa fa-facebook-square','fa fa-camera-retro','fa fa-key','fa fa-cogs','fa fa-comments','fa fa-thumbs-o-up','fa fa-thumbs-o-down','fa fa-star-half','fa fa-heart-o','fa fa-sign-out','fa fa-linkedin-square','fa fa-thumb-tack','fa fa-external-link','fa fa-sign-in','fa fa-trophy','fa fa-github-square','fa fa-upload','fa fa-lemon-o','fa fa-phone','fa fa-square-o','fa fa-bookmark-o','fa fa-phone-square','fa fa-twitter','fa fa-facebook','fa fa-github','fa fa-unlock','fa fa-credit-card','fa fa-rss','fa fa-hdd-o','fa fa-bullhorn','fa fa-bell','fa fa-certificate','fa fa-hand-o-right','fa fa-hand-o-left','fa fa-hand-o-up','fa fa-hand-o-down','fa fa-arrow-circle-left','fa fa-arrow-circle-right','fa fa-arrow-circle-up','fa fa-arrow-circle-down','fa fa-globe','fa fa-wrench','fa fa-tasks','fa fa-filter','fa fa-briefcase','fa fa-arrows-alt','fa fa-users','fa fa-link','fa fa-cloud','fa fa-flask','fa fa-scissors','fa fa-files-o','fa fa-paperclip','fa fa-floppy-o','fa fa-square','fa fa-bars','fa fa-list-ul','fa fa-list-ol','fa fa-strikethrough','fa fa-underline','fa fa-table','fa fa-magic','fa fa-truck','fa fa-pinterest','fa fa-pinterest-square','fa fa-google-plus-square','fa fa-google-plus','fa fa-money','fa fa-caret-down','fa fa-caret-up','fa fa-caret-left','fa fa-caret-right','fa fa-columns','fa fa-sort','fa fa-sort-desc','fa fa-sort-asc','fa fa-envelope','fa fa-linkedin','fa fa-undo','fa fa-gavel','fa fa-tachometer','fa fa-comment-o','fa fa-comments-o','fa fa-bolt','fa fa-sitemap','fa fa-umbrella','fa fa-clipboard','fa fa-lightbulb-o','fa fa-exchange','fa fa-cloud-download','fa fa-cloud-upload','fa fa-user-md','fa fa-stethoscope','fa fa-suitcase','fa fa-bell-o','fa fa-coffee','fa fa-cutlery','fa fa-file-text-o','fa fa-building-o','fa fa-hospital-o','fa fa-ambulance','fa fa-medkit','fa fa-fighter-jet','fa fa-beer','fa fa-h-square','fa fa-plus-square','fa fa-angle-double-left','fa fa-angle-double-right','fa fa-angle-double-up','fa fa-angle-double-down','fa fa-angle-left','fa fa-angle-right','fa fa-angle-up','fa fa-angle-down','fa fa-desktop','fa fa-laptop','fa fa-tablet','fa fa-mobile','fa fa-circle-o','fa fa-quote-left','fa fa-quote-right','fa fa-spinner','fa fa-circle','fa fa-reply','fa fa-github-alt','fa fa-folder-o','fa fa-folder-open-o','fa fa-smile-o','fa fa-frown-o','fa fa-meh-o','fa fa-gamepad','fa fa-keyboard-o','fa fa-flag-o','fa fa-flag-checkered','fa fa-terminal','fa fa-code','fa fa-reply-all','fa fa-star-half-o','fa fa-location-arrow','fa fa-crop','fa fa-code-fork','fa fa-chain-broken','fa fa-question','fa fa-info','fa fa-exclamation','fa fa-superscript','fa fa-subscript','fa fa-eraser','fa fa-puzzle-piece','fa fa-microphone','fa fa-microphone-slash','fa fa-shield','fa fa-calendar-o','fa fa-fire-extinguisher','fa fa-rocket','fa fa-maxcdn','fa fa-chevron-circle-left','fa fa-chevron-circle-right','fa fa-chevron-circle-up','fa fa-chevron-circle-down','fa fa-html5','fa fa-css3','fa fa-anchor','fa fa-unlock-alt','fa fa-bullseye','fa fa-ellipsis-h','fa fa-ellipsis-v','fa fa-rss-square','fa fa-play-circle','fa fa-ticket','fa fa-minus-square','fa fa-minus-square-o','fa fa-level-up','fa fa-level-down','fa fa-check-square','fa fa-pencil-square','fa fa-external-link-square','fa fa-share-square','fa fa-compass','fa fa-caret-square-o-down','fa fa-caret-square-o-up','fa fa-caret-square-o-right','fa fa-eur','fa fa-gbp','fa fa-usd','fa fa-inr','fa fa-jpy','fa fa-rub','fa fa-krw','fa fa-btc','fa fa-file','fa fa-file-text','fa fa-sort-alpha-asc','fa fa-sort-alpha-desc','fa fa-sort-amount-asc','fa fa-sort-amount-desc','fa fa-sort-numeric-asc','fa fa-sort-numeric-desc','fa fa-thumbs-up','fa fa-thumbs-down','fa fa-youtube-square','fa fa-youtube','fa fa-xing','fa fa-xing-square','fa fa-youtube-play','fa fa-dropbox','fa fa-stack-overflow','fa fa-instagram','fa fa-flickr','fa fa-adn','fa fa-bitbucket','fa fa-bitbucket-square','fa fa-tumblr','fa fa-tumblr-square','fa fa-long-arrow-down','fa fa-long-arrow-up','fa fa-long-arrow-left','fa fa-long-arrow-right','fa fa-apple','fa fa-windows','fa fa-android','fa fa-linux','fa fa-dribbble','fa fa-skype','fa fa-foursquare','fa fa-trello','fa fa-female','fa fa-male','fa fa-gratipay','fa fa-sun-o','fa fa-moon-o','fa fa-archive','fa fa-bug','fa fa-vk','fa fa-weibo','fa fa-renren','fa fa-pagelines','fa fa-stack-exchange','fa fa-arrow-circle-o-right','fa fa-arrow-circle-o-left','fa fa-caret-square-o-left','fa fa-dot-circle-o','fa fa-wheelchair','fa fa-vimeo-square','fa fa-try','fa fa-plus-square-o','fa fa-space-shuttle','fa fa-slack','fa fa-envelope-square','fa fa-wordpress','fa fa-openid','fa fa-university','fa fa-graduation-cap','fa fa-yahoo','fa fa-google','fa fa-reddit','fa fa-reddit-square','fa fa-stumbleupon-circle','fa fa-stumbleupon','fa fa-delicious','fa fa-digg','fa fa-pied-piper-pp','fa fa-pied-piper-alt','fa fa-drupal','fa fa-joomla','fa fa-language','fa fa-fax','fa fa-building','fa fa-child','fa fa-paw','fa fa-spoon','fa fa-cube','fa fa-cubes','fa fa-behance','fa fa-behance-square','fa fa-steam','fa fa-steam-square','fa fa-recycle','fa fa-car','fa fa-taxi','fa fa-tree','fa fa-spotify','fa fa-deviantart','fa fa-soundcloud','fa fa-database','fa fa-file-pdf-o','fa fa-file-word-o','fa fa-file-excel-o','fa fa-file-powerpoint-o','fa fa-file-image-o','fa fa-file-archive-o','fa fa-file-audio-o','fa fa-file-video-o','fa fa-file-code-o','fa fa-vine','fa fa-codepen','fa fa-jsfiddle','fa fa-life-ring','fa fa-circle-o-notch','fa fa-rebel','fa fa-empire','fa fa-git-square','fa fa-git','fa fa-hacker-news','fa fa-tencent-weibo','fa fa-qq','fa fa-weixin','fa fa-paper-plane','fa fa-paper-plane-o','fa fa-history','fa fa-circle-thin','fa fa-header','fa fa-paragraph','fa fa-sliders','fa fa-share-alt','fa fa-share-alt-square','fa fa-bomb','fa fa-futbol-o','fa fa-tty','fa fa-binoculars','fa fa-plug','fa fa-slideshare','fa fa-twitch','fa fa-yelp','fa fa-newspaper-o','fa fa-wifi','fa fa-calculator','fa fa-paypal','fa fa-google-wallet','fa fa-cc-visa','fa fa-cc-mastercard','fa fa-cc-discover','fa fa-cc-amex','fa fa-cc-paypal','fa fa-cc-stripe','fa fa-bell-slash','fa fa-bell-slash-o','fa fa-trash','fa fa-copyright','fa fa-at','fa fa-eyedropper','fa fa-paint-brush','fa fa-birthday-cake','fa fa-area-chart','fa fa-pie-chart','fa fa-line-chart','fa fa-lastfm','fa fa-lastfm-square','fa fa-toggle-off','fa fa-toggle-on','fa fa-bicycle','fa fa-bus','fa fa-ioxhost','fa fa-angellist','fa fa-cc','fa fa-ils','fa fa-meanpath','fa fa-buysellads','fa fa-connectdevelop','fa fa-dashcube','fa fa-forumbee','fa fa-leanpub','fa fa-sellsy','fa fa-shirtsinbulk','fa fa-simplybuilt','fa fa-skyatlas','fa fa-cart-plus','fa fa-cart-arrow-down','fa fa-diamond','fa fa-ship','fa fa-user-secret','fa fa-motorcycle','fa fa-street-view','fa fa-heartbeat','fa fa-venus','fa fa-mars','fa fa-mercury','fa fa-transgender','fa fa-transgender-alt','fa fa-venus-double','fa fa-mars-double','fa fa-venus-mars','fa fa-mars-stroke','fa fa-mars-stroke-v','fa fa-mars-stroke-h','fa fa-neuter','fa fa-genderless','fa fa-facebook-official','fa fa-pinterest-p','fa fa-whatsapp','fa fa-server','fa fa-user-plus','fa fa-user-times','fa fa-bed','fa fa-viacoin','fa fa-train','fa fa-subway','fa fa-medium','fa fa-y-combinator','fa fa-optin-monster','fa fa-opencart','fa fa-expeditedssl','fa fa-battery-full','fa fa-battery-three-quarters','fa fa-battery-half','fa fa-battery-quarter','fa fa-battery-empty','fa fa-mouse-pointer','fa fa-i-cursor','fa fa-object-group','fa fa-object-ungroup','fa fa-sticky-note','fa fa-sticky-note-o','fa fa-cc-jcb','fa fa-cc-diners-club','fa fa-clone','fa fa-balance-scale','fa fa-hourglass-o','fa fa-hourglass-start','fa fa-hourglass-half','fa fa-hourglass-end','fa fa-hourglass','fa fa-hand-rock-o','fa fa-hand-paper-o','fa fa-hand-scissors-o','fa fa-hand-lizard-o','fa fa-hand-spock-o','fa fa-hand-pointer-o','fa fa-hand-peace-o','fa fa-trademark','fa fa-registered','fa fa-creative-commons','fa fa-gg','fa fa-gg-circle','fa fa-tripadvisor','fa fa-odnoklassniki','fa fa-odnoklassniki-square','fa fa-get-pocket','fa fa-wikipedia-w','fa fa-safari','fa fa-chrome','fa fa-firefox','fa fa-opera','fa fa-internet-explorer','fa fa-television','fa fa-contao','fa fa-500px','fa fa-amazon','fa fa-calendar-plus-o','fa fa-calendar-minus-o','fa fa-calendar-times-o','fa fa-calendar-check-o','fa fa-industry','fa fa-map-pin','fa fa-map-signs','fa fa-map-o','fa fa-map','fa fa-commenting','fa fa-commenting-o','fa fa-houzz','fa fa-vimeo','fa fa-black-tie','fa fa-fonticons','fa fa-reddit-alien','fa fa-edge','fa fa-credit-card-alt','fa fa-codiepie','fa fa-modx','fa fa-fort-awesome','fa fa-usb','fa fa-product-hunt','fa fa-mixcloud','fa fa-scribd','fa fa-pause-circle','fa fa-pause-circle-o','fa fa-stop-circle','fa fa-stop-circle-o','fa fa-shopping-bag','fa fa-shopping-basket','fa fa-hashtag','fa fa-bluetooth','fa fa-bluetooth-b','fa fa-percent','fa fa-gitlab','fa fa-wpbeginner','fa fa-wpforms','fa fa-envira','fa fa-universal-access','fa fa-wheelchair-alt','fa fa-question-circle-o','fa fa-blind','fa fa-audio-description','fa fa-volume-control-phone','fa fa-braille','fa fa-assistive-listening-systems','fa fa-american-sign-language-interpreting','fa fa-deaf','fa fa-glide','fa fa-glide-g','fa fa-sign-language','fa fa-low-vision','fa fa-viadeo','fa fa-viadeo-square','fa fa-snapchat','fa fa-snapchat-ghost','fa fa-snapchat-square','fa fa-pied-piper','fa fa-first-order','fa fa-yoast','fa fa-themeisle','fa fa-google-plus-official','fa fa-font-awesome','fa fa-handshake-o','fa fa-envelope-open','fa fa-envelope-open-o','fa fa-linode','fa fa-address-book','fa fa-address-book-o','fa fa-address-card','fa fa-address-card-o','fa fa-user-circle','fa fa-user-circle-o','fa fa-user-o','fa fa-id-badge','fa fa-id-card','fa fa-id-card-o','fa fa-quora','fa fa-free-code-camp','fa fa-telegram','fa fa-thermometer-full','fa fa-thermometer-three-quarters','fa fa-thermometer-half','fa fa-thermometer-quarter','fa fa-thermometer-empty','fa fa-shower','fa fa-bath','fa fa-podcast','fa fa-window-maximize','fa fa-window-minimize','fa fa-window-restore','fa fa-window-close','fa fa-window-close-o','fa fa-bandcamp','fa fa-grav','fa fa-etsy','fa fa-imdb','fa fa-ravelry','fa fa-eercast','fa fa-microchip','fa fa-snowflake-o','fa fa-superpowers','fa fa-wpexplorer','fa fa-meetup' )
12
+ ) );
13
+ }
admin/views/framework/fields/icon/icon.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: icon
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_icon' ) ) {
11
+ class CSF_Field_icon extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'button_title' => esc_html__( 'Add Icon', 'csf' ),
21
+ 'remove_title' => esc_html__( 'Remove Icon', 'csf' ),
22
+ ) );
23
+
24
+ echo $this->field_before();
25
+
26
+ $nonce = wp_create_nonce( 'csf_icon_nonce' );
27
+ $hidden = ( empty( $this->value ) ) ? ' hidden' : '';
28
+
29
+ echo '<div class="csf-icon-select">';
30
+ echo '<span class="csf-icon-preview'. $hidden .'"><i class="'. $this->value .'"></i></span>';
31
+ echo '<a href="#" class="button button-primary csf-icon-add" data-nonce="'. $nonce .'">'. $args['button_title'] .'</a>';
32
+ echo '<a href="#" class="button csf-warning-primary csf-icon-remove'. $hidden .'">'. $args['remove_title'] .'</a>';
33
+ echo '<input type="text" name="'. $this->field_name() .'" value="'. $this->value .'" class="csf-icon-value"'. $this->field_attributes() .' />';
34
+ echo '</div>';
35
+
36
+ echo $this->field_after();
37
+
38
+ }
39
+
40
+ }
41
+ }
admin/views/framework/fields/image_select/image_select.php ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: image_select
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_image_select' ) ) {
11
+ class CSF_Field_image_select extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'multiple' => false,
21
+ 'options' => array(),
22
+ ) );
23
+
24
+ $value = ( is_array( $this->value ) ) ? $this->value : array_filter( (array) $this->value );
25
+
26
+ echo $this->field_before();
27
+
28
+ if( ! empty( $args['options'] ) ) {
29
+
30
+ echo '<div class="csf-siblings csf--image-group" data-multiple="'. $args['multiple'] .'">';
31
+
32
+ $num = 1;
33
+
34
+ foreach( $args['options'] as $key => $option ) {
35
+
36
+ $type = ( $args['multiple'] ) ? 'checkbox' : 'radio';
37
+ $extra = ( $args['multiple'] ) ? '[]' : '';
38
+ $active = ( in_array( $key, $value ) ) ? ' csf--active' : '';
39
+ $checked = ( in_array( $key, $value ) ) ? ' checked' : '';
40
+
41
+ echo '<div class="csf--sibling csf--image'. $active .'">';
42
+ echo '<img src="'. $option .'" alt="img-'. $num++ .'" />';
43
+ echo '<input type="'. $type .'" name="'. $this->field_name( $extra ) .'" value="'. $key .'"'. $this->field_attributes() . $checked .'/>';
44
+ echo '</div>';
45
+
46
+ }
47
+
48
+ echo '</div>';
49
+
50
+ }
51
+
52
+ echo '<div class="clear"></div>';
53
+
54
+ echo $this->field_after();
55
+
56
+ }
57
+
58
+ public function output() {
59
+
60
+ $output = '';
61
+ $bg_image = array();
62
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
63
+ $elements = ( is_array( $this->field['output'] ) ) ? join( ',', $this->field['output'] ) : $this->field['output'];
64
+
65
+ if( ! empty( $elements ) && isset( $this->value ) && $this->value !== '' ) {
66
+ $output = $elements .'{background-image:url('. $this->value .')'. $important .';}';
67
+ }
68
+
69
+ $this->parent->output_css .= $output;
70
+
71
+ return $output;
72
+
73
+ }
74
+
75
+ }
76
+ }
admin/views/{tp-metabox → framework}/fields/index.php RENAMED
File without changes
admin/views/framework/fields/link_color/link_color.php ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: link_color
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_link_color' ) ) {
11
+ class CSF_Field_link_color extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'color' => true,
21
+ 'hover' => true,
22
+ 'active' => false,
23
+ 'visited' => false,
24
+ 'focus' => false,
25
+ ) );
26
+
27
+ $default_values = array(
28
+ 'color' => '',
29
+ 'hover' => '',
30
+ 'active' => '',
31
+ 'visited' => '',
32
+ 'focus' => '',
33
+ );
34
+
35
+ $color_props = array(
36
+ 'color' => esc_html__( 'Normal', 'csf' ),
37
+ 'hover' => esc_html__( 'Hover', 'csf' ),
38
+ 'active' => esc_html__( 'Active', 'csf' ),
39
+ 'visited' => esc_html__( 'Visited', 'csf' ),
40
+ 'focus' => esc_html__( 'Focus', 'csf' )
41
+ );
42
+
43
+ $value = wp_parse_args( $this->value, $default_values );
44
+
45
+ echo $this->field_before();
46
+
47
+ foreach ( $color_props as $color_prop_key => $color_prop_value ) {
48
+
49
+ if( ! empty( $args[$color_prop_key] ) ) {
50
+
51
+ $default_attr = ( ! empty( $this->field['default'][$color_prop_key] ) ) ? ' data-default-color="'. $this->field['default'][$color_prop_key] .'"' : '';
52
+
53
+ echo '<div class="csf--left csf-field-color">';
54
+ echo '<div class="csf--title">'. $color_prop_value .'</div>';
55
+ echo '<input type="text" name="'. $this->field_name('['. $color_prop_key .']') .'" value="'. $value[$color_prop_key] .'" class="csf-color"'. $default_attr . $this->field_attributes() .'/>';
56
+ echo '</div>';
57
+
58
+ }
59
+
60
+ }
61
+
62
+ echo $this->field_after();
63
+
64
+ }
65
+
66
+ public function output() {
67
+
68
+ $output = '';
69
+ $elements = ( is_array( $this->field['output'] ) ) ? $this->field['output'] : array_filter( (array) $this->field['output'] );
70
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
71
+
72
+ if( ! empty( $elements ) && isset( $this->value ) && $this->value !== '' ) {
73
+ foreach( $elements as $element ) {
74
+
75
+ if( isset( $this->value['color'] ) && $this->value['color'] !== '' ) { $output .= $element .'{color:'. $this->value['color'] . $important .';}'; }
76
+ if( isset( $this->value['hover'] ) && $this->value['hover'] !== '' ) { $output .= $element .':hover{color:'. $this->value['hover'] . $important .';}'; }
77
+ if( isset( $this->value['active'] ) && $this->value['active'] !== '' ) { $output .= $element .':active{color:'. $this->value['active'] . $important .';}'; }
78
+ if( isset( $this->value['visited'] ) && $this->value['visited'] !== '' ) { $output .= $element .':visited{color:'. $this->value['visited'] . $important .';}'; }
79
+ if( isset( $this->value['focus'] ) && $this->value['focus'] !== '' ) { $output .= $element .':focus{color:'. $this->value['focus'] . $important .';}'; }
80
+
81
+ }
82
+ }
83
+
84
+ $this->parent->output_css .= $output;
85
+
86
+ return $output;
87
+
88
+ }
89
+
90
+ }
91
+ }
admin/views/framework/fields/map/map.php ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: map
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_map' ) ) {
11
+ class CSF_Field_map extends CSF_Fields {
12
+
13
+ public $version = '1.5.1';
14
+ public $cdn_url = 'https://cdn.jsdelivr.net/npm/leaflet@';
15
+
16
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
17
+ parent::__construct( $field, $value, $unique, $where, $parent );
18
+ }
19
+
20
+ public function render() {
21
+
22
+ $args = wp_parse_args( $this->field, array(
23
+ 'placeholder' => esc_html__( 'Search your address...', 'csf' ),
24
+ 'latitude_text' => esc_html__( 'Latitude', 'csf' ),
25
+ 'longitude_text' => esc_html__( 'Longitude', 'csf' ),
26
+ 'address_field' => '',
27
+ 'height' => '',
28
+ ) );
29
+
30
+ $value = wp_parse_args( $this->value, array(
31
+ 'address' => '',
32
+ 'latitude' => '20',
33
+ 'longitude' => '0',
34
+ 'zoom' => '2',
35
+ ) );
36
+
37
+ $default_settings = array(
38
+ 'center' => array( $value['latitude'], $value['longitude'] ),
39
+ 'zoom' => $value['zoom'],
40
+ 'scrollWheelZoom' => false,
41
+ );
42
+
43
+ $settings = ( ! empty( $this->field['settings'] ) ) ? $this->field['settings'] : array();
44
+ $settings = wp_parse_args( $settings, $default_settings );
45
+ $encoded = htmlspecialchars( json_encode( $settings ) );
46
+
47
+ $style_attr = ( ! empty( $args['height'] ) ) ? ' style="min-height:'. $args['height'] .';"' : '';
48
+ $placeholder = ( ! empty( $args['placeholder'] ) ) ? array( 'placeholder' => $args['placeholder'] ) : '';
49
+
50
+ echo $this->field_before();
51
+
52
+ if( empty( $args['address_field'] ) ) {
53
+ echo '<div class="csf--map-search">';
54
+ echo '<input type="text" name="'. $this->field_name('[address]') .'" value="'. $value['address'] .'"'. $this->field_attributes( $placeholder ) .' />';
55
+ echo '</div>';
56
+ } else {
57
+ echo '<div class="csf--address-field" data-address-field="'. $args['address_field'] .'"></div>';
58
+ }
59
+
60
+ echo '<div class="csf--map-osm-wrap"><div class="csf--map-osm" data-map="'. $encoded .'"'. $style_attr .'></div></div>';
61
+
62
+ echo '<div class="csf--map-inputs">';
63
+
64
+ echo '<div class="csf--map-input">';
65
+ echo '<label>'. $args['latitude_text'] .'</label>';
66
+ echo '<input type="text" name="'. $this->field_name('[latitude]') .'" value="'. $value['latitude'] .'" class="csf--latitude" />';
67
+ echo '</div>';
68
+
69
+ echo '<div class="csf--map-input">';
70
+ echo '<label>'. $args['longitude_text'] .'</label>';
71
+ echo '<input type="text" name="'. $this->field_name('[longitude]') .'" value="'. $value['longitude'] .'" class="csf--longitude" />';
72
+ echo '</div>';
73
+
74
+ echo '</div>';
75
+
76
+ echo '<input type="hidden" name="'. $this->field_name('[zoom]') .'" value="'. $value['zoom'] .'" class="csf--zoom" />';
77
+
78
+ echo $this->field_after();
79
+
80
+ }
81
+
82
+ public function enqueue() {
83
+
84
+ if( ! wp_script_is( 'csf-leaflet' ) ) {
85
+ wp_enqueue_script( 'csf-leaflet', $this->cdn_url . $this->version .'/dist/leaflet.js', array( 'csf' ), $this->version, true );
86
+ }
87
+
88
+ if( ! wp_style_is( 'csf-leaflet' ) ) {
89
+ wp_enqueue_style( 'csf-leaflet', $this->cdn_url . $this->version .'/dist/leaflet.css', array(), $this->version );
90
+ }
91
+
92
+ if( ! wp_script_is( 'jquery-ui-autocomplete' ) ) {
93
+ wp_enqueue_script( 'jquery-ui-autocomplete' );
94
+ }
95
+
96
+ }
97
+
98
+ }
99
+ }
admin/views/framework/fields/media/media.php ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: media
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_media' ) ) {
11
+ class CSF_Field_media extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'url' => true,
21
+ 'preview' => true,
22
+ 'library' => array(),
23
+ 'button_title' => esc_html__( 'Upload', 'csf' ),
24
+ 'remove_title' => esc_html__( 'Remove', 'csf' ),
25
+ 'preview_size' => 'thumbnail',
26
+ ) );
27
+
28
+ $default_values = array(
29
+ 'url' => '',
30
+ 'id' => '',
31
+ 'width' => '',
32
+ 'height' => '',
33
+ 'thumbnail' => '',
34
+ 'alt' => '',
35
+ 'title' => '',
36
+ 'description' => ''
37
+ );
38
+
39
+ // fallback
40
+ if( is_numeric( $this->value ) ) {
41
+
42
+ $this->value = array(
43
+ 'id' => $this->value,
44
+ 'url' => wp_get_attachment_url( $this->value ),
45
+ 'thumbnail' => wp_get_attachment_image_src( $this->value, 'thumbnail', true )[0],
46
+ );
47
+
48
+ }
49
+
50
+ $this->value = wp_parse_args( $this->value, $default_values );
51
+
52
+ $library = ( is_array( $args['library'] ) ) ? $args['library'] : array_filter( (array) $args['library'] );
53
+ $library = ( ! empty( $library ) ) ? implode(',', $library ) : '';
54
+ $preview_src = ( $args['preview_size'] !== 'thumbnail' ) ? $this->value['url'] : $this->value['thumbnail'];
55
+ $hidden_url = ( empty( $args['url'] ) ) ? ' hidden' : '';
56
+ $hidden_auto = ( empty( $this->value['url'] ) ) ? ' hidden' : '';
57
+ $placeholder = ( empty( $this->field['placeholder'] ) ) ? ' placeholder="'. esc_html__( 'No media selected', 'csf' ) .'"' : '';
58
+
59
+ echo $this->field_before();
60
+
61
+ if( ! empty( $args['preview'] ) ) {
62
+ echo '<div class="csf--preview'. $hidden_auto .'">';
63
+ echo '<div class="csf-image-preview"><a href="#" class="csf--remove fa fa-times"></a><img src="'. $preview_src .'" class="csf--src" /></div>';
64
+ echo '</div>';
65
+ }
66
+
67
+ echo '<div class="csf--placeholder">';
68
+ echo '<input type="text" name="'. $this->field_name('[url]') .'" value="'. $this->value['url'] .'" class="csf--url'. $hidden_url .'" readonly="readonly"'. $this->field_attributes() . $placeholder .' />';
69
+ echo '<a href="#" class="button button-primary csf--button" data-library="'. esc_attr( $library ) .'" data-preview-size="'. esc_attr( $args['preview_size'] ) .'">'. $args['button_title'] .'</a>';
70
+ echo ( empty( $args['preview'] ) ) ? '<a href="#" class="button button-secondary csf-warning-primary csf--remove'. $hidden_auto .'">'. $args['remove_title'] .'</a>' : '';
71
+ echo '</div>';
72
+
73
+ echo '<input type="hidden" name="'. $this->field_name('[id]') .'" value="'. $this->value['id'] .'" class="csf--id"/>';
74
+ echo '<input type="hidden" name="'. $this->field_name('[width]') .'" value="'. $this->value['width'] .'" class="csf--width"/>';
75
+ echo '<input type="hidden" name="'. $this->field_name('[height]') .'" value="'. $this->value['height'] .'" class="csf--height"/>';
76
+ echo '<input type="hidden" name="'. $this->field_name('[thumbnail]') .'" value="'. $this->value['thumbnail'] .'" class="csf--thumbnail"/>';
77
+ echo '<input type="hidden" name="'. $this->field_name('[alt]') .'" value="'. $this->value['alt'] .'" class="csf--alt"/>';
78
+ echo '<input type="hidden" name="'. $this->field_name('[title]') .'" value="'. $this->value['title'] .'" class="csf--title"/>';
79
+ echo '<input type="hidden" name="'. $this->field_name('[description]') .'" value="'. $this->value['description'] .'" class="csf--description"/>';
80
+
81
+ echo $this->field_after();
82
+
83
+ }
84
+
85
+ }
86
+ }
admin/views/framework/fields/notice/notice.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: notice
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_notice' ) ) {
11
+ class CSF_Field_notice extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $style = ( ! empty( $this->field['style'] ) ) ? $this->field['style'] : 'normal';
20
+
21
+ echo ( ! empty( $this->field['content'] ) ) ? '<div class="csf-notice csf-notice-'. $style .'">'. $this->field['content'] .'</div>' : '';
22
+
23
+ }
24
+
25
+ }
26
+ }
admin/views/framework/fields/number/number.php ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: number
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_number' ) ) {
11
+ class CSF_Field_number extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'unit' => '',
21
+ ) );
22
+
23
+ echo $this->field_before();
24
+ echo '<div class="csf--wrap">';
25
+ echo '<input type="number" name="'. $this->field_name() .'" value="'. $this->value .'"'. $this->field_attributes( array( 'class' => 'csf-input-number' ) ) .'/>';
26
+ echo ( ! empty( $args['unit'] ) ) ? '<span class="csf--unit">'. $args['unit'] .'</span>' : '';
27
+ echo '</div>';
28
+ echo '<div class="clear"></div>';
29
+ echo $this->field_after();
30
+
31
+ }
32
+
33
+ public function output() {
34
+
35
+ $output = '';
36
+ $elements = ( is_array( $this->field['output'] ) ) ? $this->field['output'] : array_filter( (array) $this->field['output'] );
37
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
38
+ $mode = ( ! empty( $this->field['output_mode'] ) ) ? $this->field['output_mode'] : 'width';
39
+ $unit = ( ! empty( $this->field['unit'] ) ) ? $this->field['unit'] : 'px';
40
+
41
+ if( ! empty( $elements ) && isset( $this->value ) && $this->value !== '' ) {
42
+ foreach( $elements as $key_property => $element ) {
43
+ if( is_numeric( $key_property ) ) {
44
+ if( $mode ) {
45
+ $output = implode( ',', $elements ) .'{'. $mode .':'. $this->value . $unit . $important .';}';
46
+ }
47
+ break;
48
+ } else {
49
+ $output .= $element .'{'. $key_property .':'. $this->value . $unit . $important .'}';
50
+ }
51
+ }
52
+ }
53
+
54
+ $this->parent->output_css .= $output;
55
+
56
+ return $output;
57
+
58
+ }
59
+
60
+ }
61
+ }
admin/views/framework/fields/palette/palette.php ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: palette
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_palette' ) ) {
11
+ class CSF_Field_palette extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $palette = ( ! empty( $this->field['options'] ) ) ? $this->field['options'] : array();
20
+
21
+ echo $this->field_before();
22
+
23
+ if( ! empty( $palette ) ) {
24
+
25
+ echo '<div class="csf-siblings csf--palettes">';
26
+
27
+ foreach ( $palette as $key => $colors ) {
28
+
29
+ $active = ( $key === $this->value ) ? ' csf--active' : '';
30
+ $checked = ( $key === $this->value ) ? ' checked' : '';
31
+
32
+ echo '<div class="csf--sibling csf--palette'. $active .'">';
33
+
34
+ if( ! empty( $colors ) ) {
35
+
36
+ foreach( $colors as $color ) {
37
+
38
+ echo '<span style="background-color: '. $color .';"></span>';
39
+
40
+ }
41
+
42
+ }
43
+
44
+ echo '<input type="radio" name="'. $this->field_name() .'" value="'. $key .'"'. $this->field_attributes() . $checked .'/>';
45
+ echo '</div>';
46
+
47
+ }
48
+
49
+ echo '</div>';
50
+
51
+ }
52
+
53
+ echo '<div class="clear"></div>';
54
+
55
+ echo $this->field_after();
56
+
57
+ }
58
+
59
+ }
60
+ }
admin/views/framework/fields/radio/radio.php ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: radio
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_radio' ) ) {
11
+ class CSF_Field_radio extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'inline' => false,
21
+ 'query_args' => array(),
22
+ ) );
23
+
24
+ $inline_class = ( $args['inline'] ) ? ' class="csf--inline-list"' : '';
25
+
26
+ echo $this->field_before();
27
+
28
+ if( isset( $this->field['options'] ) ) {
29
+
30
+ $options = $this->field['options'];
31
+ $options = ( is_array( $options ) ) ? $options : array_filter( $this->field_data( $options, false, $args['query_args'] ) );
32
+
33
+ if( is_array( $options ) && ! empty( $options ) ) {
34
+
35
+ echo '<ul'. $inline_class .'>';
36
+ foreach ( $options as $option_key => $option_value ) {
37
+
38
+ if( is_array( $option_value ) && ! empty( $option_value ) ) {
39
+
40
+ echo '<li>';
41
+ echo '<ul>';
42
+ echo '<li><strong>'. $option_key .'</strong></li>';
43
+ foreach( $option_value as $sub_key => $sub_value ) {
44
+ $checked = ( $sub_key == $this->value ) ? ' checked' : '';
45
+ echo '<li><label><input type="radio" name="'. $this->field_name() .'" value="'. $sub_key .'"'. $this->field_attributes() . $checked .'/> '. $sub_value .'</label></li>';
46
+ }
47
+ echo '</ul>';
48
+ echo '</li>';
49
+
50
+ } else {
51
+
52
+ $checked = ( $option_key == $this->value ) ? ' checked' : '';
53
+ echo '<li><label><input type="radio" name="'. $this->field_name() .'" value="'. $option_key .'"'. $this->field_attributes() . $checked .'/> '. $option_value .'</label></li>';
54
+
55
+ }
56
+
57
+ }
58
+ echo '</ul>';
59
+
60
+ } else {
61
+
62
+ echo ( ! empty( $this->field['empty_message'] ) ) ? $this->field['empty_message'] : esc_html__( 'No data provided for this option type.', 'csf' );
63
+
64
+ }
65
+
66
+ } else {
67
+ $label = ( isset( $this->field['label'] ) ) ? $this->field['label'] : '';
68
+ echo '<label><input type="radio" name="'. $this->field_name() .'" value="1"'. $this->field_attributes() . checked( $this->value, 1, false ) .'/> '. $label .'</label>';
69
+ }
70
+
71
+ echo $this->field_after();
72
+
73
+ }
74
+
75
+ }
76
+ }
admin/views/{tp-metabox → framework}/fields/rating/rating.php RENAMED
@@ -7,8 +7,8 @@
7
  * @since 1.0.0
8
  * @version 1.0.0
9
  */
10
- if ( ! class_exists( 'SPFTESTIMONIAL_Field_rating' ) ) {
11
- class SPFTESTIMONIAL_Field_rating extends SPFTESTIMONIAL_Fields {
12
 
13
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
  parent::__construct( $field, $value, $unique, $where, $parent );
7
  * @since 1.0.0
8
  * @version 1.0.0
9
  */
10
+ if ( ! class_exists( 'CSF_Field_rating' ) ) {
11
+ class CSF_Field_rating extends CSF_Fields {
12
 
13
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
  parent::__construct( $field, $value, $unique, $where, $parent );
admin/views/framework/fields/repeater/repeater.php ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: repeater
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_repeater' ) ) {
11
+ class CSF_Field_repeater extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'max' => 0,
21
+ 'min' => 0,
22
+ 'button_title' => '<i class="fa fa-plus-circle"></i>',
23
+ ) );
24
+
25
+ $fields = $this->field['fields'];
26
+ $unique_id = ( ! empty( $this->unique ) ) ? $this->unique : $this->field['id'];
27
+
28
+ if( $this->parent && preg_match( '/'. preg_quote( '['. $this->field['id'] .']' ) .'/', $this->parent ) ) {
29
+
30
+ echo '<div class="csf-notice csf-notice-danger">'. esc_html__( 'Error: Nested field id can not be same with another nested field id.', 'csf' ) .'</div>';
31
+
32
+ } else {
33
+
34
+ echo $this->field_before();
35
+
36
+ echo '<div class="csf-repeater-item csf-repeater-hidden">';
37
+ echo '<div class="csf-repeater-content">';
38
+ foreach ( $fields as $field ) {
39
+
40
+ $field_parent = $this->parent .'['. $this->field['id'] .']';
41
+ $field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
42
+
43
+ CSF::field( $field, $field_default, '_nonce', 'field/repeater', $field_parent );
44
+
45
+ }
46
+ echo '</div>';
47
+ echo '<div class="csf-repeater-helper">';
48
+ echo '<div class="csf-repeater-helper-inner">';
49
+ echo '<i class="csf-repeater-sort fa fa-arrows"></i>';
50
+ echo '<i class="csf-repeater-clone fa fa-clone"></i>';
51
+ echo '<i class="csf-repeater-remove csf-confirm fa fa-times" data-confirm="'. esc_html__( 'Are you sure to delete this item?', 'csf' ) .'"></i>';
52
+ echo '</div>';
53
+ echo '</div>';
54
+ echo '</div>';
55
+
56
+ echo '<div class="csf-repeater-wrapper csf-data-wrapper" data-unique-id="'. $this->unique .'" data-field-id="['. $this->field['id'] .']" data-max="'. $args['max'] .'" data-min="'. $args['min'] .'">';
57
+
58
+ if( ! empty( $this->value ) ) {
59
+
60
+ $num = 0;
61
+
62
+ foreach ( $this->value as $key => $value ) {
63
+
64
+ echo '<div class="csf-repeater-item">';
65
+
66
+ echo '<div class="csf-repeater-content">';
67
+ foreach ( $fields as $field ) {
68
+
69
+ $field_parent = $this->parent .'['. $this->field['id'] .']';
70
+ $field_unique = ( ! empty( $this->unique ) ) ? $this->unique .'['. $this->field['id'] .']['. $num .']' : $this->field['id'] .'['. $num .']';
71
+ $field_value = ( isset( $field['id'] ) && isset( $this->value[$key][$field['id']] ) ) ? $this->value[$key][$field['id']] : '';
72
+
73
+ CSF::field( $field, $field_value, $field_unique, 'field/repeater', $field_parent );
74
+
75
+ }
76
+ echo '</div>';
77
+
78
+ echo '<div class="csf-repeater-helper">';
79
+ echo '<div class="csf-repeater-helper-inner">';
80
+ echo '<i class="csf-repeater-sort fa fa-arrows"></i>';
81
+ echo '<i class="csf-repeater-clone fa fa-clone"></i>';
82
+ echo '<i class="csf-repeater-remove csf-confirm fa fa-times" data-confirm="'. esc_html__( 'Are you sure to delete this item?', 'csf' ) .'"></i>';
83
+ echo '</div>';
84
+ echo '</div>';
85
+
86
+ echo '</div>';
87
+
88
+ $num++;
89
+
90
+ }
91
+
92
+ }
93
+
94
+ echo '</div>';
95
+
96
+ echo '<div class="csf-repeater-alert csf-repeater-max">'. esc_html__( 'You can not add more than', 'csf' ) .' '. $args['max'] .'</div>';
97
+ echo '<div class="csf-repeater-alert csf-repeater-min">'. esc_html__( 'You can not remove less than', 'csf' ) .' '. $args['min'] .'</div>';
98
+
99
+ echo '<a href="#" class="button button-primary csf-repeater-add">'. $args['button_title'] .'</a>';
100
+
101
+ echo $this->field_after();
102
+
103
+ }
104
+
105
+ }
106
+
107
+ public function enqueue() {
108
+
109
+ if( ! wp_script_is( 'jquery-ui-sortable' ) ) {
110
+ wp_enqueue_script( 'jquery-ui-sortable' );
111
+ }
112
+
113
+ }
114
+
115
+ }
116
+ }
admin/views/framework/fields/select/select.php ADDED
@@ -0,0 +1,131 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: select
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_select' ) ) {
11
+ class CSF_Field_select extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'placeholder' => '',
21
+ 'chosen' => false,
22
+ 'multiple' => false,
23
+ 'sortable' => false,
24
+ 'ajax' => false,
25
+ 'settings' => array(),
26
+ 'query_args' => array(),
27
+ ) );
28
+
29
+ $this->value = ( is_array( $this->value ) ) ? $this->value : array_filter( (array) $this->value );
30
+
31
+ echo $this->field_before();
32
+
33
+ if( isset( $this->field['options'] ) ) {
34
+
35
+ if( ! empty( $args['ajax'] ) ) {
36
+ $args['settings']['data']['type'] = $args['options'];
37
+ $args['settings']['data']['nonce'] = wp_create_nonce( 'csf_chosen_ajax_nonce' );
38
+ if( ! empty( $args['query_args'] ) ) {
39
+ $args['settings']['data']['query_args'] = $args['query_args'];
40
+ }
41
+ }
42
+
43
+ $chosen_rtl = ( is_rtl() ) ? ' chosen-rtl' : '';
44
+ $multiple_name = ( $args['multiple'] ) ? '[]' : '';
45
+ $multiple_attr = ( $args['multiple'] ) ? ' multiple="multiple"' : '';
46
+ $chosen_sortable = ( $args['chosen'] && $args['sortable'] ) ? ' csf-chosen-sortable' : '';
47
+ $chosen_ajax = ( $args['chosen'] && $args['ajax'] ) ? ' csf-chosen-ajax' : '';
48
+ $placeholder_attr = ( $args['chosen'] && $args['placeholder'] ) ? ' data-placeholder="'. $args['placeholder'] .'"' : '';
49
+ $field_class = ( $args['chosen'] ) ? ' class="csf-chosen'. $chosen_rtl . $chosen_sortable . $chosen_ajax .'"' : '';
50
+ $field_name = $this->field_name( $multiple_name );
51
+ $field_attr = $this->field_attributes();
52
+ $maybe_options = $this->field['options'];
53
+ $chosen_data_attr = ( $args['chosen'] && ! empty( $args['settings'] ) ) ? ' data-chosen-settings="'. esc_attr( json_encode( $args['settings'] ) ) .'"' : '';
54
+
55
+ if( is_string( $maybe_options ) && ! empty( $args['chosen'] ) && ! empty( $args['ajax'] ) ) {
56
+ $options = $this->field_wp_query_data_title( $maybe_options, $this->value );
57
+ } else if( is_string( $maybe_options ) ) {
58
+ $options = $this->field_data( $maybe_options, false, $args['query_args'] );
59
+ } else {
60
+ $options = $maybe_options;
61
+ }
62
+
63
+ if( ( is_array( $options ) && ! empty( $options ) ) || ( ! empty( $args['chosen'] ) && ! empty( $args['ajax'] ) ) ) {
64
+
65
+ if( ! empty( $args['chosen'] ) && ! empty( $args['multiple'] ) ) {
66
+
67
+ echo '<select name="'. $field_name .'" class="csf-hidden-select csf-hidden"'. $multiple_attr . $field_attr .'>';
68
+ foreach( $this->value as $option_key ) {
69
+ echo '<option value="'. $option_key .'" selected>'. $option_key .'</option>';
70
+ }
71
+ echo '</select>';
72
+
73
+ $field_name = '_pseudo';
74
+ $field_attr = '';
75
+
76
+ }
77
+
78
+ echo '<select name="'. $field_name .'"'. $field_class . $multiple_attr . $placeholder_attr . $field_attr . $chosen_data_attr .'>';
79
+
80
+ if( $args['placeholder'] && empty( $args['multiple'] ) ) {
81
+ if( ! empty( $args['chosen'] ) ) {
82
+ echo '<option value=""></option>';
83
+ } else {
84
+ echo '<option value="">'. $args['placeholder'] .'</option>';
85
+ }
86
+ }
87
+
88
+ foreach( $options as $option_key => $option ) {
89
+
90
+ if( is_array( $option ) && ! empty( $option ) ) {
91
+
92
+ echo '<optgroup label="'. $option_key .'">';
93
+
94
+ foreach( $option as $sub_key => $sub_value ) {
95
+ $selected = ( in_array( $sub_key, $this->value ) ) ? ' selected' : '';
96
+ echo '<option value="'. $sub_key .'" '. $selected .'>'. $sub_value .'</option>';
97
+ }
98
+
99
+ echo '</optgroup>';
100
+
101
+ } else {
102
+ $selected = ( in_array( $option_key, $this->value ) ) ? ' selected' : '';
103
+ echo '<option value="'. $option_key .'" '. $selected .'>'. $option .'</option>';
104
+ }
105
+
106
+ }
107
+
108
+ echo '</select>';
109
+
110
+ } else {
111
+
112
+ echo ( ! empty( $this->field['empty_message'] ) ) ? $this->field['empty_message'] : esc_html__( 'No data provided for this option type.', 'csf' );
113
+
114
+ }
115
+
116
+ }
117
+
118
+ echo $this->field_after();
119
+
120
+ }
121
+
122
+ public function enqueue() {
123
+
124
+ if( ! wp_script_is( 'jquery-ui-sortable' ) ) {
125
+ wp_enqueue_script( 'jquery-ui-sortable' );
126
+ }
127
+
128
+ }
129
+
130
+ }
131
+ }
admin/views/{tp-metabox → framework}/fields/select_f/select_f.php RENAMED
@@ -7,8 +7,8 @@
7
  * @since 1.0.0
8
  * @version 1.0.0
9
  */
10
- if ( ! class_exists( 'SPFTESTIMONIAL_Field_select_f' ) ) {
11
- class SPFTESTIMONIAL_Field_select_f extends SPFTESTIMONIAL_Fields {
12
 
13
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
  parent::__construct( $field, $value, $unique, $where, $parent );
7
  * @since 1.0.0
8
  * @version 1.0.0
9
  */
10
+ if ( ! class_exists( 'CSF_Field_select_f' ) ) {
11
+ class CSF_Field_select_f extends CSF_Fields {
12
 
13
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
  parent::__construct( $field, $value, $unique, $where, $parent );
admin/views/framework/fields/slider/slider.php ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: slider
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_slider' ) ) {
11
+ class CSF_Field_slider extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'max' => 100,
21
+ 'min' => 0,
22
+ 'step' => 1,
23
+ 'unit' => '',
24
+ ) );
25
+
26
+ $is_unit = ( ! empty( $args['unit'] ) ) ? ' csf--is-unit' : '';
27
+
28
+ echo $this->field_before();
29
+
30
+ echo '<div class="csf--wrap">';
31
+ echo '<div class="csf-slider-ui"></div>';
32
+ echo '<div class="csf--input">';
33
+ echo '<input type="number" name="'. $this->field_name() .'" value="'. $this->value .'"'. $this->field_attributes( array( 'class' => 'csf-input-number'. $is_unit ) ) .' data-max="'. $args['max'] .'" data-min="'. $args['min'] .'" data-step="'. $args['step'] .'" />';
34
+ echo ( ! empty( $args['unit'] ) ) ? '<span class="csf--unit">'. $args['unit'] .'</span>' : '';
35
+ echo '</div>';
36
+ echo '</div>';
37
+
38
+ echo $this->field_after();
39
+
40
+ }
41
+
42
+ public function enqueue() {
43
+
44
+ if( ! wp_script_is( 'jquery-ui-slider' ) ) {
45
+ wp_enqueue_script( 'jquery-ui-slider' );
46
+ }
47
+
48
+ }
49
+
50
+ public function output() {
51
+
52
+ $output = '';
53
+ $elements = ( is_array( $this->field['output'] ) ) ? $this->field['output'] : array_filter( (array) $this->field['output'] );
54
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
55
+ $mode = ( ! empty( $this->field['output_mode'] ) ) ? $this->field['output_mode'] : 'width';
56
+ $unit = ( ! empty( $this->field['unit'] ) ) ? $this->field['unit'] : 'px';
57
+
58
+ if( ! empty( $elements ) && isset( $this->value ) && $this->value !== '' ) {
59
+ foreach( $elements as $key_property => $element ) {
60
+ if( is_numeric( $key_property ) ) {
61
+ if( $mode ) {
62
+ $output = implode( ',', $elements ) .'{'. $mode .':'. $this->value . $unit . $important .';}';
63
+ }
64
+ break;
65
+ } else {
66
+ $output .= $element .'{'. $key_property .':'. $this->value . $unit . $important .'}';
67
+ }
68
+ }
69
+ }
70
+
71
+ $this->parent->output_css .= $output;
72
+
73
+ return $output;
74
+
75
+ }
76
+
77
+ }
78
+ }
admin/views/framework/fields/sortable/sortable.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: sortable
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_sortable' ) ) {
11
+ class CSF_Field_sortable extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ echo $this->field_before();
20
+
21
+ echo '<div class="csf--sortable">';
22
+
23
+ $pre_sortby = array();
24
+ $pre_fields = array();
25
+
26
+ // Add array-keys to defined fields for sort by
27
+ foreach( $this->field['fields'] as $key => $field ) {
28
+ $pre_fields[$field['id']] = $field;
29
+ }
30
+
31
+ // Set sort by by saved-value or default-value
32
+ if( ! empty( $this->value ) ) {
33
+
34
+ foreach( $this->value as $key => $value ) {
35
+ $pre_sortby[$key] = $pre_fields[$key];
36
+ }
37
+
38
+ } else {
39
+
40
+ foreach( $pre_fields as $key => $value ) {
41
+ $pre_sortby[$key] = $value;
42
+ }
43
+
44
+ }
45
+
46
+ foreach( $pre_sortby as $key => $field ) {
47
+
48
+ echo '<div class="csf--sortable-item">';
49
+
50
+ echo '<div class="csf--sortable-content">';
51
+
52
+ $field_default = ( isset( $this->field['default'][$key] ) ) ? $this->field['default'][$key] : '';
53
+ $field_value = ( isset( $this->value[$key] ) ) ? $this->value[$key] : $field_default;
54
+ $unique_id = ( ! empty( $this->unique ) ) ? $this->unique .'['. $this->field['id'] .']' : $this->field['id'];
55
+
56
+ CSF::field( $field, $field_value, $unique_id, 'field/sortable' );
57
+
58
+ echo '</div>';
59
+
60
+ echo '<div class="csf--sortable-helper"><i class="fa fa-arrows"></i></div>';
61
+
62
+ echo '</div>';
63
+
64
+ }
65
+
66
+ echo '</div>';
67
+
68
+ echo $this->field_after();
69
+
70
+ }
71
+
72
+ public function enqueue() {
73
+
74
+ if( ! wp_script_is( 'jquery-ui-sortable' ) ) {
75
+ wp_enqueue_script( 'jquery-ui-sortable' );
76
+ }
77
+
78
+ }
79
+
80
+ }
81
+ }
admin/views/framework/fields/sorter/sorter.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: sorter
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_sorter' ) ) {
11
+ class CSF_Field_sorter extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'disabled' => true,
21
+ 'enabled_title' => esc_html__( 'Enabled', 'csf' ),
22
+ 'disabled_title' => esc_html__( 'Disabled', 'csf' ),
23
+ ) );
24
+
25
+ echo $this->field_before();
26
+
27
+ $this->value = ( ! empty( $this->value ) ) ? $this->value : $this->field['default'];
28
+ $enabled_options = ( ! empty( $this->value['enabled'] ) ) ? $this->value['enabled'] : array();
29
+ $disabled_options = ( ! empty( $this->value['disabled'] ) ) ? $this->value['disabled'] : array();
30
+
31
+ echo ( $args['disabled'] ) ? '<div class="csf-modules">' : '';
32
+
33
+ echo ( ! empty( $args['enabled_title'] ) ) ? '<div class="csf-sorter-title">'. $args['enabled_title'] .'</div>' : '';
34
+ echo '<ul class="csf-enabled">';
35
+ if( ! empty( $enabled_options ) ) {
36
+ foreach( $enabled_options as $key => $value ) {
37
+ echo '<li><input type="hidden" name="'. $this->field_name( '[enabled]['. $key .']' ) .'" value="'. $value .'"/><label>'. $value .'</label></li>';
38
+ }
39
+ }
40
+ echo '</ul>';
41
+
42
+ // Check for hide/show disabled section
43
+ if( $args['disabled'] ) {
44
+
45
+ echo '</div>';
46
+
47
+ echo '<div class="csf-modules">';
48
+ echo ( ! empty( $args['disabled_title'] ) ) ? '<div class="csf-sorter-title">'. $args['disabled_title'] .'</div>' : '';
49
+ echo '<ul class="csf-disabled">';
50
+ if( ! empty( $disabled_options ) ) {
51
+ foreach( $disabled_options as $key => $value ) {
52
+ echo '<li><input type="hidden" name="'. $this->field_name( '[disabled]['. $key .']' ) .'" value="'. $value .'"/><label>'. $value .'</label></li>';
53
+ }
54
+ }
55
+ echo '</ul>';
56
+ echo '</div>';
57
+
58
+ }
59
+
60
+ echo '<div class="clear"></div>';
61
+
62
+ echo $this->field_after();
63
+
64
+ }
65
+
66
+ public function enqueue() {
67
+
68
+ if( ! wp_script_is( 'jquery-ui-sortable' ) ) {
69
+ wp_enqueue_script( 'jquery-ui-sortable' );
70
+ }
71
+
72
+ }
73
+
74
+ }
75
+ }
admin/views/framework/fields/spacing/spacing.php ADDED
@@ -0,0 +1,150 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: spacing
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_spacing' ) ) {
11
+ class CSF_Field_spacing extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'top_icon' => '<i class="fa fa-long-arrow-up"></i>',
21
+ 'right_icon' => '<i class="fa fa-long-arrow-right"></i>',
22
+ 'bottom_icon' => '<i class="fa fa-long-arrow-down"></i>',
23
+ 'left_icon' => '<i class="fa fa-long-arrow-left"></i>',
24
+ 'all_icon' => '<i class="fa fa-arrows"></i>',
25
+ 'top_placeholder' => esc_html__( 'top', 'csf' ),
26
+ 'right_placeholder' => esc_html__( 'right', 'csf' ),
27
+ 'bottom_placeholder' => esc_html__( 'bottom', 'csf' ),
28
+ 'left_placeholder' => esc_html__( 'left', 'csf' ),
29
+ 'all_placeholder' => esc_html__( 'all', 'csf' ),
30
+ 'top' => true,
31
+ 'left' => true,
32
+ 'bottom' => true,
33
+ 'right' => true,
34
+ 'unit' => true,
35
+ 'show_units' => true,
36
+ 'all' => false,
37
+ 'units' => array( 'px', '%', 'em' )
38
+ ) );
39
+
40
+ $default_values = array(
41
+ 'top' => '',
42
+ 'right' => '',
43
+ 'bottom' => '',
44
+ 'left' => '',
45
+ 'all' => '',
46
+ 'unit' => 'px',
47
+ );
48
+
49
+ $value = wp_parse_args( $this->value, $default_values );
50
+ $unit = ( count( $args['units'] ) === 1 && ! empty( $args['unit'] ) ) ? $args['units'][0] : '';
51
+ $is_unit = ( ! empty( $unit ) ) ? ' csf--is-unit' : '';
52
+
53
+ echo $this->field_before();
54
+
55
+ echo '<div class="csf--inputs">';
56
+
57
+ if( ! empty( $args['all'] ) ) {
58
+
59
+ $placeholder = ( ! empty( $args['all_placeholder'] ) ) ? ' placeholder="'. $args['all_placeholder'] .'"' : '';
60
+
61
+ echo '<div class="csf--input">';
62
+ echo ( ! empty( $args['all_icon'] ) ) ? '<span class="csf--label csf--icon">'. $args['all_icon'] .'</span>' : '';
63
+ echo '<input type="number" name="'. $this->field_name('[all]') .'" value="'. $value['all'] .'"'. $placeholder .' class="csf-input-number'. $is_unit .'" />';
64
+ echo ( $unit ) ? '<span class="csf--label csf--unit">'. $args['units'][0] .'</span>' : '';
65
+ echo '</div>';
66
+
67
+ } else {
68
+
69
+ $properties = array();
70
+
71
+ foreach ( array( 'top', 'right', 'bottom', 'left' ) as $prop ) {
72
+ if( ! empty( $args[$prop] ) ) {
73
+ $properties[] = $prop;
74
+ }
75
+ }
76
+
77
+ $properties = ( $properties === array( 'right', 'left' ) ) ? array_reverse( $properties ) : $properties;
78
+
79
+ foreach( $properties as $property ) {
80
+
81
+ $placeholder = ( ! empty( $args[$property.'_placeholder'] ) ) ? ' placeholder="'. $args[$property.'_placeholder'] .'"' : '';
82
+
83
+ echo '<div class="csf--input">';
84
+ echo ( ! empty( $args[$property.'_icon'] ) ) ? '<span class="csf--label csf--icon">'. $args[$property.'_icon'] .'</span>' : '';
85
+ echo '<input type="number" name="'. $this->field_name('['. $property .']') .'" value="'. $value[$property] .'"'. $placeholder .' class="csf-input-number'. $is_unit .'" />';
86
+ echo ( $unit ) ? '<span class="csf--label csf--unit">'. $args['units'][0] .'</span>' : '';
87
+ echo '</div>';
88
+
89
+ }
90
+
91
+ }
92
+
93
+ if( ! empty( $args['unit'] ) && ! empty( $args['show_units'] ) && count( $args['units'] ) > 1 ) {
94
+ echo '<div class="csf--input">';
95
+ echo '<select name="'. $this->field_name('[unit]') .'">';
96
+ foreach( $args['units'] as $unit ) {
97
+ $selected = ( $value['unit'] === $unit ) ? ' selected' : '';
98
+ echo '<option value="'. $unit .'"'. $selected .'>'. $unit .'</option>';
99
+ }
100
+ echo '</select>';
101
+ echo '</div>';
102
+ }
103
+
104
+ echo '</div>';
105
+
106
+ echo $this->field_after();
107
+
108
+ }
109
+
110
+ public function output() {
111
+
112
+ $output = '';
113
+ $element = ( is_array( $this->field['output'] ) ) ? join( ',', $this->field['output'] ) : $this->field['output'];
114
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
115
+ $unit = ( ! empty( $this->value['unit'] ) ) ? $this->value['unit'] : 'px';
116
+
117
+ $mode = ( ! empty( $this->field['output_mode'] ) ) ? $this->field['output_mode'] : 'padding';
118
+ $mode = ( $mode === 'relative' || $mode === 'absolute' || $mode === 'none' ) ? '' : $mode;
119
+ $mode = ( ! empty( $mode ) ) ? $mode .'-' : '';
120
+
121
+ if( ! empty( $this->field['all'] ) && isset( $this->value['all'] ) && $this->value['all'] !== '' ) {
122
+
123
+ $output = $element .'{';
124
+ $output .= $mode .'top:'. $this->value['all'] . $unit . $important .';';
125
+ $output .= $mode .'right:'. $this->value['all'] . $unit . $important .';';
126
+ $output .= $mode .'bottom:'. $this->value['all'] . $unit . $important .';';
127
+ $output .= $mode .'left:'. $this->value['all'] . $unit . $important .';';
128
+ $output .= '}';
129
+
130
+ } else {
131
+
132
+ $top = ( isset( $this->value['top'] ) && $this->value['top'] !== '' ) ? $mode .'top:'. $this->value['top'] . $unit . $important .';' : '';
133
+ $right = ( isset( $this->value['right'] ) && $this->value['right'] !== '' ) ? $mode .'right:'. $this->value['right'] . $unit . $important .';' : '';
134
+ $bottom = ( isset( $this->value['bottom'] ) && $this->value['bottom'] !== '' ) ? $mode .'bottom:'. $this->value['bottom'] . $unit . $important .';' : '';
135
+ $left = ( isset( $this->value['left'] ) && $this->value['left'] !== '' ) ? $mode .'left:'. $this->value['left'] . $unit . $important .';' : '';
136
+
137
+ if( $top !== '' || $right !== '' || $bottom !== '' || $left !== '' ) {
138
+ $output = $element .'{'. $top . $right . $bottom . $left .'}';
139
+ }
140
+
141
+ }
142
+
143
+ $this->parent->output_css .= $output;
144
+
145
+ return $output;
146
+
147
+ }
148
+
149
+ }
150
+ }
admin/views/framework/fields/spinner/spinner.php ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: spinner
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_spinner' ) ) {
11
+ class CSF_Field_spinner extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'max' => 100,
21
+ 'min' => 0,
22
+ 'step' => 1,
23
+ 'unit' => '',
24
+ ) );
25
+
26
+ echo $this->field_before();
27
+ echo '<div class="csf--spin"><input type="number" name="'. $this->field_name() .'" value="'. $this->value .'"'. $this->field_attributes( array( 'class' => 'csf-input-number' ) ) .' data-max="'. $args['max'] .'" data-min="'. $args['min'] .'" data-step="'. $args['step'] .'" data-unit="'. $args['unit'] .'"/></div>';
28
+ echo $this->field_after();
29
+
30
+ }
31
+
32
+ public function enqueue() {
33
+
34
+ if( ! wp_script_is( 'jquery-ui-spinner' ) ) {
35
+ wp_enqueue_script( 'jquery-ui-spinner' );
36
+ }
37
+
38
+ }
39
+
40
+ public function output() {
41
+
42
+ $output = '';
43
+ $elements = ( is_array( $this->field['output'] ) ) ? $this->field['output'] : array_filter( (array) $this->field['output'] );
44
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
45
+ $mode = ( ! empty( $this->field['output_mode'] ) ) ? $this->field['output_mode'] : 'width';
46
+ $unit = ( ! empty( $this->field['unit'] ) ) ? $this->field['unit'] : 'px';
47
+
48
+ if( ! empty( $elements ) && isset( $this->value ) && $this->value !== '' ) {
49
+ foreach( $elements as $key_property => $element ) {
50
+ if( is_numeric( $key_property ) ) {
51
+ if( $mode ) {
52
+ $output = implode( ',', $elements ) .'{'. $mode .':'. $this->value . $unit . $important .';}';
53
+ }
54
+ break;
55
+ } else {
56
+ $output .= $element .'{'. $key_property .':'. $this->value . $unit . $important .'}';
57
+ }
58
+ }
59
+ }
60
+
61
+ $this->parent->output_css .= $output;
62
+
63
+ return $output;
64
+
65
+ }
66
+
67
+ }
68
+ }
admin/views/{tp-metabox → framework}/fields/subheading/subheading.php RENAMED
@@ -7,8 +7,8 @@
7
  * @version 1.0.0
8
  *
9
  */
10
- if( ! class_exists( 'SPFTESTIMONIAL_Field_subheading' ) ) {
11
- class SPFTESTIMONIAL_Field_subheading extends SPFTESTIMONIAL_Fields {
12
 
13
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
  parent::__construct( $field, $value, $unique, $where, $parent );
7
  * @version 1.0.0
8
  *
9
  */
10
+ if( ! class_exists( 'CSF_Field_subheading' ) ) {
11
+ class CSF_Field_subheading extends CSF_Fields {
12
 
13
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
  parent::__construct( $field, $value, $unique, $where, $parent );
admin/views/framework/fields/submessage/submessage.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: submessage
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_submessage' ) ) {
11
+ class CSF_Field_submessage extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $style = ( ! empty( $this->field['style'] ) ) ? $this->field['style'] : 'normal';
20
+
21
+ echo '<div class="csf-submessage csf-submessage-'. $style .'">'. $this->field['content'] .'</div>';
22
+
23
+ }
24
+
25
+ }
26
+ }
admin/views/framework/fields/switcher/switcher.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: switcher
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_switcher' ) ) {
11
+ class CSF_Field_switcher extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $active = ( ! empty( $this->value ) ) ? ' csf--active' : '';
20
+ $text_on = ( ! empty( $this->field['text_on'] ) ) ? $this->field['text_on'] : esc_html__( 'On', 'csf' );
21
+ $text_off = ( ! empty( $this->field['text_off'] ) ) ? $this->field['text_off'] : esc_html__( 'Off', 'csf' );
22
+ $text_width = ( ! empty( $this->field['text_width'] ) ) ? ' style="width: '. $this->field['text_width'] .'px;"': '';
23
+
24
+ echo $this->field_before();
25
+
26
+ echo '<div class="csf--switcher'. $active .'"'. $text_width .'>';
27
+ echo '<span class="csf--on">'. $text_on .'</span>';
28
+ echo '<span class="csf--off">'. $text_off .'</span>';
29
+ echo '<span class="csf--ball"></span>';
30
+ echo '<input type="text" name="'. $this->field_name() .'" value="'. $this->value .'"'. $this->field_attributes() .' />';
31
+ echo '</div>';
32
+
33
+ echo ( ! empty( $this->field['label'] ) ) ? '<span class="csf--label">'. $this->field['label'] . '</span>' : '';
34
+
35
+ echo '<div class="clear"></div>';
36
+
37
+ echo $this->field_after();
38
+
39
+ }
40
+
41
+ }
42
+ }
admin/views/framework/fields/tabbed/tabbed.php ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: tabbed
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_tabbed' ) ) {
11
+ class CSF_Field_tabbed extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $unallows = array( 'tabbed' );
20
+
21
+ echo $this->field_before();
22
+
23
+ echo '<div class="csf-tabbed-nav">';
24
+ foreach ( $this->field['tabs'] as $key => $tab ) {
25
+
26
+ $tabbed_icon = ( ! empty( $tab['icon'] ) ) ? '<i class="csf--icon '. $tab['icon'] .'"></i>' : '';
27
+ $tabbed_active = ( empty( $key ) ) ? ' class="csf-tabbed-active"' : '';
28
+
29
+ echo '<a href="#"'. $tabbed_active .'>'. $tabbed_icon . $tab['title'] .'</a>';
30
+
31
+ }
32
+ echo '</div>';
33
+
34
+ echo '<div class="csf-tabbed-sections">';
35
+ foreach ( $this->field['tabs'] as $key => $tab ) {
36
+
37
+ $tabbed_hidden = ( ! empty( $key ) ) ? ' hidden' : '';
38
+
39
+ echo '<div class="csf-tabbed-section'. $tabbed_hidden .'">';
40
+
41
+ foreach ( $tab['fields'] as $field ) {
42
+
43
+ if( in_array( $field['type'], $unallows ) ) { $field['_notice'] = true; }
44
+
45
+ $field_id = ( isset( $field['id'] ) ) ? $field['id'] : '';
46
+ $field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
47
+ $field_value = ( isset( $this->value[$field_id] ) ) ? $this->value[$field_id] : $field_default;
48
+ $unique_id = ( ! empty( $this->unique ) ) ? $this->unique .'['. $this->field['id'] .']' : $this->field['id'];
49
+
50
+ CSF::field( $field, $field_value, $unique_id, 'field/tabbed' );
51
+
52
+ }
53
+
54
+ echo '</div>';
55
+
56
+ }
57
+ echo '</div>';
58
+
59
+ echo $this->field_after();
60
+
61
+ }
62
+
63
+ }
64
+ }
admin/views/framework/fields/text/text.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: text
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_text' ) ) {
11
+ class CSF_Field_text extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $type = ( ! empty( $this->field['attributes']['type'] ) ) ? $this->field['attributes']['type'] : 'text';
20
+
21
+ echo $this->field_before();
22
+
23
+ echo '<input type="'. $type .'" name="'. $this->field_name() .'" value="'. $this->value .'"'. $this->field_attributes() .' />';
24
+
25
+ echo $this->field_after();
26
+
27
+ }
28
+
29
+ }
30
+ }
admin/views/{tp-metabox → framework}/fields/text_f/text_f.php RENAMED
@@ -7,8 +7,8 @@
7
  * @since 1.0.0
8
  * @version 1.0.0
9
  */
10
- if ( ! class_exists( 'SPFTESTIMONIAL_Field_text_f' ) ) {
11
- class SPFTESTIMONIAL_Field_text_f extends SPFTESTIMONIAL_Fields {
12
 
13
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
  parent::__construct( $field, $value, $unique, $where, $parent );
7
  * @since 1.0.0
8
  * @version 1.0.0
9
  */
10
+ if ( ! class_exists( 'CSF_Field_text_f' ) ) {
11
+ class CSF_Field_text_f extends CSF_Fields {
12
 
13
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
  parent::__construct( $field, $value, $unique, $where, $parent );
admin/views/framework/fields/textarea/textarea.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: textarea
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_textarea' ) ) {
11
+ class CSF_Field_textarea extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ echo $this->field_before();
20
+ echo $this->shortcoder();
21
+ echo '<textarea name="'. $this->field_name() .'"'. $this->field_attributes() .'>'. $this->value .'</textarea>';
22
+ echo $this->field_after();
23
+
24
+ }
25
+
26
+ public function shortcoder() {
27
+
28
+ if( ! empty( $this->field['shortcoder'] ) ) {
29
+
30
+ $shortcoders = ( is_array( $this->field['shortcoder'] ) ) ? $this->field['shortcoder'] : array_filter( (array) $this->field['shortcoder'] );
31
+
32
+ foreach( $shortcoders as $shortcode_id ) {
33
+
34
+ if( isset( CSF::$args['shortcoders'][$shortcode_id] ) ) {
35
+
36
+ $setup_args = CSF::$args['shortcoders'][$shortcode_id];
37
+ $button_title = ( ! empty( $setup_args['button_title'] ) ) ? $setup_args['button_title'] : esc_html__( 'Add Shortcode', 'csf' );
38
+
39
+ echo '<a href="#" class="button button-primary csf-shortcode-button" data-modal-id="'. $shortcode_id .'">'. $button_title .'</a>';
40
+
41
+ }
42
+
43
+ }
44
+
45
+ }
46
+
47
+ }
48
+ }
49
+ }
admin/views/framework/fields/typography/google-fonts.php ADDED
@@ -0,0 +1,981 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+
3
+ if( ! function_exists( 'csf_get_google_fonts' ) ) {
4
+ function csf_get_google_fonts() {
5
+ return [
6
+ 'ABeeZee'=>[['normal','italic'],['latin']],
7
+ 'Abel'=>[['normal'],['latin']],
8
+ 'Abhaya Libre'=>[['normal','500','600','700','800'],['latin-ext','latin','sinhala']],
9
+ 'Abril Fatface'=>[['normal'],['latin-ext','latin']],
10
+ 'Aclonica'=>[['normal'],['latin']],
11
+ 'Acme'=>[['normal'],['latin']],
12
+ 'Actor'=>[['normal'],['latin']],
13
+ 'Adamina'=>[['normal'],['latin']],
14
+ 'Advent Pro'=>[['100','200','300','normal','500','600','700'],['latin-ext','greek','latin']],
15
+ 'Aguafina Script'=>[['normal'],['latin-ext','latin']],
16
+ 'Akronim'=>[['normal'],['latin-ext','latin']],
17
+ 'Aladin'=>[['normal'],['latin-ext','latin']],
18
+ 'Alata'=>[['normal'],['latin-ext','latin','vietnamese']],
19
+ 'Alatsi'=>[['normal'],['latin-ext','latin','vietnamese']],
20
+ 'Aldrich'=>[['normal'],['latin']],
21
+ 'Alef'=>[['normal','700'],['hebrew','latin']],
22
+ 'Alegreya'=>[['normal','italic','500','500italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
23
+ 'Alegreya SC'=>[['normal','italic','500','500italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
24
+ 'Alegreya Sans'=>[['100','100italic','300','300italic','normal','italic','500','500italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
25
+ 'Alegreya Sans SC'=>[['100','100italic','300','300italic','normal','italic','500','500italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
26
+ 'Aleo'=>[['300','300italic','normal','italic','700','700italic'],['latin-ext','latin']],
27
+ 'Alex Brush'=>[['normal'],['latin-ext','latin']],
28
+ 'Alfa Slab One'=>[['normal'],['latin-ext','latin','vietnamese']],
29
+ 'Alice'=>[['normal'],['cyrillic-ext','cyrillic','latin']],
30
+ 'Alike'=>[['normal'],['latin']],
31
+ 'Alike Angular'=>[['normal'],['latin']],
32
+ 'Allan'=>[['normal','700'],['latin-ext','latin']],
33
+ 'Allerta'=>[['normal'],['latin']],
34
+ 'Allerta Stencil'=>[['normal'],['latin']],
35
+ 'Allura'=>[['normal'],['latin-ext','latin']],
36
+ 'Almarai'=>[['300','normal','700','800'],['arabic']],
37
+ 'Almendra'=>[['normal','italic','700','700italic'],['latin-ext','latin']],
38
+ 'Almendra Display'=>[['normal'],['latin-ext','latin']],
39
+ 'Almendra SC'=>[['normal'],['latin']],
40
+ 'Amarante'=>[['normal'],['latin-ext','latin']],
41
+ 'Amaranth'=>[['normal','italic','700','700italic'],['latin']],
42
+ 'Amatic SC'=>[['normal','700'],['cyrillic','latin-ext','hebrew','latin','vietnamese']],
43
+ 'Amethysta'=>[['normal'],['latin']],
44
+ 'Amiko'=>[['normal','600','700'],['latin-ext','devanagari','latin']],
45
+ 'Amiri'=>[['normal','italic','700','700italic'],['arabic','latin-ext','latin']],
46
+ 'Amita'=>[['normal','700'],['latin-ext','devanagari','latin']],
47
+ 'Anaheim'=>[['normal'],['latin-ext','latin']],
48
+ 'Andada'=>[['normal'],['latin-ext','latin']],
49
+ 'Andika'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
50
+ 'Angkor'=>[['normal'],['khmer']],
51
+ 'Annie Use Your Telescope'=>[['normal'],['latin']],
52
+ 'Anonymous Pro'=>[['normal','italic','700','700italic'],['cyrillic','latin-ext','greek','latin']],
53
+ 'Antic'=>[['normal'],['latin']],
54
+ 'Antic Didone'=>[['normal'],['latin']],
55
+ 'Antic Slab'=>[['normal'],['latin']],
56
+ 'Anton'=>[['normal'],['latin-ext','latin','vietnamese']],
57
+ 'Arapey'=>[['normal','italic'],['latin']],
58
+ 'Arbutus'=>[['normal'],['latin-ext','latin']],
59
+ 'Arbutus Slab'=>[['normal'],['latin-ext','latin']],
60
+ 'Architects Daughter'=>[['normal'],['latin']],
61
+ 'Archivo'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','vietnamese']],
62
+ 'Archivo Black'=>[['normal'],['latin-ext','latin']],
63
+ 'Archivo Narrow'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','vietnamese']],
64
+ 'Aref Ruqaa'=>[['normal','700'],['arabic','latin']],
65
+ 'Arima Madurai'=>[['100','200','300','normal','500','700','800','900'],['latin-ext','latin','vietnamese','tamil']],
66
+ 'Arimo'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','hebrew','greek','latin','vietnamese']],
67
+ 'Arizonia'=>[['normal'],['latin-ext','latin']],
68
+ 'Armata'=>[['normal'],['latin-ext','latin']],
69
+ 'Arsenal'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
70
+ 'Artifika'=>[['normal'],['latin']],
71
+ 'Arvo'=>[['normal','italic','700','700italic'],['latin']],
72
+ 'Arya'=>[['normal','700'],['latin-ext','devanagari','latin']],
73
+ 'Asap'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','vietnamese']],
74
+ 'Asap Condensed'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','vietnamese']],
75
+ 'Asar'=>[['normal'],['latin-ext','devanagari','latin']],
76
+ 'Asset'=>[['normal'],['latin']],
77
+ 'Assistant'=>[['200','300','normal','600','700','800'],['hebrew','latin']],
78
+ 'Astloch'=>[['normal','700'],['latin']],
79
+ 'Asul'=>[['normal','700'],['latin']],
80
+ 'Athiti'=>[['200','300','normal','500','600','700'],['latin-ext','latin','thai','vietnamese']],
81
+ 'Atma'=>[['300','normal','500','600','700'],['bengali','latin-ext','latin']],
82
+ 'Atomic Age'=>[['normal'],['latin']],
83
+ 'Aubrey'=>[['normal'],['latin']],
84
+ 'Audiowide'=>[['normal'],['latin-ext','latin']],
85
+ 'Autour One'=>[['normal'],['latin-ext','latin']],
86
+ 'Average'=>[['normal'],['latin-ext','latin']],
87
+ 'Average Sans'=>[['normal'],['latin-ext','latin']],
88
+ 'Averia Gruesa Libre'=>[['normal'],['latin-ext','latin']],
89
+ 'Averia Libre'=>[['300','300italic','normal','italic','700','700italic'],['latin']],
90
+ 'Averia Sans Libre'=>[['300','300italic','normal','italic','700','700italic'],['latin']],
91
+ 'Averia Serif Libre'=>[['300','300italic','normal','italic','700','700italic'],['latin']],
92
+ 'B612'=>[['normal','italic','700','700italic'],['latin']],
93
+ 'B612 Mono'=>[['normal','italic','700','700italic'],['latin']],
94
+ 'Bad Script'=>[['normal'],['cyrillic','latin']],
95
+ 'Bahiana'=>[['normal'],['latin-ext','latin']],
96
+ 'Bahianita'=>[['normal'],['latin-ext','latin','vietnamese']],
97
+ 'Bai Jamjuree'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','thai','vietnamese']],
98
+ 'Baloo'=>[['normal'],['latin-ext','devanagari','latin','vietnamese']],
99
+ 'Baloo Bhai'=>[['normal'],['latin-ext','latin','vietnamese','gujarati']],
100
+ 'Baloo Bhaijaan'=>[['normal'],['arabic','latin-ext','latin','vietnamese']],
101
+ 'Baloo Bhaina'=>[['normal'],['latin-ext','latin','vietnamese','oriya']],
102
+ 'Baloo Chettan'=>[['normal'],['malayalam','latin-ext','latin','vietnamese']],
103
+ 'Baloo Da'=>[['normal'],['bengali','latin-ext','latin','vietnamese']],
104
+ 'Baloo Paaji'=>[['normal'],['latin-ext','latin','vietnamese','gurmukhi']],
105
+ 'Baloo Tamma'=>[['normal'],['latin-ext','kannada','latin','vietnamese']],
106
+ 'Baloo Tammudu'=>[['normal'],['telugu','latin-ext','latin','vietnamese']],
107
+ 'Baloo Thambi'=>[['normal'],['latin-ext','latin','vietnamese','tamil']],
108
+ 'Balthazar'=>[['normal'],['latin']],
109
+ 'Bangers'=>[['normal'],['latin-ext','latin','vietnamese']],
110
+ 'Barlow'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','vietnamese']],
111
+ 'Barlow Condensed'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','vietnamese']],
112
+ 'Barlow Semi Condensed'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','vietnamese']],
113
+ 'Barriecito'=>[['normal'],['latin-ext','latin','vietnamese']],
114
+ 'Barrio'=>[['normal'],['latin-ext','latin']],
115
+ 'Basic'=>[['normal'],['latin-ext','latin']],
116
+ 'Baskervville'=>[['normal','italic'],['latin-ext','latin']],
117
+ 'Battambang'=>[['normal','700'],['khmer']],
118
+ 'Baumans'=>[['normal'],['latin']],
119
+ 'Bayon'=>[['normal'],['khmer']],
120
+ 'Be Vietnam'=>[['100','100italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic'],['latin-ext','latin','vietnamese']],
121
+ 'Bebas Neue'=>[['normal'],['latin-ext','latin']],
122
+ 'Belgrano'=>[['normal'],['latin']],
123
+ 'Bellefair'=>[['normal'],['latin-ext','hebrew','latin']],
124
+ 'Belleza'=>[['normal'],['latin-ext','latin']],
125
+ 'BenchNine'=>[['300','normal','700'],['latin-ext','latin']],
126
+ 'Bentham'=>[['normal'],['latin']],
127
+ 'Berkshire Swash'=>[['normal'],['latin-ext','latin']],
128
+ 'Beth Ellen'=>[['normal'],['latin']],
129
+ 'Bevan'=>[['normal'],['latin-ext','latin','vietnamese']],
130
+ 'Big Shoulders Display'=>[['100','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
131
+ 'Big Shoulders Text'=>[['100','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
132
+ 'Bigelow Rules'=>[['normal'],['latin-ext','latin']],
133
+ 'Bigshot One'=>[['normal'],['latin']],
134
+ 'Bilbo'=>[['normal'],['latin-ext','latin']],
135
+ 'Bilbo Swash Caps'=>[['normal'],['latin-ext','latin']],
136
+ 'BioRhyme'=>[['200','300','normal','700','800'],['latin-ext','latin']],
137
+ 'BioRhyme Expanded'=>[['200','300','normal','700','800'],['latin-ext','latin']],
138
+ 'Biryani'=>[['200','300','normal','600','700','800','900'],['latin-ext','devanagari','latin']],
139
+ 'Bitter'=>[['normal','italic','700'],['latin-ext','latin']],
140
+ 'Black And White Picture'=>[['normal'],['korean','latin']],
141
+ 'Black Han Sans'=>[['normal'],['korean','latin']],
142
+ 'Black Ops One'=>[['normal'],['latin-ext','latin']],
143
+ 'Blinker'=>[['100','200','300','normal','600','700','800','900'],['latin-ext','latin']],
144
+ 'Bokor'=>[['normal'],['khmer']],
145
+ 'Bonbon'=>[['normal'],['latin']],
146
+ 'Boogaloo'=>[['normal'],['latin']],
147
+ 'Bowlby One'=>[['normal'],['latin']],
148
+ 'Bowlby One SC'=>[['normal'],['latin-ext','latin']],
149
+ 'Brawler'=>[['normal'],['latin']],
150
+ 'Bree Serif'=>[['normal'],['latin-ext','latin']],
151
+ 'Bubblegum Sans'=>[['normal'],['latin-ext','latin']],
152
+ 'Bubbler One'=>[['normal'],['latin-ext','latin']],
153
+ 'Buda'=>[['300'],['latin']],
154
+ 'Buenard'=>[['normal','700'],['latin-ext','latin']],
155
+ 'Bungee'=>[['normal'],['latin-ext','latin','vietnamese']],
156
+ 'Bungee Hairline'=>[['normal'],['latin-ext','latin','vietnamese']],
157
+ 'Bungee Inline'=>[['normal'],['latin-ext','latin','vietnamese']],
158
+ 'Bungee Outline'=>[['normal'],['latin-ext','latin','vietnamese']],
159
+ 'Bungee Shade'=>[['normal'],['latin-ext','latin','vietnamese']],
160
+ 'Butcherman'=>[['normal'],['latin-ext','latin']],
161
+ 'Butterfly Kids'=>[['normal'],['latin-ext','latin']],
162
+ 'Cabin'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','vietnamese']],
163
+ 'Cabin Condensed'=>[['normal','500','600','700'],['latin-ext','latin','vietnamese']],
164
+ 'Cabin Sketch'=>[['normal','700'],['latin']],
165
+ 'Caesar Dressing'=>[['normal'],['latin']],
166
+ 'Cagliostro'=>[['normal'],['latin']],
167
+ 'Cairo'=>[['200','300','normal','600','700','900'],['arabic','latin-ext','latin']],
168
+ 'Calistoga'=>[['normal'],['latin-ext','latin','vietnamese']],
169
+ 'Calligraffitti'=>[['normal'],['latin']],
170
+ 'Cambay'=>[['normal','italic','700','700italic'],['latin-ext','devanagari','latin']],
171
+ 'Cambo'=>[['normal'],['latin']],
172
+ 'Candal'=>[['normal'],['latin']],
173
+ 'Cantarell'=>[['normal','italic','700','700italic'],['latin']],
174
+ 'Cantata One'=>[['normal'],['latin-ext','latin']],
175
+ 'Cantora One'=>[['normal'],['latin-ext','latin']],
176
+ 'Capriola'=>[['normal'],['latin-ext','latin']],
177
+ 'Cardo'=>[['normal','italic','700'],['greek-ext','latin-ext','greek','latin']],
178
+ 'Carme'=>[['normal'],['latin']],
179
+ 'Carrois Gothic'=>[['normal'],['latin']],
180
+ 'Carrois Gothic SC'=>[['normal'],['latin']],
181
+ 'Carter One'=>[['normal'],['latin']],
182
+ 'Catamaran'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','tamil']],
183
+ 'Caudex'=>[['normal','italic','700','700italic'],['greek-ext','latin-ext','greek','latin']],
184
+ 'Caveat'=>[['normal','700'],['cyrillic-ext','cyrillic','latin-ext','latin']],
185
+ 'Caveat Brush'=>[['normal'],['latin-ext','latin']],
186
+ 'Cedarville Cursive'=>[['normal'],['latin']],
187
+ 'Ceviche One'=>[['normal'],['latin-ext','latin']],
188
+ 'Chakra Petch'=>[['300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','thai','vietnamese']],
189
+ 'Changa'=>[['200','300','normal','500','600','700','800'],['arabic','latin-ext','latin']],
190
+ 'Changa One'=>[['normal','italic'],['latin']],
191
+ 'Chango'=>[['normal'],['latin-ext','latin']],
192
+ 'Charm'=>[['normal','700'],['latin-ext','latin','thai','vietnamese']],
193
+ 'Charmonman'=>[['normal','700'],['latin-ext','latin','thai','vietnamese']],
194
+ 'Chathura'=>[['100','300','normal','700','800'],['telugu','latin']],
195
+ 'Chau Philomene One'=>[['normal','italic'],['latin-ext','latin']],
196
+ 'Chela One'=>[['normal'],['latin-ext','latin']],
197
+ 'Chelsea Market'=>[['normal'],['latin-ext','latin']],
198
+ 'Chenla'=>[['normal'],['khmer']],
199
+ 'Cherry Cream Soda'=>[['normal'],['latin']],
200
+ 'Cherry Swash'=>[['normal','700'],['latin-ext','latin']],
201
+ 'Chewy'=>[['normal'],['latin']],
202
+ 'Chicle'=>[['normal'],['latin-ext','latin']],
203
+ 'Chilanka'=>[['normal'],['malayalam','latin']],
204
+ 'Chivo'=>[['300','300italic','normal','italic','700','700italic','900','900italic'],['latin-ext','latin']],
205
+ 'Chonburi'=>[['normal'],['latin-ext','latin','thai','vietnamese']],
206
+ 'Cinzel'=>[['normal','700','900'],['latin-ext','latin']],
207
+ 'Cinzel Decorative'=>[['normal','700','900'],['latin']],
208
+ 'Clicker Script'=>[['normal'],['latin-ext','latin']],
209
+ 'Coda'=>[['normal','800'],['latin-ext','latin']],
210
+ 'Coda Caption'=>[['800'],['latin-ext','latin']],
211
+ 'Codystar'=>[['300','normal'],['latin-ext','latin']],
212
+ 'Coiny'=>[['normal'],['latin-ext','latin','vietnamese','tamil']],
213
+ 'Combo'=>[['normal'],['latin-ext','latin']],
214
+ 'Comfortaa'=>[['300','normal','500','600','700'],['cyrillic-ext','cyrillic','latin-ext','greek','latin','vietnamese']],
215
+ 'Coming Soon'=>[['normal'],['latin']],
216
+ 'Concert One'=>[['normal'],['latin-ext','latin']],
217
+ 'Condiment'=>[['normal'],['latin-ext','latin']],
218
+ 'Content'=>[['normal','700'],['khmer']],
219
+ 'Contrail One'=>[['normal'],['latin']],
220
+ 'Convergence'=>[['normal'],['latin']],
221
+ 'Cookie'=>[['normal'],['latin']],
222
+ 'Copse'=>[['normal'],['latin']],
223
+ 'Corben'=>[['normal','700'],['latin-ext','latin']],
224
+ 'Cormorant'=>[['300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
225
+ 'Cormorant Garamond'=>[['300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
226
+ 'Cormorant Infant'=>[['300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
227
+ 'Cormorant SC'=>[['300','normal','500','600','700'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
228
+ 'Cormorant Unicase'=>[['300','normal','500','600','700'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
229
+ 'Cormorant Upright'=>[['300','normal','500','600','700'],['latin-ext','latin','vietnamese']],
230
+ 'Courgette'=>[['normal'],['latin-ext','latin']],
231
+ 'Cousine'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','hebrew','greek','latin','vietnamese']],
232
+ 'Coustard'=>[['normal','900'],['latin']],
233
+ 'Covered By Your Grace'=>[['normal'],['latin']],
234
+ 'Crafty Girls'=>[['normal'],['latin']],
235
+ 'Creepster'=>[['normal'],['latin']],
236
+ 'Crete Round'=>[['normal','italic'],['latin-ext','latin']],
237
+ 'Crimson Pro'=>[['200','300','normal','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin-ext','latin','vietnamese']],
238
+ 'Crimson Text'=>[['normal','italic','600','600italic','700','700italic'],['latin']],
239
+ 'Croissant One'=>[['normal'],['latin-ext','latin']],
240
+ 'Crushed'=>[['normal'],['latin']],
241
+ 'Cuprum'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
242
+ 'Cute Font'=>[['normal'],['korean','latin']],
243
+ 'Cutive'=>[['normal'],['latin-ext','latin']],
244
+ 'Cutive Mono'=>[['normal'],['latin-ext','latin']],
245
+ 'DM Sans'=>[['normal','italic','500','500italic','700','700italic'],['latin-ext','latin']],
246
+ 'DM Serif Display'=>[['normal','italic'],['latin-ext','latin']],
247
+ 'DM Serif Text'=>[['normal','italic'],['latin-ext','latin']],
248
+ 'Damion'=>[['normal'],['latin']],
249
+ 'Dancing Script'=>[['normal','500','600','700'],['latin-ext','latin','vietnamese']],
250
+ 'Dangrek'=>[['normal'],['khmer']],
251
+ 'Darker Grotesque'=>[['300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
252
+ 'David Libre'=>[['normal','500','700'],['latin-ext','hebrew','latin','vietnamese']],
253
+ 'Dawning of a New Day'=>[['normal'],['latin']],
254
+ 'Days One'=>[['normal'],['latin']],
255
+ 'Dekko'=>[['normal'],['latin-ext','devanagari','latin']],
256
+ 'Delius'=>[['normal'],['latin']],
257
+ 'Delius Swash Caps'=>[['normal'],['latin']],
258
+ 'Delius Unicase'=>[['normal','700'],['latin']],
259
+ 'Della Respira'=>[['normal'],['latin']],
260
+ 'Denk One'=>[['normal'],['latin-ext','latin']],
261
+ 'Devonshire'=>[['normal'],['latin-ext','latin']],
262
+ 'Dhurjati'=>[['normal'],['telugu','latin']],
263
+ 'Didact Gothic'=>[['normal'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin']],
264
+ 'Diplomata'=>[['normal'],['latin-ext','latin']],
265
+ 'Diplomata SC'=>[['normal'],['latin-ext','latin']],
266
+ 'Do Hyeon'=>[['normal'],['korean','latin']],
267
+ 'Dokdo'=>[['normal'],['korean','latin']],
268
+ 'Domine'=>[['normal','700'],['latin-ext','latin']],
269
+ 'Donegal One'=>[['normal'],['latin-ext','latin']],
270
+ 'Doppio One'=>[['normal'],['latin-ext','latin']],
271
+ 'Dorsa'=>[['normal'],['latin']],
272
+ 'Dosis'=>[['200','300','normal','500','600','700','800'],['latin-ext','latin','vietnamese']],
273
+ 'Dr Sugiyama'=>[['normal'],['latin-ext','latin']],
274
+ 'Duru Sans'=>[['normal'],['latin-ext','latin']],
275
+ 'Dynalight'=>[['normal'],['latin-ext','latin']],
276
+ 'EB Garamond'=>[['normal','500','600','700','800','italic','500italic','600italic','700italic','800italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
277
+ 'Eagle Lake'=>[['normal'],['latin-ext','latin']],
278
+ 'East Sea Dokdo'=>[['normal'],['korean','latin']],
279
+ 'Eater'=>[['normal'],['latin-ext','latin']],
280
+ 'Economica'=>[['normal','italic','700','700italic'],['latin-ext','latin']],
281
+ 'Eczar'=>[['normal','500','600','700','800'],['latin-ext','devanagari','latin']],
282
+ 'El Messiri'=>[['normal','500','600','700'],['cyrillic','arabic','latin']],
283
+ 'Electrolize'=>[['normal'],['latin']],
284
+ 'Elsie'=>[['normal','900'],['latin-ext','latin']],
285
+ 'Elsie Swash Caps'=>[['normal','900'],['latin-ext','latin']],
286
+ 'Emblema One'=>[['normal'],['latin-ext','latin']],
287
+ 'Emilys Candy'=>[['normal'],['latin-ext','latin']],
288
+ 'Encode Sans'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
289
+ 'Encode Sans Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
290
+ 'Encode Sans Expanded'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
291
+ 'Encode Sans Semi Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
292
+ 'Encode Sans Semi Expanded'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
293
+ 'Engagement'=>[['normal'],['latin']],
294
+ 'Englebert'=>[['normal'],['latin-ext','latin']],
295
+ 'Enriqueta'=>[['normal','500','600','700'],['latin-ext','latin']],
296
+ 'Erica One'=>[['normal'],['latin-ext','latin']],
297
+ 'Esteban'=>[['normal'],['latin-ext','latin']],
298
+ 'Euphoria Script'=>[['normal'],['latin-ext','latin']],
299
+ 'Ewert'=>[['normal'],['latin-ext','latin']],
300
+ 'Exo'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','vietnamese']],
301
+ 'Exo 2'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
302
+ 'Expletus Sans'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin']],
303
+ 'Fahkwang'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','thai','vietnamese']],
304
+ 'Fanwood Text'=>[['normal','italic'],['latin']],
305
+ 'Farro'=>[['300','normal','500','700'],['latin-ext','latin']],
306
+ 'Farsan'=>[['normal'],['latin-ext','latin','vietnamese','gujarati']],
307
+ 'Fascinate'=>[['normal'],['latin']],
308
+ 'Fascinate Inline'=>[['normal'],['latin']],
309
+ 'Faster One'=>[['normal'],['latin']],
310
+ 'Fasthand'=>[['normal'],['khmer']],
311
+ 'Fauna One'=>[['normal'],['latin-ext','latin']],
312
+ 'Faustina'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','vietnamese']],
313
+ 'Federant'=>[['normal'],['latin']],
314
+ 'Federo'=>[['normal'],['latin']],
315
+ 'Felipa'=>[['normal'],['latin-ext','latin']],
316
+ 'Fenix'=>[['normal'],['latin-ext','latin']],
317
+ 'Finger Paint'=>[['normal'],['latin']],
318
+ 'Fira Code'=>[['300','normal','500','600','700'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin']],
319
+ 'Fira Mono'=>[['normal','500','700'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin']],
320
+ 'Fira Sans'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
321
+ 'Fira Sans Condensed'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
322
+ 'Fira Sans Extra Condensed'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
323
+ 'Fjalla One'=>[['normal'],['latin-ext','latin']],
324
+ 'Fjord One'=>[['normal'],['latin']],
325
+ 'Flamenco'=>[['300','normal'],['latin']],
326
+ 'Flavors'=>[['normal'],['latin-ext','latin']],
327
+ 'Fondamento'=>[['normal','italic'],['latin-ext','latin']],
328
+ 'Fontdiner Swanky'=>[['normal'],['latin']],
329
+ 'Forum'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','latin']],
330
+ 'Francois One'=>[['normal'],['latin-ext','latin','vietnamese']],
331
+ 'Frank Ruhl Libre'=>[['300','normal','500','700','900'],['latin-ext','hebrew','latin']],
332
+ 'Freckle Face'=>[['normal'],['latin-ext','latin']],
333
+ 'Fredericka the Great'=>[['normal'],['latin-ext','latin']],
334
+ 'Fredoka One'=>[['normal'],['latin']],
335
+ 'Freehand'=>[['normal'],['khmer']],
336
+ 'Fresca'=>[['normal'],['latin-ext','latin']],
337
+ 'Frijole'=>[['normal'],['latin']],
338
+ 'Fruktur'=>[['normal'],['latin-ext','latin']],
339
+ 'Fugaz One'=>[['normal'],['latin']],
340
+ 'GFS Didot'=>[['normal'],['greek']],
341
+ 'GFS Neohellenic'=>[['normal','italic','700','700italic'],['greek']],
342
+ 'Gabriela'=>[['normal'],['cyrillic-ext','cyrillic','latin']],
343
+ 'Gaegu'=>[['300','normal','700'],['korean','latin']],
344
+ 'Gafata'=>[['normal'],['latin-ext','latin']],
345
+ 'Galada'=>[['normal'],['bengali','latin']],
346
+ 'Galdeano'=>[['normal'],['latin']],
347
+ 'Galindo'=>[['normal'],['latin-ext','latin']],
348
+ 'Gamja Flower'=>[['normal'],['korean','latin']],
349
+ 'Gayathri'=>[['100','normal','700'],['malayalam','latin']],
350
+ 'Gentium Basic'=>[['normal','italic','700','700italic'],['latin-ext','latin']],
351
+ 'Gentium Book Basic'=>[['normal','italic','700','700italic'],['latin-ext','latin']],
352
+ 'Geo'=>[['normal','italic'],['latin']],
353
+ 'Geostar'=>[['normal'],['latin']],
354
+ 'Geostar Fill'=>[['normal'],['latin']],
355
+ 'Germania One'=>[['normal'],['latin']],
356
+ 'Gidugu'=>[['normal'],['telugu','latin']],
357
+ 'Gilda Display'=>[['normal'],['latin-ext','latin']],
358
+ 'Give You Glory'=>[['normal'],['latin']],
359
+ 'Glass Antiqua'=>[['normal'],['latin-ext','latin']],
360
+ 'Glegoo'=>[['normal','700'],['latin-ext','devanagari','latin']],
361
+ 'Gloria Hallelujah'=>[['normal'],['latin']],
362
+ 'Goblin One'=>[['normal'],['latin']],
363
+ 'Gochi Hand'=>[['normal'],['latin']],
364
+ 'Gorditas'=>[['normal','700'],['latin']],
365
+ 'Gothic A1'=>[['100','200','300','normal','500','600','700','800','900'],['korean','latin']],
366
+ 'Goudy Bookletter 1911'=>[['normal'],['latin']],
367
+ 'Graduate'=>[['normal'],['latin']],
368
+ 'Grand Hotel'=>[['normal'],['latin-ext','latin']],
369
+ 'Gravitas One'=>[['normal'],['latin']],
370
+ 'Great Vibes'=>[['normal'],['latin-ext','latin']],
371
+ 'Grenze'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','vietnamese']],
372
+ 'Griffy'=>[['normal'],['latin-ext','latin']],
373
+ 'Gruppo'=>[['normal'],['latin-ext','latin']],
374
+ 'Gudea'=>[['normal','italic','700'],['latin-ext','latin']],
375
+ 'Gugi'=>[['normal'],['korean','latin']],
376
+ 'Gupter'=>[['normal','500','700'],['latin']],
377
+ 'Gurajada'=>[['normal'],['telugu','latin']],
378
+ 'Habibi'=>[['normal'],['latin-ext','latin']],
379
+ 'Halant'=>[['300','normal','500','600','700'],['latin-ext','devanagari','latin']],
380
+ 'Hammersmith One'=>[['normal'],['latin-ext','latin']],
381
+ 'Hanalei'=>[['normal'],['latin-ext','latin']],
382
+ 'Hanalei Fill'=>[['normal'],['latin-ext','latin']],
383
+ 'Handlee'=>[['normal'],['latin']],
384
+ 'Hanuman'=>[['normal','700'],['khmer']],
385
+ 'Happy Monkey'=>[['normal'],['latin-ext','latin']],
386
+ 'Harmattan'=>[['normal'],['arabic','latin']],
387
+ 'Headland One'=>[['normal'],['latin-ext','latin']],
388
+ 'Heebo'=>[['100','300','normal','500','700','800','900'],['hebrew','latin']],
389
+ 'Henny Penny'=>[['normal'],['latin']],
390
+ 'Hepta Slab'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
391
+ 'Herr Von Muellerhoff'=>[['normal'],['latin-ext','latin']],
392
+ 'Hi Melody'=>[['normal'],['korean','latin']],
393
+ 'Hind'=>[['300','normal','500','600','700'],['latin-ext','devanagari','latin']],
394
+ 'Hind Guntur'=>[['300','normal','500','600','700'],['telugu','latin-ext','latin']],
395
+ 'Hind Madurai'=>[['300','normal','500','600','700'],['latin-ext','latin','tamil']],
396
+ 'Hind Siliguri'=>[['300','normal','500','600','700'],['bengali','latin-ext','latin']],
397
+ 'Hind Vadodara'=>[['300','normal','500','600','700'],['latin-ext','latin','gujarati']],
398
+ 'Holtwood One SC'=>[['normal'],['latin']],
399
+ 'Homemade Apple'=>[['normal'],['latin']],
400
+ 'Homenaje'=>[['normal'],['latin']],
401
+ 'IBM Plex Mono'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
402
+ 'IBM Plex Sans'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','greek','latin','vietnamese']],
403
+ 'IBM Plex Sans Condensed'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','vietnamese']],
404
+ 'IBM Plex Serif'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
405
+ 'IM Fell DW Pica'=>[['normal','italic'],['latin']],
406
+ 'IM Fell DW Pica SC'=>[['normal'],['latin']],
407
+ 'IM Fell Double Pica'=>[['normal','italic'],['latin']],
408
+ 'IM Fell Double Pica SC'=>[['normal'],['latin']],
409
+ 'IM Fell English'=>[['normal','italic'],['latin']],
410
+ 'IM Fell English SC'=>[['normal'],['latin']],
411
+ 'IM Fell French Canon'=>[['normal','italic'],['latin']],
412
+ 'IM Fell French Canon SC'=>[['normal'],['latin']],
413
+ 'IM Fell Great Primer'=>[['normal','italic'],['latin']],
414
+ 'IM Fell Great Primer SC'=>[['normal'],['latin']],
415
+ 'Ibarra Real Nova'=>[['normal','italic','600','600italic','700','700italic'],['latin-ext','latin']],
416
+ 'Iceberg'=>[['normal'],['latin']],
417
+ 'Iceland'=>[['normal'],['latin']],
418
+ 'Imprima'=>[['normal'],['latin-ext','latin']],
419
+ 'Inconsolata'=>[['normal','700'],['latin-ext','latin','vietnamese']],
420
+ 'Inder'=>[['normal'],['latin-ext','latin']],
421
+ 'Indie Flower'=>[['normal'],['latin']],
422
+ 'Inika'=>[['normal','700'],['latin-ext','latin']],
423
+ 'Inknut Antiqua'=>[['300','normal','500','600','700','800','900'],['latin-ext','devanagari','latin']],
424
+ 'Irish Grover'=>[['normal'],['latin']],
425
+ 'Istok Web'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin']],
426
+ 'Italiana'=>[['normal'],['latin']],
427
+ 'Italianno'=>[['normal'],['latin-ext','latin']],
428
+ 'Itim'=>[['normal'],['latin-ext','latin','thai','vietnamese']],
429
+ 'Jacques Francois'=>[['normal'],['latin']],
430
+ 'Jacques Francois Shadow'=>[['normal'],['latin']],
431
+ 'Jaldi'=>[['normal','700'],['latin-ext','devanagari','latin']],
432
+ 'Jim Nightshade'=>[['normal'],['latin-ext','latin']],
433
+ 'Jockey One'=>[['normal'],['latin-ext','latin']],
434
+ 'Jolly Lodger'=>[['normal'],['latin-ext','latin']],
435
+ 'Jomhuria'=>[['normal'],['arabic','latin-ext','latin']],
436
+ 'Jomolhari'=>[['normal'],['tibetan','latin']],
437
+ 'Josefin Sans'=>[['100','100italic','300','300italic','normal','italic','600','600italic','700','700italic'],['latin-ext','latin','vietnamese']],
438
+ 'Josefin Slab'=>[['100','100italic','300','300italic','normal','italic','600','600italic','700','700italic'],['latin']],
439
+ 'Joti One'=>[['normal'],['latin-ext','latin']],
440
+ 'Jua'=>[['normal'],['korean','latin']],
441
+ 'Judson'=>[['normal','italic','700'],['latin-ext','latin','vietnamese']],
442
+ 'Julee'=>[['normal'],['latin']],
443
+ 'Julius Sans One'=>[['normal'],['latin-ext','latin']],
444
+ 'Junge'=>[['normal'],['latin']],
445
+ 'Jura'=>[['300','normal','500','600','700'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
446
+ 'Just Another Hand'=>[['normal'],['latin']],
447
+ 'Just Me Again Down Here'=>[['normal'],['latin-ext','latin']],
448
+ 'K2D'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic'],['latin-ext','latin','thai','vietnamese']],
449
+ 'Kadwa'=>[['normal','700'],['devanagari','latin']],
450
+ 'Kalam'=>[['300','normal','700'],['latin-ext','devanagari','latin']],
451
+ 'Kameron'=>[['normal','700'],['latin']],
452
+ 'Kanit'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','thai','vietnamese']],
453
+ 'Kantumruy'=>[['300','normal','700'],['khmer']],
454
+ 'Karla'=>[['normal','italic','700','700italic'],['latin-ext','latin']],
455
+ 'Karma'=>[['300','normal','500','600','700'],['latin-ext','devanagari','latin']],
456
+ 'Katibeh'=>[['normal'],['arabic','latin-ext','latin']],
457
+ 'Kaushan Script'=>[['normal'],['latin-ext','latin']],
458
+ 'Kavivanar'=>[['normal'],['latin-ext','latin','tamil']],
459
+ 'Kavoon'=>[['normal'],['latin-ext','latin']],
460
+ 'Kdam Thmor'=>[['normal'],['khmer']],
461
+ 'Keania One'=>[['normal'],['latin-ext','latin']],
462
+ 'Kelly Slab'=>[['normal'],['cyrillic','latin-ext','latin']],
463
+ 'Kenia'=>[['normal'],['latin']],
464
+ 'Khand'=>[['300','normal','500','600','700'],['latin-ext','devanagari','latin']],
465
+ 'Khmer'=>[['normal'],['khmer']],
466
+ 'Khula'=>[['300','normal','600','700','800'],['latin-ext','devanagari','latin']],
467
+ 'Kirang Haerang'=>[['normal'],['korean','latin']],
468
+ 'Kite One'=>[['normal'],['latin']],
469
+ 'Knewave'=>[['normal'],['latin-ext','latin']],
470
+ 'KoHo'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','thai','vietnamese']],
471
+ 'Kodchasan'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','thai','vietnamese']],
472
+ 'Kosugi'=>[['normal'],['cyrillic','latin','japanese']],
473
+ 'Kosugi Maru'=>[['normal'],['cyrillic','latin','japanese']],
474
+ 'Kotta One'=>[['normal'],['latin-ext','latin']],
475
+ 'Koulen'=>[['normal'],['khmer']],
476
+ 'Kranky'=>[['normal'],['latin']],
477
+ 'Kreon'=>[['300','normal','500','600','700'],['latin-ext','latin']],
478
+ 'Kristi'=>[['normal'],['latin']],
479
+ 'Krona One'=>[['normal'],['latin-ext','latin']],
480
+ 'Krub'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','thai','vietnamese']],
481
+ 'Kulim Park'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic'],['latin-ext','latin']],
482
+ 'Kumar One'=>[['normal'],['latin-ext','latin','gujarati']],
483
+ 'Kumar One Outline'=>[['normal'],['latin-ext','latin','gujarati']],
484
+ 'Kurale'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','devanagari','latin']],
485
+ 'La Belle Aurore'=>[['normal'],['latin']],
486
+ 'Lacquer'=>[['normal'],['latin']],
487
+ 'Laila'=>[['300','normal','500','600','700'],['latin-ext','devanagari','latin']],
488
+ 'Lakki Reddy'=>[['normal'],['telugu','latin']],
489
+ 'Lalezar'=>[['normal'],['arabic','latin-ext','latin','vietnamese']],
490
+ 'Lancelot'=>[['normal'],['latin-ext','latin']],
491
+ 'Lateef'=>[['normal'],['arabic','latin']],
492
+ 'Lato'=>[['100','100italic','300','300italic','normal','italic','700','700italic','900','900italic'],['latin-ext','latin']],
493
+ 'League Script'=>[['normal'],['latin']],
494
+ 'Leckerli One'=>[['normal'],['latin']],
495
+ 'Ledger'=>[['normal'],['cyrillic','latin-ext','latin']],
496
+ 'Lekton'=>[['normal','italic','700'],['latin-ext','latin']],
497
+ 'Lemon'=>[['normal'],['latin']],
498
+ 'Lemonada'=>[['300','normal','500','600','700'],['arabic','latin-ext','latin','vietnamese']],
499
+ 'Lexend Deca'=>[['normal'],['latin-ext','latin','vietnamese']],
500
+ 'Lexend Exa'=>[['normal'],['latin-ext','latin','vietnamese']],
501
+ 'Lexend Giga'=>[['normal'],['latin-ext','latin','vietnamese']],
502
+ 'Lexend Mega'=>[['normal'],['latin-ext','latin','vietnamese']],
503
+ 'Lexend Peta'=>[['normal'],['latin-ext','latin','vietnamese']],
504
+ 'Lexend Tera'=>[['normal'],['latin-ext','latin','vietnamese']],
505
+ 'Lexend Zetta'=>[['normal'],['latin-ext','latin','vietnamese']],
506
+ 'Libre Barcode 128'=>[['normal'],['latin']],
507
+ 'Libre Barcode 128 Text'=>[['normal'],['latin']],
508
+ 'Libre Barcode 39'=>[['normal'],['latin']],
509
+ 'Libre Barcode 39 Extended'=>[['normal'],['latin']],
510
+ 'Libre Barcode 39 Extended Text'=>[['normal'],['latin']],
511
+ 'Libre Barcode 39 Text'=>[['normal'],['latin']],
512
+ 'Libre Baskerville'=>[['normal','italic','700'],['latin-ext','latin']],
513
+ 'Libre Caslon Display'=>[['normal'],['latin-ext','latin']],
514
+ 'Libre Caslon Text'=>[['normal','italic','700'],['latin-ext','latin']],
515
+ 'Libre Franklin'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin']],
516
+ 'Life Savers'=>[['normal','700','800'],['latin-ext','latin']],
517
+ 'Lilita One'=>[['normal'],['latin-ext','latin']],
518
+ 'Lily Script One'=>[['normal'],['latin-ext','latin']],
519
+ 'Limelight'=>[['normal'],['latin-ext','latin']],
520
+ 'Linden Hill'=>[['normal','italic'],['latin']],
521
+ 'Literata'=>[['normal','500','600','700','italic','500italic','600italic','700italic'],['cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
522
+ 'Liu Jian Mao Cao'=>[['normal'],['chinese-simplified','latin']],
523
+ 'Livvic'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','900','900italic'],['latin-ext','latin','vietnamese']],
524
+ 'Lobster'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
525
+ 'Lobster Two'=>[['normal','italic','700','700italic'],['latin']],
526
+ 'Londrina Outline'=>[['normal'],['latin']],
527
+ 'Londrina Shadow'=>[['normal'],['latin']],
528
+ 'Londrina Sketch'=>[['normal'],['latin']],
529
+ 'Londrina Solid'=>[['100','300','normal','900'],['latin']],
530
+ 'Long Cang'=>[['normal'],['chinese-simplified','latin']],
531
+ 'Lora'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
532
+ 'Love Ya Like A Sister'=>[['normal'],['latin']],
533
+ 'Loved by the King'=>[['normal'],['latin']],
534
+ 'Lovers Quarrel'=>[['normal'],['latin-ext','latin']],
535
+ 'Luckiest Guy'=>[['normal'],['latin']],
536
+ 'Lusitana'=>[['normal','700'],['latin']],
537
+ 'Lustria'=>[['normal'],['latin']],
538
+ 'M PLUS 1p'=>[['100','300','normal','500','700','800','900'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','hebrew','greek','latin','vietnamese','japanese']],
539
+ 'M PLUS Rounded 1c'=>[['100','300','normal','500','700','800','900'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','hebrew','greek','latin','vietnamese','japanese']],
540
+ 'Ma Shan Zheng'=>[['normal'],['chinese-simplified','latin']],
541
+ 'Macondo'=>[['normal'],['latin']],
542
+ 'Macondo Swash Caps'=>[['normal'],['latin']],
543
+ 'Mada'=>[['200','300','normal','500','600','700','900'],['arabic','latin']],
544
+ 'Magra'=>[['normal','700'],['latin-ext','latin']],
545
+ 'Maiden Orange'=>[['normal'],['latin']],
546
+ 'Maitree'=>[['200','300','normal','500','600','700'],['latin-ext','latin','thai','vietnamese']],
547
+ 'Major Mono Display'=>[['normal'],['latin-ext','latin','vietnamese']],
548
+ 'Mako'=>[['normal'],['latin']],
549
+ 'Mali'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','thai','vietnamese']],
550
+ 'Mallanna'=>[['normal'],['telugu','latin']],
551
+ 'Mandali'=>[['normal'],['telugu','latin']],
552
+ 'Manjari'=>[['100','normal','700'],['malayalam','latin']],
553
+ 'Mansalva'=>[['normal'],['latin']],
554
+ 'Manuale'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','vietnamese']],
555
+ 'Marcellus'=>[['normal'],['latin-ext','latin']],
556
+ 'Marcellus SC'=>[['normal'],['latin-ext','latin']],
557
+ 'Marck Script'=>[['normal'],['cyrillic','latin-ext','latin']],
558
+ 'Margarine'=>[['normal'],['latin-ext','latin']],
559
+ 'Markazi Text'=>[['normal','500','600','700'],['arabic','latin-ext','latin','vietnamese']],
560
+ 'Marko One'=>[['normal'],['latin']],
561
+ 'Marmelad'=>[['normal'],['cyrillic','latin-ext','latin']],
562
+ 'Martel'=>[['200','300','normal','600','700','800','900'],['latin-ext','devanagari','latin']],
563
+ 'Martel Sans'=>[['200','300','normal','600','700','800','900'],['latin-ext','devanagari','latin']],
564
+ 'Marvel'=>[['normal','italic','700','700italic'],['latin']],
565
+ 'Mate'=>[['normal','italic'],['latin']],
566
+ 'Mate SC'=>[['normal'],['latin']],
567
+ 'Maven Pro'=>[['normal','500','700','900'],['latin-ext','latin','vietnamese']],
568
+ 'McLaren'=>[['normal'],['latin-ext','latin']],
569
+ 'Meddon'=>[['normal'],['latin']],
570
+ 'MedievalSharp'=>[['normal'],['latin-ext','latin']],
571
+ 'Medula One'=>[['normal'],['latin']],
572
+ 'Meera Inimai'=>[['normal'],['latin','tamil']],
573
+ 'Megrim'=>[['normal'],['latin']],
574
+ 'Meie Script'=>[['normal'],['latin-ext','latin']],
575
+ 'Merienda'=>[['normal','700'],['latin-ext','latin']],
576
+ 'Merienda One'=>[['normal'],['latin']],
577
+ 'Merriweather'=>[['300','300italic','normal','italic','700','700italic','900','900italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
578
+ 'Merriweather Sans'=>[['300','300italic','normal','italic','700','700italic','800','800italic'],['latin-ext','latin']],
579
+ 'Metal'=>[['normal'],['khmer']],
580
+ 'Metal Mania'=>[['normal'],['latin-ext','latin']],
581
+ 'Metamorphous'=>[['normal'],['latin-ext','latin']],
582
+ 'Metrophobic'=>[['normal'],['latin-ext','latin','vietnamese']],
583
+ 'Michroma'=>[['normal'],['latin']],
584
+ 'Milonga'=>[['normal'],['latin-ext','latin']],
585
+ 'Miltonian'=>[['normal'],['latin']],
586
+ 'Miltonian Tattoo'=>[['normal'],['latin']],
587
+ 'Mina'=>[['normal','700'],['bengali','latin-ext','latin']],
588
+ 'Miniver'=>[['normal'],['latin']],
589
+ 'Miriam Libre'=>[['normal','700'],['latin-ext','hebrew','latin']],
590
+ 'Mirza'=>[['normal','500','600','700'],['arabic','latin-ext','latin']],
591
+ 'Miss Fajardose'=>[['normal'],['latin-ext','latin']],
592
+ 'Mitr'=>[['200','300','normal','500','600','700'],['latin-ext','latin','thai','vietnamese']],
593
+ 'Modak'=>[['normal'],['latin-ext','devanagari','latin']],
594
+ 'Modern Antiqua'=>[['normal'],['latin-ext','latin']],
595
+ 'Mogra'=>[['normal'],['latin-ext','latin','gujarati']],
596
+ 'Molengo'=>[['normal'],['latin-ext','latin']],
597
+ 'Molle'=>[['italic'],['latin-ext','latin']],
598
+ 'Monda'=>[['normal','700'],['latin-ext','latin']],
599
+ 'Monofett'=>[['normal'],['latin']],
600
+ 'Monoton'=>[['normal'],['latin']],
601
+ 'Monsieur La Doulaise'=>[['normal'],['latin-ext','latin']],
602
+ 'Montaga'=>[['normal'],['latin']],
603
+ 'Montez'=>[['normal'],['latin']],
604
+ 'Montserrat'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
605
+ 'Montserrat Alternates'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
606
+ 'Montserrat Subrayada'=>[['normal','700'],['latin']],
607
+ 'Moul'=>[['normal'],['khmer']],
608
+ 'Moulpali'=>[['normal'],['khmer']],
609
+ 'Mountains of Christmas'=>[['normal','700'],['latin']],
610
+ 'Mouse Memoirs'=>[['normal'],['latin-ext','latin']],
611
+ 'Mr Bedfort'=>[['normal'],['latin-ext','latin']],
612
+ 'Mr Dafoe'=>[['normal'],['latin-ext','latin']],
613
+ 'Mr De Haviland'=>[['normal'],['latin-ext','latin']],
614
+ 'Mrs Saint Delafield'=>[['normal'],['latin-ext','latin']],
615
+ 'Mrs Sheppards'=>[['normal'],['latin-ext','latin']],
616
+ 'Mukta'=>[['200','300','normal','500','600','700','800'],['latin-ext','devanagari','latin']],
617
+ 'Mukta Mahee'=>[['200','300','normal','500','600','700','800'],['latin-ext','latin','gurmukhi']],
618
+ 'Mukta Malar'=>[['200','300','normal','500','600','700','800'],['latin-ext','latin','tamil']],
619
+ 'Mukta Vaani'=>[['200','300','normal','500','600','700','800'],['latin-ext','latin','gujarati']],
620
+ 'Muli'=>[['200','300','normal','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin-ext','latin','vietnamese']],
621
+ 'Mystery Quest'=>[['normal'],['latin-ext','latin']],
622
+ 'NTR'=>[['normal'],['telugu','latin']],
623
+ 'Nanum Brush Script'=>[['normal'],['korean','latin']],
624
+ 'Nanum Gothic'=>[['normal','700','800'],['korean','latin']],
625
+ 'Nanum Gothic Coding'=>[['normal','700'],['korean','latin']],
626
+ 'Nanum Myeongjo'=>[['normal','700','800'],['korean','latin']],
627
+ 'Nanum Pen Script'=>[['normal'],['korean','latin']],
628
+ 'Neucha'=>[['normal'],['cyrillic','latin']],
629
+ 'Neuton'=>[['200','300','normal','italic','700','800'],['latin-ext','latin']],
630
+ 'New Rocker'=>[['normal'],['latin-ext','latin']],
631
+ 'News Cycle'=>[['normal','700'],['latin-ext','latin']],
632
+ 'Niconne'=>[['normal'],['latin-ext','latin']],
633
+ 'Niramit'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','thai','vietnamese']],
634
+ 'Nixie One'=>[['normal'],['latin']],
635
+ 'Nobile'=>[['normal','italic','500','500italic','700','700italic'],['latin-ext','latin']],
636
+ 'Nokora'=>[['normal','700'],['khmer']],
637
+ 'Norican'=>[['normal'],['latin-ext','latin']],
638
+ 'Nosifer'=>[['normal'],['latin-ext','latin']],
639
+ 'Notable'=>[['normal'],['latin']],
640
+ 'Nothing You Could Do'=>[['normal'],['latin']],
641
+ 'Noticia Text'=>[['normal','italic','700','700italic'],['latin-ext','latin','vietnamese']],
642
+ 'Noto Sans'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','devanagari','greek','latin','vietnamese']],
643
+ 'Noto Sans HK'=>[['100','300','normal','500','700','900'],['chinese-hongkong','latin']],
644
+ 'Noto Sans JP'=>[['100','300','normal','500','700','900'],['latin','japanese']],
645
+ 'Noto Sans KR'=>[['100','300','normal','500','700','900'],['korean','latin']],
646
+ 'Noto Sans SC'=>[['100','300','normal','500','700','900'],['cyrillic','chinese-simplified','latin','vietnamese']],
647
+ 'Noto Sans TC'=>[['100','300','normal','500','700','900'],['chinese-traditional','latin']],
648
+ 'Noto Serif'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
649
+ 'Noto Serif JP'=>[['200','300','normal','500','600','700','900'],['latin','japanese']],
650
+ 'Noto Serif KR'=>[['200','300','normal','500','600','700','900'],['korean','latin']],
651
+ 'Noto Serif SC'=>[['200','300','normal','500','600','700','900'],['cyrillic','chinese-simplified','latin','vietnamese']],
652
+ 'Noto Serif TC'=>[['200','300','normal','500','600','700','900'],['cyrillic','chinese-traditional','latin','vietnamese']],
653
+ 'Nova Cut'=>[['normal'],['latin']],
654
+ 'Nova Flat'=>[['normal'],['latin']],
655
+ 'Nova Mono'=>[['normal'],['greek','latin']],
656
+ 'Nova Oval'=>[['normal'],['latin']],
657
+ 'Nova Round'=>[['normal'],['latin']],
658
+ 'Nova Script'=>[['normal'],['latin']],
659
+ 'Nova Slim'=>[['normal'],['latin']],
660
+ 'Nova Square'=>[['normal'],['latin']],
661
+ 'Numans'=>[['normal'],['latin']],
662
+ 'Nunito'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
663
+ 'Nunito Sans'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','vietnamese']],
664
+ 'Odibee Sans'=>[['normal'],['latin']],
665
+ 'Odor Mean Chey'=>[['normal'],['khmer']],
666
+ 'Offside'=>[['normal'],['latin']],
667
+ 'Old Standard TT'=>[['normal','italic','700'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
668
+ 'Oldenburg'=>[['normal'],['latin-ext','latin']],
669
+ 'Oleo Script'=>[['normal','700'],['latin-ext','latin']],
670
+ 'Oleo Script Swash Caps'=>[['normal','700'],['latin-ext','latin']],
671
+ 'Open Sans'=>[['300','300italic','normal','italic','600','600italic','700','700italic','800','800italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
672
+ 'Open Sans Condensed'=>[['300','300italic','700'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
673
+ 'Oranienbaum'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','latin']],
674
+ 'Orbitron'=>[['normal','500','600','700','800','900'],['latin']],
675
+ 'Oregano'=>[['normal','italic'],['latin-ext','latin']],
676
+ 'Orienta'=>[['normal'],['latin-ext','latin']],
677
+ 'Original Surfer'=>[['normal'],['latin']],
678
+ 'Oswald'=>[['200','300','normal','500','600','700'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
679
+ 'Over the Rainbow'=>[['normal'],['latin']],
680
+ 'Overlock'=>[['normal','italic','700','700italic','900','900italic'],['latin-ext','latin']],
681
+ 'Overlock SC'=>[['normal'],['latin-ext','latin']],
682
+ 'Overpass'=>[['100','100italic','200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin']],
683
+ 'Overpass Mono'=>[['300','normal','600','700'],['latin-ext','latin']],
684
+ 'Ovo'=>[['normal'],['latin']],
685
+ 'Oxygen'=>[['300','normal','700'],['latin-ext','latin']],
686
+ 'Oxygen Mono'=>[['normal'],['latin-ext','latin']],
687
+ 'PT Mono'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','latin']],
688
+ 'PT Sans'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin']],
689
+ 'PT Sans Caption'=>[['normal','700'],['cyrillic-ext','cyrillic','latin-ext','latin']],
690
+ 'PT Sans Narrow'=>[['normal','700'],['cyrillic-ext','cyrillic','latin-ext','latin']],
691
+ 'PT Serif'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin']],
692
+ 'PT Serif Caption'=>[['normal','italic'],['cyrillic-ext','cyrillic','latin-ext','latin']],
693
+ 'Pacifico'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
694
+ 'Padauk'=>[['normal','700'],['myanmar','latin']],
695
+ 'Palanquin'=>[['100','200','300','normal','500','600','700'],['latin-ext','devanagari','latin']],
696
+ 'Palanquin Dark'=>[['normal','500','600','700'],['latin-ext','devanagari','latin']],
697
+ 'Pangolin'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
698
+ 'Paprika'=>[['normal'],['latin']],
699
+ 'Parisienne'=>[['normal'],['latin-ext','latin']],
700
+ 'Passero One'=>[['normal'],['latin-ext','latin']],
701
+ 'Passion One'=>[['normal','700','900'],['latin-ext','latin']],
702
+ 'Pathway Gothic One'=>[['normal'],['latin-ext','latin']],
703
+ 'Patrick Hand'=>[['normal'],['latin-ext','latin','vietnamese']],
704
+ 'Patrick Hand SC'=>[['normal'],['latin-ext','latin','vietnamese']],
705
+ 'Pattaya'=>[['normal'],['cyrillic','latin-ext','latin','thai','vietnamese']],
706
+ 'Patua One'=>[['normal'],['latin']],
707
+ 'Pavanam'=>[['normal'],['latin-ext','latin','tamil']],
708
+ 'Paytone One'=>[['normal'],['latin-ext','latin','vietnamese']],
709
+ 'Peddana'=>[['normal'],['telugu','latin']],
710
+ 'Peralta'=>[['normal'],['latin-ext','latin']],
711
+ 'Permanent Marker'=>[['normal'],['latin']],
712
+ 'Petit Formal Script'=>[['normal'],['latin-ext','latin']],
713
+ 'Petrona'=>[['normal'],['latin']],
714
+ 'Philosopher'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','latin','vietnamese']],
715
+ 'Piedra'=>[['normal'],['latin-ext','latin']],
716
+ 'Pinyon Script'=>[['normal'],['latin']],
717
+ 'Pirata One'=>[['normal'],['latin-ext','latin']],
718
+ 'Plaster'=>[['normal'],['latin-ext','latin']],
719
+ 'Play'=>[['normal','700'],['cyrillic-ext','cyrillic','latin-ext','greek','latin','vietnamese']],
720
+ 'Playball'=>[['normal'],['latin-ext','latin']],
721
+ 'Playfair Display'=>[['normal','italic','700','700italic','900','900italic'],['cyrillic','latin-ext','latin','vietnamese']],
722
+ 'Playfair Display SC'=>[['normal','italic','700','700italic','900','900italic'],['cyrillic','latin-ext','latin','vietnamese']],
723
+ 'Podkova'=>[['normal','500','600','700','800'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
724
+ 'Poiret One'=>[['normal'],['cyrillic','latin-ext','latin']],
725
+ 'Poller One'=>[['normal'],['latin']],
726
+ 'Poly'=>[['normal','italic'],['latin']],
727
+ 'Pompiere'=>[['normal'],['latin']],
728
+ 'Pontano Sans'=>[['normal'],['latin-ext','latin']],
729
+ 'Poor Story'=>[['normal'],['korean','latin']],
730
+ 'Poppins'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','devanagari','latin']],
731
+ 'Port Lligat Sans'=>[['normal'],['latin']],
732
+ 'Port Lligat Slab'=>[['normal'],['latin']],
733
+ 'Pragati Narrow'=>[['normal','700'],['latin-ext','devanagari','latin']],
734
+ 'Prata'=>[['normal'],['cyrillic-ext','cyrillic','latin','vietnamese']],
735
+ 'Preahvihear'=>[['normal'],['khmer']],
736
+ 'Press Start 2P'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','greek','latin']],
737
+ 'Pridi'=>[['200','300','normal','500','600','700'],['latin-ext','latin','thai','vietnamese']],
738
+ 'Princess Sofia'=>[['normal'],['latin-ext','latin']],
739
+ 'Prociono'=>[['normal'],['latin']],
740
+ 'Prompt'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','thai','vietnamese']],
741
+ 'Prosto One'=>[['normal'],['cyrillic','latin-ext','latin']],
742
+ 'Proza Libre'=>[['normal','italic','500','500italic','600','600italic','700','700italic','800','800italic'],['latin-ext','latin']],
743
+ 'Public Sans'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin-ext','latin']],
744
+ 'Puritan'=>[['normal','italic','700','700italic'],['latin']],
745
+ 'Purple Purse'=>[['normal'],['latin-ext','latin']],
746
+ 'Quando'=>[['normal'],['latin-ext','latin']],
747
+ 'Quantico'=>[['normal','italic','700','700italic'],['latin']],
748
+ 'Quattrocento'=>[['normal','700'],['latin-ext','latin']],
749
+ 'Quattrocento Sans'=>[['normal','italic','700','700italic'],['latin-ext','latin']],
750
+ 'Questrial'=>[['normal'],['latin']],
751
+ 'Quicksand'=>[['300','normal','500','600','700'],['latin-ext','latin','vietnamese']],
752
+ 'Quintessential'=>[['normal'],['latin-ext','latin']],
753
+ 'Qwigley'=>[['normal'],['latin-ext','latin']],
754
+ 'Racing Sans One'=>[['normal'],['latin-ext','latin']],
755
+ 'Radley'=>[['normal','italic'],['latin-ext','latin']],
756
+ 'Rajdhani'=>[['300','normal','500','600','700'],['latin-ext','devanagari','latin']],
757
+ 'Rakkas'=>[['normal'],['arabic','latin-ext','latin']],
758
+ 'Raleway'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin']],
759
+ 'Raleway Dots'=>[['normal'],['latin-ext','latin']],
760
+ 'Ramabhadra'=>[['normal'],['telugu','latin']],
761
+ 'Ramaraja'=>[['normal'],['telugu','latin']],
762
+ 'Rambla'=>[['normal','italic','700','700italic'],['latin-ext','latin']],
763
+ 'Rammetto One'=>[['normal'],['latin-ext','latin']],
764
+ 'Ranchers'=>[['normal'],['latin-ext','latin']],
765
+ 'Rancho'=>[['normal'],['latin']],
766
+ 'Ranga'=>[['normal','700'],['latin-ext','devanagari','latin']],
767
+ 'Rasa'=>[['300','normal','500','600','700'],['latin-ext','latin','gujarati']],
768
+ 'Rationale'=>[['normal'],['latin']],
769
+ 'Ravi Prakash'=>[['normal'],['telugu','latin']],
770
+ 'Red Hat Display'=>[['normal','italic','500','500italic','700','700italic','900','900italic'],['latin-ext','latin']],
771
+ 'Red Hat Text'=>[['normal','italic','500','500italic','700','700italic'],['latin-ext','latin']],
772
+ 'Redressed'=>[['normal'],['latin']],
773
+ 'Reem Kufi'=>[['normal'],['arabic','latin']],
774
+ 'Reenie Beanie'=>[['normal'],['latin']],
775
+ 'Revalia'=>[['normal'],['latin-ext','latin']],
776
+ 'Rhodium Libre'=>[['normal'],['latin-ext','devanagari','latin']],
777
+ 'Ribeye'=>[['normal'],['latin-ext','latin']],
778
+ 'Ribeye Marrow'=>[['normal'],['latin-ext','latin']],
779
+ 'Righteous'=>[['normal'],['latin-ext','latin']],
780
+ 'Risque'=>[['normal'],['latin-ext','latin']],
781
+ 'Roboto'=>[['100','100italic','300','300italic','normal','italic','500','500italic','700','700italic','900','900italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
782
+ 'Roboto Condensed'=>[['300','300italic','normal','italic','700','700italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
783
+ 'Roboto Mono'=>[['100','100italic','300','300italic','normal','italic','500','500italic','700','700italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
784
+ 'Roboto Slab'=>[['100','200','300','normal','500','600','700','800','900'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
785
+ 'Rochester'=>[['normal'],['latin']],
786
+ 'Rock Salt'=>[['normal'],['latin']],
787
+ 'Rokkitt'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
788
+ 'Romanesco'=>[['normal'],['latin-ext','latin']],
789
+ 'Ropa Sans'=>[['normal','italic'],['latin-ext','latin']],
790
+ 'Rosario'=>[['300','normal','500','600','700','300italic','italic','500italic','600italic','700italic'],['latin-ext','latin','vietnamese']],
791
+ 'Rosarivo'=>[['normal','italic'],['latin-ext','latin']],
792
+ 'Rouge Script'=>[['normal'],['latin']],
793
+ 'Rozha One'=>[['normal'],['latin-ext','devanagari','latin']],
794
+ 'Rubik'=>[['300','300italic','normal','italic','500','500italic','700','700italic','900','900italic'],['cyrillic','latin-ext','hebrew','latin']],
795
+ 'Rubik Mono One'=>[['normal'],['cyrillic','latin-ext','latin']],
796
+ 'Ruda'=>[['normal','700','900'],['latin-ext','latin']],
797
+ 'Rufina'=>[['normal','700'],['latin-ext','latin']],
798
+ 'Ruge Boogie'=>[['normal'],['latin-ext','latin']],
799
+ 'Ruluko'=>[['normal'],['latin-ext','latin']],
800
+ 'Rum Raisin'=>[['normal'],['latin-ext','latin']],
801
+ 'Ruslan Display'=>[['normal'],['cyrillic','latin-ext','latin']],
802
+ 'Russo One'=>[['normal'],['cyrillic','latin-ext','latin']],
803
+ 'Ruthie'=>[['normal'],['latin-ext','latin']],
804
+ 'Rye'=>[['normal'],['latin-ext','latin']],
805
+ 'Sacramento'=>[['normal'],['latin-ext','latin']],
806
+ 'Sahitya'=>[['normal','700'],['devanagari','latin']],
807
+ 'Sail'=>[['normal'],['latin-ext','latin']],
808
+ 'Saira'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
809
+ 'Saira Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
810
+ 'Saira Extra Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
811
+ 'Saira Semi Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
812
+ 'Saira Stencil One'=>[['normal'],['latin-ext','latin','vietnamese']],
813
+ 'Salsa'=>[['normal'],['latin']],
814
+ 'Sanchez'=>[['normal','italic'],['latin-ext','latin']],
815
+ 'Sancreek'=>[['normal'],['latin-ext','latin']],
816
+ 'Sansita'=>[['normal','italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin']],
817
+ 'Sarabun'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic'],['latin-ext','latin','thai','vietnamese']],
818
+ 'Sarala'=>[['normal','700'],['latin-ext','devanagari','latin']],
819
+ 'Sarina'=>[['normal'],['latin-ext','latin']],
820
+ 'Sarpanch'=>[['normal','500','600','700','800','900'],['latin-ext','devanagari','latin']],
821
+ 'Satisfy'=>[['normal'],['latin']],
822
+ 'Sawarabi Gothic'=>[['normal'],['cyrillic','latin-ext','latin','vietnamese','japanese']],
823
+ 'Sawarabi Mincho'=>[['normal'],['latin-ext','latin','japanese']],
824
+ 'Scada'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin']],
825
+ 'Scheherazade'=>[['normal','700'],['arabic','latin']],
826
+ 'Schoolbell'=>[['normal'],['latin']],
827
+ 'Scope One'=>[['normal'],['latin-ext','latin']],
828
+ 'Seaweed Script'=>[['normal'],['latin-ext','latin']],
829
+ 'Secular One'=>[['normal'],['latin-ext','hebrew','latin']],
830
+ 'Sedgwick Ave'=>[['normal'],['latin-ext','latin','vietnamese']],
831
+ 'Sedgwick Ave Display'=>[['normal'],['latin-ext','latin','vietnamese']],
832
+ 'Sevillana'=>[['normal'],['latin-ext','latin']],
833
+ 'Seymour One'=>[['normal'],['cyrillic','latin-ext','latin']],
834
+ 'Shadows Into Light'=>[['normal'],['latin']],
835
+ 'Shadows Into Light Two'=>[['normal'],['latin-ext','latin']],
836
+ 'Shanti'=>[['normal'],['latin']],
837
+ 'Share'=>[['normal','italic','700','700italic'],['latin-ext','latin']],
838
+ 'Share Tech'=>[['normal'],['latin']],
839
+ 'Share Tech Mono'=>[['normal'],['latin']],
840
+ 'Shojumaru'=>[['normal'],['latin-ext','latin']],
841
+ 'Short Stack'=>[['normal'],['latin']],
842
+ 'Shrikhand'=>[['normal'],['latin-ext','latin','gujarati']],
843
+ 'Siemreap'=>[['normal'],['khmer']],
844
+ 'Sigmar One'=>[['normal'],['latin-ext','latin','vietnamese']],
845
+ 'Signika'=>[['300','normal','600','700'],['latin-ext','latin']],
846
+ 'Signika Negative'=>[['300','normal','600','700'],['latin-ext','latin']],
847
+ 'Simonetta'=>[['normal','italic','900','900italic'],['latin-ext','latin']],
848
+ 'Single Day'=>[['normal'],['korean']],
849
+ 'Sintony'=>[['normal','700'],['latin-ext','latin']],
850
+ 'Sirin Stencil'=>[['normal'],['latin']],
851
+ 'Six Caps'=>[['normal'],['latin']],
852
+ 'Skranji'=>[['normal','700'],['latin-ext','latin']],
853
+ 'Slabo 13px'=>[['normal'],['latin-ext','latin']],
854
+ 'Slabo 27px'=>[['normal'],['latin-ext','latin']],
855
+ 'Slackey'=>[['normal'],['latin']],
856
+ 'Smokum'=>[['normal'],['latin']],
857
+ 'Smythe'=>[['normal'],['latin']],
858
+ 'Sniglet'=>[['normal','800'],['latin-ext','latin']],
859
+ 'Snippet'=>[['normal'],['latin']],
860
+ 'Snowburst One'=>[['normal'],['latin-ext','latin']],
861
+ 'Sofadi One'=>[['normal'],['latin']],
862
+ 'Sofia'=>[['normal'],['latin']],
863
+ 'Solway'=>[['300','normal','500','700','800'],['latin']],
864
+ 'Song Myung'=>[['normal'],['korean','latin']],
865
+ 'Sonsie One'=>[['normal'],['latin-ext','latin']],
866
+ 'Sorts Mill Goudy'=>[['normal','italic'],['latin-ext','latin']],
867
+ 'Source Code Pro'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','900','900italic'],['cyrillic-ext','cyrillic','latin-ext','greek','latin','vietnamese']],
868
+ 'Source Sans Pro'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','900','900italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
869
+ 'Source Serif Pro'=>[['normal','600','700'],['latin-ext','latin']],
870
+ 'Space Mono'=>[['normal','italic','700','700italic'],['latin-ext','latin','vietnamese']],
871
+ 'Special Elite'=>[['normal'],['latin']],
872
+ 'Spectral'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic'],['cyrillic','latin-ext','latin','vietnamese']],
873
+ 'Spectral SC'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic'],['cyrillic','latin-ext','latin','vietnamese']],
874
+ 'Spicy Rice'=>[['normal'],['latin']],
875
+ 'Spinnaker'=>[['normal'],['latin-ext','latin']],
876
+ 'Spirax'=>[['normal'],['latin']],
877
+ 'Squada One'=>[['normal'],['latin']],
878
+ 'Sree Krushnadevaraya'=>[['normal'],['telugu','latin']],
879
+ 'Sriracha'=>[['normal'],['latin-ext','latin','thai','vietnamese']],
880
+ 'Srisakdi'=>[['normal','700'],['latin-ext','latin','thai','vietnamese']],
881
+ 'Staatliches'=>[['normal'],['latin-ext','latin']],
882
+ 'Stalemate'=>[['normal'],['latin-ext','latin']],
883
+ 'Stalinist One'=>[['normal'],['cyrillic','latin-ext','latin']],
884
+ 'Stardos Stencil'=>[['normal','700'],['latin']],
885
+ 'Stint Ultra Condensed'=>[['normal'],['latin-ext','latin']],
886
+ 'Stint Ultra Expanded'=>[['normal'],['latin-ext','latin']],
887
+ 'Stoke'=>[['300','normal'],['latin-ext','latin']],
888
+ 'Strait'=>[['normal'],['latin']],
889
+ 'Stylish'=>[['normal'],['korean','latin']],
890
+ 'Sue Ellen Francisco'=>[['normal'],['latin']],
891
+ 'Suez One'=>[['normal'],['latin-ext','hebrew','latin']],
892
+ 'Sulphur Point'=>[['300','normal','700'],['latin-ext','latin']],
893
+ 'Sumana'=>[['normal','700'],['latin-ext','devanagari','latin']],
894
+ 'Sunflower'=>[['300','500','700'],['korean','latin']],
895
+ 'Sunshiney'=>[['normal'],['latin']],
896
+ 'Supermercado One'=>[['normal'],['latin']],
897
+ 'Sura'=>[['normal','700'],['latin-ext','devanagari','latin']],
898
+ 'Suranna'=>[['normal'],['telugu','latin']],
899
+ 'Suravaram'=>[['normal'],['telugu','latin']],
900
+ 'Suwannaphum'=>[['normal'],['khmer']],
901
+ 'Swanky and Moo Moo'=>[['normal'],['latin']],
902
+ 'Syncopate'=>[['normal','700'],['latin']],
903
+ 'Tajawal'=>[['200','300','normal','500','700','800','900'],['arabic','latin']],
904
+ 'Tangerine'=>[['normal','700'],['latin']],
905
+ 'Taprom'=>[['normal'],['khmer']],
906
+ 'Tauri'=>[['normal'],['latin-ext','latin']],
907
+ 'Taviraj'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','thai','vietnamese']],
908
+ 'Teko'=>[['300','normal','500','600','700'],['latin-ext','devanagari','latin']],
909
+ 'Telex'=>[['normal'],['latin-ext','latin']],
910
+ 'Tenali Ramakrishna'=>[['normal'],['telugu','latin']],
911
+ 'Tenor Sans'=>[['normal'],['cyrillic','latin-ext','latin']],
912
+ 'Text Me One'=>[['normal'],['latin-ext','latin']],
913
+ 'Thasadith'=>[['normal','italic','700','700italic'],['latin-ext','latin','thai','vietnamese']],
914
+ 'The Girl Next Door'=>[['normal'],['latin']],
915
+ 'Tienne'=>[['normal','700','900'],['latin']],
916
+ 'Tillana'=>[['normal','500','600','700','800'],['latin-ext','devanagari','latin']],
917
+ 'Timmana'=>[['normal'],['telugu','latin']],
918
+ 'Tinos'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','hebrew','greek','latin','vietnamese']],
919
+ 'Titan One'=>[['normal'],['latin-ext','latin']],
920
+ 'Titillium Web'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','900'],['latin-ext','latin']],
921
+ 'Tomorrow'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin']],
922
+ 'Trade Winds'=>[['normal'],['latin']],
923
+ 'Trirong'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','thai','vietnamese']],
924
+ 'Trocchi'=>[['normal'],['latin-ext','latin']],
925
+ 'Trochut'=>[['normal','italic','700'],['latin']],
926
+ 'Trykker'=>[['normal'],['latin-ext','latin']],
927
+ 'Tulpen One'=>[['normal'],['latin']],
928
+ 'Turret Road'=>[['200','300','normal','500','700','800'],['latin-ext','latin']],
929
+ 'Ubuntu'=>[['300','300italic','normal','italic','500','500italic','700','700italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin']],
930
+ 'Ubuntu Condensed'=>[['normal'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin']],
931
+ 'Ubuntu Mono'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin']],
932
+ 'Ultra'=>[['normal'],['latin']],
933
+ 'Uncial Antiqua'=>[['normal'],['latin']],
934
+ 'Underdog'=>[['normal'],['cyrillic','latin-ext','latin']],
935
+ 'Unica One'=>[['normal'],['latin-ext','latin']],
936
+ 'UnifrakturCook'=>[['700'],['latin']],
937
+ 'UnifrakturMaguntia'=>[['normal'],['latin']],
938
+ 'Unkempt'=>[['normal','700'],['latin']],
939
+ 'Unlock'=>[['normal'],['latin']],
940
+ 'Unna'=>[['normal','italic','700','700italic'],['latin-ext','latin']],
941
+ 'VT323'=>[['normal'],['latin-ext','latin','vietnamese']],
942
+ 'Vampiro One'=>[['normal'],['latin-ext','latin']],
943
+ 'Varela'=>[['normal'],['latin-ext','latin']],
944
+ 'Varela Round'=>[['normal'],['latin-ext','hebrew','latin','vietnamese']],
945
+ 'Vast Shadow'=>[['normal'],['latin']],
946
+ 'Vesper Libre'=>[['normal','500','700','900'],['latin-ext','devanagari','latin']],
947
+ 'Vibes'=>[['normal'],['arabic','latin']],
948
+ 'Vibur'=>[['normal'],['latin']],
949
+ 'Vidaloka'=>[['normal'],['latin']],
950
+ 'Viga'=>[['normal'],['latin-ext','latin']],
951
+ 'Voces'=>[['normal'],['latin-ext','latin']],
952
+ 'Volkhov'=>[['normal','italic','700','700italic'],['latin']],
953
+ 'Vollkorn'=>[['normal','italic','600','600italic','700','700italic','900','900italic'],['cyrillic-ext','cyrillic','latin-ext','greek','latin','vietnamese']],
954
+ 'Vollkorn SC'=>[['normal','600','700','900'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
955
+ 'Voltaire'=>[['normal'],['latin']],
956
+ 'Waiting for the Sunrise'=>[['normal'],['latin']],
957
+ 'Wallpoet'=>[['normal'],['latin']],
958
+ 'Walter Turncoat'=>[['normal'],['latin']],
959
+ 'Warnes'=>[['normal'],['latin-ext','latin']],
960
+ 'Wellfleet'=>[['normal'],['latin-ext','latin']],
961
+ 'Wendy One'=>[['normal'],['latin-ext','latin']],
962
+ 'Wire One'=>[['normal'],['latin']],
963
+ 'Work Sans'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin']],
964
+ 'Yanone Kaffeesatz'=>[['200','300','normal','700'],['cyrillic','latin-ext','latin','vietnamese']],
965
+ 'Yantramanav'=>[['100','300','normal','500','700','900'],['latin-ext','devanagari','latin']],
966
+ 'Yatra One'=>[['normal'],['latin-ext','devanagari','latin']],
967
+ 'Yellowtail'=>[['normal'],['latin']],
968
+ 'Yeon Sung'=>[['normal'],['korean','latin']],
969
+ 'Yeseva One'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
970
+ 'Yesteryear'=>[['normal'],['latin']],
971
+ 'Yrsa'=>[['300','normal','500','600','700'],['latin-ext','latin']],
972
+ 'ZCOOL KuaiLe'=>[['normal'],['chinese-simplified','latin']],
973
+ 'ZCOOL QingKe HuangYou'=>[['normal'],['chinese-simplified','latin']],
974
+ 'ZCOOL XiaoWei'=>[['normal'],['chinese-simplified','latin']],
975
+ 'Zeyada'=>[['normal'],['latin']],
976
+ 'Zhi Mang Xing'=>[['normal'],['chinese-simplified','latin']],
977
+ 'Zilla Slab'=>[['300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin']],
978
+ 'Zilla Slab Highlight'=>[['normal','700'],['latin-ext','latin']]
979
+ ];
980
+ }
981
+ }
admin/views/{tp-metabox → framework}/fields/typography/typography.php RENAMED
@@ -7,8 +7,8 @@
7
  * @since 1.0.0
8
  * @version 1.0.0
9
  */
10
- if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
11
- class SPFTESTIMONIAL_Field_typography extends SPFTESTIMONIAL_Fields {
12
 
13
  public $chosen = false;
14
 
@@ -72,29 +72,29 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
72
  $default_value = ( ! empty( $this->field['default'] ) ) ? wp_parse_args( $this->field['default'], $default_value ) : $default_value;
73
  $this->value = wp_parse_args( $this->value, $default_value );
74
  $this->chosen = $args['chosen'];
75
- $chosen_class = ( $this->chosen ) ? ' spftestimonial--chosen' : '';
76
 
77
- echo '<div class="spftestimonial--typography' . $chosen_class . '" data-unit="' . $args['unit'] . '" data-exclude="' . $args['exclude'] . '">';
78
 
79
- echo '<div class="spftestimonial--blocks spftestimonial--blocks-selects">';
80
 
81
  //
82
  // Font Family
83
  if ( ! empty( $args['font_family'] ) ) {
84
- echo '<div class="spftestimonial--block">';
85
- echo '<div class="spftestimonial--title">' . esc_html__( 'Font Family', 'testimonial-free' ) . '</div>';
86
- echo $this->create_select( array( $this->value['font-family'] => $this->value['font-family'] ), 'font-family', esc_html__( 'Select a font', 'testimonial-free' ) );
87
  echo '</div>';
88
  }
89
 
90
  //
91
  // Backup Font Family
92
  if ( ! empty( $args['backup_font_family'] ) ) {
93
- echo '<div class="spftestimonial--block spftestimonial--block-backup-font-family hidden">';
94
- echo '<div class="spftestimonial--title">' . esc_html__( 'Backup Font Family', 'testimonial-free' ) . '</div>';
95
  echo $this->create_select(
96
  apply_filters(
97
- 'spftestimonial_field_typography_backup_font_family', array(
98
  'Arial, Helvetica, sans-serif',
99
  "'Arial Black', Gadget, sans-serif",
100
  "'Comic Sans MS', cursive, sans-serif",
@@ -108,7 +108,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
108
  'Georgia, serif',
109
  'Palatino Linotype',
110
  )
111
- ), 'backup-font-family', esc_html__( 'Default', 'testimonial-free' )
112
  );
113
  echo '</div>';
114
  }
@@ -119,23 +119,23 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
119
 
120
  //
121
  // Font Style Select
122
- echo '<div class="spftestimonial--block spftestimonial--block-font-style hidden">';
123
- echo '<div class="spftestimonial--title">' . esc_html__( 'Font Style', 'testimonial-free' ) . '</div>';
124
- echo '<select disabled class="spftestimonial--font-style-select" data-placeholder="Default">';
125
- echo '<option value="">' . ( ! $this->chosen ? esc_html__( 'Default', 'testimonial-free' ) : '' ) . '</option>';
126
  if ( ! empty( $this->value['font-weight'] ) || ! empty( $this->value['font-style'] ) ) {
127
  echo '<option value="' . strtolower( $this->value['font-weight'] . $this->value['font-style'] ) . '" selected></option>';
128
  }
129
  echo '</select>';
130
- echo '<input type="hidden" name="' . $this->field_name( '[font-weight]' ) . '" class="spftestimonial--font-weight" value="' . $this->value['font-weight'] . '" />';
131
- echo '<input type="hidden" name="' . $this->field_name( '[font-style]' ) . '" class="spftestimonial--font-style" value="' . $this->value['font-style'] . '" />';
132
 
133
  //
134
  // Extra Font Style Select
135
  if ( ! empty( $args['extra_styles'] ) ) {
136
- echo '<div class="spftestimonial--block-extra-styles hidden">';
137
- echo ( ! $this->chosen ) ? '<div class="spftestimonial--title">' . esc_html__( 'Load Extra Styles', 'testimonial-free' ) . '</div>' : '';
138
- $placeholder = ( $this->chosen ) ? esc_html__( 'Load Extra Styles', 'testimonial-free' ) : esc_html__( 'Default', 'testimonial-free' );
139
  echo $this->create_select( $this->value['extra-styles'], 'extra-styles', $placeholder, true );
140
  echo '</div>';
141
  }
@@ -147,27 +147,27 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
147
  //
148
  // Subset
149
  if ( ! empty( $args['subset'] ) ) {
150
- echo '<div class="spftestimonial--block spftestimonial--block-subset hidden">';
151
- echo '<div class="spftestimonial--title">' . esc_html__( 'Subset', 'testimonial-free' ) . '</div>';
152
  $subset = ( is_array( $this->value['subset'] ) ) ? $this->value['subset'] : array_filter( (array) $this->value['subset'] );
153
- echo $this->create_select( $subset, 'subset', esc_html__( 'Default', 'testimonial-free' ), $args['multi_subset'] );
154
  echo '</div>';
155
  }
156
 
157
  //
158
  // Text Align
159
  if ( ! empty( $args['text_align'] ) ) {
160
- echo '<div class="spftestimonial--block">';
161
- echo '<div class="spftestimonial--title">' . esc_html__( 'Text Align', 'testimonial-free' ) . '</div>';
162
  echo $this->create_select(
163
  array(
164
- 'inherit' => esc_html__( 'Inherit', 'testimonial-free' ),
165
- 'left' => esc_html__( 'Left', 'testimonial-free' ),
166
- 'center' => esc_html__( 'Center', 'testimonial-free' ),
167
- 'right' => esc_html__( 'Right', 'testimonial-free' ),
168
- 'justify' => esc_html__( 'Justify', 'testimonial-free' ),
169
- 'initial' => esc_html__( 'Initial', 'testimonial-free' ),
170
- ), 'text-align', esc_html__( 'Default', 'testimonial-free' )
171
  );
172
  echo '</div>';
173
  }
@@ -175,14 +175,14 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
175
  //
176
  // Font Variant
177
  if ( ! empty( $args['font_variant'] ) ) {
178
- echo '<div class="spftestimonial--block">';
179
- echo '<div class="spftestimonial--title">' . esc_html__( 'Font Variant', 'testimonial-free' ) . '</div>';
180
  echo $this->create_select(
181
  array(
182
- 'normal' => esc_html__( 'Normal', 'testimonial-free' ),
183
- 'small-caps' => esc_html__( 'Small Caps', 'testimonial-free' ),
184
- 'all-small-caps' => esc_html__( 'All Small Caps', 'testimonial-free' ),
185
- ), 'font-variant', esc_html__( 'Default', 'testimonial-free' )
186
  );
187
  echo '</div>';
188
  }
@@ -190,15 +190,15 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
190
  //
191
  // Text Transform
192
  if ( ! empty( $args['text_transform'] ) ) {
193
- echo '<div class="spftestimonial--block">';
194
- echo '<div class="spftestimonial--title">' . esc_html__( 'Text Transform', 'testimonial-free' ) . '</div>';
195
  echo $this->create_select(
196
  array(
197
- 'none' => esc_html__( 'None', 'testimonial-free' ),
198
- 'capitalize' => esc_html__( 'Capitalize', 'testimonial-free' ),
199
- 'uppercase' => esc_html__( 'Uppercase', 'testimonial-free' ),
200
- 'lowercase' => esc_html__( 'Lowercase', 'testimonial-free' ),
201
- ), 'text-transform', esc_html__( 'Default', 'testimonial-free' )
202
  );
203
  echo '</div>';
204
  }
@@ -206,35 +206,35 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
206
  //
207
  // Text Decoration
208
  if ( ! empty( $args['text_decoration'] ) ) {
209
- echo '<div class="spftestimonial--block">';
210
- echo '<div class="spftestimonial--title">' . esc_html__( 'Text Decoration', 'testimonial-free' ) . '</div>';
211
  echo $this->create_select(
212
  array(
213
- 'none' => esc_html__( 'None', 'testimonial-free' ),
214
- 'underline' => esc_html__( 'Solid', 'testimonial-free' ),
215
- 'underline double' => esc_html__( 'Double', 'testimonial-free' ),
216
- 'underline dotted' => esc_html__( 'Dotted', 'testimonial-free' ),
217
- 'underline dashed' => esc_html__( 'Dashed', 'testimonial-free' ),
218
- 'underline wavy' => esc_html__( 'Wavy', 'testimonial-free' ),
219
- 'underline overline' => esc_html__( 'Overline', 'testimonial-free' ),
220
- 'line-through' => esc_html__( 'Line-through', 'testimonial-free' ),
221
- ), 'text-decoration', esc_html__( 'Default', 'testimonial-free' )
222
  );
223
  echo '</div>';
224
  }
225
 
226
  echo '</div>';
227
 
228
- echo '<div class="spftestimonial--blocks spftestimonial--blocks-inputs">';
229
 
230
  //
231
  // Font Size
232
  if ( ! empty( $args['font_size'] ) ) {
233
- echo '<div class="spftestimonial--block">';
234
- echo '<div class="spftestimonial--title">' . esc_html__( 'Font Size', 'testimonial-free' ) . '</div>';
235
- echo '<div class="spftestimonial--blocks">';
236
- echo '<div class="spftestimonial--block"><input disabled type="text" name="' . $this->field_name( '[font-size]' ) . '" class="spftestimonial--font-size spftestimonial--input spftestimonial-number" value="' . $this->value['font-size'] . '" /></div>';
237
- echo '<div class="spftestimonial--block spftestimonial--unit">' . $args['unit'] . '</div>';
238
  echo '</div>';
239
  echo '</div>';
240
  }
@@ -242,11 +242,11 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
242
  //
243
  // Line Height
244
  if ( ! empty( $args['line_height'] ) ) {
245
- echo '<div class="spftestimonial--block">';
246
- echo '<div class="spftestimonial--title">' . esc_html__( 'Line Height', 'testimonial-free' ) . '</div>';
247
- echo '<div class="spftestimonial--blocks">';
248
- echo '<div class="spftestimonial--block"><input disabled type="text" name="' . $this->field_name( '[line-height]' ) . '" class="spftestimonial--line-height spftestimonial--input spftestimonial-number" value="' . $this->value['line-height'] . '" /></div>';
249
- echo '<div class="spftestimonial--block spftestimonial--unit">' . $args['unit'] . '</div>';
250
  echo '</div>';
251
  echo '</div>';
252
  }
@@ -254,11 +254,11 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
254
  //
255
  // Letter Spacing
256
  if ( ! empty( $args['letter_spacing'] ) ) {
257
- echo '<div class="spftestimonial--block">';
258
- echo '<div class="spftestimonial--title">' . esc_html__( 'Letter Spacing', 'testimonial-free' ) . '</div>';
259
- echo '<div class="spftestimonial--blocks">';
260
- echo '<div class="spftestimonial--block"><input disabled type="text" name="' . $this->field_name( '[letter-spacing]' ) . '" class="spftestimonial--letter-spacing spftestimonial--input spftestimonial-number" value="' . $this->value['letter-spacing'] . '" /></div>';
261
- echo '<div class="spftestimonial--block spftestimonial--unit">' . $args['unit'] . '</div>';
262
  echo '</div>';
263
  echo '</div>';
264
  }
@@ -266,11 +266,11 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
266
  //
267
  // Word Spacing
268
  if ( ! empty( $args['word_spacing'] ) ) {
269
- echo '<div class="spftestimonial--block">';
270
- echo '<div class="spftestimonial--title">' . esc_html__( 'Word Spacing', 'testimonial-free' ) . '</div>';
271
- echo '<div class="spftestimonial--blocks">';
272
- echo '<div class="spftestimonial--block"><input type="text" name="' . $this->field_name( '[word-spacing]' ) . '" class="spftestimonial--word-spacing spftestimonial--input spftestimonial-number" value="' . $this->value['word-spacing'] . '" /></div>';
273
- echo '<div class="spftestimonial--block spftestimonial--unit">' . $args['unit'] . '</div>';
274
  echo '</div>';
275
  echo '</div>';
276
  }
@@ -281,10 +281,10 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
281
  // Font Color
282
  if ( ! empty( $args['color'] ) ) {
283
  $default_color_attr = ( ! empty( $default_value['color'] ) ) ? ' data-default-color="' . $default_value['color'] . '"' : '';
284
- echo '<div class="spftestimonial--block spftestimonial--block-font-color">';
285
- echo '<div class="spftestimonial--title">' . esc_html__( 'Font Color', 'testimonial-free' ) . '</div>';
286
- echo '<div class="spftestimonial-field-color">';
287
- echo '<input type="text" name="' . $this->field_name( '[color]' ) . '" class="spftestimonial-color spftestimonial--color" value="' . $this->value['color'] . '"' . $default_color_attr . ' />';
288
  echo '</div>';
289
  echo '</div>';
290
  }
@@ -292,9 +292,9 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
292
  //
293
  // Custom style
294
  if ( ! empty( $args['custom_style'] ) ) {
295
- echo '<div class="spftestimonial--block spftestimonial--block-custom-style">';
296
- echo '<div class="spftestimonial--title">' . esc_html__( 'Custom Style', 'testimonial-free' ) . '</div>';
297
- echo '<textarea name="' . $this->field_name( '[custom-style]' ) . '" class="spftestimonial--custom-style">' . $this->value['custom-style'] . '</textarea>';
298
  echo '</div>';
299
  }
300
 
@@ -303,14 +303,14 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
303
  $always_preview = ( $args['preview'] !== 'always' ) ? ' hidden' : '';
304
 
305
  if ( ! empty( $args['preview'] ) ) {
306
- echo '<div class="spftestimonial--block spftestimonial--block-preview' . $always_preview . '">';
307
- echo '<div class="spftestimonial--toggle fa fa-toggle-off"></div>';
308
- echo '<div class="spftestimonial--preview">' . $args['preview_text'] . '</div>';
309
  echo '</div>';
310
  }
311
 
312
- echo '<input type="hidden" name="' . $this->field_name( '[type]' ) . '" class="spftestimonial--type" value="' . $this->value['type'] . '" />';
313
- echo '<input type="hidden" name="' . $this->field_name( '[unit]' ) . '" class="spftestimonial--unit-save" value="' . $args['unit'] . '" />';
314
 
315
  echo '</div>';
316
 
@@ -324,7 +324,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
324
  $multiple_attr = ( $is_multiple ) ? ' multiple data-multiple="true"' : '';
325
  $chosen_rtl = ( $this->chosen && is_rtl() ) ? ' chosen-rtl' : '';
326
 
327
- $output = '<select disabled name="' . $this->field_name( '[' . $name . ']' . $multiple_name ) . '" class="spftestimonial--' . $name . $chosen_rtl . '" data-placeholder="' . $placeholder . '"' . $multiple_attr . '>';
328
  $output .= ( ! empty( $placeholder ) ) ? '<option value="">' . ( ( ! $this->chosen ) ? $placeholder : '' ) . '</option>' : '';
329
 
330
  if ( ! empty( $options ) ) {
@@ -348,27 +348,27 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
348
 
349
  public function enqueue() {
350
 
351
- if ( ! wp_style_is( 'spftestimonial-webfont-loader' ) ) {
352
 
353
- SPFTESTIMONIAL::include_plugin_file( 'fields/typography/google-fonts.php' );
354
 
355
- wp_enqueue_script( 'spftestimonial-webfont-loader', 'https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js', array( 'spftestimonial' ), '1.6.28', true );
356
 
357
  $webfonts = array();
358
 
359
- $customwebfonts = apply_filters( 'spftestimonial_field_typography_customwebfonts', array() );
360
 
361
  if ( ! empty( $customwebfonts ) ) {
362
  $webfonts['custom'] = array(
363
- 'label' => esc_html__( 'Custom Web Fonts', 'testimonial-free' ),
364
  'fonts' => $customwebfonts,
365
  );
366
  }
367
 
368
  $webfonts['safe'] = array(
369
- 'label' => esc_html__( 'Safe Web Fonts', 'testimonial-free' ),
370
  'fonts' => apply_filters(
371
- 'spftestimonial_field_typography_safewebfonts', array(
372
  'Arial',
373
  'Arial Black',
374
  'Helvetica',
@@ -388,16 +388,16 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
388
  );
389
 
390
  $webfonts['google'] = array(
391
- 'label' => esc_html__( 'Google Web Fonts', 'testimonial-free' ),
392
  'fonts' => apply_filters(
393
- 'spftestimonial_field_typography_googlewebfonts', spftestimonial_get_google_fonts()
394
  ),
395
  );
396
 
397
- $defaultstyles = apply_filters( 'spftestimonial_field_typography_defaultstyles', array( 'normal', 'italic', '700', '700italic' ) );
398
 
399
  $googlestyles = apply_filters(
400
- 'spftestimonial_field_typography_googlestyles', array(
401
  '100' => 'Thin 100',
402
  '100italic' => 'Thin 100 Italic',
403
  '200' => 'Extra-Light 200',
@@ -419,10 +419,10 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
419
  )
420
  );
421
 
422
- $webfonts = apply_filters( 'spftestimonial_field_typography_webfonts', $webfonts );
423
 
424
  wp_localize_script(
425
- 'spftestimonial', 'spftestimonial_typography_json', array(
426
  'webfonts' => $webfonts,
427
  'defaultstyles' => $defaultstyles,
428
  'googlestyles' => $googlestyles,
@@ -442,8 +442,8 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
442
  if ( ! empty( $this->value['type'] ) ) {
443
  $is_google = ( $this->value['type'] === 'google' ) ? true : false;
444
  } else {
445
- SPFTESTIMONIAL::include_plugin_file( 'fields/typography/google-fonts.php' );
446
- $is_google = ( array_key_exists( $this->value['font-family'], spftestimonial_get_google_fonts() ) ) ? true : false;
447
  }
448
 
449
  if ( $is_google ) {
7
  * @since 1.0.0
8
  * @version 1.0.0
9
  */
10
+ if ( ! class_exists( 'CSF_Field_typography' ) ) {
11
+ class CSF_Field_typography extends CSF_Fields {
12
 
13
  public $chosen = false;
14
 
72
  $default_value = ( ! empty( $this->field['default'] ) ) ? wp_parse_args( $this->field['default'], $default_value ) : $default_value;
73
  $this->value = wp_parse_args( $this->value, $default_value );
74
  $this->chosen = $args['chosen'];
75
+ $chosen_class = ( $this->chosen ) ? ' csf--chosen' : '';
76
 
77
+ echo '<div class="csf--typography' . $chosen_class . '" data-unit="' . $args['unit'] . '" data-exclude="' . $args['exclude'] . '">';
78
 
79
+ echo '<div class="csf--blocks csf--blocks-selects">';
80
 
81
  //
82
  // Font Family
83
  if ( ! empty( $args['font_family'] ) ) {
84
+ echo '<div class="csf--block">';
85
+ echo '<div class="csf--title">' . esc_html__( 'Font Family', 'csf' ) . '</div>';
86
+ echo $this->create_select( array( $this->value['font-family'] => $this->value['font-family'] ), 'font-family', esc_html__( 'Select a font', 'csf' ) );
87
  echo '</div>';
88
  }
89
 
90
  //
91
  // Backup Font Family
92
  if ( ! empty( $args['backup_font_family'] ) ) {
93
+ echo '<div class="csf--block csf--block-backup-font-family hidden">';
94
+ echo '<div class="csf--title">' . esc_html__( 'Backup Font Family', 'csf' ) . '</div>';
95
  echo $this->create_select(
96
  apply_filters(
97
+ 'csf_field_typography_backup_font_family', array(
98
  'Arial, Helvetica, sans-serif',
99
  "'Arial Black', Gadget, sans-serif",
100
  "'Comic Sans MS', cursive, sans-serif",
108
  'Georgia, serif',
109
  'Palatino Linotype',
110
  )
111
+ ), 'backup-font-family', esc_html__( 'Default', 'csf' )
112
  );
113
  echo '</div>';
114
  }
119
 
120
  //
121
  // Font Style Select
122
+ echo '<div class="csf--block csf--block-font-style hidden">';
123
+ echo '<div class="csf--title">' . esc_html__( 'Font Style', 'csf' ) . '</div>';
124
+ echo '<select disabled class="csf--font-style-select" data-placeholder="Default">';
125
+ echo '<option value="">' . ( ! $this->chosen ? esc_html__( 'Default', 'csf' ) : '' ) . '</option>';
126
  if ( ! empty( $this->value['font-weight'] ) || ! empty( $this->value['font-style'] ) ) {
127
  echo '<option value="' . strtolower( $this->value['font-weight'] . $this->value['font-style'] ) . '" selected></option>';
128
  }
129
  echo '</select>';
130
+ echo '<input type="hidden" name="' . $this->field_name( '[font-weight]' ) . '" class="csf--font-weight" value="' . $this->value['font-weight'] . '" />';
131
+ echo '<input type="hidden" name="' . $this->field_name( '[font-style]' ) . '" class="csf--font-style" value="' . $this->value['font-style'] . '" />';
132
 
133
  //
134
  // Extra Font Style Select
135
  if ( ! empty( $args['extra_styles'] ) ) {
136
+ echo '<div class="csf--block-extra-styles hidden">';
137
+ echo ( ! $this->chosen ) ? '<div class="csf--title">' . esc_html__( 'Load Extra Styles', 'csf' ) . '</div>' : '';
138
+ $placeholder = ( $this->chosen ) ? esc_html__( 'Load Extra Styles', 'csf' ) : esc_html__( 'Default', 'csf' );
139
  echo $this->create_select( $this->value['extra-styles'], 'extra-styles', $placeholder, true );
140
  echo '</div>';
141
  }
147
  //
148
  // Subset
149
  if ( ! empty( $args['subset'] ) ) {
150
+ echo '<div class="csf--block csf--block-subset hidden">';
151
+ echo '<div class="csf--title">' . esc_html__( 'Subset', 'csf' ) . '</div>';
152
  $subset = ( is_array( $this->value['subset'] ) ) ? $this->value['subset'] : array_filter( (array) $this->value['subset'] );
153
+ echo $this->create_select( $subset, 'subset', esc_html__( 'Default', 'csf' ), $args['multi_subset'] );
154
  echo '</div>';
155
  }
156
 
157
  //
158
  // Text Align
159
  if ( ! empty( $args['text_align'] ) ) {
160
+ echo '<div class="csf--block">';
161
+ echo '<div class="csf--title">' . esc_html__( 'Text Align', 'csf' ) . '</div>';
162
  echo $this->create_select(
163
  array(
164
+ 'inherit' => esc_html__( 'Inherit', 'csf' ),
165
+ 'left' => esc_html__( 'Left', 'csf' ),
166
+ 'center' => esc_html__( 'Center', 'csf' ),
167
+ 'right' => esc_html__( 'Right', 'csf' ),
168
+ 'justify' => esc_html__( 'Justify', 'csf' ),
169
+ 'initial' => esc_html__( 'Initial', 'csf' ),
170
+ ), 'text-align', esc_html__( 'Default', 'csf' )
171
  );
172
  echo '</div>';
173
  }
175
  //
176
  // Font Variant
177
  if ( ! empty( $args['font_variant'] ) ) {
178
+ echo '<div class="csf--block">';
179
+ echo '<div class="csf--title">' . esc_html__( 'Font Variant', 'csf' ) . '</div>';
180
  echo $this->create_select(
181
  array(
182
+ 'normal' => esc_html__( 'Normal', 'csf' ),
183
+ 'small-caps' => esc_html__( 'Small Caps', 'csf' ),
184
+ 'all-small-caps' => esc_html__( 'All Small Caps', 'csf' ),
185
+ ), 'font-variant', esc_html__( 'Default', 'csf' )
186
  );
187
  echo '</div>';
188
  }
190
  //
191
  // Text Transform
192
  if ( ! empty( $args['text_transform'] ) ) {
193
+ echo '<div class="csf--block">';
194
+ echo '<div class="csf--title">' . esc_html__( 'Text Transform', 'csf' ) . '</div>';
195
  echo $this->create_select(
196
  array(
197
+ 'none' => esc_html__( 'None', 'csf' ),
198
+ 'capitalize' => esc_html__( 'Capitalize', 'csf' ),
199
+ 'uppercase' => esc_html__( 'Uppercase', 'csf' ),
200
+ 'lowercase' => esc_html__( 'Lowercase', 'csf' ),
201
+ ), 'text-transform', esc_html__( 'Default', 'csf' )
202
  );
203
  echo '</div>';
204
  }
206
  //
207
  // Text Decoration
208
  if ( ! empty( $args['text_decoration'] ) ) {
209
+ echo '<div class="csf--block">';
210
+ echo '<div class="csf--title">' . esc_html__( 'Text Decoration', 'csf' ) . '</div>';
211
  echo $this->create_select(
212
  array(
213
+ 'none' => esc_html__( 'None', 'csf' ),
214
+ 'underline' => esc_html__( 'Solid', 'csf' ),
215
+ 'underline double' => esc_html__( 'Double', 'csf' ),
216
+ 'underline dotted' => esc_html__( 'Dotted', 'csf' ),
217
+ 'underline dashed' => esc_html__( 'Dashed', 'csf' ),
218
+ 'underline wavy' => esc_html__( 'Wavy', 'csf' ),
219
+ 'underline overline' => esc_html__( 'Overline', 'csf' ),
220
+ 'line-through' => esc_html__( 'Line-through', 'csf' ),
221
+ ), 'text-decoration', esc_html__( 'Default', 'csf' )
222
  );
223
  echo '</div>';
224
  }
225
 
226
  echo '</div>';
227
 
228
+ echo '<div class="csf--blocks csf--blocks-inputs">';
229
 
230
  //
231
  // Font Size
232
  if ( ! empty( $args['font_size'] ) ) {
233
+ echo '<div class="csf--block">';
234
+ echo '<div class="csf--title">' . esc_html__( 'Font Size', 'csf' ) . '</div>';
235
+ echo '<div class="csf--input-wrap">';
236
+ echo '<input disabled type="number" name="' . $this->field_name( '[font-size]' ) . '" class="csf--font-size csf--input csf-input-number" value="' . $this->value['font-size'] . '" />';
237
+ echo '<span class="csf--unit">' . $args['unit'] . '</span>';
238
  echo '</div>';
239
  echo '</div>';
240
  }
242
  //
243
  // Line Height
244
  if ( ! empty( $args['line_height'] ) ) {
245
+ echo '<div class="csf--block">';
246
+ echo '<div class="csf--title">' . esc_html__( 'Line Height', 'csf' ) . '</div>';
247
+ echo '<div class="csf--input-wrap">';
248
+ echo '<input disabled type="number" name="' . $this->field_name( '[line-height]' ) . '" class="csf--line-height csf--input csf-input-number" value="' . $this->value['line-height'] . '" />';
249
+ echo '<span class="csf--unit">' . $args['unit'] . '</span>';
250
  echo '</div>';
251
  echo '</div>';
252
  }
254
  //
255
  // Letter Spacing
256
  if ( ! empty( $args['letter_spacing'] ) ) {
257
+ echo '<div class="csf--block">';
258
+ echo '<div class="csf--title">' . esc_html__( 'Letter Spacing', 'csf' ) . '</div>';
259
+ echo '<div class="csf--input-wrap">';
260
+ echo '<input disabled type="number" name="' . $this->field_name( '[letter-spacing]' ) . '" class="csf--letter-spacing csf--input csf-input-number" value="' . $this->value['letter-spacing'] . '" />';
261
+ echo '<span class="csf--unit">' . $args['unit'] . '</span>';
262
  echo '</div>';
263
  echo '</div>';
264
  }
266
  //
267
  // Word Spacing
268
  if ( ! empty( $args['word_spacing'] ) ) {
269
+ echo '<div class="csf--block">';
270
+ echo '<div class="csf--title">' . esc_html__( 'Word Spacing', 'csf' ) . '</div>';
271
+ echo '<div class="csf--input-wrap">';
272
+ echo '<input disabled type="number" name="' . $this->field_name( '[word-spacing]' ) . '" class="csf--word-spacing csf--input csf-input-number" value="' . $this->value['word-spacing'] . '" />';
273
+ echo '<span class="csf--unit">' . $args['unit'] . '</span>';
274
  echo '</div>';
275
  echo '</div>';
276
  }
281
  // Font Color
282
  if ( ! empty( $args['color'] ) ) {
283
  $default_color_attr = ( ! empty( $default_value['color'] ) ) ? ' data-default-color="' . $default_value['color'] . '"' : '';
284
+ echo '<div class="csf--block csf--block-font-color">';
285
+ echo '<div class="csf--title">' . esc_html__( 'Font Color', 'csf' ) . '</div>';
286
+ echo '<div class="csf-field-color">';
287
+ echo '<input type="text" name="' . $this->field_name( '[color]' ) . '" class="csf-color csf--color" value="' . $this->value['color'] . '"' . $default_color_attr . ' />';
288
  echo '</div>';
289
  echo '</div>';
290
  }
292
  //
293
  // Custom style
294
  if ( ! empty( $args['custom_style'] ) ) {
295
+ echo '<div class="csf--block csf--block-custom-style">';
296
+ echo '<div class="csf--title">' . esc_html__( 'Custom Style', 'csf' ) . '</div>';
297
+ echo '<textarea name="' . $this->field_name( '[custom-style]' ) . '" class="csf--custom-style">' . $this->value['custom-style'] . '</textarea>';
298
  echo '</div>';
299
  }
300
 
303
  $always_preview = ( $args['preview'] !== 'always' ) ? ' hidden' : '';
304
 
305
  if ( ! empty( $args['preview'] ) ) {
306
+ echo '<div class="csf--block csf--block-preview' . $always_preview . '">';
307
+ echo '<div class="csf--toggle fa fa-toggle-off"></div>';
308
+ echo '<div class="csf--preview">' . $args['preview_text'] . '</div>';
309
  echo '</div>';
310
  }
311
 
312
+ echo '<input type="hidden" name="' . $this->field_name( '[type]' ) . '" class="csf--type" value="' . $this->value['type'] . '" />';
313
+ echo '<input type="hidden" name="' . $this->field_name( '[unit]' ) . '" class="csf--unit-save" value="' . $args['unit'] . '" />';
314
 
315
  echo '</div>';
316
 
324
  $multiple_attr = ( $is_multiple ) ? ' multiple data-multiple="true"' : '';
325
  $chosen_rtl = ( $this->chosen && is_rtl() ) ? ' chosen-rtl' : '';
326
 
327
+ $output = '<select disabled name="' . $this->field_name( '[' . $name . ']' . $multiple_name ) . '" class="csf--' . $name . $chosen_rtl . '" data-placeholder="' . $placeholder . '"' . $multiple_attr . '>';
328
  $output .= ( ! empty( $placeholder ) ) ? '<option value="">' . ( ( ! $this->chosen ) ? $placeholder : '' ) . '</option>' : '';
329
 
330
  if ( ! empty( $options ) ) {
348
 
349
  public function enqueue() {
350
 
351
+ if ( ! wp_style_is( 'csf-webfont-loader' ) ) {
352
 
353
+ CSF::include_plugin_file( 'fields/typography/google-fonts.php' );
354
 
355
+ wp_enqueue_script( 'csf-webfont-loader', 'https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js', array( 'csf' ), '1.6.28', true );
356
 
357
  $webfonts = array();
358
 
359
+ $customwebfonts = apply_filters( 'csf_field_typography_customwebfonts', array() );
360
 
361
  if ( ! empty( $customwebfonts ) ) {
362
  $webfonts['custom'] = array(
363
+ 'label' => esc_html__( 'Custom Web Fonts', 'csf' ),
364
  'fonts' => $customwebfonts,
365
  );
366
  }
367
 
368
  $webfonts['safe'] = array(
369
+ 'label' => esc_html__( 'Safe Web Fonts', 'csf' ),
370
  'fonts' => apply_filters(
371
+ 'csf_field_typography_safewebfonts', array(
372
  'Arial',
373
  'Arial Black',
374
  'Helvetica',
388
  );
389
 
390
  $webfonts['google'] = array(
391
+ 'label' => esc_html__( 'Google Web Fonts', 'csf' ),
392
  'fonts' => apply_filters(
393
+ 'csf_field_typography_googlewebfonts', csf_get_google_fonts()
394
  ),
395
  );
396
 
397
+ $defaultstyles = apply_filters( 'csf_field_typography_defaultstyles', array( 'normal', 'italic', '700', '700italic' ) );
398
 
399
  $googlestyles = apply_filters(
400
+ 'csf_field_typography_googlestyles', array(
401
  '100' => 'Thin 100',
402
  '100italic' => 'Thin 100 Italic',
403
  '200' => 'Extra-Light 200',
419
  )
420
  );
421
 
422
+ $webfonts = apply_filters( 'csf_field_typography_webfonts', $webfonts );
423
 
424
  wp_localize_script(
425
+ 'csf', 'csf_typography_json', array(
426
  'webfonts' => $webfonts,
427
  'defaultstyles' => $defaultstyles,
428
  'googlestyles' => $googlestyles,
442
  if ( ! empty( $this->value['type'] ) ) {
443
  $is_google = ( $this->value['type'] === 'google' ) ? true : false;
444
  } else {
445
+ CSF::include_plugin_file( 'fields/typography/google-fonts.php' );
446
+ $is_google = ( array_key_exists( $this->value['font-family'], csf_get_google_fonts() ) ) ? true : false;
447
  }
448
 
449
  if ( $is_google ) {
admin/views/{tp-metabox → framework}/fields/upgrade/upgrade.php RENAMED
@@ -7,8 +7,8 @@
7
  * @since 1.0.0
8
  * @version 1.0.0
9
  */
10
- if ( ! class_exists( 'SPFTESTIMONIAL_Field_upgrade' ) ) {
11
- class SPFTESTIMONIAL_Field_upgrade extends SPFTESTIMONIAL_Fields {
12
 
13
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
  parent::__construct( $field, $value, $unique, $where, $parent );
7
  * @since 1.0.0
8
  * @version 1.0.0
9
  */
10
+ if ( ! class_exists( 'CSF_Field_upgrade' ) ) {
11
+ class CSF_Field_upgrade extends CSF_Fields {
12
 
13
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
  parent::__construct( $field, $value, $unique, $where, $parent );
admin/views/framework/fields/upload/upload.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Field: upload
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'CSF_Field_upload' ) ) {
11
+ class CSF_Field_upload extends CSF_Fields {
12
+
13
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
+ parent::__construct( $field, $value, $unique, $where, $parent );
15
+ }
16
+
17
+ public function render() {
18
+
19
+ $args = wp_parse_args( $this->field, array(
20
+ 'library' => array(),
21
+ 'button_title' => esc_html__( 'Upload', 'csf' ),
22
+ 'remove_title' => esc_html__( 'Remove', 'csf' ),
23
+ ) );
24
+
25
+ echo $this->field_before();
26
+
27
+ $library = ( is_array( $args['library'] ) ) ? $args['library'] : array_filter( (array) $args['library'] );
28
+ $library = ( ! empty( $library ) ) ? implode(',', $library ) : '';
29
+ $hidden = ( empty( $this->value ) ) ? ' hidden' : '';
30
+
31
+ echo '<div class="csf--wrap">';
32
+ echo '<input type="text" name="'. $this->field_name() .'" value="'. $this->value .'"'. $this->field_attributes() .'/>';
33
+ echo '<a href="#" class="button button-primary csf--button" data-library="'. esc_attr( $library ) .'">'. $args['button_title'] .'</a>';
34
+ echo '<a href="#" class="button button-secondary csf-warning-primary csf--remove'. $hidden .'">'. $args['remove_title'] .'</a>';
35
+ echo '</div>';
36
+
37
+ echo $this->field_after();
38
+
39
+ }
40
+ }
41
+ }
admin/views/{tp-metabox → framework}/fields/wp_editor/wp_editor.php RENAMED
@@ -7,8 +7,8 @@
7
  * @version 1.0.0
8
  *
9
  */
10
- if( ! class_exists( 'SPFTESTIMONIAL_Field_wp_editor' ) ) {
11
- class SPFTESTIMONIAL_Field_wp_editor extends SPFTESTIMONIAL_Fields {
12
 
13
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
  parent::__construct( $field, $value, $unique, $where, $parent );
@@ -39,13 +39,13 @@ if( ! class_exists( 'SPFTESTIMONIAL_Field_wp_editor' ) ) {
39
 
40
  echo $this->field_before();
41
 
42
- echo ( spftestimonial_wp_editor_api() ) ? '<div class="spftestimonial-wp-editor" data-editor-settings="'. esc_attr( wp_json_encode( $editor_settings ) ) .'">' : '';
43
 
44
  echo '<textarea name="'. $this->field_name() .'"'. $this->field_attributes( $attributes ) . $editor_height .'>'. $this->value .'</textarea>';
45
 
46
  echo '<div class="clear"></div>';
47
 
48
- echo ( spftestimonial_wp_editor_api() ) ? '</div>' : '';
49
 
50
  echo $this->field_after();
51
 
@@ -53,7 +53,7 @@ if( ! class_exists( 'SPFTESTIMONIAL_Field_wp_editor' ) ) {
53
 
54
  public function enqueue() {
55
 
56
- if( spftestimonial_wp_editor_api() && function_exists( 'wp_enqueue_editor' ) ) {
57
 
58
  wp_enqueue_editor();
59
 
@@ -75,7 +75,7 @@ if( ! class_exists( 'SPFTESTIMONIAL_Field_wp_editor' ) ) {
75
  $media_buttons = ob_get_clean();
76
 
77
  echo '<script type="text/javascript">';
78
- echo 'var spftestimonial_media_buttons = '. wp_json_encode( $media_buttons ) .';';
79
  echo '</script>';
80
 
81
  }
@@ -83,17 +83,17 @@ if( ! class_exists( 'SPFTESTIMONIAL_Field_wp_editor' ) ) {
83
  // Setup wp editor settings
84
  public function setup_wp_editor_settings() {
85
 
86
- if( spftestimonial_wp_editor_api() && class_exists( '_WP_Editors') ) {
87
 
88
- $defaults = apply_filters( 'spftestimonial_wp_editor', array(
89
  'tinymce' => array(
90
  'wp_skip_init' => true
91
  ),
92
  ) );
93
 
94
- $setup = _WP_Editors::parse_settings( 'spftestimonial_wp_editor', $defaults );
95
 
96
- _WP_Editors::editor_settings( 'spftestimonial_wp_editor', $setup );
97
 
98
  }
99
 
7
  * @version 1.0.0
8
  *
9
  */
10
+ if( ! class_exists( 'CSF_Field_wp_editor' ) ) {
11
+ class CSF_Field_wp_editor extends CSF_Fields {
12
 
13
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
14
  parent::__construct( $field, $value, $unique, $where, $parent );
39
 
40
  echo $this->field_before();
41
 
42
+ echo ( csf_wp_editor_api() ) ? '<div class="csf-wp-editor" data-editor-settings="'. esc_attr( wp_json_encode( $editor_settings ) ) .'">' : '';
43
 
44
  echo '<textarea name="'. $this->field_name() .'"'. $this->field_attributes( $attributes ) . $editor_height .'>'. $this->value .'</textarea>';
45
 
46
  echo '<div class="clear"></div>';
47
 
48
+ echo ( csf_wp_editor_api() ) ? '</div>' : '';
49
 
50
  echo $this->field_after();
51
 
53
 
54
  public function enqueue() {
55
 
56
+ if( csf_wp_editor_api() && function_exists( 'wp_enqueue_editor' ) ) {
57
 
58
  wp_enqueue_editor();
59
 
75
  $media_buttons = ob_get_clean();
76
 
77
  echo '<script type="text/javascript">';
78
+ echo 'var csf_media_buttons = '. wp_json_encode( $media_buttons ) .';';
79
  echo '</script>';
80
 
81
  }
83
  // Setup wp editor settings
84
  public function setup_wp_editor_settings() {
85
 
86
+ if( csf_wp_editor_api() && class_exists( '_WP_Editors') ) {
87
 
88
+ $defaults = apply_filters( 'csf_wp_editor', array(
89
  'tinymce' => array(
90
  'wp_skip_init' => true
91
  ),
92
  ) );
93
 
94
+ $setup = _WP_Editors::parse_settings( 'csf_wp_editor', $defaults );
95
 
96
+ _WP_Editors::editor_settings( 'csf_wp_editor', $setup );
97
 
98
  }
99
 
admin/views/framework/framework.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+
3
+ /**
4
+ *
5
+ * @package Codestar Framework - WordPress Options Framework
6
+ * @author Codestar <info@codestarthemes.com>
7
+ * @link http://codestarframework.com
8
+ * @copyright 2015-2018 Codestar
9
+ *
10
+ *
11
+ * Plugin Name: Codestar Framework
12
+ * Plugin URI: http://codestarframework.com/
13
+ * Author: Codestar
14
+ * Author URI: http://codestarthemes.com/
15
+ * Version: 2.1.3
16
+ * Description: A Simple and Lightweight WordPress Option Framework for Themes and Plugins
17
+ * Text Domain: csf
18
+ * Domain Path: /languages
19
+ *
20
+ */
21
+
22
+ require_once plugin_dir_path( __FILE__ ) .'classes/setup.class.php';
admin/views/framework/functions/actions.php ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Get icons from admin ajax
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! function_exists( 'csf_get_icons' ) ) {
11
+ function csf_get_icons() {
12
+
13
+ if( ! empty( $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], 'csf_icon_nonce' ) ) {
14
+
15
+ ob_start();
16
+
17
+ CSF::include_plugin_file( 'fields/icon/default-icons.php' );
18
+
19
+ $icon_lists = apply_filters( 'csf_field_icon_add_icons', csf_get_default_icons() );
20
+
21
+ if( ! empty( $icon_lists ) ) {
22
+
23
+ foreach ( $icon_lists as $list ) {
24
+
25
+ echo ( count( $icon_lists ) >= 2 ) ? '<div class="csf-icon-title">'. $list['title'] .'</div>' : '';
26
+
27
+ foreach ( $list['icons'] as $icon ) {
28
+ echo '<a class="csf-icon-tooltip" data-csf-icon="'. $icon .'" title="'. $icon .'"><span class="csf-icon csf-selector"><i class="'. $icon .'"></i></span></a>';
29
+ }
30
+
31
+ }
32
+
33
+ } else {
34
+
35
+ echo '<div class="csf-text-error">'. esc_html__( 'No data provided by developer', 'csf' ) .'</div>';
36
+
37
+ }
38
+
39
+ wp_send_json_success( array( 'content' => ob_get_clean() ) );
40
+
41
+ } else {
42
+
43
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: Nonce verification has failed. Please try again.', 'csf' ) ) );
44
+
45
+ }
46
+
47
+ }
48
+ add_action( 'wp_ajax_csf-get-icons', 'csf_get_icons' );
49
+ }
50
+
51
+ /**
52
+ *
53
+ * Export
54
+ *
55
+ * @since 1.0.0
56
+ * @version 1.0.0
57
+ *
58
+ */
59
+ if( ! function_exists( 'csf_export' ) ) {
60
+ function csf_export() {
61
+
62
+ if( ! empty( $_GET['export'] ) && ! empty( $_GET['nonce'] ) && wp_verify_nonce( $_GET['nonce'], 'csf_backup_nonce' ) ) {
63
+
64
+ header('Content-Type: application/json');
65
+ header('Content-disposition: attachment; filename=backup-'. gmdate( 'd-m-Y' ) .'.json');
66
+ header('Content-Transfer-Encoding: binary');
67
+ header('Pragma: no-cache');
68
+ header('Expires: 0');
69
+
70
+ echo json_encode( get_option( wp_unslash( $_GET['export'] ) ) );
71
+
72
+ }
73
+
74
+ die();
75
+ }
76
+ add_action( 'wp_ajax_csf-export', 'csf_export' );
77
+ }
78
+
79
+ /**
80
+ *
81
+ * Import Ajax
82
+ *
83
+ * @since 1.0.0
84
+ * @version 1.0.0
85
+ *
86
+ */
87
+ if( ! function_exists( 'csf_import_ajax' ) ) {
88
+ function csf_import_ajax() {
89
+
90
+ if( ! empty( $_POST['import_data'] ) && ! empty( $_POST['unique'] ) && ! empty( $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], 'csf_backup_nonce' ) ) {
91
+
92
+ $import_data = json_decode( wp_unslash( trim( $_POST['import_data'] ) ), true );
93
+
94
+ if( is_array( $import_data ) ) {
95
+
96
+ update_option( wp_unslash( $_POST['unique'] ), wp_unslash( $import_data ) );
97
+ wp_send_json_success();
98
+
99
+ }
100
+
101
+ }
102
+
103
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: Nonce verification has failed. Please try again.', 'csf' ) ) );
104
+
105
+ }
106
+ add_action( 'wp_ajax_csf-import', 'csf_import_ajax' );
107
+ }
108
+
109
+ /**
110
+ *
111
+ * Reset Ajax
112
+ *
113
+ * @since 1.0.0
114
+ * @version 1.0.0
115
+ *
116
+ */
117
+ if( ! function_exists( 'csf_reset_ajax' ) ) {
118
+ function csf_reset_ajax() {
119
+
120
+ if( ! empty( $_POST['unique'] ) && ! empty( $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], 'csf_backup_nonce' ) ) {
121
+ delete_option( wp_unslash( $_POST['unique'] ) );
122
+ wp_send_json_success();
123
+ }
124
+
125
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: Nonce verification has failed. Please try again.', 'csf' ) ) );
126
+
127
+ }
128
+ add_action( 'wp_ajax_csf-reset', 'csf_reset_ajax' );
129
+ }
130
+
131
+ /**
132
+ *
133
+ * Chosen Ajax
134
+ *
135
+ * @since 1.0.0
136
+ * @version 1.0.0
137
+ *
138
+ */
139
+ if( ! function_exists( 'csf_chosen_ajax' ) ) {
140
+ function csf_chosen_ajax() {
141
+
142
+ if( ! empty( $_POST['term'] ) && ! empty( $_POST['type'] ) && ! empty( $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], 'csf_chosen_ajax_nonce' ) ) {
143
+
144
+ $capability = apply_filters( 'csf_chosen_ajax_capability', 'manage_options' );
145
+
146
+ if( current_user_can( $capability ) ) {
147
+
148
+ $type = $_POST['type'];
149
+ $term = $_POST['term'];
150
+ $query_args = ( ! empty( $_POST['query_args'] ) ) ? $_POST['query_args'] : array();
151
+ $options = CSF_Fields::field_data( $type, $term, $query_args );
152
+
153
+ wp_send_json_success( $options );
154
+
155
+ } else {
156
+ wp_send_json_error( array( 'error' => esc_html__( 'You do not have required permissions to access.', 'csf' ) ) );
157
+ }
158
+
159
+ } else {
160
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: Nonce verification has failed. Please try again.', 'csf' ) ) );
161
+ }
162
+
163
+ }
164
+ add_action( 'wp_ajax_csf-chosen', 'csf_chosen_ajax' );
165
+ }
166
+
167
+ /**
168
+ *
169
+ * Set icons for wp dialog
170
+ *
171
+ * @since 1.0.0
172
+ * @version 1.0.0
173
+ *
174
+ */
175
+ if( ! function_exists( 'csf_set_icons' ) ) {
176
+ function csf_set_icons() {
177
+ ?>
178
+ <div id="csf-modal-icon" class="csf-modal csf-modal-icon">
179
+ <div class="csf-modal-table">
180
+ <div class="csf-modal-table-cell">
181
+ <div class="csf-modal-overlay"></div>
182
+ <div class="csf-modal-inner">
183
+ <div class="csf-modal-title">
184
+ <?php esc_html_e( 'Add Icon', 'csf' ); ?>
185
+ <div class="csf-modal-close csf-icon-close"></div>
186
+ </div>
187
+ <div class="csf-modal-header csf-text-center">
188
+ <input type="text" placeholder="<?php esc_html_e( 'Search a Icon...', 'csf' ); ?>" class="csf-icon-search" />
189
+ </div>
190
+ <div class="csf-modal-content">
191
+ <div class="csf-modal-loading"><div class="csf-loading"></div></div>
192
+ <div class="csf-modal-load"></div>
193
+ </div>
194
+ </div>
195
+ </div>
196
+ </div>
197
+ </div>
198
+ <?php
199
+ }
200
+ add_action( 'admin_footer', 'csf_set_icons' );
201
+ add_action( 'customize_controls_print_footer_scripts', 'csf_set_icons' );
202
+ }
admin/views/framework/functions/customize.php ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * WP Customize custom panel
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! class_exists( 'WP_Customize_Panel_CSF' ) && class_exists( 'WP_Customize_Panel' ) ) {
11
+ class WP_Customize_Panel_CSF extends WP_Customize_Panel {
12
+ public $type = 'csf';
13
+ }
14
+ }
15
+
16
+ /**
17
+ *
18
+ * WP Customize custom section
19
+ *
20
+ * @since 1.0.0
21
+ * @version 1.0.0
22
+ *
23
+ */
24
+ if( ! class_exists( 'WP_Customize_Section_CSF' ) && class_exists( 'WP_Customize_Section' ) ) {
25
+ class WP_Customize_Section_CSF extends WP_Customize_Section {
26
+ public $type = 'csf';
27
+ }
28
+ }
29
+
30
+ /**
31
+ *
32
+ * WP Customize custom control
33
+ *
34
+ * @since 1.0.0
35
+ * @version 1.0.0
36
+ *
37
+ */
38
+ if( ! class_exists( 'WP_Customize_Control_CSF' ) && class_exists( 'WP_Customize_Control' ) ) {
39
+ class WP_Customize_Control_CSF extends WP_Customize_Control {
40
+
41
+ public $type = 'csf';
42
+ public $field = '';
43
+ public $unique = '';
44
+
45
+ protected function render() {
46
+
47
+ $depend = '';
48
+ $hidden = '';
49
+
50
+ if ( ! empty( $this->field['dependency'] ) ) {
51
+ $hidden = ' csf-dependency-control hidden';
52
+ $depend .= ' data-controller="'. $this->field['dependency'][0] .'"';
53
+ $depend .= ' data-condition="'. $this->field['dependency'][1] .'"';
54
+ $depend .= ' data-value="'. $this->field['dependency'][2] .'"';
55
+ }
56
+
57
+ $id = 'customize-control-' . str_replace( array( '[', ']' ), array( '-', '' ), $this->id );
58
+ $class = 'customize-control customize-control-' . $this->type . $hidden;
59
+
60
+ echo '<li id="'. $id .'" class="'. $class .'"'. $depend .'>';
61
+ $this->render_content();
62
+ echo '</li>';
63
+
64
+ }
65
+
66
+ public function render_content() {
67
+
68
+ $complex = array(
69
+ 'accordion',
70
+ 'background',
71
+ 'backup',
72
+ 'border',
73
+ 'button_set',
74
+ 'checkbox',
75
+ 'color_group',
76
+ 'date',
77
+ 'dimensions',
78
+ 'fieldset',
79
+ 'group',
80
+ 'image_select',
81
+ 'link_color',
82
+ 'media',
83
+ 'palette',
84
+ 'repeater',
85
+ 'sortable',
86
+ 'sorter',
87
+ 'spacing',
88
+ 'switcher',
89
+ 'tabbed',
90
+ 'typography'
91
+ );
92
+
93
+ $field_id = ( ! empty( $this->field['id'] ) ) ? $this->field['id'] : '';
94
+ $custom = ( ! empty( $this->field['customizer'] ) ) ? true : false;
95
+ $is_complex = ( in_array( $this->field['type'], $complex ) ) ? true : false;
96
+ $class = ( $is_complex || $custom ) ? ' csf-customize-complex' : '';
97
+ $atts = ( $is_complex || $custom ) ? ' data-unique-id="'. $this->unique .'" data-option-id="'. $field_id .'"' : '';
98
+
99
+ if( ! $is_complex && ! $custom ) {
100
+ $this->field['attributes']['data-customize-setting-link'] = $this->settings['default']->id;
101
+ }
102
+
103
+ $this->field['name'] = $this->settings['default']->id;
104
+
105
+ $this->field['dependency'] = array();
106
+
107
+ echo '<div class="csf-customize-field'. $class .'"'. $atts .'>';
108
+
109
+ CSF::field( $this->field, $this->value(), $this->unique, 'customize' );
110
+
111
+ echo '</div>';
112
+
113
+ }
114
+
115
+ }
116
+ }
admin/views/{tp-metabox → framework}/functions/deprecated.php RENAMED
File without changes
admin/views/framework/functions/helpers.php ADDED
@@ -0,0 +1,111 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Array search key & value
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if ( ! function_exists( 'csf_array_search' ) ) {
11
+ function csf_array_search( $array, $key, $value ) {
12
+
13
+ $results = array();
14
+
15
+ if ( is_array( $array ) ) {
16
+ if ( isset( $array[$key] ) && $array[$key] == $value ) {
17
+ $results[] = $array;
18
+ }
19
+
20
+ foreach ( $array as $sub_array ) {
21
+ $results = array_merge( $results, csf_array_search( $sub_array, $key, $value ) );
22
+ }
23
+
24
+ }
25
+
26
+ return $results;
27
+
28
+ }
29
+ }
30
+
31
+ /**
32
+ *
33
+ * Getting POST Var
34
+ *
35
+ * @since 1.0.0
36
+ * @version 1.0.0
37
+ *
38
+ */
39
+ if ( ! function_exists( 'csf_get_var' ) ) {
40
+ function csf_get_var( $var, $default = '' ) {
41
+
42
+ if( isset( $_POST[$var] ) ) {
43
+ return $_POST[$var];
44
+ }
45
+
46
+ if( isset( $_GET[$var] ) ) {
47
+ return $_GET[$var];
48
+ }
49
+
50
+ return $default;
51
+
52
+ }
53
+ }
54
+
55
+ /**
56
+ *
57
+ * Getting POST Vars
58
+ *
59
+ * @since 1.0.0
60
+ * @version 1.0.0
61
+ *
62
+ */
63
+ if ( ! function_exists( 'csf_get_vars' ) ) {
64
+ function csf_get_vars( $var, $depth, $default = '' ) {
65
+
66
+ if( isset( $_POST[$var][$depth] ) ) {
67
+ return $_POST[$var][$depth];
68
+ }
69
+
70
+ if( isset( $_GET[$var][$depth] ) ) {
71
+ return $_GET[$var][$depth];
72
+ }
73
+
74
+ return $default;
75
+
76
+ }
77
+ }
78
+
79
+ /**
80
+ *
81
+ * Between Microtime
82
+ *
83
+ * @since 1.0.0
84
+ * @version 1.0.0
85
+ *
86
+ */
87
+ if ( ! function_exists( 'csf_microtime' ) ) {
88
+ function csf_timeout( $timenow, $starttime, $timeout = 30 ) {
89
+
90
+ return ( ( $timenow - $starttime ) < $timeout ) ? true : false;
91
+
92
+ }
93
+ }
94
+
95
+ /**
96
+ *
97
+ * Check for wp editor api
98
+ *
99
+ * @since 1.0.0
100
+ * @version 1.0.0
101
+ *
102
+ */
103
+ if ( ! function_exists( 'csf_wp_editor_api' ) ) {
104
+ function csf_wp_editor_api() {
105
+
106
+ global $wp_version;
107
+
108
+ return version_compare( $wp_version, '4.8', '>=' );
109
+
110
+ }
111
+ }
admin/views/framework/functions/sanitize.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Sanitize
5
+ * Replace letter a to letter b
6
+ *
7
+ * @since 1.0.0
8
+ * @version 1.0.0
9
+ *
10
+ */
11
+ if( ! function_exists( 'csf_sanitize_replace_a_to_b' ) ) {
12
+ function csf_sanitize_replace_a_to_b( $value ) {
13
+ return str_replace( 'a', 'b', $value );
14
+ }
15
+ }
16
+
17
+ /**
18
+ *
19
+ * Sanitize title
20
+ *
21
+ * @since 1.0.0
22
+ * @version 1.0.0
23
+ *
24
+ */
25
+ if( ! function_exists( 'csf_sanitize_title' ) ) {
26
+ function csf_sanitize_title( $value ) {
27
+ return sanitize_title( $value );
28
+ }
29
+ }
admin/views/framework/functions/validate.php ADDED
@@ -0,0 +1,152 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Email validate
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if( ! function_exists( 'csf_validate_email' ) ) {
11
+ function csf_validate_email( $value ) {
12
+
13
+ if ( ! filter_var( $value, FILTER_VALIDATE_EMAIL ) ) {
14
+ return esc_html__( 'Please write a valid email address!', 'csf' );
15
+ }
16
+
17
+ }
18
+ }
19
+
20
+ /**
21
+ *
22
+ * Numeric validate
23
+ *
24
+ * @since 1.0.0
25
+ * @version 1.0.0
26
+ *
27
+ */
28
+ if( ! function_exists( 'csf_validate_numeric' ) ) {
29
+ function csf_validate_numeric( $value ) {
30
+
31
+ if ( ! is_numeric( $value ) ) {
32
+ return esc_html__( 'Please write a numeric data!', 'csf' );
33
+ }
34
+
35
+ }
36
+ }
37
+
38
+ /**
39
+ *
40
+ * Required validate
41
+ *
42
+ * @since 1.0.0
43
+ * @version 1.0.0
44
+ *
45
+ */
46
+ if( ! function_exists( 'csf_validate_required' ) ) {
47
+ function csf_validate_required( $value ) {
48
+
49
+ if ( empty( $value ) ) {
50
+ return esc_html__( 'Error! This field is required!', 'csf' );
51
+ }
52
+
53
+ }
54
+ }
55
+
56
+ /**
57
+ *
58
+ * URL validate
59
+ *
60
+ * @since 1.0.0
61
+ * @version 1.0.0
62
+ *
63
+ */
64
+ if( ! function_exists( 'csf_validate_url' ) ) {
65
+ function csf_validate_url( $value ) {
66
+
67
+ if( ! filter_var( $value, FILTER_VALIDATE_URL ) ) {
68
+ return esc_html__( 'Please write a valid url!', 'csf' );
69
+ }
70
+
71
+ }
72
+ }
73
+
74
+ /**
75
+ *
76
+ * Email validate for Customizer
77
+ *
78
+ * @since 1.0.0
79
+ * @version 1.0.0
80
+ *
81
+ */
82
+ if( ! function_exists( 'csf_customize_validate_email' ) ) {
83
+ function csf_customize_validate_email( $validity, $value, $wp_customize ) {
84
+
85
+ if ( ! sanitize_email( $value ) ) {
86
+ $validity->add( 'required', esc_html__( 'Please write a valid email address!', 'csf' ) );
87
+ }
88
+
89
+ return $validity;
90
+
91
+ }
92
+ }
93
+
94
+ /**
95
+ *
96
+ * Numeric validate for Customizer
97
+ *
98
+ * @since 1.0.0
99
+ * @version 1.0.0
100
+ *
101
+ */
102
+ if( ! function_exists( 'csf_customize_validate_numeric' ) ) {
103
+ function csf_customize_validate_numeric( $validity, $value, $wp_customize ) {
104
+
105
+ if ( ! is_numeric( $value ) ) {
106
+ $validity->add( 'required', esc_html__( 'Please write a numeric data!', 'csf' ) );
107
+ }
108
+
109
+ return $validity;
110
+
111
+ }
112
+ }
113
+
114
+ /**
115
+ *
116
+ * Required validate for Customizer
117
+ *
118
+ * @since 1.0.0
119
+ * @version 1.0.0
120
+ *
121
+ */
122
+ if( ! function_exists( 'csf_customize_validate_required' ) ) {
123
+ function csf_customize_validate_required( $validity, $value, $wp_customize ) {
124
+
125
+ if ( empty( $value ) ) {
126
+ $validity->add( 'required', esc_html__( 'Error! This field is required!', 'csf' ) );
127
+ }
128
+
129
+ return $validity;
130
+
131
+ }
132
+ }
133
+
134
+ /**
135
+ *
136
+ * URL validate for Customizer
137
+ *
138
+ * @since 1.0.0
139
+ * @version 1.0.0
140
+ *
141
+ */
142
+ if( ! function_exists( 'csf_customize_validate_url' ) ) {
143
+ function csf_customize_validate_url( $validity, $value, $wp_customize ) {
144
+
145
+ if( ! filter_var( $value, FILTER_VALIDATE_URL ) ) {
146
+ $validity->add( 'required', esc_html__( 'Please write a valid url!', 'csf' ) );
147
+ }
148
+
149
+ return $validity;
150
+
151
+ }
152
+ }
admin/views/{tp-metabox → framework}/index.php RENAMED
File without changes
admin/views/framework/languages/csf.pot ADDED
@@ -0,0 +1,669 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2020 Codestar
2
+ # This file is distributed under the same license as the Codestar Framework package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Codestar Framework 2.1.3\n"
6
+ "Report-Msgid-Bugs-To: "
7
+ "https://wordpress.org/support/plugin/codestar-framework\n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=utf-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+
12
+ #: classes/comment-metabox.class.php:190 classes/metabox.class.php:255
13
+ #: classes/options.class.php:650
14
+ msgid "No option provided by developer."
15
+ msgstr ""
16
+
17
+ #: classes/comment-metabox.class.php:208 classes/metabox.class.php:273
18
+ msgid "Restore"
19
+ msgstr ""
20
+
21
+ #: classes/comment-metabox.class.php:209 classes/metabox.class.php:274
22
+ msgid "update post for restore "
23
+ msgstr ""
24
+
25
+ #: classes/comment-metabox.class.php:209 classes/metabox.class.php:274
26
+ msgid "Cancel"
27
+ msgstr ""
28
+
29
+ #: classes/options.class.php:238
30
+ msgid "Error while saving."
31
+ msgstr ""
32
+
33
+ #: classes/options.class.php:285
34
+ msgid "Success. Imported backup options."
35
+ msgstr ""
36
+
37
+ #: classes/options.class.php:295
38
+ msgid "Default options restored."
39
+ msgstr ""
40
+
41
+ #: classes/options.class.php:309
42
+ msgid "Default options restored for only this section."
43
+ msgstr ""
44
+
45
+ #: classes/options.class.php:367
46
+ msgid "Settings saved."
47
+ msgstr ""
48
+
49
+ #: classes/options.class.php:548
50
+ msgid "Settings have changed, you should save them!"
51
+ msgstr ""
52
+
53
+ #: classes/options.class.php:550
54
+ msgid "show all options"
55
+ msgstr ""
56
+
57
+ #: classes/options.class.php:552
58
+ msgid "Search option(s)"
59
+ msgstr ""
60
+
61
+ #: classes/options.class.php:555 classes/options.class.php:674
62
+ msgid "Save"
63
+ msgstr ""
64
+
65
+ #: classes/options.class.php:555 classes/options.class.php:674
66
+ msgid "Saving..."
67
+ msgstr ""
68
+
69
+ #: classes/options.class.php:556 classes/options.class.php:675
70
+ msgid "Reset Section"
71
+ msgstr ""
72
+
73
+ #: classes/options.class.php:556 classes/options.class.php:675
74
+ msgid "Are you sure to reset this section options?"
75
+ msgstr ""
76
+
77
+ #: classes/options.class.php:557 classes/options.class.php:676
78
+ #: fields/backup/backup.php:34
79
+ msgid "Reset All"
80
+ msgstr ""
81
+
82
+ #: classes/options.class.php:557 classes/options.class.php:676
83
+ msgid "Are you sure to reset all options?"
84
+ msgstr ""
85
+
86
+ #: classes/setup.class.php:429
87
+ msgid "Are you sure?"
88
+ msgstr ""
89
+
90
+ #: classes/setup.class.php:430
91
+ msgid "Restoring options."
92
+ msgstr ""
93
+
94
+ #: classes/setup.class.php:431
95
+ msgid "Importing options."
96
+ msgstr ""
97
+
98
+ #: classes/setup.class.php:434
99
+ msgid "Please enter %s or more characters"
100
+ msgstr ""
101
+
102
+ #: classes/setup.class.php:435
103
+ msgid "Searching..."
104
+ msgstr ""
105
+
106
+ #: classes/setup.class.php:436
107
+ msgid "No results match"
108
+ msgstr ""
109
+
110
+ #: classes/setup.class.php:507
111
+ msgid "Ooops! This field type (%s) can not be used here, yet."
112
+ msgstr ""
113
+
114
+ #: classes/setup.class.php:570
115
+ msgid "This field class is not available!"
116
+ msgstr ""
117
+
118
+ #: classes/setup.class.php:574
119
+ msgid "This type is not found!"
120
+ msgstr ""
121
+
122
+ #: classes/shortcoder.class.php:242
123
+ msgid "Add one more"
124
+ msgstr ""
125
+
126
+ #: classes/shortcoder.class.php:279 functions/actions.php:43
127
+ #: functions/actions.php:103 functions/actions.php:125
128
+ #: functions/actions.php:160
129
+ msgid "Error: Nonce verification has failed. Please try again."
130
+ msgstr ""
131
+
132
+ #: fields/background/background.php:35
133
+ msgid "No background selected"
134
+ msgstr ""
135
+
136
+ #: fields/background/background.php:66 fields/date/date.php:31
137
+ msgid "From"
138
+ msgstr ""
139
+
140
+ #: fields/background/background.php:84 fields/date/date.php:32
141
+ msgid "To"
142
+ msgstr ""
143
+
144
+ #: fields/background/background.php:102
145
+ msgid "Direction"
146
+ msgstr ""
147
+
148
+ #: fields/background/background.php:108
149
+ msgid "Gradient Direction"
150
+ msgstr ""
151
+
152
+ #: fields/background/background.php:109
153
+ msgid "&#8659; top to bottom"
154
+ msgstr ""
155
+
156
+ #: fields/background/background.php:110
157
+ msgid "&#8658; left to right"
158
+ msgstr ""
159
+
160
+ #: fields/background/background.php:111
161
+ msgid "&#8664; corner top to right"
162
+ msgstr ""
163
+
164
+ #: fields/background/background.php:112
165
+ msgid "&#8665; corner top to left"
166
+ msgstr ""
167
+
168
+ #: fields/background/background.php:155
169
+ msgid "Background Position"
170
+ msgstr ""
171
+
172
+ #: fields/background/background.php:156
173
+ msgid "Left Top"
174
+ msgstr ""
175
+
176
+ #: fields/background/background.php:157
177
+ msgid "Left Center"
178
+ msgstr ""
179
+
180
+ #: fields/background/background.php:158
181
+ msgid "Left Bottom"
182
+ msgstr ""
183
+
184
+ #: fields/background/background.php:159
185
+ msgid "Center Top"
186
+ msgstr ""
187
+
188
+ #: fields/background/background.php:160
189
+ msgid "Center Center"
190
+ msgstr ""
191
+
192
+ #: fields/background/background.php:161
193
+ msgid "Center Bottom"
194
+ msgstr ""
195
+
196
+ #: fields/background/background.php:162
197
+ msgid "Right Top"
198
+ msgstr ""
199
+
200
+ #: fields/background/background.php:163
201
+ msgid "Right Center"
202
+ msgstr ""
203
+
204
+ #: fields/background/background.php:164
205
+ msgid "Right Bottom"
206
+ msgstr ""
207
+
208
+ #: fields/background/background.php:178
209
+ msgid "Background Repeat"
210
+ msgstr ""
211
+
212
+ #: fields/background/background.php:179
213
+ msgid "Repeat"
214
+ msgstr ""
215
+
216
+ #: fields/background/background.php:180
217
+ msgid "No Repeat"
218
+ msgstr ""
219
+
220
+ #: fields/background/background.php:181
221
+ msgid "Repeat Horizontally"
222
+ msgstr ""
223
+
224
+ #: fields/background/background.php:182
225
+ msgid "Repeat Vertically"
226
+ msgstr ""
227
+
228
+ #: fields/background/background.php:196
229
+ msgid "Background Attachment"
230
+ msgstr ""
231
+
232
+ #: fields/background/background.php:197
233
+ msgid "Scroll"
234
+ msgstr ""
235
+
236
+ #: fields/background/background.php:198
237
+ msgid "Fixed"
238
+ msgstr ""
239
+
240
+ #: fields/background/background.php:212
241
+ msgid "Background Size"
242
+ msgstr ""
243
+
244
+ #: fields/background/background.php:213
245
+ msgid "Cover"
246
+ msgstr ""
247
+
248
+ #: fields/background/background.php:214
249
+ msgid "Contain"
250
+ msgstr ""
251
+
252
+ #: fields/background/background.php:228
253
+ msgid "Background Origin"
254
+ msgstr ""
255
+
256
+ #: fields/background/background.php:229 fields/background/background.php:247
257
+ msgid "Padding Box"
258
+ msgstr ""
259
+
260
+ #: fields/background/background.php:230 fields/background/background.php:246
261
+ msgid "Border Box"
262
+ msgstr ""
263
+
264
+ #: fields/background/background.php:231 fields/background/background.php:248
265
+ msgid "Content Box"
266
+ msgstr ""
267
+
268
+ #: fields/background/background.php:245
269
+ msgid "Background Clip"
270
+ msgstr ""
271
+
272
+ #: fields/background/background.php:262
273
+ msgid "Background Blend Mode"
274
+ msgstr ""
275
+
276
+ #: fields/background/background.php:263 fields/link_color/link_color.php:36
277
+ #: fields/typography/typography.php:173
278
+ msgid "Normal"
279
+ msgstr ""
280
+
281
+ #: fields/background/background.php:264
282
+ msgid "Multiply"
283
+ msgstr ""
284
+
285
+ #: fields/background/background.php:265
286
+ msgid "Screen"
287
+ msgstr ""
288
+
289
+ #: fields/background/background.php:266
290
+ msgid "Overlay"
291
+ msgstr ""
292
+
293
+ #: fields/background/background.php:267
294
+ msgid "Darken"
295
+ msgstr ""
296
+
297
+ #: fields/background/background.php:268
298
+ msgid "Lighten"
299
+ msgstr ""
300
+
301
+ #: fields/background/background.php:269
302
+ msgid "Color Dodge"
303
+ msgstr ""
304
+
305
+ #: fields/background/background.php:270
306
+ msgid "Saturation"
307
+ msgstr ""
308
+
309
+ #: fields/background/background.php:271
310
+ msgid "Color"
311
+ msgstr ""
312
+
313
+ #: fields/background/background.php:272
314
+ msgid "Luminosity"
315
+ msgstr ""
316
+
317
+ #: fields/backup/backup.php:26
318
+ msgid "Import"
319
+ msgstr ""
320
+
321
+ #: fields/backup/backup.php:27
322
+ msgid "copy-paste your backup string here"
323
+ msgstr ""
324
+
325
+ #: fields/backup/backup.php:31
326
+ msgid "Export and Download Backup"
327
+ msgstr ""
328
+
329
+ #: fields/backup/backup.php:35
330
+ msgid "Please be sure for reset all of options."
331
+ msgstr ""
332
+
333
+ #: fields/border/border.php:25 fields/spacing/spacing.php:25
334
+ msgid "top"
335
+ msgstr ""
336
+
337
+ #: fields/border/border.php:26 fields/spacing/spacing.php:26
338
+ msgid "right"
339
+ msgstr ""
340
+
341
+ #: fields/border/border.php:27 fields/spacing/spacing.php:27
342
+ msgid "bottom"
343
+ msgstr ""
344
+
345
+ #: fields/border/border.php:28 fields/spacing/spacing.php:28
346
+ msgid "left"
347
+ msgstr ""
348
+
349
+ #: fields/border/border.php:29 fields/spacing/spacing.php:29
350
+ msgid "all"
351
+ msgstr ""
352
+
353
+ #: fields/border/border.php:51 fields/typography/typography.php:201
354
+ msgid "Solid"
355
+ msgstr ""
356
+
357
+ #: fields/border/border.php:52 fields/typography/typography.php:204
358
+ msgid "Dashed"
359
+ msgstr ""
360
+
361
+ #: fields/border/border.php:53 fields/typography/typography.php:203
362
+ msgid "Dotted"
363
+ msgstr ""
364
+
365
+ #: fields/border/border.php:54 fields/typography/typography.php:202
366
+ msgid "Double"
367
+ msgstr ""
368
+
369
+ #: fields/border/border.php:55
370
+ msgid "Inset"
371
+ msgstr ""
372
+
373
+ #: fields/border/border.php:56
374
+ msgid "Outset"
375
+ msgstr ""
376
+
377
+ #: fields/border/border.php:57
378
+ msgid "Groove"
379
+ msgstr ""
380
+
381
+ #: fields/border/border.php:58
382
+ msgid "ridge"
383
+ msgstr ""
384
+
385
+ #: fields/border/border.php:59 fields/typography/typography.php:186
386
+ #: fields/typography/typography.php:200
387
+ msgid "None"
388
+ msgstr ""
389
+
390
+ #: fields/checkbox/checkbox.php:63 fields/radio/radio.php:62
391
+ #: fields/select/select.php:112
392
+ msgid "No data provided for this option type."
393
+ msgstr ""
394
+
395
+ #: fields/dimensions/dimensions.php:22
396
+ msgid "width"
397
+ msgstr ""
398
+
399
+ #: fields/dimensions/dimensions.php:23
400
+ msgid "height"
401
+ msgstr ""
402
+
403
+ #: fields/gallery/gallery.php:20
404
+ msgid "Add Gallery"
405
+ msgstr ""
406
+
407
+ #: fields/gallery/gallery.php:21
408
+ msgid "Edit Gallery"
409
+ msgstr ""
410
+
411
+ #: fields/gallery/gallery.php:22
412
+ msgid "Clear"
413
+ msgstr ""
414
+
415
+ #: fields/group/group.php:23
416
+ msgid "Add New"
417
+ msgstr ""
418
+
419
+ #: fields/group/group.php:35 fields/repeater/repeater.php:30
420
+ msgid "Error: Nested field id can not be same with another nested field id."
421
+ msgstr ""
422
+
423
+ #: fields/group/group.php:46 fields/group/group.php:86
424
+ #: fields/repeater/repeater.php:51 fields/repeater/repeater.php:82
425
+ msgid "Are you sure to delete this item?"
426
+ msgstr ""
427
+
428
+ #: fields/group/group.php:121 fields/repeater/repeater.php:96
429
+ msgid "You can not add more than"
430
+ msgstr ""
431
+
432
+ #: fields/group/group.php:122 fields/repeater/repeater.php:97
433
+ msgid "You can not remove less than"
434
+ msgstr ""
435
+
436
+ #: fields/icon/icon.php:20 functions/actions.php:184
437
+ msgid "Add Icon"
438
+ msgstr ""
439
+
440
+ #: fields/icon/icon.php:21
441
+ msgid "Remove Icon"
442
+ msgstr ""
443
+
444
+ #: fields/link_color/link_color.php:37
445
+ msgid "Hover"
446
+ msgstr ""
447
+
448
+ #: fields/link_color/link_color.php:38
449
+ msgid "Active"
450
+ msgstr ""
451
+
452
+ #: fields/link_color/link_color.php:39
453
+ msgid "Visited"
454
+ msgstr ""
455
+
456
+ #: fields/link_color/link_color.php:40
457
+ msgid "Focus"
458
+ msgstr ""
459
+
460
+ #: fields/map/map.php:23
461
+ msgid "Search your address..."
462
+ msgstr ""
463
+
464
+ #: fields/map/map.php:24
465
+ msgid "Latitude"
466
+ msgstr ""
467
+
468
+ #: fields/map/map.php:25
469
+ msgid "Longitude"
470
+ msgstr ""
471
+
472
+ #: fields/media/media.php:23 fields/upload/upload.php:21
473
+ msgid "Upload"
474
+ msgstr ""
475
+
476
+ #: fields/media/media.php:24 fields/upload/upload.php:22
477
+ msgid "Remove"
478
+ msgstr ""
479
+
480
+ #: fields/media/media.php:57
481
+ msgid "No media selected"
482
+ msgstr ""
483
+
484
+ #: fields/sorter/sorter.php:21
485
+ msgid "Enabled"
486
+ msgstr ""
487
+
488
+ #: fields/sorter/sorter.php:22
489
+ msgid "Disabled"
490
+ msgstr ""
491
+
492
+ #: fields/switcher/switcher.php:20
493
+ msgid "On"
494
+ msgstr ""
495
+
496
+ #: fields/switcher/switcher.php:21
497
+ msgid "Off"
498
+ msgstr ""
499
+
500
+ #: fields/textarea/textarea.php:37
501
+ msgid "Add Shortcode"
502
+ msgstr ""
503
+
504
+ #: fields/typography/typography.php:83
505
+ msgid "Font Family"
506
+ msgstr ""
507
+
508
+ #: fields/typography/typography.php:84
509
+ msgid "Select a font"
510
+ msgstr ""
511
+
512
+ #: fields/typography/typography.php:92
513
+ msgid "Backup Font Family"
514
+ msgstr ""
515
+
516
+ #: fields/typography/typography.php:106 fields/typography/typography.php:119
517
+ #: fields/typography/typography.php:132 fields/typography/typography.php:147
518
+ #: fields/typography/typography.php:163 fields/typography/typography.php:176
519
+ #: fields/typography/typography.php:190 fields/typography/typography.php:208
520
+ msgid "Default"
521
+ msgstr ""
522
+
523
+ #: fields/typography/typography.php:117
524
+ msgid "Font Style"
525
+ msgstr ""
526
+
527
+ #: fields/typography/typography.php:131 fields/typography/typography.php:132
528
+ msgid "Load Extra Styles"
529
+ msgstr ""
530
+
531
+ #: fields/typography/typography.php:145
532
+ msgid "Subset"
533
+ msgstr ""
534
+
535
+ #: fields/typography/typography.php:155
536
+ msgid "Text Align"
537
+ msgstr ""
538
+
539
+ #: fields/typography/typography.php:157
540
+ msgid "Inherit"
541
+ msgstr ""
542
+
543
+ #: fields/typography/typography.php:158
544
+ msgid "Left"
545
+ msgstr ""
546
+
547
+ #: fields/typography/typography.php:159
548
+ msgid "Center"
549
+ msgstr ""
550
+
551
+ #: fields/typography/typography.php:160
552
+ msgid "Right"
553
+ msgstr ""
554
+
555
+ #: fields/typography/typography.php:161
556
+ msgid "Justify"
557
+ msgstr ""
558
+
559
+ #: fields/typography/typography.php:162
560
+ msgid "Initial"
561
+ msgstr ""
562
+
563
+ #: fields/typography/typography.php:171
564
+ msgid "Font Variant"
565
+ msgstr ""
566
+
567
+ #: fields/typography/typography.php:174
568
+ msgid "Small Caps"
569
+ msgstr ""
570
+
571
+ #: fields/typography/typography.php:175
572
+ msgid "All Small Caps"
573
+ msgstr ""
574
+
575
+ #: fields/typography/typography.php:184
576
+ msgid "Text Transform"
577
+ msgstr ""
578
+
579
+ #: fields/typography/typography.php:187
580
+ msgid "Capitalize"
581
+ msgstr ""
582
+
583
+ #: fields/typography/typography.php:188
584
+ msgid "Uppercase"
585
+ msgstr ""
586
+
587
+ #: fields/typography/typography.php:189
588
+ msgid "Lowercase"
589
+ msgstr ""
590
+
591
+ #: fields/typography/typography.php:198
592
+ msgid "Text Decoration"
593
+ msgstr ""
594
+
595
+ #: fields/typography/typography.php:205
596
+ msgid "Wavy"
597
+ msgstr ""
598
+
599
+ #: fields/typography/typography.php:206
600
+ msgid "Overline"
601
+ msgstr ""
602
+
603
+ #: fields/typography/typography.php:207
604
+ msgid "Line-through"
605
+ msgstr ""
606
+
607
+ #: fields/typography/typography.php:220
608
+ msgid "Font Size"
609
+ msgstr ""
610
+
611
+ #: fields/typography/typography.php:232
612
+ msgid "Line Height"
613
+ msgstr ""
614
+
615
+ #: fields/typography/typography.php:244
616
+ msgid "Letter Spacing"
617
+ msgstr ""
618
+
619
+ #: fields/typography/typography.php:256
620
+ msgid "Word Spacing"
621
+ msgstr ""
622
+
623
+ #: fields/typography/typography.php:271
624
+ msgid "Font Color"
625
+ msgstr ""
626
+
627
+ #: fields/typography/typography.php:282
628
+ msgid "Custom Style"
629
+ msgstr ""
630
+
631
+ #: fields/typography/typography.php:349
632
+ msgid "Custom Web Fonts"
633
+ msgstr ""
634
+
635
+ #: fields/typography/typography.php:355
636
+ msgid "Safe Web Fonts"
637
+ msgstr ""
638
+
639
+ #: fields/typography/typography.php:375
640
+ msgid "Google Web Fonts"
641
+ msgstr ""
642
+
643
+ #: functions/actions.php:35
644
+ msgid "No data provided by developer"
645
+ msgstr ""
646
+
647
+ #: functions/actions.php:156
648
+ msgid "You do not have required permissions to access."
649
+ msgstr ""
650
+
651
+ #: functions/actions.php:188
652
+ msgid "Search a Icon..."
653
+ msgstr ""
654
+
655
+ #: functions/validate.php:14 functions/validate.php:86
656
+ msgid "Please write a valid email address!"
657
+ msgstr ""
658
+
659
+ #: functions/validate.php:32 functions/validate.php:106
660
+ msgid "Please write a numeric data!"
661
+ msgstr ""
662
+
663
+ #: functions/validate.php:50 functions/validate.php:126
664
+ msgid "Error! This field is required!"
665
+ msgstr ""
666
+
667
+ #: functions/validate.php:68 functions/validate.php:146
668
+ msgid "Please write a valid url!"
669
+ msgstr ""
admin/views/framework/languages/es_ES.mo ADDED
Binary file
admin/views/framework/languages/es_ES.po ADDED
@@ -0,0 +1,277 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2019 Codestar
2
+ # This file is distributed under the same license as the Codestar Framework package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Codestar Framework 2.0.2\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/codestar-"
7
+ "framework\n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "POT-Creation-Date: \n"
12
+ "PO-Revision-Date: \n"
13
+ "Language-Team: https://doothemes.com\n"
14
+ "X-Generator: Poedit 2.2\n"
15
+ "Last-Translator: Erick Meza <emeza@doothemes.com>\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+ "Language: es_ES\n"
18
+ "X-Poedit-Basepath: ..\n"
19
+ "X-Poedit-SearchPath-0: .\n"
20
+
21
+ #: classes/metabox.class.php:232 classes/options.class.php:670
22
+ msgid "No option provided by developer."
23
+ msgstr "Ninguna opción proporcionada por el desarrollador."
24
+
25
+ #: classes/metabox.class.php:250
26
+ msgid "Restore"
27
+ msgstr "Restaurar"
28
+
29
+ #: classes/metabox.class.php:251
30
+ msgid "update post for restore "
31
+ msgstr "actualizar la publicación para restaurar "
32
+
33
+ #: classes/metabox.class.php:251
34
+ msgid "Cancel"
35
+ msgstr "Cancelar"
36
+
37
+ #: classes/options.class.php:232 classes/options.class.php:388
38
+ #: functions/actions.php:43 functions/actions.php:103 functions/actions.php:125
39
+ msgid "Error while saving."
40
+ msgstr "Error durante el guardado."
41
+
42
+ #: classes/options.class.php:278
43
+ msgid "Success. Imported backup options."
44
+ msgstr "Excelente. Todas las opciones han sido importadas."
45
+
46
+ #: classes/options.class.php:300
47
+ msgid "Default options restored."
48
+ msgstr "Opciones por defecto restauradas."
49
+
50
+ #: classes/options.class.php:326
51
+ msgid "Default options restored for only this section."
52
+ msgstr "Opciones predeterminadas restauradas sólo para esta sección."
53
+
54
+ #: classes/options.class.php:384
55
+ msgid "Settings saved."
56
+ msgstr "Ajustes guardados."
57
+
58
+ #: classes/options.class.php:570
59
+ msgid "show all options"
60
+ msgstr "ver todas las opciones"
61
+
62
+ #: classes/options.class.php:572
63
+ msgid "Search option(s)"
64
+ msgstr "Buscar opciones"
65
+
66
+ #: classes/options.class.php:575 classes/options.class.php:694
67
+ msgid "Save"
68
+ msgstr "Guardar"
69
+
70
+ #: classes/options.class.php:575 classes/options.class.php:694
71
+ msgid "Saving..."
72
+ msgstr "Guardando…"
73
+
74
+ #: classes/options.class.php:576 classes/options.class.php:695
75
+ msgid "Reset Section"
76
+ msgstr "Restablecer sección"
77
+
78
+ #: classes/options.class.php:577 classes/options.class.php:696
79
+ #: fields/backup/backup.php:34
80
+ msgid "Reset All"
81
+ msgstr "Restablecer todo"
82
+
83
+ #: classes/setup.class.php:372
84
+ msgid "Ooops! This field type (%s) can not be used here, yet."
85
+ msgstr "Ooops! Este tipo de campo (%s) no se puede utilizar aquí, todavía."
86
+
87
+ #: classes/setup.class.php:414
88
+ msgid "This field class is not available!"
89
+ msgstr "¡Esta clase de campo no está disponible!"
90
+
91
+ #: classes/setup.class.php:418
92
+ msgid "This type is not found!"
93
+ msgstr "¡ Este tipo no se encuentra!"
94
+
95
+ #: classes/shortcoder.class.php:220
96
+ msgid "Add one more"
97
+ msgstr "Añadir una más"
98
+
99
+ #: classes/shortcoder.class.php:257
100
+ msgid "Security check"
101
+ msgstr "Verificación de seguridad"
102
+
103
+ #: fields/background/background.php:34
104
+ msgid "No background selected"
105
+ msgstr "No hay fondo seleccionado"
106
+
107
+ #: fields/backup/backup.php:26
108
+ msgid "Import"
109
+ msgstr "Importar"
110
+
111
+ #: fields/backup/backup.php:27
112
+ msgid "copy-paste your backup string here"
113
+ msgstr "copie-pegue su cadena de respaldo aquí"
114
+
115
+ #: fields/backup/backup.php:31
116
+ msgid "Export and Download Backup"
117
+ msgstr "Exportar y Descargar Copia de Seguridad"
118
+
119
+ #: fields/backup/backup.php:35
120
+ msgid "Please be sure for reset all of options."
121
+ msgstr "Por favor, asegúrese de restablecer todas las opciones."
122
+
123
+ #: fields/gallery/gallery.php:20
124
+ msgid "Add Gallery"
125
+ msgstr "Agregar Galería"
126
+
127
+ #: fields/gallery/gallery.php:21
128
+ msgid "Edit Gallery"
129
+ msgstr "Editar Galería"
130
+
131
+ #: fields/gallery/gallery.php:22
132
+ msgid "Clear"
133
+ msgstr "Limpiar"
134
+
135
+ #: fields/group/group.php:23
136
+ msgid "Add New"
137
+ msgstr "Añadir nuevo"
138
+
139
+ #: fields/group/group.php:24 fields/icon/icon.php:21
140
+ msgid "Remove Icon"
141
+ msgstr "Eliminar Icono"
142
+
143
+ #: fields/group/group.php:58 fields/media/media.php:24
144
+ #: fields/upload/upload.php:22
145
+ msgid "Remove"
146
+ msgstr "Quitar"
147
+
148
+ #: fields/group/group.php:113 fields/repeater/repeater.php:94
149
+ msgid "You can not add more than"
150
+ msgstr "No se puede agregar más de"
151
+
152
+ #: fields/group/group.php:114 fields/repeater/repeater.php:95
153
+ msgid "You can not remove less than"
154
+ msgstr "No se puede quitar menos de"
155
+
156
+ #: fields/icon/icon.php:20 functions/actions.php:147
157
+ msgid "Add Icon"
158
+ msgstr "Añadir Icono"
159
+
160
+ #: fields/media/media.php:23 fields/upload/upload.php:21
161
+ msgid "Upload"
162
+ msgstr "Cargar"
163
+
164
+ #: fields/media/media.php:46
165
+ msgid "No media selected"
166
+ msgstr "No se ha seleccionado ningún medio"
167
+
168
+ #: fields/select/select.php:72
169
+ msgid "No data provided for this option type."
170
+ msgstr "No hay datos proporcionados para este tipo de opción."
171
+
172
+ #: fields/sorter/sorter.php:21
173
+ msgid "Enabled"
174
+ msgstr "Habilitado"
175
+
176
+ #: fields/sorter/sorter.php:22
177
+ msgid "Disabled"
178
+ msgstr "Deshabilitado"
179
+
180
+ #: fields/textarea/textarea.php:37
181
+ msgid "Add Shortcode"
182
+ msgstr "Añadir Shortcode"
183
+
184
+ #: fields/typography/typography.php:82
185
+ msgid "Font Family"
186
+ msgstr "Familia de Fuente"
187
+
188
+ #: fields/typography/typography.php:83
189
+ msgid "Select a font"
190
+ msgstr "Seleccione una fuente"
191
+
192
+ #: fields/typography/typography.php:91
193
+ msgid "Backup Font Family"
194
+ msgstr "Tipografía de respaldo"
195
+
196
+ #: fields/typography/typography.php:105 fields/typography/typography.php:118
197
+ #: fields/typography/typography.php:131 fields/typography/typography.php:146
198
+ #: fields/typography/typography.php:162 fields/typography/typography.php:175
199
+ #: fields/typography/typography.php:189 fields/typography/typography.php:207
200
+ msgid "Default"
201
+ msgstr "Predeterminado"
202
+
203
+ #: fields/typography/typography.php:116
204
+ msgid "Font Style"
205
+ msgstr "Estilo de Fuente"
206
+
207
+ #: fields/typography/typography.php:130 fields/typography/typography.php:131
208
+ msgid "Load Extra Styles"
209
+ msgstr "Cargar estilos adicionales"
210
+
211
+ #: fields/typography/typography.php:144
212
+ msgid "Subset"
213
+ msgstr "Subconjunto"
214
+
215
+ #: fields/typography/typography.php:154
216
+ msgid "Text Align"
217
+ msgstr "Texto alineado"
218
+
219
+ #: fields/typography/typography.php:170
220
+ msgid "Font Variant"
221
+ msgstr "Variante de fuente"
222
+
223
+ #: fields/typography/typography.php:183
224
+ msgid "Text Transform"
225
+ msgstr "Transformación de texto"
226
+
227
+ #: fields/typography/typography.php:197
228
+ msgid "Text Decoration"
229
+ msgstr "Decoración del texto"
230
+
231
+ #: fields/typography/typography.php:219
232
+ msgid "Font Size"
233
+ msgstr "Tamaño de fuente"
234
+
235
+ #: fields/typography/typography.php:231
236
+ msgid "Line Height"
237
+ msgstr "Altura de la línea"
238
+
239
+ #: fields/typography/typography.php:243
240
+ msgid "Letter Spacing"
241
+ msgstr "Espacio entre letras"
242
+
243
+ #: fields/typography/typography.php:255
244
+ msgid "Word Spacing"
245
+ msgstr "Espaciado entre palabras"
246
+
247
+ #: fields/typography/typography.php:269
248
+ msgid "Font Color"
249
+ msgstr "Color de fuente"
250
+
251
+ #: fields/typography/typography.php:280
252
+ msgid "Custom Style"
253
+ msgstr "Estilo personalizado"
254
+
255
+ #: functions/actions.php:35
256
+ msgid "No data provided by developer"
257
+ msgstr "No hay datos proporcionados por el desarrollador"
258
+
259
+ #: functions/actions.php:151
260
+ msgid "Search a Icon..."
261
+ msgstr "Buscar un Icono…"
262
+
263
+ #: functions/validate.php:14 functions/validate.php:86
264
+ msgid "Please write a valid email address!"
265
+ msgstr "¡Por favor escriba una dirección válida de correo electrónico!"
266
+
267
+ #: functions/validate.php:32 functions/validate.php:106
268
+ msgid "Please write a numeric data!"
269
+ msgstr "¡Por favor introduce un dato numérico!"
270
+
271
+ #: functions/validate.php:50 functions/validate.php:126
272
+ msgid "Fatal Error! This field is required!"
273
+ msgstr "¡Error Fatal! Este dato es obligatorio!"
274
+
275
+ #: functions/validate.php:68 functions/validate.php:146
276
+ msgid "Please write a valid url!"
277
+ msgstr "Por favor, escriba una URL válida!"
admin/views/testimonial-metaboxs.php CHANGED
@@ -1,6 +1,18 @@
1
  <?php if ( ! defined( 'ABSPATH' ) ) {
2
  die; } // Cannot access directly.
3
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  //
5
  // Metabox of the testimonial shortcode generator.
6
  // Set a unique slug-like ID.
@@ -10,9 +22,10 @@ $prefix_shortcode_opts = 'sp_tpro_shortcode_options';
10
  //
11
  // Testimonial metabox.
12
  //
13
- SPFTESTIMONIAL::createMetabox(
14
  $prefix_shortcode_opts, array(
15
  'title' => __( 'Shortcode Options', 'testimonial-free' ),
 
16
  'post_type' => 'sp_tfree_shortcodes',
17
  // 'post_type' => 'sp_tpro_shortcodes',
18
  'context' => 'normal',
@@ -22,7 +35,7 @@ SPFTESTIMONIAL::createMetabox(
22
  //
23
  // General Settings section.
24
  //
25
- SPFTESTIMONIAL::createSection(
26
  $prefix_shortcode_opts, array(
27
  'title' => __( 'General Settings', 'testimonial-free' ),
28
  'icon' => 'fa fa-wrench',
@@ -178,7 +191,7 @@ SPFTESTIMONIAL::createSection(
178
  //
179
  // Slider Settings section.
180
  //
181
- SPFTESTIMONIAL::createSection(
182
  $prefix_shortcode_opts, array(
183
  'title' => __( 'Slider Settings', 'testimonial-free' ),
184
  'icon' => 'fa fa-sliders',
@@ -361,7 +374,7 @@ SPFTESTIMONIAL::createSection(
361
  //
362
  // Stylization section.
363
  //
364
- SPFTESTIMONIAL::createSection(
365
  $prefix_shortcode_opts, array(
366
  'title' => __( 'Stylization', 'testimonial-free' ),
367
  'icon' => 'fa fa-paint-brush',
@@ -433,7 +446,7 @@ SPFTESTIMONIAL::createSection(
433
  //
434
  // Typography section.
435
  //
436
- SPFTESTIMONIAL::createSection(
437
  $prefix_shortcode_opts, array(
438
  'title' => __( 'Typography', 'testimonial-free' ),
439
  'icon' => 'fa fa-font',
@@ -760,14 +773,14 @@ SPFTESTIMONIAL::createSection(
760
  //
761
  // Upgrade to Pro section.
762
  //
763
- SPFTESTIMONIAL::createSection(
764
  $prefix_shortcode_opts, array(
765
  'title' => __( 'Upgrade to Pro', 'testimonial-free' ),
766
  'icon' => 'fa fa-rocket',
767
  'fields' => array(
768
  array(
769
  'type' => 'upgrade',
770
- 'content' => 'upgrade',
771
  ),
772
 
773
  ),
@@ -783,9 +796,10 @@ $prefix_testimonial_opts = 'sp_tpro_meta_options';
783
  //
784
  // Testimonial metabox.
785
  //
786
- SPFTESTIMONIAL::createMetabox(
787
  $prefix_testimonial_opts, array(
788
  'title' => __( 'Testimonial Options', 'testimonial-free' ),
 
789
  'post_type' => 'spt_testimonial',
790
  'context' => 'normal',
791
  )
@@ -794,7 +808,7 @@ SPFTESTIMONIAL::createMetabox(
794
  //
795
  // Reviewer Information section.
796
  //
797
- SPFTESTIMONIAL::createSection(
798
  $prefix_testimonial_opts, array(
799
  'title' => __( 'Reviewer Information', 'testimonial-free' ),
800
  'fields' => array(
@@ -804,12 +818,14 @@ SPFTESTIMONIAL::createSection(
804
  'type' => 'text',
805
  'title' => __( 'Name', 'testimonial-free' ),
806
  'subtitle' => __( 'Type reviewer name here.', 'testimonial-free' ),
 
807
  ),
808
  array(
809
  'id' => 'tpro_designation',
810
  'type' => 'text',
811
  'title' => __( 'Identity or Position', 'testimonial-free' ),
812
  'subtitle' => __( 'Type reviewer identity or position here.', 'testimonial-free' ),
 
813
  ),
814
  array(
815
  'id' => 'tpro_rating',
@@ -824,6 +840,7 @@ SPFTESTIMONIAL::createSection(
824
  'one_star' => __( '1 Star', 'testimonial-free' ),
825
  ),
826
  'default' => '',
 
827
  ),
828
 
829
  ),
@@ -833,7 +850,7 @@ SPFTESTIMONIAL::createSection(
833
  //
834
  // Social Profiles section.
835
  //
836
- SPFTESTIMONIAL::createSection(
837
  $prefix_testimonial_opts, array(
838
  'title' => __( 'Social Profiles', 'testimonial-free' ),
839
  'fields' => array(
1
  <?php if ( ! defined( 'ABSPATH' ) ) {
2
  die; } // Cannot access directly.
3
 
4
+ /**
5
+ * Sanitize function for text field.
6
+ */
7
+ if ( ! function_exists( 'spftestimonial_sanitize_text' ) ) {
8
+ function spftestimonial_sanitize_text( $value ) {
9
+
10
+ $safe_text = filter_var( $value, FILTER_SANITIZE_STRING );
11
+ return $safe_text;
12
+
13
+ }
14
+ }
15
+
16
  //
17
  // Metabox of the testimonial shortcode generator.
18
  // Set a unique slug-like ID.
22
  //
23
  // Testimonial metabox.
24
  //
25
+ CSF::createMetabox(
26
  $prefix_shortcode_opts, array(
27
  'title' => __( 'Shortcode Options', 'testimonial-free' ),
28
+ 'class' => 'spt-main-class',
29
  'post_type' => 'sp_tfree_shortcodes',
30
  // 'post_type' => 'sp_tpro_shortcodes',
31
  'context' => 'normal',
35
  //
36
  // General Settings section.
37
  //
38
+ CSF::createSection(
39
  $prefix_shortcode_opts, array(
40
  'title' => __( 'General Settings', 'testimonial-free' ),
41
  'icon' => 'fa fa-wrench',
191
  //
192
  // Slider Settings section.
193
  //
194
+ CSF::createSection(
195
  $prefix_shortcode_opts, array(
196
  'title' => __( 'Slider Settings', 'testimonial-free' ),
197
  'icon' => 'fa fa-sliders',
374
  //
375
  // Stylization section.
376
  //
377
+ CSF::createSection(
378
  $prefix_shortcode_opts, array(
379
  'title' => __( 'Stylization', 'testimonial-free' ),
380
  'icon' => 'fa fa-paint-brush',
446
  //
447
  // Typography section.
448
  //
449
+ CSF::createSection(
450
  $prefix_shortcode_opts, array(
451
  'title' => __( 'Typography', 'testimonial-free' ),
452
  'icon' => 'fa fa-font',
773
  //
774
  // Upgrade to Pro section.
775
  //
776
+ CSF::createSection(
777
  $prefix_shortcode_opts, array(
778
  'title' => __( 'Upgrade to Pro', 'testimonial-free' ),
779
  'icon' => 'fa fa-rocket',
780
  'fields' => array(
781
  array(
782
  'type' => 'upgrade',
783
+ 'content' => 'upgrade',
784
  ),
785
 
786
  ),
796
  //
797
  // Testimonial metabox.
798
  //
799
+ CSF::createMetabox(
800
  $prefix_testimonial_opts, array(
801
  'title' => __( 'Testimonial Options', 'testimonial-free' ),
802
+ 'class' => 'spt-main-class',
803
  'post_type' => 'spt_testimonial',
804
  'context' => 'normal',
805
  )
808
  //
809
  // Reviewer Information section.
810
  //
811
+ CSF::createSection(
812
  $prefix_testimonial_opts, array(
813
  'title' => __( 'Reviewer Information', 'testimonial-free' ),
814
  'fields' => array(
818
  'type' => 'text',
819
  'title' => __( 'Name', 'testimonial-free' ),
820
  'subtitle' => __( 'Type reviewer name here.', 'testimonial-free' ),
821
+ 'sanitize' => 'spftestimonial_sanitize_text',
822
  ),
823
  array(
824
  'id' => 'tpro_designation',
825
  'type' => 'text',
826
  'title' => __( 'Identity or Position', 'testimonial-free' ),
827
  'subtitle' => __( 'Type reviewer identity or position here.', 'testimonial-free' ),
828
+ 'sanitize' => 'spftestimonial_sanitize_text',
829
  ),
830
  array(
831
  'id' => 'tpro_rating',
840
  'one_star' => __( '1 Star', 'testimonial-free' ),
841
  ),
842
  'default' => '',
843
+ 'sanitize' => 'spftestimonial_sanitize_text',
844
  ),
845
 
846
  ),
850
  //
851
  // Social Profiles section.
852
  //
853
+ CSF::createSection(
854
  $prefix_testimonial_opts, array(
855
  'title' => __( 'Social Profiles', 'testimonial-free' ),
856
  'fields' => array(
admin/views/testimonial-settings.php CHANGED
@@ -6,19 +6,30 @@
6
  //
7
  $prefix = '_sp_testimonial_options';
8
 
 
 
 
 
 
 
 
 
 
9
  //
10
  // Create a settings page.
11
  //
12
- SPFTESTIMONIAL::createOptions(
13
  $prefix, array(
14
  'menu_title' => __( 'Settings', 'testimonial-free' ),
15
  'menu_parent' => 'edit.php?post_type=spt_testimonial',
16
  'menu_type' => 'submenu', // menu, submenu, options, theme, etc.
17
  'menu_slug' => 'spt_settings',
18
  'theme' => 'light',
 
19
  'show_all_options' => false,
20
  'show_search' => false,
21
  'show_footer' => false,
 
22
  'framework_title' => __( 'Testimonial Settings', 'testimonial-free' ),
23
  )
24
  );
@@ -26,7 +37,7 @@ SPFTESTIMONIAL::createOptions(
26
  //
27
  // Advanced section.
28
  //
29
- SPFTESTIMONIAL::createSection(
30
  $prefix, array(
31
  'name' => 'advanced_settings',
32
  'title' => __( 'Advanced', 'testimonial-free' ),
@@ -50,7 +61,7 @@ SPFTESTIMONIAL::createSection(
50
  //
51
  // Custom CSS section.
52
  //
53
- SPFTESTIMONIAL::createSection(
54
  $prefix, array(
55
  'name' => 'custom_css_section',
56
  'title' => __( 'Custom CSS', 'testimonial-free' ),
6
  //
7
  $prefix = '_sp_testimonial_options';
8
 
9
+ //
10
+ // Review text.
11
+ //
12
+ $url = 'https://wordpress.org/support/plugin/testimonial-free/reviews/?filter=5#new-post';
13
+ $text = sprintf(
14
+ __( 'If you like <strong>Testimonial</strong> please leave us a <a href="%s" target="_blank">&#9733;&#9733;&#9733;&#9733;&#9733;</a> rating. Your Review is very important to us as it helps us to grow more. ', 'testimonial-free' ),
15
+ $url
16
+ );
17
+
18
  //
19
  // Create a settings page.
20
  //
21
+ CSF::createOptions(
22
  $prefix, array(
23
  'menu_title' => __( 'Settings', 'testimonial-free' ),
24
  'menu_parent' => 'edit.php?post_type=spt_testimonial',
25
  'menu_type' => 'submenu', // menu, submenu, options, theme, etc.
26
  'menu_slug' => 'spt_settings',
27
  'theme' => 'light',
28
+ 'class' => 'spt-main-class',
29
  'show_all_options' => false,
30
  'show_search' => false,
31
  'show_footer' => false,
32
+ 'footer_credit' => $text,
33
  'framework_title' => __( 'Testimonial Settings', 'testimonial-free' ),
34
  )
35
  );
37
  //
38
  // Advanced section.
39
  //
40
+ CSF::createSection(
41
  $prefix, array(
42
  'name' => 'advanced_settings',
43
  'title' => __( 'Advanced', 'testimonial-free' ),
61
  //
62
  // Custom CSS section.
63
  //
64
+ CSF::createSection(
65
  $prefix, array(
66
  'name' => 'custom_css_section',
67
  'title' => __( 'Custom CSS', 'testimonial-free' ),
admin/views/tp-metabox/assets/css/spftestimonial-rtl.css DELETED
@@ -1,381 +0,0 @@
1
- /**
2
- *
3
- * ---------------------------------------------------------
4
- * CODESTAR FRAMEWORK RTL CSS MAP
5
- * ---------------------------------------------------------
6
- *
7
- * 01. Base
8
- * 01. 01. Header
9
- * 01. 02. Header Buttons
10
- * 01. 03. Navigation
11
- * 01. 04. Content
12
- * 01. 05. Section
13
- * 01. 06. Show All Options
14
- * 01. 07. Search Input
15
- * 01. 08. Copyright
16
- * 01. 09. Metabox
17
- * 02. Fields
18
- * 02. 01. Field: typography
19
- * 02. 02. Field: checkbox, radio
20
- * 02. 03. Field: switcher
21
- * 02. 07. Field: help
22
- * 02. 11. Field: tabbed
23
- * 02. 13. Field: notice
24
- * 02. 14. Field: spacing
25
- * 02. 15. Field: background
26
- * 02. 16. Field: spinner
27
- * 02. 18. Field: button_set
28
- * 02. 20. Field: color_group
29
- * 03. Taxonomy
30
- * 04. Profile
31
- * 05. Modal
32
- * 06. Customizer
33
- * 07. Responsive
34
- * 08. Others
35
- *
36
- * ---------------------------------------------------------
37
- *
38
- */
39
- /**
40
- * 01. Base
41
- */
42
- .spftestimonial {
43
- margin-left: 20px;
44
- margin-right: 0;
45
- }
46
-
47
- /**
48
- * 01. 01. Header
49
- */
50
- .spftestimonial-header h1 {
51
- float: right;
52
- }
53
- .spftestimonial-header fieldset {
54
- float: left;
55
- }
56
-
57
- /**
58
- * 01. 02. Header Buttons
59
- */
60
- .spftestimonial-buttons {
61
- float: left;
62
- direction: ltr;
63
- }
64
-
65
- .spftestimonial-header-left {
66
- float: right;
67
- }
68
-
69
- .spftestimonial-header-right {
70
- float: left;
71
- }
72
-
73
- /**
74
- * 01. 03. Navigation
75
- */
76
- .spftestimonial-nav {
77
- float: right;
78
- }
79
- .spftestimonial-nav ul {
80
- clear: right;
81
- }
82
- .spftestimonial-nav ul li .spftestimonial-section-active:after {
83
- right: auto;
84
- left: 0;
85
- border-left-color: #fff;
86
- border-right-color: transparent;
87
- }
88
- .spftestimonial-nav ul li .spftestimonial-arrow:after {
89
- content: "\f053";
90
- right: auto;
91
- left: 10px;
92
- }
93
- .spftestimonial-nav ul li.spftestimonial-tab-active .spftestimonial-arrow:after {
94
- -moz-transform: rotate(-90deg);
95
- -ms-transform: rotate(-90deg);
96
- -webkit-transform: rotate(-90deg);
97
- transform: rotate(-90deg);
98
- }
99
- .spftestimonial-nav ul ul li a {
100
- padding-right: 25px;
101
- padding-left: 15px;
102
- }
103
- .spftestimonial-nav ul ul:before {
104
- left: auto;
105
- right: 15px;
106
- }
107
- .spftestimonial-nav .fa {
108
- margin-left: 5px;
109
- margin-right: 0;
110
- }
111
-
112
- .spftestimonial-nav-background {
113
- left: auto;
114
- right: 0;
115
- }
116
-
117
- /**
118
- * 01. 04. Content
119
- */
120
- .spftestimonial-content {
121
- margin-left: 0;
122
- margin-right: 225px;
123
- }
124
-
125
- /**
126
- * 01. 05. Section
127
- */
128
- .spftestimonial-sections {
129
- float: right;
130
- }
131
-
132
- /**
133
- * 01. 06. Show all options
134
- */
135
- .spftestimonial-show-all .spftestimonial-content {
136
- margin-right: 0;
137
- overflow: hidden;
138
- }
139
-
140
- .spftestimonial-expand-all {
141
- float: right;
142
- right: auto;
143
- left: 40px;
144
- margin-right: 0;
145
- margin-left: 4px;
146
- }
147
-
148
- /**
149
- * 01. 07. Search Input
150
- */
151
- .spftestimonial-search {
152
- float: right;
153
- }
154
- .spftestimonial-search input {
155
- margin: 0 0 0 5px;
156
- }
157
-
158
- /**
159
- * 01. 08. Copyright
160
- */
161
- .spftestimonial-copyright {
162
- float: right;
163
- }
164
-
165
- /**
166
- * 01. 09. Metabox
167
- */
168
- .spftestimonial-metabox {
169
- margin: -6px -12px -12px -12px;
170
- }
171
- .spftestimonial-metabox .spftestimonial-section-title {
172
- padding: 20px;
173
- }
174
- .spftestimonial-metabox .spftestimonial-section-title .fa {
175
- margin-left: 5px;
176
- margin-right: 0;
177
- }
178
-
179
- .spftestimonial-section-title .fa {
180
- margin-left: 5px;
181
- margin-right: 0;
182
- }
183
-
184
- /**
185
- * 02. Fields
186
- */
187
- .spftestimonial-field .spftestimonial-title {
188
- float: right;
189
- }
190
- .spftestimonial-field .spftestimonial-fieldset {
191
- margin-left: 0;
192
- margin-right: 30%;
193
- }
194
-
195
- .spftestimonial-pseudo-field {
196
- padding: 0 0 0 5px !important;
197
- }
198
-
199
- /**
200
- * 02. 01. Field: typography
201
- */
202
- .spftestimonial-field-typography select {
203
- margin: 0;
204
- width: 100%;
205
- }
206
- .spftestimonial-field-typography .spftestimonial--blocks-inputs .spftestimonial--blocks {
207
- flex-direction: row-reverse;
208
- }
209
-
210
- /**
211
- * 02. 02. Field: checkbox, radio
212
- */
213
- .spftestimonial-field-checkbox .spftestimonial--inline-list li,
214
- .spftestimonial-field-radio .spftestimonial--inline-list li {
215
- margin-right: 0;
216
- margin-left: 15px;
217
- }
218
-
219
- /**
220
- * 02. 03. Field: switcher
221
- */
222
- .spftestimonial-field-switcher .spftestimonial--switcher {
223
- float: right;
224
- }
225
- .spftestimonial-field-switcher .spftestimonial--label {
226
- float: right;
227
- margin-left: 0;
228
- margin-right: 5px;
229
- }
230
-
231
- /**
232
- * 02. 07. Field: help
233
- */
234
- .spftestimonial-help {
235
- right: auto;
236
- left: 5px;
237
- }
238
-
239
- /**
240
- * 02. 13. Field: notice
241
- */
242
- .spftestimonial-notice {
243
- border-left: none;
244
- border-right-style: solid;
245
- border-right-width: 4px;
246
- }
247
-
248
- /**
249
- * 02. 14. Field: spacing
250
- */
251
- .spftestimonial-field-spacing .spftestimonial--input {
252
- float: right;
253
- margin-right: 0;
254
- margin-left: 15px;
255
- }
256
- .spftestimonial-field-spacing .spftestimonial--left {
257
- float: right;
258
- }
259
-
260
- /**
261
- * 02. 16. Field: spinner
262
- */
263
- .spftestimonial-field-spinner .spftestimonial--spin {
264
- float: right;
265
- }
266
-
267
- /**
268
- * 02. 18. Field: button_set
269
- */
270
- .spftestimonial-field-button_set .spftestimonial--button-group {
271
- float: right;
272
- }
273
-
274
- /**
275
- * 02. 20. Field: color_group
276
- */
277
- .spftestimonial-field-color_group .spftestimonial--left {
278
- float: right;
279
- margin-right: 0;
280
- margin-left: 10px;
281
- }
282
-
283
- /**
284
- * 03. Taxonomy
285
- */
286
- .spftestimonial-taxonomy-add-fields .spftestimonial-fieldset {
287
- margin-right: 0;
288
- }
289
- .spftestimonial-taxonomy-add-fields .spftestimonial-field > .spftestimonial-fieldset > .spftestimonial-help {
290
- left: -5px;
291
- right: auto;
292
- }
293
-
294
- .spftestimonial-taxonomy-edit-fields .spftestimonial-fieldset {
295
- margin-left: 0;
296
- margin-right: 225px;
297
- }
298
- .spftestimonial-taxonomy-edit-fields .spftestimonial-field > .spftestimonial-fieldset > .spftestimonial-help {
299
- right: auto;
300
- left: -5px;
301
- }
302
-
303
- /**
304
- * 04. Profile
305
- */
306
- .spftestimonial-profile > h2 > .fa {
307
- padding-right: 0;
308
- padding-left: 7px;
309
- }
310
- .spftestimonial-profile > .spftestimonial-field > .spftestimonial-fieldset {
311
- margin-left: 0;
312
- margin-right: 220px;
313
- }
314
- .spftestimonial-profile > .spftestimonial-field > .spftestimonial-help {
315
- left: 0;
316
- right: auto;
317
- }
318
-
319
- .spftestimonial-taxonomy-edit-fields .spftestimonial-fieldset {
320
- margin-left: 0;
321
- margin-right: 225px;
322
- }
323
- .spftestimonial-taxonomy-edit-fields .spftestimonial-field > .spftestimonial-fieldset > .spftestimonial-help {
324
- right: auto;
325
- left: -5px;
326
- }
327
-
328
- /**
329
- * 05. Modal
330
- */
331
- .spftestimonial-modal-content .spftestimonial-field {
332
- padding: 15px 15px 15px 30px;
333
- }
334
-
335
- .spftestimonial-modal-title {
336
- padding: 0 16px 0 36px;
337
- }
338
-
339
- .spftestimonial-modal-close {
340
- right: auto;
341
- left: 0;
342
- }
343
-
344
- /**
345
- * 06. Customizer
346
- */
347
- .control-section .spftestimonial-field .spftestimonial-fieldset {
348
- margin-right: 0;
349
- }
350
-
351
- /**
352
- * 07. Responsive
353
- */
354
- @media only screen and (max-width: 1200px) {
355
- .spftestimonial-metabox .spftestimonial-field .spftestimonial-fieldset {
356
- margin-left: 0;
357
- }
358
- }
359
- @media only screen and (max-width: 782px) {
360
- .spftestimonial .spftestimonial-fieldset,
361
- .spftestimonial .spftestimonial-content {
362
- margin-right: 0;
363
- }
364
- }
365
- /**
366
- * 08. Others
367
- */
368
- .spftestimonial-field .spftestimonial--transparent-slider {
369
- margin-left: 0;
370
- margin-right: 2px;
371
- }
372
- .spftestimonial-field .spftestimonial--transparent-slider .ui-slider-handle {
373
- margin: 0 -11px;
374
- }
375
- .spftestimonial-field .spftestimonial--transparent-offset {
376
- background-position: center right;
377
- }
378
- .spftestimonial-field .spftestimonial--transparent-text {
379
- right: auto;
380
- left: 10px;
381
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/views/tp-metabox/assets/css/spftestimonial-rtl.min.css DELETED
@@ -1 +0,0 @@
1
- .spftestimonial{margin-left:20px;margin-right:0}.spftestimonial-header h1{float:right}.spftestimonial-header fieldset{float:left}.spftestimonial-buttons{float:left;direction:ltr}.spftestimonial-header-left{float:right}.spftestimonial-header-right{float:left}.spftestimonial-nav{float:right}.spftestimonial-nav ul{clear:right}.spftestimonial-nav ul li .spftestimonial-section-active:after{right:auto;left:0;border-left-color:#fff;border-right-color:transparent}.spftestimonial-nav ul li .spftestimonial-arrow:after{content:"\f053";right:auto;left:10px}.spftestimonial-nav ul li.spftestimonial-tab-active .spftestimonial-arrow:after{-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.spftestimonial-nav ul ul li a{padding-right:25px;padding-left:15px}.spftestimonial-nav ul ul:before{left:auto;right:15px}.spftestimonial-nav .fa{margin-left:5px;margin-right:0}.spftestimonial-nav-background{left:auto;right:0}.spftestimonial-content{margin-left:0;margin-right:225px}.spftestimonial-sections{float:right}.spftestimonial-show-all .spftestimonial-content{margin-right:0;overflow:hidden}.spftestimonial-expand-all{float:right;right:auto;left:40px;margin-right:0;margin-left:4px}.spftestimonial-search{float:right}.spftestimonial-search input{margin:0 0 0 5px}.spftestimonial-copyright{float:right}.spftestimonial-metabox{margin:-6px -12px -12px -12px}.spftestimonial-metabox .spftestimonial-section-title{padding:20px}.spftestimonial-metabox .spftestimonial-section-title .fa{margin-left:5px;margin-right:0}.spftestimonial-section-title .fa{margin-left:5px;margin-right:0}.spftestimonial-field .spftestimonial-title{float:right}.spftestimonial-field .spftestimonial-fieldset{margin-left:0;margin-right:30%}.spftestimonial-pseudo-field{padding:0 0 0 5px!important}.spftestimonial-field-typography select{margin:0;width:100%}.spftestimonial-field-typography .spftestimonial--blocks-inputs .spftestimonial--blocks{flex-direction:row-reverse}.spftestimonial-field-checkbox .spftestimonial--inline-list li,.spftestimonial-field-radio .spftestimonial--inline-list li{margin-right:0;margin-left:15px}.spftestimonial-field-switcher .spftestimonial--switcher{float:right}.spftestimonial-field-switcher .spftestimonial--label{float:right;margin-left:0;margin-right:5px}.spftestimonial-help{right:auto;left:5px}.spftestimonial-notice{border-left:none;border-right-style:solid;border-right-width:4px}.spftestimonial-field-spacing .spftestimonial--input{float:right;margin-right:0;margin-left:15px}.spftestimonial-field-spacing .spftestimonial--left{float:right}.spftestimonial-field-spinner .spftestimonial--spin{float:right}.spftestimonial-field-button_set .spftestimonial--button-group{float:right}.spftestimonial-field-color_group .spftestimonial--left{float:right;margin-right:0;margin-left:10px}.spftestimonial-taxonomy-add-fields .spftestimonial-fieldset{margin-right:0}.spftestimonial-taxonomy-add-fields .spftestimonial-field>.spftestimonial-fieldset>.spftestimonial-help{left:-5px;right:auto}.spftestimonial-taxonomy-edit-fields .spftestimonial-fieldset{margin-left:0;margin-right:225px}.spftestimonial-taxonomy-edit-fields .spftestimonial-field>.spftestimonial-fieldset>.spftestimonial-help{right:auto;left:-5px}.spftestimonial-profile>h2>.fa{padding-right:0;padding-left:7px}.spftestimonial-profile>.spftestimonial-field>.spftestimonial-fieldset{margin-left:0;margin-right:220px}.spftestimonial-profile>.spftestimonial-field>.spftestimonial-help{left:0;right:auto}.spftestimonial-taxonomy-edit-fields .spftestimonial-fieldset{margin-left:0;margin-right:225px}.spftestimonial-taxonomy-edit-fields .spftestimonial-field>.spftestimonial-fieldset>.spftestimonial-help{right:auto;left:-5px}.spftestimonial-modal-content .spftestimonial-field{padding:15px 15px 15px 30px}.spftestimonial-modal-title{padding:0 16px 0 36px}.spftestimonial-modal-close{right:auto;left:0}.control-section .spftestimonial-field .spftestimonial-fieldset{margin-right:0}@media only screen and (max-width:1200px){.spftestimonial-metabox .spftestimonial-field .spftestimonial-fieldset{margin-left:0}}@media only screen and (max-width:782px){.spftestimonial .spftestimonial-content,.spftestimonial .spftestimonial-fieldset{margin-right:0}}.spftestimonial-field .spftestimonial--transparent-slider{margin-left:0;margin-right:2px}.spftestimonial-field .spftestimonial--transparent-slider .ui-slider-handle{margin:0 -11px}.spftestimonial-field .spftestimonial--transparent-offset{background-position:center right}.spftestimonial-field .spftestimonial--transparent-text{right:auto;left:10px}
 
admin/views/tp-metabox/assets/css/spftestimonial.css DELETED
@@ -1,3044 +0,0 @@
1
- /**
2
- *
3
- * ---------------------------------------------------------
4
- * CODESTAR FRAMEWORK CSS MAP
5
- * ---------------------------------------------------------
6
- *
7
- * 01. Base
8
- * 01. 01. Header
9
- * 01. 02. Sticky
10
- * 01. 03. Header Buttons
11
- * 01. 04. Navigation
12
- * 01. 05. Wrapper
13
- * 01. 06. Content
14
- * 01. 07. Section
15
- * 01. 08. Footer
16
- * 01. 09. Copyright
17
- * 01. 10. Show All Options
18
- * 01. 11. Search Input
19
- * 01. 12. Metabox
20
- * 01. 13. Help Tooltip
21
- * 02. Themes
22
- * 02. 01. Theme Dark
23
- * 02. 02. Theme Light
24
- * 03. Fields
25
- * 03. 01. Field
26
- * 03. 02. Field: accordion
27
- * 03. 03. Field: background
28
- * 03. 04. Field: backup
29
- * 03. 05. Field: border, spacing, dimensions
30
- * 03. 06. Field: button_set
31
- * 03. 07. Field: checkbox, radio
32
- * 03. 08. Field: code_editor
33
- * 03. 09. Field: color
34
- * 03. 10. Field: color_group
35
- * 03. 11. Field: fieldset
36
- * 03. 12. Field: date
37
- * 03. 13. Field: gallery
38
- * 03. 14. Field: group
39
- * 03. 15. Field: icon
40
- * 03. 16. Field: image_select
41
- * 03. 17. Field: link_color
42
- * 03. 18. Field: media
43
- * 03. 19. Field: palette
44
- * 03. 20. Field: repeater
45
- * 03. 21. Field: select
46
- * 03. 22. Field: slider
47
- * 03. 23. Field: sortable
48
- * 03. 24. Field: sorter
49
- * 03. 25. Field: spinner
50
- * 03. 26. Field: switcher
51
- * 03. 27. Field: tabbed
52
- * 03. 28. Field: text
53
- * 03. 29. Field: textarea
54
- * 03. 30. Field: typography
55
- * 03. 31. Field: upload
56
- * 03. 32. Field: wp_editor
57
- * 03. 33. Field: heading
58
- * 03. 34. Field: subheading
59
- * 03. 35. Field: submessage
60
- * 03. 36. Field: notice
61
- * 03. 37. Field: others
62
- * 04. Widget
63
- * 05. Customizer
64
- * 06. Taxonomy
65
- * 07. Profile
66
- * 08. Modal
67
- * 09. Helper
68
- * 11. Responsive
69
- * 12. Others
70
- *
71
- * ---------------------------------------------------------
72
- *
73
- */
74
- /**
75
- * 01. Base
76
- */
77
- .spftestimonial {
78
- position: relative;
79
- }
80
- .spftestimonial label {
81
- padding: 0;
82
- margin: 0;
83
- display: inline-block;
84
- }
85
-
86
- .spftestimonial-ab-icon {
87
- top: 2px;
88
- }
89
- .text-center{
90
- text-align: center;
91
- }
92
-
93
- #screen-meta-links + .spftestimonial-options {
94
- margin-top: 40px;
95
- }
96
-
97
- .spftestimonial-options {
98
- margin-top: 20px;
99
- margin-right: 20px;
100
- }
101
-
102
- /**
103
- * 01. 01. Header
104
- */
105
- .spftestimonial-header {
106
- position: relative;
107
- }
108
-
109
- .spftestimonial-header-inner {
110
- padding: 25px;
111
- }
112
- .spftestimonial-header-inner h1 {
113
- color: #444444;
114
- float: left;
115
- font-size: 22px;
116
- line-height: 26px;
117
- font-weight: 600;
118
- margin: 0;
119
- }
120
- .spftestimonial-header-inner h1 small {
121
- font-size: 11px;
122
- font-weight: 500;
123
- }
124
-
125
- /**
126
- * 01. 02. Sticky
127
- */
128
- .spftestimonial-sticky .spftestimonial-header-inner {
129
- position: fixed;
130
- z-index: 20;
131
- top: 32px;
132
- -moz-box-shadow: 0 5px 25px rgba(0, 0, 0, 0.125);
133
- -webkit-box-shadow: 0 5px 25px rgba(0, 0, 0, 0.125);
134
- box-shadow: 0 5px 25px rgba(0, 0, 0, 0.125);
135
- }
136
-
137
- /**
138
- * 01. 03. Header Buttons
139
- */
140
- .spftestimonial-buttons {
141
- float: right;
142
- -moz-transition: opacity 0.2s;
143
- -o-transition: opacity 0.2s;
144
- -webkit-transition: opacity 0.2s;
145
- transition: opacity 0.2s;
146
- }
147
- .spftestimonial-buttons .button {
148
- margin: 0 2px;
149
- line-height: 26px;
150
- }
151
-
152
- .spftestimonial-header-left {
153
- float: left;
154
- }
155
-
156
- .spftestimonial-header-right {
157
- float: right;
158
- }
159
-
160
- /**
161
- * 01. 04. Navigation
162
- */
163
- .spftestimonial-nav {
164
- display: block;
165
- position: relative;
166
- z-index: 10;
167
- float: left;
168
- width: 225px;
169
- }
170
- .spftestimonial-metabox .spftestimonial-nav {
171
- position: inherit;
172
- float: none;
173
- width: 100%;
174
- background: #f1f1f1;
175
- }
176
- .spftestimonial-nav ul {
177
- clear: left;
178
- margin: 0;
179
- list-style-type: none;
180
- }
181
- .spftestimonial-nav ul li {
182
- margin-bottom: 0;
183
- }
184
- .spftestimonial-metabox .spftestimonial-nav ul li {
185
- display: inline-block;
186
- }
187
- .spftestimonial-nav ul li a {
188
- font-size: 13px;
189
- position: relative;
190
- display: block;
191
- padding: 14px 12px;
192
- text-transform: uppercase;
193
- font-weight: 600;
194
- text-decoration: none;
195
- -moz-transition: all 0.3s ease;
196
- -o-transition: all 0.3s ease;
197
- -webkit-transition: all 0.3s ease;
198
- transition: all 0.3s ease;
199
- }
200
- .spftestimonial-nav ul li a:focus {
201
- outline: none;
202
- -moz-box-shadow: none;
203
- -webkit-box-shadow: none;
204
- box-shadow: none;
205
- }
206
- .spftestimonial-nav ul li .spftestimonial-arrow:after {
207
- content: "\f054";
208
- display: inline-block;
209
- font-family: "FontAwesome";
210
- font-size: 9px;
211
- line-height: 1;
212
- position: absolute;
213
- right: 10px;
214
- top: 50%;
215
- margin-top: -4px;
216
- -moz-transform: rotate(0);
217
- -ms-transform: rotate(0);
218
- -webkit-transform: rotate(0);
219
- transform: rotate(0);
220
- }
221
- .spftestimonial-nav ul li.spftestimonial-tab-active .spftestimonial-arrow:after {
222
- -moz-transform: rotate(90deg);
223
- -ms-transform: rotate(90deg);
224
- -webkit-transform: rotate(90deg);
225
- transform: rotate(90deg);
226
- }
227
- .spftestimonial-nav ul li.spftestimonial-tab-active ul {
228
- display: block;
229
- }
230
- .spftestimonial-nav ul ul {
231
- display: none;
232
- position: relative;
233
- }
234
- .spftestimonial-nav ul ul li a {
235
- font-size: 12px;
236
- padding: 12px 14px 12px 24px;
237
- }
238
- .spftestimonial-nav .fa {
239
- width: 20px;
240
- margin-right: 5px;
241
- font-size: 14px;
242
- text-align: center;
243
- }
244
- .spftestimonial-nav .spftestimonial-label-error {
245
- margin-left: 4px;
246
- vertical-align: top;
247
- }
248
-
249
- .spftestimonial-nav-background {
250
- position: absolute;
251
- top: 0;
252
- left: 0;
253
- bottom: 0;
254
- z-index: 9;
255
- width: 225px;
256
- }
257
-
258
- /**
259
- * 01. 05. Wrapper
260
- */
261
- .spftestimonial-wrapper {
262
- position: relative;
263
- }
264
-
265
- /**
266
- * 01. 06. Content
267
- */
268
- .spftestimonial-content {
269
- position: relative;
270
- margin-left: 225px;
271
- background-color: #fff;
272
- -moz-transition: opacity 0.2s;
273
- -o-transition: opacity 0.2s;
274
- -webkit-transition: opacity 0.2s;
275
- transition: opacity 0.2s;
276
- }
277
- .spftestimonial-metabox .spftestimonial-content {
278
- margin-left: 0;
279
- }
280
-
281
- /**
282
- * 01. 07. Section
283
- */
284
- .spftestimonial-sections {
285
- float: left;
286
- width: 100%;
287
- }
288
-
289
- .spftestimonial-section {
290
- display: none;
291
- }
292
-
293
- .spftestimonial-section-title {
294
- display: none;
295
- padding: 20px 30px;
296
- background-color: #f5f5f5;
297
- border-top: 1px solid #eee;
298
- border-bottom: 1px solid #eee;
299
- }
300
- .spftestimonial-section-title h3 {
301
- margin: 0;
302
- padding: 0;
303
- font-size: 13px;
304
- font-weight: bold;
305
- text-transform: uppercase;
306
- }
307
- .spftestimonial-section-title .fa {
308
- margin-right: 5px;
309
- }
310
-
311
- /**
312
- * 01. 08. Footer
313
- */
314
- .spftestimonial-footer {
315
- padding: 20px;
316
- font-size: 11px;
317
- }
318
-
319
- /**
320
- * 01. 09. Copyright
321
- */
322
- .spftestimonial-copyright {
323
- float: left;
324
- margin-top: 5px;
325
- }
326
-
327
- /**
328
- * 01. 10. Show All Options
329
- */
330
- .spftestimonial-search-all .spftestimonial-nav-background,
331
- .spftestimonial-search-all .spftestimonial-nav,
332
- .spftestimonial-show-all .spftestimonial-nav-background,
333
- .spftestimonial-show-all .spftestimonial-nav {
334
- display: none;
335
- }
336
- .spftestimonial-search-all .spftestimonial-content,
337
- .spftestimonial-show-all .spftestimonial-content {
338
- margin-left: 0;
339
- }
340
- .spftestimonial-search-all .spftestimonial-section-title,
341
- .spftestimonial-search-all .spftestimonial-section,
342
- .spftestimonial-show-all .spftestimonial-section-title,
343
- .spftestimonial-show-all .spftestimonial-section {
344
- display: block !important;
345
- }
346
-
347
- .spftestimonial-search-all .spftestimonial-section-title {
348
- display: none !important;
349
- }
350
-
351
- .spftestimonial-expand-all {
352
- float: left;
353
- padding: 0 8px;
354
- margin-right: 4px;
355
- z-index: 1;
356
- font-size: 14px;
357
- line-height: 29px;
358
- cursor: pointer;
359
- -webkit-user-select: none;
360
- user-select: none;
361
- -moz-border-radius: 2px;
362
- -webkit-border-radius: 2px;
363
- border-radius: 2px;
364
- -moz-transition: all 0.2s;
365
- -o-transition: all 0.2s;
366
- -webkit-transition: all 0.2s;
367
- transition: all 0.2s;
368
- }
369
- .spftestimonial-expand-all span {
370
- font-size: 11px;
371
- vertical-align: middle;
372
- }
373
-
374
- /**
375
- * 01. 11. Search Input
376
- */
377
- .spftestimonial-search {
378
- float: left;
379
- }
380
- .spftestimonial-search input {
381
- margin: 0 2px 0 0;
382
- border: none;
383
- font-size: 12px;
384
- line-height: 29px;
385
- text-align: inherit;
386
- padding: 0 10px;
387
- -moz-border-radius: 2px;
388
- -webkit-border-radius: 2px;
389
- border-radius: 2px;
390
- -moz-box-shadow: none;
391
- -webkit-box-shadow: none;
392
- box-shadow: none;
393
- }
394
- .spftestimonial-search input:focus {
395
- -moz-box-shadow: none;
396
- -webkit-box-shadow: none;
397
- box-shadow: none;
398
- }
399
-
400
- .spftestimonial-saving .spftestimonial-buttons,
401
- .spftestimonial-saving .spftestimonial-content {
402
- cursor: default;
403
- pointer-events: none;
404
- opacity: 0.75;
405
- }
406
-
407
- /**
408
- * 01. 12. Metabox
409
- */
410
- .spftestimonial-metabox {
411
- margin: -6px -12px -12px -12px;
412
- }
413
- .spftestimonial-metabox .spftestimonial-section-title {
414
- padding: 20px;
415
- }
416
-
417
- .block-editor-page .spftestimonial-metabox {
418
- margin: -6px -14px -12px -14px;
419
- }
420
-
421
- .spftestimonial-metabox-restore {
422
- text-align: right;
423
- padding: 10px;
424
- border-top: 1px solid #eee;
425
- }
426
- .spftestimonial-metabox-restore .spftestimonial-button-cancel,
427
- .spftestimonial-metabox-restore input {
428
- display: none;
429
- }
430
- .spftestimonial-metabox-restore span {
431
- -webkit-user-select: none;
432
- user-select: none;
433
- }
434
- .spftestimonial-metabox-restore input:checked ~ .spftestimonial-button-restore {
435
- display: none;
436
- }
437
- .spftestimonial-metabox-restore input:checked ~ .spftestimonial-button-cancel {
438
- display: inline-block;
439
- }
440
-
441
- #side-sortables .spftestimonial-section-title {
442
- padding: 12px;
443
- }
444
- #side-sortables .spftestimonial-field {
445
- padding: 12px;
446
- }
447
- #side-sortables .spftestimonial-field .spftestimonial-title {
448
- float: none;
449
- width: 100%;
450
- margin-bottom: 10px;
451
- }
452
- #side-sortables .spftestimonial-field .spftestimonial-fieldset {
453
- margin-left: 0;
454
- }
455
- #side-sortables .spftestimonial-notice {
456
- padding: 12px;
457
- }
458
-
459
- /**
460
- * 01. 13. Help Tooltip
461
- */
462
- .spftestimonial-tooltip {
463
- position: absolute;
464
- z-index: 5000001;
465
- font-size: 12px;
466
- line-height: 1.4;
467
- text-align: center;
468
- text-decoration: none;
469
- padding: 6px 12px;
470
- max-width: 200px;
471
- color: #fff;
472
- background-color: #000;
473
- background-color: rgba(0, 0, 0, 0.85);
474
- -moz-border-radius: 4px;
475
- -webkit-border-radius: 4px;
476
- border-radius: 4px;
477
- }
478
-
479
- /**
480
- * 02. Themes
481
- */
482
- /**
483
- * 02. 01. Theme Dark
484
- */
485
- .spftestimonial-theme-dark .spftestimonial-header-inner {
486
- background-color: #050505;
487
- }
488
- .spftestimonial-theme-dark .spftestimonial-header-inner h1 {
489
- color: #fff;
490
- }
491
- .spftestimonial-theme-dark .spftestimonial-header-inner h1 small {
492
- color: #555;
493
- }
494
- .spftestimonial-theme-dark .spftestimonial-expand-all {
495
- color: #999;
496
- background-color: #222;
497
- }
498
- .spftestimonial-theme-dark .spftestimonial-expand-all:hover {
499
- color: #fff;
500
- background-color: #333;
501
- }
502
- .spftestimonial-theme-dark .spftestimonial-search input {
503
- color: #fff;
504
- background-color: #222;
505
- }
506
- .spftestimonial-theme-dark .spftestimonial-search:focus {
507
- background-color: #444;
508
- }
509
- .spftestimonial-theme-dark .spftestimonial-search::-webkit-input-placeholder {
510
- color: #666;
511
- }
512
- .spftestimonial-metabox .spftestimonial-nav ul li a {
513
- background-color: #52b3d9;
514
- font-size: 14px;
515
- padding: 15px 15px;
516
- line-height: 1.4;
517
- color: #ffffff;
518
- border-right: 1px solid #E2E2E1;
519
- font-weight: 600;
520
- }
521
- #sp_tpro_shortcode_options_new .spftestimonial-metabox .spftestimonial-nav ul li a {
522
- font-size: 13px;
523
- text-transform: uppercase;
524
- padding: 16px 15px;
525
- }
526
-
527
- .spftestimonial-metabox .spftestimonial-nav ul li .spftestimonial-section-active {
528
- color: #444;
529
- background-color: #fff;
530
- box-shadow: 0 3px 0 0 #52b3d9 inset;
531
- }
532
- .spftestimonial-metabox .spftestimonial-nav ul li .spftestimonial-section-active .fa {
533
- color: #52b3d9;
534
- }
535
- .spftestimonial-theme-dark .spftestimonial-nav ul ul li a {
536
- background-color: #191919;
537
- border-bottom: 1px solid #2f2f2f;
538
- }
539
- .spftestimonial-theme-dark .spftestimonial-nav ul ul li .spftestimonial-section-active {
540
- background-color: #101010;
541
- }
542
- .spftestimonial-theme-dark .spftestimonial-nav ul ul:before {
543
- background-color: rgba(34, 34, 34, 0.75);
544
- }
545
- .spftestimonial-theme-dark .spftestimonial-nav > ul > li:last-child > a {
546
- border-bottom: none;
547
- }
548
- .spftestimonial-theme-dark .spftestimonial-nav-background {
549
- background-color: #222;
550
- }
551
- .spftestimonial-metabox .spftestimonial-nav-background {
552
- display: none;
553
- }
554
- .spftestimonial-theme-dark .spftestimonial-footer {
555
- color: #555;
556
- background-color: #050505;
557
- }
558
-
559
- /**
560
- * 02. 02. Theme Light
561
- */
562
- .spftestimonial-theme-light .spftestimonial-container {
563
- border: 1px solid #ccd0d4;
564
- }
565
- .spftestimonial-theme-light .spftestimonial-header-inner {
566
- border-bottom: 1px solid #ccd0d4;
567
- background-color: #f5f5f5;
568
- background: linear-gradient(#fefefe, #f5f5f5);
569
- }
570
- .spftestimonial-theme-light .spftestimonial-header-inner h1 small {
571
- color: #999;
572
- }
573
- .spftestimonial-theme-light .spftestimonial-expand-all {
574
- color: #999;
575
- background-color: #fff;
576
- -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
577
- -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
578
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
579
- }
580
- .spftestimonial-theme-light .spftestimonial-expand-all:hover {
581
- color: #555;
582
- }
583
- .spftestimonial-theme-light .spftestimonial-search input {
584
- color: #555;
585
- background-color: #fff;
586
- -moz-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05);
587
- -webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05);
588
- box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05);
589
- }
590
- .spftestimonial-theme-light .spftestimonial-search input::-webkit-input-placeholder {
591
- color: #bbb;
592
- }
593
- .spftestimonial-theme-light .spftestimonial-nav ul li a {
594
- color: #464646;
595
- background-color: #f5f5f5;
596
- border-top: 0;
597
- border-right: 0;
598
- border-bottom: 1px solid #ccd0d4;
599
- margin-bottom: 0;
600
- padding: 15px 15px;
601
- }
602
- .spftestimonial-theme-light .spftestimonial-nav ul li .spftestimonial-section-active {
603
- box-shadow: 3px 0 0 0 #52b3d9 inset;
604
- background-color: #ffffff;
605
- color: #52b3d9;
606
- }
607
- .spftestimonial-theme-light .spftestimonial-nav ul li .spftestimonial-section-active:after {
608
- display: none;
609
- }
610
- .spftestimonial-theme-light .spftestimonial-nav ul ul li a {
611
- border-bottom: 1px solid #e5e5e5;
612
- background-color: #f8fdff;
613
- padding: 13px 15px 13px 24px;
614
- }
615
- .spftestimonial-theme-light .spftestimonial-nav-background {
616
- background-color: #f5f5f5;
617
- border-right: 1px solid #ccd0d4;
618
- }
619
- .spftestimonial-theme-light .spftestimonial-footer {
620
- color: #555;
621
- border-top: 1px solid #e5e5e5;
622
- background-color: #f5f5f5;
623
- background: linear-gradient(#fafafa, #f5f5f5);
624
- }
625
-
626
- /**
627
- * 03. Fields
628
- */
629
- .spftestimonial-field {
630
- position: relative;
631
- padding: 22px 30px;
632
- }
633
- .spftestimonial-field p:first-child {
634
- margin-top: 0;
635
- }
636
- .spftestimonial-field p:last-child {
637
- margin-bottom: 0;
638
- }
639
- .spftestimonial-field:after, .spftestimonial-field:before {
640
- content: " ";
641
- display: table;
642
- }
643
- .spftestimonial-field:after {
644
- clear: both;
645
- }
646
- .spftestimonial-field h4 {
647
- margin-top: 0;
648
- }
649
- .spftestimonial-field .spftestimonial-title {
650
- position: relative;
651
- width: 20%;
652
- float: left;
653
- }
654
- .spftestimonial-field .spftestimonial-title h4 {
655
- margin: 0;
656
- color: #23282d;
657
- }
658
- .spftestimonial-field .spftestimonial-fieldset {
659
- margin-left: 25%;
660
- }
661
-
662
- .spftestimonial-pseudo-field {
663
- padding: 0 5px 0 0 !important;
664
- display: inline-block;
665
- }
666
- .spftestimonial-pseudo-field + .spftestimonial-pseudo-field {
667
- border: 0;
668
- }
669
- .spftestimonial-pseudo-field pre {
670
- display: none;
671
- }
672
-
673
- /**
674
- * 03. 05. Field: border, spacing, dimensions
675
- */
676
- .spftestimonial-field-border .spftestimonial--left,
677
- .spftestimonial-field-spacing .spftestimonial--left,
678
- .spftestimonial-field-dimensions .spftestimonial--left {
679
- float: left;
680
- }
681
- .spftestimonial-field-border .spftestimonial--input,
682
- .spftestimonial-field-spacing .spftestimonial--input,
683
- .spftestimonial-field-dimensions .spftestimonial--input {
684
- float: left;
685
- margin-right: 10px;
686
- margin-bottom: 7px;
687
- }
688
- .spftestimonial-field-border .spftestimonial--input select,
689
- .spftestimonial-field-spacing .spftestimonial--input select,
690
- .spftestimonial-field-dimensions .spftestimonial--input select {
691
- margin: 0;
692
- line-height: 26px;
693
- }
694
- .spftestimonial-field-border .spftestimonial--input input,
695
- .spftestimonial-field-spacing .spftestimonial--input input,
696
- .spftestimonial-field-dimensions .spftestimonial--input input {
697
- line-height: 30px;
698
- float: left;
699
- margin: 0;
700
- padding: 0;
701
- width: 65px;
702
- max-width: 100%;
703
- text-align: center;
704
- border-radius: 0;
705
- }
706
- .spftestimonial-field-border .spftestimonial--label,
707
- .spftestimonial-field-spacing .spftestimonial--label,
708
- .spftestimonial-field-dimensions .spftestimonial--label {
709
- float: left;
710
- max-width: 100%;
711
- font-size: 12px;
712
- line-height: 30px;
713
- vertical-align: top;
714
- text-align: center;
715
- color: #555;
716
- border: 1px solid #ddd;
717
- background-color: #eee;
718
- padding: 0 6px;
719
- min-height: 30px;
720
- }
721
- .spftestimonial-field-border .spftestimonial--label-icon,
722
- .spftestimonial-field-spacing .spftestimonial--label-icon,
723
- .spftestimonial-field-dimensions .spftestimonial--label-icon {
724
- min-width: 20px;
725
- border-right: 0;
726
- border-radius: 2px 0 0 2px;
727
- }
728
- .spftestimonial-field-border .spftestimonial--label-unit,
729
- .spftestimonial-field-spacing .spftestimonial--label-unit,
730
- .spftestimonial-field-dimensions .spftestimonial--label-unit {
731
- color: #999;
732
- border-left: 0;
733
- border-radius: 0 2px 2px 0;
734
- }
735
-
736
- /**
737
- * 03. 06. Field: button_set
738
- */
739
- .spftestimonial-field-button_set .spftestimonial--buttons {
740
- display: inline-block;
741
- }
742
- .spftestimonial-field-button_set .spftestimonial--button {
743
- position: relative;
744
- z-index: 1;
745
- float: left;
746
- cursor: pointer;
747
- padding: 7px 14px;
748
- min-width: 40px;
749
- text-align: center;
750
- color: #555;
751
- border: 1px solid #cccccc;
752
- background-color: #f7f7f7;
753
- user-select: none;
754
- -webkit-user-select: none;
755
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
756
- }
757
- .spftestimonial-field-button_set .spftestimonial--button:first-child {
758
- border-radius: 4px 0 0 4px;
759
- }
760
- .spftestimonial-field-button_set .spftestimonial--button:last-child {
761
- border-radius: 0 4px 4px 0;
762
- }
763
- .spftestimonial-field-button_set .spftestimonial--button:not(:first-child) {
764
- margin-left: -1px;
765
- }
766
- .spftestimonial-field-button_set .spftestimonial--button:hover {
767
- background-color: #eee;
768
- }
769
- .spftestimonial-field-button_set .spftestimonial--active:hover,
770
- .spftestimonial-field-button_set .spftestimonial--active {
771
- z-index: 2;
772
- color: #fff;
773
- border-color: #006799;
774
- background-color: #0085ba;
775
- }
776
- .spftestimonial-field-button_set input {
777
- display: none;
778
- }
779
-
780
- /**
781
- * 03. 07. Field: checkbox, radio
782
- */
783
- .spftestimonial-field-checkbox ul,
784
- .spftestimonial-field-radio ul {
785
- margin: 0;
786
- padding: 0;
787
- list-style-type: none;
788
- overflow-y: auto;
789
- max-height: 305px;
790
- }
791
- .spftestimonial-field-checkbox ul ul,
792
- .spftestimonial-field-radio ul ul {
793
- max-height: none;
794
- }
795
- .spftestimonial-field-checkbox .spftestimonial--inline-list li,
796
- .spftestimonial-field-radio .spftestimonial--inline-list li {
797
- display: inline-block;
798
- margin-right: 15px;
799
- }
800
- .spftestimonial-field-checkbox input[type="radio"]:checked:before,
801
- .spftestimonial-field-radio input[type="radio"]:checked:before {
802
- line-height: 10px;
803
- }
804
- .spftestimonial-field-checkbox .spftestimonial-checker,
805
- .spftestimonial-field-radio .spftestimonial-checker {
806
- cursor: pointer;
807
- }
808
-
809
- /**
810
- * 03. 08. Field: code_editor
811
- */
812
- .spftestimonial-field-code_editor .CodeMirror {
813
- width: 100%;
814
- height: 400px;
815
- border: 1px solid #eee;
816
- }
817
- .spftestimonial-field-code_editor textarea {
818
- width: 100%;
819
- height: 400px;
820
- }
821
-
822
- /**
823
- * 03. 09. Field: color
824
- */
825
- .spftestimonial-field-color > input {
826
- opacity: 0.75;
827
- width: 115px;
828
- max-width: 100%;
829
- }
830
-
831
- /**
832
- * 03. 10. Field: color_group
833
- */
834
- .spftestimonial-field-color_group .spftestimonial--left {
835
- float: left;
836
- margin-right: 10px;
837
- margin-bottom: 5px;
838
- }
839
- .spftestimonial-field-color_group .spftestimonial--title {
840
- color: #999;
841
- margin-bottom: 5px;
842
- }
843
-
844
- /**
845
- * 03. 16. Field: image_select, icon_select
846
- */
847
- .spftestimonial-field-icon_select .spftestimonial--image {
848
- width: 35px;
849
- height: 35px;
850
- text-align: center;
851
- line-height: 35px;
852
- font-size: 20px;
853
- }
854
- .spftestimonial-field-image_select .spftestimonial--image,
855
- .spftestimonial-field-icon_select .spftestimonial--image {
856
- cursor: pointer;
857
- position: relative;
858
- display: inline-block;
859
- max-width: 100%;
860
- margin: 0 5px 5px 0;
861
- vertical-align: bottom;
862
- border: 2px solid #f4f4f4;
863
- background-color: #fff;
864
- user-select: none;
865
- -webkit-user-select: none;
866
- -moz-transition: all 0.2s;
867
- -o-transition: all 0.2s;
868
- -webkit-transition: all 0.2s;
869
- transition: all 0.2s;
870
- }
871
- .spftestimonial-field-image_select .spftestimonial--image:before,
872
- .spftestimonial-field-icon_select .spftestimonial--image:before {
873
- position: absolute;
874
- top: 0;
875
- left: 0;
876
- text-align: center;
877
- font-size: 11px;
878
- font-family: FontAwesome;
879
- content: "\f00c";
880
- width: 15px;
881
- height: 15px;
882
- line-height: 15px;
883
- opacity: 0;
884
- color: #fff;
885
- background-color: #52b3d9;
886
- transition: opacity .2s;
887
- }
888
- .spftestimonial-field-image_select .spftestimonial--active,
889
- .spftestimonial-field-icon_select .spftestimonial--active {
890
- border-color: #52b3d9;
891
- }
892
- .spftestimonial-field-image_select .spftestimonial--active:before,
893
- .spftestimonial-field-icon_select .spftestimonial--active:before {
894
- opacity: 0;
895
- }
896
- .spftestimonial-field-image_select img {
897
- vertical-align: top;
898
- }
899
- .spftestimonial-field-image_select input,
900
- .spftestimonial-field-icon_select input {
901
- display: none;
902
- }
903
-
904
- /**
905
- * 03. 21. Field: select
906
- */
907
- .spftestimonial-field-select .spftestimonial-fieldset {
908
- min-height: 30px;
909
- }
910
- .spftestimonial-field-select .spftestimonial-chosen {
911
- display: none;
912
- }
913
- .spftestimonial-field-select select {
914
- max-width: 100%;
915
- }
916
-
917
- /**
918
- * 03. 25. Field: spinner
919
- */
920
- .spftestimonial-field-spinner .spftestimonial--spin {
921
- float: left;
922
- }
923
- .spftestimonial-field-spinner .spftestimonial--unit {
924
- float: right;
925
- height: 30px;
926
- line-height: 26px;
927
- text-align: center;
928
- border-left: none;
929
- color: #999;
930
- border: 1px solid #ddd;
931
- border-left: 0;
932
- background-color: #eee;
933
- padding: 0 6px;
934
- margin: 0;
935
- box-sizing: border-box;
936
- }
937
- .spftestimonial-field-spinner .ui-spinner-button {
938
- cursor: pointer;
939
- position: relative;
940
- overflow: hidden;
941
- margin: 0;
942
- padding: 0;
943
- width: 30px;
944
- height: 30px;
945
- line-height: 30px;
946
- text-align: center;
947
- border: 1px solid #ddd;
948
- color: #555;
949
- background-color: #eee;
950
- box-sizing: border-box;
951
- }
952
- .spftestimonial-field-spinner .ui-spinner-button:hover {
953
- background-color: #e7e7e7;
954
- }
955
- .spftestimonial-field-spinner .ui-spinner-button:active {
956
- background-color: #ddd;
957
- }
958
- .spftestimonial-field-spinner .ui-spinner-button:before {
959
- font-family: FontAwesome;
960
- font-size: 16px;
961
- line-height: 16px;
962
- }
963
- .spftestimonial-field-spinner .ui-spinner-down {
964
- float: left;
965
- border-right: 0;
966
- border-radius: 2px 0 0 2px;
967
- }
968
- .spftestimonial-field-spinner .ui-spinner-down:before {
969
- content: "\f0d9";
970
- }
971
- .spftestimonial-field-spinner .ui-spinner-up {
972
- float: right;
973
- border-left: 0;
974
- border-radius: 0 2px 2px 0;
975
- }
976
- .spftestimonial-field-spinner .ui-spinner-up:before {
977
- content: "\f0da";
978
- }
979
- .spftestimonial-field-spinner input {
980
- width: 60px;
981
- text-align: center;
982
- margin: 0;
983
- padding: 0 8px;
984
- height: 31px;
985
- line-height: 31px;
986
- border: 1px solid #ddd;
987
- border-radius: 0;
988
- }
989
- .spftestimonial-field-spinner input:focus {
990
- outline: none;
991
- }
992
- .spftestimonial-field-spinner .ui-button-text {
993
- display: none;
994
- }
995
-
996
- /**
997
- * 03. 26. Field: switcher
998
- */
999
- .spftestimonial-field-switcher .spftestimonial--switcher {
1000
- float: left;
1001
- cursor: pointer;
1002
- position: relative;
1003
- width: 60px;
1004
- height: 26px;
1005
- padding: 0;
1006
- margin: 0;
1007
- overflow: hidden;
1008
- border-radius: 4px;
1009
- background-color: #ed6f6f;
1010
- user-select: none;
1011
- -webkit-user-select: none;
1012
- }
1013
- .spftestimonial-field-switcher .spftestimonial--ball {
1014
- position: absolute;
1015
- top: 4px;
1016
- left: 4px;
1017
- width: 24px;
1018
- height: 18px;
1019
- background-color: #fff;
1020
- border-radius: 4px;
1021
- transition: all .1s;
1022
- box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.15);
1023
- }
1024
- .spftestimonial-field-switcher .spftestimonial--on,
1025
- .spftestimonial-field-switcher .spftestimonial--off {
1026
- position: absolute;
1027
- top: 0;
1028
- left: 0;
1029
- right: 0;
1030
- font-size: 11px;
1031
- line-height: 26px;
1032
- font-weight: 500;
1033
- font-style: normal;
1034
- text-align: center;
1035
- text-transform: uppercase;
1036
- color: #fff;
1037
- padding-right: 28px;
1038
- opacity: 0;
1039
- transition: all .1s;
1040
- }
1041
- .spftestimonial-field-switcher .spftestimonial--off {
1042
- padding-right: 0;
1043
- padding-left: 28px;
1044
- opacity: 1;
1045
- }
1046
- .spftestimonial-field-switcher .spftestimonial--active {
1047
- background: #4fb845;
1048
- }
1049
- .spftestimonial-field-switcher .spftestimonial--active .spftestimonial--on {
1050
- opacity: 1;
1051
- }
1052
- .spftestimonial-field-switcher .spftestimonial--active .spftestimonial--off {
1053
- opacity: 0;
1054
- }
1055
- .spftestimonial-field-switcher .spftestimonial--active .spftestimonial--ball {
1056
- left: 100%;
1057
- margin-left: -28px;
1058
- }
1059
- .spftestimonial-field-switcher .spftestimonial--label {
1060
- float: left;
1061
- margin-top: 4px;
1062
- margin-left: 8px;
1063
- font-weight: 400;
1064
- color: #999;
1065
- }
1066
- .spftestimonial-field-switcher input {
1067
- display: none;
1068
- }
1069
-
1070
- /**
1071
- * 03. 27. Field: tabbed
1072
- */
1073
- .spftestimonial-field-tabbed .spftestimonial-tabbed-section {
1074
- border: 1px solid #eee;
1075
- background: #fff;
1076
- }
1077
- .spftestimonial-field-tabbed .spftestimonial-tabbed-section > .spftestimonial-field {
1078
- padding: 15px;
1079
- }
1080
- .spftestimonial-field-tabbed .spftestimonial-tabbed-nav .spftestimonial--icon {
1081
- padding-right: 5px;
1082
- }
1083
- .spftestimonial-field-tabbed .spftestimonial-tabbed-nav a {
1084
- display: inline-block;
1085
- padding: 12px 15px;
1086
- margin-top: 1px;
1087
- margin-right: 5px;
1088
- margin-bottom: -1px;
1089
- position: relative;
1090
- text-decoration: none;
1091
- color: #444;
1092
- font-weight: 600;
1093
- background-color: #f3f3f3;
1094
- border: 1px solid #eee;
1095
- -moz-transition: all 0.2s;
1096
- -o-transition: all 0.2s;
1097
- -webkit-transition: all 0.2s;
1098
- transition: all 0.2s;
1099
- }
1100
- .spftestimonial-field-tabbed .spftestimonial-tabbed-nav a:hover {
1101
- background-color: #f9f9f9;
1102
- }
1103
- .spftestimonial-field-tabbed .spftestimonial-tabbed-nav a.spftestimonial-tabbed-active {
1104
- background-color: #fff;
1105
- border-bottom-color: #fff;
1106
- }
1107
- .spftestimonial-field-tabbed .spftestimonial-tabbed-nav a:focus {
1108
- outline: none;
1109
- -moz-box-shadow: none;
1110
- -webkit-box-shadow: none;
1111
- box-shadow: none;
1112
- }
1113
-
1114
- /**
1115
- * 03. 28. Field: text
1116
- */
1117
- .spftestimonial-field-text input,
1118
- .spftestimonial-field-text_f input {
1119
- width: 340px;
1120
- max-width: 100%;
1121
- }
1122
-
1123
- /**
1124
- * 03. 30. Field: typography
1125
- */
1126
- .spftestimonial-field-typography textarea,
1127
- .spftestimonial-field-typography select {
1128
- margin: 0;
1129
- width: 100%;
1130
- }
1131
- .spftestimonial-field-typography .spftestimonial--title {
1132
- color: #999;
1133
- margin: 0 0 2px 0;
1134
- }
1135
- .spftestimonial-field-typography .spftestimonial--title small {
1136
- vertical-align: top;
1137
- }
1138
- .spftestimonial-field-typography .spftestimonial--blocks {
1139
- display: flex;
1140
- flex-wrap: wrap;
1141
- }
1142
- .spftestimonial-field-typography .spftestimonial--block {
1143
- padding-right: 5px;
1144
- padding-bottom: 10px;
1145
- box-sizing: border-box;
1146
- }
1147
- .spftestimonial-field-typography .spftestimonial--block .spftestimonial--block {
1148
- padding-right: 0;
1149
- padding-bottom: 0;
1150
- }
1151
- .spftestimonial-field-typography .spftestimonial--blocks-selects .spftestimonial--block {
1152
- flex: 1 33.3%;
1153
- }
1154
- .spftestimonial-field-typography .spftestimonial--blocks-inputs .spftestimonial--block {
1155
- flex: 1 25%;
1156
- }
1157
- .spftestimonial-field-typography .spftestimonial--blocks-inputs .spftestimonial--block .spftestimonial--block {
1158
- flex: 1;
1159
- }
1160
- .spftestimonial-field-typography .spftestimonial--input {
1161
- margin: 0;
1162
- width: 100%;
1163
- padding: 2px 8px;
1164
- border-radius: 4px 0 0 4px;
1165
- }
1166
- .spftestimonial-field-typography .spftestimonial--unit {
1167
- min-width: 40px;
1168
- max-width: 40px;
1169
- font-size: 12px;
1170
- font-weight: 400;
1171
- text-align: center;
1172
- color: #777;
1173
- border: 1px solid #ddd;
1174
- background-color: #eee;
1175
- border-radius: 0 2px 2px 0;
1176
- border-left: 0;
1177
- line-height: 30px;
1178
- }
1179
- .spftestimonial-field-typography .spftestimonial--preview {
1180
- font-size: 16px;
1181
- line-height: 20px;
1182
- padding: 20px;
1183
- color: #222;
1184
- border: 1px solid #eee;
1185
- background-color: #fff;
1186
- border-radius: 2.5px;
1187
- user-select: none;
1188
- -webkit-user-select: none;
1189
- transition: background-color .2s, border-color .2s;
1190
- }
1191
- .spftestimonial-field-typography .spftestimonial--block-preview {
1192
- cursor: pointer;
1193
- position: relative;
1194
- overflow: hidden;
1195
- margin-top: 10px;
1196
- max-width: 100%;
1197
- }
1198
- .spftestimonial-field-typography .spftestimonial--black-background {
1199
- border-color: #000;
1200
- background-color: #000;
1201
- }
1202
- .spftestimonial-field-typography .spftestimonial--toggle {
1203
- position: absolute;
1204
- top: 5px;
1205
- right: 10px;
1206
- color: #999;
1207
- }
1208
- .spftestimonial-field-typography .spftestimonial--block-extra-styles {
1209
- margin-top: 5px;
1210
- }
1211
-
1212
- /**
1213
- * 03. 33. Field: heading
1214
- */
1215
- .spftestimonial-field-heading {
1216
- font-size: 1.5em;
1217
- font-weight: bold;
1218
- color: #23282d;
1219
- background-color: #f5f5f5;
1220
- }
1221
-
1222
- /**
1223
- * 03. 34. Field: subheading
1224
- */
1225
- .spftestimonial-field-subheading {
1226
- font-size: 14px;
1227
- font-weight: bold;
1228
- padding-top: 17px;
1229
- padding-bottom: 17px;
1230
- color: #23282d;
1231
- background-color: #f7f7f7;
1232
- }
1233
-
1234
- /**
1235
- * 03. 35. Field: submessage
1236
- */
1237
- .spftestimonial-field-submessage {
1238
- padding: 0 !important;
1239
- border: 0 !important;
1240
- }
1241
- .spftestimonial-field-submessage + .spftestimonial-field {
1242
- border-top: 0 !important;
1243
- }
1244
-
1245
- .spftestimonial-submessage {
1246
- font-size: 12px;
1247
- padding: 17px 30px;
1248
- border-top: 1px solid transparent;
1249
- border-bottom: 1px solid transparent;
1250
- }
1251
-
1252
- .spftestimonial-submessage-success {
1253
- color: #3c763d;
1254
- border-color: #d6e9c6;
1255
- background-color: #dff0d8;
1256
- }
1257
-
1258
- .spftestimonial-submessage-info {
1259
- color: #31708f;
1260
- border-color: #bce8f1;
1261
- background-color: #d9edf7;
1262
- }
1263
-
1264
- .spftestimonial-submessage-warning {
1265
- color: #8a6d3b;
1266
- border-color: #faebcc;
1267
- background-color: #fcf8e3;
1268
- }
1269
-
1270
- .spftestimonial-submessage-danger {
1271
- color: #a94442;
1272
- border-color: #ebccd1;
1273
- background-color: #f2dede;
1274
- }
1275
-
1276
- .spftestimonial-submessage-normal {
1277
- color: #23282d;
1278
- border-color: #eee;
1279
- background-color: #f7f7f7;
1280
- }
1281
-
1282
- /**
1283
- * 03. 36. Field: notice
1284
- */
1285
- .spftestimonial-field-notice {
1286
- background-color: #f7f7f7;
1287
- }
1288
-
1289
- .spftestimonial-notice {
1290
- padding: 12px;
1291
- background-color: #fff;
1292
- border-left-style: solid;
1293
- border-left-width: 4px;
1294
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
1295
- }
1296
-
1297
- .spftestimonial-notice-success {
1298
- border-color: #46b450;
1299
- }
1300
-
1301
- .spftestimonial-notice-info {
1302
- border-color: #339fd4;
1303
- }
1304
-
1305
- .spftestimonial-notice-warning {
1306
- border-color: #ffbc00;
1307
- }
1308
-
1309
- .spftestimonial-notice-danger {
1310
- border-color: #dc3232;
1311
- }
1312
-
1313
- .spftestimonial-notice-normal {
1314
- border-color: #222;
1315
- }
1316
-
1317
- /**
1318
- * 03. 37. others
1319
- */
1320
- .spftestimonial-help {
1321
- cursor: help;
1322
- position: absolute;
1323
- top: 0;
1324
- right: 0;
1325
- padding: 5px;
1326
- font-size: 14px;
1327
- color: #aaa;
1328
- }
1329
- .spftestimonial-help .spftestimonial-help-text {
1330
- display: none;
1331
- }
1332
-
1333
- .spftestimonial-image-preview {
1334
- display: inline-block;
1335
- position: relative;
1336
- padding: 4px;
1337
- min-width: 44px;
1338
- min-height: 22px;
1339
- margin-bottom: 10px;
1340
- border: 1px solid #ccc;
1341
- background-color: #f9f9f9;
1342
- -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
1343
- -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
1344
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
1345
- }
1346
- .spftestimonial-image-preview img {
1347
- max-height: 90px;
1348
- display: inline-block;
1349
- vertical-align: middle;
1350
- }
1351
-
1352
- .spftestimonial-field-custom .spftestimonial-field {
1353
- padding: 0;
1354
- }
1355
-
1356
- .spftestimonial-field .chosen-container-single .chosen-single {
1357
- height: 28px;
1358
- line-height: 26px;
1359
- }
1360
- .spftestimonial-field .chosen-container-single .chosen-single abbr {
1361
- top: 0;
1362
- right: 20px;
1363
- font-family: FontAwesome;
1364
- font-size: 12px;
1365
- height: 100%;
1366
- width: 18px;
1367
- color: #aaa;
1368
- text-align: center;
1369
- background: none;
1370
- }
1371
- .spftestimonial-field .chosen-container-single .chosen-single abbr:before {
1372
- content: "\f00d";
1373
- }
1374
- .spftestimonial-field .chosen-container-single .chosen-single abbr:hover {
1375
- color: #555;
1376
- }
1377
- .spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
1378
- font-family: FontAwesome;
1379
- font-size: 12px;
1380
- height: 100%;
1381
- width: 18px;
1382
- color: #aaa;
1383
- text-align: center;
1384
- background: none;
1385
- }
1386
- .spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:before {
1387
- content: "\f00d";
1388
- display: inline-block;
1389
- padding-top: 3px;
1390
- }
1391
- .spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
1392
- color: #555;
1393
- }
1394
- .spftestimonial-field .chosen-container-single .chosen-single div b {
1395
- font-family: FontAwesome;
1396
- font-size: 14px;
1397
- color: #aaa;
1398
- background: none;
1399
- }
1400
- .spftestimonial-field .chosen-container-single .chosen-single div b:before {
1401
- content: "\f107";
1402
- }
1403
- .spftestimonial-field .chosen-container-single .chosen-single div b:hover {
1404
- color: #555;
1405
- }
1406
- .spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice-placeholder {
1407
- border: 1px dashed #aaa;
1408
- margin: 3px 5px 3px 0;
1409
- }
1410
- .spftestimonial-field .chosen-container-multi .ui-sortable li.search-choice span {
1411
- cursor: move;
1412
- }
1413
- .spftestimonial-field .chosen-container-active.chosen-with-drop .chosen-single div b:before {
1414
- content: "\f106";
1415
- }
1416
- .spftestimonial-field .chosen-container-single .chosen-single-with-deselect span {
1417
- margin-right: 40px;
1418
- }
1419
- .spftestimonial-field .chosen-container-single .chosen-search input[type="text"] {
1420
- background: none;
1421
- }
1422
- .spftestimonial-field .chosen-container-single .chosen-search:before {
1423
- font-family: FontAwesome;
1424
- position: absolute;
1425
- content: "\f002";
1426
- font-size: 11px;
1427
- right: 10px;
1428
- top: 7px;
1429
- color: #aaa;
1430
- }
1431
- .spftestimonial-field .wp-picker-container {
1432
- display: inline-block;
1433
- }
1434
- .spftestimonial-field .spftestimonial--transparent-wrap {
1435
- display: none;
1436
- position: relative;
1437
- top: -1px;
1438
- width: 235px;
1439
- padding: 9px 10px;
1440
- border: 1px solid #dfdfdf;
1441
- border-top: none;
1442
- background-color: #fff;
1443
- }
1444
- .spftestimonial-field .spftestimonial--transparent-slider {
1445
- position: absolute;
1446
- width: 190px;
1447
- margin-left: 2px;
1448
- height: 18px;
1449
- }
1450
- .spftestimonial-field .spftestimonial--transparent-slider .ui-slider-handle {
1451
- position: absolute;
1452
- top: -3px;
1453
- bottom: -3px;
1454
- z-index: 5;
1455
- border-color: #aaa;
1456
- border-style: solid;
1457
- border-width: 4px 3px;
1458
- width: 10px;
1459
- height: 16px;
1460
- margin: 0 -5px;
1461
- background: none;
1462
- cursor: ew-resize;
1463
- opacity: 0.9;
1464
- -moz-border-radius: 4px;
1465
- -webkit-border-radius: 4px;
1466
- border-radius: 4px;
1467
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
1468
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
1469
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
1470
- }
1471
- .spftestimonial-field .spftestimonial--transparent-slider .ui-slider-handle:before {
1472
- content: " ";
1473
- position: absolute;
1474
- left: -2px;
1475
- right: -2px;
1476
- top: -3px;
1477
- bottom: -3px;
1478
- border: 2px solid #fff;
1479
- -moz-border-radius: 3px;
1480
- -webkit-border-radius: 3px;
1481
- border-radius: 3px;
1482
- }
1483
- .spftestimonial-field .spftestimonial--transparent-offset {
1484
- height: 18px;
1485
- width: 200px;
1486
- background: url(../images/checkerboard.png) repeat-y center left scroll #fff;
1487
- -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.4) inset;
1488
- -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.4) inset;
1489
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.4) inset;
1490
- -moz-border-radius: 2px;
1491
- -webkit-border-radius: 2px;
1492
- border-radius: 2px;
1493
- }
1494
- .spftestimonial-field .spftestimonial--transparent-text {
1495
- position: absolute;
1496
- top: 12px;
1497
- right: 10px;
1498
- width: 30px;
1499
- font-size: 12px;
1500
- line-height: 12px;
1501
- text-align: center;
1502
- color: #999;
1503
- }
1504
- .spftestimonial-field .spftestimonial--transparent-button {
1505
- display: inline-block;
1506
- text-align: center;
1507
- cursor: pointer;
1508
- margin-top: 10px;
1509
- user-select: none;
1510
- -webkit-user-select: none;
1511
- color: #999;
1512
- transition: background-color .2s, border-color .2s, color .2s;
1513
- }
1514
- .spftestimonial-field .spftestimonial--transparent-active .wp-color-result {
1515
- background-image: url(../images/checkerboard.png);
1516
- background-size: 130%;
1517
- background-position: center left;
1518
- background-color: transparent !important;
1519
- }
1520
- .spftestimonial-field .spftestimonial--transparent-active .spftestimonial--transparent-button {
1521
- color: #fff;
1522
- border-color: #4fb845;
1523
- background-color: #4fb845;
1524
- }
1525
-
1526
- /**
1527
- * 04. Widget
1528
- */
1529
- .spftestimonial-widgets > .spftestimonial-field {
1530
- position: relative;
1531
- top: -1px;
1532
- margin-right: -15px;
1533
- margin-left: -15px;
1534
- padding: 12px 15px;
1535
- }
1536
- .spftestimonial-widgets > .spftestimonial-field .spftestimonial-field {
1537
- margin-left: 0;
1538
- margin-right: 0;
1539
- }
1540
- .spftestimonial-widgets > .spftestimonial-field .spftestimonial-title {
1541
- float: none;
1542
- width: 100%;
1543
- margin-bottom: 5px;
1544
- }
1545
- .spftestimonial-widgets > .spftestimonial-field .spftestimonial-fieldset {
1546
- margin-left: 0;
1547
- }
1548
- .spftestimonial-widgets .spftestimonial-field-text input {
1549
- width: 100%;
1550
- }
1551
- .spftestimonial-widgets .spftestimonial-field-notice .spftestimonial-notice {
1552
- padding: 15px;
1553
- }
1554
-
1555
- .control-section .spftestimonial-widgets > .spftestimonial-field {
1556
- margin-right: -10px;
1557
- margin-left: -10px;
1558
- padding: 10px 12px;
1559
- }
1560
-
1561
- /**
1562
- * 05. Widget
1563
- */
1564
- .control-section .spftestimonial-field {
1565
- padding: 0;
1566
- }
1567
- .control-section .spftestimonial-field .spftestimonial-title {
1568
- float: none;
1569
- width: 100%;
1570
- margin-bottom: 10px;
1571
- }
1572
- .control-section .spftestimonial-field .spftestimonial-title h4 {
1573
- font-size: 14px;
1574
- font-weight: 600;
1575
- color: inherit;
1576
- }
1577
- .control-section .spftestimonial-field .spftestimonial-fieldset {
1578
- margin-left: 0;
1579
- }
1580
- .control-section .spftestimonial-field-select select {
1581
- width: 100%;
1582
- }
1583
- .control-section .spftestimonial-field-heading {
1584
- color: inherit;
1585
- font-size: 14px;
1586
- line-height: 1em;
1587
- margin-right: -15px;
1588
- margin-left: -15px;
1589
- padding: 15px;
1590
- }
1591
- .control-section .spftestimonial-field-subheading {
1592
- color: inherit;
1593
- font-size: 11px;
1594
- margin-right: -15px;
1595
- margin-left: -15px;
1596
- padding: 10px 15px;
1597
- }
1598
- .control-section .spftestimonial-text-subtitle {
1599
- margin-top: 4px;
1600
- font-size: 12px;
1601
- }
1602
- .control-section .spftestimonial-field-content,
1603
- .control-section .spftestimonial-field-submessage .spftestimonial-submessage {
1604
- margin-right: -15px;
1605
- margin-left: -15px;
1606
- padding: 15px;
1607
- }
1608
- .control-section .spftestimonial-fieldset .spftestimonial-field-submessage .spftestimonial-submessage,
1609
- .control-section .spftestimonial-fieldset .spftestimonial-field-heading,
1610
- .control-section .spftestimonial-fieldset .spftestimonial-field-subheading {
1611
- margin-left: 0;
1612
- margin-right: 0;
1613
- }
1614
- .control-section .spftestimonial-field-date .spftestimonial--to {
1615
- margin-left: 0;
1616
- }
1617
- .control-section .spftestimonial-field-sorter ul li {
1618
- padding: 5px;
1619
- }
1620
- .control-section .spftestimonial-field-sorter .spftestimonial-modules {
1621
- float: none;
1622
- width: 100%;
1623
- }
1624
- .control-section .spftestimonial-field-sorter .spftestimonial-modules:first-child {
1625
- padding-right: 0;
1626
- padding-bottom: 15px;
1627
- }
1628
- .control-section .spftestimonial-field-background .spftestimonial--select {
1629
- width: 100%;
1630
- }
1631
- .control-section .spftestimonial-field-border select,
1632
- .control-section .spftestimonial-field-spacing select,
1633
- .control-section .spftestimonial-field-dimensions select {
1634
- width: auto;
1635
- }
1636
- .control-section .spftestimonial-field-spinner input {
1637
- width: 50px;
1638
- }
1639
- .control-section .spftestimonial-field-backup .spftestimonial-export-data {
1640
- display: none;
1641
- }
1642
- .control-section .spftestimonial-field-fieldset .spftestimonial-fieldset-content {
1643
- border-color: #e5e5e5;
1644
- }
1645
- .control-section .spftestimonial-field-fieldset .spftestimonial-field {
1646
- padding: 10px;
1647
- }
1648
- .control-section .spftestimonial-field-fieldset .spftestimonial-field .spftestimonial-title {
1649
- margin-bottom: 5px;
1650
- }
1651
- .control-section .spftestimonial-field-fieldset .spftestimonial-field h4 {
1652
- font-size: 12px;
1653
- }
1654
- .control-section .spftestimonial-field-group .spftestimonial-field,
1655
- .control-section .spftestimonial-field-tabbed .spftestimonial-field,
1656
- .control-section .spftestimonial-field-sortable .spftestimonial-field,
1657
- .control-section .spftestimonial-field-repeater .spftestimonial-field,
1658
- .control-section .spftestimonial-field-accordion .spftestimonial-field {
1659
- padding: 10px;
1660
- }
1661
- .control-section .spftestimonial-field-group .spftestimonial-field .spftestimonial-title,
1662
- .control-section .spftestimonial-field-tabbed .spftestimonial-field .spftestimonial-title,
1663
- .control-section .spftestimonial-field-sortable .spftestimonial-field .spftestimonial-title,
1664
- .control-section .spftestimonial-field-repeater .spftestimonial-field .spftestimonial-title,
1665
- .control-section .spftestimonial-field-accordion .spftestimonial-field .spftestimonial-title {
1666
- margin-bottom: 5px;
1667
- }
1668
- .control-section .spftestimonial-field-group .spftestimonial-field h4,
1669
- .control-section .spftestimonial-field-tabbed .spftestimonial-field h4,
1670
- .control-section .spftestimonial-field-sortable .spftestimonial-field h4,
1671
- .control-section .spftestimonial-field-repeater .spftestimonial-field h4,
1672
- .control-section .spftestimonial-field-accordion .spftestimonial-field h4 {
1673
- font-size: 12px;
1674
- }
1675
- .control-section .spftestimonial-dependency-control.hidden {
1676
- display: none !important;
1677
- }
1678
-
1679
- /**
1680
- * 08. Modal
1681
- */
1682
- .spftestimonial-modal {
1683
- display: none;
1684
- position: fixed;
1685
- z-index: 100101;
1686
- top: 0;
1687
- left: 0;
1688
- width: 100%;
1689
- height: 100%;
1690
- }
1691
-
1692
- .spftestimonial-modal-icon {
1693
- z-index: 100102;
1694
- }
1695
-
1696
- .spftestimonial-modal-table {
1697
- display: table;
1698
- width: 100%;
1699
- height: 100%;
1700
- }
1701
-
1702
- .spftestimonial-modal-table-cell {
1703
- display: table-cell;
1704
- vertical-align: middle;
1705
- margin: 100px 0;
1706
- }
1707
-
1708
- .spftestimonial-modal-inner {
1709
- position: relative;
1710
- z-index: 10;
1711
- width: 760px;
1712
- height: 750px;
1713
- margin: 0 auto;
1714
- background-color: #fff;
1715
- }
1716
-
1717
- .spftestimonial-modal-content {
1718
- position: relative;
1719
- overflow: hidden;
1720
- overflow-y: auto;
1721
- height: 592px;
1722
- }
1723
- .spftestimonial-modal-content .spftestimonial-shortcode-button {
1724
- display: none;
1725
- }
1726
- .spftestimonial-modal-content .spftestimonial-fieldset {
1727
- margin-left: 25%;
1728
- }
1729
- .spftestimonial-modal-content .spftestimonial-title {
1730
- width: 20%;
1731
- }
1732
- .spftestimonial-modal-content .spftestimonial-field {
1733
- padding: 15px 30px 15px 15px;
1734
- }
1735
- .spftestimonial-modal-content a:active, .spftestimonial-modal-content a:focus {
1736
- outline: none;
1737
- -moz-box-shadow: none;
1738
- -webkit-box-shadow: none;
1739
- box-shadow: none;
1740
- }
1741
- .spftestimonial-modal-content h4 {
1742
- font-size: 13px;
1743
- }
1744
- .spftestimonial-modal-content h4 small {
1745
- font-style: italic;
1746
- font-weight: 400;
1747
- color: #aaa;
1748
- }
1749
-
1750
- .spftestimonial-modal-title {
1751
- position: relative;
1752
- background-color: #fcfcfc;
1753
- border-bottom: 1px solid #ddd;
1754
- height: 36px;
1755
- font-size: 16px;
1756
- font-weight: 600;
1757
- line-height: 36px;
1758
- margin: 0;
1759
- padding: 0 36px 0 16px;
1760
- }
1761
-
1762
- .spftestimonial-modal-header {
1763
- width: 100%;
1764
- padding: 16px 0;
1765
- background-color: #f5f5f5;
1766
- border-bottom: 1px solid #eee;
1767
- }
1768
- .spftestimonial-modal-header select {
1769
- display: block;
1770
- width: 250px;
1771
- margin: 0 auto;
1772
- background-color: #fff;
1773
- }
1774
-
1775
- .spftestimonial-modal-close {
1776
- color: #666;
1777
- padding: 0;
1778
- position: absolute;
1779
- top: 0;
1780
- right: 0;
1781
- width: 36px;
1782
- height: 36px;
1783
- text-align: center;
1784
- background: none;
1785
- border: none;
1786
- cursor: pointer;
1787
- }
1788
- .spftestimonial-modal-close:before {
1789
- font: normal 20px/36px dashicons;
1790
- content: "\f158";
1791
- vertical-align: top;
1792
- width: 36px;
1793
- height: 36px;
1794
- }
1795
- .spftestimonial-modal-close:hover {
1796
- opacity: 0.5;
1797
- }
1798
-
1799
- .spftestimonial-modal-insert-wrapper {
1800
- text-align: center;
1801
- width: 100%;
1802
- padding: 16px 0;
1803
- background-color: #f5f5f5;
1804
- border-top: 1px solid #eee;
1805
- }
1806
-
1807
- .spftestimonial-modal-overlay {
1808
- position: absolute;
1809
- top: 0;
1810
- left: 0;
1811
- width: 100%;
1812
- height: 100%;
1813
- background-color: #000;
1814
- opacity: 0.5;
1815
- }
1816
-
1817
- /**
1818
- * 08. Helper
1819
- */
1820
- .spftestimonial-text-desc,
1821
- .spftestimonial-text-subtitle {
1822
- font-weight: 400;
1823
- margin-top: 10px;
1824
- color: #999;
1825
- font-style: italic;
1826
- }
1827
-
1828
- .spftestimonial-text-success {
1829
- color: #2b542c;
1830
- }
1831
-
1832
- .spftestimonial-text-error {
1833
- color: #d02c21;
1834
- }
1835
-
1836
- .spftestimonial-text-info {
1837
- color: #31708f;
1838
- }
1839
-
1840
- .spftestimonial-text-warning {
1841
- color: #ffb900;
1842
- }
1843
-
1844
- .spftestimonial-text-muted {
1845
- color: #aaa;
1846
- }
1847
-
1848
- .spftestimonial-text-left {
1849
- text-align: left;
1850
- }
1851
-
1852
- .spftestimonial-text-center {
1853
- text-align: center;
1854
- }
1855
-
1856
- .spftestimonial-text-right {
1857
- text-align: right;
1858
- }
1859
-
1860
- .spftestimonial-block-left {
1861
- float: left;
1862
- }
1863
-
1864
- .spftestimonial-block-right {
1865
- float: right;
1866
- }
1867
-
1868
- .spftestimonial-full-width {
1869
- width: 100%;
1870
- }
1871
-
1872
- .spftestimonial-full-half {
1873
- width: 50%;
1874
- }
1875
-
1876
- .spftestimonial-table {
1877
- width: 100%;
1878
- display: table;
1879
- }
1880
-
1881
- .spftestimonial-table-cell {
1882
- display: table-cell;
1883
- vertical-align: middle;
1884
- }
1885
-
1886
- .spftestimonial-table-expanded {
1887
- width: 100%;
1888
- }
1889
-
1890
- .spftestimonial-nowrap {
1891
- white-space: nowrap;
1892
- }
1893
-
1894
- .spftestimonial-text-highlight {
1895
- padding: 2px 4px;
1896
- font-size: 90%;
1897
- color: #c7254e;
1898
- background-color: #f9f2f4;
1899
- -moz-border-radius: 2px;
1900
- -webkit-border-radius: 2px;
1901
- border-radius: 2px;
1902
- }
1903
-
1904
- .spftestimonial-text-highlight-gray {
1905
- padding: 2px 4px;
1906
- font-size: 90%;
1907
- background-color: #f0f0f0;
1908
- -moz-border-radius: 2px;
1909
- -webkit-border-radius: 2px;
1910
- border-radius: 2px;
1911
- }
1912
-
1913
- .spftestimonial-hidden {
1914
- display: none;
1915
- }
1916
-
1917
- .spftestimonial-hide {
1918
- display: none !important;
1919
- }
1920
-
1921
- .spftestimonial-show {
1922
- display: block !important;
1923
- }
1924
-
1925
- .spftestimonial-opacity {
1926
- opacity: 0.5;
1927
- }
1928
-
1929
- .spftestimonial-warning-primary {
1930
- color: #fff !important;
1931
- border-color: #d02c21 #ba281e #ba281e !important;
1932
- background: #e14d43 !important;
1933
- -moz-box-shadow: 0 1px 0 #ba281e !important;
1934
- -webkit-box-shadow: 0 1px 0 #ba281e !important;
1935
- box-shadow: 0 1px 0 #ba281e !important;
1936
- text-shadow: 0 -1px 1px #ba281e, 1px 0 1px #ba281e, 0 1px 1px #ba281e, -1px 0 1px !important;
1937
- text-shadow: 0 -1px 1px #ba281e, 1px 0 1px #ba281e, 0 1px 1px #ba281e, -1px 0 1px #ba281e !important;
1938
- }
1939
- .spftestimonial-warning-primary:hover, .spftestimonial-warning-primary:focus {
1940
- border-color: #ba281e !important;
1941
- background: #e35950 !important;
1942
- -moz-box-shadow: 0 1px 0 #ba281e !important;
1943
- -webkit-box-shadow: 0 1px 0 #ba281e !important;
1944
- box-shadow: 0 1px 0 #ba281e !important;
1945
- }
1946
- .spftestimonial-warning-primary:active {
1947
- border-color: #ba281e !important;
1948
- background: #d02c21 !important;
1949
- -moz-box-shadow: inset 0 2px 0 #ba281e !important;
1950
- -webkit-box-shadow: inset 0 2px 0 #ba281e !important;
1951
- box-shadow: inset 0 2px 0 #ba281e !important;
1952
- }
1953
-
1954
- .spftestimonial-form-result {
1955
- display: none;
1956
- padding: 12px;
1957
- margin: 0 0 15px 0;
1958
- background-color: #fff;
1959
- border-left: 4px solid #555;
1960
- -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
1961
- -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
1962
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
1963
- }
1964
-
1965
- .spftestimonial-form-show {
1966
- display: block;
1967
- }
1968
-
1969
- .spftestimonial-form-error {
1970
- border-left-color: #dc3232;
1971
- }
1972
-
1973
- .spftestimonial-form-success {
1974
- border-left-color: #46b450;
1975
- }
1976
-
1977
- .spftestimonial-form-warning {
1978
- border-left-color: #ffb900;
1979
- }
1980
-
1981
- .spftestimonial-form-info {
1982
- border-left-color: #00a0d2;
1983
- }
1984
-
1985
- .spftestimonial-label-error {
1986
- position: relative;
1987
- top: -2px;
1988
- display: inline-block;
1989
- font-size: 10px;
1990
- line-height: 10px;
1991
- height: 10px;
1992
- width: 10px;
1993
- padding: 1px;
1994
- font-style: normal;
1995
- text-align: center;
1996
- color: #fff;
1997
- vertical-align: middle;
1998
- background-color: #e10000;
1999
- -moz-border-radius: 2px;
2000
- -webkit-border-radius: 2px;
2001
- border-radius: 2px;
2002
- }
2003
-
2004
- .spftestimonial-no-option {
2005
- padding: 30px;
2006
- }
2007
-
2008
- /**
2009
- * 11. Responsive
2010
- */
2011
- @media only screen and (max-width: 1200px) {
2012
- .spftestimonial-metabox .spftestimonial-field .spftestimonial-title {
2013
- float: none;
2014
- width: 100%;
2015
- margin-bottom: 10px;
2016
- }
2017
- .spftestimonial-metabox .spftestimonial-field .spftestimonial-fieldset {
2018
- margin-left: 0;
2019
- }
2020
- }
2021
- @media only screen and (max-width: 782px) {
2022
- .spftestimonial-header-inner {
2023
- text-align: center;
2024
- }
2025
- .spftestimonial-header-inner h1 {
2026
- width: 100%;
2027
- margin-bottom: 10px;
2028
- }
2029
-
2030
- .spftestimonial-search,
2031
- .spftestimonial-header-right,
2032
- .spftestimonial-header-left {
2033
- width: 100%;
2034
- }
2035
-
2036
- .spftestimonial-search {
2037
- text-align: center;
2038
- margin-bottom: 15px;
2039
- }
2040
-
2041
- .spftestimonial-footer {
2042
- text-align: center;
2043
- }
2044
-
2045
- .spftestimonial-buttons {
2046
- float: none;
2047
- }
2048
-
2049
- .spftestimonial-copyright {
2050
- float: none;
2051
- margin-top: 10px;
2052
- }
2053
-
2054
- .spftestimonial-nav,
2055
- .spftestimonial-expand-all,
2056
- .spftestimonial-reset-section,
2057
- .spftestimonial-nav-background {
2058
- display: none !important;
2059
- }
2060
-
2061
- .spftestimonial-content {
2062
- margin-left: 0;
2063
- }
2064
-
2065
- .spftestimonial-section-title,
2066
- .spftestimonial-section {
2067
- display: block !important;
2068
- }
2069
-
2070
- .spftestimonial-field .spftestimonial-title {
2071
- float: none;
2072
- width: 100%;
2073
- margin-bottom: 10px;
2074
- }
2075
- .spftestimonial-field .spftestimonial-fieldset {
2076
- margin-left: 0;
2077
- }
2078
-
2079
- .spftestimonial-modal-inner {
2080
- width: 350px;
2081
- height: 380px;
2082
- }
2083
-
2084
- .spftestimonial-modal-content {
2085
- height: 282px;
2086
- }
2087
-
2088
- .spftestimonial-icon-dialog .spftestimonial-modal-inner {
2089
- width: 305px;
2090
- height: 380px;
2091
- }
2092
- .spftestimonial-icon-dialog .spftestimonial-modal-content {
2093
- height: 267px;
2094
- }
2095
-
2096
- .spftestimonial-modal-icon .spftestimonial-modal-inner {
2097
- width: 330px;
2098
- height: 385px;
2099
- }
2100
- .spftestimonial-modal-icon .spftestimonial-modal-content {
2101
- height: 252px;
2102
- }
2103
-
2104
- .spftestimonial-profile > .spftestimonial-field > .spftestimonial-title {
2105
- float: none;
2106
- width: 100%;
2107
- margin-bottom: 10px;
2108
- }
2109
- .spftestimonial-profile > .spftestimonial-field > .spftestimonial-fieldset {
2110
- margin-left: 0;
2111
- }
2112
- }
2113
- /**
2114
- * Chosen JS Styles
2115
- */
2116
- .chosen-container {
2117
- position: relative;
2118
- display: inline-block;
2119
- vertical-align: middle;
2120
- font-size: 13px;
2121
- user-select: none;
2122
- }
2123
-
2124
- .chosen-container * {
2125
- box-sizing: border-box;
2126
- }
2127
-
2128
- .chosen-container .chosen-drop {
2129
- position: absolute;
2130
- top: 100%;
2131
- z-index: 1010;
2132
- width: 100%;
2133
- border: 1px solid #aaa;
2134
- border-top: 0;
2135
- background: #fff;
2136
- box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
2137
- clip: rect(0, 0, 0, 0);
2138
- clip-path: inset(100% 100%);
2139
- }
2140
-
2141
- .chosen-container.chosen-with-drop .chosen-drop {
2142
- clip: auto;
2143
- clip-path: none;
2144
- }
2145
-
2146
- .chosen-container a {
2147
- cursor: pointer;
2148
- }
2149
-
2150
- .chosen-container .search-choice .group-name, .chosen-container .chosen-single .group-name {
2151
- margin-right: 4px;
2152
- overflow: hidden;
2153
- white-space: nowrap;
2154
- text-overflow: ellipsis;
2155
- font-weight: normal;
2156
- color: #999999;
2157
- }
2158
-
2159
- .chosen-container .search-choice .group-name:after, .chosen-container .chosen-single .group-name:after {
2160
- content: ":";
2161
- padding-left: 2px;
2162
- vertical-align: top;
2163
- }
2164
-
2165
- .chosen-container-single .chosen-single {
2166
- position: relative;
2167
- display: block;
2168
- overflow: hidden;
2169
- padding: 0 0 0 8px;
2170
- height: 25px;
2171
- border: 1px solid #aaa;
2172
- border-radius: 5px;
2173
- background-color: #fff;
2174
- background: linear-gradient(#ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
2175
- background-clip: padding-box;
2176
- box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1);
2177
- color: #444;
2178
- text-decoration: none;
2179
- white-space: nowrap;
2180
- line-height: 24px;
2181
- }
2182
-
2183
- .chosen-container-single .chosen-default {
2184
- color: #999;
2185
- }
2186
-
2187
- .chosen-container-single .chosen-single span {
2188
- display: block;
2189
- overflow: hidden;
2190
- margin-right: 26px;
2191
- text-overflow: ellipsis;
2192
- white-space: nowrap;
2193
- }
2194
-
2195
- .chosen-container-single .chosen-single-with-deselect span {
2196
- margin-right: 38px;
2197
- }
2198
-
2199
- .chosen-container-single .chosen-single abbr {
2200
- position: absolute;
2201
- top: 6px;
2202
- right: 26px;
2203
- display: block;
2204
- width: 12px;
2205
- height: 12px;
2206
- font-size: 1px;
2207
- }
2208
-
2209
- .chosen-container-single .chosen-single div {
2210
- position: absolute;
2211
- top: 0;
2212
- right: 0;
2213
- display: block;
2214
- width: 18px;
2215
- height: 100%;
2216
- }
2217
-
2218
- .chosen-container-single .chosen-single div b {
2219
- display: block;
2220
- width: 100%;
2221
- height: 100%;
2222
- }
2223
-
2224
- .chosen-container-single .chosen-search {
2225
- position: relative;
2226
- z-index: 1010;
2227
- margin: 0;
2228
- padding: 3px 4px;
2229
- white-space: nowrap;
2230
- }
2231
-
2232
- .chosen-container-single .chosen-search input[type="text"] {
2233
- margin: 1px 0;
2234
- padding: 4px 20px 4px 5px;
2235
- width: 100%;
2236
- height: auto;
2237
- outline: 0;
2238
- border: 1px solid #aaa;
2239
- font-size: 1em;
2240
- font-family: sans-serif;
2241
- line-height: normal;
2242
- border-radius: 0;
2243
- }
2244
-
2245
- .chosen-container-single .chosen-drop {
2246
- margin-top: -1px;
2247
- border-radius: 0 0 4px 4px;
2248
- background-clip: padding-box;
2249
- }
2250
-
2251
- .chosen-container-single.chosen-container-single-nosearch .chosen-search {
2252
- position: absolute;
2253
- clip: rect(0, 0, 0, 0);
2254
- clip-path: inset(100% 100%);
2255
- }
2256
-
2257
- .chosen-container .chosen-results {
2258
- color: #444;
2259
- position: relative;
2260
- overflow-x: hidden;
2261
- overflow-y: auto;
2262
- margin: 0 4px 4px 0;
2263
- padding: 0 0 0 4px;
2264
- max-height: 240px;
2265
- -webkit-overflow-scrolling: touch;
2266
- }
2267
-
2268
- .chosen-container .chosen-results li {
2269
- display: none;
2270
- margin: 0;
2271
- padding: 5px 6px;
2272
- list-style: none;
2273
- line-height: 15px;
2274
- word-wrap: break-word;
2275
- -webkit-touch-callout: none;
2276
- }
2277
-
2278
- .chosen-container .chosen-results li.active-result {
2279
- display: list-item;
2280
- cursor: pointer;
2281
- }
2282
-
2283
- .chosen-container .chosen-results li.disabled-result {
2284
- display: list-item;
2285
- color: #ccc;
2286
- cursor: default;
2287
- }
2288
-
2289
- .chosen-container .chosen-results li.highlighted {
2290
- background-color: #3875d7;
2291
- background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
2292
- color: #fff;
2293
- }
2294
-
2295
- .chosen-container .chosen-results li.no-results {
2296
- color: #777;
2297
- display: list-item;
2298
- background: #f4f4f4;
2299
- }
2300
-
2301
- .chosen-container .chosen-results li.group-result {
2302
- display: list-item;
2303
- font-weight: bold;
2304
- cursor: default;
2305
- }
2306
-
2307
- .chosen-container .chosen-results li.group-option {
2308
- padding-left: 15px;
2309
- }
2310
-
2311
- .chosen-container .chosen-results li em {
2312
- font-style: normal;
2313
- text-decoration: underline;
2314
- }
2315
-
2316
- .chosen-container-multi .chosen-choices {
2317
- position: relative;
2318
- overflow: hidden;
2319
- margin: 0;
2320
- padding: 0 5px;
2321
- width: 100%;
2322
- height: auto;
2323
- border: 1px solid #aaa;
2324
- background-color: #fff;
2325
- background-image: linear-gradient(#eeeeee 1%, #ffffff 15%);
2326
- cursor: text;
2327
- }
2328
-
2329
- .chosen-container-multi .chosen-choices li {
2330
- float: left;
2331
- list-style: none;
2332
- }
2333
-
2334
- .chosen-container-multi .chosen-choices li.search-field {
2335
- margin: 0;
2336
- padding: 0;
2337
- white-space: nowrap;
2338
- }
2339
-
2340
- .chosen-container-multi .chosen-choices li.search-field input[type="text"] {
2341
- margin: 1px 0;
2342
- padding: 0;
2343
- height: 25px;
2344
- outline: 0;
2345
- border: 0 !important;
2346
- background: transparent !important;
2347
- box-shadow: none;
2348
- color: #999;
2349
- font-size: 100%;
2350
- font-family: sans-serif;
2351
- line-height: normal;
2352
- border-radius: 0;
2353
- width: 25px;
2354
- }
2355
-
2356
- .chosen-container-multi .chosen-choices li.search-choice {
2357
- position: relative;
2358
- margin: 3px 5px 3px 0;
2359
- padding: 3px 20px 3px 6px;
2360
- border: 1px solid #aaa;
2361
- max-width: 100%;
2362
- border-radius: 3px;
2363
- background-color: #eeeeee;
2364
- background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
2365
- background-size: 100% 19px;
2366
- background-repeat: repeat-x;
2367
- background-clip: padding-box;
2368
- box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
2369
- color: #333;
2370
- line-height: 13px;
2371
- cursor: default;
2372
- }
2373
-
2374
- .chosen-container-multi .chosen-choices li.search-choice span {
2375
- word-wrap: break-word;
2376
- white-space: nowrap;
2377
- }
2378
-
2379
- .chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
2380
- position: absolute;
2381
- top: 0;
2382
- right: 0;
2383
- display: block;
2384
- width: 12px;
2385
- height: 12px;
2386
- font-size: 1px;
2387
- }
2388
-
2389
- .chosen-container-multi .chosen-choices li.search-choice-disabled {
2390
- padding-right: 5px;
2391
- border: 1px solid #ccc;
2392
- background-color: #e4e4e4;
2393
- background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
2394
- color: #666;
2395
- }
2396
-
2397
- .chosen-container-multi .chosen-choices li.search-choice-focus {
2398
- background: #d4d4d4;
2399
- }
2400
-
2401
- .chosen-container-multi .chosen-results {
2402
- margin: 0;
2403
- padding: 0;
2404
- }
2405
-
2406
- .chosen-container-multi .chosen-drop .result-selected {
2407
- /* display: list-item; */
2408
- color: #ccc;
2409
- cursor: default;
2410
- }
2411
-
2412
- .chosen-container-active .chosen-single {
2413
- border: 1px solid #5897fb;
2414
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
2415
- }
2416
-
2417
- .chosen-container-active.chosen-with-drop .chosen-single {
2418
- border: 1px solid #aaa;
2419
- border-bottom-right-radius: 0;
2420
- border-bottom-left-radius: 0;
2421
- background-image: linear-gradient(#eeeeee 20%, #ffffff 80%);
2422
- box-shadow: 0 1px 0 #fff inset;
2423
- }
2424
-
2425
- .chosen-container-active.chosen-with-drop .chosen-single div {
2426
- border-left: none;
2427
- background: transparent;
2428
- }
2429
-
2430
- .chosen-container-active .chosen-choices {
2431
- border: 1px solid #5897fb;
2432
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
2433
- }
2434
-
2435
- .chosen-container-active .chosen-choices li.search-field input[type="text"] {
2436
- color: #222 !important;
2437
- }
2438
-
2439
- .chosen-disabled {
2440
- opacity: 0.5 !important;
2441
- cursor: default;
2442
- }
2443
-
2444
- .chosen-disabled .chosen-single {
2445
- cursor: default;
2446
- }
2447
-
2448
- .chosen-disabled .chosen-choices .search-choice .search-choice-close {
2449
- cursor: default;
2450
- }
2451
-
2452
- .chosen-rtl {
2453
- text-align: right;
2454
- }
2455
-
2456
- .chosen-rtl .chosen-single {
2457
- overflow: visible;
2458
- padding: 0 8px 0 0;
2459
- }
2460
-
2461
- .chosen-rtl .chosen-single span {
2462
- margin-right: 0;
2463
- margin-left: 26px;
2464
- direction: rtl;
2465
- }
2466
-
2467
- .chosen-rtl .chosen-single-with-deselect span {
2468
- margin-left: 38px;
2469
- }
2470
-
2471
- .chosen-rtl .chosen-single div {
2472
- right: auto;
2473
- left: 3px;
2474
- }
2475
-
2476
- .chosen-rtl .chosen-single abbr {
2477
- right: auto;
2478
- left: 26px;
2479
- }
2480
-
2481
- .chosen-rtl .chosen-choices li {
2482
- float: right;
2483
- }
2484
-
2485
- .chosen-rtl .chosen-choices li.search-field input[type="text"] {
2486
- direction: rtl;
2487
- }
2488
-
2489
- .chosen-rtl .chosen-choices li.search-choice {
2490
- margin: 3px 5px 3px 0;
2491
- padding: 3px 5px 3px 19px;
2492
- }
2493
-
2494
- .chosen-rtl .chosen-choices li.search-choice .search-choice-close {
2495
- right: auto;
2496
- left: 4px;
2497
- }
2498
-
2499
- .chosen-rtl.chosen-container-single .chosen-results {
2500
- margin: 0 0 4px 4px;
2501
- padding: 0 4px 0 0;
2502
- }
2503
-
2504
- .chosen-rtl .chosen-results li.group-option {
2505
- padding-right: 15px;
2506
- padding-left: 0;
2507
- }
2508
-
2509
- .chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
2510
- border-right: none;
2511
- }
2512
-
2513
- .chosen-rtl .chosen-search input[type="text"] {
2514
- padding: 4px 5px 4px 20px;
2515
- direction: rtl;
2516
- }
2517
-
2518
- /* Rating */
2519
- .sp-tpro-client-rating{
2520
- float: left;
2521
- }
2522
- .sp-tpro-client-rating:not(:checked) > input {
2523
- visibility:hidden;
2524
- display: none;
2525
- width:0;
2526
- height:0;
2527
- float: right;;
2528
- top: 100%;
2529
- clip: rect(0,0,0,0);
2530
- margin: 0;
2531
- padding: 0;
2532
- border:10px #fff solid;
2533
- }
2534
-
2535
- .sp-tpro-client-rating:not(:checked) > label {
2536
- float: right;
2537
- display: block;
2538
- padding: 0;
2539
- margin: 0;
2540
- cursor: pointer;
2541
- font-size: 150%;
2542
- line-height: 1.2;
2543
- color: #d4d4d4;
2544
- width: 1em;
2545
- }
2546
-
2547
- .sp-tpro-client-rating > input:checked ~ label {
2548
- color: #f3bb00;
2549
- }
2550
-
2551
- .sp-tpro-client-rating:not(:checked) > label:hover,
2552
- .sp-tpro-client-rating:not(:checked) > label:hover ~ label {
2553
- color: #de7202;
2554
- }
2555
-
2556
- .sp-tpro-client-rating > input:checked + label:hover,
2557
- .sp-tpro-client-rating > input:checked + label:hover ~ label,
2558
- .sp-tpro-client-rating > input:checked ~ label:hover,
2559
- .sp-tpro-client-rating > input:checked ~ label:hover ~ label,
2560
- .sp-tpro-client-rating > label:hover ~ input:checked ~ label {
2561
- color: #de7202;
2562
- }
2563
-
2564
- /*ShortCode Area*/
2565
- .spftestimonial-metabox .sp-tpro-banner {
2566
- background-color:#2684a6;
2567
- padding: 22px 28px;
2568
- overflow: hidden;
2569
- background-image: -webkit-gradient(linear,left top,right top,from(#2684a6),to(#52b3d9));
2570
- background-image: linear-gradient(to right, #2684a6,#52b3d9);
2571
- }
2572
- .spftestimonial-metabox .sp-tpro-logo{
2573
- float: left;
2574
- }
2575
- .spftestimonial-metabox .sp-tpro-logo img{
2576
- display: block;
2577
- width: 182px;
2578
- }
2579
- .spftestimonial-metabox .sp-tpro-short-links{
2580
- float: right;
2581
- line-height: 30px;
2582
- }
2583
- .spftestimonial-metabox .sp-tpro-short-links a{
2584
- color: #ffffff;
2585
- text-decoration: none;
2586
- margin-left: 16px;
2587
- font-size: 15px;
2588
- }
2589
- .spftestimonial-metabox .sp-tpro-short-links a i.fa{
2590
- margin-right: 7px;
2591
- }
2592
- .sp-testimonial-shortcode-divider {
2593
- height: 20px;
2594
- background: #f1f1f1;
2595
- border-top: 1px solid #dddddd;
2596
- }
2597
- .spftestimonial-metabox .tpro_shortcode{
2598
- display: inline-flex;
2599
- width:100%;
2600
- background-color: #fffdfd;
2601
- }
2602
- .tpro_shortcode .tpro-col-lg-3 {
2603
- border-right: 1px solid #dddddd;
2604
- width: 33.33%;
2605
- }
2606
- .tpro_shortcode .tpro-col-lg-3 .tpro_shortcode_content{
2607
- padding: 42px 16px;
2608
- }
2609
- .tpro_shortcode .tpro-col-lg-3:last-child .tpro_shortcode_content{
2610
- padding: 42px 16px 0 16px;
2611
- }
2612
- .tpro_shortcode .tpro-col-lg-3 .tpro_shortcode_content .tpro-sc-code{
2613
- background-color: rgba(82, 179, 217, 0.11);
2614
- padding: 10px 15px;
2615
- display: inline-block;
2616
- }
2617
- .tpro_shortcode .tpro-col-lg-3:last-child {
2618
- border-right: none;
2619
- }
2620
- .tpro_shortcode .tpro-col-lg-3 .tpro-shortcode-title {
2621
- font-weight: 500;
2622
- font-size: 17px !important;
2623
- padding-top: 0 !important;
2624
- color: #4c5158;
2625
- }
2626
- .tpro_shortcode .tpro-col-lg-3 p {
2627
- margin-top: 2px;
2628
- color: #4c5158;
2629
- }
2630
- .tpro_shortcode .tpro-col-lg-3 .back-image {
2631
- max-width: 100%;
2632
- display: block;
2633
- margin: 0 auto;
2634
- }
2635
- .tpro_shortcode .tpro-col-lg-3 textarea {
2636
- border-color: transparent;
2637
- box-shadow: none;
2638
- background-color: #eee;
2639
- padding: 4px 6px;
2640
- resize: none;
2641
- text-align: center;
2642
- max-width: 100%;
2643
- }
2644
-
2645
- /**
2646
- Upgrade to Pro
2647
- */
2648
- #poststuff .sp-tfree-upgrade-body .sp-tfree-section-title {
2649
- padding: 13px 30px;
2650
- font-size: 28px;
2651
- line-height: 1;
2652
- font-weight: 700;
2653
- color: #2e9cc7;
2654
- text-transform: uppercase;
2655
- margin-bottom: 0;
2656
- margin-top: 0;
2657
- }
2658
-
2659
- #poststuff .sp-tfree-upgrade-body .sp-tfree-section-feature-icon {
2660
- padding: 30px 30px 0 30px;
2661
- }
2662
-
2663
- .sp-tfree-upgrade-body .tfree-option {
2664
- padding: 30px 30px;
2665
- border-bottom: 1px solid #efefef;
2666
- }
2667
-
2668
- .sp-tfree-upgrade-body .tfree-option:nth-child(2n+0) {
2669
- background-color: #fafafa;
2670
- }
2671
-
2672
- .sp-tfree-upgrade-header .tfree-overlay-color {
2673
- background: #2684a6;
2674
- position: absolute;
2675
- width: 100%;
2676
- height: 100%;
2677
- top: 0;
2678
- left: 0;
2679
- z-index: 1;
2680
- }
2681
-
2682
- .sp-tfree-upgrade-header {
2683
- overflow: hidden;
2684
- padding: 43px 40px;
2685
- position: relative;
2686
- }
2687
-
2688
- .sp-tfree-upgrade-header .sp-tfree-container {
2689
- position: relative;
2690
- z-index: 2;
2691
- }
2692
-
2693
- .sp-tfree-upgrade-header .free-upgrade-btn {
2694
- font-size: 15px;
2695
- color: #ffffff;
2696
- border-radius: 0;
2697
- border: 0;
2698
- height: auto !important;
2699
- line-height: 24px !important;
2700
- padding: 13px 18px !important;
2701
- text-align: center;
2702
- font-weight: 500;
2703
- }
2704
-
2705
- .sp-tfree-upgrade-header .sp-tfree-col-lg-7 {
2706
- width: 58.33333333%;
2707
- float: left;
2708
- }
2709
-
2710
- .sp-tfree-upgrade-header .sp-tfree-col-lg-5 {
2711
- width: 41.66666667%;
2712
- float: left;
2713
- text-align: right;
2714
- }
2715
-
2716
- .sp-tfree-upgrade-header .sp-tfree-upgrade-title {
2717
- margin: 0;
2718
- padding: 0;
2719
- font-size: 24px;
2720
- font-weight: 700;
2721
- color: #ffffff;
2722
- }
2723
-
2724
- .sp-tfree-upgrade-header .sp-tfree-upgrade-subtitle {
2725
- font-size: 15px;
2726
- font-weight: 500;
2727
- margin-top: 10px;
2728
- margin-bottom: 0;
2729
- color: #ffffff;
2730
- }
2731
-
2732
- .sp-tfree-upgrade-footer .free-upgrade-btn.upgrade-btn,
2733
- .sp-tfree-upgrade-footer .free-upgrade-btn.demo-btn {
2734
- font-family: 'Raleway', sans-serif;
2735
- box-shadow: none;
2736
- border: 0;
2737
- color: #fff;
2738
- border-radius: 0;
2739
- font-size: 16px;
2740
- font-weight: 500;
2741
- height: auto !important;
2742
- line-height: 24px !important;
2743
- padding: 13px 20px !important;
2744
- text-align: center;
2745
- }
2746
-
2747
- .sp-tfree-upgrade-header .upgrade-btn,
2748
- .sp-tfree-upgrade-footer .upgrade-btn {
2749
- background-color: #3cb371;
2750
- box-shadow: 0px 1px 26px -3px #333333;
2751
- margin-right: 14px;
2752
- }
2753
-
2754
- .sp-tfree-upgrade-header .upgrade-btn:hover,
2755
- .sp-tfree-upgrade-footer .upgrade-btn:hover,
2756
- .sp-tfree-upgrade-footer .free-upgrade-btn.upgrade-btn:focus,
2757
- .sp-tfree-upgrade-header .free-upgrade-btn.upgrade-btn:focus {
2758
- background: #26a55f;
2759
- color: #fff;
2760
- }
2761
-
2762
- .sp-tfree-upgrade-header .demo-btn,
2763
- .sp-tfree-upgrade-footer .demo-btn {
2764
- background-color: #52b3d9;
2765
- box-shadow: 0px 1px 26px -3px #333333;
2766
- }
2767
-
2768
- .sp-tfree-upgrade-header .demo-btn:hover,
2769
- .sp-tfree-upgrade-footer .demo-btn:hover,
2770
- .sp-tfree-upgrade-footer .free-upgrade-btn.demo-btn:focus,
2771
- .sp-tfree-upgrade-header .free-upgrade-btn.demo-btn:focus {
2772
- background: #2e9cc7;
2773
- color: #fff;
2774
- }
2775
-
2776
- .sp-tfree-upgrade-header h1,
2777
- .sp-tfree-upgrade-header h4,
2778
- .sp-tfree-upgrade-footer h2,
2779
- .sp-tfree-upgrade-header p {
2780
- color: #fff;
2781
- font-family: 'Raleway', sans-serif;
2782
- }
2783
-
2784
- #poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h2 {
2785
- font-size: 28px;
2786
- padding-top: 40px;
2787
- padding-left: 0;
2788
- text-transform: uppercase;
2789
- font-weight: 700;
2790
- padding-bottom: 0;
2791
- }
2792
-
2793
- #poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h4{
2794
- line-height: 24px;
2795
- }
2796
-
2797
- .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h4 {
2798
- font-size: 20px;
2799
- font-weight: 600;
2800
- margin-bottom: 20px;
2801
- line-height: 1.1;
2802
- }
2803
-
2804
- #poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h2,
2805
- .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h4 {
2806
- color: #7c848e;
2807
- }
2808
-
2809
- .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 p {
2810
- font-size: 15px;
2811
- color: #444;
2812
- margin-top: 10px;
2813
- }
2814
-
2815
- .sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 {
2816
- width: 50%;
2817
- float: left;
2818
- }
2819
-
2820
- .sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 .sp-tfree-content {
2821
- font-family: 'Raleway', sans-serif;
2822
- padding: 25px;
2823
- }
2824
-
2825
- .sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 img {
2826
- width: 100%;
2827
- }
2828
-
2829
- .sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 .sp-tfree-content img {
2830
- box-shadow: 0px 0px 20px 0px #aaaaaa;
2831
- }
2832
-
2833
- .sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 h4 {
2834
- margin-top: 0.33em;
2835
- }
2836
-
2837
- .sp-tfree-mbf-tab-content .tfree-option:after {
2838
- content: "";
2839
- display: table;
2840
- clear: both;
2841
- }
2842
-
2843
- .sp-tfree-mbf-tab-content .sp-tfree-video-tutorial {
2844
- padding: 30px 80px 50px;
2845
- }
2846
-
2847
- .sp-tfree-mbf-tab-content .sp-tfree-video-tutorial-video {
2848
- position: relative;
2849
- padding-bottom: 56.4%;
2850
- width: 100%;
2851
- max-width: 100%;
2852
- height: 0;
2853
- text-align: center;
2854
- }
2855
-
2856
- .sp-tfree-mbf-tab-content .sp-tfree-video-tutorial-video iframe {
2857
- position: absolute;
2858
- top: 0;
2859
- left: 0;
2860
- width: 100%;
2861
- height: 100%;
2862
- }
2863
-
2864
- #poststuff .sp-tfree-mbf-tab-content .sp-tfree-video-tutorial h2 {
2865
- font-size: 30px;
2866
- font-weight: 600;
2867
- color: #444444;
2868
- margin-bottom: 20px;
2869
- }
2870
-
2871
- .sp-tfree-mbf-tab-content .tfree-option:after, .sp-tfree-mbf-tab-content .tfree-option:before {
2872
- -webkit-box-sizing: border-box;
2873
- -moz-box-sizing: border-box;
2874
- box-sizing: border-box;
2875
- }
2876
-
2877
- .sp-tfree-upgrade-footer {
2878
- padding: 60px 40px 40px 40px;
2879
- }
2880
-
2881
- .sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer {
2882
- font-family: 'Raleway', sans-serif;
2883
- color: #fff;
2884
- position: relative;
2885
- z-index: 1;
2886
- }
2887
-
2888
- .sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer .tfree-overlay-color {
2889
- position: absolute;
2890
- width: 100%;
2891
- height: 100%;
2892
- top: 0px;
2893
- left: 0px;
2894
- z-index: -1;
2895
- background: #2684a6;
2896
- }
2897
-
2898
- #poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer h2 {
2899
- font-size: 28px;
2900
- margin-top: 12px;
2901
- font-weight: 700;
2902
- }
2903
-
2904
- .sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer p {
2905
- margin-top: 0;
2906
- }
2907
-
2908
- .sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer p {
2909
- margin-top: 0;
2910
- margin-bottom: 34px;
2911
- }
2912
-
2913
- .sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer a {
2914
- margin-bottom: 20px;
2915
- }
2916
-
2917
- .sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer p {
2918
- font-size: 18px;
2919
- font-weight: 500;
2920
- }
2921
-
2922
- /* Responsive */
2923
- @media (max-width: 1200px) {
2924
- .sp-tfree-metabox-framework .sp-tfree-mbf {
2925
- display: block;
2926
- }
2927
-
2928
- .sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 {
2929
- width: 100%;
2930
- float: none;
2931
- }
2932
-
2933
- #poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h2 {
2934
- padding-top: 0;
2935
- }
2936
-
2937
- .sp-tfree-mbf-tab-content .sp-tfree-col-lg-2:last-of-type .sp-tfree-content {
2938
- padding-top: 0;
2939
- padding-bottom: 40px;
2940
- }
2941
-
2942
- .sp-tfree-mbf .sp-tfree-col-lg-3,
2943
- .sp-tfree-element .sp-tfree-input-label,
2944
- .sp-tfree-element .sp-tfree-input-field {
2945
- width: 100%;
2946
- }
2947
-
2948
- .sp-tfree-mbf .sp-tfree-col-lg-3 {
2949
- display: block;
2950
- border-bottom: 1px solid #e5e5e5;
2951
- padding-bottom: 15px;
2952
- border-right: none;
2953
- }
2954
-
2955
- .sp-tfree-mbf .sp-tfree-col-lg-3:last-of-type {
2956
- border-bottom: none;
2957
- padding-bottom: 0;
2958
- }
2959
- .sp-tfree-upgrade-header .sp-tfree-col-lg-7 {
2960
- width: 100%;
2961
- float: none;
2962
- }
2963
- .sp-tfree-upgrade-header .sp-tfree-col-lg-5 {
2964
- width: 100%;
2965
- float: none;
2966
- text-align: center;
2967
- }
2968
- .sp-tfree-upgrade-header .sp-tfree-container {
2969
- text-align: center;
2970
- }
2971
- .sp-tfree-upgrade-header .sp-tfree-upgrade-subtitle {
2972
- margin-bottom: 20px;
2973
- }
2974
- }
2975
-
2976
- @media (max-width: 1024px) {
2977
- .sp-tfree-upgrade-header .demo-btn,
2978
- .sp-tfree-upgrade-footer .demo-btn,
2979
- .sp-tfree-upgrade-header .upgrade-btn,
2980
- .sp-tfree-upgrade-footer .upgrade-btn {
2981
- margin: 0 auto;
2982
- display: block;
2983
- }
2984
-
2985
- .sp-tfree-mbf-tab-content .sp-tfree-upgrade-header a.upgrade-btn,
2986
- .sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer a.upgrade-btn,
2987
- .sp-tfree-upgrade-header .sp-tfree-upgrade-subtitle {
2988
- margin-bottom: 20px;
2989
- }
2990
-
2991
- .sp-tfree-upgrade-header .sp-tfree-col-lg-7 {
2992
- width: 100%;
2993
- float: none;
2994
- }
2995
-
2996
- .sp-tfree-upgrade-header .sp-tfree-col-lg-5 {
2997
- width: 100%;
2998
- float: none;
2999
- text-align: center;
3000
- }
3001
-
3002
- .sp-tfree-upgrade-header .sp-tfree-container {
3003
- text-align: center;
3004
- }
3005
- }
3006
-
3007
- /* Custom */
3008
- .sp-testimonial-shortcode {
3009
- background-color: rgba(82, 179, 217, 0.11);
3010
- padding: 8px 12px;
3011
- display: inline-block;
3012
- margin-left: 8px;
3013
- }
3014
- .selectable {
3015
- -webkit-touch-callout: all;
3016
- -webkit-user-select: all;
3017
- -khtml-user-select: all;
3018
- -moz-user-select: all;
3019
- -ms-user-select: all;
3020
- user-select: all;
3021
- }
3022
- .js #sp_tpro_shortcode_options.postbox .handlediv, .js #sp_tpro_shortcode_options.postbox .hndle,
3023
- .js #sp_tpro_meta_options.postbox .handlediv, .js #sp_tpro_meta_options.postbox .hndle {
3024
- display: none;
3025
- }
3026
- .sp-testimonial-font-load .spftestimonial--switcher,
3027
- .sp-testimonial-font-color .wp-picker-container {
3028
- pointer-events: none;
3029
- opacity: .6;
3030
- }
3031
- #sp_tpro_shortcode_options .spftestimonial-metabox .spftestimonial-nav ul li:last-of-type a {
3032
- background-color: #35b135;
3033
- }
3034
- #sp_tpro_shortcode_options .spftestimonial-metabox .spftestimonial-nav ul li:last-of-type .spftestimonial-section-active {
3035
- color: #35b135;
3036
- background-color: #fff;
3037
- box-shadow: 0 3px 0 0 #35b135 inset;
3038
- }
3039
- #sp_tpro_shortcode_options .spftestimonial-metabox .spftestimonial-nav ul li:last-of-type .spftestimonial-section-active .fa{
3040
- color: #35b135;
3041
- }
3042
- #sp_tpro_shortcode_options .spftestimonial-field.spftestimonial-field-upgrade {
3043
- padding: 0;
3044
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/views/tp-metabox/assets/css/spftestimonial.min.css DELETED
@@ -1 +0,0 @@
1
- .spftestimonial{position:relative}.spftestimonial label{padding:0;margin:0;display:inline-block}.spftestimonial-ab-icon{top:2px}.text-center{text-align:center}#screen-meta-links+.spftestimonial-options{margin-top:40px}.spftestimonial-options{margin-top:20px;margin-right:20px}.spftestimonial-header{position:relative}.spftestimonial-header-inner{padding:25px}.spftestimonial-header-inner h1{color:#444;float:left;font-size:22px;line-height:26px;font-weight:600;margin:0}.spftestimonial-header-inner h1 small{font-size:11px;font-weight:500}.spftestimonial-sticky .spftestimonial-header-inner{position:fixed;z-index:20;top:32px;-moz-box-shadow:0 5px 25px rgba(0,0,0,.125);-webkit-box-shadow:0 5px 25px rgba(0,0,0,.125);box-shadow:0 5px 25px rgba(0,0,0,.125)}.spftestimonial-buttons{float:right;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.spftestimonial-buttons .button{margin:0 2px;line-height:26px}.spftestimonial-header-left{float:left}.spftestimonial-header-right{float:right}.spftestimonial-nav{display:block;position:relative;z-index:10;float:left;width:225px}.spftestimonial-metabox .spftestimonial-nav{position:inherit;float:none;width:100%;background:#f1f1f1}.spftestimonial-nav ul{clear:left;margin:0;list-style-type:none}.spftestimonial-nav ul li{margin-bottom:0}.spftestimonial-metabox .spftestimonial-nav ul li{display:inline-block}.spftestimonial-nav ul li a{font-size:13px;position:relative;display:block;padding:14px 12px;text-transform:uppercase;font-weight:600;text-decoration:none;-moz-transition:all .3s ease;-o-transition:all .3s ease;-webkit-transition:all .3s ease;transition:all .3s ease}.spftestimonial-nav ul li a:focus{outline:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.spftestimonial-nav ul li .spftestimonial-arrow:after{content:"\f054";display:inline-block;font-family:FontAwesome;font-size:9px;line-height:1;position:absolute;right:10px;top:50%;margin-top:-4px;-moz-transform:rotate(0);-ms-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}.spftestimonial-nav ul li.spftestimonial-tab-active .spftestimonial-arrow:after{-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-webkit-transform:rotate(90deg);transform:rotate(90deg)}.spftestimonial-nav ul li.spftestimonial-tab-active ul{display:block}.spftestimonial-nav ul ul{display:none;position:relative}.spftestimonial-nav ul ul li a{font-size:12px;padding:12px 14px 12px 24px}.spftestimonial-nav .fa{width:20px;margin-right:5px;font-size:14px;text-align:center}.spftestimonial-nav .spftestimonial-label-error{margin-left:4px;vertical-align:top}.spftestimonial-nav-background{position:absolute;top:0;left:0;bottom:0;z-index:9;width:225px}.spftestimonial-wrapper{position:relative}.spftestimonial-content{position:relative;margin-left:225px;background-color:#fff;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.spftestimonial-metabox .spftestimonial-content{margin-left:0}.spftestimonial-sections{float:left;width:100%}.spftestimonial-section{display:none}.spftestimonial-section-title{display:none;padding:20px 30px;background-color:#f5f5f5;border-top:1px solid #eee;border-bottom:1px solid #eee}.spftestimonial-section-title h3{margin:0;padding:0;font-size:13px;font-weight:700;text-transform:uppercase}.spftestimonial-section-title .fa{margin-right:5px}.spftestimonial-footer{padding:20px;font-size:11px}.spftestimonial-copyright{float:left;margin-top:5px}.spftestimonial-search-all .spftestimonial-nav,.spftestimonial-search-all .spftestimonial-nav-background,.spftestimonial-show-all .spftestimonial-nav,.spftestimonial-show-all .spftestimonial-nav-background{display:none}.spftestimonial-search-all .spftestimonial-content,.spftestimonial-show-all .spftestimonial-content{margin-left:0}.spftestimonial-search-all .spftestimonial-section,.spftestimonial-search-all .spftestimonial-section-title,.spftestimonial-show-all .spftestimonial-section,.spftestimonial-show-all .spftestimonial-section-title{display:block!important}.spftestimonial-search-all .spftestimonial-section-title{display:none!important}.spftestimonial-expand-all{float:left;padding:0 8px;margin-right:4px;z-index:1;font-size:14px;line-height:29px;cursor:pointer;-webkit-user-select:none;user-select:none;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-transition:all .2s;-o-transition:all .2s;-webkit-transition:all .2s;transition:all .2s}.spftestimonial-expand-all span{font-size:11px;vertical-align:middle}.spftestimonial-search{float:left}.spftestimonial-search input{margin:0 2px 0 0;border:none;font-size:12px;line-height:29px;text-align:inherit;padding:0 10px;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.spftestimonial-search input:focus{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.spftestimonial-saving .spftestimonial-buttons,.spftestimonial-saving .spftestimonial-content{cursor:default;pointer-events:none;opacity:.75}.spftestimonial-metabox{margin:-6px -12px -12px -12px}.spftestimonial-metabox .spftestimonial-section-title{padding:20px}.block-editor-page .spftestimonial-metabox{margin:-6px -14px -12px -14px}.spftestimonial-metabox-restore{text-align:right;padding:10px;border-top:1px solid #eee}.spftestimonial-metabox-restore .spftestimonial-button-cancel,.spftestimonial-metabox-restore input{display:none}.spftestimonial-metabox-restore span{-webkit-user-select:none;user-select:none}.spftestimonial-metabox-restore input:checked~.spftestimonial-button-restore{display:none}.spftestimonial-metabox-restore input:checked~.spftestimonial-button-cancel{display:inline-block}#side-sortables .spftestimonial-section-title{padding:12px}#side-sortables .spftestimonial-field{padding:12px}#side-sortables .spftestimonial-field .spftestimonial-title{float:none;width:100%;margin-bottom:10px}#side-sortables .spftestimonial-field .spftestimonial-fieldset{margin-left:0}#side-sortables .spftestimonial-notice{padding:12px}.spftestimonial-tooltip{position:absolute;z-index:5000001;font-size:12px;line-height:1.4;text-align:center;text-decoration:none;padding:6px 12px;max-width:200px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.85);-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.spftestimonial-theme-dark .spftestimonial-header-inner{background-color:#050505}.spftestimonial-theme-dark .spftestimonial-header-inner h1{color:#fff}.spftestimonial-theme-dark .spftestimonial-header-inner h1 small{color:#555}.spftestimonial-theme-dark .spftestimonial-expand-all{color:#999;background-color:#222}.spftestimonial-theme-dark .spftestimonial-expand-all:hover{color:#fff;background-color:#333}.spftestimonial-theme-dark .spftestimonial-search input{color:#fff;background-color:#222}.spftestimonial-theme-dark .spftestimonial-search:focus{background-color:#444}.spftestimonial-theme-dark .spftestimonial-search::-webkit-input-placeholder{color:#666}.spftestimonial-metabox .spftestimonial-nav ul li a{background-color:#52b3d9;font-size:14px;padding:15px 15px;line-height:1.4;color:#fff;border-right:1px solid #e2e2e1;font-weight:600}#sp_tpro_shortcode_options_new .spftestimonial-metabox .spftestimonial-nav ul li a{font-size:13px;text-transform:uppercase;padding:16px 15px}.spftestimonial-metabox .spftestimonial-nav ul li .spftestimonial-section-active{color:#444;background-color:#fff;box-shadow:0 3px 0 0 #52b3d9 inset}.spftestimonial-metabox .spftestimonial-nav ul li .spftestimonial-section-active .fa{color:#52b3d9}.spftestimonial-theme-dark .spftestimonial-nav ul ul li a{background-color:#191919;border-bottom:1px solid #2f2f2f}.spftestimonial-theme-dark .spftestimonial-nav ul ul li .spftestimonial-section-active{background-color:#101010}.spftestimonial-theme-dark .spftestimonial-nav ul ul:before{background-color:rgba(34,34,34,.75)}.spftestimonial-theme-dark .spftestimonial-nav>ul>li:last-child>a{border-bottom:none}.spftestimonial-theme-dark .spftestimonial-nav-background{background-color:#222}.spftestimonial-metabox .spftestimonial-nav-background{display:none}.spftestimonial-theme-dark .spftestimonial-footer{color:#555;background-color:#050505}.spftestimonial-theme-light .spftestimonial-container{border:1px solid #ccd0d4}.spftestimonial-theme-light .spftestimonial-header-inner{border-bottom:1px solid #ccd0d4;background-color:#f5f5f5;background:linear-gradient(#fefefe,#f5f5f5)}.spftestimonial-theme-light .spftestimonial-header-inner h1 small{color:#999}.spftestimonial-theme-light .spftestimonial-expand-all{color:#999;background-color:#fff;-moz-box-shadow:0 1px 1px rgba(0,0,0,.05);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.spftestimonial-theme-light .spftestimonial-expand-all:hover{color:#555}.spftestimonial-theme-light .spftestimonial-search input{color:#555;background-color:#fff;-moz-box-shadow:0 1px 1px rgba(0,0,0,.05);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.spftestimonial-theme-light .spftestimonial-search input::-webkit-input-placeholder{color:#bbb}.spftestimonial-theme-light .spftestimonial-nav ul li a{color:#464646;background-color:#f5f5f5;border-top:0;border-right:0;border-bottom:1px solid #ccd0d4;margin-bottom:0;padding:15px 15px}.spftestimonial-theme-light .spftestimonial-nav ul li .spftestimonial-section-active{box-shadow:3px 0 0 0 #52b3d9 inset;background-color:#fff;color:#52b3d9}.spftestimonial-theme-light .spftestimonial-nav ul li .spftestimonial-section-active:after{display:none}.spftestimonial-theme-light .spftestimonial-nav ul ul li a{border-bottom:1px solid #e5e5e5;background-color:#f8fdff;padding:13px 15px 13px 24px}.spftestimonial-theme-light .spftestimonial-nav-background{background-color:#f5f5f5;border-right:1px solid #ccd0d4}.spftestimonial-theme-light .spftestimonial-footer{color:#555;border-top:1px solid #e5e5e5;background-color:#f5f5f5;background:linear-gradient(#fafafa,#f5f5f5)}.spftestimonial-field{position:relative;padding:22px 30px}.spftestimonial-field p:first-child{margin-top:0}.spftestimonial-field p:last-child{margin-bottom:0}.spftestimonial-field:after,.spftestimonial-field:before{content:" ";display:table}.spftestimonial-field:after{clear:both}.spftestimonial-field h4{margin-top:0}.spftestimonial-field .spftestimonial-title{position:relative;width:20%;float:left}.spftestimonial-field .spftestimonial-title h4{margin:0;color:#23282d}.spftestimonial-field .spftestimonial-fieldset{margin-left:25%}.spftestimonial-pseudo-field{padding:0 5px 0 0!important;display:inline-block}.spftestimonial-pseudo-field+.spftestimonial-pseudo-field{border:0}.spftestimonial-pseudo-field pre{display:none}.spftestimonial-field-border .spftestimonial--left,.spftestimonial-field-dimensions .spftestimonial--left,.spftestimonial-field-spacing .spftestimonial--left{float:left}.spftestimonial-field-border .spftestimonial--input,.spftestimonial-field-dimensions .spftestimonial--input,.spftestimonial-field-spacing .spftestimonial--input{float:left;margin-right:10px;margin-bottom:7px}.spftestimonial-field-border .spftestimonial--input select,.spftestimonial-field-dimensions .spftestimonial--input select,.spftestimonial-field-spacing .spftestimonial--input select{margin:0;line-height:26px}.spftestimonial-field-border .spftestimonial--input input,.spftestimonial-field-dimensions .spftestimonial--input input,.spftestimonial-field-spacing .spftestimonial--input input{line-height:30px;float:left;margin:0;padding:0;width:65px;max-width:100%;text-align:center;border-radius:0}.spftestimonial-field-border .spftestimonial--label,.spftestimonial-field-dimensions .spftestimonial--label,.spftestimonial-field-spacing .spftestimonial--label{float:left;max-width:100%;font-size:12px;line-height:30px;vertical-align:top;text-align:center;color:#555;border:1px solid #ddd;background-color:#eee;padding:0 6px;min-height:30px}.spftestimonial-field-border .spftestimonial--label-icon,.spftestimonial-field-dimensions .spftestimonial--label-icon,.spftestimonial-field-spacing .spftestimonial--label-icon{min-width:20px;border-right:0;border-radius:2px 0 0 2px}.spftestimonial-field-border .spftestimonial--label-unit,.spftestimonial-field-dimensions .spftestimonial--label-unit,.spftestimonial-field-spacing .spftestimonial--label-unit{color:#999;border-left:0;border-radius:0 2px 2px 0}.spftestimonial-field-button_set .spftestimonial--buttons{display:inline-block}.spftestimonial-field-button_set .spftestimonial--button{position:relative;z-index:1;float:left;cursor:pointer;padding:7px 14px;min-width:40px;text-align:center;color:#555;border:1px solid #ccc;background-color:#f7f7f7;user-select:none;-webkit-user-select:none;box-shadow:0 1px 0 rgba(0,0,0,.1)}.spftestimonial-field-button_set .spftestimonial--button:first-child{border-radius:4px 0 0 4px}.spftestimonial-field-button_set .spftestimonial--button:last-child{border-radius:0 4px 4px 0}.spftestimonial-field-button_set .spftestimonial--button:not(:first-child){margin-left:-1px}.spftestimonial-field-button_set .spftestimonial--button:hover{background-color:#eee}.spftestimonial-field-button_set .spftestimonial--active,.spftestimonial-field-button_set .spftestimonial--active:hover{z-index:2;color:#fff;border-color:#006799;background-color:#0085ba}.spftestimonial-field-button_set input{display:none}.spftestimonial-field-checkbox ul,.spftestimonial-field-radio ul{margin:0;padding:0;list-style-type:none;overflow-y:auto;max-height:305px}.spftestimonial-field-checkbox ul ul,.spftestimonial-field-radio ul ul{max-height:none}.spftestimonial-field-checkbox .spftestimonial--inline-list li,.spftestimonial-field-radio .spftestimonial--inline-list li{display:inline-block;margin-right:15px}.spftestimonial-field-checkbox input[type=radio]:checked:before,.spftestimonial-field-radio input[type=radio]:checked:before{line-height:10px}.spftestimonial-field-checkbox .spftestimonial-checker,.spftestimonial-field-radio .spftestimonial-checker{cursor:pointer}.spftestimonial-field-code_editor .CodeMirror{width:100%;height:400px;border:1px solid #eee}.spftestimonial-field-code_editor textarea{width:100%;height:400px}.spftestimonial-field-color>input{opacity:.75;width:115px;max-width:100%}.spftestimonial-field-color_group .spftestimonial--left{float:left;margin-right:10px;margin-bottom:5px}.spftestimonial-field-color_group .spftestimonial--title{color:#999;margin-bottom:5px}.spftestimonial-field-icon_select .spftestimonial--image{width:35px;height:35px;text-align:center;line-height:35px;font-size:20px}.spftestimonial-field-icon_select .spftestimonial--image,.spftestimonial-field-image_select .spftestimonial--image{cursor:pointer;position:relative;display:inline-block;max-width:100%;margin:0 5px 5px 0;vertical-align:bottom;border:2px solid #f4f4f4;background-color:#fff;user-select:none;-webkit-user-select:none;-moz-transition:all .2s;-o-transition:all .2s;-webkit-transition:all .2s;transition:all .2s}.spftestimonial-field-icon_select .spftestimonial--image:before,.spftestimonial-field-image_select .spftestimonial--image:before{position:absolute;top:0;left:0;text-align:center;font-size:11px;font-family:FontAwesome;content:"\f00c";width:15px;height:15px;line-height:15px;opacity:0;color:#fff;background-color:#52b3d9;transition:opacity .2s}.spftestimonial-field-icon_select .spftestimonial--active,.spftestimonial-field-image_select .spftestimonial--active{border-color:#52b3d9}.spftestimonial-field-icon_select .spftestimonial--active:before,.spftestimonial-field-image_select .spftestimonial--active:before{opacity:0}.spftestimonial-field-image_select img{vertical-align:top}.spftestimonial-field-icon_select input,.spftestimonial-field-image_select input{display:none}.spftestimonial-field-select .spftestimonial-fieldset{min-height:30px}.spftestimonial-field-select .spftestimonial-chosen{display:none}.spftestimonial-field-select select{max-width:100%}.spftestimonial-field-spinner .spftestimonial--spin{float:left}.spftestimonial-field-spinner .spftestimonial--unit{float:right;height:30px;line-height:26px;text-align:center;border-left:none;color:#999;border:1px solid #ddd;border-left:0;background-color:#eee;padding:0 6px;margin:0;box-sizing:border-box}.spftestimonial-field-spinner .ui-spinner-button{cursor:pointer;position:relative;overflow:hidden;margin:0;padding:0;width:30px;height:30px;line-height:30px;text-align:center;border:1px solid #ddd;color:#555;background-color:#eee;box-sizing:border-box}.spftestimonial-field-spinner .ui-spinner-button:hover{background-color:#e7e7e7}.spftestimonial-field-spinner .ui-spinner-button:active{background-color:#ddd}.spftestimonial-field-spinner .ui-spinner-button:before{font-family:FontAwesome;font-size:16px;line-height:16px}.spftestimonial-field-spinner .ui-spinner-down{float:left;border-right:0;border-radius:2px 0 0 2px}.spftestimonial-field-spinner .ui-spinner-down:before{content:"\f0d9"}.spftestimonial-field-spinner .ui-spinner-up{float:right;border-left:0;border-radius:0 2px 2px 0}.spftestimonial-field-spinner .ui-spinner-up:before{content:"\f0da"}.spftestimonial-field-spinner input{width:60px;text-align:center;margin:0;padding:0 8px;height:31px;line-height:31px;border:1px solid #ddd;border-radius:0}.spftestimonial-field-spinner input:focus{outline:0}.spftestimonial-field-spinner .ui-button-text{display:none}.spftestimonial-field-switcher .spftestimonial--switcher{float:left;cursor:pointer;position:relative;width:60px;height:26px;padding:0;margin:0;overflow:hidden;border-radius:4px;background-color:#ed6f6f;user-select:none;-webkit-user-select:none}.spftestimonial-field-switcher .spftestimonial--ball{position:absolute;top:4px;left:4px;width:24px;height:18px;background-color:#fff;border-radius:4px;transition:all .1s;box-shadow:1px 1px 1px rgba(0,0,0,.15)}.spftestimonial-field-switcher .spftestimonial--off,.spftestimonial-field-switcher .spftestimonial--on{position:absolute;top:0;left:0;right:0;font-size:11px;line-height:26px;font-weight:500;font-style:normal;text-align:center;text-transform:uppercase;color:#fff;padding-right:28px;opacity:0;transition:all .1s}.spftestimonial-field-switcher .spftestimonial--off{padding-right:0;padding-left:28px;opacity:1}.spftestimonial-field-switcher .spftestimonial--active{background:#4fb845}.spftestimonial-field-switcher .spftestimonial--active .spftestimonial--on{opacity:1}.spftestimonial-field-switcher .spftestimonial--active .spftestimonial--off{opacity:0}.spftestimonial-field-switcher .spftestimonial--active .spftestimonial--ball{left:100%;margin-left:-28px}.spftestimonial-field-switcher .spftestimonial--label{float:left;margin-top:4px;margin-left:8px;font-weight:400;color:#999}.spftestimonial-field-switcher input{display:none}.spftestimonial-field-tabbed .spftestimonial-tabbed-section{border:1px solid #eee;background:#fff}.spftestimonial-field-tabbed .spftestimonial-tabbed-section>.spftestimonial-field{padding:15px}.spftestimonial-field-tabbed .spftestimonial-tabbed-nav .spftestimonial--icon{padding-right:5px}.spftestimonial-field-tabbed .spftestimonial-tabbed-nav a{display:inline-block;padding:12px 15px;margin-top:1px;margin-right:5px;margin-bottom:-1px;position:relative;text-decoration:none;color:#444;font-weight:600;background-color:#f3f3f3;border:1px solid #eee;-moz-transition:all .2s;-o-transition:all .2s;-webkit-transition:all .2s;transition:all .2s}.spftestimonial-field-tabbed .spftestimonial-tabbed-nav a:hover{background-color:#f9f9f9}.spftestimonial-field-tabbed .spftestimonial-tabbed-nav a.spftestimonial-tabbed-active{background-color:#fff;border-bottom-color:#fff}.spftestimonial-field-tabbed .spftestimonial-tabbed-nav a:focus{outline:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.spftestimonial-field-text input,.spftestimonial-field-text_f input{width:340px;max-width:100%}.spftestimonial-field-typography select,.spftestimonial-field-typography textarea{margin:0;width:100%}.spftestimonial-field-typography .spftestimonial--title{color:#999;margin:0 0 2px 0}.spftestimonial-field-typography .spftestimonial--title small{vertical-align:top}.spftestimonial-field-typography .spftestimonial--blocks{display:flex;flex-wrap:wrap}.spftestimonial-field-typography .spftestimonial--block{padding-right:5px;padding-bottom:10px;box-sizing:border-box}.spftestimonial-field-typography .spftestimonial--block .spftestimonial--block{padding-right:0;padding-bottom:0}.spftestimonial-field-typography .spftestimonial--blocks-selects .spftestimonial--block{flex:1 33.3%}.spftestimonial-field-typography .spftestimonial--blocks-inputs .spftestimonial--block{flex:1 25%}.spftestimonial-field-typography .spftestimonial--blocks-inputs .spftestimonial--block .spftestimonial--block{flex:1}.spftestimonial-field-typography .spftestimonial--input{margin:0;width:100%;padding:2px 8px;border-radius:4px 0 0 4px}.spftestimonial-field-typography .spftestimonial--unit{min-width:40px;max-width:40px;font-size:12px;font-weight:400;text-align:center;color:#777;border:1px solid #ddd;background-color:#eee;border-radius:0 2px 2px 0;border-left:0;line-height:30px}.spftestimonial-field-typography .spftestimonial--preview{font-size:16px;line-height:20px;padding:20px;color:#222;border:1px solid #eee;background-color:#fff;border-radius:2.5px;user-select:none;-webkit-user-select:none;transition:background-color .2s,border-color .2s}.spftestimonial-field-typography .spftestimonial--block-preview{cursor:pointer;position:relative;overflow:hidden;margin-top:10px;max-width:100%}.spftestimonial-field-typography .spftestimonial--black-background{border-color:#000;background-color:#000}.spftestimonial-field-typography .spftestimonial--toggle{position:absolute;top:5px;right:10px;color:#999}.spftestimonial-field-typography .spftestimonial--block-extra-styles{margin-top:5px}.spftestimonial-field-heading{font-size:1.5em;font-weight:700;color:#23282d;background-color:#f5f5f5}.spftestimonial-field-subheading{font-size:14px;font-weight:700;padding-top:17px;padding-bottom:17px;color:#23282d;background-color:#f7f7f7}.spftestimonial-field-submessage{padding:0!important;border:0!important}.spftestimonial-field-submessage+.spftestimonial-field{border-top:0!important}.spftestimonial-submessage{font-size:12px;padding:17px 30px;border-top:1px solid transparent;border-bottom:1px solid transparent}.spftestimonial-submessage-success{color:#3c763d;border-color:#d6e9c6;background-color:#dff0d8}.spftestimonial-submessage-info{color:#31708f;border-color:#bce8f1;background-color:#d9edf7}.spftestimonial-submessage-warning{color:#8a6d3b;border-color:#faebcc;background-color:#fcf8e3}.spftestimonial-submessage-danger{color:#a94442;border-color:#ebccd1;background-color:#f2dede}.spftestimonial-submessage-normal{color:#23282d;border-color:#eee;background-color:#f7f7f7}.spftestimonial-field-notice{background-color:#f7f7f7}.spftestimonial-notice{padding:12px;background-color:#fff;border-left-style:solid;border-left-width:4px;box-shadow:0 1px 1px rgba(0,0,0,.1)}.spftestimonial-notice-success{border-color:#46b450}.spftestimonial-notice-info{border-color:#339fd4}.spftestimonial-notice-warning{border-color:#ffbc00}.spftestimonial-notice-danger{border-color:#dc3232}.spftestimonial-notice-normal{border-color:#222}.spftestimonial-help{cursor:help;position:absolute;top:0;right:0;padding:5px;font-size:14px;color:#aaa}.spftestimonial-help .spftestimonial-help-text{display:none}.spftestimonial-image-preview{display:inline-block;position:relative;padding:4px;min-width:44px;min-height:22px;margin-bottom:10px;border:1px solid #ccc;background-color:#f9f9f9;-moz-box-shadow:0 1px 0 rgba(0,0,0,.08);-webkit-box-shadow:0 1px 0 rgba(0,0,0,.08);box-shadow:0 1px 0 rgba(0,0,0,.08)}.spftestimonial-image-preview img{max-height:90px;display:inline-block;vertical-align:middle}.spftestimonial-field-custom .spftestimonial-field{padding:0}.spftestimonial-field .chosen-container-single .chosen-single{height:28px;line-height:26px}.spftestimonial-field .chosen-container-single .chosen-single abbr{top:0;right:20px;font-family:FontAwesome;font-size:12px;height:100%;width:18px;color:#aaa;text-align:center;background:0 0}.spftestimonial-field .chosen-container-single .chosen-single abbr:before{content:"\f00d"}.spftestimonial-field .chosen-container-single .chosen-single abbr:hover{color:#555}.spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close{font-family:FontAwesome;font-size:12px;height:100%;width:18px;color:#aaa;text-align:center;background:0 0}.spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:before{content:"\f00d";display:inline-block;padding-top:3px}.spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{color:#555}.spftestimonial-field .chosen-container-single .chosen-single div b{font-family:FontAwesome;font-size:14px;color:#aaa;background:0 0}.spftestimonial-field .chosen-container-single .chosen-single div b:before{content:"\f107"}.spftestimonial-field .chosen-container-single .chosen-single div b:hover{color:#555}.spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice-placeholder{border:1px dashed #aaa;margin:3px 5px 3px 0}.spftestimonial-field .chosen-container-multi .ui-sortable li.search-choice span{cursor:move}.spftestimonial-field .chosen-container-active.chosen-with-drop .chosen-single div b:before{content:"\f106"}.spftestimonial-field .chosen-container-single .chosen-single-with-deselect span{margin-right:40px}.spftestimonial-field .chosen-container-single .chosen-search input[type=text]{background:0 0}.spftestimonial-field .chosen-container-single .chosen-search:before{font-family:FontAwesome;position:absolute;content:"\f002";font-size:11px;right:10px;top:7px;color:#aaa}.spftestimonial-field .wp-picker-container{display:inline-block}.spftestimonial-field .spftestimonial--transparent-wrap{display:none;position:relative;top:-1px;width:235px;padding:9px 10px;border:1px solid #dfdfdf;border-top:none;background-color:#fff}.spftestimonial-field .spftestimonial--transparent-slider{position:absolute;width:190px;margin-left:2px;height:18px}.spftestimonial-field .spftestimonial--transparent-slider .ui-slider-handle{position:absolute;top:-3px;bottom:-3px;z-index:5;border-color:#aaa;border-style:solid;border-width:4px 3px;width:10px;height:16px;margin:0 -5px;background:0 0;cursor:ew-resize;opacity:.9;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.2);-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 1px 2px rgba(0,0,0,.2)}.spftestimonial-field .spftestimonial--transparent-slider .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.spftestimonial-field .spftestimonial--transparent-offset{height:18px;width:200px;background:url(../images/checkerboard.png) repeat-y center left scroll #fff;-moz-box-shadow:0 0 5px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 5px rgba(0,0,0,.4) inset;box-shadow:0 0 5px rgba(0,0,0,.4) inset;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.spftestimonial-field .spftestimonial--transparent-text{position:absolute;top:12px;right:10px;width:30px;font-size:12px;line-height:12px;text-align:center;color:#999}.spftestimonial-field .spftestimonial--transparent-button{display:inline-block;text-align:center;cursor:pointer;margin-top:10px;user-select:none;-webkit-user-select:none;color:#999;transition:background-color .2s,border-color .2s,color .2s}.spftestimonial-field .spftestimonial--transparent-active .wp-color-result{background-image:url(../images/checkerboard.png);background-size:130%;background-position:center left;background-color:transparent!important}.spftestimonial-field .spftestimonial--transparent-active .spftestimonial--transparent-button{color:#fff;border-color:#4fb845;background-color:#4fb845}.spftestimonial-widgets>.spftestimonial-field{position:relative;top:-1px;margin-right:-15px;margin-left:-15px;padding:12px 15px}.spftestimonial-widgets>.spftestimonial-field .spftestimonial-field{margin-left:0;margin-right:0}.spftestimonial-widgets>.spftestimonial-field .spftestimonial-title{float:none;width:100%;margin-bottom:5px}.spftestimonial-widgets>.spftestimonial-field .spftestimonial-fieldset{margin-left:0}.spftestimonial-widgets .spftestimonial-field-text input{width:100%}.spftestimonial-widgets .spftestimonial-field-notice .spftestimonial-notice{padding:15px}.control-section .spftestimonial-widgets>.spftestimonial-field{margin-right:-10px;margin-left:-10px;padding:10px 12px}.control-section .spftestimonial-field{padding:0}.control-section .spftestimonial-field .spftestimonial-title{float:none;width:100%;margin-bottom:10px}.control-section .spftestimonial-field .spftestimonial-title h4{font-size:14px;font-weight:600;color:inherit}.control-section .spftestimonial-field .spftestimonial-fieldset{margin-left:0}.control-section .spftestimonial-field-select select{width:100%}.control-section .spftestimonial-field-heading{color:inherit;font-size:14px;line-height:1em;margin-right:-15px;margin-left:-15px;padding:15px}.control-section .spftestimonial-field-subheading{color:inherit;font-size:11px;margin-right:-15px;margin-left:-15px;padding:10px 15px}.control-section .spftestimonial-text-subtitle{margin-top:4px;font-size:12px}.control-section .spftestimonial-field-content,.control-section .spftestimonial-field-submessage .spftestimonial-submessage{margin-right:-15px;margin-left:-15px;padding:15px}.control-section .spftestimonial-fieldset .spftestimonial-field-heading,.control-section .spftestimonial-fieldset .spftestimonial-field-subheading,.control-section .spftestimonial-fieldset .spftestimonial-field-submessage .spftestimonial-submessage{margin-left:0;margin-right:0}.control-section .spftestimonial-field-date .spftestimonial--to{margin-left:0}.control-section .spftestimonial-field-sorter ul li{padding:5px}.control-section .spftestimonial-field-sorter .spftestimonial-modules{float:none;width:100%}.control-section .spftestimonial-field-sorter .spftestimonial-modules:first-child{padding-right:0;padding-bottom:15px}.control-section .spftestimonial-field-background .spftestimonial--select{width:100%}.control-section .spftestimonial-field-border select,.control-section .spftestimonial-field-dimensions select,.control-section .spftestimonial-field-spacing select{width:auto}.control-section .spftestimonial-field-spinner input{width:50px}.control-section .spftestimonial-field-backup .spftestimonial-export-data{display:none}.control-section .spftestimonial-field-fieldset .spftestimonial-fieldset-content{border-color:#e5e5e5}.control-section .spftestimonial-field-fieldset .spftestimonial-field{padding:10px}.control-section .spftestimonial-field-fieldset .spftestimonial-field .spftestimonial-title{margin-bottom:5px}.control-section .spftestimonial-field-fieldset .spftestimonial-field h4{font-size:12px}.control-section .spftestimonial-field-accordion .spftestimonial-field,.control-section .spftestimonial-field-group .spftestimonial-field,.control-section .spftestimonial-field-repeater .spftestimonial-field,.control-section .spftestimonial-field-sortable .spftestimonial-field,.control-section .spftestimonial-field-tabbed .spftestimonial-field{padding:10px}.control-section .spftestimonial-field-accordion .spftestimonial-field .spftestimonial-title,.control-section .spftestimonial-field-group .spftestimonial-field .spftestimonial-title,.control-section .spftestimonial-field-repeater .spftestimonial-field .spftestimonial-title,.control-section .spftestimonial-field-sortable .spftestimonial-field .spftestimonial-title,.control-section .spftestimonial-field-tabbed .spftestimonial-field .spftestimonial-title{margin-bottom:5px}.control-section .spftestimonial-field-accordion .spftestimonial-field h4,.control-section .spftestimonial-field-group .spftestimonial-field h4,.control-section .spftestimonial-field-repeater .spftestimonial-field h4,.control-section .spftestimonial-field-sortable .spftestimonial-field h4,.control-section .spftestimonial-field-tabbed .spftestimonial-field h4{font-size:12px}.control-section .spftestimonial-dependency-control.hidden{display:none!important}.spftestimonial-modal{display:none;position:fixed;z-index:100101;top:0;left:0;width:100%;height:100%}.spftestimonial-modal-icon{z-index:100102}.spftestimonial-modal-table{display:table;width:100%;height:100%}.spftestimonial-modal-table-cell{display:table-cell;vertical-align:middle;margin:100px 0}.spftestimonial-modal-inner{position:relative;z-index:10;width:760px;height:750px;margin:0 auto;background-color:#fff}.spftestimonial-modal-content{position:relative;overflow:hidden;overflow-y:auto;height:592px}.spftestimonial-modal-content .spftestimonial-shortcode-button{display:none}.spftestimonial-modal-content .spftestimonial-fieldset{margin-left:25%}.spftestimonial-modal-content .spftestimonial-title{width:20%}.spftestimonial-modal-content .spftestimonial-field{padding:15px 30px 15px 15px}.spftestimonial-modal-content a:active,.spftestimonial-modal-content a:focus{outline:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.spftestimonial-modal-content h4{font-size:13px}.spftestimonial-modal-content h4 small{font-style:italic;font-weight:400;color:#aaa}.spftestimonial-modal-title{position:relative;background-color:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:16px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}.spftestimonial-modal-header{width:100%;padding:16px 0;background-color:#f5f5f5;border-bottom:1px solid #eee}.spftestimonial-modal-header select{display:block;width:250px;margin:0 auto;background-color:#fff}.spftestimonial-modal-close{color:#666;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}.spftestimonial-modal-close:before{font:normal 20px/36px dashicons;content:"\f158";vertical-align:top;width:36px;height:36px}.spftestimonial-modal-close:hover{opacity:.5}.spftestimonial-modal-insert-wrapper{text-align:center;width:100%;padding:16px 0;background-color:#f5f5f5;border-top:1px solid #eee}.spftestimonial-modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:.5}.spftestimonial-text-desc,.spftestimonial-text-subtitle{font-weight:400;margin-top:10px;color:#999;font-style:italic}.spftestimonial-text-success{color:#2b542c}.spftestimonial-text-error{color:#d02c21}.spftestimonial-text-info{color:#31708f}.spftestimonial-text-warning{color:#ffb900}.spftestimonial-text-muted{color:#aaa}.spftestimonial-text-left{text-align:left}.spftestimonial-text-center{text-align:center}.spftestimonial-text-right{text-align:right}.spftestimonial-block-left{float:left}.spftestimonial-block-right{float:right}.spftestimonial-full-width{width:100%}.spftestimonial-full-half{width:50%}.spftestimonial-table{width:100%;display:table}.spftestimonial-table-cell{display:table-cell;vertical-align:middle}.spftestimonial-table-expanded{width:100%}.spftestimonial-nowrap{white-space:nowrap}.spftestimonial-text-highlight{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.spftestimonial-text-highlight-gray{padding:2px 4px;font-size:90%;background-color:#f0f0f0;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.spftestimonial-hidden{display:none}.spftestimonial-hide{display:none!important}.spftestimonial-show{display:block!important}.spftestimonial-opacity{opacity:.5}.spftestimonial-warning-primary{color:#fff!important;border-color:#d02c21 #ba281e #ba281e!important;background:#e14d43!important;-moz-box-shadow:0 1px 0 #ba281e!important;-webkit-box-shadow:0 1px 0 #ba281e!important;box-shadow:0 1px 0 #ba281e!important;text-shadow:0 -1px 1px #ba281e,1px 0 1px #ba281e,0 1px 1px #ba281e,-1px 0 1px!important;text-shadow:0 -1px 1px #ba281e,1px 0 1px #ba281e,0 1px 1px #ba281e,-1px 0 1px #ba281e!important}.spftestimonial-warning-primary:focus,.spftestimonial-warning-primary:hover{border-color:#ba281e!important;background:#e35950!important;-moz-box-shadow:0 1px 0 #ba281e!important;-webkit-box-shadow:0 1px 0 #ba281e!important;box-shadow:0 1px 0 #ba281e!important}.spftestimonial-warning-primary:active{border-color:#ba281e!important;background:#d02c21!important;-moz-box-shadow:inset 0 2px 0 #ba281e!important;-webkit-box-shadow:inset 0 2px 0 #ba281e!important;box-shadow:inset 0 2px 0 #ba281e!important}.spftestimonial-form-result{display:none;padding:12px;margin:0 0 15px 0;background-color:#fff;border-left:4px solid #555;-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1)}.spftestimonial-form-show{display:block}.spftestimonial-form-error{border-left-color:#dc3232}.spftestimonial-form-success{border-left-color:#46b450}.spftestimonial-form-warning{border-left-color:#ffb900}.spftestimonial-form-info{border-left-color:#00a0d2}.spftestimonial-label-error{position:relative;top:-2px;display:inline-block;font-size:10px;line-height:10px;height:10px;width:10px;padding:1px;font-style:normal;text-align:center;color:#fff;vertical-align:middle;background-color:#e10000;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.spftestimonial-no-option{padding:30px}@media only screen and (max-width:1200px){.spftestimonial-metabox .spftestimonial-field .spftestimonial-title{float:none;width:100%;margin-bottom:10px}.spftestimonial-metabox .spftestimonial-field .spftestimonial-fieldset{margin-left:0}}@media only screen and (max-width:782px){.spftestimonial-header-inner{text-align:center}.spftestimonial-header-inner h1{width:100%;margin-bottom:10px}.spftestimonial-header-left,.spftestimonial-header-right,.spftestimonial-search{width:100%}.spftestimonial-search{text-align:center;margin-bottom:15px}.spftestimonial-footer{text-align:center}.spftestimonial-buttons{float:none}.spftestimonial-copyright{float:none;margin-top:10px}.spftestimonial-expand-all,.spftestimonial-nav,.spftestimonial-nav-background,.spftestimonial-reset-section{display:none!important}.spftestimonial-content{margin-left:0}.spftestimonial-section,.spftestimonial-section-title{display:block!important}.spftestimonial-field .spftestimonial-title{float:none;width:100%;margin-bottom:10px}.spftestimonial-field .spftestimonial-fieldset{margin-left:0}.spftestimonial-modal-inner{width:350px;height:380px}.spftestimonial-modal-content{height:282px}.spftestimonial-icon-dialog .spftestimonial-modal-inner{width:305px;height:380px}.spftestimonial-icon-dialog .spftestimonial-modal-content{height:267px}.spftestimonial-modal-icon .spftestimonial-modal-inner{width:330px;height:385px}.spftestimonial-modal-icon .spftestimonial-modal-content{height:252px}.spftestimonial-profile>.spftestimonial-field>.spftestimonial-title{float:none;width:100%;margin-bottom:10px}.spftestimonial-profile>.spftestimonial-field>.spftestimonial-fieldset{margin-left:0}}.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;user-select:none}.chosen-container *{box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15);clip:rect(0,0,0,0);clip-path:inset(100% 100%)}.chosen-container.chosen-with-drop .chosen-drop{clip:auto;clip-path:none}.chosen-container a{cursor:pointer}.chosen-container .chosen-single .group-name,.chosen-container .search-choice .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#999}.chosen-container .chosen-single .group-name:after,.chosen-container .search-choice .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;font-size:1px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;clip:rect(0,0,0,0);clip-path:inset(100% 100%)}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto;border:1px solid #aaa;background-color:#fff;background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;height:25px;outline:0;border:0!important;background:0 0!important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0;width:25px}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 6px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:0;right:0;display:block;width:12px;height:12px;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;border-bottom-right-radius:0;border-bottom-left-radius:0;background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:0 0}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;direction:rtl}.sp-tpro-client-rating{float:left}.sp-tpro-client-rating:not(:checked)>input{visibility:hidden;display:none;width:0;height:0;float:right;top:100%;clip:rect(0,0,0,0);margin:0;padding:0;border:10px #fff solid}.sp-tpro-client-rating:not(:checked)>label{float:right;display:block;padding:0;margin:0;cursor:pointer;font-size:150%;line-height:1.2;color:#d4d4d4;width:1em}.sp-tpro-client-rating>input:checked~label{color:#f3bb00}.sp-tpro-client-rating:not(:checked)>label:hover,.sp-tpro-client-rating:not(:checked)>label:hover~label{color:#de7202}.sp-tpro-client-rating>input:checked+label:hover,.sp-tpro-client-rating>input:checked+label:hover~label,.sp-tpro-client-rating>input:checked~label:hover,.sp-tpro-client-rating>input:checked~label:hover~label,.sp-tpro-client-rating>label:hover~input:checked~label{color:#de7202}.spftestimonial-metabox .sp-tpro-banner{background-color:#2684a6;padding:22px 28px;overflow:hidden;background-image:-webkit-gradient(linear,left top,right top,from(#2684a6),to(#52b3d9));background-image:linear-gradient(to right,#2684a6,#52b3d9)}.spftestimonial-metabox .sp-tpro-logo{float:left}.spftestimonial-metabox .sp-tpro-logo img{display:block;width:182px}.spftestimonial-metabox .sp-tpro-short-links{float:right;line-height:30px}.spftestimonial-metabox .sp-tpro-short-links a{color:#fff;text-decoration:none;margin-left:16px;font-size:15px}.spftestimonial-metabox .sp-tpro-short-links a i.fa{margin-right:7px}.sp-testimonial-shortcode-divider{height:20px;background:#f1f1f1;border-top:1px solid #ddd}.spftestimonial-metabox .tpro_shortcode{display:inline-flex;width:100%;background-color:#fffdfd}.tpro_shortcode .tpro-col-lg-3{border-right:1px solid #ddd;width:33.33%}.tpro_shortcode .tpro-col-lg-3 .tpro_shortcode_content{padding:42px 16px}.tpro_shortcode .tpro-col-lg-3:last-child .tpro_shortcode_content{padding:42px 16px 0 16px}.tpro_shortcode .tpro-col-lg-3 .tpro_shortcode_content .tpro-sc-code{background-color:rgba(82,179,217,.11);padding:10px 15px;display:inline-block}.tpro_shortcode .tpro-col-lg-3:last-child{border-right:none}.tpro_shortcode .tpro-col-lg-3 .tpro-shortcode-title{font-weight:500;font-size:17px!important;padding-top:0!important;color:#4c5158}.tpro_shortcode .tpro-col-lg-3 p{margin-top:2px;color:#4c5158}.tpro_shortcode .tpro-col-lg-3 .back-image{max-width:100%;display:block;margin:0 auto}.tpro_shortcode .tpro-col-lg-3 textarea{border-color:transparent;box-shadow:none;background-color:#eee;padding:4px 6px;resize:none;text-align:center;max-width:100%}#poststuff .sp-tfree-upgrade-body .sp-tfree-section-title{padding:13px 30px;font-size:28px;line-height:1;font-weight:700;color:#2e9cc7;text-transform:uppercase;margin-bottom:0;margin-top:0}#poststuff .sp-tfree-upgrade-body .sp-tfree-section-feature-icon{padding:30px 30px 0 30px}.sp-tfree-upgrade-body .tfree-option{padding:30px 30px;border-bottom:1px solid #efefef}.sp-tfree-upgrade-body .tfree-option:nth-child(2n+0){background-color:#fafafa}.sp-tfree-upgrade-header .tfree-overlay-color{background:#2684a6;position:absolute;width:100%;height:100%;top:0;left:0;z-index:1}.sp-tfree-upgrade-header{overflow:hidden;padding:43px 40px;position:relative}.sp-tfree-upgrade-header .sp-tfree-container{position:relative;z-index:2}.sp-tfree-upgrade-header .free-upgrade-btn{font-size:15px;color:#fff;border-radius:0;border:0;height:auto!important;line-height:24px!important;padding:13px 18px!important;text-align:center;font-weight:500}.sp-tfree-upgrade-header .sp-tfree-col-lg-7{width:58.33333333%;float:left}.sp-tfree-upgrade-header .sp-tfree-col-lg-5{width:41.66666667%;float:left;text-align:right}.sp-tfree-upgrade-header .sp-tfree-upgrade-title{margin:0;padding:0;font-size:24px;font-weight:700;color:#fff}.sp-tfree-upgrade-header .sp-tfree-upgrade-subtitle{font-size:15px;font-weight:500;margin-top:10px;margin-bottom:0;color:#fff}.sp-tfree-upgrade-footer .free-upgrade-btn.demo-btn,.sp-tfree-upgrade-footer .free-upgrade-btn.upgrade-btn{font-family:Raleway,sans-serif;box-shadow:none;border:0;color:#fff;border-radius:0;font-size:16px;font-weight:500;height:auto!important;line-height:24px!important;padding:13px 20px!important;text-align:center}.sp-tfree-upgrade-footer .upgrade-btn,.sp-tfree-upgrade-header .upgrade-btn{background-color:#3cb371;box-shadow:0 1px 26px -3px #333;margin-right:14px}.sp-tfree-upgrade-footer .free-upgrade-btn.upgrade-btn:focus,.sp-tfree-upgrade-footer .upgrade-btn:hover,.sp-tfree-upgrade-header .free-upgrade-btn.upgrade-btn:focus,.sp-tfree-upgrade-header .upgrade-btn:hover{background:#26a55f;color:#fff}.sp-tfree-upgrade-footer .demo-btn,.sp-tfree-upgrade-header .demo-btn{background-color:#52b3d9;box-shadow:0 1px 26px -3px #333}.sp-tfree-upgrade-footer .demo-btn:hover,.sp-tfree-upgrade-footer .free-upgrade-btn.demo-btn:focus,.sp-tfree-upgrade-header .demo-btn:hover,.sp-tfree-upgrade-header .free-upgrade-btn.demo-btn:focus{background:#2e9cc7;color:#fff}.sp-tfree-upgrade-footer h2,.sp-tfree-upgrade-header h1,.sp-tfree-upgrade-header h4,.sp-tfree-upgrade-header p{color:#fff;font-family:Raleway,sans-serif}#poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h2{font-size:28px;padding-top:40px;padding-left:0;text-transform:uppercase;font-weight:700;padding-bottom:0}#poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h4{line-height:24px}.sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h4{font-size:20px;font-weight:600;margin-bottom:20px;line-height:1.1}#poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h2,.sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h4{color:#7c848e}.sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 p{font-size:15px;color:#444;margin-top:10px}.sp-tfree-mbf-tab-content .sp-tfree-col-lg-2{width:50%;float:left}.sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 .sp-tfree-content{font-family:Raleway,sans-serif;padding:25px}.sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 img{width:100%}.sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 .sp-tfree-content img{box-shadow:0 0 20px 0 #aaa}.sp-tfree-mbf-tab-content .sp-tfree-col-lg-2 h4{margin-top:.33em}.sp-tfree-mbf-tab-content .tfree-option:after{content:"";display:table;clear:both}.sp-tfree-mbf-tab-content .sp-tfree-video-tutorial{padding:30px 80px 50px}.sp-tfree-mbf-tab-content .sp-tfree-video-tutorial-video{position:relative;padding-bottom:56.4%;width:100%;max-width:100%;height:0;text-align:center}.sp-tfree-mbf-tab-content .sp-tfree-video-tutorial-video iframe{position:absolute;top:0;left:0;width:100%;height:100%}#poststuff .sp-tfree-mbf-tab-content .sp-tfree-video-tutorial h2{font-size:30px;font-weight:600;color:#444;margin-bottom:20px}.sp-tfree-mbf-tab-content .tfree-option:after,.sp-tfree-mbf-tab-content .tfree-option:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.sp-tfree-upgrade-footer{padding:60px 40px 40px 40px}.sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer{font-family:Raleway,sans-serif;color:#fff;position:relative;z-index:1}.sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer .tfree-overlay-color{position:absolute;width:100%;height:100%;top:0;left:0;z-index:-1;background:#2684a6}#poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer h2{font-size:28px;margin-top:12px;font-weight:700}.sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer p{margin-top:0}.sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer p{margin-top:0;margin-bottom:34px}.sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer a{margin-bottom:20px}.sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer p{font-size:18px;font-weight:500}@media (max-width:1200px){.sp-tfree-metabox-framework .sp-tfree-mbf{display:block}.sp-tfree-mbf-tab-content .sp-tfree-col-lg-2{width:100%;float:none}#poststuff .sp-tfree-mbf-tab-content .sp-tfree-upgrade-body .sp-tfree-col-lg-2 h2{padding-top:0}.sp-tfree-mbf-tab-content .sp-tfree-col-lg-2:last-of-type .sp-tfree-content{padding-top:0;padding-bottom:40px}.sp-tfree-element .sp-tfree-input-field,.sp-tfree-element .sp-tfree-input-label,.sp-tfree-mbf .sp-tfree-col-lg-3{width:100%}.sp-tfree-mbf .sp-tfree-col-lg-3{display:block;border-bottom:1px solid #e5e5e5;padding-bottom:15px;border-right:none}.sp-tfree-mbf .sp-tfree-col-lg-3:last-of-type{border-bottom:none;padding-bottom:0}.sp-tfree-upgrade-header .sp-tfree-col-lg-7{width:100%;float:none}.sp-tfree-upgrade-header .sp-tfree-col-lg-5{width:100%;float:none;text-align:center}.sp-tfree-upgrade-header .sp-tfree-container{text-align:center}.sp-tfree-upgrade-header .sp-tfree-upgrade-subtitle{margin-bottom:20px}}@media (max-width:1024px){.sp-tfree-upgrade-footer .demo-btn,.sp-tfree-upgrade-footer .upgrade-btn,.sp-tfree-upgrade-header .demo-btn,.sp-tfree-upgrade-header .upgrade-btn{margin:0 auto;display:block}.sp-tfree-mbf-tab-content .sp-tfree-upgrade-footer a.upgrade-btn,.sp-tfree-mbf-tab-content .sp-tfree-upgrade-header a.upgrade-btn,.sp-tfree-upgrade-header .sp-tfree-upgrade-subtitle{margin-bottom:20px}.sp-tfree-upgrade-header .sp-tfree-col-lg-7{width:100%;float:none}.sp-tfree-upgrade-header .sp-tfree-col-lg-5{width:100%;float:none;text-align:center}.sp-tfree-upgrade-header .sp-tfree-container{text-align:center}}.sp-testimonial-shortcode{background-color:rgba(82,179,217,.11);padding:8px 12px;display:inline-block;margin-left:8px}.selectable{-webkit-touch-callout:all;-webkit-user-select:all;-khtml-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all}.js #sp_tpro_meta_options.postbox .handlediv,.js #sp_tpro_meta_options.postbox .hndle,.js #sp_tpro_shortcode_options.postbox .handlediv,.js #sp_tpro_shortcode_options.postbox .hndle{display:none}.sp-testimonial-font-color .wp-picker-container,.sp-testimonial-font-load .spftestimonial--switcher{pointer-events:none;opacity:.6}#sp_tpro_shortcode_options .spftestimonial-metabox .spftestimonial-nav ul li:last-of-type a{background-color:#35b135}#sp_tpro_shortcode_options .spftestimonial-metabox .spftestimonial-nav ul li:last-of-type .spftestimonial-section-active{color:#35b135;background-color:#fff;box-shadow:0 3px 0 0 #35b135 inset}#sp_tpro_shortcode_options .spftestimonial-metabox .sp