Plugin Directory

Changeset 3429722


Ignore:
Timestamp:
12/30/2025 04:10:38 PM (3 months ago)
Author:
lenochat
Message:

Update to version 1.0.4

Location:
lenochat/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • lenochat/trunk/admin/assets/css/font.css

    r3295761 r3429722  
    11/* inter-300 - latin */
    22@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');
    88}
    99/* inter-regular - latin */
    1010@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');
    1616}
    1717/* inter-500 - latin */
    1818@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');
    2424}
    2525/* inter-600 - latin */
    2626@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');
    3232}
    3333/* inter-700 - latin */
    3434@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');
    4040}
  • lenochat/trunk/admin/assets/css/main.css

    r3295761 r3429722  
    11html,
    22body {
    3     height: 100%;
    4     margin: 0;
    5     padding: 0;
     3    height: 100%;
     4    margin: 0;
     5    padding: 0;
    66}
    77
    88body {
    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;
    1414}
    1515
    1616.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;
    2525}
    2626
    2727.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;
    3434}
    3535
    3636.banner {
    37     text-align: center;
    38     margin-bottom: 20px;
     37    text-align: center;
     38    margin-bottom: 20px;
    3939}
    4040
    4141.banner a {
    42     box-shadow: none;
     42    box-shadow: none;
    4343}
    4444
    4545.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;
    5050}
    5151
    5252.lenochatBanner:hover {
    53     opacity: 0.75;
     53    opacity: 0.75;
    5454}
    5555
    5656.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;
    6161}
    6262
    6363.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;
    6767}
    6868
    6969.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;
    7474}
    7575
    7676.passwordVisibilityButton {
    77     position: absolute;
    78     right: 10px;
    79     top: 10px;
     77    position: absolute;
     78    right: 10px;
     79    top: 10px;
    8080}
    8181
    8282.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;
    8787}
    8888
    8989.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;
    9494}
    9595
    9696.link:hover {
    97     text-decoration: underline;
     97    text-decoration: underline;
    9898}
    9999
    100100.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;
    108108}
    109109
    110110.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;
    125125}
    126126
    127127.inputSubmit:hover {
    128     background: #095a97;
     128    background: #095a97;
    129129}
    130130
    131131.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;
    135135}
    136136
    137137.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;
    142142}
    143143
    144144.licenseNumber {
    145     text-decoration: underline;
     145    text-decoration: underline;
    146146}
    147147
    148148.logoutButtonContainer {
    149     position: absolute;
    150     top: 10px;
    151     right: 0px;
     149    position: absolute;
     150    top: 10px;
     151    right: 0px;
    152152}
    153153
    154154.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;
    168168}
    169169
    170170.logoutButton:hover {
    171     background: #0078d4;
    172     color: white;
     171    background: #0078d4;
     172    color: white;
    173173}
    174174
    175175.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;
    182182}
    183183
    184184.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;
    188188}
    189189
    190190.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;
    195195}
    196196
    197197.switch input {
    198     opacity: 0;
    199     width: 0;
    200     height: 0;
     198    opacity: 0;
     199    width: 0;
     200    height: 0;
    201201}
    202202
    203203.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;
    210210}
    211211
    212212.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);
    223225}
    224226
    225227.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
     238input:checked + .slider {
     239    background-color: #4bb678;
     240}
     241
     242input:unchecked + .slider {
     243    background-color: #9f9f9f;
     244}
     245
     246input:checked + .slider:before {
     247    transform: translateX(34px);
     248}
     249
     250input:checked + .slider:after {
     251    content: 'ON';
     252    left: 11px;
     253}
  • lenochat/trunk/lenochat.php

    r3397037 r3429722  
    44 *
    55 * @link              http://www.lenochat.com
    6  * @since             1.0.3
     6 * @since             1.0.4
    77 * @package           LenoChat
    88 *
     
    1111 * Plugin URI:        http://www.lenochat.com
    1212 * 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.3
     13 * Version:           1.0.4
    1414 * Author:            LenoChat
    1515 * Author URI:        https://www.lenochat.com
     
    2424
    2525// Define constants for the plugin
    26 define("LENOCHAT_VERSION", "1.0.3");
     26define("LENOCHAT_VERSION", "1.0.4");
    2727define("LENOCHAT_PLUGIN_DIR", plugin_dir_path(__FILE__));
    2828define("LENOCHAT_PLUGIN_URL", plugin_dir_url(__FILE__));
     
    8484            $license = is_string($license) ? esc_js($license) : "";
    8585
    86             // Register the inline script that sets up the config
    87             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);
    8888            wp_add_inline_script(
    89                 "lenochat-config",
     89                "lenochat-loader",
    9090                '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                })();'
    95102            );
    96103
    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");
    103105        } catch (Exception $e) {
    104106            // Silently exit on error
  • lenochat/trunk/readme.txt

    r3397037 r3429722  
    55Requires PHP: 7.2
    66Tested up to: 6.8
    7 Stable tag: 1.0.3
     7Stable tag: 1.0.4
    88Donate link: https://www.lenochat.com
    99License: GPL-2.0+
Note: See TracChangeset for help on using the changeset viewer.