PageSourceSearch

https://www.petit-fernand.es/103.8b1a2cb5ebe0c1c8d816.js

js petit-fernand.es collected 2026-09-26 06:13:32 UTC 11,640 bytes, 11 lines download raw bytes

1(window.webpackJsonp=window.webpackJsonp||[]).push([[103],{"0Yh+":function(e,n,t){"use strict"
2var a=t("JPst"),r=t.n(a)()((function(e){return e[1]}))
3r.push([e.i,"/*\n * Habillage du bouton Apple Pay express.\n *\n * ⚠️ Le bouton n'est PAS stylable comme un élément ordinaire. Le SDK Adyen rend\n * `<apple-pay-button>`, un custom element natif d'Apple dont le contenu vit dans\n * un shadow DOM : aucun sélecteur descendant ne l'atteint. Sa géométrie se règle\n * uniquement par les propriétés `--apple-pay-button-*`.\n *\n * ⚠️ Ces propriétés sont héritées, MAIS les déclarer sur le conteneur ne suffit\n * pas : `@adyen/adyen-web/styles/adyen.css` les pose sur l'élément\n * `apple-pay-button` LUI-MÊME, et une déclaration sur l'élément bat toujours\n * une valeur héritée d'un ancêtre. Détail et conséquences sur `.buttonContainer`\n * ci-dessous.\n *\n * Le libellé et la couleur du bouton ne relèvent pas du CSS du tout : ils\n * viennent des props `buttonType` / `buttonColor` passées au SDK, dans le talon.\n * Apple rend le texte lui-même, traduit d'après le `locale` du checkout.\n *\n * Valeurs de la maquette du 2026-08-06 (Alison).\n */\n\n.expressApplePay-root-6Sp {\n\n    display: flex;\n\n    width: 100%;\n\n    flex-direction: column;\n\n    align-items: center;\n\n    gap: 0.75rem;\n\n    margin-bottom: 20px;\n}\n\n/* Variant mini-panier : le bloc s'insère entre le champ code promo et le CTA\n   « FINALISER MA COMMANDE », dans la zone collante du tiroir. Marge basse\n   réduite — l'espacement vertical y est plus serré qu'à l'étape 1 du checkout. */\n.expressApplePay-root_cart-AVI {\n\n    display: flex;\n\n    width: 100%;\n\n    flex-direction: column;\n\n    align-items: center;\n\n    gap: 0.75rem;\n\n    margin-bottom: 12px;\n}\n\n/*\n * Paddings en pixels bruts : les valeurs de la maquette (7px / 9px) ne\n * correspondent à aucun cran de l'échelle Tailwind. Ils s'ajoutent au `gap-3`\n * du conteneur — c'est bien l'écart mesuré sur le rendu réel.\n */\n.expressApplePay-title-dF6 {\n\n    text-align: center;\n\n    font-size: 0.875rem;\n\n    font-weight: 400;\n\n    padding-top: 7px;\n    padding-bottom: 9px;\n}\n\n/*\n * ⚠️ `--apple-pay-button-height` et `--apple-pay-button-border-radius` posées\n * ici ne gouvernent le bouton que tant que\n * `@adyen/adyen-web/styles/adyen.css` est ABSENT du document. Cette feuille\n * déclare, sur l'élément lui-même :\n *\n *     apple-pay-button {\n *         --apple-pay-button-width: 100%;\n *         --apple-pay-button-height: 48px;\n *         --apple-pay-button-border-radius: 4px;\n *     }\n *\n * Une custom property déclarée sur l'élément bat toujours une valeur héritée\n * d'un ancêtre, quelle que soit la spécificité de la règle qui la pose sur cet\n * ancêtre : les 50px et les 8px ci-dessous sont donc INERTES dès que cette\n * feuille est chargée. Elle l'est par 7 moyens de paiement du checkout (Adyen,\n * ApplePay, GooglePay, Ideal, AdyenSofort, BancontactMobile,\n * KlarnaPayOverTime) — la géométrie dépend donc de l'historique de navigation\n * de l'onglet.\n *\n * Le variant mini-panier s'en affranchit plus bas\n * (`.root_cart .buttonContainer apple-pay-button`). Ce bloc-ci est conservé\n * tel quel : le modifier changerait le rendu du checkout, en production, hors\n * périmètre. Un ticket séparé traitera l'uniformisation des deux variants.\n */\n.expressApplePay-buttonContainer--3o {\n\n    width: 100%;\n\n    --apple-pay-button-width: 100%;\n    --apple-pay-button-height: 50px;\n    --apple-pay-button-border-radius: 8px;\n    --apple-pay-button-padding: 8px 16px;\n    /*\n     * Indispensable pour que la hauteur ci-dessus soit la hauteur FINALE. En\n     * `content-box` (le défaut), le padding vertical s'ajouterait : le bouton\n     * ferait 66px et dépasserait le plafond de 64px admis par Apple.\n     */\n    --apple-pay-button-box-sizing: border-box;\n}\n\n/*\n * Mini-panier UNIQUEMENT : impose la géométrie du bouton en visant la MÊME\n * cible qu'`adyen.css` — l'élément — avec une spécificité de 0,2,1 contre\n * 0,0,1. C'est la seule façon de gagner : une déclaration sur `.buttonContainer`\n * reste une valeur héritée, donc perdante par nature (cf. le bloc ci-dessus).\n *\n * Sans cette règle, le bouton du tiroir mesurait 50px / 8px quand le tiroir\n * était ouvert sans être passé par le tunnel, et 48px / 4px après un\n * aller-retour au checkout : 2px morts sous le bouton — absorbés par accident\n * par le `min-height: 50px` ci-dessous — et un skeleton arrondi à 8px placé\n * devant un bouton arrondi à 4px.\n *\n * ⚠️ Volontairement NON appliqué à `.root` (c
3heckout) : ce fichier est PARTAGÉ\n * avec l'étape 1, en production, dont le rendu ne doit pas changer. Le checkout\n * reste donc en 48px / 4px dès qu'`adyen.css` est chargé.\n */\n.expressApplePay-root_cart-AVI .expressApplePay-buttonContainer--3o apple-pay-button {\n    --apple-pay-button-height: 50px;\n    --apple-pay-button-border-radius: 8px;\n}\n\n/*\n * Mini-panier UNIQUEMENT : réserve la hauteur finale du bouton (50px, cf. la\n * règle ci-dessus) dès la phase d'initialisation du SDK — avant\n * qu'`apple-pay-button` ne soit monté dans ce conteneur. Sans cette règle, le\n * CTA « FINALISER MA COMMANDE » descend une seconde fois quand le bouton\n * apparaît.\n *\n * Scopée à `.root_cart .buttonContainer` et non à `.buttonContainer` seul :\n * ce fichier est PARTAGÉ avec l'étape 1 du checkout, en production, dont le\n * rendu ne doit pas changer.\n */\n.expressApplePay-root_cart-AVI .expressApplePay-buttonContainer--3o {\n    min-height: 50px;\n}\n\n/*\n * Mini-panier UNIQUEMENT : tant que le conteneur est vide (SDK Adyen en cours\n * d'initialisation, avant que `<apple-pay-button>` n'y soit monté), habille-le\n * comme le skeleton du fallback `Suspense`\n * (`miniCartExpressApplePay.module.css` `.skeletonButton`) au lieu de laisser\n * un blanc de 50px. `:empty` s'annule tout seul dès qu'Adyen monte le bouton\n * — aucun état à gérer côté JS.\n *\n * Les `@keyframes` sont scopées par module CSS : impossible de réutiliser\n * celles du portail depuis ce fichier, redéclarées ici sous un nom propre.\n */\n.expressApplePay-root_cart-AVI .expressApplePay-buttonContainer--3o:empty {\n    border-radius: 8px;\n    background-color: #e9ecef;\n    animation: expressApplePay-express-apple-pay-button-skeleton-pulse-LdV 1.6s ease-in-out infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n    .expressApplePay-root_cart-AVI .expressApplePay-buttonContainer--3o:empty {\n        animation: none;\n    }\n}\n\n@keyframes expressApplePay-express-apple-pay-button-skeleton-pulse-LdV {\n    0%,\n    100% {\n        opacity: 1;\n    }\n\n    50% {\n        opacity: 0.55;\n    }\n}\n\n.expressApplePay-loading-V9C {\n\n    font-size: 0.75rem;\n\n    --tw-text-opacity: 1;\n\n    color: rgba(107, 114, 128, var(--tw-text-opacity));\n}\n\n/*\n * Mini-panier UNIQUEMENT : même message que `.loading`, mais réservé aux\n * lecteurs d'écran (cf. `expressApplePay.js`, bloc `role=\"status\"`). Le variant\n * tiroir n'affiche pas `.loading` — pour ne pas décaler le CTA — et son\n * skeleton porte `aria-hidden` : sans ce nœud, plus rien n'annonçait\n * l'arrivée d'un moyen de paiement.\n *\n * `position: absolute` : le nœud ne participe pas au flux, il n'ajoute donc\n * aucun pixel au gabarit calé par le skeleton du tiroir.\n *\n * Propriétés explicites plutôt que la classe utilitaire `sr-only` : elle n'est\n * employée nulle part dans le projet, rien ne garantit qu'elle survive à la\n * purge Tailwind — même parti pris que `customizerSkeleton.module.css:23`.\n */\n.expressApplePay-loadingStatus-anv {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    padding: 0;\n    margin: -1px;\n    overflow: hidden;\n    clip: rect(0, 0, 0, 0);\n    white-space: nowrap;\n    border-width: 0;\n}\n\n/*\n * Séparateur « OU » : trait de part et d'autre du mot.\n *\n * Les majuscules viennent du CSS et non de la traduction : la clé i18n porte\n * « ou » en minuscules, et chaque locale garde ainsi sa casse naturelle.\n */\n.expressApplePay-separator-Hkc {\n\n    display: flex;\n\n    width: 100%;\n\n    align-items: center;\n\n    gap: 0.75rem;\n\n    font-size: 0.75rem;\n\n    text-transform: uppercase;\n    color: #336a79;\n}\n\n/*\n * Mini-panier UNIQUEMENT : hauteur du séparateur rendue déterministe.\n *\n * `text-xs` n'émet QUE `font-size` — le preset venia déclare ses tailles en\n * chaînes nues (`@magento/pwa-theme-venia/tailwind.preset.js:93`), et\n * Tailwind 2 ne joint un `line-height` qu'aux entrées écrites sous forme de\n * tuple. La hauteur de `.separator`, conteneur flex dont la seule boîte de\n * ligne est ce texte, valait donc `12px × line-height hérité` : 18px ou 12px\n * selon l'ordre d'injection CSS.\n *\n * 
3Le skeleton du tiroir réserve 16px (`miniCartExpressApplePay.module.css`,\n * `.skeletonSeparator`) : sans valeur explicite il restait 2 à 4px de\n * résiduel entre la phase 1 et la phase 2, donc un dernier sursaut du CTA.\n * ⚠️ Les deux valeurs doivent rester rigoureusement identiques.\n *\n * ⚠️ Scopé à `.root_cart` : `.separator` est partagé avec le checkout, une\n * règle globale y changerait un rendu de production.\n */\n.expressApplePay-root_cart-AVI .expressApplePay-separator-Hkc {\n    line-height: 16px;\n}\n\n.expressApplePay-separator-Hkc::before, .expressApplePay-separator-Hkc::after {\n\n    flex: 1 1 0%;\n\n    border-top-width: 1px;\n\n    --tw-border-opacity: 1;\n\n    border-color: rgba(209, 213, 219, var(--tw-border-opacity));\n    content: '';\n}\n",""]),r.locals={root:"expressApplePay-root-6Sp",root_cart:"expressApplePay-root_cart-AVI",title:"expressApplePay-title-dF6",buttonContainer:"expressApplePay-buttonContainer--3o","express-apple-pay-button-skeleton-pulse":"expressApplePay-express-apple-pay-button-skeleton-pulse-LdV",loading:"expressApplePay-loading-V9C",loadingStatus:"expressApplePay-loadingStatus-anv",separator:"expressApplePay-separator-Hkc"},n.a=r},YX0H:function(e,n,t){"use strict"
4var a=t("q1tI"),r=t.n(a),s=t("kriW"),o=t("PFgK"),p=t("40zx"),l=t("LboF"),i=t.n(l),u=t("0Yh+"),d={injectType:"singletonStyleTag",insert:"head",singleton:!0},c=(i()(u.a,d),u.a.locals||{})
5n.a=function ExpressApplePay(e){var n=e.entryPoint,t=void 0===n?o.c:n,l=e.isMiniCartOpen,i=e.onButtonMounted,u=e.onButtonClicked,d=e.onOrderConfirmed,m=Object(a.useRef)(null),x=Object(p.a)({containerRef:m,entryPoint:t,isMiniCartOpen:l,onButtonMounted:i,onButtonClicked:u,onOrderConfirmed:d}),y=x.shouldRender,b=x.isLoading
6if(!y)return null
7var g=t===o.b
8return r.a.createElement("div",{className:g?c.root_cart:c.root},!g&&r.a.createElement("span",{className:c.title},r.a.createElement(s.a,{id:"checkoutPage.expressPayment.title",defaultMessage:"Paiement express"})),r.a.createElement("div",{ref:m,className:c.buttonContainer}),b&&!g&&r.a.createElement("span",{className:c.loading},r.a.createElement(s.a,{id:"checkoutPage.expressPayment.loading",defaultMessage:"Chargement du paiement express…"})),b&&g&&r.a.createElement("span",{role:"status",className:c.loadingStatus},r.a.createElement(s.a,{id:"checkoutPage.expressPayment.loading",defaultMessage:"Chargement du paiement express…"})),r.a.createElement("span",{className:c.separator},r.a.createElement(s.a,{id:"checkoutPage.expressPayment.separator",defaultMessage:"ou"})))}},duJZ:function(e,n,t){"use strict"
9t.r(n)
10var a=t("YX0H")
11t.d(n,"default",(function(){return a.a}))}}])

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.