Changeset 3429722
- Timestamp:
- 12/30/2025 04:10:38 PM (3 months ago)
- Location:
- lenochat/trunk
- Files:
-
- 4 edited
-
admin/assets/css/font.css (modified) (1 diff)
-
admin/assets/css/main.css (modified) (1 diff)
-
lenochat.php (modified) (4 diffs)
-
readme.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lenochat/trunk/admin/assets/css/font.css
r3295761 r3429722 1 1 /* inter-300 - latin */ 2 2 @font-face { 3 font-display: swap;4 font-family: "Inter";5 font-style: normal;6 font-weight: 300;7 src: url("../fonts/inter-v18-latin-300.woff2") format("woff2");3 font-display: swap; 4 font-family: 'Inter'; 5 font-style: normal; 6 font-weight: 300; 7 src: url('../fonts/inter-v18-latin-300.woff2') format('woff2'); 8 8 } 9 9 /* inter-regular - latin */ 10 10 @font-face { 11 font-display: swap;12 font-family: "Inter";13 font-style: normal;14 font-weight: 400;15 src: url("../fonts/inter-v18-latin-regular.woff2") format("woff2");11 font-display: swap; 12 font-family: 'Inter'; 13 font-style: normal; 14 font-weight: 400; 15 src: url('../fonts/inter-v18-latin-regular.woff2') format('woff2'); 16 16 } 17 17 /* inter-500 - latin */ 18 18 @font-face { 19 font-display: swap;20 font-family: "Inter";21 font-style: normal;22 font-weight: 500;23 src: url("../fonts/inter-v18-latin-500.woff2") format("woff2");19 font-display: swap; 20 font-family: 'Inter'; 21 font-style: normal; 22 font-weight: 500; 23 src: url('../fonts/inter-v18-latin-500.woff2') format('woff2'); 24 24 } 25 25 /* inter-600 - latin */ 26 26 @font-face { 27 font-display: swap;28 font-family: "Inter";29 font-style: normal;30 font-weight: 600;31 src: url("../fonts/inter-v18-latin-600.woff2") format("woff2");27 font-display: swap; 28 font-family: 'Inter'; 29 font-style: normal; 30 font-weight: 600; 31 src: url('../fonts/inter-v18-latin-600.woff2') format('woff2'); 32 32 } 33 33 /* inter-700 - latin */ 34 34 @font-face { 35 font-display: swap;36 font-family: "Inter";37 font-style: normal;38 font-weight: 700;39 src: url("../fonts/inter-v18-latin-700.woff2") format("woff2");35 font-display: swap; 36 font-family: 'Inter'; 37 font-style: normal; 38 font-weight: 700; 39 src: url('../fonts/inter-v18-latin-700.woff2') format('woff2'); 40 40 } -
lenochat/trunk/admin/assets/css/main.css
r3295761 r3429722 1 1 html, 2 2 body { 3 height: 100%;4 margin: 0;5 padding: 0;3 height: 100%; 4 margin: 0; 5 padding: 0; 6 6 } 7 7 8 8 body { 9 display: flex;10 flex-direction: column;11 font-family: "Inter", sans-serif;12 color: #252423;13 background: #f4f5f7;9 display: flex; 10 flex-direction: column; 11 font-family: 'Inter', sans-serif; 12 color: #252423; 13 background: #f4f5f7; 14 14 } 15 15 16 16 .main { 17 position: relative;18 flex: 1;19 display: flex;20 flex-direction: column;21 justify-content: center;22 align-items: center;23 padding-block: 50px;24 padding-right: 20px;17 position: relative; 18 flex: 1; 19 display: flex; 20 flex-direction: column; 21 justify-content: center; 22 align-items: center; 23 padding-block: 50px; 24 padding-right: 20px; 25 25 } 26 26 27 27 .wrapper { 28 width: 100%;29 max-width: 500px;30 background: white;31 padding: 20px;32 box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);33 border-radius: 12px;28 width: 100%; 29 max-width: 500px; 30 background: white; 31 padding: 20px; 32 box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); 33 border-radius: 12px; 34 34 } 35 35 36 36 .banner { 37 text-align: center;38 margin-bottom: 20px;37 text-align: center; 38 margin-bottom: 20px; 39 39 } 40 40 41 41 .banner a { 42 box-shadow: none;42 box-shadow: none; 43 43 } 44 44 45 45 .lenochatBanner { 46 max-width: 100%;47 height: auto;48 cursor: pointer;49 transition: opacity 0.2s ease;46 max-width: 100%; 47 height: auto; 48 cursor: pointer; 49 transition: opacity 0.2s ease; 50 50 } 51 51 52 52 .lenochatBanner:hover { 53 opacity: 0.75;53 opacity: 0.75; 54 54 } 55 55 56 56 .fieldContainer { 57 display: flex;58 flex-direction: column;59 gap: 24px;60 margin-block: 30px;57 display: flex; 58 flex-direction: column; 59 gap: 24px; 60 margin-block: 30px; 61 61 } 62 62 63 63 .inputLabel { 64 font-size: 13px;65 font-weight: 500;66 margin-bottom: 4px;64 font-size: 13px; 65 font-weight: 500; 66 margin-bottom: 4px; 67 67 } 68 68 69 69 .passwordContainer { 70 display: flex;71 justify-content: space-between;72 align-items: center;73 margin-bottom: 4px;70 display: flex; 71 justify-content: space-between; 72 align-items: center; 73 margin-bottom: 4px; 74 74 } 75 75 76 76 .passwordVisibilityButton { 77 position: absolute;78 right: 10px;79 top: 10px;77 position: absolute; 78 right: 10px; 79 top: 10px; 80 80 } 81 81 82 82 .linkContainer { 83 display: flex;84 justify-content: center;85 gap: 10px;86 margin-top: 5px;83 display: flex; 84 justify-content: center; 85 gap: 10px; 86 margin-top: 5px; 87 87 } 88 88 89 89 .link { 90 font-size: 13px;91 color: #0078d4;92 text-decoration: none;93 font-weight: 500;90 font-size: 13px; 91 color: #0078d4; 92 text-decoration: none; 93 font-weight: 500; 94 94 } 95 95 96 96 .link:hover { 97 text-decoration: underline;97 text-decoration: underline; 98 98 } 99 99 100 100 .inputField { 101 width: 100%;102 font-size: 13px;103 padding-inline: 10px;104 height: 48px;105 border-radius: 8px !important;106 border: 1px solid #dcdcdc !important;107 background: white;101 width: 100%; 102 font-size: 13px; 103 padding-inline: 10px; 104 height: 48px; 105 border-radius: 8px !important; 106 border: 1px solid #dcdcdc !important; 107 background: white; 108 108 } 109 109 110 110 .inputSubmit { 111 display: inline-flex;112 align-items: center;113 justify-content: center;114 height: 48px;115 width: 100%;116 line-height: 16px;117 border-radius: 24px;118 font-weight: 500;119 font-size: 16px;120 padding-inline: 20px;121 background: #0078d4;122 color: white;123 border: none;124 cursor: pointer;111 display: inline-flex; 112 align-items: center; 113 justify-content: center; 114 height: 48px; 115 width: 100%; 116 line-height: 16px; 117 border-radius: 24px; 118 font-weight: 500; 119 font-size: 16px; 120 padding-inline: 20px; 121 background: #0078d4; 122 color: white; 123 border: none; 124 cursor: pointer; 125 125 } 126 126 127 127 .inputSubmit:hover { 128 background: #095a97;128 background: #095a97; 129 129 } 130 130 131 131 .languageMenu { 132 margin-top: 25px;133 text-align: center;134 margin-bottom: 20px;132 margin-top: 25px; 133 text-align: center; 134 margin-bottom: 20px; 135 135 } 136 136 137 137 .description { 138 margin-top: 10px;139 font-size: 13px;140 line-height: 18px;141 font-weight: 300;138 margin-top: 10px; 139 font-size: 13px; 140 line-height: 18px; 141 font-weight: 300; 142 142 } 143 143 144 144 .licenseNumber { 145 text-decoration: underline;145 text-decoration: underline; 146 146 } 147 147 148 148 .logoutButtonContainer { 149 position: absolute;150 top: 10px;151 right: 0px;149 position: absolute; 150 top: 10px; 151 right: 0px; 152 152 } 153 153 154 154 .logoutButton { 155 display: inline-flex;156 align-items: center;157 justify-content: center;158 height: 32px;159 line-height: 16px;160 border-radius: 16px;161 font-weight: 300;162 font-size: 12px;163 padding-inline: 20px;164 background: white;165 color: #0078d4;166 border: 1px solid #0078d4;167 cursor: pointer;155 display: inline-flex; 156 align-items: center; 157 justify-content: center; 158 height: 32px; 159 line-height: 16px; 160 border-radius: 16px; 161 font-weight: 300; 162 font-size: 12px; 163 padding-inline: 20px; 164 background: white; 165 color: #0078d4; 166 border: 1px solid #0078d4; 167 cursor: pointer; 168 168 } 169 169 170 170 .logoutButton:hover { 171 background: #0078d4;172 color: white;171 background: #0078d4; 172 color: white; 173 173 } 174 174 175 175 .widgetToggleContainer { 176 display: flex;177 justify-content: space-between;178 margin-top: 10px;179 margin-bottom: 50px;180 padding-block: 10px;181 border-block: 1px solid #dcdcdc;176 display: flex; 177 justify-content: space-between; 178 margin-top: 10px; 179 margin-bottom: 50px; 180 padding-block: 10px; 181 border-block: 1px solid #dcdcdc; 182 182 } 183 183 184 184 .toggleLabel { 185 font-size: 13px;186 line-height: 18px;187 font-weight: 700;185 font-size: 13px; 186 line-height: 18px; 187 font-weight: 700; 188 188 } 189 189 190 190 .switch { 191 position: relative;192 display: inline-block;193 width: 56px;194 height: 22px;191 position: relative; 192 display: inline-block; 193 width: 56px; 194 height: 22px; 195 195 } 196 196 197 197 .switch input { 198 opacity: 0;199 width: 0;200 height: 0;198 opacity: 0; 199 width: 0; 200 height: 0; 201 201 } 202 202 203 203 .slider { 204 position: absolute;205 cursor: pointer;206 inset: 0;207 background-color: #ccc;208 transition: 0.4s;209 border-radius: 28px;204 position: absolute; 205 cursor: pointer; 206 inset: 0; 207 background-color: #ccc; 208 transition: 0.4s; 209 border-radius: 28px; 210 210 } 211 211 212 212 .slider:before { 213 position: absolute; 214 content: ""; 215 height: 18px; 216 width: 18px; 217 left: 2px; 218 bottom: 2px; 219 background-color: white; 220 border-radius: 50%; 221 box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 222 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12); 213 position: absolute; 214 content: ''; 215 height: 18px; 216 width: 18px; 217 left: 2px; 218 bottom: 2px; 219 background-color: white; 220 border-radius: 50%; 221 box-shadow: 222 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 223 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 224 0px 1px 3px 0px rgba(0, 0, 0, 0.12); 223 225 } 224 226 225 227 .slider:after { 226 content: "OFF";227 position: absolute;228 font-size: 12px;229 line-height: 22px;230 font-weight: 300;231 right: 11px;232 font-size: 10px;233 color: #ffffff;234 } 235 236 input:checked +.slider {237 background-color: #4bb678;238 } 239 240 input:unchecked +.slider {241 background-color: #9f9f9f;242 } 243 244 input:checked +.slider:before {245 transform: translateX(34px);246 } 247 248 input:checked +.slider:after {249 content: "ON";250 left: 11px;251 } 228 content: 'OFF'; 229 position: absolute; 230 font-size: 12px; 231 line-height: 22px; 232 font-weight: 300; 233 right: 11px; 234 font-size: 10px; 235 color: #ffffff; 236 } 237 238 input:checked + .slider { 239 background-color: #4bb678; 240 } 241 242 input:unchecked + .slider { 243 background-color: #9f9f9f; 244 } 245 246 input:checked + .slider:before { 247 transform: translateX(34px); 248 } 249 250 input:checked + .slider:after { 251 content: 'ON'; 252 left: 11px; 253 } -
lenochat/trunk/lenochat.php
r3397037 r3429722 4 4 * 5 5 * @link http://www.lenochat.com 6 * @since 1.0. 36 * @since 1.0.4 7 7 * @package LenoChat 8 8 * … … 11 11 * Plugin URI: http://www.lenochat.com 12 12 * Description: Real-Time Conversations Made Simple! Enjoy engaging with your website visitors in real-time using LenoChat. Max out Customer Experience & Skyrocket Your Business Growth Deliver better support, faster responses, and stronger connections. 13 * Version: 1.0. 313 * Version: 1.0.4 14 14 * Author: LenoChat 15 15 * Author URI: https://www.lenochat.com … … 24 24 25 25 // Define constants for the plugin 26 define("LENOCHAT_VERSION", "1.0. 3");26 define("LENOCHAT_VERSION", "1.0.4"); 27 27 define("LENOCHAT_PLUGIN_DIR", plugin_dir_path(__FILE__)); 28 28 define("LENOCHAT_PLUGIN_URL", plugin_dir_url(__FILE__)); … … 84 84 $license = is_string($license) ? esc_js($license) : ""; 85 85 86 // Register the inline script that sets up the config87 wp_register_script("lenochat- config", "", [], LENOCHAT_VERSION, false);86 // Use IIFE pattern for dynamic script injection 87 wp_register_script("lenochat-loader", "", [], LENOCHAT_VERSION, false); 88 88 wp_add_inline_script( 89 "lenochat- config",89 "lenochat-loader", 90 90 'window.__yoda = window.__yoda || {}; 91 window.__yoda.license = "' . 92 $license . 93 '"; 94 window.__yoda.platform = 20;' 91 window.__yoda.license = ' . $license . '; 92 window.__yoda.platform = 20; 93 (function () { 94 var yoda_time = Math.round(new Date().getTime() / 1000); 95 var yoda_lc = document.createElement("script"); 96 yoda_lc.type = "text/javascript"; 97 yoda_lc.async = true; 98 yoda_lc.src = "' . $lenochat_js_url . '?d=" + yoda_time; 99 var s = document.getElementsByTagName("script")[0]; 100 s.parentNode.insertBefore(yoda_lc, s); 101 })();' 95 102 ); 96 103 97 // Enqueue the main script with version parameter 98 $timestamp = absint(time()); 99 wp_enqueue_script("lenochat-main", $lenochat_js_url . "?d=" . $timestamp, ["lenochat-config"], LENOCHAT_VERSION, ["strategy" => "async"]); 100 101 // Enqueue the config script to ensure it loads first 102 wp_enqueue_script("lenochat-config"); 104 wp_enqueue_script("lenochat-loader"); 103 105 } catch (Exception $e) { 104 106 // Silently exit on error -
lenochat/trunk/readme.txt
r3397037 r3429722 5 5 Requires PHP: 7.2 6 6 Tested up to: 6.8 7 Stable tag: 1.0. 37 Stable tag: 1.0.4 8 8 Donate link: https://www.lenochat.com 9 9 License: GPL-2.0+
Note: See TracChangeset
for help on using the changeset viewer.