@dropins/storefront-checkout 1.4.0-beta2 → 2.0.0-beta2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/api/fragments.d.ts +2 -0
  2. package/api/getStoreConfig/graphql/getStoreConfig.graphql.d.ts +1 -1
  3. package/api/{subscribeEmailToNewsletter/graphql/subscribeEmailToNewsletter.graphql.d.ts → graphql/CartPaymentMethodFragment.graphql.d.ts} +4 -3
  4. package/api/index.d.ts +0 -1
  5. package/api/initialize/initialize.d.ts +3 -3
  6. package/api.js +7 -13
  7. package/chunks/ConditionalWrapper.js +1 -1
  8. package/chunks/errors.js +13 -0
  9. package/chunks/setBillingAddress.js +2 -2
  10. package/chunks/setGuestEmailOnCart.js +4 -4
  11. package/chunks/setPaymentMethod.js +2 -2
  12. package/chunks/setShippingMethods.js +2 -2
  13. package/chunks/synchronizeCheckout.js +2 -2
  14. package/chunks/values.js +3 -0
  15. package/components/ConditionalWrapper/ConditionalWrapper.d.ts +2 -2
  16. package/components/PaymentMethods/PaymentMethods.d.ts +2 -2
  17. package/components/ShippingMethods/ShippingMethods.d.ts +2 -2
  18. package/components/index.d.ts +0 -1
  19. package/containers/BillToShippingAddress/BillToShippingAddress.d.ts +3 -1
  20. package/containers/BillToShippingAddress.js +1 -1
  21. package/containers/EstimateShipping/EstimateShipping.d.ts +5 -2
  22. package/containers/EstimateShipping.js +1 -1
  23. package/containers/LoginForm/LoginForm.d.ts +3 -1
  24. package/containers/LoginForm.js +1 -1
  25. package/containers/MergedCartBanner/MergedCartBanner.d.ts +6 -3
  26. package/containers/MergedCartBanner.js +1 -1
  27. package/containers/OutOfStock/OutOfStock.d.ts +2 -1
  28. package/containers/OutOfStock.js +1 -1
  29. package/containers/PaymentMethods/PaymentMethods.d.ts +4 -18
  30. package/containers/PaymentMethods.js +1 -1
  31. package/containers/PlaceOrder/PlaceOrder.d.ts +2 -3
  32. package/containers/PlaceOrder.js +1 -1
  33. package/containers/ServerError/ServerError.d.ts +2 -1
  34. package/containers/ServerError.js +1 -1
  35. package/containers/ShippingMethods/ShippingMethods.d.ts +6 -7
  36. package/containers/ShippingMethods.js +1 -1
  37. package/containers/TermsAndConditions/TermsAndConditions.d.ts +2 -1
  38. package/containers/TermsAndConditions.js +1 -1
  39. package/containers/index.d.ts +0 -1
  40. package/data/models/index.d.ts +1 -1
  41. package/data/models/shipping-estimate.d.ts +4 -0
  42. package/data/models/store-config.d.ts +0 -1
  43. package/data/models/values.d.ts +9 -0
  44. package/data/transforms/transform-cart.d.ts +1 -1
  45. package/data/transforms/transform-shipping-methods.d.ts +1 -1
  46. package/fragments.js +16 -6
  47. package/i18n/en_US.json.d.ts +0 -3
  48. package/lib/enqueueRequest.d.ts +1 -1
  49. package/lib/events.d.ts +8 -0
  50. package/lib/index.d.ts +3 -0
  51. package/lib/preact.d.ts +1 -1
  52. package/lib/values.d.ts +17 -0
  53. package/package.json +1 -1
  54. package/render/render.d.ts +1 -1
  55. package/render.js +3 -4
  56. package/signals/ShippingEstimateSignal.d.ts +1 -1
  57. package/signals/index.d.ts +0 -4
  58. package/{api/getCart/fixtures.d.ts → tests/fixtures/cart.d.ts} +2 -2
  59. package/{api/getCustomer/fixtures.d.ts → tests/fixtures/customer.d.ts} +1 -1
  60. package/tests/fixtures/payments.d.ts +8 -0
  61. package/{api/estimateShippingMethods/fixtures.d.ts → tests/fixtures/shipping.d.ts} +1 -1
  62. package/tests/integration/utils/setup.d.ts +1 -1
  63. package/types/TitleProps.d.ts +1 -1
  64. package/__generated__/types.d.ts +0 -12644
  65. package/api/subscribeEmailToNewsletter/index.d.ts +0 -18
  66. package/api/subscribeEmailToNewsletter/subscribeEmailToNewsletter.d.ts +0 -4
  67. package/chunks/IsBillToShippingSignal.js +0 -14
  68. package/chunks/SelectedPaymentMethodSignal.js +0 -3
  69. package/chunks/SelectedShippingMethodSignal.js +0 -3
  70. package/chunks/subscription-email-statuses.js +0 -3
  71. package/components/Newsletter/Newsletter.d.ts +0 -7
  72. package/components/Newsletter/NewsletterSkeleton.d.ts +0 -4
  73. package/components/Newsletter/index.d.ts +0 -20
  74. package/containers/Newsletter/Newsletter.d.ts +0 -9
  75. package/containers/Newsletter/index.d.ts +0 -19
  76. package/containers/Newsletter.d.ts +0 -3
  77. package/containers/Newsletter.js +0 -3
  78. package/data/models/subscription-email-statuses.d.ts +0 -24
  79. package/signals/IsBillToShippingSignal.d.ts +0 -18
  80. package/signals/IsSubscribedToNewsletterSignal.d.ts +0 -18
  81. package/signals/SelectedPaymentMethodSignal.d.ts +0 -18
  82. package/signals/SelectedShippingMethodSignal.d.ts +0 -4
@@ -1,3 +1,3 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsxs as E,jsx as n}from"@dropins/tools/preact-jsx-runtime.js";import{s as J}from"../chunks/subscription-email-statuses.js";import{classes as I,VComponent as K,Slot as z}from"@dropins/tools/lib.js";import{h as Q}from"../chunks/IsBillToShippingSignal.js";import{events as L}from"@dropins/tools/event-bus.js";import{s as X}from"../chunks/setPaymentMethod.js";import{W as Y}from"../chunks/ConditionalWrapper.js";/* empty css */import{Skeleton as ee,SkeletonRow as P,IllustratedMessage as te,Icon as B,ProgressSpinner as ne,ToggleButton as re,RadioButton as oe}from"@dropins/tools/components.js";import*as M from"@dropins/tools/preact-compat.js";import{useText as R}from"@dropins/tools/i18n.js";import{s as a}from"../chunks/SelectedPaymentMethodSignal.js";import"../chunks/SelectedShippingMethodSignal.js";import"../chunks/ServerErrorSignal.js";import{useState as b,useRef as N,useCallback as A,useEffect as V,useMemo as ae}from"@dropins/tools/preact-hooks.js";import"@dropins/tools/signals.js";import"@dropins/tools/fetch-graphql.js";import"../fragments.js";import"../chunks/synchronizeCheckout.js";const ie=r=>M.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...r},M.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M17.93 14.8V18.75H5.97C4.75 18.75 3.75 17.97 3.75 17V6.5M3.75 6.5C3.75 5.53 4.74 4.75 5.97 4.75H15.94V8.25H5.97C4.75 8.25 3.75 7.47 3.75 6.5Z",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),M.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M19.35 11.64H14.04V14.81H19.35V11.64Z",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),M.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M17.9304 11.64V8.25H15.1504",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"})),ce=()=>E(ee,{"data-testid":"payment-methods-skeleton",children:[n(P,{size:"medium",variant:"heading"}),n(P,{size:"medium",variant:"empty"}),n(P,{fullWidth:!0,size:"xlarge"}),n(P,{fullWidth:!0,size:"xlarge"})]}),se=({code:r,icon:i,isLoading:t,onChange:m,selected:c,title:u,UIComponentType:h="ToggleButton"})=>{const p={busy:t,className:"checkout-payment-methods__method",label:u,name:"payment-method",value:r,onChange:()=>m(r)};return h==="ToggleButton"?n(re,{...p,icon:i?n(B,{source:i}):void 0,selected:c}):n(oe,{...p,checked:c,icon:i??void 0})},de=({className:r,title:i,isLoading:t=!1,onChange:m=()=>{},options:c,paymentMethodContent:u,UIComponentType:h,selection:p})=>{const T=R({EmptyState:"Checkout.PaymentMethods.emptyState"});return E("div",{className:I(["checkout-payment-methods",r]),"data-testid":"checkout-payment-methods",children:[i&&n(K,{className:"checkout-payment-methods__title",node:i}),!t&&c.length===0&&n(te,{"data-testid":"checkout-payment-methods-empty",icon:n(B,{source:ie}),message:n("p",{children:T.EmptyState})}),E("div",{className:I(["checkout-payment-methods__wrapper",["checkout-payment-methods__wrapper--loading",t]]),children:[t&&n(ne,{className:"checkout-payment-methods__spinner"}),n("div",{className:I(["checkout-payment-methods__methods",["checkout-payment-methods--full-width",c.length%2!==0]]),children:c==null?void 0:c.map(d=>n(se,{UIComponentType:h,code:d.code,icon:d.icon,selected:d.code===p,title:d.displayLabel??!0?d.title:"",onChange:m},d.code))}),u&&n("div",{className:"checkout-payment-methods__content",children:u})]})]})},le=Y(de,ce);function me(r){return(r.shippingAddresses??[]).length>0}function ue(r,i){return r?i.some(t=>t.code===r):!1}const He=({displayTitle:r=!0,UIComponentType:i="ToggleButton",slots:t,setOnChange:m={}})=>{var x,W,U;const[c,u]=b(!0),[h,p]=b(!1),[T,d]=b([]),[H]=b(m),f=N(!1),S=N(!1),s=t==null?void 0:t.Methods,D=a.value,Z=Q.value,$=T.filter(e=>{var o;return((o=s==null?void 0:s[e.code])==null?void 0:o.enabled)!==!1}).map(e=>{const o=(s==null?void 0:s[e.code])||{};return{...e,...o}}),O=R({Title:"Checkout.PaymentMethods.title"}),g=A(e=>{var o;S.current&&(H[e]===!1||((o=s==null?void 0:s[e])==null?void 0:o.setOnChange)===!1||X({code:e}).catch(console.error))},[s,H]),q=e=>{a.value=e,g(e)},C=A(e=>{var j;const o=!!e&&!e.isEmpty;if(u(o),!o){S.current=!1,f.current=!1,a.value=void 0,d([]);return}S.current=e.isVirtual||me(e);const y=e.availablePaymentMethods??[];if(d(y),y.length===0){f.current=!0,a.value=void 0;return}const l=(j=e.selectedPaymentMethod)==null?void 0:j.code;if(!f.current&&l){a.value=l,f.current=!0;return}if(!f.current&&!l){const k=y[0].code;a.value=k,f.current=!0,g(k);return}const v=a.peek(),_=ue(v,y);if(v&&_&&l!==v){g(v);return}if((!v||!_)&&l){a.value=l;return}if((!v||!_)&&!l){const k=y[0].code;a.value=k,g(k)}},[g]);V(()=>{const e=L.on("checkout/initialized",o=>{p(!0),C(o)},{eager:!0});return()=>{e==null||e.off()}},[C]),V(()=>{const e=L.on("checkout/updated",C,{eager:!1});return()=>{e==null||e.off()}},[C]),V(()=>{t!=null&&t.Handlers&&console.warn("The `slots.Handlers` prop is deprecated and will be removed in future versions. Use the `Methods` object instead."),m&&console.warn("The `setOnChange` prop is deprecated and will be removed in future versions. Use the `Methods` object instead.")},[]);const w=a.value?((W=(x=t==null?void 0:t.Methods)==null?void 0:x[a.value])==null?void 0:W.render)||((U=t==null?void 0:t.Handlers)==null?void 0:U[a.value]):null,F=w?n(z,{context:{cartId:J.cartId??"",replaceHTML(e){this.replaceWith(e)}},name:"PaymentMethodContent",slot:w},w):void 0,G=ae(()=>{if(r)return n(z,{name:"checkout-payment-methods-title",slot:t==null?void 0:t.Title,children:n("h2",{children:O.Title})})},[r,t==null?void 0:t.Title,O.Title]);return n(le,{UIComponentType:i,isInitialized:h,isLoading:h&&Z,isVisible:c,options:$,paymentMethodContent:F,selection:D,title:G,onChange:q})};export{He as PaymentMethods,He as default};
3
+ import{jsxs as w,jsx as n}from"@dropins/tools/preact-jsx-runtime.js";import{h as D,s as $}from"../chunks/errors.js";import{classes as E,VComponent as F,Slot as z}from"@dropins/tools/lib.js";import{events as H}from"@dropins/tools/event-bus.js";import{W as G,i as J,h as K,g as Q}from"../chunks/ConditionalWrapper.js";import{n as X,g as Y}from"../chunks/values.js";import{s as ee}from"../chunks/setPaymentMethod.js";/* empty css */import{Skeleton as te,SkeletonRow as C,IllustratedMessage as ne,Icon as N,ProgressSpinner as oe,ToggleButton as re,RadioButton as ae}from"@dropins/tools/components.js";import*as S from"@dropins/tools/preact-compat.js";import{useText as O}from"@dropins/tools/i18n.js";import{useState as _,useCallback as v,useEffect as L,useMemo as ce}from"@dropins/tools/preact-hooks.js";import"@dropins/tools/signals.js";import"@dropins/tools/fetch-graphql.js";import"../fragments.js";import"../chunks/synchronizeCheckout.js";const ie=t=>S.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},S.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M17.93 14.8V18.75H5.97C4.75 18.75 3.75 17.97 3.75 17V6.5M3.75 6.5C3.75 5.53 4.74 4.75 5.97 4.75H15.94V8.25H5.97C4.75 8.25 3.75 7.47 3.75 6.5Z",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),S.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M19.35 11.64H14.04V14.81H19.35V11.64Z",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),S.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M17.9304 11.64V8.25H15.1504",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"})),se=()=>w(te,{"data-testid":"payment-methods-skeleton",children:[n(C,{size:"medium",variant:"heading"}),n(C,{size:"medium",variant:"empty"}),n(C,{fullWidth:!0,size:"xlarge"}),n(C,{fullWidth:!0,size:"xlarge"})]}),le=({code:t,icon:o,isLoading:d,onChange:r,selected:a,title:m,UIComponentType:p="ToggleButton"})=>{const c={busy:d,className:"checkout-payment-methods__method",label:m,name:"payment-method",value:t,onChange:()=>r({code:t,title:m})};return p==="ToggleButton"?n(re,{...c,icon:o?n(N,{source:o}):void 0,selected:a}):n(ae,{...c,checked:a,icon:o??void 0})},de=({className:t,title:o,isLoading:d=!1,onChange:r=()=>{},options:a,paymentMethodContent:m,UIComponentType:p,selection:c})=>{const P=O({EmptyState:"Checkout.PaymentMethods.emptyState"});return w("div",{className:E(["checkout-payment-methods",t]),"data-testid":"checkout-payment-methods",children:[o&&n(F,{className:"checkout-payment-methods__title",node:o}),!d&&a.length===0&&n(ne,{"data-testid":"checkout-payment-methods-empty",icon:n(N,{source:ie}),message:n("p",{children:P.EmptyState})}),w("div",{className:E(["checkout-payment-methods__wrapper",["checkout-payment-methods__wrapper--loading",d]]),children:[d&&n(oe,{className:"checkout-payment-methods__spinner"}),n("div",{className:E(["checkout-payment-methods__methods",["checkout-payment-methods--full-width",a.length%2!==0]]),children:a==null?void 0:a.map(u=>n(le,{UIComponentType:p,code:u.code,icon:u.icon,selected:(c==null?void 0:c.code)===u.code,title:u.displayLabel??!0?u.title:"",onChange:r},u.code))}),m&&n("div",{className:"checkout-payment-methods__content",children:m})]})]})},me=G(de,se);function ue(t,o){return t?o.some(d=>d.code===t.code):!1}function he(t,o){return!t||!o?!1:t.code===o.code}function pe(t){return t?!!t.code&&!!t.title:!1}const Ie=({displayTitle:t=!0,active:o=!0,UIComponentType:d="ToggleButton",slots:r,autoSync:a=!0})=>{var I,b;const[m,p]=_(!1),[c,P]=_(null),[u,U]=_([]),i=r==null?void 0:r.Methods,B=D.value,j=u.filter(e=>{var s;return((s=i==null?void 0:i[e.code])==null?void 0:s.enabled)!==!1}).map(e=>{const s=(i==null?void 0:i[e.code])||{};return{...e,...s}}),V=O({Title:"Checkout.PaymentMethods.title"}),h=v(e=>{P(e),X({selectedPaymentMethod:e})},[]),y=v(async e=>{if(!(J()||K()))return;const l=i==null?void 0:i[e.code];((l==null?void 0:l.autoSync)??a)&&await ee({code:e.code}).catch(console.error)},[a,i]),A=v(async e=>{h(e),await y(e)},[h,y]),k=v(e=>{if(!e||e.isEmpty){h(null),U([]);return}const l=e.availablePaymentMethods??[];if(U(l),l.length===0){h(null);return}const g=e.selectedPaymentMethod??null,x=pe(g),f=Y("selectedPaymentMethod"),T=ue(f,l),q=he(f,g);if(f&&T&&!q){y(f);return}if((!f||!T)&&x){h(g);return}if((!f||!T)&&!x){const W=l[0];h(W),y(W)}},[h,y]);L(()=>{if(!o)return;const e=Q();if(e){p(!0),k(e);return}const s=H.on("checkout/initialized",l=>{p(!0),k(l)},{eager:!0});return()=>{s==null||s.off()}},[o,k]),L(()=>{if(!o)return;const e=H.on("checkout/updated",k,{eager:!1});return()=>{e==null||e.off()}},[o,k]);const M=c?(b=(I=r==null?void 0:r.Methods)==null?void 0:I[c.code])==null?void 0:b.render:null,R=M?n(z,{context:{cartId:$.cartId??"",replaceHTML(e){this.replaceWith(e)}},name:"PaymentMethodContent",slot:M},M):void 0,Z=ce(()=>{if(t)return n(z,{name:"checkout-payment-methods-title",slot:r==null?void 0:r.Title,children:n("h2",{children:V.Title})})},[t,r==null?void 0:r.Title,V.Title]);return n(me,{UIComponentType:d,initialized:m,isLoading:m&&B,options:j,paymentMethodContent:R,selection:c,title:Z,visible:o,onChange:A})};export{Ie as PaymentMethods,Ie as default};
@@ -1,4 +1,4 @@
1
- import { Container, SlotProps } from '../../../@adobe-commerce/elsie/src/lib';
1
+ import { Container, SlotProps } from '@dropins/tools/types/elsie/src/lib';
2
2
  import { HTMLAttributes } from 'preact/compat';
3
3
 
4
4
  export interface ContentSlotContext {
@@ -7,11 +7,10 @@ export interface ContentSlotContext {
7
7
  export interface HandlePlaceOrderContext {
8
8
  code: string;
9
9
  cartId: string;
10
- isSubscribedToNewsletter?: boolean;
11
- email?: string;
12
10
  }
13
11
  export interface PlaceOrderProps extends HTMLAttributes<HTMLDivElement> {
14
12
  disabled?: boolean;
13
+ active?: boolean;
15
14
  handleValidation?: () => boolean;
16
15
  handlePlaceOrder: (ctx: HandlePlaceOrderContext) => Promise<void>;
17
16
  slots?: {
@@ -1,3 +1,3 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsxs as I,jsx as r}from"@dropins/tools/preact-jsx-runtime.js";import{s as T}from"../chunks/subscription-email-statuses.js";import{classes as U,Slot as w}from"@dropins/tools/lib.js";import{h as N,U as R}from"../chunks/IsBillToShippingSignal.js";import{events as l}from"@dropins/tools/event-bus.js";import{W as j}from"../chunks/ConditionalWrapper.js";/* empty css */import{Skeleton as M,SkeletonRow as S,Button as W}from"@dropins/tools/components.js";import{s as _,i as B}from"../chunks/SelectedPaymentMethodSignal.js";import"../chunks/SelectedShippingMethodSignal.js";import{s as H}from"../chunks/ServerErrorSignal.js";import{useState as m,useRef as Q,useCallback as u,useEffect as d}from"@dropins/tools/preact-hooks.js";import{useText as V,Text as $}from"@dropins/tools/i18n.js";import"@dropins/tools/signals.js";import"@dropins/tools/fetch-graphql.js";const q=()=>I(M,{"data-testid":"place-order-skeleton",children:[r(S,{size:"small",variant:"empty"}),r(S,{size:"small"})]}),A=({children:c,className:s,disabled:i=!1,onClick:o})=>r("div",{className:U(["checkout-place-order",s]),children:r(W,{className:"checkout-place-order__button","data-testid":"place-order-button",disabled:i,size:"medium",type:"submit",variant:"primary",onClick:o,children:c},"placeOrder")}),D=j(A,q),ce=({disabled:c=!1,handleValidation:s,handlePlaceOrder:i,slots:o,...O})=>{const[x,y]=m(!0),[C,g]=m(!1),[v,f]=m(!1),p=Q(""),a=_.value,E=N.value,h=V({CheckoutUnexpectedError:"Checkout.ServerError.unexpected"}),k=u(e=>{H.value=e instanceof TypeError||e instanceof R?h.CheckoutUnexpectedError:e.message},[h]),P=u(async()=>{try{if(s&&!s())return;await i({cartId:T.cartId,code:a??"",isSubscribedToNewsletter:B.peek(),email:p.current})}catch(e){k(e)}},[s,i,k,a]),n=u(e=>{const t=!!e&&!e.isEmpty;y(t),p.current=(e==null?void 0:e.email)??"",!t&&f(!1)},[]);return d(()=>{const e=l.on("cart/initialized",t=>{const z=(t==null?void 0:t.items)||[];f(z.some(b=>b.outOfStock||b.insufficientQuantity))},{eager:!0});return()=>{e==null||e.off()}},[]),d(()=>{const e=l.on("checkout/initialized",t=>{g(!0),n(t)},{eager:!0});return()=>{e==null||e.off()}},[n]),d(()=>{const e=l.on("checkout/updated",n,{eager:!1});return()=>{e==null||e.off()}},[n]),r(D,{...O,disabled:c||v||E,isInitialized:C,isVisible:x,onClick:P,children:r(w,{context:{code:a??""},name:"Content",slot:o==null?void 0:o.Content,children:r($,{id:"Checkout.PlaceOrder.button"})})})};export{ce as PlaceOrder,ce as default};
3
+ import{jsxs as U,jsx as o}from"@dropins/tools/preact-jsx-runtime.js";import{h as I,U as v,s as B}from"../chunks/errors.js";import{classes as j,Slot as w}from"@dropins/tools/lib.js";import{events as d}from"@dropins/tools/event-bus.js";import{W as M,g as N}from"../chunks/ConditionalWrapper.js";import{g as y}from"../chunks/values.js";/* empty css */import{Skeleton as T,SkeletonRow as g,Button as W}from"@dropins/tools/components.js";import{s as _}from"../chunks/ServerErrorSignal.js";import{useState as E,useCallback as m,useEffect as f}from"@dropins/tools/preact-hooks.js";import{useText as H}from"@dropins/tools/i18n.js";import"@dropins/tools/signals.js";import"@dropins/tools/fetch-graphql.js";const L=()=>U(T,{"data-testid":"place-order-skeleton",children:[o(g,{size:"small",variant:"empty"}),o(g,{size:"small"})]}),Q=({children:c,className:r,disabled:s=!1,onClick:a})=>o("div",{className:j(["checkout-place-order",r]),children:o(W,{className:"checkout-place-order__button","data-testid":"place-order-button",disabled:s,size:"medium",type:"submit",variant:"primary",onClick:a,children:c},"placeOrder")}),R=M(Q,L),te=({disabled:c=!1,active:r=!0,handleValidation:s,handlePlaceOrder:a,slots:i,...S})=>{var C;const[x,p]=E(!1),[P,h]=E(!1),b=I.value,l=H({CheckoutUnexpectedError:"Checkout.ServerError.unexpected",placeOrderButton:"Checkout.PlaceOrder.button"}),k=m(e=>{_.value=e instanceof TypeError||e instanceof v?l.CheckoutUnexpectedError:e.message},[l]),z=m(async()=>{var e;try{if(s&&!s())return;await a({cartId:B.cartId,code:((e=y("selectedPaymentMethod"))==null?void 0:e.code)??""})}catch(t){k(t)}},[s,a,k]),n=m(e=>{(!e||e.isEmpty)&&h(!1)},[]);return f(()=>{if(r===!1)return;const e=d.on("cart/initialized",t=>{const u=(t==null?void 0:t.items)||[];h(u.some(O=>O.outOfStock||O.insufficientQuantity))},{eager:!0});return()=>{e==null||e.off()}},[r]),f(()=>{if(!r)return;const e=N();if(e){p(!0),n(e);return}const t=d.on("checkout/initialized",u=>{p(!0),n(u)},{eager:!0});return()=>{t==null||t.off()}},[r,n]),f(()=>{if(!r)return;const e=d.on("checkout/updated",n,{eager:!1});return()=>{e==null||e.off()}},[r,n]),o(R,{...S,disabled:c||P||b,initialized:x,visible:r,onClick:z,children:o(w,{context:{code:((C=y("selectedPaymentMethod"))==null?void 0:C.code)??""},name:"Content",slot:i==null?void 0:i.Content,children:l.placeOrderButton})})};export{te as PlaceOrder,te as default};
@@ -1,9 +1,10 @@
1
- import { Container } from '../../../@adobe-commerce/elsie/src/lib';
1
+ import { Container } from '@dropins/tools/types/elsie/src/lib';
2
2
 
3
3
  export interface ServerErrorProps {
4
4
  autoScroll?: boolean;
5
5
  onRetry?: () => void;
6
6
  onServerError?: (error: string) => void;
7
+ active?: boolean;
7
8
  }
8
9
  export declare const ServerError: Container<ServerErrorProps>;
9
10
  //# sourceMappingURL=ServerError.d.ts.map
@@ -1,3 +1,3 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsx as s,jsxs as l}from"@dropins/tools/preact-jsx-runtime.js";/* empty css */import{IllustratedMessage as p,Icon as f,Button as h}from"@dropins/tools/components.js";import"../chunks/TermsAndConditions.js";import{classes as a}from"@dropins/tools/lib.js";/* empty css *//* empty css *//* empty css */import{S as d}from"../chunks/OrderError.js";import{useText as v}from"@dropins/tools/i18n.js";/* empty css */import"../chunks/subscription-email-statuses.js";import"../chunks/IsBillToShippingSignal.js";import"@dropins/tools/event-bus.js";import{s as u}from"../chunks/ServerErrorSignal.js";import{useRef as k,useEffect as m}from"@dropins/tools/preact-hooks.js";import"@dropins/tools/preact-compat.js";import"@dropins/tools/signals.js";import"@dropins/tools/fetch-graphql.js";function g(e){e.scrollIntoView({behavior:"smooth"}),e.focus()}const C=({className:e,contactSupport:t,errorMessage:c,onClick:i,errorMessageRef:r})=>{const o=v({Title:"Checkout.ServerError.title",Message:"Checkout.ServerError.message",ContactSupport:"Checkout.ServerError.contactSupport",Button:"Checkout.ServerError.button"}),n=c!==""?c:o.Title;return s(p,{action:s(h,{className:a(["checkout-server-error__button"]),name:"server-error-button",onClick:i,children:o.Button}),"aria-describedby":"checkout-server-error__message","aria-invalid":"true","aria-live":"polite",className:a(["checkout-server-error",e]),"data-testid":"checkout-server-error",heading:n,icon:s(f,{className:a(["checkout-server-error__icon"]),source:d}),message:l("p",{ref:r,"data-testid":"checkout-server-error-message",id:a(["checkout-server-error__message"]),children:[o.Message,s("br",{}),s("span",{children:t??o.ContactSupport})]})})},F=({onRetry:e,onServerError:t,autoScroll:c=!1})=>{const i=k(null),r=u.value,o=async()=>{e==null||e(),u.value=void 0};return m(()=>{r&&(t==null||t(r))},[r,t]),m(()=>{!c||!r||!i.current||g(i.current)},[r,c]),r?s(C,{errorMessage:r,errorMessageRef:i,onClick:o}):null};export{F as ServerError,F as default};
3
+ import{jsx as o,jsxs as l}from"@dropins/tools/preact-jsx-runtime.js";/* empty css */import{IllustratedMessage as p,Icon as f,Button as h}from"@dropins/tools/components.js";import"../chunks/TermsAndConditions.js";import{classes as a}from"@dropins/tools/lib.js";/* empty css *//* empty css */import{S as d}from"../chunks/OrderError.js";import{useText as v}from"@dropins/tools/i18n.js";/* empty css */import"../chunks/errors.js";import"@dropins/tools/event-bus.js";import{s as n}from"../chunks/ServerErrorSignal.js";import{useRef as k,useEffect as m}from"@dropins/tools/preact-hooks.js";import"@dropins/tools/preact-compat.js";import"@dropins/tools/signals.js";import"@dropins/tools/fetch-graphql.js";function g(t){t.scrollIntoView({behavior:"smooth"}),t.focus()}const C=({className:t,contactSupport:s,errorMessage:e,onClick:i,errorMessageRef:c})=>{const r=v({Title:"Checkout.ServerError.title",Message:"Checkout.ServerError.message",ContactSupport:"Checkout.ServerError.contactSupport",Button:"Checkout.ServerError.button"}),u=e!==""?e:r.Title;return o(p,{action:o(h,{className:a(["checkout-server-error__button"]),name:"server-error-button",onClick:i,children:r.Button}),"aria-describedby":"checkout-server-error__message","aria-invalid":"true","aria-live":"polite",className:a(["checkout-server-error",t]),"data-testid":"checkout-server-error",heading:u,icon:o(f,{className:a(["checkout-server-error__icon"]),source:d}),message:l("p",{ref:c,"data-testid":"checkout-server-error-message",id:a(["checkout-server-error__message"]),children:[r.Message,o("br",{}),o("span",{children:s??r.ContactSupport})]})})},A=({active:t=!0,onRetry:s,onServerError:e,autoScroll:i=!1})=>{const c=k(null),r=n.value,u=async()=>{s==null||s(),n.value=void 0};return m(()=>{r&&(e==null||e(r))},[r,e]),m(()=>{!i||!r||!c.current||g(c.current)},[r,i]),!t||!r?null:o(C,{errorMessage:r,errorMessageRef:c,onClick:u})};export{A as ServerError,A as default};
@@ -1,16 +1,15 @@
1
1
  import { ShippingMethod } from '../../data/models';
2
+ import { UIComponentType } from '../../types/ComponentTypes';
2
3
  import { TitleProps } from '../../types/TitleProps';
3
- import { Container } from '../../../@adobe-commerce/elsie/src/lib';
4
+ import { Container } from '@dropins/tools/types/elsie/src/lib';
4
5
  import { HTMLAttributes } from 'preact/compat';
5
- import { UIComponentType } from '../../types/ComponentTypes';
6
6
 
7
7
  export interface ShippingMethodsProps extends HTMLAttributes<HTMLDivElement>, TitleProps {
8
- onShippingMethodSelect?: (method: ShippingMethod) => void;
9
- preSelectedMethod?: {
10
- carrierCode: string;
11
- methodCode: string;
12
- };
8
+ onSelectionChange?: (method: ShippingMethod) => void;
9
+ onSelectionError?: (error: unknown, method: ShippingMethod) => void;
13
10
  UIComponentType?: UIComponentType;
11
+ active?: boolean;
12
+ autoSync?: boolean;
14
13
  }
15
14
  export declare const ShippingMethods: Container<ShippingMethodsProps>;
16
15
  //# sourceMappingURL=ShippingMethods.d.ts.map
@@ -1,3 +1,3 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsxs as E,jsx as i,Fragment as P}from"@dropins/tools/preact-jsx-runtime.js";import"../chunks/subscription-email-statuses.js";import{classes as j,VComponent as J,Slot as K}from"@dropins/tools/lib.js";import{s as N,h as Q,a as X}from"../chunks/IsBillToShippingSignal.js";import{events as T}from"@dropins/tools/event-bus.js";import{t as Y,s as ee}from"../chunks/setShippingMethods.js";import{W as te}from"../chunks/ConditionalWrapper.js";/* empty css */import{Skeleton as ne,SkeletonRow as b,IllustratedMessage as re,Icon as ie,ProgressSpinner as oe,RadioButton as se,Price as R,ToggleButton as ae}from"@dropins/tools/components.js";import*as s from"@dropins/tools/preact-compat.js";import{useText as D}from"@dropins/tools/i18n.js";import{s as o}from"../chunks/SelectedShippingMethodSignal.js";import{useState as x,useRef as z,useCallback as B,useEffect as O,useMemo as ce}from"@dropins/tools/preact-hooks.js";import"@dropins/tools/signals.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/synchronizeCheckout.js";import"../fragments.js";const ue=n=>s.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...n},s.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M2.47266 4.90002H15.1851V10.9645H21.2495L23 12.715V17.6124H20.073",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M15.1758 5.87573H19.0019L21.0394 10.7636",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M9.76151 16.7898C9.76151 18.0525 8.72845 19.076 7.46582 19.076C6.20318 19.076 5.17969 18.0429 5.17969 16.7803C5.17969 15.5176 6.20318 14.4941 7.46582 14.4941C8.72845 14.4941 9.75195 15.5176 9.76151 16.7803C9.76151 16.7803 9.76151 16.7803 9.76151 16.7898Z",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M19.8726 16.7898C19.8726 18.062 18.8491 19.0855 17.5769 19.0855C16.3047 19.0855 15.2812 18.062 15.2812 16.7898C15.2812 15.5176 16.3047 14.4941 17.5769 14.4941C18.8491 14.4941 19.8726 15.5176 19.8726 16.7898Z",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M8.08792 7.63574H1.69824",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M7.11229 10.3619H1",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M5.16084 13.0402H1.92773",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M9.76172 16.7611H15.2809",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M2.38672 16.7611H5.17025",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"})),le=()=>E(ne,{"data-testid":"shipping-methods-skeleton",children:[i(b,{size:"small",variant:"heading"}),i(b,{size:"small",variant:"empty"}),i(b,{fullWidth:!0,size:"medium"}),i(b,{fullWidth:!0,size:"medium"})]}),pe=({className:n,isLoading:r=!1,onSelectionChange:m=()=>{},options:a,selection:l,title:S,UIComponentType:C="RadioButton",..._})=>{const M=D({EmptyState:"Checkout.ShippingMethods.emptyState"}),g=(t,d)=>{const L={busy:r,key:t.value,className:"checkout-shipping-methods__method",name:"shipping-method",value:t.value,onChange:()=>m(t)};return d==="RadioButton"?i(se,{...L,checked:(l==null?void 0:l.value)===t.value,"data-testid":"shipping-method-radioButton",description:t.title,id:t.value,label:E(P,{children:[i(R,{amount:t.amount.value,currency:t.amount.currency})," ",i("span",{children:t.carrier.title})]})}):i(ae,{...L,"data-testid":"shipping-method-toggleButton",label:E(P,{children:[i("span",{children:t.carrier.title}),i(R,{amount:t.amount.value,currency:t.amount.currency})]}),selected:(l==null?void 0:l.value)===t.value})};return E("div",{..._,className:j(["checkout-shipping-methods",n]),"data-testid":"checkout-shipping-methods",children:[S&&i(J,{className:"checkout-shipping-methods__title",node:S}),!r&&a.length===0&&i(re,{"data-testid":"checkout-shipping-methods-empty",icon:i(ie,{source:ue}),message:i("p",{children:M.EmptyState})}),E("div",{className:j(["checkout-shipping-methods__content"]),children:[r&&i(oe,{className:"checkout-shipping-methods__spinner"}),i("div",{className:j(["checkout-shipping-methods__options",["checkout-shipping-methods__options--loading",r],["checkout-shipping-methods__options--toggleButton",C==="ToggleButton"]]),children:a.map(t=>g(t,C))})]})]})},de=te(pe,le);function H(n){const r=N.peek();if(!(r!=null&&r.address))return;const m={address:r.address,shippingMethod:n?Y(n):null};T.emit("shipping/estimate",m)}function I(n,r){return n?r.some(m=>m.code===n.code):!1}function he(n,r){return!n||!r?!1:n.code===r.code&&n.carrier.code===r.carrier.code}function me(n){return n?n.isEmpty||n.isVirtual:!0}const He=({displayTitle:n=!0,onShippingMethodSelect:r,initialData:m,slots:a,UIComponentType:l="RadioButton",...S})=>{const[C,_]=x(!0),[M,g]=x(),t=z(!1),d=z(!1),L=o.value,U=Q.value,Z=X.value,q=U||Z,V=D({Title:"Checkout.ShippingMethods.title"}),k=B(e=>{if(!d.current)return;const c={method_code:e.code,carrier_code:e.carrier.code};ee([c]).catch(console.error)},[]),F=e=>{o.value=e,r==null||r(e),k(e),d.current||H(e)},y=B(e=>{var A;const c=me(e)===!1;if(_(c),!c){d.current=!1,t.current=!1,o.value=void 0,g(void 0);return}const f=(A=e.shippingAddresses)==null?void 0:A[0];if(d.current=!!f,!f)return;const h=f.availableShippingMethods??[];if(g(h),h.length===0){o.value=void 0,t.current=!0;return}const p=f.selectedShippingMethod;if(!t.current&&p){o.value=p,t.current=!0;return}if(!t.current&&!p){const v=h[0];o.value=v,k(v),t.current=!0;return}const u=o.peek(),W=I(u,h),G=he(u,p);if(u&&W&&!G){k(u);return}if((!u||!W)&&p){o.value=p;return}if((!u||!W)&&!p){const v=h[0];o.value=v,k(v)}},[k]),w=B(e=>{if(e===void 0)return;const c=e.options??[];g(c);const f=c.length>0,h=o.peek();if(!f){o.value=void 0,H(null);return}if(I(h,c))return;const u=c[0];o.value=u,H(u)},[]);O(()=>{const e=T.on("checkout/initialized",y,{eager:!0});return()=>{e==null||e.off()}},[y]),O(()=>{const e=T.on("checkout/updated",y,{eager:!1});return()=>{e==null||e.off()}},[y]),O(()=>{if(d.current)return;const e=N.subscribe(w);return()=>{e()}},[w]);const $=ce(()=>{if(n)return i(K,{name:"checkout-shipping-methods-title",slot:a==null?void 0:a.Title,children:i("h3",{children:V.Title})})},[n,a==null?void 0:a.Title,V.Title]);return i(de,{...S,UIComponentType:l,isInitialized:M!==void 0,isLoading:q,isVisible:C,options:M??[],selection:L,title:$,onSelectionChange:F})};export{He as ShippingMethods,He as default};
3
+ import{jsxs as C,jsx as t,Fragment as I}from"@dropins/tools/preact-jsx-runtime.js";import{a as q,h as Y,b as ee}from"../chunks/errors.js";import{classes as w,VComponent as te,Slot as ne}from"@dropins/tools/lib.js";import{events as O}from"@dropins/tools/event-bus.js";import{W as ie,h as V,g as oe}from"../chunks/ConditionalWrapper.js";import{n as re,g as H}from"../chunks/values.js";import{t as se,s as ae}from"../chunks/setShippingMethods.js";/* empty css */import{Skeleton as ce,SkeletonRow as L,IllustratedMessage as pe,Icon as le,ProgressSpinner as ue,RadioButton as de,Price as D,ToggleButton as he}from"@dropins/tools/components.js";import*as p from"@dropins/tools/preact-compat.js";import{useText as F}from"@dropins/tools/i18n.js";import{useState as T,useCallback as S,useEffect as A,useMemo as me}from"@dropins/tools/preact-hooks.js";import"@dropins/tools/signals.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/synchronizeCheckout.js";import"../fragments.js";const ge=i=>p.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...i},p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M2.47266 4.90002H15.1851V10.9645H21.2495L23 12.715V17.6124H20.073",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M15.1758 5.87573H19.0019L21.0394 10.7636",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M9.76151 16.7898C9.76151 18.0525 8.72845 19.076 7.46582 19.076C6.20318 19.076 5.17969 18.0429 5.17969 16.7803C5.17969 15.5176 6.20318 14.4941 7.46582 14.4941C8.72845 14.4941 9.75195 15.5176 9.76151 16.7803C9.76151 16.7803 9.76151 16.7803 9.76151 16.7898Z",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M19.8726 16.7898C19.8726 18.062 18.8491 19.0855 17.5769 19.0855C16.3047 19.0855 15.2812 18.062 15.2812 16.7898C15.2812 15.5176 16.3047 14.4941 17.5769 14.4941C18.8491 14.4941 19.8726 15.5176 19.8726 16.7898Z",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M8.08792 7.63574H1.69824",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M7.11229 10.3619H1",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M5.16084 13.0402H1.92773",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M9.76172 16.7611H15.2809",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"}),p.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M2.38672 16.7611H5.17025",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round"})),fe=()=>C(ce,{"data-testid":"shipping-methods-skeleton",children:[t(L,{size:"small",variant:"heading"}),t(L,{size:"small",variant:"empty"}),t(L,{fullWidth:!0,size:"medium"}),t(L,{fullWidth:!0,size:"medium"})]}),ke=({className:i,isLoading:o=!1,onSelectionChange:c=()=>{},options:d,selection:s,title:E,UIComponentType:l="RadioButton",...M})=>{const _=F({EmptyState:"Checkout.ShippingMethods.emptyState"}),b=(n,W)=>{const y={busy:o,key:n.value,className:"checkout-shipping-methods__method",name:"shipping-method",value:n.value,onChange:()=>c(n)};return W==="RadioButton"?t(de,{...y,checked:(s==null?void 0:s.value)===n.value,"data-testid":"shipping-method-radioButton",description:n.title,id:n.value,label:C(I,{children:[t(D,{amount:n.amount.value,currency:n.amount.currency})," ",t("span",{children:n.carrier.title})]})}):t(he,{...y,"data-testid":"shipping-method-toggleButton",label:C(I,{children:[t("span",{children:n.carrier.title}),t(D,{amount:n.amount.value,currency:n.amount.currency})]}),selected:(s==null?void 0:s.value)===n.value})};return C("div",{...M,className:w(["checkout-shipping-methods",i]),"data-testid":"checkout-shipping-methods",children:[E&&t(te,{className:"checkout-shipping-methods__title",node:E}),!o&&d.length===0&&t(pe,{"data-testid":"checkout-shipping-methods-empty",icon:t(le,{source:ge}),message:t("p",{children:_.EmptyState})}),C("div",{className:w(["checkout-shipping-methods__content"]),children:[o&&t(ue,{className:"checkout-shipping-methods__spinner"}),t("div",{className:w(["checkout-shipping-methods__options",["checkout-shipping-methods__options--loading",o],["checkout-shipping-methods__options--toggleButton",l==="ToggleButton"]]),children:d.map(n=>b(n,l))})]})]})},ve=ie(ke,fe);function P(i){const o=q.peek();if(!(o!=null&&o.address))return;const c={address:o.address,shippingMethod:i?se(i):null};O.emit("shipping/estimate",c)}function Z(i,o){return i?o.some(c=>c.code===i.code):!1}function Se(i,o){return!i||!o?!1:i.code===o.code&&i.carrier.code===o.carrier.code}const Pe=({displayTitle:i=!0,initialData:o,onSelectionChange:c,onSelectionError:d,slots:s,UIComponentType:E="RadioButton",active:l=!0,autoSync:M=!0,..._})=>{const[b,n]=T(!1),[W,y]=T(null),[U,j]=T(),$=Y.value,G=ee.value,J=$||G,x=F({Title:"Checkout.ShippingMethods.title"}),a=S(e=>{y(e),re({selectedShippingMethod:e})},[]),f=S(async(e,r)=>{if(!M||!V())return;const m={method_code:e.code,carrier_code:e.carrier.code};try{await ae([m])}catch(h){a(r??null),d==null||d(h,e)}},[M,d,a]),K=S(async e=>{const r=H("selectedShippingMethod");a(e),c==null||c(e),V()||P(e),await f(e,r)},[c,a,f]),k=S(e=>{var N;const r=!e||e.isEmpty,m=!!(e!=null&&e.isVirtual);if(r||m){n(m),a(null),j([]);return}const h=(N=e.shippingAddresses)==null?void 0:N[0];if(!h)return;const v=h.availableShippingMethods??[];if(j(v),v.length===0){a(null);return}const u=h.selectedShippingMethod??null,g=H("selectedShippingMethod"),B=Z(g,v),X=Se(g,u);if(g&&B&&!X){f(g,u);return}if((!g||!B)&&u){a(u);return}if((!g||!B)&&!u){const R=v[0];a(R),f(R)}},[f,a]),z=S(e=>{if(e===void 0)return;const r=e.options;j(r);const m=r.length>0,h=H("selectedShippingMethod");if(!m){a(null),P(null);return}if(Z(h,r))return;const u=r[0];a(u),P(u)},[a]);A(()=>{if(!l)return;const e=oe();if(e){k(e);return}const r=O.on("checkout/initialized",k,{eager:!0});return()=>{r==null||r.off()}},[l,k]),A(()=>{if(!l)return;const e=O.on("checkout/updated",k,{eager:!1});return()=>{e==null||e.off()}},[l,k]),A(()=>{if(V())return;const e=q.subscribe(z);return()=>{e()}},[z]);const Q=me(()=>{if(i)return t(ne,{name:"checkout-shipping-methods-title",slot:s==null?void 0:s.Title,children:t("h3",{children:x.Title})})},[i,s==null?void 0:s.Title,x.Title]);return t(ve,{..._,UIComponentType:E,initialized:U!==void 0,isLoading:J,options:U??[],selection:W,title:Q,visible:l&&!b,onSelectionChange:K})};export{Pe as ShippingMethods,Pe as default};
@@ -1,7 +1,8 @@
1
1
  import { AgreementMode } from '../../data/models';
2
- import { Container, SlotMethod, SlotProps } from '../../../@adobe-commerce/elsie/src/lib';
2
+ import { Container, SlotMethod, SlotProps } from '@dropins/tools/types/elsie/src/lib';
3
3
 
4
4
  export interface TermsAndConditionsProps {
5
+ active?: boolean;
5
6
  slots?: {
6
7
  Agreements?: SlotProps<{
7
8
  appendAgreement: SlotMethod<{
@@ -1,3 +1,3 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsx as t,jsxs as V}from"@dropins/tools/preact-jsx-runtime.js";/* empty css */import{Skeleton as N,SkeletonRow as E,Checkbox as w}from"@dropins/tools/components.js";import{p as y}from"../chunks/TermsAndConditions.js";import{classes as k,VComponent as D,Slot as W}from"@dropins/tools/lib.js";/* empty css *//* empty css *//* empty css *//* empty css */import{W as j}from"../chunks/ConditionalWrapper.js";import{A as H}from"../chunks/checkout.js";import{s as P}from"../chunks/subscription-email-statuses.js";import"../chunks/IsBillToShippingSignal.js";import{events as g}from"@dropins/tools/event-bus.js";import{useState as m,useCallback as R,useEffect as _}from"@dropins/tools/preact-hooks.js";import{useText as $,MarkupText as q}from"@dropins/tools/i18n.js";import"@dropins/tools/signals.js";import"@dropins/tools/fetch-graphql.js";const L=({html:n})=>{const o=y.sanitize(n,{ADD_ATTR:["target"]});return o===""?null:t("span",{dangerouslySetInnerHTML:{__html:o}})},O=()=>t(N,{className:"checkout-terms-and-conditions-skeleton","data-testid":"checkout-terms-and-conditions-skeleton",children:t(E,{fullWidth:!0,size:"small",variant:"row"})}),B=({className:n,agreements:o,error:s,...a})=>t("div",{className:"checkout-terms-and-conditions","data-testid":"checkout-terms-and-conditions",children:V("form",{...a,noValidate:!0,className:k(["checkout-terms-and-conditions__form",n]),"data-testid":"checkout-terms-and-conditions-form",name:"checkout-terms-and-conditions__form",children:[o&&t(D,{className:k(["checkout-terms-and-conditions__agreements"]),"data-testid":"checkout-terms-and-conditions-agreements",node:o}),s&&t("div",{className:"checkout-terms-and-conditions__error","data-testid":"checkout-terms-and-conditions-error",children:s})]})}),F=j(B,O),me=({slots:n,...o})=>{var u;const[s,a]=m(!0),[A,C]=m(!1),[T,l]=m(""),{errorMessage:x}=$({errorMessage:"Checkout.TermsAndConditions.error"}),r=((u=P.config)==null?void 0:u.agreementsEnabled)===!1,b=()=>{l("")},I=()=>{l(x)},i=R(e=>{a(!!e&&!e.isEmpty)},[]);return _(()=>{if(r)return;const e=g.on("checkout/initialized",c=>{C(!0),i(c)},{eager:!0});return()=>{e==null||e.off()}},[r,i]),_(()=>{if(r)return;const e=g.on("checkout/updated",i,{eager:!1});return()=>{e==null||e.off()}},[r,i]),t(F,{...o,agreements:t(W,{context:{appendAgreement(e){this._registerMethod((...c)=>{const f=e(...c);if(!f)return;const{mode:v,name:h,text:d,translationId:p}=f;if(!d&&!p){console.warn(`The agreement ${h} is misconfigured. Please provide a text or a translationId.`);return}const M=d?t(L,{html:d}):t(q,{id:p}),z=t(w,{checked:v===H.AUTO,label:M,name:h,required:!0,onChange:b,onInvalid:I});this._setProps(S=>({children:[...S.children||[],z]}))})}},name:"Agreements",slot:n==null?void 0:n.Agreements}),error:T,isInitialized:A,isVisible:s&&!r})};export{me as TermsAndConditions,me as default};
3
+ import{jsx as e,jsxs as M}from"@dropins/tools/preact-jsx-runtime.js";/* empty css */import{Skeleton as v,SkeletonRow as S,Checkbox as b}from"@dropins/tools/components.js";import{p as N}from"../chunks/TermsAndConditions.js";import{classes as f,VComponent as U,Slot as w}from"@dropins/tools/lib.js";/* empty css *//* empty css *//* empty css */import{W as E,g as V}from"../chunks/ConditionalWrapper.js";import{A as W}from"../chunks/checkout.js";import{s as j}from"../chunks/errors.js";import{events as y}from"@dropins/tools/event-bus.js";import{useState as g,useEffect as D}from"@dropins/tools/preact-hooks.js";import{useText as H,MarkupText as L}from"@dropins/tools/i18n.js";import"@dropins/tools/signals.js";import"@dropins/tools/fetch-graphql.js";const P=({html:n})=>{const t=N.sanitize(n,{ADD_ATTR:["target"]});return t===""?null:e("span",{dangerouslySetInnerHTML:{__html:t}})},R=()=>e(v,{className:"checkout-terms-and-conditions-skeleton","data-testid":"checkout-terms-and-conditions-skeleton",children:e(S,{fullWidth:!0,size:"small",variant:"row"})}),$=({className:n,agreements:t,error:r,...s})=>e("div",{className:"checkout-terms-and-conditions","data-testid":"checkout-terms-and-conditions",children:M("form",{...s,noValidate:!0,className:f(["checkout-terms-and-conditions__form",n]),"data-testid":"checkout-terms-and-conditions-form",name:"checkout-terms-and-conditions__form",children:[t&&e(U,{className:f(["checkout-terms-and-conditions__agreements"]),"data-testid":"checkout-terms-and-conditions-agreements",node:t}),r&&e("div",{className:"checkout-terms-and-conditions__error","data-testid":"checkout-terms-and-conditions-error",children:r})]})}),q=E($,R),ie=({active:n=!0,slots:t,...r})=>{var m;const[s,d]=g(!1),[k,c]=g(""),{errorMessage:_}=H({errorMessage:"Checkout.TermsAndConditions.error"}),i=((m=j.config)==null?void 0:m.agreementsEnabled)===!1,A=()=>{c("")},C=()=>{c(_)};return D(()=>{if(!n||i)return;if(V()){d(!0);return}const o=y.on("checkout/initialized",()=>{d(!0)},{eager:!0});return()=>{o==null||o.off()}},[n,i]),e(q,{...r,agreements:e(w,{context:{appendAgreement(l){this._registerMethod((...o)=>{const u=l(...o);if(!u)return;const{mode:T,name:h,text:a,translationId:p}=u;if(!a&&!p){console.warn(`The agreement ${h} is misconfigured. Please provide a text or a translationId.`);return}const x=a?e(P,{html:a}):e(L,{id:p}),z=e(b,{checked:T===W.AUTO,label:x,name:h,required:!0,onChange:A,onInvalid:C});this._setProps(I=>({children:[...I.children||[],z]}))})}},name:"Agreements",slot:t==null?void 0:t.Agreements}),error:k,initialized:s,visible:n&&!i})};export{ie as TermsAndConditions,ie as default};
@@ -18,7 +18,6 @@ export * from './BillToShippingAddress';
18
18
  export * from './EstimateShipping';
19
19
  export * from './LoginForm';
20
20
  export * from './MergedCartBanner';
21
- export * from './Newsletter';
22
21
  export * from './OutOfStock';
23
22
  export * from './PaymentMethods';
24
23
  export * from './PlaceOrder';
@@ -28,5 +28,5 @@ export * from './region';
28
28
  export * from './shipping-estimate';
29
29
  export * from './shipping-method';
30
30
  export * from './store-config';
31
- export * from './subscription-email-statuses';
31
+ export * from './values';
32
32
  //# sourceMappingURL=index.d.ts.map
@@ -14,4 +14,8 @@ export interface ShippingEstimateShippingMethod {
14
14
  amountExclTax?: Price;
15
15
  amountInclTax?: Price;
16
16
  }
17
+ export interface ShippingEstimate {
18
+ address: ShippingEstimatePartialAddress;
19
+ shippingMethod: ShippingEstimateShippingMethod | null;
20
+ }
17
21
  //# sourceMappingURL=shipping-estimate.d.ts.map
@@ -22,7 +22,6 @@ export declare enum TaxDisplay {
22
22
  export interface StoreConfig {
23
23
  defaultCountry: string;
24
24
  agreementsEnabled: boolean;
25
- newsletterEnabled: boolean;
26
25
  shoppingCartDisplaySetting: {
27
26
  shipping: TaxDisplay;
28
27
  };
@@ -0,0 +1,9 @@
1
+ import { PaymentMethod, ShippingMethod } from '.';
2
+
3
+ export interface ValuesModel {
4
+ email: string;
5
+ isBillToShipping: boolean;
6
+ selectedPaymentMethod: PaymentMethod | null;
7
+ selectedShippingMethod: ShippingMethod | null;
8
+ }
9
+ //# sourceMappingURL=values.d.ts.map
@@ -1,5 +1,5 @@
1
- import { Cart as CartModel } from '../models';
2
1
  import { GetCartQuery } from '../../__generated__/types';
2
+ import { Cart as CartModel } from '../models';
3
3
 
4
4
  type Cart = GetCartQuery['cart'];
5
5
  declare const transformCart: (data: Cart) => CartModel | undefined;
@@ -10,6 +10,6 @@ type SelectedShippingMethod = ShippingAddress['selected_shipping_method'];
10
10
  export declare const isNullish: (value: any) => boolean;
11
11
  export declare const transformSelectedShippingMethod: (data: SelectedShippingMethod) => ShippingMethod | undefined;
12
12
  export declare const transformAvailableShippingMethod: (data: AvailableShippingMethod) => ShippingMethod | undefined;
13
- export declare const transformShippingMethods: (data: AvailableShippingMethods) => ShippingMethod[] | undefined;
13
+ export declare const transformShippingMethods: (data: AvailableShippingMethods) => ShippingMethod[];
14
14
  export {};
15
15
  //# sourceMappingURL=transform-shipping-methods.d.ts.map
package/fragments.js CHANGED
@@ -101,7 +101,17 @@ const e=`
101
101
  middlename
102
102
  fax
103
103
  }
104
+ `,_=`
105
+ fragment AVAILABLE_PAYMENT_METHOD_FRAGMENT on AvailablePaymentMethod {
106
+ code
107
+ title
108
+ }
104
109
  `,a=`
110
+ fragment SELECTED_PAYMENT_METHOD_FRAGMENT on SelectedPaymentMethod {
111
+ code
112
+ title
113
+ }
114
+ `,i=`
105
115
  fragment CHECKOUT_DATA_FRAGMENT on Cart {
106
116
  id
107
117
  is_virtual
@@ -114,21 +124,21 @@ const e=`
114
124
  ...SHIPPING_CART_ADDRESS_FRAGMENT
115
125
  }
116
126
  available_payment_methods {
117
- code
118
- title
127
+ ...AVAILABLE_PAYMENT_METHOD_FRAGMENT
119
128
  }
120
129
  selected_payment_method {
121
- code
122
- title
130
+ ...SELECTED_PAYMENT_METHOD_FRAGMENT
123
131
  }
124
132
  }
125
133
 
126
134
  ${e}
127
135
  ${t}
128
- `,i=`
136
+ ${_}
137
+ ${a}
138
+ `,r=`
129
139
  fragment CUSTOMER_FRAGMENT on Customer {
130
140
  firstname
131
141
  lastname
132
142
  email
133
143
  }
134
- `;export{a as CHECKOUT_DATA_FRAGMENT,i as CUSTOMER_FRAGMENT};
144
+ `;export{_ as AVAILABLE_PAYMENT_METHOD_FRAGMENT,e as BILLING_CART_ADDRESS_FRAGMENT,i as CHECKOUT_DATA_FRAGMENT,r as CUSTOMER_FRAGMENT,a as SELECTED_PAYMENT_METHOD_FRAGMENT,t as SHIPPING_CART_ADDRESS_FRAGMENT};
@@ -38,9 +38,6 @@ declare const _default: {
38
38
  "many": "{{count}} items from a previous session were added to your cart. Please review your new subtotal."
39
39
  }
40
40
  },
41
- "Newsletter": {
42
- "title": "Sign up to the latest news and events"
43
- },
44
41
  "OutOfStock": {
45
42
  "title": "Your cart contains items that are out of stock",
46
43
  "message": "The following items are out of stock:",
@@ -1,4 +1,4 @@
1
- import { ReadonlySignal } from '../../@adobe-commerce/elsie/src/lib/signals';
1
+ import { ReadonlySignal } from '@dropins/tools/types/elsie/src/lib/signals';
2
2
 
3
3
  export declare enum QueueName {
4
4
  CartUpdate = "cartUpdate",
@@ -0,0 +1,8 @@
1
+ import { Cart as DataModel } from '../data/models';
2
+
3
+ export declare function getInitialCheckoutData(): DataModel | null;
4
+ export declare function getLatestCheckoutUpdate(): DataModel | null;
5
+ export declare function hasShippingAddress(): boolean;
6
+ export declare function isVirtualCart(): boolean;
7
+ export declare function getCartEmail(): string | null;
8
+ //# sourceMappingURL=events.d.ts.map
package/lib/index.d.ts CHANGED
@@ -16,8 +16,11 @@
16
16
  *******************************************************************/
17
17
  export * from './dispatchApiCall';
18
18
  export * from './dom';
19
+ export * from './enqueueRequest';
20
+ export * from './events';
19
21
  export * from './network-error';
20
22
  export * from './preact';
21
23
  export * from './state';
22
24
  export * from './validation';
25
+ export * from './values';
23
26
  //# sourceMappingURL=index.d.ts.map
package/lib/preact.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Container } from '../../@adobe-commerce/elsie/src/lib/types';
1
+ import { Container } from '@dropins/tools/types/elsie/src/lib/types';
2
2
 
3
3
  export declare function getDisplayName(WrappedComponent: Container<any>): string;
4
4
  //# sourceMappingURL=preact.d.ts.map
@@ -0,0 +1,17 @@
1
+ import { ValuesModel } from '../data/models';
2
+
3
+ export declare const initialValues: ValuesModel;
4
+ /**
5
+ * Emits a checkout/values event with the provided values
6
+ * Merges with previous values if they exist
7
+ *
8
+ * @param values - Partial values to be emitted or merged with existing values
9
+ */
10
+ export declare function notifyValues(values: Partial<ValuesModel>): void;
11
+ /**
12
+ * Retrieves a specific value from the ValuesModel by key
13
+ * @param key - The key of the ValuesModel to retrieve
14
+ * @returns The value for the specified key or null if not defined/found
15
+ */
16
+ export declare function getValue<K extends keyof ValuesModel>(key: K): ValuesModel[K] | null;
17
+ //# sourceMappingURL=values.d.ts.map
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name": "@dropins/storefront-checkout", "version": "1.4.0-beta2", "@dropins/tools": "~1.2.0", "license": "SEE LICENSE IN LICENSE.md"}
1
+ {"name": "@dropins/storefront-checkout", "version": "2.0.0-beta2", "@dropins/tools": "~1.2.1", "license": "SEE LICENSE IN LICENSE.md"}
@@ -1,4 +1,4 @@
1
- import { Render } from '../../@adobe-commerce/elsie/src/lib';
1
+ import { Render } from '@dropins/tools/types/elsie/src/lib';
2
2
  import { Provider } from './Provider';
3
3
 
4
4
  export { Provider };
package/render.js CHANGED
@@ -1,10 +1,9 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- (function(n,o){try{if(typeof document<"u"){const t=document.createElement("style"),r=o.styleId;for(const e in o.attributes)t.setAttribute(e,o.attributes[e]);t.setAttribute("data-dropin",r),t.appendChild(document.createTextNode(n));const a=document.querySelector('style[data-dropin="sdk"]');if(a)a.after(t);else{const e=document.querySelector('link[rel="stylesheet"], style');e?e.before(t):document.head.append(t)}}}catch(t){console.error("dropin-styles (injectCodeFunction)",t)}})(`.checkout__banner{margin-bottom:var(--spacing-xbig)}
4
- .checkout-estimate-shipping{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xxsmall);align-items:center;color:var(--color-neutral-800)}.checkout-estimate-shipping__label,.checkout-estimate-shipping__price{font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.checkout-estimate-shipping__label--muted{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);color:var(--color-neutral-700)}.checkout-estimate-shipping__price--muted{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing)}.checkout-estimate-shipping__price{text-align:right}.checkout-estimate-shipping__label--bold,.checkout-estimate-shipping__price--bold{font:var(--type-body-1-emphasized-font);letter-spacing:var(--type-body-1-emphasized-letter-spacing)}.checkout-estimate-shipping__caption{font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing);color:var(--color-neutral-700)}.cart-order-summary__shipping .dropin-skeleton{grid-template-columns:1fr}.checkout-login-form__heading{display:grid;grid-template-columns:1fr max-content;grid-auto-rows:max-content;margin:0 0 var(--spacing-medium) 0}.checkout-login-form__content{grid-auto-rows:max-content}.checkout-login-form__content .dropin-field__hint a{font-weight:400}.checkout-login-form__customer-details{display:grid;grid-auto-flow:row;gap:var(--spacing-xxsmall)}.checkout-login-form__customer-name{font:var(--type-body-1-strong-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.checkout-login-form__customer-email{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);color:var(--color-neutral-700)}.checkout-login-form__title,.checkout-login-form__title h2{grid-column-start:1;color:var(--color-neutral-800);font:var(--type-headline-2-default-font);letter-spacing:var(--type-headline-2-default-letter-spacing);margin:0}.checkout-login-form__heading-label,.checkout-login-form__sign-in,.checkout-login-form__sign-out{grid-column-start:2;color:var(--color-neutral-800);font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);justify-self:flex-end;margin-top:var(--spacing-xxsmall)}.checkout-login-form__heading-label a,a.checkout-login-form__link{font:var(--type-body-2-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing);margin-left:var(--spacing-xxsmall)}@media only screen and (min-width: 320px) and (max-width: 768px){.checkout-login-form__heading{grid-template-columns:repeat(1,1fr [col-start]);grid-template-rows:1fr}.checkout-login-form__sign-in,.checkout-login-form__sign-out{grid-column-start:1;align-self:flex-start;justify-self:flex-start;margin-top:0;margin-bottom:var(--spacing-medium)}}.checkout-out-of-stock.dropin-card{border-color:var(--color-warning-500)}.checkout-out-of-stock .dropin-card__content{gap:var(--spacing-small);padding:var(--spacing-small)}.checkout-out-of-stock__title{color:var(--color-neutral-900);font:var(--type-body-2-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing);margin:0;display:flex;gap:var(--spacing-xxsmall);align-items:center;justify-content:left;text-align:center}.checkout-out-of-stock__message{color:var(--color-neutral-800);font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing);margin:0}.checkout-out-of-stock__items{display:grid;grid-template-columns:repeat(5,100px);grid-gap:var(--spacing-small);list-style:none;padding:0;margin:0}.checkout-out-of-stock__item img{width:100%;height:auto}.checkout-out-of-stock__actions{display:flex;gap:var(--spacing-small);justify-content:flex-end}a.checkout-out-of-stock__action{color:var(--color-brand-500);font:var(--type-details-caption-1-font);letter-spacing:var(--type-details-caption-1-letter-spacing)}.checkout-out-of-stock__action{color:var(--color-brand-500);font:var(--type-details-caption-1-font);letter-spacing:var(--type-details-caption-1-letter-spacing);background:none;border:none;padding:0;cursor:pointer}.checkout-out-of-stock__action:hover{--textColor: var(--color-brand-700);text-decoration:solid underline var(--textColor);text-underline-offset:6px}@media only screen and (width >= 320px) and (width <= 768px){.checkout-out-of-stock__items{grid-template-columns:repeat(3,100px)}}.checkout-server-error{position:relative;text-align:center}.checkout-server-error__icon .error-icon{color:var(--color-alert-500)}.checkout-server-error a{font:var(--type-body-2-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing)}.checkout-terms-and-conditions{display:grid}.checkout-terms-and-conditions__error{font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing);color:var(--color-alert-800);text-align:left;margin-top:var(--spacing-xsmall)}.checkout-terms-and-conditions__error:empty{display:none}
3
+ (function(a,o){try{if(typeof document<"u"){const t=document.createElement("style"),r=o.styleId;for(const e in o.attributes)t.setAttribute(e,o.attributes[e]);t.setAttribute("data-dropin",r),t.appendChild(document.createTextNode(a));const n=document.querySelector('style[data-dropin="sdk"]');if(n)n.after(t);else{const e=document.querySelector('link[rel="stylesheet"], style');e?e.before(t):document.head.append(t)}}}catch(t){console.error("dropin-styles (injectCodeFunction)",t)}})(`.checkout__banner{margin-bottom:var(--spacing-xbig)}
4
+ .checkout-estimate-shipping{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xxsmall);align-items:center;color:var(--color-neutral-800)}.checkout-estimate-shipping__label,.checkout-estimate-shipping__price{font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.checkout-estimate-shipping__label--muted{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);color:var(--color-neutral-700)}.checkout-estimate-shipping__price--muted{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing)}.checkout-estimate-shipping__price{text-align:right}.checkout-estimate-shipping__label--bold,.checkout-estimate-shipping__price--bold{font:var(--type-body-1-emphasized-font);letter-spacing:var(--type-body-1-emphasized-letter-spacing)}.checkout-estimate-shipping__caption{font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing);color:var(--color-neutral-700)}.cart-order-summary__shipping .dropin-skeleton{grid-template-columns:1fr}.checkout-login-form__heading{display:grid;grid-template-columns:1fr max-content;grid-auto-rows:max-content;margin:0 0 var(--spacing-medium) 0}.checkout-login-form__heading:empty{display:none}.checkout-login-form__content{grid-auto-rows:max-content}.checkout-login-form__content .dropin-field__hint a{font-weight:400}.checkout-login-form__customer-details{display:grid;grid-auto-flow:row;gap:var(--spacing-xxsmall)}.checkout-login-form__customer-name{font:var(--type-body-1-strong-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.checkout-login-form__customer-email{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);color:var(--color-neutral-700)}.checkout-login-form__title,.checkout-login-form__title h2{grid-column-start:1;color:var(--color-neutral-800);font:var(--type-headline-2-default-font);letter-spacing:var(--type-headline-2-default-letter-spacing);margin:0}.checkout-login-form__heading-label,.checkout-login-form__sign-in,.checkout-login-form__sign-out{grid-column-start:2;color:var(--color-neutral-800);font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);justify-self:flex-end;margin-top:var(--spacing-xxsmall)}.checkout-login-form__heading-label a,a.checkout-login-form__link{font:var(--type-body-2-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing);margin-left:var(--spacing-xxsmall)}@media only screen and (min-width: 320px) and (max-width: 768px){.checkout-login-form__heading{grid-template-columns:repeat(1,1fr [col-start]);grid-template-rows:1fr}.checkout-login-form__sign-in,.checkout-login-form__sign-out{grid-column-start:1;align-self:flex-start;justify-self:flex-start;margin-top:0;margin-bottom:var(--spacing-medium)}}.checkout-out-of-stock.dropin-card{border-color:var(--color-warning-500)}.checkout-out-of-stock .dropin-card__content{gap:var(--spacing-small);padding:var(--spacing-small)}.checkout-out-of-stock__title{color:var(--color-neutral-900);font:var(--type-body-2-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing);margin:0;display:flex;gap:var(--spacing-xxsmall);align-items:center;justify-content:left;text-align:center}.checkout-out-of-stock__message{color:var(--color-neutral-800);font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing);margin:0}.checkout-out-of-stock__items{display:grid;grid-template-columns:repeat(5,100px);grid-gap:var(--spacing-small);list-style:none;padding:0;margin:0}.checkout-out-of-stock__item img{width:100%;height:auto}.checkout-out-of-stock__actions{display:flex;gap:var(--spacing-small);justify-content:flex-end}a.checkout-out-of-stock__action{color:var(--color-brand-500);font:var(--type-details-caption-1-font);letter-spacing:var(--type-details-caption-1-letter-spacing)}.checkout-out-of-stock__action{color:var(--color-brand-500);font:var(--type-details-caption-1-font);letter-spacing:var(--type-details-caption-1-letter-spacing);background:none;border:none;padding:0;cursor:pointer}.checkout-out-of-stock__action:hover{--textColor: var(--color-brand-700);text-decoration:solid underline var(--textColor);text-underline-offset:6px}@media only screen and (width >= 320px) and (width <= 768px){.checkout-out-of-stock__items{grid-template-columns:repeat(3,100px)}}.checkout-server-error{position:relative;text-align:center}.checkout-server-error__icon .error-icon{color:var(--color-alert-500)}.checkout-server-error a{font:var(--type-body-2-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing)}.checkout-terms-and-conditions{display:grid}.checkout-terms-and-conditions__error{font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing);color:var(--color-alert-800);text-align:left;margin-top:var(--spacing-xsmall)}.checkout-terms-and-conditions__error:empty{display:none}
5
5
  .checkout-shipping-methods__title,.checkout-shipping-methods__title h3{color:var(--color-neutral-800);font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing);margin:0 0 var(--spacing-medium) 0}.checkout-shipping-methods__content{position:relative;display:block}.checkout-shipping-methods__method{margin-bottom:var(--spacing-medium);width:fit-content;cursor:pointer;font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing)}.checkout-shipping-methods__method:last-child{margin-bottom:0}.dropin-radio-button__label .dropin-price{color:var(--color-neutral-800);font-weight:400}.checkout-shipping-methods__options--loading{opacity:.4;pointer-events:none}.checkout-shipping-methods__spinner{margin:0 auto;position:absolute;z-index:999;left:0;right:0;top:calc(50% - (var(--size) / 2));bottom:0}.checkout-shipping-methods__options--toggleButton{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-medium)}.checkout-shipping-methods__options--toggleButton .dropin-toggle-button__content{justify-content:start;display:grid;grid-template-columns:1fr min-content}.checkout-shipping-methods__options--toggleButton .checkout-shipping-methods__method{margin-bottom:0;width:auto}
6
6
  .checkout-place-order{display:grid;padding-bottom:var(--spacing-big)}.checkout-place-order__button{align-self:flex-end;justify-self:flex-end}@media only screen and (min-width: 320px) and (max-width: 768px){.checkout-place-order{background-color:var(--color-neutral-200);padding:var(--spacing-medium) var(--spacing-medium) var(--spacing-big) var(--spacing-medium)}.checkout-place-order__button{align-self:center;justify-self:stretch}}
7
7
  .checkout-payment-methods__title,.checkout-payment-methods__title h2{color:var(--color-neutral-800);font:var(--type-headline-2-default-font);letter-spacing:var(--type-headline-2-default-letter-spacing);margin:0 0 var(--spacing-medium) 0}.checkout-payment-methods__wrapper{position:relative;display:grid}.checkout-payment-methods__wrapper--loading{opacity:.4;pointer-events:none}.checkout-payment-methods__methods{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-medium)}.checkout-payment-methods__content{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);margin-top:var(--spacing-xbig)}.checkout-payment-methods__content>div[data-slot=PaymentMethodSlot]:not(:empty){margin-top:var(--spacing-medium)}.checkout-payment-methods--full-width{grid-template-columns:1fr}.checkout-payment-methods__spinner{margin:0 auto;position:absolute;z-index:999;left:0;right:0;top:calc(50% - (var(--size) / 2));bottom:0}.checkout__content [data-slot=PaymentMethods]:empty{display:none}@media only screen and (min-width: 320px) and (max-width: 768px){.checkout-payment-methods__methods{grid-template-columns:1fr}}
8
- .checkout-newsletter label{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);gap:0}
9
8
  .checkout-bill-to-shipping-address label{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);gap:0}`,{styleId:"checkout"});
10
- import{jsx as f}from"@dropins/tools/preact-jsx-runtime.js";import{Render as d}from"@dropins/tools/lib.js";import"./chunks/subscription-email-statuses.js";import"./chunks/IsBillToShippingSignal.js";import{events as p}from"@dropins/tools/event-bus.js";import{c as g}from"./chunks/synchronizeCheckout.js";import{UIProvider as y}from"@dropins/tools/components.js";import{useState as b,useEffect as h}from"@dropins/tools/preact-hooks.js";import"@dropins/tools/signals.js";import"@dropins/tools/fetch-graphql.js";import"./fragments.js";function O(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var w=function(t){return S(t)&&!v(t)};function S(e){return!!e&&typeof e=="object"}function v(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||M(e)}var E=typeof Symbol=="function"&&Symbol.for,j=E?Symbol.for("react.element"):60103;function M(e){return e.$$typeof===j}function P(e){return Array.isArray(e)?[]:{}}function i(e,t){return t.clone!==!1&&t.isMergeableObject(e)?o(P(e),e,t):e}function A(e,t,r){return e.concat(t).map(function(a){return i(a,r)})}function T(e,t){if(!t.customMerge)return o;var r=t.customMerge(e);return typeof r=="function"?r:o}function I(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function u(e){return Object.keys(e).concat(I(e))}function m(e,t){try{return t in e}catch{return!1}}function C(e,t){return m(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function x(e,t,r){var a={};return r.isMergeableObject(e)&&u(e).forEach(function(n){a[n]=i(e[n],r)}),u(t).forEach(function(n){C(e,n)||(m(e,n)&&r.isMergeableObject(t[n])?a[n]=T(n,r)(e[n],t[n],r):a[n]=i(t[n],r))}),a}function o(e,t,r){r=r||{},r.arrayMerge=r.arrayMerge||A,r.isMergeableObject=r.isMergeableObject||w,r.cloneUnlessOtherwiseSpecified=i;var a=Array.isArray(t),n=Array.isArray(e),s=a===n;return s?a?r.arrayMerge(e,t,r):x(e,t,r):i(t,r)}o.all=function(t,r){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(a,n){return o(a,n,r)},{})};var D=o,_=D;const L=O(_),R={BillToShippingAddress:{title:"Bill to shipping address"},EmptyCart:{title:"Your cart is empty",button:"Start shopping"},EstimateShipping:{estimated:"Estimated Shipping",freeShipping:"Free",label:"Shipping",taxToBeDetermined:"TBD",withTaxes:"Including taxes",withoutTaxes:"Excluding taxes"},LoginForm:{title:"Contact details",account:"Already have an account?",ariaLabel:"Email",invalidEmailError:"Please enter a valid email address.",missingEmailError:"Enter an email address.",emailExists:{alreadyHaveAccount:"It looks like you already have an account.",signInButton:"Sign in",forFasterCheckout:"for a faster checkout."},floatingLabel:"Email *",placeholder:"Enter your email address",signIn:"Sign In",switch:"Do you want to switch account?",signOut:"Sign Out"},MergedCartBanner:{items:{one:"1 item from a previous session was added to your cart. Please review your new subtotal.",many:"{{count}} items from a previous session were added to your cart. Please review your new subtotal."}},Newsletter:{title:"Sign up to the latest news and events"},OutOfStock:{title:"Your cart contains items that are out of stock",message:"The following items are out of stock:",actions:{reviewCart:"Review cart",removeOutOfStock:"Remove out of stock items"},lowInventory:{one:"Last item!",many:"Only {{count}} left!"},alert:"Out of stock!"},PaymentMethods:{title:"Payment",emptyState:"No payment methods available"},PlaceOrder:{button:"Place Order"},ServerError:{title:"We were unable to process your order",contactSupport:"If you continue to have issues, please contact support.",unexpected:"An unexpected error occurred while processing your order. Please try again later.",button:"Try again"},ShippingMethods:{title:"Shipping options",emptyState:"This order can't be shipped to the address provided. Please review the address details you entered and make sure they're correct."},TermsAndConditions:{label:"I have read, understand, and accept our <a href='https://www.adobe.com/legal/terms.html' target='_blank'>Terms of Use, Terms of Sales, Privacy Policy, and Return Policy</a>.",error:"Please accept the Terms and Conditions to continue."},title:"Checkout"},U={Checkout:R},B={default:U},k=({children:e})=>{var s;const[t,r]=b(),a=(s=g.getConfig())==null?void 0:s.langDefinitions;h(()=>{const c=p.on("locale",l=>{l!==t&&r(l)},{eager:!0});return()=>{c==null||c.off()}},[t]);const n=L(B,a??{});return f(y,{lang:t,langDefinitions:n,children:e})},J=new d(f(k,{}));export{k as Provider,J as render};
9
+ import{jsx as f}from"@dropins/tools/preact-jsx-runtime.js";import{Render as d}from"@dropins/tools/lib.js";import"./chunks/errors.js";import{events as p}from"@dropins/tools/event-bus.js";import{c as g}from"./chunks/synchronizeCheckout.js";import{UIProvider as y}from"@dropins/tools/components.js";import{useState as b,useEffect as h}from"@dropins/tools/preact-hooks.js";import"@dropins/tools/signals.js";import"@dropins/tools/fetch-graphql.js";import"./fragments.js";function O(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var w=function(t){return S(t)&&!v(t)};function S(e){return!!e&&typeof e=="object"}function v(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||M(e)}var E=typeof Symbol=="function"&&Symbol.for,j=E?Symbol.for("react.element"):60103;function M(e){return e.$$typeof===j}function P(e){return Array.isArray(e)?[]:{}}function i(e,t){return t.clone!==!1&&t.isMergeableObject(e)?o(P(e),e,t):e}function A(e,t,r){return e.concat(t).map(function(a){return i(a,r)})}function T(e,t){if(!t.customMerge)return o;var r=t.customMerge(e);return typeof r=="function"?r:o}function I(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function u(e){return Object.keys(e).concat(I(e))}function m(e,t){try{return t in e}catch{return!1}}function C(e,t){return m(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function x(e,t,r){var a={};return r.isMergeableObject(e)&&u(e).forEach(function(n){a[n]=i(e[n],r)}),u(t).forEach(function(n){C(e,n)||(m(e,n)&&r.isMergeableObject(t[n])?a[n]=T(n,r)(e[n],t[n],r):a[n]=i(t[n],r))}),a}function o(e,t,r){r=r||{},r.arrayMerge=r.arrayMerge||A,r.isMergeableObject=r.isMergeableObject||w,r.cloneUnlessOtherwiseSpecified=i;var a=Array.isArray(t),n=Array.isArray(e),s=a===n;return s?a?r.arrayMerge(e,t,r):x(e,t,r):i(t,r)}o.all=function(t,r){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(a,n){return o(a,n,r)},{})};var D=o,_=D;const L=O(_),R={BillToShippingAddress:{title:"Bill to shipping address"},EmptyCart:{title:"Your cart is empty",button:"Start shopping"},EstimateShipping:{estimated:"Estimated Shipping",freeShipping:"Free",label:"Shipping",taxToBeDetermined:"TBD",withTaxes:"Including taxes",withoutTaxes:"Excluding taxes"},LoginForm:{title:"Contact details",account:"Already have an account?",ariaLabel:"Email",invalidEmailError:"Please enter a valid email address.",missingEmailError:"Enter an email address.",emailExists:{alreadyHaveAccount:"It looks like you already have an account.",signInButton:"Sign in",forFasterCheckout:"for a faster checkout."},floatingLabel:"Email *",placeholder:"Enter your email address",signIn:"Sign In",switch:"Do you want to switch account?",signOut:"Sign Out"},MergedCartBanner:{items:{one:"1 item from a previous session was added to your cart. Please review your new subtotal.",many:"{{count}} items from a previous session were added to your cart. Please review your new subtotal."}},OutOfStock:{title:"Your cart contains items that are out of stock",message:"The following items are out of stock:",actions:{reviewCart:"Review cart",removeOutOfStock:"Remove out of stock items"},lowInventory:{one:"Last item!",many:"Only {{count}} left!"},alert:"Out of stock!"},PaymentMethods:{title:"Payment",emptyState:"No payment methods available"},PlaceOrder:{button:"Place Order"},ServerError:{title:"We were unable to process your order",contactSupport:"If you continue to have issues, please contact support.",unexpected:"An unexpected error occurred while processing your order. Please try again later.",button:"Try again"},ShippingMethods:{title:"Shipping options",emptyState:"This order can't be shipped to the address provided. Please review the address details you entered and make sure they're correct."},TermsAndConditions:{label:"I have read, understand, and accept our <a href='https://www.adobe.com/legal/terms.html' target='_blank'>Terms of Use, Terms of Sales, Privacy Policy, and Return Policy</a>.",error:"Please accept the Terms and Conditions to continue."},title:"Checkout"},U={Checkout:R},B={default:U},k=({children:e})=>{var s;const[t,r]=b(),a=(s=g.getConfig())==null?void 0:s.langDefinitions;h(()=>{const c=p.on("locale",l=>{l!==t&&r(l)},{eager:!0});return()=>{c==null||c.off()}},[t]);const n=L(B,a??{});return f(y,{lang:t,langDefinitions:n,children:e})},G=new d(f(k,{}));export{k as Provider,G as render};
@@ -2,7 +2,7 @@ import { ShippingEstimatePartialAddress, ShippingMethod } from '../data/models';
2
2
 
3
3
  export type ShippingEstimation = {
4
4
  address: ShippingEstimatePartialAddress;
5
- options: ShippingMethod[] | undefined;
5
+ options: ShippingMethod[];
6
6
  };
7
7
  export declare const shippingEstimateSignal: import('@preact/signals-core').Signal<ShippingEstimation | undefined>;
8
8
  //# sourceMappingURL=ShippingEstimateSignal.d.ts.map
@@ -14,10 +14,6 @@
14
14
  * is strictly forbidden unless prior written permission is obtained
15
15
  * from Adobe.
16
16
  *******************************************************************/
17
- export * from './IsBillToShippingSignal';
18
- export * from './IsSubscribedToNewsletterSignal';
19
- export * from './SelectedPaymentMethodSignal';
20
- export * from './SelectedShippingMethodSignal';
21
17
  export * from './ServerErrorSignal';
22
18
  export * from './ShippingEstimateSignal';
23
19
  //# sourceMappingURL=index.d.ts.map
@@ -9,5 +9,5 @@ declare const cartWithShippingInfo: ({ methods, selection, }?: {
9
9
  selection?: ShippingMethod | undefined;
10
10
  }) => Cart;
11
11
  declare const virtualCart: Cart;
12
- export { emptyCart, virtualCart, guestCart, simpleCart, cartWithShippingInfo };
13
- //# sourceMappingURL=fixtures.d.ts.map
12
+ export { cartWithShippingInfo, emptyCart, guestCart, simpleCart, virtualCart };
13
+ //# sourceMappingURL=cart.d.ts.map
@@ -2,4 +2,4 @@ import { Customer } from '../../data/models';
2
2
 
3
3
  declare const johnDoe: Customer;
4
4
  export { johnDoe };
5
- //# sourceMappingURL=fixtures.d.ts.map
5
+ //# sourceMappingURL=customer.d.ts.map
@@ -0,0 +1,8 @@
1
+ import { PaymentMethod } from '../../data/models';
2
+
3
+ declare const bankTransfer: PaymentMethod;
4
+ declare const checkMoney: PaymentMethod;
5
+ declare const creditCard: PaymentMethod;
6
+ declare const free: PaymentMethod;
7
+ export { bankTransfer, checkMoney, creditCard, free };
8
+ //# sourceMappingURL=payments.d.ts.map
@@ -5,4 +5,4 @@ declare const freeShipping: ShippingMethod;
5
5
  declare const standardShipping: ShippingMethod;
6
6
  declare const expressShipping: ShippingMethod;
7
7
  export { expressShipping, flatRate, freeShipping, standardShipping };
8
- //# sourceMappingURL=fixtures.d.ts.map
8
+ //# sourceMappingURL=shipping.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import { JSX } from 'preact';
2
2
 
3
- export declare function setupCheckout({ clearLocalStorage, registerCheckoutListeners, checkout, }: {
3
+ export declare function setupCheckout({ clearLocalStorage, checkout, }: {
4
4
  clearLocalStorage?: boolean;
5
5
  registerCheckoutListeners?: boolean;
6
6
  checkout: JSX.Element;
@@ -1,4 +1,4 @@
1
- import { SlotProps } from '../../@adobe-commerce/elsie/src/lib';
1
+ import { SlotProps } from '@dropins/tools/types/elsie/src/lib';
2
2
 
3
3
  export interface TitleProps {
4
4
  displayTitle?: boolean;