Plugin Directory

Changeset 2708021

Timestamp:
04/11/2022 12:11:56 PM (2 years ago)
Author:
iamjafran
Message:

releasing version 1.0.2

Location:
social-contact-form
Files:
90 added
22 edited

Legend:

Unmodified
Added
Removed
  • social-contact-form/trunk/includes/admin/class.hooks.php

    r2706384 r2708021  
    149149            wp_enqueue_style('social-contact-form-frontend', SCF_PUBLIC . '/css/frontend.min.css', time());
    150150            wp_enqueue_script('social-contact-form-admin', SCF_PUBLIC . '/js/admin.min.js', array('jquery'), time(), true);
     151
     152
    151153
    152154            wp_localize_script(
     
    165167                    'development' => scf_is_dev(),
    166168                    'fields' => App::fields(),
     169
    167170                )
    168171            );
     
    213216                $links[] = '<a href="' . admin_url('admin.php?page=scf') . '">' . __('Settings', 'social-contact-form') . '</a>';
    214217            } else {
    215                 $links[] = '<a href="https://wppool.dev/social-contact-form/?ref=' . esc_url(home_url()) . '" target="_blank" style="color: #b32d2e;">' . __('Upgrade', 'social-contact-form') . '</a>';
     218                $links[] = '<a href="https:///?ref=' . esc_url(home_url()) . '" target="_blank" style="color: #b32d2e;">' . __('Upgrade', 'social-contact-form') . '</a>';
    216219            }
    217220            return $links;
  • social-contact-form/trunk/includes/class.app.php

    r2706384 r2708021  
    108108
    109109            $fonts = array(
     110
    110111                'Arial' => __('Arial', 'social-contact-form'),
    111112                'Arial Black' => __('Arial Black', 'social-contact-form'),
    112                 'Comic Sans MS' => __('Comic Sans MS', 'social-contact-form'),
     113                'Comic Sans' => __('Comic Sans MS', 'social-contact-form'),
    113114                'Courier New' => __('Courier New', 'social-contact-form'),
    114115                'Georgia' => __('Georgia', 'social-contact-form'),
    115116                'Lucida Console' => __('Lucida Console', 'social-contact-form'),
    116                 'Lucida Sans Unicode' => __('Lucida Sans Unicode', 'social-contact-form'),
     117                'Lucida Sans', 'social-contact-form'),
    117118                'Tahoma' => __('Tahoma', 'social-contact-form'),
    118119                'Times New Roman' => __('Times New Roman', 'social-contact-form'),
    119                 'Trebuchet MS' => __('Trebuchet MS', 'social-contact-form'),
     120                'Trebuchet', 'social-contact-form'),
    120121                'Verdana' => __('Verdana', 'social-contact-form'),
    121122                'Ubuntu' => __('Ubuntu', 'social-contact-form'),
  • social-contact-form/trunk/plugin.php

    r2706384 r2708021  
    22/**
    33 * plugin name: Social Contact Form
    4  * plugin URI: https://wppool.dev/social-contact-form
     4 * plugin URI: https://wppool.dev/social-contact-form
    55 * Description: Add a contact form on your website that sends form leads directly to your WhatsApp web or mobile, including WooCommerce orders, cart, etc
    6  * Version: 1.0.1
     6 * Version: 1.0.
    77 * Author: WPPOOL
    88 * Author URI: https://wppool.dev
     
    2525 * Powered by WPPool
    2626 * https://wppool.dev
    27  * https://wppool.dev/social-contact-form
     27 * https://wppool.dev/social-contact-form/
     28 * https://wppool.dev/social-contact-form-pricing/
    2829 *
    2930 *
  • social-contact-form/trunk/public/css/admin.min.css

    r2706384 r2708021  
    1 /*! tailwindcss v3.0.23 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*{scrollbar-color:auto;scrollbar-width:auto}*,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border-width:0!important}.pointer-events-none{pointer-events:none!important}.invisible{visibility:hidden!important}.fixed{position:fixed!important}.absolute{position:absolute!important}.relative{position:relative!important}.sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.left-0{left:0!important}.top-1\/2{top:50%!important}.left-1\/2{left:50%!important}.right-0{right:0!important}.bottom-0{bottom:0!important}.left-2{left:.5rem!important}.bottom-2{bottom:.5rem!important}.right-2{right:.5rem!important}.top-1\.5{top:.375rem!important}.right-1\/2{right:50%!important}.top-1{top:.25rem!important}.-top-8{top:-2rem!important}.-right-2{right:-.5rem!important}.z-50{z-index:50!important}.z-40{z-index:40!important}.z-0{z-index:0!important}.z-20{z-index:20!important}.z-10{z-index:10!important}.m-0{margin:0!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.my-8{margin-top:2rem!important;margin-bottom:2rem!important}.-mx-1{margin-left:-.25rem!important;margin-right:-.25rem!important}.my-4{margin-top:1rem!important;margin-bottom:1rem!important}.my-6{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mb-6{margin-bottom:1.5rem!important}.mb-2{margin-bottom:.5rem!important}.-mt-3{margin-top:-.75rem!important}.-mr-3{margin-right:-.75rem!important}.ml-3{margin-left:.75rem!important}.mb-0{margin-bottom:0!important}.mb-4{margin-bottom:1rem!important}.mb-5{margin-bottom:1.25rem!important}.mt-2{margin-top:.5rem!important}.ml-2{margin-left:.5rem!important}.mb-1{margin-bottom:.25rem!important}.mt-3{margin-top:.75rem!important}.mt-6{margin-top:1.5rem!important}.mt-4{margin-top:1rem!important}.block{display:block!important}.inline-block{display:inline-block!important}.flex{display:flex!important}.inline-flex{display:inline-flex!important}.table{display:table!important}.grid{display:grid!important}.contents{display:contents!important}.h-full{height:100%!important}.h-6{height:1.5rem!important}.h-8{height:2rem!important}.h-4{height:1rem!important}.h-0{height:0!important}.h-auto{height:auto!important}.h-2{height:.5rem!important}.h-72{height:18rem!important}.h-1{height:.25rem!important}.h-9{height:2.25rem!important}.h-56{height:14rem!important}.h-7{height:1.75rem!important}.min-h-screen{min-height:100vh!important}.w-16{width:4rem!important}.w-full{width:100%!important}.w-6{width:1.5rem!important}.w-96{width:24rem!important}.w-8{width:2rem!important}.w-4{width:1rem!important}.w-32{width:8rem!important}.w-0{width:0!important}.w-auto{width:auto!important}.w-64{width:16rem!important}.w-20{width:5rem!important}.w-1\/2{width:50%!important}.w-44{width:11rem!important}.w-10{width:2.5rem!important}.w-12{width:3rem!important}.w-5{width:1.25rem!important}.w-48{width:12rem!important}.w-60{width:15rem!important}.w-2{width:.5rem!important}.w-14{width:3.5rem!important}.w-28{width:7rem!important}.w-3{width:.75rem!important}.max-w-full{max-width:100%!important}.max-w-sm{max-width:24rem!important}.max-w-md{max-width:28rem!important}.max-w-3xl{max-width:48rem!important}.-translate-x-1\/2{--tw-translate-x:-50%!important}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-translate-y-1\/2{--tw-translate-y:-50%!important}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}.animate-pulse{-webkit-animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite!important;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite!important}@-webkit-keyframes spin{to{transform:rotate(1turn)}}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{-webkit-animation:spin 1s linear infinite!important;animation:spin 1s linear infinite!important}.cursor-not-allowed{cursor:not-allowed!important}.cursor-pointer{cursor:pointer!important}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-col{flex-direction:column!important}.flex-col-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.items-center{align-items:center!important}.justify-end{justify-content:flex-end!important}.justify-center{justify-content:center!important}.justify-between{justify-content:space-between!important}.gap-4{gap:1rem!important}.gap-2{gap:.5rem!important}.gap-1{gap:.25rem!important}.gap-3{gap:.75rem!important}.gap-1\.5{gap:.375rem!important}.gap-0\.5{gap:.125rem!important}.gap-0{gap:0!important}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0!important;margin-right:calc(.25rem*var(--tw-space-x-reverse))!important;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))!important}.self-start{align-self:flex-start!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.whitespace-nowrap{white-space:nowrap!important}.rounded-md{border-radius:.375rem!important}.rounded-sm{border-radius:.125rem!important}.rounded-xl{border-radius:.75rem!important}.rounded-full{border-radius:9999px!important}.rounded-t-sm{border-top-left-radius:.125rem!important;border-top-right-radius:.125rem!important}.border{border-width:1px!important}.border-2{border-width:2px!important}.border-l-4{border-left-width:4px!important}.border-b{border-bottom-width:1px!important}.border-dashed{border-style:dashed!important}.border-none{border-style:none!important}.border-slate-100{--tw-border-opacity:1!important;border-color:rgb(241 245 249/var(--tw-border-opacity))!important}.border-indigo-600{--tw-border-opacity:1!important;border-color:rgb(79 70 229/var(--tw-border-opacity))!important}.border-slate-200{--tw-border-opacity:1!important;border-color:rgb(226 232 240/var(--tw-border-opacity))!important}.border-transparent{border-color:#0000!important}.border-slate-300{--tw-border-opacity:1!important;border-color:rgb(203 213 225/var(--tw-border-opacity))!important}.bg-transparent{background-color:initial!important}.bg-indigo-600{--tw-bg-opacity:1!important;background-color:rgb(79 70 229/var(--tw-bg-opacity))!important}.bg-gray-300{--tw-bg-opacity:1!important;background-color:rgb(209 213 219/var(--tw-bg-opacity))!important}.bg-slate-800{background-color:rgb(30 41 59/var(--tw-bg-opacity))!important}.bg-slate-800,.bg-white{--tw-bg-opacity:1!important}.bg-white{background-color:rgb(255 255 255/var(--tw-bg-opacity))!important}.bg-slate-200{--tw-bg-opacity:1!important;background-color:rgb(226 232 240/var(--tw-bg-opacity))!important}.bg-slate-100{background-color:rgb(241 245 249/var(--tw-bg-opacity))!important}.bg-red-500,.bg-slate-100{--tw-bg-opacity:1!important}.bg-red-500{background-color:rgb(239 68 68/var(--tw-bg-opacity))!important}.bg-slate-50{--tw-bg-opacity:1!important;background-color:rgb(248 250 252/var(--tw-bg-opacity))!important}.bg-slate-300{background-color:rgb(203 213 225/var(--tw-bg-opacity))!important}.bg-red-50,.bg-slate-300{--tw-bg-opacity:1!important}.bg-red-50{background-color:rgb(254 242 242/var(--tw-bg-opacity))!important}.bg-indigo-100{--tw-bg-opacity:1!important;background-color:rgb(224 231 255/var(--tw-bg-opacity))!important}.bg-red-400{background-color:rgb(248 113 113/var(--tw-bg-opacity))!important}.bg-red-400,.bg-slate-500{--tw-bg-opacity:1!important}.bg-slate-500{background-color:rgb(100 116 139/var(--tw-bg-opacity))!important}.bg-gray-200{--tw-bg-opacity:1!important;background-color:rgb(229 231 235/var(--tw-bg-opacity))!important}.fill-current{fill:currentColor!important}.p-4{padding:1rem!important}.p-8{padding:2rem!important}.p-6{padding:1.5rem!important}.p-1\.5{padding:.375rem!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:.75rem!important}.p-0{padding:0!important}.p-0\.5{padding:.125rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.px-3{padding-left:.75rem!important;padding-right:.75rem!important}.px-1\.5{padding-left:.375rem!important;padding-right:.375rem!important}.py-0\.5{padding-top:.125rem!important;padding-bottom:.125rem!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-3{padding-top:.75rem!important;padding-bottom:.75rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-1\.5{padding-top:.375rem!important;padding-bottom:.375rem!important}.px-6{padding-left:1.5rem!important;padding-right:1.5rem!important}.py-4{padding-top:1rem!important;padding-bottom:1rem!important}.pl-2{padding-left:.5rem!important}.pt-4{padding-top:1rem!important}.pb-1{padding-bottom:.25rem!important}.pr-3{padding-right:.75rem!important}.pl-4{padding-left:1rem!important}.text-left{text-align:left!important}.text-center{text-align:center!important}.text-right{text-align:right!important}.text-base{font-size:1rem!important;line-height:1.5rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.text-lg{font-size:1.125rem!important}.text-lg,.text-xl{line-height:1.75rem!important}.text-xl{font-size:1.25rem!important}.text-2xl{font-size:1.5rem!important;line-height:2rem!important}.font-medium{font-weight:500!important}.font-semibold{font-weight:600!important}.font-bold{font-weight:700!important}.font-normal{font-weight:400!important}.uppercase{text-transform:uppercase!important}.capitalize{text-transform:capitalize!important}.italic{font-style:italic!important}.leading-normal{line-height:1.5!important}.tracking-normal{letter-spacing:0!important}.tracking-wide{letter-spacing:.025em!important}.text-gray-700{--tw-text-opacity:1!important;color:rgb(55 65 81/var(--tw-text-opacity))!important}.text-gray-600{--tw-text-opacity:1!important;color:rgb(75 85 99/var(--tw-text-opacity))!important}.text-red-500{--tw-text-opacity:1!important;color:rgb(239 68 68/var(--tw-text-opacity))!important}.text-indigo-600{--tw-text-opacity:1!important;color:rgb(79 70 229/var(--tw-text-opacity))!important}.text-white{color:rgb(255 255 255/var(--tw-text-opacity))!important}.text-slate-600,.text-white{--tw-text-opacity:1!important}.text-slate-600{color:rgb(71 85 105/var(--tw-text-opacity))!important}.text-slate-400{--tw-text-opacity:1!important;color:rgb(148 163 184/var(--tw-text-opacity))!important}.text-slate-500{--tw-text-opacity:1!important;color:rgb(100 116 139/var(--tw-text-opacity))!important}.text-slate-700{--tw-text-opacity:1!important;color:rgb(51 65 85/var(--tw-text-opacity))!important}.text-slate-300{--tw-text-opacity:1!important;color:rgb(203 213 225/var(--tw-text-opacity))!important}.text-red-400{--tw-text-opacity:1!important;color:rgb(248 113 113/var(--tw-text-opacity))!important}.opacity-60{opacity:.6!important}.opacity-70{opacity:.7!important}.opacity-40{opacity:.4!important}.opacity-20{opacity:.2!important}.opacity-50{opacity:.5!important}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a!important;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)!important}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a!important;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)!important}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d!important;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)!important}.shadow-lg,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)!important}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important}.ring,.ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important}.ring-indigo-600{--tw-ring-opacity:1!important;--tw-ring-color:rgb(79 70 229/var(--tw-ring-opacity))!important}.ring-red-300{--tw-ring-opacity:1!important;--tw-ring-color:rgb(252 165 165/var(--tw-ring-opacity))!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.transition{transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter!important;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.duration-150,.transition{transition-duration:.15s!important}.duration-300{transition-duration:.3s!important}.duration-100{transition-duration:.1s!important}.duration-200{transition-duration:.2s!important}.scrollbar{--scrollbar-track:initial!important;--scrollbar-thumb:initial!important;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)!important;overflow:overlay!important}.scrollbar.overflow-x-hidden{overflow-x:hidden!important}.scrollbar.overflow-y-hidden{overflow-y:hidden!important}.scrollbar::-webkit-scrollbar-track{background-color:var(--scrollbar-track)!important}.scrollbar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb)!important}.scrollbar{scrollbar-width:auto!important}.scrollbar::-webkit-scrollbar{width:16px!important;height:16px!important}.scrollbar-thin{--scrollbar-track:initial!important;--scrollbar-thumb:initial!important;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)!important;overflow:overlay!important}.scrollbar-thin.overflow-x-hidden{overflow-x:hidden!important}.scrollbar-thin.overflow-y-hidden{overflow-y:hidden!important}.scrollbar-thin::-webkit-scrollbar-track{background-color:var(--scrollbar-track)!important}.scrollbar-thin::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb)!important}.scrollbar-thin{scrollbar-width:thin!important}.scrollbar-thin::-webkit-scrollbar{width:8px!important;height:8px!important}.scrollbar-track-gray-\31 00{--scrollbar-track:#f3f4f6!important}.scrollbar-track-slate-\32 00{--scrollbar-track:#e2e8f0!important}.scrollbar-thumb-indigo-\36 00{--scrollbar-thumb:#4f46e5!important}.scf_wrapper{position:relative}.scf_wrapper .scf_container{margin:1.25rem;overflow-y:auto;border-radius:.375rem;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.scf_wrapper .content-height{min-height:450px;overflow:hidden}.scf_wrapper .box{background:#fff;border-radius:2px;box-shadow:0 1px 2px #0000000d;padding:5px 8px;margin:10px 0}.scf_wrapper #scf_icon_preview img{width:55px;cursor:pointer;border-radius:50%;box-shadow:0 1px 2px #0000000d}.scf_wrapper .scf-input{border-radius:.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));padding:.25rem .75rem;--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);outline:2px solid #0000;outline-offset:2px;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.scf_wrapper .scf-input:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(203 213 225/var(--tw-ring-opacity))}.scf_wrapper .scf-input::-webkit-inner-spin-button,.scf_wrapper .scf-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.scf_wrapper .scf-input[type=number]{-moz-appearance:textfield}.scf_wrapper .scf-switch{margin-bottom:1rem;display:flex;align-items:center;gap:.75rem}.scf_wrapper .scf-switch>div{position:relative;height:1rem;width:2.25rem;cursor:pointer;border-radius:.75rem;--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.scf_wrapper .scf-switch>div,.scf_wrapper .scf-switch>div:after{border-width:1px;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.scf_wrapper .scf-switch>div:after{position:absolute;top:50%;left:0;display:block;height:1.25rem;width:1.25rem;--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);content:""}.scf_wrapper .scf-switch>div label{font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.scf_wrapper .scf-switch>div label>span{cursor:help;--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.scf_wrapper .scf-switch.active>div{--tw-border-opacity:1;border-color:rgb(79 70 229/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity))}.scf_wrapper .scf-switch.active>div:after{--tw-translate-x:1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scf_wrapper .scf-switch.inactive>div{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.scf_wrapper .scf-range{height:.25rem;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity));outline:2px solid #0000;outline-offset:2px}.scf_wrapper .scf-range::-webkit-slider-thumb{height:1.25rem;width:1.25rem;cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:9999px;border-width:1px;--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity));--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);outline:2px solid #0000;outline-offset:2px;-webkit-transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.scf_wrapper .scf-range::-webkit-slider-thumb,.scf_wrapper .scf-range::-webkit-slider-thumb:hover{background-color:rgb(79 70 229/var(--tw-bg-opacity))}.scf_wrapper .scf-range::-webkit-slider-thumb:hover{--tw-bg-opacity:1}.scf_wrapper .scf-modal-height{max-height:600px}.scf_wrapper .scf-tooltip{position:relative;margin-bottom:0;display:inline-flex;cursor:help;align-items:center;justify-content:center;font-size:1rem;line-height:1.5rem;line-height:1;--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.scf_wrapper .scf-tooltip>span{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;position:absolute;left:100%;z-index:50;margin-left:.5rem;display:block;cursor:default;border-radius:.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));padding:1rem;text-align:left;font-weight:400;--tw-text-opacity:1;--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);width:100%;min-width:350px!important}.scf_wrapper .form-label,.scf_wrapper .scf-tooltip>span{font-size:.875rem;line-height:1.25rem;color:rgb(71 85 105/var(--tw-text-opacity))}.scf_wrapper .form-label{cursor:pointer}.scf_wrapper .form-help,.scf_wrapper .form-label{margin-bottom:.25rem;display:flex;align-items:center;gap:.25rem;--tw-text-opacity:1}.scf_wrapper .form-help{padding-top:.5rem;padding-bottom:.5rem;font-size:.75rem;line-height:1rem;color:rgb(71 85 105/var(--tw-text-opacity))}.hover\:border-transparent:hover{border-color:#0000!important}.hover\:bg-slate-200:hover{--tw-bg-opacity:1!important;background-color:rgb(226 232 240/var(--tw-bg-opacity))!important}.hover\:bg-indigo-600:hover{--tw-bg-opacity:1!important;background-color:rgb(79 70 229/var(--tw-bg-opacity))!important}.hover\:bg-gray-100:hover{--tw-bg-opacity:1!important;background-color:rgb(243 244 246/var(--tw-bg-opacity))!important}.hover\:bg-red-600:hover{--tw-bg-opacity:1!important;background-color:rgb(220 38 38/var(--tw-bg-opacity))!important}.hover\:bg-indigo-100:hover{--tw-bg-opacity:1!important;background-color:rgb(224 231 255/var(--tw-bg-opacity))!important}.hover\:bg-red-500:hover{--tw-bg-opacity:1!important;background-color:rgb(239 68 68/var(--tw-bg-opacity))!important}.hover\:bg-slate-600:hover{--tw-bg-opacity:1!important;background-color:rgb(71 85 105/var(--tw-bg-opacity))!important}.hover\:text-white:hover{--tw-text-opacity:1!important;color:rgb(255 255 255/var(--tw-text-opacity))!important}.hover\:text-red-500:hover{--tw-text-opacity:1!important;color:rgb(239 68 68/var(--tw-text-opacity))!important}.hover\:text-indigo-600:hover{--tw-text-opacity:1!important;color:rgb(79 70 229/var(--tw-text-opacity))!important}.hover\:opacity-90:hover{opacity:.9!important}.hover\:shadow:hover{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a!important;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.hover\:ring-indigo-600:hover{--tw-ring-opacity:1!important;--tw-ring-color:rgb(79 70 229/var(--tw-ring-opacity))!important}.hover\:ring-red-600:hover{--tw-ring-opacity:1!important;--tw-ring-color:rgb(220 38 38/var(--tw-ring-opacity))!important}.focus\:border-0:focus{border-width:0!important}.focus\:border-transparent:focus{border-color:#0000!important}.focus\:outline-none:focus{outline:2px solid #0000!important;outline-offset:2px!important}.focus\:ring-transparent:focus{--tw-ring-color:#0000!important}.group:hover .group-hover\:visible{visibility:visible!important}@media (min-width:640px){.sm\:fixed{position:fixed!important}.sm\:top-1\/2{top:50%!important}.sm\:ml-1{margin-left:.25rem!important}.sm\:-mb-1{margin-bottom:-.25rem!important}.sm\:flex{display:flex!important}.sm\:w-3\/4{width:75%!important}.sm\:w-1\/2{width:50%!important}.sm\:w-24{width:6rem!important}.sm\:-translate-y-1\/2{--tw-translate-y:-50%!important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.sm\:flex-row{flex-direction:row!important}.sm\:items-center{align-items:center!important}.sm\:justify-end{justify-content:flex-end!important}.sm\:justify-between{justify-content:space-between!important}.sm\:rounded-lg{border-radius:.5rem!important}.sm\:border-l{border-left-width:1px!important}.sm\:border-dotted{border-style:dotted!important}.sm\:border-slate-200{--tw-border-opacity:1!important;border-color:rgb(226 232 240/var(--tw-border-opacity))!important}.sm\:py-0{padding-top:0!important;padding-bottom:0!important}.sm\:px-3{padding-left:.75rem!important;padding-right:.75rem!important}.sm\:text-left{text-align:left!important}}@media (min-width:1024px){.lg\:ml-20{margin-left:5rem!important}}
     1/*! tailwindcss v3.0.23 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*{scrollbar-color:auto;scrollbar-width:auto}*,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.!important}}@media (min-width:1024px){.lg\:ml-20{margin-left:5rem!important}}
    22/*# sourceMappingURL=admin.min.css.map */
  • social-contact-form/trunk/public/js/admin.min.js

    r2706384 r2708021  
    3939
    4040"use strict";
    41 eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _admin_settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./admin/settings */ \"./src/js/admin/settings.js\");\n/* harmony import */ var _admin_leads__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./admin/leads */ \"./src/js/admin/leads.js\");\n/* harmony import */ var alpinejs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! alpinejs */ \"./node_modules/alpinejs/dist/module.esm.js\");\n/* harmony import */ var _lottiefiles_lottie_player__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lottiefiles/lottie-player */ \"./node_modules/@lottiefiles/lottie-player/dist/lottie-player.esm.js\");\n/* harmony import */ var _admin_events__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./admin/events */ \"./src/js/admin/events.js\");\n/* harmony import */ var _admin_events__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_admin_events__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _component_ultimate_badge__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./component/ultimate-badge */ \"./src/js/component/ultimate-badge.js\");\n/* harmony import */ var _component_infotip__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./component/infotip */ \"./src/js/component/infotip.js\");\n\n\n // import 'tw-elements';\n\n\nwindow.LottiePlayer = _lottiefiles_lottie_player__WEBPACK_IMPORTED_MODULE_3__;\n // custom web components \n\n\n\nalpinejs__WEBPACK_IMPORTED_MODULE_2__[\"default\"].data(\"SCF_Settings\", _admin_settings__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\nalpinejs__WEBPACK_IMPORTED_MODULE_2__[\"default\"].data(\"SCF_Leads\", _admin_leads__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\nalpinejs__WEBPACK_IMPORTED_MODULE_2__[\"default\"].start();\n\n//# sourceURL=webpack://social-contact-form/./src/js/admin.js?");
     41eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _admin_settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./admin/settings */ \"./src/js/admin/settings.js\");\n/* harmony import */ var _admin_leads__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./admin/leads */ \"./src/js/admin/leads.js\");\n/* harmony import */ var __[\"default\"].start();\n\n//# sourceURL=webpack://social-contact-form/./src/js/admin.js?");
    4242
    4343/***/ }),
     
    7171
    7272"use strict";
    73 eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helper */ \"./src/js/admin/helper.js\");\n\n\nconst LeadsApp = () => {\n  return {\n    state: {},\n    lead: {\n      loading: true,\n      from: \"\",\n      to: \"\",\n      search: \"\",\n      page: 1,\n      perPage: 10,\n      leads: []\n    },\n\n    get isPro() {\n      return (0,_helper__WEBPACK_IMPORTED_MODULE_0__.is_true)(scf_admin.is_pro);\n    },\n\n    get not_free() {\n      if (this.isPro) return false;\n      return \"pointer-events-none opacity-60\";\n    },\n\n    get leads() {\n      if (this.lead.leads.length === 0) return [];\n      let leads = this.lead.leads || [];\n\n      if (this.lead.search) {\n        leads = leads.filter(lead => {\n          return (0,_helper__WEBPACK_IMPORTED_MODULE_0__.search_in_object)(lead, this.lead.search);\n        });\n      }\n\n      if (this.lead.from) {\n        leads = leads.filter(lead => {\n          return new Date(lead.created_at) >= new Date(this.lead.from);\n        });\n      }\n\n      if (this.lead.to) {\n        leads = leads.filter(lead => {\n          return new Date(lead.created_at) <= new Date(this.lead.to);\n        });\n      } // paginated\n\n\n      let start = (this.lead.page - 1) * this.lead.perPage;\n      let end = start + this.lead.perPage;\n      return leads.slice(start, end);\n    },\n\n    async loadLeads() {\n      const url = `${scf_admin.ajax_url}?action=scf_get_leads`;\n      const response = await fetch(url);\n      const result = await response.json(); // console.log(result);\n\n      this.lead.loading = false;\n      this.lead.leads = result.data && result.data.length ? result.data.filter(lead => !lead.deleted_at) : []; // console.log(result.data);\n    },\n\n    async loadNextLeads() {\n      this.lead.page++;\n      await this.loadLeads();\n    },\n\n    async loadPreviousLeads() {\n      this.lead.page--;\n      await this.loadLeads();\n    },\n\n    async loadPageLeads(page) {\n      this.lead.page = page;\n      await this.loadLeads();\n    },\n\n    init() {\n      // console.log(scf_admin);\n      this.loadLeads();\n    },\n\n    upgradeModal(event = null) {\n      if (!this.isPro) {\n        if (event) event.preventDefault();\n        this.state.upgrade_modal_open = true;\n      }\n    },\n\n    show_lead(lead = null) {\n      this.state.modal_open = true;\n      this.state.lead = lead;\n    },\n\n    async deleteLead(ids = []) {\n      const self = this;\n      let confirmDelete = await _helper__WEBPACK_IMPORTED_MODULE_0__.Toast.fire({\n        title: \"Are you sure?\",\n        text: \"You won't be able to revert this!\",\n        icon: \"warning\",\n        showCancelButton: true,\n        cancelButtonColor: \"#d33\",\n        confirmButtonText: \"Yes, delete it!\"\n      });\n\n      if (!confirmDelete.isConfirmed) {\n        _helper__WEBPACK_IMPORTED_MODULE_0__.Toast.close();\n        return;\n      }\n\n      const ids_as_string = ids.join(\",\"); // console.log(ids_as_string);\n\n      const url = `${scf_admin.ajax_url}?action=scf_delete_leads&ids=${ids_as_string}`;\n      const response = await fetch(url, {\n        method: \"POST\",\n        headers: {\n          \"Content-Type\": \"application/x-www-form-urlencoded; charset=UTF-8\"\n        }\n      });\n      const result = await response.json();\n\n      if (result.success) {\n        (0,_helper__WEBPACK_IMPORTED_MODULE_0__.Success)(result.message);\n        this.loadLeads();\n      }\n    },\n\n    async exportLeadsAsCSV() {\n      if (!this.isPro) {\n        this.upgradeModal();\n        return;\n      }\n\n      let leads = this.leads.map(lead => {\n        let fields = {};\n\n        for (let field in lead.field) {\n          if (lead.field.hasOwnProperty(field)) {\n            fields[field] = lead.field[field];\n          }\n        }\n\n        fields.created = lead.created_at;\n        return fields;\n      });\n\n      if (leads.length === 0) {\n        _helper__WEBPACK_IMPORTED_MODULE_0__.Toast.fire({\n          title: \"No leads to export\",\n          icon: \"warning\"\n        });\n        return;\n      }\n\n      let csv = \"\";\n      let keys = Object.keys(leads[0]);\n      csv += keys.join(\",\") + \"\\n\";\n      leads.forEach(lead => {\n        let row = [];\n        keys.forEach(key => {\n          row.push(lead[key]);\n        });\n        csv += row.join(\",\") + \"\\n\";\n      });\n      const blob = new Blob([csv], {\n        type: \"text/csv\"\n      });\n      const url = URL.createObjectURL(blob);\n      const a = document.createElement(\"a\");\n      a.href = url;\n      a.download = \"leads.csv\";\n      document.body.appendChild(a);\n      a.click();\n      document.body.removeChild(a);\n    },\n\n    getTime(date) {\n      return new Date(date).toLocaleString();\n    },\n\n    getDate(date) {\n      return new Date(date).toLocaleDateString();\n    },\n\n    bulkSelectLeads(event) {\n      const checked = event.target.checked;\n      this.lead.leads.forEach(lead => {\n        lead.selected = checked;\n      });\n    },\n\n    get selectedLeads() {\n      return this.leads.filter(lead => lead.selected);\n    },\n\n    deleteSelected() {\n      this.deleteLead(this.selectedLeads.map(lead => lead.id));\n    },\n\n    is_true: _helper__WEBPACK_IMPORTED_MODULE_0__.is_true\n  };\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LeadsApp);\n\n//# sourceURL=webpack://social-contact-form/./src/js/admin/leads.js?");
     73eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helper */ \"./src/js/admin/helper.js\");\n\n\nconst LeadsApp = () => {\n  return {\n    state: {},\n    lead: {\n      loading: true,\n      from: \"\",\n      to: \"\",\n      search: \"\",\n      page: 1,\n      perPage: 10,\n      leads: []\n    },\n\n    get isPro() {\n      return (0,_helper__WEBPACK_IMPORTED_MODULE_0__.is_true)(scf_admin.is_pro);\n    },\n\n    get not_free() {\n      if (this.isPro) return false;\n      return \"pointer-events-none opacity-60\";\n    },\n\n    get leads() {\n      if (this.lead.leads.length === 0) return [];\n      let leads = this.lead.leads || [];\n\n      if (this.lead.search) {\n        leads = leads.filter(lead => {\n          return (0,_helper__WEBPACK_IMPORTED_MODULE_0__.search_in_object)(lead, this.lead.search);\n        });\n      }\n\n      if (this.lead.from) {\n        leads = leads.filter(lead => {\n          return !\",\n        icon: \"warning\",\n        showCancelButton: true,\n        cancelButtonColor: \"#d33\",\n        confirmButtonText: \"Yes, delete it!\"\n      });\n\n      if (!confirmDelete.isConfirmed) {\n        _helper__WEBPACK_IMPORTED_MODULE_0__.Toast.close();\n        return;\n      }\n\n      const ids_as_string = ids.join(\",\"); // console.log(ids_as_string);\n\n      const url = `${scf_admin.ajax_url}?action=scf_delete_leads&ids=${ids_as_string}`;\n      const response = await fetch(url, {\n        method: \"POST\",\n        headers: {\n          \"Content-Type\": \"application/x-www-form-urlencoded; charset=UTF-8\"\n        }\n      });\n      const result = await response.json();\n\n      if (result.success) {\n        (0,_helper__WEBPACK_IMPORTED_MODULE_0__.Success)(result.message);\n        this.loadLeads();\n      }\n    },\n\n    async exportLeadsAsCSV() {\n      if (!this.isPro) {\n        this.upgradeModal();\n        return;\n      }\n\n      let leads = this.leads.map(lead => {\n        let fields = {};\n\n        for (let field in lead.field) {\n          if (lead.field.hasOwnProperty(field)) {\n            fields[field] = lead.field[field];\n          }\n        }\n\n        fields.created = lead.created_at;\n        return fields;\n      });\n\n      if (leads.length === 0) {\n        _helper__WEBPACK_IMPORTED_MODULE_0__.Toast.fire({\n          title: \"No leads to export\",\n          icon: \"warning\"\n        });\n        return;\n      }\n\n      let csv = \"\";\n      let keys = Object.keys(leads[0]);\n      csv += keys.join(\",\") + \"\\n\";\n      leads.forEach(lead => {\n        let row = [];\n        keys.forEach(key => {\n          row.push(lead[key]);\n        });\n        csv += row.join(\",\") + \"\\n\";\n      });\n      const blob = new Blob([csv], {\n        type: \"text/csv\"\n      });\n      const url = URL.createObjectURL(blob);\n      const a = document.createElement(\"a\");\n      a.href = url;\n      a.download = \"leads.csv\";\n      document.body.appendChild(a);\n      a.click();\n      document.body.removeChild(a);\n    },\n\n    getTime(date) {\n      return new Date(date).toLocaleString();\n    },\n\n    getDate(date) {\n      return new Date(date).toLocaleDateString();\n    },\n\n    bulkSelectLeads(event) {\n      const checked = event.target.checked;\n      this.lead.leads.forEach(lead => {\n        lead.selected = checked;\n      });\n    },\n\n    get selectedLeads() {\n      return this.leads.filter(lead => lead.selected);\n    },\n\n    deleteSelected() {\n      this.deleteLead(this.selectedLeads.map(lead => lead.id));\n    },\n\n    is_true: _helper__WEBPACK_IMPORTED_MODULE_0__.is_true\n  };\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LeadsApp);\n\n//# sourceURL=webpack://social-contact-form/./src/js/admin/leads.js?");
    7474
    7575/***/ }),
     
    8282
    8383"use strict";
    84 eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helper */ \"./src/js/admin/helper.js\");\n\n\nconst SettingsApp = () => {\n  return {\n    state: {\n      step: 1,\n      steps: [{\n        id: \"whatsapp\",\n        title: \"WhatsApp Info\"\n      }, {\n        id: \"customize\",\n        title: \"Customize Form\"\n      }, {\n        id: \"activate\",\n        title: \"Activate the Form\"\n      }],\n      errors: {}\n    },\n    options: {},\n\n    get currentStep() {\n      return this.state.steps[this.state.step - 1];\n    },\n\n    get isPro() {\n      return (0,_helper__WEBPACK_IMPORTED_MODULE_0__.is_true)(scf_admin.is_pro);\n    },\n\n    get not_free() {\n      if (this.isPro) return false;\n      return \"pointer-events-none opacity-70 cursor-not-allowed\";\n    },\n\n    get icon() {\n      let image = this.options.icon.image || scf_admin.public + \"/images/whatsapp.svg\";\n      let size = {\n        small: \"45\",\n        medium: \"60\",\n        large: \"80\",\n        custom: this.isPro ? this.options.icon.size_custom || \"60\" : \"60\"\n      }[this.options.icon.size || \"medium\"] + \"px\";\n      let position = this.options.icon.position || \"right\";\n      let align = this.options.icon.position || \"right\";\n\n      switch (this.options.icon.position) {\n        case \"left\":\n          position = {\n            left: \"7px\",\n            bottom: \"7px\"\n          };\n          break;\n\n        case \"right\":\n          position = {\n            right: \"7px\",\n            bottom: \"7px\"\n          };\n          break;\n\n        case \"custom\":\n        default:\n          if ((0,_helper__WEBPACK_IMPORTED_MODULE_0__.is_true)(this.isPro)) {\n            position = {\n              top: this.options.icon.position_top ? this.options.icon.position_top + \"px\" : \"auto\",\n              left: this.options.icon.position_left ? this.options.icon.position_left + \"px\" : \"auto\",\n              bottom: this.options.icon.position_bottom ? this.options.icon.position_bottom + \"px\" : \"auto\",\n              right: this.options.icon.position_right ? this.options.icon.position_right + \"px\" : \"auto\"\n            };\n          } else {\n            position = {\n              right: \"7px\",\n              bottom: \"7px\"\n            };\n          }\n\n          break;\n      }\n\n      const icon = {\n        image,\n        size,\n        position,\n        align\n      };\n      return icon;\n    },\n\n    get call_to_action() {\n      let text = this.options.call_to_action.text;\n      let color = this.options.call_to_action.color;\n      let background = this.options.call_to_action.background;\n      let size = {\n        small: \"16\",\n        medium: \"18\",\n        large: \"20\",\n        custom: this.isPro ? this.options.call_to_action.size_custom || \"18\" : \"18\"\n      }[this.options.call_to_action.size || \"medium\"] + \"px\";\n      let call_to_action = {\n        text,\n        color,\n        background,\n        size\n      };\n      return call_to_action;\n    },\n\n    get form() {\n      let title = this.options.form.title || \"Contact via WhatsApp\";\n      let header = this.options.form.header || \"\";\n      let footer = this.options.form.footer || \"\";\n      let submit = this.options.form.submit || \"Send on WhatsApp\";\n      let color = this.options.form.color || \"#fff\";\n      let background = this.options.form.background || \"#09816D\";\n      let size = {\n        small: \"250\",\n        medium: \"300\",\n        large: \"350\",\n        custom: this.isPro ? this.options.form.size_custom || \"300\" : \"300\"\n      }[this.options.form.size || \"medium\"] + \"px\";\n      let titleFontSize = size.slice(0, -2) / 16; // minimum title font size 12px\n      // maximum title font size 25px\n\n      if (titleFontSize < 12) titleFontSize = 12;\n      if (titleFontSize > 25) titleFontSize = 25;\n      titleFontSize += \"px\";\n      return {\n        titleFontSize,\n        title,\n        header,\n        footer,\n        color,\n        background,\n        size,\n        submit\n      };\n    },\n\n    get preset_message() {\n      let message = this.options.whatsapp.defined_preset + this.options.whatsapp.preset;\n      let replaces = {\n        name: \"John Doe\",\n        phone: \"+123456789\",\n        email: \"john@wppool.dev\",\n        message: \"Hello, I am a message\",\n        title: \"Hello, I am a title\",\n        url: \"https://wppool.dev\",\n        id: \"123456789\"\n      }; // replace * with bold\n\n      message = message.replace(/\\*([^*]+)\\*/g, \"<b>$1</b>\"); // replace __ with italic\n\n      message = message.replace(/_([^_]+)_/g, \"<i>$1</i>\"); // replace {break} with <br/>\n\n      message = message.replace(/\\n/g, \"<br/>\");\n      message = message.replace(/{break}/g, \"<br/>\"); // replace ~ with striketrough\n\n      message = message.replace(/~([^~]+)~/g, \"<s>$1</s>\"); // replace ``` with monospace\n\n      message = message.replace(/```([^`]+)```/g, \"<pre>$1</pre>\"); // replace regex\n\n      for (let key in replaces) {\n        message = message.replace(new RegExp(`{${key}}`, \"g\"), replaces[key]);\n      }\n\n      return message;\n    },\n\n    get countries() {\n      let countries = scf_admin.countries;\n      let search = this.state.search_country || \"\";\n      let filtered = countries.filter(country => {\n        return country.name.toLowerCase().includes(search.toLowerCase()) || country.phone_code.toLowerCase().includes(search.toLowerCase()) || (\"tags\" in country && country.tags ? country.tags.toLowerCase().includes(search.toLowerCase()) : false);\n      });\n      return filtered;\n    },\n\n    get currentCountry() {\n      let phone_code = this.options.whatsapp.phone_code;\n      let country = scf_admin.countries.find(country => country.phone_code === phone_code);\n      return country || false;\n    },\n\n    get fields() {\n      return scf_admin.fields;\n    },\n\n    excerpt: _helper__WEBPACK_IMPORTED_MODULE_0__.excerpt,\n\n    init() {\n      (0,_helper__WEBPACK_IMPORTED_MODULE_0__.log)(scf_admin);\n      this.loadOptions();\n    },\n\n    get nextButton() {\n      let button = \"Next\";\n\n      if (this.state.step === this.state.steps.length) {\n        button = \"Save\";\n      }\n\n      return button;\n    },\n\n    jumpStep(step = null) {\n      if (step === null) {\n        step = this.state.step + 1;\n      }\n\n      if (step > this.state.steps.length) {\n        this.saveMiddleware();\n      } else {\n        if (this.state.step === 1 && !this.validateWhatsApp()) return false;\n        this.state.step = step;\n      }\n    },\n\n    validateWhatsApp() {\n      (0,_helper__WEBPACK_IMPORTED_MODULE_0__.log)(\"validateWhatsApp\");\n      let whatsapp = this.options.whatsapp;\n      let errors = {};\n\n      if (!whatsapp.phone_code) {\n        errors.whatsapp = \"Please select a country\";\n      }\n\n      if (!(0,_helper__WEBPACK_IMPORTED_MODULE_0__.is_whatsapp_number)(whatsapp.phone_number)) {\n        errors.whatsapp = \"Invalid phone number\";\n      }\n\n      if (Object.keys(errors).length > 0) {\n        this.state.errors = errors;\n        return false;\n      }\n\n      return true;\n    },\n\n    nextStep(step = null, reverse = false) {\n      (0,_helper__WEBPACK_IMPORTED_MODULE_0__.log)(\"jumpStep\", this.options.whatsapp.phone_code);\n\n      if (this.state.step == 1) {\n        if (!this.options.whatsapp.phone_code) {\n          this.state.errors.whatsapp = \"Please select a country\";\n          return;\n        }\n\n        if (!(0,_helper__WEBPACK_IMPORTED_MODULE_0__.is_whatsapp_number)(this.options.whatsapp.phone_number)) {\n          this.$refs.whatsapp_number.focus();\n          this.state.errors.whatsapp = \"Please enter a valid WhatsApp number\";\n          return;\n        }\n\n        this.state.errors = {};\n      }\n\n      if (this.state.step < this.state.steps.length) {\n        this.state.step++;\n      } else {\n        this.saveOptions();\n      }\n    },\n\n    loadOptions() {\n      if (typeof scf_admin.options !== \"undefined\") {\n        this.options = scf_admin.options;\n        this.state.countries = scf_admin.countries || [];\n      }\n    },\n\n    upgradeModal(event = null) {\n      if (!this.isPro) {\n        if (event) event.preventDefault();\n        this.state.upgrade_modal_open = true;\n      }\n    },\n\n    uploadImage() {\n      var self = this;\n      const image = wp.media({\n        title: \"WhatsApp Icon\",\n        multiple: false,\n        library: {\n          type: \"image\"\n        }\n      }).open().on(\"select\", function (e) {\n        let uploaded_image = image.state().get(\"selection\").first();\n        self.options.icon.image = uploaded_image.toJSON().url;\n      });\n    },\n\n    setIconSize(size) {\n      if (size === \"custom\" && !this.isPro) {\n        this.upgradeModal();\n        return;\n      }\n\n      this.options.icon.size = size;\n    },\n\n    setIconPosition(position) {\n      if (position === \"custom\" && !this.isPro) {\n        this.upgradeModal();\n        return;\n      }\n\n      if (position === \"left\") {\n        this.options.icon.position_left = \"7\";\n        this.options.icon.position_right = \"\";\n        this.options.icon.position_top = \"\";\n        this.options.icon.position_bottom = \"7\";\n      } else if (position === \"right\") {\n        this.options.icon.position_left = \"\";\n        this.options.icon.position_right = \"7\";\n        this.options.icon.position_top = \"\";\n        this.options.icon.position_bottom = \"7\";\n      }\n\n      this.options.icon.position = position;\n    },\n\n    setTextSize(size) {\n      if (size === \"custom\" && !this.isPro) {\n        this.upgradeModal();\n        return;\n      }\n\n      this.options.call_to_action.size_custom = {\n        small: 16,\n        medium: 24,\n        large: 32\n      }[size];\n      this.options.call_to_action.size = size;\n    },\n\n    setFormSize(size) {\n      if (size === \"custom\" && !this.isPro) {\n        this.upgradeModal();\n        return;\n      }\n\n      this.options.form.size = size;\n    },\n\n    saveMiddleware() {\n      const self = this;\n\n      if ((0,_helper__WEBPACK_IMPORTED_MODULE_0__.is_true)(this.options.enabled)) {\n        this.saveOptions();\n        return true;\n      }\n\n      _helper__WEBPACK_IMPORTED_MODULE_0__.Toast.fire({\n        icon: \"\",\n        iconHtml: `<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"fill-current w-16\" viewBox=\"0 0 16 16\">\n        <path d=\"M11.46.146A.5.5 0 0 0 11.107 0H4.893a.5.5 0 0 0-.353.146L.146 4.54A.5.5 0 0 0 0 4.893v6.214a.5.5 0 0 0 .146.353l4.394 4.394a.5.5 0 0 0 .353.146h6.214a.5.5 0 0 0 .353-.146l4.394-4.394a.5.5 0 0 0 .146-.353V4.893a.5.5 0 0 0-.146-.353L11.46.146zM8 4c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 4.995A.905.905 0 0 1 8 4zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z\"/>\n      </svg>`,\n        title: \"Ohh! The Form is inactive!\",\n        html: \"If you keep the Social Contact Form <strong>turned off</strong>, you won't be able to use it on your website.\",\n        showCancelButton: false,\n        showDenyButton: true,\n        showConfirmButton: true,\n        denyButtonText: \"Save anyway\",\n        confirmButtonText: \"Activate and Save\",\n        reverseButtons: true,\n        focusConfirm: true,\n        allowEscapeKey: false,\n        allowOutsideClick: false,\n        showCloseButton: true,\n        customClass: {\n          icon: \"border-none text-red-500\",\n          denyButton: \"bg-transparent text-indigo-600 ring-1 ring-indigo-600 py-2 rounded-sm\",\n          confirmButton: \"ring-1 ring-indigo-600 py-2 rounded-sm bg-indigo-600 text-white\",\n          actions: \"flex justify-between items-center gap-4 mb-6\"\n        }\n      }).then(result => {\n        if (result.isConfirmed) {\n          self.options.enabled = true;\n          self.saveOptions();\n        }\n\n        if (result.isDenied) {\n          self.saveOptions();\n        }\n      });\n    },\n\n    saveOptions() {\n      const self = this;\n      (0,_helper__WEBPACK_IMPORTED_MODULE_0__.log)(\"Finished\", this.state);\n      this.state.saving = true;\n      jQuery.ajax({\n        url: scf_admin.ajax_url,\n        type: \"POST\",\n        data: {\n          action: \"scf_save_settings\",\n          options: this.options\n        },\n        success: function (response) {\n          (0,_helper__WEBPACK_IMPORTED_MODULE_0__.log)(response);\n\n          if (response.success) {\n            self.state.finished = true;\n            self.state.saving = false;\n          } else {\n            self.state.finished = false;\n            self.state.saving = true;\n          }\n        },\n        error: function (response) {\n          (0,_helper__WEBPACK_IMPORTED_MODULE_0__.log)(response);\n        }\n      });\n    },\n\n    is_true: _helper__WEBPACK_IMPORTED_MODULE_0__.is_true,\n\n    handlerPreviewScreen(event) {\n      let div = this.$refs.customize_form;\n      this.state.preview_form = div.getBoundingClientRect().top < 300 && this.state.step === 2;\n    },\n\n    get isMobile() {\n      return window.innerWidth < 768 || window.innerHeight < 768;\n    },\n\n    get getPreset() {\n      let text = this.options.whatsapp.preset;\n      text = text.replace(/{break}/g, \"\\n\");\n      return text;\n    },\n\n    setPreset($event) {\n      let text = $event.target.value;\n      text = text.replace(/\\n+/g, \"{break}\");\n      this.options.whatsapp.preset = text;\n    },\n\n    capitalize(string) {\n      return string.charAt(0).toUpperCase() + string.slice(1);\n    },\n\n    addPresetTag(tag, label = \"\") {\n      tag = (label ? label + \": \" : \"\") + \"{\" + tag + \"}{break}\";\n      let text = this.getPreset;\n      let preset = this.$refs.preset; // insert end of the cursor\n\n      let start = preset.selectionStart;\n      let end = preset.selectionEnd;\n      let before = text.substring(0, start);\n      let after = text.substring(end, text.length);\n      let newText = before + tag + after;\n      this.setPreset({\n        target: {\n          value: newText\n        }\n      });\n    },\n\n    upgradeAfterSetup() {\n      this.state.finished = false;\n      this.state.saving = false;\n      this.state.step = 1;\n      const url = \"https://wppool.dev/social-contact-form?ref=\" + window.location.hostname;\n      window.open(url, \"_blank\");\n    }\n\n  };\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SettingsApp);\n\n//# sourceURL=webpack://social-contact-form/./src/js/admin/settings.js?");
     84eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helper */ \"./src/js/admin/helper.js\");\n\n\nconst SettingsApp = () => {\n  return {\n    state: {\n      step: 1,\n      steps: [{\n        id: \"whatsapp\",\n        title: \"WhatsApp Info\"\n      }, {\n        id: \"customize\",\n        title: \"Customize Form\"\n      }, {\n        id: \"activate\",\n        title: \"Activate the Form\"\n      }],\n      errors: {}\n    },\n    options: {},\n\n    get currentStep() {\n      return this.state.steps[this.state.step - 1];\n    },\n\n    get isPro() {\n      return (0,_helper__WEBPACK_IMPORTED_MODULE_0__.is_true)(scf_admin.is_pro);\n    },\n\n    get not_free() {\n      if (this.isPro) return false;\n      return \"pointer-events-none opacity-50 cursor-not-allowed\";\n    },\n\n    get icon() {\n      let image = this.options.icon.image || scf_admin.public + \"/images/whatsapp.svg\";\n      let size = {\n        small: \"45\",\n        medium: \"60\",\n        large: \"80\",\n        custom: this.isPro ? this.options.icon.size_custom || \"60\" : \"60\"\n      }[this.options.icon.size || \"medium\"] + \"px\";\n      let position = this.options.icon.position || \"right\";\n      let align = this.options.icon.position || \"right\";\n\n      switch (this.options.icon.position) {\n        case \"left\":\n          position = {\n            left: \"7px\",\n            bottom: \"7px\"\n          };\n          break;\n\n        case \"right\":\n          position = {\n            right: \"7px\",\n            bottom: \"7px\"\n          };\n          break;\n\n        case \"custom\":\n        default:\n          if ((0,_helper__WEBPACK_IMPORTED_MODULE_0__.is_true)(this.isPro)) {\n            position = {\n              top: this.options.icon.position_top ? this.options.icon.position_top + \"px\" : \"auto\",\n              left: this.options.icon.position_left ? this.options.icon.position_left + \"px\" : \"auto\",\n              bottom: this.options.icon.position_bottom ? this.options.icon.position_bottom + \"px\" : \"auto\",\n              right: this.options.icon.position_right ? this.options.icon.position_right + \"px\" : \"auto\"\n            };\n          } else {\n            position = {\n              right: \"7px\",\n              bottom: \"7px\"\n            };\n          }\n\n          break;\n      }\n\n      const icon = {\n        image,\n        size,\n        position,\n        align\n      };\n      return icon;\n    },\n\n    get call_to_action() {\n      let text = this.options.call_to_action.text;\n      let color = this.options.call_to_action.color;\n      let background = this.options.call_to_action.background;\n      let size = {\n        small: \"16\",\n        medium: \"18\",\n        large: \"20\",\n        custom: this.isPro ? this.options.call_to_action.size_custom || \"18\" : \"18\"\n      }[this.options.call_to_action.size || \"medium\"] + \"px\";\n      let call_to_action = {\n        text,\n        color,\n        background,\n        size\n      };\n      return call_to_action;\n    },\n\n    get form() {\n      let title = this.options.form.title || \"Contact via WhatsApp\";\n      let header = this.options.form.header || \"\";\n      let footer = this.options.form.footer || \"\";\n      let submit = this.options.form.submit || \"Send on WhatsApp\";\n      let color = this.options.form.color || \"#fff\";\n      let background = this.options.form.background || \"#09816D\";\n      let size = {\n        small: \"250\",\n        medium: \"300\",\n        large: \"350\",\n        custom: this.isPro ? this.options.form.size_custom || \"300\" : \"300\"\n      }[this.options.form.size || \"medium\"] + \"px\";\n      let titleFontSize = size.slice(0, -2) / 16; // minimum title font size 12px\n      // maximum title font size 25px\n\n      if (titleFontSize < 12) titleFontSize = 12;\n      if (titleFontSize > 25) titleFontSize = 25;\n      titleFontSize += \"px\";\n      return {\n        titleFontSize,\n        title,\n        header,\n        footer,\n        color,\n        background,\n        size,\n        submit\n      };\n    },\n\n    get preset_message() {\n      let message = this.options.whatsapp.defined_preset + this.options.whatsapp.preset;\n      let replaces = {\n        name: \"John Doe\",\n        phone: \"+123456789\",\n        email: \"john@wppool.dev\",\n        message: \"Hello, I am a message\",\n        title: \"Hello, I am a title\",\n        url: \"https://wppool.dev\",\n        id: \"123456789\"\n      }; // replace * with bold\n\n      message = message.replace(/\\*([^*]+)\\*/g, \"<b>$1</b>\"); // replace __ with italic\n\n      message = message.replace(/_([^_]+)_/g, \"<i>$1</i>\"); // replace {break} with <br/>\n\n      message = message.replace(/\\n/g, \"<br/>\");\n      message = message.replace(/{break}/g, \"<br/>\"); // replace ~ with striketrough\n\n      message = message.replace(/~([^~]+)~/g, \"<s>$1</s>\"); // replace ``` with monospace\n\n      message = message.replace(/```([^`]+)```/g, \"<pre>$1</pre>\"); // replace regex\n\n      for (let key in replaces) {\n        message = message.replace(new RegExp(`{${key}}`, \"g\"), replaces[key]);\n      }\n\n      return message;\n    },\n\n    get countries() {\n      let countries = scf_admin.countries;\n      let search = this.state.search_country || \"\";\n      let filtered = countries.filter(country => {\n        return country.name.toLowerCase().includes(search.toLowerCase()) || country.phone_code.toLowerCase().includes(search.toLowerCase()) || (\"tags\" in country && country.tags ? country.tags.toLowerCase().includes(search.toLowerCase()) : false);\n      });\n      return filtered;\n    },\n\n    get currentCountry() {\n      let phone_code = this.options.whatsapp.phone_code;\n      let country = scf_admin.countries.find(country => country.phone_code === phone_code);\n      return country || false;\n    },\n\n    get fields() {\n      return scf_admin.fields;\n    },\n\n    excerpt: _helper__WEBPACK_IMPORTED_MODULE_0__.excerpt,\n\n    init() {\n      (0,_helper__WEBPACK_IMPORTED_MODULE_0__.log)(scf_admin);\n      this.loadOptions();\n    },\n\n    get nextButton() {\n      let button = \"Next\";\n\n      if (this.state.step === this.state.steps.length) {\n        button = \"Save\";\n      }\n\n      return button;\n    },\n\n    jumpStep(step = null) {\n      if (step === null) {\n        step = this.state.step + 1;\n      }\n\n      if (step > this.state.steps.length) {\n        this.saveMiddleware();\n      } else {\n        if (this.state.step === 1 && !this.validateWhatsApp()) return false;\n        this.state.step = step;\n      }\n    },\n\n    validateWhatsApp() {\n      (0,_helper__WEBPACK_IMPORTED_MODULE_0__.log)(\"validateWhatsApp\");\n      let whatsapp = this.options.whatsapp;\n      let errors = {};\n\n      if (!whatsapp.phone_code) {\n        errors.whatsapp = \"Please select a country\";\n      }\n\n      if (!(0,_helper__WEBPACK_IMPORTED_MODULE_0__.is_whatsapp_number)(whatsapp.phone_number)) {\n        errors.whatsapp = \"Invalid phone number\";\n      }\n\n      if (Object.keys(errors).length > 0) {\n        this.state.errors = errors;\n        return false;\n      }\n\n      return true;\n    },\n\n    nextStep(step = null, reverse = false) {\n      (0,_helper__WEBPACK_IMPORTED_MODULE_0__.log)(\"jumpStep\", this.options.whatsapp.phone_code);\n\n      if (this.state.step == 1) {\n        if (!this.options.whatsapp.phone_code) {\n          this.state.errors.whatsapp = \"Please select a country\";\n          return;\n        }\n\n        if (!(0,_helper__WEBPACK_IMPORTED_MODULE_0__.is_whatsapp_number)(this.options.whatsapp.phone_number)) {\n          this.$refs.whatsapp_number.focus();\n          this.state.errors.whatsapp = \"Please enter a valid WhatsApp number\";\n          return;\n        }\n\n        this.state.errors = {};\n      }\n\n      if (this.state.step < this.state.steps.length) {\n        this.state.step++;\n      } else {\n        this.saveOptions();\n      }\n    },\n\n    loadOptions() {\n      if (typeof scf_admin.options !== \"undefined\") {\n        this.options = scf_admin.options;\n        this.state.countries = scf_admin.countries || [];\n      }\n    },\n\n    upgradeModal(event = null) {\n      if (!this.isPro) {\n        if (event) event.preventDefault();\n        this.state.upgrade_modal_open = true;\n      }\n    },\n\n    uploadImage() {\n      var self = this;\n      const image = wp.media({\n        title: \"WhatsApp Icon\",\n        multiple: false,\n        library: {\n          type: \"image\"\n        }\n      }).open().on(\"select\", function (e) {\n        let uploaded_image = image.state().get(\"selection\").first();\n        self.options.icon.image = uploaded_image.toJSON().url;\n      });\n    },\n\n    setIconSize(size) {\n      if (size === \"custom\" && !this.isPro) {\n        this.upgradeModal();\n        return;\n      }\n\n      this.options.icon.size = size;\n    },\n\n    setIconPosition(position) {\n      if (position === \"custom\" && !this.isPro) {\n        this.upgradeModal();\n        return;\n      }\n\n      if (position === \"left\") {\n        this.options.icon.position_left = \"7\";\n        this.options.icon.position_right = \"\";\n        this.options.icon.position_top = \"\";\n        this.options.icon.position_bottom = \"7\";\n      } else if (position === \"right\") {\n        this.options.icon.position_left = \"\";\n        this.options.icon.position_right = \"7\";\n        this.options.icon.position_top = \"\";\n        this.options.icon.position_bottom = \"7\";\n      }\n\n      this.options.icon.position = position;\n    },\n\n    setTextSize(size) {\n      if (size === \"custom\" && !this.isPro) {\n        this.upgradeModal();\n        return;\n      }\n\n      this.options.call_to_action.size_custom = {\n        small: 16,\n        medium: 24,\n        large: 32\n      }[size];\n      this.options.call_to_action.size = size;\n    },\n\n    setFormSize(size) {\n      if (size === \"custom\" && !this.isPro) {\n        this.upgradeModal();\n        return;\n      }\n\n      this.options.form.size = size;\n    },\n\n    saveMiddleware() {\n      const self = this;\n\n      if ((0,_helper__WEBPACK_IMPORTED_MODULE_0__.is_true)(this.options.enabled)) {\n        this.saveOptions();\n        return true;\n      }\n\n      _helper__WEBPACK_IMPORTED_MODULE_0__.Toast.fire({\n        icon: \"\",\n        iconHtml: `<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"fill-current w-20\" viewBox=\"0 0 16 16\">\n        <path d=\"M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z\"/>\n      </svg>`,\n        title: \"Oops! The form is deactivated\",\n        html: \"If you keep the Social Contact Form <strong>turned off</strong>, you won't be able to use this form on your website.\",\n        showCancelButton: false,\n        showDenyButton: true,\n        showConfirmButton: true,\n        denyButtonText: \"Save anyway\",\n        confirmButtonText: \"Activate and Save\",\n        reverseButtons: true,\n        focusConfirm: true,\n        allowEscapeKey: false,\n        allowOutsideClick: false,\n        showCloseButton: true,\n        customClass: {\n          icon: \"border-none text-red-500\",\n          denyButton: \"bg-transparent text-indigo-600 ring-1 ring-indigo-600 py-2 rounded-sm\",\n          confirmButton: \"ring-1 ring-indigo-600 py-2 rounded-sm bg-indigo-600 text-white\",\n          actions: \"flex justify-between items-center gap-4 mb-6\",\n          popup: \"bg-red-50\",\n          title: \"font-medium text-slate-700\"\n        }\n      }).then(result => {\n        if (result.isConfirmed) {\n          self.options.enabled = true;\n          self.saveOptions();\n        }\n\n        if (result.isDenied) {\n          self.saveOptions();\n        }\n      });\n    },\n\n    saveOptions() {\n      const self = this;\n      (0,_helper__WEBPACK_IMPORTED_MODULE_0__.log)(\"Finished\", this.state);\n      this.state.saving = true;\n      jQuery.ajax({\n        url: scf_admin.ajax_url,\n        type: \"POST\",\n        data: {\n          action: \"scf_save_settings\",\n          options: this.options\n        },\n        success: function (response) {\n          (0,_helper__WEBPACK_IMPORTED_MODULE_0__.log)(response);\n\n          if (response.success) {\n            self.state.finished = true;\n            self.state.saving = false;\n          } else {\n            self.state.finished = false;\n            self.state.saving = true;\n          }\n        },\n        error: function (response) {\n          (0,_helper__WEBPACK_IMPORTED_MODULE_0__.log)(response);\n        }\n      });\n    },\n\n    is_true: _helper__WEBPACK_IMPORTED_MODULE_0__.is_true,\n\n    handlerPreviewScreen(event) {\n      let div = this.$refs.customize_form;\n      this.state.preview_form = div.getBoundingClientRect().top < 300 && this.state.step === 2;\n    },\n\n    get isMobile() {\n      return window.innerWidth < 768 || window.innerHeight < 768;\n    },\n\n    get getPreset() {\n      let text = this.options.whatsapp.preset;\n      text = text.replace(/{break}/g, \"\\n\");\n      return text;\n    },\n\n    setPreset($event) {\n      let text = $event.target.value;\n      text = text.replace(/\\n+/g, \"{break}\");\n      this.options.whatsapp.preset = text;\n    },\n\n    capitalize(string) {\n      return string.charAt(0).toUpperCase() + string.slice(1);\n    },\n\n    addPresetTag(tag, label = \"\") {\n      tag = (label ? label + \": \" : \"\") + \"{\" + tag + \"}{break}\";\n      let text = this.getPreset;\n      let preset = this.$refs.preset; // insert end of the cursor\n\n      let start = preset.selectionStart;\n      let end = preset.selectionEnd;\n      let before = text.substring(0, start);\n      let after = text.substring(end, text.length);\n      let newText = before + tag + after;\n      this.setPreset({\n        target: {\n          value: newText\n        }\n      });\n    },\n\n    upgradeAfterSetup() {\n      this.state.finished = false;\n      this.state.saving = false;\n      this.state.step = 1;\n      window.open('https://go.wppool.dev/2rc7', \"_blank\");\n    },\n\n    movePreview(event) {\n      const container = document.querySelector(\".scf_container\");\n      const previewBox = this.$refs.previewBox;\n      let containerTop = container.getBoundingClientRect().top;\n      let previewBoxWidth = previewBox.getBoundingClientRect().width;\n      let previewBoxHeight = previewBox.getBoundingClientRect().height;\n      let currentTop = window.pageYOffset;\n      const classes = [\"sm:absolute\", \"sm:w-full\"];\n\n      if (!this.isMobile) {\n        if (containerTop < 0) {\n          previewBox.classList.add(...classes);\n          previewBox.style.top = \"calc(\" + (currentTop - 80) + \"px)\";\n        } else {\n          previewBox.classList.remove(...classes);\n          previewBox.style.top = \"0px\";\n        }\n      }\n    }\n\n  };\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SettingsApp);\n\n//# sourceURL=webpack://social-contact-form/./src/js/admin/settings.js?");
     85
     86/***/ }),
     87
     88/***/ "./src/js/admin/upgrade.js":
     89/*!*********************************!*\
     90  !*** ./src/js/admin/upgrade.js ***!
     91  \*********************************/
     92/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
     93
     94"use strict";
     95eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helper */ \"./src/js/admin/helper.js\");\n\n\nconst UpgradeApp = () => {\n  return {\n    state: {\n      time: new Date(),\n      offer: {}\n    },\n\n    updateTimer() {\n      this.state.time = new Date();\n    },\n\n    init() {\n      if (typeof scf_admin !== \"undefined\") {\n        this.state.offer = scf_admin.offer;\n        (0,_helper__WEBPACK_IMPORTED_MODULE_0__.log)(this.state.offer);\n      }\n\n      const self = this;\n      self.updateTimer();\n      setInterval(() => {\n        self.updateTimer();\n      }, 1000);\n    },\n\n    getCounterTime() {\n      const time = this.state.time;\n      const counterTime = this.state.counter_time || \"2022-04-31\";\n      const counterTimeDate = new Date(counterTime);\n      const diff = counterTimeDate.getTime() - time.getTime();\n\n      if (diff > 0) {\n        const days = Math.floor(diff / (1000 * 60 * 60 * 24));\n        const hours = Math.floor(diff % (1000 * 60 * 60 * 24) / (1000 * 60 * 60));\n        const minutes = Math.floor(diff % (1000 * 60 * 60) / (1000 * 60));\n        const seconds = Math.floor(diff % (1000 * 60) / 1000);\n        return {\n          days,\n          hours,\n          minutes,\n          seconds\n        };\n      }\n\n      return false;\n    },\n\n    get days() {\n      return this.getCounterTime().days || 0;\n    },\n\n    get hours() {\n      return this.getCounterTime().hours || 0;\n    },\n\n    get minutes() {\n      return this.getCounterTime().minutes || 0;\n    },\n\n    get seconds() {\n      return this.getCounterTime().seconds || 0;\n    },\n\n    get discount() {\n      return this.state.offer.discount || 0;\n    }\n\n  };\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (UpgradeApp);\n\n//# sourceURL=webpack://social-contact-form/./src/js/admin/upgrade.js?");
    8596
    8697/***/ }),
  • social-contact-form/trunk/readme.txt

    r2706384 r2708021  
    55Tested up to: 5.9
    66Requires PHP: 5.4
    7 Stable tag: 1.0.1
     7Stable tag: 1.0.
    88License: GPLv2 or later
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    1414Social Contact Form is a revolutionary new contact form plugin for WordPress. The Social Contact Form sends the leads directly to your WhatsApp account whereas traditional contact forms send leads to your email or website. We also support automatic redirection to WhatsApp web for desktop users and WhatsApp mobile for smartphone/mobile WhatsApp users.
    1515
     16
    1617
    17 [ [👁️ View Demo](https://demo.wppool.dev/scf) | [🚀 Get The ULTIMATE Version](https://wppool.dev/social-contact-form?ref=wordpress.org) | [👩🏼‍💻 Get Support](https://wppool.dev/contact) ]
     18[ [👁️ View Demo](https://demo.wppool.dev/scf) | [🚀 Get The ULTIMATE Version](https://) | [👩🏼‍💻 Get Support](https://wppool.dev/contact) ]
    1819
    1920Social Contact Form is the easiest WordPress form plugin that does one thing extremely well - **sending form leads directly to WhatsApp**. Collect all the user’s form submission data and send it to WhatsApp instantly. A simple, powerful, easy-to-use, 100% beginner-friendly WordPress plugin that puts WhatsApp in the front.
     
    2122All leads that are being sent to WordPress are also saved as a lead (saved message) on your website as well (So you can always trace back where the message originated from). We also have some great ULTIMATE features including Personalized preset messages. 👑
    2223
    23 [ [👁️ View Demo](https://demo.wppool.dev/scf) | [🚀 Get The ULTIMATE Version](https://wppool.dev/social-contact-form?ref=wordpress.org) | [👩🏼‍💻 Get Support](https://wppool.dev/contact) ]
     24[ [👁️ View Demo](https://demo.wppool.dev/scf) | [🚀 Get The ULTIMATE Version](https://) | [👩🏼‍💻 Get Support](https://wppool.dev/contact) ]
    2425
    2526🔥 **Merge tags and Preset Messages**
     
    3738
    3839
    39 [ [👁️ View Demo](https://demo.wppool.dev/scf) | [🚀 Get The ULTIMATE Version](https://wppool.dev/social-contact-form?ref=wordpress.org) | [👩🏼‍💻 Get Support](https://wppool.dev/contact) ]
     40[ [👁️ View Demo](https://demo.wppool.dev/scf) | [🚀 Get The ULTIMATE Version](https://) | [👩🏼‍💻 Get Support](https://wppool.dev/contact) ]
    4041
    4142We have many Ultimate features in the 🎉 **ULTIMATE VERSION of the Social Contact Form including**:
     
    128129== Changelog ==
    129130
     131
     132
     133
     134
     135
    130136= 1.0.1 =
    131137** Fix: Fixed custom positioning
  • social-contact-form/trunk/templates/admin/leads/header.php

    r2706384 r2708021  
    2626
    2727    <div class="flex items-center gap-2">
    28         <button @click.prevent="exportLeadsAsCSV" class="bg-white text-slate-500 border border-slate-300 rounded-md shadow-sm whitespace-nowrap px-4 py-2 hover:opacity-90 hover:text-white transition duration-150 hover:border-transparent font-medium">Export .CSV</button>
    29         <input placeholder="<?php echo __('Search', 'social-contact-form'); ?>" type="text" class="w-full scf-input" x-model="lead.search">
     28        <button @click.prevent="exportLeadsAsCSV" class="bg-white text-slate-500 border border-slate-300 rounded-md shadow-sm whitespace-nowrap px-4 py-2 hover:opacity-90 hover:</button>
     29        <input placeholder="<?php echo __('Search', 'social-contact-form'); ?>" type="text" class="w-full scf-input" x-model="lead.search">
    3030    </div>
    3131</div>
  • social-contact-form/trunk/templates/admin/leads/modal.php

    r2706384 r2708021  
    11<template x-if="state.lead">
    2     <div class="absolute top-0 left-0 h-full w-full" x-show="state.modal_open === true && state.lead != false" x-transition.opacity>
     2    <div class="" x-show="state.modal_open === true && state.lead != false" x-transition.opacity>
    33        <div class="w-full max-w-full rounded-md shadow-lg absolute top-0 left-0 h-full flex items-center justify-center">
    44            <div @click.prevent="state.modal_open = false" class="absolute bg-slate-800 w-full h-full z-40 opacity-40"></div>
     
    88                <div class="flex justify-between mb-4">
    99                    <h2 class="text-base font-semibold text-slate-600 border-l-4 border-indigo-600 pl-4"><?php echo __('Lead Details', 'social-contact-form'); ?></h2>
    10                     <button class="text-indigo-600 hover:text-indigo-600 transition duration-150" @click="state.modal_open = false">
     10                    <button class="text--600 transition duration-150" @click="state.modal_open = false">
    1111                        <svg class="h-6 w-6" fill="currentColor" viewBox="0 0 20 20">
    1212                            <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd" />
  • social-contact-form/trunk/templates/admin/leads/pagination.php

    r2706384 r2708021  
    99    </a>
    1010
    11     <template x-for="n in Math.ceil(lead.leads.length / lead.perPage)">
     11    <template x-for="n in Math.ceil(leads.length / lead.perPage)">
    1212        <a href="#" @click.prevent="lead.page = n" :class="{'bg-indigo-600 text-white' : n == lead.page, 'text-gray-700 bg-gray-200' : n != lead.page}" class="h-7 px-3 flex items-center rounded-md hover:opacity-90 hover:text-white focus:outline-none" x-text="n"></a>
    1313    </template>
  • social-contact-form/trunk/templates/admin/settings.php

    r2706384 r2708021  
    2323
    2424                 <!-- main content  -->
    25                  <section class="p-6 h-full content-height flex sm:justify-between flex-col-reverse sm:flex-row gap-4  h-full">
     25                 <section class="p-6 h-full content-height flex sm:justify-between flex-col-reverse sm:flex-row gap-4 h-full">
    2626                     
    2727
    2828                         <!-- settings fields  -->
    29                          <div class="w-full sm:w-3/4 h-full">
     29                         <div class="w-full sm:w-3/4 h-full">
    3030
    3131                             <!-- whatsapp fields  -->
  • social-contact-form/trunk/templates/admin/settings/customize-call-to-action.php

    r2706384 r2708021  
    1818     <!-- call to action text style  -->
    1919     <div @click="upgradeModal" class="mb-5" x-show="options.call_to_action.text" x-transition>
    20          <label :class="not_free" class="form-label"><?php echo __('Call to action style', 'social-contact-form'); ?> <ultimate-badge/></label>
    21          <div :class="not_free" class="w-full flex items-center gap-4 mt-2">
     20         <label class="form-label">
     21             <span :class="not_free"><?php echo __('Call to action style', 'social-contact-form'); ?></span>
     22              <ultimate-badge/></label>
     23         <div :class="not_free" class="w-full flex items-center gap-4">
    2224             <div class="w-full flex items-center gap-4">
    2325                 <label for="call_to_action_text_color" class="cursor-pointer scf-input w-32 p-1.5 hover:shadow flex items-center gap-2">
  • social-contact-form/trunk/templates/admin/settings/customize-form.php

    r2706384 r2708021  
    3535    <!-- call to action text style  -->
    3636    <div @click="upgradeModal" class="mb-5">
    37         <label :class="not_free" class="form-label"><?php echo __('Form Style', 'social-contact-form'); ?> <ultimate-badge/></label>
     37        <label class="form-label">
     38            <span :class="not_free"><?php echo __('Form Style', 'social-contact-form'); ?> </span>
     39            <ultimate-badge/></label>
    3840        <div :class="not_free" class="w-full flex items-center gap-4">
    3941            <div class="w-full flex items-center gap-4">
     
    8587            <div class="w-1/2 inline-flex items-center justify-end gap-2">
    8688                <?php $font_family = WPPOOL\SCF\App::fonts(); ?>
    87                 <select class="w-full scf-input" x-model="options.form.font">
    88                     <option value=""><?php echo __('Default', 'social-contact-form'); ?></option>
     89                <select class="w-full scf-input" x-model="options.form.font">                   
    8990                    <?php
    9091                    if ($font_family) {
     
    9293                        foreach ($font_family as $key => $value) {
    9394                            $current++;
    94 
    9595                            $disabled = $current > 14 && !is_scf_ultimate() ? 'disabled' : '';
    9696                            $after = $current > 14 && !is_scf_ultimate() ? '<ultimate-badge/>' : '';
  • social-contact-form/trunk/templates/admin/settings/customize-icon.php

    r2706384 r2708021  
    1010    <!-- image  -->
    1111    <div class="mb-5" @click="upgradeModal">
    12         <label :class="not_free" class="form-label"><?php echo __('Custom Icon', 'social-contact-form'); ?> <ultimate-badge/></label>
     12        <label class="form-label">
     13           <span :class="not_free"> <?php echo __('Custom Icon', 'social-contact-form'); ?> </span>
     14            <ultimate-badge/>
     15            <info-tip><?php echo wp_sprintf( '%s : %s', __('Recommended size for custom icon', 'social-contact-form'), '<span class="text-sm text-slate-600">64x64</span>' ); ?></info-tip></label>
    1316        <div :class="not_free" class="inline-flex items-center">
    1417            <div class="w-full flex items-center justify-center gap-4">
     
    2629            </div>
    2730        </div>
    28         <div :class="not_free" class="form-help"><?php echo wp_sprintf( '%s : %s', __('Recommended size', 'social-contact-form'), '<span class="text-sm text-slate-600">64x64</span>' ); ?>
    29         </div>
     31       
    3032    </div>
    3133
  • social-contact-form/trunk/templates/admin/settings/header.php

    r2706384 r2708021  
    88    </div>
    99
    10     <div class="w-full flex items-center justify-between sm:justify-end gap-1.5 font-medium">
     10    <div class="w-full flex items-center justify- sm:justify-end gap-1.5 font-medium">
    1111        <template x-if="state.step > 1">
    1212            <button @click.prevent="state.step--" class="bg-transparent border border-indigo-600 text-indigo-600 hover:bg-indigo-600 hover:opacity-90 hover:text-white px-3 py-1.5 rounded-sm flex items-center gap-1">
  • social-contact-form/trunk/templates/admin/settings/preview-form.php

    r2706384 r2708021  
    11 <!-- preview form  -->
    2  <div x-show="state.preview_form" x-transition.opacity class="transition duration-300 max-w-full sm:fixed sm:top-1/2 sm:-translate-y-1/2 z-0"
    3  :class="{ 'w-48' : state.mobile && !state.preview_form, 'w-full max-w-sm' : !state.mobile || state.preview_form }">
     2 <div x-show="state.preview_form" x-transition.opacity class="transition duration-300 -0"
     3 :class="{ 'w-48' : state.mobile && !state.preview_form, 'w-full max-w-sm' : !state.mobile || state.preview_form }">
    44     <div class="scf-widget flex items-center justify-center relative p-2">
    55         <div class="scf-form right relative right-0 bottom-0 p-0 m-0 transition duration-150" :style="{
  • social-contact-form/trunk/templates/admin/settings/preview-icon.php

    r2706384 r2708021  
    1 <div x-show="!state.preview_form" x-transition.opacity class="transition duration-300 max-w-full sm:fixed sm:top-1/2 sm:-translate-y-1/2 z-0"
    2 :class="{ 'w-60' : state.mobile && !state.preview_form, 'w-full max-w-sm' : !state.mobile || state.preview_form }">
     1<div x-show="!state.preview_form" x-transition.opacity class="transition duration-"
     2:class="{ 'w-' : !state.mobile || state.preview_form }">
    33 
    44
  • social-contact-form/trunk/templates/admin/settings/preview.php

    r2706384 r2708021  
    1 <section class="sm:w-1/2 w-full">
    2     <div class="w-full mx-auto h-full py-4 sm:py-0 sm:px-3 sm:border-l sm:border-slate-200 sm:border-dotted flex justify-center " :style="{
    3         fontFamily: options.form.font
    4     }">
    5        
     1<">
     2    <
     3       
     4    }">
     5
    66            <!-- preview form  -->
    77            <?php scf_render('admin/settings/preview-icon'); ?>
     
    1111
    1212            <!-- preview form  -->
    13             <?php scf_render('admin/settings/preview-form'); ?>
    14     </div>
    15 </section>
     13            <?php scf_render('admin/settings/preview-form'); ?>
     14        </div>
     15
     16    </section>
     17
     18</template>
  • social-contact-form/trunk/templates/admin/settings/section-activate.php

    r2706384 r2708021  
    1 <div x-show="currentStep.id == 'activate'">
     1<div x-show="currentStep.id == 'activate'">
    22
    33    <?php
     
    1717        <label for="form_delay" class="text-sm text-slate-500"><?php echo __('Show form after', 'social-contact-form'); ?></label>
    1818        <input id="form_delay" type="number" min="0" step="1" class="w-14 scf-input text-xs" x-model="options.form.delay" placeholder="<?php echo __('0', 'social-contact-form'); ?>">
    19         <span class="text-sm text-slate-500"><?php echo __('ms', 'social-contact-form'); ?></span>
     19        <span class="text-sm text-slate-500"><?php echo __('ms', 'social-contact-form'); ?></span>
    2020    </div>
    2121
  • social-contact-form/trunk/templates/admin/settings/section-customize.php

    r2706384 r2708021  
    1 <div x-show="currentStep.id == 'customize'">
     1<div x-show="currentStep.id == 'customize'">
    22
    33    <?php
  • social-contact-form/trunk/templates/admin/settings/section-whatsapp.php

    r2706384 r2708021  
    11<!-- whatsapp information -->
    2 <div x-show="currentStep.id === 'whatsapp'">
     2<div x-show="currentStep.id === 'whatsapp'">
    33
    44    <?php
     
    99
    1010        <label for="whatsapp_number" class="form-label"><?php echo __('WhatsApp Number', 'social-contact-form'); ?></label>
    11         <div class="flex gap-2 flex-col sm:flex-row sm:justify-between">
    12             <div class="sm:w-24">
    13                 <!-- <label class="text-sm text-slate-600 mb-1 block" @click.prevent="state.showCountryList = !state.showCountryList; setTimeout(() => {$refs.search_country.focus()}, 50)"><?php echo __('Country code', 'social-contact-form'); ?></label> -->
     11        <div class="flex gap-2 flex-row justify-between">
     12            <div class="w-24">               
    1413                <div x-show="state.showCountryList" class="absolute top-0 left-0 w-full h-full z-10" @click.prevent="state.showCountryList = false"></div>
    1514                <div class="relative w-full">
    1615
    17                     <button class="w-full scf-input px-2 block py-2 h-9 flex items-center gap-2 font-medium" @click.prevent="state.showCountryList = !state.showCountryList; setTimeout(() => {$refs.search_country.focus()}, 50)">
     16                    <button class="w-full scf-input px-2 block py-2 h-9 flex items-center gap-2 font-medium" @click.prevent="state.showCountryList = !state.showCountryList; setTimeout(() => {$refs.search_country.focus()}, 50)">
    1817                        <span x-show="currentCountry" x-html="currentCountry.emoji || ''">🇦🇫</span>
    1918                        <span x-show="currentCountry" x-text="currentCountry.phone_code"></span>
     
    3534                </div>
    3635            </div>
    37             <div class="sm:1-2/3 w-full">
     36            <div class="w-full">
    3837
    3938                <input id="whatsapp_number" placeholder="<?php echo __('WhatsApp number', 'social-contact-form'); ?>" type="text" maxlength="15" class="w-full scf-input" x-model="options.whatsapp.phone_number" @keyup="options.whatsapp.phone_number = options.whatsapp.phone_number.replace(/[^0-9]/g, '')" x-ref="whatsapp_number" @input="state.errors.whatsapp = ''" />
     
    4645
    4746    <!-- whatsapp web for desktop  -->
    48     <!-- <div @click="upgradeModal">
    49         <div class="scf-switch" @click.prevent="options.whatsapp.direct_web = is_true(options.whatsapp.direct_web) ? false : true" :class="[is_true(options.whatsapp.direct_web) ? 'active' : 'inactive', not_free]">
    50             <div></div>
    51             <label class="gap-1"><?php # echo __('Directly WhatsApp Web on desktop', 'social-contact-form');
    52                                     ?> <ultimate-badge/></label>
     47    <div class="mb-3" @click="upgradeModal">
     48        <div class="scf-switch" @click.prevent="isPro ? (options.whatsapp.direct_web = is_true(options.whatsapp.direct_web) ? false : true) : ''" :class="[is_true(options.whatsapp.direct_web) ? 'active' : 'inactive']">
     49            <div :class="not_free"></div>
     50            <label class="gap-1">
     51                <span :class="not_free"><?php echo __('Automatic switch to WhatsApp Web/WhatsApp Mobile', 'social-contact-form'); ?> </span>
     52                <info-tip><?php echo __('If you enable this option, it will help your visitors to automatically switch to <strong>WhatsApp web from desktop</strong> and <strong>WhatsApp Messenger from phone</strong>.', 'social-contact-form'); ?></info-tip>
     53                <ultimate-badge/> </label>
    5354        </div>
    54     </div> -->
     55    </div>
    5556
    5657    <?php do_action('scf_after_whatsapp_fields'); ?>
     
    6061    <!-- textarea  -->
    6162    <div class="mb-0" @click="upgradeModal">
    62         <div class="flex items-center justify-between" :class="not_free">
    63             <label for="whatsapp_preset" class="form-label"><?php echo __('Preset message', 'social-contact-form'); ?>               
     63        <div class="flex items-center justify-between">
     64            <label for="whatsapp_preset" class="form-label">
     65                <span :class="not_free"><?php echo __('Preset message', 'social-contact-form'); ?> </span>             
    6466                <info-tip><?php echo __('Preset Message is a convenient way of sending quick messages. You can also customize your preset message through this section.', 'social-contact-form'); ?></info-tip>
    65                 <ultimate-badge />
     67                <ultimate-badge/>
    6668            </label>
    67             <div class="sm:-mb-1 flex items-center justify-end border border-slate-100 text-xs text-slate-500  rounded-t-sm gap-0.5">
     69            <div class="sm:-mb-1 flex items-center justify-end border border-slate-100 text-xs text-slate-500  rounded-t-sm gap-0.5">
    6870                <label class="px-2 py-0.5 rounded-t-sm " :class="state.preset_preview ? 'bg-slate-200' : 'bg-white'" @click.prevent="state.preset_preview = 0"><?php echo __('Editor', 'social-contact-form'); ?></label>
    6971                <label class="px-2  py-0.5 rounded-t-sm" :class="state.preset_preview ? 'bg-white' : 'bg-slate-200'" @click.prevent="state.preset_preview = 1"><?php echo __('Preview', 'social-contact-form'); ?></label>
     
    7880
    7981
    80         <div class="form-help cursor-pointer py-0" @click.prevent="state.show_format_guide = !state.show_format_guide">
     82        <div class="form-help cursor-pointer py-0" @click.prevent="">
    8183            <?php echo __('Format preset message', 'social-contact-form'); ?>
    8284
    83             <info-tip><?php echo __('Preset message customization help; Click for details', 'social-contact-form'); ?></info-tip>
     85            <info-tip><?php echo __('', 'social-contact-form'); ?></info-tip>
    8486
    8587        </div>
    86         <div x-show="state.show_format_guide" x-transition.opacity.delay.50ms class="bg-slate-100 p-3 rounded-dm shadow-sm text-slate-600 relative">
     88        <div x-show="state.show_format_guide" x-transition.opacity.delay.50ms class="bg-slate-100 p-3 rounded-dm shadow-sm text-slate-600 relative">
    8789
    8890            <!-- close  -->
  • social-contact-form/trunk/templates/admin/settings/setup-finished.php

    r2706384 r2708021  
    11 <!-- finished  -->
    2  <div x-show="state.finished" class="p-3 bg-slate-100 w-full" x-transition>
     2 <div x-show="state.finished" class="p-3 bg-slate-100 w-full" x-transition>
    33     <!-- finished setup  -->
    44     <div class="flex items-center justify-center">
    55         <lottie-player autoplay loop mode="normal" src="<?php
    66
    7          echo esc_url(SCF_PUBLIC) ?>/json/animation.json" class="w-28">
     7         echo esc_url(SCF_PUBLIC) ?>/json/animation.json" class="w-28">
    88         </lottie-player>
    99     </div>
     
    1212     </div>
    1313     <div x-show="is_true(options.enabled)" class="text-center text-slate-500 text-lg py-1">
    14          <?php echo wp_sprintf( '%s <a class="text-indigo-600" href="https://wppool.dev/social-contact-form/?ref=%s">%s</a>', __('Now you can use', 'social-contact-form'), urlencode(home_url()),  __('Social Contact Form', 'social-contact-form') ); ?>
     14         <?php echo wp_sprintf(); ?>
    1515     </div>
    1616     <div x-show="!is_true(options.enabled)" class="text-center text-slate-500 text-lg py-1">
    17          <?php echo wp_sprintf( 'You didn\'t activated the form so you won\'t be to use %s on your website.', __('<a class="text-indigo-600" href="https://wppool.dev/social-contact-form/?ref=%s">Social Contact Form</a>', 'social-contact-form'), urlencode(home_url()),  __('Social Contact Form', 'social-contact-form') ); ?>
     17         <?php echo wp_sprintf(); ?>
    1818     </div>
    1919
    2020
    21      <div class="grid grid-cols-2 max-w-md mx-auto my-6 gap-4">
    22          <div @click.prevent="state.finished = false; state.saving = false; state.step = 1" class="p-3 py-4 text-lg font-semibold rounded-md bg-white text-center text-slate-600 flex items-center justify-center cursor-pointer hover:opacity-90 hover:text-white transition duration-150 ring ring-indigo-600 hover:ring-indigo-600">
     21     <div class="">
     22         <div @click.prevent="state.finished = false; state.saving = false; state.step = 1" class=" transition duration-150 ring ring-indigo-600 hover:ring-indigo-600">
    2323             <?php esc_html_e('Done', 'social-contact-form'); ?>
    2424         </div>
    25          <div @click.prevent="upgradeAfterSetup" class="p-3 py-4 text-lg font-semibold rounded-md bg-white text-center text-slate-600 flex items-center justify-center cursor-pointer hover:bg-red-600 hover:text-white transition duration-150 ring ring-red-300 hover:ring-red-600">
    26              <?php esc_html_e('Upgrade all features', 'social-contact-form'); ?>
    27          </div>
     25         <template x-if="!isPro">
     26             <div @click.prevent="upgradeAfterSetup" class="px-6 py-4 text-lg font-semibold rounded-md bg-white text-center text-slate-600 flex items-center justify-center cursor-pointer hover:bg-red-600 hover:text-white transition duration-150 ring ring-red-300 hover:ring-red-600">
     27                 <?php esc_html_e('Upgrade all features', 'social-contact-form'); ?>
     28             </div>
     29         </template>
    2830     </div>
    2931 </div>
  • social-contact-form/trunk/templates/admin/upgrade-popup.php

    r2706384 r2708021  
    11<div class="fixed top-0 left-0 lg:ml-20 w-full h-full z-50" x-show="state.upgrade_modal_open == true" x-transition.opacity>
    2     <!-- <div class="w-full max-w-full"> -->
     2
    33    <div @click.prevent="state.upgrade_modal_open = false" class="fixed bg-slate-800 w-full h-full z-40 opacity-40"></div>
    4     <div class="relative top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 flex bg-white w-96 max-w-full flex-col justify-between z-50 gap-4 p-4 shadow-md border border-slate-100 rounded-md relative">
     4    <div class="relative top-1/2 left-1/2 p-4 shadow-md border border-slate-100 rounded-md relative">
    55        <!-- close  -->
    6         <div class="absolute top-0 right-0 -mt-3 -mr-3">
    7             <button @click.prevent="state.upgrade_modal_open = false" class="block w-6 h-6 rounded-full bg-slate-200 text-white hover:opacity-90 focus:outline-none focus:shadow-outline">
    8                 <svg class="w-6 h-6" fill="currentColor" viewBox="0 0 20 20">
    9                     <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd" />
     6        <div class="absolute top-">
     7            <button @click.prevent="state.upgrade_modal_open = false" class="">
     8                <svg class="w-">
     9                />
    1010                </svg>
    1111            </button>
    1212        </div>
    13         <div class="">
     13        <div class="">
    1414
    15             <div class="ml-3 leading-normal">
    16                 <div class="flex items-center gap-2">
    17                     <div class="w-8 h-8 rounded-full bg-indigo-600 text-white flex items-center justify-center">
    18                         <svg xmlns="http://www.w3.org/2000/svg"  class="fill-current w-4 h-4" viewBox="0 0 16 16">
    19                             <path d="M11 1a2 2 0 0 0-2 2v4a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h5V3a3 3 0 0 1 6 0v4a.5.5 0 0 1-1 0V3a2 2 0 0 0-2-2z" />
    20                         </svg>
     15            <!-- title  -->
     16            <div class="font-semibold text-xl text-center"><?php echo __('Unlock all features', 'social-contact-form'); ?></div>
     17
     18            <!-- colored text  -->
     19            <div class="block italic font-bold  text-3xl text-center my-6">
     20                <span class="text-indigo-400"><?php echo __('Lifetime', 'social-contact-form'); ?></span>
     21                <span class="text-pink-500 uppercase text-shadow"><?php echo __('ULTIMATE', 'social-contact-form'); ?></span>
     22                <span class="text-orange-400"><?php echo __('Deal', 'social-contact-form'); ?></span>
     23            </div>
     24
     25            <!-- discount  -->
     26            <div x-show="discount" class="mb-4 bg-gradient-to-b from-purple-600 to-indigo-800 flex items-center justify-between w-72 mx-auto rounded-md font-bold text-center">
     27                <span class="text-yellow-400 -rotate-90 whitespace-nowrap text-xl"><?php echo __('up to', 'social-contact-form'); ?></span>
     28                <span class="w-full text-6xl text-white py-4 mr-2" x-text="`${discount}% off`"></span>
     29            </div>
     30
     31            <!-- time counter text  -->
     32            <div x-show="getCounterTime" class="py-3">
     33                <div class="text-center font-semibold text-slate-600 flex items-center justify-center gap-3 max-w-sm mx-auto">
     34                    <span class="block w-1/3 border-b border-slate-400"></span>
     35                    <?php echo __('Deal ends in', 'social-contact-form'); ?>
     36                    <span class="block w-1/3 border-b border-slate-400"></span>
     37                </div>
     38            </div>
     39
     40            <!-- time counter text  -->
     41            <div x-show="getCounterTime" class="upgrade-counter">
     42                <div>
     43                    <div class="counter-box">
     44                        <span></span>
     45                        <span></span>
     46                        <span></span>
     47                        <span></span>
     48                        <dd x-text="days"></dd>
    2149                    </div>
    22                     <h3 class="text-lg font-semibold text-slate-500"><?php echo __('Social Contact Form Ultimate!', 'social-contact-form'); ?></h3>
     50                    <div class="counter-label"><?php echo __('DAYS', 'social-contact-form'); ?></div>
     51                </div>
     52                <div>
     53                    <div class="counter-box">
     54                        <span></span>
     55                        <span></span>
     56                        <span></span>
     57                        <span></span>
     58                        <dd x-text="hours"></dd>
     59                    </div>
     60                    <div class="counter-label"><?php echo __('HOURS', 'social-contact-form'); ?></div>
     61                </div>
     62                <div>
     63                    <div class="counter-box">
     64                        <span></span>
     65                        <span></span>
     66                        <span></span>
     67                        <span></span>
     68                        <dd x-text="minutes"></dd>
     69                    </div>
     70                    <div class="counter-label"><?php echo __('MINUTES', 'social-contact-form'); ?></div>
     71                </div>
     72                <div>
     73                    <div class="counter-box">
     74                        <span></span>
     75                        <span></span>
     76                        <span></span>
     77                        <span></span>
     78                        <dd x-text="seconds"></dd>
     79                    </div>
     80                    <div class="counter-label"><?php echo __('SECONDS', 'social-contact-form'); ?></div>
    2381                </div>
    2482
    25                 <div class="text-sm text-slate-500 py-2"><?php echo __('Upgrade to the Ultimate version to unlock all the premium features including:', 'social-contact-form'); ?></div>
    26                
    27                 <div class="mb-0 font-medium text-slate-500 text-sm leading-normal">
    28                     <p><span class="dashicons dashicons-yes text-indigo-600"></span> <?php echo __('Custom Icon', 'social-contact-form'); ?></p>
    29                     <p><span class="dashicons dashicons-yes text-indigo-600"></span> <?php echo __('Custom Colors', 'social-contact-form'); ?></p>
    30                     <p><span class="dashicons dashicons-yes text-indigo-600"></span> <?php echo __('Custom Sizes', 'social-contact-form'); ?></p>
    31                     <p><span class="dashicons dashicons-yes text-indigo-600"></span> <?php echo __('Full customization', 'social-contact-form'); ?></p>
    32                     <p><span class="dashicons dashicons-yes text-indigo-600"></span> <?php echo __('WhatsApp web for Desktop', 'social-contact-form'); ?></p>
    33                     <p><span class="dashicons dashicons-yes text-indigo-600"></span> <?php echo __('Personalized Preset message', 'social-contact-form'); ?></p>
    34                     <p><span class="dashicons dashicons-yes text-indigo-600"></span> <?php echo __('Access form leads', 'social-contact-form'); ?></p>
    35                     <p><span class="dashicons dashicons-yes text-indigo-600"></span> <?php echo __('Export form leads', 'social-contact-form'); ?></p>
    36                     <p><span class="dashicons dashicons-yes text-indigo-600"></span> <?php echo __('Official updates', 'social-contact-form'); ?></p>
    37                     <p><span class="dashicons dashicons-yes text-indigo-600"></span> <?php echo __('24x7 Support', 'social-contact-form'); ?></p>
    38                 </div>
    3983            </div>
     84
    4085        </div>
    41         <div class="flex items-center">
    42             <a href="https://wppool.dev/social-contact-form/?ref=<?php echo esc_url(home_url()); ?>" _target="_blank" class="text-center w-full bg-indigo-600 text-white font-semibold py-3 px-4 rounded-md hover:opacity-90" href="" target="_blank">
     86        <div class="flex items-center">
     87            <a href="https://" href="" target="_blank">
    4388                <?php echo __('Upgrade now', 'social-contact-form'); ?> </a>
    4489        </div>
    45         <!-- </div> -->
     90
    4691    </div>
    4792</div>
Note: See TracChangeset for help on using the changeset viewer.