Plugin Directory

Changeset 3407115


Ignore:
Timestamp:
12/01/2025 05:44:49 PM (4 months ago)
Author:
uncannyowl
Message:

Frontend login fix for iPhones

Location:
uncanny-learndash-toolkit
Files:
16 edited
1 copied

Legend:

Unmodified
Added
Removed
  • uncanny-learndash-toolkit/tags/3.8.0.1/languages/uncanny-learndash-toolkit.pot

    r3395254 r3407115  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Uncanny Toolkit for LearnDash 3.8.0\n"
     5"Project-Id-Version: Uncanny Toolkit for LearnDash 3.8.0.1\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/uncanny-learndash-toolkit\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2025-11-13T12:27:50+00:00\n"
     12"POT-Creation-Date: 2025-12-01T17:39:59+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
  • uncanny-learndash-toolkit/tags/3.8.0.1/readme.txt

    r3395257 r3407115  
    55Tested up to: 6.8.3
    66Requires PHP: 7.4
    7 Stable tag: 3.8.0
     7Stable tag: 3.8.0.1
    88License: This plugin is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or any later version. Uncanny Toolkit for LearnDash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Uncanny Toolkit for LearnDash. If not, see https://www.gnu.org/licenses/gpl-3.0.html.
    99License URI: https://www.gnu.org/licenses/gpl-3.0.html
     
    105105== Changelog ==
    106106
    107 = 3.8.0 [2025-11-13] =
     107= 3.8.0.1 [2025-12-01] =
     108
     109*Fixed:*
     110
     111* Front End Login - Resolved an issue where the password field was not working properly on iPhones #464
     112
     113= 3.8.0 [2025-11-11] =
    108114
    109115**Added** 
  • uncanny-learndash-toolkit/tags/3.8.0.1/src/assets/frontend/dist/bundle.min.css

    r3395254 r3407115  
    1 .ult--fade-in{animation:ult_fadein .3s}.ult--fade-out{animation:ult_fadeout .3s}@keyframes ult_fadein{0%{opacity:0}to{opacity:1}}@keyframes ult_fadeout{0%{opacity:1}to{opacity:0}}@keyframes ult_rotating_centered{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}.ult-box{background:#fff;border:1px solid #dfdfdf;border-radius:3px;box-shadow:0 7px 15px 0 rgba(0,0,0,.1);font-family:-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;padding:20px 25px 25px;position:relative;width:100%}.ult-box,.ult-box *{box-sizing:border-box}.ult-form__description~.ult-form__container,.ult-form__title~.ult-form__container{border-top:1px solid #d8d8d8;margin-top:15px}.ult-form__container form{outline:0}.ult-form__container form p{margin:15px 0 0}.ult-form__container form p:empty{display:none}.ult-form__row{margin-top:15px}.ult-form__field{margin-top:8px}.ult-form__title{color:#202020;font-size:20px;line-height:1.2}.ult-form__description{color:#636363;font-size:15px;line-height:1.3;margin-top:10px}.ult-form-field__header{display:flex}.ult-form-field__label-container{flex:1 1 auto}.ult-form-field__label{color:#404040}.ult-form-field__actions{flex:0 0 auto}.ult-form-field__action{color:#0790e8;font-size:14px;text-decoration:none}.ult-form-password-wrapper,.ult-form__container :not(.ult-form-password-wrapper)>input[type=password],.ult-form__container :not(.ult-form-password-wrapper)>input[type=tel],.ult-form__container :not(.ult-form-password-wrapper)>input[type=text],:not(.ult-form-password-wrapper)>.ult-form__input{background:var(--ult-form-field-background,#fff);border:1px solid var(--ult-form-field-border-color,#c1c5c8);border-radius:var(--ult-form-field-border-radius,8px);box-shadow:var(--ult-form-field-box-shadow,0 2px 5px 0 rgba(0,0,0,.1));color:var(--ult-form-field-color,#404040);display:block;font-family:inherit;font-size:inherit;line-height:1.3;margin-top:8px;outline:none;padding:var(--ult-form-field-padding,8px 10px);transition:border .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.ult-form-password-wrapper:hover,.ult-form__container :not(.ult-form-password-wrapper)>input[type=password]:hover,.ult-form__container :not(.ult-form-password-wrapper)>input[type=tel]:hover,.ult-form__container :not(.ult-form-password-wrapper)>input[type=text]:hover,:not(.ult-form-password-wrapper)>.ult-form__input:hover{border-color:var(--ult-form-field-hover-border-color,#b1b5b7)}.ult-form-password-wrapper.ult-form-password-wrapper--focus,.ult-form-password-wrapper:focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=password].ult-form-password-wrapper--focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=password]:focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=tel].ult-form-password-wrapper--focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=tel]:focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=text].ult-form-password-wrapper--focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=text]:focus,:not(.ult-form-password-wrapper)>.ult-form__input.ult-form-password-wrapper--focus,:not(.ult-form-password-wrapper)>.ult-form__input:focus{border-color:var(--ult-form-field-focus-border-color,#0790e8);box-shadow:var(--ult-form-field-focus-box-shadow,0 0 0 .2rem rgba(7,144,232,.2))}.ult-form-password-wrapper{align-items:center;display:flex;gap:5px}.ult-form-password-wrapper input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0!important;box-shadow:none!important;flex:1 1 auto;font-family:inherit!important;font-size:inherit!important;margin:0!important;outline:0!important;padding:0!important}.ult-form-password-wrapper input::-ms-clear,.ult-form-password-wrapper input::-ms-reveal{display:none}.ult-form-password-wrapper input::-webkit-credentials-auto-fill-button,.ult-form-password-wrapper input::-webkit-credentials-auto-fill-button:active,.ult-form-password-wrapper input::-webkit-credentials-auto-fill-button:hover{display:none!important;pointer-events:none!important;visibility:hidden!important}.ult-form-password-wrapper input::-webkit-textfield-decoration-container{display:none!important}.ult-form-password-wrapper input::-moz-textfield-decoration-container{display:none!important}.ult-form-password-wrapper-eye-toggle{align-items:center;color:#7f7f7f;cursor:pointer;display:flex;flex:0 0 auto;height:20px;justify-content:center;width:20px}.ult-checkbox{width:100%}.ult-checkbox__container{cursor:pointer;display:block;position:relative;transition:opacity .15s ease-in-out}.ult-checkbox__hidden-input{display:none}.ult-checkbox .ult-checkbox__fake-input{border:1px solid #afafaf;border-radius:8px;box-shadow:0 2px 5px 0 rgba(0,0,0,.1);box-sizing:border-box;height:16px;position:relative;transition:border .15s ease-in-out;width:16px}.ult-checkbox .ult-checkbox__container:hover .ult-checkbox__fake-input{border-color:#979797}.ult-checkbox .ult-checkbox__fake-input:after{content:"";display:block;opacity:0;position:absolute;transition:all .15s ease-in-out}.ult-checkbox .ult-checkbox__hidden-input:checked~.ult-checkbox__fake-input:after{opacity:1}.ult-checkbox .ult-checkbox__container .ult-checkbox__fake-input:after{border:solid #0790e8;border-width:0 3px 3px 0;height:7px;left:4px;top:1px;transform:rotate(45deg);width:3px}.ult-checkbox .checkbox--primary:checked~.ult-checkbox__fake-input{border-color:#0790e8}.ult-checkbox .checkbox--primary:disabled~.ult-checkbox__fake-input{background:#fff;border:1px solid #b9b9b9;cursor:not-allowed}.ult-checkbox .checkbox--primary:checked:disabled~.ult-checkbox__fake-input{background:#38aece;cursor:not-allowed;opacity:.6}#ult-2fa-validation-form--templated #submit,#ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend],#ult-login-form #ult-login-submit,.ult-form__submit-btn{background:#0790e8;border:1px solid transparent;border-radius:8px;box-shadow:0 2px 5px 0 rgba(0,0,0,.1);cursor:pointer;display:inline-block;font-size:16px;font-weight:400;line-height:1.5;outline:none;padding:8px 15px;position:relative;text-align:center;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,opacity .15s ease-in-out;user-select:none;vertical-align:middle;white-space:nowrap;width:100%}#ult-login p.submit,#ult-login-form .login-submit,.ult-form__row--submit{position:relative}#ult-forgot-password .ult-form__row--submit:not(.ult-form__submit-btn--loading) #ult-forgot-password-submit-btn:focus,#ult-login-form .login-submit:not(.ult-form__submit-btn--loading) #ult-login-submit:focus,.ult-form__submit-btn:not(.ult-form__submit-btn--loading):focus{box-shadow:0 0 0 .2rem rgba(7,144,232,.5)}.ult-form__submit-btn--loading:before{opacity:0;transition:opacity .15s ease-in-out}.ult-form__submit-btn--loading,.ult-form__submit-btn--loading #ult-forgot-password-submit-btn,.ult-form__submit-btn--loading #ult-login-submit,.ult-form__submit-btn--loading #ult-reset-password-submit-btn,.ult-form__submit-btn--loading input[type=submit]{color:transparent!important}.ult-form__submit-btn--loading:before{animation:spin-centered .8s linear infinite;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 512 512' xml:space='preserve' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='m456.433 371.72-27.79-16.045c-7.192-4.152-10.052-13.136-6.487-20.636 25.82-54.328 23.566-118.602-6.768-171.03-30.265-52.529-84.802-86.621-144.76-91.424C262.35 71.922 256 64.953 256 56.649V24.56c0-9.31 7.916-16.609 17.204-15.96 81.795 5.717 156.412 51.902 197.611 123.408 41.301 71.385 43.99 159.096 8.042 232.792-4.082 8.369-14.361 11.575-22.424 6.92z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:contain;content:"";height:18px;left:50%;opacity:1;position:absolute;top:60%;transform:translate(-50%,-50%);transform-origin:0 0;width:18px;z-index:2}.ult-form__submit-btn--disabled{cursor:not-allowed;opacity:.6;pointer-events:none}@-ms-keyframes spin-centered{0%{-ms-transform:rotate(0deg) translate(-50%,-50%)}to{-ms-transform:rotate(1turn) translate(-50%,-50%)}}@-moz-keyframes spin-centered{0%{-moz-transform:rotate(0deg) translate(-50%,-50%)}to{-moz-transform:rotate(1turn) translate(-50%,-50%)}}@-webkit-keyframes spin-centered{0%{-webkit-transform:rotate(0deg) translate(-50%,-50%)}to{-webkit-transform:rotate(1turn) translate(-50%,-50%)}}@keyframes spin-centered{0%{transform:rotate(0deg) translate(-50%,-50%)}to{transform:rotate(1turn) translate(-50%,-50%)}}.ult-form__row--remember-me{align-items:center;display:flex}.ult-form__row--remember-me .ult-form__field{flex:0 0 auto;margin:0 8px 0 0}.ult-form__row--remember-me .ult-form-field__header{flex:1 1 auto}.ult-form__row--remember-me .ult-form-field__label{color:#636363;cursor:pointer;user-select:none}.ult-form__validation{display:none;margin-top:15px}.ult-form__validation--has-error{display:block}.ult-form__validation:first-child{margin-bottom:15px;margin-top:0}.ult-form__validation .ult-notice p{margin:0}.ult-form__footer{border-top:1px solid #d8d8d8;margin-top:25px;padding-top:15px;text-align:center}.ult-form__footer a{color:#0790e8;text-decoration:none}.ult-form__container .two-factor-error-notice{margin-top:20px}.ult-form__container .uo-toolkit-2fa-footer{align-content:center;display:flex;flex-wrap:wrap;justify-content:space-evenly;margin-top:20px}.ult-form__container .uo-toolkit-2fa-footer__backto-home,.ult-form__container .uo-toolkit-2fa-footer__backup-codes{text-align:center}.ult-form__container .uo-toolkit-2fa-footer a{color:#0790e8;text-decoration:none}.ult-notice{border:1px solid #d8d8d8;border-radius:3px;color:#737373;line-height:1.3;padding:15px;text-align:center}.ult-notice--error{background:#fceded}.ult-notice--success{background:#edfcef}.ult-modal{display:none}.ult-modal-container .ult-modal{display:block}.ult-modal-container{display:none;height:100%;left:0;position:fixed;top:0;width:100%;z-index:100000}.ult-modal-container--open{display:block}.ult-modal__inside{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.ult-modal-box{background:#fff;border-radius:8px;box-shadow:0 4px 16px 0 rgba(0,0,0,.2);display:flex;flex-direction:column;max-height:calc(100vh - 40px);max-width:565px;overflow-y:auto;overflow:hidden;position:relative;width:calc(100% - 40px)}.ult-modal-box:before{background:#fff;border-radius:8px;left:0;top:0;z-index:10}.ult-modal-box:after,.ult-modal-box:before{content:"";height:0;opacity:0;position:absolute;transition:opacity .3s ease-in-out;width:0}.ult-modal-box:after{border-radius:50%;left:50%;top:50%;user-select:none;z-index:11}.ult-modal-container--loading .ult-modal-box:before{height:100%;opacity:1;width:100%}.ult-modal-container--loading .ult-modal-box:after{animation:ult_rotating_centered 2s linear infinite;border:3px solid transparent;border-top-color:#202020;height:50px;opacity:1;width:50px}.ult-modal--small .ult-modal-box{max-width:385px}.ult-modal--large .ult-modal-box{max-width:750px}.ult-modal-box-header{padding:20px;text-align:center}.ult-modal-box-header h1,.ult-modal-box-header h2,.ult-modal-box-header h3{font-size:30px;font-weight:500;line-height:32px;margin:0;padding:20px 20px 0}.ult-modal-box-content{display:inline-flex;flex:1 1 auto;overflow:hidden;position:relative;width:100%}.ult-modal{font-size:16px;font-weight:400;margin:0;max-height:300px;outline:none;overflow-y:auto;padding:20px 40px;position:relative;width:100%}.ult-modal-box-content__inside::-webkit-scrollbar{background-color:rgba(0,0,0,.09);border-radius:150px;width:10px}.ult-modal-box-content__inside::-webkit-scrollbar-thumb:vertical{background:#afafaf;background-clip:padding-box;border:2px solid transparent;border-radius:150px;min-height:10px}.ult-modal-box-content__br{display:block;height:10px;width:100%}.ult-modal-box-footer{flex:1 1 auto;margin:0 20px 20px;overflow:hidden;padding:20px;text-align:center}.ult-modal-box-footer__dismiss{background:transparent;border:0;border-radius:150px;color:#0077c5;cursor:pointer;display:inline-block;font-size:16px;font-weight:600;line-height:1.1;padding:10px 20px;transition:background .15s ease-in-out}.ult-modal-box-footer__dismiss:hover{background:#dadadc}.ult-modal-box-footer__dismiss:active{background:#c4c4c6}@media screen and (max-width:1000px){.ult-modal-box-header h1,.ult-modal-box-header h2,.ult-modal-box-header h3{font-size:24px;line-height:26px}}body.ult-modals--open{overflow:hidden!important}body.ult-modals--dim-background .ult-modal-container{background:rgba(0,0,0,.4)}#ult-modal-container-ult-login .ult-box{border:0;box-shadow:none;padding:0}#ult-modal-container-ult-login .ult-modal{max-height:680px}.ult-forgot-password--recaptcha-error .g-recaptcha iframe,.ult-login--recaptcha-error .g-recaptcha iframe,.ult-reset-password--recaptcha-error .g-recaptcha iframe{border:1px solid red;border-radius:4px}#ult-login-modal.ult-login-modal--login #ult-login-modal__login{display:block}#ult-login-modal.ult-login-modal--forgot-password #ult-login-modal__login,#ult-login-modal.ult-login-modal--login #ult-login-modal__forgot-password{display:none}#ult-login-modal.ult-login-modal--forgot-password #ult-login-modal__forgot-password{display:block}.uo-modern-ui{--modern-primary:#0073aa;--modern-primary-dark:#005a87;--modern-secondary:#00a0d2;--modern-accent:#ff6900;--modern-surface:#fff;--modern-background:#f8f9fa;--modern-text-primary:#2d3748;--modern-text-secondary:#718096;--modern-border:#e2e8f0;--modern-error:#e53e3e;--modern-success:#38a169;--modern-shadow:0 2px 4px rgba(0,0,0,.1);--modern-shadow-elevated:0 4px 8px rgba(0,0,0,.15);--modern-shadow-focus:0 0 0 3px rgba(0,115,170,.3)}.uo-modern-ui #ult-forgot-password,.uo-modern-ui #ult-login,.uo-modern-ui #ult-reset-password{align-items:center;background:var(--modern-background);display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;justify-content:center;min-height:100vh;padding:20px;position:relative}.uo-modern-ui .ult-box{background:var(--modern-surface);border:1px solid var(--modern-border);border-radius:12px;box-shadow:var(--modern-shadow);box-sizing:border-box;margin-left:auto;margin-right:auto;padding:48px;position:relative;transition:all .3s ease;width:100%}.uo-modern-ui .ult-box:before{background:var(--modern-primary);border-radius:10px 10px 0 0;content:"";height:7px;left:0;position:absolute;right:0;top:0;z-index:1}.uo-modern-ui .ult-box:hover{box-shadow:var(--modern-shadow-elevated)}.uo-modern-ui .ult-form__title{color:var(--modern-primary);font-size:32px;font-weight:700;letter-spacing:-1px;margin-bottom:12px;position:relative;text-align:center}.uo-modern-ui .ult-form__title:after{background:var(--modern-primary);border-radius:2px;bottom:-8px;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:60px}.uo-modern-ui .ult-form__description{color:var(--modern-text-primary);font-size:16px;font-weight:400;line-height:1.6;margin-bottom:40px;text-align:center}.uo-modern-ui .ult-form__container{background:transparent;border-radius:0;box-shadow:none;padding:0}.uo-modern-ui .ult-form__row{margin-bottom:32px;position:relative}.uo-modern-ui .ult-form-field__header{margin-bottom:12px}.uo-modern-ui .ult-form-field__label{display:block;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.uo-modern-ui .ult-form-field__label,.uo-modern-ui label{color:var(--modern-text-primary);font-size:14px;font-weight:600}.uo-modern-ui .ult-form__input{background:var(--modern-surface);border:2px solid var(--modern-border);border-radius:8px;box-sizing:border-box;color:var(--modern-text-primary);font-size:16px;padding:20px 24px;transition:all .3s ease;width:100%}.uo-modern-ui .ult-form__input:focus{border-color:var(--modern-primary);box-shadow:var(--modern-shadow-focus);outline:none}.uo-modern-ui .ult-form__input:hover{border-color:var(--modern-primary)}.uo-modern-ui .ult-form__input::placeholder{color:var(--modern-text-secondary);font-weight:400}.uo-modern-ui #ult-2fa-validation-form--templated #submit,.uo-modern-ui #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend],.uo-modern-ui #ult-forgot-password-submit-btn,.uo-modern-ui #ult-login-form #ult-login-submit,.uo-modern-ui #ult-login-submit,.uo-modern-ui #ult-reset-password-submit-btn,.uo-modern-ui .ult-form__submit-btn{background:var(--modern-primary)!important;border:none!important;border-radius:8px!important;box-shadow:var(--modern-shadow);color:#fff!important;cursor:pointer;font-size:16px!important;font-weight:600!important;letter-spacing:1px;line-height:1.4;margin-top:16px;padding:18px 32px!important;text-transform:uppercase;transition:all .3s ease;width:100%!important}.uo-modern-ui #ult-2fa-validation-form--templated #submit:hover,.uo-modern-ui #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend]:hover,.uo-modern-ui #ult-forgot-password-submit-btn:hover,.uo-modern-ui #ult-login-form #ult-login-submit:hover,.uo-modern-ui #ult-login-submit:hover,.uo-modern-ui #ult-reset-password-submit-btn:hover,.uo-modern-ui .ult-form__submit-btn:hover{background:var(--modern-primary-dark)!important;box-shadow:var(--modern-shadow-elevated);color:#fff!important}.uo-modern-ui #ult-2fa-validation-form--templated #submit:focus,.uo-modern-ui #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend]:focus,.uo-modern-ui #ult-forgot-password-submit-btn:focus,.uo-modern-ui #ult-login-form #ult-login-submit:focus,.uo-modern-ui #ult-login-submit:focus,.uo-modern-ui #ult-reset-password-submit-btn:focus,.uo-modern-ui .ult-form__submit-btn:focus{box-shadow:var(--modern-shadow-focus)!important;outline:none}.uo-modern-ui #ult-2fa-validation-form--templated #submit:active,.uo-modern-ui #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend]:active,.uo-modern-ui #ult-forgot-password-submit-btn:active,.uo-modern-ui #ult-login-form #ult-login-submit:active,.uo-modern-ui #ult-login-submit:active,.uo-modern-ui #ult-reset-password-submit-btn:active,.uo-modern-ui .ult-form__submit-btn:active{transform:translateY(1px)}.uo-modern-ui .ult-form__row--remember{align-items:center;display:flex;margin-bottom:32px}.uo-modern-ui #ult-login-remember{accent-color:var(--modern-primary);border-radius:4px;height:20px;margin-right:12px;width:20px}.uo-modern-ui .ult-form__row--remember label{color:var(--modern-text-primary);cursor:pointer;font-size:14px;font-weight:500;margin:0}.uo-modern-ui .ult-form__footer{border-top:1px solid var(--modern-border);margin-top:40px;padding-top:32px;text-align:center}.uo-modern-ui .ult-form__footer a{border-radius:8px;color:var(--modern-primary);font-size:14px;font-weight:600;padding:8px 16px;position:relative;text-decoration:none;transition:all .3s ease}.uo-modern-ui .ult-form__footer a:before{background:var(--modern-primary);bottom:0;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%);transition:all .3s ease;width:0}.uo-modern-ui .ult-form__footer a:hover{background:rgba(0,115,170,.1);color:var(--modern-primary-dark)}.uo-modern-ui .ult-form__footer a:hover:before{width:80%}.uo-modern-ui .ult-form-footer__forgot-password,.uo-modern-ui .ult-form-footer__login,.uo-modern-ui .ult-form-footer__signup{margin-bottom:16px}.uo-modern-ui .ult-form-footer__forgot-password:last-child,.uo-modern-ui .ult-form-footer__login:last-child,.uo-modern-ui .ult-form-footer__signup:last-child{margin-bottom:0}.uo-modern-ui .ult-notice{border:none;border-radius:8px;font-weight:500;margin-bottom:24px;padding:20px 24px;position:relative}.uo-modern-ui .ult-notice--error{background:rgba(229,62,62,.1);border-left:4px solid var(--modern-error);color:var(--modern-error)}.uo-modern-ui .ult-notice--success{background:rgba(56,161,105,.1);border-left:4px solid var(--modern-success);color:var(--modern-success)}.uo-modern-ui .ult-form__validation{margin-bottom:24px}.uo-modern-ui .ult-form__validation--has-error .ult-form__input{animation:shake .5s ease-in-out;border-color:var(--modern-error)}.uo-modern-ui .ult-form-recaptcha{margin-top:20px}@media(max-width:768px){.uo-modern-ui .ult-box{border-radius:12px;margin:0;padding:32px 24px}.uo-modern-ui .ult-form__title{font-size:28px}.uo-modern-ui .ult-form__input{padding:18px 20px}.uo-modern-ui #ult-forgot-password-submit-btn,.uo-modern-ui #ult-login-submit,.uo-modern-ui #ult-reset-password-submit-btn,.uo-modern-ui .ult-form__submit-btn{padding:16px 24px}}.uo-modern-ui #ult-forgot-password-submit-btn:disabled,.uo-modern-ui #ult-login-submit:disabled,.uo-modern-ui #ult-reset-password-submit-btn:disabled,.uo-modern-ui .ult-form__submit-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.uo-modern-ui #ult-forgot-password-submit-btn:focus,.uo-modern-ui #ult-login-submit:focus,.uo-modern-ui #ult-reset-password-submit-btn:focus,.uo-modern-ui .ult-form__input:focus,.uo-modern-ui .ult-form__submit-btn:focus{outline:none}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.uo-modern-ui .ult-box{animation:slideUp .4s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.uo_loginForm .galogin{margin-top:15px}.uo_loginForm form .login-remember label{align-items:center;display:flex}.uo_loginForm form .login-username input[type=text],.uo_loginForm form .ult-form-password-wrapper{height:40px}.uo_loginForm form .login-password input[type=password]{background:#fff;height:33px}
     1.ult--fade-in{animation:ult_fadein .3s}.ult--fade-out{animation:ult_fadeout .3s}@keyframes ult_fadein{0%{opacity:0}to{opacity:1}}@keyframes ult_fadeout{0%{opacity:1}to{opacity:0}}@keyframes ult_rotating_centered{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}.ult-box{background:#fff;border:1px solid #dfdfdf;border-radius:3px;box-shadow:0 7px 15px 0 rgba(0,0,0,.1);font-family:-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;padding:20px 25px 25px;position:relative;width:100%}.ult-box,.ult-box *{box-sizing:border-box}.ult-form__description~.ult-form__container,.ult-form__title~.ult-form__container{border-top:1px solid #d8d8d8;margin-top:15px}.ult-form__container form{outline:0}.ult-form__container form p{margin:15px 0 0}.ult-form__container form p:empty{display:none}.ult-form__row{margin-top:15px}.ult-form__field{margin-top:8px}.ult-form__title{color:#202020;font-size:20px;line-height:1.2}.ult-form__description{color:#636363;font-size:15px;line-height:1.3;margin-top:10px}.ult-form-field__header{display:flex}.ult-form-field__label-container{flex:1 1 auto}.ult-form-field__label{color:#404040}.ult-form-field__actions{flex:0 0 auto}.ult-form-field__action{color:#0790e8;font-size:14px;text-decoration:none}.ult-form-password-wrapper,.ult-form__container :not(.ult-form-password-wrapper)>input[type=password],.ult-form__container :not(.ult-form-password-wrapper)>input[type=tel],.ult-form__container :not(.ult-form-password-wrapper)>input[type=text],:not(.ult-form-password-wrapper)>.ult-form__input{background:var(--ult-form-field-background,#fff);border:1px solid var(--ult-form-field-border-color,#c1c5c8);border-radius:var(--ult-form-field-border-radius,8px);box-shadow:var(--ult-form-field-box-shadow,0 2px 5px 0 rgba(0,0,0,.1));color:var(--ult-form-field-color,#404040);display:block;font-family:inherit;font-size:inherit;line-height:1.3;margin-top:8px;outline:none;padding:var(--ult-form-field-padding,8px 10px);transition:border .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.ult-form-password-wrapper:hover,.ult-form__container :not(.ult-form-password-wrapper)>input[type=password]:hover,.ult-form__container :not(.ult-form-password-wrapper)>input[type=tel]:hover,.ult-form__container :not(.ult-form-password-wrapper)>input[type=text]:hover,:not(.ult-form-password-wrapper)>.ult-form__input:hover{border-color:var(--ult-form-field-hover-border-color,#b1b5b7)}.ult-form-password-wrapper.ult-form-password-wrapper--focus,.ult-form-password-wrapper:focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=password].ult-form-password-wrapper--focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=password]:focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=tel].ult-form-password-wrapper--focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=tel]:focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=text].ult-form-password-wrapper--focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=text]:focus,:not(.ult-form-password-wrapper)>.ult-form__input.ult-form-password-wrapper--focus,:not(.ult-form-password-wrapper)>.ult-form__input:focus{border-color:var(--ult-form-field-focus-border-color,#0790e8);box-shadow:var(--ult-form-field-focus-box-shadow,0 0 0 .2rem rgba(7,144,232,.2))}.ult-form-password-wrapper-eye-toggle{align-items:center;background:#fff;border-bottom-right-radius:6px;border-top-right-radius:6px;color:#7f7f7f;cursor:pointer;display:flex;height:37px;justify-content:center;margin-top:16px;padding:8px;pointer-events:auto;position:absolute;right:2px;top:50%;transform:translateY(-50%);width:38px;z-index:10}.ult-checkbox{width:100%}.ult-checkbox__container{cursor:pointer;display:block;position:relative;transition:opacity .15s ease-in-out}.ult-checkbox__hidden-input{display:none}.ult-checkbox .ult-checkbox__fake-input{border:1px solid #afafaf;border-radius:8px;box-shadow:0 2px 5px 0 rgba(0,0,0,.1);box-sizing:border-box;height:16px;position:relative;transition:border .15s ease-in-out;width:16px}.ult-checkbox .ult-checkbox__container:hover .ult-checkbox__fake-input{border-color:#979797}.ult-checkbox .ult-checkbox__fake-input:after{content:"";display:block;opacity:0;position:absolute;transition:all .15s ease-in-out}.ult-checkbox .ult-checkbox__hidden-input:checked~.ult-checkbox__fake-input:after{opacity:1}.ult-checkbox .ult-checkbox__container .ult-checkbox__fake-input:after{border:solid #0790e8;border-width:0 3px 3px 0;height:7px;left:4px;top:1px;transform:rotate(45deg);width:3px}.ult-checkbox .checkbox--primary:checked~.ult-checkbox__fake-input{border-color:#0790e8}.ult-checkbox .checkbox--primary:disabled~.ult-checkbox__fake-input{background:#fff;border:1px solid #b9b9b9;cursor:not-allowed}.ult-checkbox .checkbox--primary:checked:disabled~.ult-checkbox__fake-input{background:#38aece;cursor:not-allowed;opacity:.6}#ult-2fa-validation-form--templated #submit,#ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend],#ult-login-form #ult-login-submit,.ult-form__submit-btn{background:#0790e8;border:1px solid transparent;border-radius:8px;box-shadow:0 2px 5px 0 rgba(0,0,0,.1);cursor:pointer;display:inline-block;font-size:16px;font-weight:400;line-height:1.5;outline:none;padding:8px 15px;position:relative;text-align:center;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,opacity .15s ease-in-out;user-select:none;vertical-align:middle;white-space:nowrap;width:100%}#ult-login p.submit,#ult-login-form .login-submit,.ult-form__row--submit{position:relative}#ult-forgot-password .ult-form__row--submit:not(.ult-form__submit-btn--loading) #ult-forgot-password-submit-btn:focus,#ult-login-form .login-submit:not(.ult-form__submit-btn--loading) #ult-login-submit:focus,.ult-form__submit-btn:not(.ult-form__submit-btn--loading):focus{box-shadow:0 0 0 .2rem rgba(7,144,232,.5)}.ult-form__submit-btn--loading:before{opacity:0;transition:opacity .15s ease-in-out}.ult-form__submit-btn--loading,.ult-form__submit-btn--loading #ult-forgot-password-submit-btn,.ult-form__submit-btn--loading #ult-login-submit,.ult-form__submit-btn--loading #ult-reset-password-submit-btn,.ult-form__submit-btn--loading input[type=submit]{color:transparent!important}.ult-form__submit-btn--loading:before{animation:spin-centered .8s linear infinite;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 512 512' xml:space='preserve' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='m456.433 371.72-27.79-16.045c-7.192-4.152-10.052-13.136-6.487-20.636 25.82-54.328 23.566-118.602-6.768-171.03-30.265-52.529-84.802-86.621-144.76-91.424C262.35 71.922 256 64.953 256 56.649V24.56c0-9.31 7.916-16.609 17.204-15.96 81.795 5.717 156.412 51.902 197.611 123.408 41.301 71.385 43.99 159.096 8.042 232.792-4.082 8.369-14.361 11.575-22.424 6.92z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:contain;content:"";height:18px;left:50%;opacity:1;position:absolute;top:60%;transform:translate(-50%,-50%);transform-origin:0 0;width:18px;z-index:2}.ult-form__submit-btn--disabled{cursor:not-allowed;opacity:.6;pointer-events:none}@-ms-keyframes spin-centered{0%{-ms-transform:rotate(0deg) translate(-50%,-50%)}to{-ms-transform:rotate(1turn) translate(-50%,-50%)}}@-moz-keyframes spin-centered{0%{-moz-transform:rotate(0deg) translate(-50%,-50%)}to{-moz-transform:rotate(1turn) translate(-50%,-50%)}}@-webkit-keyframes spin-centered{0%{-webkit-transform:rotate(0deg) translate(-50%,-50%)}to{-webkit-transform:rotate(1turn) translate(-50%,-50%)}}@keyframes spin-centered{0%{transform:rotate(0deg) translate(-50%,-50%)}to{transform:rotate(1turn) translate(-50%,-50%)}}.ult-form__row--remember-me{align-items:center;display:flex}.ult-form__row--remember-me .ult-form__field{flex:0 0 auto;margin:0 8px 0 0}.ult-form__row--remember-me .ult-form-field__header{flex:1 1 auto}.ult-form__row--remember-me .ult-form-field__label{color:#636363;cursor:pointer;user-select:none}.ult-form__validation{display:none;margin-top:15px}.ult-form__validation--has-error{display:block}.ult-form__validation:first-child{margin-bottom:15px;margin-top:0}.ult-form__validation .ult-notice p{margin:0}.ult-form__footer{border-top:1px solid #d8d8d8;margin-top:25px;padding-top:15px;text-align:center}.ult-form__footer a{color:#0790e8;text-decoration:none}.ult-form__container .two-factor-error-notice{margin-top:20px}.ult-form__container .uo-toolkit-2fa-footer{align-content:center;display:flex;flex-wrap:wrap;justify-content:space-evenly;margin-top:20px}.ult-form__container .uo-toolkit-2fa-footer__backto-home,.ult-form__container .uo-toolkit-2fa-footer__backup-codes{text-align:center}.ult-form__container .uo-toolkit-2fa-footer a{color:#0790e8;text-decoration:none}.ult-notice{border:1px solid #d8d8d8;border-radius:3px;color:#737373;line-height:1.3;padding:15px;text-align:center}.ult-notice--error{background:#fceded}.ult-notice--success{background:#edfcef}.ult-modal{display:none}.ult-modal-container .ult-modal{display:block}.ult-modal-container{display:none;height:100%;left:0;position:fixed;top:0;width:100%;z-index:100000}.ult-modal-container--open{display:block}.ult-modal__inside{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.ult-modal-box{background:#fff;border-radius:8px;box-shadow:0 4px 16px 0 rgba(0,0,0,.2);display:flex;flex-direction:column;max-height:calc(100vh - 40px);max-width:565px;overflow-y:auto;overflow:hidden;position:relative;width:calc(100% - 40px)}.ult-modal-box:before{background:#fff;border-radius:8px;left:0;top:0;z-index:10}.ult-modal-box:after,.ult-modal-box:before{content:"";height:0;opacity:0;position:absolute;transition:opacity .3s ease-in-out;width:0}.ult-modal-box:after{border-radius:50%;left:50%;top:50%;user-select:none;z-index:11}.ult-modal-container--loading .ult-modal-box:before{height:100%;opacity:1;width:100%}.ult-modal-container--loading .ult-modal-box:after{animation:ult_rotating_centered 2s linear infinite;border:3px solid transparent;border-top-color:#202020;height:50px;opacity:1;width:50px}.ult-modal--small .ult-modal-box{max-width:385px}.ult-modal--large .ult-modal-box{max-width:750px}.ult-modal-box-header{padding:20px;text-align:center}.ult-modal-box-header h1,.ult-modal-box-header h2,.ult-modal-box-header h3{font-size:30px;font-weight:500;line-height:32px;margin:0;padding:20px 20px 0}.ult-modal-box-content{display:inline-flex;flex:1 1 auto;overflow:hidden;position:relative;width:100%}.ult-modal{font-size:16px;font-weight:400;margin:0;max-height:300px;outline:none;overflow-y:auto;padding:20px 40px;position:relative;width:100%}.ult-modal-box-content__inside::-webkit-scrollbar{background-color:rgba(0,0,0,.09);border-radius:150px;width:10px}.ult-modal-box-content__inside::-webkit-scrollbar-thumb:vertical{background:#afafaf;background-clip:padding-box;border:2px solid transparent;border-radius:150px;min-height:10px}.ult-modal-box-content__br{display:block;height:10px;width:100%}.ult-modal-box-footer{flex:1 1 auto;margin:0 20px 20px;overflow:hidden;padding:20px;text-align:center}.ult-modal-box-footer__dismiss{background:transparent;border:0;border-radius:150px;color:#0077c5;cursor:pointer;display:inline-block;font-size:16px;font-weight:600;line-height:1.1;padding:10px 20px;transition:background .15s ease-in-out}.ult-modal-box-footer__dismiss:hover{background:#dadadc}.ult-modal-box-footer__dismiss:active{background:#c4c4c6}@media screen and (max-width:1000px){.ult-modal-box-header h1,.ult-modal-box-header h2,.ult-modal-box-header h3{font-size:24px;line-height:26px}}body.ult-modals--open{overflow:hidden!important}body.ult-modals--dim-background .ult-modal-container{background:rgba(0,0,0,.4)}#ult-modal-container-ult-login .ult-box{border:0;box-shadow:none;padding:0}#ult-modal-container-ult-login .ult-modal{max-height:680px}.ult-forgot-password--recaptcha-error .g-recaptcha iframe,.ult-login--recaptcha-error .g-recaptcha iframe,.ult-reset-password--recaptcha-error .g-recaptcha iframe{border:1px solid red;border-radius:4px}#ult-login-modal.ult-login-modal--login #ult-login-modal__login{display:block}#ult-login-modal.ult-login-modal--forgot-password #ult-login-modal__login,#ult-login-modal.ult-login-modal--login #ult-login-modal__forgot-password{display:none}#ult-login-modal.ult-login-modal--forgot-password #ult-login-modal__forgot-password{display:block}.uo-modern-ui{--modern-primary:#0073aa;--modern-primary-dark:#005a87;--modern-secondary:#00a0d2;--modern-accent:#ff6900;--modern-surface:#fff;--modern-background:#f8f9fa;--modern-text-primary:#2d3748;--modern-text-secondary:#718096;--modern-border:#e2e8f0;--modern-error:#e53e3e;--modern-success:#38a169;--modern-shadow:0 2px 4px rgba(0,0,0,.1);--modern-shadow-elevated:0 4px 8px rgba(0,0,0,.15);--modern-shadow-focus:0 0 0 3px rgba(0,115,170,.3)}.uo-modern-ui #ult-forgot-password,.uo-modern-ui #ult-login,.uo-modern-ui #ult-reset-password{align-items:center;background:var(--modern-background);display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;justify-content:center;min-height:100vh;padding:20px;position:relative}.uo-modern-ui .ult-box{background:var(--modern-surface);border:1px solid var(--modern-border);border-radius:12px;box-shadow:var(--modern-shadow);box-sizing:border-box;margin-left:auto;margin-right:auto;padding:48px;position:relative;transition:all .3s ease;width:100%}.uo-modern-ui .ult-box:before{background:var(--modern-primary);border-radius:10px 10px 0 0;content:"";height:7px;left:0;position:absolute;right:0;top:0;z-index:1}.uo-modern-ui .ult-box:hover{box-shadow:var(--modern-shadow-elevated)}.uo-modern-ui .ult-form__title{color:var(--modern-primary);font-size:32px;font-weight:700;letter-spacing:-1px;margin-bottom:12px;position:relative;text-align:center}.uo-modern-ui .ult-form__title:after{background:var(--modern-primary);border-radius:2px;bottom:-8px;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:60px}.uo-modern-ui .ult-form__description{color:var(--modern-text-primary);font-size:16px;font-weight:400;line-height:1.6;margin-bottom:40px;text-align:center}.uo-modern-ui .ult-form__container{background:transparent;border-radius:0;box-shadow:none;padding:0}.uo-modern-ui .ult-form__row{margin-bottom:32px;position:relative}.uo-modern-ui .ult-form-field__header{margin-bottom:12px}.uo-modern-ui .ult-form-field__label{display:block;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.uo-modern-ui .ult-form-field__label,.uo-modern-ui label{color:var(--modern-text-primary);font-size:14px;font-weight:600}.uo-modern-ui .ult-form__input{background:var(--modern-surface);border:2px solid var(--modern-border);border-radius:8px;box-sizing:border-box;color:var(--modern-text-primary);font-size:16px;padding:20px 24px;transition:all .3s ease;width:100%}.uo-modern-ui .ult-form__input:focus{border-color:var(--modern-primary);box-shadow:var(--modern-shadow-focus);outline:none}.uo-modern-ui .ult-form__input:hover{border-color:var(--modern-primary)}.uo-modern-ui .ult-form__input::placeholder{color:var(--modern-text-secondary);font-weight:400}.uo-modern-ui #ult-2fa-validation-form--templated #submit,.uo-modern-ui #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend],.uo-modern-ui #ult-forgot-password-submit-btn,.uo-modern-ui #ult-login-form #ult-login-submit,.uo-modern-ui #ult-login-submit,.uo-modern-ui #ult-reset-password-submit-btn,.uo-modern-ui .ult-form__submit-btn{background:var(--modern-primary)!important;border:none!important;border-radius:8px!important;box-shadow:var(--modern-shadow);color:#fff!important;cursor:pointer;font-size:16px!important;font-weight:600!important;letter-spacing:1px;line-height:1.4;margin-top:16px;padding:18px 32px!important;text-transform:uppercase;transition:all .3s ease;width:100%!important}.uo-modern-ui #ult-2fa-validation-form--templated #submit:hover,.uo-modern-ui #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend]:hover,.uo-modern-ui #ult-forgot-password-submit-btn:hover,.uo-modern-ui #ult-login-form #ult-login-submit:hover,.uo-modern-ui #ult-login-submit:hover,.uo-modern-ui #ult-reset-password-submit-btn:hover,.uo-modern-ui .ult-form__submit-btn:hover{background:var(--modern-primary-dark)!important;box-shadow:var(--modern-shadow-elevated);color:#fff!important}.uo-modern-ui #ult-2fa-validation-form--templated #submit:focus,.uo-modern-ui #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend]:focus,.uo-modern-ui #ult-forgot-password-submit-btn:focus,.uo-modern-ui #ult-login-form #ult-login-submit:focus,.uo-modern-ui #ult-login-submit:focus,.uo-modern-ui #ult-reset-password-submit-btn:focus,.uo-modern-ui .ult-form__submit-btn:focus{box-shadow:var(--modern-shadow-focus)!important;outline:none}.uo-modern-ui #ult-2fa-validation-form--templated #submit:active,.uo-modern-ui #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend]:active,.uo-modern-ui #ult-forgot-password-submit-btn:active,.uo-modern-ui #ult-login-form #ult-login-submit:active,.uo-modern-ui #ult-login-submit:active,.uo-modern-ui #ult-reset-password-submit-btn:active,.uo-modern-ui .ult-form__submit-btn:active{transform:translateY(1px)}.uo-modern-ui .ult-form__row--remember{align-items:center;display:flex;margin-bottom:32px}.uo-modern-ui #ult-login-remember{accent-color:var(--modern-primary);border-radius:4px;height:20px;margin-right:12px;width:20px}.uo-modern-ui .ult-form__row--remember label{color:var(--modern-text-primary);cursor:pointer;font-size:14px;font-weight:500;margin:0}.uo-modern-ui .ult-form__footer{border-top:1px solid var(--modern-border);margin-top:40px;padding-top:32px;text-align:center}.uo-modern-ui .ult-form__footer a{border-radius:8px;color:var(--modern-primary);font-size:14px;font-weight:600;padding:8px 16px;position:relative;text-decoration:none;transition:all .3s ease}.uo-modern-ui .ult-form__footer a:before{background:var(--modern-primary);bottom:0;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%);transition:all .3s ease;width:0}.uo-modern-ui .ult-form__footer a:hover{background:rgba(0,115,170,.1);color:var(--modern-primary-dark)}.uo-modern-ui .ult-form__footer a:hover:before{width:80%}.uo-modern-ui .ult-form-footer__forgot-password,.uo-modern-ui .ult-form-footer__login,.uo-modern-ui .ult-form-footer__signup{margin-bottom:16px}.uo-modern-ui .ult-form-footer__forgot-password:last-child,.uo-modern-ui .ult-form-footer__login:last-child,.uo-modern-ui .ult-form-footer__signup:last-child{margin-bottom:0}.uo-modern-ui .ult-notice{border:none;border-radius:8px;font-weight:500;margin-bottom:24px;padding:20px 24px;position:relative}.uo-modern-ui .ult-notice--error{background:rgba(229,62,62,.1);border-left:4px solid var(--modern-error);color:var(--modern-error)}.uo-modern-ui .ult-notice--success{background:rgba(56,161,105,.1);border-left:4px solid var(--modern-success);color:var(--modern-success)}.uo-modern-ui .ult-form__validation{margin-bottom:24px}.uo-modern-ui .ult-form__validation--has-error .ult-form__input{animation:shake .5s ease-in-out;border-color:var(--modern-error)}.uo-modern-ui .ult-form-recaptcha{margin-top:20px}@media(max-width:768px){.uo-modern-ui .ult-box{border-radius:12px;margin:0;padding:32px 24px}.uo-modern-ui .ult-form__title{font-size:28px}.uo-modern-ui .ult-form__input{padding:18px 20px}.uo-modern-ui #ult-forgot-password-submit-btn,.uo-modern-ui #ult-login-submit,.uo-modern-ui #ult-reset-password-submit-btn,.uo-modern-ui .ult-form__submit-btn{padding:16px 24px}}.uo-modern-ui #ult-forgot-password-submit-btn:disabled,.uo-modern-ui #ult-login-submit:disabled,.uo-modern-ui #ult-reset-password-submit-btn:disabled,.uo-modern-ui .ult-form__submit-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.uo-modern-ui #ult-forgot-password-submit-btn:focus,.uo-modern-ui #ult-login-submit:focus,.uo-modern-ui #ult-reset-password-submit-btn:focus,.uo-modern-ui .ult-form__input:focus,.uo-modern-ui .ult-form__submit-btn:focus{outline:none}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.uo-modern-ui .ult-box{animation:slideUp .4s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.uo_loginForm .galogin{margin-top:15px}.uo_loginForm form .login-remember label{align-items:center;display:flex}.uo_loginForm form .login-username input[type=text],.uo_loginForm form .ult-form-password-wrapper{height:40px}.uo_loginForm form .login-password input[type=password]{background:#fff;height:40px}
    22/*# sourceMappingURL=bundle.min.css.map*/
  • uncanny-learndash-toolkit/tags/3.8.0.1/src/assets/frontend/dist/bundle.min.css.map

    r3395254 r3407115  
    1 {"version":3,"file":"bundle.min.css","mappings":"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","sources":["webpack://ultf-frontend/./src/scss/animations.scss","webpack://ultf-frontend/./src/scss/box/box.scss","webpack://ultf-frontend/./src/scss/variables.scss","webpack://ultf-frontend/./src/scss/form/container.scss","webpack://ultf-frontend/./src/scss/form/row.scss","webpack://ultf-frontend/./src/scss/form/title.scss","webpack://ultf-frontend/./src/scss/form/description.scss","webpack://ultf-frontend/./src/scss/form/field.scss","webpack://ultf-frontend/./src/scss/form/text.scss","webpack://ultf-frontend/./src/scss/form/checkbox.scss","webpack://ultf-frontend/./src/scss/form/button.scss","webpack://ultf-frontend/./src/scss/form/remember-me.scss","webpack://ultf-frontend/./src/scss/form/validation-message.scss","webpack://ultf-frontend/./src/scss/form/footer.scss","webpack://ultf-frontend/./src/scss/form/2fa.scss","webpack://ultf-frontend/./src/scss/notice/notice.scss","webpack://ultf-frontend/./src/scss/notice/error.scss","webpack://ultf-frontend/./src/scss/notice/success.scss","webpack://ultf-frontend/./src/scss/modal.scss","webpack://ultf-frontend/./src/scss/login/modal-login.scss","webpack://ultf-frontend/./src/scss/modern-login/modern-login.scss"],"sourcesContent":[".ult--fade-in {\n\tanimation: ult_fadein 300ms;\n}\n\n.ult--fade-out {\n\tanimation: ult_fadeout 300ms;\n}\n\n@keyframes ult_fadein {\n\t0% { opacity: 0; }\n\t100% { opacity: 1; }\n}\n\n@keyframes ult_fadeout {\n\t0% { opacity: 1; }\n\t100% { opacity: 0; }\n}\n\n@keyframes ult_rotating_centered {\n\t0% { transform: translate(-50%,-50%) rotate(0deg); }\n\t100% { transform: translate(-50%,-50%) rotate(360deg); }\n}",".ult-box {\n\twidth: 100%;\n\tposition: relative;\n\tfont-family: $font_family;\n\tfont-size: 15px;\n\tbackground: #fff;\n\tborder: 1px solid #dfdfdf;\n\tborder-radius: 3px;\n\tbox-shadow: 0 7px 15px 0 rgba(0,0,0,.1);\n\tpadding: 20px 25px 25px 25px;\n}\n\n.ult-box,\n.ult-box * {\n\tbox-sizing: border-box;\n}\n","$primary_color: #0790e8;\n$font_family: -apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;",".ult-form__container {}\n\n\t.ult-form__title ~ .ult-form__container,\n\t.ult-form__description ~ .ult-form__container {\n\t\tborder-top: 1px solid #d8d8d8;\n\t\tmargin-top: 15px;\n\t}\n\n\t.ult-form__container form {\n\t\toutline: 0;\n\t}\n\n\t.ult-form__container form p {\n\t\tmargin: 0;\n\t\tmargin-top: 15px;\n\t\t&:empty {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n",".ult-form__row {\n\tmargin-top: 15px;\n}\n\n.ult-form__field {\n\tmargin-top: 8px;\n}",".ult-form__title {\n\tfont-size: 20px;\n\tline-height: 1.2;\n\tcolor: #202020;\n}",".ult-form__description {\n\tfont-size: 15px;\n\tcolor: #636363;\n\tmargin-top: 10px;\n\tline-height: 1.3;\n}",".ult-form-field__header {\n\tdisplay: flex;\n}\n\n\t.ult-form-field__label-container {\n\t\tflex: 1 1 auto;\n\t}\n\n\t\t.ult-form-field__label {\n\t\t\tcolor: #404040;\n\t\t}\n\n\t.ult-form-field__actions {\n\t\tflex: 0 0 auto;\n\t}\n\n\t\t.ult-form-field__action {\n\t\t\tfont-size: 14px;\n\t\t\tcolor: $primary_color;\n\t\t\ttext-decoration: none;\n\t\t}","/**\n * Text input\n */\n.ult-form-password-wrapper,\n*:not(.ult-form-password-wrapper) > .ult-form__input,\n.ult-form__container *:not(.ult-form-password-wrapper) > input[type=\"tel\"],\n.ult-form__container *:not(.ult-form-password-wrapper) > input[type=\"text\"],\n.ult-form__container *:not(.ult-form-password-wrapper) > input[type=\"password\"] {\n\tpadding: var(--ult-form-field-padding, 8px 10px);\n\tcolor: var(--ult-form-field-color, #404040);\n\tbackground: var(--ult-form-field-background, #fff);\n\tbox-shadow: var(--ult-form-field-box-shadow, 0 2px 5px 0 rgba(0,0,0,.1));\n\tborder: 1px solid var(--ult-form-field-border-color, #c1c5c8);\n\tborder-radius: var(--ult-form-field-border-radius, 8px);\n\n\twidth: 100%;\n\tfont-size: inherit;\n\tfont-family: inherit;\n\toutline: none;\n\tdisplay: block;\n\tmargin-top: 8px;\n\tline-height: 1.3;\n\ttransition: border 150ms ease-in-out, box-shadow 150ms ease-in-out;\n\n\t&:hover {\n\t\tborder-color: var(--ult-form-field-hover-border-color, #b1b5b7);\n\t}\n\n\t&.ult-form-password-wrapper--focus,\n\t&:focus {\n\t\tborder-color: var(--ult-form-field-focus-border-color, $primary_color);\n\t\tbox-shadow: var(--ult-form-field-focus-box-shadow, 0 0 0 0.2rem rgba( $primary_color, .2 ));\n\t}\n}\n\n.ult-form-password-wrapper {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 5px;\n\n\tinput {\n\t\tflex: 1 1 auto;\n\n\t\tfont-size: inherit !important;\n\t\tfont-family: inherit !important;\n\t\tborder: 0 !important;\n\t\tbox-shadow: none !important;\n\t\tpadding: 0 !important;\n\t\tmargin: 0 !important;\n\t\toutline: 0 !important;\n\t\t\n\t\t/* Hide browser-generated password toggle icons to prevent duplicates */\n\t\t&::-ms-reveal,\n\t\t&::-ms-clear {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t/* Hide WebKit password toggle icons */\n\t\t&::-webkit-credentials-auto-fill-button,\n\t\t&::-webkit-credentials-auto-fill-button:hover,\n\t\t&::-webkit-credentials-auto-fill-button:active {\n\t\t\tdisplay: none !important;\n\t\t\tvisibility: hidden !important;\n\t\t\tpointer-events: none !important;\n\t\t}\n\n\t\t/* Additional WebKit password field styling to prevent duplicate icons */\n\t\t&::-webkit-textfield-decoration-container {\n\t\t\tdisplay: none !important;\n\t\t}\n\n\t\t/* For Firefox password field */\n\t\t&::-moz-textfield-decoration-container {\n\t\t\tdisplay: none !important;\n\t\t}\n\n\t\t/* Ensure clean appearance without browser defaults */\n\t\t-webkit-appearance: none;\n\t\t-moz-appearance: none;\n\t\tappearance: none;\n\t}\n\n\t&-eye-toggle {\n\t\twidth: 20px;\n\t\theight: 20px;\n\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\tcolor: #7f7f7f;\n\n\t\tcursor: pointer;\n\n\t\tflex: 0 0 auto;\n\t}\n}","/**\n * Custom checkbox\n */\n\n.ult-checkbox {\n\twidth: 100%;\n}\n\n\t.ult-checkbox__container {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tcursor: pointer;\n\t\ttransition: opacity 150ms ease-in-out;\n\t}\n\n\t.ult-checkbox__hidden-input {\n\t\tdisplay: none;\n\t}\n\n\t.ult-checkbox .ult-checkbox__fake-input {\n\t\tposition: relative;\n\t\tbox-sizing: border-box;\n\t\theight: 16px;\n\t\twidth: 16px;\n\t\tborder: 1px solid #afafaf;\n\t\tborder-radius: 8px;\n\t\ttransition: border 150ms ease-in-out;\n\t\tbox-shadow: 0 2px 5px 0 rgba(0,0,0,.1);\n\t}\n\n\t.ult-checkbox .ult-checkbox__container:hover .ult-checkbox__fake-input {\n\t\tborder-color: #979797;\n\t}\n\n\t.ult-checkbox .ult-checkbox__fake-input:after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tdisplay: block;\n\t\topacity: 0;\n\t\ttransition: all 150ms ease-in-out;\n\t}\n\n\t.ult-checkbox .ult-checkbox__hidden-input:checked ~ .ult-checkbox__fake-input:after {\n\t\topacity: 1;\n\t}\n\n\t.ult-checkbox .ult-checkbox__container .ult-checkbox__fake-input:after {\n\t\tleft: 4px;\n\t\ttop: 1px;\n\t\twidth: 3px;\n\t\theight: 7px;\n\t\tborder: solid $primary_color;\n\t\tborder-width: 0 3px 3px 0;\n\t\ttransform: rotate(45deg);\n\t}\n\n\t.ult-checkbox .checkbox--primary:checked ~ .ult-checkbox__fake-input {\n\t\tborder-color: $primary_color;\n\t}\n\n\t.ult-checkbox .checkbox--primary:disabled ~ .ult-checkbox__fake-input {\n\t\tbackground: #fff;\n\t\tborder: 1px solid #b9b9b9;\n\t\tcursor: not-allowed;\n\t}\n\n\t.ult-checkbox .checkbox--primary:checked:disabled ~ .ult-checkbox__fake-input {\n\t\tbackground: #38aece;\n\t\topacity: 0.6;\n\t\tcursor: not-allowed;\n\t}","/**\n * Button\n */\n#ult-2fa-validation-form--templated #submit, /* Added 2FA Support */\n#ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend], /* Added 2FA Support */\n.ult-form__submit-btn,\n#ult-login-form #ult-login-submit {\n\twidth: 100%;\n\tbackground: $primary_color;\n\tfont-size: 16px;\n\tline-height: 1.5;\n\tdisplay: inline-block;\n\toutline: none;\n\tfont-weight: 400;\n\ttext-align: center;\n\twhite-space: nowrap;\n\tvertical-align: middle;\n\tuser-select: none;\n\tborder: 1px solid transparent;\n\tpadding: 8px 15px;\n\tborder-radius: 8px;\n\ttransition: color 150ms ease-in-out, background-color 150ms ease-in-out,border-color 150ms ease-in-out, box-shadow 150ms ease-in-out, opacity 150ms ease-in-out;\n\tcursor: pointer;\n\tbox-shadow: 0 2px 5px 0 rgba(0,0,0,.1);\n\tposition: relative;\n}\n\n\t.ult-form__row--submit {\n\t\tposition: relative;\n\t}\n\n\t#ult-login-form .login-submit,\n\t#ult-login p.submit {\n\t\tposition: relative;\n\t}\n\n\t.ult-form__submit-btn:not(.ult-form__submit-btn--loading):focus,\n\t#ult-login-form .login-submit:not(.ult-form__submit-btn--loading) #ult-login-submit:focus,\n\t#ult-forgot-password .ult-form__row--submit:not(.ult-form__submit-btn--loading) #ult-forgot-password-submit-btn:focus {\n\t\tbox-shadow: 0 0 0 0.2rem rgba( $primary_color, .5 );\n\t}\n\n\t.ult-form__submit-btn--loading:before {\n\t\topacity: 0;\n\t\ttransition: opacity 150ms ease-in-out;\n\t}\n\n\t.ult-form__submit-btn--loading,\n\t.ult-form__submit-btn--loading #ult-login-submit,\n\t.ult-form__submit-btn--loading #ult-forgot-password-submit-btn,\n\t.ult-form__submit-btn--loading #ult-reset-password-submit-btn,\n\t.ult-form__submit-btn--loading input[type=\"submit\"] {\n\t\tcolor: transparent !important;\n\t}\n\n\t.ult-form__submit-btn--loading:before {\n\t\tcontent: '';\n\n\t\twidth: 18px;\n\t\theight: 18px;\n\n\t\topacity: 1;\n\n\t\tposition: absolute;\n\t\ttop: 60%;\n\t\tleft: 50%;\n\t\ttransform: translate(-50%,-50%);\n\t\ttransform-origin: 0 0;\n\n\t\tanimation: spin-centered .8s linear infinite;\n\n\t\tz-index: 2;\n\n\t \tbackground-image: url(\"data:image/svg+xml,%3Csvg x='0' y='0' viewBox='0 0 512 512' xml:space='preserve' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M456.433 371.72l-27.79-16.045c-7.192-4.152-10.052-13.136-6.487-20.636 25.82-54.328 23.566-118.602-6.768-171.03-30.265-52.529-84.802-86.621-144.76-91.424C262.35 71.922 256 64.953 256 56.649V24.56c0-9.31 7.916-16.609 17.204-15.96 81.795 5.717 156.412 51.902 197.611 123.408 41.301 71.385 43.99 159.096 8.042 232.792-4.082 8.369-14.361 11.575-22.424 6.92z'/%3E%3C/svg%3E\");\n\n\t \tbackground-size: contain;\n\t \tbackground-position: center center;\n\t \tbackground-repeat: no-repeat;\n\t}\n\n\t.ult-form__submit-btn--disabled {\n\t\topacity: .6;\n\t\tcursor: not-allowed;\n\t\tpointer-events: none;\n\t}\n\n\t@-ms-keyframes spin-centered {\n        from {\n            -ms-transform: rotate(0deg) translate(-50%,-50%);\n        }\n        to {\n            -ms-transform: rotate(360deg) translate(-50%,-50%);\n        }\n    }\n\n    @-moz-keyframes spin-centered {\n        from {\n            -moz-transform: rotate(0deg) translate(-50%,-50%);\n        }\n        to {\n            -moz-transform: rotate(360deg) translate(-50%,-50%);\n        }\n    }\n\n    @-webkit-keyframes spin-centered {\n        from {\n            -webkit-transform: rotate(0deg) translate(-50%,-50%);\n        }\n        to {\n            -webkit-transform: rotate(360deg) translate(-50%,-50%);\n        }\n    }\n\n    @keyframes spin-centered {\n        from {\n            transform: rotate(0deg) translate(-50%,-50%);\n        }\n        to {\n            transform: rotate(360deg) translate(-50%,-50%);\n        }\n    }\n",".ult-form__row--remember-me {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n\t.ult-form__row--remember-me .ult-form__field {\n\t\tflex: 0 0 auto;\n\t\tmargin: 0 8px 0 0;\n\t}\n\n\t.ult-form__row--remember-me .ult-form-field__header {\n\t\tflex: 1 1 auto;\n\t}\n\n\t\t.ult-form__row--remember-me .ult-form-field__label {\n\t\t\tcolor: #636363;\n\t\t\tuser-select: none;\n\t\t\tcursor: pointer;\n\t\t}",".ult-form__validation {\n\tmargin-top: 15px;\n\tdisplay: none;\n}\n\n\t.ult-form__validation--has-error {\n\t\tdisplay: block;\n\t}\n\n\t.ult-form__validation:first-child {\n\t\tmargin-top: 0;\n\t\tmargin-bottom: 15px;\n\t}\n\n\t.ult-form__validation .ult-notice p {\n\t\tmargin: 0;\n\t}",".ult-form__footer {\n\tmargin-top: 25px;\n\tpadding-top: 15px;\n\tborder-top: 1px solid #d8d8d8;\n\ttext-align: center;\n}\n\n\t.ult-form__footer a {\n\t\tcolor: $primary_color;\n\t\ttext-decoration: none;\n\t}",".ult-form__container {\r\n    \r\n    .two-factor-error-notice {\r\n        margin-top: 20px;\r\n    }\r\n\r\n    .uo-toolkit-2fa-footer {\r\n        display: flex;\r\n        align-content: center;\r\n        flex-wrap: wrap;\r\n        justify-content: space-evenly;\r\n        margin-top: 20px;\r\n\r\n        &__backup-codes,\r\n        &__backto-home {\r\n            text-align: center;\r\n        }\r\n\r\n        a {\r\n            color: $primary_color;\r\n\t\t    text-decoration: none;\r\n        }\r\n    }\r\n}",".ult-notice {\n\tpadding: 15px;\n\tborder: 1px solid #d8d8d8;\n\tcolor: #737373;\n\tborder-radius: 3px;\n\ttext-align: center;\n\tline-height: 1.3;\n}\n\n@import './error.scss';\n@import './success.scss';",".ult-notice--error {\n\tbackground: #fceded;\n}",".ult-notice--success {\n\tbackground: #edfcef;\n}","/**\n * Modal\n */\n\n.ult-modal {\n\tdisplay: none;\n}\n\n.ult-modal-container .ult-modal {\n\tdisplay: block;\n}\n\n.ult-modal-container {\n\twidth: 100%;\n\theight: 100%;\n\n\tposition: fixed;\n\n\tdisplay: none;\n\n\ttop: 0;\n\tleft: 0;\n\n\tz-index: 100000;\n}\n\n\t.ult-modal-container--open {\n\t\tdisplay: block;\n\t}\n\n\t.ult-modal__inside {\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\tjustify-content: center;\n\t\talign-items: center;\n\n\t\tdisplay: flex;\n\t}\n\n\t.ult-modal-box {\n\t\twidth: calc(100% - 40px);\n\t\tmax-width: 565px;\n\n\t\tmax-height: calc(100vh - 40px);\n\t\toverflow-y: auto;\n\n\t\tbackground: #fff;\n\n\t\tbox-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.2);\n\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\tposition: relative;\n\n\t\tborder-radius: 8px;\n\n\t\toverflow: hidden;\n\n\t\t&:before {\n\t\t\tcontent: '';\n\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tz-index: 10;\n\n\t\t\tbackground: #fff;\n\n\t\t\topacity: 0;\n\n\t\t\ttransition: opacity 300ms ease-in-out;\n\n\t\t\tborder-radius: 8px;\n\t\t}\n\n\t\t&:after {\n\t\t\tcontent: '';\n\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\n\t\t\tborder-radius: 50%;\n\n\t\t\tposition: absolute;\n\t\t\tleft: 50%;\n\t\t\ttop: 50%;\n\t\t\tz-index: 11;\n\n\t\t\topacity: 0;\n\n\t\t\tuser-select: none;\n\n\t\t\ttransition: opacity 300ms ease-in-out;\n\t\t}\n\n\t\t.ult-modal-container--loading &:before {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\n\t\t\topacity: 1;\n\t\t}\n\n\t\t.ult-modal-container--loading &:after {\n\t\t\twidth: 50px;\n\t\t\theight: 50px;\n\n\t\t\tborder: 3px solid transparent;\n\t\t\tborder-top-color: #202020;\n\n\t\t\tanimation: ult_rotating_centered 2s linear infinite;\n\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t.ult-modal--small .ult-modal-box {\n\t\tmax-width: 385px;\n\t}\n\n\t.ult-modal--large .ult-modal-box {\n\t\tmax-width: 750px;\n\t}\n\n\t.ult-modal-box-header {\n\t\tpadding: 20px;\n\t\ttext-align: center;\n\t}\n\n\t\t.ult-modal-box-header h1,\n\t\t.ult-modal-box-header h2,\n\t\t.ult-modal-box-header h3 {\n\t\t\tfont-size: 30px;\n\t\t\tfont-weight: 500;\n\t\t\tline-height: 32px;\n\n\t\t\tpadding: 20px 20px 0px;\n\t\t\tmargin: 0;\n\t\t}\n\n\t.ult-modal-box-content {\n\t\twidth: 100%;\n\n\t\tposition: relative;\n\t\tdisplay: inline-flex;\n\n\t\toverflow: hidden;\n\t\t\n\t\tflex: 1 1 auto;\n\t}\n\n\t\t/*.ult-modal-box-content:after {\n\t\t\tcontent: '';\n\n\t\t\twidth: 100%;\n\n\t\t\tleft: 0px;\n\t\t\tbottom: 0px;\n\n\t\t\theight: 56px;\n\t\t\t\n\t\t\tposition: absolute;\n\t\t\t\n\t\t\tpointer-events: none;\n\n\t\t\tbackground: linear-gradient(rgba(255, 255, 255, 0), rgb(255, 255, 255));\n\t\t}*/\n\n\t\t.ult-modal {\n\t\t\twidth: 100%;\n\n\t\t\tfont-weight: 400;\n\t\t\tfont-size: 16px;\n\n\t\t\toverflow-y: auto;\n\n\t\t\tmax-height: 300px;\n\n\t\t\tposition: relative;\n\n\t\t\tmargin: 0px;\n\t\t\tpadding: 20px 40px;\n\n\t\t\toutline: none;\n\t\t}\n\n\t\t\t.ult-modal-box-content__inside::-webkit-scrollbar {\n\t\t\t\twidth: 10px;\n\t\t\t\tbackground-color: rgba( 0, 0, 0, .09 );\n\t\t\t\tborder-radius: 150px;\n\t\t\t}\n\n\t\t\t.ult-modal-box-content__inside::-webkit-scrollbar-thumb:vertical {\n\t\t\t\tbackground: #afafaf;\n\t\t\t\tborder-radius: 150px;\n\t\t\t\tbackground-clip: padding-box;\n\t\t\t\tborder: 2px solid rgba( 0, 0, 0, 0 );\n\t\t\t\tmin-height: 10px;\n\t\t\t}\n\n\t\t.ult-modal-box-content__br {\n\t\t\twidth: 100%;\n\t\t\theight: 10px;\n\t\t\tdisplay: block;\n\t\t}\n\n\t.ult-modal-box-footer {\n\t\tflex: 1 1 auto;\n\n\t\ttext-align: center;\n\n\t\tpadding: 20px;\n\t\tmargin: 0px 20px 20px;\n\n\t\toverflow: hidden;\n\t}\n\n\t\t.ult-modal-box-footer__dismiss {\n\t\t\tfont-size: 16px;\n\t\t\tfont-weight: 600;\n\n\t\t\tpadding: 10px 20px;\n\n\t\t\tcursor: pointer;\n\n\t\t\tline-height: 1.1;\n\n\t\t\tborder: 0;\n\n\t\t\tdisplay: inline-block;\n\n\t\t\tbackground: transparent;\n\t\t\tcolor: #0077c5;\n\n\t\t\ttransition: background 150ms ease-in-out;\n\n\t\t\tborder-radius: 150px;\n\t\t}\n\n\t\t.ult-modal-box-footer__dismiss:hover {\n\t\t\tbackground: #dadadc;\n\t\t}\n\n\t\t.ult-modal-box-footer__dismiss:active {\n\t\t\tbackground: #c4c4c6;\n\t\t}\n\n\t@media screen and (max-width: 1000px){\n\t\t.ult-modal-box-header h1,\n\t\t.ult-modal-box-header h2,\n\t\t.ult-modal-box-header h3 {\n\t\t\tfont-size: 24px;\n\t\t\tline-height: 26px;\n\t\t}\n\t}\n\n/**\n * Global modifications\n */\n\nbody.ult-modals--open {\n\toverflow: hidden !important;\n}\n\nbody.ult-modals--dim-background .ult-modal-container {\n\tbackground: rgba(0,0,0,.4);\n}","#ult-modal-container-ult-login {\n\t.ult-box {\n\t\tbox-shadow: none;\n\t\tpadding: 0;\n\t\tborder: 0;\n\t}\n\n\t.ult-modal {\n\t\tmax-height: 680px;\n\t}\n}\n\n.ult-login--recaptcha-error,\n.ult-forgot-password--recaptcha-error,\n.ult-reset-password--recaptcha-error {\n\t.g-recaptcha iframe {\n\t\tborder-radius: 4px;\n\t\tborder: 1px solid #ff0000;\n\t}\n}\n\n#ult-login-modal {\n\t$section: &;\n\n\t&.ult-login-modal--login {\n\t\t#{ $section }__login {\n\t\t\tdisplay: block;\n\t\t}\n\n\t\t#{ $section }__forgot-password {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t&.ult-login-modal--forgot-password {\n\t\t#{ $section }__login {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t#{ $section }__forgot-password {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}","// MODERN UI overrides for Frontend Login (layout_1)\n// This file is loaded last and should only target .uo-modern-ui\n\n.uo-modern-ui {\n  // Flattened Color Palette - No Gradients\n  --modern-primary: #0073aa;\n  --modern-primary-dark: #005a87;\n  --modern-secondary: #00a0d2;\n  --modern-accent: #ff6900;\n  --modern-surface: #ffffff;\n  --modern-background: #f8f9fa;\n  --modern-text-primary: #2d3748;\n  --modern-text-secondary: #718096;\n  --modern-border: #e2e8f0;\n  --modern-error: #e53e3e;\n  --modern-success: #38a169;\n  --modern-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n  --modern-shadow-elevated: 0 4px 8px rgba(0, 0, 0, 0.15);\n  --modern-shadow-focus: 0 0 0 3px rgba(0, 115, 170, 0.3);\n\n  // Main container styling - Clean and Simple\n  #ult-login,\n  #ult-forgot-password,\n  #ult-reset-password {\n    background: var(--modern-background);\n    min-height: 100vh;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    position: relative;\n  }\n\n  // Box styling - Clean and Simple\n  .ult-box {\n    background: var(--modern-surface);\n    border: 1px solid var(--modern-border);\n    border-radius: 12px;\n    box-shadow: var(--modern-shadow);\n    padding: 48px;\n    width: 100%;\n    position: relative;\n    transition: all 0.3s ease;\n    box-sizing: border-box;\n    margin-left: auto;\n    margin-right: auto;\n\n    &::before {\n      background: var(--modern-primary);\n      border-radius: 10px 10px 0 0;\n      content: \"\";\n      height: 7px;\n      left: 0;\n      position: absolute;\n      right: 0;\n      top: 0px;\n      z-index: 1;\n    }\n\n    &:hover {\n      box-shadow: var(--modern-shadow-elevated);\n    }\n  }\n\n  // Typography - Clean Headers\n  .ult-form__title {\n    font-size: 32px;\n    font-weight: 700;\n    color: var(--modern-primary);\n    margin-bottom: 12px;\n    text-align: center;\n    letter-spacing: -1px;\n    position: relative;\n    \n    &::after {\n      content: '';\n      position: absolute;\n      bottom: -8px;\n      left: 50%;\n      transform: translateX(-50%);\n      width: 60px;\n      height: 4px;\n      background: var(--modern-primary);\n      border-radius: 2px;\n    }\n  }\n\n  .ult-form__description {\n    font-size: 16px;\n    color: var(--modern-text-primary);\n    text-align: center;\n    margin-bottom: 40px;\n    line-height: 1.6;\n    font-weight: 400;\n  }\n\n  // Form container\n  .ult-form__container {\n    background: transparent;\n    border-radius: 0;\n    padding: 0;\n    box-shadow: none;\n  }\n\n  // Form fields - FLOATING LABELS\n  .ult-form__row {\n    margin-bottom: 32px;\n    position: relative;\n  }\n\n  .ult-form-field__header {\n    margin-bottom: 12px;\n  }\n\n  .ult-form-field__label {\n    font-size: 14px;\n    font-weight: 600;\n    color: var(--modern-text-primary);\n    margin-bottom: 8px;\n    display: block;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n  }\n\n  // Form labels (username, password, etc.)\n  label {\n    color: var(--modern-text-primary);\n    font-weight: 600;\n    font-size: 14px;\n  }\n\n  .ult-form__input {\n    width: 100%;\n    padding: 20px 24px;\n    border: 2px solid var(--modern-border);\n    border-radius: 8px;\n    font-size: 16px;\n    background: var(--modern-surface);\n    color: var(--modern-text-primary);\n    transition: all 0.3s ease;\n    box-sizing: border-box;\n\n    &:focus {\n      outline: none;\n      border-color: var(--modern-primary);\n      box-shadow: var(--modern-shadow-focus);\n    }\n\n    &:hover {\n      border-color: var(--modern-primary);\n    }\n\n    &::placeholder {\n      color: var(--modern-text-secondary);\n      font-weight: 400;\n    }\n  }\n\n  // Submit button - Clean Solid Button\n  .ult-form__submit-btn,\n  #ult-login-submit,\n  #ult-forgot-password-submit-btn,\n  #ult-reset-password-submit-btn,\n  #ult-login-form #ult-login-submit,\n  #ult-2fa-validation-form--templated #submit,\n  #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend] {\n    width: 100% !important;\n    padding: 18px 32px !important;\n    background: var(--modern-primary) !important;\n    color: white !important;\n    border: none !important;\n    border-radius: 8px !important;\n    font-size: 16px !important;\n    font-weight: 600 !important;\n    cursor: pointer;\n    transition: all 0.3s ease;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n    margin-top: 16px;\n    box-shadow: var(--modern-shadow);\n    line-height: 1.4;\n\n    &:hover {\n      background: var(--modern-primary-dark) !important;\n      color: white !important;\n      box-shadow: var(--modern-shadow-elevated);\n    }\n\n    &:focus {\n      outline: none;\n      box-shadow: var(--modern-shadow-focus) !important;\n    }\n\n    &:active {\n      transform: translateY(1px);\n    }\n  }\n\n  // Checkbox styling - CUSTOM CHECKBOX\n  .ult-form__row--remember {\n    display: flex;\n    align-items: center;\n    margin-bottom: 32px;\n  }\n\n  #ult-login-remember {\n    width: 20px;\n    height: 20px;\n    margin-right: 12px;\n    accent-color: var(--modern-primary);\n    border-radius: 4px;\n  }\n\n  .ult-form__row--remember label {\n    font-size: 14px;\n    color: var(--modern-text-primary);\n    margin: 0;\n    cursor: pointer;\n    font-weight: 500;\n  }\n\n  // Footer links - PREMIUM LINKS\n  .ult-form__footer {\n    margin-top: 40px;\n    padding-top: 32px;\n    border-top: 1px solid var(--modern-border);\n    text-align: center;\n  }\n\n  .ult-form__footer a {\n    color: var(--modern-primary);\n    text-decoration: none;\n    font-weight: 600;\n    font-size: 14px;\n    transition: all 0.3s ease;\n    position: relative;\n    padding: 8px 16px;\n    border-radius: 8px;\n\n    &::before {\n      content: '';\n      position: absolute;\n      bottom: 0;\n      left: 50%;\n      width: 0;\n      height: 2px;\n      background: var(--modern-primary);\n      transition: all 0.3s ease;\n      transform: translateX(-50%);\n    }\n\n    &:hover {\n      color: var(--modern-primary-dark);\n      background: rgba(0, 115, 170, 0.1);\n      \n      &::before {\n        width: 80%;\n      }\n    }\n  }\n\n  .ult-form-footer__forgot-password,\n  .ult-form-footer__signup,\n  .ult-form-footer__login {\n    margin-bottom: 16px;\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Notices/Error messages - Clean Notices\n  .ult-notice {\n    border-radius: 8px;\n    padding: 20px 24px;\n    margin-bottom: 24px;\n    font-weight: 500;\n    border: none;\n    position: relative;\n  }\n\n  .ult-notice--error {\n    background: rgba(229, 62, 62, 0.1);\n    color: var(--modern-error);\n    border-left: 4px solid var(--modern-error);\n  }\n\n  .ult-notice--success {\n    background: rgba(56, 161, 105, 0.1);\n    color: var(--modern-success);\n    border-left: 4px solid var(--modern-success);\n  }\n\n  // Validation styling\n  .ult-form__validation {\n    margin-bottom: 24px;\n  }\n\n  .ult-form__validation--has-error {\n    .ult-form__input {\n      border-color: var(--modern-error);\n      animation: shake 0.5s ease-in-out;\n    }\n  }\n\n  // reCAPTCHA styling\n  .ult-form-recaptcha {\n    margin-top: 20px;\n  }\n\n  // Responsive design\n  @media (max-width: 768px) {\n    .ult-box {\n      padding: 32px 24px;\n      margin: 0;\n      border-radius: 12px;\n    }\n\n    .ult-form__title {\n      font-size: 28px;\n    }\n\n    .ult-form__input {\n      padding: 18px 20px;\n    }\n\n    .ult-form__submit-btn,\n    #ult-login-submit,\n    #ult-forgot-password-submit-btn,\n    #ult-reset-password-submit-btn {\n      padding: 16px 24px;\n    }\n  }\n\n  // Loading states\n  .ult-form__submit-btn:disabled,\n  #ult-login-submit:disabled,\n  #ult-forgot-password-submit-btn:disabled,\n  #ult-reset-password-submit-btn:disabled {\n    opacity: 0.6;\n    cursor: not-allowed;\n    transform: none;\n  }\n\n  // Focus management\n  .ult-form__input:focus,\n  .ult-form__submit-btn:focus,\n  #ult-login-submit:focus,\n  #ult-forgot-password-submit-btn:focus,\n  #ult-reset-password-submit-btn:focus {\n    outline: none;\n  }\n\n  // Simple Animations\n  @keyframes shake {\n    0%, 100% { transform: translateX(0); }\n    25% { transform: translateX(-5px); }\n    75% { transform: translateX(5px); }\n  }\n\n  // Simple form appearance animation\n  .ult-box {\n    animation: slideUp 0.4s ease;\n  }\n\n  @keyframes slideUp {\n    from {\n      opacity: 0;\n      transform: translateY(20px);\n    }\n    to {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n} \n\n// ========================================\n// LOGIN FORM\n// ========================================\n.uo_loginForm {\n\t.galogin {\n\t\tmargin-top: 15px;\n\t}\n\tform {\n    .login-remember {\n      label {\n        display: flex;\n        align-items: center;\n      }\n    }\n\t\t.login-username {\n\t\t\tinput[type=text] {\n\t\t\t\theight: 40px;\n\t\t\t}\n\t\t}\n    .ult-form-password-wrapper {\n      height: 40px;\n    }\n\t\t.login-password {\n\t\t\tinput[type=password] {\n\t\t\t\theight: 33px;\n        background: #fff;\n\t\t\t}\n\t\t}\n\t}\n}"],"names":[],"sourceRoot":""}
     1{"version":3,"file":"bundle.min.css","mappings":"AAAA,cACC,yBAGD,eACC,0BAGD,sBACC,aACA,cAGD,uBACC,aACA,cAGD,iCACC,+CACA,iDCpBD,SAKC,gBACA,yBACA,kBACA,uCALA,sGCFa,CDGb,eAKA,uBAPA,kBADA,UAQA,CAGD,oBAEC,sBEZA,kFAEC,6BACA,gBAGD,0BACC,UAGD,4BAEC,gBACA,kCACC,aChBH,eACC,gBAGD,iBACC,eCLD,iBAGC,cAFA,eACA,eACA,CCHD,uBAEC,cADA,eAGA,gBADA,eACA,CCJD,wBACC,aAGA,iCACC,cAGA,uBACC,cAGF,yBACC,cAGA,wBAEC,aLlBa,CKiBb,eAEA,qBChBH,qSAOC,iDAEA,4DACA,sDAFA,uEAFA,0CAUA,cAFA,oBADA,kBAKA,gBADA,eAFA,aAVA,+CAcA,+DAPA,UAOA,CAEA,mUACC,8DAGD,6wBAEC,8DACA,iFAKF,sCAcC,mBAbA,gBAKG,+BADH,4BAYA,cAEA,eANA,aAXA,YAaA,uBAJA,gBAPA,YAiBA,oBAdA,kBACA,UACA,QACA,2BAPA,WAiBA,UACA,CCrDD,cACC,WAGA,yBAGC,eAFA,cACA,kBAEA,oCAGD,4BACC,aAGD,wCAKC,yBACA,kBAEA,sCANA,sBACA,YAFA,kBAMA,mCAHA,UAIA,CAGD,uEACC,qBAGD,8CACC,WAEA,cACA,UAFA,kBAGA,gCAGD,kFACC,UAGD,uEAMC,8CAFA,WAHA,SACA,QAKA,wBAJA,SAIA,CAGD,mEACC,oBPzDc,CO4Df,oEACC,gBACA,yBACA,mBAGD,4EACC,mBAEA,mBADA,UACA,CClEF,6KAKC,kBRRe,CQkBf,6BAEA,kBAGA,sCADA,eAXA,qBAFA,eAIA,gBAHA,gBAEA,aAOA,iBAKA,kBAVA,kBAOA,uJAJA,iBADA,sBADA,mBARA,UAiBA,CAOA,yEAEC,kBAGD,gRAGC,0CAGD,sCACC,UACA,oCAGD,+PAKC,4BAGD,sCAcC,4CAIC,whBAGA,wBACA,4BAFA,wBAnBD,WAGA,YAMA,SAJA,UAEA,kBACA,QAEA,+BACA,qBATA,WAaA,SAMC,CAGF,gCAEC,mBADA,WAEA,oBAGD,6BACO,GACI,gDAEJ,GACI,kDAIR,8BACI,GACI,iDAEJ,GACI,mDAIR,iCACI,GACI,oDAEJ,GACI,sDAIR,yBACI,GACI,4CAEJ,GACI,8CCtHZ,4BAEC,mBADA,YACA,CAGA,6CACC,cACA,iBAGD,oDACC,cAGA,mDACC,cAEA,eADA,gBACA,CCjBH,sBAEC,aADA,eACA,CAGA,iCACC,cAGD,kCAEC,mBADA,YACA,CAGD,oCACC,SCfF,kBAGC,6BAFA,gBACA,iBAEA,kBAGA,oBACC,aXRc,CWSd,qBCPE,8CACI,gBAGJ,4CAEI,qBADA,aAEA,eACA,6BACA,gBAEA,mHAEI,kBAGJ,8CACI,aZnBI,CYoBV,qBCpBN,YAEC,yBAEA,kBADA,cAGA,gBALA,aAIA,iBACA,CCND,mBACC,mBCDD,qBACC,mBCGD,WACC,aAGD,gCACC,cAGD,qBAMC,aAJA,YAOA,OALA,eAIA,MAPA,WAUA,eAGA,2BACC,cAGD,mBAKC,mBAEA,aALA,YAEA,uBAHA,UAMA,CAGD,eAOC,gBASA,kBAPA,uCAEA,aACA,sBARA,8BAFA,gBAGA,gBAaA,gBAJA,kBAbA,uBAiBA,CAEA,sBAWC,gBAMA,kBATA,OADA,MAEA,UAQA,CAGD,2CAnBC,WAGA,SASA,UAPA,kBASA,mCAZA,OAkCA,CAjBD,qBAMC,kBAGA,SACA,QAKA,iBAJA,UAMA,CAGD,oDAEC,YAEA,UAHA,UAGA,CAGD,mDAOC,mDAFA,sDAHA,YAOA,UARA,UAQA,CAIF,iCACC,gBAGD,iCACC,gBAGD,sBACC,aACA,kBAGA,2EAGC,eACA,gBACA,iBAGA,SADA,mBACA,CAGF,uBAIC,oBAIA,cAFA,gBAHA,kBAFA,UAOA,CAoBA,WAIC,eADA,gBASA,SAJA,iBAOA,aATA,gBAOA,kBAHA,kBATA,UAcA,CAGA,kDAEC,iCACA,oBAFA,UAEA,CAGD,iEACC,mBAEA,4BACA,6BAFA,oBAGA,gBAGF,2BAGC,cADA,YADA,UAEA,CAGF,sBACC,cAKA,mBAEA,gBAHA,aAFA,iBAKA,CAGA,+BAcC,uBAJA,SASA,oBAJA,cATA,eAMA,qBAXA,eACA,gBAMA,gBAJA,kBAaA,sCAEA,CAGD,qCACC,mBAGD,sCACC,mBAGF,qCACC,2EAGC,eACA,kBAQH,sBACC,0BAGD,qDACC,0BC5QA,wCAGC,SAFA,gBACA,SACA,CAGD,0CACC,iBAOD,mKAEC,qBADA,iBACA,CAQA,gEACC,cASD,oJACC,aAGD,oFACC,cCrCH,cAEE,yBACA,8BACA,2BACA,wBACA,sBACA,4BACA,8BACA,gCACA,wBACA,uBACA,yBACA,yCACA,mDACA,mDAGA,8FAME,mBAHA,oCAEA,aAIA,wEAFA,uBAHA,iBAIA,aAEA,kBAIF,uBACE,iCACA,sCACA,mBACA,gCAKA,sBACA,iBACA,kBANA,aAEA,kBACA,wBAFA,UAKA,CAEA,8BACE,iCACA,4BACA,WACA,WACA,OACA,kBACA,QACA,MACA,UAGF,6BACE,yCAKJ,+BAGE,4BAFA,eACA,gBAIA,oBAFA,mBAGA,kBAFA,iBAEA,CAEA,qCAQE,iCACA,kBANA,YAFA,WAMA,WAHA,SAFA,kBAGA,2BACA,UAGA,CAIJ,qCAEE,iCADA,eAKA,gBADA,gBADA,mBADA,iBAGA,CAIF,mCACE,uBACA,gBAEA,gBADA,SACA,CAIF,6BACE,mBACA,kBAGF,sCACE,mBAGF,qCAKE,cAEA,oBAHA,kBAEA,wBACA,CAIF,yDARE,iCAFA,eACA,eAYA,CAGF,+BAME,iCAHA,sCACA,kBAKA,sBAFA,iCAFA,eAHA,kBAMA,wBAPA,UAQA,CAEA,qCAEE,mCACA,sCAFA,YAEA,CAGF,qCACE,mCAGF,4CACE,mCACA,gBAKJ,gWASE,2CAEA,sBACA,4BAQA,gCAVA,qBAKA,eAFA,yBACA,0BAIA,mBAGA,gBAFA,gBAXA,4BASA,yBADA,wBATA,oBAcA,CAEA,0YACE,gDAEA,yCADA,oBACA,CAGF,0YAEE,gDADA,YACA,CAGF,iZACE,0BAKJ,uCAEE,mBADA,aAEA,mBAGF,kCAIE,mCACA,kBAHA,YACA,kBAFA,UAIA,CAGF,6CAEE,iCAEA,eAHA,eAIA,gBAFA,QAEA,CAIF,gCAGE,0CAFA,gBACA,iBAEA,kBAGF,kCAQE,kBAPA,4BAGA,eADA,gBAIA,iBADA,kBAJA,qBAGA,uBAGA,CAEA,yCAOE,iCAJA,SAFA,WAKA,WAFA,SAFA,kBAOA,2BADA,wBAHA,OAIA,CAGF,wCAEE,8BADA,gCACA,CAEA,+CACE,UAKN,6HAGE,mBAEA,8JACE,gBAKJ,0BAKE,YAJA,kBAGA,gBADA,mBADA,kBAIA,kBAGF,iCACE,8BAEA,0CADA,yBACA,CAGF,mCACE,+BAEA,4CADA,2BACA,CAIF,oCACE,mBAIA,gEAEE,gCADA,gCACA,CAKJ,kCACE,gBAIF,wBACE,uBAGE,mBADA,SADA,iBAEA,CAGF,+BACE,eAGF,+BACE,kBAGF,+JAIE,mBAKJ,mMAKE,mBADA,WAEA,eAIF,4NAKE,aAIF,iBACE,8BACA,+BACA,+BAIF,uBACE,2BAGF,mBACE,GACE,UACA,2BAEF,GACE,UACA,yBASL,uBACC,gBAII,yCAEE,mBADA,YACA,CAQJ,kGACE,YAGH,wDAEK,gBADJ,WACI","sources":["webpack://ultf-frontend/./src/scss/animations.scss","webpack://ultf-frontend/./src/scss/box/box.scss","webpack://ultf-frontend/./src/scss/variables.scss","webpack://ultf-frontend/./src/scss/form/container.scss","webpack://ultf-frontend/./src/scss/form/row.scss","webpack://ultf-frontend/./src/scss/form/title.scss","webpack://ultf-frontend/./src/scss/form/description.scss","webpack://ultf-frontend/./src/scss/form/field.scss","webpack://ultf-frontend/./src/scss/form/text.scss","webpack://ultf-frontend/./src/scss/form/checkbox.scss","webpack://ultf-frontend/./src/scss/form/button.scss","webpack://ultf-frontend/./src/scss/form/remember-me.scss","webpack://ultf-frontend/./src/scss/form/validation-message.scss","webpack://ultf-frontend/./src/scss/form/footer.scss","webpack://ultf-frontend/./src/scss/form/2fa.scss","webpack://ultf-frontend/./src/scss/notice/notice.scss","webpack://ultf-frontend/./src/scss/notice/error.scss","webpack://ultf-frontend/./src/scss/notice/success.scss","webpack://ultf-frontend/./src/scss/modal.scss","webpack://ultf-frontend/./src/scss/login/modal-login.scss","webpack://ultf-frontend/./src/scss/modern-login/modern-login.scss"],"sourcesContent":[".ult--fade-in {\n\tanimation: ult_fadein 300ms;\n}\n\n.ult--fade-out {\n\tanimation: ult_fadeout 300ms;\n}\n\n@keyframes ult_fadein {\n\t0% { opacity: 0; }\n\t100% { opacity: 1; }\n}\n\n@keyframes ult_fadeout {\n\t0% { opacity: 1; }\n\t100% { opacity: 0; }\n}\n\n@keyframes ult_rotating_centered {\n\t0% { transform: translate(-50%,-50%) rotate(0deg); }\n\t100% { transform: translate(-50%,-50%) rotate(360deg); }\n}",".ult-box {\n\twidth: 100%;\n\tposition: relative;\n\tfont-family: $font_family;\n\tfont-size: 15px;\n\tbackground: #fff;\n\tborder: 1px solid #dfdfdf;\n\tborder-radius: 3px;\n\tbox-shadow: 0 7px 15px 0 rgba(0,0,0,.1);\n\tpadding: 20px 25px 25px 25px;\n}\n\n.ult-box,\n.ult-box * {\n\tbox-sizing: border-box;\n}\n","$primary_color: #0790e8;\n$font_family: -apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;",".ult-form__container {}\n\n\t.ult-form__title ~ .ult-form__container,\n\t.ult-form__description ~ .ult-form__container {\n\t\tborder-top: 1px solid #d8d8d8;\n\t\tmargin-top: 15px;\n\t}\n\n\t.ult-form__container form {\n\t\toutline: 0;\n\t}\n\n\t.ult-form__container form p {\n\t\tmargin: 0;\n\t\tmargin-top: 15px;\n\t\t&:empty {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n",".ult-form__row {\n\tmargin-top: 15px;\n}\n\n.ult-form__field {\n\tmargin-top: 8px;\n}",".ult-form__title {\n\tfont-size: 20px;\n\tline-height: 1.2;\n\tcolor: #202020;\n}",".ult-form__description {\n\tfont-size: 15px;\n\tcolor: #636363;\n\tmargin-top: 10px;\n\tline-height: 1.3;\n}",".ult-form-field__header {\n\tdisplay: flex;\n}\n\n\t.ult-form-field__label-container {\n\t\tflex: 1 1 auto;\n\t}\n\n\t\t.ult-form-field__label {\n\t\t\tcolor: #404040;\n\t\t}\n\n\t.ult-form-field__actions {\n\t\tflex: 0 0 auto;\n\t}\n\n\t\t.ult-form-field__action {\n\t\t\tfont-size: 14px;\n\t\t\tcolor: $primary_color;\n\t\t\ttext-decoration: none;\n\t\t}","/**\n * Text input\n */\n.ult-form-password-wrapper,\n*:not(.ult-form-password-wrapper) > .ult-form__input,\n.ult-form__container *:not(.ult-form-password-wrapper) > input[type=\"tel\"],\n.ult-form__container *:not(.ult-form-password-wrapper) > input[type=\"text\"],\n.ult-form__container *:not(.ult-form-password-wrapper) > input[type=\"password\"] {\n\tpadding: var(--ult-form-field-padding, 8px 10px);\n\tcolor: var(--ult-form-field-color, #404040);\n\tbackground: var(--ult-form-field-background, #fff);\n\tbox-shadow: var(--ult-form-field-box-shadow, 0 2px 5px 0 rgba(0,0,0,.1));\n\tborder: 1px solid var(--ult-form-field-border-color, #c1c5c8);\n\tborder-radius: var(--ult-form-field-border-radius, 8px);\n\n\twidth: 100%;\n\tfont-size: inherit;\n\tfont-family: inherit;\n\toutline: none;\n\tdisplay: block;\n\tmargin-top: 8px;\n\tline-height: 1.3;\n\ttransition: border 150ms ease-in-out, box-shadow 150ms ease-in-out;\n\n\t&:hover {\n\t\tborder-color: var(--ult-form-field-hover-border-color, #b1b5b7);\n\t}\n\n\t&.ult-form-password-wrapper--focus,\n\t&:focus {\n\t\tborder-color: var(--ult-form-field-focus-border-color, $primary_color);\n\t\tbox-shadow: var(--ult-form-field-focus-box-shadow, 0 0 0 0.2rem rgba( $primary_color, .2 ));\n\t}\n}\n\n/* Eye icon positioned absolutely relative to parent (field stays in original position) */\n.ult-form-password-wrapper-eye-toggle {\n\tbackground: #fff; \n\theight: 37px;\n\twidth: 38px;\n\tpadding: 8px;\n\tborder-top-right-radius: 6px;\n    border-bottom-right-radius: 6px;\n\tposition: absolute;\n\tright: 2px;\n\ttop: 50%;\n\ttransform: translateY(-50%); \n\tmargin-top: 16px; // Account for field's margin-top\n\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\tcolor: #7f7f7f;\n\n\tcursor: pointer;\n\tz-index: 10; // Above the input\n\tpointer-events: auto; // Icon can be clicked\n\t\n\t \n}","/**\n * Custom checkbox\n */\n\n.ult-checkbox {\n\twidth: 100%;\n}\n\n\t.ult-checkbox__container {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tcursor: pointer;\n\t\ttransition: opacity 150ms ease-in-out;\n\t}\n\n\t.ult-checkbox__hidden-input {\n\t\tdisplay: none;\n\t}\n\n\t.ult-checkbox .ult-checkbox__fake-input {\n\t\tposition: relative;\n\t\tbox-sizing: border-box;\n\t\theight: 16px;\n\t\twidth: 16px;\n\t\tborder: 1px solid #afafaf;\n\t\tborder-radius: 8px;\n\t\ttransition: border 150ms ease-in-out;\n\t\tbox-shadow: 0 2px 5px 0 rgba(0,0,0,.1);\n\t}\n\n\t.ult-checkbox .ult-checkbox__container:hover .ult-checkbox__fake-input {\n\t\tborder-color: #979797;\n\t}\n\n\t.ult-checkbox .ult-checkbox__fake-input:after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tdisplay: block;\n\t\topacity: 0;\n\t\ttransition: all 150ms ease-in-out;\n\t}\n\n\t.ult-checkbox .ult-checkbox__hidden-input:checked ~ .ult-checkbox__fake-input:after {\n\t\topacity: 1;\n\t}\n\n\t.ult-checkbox .ult-checkbox__container .ult-checkbox__fake-input:after {\n\t\tleft: 4px;\n\t\ttop: 1px;\n\t\twidth: 3px;\n\t\theight: 7px;\n\t\tborder: solid $primary_color;\n\t\tborder-width: 0 3px 3px 0;\n\t\ttransform: rotate(45deg);\n\t}\n\n\t.ult-checkbox .checkbox--primary:checked ~ .ult-checkbox__fake-input {\n\t\tborder-color: $primary_color;\n\t}\n\n\t.ult-checkbox .checkbox--primary:disabled ~ .ult-checkbox__fake-input {\n\t\tbackground: #fff;\n\t\tborder: 1px solid #b9b9b9;\n\t\tcursor: not-allowed;\n\t}\n\n\t.ult-checkbox .checkbox--primary:checked:disabled ~ .ult-checkbox__fake-input {\n\t\tbackground: #38aece;\n\t\topacity: 0.6;\n\t\tcursor: not-allowed;\n\t}","/**\n * Button\n */\n#ult-2fa-validation-form--templated #submit, /* Added 2FA Support */\n#ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend], /* Added 2FA Support */\n.ult-form__submit-btn,\n#ult-login-form #ult-login-submit {\n\twidth: 100%;\n\tbackground: $primary_color;\n\tfont-size: 16px;\n\tline-height: 1.5;\n\tdisplay: inline-block;\n\toutline: none;\n\tfont-weight: 400;\n\ttext-align: center;\n\twhite-space: nowrap;\n\tvertical-align: middle;\n\tuser-select: none;\n\tborder: 1px solid transparent;\n\tpadding: 8px 15px;\n\tborder-radius: 8px;\n\ttransition: color 150ms ease-in-out, background-color 150ms ease-in-out,border-color 150ms ease-in-out, box-shadow 150ms ease-in-out, opacity 150ms ease-in-out;\n\tcursor: pointer;\n\tbox-shadow: 0 2px 5px 0 rgba(0,0,0,.1);\n\tposition: relative;\n}\n\n\t.ult-form__row--submit {\n\t\tposition: relative;\n\t}\n\n\t#ult-login-form .login-submit,\n\t#ult-login p.submit {\n\t\tposition: relative;\n\t}\n\n\t.ult-form__submit-btn:not(.ult-form__submit-btn--loading):focus,\n\t#ult-login-form .login-submit:not(.ult-form__submit-btn--loading) #ult-login-submit:focus,\n\t#ult-forgot-password .ult-form__row--submit:not(.ult-form__submit-btn--loading) #ult-forgot-password-submit-btn:focus {\n\t\tbox-shadow: 0 0 0 0.2rem rgba( $primary_color, .5 );\n\t}\n\n\t.ult-form__submit-btn--loading:before {\n\t\topacity: 0;\n\t\ttransition: opacity 150ms ease-in-out;\n\t}\n\n\t.ult-form__submit-btn--loading,\n\t.ult-form__submit-btn--loading #ult-login-submit,\n\t.ult-form__submit-btn--loading #ult-forgot-password-submit-btn,\n\t.ult-form__submit-btn--loading #ult-reset-password-submit-btn,\n\t.ult-form__submit-btn--loading input[type=\"submit\"] {\n\t\tcolor: transparent !important;\n\t}\n\n\t.ult-form__submit-btn--loading:before {\n\t\tcontent: '';\n\n\t\twidth: 18px;\n\t\theight: 18px;\n\n\t\topacity: 1;\n\n\t\tposition: absolute;\n\t\ttop: 60%;\n\t\tleft: 50%;\n\t\ttransform: translate(-50%,-50%);\n\t\ttransform-origin: 0 0;\n\n\t\tanimation: spin-centered .8s linear infinite;\n\n\t\tz-index: 2;\n\n\t \tbackground-image: url(\"data:image/svg+xml,%3Csvg x='0' y='0' viewBox='0 0 512 512' xml:space='preserve' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M456.433 371.72l-27.79-16.045c-7.192-4.152-10.052-13.136-6.487-20.636 25.82-54.328 23.566-118.602-6.768-171.03-30.265-52.529-84.802-86.621-144.76-91.424C262.35 71.922 256 64.953 256 56.649V24.56c0-9.31 7.916-16.609 17.204-15.96 81.795 5.717 156.412 51.902 197.611 123.408 41.301 71.385 43.99 159.096 8.042 232.792-4.082 8.369-14.361 11.575-22.424 6.92z'/%3E%3C/svg%3E\");\n\n\t \tbackground-size: contain;\n\t \tbackground-position: center center;\n\t \tbackground-repeat: no-repeat;\n\t}\n\n\t.ult-form__submit-btn--disabled {\n\t\topacity: .6;\n\t\tcursor: not-allowed;\n\t\tpointer-events: none;\n\t}\n\n\t@-ms-keyframes spin-centered {\n        from {\n            -ms-transform: rotate(0deg) translate(-50%,-50%);\n        }\n        to {\n            -ms-transform: rotate(360deg) translate(-50%,-50%);\n        }\n    }\n\n    @-moz-keyframes spin-centered {\n        from {\n            -moz-transform: rotate(0deg) translate(-50%,-50%);\n        }\n        to {\n            -moz-transform: rotate(360deg) translate(-50%,-50%);\n        }\n    }\n\n    @-webkit-keyframes spin-centered {\n        from {\n            -webkit-transform: rotate(0deg) translate(-50%,-50%);\n        }\n        to {\n            -webkit-transform: rotate(360deg) translate(-50%,-50%);\n        }\n    }\n\n    @keyframes spin-centered {\n        from {\n            transform: rotate(0deg) translate(-50%,-50%);\n        }\n        to {\n            transform: rotate(360deg) translate(-50%,-50%);\n        }\n    }\n",".ult-form__row--remember-me {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n\t.ult-form__row--remember-me .ult-form__field {\n\t\tflex: 0 0 auto;\n\t\tmargin: 0 8px 0 0;\n\t}\n\n\t.ult-form__row--remember-me .ult-form-field__header {\n\t\tflex: 1 1 auto;\n\t}\n\n\t\t.ult-form__row--remember-me .ult-form-field__label {\n\t\t\tcolor: #636363;\n\t\t\tuser-select: none;\n\t\t\tcursor: pointer;\n\t\t}",".ult-form__validation {\n\tmargin-top: 15px;\n\tdisplay: none;\n}\n\n\t.ult-form__validation--has-error {\n\t\tdisplay: block;\n\t}\n\n\t.ult-form__validation:first-child {\n\t\tmargin-top: 0;\n\t\tmargin-bottom: 15px;\n\t}\n\n\t.ult-form__validation .ult-notice p {\n\t\tmargin: 0;\n\t}",".ult-form__footer {\n\tmargin-top: 25px;\n\tpadding-top: 15px;\n\tborder-top: 1px solid #d8d8d8;\n\ttext-align: center;\n}\n\n\t.ult-form__footer a {\n\t\tcolor: $primary_color;\n\t\ttext-decoration: none;\n\t}",".ult-form__container {\r\n    \r\n    .two-factor-error-notice {\r\n        margin-top: 20px;\r\n    }\r\n\r\n    .uo-toolkit-2fa-footer {\r\n        display: flex;\r\n        align-content: center;\r\n        flex-wrap: wrap;\r\n        justify-content: space-evenly;\r\n        margin-top: 20px;\r\n\r\n        &__backup-codes,\r\n        &__backto-home {\r\n            text-align: center;\r\n        }\r\n\r\n        a {\r\n            color: $primary_color;\r\n\t\t    text-decoration: none;\r\n        }\r\n    }\r\n}",".ult-notice {\n\tpadding: 15px;\n\tborder: 1px solid #d8d8d8;\n\tcolor: #737373;\n\tborder-radius: 3px;\n\ttext-align: center;\n\tline-height: 1.3;\n}\n\n@import './error.scss';\n@import './success.scss';",".ult-notice--error {\n\tbackground: #fceded;\n}",".ult-notice--success {\n\tbackground: #edfcef;\n}","/**\n * Modal\n */\n\n.ult-modal {\n\tdisplay: none;\n}\n\n.ult-modal-container .ult-modal {\n\tdisplay: block;\n}\n\n.ult-modal-container {\n\twidth: 100%;\n\theight: 100%;\n\n\tposition: fixed;\n\n\tdisplay: none;\n\n\ttop: 0;\n\tleft: 0;\n\n\tz-index: 100000;\n}\n\n\t.ult-modal-container--open {\n\t\tdisplay: block;\n\t}\n\n\t.ult-modal__inside {\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\tjustify-content: center;\n\t\talign-items: center;\n\n\t\tdisplay: flex;\n\t}\n\n\t.ult-modal-box {\n\t\twidth: calc(100% - 40px);\n\t\tmax-width: 565px;\n\n\t\tmax-height: calc(100vh - 40px);\n\t\toverflow-y: auto;\n\n\t\tbackground: #fff;\n\n\t\tbox-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.2);\n\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\tposition: relative;\n\n\t\tborder-radius: 8px;\n\n\t\toverflow: hidden;\n\n\t\t&:before {\n\t\t\tcontent: '';\n\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tz-index: 10;\n\n\t\t\tbackground: #fff;\n\n\t\t\topacity: 0;\n\n\t\t\ttransition: opacity 300ms ease-in-out;\n\n\t\t\tborder-radius: 8px;\n\t\t}\n\n\t\t&:after {\n\t\t\tcontent: '';\n\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\n\t\t\tborder-radius: 50%;\n\n\t\t\tposition: absolute;\n\t\t\tleft: 50%;\n\t\t\ttop: 50%;\n\t\t\tz-index: 11;\n\n\t\t\topacity: 0;\n\n\t\t\tuser-select: none;\n\n\t\t\ttransition: opacity 300ms ease-in-out;\n\t\t}\n\n\t\t.ult-modal-container--loading &:before {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\n\t\t\topacity: 1;\n\t\t}\n\n\t\t.ult-modal-container--loading &:after {\n\t\t\twidth: 50px;\n\t\t\theight: 50px;\n\n\t\t\tborder: 3px solid transparent;\n\t\t\tborder-top-color: #202020;\n\n\t\t\tanimation: ult_rotating_centered 2s linear infinite;\n\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t.ult-modal--small .ult-modal-box {\n\t\tmax-width: 385px;\n\t}\n\n\t.ult-modal--large .ult-modal-box {\n\t\tmax-width: 750px;\n\t}\n\n\t.ult-modal-box-header {\n\t\tpadding: 20px;\n\t\ttext-align: center;\n\t}\n\n\t\t.ult-modal-box-header h1,\n\t\t.ult-modal-box-header h2,\n\t\t.ult-modal-box-header h3 {\n\t\t\tfont-size: 30px;\n\t\t\tfont-weight: 500;\n\t\t\tline-height: 32px;\n\n\t\t\tpadding: 20px 20px 0px;\n\t\t\tmargin: 0;\n\t\t}\n\n\t.ult-modal-box-content {\n\t\twidth: 100%;\n\n\t\tposition: relative;\n\t\tdisplay: inline-flex;\n\n\t\toverflow: hidden;\n\t\t\n\t\tflex: 1 1 auto;\n\t}\n\n\t\t/*.ult-modal-box-content:after {\n\t\t\tcontent: '';\n\n\t\t\twidth: 100%;\n\n\t\t\tleft: 0px;\n\t\t\tbottom: 0px;\n\n\t\t\theight: 56px;\n\t\t\t\n\t\t\tposition: absolute;\n\t\t\t\n\t\t\tpointer-events: none;\n\n\t\t\tbackground: linear-gradient(rgba(255, 255, 255, 0), rgb(255, 255, 255));\n\t\t}*/\n\n\t\t.ult-modal {\n\t\t\twidth: 100%;\n\n\t\t\tfont-weight: 400;\n\t\t\tfont-size: 16px;\n\n\t\t\toverflow-y: auto;\n\n\t\t\tmax-height: 300px;\n\n\t\t\tposition: relative;\n\n\t\t\tmargin: 0px;\n\t\t\tpadding: 20px 40px;\n\n\t\t\toutline: none;\n\t\t}\n\n\t\t\t.ult-modal-box-content__inside::-webkit-scrollbar {\n\t\t\t\twidth: 10px;\n\t\t\t\tbackground-color: rgba( 0, 0, 0, .09 );\n\t\t\t\tborder-radius: 150px;\n\t\t\t}\n\n\t\t\t.ult-modal-box-content__inside::-webkit-scrollbar-thumb:vertical {\n\t\t\t\tbackground: #afafaf;\n\t\t\t\tborder-radius: 150px;\n\t\t\t\tbackground-clip: padding-box;\n\t\t\t\tborder: 2px solid rgba( 0, 0, 0, 0 );\n\t\t\t\tmin-height: 10px;\n\t\t\t}\n\n\t\t.ult-modal-box-content__br {\n\t\t\twidth: 100%;\n\t\t\theight: 10px;\n\t\t\tdisplay: block;\n\t\t}\n\n\t.ult-modal-box-footer {\n\t\tflex: 1 1 auto;\n\n\t\ttext-align: center;\n\n\t\tpadding: 20px;\n\t\tmargin: 0px 20px 20px;\n\n\t\toverflow: hidden;\n\t}\n\n\t\t.ult-modal-box-footer__dismiss {\n\t\t\tfont-size: 16px;\n\t\t\tfont-weight: 600;\n\n\t\t\tpadding: 10px 20px;\n\n\t\t\tcursor: pointer;\n\n\t\t\tline-height: 1.1;\n\n\t\t\tborder: 0;\n\n\t\t\tdisplay: inline-block;\n\n\t\t\tbackground: transparent;\n\t\t\tcolor: #0077c5;\n\n\t\t\ttransition: background 150ms ease-in-out;\n\n\t\t\tborder-radius: 150px;\n\t\t}\n\n\t\t.ult-modal-box-footer__dismiss:hover {\n\t\t\tbackground: #dadadc;\n\t\t}\n\n\t\t.ult-modal-box-footer__dismiss:active {\n\t\t\tbackground: #c4c4c6;\n\t\t}\n\n\t@media screen and (max-width: 1000px){\n\t\t.ult-modal-box-header h1,\n\t\t.ult-modal-box-header h2,\n\t\t.ult-modal-box-header h3 {\n\t\t\tfont-size: 24px;\n\t\t\tline-height: 26px;\n\t\t}\n\t}\n\n/**\n * Global modifications\n */\n\nbody.ult-modals--open {\n\toverflow: hidden !important;\n}\n\nbody.ult-modals--dim-background .ult-modal-container {\n\tbackground: rgba(0,0,0,.4);\n}","#ult-modal-container-ult-login {\n\t.ult-box {\n\t\tbox-shadow: none;\n\t\tpadding: 0;\n\t\tborder: 0;\n\t}\n\n\t.ult-modal {\n\t\tmax-height: 680px;\n\t}\n}\n\n.ult-login--recaptcha-error,\n.ult-forgot-password--recaptcha-error,\n.ult-reset-password--recaptcha-error {\n\t.g-recaptcha iframe {\n\t\tborder-radius: 4px;\n\t\tborder: 1px solid #ff0000;\n\t}\n}\n\n#ult-login-modal {\n\t$section: &;\n\n\t&.ult-login-modal--login {\n\t\t#{ $section }__login {\n\t\t\tdisplay: block;\n\t\t}\n\n\t\t#{ $section }__forgot-password {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t&.ult-login-modal--forgot-password {\n\t\t#{ $section }__login {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t#{ $section }__forgot-password {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}","// MODERN UI overrides for Frontend Login (layout_1)\n// This file is loaded last and should only target .uo-modern-ui\n\n.uo-modern-ui {\n  // Flattened Color Palette - No Gradients\n  --modern-primary: #0073aa;\n  --modern-primary-dark: #005a87;\n  --modern-secondary: #00a0d2;\n  --modern-accent: #ff6900;\n  --modern-surface: #ffffff;\n  --modern-background: #f8f9fa;\n  --modern-text-primary: #2d3748;\n  --modern-text-secondary: #718096;\n  --modern-border: #e2e8f0;\n  --modern-error: #e53e3e;\n  --modern-success: #38a169;\n  --modern-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n  --modern-shadow-elevated: 0 4px 8px rgba(0, 0, 0, 0.15);\n  --modern-shadow-focus: 0 0 0 3px rgba(0, 115, 170, 0.3);\n\n  // Main container styling - Clean and Simple\n  #ult-login,\n  #ult-forgot-password,\n  #ult-reset-password {\n    background: var(--modern-background);\n    min-height: 100vh;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    position: relative;\n  }\n\n  // Box styling - Clean and Simple\n  .ult-box {\n    background: var(--modern-surface);\n    border: 1px solid var(--modern-border);\n    border-radius: 12px;\n    box-shadow: var(--modern-shadow);\n    padding: 48px;\n    width: 100%;\n    position: relative;\n    transition: all 0.3s ease;\n    box-sizing: border-box;\n    margin-left: auto;\n    margin-right: auto;\n\n    &::before {\n      background: var(--modern-primary);\n      border-radius: 10px 10px 0 0;\n      content: \"\";\n      height: 7px;\n      left: 0;\n      position: absolute;\n      right: 0;\n      top: 0px;\n      z-index: 1;\n    }\n\n    &:hover {\n      box-shadow: var(--modern-shadow-elevated);\n    }\n  }\n\n  // Typography - Clean Headers\n  .ult-form__title {\n    font-size: 32px;\n    font-weight: 700;\n    color: var(--modern-primary);\n    margin-bottom: 12px;\n    text-align: center;\n    letter-spacing: -1px;\n    position: relative;\n    \n    &::after {\n      content: '';\n      position: absolute;\n      bottom: -8px;\n      left: 50%;\n      transform: translateX(-50%);\n      width: 60px;\n      height: 4px;\n      background: var(--modern-primary);\n      border-radius: 2px;\n    }\n  }\n\n  .ult-form__description {\n    font-size: 16px;\n    color: var(--modern-text-primary);\n    text-align: center;\n    margin-bottom: 40px;\n    line-height: 1.6;\n    font-weight: 400;\n  }\n\n  // Form container\n  .ult-form__container {\n    background: transparent;\n    border-radius: 0;\n    padding: 0;\n    box-shadow: none;\n  }\n\n  // Form fields - FLOATING LABELS\n  .ult-form__row {\n    margin-bottom: 32px;\n    position: relative;\n  }\n\n  .ult-form-field__header {\n    margin-bottom: 12px;\n  }\n\n  .ult-form-field__label {\n    font-size: 14px;\n    font-weight: 600;\n    color: var(--modern-text-primary);\n    margin-bottom: 8px;\n    display: block;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n  }\n\n  // Form labels (username, password, etc.)\n  label {\n    color: var(--modern-text-primary);\n    font-weight: 600;\n    font-size: 14px;\n  }\n\n  .ult-form__input {\n    width: 100%;\n    padding: 20px 24px;\n    border: 2px solid var(--modern-border);\n    border-radius: 8px;\n    font-size: 16px;\n    background: var(--modern-surface);\n    color: var(--modern-text-primary);\n    transition: all 0.3s ease;\n    box-sizing: border-box;\n\n    &:focus {\n      outline: none;\n      border-color: var(--modern-primary);\n      box-shadow: var(--modern-shadow-focus);\n    }\n\n    &:hover {\n      border-color: var(--modern-primary);\n    }\n\n    &::placeholder {\n      color: var(--modern-text-secondary);\n      font-weight: 400;\n    }\n  }\n\n  // Submit button - Clean Solid Button\n  .ult-form__submit-btn,\n  #ult-login-submit,\n  #ult-forgot-password-submit-btn,\n  #ult-reset-password-submit-btn,\n  #ult-login-form #ult-login-submit,\n  #ult-2fa-validation-form--templated #submit,\n  #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend] {\n    width: 100% !important;\n    padding: 18px 32px !important;\n    background: var(--modern-primary) !important;\n    color: white !important;\n    border: none !important;\n    border-radius: 8px !important;\n    font-size: 16px !important;\n    font-weight: 600 !important;\n    cursor: pointer;\n    transition: all 0.3s ease;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n    margin-top: 16px;\n    box-shadow: var(--modern-shadow);\n    line-height: 1.4;\n\n    &:hover {\n      background: var(--modern-primary-dark) !important;\n      color: white !important;\n      box-shadow: var(--modern-shadow-elevated);\n    }\n\n    &:focus {\n      outline: none;\n      box-shadow: var(--modern-shadow-focus) !important;\n    }\n\n    &:active {\n      transform: translateY(1px);\n    }\n  }\n\n  // Checkbox styling - CUSTOM CHECKBOX\n  .ult-form__row--remember {\n    display: flex;\n    align-items: center;\n    margin-bottom: 32px;\n  }\n\n  #ult-login-remember {\n    width: 20px;\n    height: 20px;\n    margin-right: 12px;\n    accent-color: var(--modern-primary);\n    border-radius: 4px;\n  }\n\n  .ult-form__row--remember label {\n    font-size: 14px;\n    color: var(--modern-text-primary);\n    margin: 0;\n    cursor: pointer;\n    font-weight: 500;\n  }\n\n  // Footer links - PREMIUM LINKS\n  .ult-form__footer {\n    margin-top: 40px;\n    padding-top: 32px;\n    border-top: 1px solid var(--modern-border);\n    text-align: center;\n  }\n\n  .ult-form__footer a {\n    color: var(--modern-primary);\n    text-decoration: none;\n    font-weight: 600;\n    font-size: 14px;\n    transition: all 0.3s ease;\n    position: relative;\n    padding: 8px 16px;\n    border-radius: 8px;\n\n    &::before {\n      content: '';\n      position: absolute;\n      bottom: 0;\n      left: 50%;\n      width: 0;\n      height: 2px;\n      background: var(--modern-primary);\n      transition: all 0.3s ease;\n      transform: translateX(-50%);\n    }\n\n    &:hover {\n      color: var(--modern-primary-dark);\n      background: rgba(0, 115, 170, 0.1);\n      \n      &::before {\n        width: 80%;\n      }\n    }\n  }\n\n  .ult-form-footer__forgot-password,\n  .ult-form-footer__signup,\n  .ult-form-footer__login {\n    margin-bottom: 16px;\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Notices/Error messages - Clean Notices\n  .ult-notice {\n    border-radius: 8px;\n    padding: 20px 24px;\n    margin-bottom: 24px;\n    font-weight: 500;\n    border: none;\n    position: relative;\n  }\n\n  .ult-notice--error {\n    background: rgba(229, 62, 62, 0.1);\n    color: var(--modern-error);\n    border-left: 4px solid var(--modern-error);\n  }\n\n  .ult-notice--success {\n    background: rgba(56, 161, 105, 0.1);\n    color: var(--modern-success);\n    border-left: 4px solid var(--modern-success);\n  }\n\n  // Validation styling\n  .ult-form__validation {\n    margin-bottom: 24px;\n  }\n\n  .ult-form__validation--has-error {\n    .ult-form__input {\n      border-color: var(--modern-error);\n      animation: shake 0.5s ease-in-out;\n    }\n  }\n\n  // reCAPTCHA styling\n  .ult-form-recaptcha {\n    margin-top: 20px;\n  }\n\n  // Responsive design\n  @media (max-width: 768px) {\n    .ult-box {\n      padding: 32px 24px;\n      margin: 0;\n      border-radius: 12px;\n    }\n\n    .ult-form__title {\n      font-size: 28px;\n    }\n\n    .ult-form__input {\n      padding: 18px 20px;\n    }\n\n    .ult-form__submit-btn,\n    #ult-login-submit,\n    #ult-forgot-password-submit-btn,\n    #ult-reset-password-submit-btn {\n      padding: 16px 24px;\n    }\n  }\n\n  // Loading states\n  .ult-form__submit-btn:disabled,\n  #ult-login-submit:disabled,\n  #ult-forgot-password-submit-btn:disabled,\n  #ult-reset-password-submit-btn:disabled {\n    opacity: 0.6;\n    cursor: not-allowed;\n    transform: none;\n  }\n\n  // Focus management\n  .ult-form__input:focus,\n  .ult-form__submit-btn:focus,\n  #ult-login-submit:focus,\n  #ult-forgot-password-submit-btn:focus,\n  #ult-reset-password-submit-btn:focus {\n    outline: none;\n  }\n\n  // Simple Animations\n  @keyframes shake {\n    0%, 100% { transform: translateX(0); }\n    25% { transform: translateX(-5px); }\n    75% { transform: translateX(5px); }\n  }\n\n  // Simple form appearance animation\n  .ult-box {\n    animation: slideUp 0.4s ease;\n  }\n\n  @keyframes slideUp {\n    from {\n      opacity: 0;\n      transform: translateY(20px);\n    }\n    to {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n} \n\n// ========================================\n// LOGIN FORM\n// ========================================\n.uo_loginForm {\n\t.galogin {\n\t\tmargin-top: 15px;\n\t}\n\tform {\n    .login-remember {\n      label {\n        display: flex;\n        align-items: center;\n      }\n    }\n\t\t.login-username {\n\t\t\tinput[type=text] {\n\t\t\t\theight: 40px;\n\t\t\t}\n\t\t}\n    .ult-form-password-wrapper {\n      height: 40px;\n    }\n\t\t.login-password {\n\t\t\tinput[type=password] {\n\t\t\t\theight: 40px;\n        background: #fff;\n\t\t\t}\n\t\t}\n\t}\n}"],"names":[],"sourceRoot":""}
  • uncanny-learndash-toolkit/tags/3.8.0.1/src/assets/frontend/dist/bundle.min.js

    r3395254 r3407115  
    11/*! For license information please see bundle.min.js.LICENSE.txt */
    2 (()=>{var t={29:t=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function n(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,o(i.key),i)}}function o(t){var n=function(t,n){if("object"!=e(t)||!t)return t;var o=t[Symbol.toPrimitive];if(void 0!==o){var i=o.call(t,"string");if("object"!=e(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(n)?n:String(n)}var i=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}var e,o;return e=t,o=[{key:"handleResponse",value:function(t){return!!(t&&t.data&&!0===t.data.requires_redirect&&t.data.redirect_url&&"undefined"!=typeof window&&window.location)&&(window.location.href=t.data.redirect_url,!0)}}],null&&n(e.prototype,null),o&&n(e,o),Object.defineProperty(e,"prototype",{writable:!1}),t}();"undefined"!=typeof window&&(window.UltimateLogin2FARedirect=i),t.exports&&(t.exports=i)},977:function(t,e,n){var o,i;window.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(t){var e,n=(this.document||this.ownerDocument).querySelectorAll(t),o=this;do{for(e=n.length;0<=--e&&n.item(e)!==o;);}while(e<0&&(o=o.parentElement));return o}),i=void 0!==n.g?n.g:"undefined"!=typeof window?window:this,o=function(){return function(t){"use strict";var e={},n={},o=function(e){n[e.type]&&n[e.type].forEach((function(n){var o,i;o=e.target,i=n.selector,(-1<["*","window","document","document.documentElement",t,document,document.documentElement].indexOf(i)||("string"!=typeof i&&i.contains?i===o||i.contains(o):o.closest(i)))&&n.callback(e)}))};return e.on=function(e,i,r){i&&r&&e.split(",").forEach((function(e){e=e.trim(),n[e]||(n[e]=[],t.addEventListener(e,o,!0)),n[e].push({selector:i,callback:r})}))},e.off=function(e,i,r){e.split(",").forEach((function(e){if(e=e.trim(),n[e]){if(n[e].length<2||!i)return delete n[e],void t.removeEventListener(e,o,!0);var s=function(t,e,n){for(var o=0;o<t.length;o++)if(t[o].selector===e&&t[o].callback.toString()===n.toString())return o;return-1}(n[e],i,r);s<0||n[e].splice(s,1)}}))},e.once=function(t,n,o){e.on(t,n,(function i(r){o(r),e.off(t,n,i)}))},e.get=function(){var t={};for(var e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);return t},e}(i)}.apply(e,[]),void 0===o||(t.exports=o)}},e={};function n(o){var i=e[o];if(void 0!==i)return i.exports;var r=e[o]={exports:{}};return t[o].call(r.exports,r,r.exports,n),r.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function o(n){for(var o=1;o<arguments.length;o++){var i=null!=arguments[o]?arguments[o]:{};o%2?e(Object(i),!0).forEach((function(e){var o,r,s,a;o=n,r=e,s=i[e],a=function(e,n){if("object"!=t(e)||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var i=o.call(e,"string");if("object"!=t(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(r),(r="symbol"==t(a)?a:String(a))in o?Object.defineProperty(o,r,{value:s,enumerable:!0,configurable:!0,writable:!0}):o[r]=s})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):e(Object(i)).forEach((function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(i,t))}))}return n}var i=function(t){return null!=t},r=function(t){var e=!0;return i(t)&&(e=Array.isArray(t)?0==t.length:s(t)?0==Object.keys(t).length:""==t),e},s=function(t){return t===Object(t)},a=function(){var t=arguments.length>1?arguments[1]:void 0,e=arguments.length>2?arguments[2]:void 0,n="ult--fade-".concat(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"in");e=i(e)?e:function(){},t.classList.add(n),setTimeout((function(){t.classList.remove(n),e()}),280)};function l(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{var n=new CustomEvent(t,{detail:e});document.dispatchEvent(n)}catch(t){}}var c='<svg xmlns="http://www.w3.org/2000/svg" fill="currentcolor" viewBox="0 0 576 512"><path d="M279.6 160.4C282.4 160.1 285.2 160 288 160C341 160 384 202.1 384 256C384 309 341 352 288 352C234.1 352 192 309 192 256C192 253.2 192.1 250.4 192.4 247.6C201.7 252.1 212.5 256 224 256C259.3 256 288 227.3 288 192C288 180.5 284.1 169.7 279.6 160.4zM480.6 112.6C527.4 156 558.7 207.1 573.5 243.7C576.8 251.6 576.8 260.4 573.5 268.3C558.7 304 527.4 355.1 480.6 399.4C433.5 443.2 368.8 480 288 480C207.2 480 142.5 443.2 95.42 399.4C48.62 355.1 17.34 304 2.461 268.3C-.8205 260.4-.8205 251.6 2.461 243.7C17.34 207.1 48.62 156 95.42 112.6C142.5 68.84 207.2 32 288 32C368.8 32 433.5 68.84 480.6 112.6V112.6zM288 112C208.5 112 144 176.5 144 256C144 335.5 208.5 400 288 400C367.5 400 432 335.5 432 256C432 176.5 367.5 112 288 112z"/></svg>';function u(t){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u(t)}function d(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,m(o.key),o)}}function m(t){var e=function(t,e){if("object"!=u(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=u(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==u(e)?e:String(e)}var f=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),e&&(e.closest(".".concat(this.cssClasses.passwordWrapper))||(this.$field=e,this.addWrapper(),this.contentVisibilityToggle(),this.styleFocusOnWrapper()))}var e,n;return e=t,(n=[{key:"addWrapper",value:function(){this.$passwordWrapper=document.createElement("label"),this.$passwordWrapper.classList.add(this.cssClasses.passwordWrapper),this.$field.insertAdjacentElement("afterEnd",this.$passwordWrapper),this.$passwordWrapper.appendChild(this.$field)}},{key:"contentVisibilityToggle",value:function(){var t=this;this.$passwordWrapper.insertAdjacentHTML("beforeEnd",'\n            <div class="'.concat(this.cssClasses.passwordVisibilityToggle,'">\n                ').concat(c,"\n            </div>\n        "));var e=this.$passwordWrapper.querySelector(".".concat(this.cssClasses.passwordVisibilityToggle));e.addEventListener("click",(function(){var n="text"==t.$field.getAttribute("type");n&&(t.$field.setAttribute("type","password"),e.innerHTML=c),n||(t.$field.setAttribute("type","text"),e.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" fill="currentcolor" viewBox="0 0 640 512"><path d="M150.7 92.77C195 58.27 251.8 32 320 32C400.8 32 465.5 68.84 512.6 112.6C559.4 156 590.7 207.1 605.5 243.7C608.8 251.6 608.8 260.4 605.5 268.3C592.1 300.6 565.2 346.1 525.6 386.7L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L150.7 92.77zM223.1 149.5L313.4 220.3C317.6 211.8 320 202.2 320 191.1C320 180.5 316.1 169.7 311.6 160.4C314.4 160.1 317.2 159.1 320 159.1C373 159.1 416 202.1 416 255.1C416 269.7 413.1 282.7 407.1 294.5L446.6 324.7C457.7 304.3 464 280.9 464 255.1C464 176.5 399.5 111.1 320 111.1C282.7 111.1 248.6 126.2 223.1 149.5zM320 480C239.2 480 174.5 443.2 127.4 399.4C80.62 355.1 49.34 304 34.46 268.3C31.18 260.4 31.18 251.6 34.46 243.7C44 220.8 60.29 191.2 83.09 161.5L177.4 235.8C176.5 242.4 176 249.1 176 255.1C176 335.5 240.5 400 320 400C338.7 400 356.6 396.4 373 389.9L446.2 447.5C409.9 467.1 367.8 480 320 480H320z"/></svg>')}))}},{key:"styleFocusOnWrapper",value:function(){var t=this;this.$field.addEventListener("focus",(function(){t.$passwordWrapper.classList.add("".concat(t.cssClasses.passwordWrapper,"--focus"))})),this.$field.addEventListener("blur",(function(){t.$passwordWrapper.classList.remove("".concat(t.cssClasses.passwordWrapper,"--focus"))}))}},{key:"cssClasses",get:function(){return{passwordWrapper:"ult-form-password-wrapper",passwordVisibilityToggle:"ult-form-password-wrapper-eye-toggle"}}}])&&d(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),t}();function h(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&y(t,e)}function y(t,e){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},y(t,e)}function b(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,o=p(t);if(e){var i=p(this).constructor;n=Reflect.construct(o,arguments,i)}else n=o.apply(this,arguments);return function(t,e){if(e&&("object"===g(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(this,n)}}function p(t){return p=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},p(t)}function g(t){return g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},g(t)}function v(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function w(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,k(o.key),o)}}function C(t,e,n){return e&&w(t.prototype,e),n&&w(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function k(t){var e=function(t,e){if("object"!=g(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=g(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==g(e)?e:String(e)}var L=n(977),S=function(){function t(){v(this,t),this.getElements(),this.shouldInvokeMethods()&&(this.validateFormSubmission(),this.handleReCaptchaChanges())}return C(t,[{key:"getElements",value:function(){this.$elements={},this.cssClasses={}}},{key:"formData",get:function(){return{}}},{key:"ajaxAction",get:function(){return""}},{key:"validateFormSubmission",value:function(){var t=this;i(this.$elements.mainForm)&&(this.$elements.mainForm.onsubmit=function(e){var n=!0;t.hasReCAPTCHA()&&!t.isCaptchaChecked()&&(t.$elements.container.classList.add(t.cssClasses.reCAPTCHAerror),n=!1,t.setError(UncannyToolkit.frontendLogin.i18n.checkReCaptcha),console.error("✋Frontend Login: The form is using reCAPTCHA, but you didn't pass the verification")),l("uncanny-toolkit/frontend-login/".concat(t.id,"/validated"),{isValid:n}),n?t.submitForm(e):(e.preventDefault(),console.error("✋Frontend Login: Submission prevented"))})}},{key:"submitForm",value:function(t){var e=this;this.setError(!1),this.setLoadingStatus(!0),this.setButtonDisableStatus(!0);var n=function(){l("uncanny-toolkit/frontend-login/".concat(e.id,"/submitting")),function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};e=o(o({},e),{action:t}),i(s.includeNonce)&&!s.includeNonce||(e.nonce=UncannyToolkit.ajax.nonce),fetch(UncannyToolkit.ajax.url,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","Cache-Control":"no-cache"},body:new URLSearchParams(e)}).then((function(t){if(t.ok)return t.redirected?{success:!1,code:302}:t.json();throw i(r)&&r(o(o({},t),{success:!1})),Error(UncannyToolkit.i18n.error.generic)})).then((function(t){t.success?i(n)&&n(t):i(r)&&r(o(o({},t),{success:!1}))})).catch((function(t){console.error("✋Uncanny Toolkit: The fetch call threw an error"),i(r)&&r(o(o({},t),{success:!1}))}))}(e.ajaxAction,e.formData,(function(t){e.setLoadingStatus(!1),e.setButtonDisableStatus(!1),t.success?(l("uncanny-toolkit/frontend-login/".concat(e.id,"/submitted"),{success:!0}),e.afterValidSubmission(t)):(l("uncanny-toolkit/frontend-login/".concat(e.id,"/submitted"),{success:!1,message:i(t.message)?t.message:UncannyToolkit.i18n.error.generic}),i(t.message)?e.setError(t.message):e.setError(UncannyToolkit.i18n.error.generic),e.resetReCAPTCHA())}),(function(t){i(t.code)&&302==t.code&&UncannyToolkit.integrity.shouldPreventConcurrentLogin&&(t.message=UncannyToolkit.i18n.preventConcurrentLogin),window.UltimateLogin2FARedirect&&window.UltimateLogin2FARedirect.handleResponse(t)||(l("uncanny-toolkit/frontend-login/".concat(e.id,"/submitted"),{success:!1,message:i(t.message)?t.message:UncannyToolkit.i18n.error.generic}),i(t.message)?e.setError(t.message):e.setError(UncannyToolkit.i18n.error.generic),e.resetReCAPTCHA(),e.setLoadingStatus(!1),e.setButtonDisableStatus(!1))}),{includeNonce:!1})};!this.isUsingLearnDashReCaptcha()&&UncannyToolkit.frontendLogin.hasAjaxEnabled?(t.preventDefault(),n()):UncannyToolkit.frontendLogin.hasAjaxEnabled?(t.preventDefault(),this.handleLearnDashReCaptcha((function(){n()}))):this.hasLearnDashReCaptchField()||(t.preventDefault(),this.handleLearnDashReCaptcha((function(){e.$elements.mainForm.submit()})))}},{key:"afterValidSubmission",value:function(t){}},{key:"setLoadingStatus",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];UncannyToolkit.frontendLogin.ui.showAnimationOnSubmit&&(t?(this.$elements.container.classList.add(this.cssClasses.loading),this.$elements.submitButton.container.classList.add(this.cssClasses.btnLoading),l("uncanny-toolkit/frontend-login/".concat(this.id,"/set-loading"),{isLoading:!0})):(this.$elements.container.classList.remove(this.cssClasses.loading),this.$elements.submitButton.container.classList.remove(this.cssClasses.btnLoading),l("uncanny-toolkit/frontend-login/".concat(this.id,"/set-loading"),{isLoading:!1})))}},{key:"setButtonDisableStatus",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];UncannyToolkit.frontendLogin.ui.buttonDisabledOnSubmit&&(t?(this.$elements.container.classList.add(this.cssClasses.disabled),this.$elements.submitButton.container.classList.add(this.cssClasses.btnDisabled),this.$elements.submitButton.button.setAttribute("disabled",!0),l("uncanny-toolkit/frontend-login/".concat(this.id,"/disable-button"),{disable:!0})):(this.$elements.container.classList.remove(this.cssClasses.disabled),this.$elements.submitButton.container.classList.remove(this.cssClasses.btnDisabled),this.$elements.submitButton.button.removeAttribute("disabled"),l("uncanny-toolkit/frontend-login/".concat(this.id,"/disable-button"),{disable:!1})))}},{key:"setError",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];r(t)?(this.$elements.errorNotice.container.classList.remove(this.cssClasses.noticeHasError),this.$elements.errorNotice.textNode.textContent="",this.$elements.container.classList.remove(this.cssClasses.reCAPTCHAerror)):(this.$elements.errorNotice.container.classList.add(this.cssClasses.noticeHasError),this.$elements.errorNotice.textNode.innerHTML=t)}},{key:"handleReCaptchaChanges",value:function(){var t=this;UncannyToolkit.frontendLogin.reCaptcha={correct:function(e){t.setError(!1)}}}},{key:"hasReCAPTCHA",value:function(){return i(this.$elements.formFields.reCAPTCHA)}},{key:"getReCAPTCHAResponse",value:function(){var t=this.$elements.formFields.reCAPTCHA.getAttribute("data-id");return grecaptcha.getResponse(t)}},{key:"resetReCAPTCHA",value:function(){try{var t=this.$elements.formFields.reCAPTCHA.getAttribute("data-id");grecaptcha.reset(t)}catch(t){}}},{key:"isOnModal",value:function(){return i(UncannyToolkit.modals["ult-login"])}},{key:"isCaptchaChecked",value:function(){return!r(this.getReCAPTCHAResponse())}},{key:"shouldInvokeMethods",value:function(){return i(this.$elements.container)}},{key:"handleLearnDashReCaptcha",value:function(t){var e=this;this.isUsingLearnDashReCaptcha()?grecaptcha.ready((function(){grecaptcha.execute(LD_TP.site_key,{action:"submit"}).then((function(n){i(e.$elements.mainForm)&&e.$elements.mainForm.insertAdjacentHTML("afterbegin",'<input type="hidden" id="ult-form-ld-recaptcha" name="token" value="'.concat(n,'">')),i(t)&&t()}))})):i(t)&&t()}},{key:"isUsingLearnDashReCaptcha",value:function(){return i(window.grecaptcha)&&i(window.LD_TP)&&i(LD_TP.site_key)}},{key:"hasLearnDashReCaptchField",value:function(){var t=!1;return i(this.$elements.mainForm)&&(t=i(this.$elements.mainForm.querySelector('input[name="token"]'))),t}}]),t}(),$=function(t){h(n,t);var e=b(n);function n(){var t;return v(this,n),t=e.call(this),new f(t.$elements.formFields.password),t}return C(n,[{key:"getElements",value:function(){this.$elements={container:document.getElementById("ult-login"),mainForm:document.getElementById("ult-login-form"),submitButton:{container:document.getElementsByClassName("login-submit")[0],button:document.getElementById("ult-login-submit")},errorNotice:{container:document.querySelector("#ult-login .ult-form__validation"),textNode:document.querySelector("#ult-login .ult-notice-text")},formFields:{email:document.getElementById("ult-login-email"),password:document.getElementById("ult-login-password"),redirectTo:document.querySelector('#ult-login .login-submit input[name="redirect_to"]'),reCAPTCHA:document.querySelector("#ult-login .ult-form-recaptcha"),rememberMe:document.getElementById("ult-login-remember")}}}},{key:"id",get:function(){return"login"}},{key:"ajaxAction",get:function(){return"ult-login"}},{key:"cssClasses",get:function(){return{reCAPTCHAerror:"ult-login--recaptcha-error",loading:"ult-login--loading",disabled:"ult-login--disabled",btnLoading:"ult-form__submit-btn--loading",btnDisabled:"ult-form__submit-btn--disabled",noticeHasError:"ult-form__validation--has-error"}}},{key:"formData",get:function(){var t={email:this.$elements.formFields.email.value,password:this.$elements.formFields.password.value,redirectTo:this.$elements.formFields.redirectTo.value},e=Object.assign({},t,UOToolkitFrontEndLoginFormData);return i(this.$elements.formFields.rememberMe)&&(e.rememberMe=this.$elements.formFields.rememberMe.checked),this.hasReCAPTCHA()&&(e["g-recaptcha-response"]=this.getReCAPTCHAResponse()),i(this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha"))&&(e.token=this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha").value),i(this.$elements.mainForm.querySelector('input[name="uo_is_login_modal"]'))&&(e.uo_is_login_modal=this.$elements.mainForm.querySelector('input[name="uo_is_login_modal"]').value),e}},{key:"afterValidSubmission",value:function(t){var e;this.setLoadingStatus(!0),this.setButtonDisableStatus(!0),window.UltimateLogin2FARedirect&&window.UltimateLogin2FARedirect.handleResponse(t)||null!=t&&null!==(e=t.twoFactor)&&void 0!==e&&null!==(e=e._meta)&&void 0!==e&&e.enabled||(r(t.redirectTo)?window.location.reload():window.location.href=t.redirectTo)}}]),n}(S),T=function(t){h(n,t);var e=b(n);function n(){return v(this,n),e.apply(this,arguments)}return C(n,[{key:"getElements",value:function(){this.$elements={container:document.getElementById("ult-forgot-password"),boxContent:document.querySelector("#ult-forgot-password .ult-form__content"),mainForm:document.getElementById("ult-forgot-password-form"),submitButton:{container:document.querySelector(".ult-form__row--submit"),button:document.getElementById("ult-forgot-password-submit-btn")},errorNotice:{container:document.querySelector("#ult-forgot-password .ult-form__validation"),textNode:document.querySelector("#ult-forgot-password .ult-notice-text")},formFields:{email:document.getElementById("ult-forgot-email"),reCAPTCHA:document.querySelector("#ult-forgot-password .ult-form-recaptcha")}}}},{key:"id",get:function(){return"forgot-password"}},{key:"ajaxAction",get:function(){return"ult-forgot-password"}},{key:"cssClasses",get:function(){return{reCAPTCHAerror:"ult-forgot-password--recaptcha-error",loading:"ult-forgot-password--loading",disabled:"ult-forgot-password--disabled",btnLoading:"ult-form__submit-btn--loading",btnDisabled:"ult-form__submit-btn--disabled",noticeHasError:"ult-form__validation--has-error"}}},{key:"formData",get:function(){var t={email:this.$elements.formFields.email.value},e=Object.assign({},t,UOToolkitFrontEndLoginFormData);return this.hasReCAPTCHA()&&(e["g-recaptcha-response"]=this.getReCAPTCHAResponse()),i(this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha"))&&(e.token=this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha").value),e}},{key:"afterValidSubmission",value:function(t){this.$elements.boxContent.innerHTML=t.message}}]),n}(S),A=function(t){h(n,t);var e=b(n);function n(){return v(this,n),e.apply(this,arguments)}return C(n,[{key:"getElements",value:function(){this.$elements={container:document.getElementById("ult-reset-password"),boxContent:document.querySelector("#ult-reset-password .ult-form__content"),mainForm:document.getElementById("ult-reset-password-form"),submitButton:{container:document.querySelector(".ult-form__row--submit"),button:document.getElementById("ult-reset-password-submit-btn")},errorNotice:{container:document.querySelector("#ult-reset-password .ult-form__validation"),textNode:document.querySelector("#ult-reset-password .ult-notice-text")},formFields:{password:document.getElementById("ult-reset-new-password"),passwordRepeat:document.getElementById("ult-reset-confirm-password"),reCAPTCHA:document.querySelector("#ult-reset-password .ult-form-recaptcha")}}}},{key:"id",get:function(){return"reset-password"}},{key:"ajaxAction",get:function(){return"ult-reset-password"}},{key:"cssClasses",get:function(){return{reCAPTCHAerror:"ult-reset-password--recaptcha-error",loading:"ult-reset-password--loading",disabled:"ult-reset-password--disabled",btnLoading:"ult-form__submit-btn--loading",btnDisabled:"ult-form__submit-btn--disabled",noticeHasError:"ult-form__validation--has-error"}}},{key:"formData",get:function(){var t={password:this.$elements.formFields.password.value,passwordRepeat:this.$elements.formFields.passwordRepeat.value};return this.hasReCAPTCHA()&&(t["g-recaptcha-response"]=this.getReCAPTCHAResponse()),i(this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha"))&&(t.token=this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha").value),t}},{key:"afterValidSubmission",value:function(t){this.$elements.boxContent.innerHTML=t.message}}]),n}(S),E=function(){function t(){v(this,t),this.shouldInvokeMethods()?(this.getElements(),this.handleContainerVisiblity()):i(UncannyToolkit.frontendLogin)&&i(UncannyToolkit.frontendLogin.currentPageIsLoginPage)&&UncannyToolkit.frontendLogin.currentPageIsLoginPage&&this.handleModalInLoginPage()}return C(t,[{key:"getElements",value:function(){this.$elements={container:document.getElementById("ult-login-modal"),loginShowButton:document.getElementById("ult-form-footer-login"),forgotPasswordShowButton:document.getElementById("ult-form-footer-forgot-password")}}},{key:"handleContainerVisiblity",value:function(){var t=this;i(this.$elements.forgotPasswordShowButton)&&this.$elements.forgotPasswordShowButton.addEventListener("click",(function(e){e.preventDefault(),t.showSection("forgot-password")})),i(this.$elements.loginShowButton)&&this.$elements.loginShowButton.addEventListener("click",(function(e){e.preventDefault(),t.showSection("login")}))}},{key:"showSection",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"login";this.$elements.container.classList.remove("ult-login-modal--login","ult-login-modal--forgot-password"),"login"==t?this.$elements.container.classList.add("ult-login-modal--login"):"forgot-password"==t&&this.$elements.container.classList.add("ult-login-modal--forgot-password")}},{key:"shouldInvokeMethods",value:function(){return i(UncannyToolkit.frontendLogin)&&i(UncannyToolkit.frontendLogin.currentPageIsLoginPage)&&!UncannyToolkit.frontendLogin.currentPageIsLoginPage&&i(UncannyToolkit.modals["ult-login"])}},{key:"handleModalInLoginPage",value:function(){L.on("click",'[href*="ult-modal-open----ult-login"]',(function(t){t.preventDefault(),location.reload()}))}}]),t}(),P=function(){function t(){var e,n,o;v(this,t),e=this,o="login-2nd-factor",(n=k(n="id"))in e?Object.defineProperty(e,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[n]=o,this.$form&&this.listenSubmission()}return C(t,[{key:"listenSubmission",value:function(){var t=this;this.$form.addEventListener("submit",(function(e){t.setLoadingStatus(!0),t.setButtonDisableStatus(!0)}))}},{key:"setLoadingStatus",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];UncannyToolkit.frontendLogin.ui.showAnimationOnSubmit&&(t?(this.$elements.container.classList.add(this.cssClasses.loading),this.$elements.submitButton.container.classList.add(this.cssClasses.btnLoading),l("uncanny-toolkit/frontend-login/".concat(this.id,"/set-loading"),{isLoading:!0})):(this.$elements.container.classList.remove(this.cssClasses.loading),this.$elements.submitButton.container.classList.remove(this.cssClasses.btnLoading),l("uncanny-toolkit/frontend-login/".concat(this.id,"/set-loading"),{isLoading:!1})))}},{key:"setButtonDisableStatus",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];UncannyToolkit.frontendLogin.ui.buttonDisabledOnSubmit&&(t?(this.$elements.container.classList.add(this.cssClasses.disabled),this.$elements.submitButton.container.classList.add(this.cssClasses.btnDisabled),this.$elements.submitButton.button.setAttribute("disabled",!0),l("uncanny-toolkit/frontend-login/".concat(this.id,"/disable-button"),{disable:!0})):(this.$elements.container.classList.remove(this.cssClasses.disabled),this.$elements.submitButton.container.classList.remove(this.cssClasses.btnDisabled),this.$elements.submitButton.button.removeAttribute("disabled"),l("uncanny-toolkit/frontend-login/".concat(this.id,"/disable-button"),{disable:!1})))}},{key:"cssClasses",get:function(){return{loading:"ult-login--loading",disabled:"ult-login--disabled",btnLoading:"ult-form__submit-btn--loading",btnDisabled:"ult-form__submit-btn--disabled"}}},{key:"$elements",get:function(){return{container:document.getElementById("ult-login"),submitButton:{container:this.$form.querySelector(".submit"),button:this.$form.querySelector('.submit input[type="submit"]')}}}},{key:"$form",get:function(){return document.getElementById("ult-2fa-validation-form--templated")}}]),t}(),_=n(29),D=n.n(_);function O(t){return O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},O(t)}function j(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,B(o.key),o)}}function B(t){var e=function(t,e){if("object"!=O(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=O(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==O(e)?e:String(e)}const F=function(){function t(){var e=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.whenReady((function(){e.renderReCaptchas()}))}var e,n;return e=t,(n=[{key:"whenReady",value:function(t){window.UncannyToolkit.reCaptchaInit=function(){t()}}},{key:"renderReCaptchas",value:function(){var t=document.querySelectorAll(".ult-form-recaptcha");[].forEach.call(t,(function(t){var e=window.grecaptcha.render(t,{sitekey:t.getAttribute("data-sitekey"),callback:t.getAttribute("data-callback")});t.setAttribute("data-id",e)}))}}])&&j(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),t}();function R(t){return R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},R(t)}function x(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function M(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,H(o.key),o)}}function U(t,e,n){return e&&M(t.prototype,e),n&&M(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function H(t){var e=function(t,e){if("object"!=R(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=R(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==R(e)?e:String(e)}var q=n(977),I=function(){function t(){x(this,t),this.allModals=[],UncannyToolkit.modals={},this.getElements(),this.createModals()}return U(t,[{key:"getElements",value:function(){this.$elements={modals:document.querySelectorAll(".ult-modal")}}},{key:"createModals",value:function(){var t=this;[].forEach.call(this.$elements.modals,(function(e){var n=i(e.getAttribute("data-id"))?e.getAttribute("data-id"):"";if(!t.allModals.includes(n)){var o=new W(e);t.allModals.push(n),UncannyToolkit.modals[n]=o}}))}}]),t}(),W=function(){function t(e){x(this,t),this.getModalData(e),this.renderModal(e),this.handleModalOpen(),this.handleClickOutsideTheModal()}return U(t,[{key:"getModalData",value:function(t){this.modalData={id:i(t.getAttribute("data-id"))?t.getAttribute("data-id"):"",title:i(t.getAttribute("data-title"))?t.getAttribute("data-title"):"",btnDismiss:!i(t.getAttribute("data-btn-dismiss"))||!!parseInt(t.getAttribute("data-btn-dismiss")),dimBackground:!i(t.getAttribute("data-dim-background"))||!!parseInt(t.getAttribute("data-dim-background"))}}},{key:"renderModal",value:function(t){var e=document.createElement("div");e.id="ult-modal-container-".concat(this.modalData.id),e.classList.add("ult-modal-container"),e.setAttribute("data-id",this.modalData.id),e.innerHTML='\n\t\t\t<div class="ult-modal__inside">\n\t\t\t\t<div class="ult-modal-box">\n\t\t\t\t\t'.concat(r(this.modalData.title)?"":'\n\t\t\t\t\t\t<div class="ult-modal-box-header">\n\t\t\t\t\t\t\t<h2>'.concat(this.modalData.title,"</h2>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t"),'\n\n\t\t\t\t\t<div class="ult-modal-box-content"></div>\n\n\t\t\t\t\t').concat(this.modalData.btnDismiss?'\n\t\t\t\t\t\t<div class="ult-modal-box-footer">\n\t\t\t\t\t\t\t<button class="ult-modal-box-footer__dismiss">\n\t\t\t\t\t\t\t\t'.concat(UncannyToolkit.i18n.dismiss,"\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t"):"","\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t"),e.querySelector(".ult-modal-box-content").appendChild(t),document.body.appendChild(e),this.$elements={container:e,box:e.querySelector(".ult-modal-box"),content:e.querySelector(".ult-modal-box-content .ult-modal")},this.modalData.btnDismiss&&(this.$elements.dismissBtn=e.querySelector(".ult-modal-box-footer__dismiss"),this.handleDismissButton())}},{key:"handleModalOpen",value:function(){var t=this;q.on("click",'.ult-modal-open[data-id="'.concat(this.modalData.id,'"], [class*="ult-modal-open----').concat(this.modalData.id,'"], [href*="ult-modal-open----').concat(this.modalData.id,'"]'),(function(e){e.preventDefault(),t.showModal()}))}},{key:"handleDismissButton",value:function(){var t=this;this.$elements.dismissBtn.addEventListener("click",(function(){t.hideModal()}))}},{key:"handleClickOutsideTheModal",value:function(){var t=this;this.$elements.container.addEventListener("mouseup",(function(e){var n=t.$elements.box;n===e.target||n.contains(e.target)||t.hideModal()}))}},{key:"setLoading",value:function(){arguments.length>0&&void 0!==arguments[0]&&!arguments[0]?this.$elements.container.classList.remove("ult-modal-container--loading"):this.$elements.container.classList.add("ult-modal-container--loading")}},{key:"setContent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.$elements.content.innerHTML=t}},{key:"showModal",value:function(){a("in",this.$elements.container),this.$elements.container.classList.add("ult-modal-container--open"),document.body.classList.add("ult-modals--open"),this.modalData.dimBackground&&document.body.classList.add("ult-modals--dim-background")}},{key:"hideModal",value:function(){var t=this;a("out",this.$elements.container,(function(){t.$elements.container.classList.remove("ult-modal-container--open"),document.body.classList.remove("ult-modals--open"),document.body.classList.remove("ult-modals--dim-background")}))}}]),t}();const N=I;document.addEventListener("DOMContentLoaded",(function(){new F,new N,new $,new T,new A,new P,window.UltimateLogin2FARedirect=D(),new E}))})()})();
     2(()=>{var t={29:t=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function n(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,o(i.key),i)}}function o(t){var n=function(t,n){if("object"!=e(t)||!t)return t;var o=t[Symbol.toPrimitive];if(void 0!==o){var i=o.call(t,"string");if("object"!=e(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(n)?n:String(n)}var i=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}var e,o;return e=t,o=[{key:"handleResponse",value:function(t){return!!(t&&t.data&&!0===t.data.requires_redirect&&t.data.redirect_url&&"undefined"!=typeof window&&window.location)&&(window.location.href=t.data.redirect_url,!0)}}],null&&n(e.prototype,null),o&&n(e,o),Object.defineProperty(e,"prototype",{writable:!1}),t}();"undefined"!=typeof window&&(window.UltimateLogin2FARedirect=i),t.exports&&(t.exports=i)},977:function(t,e,n){var o,i;window.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(t){var e,n=(this.document||this.ownerDocument).querySelectorAll(t),o=this;do{for(e=n.length;0<=--e&&n.item(e)!==o;);}while(e<0&&(o=o.parentElement));return o}),i=void 0!==n.g?n.g:"undefined"!=typeof window?window:this,o=function(){return function(t){"use strict";var e={},n={},o=function(e){n[e.type]&&n[e.type].forEach((function(n){var o,i;o=e.target,i=n.selector,(-1<["*","window","document","document.documentElement",t,document,document.documentElement].indexOf(i)||("string"!=typeof i&&i.contains?i===o||i.contains(o):o.closest(i)))&&n.callback(e)}))};return e.on=function(e,i,r){i&&r&&e.split(",").forEach((function(e){e=e.trim(),n[e]||(n[e]=[],t.addEventListener(e,o,!0)),n[e].push({selector:i,callback:r})}))},e.off=function(e,i,r){e.split(",").forEach((function(e){if(e=e.trim(),n[e]){if(n[e].length<2||!i)return delete n[e],void t.removeEventListener(e,o,!0);var s=function(t,e,n){for(var o=0;o<t.length;o++)if(t[o].selector===e&&t[o].callback.toString()===n.toString())return o;return-1}(n[e],i,r);s<0||n[e].splice(s,1)}}))},e.once=function(t,n,o){e.on(t,n,(function i(r){o(r),e.off(t,n,i)}))},e.get=function(){var t={};for(var e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);return t},e}(i)}.apply(e,[]),void 0===o||(t.exports=o)}},e={};function n(o){var i=e[o];if(void 0!==i)return i.exports;var r=e[o]={exports:{}};return t[o].call(r.exports,r,r.exports,n),r.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function o(n){for(var o=1;o<arguments.length;o++){var i=null!=arguments[o]?arguments[o]:{};o%2?e(Object(i),!0).forEach((function(e){var o,r,s,a;o=n,r=e,s=i[e],a=function(e,n){if("object"!=t(e)||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var i=o.call(e,"string");if("object"!=t(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(r),(r="symbol"==t(a)?a:String(a))in o?Object.defineProperty(o,r,{value:s,enumerable:!0,configurable:!0,writable:!0}):o[r]=s})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):e(Object(i)).forEach((function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(i,t))}))}return n}var i=function(t){return null!=t},r=function(t){var e=!0;return i(t)&&(e=Array.isArray(t)?0==t.length:s(t)?0==Object.keys(t).length:""==t),e},s=function(t){return t===Object(t)},a=function(){var t=arguments.length>1?arguments[1]:void 0,e=arguments.length>2?arguments[2]:void 0,n="ult--fade-".concat(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"in");e=i(e)?e:function(){},t.classList.add(n),setTimeout((function(){t.classList.remove(n),e()}),280)};function l(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{var n=new CustomEvent(t,{detail:e});document.dispatchEvent(n)}catch(t){}}var u='<svg xmlns="http://www.w3.org/2000/svg" fill="currentcolor" viewBox="0 0 576 512"><path d="M279.6 160.4C282.4 160.1 285.2 160 288 160C341 160 384 202.1 384 256C384 309 341 352 288 352C234.1 352 192 309 192 256C192 253.2 192.1 250.4 192.4 247.6C201.7 252.1 212.5 256 224 256C259.3 256 288 227.3 288 192C288 180.5 284.1 169.7 279.6 160.4zM480.6 112.6C527.4 156 558.7 207.1 573.5 243.7C576.8 251.6 576.8 260.4 573.5 268.3C558.7 304 527.4 355.1 480.6 399.4C433.5 443.2 368.8 480 288 480C207.2 480 142.5 443.2 95.42 399.4C48.62 355.1 17.34 304 2.461 268.3C-.8205 260.4-.8205 251.6 2.461 243.7C17.34 207.1 48.62 156 95.42 112.6C142.5 68.84 207.2 32 288 32C368.8 32 433.5 68.84 480.6 112.6V112.6zM288 112C208.5 112 144 176.5 144 256C144 335.5 208.5 400 288 400C367.5 400 432 335.5 432 256C432 176.5 367.5 112 288 112z"/></svg>';function c(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function d(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,m(o.key),o)}}function m(t){var e=function(t,e){if("object"!=c(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=c(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==c(e)?e:String(e)}var f=function(){function t(e){if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),e){var n=e.nextElementSibling;n&&n.classList&&n.classList.contains(this.cssClasses.passwordVisibilityToggle)||(this.$field=e,this.$field.classList.contains("input")&&(this.$field.classList.remove("input"),this.$field.classList.add("uncannyowl-input")),this.setupParentPositioning(),this.addFieldPadding(),this.addEyeIcon(),this.ensureFieldEditable(),this.setupFocusHandlers())}}var e,n;return e=t,(n=[{key:"setupParentPositioning",value:function(){var t=this.$field.parentNode;"static"===window.getComputedStyle(t).position&&(t.style.position="relative")}},{key:"addFieldPadding",value:function(){var t=window.getComputedStyle(this.$field).paddingRight;(parseInt(t)||0)<35&&(this.$field.style.paddingRight="35px")}},{key:"addEyeIcon",value:function(){var t=this;this.$eyeIcon=document.createElement("div"),this.$eyeIcon.classList.add(this.cssClasses.passwordVisibilityToggle),this.$eyeIcon.innerHTML=u,this.$field.parentNode.insertBefore(this.$eyeIcon,this.$field.nextSibling),this.$eyeIcon.addEventListener("click",(function(){"text"===t.$field.getAttribute("type")?(t.$field.setAttribute("type","password"),t.$eyeIcon.innerHTML=u):(t.$field.setAttribute("type","text"),t.$eyeIcon.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" fill="currentcolor" viewBox="0 0 640 512"><path d="M150.7 92.77C195 58.27 251.8 32 320 32C400.8 32 465.5 68.84 512.6 112.6C559.4 156 590.7 207.1 605.5 243.7C608.8 251.6 608.8 260.4 605.5 268.3C592.1 300.6 565.2 346.1 525.6 386.7L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L150.7 92.77zM223.1 149.5L313.4 220.3C317.6 211.8 320 202.2 320 191.1C320 180.5 316.1 169.7 311.6 160.4C314.4 160.1 317.2 159.1 320 159.1C373 159.1 416 202.1 416 255.1C416 269.7 413.1 282.7 407.1 294.5L446.6 324.7C457.7 304.3 464 280.9 464 255.1C464 176.5 399.5 111.1 320 111.1C282.7 111.1 248.6 126.2 223.1 149.5zM320 480C239.2 480 174.5 443.2 127.4 399.4C80.62 355.1 49.34 304 34.46 268.3C31.18 260.4 31.18 251.6 34.46 243.7C44 220.8 60.29 191.2 83.09 161.5L177.4 235.8C176.5 242.4 176 249.1 176 255.1C176 335.5 240.5 400 320 400C338.7 400 356.6 396.4 373 389.9L446.2 447.5C409.9 467.1 367.8 480 320 480H320z"/></svg>')}))}},{key:"setupFocusHandlers",value:function(){var t=this;this.$field.addEventListener("focus",(function(){t.$eyeIcon&&t.$eyeIcon.classList.add("ult-form-password-wrapper-eye-toggle--focus")})),this.$field.addEventListener("blur",(function(){t.$eyeIcon&&t.$eyeIcon.classList.remove("ult-form-password-wrapper-eye-toggle--focus")}))}},{key:"ensureFieldEditable",value:function(){this.$field.removeAttribute("readonly"),this.$field.removeAttribute("disabled"),this.$field.readOnly=!1,this.$field.disabled=!1}},{key:"cssClasses",get:function(){return{passwordVisibilityToggle:"ult-form-password-wrapper-eye-toggle"}}}])&&d(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),t}();function h(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&y(t,e)}function y(t,e){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},y(t,e)}function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,o=b(t);if(e){var i=b(this).constructor;n=Reflect.construct(o,arguments,i)}else n=o.apply(this,arguments);return function(t,e){if(e&&("object"===p(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(this,n)}}function b(t){return b=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},b(t)}function p(t){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},p(t)}function v(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function w(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,k(o.key),o)}}function C(t,e,n){return e&&w(t.prototype,e),n&&w(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function k(t){var e=function(t,e){if("object"!=p(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=p(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==p(e)?e:String(e)}var L=n(977),S=function(){function t(){v(this,t),this.getElements(),this.shouldInvokeMethods()&&(this.validateFormSubmission(),this.handleReCaptchaChanges())}return C(t,[{key:"getElements",value:function(){this.$elements={},this.cssClasses={}}},{key:"formData",get:function(){return{}}},{key:"ajaxAction",get:function(){return""}},{key:"validateFormSubmission",value:function(){var t=this;i(this.$elements.mainForm)&&(this.$elements.mainForm.onsubmit=function(e){var n=!0;t.hasReCAPTCHA()&&!t.isCaptchaChecked()&&(t.$elements.container.classList.add(t.cssClasses.reCAPTCHAerror),n=!1,t.setError(UncannyToolkit.frontendLogin.i18n.checkReCaptcha),console.error("✋Frontend Login: The form is using reCAPTCHA, but you didn't pass the verification")),l("uncanny-toolkit/frontend-login/".concat(t.id,"/validated"),{isValid:n}),n?t.submitForm(e):(e.preventDefault(),console.error("✋Frontend Login: Submission prevented"))})}},{key:"submitForm",value:function(t){var e=this;this.setError(!1),this.setLoadingStatus(!0),this.setButtonDisableStatus(!0);var n=function(){l("uncanny-toolkit/frontend-login/".concat(e.id,"/submitting")),function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};e=o(o({},e),{action:t}),i(s.includeNonce)&&!s.includeNonce||(e.nonce=UncannyToolkit.ajax.nonce),fetch(UncannyToolkit.ajax.url,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","Cache-Control":"no-cache"},body:new URLSearchParams(e)}).then((function(t){if(t.ok)return t.redirected?{success:!1,code:302}:t.json();throw i(r)&&r(o(o({},t),{success:!1})),Error(UncannyToolkit.i18n.error.generic)})).then((function(t){t.success?i(n)&&n(t):i(r)&&r(o(o({},t),{success:!1}))})).catch((function(t){console.error("✋Uncanny Toolkit: The fetch call threw an error"),i(r)&&r(o(o({},t),{success:!1}))}))}(e.ajaxAction,e.formData,(function(t){e.setLoadingStatus(!1),e.setButtonDisableStatus(!1),t.success?(l("uncanny-toolkit/frontend-login/".concat(e.id,"/submitted"),{success:!0}),e.afterValidSubmission(t)):(l("uncanny-toolkit/frontend-login/".concat(e.id,"/submitted"),{success:!1,message:i(t.message)?t.message:UncannyToolkit.i18n.error.generic}),i(t.message)?e.setError(t.message):e.setError(UncannyToolkit.i18n.error.generic),e.resetReCAPTCHA())}),(function(t){i(t.code)&&302==t.code&&UncannyToolkit.integrity.shouldPreventConcurrentLogin&&(t.message=UncannyToolkit.i18n.preventConcurrentLogin),window.UltimateLogin2FARedirect&&window.UltimateLogin2FARedirect.handleResponse(t)||(l("uncanny-toolkit/frontend-login/".concat(e.id,"/submitted"),{success:!1,message:i(t.message)?t.message:UncannyToolkit.i18n.error.generic}),i(t.message)?e.setError(t.message):e.setError(UncannyToolkit.i18n.error.generic),e.resetReCAPTCHA(),e.setLoadingStatus(!1),e.setButtonDisableStatus(!1))}),{includeNonce:!1})};!this.isUsingLearnDashReCaptcha()&&UncannyToolkit.frontendLogin.hasAjaxEnabled?(t.preventDefault(),n()):UncannyToolkit.frontendLogin.hasAjaxEnabled?(t.preventDefault(),this.handleLearnDashReCaptcha((function(){n()}))):this.hasLearnDashReCaptchField()||(t.preventDefault(),this.handleLearnDashReCaptcha((function(){e.$elements.mainForm.submit()})))}},{key:"afterValidSubmission",value:function(t){}},{key:"setLoadingStatus",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];UncannyToolkit.frontendLogin.ui.showAnimationOnSubmit&&(t?(this.$elements.container.classList.add(this.cssClasses.loading),this.$elements.submitButton.container.classList.add(this.cssClasses.btnLoading),l("uncanny-toolkit/frontend-login/".concat(this.id,"/set-loading"),{isLoading:!0})):(this.$elements.container.classList.remove(this.cssClasses.loading),this.$elements.submitButton.container.classList.remove(this.cssClasses.btnLoading),l("uncanny-toolkit/frontend-login/".concat(this.id,"/set-loading"),{isLoading:!1})))}},{key:"setButtonDisableStatus",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];UncannyToolkit.frontendLogin.ui.buttonDisabledOnSubmit&&(t?(this.$elements.container.classList.add(this.cssClasses.disabled),this.$elements.submitButton.container.classList.add(this.cssClasses.btnDisabled),this.$elements.submitButton.button.setAttribute("disabled",!0),l("uncanny-toolkit/frontend-login/".concat(this.id,"/disable-button"),{disable:!0})):(this.$elements.container.classList.remove(this.cssClasses.disabled),this.$elements.submitButton.container.classList.remove(this.cssClasses.btnDisabled),this.$elements.submitButton.button.removeAttribute("disabled"),l("uncanny-toolkit/frontend-login/".concat(this.id,"/disable-button"),{disable:!1})))}},{key:"setError",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];r(t)?(this.$elements.errorNotice.container.classList.remove(this.cssClasses.noticeHasError),this.$elements.errorNotice.textNode.textContent="",this.$elements.container.classList.remove(this.cssClasses.reCAPTCHAerror)):(this.$elements.errorNotice.container.classList.add(this.cssClasses.noticeHasError),this.$elements.errorNotice.textNode.innerHTML=t)}},{key:"handleReCaptchaChanges",value:function(){var t=this;UncannyToolkit.frontendLogin.reCaptcha={correct:function(e){t.setError(!1)}}}},{key:"hasReCAPTCHA",value:function(){return i(this.$elements.formFields.reCAPTCHA)}},{key:"getReCAPTCHAResponse",value:function(){var t=this.$elements.formFields.reCAPTCHA.getAttribute("data-id");return grecaptcha.getResponse(t)}},{key:"resetReCAPTCHA",value:function(){try{var t=this.$elements.formFields.reCAPTCHA.getAttribute("data-id");grecaptcha.reset(t)}catch(t){}}},{key:"isOnModal",value:function(){return i(UncannyToolkit.modals["ult-login"])}},{key:"isCaptchaChecked",value:function(){return!r(this.getReCAPTCHAResponse())}},{key:"shouldInvokeMethods",value:function(){return i(this.$elements.container)}},{key:"handleLearnDashReCaptcha",value:function(t){var e=this;this.isUsingLearnDashReCaptcha()?grecaptcha.ready((function(){grecaptcha.execute(LD_TP.site_key,{action:"submit"}).then((function(n){i(e.$elements.mainForm)&&e.$elements.mainForm.insertAdjacentHTML("afterbegin",'<input type="hidden" id="ult-form-ld-recaptcha" name="token" value="'.concat(n,'">')),i(t)&&t()}))})):i(t)&&t()}},{key:"isUsingLearnDashReCaptcha",value:function(){return i(window.grecaptcha)&&i(window.LD_TP)&&i(LD_TP.site_key)}},{key:"hasLearnDashReCaptchField",value:function(){var t=!1;return i(this.$elements.mainForm)&&(t=i(this.$elements.mainForm.querySelector('input[name="token"]'))),t}}]),t}(),$=function(t){h(n,t);var e=g(n);function n(){var t;return v(this,n),t=e.call(this),new f(t.$elements.formFields.password),t}return C(n,[{key:"getElements",value:function(){this.$elements={container:document.getElementById("ult-login"),mainForm:document.getElementById("ult-login-form"),submitButton:{container:document.getElementsByClassName("login-submit")[0],button:document.getElementById("ult-login-submit")},errorNotice:{container:document.querySelector("#ult-login .ult-form__validation"),textNode:document.querySelector("#ult-login .ult-notice-text")},formFields:{email:document.getElementById("ult-login-email"),password:document.getElementById("ult-login-password"),redirectTo:document.querySelector('#ult-login .login-submit input[name="redirect_to"]'),reCAPTCHA:document.querySelector("#ult-login .ult-form-recaptcha"),rememberMe:document.getElementById("ult-login-remember")}}}},{key:"id",get:function(){return"login"}},{key:"ajaxAction",get:function(){return"ult-login"}},{key:"cssClasses",get:function(){return{reCAPTCHAerror:"ult-login--recaptcha-error",loading:"ult-login--loading",disabled:"ult-login--disabled",btnLoading:"ult-form__submit-btn--loading",btnDisabled:"ult-form__submit-btn--disabled",noticeHasError:"ult-form__validation--has-error"}}},{key:"formData",get:function(){var t={email:this.$elements.formFields.email.value,password:this.$elements.formFields.password.value,redirectTo:this.$elements.formFields.redirectTo.value},e=Object.assign({},t,UOToolkitFrontEndLoginFormData);return i(this.$elements.formFields.rememberMe)&&(e.rememberMe=this.$elements.formFields.rememberMe.checked),this.hasReCAPTCHA()&&(e["g-recaptcha-response"]=this.getReCAPTCHAResponse()),i(this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha"))&&(e.token=this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha").value),i(this.$elements.mainForm.querySelector('input[name="uo_is_login_modal"]'))&&(e.uo_is_login_modal=this.$elements.mainForm.querySelector('input[name="uo_is_login_modal"]').value),e}},{key:"afterValidSubmission",value:function(t){var e;this.setLoadingStatus(!0),this.setButtonDisableStatus(!0),window.UltimateLogin2FARedirect&&window.UltimateLogin2FARedirect.handleResponse(t)||null!=t&&null!==(e=t.twoFactor)&&void 0!==e&&null!==(e=e._meta)&&void 0!==e&&e.enabled||(r(t.redirectTo)?window.location.reload():window.location.href=t.redirectTo)}}]),n}(S),T=function(t){h(n,t);var e=g(n);function n(){return v(this,n),e.apply(this,arguments)}return C(n,[{key:"getElements",value:function(){this.$elements={container:document.getElementById("ult-forgot-password"),boxContent:document.querySelector("#ult-forgot-password .ult-form__content"),mainForm:document.getElementById("ult-forgot-password-form"),submitButton:{container:document.querySelector(".ult-form__row--submit"),button:document.getElementById("ult-forgot-password-submit-btn")},errorNotice:{container:document.querySelector("#ult-forgot-password .ult-form__validation"),textNode:document.querySelector("#ult-forgot-password .ult-notice-text")},formFields:{email:document.getElementById("ult-forgot-email"),reCAPTCHA:document.querySelector("#ult-forgot-password .ult-form-recaptcha")}}}},{key:"id",get:function(){return"forgot-password"}},{key:"ajaxAction",get:function(){return"ult-forgot-password"}},{key:"cssClasses",get:function(){return{reCAPTCHAerror:"ult-forgot-password--recaptcha-error",loading:"ult-forgot-password--loading",disabled:"ult-forgot-password--disabled",btnLoading:"ult-form__submit-btn--loading",btnDisabled:"ult-form__submit-btn--disabled",noticeHasError:"ult-form__validation--has-error"}}},{key:"formData",get:function(){var t={email:this.$elements.formFields.email.value},e=Object.assign({},t,UOToolkitFrontEndLoginFormData);return this.hasReCAPTCHA()&&(e["g-recaptcha-response"]=this.getReCAPTCHAResponse()),i(this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha"))&&(e.token=this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha").value),e}},{key:"afterValidSubmission",value:function(t){this.$elements.boxContent.innerHTML=t.message}}]),n}(S),A=function(t){h(n,t);var e=g(n);function n(){return v(this,n),e.apply(this,arguments)}return C(n,[{key:"getElements",value:function(){this.$elements={container:document.getElementById("ult-reset-password"),boxContent:document.querySelector("#ult-reset-password .ult-form__content"),mainForm:document.getElementById("ult-reset-password-form"),submitButton:{container:document.querySelector(".ult-form__row--submit"),button:document.getElementById("ult-reset-password-submit-btn")},errorNotice:{container:document.querySelector("#ult-reset-password .ult-form__validation"),textNode:document.querySelector("#ult-reset-password .ult-notice-text")},formFields:{password:document.getElementById("ult-reset-new-password"),passwordRepeat:document.getElementById("ult-reset-confirm-password"),reCAPTCHA:document.querySelector("#ult-reset-password .ult-form-recaptcha")}}}},{key:"id",get:function(){return"reset-password"}},{key:"ajaxAction",get:function(){return"ult-reset-password"}},{key:"cssClasses",get:function(){return{reCAPTCHAerror:"ult-reset-password--recaptcha-error",loading:"ult-reset-password--loading",disabled:"ult-reset-password--disabled",btnLoading:"ult-form__submit-btn--loading",btnDisabled:"ult-form__submit-btn--disabled",noticeHasError:"ult-form__validation--has-error"}}},{key:"formData",get:function(){var t={password:this.$elements.formFields.password.value,passwordRepeat:this.$elements.formFields.passwordRepeat.value};return this.hasReCAPTCHA()&&(t["g-recaptcha-response"]=this.getReCAPTCHAResponse()),i(this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha"))&&(t.token=this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha").value),t}},{key:"afterValidSubmission",value:function(t){this.$elements.boxContent.innerHTML=t.message}}]),n}(S),E=function(){function t(){v(this,t),this.shouldInvokeMethods()?(this.getElements(),this.handleContainerVisiblity()):i(UncannyToolkit.frontendLogin)&&i(UncannyToolkit.frontendLogin.currentPageIsLoginPage)&&UncannyToolkit.frontendLogin.currentPageIsLoginPage&&this.handleModalInLoginPage()}return C(t,[{key:"getElements",value:function(){this.$elements={container:document.getElementById("ult-login-modal"),loginShowButton:document.getElementById("ult-form-footer-login"),forgotPasswordShowButton:document.getElementById("ult-form-footer-forgot-password")}}},{key:"handleContainerVisiblity",value:function(){var t=this;i(this.$elements.forgotPasswordShowButton)&&this.$elements.forgotPasswordShowButton.addEventListener("click",(function(e){e.preventDefault(),t.showSection("forgot-password")})),i(this.$elements.loginShowButton)&&this.$elements.loginShowButton.addEventListener("click",(function(e){e.preventDefault(),t.showSection("login")}))}},{key:"showSection",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"login";this.$elements.container.classList.remove("ult-login-modal--login","ult-login-modal--forgot-password"),"login"==t?this.$elements.container.classList.add("ult-login-modal--login"):"forgot-password"==t&&this.$elements.container.classList.add("ult-login-modal--forgot-password")}},{key:"shouldInvokeMethods",value:function(){return i(UncannyToolkit.frontendLogin)&&i(UncannyToolkit.frontendLogin.currentPageIsLoginPage)&&!UncannyToolkit.frontendLogin.currentPageIsLoginPage&&i(UncannyToolkit.modals["ult-login"])}},{key:"handleModalInLoginPage",value:function(){L.on("click",'[href*="ult-modal-open----ult-login"]',(function(t){t.preventDefault(),location.reload()}))}}]),t}(),P=function(){function t(){var e,n,o;v(this,t),e=this,o="login-2nd-factor",(n=k(n="id"))in e?Object.defineProperty(e,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[n]=o,this.$form&&this.listenSubmission()}return C(t,[{key:"listenSubmission",value:function(){var t=this;this.$form.addEventListener("submit",(function(e){t.setLoadingStatus(!0),t.setButtonDisableStatus(!0)}))}},{key:"setLoadingStatus",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];UncannyToolkit.frontendLogin.ui.showAnimationOnSubmit&&(t?(this.$elements.container.classList.add(this.cssClasses.loading),this.$elements.submitButton.container.classList.add(this.cssClasses.btnLoading),l("uncanny-toolkit/frontend-login/".concat(this.id,"/set-loading"),{isLoading:!0})):(this.$elements.container.classList.remove(this.cssClasses.loading),this.$elements.submitButton.container.classList.remove(this.cssClasses.btnLoading),l("uncanny-toolkit/frontend-login/".concat(this.id,"/set-loading"),{isLoading:!1})))}},{key:"setButtonDisableStatus",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];UncannyToolkit.frontendLogin.ui.buttonDisabledOnSubmit&&(t?(this.$elements.container.classList.add(this.cssClasses.disabled),this.$elements.submitButton.container.classList.add(this.cssClasses.btnDisabled),this.$elements.submitButton.button.setAttribute("disabled",!0),l("uncanny-toolkit/frontend-login/".concat(this.id,"/disable-button"),{disable:!0})):(this.$elements.container.classList.remove(this.cssClasses.disabled),this.$elements.submitButton.container.classList.remove(this.cssClasses.btnDisabled),this.$elements.submitButton.button.removeAttribute("disabled"),l("uncanny-toolkit/frontend-login/".concat(this.id,"/disable-button"),{disable:!1})))}},{key:"cssClasses",get:function(){return{loading:"ult-login--loading",disabled:"ult-login--disabled",btnLoading:"ult-form__submit-btn--loading",btnDisabled:"ult-form__submit-btn--disabled"}}},{key:"$elements",get:function(){return{container:document.getElementById("ult-login"),submitButton:{container:this.$form.querySelector(".submit"),button:this.$form.querySelector('.submit input[type="submit"]')}}}},{key:"$form",get:function(){return document.getElementById("ult-2fa-validation-form--templated")}}]),t}(),_=n(29),D=n.n(_);function O(t){return O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},O(t)}function j(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,B(o.key),o)}}function B(t){var e=function(t,e){if("object"!=O(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=O(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==O(e)?e:String(e)}const F=function(){function t(){var e=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.whenReady((function(){e.renderReCaptchas()}))}var e,n;return e=t,(n=[{key:"whenReady",value:function(t){window.UncannyToolkit.reCaptchaInit=function(){t()}}},{key:"renderReCaptchas",value:function(){var t=document.querySelectorAll(".ult-form-recaptcha");[].forEach.call(t,(function(t){var e=window.grecaptcha.render(t,{sitekey:t.getAttribute("data-sitekey"),callback:t.getAttribute("data-callback")});t.setAttribute("data-id",e)}))}}])&&j(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),t}();function x(t){return x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},x(t)}function R(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function I(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,H(o.key),o)}}function M(t,e,n){return e&&I(t.prototype,e),n&&I(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function H(t){var e=function(t,e){if("object"!=x(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=x(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==x(e)?e:String(e)}var U=n(977),q=function(){function t(){R(this,t),this.allModals=[],UncannyToolkit.modals={},this.getElements(),this.createModals()}return M(t,[{key:"getElements",value:function(){this.$elements={modals:document.querySelectorAll(".ult-modal")}}},{key:"createModals",value:function(){var t=this;[].forEach.call(this.$elements.modals,(function(e){var n=i(e.getAttribute("data-id"))?e.getAttribute("data-id"):"";if(!t.allModals.includes(n)){var o=new N(e);t.allModals.push(n),UncannyToolkit.modals[n]=o}}))}}]),t}(),N=function(){function t(e){R(this,t),this.getModalData(e),this.renderModal(e),this.handleModalOpen(),this.handleClickOutsideTheModal()}return M(t,[{key:"getModalData",value:function(t){this.modalData={id:i(t.getAttribute("data-id"))?t.getAttribute("data-id"):"",title:i(t.getAttribute("data-title"))?t.getAttribute("data-title"):"",btnDismiss:!i(t.getAttribute("data-btn-dismiss"))||!!parseInt(t.getAttribute("data-btn-dismiss")),dimBackground:!i(t.getAttribute("data-dim-background"))||!!parseInt(t.getAttribute("data-dim-background"))}}},{key:"renderModal",value:function(t){var e=document.createElement("div");e.id="ult-modal-container-".concat(this.modalData.id),e.classList.add("ult-modal-container"),e.setAttribute("data-id",this.modalData.id),e.innerHTML='\n\t\t\t<div class="ult-modal__inside">\n\t\t\t\t<div class="ult-modal-box">\n\t\t\t\t\t'.concat(r(this.modalData.title)?"":'\n\t\t\t\t\t\t<div class="ult-modal-box-header">\n\t\t\t\t\t\t\t<h2>'.concat(this.modalData.title,"</h2>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t"),'\n\n\t\t\t\t\t<div class="ult-modal-box-content"></div>\n\n\t\t\t\t\t').concat(this.modalData.btnDismiss?'\n\t\t\t\t\t\t<div class="ult-modal-box-footer">\n\t\t\t\t\t\t\t<button class="ult-modal-box-footer__dismiss">\n\t\t\t\t\t\t\t\t'.concat(UncannyToolkit.i18n.dismiss,"\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t"):"","\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t"),e.querySelector(".ult-modal-box-content").appendChild(t),document.body.appendChild(e),this.$elements={container:e,box:e.querySelector(".ult-modal-box"),content:e.querySelector(".ult-modal-box-content .ult-modal")},this.modalData.btnDismiss&&(this.$elements.dismissBtn=e.querySelector(".ult-modal-box-footer__dismiss"),this.handleDismissButton())}},{key:"handleModalOpen",value:function(){var t=this;U.on("click",'.ult-modal-open[data-id="'.concat(this.modalData.id,'"], [class*="ult-modal-open----').concat(this.modalData.id,'"], [href*="ult-modal-open----').concat(this.modalData.id,'"]'),(function(e){e.preventDefault(),t.showModal()}))}},{key:"handleDismissButton",value:function(){var t=this;this.$elements.dismissBtn.addEventListener("click",(function(){t.hideModal()}))}},{key:"handleClickOutsideTheModal",value:function(){var t=this;this.$elements.container.addEventListener("mouseup",(function(e){var n=t.$elements.box;n===e.target||n.contains(e.target)||t.hideModal()}))}},{key:"setLoading",value:function(){arguments.length>0&&void 0!==arguments[0]&&!arguments[0]?this.$elements.container.classList.remove("ult-modal-container--loading"):this.$elements.container.classList.add("ult-modal-container--loading")}},{key:"setContent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.$elements.content.innerHTML=t}},{key:"showModal",value:function(){a("in",this.$elements.container),this.$elements.container.classList.add("ult-modal-container--open"),document.body.classList.add("ult-modals--open"),this.modalData.dimBackground&&document.body.classList.add("ult-modals--dim-background")}},{key:"hideModal",value:function(){var t=this;a("out",this.$elements.container,(function(){t.$elements.container.classList.remove("ult-modal-container--open"),document.body.classList.remove("ult-modals--open"),document.body.classList.remove("ult-modals--dim-background")}))}}]),t}();const V=q;document.addEventListener("DOMContentLoaded",(function(){new F,new V,new $,new T,new A,new P,window.UltimateLogin2FARedirect=D(),new E}))})()})();
    33//# sourceMappingURL=bundle.min.js.map
  • uncanny-learndash-toolkit/tags/3.8.0.1/src/assets/frontend/dist/bundle.min.js.map

    r3395254 r3407115  
    1 {"version":3,"file":"bundle.min.js","mappings":"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","sources":["webpack://ultf-frontend/./src/js/wp-2fa-redirect.js","webpack://ultf-frontend/./node_modules/eventslibjs/dist/events.polyfills.min.js","webpack://ultf-frontend/webpack/bootstrap","webpack://ultf-frontend/webpack/runtime/compat get default export","webpack://ultf-frontend/webpack/runtime/define property getters","webpack://ultf-frontend/webpack/runtime/global","webpack://ultf-frontend/webpack/runtime/hasOwnProperty shorthand","webpack://ultf-frontend/./src/js/_utilities.js","webpack://ultf-frontend/./src/js/_icons.js","webpack://ultf-frontend/./src/js/password-field.js","webpack://ultf-frontend/./src/js/frontend-login.js","webpack://ultf-frontend/./src/js/recaptcha.js","webpack://ultf-frontend/./src/js/dialog.js","webpack://ultf-frontend/./src/index.js"],"sourcesContent":["/**\n * WP 2FA Redirect Handler\n * \n * Minimal script to handle AJAX login redirects for 2FA challenges.\n * Replaces the complex 1000+ line 2FA form management with simple redirect logic.\n * \n * @package uncanny-learndash-toolkit\n * @since 1.0.0\n */\n\n/**\n * Simple AJAX redirect handler for 2FA\n * \n * Handles the response from AJAX login attempts and redirects to 2FA challenge\n * when required. All 2FA form rendering and validation is now handled server-side.\n */\nclass UltimateLogin2FARedirect {\n\n    /**\n * Handles AJAX login response and performs redirect if 2FA is required\n * \n * @param {Object} response - The AJAX login response\n * @returns {boolean} - True if redirect was handled, false otherwise\n */\n    static handleResponse(response) {\n        // Check if this is a 2FA redirect response\n        if (response &&\n            response.data &&\n            response.data.requires_redirect === true &&\n            response.data.redirect_url) {\n\n            // Redirect to the 2FA challenge page\n            if (typeof window !== 'undefined' && window.location) {\n                window.location.href = response.data.redirect_url;\n                return true;\n            }\n        }\n\n        return false;\n    }\n}\n\n// Make globally available for the frontend login system\nif (typeof window !== 'undefined') {\n    window.UltimateLogin2FARedirect = UltimateLogin2FARedirect;\n}\n\n// Export for module systems\nif (typeof module !== 'undefined' && module.exports) {\n    module.exports = UltimateLogin2FARedirect;\n}\n","/*! eventslibjs v1.2.0 | (c) 2019 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/events */\nwindow.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t,n=(this.document||this.ownerDocument).querySelectorAll(e),o=this;do{for(t=n.length;0<=--t&&n.item(t)!==o;);}while(t<0&&(o=o.parentElement));return o}),(function(e,t){\"function\"==typeof define&&define.amd?define([],(function(){return t(e)})):\"object\"==typeof exports?module.exports=t(e):e.events=t(e)})(\"undefined\"!=typeof global?global:\"undefined\"!=typeof window?window:this,(function(r){\"use strict\";var i={},c={},f=function(o){c[o.type]&&c[o.type].forEach((function(e){var t,n;(t=o.target,n=e.selector,-1<[\"*\",\"window\",\"document\",\"document.documentElement\",r,document,document.documentElement].indexOf(n)||(\"string\"!=typeof n&&n.contains?n===t||n.contains(t):t.closest(n)))&&e.callback(o)}))};return i.on=function(e,t,n){t&&n&&e.split(\",\").forEach((function(e){e=e.trim(),c[e]||(c[e]=[],r.addEventListener(e,f,!0)),c[e].push({selector:t,callback:n})}))},i.off=function(e,n,o){e.split(\",\").forEach((function(e){if(e=e.trim(),c[e]){if(c[e].length<2||!n)return delete c[e],void r.removeEventListener(e,f,!0);var t=(function(e,t,n){for(var o=0;o<e.length;o++)if(e[o].selector===t&&e[o].callback.toString()===n.toString())return o;return-1})(c[e],n,o);t<0||c[e].splice(t,1)}}))},i.once=function(n,o,r){i.on(n,o,(function e(t){r(t),i.off(n,o,e)}))},i.get=function(){var e={};for(var t in c)c.hasOwnProperty(t)&&(e[t]=c[t]);return e},i}));","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/**\n * Determine if a variable is set and is not NULL\n *\n * @since 3.3\n *\n * @param  {mixed}      variable - The variable being evaluated\n * @return {boolean}    TRUE if the variable is defined\n */\nexport const isDefined = ( variable ) => {\n\t// Returns true if the variable is undefined\n    return typeof variable !== 'undefined' && variable !== null;\n}\n\n/**\n * Determine whether a variable is empty\n *\n * @since 3.3\n *\n * @param   {mixed}     variable - The variable being evaluated\n * @return  {boolean}   TRUE if the variable is empty\n */\nexport const isEmpty = ( variable ) => {\n    let response = true;\n\n    // Check if the variable is defined, otherwise is empty\n    if ( isDefined( variable ) ){\n        // Check if it's array\n        if ( Array.isArray( variable ) ){\n            response = variable.length == 0;\n        }\n        else if ( isObject( variable ) ){\n            response = Object.keys( variable ).length == 0;\n        }\n        else {\n            response = variable == '';\n        }\n    }\n\n    return response;\n}\n\n/**\n * Determine whether a variable is an object.\n * The Object constructor creates an object wrapper for the given value. If the value is null or undefined, it will create and return an empty object, otherwise, it will return an object of a type that corresponds to the given value. If the value is an object already, it will return the value.\n *\n * @since 3.3\n *\n * @param   {mixed}     variable - The variable being evaluated\n * @return  {boolean}   TRUE if the variable is an object\n */\nexport const isObject = ( variable ) => {\n    return variable === Object( variable );\n}\n\n/**\n * Simulate a fade in/fade out transition\n *\n * @since 3.3\n * \n * @param  {String} fade        Whether we have to fade in our fade out the element\n * @param  {Element}   element  Element\n */\nexport const fade = ( in_out = 'in', element, callback ) => {\n    // Check what's the class we have to add\n    const fadeClass = `ult--fade-${ in_out }`;\n\n    // Define the default callback\n    callback = isDefined( callback ) ? callback : () => {};\n\n    // Add the fade class\n    element.classList.add( fadeClass );\n\n    // Remove it after 300ms (the fade duration)\n    setTimeout(() => {\n        // Remove the fade class\n        element.classList.remove( fadeClass );\n\n        // Invoke the callback\n        callback();\n    }, 280 );\n}\n\n/**\n * Performs an AJAX request\n *\n * @since 3.3\n *\n * @param {object}    data - Data to be sent in the request\n * @param {callback}  [onSuccess] - Function to be invoked if the request is successful\n * @param {callback}  [onFail] - Function to be invoked if the request fails\n */\n\nexport function AJAXRequest( action = null, data = null, onSuccess = null, onFail = null, options = {} ){\n    // Add {action} to the data object\n    data = { ...data, ...{\n        action: action\n    }};\n\n    // Check if we should include the nonce\n    if ( ! isDefined( options.includeNonce ) || options.includeNonce ){\n        data.nonce = UncannyToolkit.ajax.nonce;\n    }\n\n    // Do the call\n    fetch( UncannyToolkit.ajax.url, {\n        method: 'POST',\n        headers: {\n            'Content-Type': 'application/x-www-form-urlencoded',\n            'Cache-Control': 'no-cache',\n        },\n        body: new URLSearchParams( data ),\n    })\n    .then(( response ) => {\n        // Check if the call was not successful\n        if ( ! response.ok ){\n            if ( isDefined( onFail ) ){\n                onFail({ ...response, ...{ success: false }});\n            }\n\n            // Stop chain\n            throw Error( UncannyToolkit.i18n.error.generic );\n        }\n        else {\n            // Detect redirection\n            if ( response.redirected ) {\n                // Return the error for the next .then to handle it\n                return {\n                    success: false,\n                    code: 302\n                }\n            } else {\n                return response.json();\n            }\n        }\n    })\n    .then(( response ) => {\n        // Check if the call was successful\n        if ( response.success ){\n            if ( isDefined( onSuccess ) ){\n                onSuccess( response );\n            }\n        }\n        else {\n            if ( isDefined( onFail ) ){\n                onFail({ ...response, ...{ success: false }});\n            }\n        }\n    })\n    .catch(( response ) => {\n        console.error( '✋Uncanny Toolkit: The fetch call threw an error' );\n\n        if ( isDefined( onFail ) ){\n            onFail({ ...response, ...{ success: false }});\n        }\n    });;\n}\n\n/**\n * Trigger a custom event\n * @param  {String} eventId ID of the event\n * @param  {Object} data    Data\n */\nexport function triggerEvent( eventId = '', data = {} ){\n    try {\n        const event = new CustomEvent( eventId, { detail: data } );\n        document.dispatchEvent( event );\n    }\n    catch ( e ){}\n}","const eye = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\" viewBox=\"0 0 576 512\"><path d=\"M279.6 160.4C282.4 160.1 285.2 160 288 160C341 160 384 202.1 384 256C384 309 341 352 288 352C234.1 352 192 309 192 256C192 253.2 192.1 250.4 192.4 247.6C201.7 252.1 212.5 256 224 256C259.3 256 288 227.3 288 192C288 180.5 284.1 169.7 279.6 160.4zM480.6 112.6C527.4 156 558.7 207.1 573.5 243.7C576.8 251.6 576.8 260.4 573.5 268.3C558.7 304 527.4 355.1 480.6 399.4C433.5 443.2 368.8 480 288 480C207.2 480 142.5 443.2 95.42 399.4C48.62 355.1 17.34 304 2.461 268.3C-.8205 260.4-.8205 251.6 2.461 243.7C17.34 207.1 48.62 156 95.42 112.6C142.5 68.84 207.2 32 288 32C368.8 32 433.5 68.84 480.6 112.6V112.6zM288 112C208.5 112 144 176.5 144 256C144 335.5 208.5 400 288 400C367.5 400 432 335.5 432 256C432 176.5 367.5 112 288 112z\"/></svg>`;\n\nconst eyeSlash = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\" viewBox=\"0 0 640 512\"><path d=\"M150.7 92.77C195 58.27 251.8 32 320 32C400.8 32 465.5 68.84 512.6 112.6C559.4 156 590.7 207.1 605.5 243.7C608.8 251.6 608.8 260.4 605.5 268.3C592.1 300.6 565.2 346.1 525.6 386.7L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L150.7 92.77zM223.1 149.5L313.4 220.3C317.6 211.8 320 202.2 320 191.1C320 180.5 316.1 169.7 311.6 160.4C314.4 160.1 317.2 159.1 320 159.1C373 159.1 416 202.1 416 255.1C416 269.7 413.1 282.7 407.1 294.5L446.6 324.7C457.7 304.3 464 280.9 464 255.1C464 176.5 399.5 111.1 320 111.1C282.7 111.1 248.6 126.2 223.1 149.5zM320 480C239.2 480 174.5 443.2 127.4 399.4C80.62 355.1 49.34 304 34.46 268.3C31.18 260.4 31.18 251.6 34.46 243.7C44 220.8 60.29 191.2 83.09 161.5L177.4 235.8C176.5 242.4 176 249.1 176 255.1C176 335.5 240.5 400 320 400C338.7 400 356.6 396.4 373 389.9L446.2 447.5C409.9 467.1 367.8 480 320 480H320z\"/></svg>`;\n\nexport { eye as iconEye }\nexport { eyeSlash as iconEyeSlash }","import {\n\ticonEye,\n\ticonEyeSlash\n} from './_icons';\n\n/**\n * Adds a wrapper around the field and adds the eye icon to toggle the visibility of the content\n */\nexport default class PasswordField {\n    /**\n     * Adds a wrapper around the field and adds the eye icon to toggle the visibility of the content\n     * @param {Node} $field The Node of the password\n     */\n    constructor( $field ) {\n        // Check if the field exists\n        if ( ! $field ) {\n            return;\n        }\n\n        // Check if this isn't already inside a wrapper\n        if ( $field.closest( `.${ this.cssClasses.passwordWrapper }` ) ) {\n            return;\n        }\n\n        // Save Node\n        this.$field = $field;\n\n        // Add wrapper\n        this.addWrapper();\n\n        // Add content visibility toggle\n        this.contentVisibilityToggle();\n\n        // Style focus on wrapper\n        this.styleFocusOnWrapper();\n    }\n\n    /**\n     * Add wrapper around password field\n     */\n    addWrapper() {\n        // Create wrapper\n\t\tthis.$passwordWrapper = document.createElement( 'label' );\n\t\tthis.$passwordWrapper.classList.add( this.cssClasses.passwordWrapper );\n\n\t\t// Add the wrapper next to the password field\n\t\tthis.$field.insertAdjacentElement( 'afterEnd', this.$passwordWrapper );\n\n\t\t// Move the Password field inside the wrapper\n\t\tthis.$passwordWrapper.appendChild( this.$field );\n    }\n\n    /**\n     * Adds an eye icon that sets the visibility of the content\n     */\n    contentVisibilityToggle() {\n        // Add eye to set the visibility of the password\n\t\tthis.$passwordWrapper.insertAdjacentHTML( 'beforeEnd', `\n            <div class=\"${ this.cssClasses.passwordVisibilityToggle }\">\n                ${ iconEye }\n            </div>\n        ` );\n\n        // Get the eye icon wrapper\n        const $passwordVisibilityToggle = this.$passwordWrapper.querySelector( `.${ this.cssClasses.passwordVisibilityToggle }` );\n\n        // Add event to the visibility toggle\n        $passwordVisibilityToggle.addEventListener( 'click', () => {\n            // Get the current status of the field\n            const passwordIsVisible = this.$field.getAttribute( 'type' ) == 'text';\n\n            // If it's visible, and the user clicked it, it means we should hide it\n            if ( passwordIsVisible ) {\n                // Hide the password\n                this.$field.setAttribute( 'type', 'password' );\n\n                // Replace eye icon. Show icon without the slash\n                $passwordVisibilityToggle.innerHTML = iconEye;\n            }\n\n            // If it's hidden, and the user clicked it, it means we should show it\n            if ( ! passwordIsVisible ) {\n                // Show the password\n                this.$field.setAttribute( 'type', 'text' );\n\n                // Replace eye icon. Add icon with the slash\n                $passwordVisibilityToggle.innerHTML = iconEyeSlash;\n            }\n        } );\n    }\n\n    /**\n     * Listens to the focus state of the field, and adds a class to the wrapper to style it as if it were a field\n     */\n    styleFocusOnWrapper() {\n        // Listen focus on field\n        this.$field.addEventListener( 'focus', () => {\n            // Add focus class\n            this.$passwordWrapper.classList.add( `${ this.cssClasses.passwordWrapper }--focus` );\n        } );\n\n        // Remove focus class\n        this.$field.addEventListener( 'blur', () => {\n            this.$passwordWrapper.classList.remove( `${ this.cssClasses.passwordWrapper }--focus` );\n        } );\n    }\n\n    /**\n     * Object with the CSS classes used by the wrapper\n     */\n    get cssClasses() {\n        return {\n            passwordWrapper: 'ult-form-password-wrapper',\n\t\t\tpasswordVisibilityToggle: 'ult-form-password-wrapper-eye-toggle'\n        }\n    }\n}","const events = require('eventslibjs');\n\nimport {\n\tAJAXRequest,\n\tisEmpty,\n\tisDefined,\n\ttriggerEvent\n} from './_utilities';\n\nimport PasswordField from './password-field';\n\nclass FrontendLogin {\n\tconstructor() {\n\t\t// Get elements\n\t\tthis.getElements();\n\n\t\t// Check if we have to invoke the methods\n\t\tif (this.shouldInvokeMethods()) {\n\t\t\t// Bind form submission\n\t\t\tthis.validateFormSubmission();\n\n\t\t\t// Handle reCAPTCHA changes\n\t\t\tthis.handleReCaptchaChanges();\n\t\t}\n\t}\n\n\tgetElements() {\n\t\t// Get the main elements\n\t\tthis.$elements = {}\n\n\t\t// Define the main CSS classes\n\t\tthis.cssClasses = {}\n\t}\n\n\tget formData() {\n\t\treturn {}\n\t}\n\n\tget ajaxAction() {\n\t\treturn '';\n\t}\n\n\tvalidateFormSubmission() {\n\t\t// Check if the form exists\n\t\tif (isDefined(this.$elements.mainForm)) {\n\t\t\t// Bind submission\n\t\t\tthis.$elements.mainForm.onsubmit = (event) => {\n\t\t\t\t// Create a variable to evaluate if the form has errors later\n\t\t\t\tlet canSubmit = true;\n\n\t\t\t\t// Check if the recaptcha is enabled, but the checkbox is not checked\n\t\t\t\tif (this.hasReCAPTCHA() && !this.isCaptchaChecked()) {\n\t\t\t\t\t// Add a CSS class for the reCAPTCHA error\n\t\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.reCAPTCHAerror);\n\n\t\t\t\t\t// Update the error status\n\t\t\t\t\tcanSubmit = false;\n\n\t\t\t\t\t// Set frontend error\n\t\t\t\t\tthis.setError(UncannyToolkit.frontendLogin.i18n.checkReCaptcha);\n\n\t\t\t\t\tconsole.error('✋Frontend Login: The form is using reCAPTCHA, but you didn\\'t pass the verification');\n\t\t\t\t}\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/validated`, {\n\t\t\t\t\tisValid: canSubmit\n\t\t\t\t});\n\n\t\t\t\t// Check if we can submit the form\n\t\t\t\tif (canSubmit) {\n\t\t\t\t\t// Submit the form\n\t\t\t\t\tthis.submitForm(event);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Prevent the form submission\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tconsole.error('✋Frontend Login: Submission prevented');\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\n\tsubmitForm(event) {\n\t\t// Hide errors\n\t\tthis.setError(false);\n\n\t\t// Add the loading animation\n\t\tthis.setLoadingStatus(true);\n\n\t\t// Disable the submit button\n\t\tthis.setButtonDisableStatus(true);\n\n\t\t/**\n\t\t * Handles the AJAX submission\n\t\t * \n\t\t * @return {undefined}\n\t\t */\n\t\tconst handleAJAX = () => {\n\t\t\t// Trigger custom event\n\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/submitting`);\n\n\t\t\t// Do AJAX call\n\t\t\tAJAXRequest(this.ajaxAction, this.formData, (response) => {\n\t\t\t\t// Remove the loading animation\n\t\t\t\tthis.setLoadingStatus(false);\n\n\t\t\t\t// Enable the submit button\n\t\t\t\tthis.setButtonDisableStatus(false);\n\n\t\t\t\t// Check if the call was really successful\n\t\t\t\tif (response.success) {\n\t\t\t\t\t// Trigger custom event\n\t\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/submitted`, {\n\t\t\t\t\t\tsuccess: true\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.afterValidSubmission(response);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Trigger custom event\n\t\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/submitted`, {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\tmessage: isDefined(response.message) ? response.message : UncannyToolkit.i18n.error.generic\n\t\t\t\t\t});\n\n\t\t\t\t\t// Check if there is a message\n\t\t\t\t\tif (isDefined(response.message)) {\n\t\t\t\t\t\t// Show the error\n\t\t\t\t\t\tthis.setError(response.message);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// Set a generic error message\n\t\t\t\t\t\tthis.setError(UncannyToolkit.i18n.error.generic);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Reset reCAPTCHA\n\t\t\t\t\tthis.resetReCAPTCHA();\n\t\t\t\t}\n\t\t\t}, (response) => {\n\t\t\t\t// Check if we have the error code and the code is 302\n\t\t\t\tif (isDefined(response.code) && response.code == 302) {\n\t\t\t\t\t// Check if \"Prevent Concurrent Login\" is active\n\t\t\t\t\tif (UncannyToolkit.integrity.shouldPreventConcurrentLogin) {\n\t\t\t\t\t\t// Set custom LD message\n\t\t\t\t\t\tresponse.message = UncannyToolkit.i18n.preventConcurrentLogin;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Check if this is a 2FA redirect (in error callback because success=false)\n\t\t\t\tif (window.UltimateLogin2FARedirect && window.UltimateLogin2FARedirect.handleResponse(response)) {\n\t\t\t\t\t// Redirect was handled, stop processing\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/submitted`, {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\tmessage: isDefined(response.message) ? response.message : UncannyToolkit.i18n.error.generic\n\t\t\t\t});\n\n\t\t\t\t// Check if there is a message\n\t\t\t\tif (isDefined(response.message)) {\n\t\t\t\t\t// Show the error\n\t\t\t\t\tthis.setError(response.message);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Set a generic error message\n\t\t\t\t\tthis.setError(UncannyToolkit.i18n.error.generic);\n\t\t\t\t}\n\n\t\t\t\t// Reset reCAPTCHA\n\t\t\t\tthis.resetReCAPTCHA();\n\n\t\t\t\t// Remove the loading animation\n\t\t\t\tthis.setLoadingStatus(false);\n\n\t\t\t\t// Enable the submit button\n\t\t\t\tthis.setButtonDisableStatus(false);\n\t\t\t}, {\n\t\t\t\tincludeNonce: false\n\t\t\t});\n\t\t}\n\n\t\t// If it's not using the LD reCAPTCHA and AJAX is enabled.\n\t\tif (!this.isUsingLearnDashReCaptcha() && UncannyToolkit.frontendLogin.hasAjaxEnabled) {\n\t\t\t// Prevent the form submission\n\t\t\tevent.preventDefault();\n\t\t\t// Handle AJAX\n\t\t\thandleAJAX();\n\t\t} else {\n\t\t\t// If it's using LD's reCAPTCHA:\n\n\t\t\t// Check if it's using AJAX\n\t\t\tif (UncannyToolkit.frontendLogin.hasAjaxEnabled) {\n\t\t\t\t// Prevent the form submission\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t// Handle reCAPTCHA\n\t\t\t\t// The callback will be invoked once the reCAPTCHA is validated\n\t\t\t\tthis.handleLearnDashReCaptcha(() => {\n\t\t\t\t\t// Handle AJAX\n\t\t\t\t\thandleAJAX();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Check if it has the required data already\n\t\t\t\t// We're doing this because for non-AJAX forms this is a recursive function\n\t\t\t\t// Once validated, it will invoke itself. We have to prevent an infinito loop,\n\t\t\t\t// so after the data is validated, we add a hidden field to the form.\n\t\t\t\t// If the field exists, it means this function was already executed, and that we\n\t\t\t\t// don't have to prevent the submission again. (Only for non-AJAX forms)\n\t\t\t\tif (!this.hasLearnDashReCaptchField()) {\n\t\t\t\t\t// Prevent the form submission even if it's not using AJAX\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t// Handle reCAPTCHA\n\t\t\t\t\t// The callback will be invoked once the reCAPTCHA is validated\n\t\t\t\t\tthis.handleLearnDashReCaptcha(() => {\n\t\t\t\t\t\t// Submit the form again\n\t\t\t\t\t\tthis.$elements.mainForm.submit();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tafterValidSubmission(response) { }\n\n\tsetLoadingStatus(setAsLoading = true) {\n\t\t// Check if we have to add a loading animation to the submit button\n\t\tif (UncannyToolkit.frontendLogin.ui.showAnimationOnSubmit) {\n\t\t\t// Check if we have to enable the loading status\n\t\t\tif (setAsLoading) {\n\t\t\t\t// Add the loading animation\n\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.loading);\n\t\t\t\tthis.$elements.submitButton.container.classList.add(this.cssClasses.btnLoading);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/set-loading`, {\n\t\t\t\t\tisLoading: true\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Remove the loading status\n\t\t\t\tthis.$elements.container.classList.remove(this.cssClasses.loading);\n\t\t\t\tthis.$elements.submitButton.container.classList.remove(this.cssClasses.btnLoading);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/set-loading`, {\n\t\t\t\t\tisLoading: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tsetButtonDisableStatus(setAsDisabled = true) {\n\t\t// Check if we have to disable the submit button\n\t\tif (UncannyToolkit.frontendLogin.ui.buttonDisabledOnSubmit) {\n\t\t\t// Check if we have to set it as disabled\n\t\t\tif (setAsDisabled) {\n\t\t\t\t// Disable the submit button\n\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.disabled);\n\t\t\t\tthis.$elements.submitButton.container.classList.add(this.cssClasses.btnDisabled);\n\t\t\t\tthis.$elements.submitButton.button.setAttribute('disabled', true);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/disable-button`, {\n\t\t\t\t\tdisable: true\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Disable the submit button\n\t\t\t\tthis.$elements.container.classList.remove(this.cssClasses.disabled);\n\t\t\t\tthis.$elements.submitButton.container.classList.remove(this.cssClasses.btnDisabled);\n\t\t\t\tthis.$elements.submitButton.button.removeAttribute('disabled');\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/disable-button`, {\n\t\t\t\t\tdisable: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tsetError(error = false) {\n\t\t// Check if the error is defined\n\t\tif (!isEmpty(error)) {\n\t\t\t// Set the class to show the notice\n\t\t\tthis.$elements.errorNotice.container.classList.add(this.cssClasses.noticeHasError);\n\n\t\t\t// Set the error message\n\t\t\tthis.$elements.errorNotice.textNode.innerHTML = error;\n\t\t}\n\t\telse {\n\t\t\t// Set the class to hide the notice\n\t\t\tthis.$elements.errorNotice.container.classList.remove(this.cssClasses.noticeHasError);\n\n\t\t\t// Set the error message\n\t\t\tthis.$elements.errorNotice.textNode.textContent = '';\n\n\t\t\t// Remove a CSS class for the reCAPTCHA error\n\t\t\tthis.$elements.container.classList.remove(this.cssClasses.reCAPTCHAerror);\n\t\t}\n\t}\n\n\thandleReCaptchaChanges() {\n\t\t// Add global method to handle what happened when\n\t\t// the reCAPTCHA is checked\n\t\tUncannyToolkit.frontendLogin.reCaptcha = {\n\t\t\tcorrect: (response) => {\n\t\t\t\t// Reset errors\n\t\t\t\tthis.setError(false);\n\t\t\t}\n\t\t}\n\t}\n\n\thasReCAPTCHA() {\n\t\treturn isDefined(this.$elements.formFields.reCAPTCHA);\n\t}\n\n\tgetReCAPTCHAResponse() {\n\t\t// Get the reCAPTCHA ID\n\t\tconst id = this.$elements.formFields.reCAPTCHA.getAttribute('data-id');\n\n\t\t// Get the response\n\t\treturn grecaptcha.getResponse(id);\n\t}\n\n\tresetReCAPTCHA() {\n\t\ttry {\n\t\t\t// Get the reCAPTCHA ID\n\t\t\tconst id = this.$elements.formFields.reCAPTCHA.getAttribute('data-id');\n\n\t\t\t// Reset the reCAPTCHA\n\t\t\tgrecaptcha.reset(id);\n\t\t} catch (e) { }\n\t}\n\n\tisOnModal() {\n\t\treturn isDefined(UncannyToolkit.modals['ult-login']);\n\t}\n\n\tisCaptchaChecked() {\n\t\treturn !isEmpty(this.getReCAPTCHAResponse());\n\t}\n\n\tshouldInvokeMethods() {\n\t\treturn isDefined(this.$elements.container);\n\t}\n\n\thandleLearnDashReCaptcha(callback) {\n\t\t// Check if it's using LD's reCAPTCHA\n\t\tif (this.isUsingLearnDashReCaptcha()) {\n\t\t\t// Invoke the challenge\n\t\t\tgrecaptcha.ready(() => {\n\t\t\t\tgrecaptcha.execute(\n\t\t\t\t\tLD_TP.site_key,\n\t\t\t\t\t{ action: 'submit' }\n\t\t\t\t).then((token) => {\n\t\t\t\t\t// Add hidden field to the form\n\t\t\t\t\tif (isDefined(this.$elements.mainForm)) {\n\t\t\t\t\t\t// Add hidden field with token\n\t\t\t\t\t\tthis.$elements.mainForm.insertAdjacentHTML('afterbegin', `<input type=\"hidden\" id=\"ult-form-ld-recaptcha\" name=\"token\" value=\"${token}\">`);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Invoke callback\n\t\t\t\t\tif (isDefined(callback)) {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\t// Just invoke the callback\n\t\t\tif (isDefined(callback)) {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\t}\n\n\tisUsingLearnDashReCaptcha() {\n\t\t// Check if grecaptcha is defined\n\t\t// Check if LD_TP is defined\n\t\t// Check if LD_TP.site_key is defined\n\t\treturn isDefined(window.grecaptcha) && isDefined(window.LD_TP) && isDefined(LD_TP.site_key);\n\t}\n\n\thasLearnDashReCaptchField() {\n\t\tlet hasField = false;\n\n\t\t// Check if the element exists\n\t\tif (isDefined(this.$elements.mainForm)) {\n\t\t\t// Check if the field exists\n\t\t\thasField = isDefined(this.$elements.mainForm.querySelector('input[name=\"token\"]'));\n\t\t}\n\n\t\treturn hasField;\n\t}\n}\nexport class Login extends FrontendLogin {\n\tconstructor() {\n\t\tsuper();\n\n\t\t// Set visibility of content of password field\n\t\tnew PasswordField(this.$elements.formFields.password);\n\t}\n\n\tgetElements() {\n\t\t// Get the main elements\n\t\tthis.$elements = {\n\t\t\tcontainer: document.getElementById('ult-login'),\n\t\t\tmainForm: document.getElementById('ult-login-form'),\n\t\t\tsubmitButton: {\n\t\t\t\tcontainer: document.getElementsByClassName('login-submit')[0],\n\t\t\t\tbutton: document.getElementById('ult-login-submit')\n\t\t\t},\n\t\t\terrorNotice: {\n\t\t\t\tcontainer: document.querySelector('#ult-login .ult-form__validation'),\n\t\t\t\ttextNode: document.querySelector('#ult-login .ult-notice-text'),\n\t\t\t},\n\t\t\tformFields: {\n\t\t\t\temail: document.getElementById('ult-login-email'),\n\t\t\t\tpassword: document.getElementById('ult-login-password'),\n\t\t\t\tredirectTo: document.querySelector('#ult-login .login-submit input[name=\"redirect_to\"]'),\n\t\t\t\treCAPTCHA: document.querySelector('#ult-login .ult-form-recaptcha'),\n\t\t\t\trememberMe: document.getElementById('ult-login-remember'),\n\t\t\t}\n\t\t}\n\t}\n\n\tget id() {\n\t\treturn 'login';\n\t}\n\n\t// Define the AJAX action ID\n\tget ajaxAction() {\n\t\treturn 'ult-login';\n\t}\n\n\tget cssClasses() {\n\t\treturn {\n\t\t\treCAPTCHAerror: 'ult-login--recaptcha-error',\n\t\t\tloading: 'ult-login--loading',\n\t\t\tdisabled: 'ult-login--disabled',\n\t\t\tbtnLoading: 'ult-form__submit-btn--loading',\n\t\t\tbtnDisabled: 'ult-form__submit-btn--disabled',\n\t\t\tnoticeHasError: 'ult-form__validation--has-error',\n\t\t};\n\t}\n\n\tget formData() {\n\n\t\t// The form data.\n\t\tconst formDataDefault = {\n\t\t\temail: this.$elements.formFields.email.value,\n\t\t\tpassword: this.$elements.formFields.password.value,\n\t\t\tredirectTo: this.$elements.formFields.redirectTo.value,\n\t\t}\n\n\t\t// Merge the default data with modules specific.\n\t\tconst formData = Object.assign({}, formDataDefault, UOToolkitFrontEndLoginFormData);\n\n\t\t// Check if it has the \"Remember me\" checkbox\n\t\tif (isDefined(this.$elements.formFields.rememberMe)) {\n\t\t\tformData.rememberMe = this.$elements.formFields.rememberMe.checked;\n\t\t}\n\n\t\t// Check if it has a reCAPTCHA\n\t\tif (this.hasReCAPTCHA()) {\n\t\t\tformData['g-recaptcha-response'] = this.getReCAPTCHAResponse();\n\t\t}\n\n\t\t// Check if it has a LearnDash reCAPTCHA\n\t\tif (isDefined(this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha'))) {\n\t\t\tformData.token = this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha').value;\n\t\t}\n\n\t\t// Check if it has a uo_is_login_modal hidden field to detect login modal request.\n\t\tif (isDefined(this.$elements.mainForm.querySelector('input[name=\"uo_is_login_modal\"]'))) {\n\t\t\tformData.uo_is_login_modal = this.$elements.mainForm.querySelector('input[name=\"uo_is_login_modal\"]').value;\n\t\t}\n\n\t\treturn formData;\n\t}\n\n\tafterValidSubmission(response) {\n\n\t\t// Show the loading animation again, we're going \n\t\t// to redirect them to another page and it might\n\t\t// take some seconds\n\n\t\t// Add the loading animation\n\t\tthis.setLoadingStatus(true);\n\n\t\t// Disable the submit button\n\t\tthis.setButtonDisableStatus(true);\n\n\t\t// Check if this requires a 2FA redirect (new unified approach)\n\t\tif (window.UltimateLogin2FARedirect && window.UltimateLogin2FARedirect.handleResponse(response)) {\n\t\t\t// Redirect was handled, stop processing\n\t\t\treturn;\n\t\t}\n\n\t\t// Legacy 2FA handling (fallback - should not be needed with new approach)\n\t\tif (response?.twoFactor?._meta?.enabled) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if we have to redirect to a URL\n\t\tif (!isEmpty(response.redirectTo)) {\n\t\t\twindow.location.href = response.redirectTo;\n\t\t}\n\t\t// Otherwise, just reload the page\n\t\telse {\n\t\t\twindow.location.reload();\n\t\t}\n\n\t}\n\n}\n\nexport class ForgotPassword extends FrontendLogin {\n\tgetElements() {\n\t\t// Get the main elements\n\t\tthis.$elements = {\n\t\t\tcontainer: document.getElementById('ult-forgot-password'),\n\t\t\tboxContent: document.querySelector('#ult-forgot-password .ult-form__content'),\n\t\t\tmainForm: document.getElementById('ult-forgot-password-form'),\n\t\t\tsubmitButton: {\n\t\t\t\tcontainer: document.querySelector('.ult-form__row--submit'),\n\t\t\t\tbutton: document.getElementById('ult-forgot-password-submit-btn')\n\t\t\t},\n\t\t\terrorNotice: {\n\t\t\t\tcontainer: document.querySelector('#ult-forgot-password .ult-form__validation'),\n\t\t\t\ttextNode: document.querySelector('#ult-forgot-password .ult-notice-text'),\n\t\t\t},\n\t\t\tformFields: {\n\t\t\t\temail: document.getElementById('ult-forgot-email'),\n\t\t\t\treCAPTCHA: document.querySelector('#ult-forgot-password .ult-form-recaptcha'),\n\t\t\t}\n\t\t}\n\t}\n\n\tget id() {\n\t\treturn 'forgot-password';\n\t}\n\n\t// Define the AJAX action ID\n\tget ajaxAction() {\n\t\treturn 'ult-forgot-password';\n\t}\n\n\tget cssClasses() {\n\t\treturn {\n\t\t\treCAPTCHAerror: 'ult-forgot-password--recaptcha-error',\n\t\t\tloading: 'ult-forgot-password--loading',\n\t\t\tdisabled: 'ult-forgot-password--disabled',\n\t\t\tbtnLoading: 'ult-form__submit-btn--loading',\n\t\t\tbtnDisabled: 'ult-form__submit-btn--disabled',\n\t\t\tnoticeHasError: 'ult-form__validation--has-error'\n\t\t};\n\t}\n\n\tget formData() {\n\t\t// Get the form data\n\t\tconst formDataDefault = {\n\t\t\temail: this.$elements.formFields.email.value\n\t\t}\n\n\t\tconst formData = Object.assign({}, formDataDefault, UOToolkitFrontEndLoginFormData);\n\n\t\t// Check if it has a reCAPTCHA\n\t\tif (this.hasReCAPTCHA()) {\n\t\t\tformData['g-recaptcha-response'] = this.getReCAPTCHAResponse();\n\t\t}\n\n\t\t// Check if it has a LearnDash reCAPTCHA\n\t\tif (isDefined(this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha'))) {\n\t\t\tformData.token = this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha').value;\n\t\t}\n\n\t\treturn formData;\n\t}\n\n\tafterValidSubmission(response) {\n\t\t// Show a confirmation message\n\t\tthis.$elements.boxContent.innerHTML = response.message;\n\t}\n}\n\nexport class ResetPassword extends FrontendLogin {\n\tgetElements() {\n\t\t// Get the main elements\n\t\tthis.$elements = {\n\t\t\tcontainer: document.getElementById('ult-reset-password'),\n\t\t\tboxContent: document.querySelector('#ult-reset-password .ult-form__content'),\n\t\t\tmainForm: document.getElementById('ult-reset-password-form'),\n\t\t\tsubmitButton: {\n\t\t\t\tcontainer: document.querySelector('.ult-form__row--submit'),\n\t\t\t\tbutton: document.getElementById('ult-reset-password-submit-btn')\n\t\t\t},\n\t\t\terrorNotice: {\n\t\t\t\tcontainer: document.querySelector('#ult-reset-password .ult-form__validation'),\n\t\t\t\ttextNode: document.querySelector('#ult-reset-password .ult-notice-text'),\n\t\t\t},\n\t\t\tformFields: {\n\t\t\t\tpassword: document.getElementById('ult-reset-new-password'),\n\t\t\t\tpasswordRepeat: document.getElementById('ult-reset-confirm-password'),\n\t\t\t\treCAPTCHA: document.querySelector('#ult-reset-password .ult-form-recaptcha'),\n\t\t\t}\n\t\t}\n\t}\n\n\tget id() {\n\t\treturn 'reset-password';\n\t}\n\n\t// Define the AJAX action ID\n\tget ajaxAction() {\n\t\treturn 'ult-reset-password';\n\t}\n\n\tget cssClasses() {\n\t\treturn {\n\t\t\treCAPTCHAerror: 'ult-reset-password--recaptcha-error',\n\t\t\tloading: 'ult-reset-password--loading',\n\t\t\tdisabled: 'ult-reset-password--disabled',\n\t\t\tbtnLoading: 'ult-form__submit-btn--loading',\n\t\t\tbtnDisabled: 'ult-form__submit-btn--disabled',\n\t\t\tnoticeHasError: 'ult-form__validation--has-error'\n\t\t};\n\t}\n\n\tget formData() {\n\t\t// Get the form data\n\t\tconst formData = {\n\t\t\tpassword: this.$elements.formFields.password.value,\n\t\t\tpasswordRepeat: this.$elements.formFields.passwordRepeat.value,\n\t\t}\n\n\t\t// Check if it has a reCAPTCHA\n\t\tif (this.hasReCAPTCHA()) {\n\t\t\tformData['g-recaptcha-response'] = this.getReCAPTCHAResponse();\n\t\t}\n\n\t\t// Check if it has a LearnDash reCAPTCHA\n\t\tif (isDefined(this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha'))) {\n\t\t\tformData.token = this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha').value;\n\t\t}\n\n\t\treturn formData;\n\t}\n\n\tafterValidSubmission(response) {\n\t\t// Show a confirmation message\n\t\tthis.$elements.boxContent.innerHTML = response.message;\n\t}\n}\n\n/**\n * This class handles the login functionality when it's inside a dialog\n */\nexport class FrontendLogin_Modal {\n\tconstructor() {\n\t\t// Check if we should invoke the callbacks\n\t\tif (this.shouldInvokeMethods()) {\n\t\t\t// Get elements\n\t\t\tthis.getElements();\n\n\t\t\t// Handle clicks to the buttons to show the sections\n\t\t\tthis.handleContainerVisiblity();\n\t\t}\n\t\telse {\n\t\t\t// Check if the current page is the Login page\n\t\t\t// That would mean that the modal is not defined here\n\t\t\t// We want to reload the page when they click on the \"Login\" link\n\t\t\tif (\n\t\t\t\tisDefined(UncannyToolkit.frontendLogin) &&\n\t\t\t\tisDefined(UncannyToolkit.frontendLogin.currentPageIsLoginPage) &&\n\t\t\t\tUncannyToolkit.frontendLogin.currentPageIsLoginPage\n\t\t\t) {\n\t\t\t\tthis.handleModalInLoginPage();\n\t\t\t}\n\t\t}\n\t}\n\n\tgetElements() {\n\t\tthis.$elements = {\n\t\t\tcontainer: document.getElementById('ult-login-modal'),\n\t\t\tloginShowButton: document.getElementById('ult-form-footer-login'),\n\t\t\tforgotPasswordShowButton: document.getElementById('ult-form-footer-forgot-password'),\n\t\t}\n\t}\n\n\thandleContainerVisiblity() {\n\t\tif (isDefined(this.$elements.forgotPasswordShowButton)) {\n\t\t\t// Listen clicks to the button to show the Forgot Password section\n\t\t\tthis.$elements.forgotPasswordShowButton.addEventListener('click', (event) => {\n\t\t\t\t// Prevent the event, we don't want to send them to another page\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t// Show the Forgot Password form\n\t\t\t\tthis.showSection('forgot-password');\n\t\t\t});\n\t\t}\n\n\t\tif (isDefined(this.$elements.loginShowButton)) {\n\t\t\t// Listen clicks to the button to show the Log in section\n\t\t\tthis.$elements.loginShowButton.addEventListener('click', (event) => {\n\t\t\t\t// Prevent the event, we don't want to send them to another page\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t// Show the Forgot Password form\n\t\t\t\tthis.showSection('login');\n\t\t\t});\n\t\t}\n\t}\n\n\tshowSection(section = 'login') {\n\t\t// Remove both classes. We'll add the correct one later\n\t\tthis.$elements.container.classList.remove('ult-login-modal--login', 'ult-login-modal--forgot-password');\n\n\t\t// Show and hide sections\n\t\tif (section == 'login') {\n\t\t\tthis.$elements.container.classList.add('ult-login-modal--login');\n\t\t}\n\t\telse if (section == 'forgot-password') {\n\t\t\tthis.$elements.container.classList.add('ult-login-modal--forgot-password');\n\t\t}\n\t}\n\n\tshouldInvokeMethods() {\n\t\treturn (\n\t\t\tisDefined(UncannyToolkit.frontendLogin) &&\n\t\t\tisDefined(UncannyToolkit.frontendLogin.currentPageIsLoginPage) &&\n\t\t\t!UncannyToolkit.frontendLogin.currentPageIsLoginPage &&\n\t\t\tisDefined(UncannyToolkit.modals['ult-login'])\n\t\t);\n\t}\n\n\thandleModalInLoginPage() {\n\t\tevents.on('click', `[href*=\"ult-modal-open----ult-login\"]`, (event) => {\n\t\t\t// Prevent default\n\t\t\tevent.preventDefault();\n\n\t\t\t// Reload the page\n\t\t\tlocation.reload();\n\t\t});\n\t}\n}\n\nexport class Login2ndFactor {\n\tid = 'login-2nd-factor';\n\n\tconstructor() {\n\t\t// Check if the form exists\n\t\tif (this.$form) {\n\t\t\t// Listen submission\n\t\t\tthis.listenSubmission();\n\t\t}\n\t}\n\n\t/**\n\t * Listens the submission of the form\n\t */\n\tlistenSubmission() {\n\t\tthis.$form.addEventListener('submit', (event) => {\n\t\t\t// Add loading animation to the button\n\t\t\tthis.setLoadingStatus(true);\n\n\t\t\t// Disable button\n\t\t\tthis.setButtonDisableStatus(true);\n\t\t});\n\t}\n\n\t/**\n\t * Sets the loading status\n\t * \n\t * @param {Boolean} setAsLoading TRUE if it should show the loading animation\n\t */\n\tsetLoadingStatus(setAsLoading = true) {\n\t\t// Check if we have to add a loading animation to the submit button\n\t\tif (UncannyToolkit.frontendLogin.ui.showAnimationOnSubmit) {\n\t\t\t// Check if we have to enable the loading status\n\t\t\tif (setAsLoading) {\n\t\t\t\t// Add the loading animation\n\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.loading);\n\t\t\t\tthis.$elements.submitButton.container.classList.add(this.cssClasses.btnLoading);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/set-loading`, {\n\t\t\t\t\tisLoading: true\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Remove the loading status\n\t\t\t\tthis.$elements.container.classList.remove(this.cssClasses.loading);\n\t\t\t\tthis.$elements.submitButton.container.classList.remove(this.cssClasses.btnLoading);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/set-loading`, {\n\t\t\t\t\tisLoading: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sets the disabled status\n\t * \n\t * @param {Boolean} setAsDisabled TRUE if it should disable the form\n\t */\n\tsetButtonDisableStatus(setAsDisabled = true) {\n\t\t// Check if we have to disable the submit button\n\t\tif (UncannyToolkit.frontendLogin.ui.buttonDisabledOnSubmit) {\n\t\t\t// Check if we have to set it as disabled\n\t\t\tif (setAsDisabled) {\n\t\t\t\t// Disable the submit button\n\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.disabled);\n\t\t\t\tthis.$elements.submitButton.container.classList.add(this.cssClasses.btnDisabled);\n\t\t\t\tthis.$elements.submitButton.button.setAttribute('disabled', true);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/disable-button`, {\n\t\t\t\t\tdisable: true\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Disable the submit button\n\t\t\t\tthis.$elements.container.classList.remove(this.cssClasses.disabled);\n\t\t\t\tthis.$elements.submitButton.container.classList.remove(this.cssClasses.btnDisabled);\n\t\t\t\tthis.$elements.submitButton.button.removeAttribute('disabled');\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/disable-button`, {\n\t\t\t\t\tdisable: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns the CSS classes used in the elements of this form\n\t * \n\t * @return {Object} CSS classes\n\t */\n\tget cssClasses() {\n\t\treturn {\n\t\t\tloading: 'ult-login--loading',\n\t\t\tdisabled: 'ult-login--disabled',\n\t\t\tbtnLoading: 'ult-form__submit-btn--loading',\n\t\t\tbtnDisabled: 'ult-form__submit-btn--disabled',\n\t\t};\n\t}\n\n\t/**\n\t * Returns the main elements of the form\n\t * \n\t * @return {Object} Object of Nodes\n\t */\n\tget $elements() {\n\t\treturn {\n\t\t\tcontainer: document.getElementById('ult-login'),\n\t\t\tsubmitButton: {\n\t\t\t\tcontainer: this.$form.querySelector('.submit'),\n\t\t\t\tbutton: this.$form.querySelector('.submit input[type=\"submit\"]')\n\t\t\t},\n\t\t}\n\t}\n\n\t/**\n\t * Returns the main form\n\t * \n\t * @return {Node} The form\n\t */\n\tget $form() {\n\t\treturn document.getElementById('ult-2fa-validation-form--templated');\n\t}\n}","import {\n\tisDefined\n} from './_utilities';\n\n/**\n * Render reCAPTCHAs\n */\n\nclass reCAPTCHAs {\n\tconstructor(){\n\t\t// Get elements\n\t\tthis.whenReady(() => {\n\t\t\t// Render the reCAPTCHAs\n\t\t\tthis.renderReCaptchas();\n\t\t});\n\t}\n\n\twhenReady( callback ){\n\t\t// Define a function that will be invoked once Google reCAPTCHA\n\t\t// is ready to use\n\t\twindow.UncannyToolkit.reCaptchaInit = () => {\n\t\t\t// Invoke the callback\n\t\t\tcallback();\n\t\t}\n\t}\n\n\trenderReCaptchas(){\n\t\t// Get containers\n\t\tconst $reCAPTCHAs = document.querySelectorAll( '.ult-form-recaptcha' );\n\n\t\t// Iterate the elements\n\t\t[].forEach.call( $reCAPTCHAs, ( $reCAPTCHA ) => {\n\t\t\t// Render the reCAPTCHA\n\t\t\tconst id = window.grecaptcha.render( $reCAPTCHA, {\n\t\t\t\tsitekey:  $reCAPTCHA.getAttribute( 'data-sitekey' ),\n\t\t\t\tcallback: $reCAPTCHA.getAttribute( 'data-callback' )\n\t\t\t});\n\n\t\t\t// Add the ID to the element so we can get the correct\n\t\t\t// validation token later\n\t\t\t$reCAPTCHA.setAttribute( 'data-id', id );\n\t\t});\n\t}\n}\n\nexport default reCAPTCHAs;","const events = require( 'eventslibjs' );\n\nimport {\n\tfade,\n\tdelegateEvent,\n\tisEmpty,\n\tisDefined\n} from './_utilities';\n\nclass Modals {\n\tconstructor(){\n\t\t// Create an array to save the IDs of all the modals\n\t\t// on this page\n\t\tthis.allModals = [];\n\n\t\t// Create a property in the main global object\n\t\t// to save the modals\n\t\tUncannyToolkit.modals = {};\n\n\t\t// Get elements\n\t\tthis.getElements();\n\n\t\t// Initialize modals\n\t\tthis.createModals();\n\t}\n\n\tgetElements(){\n\t\tthis.$elements = {\n\t\t\tmodals: document.querySelectorAll( '.ult-modal' )\n\t\t}\n\t}\n\n\tcreateModals(){\n\t\t// Itearate the modals (if any)\n\t\t[].forEach.call( this.$elements.modals, ( $modal ) => {\n\t\t\t// Get the modal ID\n\t\t\tconst modalID = isDefined( $modal.getAttribute( 'data-id' ) ) ? $modal.getAttribute( 'data-id' ) : '';\n\n\t\t\t// Check if there isn't already a modal with that ID\n\t\t\tif ( ! this.allModals.includes( modalID ) ){\n\t\t\t\t// Then create the modal\n\t\t\t\tlet modal = new Modal( $modal );\n\n\t\t\t\t// And save the ID\n\t\t\t\tthis.allModals.push( modalID );\n\n\t\t\t\t// Save the modal in the main global variable\n\t\t\t\tUncannyToolkit.modals[ modalID ] = modal;\n\t\t\t}\n\t\t});\n\t}\n}\n\nclass Modal {\n\tconstructor( $modalContent ){\n\t\t// Get the modal data\n\t\tthis.getModalData( $modalContent );\n\n\t\t// Render the modal\n\t\tthis.renderModal( $modalContent );\n\n\t\t// Listen clicks to containers that are trying to open the modal\n\t\tthis.handleModalOpen();\n\n\t\t// Listen clicks outside the modal box\n\t\tthis.handleClickOutsideTheModal();\n\t}\n\n\tgetModalData( $modalContent ){\n\t\t// Get the main modal data like ID, title and the parameter\n\t\t// that defines whether it should have the \"Discard\" button\n\t\tthis.modalData = {\n\t\t\tid:         isDefined( $modalContent.getAttribute( 'data-id' ) ) ? $modalContent.getAttribute( 'data-id' ) : '',\n\t\t\ttitle:      isDefined( $modalContent.getAttribute( 'data-title' ) ) ? $modalContent.getAttribute( 'data-title' ) : '',\n\t\t\tbtnDismiss: isDefined( $modalContent.getAttribute( 'data-btn-dismiss' ) ) ? !! parseInt( $modalContent.getAttribute( 'data-btn-dismiss' ) ) : true,\n\t\t\tdimBackground: isDefined( $modalContent.getAttribute( 'data-dim-background' ) ) ? !! parseInt( $modalContent.getAttribute( 'data-dim-background' ) ) : true,\n\t\t}\n\t}\n\n\trenderModal( $modalContent ){\n\t\t// Create the modal\n\t\tconst $modal = document.createElement( 'div' );\n\n\t\t// Set the element ID\n\t\t$modal.id = `ult-modal-container-${ this.modalData.id }`;\n\n\t\t// Add class to the main container\n\t\t$modal.classList.add( 'ult-modal-container' );\n\n\t\t// Set the data-id attribute\n\t\t$modal.setAttribute( 'data-id', this.modalData.id );\n\n\t\t// Set the children\n\t\t$modal.innerHTML = `\n\t\t\t<div class=\"ult-modal__inside\">\n\t\t\t\t<div class=\"ult-modal-box\">\n\t\t\t\t\t${ ! isEmpty( this.modalData.title ) ? `\n\t\t\t\t\t\t<div class=\"ult-modal-box-header\">\n\t\t\t\t\t\t\t<h2>${ this.modalData.title }</h2>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t` : '' }\n\n\t\t\t\t\t<div class=\"ult-modal-box-content\"></div>\n\n\t\t\t\t\t${ this.modalData.btnDismiss ? `\n\t\t\t\t\t\t<div class=\"ult-modal-box-footer\">\n\t\t\t\t\t\t\t<button class=\"ult-modal-box-footer__dismiss\">\n\t\t\t\t\t\t\t\t${ UncannyToolkit.i18n.dismiss }\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t` : '' }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\t// Add the modal content\n\t\t$modal.querySelector( '.ult-modal-box-content' ).appendChild( $modalContent );\n\n\t\t// Add the modal to the end of the document\n\t\tdocument.body.appendChild( $modal );\n\n\t\t// Save the main elements\n\t\tthis.$elements = {\n\t\t\tcontainer: $modal,\n\t\t\tbox: $modal.querySelector( '.ult-modal-box' ),\n\t\t\tcontent: $modal.querySelector( '.ult-modal-box-content .ult-modal' )\n\t\t}\n\n\t\t// Check if it has the dismiss button\n\t\tif ( this.modalData.btnDismiss ){\n\t\t\t// Get the dismiss button\n\t\t\tthis.$elements.dismissBtn = $modal.querySelector( '.ult-modal-box-footer__dismiss' );\n\n\t\t\t// Add the event listener\n\t\t\tthis.handleDismissButton();\n\t\t}\n\t}\n\n\thandleModalOpen(){\n\t\t// Listen clicks to the document, but invoke the callback only if the\n\t\t// clicked element matches one of the following selectors:\n\t\t// 1. .ult-modal-open[data-id=\"${ this.modalData.id }\"]\n\t\t// 2. [class*=\"ult-modal-open----${ this.modalData.id }\"]\n\t\t// 3. [href*=\"ult-modal-open----${ this.modalData.id }\"]\n\t\tevents.on( 'click', `.ult-modal-open[data-id=\"${ this.modalData.id }\"], [class*=\"ult-modal-open----${ this.modalData.id }\"], [href*=\"ult-modal-open----${ this.modalData.id }\"]`, ( event ) => {\n\t\t\t// Prevent default\n\t\t\tevent.preventDefault();\n\n\t\t\t// Show the modal\n\t\t\tthis.showModal(); \n\t\t});\n\t}\n\n\thandleDismissButton(){\n\t\t// Listen clicks to the dismiss button\n\t\tthis.$elements.dismissBtn.addEventListener( 'click', () => {\n\t\t\t// Hide the modal\n\t\t\tthis.hideModal();\n\t\t});\n\t}\n\n\thandleClickOutsideTheModal(){\n\t\t// Listen clicks to the while modal container\n\t\tthis.$elements.container.addEventListener( 'mouseup', ( event ) => {\n            // Set the targetted container\n            const $container = this.$elements.box;\n\n            if ( ( $container !== event.target ) && ! $container.contains( event.target ) ){\n                // Hide modal\n                this.hideModal();\n            }\n        });\n\t}\n\n\tsetLoading( isLoading = true ){\n\t\t// Check if we have to set the loading class\n\t\tif ( isLoading ){\n\t\t\tthis.$elements.container.classList.add( 'ult-modal-container--loading' );\n\t\t}\n\t\telse {\n\t\t\t// Remove the loading class\n\t\t\tthis.$elements.container.classList.remove( 'ult-modal-container--loading' );\n\t\t}\n\t}\n\n\tsetContent( HTMLcontent = '' ){\n\t\t// Set the content\n\t\tthis.$elements.content.innerHTML = HTMLcontent;\n\t}\n\n\tshowModal(){\n\t\t// Show the modal\n\t\tfade( 'in', this.$elements.container );\n\t\tthis.$elements.container.classList.add( 'ult-modal-container--open' );\n\n\t\t// Add class to the body element, so the user can use it\n\t\t// to change other stuff\n\t\tdocument.body.classList.add( 'ult-modals--open' );\n\n\t\t// Check if we have to dim the background\n\t\tif ( this.modalData.dimBackground ){\n\t\t\t// Add class to dim the background\n\t\t\tdocument.body.classList.add( 'ult-modals--dim-background' );\n\t\t}\n\t}\n\n\thideModal(){\n\t\t// Hide the modal\n\t\tfade( 'out', this.$elements.container, () => {\n\t\t\t// Hide the modal\n\t\t\tthis.$elements.container.classList.remove( 'ult-modal-container--open' );\n\n\t\t\t// Remove class from the body element\n\t\t\tdocument.body.classList.remove( 'ult-modals--open' );\n\n\t\t\t// Remove the class to dim the background\n\t\t\tdocument.body.classList.remove( 'ult-modals--dim-background' );\n\t\t});\n\t}\n}\n\nexport default Modals;","// Core login system modules\nimport {\n    Login,\n    ForgotPassword,\n    ResetPassword,\n    Login2ndFactor,\n    FrontendLogin_Modal\n} from './js/frontend-login';\n\n// Two-factor authentication redirect handler\nimport UltimateLogin2FARedirect from './js/wp-2fa-redirect';\n\n// Global utility modules\nimport reCAPTCHAs from './js/recaptcha';\nimport Modals from './js/dialog';\n\n// Import main stylesheet\nimport './scss/main.scss';\n\n// Do on DOM ready\ndocument.addEventListener('DOMContentLoaded', () => {\n    // reCAPTCHA (global module)\n    new reCAPTCHAs();\n\n    // Modals (global module)\n    new Modals();\n\n    // Frontend Login\n    new Login();\n    new ForgotPassword();\n    new ResetPassword();\n    new Login2ndFactor();\n\n    // Make 2FA redirect handler globally available\n    window.UltimateLogin2FARedirect = UltimateLogin2FARedirect;\n\n    // Exceptions for the login form when\n    // it's used on a modal\n    new FrontendLogin_Modal();\n});\n"],"names":["UltimateLogin2FARedirect","_classCallCheck","key","value","response","data","requires_redirect","redirect_url","window","location","href","module","exports","e","Element","prototype","closest","t","n","this","document","ownerDocument","querySelectorAll","o","length","item","parentElement","g","r","i","c","f","type","forEach","target","selector","documentElement","indexOf","contains","callback","on","split","trim","addEventListener","push","off","removeEventListener","toString","splice","once","get","hasOwnProperty","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","call","getter","__esModule","d","a","definition","Object","defineProperty","enumerable","globalThis","Function","obj","prop","isDefined","variable","isEmpty","Array","isArray","isObject","keys","fade","element","arguments","fadeClass","concat","classList","add","setTimeout","remove","triggerEvent","eventId","event","CustomEvent","detail","dispatchEvent","eye","PasswordField","$field","cssClasses","passwordWrapper","addWrapper","contentVisibilityToggle","styleFocusOnWrapper","$passwordWrapper","createElement","insertAdjacentElement","appendChild","_this","insertAdjacentHTML","passwordVisibilityToggle","iconEye","$passwordVisibilityToggle","querySelector","passwordIsVisible","getAttribute","setAttribute","innerHTML","_this2","events","require","FrontendLogin","getElements","shouldInvokeMethods","validateFormSubmission","handleReCaptchaChanges","_createClass","$elements","mainForm","onsubmit","canSubmit","hasReCAPTCHA","isCaptchaChecked","container","reCAPTCHAerror","setError","UncannyToolkit","frontendLogin","i18n","checkReCaptcha","console","error","id","isValid","submitForm","preventDefault","setLoadingStatus","setButtonDisableStatus","handleAJAX","action","onSuccess","onFail","options","_objectSpread","includeNonce","nonce","ajax","fetch","url","method","headers","body","URLSearchParams","then","ok","redirected","success","code","json","Error","generic","AJAXRequest","ajaxAction","formData","afterValidSubmission","message","resetReCAPTCHA","integrity","shouldPreventConcurrentLogin","preventConcurrentLogin","handleResponse","isUsingLearnDashReCaptcha","hasAjaxEnabled","handleLearnDashReCaptcha","hasLearnDashReCaptchField","submit","setAsLoading","ui","showAnimationOnSubmit","loading","submitButton","btnLoading","isLoading","setAsDisabled","buttonDisabledOnSubmit","disabled","btnDisabled","button","disable","removeAttribute","errorNotice","noticeHasError","textNode","textContent","_this3","reCaptcha","correct","formFields","reCAPTCHA","grecaptcha","getResponse","reset","modals","getReCAPTCHAResponse","_this4","ready","execute","LD_TP","site_key","token","hasField","Login","_FrontendLogin","_inherits","_super","_createSuper","_this5","password","getElementById","getElementsByClassName","email","redirectTo","rememberMe","formDataDefault","assign","UOToolkitFrontEndLoginFormData","checked","uo_is_login_modal","_response$twoFactor","twoFactor","_meta","enabled","reload","ForgotPassword","_FrontendLogin2","_super2","apply","boxContent","ResetPassword","_FrontendLogin3","_super3","passwordRepeat","FrontendLogin_Modal","handleContainerVisiblity","currentPageIsLoginPage","handleModalInLoginPage","loginShowButton","forgotPasswordShowButton","_this6","showSection","section","Login2ndFactor","$form","listenSubmission","_this7","reCAPTCHAs","whenReady","renderReCaptchas","reCaptchaInit","$reCAPTCHAs","$reCAPTCHA","render","sitekey","Modals","allModals","createModals","$modal","modalID","includes","modal","Modal","$modalContent","getModalData","renderModal","handleModalOpen","handleClickOutsideTheModal","modalData","title","btnDismiss","parseInt","dimBackground","dismiss","box","content","dismissBtn","handleDismissButton","showModal","hideModal","$container","HTMLcontent"],"sourceRoot":""}
     1{"version":3,"file":"bundle.min.js","mappings":"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","sources":["webpack://ultf-frontend/./src/js/wp-2fa-redirect.js","webpack://ultf-frontend/./node_modules/eventslibjs/dist/events.polyfills.min.js","webpack://ultf-frontend/webpack/bootstrap","webpack://ultf-frontend/webpack/runtime/compat get default export","webpack://ultf-frontend/webpack/runtime/define property getters","webpack://ultf-frontend/webpack/runtime/global","webpack://ultf-frontend/webpack/runtime/hasOwnProperty shorthand","webpack://ultf-frontend/./src/js/_utilities.js","webpack://ultf-frontend/./src/js/_icons.js","webpack://ultf-frontend/./src/js/password-field.js","webpack://ultf-frontend/./src/js/frontend-login.js","webpack://ultf-frontend/./src/js/recaptcha.js","webpack://ultf-frontend/./src/js/dialog.js","webpack://ultf-frontend/./src/index.js"],"sourcesContent":["/**\n * WP 2FA Redirect Handler\n * \n * Minimal script to handle AJAX login redirects for 2FA challenges.\n * Replaces the complex 1000+ line 2FA form management with simple redirect logic.\n * \n * @package uncanny-learndash-toolkit\n * @since 1.0.0\n */\n\n/**\n * Simple AJAX redirect handler for 2FA\n * \n * Handles the response from AJAX login attempts and redirects to 2FA challenge\n * when required. All 2FA form rendering and validation is now handled server-side.\n */\nclass UltimateLogin2FARedirect {\n\n    /**\n * Handles AJAX login response and performs redirect if 2FA is required\n * \n * @param {Object} response - The AJAX login response\n * @returns {boolean} - True if redirect was handled, false otherwise\n */\n    static handleResponse(response) {\n        // Check if this is a 2FA redirect response\n        if (response &&\n            response.data &&\n            response.data.requires_redirect === true &&\n            response.data.redirect_url) {\n\n            // Redirect to the 2FA challenge page\n            if (typeof window !== 'undefined' && window.location) {\n                window.location.href = response.data.redirect_url;\n                return true;\n            }\n        }\n\n        return false;\n    }\n}\n\n// Make globally available for the frontend login system\nif (typeof window !== 'undefined') {\n    window.UltimateLogin2FARedirect = UltimateLogin2FARedirect;\n}\n\n// Export for module systems\nif (typeof module !== 'undefined' && module.exports) {\n    module.exports = UltimateLogin2FARedirect;\n}\n","/*! eventslibjs v1.2.0 | (c) 2019 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/events */\nwindow.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t,n=(this.document||this.ownerDocument).querySelectorAll(e),o=this;do{for(t=n.length;0<=--t&&n.item(t)!==o;);}while(t<0&&(o=o.parentElement));return o}),(function(e,t){\"function\"==typeof define&&define.amd?define([],(function(){return t(e)})):\"object\"==typeof exports?module.exports=t(e):e.events=t(e)})(\"undefined\"!=typeof global?global:\"undefined\"!=typeof window?window:this,(function(r){\"use strict\";var i={},c={},f=function(o){c[o.type]&&c[o.type].forEach((function(e){var t,n;(t=o.target,n=e.selector,-1<[\"*\",\"window\",\"document\",\"document.documentElement\",r,document,document.documentElement].indexOf(n)||(\"string\"!=typeof n&&n.contains?n===t||n.contains(t):t.closest(n)))&&e.callback(o)}))};return i.on=function(e,t,n){t&&n&&e.split(\",\").forEach((function(e){e=e.trim(),c[e]||(c[e]=[],r.addEventListener(e,f,!0)),c[e].push({selector:t,callback:n})}))},i.off=function(e,n,o){e.split(\",\").forEach((function(e){if(e=e.trim(),c[e]){if(c[e].length<2||!n)return delete c[e],void r.removeEventListener(e,f,!0);var t=(function(e,t,n){for(var o=0;o<e.length;o++)if(e[o].selector===t&&e[o].callback.toString()===n.toString())return o;return-1})(c[e],n,o);t<0||c[e].splice(t,1)}}))},i.once=function(n,o,r){i.on(n,o,(function e(t){r(t),i.off(n,o,e)}))},i.get=function(){var e={};for(var t in c)c.hasOwnProperty(t)&&(e[t]=c[t]);return e},i}));","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/**\n * Determine if a variable is set and is not NULL\n *\n * @since 3.3\n *\n * @param  {mixed}      variable - The variable being evaluated\n * @return {boolean}    TRUE if the variable is defined\n */\nexport const isDefined = ( variable ) => {\n\t// Returns true if the variable is undefined\n    return typeof variable !== 'undefined' && variable !== null;\n}\n\n/**\n * Determine whether a variable is empty\n *\n * @since 3.3\n *\n * @param   {mixed}     variable - The variable being evaluated\n * @return  {boolean}   TRUE if the variable is empty\n */\nexport const isEmpty = ( variable ) => {\n    let response = true;\n\n    // Check if the variable is defined, otherwise is empty\n    if ( isDefined( variable ) ){\n        // Check if it's array\n        if ( Array.isArray( variable ) ){\n            response = variable.length == 0;\n        }\n        else if ( isObject( variable ) ){\n            response = Object.keys( variable ).length == 0;\n        }\n        else {\n            response = variable == '';\n        }\n    }\n\n    return response;\n}\n\n/**\n * Determine whether a variable is an object.\n * The Object constructor creates an object wrapper for the given value. If the value is null or undefined, it will create and return an empty object, otherwise, it will return an object of a type that corresponds to the given value. If the value is an object already, it will return the value.\n *\n * @since 3.3\n *\n * @param   {mixed}     variable - The variable being evaluated\n * @return  {boolean}   TRUE if the variable is an object\n */\nexport const isObject = ( variable ) => {\n    return variable === Object( variable );\n}\n\n/**\n * Simulate a fade in/fade out transition\n *\n * @since 3.3\n * \n * @param  {String} fade        Whether we have to fade in our fade out the element\n * @param  {Element}   element  Element\n */\nexport const fade = ( in_out = 'in', element, callback ) => {\n    // Check what's the class we have to add\n    const fadeClass = `ult--fade-${ in_out }`;\n\n    // Define the default callback\n    callback = isDefined( callback ) ? callback : () => {};\n\n    // Add the fade class\n    element.classList.add( fadeClass );\n\n    // Remove it after 300ms (the fade duration)\n    setTimeout(() => {\n        // Remove the fade class\n        element.classList.remove( fadeClass );\n\n        // Invoke the callback\n        callback();\n    }, 280 );\n}\n\n/**\n * Performs an AJAX request\n *\n * @since 3.3\n *\n * @param {object}    data - Data to be sent in the request\n * @param {callback}  [onSuccess] - Function to be invoked if the request is successful\n * @param {callback}  [onFail] - Function to be invoked if the request fails\n */\n\nexport function AJAXRequest( action = null, data = null, onSuccess = null, onFail = null, options = {} ){\n    // Add {action} to the data object\n    data = { ...data, ...{\n        action: action\n    }};\n\n    // Check if we should include the nonce\n    if ( ! isDefined( options.includeNonce ) || options.includeNonce ){\n        data.nonce = UncannyToolkit.ajax.nonce;\n    }\n\n    // Do the call\n    fetch( UncannyToolkit.ajax.url, {\n        method: 'POST',\n        headers: {\n            'Content-Type': 'application/x-www-form-urlencoded',\n            'Cache-Control': 'no-cache',\n        },\n        body: new URLSearchParams( data ),\n    })\n    .then(( response ) => {\n        // Check if the call was not successful\n        if ( ! response.ok ){\n            if ( isDefined( onFail ) ){\n                onFail({ ...response, ...{ success: false }});\n            }\n\n            // Stop chain\n            throw Error( UncannyToolkit.i18n.error.generic );\n        }\n        else {\n            // Detect redirection\n            if ( response.redirected ) {\n                // Return the error for the next .then to handle it\n                return {\n                    success: false,\n                    code: 302\n                }\n            } else {\n                return response.json();\n            }\n        }\n    })\n    .then(( response ) => {\n        // Check if the call was successful\n        if ( response.success ){\n            if ( isDefined( onSuccess ) ){\n                onSuccess( response );\n            }\n        }\n        else {\n            if ( isDefined( onFail ) ){\n                onFail({ ...response, ...{ success: false }});\n            }\n        }\n    })\n    .catch(( response ) => {\n        console.error( '✋Uncanny Toolkit: The fetch call threw an error' );\n\n        if ( isDefined( onFail ) ){\n            onFail({ ...response, ...{ success: false }});\n        }\n    });;\n}\n\n/**\n * Trigger a custom event\n * @param  {String} eventId ID of the event\n * @param  {Object} data    Data\n */\nexport function triggerEvent( eventId = '', data = {} ){\n    try {\n        const event = new CustomEvent( eventId, { detail: data } );\n        document.dispatchEvent( event );\n    }\n    catch ( e ){}\n}","const eye = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\" viewBox=\"0 0 576 512\"><path d=\"M279.6 160.4C282.4 160.1 285.2 160 288 160C341 160 384 202.1 384 256C384 309 341 352 288 352C234.1 352 192 309 192 256C192 253.2 192.1 250.4 192.4 247.6C201.7 252.1 212.5 256 224 256C259.3 256 288 227.3 288 192C288 180.5 284.1 169.7 279.6 160.4zM480.6 112.6C527.4 156 558.7 207.1 573.5 243.7C576.8 251.6 576.8 260.4 573.5 268.3C558.7 304 527.4 355.1 480.6 399.4C433.5 443.2 368.8 480 288 480C207.2 480 142.5 443.2 95.42 399.4C48.62 355.1 17.34 304 2.461 268.3C-.8205 260.4-.8205 251.6 2.461 243.7C17.34 207.1 48.62 156 95.42 112.6C142.5 68.84 207.2 32 288 32C368.8 32 433.5 68.84 480.6 112.6V112.6zM288 112C208.5 112 144 176.5 144 256C144 335.5 208.5 400 288 400C367.5 400 432 335.5 432 256C432 176.5 367.5 112 288 112z\"/></svg>`;\n\nconst eyeSlash = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\" viewBox=\"0 0 640 512\"><path d=\"M150.7 92.77C195 58.27 251.8 32 320 32C400.8 32 465.5 68.84 512.6 112.6C559.4 156 590.7 207.1 605.5 243.7C608.8 251.6 608.8 260.4 605.5 268.3C592.1 300.6 565.2 346.1 525.6 386.7L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L150.7 92.77zM223.1 149.5L313.4 220.3C317.6 211.8 320 202.2 320 191.1C320 180.5 316.1 169.7 311.6 160.4C314.4 160.1 317.2 159.1 320 159.1C373 159.1 416 202.1 416 255.1C416 269.7 413.1 282.7 407.1 294.5L446.6 324.7C457.7 304.3 464 280.9 464 255.1C464 176.5 399.5 111.1 320 111.1C282.7 111.1 248.6 126.2 223.1 149.5zM320 480C239.2 480 174.5 443.2 127.4 399.4C80.62 355.1 49.34 304 34.46 268.3C31.18 260.4 31.18 251.6 34.46 243.7C44 220.8 60.29 191.2 83.09 161.5L177.4 235.8C176.5 242.4 176 249.1 176 255.1C176 335.5 240.5 400 320 400C338.7 400 356.6 396.4 373 389.9L446.2 447.5C409.9 467.1 367.8 480 320 480H320z\"/></svg>`;\n\nexport { eye as iconEye }\nexport { eyeSlash as iconEyeSlash }","import {\n\ticonEye,\n\ticonEyeSlash\n} from './_icons';\n\n/**\n * Adds an eye icon to toggle password visibility\n * Does NOT wrap the field - keeps it in original DOM position to preserve Safari autofill\n */\nexport default class PasswordField {\n    /**\n     * Adds an eye icon to toggle password visibility\n     * @param {Node} $field The Node of the password field\n     */\n    constructor( $field ) {\n        // Check if the field exists\n        if ( ! $field ) {\n            return;\n        }\n\n        // Check if eye icon already exists (as next sibling)\n        const nextSibling = $field.nextElementSibling;\n        if ( nextSibling && nextSibling.classList && nextSibling.classList.contains( this.cssClasses.passwordVisibilityToggle ) ) {\n            return;\n        }\n\n        // Save Node\n        this.$field = $field;\n        \n        // Change class from \"input\" to \"uncannyowl-input\"\n        if ( this.$field.classList.contains( 'input' ) ) {\n            this.$field.classList.remove( 'input' );\n            this.$field.classList.add( 'uncannyowl-input' );\n        }\n\n        // Make parent position relative if it isn't already (for absolute positioning of icon)\n        this.setupParentPositioning();\n\n        // Add padding to field for the icon\n        this.addFieldPadding();\n\n        // Add eye icon as sibling (NOT wrapping the field)\n        this.addEyeIcon();\n\n        // Ensure field stays editable\n        this.ensureFieldEditable();\n        \n        // Add focus/blur handlers to style eye icon when field is focused\n        this.setupFocusHandlers();\n    }\n\n    /**\n     * Make parent position relative for absolute positioning of icon\n     */\n    setupParentPositioning() {\n        const parent = this.$field.parentNode;\n        \n        // Check if parent already has position\n        const parentPosition = window.getComputedStyle( parent ).position;\n        \n        // If parent doesn't have position, make it relative\n        if ( parentPosition === 'static' ) {\n            parent.style.position = 'relative';\n        }\n    }\n\n    /**\n     * Add padding to the right of the field to make room for the icon\n     */\n    addFieldPadding() {\n        // Add padding-right to make room for the eye icon\n        const currentPadding = window.getComputedStyle( this.$field ).paddingRight;\n        const paddingValue = parseInt( currentPadding ) || 0;\n        \n        // Add 35px padding if not already enough\n        if ( paddingValue < 35 ) {\n            this.$field.style.paddingRight = '35px';\n        }\n    }\n\n    /**\n     * Add eye icon as a sibling element (not wrapping the field)\n     */\n    addEyeIcon() {\n        // Create eye icon container\n        this.$eyeIcon = document.createElement( 'div' );\n        this.$eyeIcon.classList.add( this.cssClasses.passwordVisibilityToggle );\n        this.$eyeIcon.innerHTML = iconEye;\n        \n        // Insert icon as sibling after the field\n        this.$field.parentNode.insertBefore( this.$eyeIcon, this.$field.nextSibling );\n        \n        // Add click event to toggle visibility\n        this.$eyeIcon.addEventListener( 'click', () => {\n            const passwordIsVisible = this.$field.getAttribute( 'type' ) === 'text';\n\n            if ( passwordIsVisible ) {\n                // Hide the password\n                this.$field.setAttribute( 'type', 'password' );\n                this.$eyeIcon.innerHTML = iconEye;\n            } else {\n                // Show the password\n                this.$field.setAttribute( 'type', 'text' );\n                this.$eyeIcon.innerHTML = iconEyeSlash;\n            }\n        } );\n    }\n    \n    /**\n     * Setup focus/blur handlers to style eye icon when field is focused\n     */\n    setupFocusHandlers() {\n        // Listen for focus on field\n        this.$field.addEventListener( 'focus', () => {\n            // Add focus class to eye icon\n            if ( this.$eyeIcon ) {\n                this.$eyeIcon.classList.add( 'ult-form-password-wrapper-eye-toggle--focus' );\n            }\n        } );\n        \n        // Listen for blur on field\n        this.$field.addEventListener( 'blur', () => {\n            // Remove focus class from eye icon\n            if ( this.$eyeIcon ) {\n                this.$eyeIcon.classList.remove( 'ult-form-password-wrapper-eye-toggle--focus' );\n            }\n        } );\n    }\n\n    /**\n     * Ensure field stays editable\n     */\n    ensureFieldEditable() {\n        // Remove readonly/disabled immediately\n        this.$field.removeAttribute( 'readonly' );\n        this.$field.removeAttribute( 'disabled' );\n        this.$field.readOnly = false;\n        this.$field.disabled = false;\n    }\n\n    /**\n     * Object with the CSS classes used\n     */\n    get cssClasses() {\n        return {\n            passwordVisibilityToggle: 'ult-form-password-wrapper-eye-toggle'\n        }\n    }\n}\n","const events = require('eventslibjs');\n\nimport {\n\tAJAXRequest,\n\tisEmpty,\n\tisDefined,\n\ttriggerEvent\n} from './_utilities';\n\nimport PasswordField from './password-field';\n\nclass FrontendLogin {\n\tconstructor() {\n\t\t// Get elements\n\t\tthis.getElements();\n\n\t\t// Check if we have to invoke the methods\n\t\tif (this.shouldInvokeMethods()) {\n\t\t\t// Bind form submission\n\t\t\tthis.validateFormSubmission();\n\n\t\t\t// Handle reCAPTCHA changes\n\t\t\tthis.handleReCaptchaChanges();\n\t\t}\n\t}\n\n\tgetElements() {\n\t\t// Get the main elements\n\t\tthis.$elements = {}\n\n\t\t// Define the main CSS classes\n\t\tthis.cssClasses = {}\n\t}\n\n\tget formData() {\n\t\treturn {}\n\t}\n\n\tget ajaxAction() {\n\t\treturn '';\n\t}\n\n\tvalidateFormSubmission() {\n\t\t// Check if the form exists\n\t\tif (isDefined(this.$elements.mainForm)) {\n\t\t\t// Bind submission\n\t\t\tthis.$elements.mainForm.onsubmit = (event) => {\n\t\t\t\t// Create a variable to evaluate if the form has errors later\n\t\t\t\tlet canSubmit = true;\n\n\t\t\t\t// Check if the recaptcha is enabled, but the checkbox is not checked\n\t\t\t\tif (this.hasReCAPTCHA() && !this.isCaptchaChecked()) {\n\t\t\t\t\t// Add a CSS class for the reCAPTCHA error\n\t\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.reCAPTCHAerror);\n\n\t\t\t\t\t// Update the error status\n\t\t\t\t\tcanSubmit = false;\n\n\t\t\t\t\t// Set frontend error\n\t\t\t\t\tthis.setError(UncannyToolkit.frontendLogin.i18n.checkReCaptcha);\n\n\t\t\t\t\tconsole.error('✋Frontend Login: The form is using reCAPTCHA, but you didn\\'t pass the verification');\n\t\t\t\t}\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/validated`, {\n\t\t\t\t\tisValid: canSubmit\n\t\t\t\t});\n\n\t\t\t\t// Check if we can submit the form\n\t\t\t\tif (canSubmit) {\n\t\t\t\t\t// Submit the form\n\t\t\t\t\tthis.submitForm(event);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Prevent the form submission\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tconsole.error('✋Frontend Login: Submission prevented');\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\n\tsubmitForm(event) {\n\t\t// Hide errors\n\t\tthis.setError(false);\n\n\t\t// Add the loading animation\n\t\tthis.setLoadingStatus(true);\n\n\t\t// Disable the submit button\n\t\tthis.setButtonDisableStatus(true);\n\n\t\t/**\n\t\t * Handles the AJAX submission\n\t\t * \n\t\t * @return {undefined}\n\t\t */\n\t\tconst handleAJAX = () => {\n\t\t\t// Trigger custom event\n\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/submitting`);\n\n\t\t\t// Do AJAX call\n\t\t\tAJAXRequest(this.ajaxAction, this.formData, (response) => {\n\t\t\t\t// Remove the loading animation\n\t\t\t\tthis.setLoadingStatus(false);\n\n\t\t\t\t// Enable the submit button\n\t\t\t\tthis.setButtonDisableStatus(false);\n\n\t\t\t\t// Check if the call was really successful\n\t\t\t\tif (response.success) {\n\t\t\t\t\t// Trigger custom event\n\t\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/submitted`, {\n\t\t\t\t\t\tsuccess: true\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.afterValidSubmission(response);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Trigger custom event\n\t\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/submitted`, {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\tmessage: isDefined(response.message) ? response.message : UncannyToolkit.i18n.error.generic\n\t\t\t\t\t});\n\n\t\t\t\t\t// Check if there is a message\n\t\t\t\t\tif (isDefined(response.message)) {\n\t\t\t\t\t\t// Show the error\n\t\t\t\t\t\tthis.setError(response.message);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// Set a generic error message\n\t\t\t\t\t\tthis.setError(UncannyToolkit.i18n.error.generic);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Reset reCAPTCHA\n\t\t\t\t\tthis.resetReCAPTCHA();\n\t\t\t\t}\n\t\t\t}, (response) => {\n\t\t\t\t// Check if we have the error code and the code is 302\n\t\t\t\tif (isDefined(response.code) && response.code == 302) {\n\t\t\t\t\t// Check if \"Prevent Concurrent Login\" is active\n\t\t\t\t\tif (UncannyToolkit.integrity.shouldPreventConcurrentLogin) {\n\t\t\t\t\t\t// Set custom LD message\n\t\t\t\t\t\tresponse.message = UncannyToolkit.i18n.preventConcurrentLogin;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Check if this is a 2FA redirect (in error callback because success=false)\n\t\t\t\tif (window.UltimateLogin2FARedirect && window.UltimateLogin2FARedirect.handleResponse(response)) {\n\t\t\t\t\t// Redirect was handled, stop processing\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/submitted`, {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\tmessage: isDefined(response.message) ? response.message : UncannyToolkit.i18n.error.generic\n\t\t\t\t});\n\n\t\t\t\t// Check if there is a message\n\t\t\t\tif (isDefined(response.message)) {\n\t\t\t\t\t// Show the error\n\t\t\t\t\tthis.setError(response.message);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Set a generic error message\n\t\t\t\t\tthis.setError(UncannyToolkit.i18n.error.generic);\n\t\t\t\t}\n\n\t\t\t\t// Reset reCAPTCHA\n\t\t\t\tthis.resetReCAPTCHA();\n\n\t\t\t\t// Remove the loading animation\n\t\t\t\tthis.setLoadingStatus(false);\n\n\t\t\t\t// Enable the submit button\n\t\t\t\tthis.setButtonDisableStatus(false);\n\t\t\t}, {\n\t\t\t\tincludeNonce: false\n\t\t\t});\n\t\t}\n\n\t\t// If it's not using the LD reCAPTCHA and AJAX is enabled.\n\t\tif (!this.isUsingLearnDashReCaptcha() && UncannyToolkit.frontendLogin.hasAjaxEnabled) {\n\t\t\t// Prevent the form submission\n\t\t\tevent.preventDefault();\n\t\t\t// Handle AJAX\n\t\t\thandleAJAX();\n\t\t} else {\n\t\t\t// If it's using LD's reCAPTCHA:\n\n\t\t\t// Check if it's using AJAX\n\t\t\tif (UncannyToolkit.frontendLogin.hasAjaxEnabled) {\n\t\t\t\t// Prevent the form submission\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t// Handle reCAPTCHA\n\t\t\t\t// The callback will be invoked once the reCAPTCHA is validated\n\t\t\t\tthis.handleLearnDashReCaptcha(() => {\n\t\t\t\t\t// Handle AJAX\n\t\t\t\t\thandleAJAX();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Check if it has the required data already\n\t\t\t\t// We're doing this because for non-AJAX forms this is a recursive function\n\t\t\t\t// Once validated, it will invoke itself. We have to prevent an infinito loop,\n\t\t\t\t// so after the data is validated, we add a hidden field to the form.\n\t\t\t\t// If the field exists, it means this function was already executed, and that we\n\t\t\t\t// don't have to prevent the submission again. (Only for non-AJAX forms)\n\t\t\t\tif (!this.hasLearnDashReCaptchField()) {\n\t\t\t\t\t// Prevent the form submission even if it's not using AJAX\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t// Handle reCAPTCHA\n\t\t\t\t\t// The callback will be invoked once the reCAPTCHA is validated\n\t\t\t\t\tthis.handleLearnDashReCaptcha(() => {\n\t\t\t\t\t\t// Submit the form again\n\t\t\t\t\t\tthis.$elements.mainForm.submit();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tafterValidSubmission(response) { }\n\n\tsetLoadingStatus(setAsLoading = true) {\n\t\t// Check if we have to add a loading animation to the submit button\n\t\tif (UncannyToolkit.frontendLogin.ui.showAnimationOnSubmit) {\n\t\t\t// Check if we have to enable the loading status\n\t\t\tif (setAsLoading) {\n\t\t\t\t// Add the loading animation\n\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.loading);\n\t\t\t\tthis.$elements.submitButton.container.classList.add(this.cssClasses.btnLoading);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/set-loading`, {\n\t\t\t\t\tisLoading: true\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Remove the loading status\n\t\t\t\tthis.$elements.container.classList.remove(this.cssClasses.loading);\n\t\t\t\tthis.$elements.submitButton.container.classList.remove(this.cssClasses.btnLoading);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/set-loading`, {\n\t\t\t\t\tisLoading: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tsetButtonDisableStatus(setAsDisabled = true) {\n\t\t// Check if we have to disable the submit button\n\t\tif (UncannyToolkit.frontendLogin.ui.buttonDisabledOnSubmit) {\n\t\t\t// Check if we have to set it as disabled\n\t\t\tif (setAsDisabled) {\n\t\t\t\t// Disable the submit button\n\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.disabled);\n\t\t\t\tthis.$elements.submitButton.container.classList.add(this.cssClasses.btnDisabled);\n\t\t\t\tthis.$elements.submitButton.button.setAttribute('disabled', true);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/disable-button`, {\n\t\t\t\t\tdisable: true\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Disable the submit button\n\t\t\t\tthis.$elements.container.classList.remove(this.cssClasses.disabled);\n\t\t\t\tthis.$elements.submitButton.container.classList.remove(this.cssClasses.btnDisabled);\n\t\t\t\tthis.$elements.submitButton.button.removeAttribute('disabled');\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/disable-button`, {\n\t\t\t\t\tdisable: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tsetError(error = false) {\n\t\t// Check if the error is defined\n\t\tif (!isEmpty(error)) {\n\t\t\t// Set the class to show the notice\n\t\t\tthis.$elements.errorNotice.container.classList.add(this.cssClasses.noticeHasError);\n\n\t\t\t// Set the error message\n\t\t\tthis.$elements.errorNotice.textNode.innerHTML = error;\n\t\t}\n\t\telse {\n\t\t\t// Set the class to hide the notice\n\t\t\tthis.$elements.errorNotice.container.classList.remove(this.cssClasses.noticeHasError);\n\n\t\t\t// Set the error message\n\t\t\tthis.$elements.errorNotice.textNode.textContent = '';\n\n\t\t\t// Remove a CSS class for the reCAPTCHA error\n\t\t\tthis.$elements.container.classList.remove(this.cssClasses.reCAPTCHAerror);\n\t\t}\n\t}\n\n\thandleReCaptchaChanges() {\n\t\t// Add global method to handle what happened when\n\t\t// the reCAPTCHA is checked\n\t\tUncannyToolkit.frontendLogin.reCaptcha = {\n\t\t\tcorrect: (response) => {\n\t\t\t\t// Reset errors\n\t\t\t\tthis.setError(false);\n\t\t\t}\n\t\t}\n\t}\n\n\thasReCAPTCHA() {\n\t\treturn isDefined(this.$elements.formFields.reCAPTCHA);\n\t}\n\n\tgetReCAPTCHAResponse() {\n\t\t// Get the reCAPTCHA ID\n\t\tconst id = this.$elements.formFields.reCAPTCHA.getAttribute('data-id');\n\n\t\t// Get the response\n\t\treturn grecaptcha.getResponse(id);\n\t}\n\n\tresetReCAPTCHA() {\n\t\ttry {\n\t\t\t// Get the reCAPTCHA ID\n\t\t\tconst id = this.$elements.formFields.reCAPTCHA.getAttribute('data-id');\n\n\t\t\t// Reset the reCAPTCHA\n\t\t\tgrecaptcha.reset(id);\n\t\t} catch (e) { }\n\t}\n\n\tisOnModal() {\n\t\treturn isDefined(UncannyToolkit.modals['ult-login']);\n\t}\n\n\tisCaptchaChecked() {\n\t\treturn !isEmpty(this.getReCAPTCHAResponse());\n\t}\n\n\tshouldInvokeMethods() {\n\t\treturn isDefined(this.$elements.container);\n\t}\n\n\thandleLearnDashReCaptcha(callback) {\n\t\t// Check if it's using LD's reCAPTCHA\n\t\tif (this.isUsingLearnDashReCaptcha()) {\n\t\t\t// Invoke the challenge\n\t\t\tgrecaptcha.ready(() => {\n\t\t\t\tgrecaptcha.execute(\n\t\t\t\t\tLD_TP.site_key,\n\t\t\t\t\t{ action: 'submit' }\n\t\t\t\t).then((token) => {\n\t\t\t\t\t// Add hidden field to the form\n\t\t\t\t\tif (isDefined(this.$elements.mainForm)) {\n\t\t\t\t\t\t// Add hidden field with token\n\t\t\t\t\t\tthis.$elements.mainForm.insertAdjacentHTML('afterbegin', `<input type=\"hidden\" id=\"ult-form-ld-recaptcha\" name=\"token\" value=\"${token}\">`);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Invoke callback\n\t\t\t\t\tif (isDefined(callback)) {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\t// Just invoke the callback\n\t\t\tif (isDefined(callback)) {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\t}\n\n\tisUsingLearnDashReCaptcha() {\n\t\t// Check if grecaptcha is defined\n\t\t// Check if LD_TP is defined\n\t\t// Check if LD_TP.site_key is defined\n\t\treturn isDefined(window.grecaptcha) && isDefined(window.LD_TP) && isDefined(LD_TP.site_key);\n\t}\n\n\thasLearnDashReCaptchField() {\n\t\tlet hasField = false;\n\n\t\t// Check if the element exists\n\t\tif (isDefined(this.$elements.mainForm)) {\n\t\t\t// Check if the field exists\n\t\t\thasField = isDefined(this.$elements.mainForm.querySelector('input[name=\"token\"]'));\n\t\t}\n\n\t\treturn hasField;\n\t}\n}\nexport class Login extends FrontendLogin {\n\tconstructor() {\n\t\tsuper();\n\n\t\t// Set visibility of content of password field\n\t\tnew PasswordField(this.$elements.formFields.password);\n\t}\n\n\tgetElements() {\n\t\t// Get the main elements\n\t\tthis.$elements = {\n\t\t\tcontainer: document.getElementById('ult-login'),\n\t\t\tmainForm: document.getElementById('ult-login-form'),\n\t\t\tsubmitButton: {\n\t\t\t\tcontainer: document.getElementsByClassName('login-submit')[0],\n\t\t\t\tbutton: document.getElementById('ult-login-submit')\n\t\t\t},\n\t\t\terrorNotice: {\n\t\t\t\tcontainer: document.querySelector('#ult-login .ult-form__validation'),\n\t\t\t\ttextNode: document.querySelector('#ult-login .ult-notice-text'),\n\t\t\t},\n\t\t\tformFields: {\n\t\t\t\temail: document.getElementById('ult-login-email'),\n\t\t\t\tpassword: document.getElementById('ult-login-password'),\n\t\t\t\tredirectTo: document.querySelector('#ult-login .login-submit input[name=\"redirect_to\"]'),\n\t\t\t\treCAPTCHA: document.querySelector('#ult-login .ult-form-recaptcha'),\n\t\t\t\trememberMe: document.getElementById('ult-login-remember'),\n\t\t\t}\n\t\t}\n\t}\n\n\tget id() {\n\t\treturn 'login';\n\t}\n\n\t// Define the AJAX action ID\n\tget ajaxAction() {\n\t\treturn 'ult-login';\n\t}\n\n\tget cssClasses() {\n\t\treturn {\n\t\t\treCAPTCHAerror: 'ult-login--recaptcha-error',\n\t\t\tloading: 'ult-login--loading',\n\t\t\tdisabled: 'ult-login--disabled',\n\t\t\tbtnLoading: 'ult-form__submit-btn--loading',\n\t\t\tbtnDisabled: 'ult-form__submit-btn--disabled',\n\t\t\tnoticeHasError: 'ult-form__validation--has-error',\n\t\t};\n\t}\n\n\tget formData() {\n\n\t\t// The form data.\n\t\tconst formDataDefault = {\n\t\t\temail: this.$elements.formFields.email.value,\n\t\t\tpassword: this.$elements.formFields.password.value,\n\t\t\tredirectTo: this.$elements.formFields.redirectTo.value,\n\t\t}\n\n\t\t// Merge the default data with modules specific.\n\t\tconst formData = Object.assign({}, formDataDefault, UOToolkitFrontEndLoginFormData);\n\n\t\t// Check if it has the \"Remember me\" checkbox\n\t\tif (isDefined(this.$elements.formFields.rememberMe)) {\n\t\t\tformData.rememberMe = this.$elements.formFields.rememberMe.checked;\n\t\t}\n\n\t\t// Check if it has a reCAPTCHA\n\t\tif (this.hasReCAPTCHA()) {\n\t\t\tformData['g-recaptcha-response'] = this.getReCAPTCHAResponse();\n\t\t}\n\n\t\t// Check if it has a LearnDash reCAPTCHA\n\t\tif (isDefined(this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha'))) {\n\t\t\tformData.token = this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha').value;\n\t\t}\n\n\t\t// Check if it has a uo_is_login_modal hidden field to detect login modal request.\n\t\tif (isDefined(this.$elements.mainForm.querySelector('input[name=\"uo_is_login_modal\"]'))) {\n\t\t\tformData.uo_is_login_modal = this.$elements.mainForm.querySelector('input[name=\"uo_is_login_modal\"]').value;\n\t\t}\n\n\t\treturn formData;\n\t}\n\n\tafterValidSubmission(response) {\n\n\t\t// Show the loading animation again, we're going \n\t\t// to redirect them to another page and it might\n\t\t// take some seconds\n\n\t\t// Add the loading animation\n\t\tthis.setLoadingStatus(true);\n\n\t\t// Disable the submit button\n\t\tthis.setButtonDisableStatus(true);\n\n\t\t// Check if this requires a 2FA redirect (new unified approach)\n\t\tif (window.UltimateLogin2FARedirect && window.UltimateLogin2FARedirect.handleResponse(response)) {\n\t\t\t// Redirect was handled, stop processing\n\t\t\treturn;\n\t\t}\n\n\t\t// Legacy 2FA handling (fallback - should not be needed with new approach)\n\t\tif (response?.twoFactor?._meta?.enabled) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if we have to redirect to a URL\n\t\tif (!isEmpty(response.redirectTo)) {\n\t\t\twindow.location.href = response.redirectTo;\n\t\t}\n\t\t// Otherwise, just reload the page\n\t\telse {\n\t\t\twindow.location.reload();\n\t\t}\n\n\t}\n\n}\n\nexport class ForgotPassword extends FrontendLogin {\n\tgetElements() {\n\t\t// Get the main elements\n\t\tthis.$elements = {\n\t\t\tcontainer: document.getElementById('ult-forgot-password'),\n\t\t\tboxContent: document.querySelector('#ult-forgot-password .ult-form__content'),\n\t\t\tmainForm: document.getElementById('ult-forgot-password-form'),\n\t\t\tsubmitButton: {\n\t\t\t\tcontainer: document.querySelector('.ult-form__row--submit'),\n\t\t\t\tbutton: document.getElementById('ult-forgot-password-submit-btn')\n\t\t\t},\n\t\t\terrorNotice: {\n\t\t\t\tcontainer: document.querySelector('#ult-forgot-password .ult-form__validation'),\n\t\t\t\ttextNode: document.querySelector('#ult-forgot-password .ult-notice-text'),\n\t\t\t},\n\t\t\tformFields: {\n\t\t\t\temail: document.getElementById('ult-forgot-email'),\n\t\t\t\treCAPTCHA: document.querySelector('#ult-forgot-password .ult-form-recaptcha'),\n\t\t\t}\n\t\t}\n\t}\n\n\tget id() {\n\t\treturn 'forgot-password';\n\t}\n\n\t// Define the AJAX action ID\n\tget ajaxAction() {\n\t\treturn 'ult-forgot-password';\n\t}\n\n\tget cssClasses() {\n\t\treturn {\n\t\t\treCAPTCHAerror: 'ult-forgot-password--recaptcha-error',\n\t\t\tloading: 'ult-forgot-password--loading',\n\t\t\tdisabled: 'ult-forgot-password--disabled',\n\t\t\tbtnLoading: 'ult-form__submit-btn--loading',\n\t\t\tbtnDisabled: 'ult-form__submit-btn--disabled',\n\t\t\tnoticeHasError: 'ult-form__validation--has-error'\n\t\t};\n\t}\n\n\tget formData() {\n\t\t// Get the form data\n\t\tconst formDataDefault = {\n\t\t\temail: this.$elements.formFields.email.value\n\t\t}\n\n\t\tconst formData = Object.assign({}, formDataDefault, UOToolkitFrontEndLoginFormData);\n\n\t\t// Check if it has a reCAPTCHA\n\t\tif (this.hasReCAPTCHA()) {\n\t\t\tformData['g-recaptcha-response'] = this.getReCAPTCHAResponse();\n\t\t}\n\n\t\t// Check if it has a LearnDash reCAPTCHA\n\t\tif (isDefined(this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha'))) {\n\t\t\tformData.token = this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha').value;\n\t\t}\n\n\t\treturn formData;\n\t}\n\n\tafterValidSubmission(response) {\n\t\t// Show a confirmation message\n\t\tthis.$elements.boxContent.innerHTML = response.message;\n\t}\n}\n\nexport class ResetPassword extends FrontendLogin {\n\tgetElements() {\n\t\t// Get the main elements\n\t\tthis.$elements = {\n\t\t\tcontainer: document.getElementById('ult-reset-password'),\n\t\t\tboxContent: document.querySelector('#ult-reset-password .ult-form__content'),\n\t\t\tmainForm: document.getElementById('ult-reset-password-form'),\n\t\t\tsubmitButton: {\n\t\t\t\tcontainer: document.querySelector('.ult-form__row--submit'),\n\t\t\t\tbutton: document.getElementById('ult-reset-password-submit-btn')\n\t\t\t},\n\t\t\terrorNotice: {\n\t\t\t\tcontainer: document.querySelector('#ult-reset-password .ult-form__validation'),\n\t\t\t\ttextNode: document.querySelector('#ult-reset-password .ult-notice-text'),\n\t\t\t},\n\t\t\tformFields: {\n\t\t\t\tpassword: document.getElementById('ult-reset-new-password'),\n\t\t\t\tpasswordRepeat: document.getElementById('ult-reset-confirm-password'),\n\t\t\t\treCAPTCHA: document.querySelector('#ult-reset-password .ult-form-recaptcha'),\n\t\t\t}\n\t\t}\n\t}\n\n\tget id() {\n\t\treturn 'reset-password';\n\t}\n\n\t// Define the AJAX action ID\n\tget ajaxAction() {\n\t\treturn 'ult-reset-password';\n\t}\n\n\tget cssClasses() {\n\t\treturn {\n\t\t\treCAPTCHAerror: 'ult-reset-password--recaptcha-error',\n\t\t\tloading: 'ult-reset-password--loading',\n\t\t\tdisabled: 'ult-reset-password--disabled',\n\t\t\tbtnLoading: 'ult-form__submit-btn--loading',\n\t\t\tbtnDisabled: 'ult-form__submit-btn--disabled',\n\t\t\tnoticeHasError: 'ult-form__validation--has-error'\n\t\t};\n\t}\n\n\tget formData() {\n\t\t// Get the form data\n\t\tconst formData = {\n\t\t\tpassword: this.$elements.formFields.password.value,\n\t\t\tpasswordRepeat: this.$elements.formFields.passwordRepeat.value,\n\t\t}\n\n\t\t// Check if it has a reCAPTCHA\n\t\tif (this.hasReCAPTCHA()) {\n\t\t\tformData['g-recaptcha-response'] = this.getReCAPTCHAResponse();\n\t\t}\n\n\t\t// Check if it has a LearnDash reCAPTCHA\n\t\tif (isDefined(this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha'))) {\n\t\t\tformData.token = this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha').value;\n\t\t}\n\n\t\treturn formData;\n\t}\n\n\tafterValidSubmission(response) {\n\t\t// Show a confirmation message\n\t\tthis.$elements.boxContent.innerHTML = response.message;\n\t}\n}\n\n/**\n * This class handles the login functionality when it's inside a dialog\n */\nexport class FrontendLogin_Modal {\n\tconstructor() {\n\t\t// Check if we should invoke the callbacks\n\t\tif (this.shouldInvokeMethods()) {\n\t\t\t// Get elements\n\t\t\tthis.getElements();\n\n\t\t\t// Handle clicks to the buttons to show the sections\n\t\t\tthis.handleContainerVisiblity();\n\t\t}\n\t\telse {\n\t\t\t// Check if the current page is the Login page\n\t\t\t// That would mean that the modal is not defined here\n\t\t\t// We want to reload the page when they click on the \"Login\" link\n\t\t\tif (\n\t\t\t\tisDefined(UncannyToolkit.frontendLogin) &&\n\t\t\t\tisDefined(UncannyToolkit.frontendLogin.currentPageIsLoginPage) &&\n\t\t\t\tUncannyToolkit.frontendLogin.currentPageIsLoginPage\n\t\t\t) {\n\t\t\t\tthis.handleModalInLoginPage();\n\t\t\t}\n\t\t}\n\t}\n\n\tgetElements() {\n\t\tthis.$elements = {\n\t\t\tcontainer: document.getElementById('ult-login-modal'),\n\t\t\tloginShowButton: document.getElementById('ult-form-footer-login'),\n\t\t\tforgotPasswordShowButton: document.getElementById('ult-form-footer-forgot-password'),\n\t\t}\n\t}\n\n\thandleContainerVisiblity() {\n\t\tif (isDefined(this.$elements.forgotPasswordShowButton)) {\n\t\t\t// Listen clicks to the button to show the Forgot Password section\n\t\t\tthis.$elements.forgotPasswordShowButton.addEventListener('click', (event) => {\n\t\t\t\t// Prevent the event, we don't want to send them to another page\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t// Show the Forgot Password form\n\t\t\t\tthis.showSection('forgot-password');\n\t\t\t});\n\t\t}\n\n\t\tif (isDefined(this.$elements.loginShowButton)) {\n\t\t\t// Listen clicks to the button to show the Log in section\n\t\t\tthis.$elements.loginShowButton.addEventListener('click', (event) => {\n\t\t\t\t// Prevent the event, we don't want to send them to another page\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t// Show the Forgot Password form\n\t\t\t\tthis.showSection('login');\n\t\t\t});\n\t\t}\n\t}\n\n\tshowSection(section = 'login') {\n\t\t// Remove both classes. We'll add the correct one later\n\t\tthis.$elements.container.classList.remove('ult-login-modal--login', 'ult-login-modal--forgot-password');\n\n\t\t// Show and hide sections\n\t\tif (section == 'login') {\n\t\t\tthis.$elements.container.classList.add('ult-login-modal--login');\n\t\t}\n\t\telse if (section == 'forgot-password') {\n\t\t\tthis.$elements.container.classList.add('ult-login-modal--forgot-password');\n\t\t}\n\t}\n\n\tshouldInvokeMethods() {\n\t\treturn (\n\t\t\tisDefined(UncannyToolkit.frontendLogin) &&\n\t\t\tisDefined(UncannyToolkit.frontendLogin.currentPageIsLoginPage) &&\n\t\t\t!UncannyToolkit.frontendLogin.currentPageIsLoginPage &&\n\t\t\tisDefined(UncannyToolkit.modals['ult-login'])\n\t\t);\n\t}\n\n\thandleModalInLoginPage() {\n\t\tevents.on('click', `[href*=\"ult-modal-open----ult-login\"]`, (event) => {\n\t\t\t// Prevent default\n\t\t\tevent.preventDefault();\n\n\t\t\t// Reload the page\n\t\t\tlocation.reload();\n\t\t});\n\t}\n}\n\nexport class Login2ndFactor {\n\tid = 'login-2nd-factor';\n\n\tconstructor() {\n\t\t// Check if the form exists\n\t\tif (this.$form) {\n\t\t\t// Listen submission\n\t\t\tthis.listenSubmission();\n\t\t}\n\t}\n\n\t/**\n\t * Listens the submission of the form\n\t */\n\tlistenSubmission() {\n\t\tthis.$form.addEventListener('submit', (event) => {\n\t\t\t// Add loading animation to the button\n\t\t\tthis.setLoadingStatus(true);\n\n\t\t\t// Disable button\n\t\t\tthis.setButtonDisableStatus(true);\n\t\t});\n\t}\n\n\t/**\n\t * Sets the loading status\n\t * \n\t * @param {Boolean} setAsLoading TRUE if it should show the loading animation\n\t */\n\tsetLoadingStatus(setAsLoading = true) {\n\t\t// Check if we have to add a loading animation to the submit button\n\t\tif (UncannyToolkit.frontendLogin.ui.showAnimationOnSubmit) {\n\t\t\t// Check if we have to enable the loading status\n\t\t\tif (setAsLoading) {\n\t\t\t\t// Add the loading animation\n\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.loading);\n\t\t\t\tthis.$elements.submitButton.container.classList.add(this.cssClasses.btnLoading);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/set-loading`, {\n\t\t\t\t\tisLoading: true\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Remove the loading status\n\t\t\t\tthis.$elements.container.classList.remove(this.cssClasses.loading);\n\t\t\t\tthis.$elements.submitButton.container.classList.remove(this.cssClasses.btnLoading);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/set-loading`, {\n\t\t\t\t\tisLoading: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sets the disabled status\n\t * \n\t * @param {Boolean} setAsDisabled TRUE if it should disable the form\n\t */\n\tsetButtonDisableStatus(setAsDisabled = true) {\n\t\t// Check if we have to disable the submit button\n\t\tif (UncannyToolkit.frontendLogin.ui.buttonDisabledOnSubmit) {\n\t\t\t// Check if we have to set it as disabled\n\t\t\tif (setAsDisabled) {\n\t\t\t\t// Disable the submit button\n\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.disabled);\n\t\t\t\tthis.$elements.submitButton.container.classList.add(this.cssClasses.btnDisabled);\n\t\t\t\tthis.$elements.submitButton.button.setAttribute('disabled', true);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/disable-button`, {\n\t\t\t\t\tdisable: true\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Disable the submit button\n\t\t\t\tthis.$elements.container.classList.remove(this.cssClasses.disabled);\n\t\t\t\tthis.$elements.submitButton.container.classList.remove(this.cssClasses.btnDisabled);\n\t\t\t\tthis.$elements.submitButton.button.removeAttribute('disabled');\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/disable-button`, {\n\t\t\t\t\tdisable: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns the CSS classes used in the elements of this form\n\t * \n\t * @return {Object} CSS classes\n\t */\n\tget cssClasses() {\n\t\treturn {\n\t\t\tloading: 'ult-login--loading',\n\t\t\tdisabled: 'ult-login--disabled',\n\t\t\tbtnLoading: 'ult-form__submit-btn--loading',\n\t\t\tbtnDisabled: 'ult-form__submit-btn--disabled',\n\t\t};\n\t}\n\n\t/**\n\t * Returns the main elements of the form\n\t * \n\t * @return {Object} Object of Nodes\n\t */\n\tget $elements() {\n\t\treturn {\n\t\t\tcontainer: document.getElementById('ult-login'),\n\t\t\tsubmitButton: {\n\t\t\t\tcontainer: this.$form.querySelector('.submit'),\n\t\t\t\tbutton: this.$form.querySelector('.submit input[type=\"submit\"]')\n\t\t\t},\n\t\t}\n\t}\n\n\t/**\n\t * Returns the main form\n\t * \n\t * @return {Node} The form\n\t */\n\tget $form() {\n\t\treturn document.getElementById('ult-2fa-validation-form--templated');\n\t}\n}","import {\n\tisDefined\n} from './_utilities';\n\n/**\n * Render reCAPTCHAs\n */\n\nclass reCAPTCHAs {\n\tconstructor(){\n\t\t// Get elements\n\t\tthis.whenReady(() => {\n\t\t\t// Render the reCAPTCHAs\n\t\t\tthis.renderReCaptchas();\n\t\t});\n\t}\n\n\twhenReady( callback ){\n\t\t// Define a function that will be invoked once Google reCAPTCHA\n\t\t// is ready to use\n\t\twindow.UncannyToolkit.reCaptchaInit = () => {\n\t\t\t// Invoke the callback\n\t\t\tcallback();\n\t\t}\n\t}\n\n\trenderReCaptchas(){\n\t\t// Get containers\n\t\tconst $reCAPTCHAs = document.querySelectorAll( '.ult-form-recaptcha' );\n\n\t\t// Iterate the elements\n\t\t[].forEach.call( $reCAPTCHAs, ( $reCAPTCHA ) => {\n\t\t\t// Render the reCAPTCHA\n\t\t\tconst id = window.grecaptcha.render( $reCAPTCHA, {\n\t\t\t\tsitekey:  $reCAPTCHA.getAttribute( 'data-sitekey' ),\n\t\t\t\tcallback: $reCAPTCHA.getAttribute( 'data-callback' )\n\t\t\t});\n\n\t\t\t// Add the ID to the element so we can get the correct\n\t\t\t// validation token later\n\t\t\t$reCAPTCHA.setAttribute( 'data-id', id );\n\t\t});\n\t}\n}\n\nexport default reCAPTCHAs;","const events = require( 'eventslibjs' );\n\nimport {\n\tfade,\n\tdelegateEvent,\n\tisEmpty,\n\tisDefined\n} from './_utilities';\n\nclass Modals {\n\tconstructor(){\n\t\t// Create an array to save the IDs of all the modals\n\t\t// on this page\n\t\tthis.allModals = [];\n\n\t\t// Create a property in the main global object\n\t\t// to save the modals\n\t\tUncannyToolkit.modals = {};\n\n\t\t// Get elements\n\t\tthis.getElements();\n\n\t\t// Initialize modals\n\t\tthis.createModals();\n\t}\n\n\tgetElements(){\n\t\tthis.$elements = {\n\t\t\tmodals: document.querySelectorAll( '.ult-modal' )\n\t\t}\n\t}\n\n\tcreateModals(){\n\t\t// Itearate the modals (if any)\n\t\t[].forEach.call( this.$elements.modals, ( $modal ) => {\n\t\t\t// Get the modal ID\n\t\t\tconst modalID = isDefined( $modal.getAttribute( 'data-id' ) ) ? $modal.getAttribute( 'data-id' ) : '';\n\n\t\t\t// Check if there isn't already a modal with that ID\n\t\t\tif ( ! this.allModals.includes( modalID ) ){\n\t\t\t\t// Then create the modal\n\t\t\t\tlet modal = new Modal( $modal );\n\n\t\t\t\t// And save the ID\n\t\t\t\tthis.allModals.push( modalID );\n\n\t\t\t\t// Save the modal in the main global variable\n\t\t\t\tUncannyToolkit.modals[ modalID ] = modal;\n\t\t\t}\n\t\t});\n\t}\n}\n\nclass Modal {\n\tconstructor( $modalContent ){\n\t\t// Get the modal data\n\t\tthis.getModalData( $modalContent );\n\n\t\t// Render the modal\n\t\tthis.renderModal( $modalContent );\n\n\t\t// Listen clicks to containers that are trying to open the modal\n\t\tthis.handleModalOpen();\n\n\t\t// Listen clicks outside the modal box\n\t\tthis.handleClickOutsideTheModal();\n\t}\n\n\tgetModalData( $modalContent ){\n\t\t// Get the main modal data like ID, title and the parameter\n\t\t// that defines whether it should have the \"Discard\" button\n\t\tthis.modalData = {\n\t\t\tid:         isDefined( $modalContent.getAttribute( 'data-id' ) ) ? $modalContent.getAttribute( 'data-id' ) : '',\n\t\t\ttitle:      isDefined( $modalContent.getAttribute( 'data-title' ) ) ? $modalContent.getAttribute( 'data-title' ) : '',\n\t\t\tbtnDismiss: isDefined( $modalContent.getAttribute( 'data-btn-dismiss' ) ) ? !! parseInt( $modalContent.getAttribute( 'data-btn-dismiss' ) ) : true,\n\t\t\tdimBackground: isDefined( $modalContent.getAttribute( 'data-dim-background' ) ) ? !! parseInt( $modalContent.getAttribute( 'data-dim-background' ) ) : true,\n\t\t}\n\t}\n\n\trenderModal( $modalContent ){\n\t\t// Create the modal\n\t\tconst $modal = document.createElement( 'div' );\n\n\t\t// Set the element ID\n\t\t$modal.id = `ult-modal-container-${ this.modalData.id }`;\n\n\t\t// Add class to the main container\n\t\t$modal.classList.add( 'ult-modal-container' );\n\n\t\t// Set the data-id attribute\n\t\t$modal.setAttribute( 'data-id', this.modalData.id );\n\n\t\t// Set the children\n\t\t$modal.innerHTML = `\n\t\t\t<div class=\"ult-modal__inside\">\n\t\t\t\t<div class=\"ult-modal-box\">\n\t\t\t\t\t${ ! isEmpty( this.modalData.title ) ? `\n\t\t\t\t\t\t<div class=\"ult-modal-box-header\">\n\t\t\t\t\t\t\t<h2>${ this.modalData.title }</h2>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t` : '' }\n\n\t\t\t\t\t<div class=\"ult-modal-box-content\"></div>\n\n\t\t\t\t\t${ this.modalData.btnDismiss ? `\n\t\t\t\t\t\t<div class=\"ult-modal-box-footer\">\n\t\t\t\t\t\t\t<button class=\"ult-modal-box-footer__dismiss\">\n\t\t\t\t\t\t\t\t${ UncannyToolkit.i18n.dismiss }\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t` : '' }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\t// Add the modal content\n\t\t$modal.querySelector( '.ult-modal-box-content' ).appendChild( $modalContent );\n\n\t\t// Add the modal to the end of the document\n\t\tdocument.body.appendChild( $modal );\n\n\t\t// Save the main elements\n\t\tthis.$elements = {\n\t\t\tcontainer: $modal,\n\t\t\tbox: $modal.querySelector( '.ult-modal-box' ),\n\t\t\tcontent: $modal.querySelector( '.ult-modal-box-content .ult-modal' )\n\t\t}\n\n\t\t// Check if it has the dismiss button\n\t\tif ( this.modalData.btnDismiss ){\n\t\t\t// Get the dismiss button\n\t\t\tthis.$elements.dismissBtn = $modal.querySelector( '.ult-modal-box-footer__dismiss' );\n\n\t\t\t// Add the event listener\n\t\t\tthis.handleDismissButton();\n\t\t}\n\t}\n\n\thandleModalOpen(){\n\t\t// Listen clicks to the document, but invoke the callback only if the\n\t\t// clicked element matches one of the following selectors:\n\t\t// 1. .ult-modal-open[data-id=\"${ this.modalData.id }\"]\n\t\t// 2. [class*=\"ult-modal-open----${ this.modalData.id }\"]\n\t\t// 3. [href*=\"ult-modal-open----${ this.modalData.id }\"]\n\t\tevents.on( 'click', `.ult-modal-open[data-id=\"${ this.modalData.id }\"], [class*=\"ult-modal-open----${ this.modalData.id }\"], [href*=\"ult-modal-open----${ this.modalData.id }\"]`, ( event ) => {\n\t\t\t// Prevent default\n\t\t\tevent.preventDefault();\n\n\t\t\t// Show the modal\n\t\t\tthis.showModal(); \n\t\t});\n\t}\n\n\thandleDismissButton(){\n\t\t// Listen clicks to the dismiss button\n\t\tthis.$elements.dismissBtn.addEventListener( 'click', () => {\n\t\t\t// Hide the modal\n\t\t\tthis.hideModal();\n\t\t});\n\t}\n\n\thandleClickOutsideTheModal(){\n\t\t// Listen clicks to the while modal container\n\t\tthis.$elements.container.addEventListener( 'mouseup', ( event ) => {\n            // Set the targetted container\n            const $container = this.$elements.box;\n\n            if ( ( $container !== event.target ) && ! $container.contains( event.target ) ){\n                // Hide modal\n                this.hideModal();\n            }\n        });\n\t}\n\n\tsetLoading( isLoading = true ){\n\t\t// Check if we have to set the loading class\n\t\tif ( isLoading ){\n\t\t\tthis.$elements.container.classList.add( 'ult-modal-container--loading' );\n\t\t}\n\t\telse {\n\t\t\t// Remove the loading class\n\t\t\tthis.$elements.container.classList.remove( 'ult-modal-container--loading' );\n\t\t}\n\t}\n\n\tsetContent( HTMLcontent = '' ){\n\t\t// Set the content\n\t\tthis.$elements.content.innerHTML = HTMLcontent;\n\t}\n\n\tshowModal(){\n\t\t// Show the modal\n\t\tfade( 'in', this.$elements.container );\n\t\tthis.$elements.container.classList.add( 'ult-modal-container--open' );\n\n\t\t// Add class to the body element, so the user can use it\n\t\t// to change other stuff\n\t\tdocument.body.classList.add( 'ult-modals--open' );\n\n\t\t// Check if we have to dim the background\n\t\tif ( this.modalData.dimBackground ){\n\t\t\t// Add class to dim the background\n\t\t\tdocument.body.classList.add( 'ult-modals--dim-background' );\n\t\t}\n\t}\n\n\thideModal(){\n\t\t// Hide the modal\n\t\tfade( 'out', this.$elements.container, () => {\n\t\t\t// Hide the modal\n\t\t\tthis.$elements.container.classList.remove( 'ult-modal-container--open' );\n\n\t\t\t// Remove class from the body element\n\t\t\tdocument.body.classList.remove( 'ult-modals--open' );\n\n\t\t\t// Remove the class to dim the background\n\t\t\tdocument.body.classList.remove( 'ult-modals--dim-background' );\n\t\t});\n\t}\n}\n\nexport default Modals;","// Core login system modules\nimport {\n    Login,\n    ForgotPassword,\n    ResetPassword,\n    Login2ndFactor,\n    FrontendLogin_Modal\n} from './js/frontend-login';\n\n// Two-factor authentication redirect handler\nimport UltimateLogin2FARedirect from './js/wp-2fa-redirect';\n\n// Global utility modules\nimport reCAPTCHAs from './js/recaptcha';\nimport Modals from './js/dialog';\n\n// Import main stylesheet\nimport './scss/main.scss';\n\n// Do on DOM ready\ndocument.addEventListener('DOMContentLoaded', () => {\n    // reCAPTCHA (global module)\n    new reCAPTCHAs();\n\n    // Modals (global module)\n    new Modals();\n\n    // Frontend Login\n    new Login();\n    new ForgotPassword();\n    new ResetPassword();\n    new Login2ndFactor();\n\n    // Make 2FA redirect handler globally available\n    window.UltimateLogin2FARedirect = UltimateLogin2FARedirect;\n\n    // Exceptions for the login form when\n    // it's used on a modal\n    new FrontendLogin_Modal();\n});\n"],"names":["UltimateLogin2FARedirect","_classCallCheck","key","value","response","data","requires_redirect","redirect_url","window","location","href","module","exports","e","Element","prototype","closest","t","n","this","document","ownerDocument","querySelectorAll","o","length","item","parentElement","g","r","i","c","f","type","forEach","target","selector","documentElement","indexOf","contains","callback","on","split","trim","addEventListener","push","off","removeEventListener","toString","splice","once","get","hasOwnProperty","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","call","getter","__esModule","d","a","definition","Object","defineProperty","enumerable","globalThis","Function","obj","prop","isDefined","variable","isEmpty","Array","isArray","isObject","keys","fade","element","arguments","fadeClass","concat","classList","add","setTimeout","remove","triggerEvent","eventId","event","CustomEvent","detail","dispatchEvent","eye","PasswordField","$field","nextSibling","nextElementSibling","cssClasses","passwordVisibilityToggle","setupParentPositioning","addFieldPadding","addEyeIcon","ensureFieldEditable","setupFocusHandlers","parent","parentNode","getComputedStyle","position","style","currentPadding","paddingRight","parseInt","_this","$eyeIcon","createElement","innerHTML","iconEye","insertBefore","getAttribute","setAttribute","_this2","removeAttribute","readOnly","disabled","events","require","FrontendLogin","getElements","shouldInvokeMethods","validateFormSubmission","handleReCaptchaChanges","_createClass","$elements","mainForm","onsubmit","canSubmit","hasReCAPTCHA","isCaptchaChecked","container","reCAPTCHAerror","setError","UncannyToolkit","frontendLogin","i18n","checkReCaptcha","console","error","id","isValid","submitForm","preventDefault","setLoadingStatus","setButtonDisableStatus","handleAJAX","action","onSuccess","onFail","options","_objectSpread","includeNonce","nonce","ajax","fetch","url","method","headers","body","URLSearchParams","then","ok","redirected","success","code","json","Error","generic","AJAXRequest","ajaxAction","formData","afterValidSubmission","message","resetReCAPTCHA","integrity","shouldPreventConcurrentLogin","preventConcurrentLogin","handleResponse","isUsingLearnDashReCaptcha","hasAjaxEnabled","handleLearnDashReCaptcha","hasLearnDashReCaptchField","submit","setAsLoading","ui","showAnimationOnSubmit","loading","submitButton","btnLoading","isLoading","setAsDisabled","buttonDisabledOnSubmit","btnDisabled","button","disable","errorNotice","noticeHasError","textNode","textContent","_this3","reCaptcha","correct","formFields","reCAPTCHA","grecaptcha","getResponse","reset","modals","getReCAPTCHAResponse","_this4","ready","execute","LD_TP","site_key","token","insertAdjacentHTML","hasField","querySelector","Login","_FrontendLogin","_inherits","_super","_createSuper","_this5","password","getElementById","getElementsByClassName","email","redirectTo","rememberMe","formDataDefault","assign","UOToolkitFrontEndLoginFormData","checked","uo_is_login_modal","_response$twoFactor","twoFactor","_meta","enabled","reload","ForgotPassword","_FrontendLogin2","_super2","apply","boxContent","ResetPassword","_FrontendLogin3","_super3","passwordRepeat","FrontendLogin_Modal","handleContainerVisiblity","currentPageIsLoginPage","handleModalInLoginPage","loginShowButton","forgotPasswordShowButton","_this6","showSection","section","Login2ndFactor","$form","listenSubmission","_this7","reCAPTCHAs","whenReady","renderReCaptchas","reCaptchaInit","$reCAPTCHAs","$reCAPTCHA","render","sitekey","Modals","allModals","createModals","$modal","modalID","includes","modal","Modal","$modalContent","getModalData","renderModal","handleModalOpen","handleClickOutsideTheModal","modalData","title","btnDismiss","dimBackground","dismiss","appendChild","box","content","dismissBtn","handleDismissButton","showModal","hideModal","$container","HTMLcontent"],"sourceRoot":""}
  • uncanny-learndash-toolkit/tags/3.8.0.1/uncanny-learndash-toolkit.php

    r3395254 r3407115  
    1010 * License:             GPLv3
    1111 * License URI:         https://www.gnu.org/licenses/gpl-3.0.html
    12  * Version:             3.8.0
     12 * Version:             3.8.0.1
    1313 * Requires at least:   5.8
    1414 * Requires PHP:        7.4
     
    2323     *
    2424     */
    25     define( 'UNCANNY_TOOLKIT_VERSION', '3.8.0' );
     25    define( 'UNCANNY_TOOLKIT_VERSION', '3.8.0.1' );
    2626}
    2727
  • uncanny-learndash-toolkit/tags/3.8.0.1/vendor/composer/installed.php

    r3395254 r3407115  
    44        'pretty_version' => 'dev-master',
    55        'version' => 'dev-master',
    6         'reference' => 'd2449199d28588d66a806459f39b46d07cff258e',
     6        'reference' => '43269d512f1ae14718f32a2bf34d0fd4207ab2e2',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
     
    1414            'pretty_version' => 'dev-master',
    1515            'version' => 'dev-master',
    16             'reference' => 'd2449199d28588d66a806459f39b46d07cff258e',
     16            'reference' => '43269d512f1ae14718f32a2bf34d0fd4207ab2e2',
    1717            'type' => 'wordpress-plugin',
    1818            'install_path' => __DIR__ . '/../../',
  • uncanny-learndash-toolkit/trunk/languages/uncanny-learndash-toolkit.pot

    r3395254 r3407115  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Uncanny Toolkit for LearnDash 3.8.0\n"
     5"Project-Id-Version: Uncanny Toolkit for LearnDash 3.8.0.1\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/uncanny-learndash-toolkit\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2025-11-13T12:27:50+00:00\n"
     12"POT-Creation-Date: 2025-12-01T17:39:59+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
  • uncanny-learndash-toolkit/trunk/readme.txt

    r3395257 r3407115  
    55Tested up to: 6.8.3
    66Requires PHP: 7.4
    7 Stable tag: 3.8.0
     7Stable tag: 3.8.0.1
    88License: This plugin is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or any later version. Uncanny Toolkit for LearnDash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Uncanny Toolkit for LearnDash. If not, see https://www.gnu.org/licenses/gpl-3.0.html.
    99License URI: https://www.gnu.org/licenses/gpl-3.0.html
     
    105105== Changelog ==
    106106
    107 = 3.8.0 [2025-11-13] =
     107= 3.8.0.1 [2025-12-01] =
     108
     109*Fixed:*
     110
     111* Front End Login - Resolved an issue where the password field was not working properly on iPhones #464
     112
     113= 3.8.0 [2025-11-11] =
    108114
    109115**Added** 
  • uncanny-learndash-toolkit/trunk/src/assets/frontend/dist/bundle.min.css

    r3395254 r3407115  
    1 .ult--fade-in{animation:ult_fadein .3s}.ult--fade-out{animation:ult_fadeout .3s}@keyframes ult_fadein{0%{opacity:0}to{opacity:1}}@keyframes ult_fadeout{0%{opacity:1}to{opacity:0}}@keyframes ult_rotating_centered{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}.ult-box{background:#fff;border:1px solid #dfdfdf;border-radius:3px;box-shadow:0 7px 15px 0 rgba(0,0,0,.1);font-family:-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;padding:20px 25px 25px;position:relative;width:100%}.ult-box,.ult-box *{box-sizing:border-box}.ult-form__description~.ult-form__container,.ult-form__title~.ult-form__container{border-top:1px solid #d8d8d8;margin-top:15px}.ult-form__container form{outline:0}.ult-form__container form p{margin:15px 0 0}.ult-form__container form p:empty{display:none}.ult-form__row{margin-top:15px}.ult-form__field{margin-top:8px}.ult-form__title{color:#202020;font-size:20px;line-height:1.2}.ult-form__description{color:#636363;font-size:15px;line-height:1.3;margin-top:10px}.ult-form-field__header{display:flex}.ult-form-field__label-container{flex:1 1 auto}.ult-form-field__label{color:#404040}.ult-form-field__actions{flex:0 0 auto}.ult-form-field__action{color:#0790e8;font-size:14px;text-decoration:none}.ult-form-password-wrapper,.ult-form__container :not(.ult-form-password-wrapper)>input[type=password],.ult-form__container :not(.ult-form-password-wrapper)>input[type=tel],.ult-form__container :not(.ult-form-password-wrapper)>input[type=text],:not(.ult-form-password-wrapper)>.ult-form__input{background:var(--ult-form-field-background,#fff);border:1px solid var(--ult-form-field-border-color,#c1c5c8);border-radius:var(--ult-form-field-border-radius,8px);box-shadow:var(--ult-form-field-box-shadow,0 2px 5px 0 rgba(0,0,0,.1));color:var(--ult-form-field-color,#404040);display:block;font-family:inherit;font-size:inherit;line-height:1.3;margin-top:8px;outline:none;padding:var(--ult-form-field-padding,8px 10px);transition:border .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.ult-form-password-wrapper:hover,.ult-form__container :not(.ult-form-password-wrapper)>input[type=password]:hover,.ult-form__container :not(.ult-form-password-wrapper)>input[type=tel]:hover,.ult-form__container :not(.ult-form-password-wrapper)>input[type=text]:hover,:not(.ult-form-password-wrapper)>.ult-form__input:hover{border-color:var(--ult-form-field-hover-border-color,#b1b5b7)}.ult-form-password-wrapper.ult-form-password-wrapper--focus,.ult-form-password-wrapper:focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=password].ult-form-password-wrapper--focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=password]:focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=tel].ult-form-password-wrapper--focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=tel]:focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=text].ult-form-password-wrapper--focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=text]:focus,:not(.ult-form-password-wrapper)>.ult-form__input.ult-form-password-wrapper--focus,:not(.ult-form-password-wrapper)>.ult-form__input:focus{border-color:var(--ult-form-field-focus-border-color,#0790e8);box-shadow:var(--ult-form-field-focus-box-shadow,0 0 0 .2rem rgba(7,144,232,.2))}.ult-form-password-wrapper{align-items:center;display:flex;gap:5px}.ult-form-password-wrapper input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0!important;box-shadow:none!important;flex:1 1 auto;font-family:inherit!important;font-size:inherit!important;margin:0!important;outline:0!important;padding:0!important}.ult-form-password-wrapper input::-ms-clear,.ult-form-password-wrapper input::-ms-reveal{display:none}.ult-form-password-wrapper input::-webkit-credentials-auto-fill-button,.ult-form-password-wrapper input::-webkit-credentials-auto-fill-button:active,.ult-form-password-wrapper input::-webkit-credentials-auto-fill-button:hover{display:none!important;pointer-events:none!important;visibility:hidden!important}.ult-form-password-wrapper input::-webkit-textfield-decoration-container{display:none!important}.ult-form-password-wrapper input::-moz-textfield-decoration-container{display:none!important}.ult-form-password-wrapper-eye-toggle{align-items:center;color:#7f7f7f;cursor:pointer;display:flex;flex:0 0 auto;height:20px;justify-content:center;width:20px}.ult-checkbox{width:100%}.ult-checkbox__container{cursor:pointer;display:block;position:relative;transition:opacity .15s ease-in-out}.ult-checkbox__hidden-input{display:none}.ult-checkbox .ult-checkbox__fake-input{border:1px solid #afafaf;border-radius:8px;box-shadow:0 2px 5px 0 rgba(0,0,0,.1);box-sizing:border-box;height:16px;position:relative;transition:border .15s ease-in-out;width:16px}.ult-checkbox .ult-checkbox__container:hover .ult-checkbox__fake-input{border-color:#979797}.ult-checkbox .ult-checkbox__fake-input:after{content:"";display:block;opacity:0;position:absolute;transition:all .15s ease-in-out}.ult-checkbox .ult-checkbox__hidden-input:checked~.ult-checkbox__fake-input:after{opacity:1}.ult-checkbox .ult-checkbox__container .ult-checkbox__fake-input:after{border:solid #0790e8;border-width:0 3px 3px 0;height:7px;left:4px;top:1px;transform:rotate(45deg);width:3px}.ult-checkbox .checkbox--primary:checked~.ult-checkbox__fake-input{border-color:#0790e8}.ult-checkbox .checkbox--primary:disabled~.ult-checkbox__fake-input{background:#fff;border:1px solid #b9b9b9;cursor:not-allowed}.ult-checkbox .checkbox--primary:checked:disabled~.ult-checkbox__fake-input{background:#38aece;cursor:not-allowed;opacity:.6}#ult-2fa-validation-form--templated #submit,#ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend],#ult-login-form #ult-login-submit,.ult-form__submit-btn{background:#0790e8;border:1px solid transparent;border-radius:8px;box-shadow:0 2px 5px 0 rgba(0,0,0,.1);cursor:pointer;display:inline-block;font-size:16px;font-weight:400;line-height:1.5;outline:none;padding:8px 15px;position:relative;text-align:center;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,opacity .15s ease-in-out;user-select:none;vertical-align:middle;white-space:nowrap;width:100%}#ult-login p.submit,#ult-login-form .login-submit,.ult-form__row--submit{position:relative}#ult-forgot-password .ult-form__row--submit:not(.ult-form__submit-btn--loading) #ult-forgot-password-submit-btn:focus,#ult-login-form .login-submit:not(.ult-form__submit-btn--loading) #ult-login-submit:focus,.ult-form__submit-btn:not(.ult-form__submit-btn--loading):focus{box-shadow:0 0 0 .2rem rgba(7,144,232,.5)}.ult-form__submit-btn--loading:before{opacity:0;transition:opacity .15s ease-in-out}.ult-form__submit-btn--loading,.ult-form__submit-btn--loading #ult-forgot-password-submit-btn,.ult-form__submit-btn--loading #ult-login-submit,.ult-form__submit-btn--loading #ult-reset-password-submit-btn,.ult-form__submit-btn--loading input[type=submit]{color:transparent!important}.ult-form__submit-btn--loading:before{animation:spin-centered .8s linear infinite;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 512 512' xml:space='preserve' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='m456.433 371.72-27.79-16.045c-7.192-4.152-10.052-13.136-6.487-20.636 25.82-54.328 23.566-118.602-6.768-171.03-30.265-52.529-84.802-86.621-144.76-91.424C262.35 71.922 256 64.953 256 56.649V24.56c0-9.31 7.916-16.609 17.204-15.96 81.795 5.717 156.412 51.902 197.611 123.408 41.301 71.385 43.99 159.096 8.042 232.792-4.082 8.369-14.361 11.575-22.424 6.92z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:contain;content:"";height:18px;left:50%;opacity:1;position:absolute;top:60%;transform:translate(-50%,-50%);transform-origin:0 0;width:18px;z-index:2}.ult-form__submit-btn--disabled{cursor:not-allowed;opacity:.6;pointer-events:none}@-ms-keyframes spin-centered{0%{-ms-transform:rotate(0deg) translate(-50%,-50%)}to{-ms-transform:rotate(1turn) translate(-50%,-50%)}}@-moz-keyframes spin-centered{0%{-moz-transform:rotate(0deg) translate(-50%,-50%)}to{-moz-transform:rotate(1turn) translate(-50%,-50%)}}@-webkit-keyframes spin-centered{0%{-webkit-transform:rotate(0deg) translate(-50%,-50%)}to{-webkit-transform:rotate(1turn) translate(-50%,-50%)}}@keyframes spin-centered{0%{transform:rotate(0deg) translate(-50%,-50%)}to{transform:rotate(1turn) translate(-50%,-50%)}}.ult-form__row--remember-me{align-items:center;display:flex}.ult-form__row--remember-me .ult-form__field{flex:0 0 auto;margin:0 8px 0 0}.ult-form__row--remember-me .ult-form-field__header{flex:1 1 auto}.ult-form__row--remember-me .ult-form-field__label{color:#636363;cursor:pointer;user-select:none}.ult-form__validation{display:none;margin-top:15px}.ult-form__validation--has-error{display:block}.ult-form__validation:first-child{margin-bottom:15px;margin-top:0}.ult-form__validation .ult-notice p{margin:0}.ult-form__footer{border-top:1px solid #d8d8d8;margin-top:25px;padding-top:15px;text-align:center}.ult-form__footer a{color:#0790e8;text-decoration:none}.ult-form__container .two-factor-error-notice{margin-top:20px}.ult-form__container .uo-toolkit-2fa-footer{align-content:center;display:flex;flex-wrap:wrap;justify-content:space-evenly;margin-top:20px}.ult-form__container .uo-toolkit-2fa-footer__backto-home,.ult-form__container .uo-toolkit-2fa-footer__backup-codes{text-align:center}.ult-form__container .uo-toolkit-2fa-footer a{color:#0790e8;text-decoration:none}.ult-notice{border:1px solid #d8d8d8;border-radius:3px;color:#737373;line-height:1.3;padding:15px;text-align:center}.ult-notice--error{background:#fceded}.ult-notice--success{background:#edfcef}.ult-modal{display:none}.ult-modal-container .ult-modal{display:block}.ult-modal-container{display:none;height:100%;left:0;position:fixed;top:0;width:100%;z-index:100000}.ult-modal-container--open{display:block}.ult-modal__inside{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.ult-modal-box{background:#fff;border-radius:8px;box-shadow:0 4px 16px 0 rgba(0,0,0,.2);display:flex;flex-direction:column;max-height:calc(100vh - 40px);max-width:565px;overflow-y:auto;overflow:hidden;position:relative;width:calc(100% - 40px)}.ult-modal-box:before{background:#fff;border-radius:8px;left:0;top:0;z-index:10}.ult-modal-box:after,.ult-modal-box:before{content:"";height:0;opacity:0;position:absolute;transition:opacity .3s ease-in-out;width:0}.ult-modal-box:after{border-radius:50%;left:50%;top:50%;user-select:none;z-index:11}.ult-modal-container--loading .ult-modal-box:before{height:100%;opacity:1;width:100%}.ult-modal-container--loading .ult-modal-box:after{animation:ult_rotating_centered 2s linear infinite;border:3px solid transparent;border-top-color:#202020;height:50px;opacity:1;width:50px}.ult-modal--small .ult-modal-box{max-width:385px}.ult-modal--large .ult-modal-box{max-width:750px}.ult-modal-box-header{padding:20px;text-align:center}.ult-modal-box-header h1,.ult-modal-box-header h2,.ult-modal-box-header h3{font-size:30px;font-weight:500;line-height:32px;margin:0;padding:20px 20px 0}.ult-modal-box-content{display:inline-flex;flex:1 1 auto;overflow:hidden;position:relative;width:100%}.ult-modal{font-size:16px;font-weight:400;margin:0;max-height:300px;outline:none;overflow-y:auto;padding:20px 40px;position:relative;width:100%}.ult-modal-box-content__inside::-webkit-scrollbar{background-color:rgba(0,0,0,.09);border-radius:150px;width:10px}.ult-modal-box-content__inside::-webkit-scrollbar-thumb:vertical{background:#afafaf;background-clip:padding-box;border:2px solid transparent;border-radius:150px;min-height:10px}.ult-modal-box-content__br{display:block;height:10px;width:100%}.ult-modal-box-footer{flex:1 1 auto;margin:0 20px 20px;overflow:hidden;padding:20px;text-align:center}.ult-modal-box-footer__dismiss{background:transparent;border:0;border-radius:150px;color:#0077c5;cursor:pointer;display:inline-block;font-size:16px;font-weight:600;line-height:1.1;padding:10px 20px;transition:background .15s ease-in-out}.ult-modal-box-footer__dismiss:hover{background:#dadadc}.ult-modal-box-footer__dismiss:active{background:#c4c4c6}@media screen and (max-width:1000px){.ult-modal-box-header h1,.ult-modal-box-header h2,.ult-modal-box-header h3{font-size:24px;line-height:26px}}body.ult-modals--open{overflow:hidden!important}body.ult-modals--dim-background .ult-modal-container{background:rgba(0,0,0,.4)}#ult-modal-container-ult-login .ult-box{border:0;box-shadow:none;padding:0}#ult-modal-container-ult-login .ult-modal{max-height:680px}.ult-forgot-password--recaptcha-error .g-recaptcha iframe,.ult-login--recaptcha-error .g-recaptcha iframe,.ult-reset-password--recaptcha-error .g-recaptcha iframe{border:1px solid red;border-radius:4px}#ult-login-modal.ult-login-modal--login #ult-login-modal__login{display:block}#ult-login-modal.ult-login-modal--forgot-password #ult-login-modal__login,#ult-login-modal.ult-login-modal--login #ult-login-modal__forgot-password{display:none}#ult-login-modal.ult-login-modal--forgot-password #ult-login-modal__forgot-password{display:block}.uo-modern-ui{--modern-primary:#0073aa;--modern-primary-dark:#005a87;--modern-secondary:#00a0d2;--modern-accent:#ff6900;--modern-surface:#fff;--modern-background:#f8f9fa;--modern-text-primary:#2d3748;--modern-text-secondary:#718096;--modern-border:#e2e8f0;--modern-error:#e53e3e;--modern-success:#38a169;--modern-shadow:0 2px 4px rgba(0,0,0,.1);--modern-shadow-elevated:0 4px 8px rgba(0,0,0,.15);--modern-shadow-focus:0 0 0 3px rgba(0,115,170,.3)}.uo-modern-ui #ult-forgot-password,.uo-modern-ui #ult-login,.uo-modern-ui #ult-reset-password{align-items:center;background:var(--modern-background);display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;justify-content:center;min-height:100vh;padding:20px;position:relative}.uo-modern-ui .ult-box{background:var(--modern-surface);border:1px solid var(--modern-border);border-radius:12px;box-shadow:var(--modern-shadow);box-sizing:border-box;margin-left:auto;margin-right:auto;padding:48px;position:relative;transition:all .3s ease;width:100%}.uo-modern-ui .ult-box:before{background:var(--modern-primary);border-radius:10px 10px 0 0;content:"";height:7px;left:0;position:absolute;right:0;top:0;z-index:1}.uo-modern-ui .ult-box:hover{box-shadow:var(--modern-shadow-elevated)}.uo-modern-ui .ult-form__title{color:var(--modern-primary);font-size:32px;font-weight:700;letter-spacing:-1px;margin-bottom:12px;position:relative;text-align:center}.uo-modern-ui .ult-form__title:after{background:var(--modern-primary);border-radius:2px;bottom:-8px;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:60px}.uo-modern-ui .ult-form__description{color:var(--modern-text-primary);font-size:16px;font-weight:400;line-height:1.6;margin-bottom:40px;text-align:center}.uo-modern-ui .ult-form__container{background:transparent;border-radius:0;box-shadow:none;padding:0}.uo-modern-ui .ult-form__row{margin-bottom:32px;position:relative}.uo-modern-ui .ult-form-field__header{margin-bottom:12px}.uo-modern-ui .ult-form-field__label{display:block;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.uo-modern-ui .ult-form-field__label,.uo-modern-ui label{color:var(--modern-text-primary);font-size:14px;font-weight:600}.uo-modern-ui .ult-form__input{background:var(--modern-surface);border:2px solid var(--modern-border);border-radius:8px;box-sizing:border-box;color:var(--modern-text-primary);font-size:16px;padding:20px 24px;transition:all .3s ease;width:100%}.uo-modern-ui .ult-form__input:focus{border-color:var(--modern-primary);box-shadow:var(--modern-shadow-focus);outline:none}.uo-modern-ui .ult-form__input:hover{border-color:var(--modern-primary)}.uo-modern-ui .ult-form__input::placeholder{color:var(--modern-text-secondary);font-weight:400}.uo-modern-ui #ult-2fa-validation-form--templated #submit,.uo-modern-ui #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend],.uo-modern-ui #ult-forgot-password-submit-btn,.uo-modern-ui #ult-login-form #ult-login-submit,.uo-modern-ui #ult-login-submit,.uo-modern-ui #ult-reset-password-submit-btn,.uo-modern-ui .ult-form__submit-btn{background:var(--modern-primary)!important;border:none!important;border-radius:8px!important;box-shadow:var(--modern-shadow);color:#fff!important;cursor:pointer;font-size:16px!important;font-weight:600!important;letter-spacing:1px;line-height:1.4;margin-top:16px;padding:18px 32px!important;text-transform:uppercase;transition:all .3s ease;width:100%!important}.uo-modern-ui #ult-2fa-validation-form--templated #submit:hover,.uo-modern-ui #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend]:hover,.uo-modern-ui #ult-forgot-password-submit-btn:hover,.uo-modern-ui #ult-login-form #ult-login-submit:hover,.uo-modern-ui #ult-login-submit:hover,.uo-modern-ui #ult-reset-password-submit-btn:hover,.uo-modern-ui .ult-form__submit-btn:hover{background:var(--modern-primary-dark)!important;box-shadow:var(--modern-shadow-elevated);color:#fff!important}.uo-modern-ui #ult-2fa-validation-form--templated #submit:focus,.uo-modern-ui #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend]:focus,.uo-modern-ui #ult-forgot-password-submit-btn:focus,.uo-modern-ui #ult-login-form #ult-login-submit:focus,.uo-modern-ui #ult-login-submit:focus,.uo-modern-ui #ult-reset-password-submit-btn:focus,.uo-modern-ui .ult-form__submit-btn:focus{box-shadow:var(--modern-shadow-focus)!important;outline:none}.uo-modern-ui #ult-2fa-validation-form--templated #submit:active,.uo-modern-ui #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend]:active,.uo-modern-ui #ult-forgot-password-submit-btn:active,.uo-modern-ui #ult-login-form #ult-login-submit:active,.uo-modern-ui #ult-login-submit:active,.uo-modern-ui #ult-reset-password-submit-btn:active,.uo-modern-ui .ult-form__submit-btn:active{transform:translateY(1px)}.uo-modern-ui .ult-form__row--remember{align-items:center;display:flex;margin-bottom:32px}.uo-modern-ui #ult-login-remember{accent-color:var(--modern-primary);border-radius:4px;height:20px;margin-right:12px;width:20px}.uo-modern-ui .ult-form__row--remember label{color:var(--modern-text-primary);cursor:pointer;font-size:14px;font-weight:500;margin:0}.uo-modern-ui .ult-form__footer{border-top:1px solid var(--modern-border);margin-top:40px;padding-top:32px;text-align:center}.uo-modern-ui .ult-form__footer a{border-radius:8px;color:var(--modern-primary);font-size:14px;font-weight:600;padding:8px 16px;position:relative;text-decoration:none;transition:all .3s ease}.uo-modern-ui .ult-form__footer a:before{background:var(--modern-primary);bottom:0;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%);transition:all .3s ease;width:0}.uo-modern-ui .ult-form__footer a:hover{background:rgba(0,115,170,.1);color:var(--modern-primary-dark)}.uo-modern-ui .ult-form__footer a:hover:before{width:80%}.uo-modern-ui .ult-form-footer__forgot-password,.uo-modern-ui .ult-form-footer__login,.uo-modern-ui .ult-form-footer__signup{margin-bottom:16px}.uo-modern-ui .ult-form-footer__forgot-password:last-child,.uo-modern-ui .ult-form-footer__login:last-child,.uo-modern-ui .ult-form-footer__signup:last-child{margin-bottom:0}.uo-modern-ui .ult-notice{border:none;border-radius:8px;font-weight:500;margin-bottom:24px;padding:20px 24px;position:relative}.uo-modern-ui .ult-notice--error{background:rgba(229,62,62,.1);border-left:4px solid var(--modern-error);color:var(--modern-error)}.uo-modern-ui .ult-notice--success{background:rgba(56,161,105,.1);border-left:4px solid var(--modern-success);color:var(--modern-success)}.uo-modern-ui .ult-form__validation{margin-bottom:24px}.uo-modern-ui .ult-form__validation--has-error .ult-form__input{animation:shake .5s ease-in-out;border-color:var(--modern-error)}.uo-modern-ui .ult-form-recaptcha{margin-top:20px}@media(max-width:768px){.uo-modern-ui .ult-box{border-radius:12px;margin:0;padding:32px 24px}.uo-modern-ui .ult-form__title{font-size:28px}.uo-modern-ui .ult-form__input{padding:18px 20px}.uo-modern-ui #ult-forgot-password-submit-btn,.uo-modern-ui #ult-login-submit,.uo-modern-ui #ult-reset-password-submit-btn,.uo-modern-ui .ult-form__submit-btn{padding:16px 24px}}.uo-modern-ui #ult-forgot-password-submit-btn:disabled,.uo-modern-ui #ult-login-submit:disabled,.uo-modern-ui #ult-reset-password-submit-btn:disabled,.uo-modern-ui .ult-form__submit-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.uo-modern-ui #ult-forgot-password-submit-btn:focus,.uo-modern-ui #ult-login-submit:focus,.uo-modern-ui #ult-reset-password-submit-btn:focus,.uo-modern-ui .ult-form__input:focus,.uo-modern-ui .ult-form__submit-btn:focus{outline:none}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.uo-modern-ui .ult-box{animation:slideUp .4s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.uo_loginForm .galogin{margin-top:15px}.uo_loginForm form .login-remember label{align-items:center;display:flex}.uo_loginForm form .login-username input[type=text],.uo_loginForm form .ult-form-password-wrapper{height:40px}.uo_loginForm form .login-password input[type=password]{background:#fff;height:33px}
     1.ult--fade-in{animation:ult_fadein .3s}.ult--fade-out{animation:ult_fadeout .3s}@keyframes ult_fadein{0%{opacity:0}to{opacity:1}}@keyframes ult_fadeout{0%{opacity:1}to{opacity:0}}@keyframes ult_rotating_centered{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}.ult-box{background:#fff;border:1px solid #dfdfdf;border-radius:3px;box-shadow:0 7px 15px 0 rgba(0,0,0,.1);font-family:-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;padding:20px 25px 25px;position:relative;width:100%}.ult-box,.ult-box *{box-sizing:border-box}.ult-form__description~.ult-form__container,.ult-form__title~.ult-form__container{border-top:1px solid #d8d8d8;margin-top:15px}.ult-form__container form{outline:0}.ult-form__container form p{margin:15px 0 0}.ult-form__container form p:empty{display:none}.ult-form__row{margin-top:15px}.ult-form__field{margin-top:8px}.ult-form__title{color:#202020;font-size:20px;line-height:1.2}.ult-form__description{color:#636363;font-size:15px;line-height:1.3;margin-top:10px}.ult-form-field__header{display:flex}.ult-form-field__label-container{flex:1 1 auto}.ult-form-field__label{color:#404040}.ult-form-field__actions{flex:0 0 auto}.ult-form-field__action{color:#0790e8;font-size:14px;text-decoration:none}.ult-form-password-wrapper,.ult-form__container :not(.ult-form-password-wrapper)>input[type=password],.ult-form__container :not(.ult-form-password-wrapper)>input[type=tel],.ult-form__container :not(.ult-form-password-wrapper)>input[type=text],:not(.ult-form-password-wrapper)>.ult-form__input{background:var(--ult-form-field-background,#fff);border:1px solid var(--ult-form-field-border-color,#c1c5c8);border-radius:var(--ult-form-field-border-radius,8px);box-shadow:var(--ult-form-field-box-shadow,0 2px 5px 0 rgba(0,0,0,.1));color:var(--ult-form-field-color,#404040);display:block;font-family:inherit;font-size:inherit;line-height:1.3;margin-top:8px;outline:none;padding:var(--ult-form-field-padding,8px 10px);transition:border .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.ult-form-password-wrapper:hover,.ult-form__container :not(.ult-form-password-wrapper)>input[type=password]:hover,.ult-form__container :not(.ult-form-password-wrapper)>input[type=tel]:hover,.ult-form__container :not(.ult-form-password-wrapper)>input[type=text]:hover,:not(.ult-form-password-wrapper)>.ult-form__input:hover{border-color:var(--ult-form-field-hover-border-color,#b1b5b7)}.ult-form-password-wrapper.ult-form-password-wrapper--focus,.ult-form-password-wrapper:focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=password].ult-form-password-wrapper--focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=password]:focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=tel].ult-form-password-wrapper--focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=tel]:focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=text].ult-form-password-wrapper--focus,.ult-form__container :not(.ult-form-password-wrapper)>input[type=text]:focus,:not(.ult-form-password-wrapper)>.ult-form__input.ult-form-password-wrapper--focus,:not(.ult-form-password-wrapper)>.ult-form__input:focus{border-color:var(--ult-form-field-focus-border-color,#0790e8);box-shadow:var(--ult-form-field-focus-box-shadow,0 0 0 .2rem rgba(7,144,232,.2))}.ult-form-password-wrapper-eye-toggle{align-items:center;background:#fff;border-bottom-right-radius:6px;border-top-right-radius:6px;color:#7f7f7f;cursor:pointer;display:flex;height:37px;justify-content:center;margin-top:16px;padding:8px;pointer-events:auto;position:absolute;right:2px;top:50%;transform:translateY(-50%);width:38px;z-index:10}.ult-checkbox{width:100%}.ult-checkbox__container{cursor:pointer;display:block;position:relative;transition:opacity .15s ease-in-out}.ult-checkbox__hidden-input{display:none}.ult-checkbox .ult-checkbox__fake-input{border:1px solid #afafaf;border-radius:8px;box-shadow:0 2px 5px 0 rgba(0,0,0,.1);box-sizing:border-box;height:16px;position:relative;transition:border .15s ease-in-out;width:16px}.ult-checkbox .ult-checkbox__container:hover .ult-checkbox__fake-input{border-color:#979797}.ult-checkbox .ult-checkbox__fake-input:after{content:"";display:block;opacity:0;position:absolute;transition:all .15s ease-in-out}.ult-checkbox .ult-checkbox__hidden-input:checked~.ult-checkbox__fake-input:after{opacity:1}.ult-checkbox .ult-checkbox__container .ult-checkbox__fake-input:after{border:solid #0790e8;border-width:0 3px 3px 0;height:7px;left:4px;top:1px;transform:rotate(45deg);width:3px}.ult-checkbox .checkbox--primary:checked~.ult-checkbox__fake-input{border-color:#0790e8}.ult-checkbox .checkbox--primary:disabled~.ult-checkbox__fake-input{background:#fff;border:1px solid #b9b9b9;cursor:not-allowed}.ult-checkbox .checkbox--primary:checked:disabled~.ult-checkbox__fake-input{background:#38aece;cursor:not-allowed;opacity:.6}#ult-2fa-validation-form--templated #submit,#ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend],#ult-login-form #ult-login-submit,.ult-form__submit-btn{background:#0790e8;border:1px solid transparent;border-radius:8px;box-shadow:0 2px 5px 0 rgba(0,0,0,.1);cursor:pointer;display:inline-block;font-size:16px;font-weight:400;line-height:1.5;outline:none;padding:8px 15px;position:relative;text-align:center;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,opacity .15s ease-in-out;user-select:none;vertical-align:middle;white-space:nowrap;width:100%}#ult-login p.submit,#ult-login-form .login-submit,.ult-form__row--submit{position:relative}#ult-forgot-password .ult-form__row--submit:not(.ult-form__submit-btn--loading) #ult-forgot-password-submit-btn:focus,#ult-login-form .login-submit:not(.ult-form__submit-btn--loading) #ult-login-submit:focus,.ult-form__submit-btn:not(.ult-form__submit-btn--loading):focus{box-shadow:0 0 0 .2rem rgba(7,144,232,.5)}.ult-form__submit-btn--loading:before{opacity:0;transition:opacity .15s ease-in-out}.ult-form__submit-btn--loading,.ult-form__submit-btn--loading #ult-forgot-password-submit-btn,.ult-form__submit-btn--loading #ult-login-submit,.ult-form__submit-btn--loading #ult-reset-password-submit-btn,.ult-form__submit-btn--loading input[type=submit]{color:transparent!important}.ult-form__submit-btn--loading:before{animation:spin-centered .8s linear infinite;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 512 512' xml:space='preserve' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='m456.433 371.72-27.79-16.045c-7.192-4.152-10.052-13.136-6.487-20.636 25.82-54.328 23.566-118.602-6.768-171.03-30.265-52.529-84.802-86.621-144.76-91.424C262.35 71.922 256 64.953 256 56.649V24.56c0-9.31 7.916-16.609 17.204-15.96 81.795 5.717 156.412 51.902 197.611 123.408 41.301 71.385 43.99 159.096 8.042 232.792-4.082 8.369-14.361 11.575-22.424 6.92z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:contain;content:"";height:18px;left:50%;opacity:1;position:absolute;top:60%;transform:translate(-50%,-50%);transform-origin:0 0;width:18px;z-index:2}.ult-form__submit-btn--disabled{cursor:not-allowed;opacity:.6;pointer-events:none}@-ms-keyframes spin-centered{0%{-ms-transform:rotate(0deg) translate(-50%,-50%)}to{-ms-transform:rotate(1turn) translate(-50%,-50%)}}@-moz-keyframes spin-centered{0%{-moz-transform:rotate(0deg) translate(-50%,-50%)}to{-moz-transform:rotate(1turn) translate(-50%,-50%)}}@-webkit-keyframes spin-centered{0%{-webkit-transform:rotate(0deg) translate(-50%,-50%)}to{-webkit-transform:rotate(1turn) translate(-50%,-50%)}}@keyframes spin-centered{0%{transform:rotate(0deg) translate(-50%,-50%)}to{transform:rotate(1turn) translate(-50%,-50%)}}.ult-form__row--remember-me{align-items:center;display:flex}.ult-form__row--remember-me .ult-form__field{flex:0 0 auto;margin:0 8px 0 0}.ult-form__row--remember-me .ult-form-field__header{flex:1 1 auto}.ult-form__row--remember-me .ult-form-field__label{color:#636363;cursor:pointer;user-select:none}.ult-form__validation{display:none;margin-top:15px}.ult-form__validation--has-error{display:block}.ult-form__validation:first-child{margin-bottom:15px;margin-top:0}.ult-form__validation .ult-notice p{margin:0}.ult-form__footer{border-top:1px solid #d8d8d8;margin-top:25px;padding-top:15px;text-align:center}.ult-form__footer a{color:#0790e8;text-decoration:none}.ult-form__container .two-factor-error-notice{margin-top:20px}.ult-form__container .uo-toolkit-2fa-footer{align-content:center;display:flex;flex-wrap:wrap;justify-content:space-evenly;margin-top:20px}.ult-form__container .uo-toolkit-2fa-footer__backto-home,.ult-form__container .uo-toolkit-2fa-footer__backup-codes{text-align:center}.ult-form__container .uo-toolkit-2fa-footer a{color:#0790e8;text-decoration:none}.ult-notice{border:1px solid #d8d8d8;border-radius:3px;color:#737373;line-height:1.3;padding:15px;text-align:center}.ult-notice--error{background:#fceded}.ult-notice--success{background:#edfcef}.ult-modal{display:none}.ult-modal-container .ult-modal{display:block}.ult-modal-container{display:none;height:100%;left:0;position:fixed;top:0;width:100%;z-index:100000}.ult-modal-container--open{display:block}.ult-modal__inside{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.ult-modal-box{background:#fff;border-radius:8px;box-shadow:0 4px 16px 0 rgba(0,0,0,.2);display:flex;flex-direction:column;max-height:calc(100vh - 40px);max-width:565px;overflow-y:auto;overflow:hidden;position:relative;width:calc(100% - 40px)}.ult-modal-box:before{background:#fff;border-radius:8px;left:0;top:0;z-index:10}.ult-modal-box:after,.ult-modal-box:before{content:"";height:0;opacity:0;position:absolute;transition:opacity .3s ease-in-out;width:0}.ult-modal-box:after{border-radius:50%;left:50%;top:50%;user-select:none;z-index:11}.ult-modal-container--loading .ult-modal-box:before{height:100%;opacity:1;width:100%}.ult-modal-container--loading .ult-modal-box:after{animation:ult_rotating_centered 2s linear infinite;border:3px solid transparent;border-top-color:#202020;height:50px;opacity:1;width:50px}.ult-modal--small .ult-modal-box{max-width:385px}.ult-modal--large .ult-modal-box{max-width:750px}.ult-modal-box-header{padding:20px;text-align:center}.ult-modal-box-header h1,.ult-modal-box-header h2,.ult-modal-box-header h3{font-size:30px;font-weight:500;line-height:32px;margin:0;padding:20px 20px 0}.ult-modal-box-content{display:inline-flex;flex:1 1 auto;overflow:hidden;position:relative;width:100%}.ult-modal{font-size:16px;font-weight:400;margin:0;max-height:300px;outline:none;overflow-y:auto;padding:20px 40px;position:relative;width:100%}.ult-modal-box-content__inside::-webkit-scrollbar{background-color:rgba(0,0,0,.09);border-radius:150px;width:10px}.ult-modal-box-content__inside::-webkit-scrollbar-thumb:vertical{background:#afafaf;background-clip:padding-box;border:2px solid transparent;border-radius:150px;min-height:10px}.ult-modal-box-content__br{display:block;height:10px;width:100%}.ult-modal-box-footer{flex:1 1 auto;margin:0 20px 20px;overflow:hidden;padding:20px;text-align:center}.ult-modal-box-footer__dismiss{background:transparent;border:0;border-radius:150px;color:#0077c5;cursor:pointer;display:inline-block;font-size:16px;font-weight:600;line-height:1.1;padding:10px 20px;transition:background .15s ease-in-out}.ult-modal-box-footer__dismiss:hover{background:#dadadc}.ult-modal-box-footer__dismiss:active{background:#c4c4c6}@media screen and (max-width:1000px){.ult-modal-box-header h1,.ult-modal-box-header h2,.ult-modal-box-header h3{font-size:24px;line-height:26px}}body.ult-modals--open{overflow:hidden!important}body.ult-modals--dim-background .ult-modal-container{background:rgba(0,0,0,.4)}#ult-modal-container-ult-login .ult-box{border:0;box-shadow:none;padding:0}#ult-modal-container-ult-login .ult-modal{max-height:680px}.ult-forgot-password--recaptcha-error .g-recaptcha iframe,.ult-login--recaptcha-error .g-recaptcha iframe,.ult-reset-password--recaptcha-error .g-recaptcha iframe{border:1px solid red;border-radius:4px}#ult-login-modal.ult-login-modal--login #ult-login-modal__login{display:block}#ult-login-modal.ult-login-modal--forgot-password #ult-login-modal__login,#ult-login-modal.ult-login-modal--login #ult-login-modal__forgot-password{display:none}#ult-login-modal.ult-login-modal--forgot-password #ult-login-modal__forgot-password{display:block}.uo-modern-ui{--modern-primary:#0073aa;--modern-primary-dark:#005a87;--modern-secondary:#00a0d2;--modern-accent:#ff6900;--modern-surface:#fff;--modern-background:#f8f9fa;--modern-text-primary:#2d3748;--modern-text-secondary:#718096;--modern-border:#e2e8f0;--modern-error:#e53e3e;--modern-success:#38a169;--modern-shadow:0 2px 4px rgba(0,0,0,.1);--modern-shadow-elevated:0 4px 8px rgba(0,0,0,.15);--modern-shadow-focus:0 0 0 3px rgba(0,115,170,.3)}.uo-modern-ui #ult-forgot-password,.uo-modern-ui #ult-login,.uo-modern-ui #ult-reset-password{align-items:center;background:var(--modern-background);display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;justify-content:center;min-height:100vh;padding:20px;position:relative}.uo-modern-ui .ult-box{background:var(--modern-surface);border:1px solid var(--modern-border);border-radius:12px;box-shadow:var(--modern-shadow);box-sizing:border-box;margin-left:auto;margin-right:auto;padding:48px;position:relative;transition:all .3s ease;width:100%}.uo-modern-ui .ult-box:before{background:var(--modern-primary);border-radius:10px 10px 0 0;content:"";height:7px;left:0;position:absolute;right:0;top:0;z-index:1}.uo-modern-ui .ult-box:hover{box-shadow:var(--modern-shadow-elevated)}.uo-modern-ui .ult-form__title{color:var(--modern-primary);font-size:32px;font-weight:700;letter-spacing:-1px;margin-bottom:12px;position:relative;text-align:center}.uo-modern-ui .ult-form__title:after{background:var(--modern-primary);border-radius:2px;bottom:-8px;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:60px}.uo-modern-ui .ult-form__description{color:var(--modern-text-primary);font-size:16px;font-weight:400;line-height:1.6;margin-bottom:40px;text-align:center}.uo-modern-ui .ult-form__container{background:transparent;border-radius:0;box-shadow:none;padding:0}.uo-modern-ui .ult-form__row{margin-bottom:32px;position:relative}.uo-modern-ui .ult-form-field__header{margin-bottom:12px}.uo-modern-ui .ult-form-field__label{display:block;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.uo-modern-ui .ult-form-field__label,.uo-modern-ui label{color:var(--modern-text-primary);font-size:14px;font-weight:600}.uo-modern-ui .ult-form__input{background:var(--modern-surface);border:2px solid var(--modern-border);border-radius:8px;box-sizing:border-box;color:var(--modern-text-primary);font-size:16px;padding:20px 24px;transition:all .3s ease;width:100%}.uo-modern-ui .ult-form__input:focus{border-color:var(--modern-primary);box-shadow:var(--modern-shadow-focus);outline:none}.uo-modern-ui .ult-form__input:hover{border-color:var(--modern-primary)}.uo-modern-ui .ult-form__input::placeholder{color:var(--modern-text-secondary);font-weight:400}.uo-modern-ui #ult-2fa-validation-form--templated #submit,.uo-modern-ui #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend],.uo-modern-ui #ult-forgot-password-submit-btn,.uo-modern-ui #ult-login-form #ult-login-submit,.uo-modern-ui #ult-login-submit,.uo-modern-ui #ult-reset-password-submit-btn,.uo-modern-ui .ult-form__submit-btn{background:var(--modern-primary)!important;border:none!important;border-radius:8px!important;box-shadow:var(--modern-shadow);color:#fff!important;cursor:pointer;font-size:16px!important;font-weight:600!important;letter-spacing:1px;line-height:1.4;margin-top:16px;padding:18px 32px!important;text-transform:uppercase;transition:all .3s ease;width:100%!important}.uo-modern-ui #ult-2fa-validation-form--templated #submit:hover,.uo-modern-ui #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend]:hover,.uo-modern-ui #ult-forgot-password-submit-btn:hover,.uo-modern-ui #ult-login-form #ult-login-submit:hover,.uo-modern-ui #ult-login-submit:hover,.uo-modern-ui #ult-reset-password-submit-btn:hover,.uo-modern-ui .ult-form__submit-btn:hover{background:var(--modern-primary-dark)!important;box-shadow:var(--modern-shadow-elevated);color:#fff!important}.uo-modern-ui #ult-2fa-validation-form--templated #submit:focus,.uo-modern-ui #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend]:focus,.uo-modern-ui #ult-forgot-password-submit-btn:focus,.uo-modern-ui #ult-login-form #ult-login-submit:focus,.uo-modern-ui #ult-login-submit:focus,.uo-modern-ui #ult-reset-password-submit-btn:focus,.uo-modern-ui .ult-form__submit-btn:focus{box-shadow:var(--modern-shadow-focus)!important;outline:none}.uo-modern-ui #ult-2fa-validation-form--templated #submit:active,.uo-modern-ui #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend]:active,.uo-modern-ui #ult-forgot-password-submit-btn:active,.uo-modern-ui #ult-login-form #ult-login-submit:active,.uo-modern-ui #ult-login-submit:active,.uo-modern-ui #ult-reset-password-submit-btn:active,.uo-modern-ui .ult-form__submit-btn:active{transform:translateY(1px)}.uo-modern-ui .ult-form__row--remember{align-items:center;display:flex;margin-bottom:32px}.uo-modern-ui #ult-login-remember{accent-color:var(--modern-primary);border-radius:4px;height:20px;margin-right:12px;width:20px}.uo-modern-ui .ult-form__row--remember label{color:var(--modern-text-primary);cursor:pointer;font-size:14px;font-weight:500;margin:0}.uo-modern-ui .ult-form__footer{border-top:1px solid var(--modern-border);margin-top:40px;padding-top:32px;text-align:center}.uo-modern-ui .ult-form__footer a{border-radius:8px;color:var(--modern-primary);font-size:14px;font-weight:600;padding:8px 16px;position:relative;text-decoration:none;transition:all .3s ease}.uo-modern-ui .ult-form__footer a:before{background:var(--modern-primary);bottom:0;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%);transition:all .3s ease;width:0}.uo-modern-ui .ult-form__footer a:hover{background:rgba(0,115,170,.1);color:var(--modern-primary-dark)}.uo-modern-ui .ult-form__footer a:hover:before{width:80%}.uo-modern-ui .ult-form-footer__forgot-password,.uo-modern-ui .ult-form-footer__login,.uo-modern-ui .ult-form-footer__signup{margin-bottom:16px}.uo-modern-ui .ult-form-footer__forgot-password:last-child,.uo-modern-ui .ult-form-footer__login:last-child,.uo-modern-ui .ult-form-footer__signup:last-child{margin-bottom:0}.uo-modern-ui .ult-notice{border:none;border-radius:8px;font-weight:500;margin-bottom:24px;padding:20px 24px;position:relative}.uo-modern-ui .ult-notice--error{background:rgba(229,62,62,.1);border-left:4px solid var(--modern-error);color:var(--modern-error)}.uo-modern-ui .ult-notice--success{background:rgba(56,161,105,.1);border-left:4px solid var(--modern-success);color:var(--modern-success)}.uo-modern-ui .ult-form__validation{margin-bottom:24px}.uo-modern-ui .ult-form__validation--has-error .ult-form__input{animation:shake .5s ease-in-out;border-color:var(--modern-error)}.uo-modern-ui .ult-form-recaptcha{margin-top:20px}@media(max-width:768px){.uo-modern-ui .ult-box{border-radius:12px;margin:0;padding:32px 24px}.uo-modern-ui .ult-form__title{font-size:28px}.uo-modern-ui .ult-form__input{padding:18px 20px}.uo-modern-ui #ult-forgot-password-submit-btn,.uo-modern-ui #ult-login-submit,.uo-modern-ui #ult-reset-password-submit-btn,.uo-modern-ui .ult-form__submit-btn{padding:16px 24px}}.uo-modern-ui #ult-forgot-password-submit-btn:disabled,.uo-modern-ui #ult-login-submit:disabled,.uo-modern-ui #ult-reset-password-submit-btn:disabled,.uo-modern-ui .ult-form__submit-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.uo-modern-ui #ult-forgot-password-submit-btn:focus,.uo-modern-ui #ult-login-submit:focus,.uo-modern-ui #ult-reset-password-submit-btn:focus,.uo-modern-ui .ult-form__input:focus,.uo-modern-ui .ult-form__submit-btn:focus{outline:none}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.uo-modern-ui .ult-box{animation:slideUp .4s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.uo_loginForm .galogin{margin-top:15px}.uo_loginForm form .login-remember label{align-items:center;display:flex}.uo_loginForm form .login-username input[type=text],.uo_loginForm form .ult-form-password-wrapper{height:40px}.uo_loginForm form .login-password input[type=password]{background:#fff;height:40px}
    22/*# sourceMappingURL=bundle.min.css.map*/
  • uncanny-learndash-toolkit/trunk/src/assets/frontend/dist/bundle.min.css.map

    r3395254 r3407115  
    1 {"version":3,"file":"bundle.min.css","mappings":"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","sources":["webpack://ultf-frontend/./src/scss/animations.scss","webpack://ultf-frontend/./src/scss/box/box.scss","webpack://ultf-frontend/./src/scss/variables.scss","webpack://ultf-frontend/./src/scss/form/container.scss","webpack://ultf-frontend/./src/scss/form/row.scss","webpack://ultf-frontend/./src/scss/form/title.scss","webpack://ultf-frontend/./src/scss/form/description.scss","webpack://ultf-frontend/./src/scss/form/field.scss","webpack://ultf-frontend/./src/scss/form/text.scss","webpack://ultf-frontend/./src/scss/form/checkbox.scss","webpack://ultf-frontend/./src/scss/form/button.scss","webpack://ultf-frontend/./src/scss/form/remember-me.scss","webpack://ultf-frontend/./src/scss/form/validation-message.scss","webpack://ultf-frontend/./src/scss/form/footer.scss","webpack://ultf-frontend/./src/scss/form/2fa.scss","webpack://ultf-frontend/./src/scss/notice/notice.scss","webpack://ultf-frontend/./src/scss/notice/error.scss","webpack://ultf-frontend/./src/scss/notice/success.scss","webpack://ultf-frontend/./src/scss/modal.scss","webpack://ultf-frontend/./src/scss/login/modal-login.scss","webpack://ultf-frontend/./src/scss/modern-login/modern-login.scss"],"sourcesContent":[".ult--fade-in {\n\tanimation: ult_fadein 300ms;\n}\n\n.ult--fade-out {\n\tanimation: ult_fadeout 300ms;\n}\n\n@keyframes ult_fadein {\n\t0% { opacity: 0; }\n\t100% { opacity: 1; }\n}\n\n@keyframes ult_fadeout {\n\t0% { opacity: 1; }\n\t100% { opacity: 0; }\n}\n\n@keyframes ult_rotating_centered {\n\t0% { transform: translate(-50%,-50%) rotate(0deg); }\n\t100% { transform: translate(-50%,-50%) rotate(360deg); }\n}",".ult-box {\n\twidth: 100%;\n\tposition: relative;\n\tfont-family: $font_family;\n\tfont-size: 15px;\n\tbackground: #fff;\n\tborder: 1px solid #dfdfdf;\n\tborder-radius: 3px;\n\tbox-shadow: 0 7px 15px 0 rgba(0,0,0,.1);\n\tpadding: 20px 25px 25px 25px;\n}\n\n.ult-box,\n.ult-box * {\n\tbox-sizing: border-box;\n}\n","$primary_color: #0790e8;\n$font_family: -apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;",".ult-form__container {}\n\n\t.ult-form__title ~ .ult-form__container,\n\t.ult-form__description ~ .ult-form__container {\n\t\tborder-top: 1px solid #d8d8d8;\n\t\tmargin-top: 15px;\n\t}\n\n\t.ult-form__container form {\n\t\toutline: 0;\n\t}\n\n\t.ult-form__container form p {\n\t\tmargin: 0;\n\t\tmargin-top: 15px;\n\t\t&:empty {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n",".ult-form__row {\n\tmargin-top: 15px;\n}\n\n.ult-form__field {\n\tmargin-top: 8px;\n}",".ult-form__title {\n\tfont-size: 20px;\n\tline-height: 1.2;\n\tcolor: #202020;\n}",".ult-form__description {\n\tfont-size: 15px;\n\tcolor: #636363;\n\tmargin-top: 10px;\n\tline-height: 1.3;\n}",".ult-form-field__header {\n\tdisplay: flex;\n}\n\n\t.ult-form-field__label-container {\n\t\tflex: 1 1 auto;\n\t}\n\n\t\t.ult-form-field__label {\n\t\t\tcolor: #404040;\n\t\t}\n\n\t.ult-form-field__actions {\n\t\tflex: 0 0 auto;\n\t}\n\n\t\t.ult-form-field__action {\n\t\t\tfont-size: 14px;\n\t\t\tcolor: $primary_color;\n\t\t\ttext-decoration: none;\n\t\t}","/**\n * Text input\n */\n.ult-form-password-wrapper,\n*:not(.ult-form-password-wrapper) > .ult-form__input,\n.ult-form__container *:not(.ult-form-password-wrapper) > input[type=\"tel\"],\n.ult-form__container *:not(.ult-form-password-wrapper) > input[type=\"text\"],\n.ult-form__container *:not(.ult-form-password-wrapper) > input[type=\"password\"] {\n\tpadding: var(--ult-form-field-padding, 8px 10px);\n\tcolor: var(--ult-form-field-color, #404040);\n\tbackground: var(--ult-form-field-background, #fff);\n\tbox-shadow: var(--ult-form-field-box-shadow, 0 2px 5px 0 rgba(0,0,0,.1));\n\tborder: 1px solid var(--ult-form-field-border-color, #c1c5c8);\n\tborder-radius: var(--ult-form-field-border-radius, 8px);\n\n\twidth: 100%;\n\tfont-size: inherit;\n\tfont-family: inherit;\n\toutline: none;\n\tdisplay: block;\n\tmargin-top: 8px;\n\tline-height: 1.3;\n\ttransition: border 150ms ease-in-out, box-shadow 150ms ease-in-out;\n\n\t&:hover {\n\t\tborder-color: var(--ult-form-field-hover-border-color, #b1b5b7);\n\t}\n\n\t&.ult-form-password-wrapper--focus,\n\t&:focus {\n\t\tborder-color: var(--ult-form-field-focus-border-color, $primary_color);\n\t\tbox-shadow: var(--ult-form-field-focus-box-shadow, 0 0 0 0.2rem rgba( $primary_color, .2 ));\n\t}\n}\n\n.ult-form-password-wrapper {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 5px;\n\n\tinput {\n\t\tflex: 1 1 auto;\n\n\t\tfont-size: inherit !important;\n\t\tfont-family: inherit !important;\n\t\tborder: 0 !important;\n\t\tbox-shadow: none !important;\n\t\tpadding: 0 !important;\n\t\tmargin: 0 !important;\n\t\toutline: 0 !important;\n\t\t\n\t\t/* Hide browser-generated password toggle icons to prevent duplicates */\n\t\t&::-ms-reveal,\n\t\t&::-ms-clear {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t/* Hide WebKit password toggle icons */\n\t\t&::-webkit-credentials-auto-fill-button,\n\t\t&::-webkit-credentials-auto-fill-button:hover,\n\t\t&::-webkit-credentials-auto-fill-button:active {\n\t\t\tdisplay: none !important;\n\t\t\tvisibility: hidden !important;\n\t\t\tpointer-events: none !important;\n\t\t}\n\n\t\t/* Additional WebKit password field styling to prevent duplicate icons */\n\t\t&::-webkit-textfield-decoration-container {\n\t\t\tdisplay: none !important;\n\t\t}\n\n\t\t/* For Firefox password field */\n\t\t&::-moz-textfield-decoration-container {\n\t\t\tdisplay: none !important;\n\t\t}\n\n\t\t/* Ensure clean appearance without browser defaults */\n\t\t-webkit-appearance: none;\n\t\t-moz-appearance: none;\n\t\tappearance: none;\n\t}\n\n\t&-eye-toggle {\n\t\twidth: 20px;\n\t\theight: 20px;\n\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\tcolor: #7f7f7f;\n\n\t\tcursor: pointer;\n\n\t\tflex: 0 0 auto;\n\t}\n}","/**\n * Custom checkbox\n */\n\n.ult-checkbox {\n\twidth: 100%;\n}\n\n\t.ult-checkbox__container {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tcursor: pointer;\n\t\ttransition: opacity 150ms ease-in-out;\n\t}\n\n\t.ult-checkbox__hidden-input {\n\t\tdisplay: none;\n\t}\n\n\t.ult-checkbox .ult-checkbox__fake-input {\n\t\tposition: relative;\n\t\tbox-sizing: border-box;\n\t\theight: 16px;\n\t\twidth: 16px;\n\t\tborder: 1px solid #afafaf;\n\t\tborder-radius: 8px;\n\t\ttransition: border 150ms ease-in-out;\n\t\tbox-shadow: 0 2px 5px 0 rgba(0,0,0,.1);\n\t}\n\n\t.ult-checkbox .ult-checkbox__container:hover .ult-checkbox__fake-input {\n\t\tborder-color: #979797;\n\t}\n\n\t.ult-checkbox .ult-checkbox__fake-input:after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tdisplay: block;\n\t\topacity: 0;\n\t\ttransition: all 150ms ease-in-out;\n\t}\n\n\t.ult-checkbox .ult-checkbox__hidden-input:checked ~ .ult-checkbox__fake-input:after {\n\t\topacity: 1;\n\t}\n\n\t.ult-checkbox .ult-checkbox__container .ult-checkbox__fake-input:after {\n\t\tleft: 4px;\n\t\ttop: 1px;\n\t\twidth: 3px;\n\t\theight: 7px;\n\t\tborder: solid $primary_color;\n\t\tborder-width: 0 3px 3px 0;\n\t\ttransform: rotate(45deg);\n\t}\n\n\t.ult-checkbox .checkbox--primary:checked ~ .ult-checkbox__fake-input {\n\t\tborder-color: $primary_color;\n\t}\n\n\t.ult-checkbox .checkbox--primary:disabled ~ .ult-checkbox__fake-input {\n\t\tbackground: #fff;\n\t\tborder: 1px solid #b9b9b9;\n\t\tcursor: not-allowed;\n\t}\n\n\t.ult-checkbox .checkbox--primary:checked:disabled ~ .ult-checkbox__fake-input {\n\t\tbackground: #38aece;\n\t\topacity: 0.6;\n\t\tcursor: not-allowed;\n\t}","/**\n * Button\n */\n#ult-2fa-validation-form--templated #submit, /* Added 2FA Support */\n#ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend], /* Added 2FA Support */\n.ult-form__submit-btn,\n#ult-login-form #ult-login-submit {\n\twidth: 100%;\n\tbackground: $primary_color;\n\tfont-size: 16px;\n\tline-height: 1.5;\n\tdisplay: inline-block;\n\toutline: none;\n\tfont-weight: 400;\n\ttext-align: center;\n\twhite-space: nowrap;\n\tvertical-align: middle;\n\tuser-select: none;\n\tborder: 1px solid transparent;\n\tpadding: 8px 15px;\n\tborder-radius: 8px;\n\ttransition: color 150ms ease-in-out, background-color 150ms ease-in-out,border-color 150ms ease-in-out, box-shadow 150ms ease-in-out, opacity 150ms ease-in-out;\n\tcursor: pointer;\n\tbox-shadow: 0 2px 5px 0 rgba(0,0,0,.1);\n\tposition: relative;\n}\n\n\t.ult-form__row--submit {\n\t\tposition: relative;\n\t}\n\n\t#ult-login-form .login-submit,\n\t#ult-login p.submit {\n\t\tposition: relative;\n\t}\n\n\t.ult-form__submit-btn:not(.ult-form__submit-btn--loading):focus,\n\t#ult-login-form .login-submit:not(.ult-form__submit-btn--loading) #ult-login-submit:focus,\n\t#ult-forgot-password .ult-form__row--submit:not(.ult-form__submit-btn--loading) #ult-forgot-password-submit-btn:focus {\n\t\tbox-shadow: 0 0 0 0.2rem rgba( $primary_color, .5 );\n\t}\n\n\t.ult-form__submit-btn--loading:before {\n\t\topacity: 0;\n\t\ttransition: opacity 150ms ease-in-out;\n\t}\n\n\t.ult-form__submit-btn--loading,\n\t.ult-form__submit-btn--loading #ult-login-submit,\n\t.ult-form__submit-btn--loading #ult-forgot-password-submit-btn,\n\t.ult-form__submit-btn--loading #ult-reset-password-submit-btn,\n\t.ult-form__submit-btn--loading input[type=\"submit\"] {\n\t\tcolor: transparent !important;\n\t}\n\n\t.ult-form__submit-btn--loading:before {\n\t\tcontent: '';\n\n\t\twidth: 18px;\n\t\theight: 18px;\n\n\t\topacity: 1;\n\n\t\tposition: absolute;\n\t\ttop: 60%;\n\t\tleft: 50%;\n\t\ttransform: translate(-50%,-50%);\n\t\ttransform-origin: 0 0;\n\n\t\tanimation: spin-centered .8s linear infinite;\n\n\t\tz-index: 2;\n\n\t \tbackground-image: url(\"data:image/svg+xml,%3Csvg x='0' y='0' viewBox='0 0 512 512' xml:space='preserve' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M456.433 371.72l-27.79-16.045c-7.192-4.152-10.052-13.136-6.487-20.636 25.82-54.328 23.566-118.602-6.768-171.03-30.265-52.529-84.802-86.621-144.76-91.424C262.35 71.922 256 64.953 256 56.649V24.56c0-9.31 7.916-16.609 17.204-15.96 81.795 5.717 156.412 51.902 197.611 123.408 41.301 71.385 43.99 159.096 8.042 232.792-4.082 8.369-14.361 11.575-22.424 6.92z'/%3E%3C/svg%3E\");\n\n\t \tbackground-size: contain;\n\t \tbackground-position: center center;\n\t \tbackground-repeat: no-repeat;\n\t}\n\n\t.ult-form__submit-btn--disabled {\n\t\topacity: .6;\n\t\tcursor: not-allowed;\n\t\tpointer-events: none;\n\t}\n\n\t@-ms-keyframes spin-centered {\n        from {\n            -ms-transform: rotate(0deg) translate(-50%,-50%);\n        }\n        to {\n            -ms-transform: rotate(360deg) translate(-50%,-50%);\n        }\n    }\n\n    @-moz-keyframes spin-centered {\n        from {\n            -moz-transform: rotate(0deg) translate(-50%,-50%);\n        }\n        to {\n            -moz-transform: rotate(360deg) translate(-50%,-50%);\n        }\n    }\n\n    @-webkit-keyframes spin-centered {\n        from {\n            -webkit-transform: rotate(0deg) translate(-50%,-50%);\n        }\n        to {\n            -webkit-transform: rotate(360deg) translate(-50%,-50%);\n        }\n    }\n\n    @keyframes spin-centered {\n        from {\n            transform: rotate(0deg) translate(-50%,-50%);\n        }\n        to {\n            transform: rotate(360deg) translate(-50%,-50%);\n        }\n    }\n",".ult-form__row--remember-me {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n\t.ult-form__row--remember-me .ult-form__field {\n\t\tflex: 0 0 auto;\n\t\tmargin: 0 8px 0 0;\n\t}\n\n\t.ult-form__row--remember-me .ult-form-field__header {\n\t\tflex: 1 1 auto;\n\t}\n\n\t\t.ult-form__row--remember-me .ult-form-field__label {\n\t\t\tcolor: #636363;\n\t\t\tuser-select: none;\n\t\t\tcursor: pointer;\n\t\t}",".ult-form__validation {\n\tmargin-top: 15px;\n\tdisplay: none;\n}\n\n\t.ult-form__validation--has-error {\n\t\tdisplay: block;\n\t}\n\n\t.ult-form__validation:first-child {\n\t\tmargin-top: 0;\n\t\tmargin-bottom: 15px;\n\t}\n\n\t.ult-form__validation .ult-notice p {\n\t\tmargin: 0;\n\t}",".ult-form__footer {\n\tmargin-top: 25px;\n\tpadding-top: 15px;\n\tborder-top: 1px solid #d8d8d8;\n\ttext-align: center;\n}\n\n\t.ult-form__footer a {\n\t\tcolor: $primary_color;\n\t\ttext-decoration: none;\n\t}",".ult-form__container {\r\n    \r\n    .two-factor-error-notice {\r\n        margin-top: 20px;\r\n    }\r\n\r\n    .uo-toolkit-2fa-footer {\r\n        display: flex;\r\n        align-content: center;\r\n        flex-wrap: wrap;\r\n        justify-content: space-evenly;\r\n        margin-top: 20px;\r\n\r\n        &__backup-codes,\r\n        &__backto-home {\r\n            text-align: center;\r\n        }\r\n\r\n        a {\r\n            color: $primary_color;\r\n\t\t    text-decoration: none;\r\n        }\r\n    }\r\n}",".ult-notice {\n\tpadding: 15px;\n\tborder: 1px solid #d8d8d8;\n\tcolor: #737373;\n\tborder-radius: 3px;\n\ttext-align: center;\n\tline-height: 1.3;\n}\n\n@import './error.scss';\n@import './success.scss';",".ult-notice--error {\n\tbackground: #fceded;\n}",".ult-notice--success {\n\tbackground: #edfcef;\n}","/**\n * Modal\n */\n\n.ult-modal {\n\tdisplay: none;\n}\n\n.ult-modal-container .ult-modal {\n\tdisplay: block;\n}\n\n.ult-modal-container {\n\twidth: 100%;\n\theight: 100%;\n\n\tposition: fixed;\n\n\tdisplay: none;\n\n\ttop: 0;\n\tleft: 0;\n\n\tz-index: 100000;\n}\n\n\t.ult-modal-container--open {\n\t\tdisplay: block;\n\t}\n\n\t.ult-modal__inside {\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\tjustify-content: center;\n\t\talign-items: center;\n\n\t\tdisplay: flex;\n\t}\n\n\t.ult-modal-box {\n\t\twidth: calc(100% - 40px);\n\t\tmax-width: 565px;\n\n\t\tmax-height: calc(100vh - 40px);\n\t\toverflow-y: auto;\n\n\t\tbackground: #fff;\n\n\t\tbox-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.2);\n\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\tposition: relative;\n\n\t\tborder-radius: 8px;\n\n\t\toverflow: hidden;\n\n\t\t&:before {\n\t\t\tcontent: '';\n\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tz-index: 10;\n\n\t\t\tbackground: #fff;\n\n\t\t\topacity: 0;\n\n\t\t\ttransition: opacity 300ms ease-in-out;\n\n\t\t\tborder-radius: 8px;\n\t\t}\n\n\t\t&:after {\n\t\t\tcontent: '';\n\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\n\t\t\tborder-radius: 50%;\n\n\t\t\tposition: absolute;\n\t\t\tleft: 50%;\n\t\t\ttop: 50%;\n\t\t\tz-index: 11;\n\n\t\t\topacity: 0;\n\n\t\t\tuser-select: none;\n\n\t\t\ttransition: opacity 300ms ease-in-out;\n\t\t}\n\n\t\t.ult-modal-container--loading &:before {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\n\t\t\topacity: 1;\n\t\t}\n\n\t\t.ult-modal-container--loading &:after {\n\t\t\twidth: 50px;\n\t\t\theight: 50px;\n\n\t\t\tborder: 3px solid transparent;\n\t\t\tborder-top-color: #202020;\n\n\t\t\tanimation: ult_rotating_centered 2s linear infinite;\n\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t.ult-modal--small .ult-modal-box {\n\t\tmax-width: 385px;\n\t}\n\n\t.ult-modal--large .ult-modal-box {\n\t\tmax-width: 750px;\n\t}\n\n\t.ult-modal-box-header {\n\t\tpadding: 20px;\n\t\ttext-align: center;\n\t}\n\n\t\t.ult-modal-box-header h1,\n\t\t.ult-modal-box-header h2,\n\t\t.ult-modal-box-header h3 {\n\t\t\tfont-size: 30px;\n\t\t\tfont-weight: 500;\n\t\t\tline-height: 32px;\n\n\t\t\tpadding: 20px 20px 0px;\n\t\t\tmargin: 0;\n\t\t}\n\n\t.ult-modal-box-content {\n\t\twidth: 100%;\n\n\t\tposition: relative;\n\t\tdisplay: inline-flex;\n\n\t\toverflow: hidden;\n\t\t\n\t\tflex: 1 1 auto;\n\t}\n\n\t\t/*.ult-modal-box-content:after {\n\t\t\tcontent: '';\n\n\t\t\twidth: 100%;\n\n\t\t\tleft: 0px;\n\t\t\tbottom: 0px;\n\n\t\t\theight: 56px;\n\t\t\t\n\t\t\tposition: absolute;\n\t\t\t\n\t\t\tpointer-events: none;\n\n\t\t\tbackground: linear-gradient(rgba(255, 255, 255, 0), rgb(255, 255, 255));\n\t\t}*/\n\n\t\t.ult-modal {\n\t\t\twidth: 100%;\n\n\t\t\tfont-weight: 400;\n\t\t\tfont-size: 16px;\n\n\t\t\toverflow-y: auto;\n\n\t\t\tmax-height: 300px;\n\n\t\t\tposition: relative;\n\n\t\t\tmargin: 0px;\n\t\t\tpadding: 20px 40px;\n\n\t\t\toutline: none;\n\t\t}\n\n\t\t\t.ult-modal-box-content__inside::-webkit-scrollbar {\n\t\t\t\twidth: 10px;\n\t\t\t\tbackground-color: rgba( 0, 0, 0, .09 );\n\t\t\t\tborder-radius: 150px;\n\t\t\t}\n\n\t\t\t.ult-modal-box-content__inside::-webkit-scrollbar-thumb:vertical {\n\t\t\t\tbackground: #afafaf;\n\t\t\t\tborder-radius: 150px;\n\t\t\t\tbackground-clip: padding-box;\n\t\t\t\tborder: 2px solid rgba( 0, 0, 0, 0 );\n\t\t\t\tmin-height: 10px;\n\t\t\t}\n\n\t\t.ult-modal-box-content__br {\n\t\t\twidth: 100%;\n\t\t\theight: 10px;\n\t\t\tdisplay: block;\n\t\t}\n\n\t.ult-modal-box-footer {\n\t\tflex: 1 1 auto;\n\n\t\ttext-align: center;\n\n\t\tpadding: 20px;\n\t\tmargin: 0px 20px 20px;\n\n\t\toverflow: hidden;\n\t}\n\n\t\t.ult-modal-box-footer__dismiss {\n\t\t\tfont-size: 16px;\n\t\t\tfont-weight: 600;\n\n\t\t\tpadding: 10px 20px;\n\n\t\t\tcursor: pointer;\n\n\t\t\tline-height: 1.1;\n\n\t\t\tborder: 0;\n\n\t\t\tdisplay: inline-block;\n\n\t\t\tbackground: transparent;\n\t\t\tcolor: #0077c5;\n\n\t\t\ttransition: background 150ms ease-in-out;\n\n\t\t\tborder-radius: 150px;\n\t\t}\n\n\t\t.ult-modal-box-footer__dismiss:hover {\n\t\t\tbackground: #dadadc;\n\t\t}\n\n\t\t.ult-modal-box-footer__dismiss:active {\n\t\t\tbackground: #c4c4c6;\n\t\t}\n\n\t@media screen and (max-width: 1000px){\n\t\t.ult-modal-box-header h1,\n\t\t.ult-modal-box-header h2,\n\t\t.ult-modal-box-header h3 {\n\t\t\tfont-size: 24px;\n\t\t\tline-height: 26px;\n\t\t}\n\t}\n\n/**\n * Global modifications\n */\n\nbody.ult-modals--open {\n\toverflow: hidden !important;\n}\n\nbody.ult-modals--dim-background .ult-modal-container {\n\tbackground: rgba(0,0,0,.4);\n}","#ult-modal-container-ult-login {\n\t.ult-box {\n\t\tbox-shadow: none;\n\t\tpadding: 0;\n\t\tborder: 0;\n\t}\n\n\t.ult-modal {\n\t\tmax-height: 680px;\n\t}\n}\n\n.ult-login--recaptcha-error,\n.ult-forgot-password--recaptcha-error,\n.ult-reset-password--recaptcha-error {\n\t.g-recaptcha iframe {\n\t\tborder-radius: 4px;\n\t\tborder: 1px solid #ff0000;\n\t}\n}\n\n#ult-login-modal {\n\t$section: &;\n\n\t&.ult-login-modal--login {\n\t\t#{ $section }__login {\n\t\t\tdisplay: block;\n\t\t}\n\n\t\t#{ $section }__forgot-password {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t&.ult-login-modal--forgot-password {\n\t\t#{ $section }__login {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t#{ $section }__forgot-password {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}","// MODERN UI overrides for Frontend Login (layout_1)\n// This file is loaded last and should only target .uo-modern-ui\n\n.uo-modern-ui {\n  // Flattened Color Palette - No Gradients\n  --modern-primary: #0073aa;\n  --modern-primary-dark: #005a87;\n  --modern-secondary: #00a0d2;\n  --modern-accent: #ff6900;\n  --modern-surface: #ffffff;\n  --modern-background: #f8f9fa;\n  --modern-text-primary: #2d3748;\n  --modern-text-secondary: #718096;\n  --modern-border: #e2e8f0;\n  --modern-error: #e53e3e;\n  --modern-success: #38a169;\n  --modern-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n  --modern-shadow-elevated: 0 4px 8px rgba(0, 0, 0, 0.15);\n  --modern-shadow-focus: 0 0 0 3px rgba(0, 115, 170, 0.3);\n\n  // Main container styling - Clean and Simple\n  #ult-login,\n  #ult-forgot-password,\n  #ult-reset-password {\n    background: var(--modern-background);\n    min-height: 100vh;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    position: relative;\n  }\n\n  // Box styling - Clean and Simple\n  .ult-box {\n    background: var(--modern-surface);\n    border: 1px solid var(--modern-border);\n    border-radius: 12px;\n    box-shadow: var(--modern-shadow);\n    padding: 48px;\n    width: 100%;\n    position: relative;\n    transition: all 0.3s ease;\n    box-sizing: border-box;\n    margin-left: auto;\n    margin-right: auto;\n\n    &::before {\n      background: var(--modern-primary);\n      border-radius: 10px 10px 0 0;\n      content: \"\";\n      height: 7px;\n      left: 0;\n      position: absolute;\n      right: 0;\n      top: 0px;\n      z-index: 1;\n    }\n\n    &:hover {\n      box-shadow: var(--modern-shadow-elevated);\n    }\n  }\n\n  // Typography - Clean Headers\n  .ult-form__title {\n    font-size: 32px;\n    font-weight: 700;\n    color: var(--modern-primary);\n    margin-bottom: 12px;\n    text-align: center;\n    letter-spacing: -1px;\n    position: relative;\n    \n    &::after {\n      content: '';\n      position: absolute;\n      bottom: -8px;\n      left: 50%;\n      transform: translateX(-50%);\n      width: 60px;\n      height: 4px;\n      background: var(--modern-primary);\n      border-radius: 2px;\n    }\n  }\n\n  .ult-form__description {\n    font-size: 16px;\n    color: var(--modern-text-primary);\n    text-align: center;\n    margin-bottom: 40px;\n    line-height: 1.6;\n    font-weight: 400;\n  }\n\n  // Form container\n  .ult-form__container {\n    background: transparent;\n    border-radius: 0;\n    padding: 0;\n    box-shadow: none;\n  }\n\n  // Form fields - FLOATING LABELS\n  .ult-form__row {\n    margin-bottom: 32px;\n    position: relative;\n  }\n\n  .ult-form-field__header {\n    margin-bottom: 12px;\n  }\n\n  .ult-form-field__label {\n    font-size: 14px;\n    font-weight: 600;\n    color: var(--modern-text-primary);\n    margin-bottom: 8px;\n    display: block;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n  }\n\n  // Form labels (username, password, etc.)\n  label {\n    color: var(--modern-text-primary);\n    font-weight: 600;\n    font-size: 14px;\n  }\n\n  .ult-form__input {\n    width: 100%;\n    padding: 20px 24px;\n    border: 2px solid var(--modern-border);\n    border-radius: 8px;\n    font-size: 16px;\n    background: var(--modern-surface);\n    color: var(--modern-text-primary);\n    transition: all 0.3s ease;\n    box-sizing: border-box;\n\n    &:focus {\n      outline: none;\n      border-color: var(--modern-primary);\n      box-shadow: var(--modern-shadow-focus);\n    }\n\n    &:hover {\n      border-color: var(--modern-primary);\n    }\n\n    &::placeholder {\n      color: var(--modern-text-secondary);\n      font-weight: 400;\n    }\n  }\n\n  // Submit button - Clean Solid Button\n  .ult-form__submit-btn,\n  #ult-login-submit,\n  #ult-forgot-password-submit-btn,\n  #ult-reset-password-submit-btn,\n  #ult-login-form #ult-login-submit,\n  #ult-2fa-validation-form--templated #submit,\n  #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend] {\n    width: 100% !important;\n    padding: 18px 32px !important;\n    background: var(--modern-primary) !important;\n    color: white !important;\n    border: none !important;\n    border-radius: 8px !important;\n    font-size: 16px !important;\n    font-weight: 600 !important;\n    cursor: pointer;\n    transition: all 0.3s ease;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n    margin-top: 16px;\n    box-shadow: var(--modern-shadow);\n    line-height: 1.4;\n\n    &:hover {\n      background: var(--modern-primary-dark) !important;\n      color: white !important;\n      box-shadow: var(--modern-shadow-elevated);\n    }\n\n    &:focus {\n      outline: none;\n      box-shadow: var(--modern-shadow-focus) !important;\n    }\n\n    &:active {\n      transform: translateY(1px);\n    }\n  }\n\n  // Checkbox styling - CUSTOM CHECKBOX\n  .ult-form__row--remember {\n    display: flex;\n    align-items: center;\n    margin-bottom: 32px;\n  }\n\n  #ult-login-remember {\n    width: 20px;\n    height: 20px;\n    margin-right: 12px;\n    accent-color: var(--modern-primary);\n    border-radius: 4px;\n  }\n\n  .ult-form__row--remember label {\n    font-size: 14px;\n    color: var(--modern-text-primary);\n    margin: 0;\n    cursor: pointer;\n    font-weight: 500;\n  }\n\n  // Footer links - PREMIUM LINKS\n  .ult-form__footer {\n    margin-top: 40px;\n    padding-top: 32px;\n    border-top: 1px solid var(--modern-border);\n    text-align: center;\n  }\n\n  .ult-form__footer a {\n    color: var(--modern-primary);\n    text-decoration: none;\n    font-weight: 600;\n    font-size: 14px;\n    transition: all 0.3s ease;\n    position: relative;\n    padding: 8px 16px;\n    border-radius: 8px;\n\n    &::before {\n      content: '';\n      position: absolute;\n      bottom: 0;\n      left: 50%;\n      width: 0;\n      height: 2px;\n      background: var(--modern-primary);\n      transition: all 0.3s ease;\n      transform: translateX(-50%);\n    }\n\n    &:hover {\n      color: var(--modern-primary-dark);\n      background: rgba(0, 115, 170, 0.1);\n      \n      &::before {\n        width: 80%;\n      }\n    }\n  }\n\n  .ult-form-footer__forgot-password,\n  .ult-form-footer__signup,\n  .ult-form-footer__login {\n    margin-bottom: 16px;\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Notices/Error messages - Clean Notices\n  .ult-notice {\n    border-radius: 8px;\n    padding: 20px 24px;\n    margin-bottom: 24px;\n    font-weight: 500;\n    border: none;\n    position: relative;\n  }\n\n  .ult-notice--error {\n    background: rgba(229, 62, 62, 0.1);\n    color: var(--modern-error);\n    border-left: 4px solid var(--modern-error);\n  }\n\n  .ult-notice--success {\n    background: rgba(56, 161, 105, 0.1);\n    color: var(--modern-success);\n    border-left: 4px solid var(--modern-success);\n  }\n\n  // Validation styling\n  .ult-form__validation {\n    margin-bottom: 24px;\n  }\n\n  .ult-form__validation--has-error {\n    .ult-form__input {\n      border-color: var(--modern-error);\n      animation: shake 0.5s ease-in-out;\n    }\n  }\n\n  // reCAPTCHA styling\n  .ult-form-recaptcha {\n    margin-top: 20px;\n  }\n\n  // Responsive design\n  @media (max-width: 768px) {\n    .ult-box {\n      padding: 32px 24px;\n      margin: 0;\n      border-radius: 12px;\n    }\n\n    .ult-form__title {\n      font-size: 28px;\n    }\n\n    .ult-form__input {\n      padding: 18px 20px;\n    }\n\n    .ult-form__submit-btn,\n    #ult-login-submit,\n    #ult-forgot-password-submit-btn,\n    #ult-reset-password-submit-btn {\n      padding: 16px 24px;\n    }\n  }\n\n  // Loading states\n  .ult-form__submit-btn:disabled,\n  #ult-login-submit:disabled,\n  #ult-forgot-password-submit-btn:disabled,\n  #ult-reset-password-submit-btn:disabled {\n    opacity: 0.6;\n    cursor: not-allowed;\n    transform: none;\n  }\n\n  // Focus management\n  .ult-form__input:focus,\n  .ult-form__submit-btn:focus,\n  #ult-login-submit:focus,\n  #ult-forgot-password-submit-btn:focus,\n  #ult-reset-password-submit-btn:focus {\n    outline: none;\n  }\n\n  // Simple Animations\n  @keyframes shake {\n    0%, 100% { transform: translateX(0); }\n    25% { transform: translateX(-5px); }\n    75% { transform: translateX(5px); }\n  }\n\n  // Simple form appearance animation\n  .ult-box {\n    animation: slideUp 0.4s ease;\n  }\n\n  @keyframes slideUp {\n    from {\n      opacity: 0;\n      transform: translateY(20px);\n    }\n    to {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n} \n\n// ========================================\n// LOGIN FORM\n// ========================================\n.uo_loginForm {\n\t.galogin {\n\t\tmargin-top: 15px;\n\t}\n\tform {\n    .login-remember {\n      label {\n        display: flex;\n        align-items: center;\n      }\n    }\n\t\t.login-username {\n\t\t\tinput[type=text] {\n\t\t\t\theight: 40px;\n\t\t\t}\n\t\t}\n    .ult-form-password-wrapper {\n      height: 40px;\n    }\n\t\t.login-password {\n\t\t\tinput[type=password] {\n\t\t\t\theight: 33px;\n        background: #fff;\n\t\t\t}\n\t\t}\n\t}\n}"],"names":[],"sourceRoot":""}
     1{"version":3,"file":"bundle.min.css","mappings":"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","sources":["webpack://ultf-frontend/./src/scss/animations.scss","webpack://ultf-frontend/./src/scss/box/box.scss","webpack://ultf-frontend/./src/scss/variables.scss","webpack://ultf-frontend/./src/scss/form/container.scss","webpack://ultf-frontend/./src/scss/form/row.scss","webpack://ultf-frontend/./src/scss/form/title.scss","webpack://ultf-frontend/./src/scss/form/description.scss","webpack://ultf-frontend/./src/scss/form/field.scss","webpack://ultf-frontend/./src/scss/form/text.scss","webpack://ultf-frontend/./src/scss/form/checkbox.scss","webpack://ultf-frontend/./src/scss/form/button.scss","webpack://ultf-frontend/./src/scss/form/remember-me.scss","webpack://ultf-frontend/./src/scss/form/validation-message.scss","webpack://ultf-frontend/./src/scss/form/footer.scss","webpack://ultf-frontend/./src/scss/form/2fa.scss","webpack://ultf-frontend/./src/scss/notice/notice.scss","webpack://ultf-frontend/./src/scss/notice/error.scss","webpack://ultf-frontend/./src/scss/notice/success.scss","webpack://ultf-frontend/./src/scss/modal.scss","webpack://ultf-frontend/./src/scss/login/modal-login.scss","webpack://ultf-frontend/./src/scss/modern-login/modern-login.scss"],"sourcesContent":[".ult--fade-in {\n\tanimation: ult_fadein 300ms;\n}\n\n.ult--fade-out {\n\tanimation: ult_fadeout 300ms;\n}\n\n@keyframes ult_fadein {\n\t0% { opacity: 0; }\n\t100% { opacity: 1; }\n}\n\n@keyframes ult_fadeout {\n\t0% { opacity: 1; }\n\t100% { opacity: 0; }\n}\n\n@keyframes ult_rotating_centered {\n\t0% { transform: translate(-50%,-50%) rotate(0deg); }\n\t100% { transform: translate(-50%,-50%) rotate(360deg); }\n}",".ult-box {\n\twidth: 100%;\n\tposition: relative;\n\tfont-family: $font_family;\n\tfont-size: 15px;\n\tbackground: #fff;\n\tborder: 1px solid #dfdfdf;\n\tborder-radius: 3px;\n\tbox-shadow: 0 7px 15px 0 rgba(0,0,0,.1);\n\tpadding: 20px 25px 25px 25px;\n}\n\n.ult-box,\n.ult-box * {\n\tbox-sizing: border-box;\n}\n","$primary_color: #0790e8;\n$font_family: -apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;",".ult-form__container {}\n\n\t.ult-form__title ~ .ult-form__container,\n\t.ult-form__description ~ .ult-form__container {\n\t\tborder-top: 1px solid #d8d8d8;\n\t\tmargin-top: 15px;\n\t}\n\n\t.ult-form__container form {\n\t\toutline: 0;\n\t}\n\n\t.ult-form__container form p {\n\t\tmargin: 0;\n\t\tmargin-top: 15px;\n\t\t&:empty {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n",".ult-form__row {\n\tmargin-top: 15px;\n}\n\n.ult-form__field {\n\tmargin-top: 8px;\n}",".ult-form__title {\n\tfont-size: 20px;\n\tline-height: 1.2;\n\tcolor: #202020;\n}",".ult-form__description {\n\tfont-size: 15px;\n\tcolor: #636363;\n\tmargin-top: 10px;\n\tline-height: 1.3;\n}",".ult-form-field__header {\n\tdisplay: flex;\n}\n\n\t.ult-form-field__label-container {\n\t\tflex: 1 1 auto;\n\t}\n\n\t\t.ult-form-field__label {\n\t\t\tcolor: #404040;\n\t\t}\n\n\t.ult-form-field__actions {\n\t\tflex: 0 0 auto;\n\t}\n\n\t\t.ult-form-field__action {\n\t\t\tfont-size: 14px;\n\t\t\tcolor: $primary_color;\n\t\t\ttext-decoration: none;\n\t\t}","/**\n * Text input\n */\n.ult-form-password-wrapper,\n*:not(.ult-form-password-wrapper) > .ult-form__input,\n.ult-form__container *:not(.ult-form-password-wrapper) > input[type=\"tel\"],\n.ult-form__container *:not(.ult-form-password-wrapper) > input[type=\"text\"],\n.ult-form__container *:not(.ult-form-password-wrapper) > input[type=\"password\"] {\n\tpadding: var(--ult-form-field-padding, 8px 10px);\n\tcolor: var(--ult-form-field-color, #404040);\n\tbackground: var(--ult-form-field-background, #fff);\n\tbox-shadow: var(--ult-form-field-box-shadow, 0 2px 5px 0 rgba(0,0,0,.1));\n\tborder: 1px solid var(--ult-form-field-border-color, #c1c5c8);\n\tborder-radius: var(--ult-form-field-border-radius, 8px);\n\n\twidth: 100%;\n\tfont-size: inherit;\n\tfont-family: inherit;\n\toutline: none;\n\tdisplay: block;\n\tmargin-top: 8px;\n\tline-height: 1.3;\n\ttransition: border 150ms ease-in-out, box-shadow 150ms ease-in-out;\n\n\t&:hover {\n\t\tborder-color: var(--ult-form-field-hover-border-color, #b1b5b7);\n\t}\n\n\t&.ult-form-password-wrapper--focus,\n\t&:focus {\n\t\tborder-color: var(--ult-form-field-focus-border-color, $primary_color);\n\t\tbox-shadow: var(--ult-form-field-focus-box-shadow, 0 0 0 0.2rem rgba( $primary_color, .2 ));\n\t}\n}\n\n/* Eye icon positioned absolutely relative to parent (field stays in original position) */\n.ult-form-password-wrapper-eye-toggle {\n\tbackground: #fff; \n\theight: 37px;\n\twidth: 38px;\n\tpadding: 8px;\n\tborder-top-right-radius: 6px;\n    border-bottom-right-radius: 6px;\n\tposition: absolute;\n\tright: 2px;\n\ttop: 50%;\n\ttransform: translateY(-50%); \n\tmargin-top: 16px; // Account for field's margin-top\n\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\tcolor: #7f7f7f;\n\n\tcursor: pointer;\n\tz-index: 10; // Above the input\n\tpointer-events: auto; // Icon can be clicked\n\t\n\t \n}","/**\n * Custom checkbox\n */\n\n.ult-checkbox {\n\twidth: 100%;\n}\n\n\t.ult-checkbox__container {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tcursor: pointer;\n\t\ttransition: opacity 150ms ease-in-out;\n\t}\n\n\t.ult-checkbox__hidden-input {\n\t\tdisplay: none;\n\t}\n\n\t.ult-checkbox .ult-checkbox__fake-input {\n\t\tposition: relative;\n\t\tbox-sizing: border-box;\n\t\theight: 16px;\n\t\twidth: 16px;\n\t\tborder: 1px solid #afafaf;\n\t\tborder-radius: 8px;\n\t\ttransition: border 150ms ease-in-out;\n\t\tbox-shadow: 0 2px 5px 0 rgba(0,0,0,.1);\n\t}\n\n\t.ult-checkbox .ult-checkbox__container:hover .ult-checkbox__fake-input {\n\t\tborder-color: #979797;\n\t}\n\n\t.ult-checkbox .ult-checkbox__fake-input:after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tdisplay: block;\n\t\topacity: 0;\n\t\ttransition: all 150ms ease-in-out;\n\t}\n\n\t.ult-checkbox .ult-checkbox__hidden-input:checked ~ .ult-checkbox__fake-input:after {\n\t\topacity: 1;\n\t}\n\n\t.ult-checkbox .ult-checkbox__container .ult-checkbox__fake-input:after {\n\t\tleft: 4px;\n\t\ttop: 1px;\n\t\twidth: 3px;\n\t\theight: 7px;\n\t\tborder: solid $primary_color;\n\t\tborder-width: 0 3px 3px 0;\n\t\ttransform: rotate(45deg);\n\t}\n\n\t.ult-checkbox .checkbox--primary:checked ~ .ult-checkbox__fake-input {\n\t\tborder-color: $primary_color;\n\t}\n\n\t.ult-checkbox .checkbox--primary:disabled ~ .ult-checkbox__fake-input {\n\t\tbackground: #fff;\n\t\tborder: 1px solid #b9b9b9;\n\t\tcursor: not-allowed;\n\t}\n\n\t.ult-checkbox .checkbox--primary:checked:disabled ~ .ult-checkbox__fake-input {\n\t\tbackground: #38aece;\n\t\topacity: 0.6;\n\t\tcursor: not-allowed;\n\t}","/**\n * Button\n */\n#ult-2fa-validation-form--templated #submit, /* Added 2FA Support */\n#ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend], /* Added 2FA Support */\n.ult-form__submit-btn,\n#ult-login-form #ult-login-submit {\n\twidth: 100%;\n\tbackground: $primary_color;\n\tfont-size: 16px;\n\tline-height: 1.5;\n\tdisplay: inline-block;\n\toutline: none;\n\tfont-weight: 400;\n\ttext-align: center;\n\twhite-space: nowrap;\n\tvertical-align: middle;\n\tuser-select: none;\n\tborder: 1px solid transparent;\n\tpadding: 8px 15px;\n\tborder-radius: 8px;\n\ttransition: color 150ms ease-in-out, background-color 150ms ease-in-out,border-color 150ms ease-in-out, box-shadow 150ms ease-in-out, opacity 150ms ease-in-out;\n\tcursor: pointer;\n\tbox-shadow: 0 2px 5px 0 rgba(0,0,0,.1);\n\tposition: relative;\n}\n\n\t.ult-form__row--submit {\n\t\tposition: relative;\n\t}\n\n\t#ult-login-form .login-submit,\n\t#ult-login p.submit {\n\t\tposition: relative;\n\t}\n\n\t.ult-form__submit-btn:not(.ult-form__submit-btn--loading):focus,\n\t#ult-login-form .login-submit:not(.ult-form__submit-btn--loading) #ult-login-submit:focus,\n\t#ult-forgot-password .ult-form__row--submit:not(.ult-form__submit-btn--loading) #ult-forgot-password-submit-btn:focus {\n\t\tbox-shadow: 0 0 0 0.2rem rgba( $primary_color, .5 );\n\t}\n\n\t.ult-form__submit-btn--loading:before {\n\t\topacity: 0;\n\t\ttransition: opacity 150ms ease-in-out;\n\t}\n\n\t.ult-form__submit-btn--loading,\n\t.ult-form__submit-btn--loading #ult-login-submit,\n\t.ult-form__submit-btn--loading #ult-forgot-password-submit-btn,\n\t.ult-form__submit-btn--loading #ult-reset-password-submit-btn,\n\t.ult-form__submit-btn--loading input[type=\"submit\"] {\n\t\tcolor: transparent !important;\n\t}\n\n\t.ult-form__submit-btn--loading:before {\n\t\tcontent: '';\n\n\t\twidth: 18px;\n\t\theight: 18px;\n\n\t\topacity: 1;\n\n\t\tposition: absolute;\n\t\ttop: 60%;\n\t\tleft: 50%;\n\t\ttransform: translate(-50%,-50%);\n\t\ttransform-origin: 0 0;\n\n\t\tanimation: spin-centered .8s linear infinite;\n\n\t\tz-index: 2;\n\n\t \tbackground-image: url(\"data:image/svg+xml,%3Csvg x='0' y='0' viewBox='0 0 512 512' xml:space='preserve' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M456.433 371.72l-27.79-16.045c-7.192-4.152-10.052-13.136-6.487-20.636 25.82-54.328 23.566-118.602-6.768-171.03-30.265-52.529-84.802-86.621-144.76-91.424C262.35 71.922 256 64.953 256 56.649V24.56c0-9.31 7.916-16.609 17.204-15.96 81.795 5.717 156.412 51.902 197.611 123.408 41.301 71.385 43.99 159.096 8.042 232.792-4.082 8.369-14.361 11.575-22.424 6.92z'/%3E%3C/svg%3E\");\n\n\t \tbackground-size: contain;\n\t \tbackground-position: center center;\n\t \tbackground-repeat: no-repeat;\n\t}\n\n\t.ult-form__submit-btn--disabled {\n\t\topacity: .6;\n\t\tcursor: not-allowed;\n\t\tpointer-events: none;\n\t}\n\n\t@-ms-keyframes spin-centered {\n        from {\n            -ms-transform: rotate(0deg) translate(-50%,-50%);\n        }\n        to {\n            -ms-transform: rotate(360deg) translate(-50%,-50%);\n        }\n    }\n\n    @-moz-keyframes spin-centered {\n        from {\n            -moz-transform: rotate(0deg) translate(-50%,-50%);\n        }\n        to {\n            -moz-transform: rotate(360deg) translate(-50%,-50%);\n        }\n    }\n\n    @-webkit-keyframes spin-centered {\n        from {\n            -webkit-transform: rotate(0deg) translate(-50%,-50%);\n        }\n        to {\n            -webkit-transform: rotate(360deg) translate(-50%,-50%);\n        }\n    }\n\n    @keyframes spin-centered {\n        from {\n            transform: rotate(0deg) translate(-50%,-50%);\n        }\n        to {\n            transform: rotate(360deg) translate(-50%,-50%);\n        }\n    }\n",".ult-form__row--remember-me {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n\t.ult-form__row--remember-me .ult-form__field {\n\t\tflex: 0 0 auto;\n\t\tmargin: 0 8px 0 0;\n\t}\n\n\t.ult-form__row--remember-me .ult-form-field__header {\n\t\tflex: 1 1 auto;\n\t}\n\n\t\t.ult-form__row--remember-me .ult-form-field__label {\n\t\t\tcolor: #636363;\n\t\t\tuser-select: none;\n\t\t\tcursor: pointer;\n\t\t}",".ult-form__validation {\n\tmargin-top: 15px;\n\tdisplay: none;\n}\n\n\t.ult-form__validation--has-error {\n\t\tdisplay: block;\n\t}\n\n\t.ult-form__validation:first-child {\n\t\tmargin-top: 0;\n\t\tmargin-bottom: 15px;\n\t}\n\n\t.ult-form__validation .ult-notice p {\n\t\tmargin: 0;\n\t}",".ult-form__footer {\n\tmargin-top: 25px;\n\tpadding-top: 15px;\n\tborder-top: 1px solid #d8d8d8;\n\ttext-align: center;\n}\n\n\t.ult-form__footer a {\n\t\tcolor: $primary_color;\n\t\ttext-decoration: none;\n\t}",".ult-form__container {\r\n    \r\n    .two-factor-error-notice {\r\n        margin-top: 20px;\r\n    }\r\n\r\n    .uo-toolkit-2fa-footer {\r\n        display: flex;\r\n        align-content: center;\r\n        flex-wrap: wrap;\r\n        justify-content: space-evenly;\r\n        margin-top: 20px;\r\n\r\n        &__backup-codes,\r\n        &__backto-home {\r\n            text-align: center;\r\n        }\r\n\r\n        a {\r\n            color: $primary_color;\r\n\t\t    text-decoration: none;\r\n        }\r\n    }\r\n}",".ult-notice {\n\tpadding: 15px;\n\tborder: 1px solid #d8d8d8;\n\tcolor: #737373;\n\tborder-radius: 3px;\n\ttext-align: center;\n\tline-height: 1.3;\n}\n\n@import './error.scss';\n@import './success.scss';",".ult-notice--error {\n\tbackground: #fceded;\n}",".ult-notice--success {\n\tbackground: #edfcef;\n}","/**\n * Modal\n */\n\n.ult-modal {\n\tdisplay: none;\n}\n\n.ult-modal-container .ult-modal {\n\tdisplay: block;\n}\n\n.ult-modal-container {\n\twidth: 100%;\n\theight: 100%;\n\n\tposition: fixed;\n\n\tdisplay: none;\n\n\ttop: 0;\n\tleft: 0;\n\n\tz-index: 100000;\n}\n\n\t.ult-modal-container--open {\n\t\tdisplay: block;\n\t}\n\n\t.ult-modal__inside {\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\tjustify-content: center;\n\t\talign-items: center;\n\n\t\tdisplay: flex;\n\t}\n\n\t.ult-modal-box {\n\t\twidth: calc(100% - 40px);\n\t\tmax-width: 565px;\n\n\t\tmax-height: calc(100vh - 40px);\n\t\toverflow-y: auto;\n\n\t\tbackground: #fff;\n\n\t\tbox-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.2);\n\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\tposition: relative;\n\n\t\tborder-radius: 8px;\n\n\t\toverflow: hidden;\n\n\t\t&:before {\n\t\t\tcontent: '';\n\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tz-index: 10;\n\n\t\t\tbackground: #fff;\n\n\t\t\topacity: 0;\n\n\t\t\ttransition: opacity 300ms ease-in-out;\n\n\t\t\tborder-radius: 8px;\n\t\t}\n\n\t\t&:after {\n\t\t\tcontent: '';\n\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\n\t\t\tborder-radius: 50%;\n\n\t\t\tposition: absolute;\n\t\t\tleft: 50%;\n\t\t\ttop: 50%;\n\t\t\tz-index: 11;\n\n\t\t\topacity: 0;\n\n\t\t\tuser-select: none;\n\n\t\t\ttransition: opacity 300ms ease-in-out;\n\t\t}\n\n\t\t.ult-modal-container--loading &:before {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\n\t\t\topacity: 1;\n\t\t}\n\n\t\t.ult-modal-container--loading &:after {\n\t\t\twidth: 50px;\n\t\t\theight: 50px;\n\n\t\t\tborder: 3px solid transparent;\n\t\t\tborder-top-color: #202020;\n\n\t\t\tanimation: ult_rotating_centered 2s linear infinite;\n\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t.ult-modal--small .ult-modal-box {\n\t\tmax-width: 385px;\n\t}\n\n\t.ult-modal--large .ult-modal-box {\n\t\tmax-width: 750px;\n\t}\n\n\t.ult-modal-box-header {\n\t\tpadding: 20px;\n\t\ttext-align: center;\n\t}\n\n\t\t.ult-modal-box-header h1,\n\t\t.ult-modal-box-header h2,\n\t\t.ult-modal-box-header h3 {\n\t\t\tfont-size: 30px;\n\t\t\tfont-weight: 500;\n\t\t\tline-height: 32px;\n\n\t\t\tpadding: 20px 20px 0px;\n\t\t\tmargin: 0;\n\t\t}\n\n\t.ult-modal-box-content {\n\t\twidth: 100%;\n\n\t\tposition: relative;\n\t\tdisplay: inline-flex;\n\n\t\toverflow: hidden;\n\t\t\n\t\tflex: 1 1 auto;\n\t}\n\n\t\t/*.ult-modal-box-content:after {\n\t\t\tcontent: '';\n\n\t\t\twidth: 100%;\n\n\t\t\tleft: 0px;\n\t\t\tbottom: 0px;\n\n\t\t\theight: 56px;\n\t\t\t\n\t\t\tposition: absolute;\n\t\t\t\n\t\t\tpointer-events: none;\n\n\t\t\tbackground: linear-gradient(rgba(255, 255, 255, 0), rgb(255, 255, 255));\n\t\t}*/\n\n\t\t.ult-modal {\n\t\t\twidth: 100%;\n\n\t\t\tfont-weight: 400;\n\t\t\tfont-size: 16px;\n\n\t\t\toverflow-y: auto;\n\n\t\t\tmax-height: 300px;\n\n\t\t\tposition: relative;\n\n\t\t\tmargin: 0px;\n\t\t\tpadding: 20px 40px;\n\n\t\t\toutline: none;\n\t\t}\n\n\t\t\t.ult-modal-box-content__inside::-webkit-scrollbar {\n\t\t\t\twidth: 10px;\n\t\t\t\tbackground-color: rgba( 0, 0, 0, .09 );\n\t\t\t\tborder-radius: 150px;\n\t\t\t}\n\n\t\t\t.ult-modal-box-content__inside::-webkit-scrollbar-thumb:vertical {\n\t\t\t\tbackground: #afafaf;\n\t\t\t\tborder-radius: 150px;\n\t\t\t\tbackground-clip: padding-box;\n\t\t\t\tborder: 2px solid rgba( 0, 0, 0, 0 );\n\t\t\t\tmin-height: 10px;\n\t\t\t}\n\n\t\t.ult-modal-box-content__br {\n\t\t\twidth: 100%;\n\t\t\theight: 10px;\n\t\t\tdisplay: block;\n\t\t}\n\n\t.ult-modal-box-footer {\n\t\tflex: 1 1 auto;\n\n\t\ttext-align: center;\n\n\t\tpadding: 20px;\n\t\tmargin: 0px 20px 20px;\n\n\t\toverflow: hidden;\n\t}\n\n\t\t.ult-modal-box-footer__dismiss {\n\t\t\tfont-size: 16px;\n\t\t\tfont-weight: 600;\n\n\t\t\tpadding: 10px 20px;\n\n\t\t\tcursor: pointer;\n\n\t\t\tline-height: 1.1;\n\n\t\t\tborder: 0;\n\n\t\t\tdisplay: inline-block;\n\n\t\t\tbackground: transparent;\n\t\t\tcolor: #0077c5;\n\n\t\t\ttransition: background 150ms ease-in-out;\n\n\t\t\tborder-radius: 150px;\n\t\t}\n\n\t\t.ult-modal-box-footer__dismiss:hover {\n\t\t\tbackground: #dadadc;\n\t\t}\n\n\t\t.ult-modal-box-footer__dismiss:active {\n\t\t\tbackground: #c4c4c6;\n\t\t}\n\n\t@media screen and (max-width: 1000px){\n\t\t.ult-modal-box-header h1,\n\t\t.ult-modal-box-header h2,\n\t\t.ult-modal-box-header h3 {\n\t\t\tfont-size: 24px;\n\t\t\tline-height: 26px;\n\t\t}\n\t}\n\n/**\n * Global modifications\n */\n\nbody.ult-modals--open {\n\toverflow: hidden !important;\n}\n\nbody.ult-modals--dim-background .ult-modal-container {\n\tbackground: rgba(0,0,0,.4);\n}","#ult-modal-container-ult-login {\n\t.ult-box {\n\t\tbox-shadow: none;\n\t\tpadding: 0;\n\t\tborder: 0;\n\t}\n\n\t.ult-modal {\n\t\tmax-height: 680px;\n\t}\n}\n\n.ult-login--recaptcha-error,\n.ult-forgot-password--recaptcha-error,\n.ult-reset-password--recaptcha-error {\n\t.g-recaptcha iframe {\n\t\tborder-radius: 4px;\n\t\tborder: 1px solid #ff0000;\n\t}\n}\n\n#ult-login-modal {\n\t$section: &;\n\n\t&.ult-login-modal--login {\n\t\t#{ $section }__login {\n\t\t\tdisplay: block;\n\t\t}\n\n\t\t#{ $section }__forgot-password {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t&.ult-login-modal--forgot-password {\n\t\t#{ $section }__login {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t#{ $section }__forgot-password {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}","// MODERN UI overrides for Frontend Login (layout_1)\n// This file is loaded last and should only target .uo-modern-ui\n\n.uo-modern-ui {\n  // Flattened Color Palette - No Gradients\n  --modern-primary: #0073aa;\n  --modern-primary-dark: #005a87;\n  --modern-secondary: #00a0d2;\n  --modern-accent: #ff6900;\n  --modern-surface: #ffffff;\n  --modern-background: #f8f9fa;\n  --modern-text-primary: #2d3748;\n  --modern-text-secondary: #718096;\n  --modern-border: #e2e8f0;\n  --modern-error: #e53e3e;\n  --modern-success: #38a169;\n  --modern-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n  --modern-shadow-elevated: 0 4px 8px rgba(0, 0, 0, 0.15);\n  --modern-shadow-focus: 0 0 0 3px rgba(0, 115, 170, 0.3);\n\n  // Main container styling - Clean and Simple\n  #ult-login,\n  #ult-forgot-password,\n  #ult-reset-password {\n    background: var(--modern-background);\n    min-height: 100vh;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    position: relative;\n  }\n\n  // Box styling - Clean and Simple\n  .ult-box {\n    background: var(--modern-surface);\n    border: 1px solid var(--modern-border);\n    border-radius: 12px;\n    box-shadow: var(--modern-shadow);\n    padding: 48px;\n    width: 100%;\n    position: relative;\n    transition: all 0.3s ease;\n    box-sizing: border-box;\n    margin-left: auto;\n    margin-right: auto;\n\n    &::before {\n      background: var(--modern-primary);\n      border-radius: 10px 10px 0 0;\n      content: \"\";\n      height: 7px;\n      left: 0;\n      position: absolute;\n      right: 0;\n      top: 0px;\n      z-index: 1;\n    }\n\n    &:hover {\n      box-shadow: var(--modern-shadow-elevated);\n    }\n  }\n\n  // Typography - Clean Headers\n  .ult-form__title {\n    font-size: 32px;\n    font-weight: 700;\n    color: var(--modern-primary);\n    margin-bottom: 12px;\n    text-align: center;\n    letter-spacing: -1px;\n    position: relative;\n    \n    &::after {\n      content: '';\n      position: absolute;\n      bottom: -8px;\n      left: 50%;\n      transform: translateX(-50%);\n      width: 60px;\n      height: 4px;\n      background: var(--modern-primary);\n      border-radius: 2px;\n    }\n  }\n\n  .ult-form__description {\n    font-size: 16px;\n    color: var(--modern-text-primary);\n    text-align: center;\n    margin-bottom: 40px;\n    line-height: 1.6;\n    font-weight: 400;\n  }\n\n  // Form container\n  .ult-form__container {\n    background: transparent;\n    border-radius: 0;\n    padding: 0;\n    box-shadow: none;\n  }\n\n  // Form fields - FLOATING LABELS\n  .ult-form__row {\n    margin-bottom: 32px;\n    position: relative;\n  }\n\n  .ult-form-field__header {\n    margin-bottom: 12px;\n  }\n\n  .ult-form-field__label {\n    font-size: 14px;\n    font-weight: 600;\n    color: var(--modern-text-primary);\n    margin-bottom: 8px;\n    display: block;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n  }\n\n  // Form labels (username, password, etc.)\n  label {\n    color: var(--modern-text-primary);\n    font-weight: 600;\n    font-size: 14px;\n  }\n\n  .ult-form__input {\n    width: 100%;\n    padding: 20px 24px;\n    border: 2px solid var(--modern-border);\n    border-radius: 8px;\n    font-size: 16px;\n    background: var(--modern-surface);\n    color: var(--modern-text-primary);\n    transition: all 0.3s ease;\n    box-sizing: border-box;\n\n    &:focus {\n      outline: none;\n      border-color: var(--modern-primary);\n      box-shadow: var(--modern-shadow-focus);\n    }\n\n    &:hover {\n      border-color: var(--modern-primary);\n    }\n\n    &::placeholder {\n      color: var(--modern-text-secondary);\n      font-weight: 400;\n    }\n  }\n\n  // Submit button - Clean Solid Button\n  .ult-form__submit-btn,\n  #ult-login-submit,\n  #ult-forgot-password-submit-btn,\n  #ult-reset-password-submit-btn,\n  #ult-login-form #ult-login-submit,\n  #ult-2fa-validation-form--templated #submit,\n  #ult-2fa-validation-form--templated input[name=wp-2fa-email-code-resend] {\n    width: 100% !important;\n    padding: 18px 32px !important;\n    background: var(--modern-primary) !important;\n    color: white !important;\n    border: none !important;\n    border-radius: 8px !important;\n    font-size: 16px !important;\n    font-weight: 600 !important;\n    cursor: pointer;\n    transition: all 0.3s ease;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n    margin-top: 16px;\n    box-shadow: var(--modern-shadow);\n    line-height: 1.4;\n\n    &:hover {\n      background: var(--modern-primary-dark) !important;\n      color: white !important;\n      box-shadow: var(--modern-shadow-elevated);\n    }\n\n    &:focus {\n      outline: none;\n      box-shadow: var(--modern-shadow-focus) !important;\n    }\n\n    &:active {\n      transform: translateY(1px);\n    }\n  }\n\n  // Checkbox styling - CUSTOM CHECKBOX\n  .ult-form__row--remember {\n    display: flex;\n    align-items: center;\n    margin-bottom: 32px;\n  }\n\n  #ult-login-remember {\n    width: 20px;\n    height: 20px;\n    margin-right: 12px;\n    accent-color: var(--modern-primary);\n    border-radius: 4px;\n  }\n\n  .ult-form__row--remember label {\n    font-size: 14px;\n    color: var(--modern-text-primary);\n    margin: 0;\n    cursor: pointer;\n    font-weight: 500;\n  }\n\n  // Footer links - PREMIUM LINKS\n  .ult-form__footer {\n    margin-top: 40px;\n    padding-top: 32px;\n    border-top: 1px solid var(--modern-border);\n    text-align: center;\n  }\n\n  .ult-form__footer a {\n    color: var(--modern-primary);\n    text-decoration: none;\n    font-weight: 600;\n    font-size: 14px;\n    transition: all 0.3s ease;\n    position: relative;\n    padding: 8px 16px;\n    border-radius: 8px;\n\n    &::before {\n      content: '';\n      position: absolute;\n      bottom: 0;\n      left: 50%;\n      width: 0;\n      height: 2px;\n      background: var(--modern-primary);\n      transition: all 0.3s ease;\n      transform: translateX(-50%);\n    }\n\n    &:hover {\n      color: var(--modern-primary-dark);\n      background: rgba(0, 115, 170, 0.1);\n      \n      &::before {\n        width: 80%;\n      }\n    }\n  }\n\n  .ult-form-footer__forgot-password,\n  .ult-form-footer__signup,\n  .ult-form-footer__login {\n    margin-bottom: 16px;\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Notices/Error messages - Clean Notices\n  .ult-notice {\n    border-radius: 8px;\n    padding: 20px 24px;\n    margin-bottom: 24px;\n    font-weight: 500;\n    border: none;\n    position: relative;\n  }\n\n  .ult-notice--error {\n    background: rgba(229, 62, 62, 0.1);\n    color: var(--modern-error);\n    border-left: 4px solid var(--modern-error);\n  }\n\n  .ult-notice--success {\n    background: rgba(56, 161, 105, 0.1);\n    color: var(--modern-success);\n    border-left: 4px solid var(--modern-success);\n  }\n\n  // Validation styling\n  .ult-form__validation {\n    margin-bottom: 24px;\n  }\n\n  .ult-form__validation--has-error {\n    .ult-form__input {\n      border-color: var(--modern-error);\n      animation: shake 0.5s ease-in-out;\n    }\n  }\n\n  // reCAPTCHA styling\n  .ult-form-recaptcha {\n    margin-top: 20px;\n  }\n\n  // Responsive design\n  @media (max-width: 768px) {\n    .ult-box {\n      padding: 32px 24px;\n      margin: 0;\n      border-radius: 12px;\n    }\n\n    .ult-form__title {\n      font-size: 28px;\n    }\n\n    .ult-form__input {\n      padding: 18px 20px;\n    }\n\n    .ult-form__submit-btn,\n    #ult-login-submit,\n    #ult-forgot-password-submit-btn,\n    #ult-reset-password-submit-btn {\n      padding: 16px 24px;\n    }\n  }\n\n  // Loading states\n  .ult-form__submit-btn:disabled,\n  #ult-login-submit:disabled,\n  #ult-forgot-password-submit-btn:disabled,\n  #ult-reset-password-submit-btn:disabled {\n    opacity: 0.6;\n    cursor: not-allowed;\n    transform: none;\n  }\n\n  // Focus management\n  .ult-form__input:focus,\n  .ult-form__submit-btn:focus,\n  #ult-login-submit:focus,\n  #ult-forgot-password-submit-btn:focus,\n  #ult-reset-password-submit-btn:focus {\n    outline: none;\n  }\n\n  // Simple Animations\n  @keyframes shake {\n    0%, 100% { transform: translateX(0); }\n    25% { transform: translateX(-5px); }\n    75% { transform: translateX(5px); }\n  }\n\n  // Simple form appearance animation\n  .ult-box {\n    animation: slideUp 0.4s ease;\n  }\n\n  @keyframes slideUp {\n    from {\n      opacity: 0;\n      transform: translateY(20px);\n    }\n    to {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n} \n\n// ========================================\n// LOGIN FORM\n// ========================================\n.uo_loginForm {\n\t.galogin {\n\t\tmargin-top: 15px;\n\t}\n\tform {\n    .login-remember {\n      label {\n        display: flex;\n        align-items: center;\n      }\n    }\n\t\t.login-username {\n\t\t\tinput[type=text] {\n\t\t\t\theight: 40px;\n\t\t\t}\n\t\t}\n    .ult-form-password-wrapper {\n      height: 40px;\n    }\n\t\t.login-password {\n\t\t\tinput[type=password] {\n\t\t\t\theight: 40px;\n        background: #fff;\n\t\t\t}\n\t\t}\n\t}\n}"],"names":[],"sourceRoot":""}
  • uncanny-learndash-toolkit/trunk/src/assets/frontend/dist/bundle.min.js

    r3395254 r3407115  
    11/*! For license information please see bundle.min.js.LICENSE.txt */
    2 (()=>{var t={29:t=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function n(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,o(i.key),i)}}function o(t){var n=function(t,n){if("object"!=e(t)||!t)return t;var o=t[Symbol.toPrimitive];if(void 0!==o){var i=o.call(t,"string");if("object"!=e(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(n)?n:String(n)}var i=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}var e,o;return e=t,o=[{key:"handleResponse",value:function(t){return!!(t&&t.data&&!0===t.data.requires_redirect&&t.data.redirect_url&&"undefined"!=typeof window&&window.location)&&(window.location.href=t.data.redirect_url,!0)}}],null&&n(e.prototype,null),o&&n(e,o),Object.defineProperty(e,"prototype",{writable:!1}),t}();"undefined"!=typeof window&&(window.UltimateLogin2FARedirect=i),t.exports&&(t.exports=i)},977:function(t,e,n){var o,i;window.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(t){var e,n=(this.document||this.ownerDocument).querySelectorAll(t),o=this;do{for(e=n.length;0<=--e&&n.item(e)!==o;);}while(e<0&&(o=o.parentElement));return o}),i=void 0!==n.g?n.g:"undefined"!=typeof window?window:this,o=function(){return function(t){"use strict";var e={},n={},o=function(e){n[e.type]&&n[e.type].forEach((function(n){var o,i;o=e.target,i=n.selector,(-1<["*","window","document","document.documentElement",t,document,document.documentElement].indexOf(i)||("string"!=typeof i&&i.contains?i===o||i.contains(o):o.closest(i)))&&n.callback(e)}))};return e.on=function(e,i,r){i&&r&&e.split(",").forEach((function(e){e=e.trim(),n[e]||(n[e]=[],t.addEventListener(e,o,!0)),n[e].push({selector:i,callback:r})}))},e.off=function(e,i,r){e.split(",").forEach((function(e){if(e=e.trim(),n[e]){if(n[e].length<2||!i)return delete n[e],void t.removeEventListener(e,o,!0);var s=function(t,e,n){for(var o=0;o<t.length;o++)if(t[o].selector===e&&t[o].callback.toString()===n.toString())return o;return-1}(n[e],i,r);s<0||n[e].splice(s,1)}}))},e.once=function(t,n,o){e.on(t,n,(function i(r){o(r),e.off(t,n,i)}))},e.get=function(){var t={};for(var e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);return t},e}(i)}.apply(e,[]),void 0===o||(t.exports=o)}},e={};function n(o){var i=e[o];if(void 0!==i)return i.exports;var r=e[o]={exports:{}};return t[o].call(r.exports,r,r.exports,n),r.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function o(n){for(var o=1;o<arguments.length;o++){var i=null!=arguments[o]?arguments[o]:{};o%2?e(Object(i),!0).forEach((function(e){var o,r,s,a;o=n,r=e,s=i[e],a=function(e,n){if("object"!=t(e)||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var i=o.call(e,"string");if("object"!=t(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(r),(r="symbol"==t(a)?a:String(a))in o?Object.defineProperty(o,r,{value:s,enumerable:!0,configurable:!0,writable:!0}):o[r]=s})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):e(Object(i)).forEach((function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(i,t))}))}return n}var i=function(t){return null!=t},r=function(t){var e=!0;return i(t)&&(e=Array.isArray(t)?0==t.length:s(t)?0==Object.keys(t).length:""==t),e},s=function(t){return t===Object(t)},a=function(){var t=arguments.length>1?arguments[1]:void 0,e=arguments.length>2?arguments[2]:void 0,n="ult--fade-".concat(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"in");e=i(e)?e:function(){},t.classList.add(n),setTimeout((function(){t.classList.remove(n),e()}),280)};function l(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{var n=new CustomEvent(t,{detail:e});document.dispatchEvent(n)}catch(t){}}var c='<svg xmlns="http://www.w3.org/2000/svg" fill="currentcolor" viewBox="0 0 576 512"><path d="M279.6 160.4C282.4 160.1 285.2 160 288 160C341 160 384 202.1 384 256C384 309 341 352 288 352C234.1 352 192 309 192 256C192 253.2 192.1 250.4 192.4 247.6C201.7 252.1 212.5 256 224 256C259.3 256 288 227.3 288 192C288 180.5 284.1 169.7 279.6 160.4zM480.6 112.6C527.4 156 558.7 207.1 573.5 243.7C576.8 251.6 576.8 260.4 573.5 268.3C558.7 304 527.4 355.1 480.6 399.4C433.5 443.2 368.8 480 288 480C207.2 480 142.5 443.2 95.42 399.4C48.62 355.1 17.34 304 2.461 268.3C-.8205 260.4-.8205 251.6 2.461 243.7C17.34 207.1 48.62 156 95.42 112.6C142.5 68.84 207.2 32 288 32C368.8 32 433.5 68.84 480.6 112.6V112.6zM288 112C208.5 112 144 176.5 144 256C144 335.5 208.5 400 288 400C367.5 400 432 335.5 432 256C432 176.5 367.5 112 288 112z"/></svg>';function u(t){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u(t)}function d(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,m(o.key),o)}}function m(t){var e=function(t,e){if("object"!=u(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=u(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==u(e)?e:String(e)}var f=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),e&&(e.closest(".".concat(this.cssClasses.passwordWrapper))||(this.$field=e,this.addWrapper(),this.contentVisibilityToggle(),this.styleFocusOnWrapper()))}var e,n;return e=t,(n=[{key:"addWrapper",value:function(){this.$passwordWrapper=document.createElement("label"),this.$passwordWrapper.classList.add(this.cssClasses.passwordWrapper),this.$field.insertAdjacentElement("afterEnd",this.$passwordWrapper),this.$passwordWrapper.appendChild(this.$field)}},{key:"contentVisibilityToggle",value:function(){var t=this;this.$passwordWrapper.insertAdjacentHTML("beforeEnd",'\n            <div class="'.concat(this.cssClasses.passwordVisibilityToggle,'">\n                ').concat(c,"\n            </div>\n        "));var e=this.$passwordWrapper.querySelector(".".concat(this.cssClasses.passwordVisibilityToggle));e.addEventListener("click",(function(){var n="text"==t.$field.getAttribute("type");n&&(t.$field.setAttribute("type","password"),e.innerHTML=c),n||(t.$field.setAttribute("type","text"),e.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" fill="currentcolor" viewBox="0 0 640 512"><path d="M150.7 92.77C195 58.27 251.8 32 320 32C400.8 32 465.5 68.84 512.6 112.6C559.4 156 590.7 207.1 605.5 243.7C608.8 251.6 608.8 260.4 605.5 268.3C592.1 300.6 565.2 346.1 525.6 386.7L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L150.7 92.77zM223.1 149.5L313.4 220.3C317.6 211.8 320 202.2 320 191.1C320 180.5 316.1 169.7 311.6 160.4C314.4 160.1 317.2 159.1 320 159.1C373 159.1 416 202.1 416 255.1C416 269.7 413.1 282.7 407.1 294.5L446.6 324.7C457.7 304.3 464 280.9 464 255.1C464 176.5 399.5 111.1 320 111.1C282.7 111.1 248.6 126.2 223.1 149.5zM320 480C239.2 480 174.5 443.2 127.4 399.4C80.62 355.1 49.34 304 34.46 268.3C31.18 260.4 31.18 251.6 34.46 243.7C44 220.8 60.29 191.2 83.09 161.5L177.4 235.8C176.5 242.4 176 249.1 176 255.1C176 335.5 240.5 400 320 400C338.7 400 356.6 396.4 373 389.9L446.2 447.5C409.9 467.1 367.8 480 320 480H320z"/></svg>')}))}},{key:"styleFocusOnWrapper",value:function(){var t=this;this.$field.addEventListener("focus",(function(){t.$passwordWrapper.classList.add("".concat(t.cssClasses.passwordWrapper,"--focus"))})),this.$field.addEventListener("blur",(function(){t.$passwordWrapper.classList.remove("".concat(t.cssClasses.passwordWrapper,"--focus"))}))}},{key:"cssClasses",get:function(){return{passwordWrapper:"ult-form-password-wrapper",passwordVisibilityToggle:"ult-form-password-wrapper-eye-toggle"}}}])&&d(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),t}();function h(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&y(t,e)}function y(t,e){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},y(t,e)}function b(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,o=p(t);if(e){var i=p(this).constructor;n=Reflect.construct(o,arguments,i)}else n=o.apply(this,arguments);return function(t,e){if(e&&("object"===g(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(this,n)}}function p(t){return p=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},p(t)}function g(t){return g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},g(t)}function v(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function w(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,k(o.key),o)}}function C(t,e,n){return e&&w(t.prototype,e),n&&w(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function k(t){var e=function(t,e){if("object"!=g(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=g(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==g(e)?e:String(e)}var L=n(977),S=function(){function t(){v(this,t),this.getElements(),this.shouldInvokeMethods()&&(this.validateFormSubmission(),this.handleReCaptchaChanges())}return C(t,[{key:"getElements",value:function(){this.$elements={},this.cssClasses={}}},{key:"formData",get:function(){return{}}},{key:"ajaxAction",get:function(){return""}},{key:"validateFormSubmission",value:function(){var t=this;i(this.$elements.mainForm)&&(this.$elements.mainForm.onsubmit=function(e){var n=!0;t.hasReCAPTCHA()&&!t.isCaptchaChecked()&&(t.$elements.container.classList.add(t.cssClasses.reCAPTCHAerror),n=!1,t.setError(UncannyToolkit.frontendLogin.i18n.checkReCaptcha),console.error("✋Frontend Login: The form is using reCAPTCHA, but you didn't pass the verification")),l("uncanny-toolkit/frontend-login/".concat(t.id,"/validated"),{isValid:n}),n?t.submitForm(e):(e.preventDefault(),console.error("✋Frontend Login: Submission prevented"))})}},{key:"submitForm",value:function(t){var e=this;this.setError(!1),this.setLoadingStatus(!0),this.setButtonDisableStatus(!0);var n=function(){l("uncanny-toolkit/frontend-login/".concat(e.id,"/submitting")),function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};e=o(o({},e),{action:t}),i(s.includeNonce)&&!s.includeNonce||(e.nonce=UncannyToolkit.ajax.nonce),fetch(UncannyToolkit.ajax.url,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","Cache-Control":"no-cache"},body:new URLSearchParams(e)}).then((function(t){if(t.ok)return t.redirected?{success:!1,code:302}:t.json();throw i(r)&&r(o(o({},t),{success:!1})),Error(UncannyToolkit.i18n.error.generic)})).then((function(t){t.success?i(n)&&n(t):i(r)&&r(o(o({},t),{success:!1}))})).catch((function(t){console.error("✋Uncanny Toolkit: The fetch call threw an error"),i(r)&&r(o(o({},t),{success:!1}))}))}(e.ajaxAction,e.formData,(function(t){e.setLoadingStatus(!1),e.setButtonDisableStatus(!1),t.success?(l("uncanny-toolkit/frontend-login/".concat(e.id,"/submitted"),{success:!0}),e.afterValidSubmission(t)):(l("uncanny-toolkit/frontend-login/".concat(e.id,"/submitted"),{success:!1,message:i(t.message)?t.message:UncannyToolkit.i18n.error.generic}),i(t.message)?e.setError(t.message):e.setError(UncannyToolkit.i18n.error.generic),e.resetReCAPTCHA())}),(function(t){i(t.code)&&302==t.code&&UncannyToolkit.integrity.shouldPreventConcurrentLogin&&(t.message=UncannyToolkit.i18n.preventConcurrentLogin),window.UltimateLogin2FARedirect&&window.UltimateLogin2FARedirect.handleResponse(t)||(l("uncanny-toolkit/frontend-login/".concat(e.id,"/submitted"),{success:!1,message:i(t.message)?t.message:UncannyToolkit.i18n.error.generic}),i(t.message)?e.setError(t.message):e.setError(UncannyToolkit.i18n.error.generic),e.resetReCAPTCHA(),e.setLoadingStatus(!1),e.setButtonDisableStatus(!1))}),{includeNonce:!1})};!this.isUsingLearnDashReCaptcha()&&UncannyToolkit.frontendLogin.hasAjaxEnabled?(t.preventDefault(),n()):UncannyToolkit.frontendLogin.hasAjaxEnabled?(t.preventDefault(),this.handleLearnDashReCaptcha((function(){n()}))):this.hasLearnDashReCaptchField()||(t.preventDefault(),this.handleLearnDashReCaptcha((function(){e.$elements.mainForm.submit()})))}},{key:"afterValidSubmission",value:function(t){}},{key:"setLoadingStatus",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];UncannyToolkit.frontendLogin.ui.showAnimationOnSubmit&&(t?(this.$elements.container.classList.add(this.cssClasses.loading),this.$elements.submitButton.container.classList.add(this.cssClasses.btnLoading),l("uncanny-toolkit/frontend-login/".concat(this.id,"/set-loading"),{isLoading:!0})):(this.$elements.container.classList.remove(this.cssClasses.loading),this.$elements.submitButton.container.classList.remove(this.cssClasses.btnLoading),l("uncanny-toolkit/frontend-login/".concat(this.id,"/set-loading"),{isLoading:!1})))}},{key:"setButtonDisableStatus",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];UncannyToolkit.frontendLogin.ui.buttonDisabledOnSubmit&&(t?(this.$elements.container.classList.add(this.cssClasses.disabled),this.$elements.submitButton.container.classList.add(this.cssClasses.btnDisabled),this.$elements.submitButton.button.setAttribute("disabled",!0),l("uncanny-toolkit/frontend-login/".concat(this.id,"/disable-button"),{disable:!0})):(this.$elements.container.classList.remove(this.cssClasses.disabled),this.$elements.submitButton.container.classList.remove(this.cssClasses.btnDisabled),this.$elements.submitButton.button.removeAttribute("disabled"),l("uncanny-toolkit/frontend-login/".concat(this.id,"/disable-button"),{disable:!1})))}},{key:"setError",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];r(t)?(this.$elements.errorNotice.container.classList.remove(this.cssClasses.noticeHasError),this.$elements.errorNotice.textNode.textContent="",this.$elements.container.classList.remove(this.cssClasses.reCAPTCHAerror)):(this.$elements.errorNotice.container.classList.add(this.cssClasses.noticeHasError),this.$elements.errorNotice.textNode.innerHTML=t)}},{key:"handleReCaptchaChanges",value:function(){var t=this;UncannyToolkit.frontendLogin.reCaptcha={correct:function(e){t.setError(!1)}}}},{key:"hasReCAPTCHA",value:function(){return i(this.$elements.formFields.reCAPTCHA)}},{key:"getReCAPTCHAResponse",value:function(){var t=this.$elements.formFields.reCAPTCHA.getAttribute("data-id");return grecaptcha.getResponse(t)}},{key:"resetReCAPTCHA",value:function(){try{var t=this.$elements.formFields.reCAPTCHA.getAttribute("data-id");grecaptcha.reset(t)}catch(t){}}},{key:"isOnModal",value:function(){return i(UncannyToolkit.modals["ult-login"])}},{key:"isCaptchaChecked",value:function(){return!r(this.getReCAPTCHAResponse())}},{key:"shouldInvokeMethods",value:function(){return i(this.$elements.container)}},{key:"handleLearnDashReCaptcha",value:function(t){var e=this;this.isUsingLearnDashReCaptcha()?grecaptcha.ready((function(){grecaptcha.execute(LD_TP.site_key,{action:"submit"}).then((function(n){i(e.$elements.mainForm)&&e.$elements.mainForm.insertAdjacentHTML("afterbegin",'<input type="hidden" id="ult-form-ld-recaptcha" name="token" value="'.concat(n,'">')),i(t)&&t()}))})):i(t)&&t()}},{key:"isUsingLearnDashReCaptcha",value:function(){return i(window.grecaptcha)&&i(window.LD_TP)&&i(LD_TP.site_key)}},{key:"hasLearnDashReCaptchField",value:function(){var t=!1;return i(this.$elements.mainForm)&&(t=i(this.$elements.mainForm.querySelector('input[name="token"]'))),t}}]),t}(),$=function(t){h(n,t);var e=b(n);function n(){var t;return v(this,n),t=e.call(this),new f(t.$elements.formFields.password),t}return C(n,[{key:"getElements",value:function(){this.$elements={container:document.getElementById("ult-login"),mainForm:document.getElementById("ult-login-form"),submitButton:{container:document.getElementsByClassName("login-submit")[0],button:document.getElementById("ult-login-submit")},errorNotice:{container:document.querySelector("#ult-login .ult-form__validation"),textNode:document.querySelector("#ult-login .ult-notice-text")},formFields:{email:document.getElementById("ult-login-email"),password:document.getElementById("ult-login-password"),redirectTo:document.querySelector('#ult-login .login-submit input[name="redirect_to"]'),reCAPTCHA:document.querySelector("#ult-login .ult-form-recaptcha"),rememberMe:document.getElementById("ult-login-remember")}}}},{key:"id",get:function(){return"login"}},{key:"ajaxAction",get:function(){return"ult-login"}},{key:"cssClasses",get:function(){return{reCAPTCHAerror:"ult-login--recaptcha-error",loading:"ult-login--loading",disabled:"ult-login--disabled",btnLoading:"ult-form__submit-btn--loading",btnDisabled:"ult-form__submit-btn--disabled",noticeHasError:"ult-form__validation--has-error"}}},{key:"formData",get:function(){var t={email:this.$elements.formFields.email.value,password:this.$elements.formFields.password.value,redirectTo:this.$elements.formFields.redirectTo.value},e=Object.assign({},t,UOToolkitFrontEndLoginFormData);return i(this.$elements.formFields.rememberMe)&&(e.rememberMe=this.$elements.formFields.rememberMe.checked),this.hasReCAPTCHA()&&(e["g-recaptcha-response"]=this.getReCAPTCHAResponse()),i(this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha"))&&(e.token=this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha").value),i(this.$elements.mainForm.querySelector('input[name="uo_is_login_modal"]'))&&(e.uo_is_login_modal=this.$elements.mainForm.querySelector('input[name="uo_is_login_modal"]').value),e}},{key:"afterValidSubmission",value:function(t){var e;this.setLoadingStatus(!0),this.setButtonDisableStatus(!0),window.UltimateLogin2FARedirect&&window.UltimateLogin2FARedirect.handleResponse(t)||null!=t&&null!==(e=t.twoFactor)&&void 0!==e&&null!==(e=e._meta)&&void 0!==e&&e.enabled||(r(t.redirectTo)?window.location.reload():window.location.href=t.redirectTo)}}]),n}(S),T=function(t){h(n,t);var e=b(n);function n(){return v(this,n),e.apply(this,arguments)}return C(n,[{key:"getElements",value:function(){this.$elements={container:document.getElementById("ult-forgot-password"),boxContent:document.querySelector("#ult-forgot-password .ult-form__content"),mainForm:document.getElementById("ult-forgot-password-form"),submitButton:{container:document.querySelector(".ult-form__row--submit"),button:document.getElementById("ult-forgot-password-submit-btn")},errorNotice:{container:document.querySelector("#ult-forgot-password .ult-form__validation"),textNode:document.querySelector("#ult-forgot-password .ult-notice-text")},formFields:{email:document.getElementById("ult-forgot-email"),reCAPTCHA:document.querySelector("#ult-forgot-password .ult-form-recaptcha")}}}},{key:"id",get:function(){return"forgot-password"}},{key:"ajaxAction",get:function(){return"ult-forgot-password"}},{key:"cssClasses",get:function(){return{reCAPTCHAerror:"ult-forgot-password--recaptcha-error",loading:"ult-forgot-password--loading",disabled:"ult-forgot-password--disabled",btnLoading:"ult-form__submit-btn--loading",btnDisabled:"ult-form__submit-btn--disabled",noticeHasError:"ult-form__validation--has-error"}}},{key:"formData",get:function(){var t={email:this.$elements.formFields.email.value},e=Object.assign({},t,UOToolkitFrontEndLoginFormData);return this.hasReCAPTCHA()&&(e["g-recaptcha-response"]=this.getReCAPTCHAResponse()),i(this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha"))&&(e.token=this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha").value),e}},{key:"afterValidSubmission",value:function(t){this.$elements.boxContent.innerHTML=t.message}}]),n}(S),A=function(t){h(n,t);var e=b(n);function n(){return v(this,n),e.apply(this,arguments)}return C(n,[{key:"getElements",value:function(){this.$elements={container:document.getElementById("ult-reset-password"),boxContent:document.querySelector("#ult-reset-password .ult-form__content"),mainForm:document.getElementById("ult-reset-password-form"),submitButton:{container:document.querySelector(".ult-form__row--submit"),button:document.getElementById("ult-reset-password-submit-btn")},errorNotice:{container:document.querySelector("#ult-reset-password .ult-form__validation"),textNode:document.querySelector("#ult-reset-password .ult-notice-text")},formFields:{password:document.getElementById("ult-reset-new-password"),passwordRepeat:document.getElementById("ult-reset-confirm-password"),reCAPTCHA:document.querySelector("#ult-reset-password .ult-form-recaptcha")}}}},{key:"id",get:function(){return"reset-password"}},{key:"ajaxAction",get:function(){return"ult-reset-password"}},{key:"cssClasses",get:function(){return{reCAPTCHAerror:"ult-reset-password--recaptcha-error",loading:"ult-reset-password--loading",disabled:"ult-reset-password--disabled",btnLoading:"ult-form__submit-btn--loading",btnDisabled:"ult-form__submit-btn--disabled",noticeHasError:"ult-form__validation--has-error"}}},{key:"formData",get:function(){var t={password:this.$elements.formFields.password.value,passwordRepeat:this.$elements.formFields.passwordRepeat.value};return this.hasReCAPTCHA()&&(t["g-recaptcha-response"]=this.getReCAPTCHAResponse()),i(this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha"))&&(t.token=this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha").value),t}},{key:"afterValidSubmission",value:function(t){this.$elements.boxContent.innerHTML=t.message}}]),n}(S),E=function(){function t(){v(this,t),this.shouldInvokeMethods()?(this.getElements(),this.handleContainerVisiblity()):i(UncannyToolkit.frontendLogin)&&i(UncannyToolkit.frontendLogin.currentPageIsLoginPage)&&UncannyToolkit.frontendLogin.currentPageIsLoginPage&&this.handleModalInLoginPage()}return C(t,[{key:"getElements",value:function(){this.$elements={container:document.getElementById("ult-login-modal"),loginShowButton:document.getElementById("ult-form-footer-login"),forgotPasswordShowButton:document.getElementById("ult-form-footer-forgot-password")}}},{key:"handleContainerVisiblity",value:function(){var t=this;i(this.$elements.forgotPasswordShowButton)&&this.$elements.forgotPasswordShowButton.addEventListener("click",(function(e){e.preventDefault(),t.showSection("forgot-password")})),i(this.$elements.loginShowButton)&&this.$elements.loginShowButton.addEventListener("click",(function(e){e.preventDefault(),t.showSection("login")}))}},{key:"showSection",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"login";this.$elements.container.classList.remove("ult-login-modal--login","ult-login-modal--forgot-password"),"login"==t?this.$elements.container.classList.add("ult-login-modal--login"):"forgot-password"==t&&this.$elements.container.classList.add("ult-login-modal--forgot-password")}},{key:"shouldInvokeMethods",value:function(){return i(UncannyToolkit.frontendLogin)&&i(UncannyToolkit.frontendLogin.currentPageIsLoginPage)&&!UncannyToolkit.frontendLogin.currentPageIsLoginPage&&i(UncannyToolkit.modals["ult-login"])}},{key:"handleModalInLoginPage",value:function(){L.on("click",'[href*="ult-modal-open----ult-login"]',(function(t){t.preventDefault(),location.reload()}))}}]),t}(),P=function(){function t(){var e,n,o;v(this,t),e=this,o="login-2nd-factor",(n=k(n="id"))in e?Object.defineProperty(e,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[n]=o,this.$form&&this.listenSubmission()}return C(t,[{key:"listenSubmission",value:function(){var t=this;this.$form.addEventListener("submit",(function(e){t.setLoadingStatus(!0),t.setButtonDisableStatus(!0)}))}},{key:"setLoadingStatus",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];UncannyToolkit.frontendLogin.ui.showAnimationOnSubmit&&(t?(this.$elements.container.classList.add(this.cssClasses.loading),this.$elements.submitButton.container.classList.add(this.cssClasses.btnLoading),l("uncanny-toolkit/frontend-login/".concat(this.id,"/set-loading"),{isLoading:!0})):(this.$elements.container.classList.remove(this.cssClasses.loading),this.$elements.submitButton.container.classList.remove(this.cssClasses.btnLoading),l("uncanny-toolkit/frontend-login/".concat(this.id,"/set-loading"),{isLoading:!1})))}},{key:"setButtonDisableStatus",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];UncannyToolkit.frontendLogin.ui.buttonDisabledOnSubmit&&(t?(this.$elements.container.classList.add(this.cssClasses.disabled),this.$elements.submitButton.container.classList.add(this.cssClasses.btnDisabled),this.$elements.submitButton.button.setAttribute("disabled",!0),l("uncanny-toolkit/frontend-login/".concat(this.id,"/disable-button"),{disable:!0})):(this.$elements.container.classList.remove(this.cssClasses.disabled),this.$elements.submitButton.container.classList.remove(this.cssClasses.btnDisabled),this.$elements.submitButton.button.removeAttribute("disabled"),l("uncanny-toolkit/frontend-login/".concat(this.id,"/disable-button"),{disable:!1})))}},{key:"cssClasses",get:function(){return{loading:"ult-login--loading",disabled:"ult-login--disabled",btnLoading:"ult-form__submit-btn--loading",btnDisabled:"ult-form__submit-btn--disabled"}}},{key:"$elements",get:function(){return{container:document.getElementById("ult-login"),submitButton:{container:this.$form.querySelector(".submit"),button:this.$form.querySelector('.submit input[type="submit"]')}}}},{key:"$form",get:function(){return document.getElementById("ult-2fa-validation-form--templated")}}]),t}(),_=n(29),D=n.n(_);function O(t){return O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},O(t)}function j(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,B(o.key),o)}}function B(t){var e=function(t,e){if("object"!=O(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=O(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==O(e)?e:String(e)}const F=function(){function t(){var e=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.whenReady((function(){e.renderReCaptchas()}))}var e,n;return e=t,(n=[{key:"whenReady",value:function(t){window.UncannyToolkit.reCaptchaInit=function(){t()}}},{key:"renderReCaptchas",value:function(){var t=document.querySelectorAll(".ult-form-recaptcha");[].forEach.call(t,(function(t){var e=window.grecaptcha.render(t,{sitekey:t.getAttribute("data-sitekey"),callback:t.getAttribute("data-callback")});t.setAttribute("data-id",e)}))}}])&&j(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),t}();function R(t){return R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},R(t)}function x(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function M(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,H(o.key),o)}}function U(t,e,n){return e&&M(t.prototype,e),n&&M(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function H(t){var e=function(t,e){if("object"!=R(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=R(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==R(e)?e:String(e)}var q=n(977),I=function(){function t(){x(this,t),this.allModals=[],UncannyToolkit.modals={},this.getElements(),this.createModals()}return U(t,[{key:"getElements",value:function(){this.$elements={modals:document.querySelectorAll(".ult-modal")}}},{key:"createModals",value:function(){var t=this;[].forEach.call(this.$elements.modals,(function(e){var n=i(e.getAttribute("data-id"))?e.getAttribute("data-id"):"";if(!t.allModals.includes(n)){var o=new W(e);t.allModals.push(n),UncannyToolkit.modals[n]=o}}))}}]),t}(),W=function(){function t(e){x(this,t),this.getModalData(e),this.renderModal(e),this.handleModalOpen(),this.handleClickOutsideTheModal()}return U(t,[{key:"getModalData",value:function(t){this.modalData={id:i(t.getAttribute("data-id"))?t.getAttribute("data-id"):"",title:i(t.getAttribute("data-title"))?t.getAttribute("data-title"):"",btnDismiss:!i(t.getAttribute("data-btn-dismiss"))||!!parseInt(t.getAttribute("data-btn-dismiss")),dimBackground:!i(t.getAttribute("data-dim-background"))||!!parseInt(t.getAttribute("data-dim-background"))}}},{key:"renderModal",value:function(t){var e=document.createElement("div");e.id="ult-modal-container-".concat(this.modalData.id),e.classList.add("ult-modal-container"),e.setAttribute("data-id",this.modalData.id),e.innerHTML='\n\t\t\t<div class="ult-modal__inside">\n\t\t\t\t<div class="ult-modal-box">\n\t\t\t\t\t'.concat(r(this.modalData.title)?"":'\n\t\t\t\t\t\t<div class="ult-modal-box-header">\n\t\t\t\t\t\t\t<h2>'.concat(this.modalData.title,"</h2>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t"),'\n\n\t\t\t\t\t<div class="ult-modal-box-content"></div>\n\n\t\t\t\t\t').concat(this.modalData.btnDismiss?'\n\t\t\t\t\t\t<div class="ult-modal-box-footer">\n\t\t\t\t\t\t\t<button class="ult-modal-box-footer__dismiss">\n\t\t\t\t\t\t\t\t'.concat(UncannyToolkit.i18n.dismiss,"\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t"):"","\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t"),e.querySelector(".ult-modal-box-content").appendChild(t),document.body.appendChild(e),this.$elements={container:e,box:e.querySelector(".ult-modal-box"),content:e.querySelector(".ult-modal-box-content .ult-modal")},this.modalData.btnDismiss&&(this.$elements.dismissBtn=e.querySelector(".ult-modal-box-footer__dismiss"),this.handleDismissButton())}},{key:"handleModalOpen",value:function(){var t=this;q.on("click",'.ult-modal-open[data-id="'.concat(this.modalData.id,'"], [class*="ult-modal-open----').concat(this.modalData.id,'"], [href*="ult-modal-open----').concat(this.modalData.id,'"]'),(function(e){e.preventDefault(),t.showModal()}))}},{key:"handleDismissButton",value:function(){var t=this;this.$elements.dismissBtn.addEventListener("click",(function(){t.hideModal()}))}},{key:"handleClickOutsideTheModal",value:function(){var t=this;this.$elements.container.addEventListener("mouseup",(function(e){var n=t.$elements.box;n===e.target||n.contains(e.target)||t.hideModal()}))}},{key:"setLoading",value:function(){arguments.length>0&&void 0!==arguments[0]&&!arguments[0]?this.$elements.container.classList.remove("ult-modal-container--loading"):this.$elements.container.classList.add("ult-modal-container--loading")}},{key:"setContent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.$elements.content.innerHTML=t}},{key:"showModal",value:function(){a("in",this.$elements.container),this.$elements.container.classList.add("ult-modal-container--open"),document.body.classList.add("ult-modals--open"),this.modalData.dimBackground&&document.body.classList.add("ult-modals--dim-background")}},{key:"hideModal",value:function(){var t=this;a("out",this.$elements.container,(function(){t.$elements.container.classList.remove("ult-modal-container--open"),document.body.classList.remove("ult-modals--open"),document.body.classList.remove("ult-modals--dim-background")}))}}]),t}();const N=I;document.addEventListener("DOMContentLoaded",(function(){new F,new N,new $,new T,new A,new P,window.UltimateLogin2FARedirect=D(),new E}))})()})();
     2(()=>{var t={29:t=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function n(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,o(i.key),i)}}function o(t){var n=function(t,n){if("object"!=e(t)||!t)return t;var o=t[Symbol.toPrimitive];if(void 0!==o){var i=o.call(t,"string");if("object"!=e(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(n)?n:String(n)}var i=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}var e,o;return e=t,o=[{key:"handleResponse",value:function(t){return!!(t&&t.data&&!0===t.data.requires_redirect&&t.data.redirect_url&&"undefined"!=typeof window&&window.location)&&(window.location.href=t.data.redirect_url,!0)}}],null&&n(e.prototype,null),o&&n(e,o),Object.defineProperty(e,"prototype",{writable:!1}),t}();"undefined"!=typeof window&&(window.UltimateLogin2FARedirect=i),t.exports&&(t.exports=i)},977:function(t,e,n){var o,i;window.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(t){var e,n=(this.document||this.ownerDocument).querySelectorAll(t),o=this;do{for(e=n.length;0<=--e&&n.item(e)!==o;);}while(e<0&&(o=o.parentElement));return o}),i=void 0!==n.g?n.g:"undefined"!=typeof window?window:this,o=function(){return function(t){"use strict";var e={},n={},o=function(e){n[e.type]&&n[e.type].forEach((function(n){var o,i;o=e.target,i=n.selector,(-1<["*","window","document","document.documentElement",t,document,document.documentElement].indexOf(i)||("string"!=typeof i&&i.contains?i===o||i.contains(o):o.closest(i)))&&n.callback(e)}))};return e.on=function(e,i,r){i&&r&&e.split(",").forEach((function(e){e=e.trim(),n[e]||(n[e]=[],t.addEventListener(e,o,!0)),n[e].push({selector:i,callback:r})}))},e.off=function(e,i,r){e.split(",").forEach((function(e){if(e=e.trim(),n[e]){if(n[e].length<2||!i)return delete n[e],void t.removeEventListener(e,o,!0);var s=function(t,e,n){for(var o=0;o<t.length;o++)if(t[o].selector===e&&t[o].callback.toString()===n.toString())return o;return-1}(n[e],i,r);s<0||n[e].splice(s,1)}}))},e.once=function(t,n,o){e.on(t,n,(function i(r){o(r),e.off(t,n,i)}))},e.get=function(){var t={};for(var e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);return t},e}(i)}.apply(e,[]),void 0===o||(t.exports=o)}},e={};function n(o){var i=e[o];if(void 0!==i)return i.exports;var r=e[o]={exports:{}};return t[o].call(r.exports,r,r.exports,n),r.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function o(n){for(var o=1;o<arguments.length;o++){var i=null!=arguments[o]?arguments[o]:{};o%2?e(Object(i),!0).forEach((function(e){var o,r,s,a;o=n,r=e,s=i[e],a=function(e,n){if("object"!=t(e)||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var i=o.call(e,"string");if("object"!=t(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(r),(r="symbol"==t(a)?a:String(a))in o?Object.defineProperty(o,r,{value:s,enumerable:!0,configurable:!0,writable:!0}):o[r]=s})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):e(Object(i)).forEach((function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(i,t))}))}return n}var i=function(t){return null!=t},r=function(t){var e=!0;return i(t)&&(e=Array.isArray(t)?0==t.length:s(t)?0==Object.keys(t).length:""==t),e},s=function(t){return t===Object(t)},a=function(){var t=arguments.length>1?arguments[1]:void 0,e=arguments.length>2?arguments[2]:void 0,n="ult--fade-".concat(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"in");e=i(e)?e:function(){},t.classList.add(n),setTimeout((function(){t.classList.remove(n),e()}),280)};function l(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{var n=new CustomEvent(t,{detail:e});document.dispatchEvent(n)}catch(t){}}var u='<svg xmlns="http://www.w3.org/2000/svg" fill="currentcolor" viewBox="0 0 576 512"><path d="M279.6 160.4C282.4 160.1 285.2 160 288 160C341 160 384 202.1 384 256C384 309 341 352 288 352C234.1 352 192 309 192 256C192 253.2 192.1 250.4 192.4 247.6C201.7 252.1 212.5 256 224 256C259.3 256 288 227.3 288 192C288 180.5 284.1 169.7 279.6 160.4zM480.6 112.6C527.4 156 558.7 207.1 573.5 243.7C576.8 251.6 576.8 260.4 573.5 268.3C558.7 304 527.4 355.1 480.6 399.4C433.5 443.2 368.8 480 288 480C207.2 480 142.5 443.2 95.42 399.4C48.62 355.1 17.34 304 2.461 268.3C-.8205 260.4-.8205 251.6 2.461 243.7C17.34 207.1 48.62 156 95.42 112.6C142.5 68.84 207.2 32 288 32C368.8 32 433.5 68.84 480.6 112.6V112.6zM288 112C208.5 112 144 176.5 144 256C144 335.5 208.5 400 288 400C367.5 400 432 335.5 432 256C432 176.5 367.5 112 288 112z"/></svg>';function c(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function d(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,m(o.key),o)}}function m(t){var e=function(t,e){if("object"!=c(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=c(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==c(e)?e:String(e)}var f=function(){function t(e){if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),e){var n=e.nextElementSibling;n&&n.classList&&n.classList.contains(this.cssClasses.passwordVisibilityToggle)||(this.$field=e,this.$field.classList.contains("input")&&(this.$field.classList.remove("input"),this.$field.classList.add("uncannyowl-input")),this.setupParentPositioning(),this.addFieldPadding(),this.addEyeIcon(),this.ensureFieldEditable(),this.setupFocusHandlers())}}var e,n;return e=t,(n=[{key:"setupParentPositioning",value:function(){var t=this.$field.parentNode;"static"===window.getComputedStyle(t).position&&(t.style.position="relative")}},{key:"addFieldPadding",value:function(){var t=window.getComputedStyle(this.$field).paddingRight;(parseInt(t)||0)<35&&(this.$field.style.paddingRight="35px")}},{key:"addEyeIcon",value:function(){var t=this;this.$eyeIcon=document.createElement("div"),this.$eyeIcon.classList.add(this.cssClasses.passwordVisibilityToggle),this.$eyeIcon.innerHTML=u,this.$field.parentNode.insertBefore(this.$eyeIcon,this.$field.nextSibling),this.$eyeIcon.addEventListener("click",(function(){"text"===t.$field.getAttribute("type")?(t.$field.setAttribute("type","password"),t.$eyeIcon.innerHTML=u):(t.$field.setAttribute("type","text"),t.$eyeIcon.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" fill="currentcolor" viewBox="0 0 640 512"><path d="M150.7 92.77C195 58.27 251.8 32 320 32C400.8 32 465.5 68.84 512.6 112.6C559.4 156 590.7 207.1 605.5 243.7C608.8 251.6 608.8 260.4 605.5 268.3C592.1 300.6 565.2 346.1 525.6 386.7L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L150.7 92.77zM223.1 149.5L313.4 220.3C317.6 211.8 320 202.2 320 191.1C320 180.5 316.1 169.7 311.6 160.4C314.4 160.1 317.2 159.1 320 159.1C373 159.1 416 202.1 416 255.1C416 269.7 413.1 282.7 407.1 294.5L446.6 324.7C457.7 304.3 464 280.9 464 255.1C464 176.5 399.5 111.1 320 111.1C282.7 111.1 248.6 126.2 223.1 149.5zM320 480C239.2 480 174.5 443.2 127.4 399.4C80.62 355.1 49.34 304 34.46 268.3C31.18 260.4 31.18 251.6 34.46 243.7C44 220.8 60.29 191.2 83.09 161.5L177.4 235.8C176.5 242.4 176 249.1 176 255.1C176 335.5 240.5 400 320 400C338.7 400 356.6 396.4 373 389.9L446.2 447.5C409.9 467.1 367.8 480 320 480H320z"/></svg>')}))}},{key:"setupFocusHandlers",value:function(){var t=this;this.$field.addEventListener("focus",(function(){t.$eyeIcon&&t.$eyeIcon.classList.add("ult-form-password-wrapper-eye-toggle--focus")})),this.$field.addEventListener("blur",(function(){t.$eyeIcon&&t.$eyeIcon.classList.remove("ult-form-password-wrapper-eye-toggle--focus")}))}},{key:"ensureFieldEditable",value:function(){this.$field.removeAttribute("readonly"),this.$field.removeAttribute("disabled"),this.$field.readOnly=!1,this.$field.disabled=!1}},{key:"cssClasses",get:function(){return{passwordVisibilityToggle:"ult-form-password-wrapper-eye-toggle"}}}])&&d(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),t}();function h(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&y(t,e)}function y(t,e){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},y(t,e)}function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,o=b(t);if(e){var i=b(this).constructor;n=Reflect.construct(o,arguments,i)}else n=o.apply(this,arguments);return function(t,e){if(e&&("object"===p(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(this,n)}}function b(t){return b=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},b(t)}function p(t){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},p(t)}function v(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function w(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,k(o.key),o)}}function C(t,e,n){return e&&w(t.prototype,e),n&&w(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function k(t){var e=function(t,e){if("object"!=p(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=p(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==p(e)?e:String(e)}var L=n(977),S=function(){function t(){v(this,t),this.getElements(),this.shouldInvokeMethods()&&(this.validateFormSubmission(),this.handleReCaptchaChanges())}return C(t,[{key:"getElements",value:function(){this.$elements={},this.cssClasses={}}},{key:"formData",get:function(){return{}}},{key:"ajaxAction",get:function(){return""}},{key:"validateFormSubmission",value:function(){var t=this;i(this.$elements.mainForm)&&(this.$elements.mainForm.onsubmit=function(e){var n=!0;t.hasReCAPTCHA()&&!t.isCaptchaChecked()&&(t.$elements.container.classList.add(t.cssClasses.reCAPTCHAerror),n=!1,t.setError(UncannyToolkit.frontendLogin.i18n.checkReCaptcha),console.error("✋Frontend Login: The form is using reCAPTCHA, but you didn't pass the verification")),l("uncanny-toolkit/frontend-login/".concat(t.id,"/validated"),{isValid:n}),n?t.submitForm(e):(e.preventDefault(),console.error("✋Frontend Login: Submission prevented"))})}},{key:"submitForm",value:function(t){var e=this;this.setError(!1),this.setLoadingStatus(!0),this.setButtonDisableStatus(!0);var n=function(){l("uncanny-toolkit/frontend-login/".concat(e.id,"/submitting")),function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};e=o(o({},e),{action:t}),i(s.includeNonce)&&!s.includeNonce||(e.nonce=UncannyToolkit.ajax.nonce),fetch(UncannyToolkit.ajax.url,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","Cache-Control":"no-cache"},body:new URLSearchParams(e)}).then((function(t){if(t.ok)return t.redirected?{success:!1,code:302}:t.json();throw i(r)&&r(o(o({},t),{success:!1})),Error(UncannyToolkit.i18n.error.generic)})).then((function(t){t.success?i(n)&&n(t):i(r)&&r(o(o({},t),{success:!1}))})).catch((function(t){console.error("✋Uncanny Toolkit: The fetch call threw an error"),i(r)&&r(o(o({},t),{success:!1}))}))}(e.ajaxAction,e.formData,(function(t){e.setLoadingStatus(!1),e.setButtonDisableStatus(!1),t.success?(l("uncanny-toolkit/frontend-login/".concat(e.id,"/submitted"),{success:!0}),e.afterValidSubmission(t)):(l("uncanny-toolkit/frontend-login/".concat(e.id,"/submitted"),{success:!1,message:i(t.message)?t.message:UncannyToolkit.i18n.error.generic}),i(t.message)?e.setError(t.message):e.setError(UncannyToolkit.i18n.error.generic),e.resetReCAPTCHA())}),(function(t){i(t.code)&&302==t.code&&UncannyToolkit.integrity.shouldPreventConcurrentLogin&&(t.message=UncannyToolkit.i18n.preventConcurrentLogin),window.UltimateLogin2FARedirect&&window.UltimateLogin2FARedirect.handleResponse(t)||(l("uncanny-toolkit/frontend-login/".concat(e.id,"/submitted"),{success:!1,message:i(t.message)?t.message:UncannyToolkit.i18n.error.generic}),i(t.message)?e.setError(t.message):e.setError(UncannyToolkit.i18n.error.generic),e.resetReCAPTCHA(),e.setLoadingStatus(!1),e.setButtonDisableStatus(!1))}),{includeNonce:!1})};!this.isUsingLearnDashReCaptcha()&&UncannyToolkit.frontendLogin.hasAjaxEnabled?(t.preventDefault(),n()):UncannyToolkit.frontendLogin.hasAjaxEnabled?(t.preventDefault(),this.handleLearnDashReCaptcha((function(){n()}))):this.hasLearnDashReCaptchField()||(t.preventDefault(),this.handleLearnDashReCaptcha((function(){e.$elements.mainForm.submit()})))}},{key:"afterValidSubmission",value:function(t){}},{key:"setLoadingStatus",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];UncannyToolkit.frontendLogin.ui.showAnimationOnSubmit&&(t?(this.$elements.container.classList.add(this.cssClasses.loading),this.$elements.submitButton.container.classList.add(this.cssClasses.btnLoading),l("uncanny-toolkit/frontend-login/".concat(this.id,"/set-loading"),{isLoading:!0})):(this.$elements.container.classList.remove(this.cssClasses.loading),this.$elements.submitButton.container.classList.remove(this.cssClasses.btnLoading),l("uncanny-toolkit/frontend-login/".concat(this.id,"/set-loading"),{isLoading:!1})))}},{key:"setButtonDisableStatus",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];UncannyToolkit.frontendLogin.ui.buttonDisabledOnSubmit&&(t?(this.$elements.container.classList.add(this.cssClasses.disabled),this.$elements.submitButton.container.classList.add(this.cssClasses.btnDisabled),this.$elements.submitButton.button.setAttribute("disabled",!0),l("uncanny-toolkit/frontend-login/".concat(this.id,"/disable-button"),{disable:!0})):(this.$elements.container.classList.remove(this.cssClasses.disabled),this.$elements.submitButton.container.classList.remove(this.cssClasses.btnDisabled),this.$elements.submitButton.button.removeAttribute("disabled"),l("uncanny-toolkit/frontend-login/".concat(this.id,"/disable-button"),{disable:!1})))}},{key:"setError",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];r(t)?(this.$elements.errorNotice.container.classList.remove(this.cssClasses.noticeHasError),this.$elements.errorNotice.textNode.textContent="",this.$elements.container.classList.remove(this.cssClasses.reCAPTCHAerror)):(this.$elements.errorNotice.container.classList.add(this.cssClasses.noticeHasError),this.$elements.errorNotice.textNode.innerHTML=t)}},{key:"handleReCaptchaChanges",value:function(){var t=this;UncannyToolkit.frontendLogin.reCaptcha={correct:function(e){t.setError(!1)}}}},{key:"hasReCAPTCHA",value:function(){return i(this.$elements.formFields.reCAPTCHA)}},{key:"getReCAPTCHAResponse",value:function(){var t=this.$elements.formFields.reCAPTCHA.getAttribute("data-id");return grecaptcha.getResponse(t)}},{key:"resetReCAPTCHA",value:function(){try{var t=this.$elements.formFields.reCAPTCHA.getAttribute("data-id");grecaptcha.reset(t)}catch(t){}}},{key:"isOnModal",value:function(){return i(UncannyToolkit.modals["ult-login"])}},{key:"isCaptchaChecked",value:function(){return!r(this.getReCAPTCHAResponse())}},{key:"shouldInvokeMethods",value:function(){return i(this.$elements.container)}},{key:"handleLearnDashReCaptcha",value:function(t){var e=this;this.isUsingLearnDashReCaptcha()?grecaptcha.ready((function(){grecaptcha.execute(LD_TP.site_key,{action:"submit"}).then((function(n){i(e.$elements.mainForm)&&e.$elements.mainForm.insertAdjacentHTML("afterbegin",'<input type="hidden" id="ult-form-ld-recaptcha" name="token" value="'.concat(n,'">')),i(t)&&t()}))})):i(t)&&t()}},{key:"isUsingLearnDashReCaptcha",value:function(){return i(window.grecaptcha)&&i(window.LD_TP)&&i(LD_TP.site_key)}},{key:"hasLearnDashReCaptchField",value:function(){var t=!1;return i(this.$elements.mainForm)&&(t=i(this.$elements.mainForm.querySelector('input[name="token"]'))),t}}]),t}(),$=function(t){h(n,t);var e=g(n);function n(){var t;return v(this,n),t=e.call(this),new f(t.$elements.formFields.password),t}return C(n,[{key:"getElements",value:function(){this.$elements={container:document.getElementById("ult-login"),mainForm:document.getElementById("ult-login-form"),submitButton:{container:document.getElementsByClassName("login-submit")[0],button:document.getElementById("ult-login-submit")},errorNotice:{container:document.querySelector("#ult-login .ult-form__validation"),textNode:document.querySelector("#ult-login .ult-notice-text")},formFields:{email:document.getElementById("ult-login-email"),password:document.getElementById("ult-login-password"),redirectTo:document.querySelector('#ult-login .login-submit input[name="redirect_to"]'),reCAPTCHA:document.querySelector("#ult-login .ult-form-recaptcha"),rememberMe:document.getElementById("ult-login-remember")}}}},{key:"id",get:function(){return"login"}},{key:"ajaxAction",get:function(){return"ult-login"}},{key:"cssClasses",get:function(){return{reCAPTCHAerror:"ult-login--recaptcha-error",loading:"ult-login--loading",disabled:"ult-login--disabled",btnLoading:"ult-form__submit-btn--loading",btnDisabled:"ult-form__submit-btn--disabled",noticeHasError:"ult-form__validation--has-error"}}},{key:"formData",get:function(){var t={email:this.$elements.formFields.email.value,password:this.$elements.formFields.password.value,redirectTo:this.$elements.formFields.redirectTo.value},e=Object.assign({},t,UOToolkitFrontEndLoginFormData);return i(this.$elements.formFields.rememberMe)&&(e.rememberMe=this.$elements.formFields.rememberMe.checked),this.hasReCAPTCHA()&&(e["g-recaptcha-response"]=this.getReCAPTCHAResponse()),i(this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha"))&&(e.token=this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha").value),i(this.$elements.mainForm.querySelector('input[name="uo_is_login_modal"]'))&&(e.uo_is_login_modal=this.$elements.mainForm.querySelector('input[name="uo_is_login_modal"]').value),e}},{key:"afterValidSubmission",value:function(t){var e;this.setLoadingStatus(!0),this.setButtonDisableStatus(!0),window.UltimateLogin2FARedirect&&window.UltimateLogin2FARedirect.handleResponse(t)||null!=t&&null!==(e=t.twoFactor)&&void 0!==e&&null!==(e=e._meta)&&void 0!==e&&e.enabled||(r(t.redirectTo)?window.location.reload():window.location.href=t.redirectTo)}}]),n}(S),T=function(t){h(n,t);var e=g(n);function n(){return v(this,n),e.apply(this,arguments)}return C(n,[{key:"getElements",value:function(){this.$elements={container:document.getElementById("ult-forgot-password"),boxContent:document.querySelector("#ult-forgot-password .ult-form__content"),mainForm:document.getElementById("ult-forgot-password-form"),submitButton:{container:document.querySelector(".ult-form__row--submit"),button:document.getElementById("ult-forgot-password-submit-btn")},errorNotice:{container:document.querySelector("#ult-forgot-password .ult-form__validation"),textNode:document.querySelector("#ult-forgot-password .ult-notice-text")},formFields:{email:document.getElementById("ult-forgot-email"),reCAPTCHA:document.querySelector("#ult-forgot-password .ult-form-recaptcha")}}}},{key:"id",get:function(){return"forgot-password"}},{key:"ajaxAction",get:function(){return"ult-forgot-password"}},{key:"cssClasses",get:function(){return{reCAPTCHAerror:"ult-forgot-password--recaptcha-error",loading:"ult-forgot-password--loading",disabled:"ult-forgot-password--disabled",btnLoading:"ult-form__submit-btn--loading",btnDisabled:"ult-form__submit-btn--disabled",noticeHasError:"ult-form__validation--has-error"}}},{key:"formData",get:function(){var t={email:this.$elements.formFields.email.value},e=Object.assign({},t,UOToolkitFrontEndLoginFormData);return this.hasReCAPTCHA()&&(e["g-recaptcha-response"]=this.getReCAPTCHAResponse()),i(this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha"))&&(e.token=this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha").value),e}},{key:"afterValidSubmission",value:function(t){this.$elements.boxContent.innerHTML=t.message}}]),n}(S),A=function(t){h(n,t);var e=g(n);function n(){return v(this,n),e.apply(this,arguments)}return C(n,[{key:"getElements",value:function(){this.$elements={container:document.getElementById("ult-reset-password"),boxContent:document.querySelector("#ult-reset-password .ult-form__content"),mainForm:document.getElementById("ult-reset-password-form"),submitButton:{container:document.querySelector(".ult-form__row--submit"),button:document.getElementById("ult-reset-password-submit-btn")},errorNotice:{container:document.querySelector("#ult-reset-password .ult-form__validation"),textNode:document.querySelector("#ult-reset-password .ult-notice-text")},formFields:{password:document.getElementById("ult-reset-new-password"),passwordRepeat:document.getElementById("ult-reset-confirm-password"),reCAPTCHA:document.querySelector("#ult-reset-password .ult-form-recaptcha")}}}},{key:"id",get:function(){return"reset-password"}},{key:"ajaxAction",get:function(){return"ult-reset-password"}},{key:"cssClasses",get:function(){return{reCAPTCHAerror:"ult-reset-password--recaptcha-error",loading:"ult-reset-password--loading",disabled:"ult-reset-password--disabled",btnLoading:"ult-form__submit-btn--loading",btnDisabled:"ult-form__submit-btn--disabled",noticeHasError:"ult-form__validation--has-error"}}},{key:"formData",get:function(){var t={password:this.$elements.formFields.password.value,passwordRepeat:this.$elements.formFields.passwordRepeat.value};return this.hasReCAPTCHA()&&(t["g-recaptcha-response"]=this.getReCAPTCHAResponse()),i(this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha"))&&(t.token=this.$elements.mainForm.querySelector("#ult-form-ld-recaptcha").value),t}},{key:"afterValidSubmission",value:function(t){this.$elements.boxContent.innerHTML=t.message}}]),n}(S),E=function(){function t(){v(this,t),this.shouldInvokeMethods()?(this.getElements(),this.handleContainerVisiblity()):i(UncannyToolkit.frontendLogin)&&i(UncannyToolkit.frontendLogin.currentPageIsLoginPage)&&UncannyToolkit.frontendLogin.currentPageIsLoginPage&&this.handleModalInLoginPage()}return C(t,[{key:"getElements",value:function(){this.$elements={container:document.getElementById("ult-login-modal"),loginShowButton:document.getElementById("ult-form-footer-login"),forgotPasswordShowButton:document.getElementById("ult-form-footer-forgot-password")}}},{key:"handleContainerVisiblity",value:function(){var t=this;i(this.$elements.forgotPasswordShowButton)&&this.$elements.forgotPasswordShowButton.addEventListener("click",(function(e){e.preventDefault(),t.showSection("forgot-password")})),i(this.$elements.loginShowButton)&&this.$elements.loginShowButton.addEventListener("click",(function(e){e.preventDefault(),t.showSection("login")}))}},{key:"showSection",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"login";this.$elements.container.classList.remove("ult-login-modal--login","ult-login-modal--forgot-password"),"login"==t?this.$elements.container.classList.add("ult-login-modal--login"):"forgot-password"==t&&this.$elements.container.classList.add("ult-login-modal--forgot-password")}},{key:"shouldInvokeMethods",value:function(){return i(UncannyToolkit.frontendLogin)&&i(UncannyToolkit.frontendLogin.currentPageIsLoginPage)&&!UncannyToolkit.frontendLogin.currentPageIsLoginPage&&i(UncannyToolkit.modals["ult-login"])}},{key:"handleModalInLoginPage",value:function(){L.on("click",'[href*="ult-modal-open----ult-login"]',(function(t){t.preventDefault(),location.reload()}))}}]),t}(),P=function(){function t(){var e,n,o;v(this,t),e=this,o="login-2nd-factor",(n=k(n="id"))in e?Object.defineProperty(e,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[n]=o,this.$form&&this.listenSubmission()}return C(t,[{key:"listenSubmission",value:function(){var t=this;this.$form.addEventListener("submit",(function(e){t.setLoadingStatus(!0),t.setButtonDisableStatus(!0)}))}},{key:"setLoadingStatus",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];UncannyToolkit.frontendLogin.ui.showAnimationOnSubmit&&(t?(this.$elements.container.classList.add(this.cssClasses.loading),this.$elements.submitButton.container.classList.add(this.cssClasses.btnLoading),l("uncanny-toolkit/frontend-login/".concat(this.id,"/set-loading"),{isLoading:!0})):(this.$elements.container.classList.remove(this.cssClasses.loading),this.$elements.submitButton.container.classList.remove(this.cssClasses.btnLoading),l("uncanny-toolkit/frontend-login/".concat(this.id,"/set-loading"),{isLoading:!1})))}},{key:"setButtonDisableStatus",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];UncannyToolkit.frontendLogin.ui.buttonDisabledOnSubmit&&(t?(this.$elements.container.classList.add(this.cssClasses.disabled),this.$elements.submitButton.container.classList.add(this.cssClasses.btnDisabled),this.$elements.submitButton.button.setAttribute("disabled",!0),l("uncanny-toolkit/frontend-login/".concat(this.id,"/disable-button"),{disable:!0})):(this.$elements.container.classList.remove(this.cssClasses.disabled),this.$elements.submitButton.container.classList.remove(this.cssClasses.btnDisabled),this.$elements.submitButton.button.removeAttribute("disabled"),l("uncanny-toolkit/frontend-login/".concat(this.id,"/disable-button"),{disable:!1})))}},{key:"cssClasses",get:function(){return{loading:"ult-login--loading",disabled:"ult-login--disabled",btnLoading:"ult-form__submit-btn--loading",btnDisabled:"ult-form__submit-btn--disabled"}}},{key:"$elements",get:function(){return{container:document.getElementById("ult-login"),submitButton:{container:this.$form.querySelector(".submit"),button:this.$form.querySelector('.submit input[type="submit"]')}}}},{key:"$form",get:function(){return document.getElementById("ult-2fa-validation-form--templated")}}]),t}(),_=n(29),D=n.n(_);function O(t){return O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},O(t)}function j(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,B(o.key),o)}}function B(t){var e=function(t,e){if("object"!=O(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=O(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==O(e)?e:String(e)}const F=function(){function t(){var e=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.whenReady((function(){e.renderReCaptchas()}))}var e,n;return e=t,(n=[{key:"whenReady",value:function(t){window.UncannyToolkit.reCaptchaInit=function(){t()}}},{key:"renderReCaptchas",value:function(){var t=document.querySelectorAll(".ult-form-recaptcha");[].forEach.call(t,(function(t){var e=window.grecaptcha.render(t,{sitekey:t.getAttribute("data-sitekey"),callback:t.getAttribute("data-callback")});t.setAttribute("data-id",e)}))}}])&&j(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),t}();function x(t){return x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},x(t)}function R(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function I(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,H(o.key),o)}}function M(t,e,n){return e&&I(t.prototype,e),n&&I(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function H(t){var e=function(t,e){if("object"!=x(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=x(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==x(e)?e:String(e)}var U=n(977),q=function(){function t(){R(this,t),this.allModals=[],UncannyToolkit.modals={},this.getElements(),this.createModals()}return M(t,[{key:"getElements",value:function(){this.$elements={modals:document.querySelectorAll(".ult-modal")}}},{key:"createModals",value:function(){var t=this;[].forEach.call(this.$elements.modals,(function(e){var n=i(e.getAttribute("data-id"))?e.getAttribute("data-id"):"";if(!t.allModals.includes(n)){var o=new N(e);t.allModals.push(n),UncannyToolkit.modals[n]=o}}))}}]),t}(),N=function(){function t(e){R(this,t),this.getModalData(e),this.renderModal(e),this.handleModalOpen(),this.handleClickOutsideTheModal()}return M(t,[{key:"getModalData",value:function(t){this.modalData={id:i(t.getAttribute("data-id"))?t.getAttribute("data-id"):"",title:i(t.getAttribute("data-title"))?t.getAttribute("data-title"):"",btnDismiss:!i(t.getAttribute("data-btn-dismiss"))||!!parseInt(t.getAttribute("data-btn-dismiss")),dimBackground:!i(t.getAttribute("data-dim-background"))||!!parseInt(t.getAttribute("data-dim-background"))}}},{key:"renderModal",value:function(t){var e=document.createElement("div");e.id="ult-modal-container-".concat(this.modalData.id),e.classList.add("ult-modal-container"),e.setAttribute("data-id",this.modalData.id),e.innerHTML='\n\t\t\t<div class="ult-modal__inside">\n\t\t\t\t<div class="ult-modal-box">\n\t\t\t\t\t'.concat(r(this.modalData.title)?"":'\n\t\t\t\t\t\t<div class="ult-modal-box-header">\n\t\t\t\t\t\t\t<h2>'.concat(this.modalData.title,"</h2>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t"),'\n\n\t\t\t\t\t<div class="ult-modal-box-content"></div>\n\n\t\t\t\t\t').concat(this.modalData.btnDismiss?'\n\t\t\t\t\t\t<div class="ult-modal-box-footer">\n\t\t\t\t\t\t\t<button class="ult-modal-box-footer__dismiss">\n\t\t\t\t\t\t\t\t'.concat(UncannyToolkit.i18n.dismiss,"\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t"):"","\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t"),e.querySelector(".ult-modal-box-content").appendChild(t),document.body.appendChild(e),this.$elements={container:e,box:e.querySelector(".ult-modal-box"),content:e.querySelector(".ult-modal-box-content .ult-modal")},this.modalData.btnDismiss&&(this.$elements.dismissBtn=e.querySelector(".ult-modal-box-footer__dismiss"),this.handleDismissButton())}},{key:"handleModalOpen",value:function(){var t=this;U.on("click",'.ult-modal-open[data-id="'.concat(this.modalData.id,'"], [class*="ult-modal-open----').concat(this.modalData.id,'"], [href*="ult-modal-open----').concat(this.modalData.id,'"]'),(function(e){e.preventDefault(),t.showModal()}))}},{key:"handleDismissButton",value:function(){var t=this;this.$elements.dismissBtn.addEventListener("click",(function(){t.hideModal()}))}},{key:"handleClickOutsideTheModal",value:function(){var t=this;this.$elements.container.addEventListener("mouseup",(function(e){var n=t.$elements.box;n===e.target||n.contains(e.target)||t.hideModal()}))}},{key:"setLoading",value:function(){arguments.length>0&&void 0!==arguments[0]&&!arguments[0]?this.$elements.container.classList.remove("ult-modal-container--loading"):this.$elements.container.classList.add("ult-modal-container--loading")}},{key:"setContent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.$elements.content.innerHTML=t}},{key:"showModal",value:function(){a("in",this.$elements.container),this.$elements.container.classList.add("ult-modal-container--open"),document.body.classList.add("ult-modals--open"),this.modalData.dimBackground&&document.body.classList.add("ult-modals--dim-background")}},{key:"hideModal",value:function(){var t=this;a("out",this.$elements.container,(function(){t.$elements.container.classList.remove("ult-modal-container--open"),document.body.classList.remove("ult-modals--open"),document.body.classList.remove("ult-modals--dim-background")}))}}]),t}();const V=q;document.addEventListener("DOMContentLoaded",(function(){new F,new V,new $,new T,new A,new P,window.UltimateLogin2FARedirect=D(),new E}))})()})();
    33//# sourceMappingURL=bundle.min.js.map
  • uncanny-learndash-toolkit/trunk/src/assets/frontend/dist/bundle.min.js.map

    r3395254 r3407115  
    1 {"version":3,"file":"bundle.min.js","mappings":"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","sources":["webpack://ultf-frontend/./src/js/wp-2fa-redirect.js","webpack://ultf-frontend/./node_modules/eventslibjs/dist/events.polyfills.min.js","webpack://ultf-frontend/webpack/bootstrap","webpack://ultf-frontend/webpack/runtime/compat get default export","webpack://ultf-frontend/webpack/runtime/define property getters","webpack://ultf-frontend/webpack/runtime/global","webpack://ultf-frontend/webpack/runtime/hasOwnProperty shorthand","webpack://ultf-frontend/./src/js/_utilities.js","webpack://ultf-frontend/./src/js/_icons.js","webpack://ultf-frontend/./src/js/password-field.js","webpack://ultf-frontend/./src/js/frontend-login.js","webpack://ultf-frontend/./src/js/recaptcha.js","webpack://ultf-frontend/./src/js/dialog.js","webpack://ultf-frontend/./src/index.js"],"sourcesContent":["/**\n * WP 2FA Redirect Handler\n * \n * Minimal script to handle AJAX login redirects for 2FA challenges.\n * Replaces the complex 1000+ line 2FA form management with simple redirect logic.\n * \n * @package uncanny-learndash-toolkit\n * @since 1.0.0\n */\n\n/**\n * Simple AJAX redirect handler for 2FA\n * \n * Handles the response from AJAX login attempts and redirects to 2FA challenge\n * when required. All 2FA form rendering and validation is now handled server-side.\n */\nclass UltimateLogin2FARedirect {\n\n    /**\n * Handles AJAX login response and performs redirect if 2FA is required\n * \n * @param {Object} response - The AJAX login response\n * @returns {boolean} - True if redirect was handled, false otherwise\n */\n    static handleResponse(response) {\n        // Check if this is a 2FA redirect response\n        if (response &&\n            response.data &&\n            response.data.requires_redirect === true &&\n            response.data.redirect_url) {\n\n            // Redirect to the 2FA challenge page\n            if (typeof window !== 'undefined' && window.location) {\n                window.location.href = response.data.redirect_url;\n                return true;\n            }\n        }\n\n        return false;\n    }\n}\n\n// Make globally available for the frontend login system\nif (typeof window !== 'undefined') {\n    window.UltimateLogin2FARedirect = UltimateLogin2FARedirect;\n}\n\n// Export for module systems\nif (typeof module !== 'undefined' && module.exports) {\n    module.exports = UltimateLogin2FARedirect;\n}\n","/*! eventslibjs v1.2.0 | (c) 2019 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/events */\nwindow.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t,n=(this.document||this.ownerDocument).querySelectorAll(e),o=this;do{for(t=n.length;0<=--t&&n.item(t)!==o;);}while(t<0&&(o=o.parentElement));return o}),(function(e,t){\"function\"==typeof define&&define.amd?define([],(function(){return t(e)})):\"object\"==typeof exports?module.exports=t(e):e.events=t(e)})(\"undefined\"!=typeof global?global:\"undefined\"!=typeof window?window:this,(function(r){\"use strict\";var i={},c={},f=function(o){c[o.type]&&c[o.type].forEach((function(e){var t,n;(t=o.target,n=e.selector,-1<[\"*\",\"window\",\"document\",\"document.documentElement\",r,document,document.documentElement].indexOf(n)||(\"string\"!=typeof n&&n.contains?n===t||n.contains(t):t.closest(n)))&&e.callback(o)}))};return i.on=function(e,t,n){t&&n&&e.split(\",\").forEach((function(e){e=e.trim(),c[e]||(c[e]=[],r.addEventListener(e,f,!0)),c[e].push({selector:t,callback:n})}))},i.off=function(e,n,o){e.split(\",\").forEach((function(e){if(e=e.trim(),c[e]){if(c[e].length<2||!n)return delete c[e],void r.removeEventListener(e,f,!0);var t=(function(e,t,n){for(var o=0;o<e.length;o++)if(e[o].selector===t&&e[o].callback.toString()===n.toString())return o;return-1})(c[e],n,o);t<0||c[e].splice(t,1)}}))},i.once=function(n,o,r){i.on(n,o,(function e(t){r(t),i.off(n,o,e)}))},i.get=function(){var e={};for(var t in c)c.hasOwnProperty(t)&&(e[t]=c[t]);return e},i}));","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/**\n * Determine if a variable is set and is not NULL\n *\n * @since 3.3\n *\n * @param  {mixed}      variable - The variable being evaluated\n * @return {boolean}    TRUE if the variable is defined\n */\nexport const isDefined = ( variable ) => {\n\t// Returns true if the variable is undefined\n    return typeof variable !== 'undefined' && variable !== null;\n}\n\n/**\n * Determine whether a variable is empty\n *\n * @since 3.3\n *\n * @param   {mixed}     variable - The variable being evaluated\n * @return  {boolean}   TRUE if the variable is empty\n */\nexport const isEmpty = ( variable ) => {\n    let response = true;\n\n    // Check if the variable is defined, otherwise is empty\n    if ( isDefined( variable ) ){\n        // Check if it's array\n        if ( Array.isArray( variable ) ){\n            response = variable.length == 0;\n        }\n        else if ( isObject( variable ) ){\n            response = Object.keys( variable ).length == 0;\n        }\n        else {\n            response = variable == '';\n        }\n    }\n\n    return response;\n}\n\n/**\n * Determine whether a variable is an object.\n * The Object constructor creates an object wrapper for the given value. If the value is null or undefined, it will create and return an empty object, otherwise, it will return an object of a type that corresponds to the given value. If the value is an object already, it will return the value.\n *\n * @since 3.3\n *\n * @param   {mixed}     variable - The variable being evaluated\n * @return  {boolean}   TRUE if the variable is an object\n */\nexport const isObject = ( variable ) => {\n    return variable === Object( variable );\n}\n\n/**\n * Simulate a fade in/fade out transition\n *\n * @since 3.3\n * \n * @param  {String} fade        Whether we have to fade in our fade out the element\n * @param  {Element}   element  Element\n */\nexport const fade = ( in_out = 'in', element, callback ) => {\n    // Check what's the class we have to add\n    const fadeClass = `ult--fade-${ in_out }`;\n\n    // Define the default callback\n    callback = isDefined( callback ) ? callback : () => {};\n\n    // Add the fade class\n    element.classList.add( fadeClass );\n\n    // Remove it after 300ms (the fade duration)\n    setTimeout(() => {\n        // Remove the fade class\n        element.classList.remove( fadeClass );\n\n        // Invoke the callback\n        callback();\n    }, 280 );\n}\n\n/**\n * Performs an AJAX request\n *\n * @since 3.3\n *\n * @param {object}    data - Data to be sent in the request\n * @param {callback}  [onSuccess] - Function to be invoked if the request is successful\n * @param {callback}  [onFail] - Function to be invoked if the request fails\n */\n\nexport function AJAXRequest( action = null, data = null, onSuccess = null, onFail = null, options = {} ){\n    // Add {action} to the data object\n    data = { ...data, ...{\n        action: action\n    }};\n\n    // Check if we should include the nonce\n    if ( ! isDefined( options.includeNonce ) || options.includeNonce ){\n        data.nonce = UncannyToolkit.ajax.nonce;\n    }\n\n    // Do the call\n    fetch( UncannyToolkit.ajax.url, {\n        method: 'POST',\n        headers: {\n            'Content-Type': 'application/x-www-form-urlencoded',\n            'Cache-Control': 'no-cache',\n        },\n        body: new URLSearchParams( data ),\n    })\n    .then(( response ) => {\n        // Check if the call was not successful\n        if ( ! response.ok ){\n            if ( isDefined( onFail ) ){\n                onFail({ ...response, ...{ success: false }});\n            }\n\n            // Stop chain\n            throw Error( UncannyToolkit.i18n.error.generic );\n        }\n        else {\n            // Detect redirection\n            if ( response.redirected ) {\n                // Return the error for the next .then to handle it\n                return {\n                    success: false,\n                    code: 302\n                }\n            } else {\n                return response.json();\n            }\n        }\n    })\n    .then(( response ) => {\n        // Check if the call was successful\n        if ( response.success ){\n            if ( isDefined( onSuccess ) ){\n                onSuccess( response );\n            }\n        }\n        else {\n            if ( isDefined( onFail ) ){\n                onFail({ ...response, ...{ success: false }});\n            }\n        }\n    })\n    .catch(( response ) => {\n        console.error( '✋Uncanny Toolkit: The fetch call threw an error' );\n\n        if ( isDefined( onFail ) ){\n            onFail({ ...response, ...{ success: false }});\n        }\n    });;\n}\n\n/**\n * Trigger a custom event\n * @param  {String} eventId ID of the event\n * @param  {Object} data    Data\n */\nexport function triggerEvent( eventId = '', data = {} ){\n    try {\n        const event = new CustomEvent( eventId, { detail: data } );\n        document.dispatchEvent( event );\n    }\n    catch ( e ){}\n}","const eye = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\" viewBox=\"0 0 576 512\"><path d=\"M279.6 160.4C282.4 160.1 285.2 160 288 160C341 160 384 202.1 384 256C384 309 341 352 288 352C234.1 352 192 309 192 256C192 253.2 192.1 250.4 192.4 247.6C201.7 252.1 212.5 256 224 256C259.3 256 288 227.3 288 192C288 180.5 284.1 169.7 279.6 160.4zM480.6 112.6C527.4 156 558.7 207.1 573.5 243.7C576.8 251.6 576.8 260.4 573.5 268.3C558.7 304 527.4 355.1 480.6 399.4C433.5 443.2 368.8 480 288 480C207.2 480 142.5 443.2 95.42 399.4C48.62 355.1 17.34 304 2.461 268.3C-.8205 260.4-.8205 251.6 2.461 243.7C17.34 207.1 48.62 156 95.42 112.6C142.5 68.84 207.2 32 288 32C368.8 32 433.5 68.84 480.6 112.6V112.6zM288 112C208.5 112 144 176.5 144 256C144 335.5 208.5 400 288 400C367.5 400 432 335.5 432 256C432 176.5 367.5 112 288 112z\"/></svg>`;\n\nconst eyeSlash = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\" viewBox=\"0 0 640 512\"><path d=\"M150.7 92.77C195 58.27 251.8 32 320 32C400.8 32 465.5 68.84 512.6 112.6C559.4 156 590.7 207.1 605.5 243.7C608.8 251.6 608.8 260.4 605.5 268.3C592.1 300.6 565.2 346.1 525.6 386.7L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L150.7 92.77zM223.1 149.5L313.4 220.3C317.6 211.8 320 202.2 320 191.1C320 180.5 316.1 169.7 311.6 160.4C314.4 160.1 317.2 159.1 320 159.1C373 159.1 416 202.1 416 255.1C416 269.7 413.1 282.7 407.1 294.5L446.6 324.7C457.7 304.3 464 280.9 464 255.1C464 176.5 399.5 111.1 320 111.1C282.7 111.1 248.6 126.2 223.1 149.5zM320 480C239.2 480 174.5 443.2 127.4 399.4C80.62 355.1 49.34 304 34.46 268.3C31.18 260.4 31.18 251.6 34.46 243.7C44 220.8 60.29 191.2 83.09 161.5L177.4 235.8C176.5 242.4 176 249.1 176 255.1C176 335.5 240.5 400 320 400C338.7 400 356.6 396.4 373 389.9L446.2 447.5C409.9 467.1 367.8 480 320 480H320z\"/></svg>`;\n\nexport { eye as iconEye }\nexport { eyeSlash as iconEyeSlash }","import {\n\ticonEye,\n\ticonEyeSlash\n} from './_icons';\n\n/**\n * Adds a wrapper around the field and adds the eye icon to toggle the visibility of the content\n */\nexport default class PasswordField {\n    /**\n     * Adds a wrapper around the field and adds the eye icon to toggle the visibility of the content\n     * @param {Node} $field The Node of the password\n     */\n    constructor( $field ) {\n        // Check if the field exists\n        if ( ! $field ) {\n            return;\n        }\n\n        // Check if this isn't already inside a wrapper\n        if ( $field.closest( `.${ this.cssClasses.passwordWrapper }` ) ) {\n            return;\n        }\n\n        // Save Node\n        this.$field = $field;\n\n        // Add wrapper\n        this.addWrapper();\n\n        // Add content visibility toggle\n        this.contentVisibilityToggle();\n\n        // Style focus on wrapper\n        this.styleFocusOnWrapper();\n    }\n\n    /**\n     * Add wrapper around password field\n     */\n    addWrapper() {\n        // Create wrapper\n\t\tthis.$passwordWrapper = document.createElement( 'label' );\n\t\tthis.$passwordWrapper.classList.add( this.cssClasses.passwordWrapper );\n\n\t\t// Add the wrapper next to the password field\n\t\tthis.$field.insertAdjacentElement( 'afterEnd', this.$passwordWrapper );\n\n\t\t// Move the Password field inside the wrapper\n\t\tthis.$passwordWrapper.appendChild( this.$field );\n    }\n\n    /**\n     * Adds an eye icon that sets the visibility of the content\n     */\n    contentVisibilityToggle() {\n        // Add eye to set the visibility of the password\n\t\tthis.$passwordWrapper.insertAdjacentHTML( 'beforeEnd', `\n            <div class=\"${ this.cssClasses.passwordVisibilityToggle }\">\n                ${ iconEye }\n            </div>\n        ` );\n\n        // Get the eye icon wrapper\n        const $passwordVisibilityToggle = this.$passwordWrapper.querySelector( `.${ this.cssClasses.passwordVisibilityToggle }` );\n\n        // Add event to the visibility toggle\n        $passwordVisibilityToggle.addEventListener( 'click', () => {\n            // Get the current status of the field\n            const passwordIsVisible = this.$field.getAttribute( 'type' ) == 'text';\n\n            // If it's visible, and the user clicked it, it means we should hide it\n            if ( passwordIsVisible ) {\n                // Hide the password\n                this.$field.setAttribute( 'type', 'password' );\n\n                // Replace eye icon. Show icon without the slash\n                $passwordVisibilityToggle.innerHTML = iconEye;\n            }\n\n            // If it's hidden, and the user clicked it, it means we should show it\n            if ( ! passwordIsVisible ) {\n                // Show the password\n                this.$field.setAttribute( 'type', 'text' );\n\n                // Replace eye icon. Add icon with the slash\n                $passwordVisibilityToggle.innerHTML = iconEyeSlash;\n            }\n        } );\n    }\n\n    /**\n     * Listens to the focus state of the field, and adds a class to the wrapper to style it as if it were a field\n     */\n    styleFocusOnWrapper() {\n        // Listen focus on field\n        this.$field.addEventListener( 'focus', () => {\n            // Add focus class\n            this.$passwordWrapper.classList.add( `${ this.cssClasses.passwordWrapper }--focus` );\n        } );\n\n        // Remove focus class\n        this.$field.addEventListener( 'blur', () => {\n            this.$passwordWrapper.classList.remove( `${ this.cssClasses.passwordWrapper }--focus` );\n        } );\n    }\n\n    /**\n     * Object with the CSS classes used by the wrapper\n     */\n    get cssClasses() {\n        return {\n            passwordWrapper: 'ult-form-password-wrapper',\n\t\t\tpasswordVisibilityToggle: 'ult-form-password-wrapper-eye-toggle'\n        }\n    }\n}","const events = require('eventslibjs');\n\nimport {\n\tAJAXRequest,\n\tisEmpty,\n\tisDefined,\n\ttriggerEvent\n} from './_utilities';\n\nimport PasswordField from './password-field';\n\nclass FrontendLogin {\n\tconstructor() {\n\t\t// Get elements\n\t\tthis.getElements();\n\n\t\t// Check if we have to invoke the methods\n\t\tif (this.shouldInvokeMethods()) {\n\t\t\t// Bind form submission\n\t\t\tthis.validateFormSubmission();\n\n\t\t\t// Handle reCAPTCHA changes\n\t\t\tthis.handleReCaptchaChanges();\n\t\t}\n\t}\n\n\tgetElements() {\n\t\t// Get the main elements\n\t\tthis.$elements = {}\n\n\t\t// Define the main CSS classes\n\t\tthis.cssClasses = {}\n\t}\n\n\tget formData() {\n\t\treturn {}\n\t}\n\n\tget ajaxAction() {\n\t\treturn '';\n\t}\n\n\tvalidateFormSubmission() {\n\t\t// Check if the form exists\n\t\tif (isDefined(this.$elements.mainForm)) {\n\t\t\t// Bind submission\n\t\t\tthis.$elements.mainForm.onsubmit = (event) => {\n\t\t\t\t// Create a variable to evaluate if the form has errors later\n\t\t\t\tlet canSubmit = true;\n\n\t\t\t\t// Check if the recaptcha is enabled, but the checkbox is not checked\n\t\t\t\tif (this.hasReCAPTCHA() && !this.isCaptchaChecked()) {\n\t\t\t\t\t// Add a CSS class for the reCAPTCHA error\n\t\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.reCAPTCHAerror);\n\n\t\t\t\t\t// Update the error status\n\t\t\t\t\tcanSubmit = false;\n\n\t\t\t\t\t// Set frontend error\n\t\t\t\t\tthis.setError(UncannyToolkit.frontendLogin.i18n.checkReCaptcha);\n\n\t\t\t\t\tconsole.error('✋Frontend Login: The form is using reCAPTCHA, but you didn\\'t pass the verification');\n\t\t\t\t}\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/validated`, {\n\t\t\t\t\tisValid: canSubmit\n\t\t\t\t});\n\n\t\t\t\t// Check if we can submit the form\n\t\t\t\tif (canSubmit) {\n\t\t\t\t\t// Submit the form\n\t\t\t\t\tthis.submitForm(event);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Prevent the form submission\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tconsole.error('✋Frontend Login: Submission prevented');\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\n\tsubmitForm(event) {\n\t\t// Hide errors\n\t\tthis.setError(false);\n\n\t\t// Add the loading animation\n\t\tthis.setLoadingStatus(true);\n\n\t\t// Disable the submit button\n\t\tthis.setButtonDisableStatus(true);\n\n\t\t/**\n\t\t * Handles the AJAX submission\n\t\t * \n\t\t * @return {undefined}\n\t\t */\n\t\tconst handleAJAX = () => {\n\t\t\t// Trigger custom event\n\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/submitting`);\n\n\t\t\t// Do AJAX call\n\t\t\tAJAXRequest(this.ajaxAction, this.formData, (response) => {\n\t\t\t\t// Remove the loading animation\n\t\t\t\tthis.setLoadingStatus(false);\n\n\t\t\t\t// Enable the submit button\n\t\t\t\tthis.setButtonDisableStatus(false);\n\n\t\t\t\t// Check if the call was really successful\n\t\t\t\tif (response.success) {\n\t\t\t\t\t// Trigger custom event\n\t\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/submitted`, {\n\t\t\t\t\t\tsuccess: true\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.afterValidSubmission(response);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Trigger custom event\n\t\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/submitted`, {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\tmessage: isDefined(response.message) ? response.message : UncannyToolkit.i18n.error.generic\n\t\t\t\t\t});\n\n\t\t\t\t\t// Check if there is a message\n\t\t\t\t\tif (isDefined(response.message)) {\n\t\t\t\t\t\t// Show the error\n\t\t\t\t\t\tthis.setError(response.message);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// Set a generic error message\n\t\t\t\t\t\tthis.setError(UncannyToolkit.i18n.error.generic);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Reset reCAPTCHA\n\t\t\t\t\tthis.resetReCAPTCHA();\n\t\t\t\t}\n\t\t\t}, (response) => {\n\t\t\t\t// Check if we have the error code and the code is 302\n\t\t\t\tif (isDefined(response.code) && response.code == 302) {\n\t\t\t\t\t// Check if \"Prevent Concurrent Login\" is active\n\t\t\t\t\tif (UncannyToolkit.integrity.shouldPreventConcurrentLogin) {\n\t\t\t\t\t\t// Set custom LD message\n\t\t\t\t\t\tresponse.message = UncannyToolkit.i18n.preventConcurrentLogin;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Check if this is a 2FA redirect (in error callback because success=false)\n\t\t\t\tif (window.UltimateLogin2FARedirect && window.UltimateLogin2FARedirect.handleResponse(response)) {\n\t\t\t\t\t// Redirect was handled, stop processing\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/submitted`, {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\tmessage: isDefined(response.message) ? response.message : UncannyToolkit.i18n.error.generic\n\t\t\t\t});\n\n\t\t\t\t// Check if there is a message\n\t\t\t\tif (isDefined(response.message)) {\n\t\t\t\t\t// Show the error\n\t\t\t\t\tthis.setError(response.message);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Set a generic error message\n\t\t\t\t\tthis.setError(UncannyToolkit.i18n.error.generic);\n\t\t\t\t}\n\n\t\t\t\t// Reset reCAPTCHA\n\t\t\t\tthis.resetReCAPTCHA();\n\n\t\t\t\t// Remove the loading animation\n\t\t\t\tthis.setLoadingStatus(false);\n\n\t\t\t\t// Enable the submit button\n\t\t\t\tthis.setButtonDisableStatus(false);\n\t\t\t}, {\n\t\t\t\tincludeNonce: false\n\t\t\t});\n\t\t}\n\n\t\t// If it's not using the LD reCAPTCHA and AJAX is enabled.\n\t\tif (!this.isUsingLearnDashReCaptcha() && UncannyToolkit.frontendLogin.hasAjaxEnabled) {\n\t\t\t// Prevent the form submission\n\t\t\tevent.preventDefault();\n\t\t\t// Handle AJAX\n\t\t\thandleAJAX();\n\t\t} else {\n\t\t\t// If it's using LD's reCAPTCHA:\n\n\t\t\t// Check if it's using AJAX\n\t\t\tif (UncannyToolkit.frontendLogin.hasAjaxEnabled) {\n\t\t\t\t// Prevent the form submission\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t// Handle reCAPTCHA\n\t\t\t\t// The callback will be invoked once the reCAPTCHA is validated\n\t\t\t\tthis.handleLearnDashReCaptcha(() => {\n\t\t\t\t\t// Handle AJAX\n\t\t\t\t\thandleAJAX();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Check if it has the required data already\n\t\t\t\t// We're doing this because for non-AJAX forms this is a recursive function\n\t\t\t\t// Once validated, it will invoke itself. We have to prevent an infinito loop,\n\t\t\t\t// so after the data is validated, we add a hidden field to the form.\n\t\t\t\t// If the field exists, it means this function was already executed, and that we\n\t\t\t\t// don't have to prevent the submission again. (Only for non-AJAX forms)\n\t\t\t\tif (!this.hasLearnDashReCaptchField()) {\n\t\t\t\t\t// Prevent the form submission even if it's not using AJAX\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t// Handle reCAPTCHA\n\t\t\t\t\t// The callback will be invoked once the reCAPTCHA is validated\n\t\t\t\t\tthis.handleLearnDashReCaptcha(() => {\n\t\t\t\t\t\t// Submit the form again\n\t\t\t\t\t\tthis.$elements.mainForm.submit();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tafterValidSubmission(response) { }\n\n\tsetLoadingStatus(setAsLoading = true) {\n\t\t// Check if we have to add a loading animation to the submit button\n\t\tif (UncannyToolkit.frontendLogin.ui.showAnimationOnSubmit) {\n\t\t\t// Check if we have to enable the loading status\n\t\t\tif (setAsLoading) {\n\t\t\t\t// Add the loading animation\n\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.loading);\n\t\t\t\tthis.$elements.submitButton.container.classList.add(this.cssClasses.btnLoading);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/set-loading`, {\n\t\t\t\t\tisLoading: true\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Remove the loading status\n\t\t\t\tthis.$elements.container.classList.remove(this.cssClasses.loading);\n\t\t\t\tthis.$elements.submitButton.container.classList.remove(this.cssClasses.btnLoading);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/set-loading`, {\n\t\t\t\t\tisLoading: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tsetButtonDisableStatus(setAsDisabled = true) {\n\t\t// Check if we have to disable the submit button\n\t\tif (UncannyToolkit.frontendLogin.ui.buttonDisabledOnSubmit) {\n\t\t\t// Check if we have to set it as disabled\n\t\t\tif (setAsDisabled) {\n\t\t\t\t// Disable the submit button\n\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.disabled);\n\t\t\t\tthis.$elements.submitButton.container.classList.add(this.cssClasses.btnDisabled);\n\t\t\t\tthis.$elements.submitButton.button.setAttribute('disabled', true);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/disable-button`, {\n\t\t\t\t\tdisable: true\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Disable the submit button\n\t\t\t\tthis.$elements.container.classList.remove(this.cssClasses.disabled);\n\t\t\t\tthis.$elements.submitButton.container.classList.remove(this.cssClasses.btnDisabled);\n\t\t\t\tthis.$elements.submitButton.button.removeAttribute('disabled');\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/disable-button`, {\n\t\t\t\t\tdisable: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tsetError(error = false) {\n\t\t// Check if the error is defined\n\t\tif (!isEmpty(error)) {\n\t\t\t// Set the class to show the notice\n\t\t\tthis.$elements.errorNotice.container.classList.add(this.cssClasses.noticeHasError);\n\n\t\t\t// Set the error message\n\t\t\tthis.$elements.errorNotice.textNode.innerHTML = error;\n\t\t}\n\t\telse {\n\t\t\t// Set the class to hide the notice\n\t\t\tthis.$elements.errorNotice.container.classList.remove(this.cssClasses.noticeHasError);\n\n\t\t\t// Set the error message\n\t\t\tthis.$elements.errorNotice.textNode.textContent = '';\n\n\t\t\t// Remove a CSS class for the reCAPTCHA error\n\t\t\tthis.$elements.container.classList.remove(this.cssClasses.reCAPTCHAerror);\n\t\t}\n\t}\n\n\thandleReCaptchaChanges() {\n\t\t// Add global method to handle what happened when\n\t\t// the reCAPTCHA is checked\n\t\tUncannyToolkit.frontendLogin.reCaptcha = {\n\t\t\tcorrect: (response) => {\n\t\t\t\t// Reset errors\n\t\t\t\tthis.setError(false);\n\t\t\t}\n\t\t}\n\t}\n\n\thasReCAPTCHA() {\n\t\treturn isDefined(this.$elements.formFields.reCAPTCHA);\n\t}\n\n\tgetReCAPTCHAResponse() {\n\t\t// Get the reCAPTCHA ID\n\t\tconst id = this.$elements.formFields.reCAPTCHA.getAttribute('data-id');\n\n\t\t// Get the response\n\t\treturn grecaptcha.getResponse(id);\n\t}\n\n\tresetReCAPTCHA() {\n\t\ttry {\n\t\t\t// Get the reCAPTCHA ID\n\t\t\tconst id = this.$elements.formFields.reCAPTCHA.getAttribute('data-id');\n\n\t\t\t// Reset the reCAPTCHA\n\t\t\tgrecaptcha.reset(id);\n\t\t} catch (e) { }\n\t}\n\n\tisOnModal() {\n\t\treturn isDefined(UncannyToolkit.modals['ult-login']);\n\t}\n\n\tisCaptchaChecked() {\n\t\treturn !isEmpty(this.getReCAPTCHAResponse());\n\t}\n\n\tshouldInvokeMethods() {\n\t\treturn isDefined(this.$elements.container);\n\t}\n\n\thandleLearnDashReCaptcha(callback) {\n\t\t// Check if it's using LD's reCAPTCHA\n\t\tif (this.isUsingLearnDashReCaptcha()) {\n\t\t\t// Invoke the challenge\n\t\t\tgrecaptcha.ready(() => {\n\t\t\t\tgrecaptcha.execute(\n\t\t\t\t\tLD_TP.site_key,\n\t\t\t\t\t{ action: 'submit' }\n\t\t\t\t).then((token) => {\n\t\t\t\t\t// Add hidden field to the form\n\t\t\t\t\tif (isDefined(this.$elements.mainForm)) {\n\t\t\t\t\t\t// Add hidden field with token\n\t\t\t\t\t\tthis.$elements.mainForm.insertAdjacentHTML('afterbegin', `<input type=\"hidden\" id=\"ult-form-ld-recaptcha\" name=\"token\" value=\"${token}\">`);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Invoke callback\n\t\t\t\t\tif (isDefined(callback)) {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\t// Just invoke the callback\n\t\t\tif (isDefined(callback)) {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\t}\n\n\tisUsingLearnDashReCaptcha() {\n\t\t// Check if grecaptcha is defined\n\t\t// Check if LD_TP is defined\n\t\t// Check if LD_TP.site_key is defined\n\t\treturn isDefined(window.grecaptcha) && isDefined(window.LD_TP) && isDefined(LD_TP.site_key);\n\t}\n\n\thasLearnDashReCaptchField() {\n\t\tlet hasField = false;\n\n\t\t// Check if the element exists\n\t\tif (isDefined(this.$elements.mainForm)) {\n\t\t\t// Check if the field exists\n\t\t\thasField = isDefined(this.$elements.mainForm.querySelector('input[name=\"token\"]'));\n\t\t}\n\n\t\treturn hasField;\n\t}\n}\nexport class Login extends FrontendLogin {\n\tconstructor() {\n\t\tsuper();\n\n\t\t// Set visibility of content of password field\n\t\tnew PasswordField(this.$elements.formFields.password);\n\t}\n\n\tgetElements() {\n\t\t// Get the main elements\n\t\tthis.$elements = {\n\t\t\tcontainer: document.getElementById('ult-login'),\n\t\t\tmainForm: document.getElementById('ult-login-form'),\n\t\t\tsubmitButton: {\n\t\t\t\tcontainer: document.getElementsByClassName('login-submit')[0],\n\t\t\t\tbutton: document.getElementById('ult-login-submit')\n\t\t\t},\n\t\t\terrorNotice: {\n\t\t\t\tcontainer: document.querySelector('#ult-login .ult-form__validation'),\n\t\t\t\ttextNode: document.querySelector('#ult-login .ult-notice-text'),\n\t\t\t},\n\t\t\tformFields: {\n\t\t\t\temail: document.getElementById('ult-login-email'),\n\t\t\t\tpassword: document.getElementById('ult-login-password'),\n\t\t\t\tredirectTo: document.querySelector('#ult-login .login-submit input[name=\"redirect_to\"]'),\n\t\t\t\treCAPTCHA: document.querySelector('#ult-login .ult-form-recaptcha'),\n\t\t\t\trememberMe: document.getElementById('ult-login-remember'),\n\t\t\t}\n\t\t}\n\t}\n\n\tget id() {\n\t\treturn 'login';\n\t}\n\n\t// Define the AJAX action ID\n\tget ajaxAction() {\n\t\treturn 'ult-login';\n\t}\n\n\tget cssClasses() {\n\t\treturn {\n\t\t\treCAPTCHAerror: 'ult-login--recaptcha-error',\n\t\t\tloading: 'ult-login--loading',\n\t\t\tdisabled: 'ult-login--disabled',\n\t\t\tbtnLoading: 'ult-form__submit-btn--loading',\n\t\t\tbtnDisabled: 'ult-form__submit-btn--disabled',\n\t\t\tnoticeHasError: 'ult-form__validation--has-error',\n\t\t};\n\t}\n\n\tget formData() {\n\n\t\t// The form data.\n\t\tconst formDataDefault = {\n\t\t\temail: this.$elements.formFields.email.value,\n\t\t\tpassword: this.$elements.formFields.password.value,\n\t\t\tredirectTo: this.$elements.formFields.redirectTo.value,\n\t\t}\n\n\t\t// Merge the default data with modules specific.\n\t\tconst formData = Object.assign({}, formDataDefault, UOToolkitFrontEndLoginFormData);\n\n\t\t// Check if it has the \"Remember me\" checkbox\n\t\tif (isDefined(this.$elements.formFields.rememberMe)) {\n\t\t\tformData.rememberMe = this.$elements.formFields.rememberMe.checked;\n\t\t}\n\n\t\t// Check if it has a reCAPTCHA\n\t\tif (this.hasReCAPTCHA()) {\n\t\t\tformData['g-recaptcha-response'] = this.getReCAPTCHAResponse();\n\t\t}\n\n\t\t// Check if it has a LearnDash reCAPTCHA\n\t\tif (isDefined(this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha'))) {\n\t\t\tformData.token = this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha').value;\n\t\t}\n\n\t\t// Check if it has a uo_is_login_modal hidden field to detect login modal request.\n\t\tif (isDefined(this.$elements.mainForm.querySelector('input[name=\"uo_is_login_modal\"]'))) {\n\t\t\tformData.uo_is_login_modal = this.$elements.mainForm.querySelector('input[name=\"uo_is_login_modal\"]').value;\n\t\t}\n\n\t\treturn formData;\n\t}\n\n\tafterValidSubmission(response) {\n\n\t\t// Show the loading animation again, we're going \n\t\t// to redirect them to another page and it might\n\t\t// take some seconds\n\n\t\t// Add the loading animation\n\t\tthis.setLoadingStatus(true);\n\n\t\t// Disable the submit button\n\t\tthis.setButtonDisableStatus(true);\n\n\t\t// Check if this requires a 2FA redirect (new unified approach)\n\t\tif (window.UltimateLogin2FARedirect && window.UltimateLogin2FARedirect.handleResponse(response)) {\n\t\t\t// Redirect was handled, stop processing\n\t\t\treturn;\n\t\t}\n\n\t\t// Legacy 2FA handling (fallback - should not be needed with new approach)\n\t\tif (response?.twoFactor?._meta?.enabled) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if we have to redirect to a URL\n\t\tif (!isEmpty(response.redirectTo)) {\n\t\t\twindow.location.href = response.redirectTo;\n\t\t}\n\t\t// Otherwise, just reload the page\n\t\telse {\n\t\t\twindow.location.reload();\n\t\t}\n\n\t}\n\n}\n\nexport class ForgotPassword extends FrontendLogin {\n\tgetElements() {\n\t\t// Get the main elements\n\t\tthis.$elements = {\n\t\t\tcontainer: document.getElementById('ult-forgot-password'),\n\t\t\tboxContent: document.querySelector('#ult-forgot-password .ult-form__content'),\n\t\t\tmainForm: document.getElementById('ult-forgot-password-form'),\n\t\t\tsubmitButton: {\n\t\t\t\tcontainer: document.querySelector('.ult-form__row--submit'),\n\t\t\t\tbutton: document.getElementById('ult-forgot-password-submit-btn')\n\t\t\t},\n\t\t\terrorNotice: {\n\t\t\t\tcontainer: document.querySelector('#ult-forgot-password .ult-form__validation'),\n\t\t\t\ttextNode: document.querySelector('#ult-forgot-password .ult-notice-text'),\n\t\t\t},\n\t\t\tformFields: {\n\t\t\t\temail: document.getElementById('ult-forgot-email'),\n\t\t\t\treCAPTCHA: document.querySelector('#ult-forgot-password .ult-form-recaptcha'),\n\t\t\t}\n\t\t}\n\t}\n\n\tget id() {\n\t\treturn 'forgot-password';\n\t}\n\n\t// Define the AJAX action ID\n\tget ajaxAction() {\n\t\treturn 'ult-forgot-password';\n\t}\n\n\tget cssClasses() {\n\t\treturn {\n\t\t\treCAPTCHAerror: 'ult-forgot-password--recaptcha-error',\n\t\t\tloading: 'ult-forgot-password--loading',\n\t\t\tdisabled: 'ult-forgot-password--disabled',\n\t\t\tbtnLoading: 'ult-form__submit-btn--loading',\n\t\t\tbtnDisabled: 'ult-form__submit-btn--disabled',\n\t\t\tnoticeHasError: 'ult-form__validation--has-error'\n\t\t};\n\t}\n\n\tget formData() {\n\t\t// Get the form data\n\t\tconst formDataDefault = {\n\t\t\temail: this.$elements.formFields.email.value\n\t\t}\n\n\t\tconst formData = Object.assign({}, formDataDefault, UOToolkitFrontEndLoginFormData);\n\n\t\t// Check if it has a reCAPTCHA\n\t\tif (this.hasReCAPTCHA()) {\n\t\t\tformData['g-recaptcha-response'] = this.getReCAPTCHAResponse();\n\t\t}\n\n\t\t// Check if it has a LearnDash reCAPTCHA\n\t\tif (isDefined(this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha'))) {\n\t\t\tformData.token = this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha').value;\n\t\t}\n\n\t\treturn formData;\n\t}\n\n\tafterValidSubmission(response) {\n\t\t// Show a confirmation message\n\t\tthis.$elements.boxContent.innerHTML = response.message;\n\t}\n}\n\nexport class ResetPassword extends FrontendLogin {\n\tgetElements() {\n\t\t// Get the main elements\n\t\tthis.$elements = {\n\t\t\tcontainer: document.getElementById('ult-reset-password'),\n\t\t\tboxContent: document.querySelector('#ult-reset-password .ult-form__content'),\n\t\t\tmainForm: document.getElementById('ult-reset-password-form'),\n\t\t\tsubmitButton: {\n\t\t\t\tcontainer: document.querySelector('.ult-form__row--submit'),\n\t\t\t\tbutton: document.getElementById('ult-reset-password-submit-btn')\n\t\t\t},\n\t\t\terrorNotice: {\n\t\t\t\tcontainer: document.querySelector('#ult-reset-password .ult-form__validation'),\n\t\t\t\ttextNode: document.querySelector('#ult-reset-password .ult-notice-text'),\n\t\t\t},\n\t\t\tformFields: {\n\t\t\t\tpassword: document.getElementById('ult-reset-new-password'),\n\t\t\t\tpasswordRepeat: document.getElementById('ult-reset-confirm-password'),\n\t\t\t\treCAPTCHA: document.querySelector('#ult-reset-password .ult-form-recaptcha'),\n\t\t\t}\n\t\t}\n\t}\n\n\tget id() {\n\t\treturn 'reset-password';\n\t}\n\n\t// Define the AJAX action ID\n\tget ajaxAction() {\n\t\treturn 'ult-reset-password';\n\t}\n\n\tget cssClasses() {\n\t\treturn {\n\t\t\treCAPTCHAerror: 'ult-reset-password--recaptcha-error',\n\t\t\tloading: 'ult-reset-password--loading',\n\t\t\tdisabled: 'ult-reset-password--disabled',\n\t\t\tbtnLoading: 'ult-form__submit-btn--loading',\n\t\t\tbtnDisabled: 'ult-form__submit-btn--disabled',\n\t\t\tnoticeHasError: 'ult-form__validation--has-error'\n\t\t};\n\t}\n\n\tget formData() {\n\t\t// Get the form data\n\t\tconst formData = {\n\t\t\tpassword: this.$elements.formFields.password.value,\n\t\t\tpasswordRepeat: this.$elements.formFields.passwordRepeat.value,\n\t\t}\n\n\t\t// Check if it has a reCAPTCHA\n\t\tif (this.hasReCAPTCHA()) {\n\t\t\tformData['g-recaptcha-response'] = this.getReCAPTCHAResponse();\n\t\t}\n\n\t\t// Check if it has a LearnDash reCAPTCHA\n\t\tif (isDefined(this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha'))) {\n\t\t\tformData.token = this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha').value;\n\t\t}\n\n\t\treturn formData;\n\t}\n\n\tafterValidSubmission(response) {\n\t\t// Show a confirmation message\n\t\tthis.$elements.boxContent.innerHTML = response.message;\n\t}\n}\n\n/**\n * This class handles the login functionality when it's inside a dialog\n */\nexport class FrontendLogin_Modal {\n\tconstructor() {\n\t\t// Check if we should invoke the callbacks\n\t\tif (this.shouldInvokeMethods()) {\n\t\t\t// Get elements\n\t\t\tthis.getElements();\n\n\t\t\t// Handle clicks to the buttons to show the sections\n\t\t\tthis.handleContainerVisiblity();\n\t\t}\n\t\telse {\n\t\t\t// Check if the current page is the Login page\n\t\t\t// That would mean that the modal is not defined here\n\t\t\t// We want to reload the page when they click on the \"Login\" link\n\t\t\tif (\n\t\t\t\tisDefined(UncannyToolkit.frontendLogin) &&\n\t\t\t\tisDefined(UncannyToolkit.frontendLogin.currentPageIsLoginPage) &&\n\t\t\t\tUncannyToolkit.frontendLogin.currentPageIsLoginPage\n\t\t\t) {\n\t\t\t\tthis.handleModalInLoginPage();\n\t\t\t}\n\t\t}\n\t}\n\n\tgetElements() {\n\t\tthis.$elements = {\n\t\t\tcontainer: document.getElementById('ult-login-modal'),\n\t\t\tloginShowButton: document.getElementById('ult-form-footer-login'),\n\t\t\tforgotPasswordShowButton: document.getElementById('ult-form-footer-forgot-password'),\n\t\t}\n\t}\n\n\thandleContainerVisiblity() {\n\t\tif (isDefined(this.$elements.forgotPasswordShowButton)) {\n\t\t\t// Listen clicks to the button to show the Forgot Password section\n\t\t\tthis.$elements.forgotPasswordShowButton.addEventListener('click', (event) => {\n\t\t\t\t// Prevent the event, we don't want to send them to another page\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t// Show the Forgot Password form\n\t\t\t\tthis.showSection('forgot-password');\n\t\t\t});\n\t\t}\n\n\t\tif (isDefined(this.$elements.loginShowButton)) {\n\t\t\t// Listen clicks to the button to show the Log in section\n\t\t\tthis.$elements.loginShowButton.addEventListener('click', (event) => {\n\t\t\t\t// Prevent the event, we don't want to send them to another page\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t// Show the Forgot Password form\n\t\t\t\tthis.showSection('login');\n\t\t\t});\n\t\t}\n\t}\n\n\tshowSection(section = 'login') {\n\t\t// Remove both classes. We'll add the correct one later\n\t\tthis.$elements.container.classList.remove('ult-login-modal--login', 'ult-login-modal--forgot-password');\n\n\t\t// Show and hide sections\n\t\tif (section == 'login') {\n\t\t\tthis.$elements.container.classList.add('ult-login-modal--login');\n\t\t}\n\t\telse if (section == 'forgot-password') {\n\t\t\tthis.$elements.container.classList.add('ult-login-modal--forgot-password');\n\t\t}\n\t}\n\n\tshouldInvokeMethods() {\n\t\treturn (\n\t\t\tisDefined(UncannyToolkit.frontendLogin) &&\n\t\t\tisDefined(UncannyToolkit.frontendLogin.currentPageIsLoginPage) &&\n\t\t\t!UncannyToolkit.frontendLogin.currentPageIsLoginPage &&\n\t\t\tisDefined(UncannyToolkit.modals['ult-login'])\n\t\t);\n\t}\n\n\thandleModalInLoginPage() {\n\t\tevents.on('click', `[href*=\"ult-modal-open----ult-login\"]`, (event) => {\n\t\t\t// Prevent default\n\t\t\tevent.preventDefault();\n\n\t\t\t// Reload the page\n\t\t\tlocation.reload();\n\t\t});\n\t}\n}\n\nexport class Login2ndFactor {\n\tid = 'login-2nd-factor';\n\n\tconstructor() {\n\t\t// Check if the form exists\n\t\tif (this.$form) {\n\t\t\t// Listen submission\n\t\t\tthis.listenSubmission();\n\t\t}\n\t}\n\n\t/**\n\t * Listens the submission of the form\n\t */\n\tlistenSubmission() {\n\t\tthis.$form.addEventListener('submit', (event) => {\n\t\t\t// Add loading animation to the button\n\t\t\tthis.setLoadingStatus(true);\n\n\t\t\t// Disable button\n\t\t\tthis.setButtonDisableStatus(true);\n\t\t});\n\t}\n\n\t/**\n\t * Sets the loading status\n\t * \n\t * @param {Boolean} setAsLoading TRUE if it should show the loading animation\n\t */\n\tsetLoadingStatus(setAsLoading = true) {\n\t\t// Check if we have to add a loading animation to the submit button\n\t\tif (UncannyToolkit.frontendLogin.ui.showAnimationOnSubmit) {\n\t\t\t// Check if we have to enable the loading status\n\t\t\tif (setAsLoading) {\n\t\t\t\t// Add the loading animation\n\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.loading);\n\t\t\t\tthis.$elements.submitButton.container.classList.add(this.cssClasses.btnLoading);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/set-loading`, {\n\t\t\t\t\tisLoading: true\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Remove the loading status\n\t\t\t\tthis.$elements.container.classList.remove(this.cssClasses.loading);\n\t\t\t\tthis.$elements.submitButton.container.classList.remove(this.cssClasses.btnLoading);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/set-loading`, {\n\t\t\t\t\tisLoading: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sets the disabled status\n\t * \n\t * @param {Boolean} setAsDisabled TRUE if it should disable the form\n\t */\n\tsetButtonDisableStatus(setAsDisabled = true) {\n\t\t// Check if we have to disable the submit button\n\t\tif (UncannyToolkit.frontendLogin.ui.buttonDisabledOnSubmit) {\n\t\t\t// Check if we have to set it as disabled\n\t\t\tif (setAsDisabled) {\n\t\t\t\t// Disable the submit button\n\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.disabled);\n\t\t\t\tthis.$elements.submitButton.container.classList.add(this.cssClasses.btnDisabled);\n\t\t\t\tthis.$elements.submitButton.button.setAttribute('disabled', true);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/disable-button`, {\n\t\t\t\t\tdisable: true\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Disable the submit button\n\t\t\t\tthis.$elements.container.classList.remove(this.cssClasses.disabled);\n\t\t\t\tthis.$elements.submitButton.container.classList.remove(this.cssClasses.btnDisabled);\n\t\t\t\tthis.$elements.submitButton.button.removeAttribute('disabled');\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/disable-button`, {\n\t\t\t\t\tdisable: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns the CSS classes used in the elements of this form\n\t * \n\t * @return {Object} CSS classes\n\t */\n\tget cssClasses() {\n\t\treturn {\n\t\t\tloading: 'ult-login--loading',\n\t\t\tdisabled: 'ult-login--disabled',\n\t\t\tbtnLoading: 'ult-form__submit-btn--loading',\n\t\t\tbtnDisabled: 'ult-form__submit-btn--disabled',\n\t\t};\n\t}\n\n\t/**\n\t * Returns the main elements of the form\n\t * \n\t * @return {Object} Object of Nodes\n\t */\n\tget $elements() {\n\t\treturn {\n\t\t\tcontainer: document.getElementById('ult-login'),\n\t\t\tsubmitButton: {\n\t\t\t\tcontainer: this.$form.querySelector('.submit'),\n\t\t\t\tbutton: this.$form.querySelector('.submit input[type=\"submit\"]')\n\t\t\t},\n\t\t}\n\t}\n\n\t/**\n\t * Returns the main form\n\t * \n\t * @return {Node} The form\n\t */\n\tget $form() {\n\t\treturn document.getElementById('ult-2fa-validation-form--templated');\n\t}\n}","import {\n\tisDefined\n} from './_utilities';\n\n/**\n * Render reCAPTCHAs\n */\n\nclass reCAPTCHAs {\n\tconstructor(){\n\t\t// Get elements\n\t\tthis.whenReady(() => {\n\t\t\t// Render the reCAPTCHAs\n\t\t\tthis.renderReCaptchas();\n\t\t});\n\t}\n\n\twhenReady( callback ){\n\t\t// Define a function that will be invoked once Google reCAPTCHA\n\t\t// is ready to use\n\t\twindow.UncannyToolkit.reCaptchaInit = () => {\n\t\t\t// Invoke the callback\n\t\t\tcallback();\n\t\t}\n\t}\n\n\trenderReCaptchas(){\n\t\t// Get containers\n\t\tconst $reCAPTCHAs = document.querySelectorAll( '.ult-form-recaptcha' );\n\n\t\t// Iterate the elements\n\t\t[].forEach.call( $reCAPTCHAs, ( $reCAPTCHA ) => {\n\t\t\t// Render the reCAPTCHA\n\t\t\tconst id = window.grecaptcha.render( $reCAPTCHA, {\n\t\t\t\tsitekey:  $reCAPTCHA.getAttribute( 'data-sitekey' ),\n\t\t\t\tcallback: $reCAPTCHA.getAttribute( 'data-callback' )\n\t\t\t});\n\n\t\t\t// Add the ID to the element so we can get the correct\n\t\t\t// validation token later\n\t\t\t$reCAPTCHA.setAttribute( 'data-id', id );\n\t\t});\n\t}\n}\n\nexport default reCAPTCHAs;","const events = require( 'eventslibjs' );\n\nimport {\n\tfade,\n\tdelegateEvent,\n\tisEmpty,\n\tisDefined\n} from './_utilities';\n\nclass Modals {\n\tconstructor(){\n\t\t// Create an array to save the IDs of all the modals\n\t\t// on this page\n\t\tthis.allModals = [];\n\n\t\t// Create a property in the main global object\n\t\t// to save the modals\n\t\tUncannyToolkit.modals = {};\n\n\t\t// Get elements\n\t\tthis.getElements();\n\n\t\t// Initialize modals\n\t\tthis.createModals();\n\t}\n\n\tgetElements(){\n\t\tthis.$elements = {\n\t\t\tmodals: document.querySelectorAll( '.ult-modal' )\n\t\t}\n\t}\n\n\tcreateModals(){\n\t\t// Itearate the modals (if any)\n\t\t[].forEach.call( this.$elements.modals, ( $modal ) => {\n\t\t\t// Get the modal ID\n\t\t\tconst modalID = isDefined( $modal.getAttribute( 'data-id' ) ) ? $modal.getAttribute( 'data-id' ) : '';\n\n\t\t\t// Check if there isn't already a modal with that ID\n\t\t\tif ( ! this.allModals.includes( modalID ) ){\n\t\t\t\t// Then create the modal\n\t\t\t\tlet modal = new Modal( $modal );\n\n\t\t\t\t// And save the ID\n\t\t\t\tthis.allModals.push( modalID );\n\n\t\t\t\t// Save the modal in the main global variable\n\t\t\t\tUncannyToolkit.modals[ modalID ] = modal;\n\t\t\t}\n\t\t});\n\t}\n}\n\nclass Modal {\n\tconstructor( $modalContent ){\n\t\t// Get the modal data\n\t\tthis.getModalData( $modalContent );\n\n\t\t// Render the modal\n\t\tthis.renderModal( $modalContent );\n\n\t\t// Listen clicks to containers that are trying to open the modal\n\t\tthis.handleModalOpen();\n\n\t\t// Listen clicks outside the modal box\n\t\tthis.handleClickOutsideTheModal();\n\t}\n\n\tgetModalData( $modalContent ){\n\t\t// Get the main modal data like ID, title and the parameter\n\t\t// that defines whether it should have the \"Discard\" button\n\t\tthis.modalData = {\n\t\t\tid:         isDefined( $modalContent.getAttribute( 'data-id' ) ) ? $modalContent.getAttribute( 'data-id' ) : '',\n\t\t\ttitle:      isDefined( $modalContent.getAttribute( 'data-title' ) ) ? $modalContent.getAttribute( 'data-title' ) : '',\n\t\t\tbtnDismiss: isDefined( $modalContent.getAttribute( 'data-btn-dismiss' ) ) ? !! parseInt( $modalContent.getAttribute( 'data-btn-dismiss' ) ) : true,\n\t\t\tdimBackground: isDefined( $modalContent.getAttribute( 'data-dim-background' ) ) ? !! parseInt( $modalContent.getAttribute( 'data-dim-background' ) ) : true,\n\t\t}\n\t}\n\n\trenderModal( $modalContent ){\n\t\t// Create the modal\n\t\tconst $modal = document.createElement( 'div' );\n\n\t\t// Set the element ID\n\t\t$modal.id = `ult-modal-container-${ this.modalData.id }`;\n\n\t\t// Add class to the main container\n\t\t$modal.classList.add( 'ult-modal-container' );\n\n\t\t// Set the data-id attribute\n\t\t$modal.setAttribute( 'data-id', this.modalData.id );\n\n\t\t// Set the children\n\t\t$modal.innerHTML = `\n\t\t\t<div class=\"ult-modal__inside\">\n\t\t\t\t<div class=\"ult-modal-box\">\n\t\t\t\t\t${ ! isEmpty( this.modalData.title ) ? `\n\t\t\t\t\t\t<div class=\"ult-modal-box-header\">\n\t\t\t\t\t\t\t<h2>${ this.modalData.title }</h2>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t` : '' }\n\n\t\t\t\t\t<div class=\"ult-modal-box-content\"></div>\n\n\t\t\t\t\t${ this.modalData.btnDismiss ? `\n\t\t\t\t\t\t<div class=\"ult-modal-box-footer\">\n\t\t\t\t\t\t\t<button class=\"ult-modal-box-footer__dismiss\">\n\t\t\t\t\t\t\t\t${ UncannyToolkit.i18n.dismiss }\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t` : '' }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\t// Add the modal content\n\t\t$modal.querySelector( '.ult-modal-box-content' ).appendChild( $modalContent );\n\n\t\t// Add the modal to the end of the document\n\t\tdocument.body.appendChild( $modal );\n\n\t\t// Save the main elements\n\t\tthis.$elements = {\n\t\t\tcontainer: $modal,\n\t\t\tbox: $modal.querySelector( '.ult-modal-box' ),\n\t\t\tcontent: $modal.querySelector( '.ult-modal-box-content .ult-modal' )\n\t\t}\n\n\t\t// Check if it has the dismiss button\n\t\tif ( this.modalData.btnDismiss ){\n\t\t\t// Get the dismiss button\n\t\t\tthis.$elements.dismissBtn = $modal.querySelector( '.ult-modal-box-footer__dismiss' );\n\n\t\t\t// Add the event listener\n\t\t\tthis.handleDismissButton();\n\t\t}\n\t}\n\n\thandleModalOpen(){\n\t\t// Listen clicks to the document, but invoke the callback only if the\n\t\t// clicked element matches one of the following selectors:\n\t\t// 1. .ult-modal-open[data-id=\"${ this.modalData.id }\"]\n\t\t// 2. [class*=\"ult-modal-open----${ this.modalData.id }\"]\n\t\t// 3. [href*=\"ult-modal-open----${ this.modalData.id }\"]\n\t\tevents.on( 'click', `.ult-modal-open[data-id=\"${ this.modalData.id }\"], [class*=\"ult-modal-open----${ this.modalData.id }\"], [href*=\"ult-modal-open----${ this.modalData.id }\"]`, ( event ) => {\n\t\t\t// Prevent default\n\t\t\tevent.preventDefault();\n\n\t\t\t// Show the modal\n\t\t\tthis.showModal(); \n\t\t});\n\t}\n\n\thandleDismissButton(){\n\t\t// Listen clicks to the dismiss button\n\t\tthis.$elements.dismissBtn.addEventListener( 'click', () => {\n\t\t\t// Hide the modal\n\t\t\tthis.hideModal();\n\t\t});\n\t}\n\n\thandleClickOutsideTheModal(){\n\t\t// Listen clicks to the while modal container\n\t\tthis.$elements.container.addEventListener( 'mouseup', ( event ) => {\n            // Set the targetted container\n            const $container = this.$elements.box;\n\n            if ( ( $container !== event.target ) && ! $container.contains( event.target ) ){\n                // Hide modal\n                this.hideModal();\n            }\n        });\n\t}\n\n\tsetLoading( isLoading = true ){\n\t\t// Check if we have to set the loading class\n\t\tif ( isLoading ){\n\t\t\tthis.$elements.container.classList.add( 'ult-modal-container--loading' );\n\t\t}\n\t\telse {\n\t\t\t// Remove the loading class\n\t\t\tthis.$elements.container.classList.remove( 'ult-modal-container--loading' );\n\t\t}\n\t}\n\n\tsetContent( HTMLcontent = '' ){\n\t\t// Set the content\n\t\tthis.$elements.content.innerHTML = HTMLcontent;\n\t}\n\n\tshowModal(){\n\t\t// Show the modal\n\t\tfade( 'in', this.$elements.container );\n\t\tthis.$elements.container.classList.add( 'ult-modal-container--open' );\n\n\t\t// Add class to the body element, so the user can use it\n\t\t// to change other stuff\n\t\tdocument.body.classList.add( 'ult-modals--open' );\n\n\t\t// Check if we have to dim the background\n\t\tif ( this.modalData.dimBackground ){\n\t\t\t// Add class to dim the background\n\t\t\tdocument.body.classList.add( 'ult-modals--dim-background' );\n\t\t}\n\t}\n\n\thideModal(){\n\t\t// Hide the modal\n\t\tfade( 'out', this.$elements.container, () => {\n\t\t\t// Hide the modal\n\t\t\tthis.$elements.container.classList.remove( 'ult-modal-container--open' );\n\n\t\t\t// Remove class from the body element\n\t\t\tdocument.body.classList.remove( 'ult-modals--open' );\n\n\t\t\t// Remove the class to dim the background\n\t\t\tdocument.body.classList.remove( 'ult-modals--dim-background' );\n\t\t});\n\t}\n}\n\nexport default Modals;","// Core login system modules\nimport {\n    Login,\n    ForgotPassword,\n    ResetPassword,\n    Login2ndFactor,\n    FrontendLogin_Modal\n} from './js/frontend-login';\n\n// Two-factor authentication redirect handler\nimport UltimateLogin2FARedirect from './js/wp-2fa-redirect';\n\n// Global utility modules\nimport reCAPTCHAs from './js/recaptcha';\nimport Modals from './js/dialog';\n\n// Import main stylesheet\nimport './scss/main.scss';\n\n// Do on DOM ready\ndocument.addEventListener('DOMContentLoaded', () => {\n    // reCAPTCHA (global module)\n    new reCAPTCHAs();\n\n    // Modals (global module)\n    new Modals();\n\n    // Frontend Login\n    new Login();\n    new ForgotPassword();\n    new ResetPassword();\n    new Login2ndFactor();\n\n    // Make 2FA redirect handler globally available\n    window.UltimateLogin2FARedirect = UltimateLogin2FARedirect;\n\n    // Exceptions for the login form when\n    // it's used on a modal\n    new FrontendLogin_Modal();\n});\n"],"names":["UltimateLogin2FARedirect","_classCallCheck","key","value","response","data","requires_redirect","redirect_url","window","location","href","module","exports","e","Element","prototype","closest","t","n","this","document","ownerDocument","querySelectorAll","o","length","item","parentElement","g","r","i","c","f","type","forEach","target","selector","documentElement","indexOf","contains","callback","on","split","trim","addEventListener","push","off","removeEventListener","toString","splice","once","get","hasOwnProperty","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","call","getter","__esModule","d","a","definition","Object","defineProperty","enumerable","globalThis","Function","obj","prop","isDefined","variable","isEmpty","Array","isArray","isObject","keys","fade","element","arguments","fadeClass","concat","classList","add","setTimeout","remove","triggerEvent","eventId","event","CustomEvent","detail","dispatchEvent","eye","PasswordField","$field","cssClasses","passwordWrapper","addWrapper","contentVisibilityToggle","styleFocusOnWrapper","$passwordWrapper","createElement","insertAdjacentElement","appendChild","_this","insertAdjacentHTML","passwordVisibilityToggle","iconEye","$passwordVisibilityToggle","querySelector","passwordIsVisible","getAttribute","setAttribute","innerHTML","_this2","events","require","FrontendLogin","getElements","shouldInvokeMethods","validateFormSubmission","handleReCaptchaChanges","_createClass","$elements","mainForm","onsubmit","canSubmit","hasReCAPTCHA","isCaptchaChecked","container","reCAPTCHAerror","setError","UncannyToolkit","frontendLogin","i18n","checkReCaptcha","console","error","id","isValid","submitForm","preventDefault","setLoadingStatus","setButtonDisableStatus","handleAJAX","action","onSuccess","onFail","options","_objectSpread","includeNonce","nonce","ajax","fetch","url","method","headers","body","URLSearchParams","then","ok","redirected","success","code","json","Error","generic","AJAXRequest","ajaxAction","formData","afterValidSubmission","message","resetReCAPTCHA","integrity","shouldPreventConcurrentLogin","preventConcurrentLogin","handleResponse","isUsingLearnDashReCaptcha","hasAjaxEnabled","handleLearnDashReCaptcha","hasLearnDashReCaptchField","submit","setAsLoading","ui","showAnimationOnSubmit","loading","submitButton","btnLoading","isLoading","setAsDisabled","buttonDisabledOnSubmit","disabled","btnDisabled","button","disable","removeAttribute","errorNotice","noticeHasError","textNode","textContent","_this3","reCaptcha","correct","formFields","reCAPTCHA","grecaptcha","getResponse","reset","modals","getReCAPTCHAResponse","_this4","ready","execute","LD_TP","site_key","token","hasField","Login","_FrontendLogin","_inherits","_super","_createSuper","_this5","password","getElementById","getElementsByClassName","email","redirectTo","rememberMe","formDataDefault","assign","UOToolkitFrontEndLoginFormData","checked","uo_is_login_modal","_response$twoFactor","twoFactor","_meta","enabled","reload","ForgotPassword","_FrontendLogin2","_super2","apply","boxContent","ResetPassword","_FrontendLogin3","_super3","passwordRepeat","FrontendLogin_Modal","handleContainerVisiblity","currentPageIsLoginPage","handleModalInLoginPage","loginShowButton","forgotPasswordShowButton","_this6","showSection","section","Login2ndFactor","$form","listenSubmission","_this7","reCAPTCHAs","whenReady","renderReCaptchas","reCaptchaInit","$reCAPTCHAs","$reCAPTCHA","render","sitekey","Modals","allModals","createModals","$modal","modalID","includes","modal","Modal","$modalContent","getModalData","renderModal","handleModalOpen","handleClickOutsideTheModal","modalData","title","btnDismiss","parseInt","dimBackground","dismiss","box","content","dismissBtn","handleDismissButton","showModal","hideModal","$container","HTMLcontent"],"sourceRoot":""}
     1{"version":3,"file":"bundle.min.js","mappings":"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","sources":["webpack://ultf-frontend/./src/js/wp-2fa-redirect.js","webpack://ultf-frontend/./node_modules/eventslibjs/dist/events.polyfills.min.js","webpack://ultf-frontend/webpack/bootstrap","webpack://ultf-frontend/webpack/runtime/compat get default export","webpack://ultf-frontend/webpack/runtime/define property getters","webpack://ultf-frontend/webpack/runtime/global","webpack://ultf-frontend/webpack/runtime/hasOwnProperty shorthand","webpack://ultf-frontend/./src/js/_utilities.js","webpack://ultf-frontend/./src/js/_icons.js","webpack://ultf-frontend/./src/js/password-field.js","webpack://ultf-frontend/./src/js/frontend-login.js","webpack://ultf-frontend/./src/js/recaptcha.js","webpack://ultf-frontend/./src/js/dialog.js","webpack://ultf-frontend/./src/index.js"],"sourcesContent":["/**\n * WP 2FA Redirect Handler\n * \n * Minimal script to handle AJAX login redirects for 2FA challenges.\n * Replaces the complex 1000+ line 2FA form management with simple redirect logic.\n * \n * @package uncanny-learndash-toolkit\n * @since 1.0.0\n */\n\n/**\n * Simple AJAX redirect handler for 2FA\n * \n * Handles the response from AJAX login attempts and redirects to 2FA challenge\n * when required. All 2FA form rendering and validation is now handled server-side.\n */\nclass UltimateLogin2FARedirect {\n\n    /**\n * Handles AJAX login response and performs redirect if 2FA is required\n * \n * @param {Object} response - The AJAX login response\n * @returns {boolean} - True if redirect was handled, false otherwise\n */\n    static handleResponse(response) {\n        // Check if this is a 2FA redirect response\n        if (response &&\n            response.data &&\n            response.data.requires_redirect === true &&\n            response.data.redirect_url) {\n\n            // Redirect to the 2FA challenge page\n            if (typeof window !== 'undefined' && window.location) {\n                window.location.href = response.data.redirect_url;\n                return true;\n            }\n        }\n\n        return false;\n    }\n}\n\n// Make globally available for the frontend login system\nif (typeof window !== 'undefined') {\n    window.UltimateLogin2FARedirect = UltimateLogin2FARedirect;\n}\n\n// Export for module systems\nif (typeof module !== 'undefined' && module.exports) {\n    module.exports = UltimateLogin2FARedirect;\n}\n","/*! eventslibjs v1.2.0 | (c) 2019 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/events */\nwindow.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t,n=(this.document||this.ownerDocument).querySelectorAll(e),o=this;do{for(t=n.length;0<=--t&&n.item(t)!==o;);}while(t<0&&(o=o.parentElement));return o}),(function(e,t){\"function\"==typeof define&&define.amd?define([],(function(){return t(e)})):\"object\"==typeof exports?module.exports=t(e):e.events=t(e)})(\"undefined\"!=typeof global?global:\"undefined\"!=typeof window?window:this,(function(r){\"use strict\";var i={},c={},f=function(o){c[o.type]&&c[o.type].forEach((function(e){var t,n;(t=o.target,n=e.selector,-1<[\"*\",\"window\",\"document\",\"document.documentElement\",r,document,document.documentElement].indexOf(n)||(\"string\"!=typeof n&&n.contains?n===t||n.contains(t):t.closest(n)))&&e.callback(o)}))};return i.on=function(e,t,n){t&&n&&e.split(\",\").forEach((function(e){e=e.trim(),c[e]||(c[e]=[],r.addEventListener(e,f,!0)),c[e].push({selector:t,callback:n})}))},i.off=function(e,n,o){e.split(\",\").forEach((function(e){if(e=e.trim(),c[e]){if(c[e].length<2||!n)return delete c[e],void r.removeEventListener(e,f,!0);var t=(function(e,t,n){for(var o=0;o<e.length;o++)if(e[o].selector===t&&e[o].callback.toString()===n.toString())return o;return-1})(c[e],n,o);t<0||c[e].splice(t,1)}}))},i.once=function(n,o,r){i.on(n,o,(function e(t){r(t),i.off(n,o,e)}))},i.get=function(){var e={};for(var t in c)c.hasOwnProperty(t)&&(e[t]=c[t]);return e},i}));","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/**\n * Determine if a variable is set and is not NULL\n *\n * @since 3.3\n *\n * @param  {mixed}      variable - The variable being evaluated\n * @return {boolean}    TRUE if the variable is defined\n */\nexport const isDefined = ( variable ) => {\n\t// Returns true if the variable is undefined\n    return typeof variable !== 'undefined' && variable !== null;\n}\n\n/**\n * Determine whether a variable is empty\n *\n * @since 3.3\n *\n * @param   {mixed}     variable - The variable being evaluated\n * @return  {boolean}   TRUE if the variable is empty\n */\nexport const isEmpty = ( variable ) => {\n    let response = true;\n\n    // Check if the variable is defined, otherwise is empty\n    if ( isDefined( variable ) ){\n        // Check if it's array\n        if ( Array.isArray( variable ) ){\n            response = variable.length == 0;\n        }\n        else if ( isObject( variable ) ){\n            response = Object.keys( variable ).length == 0;\n        }\n        else {\n            response = variable == '';\n        }\n    }\n\n    return response;\n}\n\n/**\n * Determine whether a variable is an object.\n * The Object constructor creates an object wrapper for the given value. If the value is null or undefined, it will create and return an empty object, otherwise, it will return an object of a type that corresponds to the given value. If the value is an object already, it will return the value.\n *\n * @since 3.3\n *\n * @param   {mixed}     variable - The variable being evaluated\n * @return  {boolean}   TRUE if the variable is an object\n */\nexport const isObject = ( variable ) => {\n    return variable === Object( variable );\n}\n\n/**\n * Simulate a fade in/fade out transition\n *\n * @since 3.3\n * \n * @param  {String} fade        Whether we have to fade in our fade out the element\n * @param  {Element}   element  Element\n */\nexport const fade = ( in_out = 'in', element, callback ) => {\n    // Check what's the class we have to add\n    const fadeClass = `ult--fade-${ in_out }`;\n\n    // Define the default callback\n    callback = isDefined( callback ) ? callback : () => {};\n\n    // Add the fade class\n    element.classList.add( fadeClass );\n\n    // Remove it after 300ms (the fade duration)\n    setTimeout(() => {\n        // Remove the fade class\n        element.classList.remove( fadeClass );\n\n        // Invoke the callback\n        callback();\n    }, 280 );\n}\n\n/**\n * Performs an AJAX request\n *\n * @since 3.3\n *\n * @param {object}    data - Data to be sent in the request\n * @param {callback}  [onSuccess] - Function to be invoked if the request is successful\n * @param {callback}  [onFail] - Function to be invoked if the request fails\n */\n\nexport function AJAXRequest( action = null, data = null, onSuccess = null, onFail = null, options = {} ){\n    // Add {action} to the data object\n    data = { ...data, ...{\n        action: action\n    }};\n\n    // Check if we should include the nonce\n    if ( ! isDefined( options.includeNonce ) || options.includeNonce ){\n        data.nonce = UncannyToolkit.ajax.nonce;\n    }\n\n    // Do the call\n    fetch( UncannyToolkit.ajax.url, {\n        method: 'POST',\n        headers: {\n            'Content-Type': 'application/x-www-form-urlencoded',\n            'Cache-Control': 'no-cache',\n        },\n        body: new URLSearchParams( data ),\n    })\n    .then(( response ) => {\n        // Check if the call was not successful\n        if ( ! response.ok ){\n            if ( isDefined( onFail ) ){\n                onFail({ ...response, ...{ success: false }});\n            }\n\n            // Stop chain\n            throw Error( UncannyToolkit.i18n.error.generic );\n        }\n        else {\n            // Detect redirection\n            if ( response.redirected ) {\n                // Return the error for the next .then to handle it\n                return {\n                    success: false,\n                    code: 302\n                }\n            } else {\n                return response.json();\n            }\n        }\n    })\n    .then(( response ) => {\n        // Check if the call was successful\n        if ( response.success ){\n            if ( isDefined( onSuccess ) ){\n                onSuccess( response );\n            }\n        }\n        else {\n            if ( isDefined( onFail ) ){\n                onFail({ ...response, ...{ success: false }});\n            }\n        }\n    })\n    .catch(( response ) => {\n        console.error( '✋Uncanny Toolkit: The fetch call threw an error' );\n\n        if ( isDefined( onFail ) ){\n            onFail({ ...response, ...{ success: false }});\n        }\n    });;\n}\n\n/**\n * Trigger a custom event\n * @param  {String} eventId ID of the event\n * @param  {Object} data    Data\n */\nexport function triggerEvent( eventId = '', data = {} ){\n    try {\n        const event = new CustomEvent( eventId, { detail: data } );\n        document.dispatchEvent( event );\n    }\n    catch ( e ){}\n}","const eye = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\" viewBox=\"0 0 576 512\"><path d=\"M279.6 160.4C282.4 160.1 285.2 160 288 160C341 160 384 202.1 384 256C384 309 341 352 288 352C234.1 352 192 309 192 256C192 253.2 192.1 250.4 192.4 247.6C201.7 252.1 212.5 256 224 256C259.3 256 288 227.3 288 192C288 180.5 284.1 169.7 279.6 160.4zM480.6 112.6C527.4 156 558.7 207.1 573.5 243.7C576.8 251.6 576.8 260.4 573.5 268.3C558.7 304 527.4 355.1 480.6 399.4C433.5 443.2 368.8 480 288 480C207.2 480 142.5 443.2 95.42 399.4C48.62 355.1 17.34 304 2.461 268.3C-.8205 260.4-.8205 251.6 2.461 243.7C17.34 207.1 48.62 156 95.42 112.6C142.5 68.84 207.2 32 288 32C368.8 32 433.5 68.84 480.6 112.6V112.6zM288 112C208.5 112 144 176.5 144 256C144 335.5 208.5 400 288 400C367.5 400 432 335.5 432 256C432 176.5 367.5 112 288 112z\"/></svg>`;\n\nconst eyeSlash = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\" viewBox=\"0 0 640 512\"><path d=\"M150.7 92.77C195 58.27 251.8 32 320 32C400.8 32 465.5 68.84 512.6 112.6C559.4 156 590.7 207.1 605.5 243.7C608.8 251.6 608.8 260.4 605.5 268.3C592.1 300.6 565.2 346.1 525.6 386.7L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L150.7 92.77zM223.1 149.5L313.4 220.3C317.6 211.8 320 202.2 320 191.1C320 180.5 316.1 169.7 311.6 160.4C314.4 160.1 317.2 159.1 320 159.1C373 159.1 416 202.1 416 255.1C416 269.7 413.1 282.7 407.1 294.5L446.6 324.7C457.7 304.3 464 280.9 464 255.1C464 176.5 399.5 111.1 320 111.1C282.7 111.1 248.6 126.2 223.1 149.5zM320 480C239.2 480 174.5 443.2 127.4 399.4C80.62 355.1 49.34 304 34.46 268.3C31.18 260.4 31.18 251.6 34.46 243.7C44 220.8 60.29 191.2 83.09 161.5L177.4 235.8C176.5 242.4 176 249.1 176 255.1C176 335.5 240.5 400 320 400C338.7 400 356.6 396.4 373 389.9L446.2 447.5C409.9 467.1 367.8 480 320 480H320z\"/></svg>`;\n\nexport { eye as iconEye }\nexport { eyeSlash as iconEyeSlash }","import {\n\ticonEye,\n\ticonEyeSlash\n} from './_icons';\n\n/**\n * Adds an eye icon to toggle password visibility\n * Does NOT wrap the field - keeps it in original DOM position to preserve Safari autofill\n */\nexport default class PasswordField {\n    /**\n     * Adds an eye icon to toggle password visibility\n     * @param {Node} $field The Node of the password field\n     */\n    constructor( $field ) {\n        // Check if the field exists\n        if ( ! $field ) {\n            return;\n        }\n\n        // Check if eye icon already exists (as next sibling)\n        const nextSibling = $field.nextElementSibling;\n        if ( nextSibling && nextSibling.classList && nextSibling.classList.contains( this.cssClasses.passwordVisibilityToggle ) ) {\n            return;\n        }\n\n        // Save Node\n        this.$field = $field;\n        \n        // Change class from \"input\" to \"uncannyowl-input\"\n        if ( this.$field.classList.contains( 'input' ) ) {\n            this.$field.classList.remove( 'input' );\n            this.$field.classList.add( 'uncannyowl-input' );\n        }\n\n        // Make parent position relative if it isn't already (for absolute positioning of icon)\n        this.setupParentPositioning();\n\n        // Add padding to field for the icon\n        this.addFieldPadding();\n\n        // Add eye icon as sibling (NOT wrapping the field)\n        this.addEyeIcon();\n\n        // Ensure field stays editable\n        this.ensureFieldEditable();\n        \n        // Add focus/blur handlers to style eye icon when field is focused\n        this.setupFocusHandlers();\n    }\n\n    /**\n     * Make parent position relative for absolute positioning of icon\n     */\n    setupParentPositioning() {\n        const parent = this.$field.parentNode;\n        \n        // Check if parent already has position\n        const parentPosition = window.getComputedStyle( parent ).position;\n        \n        // If parent doesn't have position, make it relative\n        if ( parentPosition === 'static' ) {\n            parent.style.position = 'relative';\n        }\n    }\n\n    /**\n     * Add padding to the right of the field to make room for the icon\n     */\n    addFieldPadding() {\n        // Add padding-right to make room for the eye icon\n        const currentPadding = window.getComputedStyle( this.$field ).paddingRight;\n        const paddingValue = parseInt( currentPadding ) || 0;\n        \n        // Add 35px padding if not already enough\n        if ( paddingValue < 35 ) {\n            this.$field.style.paddingRight = '35px';\n        }\n    }\n\n    /**\n     * Add eye icon as a sibling element (not wrapping the field)\n     */\n    addEyeIcon() {\n        // Create eye icon container\n        this.$eyeIcon = document.createElement( 'div' );\n        this.$eyeIcon.classList.add( this.cssClasses.passwordVisibilityToggle );\n        this.$eyeIcon.innerHTML = iconEye;\n        \n        // Insert icon as sibling after the field\n        this.$field.parentNode.insertBefore( this.$eyeIcon, this.$field.nextSibling );\n        \n        // Add click event to toggle visibility\n        this.$eyeIcon.addEventListener( 'click', () => {\n            const passwordIsVisible = this.$field.getAttribute( 'type' ) === 'text';\n\n            if ( passwordIsVisible ) {\n                // Hide the password\n                this.$field.setAttribute( 'type', 'password' );\n                this.$eyeIcon.innerHTML = iconEye;\n            } else {\n                // Show the password\n                this.$field.setAttribute( 'type', 'text' );\n                this.$eyeIcon.innerHTML = iconEyeSlash;\n            }\n        } );\n    }\n    \n    /**\n     * Setup focus/blur handlers to style eye icon when field is focused\n     */\n    setupFocusHandlers() {\n        // Listen for focus on field\n        this.$field.addEventListener( 'focus', () => {\n            // Add focus class to eye icon\n            if ( this.$eyeIcon ) {\n                this.$eyeIcon.classList.add( 'ult-form-password-wrapper-eye-toggle--focus' );\n            }\n        } );\n        \n        // Listen for blur on field\n        this.$field.addEventListener( 'blur', () => {\n            // Remove focus class from eye icon\n            if ( this.$eyeIcon ) {\n                this.$eyeIcon.classList.remove( 'ult-form-password-wrapper-eye-toggle--focus' );\n            }\n        } );\n    }\n\n    /**\n     * Ensure field stays editable\n     */\n    ensureFieldEditable() {\n        // Remove readonly/disabled immediately\n        this.$field.removeAttribute( 'readonly' );\n        this.$field.removeAttribute( 'disabled' );\n        this.$field.readOnly = false;\n        this.$field.disabled = false;\n    }\n\n    /**\n     * Object with the CSS classes used\n     */\n    get cssClasses() {\n        return {\n            passwordVisibilityToggle: 'ult-form-password-wrapper-eye-toggle'\n        }\n    }\n}\n","const events = require('eventslibjs');\n\nimport {\n\tAJAXRequest,\n\tisEmpty,\n\tisDefined,\n\ttriggerEvent\n} from './_utilities';\n\nimport PasswordField from './password-field';\n\nclass FrontendLogin {\n\tconstructor() {\n\t\t// Get elements\n\t\tthis.getElements();\n\n\t\t// Check if we have to invoke the methods\n\t\tif (this.shouldInvokeMethods()) {\n\t\t\t// Bind form submission\n\t\t\tthis.validateFormSubmission();\n\n\t\t\t// Handle reCAPTCHA changes\n\t\t\tthis.handleReCaptchaChanges();\n\t\t}\n\t}\n\n\tgetElements() {\n\t\t// Get the main elements\n\t\tthis.$elements = {}\n\n\t\t// Define the main CSS classes\n\t\tthis.cssClasses = {}\n\t}\n\n\tget formData() {\n\t\treturn {}\n\t}\n\n\tget ajaxAction() {\n\t\treturn '';\n\t}\n\n\tvalidateFormSubmission() {\n\t\t// Check if the form exists\n\t\tif (isDefined(this.$elements.mainForm)) {\n\t\t\t// Bind submission\n\t\t\tthis.$elements.mainForm.onsubmit = (event) => {\n\t\t\t\t// Create a variable to evaluate if the form has errors later\n\t\t\t\tlet canSubmit = true;\n\n\t\t\t\t// Check if the recaptcha is enabled, but the checkbox is not checked\n\t\t\t\tif (this.hasReCAPTCHA() && !this.isCaptchaChecked()) {\n\t\t\t\t\t// Add a CSS class for the reCAPTCHA error\n\t\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.reCAPTCHAerror);\n\n\t\t\t\t\t// Update the error status\n\t\t\t\t\tcanSubmit = false;\n\n\t\t\t\t\t// Set frontend error\n\t\t\t\t\tthis.setError(UncannyToolkit.frontendLogin.i18n.checkReCaptcha);\n\n\t\t\t\t\tconsole.error('✋Frontend Login: The form is using reCAPTCHA, but you didn\\'t pass the verification');\n\t\t\t\t}\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/validated`, {\n\t\t\t\t\tisValid: canSubmit\n\t\t\t\t});\n\n\t\t\t\t// Check if we can submit the form\n\t\t\t\tif (canSubmit) {\n\t\t\t\t\t// Submit the form\n\t\t\t\t\tthis.submitForm(event);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Prevent the form submission\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tconsole.error('✋Frontend Login: Submission prevented');\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\n\tsubmitForm(event) {\n\t\t// Hide errors\n\t\tthis.setError(false);\n\n\t\t// Add the loading animation\n\t\tthis.setLoadingStatus(true);\n\n\t\t// Disable the submit button\n\t\tthis.setButtonDisableStatus(true);\n\n\t\t/**\n\t\t * Handles the AJAX submission\n\t\t * \n\t\t * @return {undefined}\n\t\t */\n\t\tconst handleAJAX = () => {\n\t\t\t// Trigger custom event\n\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/submitting`);\n\n\t\t\t// Do AJAX call\n\t\t\tAJAXRequest(this.ajaxAction, this.formData, (response) => {\n\t\t\t\t// Remove the loading animation\n\t\t\t\tthis.setLoadingStatus(false);\n\n\t\t\t\t// Enable the submit button\n\t\t\t\tthis.setButtonDisableStatus(false);\n\n\t\t\t\t// Check if the call was really successful\n\t\t\t\tif (response.success) {\n\t\t\t\t\t// Trigger custom event\n\t\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/submitted`, {\n\t\t\t\t\t\tsuccess: true\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.afterValidSubmission(response);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Trigger custom event\n\t\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/submitted`, {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\tmessage: isDefined(response.message) ? response.message : UncannyToolkit.i18n.error.generic\n\t\t\t\t\t});\n\n\t\t\t\t\t// Check if there is a message\n\t\t\t\t\tif (isDefined(response.message)) {\n\t\t\t\t\t\t// Show the error\n\t\t\t\t\t\tthis.setError(response.message);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// Set a generic error message\n\t\t\t\t\t\tthis.setError(UncannyToolkit.i18n.error.generic);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Reset reCAPTCHA\n\t\t\t\t\tthis.resetReCAPTCHA();\n\t\t\t\t}\n\t\t\t}, (response) => {\n\t\t\t\t// Check if we have the error code and the code is 302\n\t\t\t\tif (isDefined(response.code) && response.code == 302) {\n\t\t\t\t\t// Check if \"Prevent Concurrent Login\" is active\n\t\t\t\t\tif (UncannyToolkit.integrity.shouldPreventConcurrentLogin) {\n\t\t\t\t\t\t// Set custom LD message\n\t\t\t\t\t\tresponse.message = UncannyToolkit.i18n.preventConcurrentLogin;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Check if this is a 2FA redirect (in error callback because success=false)\n\t\t\t\tif (window.UltimateLogin2FARedirect && window.UltimateLogin2FARedirect.handleResponse(response)) {\n\t\t\t\t\t// Redirect was handled, stop processing\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/submitted`, {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\tmessage: isDefined(response.message) ? response.message : UncannyToolkit.i18n.error.generic\n\t\t\t\t});\n\n\t\t\t\t// Check if there is a message\n\t\t\t\tif (isDefined(response.message)) {\n\t\t\t\t\t// Show the error\n\t\t\t\t\tthis.setError(response.message);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Set a generic error message\n\t\t\t\t\tthis.setError(UncannyToolkit.i18n.error.generic);\n\t\t\t\t}\n\n\t\t\t\t// Reset reCAPTCHA\n\t\t\t\tthis.resetReCAPTCHA();\n\n\t\t\t\t// Remove the loading animation\n\t\t\t\tthis.setLoadingStatus(false);\n\n\t\t\t\t// Enable the submit button\n\t\t\t\tthis.setButtonDisableStatus(false);\n\t\t\t}, {\n\t\t\t\tincludeNonce: false\n\t\t\t});\n\t\t}\n\n\t\t// If it's not using the LD reCAPTCHA and AJAX is enabled.\n\t\tif (!this.isUsingLearnDashReCaptcha() && UncannyToolkit.frontendLogin.hasAjaxEnabled) {\n\t\t\t// Prevent the form submission\n\t\t\tevent.preventDefault();\n\t\t\t// Handle AJAX\n\t\t\thandleAJAX();\n\t\t} else {\n\t\t\t// If it's using LD's reCAPTCHA:\n\n\t\t\t// Check if it's using AJAX\n\t\t\tif (UncannyToolkit.frontendLogin.hasAjaxEnabled) {\n\t\t\t\t// Prevent the form submission\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t// Handle reCAPTCHA\n\t\t\t\t// The callback will be invoked once the reCAPTCHA is validated\n\t\t\t\tthis.handleLearnDashReCaptcha(() => {\n\t\t\t\t\t// Handle AJAX\n\t\t\t\t\thandleAJAX();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Check if it has the required data already\n\t\t\t\t// We're doing this because for non-AJAX forms this is a recursive function\n\t\t\t\t// Once validated, it will invoke itself. We have to prevent an infinito loop,\n\t\t\t\t// so after the data is validated, we add a hidden field to the form.\n\t\t\t\t// If the field exists, it means this function was already executed, and that we\n\t\t\t\t// don't have to prevent the submission again. (Only for non-AJAX forms)\n\t\t\t\tif (!this.hasLearnDashReCaptchField()) {\n\t\t\t\t\t// Prevent the form submission even if it's not using AJAX\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t// Handle reCAPTCHA\n\t\t\t\t\t// The callback will be invoked once the reCAPTCHA is validated\n\t\t\t\t\tthis.handleLearnDashReCaptcha(() => {\n\t\t\t\t\t\t// Submit the form again\n\t\t\t\t\t\tthis.$elements.mainForm.submit();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tafterValidSubmission(response) { }\n\n\tsetLoadingStatus(setAsLoading = true) {\n\t\t// Check if we have to add a loading animation to the submit button\n\t\tif (UncannyToolkit.frontendLogin.ui.showAnimationOnSubmit) {\n\t\t\t// Check if we have to enable the loading status\n\t\t\tif (setAsLoading) {\n\t\t\t\t// Add the loading animation\n\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.loading);\n\t\t\t\tthis.$elements.submitButton.container.classList.add(this.cssClasses.btnLoading);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/set-loading`, {\n\t\t\t\t\tisLoading: true\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Remove the loading status\n\t\t\t\tthis.$elements.container.classList.remove(this.cssClasses.loading);\n\t\t\t\tthis.$elements.submitButton.container.classList.remove(this.cssClasses.btnLoading);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/set-loading`, {\n\t\t\t\t\tisLoading: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tsetButtonDisableStatus(setAsDisabled = true) {\n\t\t// Check if we have to disable the submit button\n\t\tif (UncannyToolkit.frontendLogin.ui.buttonDisabledOnSubmit) {\n\t\t\t// Check if we have to set it as disabled\n\t\t\tif (setAsDisabled) {\n\t\t\t\t// Disable the submit button\n\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.disabled);\n\t\t\t\tthis.$elements.submitButton.container.classList.add(this.cssClasses.btnDisabled);\n\t\t\t\tthis.$elements.submitButton.button.setAttribute('disabled', true);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/disable-button`, {\n\t\t\t\t\tdisable: true\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Disable the submit button\n\t\t\t\tthis.$elements.container.classList.remove(this.cssClasses.disabled);\n\t\t\t\tthis.$elements.submitButton.container.classList.remove(this.cssClasses.btnDisabled);\n\t\t\t\tthis.$elements.submitButton.button.removeAttribute('disabled');\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/disable-button`, {\n\t\t\t\t\tdisable: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tsetError(error = false) {\n\t\t// Check if the error is defined\n\t\tif (!isEmpty(error)) {\n\t\t\t// Set the class to show the notice\n\t\t\tthis.$elements.errorNotice.container.classList.add(this.cssClasses.noticeHasError);\n\n\t\t\t// Set the error message\n\t\t\tthis.$elements.errorNotice.textNode.innerHTML = error;\n\t\t}\n\t\telse {\n\t\t\t// Set the class to hide the notice\n\t\t\tthis.$elements.errorNotice.container.classList.remove(this.cssClasses.noticeHasError);\n\n\t\t\t// Set the error message\n\t\t\tthis.$elements.errorNotice.textNode.textContent = '';\n\n\t\t\t// Remove a CSS class for the reCAPTCHA error\n\t\t\tthis.$elements.container.classList.remove(this.cssClasses.reCAPTCHAerror);\n\t\t}\n\t}\n\n\thandleReCaptchaChanges() {\n\t\t// Add global method to handle what happened when\n\t\t// the reCAPTCHA is checked\n\t\tUncannyToolkit.frontendLogin.reCaptcha = {\n\t\t\tcorrect: (response) => {\n\t\t\t\t// Reset errors\n\t\t\t\tthis.setError(false);\n\t\t\t}\n\t\t}\n\t}\n\n\thasReCAPTCHA() {\n\t\treturn isDefined(this.$elements.formFields.reCAPTCHA);\n\t}\n\n\tgetReCAPTCHAResponse() {\n\t\t// Get the reCAPTCHA ID\n\t\tconst id = this.$elements.formFields.reCAPTCHA.getAttribute('data-id');\n\n\t\t// Get the response\n\t\treturn grecaptcha.getResponse(id);\n\t}\n\n\tresetReCAPTCHA() {\n\t\ttry {\n\t\t\t// Get the reCAPTCHA ID\n\t\t\tconst id = this.$elements.formFields.reCAPTCHA.getAttribute('data-id');\n\n\t\t\t// Reset the reCAPTCHA\n\t\t\tgrecaptcha.reset(id);\n\t\t} catch (e) { }\n\t}\n\n\tisOnModal() {\n\t\treturn isDefined(UncannyToolkit.modals['ult-login']);\n\t}\n\n\tisCaptchaChecked() {\n\t\treturn !isEmpty(this.getReCAPTCHAResponse());\n\t}\n\n\tshouldInvokeMethods() {\n\t\treturn isDefined(this.$elements.container);\n\t}\n\n\thandleLearnDashReCaptcha(callback) {\n\t\t// Check if it's using LD's reCAPTCHA\n\t\tif (this.isUsingLearnDashReCaptcha()) {\n\t\t\t// Invoke the challenge\n\t\t\tgrecaptcha.ready(() => {\n\t\t\t\tgrecaptcha.execute(\n\t\t\t\t\tLD_TP.site_key,\n\t\t\t\t\t{ action: 'submit' }\n\t\t\t\t).then((token) => {\n\t\t\t\t\t// Add hidden field to the form\n\t\t\t\t\tif (isDefined(this.$elements.mainForm)) {\n\t\t\t\t\t\t// Add hidden field with token\n\t\t\t\t\t\tthis.$elements.mainForm.insertAdjacentHTML('afterbegin', `<input type=\"hidden\" id=\"ult-form-ld-recaptcha\" name=\"token\" value=\"${token}\">`);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Invoke callback\n\t\t\t\t\tif (isDefined(callback)) {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\t// Just invoke the callback\n\t\t\tif (isDefined(callback)) {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\t}\n\n\tisUsingLearnDashReCaptcha() {\n\t\t// Check if grecaptcha is defined\n\t\t// Check if LD_TP is defined\n\t\t// Check if LD_TP.site_key is defined\n\t\treturn isDefined(window.grecaptcha) && isDefined(window.LD_TP) && isDefined(LD_TP.site_key);\n\t}\n\n\thasLearnDashReCaptchField() {\n\t\tlet hasField = false;\n\n\t\t// Check if the element exists\n\t\tif (isDefined(this.$elements.mainForm)) {\n\t\t\t// Check if the field exists\n\t\t\thasField = isDefined(this.$elements.mainForm.querySelector('input[name=\"token\"]'));\n\t\t}\n\n\t\treturn hasField;\n\t}\n}\nexport class Login extends FrontendLogin {\n\tconstructor() {\n\t\tsuper();\n\n\t\t// Set visibility of content of password field\n\t\tnew PasswordField(this.$elements.formFields.password);\n\t}\n\n\tgetElements() {\n\t\t// Get the main elements\n\t\tthis.$elements = {\n\t\t\tcontainer: document.getElementById('ult-login'),\n\t\t\tmainForm: document.getElementById('ult-login-form'),\n\t\t\tsubmitButton: {\n\t\t\t\tcontainer: document.getElementsByClassName('login-submit')[0],\n\t\t\t\tbutton: document.getElementById('ult-login-submit')\n\t\t\t},\n\t\t\terrorNotice: {\n\t\t\t\tcontainer: document.querySelector('#ult-login .ult-form__validation'),\n\t\t\t\ttextNode: document.querySelector('#ult-login .ult-notice-text'),\n\t\t\t},\n\t\t\tformFields: {\n\t\t\t\temail: document.getElementById('ult-login-email'),\n\t\t\t\tpassword: document.getElementById('ult-login-password'),\n\t\t\t\tredirectTo: document.querySelector('#ult-login .login-submit input[name=\"redirect_to\"]'),\n\t\t\t\treCAPTCHA: document.querySelector('#ult-login .ult-form-recaptcha'),\n\t\t\t\trememberMe: document.getElementById('ult-login-remember'),\n\t\t\t}\n\t\t}\n\t}\n\n\tget id() {\n\t\treturn 'login';\n\t}\n\n\t// Define the AJAX action ID\n\tget ajaxAction() {\n\t\treturn 'ult-login';\n\t}\n\n\tget cssClasses() {\n\t\treturn {\n\t\t\treCAPTCHAerror: 'ult-login--recaptcha-error',\n\t\t\tloading: 'ult-login--loading',\n\t\t\tdisabled: 'ult-login--disabled',\n\t\t\tbtnLoading: 'ult-form__submit-btn--loading',\n\t\t\tbtnDisabled: 'ult-form__submit-btn--disabled',\n\t\t\tnoticeHasError: 'ult-form__validation--has-error',\n\t\t};\n\t}\n\n\tget formData() {\n\n\t\t// The form data.\n\t\tconst formDataDefault = {\n\t\t\temail: this.$elements.formFields.email.value,\n\t\t\tpassword: this.$elements.formFields.password.value,\n\t\t\tredirectTo: this.$elements.formFields.redirectTo.value,\n\t\t}\n\n\t\t// Merge the default data with modules specific.\n\t\tconst formData = Object.assign({}, formDataDefault, UOToolkitFrontEndLoginFormData);\n\n\t\t// Check if it has the \"Remember me\" checkbox\n\t\tif (isDefined(this.$elements.formFields.rememberMe)) {\n\t\t\tformData.rememberMe = this.$elements.formFields.rememberMe.checked;\n\t\t}\n\n\t\t// Check if it has a reCAPTCHA\n\t\tif (this.hasReCAPTCHA()) {\n\t\t\tformData['g-recaptcha-response'] = this.getReCAPTCHAResponse();\n\t\t}\n\n\t\t// Check if it has a LearnDash reCAPTCHA\n\t\tif (isDefined(this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha'))) {\n\t\t\tformData.token = this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha').value;\n\t\t}\n\n\t\t// Check if it has a uo_is_login_modal hidden field to detect login modal request.\n\t\tif (isDefined(this.$elements.mainForm.querySelector('input[name=\"uo_is_login_modal\"]'))) {\n\t\t\tformData.uo_is_login_modal = this.$elements.mainForm.querySelector('input[name=\"uo_is_login_modal\"]').value;\n\t\t}\n\n\t\treturn formData;\n\t}\n\n\tafterValidSubmission(response) {\n\n\t\t// Show the loading animation again, we're going \n\t\t// to redirect them to another page and it might\n\t\t// take some seconds\n\n\t\t// Add the loading animation\n\t\tthis.setLoadingStatus(true);\n\n\t\t// Disable the submit button\n\t\tthis.setButtonDisableStatus(true);\n\n\t\t// Check if this requires a 2FA redirect (new unified approach)\n\t\tif (window.UltimateLogin2FARedirect && window.UltimateLogin2FARedirect.handleResponse(response)) {\n\t\t\t// Redirect was handled, stop processing\n\t\t\treturn;\n\t\t}\n\n\t\t// Legacy 2FA handling (fallback - should not be needed with new approach)\n\t\tif (response?.twoFactor?._meta?.enabled) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if we have to redirect to a URL\n\t\tif (!isEmpty(response.redirectTo)) {\n\t\t\twindow.location.href = response.redirectTo;\n\t\t}\n\t\t// Otherwise, just reload the page\n\t\telse {\n\t\t\twindow.location.reload();\n\t\t}\n\n\t}\n\n}\n\nexport class ForgotPassword extends FrontendLogin {\n\tgetElements() {\n\t\t// Get the main elements\n\t\tthis.$elements = {\n\t\t\tcontainer: document.getElementById('ult-forgot-password'),\n\t\t\tboxContent: document.querySelector('#ult-forgot-password .ult-form__content'),\n\t\t\tmainForm: document.getElementById('ult-forgot-password-form'),\n\t\t\tsubmitButton: {\n\t\t\t\tcontainer: document.querySelector('.ult-form__row--submit'),\n\t\t\t\tbutton: document.getElementById('ult-forgot-password-submit-btn')\n\t\t\t},\n\t\t\terrorNotice: {\n\t\t\t\tcontainer: document.querySelector('#ult-forgot-password .ult-form__validation'),\n\t\t\t\ttextNode: document.querySelector('#ult-forgot-password .ult-notice-text'),\n\t\t\t},\n\t\t\tformFields: {\n\t\t\t\temail: document.getElementById('ult-forgot-email'),\n\t\t\t\treCAPTCHA: document.querySelector('#ult-forgot-password .ult-form-recaptcha'),\n\t\t\t}\n\t\t}\n\t}\n\n\tget id() {\n\t\treturn 'forgot-password';\n\t}\n\n\t// Define the AJAX action ID\n\tget ajaxAction() {\n\t\treturn 'ult-forgot-password';\n\t}\n\n\tget cssClasses() {\n\t\treturn {\n\t\t\treCAPTCHAerror: 'ult-forgot-password--recaptcha-error',\n\t\t\tloading: 'ult-forgot-password--loading',\n\t\t\tdisabled: 'ult-forgot-password--disabled',\n\t\t\tbtnLoading: 'ult-form__submit-btn--loading',\n\t\t\tbtnDisabled: 'ult-form__submit-btn--disabled',\n\t\t\tnoticeHasError: 'ult-form__validation--has-error'\n\t\t};\n\t}\n\n\tget formData() {\n\t\t// Get the form data\n\t\tconst formDataDefault = {\n\t\t\temail: this.$elements.formFields.email.value\n\t\t}\n\n\t\tconst formData = Object.assign({}, formDataDefault, UOToolkitFrontEndLoginFormData);\n\n\t\t// Check if it has a reCAPTCHA\n\t\tif (this.hasReCAPTCHA()) {\n\t\t\tformData['g-recaptcha-response'] = this.getReCAPTCHAResponse();\n\t\t}\n\n\t\t// Check if it has a LearnDash reCAPTCHA\n\t\tif (isDefined(this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha'))) {\n\t\t\tformData.token = this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha').value;\n\t\t}\n\n\t\treturn formData;\n\t}\n\n\tafterValidSubmission(response) {\n\t\t// Show a confirmation message\n\t\tthis.$elements.boxContent.innerHTML = response.message;\n\t}\n}\n\nexport class ResetPassword extends FrontendLogin {\n\tgetElements() {\n\t\t// Get the main elements\n\t\tthis.$elements = {\n\t\t\tcontainer: document.getElementById('ult-reset-password'),\n\t\t\tboxContent: document.querySelector('#ult-reset-password .ult-form__content'),\n\t\t\tmainForm: document.getElementById('ult-reset-password-form'),\n\t\t\tsubmitButton: {\n\t\t\t\tcontainer: document.querySelector('.ult-form__row--submit'),\n\t\t\t\tbutton: document.getElementById('ult-reset-password-submit-btn')\n\t\t\t},\n\t\t\terrorNotice: {\n\t\t\t\tcontainer: document.querySelector('#ult-reset-password .ult-form__validation'),\n\t\t\t\ttextNode: document.querySelector('#ult-reset-password .ult-notice-text'),\n\t\t\t},\n\t\t\tformFields: {\n\t\t\t\tpassword: document.getElementById('ult-reset-new-password'),\n\t\t\t\tpasswordRepeat: document.getElementById('ult-reset-confirm-password'),\n\t\t\t\treCAPTCHA: document.querySelector('#ult-reset-password .ult-form-recaptcha'),\n\t\t\t}\n\t\t}\n\t}\n\n\tget id() {\n\t\treturn 'reset-password';\n\t}\n\n\t// Define the AJAX action ID\n\tget ajaxAction() {\n\t\treturn 'ult-reset-password';\n\t}\n\n\tget cssClasses() {\n\t\treturn {\n\t\t\treCAPTCHAerror: 'ult-reset-password--recaptcha-error',\n\t\t\tloading: 'ult-reset-password--loading',\n\t\t\tdisabled: 'ult-reset-password--disabled',\n\t\t\tbtnLoading: 'ult-form__submit-btn--loading',\n\t\t\tbtnDisabled: 'ult-form__submit-btn--disabled',\n\t\t\tnoticeHasError: 'ult-form__validation--has-error'\n\t\t};\n\t}\n\n\tget formData() {\n\t\t// Get the form data\n\t\tconst formData = {\n\t\t\tpassword: this.$elements.formFields.password.value,\n\t\t\tpasswordRepeat: this.$elements.formFields.passwordRepeat.value,\n\t\t}\n\n\t\t// Check if it has a reCAPTCHA\n\t\tif (this.hasReCAPTCHA()) {\n\t\t\tformData['g-recaptcha-response'] = this.getReCAPTCHAResponse();\n\t\t}\n\n\t\t// Check if it has a LearnDash reCAPTCHA\n\t\tif (isDefined(this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha'))) {\n\t\t\tformData.token = this.$elements.mainForm.querySelector('#ult-form-ld-recaptcha').value;\n\t\t}\n\n\t\treturn formData;\n\t}\n\n\tafterValidSubmission(response) {\n\t\t// Show a confirmation message\n\t\tthis.$elements.boxContent.innerHTML = response.message;\n\t}\n}\n\n/**\n * This class handles the login functionality when it's inside a dialog\n */\nexport class FrontendLogin_Modal {\n\tconstructor() {\n\t\t// Check if we should invoke the callbacks\n\t\tif (this.shouldInvokeMethods()) {\n\t\t\t// Get elements\n\t\t\tthis.getElements();\n\n\t\t\t// Handle clicks to the buttons to show the sections\n\t\t\tthis.handleContainerVisiblity();\n\t\t}\n\t\telse {\n\t\t\t// Check if the current page is the Login page\n\t\t\t// That would mean that the modal is not defined here\n\t\t\t// We want to reload the page when they click on the \"Login\" link\n\t\t\tif (\n\t\t\t\tisDefined(UncannyToolkit.frontendLogin) &&\n\t\t\t\tisDefined(UncannyToolkit.frontendLogin.currentPageIsLoginPage) &&\n\t\t\t\tUncannyToolkit.frontendLogin.currentPageIsLoginPage\n\t\t\t) {\n\t\t\t\tthis.handleModalInLoginPage();\n\t\t\t}\n\t\t}\n\t}\n\n\tgetElements() {\n\t\tthis.$elements = {\n\t\t\tcontainer: document.getElementById('ult-login-modal'),\n\t\t\tloginShowButton: document.getElementById('ult-form-footer-login'),\n\t\t\tforgotPasswordShowButton: document.getElementById('ult-form-footer-forgot-password'),\n\t\t}\n\t}\n\n\thandleContainerVisiblity() {\n\t\tif (isDefined(this.$elements.forgotPasswordShowButton)) {\n\t\t\t// Listen clicks to the button to show the Forgot Password section\n\t\t\tthis.$elements.forgotPasswordShowButton.addEventListener('click', (event) => {\n\t\t\t\t// Prevent the event, we don't want to send them to another page\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t// Show the Forgot Password form\n\t\t\t\tthis.showSection('forgot-password');\n\t\t\t});\n\t\t}\n\n\t\tif (isDefined(this.$elements.loginShowButton)) {\n\t\t\t// Listen clicks to the button to show the Log in section\n\t\t\tthis.$elements.loginShowButton.addEventListener('click', (event) => {\n\t\t\t\t// Prevent the event, we don't want to send them to another page\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t// Show the Forgot Password form\n\t\t\t\tthis.showSection('login');\n\t\t\t});\n\t\t}\n\t}\n\n\tshowSection(section = 'login') {\n\t\t// Remove both classes. We'll add the correct one later\n\t\tthis.$elements.container.classList.remove('ult-login-modal--login', 'ult-login-modal--forgot-password');\n\n\t\t// Show and hide sections\n\t\tif (section == 'login') {\n\t\t\tthis.$elements.container.classList.add('ult-login-modal--login');\n\t\t}\n\t\telse if (section == 'forgot-password') {\n\t\t\tthis.$elements.container.classList.add('ult-login-modal--forgot-password');\n\t\t}\n\t}\n\n\tshouldInvokeMethods() {\n\t\treturn (\n\t\t\tisDefined(UncannyToolkit.frontendLogin) &&\n\t\t\tisDefined(UncannyToolkit.frontendLogin.currentPageIsLoginPage) &&\n\t\t\t!UncannyToolkit.frontendLogin.currentPageIsLoginPage &&\n\t\t\tisDefined(UncannyToolkit.modals['ult-login'])\n\t\t);\n\t}\n\n\thandleModalInLoginPage() {\n\t\tevents.on('click', `[href*=\"ult-modal-open----ult-login\"]`, (event) => {\n\t\t\t// Prevent default\n\t\t\tevent.preventDefault();\n\n\t\t\t// Reload the page\n\t\t\tlocation.reload();\n\t\t});\n\t}\n}\n\nexport class Login2ndFactor {\n\tid = 'login-2nd-factor';\n\n\tconstructor() {\n\t\t// Check if the form exists\n\t\tif (this.$form) {\n\t\t\t// Listen submission\n\t\t\tthis.listenSubmission();\n\t\t}\n\t}\n\n\t/**\n\t * Listens the submission of the form\n\t */\n\tlistenSubmission() {\n\t\tthis.$form.addEventListener('submit', (event) => {\n\t\t\t// Add loading animation to the button\n\t\t\tthis.setLoadingStatus(true);\n\n\t\t\t// Disable button\n\t\t\tthis.setButtonDisableStatus(true);\n\t\t});\n\t}\n\n\t/**\n\t * Sets the loading status\n\t * \n\t * @param {Boolean} setAsLoading TRUE if it should show the loading animation\n\t */\n\tsetLoadingStatus(setAsLoading = true) {\n\t\t// Check if we have to add a loading animation to the submit button\n\t\tif (UncannyToolkit.frontendLogin.ui.showAnimationOnSubmit) {\n\t\t\t// Check if we have to enable the loading status\n\t\t\tif (setAsLoading) {\n\t\t\t\t// Add the loading animation\n\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.loading);\n\t\t\t\tthis.$elements.submitButton.container.classList.add(this.cssClasses.btnLoading);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/set-loading`, {\n\t\t\t\t\tisLoading: true\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Remove the loading status\n\t\t\t\tthis.$elements.container.classList.remove(this.cssClasses.loading);\n\t\t\t\tthis.$elements.submitButton.container.classList.remove(this.cssClasses.btnLoading);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/set-loading`, {\n\t\t\t\t\tisLoading: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sets the disabled status\n\t * \n\t * @param {Boolean} setAsDisabled TRUE if it should disable the form\n\t */\n\tsetButtonDisableStatus(setAsDisabled = true) {\n\t\t// Check if we have to disable the submit button\n\t\tif (UncannyToolkit.frontendLogin.ui.buttonDisabledOnSubmit) {\n\t\t\t// Check if we have to set it as disabled\n\t\t\tif (setAsDisabled) {\n\t\t\t\t// Disable the submit button\n\t\t\t\tthis.$elements.container.classList.add(this.cssClasses.disabled);\n\t\t\t\tthis.$elements.submitButton.container.classList.add(this.cssClasses.btnDisabled);\n\t\t\t\tthis.$elements.submitButton.button.setAttribute('disabled', true);\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/disable-button`, {\n\t\t\t\t\tdisable: true\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Disable the submit button\n\t\t\t\tthis.$elements.container.classList.remove(this.cssClasses.disabled);\n\t\t\t\tthis.$elements.submitButton.container.classList.remove(this.cssClasses.btnDisabled);\n\t\t\t\tthis.$elements.submitButton.button.removeAttribute('disabled');\n\n\t\t\t\t// Trigger custom event\n\t\t\t\ttriggerEvent(`uncanny-toolkit/frontend-login/${this.id}/disable-button`, {\n\t\t\t\t\tdisable: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns the CSS classes used in the elements of this form\n\t * \n\t * @return {Object} CSS classes\n\t */\n\tget cssClasses() {\n\t\treturn {\n\t\t\tloading: 'ult-login--loading',\n\t\t\tdisabled: 'ult-login--disabled',\n\t\t\tbtnLoading: 'ult-form__submit-btn--loading',\n\t\t\tbtnDisabled: 'ult-form__submit-btn--disabled',\n\t\t};\n\t}\n\n\t/**\n\t * Returns the main elements of the form\n\t * \n\t * @return {Object} Object of Nodes\n\t */\n\tget $elements() {\n\t\treturn {\n\t\t\tcontainer: document.getElementById('ult-login'),\n\t\t\tsubmitButton: {\n\t\t\t\tcontainer: this.$form.querySelector('.submit'),\n\t\t\t\tbutton: this.$form.querySelector('.submit input[type=\"submit\"]')\n\t\t\t},\n\t\t}\n\t}\n\n\t/**\n\t * Returns the main form\n\t * \n\t * @return {Node} The form\n\t */\n\tget $form() {\n\t\treturn document.getElementById('ult-2fa-validation-form--templated');\n\t}\n}","import {\n\tisDefined\n} from './_utilities';\n\n/**\n * Render reCAPTCHAs\n */\n\nclass reCAPTCHAs {\n\tconstructor(){\n\t\t// Get elements\n\t\tthis.whenReady(() => {\n\t\t\t// Render the reCAPTCHAs\n\t\t\tthis.renderReCaptchas();\n\t\t});\n\t}\n\n\twhenReady( callback ){\n\t\t// Define a function that will be invoked once Google reCAPTCHA\n\t\t// is ready to use\n\t\twindow.UncannyToolkit.reCaptchaInit = () => {\n\t\t\t// Invoke the callback\n\t\t\tcallback();\n\t\t}\n\t}\n\n\trenderReCaptchas(){\n\t\t// Get containers\n\t\tconst $reCAPTCHAs = document.querySelectorAll( '.ult-form-recaptcha' );\n\n\t\t// Iterate the elements\n\t\t[].forEach.call( $reCAPTCHAs, ( $reCAPTCHA ) => {\n\t\t\t// Render the reCAPTCHA\n\t\t\tconst id = window.grecaptcha.render( $reCAPTCHA, {\n\t\t\t\tsitekey:  $reCAPTCHA.getAttribute( 'data-sitekey' ),\n\t\t\t\tcallback: $reCAPTCHA.getAttribute( 'data-callback' )\n\t\t\t});\n\n\t\t\t// Add the ID to the element so we can get the correct\n\t\t\t// validation token later\n\t\t\t$reCAPTCHA.setAttribute( 'data-id', id );\n\t\t});\n\t}\n}\n\nexport default reCAPTCHAs;","const events = require( 'eventslibjs' );\n\nimport {\n\tfade,\n\tdelegateEvent,\n\tisEmpty,\n\tisDefined\n} from './_utilities';\n\nclass Modals {\n\tconstructor(){\n\t\t// Create an array to save the IDs of all the modals\n\t\t// on this page\n\t\tthis.allModals = [];\n\n\t\t// Create a property in the main global object\n\t\t// to save the modals\n\t\tUncannyToolkit.modals = {};\n\n\t\t// Get elements\n\t\tthis.getElements();\n\n\t\t// Initialize modals\n\t\tthis.createModals();\n\t}\n\n\tgetElements(){\n\t\tthis.$elements = {\n\t\t\tmodals: document.querySelectorAll( '.ult-modal' )\n\t\t}\n\t}\n\n\tcreateModals(){\n\t\t// Itearate the modals (if any)\n\t\t[].forEach.call( this.$elements.modals, ( $modal ) => {\n\t\t\t// Get the modal ID\n\t\t\tconst modalID = isDefined( $modal.getAttribute( 'data-id' ) ) ? $modal.getAttribute( 'data-id' ) : '';\n\n\t\t\t// Check if there isn't already a modal with that ID\n\t\t\tif ( ! this.allModals.includes( modalID ) ){\n\t\t\t\t// Then create the modal\n\t\t\t\tlet modal = new Modal( $modal );\n\n\t\t\t\t// And save the ID\n\t\t\t\tthis.allModals.push( modalID );\n\n\t\t\t\t// Save the modal in the main global variable\n\t\t\t\tUncannyToolkit.modals[ modalID ] = modal;\n\t\t\t}\n\t\t});\n\t}\n}\n\nclass Modal {\n\tconstructor( $modalContent ){\n\t\t// Get the modal data\n\t\tthis.getModalData( $modalContent );\n\n\t\t// Render the modal\n\t\tthis.renderModal( $modalContent );\n\n\t\t// Listen clicks to containers that are trying to open the modal\n\t\tthis.handleModalOpen();\n\n\t\t// Listen clicks outside the modal box\n\t\tthis.handleClickOutsideTheModal();\n\t}\n\n\tgetModalData( $modalContent ){\n\t\t// Get the main modal data like ID, title and the parameter\n\t\t// that defines whether it should have the \"Discard\" button\n\t\tthis.modalData = {\n\t\t\tid:         isDefined( $modalContent.getAttribute( 'data-id' ) ) ? $modalContent.getAttribute( 'data-id' ) : '',\n\t\t\ttitle:      isDefined( $modalContent.getAttribute( 'data-title' ) ) ? $modalContent.getAttribute( 'data-title' ) : '',\n\t\t\tbtnDismiss: isDefined( $modalContent.getAttribute( 'data-btn-dismiss' ) ) ? !! parseInt( $modalContent.getAttribute( 'data-btn-dismiss' ) ) : true,\n\t\t\tdimBackground: isDefined( $modalContent.getAttribute( 'data-dim-background' ) ) ? !! parseInt( $modalContent.getAttribute( 'data-dim-background' ) ) : true,\n\t\t}\n\t}\n\n\trenderModal( $modalContent ){\n\t\t// Create the modal\n\t\tconst $modal = document.createElement( 'div' );\n\n\t\t// Set the element ID\n\t\t$modal.id = `ult-modal-container-${ this.modalData.id }`;\n\n\t\t// Add class to the main container\n\t\t$modal.classList.add( 'ult-modal-container' );\n\n\t\t// Set the data-id attribute\n\t\t$modal.setAttribute( 'data-id', this.modalData.id );\n\n\t\t// Set the children\n\t\t$modal.innerHTML = `\n\t\t\t<div class=\"ult-modal__inside\">\n\t\t\t\t<div class=\"ult-modal-box\">\n\t\t\t\t\t${ ! isEmpty( this.modalData.title ) ? `\n\t\t\t\t\t\t<div class=\"ult-modal-box-header\">\n\t\t\t\t\t\t\t<h2>${ this.modalData.title }</h2>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t` : '' }\n\n\t\t\t\t\t<div class=\"ult-modal-box-content\"></div>\n\n\t\t\t\t\t${ this.modalData.btnDismiss ? `\n\t\t\t\t\t\t<div class=\"ult-modal-box-footer\">\n\t\t\t\t\t\t\t<button class=\"ult-modal-box-footer__dismiss\">\n\t\t\t\t\t\t\t\t${ UncannyToolkit.i18n.dismiss }\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t` : '' }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\t// Add the modal content\n\t\t$modal.querySelector( '.ult-modal-box-content' ).appendChild( $modalContent );\n\n\t\t// Add the modal to the end of the document\n\t\tdocument.body.appendChild( $modal );\n\n\t\t// Save the main elements\n\t\tthis.$elements = {\n\t\t\tcontainer: $modal,\n\t\t\tbox: $modal.querySelector( '.ult-modal-box' ),\n\t\t\tcontent: $modal.querySelector( '.ult-modal-box-content .ult-modal' )\n\t\t}\n\n\t\t// Check if it has the dismiss button\n\t\tif ( this.modalData.btnDismiss ){\n\t\t\t// Get the dismiss button\n\t\t\tthis.$elements.dismissBtn = $modal.querySelector( '.ult-modal-box-footer__dismiss' );\n\n\t\t\t// Add the event listener\n\t\t\tthis.handleDismissButton();\n\t\t}\n\t}\n\n\thandleModalOpen(){\n\t\t// Listen clicks to the document, but invoke the callback only if the\n\t\t// clicked element matches one of the following selectors:\n\t\t// 1. .ult-modal-open[data-id=\"${ this.modalData.id }\"]\n\t\t// 2. [class*=\"ult-modal-open----${ this.modalData.id }\"]\n\t\t// 3. [href*=\"ult-modal-open----${ this.modalData.id }\"]\n\t\tevents.on( 'click', `.ult-modal-open[data-id=\"${ this.modalData.id }\"], [class*=\"ult-modal-open----${ this.modalData.id }\"], [href*=\"ult-modal-open----${ this.modalData.id }\"]`, ( event ) => {\n\t\t\t// Prevent default\n\t\t\tevent.preventDefault();\n\n\t\t\t// Show the modal\n\t\t\tthis.showModal(); \n\t\t});\n\t}\n\n\thandleDismissButton(){\n\t\t// Listen clicks to the dismiss button\n\t\tthis.$elements.dismissBtn.addEventListener( 'click', () => {\n\t\t\t// Hide the modal\n\t\t\tthis.hideModal();\n\t\t});\n\t}\n\n\thandleClickOutsideTheModal(){\n\t\t// Listen clicks to the while modal container\n\t\tthis.$elements.container.addEventListener( 'mouseup', ( event ) => {\n            // Set the targetted container\n            const $container = this.$elements.box;\n\n            if ( ( $container !== event.target ) && ! $container.contains( event.target ) ){\n                // Hide modal\n                this.hideModal();\n            }\n        });\n\t}\n\n\tsetLoading( isLoading = true ){\n\t\t// Check if we have to set the loading class\n\t\tif ( isLoading ){\n\t\t\tthis.$elements.container.classList.add( 'ult-modal-container--loading' );\n\t\t}\n\t\telse {\n\t\t\t// Remove the loading class\n\t\t\tthis.$elements.container.classList.remove( 'ult-modal-container--loading' );\n\t\t}\n\t}\n\n\tsetContent( HTMLcontent = '' ){\n\t\t// Set the content\n\t\tthis.$elements.content.innerHTML = HTMLcontent;\n\t}\n\n\tshowModal(){\n\t\t// Show the modal\n\t\tfade( 'in', this.$elements.container );\n\t\tthis.$elements.container.classList.add( 'ult-modal-container--open' );\n\n\t\t// Add class to the body element, so the user can use it\n\t\t// to change other stuff\n\t\tdocument.body.classList.add( 'ult-modals--open' );\n\n\t\t// Check if we have to dim the background\n\t\tif ( this.modalData.dimBackground ){\n\t\t\t// Add class to dim the background\n\t\t\tdocument.body.classList.add( 'ult-modals--dim-background' );\n\t\t}\n\t}\n\n\thideModal(){\n\t\t// Hide the modal\n\t\tfade( 'out', this.$elements.container, () => {\n\t\t\t// Hide the modal\n\t\t\tthis.$elements.container.classList.remove( 'ult-modal-container--open' );\n\n\t\t\t// Remove class from the body element\n\t\t\tdocument.body.classList.remove( 'ult-modals--open' );\n\n\t\t\t// Remove the class to dim the background\n\t\t\tdocument.body.classList.remove( 'ult-modals--dim-background' );\n\t\t});\n\t}\n}\n\nexport default Modals;","// Core login system modules\nimport {\n    Login,\n    ForgotPassword,\n    ResetPassword,\n    Login2ndFactor,\n    FrontendLogin_Modal\n} from './js/frontend-login';\n\n// Two-factor authentication redirect handler\nimport UltimateLogin2FARedirect from './js/wp-2fa-redirect';\n\n// Global utility modules\nimport reCAPTCHAs from './js/recaptcha';\nimport Modals from './js/dialog';\n\n// Import main stylesheet\nimport './scss/main.scss';\n\n// Do on DOM ready\ndocument.addEventListener('DOMContentLoaded', () => {\n    // reCAPTCHA (global module)\n    new reCAPTCHAs();\n\n    // Modals (global module)\n    new Modals();\n\n    // Frontend Login\n    new Login();\n    new ForgotPassword();\n    new ResetPassword();\n    new Login2ndFactor();\n\n    // Make 2FA redirect handler globally available\n    window.UltimateLogin2FARedirect = UltimateLogin2FARedirect;\n\n    // Exceptions for the login form when\n    // it's used on a modal\n    new FrontendLogin_Modal();\n});\n"],"names":["UltimateLogin2FARedirect","_classCallCheck","key","value","response","data","requires_redirect","redirect_url","window","location","href","module","exports","e","Element","prototype","closest","t","n","this","document","ownerDocument","querySelectorAll","o","length","item","parentElement","g","r","i","c","f","type","forEach","target","selector","documentElement","indexOf","contains","callback","on","split","trim","addEventListener","push","off","removeEventListener","toString","splice","once","get","hasOwnProperty","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","call","getter","__esModule","d","a","definition","Object","defineProperty","enumerable","globalThis","Function","obj","prop","isDefined","variable","isEmpty","Array","isArray","isObject","keys","fade","element","arguments","fadeClass","concat","classList","add","setTimeout","remove","triggerEvent","eventId","event","CustomEvent","detail","dispatchEvent","eye","PasswordField","$field","nextSibling","nextElementSibling","cssClasses","passwordVisibilityToggle","setupParentPositioning","addFieldPadding","addEyeIcon","ensureFieldEditable","setupFocusHandlers","parent","parentNode","getComputedStyle","position","style","currentPadding","paddingRight","parseInt","_this","$eyeIcon","createElement","innerHTML","iconEye","insertBefore","getAttribute","setAttribute","_this2","removeAttribute","readOnly","disabled","events","require","FrontendLogin","getElements","shouldInvokeMethods","validateFormSubmission","handleReCaptchaChanges","_createClass","$elements","mainForm","onsubmit","canSubmit","hasReCAPTCHA","isCaptchaChecked","container","reCAPTCHAerror","setError","UncannyToolkit","frontendLogin","i18n","checkReCaptcha","console","error","id","isValid","submitForm","preventDefault","setLoadingStatus","setButtonDisableStatus","handleAJAX","action","onSuccess","onFail","options","_objectSpread","includeNonce","nonce","ajax","fetch","url","method","headers","body","URLSearchParams","then","ok","redirected","success","code","json","Error","generic","AJAXRequest","ajaxAction","formData","afterValidSubmission","message","resetReCAPTCHA","integrity","shouldPreventConcurrentLogin","preventConcurrentLogin","handleResponse","isUsingLearnDashReCaptcha","hasAjaxEnabled","handleLearnDashReCaptcha","hasLearnDashReCaptchField","submit","setAsLoading","ui","showAnimationOnSubmit","loading","submitButton","btnLoading","isLoading","setAsDisabled","buttonDisabledOnSubmit","btnDisabled","button","disable","errorNotice","noticeHasError","textNode","textContent","_this3","reCaptcha","correct","formFields","reCAPTCHA","grecaptcha","getResponse","reset","modals","getReCAPTCHAResponse","_this4","ready","execute","LD_TP","site_key","token","insertAdjacentHTML","hasField","querySelector","Login","_FrontendLogin","_inherits","_super","_createSuper","_this5","password","getElementById","getElementsByClassName","email","redirectTo","rememberMe","formDataDefault","assign","UOToolkitFrontEndLoginFormData","checked","uo_is_login_modal","_response$twoFactor","twoFactor","_meta","enabled","reload","ForgotPassword","_FrontendLogin2","_super2","apply","boxContent","ResetPassword","_FrontendLogin3","_super3","passwordRepeat","FrontendLogin_Modal","handleContainerVisiblity","currentPageIsLoginPage","handleModalInLoginPage","loginShowButton","forgotPasswordShowButton","_this6","showSection","section","Login2ndFactor","$form","listenSubmission","_this7","reCAPTCHAs","whenReady","renderReCaptchas","reCaptchaInit","$reCAPTCHAs","$reCAPTCHA","render","sitekey","Modals","allModals","createModals","$modal","modalID","includes","modal","Modal","$modalContent","getModalData","renderModal","handleModalOpen","handleClickOutsideTheModal","modalData","title","btnDismiss","dimBackground","dismiss","appendChild","box","content","dismissBtn","handleDismissButton","showModal","hideModal","$container","HTMLcontent"],"sourceRoot":""}
  • uncanny-learndash-toolkit/trunk/uncanny-learndash-toolkit.php

    r3395254 r3407115  
    1010 * License:             GPLv3
    1111 * License URI:         https://www.gnu.org/licenses/gpl-3.0.html
    12  * Version:             3.8.0
     12 * Version:             3.8.0.1
    1313 * Requires at least:   5.8
    1414 * Requires PHP:        7.4
     
    2323     *
    2424     */
    25     define( 'UNCANNY_TOOLKIT_VERSION', '3.8.0' );
     25    define( 'UNCANNY_TOOLKIT_VERSION', '3.8.0.1' );
    2626}
    2727
  • uncanny-learndash-toolkit/trunk/vendor/composer/installed.php

    r3395254 r3407115  
    44        'pretty_version' => 'dev-master',
    55        'version' => 'dev-master',
    6         'reference' => 'd2449199d28588d66a806459f39b46d07cff258e',
     6        'reference' => '43269d512f1ae14718f32a2bf34d0fd4207ab2e2',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
     
    1414            'pretty_version' => 'dev-master',
    1515            'version' => 'dev-master',
    16             'reference' => 'd2449199d28588d66a806459f39b46d07cff258e',
     16            'reference' => '43269d512f1ae14718f32a2bf34d0fd4207ab2e2',
    1717            'type' => 'wordpress-plugin',
    1818            'install_path' => __DIR__ . '/../../',
Note: See TracChangeset for help on using the changeset viewer.