efficient-storefront-blocks 0.49.0 → 0.51.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 +13 -0
- package/dist/chunks/{EditorPreviewCheckout-PU4R5GN7.js → EditorPreviewCheckout-KD4AHU4O.js} +1 -1
- package/dist/chunks/{SiteEditorProvider-FZBRQ2B2.js → SiteEditorProvider-GOBBFDFG.js} +1 -1
- package/dist/chunks/{chunk-VMPVYAOB.js → chunk-4UVE5U6U.js} +10 -10
- package/dist/chunks/{chunk-OCPDFASX.js → chunk-QISNU4TH.js} +1 -1
- package/dist/chunks/{chunk-5JCRKBCY.js → chunk-RO3NYDCR.js} +1 -1
- package/dist/chunks/chunk-TCEBHDNY.js +1 -0
- package/dist/chunks/{fitment-data-K76YEOJL.js → fitment-data-AHZRSHYQ.js} +1 -1
- package/dist/index.js +101 -73
- package/package.json +3 -3
- package/dist/chunks/chunk-ZC7LDSMX.js +0 -1
- /package/dist/chunks/{SectionEditorShell-2BUHUZDQ.js → SectionEditorShell-MD342M37.js} +0 -0
- /package/dist/chunks/{chunk-VMPVYAOB.js.LEGAL.txt → chunk-4UVE5U6U.js.LEGAL.txt} +0 -0
- /package/dist/chunks/{chunk-C7MFEEPZ.js → chunk-H2GMJL72.js} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.51.0 — 2026-10-20
|
|
6
|
+
|
|
7
|
+
- **MAJOR for hosts: easel 15, builder 29, shell 8.10.1** (card [FIX] Single Click On Text, Lewis 2026-10-20). The ranges (peer and dev, `package/` too) are efficient-easel `^15.0.0` (was `^14.2.0`), efficient-web-builder `^29.0.0` (was `^28.1.0`) and efficient-shell `^8.10.1` (was `^8.2.0`). No source in the blocks changes: the editor's canvas gets easel 15's behaviour with the screen (one click selects and leaves no caret, "Double-click to edit", the arrow pointer, Backspace never deletes a block, no "+" while typing, ⌘A selects only the typed box, the one-row floating text toolbar). The blocks import no `ImageBox` (#136), which easel 15 deletes. The admin portal and the storefront take this release to reach easel 15.
|
|
8
|
+
- Guards: `test-shell-peer-range.ts` holds the new ranges. `test-backend-media-limit.ts` finds the shell field's upload zone in the row's control slot (`.es-field-ctl`), not in easel's retired image box (`.es-pick-image`); its three drops pass as before (over the cap refused, at the cap sent, no cap: a big file goes through).
|
|
9
|
+
|
|
10
|
+
## 0.50.0 — 2026-10-20
|
|
11
|
+
|
|
12
|
+
- **A picked set shows its part's own pictures** (render axes; Lewis through GG, 2026-10-20). The backend sends each set component's `renderKey` (its lug count, hand and dually position together) and each finish's `axisRenderings` (key → URLs, matched by the backend's one rule). The product hero looks the picked set's left wheel up there (`axisRenderingsFor` in `lib/wheels/cover-rendering`), never parsing the key. No key (an older backend) or no list for it keeps the car ladder, then the finish's angles, as before. A part's own pictures print no reference note. `lib/api/types.ts` gains both fields (the storefront contract gains them in the same change).
|
|
13
|
+
- Guard: `scripts/test-part-axis-renders.tsx`.
|
|
14
|
+
- **The consent hooks are apart from the consent provider.** `components/ConsentContext` now holds only the contexts, `useConsent` and `useConsentControls`; `ConsentProvider` (which draws the banner and the choices panel) is `components/ConsentProvider`. `LegalLine` reads the hooks, so a footer no longer imports the choices panel and its level-2 heading, and the storefront's page outline stops seeing a heading the footer never draws (its `test-heading-outline-covers-catalog`). A host imports `ConsentProvider` from `@/components/ConsentProvider`.
|
|
15
|
+
|
|
5
16
|
## 0.49.0 — 2026-10-20
|
|
6
17
|
|
|
7
18
|
- **Consent by country** (efficient-backend docs/adr/0065; design approved by Lewis 2026-10-20). A site that asks (`consentEnabled`) works out each visitor's region in the browser, from the time zone and the country they picked (the stricter wins), and tells the tags what they may do.
|
|
@@ -28,6 +39,8 @@
|
|
|
28
39
|
- **Builder 28.1** (peer and dev). A host must move with it: the builder range is `^28.1.0` (was `^26.2.0`). The easel range stays `^14.2.0` and the shell range `^8.2.0` (#135). The storefront, which vendors `src/`, installs builder 28.1 in the same pull request that takes this pin.
|
|
29
40
|
- The editor word catalogue is regenerated against builder 28.1.
|
|
30
41
|
- Guards: the builder's own new rows from 26.3.0 (#57: the Logo block's Alignment and Padding, the Divider's `thickness` / `lengthPct` / `hideOnMobile`) are declared gains in `test-animation-tab.tsx` and the section-style `ADDED` registry, each with its builder release. The fixture is not re-captured. `test-shell-peer-range.ts` holds the new ranges.
|
|
42
|
+
- **The render side takes easel's names from efficient-easel too, not through efficient-web-builder's re-exports** (SSOT; finishes 0.48.0's change). 0.48.0 moved the `editor/` imports of the builder's 63 easel re-exports and missed the same modules on the `render/` and `format/` sides: 72 files (83 imports, 29 of them in `src/render`) still named them. Each now names its easel subpath, all in easel's render group, so `src/render` stays inside its rules (`scripts/test-render-side.ts`). Renamed names keep their local name. No stored value and nothing on screen changes. This lets efficient-web-builder delete the 63 files.
|
|
43
|
+
- Guard: `scripts/test-easel-names-from-easel.ts` now checks every side of the builder (`editor/`, `render/`, `format/`). Guards that load easel's session at run time take it with `require`: in a guard a bare `import()` of easel loads a second copy, and the session is state (measured: `require` gives the builder's copy).
|
|
31
44
|
|
|
32
45
|
## 0.48.0 — 2026-10-20
|
|
33
46
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";import{K as qt,L as _t,M as Dt,N as Ft,O as Mt,P as ie,Q as we,R as Ut,S as Wt,T as Ze,U as $t,W as Qe,Y as Kt,Z as Yt,_ as zt,a as Lt,b as Ot,c as Tt,d as jt,da as Bt,ia as Ht,ja as Gt,ma as et,oa as K,w as _e}from"./chunk-
|
|
1
|
+
"use client";import{K as qt,L as _t,M as Dt,N as Ft,O as Mt,P as ie,Q as we,R as Ut,S as Wt,T as Ze,U as $t,W as Qe,Y as Kt,Z as Yt,_ as zt,a as Lt,b as Ot,c as Tt,d as jt,da as Bt,ia as Ht,ja as Gt,ma as et,oa as K,w as _e}from"./chunk-RO3NYDCR.js";import{j as qe,p as de,w as T}from"./chunk-TCEBHDNY.js";import{a as Rt,c as ne,za as It}from"./chunk-H2GMJL72.js";import{o as At,p as Se,q as H}from"./chunk-QISNU4TH.js";import{a as Xe,b as ir}from"./chunk-Y6SLVHK3.js";var Jt=Xe((ra,Vt)=>{"use strict";var sr="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";Vt.exports=sr});var en=Xe((aa,Qt)=>{"use strict";var cr=Jt();function Xt(){}function Zt(){}Zt.resetWarningCache=Xt;Qt.exports=function(){function t(a,o,s,l,d,p){if(p!==cr){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:Zt,resetWarningCache:Xt};return n.PropTypes=n,n}});var nn=Xe((sa,tn)=>{"use strict";tn.exports=en()();var oa,ia});import{useEffect as z,useMemo as ze,useRef as ce,useState as g}from"react";var N=ir(nn(),1);import x from"react";function rn(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 lr(t){if(Array.isArray(t))return t}function ln(t,e,n){return(e=gr(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function ur(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var a,o,s,l,d=[],p=!0,u=!1;try{if(s=(n=n.call(t)).next,e!==0)for(;!(p=(a=s.call(n)).done)&&(d.push(a.value),d.length!==e);p=!0);}catch(v){u=!0,o=v}finally{try{if(!p&&n.return!=null&&(l=n.return(),Object(l)!==l))return}finally{if(u)throw o}}return d}}function pr(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
2
2
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function an(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 on(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?an(Object(n),!0).forEach(function(a){ln(t,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):an(Object(n)).forEach(function(a){Object.defineProperty(t,a,Object.getOwnPropertyDescriptor(n,a))})}return t}function dr(t,e){if(t==null)return{};var n,a,o=mr(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 mr(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 un(t,e){return lr(t)||ur(t,e)||yr(t,e)||pr()}function fr(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 gr(t){var e=fr(t,"string");return typeof e=="symbol"?e:e+""}function tt(t){"@babel/helpers - typeof";return tt=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},tt(t)}function yr(t,e){if(t){if(typeof t=="string")return rn(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)?rn(t,e):void 0}}var j=function(e,n,a){var o=!!a,s=x.useRef(a);x.useEffect(function(){s.current=a},[a]),x.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])},nt=function(e){var n=x.useRef(e);return x.useEffect(function(){n.current=e},[e]),n.current},me=function(e){return e!==null&&tt(e)==="object"},hr=function(e){return me(e)&&typeof e.then=="function"},vr=function(e){return me(e)&&typeof e.elements=="function"&&typeof e.createToken=="function"&&typeof e.createPaymentMethod=="function"&&typeof e.confirmCardPayment=="function"},sn="[object Object]",br=function t(e,n){if(e===n)return!0;if(!me(e)||!me(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)===sn,l=Object.prototype.toString.call(n)===sn;if(s!==l)return!1;if(!s&&!a)return e===n;var d=Object.keys(e),p=Object.keys(n);if(d.length!==p.length)return!1;for(var u={},v=0;v<d.length;v+=1)u[d[v]]=!0;for(var b=0;b<p.length;b+=1)u[p[b]]=!0;var f=Object.keys(u);if(f.length!==d.length)return!1;var y=e,A=n,k=function(S){return t(y[S],A[S])};return f.every(k)},pn=function(e,n,a){return me(e)?Object.keys(e).reduce(function(o,s){var l=!me(n)||!br(e[s],n[s]);return a.includes(s)?(l&&console.warn("Unsupported prop change: options.".concat(s," is not a mutable property.")),o):l?on(on({},o||{}),{},ln({},s,e[s])):o},null):null},dn="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.",cn=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:dn;if(e===null||vr(e))return e;throw new Error(n)},xr=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:dn;if(hr(e))return{tag:"async",stripePromise:Promise.resolve(e).then(function(o){return cn(o,n)})};var a=cn(e,n);return a===null?{tag:"empty"}:{tag:"sync",stripe:a}},kr=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"}))},De=x.createContext(null);De.displayName="ElementsContext";var mn=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},at=function(e){var n=e.stripe,a=e.options,o=e.children,s=x.useMemo(function(){return xr(n)},[n]),l=x.useState(function(){return{stripe:s.tag==="sync"?s.stripe:null,elements:s.tag==="sync"?s.stripe.elements(a):null}}),d=un(l,2),p=d[0],u=d[1];x.useEffect(function(){var f=!0,y=function(k){u(function(C){return C.stripe?C:{stripe:k,elements:k.elements(a)}})};return s.tag==="async"&&!p.stripe?s.stripePromise.then(function(A){A&&f&&y(A)}):s.tag==="sync"&&!p.stripe&&y(s.stripe),function(){f=!1}},[s,p,a]);var v=nt(n);x.useEffect(function(){v!==null&&v!==n&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.")},[v,n]);var b=nt(a);return x.useEffect(function(){if(p.elements){var f=pn(a,b,["clientSecret","fonts"]);f&&p.elements.update(f)}},[a,b,p.elements]),x.useEffect(function(){kr(p.stripe)},[p.stripe]),x.createElement(De.Provider,{value:p},o)};at.propTypes={stripe:N.default.any,options:N.default.object};var fn=function(e){var n=x.useContext(De);return mn(n,e)},gn=function(){var e=fn("calls useElements()"),n=e.elements;return n},Cr=function(e){var n=e.children,a=fn("mounts <ElementsConsumer>");return n(a)};Cr.propTypes={children:N.default.func.isRequired};var Sr=x.createContext(null);Sr.displayName="CheckoutContext";var yn=x.createContext(null);yn.displayName="CheckoutSdkContext";var rt=function(e){var n=x.useContext(yn),a=x.useContext(De);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 mn(a,e)},wr=["mode"],Pr=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},E=function(e,n,a){var o="".concat(Pr(e),"Element"),s=function(u){var v=u.id,b=u.className,f=u.options,y=f===void 0?{}:f,A=u.onBlur,k=u.onFocus,C=u.onReady,S=u.onChange,F=u.onEscape,O=u.onClick,X=u.onLoadError,G=u.onLoaderStart,fe=u.onNetworksChange,re=u.onConfirm,Ee=u.onCancel,ae=u.onShippingAddressChange,Re=u.onShippingRateChange,ge=u.onSavedPaymentMethodRemove,Ie=u.onSavedPaymentMethodUpdate,ye=u.onAvailablePaymentMethodsChange,ee=rt("mounts <".concat(o,">")),te="elements"in ee?ee.elements:null,M="checkoutSdk"in ee?ee.checkoutSdk:null,he=x.useState(null),le=un(he,2),I=le[0],ve=le[1],_=x.useRef(null),oe=x.useRef(null);j(I,"blur",A),j(I,"focus",k),j(I,"escape",F),j(I,"click",O),j(I,"loaderror",X),j(I,"loaderstart",G),j(I,"networkschange",fe),j(I,"confirm",re),j(I,"cancel",Ee),j(I,"shippingaddresschange",ae),j(I,"shippingratechange",Re),j(I,"savedpaymentmethodremove",ge),j(I,"savedpaymentmethodupdate",Ie),j(I,"availablepaymentmethodschange",ye),j(I,"change",S);var U;C&&(e==="expressCheckout"?U=C:U=function(){C(I)}),j(I,"ready",U),x.useLayoutEffect(function(){if(_.current===null&&oe.current!==null&&(te||M)){var w=null;if(M){var B=M,be=M;switch(e){case"paymentForm":w=be.createForm(y);break;case"payment":w=B.createPaymentElement(y);break;case"address":if("mode"in y){var xe=y.mode,He=dr(y,wr);if(xe==="shipping")w=B.createShippingAddressElement(He);else if(xe==="billing")w=B.createBillingAddressElement(He);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":w=B.createExpressCheckoutElement(y);break;case"currencySelector":w=M.createCurrencySelectorElement();break;case"taxId":w=B.createTaxIdElement(y);break;case"contactDetails":w=B.createContactDetailsElement();break;case"linkSignup":if("createLinkSignupElement"in M)w=M.createLinkSignupElement(y);else throw new Error("<LinkSignupElement> requires <CheckoutElementsProvider> and is not supported inside <CheckoutFormProvider>.");break;case"terms":w=B.createTermsElement(y);break;default:throw new Error("<".concat(o,"> is not supported inside a checkout provider. Use an <Elements> provider instead."))}}else te&&(w=te.create(e,y));_.current=w,ve(w),w&&w.mount(oe.current)}},[te,M,y]);var ue=nt(y);return x.useEffect(function(){if(_.current){var w=pn(y,ue,["paymentRequest"]);w&&"update"in _.current&&_.current.update(w)}},[y,ue]),x.useLayoutEffect(function(){return function(){if(_.current&&typeof _.current.destroy=="function")try{_.current.destroy(),_.current=null}catch{}}},[]),x.createElement("div",{id:v,className:b,ref:oe})},l=function(u){rt("mounts <".concat(o,">"));var v=u.id,b=u.className;return x.createElement("div",{id:v,className:b})},d=n?l:s;return d.propTypes={id:N.default.string,className:N.default.string,onChange:N.default.func,onBlur:N.default.func,onFocus:N.default.func,onReady:N.default.func,onEscape:N.default.func,onClick:N.default.func,onLoadError:N.default.func,onLoaderStart:N.default.func,onNetworksChange:N.default.func,onConfirm:N.default.func,onCancel:N.default.func,onShippingAddressChange:N.default.func,onShippingRateChange:N.default.func,onSavedPaymentMethodRemove:N.default.func,onSavedPaymentMethodUpdate:N.default.func,onAvailablePaymentMethodsChange:N.default.func,options:N.default.object},d.displayName=o,d.__elementType=e,d},R=typeof window>"u",Nr=x.createContext(null);Nr.displayName="EmbeddedCheckoutProviderContext";var hn=function(){var e=rt("calls useStripe()"),n=e.stripe;return n},la=E("auBankAccount",R),ua=E("card",R),pa=E("cardNumber",R),da=E("cardExpiry",R),ma=E("cardCvc",R),fa=E("currencySelector",R),ga=E("iban",R),vn=E("payment",R),ya=E("expressCheckout",R),ha=E("paymentRequestButton",R),va=E("linkAuthentication",R),ba=E("linkSignup",R),xa=E("contactDetails",R),ka=E("address",R),Ca=E("shippingAddress",R),Sa=E("paymentMethodMessaging",R),wa=E("taxId",R),Pa=E("issuingCardNumberDisplay",R),Na=E("issuingCardCvcDisplay",R),Ea=E("issuingCardExpiryDisplay",R),Ra=E("issuingCardPinDisplay",R),Ia=E("issuingCardCopyButton",R),Aa=E("terms",R);function Ue(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ue=function(e){return typeof e}:Ue=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ue(t)}var kn="dahlia",Er=function(e){return e===3?"v3":e},Cn="https://js.stripe.com",Rr="".concat(Cn,"/").concat(kn,"/stripe.js"),Ir=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,Ar=/^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/,bn="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used",Lr=function(e){return Ir.test(e)||Ar.test(e)},Or=function(){for(var e=document.querySelectorAll('script[src^="'.concat(Cn,'"]')),n=0;n<e.length;n++){var a=e[n];if(Lr(a.src))return a}return null},xn=function(e){var n=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",a=document.createElement("script");a.src="".concat(Rr).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},Tr=function(e,n){!e||!e._registerWrapper||e._registerWrapper({name:"stripe-js",version:"9.17.0",startTime:n})},Pe=null,Fe=null,Me=null,jr=function(e){return function(n){e(new Error("Failed to load Stripe.js",{cause:n}))}},qr=function(e,n){return function(){window.Stripe?e(window.Stripe):n(new Error("Stripe.js not available"))}},_r=function(e){return Pe!==null?Pe:(Pe=new Promise(function(n,a){if(typeof window>"u"||typeof document>"u"){n(null);return}if(window.Stripe&&e&&console.warn(bn),window.Stripe){n(window.Stripe);return}try{var o=Or();if(o&&e)console.warn(bn);else if(!o)o=xn(e);else if(o&&Me!==null&&Fe!==null){var s;o.removeEventListener("load",Me),o.removeEventListener("error",Fe),(s=o.parentNode)===null||s===void 0||s.removeChild(o),o=xn(e)}Me=qr(n,a),Fe=jr(a),o.addEventListener("load",Me),o.addEventListener("error",Fe)}catch(l){a(l);return}}),Pe.catch(function(n){return Pe=null,Promise.reject(n)}))},Dr=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(Ue(o)," instead."));var s=o.match(/^pk_test/),l=Er(e.version),d=kn;s&&l!==d&&console.warn("Stripe.js@".concat(l," was loaded on the page, but @stripe/stripe-js@").concat("9.17.0"," expected Stripe.js@").concat(d,". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));var p=e.apply(void 0,n);return Tr(p,a),p},Ne,Sn=!1,wn=function(){return Ne||(Ne=_r(null).catch(function(e){return Ne=null,Promise.reject(e)}),Ne)};Promise.resolve().then(function(){return wn()}).catch(function(t){Sn||console.warn(t)});var Pn=function(){for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];Sn=!0;var o=Date.now();return wn().then(function(s){return Dr(s,n,o)})};var Fr="sf:gclid",Mr="sf:fbclid",Ur=2160*60*60*1e3;function Rn(){return typeof window<"u"}function Nn(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>Ur?"":n}catch{return""}}function En(t){if(!Rn())return"";let e=t.replace(/([.$?*|{}()[\]\\/+^])/g,"\\$1"),n=document.cookie.match(new RegExp(`(?:^|; )${e}=([^;]*)`));return n?decodeURIComponent(n[1]):""}function In(){if(!Rn())return{};let t=Nn(Fr),e=Nn(Mr),n=En("_fbp"),a=En("_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 An="sf:meta-purchases",Wr=20;function On(){return typeof window>"u"||window.parent!==window}function $r(...t){try{if(On()||typeof window.fbq!="function")return;window.fbq(...t)}catch{}}var Ln=new Set;function Kr(t){if(Ln.has(t))return!1;Ln.add(t);try{let e=JSON.parse(Se.getItem(An)??"[]");if(e.includes(t))return!1;Se.setItem(An,JSON.stringify([...e,t].slice(-Wr)))}catch{}return!0}function Yr(t){return[...new Set(t.filter(we).flatMap(e=>e.components.map(n=>n.partNumber)))]}function Tn(t){let e=t.confirmation;On()||!Kr(e.orderNumber)||$r("track","Purchase",{value:Number(e.grandTotal),currency:e.currency,content_type:"product",content_ids:Yr(t.lines)},{eventID:e.orderNumber})}var ot="checkout-afterpay-context",We="checkout-gocardless-context",it="checkout-zip-context",$e="checkout-klarna-context";function zr({evidence:t,parked:e}){return t?{action:"capture",evidence:t,parked:e}:e?{action:"settle",parked:e}:{action:"ignore"}}function Br(t,e){let n=t.getItem(e);if(t.removeItem(e),!n)return null;try{return JSON.parse(n)}catch{return null}}var jn={name:"Afterpay",legParam:"afterpay",legValues:["confirm","cancel"],storageKey:ot,evidenceFrom(t,e){return e==="cancel"||(t.get("status")??"").toUpperCase()==="CANCELLED"?null:t.get("orderToken")},requestFrom:t=>({token:t})},qn={name:"Zip",legParam:"zip",legValues:["return"],storageKey:it,evidenceFrom(t){let e=(t.get("result")??"").toLowerCase();return e==="cancelled"||e==="declined"?null:t.get("checkoutId")},requestFrom:t=>({checkoutId:t})};async function st(t,e){let n=new URLSearchParams(e.search),a=n.get(t.legParam);if(!a||!t.legValues.includes(a))return;let o=Br(e.storage,t.storageKey),s=t.evidenceFrom(n,a);e.scrubQuery();let l=zr({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 d=await e.capture(t.requestFrom(l.evidence));d.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??d)}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)}}}import{Fragment as q,jsx as r,jsxs as c}from"react/jsx-runtime";function _n(t){let e=t.indexOf(`
|
|
3
3
|
`);return e===-1?[t,""]:[t.slice(0,e),t.slice(e+1)]}function Dn(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 ut({site:t,logo:e,preview:n=!1}){let{items:a,totals:o,coupon:s,refuseCoupon:l,deliveryOptions:d,shippingMethodId:p,setShippingMethodId:u,identify:v,clearCapturedCart:b}=Ze(),f=d.find(i=>i.id===p)?.pickupLocation??null,{country:y,countries:A,activeCountry:k,formatMoney:C}=ie(),[S,F]=g(()=>Dn(t)[0].key),[O,X]=g(!0);z(()=>{X(At(H))},[]);let[G,fe]=g(!1),[re,Ee]=g(""),[ae,Re]=g(""),[ge,Ie]=g(""),[ye,ee]=g(""),[te,M]=g(""),[he,le]=g(""),[I,ve]=g(""),[_,oe]=g(""),[U,ue]=g(()=>y||A[0]?.code||""),[w,B]=g(""),[be,xe]=g([]),$n=ze(()=>A.find(i=>i.code===U)??k,[A,U,k])?.postalLabel||"Postal Code",Kn=be[0]?.divisionType||"State / Province";z(()=>{if(!U){xe([]);return}let i=!1;return T.listCountrySubdivisions(U).then(m=>{i||(xe(m),B(""))}),()=>{i=!0}},[U]);let[Z,pt]=g(null),[dt,mt]=g([]),[Ae,Le]=g("new"),[Ge,ft]=g(!1),[gt,Yn]=g("Home"),[yt,ht]=g(null),[W]=g(()=>Gt()),[Oe,$]=g(null),[vt,ke]=g(null),[bt,zn]=g(null),[Bn,Hn]=g(!1),[Gn,Vn]=g(!1),[V,Ve]=g(null),[xt,pe]=g(!1),[kt,Q]=g(null),[Jn,Xn]=g(!1),[Zn,Ct]=g(!1),[Qn,er]=g(!1),[tr,St]=g(!1),wt=ce(!1);z(()=>{n||wt.current||!a.some(we)||(wt.current=!0,qt({lines:a,currency:o.currency,value:o.subtotal-o.discount,coupon:s?.valid?s.code:void 0}))},[a,o,s,n]),z(()=>{v(re,ae.trim()||void 0)},[re,ae,v]);let Pt=ce(null),[Te,nr]=g(null);z(()=>{let i=Pt.current;if(!Te||!i)return;let m=()=>i.style.setProperty("--sf-checkout-header-h",`${Te.offsetHeight}px`);m();let h=new ResizeObserver(m);return h.observe(Te),()=>h.disconnect()},[Te]),z(()=>{let i=h=>({setConfirming:h,land:$,markPaid:()=>pe(!0),note:Q,fail:ke,clearCart:b}),m={search:window.location.search,storage:H,scrubQuery:()=>window.history.replaceState(null,"",window.location.pathname)};st(jn,{...m,capture:T.captureAfterpayPayment,page:i(Xn)}),st(qn,{...m,capture:T.captureZipPayment,page:i(er)})},[]),z(()=>{let m=new URLSearchParams(window.location.search).get("gocardless");if(m!=="confirm"&&m!=="cancel")return;let h=H.getItem(We);if(H.removeItem(We),window.history.replaceState(null,"",window.location.pathname),!h)return;let L;try{L=JSON.parse(h)}catch{return}if(b(),m==="cancel"){Q("The direct debit was not set up \u2014 our team will follow up on payment."),$(L.confirmation);return}Ct(!0),T.completeGocardlessPayment({idempotencyKey:L.idempotencyKey}).then(P=>{P.status==="paid"?pe(!0):P.status==="declined"?Q("The direct debit was declined \u2014 our team will follow up on payment."):Q("Your direct debit is set up \u2014 the payment is collecting and will clear in a few days.")}).catch(()=>{Q("We could not confirm the direct debit \u2014 our team will follow up on payment.")}).finally(()=>{$(L.confirmation),Ct(!1)})},[]),z(()=>{let i=new URLSearchParams(window.location.search),m=i.get("klarna");if(m!=="confirm"&&m!=="cancel")return;let h=H.getItem($e);H.removeItem($e);let L=i.get("authorization_token");if(window.history.replaceState(null,"",window.location.pathname),!h)return;let P;try{P=JSON.parse(h)}catch{return}if(b(),m==="cancel"||!L){Q("The Klarna payment was not completed \u2014 our team will follow up on payment."),$(P.confirmation);return}St(!0),T.captureKlarnaPayment({idempotencyKey:P.idempotencyKey,authorizationToken:L}).then(D=>{D.status==="paid"?pe(!0):D.status==="declined"?Q("Klarna declined the payment \u2014 our team will follow up on payment."):Q("Your Klarna payment is being reviewed \u2014 we'll confirm the outcome shortly.")}).catch(()=>{Q("We could not confirm the Klarna payment \u2014 our team will follow up on payment.")}).finally(()=>{$(P.confirmation),St(!1)})},[]);function Nt(i){let[m,h]=_n(i.address);ee(m),M(h),le(i.city),ve(i.zip_code),i.country&&ue(i.country),i.phone&&oe(i.phone)}z(()=>{let i=!1;return(async()=>{try{let[m,h,L]=await Promise.all([de.me(),de.myProfile().catch(()=>null),de.myAddresses().catch(()=>[])]);if(i)return;pt(m);let P=L.filter(Ce=>Ce.is_active);mt(P),Ee(m.email);let D=(h?.contact_name??"").split(/\s+/);Re(m.first_name||D[0]||""),Ie(m.last_name||D.slice(1).join(" "));let J=m.phone||h?.phone;J&&oe(J);let Je=P.find(Ce=>Ce.id===m.default_delivery_location)??P[0];if(Je)Le(Je.id),Nt(Je);else if(h){let[Ce,or]=_n(h.address??"");ee(Ce),M(or),le(h.city??""),ve(h.zip_code??""),h.country&&ue(h.country)}}catch{}})(),()=>{i=!0}},[]);function rr(){de.logout(),pt(null),mt([]),Le("new"),ft(!1)}let je=ze(()=>Dn(t,{canParkContext:O}),[t,O]);z(()=>{je.some(i=>i.key===S)||F(je[0].key)},[je,S]);let Et=te.trim()?`${ye}
|
|
4
4
|
${te.trim()}`:ye;async function ar(){if(n||G||a.length===0||o.repricing)return;let i=a.filter(we).flatMap(m=>jt(m.components,m.qty));if(i.length===0){ke("Pick a size on each wheel's product page before checking out.");return}fe(!0),ke(null);try{let m=Z?T.createOrderAuthed:T.createOrder,h=Ht(),L=await m({customer:{email:re,name:`${ae} ${ge}`.trim(),phone:_.trim()||void 0,address:Et,city:he,state:w||void 0,zipCode:I,country:U},items:i,currency:o.currency,idempotencyKey:W,shippingMethodId:p??void 0,couponCode:Ot(s),...h==="denied"?{}:In(),...h?{adConsent:h}:{}});if(_t({confirmation:L,lines:a,adsSendTo:t.googleAdsId&&t.googleAdsConversionLabel?`${t.googleAdsId}/${t.googleAdsConversionLabel}`:null}),Tn({confirmation:L,lines:a}),b(),Z&&Ge&&Ae==="new")try{await de.createAddress({label:gt.trim()||"Home",contact_name:`${ae} ${ge}`.trim(),phone:_.trim(),address:Et,city:he,zip_code:I,country:U}),ht("Address saved to your account.")}catch{ht("We couldn't save the address to your account \u2014 you can add it under Account \u2192 Addresses.")}if(S==="card"&&t.paymentMethods.includes("card")){let P=await T.createPaymentIntent({idempotencyKey:W});Ve(L),zn(P)}else if(S==="paypal"&&t.paymentMethods.includes("paypal"))Ve(L),Hn(!0);else if(S==="afterpay"&&t.paymentMethods.includes("afterpay")){let P=window.location.origin,D=await T.createAfterpayCheckout({idempotencyKey:W,confirmUrl:`${P}/checkout?afterpay=confirm`,cancelUrl:`${P}/checkout?afterpay=cancel`}),J={idempotencyKey:W,confirmation:L};H.setItem(ot,JSON.stringify(J)),window.location.assign(D.redirectCheckoutUrl);return}else if(S==="square"&&t.paymentMethods.includes("square"))Ve(L),Vn(!0);else if(S==="gocardless"&&t.paymentMethods.includes("gocardless")){let P=window.location.origin,D=await T.createGocardlessBillingRequest({idempotencyKey:W,confirmUrl:`${P}/checkout?gocardless=confirm`,cancelUrl:`${P}/checkout?gocardless=cancel`}),J={idempotencyKey:W,confirmation:L};H.setItem(We,JSON.stringify(J)),window.location.assign(D.authorisationUrl);return}else if(S==="zip"&&t.paymentMethods.includes("zip")){let P=window.location.origin,D=await T.createZipCheckout({idempotencyKey:W,redirectUrl:`${P}/checkout?zip=return`}),J={idempotencyKey:W,confirmation:L};H.setItem(it,JSON.stringify(J)),window.location.assign(D.redirectUrl);return}else if(S==="klarna"&&t.paymentMethods.includes("klarna")){let P=window.location.origin,D=await T.createKlarnaCheckout({idempotencyKey:W,confirmUrl:`${P}/checkout?klarna=confirm`,cancelUrl:`${P}/checkout?klarna=cancel`}),J={idempotencyKey:W,confirmation:L};H.setItem($e,JSON.stringify(J)),window.location.assign(D.redirectUrl);return}else $(L)}catch(m){let h=Tt(m);h?(l(h),ke(`${h} Your order has not been placed. Place it again to continue without the code.`)):ke(m instanceof qe?m.message:"Could not place the order. Please try again."),fe(!1)}}return Oe?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:xt?"Payment received":"Order received"}),c("p",{className:"text-fg-dim",children:[xt?c(q,{children:["Thank you \u2014 your payment for order"," ",r("span",{className:"font-mono text-fg",children:Oe.orderNumber})," has gone through."," "]}):c(q,{children:["Thank you \u2014 your order ",r("span",{className:"font-mono text-fg",children:Oe.orderNumber})," is being reviewed by our team."," "]}),Z?c(q,{children:["Track it under"," ",r(ne,{href:"/account/orders",className:"text-accent underline",children:"your orders"}),"."]}):r(q,{children:"We\u2019ve emailed you a link to set a password and track it."})]}),kt&&r("p",{className:"text-sm text-fg-dim",children:kt}),yt&&r("p",{className:"text-sm text-fg-dim",children:yt}),!Z&&c("p",{className:"text-sm text-fg-dim",children:["You can also"," ",r(ne,{href:`/track?order=${encodeURIComponent(Oe.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"})]}):Jn?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."})]}):Zn?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."})]}):Qn?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."})]}):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 Klarna \u2014 one moment."})]}):bt?r(Hr,{payment:bt,onPaid:()=>{pe(!0),$(V)},onSkip:()=>$(V)}):Bn&&V?r(Jr,{confirmation:V,clientId:t.paypalClientId??"",idemKey:W,onPaid:()=>{pe(!0),$(V)},onSkip:()=>$(V)}):Gn&&V?r(Zr,{confirmation:V,applicationId:t.squareApplicationId??"",locationId:t.squareLocationId??"",environment:t.squareEnvironment??"production",idemKey:W,onPaid:()=>{pe(!0),$(V)},onSkip:()=>$(V)}):c("div",{ref:Pt,className:"bg-bg text-fg",children:[c("header",{ref:nr,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(Kt,{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(Ke,{num:"N\xB0 01",title:"Contact",children:[r(K,{label:"Email",hint:Z?c(q,{children:["Signed in \xB7"," ",r("button",{type:"button",onClick:rr,className:"underline transition-colors hover:text-accent",children:"Not you? Sign out"})]}):void 0,children:r("input",{type:"email",value:re,onChange:i=>Ee(i.target.value),placeholder:"you@example.com",readOnly:Z!==null,className:Y+(Z?" opacity-70":"")})}),c(Mn,{children:[r(K,{label:"First name",children:r("input",{type:"text",value:ae,onChange:i=>Re(i.target.value),className:Y})}),r(K,{label:"Last name",children:r("input",{type:"text",value:ge,onChange:i=>Ie(i.target.value),className:Y})})]})]}),c(Ke,{num:"N\xB0 02",title:f?"Collection":"Shipping address",children:[f?c("div",{className:"grid gap-2 text-[14px] leading-[1.6]",children:[r("span",{className:"font-medium",children:f.name}),[f.address,f.city,f.state,f.zipCode,f.country].filter(Boolean).length>0&&r("span",{className:"opacity-80",children:[f.address,f.city,f.state,f.zipCode,f.country].filter(Boolean).join(", ")}),f.openingHours&&r("span",{className:"opacity-80",children:f.openingHours}),f.instructions&&r("span",{className:"opacity-80",children:f.instructions}),r("span",{className:"mt-1 font-mono text-[11px] uppercase tracking-[0.2em] text-fg-dim",children:"No delivery address needed"})]}):c(q,{children:[Z!==null&&dt.length>0&&c("div",{className:"grid gap-3",children:[dt.map(i=>r(Ye,{active:Ae===i.id,onClick:()=>{Le(i.id),Nt(i)},title:i.label,body:i.formatted_address,price:null},i.id)),r(Ye,{active:Ae==="new",onClick:()=>Le("new"),title:"New address",body:null,price:null})]}),r(K,{label:"Address line 1",children:r("input",{type:"text",value:ye,onChange:i=>ee(i.target.value),className:Y})}),r(K,{label:"Address line 2",children:r("input",{type:"text",value:te,onChange:i=>M(i.target.value),placeholder:"Apartment, unit, garage bay\u2026",className:Y})}),c(Mn,{cols:"three",children:[r(K,{label:"City",children:r("input",{type:"text",value:he,onChange:i=>le(i.target.value),className:Y})}),r(K,{label:$n,children:r("input",{type:"text",value:I,onChange:i=>ve(i.target.value),className:Y})}),r(K,{label:"Country",separate:!0,children:r(et,{value:U,onChange:i=>ue(i.target.value),className:Y+" pr-10",style:Fn,children:A.map(i=>r("option",{value:i.code,children:i.name},i.code))})})]}),r(K,{label:Kn,separate:!0,children:be.length>0?c(et,{value:w,onChange:i=>B(i.target.value),className:Y+" pr-10",style:Fn,children:[r("option",{value:"",children:"Select\u2026"}),be.map(i=>r("option",{value:i.code||i.name,children:i.name},i.code||i.name))]}):r("input",{type:"text",value:w,onChange:i=>B(i.target.value),className:Y})})]}),r(K,{label:"Phone",children:r("input",{type:"tel",value:_,onChange:i=>oe(i.target.value),placeholder:"+44 7700 900000",className:Y})}),!f&&Z!==null&&Ae==="new"&&c(q,{children:[r(Qr,{checked:Ge,onChange:ft,label:"Save this address to my account"}),Ge&&r(K,{label:"Address label",children:r("input",{type:"text",value:gt,onChange:i=>Yn(i.target.value),placeholder:"Home",className:Y})})]})]}),r(Ke,{num:"N\xB0 03",title:"Shipping",children:c("div",{className:"grid gap-3",children:[d.map(i=>{let m=i.pickupLocation,h=m?[m.address,m.city,m.state,m.zipCode].filter(Boolean).join(", "):null;return r(Ye,{active:p===i.id,onClick:()=>u(i.id),title:m?`${i.name} \u2014 ${m.name}`:i.name,body:m?[h,m.openingHours,m.instructions,i.description].filter(Boolean).join(" \xB7 "):i.description||null,price:o.freeShipping||i.amount===0?_e:C(i.amount,o.currency),tag:i.tag||void 0},i.id)}),d.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(Ke,{num:"N\xB0 04",title:"Payment",children:[r("div",{className:"grid gap-3",children:je.map(i=>r(Ye,{active:S===i.key,onClick:()=>F(i.key),title:i.title,body:i.body,price:i.price,tag:i.tag},i.key))}),S==="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."}):S==="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."}):S==="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."}):S==="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."}):S==="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."}):S==="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."}):S==="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(ea,{slug:i.slug,name:i.name,qty:i.qty,config:i.config,configSummary:ta(i.config),price:Ut(i,o.currency)??0,currency:o.currency},i.id))}),r("div",{className:"border-t border-line px-6 pt-5",children:r(Bt,{customerEmail:re})}),c("div",{className:"flex flex-col gap-2 border-t border-line mt-5 px-6 pt-5",children:[r(se,{label:"Subtotal",value:C(o.subtotal,o.currency)}),o.discount>0&&s?.valid&&r(se,{label:`Coupon \xB7 ${s.code}`,value:c("span",{className:"font-semibold text-green",children:["\u2212 ",C(o.discount,o.currency)]})}),s?.deferred&&r(se,{label:`Coupon \xB7 ${s.code}`,value:Lt}),s?.valid&&s.effects?.gift&&r(se,{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:_e})}),r(se,{label:"Shipping",value:o.shippingStatus==="free"?r("span",{className:"font-semibold text-green",children:_e}):Ft(o.shippingStatus)??C(o.shipping,o.currency)}),o.tax&&(o.tax.charged?r(se,{label:o.tax.inclusive?`${o.tax.name} included \xB7 ${o.tax.rate}%`:o.tax.name,value:C(o.tax.amount,o.currency)}):o.tax.name?r(se,{label:o.tax.name,value:Dt}):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":C(o.grand,o.currency)})]}),c("div",{className:"flex flex-col gap-3 px-6 pt-5 pb-6",children:[vt&&r("p",{className:"border border-red-300 bg-red-50 px-3 py-2 text-[13px] text-red-700",children:vt}),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:ar,disabled:G||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||G||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:G?c(q,{children:["Building order\u2026 ",r("span",{children:"\xB7"})]}):o.repricing?c(q,{children:["Updating total\u2026 ",r("span",{children:"\xB7"})]}):c(q,{children:[S==="bank"?"Place order":"Continue to payment"," \xB7"," ",C(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:$t({legalName:t.legalName,foundedYear:t.foundedYear,siteName:t.name})})})]})}var Y="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",Fn={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 Ke({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 Mn({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 Ye({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 Hr({payment:t,onPaid:e,onSkip:n}){let{formatMoney:a}=ie(),o=ze(()=>Pn(t.publishableKey),[t.publishableKey]),s=ze(()=>{if(typeof document>"u")return;let l=getComputedStyle(document.documentElement),d=(u,v)=>l.getPropertyValue(u).trim()||v,p=document.documentElement.getAttribute("data-theme")!=="light";return{theme:p?"night":"stripe",variables:{colorPrimary:d("--accent",p?"#c9a461":"#8a6a2a"),colorBackground:d("--site-surface",p?"#131313":"#ffffff"),colorText:d("--fg",p?"#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(at,{stripe:o,options:{clientSecret:t.clientSecret,appearance:s},children:r(Gr,{payment:t,onPaid:e,onSkip:n})})]})]})})}function Gr({payment:t,onPaid:e,onSkip:n}){let{formatMoney:a}=ie(),o=hn(),s=gn(),[l,d]=g(!1),[p,u]=g(null);async function v(){if(!o||!s||l)return;d(!0),u(null);let b=await o.confirmPayment({elements:s,redirect:"if_required"});if(b.error){u(b.error.message??"Payment failed. Please try again."),d(!1);return}let f=b.paymentIntent?.status;if(f==="succeeded"||f==="processing"){e();return}u("Payment did not complete. Please try again."),d(!1)}return c("div",{className:"flex flex-col gap-4",children:[r(vn,{}),p&&r("p",{className:"border border-red-300 bg-red-50 px-3 py-2 text-[13px] text-red-700",children:p}),r("button",{type:"button",onClick:v,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(q,{children:["Processing\u2026 ",r("span",{children:"\xB7"})]}):c(q,{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 Un="paypal-sdk-js",ct=null;function Vr(t,e){let n=`${t}|${e}`;if(ct?.key===n)return ct.promise;let a=new Promise((o,s)=>{document.getElementById(Un)?.remove();let l=document.createElement("script");l.id=Un;let d=new URLSearchParams({"client-id":t,currency:e,intent:"capture"});l.src=`https://www.paypal.com/sdk/js?${d}`,l.onload=()=>{let p=window.paypal;p?o(p):s(new Error("PayPal SDK loaded without its namespace"))},l.onerror=()=>s(new Error("PayPal SDK failed to load")),document.head.appendChild(l)});return ct={key:n,promise:a},a}function Jr({confirmation:t,clientId:e,idemKey:n,onPaid:a,onSkip:o}){let{formatMoney:s}=ie(),l=ce(null),[d,p]=g(!1),[u,v]=g(null),b=ce(a);return b.current=a,z(()=>{let f=!1,y=null;return Vr(e,t.currency).then(A=>{if(!(f||!l.current))return y=A.Buttons({style:{layout:"vertical",color:"gold",shape:"rect",label:"paypal"},createOrder:async()=>(await T.createPaypalOrder({idempotencyKey:n})).paypalOrderId,onApprove:async k=>{try{if((await T.capturePaypalOrder({idempotencyKey:n,paypalOrderId:k.orderID})).status==="paid"){b.current();return}v("PayPal did not complete the payment. Please try again.")}catch(C){v(C instanceof qe?C.message:"PayPal payment failed. Please try again.")}},onError:()=>{v("PayPal could not process the payment. Please try again.")}}),y.render(l.current).then(()=>{f||p(!0)})}).catch(()=>{f||v("PayPal could not be loaded. You can pay later \u2014 your order stands either way.")}),()=>{f=!0,y?.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."]}),!d&&!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 Wn="square-web-sdk",lt=null;function Xr(t){let e=t==="sandbox"?"sandbox":"production";if(lt?.key===e)return lt.promise;let n=new Promise((a,o)=>{document.getElementById(Wn)?.remove();let s=document.createElement("script");s.id=Wn,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 lt={key:e,promise:n},n}function Zr({confirmation:t,applicationId:e,locationId:n,environment:a,idemKey:o,onPaid:s,onSkip:l}){let{formatMoney:d}=ie(),p=ce(null),u=ce(null),v=ce(null),[b,f]=g(!1),[y,A]=g(!1),[k,C]=g(null);z(()=>{let F=!1,O=null;return Xr(a).then(async X=>{if(F||!p.current)return;let G=X.payments(e,n);v.current=G,O=await G.card(),await O.attach(p.current),u.current=O,F||f(!0)}).catch(()=>{F||C("Square could not be loaded. You can pay later \u2014 your order stands either way.")}),()=>{F=!0,O?.destroy?.()}},[e,n,a]);async function S(){let F=u.current;if(!(!F||y)){A(!0),C(null);try{let O=await F.tokenize();if(O.status!=="OK"||!O.token){C(O.errors?.[0]?.message??"Please check the card details and try again."),A(!1);return}let X;try{X=(await v.current?.verifyBuyer?.(O.token,{amount:String(t.grandTotal),currencyCode:t.currency,intent:"CHARGE"}))?.token}catch{}if((await T.chargeSquare({idempotencyKey:o,sourceId:O.token,...X?{verificationToken:X}:{}})).status==="paid"){s();return}C("Square did not complete the payment. Please try again.")}catch(O){C(O instanceof qe?O.message:"Square payment failed. Please try again.")}A(!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:d(Number(t.grandTotal),t.currency)})," ","by card to confirm it now."]}),!b&&!k&&r("p",{className:"font-mono text-[11px] uppercase tracking-[0.2em] text-fg-dim",children:"Loading card form\u2026"}),r("div",{ref:p}),k&&r("p",{className:"border border-red-300 bg-red-50 px-3 py-2 text-[13px] text-red-700",children:k}),r("button",{type:"button",onClick:S,disabled:!b||y,className:["group flex items-center justify-between border px-5 py-5 font-mono text-[14px] font-medium uppercase tracking-[0.3em] transition-all",!b||y?"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:y?c(q,{children:["Processing\u2026 ",r("span",{children:"\xB7"})]}):c(q,{children:["Pay ",d(Number(t.grandTotal),t.currency),r("span",{className:"transition-transform group-hover:translate-x-1",children:"\u2192"})]})}),r("button",{type:"button",onClick:l,disabled:y,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 Qr({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 ea({slug:t,name:e,qty:n,config:a,configSummary:o,price:s,currency:l}){let{catalog:d}=Ze(),{formatMoney:p}=ie(),u=d.find(k=>k.slug===t),v=u?.spokes??5,b=u?.mesh??!1,f=a.find(k=>k.gold)?.label,y=u?.finishes.find(k=>k.name===f&&k.src)??u?.finishes.find(k=>k.src),A=u?.finishes[0]?.color??zt;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}),y?.src?r(Rt,{src:y.src,alt:`${e.lead}${e.accent} \u2014 ${y.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:A},children:r(Yt,{spokes:v,mesh:b,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:p(s,l)})]})}function se({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 ta(t){return t.map(e=>e.label).join(" \xB7 ")}import{jsx as Be}from"react/jsx-runtime";function na(){let{settings:t,websiteName:e}=It(),n=e?{...Qe,name:e}:Qe,a=t?{url:t.logoUrl,reversed:t.logoReversed??null,inkIsDark:t.logoInkIsDark??null,reverse:t.reverseLogo,size:t.logoSize,sizePx:t.logoSizePx}:null;return Be("div",{style:{position:"fixed",inset:0,zIndex:2147482e3,overflowY:"auto",background:"var(--bg)",color:"var(--fg)"},children:Be(Mt,{children:Be(Wt,{preview:!0,children:Be(ut,{site:n,logo:a,preview:!0})})})})}export{na as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{si as t}from"./chunk-
|
|
1
|
+
"use client";import{si as t}from"./chunk-4UVE5U6U.js";import"./chunk-H2GMJL72.js";import"./chunk-QISNU4TH.js";import"./chunk-Y6SLVHK3.js";import{jsx as e}from"react/jsx-runtime";import{default as r}from"efficient-easel/screen/components/ScreenStoreProvider";function p(o){return e(r,{...o,parts:t})}export{p as default};
|