diff --git a/wtp-unified-dock.js b/wtp-unified-dock.js index 25ad44740..a3b36892c 100644 --- a/wtp-unified-dock.js +++ b/wtp-unified-dock.js @@ -17,9 +17,11 @@ // === AMBRE-V1-PUBLIC-GUARD 2026-04-21 · suppression dock sur pages publiques sans auth === // Doctrine confidentialité: WTP/IA Hub/Master/Orch/Arena/Droid/Admin/WevCode sont des pages privées // Seules les pages authentifiées doivent afficher le dock de navigation inter-modules - var _AMBRE_PUBLIC_PATHS = ['/wevia.html', '/wevia', '/', '/index.html', '/consent.html', '/mirofish.html', '/wevia-widget.html', '/wevia-widget', '/register.html', '/register', '/login', '/login.html']; + var _AMBRE_PUBLIC_PATHS = ['/wevia.html', '/wevia', '/', '/index.html', '/consent.html', '/mirofish.html', '/wevia-widget.html', '/wevia-widget', '/register.html', '/register', '/login', '/login.html', '/solution-finder.html', '/solution-finder', '/about.html', '/about', '/contact.html', '/contact', '/products.html', '/products', '/pricing.html', '/pricing', '/legal.html', '/legal', '/privacy.html', '/privacy', '/terms.html', '/terms', '/trust-center.html', '/trust-center', '/case-studies.html', '/case-studies', '/proofs/', '/proofs/index.html', '/blog.html', '/blog', '/landing.html', '/landing']; var _AMBRE_path = (location.pathname || '').toLowerCase(); - if (_AMBRE_PUBLIC_PATHS.indexOf(_AMBRE_path) !== -1) { + var _AMBRE_PUBLIC_PREFIXES = ['/products/', '/docs/', '/help/', '/blog/', '/proofs/', '/landing/', '/case/', '/legal/', '/static/', '/public/']; + var _AMBRE_is_public_prefix = _AMBRE_PUBLIC_PREFIXES.some(function(pfx){ return _AMBRE_path.indexOf(pfx) === 0; }); + if (_AMBRE_PUBLIC_PATHS.indexOf(_AMBRE_path) !== -1 || _AMBRE_is_public_prefix) { // Public page → do NOT render dock (no module nav, no providers badge) return; } @@ -38,6 +40,35 @@ // === END AMBRE-V2-IFRAME-GUARD === // WTP a sa propre sidebar + // === W324 DOCK CENTERING (top center vs top-right pour eviter overlap BR widgets) === + try { + var _w324_style = document.createElement('style'); + _w324_style.id = 'w324-dock-center'; + _w324_style.textContent = '#opus-xlinks,#wtp-udock,#v130-xnav{' + + 'position:fixed!important;' + + 'top:8px!important;' + + 'left:50%!important;' + + 'right:auto!important;' + + 'transform:translateX(-50%)!important;' + + 'z-index:9998!important;' + + 'max-width:calc(100vw - 280px)!important;' + + 'overflow-x:auto!important;' + + 'display:flex!important;' + + 'flex-wrap:nowrap!important;' + + 'gap:6px!important;' + + 'background:rgba(14,17,28,0.85)!important;' + + 'backdrop-filter:blur(12px)!important;' + + 'padding:6px 10px!important;' + + 'border-radius:24px!important;' + + 'border:1px solid rgba(99,102,241,0.25)!important;' + + 'box-shadow:0 4px 24px rgba(0,0,0,0.5)' + + '}' + + '#opus-xlinks a,#wtp-udock a,#v130-xnav a{white-space:nowrap}' + + '@media(max-width:900px){#opus-xlinks,#wtp-udock,#v130-xnav{top:auto!important;bottom:8px!important;left:8px!important;right:8px!important;transform:none!important;max-width:calc(100vw - 16px)!important}}'; + document.head.appendChild(_w324_style); + } catch(e){} + // === END W324 DOCK CENTERING === + var LINKS = [ {href:'/weval-technology-platform.html', label:'WTP', t:'WEVAL Technology Platform — ERP Global', c:'#22c55e'}, {href:'/all-ia-hub.html', label:'IA Hub', t:'All-IA Hub — 906 agents · 20126 skills', c:'#06b6d4'}, @@ -53,9 +84,14 @@ var d = document.createElement('div'); d.id = 'wtp-udock'; d.setAttribute('data-version','v1-opus-21avr'); + // DOCTRINE-210-CENTER: aligned center top, no wrap, all on 1 line d.style.cssText = [ - 'position:fixed','top:12px','right:130px','display:flex','gap:6px', - 'z-index:9998','flex-wrap:wrap','max-width:420px', + 'position:fixed','top:12px','left:50%','transform:translateX(-50%)', + 'right:auto','display:flex','gap:6px','align-items:center', + 'z-index:9998','flex-wrap:nowrap','max-width:none','white-space:nowrap', + 'background:rgba(10,10,30,0.4)','backdrop-filter:blur(10px)', + 'padding:4px 10px','border-radius:24px', + 'border:1px solid rgba(0,224,199,0.15)', 'font-family:system-ui,-apple-system,sans-serif' ].join(';'); LINKS.forEach(function(L){