var/cache/dev/twig/2a/2a838ee51f57cfd7e1a7b543b8265905.php line 56

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\CoreExtension;
  6. use Twig\Extension\SandboxExtension;
  7. use Twig\Markup;
  8. use Twig\Sandbox\SecurityError;
  9. use Twig\Sandbox\SecurityNotAllowedTagError;
  10. use Twig\Sandbox\SecurityNotAllowedFilterError;
  11. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  12. use Twig\Source;
  13. use Twig\Template;
  14. use Twig\TemplateWrapper;
  15. /* security/login.html.twig */
  16. class __TwigTemplate_93df8f91b81b960d56a958239c472eb3 extends Template
  17. {
  18.     private Source $source;
  19.     /**
  20.      * @var array<string, Template>
  21.      */
  22.     private array $macros = [];
  23.     public function __construct(Environment $env)
  24.     {
  25.         parent::__construct($env);
  26.         $this->source $this->getSourceContext();
  27.         $this->blocks = [
  28.             'title' => [$this'block_title'],
  29.             'stylesheets' => [$this'block_stylesheets'],
  30.             'body' => [$this'block_body'],
  31.             'javascripts' => [$this'block_javascripts'],
  32.         ];
  33.     }
  34.     protected function doGetParent(array $context): bool|string|Template|TemplateWrapper
  35.     {
  36.         // line 1
  37.         return "base_home.html.twig";
  38.     }
  39.     protected function doDisplay(array $context, array $blocks = []): iterable
  40.     {
  41.         $macros $this->macros;
  42.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  43.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""security/login.html.twig"));
  44.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  45.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""security/login.html.twig"));
  46.         $this->parent $this->load("base_home.html.twig"1);
  47.         yield from $this->parent->unwrap()->yield($contextarray_merge($this->blocks$blocks));
  48.         
  49.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  50.         
  51.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  52.     }
  53.     // line 3
  54.     /**
  55.      * @return iterable<null|scalar|\Stringable>
  56.      */
  57.     public function block_title(array $context, array $blocks = []): iterable
  58.     {
  59.         $macros $this->macros;
  60.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  61.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  62.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  63.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  64.         yield "Connexion | MaketOu";
  65.         
  66.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  67.         
  68.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  69.         yield from [];
  70.     }
  71.     // line 5
  72.     /**
  73.      * @return iterable<null|scalar|\Stringable>
  74.      */
  75.     public function block_stylesheets(array $context, array $blocks = []): iterable
  76.     {
  77.         $macros $this->macros;
  78.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  79.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheets"));
  80.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  81.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheets"));
  82.         // line 6
  83.         yield "    ";
  84.         yield from $this->yieldParentBlock("stylesheets"$context$blocks);
  85.         yield "
  86.     <link rel=\"stylesheet\" href=\"";
  87.         // line 7
  88.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("css/modern-password-field.css"), "html"nulltrue);
  89.         yield "\">
  90. ";
  91.         
  92.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  93.         
  94.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  95.         yield from [];
  96.     }
  97.     // line 10
  98.     /**
  99.      * @return iterable<null|scalar|\Stringable>
  100.      */
  101.     public function block_body(array $context, array $blocks = []): iterable
  102.     {
  103.         $macros $this->macros;
  104.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  105.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  106.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  107.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  108.         // line 11
  109.         yield "
  110.     <!-- Start Banner Area -->
  111.     <section class=\"banner-area organic-breadcrumb\">
  112.         <div class=\"container\">
  113.             <div class=\"breadcrumb-banner d-flex flex-wrap align-items-center justify-content-end\">
  114.                 <div class=\"col-first\">
  115.                     <h1>Connexion</h1>
  116.                     <nav class=\"d-flex align-items-center\">
  117.                         <a href=\"";
  118.         // line 19
  119.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("ui_home");
  120.         yield "\">Accueil<span class=\"lnr lnr-arrow-right\"></span></a>
  121.                         <a href=\"javascript:void(0)\">Connexion</a>
  122.                     </nav>
  123.                 </div>
  124.             </div>
  125.         </div>
  126.     </section>
  127.     <!-- End Banner Area -->
  128.     <!--================Login Box Area =================-->
  129.     <section class=\"login_box_area section_gap\">
  130.         <div class=\"container\">
  131.             <div class=\"row\">
  132.                 <div class=\"col-lg-6\">
  133.                     <div class=\"login_box_img\">
  134.                         <img class=\"img-fluid\" src=\"";
  135.         // line 34
  136.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("ui/img/login.jpg"), "html"nulltrue);
  137.         yield "\" alt=\"\">
  138.                         <div class=\"hover\">
  139.                             <h4>Nouveau sur le site?</h4>
  140.                             <p>Créez votre compte dès maintenant et profitez de tous nos avantages. Accédez à des offres exclusives, suivez vos commandes et bien plus encore.</p>
  141.                             <a class=\"primary-btn\" href=\"";
  142.         // line 38
  143.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("ui_app_register");
  144.         yield "\">S'inscrire</a>
  145.                         </div>
  146.                     </div>
  147.                 </div>
  148.                 <div class=\"col-lg-6\">
  149.                     <div class=\"login_form_inner\">
  150.                         <h3>Connectez-vous</h3>
  151.                         <form method=\"post\" class=\"row login_form\">
  152.                             ";
  153.         // line 46
  154.         if ((($tmp = ($context["error"] ?? null)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  155.             // line 47
  156.             yield "                                <div class=\"alert alert-danger w-100\">";
  157.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(CoreExtension::getAttribute($this->env$this->source, ($context["error"] ?? null), "messageKey", [], "any"falsefalsefalse47), CoreExtension::getAttribute($this->env$this->source, ($context["error"] ?? null), "messageData", [], "any"falsefalsefalse47), "security"), "html"nulltrue);
  158.             yield "</div>
  159.                             ";
  160.         }
  161.         // line 49
  162.         yield "
  163.                             ";
  164.         // line 50
  165.         if ((($tmp CoreExtension::getAttribute($this->env$this->source, ($context["app"] ?? null), "user", [], "any"falsefalsefalse50)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  166.             // line 51
  167.             yield "                                <div class=\"mb-3\">
  168.                                     Vous êtes connecté comme ";
  169.             // line 52
  170.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, ($context["app"] ?? null), "user", [], "any"falsefalsefalse52), "userIdentifier", [], "any"falsefalsefalse52), "html"nulltrue);
  171.             yield ", <a
  172.                                             href=\"";
  173.             // line 53
  174.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("ui_app_logout");
  175.             yield "\">Déconnexion</a>
  176.                                 </div>
  177.                             ";
  178.         }
  179.         // line 56
  180.         yield "                            <div class=\"col-md-12 form-group\">
  181.                                 <input type=\"email\" value=\"";
  182.         // line 57
  183.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(($context["last_username"] ?? null), "html"nulltrue);
  184.         yield "\" name=\"_username\" id=\"username\"
  185.                                        class=\"form-control\" autocomplete=\"email\" placeholder=\"Votre email\" required>
  186.                             </div>
  187.                             <div class=\"col-md-12 form-group modern-password-group\" style=\"position: relative;\">
  188.                                 <input type=\"password\" name=\"_password\" id=\"password\" class=\"form-control modern-password\"
  189.                                        autocomplete=\"new-password\" placeholder=\"Votre mot de passe\" required style=\"padding-right: 55px; background-color: white !important;\">
  190.                                 <button type=\"button\" class=\"eye-toggle\" id=\"password-toggle\" title=\"Afficher le mot de passe\" aria-pressed=\"false\" style=\"position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border: none; background: transparent; cursor: pointer; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 0; color: #777;\">
  191.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 24px; height: 24px; display: block; color: inherit;\">
  192.                                         <defs>
  193.                                             <mask id=\"eye-open\">
  194.                                                 <path d=\"M1 12 C1 12 5 4 12 4 19 4 23 12 23 12 23 14.66 23 17.32 23 20 19.32 20 15.66 20 12 20 8.33 20 4.66 20 1 20 1 17.32 1 14.66 1 12 z\" fill=\"#D9D9D9\" stroke=\"black\" stroke-width=\"1.5\" stroke-linejoin=\"round\"></path>
  195.                                             </mask>
  196.                                             <mask id=\"eye-closed\">
  197.                                                 <path d=\"M1 12C1 12 5 20 12 20C19 20 23 12 23 12V20H12H1V12Z\" fill=\"#D9D9D9\"></path>
  198.                                             </mask>
  199.                                         </defs>
  200.                                         <path class=\"lid lid--upper\" d=\"M1 12 C1 12 5 4 12 4 19 4 23 12 23 12 \" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>
  201.                                         <path class=\"lid lid--lower\" d=\"M1 12C1 12 5 20 12 20C19 20 23 12 23 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>
  202.                                         <g mask=\"url(#eye-open)\">
  203.                                             <g class=\"eye\">
  204.                                                 <circle cy=\"12\" cx=\"12\" r=\"4\" fill=\"currentColor\"></circle>
  205.                                                 <circle cy=\"11\" cx=\"13\" r=\"1\" fill=\"black\"></circle>
  206.                                             </g>
  207.                                         </g>
  208.                                     </svg>
  209.                                     <span class=\"sr-only\">Afficher</span>
  210.                                 </button>
  211.                             </div>
  212.                             <div class=\"col-md-12 form-group\">
  213.                                 <div class=\"creat_account\">
  214.                                     <input type=\"checkbox\" id=\"f-option2\" name=\"selector\">
  215.                                     <label for=\"f-option2\">Rester connecté!</label>
  216.                                 </div>
  217.                             </div>
  218.                             <input type=\"hidden\" name=\"_csrf_token\"
  219.                                    value=\"";
  220.         // line 94
  221.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Symfony\Component\Form\FormRenderer')->renderCsrfToken("authenticate"), "html"nulltrue);
  222.         yield "\"
  223.                             >
  224.                             ";
  225.         // line 107
  226.         yield "                            <div class=\"col-md-12 form-group\">
  227.                                 <button class=\"primary-btn\" type=\"submit\">
  228.                                     Se connecter
  229.                                 </button>
  230.                                 <a href=\"";
  231.         // line 111
  232.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("ui_app_forgot_password_request");
  233.         yield "\">Mot de passe oublié?</a>
  234.                             </div>
  235.                         </form>
  236.                     </div>
  237.                 </div>
  238.             </div>
  239.         </div>
  240.     </section>
  241. ";
  242.         
  243.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  244.         
  245.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  246.         yield from [];
  247.     }
  248.     // line 121
  249.     /**
  250.      * @return iterable<null|scalar|\Stringable>
  251.      */
  252.     public function block_javascripts(array $context, array $blocks = []): iterable
  253.     {
  254.         $macros $this->macros;
  255.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  256.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascripts"));
  257.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  258.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascripts"));
  259.         // line 122
  260.         yield "    ";
  261.         yield from $this->yieldParentBlock("javascripts"$context$blocks);
  262.         yield "
  263.     <script>
  264.     // Load GSAP standard (now 100% free with all plugins included as of April 2025)
  265.     (function() {
  266.         const GSAP_TIMEOUT = 5000; // 5 seconds timeout
  267.         let gsapLoaded = false;
  268.         
  269.         // Load GSAP standard package (includes all plugins)
  270.         const gsapScript = document.createElement('script');
  271.         gsapScript.src = 'https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js';
  272.         gsapScript.async = true;
  273.         gsapScript.onload = function() {
  274.             gsapLoaded = true;
  275.             console.log('[GSAP] Standard package loaded successfully');
  276.             // Load password field script after GSAP is loaded
  277.             setTimeout(loadPasswordFieldScript, 100);
  278.         };
  279.         gsapScript.onerror = function() {
  280.             console.warn('[GSAP] Failed to load, using fallback');
  281.             loadPasswordFieldScript();
  282.         };
  283.         
  284.         // Timeout fallback
  285.         setTimeout(function() {
  286.             if (!gsapLoaded) {
  287.                 console.warn('[GSAP] Timeout loading GSAP, using fallback');
  288.                 loadPasswordFieldScript();
  289.             }
  290.         }, GSAP_TIMEOUT);
  291.         
  292.         document.head.appendChild(gsapScript);
  293.         
  294.         function loadPasswordFieldScript() {
  295.             const script = document.createElement('script');
  296.             script.src = '";
  297.         // line 156
  298.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("js/modern-password-field.js"), "html"nulltrue);
  299.         yield "';
  300.             script.async = true;
  301.             document.head.appendChild(script);
  302.         }
  303.     })();
  304.     </script>
  305. ";
  306.         
  307.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  308.         
  309.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  310.         yield from [];
  311.     }
  312.     /**
  313.      * @codeCoverageIgnore
  314.      */
  315.     public function getTemplateName(): string
  316.     {
  317.         return "security/login.html.twig";
  318.     }
  319.     /**
  320.      * @codeCoverageIgnore
  321.      */
  322.     public function isTraitable(): bool
  323.     {
  324.         return false;
  325.     }
  326.     /**
  327.      * @codeCoverageIgnore
  328.      */
  329.     public function getDebugInfo(): array
  330.     {
  331.         return array (  331 => 156,  293 => 122,  280 => 121,  260 => 111,  254 => 107,  248 => 94,  208 => 57,  205 => 56,  199 => 53,  195 => 52,  192 => 51,  190 => 50,  187 => 49,  181 => 47,  179 => 46,  168 => 38,  161 => 34,  143 => 19,  133 => 11,  120 => 10,  107 => 7,  102 => 6,  89 => 5,  66 => 3,  43 => 1,);
  332.     }
  333.     public function getSourceContext(): Source
  334.     {
  335.         return new Source("{% extends 'base_home.html.twig' %}
  336. {% block title %}Connexion | MaketOu{% endblock %}
  337. {% block stylesheets %}
  338.     {{ parent() }}
  339.     <link rel=\"stylesheet\" href=\"{{ asset('css/modern-password-field.css') }}\">
  340. {% endblock %}
  341. {% block body %}
  342.     <!-- Start Banner Area -->
  343.     <section class=\"banner-area organic-breadcrumb\">
  344.         <div class=\"container\">
  345.             <div class=\"breadcrumb-banner d-flex flex-wrap align-items-center justify-content-end\">
  346.                 <div class=\"col-first\">
  347.                     <h1>Connexion</h1>
  348.                     <nav class=\"d-flex align-items-center\">
  349.                         <a href=\"{{ path('ui_home') }}\">Accueil<span class=\"lnr lnr-arrow-right\"></span></a>
  350.                         <a href=\"javascript:void(0)\">Connexion</a>
  351.                     </nav>
  352.                 </div>
  353.             </div>
  354.         </div>
  355.     </section>
  356.     <!-- End Banner Area -->
  357.     <!--================Login Box Area =================-->
  358.     <section class=\"login_box_area section_gap\">
  359.         <div class=\"container\">
  360.             <div class=\"row\">
  361.                 <div class=\"col-lg-6\">
  362.                     <div class=\"login_box_img\">
  363.                         <img class=\"img-fluid\" src=\"{{ asset('ui/img/login.jpg') }}\" alt=\"\">
  364.                         <div class=\"hover\">
  365.                             <h4>Nouveau sur le site?</h4>
  366.                             <p>Créez votre compte dès maintenant et profitez de tous nos avantages. Accédez à des offres exclusives, suivez vos commandes et bien plus encore.</p>
  367.                             <a class=\"primary-btn\" href=\"{{ path('ui_app_register') }}\">S'inscrire</a>
  368.                         </div>
  369.                     </div>
  370.                 </div>
  371.                 <div class=\"col-lg-6\">
  372.                     <div class=\"login_form_inner\">
  373.                         <h3>Connectez-vous</h3>
  374.                         <form method=\"post\" class=\"row login_form\">
  375.                             {% if error %}
  376.                                 <div class=\"alert alert-danger w-100\">{{ error.messageKey|trans(error.messageData, 'security') }}</div>
  377.                             {% endif %}
  378.                             {% if app.user %}
  379.                                 <div class=\"mb-3\">
  380.                                     Vous êtes connecté comme {{ app.user.userIdentifier }}, <a
  381.                                             href=\"{{ path('ui_app_logout') }}\">Déconnexion</a>
  382.                                 </div>
  383.                             {% endif %}
  384.                             <div class=\"col-md-12 form-group\">
  385.                                 <input type=\"email\" value=\"{{ last_username }}\" name=\"_username\" id=\"username\"
  386.                                        class=\"form-control\" autocomplete=\"email\" placeholder=\"Votre email\" required>
  387.                             </div>
  388.                             <div class=\"col-md-12 form-group modern-password-group\" style=\"position: relative;\">
  389.                                 <input type=\"password\" name=\"_password\" id=\"password\" class=\"form-control modern-password\"
  390.                                        autocomplete=\"new-password\" placeholder=\"Votre mot de passe\" required style=\"padding-right: 55px; background-color: white !important;\">
  391.                                 <button type=\"button\" class=\"eye-toggle\" id=\"password-toggle\" title=\"Afficher le mot de passe\" aria-pressed=\"false\" style=\"position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border: none; background: transparent; cursor: pointer; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 0; color: #777;\">
  392.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 24px; height: 24px; display: block; color: inherit;\">
  393.                                         <defs>
  394.                                             <mask id=\"eye-open\">
  395.                                                 <path d=\"M1 12 C1 12 5 4 12 4 19 4 23 12 23 12 23 14.66 23 17.32 23 20 19.32 20 15.66 20 12 20 8.33 20 4.66 20 1 20 1 17.32 1 14.66 1 12 z\" fill=\"#D9D9D9\" stroke=\"black\" stroke-width=\"1.5\" stroke-linejoin=\"round\"></path>
  396.                                             </mask>
  397.                                             <mask id=\"eye-closed\">
  398.                                                 <path d=\"M1 12C1 12 5 20 12 20C19 20 23 12 23 12V20H12H1V12Z\" fill=\"#D9D9D9\"></path>
  399.                                             </mask>
  400.                                         </defs>
  401.                                         <path class=\"lid lid--upper\" d=\"M1 12 C1 12 5 4 12 4 19 4 23 12 23 12 \" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>
  402.                                         <path class=\"lid lid--lower\" d=\"M1 12C1 12 5 20 12 20C19 20 23 12 23 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>
  403.                                         <g mask=\"url(#eye-open)\">
  404.                                             <g class=\"eye\">
  405.                                                 <circle cy=\"12\" cx=\"12\" r=\"4\" fill=\"currentColor\"></circle>
  406.                                                 <circle cy=\"11\" cx=\"13\" r=\"1\" fill=\"black\"></circle>
  407.                                             </g>
  408.                                         </g>
  409.                                     </svg>
  410.                                     <span class=\"sr-only\">Afficher</span>
  411.                                 </button>
  412.                             </div>
  413.                             <div class=\"col-md-12 form-group\">
  414.                                 <div class=\"creat_account\">
  415.                                     <input type=\"checkbox\" id=\"f-option2\" name=\"selector\">
  416.                                     <label for=\"f-option2\">Rester connecté!</label>
  417.                                 </div>
  418.                             </div>
  419.                             <input type=\"hidden\" name=\"_csrf_token\"
  420.                                    value=\"{{ csrf_token('authenticate') }}\"
  421.                             >
  422.                             {#
  423.                             Uncomment this section and add a remember_me option below your firewall to activate remember me functionality.
  424.                             See https://symfony.com/doc/current/security/remember_me.html
  425.                             <div class=\"checkbox mb-3\">
  426.                                 <label>
  427.                                     <input type=\"checkbox\" name=\"_remember_me\"> Remember me
  428.                                 </label>
  429.                             </div>
  430.                             #}
  431.                             <div class=\"col-md-12 form-group\">
  432.                                 <button class=\"primary-btn\" type=\"submit\">
  433.                                     Se connecter
  434.                                 </button>
  435.                                 <a href=\"{{ path('ui_app_forgot_password_request') }}\">Mot de passe oublié?</a>
  436.                             </div>
  437.                         </form>
  438.                     </div>
  439.                 </div>
  440.             </div>
  441.         </div>
  442.     </section>
  443. {% endblock %}
  444. {% block javascripts %}
  445.     {{ parent() }}
  446.     <script>
  447.     // Load GSAP standard (now 100% free with all plugins included as of April 2025)
  448.     (function() {
  449.         const GSAP_TIMEOUT = 5000; // 5 seconds timeout
  450.         let gsapLoaded = false;
  451.         
  452.         // Load GSAP standard package (includes all plugins)
  453.         const gsapScript = document.createElement('script');
  454.         gsapScript.src = 'https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js';
  455.         gsapScript.async = true;
  456.         gsapScript.onload = function() {
  457.             gsapLoaded = true;
  458.             console.log('[GSAP] Standard package loaded successfully');
  459.             // Load password field script after GSAP is loaded
  460.             setTimeout(loadPasswordFieldScript, 100);
  461.         };
  462.         gsapScript.onerror = function() {
  463.             console.warn('[GSAP] Failed to load, using fallback');
  464.             loadPasswordFieldScript();
  465.         };
  466.         
  467.         // Timeout fallback
  468.         setTimeout(function() {
  469.             if (!gsapLoaded) {
  470.                 console.warn('[GSAP] Timeout loading GSAP, using fallback');
  471.                 loadPasswordFieldScript();
  472.             }
  473.         }, GSAP_TIMEOUT);
  474.         
  475.         document.head.appendChild(gsapScript);
  476.         
  477.         function loadPasswordFieldScript() {
  478.             const script = document.createElement('script');
  479.             script.src = '{{ asset('js/modern-password-field.js') }}';
  480.             script.async = true;
  481.             document.head.appendChild(script);
  482.         }
  483.     })();
  484.     </script>
  485. {% endblock %}
  486. ""security/login.html.twig""/home/u540977899/domains/maketou-ht.com/public_html/templates/security/login.html.twig");
  487.     }
  488. }