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.