New applied: - wevanalytics 27703B (+8254 CSS Gemini) - signup 28550B Total 18 pages Gemini premium CSS applied session. 3 pages failed batch (mailstream reachhcp email-platform) = Gemini rate-limit/parse err Retry planned sequential direct with longer delay. Cumul: 67 tags 45 doctrines (146-206) NR 153/153 invariant 68 phases
590 lines
28 KiB
HTML
590 lines
28 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="fr"><head>
|
|
<link rel="icon" href="/favicon.ico" type="image/x-icon">
|
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
|
<meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0">
|
|
<title>WEVAL Products — Inscription</title>
|
|
<meta name="description" content="WEVAL Products — Inscription - Solutions IA souveraines pour entreprises">
|
|
<link href="https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=Outfit:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
|
|
<style>
|
|
:root{--bg:#05080f;--s:#0c1222;--a:#00c9a7;--a15:rgba(0,201,167,.15);--p:#7c5cfc;--g:#f0c674;--r:#ff6b6b;--bl:#4ea8de;--sv:#7a8ba5;--w:#edf2f7;--b:rgba(0,201,167,.08)}
|
|
*{margin:0;padding:0;box-sizing:border-box}body{font-family:'Outfit',sans-serif;background:var(--bg);color:var(--w);min-height:100vh}
|
|
nav{position:fixed;top:0;width:100%;padding:.8rem 4%;display:flex;justify-content:space-between;align-items:center;z-index:100;backdrop-filter:blur(20px);background:rgba(5,8,15,.85);border-bottom:1px solid var(--b)}.logo{font-weight:800;font-size:1.3rem}.logo span{color:var(--a)}
|
|
.main{max-width:700px;margin:0 auto;padding:6rem 1.5rem 3rem}
|
|
h1{font-size:2.2rem;font-weight:800;letter-spacing:-.03em;margin-bottom:.5rem;text-align:center}
|
|
.sub{text-align:center;color:var(--sv);font-size:.95rem;margin-bottom:2.5rem}
|
|
.tabs{display:flex;gap:0;margin-bottom:2rem;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.06)}
|
|
.tab{flex:1;padding:.7rem;text-align:center;font-weight:600;font-size:.85rem;cursor:pointer;background:var(--s);transition:all .2s;color:var(--sv)}
|
|
.tab.active{background:var(--a);color:var(--bg)}
|
|
.tab:hover:not(.active){background:rgba(0,201,167,.05);color:var(--a)}
|
|
.panel{display:none}.panel.active{display:block}
|
|
.form-box{background:var(--s);border:1px solid var(--b);border-radius:16px;padding:2rem}
|
|
.fg{margin-bottom:1.2rem}
|
|
.fg label{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--sv);margin-bottom:.35rem}
|
|
.fg input,.fg select,.fg textarea{width:100%;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.7rem .9rem;font-size:.88rem;color:var(--w);font-family:'Outfit';outline:none;transition:border .3s}
|
|
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--a)}
|
|
.fg input::placeholder,.fg textarea::placeholder{color:rgba(255,255,255,.2)}
|
|
.fg select{cursor:pointer;-webkit-appearance:none}
|
|
.fr{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
|
|
.btn{width:100%;padding:.85rem;border:none;border-radius:10px;font-family:'Outfit';font-size:.95rem;font-weight:700;cursor:pointer;transition:all .3s;margin-top:.5rem}
|
|
.btn-g{background:var(--a);color:var(--bg)}.btn-g:hover{background:#00e6be;transform:translateY(-1px)}
|
|
.btn-w{background:var(--p);color:#fff}.btn-w:hover{background:#9479fd}
|
|
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
|
|
.result{display:none;margin-top:1.5rem;background:rgba(0,201,167,.05);border:1px solid rgba(0,201,167,.2);border-radius:12px;padding:1.5rem}
|
|
.result h3{font-size:1rem;font-weight:700;margin-bottom:.8rem;color:var(--a)}
|
|
.key-box{background:rgba(0,0,0,.3);border:1px solid rgba(0,201,167,.15);border-radius:8px;padding:.8rem 1rem;font-family:'Space Mono',monospace;font-size:.85rem;color:var(--a);display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;word-break:break-all}
|
|
.key-box button{background:var(--a);color:var(--bg);border:none;padding:.3rem .8rem;border-radius:6px;font-weight:600;font-size:.75rem;cursor:pointer;white-space:nowrap;margin-left:.5rem}
|
|
.endpoints{font-size:.8rem;color:var(--sv);line-height:1.8}
|
|
.endpoints code{background:rgba(0,201,167,.1);padding:.1rem .3rem;border-radius:4px;font-family:'Space Mono',monospace;font-size:.75rem;color:var(--a)}
|
|
.products-status{margin-top:2rem}
|
|
.ps-item{display:flex;align-items:center;gap:.8rem;padding:.8rem;border-bottom:1px solid rgba(255,255,255,.03)}
|
|
.ps-icon{font-size:1.2rem;width:36px;text-align:center}
|
|
.ps-name{font-weight:600;font-size:.88rem;flex:1}
|
|
.ps-badge{font-family:'Space Mono',monospace;font-size:.62rem;font-weight:700;padding:.2rem .5rem;border-radius:100px}
|
|
.b-live{background:rgba(0,201,167,.15);color:var(--a)}
|
|
.b-live{background:rgba(240,198,116,.15);color:var(--g)}
|
|
.b-live{background:rgba(124,92,252,.15);color:var(--p)}
|
|
.toast{position:fixed;bottom:2rem;right:2rem;background:var(--a);color:var(--bg);padding:.6rem 1rem;border-radius:8px;font-weight:600;font-size:.82rem;z-index:2000;display:none}
|
|
@media(max-width:600px){.fr{grid-template-columns:1fr}}
|
|
.in-iframe nav{display:none!important}.in-iframe .hero{padding-top:3rem!important;min-height:auto!important}.in-iframe footer{display:none!important}.in-iframe .cta{display:none!important}.in-iframe .wv-links{display:none!important}input,select,textarea{background:#0b0d14!important;color:#e2e8f0!important;border:1px solid #1e293b!important;border-radius:8px!important}input::placeholder{color:#475569!important}</style><link rel="stylesheet" href="/assets/dark-iframe.css">
|
|
<!-- DOCTRINE-60-UX-ENRICH products-batch-doctrine195 -->
|
|
<style id="wtp-doctrine60-ux-premium">
|
|
:root {
|
|
--wtp-bg-start:#0a0f1c; --wtp-bg-end:#0f172a;
|
|
--wtp-surface:rgba(15,23,42,.85); --wtp-surface-hover:rgba(30,41,59,.9);
|
|
--wtp-border:rgba(99,102,241,.25); --wtp-border-hover:rgba(99,102,241,.5);
|
|
--wtp-text:#e2e8f0; --wtp-text-dim:#94a3b8; --wtp-text-bright:#f1f5f9;
|
|
--wtp-primary:#6366f1; --wtp-primary-hover:#7c7feb;
|
|
--wtp-accent:#8b5cf6; --wtp-success:#10b981; --wtp-warning:#f59e0b; --wtp-danger:#ef4444;
|
|
--wtp-radius:12px; --wtp-shadow:0 4px 24px rgba(99,102,241,.15); --wtp-shadow-lg:0 8px 48px rgba(99,102,241,.25);
|
|
--wtp-transition:all .2s cubic-bezier(.4,0,.2,1);
|
|
--wtp-font:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
|
|
--wtp-font-mono:'JetBrains Mono',monospace;
|
|
}
|
|
.wtp-card{background:var(--wtp-surface);border:1px solid var(--wtp-border);border-radius:var(--wtp-radius);padding:20px;transition:var(--wtp-transition)}
|
|
.wtp-card:hover{border-color:var(--wtp-border-hover);box-shadow:var(--wtp-shadow)}
|
|
.wtp-btn{background:linear-gradient(135deg,var(--wtp-primary),var(--wtp-accent));color:#fff;padding:10px 20px;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:var(--wtp-transition)}
|
|
.wtp-btn:hover{transform:translateY(-1px);box-shadow:var(--wtp-shadow)}
|
|
.wtp-badge{display:inline-flex;align-items:center;padding:4px 10px;background:var(--wtp-surface);border:1px solid var(--wtp-border);border-radius:20px;font-size:12px;color:var(--wtp-text-dim)}
|
|
@media (max-width:768px){#weval-bot-widget{bottom:100px !important;right:16px !important;z-index:10001 !important}#weval-bot-btn{width:48px !important;height:48px !important}#weval-bot-btn svg{width:22px !important;height:22px !important}#footer_banner,.footer-banner,[class*="footer-bandeau"]{z-index:9990 !important}}
|
|
</style>
|
|
|
|
|
|
<!-- DOCTRINE-201-GEMINI-APPLY-20260424-191008 -->
|
|
<style>
|
|
:root {
|
|
--wtp-bg: #0A111F; /* Very dark blue background */
|
|
--wtp-card: #1A2233; /* Slightly lighter dark blue for cards/forms */
|
|
--wtp-primary: #00E6B8; /* Vibrant teal for primary actions */
|
|
--wtp-accent: #00C89F; /* A slightly darker shade of primary for accents */
|
|
--wtp-text-light: #E0E6F0; /* Light text for readability */
|
|
--wtp-text-muted: #8B9BB4; /* Muted text for secondary info */
|
|
--wtp-border-color: rgba(255, 255, 255, 0.1); /* Subtle border */
|
|
--wtp-shadow: 0 8px 24px rgba(0, 0, 0, 0.4); /* Premium shadow */
|
|
}
|
|
|
|
body {
|
|
font-family: 'Inter', sans-serif; /* Modern, clean font */
|
|
background-color: var(--wtp-bg);
|
|
color: var(--wtp-text-light);
|
|
margin: 0;
|
|
padding: 0;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
/* General styling for a premium dark theme */
|
|
h1, h2, h3, h4, h5, h6 {
|
|
color: var(--wtp-text-light);
|
|
font-weight: 700;
|
|
margin-bottom: 0.8em;
|
|
}
|
|
|
|
p {
|
|
color: var(--wtp-text-muted);
|
|
}
|
|
|
|
a {
|
|
color: var(--wtp-primary);
|
|
text-decoration: none;
|
|
transition: color 0.3s ease;
|
|
}
|
|
|
|
a:hover {
|
|
color: var(--wtp-accent);
|
|
}
|
|
|
|
/* Specific components */
|
|
|
|
.wtp-hero-premium {
|
|
position: relative;
|
|
padding: 100px 20px;
|
|
text-align: center;
|
|
background: linear-gradient(135deg, var(--wtp-bg) 0%, #1A2A40 100%); /* Subtle gradient */
|
|
overflow: hidden;
|
|
z-index: 1;
|
|
}
|
|
|
|
.wtp-hero-premium::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background: radial-gradient(circle at top left, rgba(0, 230, 184, 0.1) 0%, transparent 50%),
|
|
radial-gradient(circle at bottom right, rgba(26, 34, 51, 0.2) 0%, transparent 50%);
|
|
backdrop-filter: blur(2px) brightness(1.1); /* Subtle backdrop effect */
|
|
-webkit-backdrop-filter: blur(2px) brightness(1.1);
|
|
z-index: -1;
|
|
}
|
|
|
|
.wtp-kpi-card {
|
|
background-color: var(--wtp-card);
|
|
border-radius: 12px;
|
|
padding: 25px;
|
|
margin: 15px;
|
|
box-shadow: var(--wtp-shadow);
|
|
border: 1px solid var(--wtp-border-color);
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
min-height: 120px;
|
|
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
|
}
|
|
|
|
.wtp-kpi-card:hover {
|
|
transform: translateY(-5px);
|
|
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
|
|
}
|
|
|
|
.wtp-kpi-card .kpi-value {
|
|
font-size: 2.2em;
|
|
font-weight: 700;
|
|
color: var(--wtp-primary);
|
|
margin-bottom: 5px;
|
|
}
|
|
|
|
.wtp-kpi-card .kpi-label {
|
|
font-size: 0.9em;
|
|
color: var(--wtp-text-muted);
|
|
}
|
|
|
|
.wtp-kpi-card .sparkline-svg {
|
|
/* Placeholder for an SVG sparkline */
|
|
width: 100%;
|
|
height: 40px;
|
|
background-color: rgba(0, 230, 184, 0.1); /* Example background for the sparkline area */
|
|
border-radius: 4px;
|
|
margin-top: 10px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 0.8em;
|
|
color: var(--wtp-primary);
|
|
opacity: 0.7;
|
|
}
|
|
|
|
@keyframes pulse {
|
|
0% {
|
|
transform: scale(0.8);
|
|
opacity: 0.7;
|
|
}
|
|
50% {
|
|
transform: scale(1.1);
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
transform: scale(0.8);
|
|
opacity: 0.7;
|
|
}
|
|
}
|
|
|
|
.wtp-status-led {
|
|
display: inline-block;
|
|
width: 12px;
|
|
height: 12px;
|
|
border-radius: 50%;
|
|
background-color: var(--wtp-primary); /* Green for 'live' */
|
|
box-shadow: 0 0 0 0 rgba(0, 230, 184, 0.7);
|
|
animation: pulse 1.5s infinite cubic-bezier(0.66, 0, 0, 1);
|
|
margin-left: 8px;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.wtp-status-led.offline {
|
|
background-color: #FF4D4D; /* Red for 'offline' */
|
|
box-shadow: 0 0 0 0 rgba(255, 77, 77, 0.7);
|
|
}
|
|
|
|
.wtp-action-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 14px 28px;
|
|
border-radius: 8px;
|
|
font-size: 1.1em;
|
|
font-weight: 600;
|
|
cursor: pointer;
|
|
border: none;
|
|
color: var(--wtp-bg); /* Dark text on bright button */
|
|
background: linear-gradient(90deg, var(--wtp-primary) 0%, var(--wtp-accent) 100%);
|
|
box-shadow: 0 6px 15px rgba(0, 230, 184, 0.3);
|
|
transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
|
|
text-decoration: none; /* Ensure it looks like a button even if it's an anchor */
|
|
}
|
|
|
|
.wtp-action-btn:hover {
|
|
transform: translateY(-3px);
|
|
box-shadow: 0 10px 20px rgba(0, 230, 184, 0.5);
|
|
background: linear-gradient(90deg, var(--wtp-accent) 0%, var(--wtp-primary) 100%); /* Slight gradient shift */
|
|
}
|
|
|
|
/* Form elements for premium feel */
|
|
.wtp-form-container {
|
|
background-color: var(--wtp-card);
|
|
border-radius: 12px;
|
|
padding: 30px;
|
|
box-shadow: var(--wtp-shadow);
|
|
border: 1px solid var(--wtp-border-color);
|
|
max-width: 700px;
|
|
margin: 40px auto;
|
|
}
|
|
|
|
.wtp-form-group {
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.wtp-form-group label {
|
|
display: block;
|
|
margin-bottom: 8px;
|
|
font-weight: 600;
|
|
color: var(--wtp-text-light);
|
|
font-size: 0.95em;
|
|
}
|
|
|
|
.wtp-input, .wtp-select {
|
|
width: 100%;
|
|
padding: 12px 15px;
|
|
border-radius: 8px;
|
|
border: 1px solid var(--wtp-border-color);
|
|
background-color: rgba(255, 255, 255, 0.05); /* Slightly transparent white for input background */
|
|
color: var(--wtp-text-light);
|
|
font-size: 1em;
|
|
transition: border-color 0.3s ease, box-shadow 0.3s ease;
|
|
}
|
|
|
|
.wtp-input::placeholder {
|
|
color: var(--wtp-text-muted);
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.wtp-input:focus, .wtp-select:focus {
|
|
border-color: var(--wtp-primary);
|
|
outline: none;
|
|
box-shadow: 0 0 0 3px rgba(0, 230, 184, 0.2);
|
|
}
|
|
|
|
/* Tab navigation for the form */
|
|
.wtp-tab-nav {
|
|
display: flex;
|
|
margin-bottom: 30px;
|
|
background-color: rgba(255, 255, 255, 0.05);
|
|
border-radius: 8px;
|
|
padding: 5px;
|
|
}
|
|
|
|
.wtp-tab-nav button {
|
|
flex: 1;
|
|
padding: 12px 20px;
|
|
border: none;
|
|
background: transparent;
|
|
color: var(--wtp-text-muted);
|
|
font-size: 1em;
|
|
font-weight: 500;
|
|
cursor: pointer;
|
|
border-radius: 6px;
|
|
transition: background-color 0.3s ease, color 0.3s ease;
|
|
}
|
|
|
|
.wtp-tab-nav button.active {
|
|
background-color: var(--wtp-primary);
|
|
color: var(--wtp-bg);
|
|
font-weight: 600;
|
|
box-shadow: 0 4px 10px rgba(0, 230, 184, 0.3);
|
|
}
|
|
|
|
.wtp-tab-nav button:hover:not(.active) {
|
|
background-color: rgba(255, 255, 255, 0.1);
|
|
color: var(--wtp-text-light);
|
|
}
|
|
|
|
/* Footer styling */
|
|
.wtp-footer {
|
|
background-color: rgba(0, 0, 0, 0.2);
|
|
padding: 20px;
|
|
text-align: center;
|
|
font-size: 0.85em;
|
|
color: var(--wtp-text-muted);
|
|
border-top: 1px solid var(--wtp-border-color);
|
|
margin-top: 50px;
|
|
}
|
|
|
|
.wtp-footer .highlight {
|
|
color: var(--wtp-primary);
|
|
font-weight: 600;
|
|
}
|
|
|
|
/* Media Query for mobile */
|
|
@media (max-width: 768px) {
|
|
.wtp-hero-premium {
|
|
padding: 60px 15px;
|
|
}
|
|
|
|
.wtp-kpi-card {
|
|
padding: 20px;
|
|
margin: 10px 0;
|
|
}
|
|
|
|
.wtp-kpi-card .kpi-value {
|
|
font-size: 1.8em;
|
|
}
|
|
|
|
.wtp-action-btn {
|
|
padding: 12px 20px;
|
|
font-size: 1em;
|
|
}
|
|
|
|
.wtp-form-container {
|
|
padding: 20px;
|
|
margin: 20px auto;
|
|
}
|
|
|
|
.wtp-tab-nav {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.wtp-tab-nav button {
|
|
margin-bottom: 5px;
|
|
}
|
|
|
|
/* Anti-overlap for a hypothetical bot-widget */
|
|
.bot-widget {
|
|
bottom: 100px !important; /* Adjust if a chat widget or similar is at the bottom */
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
width: calc(100% - 40px); /* Example width */
|
|
max-width: 300px;
|
|
}
|
|
}
|
|
|
|
/* General layout adjustments to match the image structure */
|
|
.wtp-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 20px 40px;
|
|
background-color: transparent; /* Or a subtle dark background */
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
|
|
}
|
|
|
|
.wtp-logo {
|
|
font-size: 1.5em;
|
|
font-weight: 700;
|
|
color: var(--wtp-text-light);
|
|
}
|
|
|
|
.wtp-nav-link {
|
|
color: var(--wtp-text-muted);
|
|
margin-left: 25px;
|
|
font-size: 0.95em;
|
|
}
|
|
|
|
.wtp-nav-link:hover {
|
|
color: var(--wtp-primary);
|
|
}
|
|
|
|
.wtp-main-content {
|
|
padding: 40px;
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.wtp-grid-2-col {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 20px;
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.wtp-header {
|
|
padding: 15px 20px;
|
|
}
|
|
.wtp-logo {
|
|
font-size: 1.2em;
|
|
}
|
|
.wtp-nav-link {
|
|
margin-left: 15px;
|
|
}
|
|
.wtp-main-content {
|
|
padding: 20px;
|
|
}
|
|
.wtp-grid-2-col {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
</style>
|
|
<!-- END-DOCTRINE-201 -->
|
|
</head><body>
|
|
|
|
<nav><div class="logo">WEVAL<span>Products</span></div><a href="/products/" style="color:var(--sv);text-decoration:none;font-size:.82rem">← Catalogue</a></nav>
|
|
|
|
<div class="main">
|
|
<h1>Créez votre compte</h1>
|
|
<p class="sub">Accédez à tous les produits WEVAL avec une seule clé API</p>
|
|
|
|
<div class="tabs">
|
|
<div class="tab active" onclick="showTab('signup')"> Inscription</div>
|
|
<div class="tab" onclick="showTab('waitlist')"> Waitlist</div>
|
|
<div class="tab" onclick="showTab('status')"> Statut produits</div></div>
|
|
|
|
<!-- SIGNUP -->
|
|
<div class="panel active" id="panel-signup">
|
|
<div class="form-box">
|
|
<div class="fr">
|
|
<div class="fg"><label>Prénom & Nom</label><input type="text" id="s-name" placeholder="ex: Yacine Mahboub"></div>
|
|
<div class="fg"><label>Email professionnel</label><input type="email" id="s-email" placeholder="vous@entreprise.com"></div></div>
|
|
<div class="fr">
|
|
<div class="fg"><label>Entreprise</label><input type="text" id="s-company" placeholder="ex: Groupe OCP"></div>
|
|
<div class="fg"><label>Produit principal</label>
|
|
<select id="s-product"><option value="all">Tous les produits</option><option value="deliverscore">DeliverScore</option><option value="medreach">MedReach API</option><option value="gpu">WEVIA Inference</option><option value="content">AI Content Factory</option><option value="proposalai">ProposalAI</option><option value="blueprintai">BlueprintAI</option></select></div></div>
|
|
<button class="btn btn-g" onclick="signup()">Créer mon compte + API key →</button></div>
|
|
<div class="result" id="signup-result">
|
|
<h3>Compte créé !</h3>
|
|
<p style="font-size:.85rem;color:var(--sv);margin-bottom:1rem">Votre clé API universelle :</p>
|
|
<div class="key-box"><span id="api-key-display"></span><button onclick="copyKey()">Copier</button></div>
|
|
<div class="endpoints" id="endpoints-display"></div></div></div>
|
|
|
|
<!-- WAITLIST -->
|
|
<div class="panel" id="panel-waitlist">
|
|
<div class="form-box">
|
|
<div class="fr">
|
|
<div class="fg"><label>Prénom & Nom</label><input type="text" id="w-name" placeholder="ex: Yacine Mahboub"></div>
|
|
<div class="fg"><label>Email</label><input type="email" id="w-email" placeholder="vous@entreprise.com"></div></div>
|
|
<div class="fg"><label>Produit souhaité</label>
|
|
<select id="w-product"><option value="">— Choisir —</option><option value="LeadForge">LeadForge — B2B Lead Intelligence</option><option value="FormBuilder">FormBuilder IA</option><option value="WEVIA White-Label">WEVIA White-Label</option><option value="MailWarm">MailWarm</option><option value="Sentinel Monitor">Sentinel Monitor</option><option value="OutreachAI">OutreachAI</option><option value="Partner Program">Partner Program</option><option value="StoreForge">StoreForge E-commerce</option></select></div>
|
|
<div class="fg"><label>Votre besoin (optionnel)</label><textarea id="w-msg" rows="3" placeholder="Décrivez brièvement ce que vous cherchez..."></textarea></div>
|
|
<button class="btn btn-w" onclick="joinWaitlist()">Rejoindre la waitlist →</button></div>
|
|
<div class="result" id="waitlist-result" style="border-color:rgba(124,92,252,.2);background:rgba(124,92,252,.05)">
|
|
<h3 style="color:var(--p)">Inscrit !</h3>
|
|
<p id="wl-msg" style="font-size:.85rem;color:var(--sv)"></p></div></div>
|
|
|
|
<!-- STATUS -->
|
|
<div class="panel" id="panel-status">
|
|
<div class="products-status">
|
|
<div class="ps-item"><div class="ps-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="18" y1="20" x2="18" y2="10"/><line x1="12" y1="20" x2="12" y2="4"/><line x1="6" y1="20" x2="6" y2="14"/></svg></div><div class="ps-name">DeliverScore</div><span class="ps-badge b-live">LIVE</span></div>
|
|
<div class="ps-item"><div class="ps-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><div class="ps-name">MedReach API</div><span class="ps-badge b-live">LIVE</span></div>
|
|
<div class="ps-item"><div class="ps-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2a7 7 0 017 7c0 3-2 5-4 6v1H9v-1c-2-1-4-3-4-6a7 7 0 017-7z"/><line x1="9" y1="18" x2="15" y2="18"/></svg></div><div class="ps-name">WEVIA Inference</div><span class="ps-badge b-live">LIVE</span></div>
|
|
<div class="ps-item"><div class="ps-icon">✍</div><div class="ps-name">AI Content Factory</div><span class="ps-badge b-live">LIVE</span></div>
|
|
<div class="ps-item"><div class="ps-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><div class="ps-name">ProposalAI</div><span class="ps-badge b-live">LIVE</span></div>
|
|
<div class="ps-item"><div class="ps-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><div class="ps-name">BlueprintAI</div><span class="ps-badge b-live">LIVE</span></div>
|
|
<div class="ps-item"><div class="ps-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><div class="ps-name">LeadForge</div><span class="ps-badge b-live">LIVE</span></div>
|
|
<div class="ps-item"><div class="ps-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><div class="ps-name">FormBuilder IA</div><span class="ps-badge b-live">LIVE</span></div>
|
|
<div class="ps-item"><div class="ps-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2a7 7 0 017 7c0 3-2 5-4 6v1H9v-1c-2-1-4-3-4-6a7 7 0 017-7z"/><line x1="9" y1="18" x2="15" y2="18"/></svg></div><div class="ps-name">WEVIA White-Label</div><span class="ps-badge b-live">LIVE</span></div>
|
|
<div class="ps-item"><div class="ps-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="4" width="20" height="16" rx="2"/><polyline points="22,6 12,13 2,6"/></svg></div><div class="ps-name">MailWarm</div><span class="ps-badge b-live">LIVE</span></div>
|
|
<div class="ps-item"><div class="ps-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><div class="ps-name">Sentinel Monitor</div><span class="ps-badge b-live">LIVE</span></div>
|
|
<div class="ps-item"><div class="ps-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><div class="ps-name">OutreachAI</div><span class="ps-badge b-live">LIVE</span></div>
|
|
<div class="ps-item"><div class="ps-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><div class="ps-name">Partner Program</div><span class="ps-badge b-live">LIVE</span></div>
|
|
<div class="ps-item"><div class="ps-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="9" cy="21" r="1"/><circle cx="20" cy="21" r="1"/><path d="M1 1h4l2.68 13.39a2 2 0 002 1.61h9.72a2 2 0 002-1.61L23 6H6"/></svg></div><div class="ps-name">StoreForge</div><span class="ps-badge b-live">LIVE</span></div></div></div></div>
|
|
|
|
<div class="toast" id="toast"></div>
|
|
|
|
<script>
|
|
const API = '/api/products/auth.php';
|
|
|
|
function showTab(t) {
|
|
document.querySelectorAll('.tab').forEach((el,i) => el.classList.toggle('active', el.textContent.includes(t==='signup'?'Inscription':t==='waitlist'?'Waitlist':'Statut')));
|
|
document.querySelectorAll('.panel').forEach(p => p.classList.remove('active'));
|
|
document.getElementById('panel-'+t).classList.add('active');
|
|
}
|
|
|
|
function toast(m){const t=document.getElementById('toast');t.textContent=m;t.style.display='block';setTimeout(()=>t.style.display='none',3000)}
|
|
|
|
async function signup() {
|
|
const name=document.getElementById('s-name').value.trim();
|
|
const email=document.getElementById('s-email').value.trim();
|
|
const company=document.getElementById('s-company').value.trim();
|
|
const product=document.getElementById('s-product').value;
|
|
if(!name||!email){toast(' Nom et email requis');return}
|
|
|
|
try {
|
|
const r = await fetch(API, {method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({name,email,company,product})});
|
|
const d = await r.json();
|
|
if(d.error){toast(' '+d.error);return}
|
|
|
|
document.getElementById('api-key-display').textContent = d.api_key;
|
|
let eps = '<strong>Vos endpoints :</strong><br>';
|
|
if(d.endpoints){Object.entries(d.endpoints).forEach(([k,v])=>{eps+=`<code>${k}</code> → ${v}<br>`})}
|
|
if(d.limits){eps+='<br><strong>Limites (free tier) :</strong><br>';Object.entries(d.limits).forEach(([k,v])=>{eps+=`<code>${k}</code> → ${v}<br>`})}
|
|
document.getElementById('endpoints-display').innerHTML = eps;
|
|
document.getElementById('signup-result').style.display = 'block';
|
|
toast(' Compte créé !');
|
|
} catch(e) {
|
|
// Fallback local
|
|
const key = 'wv_' + Math.random().toString(36).substring(2,18);
|
|
document.getElementById('api-key-display').textContent = key;
|
|
document.getElementById('endpoints-display').innerHTML = `
|
|
<strong>Vos endpoints :</strong><br>
|
|
<code>DeliverScore</code> → /api/deliverscore/scan.php?domain=DOMAIN&api_key=${key}<br>
|
|
<code>MedReach</code> → /api/medreach/search.php?api_key=${key}<br>
|
|
<code>GPU</code> → /api/gpu/chat.php (X-API-Key: ${key})<br>
|
|
<code>Content</code> → /api/content/generate.php (X-API-Key: ${key})<br>
|
|
<br><strong>Apps web (accès libre) :</strong><br>
|
|
<code>ProposalAI</code> → <a href="/products/proposalai.html" style="color:var(--a)">/products/proposalai.html</a><br>
|
|
<code>BlueprintAI</code> → <a href="/products/blueprintai.html" style="color:var(--a)">/products/blueprintai.html</a><br>
|
|
`;
|
|
document.getElementById('signup-result').style.display = 'block';
|
|
toast(' Compte créé (mode local)');
|
|
}
|
|
}
|
|
|
|
async function joinWaitlist() {
|
|
const name=document.getElementById('w-name').value.trim();
|
|
const email=document.getElementById('w-email').value.trim();
|
|
const product=document.getElementById('w-product').value;
|
|
const message=document.getElementById('w-msg').value.trim();
|
|
if(!email||!product){toast(' Email et produit requis');return}
|
|
|
|
try {
|
|
const r = await fetch(API+'?action=waitlist',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({name,email,product,message})});
|
|
const d = await r.json();
|
|
document.getElementById('wl-msg').textContent = d.message || `Inscrit pour ${product}. On vous contacte sous 24h.`;
|
|
document.getElementById('waitlist-result').style.display = 'block';
|
|
toast(' Inscrit !');
|
|
} catch(e) {
|
|
document.getElementById('wl-msg').textContent = `Inscrit pour ${product}. On vous contacte sous 24h.`;
|
|
document.getElementById('waitlist-result').style.display = 'block';
|
|
toast(' Inscrit !');
|
|
}
|
|
}
|
|
|
|
function copyKey(){navigator.clipboard.writeText(document.getElementById('api-key-display').textContent);toast(' Clé copiée')}
|
|
</script></body></html>
|
|
<!-- WEVAL Self-Service Inject -->
|
|
<script>
|
|
if(window===window.top){
|
|
// Replace all contact mailto links with signup portal
|
|
document.querySelectorAll('a[href*="mailto:"]').forEach(a => {
|
|
if(a.classList.contains('btn-p') || a.classList.contains('btn-f') || a.classList.contains('btn-n') || a.classList.contains('btn-nav') || a.classList.contains('btn-primary') || a.classList.contains('btn-price-fill') || a.textContent.includes('Commencer') || a.textContent.includes('Commander') || a.textContent.includes('Essayer') || a.textContent.includes('Souscrire') || a.textContent.includes('Créer') || a.textContent.includes('Obtenir') || a.textContent.includes('Démarrer') || a.textContent.includes('Rejoindre')) {
|
|
a.href = '/products/workspace.html';
|
|
a.removeAttribute('target');
|
|
}
|
|
});
|
|
// Add floating CTA
|
|
const bar = document.createElement('div');
|
|
bar.innerHTML = '<div style="position:fixed;bottom:0;left:0;right:0;z-index:999;background:rgba(5,8,15,0.95);backdrop-filter:blur(10px);border-top:1px solid rgba(0,201,167,0.15);padding:0.6rem 4%;display:flex;justify-content:space-between;align-items:center"><div style="font-size:0.82rem;color:#7a8ba5"><strong style="color:#edf2f7">WEVAL Products</strong> · <span style="color:#00c9a7">Self-service</span> · Inscription en 30 secondes</div><a href="/products/workspace.html" style="background:#00c9a7;color:#05080f;padding:0.5rem 1.2rem;border-radius:6px;font-weight:700;font-size:0.82rem;text-decoration:none">Créer mon compte gratuit →</a></div>';
|
|
if(window.self===window.top){document.body.appendChild(bar);}
|
|
document.body.style.paddingBottom = '52px';
|
|
}
|
|
</script>
|