efficient-web-builder 5.1.0 → 5.4.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 CHANGED
@@ -1,5 +1,47 @@
1
1
  # Changelog
2
2
 
3
+ ## 5.4.0 - 2026-10-12
4
+
5
+ - **A new general section: Countdown.** Hours : minutes : seconds to ONE fixed
6
+ end date-time saved in the page (UTC), the same for every visitor; at zero,
7
+ or when the end has already passed on load, the digits go and the "At zero"
8
+ line shows ("Almost done. Back very soon." by default). It never draws
9
+ 00:00:00 or a negative, and with no end set it draws nothing on a published
10
+ page (a running sample in the editor). Four rows: Heading, At zero, Ends,
11
+ Unit labels. The digits are a declared `Value` and the unit labels a
12
+ declared `Name`, so all four runs of text are set by clicking them. Card
13
+ [ADD] INOVIT And Hartes Metal US Websites, for the Hartes Metal US
14
+ maintenance page; owner's answers through GG, 2026-10-12.
15
+ - **`dateTime()` control.** One moment in time, picked with efficient-shell's
16
+ `DateTimePicker` in the editor's local time and stored as an ISO string in
17
+ UTC.
18
+ - **`PartStyledKind` moves into the builder** from efficient-storefront-blocks
19
+ (`components/PartStyledKind`, same path), because a general section now
20
+ declares kinds. The storefront deletes its own copy in the pull request that
21
+ takes this release.
22
+
23
+ ## 5.3.0 - 2026-10-12
24
+
25
+ - **The efficient-shell peer range takes 5.** efficient-shell 5.0.0
26
+ (Efficient-Pty-Ltd/efficient-shell#371) renames one prop, `SettingRow`'s
27
+ `name` to `label`, and the builder does not use `SettingRow`. Every host is
28
+ moving to `^5`; with the range stopping at `^4` each would warn about the
29
+ builder on every install. Peer range: `efficient-shell ^4.171.0 || ^5.0.0`.
30
+ Nothing else changes.
31
+
32
+ ## 5.2.0 - 2026-10-12
33
+
34
+ - **The site header's phone menu can hold Account and Theme.**
35
+ `PhoneMenuTool` adds `"account"` and `"theme"` to `"search"` and
36
+ `"region"`, and `usePhoneMenuTools()` reports all four, so an Account block
37
+ and a Theme switch block in the header group can offer the old header's
38
+ "Account" and "Theme" rows to the one-row Menu's panel. Additive: a host
39
+ that reads only `search` and `region` is unchanged.
40
+ - **`AccountBlock` and `ThemeSwitchBlock` have a block set.** The catalogue's
41
+ list of unlisted blocks names the two new header tool blocks of
42
+ efficient-storefront-blocks as `commerce`, with the Header and its other
43
+ tools, so a host that registers them can say which set they travel in.
44
+
3
45
  ## 5.1.0 - 2026-10-12
4
46
 
5
47
  - **The site's text styles reach the page.** The editor canvas reads the
@@ -0,0 +1,9 @@
1
+ export interface CountdownProps {
2
+ title?: string;
3
+ zeroText?: string;
4
+ endsAt?: string;
5
+ showUnits?: boolean;
6
+ editing?: boolean;
7
+ }
8
+ export declare function secondsLeft(endMs: number, nowMs: number): number;
9
+ export default function Countdown({ title, zeroText, endsAt, showUnits, editing, }?: CountdownProps): import("react").JSX.Element | null;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as e,jsxs as o,Fragment as y}from"react/jsx-runtime";import{useEffect as M,useState as x}from"react";import f from"./PartStyledKind.js";import{renderGold as S,renderHeadline as D}from"./goldPhrases.js";import{PART_KIND_ATTR as u}from"../lib/puck/text-parts.js";import{TEXT_KIND_NAME as h,TEXT_KIND_VALUE as g}from"../lib/sections/section-text-kinds.js";const E=24*3600*1e3,T=[{key:"hours",label:"Hours"},{key:"minutes",label:"Minutes"},{key:"seconds",label:"Seconds"}];function I(t,n){return Math.max(0,Math.ceil((t-n)/1e3))}function z(t){const n=Date.parse((t??"").trim());return Number.isFinite(n)?n:null}const A=t=>String(t).padStart(2,"0");function j({title:t,zeroText:n,endsAt:v,showUnits:w=!0,editing:i=!1}={}){const N=z(v),[b]=x(()=>Date.now()+E),s=N??(i?b:null),[k,c]=x(()=>Date.now());if(M(()=>{if(s===null)return;c(Date.now());const a=window.setInterval(()=>c(Date.now()),1e3);return()=>window.clearInterval(a)},[s]),s===null)return null;const r=I(s,k),l=[Math.floor(r/3600),Math.floor(r%3600/60),r%60],m=(t??"").trim(),d=(n??"").trim(),_=`${l[0]} hours, ${l[1]} minutes and ${l[2]} seconds left`;return e("section",{className:"relative z-[2] bg-bg",role:"timer","aria-live":"off",children:o("div",{className:"mx-auto flex max-w-[var(--sf-site-width,1600px)] flex-col items-center gap-4 px-[var(--sf-site-gutter,40px)] py-12 text-center max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]",children:[m&&e("p",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.2em] text-fg-dim",children:S(m)}),r===0?d&&e("p",{className:"font-heading3 text-[length:min(var(--size-headingSmall,32px),var(--sf-heading-max,9999px))] font-medium leading-tight text-fg",children:D(d,!1)}):o(y,{children:[e("span",{className:"sr-only",children:_}),e("div",{"aria-hidden":!0,className:"flex items-start gap-[clamp(8px,2vw,24px)]",children:T.map((a,p)=>o("div",{className:"contents",children:[p>0&&e("span",{className:"font-mono text-[length:clamp(32px,7vw,80px)] leading-none text-accent",children:":"}),o("div",{className:"flex min-w-0 flex-col items-center gap-2",children:[e(f,{kind:g,children:e("span",{"data-countdown-unit":a.key,...i?{[u]:g}:{},suppressHydrationWarning:!0,className:"font-mono text-[length:clamp(40px,8vw,96px)] font-medium leading-none tabular-nums text-fg",children:A(l[p])})}),w&&e(f,{kind:h,children:e("span",{...i?{[u]:h}:{},className:"font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.2em] text-fg-dim",children:a.label})})]})]},a.key))})]})]})})}export{j as default,I as secondsLeft};
@@ -0,0 +1,5 @@
1
+ import type { ReactNode } from "react";
2
+ export default function PartStyledKind({ kind, children, }: {
3
+ kind: string;
4
+ children: ReactNode;
5
+ }): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ "use client";import{Fragment as i,jsx as e}from"react/jsx-runtime";import{usePublishedPartKindRule as s}from"./PublishedPartStylesContext.js";import{PART_STYLED_ATTR as a}from"../lib/puck/part-styles.js";function m({kind:n,children:r}){const t=s(n);return t?e("span",{[a]:t.stamp,children:r}):e(i,{children:r})}export{m as default};
@@ -1,8 +1,10 @@
1
1
  import { type ReactNode } from "react";
2
- export type PhoneMenuTool = "search" | "region";
2
+ export type PhoneMenuTool = "search" | "region" | "account" | "theme";
3
3
  export interface PhoneMenuTools {
4
4
  search: boolean;
5
5
  region: boolean;
6
+ account: boolean;
7
+ theme: boolean;
6
8
  }
7
9
  export declare function PhoneMenuToolsProvider({ children }: {
8
10
  children: ReactNode;
@@ -1 +1 @@
1
- "use client";import{jsx as f}from"react/jsx-runtime";import{createContext as l,useContext as s,useEffect as d,useState as a,useSyncExternalStore as x}from"react";const u=[];function h(){let e=u;const n=new Set,c=r=>{e=r;for(const t of n)t()};return{offer:r=>(c([...e,r]),()=>{const t=e.indexOf(r);t>=0&&c([...e.slice(0,t),...e.slice(t+1)])}),subscribe:r=>(n.add(r),()=>n.delete(r)),offered:()=>e}}const o=l(null);function S({children:e}){const[n]=a(h);return f(o.Provider,{value:n,children:e})}const b=()=>s(o)!==null;function y(e){const n=s(o);d(()=>{if(!(!n||!e))return n.offer(e)},[n,e])}const g=()=>()=>{},i=()=>u;function T(){const e=s(o),n=x(e?.subscribe??g,e?.offered??i,i);return e?{search:n.includes("search"),region:n.includes("region")}:null}export{S as PhoneMenuToolsProvider,b as useInSiteHeader,y as useOfferToPhoneMenu,T as usePhoneMenuTools};
1
+ "use client";import{jsx as f}from"react/jsx-runtime";import{createContext as l,useContext as s,useEffect as d,useState as a,useSyncExternalStore as h}from"react";const u=[];function x(){let e=u;const n=new Set,c=r=>{e=r;for(const t of n)t()};return{offer:r=>(c([...e,r]),()=>{const t=e.indexOf(r);t>=0&&c([...e.slice(0,t),...e.slice(t+1)])}),subscribe:r=>(n.add(r),()=>n.delete(r)),offered:()=>e}}const o=l(null);function P({children:e}){const[n]=a(x);return f(o.Provider,{value:n,children:e})}const S=()=>s(o)!==null;function b(e){const n=s(o);d(()=>{if(!(!n||!e))return n.offer(e)},[n,e])}const g=()=>()=>{},i=()=>u;function y(){const e=s(o),n=h(e?.subscribe??g,e?.offered??i,i);return e?{search:n.includes("search"),region:n.includes("region"),account:n.includes("account"),theme:n.includes("theme")}:null}export{P as PhoneMenuToolsProvider,S as useInSiteHeader,b as useOfferToPhoneMenu,y as usePhoneMenuTools};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as n,Fragment as z}from"react/jsx-runtime";const c={dark:"var(--sf-thumb-bar-dark)",soft:"var(--sf-thumb-bar-light)",accent:"var(--sf-thumb-accent)",tint:"var(--sf-thumb-accent-tint)",block:"var(--sf-thumb-block)",line:"var(--sf-thumb-border)",card:"var(--sf-thumb-card)"},v="repeating-linear-gradient(135deg,var(--sf-thumb-hatch1) 0,var(--sf-thumb-hatch1) 5px,var(--sf-thumb-hatch2) 5px,var(--sf-thumb-hatch2) 10px)";function r({w:i,h:l,tone:d="dark",r:h=2,style:f}){return e("div",{style:{width:i,height:l,borderRadius:h,background:c[d],flex:"none",...f}})}const T={Hero:"hero",HeroSingle:"herosingle",IntroBleed:"intro",Collections:"collections",AlloyWheelsListing:"wheelslisting",CatalogFilterBar:"catalogfilterbar",ProductGrid:"productgrid",BrandStrip:"brandstrip",FitmentFinder:"fitmentfinder",Gallery:"gallery",GalleryB:"gallerygrid",SpecStrip:"specstrip",ProductHero:"producthero",SpecTable:"spectable",ProcessSteps:"processsteps",DetailRows:"detailrows",FitmentTable:"fitmenttable",CompatibleTyres:"compatibletyres",TyreSizes:"tyresizes",TyreFitment:"tyrefitment",EuTyreLabel:"eutyrelabel",RelatedProducts:"productgrid",BundleOffer:"bundleoffer",OrderSummary:"ordersummary",DeliveryOptions:"deliveryoptions",PaymentBadges:"paymentbadges",CheckoutCTA:"checkoutcta",Manifesto:"manifesto",ParagraphsA:"paragraphs",Prose:"prose",StatsParagraph:"statsparagraph",Chart:"chart",Mockup:"mockup",Footprint:"footprint",Timeline:"timeline",TimelineTrack:"timelinetrack",TitleWithButtons:"titlewithbuttons",Split:"split",Cards:"cards",FAQ:"faq",Testimonials:"testimonials",Masthead:"masthead",Breadcrumb:"breadcrumb",CategoryBar:"categorybar",FeaturedCover:"featuredcover",LongRead:"longread",Series:"series",Subscribe:"subscribe",SubscribeBlogs:"subscribe",Events:"events",DocMasthead:"docmasthead",DocTabs:"doctabs",DocBody:"docbody",DocMetaCards:"docmetacards",Banner:"banner",Stats:"stats",KeyFeatures:"keyfeatures",Logos:"logos",Ticker:"ticker",Reviews:"reviews",SubmitBuild:"submitbuild",ReviewForm:"reviewform",Form:"form",AppointmentBooking:"appointmentbooking",ContactRouting:"contact",ContactLocations:"contactlocations",Header:"header",Footer:"footer",SectionHeader:"sectionheader",Grid:"grid",Flex:"blanksection",Spacer:"spacer",Divider:"divider",CustomHTML:"customhtml",Heading:"heading",Text:"text",ImageBlock:"image",ButtonBlock:"button",MenuBlock:"menu",EmailFormBlock:"emailform",SocialLogosBlock:"sociallogos",LegalLineBlock:"legalline",SearchBlock:"search",CartBlock:"cart",CountrySwitchBlock:"countryswitch"},o={position:"absolute",inset:0},t={ink:"var(--sf-thumb-ink)",ink2:"var(--sf-thumb-ink-2)",inkSoft:"var(--sf-thumb-ink-soft)",inkSoft2:"var(--sf-thumb-ink-soft-2)",paper:"var(--sf-thumb-paper)",paper2:"var(--sf-thumb-paper-2)",warm:"var(--sf-thumb-warm)",rust:"var(--sf-thumb-rust)",onInk:"var(--sf-thumb-on-ink)",text:"var(--sf-thumb-scene-text)",muted:"var(--sf-thumb-scene-muted)",rule:"var(--sf-thumb-scene-rule)",mark1:"var(--sf-thumb-mark-1)",mark2:"var(--sf-thumb-mark-2)",card:"var(--sf-thumb-card)",scrim:"var(--sf-thumb-scrim)"},s=(i,l,d=160)=>({background:`linear-gradient(${d}deg,${i},${l})`});function y({size:i,style:l}){const d=Math.max(2,Math.round(i*.13)),h=(f,w,m)=>({position:"absolute",inset:f,background:w,borderRadius:d,...m?{mixBlendMode:m}:null});return n("span",{style:{position:"absolute",display:"block",width:i,height:i,...l},children:[e("span",{style:h("8% 26% 30% 6%",t.mark1)}),e("span",{style:h("26% 6% 8% 30%",t.mark2,"multiply")})]})}function u({children:i}){return e("span",{style:{fontSize:"4.64cqw",fontWeight:700,letterSpacing:"0.06em",textTransform:"uppercase",color:t.muted},children:i})}function R({over:i,overTone:l,head:d,headSize:h=11.5,cta:f,ctaBg:w,ctaFg:m,tone:I}){return n(z,{children:[i&&e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:l},children:i}),e("span",{style:{fontSize:h,lineHeight:1.15,fontWeight:700,maxWidth:"78%",color:I},children:d}),f&&e("span",{style:{alignSelf:"flex-start",fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"4px 8px",borderRadius:2,marginTop:2,background:w,color:m},children:f})]})}function k({name:i,price:l}){return n("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[e("div",{style:{flex:1,minHeight:0,borderRadius:3,position:"relative",overflow:"hidden",...s(t.paper,t.paper2,150)},children:e(y,{size:34,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),e("span",{style:{fontSize:"3.65cqw",fontWeight:600,color:t.text},children:i}),e("span",{style:{fontSize:"3.65cqw",color:t.muted},children:l})]})}function g({k:i,v:l,ok:d}){return n("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6,padding:"3.5px 2px",borderBottom:`1px solid ${t.rule}`,fontSize:"3.98cqw",color:t.muted},children:[e("span",{children:i}),n("span",{style:{display:"flex",gap:6,alignItems:"center"},children:[e("b",{style:{color:t.text,fontWeight:700},children:l}),d&&e("span",{style:{color:t.rust,fontWeight:700},children:"✓"})]})]})}function a({title:i,children:l}){return n("div",{style:{...o,background:t.card,padding:"9px 10px",display:"flex",flexDirection:"column",gap:6},children:[e(u,{children:i}),l]})}function C({size:i=14}){return e("span",{style:{width:i,height:i,borderRadius:"50%",flex:"none",display:"block",background:`linear-gradient(150deg,${t.mark1},${t.mark2})`}})}function S({filled:i=5,size:l=6}){return n("span",{style:{fontSize:l,letterSpacing:"0.06em",color:t.rust,lineHeight:1},children:["★".repeat(i),e("span",{style:{color:t.mark1},children:"★".repeat(5-i)})]})}function x({n:i,label:l,tone:d=t.text}){return n("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[e("b",{style:{fontSize:"8.16cqw",lineHeight:1,color:d},children:i}),e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.08em",textTransform:"uppercase",opacity:.62,color:d},children:l})]})}function p({children:i,w:l}){return e("span",{style:{fontSize:"3.98cqw",lineHeight:1.45,color:t.muted,width:l,display:"block"},children:i})}function b({label:i,w:l="100%",filled:d}){return n("div",{style:{width:l,display:"flex",flexDirection:"column",gap:2},children:[e("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:t.muted},children:i}),e("span",{style:{height:9,borderRadius:3,border:`1px solid ${t.rule}`,background:d?t.paper:t.card}})]})}function q({children:i}){return e("span",{style:{alignSelf:"flex-start",fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:t.text,color:t.onInk},children:i})}const W={wheelslisting:e(a,{title:"All wheels",children:e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[["Ridge 19","20×9 +12","$365"],["Ridge 29","18×9 +20","$410"],["Ridge 39","17×8 −10","$455"]].map(([i,l,d])=>n("div",{style:{display:"flex",alignItems:"center",gap:6},children:[e("span",{style:{width:20,height:15,borderRadius:3,flex:"none",position:"relative",overflow:"hidden",...s(t.paper,t.paper2,150)},children:e(y,{size:12,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),e("b",{style:{flex:1,fontSize:"4.31cqw",color:t.text},children:i}),e("span",{style:{fontSize:"3.65cqw",color:t.muted},children:l}),e("b",{style:{fontSize:"4.31cqw",color:t.text,width:26,textAlign:"right"},children:d})]},i))})}),catalogfilterbar:n("div",{style:{...o,background:t.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:7,padding:"0 11px"},children:[n("div",{style:{display:"flex",gap:4,alignItems:"center"},children:[["20 inch","6×139.7","Black"].map(i=>n("span",{style:{fontSize:"3.65cqw",fontWeight:600,padding:"4px 7px",borderRadius:99,background:t.text,color:t.onInk,display:"flex",gap:4,alignItems:"center"},children:[i,e("span",{style:{opacity:.6},children:"✕"})]},i)),e("span",{style:{fontSize:"3.65cqw",color:t.rust,fontWeight:700},children:"Clear"})]}),n("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e("span",{style:{fontSize:"3.65cqw",color:t.muted},children:"128 results"}),e("span",{style:{fontSize:"3.65cqw",color:t.muted,border:`1px solid ${t.rule}`,borderRadius:3,padding:"3px 6px"},children:"Sort: Price ▾"})]})]}),fitmentfinder:n("div",{style:{...o,padding:"10px 12px",display:"flex",flexDirection:"column",gap:6,justifyContent:"center",...s(t.ink,t.inkSoft)},children:[e("span",{style:{fontSize:"5.31cqw",fontWeight:700,color:t.onInk},children:"Will it fit your rig?"}),n("div",{style:{display:"flex",gap:4},children:[["2021","Toyota","Hilux"].map(i=>n("span",{style:{flex:1,fontSize:"3.65cqw",color:t.text,background:t.card,borderRadius:3,padding:"5px 6px",display:"flex",justifyContent:"space-between"},children:[i," ",e("span",{style:{color:t.muted},children:"▾"})]},i)),e("span",{style:{fontSize:"3.65cqw",fontWeight:700,letterSpacing:"0.08em",background:t.warm,color:t.ink,borderRadius:3,padding:"5px 7px"},children:"GO"})]})]}),compatibletyres:e(a,{title:"Tyres that suit",children:e("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[["Ridge Grappler","$489"],["Trail Grappler","$525"],["Terra Grappler","$438"]].map(([i,l])=>n("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[e("div",{style:{flex:1,minHeight:0,borderRadius:3,position:"relative",overflow:"hidden",background:t.ink},children:e("span",{style:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%,-50%)",width:26,height:26,borderRadius:"50%",border:`5px solid ${t.mark2}`,boxSizing:"border-box"}})}),e("span",{style:{fontSize:"3.32cqw",fontWeight:600,color:t.text,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},children:i}),e("span",{style:{fontSize:"3.32cqw",color:t.muted},children:l})]},i))})}),tyresizes:e(a,{title:"Available sizes",children:e("div",{style:{flex:1,display:"flex",flexWrap:"wrap",gap:4,alignContent:"center"},children:["265/65R17","285/70R17","265/60R18","275/55R20"].map((i,l)=>e("span",{style:{fontSize:"3.65cqw",fontWeight:600,padding:"5px 7px",borderRadius:3,border:`1px solid ${l===0?t.rust:t.rule}`,color:l===0?t.rust:t.text,background:l===0?t.paper:t.card},children:i},i))})}),tyrefitment:n(a,{title:"Will it fit your car?",children:[e("div",{style:{display:"flex",gap:3},children:["Make","Model","Year","Trim"].map(i=>n("span",{style:{flex:1,minWidth:0,fontSize:"3.32cqw",color:t.muted,background:t.paper,border:`1px solid ${t.rule}`,borderRadius:3,padding:"4px 5px",display:"flex",justifyContent:"space-between",gap:2,overflow:"hidden",whiteSpace:"nowrap"},children:[i," ",e("span",{style:{color:t.muted},children:"▾"})]},i))}),e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:2,justifyContent:"center",minHeight:0},children:[["265/65R17","Fits",!0],["285/70R17","Not your size",!1]].map(([i,l,d])=>n("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",gap:6,borderTop:`1px solid ${t.rule}`,paddingTop:3},children:[e("span",{style:{fontSize:"3.32cqw",fontWeight:600,color:t.text},children:i}),e("span",{style:{fontSize:"3.32cqw",fontWeight:d?700:400,letterSpacing:"0.06em",color:d?t.warm:t.muted},children:l})]},i))})]}),eutyrelabel:n("div",{style:{...o,background:t.card,padding:"9px 11px",display:"flex",gap:8,alignItems:"center"},children:[e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1.5},children:[["A","42%"],["B","56%"],["C","70%"],["D","84%"]].map(([i,l],d)=>n("div",{style:{display:"flex",alignItems:"center",gap:3},children:[e("span",{style:{width:l,height:6,borderRadius:"0 2px 2px 0",background:d===1?t.rust:t.mark1}}),e("span",{style:{fontSize:"3.32cqw",fontWeight:700,color:d===1?t.rust:t.muted},children:i})]},i))}),n("div",{style:{flex:"none",display:"flex",flexDirection:"column",gap:3,alignItems:"center"},children:[e("b",{style:{fontSize:"6.63cqw",lineHeight:1,color:t.text},children:"72"}),e("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",color:t.muted},children:"dB"})]})]}),bundleoffer:n("div",{style:{...o,background:t.paper,padding:"9px 11px",display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[e(u,{children:"Buy it with"}),n("div",{style:{display:"flex",alignItems:"center",gap:5},children:[[0,1].map(i=>e("span",{style:{width:26,height:22,borderRadius:3,flex:"none",position:"relative",overflow:"hidden",background:t.card},children:e(y,{size:17,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})},i)),e("span",{style:{fontSize:"5.69cqw",fontWeight:700,color:t.muted},children:"+"}),n("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1},children:[e("span",{style:{fontSize:"3.65cqw",color:t.muted,textDecoration:"line-through"},children:"$1,024"}),e("b",{style:{fontSize:"6.02cqw",color:t.rust,lineHeight:1},children:"$899"})]})]})]}),checkoutcta:n("div",{style:{...o,display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 13px",gap:8,...s(t.ink,t.ink2)},children:[n("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",color:t.warm,fontWeight:700},children:"READY TO ORDER"}),e("b",{style:{fontSize:"6.63cqw",color:t.onInk,lineHeight:1},children:"$1,956"}),e("span",{style:{fontSize:"3.65cqw",color:t.onInk,opacity:.65},children:"4 items · fitted free"})]}),e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"6px 10px",borderRadius:2,background:t.warm,color:t.ink,flex:"none"},children:"CHECKOUT"})]}),contact:e(a,{title:"Who do you need?",children:e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[["Fitment help","the workshop"],["Order status","the front desk"],["Trade accounts","sales"]].map(([i,l])=>n("div",{style:{display:"flex",alignItems:"center",gap:5},children:[e("b",{style:{flex:1,fontSize:"4.31cqw",color:t.text},children:i}),e("span",{style:{fontSize:"3.65cqw",color:t.muted},children:l}),e("span",{style:{fontSize:"4.64cqw",color:t.rust,lineHeight:1},children:"›"})]},i))})}),contactlocations:e(a,{title:"Find us",children:e("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(2,1fr)",gap:5,minHeight:0},children:[["Brisbane","7 Kerry Rd","Mon–Sat"],["Townsville","12 Enterprise","Mon–Fri"]].map(([i,l,d])=>n("div",{style:{border:`1px solid ${t.rule}`,borderRadius:4,padding:"5px 6px",display:"flex",flexDirection:"column",gap:1},children:[e("b",{style:{fontSize:"4.31cqw",color:t.text},children:i}),e("span",{style:{fontSize:"3.32cqw",color:t.muted},children:l}),e("span",{style:{fontSize:"3.32cqw",color:t.rust,fontWeight:700},children:d})]},i))})}),form:e(a,{title:"Send us a message",children:n("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[n("div",{style:{display:"flex",gap:5},children:[e(b,{label:"Name"}),e(b,{label:"Email"})]}),e(b,{label:"Message",filled:!0}),e(q,{children:"SEND"})]})}),appointmentbooking:e(a,{title:"Book a fitting",children:n("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[e("div",{style:{display:"flex",gap:3},children:["Mon","Tue","Wed","Thu"].map((i,l)=>e("span",{style:{flex:1,textAlign:"center",fontSize:"3.32cqw",fontWeight:l===2?700:500,padding:"4px 0",borderRadius:3,background:l===2?t.text:t.paper,color:l===2?t.onInk:t.muted},children:i},i))}),e("div",{style:{display:"flex",gap:3},children:["8:00","10:30","13:00","15:30"].map((i,l)=>e("span",{style:{flex:1,textAlign:"center",fontSize:"3.32cqw",padding:"4px 0",borderRadius:3,border:`1px solid ${l===1?t.rust:t.rule}`,color:l===1?t.rust:t.muted,background:l===3?t.paper:t.card,textDecoration:l===3?"line-through":"none"},children:i},i))})]})}),reviewform:e(a,{title:"Leave a review",children:n("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[e(S,{filled:4,size:14}),e(b,{label:"Your review",filled:!0}),e(q,{children:"POST"})]})}),submitbuild:e(a,{title:"Show us your build",children:n("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:3,border:`1px dashed ${t.mark1}`,borderRadius:5,background:t.paper},children:[e("span",{style:{fontSize:"6.63cqw",lineHeight:1,color:t.rust,fontWeight:300},children:"+"}),e("span",{style:{fontSize:"3.65cqw",color:t.muted},children:"Drop a photo of your rig"})]})}),masthead:n("div",{style:{...o,background:t.paper,display:"flex",flexDirection:"column",justifyContent:"center",padding:"0 13px",gap:5},children:[e("span",{style:{height:1.5,background:t.text}}),e("span",{style:{fontSize:"7.65cqw",fontWeight:800,letterSpacing:"0.02em",color:t.text,lineHeight:1},children:"THE TRACK"}),n("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"3.65cqw",letterSpacing:"0.1em",textTransform:"uppercase",color:t.muted},children:[e("span",{children:"Issue 14"}),e("span",{children:"Spring 2026"})]}),e("span",{style:{height:1,background:t.rule}})]}),featuredcover:n("div",{style:{...o,overflow:"hidden",...s(t.ink,t.inkSoft2)},children:[e(y,{size:92,style:{right:-18,top:-14}}),e("div",{style:{position:"absolute",inset:0,background:`linear-gradient(0deg,${t.scrim},transparent 62%)`}}),n("div",{style:{position:"absolute",left:12,right:12,bottom:11,display:"flex",flexDirection:"column",gap:3},children:[e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:t.warm},children:"FEATURE"}),e("span",{style:{fontSize:"6.16cqw",lineHeight:1.15,fontWeight:700,color:t.onInk},children:"Four days on the Madigan Line"})]})]}),longread:n("div",{style:{...o,background:t.card,padding:"10px 14px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.14em",fontWeight:700,color:t.rust},children:"12 MIN READ"}),e("span",{style:{fontSize:"6.02cqw",lineHeight:1.15,fontWeight:700,color:t.text},children:"What breaks first, and why"}),e(p,{children:"Every failure starts in the same place — not the rim, not"}),e(p,{w:"62%",children:"the tyre, but the bolt nobody re-torqued."})]}),series:e(a,{title:"Recurring columns",children:e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[["Shed Notes","Monthly"],["Track Tested","Fortnightly"],["Reader Rigs","Weekly"]].map(([i,l])=>n("div",{style:{display:"flex",alignItems:"center",gap:6},children:[e("span",{style:{width:3,height:12,borderRadius:2,background:t.rust,flex:"none"}}),e("b",{style:{flex:1,fontSize:"4.64cqw",color:t.text},children:i}),e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:t.muted},children:l})]},i))})}),events:e(a,{title:"Latest posts",children:e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[[t.inkSoft,t.inkSoft2,"Madigan Line, four days"],[t.rust,t.warm,"Why offset beats width"]].map(([i,l,d])=>n("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[e("span",{style:{width:24,height:18,borderRadius:3,flex:"none",...s(i,l,150)}}),n("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[e("b",{style:{fontSize:"4.31cqw",color:t.text},children:d}),e("span",{style:{fontSize:"3.65cqw",color:t.muted},children:"4 Sep · Shed Notes"})]})]},d))})}),docmasthead:n("div",{style:{...o,background:t.card,padding:"12px 14px",display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:t.muted},children:"POLICY"}),e("span",{style:{fontSize:"6.49cqw",fontWeight:700,color:t.text,lineHeight:1.1},children:"Returns & refunds"}),e("span",{style:{fontSize:"3.65cqw",color:t.muted},children:"Version 3 · Updated 4 Sep 2026"}),e("span",{style:{height:2,width:26,background:t.rust,borderRadius:1}})]}),docbody:e("div",{style:{...o,background:t.card,padding:"9px 13px",display:"flex",flexDirection:"column",gap:3,justifyContent:"center"},children:[["1.","You may return an unfitted wheel within 30 days."],["2.","Fitted wheels are covered by the structural warranty."],["3.","Freight on a change of mind is yours."]].map(([i,l])=>n("div",{style:{display:"flex",gap:5},children:[e("b",{style:{fontSize:"3.98cqw",color:t.rust,flex:"none"},children:i}),e(p,{children:l})]},i))}),docmetacards:e(a,{title:"At a glance",children:e("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(2,1fr)",gap:5,minHeight:0},children:[["30 days","To return"],["5 years","Structural"],["Free","Fitting"],["48 hrs","Dispatch"]].map(([i,l])=>n("div",{style:{border:`1px solid ${t.rule}`,borderRadius:4,padding:"5px 6px",display:"flex",flexDirection:"column",gap:1},children:[e("b",{style:{fontSize:"5.31cqw",color:t.text,lineHeight:1},children:i}),e("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:t.muted},children:l})]},l))})}),doctabs:n("div",{style:{...o,background:t.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:0,padding:"0 11px"},children:[e("div",{style:{display:"flex",gap:0},children:["Returns","Warranty","Shipping"].map((i,l)=>e("span",{style:{fontSize:"3.98cqw",fontWeight:l===0?700:500,padding:"5px 8px",color:l===0?t.text:t.muted,background:l===0?t.paper:"transparent",borderRadius:"4px 4px 0 0",border:`1px solid ${l===0?t.rule:"transparent"}`,borderBottom:"none"},children:i},i))}),e("span",{style:{height:1,background:t.rule}}),n("div",{style:{paddingTop:6,display:"flex",flexDirection:"column",gap:2},children:[e(p,{children:"Unfitted wheels come back within 30 days, no questions."}),e(p,{w:"58%",children:"Freight on a change of mind is yours."})]})]}),paragraphs:n("div",{style:{...o,background:t.card,padding:"11px 14px",display:"flex",gap:10,alignItems:"center"},children:[e("span",{style:{flex:1,fontSize:"5.86cqw",lineHeight:1.2,fontWeight:700,color:t.text},children:"The right wheel is the boring one."}),n("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[e(p,{children:"Forged, correctly offset, rated for what you actually"}),e(p,{children:"carry. Everything else is a photograph."})]})]}),keyfeatures:e(a,{title:"Key features",children:e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:["Flow-formed barrel","1250 kg per corner","Hub-centric fit"].map(i=>n("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[e("span",{style:{fontSize:"4.64cqw",color:t.rust,fontWeight:700,lineHeight:1},children:"✓"}),e("span",{style:{fontSize:"4.31cqw",color:t.text},children:i})]},i))})}),statsparagraph:n("div",{style:{...o,background:t.paper,padding:"10px 12px",display:"flex",gap:10,alignItems:"center"},children:[n("div",{style:{flex:"none",display:"flex",flexDirection:"column",gap:5},children:[e(x,{n:"27k",label:"Rigs"}),e(x,{n:"4.9",label:"Rating"})]}),n("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[e(p,{children:"Twelve years of fitting the same three questions, and the"}),e(p,{children:"answer has not moved: load rating, offset, then looks."})]})]}),chart:n(a,{title:"Load vs weight",children:[e("div",{style:{flex:1,display:"flex",alignItems:"flex-end",gap:5,paddingBottom:2},children:[38,62,84,71,96].map((i,l)=>e("span",{style:{flex:1,height:`${i}%`,borderRadius:"2px 2px 0 0",background:l===4?t.rust:t.mark1}},l))}),e("span",{style:{height:1,background:t.rule,marginTop:-4}})]}),mockup:e("div",{style:{...o,overflow:"hidden",display:"flex",alignItems:"center",justifyContent:"center",...s(t.inkSoft,t.ink)},children:n("div",{style:{width:"72%",height:"74%",borderRadius:4,overflow:"hidden",background:t.card,boxShadow:`0 6px 14px ${t.scrim}`},children:[e("div",{style:{height:9,background:t.paper,display:"flex",alignItems:"center",gap:2,padding:"0 4px"},children:[0,1,2].map(i=>e("span",{style:{width:2.5,height:2.5,borderRadius:"50%",background:t.mark1}},i))}),n("div",{style:{padding:5,display:"flex",flexDirection:"column",gap:3},children:[e("span",{style:{height:4,width:"56%",borderRadius:1,background:t.mark2}}),e("span",{style:{height:14,borderRadius:2,...s(t.paper,t.paper2,150)}}),e("span",{style:{height:3,width:"38%",borderRadius:1,background:t.rust}})]})]})}),manifesto:e("div",{style:{...o,overflow:"hidden",display:"flex",alignItems:"center",padding:"0 16px",...s(t.ink,t.ink2)},children:n("span",{style:{fontSize:"6.63cqw",lineHeight:1.2,fontWeight:700,color:t.onInk},children:["We build for the ",e("span",{style:{color:t.warm},children:"last"})," ten percent of the track."]})}),timeline:e(a,{title:"Our story",children:e("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center",gap:6,paddingLeft:4},children:[["1998","One shed, one lathe."],["2009","First forged rim."],["2024","27,000 rigs on."]].map(([i,l],d)=>n("div",{style:{display:"flex",gap:7,alignItems:"flex-start",position:"relative"},children:[d<2&&e("span",{style:{position:"absolute",left:3,top:8,bottom:-8,width:1,background:t.rule}}),e("span",{style:{width:7,height:7,borderRadius:"50%",flex:"none",marginTop:1,background:t.rust,zIndex:1}}),n("div",{style:{display:"flex",flexDirection:"column",gap:0,minWidth:0},children:[e("b",{style:{fontSize:"4.64cqw",color:t.text},children:i}),e(p,{children:l})]})]},i))})}),timelinetrack:n("div",{style:{...o,padding:"0 12px",display:"flex",flexDirection:"column",gap:10,justifyContent:"center",...s(t.ink,t.inkSoft)},children:[e("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:t.warm},children:"Milestones"}),n("div",{style:{position:"relative",display:"flex",justifyContent:"space-between",paddingTop:7},children:[e("span",{style:{position:"absolute",left:0,right:0,top:3,height:1,background:t.mark2,opacity:.55}}),["1998","2009","2016","2024"].map((i,l)=>n("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:3,position:"relative"},children:[e("span",{style:{position:"absolute",top:-7,width:6,height:6,borderRadius:"50%",background:l===3?t.warm:t.mark1}}),e("span",{style:{fontSize:"4.31cqw",fontWeight:700,color:l===3?t.warm:t.onInk,opacity:l===3?1:.75},children:i})]},i))]})]}),footprint:n("div",{style:{...o,overflow:"hidden",...s(t.paper,t.paper2,150)},children:[e("span",{style:{position:"absolute",left:"8%",top:"18%",width:"62%",height:"64%",borderRadius:"48% 52% 40% 60% / 55% 45% 55% 45%",background:t.mark1,opacity:.75}}),e("span",{style:{position:"absolute",left:"52%",top:"52%",width:"34%",height:"34%",borderRadius:"58% 42% 55% 45% / 45% 58% 42% 55%",background:t.mark2,opacity:.55}}),[["26%","38%"],["44%","58%"],["62%","34%"]].map(([i,l])=>e("span",{style:{position:"absolute",left:i,top:l,width:7,height:7,borderRadius:"50% 50% 50% 0",transform:"rotate(-45deg)",background:t.rust}},i)),e("span",{style:{position:"absolute",left:11,bottom:9,fontSize:"4.64cqw",fontWeight:700,color:t.text},children:"3 fitting bays"})]}),banner:n("div",{style:{...o,display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 13px",gap:8,background:t.rust},children:[n("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[e("b",{style:{fontSize:"6.02cqw",color:t.onInk},children:"End of season · 20% off"}),e("span",{style:{fontSize:"3.98cqw",color:t.onInk,opacity:.8},children:"Fitted free, this month only."})]}),e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:t.onInk,color:t.text,flex:"none"},children:"SHOP"})]}),titlewithbuttons:n("div",{style:{...o,background:t.paper,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:7,padding:"0 14px",textAlign:"center"},children:[e("span",{style:{fontSize:"6.49cqw",lineHeight:1.15,fontWeight:700,color:t.text},children:"Not sure what fits?"}),n("div",{style:{display:"flex",gap:5},children:[e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:t.text,color:t.onInk},children:"FIND MY FIT"}),e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,border:`1px solid ${t.text}`,color:t.text},children:"CALL US"})]})]}),ticker:e("div",{style:{...o,overflow:"hidden",background:t.ink,display:"flex",alignItems:"center"},children:e("span",{style:{whiteSpace:"nowrap",fontSize:"6.29cqw",fontWeight:800,letterSpacing:"0.06em",color:t.warm,marginLeft:-14},children:"FREE FITTING · 48HR DISPATCH · FREE FITTING · 48HR DISPATCH"})}),breadcrumb:e("div",{style:{...o,background:t.card,display:"flex",alignItems:"center",padding:"0 13px"},children:n("span",{style:{fontSize:"4.64cqw",color:t.muted},children:["Home ",e("span",{style:{opacity:.5},children:"/"})," Wheels ",e("span",{style:{opacity:.5},children:"/"})," ",e("span",{style:{color:t.text,fontWeight:700},children:"20 inch"})]})}),categorybar:n("div",{style:{...o,background:t.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:7,padding:"0 11px"},children:[e("div",{style:{display:"flex",gap:5},children:["All","Wheels","Tyres","Lift"].map((i,l)=>e("span",{style:{fontSize:"3.98cqw",fontWeight:l===0?700:500,padding:"4px 7px",borderRadius:99,background:l===0?t.text:t.paper,color:l===0?t.onInk:t.muted},children:i},i))}),e("span",{style:{height:1,background:t.rule}})]}),intro:n("div",{style:{...o,overflow:"hidden",background:t.card},children:[e("div",{style:{position:"absolute",inset:0,...s(t.ink,t.inkSoft2)}}),e(y,{size:64,style:{right:8,top:6}}),n("div",{style:{position:"absolute",left:16,right:16,bottom:8,top:"46%",background:t.paper,borderRadius:6,padding:"8px 11px",display:"flex",flexDirection:"column",gap:2,boxShadow:`0 -4px 10px ${t.scrim}`},children:[e("span",{style:{fontSize:"5.69cqw",fontWeight:700,color:t.text},children:"Since 1998"}),e(p,{children:"One shed, one lathe, one idea."}),e(p,{w:"66%",children:"It turned out to be right."})]})]}),gallerygrid:e(a,{title:"From our customers",children:e("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gridTemplateRows:"repeat(2,1fr)",gap:4,minHeight:0},children:[[t.rust,t.warm],[t.inkSoft,t.ink],[t.paper2,t.mark2],[t.ink,t.inkSoft2],[t.warm,t.paper2],[t.mark2,t.inkSoft]].map(([i,l],d)=>e("div",{style:{borderRadius:3,...s(i,l,140+d*22)}},d))})}),gallery:n(a,{title:"Gallery",children:[e("div",{style:{display:"flex",gap:8,alignItems:"center",marginTop:-2},children:["On the truck","Studio","Close-ups"].map((i,l)=>e("span",{style:{fontSize:"3.98cqw",fontWeight:l===0?700:500,color:l===0?t.text:t.muted,borderBottom:`1.5px solid ${l===0?t.rust:"transparent"}`,paddingBottom:2},children:i},i))}),e("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:4,minHeight:0},children:[[t.rust,t.warm],[t.ink,t.inkSoft],[t.paper2,t.mark2]].map(([i,l],d)=>e("div",{style:{borderRadius:3,...s(i,l,150+d*20)}},d))})]}),ordersummary:n(a,{title:"Order summary",children:[n("div",{style:{display:"flex",gap:6,alignItems:"center",paddingBottom:4},children:[e("span",{style:{width:26,height:26,borderRadius:4,position:"relative",overflow:"hidden",flex:"none",...s(t.paper,t.paper2,150)},children:e(y,{size:18,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),n("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[e("b",{style:{fontSize:"4.31cqw",color:t.text},children:"Ridge Grappler"}),e("span",{style:{fontSize:"3.65cqw",color:t.muted},children:"20×9 +12 · qty 4"})]})]}),n("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",justifyContent:"center"},children:[e(g,{k:"Subtotal",v:"$1,956"}),e(g,{k:"Fitting",v:"Free"}),n("div",{style:{display:"flex",justifyContent:"space-between",paddingTop:5,fontSize:"4.64cqw"},children:[e("b",{style:{color:t.text},children:"Total"}),e("b",{style:{color:t.text,fontSize:"6.02cqw"},children:"$1,956"})]})]})]}),deliveryoptions:e(a,{title:"Delivery",children:e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[["Standard","3–5 days","Free",!0],["Express","Next day","$19",!1]].map(([i,l,d,h])=>n("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"5px 6px",borderRadius:4,border:`1px solid ${h?t.rust:t.rule}`,background:h?t.paper:t.card},children:[e("span",{style:{width:7,height:7,borderRadius:"50%",flex:"none",border:`1.5px solid ${h?t.rust:t.mark1}`,background:h?t.rust:"transparent"}}),e("span",{style:{flex:1,fontSize:"4.31cqw",fontWeight:600,color:t.text},children:i}),e("span",{style:{fontSize:"3.98cqw",color:t.muted},children:l}),e("b",{style:{fontSize:"4.31cqw",color:t.text},children:d})]},i))})}),paymentbadges:n("div",{style:{...o,background:t.paper,display:"flex",flexDirection:"column",gap:8,justifyContent:"center",padding:"0 12px"},children:[e(u,{children:"Ways to pay"}),e("div",{style:{display:"flex",gap:5},children:[["VISA",t.ink],["MC",t.rust],["AMEX",t.inkSoft],["PayPal",t.ink2]].map(([i,l])=>e("span",{style:{flex:1,textAlign:"center",fontSize:"3.65cqw",fontWeight:800,letterSpacing:"0.06em",color:t.onInk,borderRadius:3,padding:"6px 0",background:l},children:i},i))})]}),stats:n("div",{style:{...o,padding:"10px 12px",display:"flex",flexDirection:"column",gap:9,justifyContent:"center",...s(t.ink,t.ink2)},children:[e("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:t.warm},children:"By the numbers"}),n("div",{style:{display:"flex",gap:8},children:[e(x,{n:"27k",label:"Rigs fitted",tone:t.onInk}),e(x,{n:"12",label:"Years",tone:t.onInk}),e(x,{n:"4.9",label:"Avg rating",tone:t.warm})]})]}),testimonials:n("div",{style:{...o,overflow:"hidden",background:t.paper,padding:"10px 11px",display:"flex",flexDirection:"column",gap:6,justifyContent:"center"},children:[e("span",{style:{position:"absolute",right:10,top:2,fontSize:"22.4cqw",lineHeight:1,fontWeight:800,color:t.rust,opacity:.16},children:"”"}),e(S,{filled:5,size:7}),e("span",{style:{position:"relative",fontSize:"5.31cqw",lineHeight:1.35,color:t.text,fontWeight:600},children:"“Took them out to the Simpson and back. Not one chip.”"}),n("div",{style:{display:"flex",alignItems:"center",gap:5},children:[e(C,{}),e("span",{style:{fontSize:"3.98cqw",color:t.muted},children:"Dave M. · Hilux N80"})]})]}),reviews:n(a,{title:"Reviews",children:[e("div",{style:{display:"flex",gap:4,height:22},children:[[t.inkSoft,t.inkSoft2],[t.rust,t.warm],[t.ink,t.inkSoft],[t.mark2,t.mark1]].map(([i,l],d)=>e("div",{style:{flex:1,borderRadius:3,...s(i,l,140+d*15)}},d))}),e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[["Dave M.",5,"Not one chip after the Simpson."],["Sara K.",4,"Fitted in an hour, no fuss."]].map(([i,l,d])=>n("div",{style:{display:"flex",gap:5,alignItems:"flex-start"},children:[e(C,{size:12}),n("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[n("div",{style:{display:"flex",gap:4,alignItems:"center"},children:[e("b",{style:{fontSize:"3.98cqw",color:t.text},children:i}),e(S,{filled:l})]}),e(p,{children:d})]})]},i))})]}),logos:n("div",{style:{...o,display:"flex",flexDirection:"column",gap:9,justifyContent:"center",padding:"0 12px",...s(t.ink,t.inkSoft)},children:[e("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:t.warm},children:"As fitted by"}),e("div",{style:{display:"grid",gridTemplateColumns:"repeat(4,1fr)",gap:8},children:["ARB","TJM","IRONMAN","OPPOSITE"].map(i=>e("span",{style:{textAlign:"center",fontSize:"4.31cqw",fontWeight:800,letterSpacing:"0.08em",color:t.onInk,opacity:.82},children:i},i))})]}),prose:n("div",{style:{...o,background:t.paper,padding:"11px 14px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[e("span",{style:{fontSize:"5.86cqw",fontWeight:700,color:t.text},children:"Why offset matters"}),n("div",{style:{display:"flex",gap:6},children:[e("span",{style:{fontSize:"15.3cqw",lineHeight:.78,fontWeight:800,color:t.rust,marginTop:1},children:"T"}),n("div",{style:{display:"flex",flexDirection:"column"},children:[e(p,{children:"he number on the back of your wheel decides whether the"}),e(p,{w:"76%",children:"tyre sits under the guard or an inch outside it."})]})]})]}),cards:e(a,{title:"What you get",children:e("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[["Fitted free","In store, same day."],["5 yr cover","Structural, no fine print."],["Swap it","30 days, any reason."]].map(([i,l])=>n("div",{style:{border:`1px solid ${t.rule}`,borderRadius:4,padding:6,display:"flex",flexDirection:"column",gap:2},children:[e("span",{style:{width:11,height:11,borderRadius:3,background:t.rust,opacity:.9}}),e("b",{style:{fontSize:"3.98cqw",color:t.text},children:i}),e(p,{children:l})]},i))})}),faq:e(a,{title:"Questions",children:e("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[["Will these fit my Hilux?",!0],["Do you fit them for me?",!1],["What if I pick wrong?",!1]].map(([i,l])=>n("div",{style:{borderBottom:`1px solid ${t.rule}`,padding:"4px 2px"},children:[n("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6},children:[e("b",{style:{fontSize:"4.31cqw",color:t.text},children:i}),e("span",{style:{fontSize:"4.64cqw",color:t.muted,lineHeight:1},children:l?"−":"+"})]}),l&&e(p,{w:"90%",children:"Use the fitment finder — it reads your build, not just the model."})]},i))})}),hero:n("div",{style:{...o,overflow:"hidden",...s(t.ink,t.ink2)},children:[e("div",{style:{...o,background:`linear-gradient(90deg,${t.scrim},transparent 70%)`}}),e("div",{style:{position:"relative",height:"100%",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",padding:"12px 14px",gap:5},children:e(R,{over:"NEW · SUMMER",overTone:t.warm,head:"Built for the worst road you own",cta:"SHOP ALL",ctaBg:t.warm,ctaFg:t.ink,tone:t.onInk})}),e(y,{size:104,style:{right:-24,bottom:-30}})]}),herosingle:n("div",{style:{...o,display:"flex",background:t.paper,overflow:"hidden"},children:[e("div",{style:{flex:1,padding:12,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:e(R,{over:"ALL-TERRAIN",overTone:t.rust,head:"Grip that does not ask",headSize:12,cta:"EXPLORE",ctaBg:t.text,ctaFg:t.onInk,tone:t.text})}),e("div",{style:{flex:1,position:"relative",...s(t.inkSoft,t.inkSoft2)},children:e(y,{size:74,style:{right:-14,top:16}})})]}),productgrid:e(a,{title:"Best sellers",children:n("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[e(k,{name:"Ridge 19",price:"$365"}),e(k,{name:"Ridge 29",price:"$410"}),e(k,{name:"Ridge 39",price:"$455"})]})}),collections:e(a,{title:"Shop by category",children:e("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[["Wheels",t.inkSoft,t.inkSoft2],["Tyres",t.rust,t.warm],["Lift kits",t.ink,t.inkSoft]].map(([i,l,d])=>e("div",{style:{borderRadius:4,display:"flex",alignItems:"flex-end",padding:5,color:t.onInk,...s(l,d)},children:e("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.04em"},children:i})},i))})}),producthero:n("div",{style:{...o,display:"flex",background:t.card,overflow:"hidden"},children:[e("div",{style:{flex:1.1,position:"relative",...s(t.paper,t.paper2,150)},children:e(y,{size:78,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),n("div",{style:{flex:1,padding:"10px 10px 10px 8px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:t.rust},children:"NITTO"}),e("b",{style:{fontSize:"6.29cqw",color:t.text},children:"Ridge Grappler"}),e("span",{style:{fontSize:"6.63cqw",fontWeight:700,color:t.text},children:"$489"}),e("span",{style:{alignSelf:"flex-start",fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"4px 8px",borderRadius:2,background:t.text,color:t.onInk},children:"ADD TO CART"})]})]}),spectable:e(a,{title:"Specifications",children:n("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[e(g,{k:"Diameter",v:'20"'}),e(g,{k:"Width",v:"9.0J"}),e(g,{k:"Offset",v:"+12"}),e(g,{k:"Load",v:"1250 kg"})]})}),fitmenttable:e(a,{title:"Will it fit?",children:n("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[e(g,{k:"Hilux N80",v:"20×9 +12",ok:!0}),e(g,{k:"Ranger PX3",v:"20×9 +12",ok:!0}),e(g,{k:"LC79",v:"17×8 −10",ok:!0})]})}),brandstrip:n("div",{style:{...o,background:t.paper,display:"flex",flexDirection:"column",gap:8,justifyContent:"center",padding:"0 12px"},children:[e(u,{children:"Brands we carry"}),e("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:["NITTO","BFG","FUEL","TOYO"].map(i=>e("span",{style:{fontSize:"4.64cqw",fontWeight:800,letterSpacing:"0.1em",color:t.mark2},children:i},i))})]}),processsteps:n("div",{style:{...o,background:t.paper,padding:10,display:"flex",flexDirection:"column",gap:7,justifyContent:"center"},children:[e(u,{children:"How it works"}),e("div",{style:{display:"flex",gap:6},children:["Pick your rig","Match the fit","We fit it"].map((i,l)=>n("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:2},children:[e("span",{style:{width:11,height:11,borderRadius:"50%",background:t.text,color:t.onInk,fontSize:"3.98cqw",display:"flex",alignItems:"center",justifyContent:"center",fontWeight:700},children:l+1}),e("span",{style:{fontSize:"3.98cqw",color:t.text,fontWeight:600},children:i})]},i))})]}),detailrows:e("div",{style:{...o,background:t.card,display:"flex",flexDirection:"column",overflow:"hidden"},children:[["Forged, not cast","Half the weight, twice the road.",!1],["Fits your load","Rated to 1250 kg a corner.",!0]].map(([i,l,d])=>{const h=e("div",{style:{flex:1,...s(d?t.rust:t.inkSoft,d?t.warm:t.inkSoft2)}},"art"),f=n("div",{style:{flex:1.1,padding:8,display:"flex",flexDirection:"column",gap:2,justifyContent:"center"},children:[e("b",{style:{fontSize:"4.64cqw",color:t.text},children:i}),e("span",{style:{fontSize:"3.98cqw",color:t.muted,lineHeight:1.3},children:l})]},"tx");return e("div",{style:{flex:1,display:"flex",minHeight:0},children:d?[f,h]:[h,f]},i)})}),specstrip:e("div",{style:{...o,background:t.ink,color:t.onInk,display:"flex",alignItems:"center",justifyContent:"space-around",padding:"0 8px"},children:[["5 yr","Warranty"],["Free","Fitting"],["48 hr","Dispatch"]].map(([i,l])=>n("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:1},children:[e("b",{style:{fontSize:"5.69cqw",letterSpacing:"0.02em"},children:i}),e("span",{style:{fontSize:"3.65cqw",color:t.mark2,letterSpacing:"0.1em",textTransform:"uppercase"},children:l})]},l))})},D={subscribe:n("div",{style:{...o,padding:13,display:"flex",flexDirection:"column"},children:[n("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[n("div",{style:{display:"flex",alignItems:"center",gap:6},children:[e(r,{w:8,h:8,r:2,tone:"accent"}),e(r,{w:38,h:7,r:3,tone:"dark"}),e(r,{w:16,h:7,r:3,tone:"accent"})]}),e(r,{w:38,h:4,r:2,tone:"soft"})]}),e("div",{style:{height:1,background:c.line,marginBottom:10}}),n("div",{style:{flex:1,display:"flex",gap:10,border:`1px solid ${c.line}`,borderRadius:7,padding:10},children:[n("div",{style:{flex:1.1,display:"flex",flexDirection:"column",justifyContent:"center",gap:5},children:[e(r,{w:"46%",h:3,r:2,tone:"accent"}),e(r,{w:"84%",h:8,r:4,tone:"dark"}),e(r,{w:"56%",h:8,r:4,tone:"accent"}),e(r,{w:"96%",h:3,r:2,tone:"soft",style:{marginTop:2}}),n("div",{style:{display:"flex",gap:5,marginTop:4},children:[e("div",{style:{flex:1,height:13,borderRadius:5,border:`1px solid ${c.line}`,background:c.block}}),e(r,{w:34,h:13,r:5,tone:"accent"})]})]}),n("div",{style:{flex:1,background:c.block,borderRadius:6,padding:8,display:"flex",flexDirection:"column",gap:6},children:[e(r,{w:"52%",h:4,r:2,tone:"accent"}),Array.from({length:3}).map((i,l)=>n("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6,borderTop:l?`1px solid ${c.line}`:"none",paddingTop:l?4:0},children:[e(r,{w:34,h:4,r:2,tone:"dark"}),e(r,{w:16,h:3,r:2,tone:"soft"})]},l))]})]})]}),split:n("div",{style:{...o,display:"flex"},children:[e("div",{style:{width:"44%",background:v}}),n("div",{style:{flex:1,padding:15,display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[e(r,{w:"44%",h:5,r:3,tone:"accent"}),e(r,{w:"88%",h:8,r:4,tone:"dark"}),e(r,{w:"70%",h:8,r:4,tone:"dark"}),e(r,{w:"94%",h:5,r:2,tone:"soft",style:{marginTop:2}}),e(r,{w:"80%",h:5,r:2,tone:"soft"}),e(r,{w:"40%",h:13,r:6,tone:"accent",style:{marginTop:5}})]})]}),sectionheader:n(z,{children:[e(r,{w:"18%",h:6,r:3,tone:"accent",style:{position:"absolute",top:15,right:16}}),n("div",{style:{...o,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:10},children:[n("div",{style:{display:"flex",alignItems:"center",gap:9},children:[e(r,{w:16,h:16,r:4,tone:"accent"}),e(r,{w:"20%",h:9,r:4,tone:"dark"})]}),e(r,{w:"62%",h:10,r:5,tone:"dark"}),e(r,{w:"42%",h:6,r:3,tone:"soft"})]})]}),header:e("div",{style:{...o,padding:14,display:"flex",flexDirection:"column",justifyContent:"center"},children:n("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[e(r,{w:"22%",h:12,r:4,tone:"dark"}),n("div",{style:{display:"flex",gap:9,alignItems:"center"},children:[e(r,{w:26,h:6,r:3,tone:"soft"}),e(r,{w:26,h:6,r:3,tone:"soft"}),e(r,{w:26,h:6,r:3,tone:"soft"}),e(r,{w:18,h:14,r:5,tone:"accent"})]})]})}),footer:n("div",{style:{...o,padding:15,display:"flex",flexDirection:"column",justifyContent:"center",gap:12},children:[n("div",{style:{display:"flex",gap:14},children:[n("div",{style:{flex:1.4,display:"flex",flexDirection:"column",gap:6},children:[e(r,{w:"60%",h:9,r:4,tone:"dark"}),e(r,{w:"90%",h:5,r:2,tone:"soft"}),e(r,{w:"70%",h:5,r:2,tone:"soft"})]}),[0,1].map(i=>n("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:6},children:[e(r,{w:"50%",h:6,r:3,tone:"dark"}),e(r,{w:"80%",h:5,r:2,tone:"soft"}),e(r,{w:"66%",h:5,r:2,tone:"soft"})]},i))]}),e("div",{style:{height:1,background:c.line}}),n("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e(r,{w:"30%",h:5,r:2,tone:"soft"}),e(r,{w:"16%",h:5,r:2,tone:"soft"})]})]}),grid:e("div",{style:{...o,padding:14,display:"grid",gridTemplateColumns:"1fr 1fr",gridTemplateRows:"1fr 1fr",gap:9},children:Array.from({length:4}).map((i,l)=>e("div",{style:{borderRadius:6,background:c.block}},l))}),blanksection:e("div",{style:{...o,padding:14,display:"flex"},children:n("div",{style:{flex:1,border:`1px dashed ${c.line}`,borderRadius:7,display:"flex",alignItems:"center",justifyContent:"center",position:"relative"},children:[e(r,{w:14,h:2,r:1,tone:"tint"}),e(r,{w:2,h:14,r:1,tone:"tint",style:{position:"absolute"}})]})}),spacer:n("div",{style:{...o,padding:14,display:"flex",flexDirection:"column",justifyContent:"space-between"},children:[e(r,{w:"100%",h:6,r:3,tone:"soft"}),e(r,{w:16,h:22,r:3,tone:"block",style:{alignSelf:"center"}}),e(r,{w:"100%",h:6,r:3,tone:"soft"})]}),divider:e("div",{style:{...o,padding:14,display:"flex",alignItems:"center"},children:e(r,{w:"100%",h:3,r:2,tone:"dark"})}),customhtml:n("div",{style:{...o,display:"flex",alignItems:"center",justifyContent:"center",gap:8,background:v},children:[e(r,{w:5,h:16,r:2,tone:"dark",style:{transform:"skewX(-14deg)"}}),e(r,{w:16,h:10,r:3,tone:"accent"}),e(r,{w:5,h:16,r:2,tone:"dark",style:{transform:"skewX(14deg)"}})]}),heading:e("div",{style:{...o,padding:14,display:"flex",alignItems:"center"},children:e(r,{w:"64%",h:13,r:4,tone:"dark"})}),text:n("div",{style:{...o,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[e(r,{w:"100%",h:6,r:3,tone:"soft"}),e(r,{w:"96%",h:6,r:3,tone:"soft"}),e(r,{w:"100%",h:6,r:3,tone:"soft"}),e(r,{w:"58%",h:6,r:3,tone:"soft"})]}),image:e("div",{style:{position:"absolute",inset:14,borderRadius:7,background:v}}),button:e("div",{style:{...o,display:"flex",alignItems:"center",justifyContent:"center"},children:e(r,{w:"34%",h:16,r:8,tone:"accent"})}),menu:n("div",{style:{...o,padding:"14px 22%",display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[e(r,{w:"48%",h:7,r:3,tone:"dark"}),e(r,{w:"82%",h:5,r:2,tone:"soft"}),e(r,{w:"66%",h:5,r:2,tone:"soft"}),e(r,{w:"74%",h:5,r:2,tone:"soft"}),e(r,{w:"58%",h:5,r:2,tone:"soft"})]}),emailform:n("div",{style:{...o,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:9},children:[e(r,{w:"56%",h:8,r:3,tone:"dark"}),n("div",{style:{display:"flex",gap:6},children:[e("div",{style:{flex:1,height:16,borderRadius:5,border:`1px solid ${c.line}`}}),e(r,{w:"30%",h:16,r:5,tone:"accent"})]})]}),sociallogos:e("div",{style:{...o,display:"flex",alignItems:"center",justifyContent:"center",gap:9},children:[0,1,2,3].map(i=>e(r,{w:16,h:16,r:8,tone:"dark"},i))}),search:e("div",{style:{...o,padding:"0 18%",display:"flex",alignItems:"center"},children:n("div",{style:{flex:1,height:22,borderRadius:11,border:`1px solid ${c.line}`,display:"flex",alignItems:"center",gap:7,padding:"0 9px"},children:[e("div",{style:{width:9,height:9,borderRadius:5,border:`2px solid ${c.dark}`}}),e(r,{w:"46%",h:5,r:2,tone:"soft"})]})}),cart:n("div",{style:{...o,display:"flex",alignItems:"center",justifyContent:"center",gap:7},children:[e("div",{style:{width:22,height:18,borderRadius:"3px 3px 6px 6px",border:`2px solid ${c.dark}`}}),e("div",{style:{padding:"2px 6px",borderRadius:6,border:`1.5px solid ${c.dark}`},children:e(r,{w:7,h:7,r:2,tone:"dark"})})]}),countryswitch:n("div",{style:{...o,padding:14,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:5},children:[n("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px",border:`1px solid ${c.line}`},children:[e(r,{w:22,h:6,r:2,tone:"dark"}),e(r,{w:6,h:4,r:1,tone:"soft"})]}),n("div",{style:{width:"46%",display:"flex",flexDirection:"column",gap:4,padding:6,border:`1px solid ${c.line}`},children:[e(r,{w:"80%",h:4,r:2,tone:"accent"}),e(r,{w:"64%",h:4,r:2,tone:"soft"}),e(r,{w:"72%",h:4,r:2,tone:"soft"})]})]}),legalline:n("div",{style:{...o,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:9},children:[e("div",{style:{height:1,background:c.line}}),n("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e(r,{w:"38%",h:5,r:2,tone:"soft"}),n("div",{style:{display:"flex",gap:5},children:[e(r,{w:14,h:5,r:2,tone:"soft"}),e(r,{w:14,h:5,r:2,tone:"soft"}),e(r,{w:14,h:5,r:2,tone:"soft"})]})]})]}),fallback:e("div",{style:{position:"absolute",inset:14,borderRadius:8,background:c.block}})};function j({type:i}){const l=T[i]??"",d=W[l]??D[l]??D.fallback;return e("div",{className:"sf-thumb","aria-hidden":"true",style:{position:"absolute",inset:0,background:"var(--sf-thumb-thumb-bg)",pointerEvents:"none",containerType:"inline-size"},children:d})}export{j as default};
1
+ import{jsx as e,jsxs as n,Fragment as z}from"react/jsx-runtime";const c={dark:"var(--sf-thumb-bar-dark)",soft:"var(--sf-thumb-bar-light)",accent:"var(--sf-thumb-accent)",tint:"var(--sf-thumb-accent-tint)",block:"var(--sf-thumb-block)",line:"var(--sf-thumb-border)",card:"var(--sf-thumb-card)"},v="repeating-linear-gradient(135deg,var(--sf-thumb-hatch1) 0,var(--sf-thumb-hatch1) 5px,var(--sf-thumb-hatch2) 5px,var(--sf-thumb-hatch2) 10px)";function r({w:i,h:l,tone:d="dark",r:h=2,style:f}){return e("div",{style:{width:i,height:l,borderRadius:h,background:c[d],flex:"none",...f}})}const T={Hero:"hero",HeroSingle:"herosingle",IntroBleed:"intro",Collections:"collections",AlloyWheelsListing:"wheelslisting",CatalogFilterBar:"catalogfilterbar",ProductGrid:"productgrid",BrandStrip:"brandstrip",FitmentFinder:"fitmentfinder",Gallery:"gallery",GalleryB:"gallerygrid",SpecStrip:"specstrip",ProductHero:"producthero",SpecTable:"spectable",ProcessSteps:"processsteps",DetailRows:"detailrows",FitmentTable:"fitmenttable",CompatibleTyres:"compatibletyres",TyreSizes:"tyresizes",TyreFitment:"tyrefitment",EuTyreLabel:"eutyrelabel",RelatedProducts:"productgrid",BundleOffer:"bundleoffer",OrderSummary:"ordersummary",DeliveryOptions:"deliveryoptions",PaymentBadges:"paymentbadges",CheckoutCTA:"checkoutcta",Manifesto:"manifesto",ParagraphsA:"paragraphs",Prose:"prose",StatsParagraph:"statsparagraph",Chart:"chart",Mockup:"mockup",Footprint:"footprint",Timeline:"timeline",TimelineTrack:"timelinetrack",TitleWithButtons:"titlewithbuttons",Split:"split",Cards:"cards",FAQ:"faq",Testimonials:"testimonials",Masthead:"masthead",Breadcrumb:"breadcrumb",CategoryBar:"categorybar",FeaturedCover:"featuredcover",LongRead:"longread",Series:"series",Subscribe:"subscribe",SubscribeBlogs:"subscribe",Events:"events",DocMasthead:"docmasthead",DocTabs:"doctabs",DocBody:"docbody",DocMetaCards:"docmetacards",Banner:"banner",Stats:"stats",KeyFeatures:"keyfeatures",Logos:"logos",Ticker:"ticker",Countdown:"countdown",Reviews:"reviews",SubmitBuild:"submitbuild",ReviewForm:"reviewform",Form:"form",AppointmentBooking:"appointmentbooking",ContactRouting:"contact",ContactLocations:"contactlocations",Header:"header",Footer:"footer",SectionHeader:"sectionheader",Grid:"grid",Flex:"blanksection",Spacer:"spacer",Divider:"divider",CustomHTML:"customhtml",Heading:"heading",Text:"text",ImageBlock:"image",ButtonBlock:"button",MenuBlock:"menu",EmailFormBlock:"emailform",SocialLogosBlock:"sociallogos",LegalLineBlock:"legalline",SearchBlock:"search",CartBlock:"cart",CountrySwitchBlock:"countryswitch"},o={position:"absolute",inset:0},t={ink:"var(--sf-thumb-ink)",ink2:"var(--sf-thumb-ink-2)",inkSoft:"var(--sf-thumb-ink-soft)",inkSoft2:"var(--sf-thumb-ink-soft-2)",paper:"var(--sf-thumb-paper)",paper2:"var(--sf-thumb-paper-2)",warm:"var(--sf-thumb-warm)",rust:"var(--sf-thumb-rust)",onInk:"var(--sf-thumb-on-ink)",text:"var(--sf-thumb-scene-text)",muted:"var(--sf-thumb-scene-muted)",rule:"var(--sf-thumb-scene-rule)",mark1:"var(--sf-thumb-mark-1)",mark2:"var(--sf-thumb-mark-2)",card:"var(--sf-thumb-card)",scrim:"var(--sf-thumb-scrim)"},s=(i,l,d=160)=>({background:`linear-gradient(${d}deg,${i},${l})`});function y({size:i,style:l}){const d=Math.max(2,Math.round(i*.13)),h=(f,w,m)=>({position:"absolute",inset:f,background:w,borderRadius:d,...m?{mixBlendMode:m}:null});return n("span",{style:{position:"absolute",display:"block",width:i,height:i,...l},children:[e("span",{style:h("8% 26% 30% 6%",t.mark1)}),e("span",{style:h("26% 6% 8% 30%",t.mark2,"multiply")})]})}function u({children:i}){return e("span",{style:{fontSize:"4.64cqw",fontWeight:700,letterSpacing:"0.06em",textTransform:"uppercase",color:t.muted},children:i})}function q({over:i,overTone:l,head:d,headSize:h=11.5,cta:f,ctaBg:w,ctaFg:m,tone:I}){return n(z,{children:[i&&e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:l},children:i}),e("span",{style:{fontSize:h,lineHeight:1.15,fontWeight:700,maxWidth:"78%",color:I},children:d}),f&&e("span",{style:{alignSelf:"flex-start",fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"4px 8px",borderRadius:2,marginTop:2,background:w,color:m},children:f})]})}function k({name:i,price:l}){return n("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[e("div",{style:{flex:1,minHeight:0,borderRadius:3,position:"relative",overflow:"hidden",...s(t.paper,t.paper2,150)},children:e(y,{size:34,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),e("span",{style:{fontSize:"3.65cqw",fontWeight:600,color:t.text},children:i}),e("span",{style:{fontSize:"3.65cqw",color:t.muted},children:l})]})}function g({k:i,v:l,ok:d}){return n("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6,padding:"3.5px 2px",borderBottom:`1px solid ${t.rule}`,fontSize:"3.98cqw",color:t.muted},children:[e("span",{children:i}),n("span",{style:{display:"flex",gap:6,alignItems:"center"},children:[e("b",{style:{color:t.text,fontWeight:700},children:l}),d&&e("span",{style:{color:t.rust,fontWeight:700},children:"✓"})]})]})}function a({title:i,children:l}){return n("div",{style:{...o,background:t.card,padding:"9px 10px",display:"flex",flexDirection:"column",gap:6},children:[e(u,{children:i}),l]})}function C({size:i=14}){return e("span",{style:{width:i,height:i,borderRadius:"50%",flex:"none",display:"block",background:`linear-gradient(150deg,${t.mark1},${t.mark2})`}})}function S({filled:i=5,size:l=6}){return n("span",{style:{fontSize:l,letterSpacing:"0.06em",color:t.rust,lineHeight:1},children:["★".repeat(i),e("span",{style:{color:t.mark1},children:"★".repeat(5-i)})]})}function x({n:i,label:l,tone:d=t.text}){return n("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[e("b",{style:{fontSize:"8.16cqw",lineHeight:1,color:d},children:i}),e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.08em",textTransform:"uppercase",opacity:.62,color:d},children:l})]})}function p({children:i,w:l}){return e("span",{style:{fontSize:"3.98cqw",lineHeight:1.45,color:t.muted,width:l,display:"block"},children:i})}function b({label:i,w:l="100%",filled:d}){return n("div",{style:{width:l,display:"flex",flexDirection:"column",gap:2},children:[e("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:t.muted},children:i}),e("span",{style:{height:9,borderRadius:3,border:`1px solid ${t.rule}`,background:d?t.paper:t.card}})]})}function R({children:i}){return e("span",{style:{alignSelf:"flex-start",fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:t.text,color:t.onInk},children:i})}const W={wheelslisting:e(a,{title:"All wheels",children:e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[["Ridge 19","20×9 +12","$365"],["Ridge 29","18×9 +20","$410"],["Ridge 39","17×8 −10","$455"]].map(([i,l,d])=>n("div",{style:{display:"flex",alignItems:"center",gap:6},children:[e("span",{style:{width:20,height:15,borderRadius:3,flex:"none",position:"relative",overflow:"hidden",...s(t.paper,t.paper2,150)},children:e(y,{size:12,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),e("b",{style:{flex:1,fontSize:"4.31cqw",color:t.text},children:i}),e("span",{style:{fontSize:"3.65cqw",color:t.muted},children:l}),e("b",{style:{fontSize:"4.31cqw",color:t.text,width:26,textAlign:"right"},children:d})]},i))})}),catalogfilterbar:n("div",{style:{...o,background:t.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:7,padding:"0 11px"},children:[n("div",{style:{display:"flex",gap:4,alignItems:"center"},children:[["20 inch","6×139.7","Black"].map(i=>n("span",{style:{fontSize:"3.65cqw",fontWeight:600,padding:"4px 7px",borderRadius:99,background:t.text,color:t.onInk,display:"flex",gap:4,alignItems:"center"},children:[i,e("span",{style:{opacity:.6},children:"✕"})]},i)),e("span",{style:{fontSize:"3.65cqw",color:t.rust,fontWeight:700},children:"Clear"})]}),n("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e("span",{style:{fontSize:"3.65cqw",color:t.muted},children:"128 results"}),e("span",{style:{fontSize:"3.65cqw",color:t.muted,border:`1px solid ${t.rule}`,borderRadius:3,padding:"3px 6px"},children:"Sort: Price ▾"})]})]}),fitmentfinder:n("div",{style:{...o,padding:"10px 12px",display:"flex",flexDirection:"column",gap:6,justifyContent:"center",...s(t.ink,t.inkSoft)},children:[e("span",{style:{fontSize:"5.31cqw",fontWeight:700,color:t.onInk},children:"Will it fit your rig?"}),n("div",{style:{display:"flex",gap:4},children:[["2021","Toyota","Hilux"].map(i=>n("span",{style:{flex:1,fontSize:"3.65cqw",color:t.text,background:t.card,borderRadius:3,padding:"5px 6px",display:"flex",justifyContent:"space-between"},children:[i," ",e("span",{style:{color:t.muted},children:"▾"})]},i)),e("span",{style:{fontSize:"3.65cqw",fontWeight:700,letterSpacing:"0.08em",background:t.warm,color:t.ink,borderRadius:3,padding:"5px 7px"},children:"GO"})]})]}),compatibletyres:e(a,{title:"Tyres that suit",children:e("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[["Ridge Grappler","$489"],["Trail Grappler","$525"],["Terra Grappler","$438"]].map(([i,l])=>n("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[e("div",{style:{flex:1,minHeight:0,borderRadius:3,position:"relative",overflow:"hidden",background:t.ink},children:e("span",{style:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%,-50%)",width:26,height:26,borderRadius:"50%",border:`5px solid ${t.mark2}`,boxSizing:"border-box"}})}),e("span",{style:{fontSize:"3.32cqw",fontWeight:600,color:t.text,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},children:i}),e("span",{style:{fontSize:"3.32cqw",color:t.muted},children:l})]},i))})}),tyresizes:e(a,{title:"Available sizes",children:e("div",{style:{flex:1,display:"flex",flexWrap:"wrap",gap:4,alignContent:"center"},children:["265/65R17","285/70R17","265/60R18","275/55R20"].map((i,l)=>e("span",{style:{fontSize:"3.65cqw",fontWeight:600,padding:"5px 7px",borderRadius:3,border:`1px solid ${l===0?t.rust:t.rule}`,color:l===0?t.rust:t.text,background:l===0?t.paper:t.card},children:i},i))})}),tyrefitment:n(a,{title:"Will it fit your car?",children:[e("div",{style:{display:"flex",gap:3},children:["Make","Model","Year","Trim"].map(i=>n("span",{style:{flex:1,minWidth:0,fontSize:"3.32cqw",color:t.muted,background:t.paper,border:`1px solid ${t.rule}`,borderRadius:3,padding:"4px 5px",display:"flex",justifyContent:"space-between",gap:2,overflow:"hidden",whiteSpace:"nowrap"},children:[i," ",e("span",{style:{color:t.muted},children:"▾"})]},i))}),e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:2,justifyContent:"center",minHeight:0},children:[["265/65R17","Fits",!0],["285/70R17","Not your size",!1]].map(([i,l,d])=>n("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",gap:6,borderTop:`1px solid ${t.rule}`,paddingTop:3},children:[e("span",{style:{fontSize:"3.32cqw",fontWeight:600,color:t.text},children:i}),e("span",{style:{fontSize:"3.32cqw",fontWeight:d?700:400,letterSpacing:"0.06em",color:d?t.warm:t.muted},children:l})]},i))})]}),eutyrelabel:n("div",{style:{...o,background:t.card,padding:"9px 11px",display:"flex",gap:8,alignItems:"center"},children:[e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1.5},children:[["A","42%"],["B","56%"],["C","70%"],["D","84%"]].map(([i,l],d)=>n("div",{style:{display:"flex",alignItems:"center",gap:3},children:[e("span",{style:{width:l,height:6,borderRadius:"0 2px 2px 0",background:d===1?t.rust:t.mark1}}),e("span",{style:{fontSize:"3.32cqw",fontWeight:700,color:d===1?t.rust:t.muted},children:i})]},i))}),n("div",{style:{flex:"none",display:"flex",flexDirection:"column",gap:3,alignItems:"center"},children:[e("b",{style:{fontSize:"6.63cqw",lineHeight:1,color:t.text},children:"72"}),e("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",color:t.muted},children:"dB"})]})]}),bundleoffer:n("div",{style:{...o,background:t.paper,padding:"9px 11px",display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[e(u,{children:"Buy it with"}),n("div",{style:{display:"flex",alignItems:"center",gap:5},children:[[0,1].map(i=>e("span",{style:{width:26,height:22,borderRadius:3,flex:"none",position:"relative",overflow:"hidden",background:t.card},children:e(y,{size:17,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})},i)),e("span",{style:{fontSize:"5.69cqw",fontWeight:700,color:t.muted},children:"+"}),n("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1},children:[e("span",{style:{fontSize:"3.65cqw",color:t.muted,textDecoration:"line-through"},children:"$1,024"}),e("b",{style:{fontSize:"6.02cqw",color:t.rust,lineHeight:1},children:"$899"})]})]})]}),checkoutcta:n("div",{style:{...o,display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 13px",gap:8,...s(t.ink,t.ink2)},children:[n("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",color:t.warm,fontWeight:700},children:"READY TO ORDER"}),e("b",{style:{fontSize:"6.63cqw",color:t.onInk,lineHeight:1},children:"$1,956"}),e("span",{style:{fontSize:"3.65cqw",color:t.onInk,opacity:.65},children:"4 items · fitted free"})]}),e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"6px 10px",borderRadius:2,background:t.warm,color:t.ink,flex:"none"},children:"CHECKOUT"})]}),contact:e(a,{title:"Who do you need?",children:e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[["Fitment help","the workshop"],["Order status","the front desk"],["Trade accounts","sales"]].map(([i,l])=>n("div",{style:{display:"flex",alignItems:"center",gap:5},children:[e("b",{style:{flex:1,fontSize:"4.31cqw",color:t.text},children:i}),e("span",{style:{fontSize:"3.65cqw",color:t.muted},children:l}),e("span",{style:{fontSize:"4.64cqw",color:t.rust,lineHeight:1},children:"›"})]},i))})}),contactlocations:e(a,{title:"Find us",children:e("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(2,1fr)",gap:5,minHeight:0},children:[["Brisbane","7 Kerry Rd","Mon–Sat"],["Townsville","12 Enterprise","Mon–Fri"]].map(([i,l,d])=>n("div",{style:{border:`1px solid ${t.rule}`,borderRadius:4,padding:"5px 6px",display:"flex",flexDirection:"column",gap:1},children:[e("b",{style:{fontSize:"4.31cqw",color:t.text},children:i}),e("span",{style:{fontSize:"3.32cqw",color:t.muted},children:l}),e("span",{style:{fontSize:"3.32cqw",color:t.rust,fontWeight:700},children:d})]},i))})}),form:e(a,{title:"Send us a message",children:n("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[n("div",{style:{display:"flex",gap:5},children:[e(b,{label:"Name"}),e(b,{label:"Email"})]}),e(b,{label:"Message",filled:!0}),e(R,{children:"SEND"})]})}),appointmentbooking:e(a,{title:"Book a fitting",children:n("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[e("div",{style:{display:"flex",gap:3},children:["Mon","Tue","Wed","Thu"].map((i,l)=>e("span",{style:{flex:1,textAlign:"center",fontSize:"3.32cqw",fontWeight:l===2?700:500,padding:"4px 0",borderRadius:3,background:l===2?t.text:t.paper,color:l===2?t.onInk:t.muted},children:i},i))}),e("div",{style:{display:"flex",gap:3},children:["8:00","10:30","13:00","15:30"].map((i,l)=>e("span",{style:{flex:1,textAlign:"center",fontSize:"3.32cqw",padding:"4px 0",borderRadius:3,border:`1px solid ${l===1?t.rust:t.rule}`,color:l===1?t.rust:t.muted,background:l===3?t.paper:t.card,textDecoration:l===3?"line-through":"none"},children:i},i))})]})}),reviewform:e(a,{title:"Leave a review",children:n("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[e(S,{filled:4,size:14}),e(b,{label:"Your review",filled:!0}),e(R,{children:"POST"})]})}),submitbuild:e(a,{title:"Show us your build",children:n("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:3,border:`1px dashed ${t.mark1}`,borderRadius:5,background:t.paper},children:[e("span",{style:{fontSize:"6.63cqw",lineHeight:1,color:t.rust,fontWeight:300},children:"+"}),e("span",{style:{fontSize:"3.65cqw",color:t.muted},children:"Drop a photo of your rig"})]})}),masthead:n("div",{style:{...o,background:t.paper,display:"flex",flexDirection:"column",justifyContent:"center",padding:"0 13px",gap:5},children:[e("span",{style:{height:1.5,background:t.text}}),e("span",{style:{fontSize:"7.65cqw",fontWeight:800,letterSpacing:"0.02em",color:t.text,lineHeight:1},children:"THE TRACK"}),n("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"3.65cqw",letterSpacing:"0.1em",textTransform:"uppercase",color:t.muted},children:[e("span",{children:"Issue 14"}),e("span",{children:"Spring 2026"})]}),e("span",{style:{height:1,background:t.rule}})]}),featuredcover:n("div",{style:{...o,overflow:"hidden",...s(t.ink,t.inkSoft2)},children:[e(y,{size:92,style:{right:-18,top:-14}}),e("div",{style:{position:"absolute",inset:0,background:`linear-gradient(0deg,${t.scrim},transparent 62%)`}}),n("div",{style:{position:"absolute",left:12,right:12,bottom:11,display:"flex",flexDirection:"column",gap:3},children:[e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:t.warm},children:"FEATURE"}),e("span",{style:{fontSize:"6.16cqw",lineHeight:1.15,fontWeight:700,color:t.onInk},children:"Four days on the Madigan Line"})]})]}),longread:n("div",{style:{...o,background:t.card,padding:"10px 14px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.14em",fontWeight:700,color:t.rust},children:"12 MIN READ"}),e("span",{style:{fontSize:"6.02cqw",lineHeight:1.15,fontWeight:700,color:t.text},children:"What breaks first, and why"}),e(p,{children:"Every failure starts in the same place — not the rim, not"}),e(p,{w:"62%",children:"the tyre, but the bolt nobody re-torqued."})]}),series:e(a,{title:"Recurring columns",children:e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[["Shed Notes","Monthly"],["Track Tested","Fortnightly"],["Reader Rigs","Weekly"]].map(([i,l])=>n("div",{style:{display:"flex",alignItems:"center",gap:6},children:[e("span",{style:{width:3,height:12,borderRadius:2,background:t.rust,flex:"none"}}),e("b",{style:{flex:1,fontSize:"4.64cqw",color:t.text},children:i}),e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:t.muted},children:l})]},i))})}),events:e(a,{title:"Latest posts",children:e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[[t.inkSoft,t.inkSoft2,"Madigan Line, four days"],[t.rust,t.warm,"Why offset beats width"]].map(([i,l,d])=>n("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[e("span",{style:{width:24,height:18,borderRadius:3,flex:"none",...s(i,l,150)}}),n("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[e("b",{style:{fontSize:"4.31cqw",color:t.text},children:d}),e("span",{style:{fontSize:"3.65cqw",color:t.muted},children:"4 Sep · Shed Notes"})]})]},d))})}),docmasthead:n("div",{style:{...o,background:t.card,padding:"12px 14px",display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:t.muted},children:"POLICY"}),e("span",{style:{fontSize:"6.49cqw",fontWeight:700,color:t.text,lineHeight:1.1},children:"Returns & refunds"}),e("span",{style:{fontSize:"3.65cqw",color:t.muted},children:"Version 3 · Updated 4 Sep 2026"}),e("span",{style:{height:2,width:26,background:t.rust,borderRadius:1}})]}),docbody:e("div",{style:{...o,background:t.card,padding:"9px 13px",display:"flex",flexDirection:"column",gap:3,justifyContent:"center"},children:[["1.","You may return an unfitted wheel within 30 days."],["2.","Fitted wheels are covered by the structural warranty."],["3.","Freight on a change of mind is yours."]].map(([i,l])=>n("div",{style:{display:"flex",gap:5},children:[e("b",{style:{fontSize:"3.98cqw",color:t.rust,flex:"none"},children:i}),e(p,{children:l})]},i))}),docmetacards:e(a,{title:"At a glance",children:e("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(2,1fr)",gap:5,minHeight:0},children:[["30 days","To return"],["5 years","Structural"],["Free","Fitting"],["48 hrs","Dispatch"]].map(([i,l])=>n("div",{style:{border:`1px solid ${t.rule}`,borderRadius:4,padding:"5px 6px",display:"flex",flexDirection:"column",gap:1},children:[e("b",{style:{fontSize:"5.31cqw",color:t.text,lineHeight:1},children:i}),e("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:t.muted},children:l})]},l))})}),doctabs:n("div",{style:{...o,background:t.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:0,padding:"0 11px"},children:[e("div",{style:{display:"flex",gap:0},children:["Returns","Warranty","Shipping"].map((i,l)=>e("span",{style:{fontSize:"3.98cqw",fontWeight:l===0?700:500,padding:"5px 8px",color:l===0?t.text:t.muted,background:l===0?t.paper:"transparent",borderRadius:"4px 4px 0 0",border:`1px solid ${l===0?t.rule:"transparent"}`,borderBottom:"none"},children:i},i))}),e("span",{style:{height:1,background:t.rule}}),n("div",{style:{paddingTop:6,display:"flex",flexDirection:"column",gap:2},children:[e(p,{children:"Unfitted wheels come back within 30 days, no questions."}),e(p,{w:"58%",children:"Freight on a change of mind is yours."})]})]}),paragraphs:n("div",{style:{...o,background:t.card,padding:"11px 14px",display:"flex",gap:10,alignItems:"center"},children:[e("span",{style:{flex:1,fontSize:"5.86cqw",lineHeight:1.2,fontWeight:700,color:t.text},children:"The right wheel is the boring one."}),n("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[e(p,{children:"Forged, correctly offset, rated for what you actually"}),e(p,{children:"carry. Everything else is a photograph."})]})]}),keyfeatures:e(a,{title:"Key features",children:e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:["Flow-formed barrel","1250 kg per corner","Hub-centric fit"].map(i=>n("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[e("span",{style:{fontSize:"4.64cqw",color:t.rust,fontWeight:700,lineHeight:1},children:"✓"}),e("span",{style:{fontSize:"4.31cqw",color:t.text},children:i})]},i))})}),statsparagraph:n("div",{style:{...o,background:t.paper,padding:"10px 12px",display:"flex",gap:10,alignItems:"center"},children:[n("div",{style:{flex:"none",display:"flex",flexDirection:"column",gap:5},children:[e(x,{n:"27k",label:"Rigs"}),e(x,{n:"4.9",label:"Rating"})]}),n("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[e(p,{children:"Twelve years of fitting the same three questions, and the"}),e(p,{children:"answer has not moved: load rating, offset, then looks."})]})]}),chart:n(a,{title:"Load vs weight",children:[e("div",{style:{flex:1,display:"flex",alignItems:"flex-end",gap:5,paddingBottom:2},children:[38,62,84,71,96].map((i,l)=>e("span",{style:{flex:1,height:`${i}%`,borderRadius:"2px 2px 0 0",background:l===4?t.rust:t.mark1}},l))}),e("span",{style:{height:1,background:t.rule,marginTop:-4}})]}),mockup:e("div",{style:{...o,overflow:"hidden",display:"flex",alignItems:"center",justifyContent:"center",...s(t.inkSoft,t.ink)},children:n("div",{style:{width:"72%",height:"74%",borderRadius:4,overflow:"hidden",background:t.card,boxShadow:`0 6px 14px ${t.scrim}`},children:[e("div",{style:{height:9,background:t.paper,display:"flex",alignItems:"center",gap:2,padding:"0 4px"},children:[0,1,2].map(i=>e("span",{style:{width:2.5,height:2.5,borderRadius:"50%",background:t.mark1}},i))}),n("div",{style:{padding:5,display:"flex",flexDirection:"column",gap:3},children:[e("span",{style:{height:4,width:"56%",borderRadius:1,background:t.mark2}}),e("span",{style:{height:14,borderRadius:2,...s(t.paper,t.paper2,150)}}),e("span",{style:{height:3,width:"38%",borderRadius:1,background:t.rust}})]})]})}),manifesto:e("div",{style:{...o,overflow:"hidden",display:"flex",alignItems:"center",padding:"0 16px",...s(t.ink,t.ink2)},children:n("span",{style:{fontSize:"6.63cqw",lineHeight:1.2,fontWeight:700,color:t.onInk},children:["We build for the ",e("span",{style:{color:t.warm},children:"last"})," ten percent of the track."]})}),timeline:e(a,{title:"Our story",children:e("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center",gap:6,paddingLeft:4},children:[["1998","One shed, one lathe."],["2009","First forged rim."],["2024","27,000 rigs on."]].map(([i,l],d)=>n("div",{style:{display:"flex",gap:7,alignItems:"flex-start",position:"relative"},children:[d<2&&e("span",{style:{position:"absolute",left:3,top:8,bottom:-8,width:1,background:t.rule}}),e("span",{style:{width:7,height:7,borderRadius:"50%",flex:"none",marginTop:1,background:t.rust,zIndex:1}}),n("div",{style:{display:"flex",flexDirection:"column",gap:0,minWidth:0},children:[e("b",{style:{fontSize:"4.64cqw",color:t.text},children:i}),e(p,{children:l})]})]},i))})}),timelinetrack:n("div",{style:{...o,padding:"0 12px",display:"flex",flexDirection:"column",gap:10,justifyContent:"center",...s(t.ink,t.inkSoft)},children:[e("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:t.warm},children:"Milestones"}),n("div",{style:{position:"relative",display:"flex",justifyContent:"space-between",paddingTop:7},children:[e("span",{style:{position:"absolute",left:0,right:0,top:3,height:1,background:t.mark2,opacity:.55}}),["1998","2009","2016","2024"].map((i,l)=>n("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:3,position:"relative"},children:[e("span",{style:{position:"absolute",top:-7,width:6,height:6,borderRadius:"50%",background:l===3?t.warm:t.mark1}}),e("span",{style:{fontSize:"4.31cqw",fontWeight:700,color:l===3?t.warm:t.onInk,opacity:l===3?1:.75},children:i})]},i))]})]}),footprint:n("div",{style:{...o,overflow:"hidden",...s(t.paper,t.paper2,150)},children:[e("span",{style:{position:"absolute",left:"8%",top:"18%",width:"62%",height:"64%",borderRadius:"48% 52% 40% 60% / 55% 45% 55% 45%",background:t.mark1,opacity:.75}}),e("span",{style:{position:"absolute",left:"52%",top:"52%",width:"34%",height:"34%",borderRadius:"58% 42% 55% 45% / 45% 58% 42% 55%",background:t.mark2,opacity:.55}}),[["26%","38%"],["44%","58%"],["62%","34%"]].map(([i,l])=>e("span",{style:{position:"absolute",left:i,top:l,width:7,height:7,borderRadius:"50% 50% 50% 0",transform:"rotate(-45deg)",background:t.rust}},i)),e("span",{style:{position:"absolute",left:11,bottom:9,fontSize:"4.64cqw",fontWeight:700,color:t.text},children:"3 fitting bays"})]}),banner:n("div",{style:{...o,display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 13px",gap:8,background:t.rust},children:[n("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[e("b",{style:{fontSize:"6.02cqw",color:t.onInk},children:"End of season · 20% off"}),e("span",{style:{fontSize:"3.98cqw",color:t.onInk,opacity:.8},children:"Fitted free, this month only."})]}),e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:t.onInk,color:t.text,flex:"none"},children:"SHOP"})]}),titlewithbuttons:n("div",{style:{...o,background:t.paper,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:7,padding:"0 14px",textAlign:"center"},children:[e("span",{style:{fontSize:"6.49cqw",lineHeight:1.15,fontWeight:700,color:t.text},children:"Not sure what fits?"}),n("div",{style:{display:"flex",gap:5},children:[e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:t.text,color:t.onInk},children:"FIND MY FIT"}),e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,border:`1px solid ${t.text}`,color:t.text},children:"CALL US"})]})]}),ticker:e("div",{style:{...o,overflow:"hidden",background:t.ink,display:"flex",alignItems:"center"},children:e("span",{style:{whiteSpace:"nowrap",fontSize:"6.29cqw",fontWeight:800,letterSpacing:"0.06em",color:t.warm,marginLeft:-14},children:"FREE FITTING · 48HR DISPATCH · FREE FITTING · 48HR DISPATCH"})}),countdown:n("div",{style:{...o,padding:"10px 12px",display:"flex",flexDirection:"column",alignItems:"center",gap:6,justifyContent:"center",...s(t.ink,t.ink2)},children:[e("span",{style:{fontSize:"3.65cqw",fontWeight:700,letterSpacing:"0.16em",textTransform:"uppercase",color:t.muted},children:"Back online in"}),e("div",{style:{display:"flex",alignItems:"flex-start",gap:5},children:[["23","Hours"],["59","Minutes"],["48","Seconds"]].map(([i,l],d)=>n("div",{style:{display:"flex",alignItems:"flex-start",gap:5},children:[d>0&&e("b",{style:{fontSize:"9.5cqw",lineHeight:1,color:t.warm},children:":"}),n("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:2},children:[e("b",{style:{fontSize:"11.5cqw",lineHeight:1,color:t.onInk,fontVariantNumeric:"tabular-nums"},children:i}),e("span",{style:{fontSize:"3.2cqw",letterSpacing:"0.1em",textTransform:"uppercase",opacity:.62,color:t.onInk},children:l})]})]},l))})]}),breadcrumb:e("div",{style:{...o,background:t.card,display:"flex",alignItems:"center",padding:"0 13px"},children:n("span",{style:{fontSize:"4.64cqw",color:t.muted},children:["Home ",e("span",{style:{opacity:.5},children:"/"})," Wheels ",e("span",{style:{opacity:.5},children:"/"})," ",e("span",{style:{color:t.text,fontWeight:700},children:"20 inch"})]})}),categorybar:n("div",{style:{...o,background:t.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:7,padding:"0 11px"},children:[e("div",{style:{display:"flex",gap:5},children:["All","Wheels","Tyres","Lift"].map((i,l)=>e("span",{style:{fontSize:"3.98cqw",fontWeight:l===0?700:500,padding:"4px 7px",borderRadius:99,background:l===0?t.text:t.paper,color:l===0?t.onInk:t.muted},children:i},i))}),e("span",{style:{height:1,background:t.rule}})]}),intro:n("div",{style:{...o,overflow:"hidden",background:t.card},children:[e("div",{style:{position:"absolute",inset:0,...s(t.ink,t.inkSoft2)}}),e(y,{size:64,style:{right:8,top:6}}),n("div",{style:{position:"absolute",left:16,right:16,bottom:8,top:"46%",background:t.paper,borderRadius:6,padding:"8px 11px",display:"flex",flexDirection:"column",gap:2,boxShadow:`0 -4px 10px ${t.scrim}`},children:[e("span",{style:{fontSize:"5.69cqw",fontWeight:700,color:t.text},children:"Since 1998"}),e(p,{children:"One shed, one lathe, one idea."}),e(p,{w:"66%",children:"It turned out to be right."})]})]}),gallerygrid:e(a,{title:"From our customers",children:e("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gridTemplateRows:"repeat(2,1fr)",gap:4,minHeight:0},children:[[t.rust,t.warm],[t.inkSoft,t.ink],[t.paper2,t.mark2],[t.ink,t.inkSoft2],[t.warm,t.paper2],[t.mark2,t.inkSoft]].map(([i,l],d)=>e("div",{style:{borderRadius:3,...s(i,l,140+d*22)}},d))})}),gallery:n(a,{title:"Gallery",children:[e("div",{style:{display:"flex",gap:8,alignItems:"center",marginTop:-2},children:["On the truck","Studio","Close-ups"].map((i,l)=>e("span",{style:{fontSize:"3.98cqw",fontWeight:l===0?700:500,color:l===0?t.text:t.muted,borderBottom:`1.5px solid ${l===0?t.rust:"transparent"}`,paddingBottom:2},children:i},i))}),e("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:4,minHeight:0},children:[[t.rust,t.warm],[t.ink,t.inkSoft],[t.paper2,t.mark2]].map(([i,l],d)=>e("div",{style:{borderRadius:3,...s(i,l,150+d*20)}},d))})]}),ordersummary:n(a,{title:"Order summary",children:[n("div",{style:{display:"flex",gap:6,alignItems:"center",paddingBottom:4},children:[e("span",{style:{width:26,height:26,borderRadius:4,position:"relative",overflow:"hidden",flex:"none",...s(t.paper,t.paper2,150)},children:e(y,{size:18,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),n("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[e("b",{style:{fontSize:"4.31cqw",color:t.text},children:"Ridge Grappler"}),e("span",{style:{fontSize:"3.65cqw",color:t.muted},children:"20×9 +12 · qty 4"})]})]}),n("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",justifyContent:"center"},children:[e(g,{k:"Subtotal",v:"$1,956"}),e(g,{k:"Fitting",v:"Free"}),n("div",{style:{display:"flex",justifyContent:"space-between",paddingTop:5,fontSize:"4.64cqw"},children:[e("b",{style:{color:t.text},children:"Total"}),e("b",{style:{color:t.text,fontSize:"6.02cqw"},children:"$1,956"})]})]})]}),deliveryoptions:e(a,{title:"Delivery",children:e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[["Standard","3–5 days","Free",!0],["Express","Next day","$19",!1]].map(([i,l,d,h])=>n("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"5px 6px",borderRadius:4,border:`1px solid ${h?t.rust:t.rule}`,background:h?t.paper:t.card},children:[e("span",{style:{width:7,height:7,borderRadius:"50%",flex:"none",border:`1.5px solid ${h?t.rust:t.mark1}`,background:h?t.rust:"transparent"}}),e("span",{style:{flex:1,fontSize:"4.31cqw",fontWeight:600,color:t.text},children:i}),e("span",{style:{fontSize:"3.98cqw",color:t.muted},children:l}),e("b",{style:{fontSize:"4.31cqw",color:t.text},children:d})]},i))})}),paymentbadges:n("div",{style:{...o,background:t.paper,display:"flex",flexDirection:"column",gap:8,justifyContent:"center",padding:"0 12px"},children:[e(u,{children:"Ways to pay"}),e("div",{style:{display:"flex",gap:5},children:[["VISA",t.ink],["MC",t.rust],["AMEX",t.inkSoft],["PayPal",t.ink2]].map(([i,l])=>e("span",{style:{flex:1,textAlign:"center",fontSize:"3.65cqw",fontWeight:800,letterSpacing:"0.06em",color:t.onInk,borderRadius:3,padding:"6px 0",background:l},children:i},i))})]}),stats:n("div",{style:{...o,padding:"10px 12px",display:"flex",flexDirection:"column",gap:9,justifyContent:"center",...s(t.ink,t.ink2)},children:[e("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:t.warm},children:"By the numbers"}),n("div",{style:{display:"flex",gap:8},children:[e(x,{n:"27k",label:"Rigs fitted",tone:t.onInk}),e(x,{n:"12",label:"Years",tone:t.onInk}),e(x,{n:"4.9",label:"Avg rating",tone:t.warm})]})]}),testimonials:n("div",{style:{...o,overflow:"hidden",background:t.paper,padding:"10px 11px",display:"flex",flexDirection:"column",gap:6,justifyContent:"center"},children:[e("span",{style:{position:"absolute",right:10,top:2,fontSize:"22.4cqw",lineHeight:1,fontWeight:800,color:t.rust,opacity:.16},children:"”"}),e(S,{filled:5,size:7}),e("span",{style:{position:"relative",fontSize:"5.31cqw",lineHeight:1.35,color:t.text,fontWeight:600},children:"“Took them out to the Simpson and back. Not one chip.”"}),n("div",{style:{display:"flex",alignItems:"center",gap:5},children:[e(C,{}),e("span",{style:{fontSize:"3.98cqw",color:t.muted},children:"Dave M. · Hilux N80"})]})]}),reviews:n(a,{title:"Reviews",children:[e("div",{style:{display:"flex",gap:4,height:22},children:[[t.inkSoft,t.inkSoft2],[t.rust,t.warm],[t.ink,t.inkSoft],[t.mark2,t.mark1]].map(([i,l],d)=>e("div",{style:{flex:1,borderRadius:3,...s(i,l,140+d*15)}},d))}),e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[["Dave M.",5,"Not one chip after the Simpson."],["Sara K.",4,"Fitted in an hour, no fuss."]].map(([i,l,d])=>n("div",{style:{display:"flex",gap:5,alignItems:"flex-start"},children:[e(C,{size:12}),n("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[n("div",{style:{display:"flex",gap:4,alignItems:"center"},children:[e("b",{style:{fontSize:"3.98cqw",color:t.text},children:i}),e(S,{filled:l})]}),e(p,{children:d})]})]},i))})]}),logos:n("div",{style:{...o,display:"flex",flexDirection:"column",gap:9,justifyContent:"center",padding:"0 12px",...s(t.ink,t.inkSoft)},children:[e("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:t.warm},children:"As fitted by"}),e("div",{style:{display:"grid",gridTemplateColumns:"repeat(4,1fr)",gap:8},children:["ARB","TJM","IRONMAN","OPPOSITE"].map(i=>e("span",{style:{textAlign:"center",fontSize:"4.31cqw",fontWeight:800,letterSpacing:"0.08em",color:t.onInk,opacity:.82},children:i},i))})]}),prose:n("div",{style:{...o,background:t.paper,padding:"11px 14px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[e("span",{style:{fontSize:"5.86cqw",fontWeight:700,color:t.text},children:"Why offset matters"}),n("div",{style:{display:"flex",gap:6},children:[e("span",{style:{fontSize:"15.3cqw",lineHeight:.78,fontWeight:800,color:t.rust,marginTop:1},children:"T"}),n("div",{style:{display:"flex",flexDirection:"column"},children:[e(p,{children:"he number on the back of your wheel decides whether the"}),e(p,{w:"76%",children:"tyre sits under the guard or an inch outside it."})]})]})]}),cards:e(a,{title:"What you get",children:e("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[["Fitted free","In store, same day."],["5 yr cover","Structural, no fine print."],["Swap it","30 days, any reason."]].map(([i,l])=>n("div",{style:{border:`1px solid ${t.rule}`,borderRadius:4,padding:6,display:"flex",flexDirection:"column",gap:2},children:[e("span",{style:{width:11,height:11,borderRadius:3,background:t.rust,opacity:.9}}),e("b",{style:{fontSize:"3.98cqw",color:t.text},children:i}),e(p,{children:l})]},i))})}),faq:e(a,{title:"Questions",children:e("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[["Will these fit my Hilux?",!0],["Do you fit them for me?",!1],["What if I pick wrong?",!1]].map(([i,l])=>n("div",{style:{borderBottom:`1px solid ${t.rule}`,padding:"4px 2px"},children:[n("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6},children:[e("b",{style:{fontSize:"4.31cqw",color:t.text},children:i}),e("span",{style:{fontSize:"4.64cqw",color:t.muted,lineHeight:1},children:l?"−":"+"})]}),l&&e(p,{w:"90%",children:"Use the fitment finder — it reads your build, not just the model."})]},i))})}),hero:n("div",{style:{...o,overflow:"hidden",...s(t.ink,t.ink2)},children:[e("div",{style:{...o,background:`linear-gradient(90deg,${t.scrim},transparent 70%)`}}),e("div",{style:{position:"relative",height:"100%",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",padding:"12px 14px",gap:5},children:e(q,{over:"NEW · SUMMER",overTone:t.warm,head:"Built for the worst road you own",cta:"SHOP ALL",ctaBg:t.warm,ctaFg:t.ink,tone:t.onInk})}),e(y,{size:104,style:{right:-24,bottom:-30}})]}),herosingle:n("div",{style:{...o,display:"flex",background:t.paper,overflow:"hidden"},children:[e("div",{style:{flex:1,padding:12,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:e(q,{over:"ALL-TERRAIN",overTone:t.rust,head:"Grip that does not ask",headSize:12,cta:"EXPLORE",ctaBg:t.text,ctaFg:t.onInk,tone:t.text})}),e("div",{style:{flex:1,position:"relative",...s(t.inkSoft,t.inkSoft2)},children:e(y,{size:74,style:{right:-14,top:16}})})]}),productgrid:e(a,{title:"Best sellers",children:n("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[e(k,{name:"Ridge 19",price:"$365"}),e(k,{name:"Ridge 29",price:"$410"}),e(k,{name:"Ridge 39",price:"$455"})]})}),collections:e(a,{title:"Shop by category",children:e("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[["Wheels",t.inkSoft,t.inkSoft2],["Tyres",t.rust,t.warm],["Lift kits",t.ink,t.inkSoft]].map(([i,l,d])=>e("div",{style:{borderRadius:4,display:"flex",alignItems:"flex-end",padding:5,color:t.onInk,...s(l,d)},children:e("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.04em"},children:i})},i))})}),producthero:n("div",{style:{...o,display:"flex",background:t.card,overflow:"hidden"},children:[e("div",{style:{flex:1.1,position:"relative",...s(t.paper,t.paper2,150)},children:e(y,{size:78,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),n("div",{style:{flex:1,padding:"10px 10px 10px 8px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[e("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:t.rust},children:"NITTO"}),e("b",{style:{fontSize:"6.29cqw",color:t.text},children:"Ridge Grappler"}),e("span",{style:{fontSize:"6.63cqw",fontWeight:700,color:t.text},children:"$489"}),e("span",{style:{alignSelf:"flex-start",fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"4px 8px",borderRadius:2,background:t.text,color:t.onInk},children:"ADD TO CART"})]})]}),spectable:e(a,{title:"Specifications",children:n("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[e(g,{k:"Diameter",v:'20"'}),e(g,{k:"Width",v:"9.0J"}),e(g,{k:"Offset",v:"+12"}),e(g,{k:"Load",v:"1250 kg"})]})}),fitmenttable:e(a,{title:"Will it fit?",children:n("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[e(g,{k:"Hilux N80",v:"20×9 +12",ok:!0}),e(g,{k:"Ranger PX3",v:"20×9 +12",ok:!0}),e(g,{k:"LC79",v:"17×8 −10",ok:!0})]})}),brandstrip:n("div",{style:{...o,background:t.paper,display:"flex",flexDirection:"column",gap:8,justifyContent:"center",padding:"0 12px"},children:[e(u,{children:"Brands we carry"}),e("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:["NITTO","BFG","FUEL","TOYO"].map(i=>e("span",{style:{fontSize:"4.64cqw",fontWeight:800,letterSpacing:"0.1em",color:t.mark2},children:i},i))})]}),processsteps:n("div",{style:{...o,background:t.paper,padding:10,display:"flex",flexDirection:"column",gap:7,justifyContent:"center"},children:[e(u,{children:"How it works"}),e("div",{style:{display:"flex",gap:6},children:["Pick your rig","Match the fit","We fit it"].map((i,l)=>n("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:2},children:[e("span",{style:{width:11,height:11,borderRadius:"50%",background:t.text,color:t.onInk,fontSize:"3.98cqw",display:"flex",alignItems:"center",justifyContent:"center",fontWeight:700},children:l+1}),e("span",{style:{fontSize:"3.98cqw",color:t.text,fontWeight:600},children:i})]},i))})]}),detailrows:e("div",{style:{...o,background:t.card,display:"flex",flexDirection:"column",overflow:"hidden"},children:[["Forged, not cast","Half the weight, twice the road.",!1],["Fits your load","Rated to 1250 kg a corner.",!0]].map(([i,l,d])=>{const h=e("div",{style:{flex:1,...s(d?t.rust:t.inkSoft,d?t.warm:t.inkSoft2)}},"art"),f=n("div",{style:{flex:1.1,padding:8,display:"flex",flexDirection:"column",gap:2,justifyContent:"center"},children:[e("b",{style:{fontSize:"4.64cqw",color:t.text},children:i}),e("span",{style:{fontSize:"3.98cqw",color:t.muted,lineHeight:1.3},children:l})]},"tx");return e("div",{style:{flex:1,display:"flex",minHeight:0},children:d?[f,h]:[h,f]},i)})}),specstrip:e("div",{style:{...o,background:t.ink,color:t.onInk,display:"flex",alignItems:"center",justifyContent:"space-around",padding:"0 8px"},children:[["5 yr","Warranty"],["Free","Fitting"],["48 hr","Dispatch"]].map(([i,l])=>n("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:1},children:[e("b",{style:{fontSize:"5.69cqw",letterSpacing:"0.02em"},children:i}),e("span",{style:{fontSize:"3.65cqw",color:t.mark2,letterSpacing:"0.1em",textTransform:"uppercase"},children:l})]},l))})},D={subscribe:n("div",{style:{...o,padding:13,display:"flex",flexDirection:"column"},children:[n("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[n("div",{style:{display:"flex",alignItems:"center",gap:6},children:[e(r,{w:8,h:8,r:2,tone:"accent"}),e(r,{w:38,h:7,r:3,tone:"dark"}),e(r,{w:16,h:7,r:3,tone:"accent"})]}),e(r,{w:38,h:4,r:2,tone:"soft"})]}),e("div",{style:{height:1,background:c.line,marginBottom:10}}),n("div",{style:{flex:1,display:"flex",gap:10,border:`1px solid ${c.line}`,borderRadius:7,padding:10},children:[n("div",{style:{flex:1.1,display:"flex",flexDirection:"column",justifyContent:"center",gap:5},children:[e(r,{w:"46%",h:3,r:2,tone:"accent"}),e(r,{w:"84%",h:8,r:4,tone:"dark"}),e(r,{w:"56%",h:8,r:4,tone:"accent"}),e(r,{w:"96%",h:3,r:2,tone:"soft",style:{marginTop:2}}),n("div",{style:{display:"flex",gap:5,marginTop:4},children:[e("div",{style:{flex:1,height:13,borderRadius:5,border:`1px solid ${c.line}`,background:c.block}}),e(r,{w:34,h:13,r:5,tone:"accent"})]})]}),n("div",{style:{flex:1,background:c.block,borderRadius:6,padding:8,display:"flex",flexDirection:"column",gap:6},children:[e(r,{w:"52%",h:4,r:2,tone:"accent"}),Array.from({length:3}).map((i,l)=>n("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6,borderTop:l?`1px solid ${c.line}`:"none",paddingTop:l?4:0},children:[e(r,{w:34,h:4,r:2,tone:"dark"}),e(r,{w:16,h:3,r:2,tone:"soft"})]},l))]})]})]}),split:n("div",{style:{...o,display:"flex"},children:[e("div",{style:{width:"44%",background:v}}),n("div",{style:{flex:1,padding:15,display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[e(r,{w:"44%",h:5,r:3,tone:"accent"}),e(r,{w:"88%",h:8,r:4,tone:"dark"}),e(r,{w:"70%",h:8,r:4,tone:"dark"}),e(r,{w:"94%",h:5,r:2,tone:"soft",style:{marginTop:2}}),e(r,{w:"80%",h:5,r:2,tone:"soft"}),e(r,{w:"40%",h:13,r:6,tone:"accent",style:{marginTop:5}})]})]}),sectionheader:n(z,{children:[e(r,{w:"18%",h:6,r:3,tone:"accent",style:{position:"absolute",top:15,right:16}}),n("div",{style:{...o,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:10},children:[n("div",{style:{display:"flex",alignItems:"center",gap:9},children:[e(r,{w:16,h:16,r:4,tone:"accent"}),e(r,{w:"20%",h:9,r:4,tone:"dark"})]}),e(r,{w:"62%",h:10,r:5,tone:"dark"}),e(r,{w:"42%",h:6,r:3,tone:"soft"})]})]}),header:e("div",{style:{...o,padding:14,display:"flex",flexDirection:"column",justifyContent:"center"},children:n("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[e(r,{w:"22%",h:12,r:4,tone:"dark"}),n("div",{style:{display:"flex",gap:9,alignItems:"center"},children:[e(r,{w:26,h:6,r:3,tone:"soft"}),e(r,{w:26,h:6,r:3,tone:"soft"}),e(r,{w:26,h:6,r:3,tone:"soft"}),e(r,{w:18,h:14,r:5,tone:"accent"})]})]})}),footer:n("div",{style:{...o,padding:15,display:"flex",flexDirection:"column",justifyContent:"center",gap:12},children:[n("div",{style:{display:"flex",gap:14},children:[n("div",{style:{flex:1.4,display:"flex",flexDirection:"column",gap:6},children:[e(r,{w:"60%",h:9,r:4,tone:"dark"}),e(r,{w:"90%",h:5,r:2,tone:"soft"}),e(r,{w:"70%",h:5,r:2,tone:"soft"})]}),[0,1].map(i=>n("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:6},children:[e(r,{w:"50%",h:6,r:3,tone:"dark"}),e(r,{w:"80%",h:5,r:2,tone:"soft"}),e(r,{w:"66%",h:5,r:2,tone:"soft"})]},i))]}),e("div",{style:{height:1,background:c.line}}),n("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e(r,{w:"30%",h:5,r:2,tone:"soft"}),e(r,{w:"16%",h:5,r:2,tone:"soft"})]})]}),grid:e("div",{style:{...o,padding:14,display:"grid",gridTemplateColumns:"1fr 1fr",gridTemplateRows:"1fr 1fr",gap:9},children:Array.from({length:4}).map((i,l)=>e("div",{style:{borderRadius:6,background:c.block}},l))}),blanksection:e("div",{style:{...o,padding:14,display:"flex"},children:n("div",{style:{flex:1,border:`1px dashed ${c.line}`,borderRadius:7,display:"flex",alignItems:"center",justifyContent:"center",position:"relative"},children:[e(r,{w:14,h:2,r:1,tone:"tint"}),e(r,{w:2,h:14,r:1,tone:"tint",style:{position:"absolute"}})]})}),spacer:n("div",{style:{...o,padding:14,display:"flex",flexDirection:"column",justifyContent:"space-between"},children:[e(r,{w:"100%",h:6,r:3,tone:"soft"}),e(r,{w:16,h:22,r:3,tone:"block",style:{alignSelf:"center"}}),e(r,{w:"100%",h:6,r:3,tone:"soft"})]}),divider:e("div",{style:{...o,padding:14,display:"flex",alignItems:"center"},children:e(r,{w:"100%",h:3,r:2,tone:"dark"})}),customhtml:n("div",{style:{...o,display:"flex",alignItems:"center",justifyContent:"center",gap:8,background:v},children:[e(r,{w:5,h:16,r:2,tone:"dark",style:{transform:"skewX(-14deg)"}}),e(r,{w:16,h:10,r:3,tone:"accent"}),e(r,{w:5,h:16,r:2,tone:"dark",style:{transform:"skewX(14deg)"}})]}),heading:e("div",{style:{...o,padding:14,display:"flex",alignItems:"center"},children:e(r,{w:"64%",h:13,r:4,tone:"dark"})}),text:n("div",{style:{...o,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[e(r,{w:"100%",h:6,r:3,tone:"soft"}),e(r,{w:"96%",h:6,r:3,tone:"soft"}),e(r,{w:"100%",h:6,r:3,tone:"soft"}),e(r,{w:"58%",h:6,r:3,tone:"soft"})]}),image:e("div",{style:{position:"absolute",inset:14,borderRadius:7,background:v}}),button:e("div",{style:{...o,display:"flex",alignItems:"center",justifyContent:"center"},children:e(r,{w:"34%",h:16,r:8,tone:"accent"})}),menu:n("div",{style:{...o,padding:"14px 22%",display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[e(r,{w:"48%",h:7,r:3,tone:"dark"}),e(r,{w:"82%",h:5,r:2,tone:"soft"}),e(r,{w:"66%",h:5,r:2,tone:"soft"}),e(r,{w:"74%",h:5,r:2,tone:"soft"}),e(r,{w:"58%",h:5,r:2,tone:"soft"})]}),emailform:n("div",{style:{...o,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:9},children:[e(r,{w:"56%",h:8,r:3,tone:"dark"}),n("div",{style:{display:"flex",gap:6},children:[e("div",{style:{flex:1,height:16,borderRadius:5,border:`1px solid ${c.line}`}}),e(r,{w:"30%",h:16,r:5,tone:"accent"})]})]}),sociallogos:e("div",{style:{...o,display:"flex",alignItems:"center",justifyContent:"center",gap:9},children:[0,1,2,3].map(i=>e(r,{w:16,h:16,r:8,tone:"dark"},i))}),search:e("div",{style:{...o,padding:"0 18%",display:"flex",alignItems:"center"},children:n("div",{style:{flex:1,height:22,borderRadius:11,border:`1px solid ${c.line}`,display:"flex",alignItems:"center",gap:7,padding:"0 9px"},children:[e("div",{style:{width:9,height:9,borderRadius:5,border:`2px solid ${c.dark}`}}),e(r,{w:"46%",h:5,r:2,tone:"soft"})]})}),cart:n("div",{style:{...o,display:"flex",alignItems:"center",justifyContent:"center",gap:7},children:[e("div",{style:{width:22,height:18,borderRadius:"3px 3px 6px 6px",border:`2px solid ${c.dark}`}}),e("div",{style:{padding:"2px 6px",borderRadius:6,border:`1.5px solid ${c.dark}`},children:e(r,{w:7,h:7,r:2,tone:"dark"})})]}),countryswitch:n("div",{style:{...o,padding:14,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:5},children:[n("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px",border:`1px solid ${c.line}`},children:[e(r,{w:22,h:6,r:2,tone:"dark"}),e(r,{w:6,h:4,r:1,tone:"soft"})]}),n("div",{style:{width:"46%",display:"flex",flexDirection:"column",gap:4,padding:6,border:`1px solid ${c.line}`},children:[e(r,{w:"80%",h:4,r:2,tone:"accent"}),e(r,{w:"64%",h:4,r:2,tone:"soft"}),e(r,{w:"72%",h:4,r:2,tone:"soft"})]})]}),legalline:n("div",{style:{...o,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:9},children:[e("div",{style:{height:1,background:c.line}}),n("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e(r,{w:"38%",h:5,r:2,tone:"soft"}),n("div",{style:{display:"flex",gap:5},children:[e(r,{w:14,h:5,r:2,tone:"soft"}),e(r,{w:14,h:5,r:2,tone:"soft"}),e(r,{w:14,h:5,r:2,tone:"soft"})]})]})]}),fallback:e("div",{style:{position:"absolute",inset:14,borderRadius:8,background:c.block}})};function j({type:i}){const l=T[i]??"",d=W[l]??D[l]??D.fallback;return e("div",{className:"sf-thumb","aria-hidden":"true",style:{position:"absolute",inset:0,background:"var(--sf-thumb-thumb-bg)",pointerEvents:"none",containerType:"inline-size"},children:d})}export{j as default};
@@ -0,0 +1,2 @@
1
+ import type { BlockFields } from "../../block-types.js";
2
+ export declare const CountdownFields: BlockFields;
@@ -0,0 +1 @@
1
+ import{jsx as o}from"react/jsx-runtime";import{ClockIcon as n,TagIcon as r}from"efficient-easel/icons";import{dateTime as i,text as t,toggle as s}from"../../../controls.js";import{COUNTDOWN_DEFAULTS as e}from"./render.js";const x={fields:{title:t("Heading",e.title),zeroText:t("At zero",e.zeroText),endsAt:i("Ends",o(n,{}),"In your own time zone. Every visitor counts down to the same moment."),showUnits:s("Unit labels",!0,o(r,{}))}};export{x as CountdownFields};
@@ -0,0 +1,6 @@
1
+ import type { BlockRender } from "../../block-types.js";
2
+ export declare const COUNTDOWN_DEFAULTS: {
3
+ title: string;
4
+ zeroText: string;
5
+ };
6
+ export declare const CountdownRender: BlockRender;
@@ -0,0 +1 @@
1
+ import{jsx as r}from"react/jsx-runtime";import i from"../../../../../components/Countdown.js";const d={title:"Back online in",zeroText:"Almost done. Back very soon."},a={label:"Countdown",defaultProps:{...d,endsAt:"",showUnits:!0},render:({title:o,zeroText:t,endsAt:e,showUnits:n,puck:s})=>r(i,{title:o,zeroText:t,endsAt:e,showUnits:n,editing:s?.isEditing})};export{d as COUNTDOWN_DEFAULTS,a as CountdownRender};
@@ -1,2 +1,2 @@
1
- export declare const generalBlocks: Record<"Text" | "Divider" | "Flex" | "LogoBlock" | "Hero" | "HeroSingle" | "IntroBleed" | "SpecStrip" | "ProcessSteps" | "OrderSummary" | "PaymentBadges" | "Manifesto" | "Timeline" | "TimelineTrack" | "Footprint" | "Prose" | "ParagraphsA" | "Split" | "Cards" | "KeyFeatures" | "Stats" | "StatsParagraph" | "Chart" | "Mockup" | "Testimonials" | "Logos" | "Banner" | "TitleWithButtons" | "Ticker" | "Masthead" | "FeaturedCover" | "LongRead" | "Series" | "Breadcrumb" | "CategoryBar" | "DocTabs" | "DocMasthead" | "DocBody" | "DocMetaCards" | "FAQ" | "ContactLocations" | "SectionHeader" | "Spacer" | "CustomHTML" | "Grid" | "Heading" | "Eyebrow" | "ImageBlock" | "ButtonBlock" | "PostCard" | "HeroSlide" | "HeroGroup" | "Integrations", import("efficient-easel/blocks").ComponentConfig<any, any, Omit<import("efficient-easel/blocks").ComponentData<any, string, Record<string, import("efficient-easel/blocks").DefaultComponentProps>>, "type">>>;
2
- export declare const assembleGeneralBlocks: () => Record<"Text" | "Divider" | "Flex" | "LogoBlock" | "Hero" | "HeroSingle" | "IntroBleed" | "SpecStrip" | "ProcessSteps" | "OrderSummary" | "PaymentBadges" | "Manifesto" | "Timeline" | "TimelineTrack" | "Footprint" | "Prose" | "ParagraphsA" | "Split" | "Cards" | "KeyFeatures" | "Stats" | "StatsParagraph" | "Chart" | "Mockup" | "Testimonials" | "Logos" | "Banner" | "TitleWithButtons" | "Ticker" | "Masthead" | "FeaturedCover" | "LongRead" | "Series" | "Breadcrumb" | "CategoryBar" | "DocTabs" | "DocMasthead" | "DocBody" | "DocMetaCards" | "FAQ" | "ContactLocations" | "SectionHeader" | "Spacer" | "CustomHTML" | "Grid" | "Heading" | "Eyebrow" | "ImageBlock" | "ButtonBlock" | "PostCard" | "HeroSlide" | "HeroGroup" | "Integrations", import("efficient-easel/blocks").ComponentConfig<any, any, Omit<import("efficient-easel/blocks").ComponentData<any, string, Record<string, import("efficient-easel/blocks").DefaultComponentProps>>, "type">>>;
1
+ export declare const generalBlocks: Record<"Text" | "Divider" | "Flex" | "LogoBlock" | "Hero" | "HeroSingle" | "IntroBleed" | "SpecStrip" | "ProcessSteps" | "OrderSummary" | "PaymentBadges" | "Manifesto" | "Timeline" | "TimelineTrack" | "Footprint" | "Prose" | "ParagraphsA" | "Split" | "Cards" | "KeyFeatures" | "Stats" | "StatsParagraph" | "Chart" | "Mockup" | "Testimonials" | "Logos" | "Banner" | "TitleWithButtons" | "Ticker" | "Countdown" | "Masthead" | "FeaturedCover" | "LongRead" | "Series" | "Breadcrumb" | "CategoryBar" | "DocTabs" | "DocMasthead" | "DocBody" | "DocMetaCards" | "FAQ" | "ContactLocations" | "SectionHeader" | "Spacer" | "CustomHTML" | "Grid" | "Heading" | "Eyebrow" | "ImageBlock" | "ButtonBlock" | "PostCard" | "HeroSlide" | "HeroGroup" | "Integrations", import("efficient-easel/blocks").ComponentConfig<any, any, Omit<import("efficient-easel/blocks").ComponentData<any, string, Record<string, import("efficient-easel/blocks").DefaultComponentProps>>, "type">>>;
2
+ export declare const assembleGeneralBlocks: () => Record<"Text" | "Divider" | "Flex" | "LogoBlock" | "Hero" | "HeroSingle" | "IntroBleed" | "SpecStrip" | "ProcessSteps" | "OrderSummary" | "PaymentBadges" | "Manifesto" | "Timeline" | "TimelineTrack" | "Footprint" | "Prose" | "ParagraphsA" | "Split" | "Cards" | "KeyFeatures" | "Stats" | "StatsParagraph" | "Chart" | "Mockup" | "Testimonials" | "Logos" | "Banner" | "TitleWithButtons" | "Ticker" | "Countdown" | "Masthead" | "FeaturedCover" | "LongRead" | "Series" | "Breadcrumb" | "CategoryBar" | "DocTabs" | "DocMasthead" | "DocBody" | "DocMetaCards" | "FAQ" | "ContactLocations" | "SectionHeader" | "Spacer" | "CustomHTML" | "Grid" | "Heading" | "Eyebrow" | "ImageBlock" | "ButtonBlock" | "PostCard" | "HeroSlide" | "HeroGroup" | "Integrations", import("efficient-easel/blocks").ComponentConfig<any, any, Omit<import("efficient-easel/blocks").ComponentData<any, string, Record<string, import("efficient-easel/blocks").DefaultComponentProps>>, "type">>>;
@@ -1 +1 @@
1
- import{assembleBlocks as o}from"../block-types.js";import{BannerFields as i}from"./Banner/fields.js";import{BreadcrumbFields as m}from"./Breadcrumb/fields.js";import{ButtonBlockFields as t}from"./ButtonBlock/fields.js";import{CardsFields as s}from"./Cards/fields.js";import{CategoryBarFields as d}from"./CategoryBar/fields.js";import{ChartFields as l}from"./Chart/fields.js";import{ContactLocationsFields as a}from"./ContactLocations/fields.js";import{CustomHTMLFields as p}from"./CustomHTML/fields.js";import{DividerFields as F}from"./Divider/fields.js";import{DocBodyFields as f}from"./DocBody/fields.js";import{DocMastheadFields as n}from"./DocMasthead/fields.js";import{DocMetaCardsFields as c}from"./DocMetaCards/fields.js";import{DocTabsFields as S}from"./DocTabs/fields.js";import{EyebrowFields as B}from"./Eyebrow/fields.js";import{FAQFields as g}from"./FAQ/fields.js";import{FeaturedCoverFields as u}from"./FeaturedCover/fields.js";import{FlexFields as T}from"./Flex/fields.js";import{FootprintFields as C}from"./Footprint/fields.js";import{GridFields as k}from"./Grid/fields.js";import{HeadingFields as H}from"./Heading/fields.js";import{HeroFields as L}from"./Hero/fields.js";import{HeroGroupFields as h}from"./HeroGroup/fields.js";import{HeroSingleFields as y}from"./HeroSingle/fields.js";import{HeroSlideFields as D}from"./HeroSlide/fields.js";import{ImageBlockFields as M}from"./ImageBlock/fields.js";import{IntegrationsFields as P}from"./Integrations/fields.js";import{IntroBleedFields as E}from"./IntroBleed/fields.js";import{KeyFeaturesFields as b}from"./KeyFeatures/fields.js";import{LogoBlockFields as G}from"./LogoBlock/fields.js";import{LogosFields as I}from"./Logos/fields.js";import{LongReadFields as x}from"./LongRead/fields.js";import{ManifestoFields as A}from"./Manifesto/fields.js";import{MastheadFields as R}from"./Masthead/fields.js";import{MockupFields as v}from"./Mockup/fields.js";import{OrderSummaryFields as N}from"./OrderSummary/fields.js";import{ParagraphsAFields as w}from"./ParagraphsA/fields.js";import{PaymentBadgesFields as K}from"./PaymentBadges/fields.js";import{PostCardFields as O}from"./PostCard/fields.js";import{ProcessStepsFields as Q}from"./ProcessSteps/fields.js";import{ProseFields as W}from"./Prose/fields.js";import{SectionHeaderFields as _}from"./SectionHeader/fields.js";import{SeriesFields as j}from"./Series/fields.js";import{SpacerFields as q}from"./Spacer/fields.js";import{SpecStripFields as z}from"./SpecStrip/fields.js";import{SplitFields as J}from"./Split/fields.js";import{StatsFields as U}from"./Stats/fields.js";import{StatsParagraphFields as V}from"./StatsParagraph/fields.js";import{TestimonialsFields as X}from"./Testimonials/fields.js";import{TextFields as Y}from"./Text/fields.js";import{TickerFields as Z}from"./Ticker/fields.js";import{TimelineFields as $}from"./Timeline/fields.js";import{TimelineTrackFields as oo}from"./TimelineTrack/fields.js";import{TitleWithButtonsFields as ro}from"./TitleWithButtons/fields.js";import{GENERAL_RENDERS as r}from"./renders.js";const e={Banner:i,Breadcrumb:m,ButtonBlock:t,Cards:s,CategoryBar:d,Chart:l,ContactLocations:a,CustomHTML:p,Divider:F,DocBody:f,DocMasthead:n,DocMetaCards:c,DocTabs:S,Eyebrow:B,FAQ:g,FeaturedCover:u,Flex:T,Footprint:C,Grid:k,Heading:H,Hero:L,HeroGroup:h,HeroSingle:y,HeroSlide:D,ImageBlock:M,Integrations:P,IntroBleed:E,KeyFeatures:b,LogoBlock:G,Logos:I,LongRead:x,Manifesto:A,Masthead:R,Mockup:v,OrderSummary:N,ParagraphsA:w,PaymentBadges:K,PostCard:O,ProcessSteps:Q,Prose:W,SectionHeader:_,Series:j,Spacer:q,SpecStrip:z,Split:J,Stats:U,StatsParagraph:V,Testimonials:X,Text:Y,Ticker:Z,Timeline:$,TimelineTrack:oo,TitleWithButtons:ro},mr=o(r,e),tr=()=>o(r,e);export{tr as assembleGeneralBlocks,mr as generalBlocks};
1
+ import{assembleBlocks as o}from"../block-types.js";import{BannerFields as i}from"./Banner/fields.js";import{BreadcrumbFields as t}from"./Breadcrumb/fields.js";import{ButtonBlockFields as m}from"./ButtonBlock/fields.js";import{CardsFields as s}from"./Cards/fields.js";import{CategoryBarFields as d}from"./CategoryBar/fields.js";import{ChartFields as l}from"./Chart/fields.js";import{ContactLocationsFields as a}from"./ContactLocations/fields.js";import{CountdownFields as p}from"./Countdown/fields.js";import{CustomHTMLFields as F}from"./CustomHTML/fields.js";import{DividerFields as f}from"./Divider/fields.js";import{DocBodyFields as n}from"./DocBody/fields.js";import{DocMastheadFields as c}from"./DocMasthead/fields.js";import{DocMetaCardsFields as S}from"./DocMetaCards/fields.js";import{DocTabsFields as B}from"./DocTabs/fields.js";import{EyebrowFields as g}from"./Eyebrow/fields.js";import{FAQFields as u}from"./FAQ/fields.js";import{FeaturedCoverFields as C}from"./FeaturedCover/fields.js";import{FlexFields as T}from"./Flex/fields.js";import{FootprintFields as k}from"./Footprint/fields.js";import{GridFields as H}from"./Grid/fields.js";import{HeadingFields as L}from"./Heading/fields.js";import{HeroFields as h}from"./Hero/fields.js";import{HeroGroupFields as y}from"./HeroGroup/fields.js";import{HeroSingleFields as D}from"./HeroSingle/fields.js";import{HeroSlideFields as M}from"./HeroSlide/fields.js";import{ImageBlockFields as P}from"./ImageBlock/fields.js";import{IntegrationsFields as E}from"./Integrations/fields.js";import{IntroBleedFields as b}from"./IntroBleed/fields.js";import{KeyFeaturesFields as G}from"./KeyFeatures/fields.js";import{LogoBlockFields as I}from"./LogoBlock/fields.js";import{LogosFields as x}from"./Logos/fields.js";import{LongReadFields as A}from"./LongRead/fields.js";import{ManifestoFields as R}from"./Manifesto/fields.js";import{MastheadFields as v}from"./Masthead/fields.js";import{MockupFields as w}from"./Mockup/fields.js";import{OrderSummaryFields as N}from"./OrderSummary/fields.js";import{ParagraphsAFields as K}from"./ParagraphsA/fields.js";import{PaymentBadgesFields as O}from"./PaymentBadges/fields.js";import{PostCardFields as Q}from"./PostCard/fields.js";import{ProcessStepsFields as W}from"./ProcessSteps/fields.js";import{ProseFields as _}from"./Prose/fields.js";import{SectionHeaderFields as j}from"./SectionHeader/fields.js";import{SeriesFields as q}from"./Series/fields.js";import{SpacerFields as z}from"./Spacer/fields.js";import{SpecStripFields as J}from"./SpecStrip/fields.js";import{SplitFields as U}from"./Split/fields.js";import{StatsFields as V}from"./Stats/fields.js";import{StatsParagraphFields as X}from"./StatsParagraph/fields.js";import{TestimonialsFields as Y}from"./Testimonials/fields.js";import{TextFields as Z}from"./Text/fields.js";import{TickerFields as $}from"./Ticker/fields.js";import{TimelineFields as oo}from"./Timeline/fields.js";import{TimelineTrackFields as ro}from"./TimelineTrack/fields.js";import{TitleWithButtonsFields as eo}from"./TitleWithButtons/fields.js";import{GENERAL_RENDERS as r}from"./renders.js";const e={Banner:i,Breadcrumb:t,ButtonBlock:m,Cards:s,CategoryBar:d,Chart:l,ContactLocations:a,Countdown:p,CustomHTML:F,Divider:f,DocBody:n,DocMasthead:c,DocMetaCards:S,DocTabs:B,Eyebrow:g,FAQ:u,FeaturedCover:C,Flex:T,Footprint:k,Grid:H,Heading:L,Hero:h,HeroGroup:y,HeroSingle:D,HeroSlide:M,ImageBlock:P,Integrations:E,IntroBleed:b,KeyFeatures:G,LogoBlock:I,Logos:x,LongRead:A,Manifesto:R,Masthead:v,Mockup:w,OrderSummary:N,ParagraphsA:K,PaymentBadges:O,PostCard:Q,ProcessSteps:W,Prose:_,SectionHeader:j,Series:q,Spacer:z,SpecStrip:J,Split:U,Stats:V,StatsParagraph:X,Testimonials:Y,Text:Z,Ticker:$,Timeline:oo,TimelineTrack:ro,TitleWithButtons:eo},sr=o(r,e),dr=()=>o(r,e);export{dr as assembleGeneralBlocks,sr as generalBlocks};
@@ -27,6 +27,7 @@ export declare const GENERAL_RENDERS: {
27
27
  ImageBlock: BlockRender;
28
28
  Integrations: BlockRender;
29
29
  IntroBleed: BlockRender;
30
+ Countdown: BlockRender;
30
31
  KeyFeatures: BlockRender;
31
32
  LogoBlock: BlockRender;
32
33
  Logos: BlockRender;
@@ -1 +1 @@
1
- import{BannerRender as r}from"./Banner/render.js";import{BreadcrumbRender as e}from"./Breadcrumb/render.js";import{ButtonBlockRender as o}from"./ButtonBlock/render.js";import{CardsRender as t}from"./Cards/render.js";import{CategoryBarRender as m}from"./CategoryBar/render.js";import{ChartRender as i}from"./Chart/render.js";import{ContactLocationsRender as n}from"./ContactLocations/render.js";import{CustomHTMLRender as d}from"./CustomHTML/render.js";import{DividerRender as a}from"./Divider/render.js";import{DocBodyRender as p}from"./DocBody/render.js";import{DocMastheadRender as R}from"./DocMasthead/render.js";import{DocMetaCardsRender as f}from"./DocMetaCards/render.js";import{DocTabsRender as s}from"./DocTabs/render.js";import{EyebrowRender as c}from"./Eyebrow/render.js";import{FAQRender as S}from"./FAQ/render.js";import{FeaturedCoverRender as l}from"./FeaturedCover/render.js";import{FlexRender as g}from"./Flex/render.js";import{FootprintRender as B}from"./Footprint/render.js";import{GridRender as u}from"./Grid/render.js";import{HeadingRender as T}from"./Heading/render.js";import{HeroRender as C}from"./Hero/render.js";import{HeroGroupRender as H}from"./HeroGroup/render.js";import{HeroSingleRender as h}from"./HeroSingle/render.js";import{HeroSlideRender as k}from"./HeroSlide/render.js";import{ImageBlockRender as y}from"./ImageBlock/render.js";import{IntegrationsRender as M}from"./Integrations/render.js";import{IntroBleedRender as P}from"./IntroBleed/render.js";import{KeyFeaturesRender as D}from"./KeyFeatures/render.js";import{LogoBlockRender as L}from"./LogoBlock/render.js";import{LogosRender as F}from"./Logos/render.js";import{LongReadRender as b}from"./LongRead/render.js";import{ManifestoRender as E}from"./Manifesto/render.js";import{MastheadRender as I}from"./Masthead/render.js";import{MockupRender as x}from"./Mockup/render.js";import{OrderSummaryRender as A}from"./OrderSummary/render.js";import{ParagraphsARender as G}from"./ParagraphsA/render.js";import{PaymentBadgesRender as v}from"./PaymentBadges/render.js";import{PostCardRender as w}from"./PostCard/render.js";import{ProcessStepsRender as K}from"./ProcessSteps/render.js";import{ProseRender as N}from"./Prose/render.js";import{SectionHeaderRender as O}from"./SectionHeader/render.js";import{SeriesRender as Q}from"./Series/render.js";import{SpacerRender as W}from"./Spacer/render.js";import{SpecStripRender as _}from"./SpecStrip/render.js";import{SplitRender as j}from"./Split/render.js";import{StatsRender as q}from"./Stats/render.js";import{StatsParagraphRender as z}from"./StatsParagraph/render.js";import{TestimonialsRender as J}from"./Testimonials/render.js";import{TextRender as U}from"./Text/render.js";import{TickerRender as V}from"./Ticker/render.js";import{TimelineRender as X}from"./Timeline/render.js";import{TimelineTrackRender as Y}from"./TimelineTrack/render.js";import{TitleWithButtonsRender as Z}from"./TitleWithButtons/render.js";const Zr={Banner:r,Breadcrumb:e,ButtonBlock:o,Cards:t,CategoryBar:m,Chart:i,ContactLocations:n,CustomHTML:d,Divider:a,DocBody:p,DocMasthead:R,DocMetaCards:f,DocTabs:s,Eyebrow:c,FAQ:S,FeaturedCover:l,Flex:g,Footprint:B,Grid:u,Heading:T,Hero:C,HeroGroup:H,HeroSingle:h,HeroSlide:k,ImageBlock:y,Integrations:M,IntroBleed:P,KeyFeatures:D,LogoBlock:L,Logos:F,LongRead:b,Manifesto:E,Masthead:I,Mockup:x,OrderSummary:A,ParagraphsA:G,PaymentBadges:v,PostCard:w,ProcessSteps:K,Prose:N,SectionHeader:O,Series:Q,Spacer:W,SpecStrip:_,Split:j,Stats:q,StatsParagraph:z,Testimonials:J,Text:U,Ticker:V,Timeline:X,TimelineTrack:Y,TitleWithButtons:Z};export{Zr as GENERAL_RENDERS};
1
+ import{BannerRender as r}from"./Banner/render.js";import{BreadcrumbRender as e}from"./Breadcrumb/render.js";import{ButtonBlockRender as o}from"./ButtonBlock/render.js";import{CardsRender as t}from"./Cards/render.js";import{CategoryBarRender as m}from"./CategoryBar/render.js";import{ChartRender as i}from"./Chart/render.js";import{ContactLocationsRender as n}from"./ContactLocations/render.js";import{CustomHTMLRender as d}from"./CustomHTML/render.js";import{DividerRender as a}from"./Divider/render.js";import{DocBodyRender as p}from"./DocBody/render.js";import{DocMastheadRender as R}from"./DocMasthead/render.js";import{DocMetaCardsRender as f}from"./DocMetaCards/render.js";import{DocTabsRender as s}from"./DocTabs/render.js";import{EyebrowRender as c}from"./Eyebrow/render.js";import{FAQRender as S}from"./FAQ/render.js";import{FeaturedCoverRender as l}from"./FeaturedCover/render.js";import{FlexRender as g}from"./Flex/render.js";import{FootprintRender as B}from"./Footprint/render.js";import{GridRender as u}from"./Grid/render.js";import{HeadingRender as C}from"./Heading/render.js";import{HeroRender as T}from"./Hero/render.js";import{HeroGroupRender as H}from"./HeroGroup/render.js";import{HeroSingleRender as h}from"./HeroSingle/render.js";import{HeroSlideRender as k}from"./HeroSlide/render.js";import{ImageBlockRender as y}from"./ImageBlock/render.js";import{IntegrationsRender as M}from"./Integrations/render.js";import{IntroBleedRender as P}from"./IntroBleed/render.js";import{CountdownRender as D}from"./Countdown/render.js";import{KeyFeaturesRender as L}from"./KeyFeatures/render.js";import{LogoBlockRender as F}from"./LogoBlock/render.js";import{LogosRender as b}from"./Logos/render.js";import{LongReadRender as E}from"./LongRead/render.js";import{ManifestoRender as I}from"./Manifesto/render.js";import{MastheadRender as x}from"./Masthead/render.js";import{MockupRender as A}from"./Mockup/render.js";import{OrderSummaryRender as G}from"./OrderSummary/render.js";import{ParagraphsARender as v}from"./ParagraphsA/render.js";import{PaymentBadgesRender as w}from"./PaymentBadges/render.js";import{PostCardRender as K}from"./PostCard/render.js";import{ProcessStepsRender as N}from"./ProcessSteps/render.js";import{ProseRender as O}from"./Prose/render.js";import{SectionHeaderRender as Q}from"./SectionHeader/render.js";import{SeriesRender as W}from"./Series/render.js";import{SpacerRender as _}from"./Spacer/render.js";import{SpecStripRender as j}from"./SpecStrip/render.js";import{SplitRender as q}from"./Split/render.js";import{StatsRender as z}from"./Stats/render.js";import{StatsParagraphRender as J}from"./StatsParagraph/render.js";import{TestimonialsRender as U}from"./Testimonials/render.js";import{TextRender as V}from"./Text/render.js";import{TickerRender as X}from"./Ticker/render.js";import{TimelineRender as Y}from"./Timeline/render.js";import{TimelineTrackRender as Z}from"./TimelineTrack/render.js";import{TitleWithButtonsRender as $}from"./TitleWithButtons/render.js";const re={Banner:r,Breadcrumb:e,ButtonBlock:o,Cards:t,CategoryBar:m,Chart:i,ContactLocations:n,CustomHTML:d,Divider:a,DocBody:p,DocMasthead:R,DocMetaCards:f,DocTabs:s,Eyebrow:c,FAQ:S,FeaturedCover:l,Flex:g,Footprint:B,Grid:u,Heading:C,Hero:T,HeroGroup:H,HeroSingle:h,HeroSlide:k,ImageBlock:y,Integrations:M,IntroBleed:P,Countdown:D,KeyFeatures:L,LogoBlock:F,Logos:b,LongRead:E,Manifesto:I,Masthead:x,Mockup:A,OrderSummary:G,ParagraphsA:v,PaymentBadges:w,PostCard:K,ProcessSteps:N,Prose:O,SectionHeader:Q,Series:W,Spacer:_,SpecStrip:j,Split:q,Stats:z,StatsParagraph:J,Testimonials:U,Text:V,Ticker:X,Timeline:Y,TimelineTrack:Z,TitleWithButtons:$};export{re as GENERAL_RENDERS};
@@ -192,6 +192,7 @@ export declare function spacingFields(opts?: {
192
192
  export declare function widthField(defaultMode: WidthMode, modes?: readonly WidthMode[], inheritable?: boolean): Record<string, CustomField<undefined> | CustomField<string> | CustomField<number>>;
193
193
  export declare function heightFields(): Record<string, CustomField<undefined> | CustomField<string> | CustomField<number>>;
194
194
  export declare function anchorFields(): Record<string, CustomField<undefined> | CustomField<HidableValue>>;
195
+ export declare function dateTime(label: string, icon?: ReactNode, hint?: string): CustomField<string>;
195
196
  export declare function toggle(label: string, fallback: boolean, icon?: ReactNode): CustomField<boolean>;
196
197
  export declare function pageBackgroundField(): CustomField<string>;
197
198
  export declare function checkbox(label: string, fallback: boolean): CustomField<boolean>;
@@ -1 +1 @@
1
- "use client";import{jsx as r,jsxs as y,Fragment as E}from"react/jsx-runtime";import{cloneElement as qe,useId as Je,useRef as q,useState as ue}from"react";import{useEasel as N}from"efficient-easel/easel";import{readHidable as de,hidableText as pe}from"./hidable.js";import{FOCAL_DEFAULT as fe}from"../image-focus.js";import{FOLD_FIELD_MARKER as J,LINK_FIELD_MARKER as he,MEDIA_FIELD_MARKER as me,SCAFFOLD_FIELD_MARKER as ge,TEXT_FIELD_MARKER as T,foldMetaOf as Z,textFieldIdentifier as Ze}from"./field-markers.js";import Qe from"../../components/ApplyCornersToSiblings.js";import{CARD_IMAGE_RADIUS_STEP as et,CORNER_RADIUS_MAX as W,CORNER_RADIUS_MIN as B}from"../content/card-image-shape.js";import{IMAGE_CORNER_STEP as tt,IMAGE_CORNERS_LABEL as nt}from"../content/image-corners.js";import{GRID_MAX_COLUMNS as ot}from"../content/grid-span.js";import{GALLERY_ACROSS_BUCKETS as rt,GALLERY_LAYOUTS as A,GALLERY_LAYOUT_KEYS as be}from"../content/gallery-layout.js";import{anchorSiblingsOf as it,HERO_GROUP_PLACEMENTS as lt,HERO_GROUP_PLACEMENT_DEFAULT as at,normalisePlacement as st,placementPoints as xe}from"../hero-group-placement.js";import ct from"../../components/KeepHint.js";import{AlignLeftIcon as ut,AlignSeparateIcon as dt,AnimationIcon as Ce,BackgroundIcon as pt,BlockSectionIcon as ft,CartIcon as ht,ColumnWidthsIcon as Se,ColumnsIcon as mt,CornerIcon as Ie,DirectionDownIcon as gt,DirectionLeftIcon as bt,DirectionRightIcon as xt,DirectionUpIcon as Ct,DollarIcon as St,FinishIcon as It,GapIcon as _e,GridIcon as _t,GroundIcon as yt,HashIcon as ye,ImageIcon as Et,LayoutIcon as Tt,ListIcon as Rt,LocationIcon as Q,PaddingBottomIcon as Lt,PaddingLeftIcon as vt,PaddingRightIcon as Ot,PaddingTopIcon as Nt,PageIcon as Ee,PhoneIcon as At,PlacementIcon as Ft,ProductSizeIcon as Pt,RotateIcon as wt,SquareIcon as kt,StylesIcon as Dt,TextLinesIcon as Ht,TypeIcon as Bt,WidthIcon as Gt,WrapIcon as Mt}from"efficient-easel/icons";import{FieldGlyph as Te}from"../../components/FieldGlyph.js";import{resolvePageBackground as $t}from"../content/page-background.js";import{CORNER_SIDES as F,CORNER_SIDE_POINTS as ee,CORNER_SIDES_LABEL as P,cornerSidesSummary as Re,hasOwnSectionCorners as Wt,normalizeCornerSides as U}from"../content/section-corners.js";import{hasOwnCardCorners as Ut}from"../content/card-corners.js";import{SECTION_MOTION_NONE as Kt,SECTION_MOTION_OPTIONS as Xt}from"../content/section-animation.js";import{enclosingSectionProps as Le}from"./enclosing-section.js";import{SettingsCorners as ve,SettingsDefaultReset as g,SettingsField as h,SettingsGroupHead as zt,SettingsGroupSub as Vt,SettingsPlacement as Yt,SettingsSegmented as jt,SettingsSwitch as qt}from"efficient-easel/panel";import{FieldSelect as Jt,ListField as Zt}from"efficient-easel/fields";import{Checkbox as Qt,Slider as en,Tooltip as K}from"efficient-shell/ui";import{ColourControl as Oe}from"./ColourControl.js";import Ne from"./MarkupToolbar.js";import{deviceField as R}from"./device-fields.js";import{noControlField as tn}from"./panel-no-control-mark.js";import{phoneKey as X,resolvePhoneValue as te}from"./phone-override.js";import{SuppressibleText as nn}from"./section-text-suppress.js";import{CARD_INDEX_OPTIONS as on,CARD_OUTLINE_OPTIONS as rn,DEFAULT_CARD_INDEX_FORMAT as ln,DEFAULT_CARD_OUTLINE as an}from"../sections/product-card-style.js";import{COVER_INDEX_OPTIONS as sn,DEFAULT_COVER_INDEX as cn}from"../sections/card-cover-index.js";import{SCALAR_TEXT_CONTROLS as un}from"./text-control-kinds.js";import dn from"../../components/ImageFocusRow.js";import pn from"../../components/MediaUploadField.js";import fn from"../../components/MultiSelectField.js";import hn from"../../components/SectionThemePicker.js";import mn from"../../components/SearchSelectField.js";import gn from"../../components/StorefrontLinkField.js";import Ae from"../../components/UiIcon.js";import{SECTION_PADDING as S}from"../content/section-padding.js";import{hasPhoneHeight as bn,resolveSectionMinHeight as xn}from"../content/section-min-height.js";import{VIEW_TIER_LABEL as ne}from"../content/view-tiers.js";import{SECTION_MIN_HEIGHT as Cn,SECTION_MIN_HEIGHT_GROUP_LABEL as G,SECTION_SCREEN_PCT as Sn}from"../content/section-min-height.js";import{CONTAINER_DIRECTION_LABEL as In,containerDirectionPoints as _n,resolveContainerDirection as Fe}from"../content/container-direction.js";import{BOX_ALIGN_POINTS as yn,BOX_BLOCK_SPACING_LABEL as En,BOX_BLOCK_SPACING_POINTS as Pe,BOX_JUSTIFY_POINTS as we,BOX_PHONE_ROW_LABEL as Tn,BOX_PHONE_ROW_MAX as Rn,BOX_PHONE_ROW_MIN as ke,BOX_SHARE_LABEL as De,BOX_SHARE_POINTS as oe,BOX_WRAP_LABEL as Ln,BOX_WRAP_POINTS as He}from"../content/box-layout.js";import{usePreviewHeader as z}from"../../components/PreviewHeaderContext.js";import{CONTAINER_GAP as re,CONTAINER_GAP_BUILT_IN as vn,GAP_FIELD_CONTAINER as On,hasOwnContainerGap as Nn,resolveContainerGap as An}from"../content/container-gap.js";import{CARD_IMAGE_BG_INHERIT as Fn,CARD_IMAGE_BG_OFF as Pn,CARD_IMAGE_BG_SWATCH_NAMES as wn,CARD_IMAGE_BG_SWATCHES as kn,isCardImageBackgroundInheriting as Dn,cardImageBackgroundChoice as Hn,THEME_CARD_IMAGE_BG as Bn}from"../content/card-image-background.js";import{SECTION_BG_INHERIT as Gn,SECTION_BG_SWATCHES as Mn,SECTION_BG_SWATCH_NAMES as $n,THEME_SECTION_BG as Wn,isSectionBackgroundInheriting as Un}from"../content/section-background.js";import{SECTION_THEME_GROUP_LABEL as Kn}from"../content/section-surface.js";import{TYPE_SIZE_FIXED as Xn,TYPE_SIZE_INHERIT as zn,isTypeSizeInheriting as Vn}from"../content/section-type-size.js";import{SECTION_WIDTH_CHOICES as Yn,WIDTH_CHOICE_LABEL as jn,WIDTH_INHERIT as qn,resolveWidth as Jn,sectionRunsFullWidth as Be}from"../content/section-width.js";import{useFoldHeadingLevel as Ge}from"./panel-heading-scope.js";import{withStyleKind as Zn}from"efficient-easel/style-clipboard";function M(e){for(const[t,n]of Object.entries(e))n&&typeof n=="object"&&!Z(n)&&Zn(n,`section:${t}`);return e}function Yr({children:e}){return r("div",{className:"sf-field-label",children:e})}function Me(){return null}function Qn(e){if(!e.trim())throw new Error("noGlyph() needs a reason naming the ruling that decided it.");return r(Me,{},e)}function eo(e){return e.type===Me}function V(e){return eo(e)?void 0:e}function w(e,t){return`${e} from ${t}`}function to(){const{appState:e}=N(i=>i),t=e.data.root?.props??{},{mode:n,pageWidth:o}=Jn(t,"full");return w(n==="page"?`${o}px`:n==="contained"?"Contained":"Full","the page")}function no(){const{blockGap:e}=z();return e===null?"this container's own spacing":w(`${e}px`,"Site styles")}function oo({inherited:e,onReset:t,label:n}){return r(g,{label:n,changed:!e,detail:no(),onReset:t})}function ro({inherited:e,onReset:t,label:n}){return r(g,{label:n,changed:!e,detail:to(),onReset:t})}function k({value:e,onChange:t,label:n,placeholder:o,hint:i,multiline:l,hideable:a=!0,markup:s=!0}){const{text:c,hidden:d}=de(e),f=q(null),u=q(null),p=_=>t(a?{text:_,hidden:d}:_),m=()=>t({text:c,hidden:!d}),b=a&&d,I=Je(),x=i?co(i)?r("span",{className:"sf-hint-keep sf-hint-while-typing",children:i}):r(ct,{children:i}):void 0;return r(h,{label:n,icon:r(Bt,{}),htmlFor:I,className:b?"is-hidden":void 0,hint:x,action:a?r(K,{content:d?`Show ${n} on the slide`:`Hide ${n} on the slide`,children:r("button",{type:"button",className:"sf-field-eye","aria-pressed":d,"aria-label":d?`Show ${n} on the slide`:`Hide ${n} on the slide`,onClick:m,children:d?r(Ae,{name:"eye-off",size:14}):r(Ae,{name:"eye",size:14})})}):void 0,children:y("div",{className:"sf-copybox",children:[s&&r(Ne,{target:l?u:f,value:c,onChange:p}),l?r("textarea",{id:I,ref:u,value:c,placeholder:o,onChange:_=>p(_.target.value)}):r("input",{id:I,ref:f,type:"text",value:c,placeholder:o,onChange:_=>p(_.target.value)})]})})}function jr(e,t){return{...e,[ge]:t}}function qr(e){const t=e[T];if(!t)throw new Error("withOffPage: the field holds no authored text");return{...e,[T]:{...t,offPage:!0}}}function Jr(e){return!e||typeof e!="object"?!1:e[T]?.offPage===!0}function Zr(e){const t=e[T];if(!t)throw new Error("withIdentifier: the field holds no authored text");return{...e,[T]:{...t,identifier:!0}}}import{TEXT_CONTROL_KINDS as tl,SCALAR_TEXT_CONTROLS as nl}from"./text-control-kinds.js";const io=new Set(un),D=(e,t)=>{const n={...t,[T]:e};if(!io.has(e.control))return n;const o=t.render;return{...tn(n,"authored-copy"),render:i=>r(nn,{name:i.name,children:o(i)})}},Qr="Everything else on this block comes from the linked post. Unlink it to edit by hand.",lo="Select a word, then press the highlighter.",ao="A short name so a link can jump straight to this section, like yoursite.com/page#about.",so=new Set([lo]),co=e=>so.has(e);function ei(e,t,n){return D({control:"text",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(k,{value:o,onChange:i,label:e,placeholder:t,hint:n})})}function ti(e,t,n){return D({control:"textarea",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(k,{value:o,onChange:i,label:e,placeholder:t,hint:n,multiline:!0})})}function uo(e,t,n){return D({control:"plainText",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(k,{value:o,onChange:i,label:e,placeholder:t,hint:n,hideable:!1,markup:!1})})}function ni(e,t,n){return D({control:"copyText",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(k,{value:o,onChange:i,label:e,placeholder:t,hint:n,hideable:!1})})}function oi(e){return{type:"custom",[he]:{label:e},render:({value:t,onChange:n})=>r(gn,{value:pe(t),onChange:n,label:e})}}function ri(e,t,n){return D({control:"plainTextarea",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(k,{value:o,onChange:i,label:e,placeholder:t,hint:n,multiline:!0,hideable:!1})})}const ii={Content:Ht,Style:Dt,Layout:Tt,Animation:Ce};function li(e,t){return e.includes("Content")?t!=="Content":null}function po({label:e}){return r(zt,{title:e,level:Ge(1)})}function fo({level:e,label:t}){return e===1?r(po,{label:t}):r(mo,{label:t})}function $e(e,t){return{type:"custom",[J]:{label:e,level:t},render:()=>r(fo,{level:t,label:e})}}function C(e){return $e(e,2)}function ai(e){return{type:"custom",render:()=>r(ho,{text:e})}}function ho({text:e}){return r("p",{className:"sf-note",children:e})}function si(e){return $e(e,1)}function ci(e){return Z(e)!==null&&e?.tabs!==void 0}const We=new Map;function ui(e,t){const n=`${e}\0${t?t.join(""):""}`,o=We.get(n)??{type:"custom",tabs:t,[J]:{label:e,level:1},bucket:e,marker:!0,render:()=>r(E,{})};return We.set(n,o),o}function mo({label:e}){return r(Vt,{title:e,level:Ge(2)})}function Ue({swatches:e,current:t,onPick:n,names:o}){const i=e.find(a=>a.toLowerCase()===t.toLowerCase()),l=(i?o?.[i]:void 0)??t;return y("div",{className:"sf-swatches",children:[e.map(a=>{const s=o?.[a]??a;return r(K,{content:s,children:r("button",{type:"button","aria-pressed":t.toLowerCase()===a.toLowerCase(),className:`sf-swatch ${t.toLowerCase()===a.toLowerCase()?"is-active":""}`,style:{background:a},onClick:()=>n(a),"aria-label":s})},a)}),r("span",{className:"sf-swatch-hex",children:l})]})}function di(e,t){return{type:"custom",render:({value:n,onChange:o})=>{const i=Un(n,t);return r(h,{label:e,icon:r(pt,{}),changed:!i,action:r(g,{label:e,changed:!i,detail:"the theme's section background",onReset:()=>o(Gn)}),children:Ue({swatches:Mn,current:i?Wn:n??t??"",onPick:o,names:$n})})}}}function go(e,t){return{type:"custom",render:({value:n,onChange:o})=>{const i=n,l=Dn(i,t);return r(h,{label:e,icon:r(yt,{}),changed:!l,action:r(g,{label:e,changed:!l,detail:"the theme's image stage",onReset:()=>o(Fn)}),children:Ue({swatches:kn,current:l?Bn:Hn(i,t),onPick:o,names:wn})})}}}function pi(e=n=>n,t){return M({_gSectionTheme:C(Kn),sectionAccent:{type:"custom",render:({value:n,onChange:o})=>r(hn,{value:e(n),onChange:o,followLabel:t})}})}function v({min:e,max:t,step:n,value:o,onChange:i,suffix:l="",readout:a=!0,notch:s,ariaLabel:c,disabled:d=!1}){const f=s!==void 0&&Number.isFinite(s)&&s>=e&&s<=t;return r("div",{className:f?"sf-slider has-notch":"sf-slider",style:f?{"--sf-notch":(s-e)/(t-e)}:void 0,children:r(en,{min:e,max:t,step:n,value:o,suffix:l||void 0,showInput:a,label:c,disabled:d,size:"sm",className:"sf-slider-track",onChange:u=>{u!==null&&u!==o&&i(u)}})})}function H(e,t,n,o,i,l,a="",s){return{type:"custom",render:c=>r(h,{label:e,icon:V(t),action:s?s("storedValue"in c?c.storedValue:c.value,c.onChange):void 0,children:v({min:n,max:o,step:i,value:typeof c.value=="number"?c.value:l,suffix:a,ariaLabel:e,onChange:c.onChange})})}}function Ke({min:e,max:t,step:n,px:o,label:i,onChange:l,disabled:a=!1}){const{cornerRadiusPx:s}=z();return r(E,{children:v({min:e,max:t,step:n,value:o??(typeof s=="number"?s:e),readout:!1,ariaLabel:i,disabled:a,onChange:l})})}function $(e,t){const{min:n,max:o,step:i=1,unsetLabel:l,hint:a,restAtSite:s=!1,restTrack:c,unsetMark:d}=t;return{type:"custom",render:({value:f,onChange:u})=>{const p=typeof f=="number"?f:null,m=p===null;return r(h,{label:e,value:m?d?void 0:l:`${p}px`,changed:!m,action:d?qe(d,{changed:!m,onReset:()=>u(null)}):r(g,{label:e,changed:!m,onReset:()=>u(null)}),hint:a,children:c?c({min:n,max:o,step:i,px:p,label:e,onChange:u}):s?r(Ke,{min:n,max:o,step:i,px:p,label:e,onChange:u}):v({min:n,max:o,step:i,value:p??n,readout:!1,ariaLabel:e,onChange:u})})}}}function fi(e){const t=H("Gap",r(_e,{}),re.min,re.max,re.step,vn[e],"px",(n,o)=>r(oo,{inherited:!Nn(e,n),onReset:()=>o(void 0),label:"Gap"}));return{type:"custom",[On]:e,render:n=>t.render({...n,value:An(e,n.value,n.field?.siteGap),storedValue:n.value,onChange:o=>n.onChange(o)})}}function bo(){return{type:"custom",render:({value:e,onChange:t})=>{const o=U(e)??[...F],i=o.length===F.length;return r(h,{label:P,icon:r(Ie,{}),value:Re(o),changed:!i,action:r(g,{label:P,changed:!i,onReset:()=>t(null)}),hint:"Corners left off stay square. The row above sets how round the others are.",children:r(_o,{value:o,onChange:l=>{const a=U(l)??[];t(a.length===F.length?null:a)}})})}}}function xo({label:e,changed:t=!1,onReset:n=()=>{}}){const{cornerRadiusPx:o}=z(),i=typeof o=="number"?`${o}px`:"not set";return r(g,{label:e,changed:t,detail:o==null?"the built-in corners":w(i,"Site styles"),onReset:n})}function Co(){return $("Corners",{min:B,max:W,unsetLabel:"Follows the site",unsetMark:r(xo,{label:"Corners"}),restTrack:e=>r(So,{...e}),hint:r(Io,{})})}const Xe="This section runs edge to edge, so its corners sit off the page. Set Width to Content width to use them.";function ie(){return Be(Y())}function So(e){return r(Ke,{...e,disabled:ie()})}function Io(){return r(E,{children:ie()?Xe:"Follows Site styles ▸ Basics ▸ Corners until you set a number here."})}function _o({value:e,onChange:t}){const n=ie();return r(ve,{label:P,value:e,corners:n?ee.map(o=>({...o,disabled:!0,title:Xe})):ee,onChange:t})}function hi(){return M({_gShape:C("Shape"),sectionCorners:Co(),sectionCornerSides:bo()})}function mi(){return{_gMotion:C("Motion"),sectionAnimation:ce("Entrance",r(Ce,{}),[...Xt],Kt)}}function le(){let e=null;try{const{appState:t,selectedItem:n}=N(i=>i),o=n?.props?.id?String(n.props.id):void 0;e=o?Le(t?.data,o):null}catch{e=null}return e!==null&&Be(e)}function ze(e){const{cornerRadiusPx:t}=z(),n=le(),o=typeof t=="number"?t:e;let i=null;try{const{appState:a,selectedItem:s}=N(d=>d),c=s?.props?.id?String(s.props.id):void 0;i=c?Le(a?.data,c):null}catch{i=null}if(n||!i)return o;const l=i.sectionCorners;return Wt(l)?l:o}function yo({min:e,max:t,step:n,px:o,label:i,onChange:l}){const a=ze(e);return r(E,{children:v({min:e,max:t,step:n,value:o??a,readout:!1,ariaLabel:i,onChange:l})})}function Eo({label:e,changed:t=!1,onReset:n=()=>{}}){const o=le(),i=ze(B),l=o?"Site":"Section";return r(g,{label:e,changed:t,detail:w(`${i}px`,o?"Site styles":"the section"),onReset:n})}function To(){return r(E,{children:le()?"The section is full width, so this card follows Site styles ▸ Basics ▸ Corners.":"Follows the section's Corners until you set a number here."})}function Ro(){return $("Corners",{min:B,max:W,unsetLabel:"Follows the section",unsetMark:r(Eo,{label:"Corners"}),restTrack:e=>r(yo,{...e}),hint:r(To,{})})}function Lo({value:e,onChange:t}){return r(ve,{label:P,value:e,corners:ee,onChange:t})}function vo({unset:e}){return r(E,{children:e?"Set a number above first — there is nothing to shape yet.":"Corners left off stay square. The row above sets how round the others are."})}function Oo(){return{type:"custom",render:({value:e,onChange:t})=>{const o=U(e)??[...F],i=o.length===F.length;return r(h,{label:P,icon:r(Ie,{}),value:Re(o),changed:!i,action:r(g,{label:P,changed:!i,onReset:()=>t(null)}),hint:r(vo,{unset:!Ut(e)}),children:r(Lo,{value:o,onChange:l=>{const a=U(l)??[];t(a.length===F.length?null:a)}})})}}}function No(){return{type:"custom",render:()=>r(Qe,{})}}function gi(){return{_gShape:C("Shape"),cardCorners:Ro(),cardCornerSides:Oo(),cardCornersApplyAll:No()}}function bi(){return L("Justify",r(dt,{}),we,we[0].value)}function xi(){return L("Item alignment",r(ut,{}),yn,"stretch")}function Ci(){return L(Ln,r(Mt,{}),He,He[0].value)}function Si(){return{type:"custom",render:({value:e,onChange:t})=>{const n=oe.find(o=>o.value===e)??oe[0];return r(h,{label:De,icon:r(Se,{}),value:n.label,children:r("div",{className:"sf-gallery-layouts",role:"group","aria-label":De,children:oe.map(o=>r(K,{content:o.label,className:"sf-tile-tip",children:r("button",{type:"button","aria-pressed":n.value===o.value,"aria-label":o.label,onClick:()=>t(o.value),children:r("span",{className:"sf-gallery-pic",children:Ao(o.weights).map((i,l)=>r("i",{style:{gridColumn:`span ${i}`}},l))})})},o.value))})})}}}function Ao(e){if(!e)return[3,4];const t=e.reduce((n,o)=>n+o,0);return e.map(n=>Math.round(n/t*12))}function Ii(){return L(En,r(_e,{}),Pe,Pe[0].value)}function _i(){return H(Tn,r(At,{}),ke,Rn,1,ke)}function yi(e){const t=ce(In,Qn("`Direction` names how a container's children run — a MODIFIER, not a thing. doc/naming.md N10.1 gives the idea a dash in its Glyph column; editor-shell's own `direction` meaning says the bare row is CORRECT and not an omission (SS seat, 2026-09-11)."),_n(e),Fe(e,void 0));return{type:"custom",render:n=>t.render({...n,value:Fe(e,n.value),onChange:o=>n.onChange(o)})}}function Ei(e,t,n,o,i,l){return{type:"custom",render:({value:a,onChange:s})=>r(h,{label:e,icon:r(Te,{noun:l}),action:r(g,{label:e,changed:!Vn(a),detail:"the Text style in Site styles",onReset:()=>s(zn),defaultAction:{onPress:()=>s(Xn),title:"Keep this section's own built-in size",icon:r(ft,{})}}),children:v({min:t,max:n,step:o,value:typeof a=="number"?a:i,suffix:"px",ariaLabel:e,onChange:s})})}}function Ti(){return{_gCellWidth:C("Cell width"),gridSpan:L("Positions",r(Se,{}),[{label:"Auto",value:""},...Array.from({length:ot},(e,t)=>({label:t===0?"1 position":`${t+1} positions`,value:String(t+1)}))],"")}}function Y(){let e=null;try{e=N(t=>t).selectedItem}catch{e=null}return e?.props??{}}function Fo({min:e,max:t,step:n,px:o,label:i,onChange:l,desktopKey:a,fallback:s}){const c=Y()[a],d=te(void 0,c,s);return r(E,{children:v({min:e,max:t,step:n,value:te(o,c,s),readout:!1,ariaLabel:i,notch:d,onChange:l})})}function Po({label:e,desktopKey:t,fallback:n,changed:o=!1,onReset:i=()=>{}}){const l=Y()[t],a=te(void 0,l,n);return r(g,{label:e,changed:o,detail:`${a}px on ${ne.desktop.toLowerCase()}`,onReset:i})}function wo(e){return $(e.label,{min:e.min,max:e.max,step:e.step,unsetLabel:`Follows ${ne.desktop}`,unsetMark:r(Po,{label:e.label,desktopKey:e.desktopKey,fallback:e.fallback}),restTrack:t=>r(Fo,{...t,desktopKey:e.desktopKey,fallback:e.fallback})})}function Ri(e={}){const t=e.keys?.top??"sectionPaddingTop",n=e.keys?.bottom??"sectionPaddingBottom",o=e.group!==!1,i=x=>o?x:`Padding ${x.toLowerCase()}`,l=x=>H(i("Top"),r(Nt,{}),S.min,S.max,S.step,x,"px"),a=(x,_,je,j=S)=>R("mobile",wo({label:i(x),desktopKey:_,min:j.min,max:j.max,step:j.step,fallback:je})),s=e.top??S.min,c=e.bottom??S.min,d="sectionPaddingLeft",f="sectionPaddingRight",u=e.sideBounds??S,p=e.side??u.min,m=e.sidePhone??p,b=e.phone===!0,I=x=>b?R("desktop",x):x;return M({...o?{_gSpacing:C("Padding")}:{},[t]:I(l(s)),...b?{[X(t)]:a("Top",t,s)}:{},...e.only==="top"?{}:{[n]:I(H(i("Bottom"),r(Lt,{}),S.min,S.max,S.step,c,"px")),...b?{[X(n)]:a("Bottom",n,c)}:{}},...e.sides?{[d]:I(H(i("Left"),r(vt,{}),u.min,u.max,u.step,p,"px")),...b?{[X(d)]:a("Left",d,m,u)}:{},[f]:I(H(i("Right"),r(Ot,{}),u.min,u.max,u.step,p,"px")),...b?{[X(f)]:a("Right",f,m,u)}:{}}:{}})}const ko={contained:"Contained",page:"Page",full:"Full"},ae="Width";function Li(e,t=Yn,n=!0){const o=t.map(i=>({label:jn[i]??ko[i],value:i}));return M({...n?{_gWidth:C(ae)}:{},widthMode:{type:"custom",render:({onChange:i,field:l})=>r(h,{label:"Width",icon:r(Gt,{}),action:n?r(ro,{inherited:l?.inherited??!1,onReset:()=>i(qn),label:ae}):void 0,children:se({options:o,value:l?.currentValue||e,onChange:i,ariaLabel:ae})})}})}function vi(){const e=o=>({type:"custom",render:({value:i,onChange:l})=>y("div",{className:"sf-field",children:[o?y("div",{className:"sf-field-head",children:[r("span",{className:"sf-field-label sf-field-label--inline",children:G}),o(l)]}):null,r("div",{children:se({options:[{label:"Auto",value:"auto"},{label:"Fixed",value:"fixed"},{label:"Screen",value:"screen"}],value:["auto","fixed","screen"].includes(i)?i:"auto",onChange:l,ariaLabel:G})})]})}),t=()=>({type:"custom",render:({value:o,onChange:i,field:l})=>{const a=l?.unit==="%"?"%":"px",s=a==="%"?Sn:Cn;return r("div",{className:"sf-field",children:v({min:s.min,max:s.max,step:s.step,value:typeof o=="number"?o:s.fallback,suffix:a,ariaLabel:G,onChange:i})})}}),n=()=>ce("Unit",r(ye,{}),[{label:"px",value:"px"},{label:"%",value:"%"}],"px");return M({_gHeight:C(G),sectionHeightMode:R("desktop",e()),sectionHeightValue:R("desktop",t()),sectionHeightUnit:R("desktop",n()),sectionHeightModePhone:R("mobile",e(o=>r(Do,{onClear:()=>o(void 0)}))),sectionHeightValuePhone:R("mobile",t()),sectionHeightUnitPhone:R("mobile",n())})}function Do({onClear:e}){const t=Y(),n=bn(t),o=xn(t),i=`${o.mode==="auto"?"Auto":`${o.value}${o.unit}`} on ${ne.desktop.toLowerCase()}`;return r(g,{label:G,changed:n,detail:i,onReset:e})}function Oi(){return{_gAnchor:C("Anchor"),anchor:uo("Anchor name","e.g. about",ao)}}function O(e,t,n){return{type:"custom",render:({value:o,onChange:i,id:l,name:a})=>{const s=typeof o=="boolean"?o:t,c=`${l??a??e}-label`;return r(h,{label:e,labelId:c,icon:n,action:r(qt,{checked:s,onChange:i,ariaLabelledBy:c})})}}}function Ni(){return{type:"custom",render:({value:e,onChange:t,id:n,name:o})=>{const i=`${String(n??o??"pageBackground")}-colour`;return r(h,{label:"Background",icon:r(Ee,{}),htmlFor:i,action:r(Oe,{id:i,label:"Background",value:$t(e),onChange:t})})}}}function Ai(e,t){return{type:"custom",render:({value:n,onChange:o,id:i})=>{const l=typeof n=="boolean"?n:t,a=`${i??e}-checkbox`;return r(h,{label:e,htmlFor:a,className:"sf-checkbox",action:r(Qt,{id:a,checked:l,onChange:o})})}}}function Fi(e,t){return{type:"custom",render:({value:n,onChange:o})=>r(h,{label:e,action:Oe({value:n||t,onChange:o,label:e})})}}const Ho=[{value:"0% 0%",label:"Top left"},{value:"50% 0%",label:"Top"},{value:"100% 0%",label:"Top right"},{value:"0% 50%",label:"Left"},{value:"50% 50%",label:"Center"},{value:"100% 50%",label:"Right"},{value:"0% 100%",label:"Bottom left"},{value:"50% 100%",label:"Bottom"},{value:"100% 100%",label:"Bottom right"}];function Ve({label:e,value:t,onChange:n,points:o=Ho}){return r(Yt,{label:e,value:t,points:o,onChange:n})}function Pi(e,t=fe,n="mediaImage"){return{type:"custom",render:({value:o,onChange:i})=>r("div",{className:"sf-focal-row",children:r(Bo,{label:e,value:o||t,onChange:i,imageProp:n})})}}function Bo({label:e,value:t,onChange:n,imageProp:o}){const{selectedItem:i}=N(a=>a),l=i?.props?.[o];return r(dn,{label:e,value:t,onChange:n,image:typeof l=="string"?l:void 0})}const Go=xe([]);function wi(e,{stacking:t,fallback:n=at}){return{type:"custom",render:({value:o,onChange:i})=>{const l=lt.includes(o)?o:n;return t?r(Mo,{label:e,value:l,onChange:i}):Ye({label:e,value:l,onChange:i,points:Go})}}}function Mo({label:e,value:t,onChange:n}){const{appState:o,selectedItem:i}=N(s=>s),l=i?.props?.id?String(i.props.id):void 0,a=l?it(o?.data,l):[];return Ye({label:e,value:t,onChange:n,points:xe(a,l)})}function Ye({label:e,value:t,onChange:n,points:o}){const i=o.find(l=>l.disabled);return r(h,{label:e,icon:r(Ft,{}),hint:i?i.title:void 0,children:Ve({label:e,value:st(t),onChange:n,points:o})})}const ki={top:r(Ct,{}),right:r(xt,{}),bottom:r(gt,{}),left:r(bt,{})};function Di(e,t,n,o,i,l){const a=f=>t.find(u=>u.value===f),s=f=>({value:f,label:"",disabled:!0,title:o}),c=f=>{const u=t.find(m=>m.cell===f);if(!u)return s(`missing-${f}`);const p=l?.[f];return p?{value:u.value,label:u.label,icon:p}:{value:u.value,label:u.label}},d=[s("corner-top-left"),c("top"),s("corner-top-right"),c("left"),s("centre"),c("right"),s("corner-bottom-left"),c("bottom"),s("corner-bottom-right")];return{type:"custom",render:({value:f,onChange:u})=>{const p=t.some(m=>m.value===f)?f:n;return r(h,{label:e,icon:i,value:a(p)?.label??"",children:Ve({label:e,value:p,onChange:u,points:d})})}}}const $o="\0note";function L(e,t,n,o,i){return{type:"custom",options:n,fallback:o,...i?{note:i}:{},render:({value:l,onChange:a,field:s})=>{const c=s.options??n,d=s.fallback??o,f=c.some(u=>u.value===l)?l:d;return r(h,{label:e,icon:V(t),children:r(Jt,{value:f,ariaLabel:e,onChange:a,options:[...i?[{label:i,value:$o,disabled:!0}]:[],...c.map(u=>({label:u.label,value:u.value}))]})})}}}function Hi(e,t,n){return{type:"custom",options:t,render:({value:o,onChange:i,field:l})=>r(fn,{label:e,options:l.options??t,value:Array.isArray(o)?o:[],onChange:i,...n?{emptyLabel:n}:{}})}}function Bi(e,t,n,o){return{type:"custom",options:t,fallback:n,render:({value:i,onChange:l,field:a})=>r(mn,{label:e,options:a.options??t,fallback:a.fallback??n,value:i,onChange:l,placeholder:o})}}function Gi(e,t={}){return{type:"custom",render:({value:n,onChange:o})=>{const i={value:n,onChange:o,...t};return r(e,{...i})}}}function se({options:e,value:t,onChange:n,ariaLabel:o,disabled:i=!1}){return r(jt,{options:e.map(l=>({id:l.value,label:l.label,title:l.title})),value:t,onChange:n,ariaLabel:o,disabled:i})}const Mi=[{label:"Image",value:"image"},{label:"Video",value:"video"}];function ce(e,t,n,o){const i=n.map(l=>typeof l=="string"?{label:l,value:l}:l);return{type:"custom",render:({value:l,onChange:a,field:s})=>r(h,{label:e,icon:V(t),children:se({options:i,value:i.some(c=>c.value===l)?l:l||s?.currentValue||o,onChange:a,ariaLabel:e})})}}function $i(e,t,n){return{type:"custom",[me]:!0,render:({value:o,onChange:i})=>r(pn,{value:o||"",onChange:i,label:e,accept:t,placeholder:n})}}const Wi={HeroSingle:["imageFocal"],ContactLocations:["locations[].photo"],ProcessSteps:["steps[].image"]};function Ui({value:e,onChange:t,label:n}){const o=e||{},i=!!o.pending,l=i?"var(--fg-dim, #888)":o.ok?"#1d9e75":"#d85a30",a=(s,c)=>t({...o,[s]:c===""?void 0:Number(c)});return y(h,{label:n,icon:r(Q,{}),children:[r("button",{type:"button",disabled:i,onClick:()=>t({...o,pending:!0,ok:!1,status:"Finding…"}),style:{width:"100%",display:"flex",alignItems:"center",justifyContent:"center",gap:6,padding:"8px 10px",fontSize:13,cursor:i?"default":"pointer",opacity:i?.6:1,border:"1px solid var(--border-strong, #ccc)",borderRadius:6,background:"transparent",color:"inherit"},children:i?"Finding…":"Find coordinates"}),o.status&&r("div",{style:{marginTop:6,fontSize:12,lineHeight:1.4,color:l},children:o.status}),r("div",{style:{marginTop:6,fontSize:11,color:"var(--fg-dim, #999)"},children:"Coordinates from OpenStreetMap"}),r("button",{type:"button",onClick:()=>t({...o,manual:!o.manual}),style:{marginTop:8,padding:0,border:"none",background:"none",font:"inherit",fontSize:12,color:"var(--sf-accent, #2563eb)",cursor:"pointer",textDecoration:"underline"},children:o.manual?"Hide manual coordinates":"Enter coordinates manually"}),o.manual&&y("div",{style:{marginTop:8,display:"grid",gap:8},children:[r(h,{label:"Latitude",icon:r(Q,{}),children:r("input",{type:"number",step:"any",placeholder:"e.g. 34.0990198",value:typeof o.lat=="number"?o.lat:"",onChange:s=>a("lat",s.target.value)})}),r(h,{label:"Longitude",icon:r(Q,{}),children:r("input",{type:"number",step:"any",placeholder:"e.g. -117.9842833",value:typeof o.lng=="number"?o.lng:"",onChange:s=>a("lng",s.target.value)})})]})]})}function Wo(e,t){return t===null||t<0||t>=e.length?"":e[t]?.text??""}function Uo(e,t,n){const o=e.map(i=>({text:i?.text??""}));return t===null||t<0||t>=e.length?o:o.map((i,l)=>l===t?{text:n}:i)}function Ki(e,t){return e===null?null:t>e?e:null}function Ko(e,t,n){if(n===null||n>=t.length)return null;for(let o=0;o<n;o+=1)if(e[o]!==t[o])return null;return e[n]!==t[n]&&t.includes(e[n])||e[n]!==t[n]&&t.length!==e.length?null:n}const Xi={label:"Ticker items",icon:r(Rt,{})};function zi(e,t,n,o){return{type:"custom",[T]:{control:"textList",label:e,placeholder:n,itemKey:"text",rendering:o},render:({value:i,onChange:l})=>r(Xo,{label:e,icon:V(t),items:Array.isArray(i)?i:[],placeholder:n,onChange:l,markup:o==="markup"})}}function Xo({label:e,icon:t,items:n,placeholder:o,onChange:i,markup:l=!1}){const a=q(null),[s,c]=ue(null),d=u=>u.map(p=>({text:p?.text??""}));return r(Zt,{label:e,icon:t,noun:"item",items:n,onChange:u=>{const p=Ko(n,u,s);p===null&&(a.current=null),c(p),i(d(u))},newItem:()=>({text:""}),open:null,onOpen:()=>{},renderItem:()=>null,above:l?r(Ne,{target:a,value:Wo(n,s),onChange:u=>i(Uo(n,s??-1,u)),disabled:s===null,label:s===null?"Formatting — click a row first":`Formatting — row ${s+1}`}):void 0,renderRow:(u,p,m)=>r("input",{type:"text",className:l&&s===p?"sf-list-marking":void 0,value:u?.text??"",placeholder:o,"aria-label":`${e} ${p+1}`,onChange:b=>m({text:b.target.value}),onFocus:b=>{a.current=b.currentTarget,c(p)}})})}function Vi(e,t){const n=`${e.label} — row ${t+1}`;return D({control:"plainText",label:n,placeholder:e.placeholder,offPage:e.offPage},{type:"custom",render:({value:o,onChange:i})=>r(k,{value:o,onChange:i,label:n,placeholder:e.placeholder,hideable:!1,markup:e.rendering==="markup"})})}function Yi(e){return{_gCards:C("Cards"),coverIndex:L("Cover image",r(Et,{}),sn,String(cn),e?.coverHint??"A card's opening picture — a card pinned to a finish keeps its own."),imageBackground:go("Image background",Pn),cardImage:zo(),spinOnHover:O("Rotate on hover",e?.spinDefault??!0,r(wt,{}))}}function ji(){return{outline:L("Card outline",r(kt,{}),rn,an),indexBadge:L("Card number",r(ye,{}),on,ln),showBadge:O("Product badge",!0,r(Te,{noun:"tag"}))}}function qi(e){const t=e?.bottomDefault??!0;return{_gShowOnCard:C("Show on a card"),showCardPrice:O("Price",!0,r(St,{})),showCardFinishes:O("Finish swatches",!0,r(It,{})),showCardSizes:O("Sizes",t,r(Pt,{})),showCardBuy:O("Buy button",t,r(ht,{})),showCardPage:O("Page button",t,r(Ee,{}))}}function zo(){return $("Card image",{min:B,max:W,step:et,hint:"Rounds the picture. The card's own corner is in Site styles."})}function Ji(){return $(nt,{min:B,max:W,step:tt,unsetLabel:"Square",hint:"Rounds the picture. Left alone it stays square."})}function Zi(){return{type:"custom",render:({value:e,onChange:t})=>r(Vo,{value:typeof e=="string"?e:"",onChange:t})}}function Vo({value:e,onChange:t}){const[n,o]=ue(null),i=be.filter(a=>n===null||A[a].across===n),l=e&&e in A?A[e]:null;return y(E,{children:[r(h,{label:"Photos in a row",icon:r(mt,{}),children:y("div",{className:"sf-gallery-filter",children:[r("button",{type:"button","aria-pressed":n===null,onClick:()=>o(null),children:"All"}),rt.map(a=>r("button",{type:"button","aria-pressed":n===a,onClick:()=>o(a),children:a},a))]})}),r(h,{label:"Layout",icon:r(_t,{}),value:l?l.label:"Not chosen",hint:`${i.length} of ${be.length} layouts`,children:r("div",{className:"sf-gallery-layouts",children:i.map(a=>r(K,{content:A[a].label,className:"sf-tile-tip",children:r("button",{type:"button","aria-pressed":e===a,"aria-label":A[a].label,onClick:()=>t(e===a?"":a),children:r("span",{className:"sf-gallery-pic",children:A[a].desktop.map(([s,c],d)=>r("i",{style:{gridColumn:`span ${s}`,gridRow:`span ${c}`}},d))})})},a))})})]})}export{ao as ANCHOR_HINT,Qr as BOUND_TO_POST_NOTE,ii as BUCKET_ICONS,Wi as CUSTOM_FIELD_MEDIA,Ui as CoordsField,ki as EDGE_ARROWS,fe as FOCAL_DEFAULT,Ho as FOCAL_POINTS,J as FOLD_FIELD_MARKER,Ve as FocalPicker,mo as GroupLabel,lo as HIGHLIGHT_HINT,k as HidableTextField,he as LINK_FIELD_MARKER,Yr as Label,me as MEDIA_FIELD_MARKER,Mi as MEDIA_TYPE_OPTIONS,ho as PanelNoteLine,Ye as PlacementGridView,ge as SCAFFOLD_FIELD_MARKER,nl as SCALAR_TEXT_CONTROLS,Xe as SECTION_BLEEDS_HINT,po as SectionHeading,se as Segmented,oo as SiteGapDefaultReset,v as Slider,Ue as Swatches,tl as TEXT_CONTROL_KINDS,T as TEXT_FIELD_MARKER,Xi as TICKER_ITEMS_ROW,Xo as TextListField,ro as WidthDefaultReset,Ko as aimAfterListChange,Oi as anchorFields,w as backTo,di as backgroundField,xi as boxAlignField,Ii as boxBlockSpacingField,bi as boxJustifyField,_i as boxPhoneRowField,Si as boxShareField,Ci as boxWrapField,ui as bucketHeader,Oo as cardCornerSidesField,Ro as cardCornersField,go as cardImageBackgroundField,zo as cardImageField,Yi as cardMediaFields,gi as cardShapeFields,qi as cardShowFields,ji as cardStyleFields,Ti as cellWidthFields,Ai as checkbox,Fi as colorInput,ni as copyText,yi as directionField,Di as edgePad,li as entriesHiddenForTab,Pi as focalPicker,Ki as focusAfterRemove,Z as foldMetaOf,Zi as galleryLayoutField,fi as gapField,C as group,vi as heightFields,pe as hidableText,co as hintIsWhileTyping,V as iconOf,Ji as imageCornersField,ci as isBucketHeader,eo as isNoGlyph,oi as linkField,Hi as multiSelect,Qn as noGlyph,Ni as pageBackgroundField,ai as panelNote,wo as phoneOverrideField,wi as placementField,uo as plainText,ri as plainTextarea,$ as pxField,de as readHidable,Wo as rowText,Bi as searchSelect,si as section,mi as sectionAnimationFields,bo as sectionCornerSidesField,Co as sectionCornersField,hi as sectionShapeFields,pi as sectionThemeFields,ce as segmented,L as select,Uo as setRowText,Ei as sizeField,H as slider,Gi as sourceField,Ri as spacingFields,ei as text,Ze as textFieldIdentifier,Jr as textFieldOffPage,zi as textList,Vi as textListRowField,ti as textarea,O as toggle,$i as upload,to as usePageWidthDetail,no as useSiteGapDetail,Li as widthField,Zr as withIdentifier,qr as withOffPage,jr as withScaffold};
1
+ "use client";import{jsx as r,jsxs as y,Fragment as E}from"react/jsx-runtime";import{cloneElement as qe,useId as Je,useRef as q,useState as ue}from"react";import{useEasel as N}from"efficient-easel/easel";import{readHidable as de,hidableText as pe}from"./hidable.js";import{FOCAL_DEFAULT as me}from"../image-focus.js";import{FOLD_FIELD_MARKER as J,LINK_FIELD_MARKER as fe,MEDIA_FIELD_MARKER as he,SCAFFOLD_FIELD_MARKER as ge,TEXT_FIELD_MARKER as T,foldMetaOf as Z,textFieldIdentifier as Ze}from"./field-markers.js";import Qe from"../../components/ApplyCornersToSiblings.js";import{CARD_IMAGE_RADIUS_STEP as et,CORNER_RADIUS_MAX as W,CORNER_RADIUS_MIN as B}from"../content/card-image-shape.js";import{IMAGE_CORNER_STEP as tt,IMAGE_CORNERS_LABEL as nt}from"../content/image-corners.js";import{GRID_MAX_COLUMNS as ot}from"../content/grid-span.js";import{GALLERY_ACROSS_BUCKETS as rt,GALLERY_LAYOUTS as A,GALLERY_LAYOUT_KEYS as be}from"../content/gallery-layout.js";import{anchorSiblingsOf as it,HERO_GROUP_PLACEMENTS as lt,HERO_GROUP_PLACEMENT_DEFAULT as at,normalisePlacement as st,placementPoints as xe}from"../hero-group-placement.js";import ct from"../../components/KeepHint.js";import{AlignLeftIcon as ut,AlignSeparateIcon as dt,AnimationIcon as Ce,BackgroundIcon as pt,BlockSectionIcon as mt,CartIcon as ft,ColumnWidthsIcon as Se,ColumnsIcon as ht,CornerIcon as Ie,DirectionDownIcon as gt,DirectionLeftIcon as bt,DirectionRightIcon as xt,DirectionUpIcon as Ct,DollarIcon as St,FinishIcon as It,GapIcon as _e,GridIcon as _t,GroundIcon as yt,HashIcon as ye,ImageIcon as Et,LayoutIcon as Tt,ListIcon as Rt,LocationIcon as Q,PaddingBottomIcon as Lt,PaddingLeftIcon as vt,PaddingRightIcon as Ot,PaddingTopIcon as Nt,PageIcon as Ee,PhoneIcon as At,PlacementIcon as Ft,ProductSizeIcon as Pt,RotateIcon as wt,SquareIcon as kt,StylesIcon as Dt,TextLinesIcon as Ht,TypeIcon as Bt,WidthIcon as Gt,WrapIcon as Mt}from"efficient-easel/icons";import{FieldGlyph as Te}from"../../components/FieldGlyph.js";import{resolvePageBackground as $t}from"../content/page-background.js";import{CORNER_SIDES as F,CORNER_SIDE_POINTS as ee,CORNER_SIDES_LABEL as P,cornerSidesSummary as Re,hasOwnSectionCorners as Wt,normalizeCornerSides as U}from"../content/section-corners.js";import{hasOwnCardCorners as Ut}from"../content/card-corners.js";import{SECTION_MOTION_NONE as Kt,SECTION_MOTION_OPTIONS as Xt}from"../content/section-animation.js";import{enclosingSectionProps as Le}from"./enclosing-section.js";import{SettingsCorners as ve,SettingsDefaultReset as g,SettingsField as f,SettingsGroupHead as zt,SettingsGroupSub as Vt,SettingsPlacement as Yt,SettingsSegmented as jt,SettingsSwitch as qt}from"efficient-easel/panel";import{FieldSelect as Jt,ListField as Zt}from"efficient-easel/fields";import{Checkbox as Qt,DateTimePicker as en,Slider as tn,Tooltip as K}from"efficient-shell/ui";import{ColourControl as Oe}from"./ColourControl.js";import Ne from"./MarkupToolbar.js";import{deviceField as R}from"./device-fields.js";import{noControlField as nn}from"./panel-no-control-mark.js";import{phoneKey as X,resolvePhoneValue as te}from"./phone-override.js";import{SuppressibleText as on}from"./section-text-suppress.js";import{CARD_INDEX_OPTIONS as rn,CARD_OUTLINE_OPTIONS as ln,DEFAULT_CARD_INDEX_FORMAT as an,DEFAULT_CARD_OUTLINE as sn}from"../sections/product-card-style.js";import{COVER_INDEX_OPTIONS as cn,DEFAULT_COVER_INDEX as un}from"../sections/card-cover-index.js";import{SCALAR_TEXT_CONTROLS as dn}from"./text-control-kinds.js";import pn from"../../components/ImageFocusRow.js";import mn from"../../components/MediaUploadField.js";import fn from"../../components/MultiSelectField.js";import hn from"../../components/SectionThemePicker.js";import gn from"../../components/SearchSelectField.js";import bn from"../../components/StorefrontLinkField.js";import Ae from"../../components/UiIcon.js";import{SECTION_PADDING as S}from"../content/section-padding.js";import{hasPhoneHeight as xn,resolveSectionMinHeight as Cn}from"../content/section-min-height.js";import{VIEW_TIER_LABEL as ne}from"../content/view-tiers.js";import{SECTION_MIN_HEIGHT as Sn,SECTION_MIN_HEIGHT_GROUP_LABEL as G,SECTION_SCREEN_PCT as In}from"../content/section-min-height.js";import{CONTAINER_DIRECTION_LABEL as _n,containerDirectionPoints as yn,resolveContainerDirection as Fe}from"../content/container-direction.js";import{BOX_ALIGN_POINTS as En,BOX_BLOCK_SPACING_LABEL as Tn,BOX_BLOCK_SPACING_POINTS as Pe,BOX_JUSTIFY_POINTS as we,BOX_PHONE_ROW_LABEL as Rn,BOX_PHONE_ROW_MAX as Ln,BOX_PHONE_ROW_MIN as ke,BOX_SHARE_LABEL as De,BOX_SHARE_POINTS as oe,BOX_WRAP_LABEL as vn,BOX_WRAP_POINTS as He}from"../content/box-layout.js";import{usePreviewHeader as z}from"../../components/PreviewHeaderContext.js";import{CONTAINER_GAP as re,CONTAINER_GAP_BUILT_IN as On,GAP_FIELD_CONTAINER as Nn,hasOwnContainerGap as An,resolveContainerGap as Fn}from"../content/container-gap.js";import{CARD_IMAGE_BG_INHERIT as Pn,CARD_IMAGE_BG_OFF as wn,CARD_IMAGE_BG_SWATCH_NAMES as kn,CARD_IMAGE_BG_SWATCHES as Dn,isCardImageBackgroundInheriting as Hn,cardImageBackgroundChoice as Bn,THEME_CARD_IMAGE_BG as Gn}from"../content/card-image-background.js";import{SECTION_BG_INHERIT as Mn,SECTION_BG_SWATCHES as $n,SECTION_BG_SWATCH_NAMES as Wn,THEME_SECTION_BG as Un,isSectionBackgroundInheriting as Kn}from"../content/section-background.js";import{SECTION_THEME_GROUP_LABEL as Xn}from"../content/section-surface.js";import{TYPE_SIZE_FIXED as zn,TYPE_SIZE_INHERIT as Vn,isTypeSizeInheriting as Yn}from"../content/section-type-size.js";import{SECTION_WIDTH_CHOICES as jn,WIDTH_CHOICE_LABEL as qn,WIDTH_INHERIT as Jn,resolveWidth as Zn,sectionRunsFullWidth as Be}from"../content/section-width.js";import{useFoldHeadingLevel as Ge}from"./panel-heading-scope.js";import{withStyleKind as Qn}from"efficient-easel/style-clipboard";function M(e){for(const[t,n]of Object.entries(e))n&&typeof n=="object"&&!Z(n)&&Qn(n,`section:${t}`);return e}function jr({children:e}){return r("div",{className:"sf-field-label",children:e})}function Me(){return null}function eo(e){if(!e.trim())throw new Error("noGlyph() needs a reason naming the ruling that decided it.");return r(Me,{},e)}function to(e){return e.type===Me}function V(e){return to(e)?void 0:e}function w(e,t){return`${e} from ${t}`}function no(){const{appState:e}=N(i=>i),t=e.data.root?.props??{},{mode:n,pageWidth:o}=Zn(t,"full");return w(n==="page"?`${o}px`:n==="contained"?"Contained":"Full","the page")}function oo(){const{blockGap:e}=z();return e===null?"this container's own spacing":w(`${e}px`,"Site styles")}function ro({inherited:e,onReset:t,label:n}){return r(g,{label:n,changed:!e,detail:oo(),onReset:t})}function io({inherited:e,onReset:t,label:n}){return r(g,{label:n,changed:!e,detail:no(),onReset:t})}function k({value:e,onChange:t,label:n,placeholder:o,hint:i,multiline:l,hideable:a=!0,markup:s=!0}){const{text:c,hidden:d}=de(e),m=q(null),u=q(null),p=_=>t(a?{text:_,hidden:d}:_),h=()=>t({text:c,hidden:!d}),b=a&&d,I=Je(),x=i?uo(i)?r("span",{className:"sf-hint-keep sf-hint-while-typing",children:i}):r(ct,{children:i}):void 0;return r(f,{label:n,icon:r(Bt,{}),htmlFor:I,className:b?"is-hidden":void 0,hint:x,action:a?r(K,{content:d?`Show ${n} on the slide`:`Hide ${n} on the slide`,children:r("button",{type:"button",className:"sf-field-eye","aria-pressed":d,"aria-label":d?`Show ${n} on the slide`:`Hide ${n} on the slide`,onClick:h,children:d?r(Ae,{name:"eye-off",size:14}):r(Ae,{name:"eye",size:14})})}):void 0,children:y("div",{className:"sf-copybox",children:[s&&r(Ne,{target:l?u:m,value:c,onChange:p}),l?r("textarea",{id:I,ref:u,value:c,placeholder:o,onChange:_=>p(_.target.value)}):r("input",{id:I,ref:m,type:"text",value:c,placeholder:o,onChange:_=>p(_.target.value)})]})})}function qr(e,t){return{...e,[ge]:t}}function Jr(e){const t=e[T];if(!t)throw new Error("withOffPage: the field holds no authored text");return{...e,[T]:{...t,offPage:!0}}}function Zr(e){return!e||typeof e!="object"?!1:e[T]?.offPage===!0}function Qr(e){const t=e[T];if(!t)throw new Error("withIdentifier: the field holds no authored text");return{...e,[T]:{...t,identifier:!0}}}import{TEXT_CONTROL_KINDS as ol,SCALAR_TEXT_CONTROLS as rl}from"./text-control-kinds.js";const lo=new Set(dn),D=(e,t)=>{const n={...t,[T]:e};if(!lo.has(e.control))return n;const o=t.render;return{...nn(n,"authored-copy"),render:i=>r(on,{name:i.name,children:o(i)})}},ei="Everything else on this block comes from the linked post. Unlink it to edit by hand.",ao="Select a word, then press the highlighter.",so="A short name so a link can jump straight to this section, like yoursite.com/page#about.",co=new Set([ao]),uo=e=>co.has(e);function ti(e,t,n){return D({control:"text",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(k,{value:o,onChange:i,label:e,placeholder:t,hint:n})})}function ni(e,t,n){return D({control:"textarea",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(k,{value:o,onChange:i,label:e,placeholder:t,hint:n,multiline:!0})})}function po(e,t,n){return D({control:"plainText",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(k,{value:o,onChange:i,label:e,placeholder:t,hint:n,hideable:!1,markup:!1})})}function oi(e,t,n){return D({control:"copyText",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(k,{value:o,onChange:i,label:e,placeholder:t,hint:n,hideable:!1})})}function ri(e){return{type:"custom",[fe]:{label:e},render:({value:t,onChange:n})=>r(bn,{value:pe(t),onChange:n,label:e})}}function ii(e,t,n){return D({control:"plainTextarea",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(k,{value:o,onChange:i,label:e,placeholder:t,hint:n,multiline:!0,hideable:!1})})}const li={Content:Ht,Style:Dt,Layout:Tt,Animation:Ce};function ai(e,t){return e.includes("Content")?t!=="Content":null}function mo({label:e}){return r(zt,{title:e,level:Ge(1)})}function fo({level:e,label:t}){return e===1?r(mo,{label:t}):r(go,{label:t})}function $e(e,t){return{type:"custom",[J]:{label:e,level:t},render:()=>r(fo,{level:t,label:e})}}function C(e){return $e(e,2)}function si(e){return{type:"custom",render:()=>r(ho,{text:e})}}function ho({text:e}){return r("p",{className:"sf-note",children:e})}function ci(e){return $e(e,1)}function ui(e){return Z(e)!==null&&e?.tabs!==void 0}const We=new Map;function di(e,t){const n=`${e}\0${t?t.join(""):""}`,o=We.get(n)??{type:"custom",tabs:t,[J]:{label:e,level:1},bucket:e,marker:!0,render:()=>r(E,{})};return We.set(n,o),o}function go({label:e}){return r(Vt,{title:e,level:Ge(2)})}function Ue({swatches:e,current:t,onPick:n,names:o}){const i=e.find(a=>a.toLowerCase()===t.toLowerCase()),l=(i?o?.[i]:void 0)??t;return y("div",{className:"sf-swatches",children:[e.map(a=>{const s=o?.[a]??a;return r(K,{content:s,children:r("button",{type:"button","aria-pressed":t.toLowerCase()===a.toLowerCase(),className:`sf-swatch ${t.toLowerCase()===a.toLowerCase()?"is-active":""}`,style:{background:a},onClick:()=>n(a),"aria-label":s})},a)}),r("span",{className:"sf-swatch-hex",children:l})]})}function pi(e,t){return{type:"custom",render:({value:n,onChange:o})=>{const i=Kn(n,t);return r(f,{label:e,icon:r(pt,{}),changed:!i,action:r(g,{label:e,changed:!i,detail:"the theme's section background",onReset:()=>o(Mn)}),children:Ue({swatches:$n,current:i?Un:n??t??"",onPick:o,names:Wn})})}}}function bo(e,t){return{type:"custom",render:({value:n,onChange:o})=>{const i=n,l=Hn(i,t);return r(f,{label:e,icon:r(yt,{}),changed:!l,action:r(g,{label:e,changed:!l,detail:"the theme's image stage",onReset:()=>o(Pn)}),children:Ue({swatches:Dn,current:l?Gn:Bn(i,t),onPick:o,names:kn})})}}}function mi(e=n=>n,t){return M({_gSectionTheme:C(Xn),sectionAccent:{type:"custom",render:({value:n,onChange:o})=>r(hn,{value:e(n),onChange:o,followLabel:t})}})}function v({min:e,max:t,step:n,value:o,onChange:i,suffix:l="",readout:a=!0,notch:s,ariaLabel:c,disabled:d=!1}){const m=s!==void 0&&Number.isFinite(s)&&s>=e&&s<=t;return r("div",{className:m?"sf-slider has-notch":"sf-slider",style:m?{"--sf-notch":(s-e)/(t-e)}:void 0,children:r(tn,{min:e,max:t,step:n,value:o,suffix:l||void 0,showInput:a,label:c,disabled:d,size:"sm",className:"sf-slider-track",onChange:u=>{u!==null&&u!==o&&i(u)}})})}function H(e,t,n,o,i,l,a="",s){return{type:"custom",render:c=>r(f,{label:e,icon:V(t),action:s?s("storedValue"in c?c.storedValue:c.value,c.onChange):void 0,children:v({min:n,max:o,step:i,value:typeof c.value=="number"?c.value:l,suffix:a,ariaLabel:e,onChange:c.onChange})})}}function Ke({min:e,max:t,step:n,px:o,label:i,onChange:l,disabled:a=!1}){const{cornerRadiusPx:s}=z();return r(E,{children:v({min:e,max:t,step:n,value:o??(typeof s=="number"?s:e),readout:!1,ariaLabel:i,disabled:a,onChange:l})})}function $(e,t){const{min:n,max:o,step:i=1,unsetLabel:l,hint:a,restAtSite:s=!1,restTrack:c,unsetMark:d}=t;return{type:"custom",render:({value:m,onChange:u})=>{const p=typeof m=="number"?m:null,h=p===null;return r(f,{label:e,value:h?d?void 0:l:`${p}px`,changed:!h,action:d?qe(d,{changed:!h,onReset:()=>u(null)}):r(g,{label:e,changed:!h,onReset:()=>u(null)}),hint:a,children:c?c({min:n,max:o,step:i,px:p,label:e,onChange:u}):s?r(Ke,{min:n,max:o,step:i,px:p,label:e,onChange:u}):v({min:n,max:o,step:i,value:p??n,readout:!1,ariaLabel:e,onChange:u})})}}}function fi(e){const t=H("Gap",r(_e,{}),re.min,re.max,re.step,On[e],"px",(n,o)=>r(ro,{inherited:!An(e,n),onReset:()=>o(void 0),label:"Gap"}));return{type:"custom",[Nn]:e,render:n=>t.render({...n,value:Fn(e,n.value,n.field?.siteGap),storedValue:n.value,onChange:o=>n.onChange(o)})}}function xo(){return{type:"custom",render:({value:e,onChange:t})=>{const o=U(e)??[...F],i=o.length===F.length;return r(f,{label:P,icon:r(Ie,{}),value:Re(o),changed:!i,action:r(g,{label:P,changed:!i,onReset:()=>t(null)}),hint:"Corners left off stay square. The row above sets how round the others are.",children:r(yo,{value:o,onChange:l=>{const a=U(l)??[];t(a.length===F.length?null:a)}})})}}}function Co({label:e,changed:t=!1,onReset:n=()=>{}}){const{cornerRadiusPx:o}=z(),i=typeof o=="number"?`${o}px`:"not set";return r(g,{label:e,changed:t,detail:o==null?"the built-in corners":w(i,"Site styles"),onReset:n})}function So(){return $("Corners",{min:B,max:W,unsetLabel:"Follows the site",unsetMark:r(Co,{label:"Corners"}),restTrack:e=>r(Io,{...e}),hint:r(_o,{})})}const Xe="This section runs edge to edge, so its corners sit off the page. Set Width to Content width to use them.";function ie(){return Be(Y())}function Io(e){return r(Ke,{...e,disabled:ie()})}function _o(){return r(E,{children:ie()?Xe:"Follows Site styles ▸ Basics ▸ Corners until you set a number here."})}function yo({value:e,onChange:t}){const n=ie();return r(ve,{label:P,value:e,corners:n?ee.map(o=>({...o,disabled:!0,title:Xe})):ee,onChange:t})}function hi(){return M({_gShape:C("Shape"),sectionCorners:So(),sectionCornerSides:xo()})}function gi(){return{_gMotion:C("Motion"),sectionAnimation:ce("Entrance",r(Ce,{}),[...Xt],Kt)}}function le(){let e=null;try{const{appState:t,selectedItem:n}=N(i=>i),o=n?.props?.id?String(n.props.id):void 0;e=o?Le(t?.data,o):null}catch{e=null}return e!==null&&Be(e)}function ze(e){const{cornerRadiusPx:t}=z(),n=le(),o=typeof t=="number"?t:e;let i=null;try{const{appState:a,selectedItem:s}=N(d=>d),c=s?.props?.id?String(s.props.id):void 0;i=c?Le(a?.data,c):null}catch{i=null}if(n||!i)return o;const l=i.sectionCorners;return Wt(l)?l:o}function Eo({min:e,max:t,step:n,px:o,label:i,onChange:l}){const a=ze(e);return r(E,{children:v({min:e,max:t,step:n,value:o??a,readout:!1,ariaLabel:i,onChange:l})})}function To({label:e,changed:t=!1,onReset:n=()=>{}}){const o=le(),i=ze(B),l=o?"Site":"Section";return r(g,{label:e,changed:t,detail:w(`${i}px`,o?"Site styles":"the section"),onReset:n})}function Ro(){return r(E,{children:le()?"The section is full width, so this card follows Site styles ▸ Basics ▸ Corners.":"Follows the section's Corners until you set a number here."})}function Lo(){return $("Corners",{min:B,max:W,unsetLabel:"Follows the section",unsetMark:r(To,{label:"Corners"}),restTrack:e=>r(Eo,{...e}),hint:r(Ro,{})})}function vo({value:e,onChange:t}){return r(ve,{label:P,value:e,corners:ee,onChange:t})}function Oo({unset:e}){return r(E,{children:e?"Set a number above first — there is nothing to shape yet.":"Corners left off stay square. The row above sets how round the others are."})}function No(){return{type:"custom",render:({value:e,onChange:t})=>{const o=U(e)??[...F],i=o.length===F.length;return r(f,{label:P,icon:r(Ie,{}),value:Re(o),changed:!i,action:r(g,{label:P,changed:!i,onReset:()=>t(null)}),hint:r(Oo,{unset:!Ut(e)}),children:r(vo,{value:o,onChange:l=>{const a=U(l)??[];t(a.length===F.length?null:a)}})})}}}function Ao(){return{type:"custom",render:()=>r(Qe,{})}}function bi(){return{_gShape:C("Shape"),cardCorners:Lo(),cardCornerSides:No(),cardCornersApplyAll:Ao()}}function xi(){return L("Justify",r(dt,{}),we,we[0].value)}function Ci(){return L("Item alignment",r(ut,{}),En,"stretch")}function Si(){return L(vn,r(Mt,{}),He,He[0].value)}function Ii(){return{type:"custom",render:({value:e,onChange:t})=>{const n=oe.find(o=>o.value===e)??oe[0];return r(f,{label:De,icon:r(Se,{}),value:n.label,children:r("div",{className:"sf-gallery-layouts",role:"group","aria-label":De,children:oe.map(o=>r(K,{content:o.label,className:"sf-tile-tip",children:r("button",{type:"button","aria-pressed":n.value===o.value,"aria-label":o.label,onClick:()=>t(o.value),children:r("span",{className:"sf-gallery-pic",children:Fo(o.weights).map((i,l)=>r("i",{style:{gridColumn:`span ${i}`}},l))})})},o.value))})})}}}function Fo(e){if(!e)return[3,4];const t=e.reduce((n,o)=>n+o,0);return e.map(n=>Math.round(n/t*12))}function _i(){return L(Tn,r(_e,{}),Pe,Pe[0].value)}function yi(){return H(Rn,r(At,{}),ke,Ln,1,ke)}function Ei(e){const t=ce(_n,eo("`Direction` names how a container's children run — a MODIFIER, not a thing. doc/naming.md N10.1 gives the idea a dash in its Glyph column; editor-shell's own `direction` meaning says the bare row is CORRECT and not an omission (SS seat, 2026-09-11)."),yn(e),Fe(e,void 0));return{type:"custom",render:n=>t.render({...n,value:Fe(e,n.value),onChange:o=>n.onChange(o)})}}function Ti(e,t,n,o,i,l){return{type:"custom",render:({value:a,onChange:s})=>r(f,{label:e,icon:r(Te,{noun:l}),action:r(g,{label:e,changed:!Yn(a),detail:"the Text style in Site styles",onReset:()=>s(Vn),defaultAction:{onPress:()=>s(zn),title:"Keep this section's own built-in size",icon:r(mt,{})}}),children:v({min:t,max:n,step:o,value:typeof a=="number"?a:i,suffix:"px",ariaLabel:e,onChange:s})})}}function Ri(){return{_gCellWidth:C("Cell width"),gridSpan:L("Positions",r(Se,{}),[{label:"Auto",value:""},...Array.from({length:ot},(e,t)=>({label:t===0?"1 position":`${t+1} positions`,value:String(t+1)}))],"")}}function Y(){let e=null;try{e=N(t=>t).selectedItem}catch{e=null}return e?.props??{}}function Po({min:e,max:t,step:n,px:o,label:i,onChange:l,desktopKey:a,fallback:s}){const c=Y()[a],d=te(void 0,c,s);return r(E,{children:v({min:e,max:t,step:n,value:te(o,c,s),readout:!1,ariaLabel:i,notch:d,onChange:l})})}function wo({label:e,desktopKey:t,fallback:n,changed:o=!1,onReset:i=()=>{}}){const l=Y()[t],a=te(void 0,l,n);return r(g,{label:e,changed:o,detail:`${a}px on ${ne.desktop.toLowerCase()}`,onReset:i})}function ko(e){return $(e.label,{min:e.min,max:e.max,step:e.step,unsetLabel:`Follows ${ne.desktop}`,unsetMark:r(wo,{label:e.label,desktopKey:e.desktopKey,fallback:e.fallback}),restTrack:t=>r(Po,{...t,desktopKey:e.desktopKey,fallback:e.fallback})})}function Li(e={}){const t=e.keys?.top??"sectionPaddingTop",n=e.keys?.bottom??"sectionPaddingBottom",o=e.group!==!1,i=x=>o?x:`Padding ${x.toLowerCase()}`,l=x=>H(i("Top"),r(Nt,{}),S.min,S.max,S.step,x,"px"),a=(x,_,je,j=S)=>R("mobile",ko({label:i(x),desktopKey:_,min:j.min,max:j.max,step:j.step,fallback:je})),s=e.top??S.min,c=e.bottom??S.min,d="sectionPaddingLeft",m="sectionPaddingRight",u=e.sideBounds??S,p=e.side??u.min,h=e.sidePhone??p,b=e.phone===!0,I=x=>b?R("desktop",x):x;return M({...o?{_gSpacing:C("Padding")}:{},[t]:I(l(s)),...b?{[X(t)]:a("Top",t,s)}:{},...e.only==="top"?{}:{[n]:I(H(i("Bottom"),r(Lt,{}),S.min,S.max,S.step,c,"px")),...b?{[X(n)]:a("Bottom",n,c)}:{}},...e.sides?{[d]:I(H(i("Left"),r(vt,{}),u.min,u.max,u.step,p,"px")),...b?{[X(d)]:a("Left",d,h,u)}:{},[m]:I(H(i("Right"),r(Ot,{}),u.min,u.max,u.step,p,"px")),...b?{[X(m)]:a("Right",m,h,u)}:{}}:{}})}const Do={contained:"Contained",page:"Page",full:"Full"},ae="Width";function vi(e,t=jn,n=!0){const o=t.map(i=>({label:qn[i]??Do[i],value:i}));return M({...n?{_gWidth:C(ae)}:{},widthMode:{type:"custom",render:({onChange:i,field:l})=>r(f,{label:"Width",icon:r(Gt,{}),action:n?r(io,{inherited:l?.inherited??!1,onReset:()=>i(Jn),label:ae}):void 0,children:se({options:o,value:l?.currentValue||e,onChange:i,ariaLabel:ae})})}})}function Oi(){const e=o=>({type:"custom",render:({value:i,onChange:l})=>y("div",{className:"sf-field",children:[o?y("div",{className:"sf-field-head",children:[r("span",{className:"sf-field-label sf-field-label--inline",children:G}),o(l)]}):null,r("div",{children:se({options:[{label:"Auto",value:"auto"},{label:"Fixed",value:"fixed"},{label:"Screen",value:"screen"}],value:["auto","fixed","screen"].includes(i)?i:"auto",onChange:l,ariaLabel:G})})]})}),t=()=>({type:"custom",render:({value:o,onChange:i,field:l})=>{const a=l?.unit==="%"?"%":"px",s=a==="%"?In:Sn;return r("div",{className:"sf-field",children:v({min:s.min,max:s.max,step:s.step,value:typeof o=="number"?o:s.fallback,suffix:a,ariaLabel:G,onChange:i})})}}),n=()=>ce("Unit",r(ye,{}),[{label:"px",value:"px"},{label:"%",value:"%"}],"px");return M({_gHeight:C(G),sectionHeightMode:R("desktop",e()),sectionHeightValue:R("desktop",t()),sectionHeightUnit:R("desktop",n()),sectionHeightModePhone:R("mobile",e(o=>r(Ho,{onClear:()=>o(void 0)}))),sectionHeightValuePhone:R("mobile",t()),sectionHeightUnitPhone:R("mobile",n())})}function Ho({onClear:e}){const t=Y(),n=xn(t),o=Cn(t),i=`${o.mode==="auto"?"Auto":`${o.value}${o.unit}`} on ${ne.desktop.toLowerCase()}`;return r(g,{label:G,changed:n,detail:i,onReset:e})}function Ni(){return{_gAnchor:C("Anchor"),anchor:po("Anchor name","e.g. about",so)}}function Ai(e,t,n){return{type:"custom",render:({value:o,onChange:i,id:l,name:a})=>{const s=`${l??a??e}-datetime`,c=Date.parse(typeof o=="string"?o:"");return r(f,{label:e,icon:t,htmlFor:s,hint:n,children:r(en,{id:s,value:Number.isFinite(c)?new Date(c):null,onChange:d=>i(d?d.toISOString():"")})})}}}function O(e,t,n){return{type:"custom",render:({value:o,onChange:i,id:l,name:a})=>{const s=typeof o=="boolean"?o:t,c=`${l??a??e}-label`;return r(f,{label:e,labelId:c,icon:n,action:r(qt,{checked:s,onChange:i,ariaLabelledBy:c})})}}}function Fi(){return{type:"custom",render:({value:e,onChange:t,id:n,name:o})=>{const i=`${String(n??o??"pageBackground")}-colour`;return r(f,{label:"Background",icon:r(Ee,{}),htmlFor:i,action:r(Oe,{id:i,label:"Background",value:$t(e),onChange:t})})}}}function Pi(e,t){return{type:"custom",render:({value:n,onChange:o,id:i})=>{const l=typeof n=="boolean"?n:t,a=`${i??e}-checkbox`;return r(f,{label:e,htmlFor:a,className:"sf-checkbox",action:r(Qt,{id:a,checked:l,onChange:o})})}}}function wi(e,t){return{type:"custom",render:({value:n,onChange:o})=>r(f,{label:e,action:Oe({value:n||t,onChange:o,label:e})})}}const Bo=[{value:"0% 0%",label:"Top left"},{value:"50% 0%",label:"Top"},{value:"100% 0%",label:"Top right"},{value:"0% 50%",label:"Left"},{value:"50% 50%",label:"Center"},{value:"100% 50%",label:"Right"},{value:"0% 100%",label:"Bottom left"},{value:"50% 100%",label:"Bottom"},{value:"100% 100%",label:"Bottom right"}];function Ve({label:e,value:t,onChange:n,points:o=Bo}){return r(Yt,{label:e,value:t,points:o,onChange:n})}function ki(e,t=me,n="mediaImage"){return{type:"custom",render:({value:o,onChange:i})=>r("div",{className:"sf-focal-row",children:r(Go,{label:e,value:o||t,onChange:i,imageProp:n})})}}function Go({label:e,value:t,onChange:n,imageProp:o}){const{selectedItem:i}=N(a=>a),l=i?.props?.[o];return r(pn,{label:e,value:t,onChange:n,image:typeof l=="string"?l:void 0})}const Mo=xe([]);function Di(e,{stacking:t,fallback:n=at}){return{type:"custom",render:({value:o,onChange:i})=>{const l=lt.includes(o)?o:n;return t?r($o,{label:e,value:l,onChange:i}):Ye({label:e,value:l,onChange:i,points:Mo})}}}function $o({label:e,value:t,onChange:n}){const{appState:o,selectedItem:i}=N(s=>s),l=i?.props?.id?String(i.props.id):void 0,a=l?it(o?.data,l):[];return Ye({label:e,value:t,onChange:n,points:xe(a,l)})}function Ye({label:e,value:t,onChange:n,points:o}){const i=o.find(l=>l.disabled);return r(f,{label:e,icon:r(Ft,{}),hint:i?i.title:void 0,children:Ve({label:e,value:st(t),onChange:n,points:o})})}const Hi={top:r(Ct,{}),right:r(xt,{}),bottom:r(gt,{}),left:r(bt,{})};function Bi(e,t,n,o,i,l){const a=m=>t.find(u=>u.value===m),s=m=>({value:m,label:"",disabled:!0,title:o}),c=m=>{const u=t.find(h=>h.cell===m);if(!u)return s(`missing-${m}`);const p=l?.[m];return p?{value:u.value,label:u.label,icon:p}:{value:u.value,label:u.label}},d=[s("corner-top-left"),c("top"),s("corner-top-right"),c("left"),s("centre"),c("right"),s("corner-bottom-left"),c("bottom"),s("corner-bottom-right")];return{type:"custom",render:({value:m,onChange:u})=>{const p=t.some(h=>h.value===m)?m:n;return r(f,{label:e,icon:i,value:a(p)?.label??"",children:Ve({label:e,value:p,onChange:u,points:d})})}}}const Wo="\0note";function L(e,t,n,o,i){return{type:"custom",options:n,fallback:o,...i?{note:i}:{},render:({value:l,onChange:a,field:s})=>{const c=s.options??n,d=s.fallback??o,m=c.some(u=>u.value===l)?l:d;return r(f,{label:e,icon:V(t),children:r(Jt,{value:m,ariaLabel:e,onChange:a,options:[...i?[{label:i,value:Wo,disabled:!0}]:[],...c.map(u=>({label:u.label,value:u.value}))]})})}}}function Gi(e,t,n){return{type:"custom",options:t,render:({value:o,onChange:i,field:l})=>r(fn,{label:e,options:l.options??t,value:Array.isArray(o)?o:[],onChange:i,...n?{emptyLabel:n}:{}})}}function Mi(e,t,n,o){return{type:"custom",options:t,fallback:n,render:({value:i,onChange:l,field:a})=>r(gn,{label:e,options:a.options??t,fallback:a.fallback??n,value:i,onChange:l,placeholder:o})}}function $i(e,t={}){return{type:"custom",render:({value:n,onChange:o})=>{const i={value:n,onChange:o,...t};return r(e,{...i})}}}function se({options:e,value:t,onChange:n,ariaLabel:o,disabled:i=!1}){return r(jt,{options:e.map(l=>({id:l.value,label:l.label,title:l.title})),value:t,onChange:n,ariaLabel:o,disabled:i})}const Wi=[{label:"Image",value:"image"},{label:"Video",value:"video"}];function ce(e,t,n,o){const i=n.map(l=>typeof l=="string"?{label:l,value:l}:l);return{type:"custom",render:({value:l,onChange:a,field:s})=>r(f,{label:e,icon:V(t),children:se({options:i,value:i.some(c=>c.value===l)?l:l||s?.currentValue||o,onChange:a,ariaLabel:e})})}}function Ui(e,t,n){return{type:"custom",[he]:!0,render:({value:o,onChange:i})=>r(mn,{value:o||"",onChange:i,label:e,accept:t,placeholder:n})}}const Ki={HeroSingle:["imageFocal"],ContactLocations:["locations[].photo"],ProcessSteps:["steps[].image"]};function Xi({value:e,onChange:t,label:n}){const o=e||{},i=!!o.pending,l=i?"var(--fg-dim, #888)":o.ok?"#1d9e75":"#d85a30",a=(s,c)=>t({...o,[s]:c===""?void 0:Number(c)});return y(f,{label:n,icon:r(Q,{}),children:[r("button",{type:"button",disabled:i,onClick:()=>t({...o,pending:!0,ok:!1,status:"Finding…"}),style:{width:"100%",display:"flex",alignItems:"center",justifyContent:"center",gap:6,padding:"8px 10px",fontSize:13,cursor:i?"default":"pointer",opacity:i?.6:1,border:"1px solid var(--border-strong, #ccc)",borderRadius:6,background:"transparent",color:"inherit"},children:i?"Finding…":"Find coordinates"}),o.status&&r("div",{style:{marginTop:6,fontSize:12,lineHeight:1.4,color:l},children:o.status}),r("div",{style:{marginTop:6,fontSize:11,color:"var(--fg-dim, #999)"},children:"Coordinates from OpenStreetMap"}),r("button",{type:"button",onClick:()=>t({...o,manual:!o.manual}),style:{marginTop:8,padding:0,border:"none",background:"none",font:"inherit",fontSize:12,color:"var(--sf-accent, #2563eb)",cursor:"pointer",textDecoration:"underline"},children:o.manual?"Hide manual coordinates":"Enter coordinates manually"}),o.manual&&y("div",{style:{marginTop:8,display:"grid",gap:8},children:[r(f,{label:"Latitude",icon:r(Q,{}),children:r("input",{type:"number",step:"any",placeholder:"e.g. 34.0990198",value:typeof o.lat=="number"?o.lat:"",onChange:s=>a("lat",s.target.value)})}),r(f,{label:"Longitude",icon:r(Q,{}),children:r("input",{type:"number",step:"any",placeholder:"e.g. -117.9842833",value:typeof o.lng=="number"?o.lng:"",onChange:s=>a("lng",s.target.value)})})]})]})}function Uo(e,t){return t===null||t<0||t>=e.length?"":e[t]?.text??""}function Ko(e,t,n){const o=e.map(i=>({text:i?.text??""}));return t===null||t<0||t>=e.length?o:o.map((i,l)=>l===t?{text:n}:i)}function zi(e,t){return e===null?null:t>e?e:null}function Xo(e,t,n){if(n===null||n>=t.length)return null;for(let o=0;o<n;o+=1)if(e[o]!==t[o])return null;return e[n]!==t[n]&&t.includes(e[n])||e[n]!==t[n]&&t.length!==e.length?null:n}const Vi={label:"Ticker items",icon:r(Rt,{})};function Yi(e,t,n,o){return{type:"custom",[T]:{control:"textList",label:e,placeholder:n,itemKey:"text",rendering:o},render:({value:i,onChange:l})=>r(zo,{label:e,icon:V(t),items:Array.isArray(i)?i:[],placeholder:n,onChange:l,markup:o==="markup"})}}function zo({label:e,icon:t,items:n,placeholder:o,onChange:i,markup:l=!1}){const a=q(null),[s,c]=ue(null),d=u=>u.map(p=>({text:p?.text??""}));return r(Zt,{label:e,icon:t,noun:"item",items:n,onChange:u=>{const p=Xo(n,u,s);p===null&&(a.current=null),c(p),i(d(u))},newItem:()=>({text:""}),open:null,onOpen:()=>{},renderItem:()=>null,above:l?r(Ne,{target:a,value:Uo(n,s),onChange:u=>i(Ko(n,s??-1,u)),disabled:s===null,label:s===null?"Formatting — click a row first":`Formatting — row ${s+1}`}):void 0,renderRow:(u,p,h)=>r("input",{type:"text",className:l&&s===p?"sf-list-marking":void 0,value:u?.text??"",placeholder:o,"aria-label":`${e} ${p+1}`,onChange:b=>h({text:b.target.value}),onFocus:b=>{a.current=b.currentTarget,c(p)}})})}function ji(e,t){const n=`${e.label} — row ${t+1}`;return D({control:"plainText",label:n,placeholder:e.placeholder,offPage:e.offPage},{type:"custom",render:({value:o,onChange:i})=>r(k,{value:o,onChange:i,label:n,placeholder:e.placeholder,hideable:!1,markup:e.rendering==="markup"})})}function qi(e){return{_gCards:C("Cards"),coverIndex:L("Cover image",r(Et,{}),cn,String(un),e?.coverHint??"A card's opening picture — a card pinned to a finish keeps its own."),imageBackground:bo("Image background",wn),cardImage:Vo(),spinOnHover:O("Rotate on hover",e?.spinDefault??!0,r(wt,{}))}}function Ji(){return{outline:L("Card outline",r(kt,{}),ln,sn),indexBadge:L("Card number",r(ye,{}),rn,an),showBadge:O("Product badge",!0,r(Te,{noun:"tag"}))}}function Zi(e){const t=e?.bottomDefault??!0;return{_gShowOnCard:C("Show on a card"),showCardPrice:O("Price",!0,r(St,{})),showCardFinishes:O("Finish swatches",!0,r(It,{})),showCardSizes:O("Sizes",t,r(Pt,{})),showCardBuy:O("Buy button",t,r(ft,{})),showCardPage:O("Page button",t,r(Ee,{}))}}function Vo(){return $("Card image",{min:B,max:W,step:et,hint:"Rounds the picture. The card's own corner is in Site styles."})}function Qi(){return $(nt,{min:B,max:W,step:tt,unsetLabel:"Square",hint:"Rounds the picture. Left alone it stays square."})}function el(){return{type:"custom",render:({value:e,onChange:t})=>r(Yo,{value:typeof e=="string"?e:"",onChange:t})}}function Yo({value:e,onChange:t}){const[n,o]=ue(null),i=be.filter(a=>n===null||A[a].across===n),l=e&&e in A?A[e]:null;return y(E,{children:[r(f,{label:"Photos in a row",icon:r(ht,{}),children:y("div",{className:"sf-gallery-filter",children:[r("button",{type:"button","aria-pressed":n===null,onClick:()=>o(null),children:"All"}),rt.map(a=>r("button",{type:"button","aria-pressed":n===a,onClick:()=>o(a),children:a},a))]})}),r(f,{label:"Layout",icon:r(_t,{}),value:l?l.label:"Not chosen",hint:`${i.length} of ${be.length} layouts`,children:r("div",{className:"sf-gallery-layouts",children:i.map(a=>r(K,{content:A[a].label,className:"sf-tile-tip",children:r("button",{type:"button","aria-pressed":e===a,"aria-label":A[a].label,onClick:()=>t(e===a?"":a),children:r("span",{className:"sf-gallery-pic",children:A[a].desktop.map(([s,c],d)=>r("i",{style:{gridColumn:`span ${s}`,gridRow:`span ${c}`}},d))})})},a))})})]})}export{so as ANCHOR_HINT,ei as BOUND_TO_POST_NOTE,li as BUCKET_ICONS,Ki as CUSTOM_FIELD_MEDIA,Xi as CoordsField,Hi as EDGE_ARROWS,me as FOCAL_DEFAULT,Bo as FOCAL_POINTS,J as FOLD_FIELD_MARKER,Ve as FocalPicker,go as GroupLabel,ao as HIGHLIGHT_HINT,k as HidableTextField,fe as LINK_FIELD_MARKER,jr as Label,he as MEDIA_FIELD_MARKER,Wi as MEDIA_TYPE_OPTIONS,ho as PanelNoteLine,Ye as PlacementGridView,ge as SCAFFOLD_FIELD_MARKER,rl as SCALAR_TEXT_CONTROLS,Xe as SECTION_BLEEDS_HINT,mo as SectionHeading,se as Segmented,ro as SiteGapDefaultReset,v as Slider,Ue as Swatches,ol as TEXT_CONTROL_KINDS,T as TEXT_FIELD_MARKER,Vi as TICKER_ITEMS_ROW,zo as TextListField,io as WidthDefaultReset,Xo as aimAfterListChange,Ni as anchorFields,w as backTo,pi as backgroundField,Ci as boxAlignField,_i as boxBlockSpacingField,xi as boxJustifyField,yi as boxPhoneRowField,Ii as boxShareField,Si as boxWrapField,di as bucketHeader,No as cardCornerSidesField,Lo as cardCornersField,bo as cardImageBackgroundField,Vo as cardImageField,qi as cardMediaFields,bi as cardShapeFields,Zi as cardShowFields,Ji as cardStyleFields,Ri as cellWidthFields,Pi as checkbox,wi as colorInput,oi as copyText,Ai as dateTime,Ei as directionField,Bi as edgePad,ai as entriesHiddenForTab,ki as focalPicker,zi as focusAfterRemove,Z as foldMetaOf,el as galleryLayoutField,fi as gapField,C as group,Oi as heightFields,pe as hidableText,uo as hintIsWhileTyping,V as iconOf,Qi as imageCornersField,ui as isBucketHeader,to as isNoGlyph,ri as linkField,Gi as multiSelect,eo as noGlyph,Fi as pageBackgroundField,si as panelNote,ko as phoneOverrideField,Di as placementField,po as plainText,ii as plainTextarea,$ as pxField,de as readHidable,Uo as rowText,Mi as searchSelect,ci as section,gi as sectionAnimationFields,xo as sectionCornerSidesField,So as sectionCornersField,hi as sectionShapeFields,mi as sectionThemeFields,ce as segmented,L as select,Ko as setRowText,Ti as sizeField,H as slider,$i as sourceField,Li as spacingFields,ti as text,Ze as textFieldIdentifier,Zr as textFieldOffPage,Yi as textList,ji as textListRowField,ni as textarea,O as toggle,Ui as upload,no as usePageWidthDetail,oo as useSiteGapDetail,vi as widthField,Qr as withIdentifier,Jr as withOffPage,qr as withScaffold};
@@ -1,4 +1,4 @@
1
1
  import type { Config } from "efficient-easel/blocks";
2
- export declare const GENERAL_REGISTRATION_ORDER: readonly ["Heading", "Text", "Eyebrow", "ImageBlock", "LogoBlock", "ButtonBlock", "Spacer", "Divider", "Grid", "Flex", "Breadcrumb", "Masthead", "CategoryBar", "FeaturedCover", "LongRead", "Series", "Banner", "ParagraphsA", "StatsParagraph", "Timeline", "Footprint", "TimelineTrack", "TitleWithButtons", "Stats", "Integrations", "Mockup", "Chart", "KeyFeatures", "Testimonials", "Prose", "Cards", "Logos", "Ticker", "ContactLocations", "HeroSingle", "Hero", "HeroSlide", "HeroGroup", "PostCard", "DocMetaCards", "DocTabs", "DocMasthead", "DocBody", "FAQ", "SpecStrip", "Manifesto", "SectionHeader", "IntroBleed", "Split", "ProcessSteps", "OrderSummary", "PaymentBadges", "CustomHTML"];
2
+ export declare const GENERAL_REGISTRATION_ORDER: readonly ["Heading", "Text", "Eyebrow", "ImageBlock", "LogoBlock", "ButtonBlock", "Spacer", "Divider", "Grid", "Flex", "Breadcrumb", "Masthead", "CategoryBar", "FeaturedCover", "LongRead", "Series", "Banner", "ParagraphsA", "StatsParagraph", "Timeline", "Footprint", "TimelineTrack", "TitleWithButtons", "Stats", "Integrations", "Mockup", "Chart", "KeyFeatures", "Testimonials", "Prose", "Cards", "Logos", "Ticker", "Countdown", "ContactLocations", "HeroSingle", "Hero", "HeroSlide", "HeroGroup", "PostCard", "DocMetaCards", "DocTabs", "DocMasthead", "DocBody", "FAQ", "SpecStrip", "Manifesto", "SectionHeader", "IntroBleed", "Split", "ProcessSteps", "OrderSummary", "PaymentBadges", "CustomHTML"];
3
3
  export declare const generalRegistry: Config;
4
4
  export default generalRegistry;
@@ -1 +1 @@
1
- import{jsx as a}from"react/jsx-runtime";import{assembleGeneralBlocks as l}from"./blocks/general/index.js";import{EditorThemedBody as m,PublishedPageFrame as u,suppressPreviewNav as g}from"./page-root.js";import{GENERAL_ROOT_FIELDS as f}from"./page-root-fields.js";import{finishRegistry as h}from"./registry.js";import{blockSetOf as B,buildPuckCategories as S}from"./section-catalog.js";const k=["Heading","Text","Eyebrow","ImageBlock","LogoBlock","ButtonBlock","Spacer","Divider","Grid","Flex","Breadcrumb","Masthead","CategoryBar","FeaturedCover","LongRead","Series","Banner","ParagraphsA","StatsParagraph","Timeline","Footprint","TimelineTrack","TitleWithButtons","Stats","Integrations","Mockup","Chart","KeyFeatures","Testimonials","Prose","Cards","Logos","Ticker","ContactLocations","HeroSingle","Hero","HeroSlide","HeroGroup","PostCard","DocMetaCards","DocTabs","DocMasthead","DocBody","FAQ","SpecStrip","Manifesto","SectionHeader","IntroBleed","Split","ProcessSteps","OrderSummary","PaymentBadges","CustomHTML"];function T(e){const o=Object.fromEntries(Object.entries(e.fields??{}).map(([t,r])=>[t,r&&typeof r=="object"&&r.type==="slot"?{...r}:r]));return{...e,...e.fields?{fields:o}:null}}function y(){const e={};for(const[o,t]of Object.entries(S())){const r=t.components.filter(s=>B(s)==="general");(r.length>0||o==="structure")&&(e[o]={...t,components:r})}return e}const E=l(),c={root:{fields:{...f},render:e=>{const{children:o,puck:t,widthMode:r,fullWidth:s,pageWidth:i,pageBackground:n,theme:d,fonts:p}=e;return t?.isEditing?a(m,{propsTheme:d,propsFonts:p,widthMode:r,fullWidth:s,pageWidth:i,pageBackground:typeof n=="string"?n:void 0,suppressPreviewNav:g,children:o}):a(u,{pageBackground:n,w:{widthMode:r,fullWidth:s,pageWidth:i},children:o})}},categories:y(),components:Object.fromEntries(k.map(e=>[e,T(E[e])]))};h(c);var L=c;export{k as GENERAL_REGISTRATION_ORDER,L as default,c as generalRegistry};
1
+ import{jsx as a}from"react/jsx-runtime";import{assembleGeneralBlocks as l}from"./blocks/general/index.js";import{EditorThemedBody as u,PublishedPageFrame as m,suppressPreviewNav as g}from"./page-root.js";import{GENERAL_ROOT_FIELDS as f}from"./page-root-fields.js";import{finishRegistry as h}from"./registry.js";import{blockSetOf as B,buildPuckCategories as S}from"./section-catalog.js";const k=["Heading","Text","Eyebrow","ImageBlock","LogoBlock","ButtonBlock","Spacer","Divider","Grid","Flex","Breadcrumb","Masthead","CategoryBar","FeaturedCover","LongRead","Series","Banner","ParagraphsA","StatsParagraph","Timeline","Footprint","TimelineTrack","TitleWithButtons","Stats","Integrations","Mockup","Chart","KeyFeatures","Testimonials","Prose","Cards","Logos","Ticker","Countdown","ContactLocations","HeroSingle","Hero","HeroSlide","HeroGroup","PostCard","DocMetaCards","DocTabs","DocMasthead","DocBody","FAQ","SpecStrip","Manifesto","SectionHeader","IntroBleed","Split","ProcessSteps","OrderSummary","PaymentBadges","CustomHTML"];function T(e){const r=Object.fromEntries(Object.entries(e.fields??{}).map(([t,o])=>[t,o&&typeof o=="object"&&o.type==="slot"?{...o}:o]));return{...e,...e.fields?{fields:r}:null}}function y(){const e={};for(const[r,t]of Object.entries(S())){const o=t.components.filter(s=>B(s)==="general");(o.length>0||r==="structure")&&(e[r]={...t,components:o})}return e}const E=l(),c={root:{fields:{...f},render:e=>{const{children:r,puck:t,widthMode:o,fullWidth:s,pageWidth:i,pageBackground:n,theme:d,fonts:p}=e;return t?.isEditing?a(u,{propsTheme:d,propsFonts:p,widthMode:o,fullWidth:s,pageWidth:i,pageBackground:typeof n=="string"?n:void 0,suppressPreviewNav:g,children:r}):a(m,{pageBackground:n,w:{widthMode:o,fullWidth:s,pageWidth:i},children:r})}},categories:y(),components:Object.fromEntries(k.map(e=>[e,T(E[e])]))};h(c);var F=c;export{k as GENERAL_REGISTRATION_ORDER,F as default,c as generalRegistry};
@@ -1 +1 @@
1
- const p=["general","commerce","service"],o=[{key:"openers",title:"Hero & intros",defaultExpanded:!0,templateable:!0,sections:[{type:"Hero",label:"Hero Slideshow",set:"general"},{type:"HeroSingle",label:"Hero",set:"general"},{type:"IntroBleed",label:"Scroll-Over Text",set:"general"}]},{key:"shop",title:"Shop & galleries",templateable:!0,sections:[{type:"Collections",label:"Collections",set:"commerce"},{type:"BrandStrip",label:"Brand Strip",set:"commerce"},{type:"AlloyWheelsListing",label:"List",set:"commerce"},{type:"CatalogFilterBar",label:"Catalog Filter Bar",set:"commerce"},{type:"ProductGrid",label:"Product Grid",set:"commerce"},{type:"FitmentFinder",label:"Fitment Form",set:"commerce"},{type:"Gallery",label:"Tabbed Gallery",set:"commerce"},{type:"GalleryB",label:"Customer Photo Grid",set:"commerce"},{type:"SpecStrip",label:"Spec Strip",set:"general"}]},{key:"product",title:"Product page",templateable:!0,sections:[{type:"ProductHero",label:"Product Hero",set:"commerce"},{type:"SpecTable",label:"Spec Table",set:"commerce"},{type:"ProcessSteps",label:"Image & Text Columns",set:"general"},{type:"DetailRows",label:"Feature Rows",set:"commerce"},{type:"FitmentTable",label:"Fitment Table",set:"commerce"},{type:"TyreSizes",label:"Tyre Sizes",set:"commerce"},{type:"TyreFitment",label:"Tyre Fitment Form",set:"commerce"},{type:"EuTyreLabel",label:"EU Tyre Label",set:"commerce"},{type:"RelatedProducts",label:"Related Products",set:"commerce"},{type:"BundleOffer",label:"Bundle Products",set:"commerce"}]},{key:"checkout",title:"Checkout & ordering",templateable:!0,sections:[{type:"OrderSummary",label:"Order Table",set:"general"},{type:"DeliveryOptions",label:"Delivery Options",set:"commerce"},{type:"PaymentBadges",label:"Payment Methods",set:"general"},{type:"CheckoutCTA",label:"Ready-to-Order Banner",set:"commerce"}]},{key:"about",title:"About & brand story",templateable:!0,sections:[{type:"Manifesto",label:"Brand Text",set:"general"},{type:"Timeline",label:"Story Timeline",set:"general"},{type:"TimelineTrack",label:"Milestone Timeline",set:"general"},{type:"Footprint",label:"Locations Map",set:"general"}]},{key:"content",title:"Text & content",templateable:!0,sections:[{type:"Prose",label:"Editorial Text",set:"general"},{type:"ParagraphsA",label:"Lead Text",set:"general"},{type:"Split",label:"Image & Text Split",set:"general"},{type:"Cards",label:"Cards",set:"general"},{type:"KeyFeatures",label:"Key Features",set:"general"}]},{key:"proof",title:"Stats & social proof",templateable:!0,sections:[{type:"Stats",label:"Stats",set:"general"},{type:"StatsParagraph",label:"Stats with Text",set:"general"},{type:"Chart",label:"Chart",set:"general"},{type:"Mockup",label:"Mockup Card",set:"general"},{type:"Testimonials",label:"Testimonials",set:"general"},{type:"Reviews",label:"Reviews",set:"service"},{type:"Logos",label:"Logos",set:"general"}]},{key:"promo",title:"Promotions & sign-ups",templateable:!0,sections:[{type:"Banner",label:"Banner",set:"general"},{type:"TitleWithButtons",label:"Call-to-Action Heading",set:"general"},{type:"Ticker",label:"Scrolling Bar",set:"general"},{type:"Subscribe",label:"Signup Form",set:"service"}]},{key:"blog",title:"Blog & journal",templateable:!0,sections:[{type:"Masthead",label:"Issue Header",set:"general"},{type:"FeaturedCover",label:"Feature Banner",set:"general"},{type:"LongRead",label:"Article Text",set:"general"},{type:"Series",label:"Recurring Columns",set:"general"},{type:"Events",label:"Latest Posts",set:"service"}]},{key:"navigation",title:"Navigation & wayfinding",templateable:!0,sections:[{type:"Breadcrumb",label:"Breadcrumb",set:"general"},{type:"CategoryBar",label:"Category Bar",set:"general"},{type:"DocTabs",label:"Document Tabs",set:"general"}]},{key:"legal",title:"Legal & documents",templateable:!0,sections:[{type:"DocMasthead",label:"Document Header",set:"general"},{type:"DocBody",label:"Document Text",set:"general"},{type:"DocMetaCards",label:"Document Detail Cards",set:"general"}]},{key:"contact",title:"Contact, FAQ & forms",templateable:!0,sections:[{type:"FAQ",label:"Q&A",set:"general"},{type:"ContactRouting",label:"Contact Form",set:"service"},{type:"ContactLocations",label:"Contact / Locations",set:"general"},{type:"SubmitBuild",label:"Photo Submission Form",set:"service"},{type:"ReviewForm",label:"Review Form",set:"service"},{type:"Form",label:"Form",set:"service"},{type:"AppointmentBooking",label:"Booking Form",set:"service"}]},{key:"structure",title:"Layout, structure & embeds",templateable:!1,sections:[{type:"SectionHeader",label:"Section Header",set:"general"},{type:"Flex",label:"Box",set:"general"},{type:"Spacer",label:"Spacer",set:"general"},{type:"Divider",label:"Divider",set:"general"},{type:"CustomHTML",label:"Custom HTML",set:"general"}]}];function h(){return Object.fromEntries(o.map(e=>[e.key,{title:e.title,components:e.sections.map(t=>t.type),...e.defaultExpanded?{defaultExpanded:!0}:{}}]))}const l={Grid:'Lewis, 2026-09-14: Box and Grid duplicate each other and it feels confusing. 2026-09-15 he chose the order: give Box uneven widths FIRST, then merge Grid into Box. Shown three ways to pick the widths (mockup "Uneven Box Widths"), he chose A — shape pictures on the Box\'s `Block widths` row, the same "a row is a shape, pick a picture of it" rule he set for the photo wall on 2026-09-07.\n\nWHAT REPLACES IT: a Box set to One row, with `Block widths` at Equal or a shape (Big left, Big right, Bigger left, Bigger right) and its own `Columns on phone`. Measured on PRODUCTION 2026-09-16 ~09:28 AEST (database `efficient-system`, all 10 tenant schemas, 128 storefront pages, both `layout` and `published_layout` — 256 documents): 2 Grid nodes, and they are ONE Grid counted twice — the 9DIEM homepage on 9diem.com (`xtreme_mudder` schema), once as draft and once as published. It is top-level, holds three `ImageBlock`s at `columns` 3 — equal thirds — and NO block sets `Positions`. A Box draws that with `Block widths` at Equal.\n\n⚠️ THE COUNT MOVES; THE RULE MUST NOT DEPEND ON IT. This entry has already carried three different readings. A local-clone snapshot said no Grid used `Positions`. A PRODUCTION reading on 2026-09-15 ~13:15 AEST found 6 nodes on two sites, 4 of them spanned — hartesmetal.com.au homepage and about, 4 columns, spans 1 + 3. That one was TRUE when it was taken and stopped being true the same day: those two pages were rebuilt on Box (`Block widths: Bigger right`), and on 2026-09-16 they hold zero Grid nodes and are built from `Flex`. ⛔ So the rule is NOT "there are still N spanned Grids". NEVER delete the Grid component or its `gridSpan` handling, whatever a census says — Grid still renders, still edits, still drags, and a merchant may rebuild a page either way on any day. Re-run the census on production before anyone PROPOSES deleting either, and read any number written here as the reading of its own day, not as the state of the world.\n\nWHAT A MERCHANT LOSES: a new Grid, and with it a fixed "N per row" that wraps by itself past three across, and the per-block `Positions` number. Box wraps with `Wrap`, but by content width, not by a fixed count.\n\nTHE TYPE KEY STAYS AND SO DOES THE COMPONENT. Every page holding a Grid still renders through it and can still be edited, dragged and added to; no document is rewritten and NO MIGRATION RUNS — the owner redoes live sections himself.\n\n⚠️ AND IT STAYS DROPPABLE WHERE IT LIVES. The drop rule in lib/puck/config.tsx read the nestable containers off the catalogue\'s `structure` row, so leaving the catalogue would have made every open slot — a Box included — refuse a Grid already stored inside one. `scripts/test-retired-grid-stays-editable.tsx` §3 pins it.',CompatibleTyres:'Lewis, 2026-09-09: "Do not bother counting. Delete Compatible Tyres and use the new one. The new one needs complete settings — it must have every setting our cards have." Shown three ways to finish it, he chose C: retire from the menu now, and take styling the card text as its own card.\n\nWHAT REPLACES IT: `RelatedProducts` with its `Show` dropdown set to "Tyres that fit this product". That block is the GENERIC relationship section from card 1128 — it knows nothing about wheels or tyres, it asks the registry for a relationship by name. The two have rendered through the SAME renderer (`DynamicRelatedProducts`) since that card; this one is the pre-registry one-off that was never removed.\n\n⚠️ THE SWAP WAS NOT SAFE UNTIL #1305, AND SAYING SO IS THE POINT. The first old-versus-new table put in front of the owner was WRONG. `DynamicRelatedProducts` returns EARLY on a tyre answer and draws this component, so the seven card settings, the head split and the Width control all stopped at that call — nine settings, measured NO EFFECT, on precisely the relationship that replaces this block. #1283 gave the new block the card settings, #1299 the head split and its own Width, #1305 carried all of it onto the tyre branch. Only then was the claim true.\n\nWHAT WAS MEASURED BEFORE RETIRING, four ways, because the premise decides the card:\n • settable text kinds (SECTION_TEXT_KINDS): both blocks ABSENT — the map holds only TimelineTrack and Footprint, both AUTHORED lists\n • read-only text regions: neither `components/CompatibleTyres` nor `components/TyreCard` stamps one\n • panel rows through resolveFields: this block 31, `RelatedProducts` 42. This block\'s only style-ish key is `_sStyle`, the bucket HEADER, not a control\n • head text (num/title/description) is authored on both, so `_partStyles` reaches it identically\nSo on the CARD runs the two are zero against zero — neither can style them — and everywhere else the new block is ahead. Styling those runs needs a section-level prop family and a paint path for DERIVED text, which no section has yet: a part is anchored by matching an AUTHORED prop\'s string against the DOM, and `lib/puck/source-bound-parts` keeps hydrated copy unreachable on purpose so a merchant cannot type into a copy of a product name and lose it at the next sync. That is its own card, and `lib/sections/text-regions` is the read-only half that already ships.\n\nTHE TYPE KEY STAYS AND SO DOES THE COMPONENT, the same contract Subscribe, Split and SubscribeBlogs have. Every page holding a `CompatibleTyres` still renders through it, no published document is rewritten, and NO MIGRATION RUNS — the owner\'s standing ruling of 2026-09-05: he redoes live sections himself and deletes the old ones when he does. He also said explicitly not to count them first.\n\n⚠️ AND THIS COMPONENT IS LOAD-BEARING FOR ITS OWN REPLACEMENT: `DynamicRelatedProducts` draws it for EVERY tyre answer. Deleting it would blank the block that replaces it, not just the pages still holding this one.',SubscribeBlogs:"card 66396 — folded into `Subscribe`, which now chooses its rail's content with a `Type` control (the newsletter's own issues, or live blog posts). The two shared 21 of their fields and rendered THE SAME BYTES from equivalent rows, so offering both asked a merchant to choose between two names for one section. The type key stays because it is stored on published pages, and the component stays because those pages still render through it."},m=["Grid"],y=Array.from(new Set([...o.flatMap(e=>e.sections.map(t=>t.type)),...Object.keys(l)])),u=Object.fromEntries(o.flatMap(e=>e.sections.map(t=>[t.type,t.label]))),i={Heading:"general",Text:"general",Eyebrow:"general",ImageBlock:"general",LogoBlock:"general",ButtonBlock:"general",PostCard:"general",HeroSlide:"general",HeroGroup:"general",Integrations:"general",Grid:"general",CollectionCard:"commerce",GalleryItem:"commerce",ProductRef:"commerce",CompatibleTyres:"commerce",Header:"commerce",SearchBlock:"commerce",CartBlock:"commerce",CountrySwitchBlock:"commerce",SubmitBox:"service",BookingBox:"service",SubscribeBlogs:"service",Footer:"service",FooterLogo:"service",FooterMenu:"service",FooterDivider:"service",FooterGroup:"service",FooterText:"service",FooterEmailSignup:"service",FooterSocial:"service",MenuBlock:"service",EmailFormBlock:"service",SocialLogosBlock:"service",LegalLineBlock:"service",SiteHeader:"service",SiteFooter:"service"},a={...i,...Object.fromEntries(o.flatMap(e=>e.sections.map(t=>[t.type,t.set])))};function b(e){return Object.prototype.hasOwnProperty.call(a,e)?a[e]:void 0}function r(e){return Object.keys(a).filter(t=>a[t]===e).sort()}const g=r("general"),T=r("commerce"),S=r("service"),c="Flex",s="Box",E=`${s}es`;function d(e){return e==="section"?"Blank section":s}function w(e,t,n){return e===c?d(t):n}export{y as ALL_SECTION_TYPES,p as BLOCK_SETS,s as BOX_LABEL,E as BOX_LABEL_PLURAL,T as COMMERCE_BLOCKS,g as GENERAL_BLOCKS,c as LEVEL_NAMED_TYPE,m as RETIRED_NESTABLE_SECTIONS,l as RETIRED_SECTIONS,o as SECTION_CATALOG,u as SECTION_LABELS,S as SERVICE_BLOCKS,i as UNLISTED_BLOCK_SETS,b as blockSetOf,r as blocksInSet,h as buildPuckCategories,w as labelAtLevel,d as labelForFlex};
1
+ const p=["general","commerce","service"],o=[{key:"openers",title:"Hero & intros",defaultExpanded:!0,templateable:!0,sections:[{type:"Hero",label:"Hero Slideshow",set:"general"},{type:"HeroSingle",label:"Hero",set:"general"},{type:"IntroBleed",label:"Scroll-Over Text",set:"general"}]},{key:"shop",title:"Shop & galleries",templateable:!0,sections:[{type:"Collections",label:"Collections",set:"commerce"},{type:"BrandStrip",label:"Brand Strip",set:"commerce"},{type:"AlloyWheelsListing",label:"List",set:"commerce"},{type:"CatalogFilterBar",label:"Catalog Filter Bar",set:"commerce"},{type:"ProductGrid",label:"Product Grid",set:"commerce"},{type:"FitmentFinder",label:"Fitment Form",set:"commerce"},{type:"Gallery",label:"Tabbed Gallery",set:"commerce"},{type:"GalleryB",label:"Customer Photo Grid",set:"commerce"},{type:"SpecStrip",label:"Spec Strip",set:"general"}]},{key:"product",title:"Product page",templateable:!0,sections:[{type:"ProductHero",label:"Product Hero",set:"commerce"},{type:"SpecTable",label:"Spec Table",set:"commerce"},{type:"ProcessSteps",label:"Image & Text Columns",set:"general"},{type:"DetailRows",label:"Feature Rows",set:"commerce"},{type:"FitmentTable",label:"Fitment Table",set:"commerce"},{type:"TyreSizes",label:"Tyre Sizes",set:"commerce"},{type:"TyreFitment",label:"Tyre Fitment Form",set:"commerce"},{type:"EuTyreLabel",label:"EU Tyre Label",set:"commerce"},{type:"RelatedProducts",label:"Related Products",set:"commerce"},{type:"BundleOffer",label:"Bundle Products",set:"commerce"}]},{key:"checkout",title:"Checkout & ordering",templateable:!0,sections:[{type:"OrderSummary",label:"Order Table",set:"general"},{type:"DeliveryOptions",label:"Delivery Options",set:"commerce"},{type:"PaymentBadges",label:"Payment Methods",set:"general"},{type:"CheckoutCTA",label:"Ready-to-Order Banner",set:"commerce"}]},{key:"about",title:"About & brand story",templateable:!0,sections:[{type:"Manifesto",label:"Brand Text",set:"general"},{type:"Timeline",label:"Story Timeline",set:"general"},{type:"TimelineTrack",label:"Milestone Timeline",set:"general"},{type:"Footprint",label:"Locations Map",set:"general"}]},{key:"content",title:"Text & content",templateable:!0,sections:[{type:"Prose",label:"Editorial Text",set:"general"},{type:"ParagraphsA",label:"Lead Text",set:"general"},{type:"Split",label:"Image & Text Split",set:"general"},{type:"Cards",label:"Cards",set:"general"},{type:"KeyFeatures",label:"Key Features",set:"general"}]},{key:"proof",title:"Stats & social proof",templateable:!0,sections:[{type:"Stats",label:"Stats",set:"general"},{type:"StatsParagraph",label:"Stats with Text",set:"general"},{type:"Chart",label:"Chart",set:"general"},{type:"Mockup",label:"Mockup Card",set:"general"},{type:"Testimonials",label:"Testimonials",set:"general"},{type:"Reviews",label:"Reviews",set:"service"},{type:"Logos",label:"Logos",set:"general"}]},{key:"promo",title:"Promotions & sign-ups",templateable:!0,sections:[{type:"Banner",label:"Banner",set:"general"},{type:"TitleWithButtons",label:"Call-to-Action Heading",set:"general"},{type:"Ticker",label:"Scrolling Bar",set:"general"},{type:"Countdown",label:"Countdown",set:"general"},{type:"Subscribe",label:"Signup Form",set:"service"}]},{key:"blog",title:"Blog & journal",templateable:!0,sections:[{type:"Masthead",label:"Issue Header",set:"general"},{type:"FeaturedCover",label:"Feature Banner",set:"general"},{type:"LongRead",label:"Article Text",set:"general"},{type:"Series",label:"Recurring Columns",set:"general"},{type:"Events",label:"Latest Posts",set:"service"}]},{key:"navigation",title:"Navigation & wayfinding",templateable:!0,sections:[{type:"Breadcrumb",label:"Breadcrumb",set:"general"},{type:"CategoryBar",label:"Category Bar",set:"general"},{type:"DocTabs",label:"Document Tabs",set:"general"}]},{key:"legal",title:"Legal & documents",templateable:!0,sections:[{type:"DocMasthead",label:"Document Header",set:"general"},{type:"DocBody",label:"Document Text",set:"general"},{type:"DocMetaCards",label:"Document Detail Cards",set:"general"}]},{key:"contact",title:"Contact, FAQ & forms",templateable:!0,sections:[{type:"FAQ",label:"Q&A",set:"general"},{type:"ContactRouting",label:"Contact Form",set:"service"},{type:"ContactLocations",label:"Contact / Locations",set:"general"},{type:"SubmitBuild",label:"Photo Submission Form",set:"service"},{type:"ReviewForm",label:"Review Form",set:"service"},{type:"Form",label:"Form",set:"service"},{type:"AppointmentBooking",label:"Booking Form",set:"service"}]},{key:"structure",title:"Layout, structure & embeds",templateable:!1,sections:[{type:"SectionHeader",label:"Section Header",set:"general"},{type:"Flex",label:"Box",set:"general"},{type:"Spacer",label:"Spacer",set:"general"},{type:"Divider",label:"Divider",set:"general"},{type:"CustomHTML",label:"Custom HTML",set:"general"}]}];function h(){return Object.fromEntries(o.map(e=>[e.key,{title:e.title,components:e.sections.map(t=>t.type),...e.defaultExpanded?{defaultExpanded:!0}:{}}]))}const l={Grid:'Lewis, 2026-09-14: Box and Grid duplicate each other and it feels confusing. 2026-09-15 he chose the order: give Box uneven widths FIRST, then merge Grid into Box. Shown three ways to pick the widths (mockup "Uneven Box Widths"), he chose A — shape pictures on the Box\'s `Block widths` row, the same "a row is a shape, pick a picture of it" rule he set for the photo wall on 2026-09-07.\n\nWHAT REPLACES IT: a Box set to One row, with `Block widths` at Equal or a shape (Big left, Big right, Bigger left, Bigger right) and its own `Columns on phone`. Measured on PRODUCTION 2026-09-16 ~09:28 AEST (database `efficient-system`, all 10 tenant schemas, 128 storefront pages, both `layout` and `published_layout` — 256 documents): 2 Grid nodes, and they are ONE Grid counted twice — the 9DIEM homepage on 9diem.com (`xtreme_mudder` schema), once as draft and once as published. It is top-level, holds three `ImageBlock`s at `columns` 3 — equal thirds — and NO block sets `Positions`. A Box draws that with `Block widths` at Equal.\n\n⚠️ THE COUNT MOVES; THE RULE MUST NOT DEPEND ON IT. This entry has already carried three different readings. A local-clone snapshot said no Grid used `Positions`. A PRODUCTION reading on 2026-09-15 ~13:15 AEST found 6 nodes on two sites, 4 of them spanned — hartesmetal.com.au homepage and about, 4 columns, spans 1 + 3. That one was TRUE when it was taken and stopped being true the same day: those two pages were rebuilt on Box (`Block widths: Bigger right`), and on 2026-09-16 they hold zero Grid nodes and are built from `Flex`. ⛔ So the rule is NOT "there are still N spanned Grids". NEVER delete the Grid component or its `gridSpan` handling, whatever a census says — Grid still renders, still edits, still drags, and a merchant may rebuild a page either way on any day. Re-run the census on production before anyone PROPOSES deleting either, and read any number written here as the reading of its own day, not as the state of the world.\n\nWHAT A MERCHANT LOSES: a new Grid, and with it a fixed "N per row" that wraps by itself past three across, and the per-block `Positions` number. Box wraps with `Wrap`, but by content width, not by a fixed count.\n\nTHE TYPE KEY STAYS AND SO DOES THE COMPONENT. Every page holding a Grid still renders through it and can still be edited, dragged and added to; no document is rewritten and NO MIGRATION RUNS — the owner redoes live sections himself.\n\n⚠️ AND IT STAYS DROPPABLE WHERE IT LIVES. The drop rule in lib/puck/config.tsx read the nestable containers off the catalogue\'s `structure` row, so leaving the catalogue would have made every open slot — a Box included — refuse a Grid already stored inside one. `scripts/test-retired-grid-stays-editable.tsx` §3 pins it.',CompatibleTyres:'Lewis, 2026-09-09: "Do not bother counting. Delete Compatible Tyres and use the new one. The new one needs complete settings — it must have every setting our cards have." Shown three ways to finish it, he chose C: retire from the menu now, and take styling the card text as its own card.\n\nWHAT REPLACES IT: `RelatedProducts` with its `Show` dropdown set to "Tyres that fit this product". That block is the GENERIC relationship section from card 1128 — it knows nothing about wheels or tyres, it asks the registry for a relationship by name. The two have rendered through the SAME renderer (`DynamicRelatedProducts`) since that card; this one is the pre-registry one-off that was never removed.\n\n⚠️ THE SWAP WAS NOT SAFE UNTIL #1305, AND SAYING SO IS THE POINT. The first old-versus-new table put in front of the owner was WRONG. `DynamicRelatedProducts` returns EARLY on a tyre answer and draws this component, so the seven card settings, the head split and the Width control all stopped at that call — nine settings, measured NO EFFECT, on precisely the relationship that replaces this block. #1283 gave the new block the card settings, #1299 the head split and its own Width, #1305 carried all of it onto the tyre branch. Only then was the claim true.\n\nWHAT WAS MEASURED BEFORE RETIRING, four ways, because the premise decides the card:\n • settable text kinds (SECTION_TEXT_KINDS): both blocks ABSENT — the map holds only TimelineTrack and Footprint, both AUTHORED lists\n • read-only text regions: neither `components/CompatibleTyres` nor `components/TyreCard` stamps one\n • panel rows through resolveFields: this block 31, `RelatedProducts` 42. This block\'s only style-ish key is `_sStyle`, the bucket HEADER, not a control\n • head text (num/title/description) is authored on both, so `_partStyles` reaches it identically\nSo on the CARD runs the two are zero against zero — neither can style them — and everywhere else the new block is ahead. Styling those runs needs a section-level prop family and a paint path for DERIVED text, which no section has yet: a part is anchored by matching an AUTHORED prop\'s string against the DOM, and `lib/puck/source-bound-parts` keeps hydrated copy unreachable on purpose so a merchant cannot type into a copy of a product name and lose it at the next sync. That is its own card, and `lib/sections/text-regions` is the read-only half that already ships.\n\nTHE TYPE KEY STAYS AND SO DOES THE COMPONENT, the same contract Subscribe, Split and SubscribeBlogs have. Every page holding a `CompatibleTyres` still renders through it, no published document is rewritten, and NO MIGRATION RUNS — the owner\'s standing ruling of 2026-09-05: he redoes live sections himself and deletes the old ones when he does. He also said explicitly not to count them first.\n\n⚠️ AND THIS COMPONENT IS LOAD-BEARING FOR ITS OWN REPLACEMENT: `DynamicRelatedProducts` draws it for EVERY tyre answer. Deleting it would blank the block that replaces it, not just the pages still holding this one.',SubscribeBlogs:"card 66396 — folded into `Subscribe`, which now chooses its rail's content with a `Type` control (the newsletter's own issues, or live blog posts). The two shared 21 of their fields and rendered THE SAME BYTES from equivalent rows, so offering both asked a merchant to choose between two names for one section. The type key stays because it is stored on published pages, and the component stays because those pages still render through it."},m=["Grid"],y=Array.from(new Set([...o.flatMap(e=>e.sections.map(t=>t.type)),...Object.keys(l)])),u=Object.fromEntries(o.flatMap(e=>e.sections.map(t=>[t.type,t.label]))),i={Heading:"general",Text:"general",Eyebrow:"general",ImageBlock:"general",LogoBlock:"general",ButtonBlock:"general",PostCard:"general",HeroSlide:"general",HeroGroup:"general",Integrations:"general",Grid:"general",CollectionCard:"commerce",GalleryItem:"commerce",ProductRef:"commerce",CompatibleTyres:"commerce",Header:"commerce",SearchBlock:"commerce",CartBlock:"commerce",CountrySwitchBlock:"commerce",AccountBlock:"commerce",ThemeSwitchBlock:"commerce",SubmitBox:"service",BookingBox:"service",SubscribeBlogs:"service",Footer:"service",FooterLogo:"service",FooterMenu:"service",FooterDivider:"service",FooterGroup:"service",FooterText:"service",FooterEmailSignup:"service",FooterSocial:"service",MenuBlock:"service",EmailFormBlock:"service",SocialLogosBlock:"service",LegalLineBlock:"service",SiteHeader:"service",SiteFooter:"service"},a={...i,...Object.fromEntries(o.flatMap(e=>e.sections.map(t=>[t.type,t.set])))};function b(e){return Object.prototype.hasOwnProperty.call(a,e)?a[e]:void 0}function r(e){return Object.keys(a).filter(t=>a[t]===e).sort()}const g=r("general"),T=r("commerce"),S=r("service"),c="Flex",s="Box",E=`${s}es`;function d(e){return e==="section"?"Blank section":s}function w(e,t,n){return e===c?d(t):n}export{y as ALL_SECTION_TYPES,p as BLOCK_SETS,s as BOX_LABEL,E as BOX_LABEL_PLURAL,T as COMMERCE_BLOCKS,g as GENERAL_BLOCKS,c as LEVEL_NAMED_TYPE,m as RETIRED_NESTABLE_SECTIONS,l as RETIRED_SECTIONS,o as SECTION_CATALOG,u as SECTION_LABELS,S as SERVICE_BLOCKS,i as UNLISTED_BLOCK_SETS,b as blockSetOf,r as blocksInSet,h as buildPuckCategories,w as labelAtLevel,d as labelForFlex};
@@ -1 +1 @@
1
- const e={Hero:"Full-screen opener with rotating slides.",HeroSingle:"Full-screen image or video with a headline.",IntroBleed:"Full-bleed intro image the next section scrolls over.",Collections:"Product collections in a tidy grid.",AlloyWheelsListing:"A full product-listing page: filter rail, sortable card grid and pagination, from the live catalog. Choose which product types it shows.",CatalogFilterBar:"Filters the collection grids below it — a sticky row of Pills (the default), or Columns, one per filter you switch on.",ProductGrid:"Hand-picked products in a tidy grid.",FitmentFinder:"A vehicle picker — make, model, year and trim resolve the OEM stock fitment live.",Gallery:"Two image galleries with tabs and filters.",GalleryB:"Customer photos in a card grid with a click-to-open lightbox.",SpecStrip:"A thin one-line spec strip — small-caps items spread across the width, as a dark band or a bare hairline row.",ProductHero:"A product hero — image beside price, bullets and a buy button.",SpecTable:"A spec sheet — labeled rows of product specifications.",ProcessSteps:"A heading over columns of image, title, blurb and specs.",DetailRows:"Repeating full-width rows — eyebrow, title and copy beside a numbered close-up image, alternating sides each row.",FitmentTable:"A fitment table — per-size bolt patterns, offsets and load ratings, filterable by diameter.",CompatibleTyres:"The current product's compatible tyres — image, size, key specs and price per tyre, with an inquiry link. Display only.",RelatedProducts:"The current product's related items in a tidy row — the product page's built-in 'Pair with' cross-sell.",OrderSummary:"A display order-summary panel — items, totals and a note.",DeliveryOptions:"Delivery tiers as cards — name, window and price, one highlighted.",PaymentBadges:"A payment-methods trust strip with reassurance lines.",CheckoutCTA:"A centered 'ready to order?' headline with the checkout button.",Manifesto:"A bold brand statement beside a full-height image, with a stat strip.",ParagraphsA:"An editorial text panel with a stat strip and founders' note.",StatsParagraph:"An editorial heading and paragraph over a row of theme-color-accented stat cards.",Chart:"A titled chart — bars, line or donut — drawn from your own labeled data points.",Mockup:"A headline beside a stylized product-UI mockup card — spec sheet, fitment, portal, kanban and more.",Prose:"A plain editorial text section — eyebrow, heading and body copy.",Timeline:"An editorial aside beside a rail-marked timeline of dated entries.",TimelineTrack:"A horizontal year track of milestones — company history or roadmap.",Footprint:"A world map of your locations with a legend — designed here, sold worldwide.",TitleWithButtons:"A big headline beside a stack of call-to-action buttons.",Split:"Side-by-side image and text in two columns.",Cards:"A heading over a grid of free-text title-and-blurb cards.",FAQ:"A frequently-asked-questions accordion with a header.",Testimonials:"Customer quotes in a grid — the quote, a name and a role.",Masthead:"A journal issue header with a lead statement and contents.",Breadcrumb:"A slim trail showing where the reader is (Home / Journal…).",CategoryBar:"A sticky row of category tabs with counts and links.",FeaturedCover:"A featured article — big cover image beside a headline and dek.",LongRead:"A long-form article spread with a pull-quote and cover image.",Series:"A section heading over a grid of column cards.",Subscribe:"A newsletter signup beside a list of recent issues.",SubscribeBlogs:"A newsletter signup beside your latest blog posts, pulled live.",Events:"Latest journal posts in a three-card row.",DocMasthead:"A document header — headline, metadata and standfirst.",DocTabs:"A sticky tab bar to switch between documents.",DocBody:"Long-form document body with an 'On this page' contents list.",DocMetaCards:"A three-up meta strip for the foot of a document.",Banner:"Wide promo strip with background image.",Stats:"Highlight key numbers — years, designs.",KeyFeatures:"A theme-color chip and heading over a grid of short feature labels.",Logos:"A row of partner or brand logos.",Ticker:"A scrolling marquee of short phrases, full width.",Reviews:"Approved customer reviews in a star-rated card grid, pulled live.",SubmitBuild:"A 'Show us yours.' headline with a photo-submission form.",ReviewForm:"A write-a-review form — submissions wait for your approval before they show.",ContactRouting:"Pick who to reach, then a form that routes the message.",ContactLocations:"Your locations as a city gallery plus address and map cards.",SectionHeader:"A numbered section title with optional link.",Grid:"Multi-column container for blocks.",Flex:"An empty section. Add whatever you want inside.",Spacer:"Vertical breathing room between sections.",Divider:"A thin horizontal rule between sections.",CustomHTML:"Drop in your own sanitized HTML.",Heading:"A single heading line.",Text:"A paragraph of body copy.",ImageBlock:"A standalone image, at the width you set.",ButtonBlock:"A call-to-action button."};export{e as SECTION_DESCRIPTIONS};
1
+ const e={Hero:"Full-screen opener with rotating slides.",HeroSingle:"Full-screen image or video with a headline.",IntroBleed:"Full-bleed intro image the next section scrolls over.",Collections:"Product collections in a tidy grid.",AlloyWheelsListing:"A full product-listing page: filter rail, sortable card grid and pagination, from the live catalog. Choose which product types it shows.",CatalogFilterBar:"Filters the collection grids below it — a sticky row of Pills (the default), or Columns, one per filter you switch on.",ProductGrid:"Hand-picked products in a tidy grid.",FitmentFinder:"A vehicle picker — make, model, year and trim resolve the OEM stock fitment live.",Gallery:"Two image galleries with tabs and filters.",GalleryB:"Customer photos in a card grid with a click-to-open lightbox.",SpecStrip:"A thin one-line spec strip — small-caps items spread across the width, as a dark band or a bare hairline row.",ProductHero:"A product hero — image beside price, bullets and a buy button.",SpecTable:"A spec sheet — labeled rows of product specifications.",ProcessSteps:"A heading over columns of image, title, blurb and specs.",DetailRows:"Repeating full-width rows — eyebrow, title and copy beside a numbered close-up image, alternating sides each row.",FitmentTable:"A fitment table — per-size bolt patterns, offsets and load ratings, filterable by diameter.",CompatibleTyres:"The current product's compatible tyres — image, size, key specs and price per tyre, with an inquiry link. Display only.",RelatedProducts:"The current product's related items in a tidy row — the product page's built-in 'Pair with' cross-sell.",OrderSummary:"A display order-summary panel — items, totals and a note.",DeliveryOptions:"Delivery tiers as cards — name, window and price, one highlighted.",PaymentBadges:"A payment-methods trust strip with reassurance lines.",CheckoutCTA:"A centered 'ready to order?' headline with the checkout button.",Manifesto:"A bold brand statement beside a full-height image, with a stat strip.",ParagraphsA:"An editorial text panel with a stat strip and founders' note.",StatsParagraph:"An editorial heading and paragraph over a row of theme-color-accented stat cards.",Chart:"A titled chart — bars, line or donut — drawn from your own labeled data points.",Mockup:"A headline beside a stylized product-UI mockup card — spec sheet, fitment, portal, kanban and more.",Prose:"A plain editorial text section — eyebrow, heading and body copy.",Timeline:"An editorial aside beside a rail-marked timeline of dated entries.",TimelineTrack:"A horizontal year track of milestones — company history or roadmap.",Footprint:"A world map of your locations with a legend — designed here, sold worldwide.",TitleWithButtons:"A big headline beside a stack of call-to-action buttons.",Split:"Side-by-side image and text in two columns.",Cards:"A heading over a grid of free-text title-and-blurb cards.",FAQ:"A frequently-asked-questions accordion with a header.",Testimonials:"Customer quotes in a grid — the quote, a name and a role.",Masthead:"A journal issue header with a lead statement and contents.",Breadcrumb:"A slim trail showing where the reader is (Home / Journal…).",CategoryBar:"A sticky row of category tabs with counts and links.",FeaturedCover:"A featured article — big cover image beside a headline and dek.",LongRead:"A long-form article spread with a pull-quote and cover image.",Series:"A section heading over a grid of column cards.",Subscribe:"A newsletter signup beside a list of recent issues.",SubscribeBlogs:"A newsletter signup beside your latest blog posts, pulled live.",Events:"Latest journal posts in a three-card row.",DocMasthead:"A document header — headline, metadata and standfirst.",DocTabs:"A sticky tab bar to switch between documents.",DocBody:"Long-form document body with an 'On this page' contents list.",DocMetaCards:"A three-up meta strip for the foot of a document.",Banner:"Wide promo strip with background image.",Stats:"Highlight key numbers — years, designs.",Countdown:"Hours, minutes and seconds to a set date and time, then one line.",KeyFeatures:"A theme-color chip and heading over a grid of short feature labels.",Logos:"A row of partner or brand logos.",Ticker:"A scrolling marquee of short phrases, full width.",Reviews:"Approved customer reviews in a star-rated card grid, pulled live.",SubmitBuild:"A 'Show us yours.' headline with a photo-submission form.",ReviewForm:"A write-a-review form — submissions wait for your approval before they show.",ContactRouting:"Pick who to reach, then a form that routes the message.",ContactLocations:"Your locations as a city gallery plus address and map cards.",SectionHeader:"A numbered section title with optional link.",Grid:"Multi-column container for blocks.",Flex:"An empty section. Add whatever you want inside.",Spacer:"Vertical breathing room between sections.",Divider:"A thin horizontal rule between sections.",CustomHTML:"Drop in your own sanitized HTML.",Heading:"A single heading line.",Text:"A paragraph of body copy.",ImageBlock:"A standalone image, at the width you set.",ButtonBlock:"A call-to-action button."};export{e as SECTION_DESCRIPTIONS};
@@ -1,2 +1,2 @@
1
1
  import{FONT_OPTIONS as S}from"./fonts.js";import{compressionMetrics as z}from"./theme.js";const h=e=>e==="sentence"?"none":void 0,d=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0,g=e=>typeof e=="string"&&e?e:void 0,$=["font","color","size","weight","italic","lineHeight","letterSpacing","paragraphSpacing","letterCase","largestSize"];function c(e){const i={};for(const t of $)e[t]!==void 0&&(i[t]=e[t]);return i}function x(e){const i=e.fonts,t=e.sizes,n=e.typography,o=z(e.compression),s=(l,a)=>({id:`heading-${l}`,kind:"heading",name:`Heading ${l}`,values:c(a)}),r=(l,a={})=>({id:`body-${l}`,kind:"body",name:`Body ${l}`,values:c(a)});return[s(1,{font:g(i.heading),size:d(t.headingLarge),weight:d(n.weight),lineHeight:o.lineHeight,letterSpacing:o.letterSpacing,letterCase:h(n.case),largestSize:d(n.maxPx)}),s(2,{font:g(i.heading2),size:d(t.headingMedium),weight:d(n.weight2),lineHeight:o.lineHeight,letterSpacing:o.letterSpacing,letterCase:h(n.case2)}),s(3,{font:g(i.heading3),size:d(t.headingSmall),weight:d(n.weight3),lineHeight:o.lineHeight,letterSpacing:o.letterSpacing,letterCase:h(n.case3)}),r(1,{font:g(i.body),size:d(t.body)}),r(2),r(3),r(4),r(5,{font:g(i.label),size:d(t.label)})]}function y(e){return Array.isArray(e)&&e.every(t=>t&&typeof t=="object"&&typeof t.id=="string"&&(t.kind==="heading"||t.kind==="body")&&typeof t.name=="string")?e.map(t=>({...t,values:c(t.values??{})})):null}function M(e){return y(e)??[]}function w(e,i){const t=x(i),n=y(e);return n?n.map(o=>({...o,values:c({...C(t,o.id),...o.values})})):t}const C=(e,i)=>e.find(t=>t.id===i)?.values??{};function k(e,i){const t=p=>e.find(m=>m.id===p)?.values??{},n=t("heading-1"),o=t("heading-2"),s=t("heading-3"),r=t("body-1"),l=t("body-5"),a=i.fonts,f=i.sizes,b=i.typography,u=p=>p==="none"?"sentence":"authored";return{fonts:{...a,heading:n.font??a.heading,heading2:o.font??n.font??a.heading2,heading3:s.font??n.font??a.heading3,body:r.font??a.body,label:l.font??a.label},sizes:{...f,headingLarge:n.size??null,headingMedium:o.size??null,headingSmall:s.size??null,body:r.size??null,label:l.size??null},compression:i.compression,typography:{...b,case:u(n.letterCase),weight:n.weight??null,maxPx:n.largestSize??null,weight2:o.weight??null,weight3:s.weight??null,case2:u(o.letterCase),case3:u(s.letterCase)}}}function N(e){const i=y(e.textStyles);if(!i||i.every(o=>Object.keys(o.values).length===0))return e;const t={fonts:e.fonts??{},sizes:e.sizes??{},compression:String(e.headingCompression??"normal"),typography:e.headingTypography??{}},n=k(w(i,t),t);return{...e,fonts:n.fonts,sizes:n.sizes,headingCompression:n.compression,headingTypography:n.typography}}function v(e){switch(e.id){case"heading-1":return"font-display";case"heading-2":return"font-heading2";case"heading-3":return"font-heading3";case"body-1":return"font-body";case"body-5":return"font-mono";default:return`font-${e.id}`}}function H(e){return e==="accent"?"var(--accent)":e==="text"?"var(--fg)":e==="labels"?"var(--fg-dim)":/^#[0-9a-f]{6}$/i.test(e)?e:null}function O(e){const i=":is([data-sf-bullet], [data-sf-number])";return[`${e} br:not(br + br) { display: block; content: ""; margin-top: var(--sf-part-para) }`,`${e} ${i}:not(:first-child) { margin-top: var(--sf-part-para) }`,`${e} ${i}:not(:last-child) { margin-bottom: var(--sf-part-para) }`]}function F(e){const i=[];for(const t of e){const n=t.values,o=`.${v(t)}`,s=[],r=n.font!==void 0?S.find(f=>f.key===n.font)?.cssVar:void 0;if(r&&s.push(`font-family: var(${r})`),n.size!==void 0){const f=n.largestSize!==void 0?Math.min(n.size,n.largestSize):n.size;s.push(`font-size: ${f}px`)}const l=n.color!==void 0?H(n.color):null;l&&s.push(`color: ${l}`),n.italic===!0&&s.push("font-style: italic"),n.weight!==void 0&&s.push(`font-weight: ${n.weight}`);const a=[];n.lineHeight!==void 0&&a.push(`line-height: ${n.lineHeight}`),n.letterSpacing!==void 0&&a.push(`letter-spacing: ${n.letterSpacing}em`),t.kind==="body"&&s.push(...a),n.letterCase!==void 0&&s.push(`text-transform: ${n.letterCase==="upper"?"uppercase":n.letterCase==="lower"?"lowercase":"none"}`),n.paragraphSpacing&&s.push(`--sf-part-para: ${n.paragraphSpacing}px`),s.length&&i.push(`${o} { ${s.join("; ")} }`),t.kind==="heading"&&a.length&&i.push(`${o}, ${o}:is(h1, h2, h3, h4) { ${a.join("; ")} }`),n.paragraphSpacing&&i.push(...O(o))}return i.join(`
2
- `)}function L(e){const i=e.filter(t=>t.kind==="body").map(t=>Number(/^body-(\d+)$/.exec(t.id)?.[1])).filter(t=>Number.isInteger(t)&&t>0);return i.includes(7)?"body-7":i.length?`body-${Math.max(...i)}`:"body-1"}export{L as eyebrowStyleId,v as faceClassOf,w as resolveTextStyles,M as storedTextStyles,F as textStylesCss,x as textStylesFromOld,k as textStylesToOld,N as themeWithTextStyles};
2
+ `)}function L(e){const i=e.filter(t=>t.kind==="body").map(t=>Number(/^body-(\d+)$/.exec(t.id)?.[1])).filter(t=>Number.isInteger(t)&&t>0);return i.length?`body-${Math.max(...i)}`:"body-1"}export{L as eyebrowStyleId,v as faceClassOf,w as resolveTextStyles,M as storedTextStyles,F as textStylesCss,x as textStylesFromOld,k as textStylesToOld,N as themeWithTextStyles};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efficient-web-builder",
3
- "version": "5.1.0",
3
+ "version": "5.4.0",
4
4
  "description": "The EFFICIENT website builder: the website editor, the general sections and the renderer that draws them, compiled. Hostable by any EFFICIENT product; nothing here imports a host.",
5
5
  "license": "UNLICENSED",
6
6
  "author": "Efficient Pty Ltd",
@@ -40,7 +40,7 @@
40
40
  "peerDependencies": {
41
41
  "@tabler/icons-react": "^3.46.0",
42
42
  "efficient-easel": "^2.0.0",
43
- "efficient-shell": "^4.171.0",
43
+ "efficient-shell": "^4.171.0 || ^5.0.0",
44
44
  "isomorphic-dompurify": "^3.18.0",
45
45
  "next": ">=16",
46
46
  "react": ">=19",