efficient-storefront-blocks 0.46.0 → 0.47.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/dist/words.d.ts CHANGED
@@ -338,6 +338,7 @@ export type WebBuilderPhrase =
338
338
  | "Current page"
339
339
  | "Custom HTML"
340
340
  | "Custom URL"
341
+ | "Custom color"
341
342
  | "Customer Photo Grid"
342
343
  | "Customer name"
343
344
  | "Customer photos in a card grid with a click-to-open lightbox."
package/dist/words.js CHANGED
@@ -1,5 +1,5 @@
1
1
  var a={"$ efficient \u2026":"$ efficient \u2026","0 min":"0 min","0 min read":"0 min read","01 / Section":"01 / Section","100s":"100s","1st rendering":"1st rendering","2nd rendering":"2nd rendering","30-day returns":"30-day returns","3rd rendering":"3rd rendering","4th rendering":"4th rendering","5th rendering":"5th rendering","A 'Show us yours.' headline with a photo-submission form.":"A 'Show us yours.' headline with a photo-submission form.","A big headline beside a stack of call-to-action buttons.":"A big headline beside a stack of call-to-action buttons.","A bold brand statement beside a full-height image, with a stat strip.":"A bold brand statement beside a full-height image, with a stat strip.","A call-to-action button.":"A call-to-action button.","A card's opening picture \u2014 a card pinned to a finish keeps its own.":"A card's opening picture \u2014 a card pinned to a finish keeps its own.","A centered 'ready to order?' headline with the checkout button.":"A centered 'ready to order?' headline with the checkout button.","A chat bubble on every page":"A chat bubble on every page","A corner would need a diagonal ramp, which this overlay does not draw.":"A corner would need a diagonal ramp, which this overlay does not draw.","A detail line":"A detail line","A display order-summary panel \u2014 items, totals and a note.":"A display order-summary panel \u2014 items, totals and a note.","A document header \u2014 headline, metadata and standfirst.":"A document header \u2014 headline, metadata and standfirst.","A featured article \u2014 big cover image beside a headline and dek.":"A featured article \u2014 big cover image beside a headline and dek.","A fitment table \u2014 per-size bolt patterns, offsets and load ratings, filterable by diameter.":"A fitment table \u2014 per-size bolt patterns, offsets and load ratings, filterable by diameter.","A frequently-asked-questions accordion with a header.":"A frequently-asked-questions accordion with a header.","A full product-listing page: filter rail, sortable card grid and pagination, from the live catalog. Choose which product types it shows.":"A full product-listing page: filter rail, sortable card grid and pagination, from the live catalog. Choose which product types it shows.","A heading over a grid of free-text title-and-blurb cards.":"A heading over a grid of free-text title-and-blurb cards.","A heading over columns of image, title, blurb and specs.":"A heading over columns of image, title, blurb and specs.","A headline beside a stylized product-UI mockup card \u2014 spec sheet, fitment, portal, kanban and more.":"A headline beside a stylized product-UI mockup card \u2014 spec sheet, fitment, portal, kanban and more.","A horizontal year track of milestones \u2014 company history or roadmap.":"A horizontal year track of milestones \u2014 company history or roadmap.","A journal issue header with a lead statement and contents.":"A journal issue header with a lead statement and contents.","A line or two of supporting copy.":"A line or two of supporting copy.","A long-form article spread with a pull-quote and cover image.":"A long-form article spread with a pull-quote and cover image.","A marquee cannot run diagonally, so the corners are not answers.":"A marquee cannot run diagonally, so the corners are not answers.","A milestone still to come.":"A milestone still to come.","A newsletter signup beside a list of recent issues.":"A newsletter signup beside a list of recent issues.","A newsletter signup beside your latest blog posts, pulled live.":"A newsletter signup beside your latest blog posts, pulled live.","A numbered section title with optional link.":"A numbered section title with optional link.","A paragraph of body copy.":"A paragraph of body copy.","A payment-methods trust strip with reassurance lines.":"A payment-methods trust strip with reassurance lines.","A picture worth\n*a thousand rows.*":`A picture worth
2
- *a thousand rows.*`,"A plain editorial text section \u2014 eyebrow, heading and body copy.":"A plain editorial text section \u2014 eyebrow, heading and body copy.","A product hero \u2014 image beside price, bullets and a buy button.":"A product hero \u2014 image beside price, bullets and a buy button.","A row of partner or brand logos.":"A row of partner or brand logos.","A scrolling marquee of short phrases, full width.":"A scrolling marquee of short phrases, full width.","A second customer quote \u2014 what they loved, in a sentence or two.":"A second customer quote \u2014 what they loved, in a sentence or two.","A section heading over a grid of column cards.":"A section heading over a grid of column cards.","A sentence or two of supporting copy.":"A sentence or two of supporting copy.","A short customer quote goes here \u2014 replace it with a real testimonial from your customers.":"A short customer quote goes here \u2014 replace it with a real testimonial from your customers.","A short customer quote goes here.":"A short customer quote goes here.","A short description of this recurring column.":"A short description of this recurring column.","A short lead paragraph introducing this section \u2014 a sentence or two about its theme.":"A short lead paragraph introducing this section \u2014 a sentence or two about its theme.","A short line about this card.":"A short line about this card.","A short line about this milestone.":"A short line about this milestone.","A short name so a link can jump straight to this section, like yoursite.com/page#about.":"A short name so a link can jump straight to this section, like yoursite.com/page#about.","A short pull quote.":"A short pull quote.","A short reassurance note under the total.":"A short reassurance note under the total.","A short summary of the article goes here.":"A short summary of the article goes here.","A short summary of the featured article \u2014 one or two sentences that draw the reader in.":"A short summary of the featured article \u2014 one or two sentences that draw the reader in.","A short summary of the post \u2014 one or two sentences.":"A short summary of the post \u2014 one or two sentences.","A single heading line.":"A single heading line.","A slim trail showing where the reader is (Home / Journal\u2026).":"A slim trail showing where the reader is (Home / Journal\u2026).","A spec sheet \u2014 labeled rows of product specifications.":"A spec sheet \u2014 labeled rows of product specifications.","A standalone image, at the width you set.":"A standalone image, at the width you set.","A sticky row of category tabs with counts and links.":"A sticky row of category tabs with counts and links.","A sticky tab bar to switch between documents.":"A sticky tab bar to switch between documents.","A template is a blueprint \u2014 it has no website of its own, so there is nothing here to change.":"A template is a blueprint \u2014 it has no website of its own, so there is nothing here to change.","A theme-color chip and heading over a grid of short feature labels.":"A theme-color chip and heading over a grid of short feature labels.","A thin horizontal rule between sections.":"A thin horizontal rule between sections.","A thin one-line spec strip \u2014 small-caps items spread across the width, as a dark band or a bare hairline row.":"A thin one-line spec strip \u2014 small-caps items spread across the width, as a dark band or a bare hairline row.","A third short quote to round out the row.":"A third short quote to round out the row.","A three-up meta strip for the foot of a document.":"A three-up meta strip for the foot of a document.","A titled chart \u2014 bars, line or donut \u2014 drawn from your own labeled data points.":"A titled chart \u2014 bars, line or donut \u2014 drawn from your own labeled data points.","A vehicle picker \u2014 make, model, year and trim resolve the OEM stock fitment live.":"A vehicle picker \u2014 make, model, year and trim resolve the OEM stock fitment live.","A world map of your locations with a legend \u2014 designed here, sold worldwide.":"A world map of your locations with a legend \u2014 designed here, sold worldwide.","A write-a-review form \u2014 submissions wait for your approval before they show.":"A write-a-review form \u2014 submissions wait for your approval before they show.","About & brand story":"About & brand story",Accent:"Accent","Accent button":"Accent button","Accent footnote":"Accent footnote","Active tab":"Active tab","Add a *headline* for this post.":"Add a *headline* for this post.","Add a *headline* for this story.":"Add a *headline* for this story.","Add a page":"Add a page","Add a sentence or two introducing this document.":"Add a sentence or two introducing this document.","Add a sentence or two of supporting copy.":"Add a sentence or two of supporting copy.","Add a short heading.":"Add a short heading.","Add a short statement here \u2014 a sentence or two is plenty.":"Add a short statement here \u2014 a sentence or two is plenty.","Add an office in the inspector":"Add an office in the inspector","Add another question":"Add another question","Add city":"Add city","Add group":"Add group","Add new theme":"Add new theme","Add page":"Add page","Add slide":"Add slide","Add this section's copy here.":"Add this section's copy here.","Add this section's copy here. A blank line starts a new paragraph.":"Add this section's copy here. A blank line starts a new paragraph.","Add your answer here \u2014 a sentence or two is plenty.":"Add your answer here \u2014 a sentence or two is plenty.","Add your answer here.":"Add your answer here.","Add your answer here. Keep it clear and concise so it stays easy to scan.":"Add your answer here. Keep it clear and concise so it stays easy to scan.","Add your first question":"Add your first question","Add your numbers.":"Add your numbers.",Address:"Address",After:"After",Alignment:"Alignment",All:"All","Alt text":"Alt text","Alternating (zig-zag)":"Alternating (zig-zag)",Amount:"Amount","An editorial aside beside a rail-marked timeline of dated entries.":"An editorial aside beside a rail-marked timeline of dated entries.","An editorial heading and paragraph over a row of theme-color-accented stat cards.":"An editorial heading and paragraph over a row of theme-color-accented stat cards.","An editorial text panel with a stat strip and founders' note.":"An editorial text panel with a stat strip and founders' note.","An empty section. Add whatever you want inside.":"An empty section. Add whatever you want inside.",Anchor:"Anchor","Anchor name":"Anchor name",Animation:"Animation","Another group already uses this heading \u2014 pick a different one.":"Another group already uses this heading \u2014 pick a different one.",Answer:"Answer","Any color":"Any color",App:"App","App chips":"App chips","App name":"App name",Appearance:"Appearance","Appearance settings belong to a website.":"Appearance settings belong to a website.","Applied to {n} card":"Applied to {n} card","Applied to {n} cards":"Applied to {n} cards","Apply to all cards":"Apply to all cards","Approved customer reviews in a star-rated card grid, pulled live.":"Approved customer reviews in a star-rated card grid, pulled live.",Arrows:"Arrows","Arrows placement":"Arrows placement","Arrows shape":"Arrows shape",Article:"Article","Article *headline* goes here.":"Article *headline* goes here.","Article Text":"Article Text","Article headline":"Article headline","Article title":"Article title","As shot":"As shot","As uploaded":"As uploaded","Aspect ratio":"Aspect ratio","At zero":"At zero",Attribution:"Attribution",Auto:"Auto","Auto contrast":"Auto contrast","Auto-advance slides":"Auto-advance slides","Auto-fills the cover image, headline, dek, date and link from this post each time you open the editor. Those fields are hidden while a post is linked; the remaining fields stay yours to set.":"Auto-fills the cover image, headline, dek, date and link from this post each time you open the editor. Those fields are hidden while a post is linked; the remaining fields stay yours to set.","Auto-slide":"Auto-slide","Avg rating":"Avg rating",Background:"Background","Background image":"Background image","Background images":"Background images",Badge:"Badge",Banner:"Banner","Banner headline":"Banner headline",Bar:"Bar",Bare:"Bare",Bars:"Bars","Bars (comparison / funnel)":"Bars (comparison / funnel)","Bars heading":"Bars heading",Basics:"Basics",Before:"Before","Begin reading":"Begin reading",Below:"Below","Below picture":"Below picture","Big first":"Big first","Big left":"Big left","Big right":"Big right","Big stat":"Big stat","Bigger left":"Bigger left","Bigger right":"Bigger right","Black and white":"Black and white","Black and white logos":"Black and white logos",Block:"Block","Block gap":"Block gap","Block spacing":"Block spacing","Block widths":"Block widths","Blog & journal":"Blog & journal","Blog post":"Blog post","Blog post source":"Blog post source",Body:"Body",Bold:"Bold","Bold word":"Bold word","Booking Form":"Booking Form",Border:"Border","Border bottom":"Border bottom","Border color":"Border color","Border left":"Border left","Border right":"Border right","Border style":"Border style","Border top":"Border top","Border width":"Border width",Borders:"Borders",Bottom:"Bottom","Bottom center":"Bottom center","Bottom left":"Bottom left","Bottom right":"Bottom right",Box:"Box","Box name":"Box name","Brand Strip":"Brand Strip","Brand Text":"Brand Text","Brand name":"Brand name",Breadcrumb:"Breadcrumb",Brick:"Brick","Browser mock":"Browser mock","Browser storefront (hero + tiles)":"Browser storefront (hero + tiles)","Build this footer out of Boxes and blocks, like a page: the same menus, signup, social links and logo, with the copyright as a Legal Line. Your current footer is kept.":"Build this footer out of Boxes and blocks, like a page: the same menus, signup, social links and logo, with the copyright as a Legal Line. Your current footer is kept.","Bundle Products":"Bundle Products",Button:"Button","Button Right Text":"Button Right Text","Button color":"Button color","Button label":"Button label","Button link":"Button link","Button text color":"Button text color",Buttons:"Buttons","Buy button":"Buy button","By the *numbers*":"By the *numbers*","By the numbers":"By the numbers","Call-to-Action Heading":"Call-to-Action Heading",Cancel:"Cancel",Caption:"Caption",Card:"Card","Card body":"Card body","Card button":"Card button","Card header strip":"Card header strip","Card height":"Card height","Card image":"Card image","Card layout":"Card layout","Card link":"Card link","Card number":"Card number","Card outline":"Card outline","Card shadow":"Card shadow","Card subtitle":"Card subtitle","Card title":"Card title","Card title one":"Card title one","Card title three":"Card title three","Card title two":"Card title two","Card type":"Card type",Cards:"Cards",Cart:"Cart","Catalog Filter Bar":"Catalog Filter Bar",Category:"Category","Category Bar":"Category Bar","Category bar":"Category bar","Cell width":"Cell width",Center:"Center","Changed on every page":"Changed on every page","Changes not live yet":"Changes not live yet",Chart:"Chart","Chart style":"Chart style","Chat with us":"Chat with us","Checkout & ordering":"Checkout & ordering","Chip label":"Chip label","Choose a page":"Choose a page","Choose a post":"Choose a post","Choose a product":"Choose a product","Choose a section":"Choose a section","Cities in this group":"Cities in this group",City:"City","City strip":"City strip","Claims bars":"Claims bars","Claims panel (rows + defect bars)":"Claims panel (rows + defect bars)","Clear change":"Clear change","Clear change: {label}":"Clear change: {label}","Clear colors":"Clear colors","Clear formatting":"Clear formatting","Clear override":"Clear override","Clear override: {label}":"Clear override: {label}","Clear this site\u2019s colors?":"Clear this site\u2019s colors?","Clear {what}":"Clear {what}","Clear {what}: {label}":"Clear {what}: {label}","Click to play":"Click to play",Collections:"Collections",Color:"Color","Column *title.*":"Column *title.*","Column 1 cards":"Column 1 cards","Column 1 title":"Column 1 title","Column 2 cards":"Column 2 cards","Column 2 title":"Column 2 title","Column 3 cards":"Column 3 cards","Column 3 title":"Column 3 title","Column 4 cards":"Column 4 cards","Column 4 title":"Column 4 title","Column {n}":"Column {n}",Columns:"Columns","Columns on phone":"Columns on phone","Contact / Locations":"Contact / Locations","Contact Form":"Contact Form","Contact, FAQ & forms":"Contact, FAQ & forms",Contain:"Contain",Contained:"Contained",Content:"Content","Content position":"Content position","Content width":"Content width",Contents:"Contents","Contents heading":"Contents heading","Contents label":"Contents label",Coordinates:"Coordinates","Coordinates from OpenStreetMap":"Coordinates from OpenStreetMap","Copy above image":"Copy above image","Copy over image":"Copy over image","Copying\u2026":"Copying\u2026",Corners:"Corners","Couldn\u2019t add the page \u2014 please retry.":"Couldn\u2019t add the page \u2014 please retry.","Couldn\u2019t delete the page \u2014 please retry.":"Couldn\u2019t delete the page \u2014 please retry.","Couldn\u2019t duplicate the section \u2014 please retry":"Couldn\u2019t duplicate the section \u2014 please retry","Couldn\u2019t load pages":"Couldn\u2019t load pages","Couldn\u2019t open this section.":"Couldn\u2019t open this section.","Couldn\u2019t reach {place}.":"Couldn\u2019t reach {place}.",Count:"Count",Countdown:"Countdown",Country:"Country","Country Switch":"Country Switch",Cover:"Cover","Cover image":"Cover image","Cross \u2715":"Cross \u2715",Crumbs:"Crumbs","Current page":"Current page","Custom HTML":"Custom HTML","Custom URL":"Custom URL","Customer Photo Grid":"Customer Photo Grid","Customer name":"Customer name","Customer photos in a card grid with a click-to-open lightbox.":"Customer photos in a card grid with a click-to-open lightbox.","Customer quotes in a grid \u2014 the quote, a name and a role.":"Customer quotes in a grid \u2014 the quote, a name and a role.",Dark:"Dark","Dark band":"Dark band",Darken:"Darken","Darken style":"Darken style",Dashed:"Dashed","Data points":"Data points",Date:"Date",Dealers:"Dealers","Dealers are not available on this website":"Dealers are not available on this website","Deck / standfirst":"Deck / standfirst",Default:"Default","Defect rate by product":"Defect rate by product",Dek:"Dek","Delete city":"Delete city","Delete group ({n} cities)":"Delete group ({n} cities)","Delete group ({n} city)":"Delete group ({n} city)","Delete {label} group ({n} cities)":"Delete {label} group ({n} cities)","Delete {label} group ({n} city)":"Delete {label} group ({n} city)","Delete {name}":"Delete {name}","Delete \u201C{name}\u201D":"Delete \u201C{name}\u201D","Deleted \u201C{name}\u201D":"Deleted \u201C{name}\u201D",Delivery:"Delivery","Delivery Options":"Delivery Options","Delivery tiers as cards \u2014 name, window and price, one highlighted.":"Delivery tiers as cards \u2014 name, window and price, one highlighted.","Describe this section in a sentence or two.":"Describe this section in a sentence or two.","Describe this step in a sentence or two.":"Describe this step in a sentence or two.","Describe what happened, in a sentence or two.":"Describe what happened, in a sentence or two.",Design:"Design",Detail:"Detail","Detail line":"Detail line",Direction:"Direction","Directions link":"Directions link","Dismiss link":"Dismiss link",Display:"Display",Distance:"Distance","Distance from top":"Distance from top",Divider:"Divider","Document Detail Cards":"Document Detail Cards","Document Header":"Document Header","Document Tabs":"Document Tabs","Document Text":"Document Text","Document body":"Document body","Document masthead":"Document masthead","Document tabs":"Document tabs",Done:"Done","Done {name}":"Done {name}","Donut (split of a whole)":"Donut (split of a whole)","Dot \u25CF":"Dot \u25CF",Dots:"Dots",Dotted:"Dotted",Down:"Down","Drop in your own sanitized HTML.":"Drop in your own sanitized HTML.","Duplicate section":"Duplicate section","Duplicate to another page":"Duplicate to another page","Duplicate to page":"Duplicate to page","Duplicated to \u201C{name}\u201D":"Duplicated to \u201C{name}\u201D",Dynamic:"Dynamic","Dynamic Pages":"Dynamic Pages","EU Tyre Label":"EU Tyre Label","Each block":"Each block","Each side":"Each side","Each website created from this template sets its own appearance afterwards.":"Each website created from this template sets its own appearance afterwards.","Each website created from this template sets its own header afterwards.":"Each website created from this template sets its own header afterwards.","Each website created from this template sets its own live chat afterwards.":"Each website created from this template sets its own live chat afterwards.","Each website created from this template sets its own social link afterwards.":"Each website created from this template sets its own social link afterwards.","Each website created from this template sets its own {what} afterwards.":"Each website created from this template sets its own {what} afterwards.","Easy to read":"Easy to read",Edit:"Edit","Edit {name}":"Edit {name}","Edit \u201C{name}\u201D in {place}":"Edit \u201C{name}\u201D in {place}","Editing {name} changes it everywhere.":"Editing {name} changes it everywhere.","Editor only \u2014 not shown live":"Editor only \u2014 not shown live",Editorial:"Editorial","Editorial Text":"Editorial Text",Email:"Email","Email Form":"Email Form","Email signup":"Email signup",Empty:"Empty",End:"End",Ends:"Ends","Enter coordinates manually":"Enter coordinates manually",Entrance:"Entrance",Entries:"Entries","Entries count":"Entries count",Equal:"Equal",Essay:"Essay",Even:"Even","Every page":"Every page","Every text on the site that follows {style} changes to look like this one. This text\u2019s own changes are cleared, and it keeps following {style}.":"Every text on the site that follows {style} changes to look like this one. This text\u2019s own changes are cleared, and it keeps following {style}.","Every {part} in this section follows it. The face and the size change; the letter case is the section\u2019s own and stays as it is.":"Every {part} in this section follows it. The face and the size change; the letter case is the section\u2019s own and stays as it is.","Everything else on this block comes from the linked post. Unlink it to edit by hand.":"Everything else on this block comes from the linked post. Unlink it to edit by hand.","Everything is live":"Everything is live",Excerpt:"Excerpt",Eyebrow:"Eyebrow","Eyebrow style":"Eyebrow style",Facebook:"Facebook",Fade:"Fade",Feature:"Feature","Feature Banner":"Feature Banner","Feature Rows":"Feature Rows","Feature label":"Feature label","Feature label five":"Feature label five","Feature label four":"Feature label four","Feature label one":"Feature label one","Feature label six":"Feature label six","Feature label three":"Feature label three","Feature label two":"Feature label two","Feature story":"Feature story",Featured:"Featured","Featured *image*":"Featured *image*","Featured cover":"Featured cover",Features:"Features",Feedback:"Feedback","Field label":"Field label","Field notes":"Field notes",Fill:"Fill",Filled:"Filled","Filters the collection grids below it \u2014 a sticky row of Pills (the default), or Columns, one per filter you switch on.":"Filters the collection grids below it \u2014 a sticky row of Pills (the default), or Columns, one per filter you switch on.","Find coordinates":"Find coordinates","Finding\u2026":"Finding\u2026","Fine print":"Fine print","Finish swatches":"Finish swatches","Finish \xB7 Size \xB7 \xD71":"Finish \xB7 Size \xB7 \xD71","First item":"First item","First section":"First section","Fit content":"Fit content","Fitment Form":"Fitment Form","Fitment Table":"Fitment Table",Fixed:"Fixed","Fixed size \u2014 the site\u2019s Text setting doesn\u2019t resize this.":"Fixed size \u2014 the site\u2019s Text setting doesn\u2019t resize this.","Follow the page":"Follow the page","Follow the slideshow":"Follow the slideshow","Follows Desktop":"Follows Desktop","Follows the section's Corners until you set a number here.":"Follows the section's Corners until you set a number here.","Follows the site":"Follows the site","Follows the style":"Follows the style","Footer Box":"Footer Box","Footer \xB7 on every page":"Footer \xB7 on every page","Footer \xB7 on every page \xB7 old style":"Footer \xB7 on every page \xB7 old style",Footnote:"Footnote",Form:"Form","Form eyebrow":"Form eyebrow","Form heading":"Form heading","Form intro":"Form intro","Formatting \u2014 click a row first":"Formatting \u2014 click a row first","Formatting \u2014 row {n}":"Formatting \u2014 row {n}",Founders:"Founders","Founders heading":"Founders heading","Founders statement":"Founders statement","Four across":"Four across","Four stagger":"Four stagger",Frequency:"Frequency","Frequently *asked.*":"Frequently *asked.*","From the bottom":"From the bottom",Full:"Full","Full width":"Full width","Full-bleed intro image the next section scrolls over.":"Full-bleed intro image the next section scrolls over.","Full-screen image or video with a headline.":"Full-screen image or video with a headline.","Full-screen opener with rotating slides.":"Full-screen opener with rotating slides.",Gap:"Gap","Gap only":"Gap only","Give the new template page a name. It starts blank \u2014 add sections once it opens.":"Give the new template page a name. It starts blank \u2014 add sections once it opens.","Gives the other card this card's Corners.":"Gives the other card this card's Corners.","Gives the other {n} cards this card's Corners.":"Gives the other {n} cards this card's Corners.",Good:"Good","Greeting message":"Greeting message",Grid:"Grid",Group:"Group","Group heading":"Group heading","Group name":"Group name",H1:"H1",H2:"H2",H3:"H3",H4:"H4",H5:"H5",H6:"H6",HQ:"HQ",HTML:"HTML",Hairline:"Hairline","Hairline borders":"Hairline borders","Hand-picked products in a tidy grid.":"Hand-picked products in a tidy grid.","Hard to read":"Hard to read",Header:"Header","Header and footer not live yet":"Header and footer not live yet","Header badge":"Header badge","Header settings belong to a website.":"Header settings belong to a website.","Header \xB7 on every page":"Header \xB7 on every page","Header \xB7 on every page \xB7 old style":"Header \xB7 on every page \xB7 old style",Heading:"Heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading font size":"Heading font size",Headings:"Headings",Headquarters:"Headquarters",Height:"Height",Hero:"Hero","Hero & intros":"Hero & intros","Hero Slide":"Hero Slide","Hero Slideshow":"Hero Slideshow","Hero button":"Hero button","Hero image":"Hero image","Hero line":"Hero line","Hidden on the page":"Hidden on the page","Hide manual coordinates":"Hide manual coordinates","Hide {label} on the slide":"Hide {label} on the slide",Highlight:"Highlight","Highlight key numbers \u2014 years, designs.":"Highlight key numbers \u2014 years, designs.","Highlight line":"Highlight line",Hint:"Hint","Hold video":"Hold video",Home:"Home","Hours, minutes and seconds to a set date and time, then one line.":"Hours, minutes and seconds to a set date and time, then one line.","Hover effect":"Hover effect",Icon:"Icon","Icon after text":"Icon after text","Icon before text":"Icon before text","Icon only":"Icon only","Icon position":"Icon position","Illustrative example":"Illustrative example",Image:"Image","Image & Text Columns":"Image & Text Columns","Image & Text Split":"Image & Text Split","Image 2":"Image 2","Image background":"Image background","Image caption":"Image caption","Image column":"Image column","Image date":"Image date","Image fit":"Image fit","Image focus":"Image focus","Image label":"Image label","Image left":"Image left","Image meta":"Image meta","Image right":"Image right","Image side":"Image side","Image stage":"Image stage","Image tint":"Image tint","Image width":"Image width","In its own box":"In its own box","In progress (accent)":"In progress (accent)","In the product":"In the product","In this issue":"In this issue","In this section":"In this section","In your own time zone. Every visitor counts down to the same moment.":"In your own time zone. Every visitor counts down to the same moment.",Instagram:"Instagram",Integrations:"Integrations","Integrations Grid":"Integrations Grid",Interview:"Interview",Intro:"Intro","Introduce your company in a paragraph or two.":"Introduce your company in a paragraph or two.","Issue Header":"Issue Header","Issue lines":"Issue lines","Issue meta lines":"Issue meta lines",Item:"Item","Item alignment":"Item alignment",Items:"Items","Items from":"Items from","Its own":"Its own","Its size follows Site styles \u25B8 {follows} \u2014 {px}px right now.":"Its size follows Site styles \u25B8 {follows} \u2014 {px}px right now.","Its size follows Site styles \u25B8 {follows}.":"Its size follows Site styles \u25B8 {follows}.","Job card label":"Job card label",Join:"Join","Jumps to a section on that page.":"Jumps to a section on that page.",Justify:"Justify","Kanban board (job columns)":"Kanban board (job columns)","Kanban columns":"Kanban columns","Keep this section's own built-in size":"Keep this section's own built-in size","Key *features.*":"Key *features.*","Key Features":"Key Features",LINE:"LINE",LIVE:"LIVE",Label:"Label","Label color":"Label color",Labels:"Labels",Ladder:"Ladder",Large:"Large","Large text only":"Large text only","Latest Posts":"Latest Posts","Latest journal posts in a three-card row.":"Latest journal posts in a three-card row.",Latitude:"Latitude",Layout:"Layout","Layout & structure":"Layout & structure","Layout, structure & embeds":"Layout, structure & embeds",Lead:"Lead","Lead Text":"Lead Text","Learn more":"Learn more","Leave a blank line between paragraphs to start a new one.":"Leave a blank line between paragraphs to start a new one.","Leave a field blank to use the built-in wording.":"Leave a field blank to use the built-in wording.",Left:"Left","Left and right":"Left and right","Left of the copy":"Left of the copy","Legal & documents":"Legal & documents","Legal Line":"Legal Line",Level:"Level",Lift:"Lift",Lifted:"Lifted",Light:"Light",Lightbox:"Lightbox","Limited release":"Limited release",Line:"Line","Line (trend)":"Line (trend)",Link:"Link","Linked to a blog post. This editor has no blog to pick another from; choose \u201CNone (manual)\u201D to author the section yourself.":"Linked to a blog post. This editor has no blog to pick another from; choose \u201CNone (manual)\u201D to author the section yourself.","Linked to \u201C{name}\u201D":"Linked to \u201C{name}\u201D",LinkedIn:"LinkedIn",Links:"Links","Links to":"Links to",List:"List","Live chat":"Live chat","Live chat settings belong to a website.":"Live chat settings belong to a website.","Loading\u2026":"Loading\u2026","Location name":"Location name",Locations:"Locations","Locations Map":"Locations Map",Logo:"Logo","Logo alt text":"Logo alt text","Logo color":"Logo color","Logo description":"Logo description","Logo five":"Logo five","Logo four":"Logo four","Logo height":"Logo height","Logo image":"Logo image","Logo one":"Logo one","Logo three":"Logo three","Logo two":"Logo two",Logos:"Logos","Long read":"Long read","Long-form document body with an 'On this page' contents list.":"Long-form document body with an 'On this page' contents list.",Longitude:"Longitude",Look:"Look",Main:"Main","Main Pages":"Main Pages","Main color":"Main color","Main heading":"Main heading","Main heading\n*Highlight line*":`Main heading
2
+ *a thousand rows.*`,"A plain editorial text section \u2014 eyebrow, heading and body copy.":"A plain editorial text section \u2014 eyebrow, heading and body copy.","A product hero \u2014 image beside price, bullets and a buy button.":"A product hero \u2014 image beside price, bullets and a buy button.","A row of partner or brand logos.":"A row of partner or brand logos.","A scrolling marquee of short phrases, full width.":"A scrolling marquee of short phrases, full width.","A second customer quote \u2014 what they loved, in a sentence or two.":"A second customer quote \u2014 what they loved, in a sentence or two.","A section heading over a grid of column cards.":"A section heading over a grid of column cards.","A sentence or two of supporting copy.":"A sentence or two of supporting copy.","A short customer quote goes here \u2014 replace it with a real testimonial from your customers.":"A short customer quote goes here \u2014 replace it with a real testimonial from your customers.","A short customer quote goes here.":"A short customer quote goes here.","A short description of this recurring column.":"A short description of this recurring column.","A short lead paragraph introducing this section \u2014 a sentence or two about its theme.":"A short lead paragraph introducing this section \u2014 a sentence or two about its theme.","A short line about this card.":"A short line about this card.","A short line about this milestone.":"A short line about this milestone.","A short name so a link can jump straight to this section, like yoursite.com/page#about.":"A short name so a link can jump straight to this section, like yoursite.com/page#about.","A short pull quote.":"A short pull quote.","A short reassurance note under the total.":"A short reassurance note under the total.","A short summary of the article goes here.":"A short summary of the article goes here.","A short summary of the featured article \u2014 one or two sentences that draw the reader in.":"A short summary of the featured article \u2014 one or two sentences that draw the reader in.","A short summary of the post \u2014 one or two sentences.":"A short summary of the post \u2014 one or two sentences.","A single heading line.":"A single heading line.","A slim trail showing where the reader is (Home / Journal\u2026).":"A slim trail showing where the reader is (Home / Journal\u2026).","A spec sheet \u2014 labeled rows of product specifications.":"A spec sheet \u2014 labeled rows of product specifications.","A standalone image, at the width you set.":"A standalone image, at the width you set.","A sticky row of category tabs with counts and links.":"A sticky row of category tabs with counts and links.","A sticky tab bar to switch between documents.":"A sticky tab bar to switch between documents.","A template is a blueprint \u2014 it has no website of its own, so there is nothing here to change.":"A template is a blueprint \u2014 it has no website of its own, so there is nothing here to change.","A theme-color chip and heading over a grid of short feature labels.":"A theme-color chip and heading over a grid of short feature labels.","A thin horizontal rule between sections.":"A thin horizontal rule between sections.","A thin one-line spec strip \u2014 small-caps items spread across the width, as a dark band or a bare hairline row.":"A thin one-line spec strip \u2014 small-caps items spread across the width, as a dark band or a bare hairline row.","A third short quote to round out the row.":"A third short quote to round out the row.","A three-up meta strip for the foot of a document.":"A three-up meta strip for the foot of a document.","A titled chart \u2014 bars, line or donut \u2014 drawn from your own labeled data points.":"A titled chart \u2014 bars, line or donut \u2014 drawn from your own labeled data points.","A vehicle picker \u2014 make, model, year and trim resolve the OEM stock fitment live.":"A vehicle picker \u2014 make, model, year and trim resolve the OEM stock fitment live.","A world map of your locations with a legend \u2014 designed here, sold worldwide.":"A world map of your locations with a legend \u2014 designed here, sold worldwide.","A write-a-review form \u2014 submissions wait for your approval before they show.":"A write-a-review form \u2014 submissions wait for your approval before they show.","About & brand story":"About & brand story",Accent:"Accent","Accent button":"Accent button","Accent footnote":"Accent footnote","Active tab":"Active tab","Add a *headline* for this post.":"Add a *headline* for this post.","Add a *headline* for this story.":"Add a *headline* for this story.","Add a page":"Add a page","Add a sentence or two introducing this document.":"Add a sentence or two introducing this document.","Add a sentence or two of supporting copy.":"Add a sentence or two of supporting copy.","Add a short heading.":"Add a short heading.","Add a short statement here \u2014 a sentence or two is plenty.":"Add a short statement here \u2014 a sentence or two is plenty.","Add an office in the inspector":"Add an office in the inspector","Add another question":"Add another question","Add city":"Add city","Add group":"Add group","Add new theme":"Add new theme","Add page":"Add page","Add slide":"Add slide","Add this section's copy here.":"Add this section's copy here.","Add this section's copy here. A blank line starts a new paragraph.":"Add this section's copy here. A blank line starts a new paragraph.","Add your answer here \u2014 a sentence or two is plenty.":"Add your answer here \u2014 a sentence or two is plenty.","Add your answer here.":"Add your answer here.","Add your answer here. Keep it clear and concise so it stays easy to scan.":"Add your answer here. Keep it clear and concise so it stays easy to scan.","Add your first question":"Add your first question","Add your numbers.":"Add your numbers.",Address:"Address",After:"After",Alignment:"Alignment",All:"All","Alt text":"Alt text","Alternating (zig-zag)":"Alternating (zig-zag)",Amount:"Amount","An editorial aside beside a rail-marked timeline of dated entries.":"An editorial aside beside a rail-marked timeline of dated entries.","An editorial heading and paragraph over a row of theme-color-accented stat cards.":"An editorial heading and paragraph over a row of theme-color-accented stat cards.","An editorial text panel with a stat strip and founders' note.":"An editorial text panel with a stat strip and founders' note.","An empty section. Add whatever you want inside.":"An empty section. Add whatever you want inside.",Anchor:"Anchor","Anchor name":"Anchor name",Animation:"Animation","Another group already uses this heading \u2014 pick a different one.":"Another group already uses this heading \u2014 pick a different one.",Answer:"Answer","Any color":"Any color",App:"App","App chips":"App chips","App name":"App name",Appearance:"Appearance","Appearance settings belong to a website.":"Appearance settings belong to a website.","Applied to {n} card":"Applied to {n} card","Applied to {n} cards":"Applied to {n} cards","Apply to all cards":"Apply to all cards","Approved customer reviews in a star-rated card grid, pulled live.":"Approved customer reviews in a star-rated card grid, pulled live.",Arrows:"Arrows","Arrows placement":"Arrows placement","Arrows shape":"Arrows shape",Article:"Article","Article *headline* goes here.":"Article *headline* goes here.","Article Text":"Article Text","Article headline":"Article headline","Article title":"Article title","As shot":"As shot","As uploaded":"As uploaded","Aspect ratio":"Aspect ratio","At zero":"At zero",Attribution:"Attribution",Auto:"Auto","Auto contrast":"Auto contrast","Auto-advance slides":"Auto-advance slides","Auto-fills the cover image, headline, dek, date and link from this post each time you open the editor. Those fields are hidden while a post is linked; the remaining fields stay yours to set.":"Auto-fills the cover image, headline, dek, date and link from this post each time you open the editor. Those fields are hidden while a post is linked; the remaining fields stay yours to set.","Auto-slide":"Auto-slide","Avg rating":"Avg rating",Background:"Background","Background image":"Background image","Background images":"Background images",Badge:"Badge",Banner:"Banner","Banner headline":"Banner headline",Bar:"Bar",Bare:"Bare",Bars:"Bars","Bars (comparison / funnel)":"Bars (comparison / funnel)","Bars heading":"Bars heading",Basics:"Basics",Before:"Before","Begin reading":"Begin reading",Below:"Below","Below picture":"Below picture","Big first":"Big first","Big left":"Big left","Big right":"Big right","Big stat":"Big stat","Bigger left":"Bigger left","Bigger right":"Bigger right","Black and white":"Black and white","Black and white logos":"Black and white logos",Block:"Block","Block gap":"Block gap","Block spacing":"Block spacing","Block widths":"Block widths","Blog & journal":"Blog & journal","Blog post":"Blog post","Blog post source":"Blog post source",Body:"Body",Bold:"Bold","Bold word":"Bold word","Booking Form":"Booking Form",Border:"Border","Border bottom":"Border bottom","Border color":"Border color","Border left":"Border left","Border right":"Border right","Border style":"Border style","Border top":"Border top","Border width":"Border width",Borders:"Borders",Bottom:"Bottom","Bottom center":"Bottom center","Bottom left":"Bottom left","Bottom right":"Bottom right",Box:"Box","Box name":"Box name","Brand Strip":"Brand Strip","Brand Text":"Brand Text","Brand name":"Brand name",Breadcrumb:"Breadcrumb",Brick:"Brick","Browser mock":"Browser mock","Browser storefront (hero + tiles)":"Browser storefront (hero + tiles)","Build this footer out of Boxes and blocks, like a page: the same menus, signup, social links and logo, with the copyright as a Legal Line. Your current footer is kept.":"Build this footer out of Boxes and blocks, like a page: the same menus, signup, social links and logo, with the copyright as a Legal Line. Your current footer is kept.","Bundle Products":"Bundle Products",Button:"Button","Button Right Text":"Button Right Text","Button color":"Button color","Button label":"Button label","Button link":"Button link","Button text color":"Button text color",Buttons:"Buttons","Buy button":"Buy button","By the *numbers*":"By the *numbers*","By the numbers":"By the numbers","Call-to-Action Heading":"Call-to-Action Heading",Cancel:"Cancel",Caption:"Caption",Card:"Card","Card body":"Card body","Card button":"Card button","Card header strip":"Card header strip","Card height":"Card height","Card image":"Card image","Card layout":"Card layout","Card link":"Card link","Card number":"Card number","Card outline":"Card outline","Card shadow":"Card shadow","Card subtitle":"Card subtitle","Card title":"Card title","Card title one":"Card title one","Card title three":"Card title three","Card title two":"Card title two","Card type":"Card type",Cards:"Cards",Cart:"Cart","Catalog Filter Bar":"Catalog Filter Bar",Category:"Category","Category Bar":"Category Bar","Category bar":"Category bar","Cell width":"Cell width",Center:"Center","Changed on every page":"Changed on every page","Changes not live yet":"Changes not live yet",Chart:"Chart","Chart style":"Chart style","Chat with us":"Chat with us","Checkout & ordering":"Checkout & ordering","Chip label":"Chip label","Choose a page":"Choose a page","Choose a post":"Choose a post","Choose a product":"Choose a product","Choose a section":"Choose a section","Cities in this group":"Cities in this group",City:"City","City strip":"City strip","Claims bars":"Claims bars","Claims panel (rows + defect bars)":"Claims panel (rows + defect bars)","Clear change":"Clear change","Clear change: {label}":"Clear change: {label}","Clear colors":"Clear colors","Clear formatting":"Clear formatting","Clear override":"Clear override","Clear override: {label}":"Clear override: {label}","Clear this site\u2019s colors?":"Clear this site\u2019s colors?","Clear {what}":"Clear {what}","Clear {what}: {label}":"Clear {what}: {label}","Click to play":"Click to play",Collections:"Collections",Color:"Color","Column *title.*":"Column *title.*","Column 1 cards":"Column 1 cards","Column 1 title":"Column 1 title","Column 2 cards":"Column 2 cards","Column 2 title":"Column 2 title","Column 3 cards":"Column 3 cards","Column 3 title":"Column 3 title","Column 4 cards":"Column 4 cards","Column 4 title":"Column 4 title","Column {n}":"Column {n}",Columns:"Columns","Columns on phone":"Columns on phone","Contact / Locations":"Contact / Locations","Contact Form":"Contact Form","Contact, FAQ & forms":"Contact, FAQ & forms",Contain:"Contain",Contained:"Contained",Content:"Content","Content position":"Content position","Content width":"Content width",Contents:"Contents","Contents heading":"Contents heading","Contents label":"Contents label",Coordinates:"Coordinates","Coordinates from OpenStreetMap":"Coordinates from OpenStreetMap","Copy above image":"Copy above image","Copy over image":"Copy over image","Copying\u2026":"Copying\u2026",Corners:"Corners","Couldn\u2019t add the page \u2014 please retry.":"Couldn\u2019t add the page \u2014 please retry.","Couldn\u2019t delete the page \u2014 please retry.":"Couldn\u2019t delete the page \u2014 please retry.","Couldn\u2019t duplicate the section \u2014 please retry":"Couldn\u2019t duplicate the section \u2014 please retry","Couldn\u2019t load pages":"Couldn\u2019t load pages","Couldn\u2019t open this section.":"Couldn\u2019t open this section.","Couldn\u2019t reach {place}.":"Couldn\u2019t reach {place}.",Count:"Count",Countdown:"Countdown",Country:"Country","Country Switch":"Country Switch",Cover:"Cover","Cover image":"Cover image","Cross \u2715":"Cross \u2715",Crumbs:"Crumbs","Current page":"Current page","Custom HTML":"Custom HTML","Custom URL":"Custom URL","Custom color":"Custom color","Customer Photo Grid":"Customer Photo Grid","Customer name":"Customer name","Customer photos in a card grid with a click-to-open lightbox.":"Customer photos in a card grid with a click-to-open lightbox.","Customer quotes in a grid \u2014 the quote, a name and a role.":"Customer quotes in a grid \u2014 the quote, a name and a role.",Dark:"Dark","Dark band":"Dark band",Darken:"Darken","Darken style":"Darken style",Dashed:"Dashed","Data points":"Data points",Date:"Date",Dealers:"Dealers","Dealers are not available on this website":"Dealers are not available on this website","Deck / standfirst":"Deck / standfirst",Default:"Default","Defect rate by product":"Defect rate by product",Dek:"Dek","Delete city":"Delete city","Delete group ({n} cities)":"Delete group ({n} cities)","Delete group ({n} city)":"Delete group ({n} city)","Delete {label} group ({n} cities)":"Delete {label} group ({n} cities)","Delete {label} group ({n} city)":"Delete {label} group ({n} city)","Delete {name}":"Delete {name}","Delete \u201C{name}\u201D":"Delete \u201C{name}\u201D","Deleted \u201C{name}\u201D":"Deleted \u201C{name}\u201D",Delivery:"Delivery","Delivery Options":"Delivery Options","Delivery tiers as cards \u2014 name, window and price, one highlighted.":"Delivery tiers as cards \u2014 name, window and price, one highlighted.","Describe this section in a sentence or two.":"Describe this section in a sentence or two.","Describe this step in a sentence or two.":"Describe this step in a sentence or two.","Describe what happened, in a sentence or two.":"Describe what happened, in a sentence or two.",Design:"Design",Detail:"Detail","Detail line":"Detail line",Direction:"Direction","Directions link":"Directions link","Dismiss link":"Dismiss link",Display:"Display",Distance:"Distance","Distance from top":"Distance from top",Divider:"Divider","Document Detail Cards":"Document Detail Cards","Document Header":"Document Header","Document Tabs":"Document Tabs","Document Text":"Document Text","Document body":"Document body","Document masthead":"Document masthead","Document tabs":"Document tabs",Done:"Done","Done {name}":"Done {name}","Donut (split of a whole)":"Donut (split of a whole)","Dot \u25CF":"Dot \u25CF",Dots:"Dots",Dotted:"Dotted",Down:"Down","Drop in your own sanitized HTML.":"Drop in your own sanitized HTML.","Duplicate section":"Duplicate section","Duplicate to another page":"Duplicate to another page","Duplicate to page":"Duplicate to page","Duplicated to \u201C{name}\u201D":"Duplicated to \u201C{name}\u201D",Dynamic:"Dynamic","Dynamic Pages":"Dynamic Pages","EU Tyre Label":"EU Tyre Label","Each block":"Each block","Each side":"Each side","Each website created from this template sets its own appearance afterwards.":"Each website created from this template sets its own appearance afterwards.","Each website created from this template sets its own header afterwards.":"Each website created from this template sets its own header afterwards.","Each website created from this template sets its own live chat afterwards.":"Each website created from this template sets its own live chat afterwards.","Each website created from this template sets its own social link afterwards.":"Each website created from this template sets its own social link afterwards.","Each website created from this template sets its own {what} afterwards.":"Each website created from this template sets its own {what} afterwards.","Easy to read":"Easy to read",Edit:"Edit","Edit {name}":"Edit {name}","Edit \u201C{name}\u201D in {place}":"Edit \u201C{name}\u201D in {place}","Editing {name} changes it everywhere.":"Editing {name} changes it everywhere.","Editor only \u2014 not shown live":"Editor only \u2014 not shown live",Editorial:"Editorial","Editorial Text":"Editorial Text",Email:"Email","Email Form":"Email Form","Email signup":"Email signup",Empty:"Empty",End:"End",Ends:"Ends","Enter coordinates manually":"Enter coordinates manually",Entrance:"Entrance",Entries:"Entries","Entries count":"Entries count",Equal:"Equal",Essay:"Essay",Even:"Even","Every page":"Every page","Every text on the site that follows {style} changes to look like this one. This text\u2019s own changes are cleared, and it keeps following {style}.":"Every text on the site that follows {style} changes to look like this one. This text\u2019s own changes are cleared, and it keeps following {style}.","Every {part} in this section follows it. The face and the size change; the letter case is the section\u2019s own and stays as it is.":"Every {part} in this section follows it. The face and the size change; the letter case is the section\u2019s own and stays as it is.","Everything else on this block comes from the linked post. Unlink it to edit by hand.":"Everything else on this block comes from the linked post. Unlink it to edit by hand.","Everything is live":"Everything is live",Excerpt:"Excerpt",Eyebrow:"Eyebrow","Eyebrow style":"Eyebrow style",Facebook:"Facebook",Fade:"Fade",Feature:"Feature","Feature Banner":"Feature Banner","Feature Rows":"Feature Rows","Feature label":"Feature label","Feature label five":"Feature label five","Feature label four":"Feature label four","Feature label one":"Feature label one","Feature label six":"Feature label six","Feature label three":"Feature label three","Feature label two":"Feature label two","Feature story":"Feature story",Featured:"Featured","Featured *image*":"Featured *image*","Featured cover":"Featured cover",Features:"Features",Feedback:"Feedback","Field label":"Field label","Field notes":"Field notes",Fill:"Fill",Filled:"Filled","Filters the collection grids below it \u2014 a sticky row of Pills (the default), or Columns, one per filter you switch on.":"Filters the collection grids below it \u2014 a sticky row of Pills (the default), or Columns, one per filter you switch on.","Find coordinates":"Find coordinates","Finding\u2026":"Finding\u2026","Fine print":"Fine print","Finish swatches":"Finish swatches","Finish \xB7 Size \xB7 \xD71":"Finish \xB7 Size \xB7 \xD71","First item":"First item","First section":"First section","Fit content":"Fit content","Fitment Form":"Fitment Form","Fitment Table":"Fitment Table",Fixed:"Fixed","Fixed size \u2014 the site\u2019s Text setting doesn\u2019t resize this.":"Fixed size \u2014 the site\u2019s Text setting doesn\u2019t resize this.","Follow the page":"Follow the page","Follow the slideshow":"Follow the slideshow","Follows Desktop":"Follows Desktop","Follows the section's Corners until you set a number here.":"Follows the section's Corners until you set a number here.","Follows the site":"Follows the site","Follows the style":"Follows the style","Footer Box":"Footer Box","Footer \xB7 on every page":"Footer \xB7 on every page","Footer \xB7 on every page \xB7 old style":"Footer \xB7 on every page \xB7 old style",Footnote:"Footnote",Form:"Form","Form eyebrow":"Form eyebrow","Form heading":"Form heading","Form intro":"Form intro","Formatting \u2014 click a row first":"Formatting \u2014 click a row first","Formatting \u2014 row {n}":"Formatting \u2014 row {n}",Founders:"Founders","Founders heading":"Founders heading","Founders statement":"Founders statement","Four across":"Four across","Four stagger":"Four stagger",Frequency:"Frequency","Frequently *asked.*":"Frequently *asked.*","From the bottom":"From the bottom",Full:"Full","Full width":"Full width","Full-bleed intro image the next section scrolls over.":"Full-bleed intro image the next section scrolls over.","Full-screen image or video with a headline.":"Full-screen image or video with a headline.","Full-screen opener with rotating slides.":"Full-screen opener with rotating slides.",Gap:"Gap","Gap only":"Gap only","Give the new template page a name. It starts blank \u2014 add sections once it opens.":"Give the new template page a name. It starts blank \u2014 add sections once it opens.","Gives the other card this card's Corners.":"Gives the other card this card's Corners.","Gives the other {n} cards this card's Corners.":"Gives the other {n} cards this card's Corners.",Good:"Good","Greeting message":"Greeting message",Grid:"Grid",Group:"Group","Group heading":"Group heading","Group name":"Group name",H1:"H1",H2:"H2",H3:"H3",H4:"H4",H5:"H5",H6:"H6",HQ:"HQ",HTML:"HTML",Hairline:"Hairline","Hairline borders":"Hairline borders","Hand-picked products in a tidy grid.":"Hand-picked products in a tidy grid.","Hard to read":"Hard to read",Header:"Header","Header and footer not live yet":"Header and footer not live yet","Header badge":"Header badge","Header settings belong to a website.":"Header settings belong to a website.","Header \xB7 on every page":"Header \xB7 on every page","Header \xB7 on every page \xB7 old style":"Header \xB7 on every page \xB7 old style",Heading:"Heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading font size":"Heading font size",Headings:"Headings",Headquarters:"Headquarters",Height:"Height",Hero:"Hero","Hero & intros":"Hero & intros","Hero Slide":"Hero Slide","Hero Slideshow":"Hero Slideshow","Hero button":"Hero button","Hero image":"Hero image","Hero line":"Hero line","Hidden on the page":"Hidden on the page","Hide manual coordinates":"Hide manual coordinates","Hide {label} on the slide":"Hide {label} on the slide",Highlight:"Highlight","Highlight key numbers \u2014 years, designs.":"Highlight key numbers \u2014 years, designs.","Highlight line":"Highlight line",Hint:"Hint","Hold video":"Hold video",Home:"Home","Hours, minutes and seconds to a set date and time, then one line.":"Hours, minutes and seconds to a set date and time, then one line.","Hover effect":"Hover effect",Icon:"Icon","Icon after text":"Icon after text","Icon before text":"Icon before text","Icon only":"Icon only","Icon position":"Icon position","Illustrative example":"Illustrative example",Image:"Image","Image & Text Columns":"Image & Text Columns","Image & Text Split":"Image & Text Split","Image 2":"Image 2","Image background":"Image background","Image caption":"Image caption","Image column":"Image column","Image date":"Image date","Image fit":"Image fit","Image focus":"Image focus","Image label":"Image label","Image left":"Image left","Image meta":"Image meta","Image right":"Image right","Image side":"Image side","Image stage":"Image stage","Image tint":"Image tint","Image width":"Image width","In its own box":"In its own box","In progress (accent)":"In progress (accent)","In the product":"In the product","In this issue":"In this issue","In this section":"In this section","In your own time zone. Every visitor counts down to the same moment.":"In your own time zone. Every visitor counts down to the same moment.",Instagram:"Instagram",Integrations:"Integrations","Integrations Grid":"Integrations Grid",Interview:"Interview",Intro:"Intro","Introduce your company in a paragraph or two.":"Introduce your company in a paragraph or two.","Issue Header":"Issue Header","Issue lines":"Issue lines","Issue meta lines":"Issue meta lines",Item:"Item","Item alignment":"Item alignment",Items:"Items","Items from":"Items from","Its own":"Its own","Its size follows Site styles \u25B8 {follows} \u2014 {px}px right now.":"Its size follows Site styles \u25B8 {follows} \u2014 {px}px right now.","Its size follows Site styles \u25B8 {follows}.":"Its size follows Site styles \u25B8 {follows}.","Job card label":"Job card label",Join:"Join","Jumps to a section on that page.":"Jumps to a section on that page.",Justify:"Justify","Kanban board (job columns)":"Kanban board (job columns)","Kanban columns":"Kanban columns","Keep this section's own built-in size":"Keep this section's own built-in size","Key *features.*":"Key *features.*","Key Features":"Key Features",LINE:"LINE",LIVE:"LIVE",Label:"Label","Label color":"Label color",Labels:"Labels",Ladder:"Ladder",Large:"Large","Large text only":"Large text only","Latest Posts":"Latest Posts","Latest journal posts in a three-card row.":"Latest journal posts in a three-card row.",Latitude:"Latitude",Layout:"Layout","Layout & structure":"Layout & structure","Layout, structure & embeds":"Layout, structure & embeds",Lead:"Lead","Lead Text":"Lead Text","Learn more":"Learn more","Leave a blank line between paragraphs to start a new one.":"Leave a blank line between paragraphs to start a new one.","Leave a field blank to use the built-in wording.":"Leave a field blank to use the built-in wording.",Left:"Left","Left and right":"Left and right","Left of the copy":"Left of the copy","Legal & documents":"Legal & documents","Legal Line":"Legal Line",Level:"Level",Lift:"Lift",Lifted:"Lifted",Light:"Light",Lightbox:"Lightbox","Limited release":"Limited release",Line:"Line","Line (trend)":"Line (trend)",Link:"Link","Linked to a blog post. This editor has no blog to pick another from; choose \u201CNone (manual)\u201D to author the section yourself.":"Linked to a blog post. This editor has no blog to pick another from; choose \u201CNone (manual)\u201D to author the section yourself.","Linked to \u201C{name}\u201D":"Linked to \u201C{name}\u201D",LinkedIn:"LinkedIn",Links:"Links","Links to":"Links to",List:"List","Live chat":"Live chat","Live chat settings belong to a website.":"Live chat settings belong to a website.","Loading\u2026":"Loading\u2026","Location name":"Location name",Locations:"Locations","Locations Map":"Locations Map",Logo:"Logo","Logo alt text":"Logo alt text","Logo color":"Logo color","Logo description":"Logo description","Logo five":"Logo five","Logo four":"Logo four","Logo height":"Logo height","Logo image":"Logo image","Logo one":"Logo one","Logo three":"Logo three","Logo two":"Logo two",Logos:"Logos","Long read":"Long read","Long-form document body with an 'On this page' contents list.":"Long-form document body with an 'On this page' contents list.",Longitude:"Longitude",Look:"Look",Main:"Main","Main Pages":"Main Pages","Main color":"Main color","Main heading":"Main heading","Main heading\n*Highlight line*":`Main heading
3
3
  *Highlight line*`,Map:"Map","Map & Theme":"Map & Theme","Map theme":"Map theme","Match / done (green)":"Match / done (green)",Media:"Media",Medium:"Medium",Menu:"Menu",Message:"Message","Meta line":"Meta line",Metadata:"Metadata","Metadata rows":"Metadata rows",Middle:"Middle","Middle meta":"Middle meta",Milestone:"Milestone","Milestone Timeline":"Milestone Timeline","Milestone title.":"Milestone title.",Milestones:"Milestones",Mixed:"Mixed","Mockup Card":"Mockup Card","Mockup card":"Mockup card","Mockup position":"Mockup position",Mono:"Mono","Month DD, YYYY":"Month DD, YYYY",Motion:"Motion","Multi-column container for blocks.":"Multi-column container for blocks.",Muted:"Muted",Name:"Name","Name / alt":"Name / alt",Natural:"Natural","Navigation & wayfinding":"Navigation & wayfinding","Never published":"Never published","New page":"New page","Next slide":"Next slide","No fill":"No fill","No locations yet.":"No locations yet.","No match":"No match","No match (gray \u2715)":"No match (gray \u2715)","No other pages":"No other pages","No pages match your search":"No pages match your search","No pages yet. Add one with + above.":"No pages yet. Add one with + above.","No place found. Try another postcode.":"No place found. Try another postcode.","No section anchors yet":"No section anchors yet","No style":"No style","No wrap":"No wrap","No. 1":"No. 1",None:"None","None (manual)":"None (manual)",Normal:"Normal","Not changed":"Not changed","Not chosen":"Not chosen","Not saved. Reload the page.":"Not saved. Reload the page.","Not saved. Try again.":"Not saved. Try again.","Not set":"Not set","Not shown on the page":"Not shown on the page",Note:"Note","Note label":"Note label","Note value":"Note value",Nothing:"Nothing",Nudge:"Nudge",Number:"Number","Number style":"Number style",Numbers:"Numbers","N\xB001, N\xB002":"N\xB001, N\xB002",Off:"Off",Office:"Office",Offices:"Offices","Offset tall":"Offset tall","On a phone":"On a phone","On every blog post.":"On every blog post.","On picture":"On picture","On this page":"On this page",One:"One","One row":"One row","One then four":"One then four","Only the size follows a site style. This section sets its own font, weight and letter case.":"Only the size follows a site style. This section sets its own font, weight and letter case.",Open:"Open","Open first answer":"Open first answer","Open the {name} in a new tab":"Open the {name} in a new tab","Open your saved draft in a new tab. Visitors don't see it.":"Open your saved draft in a new tab. Visitors don't see it.","Opening hours":"Opening hours",Option:"Option","Order Table":"Order Table","Order summary":"Order summary",Outline:"Outline",Outlined:"Outlined",Overlay:"Overlay","Overlay - CartDrawer":"Overlay - CartDrawer","Overlay button":"Overlay button","Overlay button link":"Overlay button link","Overlay color":"Overlay color","Overlay position":"Overlay position",Padding:"Padding","Padding bottom":"Padding bottom","Padding left":"Padding left","Padding right":"Padding right","Padding top":"Padding top",Page:"Page","Page button":"Page button","Page name":"Page name","Page settings":"Page settings",Pages:"Pages","Panel heading":"Panel heading","Panels & cards":"Panels & cards","Panels and cards":"Panels and cards","Part of {name}":"Part of {name}","Paste a link to each profile. A platform left empty shows nothing on the site.":"Paste a link to each profile. A platform left empty shows nothing on the site.","Payment Methods":"Payment Methods","Payment methods":"Payment methods",Phone:"Phone","Photo Submission Form":"Photo Submission Form","Photo behind the words":"Photo behind the words",Photography:"Photography","Photos in a row":"Photos in a row","Pick a color to see how it reads.":"Pick a color to see how it reads.","Pick a post from {place} to auto-fill this section, or keep \u201CNone (manual)\u201D to author it yourself below.":"Pick a post from {place} to auto-fill this section, or keep \u201CNone (manual)\u201D to author it yourself below.","Pick who to reach, then a form that routes the message.":"Pick who to reach, then a form that routes the message.",Pinterest:"Pinterest",Placement:"Placement",Plain:"Plain","Play video":"Play video",Playback:"Playback","Playback speed":"Playback speed","Plays well with\n*your favourite apps.*":`Plays well with
4
4
  *your favourite apps.*`,"Pop up - SubscribePopup":"Pop up - SubscribePopup","Portal card (stock + button + orders)":"Portal card (stock + button + orders)",Position:"Position",Positions:"Positions","Post Card":"Post Card",Prefix:"Prefix",Preview:"Preview","Preview hover state":"Preview hover state","Preview the live site (opens in a new tab)":"Preview the live site (opens in a new tab)","Preview the live site in a new tab":"Preview the live site in a new tab","Preview your saved draft in a new tab":"Preview your saved draft in a new tab","Previous slide":"Previous slide",Price:"Price","Primary (Theme Color)":"Primary (Theme Color)",Product:"Product","Product Grid":"Product Grid","Product Hero":"Product Hero","Product badge":"Product badge","Product collections in a tidy grid.":"Product collections in a tidy grid.","Product name":"Product name","Product page":"Product page","Product record":"Product record","Product record (spec tiles)":"Product record (spec tiles)","Product tiles":"Product tiles","Promotions & sign-ups":"Promotions & sign-ups",Publish:"Publish",Published:"Published","Pull quote":"Pull quote","Put this page on your site":"Put this page on your site","Put your changes on your site":"Put your changes on your site","Q&A":"Q&A",Question:"Question",Questions:"Questions",Quiet:"Quiet",Quote:"Quote",Quotes:"Quotes",Rating:"Rating","Read out in place of the picture, and shown if it can\u2019t load.":"Read out in place of the picture, and shown if it can\u2019t load.","Read the story":"Read the story","Read time":"Read time","Reads in":"Reads in","Ready-to-Order Banner":"Ready-to-Order Banner","Reassurance lines":"Reassurance lines","Record type":"Record type","Recurring Columns":"Recurring Columns","Reel label":"Reel label","Refresh now":"Refresh now","Region \xB7 country":"Region \xB7 country","Related Products":"Related Products","Remove section":"Remove section","Repeating full-width rows \u2014 eyebrow, title and copy beside a numbered close-up image, alternating sides each row.":"Repeating full-width rows \u2014 eyebrow, title and copy beside a numbered close-up image, alternating sides each row.","Reset color":"Reset color","Reset {name} to the preset":"Reset {name} to the preset",Rest:"Rest","Result / order rows":"Result / order rows","Review Form":"Review Form",Reviews:"Reviews",Right:"Right","Right Top Text":"Right Top Text","Right links":"Right links","Right of the copy":"Right of the copy",Rigs:"Rigs","Rigs fitted":"Rigs fitted",Rise:"Rise",Role:"Role","Role \xB7 Location":"Role \xB7 Location","Role \xB7 location":"Role \xB7 location","Rotate on hover":"Rotate on hover","Rounds the picture. Left alone it stays square.":"Rounds the picture. Left alone it stays square.","Rounds the picture. The card's own corner is in Site styles.":"Rounds the picture. The card's own corner is in Site styles.",Sans:"Sans","Save as Template":"Save as Template","Save this website as a platform template":"Save this website as a platform template","Save your page changes first":"Save your page changes first",Scale:"Scale",Screen:"Screen","Scroll direction":"Scroll direction","Scroll duration":"Scroll duration","Scroll-Over Text":"Scroll-Over Text","Scrolling Bar":"Scrolling Bar",Search:"Search","Search all pages":"Search all pages","Search all pages\u2026":"Search all pages\u2026",Season:"Season","Second item":"Second item","Second section":"Second section","Second surface":"Second surface",Section:"Section","Section *heading.*":"Section *heading.*","Section *title*":"Section *title*","Section Header":"Section Header","Section above":"Section above","Section band":"Section band","Section below":"Section below","Section header":"Section header","Section heading":"Section heading","Section heading\n*Highlight line*":`Section heading
5
5
  *Highlight line*`,"Section heading *here.*":"Section heading *here.*","Section headline\n*Highlight line*":`Section headline
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efficient-storefront-blocks",
3
- "version": "0.46.0",
3
+ "version": "0.47.0",
4
4
  "description": "The EFFICIENT storefront's website editor — the website builder assembled with the storefront's own sections — for an app that edits a storefront website inside its own page. Built from the efficient-storefront-blocks repository.",
5
5
  "license": "UNLICENSED",
6
6
  "author": "Efficient Pty Ltd",
@@ -1 +0,0 @@
1
- import{g as rt,j as pe,r as ot,t as it,u as at,w as H}from"./chunk-RXTHULFH.js";import{Aa as et,Da as De,Ea as tt,za as me}from"./chunk-H2JF2QOJ.js";import{e as Ze,q as nt,s as re}from"./chunk-STAXAEAB.js";import{createContext as rn,useContext as on,useEffect as an,useMemo as ge,useState as ut}from"react";function st(e,t){return e.map(n=>({partNumber:n.partNumber,quantity:n.wheels*t}))}function oe(e,t){if(e.length===0)return null;let n=0;for(let r of e){let i=r.prices?.[t];if(typeof i!="number"||!Number.isFinite(i)||i<=0)return null;n+=i*r.wheels}return n}var Oe=4,yr=1,hr={unit:"set",spares:0,spareSide:"left"};function lt(e){return e.unit==="single"?1:Oe+e.spares}function br(e,t){return[{partNumber:e.partNumber,wheels:lt(t),prices:e.prices}]}function xr(e,t){let n=lt(t)-Oe;if(n<=0||e.length===0)return e;let r=tn(e),i=r?r[t.spareSide]:0;return e.map((o,a)=>a===i?{...o,wheels:o.wheels+n}:o)}function tn(e){let t,n;for(let r=0;r<e.length;r+=1){let i=e[r].hand;if(i!=="left"&&i!=="right")continue;if((i==="left"?t:n)!==void 0)return null;i==="left"?t=r:n=r}return t!==void 0&&n!==void 0?{left:t,right:n}:null}function nn(e,t){return t.spares>0?`${e} + spare`:e}function Cr(e){return e.unit==="single"?"Single":nn(`Set of ${Oe}`,e)}var Sr="data-add-to-basket",Fe=9,Pe="en";function fe(e,t,n=0){return new Intl.NumberFormat(Pe,{style:"currency",currency:t,minimumFractionDigits:0,maximumFractionDigits:n}).format(e)}function vr(e,t){return new Intl.NumberFormat(Pe,{style:"currency",currency:t}).format(e)}import{jsx as un}from"react/jsx-runtime";var ct="storefront-country",dt=rn(null);function sn(e){return mt(e,"catalogue")}function ln(e){return mt(e,"money")}function mt(e,t){let n=new Map(e.map(i=>[i.code,i.decimalPlaces])),r=new Map;return(i,o)=>{if(!o)return"";let a=r.get(o);if(!a){let s=n.get(o)??0;a=new Intl.NumberFormat(Pe,{style:"currency",currency:o,minimumFractionDigits:t==="money"?s:0,maximumFractionDigits:s}),r.set(o,a)}return a.format(i)}}function Lr({children:e,currencies:t,countries:n,defaultCurrency:r,defaultCountry:i}){let o=ge(()=>t??[],[t]),a=ge(()=>n??[],[n]),s=ge(()=>r||o.find(x=>x.isDefault)?.code||o[0]?.code||"",[r,o]),c=ge(()=>i||a.find(x=>x.isDefault)?.code||a[0]?.code||"",[i,a]),[u,p]=ut(c),[d,S]=ut(!1);an(()=>{let x=re.getItem(ct);x&&a.some(w=>w.code===x)&&p(x),S(!0)},[a]);function I(x){p(x),re.setItem(ct,x)}let b=ge(()=>{let x=a.find(L=>L.code===u)??null,w=x?.currency,N=w&&o.some(L=>L.code===w)?w:s,M=sn(o),C=ln(o);return{country:u,currency:N,setCountry:I,currencies:o,countries:a,activeCountry:x,formatPrice:(L,v)=>M(L,v??N),formatMoney:(L,v)=>C(L,v??N),ready:d}},[u,o,a,s,d]);return un(dt.Provider,{value:b,children:e})}function pt(){let e=on(dt);if(!e)throw new Error("useCurrency must be used within a CurrencyProvider");return e}import{createContext as Pn,useCallback as R,useContext as In,useEffect as Y,useMemo as wt,useRef as ie,useState as k}from"react";function gt(e,t){return e.valid?!1:e.reason==="firstOrderOnly"?!0:e.reason==="notEligible"&&!t}var yt="We'll confirm this discount when you place your order.",Rr="Confirmed at checkout";function kr(e){return e&&(e.valid||e.deferred)?e.code:void 0}var ft="coupon_code: ";function Ar(e){return!(e instanceof pe)||e.status!==400||!e.message.startsWith(ft)?null:e.message.slice(ft.length)}function ht(e,t){return e.map(n=>({qty:n.qty,slug:n.slug,name:`${n.name.lead}${n.name.accent}`.trim(),finish:n.finishName,size:n.size,kind:n.kind,sku:n.sku,pack:n.pack,priceLabel:t(n)}))}var Ie="Price on request",dn="Request a quote",mn="from ",Fr="From ",Ur="each",bt="Free";function Ue(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function $e(e,t){let n=e?.[t];return Ue(n)?n:null}function $r(e,t,n,r){let i=$e(e,n),o=$e(t,n);return i===null&&o===null?0:i===null?1:o===null?-1:r==="asc"?i-o:o-i}function Hr(e,t,n,r){if(n==null&&r==null)return!0;let i=$e(e,t);return!(i===null||n!=null&&i<n||r!=null&&i>r)}var pn={priced:!1,unit:null,was:null,onSale:!1,setTotal:null};function fn(e,t,n){if(!Ue(e))return pn;let r=Ue(t)&&t>e?t:null;return{priced:!0,unit:e,was:r,onSale:r!==null,setTotal:n!=null?e*n:null}}function qr(e,t,n=""){return!e.priced||e.unit==null?Ie:`${n}${fe(e.unit,t)}`}function Kr(e,t){return e.was==null?null:fe(e.was,t)}function gn(e,t,n=1){let r=oe(e,t);if(r===null)return{priced:!1,unit:null,isFrom:!1,setTotal:null};let i=e.reduce((a,s)=>a+s.wheels,0),o=Math.min(...e.map(a=>a.prices[t]));return{priced:!0,unit:o,isFrom:o*i!==r,setTotal:r*n}}var yn={priced:!1,unit:null,isFrom:!1,was:null,onSale:!1,setTotal:null};function Wr(e,t,n,r=1){let i=fn(e.prices[n],e.msrpPrices?.[n],4),o=i.setTotal==null?null:i.setTotal*r;if(!t)return{priced:i.priced,unit:i.unit,isFrom:!0,was:i.was,onSale:i.onSale,setTotal:null,fromSetTotal:o};let a=gn(t.components,n,r);return a.priced?{priced:!0,unit:a.unit,isFrom:a.isFrom,was:null,onSale:!1,setTotal:a.setTotal,fromSetTotal:o}:{...yn,fromSetTotal:o}}function hn(e,t){return!e.priced||e.unit==null?Ie:`${e.isFrom?mn:""}${fe(e.unit,t)}`}function Br(e,t){return e.was==null?null:fe(e.was,t)}function zr(e,t){return!e.priced||e.unit==null?dn:hn(e,t)}var bn=/^[^@\s]+@[^@\s]+\.[^@\s]+$/;function xt(e){return bn.test(e.trim())}var Ct="sf:ga-purchases",xn=20;function vt(){return typeof window>"u"||window.parent!==window}function ye(...e){try{if(vt()||typeof window.gtag!="function")return;window.gtag(...e)}catch{}}function Cn(e,t){let n=e.config.find(r=>r.gold)?.label;return{item_id:`${e.slug}|${e.finishName}|${e.size}`,item_name:`${e.name.lead}${e.name.accent}`.trim(),...n?{item_variant:n}:{},price:oe(e.components,t)??0,quantity:e.qty}}function He(e,t){return e.filter(we).map(n=>Cn(n,t))}function Qr(e){ye("event","view_item",{currency:e.currency,value:e.pricePerSet,items:[{item_id:e.itemId,item_name:e.itemName,...e.variant?{item_variant:e.variant}:{},price:e.pricePerSet,quantity:1}]})}function Et(e,t){let n=He([e],t);n.length!==0&&ye("event","add_to_cart",{currency:t,value:n[0].price*n[0].quantity,items:n})}function Jr(e){let t=He(e.lines,e.currency);t.length!==0&&ye("event","begin_checkout",{currency:e.currency,value:e.value,...e.coupon?{coupon:e.coupon}:{},items:t})}var St=new Set;function Sn(e){if(St.has(e))return!1;St.add(e);try{let t=JSON.parse(re.getItem(Ct)??"[]");if(t.includes(e))return!1;re.setItem(Ct,JSON.stringify([...t,e].slice(-xn)))}catch{}return!0}function Zr(e){let t=e.confirmation;if(vt()||!Sn(t.orderNumber))return;let n=t.currency,r=Number(t.grandTotal);ye("event","purchase",{transaction_id:t.orderNumber,currency:n,value:r,shipping:Number(t.freightCharge),...t.couponCode?{coupon:t.couponCode}:{},items:He(e.lines,n)}),e.adsSendTo&&ye("event","conversion",{send_to:e.adsSendTo,transaction_id:t.orderNumber,currency:n,value:r})}var vn="Arranged after review",Pt="Calculated at checkout",En=Pt,no=Pt;function It({quoted:e,optionCount:t,chosenAmount:n,couponWaivesFreight:r}){return e&&t===0?"arranged":r?"free":n===void 0?"pending":n===0?"free":"charged"}function ro(e){switch(e){case"arranged":return vn;case"pending":return En;case"free":return bt;case"charged":return null}}import{jsx as Nn}from"react/jsx-runtime";var wn=400,Ln=400,Tn=1500;function we(e){return(e.components?.length??0)>0}function Lt(e,t){return{code:e,valid:t.valid,deferred:gt(t,t.askedAsShopper),message:t.message||void 0,effects:t.effects??void 0}}function Nt(e,t){return oe(e.components,t)}function qe(e,t){let n=Nt(e,t);return n===null?null:n*e.qty}function Tt(e){return e!=="tyre"}var _t=Pn(null);function yo({children:e,preview:t=!1}){let{currency:n,country:r,formatMoney:i}=pt(),[o,a]=k(t),[s,c]=k([]),[u,p]=k([]),[d,S]=k([]),[I,b]=k(!1),[x,w]=k(!1),[N,M]=k(!1),[C,L]=k(!1),[v,q]=k(null),[W,j]=k(void 0),h=ie(r),E=ie("");h.current=h.current||r;let[m,K]=k(null),[Q,G]=k(!1),[A,J]=k(null),Z=ie(void 0),D=R(()=>a(!0),[]),Ce=R(()=>a(!1),[]),O=R(()=>a(l=>!l),[]);Y(()=>{t||typeof window>"u"||new URLSearchParams(window.location.search).get("cart")==="open"&&D()},[D,t]);let Se=R(l=>{L(!0),Tt(l)&&M(!0)},[]),ee=N||s.some(l=>Tt(l.kind)),se=C||s.length>0;Y(()=>{if(t||!ee||I)return;let l=!0;return H.listWheels().then(f=>{l&&(p(f),b(!0))}),()=>{l=!1}},[t,ee,I]),Y(()=>{if(t||!se||x)return;let l=!0;return H.listBundles().then(f=>{l&&(S(f),w(!0))}),()=>{l=!1}},[t,se,x]);let F=v?.deliveryOptions??[];Y(()=>{F.length!==0&&J(l=>l&&F.some(f=>f.id===l)?l:F[0]?.id??null)},[v]);let V=R(()=>s.filter(we).flatMap(l=>st(l.components,l.qty)),[s]),le=R(async(l,f)=>{let y=l.trim().toUpperCase();if(!y)return;let g=V();if(g.length===0){K({code:y,valid:!1,message:"Add a wheel to the cart first."});return}G(!0),Z.current=f;try{let T=await H.validateCoupon({code:y,items:g,currency:n,shippingMethodId:A??void 0,customerEmail:f});K(Lt(y,T))}catch{K({code:y,valid:!1,message:"Could not check that code. Please try again."})}finally{G(!1)}},[V,n,A]),te=R(()=>{K(null),Z.current=void 0},[]),ve=R(l=>{if(!m)return;let{code:f}=m;K(y=>y&&y.code===f?{code:f,valid:!1,refused:!0,message:l}:y)},[m]);Y(()=>{if(!m||m.refused)return;let l=m.code,f=g=>g!==null&&g.code===l&&!g.refused,y=setTimeout(async()=>{let g=V();if(g.length===0){K(T=>f(T)?{code:l,valid:!1,message:"Add a wheel to the cart first."}:T);return}G(!0);try{let T=await H.validateCoupon({code:l,items:g,currency:n,shippingMethodId:A??void 0,customerEmail:Z.current});K(de=>f(de)?Lt(l,T):de)}catch{}finally{G(!1)}},wn);return()=>clearTimeout(y)},[s,n,A]);let ue=m&&!m.refused?m.code:void 0;Y(()=>{if(t)return;let l=!0,f=setTimeout(async()=>{let y=V();if(y.length===0){q(null),j(void 0);return}try{let g=await H.quoteCart({items:y,currency:n,shippingMethodId:A??void 0,couponCode:ue,customerEmail:Z.current||void 0,country:h.current||void 0,subdivision:E.current||void 0});if(!l)return;q(g)}catch{if(!l)return}j(ue)},Ln);return()=>{l=!1,clearTimeout(f)}},[s,n,A,ue,r]);let P=R(l=>{c(f=>{let y=f.findIndex(g=>g.id===l.id);return y===-1?[...f,l]:f.map((g,T)=>T===y?{...g,qty:Math.min(Fe,g.qty+l.qty)}:g)}),Et(l,n)},[n]),U=R(l=>{c(f=>f.filter(y=>y.id!==l))},[]),X=R((l,f)=>{let y=Math.max(1,Math.min(Fe,f));c(g=>g.map(T=>T.id===l?{...T,qty:y}:T))},[]),Ge=R(l=>{c(l)},[]),[ce,Xt]=k(null),Ve=ie(null);Ve.current=ce;let $=ie(null),ke=ie(""),Xe=R((l,f)=>{let y=l.trim().toLowerCase();xt(y)&&Xt(g=>g&&g.email===y&&g.firstName===(f??"")?g:{email:y,firstName:f??""})},[]);Y(()=>{if(t||!ce)return;let l=ht(s.filter(we),g=>qe(g,n)===null?Ie:i(qe(g,n),n)),f={email:ce.email,firstName:ce.firstName,currency:n,items:l},y=JSON.stringify(f);if(y!==ke.current)return $.current&&clearTimeout($.current),$.current=setTimeout(()=>{$.current=null,ke.current=y,H.captureCart(f).catch(g=>{})},Tn),()=>{$.current&&(clearTimeout($.current),$.current=null)}},[s,ce,n,t]);let Ye=R(()=>{$.current&&(clearTimeout($.current),$.current=null);let l=Ve.current;l&&(ke.current="",H.captureCart({email:l.email,firstName:l.firstName,currency:n,items:[]}).catch(f=>{}))},[n]),je=wt(()=>{let l=s.reduce((_,ne)=>{let Ee=qe(ne,n);return Ee===null?_:_+Ee},0),f=s.some(_=>Nt(_,n)===null),y=s.reduce((_,ne)=>_+ne.qty,0),g=m?.valid?m.effects:void 0,T=g?Math.min(l,Number(g.discountAmount)):0,de=v?.bundleDiscount??0,jt=v?.appliedBundles??[],Ae=!!g?.freeShipping,Qe=F.find(_=>_.id===A),Je=Ae?0:v?.shipping??Qe?.amount??0,Qt=It({quoted:v!==null,optionCount:F.length,chosenAmount:Qe?.amount,couponWaivesFreight:Ae}),Me={};for(let _ of g?.freeUnits??[])Me[_.partNumber]=(Me[_.partNumber]??0)+_.quantity;let Jt=v?.tax??null,Zt=v?v.grandTotal:l-T-de+Je;return{sets:y,units:s.reduce((_,ne)=>_+(ne.components??[]).reduce((Ee,en)=>Ee+en.wheels*ne.qty,0),0),subtotal:l,hasUnpricedLine:f,discount:T,bundleDiscount:de,appliedBundles:jt,shipping:Je,freeShipping:Ae,shippingStatus:Qt,freeUnitsByPartNumber:Me,tax:Jt,grand:Zt,repricing:!!m?.refused&&v!==null&&W===m?.code,currency:n}},[s,n,m,F,A,v,W]),Yt=wt(()=>({isOpen:o,preview:t,open:D,close:Ce,toggle:O,items:s,catalog:u,bundles:d,warmCatalog:Se,add:P,remove:U,setQty:X,replaceItems:Ge,identify:Xe,clearCapturedCart:Ye,coupon:m,applyCoupon:le,removeCoupon:te,refuseCoupon:ve,couponBusy:Q,deliveryOptions:F,shippingMethodId:A,setShippingMethodId:J,totals:je}),[o,t,D,Ce,O,s,u,d,Se,P,U,X,Ge,Xe,Ye,m,le,te,ve,Q,F,A,je]);return Nn(_t.Provider,{value:Yt,children:e})}function Rt(){let e=In(_t);if(!e)throw new Error("useCart() must be called inside <CartProvider>. Mount the provider in app/layout.tsx.");return e}import{cache as Hn}from"react";function kt(e,t,n,r){for(;e.size>=t;){let i,o;for(let[s,c]of e){if(c.expiresAt<=r){i=s;break}o===void 0&&n(s)&&(o=s)}let a=i??o??e.keys().next().value;if(a===void 0)return;e.delete(a)}}var _n=6e4,Rn=5e3,kn=500,Le=new Map;async function An(e){let{host:t,matchesRequestHost:n}=await ot();if(!t)return"";let r=await it();return r?`${e}|slug:${encodeURIComponent(t)}/${encodeURIComponent(r)}`:n?`${e}|host:${t}`:`${e}|xhost:${t}`}var Mn=e=>e.includes("|slug:")||e.includes("|xhost:");async function At(e,t){if(await at()!==null)return t();let n=await An(e);if(!n)return t();let r=Date.now(),i=Le.get(n);if(i&&i.expiresAt>r)return i.load;let o=await t(),a=o.outcome.state==="failed",s=a?Rn:_n,c=Le.get(n)?.lastGood,u=o.outcome.state==="ok"?o:a?c:void 0,p=a&&u?u:o;return kt(Le,kn,Mn,r),Le.set(n,{load:p,expiresAt:r+s,lastGood:u}),p}var Dn=404;function On(e){if(e instanceof pe&&e.status===Dn)return{state:"absent"};let t=e instanceof pe?e.status:-1,n=e instanceof Error?e.message:String(e);return{state:"failed",status:t,detail:n}}var Fn="[storefront:chrome-load-failed]";function Un(e,t){console.error(`${Fn} ${e} status=${t.status} \u2014 serving fallback chrome`,t.detail)}async function Mt(e,t,n,r){try{let i=await t();return r?.(i)?{value:i,outcome:{state:"absent"}}:{value:i,outcome:{state:"ok"}}}catch(i){let o=On(i);return o.state==="failed"&&Un(e,o),{value:n,outcome:o}}}function $n(e){return e==="production"?"silent":"banner"}var Po=$n("production");function qn(e,t){return e?.trim()||t}function ko({legalName:e,foundedYear:t,siteName:n},r=new Date().getFullYear()){let i=qn(e,n);return`\xA9 ${t&&t<r?`${t}\u2013${r}`:`${r}`} ${i}`}var Kn={name:me,legalName:null,foundedYear:null,faviconUrl:null,currencies:[],defaultCurrency:null,countries:[],defaultCountry:null,commerceEnabled:!0,cardPayments:!1,paymentMethods:[],paypalClientId:null,paypalEnvironment:null,squareApplicationId:null,squareLocationId:null,squareEnvironment:null,ga4MeasurementId:null,googleAdsId:null,googleAdsConversionLabel:null,metaPixelId:null,mapsApiKey:null,mapsMapId:null,socialLinks:De},Ao=Hn(async()=>At("site",()=>Mt("site",async()=>{let e=await H.getSite();return{name:et(e.name),legalName:e.legalName?.trim()||null,foundedYear:e.foundedYear??null,faviconUrl:e.faviconUrl??null,currencies:e.currencies??[],defaultCurrency:e.defaultCurrency??null,countries:e.countries??[],defaultCountry:e.defaultCountry??null,commerceEnabled:e.commerceEnabled??!0,cardPayments:e.cardPayments??!1,paymentMethods:e.paymentMethods??(e.cardPayments?["card"]:[]),paypalClientId:e.paypalClientId??null,paypalEnvironment:e.paypalEnvironment??null,squareApplicationId:e.squareApplicationId??null,squareLocationId:e.squareLocationId??null,squareEnvironment:e.squareEnvironment??null,ga4MeasurementId:e.ga4MeasurementId??null,googleAdsId:e.googleAdsId??null,googleAdsConversionLabel:(e.googleAdsId?e.googleAdsConversionLabel:null)??null,metaPixelId:e.metaPixelId??null,mapsApiKey:e.mapsApiKey??null,mapsMapId:e.mapsMapId??null,socialLinks:tt(e.socialLinks)}},Kn)));var Mo={name:me,legalName:null,foundedYear:null,faviconUrl:null,currencies:[{code:"USD",symbol:"$",decimalPlaces:2,isDefault:!0}],defaultCurrency:"USD",countries:[{code:"US",name:"United States",currency:"USD",url:"",isDefault:!0,chargeTax:!1,taxDisplay:"none",taxName:"",taxRate:null,postalLabel:"Zip Code"}],defaultCountry:"US",commerceEnabled:!0,cardPayments:!0,paymentMethods:["card"],paypalClientId:null,paypalEnvironment:null,squareApplicationId:null,squareLocationId:null,squareEnvironment:null,ga4MeasurementId:null,googleAdsId:null,googleAdsConversionLabel:null,metaPixelId:null,mapsApiKey:null,mapsMapId:null,socialLinks:De};import{jsx as Ot,jsxs as Ft}from"react/jsx-runtime";import{useEffect as Te,useRef as Ut,useState as Ne}from"react";var he=new Map,Wn=64;async function Bn(e){if(!Ze())return null;try{let t=await fetch(`${nt()}/logo-analysis.json?url=${encodeURIComponent(e)}`);if(!t.ok)return null;let n=await t.json();if(!n||typeof n!="object")return null;let{reversed:r,inkIsDark:i}=n;return typeof r!="string"?null:{reversed:r,inkIsDark:typeof i=="boolean"?i:null}}catch{return null}}function Dt(e){let t=he.get(e);if(t)return t;let n=Bn(e);if(he.set(e,n),he.size>Wn){let r=he.keys().next();r.done||he.delete(r.value)}return n}var zn={small:54,medium:66,large:84},Gn=44,Vn=202/22,Bo=16,zo=140,Xn=.88,Go=16,Yn="invert(1)";function Vo({variant:e="header",scrolled:t=!0,src:n,reverse:r=!1,onLightSurface:i,reversedSrc:o,inkIsDark:a,size:s="medium",sizePx:c,wordmark:u,siteName:p=me,fitToContainer:d=!1,fitWordmarkToContainer:S=!1,fitFloorPx:I}){let b=u&&u.trim()?u.trim():p,[x,w]=Ne(!1),N=Ut(null),M=P=>{N.current=P};Te(()=>{let P=N.current?.ownerDocument??document,U=()=>{w(P.documentElement.getAttribute("data-theme")==="light")};U();let X=new MutationObserver(U);return X.observe(P.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>X.disconnect()},[]);let C=n&&n.trim()?n.trim():null,L=!!C&&rt(C),v=i??(x&&t),q=r&&L&&C&&o!=null?{reversed:o,inkIsDark:a??null}:null,W=q!==null,[j,h]=Ne(null);Te(()=>{if(!r||!C||!L||W){h(null);return}let P=!1;return h(null),Dt(C).then(U=>{P||h(U)}),()=>{P=!0}},[r,C,L,W]);let E=q??j,m=!!E&&E.inkIsDark!==null&&(v?!E.inkIsDark:E.inkIsDark),K=r&&!!C&&!L&&!v,Q=m&&E?E.reversed:C,G=Q?[Q]:[],[A,J]=Ne(0);Te(()=>{J(0)},[C,m]);let Z=e==="footer"?Gn:zn[s],D=c&&c>0?c:Z,Ce=Math.round(D*Vn),O=A<G.length?G[A]:null,[Se,ee]=Ne(Q),se=O!==null&&O===Se,F=Ut(null);Te(()=>{let P=F.current;if(!P||!P.complete)return;if(P.naturalWidth>0||P.naturalHeight>0){ee(O);return}let U=!1;return P.decode().then(()=>!U&&ee(O),()=>!U&&J(X=>X+1)),()=>{U=!0}},[O]);let V=d||S,le=`calc(100cqi / ${((b.length+1)*Xn).toFixed(2)})`,te=V&&I&&I>0?Math.min(I,D):null,ve=V?te===null?`min(${D}px, ${le})`:`clamp(${te}px, ${le}, ${D}px)`:`${D}px`,ue=Ft("span",{className:`font-display font-bold tracking-[0.18em] ${te===null?"whitespace-nowrap":"whitespace-normal"}`,style:{fontSize:ve,lineHeight:1},"aria-label":b,children:[b,Ot("span",{className:"text-accent",children:"."})]});return Ft("span",{ref:M,className:"inline-flex items-center",children:[!se&&ue,O&&Ot("img",{ref:F,src:O,alt:b,width:Ce,height:D,className:"shrink-0 object-contain",style:{...se?{height:`${D}px`,width:"auto",...d?{maxWidth:"100cqi"}:{}}:{display:"none"},...K?{filter:Yn}:{}},onLoad:()=>ee(O),onError:()=>J(P=>P+1)},O)]})}import{jsx as be,jsxs as Qn}from"react/jsx-runtime";function jn({spokes:e,mesh:t=!1,className:n}){let a=c=>Math.round(c*1e3)/1e3,s=[];for(let c=0;c<e;c++){let u=c/e*Math.PI*2-Math.PI/2;if(s.push({x1:a(100+Math.cos(u)*22),y1:a(100+Math.sin(u)*22),x2:a(100+Math.cos(u)*86),y2:a(100+Math.sin(u)*86),main:!0}),t){let p=u+Math.PI/e;s.push({x1:a(100+Math.cos(p)*22*1.4),y1:a(100+Math.sin(p)*22*1.4),x2:a(100+Math.cos(p)*78),y2:a(100+Math.sin(p)*78),main:!1})}}return Qn("svg",{viewBox:"0 0 200 200",fill:"none",stroke:"currentColor",className:n??"block h-[70%] w-[70%] transition-transform duration-700 [transition-timing-function:cubic-bezier(.2,.6,.2,1)]",children:[be("circle",{cx:100,cy:100,r:92,strokeWidth:2}),be("circle",{cx:100,cy:100,r:84,strokeWidth:1,opacity:.4}),be("circle",{cx:100,cy:100,r:22,strokeWidth:2}),be("circle",{cx:100,cy:100,r:6,fill:"currentColor"}),s.map((c,u)=>be("line",{x1:c.x1,y1:c.y1,x2:c.x2,y2:c.y2,stroke:"currentColor",strokeWidth:c.main?6:3,strokeLinecap:"round",opacity:c.main?1:.5},u))]})}var Qo="#c9a461",$t=[{f:"black",label:"Black",hex:"#171717"},{f:"silver",label:"Silver",hex:"#cccccc"},{f:"bronze",label:"Bronze",hex:"#8a6438"},{f:"graphite",label:"Graphite",hex:"#3a3c3f"},{f:"red",label:"Candy Red",hex:"#7a0f14"}],Jo={name:"",color:"var(--fg)",family:"silver",src:""};function Jn(e,t){let n=r=>{let i=$t.findIndex(o=>o.f===r);return i===-1?$t.length:i};return n(e)-n(t)||e.localeCompare(t)}function Zo(e){let t=new Set;for(let n of e)for(let r of n.finishes??[])r?.family&&t.add(r.family);return[...t].sort(Jn)}import{useState as Zn}from"react";import{jsx as ae,jsxs as Ke}from"react/jsx-runtime";function er({customerEmail:e}){let{coupon:t,applyCoupon:n,removeCoupon:r,couponBusy:i}=Rt(),[o,a]=Zn("");async function s(){i||!o.trim()||(await n(o,e),a(""))}return Ke("div",{className:"flex flex-col gap-2",children:[t===null?Ke("div",{className:"flex border border-line",children:[ae("input",{type:"text",value:o,onChange:c=>a(c.target.value),onKeyDown:c=>{c.key==="Enter"&&(c.preventDefault(),s())},placeholder:"Coupon code","aria-label":"Coupon code",className:"flex-1 bg-transparent px-4 py-4 font-mono text-[11px] uppercase tracking-[0.18em] text-fg outline-none placeholder:text-fg-dim"}),ae("button",{type:"button",onClick:()=>{s()},disabled:i,className:"border-l border-line px-4 font-mono text-[10px] uppercase tracking-[0.26em] text-btn transition-colors hover:bg-btn hover:text-btn-ink disabled:cursor-wait disabled:opacity-60",children:i?"\u2026":"Apply"})]}):Ke("div",{className:["flex items-center justify-between gap-3 border px-4 py-3",t.valid?"border-accent":"border-line"].join(" "),style:t.valid?{background:"color-mix(in oklab, var(--accent) 8%, transparent)"}:void 0,children:[ae("span",{className:["font-mono text-[11px] uppercase tracking-[0.22em]",t.valid?"text-accent":t.deferred?"text-fg":"text-fg-dim line-through"].join(" "),children:t.code}),ae("button",{type:"button",onClick:r,"aria-label":`Remove coupon ${t.code}`,className:"font-mono text-[12px] text-fg-dim transition-colors hover:text-fg",children:"\u2715"})]}),t?.deferred?ae("p",{className:"font-mono text-[10px] uppercase tracking-[0.18em] text-fg-dim",children:yt}):t&&!t.valid&&t.message&&ae("p",{className:"font-mono text-[10px] uppercase tracking-[0.18em] text-alert",children:t.message})]})}function ai(){let e=typeof crypto<"u"?crypto:void 0;if(typeof e?.randomUUID=="function")return e.randomUUID();let t=new Uint8Array(16);if(typeof e?.getRandomValues=="function")e.getRandomValues(t);else for(let r=0;r<t.length;r++)t[r]=Math.floor(Math.random()*256);t[6]=t[6]&15|64,t[8]=t[8]&63|128;let n=Array.from(t,r=>r.toString(16).padStart(2,"0")).join("");return`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`}import{Children as nr,isValidElement as rr,useEffect as qt,useId as or,useLayoutEffect as Bt,useRef as B,useState as Kt}from"react";var _e=(e,t)=>!!e[t]&&!e[t].disabled;function We(e,t,n){let r=e.length;for(let i=1;i<=r;i++){let o=((t+n*i)%r+r)%r;if(_e(e,o))return o}return t}function Be(e,t){return We(e,t===1?-1:e.length,t)}function ze(e,t){return _e(e,t)?t:Math.max(Be(e,1),0)}function Ht(e,t,n){let{open:r,focus:i}=e,o=a=>({...e,...a});if(t.length===1&&/\S/.test(t)){let a=e.typed+t.toLowerCase(),s=n.findIndex((c,u)=>_e(n,u)&&c.label.toLowerCase().startsWith(a));return{state:o({open:!0,typed:a,focus:s>=0?s:i}),handled:!0}}if(!r)return t==="ArrowDown"||t==="ArrowUp"||t==="Enter"||t===" "?{state:o({open:!0,typed:""}),handled:!0}:{state:e,handled:!1};switch(t){case"ArrowDown":return{state:o({focus:We(n,i,1)}),handled:!0};case"ArrowUp":return{state:o({focus:We(n,i,-1)}),handled:!0};case"Home":return{state:o({focus:Be(n,1)}),handled:!0};case"End":return{state:o({focus:Be(n,-1)}),handled:!0};case"Enter":case" ":return _e(n,i)?{state:o({open:!1,typed:""}),commit:i,refocus:!0,handled:!0}:{state:e,handled:!0};case"Escape":return{state:o({open:!1,typed:""}),refocus:!0,handled:!0};case"Tab":return{state:o({open:!1,typed:""}),handled:!1};default:return{state:e,handled:!1}}}import{placeMenu as ir}from"efficient-shell/ui";import{Fragment as dr,jsx as z,jsxs as zt}from"react/jsx-runtime";var Wt={body:"text-[length:var(--size-body,14px)]",label:"text-[length:var(--size-label,13px)]"};function ar({items:e,value:t,onPick:n,open:r,onOpen:i,onClose:o}){let[a,s]=Kt(!1),c=r!==void 0,u=c?r:a,[p,d]=Kt(0),S=B({text:"",timer:0}),I=B(null),b=B(null),x=B(null),w=or(),N=B(null),M=e.findIndex(h=>h.value===t),C=h=>{h!==u&&(c||s(h),h?i?.():o?.())},L=h=>{let E=e[h];!E||E.disabled||(n(E.value),C(!1),b.current?.focus())},v=h=>{let E={open:u,focus:u?p:ze(e,M),typed:S.current.text},m=Ht(E,h,e);return!m.handled&&m.state.open===u?!1:(m.state.typed!==E.typed&&(S.current.text=m.state.typed,window.clearTimeout(S.current.timer),S.current.timer=window.setTimeout(()=>{S.current.text=""},500)),d(m.state.focus),m.commit!==void 0?L(m.commit):C(m.state.open),m.refocus&&b.current?.focus(),m.handled)},q=B(v);q.current=v;let W=B(()=>C(!1));W.current=()=>C(!1);let j=h=>{u||(N.current=h.nativeEvent,q.current(h.key)&&h.preventDefault())};return qt(()=>{if(!u)return;let h=m=>{I.current?.contains(m.target)||W.current()},E=m=>{m!==N.current&&q.current(m.key)&&m.preventDefault()};return document.addEventListener("mousedown",h),document.addEventListener("keydown",E),()=>{document.removeEventListener("mousedown",h),document.removeEventListener("keydown",E)}},[u]),qt(()=>{u&&(S.current.text||d(ze(e,M)))},[u]),Bt(()=>{if(!u||!x.current)return;x.current.children.item(p)?.scrollIntoView({block:"nearest"})},[p,u]),{open:u,toggle:()=>C(!u),close:()=>C(!1),focusIdx:p,setFocusIdx:d,pick:h=>L(e.findIndex(E=>E.value===h)),wrapRef:I,triggerRef:b,listRef:x,listId:w,onTriggerKeyDown:j,activeId:u?`${w}-${p}`:void 0}}var sr={select:{list:"absolute left-0 top-full z-50 mt-1 max-h-[280px] w-max min-w-full overflow-y-auto border-2 border-accent bg-bg shadow-xl",item:(e,t,n)=>["px-3 py-3 font-mono text-[13px] font-semibold uppercase tracking-[0.1em] transition-colors whitespace-nowrap",n?"cursor-not-allowed opacity-40":"cursor-pointer",e&&!n?"bg-accent text-bg":"bg-bg text-fg"].join(" ")},cell:{list:"absolute left-0 top-full z-50 mt-1 max-h-[320px] w-max min-w-full overflow-y-auto border-2 border-accent bg-bg shadow-xl",item:e=>[`cursor-pointer whitespace-nowrap px-6 py-3 font-mono ${Wt.label} font-semibold uppercase tracking-[0.1em] transition-colors`,e?"bg-accent text-bg":"bg-bg text-fg"].join(" "),pickerMarker:!0},hairline:{list:"absolute left-0 top-full z-50 max-h-[320px] w-full overflow-y-auto border border-line bg-bg shadow-[0_6px_20px_rgba(0,0,0,0.10)]",item:(e,t)=>[`flex cursor-pointer items-center justify-between gap-4 border-b border-line px-4 py-3 text-left ${Wt.body} transition-colors last:border-b-0`,t?"border-fg font-medium text-fg":e?"border-fg text-fg":"text-fg-dim"].join(" "),pickerMarker:!0},region:{list:"absolute right-0 top-full z-[200] mt-2 flex min-w-[240px] flex-col border border-line bg-surface text-fg",item:(e,t,n,r)=>["flex w-full cursor-pointer items-center gap-3 px-4 py-3 text-left transition-colors","font-mono text-[13px] uppercase tracking-[0.18em]",e?"bg-surface-2 text-fg":"",r?"":"border-b border-line",t?"text-accent":""].join(" "),itemStyle:e=>e?void 0:{color:"color-mix(in oklab, currentColor 80%, transparent)"}}};function lr(e,t){Bt(()=>{let n=e.current,r=n?.ownerDocument.defaultView;if(!n||!r)return;let i=()=>{let o=n.style;o.top=o.bottom=o.marginTop=o.marginBottom=o.maxHeight=o.overflowY=o.translate="";let a=n.offsetParent??n.parentElement;if(!a)return;let s=a.getBoundingClientRect(),c=n.getBoundingClientRect(),u=Math.abs(c.right-s.right)<Math.abs(c.left-s.left)?"end":"start",p=ir({trigger:{left:s.left,right:s.right,top:s.top,bottom:s.bottom},menu:{width:c.width,height:c.height},bounds:{left:0,top:0,right:r.innerWidth,bottom:r.innerHeight},align:u,side:"bottom"});if(p.side==="top"){o.top="auto",o.bottom="100%",o.marginTop="0px";let S=p.top+Math.min(c.height,p.maxHeight);o.marginBottom=`${Math.max(0,s.top-S)}px`}p.maxHeight<c.height&&(o.maxHeight=`${p.maxHeight}px`,o.overflowY="auto");let d=p.left-c.left;d&&(o.translate=`${d}px`)};return i(),r.addEventListener("resize",i),r.addEventListener("scroll",i,!0),()=>{r.removeEventListener("resize",i),r.removeEventListener("scroll",i,!0)}},[e,t])}function ur({id:e,tone:t,items:n,value:r,focusIdx:i,onFocus:o,onPick:a,listRef:s,ariaLabel:c}){let u=sr[t],p=B(null);return lr(p,n.length),z("ul",{ref:d=>{p.current=d,s&&(s.current=d)},id:e,role:"listbox","aria-label":c,...u.pickerMarker?{"data-picker-menu":""}:{},className:u.list,children:n.map((d,S)=>{let I=d.value===r;return z("li",{id:`${e}-${S}`,role:"option","aria-selected":I,"aria-disabled":d.disabled||void 0,onMouseEnter:()=>!d.disabled&&o(S),onMouseDown:b=>{b.preventDefault(),d.disabled||a(d.value)},className:u.item(S===i,I&&d.value!=="",!!d.disabled,S===n.length-1),style:u.itemStyle?.(I),children:d.meta===void 0?d.label:zt(dr,{children:[d.lead,z("span",{className:"flex-1 whitespace-nowrap",children:d.label}),z("span",{className:"ml-auto text-[12px] opacity-50",children:d.meta})]})},`${d.value}_${S}`)})})}function cr({value:e,onChange:t,disabled:n,children:r,className:i,style:o,name:a,id:s,"aria-label":c}){let u=nr.toArray(r).flatMap(b=>{if(!rr(b))return[];if(b.type!=="option")return[];let w=b.props,N=w.value!==void 0?String(w.value):"",M=w.children,C=typeof M=="string"||typeof M=="number"?String(M):N;return[{value:N,label:C,disabled:!!w.disabled}]}),p=e??"",d=ar({items:u,value:p,onPick:b=>t?.({target:{value:b}})}),I=u.find(b=>b.value===p)?.label??u[0]?.label??"";return zt("div",{ref:d.wrapRef,className:"relative",children:[a&&z("input",{type:"hidden",name:a,value:p}),z("button",{ref:b=>{d.triggerRef.current=b},type:"button",disabled:n,"aria-haspopup":"listbox","aria-expanded":d.open,"aria-controls":d.open?d.listId:void 0,"aria-activedescendant":d.activeId,"aria-label":c,id:s,onClick:()=>!n&&d.toggle(),onKeyDown:b=>!n&&d.onTriggerKeyDown(b),className:`block w-full ${i??""}`,style:o,children:z("span",{className:"block w-full truncate text-left",children:I})}),d.open&&z(ur,{id:d.listId,tone:"select",items:u,value:p,focusIdx:d.focusIdx,onFocus:d.setFocusIdx,onPick:d.pick,listRef:d.listRef})]})}import{jsx as xe,jsxs as Re}from"react/jsx-runtime";var mr="font-mono text-[length:var(--size-label,12px)]",pr="font-semibold uppercase tracking-[0.22em] text-fg";function Gt(e){return`${e??mr} ${pr}`}function Vt(){return xe("span",{className:"text-accent",children:" *"})}function fr({children:e,required:t,labelFace:n}){return Re("span",{className:Gt(n),children:[e,t?xe(Vt,{}):null]})}function gr({label:e,required:t,hint:n,separate:r,htmlFor:i,labelFace:o,className:a,children:s}){let c=a?`flex flex-col gap-2 ${a}`:"flex flex-col gap-2",u=n?xe("span",{className:"font-mono text-[11px] uppercase tracking-[0.22em] text-fg-dim",children:n}):null;return r||n?Re("div",{className:c,children:[Re("label",{htmlFor:i,className:Gt(o),children:[e,t?xe(Vt,{}):null]}),s,u]}):Re("label",{htmlFor:i,className:c,children:[xe(fr,{required:t,labelFace:o,children:e}),s]})}export{Rr as a,kr as b,Ar as c,st as d,Oe as e,yr as f,hr as g,br as h,xr as i,tn as j,nn as k,Cr as l,Sr as m,Fe as n,Pe as o,fe as p,vr as q,Ie as r,dn as s,mn as t,Fr as u,Ur as v,bt as w,$e as x,$r as y,Hr as z,fn as A,qr as B,Kr as C,gn as D,Wr as E,hn as F,Br as G,zr as H,xt as I,Qr as J,Jr as K,Zr as L,no as M,ro as N,Lr as O,pt as P,we as Q,qe as R,yo as S,Rt as T,ko as U,Kn as V,Mo as W,zn as X,Gn as Y,Bo as Z,zo as _,Go as $,Vo as aa,jn as ba,Qo as ca,$t as da,Jo as ea,Jn as fa,Zo as ga,er as ha,ai as ia,ar as ja,ur as ka,cr as la,fr as ma,gr as na};
@@ -1 +0,0 @@
1
- import{c as V,e as z,i as j,k as T,p as $,q as Z,s as O}from"./chunk-STAXAEAB.js";var B="".replace(/\/+$/,"");var U="x-forwarded-for";function Q(e){let t=(e??"").split(",").map(r=>r.trim()).filter(Boolean);return t.length>0?t[t.length-1]:null}var Ie="x-forwarded-host";function X(e,t,r){let n={};return e&&(n[Ie]=e),t&&r==="uncached"&&(n[U]=t),n}function Y(e){if(e?.cache==="no-store"||e?.cache==="no-cache")return"uncached";if(e?.cache==="force-cache")return"data-cached";let t=e?.next?.revalidate;return typeof t=="number"&&t>0?"data-cached":"uncached"}var ee="x-storefront-site",te="x-storefront-host",re="x-storefront-preview";var ne={contentHash:"bff238ceb7836a0a",schema:1,mediaFields:{ImageBlock:["src"],LogoBlock:["src"],Flex:["bgImage"],FeaturedCover:["image"],LongRead:["image"],Banner:["imageSrc"],Timeline:["imageSrc"],Logos:["items[].src"],ContactLocations:["locations[].photo"],HeroSingle:["imageFocal","mediaImage","mediaImage2","mediaVideo","poster"],HeroSlide:["mediaImage","mediaVideo","poster"],PostCard:["image"],Gallery:["othersCards[].image","othersCards[].photos[].src","vehicleCards[].image","vehicleCards[].photos[].src","wheelCards[].image","wheelCards[].photos[].src"],GalleryItem:["image","photos[].src"],Manifesto:["imageSrc"],SectionHeader:["logoSrc"],IntroBleed:["imageSrc","imageSrcMobile"],Split:["imageSrc","textBgSrc"],ProcessSteps:["steps[].image"],DetailRows:["rows[].image"],PaymentBadges:["badges[].src"]},mediaKeyNames:["bgImage","image","imageFocal","imageSrc","imageSrcMobile","logoSrc","mediaImage","mediaImage2","mediaVideo","photo","poster","src","textBgSrc"],snapshotObjects:{ProductGrid:{source:{keep:["slug"]}},GalleryItem:{product:{keep:["code","finish"]}},FeaturedCover:{source:{keep:["slug"]}},LongRead:{source:{keep:["slug"]}}},hydratedLists:{Events:["posts"],SubscribeBlogs:["posts"]},technicalStateKeys:["focal","focalPhone","imageFocal","imageFocal2","imageFocal2Phone","imageFocalPhone"]};var $e="shop_access_token",se="shop_refresh_token",L=null;function N(){O.removeItem($e),O.removeItem(se)}var w={getAccess(){return L},takeLegacyRefresh(){let e=O.getItem(se);return N(),e},setTokens(e){L=e,N()},clear(){L=null,N()}};function Be(e){return!!e.src}function A(e){let t=e.finishes.filter(Be);if(t.length===e.finishes.length)return e;let r=e.defaultFinish&&t.some(n=>n.name===e.defaultFinish)?e.defaultFinish:null;return{...e,finishes:t,defaultFinish:r}}function Ue(e){return e.listable!==!1}function M(e){return e.map(A).filter(Ue)}var ce=["fill","stroke","stop-color","color","flood-color","lighting-color","solid-color"],le=new Set(["none","transparent","currentcolor","inherit","initial","unset","context-fill","context-stroke"]),v={black:[0,0,0],white:[255,255,255],gray:[128,128,128],grey:[128,128,128],darkgray:[169,169,169],darkgrey:[169,169,169],dimgray:[105,105,105],dimgrey:[105,105,105],lightgray:[211,211,211],lightgrey:[211,211,211],gainsboro:[220,220,220],silver:[192,192,192],whitesmoke:[245,245,245]},ue=12,me=/\burl\(/i,de=new RegExp(`(?<![-\\w])(${ce.join("|")})(\\s*=\\s*)(["'])([^"']*)\\3`,"gi"),pe=new RegExp(`((?:^|[;{\\s"'])(?:${ce.join("|")})\\s*:\\s*)([^;}"'<>]+)`,"gi"),Le=/<svg\b([^>]*)>/i,Ne=/\bfill\s*[=:]/i;function Me(e){let t=e.replace(de,(r,n,a,l,p)=>{let i=ie(p);return i===null?r:`${n}${a}${l}${i}${l}`}).replace(pe,(r,n,a)=>{let l=ie(a);return l===null?r:`${n}${l}`});return t=t.replace(Le,(r,n)=>Ne.test(n)?r:`<svg fill="#ffffff"${n}>`),t}function ie(e){let t=/!important/i.test(e),r=e.replace(/!important/gi,"").trim().toLowerCase();if(!r||me.test(r)||le.has(r))return null;let n=r in v?[...v[r],1]:ge(r);if(!n)return null;let[a,l,p,i]=n;if(Math.max(a,l,p)-Math.min(a,l,p)>ue)return null;let s=He(255-a,255-l,255-p,i);return t?`${s} !important`:s}function He(e,t,r,n){if(n<1)return`rgba(${e}, ${t}, ${r}, ${n})`;let a=l=>l.toString(16).padStart(2,"0");return`#${a(e)}${a(t)}${a(r)}`}function ge(e){return e.startsWith("#")?De(e):e.startsWith("rgb")?We(e):e.startsWith("hsl")?Ge(e):null}function De(e){let t=e.slice(1),r=1;if(t.length===3||t.length===4)t.length===4&&(r=parseInt(t[3]+t[3],16)/255),t=t.slice(0,3).split("").map(n=>n+n).join("");else if(t.length===6||t.length===8)t.length===8&&(r=parseInt(t.slice(6,8),16)/255),t=t.slice(0,6);else return null;return/^[0-9a-f]{6}$/.test(t)?[parseInt(t.slice(0,2),16),parseInt(t.slice(2,4),16),parseInt(t.slice(4,6),16),r]:null}function We(e){let t=e.slice(e.indexOf("(")+1,e.lastIndexOf(")")),[r,n]=t.split("/"),a=r.split(/[\s,]+/).filter(Boolean).slice(0,3);if(a.length<3)return null;let l=a.map(i=>i.endsWith("%")?Math.round(parseFloat(i)/100*255):Math.round(parseFloat(i)));if(l.some(i=>Number.isNaN(i)))return null;let p=n?F(n):Je(r);return[l[0],l[1],l[2],p]}function Je(e){let t=e.split(/[\s,]+/).filter(Boolean);return t.length>=4?F(t[3]):1}function F(e){let t=e.trim().endsWith("%")?parseFloat(e)/100:parseFloat(e);return Number.isNaN(t)?1:t}function Ge(e){let t=e.slice(e.indexOf("(")+1,e.lastIndexOf(")")),[r,n]=t.split("/"),a=r.split(/[\s,]+/).filter(Boolean);if(a.length<3)return null;let l=parseFloat(a[0]),p=parseFloat(a[1])/100,i=parseFloat(a[2])/100;if([l,p,i].some(P=>Number.isNaN(P)))return null;let s=n?F(n):a.length>=4?F(a[3]):1,[o,u,g]=Ke(l,p,i);return[o,u,g,s]}function Ke(e,t,r){let n=(1-Math.abs(2*r-1))*t,a=(e%360+360)%360/60,l=n*(1-Math.abs(a%2-1)),p=0,i=0,s=0;a<1?[p,i,s]=[n,l,0]:a<2?[p,i,s]=[l,n,0]:a<3?[p,i,s]=[0,n,l]:a<4?[p,i,s]=[0,l,n]:a<5?[p,i,s]=[l,0,n]:[p,i,s]=[n,0,l];let o=r-n/2;return[Math.round((p+o)*255),Math.round((i+o)*255),Math.round((s+o)*255)]}var oe=512*1024;function H(e){return/\.svg(\?|$)/i.test(e)}function Ve(e){return`data:image/svg+xml,${encodeURIComponent(Me(e))}`}function ze(e){let t=e.replace(/!important/gi,"").trim().toLowerCase();if(!t||me.test(t)||le.has(t))return null;let r=t in v?[...v[t],1]:ge(t);if(!r)return null;let[n,a,l]=r;return Math.max(n,a,l)-Math.min(n,a,l)>ue?null:(.2126*n+.7152*a+.0722*l)/255}function je(e){let t=[],r=n=>{let a=ze(n);a!==null&&t.push(a)};for(let n of e.matchAll(de))r(n[4]);for(let n of e.matchAll(pe))r(n[2]);return t.length?t.reduce((n,a)=>n+a,0)/t.length<.5:null}var ae=/^(?:\uFEFF|\s+|<\?xml[^>]*\?>|<!--[\s\S]*?-->|<!DOCTYPE\s+svg[^>[]*>)/i;function Ze(e){let t=e;for(let r=ae.exec(t);r&&r[0].length>0;r=ae.exec(t))t=t.slice(r[0].length);return/^<svg[\s>/]/i.test(t)}async function Qe(e,t){if(!H(e))return null;try{let r=await fetch(e,{signal:t,redirect:"manual"});if(!r.ok)return null;let n=Number(r.headers.get("content-length"));if(Number.isFinite(n)&&n>oe)return null;let a=await r.text();return a.length>oe?null:Ze(a)?a:null}catch{return null}}async function he(e,t){let r=await Qe(e,t);return r===null?null:{reversed:Ve(r),inkIsDark:je(r)}}function ye(){return V().siteId()}var Xe="",f=class extends Error{constructor(t,r,n){super(r),this.status=t,this.data=n}},J="Unable to reach the server. This could be a problem with your internet connection, or the server may be undergoing maintenance or an upgrade. Please try again shortly.",Ye=new Set([502,503,504]),D=0,et="This editor runs on its host's own backend, which does not serve this request.",tt=5e3,rt=15e3,nt=()=>typeof window>"u"?tt:rt;function _e(e){let t=(e.method??"GET").toUpperCase();if(!(e.body!=null||t!=="GET"&&t!=="HEAD")&&!(e.audience!=null&&e.audience!=="shop")&&typeof AbortSignal?.timeout=="function")return AbortSignal.timeout(nt())}var fe=e=>e instanceof Error&&e.name==="TimeoutError",Se=(e,t)=>Ye.has(e)?J:t,st=["admin","venue"],Ce="admin";function Yt(e){Ce=st.includes(e)?e:"admin"}function it(){return Ce}var ot=/^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{1,8})*$/,xe=null;function er(e){xe=e&&ot.test(e)?e:null}function at(){return xe}function ct(e){if(typeof window>"u"||!e.startsWith("/api/v1/"))return e;let t=$();return!t||/[?&]site=/.test(e)?e:q(e,`site=${encodeURIComponent(t)}`)}async function c(e,t={}){let{token:r,baseUrl:n,headers:a,audience:l,...p}=t;if(typeof window<"u"&&!z())throw new f(D,et,null);if(typeof window>"u"&&n===void 0)throw new Error(`apiFetch(${JSON.stringify(e)}) ran on the server without an explicit baseUrl. The API_URL default it would inherit is browser-only (the prod image bakes NEXT_PUBLIC_API_URL="" for same-origin use, which a Node fetch cannot resolve). Pass a base explicitly: \`await backendOpts()\` (or baseUrl: PRODUCT_FETCH_BASE) for product reads, or the server-only PRODUCT_BACKEND_URL env for other backend surfaces.`);let i=typeof FormData<"u"&&p.body instanceof FormData,s;try{s=await fetch(`${n??Xe}${ct(e)}`,{...p,headers:{...i?{}:{"Content-Type":"application/json"},...r?{Authorization:`Bearer ${r}`}:{},...l===null?{}:{"X-Portal-Audience":l??"shop"},...a},signal:p.signal??_e({...p,audience:l})})}catch(g){throw g instanceof TypeError||fe(g)?new f(D,J,null):g}let o;try{o=await s.text()}catch(g){throw fe(g)?new f(D,J,null):g}let u=null;if(o)try{u=JSON.parse(o)}catch{throw new f(s.status,s.ok?"Expected JSON but received a non-JSON response":Se(s.status,s.statusText),o)}if(!s.ok){let g=(u&&typeof u=="object"&&"detail"in u&&typeof u.detail=="string"?u.detail:null)??Se(s.status,s.statusText);throw new f(s.status,g,u)}return u}var R=null;async function ke(){return R||(R=lt().finally(()=>{R=null}),R)}async function lt(){let e=w.takeLegacyRefresh(),t=await ut.refresh(e??void 0);return w.setTokens(t.access),t.access}async function Te(){return w.getAccess()??ke()}async function h(e,t={}){let r;try{r=await Te()}catch{throw w.clear(),new f(401,"Not signed in",null)}try{return await c(e,{...t,token:r})}catch(n){if(!(n instanceof f)||n.status!==401)throw n;try{let a=await ke();return await c(e,{...t,token:a})}catch{throw w.clear(),n}}}async function Pe(e,t={}){if(w.getAccess())try{return{data:await h(e,t),asShopper:!0}}catch(r){if(!(r instanceof f)||r.status!==401)throw r}return{data:await c(e,t),asShopper:!1}}async function we(){let e=await h("/api/auth/me/");if(e.portal!=="shop")throw w.clear(),new f(403,"This session is not valid for this shop.",null);return e}var ut={login:(e,t)=>c("/api/auth/login/",{method:"POST",body:JSON.stringify({email:e,password:t,portal:"shop"}),credentials:"include"}),refresh:e=>c("/api/auth/refresh/",{method:"POST",body:JSON.stringify(e?{refresh:e,portal:"shop"}:{portal:"shop"}),credentials:"include"}),logout:async()=>{w.clear();try{await c("/api/auth/logout/",{method:"POST",body:JSON.stringify({portal:"shop"}),credentials:"include"})}catch{}},restoreSession:async()=>{let e=await Te();return await we(),e},me:we,updateMe:e=>h("/api/auth/me/",{method:"PATCH",body:JSON.stringify(e)}),changePassword:(e,t)=>h("/api/auth/me/",{method:"PATCH",body:JSON.stringify({password:t,old_password:e})}),changeEmail:(e,t)=>h("/api/shop-portal/change-email/",{method:"POST",body:JSON.stringify({new_email:e,current_password:t})}),myProfile:()=>h("/api/shop-portal/profile/"),updateMyProfile:e=>h("/api/shop-portal/profile/",{method:"PATCH",body:JSON.stringify(e)}),myAddresses:()=>h("/api/shop-portal/delivery-locations/"),createAddress:e=>h("/api/shop-portal/delivery-locations/",{method:"POST",body:JSON.stringify(e)}),updateAddress:(e,t)=>h(`/api/shop-portal/delivery-locations/${e}/`,{method:"PATCH",body:JSON.stringify(t)}),deleteAddress:e=>h(`/api/shop-portal/delivery-locations/${e}/`,{method:"DELETE"}),passwordResetRequest:e=>c("/api/auth/password-reset/",{method:"POST",body:JSON.stringify({email:e})}),passwordResetConfirm:(e,t,r)=>c("/api/auth/password-reset/confirm/",{method:"POST",body:JSON.stringify({uid:e,token:t,new_password:r})}),brands:()=>h("/api/products/brands/"),myOrders:()=>h("/api/shop-portal/orders/").then(e=>e.results),myOrder:e=>h(`/api/shop-portal/orders/${e}/`),cancelOrder:e=>h(`/api/shop-portal/orders/${e}/cancel/`,{method:"POST"}),myReturns:e=>h(`/api/shop-portal/returns/${e?`?order=${encodeURIComponent(e)}`:""}`).then(t=>t.results),createReturn:e=>h("/api/shop-portal/returns/",{method:"POST",body:JSON.stringify(e)}),withdrawReturn:e=>h(`/api/shop-portal/returns/${e}/cancel/`,{method:"POST"}),uploadReturnPhoto:(e,t)=>{let r=new FormData;return r.append("claim_item",e),r.append("file",t),r.append("media_type",t.type.startsWith("video/")?"video":"image"),h("/api/shop-portal/return-media/",{method:"POST",body:r})}};function S(e){if(typeof e=="string")return e.startsWith("/media/")?j(e):e;if(Array.isArray(e))return e.map(S);if(e&&typeof e=="object"){let t={};for(let[r,n]of Object.entries(e))t[r]=r==="captions"&&n&&typeof n=="object"&&!Array.isArray(n)?Object.fromEntries(Object.entries(n).map(([a,l])=>[S(a),l])):S(n);return t}return e}var Oe=typeof window>"u"&&B!=="",mt=Oe?B:"",dt=Z,b=()=>({baseUrl:dt(),audience:null});function m(e,t){let r=t?`?process=${encodeURIComponent(t)}`:"";return`/api/v1${e}${r}`}var pt=100,be=50;function ve(e,t,r){let n=new URLSearchParams;for(let[a,l]of Object.entries(t))l!=null&&l!==""&&n.set(a,String(l));return n.set("pageSize",String(pt)),r&&n.set("cursor",r),`/api/v1${e}?${n.toString()}`}function gt(e,t){return ve("/wheels",{process:e},t)}function ht(e,t,r){return ve("/products",{kind:e.join(","),make:t?.make,model:t?.model,year:t?.year,modification:t?.modification},r)}function yt(e){if(!e)return null;try{return new URL(e,"http://cursor.invalid").searchParams.get("cursor")}catch{return null}}async function Ae(e,t,r=()=>!1){let n=[],a=null;try{for(let l=0;l<be;l++){let p=await c(await t(a),await d());if(n.push(...p.results),a=yt(p.next),!a)break}a&&console.warn(`[${e}] stopped at ${be} pages (${n.length} rows); catalog may be truncated`)}catch(l){if(r(l))throw l;console.warn(`[${e}] product API unavailable, returning []`,l)}return n}var ft=e=>e instanceof f&&e.status===400;function St(e){return e.flatMap(t=>t.kind==="alloy-wheel"?M([t]):[t])}async function Fe(){return(await Pt()).host}async function Pt(){try{let{headers:e}=await import("./headers-UYHEZDAT.js"),t=await e(),r=l=>l?.split(",")[0]?.split(":")[0]?.trim().toLowerCase()||null,n=r(t.get(te)??t.get("x-forwarded-host")??t.get("host")),a=r(t.get("host"));return{host:n,matchesRequestHost:n!==null&&n===a}}catch{return{host:null,matchesRequestHost:!1}}}async function wt(){try{let{headers:e}=await import("./headers-UYHEZDAT.js");return Q((await e()).get(U))}catch{return null}}async function bt(){try{let{headers:e}=await import("./headers-UYHEZDAT.js");return(await e()).get(ee)||null}catch{return null}}async function At(){let e=await bt();if(e)return`site=${encodeURIComponent(e)}`;let t=await Fe();return t?`host=${encodeURIComponent(t)}`:""}async function y(e){if(typeof window<"u"){let t=$();return t?q(e,`site=${encodeURIComponent(t)}`):e}return q(e,await At())}function q(e,t){return t?`${e}${e.includes("?")?"&":"?"}${t}`:e}var Rt="preview";async function _t(){if(typeof window<"u")return null;try{let{headers:e}=await import("./headers-UYHEZDAT.js");return(await e()).get(re)}catch{return null}}async function Ct(){try{let{headers:e}=await import("./headers-UYHEZDAT.js");return(await e()).get("user-agent")}catch{return null}}async function W(e,t){let r=await _t();if(r===null)return[await y(e),await d(t)];let n=q(await y(e),`${Rt}=${encodeURIComponent(r)}`),{next:a,cache:l,...p}=t??{},i=await d({...p,cache:"no-store"}),s=await Ct();return s&&(i.headers={...i.headers,"user-agent":s}),[n,i]}async function xt(e){if(!Oe)return;let[t,r]=await Promise.all([Fe(),wt()]),n=X(t,r,e);return Object.keys(n).length>0?n:void 0}async function d(e){let t=await xt(Y(e)),r={baseUrl:mt,...e};return t&&(r.headers={...t,...e?.headers}),r}var _=typeof window>"u";function C(e,t){let r=new URLSearchParams;for(let[a,l]of Object.entries(t))l!==void 0&&l!==""&&r.set(a,String(l));let n=r.toString();return`/api/v1/fitment${e}${n?`?${n}`:""}`}var ir={listMakes:async e=>{if(_){let{fitmentData:r}=await import("./fitment-data-XLPK5AHF.js");return r.makes(e)}return(await c(C("/makes",{region:e}),b())).results},listModels:async(e,t)=>{if(_){let{fitmentData:n}=await import("./fitment-data-XLPK5AHF.js");return n.models(e,t)}return(await c(C("/models",{make:e,region:t}),b())).results},listYears:async(e,t,r)=>{if(_){let{fitmentData:a}=await import("./fitment-data-XLPK5AHF.js");return a.years(e,t,r)}return(await c(C("/years",{make:e,model:t,region:r}),b())).results},listModifications:async(e,t,r,n)=>{if(_){let{fitmentData:l}=await import("./fitment-data-XLPK5AHF.js");return l.modifications(e,t,r,n)}return(await c(C("/modifications",{make:e,model:t,year:r,region:n}),b())).results},getStockFitment:async(e,t,r,n,a)=>{if(_){let{fitmentData:l}=await import("./fitment-data-XLPK5AHF.js");return l.stockFitment(e,t,r,n,a)}return c(C("/stock-fitment",{make:e,model:t,year:r,modification:n,region:a}),b())}},or={listWheels:async e=>{let t=await Ae("products.listWheels",async r=>await y(gt(e,r)));return M(S(t))},listCatalog:async(e,t)=>{if(e.length===0)throw new Error("products.listCatalog() needs at least one kind. An empty list would omit `kind`, which the contract reads as `alloy-wheel` \u2014 so the call would silently return the wheel catalog instead of nothing.");let r=await Ae("products.listCatalog",async n=>await y(ht(e,t,n)),ft);return St(S(r))},getWheel:async e=>A(S(await c(await y(m(`/wheels/${e}`)),await d()))),getTyre:async e=>S(await c(await y(m(`/tyres/${e}`)),await d())),listBundles:async()=>{try{return await c(await y(m("/bundles")),await d())}catch{return[]}},getBundle:async e=>c(await y(m(`/bundles/${e}`)),await d()),listGalleryBuilds:async(e={})=>{let{process:t=null,wheelSlug:r=null}=e;if(typeof window>"u"){let{listGalleryBuilds:n}=await import("./gallery-builds-data-TD3QJK7L.js");return S(n(t,r))}try{let n=new URLSearchParams;t&&n.set("process",t),r&&n.set("wheelSlug",r);let a=n.toString(),l=await c(`/api/v1/gallery-builds${a?`?${a}`:""}`,b());return S(l.results)}catch(n){return console.warn("[products.listGalleryBuilds] product API unavailable, returning []",n),[]}},getSite:async()=>c(await y(m("/site")),await d()),getSiteBySlug:async e=>c(`${m("/site")}?${new URLSearchParams({site:e})}`,typeof window>"u"?await d():void 0),listBrands:async()=>{try{return(await c(await y(m("/brands")),await d())).results??[]}catch(e){return console.warn("[products.listBrands] product API unavailable, returning []",e),[]}},listBrandsForSite:async e=>(await c(`${m("/brands")}?${new URLSearchParams({site:e})}`,typeof window>"u"?await d():void 0)).results??[],listPages:async()=>S(await c(await y(m("/pages")),await d())),listProductTemplates:async()=>{try{return await c(await y(m("/product-templates")),await d())}catch(e){return console.warn("[products.listProductTemplates] unavailable, returning []",e),[]}},listDynamicPages:async e=>{let t=e?`?recordType=${encodeURIComponent(e)}`:"";try{return await c(await y(`${m("/dynamic-pages")}${t}`),await d())}catch(r){if(r instanceof f&&r.status===404)return[];throw r}},getRecord:async(e,t)=>{try{return await c(await y(m(`/records/${encodeURIComponent(e)}/${encodeURIComponent(t)}`)),await d())}catch(r){if(r instanceof f&&r.status===404)return null;throw r}},listRecordKeys:async e=>{try{let t=await c(await y(m(`/records/${encodeURIComponent(e)}`)),await d({cache:"no-store"}));return Array.isArray(t?.keys)?t.keys.filter(r=>typeof r=="string"&&r!==""):[]}catch(t){if(t instanceof f&&t.status===404)return[];throw t}},listProductTypeChoices:async()=>{try{return await c(await y(m("/product-type-choices")),await d())}catch(e){return console.warn("[products.listProductTypeChoices] unavailable, returning []",e),[]}},listFieldUsage:async()=>{try{return await c(await y(m("/field-usage")),await d())}catch(e){return console.warn("[products.listFieldUsage] unavailable, returning []",e),[]}},getPage:async(e,t={})=>{let r=t.record?`?record=${encodeURIComponent(t.record)}`:"",[n,a]=await W(m(`/pages/${e}`)+r,t.revalidate!==void 0?{next:{revalidate:t.revalidate}}:void 0);return S(await c(n,a))},listBlogPosts:async()=>{try{return(await c(m("/blog-posts"),await d())).map(t=>({...t,coverImage:T(t.coverImage)??""}))}catch(e){return console.warn("[products.listBlogPosts] blog API unavailable, returning []",e),[]}},getBlogPost:async e=>{let t=await c(m(`/blog-posts/${e}`),await d());return{...t,coverImage:T(t.coverImage)??""}},createOrder:async e=>c(m("/orders"),await d({method:"POST",body:JSON.stringify(e)})),createOrderAuthed:async e=>h(m("/orders"),await d({method:"POST",body:JSON.stringify(e)})),lookupOrder:async e=>c(m("/orders/lookup"),await d({method:"POST",body:JSON.stringify(e)})),createPaymentIntent:async e=>c(m("/payments/intent"),await d({method:"POST",body:JSON.stringify(e)})),createPaypalOrder:async e=>c(m("/payments/paypal/order"),await d({method:"POST",body:JSON.stringify(e)})),capturePaypalOrder:async e=>c(m("/payments/paypal/capture"),await d({method:"POST",body:JSON.stringify(e)})),createAfterpayCheckout:async e=>c(m("/payments/afterpay/checkout"),await d({method:"POST",body:JSON.stringify(e)})),captureAfterpayPayment:async e=>c(m("/payments/afterpay/capture"),await d({method:"POST",body:JSON.stringify(e)})),chargeSquare:async e=>c(m("/payments/square/charge"),await d({method:"POST",body:JSON.stringify(e)})),createGocardlessBillingRequest:async e=>c(m("/payments/gocardless/billing-request"),await d({method:"POST",body:JSON.stringify(e)})),completeGocardlessPayment:async e=>c(m("/payments/gocardless/complete"),await d({method:"POST",body:JSON.stringify(e)})),createZipCheckout:async e=>c(m("/payments/zip/checkout"),await d({method:"POST",body:JSON.stringify(e)})),captureZipPayment:async e=>c(m("/payments/zip/capture"),await d({method:"POST",body:JSON.stringify(e)})),createKlarnaCheckout:async e=>c(m("/payments/klarna/checkout"),await d({method:"POST",body:JSON.stringify(e)})),captureKlarnaPayment:async e=>c(m("/payments/klarna/capture"),await d({method:"POST",body:JSON.stringify(e)})),createStockAlert:async e=>c(m("/stock-alerts"),await d({method:"POST",body:JSON.stringify(e)})),createPreOrderIntent:async e=>c(m("/pre-order-intents"),await d({method:"POST",body:JSON.stringify(e)})),createNewsletterSubscription:async e=>c(m("/newsletter-subscriptions"),await d({method:"POST",body:JSON.stringify(e)})),unsubscribeNewsletter:async e=>c(m("/newsletter-unsubscribe"),await d({method:"POST",body:JSON.stringify(e)})),captureCart:async e=>c(m("/carts"),await d({method:"POST",body:JSON.stringify(e)})),restoreCart:async e=>c(m("/carts/restore"),await d({method:"POST",body:JSON.stringify(e)})),unsubscribeCartReminders:async e=>c(m("/carts/unsubscribe"),await d({method:"POST",body:JSON.stringify(e)})),listReviews:async(e={})=>{let t=new URLSearchParams;e.limit&&t.set("limit",String(e.limit)),e.designCode&&t.set("designCode",e.designCode);let r=m("/reviews"),n=t.toString();try{return await c(await y(n?`${r}?${n}`:r),await d())}catch(a){return console.warn("[products.listReviews] product API unavailable, returning []",a),[]}},submitReview:async e=>c(m("/reviews"),await d({method:"POST",body:JSON.stringify(e)})),getForm:async e=>c(m(`/forms/${encodeURIComponent(e)}`),await d()),submitForm:async(e,t)=>c(m(`/forms/${encodeURIComponent(e)}/submissions`),await d({method:"POST",body:JSON.stringify(t)})),listShippingMethods:async()=>{try{return await c(m("/shipping-methods"),await d())}catch(e){return console.warn("[products.listShippingMethods] product API unavailable, returning []",e),[]}},listCountrySubdivisions:async e=>{try{return await c(m(`/countries/${encodeURIComponent(e)}/subdivisions`),await d())}catch(t){return console.warn("[products.listCountrySubdivisions] unavailable, returning []",t),[]}},quoteCart:async e=>{let t=m("/cart/quote"),r=await d({method:"POST",body:JSON.stringify(e)});return e.couponCode?(await Pe(t,r)).data:c(t,r)},validateCoupon:async e=>{let{data:t,asShopper:r}=await Pe(m("/coupons/validate"),await d({method:"POST",body:JSON.stringify(e)}));return{...t,askedAsShopper:r}},getHeaderSettings:async()=>{let e=_e({method:"GET"}),t=await c(...await W(m("/header-settings"),{signal:e})),r=T(t.logoUrl),n=null,a=null;if(r&&H(r)){let l=await he(r,e);l&&(n=l.reversed,a=l.inkIsDark)}return{...t,logoUrl:r,logoReversed:n,logoInkIsDark:a}},getThemeSettings:async()=>c(...await W(m("/theme-settings"))),getChatSettings:async()=>c(await y(m("/chat-settings")),await d())},ar={listServices:async()=>{try{return await c(m("/bookings/services"),await d())}catch(e){return console.warn("[bookings.listServices] API unavailable, returning []",e),{results:[],currency:"USD"}}},getAvailability:async(e,t)=>c(m(`/bookings/availability?service=${encodeURIComponent(e)}&date=${t}`),await d()),create:async e=>c(m("/bookings"),await d({method:"POST",body:JSON.stringify(e)})),get:async e=>c(m(`/bookings/manage/${encodeURIComponent(e)}`),await d()),cancel:async e=>c(m(`/bookings/manage/${encodeURIComponent(e)}/cancel`),await d({method:"POST"})),createPaymentIntent:async e=>c(m("/bookings/payments/intent"),await d({method:"POST",body:JSON.stringify({manageToken:e})}))},G=class extends Error{constructor(r,n){super(`Slug "${r}" exists on ${n} websites; a site is required to pick one.`);this.slug=r;this.count=n;this.name="AmbiguousPageSlugError"}},E=(e,t,r)=>{let n=new URLSearchParams({...t?{site:t}:{},...r?{draft:"1"}:{}}).toString();return`/api/storefront/${e}/${n?`?${n}`:""}`},x=e=>`/api/storefront/sites/${encodeURIComponent(e)}/`,kt=e=>`${x(e)}currencies/`,Tt="/api/storefront/media/ingest/",K=class extends Error{constructor(){super("This editor is not connected to a website, so an upload has nowhere to go. Open the page from the website the file should belong to, then try again."),this.name="MediaUploadDestinationError"}};function Ot(){let e=ye();if(!e)throw new K;return`${Tt}?${new URLSearchParams({site:e})}`}var I={"X-Puck-Media-Manifest":ne.contentHash},cr=Ee({});function Ee(e){return(t,r={})=>{let n=at(),a=e.headers||n?{...n?{"Accept-Language":n}:{},...e.headers,...r.headers}:void 0;return c(t,{...r,...e.baseUrl!==void 0?{baseUrl:e.baseUrl}:{},...a?{headers:a}:{},audience:e.audience??it()})}}function vt(e={}){let t=Ee(e),r=e.siteDrafts===!0,n=i=>E("header-settings",i,r),a=i=>E("theme-settings",i,r),l=i=>E("chat-settings",i,r),p=i=>E("social-settings",i,r);return{findPageBySlug:async(i,s,o)=>{let u=new URLSearchParams({slug:i});o&&u.set("site",o);let g=await t(`/api/storefront/pages/?${u.toString()}`,{token:s}),P=Array.isArray(g)?g:g.results??[];if(!o&&P.length>1)throw new G(i,P.length);return P[0]??null},getPageById:(i,s)=>t(`/api/storefront/pages/${i}/`,{token:s}),saveLayout:(i,s,o,u,g)=>t(`/api/storefront/pages/${i}/`,{method:"PATCH",body:JSON.stringify({layout:s,expected_updated_at:u,...g?{client_id:g}:{}}),token:o}),createPagePreviewLink:(i,s)=>t(`/api/storefront/pages/${i}/preview-link/`,{method:"POST",token:s}),claimPageEditLock:(i,s,o,u=!1)=>t(`/api/storefront/pages/${i}/edit-lock/`,{method:"POST",body:JSON.stringify({client_id:o,takeover:u}),token:s}),releasePageEditLock:(i,s)=>t(`/api/storefront/pages/${i}/edit-lock/`,{method:"DELETE",token:s}),createTemplate:(i,s,o)=>t("/api/storefront/page-templates/",{method:"POST",body:JSON.stringify({name:i,layout:s}),headers:I,token:o}),getTemplate:(i,s)=>t(`/api/storefront/page-templates/${i}/`,{token:s}),saveTemplateLayout:(i,s,o)=>t(`/api/storefront/page-templates/${i}/`,{method:"PATCH",body:JSON.stringify({layout:s}),headers:I,token:o}),listTemplatePages:async(i,s)=>{let o=await t(`/api/storefront/template-pages/?template=${encodeURIComponent(i)}`,{token:s});return Array.isArray(o)?o:o.results??[]},findTemplatePageBySlug:async(i,s,o)=>{let u=await t(`/api/storefront/template-pages/?template=${encodeURIComponent(i)}&slug=${encodeURIComponent(s)}`,{token:o});return(Array.isArray(u)?u:u.results??[])[0]??null},createTemplatePage:(i,s,o)=>t("/api/storefront/template-pages/",{method:"POST",body:JSON.stringify({template:i,...s}),headers:I,token:o}),saveTemplatePageLayout:(i,s,o)=>t(`/api/storefront/template-pages/${i}/`,{method:"PATCH",body:JSON.stringify({layout:s}),headers:I,token:o}),deleteTemplatePage:(i,s,o)=>t(`/api/storefront/template-pages/${i}/`,{method:"DELETE",token:s,...o?.keepalive?{keepalive:!0}:{}}),listPages:async(i,s)=>{let o=new URLSearchParams({no_page:"true"});s&&o.set("site",s);let u=await t(`/api/storefront/pages/?${o.toString()}`,{token:i});return Array.isArray(u)?u:u.results??[]},createPage:(i,s,o,u)=>t("/api/storefront/pages/",{method:"POST",body:JSON.stringify({title:i,slug:s,layout:o}),token:u}),deletePage:(i,s)=>t(`/api/storefront/pages/${i}/`,{method:"DELETE",token:s}),getHeaderSettings:(i,s)=>t(n(s),{token:i}),listMenus:async(i,s)=>{let o=new URLSearchParams({no_page:"true"});s&&o.set("site",s);let u=await t(`/api/storefront/menus/?${o}`,{token:i});return Array.isArray(u)?u:u.results??[]},listBlogPosts:async(i,s={})=>{let o=new URLSearchParams({no_page:"true"});s.visibleOnly&&o.set("is_visible","true"),s.siteId&&o.set("site",s.siteId);let u=await t(`/api/storefront/blog-posts/?${o.toString()}`,{token:i});return Array.isArray(u)?u:u.results??[]},listFieldUsage:async(i,s)=>{let o=await t(`/api/storefront/field-usage/?site=${encodeURIComponent(s)}`,{token:i});return Array.isArray(o?.entries)?o.entries:[]},listCategories:async(i,s={})=>{let o=new URLSearchParams({no_page:"true"});s.visibleOnly&&o.set("is_visible","true"),s.siteId&&o.set("site",s.siteId);let u=await t(`/api/storefront/categories/?${o.toString()}`,{token:i});return[...Array.isArray(u)?u:u.results??[]].sort((P,k)=>P.sort_order-k.sort_order||P.name.localeCompare(k.name))},listForms:async(i,s={})=>{let o=new URLSearchParams({no_page:"true"});s.siteId&&o.set("site",s.siteId);let u=await t(`/api/storefront/forms/?${o.toString()}`,{token:i});return[...Array.isArray(u)?u:u.results??[]].sort((P,k)=>P.title.localeCompare(k.title))},listWheelSummaries:async(i,s={})=>{let o=new URLSearchParams;s.siteId&&o.set("site",s.siteId);let u=o.toString(),g=await t(`/api/storefront/wheel-curations/summaries/${u?`?${u}`:""}`,{token:i});return S(g)},listProducts:async(i,s={})=>{let o=new URLSearchParams;s.kinds?.length&&o.set("kind",s.kinds.join(",")),s.siteId&&o.set("site",s.siteId);let u=o.toString(),g=await t(`/api/storefront/products/${u?`?${u}`:""}`,{token:i});return S(g)},getWheelDetail:async(i,s,o={})=>{let u=new URLSearchParams({slug:s});return o.siteId&&u.set("site",o.siteId),A(S(await t(`/api/storefront/wheel-curations/detail/?${u.toString()}`,{token:i})))},updateHeaderSettings:(i,s,o)=>t(n(o),{method:"PATCH",body:JSON.stringify(i),token:s}),getSite:(i,s)=>t(x(i),{token:s}),listSites:async i=>{let s=await t("/api/storefront/sites/?no_page=true",{token:i});return Array.isArray(s)?s:s.results??[]},listSiteCurrencies:async(i,s)=>{let o=await t(kt(i),{token:s});return Array.isArray(o)?o:[]},publishSite:(i,s)=>t(`${x(i)}publish/`,{method:"POST",token:s}),getSiteLiveState:(i,s)=>t(`${x(i)}live-state/`,{token:s}),updateSite:(i,s,o)=>t(x(i),{method:"PATCH",body:JSON.stringify(s),token:o}),getThemeSettings:(i,s)=>t(a(s),{token:i}),updateThemeSettings:(i,s,o)=>t(a(o),{method:"PATCH",body:JSON.stringify(i),token:s}),getChatSettings:(i,s)=>t(l(s),{token:i}),updateChatSettings:(i,s,o)=>t(l(o),{method:"PATCH",body:JSON.stringify(i),token:s}),getSocialSettings:(i,s)=>t(p(s),{token:i}),updateSocialSettings:(i,s,o)=>t(p(o),{method:"PATCH",body:JSON.stringify(i),token:s}),uploadHeaderLogo:(i,s,o)=>{let u=new FormData;return u.append("logo",i),t(n(o),{method:"PATCH",body:u,token:s})},clearHeaderLogo:(i,s)=>t(n(s),{method:"PATCH",body:JSON.stringify({logo:null}),token:i}),setHeaderLogoFromAsset:(i,s,o)=>t(n(o),{method:"PATCH",body:JSON.stringify({logo_asset_id:i}),token:s}),uploadMedia:async(i,s)=>{let o=new FormData;return o.append("file",i),t(Ot(),{method:"POST",body:o,token:s})},listMedia:async(i,s)=>{let o=new URLSearchParams({no_page:"true"});s&&o.set("kind",s);let u=await t(`/api/storefront/media-assets/?${o.toString()}`,{token:i});return Array.isArray(u)?u:u.results??[]}}}var lr=vt({siteDrafts:!0});export{ne as a,B as b,X as c,Y as d,w as e,Be as f,H as g,ye as h,Xe as i,f as j,J as k,D as l,Yt as m,er as n,c as o,ut as p,Fe as q,Pt as r,wt as s,bt as t,_t as u,ir as v,or as w,ar as x,G as y,cr as z,lr as A};