diff --git a/src/public/borne/assets/css/style.css b/src/public/borne/assets/css/style.css index bd9bbc9..a8a94fe 100644 --- a/src/public/borne/assets/css/style.css +++ b/src/public/borne/assets/css/style.css @@ -2218,3 +2218,17 @@ html.dys-font { outline: 3px solid var(--color-brand-yellow-dk); outline-offset: 2px; } + +/* ============================================================ + 13. COMPATIBILITE NAVIGATEURS (Cr 1.b.3) + ============================================================ */ + +/* 'gap' sur conteneurs flex : non reconnu par d'anciens navigateurs (ex. Safari + anterieur a 14.1). La detection @supports applique un repli par marges sur les + enfants directs si la propriete n'est pas supportee (alternative documentee). */ +@supports not (gap: 1rem) { + .welcome__choices > *, + .composer-footer__row > * { + margin: var(--space-2); + } +} diff --git a/src/public/borne/assets/images/favicon.svg b/src/public/borne/assets/images/favicon.svg new file mode 100644 index 0000000..fa27a82 --- /dev/null +++ b/src/public/borne/assets/images/favicon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/public/borne/assets/js/page-payment.js b/src/public/borne/assets/js/page-payment.js index 1da259d..0f68b24 100644 --- a/src/public/borne/assets/js/page-payment.js +++ b/src/public/borne/assets/js/page-payment.js @@ -100,6 +100,29 @@ function openChevalet(onValidate, onDismiss) { const input = overlay.querySelector('#chevalet-input'); const errBox = overlay.querySelector('#chevalet-error'); + const okBtn = overlay.querySelector('#chevalet-ok'); + + // Validation en TEMPS REEL (Cr 2.b.1) : controle pendant la frappe, pas seulement + // au clic. On filtre les caracteres non numeriques, on borne a 4 chiffres, on + // reflete l'etat via aria-invalid + l'activation du bouton, et on masque l'erreur + // des que la saisie redevient valide. + const isValidTag = (v) => /^[0-9]{1,4}$/.test(v); + const syncValidity = () => { + const cleaned = (input.value || '').replace(/[^0-9]/g, '').slice(0, 4); + if (cleaned !== input.value) { + input.value = cleaned; + } + const ok = isValidTag(cleaned); + input.setAttribute('aria-invalid', ok ? 'false' : 'true'); + if (okBtn) { + okBtn.disabled = !ok; + } + if (ok) { + errBox.hidden = true; + } + }; + input.addEventListener('input', syncValidity); + syncValidity(); const teardown = () => { document.removeEventListener('keydown', esc); @@ -123,10 +146,13 @@ function openChevalet(onValidate, onDismiss) { }); overlay.querySelector('#chevalet-cancel').addEventListener('click', dismiss); - overlay.querySelector('#chevalet-ok').addEventListener('click', () => { + okBtn.addEventListener('click', () => { + // Garde finale au clic (defense en profondeur) : le bouton est deja desactive + // tant que la saisie est invalide (validation temps reel ci-dessus). const tag = (input.value || '').trim(); - if (!/^[0-9]{1,4}$/.test(tag)) { + if (!isValidTag(tag)) { errBox.hidden = false; + input.setAttribute('aria-invalid', 'true'); input.focus(); return; } diff --git a/src/public/borne/cart.html b/src/public/borne/cart.html index 221c8bb..c5d1db6 100644 --- a/src/public/borne/cart.html +++ b/src/public/borne/cart.html @@ -6,6 +6,8 @@ Wakdo - Panier + + diff --git a/src/public/borne/categories.html b/src/public/borne/categories.html index 9f5993e..70fbe4d 100644 --- a/src/public/borne/categories.html +++ b/src/public/borne/categories.html @@ -6,6 +6,8 @@ Wakdo - Categories + + diff --git a/src/public/borne/confirmation.html b/src/public/borne/confirmation.html index 834d49c..f9ff57c 100644 --- a/src/public/borne/confirmation.html +++ b/src/public/borne/confirmation.html @@ -6,6 +6,8 @@ Wakdo - Confirmation + + diff --git a/src/public/borne/index.html b/src/public/borne/index.html index b6350d1..0033a6f 100644 --- a/src/public/borne/index.html +++ b/src/public/borne/index.html @@ -10,7 +10,23 @@ Wakdo - Bienvenue + + + + diff --git a/src/public/borne/payment.html b/src/public/borne/payment.html index 1f2c5ae..927cc75 100644 --- a/src/public/borne/payment.html +++ b/src/public/borne/payment.html @@ -6,6 +6,8 @@ Wakdo - Paiement + + diff --git a/src/public/borne/product.html b/src/public/borne/product.html index 8985f28..031a82b 100644 --- a/src/public/borne/product.html +++ b/src/public/borne/product.html @@ -6,6 +6,8 @@ Wakdo - Produit + + diff --git a/src/public/borne/products.html b/src/public/borne/products.html index 71a9f23..51de3df 100644 --- a/src/public/borne/products.html +++ b/src/public/borne/products.html @@ -6,6 +6,8 @@ Wakdo - Produits + +