/* ZS-SCELLES-REGISTRE-V1 · 5 septembre 2026 · session PAGES-2 · ligne L119 ========================================================================= POURQUOI · le script de /scelles/ a ete ecrit AVANT L26 · il peint les empreintes, les titres et les echeances, et RIEN de ce que /api/scelles sert depuis · ni la cote, ni la source, ni l hypothese, ni l arene, ni le taux attendu, ni les mal formes, ni les manquees par silence, ni le temoin de persistance, ni le formulaire de contestation. Les points 4 et 6 de la section 6 de l ŒUVRE I etaient tenus A L API et absents DE LA PAGE. ------------------------------------------------------------------------- ⛔ CE MODULE N ECRIT AUCUN NOMBRE. Pas un seuil, pas un compte, pas un taux, pas un libelle de cote · tout se lit en direct sur /api/scelles. Un chiffre recopie dans une page est un chiffre qui divergera, et le jour ou il divergera personne ne le saura. ⛔ IL NE PEINT QUE CE QUE L API A SERVI · un champ absent ne fabrique pas une ligne. La ou l API rend null, la page se tait, elle n invente pas un zero · un zero rendu par une absence est indiscernable d un zero vrai (constante 5 ter). ⛔ LE PLANCHER DE SEIZE PIXELS TIENT ICI AUSSI · les seules choses servies sous seize sont des etiquettes de rang L, trois mots au plus, sans verbe et sans ponctuation de phrase. ⛔ AUCUN text-transform:uppercase · toute classe qui met en capitales renverse un jour la marque z/S (constante 16). Marche arriere · retirer la balise ZS-SCELLES-REGISTRE-V1 du codeinjection_head de /scelles/ · les conteneurs restent vides et muets. z/S SYSTEMS · HYPOTHESIS · PROPHECY · NUMBER ========================================================================= */ (function () { 'use strict'; var API = 'https://zoesagan-oracle-v2.vercel.app'; var R = document.documentElement; if (R.getAttribute('data-zs-scelles-registre')) return; R.setAttribute('data-zs-scelles-registre', 'v1'); var CSS = [ '#zscl-regle{margin:0 auto;padding:0}', '#zscl-regle .zsr-bloc{margin:0 0 34px}', '#zscl-regle .zsr-k{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:16px;', ' letter-spacing:.18em;line-height:1.5;color:#FFD480;-webkit-text-fill-color:#FFD480;', ' margin:0 0 12px;text-transform:none;font-style:normal}', '#zscl-regle .zsr-p{font-family:"Newsreader",Georgia,serif;font-size:17px;line-height:1.62;', ' color:#E8DCCB;-webkit-text-fill-color:#E8DCCB;margin:0 0 12px;max-width:62ch;font-style:normal}', '#zscl-regle .zsr-cotes,#zscl-regle .zsr-dom{display:grid;gap:10px;margin:0 0 8px;', ' grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr))}', '#zscl-regle .zsr-c,#zscl-regle .zsr-d{border:1px solid rgba(255,212,128,.26);border-radius:10px;', ' padding:13px 15px;background:rgba(255,245,230,.025)}', '#zscl-regle .zsr-c b,#zscl-regle .zsr-d b{display:block;font-family:"JetBrains Mono",ui-monospace,monospace;', ' font-size:16px;letter-spacing:.12em;color:#B8E0FF;-webkit-text-fill-color:#B8E0FF;font-weight:400;margin:0 0 6px}', '#zscl-regle .zsr-c span,#zscl-regle .zsr-d span{display:block;font-family:"Newsreader",Georgia,serif;', ' font-size:17px;line-height:1.5;color:#FFF5E6;-webkit-text-fill-color:#FFF5E6}', '#zscl-regle .zsr-cadre{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;margin:0 0 12px}', '#zscl-regle table{border-collapse:collapse;width:100%;min-width:320px;', ' font-family:"JetBrains Mono",ui-monospace,monospace}', '#zscl-regle th,#zscl-regle td{border-bottom:1px solid rgba(255,212,128,.2);padding:9px 14px 9px 0;', ' text-align:left;vertical-align:top;font-size:16px;line-height:1.5;color:#DCD0C4;-webkit-text-fill-color:#DCD0C4}', '#zscl-regle th{color:#B8E0FF;-webkit-text-fill-color:#B8E0FF;font-weight:400}', '#zscl-regle td.n{color:#FFD480;-webkit-text-fill-color:#FFD480;font-variant-numeric:tabular-nums}', '#zscl-regle .zsr-fiche{border:1px solid rgba(255,212,128,.3);border-radius:12px;padding:18px 18px 14px;', ' margin:0 0 14px;background:rgba(255,245,230,.025)}', '#zscl-regle .zsr-fiche h3{font-family:"Fraunces",Georgia,serif;font-size:clamp(21px,4vw,28px);', ' font-weight:600;line-height:1.16;color:#FFF5E6;-webkit-text-fill-color:#FFF5E6;margin:0 0 10px}', '#zscl-regle .zsr-l{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:16px;letter-spacing:.1em;', ' color:#FF1F8B;-webkit-text-fill-color:#FF1F8B;margin:0 0 8px;text-transform:none}', '#zscl-regle .zsr-champ{margin:0 0 8px;font-family:"Newsreader",Georgia,serif;font-size:17px;line-height:1.55;', ' color:#DCD0C4;-webkit-text-fill-color:#DCD0C4}', '#zscl-regle .zsr-champ b{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:16px;', ' letter-spacing:.1em;color:#B8E0FF;-webkit-text-fill-color:#B8E0FF;font-weight:400}', '#zscl-regle a{color:#FFD480;-webkit-text-fill-color:#FFD480}', '#zscl-regle form{border:1px solid rgba(184,224,255,.34);border-radius:12px;padding:18px;', ' background:rgba(184,224,255,.03);max-width:640px}', '#zscl-regle label{display:block;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:16px;', ' letter-spacing:.1em;color:#B8E0FF;-webkit-text-fill-color:#B8E0FF;margin:0 0 6px;text-transform:none}', '#zscl-regle input,#zscl-regle textarea{display:block;width:100%;box-sizing:border-box;margin:0 0 14px;', ' padding:11px 12px;font-family:"Newsreader",Georgia,serif;font-size:17px;line-height:1.5;', ' color:#FFF5E6;-webkit-text-fill-color:#FFF5E6;background:rgba(5,0,16,.6);', ' border:1px solid rgba(255,245,230,.22);border-radius:6px}', '#zscl-regle textarea{min-height:96px;resize:vertical}', '#zscl-regle button{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:16px;letter-spacing:.14em;', ' color:#12000c;-webkit-text-fill-color:#12000c;background:linear-gradient(90deg,#FFD480,#FF1F8B);', ' border:0;border-radius:999px;padding:13px 24px;cursor:pointer;text-transform:none}', '#zscl-regle .zsr-reponse{margin:12px 0 0;font-family:"Newsreader",Georgia,serif;font-size:17px;', ' line-height:1.55;color:#FFF5E6;-webkit-text-fill-color:#FFF5E6}', /* ⛔ MESURÉ AU BANC DU REGARD À 356 ET 386 px · le bouton d envoi peignait quatre cent cinq pixels dans un viewport de trois cent cinquante six · il sortait de l ecran SANS que la page defile, et personne ne pouvait le ramener · c est le defaut exact que L168 venait de reparer sur .zscl, et je l avais refabrique en ajoutant ma propre section. Une addition centree se mesure a la plus petite largeur, jamais a la plus grande. */ '#zscl-regle button{max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.4}', '#zscl-regle .zsr-cadre table{min-width:0}', '@media(max-width:430px){#zscl-regle button{letter-spacing:.06em;padding:13px 14px}', ' #zscl-regle .zsr-k{letter-spacing:.1em;overflow-wrap:anywhere}', ' #zscl-regle label{overflow-wrap:anywhere}}', '#zscl-regle .zsr-muet{font-family:"Newsreader",Georgia,serif;font-size:17px;line-height:1.6;', ' color:#B9A8CC;-webkit-text-fill-color:#B9A8CC;margin:0;font-style:italic}' ].join('\n'); function poserFeuille() { if (document.getElementById('zs-scelles-registre-v1')) return; var s = document.createElement('style'); s.id = 'zs-scelles-registre-v1'; s.textContent = CSS; document.head.appendChild(s); } var E = function (s) { return String(s == null ? '' : s) .replace(/&/g, '&').replace(//g, '>') .replace(/"/g, '"'); }; var $ = function (i) { return document.getElementById(i); }; /* ⭐ UN NOMBRE SERVI SE PEINT TEL QUEL · on ne l arrondit pas, on ne le complete pas, on ne lui invente pas une unite. Absent, la ligne se tait. */ function nb(v) { return (v === null || v === undefined || v === '') ? null : String(v); } function ligne(cle, valeur) { if (valeur === null) return ''; return '
' + E(r.sous_le_seuil) + '
'; var n = $('zscl-registre'); if (n) n.innerHTML = t; var tm = r.temoin; if (tm) { var h = ''; if (tm.regle) h += '' + E(tm.regle) + '
'; h += '' + E(tm.sous_le_seuil) + '
'; if (r.temoin_note) h += '' + E(r.temoin_note) + '
'; if (tm.note) h += '' + E(tm.note) + '
'; var n2 = $('zscl-temoin'); if (n2) n2.innerHTML = h; } } /* ⛔ LA SOURCE, L HYPOTHESE ET L ARENE SONT DES CHAMPS DE SCELLE · ils ne paraissent que quand un office porte des scelles. L hypothese ne sort qu a l ouverture · avant, l API rend null, et la page le DIT au lieu de laisser un blanc qui ressemble a un oubli. */ function fiche(s) { var h = '' + rang.join(' · ') + '
'; if (s.titre) h += 'cote · ' + E(s.coteLibelle) + '
'; if (s.source) { var org = s.source.organe || s.source.nom || ''; var adr = s.source.adresse || s.source.url || s.source.lien || ''; var v = E(org); if (adr) v += (org ? ' · ' : '') + '' + E(adr) + ''; if (!org && !adr && typeof s.source === 'string') v = E(s.source); h += 'source · ' + v + '
'; } if (s.arene) h += 'arène · ' + E(s.arene) + '
'; if (s.echeance) h += 'échéance · ' + E(s.echeance) + (s.heure ? ' · ' + E(s.heure) : '') + '
'; if (s.hypothese) h += 'hypothèse · ' + E(s.hypothese) + '
'; else if (!s.ouvert) h += 'hypothèse · scellée avec le texte · elle paraît à l ouverture
'; if (s.verdict && s.verdict.verdict) { h += 'verdict · ' + E(s.verdict.verdict); if (s.verdict.lien) h += ' · la source lue'; h += '
'; } h += 'Aucun office ne porte encore de scellé. Cette page ne montrera jamais une cote, une source ou une arène qui n existent pas.
'; return; } var h = ''; if (o.taux_attendu_de_l_office !== null && o.taux_attendu_de_l_office !== undefined) { h += 'Cet office ne porte encore aucun scellé.
'; n.innerHTML = h; var f = $('zscl-contest-office'); if (f && o.id) { f.value = o.id; } } /* ⛔ LE FORMULAIRE NE PROMET RIEN · la fenetre, le refus et le motif du refus sont rendus par l API. Une page qui ecrit elle meme la regle finit par mentir le jour ou la regle change. */ function armerContestation() { var f = $('zscl-contest'); if (!f) return; f.addEventListener('submit', function (ev) { ev.preventDefault(); var rep = $('zscl-contest-reponse'); var corps = { office: ($('zscl-contest-office') || {}).value || '', n: ($('zscl-contest-n') || {}).value || '', source: ($('zscl-contest-source') || {}).value || '', motif: ($('zscl-contest-motif') || {}).value || '', qui: ($('zscl-contest-qui') || {}).value || '' }; if (rep) rep.textContent = 'Envoi en cours.'; fetch(API + '/api/scelles/contester', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(corps) }).then(function (r) { return r.json().then(function (j) { return { code: r.status, j: j }; }); }) .then(function (x) { if (!rep) return; if (x.j && x.j.message) { rep.textContent = x.j.message; return; } if (x.j && x.j.refus && x.j.refus.length) { rep.textContent = x.j.refus.join(' · '); return; } if (x.j && x.j.error) { rep.textContent = x.j.error; return; } rep.textContent = 'Le registre a répondu sans message.'; }) .catch(function () { if (rep) rep.textContent = 'Le registre ne répond pas à cette heure. Rien n a été enregistré.'; }); }); } function pret(f) { if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', f); else f(); } pret(function () { if (!$('zscl-regle')) return; poserFeuille(); armerContestation(); fetch(API + '/api/scelles', { headers: { Accept: 'application/json' } }) .then(function (r) { return r.json(); }) .then(function (d) { if (!d || d.ok !== true) throw new Error('api'); peindreCotes(d); peindreDomaines(d); peindreRegistre(d); peindreOffice(d); R.setAttribute('data-zs-scelles-registre-peint', 'oui'); }) .catch(function () { var n = $('zscl-registre'); if (n) n.innerHTML = 'Le registre ne répond pas à cette heure. La page ne montre pas de chiffre qu elle n a pas lu.
'; }); }); })();