efficient-storefront-blocks 0.70.0 → 0.75.0
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.
- package/CHANGELOG.md +57 -0
- package/dist/chunks/EditorPreviewCheckout-27GNLSNR.js +4 -0
- package/dist/chunks/{SiteEditorProvider-3GKJZDL5.js → SiteEditorProvider-N4T55FAV.js} +1 -1
- package/dist/chunks/chunk-3TBLX25X.js +1 -0
- package/dist/chunks/chunk-4V6BLJSG.js +1 -0
- package/dist/chunks/{chunk-QWHNN7GF.js → chunk-K26JUDGZ.js} +1 -1
- package/dist/chunks/chunk-SJODSVWU.js +1 -0
- package/dist/chunks/chunk-WPHE7RI4.js +246 -0
- package/dist/chunks/{fitment-data-6GK7QQQI.js → fitment-data-5ZSHENM3.js} +1 -1
- package/dist/contract.js +2 -2
- package/dist/editor/components/CategorySource.js +1 -1
- package/dist/editor/components/HeaderSettingsPanel.js +1 -1
- package/dist/editor/components/PreviewHeader.d.ts +0 -1
- package/dist/editor/components/PreviewHeader.js +1 -11
- package/dist/editor/lib/document/blocks/service/ContactCards/fields.d.ts +2 -0
- package/dist/editor/lib/document/blocks/service/ContactCards/fields.js +1 -0
- package/dist/editor/lib/document/blocks/service/ContactRouting/fields.js +1 -1
- package/dist/editor/lib/document/blocks/service/FooterMessaging/fields.d.ts +2 -0
- package/dist/editor/lib/document/blocks/service/FooterMessaging/fields.js +1 -0
- package/dist/editor/lib/document/blocks/service/FooterPayment/fields.d.ts +2 -0
- package/dist/editor/lib/document/blocks/service/FooterPayment/fields.js +1 -0
- package/dist/editor/lib/document/blocks/service/MessagingCards/fields.d.ts +2 -0
- package/dist/editor/lib/document/blocks/service/MessagingCards/fields.js +1 -0
- package/dist/editor/lib/document/blocks/service/Reviews/fields.js +1 -1
- package/dist/editor/lib/document/blocks/service/index.d.ts +1 -1
- package/dist/editor/lib/document/blocks/service/index.js +1 -1
- package/dist/editor/lib/document/config.d.ts +2 -0
- package/dist/editor/lib/document/config.js +1 -1
- package/dist/editor/lib/efficient-backend.js +1 -1
- package/dist/editor/lib/efficient-block-sources.js +1 -1
- package/dist/editor/lib/header-settings-source.d.ts +2 -1
- package/dist/editor/lib/header-settings-source.js +1 -1
- package/dist/editor/lib/storefront-editor-words.d.ts +19 -5
- package/dist/editor/lib/storefront-editor-words.js +1 -1
- package/dist/editor.css +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +296 -200
- package/dist/links.d.ts +0 -2
- package/dist/links.js +1 -1
- package/dist/render/built-with.json +1 -1
- package/dist/render/components/CartContext.d.ts +3 -0
- package/dist/render/components/CartContext.js +1 -1
- package/dist/render/components/ChatLauncher.js +1 -1
- package/dist/render/components/ContactCards.d.ts +13 -0
- package/dist/render/components/ContactCards.js +1 -0
- package/dist/render/components/CopyText.d.ts +4 -0
- package/dist/render/components/CopyText.js +1 -0
- package/dist/render/components/Events.d.ts +3 -0
- package/dist/render/components/Events.js +1 -1
- package/dist/render/components/FooterMessaging.d.ts +5 -0
- package/dist/render/components/FooterMessaging.js +1 -0
- package/dist/render/components/FooterPayment.d.ts +11 -0
- package/dist/render/components/FooterPayment.js +1 -0
- package/dist/render/components/GalleryItem.js +1 -1
- package/dist/render/components/GalleryShowcase.js +1 -1
- package/dist/render/components/Header.d.ts +2 -1
- package/dist/render/components/Header.js +1 -1
- package/dist/render/components/HeaderCallButton.d.ts +9 -0
- package/dist/render/components/HeaderCallButton.js +1 -0
- package/dist/render/components/HeaderToolBlocks.d.ts +1 -2
- package/dist/render/components/HeaderToolBlocks.js +1 -1
- package/dist/render/components/MessagingCards.d.ts +9 -0
- package/dist/render/components/MessagingCards.js +1 -0
- package/dist/render/components/QrCode.d.ts +5 -0
- package/dist/render/components/QrCode.js +1 -0
- package/dist/render/components/Reviews.d.ts +14 -4
- package/dist/render/components/Reviews.js +1 -1
- package/dist/render/components/SectionGroupBody.js +1 -1
- package/dist/render/components/checkout/CheckoutPageClient.d.ts +2 -25
- package/dist/render/components/checkout/CheckoutPageClient.js +1 -3
- package/dist/render/components/checkout/checkout-parts.d.ts +5 -0
- package/dist/render/components/checkout/checkout-parts.js +1 -0
- package/dist/render/components/checkout/checkout-state.d.ts +174 -0
- package/dist/render/components/checkout/checkout-state.js +3 -0
- package/dist/render/lib/api/index.d.ts +1 -8
- package/dist/render/lib/api/index.js +1 -1
- package/dist/render/lib/api/types.d.ts +10 -3
- package/dist/render/lib/content/site.d.ts +1 -1
- package/dist/render/lib/document/blocks/commerce/CountrySwitchBlock/render.js +1 -1
- package/dist/render/lib/document/blocks/service/ContactCards/meta.d.ts +7 -0
- package/dist/render/lib/document/blocks/service/ContactCards/meta.js +1 -0
- package/dist/render/lib/document/blocks/service/ContactCards/render.d.ts +4 -0
- package/dist/render/lib/document/blocks/service/ContactCards/render.js +1 -0
- package/dist/render/lib/document/blocks/service/Events/render.js +1 -1
- package/dist/render/lib/document/blocks/service/Footer/meta.js +1 -1
- package/dist/render/lib/document/blocks/service/FooterGroup/meta.js +1 -1
- package/dist/render/lib/document/blocks/service/FooterMessaging/meta.d.ts +2 -0
- package/dist/render/lib/document/blocks/service/FooterMessaging/meta.js +1 -0
- package/dist/render/lib/document/blocks/service/FooterMessaging/render.d.ts +2 -0
- package/dist/render/lib/document/blocks/service/FooterMessaging/render.js +1 -0
- package/dist/render/lib/document/blocks/service/FooterPayment/meta.d.ts +3 -0
- package/dist/render/lib/document/blocks/service/FooterPayment/meta.js +1 -0
- package/dist/render/lib/document/blocks/service/FooterPayment/render.d.ts +2 -0
- package/dist/render/lib/document/blocks/service/FooterPayment/render.js +1 -0
- package/dist/render/lib/document/blocks/service/MessagingCards/meta.d.ts +2 -0
- package/dist/render/lib/document/blocks/service/MessagingCards/meta.js +1 -0
- package/dist/render/lib/document/blocks/service/MessagingCards/render.d.ts +4 -0
- package/dist/render/lib/document/blocks/service/MessagingCards/render.js +1 -0
- package/dist/render/lib/document/blocks/service/Reviews/meta.d.ts +6 -0
- package/dist/render/lib/document/blocks/service/Reviews/meta.js +1 -1
- package/dist/render/lib/document/blocks/service/Reviews/render.js +1 -1
- package/dist/render/lib/document/blocks/service/metas.d.ts +4 -0
- package/dist/render/lib/document/blocks/service/metas.js +1 -1
- package/dist/render/lib/document/blocks/service/renders.d.ts +4 -0
- package/dist/render/lib/document/blocks/service/renders.js +1 -1
- package/dist/render/lib/document/blocks/text-part-shapes.json +137 -6
- package/dist/render/lib/document/card-templates.d.ts +2 -0
- package/dist/render/lib/document/card-templates.js +1 -0
- package/dist/render/lib/document/footer-page-blocks.d.ts +1 -0
- package/dist/render/lib/document/footer-page-blocks.js +1 -1
- package/dist/render/lib/document/lazy-draws.js +1 -1
- package/dist/render/lib/document/render-config.d.ts +2 -0
- package/dist/render/lib/document/render-config.js +1 -1
- package/dist/render/lib/document/section-to-box-rows-reviews.d.ts +1 -0
- package/dist/render/lib/document/section-to-box-rows-reviews.js +1 -0
- package/dist/render/lib/links/link-rules.d.ts +1 -1
- package/dist/render/lib/links/link-rules.js +1 -1
- package/dist/render/lib/qr.d.ts +5 -0
- package/dist/render/lib/qr.js +1 -0
- package/dist/render/lib/sections/messaging.d.ts +45 -0
- package/dist/render/lib/sections/messaging.js +1 -0
- package/dist/render/lib/sections/reviews.d.ts +1 -0
- package/dist/render/lib/sections/reviews.js +1 -0
- package/dist/render/lib/wheels/catalog-default-layout.js +1 -1
- package/dist/render/lib/wheels/collections.js +1 -1
- package/dist/words.d.ts +42 -10
- package/dist/words.js +4 -4
- package/package.json +7 -4
- package/dist/chunks/EditorPreviewCheckout-XI4VULPL.js +0 -4
- package/dist/chunks/chunk-RPLNV3WM.js +0 -1
- package/dist/chunks/chunk-SQH6XBRG.js +0 -1
- package/dist/chunks/chunk-TXTTPEQA.js +0 -1
- package/dist/chunks/chunk-XF2ZAVNU.js +0 -262
- package/dist/render/components/useStorefrontReviews.d.ts +0 -2
- package/dist/render/components/useStorefrontReviews.js +0 -1
- /package/dist/chunks/{chunk-XF2ZAVNU.js.LEGAL.txt → chunk-WPHE7RI4.js.LEGAL.txt} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "efficient-storefront-blocks",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.75.0",
|
|
4
4
|
"description": "The EFFICIENT storefront's website editor — the website builder assembled with the storefront's own sections — for an app that edits a storefront website inside its own page. Built from the efficient-storefront-blocks repository.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": "Efficient Pty Ltd",
|
|
@@ -82,12 +82,15 @@
|
|
|
82
82
|
"CHANGELOG.md",
|
|
83
83
|
"LICENSE"
|
|
84
84
|
],
|
|
85
|
+
"dependencies": {
|
|
86
|
+
"qrcode": "^1.5.4"
|
|
87
|
+
},
|
|
85
88
|
"peerDependencies": {
|
|
86
89
|
"@stripe/react-stripe-js": "^6.7.0",
|
|
87
90
|
"@stripe/stripe-js": "^9.9.0",
|
|
88
|
-
"efficient-easel": "^
|
|
89
|
-
"efficient-shell": "^10.
|
|
90
|
-
"efficient-web-builder": "^
|
|
91
|
+
"efficient-easel": "^23.1.0",
|
|
92
|
+
"efficient-shell": "^10.13.0",
|
|
93
|
+
"efficient-web-builder": "^44.0.0",
|
|
91
94
|
"next": ">=16",
|
|
92
95
|
"react": ">=19",
|
|
93
96
|
"react-dom": ">=19"
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
"use client";import{$ as Vt,K as Ut,L as Mt,M as Wt,N as $t,O as Kt,P as le,R as Pe,S as Yt,T as zt,U as tt,V as Bt,X as nt,Z as Ht,_ as Gt,a as qt,b as _t,c as Dt,d as Ft,ea as Jt,ja as Xt,ka as Zt,na as rt,pa as z,w as Ue}from"./chunk-TXTTPEQA.js";import{i as Fe,o as ge,v as j}from"./chunk-QWHNN7GF.js";import{a as Ot,c as ne,za as Tt}from"./chunk-RPLNV3WM.js";import{k as jt,l as Se,m as H}from"./chunk-SQH6XBRG.js";import{a as et,b as pr}from"./chunk-Y6SLVHK3.js";var en=et((la,Qt)=>{"use strict";var dr="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";Qt.exports=dr});var an=et((ua,rn)=>{"use strict";var mr=en();function tn(){}function nn(){}nn.resetWarningCache=tn;rn.exports=function(){function t(a,o,s,l,p,m){if(m!==mr){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}t.isRequired=t;function e(){return t}var n={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:nn,resetWarningCache:tn};return n.PropTypes=n,n}});var sn=et((ma,on)=>{"use strict";on.exports=an()();var pa,da});import{useEffect as _,useMemo as Ge,useRef as pe,useState as g}from"react";var w=pr(sn(),1);import k from"react";function cn(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,a=Array(e);n<e;n++)a[n]=t[n];return a}function fr(t){if(Array.isArray(t))return t}function mn(t,e,n){return(e=xr(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function gr(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var a,o,s,l,p=[],m=!0,u=!1;try{if(s=(n=n.call(t)).next,e!==0)for(;!(m=(a=s.call(n)).done)&&(p.push(a.value),p.length!==e);m=!0);}catch(h){u=!0,o=h}finally{try{if(!m&&n.return!=null&&(l=n.return(),Object(l)!==l))return}finally{if(u)throw o}}return p}}function yr(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
2
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ln(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,a)}return n}function un(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?ln(Object(n),!0).forEach(function(a){mn(t,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ln(Object(n)).forEach(function(a){Object.defineProperty(t,a,Object.getOwnPropertyDescriptor(n,a))})}return t}function hr(t,e){if(t==null)return{};var n,a,o=vr(t,e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(a=0;a<s.length;a++)n=s[a],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function vr(t,e){if(t==null)return{};var n={};for(var a in t)if({}.hasOwnProperty.call(t,a)){if(e.indexOf(a)!==-1)continue;n[a]=t[a]}return n}function fn(t,e){return fr(t)||gr(t,e)||kr(t,e)||yr()}function br(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var a=n.call(t,e);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function xr(t){var e=br(t,"string");return typeof e=="symbol"?e:e+""}function at(t){"@babel/helpers - typeof";return at=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},at(t)}function kr(t,e){if(t){if(typeof t=="string")return cn(t,e);var n={}.toString.call(t).slice(8,-1);return n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set"?Array.from(t):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?cn(t,e):void 0}}var q=function(e,n,a){var o=!!a,s=k.useRef(a);k.useEffect(function(){s.current=a},[a]),k.useEffect(function(){if(!o||!e)return function(){};var l=function(){if(s.current)return s.current.apply(s,arguments)};return e.on(n,l),function(){e.off(n,l)}},[o,n,e,s])},ot=function(e){var n=k.useRef(e);return k.useEffect(function(){n.current=e},[e]),n.current},ye=function(e){return e!==null&&at(e)==="object"},Cr=function(e){return ye(e)&&typeof e.then=="function"},Sr=function(e){return ye(e)&&typeof e.elements=="function"&&typeof e.createToken=="function"&&typeof e.createPaymentMethod=="function"&&typeof e.confirmCardPayment=="function"},pn="[object Object]",Pr=function t(e,n){if(e===n)return!0;if(!ye(e)||!ye(n))return e===n;var a=Array.isArray(e),o=Array.isArray(n);if(a!==o)return!1;var s=Object.prototype.toString.call(e)===pn,l=Object.prototype.toString.call(n)===pn;if(s!==l)return!1;if(!s&&!a)return e===n;var p=Object.keys(e),m=Object.keys(n);if(p.length!==m.length)return!1;for(var u={},h=0;h<p.length;h+=1)u[p[h]]=!0;for(var C=0;C<m.length;C+=1)u[m[C]]=!0;var v=Object.keys(u);if(v.length!==p.length)return!1;var d=e,T=n,x=function(D){return t(d[D],T[D])};return v.every(x)},gn=function(e,n,a){return ye(e)?Object.keys(e).reduce(function(o,s){var l=!ye(n)||!Pr(e[s],n[s]);return a.includes(s)?(l&&console.warn("Unsupported prop change: options.".concat(s," is not a mutable property.")),o):l?un(un({},o||{}),{},mn({},s,e[s])):o},null):null},yn="Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.",dn=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:yn;if(e===null||Sr(e))return e;throw new Error(n)},wr=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:yn;if(Cr(e))return{tag:"async",stripePromise:Promise.resolve(e).then(function(o){return dn(o,n)})};var a=dn(e,n);return a===null?{tag:"empty"}:{tag:"sync",stripe:a}},Nr=function(e){!e||!e._registerWrapper||!e.registerAppInfo||(e._registerWrapper({name:"react-stripe-js",version:"6.12.0"}),e.registerAppInfo({name:"react-stripe-js",version:"6.12.0",url:"https://stripe.com/docs/stripe-js/react"}))},Me=k.createContext(null);Me.displayName="ElementsContext";var hn=function(e,n){if(!e)throw new Error("Could not find Elements context; You need to wrap the part of your app that ".concat(n," in an <Elements> provider."));return e},st=function(e){var n=e.stripe,a=e.options,o=e.children,s=k.useMemo(function(){return wr(n)},[n]),l=k.useState(function(){return{stripe:s.tag==="sync"?s.stripe:null,elements:s.tag==="sync"?s.stripe.elements(a):null}}),p=fn(l,2),m=p[0],u=p[1];k.useEffect(function(){var v=!0,d=function(x){u(function(A){return A.stripe?A:{stripe:x,elements:x.elements(a)}})};return s.tag==="async"&&!m.stripe?s.stripePromise.then(function(T){T&&v&&d(T)}):s.tag==="sync"&&!m.stripe&&d(s.stripe),function(){v=!1}},[s,m,a]);var h=ot(n);k.useEffect(function(){h!==null&&h!==n&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.")},[h,n]);var C=ot(a);return k.useEffect(function(){if(m.elements){var v=gn(a,C,["clientSecret","fonts"]);v&&m.elements.update(v)}},[a,C,m.elements]),k.useEffect(function(){Nr(m.stripe)},[m.stripe]),k.createElement(Me.Provider,{value:m},o)};st.propTypes={stripe:w.default.any,options:w.default.object};var vn=function(e){var n=k.useContext(Me);return hn(n,e)},bn=function(){var e=vn("calls useElements()"),n=e.elements;return n},Er=function(e){var n=e.children,a=vn("mounts <ElementsConsumer>");return n(a)};Er.propTypes={children:w.default.func.isRequired};var Rr=k.createContext(null);Rr.displayName="CheckoutContext";var xn=k.createContext(null);xn.displayName="CheckoutSdkContext";var it=function(e){var n=k.useContext(xn),a=k.useContext(Me);if(n){if(a)throw new Error("You cannot wrap the part of your app that ".concat(e," in both a checkout provider and <Elements> provider."));return n}else return hn(a,e)},Ir=["mode"],Ar=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},N=function(e,n,a){var o="".concat(Ar(e),"Element"),s=function(u){var h=u.id,C=u.className,v=u.options,d=v===void 0?{}:v,T=u.onBlur,x=u.onFocus,A=u.onReady,D=u.onChange,b=u.onEscape,O=u.onClick,G=u.onLoadError,re=u.onLoaderStart,ae=u.onNetworksChange,Ee=u.onConfirm,oe=u.onCancel,Re=u.onShippingAddressChange,ie=u.onShippingRateChange,Ie=u.onSavedPaymentMethodRemove,he=u.onSavedPaymentMethodUpdate,Ae=u.onAvailablePaymentMethodsChange,Q=it("mounts <".concat(o,">")),ee="elements"in Q?Q.elements:null,$="checkoutSdk"in Q?Q.checkoutSdk:null,ve=k.useState(null),de=fn(ve,2),R=de[0],be=de[1],M=k.useRef(null),se=k.useRef(null);q(R,"blur",T),q(R,"focus",x),q(R,"escape",b),q(R,"click",O),q(R,"loaderror",G),q(R,"loaderstart",re),q(R,"networkschange",ae),q(R,"confirm",Ee),q(R,"cancel",oe),q(R,"shippingaddresschange",Re),q(R,"shippingratechange",ie),q(R,"savedpaymentmethodremove",Ie),q(R,"savedpaymentmethodupdate",he),q(R,"availablepaymentmethodschange",Ae),q(R,"change",D);var ce;A&&(e==="expressCheckout"?ce=A:ce=function(){A(R)}),q(R,"ready",ce),k.useLayoutEffect(function(){if(M.current===null&&se.current!==null&&(ee||$)){var S=null;if($){var F=$,me=$;switch(e){case"paymentForm":S=me.createForm(d);break;case"payment":S=F.createPaymentElement(d);break;case"address":if("mode"in d){var te=d.mode,xe=hr(d,Ir);if(te==="shipping")S=F.createShippingAddressElement(xe);else if(te==="billing")S=F.createBillingAddressElement(xe);else throw new Error("Invalid options.mode. mode must be 'billing' or 'shipping'.")}else throw new Error("You must supply options.mode. mode must be 'billing' or 'shipping'.");break;case"expressCheckout":S=F.createExpressCheckoutElement(d);break;case"currencySelector":S=$.createCurrencySelectorElement();break;case"taxId":S=F.createTaxIdElement(d);break;case"contactDetails":S=F.createContactDetailsElement();break;case"linkSignup":if("createLinkSignupElement"in $)S=$.createLinkSignupElement(d);else throw new Error("<LinkSignupElement> requires <CheckoutElementsProvider> and is not supported inside <CheckoutFormProvider>.");break;case"terms":S=F.createTermsElement(d);break;default:throw new Error("<".concat(o,"> is not supported inside a checkout provider. Use an <Elements> provider instead."))}}else ee&&(S=ee.create(e,d));M.current=S,be(S),S&&S.mount(se.current)}},[ee,$,d]);var I=ot(d);return k.useEffect(function(){if(M.current){var S=gn(d,I,["paymentRequest"]);S&&"update"in M.current&&M.current.update(S)}},[d,I]),k.useLayoutEffect(function(){return function(){if(M.current&&typeof M.current.destroy=="function")try{M.current.destroy(),M.current=null}catch{}}},[]),k.createElement("div",{id:h,className:C,ref:se})},l=function(u){it("mounts <".concat(o,">"));var h=u.id,C=u.className;return k.createElement("div",{id:h,className:C})},p=n?l:s;return p.propTypes={id:w.default.string,className:w.default.string,onChange:w.default.func,onBlur:w.default.func,onFocus:w.default.func,onReady:w.default.func,onEscape:w.default.func,onClick:w.default.func,onLoadError:w.default.func,onLoaderStart:w.default.func,onNetworksChange:w.default.func,onConfirm:w.default.func,onCancel:w.default.func,onShippingAddressChange:w.default.func,onShippingRateChange:w.default.func,onSavedPaymentMethodRemove:w.default.func,onSavedPaymentMethodUpdate:w.default.func,onAvailablePaymentMethodsChange:w.default.func,options:w.default.object},p.displayName=o,p.__elementType=e,p},E=typeof window>"u",Lr=k.createContext(null);Lr.displayName="EmbeddedCheckoutProviderContext";var kn=function(){var e=it("calls useStripe()"),n=e.stripe;return n},ga=N("auBankAccount",E),ya=N("card",E),ha=N("cardNumber",E),va=N("cardExpiry",E),ba=N("cardCvc",E),xa=N("currencySelector",E),ka=N("iban",E),Cn=N("payment",E),Ca=N("expressCheckout",E),Sa=N("paymentRequestButton",E),Pa=N("linkAuthentication",E),wa=N("linkSignup",E),Na=N("contactDetails",E),Ea=N("address",E),Ra=N("shippingAddress",E),Ia=N("paymentMethodMessaging",E),Aa=N("taxId",E),La=N("issuingCardNumberDisplay",E),Oa=N("issuingCardCvcDisplay",E),Ta=N("issuingCardExpiryDisplay",E),ja=N("issuingCardPinDisplay",E),qa=N("issuingCardCopyButton",E),_a=N("terms",E);function Ke(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ke=function(e){return typeof e}:Ke=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ke(t)}var wn="dahlia",Or=function(e){return e===3?"v3":e},Nn="https://js.stripe.com",Tr="".concat(Nn,"/").concat(wn,"/stripe.js"),jr=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,qr=/^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/,Sn="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used",_r=function(e){return jr.test(e)||qr.test(e)},Dr=function(){for(var e=document.querySelectorAll('script[src^="'.concat(Nn,'"]')),n=0;n<e.length;n++){var a=e[n];if(_r(a.src))return a}return null},Pn=function(e){var n=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",a=document.createElement("script");a.src="".concat(Tr).concat(n);var o=document.head||document.body;if(!o)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return o.appendChild(a),a},Fr=function(e,n){!e||!e._registerWrapper||e._registerWrapper({name:"stripe-js",version:"9.17.0",startTime:n})},we=null,We=null,$e=null,Ur=function(e){return function(n){e(new Error("Failed to load Stripe.js",{cause:n}))}},Mr=function(e,n){return function(){window.Stripe?e(window.Stripe):n(new Error("Stripe.js not available"))}},Wr=function(e){return we!==null?we:(we=new Promise(function(n,a){if(typeof window>"u"||typeof document>"u"){n(null);return}if(window.Stripe&&e&&console.warn(Sn),window.Stripe){n(window.Stripe);return}try{var o=Dr();if(o&&e)console.warn(Sn);else if(!o)o=Pn(e);else if(o&&$e!==null&&We!==null){var s;o.removeEventListener("load",$e),o.removeEventListener("error",We),(s=o.parentNode)===null||s===void 0||s.removeChild(o),o=Pn(e)}$e=Mr(n,a),We=Ur(a),o.addEventListener("load",$e),o.addEventListener("error",We)}catch(l){a(l);return}}),we.catch(function(n){return we=null,Promise.reject(n)}))},$r=function(e,n,a){if(e===null)return null;var o=n[0];if(typeof o!="string")throw new Error("Expected publishable key to be of type string, got type ".concat(Ke(o)," instead."));var s=o.match(/^pk_test/),l=Or(e.version),p=wn;s&&l!==p&&console.warn("Stripe.js@".concat(l," was loaded on the page, but @stripe/stripe-js@").concat("9.17.0"," expected Stripe.js@").concat(p,". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));var m=e.apply(void 0,n);return Fr(m,a),m},Ne,En=!1,Rn=function(){return Ne||(Ne=Wr(null).catch(function(e){return Ne=null,Promise.reject(e)}),Ne)};Promise.resolve().then(function(){return Rn()}).catch(function(t){En||console.warn(t)});var In=function(){for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];En=!0;var o=Date.now();return Rn().then(function(s){return $r(s,n,o)})};var Kr="sf:gclid",Yr="sf:fbclid",zr=2160*60*60*1e3;function On(){return typeof window<"u"}function An(t){let e=Se.getItem(t);if(!e)return"";try{let{v:n,t:a}=JSON.parse(e);return!n||typeof a!="number"||Date.now()-a>zr?"":n}catch{return""}}function Ln(t){if(!On())return"";let e=t.replace(/([.$?*|{}()[\]\\/+^])/g,"\\$1"),n=document.cookie.match(new RegExp(`(?:^|; )${e}=([^;]*)`));return n?decodeURIComponent(n[1]):""}function Tn(){if(!On())return{};let t=An(Kr),e=An(Yr),n=Ln("_fbp"),a=Ln("_fbc");!a&&e&&(a=`fb.1.${Date.now()}.${e}`);let o={};return t&&(o.gclid=t),e&&(o.fbclid=e),n&&(o.fbp=n),a&&(o.fbc=a),o}var jn="sf:meta-purchases",Br=20;function _n(){return typeof window>"u"||window.parent!==window}function Hr(...t){try{if(_n()||typeof window.fbq!="function")return;window.fbq(...t)}catch{}}var qn=new Set;function Gr(t){if(qn.has(t))return!1;qn.add(t);try{let e=JSON.parse(Se.getItem(jn)??"[]");if(e.includes(t))return!1;Se.setItem(jn,JSON.stringify([...e,t].slice(-Br)))}catch{}return!0}function Vr(t){return[...new Set(t.filter(Pe).flatMap(e=>e.components.map(n=>n.partNumber)))]}function Dn(t){let e=t.confirmation;_n()||!Gr(e.orderNumber)||Hr("track","Purchase",{value:Number(e.grandTotal),currency:e.currency,content_type:"product",content_ids:Vr(t.lines)},{eventID:e.orderNumber})}var ct="checkout-afterpay-context",Ye="checkout-gocardless-context",lt="checkout-zip-context",ze="checkout-klarna-context";function Jr({evidence:t,parked:e}){return t?{action:"capture",evidence:t,parked:e}:e?{action:"settle",parked:e}:{action:"ignore"}}function Xr(t,e){let n=t.getItem(e);if(t.removeItem(e),!n)return null;try{return JSON.parse(n)}catch{return null}}var Fn={name:"Afterpay",legParam:"afterpay",legValues:["confirm","cancel"],storageKey:ct,evidenceFrom(t,e){return e==="cancel"||(t.get("status")??"").toUpperCase()==="CANCELLED"?null:t.get("orderToken")},requestFrom:t=>({token:t})},Un={name:"Zip",legParam:"zip",legValues:["return"],storageKey:lt,evidenceFrom(t){let e=(t.get("result")??"").toLowerCase();return e==="cancelled"||e==="declined"?null:t.get("checkoutId")},requestFrom:t=>({checkoutId:t})};async function ut(t,e){let n=new URLSearchParams(e.search),a=n.get(t.legParam);if(!a||!t.legValues.includes(a))return;let o=Xr(e.storage,t.storageKey),s=t.evidenceFrom(n,a);e.scrubQuery();let l=Jr({evidence:s,parked:o});if(l.action!=="ignore"){if(e.page.clearCart(),l.action==="settle"){e.page.note(`The ${t.name} payment was not completed \u2014 our team will follow up on payment.`),e.page.land(l.parked.confirmation);return}e.page.setConfirming(!0);try{let p=await e.capture(t.requestFrom(l.evidence));p.status==="paid"?e.page.markPaid():e.page.note(`${t.name} declined the payment \u2014 our team will follow up on payment.`),e.page.land(l.parked?.confirmation??p)}catch{l.parked?(e.page.note(`We could not confirm the ${t.name} payment \u2014 our team will follow up on payment.`),e.page.land(l.parked.confirmation)):e.page.fail(`We could not confirm your ${t.name} payment. Please contact us before trying again \u2014 your payment may already have been taken.`)}finally{e.page.setConfirming(!1)}}}function Mn(t,e,n){let a=(e??"").trim();if(!a)return"";if(n.length===0)return a;let o=a.toUpperCase(),s=`${t.toUpperCase()}-${o}`,l=n.find(p=>p.code&&p.code.toUpperCase()===o)??n.find(p=>p.code&&p.code.toUpperCase()===s)??n.find(p=>p.name.toUpperCase()===o);return l?l.code||l.name:""}import{Fragment as U,jsx as r,jsxs as c}from"react/jsx-runtime";function Wn(t){let e=t.indexOf(`
|
|
3
|
-
`);return e===-1?[t,""]:[t.slice(0,e),t.slice(e+1)]}function $n(t,{canParkContext:e}={canParkContext:!0}){let n=t.paymentMethods,a=[];return n.includes("card")&&a.push({key:"card",title:"Card",body:null,price:r("span",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-accent",children:"VISA \xB7 MC \xB7 AMEX"})}),n.includes("paypal")&&t.paypalClientId&&a.push({key:"paypal",title:"PayPal",body:null,price:r("span",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-accent",children:"PAYPAL \xB7 CARDS"})}),n.includes("afterpay")&&a.push({key:"afterpay",title:"Afterpay",body:null,price:r("span",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-accent",children:"4 \xD7 INTEREST-FREE"})}),n.includes("square")&&t.squareApplicationId&&t.squareLocationId&&a.push({key:"square",title:"Card (Square)",body:null,price:r("span",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-accent",children:"VISA \xB7 MC \xB7 AMEX"})}),n.includes("gocardless")&&e&&a.push({key:"gocardless",title:"Bank Direct Debit",body:null,price:r("span",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-accent",children:"PAY BY BANK"})}),n.includes("zip")&&a.push({key:"zip",title:"Zip",body:null,price:r("span",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-accent",children:"PAY IN 4"})}),n.includes("klarna")&&e&&a.push({key:"klarna",title:"Klarna",body:null,price:r("span",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-accent",children:"PAY LATER"})}),a.push({key:"bank",title:"Bank transfer",body:null,price:r("span",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-fg-dim",children:"Invoiced"})}),a}function mt({site:t,logo:e,preview:n=!1}){let{items:a,totals:o,coupon:s,refuseCoupon:l,deliveryOptions:p,shippingMethodId:m,setShippingMethodId:u,setQuoteDestination:h,identify:C,clearCapturedCart:v}=tt(),d=p.find(i=>i.id===m)?.pickupLocation??null,{country:T,countries:x,activeCountry:A,formatMoney:D}=le(),[b,O]=g(()=>$n(t)[0].key),[G,re]=g(!0);_(()=>{re(jt(H))},[]);let[ae,Ee]=g(!1),[oe,Re]=g(""),[ie,Ie]=g(""),[he,Ae]=g(""),[Q,ee]=g(""),[$,ve]=g(""),[de,R]=g(""),[be,M]=g(""),[se,ce]=g(""),[I,S]=g(()=>T||x[0]?.code||""),[F,me]=g(""),[te,xe]=g([]),[ft,Je]=g(null),[Le,Oe]=g(null),Hn=Ge(()=>x.find(i=>i.code===I)??A,[x,I,A])?.postalLabel||"Postal Code",Gn=te[0]?.divisionType||"State / Province";_(()=>{if(!I){xe([]),Je(I);return}Je(null);let i=!1;return j.listCountrySubdivisions(I).then(f=>{i||(xe(f),Je(I),me(""))}),()=>{i=!0}},[I]),_(()=>{h(I?{country:I,subdivision:F}:null)},[I,F,h]),_(()=>()=>h(null),[h]);let[X,gt]=g(null),[yt,ht]=g([]),[Te,je]=g("new"),[Xe,vt]=g(!1),[bt,Vn]=g("Home"),[xt,kt]=g(null),[K]=g(()=>Zt()),[qe,Y]=g(null),[Ct,ke]=g(null),[St,Jn]=g(null),[Xn,Zn]=g(!1),[Qn,er]=g(!1),[V,Ze]=g(null),[Pt,fe]=g(!1),[wt,Z]=g(null),[tr,nr]=g(!1),[rr,Nt]=g(!1),[ar,or]=g(!1),[ir,Et]=g(!1),Rt=pe(!1);_(()=>{n||Rt.current||!a.some(Pe)||(Rt.current=!0,Ut({lines:a,currency:o.currency,value:o.subtotal-o.discount,coupon:s?.valid?s.code:void 0}))},[a,o,s,n]),_(()=>{C(oe,ie.trim()||void 0)},[oe,ie,C]);let It=pe(null),[_e,sr]=g(null);_(()=>{let i=It.current;if(!_e||!i)return;let f=()=>i.style.setProperty("--sf-checkout-header-h",`${_e.offsetHeight}px`);f();let y=new ResizeObserver(f);return y.observe(_e),()=>y.disconnect()},[_e]),_(()=>{let i=y=>({setConfirming:y,land:Y,markPaid:()=>fe(!0),note:Z,fail:ke,clearCart:v}),f={search:window.location.search,storage:H,scrubQuery:()=>window.history.replaceState(null,"",window.location.pathname)};ut(Fn,{...f,capture:j.captureAfterpayPayment,page:i(nr)}),ut(Un,{...f,capture:j.captureZipPayment,page:i(or)})},[]),_(()=>{let f=new URLSearchParams(window.location.search).get("gocardless");if(f!=="confirm"&&f!=="cancel")return;let y=H.getItem(Ye);if(H.removeItem(Ye),window.history.replaceState(null,"",window.location.pathname),!y)return;let L;try{L=JSON.parse(y)}catch{return}if(v(),f==="cancel"){Z("The direct debit was not set up \u2014 our team will follow up on payment."),Y(L.confirmation);return}Nt(!0),j.completeGocardlessPayment({idempotencyKey:L.idempotencyKey}).then(P=>{P.status==="paid"?fe(!0):P.status==="declined"?Z("The direct debit was declined \u2014 our team will follow up on payment."):Z("Your direct debit is set up \u2014 the payment is collecting and will clear in a few days.")}).catch(()=>{Z("We could not confirm the direct debit \u2014 our team will follow up on payment.")}).finally(()=>{Y(L.confirmation),Nt(!1)})},[]),_(()=>{let i=new URLSearchParams(window.location.search),f=i.get("klarna");if(f!=="confirm"&&f!=="cancel")return;let y=H.getItem(ze);H.removeItem(ze);let L=i.get("authorization_token");if(window.history.replaceState(null,"",window.location.pathname),!y)return;let P;try{P=JSON.parse(y)}catch{return}if(v(),f==="cancel"||!L){Z("The Klarna payment was not completed \u2014 our team will follow up on payment."),Y(P.confirmation);return}Et(!0),j.captureKlarnaPayment({idempotencyKey:P.idempotencyKey,authorizationToken:L}).then(W=>{W.status==="paid"?fe(!0):W.status==="declined"?Z("Klarna declined the payment \u2014 our team will follow up on payment."):Z("Your Klarna payment is being reviewed \u2014 we'll confirm the outcome shortly.")}).catch(()=>{Z("We could not confirm the Klarna payment \u2014 our team will follow up on payment.")}).finally(()=>{Y(P.confirmation),Et(!1)})},[]);function At(i){let[f,y]=Wn(i.address);ee(f),ve(y),R(i.city),M(i.zip_code),i.country&&S(i.country),i.phone&&ce(i.phone),Oe({country:i.country||null,state:i.state??""})}_(()=>{if(Le){if((Le.country||I)!==I){Oe(null);return}ft===I&&(me(Mn(I,Le.state,te)),Oe(null))}},[Le,I,ft,te]),_(()=>{let i=!1;return(async()=>{try{let[f,y,L]=await Promise.all([ge.me(),ge.myProfile().catch(()=>null),ge.myAddresses().catch(()=>[])]);if(i)return;gt(f);let P=L.filter(Ce=>Ce.is_active);ht(P),Re(f.email);let W=(y?.contact_name??"").split(/\s+/);Ie(f.first_name||W[0]||""),Ae(f.last_name||W.slice(1).join(" "));let J=f.phone||y?.phone;J&&ce(J);let Qe=P.find(Ce=>Ce.id===f.default_delivery_location)??P[0];if(Qe)je(Qe.id),At(Qe);else if(y){let[Ce,ur]=Wn(y.address??"");ee(Ce),ve(ur),R(y.city??""),M(y.zip_code??""),y.country&&S(y.country),Oe({country:y.country||null,state:y.state??""})}}catch{}})(),()=>{i=!0}},[]);function cr(){ge.logout(),gt(null),ht([]),je("new"),vt(!1)}let De=Ge(()=>$n(t,{canParkContext:G}),[t,G]);_(()=>{De.some(i=>i.key===b)||O(De[0].key)},[De,b]);let Lt=$.trim()?`${Q}
|
|
4
|
-
${$.trim()}`:Q;async function lr(){if(n||ae||a.length===0||o.repricing)return;let i=a.filter(Pe).flatMap(f=>Ft(f.components,f.qty));if(i.length===0){ke("Pick a size on each wheel's product page before checking out.");return}Ee(!0),ke(null);try{let f=X?j.createOrderAuthed:j.createOrder,y=Xt(),L=await f({customer:{email:oe,name:`${ie} ${he}`.trim(),phone:se.trim()||void 0,address:Lt,city:de,state:F||void 0,zipCode:be,country:I},items:i,currency:o.currency,idempotencyKey:K,shippingMethodId:m??void 0,couponCode:_t(s),...y==="denied"?{}:Tn(),...y?{adConsent:y}:{}});if(Mt({confirmation:L,lines:a,adsSendTo:t.googleAdsId&&t.googleAdsConversionLabel?`${t.googleAdsId}/${t.googleAdsConversionLabel}`:null}),Dn({confirmation:L,lines:a}),v(),X&&Xe&&Te==="new")try{await ge.createAddress({label:bt.trim()||"Home",contact_name:`${ie} ${he}`.trim(),phone:se.trim(),address:Lt,city:de,zip_code:be,state:F,country:I}),kt("Address saved to your account.")}catch{kt("We couldn't save the address to your account \u2014 you can add it under Account \u2192 Addresses.")}if(b==="card"&&t.paymentMethods.includes("card")){let P=await j.createPaymentIntent({idempotencyKey:K});Ze(L),Jn(P)}else if(b==="paypal"&&t.paymentMethods.includes("paypal"))Ze(L),Zn(!0);else if(b==="afterpay"&&t.paymentMethods.includes("afterpay")){let P=window.location.origin,W=await j.createAfterpayCheckout({idempotencyKey:K,confirmUrl:`${P}/checkout?afterpay=confirm`,cancelUrl:`${P}/checkout?afterpay=cancel`}),J={idempotencyKey:K,confirmation:L};H.setItem(ct,JSON.stringify(J)),window.location.assign(W.redirectCheckoutUrl);return}else if(b==="square"&&t.paymentMethods.includes("square"))Ze(L),er(!0);else if(b==="gocardless"&&t.paymentMethods.includes("gocardless")){let P=window.location.origin,W=await j.createGocardlessBillingRequest({idempotencyKey:K,confirmUrl:`${P}/checkout?gocardless=confirm`,cancelUrl:`${P}/checkout?gocardless=cancel`}),J={idempotencyKey:K,confirmation:L};H.setItem(Ye,JSON.stringify(J)),window.location.assign(W.authorisationUrl);return}else if(b==="zip"&&t.paymentMethods.includes("zip")){let P=window.location.origin,W=await j.createZipCheckout({idempotencyKey:K,redirectUrl:`${P}/checkout?zip=return`}),J={idempotencyKey:K,confirmation:L};H.setItem(lt,JSON.stringify(J)),window.location.assign(W.redirectUrl);return}else if(b==="klarna"&&t.paymentMethods.includes("klarna")){let P=window.location.origin,W=await j.createKlarnaCheckout({idempotencyKey:K,confirmUrl:`${P}/checkout?klarna=confirm`,cancelUrl:`${P}/checkout?klarna=cancel`}),J={idempotencyKey:K,confirmation:L};H.setItem(ze,JSON.stringify(J)),window.location.assign(W.redirectUrl);return}else Y(L)}catch(f){let y=Dt(f);y?(l(y),ke(`${y} Your order has not been placed. Place it again to continue without the code.`)):ke(f instanceof Fe?f.message:"Could not place the order. Please try again."),Ee(!1)}}return qe?c("div",{className:"flex min-h-screen flex-col items-center justify-center gap-4 bg-bg px-6 text-center text-fg",children:[r("h1",{className:"font-display text-3xl",children:Pt?"Payment received":"Order received"}),c("p",{className:"text-fg-dim",children:[Pt?c(U,{children:["Thank you \u2014 your payment for order"," ",r("span",{className:"font-mono text-fg",children:qe.orderNumber})," has gone through."," "]}):c(U,{children:["Thank you \u2014 your order ",r("span",{className:"font-mono text-fg",children:qe.orderNumber})," is being reviewed by our team."," "]}),X?c(U,{children:["Track it under"," ",r(ne,{href:"/account/orders",className:"text-accent underline",children:"your orders"}),"."]}):r(U,{children:"We\u2019ve emailed you a link to set a password and track it."})]}),wt&&r("p",{className:"text-sm text-fg-dim",children:wt}),xt&&r("p",{className:"text-sm text-fg-dim",children:xt}),!X&&c("p",{className:"text-sm text-fg-dim",children:["You can also"," ",r(ne,{href:`/track?order=${encodeURIComponent(qe.orderNumber)}`,className:"text-accent underline",children:"track this order"})," ","anytime with just your order number and email \u2014 no password needed."]}),r(ne,{href:"/wheels",className:"mt-2 border-2 border-line px-6 py-3 font-mono text-[12px] uppercase tracking-[0.24em] hover:border-accent",children:"Continue browsing"})]}):tr?c("div",{className:"flex min-h-screen flex-col items-center justify-center gap-4 bg-bg px-6 text-center text-fg",children:[r("h1",{className:"font-display text-3xl",children:"Confirming your payment\u2026"}),r("p",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-fg-dim",children:"Checking with Afterpay \u2014 one moment."})]}):rr?c("div",{className:"flex min-h-screen flex-col items-center justify-center gap-4 bg-bg px-6 text-center text-fg",children:[r("h1",{className:"font-display text-3xl",children:"Setting up your direct debit\u2026"}),r("p",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-fg-dim",children:"Confirming with GoCardless \u2014 one moment."})]}):ar?c("div",{className:"flex min-h-screen flex-col items-center justify-center gap-4 bg-bg px-6 text-center text-fg",children:[r("h1",{className:"font-display text-3xl",children:"Confirming your payment\u2026"}),r("p",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-fg-dim",children:"Checking with Zip \u2014 one moment."})]}):ir?c("div",{className:"flex min-h-screen flex-col items-center justify-center gap-4 bg-bg px-6 text-center text-fg",children:[r("h1",{className:"font-display text-3xl",children:"Confirming your payment\u2026"}),r("p",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-fg-dim",children:"Checking with Klarna \u2014 one moment."})]}):St?r(Zr,{payment:St,onPaid:()=>{fe(!0),Y(V)},onSkip:()=>Y(V)}):Xn&&V?r(ta,{confirmation:V,clientId:t.paypalClientId??"",idemKey:K,onPaid:()=>{fe(!0),Y(V)},onSkip:()=>Y(V)}):Qn&&V?r(ra,{confirmation:V,applicationId:t.squareApplicationId??"",locationId:t.squareLocationId??"",environment:t.squareEnvironment??"production",idemKey:K,onPaid:()=>{fe(!0),Y(V)},onSkip:()=>Y(V)}):c("div",{ref:It,className:"bg-bg text-fg",children:[c("header",{ref:sr,className:"sticky top-0 z-30 grid grid-cols-[1fr_auto_1fr] items-center gap-8 border-b border-line px-[var(--sf-site-gutter,40px)] py-6 backdrop-blur-md max-[640px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[640px]:py-4",style:{background:"color-mix(in oklab, var(--bg) 92%, transparent)"},children:[c(ne,{href:"/",className:"inline-flex items-center gap-3 font-mono text-[13px] uppercase tracking-[0.26em] text-fg-dim transition-colors hover:text-accent",children:["\u2190",r("span",{className:"max-[640px]:hidden",children:"Back to shop"})]}),r(ne,{href:"/","aria-label":`${t.name} home`,className:"inline-flex items-center justify-center",children:r(Ht,{variant:"header",scrolled:!0,src:e?.url??null,reverse:e?.reverse??!1,reversedSrc:e?.reversed??null,inkIsDark:e?.inkIsDark??null,size:e?.size??"medium",sizePx:e?.sizePx??null,siteName:t.name})}),t.cardPayments?c("span",{className:"flex items-center justify-end gap-3 font-mono text-[12px] uppercase tracking-[0.26em] text-fg-dim",children:[r("span",{className:"text-green",children:"\u25CF"}),r("span",{className:"max-[640px]:hidden",children:"Encrypted \xB7"})," Stripe"]}):r("span",{})]}),c("section",{className:"mx-auto flex max-w-[var(--sf-site-width,1600px)] flex-wrap items-center justify-between gap-x-8 gap-y-3 border-b border-line bg-surface px-[var(--sf-site-gutter,40px)] py-4 font-mono text-[13px] font-medium uppercase tracking-[0.24em] text-fg max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]",children:[r("span",{className:"inline-flex items-center bg-accent px-3 py-1 font-bold text-bg",children:"Checkout"}),r("nav",{"aria-label":"Checkout steps",className:"flex flex-wrap items-center gap-5",children:[{n:"01",label:"Cart",state:"done"},{n:"02",label:"Ship & pay",state:"active"},{n:"03",label:"Confirmed",state:"pending"}].map(i=>c("span",{className:["relative flex items-center gap-2 transition-colors",i.state==="pending"?"text-fg-dim":"text-fg",i.state==="active"?"font-bold after:absolute after:inset-x-0 after:-bottom-1 after:h-[2px] after:bg-accent":""].join(" "),children:[r("span",{className:i.state==="done"?"text-accent font-bold":"",children:i.n}),r("span",{children:i.label})]},i.n))})]}),c("main",{className:"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-[1fr_420px] items-start gap-16 px-[var(--sf-site-gutter,40px)] pt-10 pb-[100px] max-[1100px]:grid-cols-1 max-[1100px]:gap-10 max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:pt-8 max-[1100px]:pb-20",children:[c("div",{children:[c(Be,{num:"N\xB0 01",title:"Contact",children:[r(z,{label:"Email",hint:X?c(U,{children:["Signed in \xB7"," ",r("button",{type:"button",onClick:cr,className:"underline transition-colors hover:text-accent",children:"Not you? Sign out"})]}):void 0,children:r("input",{type:"email",value:oe,onChange:i=>Re(i.target.value),placeholder:"you@example.com",readOnly:X!==null,className:B+(X?" opacity-70":"")})}),c(Yn,{children:[r(z,{label:"First name",children:r("input",{type:"text",value:ie,onChange:i=>Ie(i.target.value),className:B})}),r(z,{label:"Last name",children:r("input",{type:"text",value:he,onChange:i=>Ae(i.target.value),className:B})})]})]}),c(Be,{num:"N\xB0 02",title:d?"Collection":"Shipping address",children:[d?c("div",{className:"grid gap-2 text-[14px] leading-[1.6]",children:[r("span",{className:"font-medium",children:d.name}),[d.address,d.city,d.state,d.zipCode,d.country].filter(Boolean).length>0&&r("span",{className:"opacity-80",children:[d.address,d.city,d.state,d.zipCode,d.country].filter(Boolean).join(", ")}),d.openingHours&&r("span",{className:"opacity-80",children:d.openingHours}),d.instructions&&r("span",{className:"opacity-80",children:d.instructions}),r("span",{className:"mt-1 font-mono text-[11px] uppercase tracking-[0.2em] text-fg-dim",children:"No delivery address needed"})]}):c(U,{children:[X!==null&&yt.length>0&&c("div",{className:"grid gap-3",children:[yt.map(i=>r(He,{active:Te===i.id,onClick:()=>{je(i.id),At(i)},title:i.label,body:i.formatted_address,price:null},i.id)),r(He,{active:Te==="new",onClick:()=>je("new"),title:"New address",body:null,price:null})]}),r(z,{label:"Address line 1",children:r("input",{type:"text",value:Q,onChange:i=>ee(i.target.value),className:B})}),r(z,{label:"Address line 2",children:r("input",{type:"text",value:$,onChange:i=>ve(i.target.value),placeholder:"Apartment, unit, garage bay\u2026",className:B})}),c(Yn,{cols:"three",children:[r(z,{label:"City",children:r("input",{type:"text",value:de,onChange:i=>R(i.target.value),className:B})}),r(z,{label:Hn,children:r("input",{type:"text",value:be,onChange:i=>M(i.target.value),className:B})}),r(z,{label:"Country",separate:!0,children:r(rt,{value:I,onChange:i=>S(i.target.value),className:B+" pr-10",style:Kn,children:x.map(i=>r("option",{value:i.code,children:i.name},i.code))})})]}),r(z,{label:Gn,separate:!0,children:te.length>0?c(rt,{value:F,onChange:i=>me(i.target.value),className:B+" pr-10",style:Kn,children:[r("option",{value:"",children:"Select\u2026"}),te.map(i=>r("option",{value:i.code||i.name,children:i.name},i.code||i.name))]}):r("input",{type:"text",value:F,onChange:i=>me(i.target.value),className:B})})]}),r(z,{label:"Phone",children:r("input",{type:"tel",value:se,onChange:i=>ce(i.target.value),placeholder:"+44 7700 900000",className:B})}),!d&&X!==null&&Te==="new"&&c(U,{children:[r(aa,{checked:Xe,onChange:vt,label:"Save this address to my account"}),Xe&&r(z,{label:"Address label",children:r("input",{type:"text",value:bt,onChange:i=>Vn(i.target.value),placeholder:"Home",className:B})})]})]}),r(Be,{num:"N\xB0 03",title:"Shipping",children:c("div",{className:"grid gap-3",children:[p.map(i=>{let f=i.pickupLocation,y=f?[f.address,f.city,f.state,f.zipCode].filter(Boolean).join(", "):null;return r(He,{active:m===i.id,onClick:()=>u(i.id),title:f?`${i.name} \u2014 ${f.name}`:i.name,body:f?[y,f.openingHours,f.instructions,i.description].filter(Boolean).join(" \xB7 "):i.description||null,price:o.freeShipping||i.amount===0?Ue:D(i.amount,o.currency),tag:i.tag||void 0},i.id)}),p.length===0&&r("p",{className:"font-mono text-[11px] uppercase tracking-[0.2em] text-fg-dim",children:"Shipping is arranged after your order is reviewed."})]})}),c(Be,{num:"N\xB0 04",title:"Payment",children:[r("div",{className:"grid gap-3",children:De.map(i=>r(He,{active:b===i.key,onClick:()=>O(i.key),title:i.title,body:i.body,price:i.price,tag:i.tag},i.key))}),b==="card"?r("p",{className:"font-mono text-[11px] uppercase tracking-[0.2em] text-fg-dim",children:"You\u2019ll enter card details on the secure payment step after placing the order."}):b==="paypal"?r("p",{className:"font-mono text-[11px] uppercase tracking-[0.2em] text-fg-dim",children:"You\u2019ll approve the payment with PayPal on the payment step after placing the order."}):b==="afterpay"?r("p",{className:"font-mono text-[11px] uppercase tracking-[0.2em] text-fg-dim",children:"You\u2019ll be taken to Afterpay to approve four interest-free payments, then brought straight back."}):b==="square"?r("p",{className:"font-mono text-[11px] uppercase tracking-[0.2em] text-fg-dim",children:"You\u2019ll enter card details on the secure payment step after placing the order."}):b==="gocardless"?r("p",{className:"font-mono text-[11px] uppercase tracking-[0.2em] text-fg-dim",children:"You\u2019ll set up a bank direct debit with GoCardless, then be brought straight back. Direct debits clear in a few days."}):b==="zip"?r("p",{className:"font-mono text-[11px] uppercase tracking-[0.2em] text-fg-dim",children:"You\u2019ll be taken to Zip to approve four instalments, then brought straight back."}):b==="klarna"?r("p",{className:"font-mono text-[11px] uppercase tracking-[0.2em] text-fg-dim",children:"You\u2019ll be taken to Klarna to choose how to pay, then brought straight back."}):r("p",{className:"font-mono text-[11px] uppercase tracking-[0.2em] text-fg-dim",children:"Our team emails you the invoice and bank details after review."})]})]}),c("aside",{className:"sticky top-[var(--sf-checkout-header-h,88px)] border border-line max-[1100px]:static",style:{background:"linear-gradient(180deg, color-mix(in oklab, var(--site-surface) 70%, var(--bg)) 0%, var(--bg) 100%)"},children:[c("header",{className:"flex items-center justify-between border-b border-accent bg-accent px-6 py-4 font-mono text-[13px] font-bold uppercase tracking-[0.28em] text-bg",children:[r("span",{children:"Your order"}),r(ne,{href:"/wheels",className:"text-bg/80 transition-colors hover:text-bg",children:"Edit \u2197"})]}),r("div",{className:"flex flex-col px-6 py-2",children:a.length===0?c("div",{className:"py-8 text-center font-serif text-[16px] italic leading-[1.5] text-fg-dim",children:["Your cart is empty. ",r(ne,{href:"/wheels",className:"text-accent underline-offset-4 hover:underline",children:"Browse the catalog \u2192"})]}):a.map(i=>r(oa,{slug:i.slug,name:i.name,qty:i.qty,config:i.config,configSummary:ia(i.config),price:Yt(i,o.currency)??0,currency:o.currency},i.id))}),r("div",{className:"border-t border-line px-6 pt-5",children:r(Jt,{customerEmail:oe})}),c("div",{className:"flex flex-col gap-2 border-t border-line mt-5 px-6 pt-5",children:[r(ue,{label:"Subtotal",value:D(o.subtotal,o.currency)}),o.discount>0&&s?.valid&&r(ue,{label:`Coupon \xB7 ${s.code}`,value:c("span",{className:"font-semibold text-green",children:["\u2212 ",D(o.discount,o.currency)]})}),s?.deferred&&r(ue,{label:`Coupon \xB7 ${s.code}`,value:qt}),s?.valid&&s.effects?.gift&&r(ue,{label:`Free gift \xB7 ${s.effects.gift.partNumber}${s.effects.gift.quantity>1?` \xD7${s.effects.gift.quantity}`:""}`,value:r("span",{className:"font-semibold text-green",children:Ue})}),r(ue,{label:"Shipping",value:o.shippingStatus==="free"?r("span",{className:"font-semibold text-green",children:Ue}):$t(o.shippingStatus)??D(o.shipping,o.currency)}),o.tax&&(o.tax.charged?r(ue,{label:o.tax.inclusive?`${o.tax.name} included \xB7 ${o.tax.rate}%`:o.tax.name,value:D(o.tax.amount,o.currency)}):o.tax.name?r(ue,{label:o.tax.name,value:Wt}):null)]}),c("div",{className:"mt-4 flex items-end justify-between border-y-2 border-accent px-6 py-4",style:{background:"color-mix(in oklab, var(--accent) 10%, var(--bg))"},children:[r("span",{className:"font-display text-[20px] font-bold uppercase tracking-[0.04em] text-fg",children:"Total"}),r("span",{className:"text-right font-display text-[34px] font-bold leading-none tracking-[-0.025em] text-fg",children:o.repricing?"\u2026":D(o.grand,o.currency)})]}),c("div",{className:"flex flex-col gap-3 px-6 pt-5 pb-6",children:[Ct&&r("p",{className:"border border-red-300 bg-red-50 px-3 py-2 text-[13px] text-red-700",children:Ct}),o.hasUnpricedLine&&c("p",{className:"border border-amber-300 bg-amber-50 px-3 py-2 text-[13px] text-amber-800",children:["One or more items have no price in ",o.currency,". Remove them, or switch region, to continue."]}),r("button",{type:"button",onClick:lr,disabled:ae||a.length===0||o.hasUnpricedLine||o.repricing,className:["group flex items-center justify-between border px-5 py-5 font-mono text-[14px] font-medium uppercase tracking-[0.3em] transition-all",a.length===0||ae||o.hasUnpricedLine||o.repricing?"cursor-not-allowed border-line bg-surface text-fg-dim":"border-btn bg-btn text-btn-ink hover:border-fg hover:bg-fg"].join(" "),children:ae?c(U,{children:["Building order\u2026 ",r("span",{children:"\xB7"})]}):o.repricing?c(U,{children:["Updating total\u2026 ",r("span",{children:"\xB7"})]}):c(U,{children:[b==="bank"?"Place order":"Continue to payment"," \xB7"," ",D(o.grand,o.currency),r("span",{className:"transition-transform group-hover:translate-x-1",children:"\u2192"})]})})]})]})]}),r("footer",{className:"flex flex-wrap items-center justify-between gap-4 border-t border-line px-[var(--sf-site-gutter,40px)] py-6 font-mono text-[12px] uppercase tracking-[0.22em] text-fg-dim max-[640px]:px-[min(20px,var(--sf-site-gutter,40px))]",children:r("span",{children:Bt({legalName:t.legalName,foundedYear:t.foundedYear,siteName:t.name})})})]})}var B="w-full border-2 border-line bg-bg px-4 py-4 font-display text-[17px] tracking-[-0.005em] text-fg outline-none transition-colors placeholder:text-fg-dim hover:border-fg-dim focus:border-accent",Kn={backgroundImage:"linear-gradient(45deg, transparent 50%, var(--accent) 50%), linear-gradient(135deg, var(--accent) 50%, transparent 50%)",backgroundPosition:"calc(100% - 18px) 50%, calc(100% - 12px) 50%",backgroundSize:"6px 6px",backgroundRepeat:"no-repeat"};function Be({num:t,title:e,children:n}){return c("section",{className:"mb-6 border border-line bg-bg",children:[c("header",{className:"flex items-center gap-4 border-b border-line bg-surface px-6 py-4",children:[r("span",{className:"inline-flex items-center justify-center bg-accent px-3 py-1 font-mono text-[11px] font-bold uppercase tracking-[0.24em] text-bg",children:t}),r("h2",{className:"font-display text-[26px] font-medium uppercase leading-none tracking-[-0.02em] text-fg",children:e})]}),r("div",{className:"flex flex-col gap-4 px-6 py-6",children:n})]})}function Yn({cols:t="two",children:e}){return r("div",{className:["grid gap-3 max-[640px]:grid-cols-1",t==="two"?"grid-cols-2":"grid-cols-[1.2fr_1fr_1fr]"].join(" "),children:e})}function He({active:t,onClick:e,title:n,body:a,price:o,tag:s}){return c("button",{type:"button",onClick:e,"aria-pressed":t,className:["relative grid grid-cols-[auto_1fr_auto] items-center gap-5 border bg-bg px-6 py-5 text-left transition-colors",t?"border-accent outline outline-1 outline-accent -outline-offset-1":"border-line hover:border-[color-mix(in_oklab,var(--accent)_50%,var(--site-line))]"].join(" "),style:t?{background:"color-mix(in oklab, var(--accent) 14%, var(--bg))"}:void 0,children:[t&&r("span",{"aria-hidden":!0,className:"absolute inset-y-0 left-0 w-[3px] bg-accent"}),r("span",{className:["flex h-[18px] w-[18px] items-center justify-center rounded-full border-2",t?"border-accent":"border-fg-dim"].join(" "),children:t&&r("span",{className:"block h-2.5 w-2.5 rounded-full bg-accent"})}),c("span",{className:"flex min-w-0 flex-col gap-1",children:[c("span",{className:"flex flex-wrap items-baseline gap-3 font-display text-[18px] font-medium tracking-[-0.01em] text-fg",children:[n,s&&r("span",{className:"border px-2 py-0.5 font-mono text-[11px] font-normal uppercase tracking-[0.24em] text-accent",style:{background:"color-mix(in oklab, var(--accent) 14%, transparent)",borderColor:"color-mix(in oklab, var(--accent) 45%, var(--site-line))"},children:s})]}),a&&r("span",{className:"font-mono text-[12px] uppercase tracking-[0.22em] text-fg-dim",children:a})]}),r("span",{className:"whitespace-nowrap font-display text-[18px] font-medium tracking-[-0.01em] text-fg",children:o})]})}function Zr({payment:t,onPaid:e,onSkip:n}){let{formatMoney:a}=le(),o=Ge(()=>In(t.publishableKey),[t.publishableKey]),s=Ge(()=>{if(typeof document>"u")return;let l=getComputedStyle(document.documentElement),p=(u,h)=>l.getPropertyValue(u).trim()||h,m=document.documentElement.getAttribute("data-theme")!=="light";return{theme:m?"night":"stripe",variables:{colorPrimary:p("--accent",m?"#c9a461":"#8a6a2a"),colorBackground:p("--site-surface",m?"#131313":"#ffffff"),colorText:p("--fg",m?"#f5f1e8":"#0a0a0a"),borderRadius:"0px"}}},[]);return r("div",{className:"flex min-h-screen flex-col items-center justify-center gap-6 bg-bg px-6 py-16 text-fg",children:c("div",{className:"w-full max-w-xl border border-line bg-bg",children:[c("header",{className:"flex items-center justify-between gap-4 border-b border-line bg-surface px-6 py-4",children:[r("span",{className:"inline-flex items-center justify-center bg-accent px-3 py-1 font-mono text-[11px] font-bold uppercase tracking-[0.24em] text-bg",children:t.orderNumber}),r("h1",{className:"font-display text-[26px] font-medium uppercase leading-none tracking-[-0.02em] text-fg",children:"Payment"})]}),c("div",{className:"flex flex-col gap-4 px-6 py-6",children:[c("p",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-fg-dim",children:["Your order is placed. Pay"," ",r("span",{className:"text-fg",children:a(Number(t.amount),t.currency)})," ","by card to confirm it now."]}),r(st,{stripe:o,options:{clientSecret:t.clientSecret,appearance:s},children:r(Qr,{payment:t,onPaid:e,onSkip:n})})]})]})})}function Qr({payment:t,onPaid:e,onSkip:n}){let{formatMoney:a}=le(),o=kn(),s=bn(),[l,p]=g(!1),[m,u]=g(null);async function h(){if(!o||!s||l)return;p(!0),u(null);let C=await o.confirmPayment({elements:s,redirect:"if_required"});if(C.error){u(C.error.message??"Payment failed. Please try again."),p(!1);return}let v=C.paymentIntent?.status;if(v==="succeeded"||v==="processing"){e();return}u("Payment did not complete. Please try again."),p(!1)}return c("div",{className:"flex flex-col gap-4",children:[r(Cn,{}),m&&r("p",{className:"border border-red-300 bg-red-50 px-3 py-2 text-[13px] text-red-700",children:m}),r("button",{type:"button",onClick:h,disabled:!o||!s||l,className:["group flex items-center justify-between border px-5 py-5 font-mono text-[14px] font-medium uppercase tracking-[0.3em] transition-all",!o||!s||l?"cursor-not-allowed border-line bg-surface text-fg-dim":"border-btn bg-btn text-btn-ink hover:border-fg hover:bg-fg"].join(" "),children:l?c(U,{children:["Processing\u2026 ",r("span",{children:"\xB7"})]}):c(U,{children:["Pay ",a(Number(t.amount),t.currency),r("span",{className:"transition-transform group-hover:translate-x-1",children:"\u2192"})]})}),r("button",{type:"button",onClick:n,disabled:l,className:"self-center font-mono text-[11px] uppercase tracking-[0.24em] text-fg-dim underline-offset-4 transition-colors hover:text-accent hover:underline",children:"Pay later \u2014 our team will be in touch"})]})}var zn="paypal-sdk-js",pt=null;function ea(t,e){let n=`${t}|${e}`;if(pt?.key===n)return pt.promise;let a=new Promise((o,s)=>{document.getElementById(zn)?.remove();let l=document.createElement("script");l.id=zn;let p=new URLSearchParams({"client-id":t,currency:e,intent:"capture"});l.src=`https://www.paypal.com/sdk/js?${p}`,l.onload=()=>{let m=window.paypal;m?o(m):s(new Error("PayPal SDK loaded without its namespace"))},l.onerror=()=>s(new Error("PayPal SDK failed to load")),document.head.appendChild(l)});return pt={key:n,promise:a},a}function ta({confirmation:t,clientId:e,idemKey:n,onPaid:a,onSkip:o}){let{formatMoney:s}=le(),l=pe(null),[p,m]=g(!1),[u,h]=g(null),C=pe(a);return C.current=a,_(()=>{let v=!1,d=null;return ea(e,t.currency).then(T=>{if(!(v||!l.current))return d=T.Buttons({style:{layout:"vertical",color:"gold",shape:"rect",label:"paypal"},createOrder:async()=>(await j.createPaypalOrder({idempotencyKey:n})).paypalOrderId,onApprove:async x=>{try{if((await j.capturePaypalOrder({idempotencyKey:n,paypalOrderId:x.orderID})).status==="paid"){C.current();return}h("PayPal did not complete the payment. Please try again.")}catch(A){h(A instanceof Fe?A.message:"PayPal payment failed. Please try again.")}},onError:()=>{h("PayPal could not process the payment. Please try again.")}}),d.render(l.current).then(()=>{v||m(!0)})}).catch(()=>{v||h("PayPal could not be loaded. You can pay later \u2014 your order stands either way.")}),()=>{v=!0,d?.close?.()}},[e,t.currency,n]),r("div",{className:"flex min-h-screen flex-col items-center justify-center gap-6 bg-bg px-6 py-16 text-fg",children:c("div",{className:"w-full max-w-xl border border-line bg-bg",children:[c("header",{className:"flex items-center justify-between gap-4 border-b border-line bg-surface px-6 py-4",children:[r("span",{className:"inline-flex items-center justify-center bg-accent px-3 py-1 font-mono text-[11px] font-bold uppercase tracking-[0.24em] text-bg",children:t.orderNumber}),r("h1",{className:"font-display text-[26px] font-medium uppercase leading-none tracking-[-0.02em] text-fg",children:"PayPal"})]}),c("div",{className:"flex flex-col gap-4 px-6 py-6",children:[c("p",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-fg-dim",children:["Your order is placed. Pay"," ",r("span",{className:"text-fg",children:s(Number(t.grandTotal),t.currency)})," ","with PayPal to confirm it now."]}),!p&&!u&&r("p",{className:"font-mono text-[11px] uppercase tracking-[0.2em] text-fg-dim",children:"Loading PayPal\u2026"}),r("div",{ref:l}),u&&r("p",{className:"border border-red-300 bg-red-50 px-3 py-2 text-[13px] text-red-700",children:u}),r("button",{type:"button",onClick:o,className:"self-center font-mono text-[11px] uppercase tracking-[0.24em] text-fg-dim underline-offset-4 transition-colors hover:text-accent hover:underline",children:"Pay later \u2014 our team will be in touch"})]})]})})}var Bn="square-web-sdk",dt=null;function na(t){let e=t==="sandbox"?"sandbox":"production";if(dt?.key===e)return dt.promise;let n=new Promise((a,o)=>{document.getElementById(Bn)?.remove();let s=document.createElement("script");s.id=Bn,s.src=e==="sandbox"?"https://sandbox.web.squarecdn.com/v1/square.js":"https://web.squarecdn.com/v1/square.js",s.onload=()=>{let l=window.Square;l?a(l):o(new Error("Square SDK loaded without its namespace"))},s.onerror=()=>o(new Error("Square SDK failed to load")),document.head.appendChild(s)});return dt={key:e,promise:n},n}function ra({confirmation:t,applicationId:e,locationId:n,environment:a,idemKey:o,onPaid:s,onSkip:l}){let{formatMoney:p}=le(),m=pe(null),u=pe(null),h=pe(null),[C,v]=g(!1),[d,T]=g(!1),[x,A]=g(null);_(()=>{let b=!1,O=null;return na(a).then(async G=>{if(b||!m.current)return;let re=G.payments(e,n);h.current=re,O=await re.card(),await O.attach(m.current),u.current=O,b||v(!0)}).catch(()=>{b||A("Square could not be loaded. You can pay later \u2014 your order stands either way.")}),()=>{b=!0,O?.destroy?.()}},[e,n,a]);async function D(){let b=u.current;if(!(!b||d)){T(!0),A(null);try{let O=await b.tokenize();if(O.status!=="OK"||!O.token){A(O.errors?.[0]?.message??"Please check the card details and try again."),T(!1);return}let G;try{G=(await h.current?.verifyBuyer?.(O.token,{amount:String(t.grandTotal),currencyCode:t.currency,intent:"CHARGE"}))?.token}catch{}if((await j.chargeSquare({idempotencyKey:o,sourceId:O.token,...G?{verificationToken:G}:{}})).status==="paid"){s();return}A("Square did not complete the payment. Please try again.")}catch(O){A(O instanceof Fe?O.message:"Square payment failed. Please try again.")}T(!1)}}return r("div",{className:"flex min-h-screen flex-col items-center justify-center gap-6 bg-bg px-6 py-16 text-fg",children:c("div",{className:"w-full max-w-xl border border-line bg-bg",children:[c("header",{className:"flex items-center justify-between gap-4 border-b border-line bg-surface px-6 py-4",children:[r("span",{className:"inline-flex items-center justify-center bg-accent px-3 py-1 font-mono text-[11px] font-bold uppercase tracking-[0.24em] text-bg",children:t.orderNumber}),r("h1",{className:"font-display text-[26px] font-medium uppercase leading-none tracking-[-0.02em] text-fg",children:"Card"})]}),c("div",{className:"flex flex-col gap-4 px-6 py-6",children:[c("p",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-fg-dim",children:["Your order is placed. Pay"," ",r("span",{className:"text-fg",children:p(Number(t.grandTotal),t.currency)})," ","by card to confirm it now."]}),!C&&!x&&r("p",{className:"font-mono text-[11px] uppercase tracking-[0.2em] text-fg-dim",children:"Loading card form\u2026"}),r("div",{ref:m}),x&&r("p",{className:"border border-red-300 bg-red-50 px-3 py-2 text-[13px] text-red-700",children:x}),r("button",{type:"button",onClick:D,disabled:!C||d,className:["group flex items-center justify-between border px-5 py-5 font-mono text-[14px] font-medium uppercase tracking-[0.3em] transition-all",!C||d?"cursor-not-allowed border-line bg-surface text-fg-dim":"border-btn bg-btn text-btn-ink hover:border-fg hover:bg-fg"].join(" "),children:d?c(U,{children:["Processing\u2026 ",r("span",{children:"\xB7"})]}):c(U,{children:["Pay ",p(Number(t.grandTotal),t.currency),r("span",{className:"transition-transform group-hover:translate-x-1",children:"\u2192"})]})}),r("button",{type:"button",onClick:l,disabled:d,className:"self-center font-mono text-[11px] uppercase tracking-[0.24em] text-fg-dim underline-offset-4 transition-colors hover:text-accent hover:underline",children:"Pay later \u2014 our team will be in touch"})]})]})})}function aa({checked:t,onChange:e,label:n,sub:a}){return c("div",{className:"flex items-start gap-3 border-t border-line py-4 first:border-t-0 first:pt-0",children:[r("button",{type:"button",onClick:()=>e(!t),"aria-pressed":t,"aria-label":n,className:["mt-px flex h-5 w-5 flex-shrink-0 items-center justify-center border transition-colors",t?"border-accent":"border-line"].join(" "),style:t?{background:"color-mix(in oklab, var(--accent) 18%, transparent)"}:void 0,children:t&&r("span",{className:"text-[13px] text-accent",children:"\u2713"})}),c("span",{className:"flex-1 font-display text-[16px] leading-[1.5] text-fg",children:[n,a&&r("small",{className:"mt-1 block font-mono text-[12px] uppercase tracking-[0.18em] text-fg-dim",children:a})]})]})}function oa({slug:t,name:e,qty:n,config:a,configSummary:o,price:s,currency:l}){let{catalog:p}=tt(),{formatMoney:m}=le(),u=p.find(x=>x.slug===t),h=u?.spokes??5,C=u?.mesh??!1,v=a.find(x=>x.gold)?.label,d=u?.finishes.find(x=>x.name===v&&x.src)??u?.finishes.find(x=>x.src),T=u?.finishes[0]?.color??Vt;return c("div",{className:"grid grid-cols-[60px_1fr_auto] items-center gap-4 border-b border-line py-4 last:border-b-0",children:[c("div",{className:"relative flex aspect-square items-center justify-center overflow-hidden border border-line bg-surface",children:[r("span",{className:"absolute -right-1.5 -top-1.5 z-[2] flex h-[18px] w-[18px] items-center justify-center rounded-full bg-accent font-mono text-[11px] font-bold text-bg",children:n}),d?.src?r(Ot,{src:d.src,alt:`${e.lead}${e.accent} \u2014 ${d.name}`,width:120,height:120,sizes:"60px",className:"relative block h-full w-full object-contain p-2"}):r("div",{className:"block w-[78%]",style:{color:T},children:r(Gt,{spokes:h,mesh:C,className:"block w-full"})})]}),c("div",{className:"flex min-w-0 flex-col gap-0.5",children:[c("span",{className:"font-display text-[17px] font-bold uppercase leading-none tracking-[-0.005em] text-fg",children:[e.lead,r("em",{className:"font-serif font-normal italic text-accent tracking-[-0.005em] normal-case",children:e.accent})]}),r("span",{className:"font-mono text-[12px] uppercase leading-[1.5] tracking-[0.18em] text-fg-dim",children:o})]}),r("span",{className:"text-right font-display text-[17px] font-bold tracking-[-0.005em] text-fg",children:m(s,l)})]})}function ue({label:t,value:e}){return c("div",{className:"flex items-center justify-between font-mono text-[13px] font-medium uppercase tracking-[0.18em] text-fg",children:[r("span",{children:t}),r("strong",{className:"font-display text-[16px] font-medium tracking-[-0.005em] normal-case text-fg",children:e})]})}function ia(t){return t.map(e=>e.label).join(" \xB7 ")}import{jsx as Ve}from"react/jsx-runtime";function sa(){let{settings:t,websiteName:e}=Tt(),n=e?{...nt,name:e}:nt,a=t?{url:t.logoUrl,reversed:t.logoReversed??null,inkIsDark:t.logoInkIsDark??null,reverse:t.reverseLogo,size:t.logoSize,sizePx:t.logoSizePx}:null;return Ve("div",{style:{position:"fixed",inset:0,zIndex:2147482e3,overflowY:"auto",background:"var(--bg)",color:"var(--fg)"},children:Ve(Kt,{children:Ve(zt,{preview:!0,children:Ve(mt,{site:n,logo:a,preview:!0})})})})}export{sa as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as ke}from"react/jsx-runtime";import{createContext as hn,useCallback as r,useContext as gn,useMemo as fn,useState as Ie}from"react";import{createContext as he,useContext as M}from"react";import{createContext as Ct}from"react";var ue=Ct(null);var Lt=he(null),D=he({logo:null,placeholder:!1,wordmark:null});function Rn(){let e=M(ue),t=M(Lt),n=M(D),a=!e&&n.placeholder,o=e?e.logoUrl:n.logo?.logoUrl??t?.logoUrl??null;return{src:a?null:o,reversedSrc:e?e.logoReversed:n.logo?.logoReversed??t?.logoReversed??null,inkIsDark:e?e.logoInkIsDark:n.logo?.logoInkIsDark??t?.logoInkIsDark??null,wordmark:e?null:n.wordmark,siteName:e?.siteName??t?.siteName}}import{useSelectHandler as mn}from"efficient-easel/draw/client";var Dn="storefront-theme",Pn="sf:theme-mode",Fn="sf:theme-switch",Nn="hide",B="light";function kt(e){return e>=7&&e<18}function vn(e){let{mode:t,override:n,switchShown:a,hour:o}=e;return a&&(n==="light"||n==="dark")?n:t==="auto"?kt(o)?"light":"dark":t==="light"?"light":"dark"}var h={background:"#0a0a0a",surface:"#131313",line:"#2a2a2a",muted:"#9a9388"},It=[{text:"#2e2e2e",accent:"#2e2e2e",background:"#ffffff",surface:"#f7f7f7",line:"#e0e0e0",muted:"#5c5c5c"},{text:"#f7f7f7",accent:"#f7f7f7",background:"#0a0a0a",surface:"#1b1b1b",line:"#363636",muted:"#a3a3a3"},{text:"#ffffff",accent:"#ffffff",background:"#2e2e2e",surface:"#3d3d3d",line:"#545454",muted:"#b0b0b0"},{text:"#0a0a0a",accent:"#0a0a0a",background:"#f7f7f7",surface:"#ffffff",line:"#d9d9d9",muted:"#5c5c5c"}],I={selected:0,themes:It};function ge(e){return!e||!Array.isArray(e.themes)||e.themes.length===0?{...I}:{selected:Math.min(Math.max(0,e.selected??0),e.themes.length-1),themes:e.themes}}function P(e,t,n){let a=k(e),o=k(t);if(a===null||o===null)return e;let l=i=>Math.max(0,Math.min(255,Math.round(i))).toString(16).padStart(2,"0");return`#${a.map((i,d)=>l(i+(o[d]-i)*n)).join("")}`}var Ot={light:"#ffffff",dark:"#0a0a0a"},Gn=["light","dark"];function Bn(e,t){let n=Ot[t],a=t==="light"?"#ffffff":"#000000";return{text:n,accent:n,background:e,surface:P(e,a,.1),line:P(e,a,.22),muted:P(n,e,.35),brandInk:t}}function E(e){let t=ge(e);return t.themes[t.selected]}function fe(e){return{text:e.text,accent:e.accent,background:e.background||h.background,surface:e.surface||h.surface,line:e.line||h.line,muted:e.muted||h.muted}}function k(e){let t=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(e.trim());if(!t)return null;let n=t[1].length===3?[...t[1]].map(i=>i+i).join(""):t[1],[a,o,l]=[0,2,4].map(i=>parseInt(n.slice(i,i+2),16));return[a,o,l]}function G(e){let t=k(e);if(t===null)return null;let[n,a,o]=t.map(l=>{let i=l/255;return i<=.04045?i/12.92:((i+.055)/1.055)**2.4});return .2126*n+.7152*a+.0722*o}var Ht=.4,xt=4.5,Rt=3;function Mt(e,t){let n=G(e),a=G(t);if(n===null||a===null)return null;let[o,l]=n>=a?[n,a]:[a,n];return(o+.05)/(l+.05)}var Un={good:"Good","large-only":"Large text only",hard:"Hard to read"};function Wn(e){return e>=xt?"good":e>=Rt?"large-only":"hard"}var F=["#000000","#ffffff"];function O(e){let t=F[0],n=-1;for(let a of F){let o=Mt(e,a);if(o===null)return F[0];o>n&&(n=o,t=a)}return t}var Dt=[.25,.4,.55];function $n(e){let t=k(e);return t===null?[]:Dt.map(n=>"#"+t.map(a=>Math.round(a*(1-n)).toString(16).padStart(2,"0")).join(""))}function zn(e){let t=E(e),n={"--theme-fg":t.text},a=G(t.text);return(a===null||a>=Ht)&&(n["--overlay-fg"]=t.text),n}var Pt=82;function U(e){return`color-mix(in srgb, ${e} ${Pt}%, #000)`}function Vn(e){let t=E(e);return{"--theme-accent":t.accent,"--theme-accent-2":U(t.accent),"--theme-accent-ink":O(t.accent)}}function W(e){let t=e?.button;return/^#[0-9a-fA-F]{6}$/.test(t??"")?t.toLowerCase():null}function Yn(e){let t=E(e),n=W(t),a=me(t);if(n===null&&a===null)return{};let o={};return n!==null&&(o["--theme-btn"]=n,o["--theme-btn-2"]=U(n)),o["--theme-btn-ink"]=a??O(n),o}function me(e){let t=e?.buttonInk;return/^#[0-9a-fA-F]{6}$/.test(t??"")?t.toLowerCase():null}function Ft(e,t){return me(e)??O(W(e)??t)}function Xn(e){let t=E(e);return{fill:W(t)??t.accent.toLowerCase(),ink:Ft(t,t.accent)}}function jn(e){let t={};return ge(e).themes.forEach((n,a)=>{let o=fe(n);t[`--theme-preset-${a}-accent`]=o.accent,t[`--theme-preset-${a}-accent-2`]=U(o.accent),t[`--theme-preset-${a}-accent-ink`]=O(o.accent),t[`--theme-preset-${a}-bg`]=o.background,t[`--theme-preset-${a}-fg`]=o.text,t[`--theme-preset-${a}-surface`]=o.surface,t[`--theme-preset-${a}-surface-2`]=`color-mix(in srgb, ${o.surface} 60%, ${o.line})`,t[`--theme-preset-${a}-line`]=o.line,t[`--theme-preset-${a}-muted`]=o.muted}),t}var qn=["--theme-bg","--theme-surface","--theme-surface-2","--theme-line","--theme-muted"];function Kn(e){let t=fe(E(e)),n=`color-mix(in srgb, ${t.surface} 60%, ${t.line})`,a={"--theme-bg":t.background,"--theme-surface":t.surface,"--theme-line":t.line,"--theme-muted":t.muted};return(t.surface!==h.surface||t.line!==h.line)&&(a["--theme-surface-2"]=n),a}var Nt=["heading","body","label"];function Zn(e){if(!e)return null;for(let t of Nt)if(e.includes(`--size-${t}`))return t;return/--size-heading(Large|Medium|Small)/.test(e)?"heading":null}var Se=["headingLarge","headingMedium","headingSmall","accent","body","label"];var $={headingLarge:null,headingMedium:null,headingSmall:null,accent:null,body:null,label:null},vt=8,Gt=200;function Bt(e){if(typeof e!="number"||!Number.isFinite(e))return null;let t=Math.round(e);return t>=vt&&t<=Gt?t:null}function Ut(e){let t={};for(let n of Se)t[n]=Bt(e?.[n]);return t}function Jn(e){let t=Ut(e),n={};for(let a of Se){let o=t[a];o!==null&&(n[`--size-${a}`]=`${o}px`)}return n}var Wt=["square","small","large"],$t="small";function Qn(e){return Wt.includes(e??"")?e:$t}var pe=0,zt=40,ea={square:0,small:null,large:16},Vt={"--sf-card-radius":1,"--sf-button-radius":.5,"--site-radius":.5,"--site-radius-xs":.25,"--site-radius-sm":.5,"--site-radius-md":.75,"--site-radius-lg":1,"--site-radius-xl":1.25,"--site-radius-2xl":1.5,"--site-radius-3xl":2,"--site-radius-4xl":2.5};function _e(e){if(e==null||typeof e=="string"&&e.trim()==="")return null;let t=typeof e=="string"?Number(e):e;return Number.isFinite(t)?Math.min(zt,Math.max(pe,Math.round(t))):null}function Yt(e){let t=_e(e);return t===null?{}:Object.fromEntries(Object.entries(Vt).map(([n,a])=>{let o=t*a/16;return[n,o===0?"0":`${o}rem`]}))}function ta(e){return Yt(_e(e)??pe)}var Xt=["none","soft","lifted"],jt="soft",ye="none",qt=["tight","normal","roomy"],Kt="normal",H="normal",Zt=["none","lift","highlight"],Jt="lift",Qt="highlight",Ee="#141416";function be(e){return Xt.includes(e??"")?e:jt}function en(e){return qt.includes(e??"")?e:Kt}function Te(e){return Zt.includes(e??"")?e:Jt}function tn(e){return/^#[0-9a-fA-F]{6}$/.test(e??"")?e.toLowerCase():Ee}function na(e){let t=be(e);return t===ye?void 0:t}function aa(e){let t=en(e);return t===H?void 0:t}function oa(e){let t=Te(e);return t===Qt?void 0:t}function sa(e,t,n){let a=tn(t);return a===Ee?{}:be(e)!==ye||Te(n)==="lift"?{"--sf-shadow-color":a}:{}}var nn=["normal","tight","compressed"],b="normal";function Ae(e){return nn.includes(e??"")?e:b}function ra(e){let t=Ae(e);return t===b?void 0:t}function ia(e){switch(Ae(e)){case"tight":return{lineHeight:.95,letterSpacing:-.01};case"compressed":return{lineHeight:.86,letterSpacing:-.01};default:return{}}}var z={case:"authored",weight:null,weightStrong:null,italicStrong:null,maxPx:null,weight2:null,weight3:null,case2:"authored",case3:"authored"},N=100,v=900,an=24,on=200;function L(e,t,n){return typeof e!="number"||!Number.isFinite(e)?null:Math.round(Math.min(Math.max(e,t),n))}function we(e){let t=L(e?.weight,N,v),n=e?.case==="sentence"?"sentence":"authored",a=l=>l==null?t:L(l,N,v),o=l=>l==="sentence"?"sentence":l==="authored"?"authored":n;return{case:n,weight:t,weightStrong:L(e?.weightStrong,N,v),italicStrong:typeof e?.italicStrong=="boolean"?e.italicStrong:null,maxPx:L(e?.maxPx,an,on),weight2:a(e?.weight2),weight3:a(e?.weight3),case2:o(e?.case2),case3:o(e?.case3)}}function la(e){let t=we(e),n={};return t.case==="sentence"&&(n["--sf-heading-case"]="none"),t.weight!==null&&(n["--sf-heading-weight"]=String(t.weight)),t.weightStrong!==null&&(n["--sf-heading-weight-strong"]=String(t.weightStrong)),t.maxPx!==null&&(n["--sf-heading-max"]=`${t.maxPx}px`),t.weight2!==null&&t.weight2!==t.weight&&(n["--sf-heading-2-weight"]=String(t.weight2)),t.weight3!==null&&t.weight3!==t.weight&&(n["--sf-heading-3-weight"]=String(t.weight3)),t.case2!==t.case&&(n["--sf-heading-2-case"]=t.case2==="sentence"?"none":"uppercase"),t.case3!==t.case&&(n["--sf-heading-3-case"]=t.case3==="sentence"?"none":"uppercase"),n}function ca(e){return we({case:e?.heading_case??void 0,weight:e?.heading_weight,weightStrong:e?.heading_weight_strong,italicStrong:e?.accent_italic,maxPx:e?.heading_max_px,weight2:e?.heading_2_weight??void 0,weight3:e?.heading_3_weight??void 0,case2:e?.heading_2_case??void 0,case3:e?.heading_3_case??void 0})}var Ce=[{key:"space-grotesk",label:"Space Grotesk",cssVar:"--font-display",category:"sans",italic:!1,italicLoaded:!1},{key:"inter",label:"Inter",cssVar:"--font-body",category:"sans",italic:!0,italicLoaded:!0},{key:"poppins",label:"Poppins",cssVar:"--font-poppins",category:"sans",italic:!0,italicLoaded:!0},{key:"dm-sans",label:"DM Sans",cssVar:"--font-dm-sans",category:"sans",italic:!0,italicLoaded:!0},{key:"sora",label:"Sora",cssVar:"--font-sora",category:"sans",italic:!1,italicLoaded:!1},{key:"oswald",label:"Oswald",cssVar:"--font-oswald",category:"sans",italic:!1,italicLoaded:!1},{key:"archivo",label:"Archivo",cssVar:"--font-archivo",category:"sans",italic:!0,italicLoaded:!0},{key:"outfit",label:"Outfit",cssVar:"--font-outfit",category:"sans",italic:!1,italicLoaded:!1},{key:"manrope",label:"Manrope",cssVar:"--font-manrope",category:"sans",italic:!1,italicLoaded:!1},{key:"big-shoulders",label:"Big Shoulders",cssVar:"--font-big-shoulders",category:"sans",italic:!1,italicLoaded:!1},{key:"michroma",label:"Michroma",cssVar:"--font-michroma",category:"sans",italic:!1,italicLoaded:!1},{key:"assistant",label:"Assistant",cssVar:"--font-assistant",category:"sans",italic:!1,italicLoaded:!1},{key:"fraunces",label:"Fraunces",cssVar:"--font-serif",category:"serif",italic:!0,italicLoaded:!0},{key:"playfair-display",label:"Playfair Display",cssVar:"--font-playfair",category:"serif",italic:!0,italicLoaded:!0},{key:"cormorant",label:"Cormorant",cssVar:"--font-cormorant",category:"serif",italic:!0,italicLoaded:!0},{key:"jetbrains-mono",label:"JetBrains Mono",cssVar:"--font-mono-loaded",category:"mono",italic:!0,italicLoaded:!0}],f=new Map(Ce.map(e=>[e.key,e]));function ua(e){return f.get(e)}var Le=["heading","heading2","heading3","body","accent","label"],ha={heading:"Heading 1",heading2:"Heading 2",heading3:"Heading 3",body:"Body",accent:"Accent",label:"Labels"},sn=[["font-heading2","heading2"],["font-heading3","heading3"],["font-display","heading"],["font-serif","accent"],["font-mono","label"],["font-body","body"]],rn=/var\(--size-(headingLarge|headingMedium|headingSmall|accent|body|label)\s*,/,ga={heading:"headingLarge",heading2:"headingMedium",heading3:"headingSmall",accent:"accent",body:"body",label:"label"},ln={headingLarge:"heading",headingMedium:"heading2",headingSmall:"heading3",accent:"accent",body:"body",label:"label"};function fa(e){let t=e?rn.exec(e):null;return t?ln[t[1]]??null:cn(e)}function cn(e){if(!e)return null;let t=e.split(/\s+/).filter(n=>!n.slice(0,n.lastIndexOf(":")+1).includes("&")).map(n=>n.slice(n.lastIndexOf(":")+1));for(let[n,a]of sn)if(t.includes(n))return a;return null}var u={heading:"space-grotesk",heading2:"space-grotesk",heading3:"space-grotesk",body:"inter",accent:"fraunces",label:"jetbrains-mono"};function dn(e){let t=n=>{let a=e?.[n];if(a&&f.has(a))return a;if(n==="heading2"||n==="heading3"){let o=e?.heading;return o&&f.has(o)?o:u.heading}return u[n]};return Object.fromEntries(Le.map(n=>[n,t(n)]))}function un(e,t){return f.get(e[t])??f.get(u[t])}function g(e,t){return`var(${un(e,t).cssVar})`}var ma=[...new Set(Le.map(e=>f.get(u[e]).cssVar))],Sa=[...new Set(Ce.map(e=>e.cssVar))];function pa(e){let t=dn(e);return{"--font-role-heading":g(t,"heading"),"--font-role-heading2":g(t,"heading2"),"--font-role-heading3":g(t,"heading3"),"--font-role-body":g(t,"body"),"--font-role-accent":g(t,"accent"),"--font-role-label":g(t,"label"),fontFamily:"var(--font-role-body)"}}var He=hn({settings:null,setSettings:()=>{},primeSettings:()=>{},websiteName:null,templateChrome:!1,templateName:null,chromePlaceholder:!1,themeMode:B,setThemeMode:()=>{},themeSwitchShown:!1,setThemeSwitchShown:()=>{},theme:I,setTheme:()=>{},fonts:u,setFonts:()=>{},sizes:$,setSizes:()=>{},cornerRadiusPx:null,setCornerRadiusPx:()=>{},cardShadow:null,setCardShadow:()=>{},shadowColor:null,setShadowColor:()=>{},cardGap:H,setCardGap:()=>{},hoverEffect:null,setHoverEffect:()=>{},headingCompression:b,setHeadingCompression:()=>{},siteWidth:null,setSiteWidth:()=>{},siteGutter:null,blockGap:null,setSiteGutter:()=>{},setBlockGap:()=>{},headingTypography:z,setHeadingTypography:()=>{},textStyles:null,setTextStyles:()=>{},wordStyles:null,cardThemeIndex:null,heroBackgroundFollowsWidth:null,setHeroBackgroundFollowsWidth:()=>{},sectionBackgroundWidth:null,setSectionBackgroundWidth:()=>{},sectionContentWidth:null,setSectionContentWidth:()=>{},photographyGrayscale:null,setPhotographyGrayscale:()=>{},shareButtonOnPosts:null,setShareButtonOnPosts:()=>{},themeFromDocument:!1,selected:!1,setSelected:()=>{},select:()=>{},setSelectHandler:()=>{}});function Ca({children:e,websiteName:t=null,templateChrome:n=!1,templateName:a=null,chromePlaceholder:o=!1,themeMode:l=B,onThemeModeChange:i,themeSwitchShown:d=!1,onThemeSwitchShownChange:T,theme:A=I,onThemeChange:m,fonts:S=u,onFontsChange:p,sizes:_=$,onSizesChange:c,cornerRadiusPx:x=null,onCornerRadiusPxChange:w,cardShadow:R=null,onCardShadowChange:C,shadowColor:Pe=null,onShadowColorChange:V,cardGap:Fe=H,onCardGapChange:Y,hoverEffect:Ne=null,onHoverEffectChange:X,headingCompression:ve=b,onHeadingCompressionChange:j,siteWidth:Ge=null,onSiteWidthChange:q,siteGutter:Be=null,blockGap:Ue=null,onSiteGutterChange:K,onBlockGapChange:Z,headingTypography:We=z,onHeadingTypographyChange:J,textStyles:$e=null,onTextStylesChange:Q,wordStyles:ze=null,cardThemeIndex:Ve=null,heroBackgroundFollowsWidth:Ye=null,onHeroBackgroundFollowsWidthChange:ee,sectionBackgroundWidth:Xe=null,onSectionBackgroundWidthChange:te,sectionContentWidth:je=null,onSectionContentWidthChange:ne,photographyGrayscale:qe=null,onPhotographyGrayscaleChange:ae,shareButtonOnPosts:Ke=null,onShareButtonOnPostsChange:oe,themeFromDocument:se=!1}){let[y,re]=Ie(null),Ze=r(s=>re(wt=>wt??s),[]),[Je,Qe]=Ie(!1),et=r(s=>i?.(s),[i]),tt=r(s=>T?.(s),[T]),nt=r(s=>m?.(s),[m]),at=r(s=>p?.(s),[p]),ot=r(s=>c?.(s),[c]),st=r(s=>q?.(s),[q]),rt=r(s=>K?.(s),[K]),it=r(s=>Z?.(s),[Z]),lt=r(s=>ee?.(s),[ee]),ct=r(s=>te?.(s),[te]),dt=r(s=>ne?.(s),[ne]),ut=r(s=>ae?.(s),[ae]),ht=r(s=>oe?.(s),[oe]),gt=r(s=>w?.(s),[w]),ft=r(s=>C?.(s),[C]),mt=r(s=>V?.(s),[V]),St=r(s=>Y?.(s),[Y]),pt=r(s=>X?.(s),[X]),_t=r(s=>j?.(s),[j]),yt=r(s=>J?.(s),[J]),Et=r(s=>Q?.(s),[Q]),{select:bt,setSelectHandler:Tt}=mn(),ie=y?.logoUrl,le=y?.logoReversed,ce=y?.logoInkIsDark,de=y!==null,At=fn(()=>({logo:de?{logoUrl:ie,logoReversed:le,logoInkIsDark:ce}:null,placeholder:n||o,wordmark:n?a:t}),[de,ie,le,ce,n,o,a,t]);return ke(D.Provider,{value:At,children:ke(He.Provider,{value:{settings:y,setSettings:re,primeSettings:Ze,websiteName:t,templateChrome:n,templateName:a,chromePlaceholder:o,themeMode:l,setThemeMode:et,themeSwitchShown:d,setThemeSwitchShown:tt,theme:A,setTheme:nt,fonts:S,setFonts:at,sizes:_,setSizes:ot,cornerRadiusPx:x,setCornerRadiusPx:gt,cardShadow:R,setCardShadow:ft,shadowColor:Pe,setShadowColor:mt,cardGap:Fe,setCardGap:St,hoverEffect:Ne,setHoverEffect:pt,headingCompression:ve,setHeadingCompression:_t,siteWidth:Ge,setSiteWidth:st,siteGutter:Be,blockGap:Ue,setSiteGutter:rt,setBlockGap:it,headingTypography:We,setHeadingTypography:yt,textStyles:$e,setTextStyles:Et,wordStyles:ze,cardThemeIndex:se?null:Ve,heroBackgroundFollowsWidth:Ye,setHeroBackgroundFollowsWidth:lt,sectionBackgroundWidth:Xe,setSectionBackgroundWidth:ct,sectionContentWidth:je,setSectionContentWidth:dt,photographyGrayscale:qe,setPhotographyGrayscale:ut,shareButtonOnPosts:Ke,setShareButtonOnPosts:ht,themeFromDocument:se,selected:Je,setSelected:Qe,select:bt,setSelectHandler:Tt},children:e})})}var La=()=>gn(He);import{forwardRef as Sn}from"react";import{imageCopyUrl as xe,imageSrcSet as Re}from"efficient-shell/image-copies";import{jsx as yn}from"react/jsx-runtime";var pn={position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,color:"transparent"};function Me(e,t,n){if(n){let a=Re(e);return a?{src:xe(e,1280),srcSet:a,sizes:n}:{src:e,sizes:n}}if(t&&t>0){let a=Re(e,{maxWidth:t*3});return a?{src:xe(e,t*2),srcSet:a,sizes:`${t}px`}:{src:e}}return{src:e}}var _n=Sn(function({src:t,width:n,height:a,fill:o,priority:l,loading:i,style:d,quality:T,placeholder:A,blurDataURL:m,unoptimized:S,loader:p,overrideSrc:_,sizes:c,...x},w){let R=_??(typeof t=="string"?t:t.src),C=Me(R,o?void 0:Number(n)||void 0,c??(o?"100vw":void 0));return yn("img",{ref:w,...C,width:o?void 0:n,height:o?void 0:a,loading:l?"eager":i??"lazy",fetchPriority:l?"high":void 0,decoding:"async",style:o?{...pn,...d}:{color:"transparent",...d},...x})}),Ha=_n;function xa(e){let t=e.overrideSrc??(typeof e.src=="string"?e.src:e.src.src),n=e.fill?void 0:Number(e.width)||void 0;return{props:Me(t,n,e.sizes??(e.fill?"100vw":void 0))}}import{forwardRef as En}from"react";import{jsx as An}from"react/jsx-runtime";function bn(e){if(typeof e=="string")return e;let t=e.query?`?${new URLSearchParams(e.query).toString()}`:"",n=e.hash?e.hash.startsWith("#")?e.hash:`#${e.hash}`:"";return`${e.pathname??""}${t}${n}`}var Tn=En(function({href:t,prefetch:n,replace:a,scroll:o,shallow:l,legacyBehavior:i,passHref:d,locale:T,onClick:A,children:m,...S},p){let _=c=>{A?.(c),!(c.defaultPrevented||S.target==="_blank")&&c.preventDefault()};return An("a",{ref:p,href:bn(t),onClick:_,...S,children:m})}),Pa=Tn;var wn="Website";function va(e){return e?.trim()||wn}var De=["instagram","facebook","tiktok","youtube","x","linkedin","pinterest","whatsapp","telegram","line","wechat"],Cn={instagram:"Instagram",facebook:"Facebook",tiktok:"TikTok",youtube:"YouTube",x:"X",linkedin:"LinkedIn",pinterest:"Pinterest",whatsapp:"WhatsApp",telegram:"Telegram",line:"LINE",wechat:"WeChat"},Ln={};function Ba(e){if(!e||typeof e!="object")return Ln;let t={};for(let n of De){let a=e[n];if(typeof a!="string")continue;let o=a.trim();!o||!/^https?:\/\//i.test(o)||(t[n]=o)}return t}function Ua(e){return De.flatMap(t=>{let n=e[t];return n?[{platform:t,href:n,label:Cn[t]}]:[]})}var Wa=e=>`${e}_url`;var za={small:54,medium:66,large:84},kn=44,Va=16,Ya=140,Xa=kn*4;export{Ha as a,xa as b,Pa as c,Ce as d,ua as e,Le as f,ha as g,ga as h,fa as i,cn as j,u as k,dn as l,pa as m,Dn as n,Pn as o,Fn as p,Nn as q,B as r,vn as s,h as t,It as u,ge as v,Gn as w,Bn as x,E as y,fe as z,Mt as A,Un as B,Wn as C,O as D,$n as E,zn as F,Vn as G,W as H,Yn as I,me as J,Ft as K,Xn as L,jn as M,qn as N,Kn as O,Zn as P,$ as Q,Ut as R,Jn as S,Qn as T,pe as U,zt as V,ea as W,_e as X,Yt as Y,ta as Z,Xt as _,jt as $,ye as aa,H as ba,Zt as ca,Jt as da,Qt as ea,Ee as fa,be as ga,en as ha,Te as ia,tn as ja,na as ka,aa as la,oa as ma,sa as na,b as oa,Ae as pa,ra as qa,ia as ra,z as sa,we as ta,la as ua,ca as va,ue as wa,Rn as xa,Ca as ya,La as za,wn as Aa,va as Ba,De as Ca,Cn as Da,Ln as Ea,Ba as Fa,Ua as Ga,Wa as Ha,za as Ia,kn as Ja,Va as Ka,Ya as La,Xa as Ma};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var l={siteSlug:null,shopOrigin:""},r=l;function S(e){r={siteSlug:e.siteSlug?.trim()||null,shopOrigin:(e.shopOrigin??"").trim().replace(/\/+$/,"")}}function I(){return r.siteSlug}function b(){return r.shopOrigin}import{currentEaselSession as m}from"efficient-easel/screen/lib/session";var s="https://cdn.inovit.com"?.replace(/\/+$/,"");function i(e,t){let o=m().hostBackend?.media.resolve;if(!(!o||o===d))return o(e,t)??e}function u(e){return/^(?:https?:)?\/\//i.test(e)||/^(?:data|blob):/i.test(e)}function g(e){return i(e)??c(e)}function c(e){return!s||u(e)?e:s+e.replace(/^\/media/,"")}var d=e=>c(e),p="";function y(e){if(!e)return null;let t=i(e);return t!==void 0?t:e.startsWith("/")?`${p}${e}`:e}function C(e){return/^https?:\/\//i.test(e)&&!(s&&e.startsWith(s+"/"))}function P(e){if(!e)return;let t=i(e);return t!==void 0?t:e.startsWith("/media/")?g(e):e}var f="/videos/products/";function _(e){return!!e&&e.includes(f)}var F={contentHash:"81f2e3c31abcbfd9",schema:1,mediaFields:{ImageBlock:["src"],LogoBlock:["src"],Flex:["bgImage","bgImagePhone"],FeaturedCover:["image"],LongRead:["image"],Banner:["imageSrc"],Timeline:["imageSrc"],Logos:["items[].src"],ContactLocations:["locations[].photo"],HeroSingle:["imageFocal","mediaImage","mediaImage2","mediaVideo","poster"],HeroSlide:["mediaImage","mediaVideo","poster"],PostCard:["image"],Gallery:["othersCards[].image","othersCards[].photos[].src","vehicleCards[].image","vehicleCards[].photos[].src","wheelCards[].image","wheelCards[].photos[].src"],GalleryItem:["image","photos[].src"],Manifesto:["imageSrc"],SectionHeader:["logoSrc"],IntroBleed:["imageSrc","imageSrcMobile"],Split:["imageSrc","textBgSrc"],ProcessSteps:["steps[].image"],DetailRows:["rows[].image"],PaymentBadges:["badges[].src"]},mediaKeyNames:["bgImage","bgImagePhone","image","imageFocal","imageSrc","imageSrcMobile","logoSrc","mediaImage","mediaImage2","mediaVideo","photo","poster","src","textBgSrc"],snapshotObjects:{ProductGrid:{source:{keep:["slug"]}},GalleryItem:{product:{keep:["code","finish"]}},FeaturedCover:{source:{keep:["slug"]}},LongRead:{source:{keep:["slug"]}}},hydratedLists:{Events:["posts"],SubscribeBlogs:["posts"]},technicalStateKeys:["focal","focalPhone","imageFocal","imageFocal2","imageFocal2Phone","imageFocalPhone"]};function n(e){return{getItem(t){try{return e()?.getItem(t)??null}catch{return null}},setItem(t,o){try{e()?.setItem(t,o)}catch{}},removeItem(t){try{e()?.removeItem(t)}catch{}}}}var a="__storefront_probe__";function R(e){try{e.setItem(a,a);let t=e.getItem(a)===a;return e.removeItem(a),t}catch{return!1}}var x=n(()=>typeof window>"u"?null:window.localStorage),M=n(()=>typeof window>"u"?null:window.sessionStorage);function U(e){return n(()=>e.defaultView?.localStorage??null)}export{g as a,d as b,y as c,C as d,P as e,_ as f,F as g,S as h,I as i,b as j,R as k,x as l,M as m,U as n};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{f as ft,i as pe,q as pt,s as mt,t as gt,v as B}from"./chunk-QWHNN7GF.js";import{Aa as fe,Ba as ct,Ea as $e,Fa as dt,Ia as Be,Ja as We}from"./chunk-RPLNV3WM.js";import{j as ut,l as oe}from"./chunk-SQH6XBRG.js";import{createContext as cn,useContext as xt,useEffect as dn,useMemo as ge,useState as bt}from"react";function ht(e,t){return e.map(n=>({partNumber:n.partNumber,quantity:n.wheels*t}))}function ie(e,t){if(e.length===0)return null;let n=0;for(let r of e){let o=r.prices?.[t];if(typeof o!="number"||!Number.isFinite(o)||o<=0)return null;n+=o*r.wheels}return n}var Ge=4,_r=1,Nr={unit:"set",spares:0,spareSide:"left"};function yt(e){return e.unit==="single"?1:Ge+e.spares}function Rr(e,t){return[{partNumber:e.partNumber,wheels:yt(t),prices:e.prices}]}function Lr(e,t){let n=yt(t)-Ge;if(n<=0||e.length===0)return e;let r=ln(e),o=r?r[t.spareSide]:0;return e.map((i,a)=>a===o?{...i,wheels:i.wheels+n}:i)}function ln(e){let t,n;for(let r=0;r<e.length;r+=1){let o=e[r].hand;if(o!=="left"&&o!=="right")continue;if((o==="left"?t:n)!==void 0)return null;o==="left"?t=r:n=r}return t!==void 0&&n!==void 0?{left:t,right:n}:null}function un(e,t){return t.spares>0?`${e} + spare`:e}function Ir(e){return e.unit==="single"?"Single":un(`Set of ${Ge}`,e)}var Ar="data-add-to-basket",qe=9,Ne="en";function me(e,t,n=0){return new Intl.NumberFormat(Ne,{style:"currency",currency:t,minimumFractionDigits:0,maximumFractionDigits:n}).format(e)}function kr(e,t){return new Intl.NumberFormat(Ne,{style:"currency",currency:t}).format(e)}import{jsx as gn}from"react/jsx-runtime";var fn="storefront-country",Ct=fn,Ke=cn(null);function pn(e){return St(e,"catalogue")}function mn(e){return St(e,"money")}function St(e,t){let n=new Map(e.map(o=>[o.code,o.decimalPlaces])),r=new Map;return(o,i)=>{if(!i)return"";let a=r.get(i);if(!a){let l=n.get(i)??0;a=new Intl.NumberFormat(Ne,{style:"currency",currency:i,minimumFractionDigits:t==="money"?l:0,maximumFractionDigits:l}),r.set(i,a)}return a.format(o)}}function Fr({children:e,currencies:t,countries:n,defaultCurrency:r,defaultCountry:o}){let i=ge(()=>t??[],[t]),a=ge(()=>n??[],[n]),l=ge(()=>r||i.find(b=>b.isDefault)?.code||i[0]?.code||"",[r,i]),c=ge(()=>o||a.find(b=>b.isDefault)?.code||a[0]?.code||"",[o,a]),[u,f]=bt(c),[d,S]=bt(!1);dn(()=>{let b=oe.getItem(Ct);b&&a.some(P=>P.code===b)&&f(b),S(!0)},[a]);function N(b){f(b),oe.setItem(Ct,b)}let C=ge(()=>{let b=a.find(v=>v.code===u)??null,P=b?.currency,O=P&&i.some(v=>v.code===P)?P:l,M=pn(i),I=mn(i);return{country:u,currency:O,setCountry:N,currencies:i,countries:a,activeCountry:b,formatPrice:(v,x)=>M(v,x??O),formatMoney:(v,x)=>I(v,x??O),ready:d}},[u,i,a,l,d]);return gn(Ke.Provider,{value:C,children:e})}function vt(){let e=xt(Ke);if(!e)throw new Error("useCurrency must be used within a CurrencyProvider");return e}function Ur(){return xt(Ke)?.country??""}import{createContext as In,useCallback as _,useContext as An,useEffect as Z,useMemo as Mt,useRef as Ie,useState as L}from"react";function Pt(e,t){return e.valid?!1:e.reason==="firstOrderOnly"?!0:e.reason==="notEligible"&&!t}var wt="We'll confirm this discount when you place your order.",Wr="Confirmed at checkout";function Gr(e){return e&&(e.valid||e.deferred)?e.code:void 0}var Et="coupon_code: ";function qr(e){return!(e instanceof pe)||e.status!==400||!e.message.startsWith(Et)?null:e.message.slice(Et.length)}function _t(e,t){return e.map(n=>({qty:n.qty,slug:n.slug,name:`${n.name.lead}${n.name.accent}`.trim(),finish:n.finishName,size:n.size,kind:n.kind,sku:n.sku,pack:n.pack,priceLabel:t(n)}))}var Re="Price on request",yn="Request a quote",bn="from ",Vr="From ",Yr="each",Nt="Free";function ze(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Xe(e,t){let n=e?.[t];return ze(n)?n:null}function Qr(e,t,n,r){let o=Xe(e,n),i=Xe(t,n);return o===null&&i===null?0:o===null?1:i===null?-1:r==="asc"?o-i:i-o}function jr(e,t,n,r){if(n==null&&r==null)return!0;let o=Xe(e,t);return!(o===null||n!=null&&o<n||r!=null&&o>r)}var Cn={priced:!1,unit:null,was:null,onSale:!1,setTotal:null};function xn(e,t,n){if(!ze(e))return Cn;let r=ze(t)&&t>e?t:null;return{priced:!0,unit:e,was:r,onSale:r!==null,setTotal:n!=null?e*n:null}}function Zr(e,t,n=""){return!e.priced||e.unit==null?Re:`${n}${me(e.unit,t)}`}function Jr(e,t){return e.was==null?null:me(e.was,t)}function Sn(e,t,n=1){let r=ie(e,t);if(r===null)return{priced:!1,unit:null,isFrom:!1,setTotal:null};let o=e.reduce((a,l)=>a+l.wheels,0),i=Math.min(...e.map(a=>a.prices[t]));return{priced:!0,unit:i,isFrom:i*o!==r,setTotal:r*n}}var vn={priced:!1,unit:null,isFrom:!1,was:null,onSale:!1,setTotal:null};function eo(e,t,n,r=1){let o=xn(e.prices[n],e.msrpPrices?.[n],4),i=o.setTotal==null?null:o.setTotal*r;if(!t)return{priced:o.priced,unit:o.unit,isFrom:!0,was:o.was,onSale:o.onSale,setTotal:null,fromSetTotal:i};let a=Sn(t.components,n,r);return a.priced?{priced:!0,unit:a.unit,isFrom:a.isFrom,was:null,onSale:!1,setTotal:a.setTotal,fromSetTotal:i}:{...vn,fromSetTotal:i}}function En(e,t){return!e.priced||e.unit==null?Re:`${e.isFrom?bn:""}${me(e.unit,t)}`}function to(e,t){return e.was==null?null:me(e.was,t)}function no(e,t){return!e.priced||e.unit==null?yn:En(e,t)}var Pn=/^[^@\s]+@[^@\s]+\.[^@\s]+$/;function Rt(e){return Pn.test(e.trim())}var Lt="sf:ga-purchases",wn=20;function At(){return typeof window>"u"||window.parent!==window}function he(...e){try{if(At()||typeof window.gtag!="function")return;window.gtag(...e)}catch{}}function _n(e,t){let n=e.config.find(r=>r.gold)?.label;return{item_id:`${e.slug}|${e.finishName}|${e.size}`,item_name:`${e.name.lead}${e.name.accent}`.trim(),...n?{item_variant:n}:{},price:ie(e.components,t)??0,quantity:e.qty}}function Ve(e,t){return e.filter(Le).map(n=>_n(n,t))}function lo(e){he("event","view_item",{currency:e.currency,value:e.pricePerSet,items:[{item_id:e.itemId,item_name:e.itemName,...e.variant?{item_variant:e.variant}:{},price:e.pricePerSet,quantity:1}]})}function kt(e,t){let n=Ve([e],t);n.length!==0&&he("event","add_to_cart",{currency:t,value:n[0].price*n[0].quantity,items:n})}function uo(e){let t=Ve(e.lines,e.currency);t.length!==0&&he("event","begin_checkout",{currency:e.currency,value:e.value,...e.coupon?{coupon:e.coupon}:{},items:t})}var It=new Set;function Nn(e){if(It.has(e))return!1;It.add(e);try{let t=JSON.parse(oe.getItem(Lt)??"[]");if(t.includes(e))return!1;oe.setItem(Lt,JSON.stringify([...t,e].slice(-wn)))}catch{}return!0}function co(e){let t=e.confirmation;if(At()||!Nn(t.orderNumber))return;let n=t.currency,r=Number(t.grandTotal);he("event","purchase",{transaction_id:t.orderNumber,currency:n,value:r,shipping:Number(t.freightCharge),...t.couponCode?{coupon:t.couponCode}:{},items:Ve(e.lines,n)}),e.adsSendTo&&he("event","conversion",{send_to:e.adsSendTo,transaction_id:t.orderNumber,currency:n,value:r})}var Rn="Arranged after review",Tt="Calculated at checkout",Ln=Tt,mo=Tt;function Ot({quoted:e,optionCount:t,chosenAmount:n,couponWaivesFreight:r}){return e&&t===0?"arranged":r?"free":n===void 0?"pending":n===0?"free":"charged"}function go(e){switch(e){case"arranged":return Rn;case"pending":return Ln;case"free":return Nt;case"charged":return null}}import{jsx as Mn}from"react/jsx-runtime";var kn=400,Tn=400,On=1500;function Le(e){return(e.components?.length??0)>0}function Dt(e,t){return{code:e,valid:t.valid,deferred:Pt(t,t.askedAsShopper),message:t.message||void 0,effects:t.effects??void 0}}function Ut(e,t){return ie(e.components,t)}function Ye(e,t){let n=Ut(e,t);return n===null?null:n*e.qty}function Ft(e){return e!=="tyre"}var Ht=In(null);function No({children:e,preview:t=!1}){let{currency:n,country:r,formatMoney:o}=vt(),[i,a]=L(t),[l,c]=L([]),[u,f]=L([]),[d,S]=L([]),[N,C]=L(!1),[b,P]=L(!1),[O,M]=L(!1),[I,v]=L(!1),[x,W]=L(null),[A,G]=L(void 0),[y,w]=L(null),[m,q]=L(null),[J,U]=L(!1),[D,Se]=L(null),X=Ie(void 0),K=_(()=>a(!0),[]),se=_(()=>a(!1),[]),ee=_(()=>a(s=>!s),[]);Z(()=>{t||typeof window>"u"||new URLSearchParams(window.location.search).get("cart")==="open"&&K()},[K,t]);let ve=_(s=>{w(p=>p?.country===s?.country&&p?.subdivision===s?.subdivision?p:s)},[]),H=_(s=>{v(!0),Ft(s)&&M(!0)},[]),Ee=O||l.some(s=>Ft(s.kind)),F=I||l.length>0;Z(()=>{if(t||!Ee||N)return;let s=!0;return B.listWheels().then(p=>{s&&(f(p),C(!0))}),()=>{s=!1}},[t,Ee,N]),Z(()=>{if(t||!F||b)return;let s=!0;return B.listBundles().then(p=>{s&&(S(p),P(!0))}),()=>{s=!1}},[t,F,b]);let z=x?.deliveryOptions??[];Z(()=>{x&&Se(s=>s&&z.some(p=>p.id===s)?s:z[0]?.id??null)},[x]);let V=_(()=>l.filter(Le).flatMap(s=>ht(s.components,s.qty)),[l]),le=_(async(s,p)=>{let h=s.trim().toUpperCase();if(!h)return;let g=V();if(g.length===0){q({code:h,valid:!1,message:"Add a wheel to the cart first."});return}U(!0),X.current=p;try{let R=await B.validateCoupon({code:h,items:g,currency:n,shippingMethodId:D??void 0,customerEmail:p});q(Dt(h,R))}catch{q({code:h,valid:!1,message:"Could not check that code. Please try again."})}finally{U(!1)}},[V,n,D]),ue=_(()=>{q(null),X.current=void 0},[]),ce=_(s=>{if(!m)return;let{code:p}=m;q(h=>h&&h.code===p?{code:p,valid:!1,refused:!0,message:s}:h)},[m]);Z(()=>{if(!m||m.refused)return;let s=m.code,p=g=>g!==null&&g.code===s&&!g.refused,h=setTimeout(async()=>{let g=V();if(g.length===0){q(R=>p(R)?{code:s,valid:!1,message:"Add a wheel to the cart first."}:R);return}U(!0);try{let R=await B.validateCoupon({code:s,items:g,currency:n,shippingMethodId:D??void 0,customerEmail:X.current});q(de=>p(de)?Dt(s,R):de)}catch{}finally{U(!1)}},kn);return()=>clearTimeout(h)},[l,n,D]);let te=m&&!m.refused?m.code:void 0;Z(()=>{if(t)return;let s=!0,p=setTimeout(async()=>{let h=V();if(h.length===0){W(null),G(void 0);return}try{let g=await B.quoteCart({items:h,currency:n,shippingMethodId:D??void 0,couponCode:te,customerEmail:X.current||void 0,country:y?.country||r||void 0,subdivision:y?.country&&y.subdivision||void 0});if(!s)return;W(g)}catch{if(!s)return}G(te)},Tn);return()=>{s=!1,clearTimeout(p)}},[l,n,D,te,r,y]);let Y=_(s=>{c(p=>{let h=p.findIndex(g=>g.id===s.id);return h===-1?[...p,s]:p.map((g,R)=>R===h?{...g,qty:Math.min(qe,g.qty+s.qty)}:g)}),kt(s,n)},[n]),Pe=_(s=>{c(p=>p.filter(h=>h.id!==s))},[]),we=_((s,p)=>{let h=Math.max(1,Math.min(qe,p));c(g=>g.map(R=>R.id===s?{...R,qty:h}:R))},[]),E=_(s=>{c(s)},[]),[k,ne]=L(null),nt=Ie(null);nt.current=k;let $=Ie(null),Fe=Ie(""),rt=_((s,p)=>{let h=s.trim().toLowerCase();Rt(h)&&ne(g=>g&&g.email===h&&g.firstName===(p??"")?g:{email:h,firstName:p??""})},[]);Z(()=>{if(t||!k)return;let s=_t(l.filter(Le),g=>Ye(g,n)===null?Re:o(Ye(g,n),n)),p={email:k.email,firstName:k.firstName,currency:n,items:s},h=JSON.stringify(p);if(h!==Fe.current)return $.current&&clearTimeout($.current),$.current=setTimeout(()=>{$.current=null,Fe.current=h,B.captureCart(p).catch(g=>{})},On),()=>{$.current&&(clearTimeout($.current),$.current=null)}},[l,k,n,t]);let ot=_(()=>{$.current&&(clearTimeout($.current),$.current=null);let s=nt.current;s&&(Fe.current="",B.captureCart({email:s.email,firstName:s.firstName,currency:n,items:[]}).catch(p=>{}))},[n]),it=Mt(()=>{let s=l.reduce((T,re)=>{let _e=Ye(re,n);return _e===null?T:T+_e},0),p=l.some(T=>Ut(T,n)===null),h=l.reduce((T,re)=>T+re.qty,0),g=m?.valid?m.effects:void 0,R=g?Math.min(s,Number(g.discountAmount)):0,de=x?.bundleDiscount??0,nn=x?.appliedBundles??[],Ue=!!g?.freeShipping,st=z.find(T=>T.id===D),lt=Ue?0:x?.shipping??st?.amount??0,rn=Ot({quoted:x!==null,optionCount:z.length,chosenAmount:st?.amount,couponWaivesFreight:Ue}),He={};for(let T of g?.freeUnits??[])He[T.partNumber]=(He[T.partNumber]??0)+T.quantity;let on=x?.tax??null,an=x?x.grandTotal:s-R-de+lt;return{sets:h,units:l.reduce((T,re)=>T+(re.components??[]).reduce((_e,sn)=>_e+sn.wheels*re.qty,0),0),subtotal:s,hasUnpricedLine:p,discount:R,bundleDiscount:de,appliedBundles:nn,shipping:lt,freeShipping:Ue,shippingStatus:rn,freeUnitsByPartNumber:He,tax:on,grand:an,repricing:!!m?.refused&&x!==null&&A===m?.code,currency:n}},[l,n,m,z,D,x,A]),at=_(s=>{Y(s),K()},[Y,K]),tn=Mt(()=>({isOpen:i,preview:t,open:K,close:se,toggle:ee,items:l,catalog:u,bundles:d,warmCatalog:H,add:Y,addAndOpen:at,remove:Pe,setQty:we,replaceItems:E,identify:rt,clearCapturedCart:ot,coupon:m,applyCoupon:le,removeCoupon:ue,refuseCoupon:ce,couponBusy:J,deliveryOptions:z,setQuoteDestination:ve,shippingMethodId:D,setShippingMethodId:Se,totals:it}),[i,t,K,se,ee,l,u,d,H,Y,at,Pe,we,E,rt,ot,m,le,ue,ce,J,z,ve,D,it]);return Mn(Ht.Provider,{value:tn,children:e})}function $t(){let e=An(Ht);if(!e)throw new Error("useCart() must be called inside <CartProvider>. Mount the provider in app/layout.tsx.");return e}import{cache as zn}from"react";function Bt(e,t,n,r){for(;e.size>=t;){let o,i;for(let[l,c]of e){if(c.expiresAt<=r){o=l;break}i===void 0&&n(l)&&(i=l)}let a=o??i??e.keys().next().value;if(a===void 0)return;e.delete(a)}}var Dn=6e4,Fn=5e3,Un=500,Ae=new Map;async function Hn(e){let{host:t,matchesRequestHost:n}=await pt();if(!t)return"";let r=await mt();return r?`${e}|slug:${encodeURIComponent(t)}/${encodeURIComponent(r)}`:n?`${e}|host:${t}`:`${e}|xhost:${t}`}var $n=e=>e.includes("|slug:")||e.includes("|xhost:");async function Wt(e,t){if(await gt()!==null)return t();let n=await Hn(e);if(!n)return t();let r=Date.now(),o=Ae.get(n);if(o&&o.expiresAt>r)return o.load;let i=await t(),a=i.outcome.state==="failed",l=a?Fn:Dn,c=Ae.get(n)?.lastGood,u=i.outcome.state==="ok"?i:a?c:void 0,f=a&&u?u:i;return Bt(Ae,Un,$n,r),Ae.set(n,{load:f,expiresAt:r+l,lastGood:u}),f}var Bn=404;function Wn(e){if(e instanceof pe&&e.status===Bn)return{state:"absent"};let t=e instanceof pe?e.status:-1,n=e instanceof Error?e.message:String(e);return{state:"failed",status:t,detail:n}}var Gn="[storefront:chrome-load-failed]";function qn(e,t){console.error(`${Gn} ${e} status=${t.status} \u2014 serving fallback chrome`,t.detail)}async function Gt(e,t,n,r){try{let o=await t();return r?.(o)?{value:o,outcome:{state:"absent"}}:{value:o,outcome:{state:"ok"}}}catch(o){let i=Wn(o);return i.state==="failed"&&qn(e,i),{value:n,outcome:i}}}function Kn(e){return e==="production"?"silent":"banner"}var Mo=Kn("production");function Xn(e,t){return e?.trim()||t}function Go({legalName:e,foundedYear:t,siteName:n},r=new Date().getFullYear()){let o=Xn(e,n);return`\xA9 ${t&&t<r?`${t}\u2013${r}`:`${r}`} ${o}`}var Vn={name:fe,legalName:null,foundedYear:null,faviconUrl:null,currencies:[],defaultCurrency:null,countries:[],defaultCountry:null,commerceEnabled:!0,cardPayments:!1,paymentMethods:[],paypalClientId:null,paypalEnvironment:null,squareApplicationId:null,squareLocationId:null,squareEnvironment:null,ga4MeasurementId:null,googleAdsId:null,googleAdsConversionLabel:null,metaPixelId:null,consentEnabled:!1,consentPrivacyPage:null,consentNoticeOptOut:!1,socialLinks:$e},qo=zn(async()=>Wt("site",()=>Gt("site",async()=>{let e=await B.getSite();return{name:ct(e.name),legalName:e.legalName?.trim()||null,foundedYear:e.foundedYear??null,faviconUrl:e.faviconUrl??null,currencies:e.currencies??[],defaultCurrency:e.defaultCurrency??null,countries:e.countries??[],defaultCountry:e.defaultCountry??null,commerceEnabled:e.commerceEnabled??!0,cardPayments:e.cardPayments??!1,paymentMethods:e.paymentMethods??(e.cardPayments?["card"]:[]),paypalClientId:e.paypalClientId??null,paypalEnvironment:e.paypalEnvironment??null,squareApplicationId:e.squareApplicationId??null,squareLocationId:e.squareLocationId??null,squareEnvironment:e.squareEnvironment??null,ga4MeasurementId:e.ga4MeasurementId??null,googleAdsId:e.googleAdsId??null,googleAdsConversionLabel:(e.googleAdsId?e.googleAdsConversionLabel:null)??null,metaPixelId:e.metaPixelId??null,consentEnabled:e.consentEnabled??!1,consentPrivacyPage:e.consentPrivacyPage??null,consentNoticeOptOut:e.consentNoticeOptOut??!1,socialLinks:dt(e.socialLinks)}},Vn)));var Ko={name:fe,legalName:null,foundedYear:null,faviconUrl:null,currencies:[{code:"USD",symbol:"$",decimalPlaces:2,isDefault:!0}],defaultCurrency:"USD",countries:[{code:"US",name:"United States",currency:"USD",url:"",isDefault:!0,chargeTax:!1,taxDisplay:"none",taxName:"",taxRate:null,postalLabel:"Zip Code"}],defaultCountry:"US",commerceEnabled:!0,cardPayments:!0,paymentMethods:["card"],paypalClientId:null,paypalEnvironment:null,squareApplicationId:null,squareLocationId:null,squareEnvironment:null,ga4MeasurementId:null,googleAdsId:null,googleAdsConversionLabel:null,metaPixelId:null,consentEnabled:!1,consentPrivacyPage:null,consentNoticeOptOut:!1,socialLinks:$e};import{jsx as be,jsxs as Qe}from"react/jsx-runtime";import{useEffect as ke,useId as Zn,useRef as Kt,useState as Te}from"react";import{efficientClientOpen as Yn}from"efficient-easel/screen/lib/session";var ye=new Map,Qn=64;async function jn(e){if(!Yn())return null;try{let t=await fetch(`${ut()}/logo-analysis.json?url=${encodeURIComponent(e)}`);if(!t.ok)return null;let n=await t.json();if(!n||typeof n!="object")return null;let{reversed:r,inkIsDark:o}=n;return typeof r!="string"?null:{reversed:r,inkIsDark:typeof o=="boolean"?o:null}}catch{return null}}function qt(e){let t=ye.get(e);if(t)return t;let n=jn(e);if(ye.set(e,n),ye.size>Qn){let r=ye.keys().next();r.done||ye.delete(r.value)}return n}var Jn=202/22,er=.88,ai=16,tr="invert(1)";function si({variant:e="header",scrolled:t=!0,src:n,reverse:r=!1,color:o=null,onLightSurface:i,reversedSrc:a,inkIsDark:l,size:c="medium",sizePx:u,wordmark:f,siteName:d=fe,fitToContainer:S=!1,fitWordmarkToContainer:N=!1,fitFloorPx:C}){let b=f&&f.trim()?f.trim():d,[P,O]=Te(!1),M=Kt(null),I=E=>{M.current=E};ke(()=>{let E=M.current?.ownerDocument??document,k=()=>{O(E.documentElement.getAttribute("data-theme")==="light")};k();let ne=new MutationObserver(k);return ne.observe(E.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>ne.disconnect()},[]);let v=n&&n.trim()?n.trim():null,x=!!v&&ft(v),W=i??(P&&t),A=o&&o.trim()?o.trim():null,G=r&&!A,y=`logo-color-${Zn().replace(/[^A-Za-z0-9_-]/g,"")}`,w=G&&x&&v&&a!=null?{reversed:a,inkIsDark:l??null}:null,m=w!==null,[q,J]=Te(null);ke(()=>{if(!G||!v||!x||m){J(null);return}let E=!1;return J(null),qt(v).then(k=>{E||J(k)}),()=>{E=!0}},[G,v,x,m]);let U=w??q,D=!!U&&U.inkIsDark!==null&&(W?!U.inkIsDark:U.inkIsDark),Se=G&&!!v&&!x&&!W,X=D&&U?U.reversed:v,K=X?[X]:[],[se,ee]=Te(0);ke(()=>{ee(0)},[v,D]);let ve=e==="footer"?We:Be[c],H=u&&u>0?u:ve,Ee=Math.round(H*Jn),F=se<K.length?K[se]:null,[z,V]=Te(X),le=F!==null&&F===z,ue=Kt(null);ke(()=>{let E=ue.current;if(!E||!E.complete)return;if(E.naturalWidth>0||E.naturalHeight>0){V(F);return}let k=!1;return E.decode().then(()=>!k&&V(F),()=>!k&&ee(ne=>ne+1)),()=>{k=!0}},[F]);let ce=S||N,te=`calc(100cqi / ${((b.length+1)*er).toFixed(2)})`,Y=ce&&C&&C>0?Math.min(C,H):null,Pe=ce?Y===null?`min(${H}px, ${te})`:`clamp(${Y}px, ${te}, ${H}px)`:`${H}px`,we=Qe("span",{className:`font-display font-bold tracking-[0.18em] ${Y===null?"whitespace-nowrap":"whitespace-normal"}`,style:{fontSize:Pe,lineHeight:1,...A?{color:A}:{}},"aria-label":b,children:[b,be("span",{className:"text-accent",style:A?{color:A}:void 0,children:"."})]});return Qe("span",{ref:I,className:"inline-flex items-center",children:[!le&&we,A&&F&&be("svg",{"aria-hidden":"true",focusable:"false",width:"0",height:"0",style:{position:"absolute"},children:Qe("filter",{id:y,colorInterpolationFilters:"sRGB",children:[be("feFlood",{style:{floodColor:A}}),be("feComposite",{in2:"SourceAlpha",operator:"in"})]})}),F&&be("img",{ref:ue,src:F,alt:b,width:Ee,height:H,className:"shrink-0 object-contain",style:{...le?{height:`${H}px`,width:"auto",...S?{maxWidth:"100cqi"}:{}}:{display:"none"},...Se?{filter:tr}:{},...A?{filter:`url(#${y})`}:{}},onLoad:()=>V(F),onError:()=>ee(E=>E+1)},F)]})}import{jsx as Ce,jsxs as rr}from"react/jsx-runtime";function nr({spokes:e,mesh:t=!1,className:n}){let a=c=>Math.round(c*1e3)/1e3,l=[];for(let c=0;c<e;c++){let u=c/e*Math.PI*2-Math.PI/2;if(l.push({x1:a(100+Math.cos(u)*22),y1:a(100+Math.sin(u)*22),x2:a(100+Math.cos(u)*86),y2:a(100+Math.sin(u)*86),main:!0}),t){let f=u+Math.PI/e;l.push({x1:a(100+Math.cos(f)*22*1.4),y1:a(100+Math.sin(f)*22*1.4),x2:a(100+Math.cos(f)*78),y2:a(100+Math.sin(f)*78),main:!1})}}return rr("svg",{viewBox:"0 0 200 200",fill:"none",stroke:"currentColor",className:n??"block h-[70%] w-[70%] transition-transform duration-700 [transition-timing-function:cubic-bezier(.2,.6,.2,1)]",children:[Ce("circle",{cx:100,cy:100,r:92,strokeWidth:2}),Ce("circle",{cx:100,cy:100,r:84,strokeWidth:1,opacity:.4}),Ce("circle",{cx:100,cy:100,r:22,strokeWidth:2}),Ce("circle",{cx:100,cy:100,r:6,fill:"currentColor"}),l.map((c,u)=>Ce("line",{x1:c.x1,y1:c.y1,x2:c.x2,y2:c.y2,stroke:"currentColor",strokeWidth:c.main?6:3,strokeLinecap:"round",opacity:c.main?1:.5},u))]})}var di="#c9a461",zt=[{f:"black",label:"Black",hex:"#171717"},{f:"silver",label:"Silver",hex:"#cccccc"},{f:"bronze",label:"Bronze",hex:"#8a6438"},{f:"graphite",label:"Graphite",hex:"#3a3c3f"},{f:"red",label:"Candy Red",hex:"#7a0f14"}],fi={name:"",color:"var(--fg)",family:"silver",src:""};function or(e,t){let n=r=>{let o=zt.findIndex(i=>i.f===r);return o===-1?zt.length:o};return n(e)-n(t)||e.localeCompare(t)}function pi(e){let t=new Set;for(let n of e)for(let r of n.finishes??[])r?.family&&t.add(r.family);return[...t].sort(or)}import{useState as ir}from"react";import{jsx as ae,jsxs as je}from"react/jsx-runtime";function ar({customerEmail:e}){let{coupon:t,applyCoupon:n,removeCoupon:r,couponBusy:o}=$t(),[i,a]=ir("");async function l(){o||!i.trim()||(await n(i,e),a(""))}return je("div",{className:"flex flex-col gap-2",children:[t===null?je("div",{className:"flex border border-line",children:[ae("input",{type:"text",value:i,onChange:c=>a(c.target.value),onKeyDown:c=>{c.key==="Enter"&&(c.preventDefault(),l())},placeholder:"Coupon code","aria-label":"Coupon code",className:"flex-1 bg-transparent px-4 py-4 font-mono text-[11px] uppercase tracking-[0.18em] text-fg outline-none placeholder:text-fg-dim"}),ae("button",{type:"button",onClick:()=>{l()},disabled:o,className:"border-l border-line px-4 font-mono text-[10px] uppercase tracking-[0.26em] text-btn transition-colors hover:bg-btn hover:text-btn-ink disabled:cursor-wait disabled:opacity-60",children:o?"\u2026":"Apply"})]}):je("div",{className:["flex items-center justify-between gap-3 border px-4 py-3",t.valid?"border-accent":"border-line"].join(" "),style:t.valid?{background:"color-mix(in oklab, var(--accent) 8%, transparent)"}:void 0,children:[ae("span",{className:["font-mono text-[11px] uppercase tracking-[0.22em]",t.valid?"text-accent":t.deferred?"text-fg":"text-fg-dim line-through"].join(" "),children:t.code}),ae("button",{type:"button",onClick:r,"aria-label":`Remove coupon ${t.code}`,className:"font-mono text-[12px] text-fg-dim transition-colors hover:text-fg",children:"\u2715"})]}),t?.deferred?ae("p",{className:"font-mono text-[10px] uppercase tracking-[0.18em] text-fg-dim",children:wt}):t&&!t.valid&&t.message&&ae("p",{className:"font-mono text-[10px] uppercase tracking-[0.18em] text-alert",children:t.message})]})}var Ze="Ads on. Shopper can opt out.",Oe="Ads and analytics off until Accept",sr={us:{region:"us",name:"United States",model:"opt-out",law:"California CCPA / CPRA, other state laws",beforeChoice:Ze,footerLink:"Do Not Sell or Share My Personal Information",panelEyebrow:"Do not sell or share",adsRowName:"Sale or sharing for ads"},ca:{region:"ca",name:"Canada",model:"opt-in",law:"PIPEDA, Quebec Law 25",beforeChoice:Oe,footerLink:"Privacy choices",panelEyebrow:"Privacy choices",adsRowName:"Advertising"},au:{region:"au",name:"Australia",model:"opt-out",law:"Privacy Act 1988 (APPs)",beforeChoice:Ze,footerLink:"Privacy choices",panelEyebrow:"Privacy choices",adsRowName:"Advertising"},nz:{region:"nz",name:"New Zealand",model:"opt-out",law:"Privacy Act 2020",beforeChoice:Ze,footerLink:"Privacy choices",panelEyebrow:"Privacy choices",adsRowName:"Advertising"},uk:{region:"uk",name:"United Kingdom",model:"opt-in",law:"PECR, UK GDPR",beforeChoice:Oe,footerLink:"Cookie settings",panelEyebrow:"Cookie settings",adsRowName:"Advertising"},eu:{region:"eu",name:"European Union",model:"opt-in",law:"ePrivacy Directive, GDPR",beforeChoice:Oe,footerLink:"Cookie settings",panelEyebrow:"Cookie settings",adsRowName:"Advertising"},other:{region:"other",name:"All other countries",model:"opt-in",law:"Safe default",beforeChoice:Oe,footerLink:"Cookie settings",panelEyebrow:"Cookie settings",adsRowName:"Advertising"}};function lr(e){let t=[...e.googleAds?["Google"]:[],...e.meta?["Facebook","Instagram"]:[]];return t.length<=1?t.join(""):`${t.slice(0,-1).join(", ")} and ${t[t.length-1]}`}function xi(e,t,n){let r=lr(n),o=r?`We use cookies to count visits and to show you ${t} ads on ${r}.`:"We use cookies to count visits.";return e.model==="opt-in"?{heading:r?"Cookies and ads":"Cookies",before:`${o} Nothing loads until you choose. You can change this at any time with `,link:e.footerLink,after:" at the bottom of every page."}:{heading:r?"Cookies and ads":"Cookies",before:`${o} You can say no at any time: choose Privacy choices, or use `,link:e.footerLink,after:" at the bottom of every page."}}var Si={accept:"Accept all",reject:"Reject all",choose:"Choose",save:"Save",ok:"OK",privacyChoices:"Privacy choices",privacyPolicy:"Privacy Policy",alwaysOn:"Always on"};var ur={asked:!1,region:"other",model:"opt-in",analytics:!0,ads:!0,chosen:!0,gpc:!1};var cr=ur;function wi(e=cr){if(e.asked)return e.ads?"granted":"denied"}function Ni(){let e=typeof crypto<"u"?crypto:void 0;if(typeof e?.randomUUID=="function")return e.randomUUID();let t=new Uint8Array(16);if(typeof e?.getRandomValues=="function")e.getRandomValues(t);else for(let r=0;r<t.length;r++)t[r]=Math.floor(Math.random()*256);t[6]=t[6]&15|64,t[8]=t[8]&63|128;let n=Array.from(t,r=>r.toString(16).padStart(2,"0")).join("");return`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`}import{Children as fr,isValidElement as pr,useEffect as Vt,useId as mr,useLayoutEffect as jt,useRef as Q,useState as Yt}from"react";var Me=(e,t)=>!!e[t]&&!e[t].disabled;function Je(e,t,n){let r=e.length;for(let o=1;o<=r;o++){let i=((t+n*o)%r+r)%r;if(Me(e,i))return i}return t}function et(e,t){return Je(e,t===1?-1:e.length,t)}function tt(e,t){return Me(e,t)?t:Math.max(et(e,1),0)}function Xt(e,t,n){let{open:r,focus:o}=e,i=a=>({...e,...a});if(t.length===1&&/\S/.test(t)){let a=e.typed+t.toLowerCase(),l=n.findIndex((c,u)=>Me(n,u)&&c.label.toLowerCase().startsWith(a));return{state:i({open:!0,typed:a,focus:l>=0?l:o}),handled:!0}}if(!r)return t==="ArrowDown"||t==="ArrowUp"||t==="Enter"||t===" "?{state:i({open:!0,typed:""}),handled:!0}:{state:e,handled:!1};switch(t){case"ArrowDown":return{state:i({focus:Je(n,o,1)}),handled:!0};case"ArrowUp":return{state:i({focus:Je(n,o,-1)}),handled:!0};case"Home":return{state:i({focus:et(n,1)}),handled:!0};case"End":return{state:i({focus:et(n,-1)}),handled:!0};case"Enter":case" ":return Me(n,o)?{state:i({open:!1,typed:""}),commit:o,refocus:!0,handled:!0}:{state:e,handled:!0};case"Escape":return{state:i({open:!1,typed:""}),refocus:!0,handled:!0};case"Tab":return{state:i({open:!1,typed:""}),handled:!1};default:return{state:e,handled:!1}}}import{placeMenu as gr}from"efficient-shell/ui";import{Fragment as Sr,jsx as j,jsxs as Zt}from"react/jsx-runtime";var Qt={body:"text-[length:var(--size-body,14px)]",label:"text-[length:var(--size-label,13px)]"};function hr({items:e,value:t,onPick:n,open:r,onOpen:o,onClose:i}){let[a,l]=Yt(!1),c=r!==void 0,u=c?r:a,[f,d]=Yt(0),S=Q({text:"",timer:0}),N=Q(null),C=Q(null),b=Q(null),P=mr(),O=Q(null),M=e.findIndex(y=>y.value===t),I=y=>{y!==u&&(c||l(y),y?o?.():i?.())},v=y=>{let w=e[y];!w||w.disabled||(n(w.value),I(!1),C.current?.focus())},x=y=>{let w={open:u,focus:u?f:tt(e,M),typed:S.current.text},m=Xt(w,y,e);return!m.handled&&m.state.open===u?!1:(m.state.typed!==w.typed&&(S.current.text=m.state.typed,window.clearTimeout(S.current.timer),S.current.timer=window.setTimeout(()=>{S.current.text=""},500)),d(m.state.focus),m.commit!==void 0?v(m.commit):I(m.state.open),m.refocus&&C.current?.focus(),m.handled)},W=Q(x);W.current=x;let A=Q(()=>I(!1));A.current=()=>I(!1);let G=y=>{u||(O.current=y.nativeEvent,W.current(y.key)&&y.preventDefault())};return Vt(()=>{if(!u)return;let y=m=>{N.current?.contains(m.target)||A.current()},w=m=>{m!==O.current&&W.current(m.key)&&m.preventDefault()};return document.addEventListener("mousedown",y),document.addEventListener("keydown",w),()=>{document.removeEventListener("mousedown",y),document.removeEventListener("keydown",w)}},[u]),Vt(()=>{u&&(S.current.text||d(tt(e,M)))},[u]),jt(()=>{if(!u||!b.current)return;b.current.children.item(f)?.scrollIntoView({block:"nearest"})},[f,u]),{open:u,toggle:()=>I(!u),close:()=>I(!1),focusIdx:f,setFocusIdx:d,pick:y=>v(e.findIndex(w=>w.value===y)),wrapRef:N,triggerRef:C,listRef:b,listId:P,onTriggerKeyDown:G,activeId:u?`${P}-${f}`:void 0}}var yr={select:{list:"absolute left-0 top-full z-50 mt-1 max-h-[280px] w-max min-w-full overflow-y-auto border-2 border-accent bg-bg shadow-xl",item:(e,t,n)=>["px-3 py-3 font-mono text-[13px] font-semibold uppercase tracking-[0.1em] transition-colors whitespace-nowrap",n?"cursor-not-allowed opacity-40":"cursor-pointer",e&&!n?"bg-accent text-bg":"bg-bg text-fg"].join(" ")},cell:{list:"absolute left-0 top-full z-50 mt-1 max-h-[320px] w-max min-w-full overflow-y-auto border-2 border-accent bg-bg shadow-xl",item:e=>[`cursor-pointer whitespace-nowrap px-6 py-3 font-mono ${Qt.label} font-semibold uppercase tracking-[0.1em] transition-colors`,e?"bg-accent text-bg":"bg-bg text-fg"].join(" "),pickerMarker:!0},hairline:{list:"absolute left-0 top-full z-50 max-h-[320px] w-full overflow-y-auto border border-line bg-bg shadow-[0_6px_20px_rgba(0,0,0,0.10)]",item:(e,t)=>[`flex cursor-pointer items-center justify-between gap-4 border-b border-line px-4 py-3 text-left ${Qt.body} transition-colors last:border-b-0`,t?"border-fg font-medium text-fg":e?"border-fg text-fg":"text-fg-dim"].join(" "),pickerMarker:!0},region:{list:"absolute right-0 top-full z-[200] mt-2 flex min-w-[240px] flex-col border border-line bg-surface text-fg",item:(e,t,n,r)=>["flex w-full cursor-pointer items-center gap-3 px-4 py-3 text-left transition-colors","font-mono text-[13px] uppercase tracking-[0.18em]",e?"bg-surface-2 text-fg":"",r?"":"border-b border-line",t?"text-accent":""].join(" "),itemStyle:e=>e?void 0:{color:"color-mix(in oklab, currentColor 80%, transparent)"}}};function br(e,t){jt(()=>{let n=e.current,r=n?.ownerDocument.defaultView;if(!n||!r)return;let o=()=>{let i=n.style;i.top=i.bottom=i.marginTop=i.marginBottom=i.maxHeight=i.overflowY=i.translate="";let a=n.offsetParent??n.parentElement;if(!a)return;let l=a.getBoundingClientRect(),c=n.getBoundingClientRect(),u=Math.abs(c.right-l.right)<Math.abs(c.left-l.left)?"end":"start",f=gr({trigger:{left:l.left,right:l.right,top:l.top,bottom:l.bottom},menu:{width:c.width,height:c.height},bounds:{left:0,top:0,right:r.innerWidth,bottom:r.innerHeight},align:u,side:"bottom"});if(f.side==="top"){i.top="auto",i.bottom="100%",i.marginTop="0px";let S=f.top+Math.min(c.height,f.maxHeight);i.marginBottom=`${Math.max(0,l.top-S)}px`}f.maxHeight<c.height&&(i.maxHeight=`${f.maxHeight}px`,i.overflowY="auto");let d=f.left-c.left;d&&(i.translate=`${d}px`)};return o(),r.addEventListener("resize",o),r.addEventListener("scroll",o,!0),()=>{r.removeEventListener("resize",o),r.removeEventListener("scroll",o,!0)}},[e,t])}function Cr({id:e,tone:t,items:n,value:r,focusIdx:o,onFocus:i,onPick:a,listRef:l,ariaLabel:c}){let u=yr[t],f=Q(null);return br(f,n.length),j("ul",{ref:d=>{f.current=d,l&&(l.current=d)},id:e,role:"listbox","aria-label":c,...u.pickerMarker?{"data-picker-menu":""}:{},className:u.list,children:n.map((d,S)=>{let N=d.value===r;return j("li",{id:`${e}-${S}`,role:"option","aria-selected":N,"aria-disabled":d.disabled||void 0,onMouseEnter:()=>!d.disabled&&i(S),onMouseDown:C=>{C.preventDefault(),d.disabled||a(d.value)},className:u.item(S===o,N&&d.value!=="",!!d.disabled,S===n.length-1),style:u.itemStyle?.(N),children:d.meta===void 0?d.label:Zt(Sr,{children:[d.lead,j("span",{className:"flex-1 whitespace-nowrap",children:d.label}),j("span",{className:"ml-auto text-[12px] opacity-50",children:d.meta})]})},`${d.value}_${S}`)})})}function xr({value:e,onChange:t,disabled:n,children:r,className:o,style:i,name:a,id:l,"aria-label":c}){let u=fr.toArray(r).flatMap(C=>{if(!pr(C))return[];if(C.type!=="option")return[];let P=C.props,O=P.value!==void 0?String(P.value):"",M=P.children,I=typeof M=="string"||typeof M=="number"?String(M):O;return[{value:O,label:I,disabled:!!P.disabled}]}),f=e??"",d=hr({items:u,value:f,onPick:C=>t?.({target:{value:C}})}),N=u.find(C=>C.value===f)?.label??u[0]?.label??"";return Zt("div",{ref:d.wrapRef,className:"relative",children:[a&&j("input",{type:"hidden",name:a,value:f}),j("button",{ref:C=>{d.triggerRef.current=C},type:"button",disabled:n,"aria-haspopup":"listbox","aria-expanded":d.open,"aria-controls":d.open?d.listId:void 0,"aria-activedescendant":d.activeId,"aria-label":c,id:l,onClick:()=>!n&&d.toggle(),onKeyDown:C=>!n&&d.onTriggerKeyDown(C),className:`block w-full ${o??""}`,style:i,children:j("span",{className:"block w-full truncate text-left",children:N})}),d.open&&j(Cr,{id:d.listId,tone:"select",items:u,value:f,focusIdx:d.focusIdx,onFocus:d.setFocusIdx,onPick:d.pick,listRef:d.listRef})]})}import{jsx as xe,jsxs as De}from"react/jsx-runtime";var vr="font-mono text-[length:var(--size-label,12px)]",Er="font-semibold uppercase tracking-[0.22em] text-fg";function Jt(e){return`${e??vr} ${Er}`}function en(){return xe("span",{className:"text-accent",children:" *"})}function Pr({children:e,required:t,labelFace:n}){return De("span",{className:Jt(n),children:[e,t?xe(en,{}):null]})}function wr({label:e,required:t,hint:n,separate:r,htmlFor:o,labelFace:i,className:a,children:l}){let c=a?`flex flex-col gap-2 ${a}`:"flex flex-col gap-2",u=n?xe("span",{className:"font-mono text-[11px] uppercase tracking-[0.22em] text-fg-dim",children:n}):null;return r||n?De("div",{className:c,children:[De("label",{htmlFor:o,className:Jt(i),children:[e,t?xe(en,{}):null]}),l,u]}):De("label",{htmlFor:o,className:c,children:[xe(Pr,{required:t,labelFace:i,children:e}),l]})}export{Wr as a,Gr as b,qr as c,ht as d,Ge as e,_r as f,Nr as g,Rr as h,Lr as i,ln as j,un as k,Ir as l,Ar as m,qe as n,Ne as o,me as p,kr as q,Re as r,yn as s,bn as t,Vr as u,Yr as v,Nt as w,Xe as x,Qr as y,jr as z,xn as A,Zr as B,Jr as C,Sn as D,eo as E,En as F,to as G,no as H,Rt as I,lo as J,uo as K,co as L,mo as M,go as N,Fr as O,vt as P,Ur as Q,Le as R,Ye as S,No as T,$t as U,Go as V,Vn as W,Ko as X,ai as Y,si as Z,nr as _,di as $,zt as aa,fi as ba,or as ca,pi as da,ar as ea,sr as fa,xi as ga,Si as ha,ur as ia,wi as ja,Ni as ka,hr as la,Cr as ma,xr as na,Pr as oa,wr as pa};
|