efficient-storefront-blocks 0.80.0 → 0.82.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/README.md +1 -1
- package/dist/chunks/{EditorPreviewCheckout-PSONSVRR.js → EditorPreviewCheckout-XM22X3CX.js} +4 -4
- package/dist/chunks/{SiteEditorProvider-PWHW2UA6.js → SiteEditorProvider-5YHSOW4Y.js} +1 -1
- package/dist/chunks/{chunk-MCCDGDRW.js → chunk-47L7KHRW.js} +1 -1
- package/dist/chunks/{chunk-3Q66B5NU.js → chunk-NSBGNY7R.js} +1 -1
- package/dist/chunks/chunk-VIPMT34C.js +320 -0
- package/dist/chunks/{fitment-data-Q2TJ6FBU.js → fitment-data-SZWTO4WT.js} +1 -1
- package/dist/editor/components/CategoryProductFields.d.ts +4 -1
- package/dist/editor/components/CategoryProductFields.js +1 -1
- package/dist/editor/components/EditReviewsLink.d.ts +4 -0
- package/dist/editor/components/EditReviewsLink.js +1 -0
- package/dist/editor/components/GalleryShowcaseSource.js +1 -1
- package/dist/editor/components/PreviewProductPicker.js +1 -1
- package/dist/editor/components/ProductHeroSource.js +1 -1
- package/dist/editor/components/ProductPicker.js +1 -1
- package/dist/editor/components/ReviewsProductSource.d.ts +26 -0
- package/dist/editor/components/ReviewsProductSource.js +1 -0
- package/dist/editor/components/SpecTableSource.js +1 -1
- package/dist/editor/lib/document/blocks/commerce/DetailRows/fields.js +1 -1
- package/dist/editor/lib/document/blocks/commerce/GalleryB/fields.js +1 -1
- package/dist/editor/lib/document/blocks/commerce/ProductGrid/fields.js +1 -1
- package/dist/editor/lib/document/blocks/commerce/ProductHero/fields.js +1 -1
- package/dist/editor/lib/document/blocks/commerce/RelatedProducts/fields.js +1 -1
- package/dist/editor/lib/document/blocks/commerce/SpecTable/fields.js +1 -1
- package/dist/editor/lib/document/blocks/commerce/index.d.ts +1 -1
- package/dist/editor/lib/document/blocks/commerce/page-rules.d.ts +2 -0
- package/dist/editor/lib/document/blocks/commerce/page-rules.js +1 -1
- package/dist/editor/lib/document/blocks/service/ReviewForm/fields.js +1 -1
- package/dist/editor/lib/document/blocks/service/Reviews/fields.js +1 -1
- package/dist/editor/lib/document/config.d.ts +1 -0
- package/dist/editor/lib/document/config.js +1 -1
- package/dist/editor/lib/document/section-text-regions.d.ts +1 -0
- package/dist/editor/lib/document/section-text-regions.js +1 -0
- package/dist/editor/lib/storefront-editor-words.d.ts +4 -1
- package/dist/editor/lib/storefront-editor-words.js +1 -1
- package/dist/index.js +36 -28
- package/dist/render/app/globals.css +69 -20
- package/dist/render/built-with.json +1 -1
- package/dist/render/components/AppointmentBooking.js +1 -1
- package/dist/render/components/ChatContext.js +1 -1
- package/dist/render/components/CheckoutCTA.js +1 -1
- package/dist/render/components/CollectionCard.js +1 -1
- package/dist/render/components/Collections.js +1 -1
- package/dist/render/components/CompatibleTyres.js +1 -1
- package/dist/render/components/ConsentBanner.js +1 -1
- package/dist/render/components/ContactCards.js +1 -1
- package/dist/render/components/ContactRouting.js +1 -1
- package/dist/render/components/DeliveryOptions.js +1 -1
- package/dist/render/components/DetailRows.js +1 -1
- package/dist/render/components/EuTyreLabels.d.ts +1 -1
- package/dist/render/components/EuTyreLabels.js +1 -1
- package/dist/render/components/Events.js +1 -1
- package/dist/render/components/FitmentTable.js +1 -1
- package/dist/render/components/FooterDivider.js +1 -1
- package/dist/render/components/FooterSection.js +1 -1
- package/dist/render/components/FooterSocial.js +1 -1
- package/dist/render/components/FormBlock.js +1 -1
- package/dist/render/components/GalleryCard.js +1 -1
- package/dist/render/components/GalleryGrid.js +1 -1
- package/dist/render/components/GalleryItem.js +1 -1
- package/dist/render/components/GalleryShowcase.js +1 -1
- package/dist/render/components/LinkedProductHero.d.ts +2 -1
- package/dist/render/components/MessagingCards.js +1 -1
- package/dist/render/components/ProductCard.js +1 -1
- package/dist/render/components/ProductCardChrome.d.ts +4 -3
- package/dist/render/components/ProductCardChrome.js +1 -1
- package/dist/render/components/ProductGallery.js +1 -1
- package/dist/render/components/ProductGridSection.d.ts +7 -6
- package/dist/render/components/ProductGridSection.js +1 -1
- package/dist/render/components/ProductHeroPanel.d.ts +7 -2
- package/dist/render/components/ProductHeroPanel.js +1 -1
- package/dist/render/components/ProductLightbox.js +1 -1
- package/dist/render/components/RateTable.js +1 -1
- package/dist/render/components/ReviewForm.js +1 -1
- package/dist/render/components/Reviews.js +1 -1
- package/dist/render/components/SectionBand.d.ts +5 -2
- package/dist/render/components/SectionBand.js +1 -1
- package/dist/render/components/SectionBandChoice.d.ts +5 -0
- package/dist/render/components/SectionBandChoice.js +1 -0
- package/dist/render/components/SpecTable.js +1 -1
- package/dist/render/components/SubmitBuild.js +1 -1
- package/dist/render/components/Subscribe.js +1 -1
- package/dist/render/components/ThemedSelect.d.ts +4 -2
- package/dist/render/components/ThemedSelect.js +1 -1
- package/dist/render/components/TyreVehicleFitment.d.ts +2 -2
- package/dist/render/components/TyreVehicleFitment.js +1 -1
- package/dist/render/components/WheelCardFrame.js +1 -1
- package/dist/render/components/WheelPlaceholder.d.ts +3 -1
- package/dist/render/components/WheelPlaceholder.js +1 -1
- package/dist/render/components/booking/BookingRegions.js +1 -1
- package/dist/render/components/buy-row.d.ts +1 -1
- package/dist/render/components/buy-row.js +1 -1
- package/dist/render/components/card-pieces/CardPicture.d.ts +1 -1
- package/dist/render/components/card-pieces/CardPicture.js +1 -1
- package/dist/render/components/card-spin.d.ts +7 -0
- package/dist/render/components/card-spin.js +1 -0
- package/dist/render/components/catalog/CatalogFilterBar.js +1 -1
- package/dist/render/components/catalog/CatalogVehiclePicker.js +1 -1
- package/dist/render/components/catalog/PriceRange.d.ts +6 -0
- package/dist/render/components/catalog/PriceRange.js +1 -0
- package/dist/render/components/catalog/SortSelect.d.ts +8 -0
- package/dist/render/components/catalog/SortSelect.js +1 -0
- package/dist/render/components/checkout/CheckoutPageClient.js +1 -1
- package/dist/render/components/checkout/checkout-parts.js +1 -1
- package/dist/render/components/fitment/FitmentFinder.js +1 -1
- package/dist/render/components/fitment/FitmentPickerGrid.js +1 -1
- package/dist/render/components/fitment/StockFitmentCard.js +1 -1
- package/dist/render/components/pdp-dynamic/DynamicBundleOffer.js +1 -1
- package/dist/render/components/pdp-dynamic/DynamicDetailRows.js +1 -1
- package/dist/render/components/pdp-dynamic/DynamicGalleryGrid.js +1 -1
- package/dist/render/components/pdp-dynamic/DynamicProductHero.d.ts +2 -1
- package/dist/render/components/pdp-dynamic/DynamicRelatedProducts.d.ts +3 -2
- package/dist/render/components/pdp-dynamic/DynamicRelatedProducts.js +1 -1
- package/dist/render/components/pdp-dynamic/DynamicTyreSizes.js +1 -1
- package/dist/render/components/pdp-dynamic/KindGate.js +1 -1
- package/dist/render/components/pdp-dynamic/RecordPhotoGallery.js +1 -1
- package/dist/render/components/wheels-plp/AlloyWheelsListing.d.ts +3 -2
- package/dist/render/components/wheels-plp/AlloyWheelsListing.js +1 -1
- package/dist/render/components/wheels-plp/PlpCard.d.ts +3 -2
- package/dist/render/components/wheels-plp/PlpCard.js +1 -1
- package/dist/render/components/wheels-plp/PlpToolbar.d.ts +16 -0
- package/dist/render/components/wheels-plp/PlpToolbar.js +1 -0
- package/dist/render/lib/catalog/relationships.js +1 -1
- package/dist/render/lib/document/blocks/commerce/AlloyWheelsListing/render.js +1 -1
- package/dist/render/lib/document/blocks/commerce/DetailRows/render.js +1 -1
- package/dist/render/lib/document/blocks/commerce/ProductGrid/meta.js +1 -1
- package/dist/render/lib/document/blocks/commerce/ProductGrid/render.js +1 -1
- package/dist/render/lib/document/blocks/commerce/ProductHero/render.js +1 -1
- package/dist/render/lib/document/blocks/commerce/RelatedProducts/render.js +1 -1
- package/dist/render/lib/document/blocks/text-part-shapes.json +0 -14
- package/dist/render/lib/sections/catalog-text-size.d.ts +7 -0
- package/dist/render/lib/sections/catalog-text-size.js +1 -0
- package/dist/render/lib/sections/fill-row.js +1 -1
- package/dist/render/lib/sections/grid-no-hole.d.ts +1 -1
- package/dist/render/lib/sections/grid-no-hole.js +1 -1
- package/dist/render/lib/sections/product-hero-text-regions.d.ts +3 -0
- package/dist/render/lib/sections/product-hero-text-regions.js +1 -0
- package/dist/render/lib/sections/reviews.d.ts +7 -0
- package/dist/render/lib/sections/reviews.js +1 -1
- package/dist/render/lib/sections/section-band.d.ts +2 -0
- package/dist/render/lib/sections/section-band.js +1 -0
- package/dist/render/lib/wheels/catalog-default-layout.js +1 -1
- package/dist/render/lib/wheels/lug-count.d.ts +1 -0
- package/dist/render/lib/wheels/lug-count.js +1 -1
- package/dist/words.d.ts +17 -2
- package/dist/words.js +5 -5
- package/package.json +5 -4
- package/dist/chunks/chunk-6MHGEO3D.js +0 -320
- package/dist/editor/lib/document/blocks/service/placeholders.d.ts +0 -1
- package/dist/editor/lib/document/blocks/service/placeholders.js +0 -1
- /package/dist/chunks/{chunk-X5W6GJLI.js → chunk-T2R5CZ2F.js} +0 -0
- /package/dist/chunks/{chunk-6MHGEO3D.js.LEGAL.txt → chunk-VIPMT34C.js.LEGAL.txt} +0 -0
- /package/dist/chunks/{chunk-JUGY3EKR.js → chunk-VVWX2P2N.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as d,b as p,c as S,p as b,r as T}from"./chunk-MCCDGDRW.js";import"./chunk-JUGY3EKR.js";import"./chunk-Y6SLVHK3.js";var v={generatedAt:"2026-06-28T04:33:14.721Z",region:"audm",upstreamHits:80,makes:[{slug:"abarth",name:"Abarth"},{slug:"aion",name:"Aion"},{slug:"alfa-romeo",name:"Alfa Romeo"},{slug:"alpine",name:"Alpine"},{slug:"aston-martin",name:"Aston Martin"},{slug:"audi",name:"Audi"},{slug:"bentley",name:"Bentley"},{slug:"bmw",name:"BMW"},{slug:"bmw-alpina",name:"BMW Alpina"},{slug:"byd",name:"BYD"},{slug:"cadillac",name:"Cadillac"},{slug:"chery",name:"Chery"},{slug:"citroen",name:"Citro\xEBn"},{slug:"cupra",name:"Cupra"},{slug:"daihatsu",name:"Daihatsu"},{slug:"datsun",name:"Datsun"},{slug:"deepal",name:"Deepal"},{slug:"denza",name:"Denza"},{slug:"dodge",name:"Dodge"},{slug:"ds",name:"DS"},{slug:"ferrari",name:"Ferrari"},{slug:"fiat",name:"Fiat"},{slug:"ford",name:"Ford"},{slug:"foton",name:"Foton"},{slug:"geely",name:"Geely"},{slug:"genesis",name:"Genesis"},{slug:"great-wall",name:"Great Wall (GWM)"},{slug:"haval",name:"Haval"},{slug:"holden",name:"Holden"},{slug:"honda",name:"Honda"},{slug:"hyundai",name:"Hyundai"},{slug:"ineos",name:"Ineos"},{slug:"isuzu",name:"Isuzu"},{slug:"iveco",name:"Iveco"},{slug:"jac",name:"JAC"},{slug:"jaecoo",name:"Jaecoo"},{slug:"jaguar",name:"Jaguar"},{slug:"jeep",name:"Jeep"},{slug:"kg-mobility",name:"KGM"},{slug:"kia",name:"Kia"},{slug:"lamborghini",name:"Lamborghini"},{slug:"land-rover",name:"Land Rover"},{slug:"ldv",name:"LDV"},{slug:"leapmotor",name:"Leapmotor"},{slug:"lexus",name:"Lexus"},{slug:"lotus",name:"Lotus"},{slug:"mahindra",name:"Mahindra"},{slug:"maserati",name:"Maserati"},{slug:"mazda",name:"Mazda"},{slug:"mclaren",name:"McLaren"},{slug:"mercedes",name:"Mercedes-Benz"},{slug:"mercedes-maybach",name:"Mercedes-Maybach"},{slug:"mg",name:"MG"},{slug:"mini",name:"MINI"},{slug:"mitsubishi",name:"Mitsubishi"},{slug:"nissan",name:"Nissan"},{slug:"omoda",name:"Omoda"},{slug:"opel",name:"Opel"},{slug:"ora",name:"Ora"},{slug:"peugeot",name:"Peugeot"},{slug:"polaris",name:"Polaris"},{slug:"polestar",name:"Polestar"},{slug:"porsche",name:"Porsche"},{slug:"proton",name:"Proton"},{slug:"ram",name:"Ram"},{slug:"renault",name:"Renault"},{slug:"seat",name:"Seat"},{slug:"skoda",name:"Skoda"},{slug:"smart",name:"Smart"},{slug:"ssangyong",name:"SsangYong"},{slug:"subaru",name:"Subaru"},{slug:"suzuki",name:"Suzuki"},{slug:"tank",name:"Tank"},{slug:"tesla",name:"Tesla"},{slug:"toyota",name:"Toyota"},{slug:"triumph",name:"Triumph"},{slug:"volkswagen",name:"Volkswagen"},{slug:"volvo",name:"Volvo"},{slug:"zeekr",name:"Zeekr"}],models:{abarth:[{slug:"500e",name:"500e"},{slug:"695",name:"695"},{slug:"695c",name:"695C"}],aion:[{slug:"ut",name:"UT"}],"alfa-romeo":[{slug:"giulia",name:"Giulia"},{slug:"junior",name:"Junior"},{slug:"stelvio",name:"Stelvio"},{slug:"tonale",name:"Tonale"}],alpine:[{slug:"a110",name:"A110"},{slug:"a390",name:"A390"}],"aston-martin":[{slug:"db11",name:"DB11"},{slug:"db12",name:"DB12"},{slug:"dbs-770-ultimate",name:"DBS 770 Ultimate"},{slug:"dbs-superleggera",name:"DBS Superleggera"},{slug:"dbx",name:"DBX"},{slug:"dbx-s",name:"DBX S"},{slug:"dbx707",name:"DBX707"},{slug:"v12-vantage",name:"V12 Vantage"},{slug:"valhalla",name:"Valhalla"},{slug:"valour",name:"Valour"},{slug:"vanquish",name:"Vanquish"},{slug:"vantage",name:"Vantage"},{slug:"vantage-s",name:"Vantage S"}],audi:[{slug:"5-5",name:"5+5"},{slug:"a1",name:"A1"},{slug:"a3",name:"A3"},{slug:"a4",name:"A4"},{slug:"a4-allroad",name:"A4 Allroad"},{slug:"a5",name:"A5"},{slug:"a6",name:"A6"},{slug:"a6-allroad",name:"A6 Allroad"},{slug:"a7",name:"A7"},{slug:"a8",name:"A8"},{slug:"allroad",name:"Allroad"},{slug:"e-tron",name:"e-tron"},{slug:"e-tron-gt",name:"e-tron GT"},{slug:"e-tron-s",name:"e-tron S"},{slug:"e-tron-s-sportback",name:"e-tron S Sportback"},{slug:"e-tron-sportback",name:"e-tron Sportback"},{slug:"q2",name:"Q2"},{slug:"q3",name:"Q3"},{slug:"q3-sportback",name:"Q3 Sportback"},{slug:"q4",name:"Q4 e-tron"},{slug:"q4-sportback",name:"Q4 Sportback e-tron"},{slug:"q5",name:"Q5"},{slug:"q5-sportback",name:"Q5 Sportback"},{slug:"q6-e-tron",name:"Q6 e-tron"},{slug:"q7",name:"Q7"},{slug:"q8",name:"Q8"},{slug:"q8-e-tron",name:"Q8 e-tron"},{slug:"q8-sportback-e-tron",name:"Q8 Sportback e-tron"},{slug:"r8",name:"R8"},{slug:"rs-e-tron-gt",name:"RS e-tron GT"},{slug:"rs-q3",name:"RS Q3"},{slug:"rs-q3-sportback",name:"RS Q3 Sportback"},{slug:"rs-q8",name:"RS Q8"},{slug:"rs3",name:"RS3"},{slug:"rs4",name:"RS4"},{slug:"rs5",name:"RS5"},{slug:"rs6",name:"RS6"},{slug:"rs7",name:"RS7"},{slug:"s-e-tron-gt",name:"S e-tron GT"},{slug:"s1",name:"S1"},{slug:"s3",name:"S3"},{slug:"s4",name:"S4"},{slug:"s5",name:"S5"},{slug:"s6",name:"S6"},{slug:"s7",name:"S7"},{slug:"s8",name:"S8"},{slug:"sq2",name:"SQ2"},{slug:"sq5",name:"SQ5"},{slug:"sq5-sportback",name:"SQ5 Sportback"},{slug:"sq6-e-tron",name:"SQ6 e-tron"},{slug:"sq7",name:"SQ7"},{slug:"sq8",name:"SQ8"},{slug:"sq8-e-tron",name:"SQ8 e-tron"},{slug:"sq8-sportback-e-tron",name:"SQ8 Sportback e-tron"},{slug:"tt",name:"TT"},{slug:"tt-rs",name:"TT RS"},{slug:"tts",name:"TT S"}],bentley:[{slug:"bentayga",name:"Bentayga"},{slug:"continental-gt",name:"Continental GT"},{slug:"continental-gtc",name:"Continental GTC"},{slug:"flying-spur",name:"Flying Spur"}],bmw:[{slug:"1-series",name:"1 Series"},{slug:"2-series",name:"2 Series"},{slug:"2-series-active-tourer",name:"2 Series Active Tourer"},{slug:"2-series-gran-coupe",name:"2 Series Gran Coupe"},{slug:"3-series",name:"3 Series"},{slug:"3-series-gran-turismo",name:"3 Series Gran Turismo"},{slug:"4-series",name:"4 Series"},{slug:"4-series-gran-coupe",name:"4 Series Gran Coupe"},{slug:"5-series",name:"5 Series"},{slug:"5-series-gran-turismo",name:"5 Series Gran Turismo"},{slug:"6-series",name:"6 Series"},{slug:"7-series",name:"7 Series"},{slug:"8-series",name:"8 Series"},{slug:"i4",name:"i4"},{slug:"i5",name:"i5"},{slug:"i7",name:"i7"},{slug:"ix",name:"iX"},{slug:"ix1",name:"iX1"},{slug:"ix2",name:"iX2"},{slug:"ix3",name:"iX3"},{slug:"m2",name:"M2"},{slug:"m3",name:"M3"},{slug:"m4",name:"M4"},{slug:"m5",name:"M5"},{slug:"m8",name:"M8"},{slug:"x1",name:"X1"},{slug:"x2",name:"X2"},{slug:"x3",name:"X3"},{slug:"x3-m",name:"X3 M"},{slug:"x4",name:"X4"},{slug:"x4-m",name:"X4 M"},{slug:"x5",name:"X5"},{slug:"x5-m",name:"X5 M"},{slug:"x6",name:"X6"},{slug:"x6-m",name:"X6 M"},{slug:"x7",name:"X7"},{slug:"xm",name:"XM"},{slug:"z4",name:"Z4"}],"bmw-alpina":[{slug:"b10",name:"B10"},{slug:"b3",name:"B3"},{slug:"b4",name:"B4"},{slug:"b8",name:"B8"},{slug:"xb7",name:"XB7"},{slug:"xd3",name:"XD3"}],byd:[{slug:"atto-1",name:"Atto 1"},{slug:"atto-3",name:"Atto 3"},{slug:"sea-lion-6",name:"Sealion 6"},{slug:"seal",name:"Seal"},{slug:"sealion-5",name:"Sealion 5"},{slug:"sealion-7",name:"Sealion 7"},{slug:"sealion-8",name:"Sealion 8"},{slug:"shark-6",name:"Shark 6"}],cadillac:[{slug:"lyriq",name:"Lyriq"}],chery:[{slug:"j1",name:"J1"},{slug:"j11",name:"J11"},{slug:"j3",name:"J3"},{slug:"omoda-5",name:"Omoda 5"},{slug:"omoda-5-gt",name:"Omoda 5 GT"},{slug:"omoda-e5",name:"Omoda E5"},{slug:"tiggo-4",name:"Tiggo 4"},{slug:"tiggo-4-pro",name:"Tiggo 4 Pro"},{slug:"tiggo-7",name:"Tiggo 7"},{slug:"tiggo-7-pro",name:"Tiggo 7 Pro"},{slug:"tiggo-8",name:"Tiggo 8"},{slug:"tiggo-8-pro-max",name:"Tiggo 8 Pro Max"}],citroen:[{slug:"c3",name:"C3"},{slug:"c3-aircross",name:"C3 Aircross"},{slug:"c4",name:"C4"},{slug:"c5-aircross",name:"C5 Aircross"}],cupra:[{slug:"ateca",name:"Ateca"},{slug:"born",name:"Born"},{slug:"formentor",name:"Formentor"},{slug:"leon",name:"Leon"},{slug:"tavascan",name:"Tavascan"},{slug:"terramar",name:"Terramar"}],daihatsu:[{slug:"charade",name:"Charade"}],datsun:[{slug:"240z",name:"240Z"},{slug:"260z",name:"260Z"},{slug:"280z",name:"280Z"},{slug:"280zx",name:"280ZX"}],deepal:[{slug:"e07",name:"E07"},{slug:"s07",name:"S07"}],denza:[{slug:"b5",name:"B5"},{slug:"b8",name:"B8"},{slug:"d9",name:"D9"}],dodge:[{slug:"avenger",name:"Avenger"}],ds:[{slug:"ds-3",name:"DS 3"},{slug:"ds-4",name:"DS 4"},{slug:"ds-7",name:"DS 7"}],ferrari:[{slug:"12cilindri",name:"12Cilindri"},{slug:"12cilindri-spider",name:"12Cilindri Spider"},{slug:"296-gt3",name:"296 GT3"},{slug:"296-gtb",name:"296 GTB"},{slug:"296-gts",name:"296 GTS"},{slug:"296-speciale",name:"296 Speciale"},{slug:"296-speciale-a",name:"296 Speciale A"},{slug:"458-italia",name:"458 Italia"},{slug:"458-speciale",name:"458 Speciale"},{slug:"458-speciale-a",name:"458 Speciale A"},{slug:"458-spider",name:"458 Spider"},{slug:"488-gtb",name:"488 GTB"},{slug:"488-pista",name:"488 Pista"},{slug:"488-pista-spider",name:"488 Pista Spider"},{slug:"488-spider",name:"488 Spider"},{slug:"812-competizione",name:"812 Competizione"},{slug:"812-competizione-a",name:"812 Competizione A"},{slug:"812-gts",name:"812 GTS"},{slug:"812-superfast",name:"812 Superfast"},{slug:"849-testarossa",name:"849 Testarossa"},{slug:"amalfi",name:"Amalfi"},{slug:"daytona-sp3",name:"Daytona SP3"},{slug:"f8-spider",name:"F8 Spider"},{slug:"f8-tributo",name:"F8 Tributo"},{slug:"f80",name:"F80"},{slug:"ff",name:"FF"},{slug:"gtc4-lusso",name:"GTC4Lusso"},{slug:"monza-sp1",name:"Monza SP1"},{slug:"monza-sp2",name:"Monza SP2"},{slug:"portofino",name:"Portofino"},{slug:"roma",name:"Roma"},{slug:"sf90-spider",name:"SF90 Spider"},{slug:"sf90-stradale",name:"SF90 Stradale"},{slug:"sf90-xx-spider",name:"SF90 XX Spider"},{slug:"sf90-xx-stradale",name:"SF90 XX Stradale"}],fiat:[{slug:"500",name:"500"},{slug:"500c",name:"500C"},{slug:"500e",name:"500e"},{slug:"595",name:"595"},{slug:"695",name:"695"},{slug:"ducato",name:"Ducato"},{slug:"ritmo",name:"Ritmo"}],ford:[{slug:"capri",name:"Capri"},{slug:"cougar",name:"Cougar"},{slug:"courier",name:"Courier"},{slug:"e-transit",name:"E-Transit"},{slug:"endura",name:"Endura"},{slug:"escape",name:"Escape"},{slug:"everest",name:"Everest"},{slug:"f-150",name:"F-150"},{slug:"fairlane",name:"Fairlane"},{slug:"fairmont",name:"Fairmont"},{slug:"falcon",name:"Falcon"},{slug:"fiesta",name:"Fiesta"},{slug:"laser",name:"Laser"},{slug:"ltd",name:"LTD"},{slug:"mustang",name:"Mustang"},{slug:"mustang-mach-e",name:"Mustang Mach-E"},{slug:"probe",name:"Probe"},{slug:"puma",name:"Puma"},{slug:"ranger",name:"Ranger"},{slug:"taurus",name:"Taurus"},{slug:"territory",name:"Territory"},{slug:"tourneo-custom",name:"Tourneo Custom"},{slug:"transit",name:"Transit"},{slug:"transit-custom",name:"Transit Custom"}],foton:[{slug:"tunland",name:"Tunland"}],geely:[{slug:"ex5",name:"EX5"},{slug:"riddara-rd6",name:"Riddara RD6"},{slug:"starray-em-i",name:"Starray EM-i"}],genesis:[{slug:"g70",name:"G70"},{slug:"g80",name:"G80"},{slug:"gv60",name:"GV60"},{slug:"gv70",name:"GV70"},{slug:"gv80",name:"GV80"}],"great-wall":[{slug:"cannon",name:"Cannon"},{slug:"cannon-alpha",name:"Cannon Alpha"},{slug:"ora",name:"Ora"},{slug:"steed",name:"Steed"},{slug:"ute",name:"Ute"}],haval:[{slug:"h6",name:"H6"},{slug:"h6gt",name:"H6 GT"},{slug:"jolion",name:"Jolion"},{slug:"jolion-s",name:"Jolion S"}],holden:[{slug:"acadia",name:"Acadia"},{slug:"adventra",name:"Adventra"},{slug:"apollo",name:"Apollo"},{slug:"astra",name:"Astra"},{slug:"astra-gtc",name:"Astra GTC"},{slug:"astra-vxr",name:"Astra VXR"},{slug:"barina",name:"Barina"},{slug:"barina-spark",name:"Barina Spark"},{slug:"caprice",name:"Caprice"},{slug:"captiva",name:"Captiva"},{slug:"captiva-5",name:"Captiva 5"},{slug:"captiva-7",name:"Captiva 7"},{slug:"cascada",name:"Cascada"},{slug:"colorado",name:"Colorado"},{slug:"colorado-7",name:"Colorado 7"},{slug:"commodore",name:"Commodore"},{slug:"crewman",name:"Crewman"},{slug:"cruze",name:"Cruze"},{slug:"equinox",name:"Equinox"},{slug:"frontera",name:"Frontera"},{slug:"insignia-vxr",name:"Insignia VXR"},{slug:"jackaroo",name:"Jackaroo"},{slug:"malibu",name:"Malibu"},{slug:"monaro",name:"Monaro"},{slug:"one-tonner",name:"One Tonner"},{slug:"rodeo",name:"Rodeo"},{slug:"spark",name:"Spark"},{slug:"suburban",name:"Suburban"},{slug:"tigra",name:"Tigra"},{slug:"trailblazer",name:"Trailblazer"},{slug:"trax",name:"Trax"},{slug:"ute",name:"Ute"},{slug:"vectra",name:"Vectra"},{slug:"viva",name:"Viva"},{slug:"volt",name:"Volt"},{slug:"zafira",name:"Zafira"}],honda:[{slug:"accord",name:"Accord"},{slug:"accord-euro",name:"Accord Euro"},{slug:"city",name:"City"},{slug:"civic",name:"Civic"},{slug:"civic-5d",name:"Civic 5d"},{slug:"civic-type-r",name:"Civic Type R"},{slug:"cr-v",name:"CR-V"},{slug:"hr-v",name:"HR-V"},{slug:"jazz",name:"Jazz"},{slug:"jazz-crosstar",name:"Jazz Crosstar"},{slug:"legend",name:"Legend"},{slug:"odyssey",name:"Odyssey"},{slug:"s2000",name:"S2000"},{slug:"zr-v",name:"ZR-V"}],hyundai:[{slug:"accent",name:"Accent"},{slug:"elantra",name:"Elantra"},{slug:"elantra-lavita",name:"Elantra LaVita"},{slug:"i20-n",name:"i20 N"},{slug:"i30",name:"i30"},{slug:"i30-fastback-n",name:"i30 Fastback N"},{slug:"i30-n",name:"i30 N"},{slug:"i30-sedan",name:"i30 Sedan"},{slug:"i30-sedan-n",name:"i30 Sedan N"},{slug:"i45",name:"i45"},{slug:"iload",name:"iLoad"},{slug:"imax",name:"iMax"},{slug:"inster",name:"Inster"},{slug:"ioniq",name:"IONIQ"},{slug:"ioniq-5",name:"IONIQ 5"},{slug:"ioniq-5-n",name:"IONIQ 5 N"},{slug:"ioniq-6",name:"IONIQ 6"},{slug:"ioniq-6-n",name:"IONIQ 6 N"},{slug:"ioniq-9",name:"IONIQ 9"},{slug:"ix35",name:"ix35"},{slug:"kona",name:"Kona"},{slug:"kona-n",name:"Kona N"},{slug:"mighty",name:"Mighty"},{slug:"nexo",name:"Nexo"},{slug:"palisade",name:"Palisade"},{slug:"santa-fe",name:"Santa Fe"},{slug:"sonata",name:"Sonata"},{slug:"staria",name:"Staria"},{slug:"tucson",name:"Tucson"},{slug:"venue",name:"Venue"}],ineos:[{slug:"grenadier",name:"Grenadier"}],isuzu:[{slug:"d-max",name:"D-MAX"},{slug:"mu-x",name:"mu-X"}],iveco:[{slug:"daily",name:"Daily"}],jac:[{slug:"t9",name:"T9"}],jaecoo:[{slug:"j5",name:"J5"},{slug:"j7",name:"J7"}],jaguar:[{slug:"e-pace",name:"E-Pace"},{slug:"f-pace",name:"F-Pace"},{slug:"f-type",name:"F-Type"},{slug:"i-pace",name:"I-Pace"},{slug:"xe",name:"XE"},{slug:"xf",name:"XF"}],jeep:[{slug:"avenger",name:"Avenger"},{slug:"cherokee",name:"Cherokee"},{slug:"compass",name:"Compass"},{slug:"gladiator",name:"Gladiator"},{slug:"grand-cherokee",name:"Grand Cherokee"},{slug:"grand-cherokee-l",name:"Grand Cherokee L"},{slug:"renegade",name:"Renegade"},{slug:"wrangler",name:"Wrangler"}],"kg-mobility":[{slug:"actyon",name:"Actyon"},{slug:"korando",name:"Korando"},{slug:"musso",name:"Musso"},{slug:"musso-ev",name:"Musso EV"},{slug:"rexton",name:"Rexton"},{slug:"torres",name:"Torres"}],kia:[{slug:"carnival",name:"Carnival"},{slug:"cerato",name:"Cerato"},{slug:"ev3",name:"EV3"},{slug:"ev4",name:"EV4"},{slug:"ev5",name:"EV5"},{slug:"ev6",name:"EV6"},{slug:"ev9",name:"EV9"},{slug:"grand-carnival",name:"Grand Carnival"},{slug:"k4",name:"K4"},{slug:"mentor",name:"Mentor"},{slug:"niro",name:"Niro"},{slug:"niro-plus",name:"Niro Plus"},{slug:"optima",name:"Optima"},{slug:"picanto",name:"Picanto"},{slug:"picanto-x-line",name:"Picanto X-Line"},{slug:"rio",name:"Rio"},{slug:"rondo",name:"Rondo"},{slug:"seltos",name:"Seltos"},{slug:"sorento",name:"Sorento"},{slug:"sportage",name:"Sportage"},{slug:"stinger",name:"Stinger"},{slug:"stonic",name:"Stonic"},{slug:"tasman",name:"Tasman"}],lamborghini:[{slug:"aventador",name:"Aventador"},{slug:"countach",name:"Countach"},{slug:"huracan",name:"Huracan"},{slug:"revuelto",name:"Revuelto"},{slug:"sian",name:"Sian"},{slug:"temerario",name:"Temerario"},{slug:"urus",name:"Urus"}],"land-rover":[{slug:"defender",name:"Defender"},{slug:"discovery-5",name:"Discovery 5"},{slug:"discovery-sport",name:"Discovery Sport"},{slug:"range-rover",name:"Range Rover"},{slug:"range-rover-evoque",name:"Range Rover Evoque"},{slug:"range-rover-sport",name:"Range Rover Sport"},{slug:"range-rover-velar",name:"Range Rover Velar"}],ldv:[{slug:"d90",name:"D90"},{slug:"deliver-7",name:"Deliver 7"},{slug:"deliver-9",name:"Deliver 9"},{slug:"edeliver-3",name:"eDeliver 3"},{slug:"edeliver-7",name:"eDeliver 7"},{slug:"edeliver-9",name:"eDeliver 9"},{slug:"et60",name:"eT60"},{slug:"g10",name:"G10"},{slug:"mifa",name:"Mifa People Mover"},{slug:"mifa-9",name:"Mifa 9"},{slug:"t60",name:"T60"},{slug:"terron-9",name:"Terron 9"},{slug:"v80",name:"V80"}],leapmotor:[{slug:"b10",name:"B10"},{slug:"c10",name:"C10"}],lexus:[{slug:"es",name:"ES"},{slug:"gx",name:"GX"},{slug:"is",name:"IS"},{slug:"lbx",name:"LBX"},{slug:"lc",name:"LC"},{slug:"lm",name:"LM"},{slug:"ls",name:"LS"},{slug:"lx",name:"LX"},{slug:"nx",name:"NX"},{slug:"rc-f",name:"RC F"},{slug:"rx",name:"RX"},{slug:"rz",name:"RZ"},{slug:"ux",name:"UX"}],lotus:[{slug:"eletre",name:"Eletre"},{slug:"emeya",name:"Emeya"},{slug:"emira",name:"Emira"},{slug:"evija",name:"Evija"}],mahindra:[{slug:"genio",name:"Genio"},{slug:"pik-up",name:"Pik Up"},{slug:"scorpio-n",name:"Scorpio-N"},{slug:"xuv500",name:"XUV500"},{slug:"xuv700",name:"XUV700"}],maserati:[{slug:"ghibli",name:"Ghibli"},{slug:"gran-turismo",name:"GranTurismo"},{slug:"grancabrio",name:"GranCabrio"},{slug:"grecale",name:"Grecale"},{slug:"gt2-stradale",name:"GT2 Stradale"},{slug:"levante",name:"Levante"},{slug:"mc20",name:"MC20"},{slug:"mcpura",name:"MCPura"},{slug:"quattroporte",name:"Quattroporte"}],mazda:[{slug:"6e",name:"6e"},{slug:"929",name:"929"},{slug:"bravo",name:"Bravo"},{slug:"bt-50",name:"BT-50"},{slug:"cx-3",name:"CX-3"},{slug:"cx-30",name:"CX-30"},{slug:"cx-5",name:"CX-5"},{slug:"cx-60",name:"CX-60"},{slug:"cx-70",name:"CX-70"},{slug:"cx-8",name:"CX-8"},{slug:"cx-80",name:"CX-80"},{slug:"cx-9",name:"CX-9"},{slug:"cx-90",name:"CX-90"},{slug:"mazda2",name:"Mazda2"},{slug:"mazda3",name:"Mazda3"},{slug:"mazda3-mps",name:"Mazda3 MPS"},{slug:"mazda6",name:"Mazda6"},{slug:"mx-30",name:"MX-30"},{slug:"mx-5",name:"MX-5"},{slug:"mx-5-rf",name:"MX-5 RF"},{slug:"rx-7",name:"RX-7"}],mclaren:[{slug:"720s",name:"720S"},{slug:"720s-spider",name:"720S Spider"},{slug:"750s",name:"750S"},{slug:"765lt",name:"765LT"},{slug:"765lt-spider",name:"765LT Spider"},{slug:"artura",name:"Artura"},{slug:"gt",name:"GT"},{slug:"gts",name:"GTS"},{slug:"mp4-12c",name:"Mp4-12C"},{slug:"senna",name:"Senna"},{slug:"speedtail",name:"Speedtail"},{slug:"w1",name:"W1"}],mercedes:[{slug:"a-class",name:"A-Class"},{slug:"a-class-amg",name:"A-Class AMG"},{slug:"c-class",name:"C-Class"},{slug:"c-class-amg",name:"C-Class AMG"},{slug:"cla-class",name:"CLA-Class"},{slug:"cla-class-amg",name:"CLA-Class AMG"},{slug:"cle-class",name:"CLE-Class"},{slug:"cls-class-amg",name:"CLS-Class AMG"},{slug:"e-class",name:"E-Class"},{slug:"e-class-amg",name:"E-Class AMG"},{slug:"e-class-cabrio",name:"E-Class Cabriolet"},{slug:"e-class-coupe",name:"E-Class Coupe"},{slug:"eqa",name:"EQA"},{slug:"eqb",name:"EQB"},{slug:"eqc",name:"EQC"},{slug:"eqe",name:"EQE"},{slug:"eqe-amg",name:"EQE AMG"},{slug:"eqe-suv",name:"EQE SUV"},{slug:"eqe-suv-amg",name:"EQE SUV AMG"},{slug:"eqs",name:"EQS"},{slug:"eqs-amg",name:"EQS AMG"},{slug:"eqs-suv",name:"EQS SUV"},{slug:"eqv",name:"EQV"},{slug:"g-class",name:"G-Class"},{slug:"g-class-amg",name:"G-Class AMG"},{slug:"gla",name:"GLA-Class"},{slug:"gla-class-amg",name:"GLA-Class AMG"},{slug:"glb",name:"GLB-Class"},{slug:"glb-class-amg",name:"GLB-Class AMG"},{slug:"glc",name:"GLC-Class"},{slug:"glc-class-amg",name:"GLC-Class AMG"},{slug:"glc-class-coupe",name:"GLC-Class Coupe"},{slug:"glc-class-coupe-amg",name:"GLC-Class Coupe AMG"},{slug:"gle-class",name:"GLE-Class"},{slug:"gle-class-amg",name:"GLE-Class AMG"},{slug:"gle-class-coupe",name:"GLE-Class Coupe"},{slug:"gle-class-coupe-amg",name:"GLE-Class Coupe AMG"},{slug:"gls-class",name:"GLS-Class"},{slug:"gls-class-amg",name:"GLS-Class AMG"},{slug:"s-class",name:"S-Class"},{slug:"sprinter",name:"Sprinter"},{slug:"v-class",name:"V-Class"},{slug:"x-class",name:"X-Class"}],"mercedes-maybach":[{slug:"eqs",name:"EQS"},{slug:"gls-class",name:"GLS-Class"},{slug:"s-class",name:"S-Class"}],mg:[{slug:"3",name:"3"},{slug:"350",name:"350"},{slug:"4",name:"4"},{slug:"5",name:"5"},{slug:"6",name:"6"},{slug:"cyberster",name:"Cyberster"},{slug:"gs",name:"GS"},{slug:"hs",name:"HS"},{slug:"im5",name:"IM5"},{slug:"im6",name:"IM6"},{slug:"qs",name:"QS"},{slug:"s5",name:"S5"},{slug:"u9",name:"MGU9"},{slug:"zs",name:"ZS"},{slug:"zs-ev",name:"ZS EV"},{slug:"zst",name:"ZST"}],mini:[{slug:"aceman",name:"Aceman"},{slug:"clubman",name:"Clubman"},{slug:"convertible",name:"Convertible"},{slug:"cooper",name:"Cooper"},{slug:"countryman",name:"Countryman"},{slug:"hatch",name:"Hatch"}],mitsubishi:[{slug:"asx",name:"ASX"},{slug:"challenger",name:"Challenger"},{slug:"eclipse-cross",name:"Eclipse Cross"},{slug:"express",name:"Express"},{slug:"l200",name:"L200"},{slug:"magna",name:"Magna"},{slug:"mirage",name:"Mirage"},{slug:"nimbus",name:"Nimbus"},{slug:"outlander",name:"Outlander"},{slug:"pajero-sport",name:"Pajero Sport"},{slug:"triton",name:"Triton"},{slug:"verada",name:"Verada"}],nissan:[{slug:"200sx",name:"200SX"},{slug:"280zx",name:"280ZX"},{slug:"300zx",name:"300ZX"},{slug:"370z",name:"370Z"},{slug:"almera",name:"Almera"},{slug:"altima",name:"Altima"},{slug:"ariya",name:"Ariya"},{slug:"bluebird",name:"Bluebird"},{slug:"dualis",name:"Dualis"},{slug:"dualis-2",name:"Dualis+2"},{slug:"gt-r",name:"GT-R"},{slug:"juke",name:"Juke"},{slug:"leaf",name:"Leaf"},{slug:"maxima",name:"Maxima"},{slug:"micra",name:"Micra"},{slug:"navara",name:"Navara"},{slug:"np300-navara",name:"NP300 Navara"},{slug:"pathfinder",name:"Pathfinder"},{slug:"patrol",name:"Patrol"},{slug:"patrol-cab-chassis",name:"Patrol Cab Chassis"},{slug:"pulsar",name:"Pulsar"},{slug:"qashqai",name:"Qashqai"},{slug:"x-trail",name:"X-Trail"},{slug:"z",name:"Z"}],omoda:[{slug:"9",name:"9"},{slug:"c5",name:"C5"},{slug:"e5",name:"E5"}],opel:[{slug:"astra",name:"Astra"},{slug:"grandland",name:"Grandland"},{slug:"mokka",name:"Mokka"}],ora:[{slug:"03",name:"03"}],peugeot:[{slug:"2008",name:"2008"},{slug:"208",name:"208"},{slug:"3008",name:"3008"},{slug:"308",name:"308"},{slug:"408",name:"408"},{slug:"5008",name:"5008"},{slug:"508",name:"508"},{slug:"boxer",name:"Boxer"},{slug:"expert",name:"Expert"},{slug:"partner",name:"Partner"}],polaris:[{slug:"general-xp",name:"General XP 1000"},{slug:"general-xp-4",name:"General XP 4 1000"},{slug:"ranger-crew-xd",name:"Ranger Crew XD 1500"},{slug:"ranger-crew-xp",name:"Ranger Crew XP 1000"},{slug:"ranger-xd",name:"Ranger XD 1500"},{slug:"ranger-xp",name:"Ranger XP 1000"},{slug:"rzr-pro-r",name:"RZR Pro R"},{slug:"rzr-pro-r-4",name:"RZR Pro R 4"},{slug:"rzr-pro-xp",name:"RZR Pro XP"},{slug:"rzr-xp",name:"RZR XP 1000"},{slug:"rzr-xp-4",name:"RZR XP 4 1000"},{slug:"xpedition-adv",name:"Xpedition ADV"},{slug:"xpedition-adv-5",name:"Xpedition ADV 5"},{slug:"xpedition-xp",name:"Xpedition XP"},{slug:"xpedition-xp-5",name:"Xpedition XP 5"}],polestar:[{slug:"polestar-1",name:"Polestar 1"},{slug:"polestar-2",name:"Polestar 2"},{slug:"polestar-3",name:"Polestar 3"},{slug:"polestar-4",name:"Polestar 4"},{slug:"polestar-5",name:"Polestar 5"}],porsche:[{slug:"718",name:"718"},{slug:"911",name:"911"},{slug:"928",name:"928"},{slug:"cayenne",name:"Cayenne"},{slug:"macan",name:"Macan"},{slug:"panamera",name:"Panamera"},{slug:"taycan",name:"Taycan"}],proton:[{slug:"exora",name:"Exora"},{slug:"gen-2",name:"Gen-2"},{slug:"jumbuck",name:"Jumbuck"},{slug:"persona",name:"Persona"},{slug:"preve",name:"Preve"},{slug:"s16",name:"S16"},{slug:"satria",name:"Satria"},{slug:"savvy",name:"Savvy"},{slug:"suprima",name:"Suprima S"},{slug:"waja",name:"Waja"}],ram:[{slug:"1500",name:"1500"},{slug:"1500-classic",name:"1500 Classic"},{slug:"1500-trx",name:"1500 TRX"},{slug:"2500",name:"2500"},{slug:"3500",name:"3500"}],renault:[{slug:"arkana",name:"Arkana"},{slug:"captur",name:"Captur"},{slug:"duster",name:"Duster"},{slug:"kangoo",name:"Kangoo"},{slug:"kangoo-van",name:"Kangoo Van"},{slug:"koleos",name:"Koleos"},{slug:"latitude",name:"Latitude"},{slug:"master",name:"Master"},{slug:"megane-e-tech",name:"Megane E-Tech"},{slug:"scenic-e-tech",name:"Scenic E-Tech"},{slug:"trafic",name:"Trafic"}],seat:[{slug:"arona",name:"Arona"},{slug:"ateca",name:"Ateca"},{slug:"leon",name:"Leon"},{slug:"tarraco",name:"Tarraco"}],skoda:[{slug:"elroq",name:"Elroq"},{slug:"enyaq-iv",name:"Enyaq"},{slug:"fabia",name:"Fabia"},{slug:"kamiq",name:"Kamiq"},{slug:"karoq",name:"Karoq"},{slug:"kodiaq",name:"Kodiaq"},{slug:"octavia",name:"Octavia"},{slug:"rapid",name:"Rapid"},{slug:"scala",name:"Scala"},{slug:"superb",name:"Superb"},{slug:"superb-scout",name:"Superb Scout"},{slug:"yeti",name:"Yeti"}],smart:[{slug:"1",name:"#1"},{slug:"3",name:"#3"},{slug:"roadster",name:"Roadster"}],ssangyong:[{slug:"korando",name:"Korando"},{slug:"kyron",name:"Kyron"},{slug:"musso",name:"Musso"},{slug:"rexton",name:"Rexton"},{slug:"rhino",name:"Rhino"},{slug:"stavic",name:"Stavic"},{slug:"tivoli",name:"Tivoli"}],subaru:[{slug:"brz",name:"BRZ"},{slug:"crosstrek",name:"Crosstrek"},{slug:"forester",name:"Forester"},{slug:"impreza",name:"Impreza"},{slug:"liberty",name:"Liberty"},{slug:"outback",name:"Outback"},{slug:"solterra",name:"Solterra"},{slug:"wrx",name:"WRX"},{slug:"wrx-sti",name:"WRX STI"},{slug:"xv",name:"XV"}],suzuki:[{slug:"baleno",name:"Baleno"},{slug:"fronx",name:"Fronx"},{slug:"ignis",name:"Ignis"},{slug:"jimny",name:"Jimny"},{slug:"s-cross",name:"S-Cross"},{slug:"swift",name:"Swift"},{slug:"swift-sport",name:"Swift Sport"},{slug:"vitara",name:"Vitara"}],tank:[{slug:"300",name:"300"},{slug:"500",name:"500"}],tesla:[{slug:"cybertruck",name:"Cybertruck"},{slug:"model-3",name:"Model 3"},{slug:"model-s",name:"Model S"},{slug:"model-x",name:"Model X"},{slug:"model-y",name:"Model Y"}],toyota:[{slug:"86",name:"86"},{slug:"aurion",name:"Aurion"},{slug:"avalon",name:"Avalon"},{slug:"avensis-verso",name:"Avensis Verso"},{slug:"bz4x",name:"bZ4X"},{slug:"c-hr",name:"C-HR"},{slug:"camry",name:"Camry"},{slug:"corolla",name:"Corolla"},{slug:"corolla-cross",name:"Corolla Cross"},{slug:"echo",name:"Echo"},{slug:"fortuner",name:"Fortuner"},{slug:"gr-corolla",name:"GR Corolla"},{slug:"gr-yaris",name:"GR Yaris"},{slug:"gr86",name:"GR86"},{slug:"granvia",name:"Granvia"},{slug:"hiace",name:"Hiace"},{slug:"hilux",name:"Hilux"},{slug:"kluger",name:"Kluger"},{slug:"land-cruiser",name:"Land Cruiser"},{slug:"land-cruiser-prado",name:"Land Cruiser Prado"},{slug:"prius",name:"Prius"},{slug:"prius-c",name:"Prius c"},{slug:"prius-v",name:"Prius v"},{slug:"rav4",name:"RAV4"},{slug:"rukus",name:"Rukus"},{slug:"supra",name:"Supra"},{slug:"tarago",name:"Tarago"},{slug:"tundra",name:"Tundra"},{slug:"vienta",name:"Vienta"},{slug:"yaris",name:"Yaris"},{slug:"yaris-cross",name:"Yaris Cross"}],triumph:[{slug:"tr7",name:"TR7"}],volkswagen:[{slug:"amarok",name:"Amarok"},{slug:"beetle",name:"Beetle"},{slug:"caddy",name:"Caddy"},{slug:"california",name:"California"},{slug:"caravelle",name:"Caravelle"},{slug:"cc",name:"CC"},{slug:"crafter",name:"Crafter"},{slug:"golf",name:"Golf"},{slug:"golf-alltrack",name:"Golf Alltrack"},{slug:"golf-gti",name:"Golf GTI"},{slug:"golf-r",name:"Golf R"},{slug:"grand-california",name:"Grand California"},{slug:"id-buzz",name:"ID. Buzz"},{slug:"id4",name:"ID.4"},{slug:"id5",name:"ID.5"},{slug:"multivan",name:"Multivan"},{slug:"passat",name:"Passat"},{slug:"passat-alltrack",name:"Passat Alltrack"},{slug:"polo",name:"Polo"},{slug:"polo-gti",name:"Polo GTI"},{slug:"t-cross",name:"T-Cross"},{slug:"t-roc",name:"T-Roc"},{slug:"t-roc-r",name:"T-Roc R"},{slug:"tiguan",name:"Tiguan"},{slug:"tiguan-allspace",name:"Tiguan Allspace"},{slug:"touareg",name:"Touareg"},{slug:"transporter",name:"Transporter"}],volvo:[{slug:"c40",name:"C40"},{slug:"es90",name:"ES90"},{slug:"ex30",name:"EX30"},{slug:"ex40",name:"EX40"},{slug:"ex90",name:"EX90"},{slug:"s60",name:"S60"},{slug:"s60-cross-country",name:"S60 Cross Country"},{slug:"s90",name:"S90"},{slug:"v60-cross-country",name:"V60 Cross Country"},{slug:"v90-cross-country",name:"V90 Cross Country"},{slug:"xc40",name:"XC40"},{slug:"xc60",name:"XC60"},{slug:"xc90",name:"XC90"}],zeekr:[{slug:"009",name:"009"},{slug:"x",name:"X"}]},years:{"audi/rs6":[2026,2025,2024,2023,2022,2021,2020],"bmw/m3":[2026,2025,2024,2023,2022,2021,2020,2018,2017,2016,2015,2014],"ferrari/296-gtb":[2026,2025,2024,2023,2022],"lamborghini/huracan":[2024,2023,2022,2021,2020,2019],"mclaren/750s":[2026,2025,2024,2023],"mercedes/c-class-amg":[2026,2025,2024,2023,2022,2021,2020,2019,2018,2017,2016],"nissan/gt-r":[2023,2022,2021,2020,2019,2018,2017,2016],"tesla/model-3":[2026,2025,2024,2023,2022,2021,2020,2019,2018,2017],"toyota/supra":[2026,2025,2024,2023,2022,2021,1993,1992,1991,1990,1989,1988,1987,1986]},modifications:{"audi/rs6/2024":[{slug:"a28ff79ddf",name:"4.0 TFSi quattro",trim:"4.0 TFSi quattro",body:null}],"bmw/m3/2024":[{slug:"0aaf0bb46d",name:"M3",trim:"M3",body:null},{slug:"402e65e913",name:"M3 Competition",trim:"M3 Competition",body:null},{slug:"4c760df5c5",name:"M3 Competition xDrive",trim:"M3 Competition xDrive",body:null},{slug:"6250847bc8",name:"M3 Competition xDrive",trim:"M3 Competition xDrive",body:null},{slug:"82f59cadb0",name:"M3",trim:"M3",body:null}],"ferrari/296-gtb/2024":[{slug:"c412dafd12",name:"3.0",trim:"3.0",body:null}],"lamborghini/huracan/2024":[{slug:"aab49a3dae",name:"Evo 5.2",trim:"Evo 5.2",body:null},{slug:"f81a37ca20",name:"Evo 5.2",trim:"Evo 5.2",body:null}],"mclaren/750s/2024":[{slug:"f8f346c327",name:"4.0T",trim:"4.0T",body:null}],"mercedes/c-class-amg/2024":[{slug:"038122904b",name:"C 43 4Matic",trim:"C 43 4Matic",body:null},{slug:"a403e6b64c",name:"C 63 S E",trim:"C 63 S E",body:null}],"nissan/gt-r/2024":[],"tesla/model-3/2024":[{slug:"026e4ab9d6",name:"Long Range",trim:"Long Range",body:null},{slug:"4296c050a9",name:"Performance",trim:"Performance",body:null},{slug:"50f0c93d66",name:"Performance",trim:"Performance",body:null},{slug:"be5b2b9767",name:"Standard Range",trim:"Standard Range",body:null},{slug:"d4960b3833",name:"Long Range",trim:"Long Range",body:null}],"toyota/supra/2024":[{slug:"eabbd747b7",name:"3.0i",trim:"3.0i",body:null}]},meta:{modelsFetchedAt:{abarth:"2026-06-28T04:33:00.474Z",aion:"2026-06-28T04:33:01.415Z","alfa-romeo":"2026-06-28T04:33:02.355Z",alpine:"2026-06-28T04:33:03.290Z","aston-martin":"2026-06-28T04:33:04.229Z",audi:"2026-06-28T04:33:05.195Z",bentley:"2026-06-28T04:33:06.135Z",bmw:"2026-06-28T04:33:07.112Z","bmw-alpina":"2026-06-28T04:33:08.062Z",byd:"2026-06-28T04:33:09.004Z",cadillac:"2026-06-28T04:33:09.958Z",chery:"2026-06-28T04:33:10.944Z",citroen:"2026-06-28T04:33:11.887Z",cupra:"2026-06-28T04:33:12.827Z",daihatsu:"2026-06-28T04:33:13.770Z",datsun:"2026-06-28T04:33:14.721Z",deepal:"2026-06-27T04:23:59.381Z",denza:"2026-06-27T04:24:00.200Z",dodge:"2026-06-27T04:24:01.018Z",ds:"2026-06-27T04:24:01.843Z",ferrari:"2026-06-27T04:24:02.667Z",fiat:"2026-06-27T04:24:03.492Z",ford:"2026-06-27T04:24:04.311Z",foton:"2026-06-27T04:24:05.129Z",geely:"2026-06-27T04:24:05.946Z",genesis:"2026-06-27T04:24:06.764Z","great-wall":"2026-06-27T04:24:07.584Z",haval:"2026-06-27T04:24:08.402Z",holden:"2026-06-27T04:24:09.221Z",honda:"2026-06-27T04:24:10.039Z",hyundai:"2026-06-27T04:24:10.861Z",ineos:"2026-06-27T04:24:11.677Z",isuzu:"2026-06-27T04:24:12.495Z",iveco:"2026-06-28T04:32:51.940Z",jac:"2026-06-27T04:24:13.314Z",jaecoo:"2026-06-28T04:32:17.949Z",jaguar:"2026-06-28T04:32:18.902Z",jeep:"2026-06-28T04:32:19.838Z","kg-mobility":"2026-06-28T04:32:20.769Z",kia:"2026-06-28T04:32:21.710Z",lamborghini:"2026-06-28T04:32:22.641Z","land-rover":"2026-06-28T04:32:23.589Z",ldv:"2026-06-28T04:32:24.525Z",leapmotor:"2026-06-28T04:32:25.463Z",lexus:"2026-06-28T04:32:26.401Z",lotus:"2026-06-28T04:32:27.336Z",mahindra:"2026-06-28T04:32:28.278Z",maserati:"2026-06-28T04:32:29.225Z",mazda:"2026-06-28T04:32:30.189Z",mclaren:"2026-06-28T04:32:31.133Z",mercedes:"2026-06-28T04:32:32.103Z","mercedes-maybach":"2026-06-28T04:32:33.041Z",mg:"2026-06-28T04:32:33.991Z",mini:"2026-06-28T04:32:34.935Z",mitsubishi:"2026-06-28T04:32:35.884Z",nissan:"2026-06-28T04:32:36.836Z",omoda:"2026-06-28T04:32:37.789Z",opel:"2026-06-28T04:32:38.731Z",ora:"2026-06-28T04:32:39.684Z",peugeot:"2026-06-28T04:32:40.631Z",polaris:"2026-06-28T04:32:52.902Z",polestar:"2026-06-28T04:32:41.575Z",porsche:"2026-06-28T04:32:42.516Z",proton:"2026-06-28T04:32:43.459Z",ram:"2026-06-28T04:32:44.398Z",renault:"2026-06-28T04:32:45.351Z",seat:"2026-06-28T04:32:46.297Z",skoda:"2026-06-28T04:32:47.233Z",smart:"2026-06-28T04:32:48.178Z",ssangyong:"2026-06-28T04:32:49.114Z",subaru:"2026-06-28T04:32:50.052Z",suzuki:"2026-06-28T04:32:50.996Z",tank:"2026-06-28T04:32:53.840Z",tesla:"2026-06-28T04:32:54.775Z",toyota:"2026-06-28T04:32:55.749Z",triumph:"2026-06-28T04:32:56.677Z",volkswagen:"2026-06-28T04:32:57.635Z",volvo:"2026-06-28T04:32:58.582Z",zeekr:"2026-06-28T04:32:59.524Z"},popularFetchedAt:"2026-06-28T04:32:16.984Z",coverage:{covered:79,total:79}}};var u=v,k=(d||""||"http://localhost:8000").replace(/\/+$/,""),M=3600,Z="x-efficient-shop-hop",C="".trim();async function g(a,e){let s=new URLSearchParams;for(let[h,i]of Object.entries(e))i!==void 0&&i!==""&&s.set(h,String(i));let n=s.toString(),l=`${k}/api/fitment${a}${n?`?${n}`:""}`,m={next:{revalidate:M}},[f,y]=await Promise.all([b(),T()]),o=p(f,y,S(m));C&&(o[Z]=C);let t=await fetch(l,{...m,...Object.keys(o).length>0?{headers:o}:{}});if(!t.ok)throw new Error(`backend fitment ${t.status} on ${a}`);let c=await t.text();return c?JSON.parse(c):null}function r(a){return a!==void 0&&u.region===a&&(u.makes?.length??0)>0}function A(a){if(!a)return null;let e=a.et_range;return{pcd:a.pcd||void 0,boltPattern:a.bolt_pattern||void 0,centreBore:a.centre_bore??void 0,frontWheels:a.front_wheels??[],rearWheels:a.rear_wheels??[],frontTyres:a.front_tyres??[],rearTyres:a.rear_tyres??[],etRange:e&&e[0]!==null&&e[1]!==null?[e[0],e[1]]:void 0}}var z={async makes(a){try{return await g("/makes/",{region:a})}catch(e){if(r(a))return u.makes;throw e}},async models(a,e){try{return await g("/models/",{make:a,region:e})}catch(s){let n=r(e)?u.models[a]:void 0;if(n)return n;throw s}},async years(a,e,s){try{return await g("/years/",{make:a,model:e,region:s})}catch(n){let l=r(s)?u.years[`${a}/${e}`]:void 0;if(l)return l;throw n}},async modifications(a,e,s,n){try{return await g("/modifications/",{make:a,model:e,year:s,region:n})}catch(l){let m=r(n)?u.modifications[`${a}/${e}/${s}`]:void 0;if(m)return m;throw l}},async stockFitment(a,e,s,n,l){return A(await g("/stock-fitment/",{make:a,model:e,year:s,modification:n,region:l}))}};export{z as fitmentData};
|
|
1
|
+
import{a as d,b as p,c as S,p as b,r as T}from"./chunk-47L7KHRW.js";import"./chunk-VVWX2P2N.js";import"./chunk-Y6SLVHK3.js";var v={generatedAt:"2026-06-28T04:33:14.721Z",region:"audm",upstreamHits:80,makes:[{slug:"abarth",name:"Abarth"},{slug:"aion",name:"Aion"},{slug:"alfa-romeo",name:"Alfa Romeo"},{slug:"alpine",name:"Alpine"},{slug:"aston-martin",name:"Aston Martin"},{slug:"audi",name:"Audi"},{slug:"bentley",name:"Bentley"},{slug:"bmw",name:"BMW"},{slug:"bmw-alpina",name:"BMW Alpina"},{slug:"byd",name:"BYD"},{slug:"cadillac",name:"Cadillac"},{slug:"chery",name:"Chery"},{slug:"citroen",name:"Citro\xEBn"},{slug:"cupra",name:"Cupra"},{slug:"daihatsu",name:"Daihatsu"},{slug:"datsun",name:"Datsun"},{slug:"deepal",name:"Deepal"},{slug:"denza",name:"Denza"},{slug:"dodge",name:"Dodge"},{slug:"ds",name:"DS"},{slug:"ferrari",name:"Ferrari"},{slug:"fiat",name:"Fiat"},{slug:"ford",name:"Ford"},{slug:"foton",name:"Foton"},{slug:"geely",name:"Geely"},{slug:"genesis",name:"Genesis"},{slug:"great-wall",name:"Great Wall (GWM)"},{slug:"haval",name:"Haval"},{slug:"holden",name:"Holden"},{slug:"honda",name:"Honda"},{slug:"hyundai",name:"Hyundai"},{slug:"ineos",name:"Ineos"},{slug:"isuzu",name:"Isuzu"},{slug:"iveco",name:"Iveco"},{slug:"jac",name:"JAC"},{slug:"jaecoo",name:"Jaecoo"},{slug:"jaguar",name:"Jaguar"},{slug:"jeep",name:"Jeep"},{slug:"kg-mobility",name:"KGM"},{slug:"kia",name:"Kia"},{slug:"lamborghini",name:"Lamborghini"},{slug:"land-rover",name:"Land Rover"},{slug:"ldv",name:"LDV"},{slug:"leapmotor",name:"Leapmotor"},{slug:"lexus",name:"Lexus"},{slug:"lotus",name:"Lotus"},{slug:"mahindra",name:"Mahindra"},{slug:"maserati",name:"Maserati"},{slug:"mazda",name:"Mazda"},{slug:"mclaren",name:"McLaren"},{slug:"mercedes",name:"Mercedes-Benz"},{slug:"mercedes-maybach",name:"Mercedes-Maybach"},{slug:"mg",name:"MG"},{slug:"mini",name:"MINI"},{slug:"mitsubishi",name:"Mitsubishi"},{slug:"nissan",name:"Nissan"},{slug:"omoda",name:"Omoda"},{slug:"opel",name:"Opel"},{slug:"ora",name:"Ora"},{slug:"peugeot",name:"Peugeot"},{slug:"polaris",name:"Polaris"},{slug:"polestar",name:"Polestar"},{slug:"porsche",name:"Porsche"},{slug:"proton",name:"Proton"},{slug:"ram",name:"Ram"},{slug:"renault",name:"Renault"},{slug:"seat",name:"Seat"},{slug:"skoda",name:"Skoda"},{slug:"smart",name:"Smart"},{slug:"ssangyong",name:"SsangYong"},{slug:"subaru",name:"Subaru"},{slug:"suzuki",name:"Suzuki"},{slug:"tank",name:"Tank"},{slug:"tesla",name:"Tesla"},{slug:"toyota",name:"Toyota"},{slug:"triumph",name:"Triumph"},{slug:"volkswagen",name:"Volkswagen"},{slug:"volvo",name:"Volvo"},{slug:"zeekr",name:"Zeekr"}],models:{abarth:[{slug:"500e",name:"500e"},{slug:"695",name:"695"},{slug:"695c",name:"695C"}],aion:[{slug:"ut",name:"UT"}],"alfa-romeo":[{slug:"giulia",name:"Giulia"},{slug:"junior",name:"Junior"},{slug:"stelvio",name:"Stelvio"},{slug:"tonale",name:"Tonale"}],alpine:[{slug:"a110",name:"A110"},{slug:"a390",name:"A390"}],"aston-martin":[{slug:"db11",name:"DB11"},{slug:"db12",name:"DB12"},{slug:"dbs-770-ultimate",name:"DBS 770 Ultimate"},{slug:"dbs-superleggera",name:"DBS Superleggera"},{slug:"dbx",name:"DBX"},{slug:"dbx-s",name:"DBX S"},{slug:"dbx707",name:"DBX707"},{slug:"v12-vantage",name:"V12 Vantage"},{slug:"valhalla",name:"Valhalla"},{slug:"valour",name:"Valour"},{slug:"vanquish",name:"Vanquish"},{slug:"vantage",name:"Vantage"},{slug:"vantage-s",name:"Vantage S"}],audi:[{slug:"5-5",name:"5+5"},{slug:"a1",name:"A1"},{slug:"a3",name:"A3"},{slug:"a4",name:"A4"},{slug:"a4-allroad",name:"A4 Allroad"},{slug:"a5",name:"A5"},{slug:"a6",name:"A6"},{slug:"a6-allroad",name:"A6 Allroad"},{slug:"a7",name:"A7"},{slug:"a8",name:"A8"},{slug:"allroad",name:"Allroad"},{slug:"e-tron",name:"e-tron"},{slug:"e-tron-gt",name:"e-tron GT"},{slug:"e-tron-s",name:"e-tron S"},{slug:"e-tron-s-sportback",name:"e-tron S Sportback"},{slug:"e-tron-sportback",name:"e-tron Sportback"},{slug:"q2",name:"Q2"},{slug:"q3",name:"Q3"},{slug:"q3-sportback",name:"Q3 Sportback"},{slug:"q4",name:"Q4 e-tron"},{slug:"q4-sportback",name:"Q4 Sportback e-tron"},{slug:"q5",name:"Q5"},{slug:"q5-sportback",name:"Q5 Sportback"},{slug:"q6-e-tron",name:"Q6 e-tron"},{slug:"q7",name:"Q7"},{slug:"q8",name:"Q8"},{slug:"q8-e-tron",name:"Q8 e-tron"},{slug:"q8-sportback-e-tron",name:"Q8 Sportback e-tron"},{slug:"r8",name:"R8"},{slug:"rs-e-tron-gt",name:"RS e-tron GT"},{slug:"rs-q3",name:"RS Q3"},{slug:"rs-q3-sportback",name:"RS Q3 Sportback"},{slug:"rs-q8",name:"RS Q8"},{slug:"rs3",name:"RS3"},{slug:"rs4",name:"RS4"},{slug:"rs5",name:"RS5"},{slug:"rs6",name:"RS6"},{slug:"rs7",name:"RS7"},{slug:"s-e-tron-gt",name:"S e-tron GT"},{slug:"s1",name:"S1"},{slug:"s3",name:"S3"},{slug:"s4",name:"S4"},{slug:"s5",name:"S5"},{slug:"s6",name:"S6"},{slug:"s7",name:"S7"},{slug:"s8",name:"S8"},{slug:"sq2",name:"SQ2"},{slug:"sq5",name:"SQ5"},{slug:"sq5-sportback",name:"SQ5 Sportback"},{slug:"sq6-e-tron",name:"SQ6 e-tron"},{slug:"sq7",name:"SQ7"},{slug:"sq8",name:"SQ8"},{slug:"sq8-e-tron",name:"SQ8 e-tron"},{slug:"sq8-sportback-e-tron",name:"SQ8 Sportback e-tron"},{slug:"tt",name:"TT"},{slug:"tt-rs",name:"TT RS"},{slug:"tts",name:"TT S"}],bentley:[{slug:"bentayga",name:"Bentayga"},{slug:"continental-gt",name:"Continental GT"},{slug:"continental-gtc",name:"Continental GTC"},{slug:"flying-spur",name:"Flying Spur"}],bmw:[{slug:"1-series",name:"1 Series"},{slug:"2-series",name:"2 Series"},{slug:"2-series-active-tourer",name:"2 Series Active Tourer"},{slug:"2-series-gran-coupe",name:"2 Series Gran Coupe"},{slug:"3-series",name:"3 Series"},{slug:"3-series-gran-turismo",name:"3 Series Gran Turismo"},{slug:"4-series",name:"4 Series"},{slug:"4-series-gran-coupe",name:"4 Series Gran Coupe"},{slug:"5-series",name:"5 Series"},{slug:"5-series-gran-turismo",name:"5 Series Gran Turismo"},{slug:"6-series",name:"6 Series"},{slug:"7-series",name:"7 Series"},{slug:"8-series",name:"8 Series"},{slug:"i4",name:"i4"},{slug:"i5",name:"i5"},{slug:"i7",name:"i7"},{slug:"ix",name:"iX"},{slug:"ix1",name:"iX1"},{slug:"ix2",name:"iX2"},{slug:"ix3",name:"iX3"},{slug:"m2",name:"M2"},{slug:"m3",name:"M3"},{slug:"m4",name:"M4"},{slug:"m5",name:"M5"},{slug:"m8",name:"M8"},{slug:"x1",name:"X1"},{slug:"x2",name:"X2"},{slug:"x3",name:"X3"},{slug:"x3-m",name:"X3 M"},{slug:"x4",name:"X4"},{slug:"x4-m",name:"X4 M"},{slug:"x5",name:"X5"},{slug:"x5-m",name:"X5 M"},{slug:"x6",name:"X6"},{slug:"x6-m",name:"X6 M"},{slug:"x7",name:"X7"},{slug:"xm",name:"XM"},{slug:"z4",name:"Z4"}],"bmw-alpina":[{slug:"b10",name:"B10"},{slug:"b3",name:"B3"},{slug:"b4",name:"B4"},{slug:"b8",name:"B8"},{slug:"xb7",name:"XB7"},{slug:"xd3",name:"XD3"}],byd:[{slug:"atto-1",name:"Atto 1"},{slug:"atto-3",name:"Atto 3"},{slug:"sea-lion-6",name:"Sealion 6"},{slug:"seal",name:"Seal"},{slug:"sealion-5",name:"Sealion 5"},{slug:"sealion-7",name:"Sealion 7"},{slug:"sealion-8",name:"Sealion 8"},{slug:"shark-6",name:"Shark 6"}],cadillac:[{slug:"lyriq",name:"Lyriq"}],chery:[{slug:"j1",name:"J1"},{slug:"j11",name:"J11"},{slug:"j3",name:"J3"},{slug:"omoda-5",name:"Omoda 5"},{slug:"omoda-5-gt",name:"Omoda 5 GT"},{slug:"omoda-e5",name:"Omoda E5"},{slug:"tiggo-4",name:"Tiggo 4"},{slug:"tiggo-4-pro",name:"Tiggo 4 Pro"},{slug:"tiggo-7",name:"Tiggo 7"},{slug:"tiggo-7-pro",name:"Tiggo 7 Pro"},{slug:"tiggo-8",name:"Tiggo 8"},{slug:"tiggo-8-pro-max",name:"Tiggo 8 Pro Max"}],citroen:[{slug:"c3",name:"C3"},{slug:"c3-aircross",name:"C3 Aircross"},{slug:"c4",name:"C4"},{slug:"c5-aircross",name:"C5 Aircross"}],cupra:[{slug:"ateca",name:"Ateca"},{slug:"born",name:"Born"},{slug:"formentor",name:"Formentor"},{slug:"leon",name:"Leon"},{slug:"tavascan",name:"Tavascan"},{slug:"terramar",name:"Terramar"}],daihatsu:[{slug:"charade",name:"Charade"}],datsun:[{slug:"240z",name:"240Z"},{slug:"260z",name:"260Z"},{slug:"280z",name:"280Z"},{slug:"280zx",name:"280ZX"}],deepal:[{slug:"e07",name:"E07"},{slug:"s07",name:"S07"}],denza:[{slug:"b5",name:"B5"},{slug:"b8",name:"B8"},{slug:"d9",name:"D9"}],dodge:[{slug:"avenger",name:"Avenger"}],ds:[{slug:"ds-3",name:"DS 3"},{slug:"ds-4",name:"DS 4"},{slug:"ds-7",name:"DS 7"}],ferrari:[{slug:"12cilindri",name:"12Cilindri"},{slug:"12cilindri-spider",name:"12Cilindri Spider"},{slug:"296-gt3",name:"296 GT3"},{slug:"296-gtb",name:"296 GTB"},{slug:"296-gts",name:"296 GTS"},{slug:"296-speciale",name:"296 Speciale"},{slug:"296-speciale-a",name:"296 Speciale A"},{slug:"458-italia",name:"458 Italia"},{slug:"458-speciale",name:"458 Speciale"},{slug:"458-speciale-a",name:"458 Speciale A"},{slug:"458-spider",name:"458 Spider"},{slug:"488-gtb",name:"488 GTB"},{slug:"488-pista",name:"488 Pista"},{slug:"488-pista-spider",name:"488 Pista Spider"},{slug:"488-spider",name:"488 Spider"},{slug:"812-competizione",name:"812 Competizione"},{slug:"812-competizione-a",name:"812 Competizione A"},{slug:"812-gts",name:"812 GTS"},{slug:"812-superfast",name:"812 Superfast"},{slug:"849-testarossa",name:"849 Testarossa"},{slug:"amalfi",name:"Amalfi"},{slug:"daytona-sp3",name:"Daytona SP3"},{slug:"f8-spider",name:"F8 Spider"},{slug:"f8-tributo",name:"F8 Tributo"},{slug:"f80",name:"F80"},{slug:"ff",name:"FF"},{slug:"gtc4-lusso",name:"GTC4Lusso"},{slug:"monza-sp1",name:"Monza SP1"},{slug:"monza-sp2",name:"Monza SP2"},{slug:"portofino",name:"Portofino"},{slug:"roma",name:"Roma"},{slug:"sf90-spider",name:"SF90 Spider"},{slug:"sf90-stradale",name:"SF90 Stradale"},{slug:"sf90-xx-spider",name:"SF90 XX Spider"},{slug:"sf90-xx-stradale",name:"SF90 XX Stradale"}],fiat:[{slug:"500",name:"500"},{slug:"500c",name:"500C"},{slug:"500e",name:"500e"},{slug:"595",name:"595"},{slug:"695",name:"695"},{slug:"ducato",name:"Ducato"},{slug:"ritmo",name:"Ritmo"}],ford:[{slug:"capri",name:"Capri"},{slug:"cougar",name:"Cougar"},{slug:"courier",name:"Courier"},{slug:"e-transit",name:"E-Transit"},{slug:"endura",name:"Endura"},{slug:"escape",name:"Escape"},{slug:"everest",name:"Everest"},{slug:"f-150",name:"F-150"},{slug:"fairlane",name:"Fairlane"},{slug:"fairmont",name:"Fairmont"},{slug:"falcon",name:"Falcon"},{slug:"fiesta",name:"Fiesta"},{slug:"laser",name:"Laser"},{slug:"ltd",name:"LTD"},{slug:"mustang",name:"Mustang"},{slug:"mustang-mach-e",name:"Mustang Mach-E"},{slug:"probe",name:"Probe"},{slug:"puma",name:"Puma"},{slug:"ranger",name:"Ranger"},{slug:"taurus",name:"Taurus"},{slug:"territory",name:"Territory"},{slug:"tourneo-custom",name:"Tourneo Custom"},{slug:"transit",name:"Transit"},{slug:"transit-custom",name:"Transit Custom"}],foton:[{slug:"tunland",name:"Tunland"}],geely:[{slug:"ex5",name:"EX5"},{slug:"riddara-rd6",name:"Riddara RD6"},{slug:"starray-em-i",name:"Starray EM-i"}],genesis:[{slug:"g70",name:"G70"},{slug:"g80",name:"G80"},{slug:"gv60",name:"GV60"},{slug:"gv70",name:"GV70"},{slug:"gv80",name:"GV80"}],"great-wall":[{slug:"cannon",name:"Cannon"},{slug:"cannon-alpha",name:"Cannon Alpha"},{slug:"ora",name:"Ora"},{slug:"steed",name:"Steed"},{slug:"ute",name:"Ute"}],haval:[{slug:"h6",name:"H6"},{slug:"h6gt",name:"H6 GT"},{slug:"jolion",name:"Jolion"},{slug:"jolion-s",name:"Jolion S"}],holden:[{slug:"acadia",name:"Acadia"},{slug:"adventra",name:"Adventra"},{slug:"apollo",name:"Apollo"},{slug:"astra",name:"Astra"},{slug:"astra-gtc",name:"Astra GTC"},{slug:"astra-vxr",name:"Astra VXR"},{slug:"barina",name:"Barina"},{slug:"barina-spark",name:"Barina Spark"},{slug:"caprice",name:"Caprice"},{slug:"captiva",name:"Captiva"},{slug:"captiva-5",name:"Captiva 5"},{slug:"captiva-7",name:"Captiva 7"},{slug:"cascada",name:"Cascada"},{slug:"colorado",name:"Colorado"},{slug:"colorado-7",name:"Colorado 7"},{slug:"commodore",name:"Commodore"},{slug:"crewman",name:"Crewman"},{slug:"cruze",name:"Cruze"},{slug:"equinox",name:"Equinox"},{slug:"frontera",name:"Frontera"},{slug:"insignia-vxr",name:"Insignia VXR"},{slug:"jackaroo",name:"Jackaroo"},{slug:"malibu",name:"Malibu"},{slug:"monaro",name:"Monaro"},{slug:"one-tonner",name:"One Tonner"},{slug:"rodeo",name:"Rodeo"},{slug:"spark",name:"Spark"},{slug:"suburban",name:"Suburban"},{slug:"tigra",name:"Tigra"},{slug:"trailblazer",name:"Trailblazer"},{slug:"trax",name:"Trax"},{slug:"ute",name:"Ute"},{slug:"vectra",name:"Vectra"},{slug:"viva",name:"Viva"},{slug:"volt",name:"Volt"},{slug:"zafira",name:"Zafira"}],honda:[{slug:"accord",name:"Accord"},{slug:"accord-euro",name:"Accord Euro"},{slug:"city",name:"City"},{slug:"civic",name:"Civic"},{slug:"civic-5d",name:"Civic 5d"},{slug:"civic-type-r",name:"Civic Type R"},{slug:"cr-v",name:"CR-V"},{slug:"hr-v",name:"HR-V"},{slug:"jazz",name:"Jazz"},{slug:"jazz-crosstar",name:"Jazz Crosstar"},{slug:"legend",name:"Legend"},{slug:"odyssey",name:"Odyssey"},{slug:"s2000",name:"S2000"},{slug:"zr-v",name:"ZR-V"}],hyundai:[{slug:"accent",name:"Accent"},{slug:"elantra",name:"Elantra"},{slug:"elantra-lavita",name:"Elantra LaVita"},{slug:"i20-n",name:"i20 N"},{slug:"i30",name:"i30"},{slug:"i30-fastback-n",name:"i30 Fastback N"},{slug:"i30-n",name:"i30 N"},{slug:"i30-sedan",name:"i30 Sedan"},{slug:"i30-sedan-n",name:"i30 Sedan N"},{slug:"i45",name:"i45"},{slug:"iload",name:"iLoad"},{slug:"imax",name:"iMax"},{slug:"inster",name:"Inster"},{slug:"ioniq",name:"IONIQ"},{slug:"ioniq-5",name:"IONIQ 5"},{slug:"ioniq-5-n",name:"IONIQ 5 N"},{slug:"ioniq-6",name:"IONIQ 6"},{slug:"ioniq-6-n",name:"IONIQ 6 N"},{slug:"ioniq-9",name:"IONIQ 9"},{slug:"ix35",name:"ix35"},{slug:"kona",name:"Kona"},{slug:"kona-n",name:"Kona N"},{slug:"mighty",name:"Mighty"},{slug:"nexo",name:"Nexo"},{slug:"palisade",name:"Palisade"},{slug:"santa-fe",name:"Santa Fe"},{slug:"sonata",name:"Sonata"},{slug:"staria",name:"Staria"},{slug:"tucson",name:"Tucson"},{slug:"venue",name:"Venue"}],ineos:[{slug:"grenadier",name:"Grenadier"}],isuzu:[{slug:"d-max",name:"D-MAX"},{slug:"mu-x",name:"mu-X"}],iveco:[{slug:"daily",name:"Daily"}],jac:[{slug:"t9",name:"T9"}],jaecoo:[{slug:"j5",name:"J5"},{slug:"j7",name:"J7"}],jaguar:[{slug:"e-pace",name:"E-Pace"},{slug:"f-pace",name:"F-Pace"},{slug:"f-type",name:"F-Type"},{slug:"i-pace",name:"I-Pace"},{slug:"xe",name:"XE"},{slug:"xf",name:"XF"}],jeep:[{slug:"avenger",name:"Avenger"},{slug:"cherokee",name:"Cherokee"},{slug:"compass",name:"Compass"},{slug:"gladiator",name:"Gladiator"},{slug:"grand-cherokee",name:"Grand Cherokee"},{slug:"grand-cherokee-l",name:"Grand Cherokee L"},{slug:"renegade",name:"Renegade"},{slug:"wrangler",name:"Wrangler"}],"kg-mobility":[{slug:"actyon",name:"Actyon"},{slug:"korando",name:"Korando"},{slug:"musso",name:"Musso"},{slug:"musso-ev",name:"Musso EV"},{slug:"rexton",name:"Rexton"},{slug:"torres",name:"Torres"}],kia:[{slug:"carnival",name:"Carnival"},{slug:"cerato",name:"Cerato"},{slug:"ev3",name:"EV3"},{slug:"ev4",name:"EV4"},{slug:"ev5",name:"EV5"},{slug:"ev6",name:"EV6"},{slug:"ev9",name:"EV9"},{slug:"grand-carnival",name:"Grand Carnival"},{slug:"k4",name:"K4"},{slug:"mentor",name:"Mentor"},{slug:"niro",name:"Niro"},{slug:"niro-plus",name:"Niro Plus"},{slug:"optima",name:"Optima"},{slug:"picanto",name:"Picanto"},{slug:"picanto-x-line",name:"Picanto X-Line"},{slug:"rio",name:"Rio"},{slug:"rondo",name:"Rondo"},{slug:"seltos",name:"Seltos"},{slug:"sorento",name:"Sorento"},{slug:"sportage",name:"Sportage"},{slug:"stinger",name:"Stinger"},{slug:"stonic",name:"Stonic"},{slug:"tasman",name:"Tasman"}],lamborghini:[{slug:"aventador",name:"Aventador"},{slug:"countach",name:"Countach"},{slug:"huracan",name:"Huracan"},{slug:"revuelto",name:"Revuelto"},{slug:"sian",name:"Sian"},{slug:"temerario",name:"Temerario"},{slug:"urus",name:"Urus"}],"land-rover":[{slug:"defender",name:"Defender"},{slug:"discovery-5",name:"Discovery 5"},{slug:"discovery-sport",name:"Discovery Sport"},{slug:"range-rover",name:"Range Rover"},{slug:"range-rover-evoque",name:"Range Rover Evoque"},{slug:"range-rover-sport",name:"Range Rover Sport"},{slug:"range-rover-velar",name:"Range Rover Velar"}],ldv:[{slug:"d90",name:"D90"},{slug:"deliver-7",name:"Deliver 7"},{slug:"deliver-9",name:"Deliver 9"},{slug:"edeliver-3",name:"eDeliver 3"},{slug:"edeliver-7",name:"eDeliver 7"},{slug:"edeliver-9",name:"eDeliver 9"},{slug:"et60",name:"eT60"},{slug:"g10",name:"G10"},{slug:"mifa",name:"Mifa People Mover"},{slug:"mifa-9",name:"Mifa 9"},{slug:"t60",name:"T60"},{slug:"terron-9",name:"Terron 9"},{slug:"v80",name:"V80"}],leapmotor:[{slug:"b10",name:"B10"},{slug:"c10",name:"C10"}],lexus:[{slug:"es",name:"ES"},{slug:"gx",name:"GX"},{slug:"is",name:"IS"},{slug:"lbx",name:"LBX"},{slug:"lc",name:"LC"},{slug:"lm",name:"LM"},{slug:"ls",name:"LS"},{slug:"lx",name:"LX"},{slug:"nx",name:"NX"},{slug:"rc-f",name:"RC F"},{slug:"rx",name:"RX"},{slug:"rz",name:"RZ"},{slug:"ux",name:"UX"}],lotus:[{slug:"eletre",name:"Eletre"},{slug:"emeya",name:"Emeya"},{slug:"emira",name:"Emira"},{slug:"evija",name:"Evija"}],mahindra:[{slug:"genio",name:"Genio"},{slug:"pik-up",name:"Pik Up"},{slug:"scorpio-n",name:"Scorpio-N"},{slug:"xuv500",name:"XUV500"},{slug:"xuv700",name:"XUV700"}],maserati:[{slug:"ghibli",name:"Ghibli"},{slug:"gran-turismo",name:"GranTurismo"},{slug:"grancabrio",name:"GranCabrio"},{slug:"grecale",name:"Grecale"},{slug:"gt2-stradale",name:"GT2 Stradale"},{slug:"levante",name:"Levante"},{slug:"mc20",name:"MC20"},{slug:"mcpura",name:"MCPura"},{slug:"quattroporte",name:"Quattroporte"}],mazda:[{slug:"6e",name:"6e"},{slug:"929",name:"929"},{slug:"bravo",name:"Bravo"},{slug:"bt-50",name:"BT-50"},{slug:"cx-3",name:"CX-3"},{slug:"cx-30",name:"CX-30"},{slug:"cx-5",name:"CX-5"},{slug:"cx-60",name:"CX-60"},{slug:"cx-70",name:"CX-70"},{slug:"cx-8",name:"CX-8"},{slug:"cx-80",name:"CX-80"},{slug:"cx-9",name:"CX-9"},{slug:"cx-90",name:"CX-90"},{slug:"mazda2",name:"Mazda2"},{slug:"mazda3",name:"Mazda3"},{slug:"mazda3-mps",name:"Mazda3 MPS"},{slug:"mazda6",name:"Mazda6"},{slug:"mx-30",name:"MX-30"},{slug:"mx-5",name:"MX-5"},{slug:"mx-5-rf",name:"MX-5 RF"},{slug:"rx-7",name:"RX-7"}],mclaren:[{slug:"720s",name:"720S"},{slug:"720s-spider",name:"720S Spider"},{slug:"750s",name:"750S"},{slug:"765lt",name:"765LT"},{slug:"765lt-spider",name:"765LT Spider"},{slug:"artura",name:"Artura"},{slug:"gt",name:"GT"},{slug:"gts",name:"GTS"},{slug:"mp4-12c",name:"Mp4-12C"},{slug:"senna",name:"Senna"},{slug:"speedtail",name:"Speedtail"},{slug:"w1",name:"W1"}],mercedes:[{slug:"a-class",name:"A-Class"},{slug:"a-class-amg",name:"A-Class AMG"},{slug:"c-class",name:"C-Class"},{slug:"c-class-amg",name:"C-Class AMG"},{slug:"cla-class",name:"CLA-Class"},{slug:"cla-class-amg",name:"CLA-Class AMG"},{slug:"cle-class",name:"CLE-Class"},{slug:"cls-class-amg",name:"CLS-Class AMG"},{slug:"e-class",name:"E-Class"},{slug:"e-class-amg",name:"E-Class AMG"},{slug:"e-class-cabrio",name:"E-Class Cabriolet"},{slug:"e-class-coupe",name:"E-Class Coupe"},{slug:"eqa",name:"EQA"},{slug:"eqb",name:"EQB"},{slug:"eqc",name:"EQC"},{slug:"eqe",name:"EQE"},{slug:"eqe-amg",name:"EQE AMG"},{slug:"eqe-suv",name:"EQE SUV"},{slug:"eqe-suv-amg",name:"EQE SUV AMG"},{slug:"eqs",name:"EQS"},{slug:"eqs-amg",name:"EQS AMG"},{slug:"eqs-suv",name:"EQS SUV"},{slug:"eqv",name:"EQV"},{slug:"g-class",name:"G-Class"},{slug:"g-class-amg",name:"G-Class AMG"},{slug:"gla",name:"GLA-Class"},{slug:"gla-class-amg",name:"GLA-Class AMG"},{slug:"glb",name:"GLB-Class"},{slug:"glb-class-amg",name:"GLB-Class AMG"},{slug:"glc",name:"GLC-Class"},{slug:"glc-class-amg",name:"GLC-Class AMG"},{slug:"glc-class-coupe",name:"GLC-Class Coupe"},{slug:"glc-class-coupe-amg",name:"GLC-Class Coupe AMG"},{slug:"gle-class",name:"GLE-Class"},{slug:"gle-class-amg",name:"GLE-Class AMG"},{slug:"gle-class-coupe",name:"GLE-Class Coupe"},{slug:"gle-class-coupe-amg",name:"GLE-Class Coupe AMG"},{slug:"gls-class",name:"GLS-Class"},{slug:"gls-class-amg",name:"GLS-Class AMG"},{slug:"s-class",name:"S-Class"},{slug:"sprinter",name:"Sprinter"},{slug:"v-class",name:"V-Class"},{slug:"x-class",name:"X-Class"}],"mercedes-maybach":[{slug:"eqs",name:"EQS"},{slug:"gls-class",name:"GLS-Class"},{slug:"s-class",name:"S-Class"}],mg:[{slug:"3",name:"3"},{slug:"350",name:"350"},{slug:"4",name:"4"},{slug:"5",name:"5"},{slug:"6",name:"6"},{slug:"cyberster",name:"Cyberster"},{slug:"gs",name:"GS"},{slug:"hs",name:"HS"},{slug:"im5",name:"IM5"},{slug:"im6",name:"IM6"},{slug:"qs",name:"QS"},{slug:"s5",name:"S5"},{slug:"u9",name:"MGU9"},{slug:"zs",name:"ZS"},{slug:"zs-ev",name:"ZS EV"},{slug:"zst",name:"ZST"}],mini:[{slug:"aceman",name:"Aceman"},{slug:"clubman",name:"Clubman"},{slug:"convertible",name:"Convertible"},{slug:"cooper",name:"Cooper"},{slug:"countryman",name:"Countryman"},{slug:"hatch",name:"Hatch"}],mitsubishi:[{slug:"asx",name:"ASX"},{slug:"challenger",name:"Challenger"},{slug:"eclipse-cross",name:"Eclipse Cross"},{slug:"express",name:"Express"},{slug:"l200",name:"L200"},{slug:"magna",name:"Magna"},{slug:"mirage",name:"Mirage"},{slug:"nimbus",name:"Nimbus"},{slug:"outlander",name:"Outlander"},{slug:"pajero-sport",name:"Pajero Sport"},{slug:"triton",name:"Triton"},{slug:"verada",name:"Verada"}],nissan:[{slug:"200sx",name:"200SX"},{slug:"280zx",name:"280ZX"},{slug:"300zx",name:"300ZX"},{slug:"370z",name:"370Z"},{slug:"almera",name:"Almera"},{slug:"altima",name:"Altima"},{slug:"ariya",name:"Ariya"},{slug:"bluebird",name:"Bluebird"},{slug:"dualis",name:"Dualis"},{slug:"dualis-2",name:"Dualis+2"},{slug:"gt-r",name:"GT-R"},{slug:"juke",name:"Juke"},{slug:"leaf",name:"Leaf"},{slug:"maxima",name:"Maxima"},{slug:"micra",name:"Micra"},{slug:"navara",name:"Navara"},{slug:"np300-navara",name:"NP300 Navara"},{slug:"pathfinder",name:"Pathfinder"},{slug:"patrol",name:"Patrol"},{slug:"patrol-cab-chassis",name:"Patrol Cab Chassis"},{slug:"pulsar",name:"Pulsar"},{slug:"qashqai",name:"Qashqai"},{slug:"x-trail",name:"X-Trail"},{slug:"z",name:"Z"}],omoda:[{slug:"9",name:"9"},{slug:"c5",name:"C5"},{slug:"e5",name:"E5"}],opel:[{slug:"astra",name:"Astra"},{slug:"grandland",name:"Grandland"},{slug:"mokka",name:"Mokka"}],ora:[{slug:"03",name:"03"}],peugeot:[{slug:"2008",name:"2008"},{slug:"208",name:"208"},{slug:"3008",name:"3008"},{slug:"308",name:"308"},{slug:"408",name:"408"},{slug:"5008",name:"5008"},{slug:"508",name:"508"},{slug:"boxer",name:"Boxer"},{slug:"expert",name:"Expert"},{slug:"partner",name:"Partner"}],polaris:[{slug:"general-xp",name:"General XP 1000"},{slug:"general-xp-4",name:"General XP 4 1000"},{slug:"ranger-crew-xd",name:"Ranger Crew XD 1500"},{slug:"ranger-crew-xp",name:"Ranger Crew XP 1000"},{slug:"ranger-xd",name:"Ranger XD 1500"},{slug:"ranger-xp",name:"Ranger XP 1000"},{slug:"rzr-pro-r",name:"RZR Pro R"},{slug:"rzr-pro-r-4",name:"RZR Pro R 4"},{slug:"rzr-pro-xp",name:"RZR Pro XP"},{slug:"rzr-xp",name:"RZR XP 1000"},{slug:"rzr-xp-4",name:"RZR XP 4 1000"},{slug:"xpedition-adv",name:"Xpedition ADV"},{slug:"xpedition-adv-5",name:"Xpedition ADV 5"},{slug:"xpedition-xp",name:"Xpedition XP"},{slug:"xpedition-xp-5",name:"Xpedition XP 5"}],polestar:[{slug:"polestar-1",name:"Polestar 1"},{slug:"polestar-2",name:"Polestar 2"},{slug:"polestar-3",name:"Polestar 3"},{slug:"polestar-4",name:"Polestar 4"},{slug:"polestar-5",name:"Polestar 5"}],porsche:[{slug:"718",name:"718"},{slug:"911",name:"911"},{slug:"928",name:"928"},{slug:"cayenne",name:"Cayenne"},{slug:"macan",name:"Macan"},{slug:"panamera",name:"Panamera"},{slug:"taycan",name:"Taycan"}],proton:[{slug:"exora",name:"Exora"},{slug:"gen-2",name:"Gen-2"},{slug:"jumbuck",name:"Jumbuck"},{slug:"persona",name:"Persona"},{slug:"preve",name:"Preve"},{slug:"s16",name:"S16"},{slug:"satria",name:"Satria"},{slug:"savvy",name:"Savvy"},{slug:"suprima",name:"Suprima S"},{slug:"waja",name:"Waja"}],ram:[{slug:"1500",name:"1500"},{slug:"1500-classic",name:"1500 Classic"},{slug:"1500-trx",name:"1500 TRX"},{slug:"2500",name:"2500"},{slug:"3500",name:"3500"}],renault:[{slug:"arkana",name:"Arkana"},{slug:"captur",name:"Captur"},{slug:"duster",name:"Duster"},{slug:"kangoo",name:"Kangoo"},{slug:"kangoo-van",name:"Kangoo Van"},{slug:"koleos",name:"Koleos"},{slug:"latitude",name:"Latitude"},{slug:"master",name:"Master"},{slug:"megane-e-tech",name:"Megane E-Tech"},{slug:"scenic-e-tech",name:"Scenic E-Tech"},{slug:"trafic",name:"Trafic"}],seat:[{slug:"arona",name:"Arona"},{slug:"ateca",name:"Ateca"},{slug:"leon",name:"Leon"},{slug:"tarraco",name:"Tarraco"}],skoda:[{slug:"elroq",name:"Elroq"},{slug:"enyaq-iv",name:"Enyaq"},{slug:"fabia",name:"Fabia"},{slug:"kamiq",name:"Kamiq"},{slug:"karoq",name:"Karoq"},{slug:"kodiaq",name:"Kodiaq"},{slug:"octavia",name:"Octavia"},{slug:"rapid",name:"Rapid"},{slug:"scala",name:"Scala"},{slug:"superb",name:"Superb"},{slug:"superb-scout",name:"Superb Scout"},{slug:"yeti",name:"Yeti"}],smart:[{slug:"1",name:"#1"},{slug:"3",name:"#3"},{slug:"roadster",name:"Roadster"}],ssangyong:[{slug:"korando",name:"Korando"},{slug:"kyron",name:"Kyron"},{slug:"musso",name:"Musso"},{slug:"rexton",name:"Rexton"},{slug:"rhino",name:"Rhino"},{slug:"stavic",name:"Stavic"},{slug:"tivoli",name:"Tivoli"}],subaru:[{slug:"brz",name:"BRZ"},{slug:"crosstrek",name:"Crosstrek"},{slug:"forester",name:"Forester"},{slug:"impreza",name:"Impreza"},{slug:"liberty",name:"Liberty"},{slug:"outback",name:"Outback"},{slug:"solterra",name:"Solterra"},{slug:"wrx",name:"WRX"},{slug:"wrx-sti",name:"WRX STI"},{slug:"xv",name:"XV"}],suzuki:[{slug:"baleno",name:"Baleno"},{slug:"fronx",name:"Fronx"},{slug:"ignis",name:"Ignis"},{slug:"jimny",name:"Jimny"},{slug:"s-cross",name:"S-Cross"},{slug:"swift",name:"Swift"},{slug:"swift-sport",name:"Swift Sport"},{slug:"vitara",name:"Vitara"}],tank:[{slug:"300",name:"300"},{slug:"500",name:"500"}],tesla:[{slug:"cybertruck",name:"Cybertruck"},{slug:"model-3",name:"Model 3"},{slug:"model-s",name:"Model S"},{slug:"model-x",name:"Model X"},{slug:"model-y",name:"Model Y"}],toyota:[{slug:"86",name:"86"},{slug:"aurion",name:"Aurion"},{slug:"avalon",name:"Avalon"},{slug:"avensis-verso",name:"Avensis Verso"},{slug:"bz4x",name:"bZ4X"},{slug:"c-hr",name:"C-HR"},{slug:"camry",name:"Camry"},{slug:"corolla",name:"Corolla"},{slug:"corolla-cross",name:"Corolla Cross"},{slug:"echo",name:"Echo"},{slug:"fortuner",name:"Fortuner"},{slug:"gr-corolla",name:"GR Corolla"},{slug:"gr-yaris",name:"GR Yaris"},{slug:"gr86",name:"GR86"},{slug:"granvia",name:"Granvia"},{slug:"hiace",name:"Hiace"},{slug:"hilux",name:"Hilux"},{slug:"kluger",name:"Kluger"},{slug:"land-cruiser",name:"Land Cruiser"},{slug:"land-cruiser-prado",name:"Land Cruiser Prado"},{slug:"prius",name:"Prius"},{slug:"prius-c",name:"Prius c"},{slug:"prius-v",name:"Prius v"},{slug:"rav4",name:"RAV4"},{slug:"rukus",name:"Rukus"},{slug:"supra",name:"Supra"},{slug:"tarago",name:"Tarago"},{slug:"tundra",name:"Tundra"},{slug:"vienta",name:"Vienta"},{slug:"yaris",name:"Yaris"},{slug:"yaris-cross",name:"Yaris Cross"}],triumph:[{slug:"tr7",name:"TR7"}],volkswagen:[{slug:"amarok",name:"Amarok"},{slug:"beetle",name:"Beetle"},{slug:"caddy",name:"Caddy"},{slug:"california",name:"California"},{slug:"caravelle",name:"Caravelle"},{slug:"cc",name:"CC"},{slug:"crafter",name:"Crafter"},{slug:"golf",name:"Golf"},{slug:"golf-alltrack",name:"Golf Alltrack"},{slug:"golf-gti",name:"Golf GTI"},{slug:"golf-r",name:"Golf R"},{slug:"grand-california",name:"Grand California"},{slug:"id-buzz",name:"ID. Buzz"},{slug:"id4",name:"ID.4"},{slug:"id5",name:"ID.5"},{slug:"multivan",name:"Multivan"},{slug:"passat",name:"Passat"},{slug:"passat-alltrack",name:"Passat Alltrack"},{slug:"polo",name:"Polo"},{slug:"polo-gti",name:"Polo GTI"},{slug:"t-cross",name:"T-Cross"},{slug:"t-roc",name:"T-Roc"},{slug:"t-roc-r",name:"T-Roc R"},{slug:"tiguan",name:"Tiguan"},{slug:"tiguan-allspace",name:"Tiguan Allspace"},{slug:"touareg",name:"Touareg"},{slug:"transporter",name:"Transporter"}],volvo:[{slug:"c40",name:"C40"},{slug:"es90",name:"ES90"},{slug:"ex30",name:"EX30"},{slug:"ex40",name:"EX40"},{slug:"ex90",name:"EX90"},{slug:"s60",name:"S60"},{slug:"s60-cross-country",name:"S60 Cross Country"},{slug:"s90",name:"S90"},{slug:"v60-cross-country",name:"V60 Cross Country"},{slug:"v90-cross-country",name:"V90 Cross Country"},{slug:"xc40",name:"XC40"},{slug:"xc60",name:"XC60"},{slug:"xc90",name:"XC90"}],zeekr:[{slug:"009",name:"009"},{slug:"x",name:"X"}]},years:{"audi/rs6":[2026,2025,2024,2023,2022,2021,2020],"bmw/m3":[2026,2025,2024,2023,2022,2021,2020,2018,2017,2016,2015,2014],"ferrari/296-gtb":[2026,2025,2024,2023,2022],"lamborghini/huracan":[2024,2023,2022,2021,2020,2019],"mclaren/750s":[2026,2025,2024,2023],"mercedes/c-class-amg":[2026,2025,2024,2023,2022,2021,2020,2019,2018,2017,2016],"nissan/gt-r":[2023,2022,2021,2020,2019,2018,2017,2016],"tesla/model-3":[2026,2025,2024,2023,2022,2021,2020,2019,2018,2017],"toyota/supra":[2026,2025,2024,2023,2022,2021,1993,1992,1991,1990,1989,1988,1987,1986]},modifications:{"audi/rs6/2024":[{slug:"a28ff79ddf",name:"4.0 TFSi quattro",trim:"4.0 TFSi quattro",body:null}],"bmw/m3/2024":[{slug:"0aaf0bb46d",name:"M3",trim:"M3",body:null},{slug:"402e65e913",name:"M3 Competition",trim:"M3 Competition",body:null},{slug:"4c760df5c5",name:"M3 Competition xDrive",trim:"M3 Competition xDrive",body:null},{slug:"6250847bc8",name:"M3 Competition xDrive",trim:"M3 Competition xDrive",body:null},{slug:"82f59cadb0",name:"M3",trim:"M3",body:null}],"ferrari/296-gtb/2024":[{slug:"c412dafd12",name:"3.0",trim:"3.0",body:null}],"lamborghini/huracan/2024":[{slug:"aab49a3dae",name:"Evo 5.2",trim:"Evo 5.2",body:null},{slug:"f81a37ca20",name:"Evo 5.2",trim:"Evo 5.2",body:null}],"mclaren/750s/2024":[{slug:"f8f346c327",name:"4.0T",trim:"4.0T",body:null}],"mercedes/c-class-amg/2024":[{slug:"038122904b",name:"C 43 4Matic",trim:"C 43 4Matic",body:null},{slug:"a403e6b64c",name:"C 63 S E",trim:"C 63 S E",body:null}],"nissan/gt-r/2024":[],"tesla/model-3/2024":[{slug:"026e4ab9d6",name:"Long Range",trim:"Long Range",body:null},{slug:"4296c050a9",name:"Performance",trim:"Performance",body:null},{slug:"50f0c93d66",name:"Performance",trim:"Performance",body:null},{slug:"be5b2b9767",name:"Standard Range",trim:"Standard Range",body:null},{slug:"d4960b3833",name:"Long Range",trim:"Long Range",body:null}],"toyota/supra/2024":[{slug:"eabbd747b7",name:"3.0i",trim:"3.0i",body:null}]},meta:{modelsFetchedAt:{abarth:"2026-06-28T04:33:00.474Z",aion:"2026-06-28T04:33:01.415Z","alfa-romeo":"2026-06-28T04:33:02.355Z",alpine:"2026-06-28T04:33:03.290Z","aston-martin":"2026-06-28T04:33:04.229Z",audi:"2026-06-28T04:33:05.195Z",bentley:"2026-06-28T04:33:06.135Z",bmw:"2026-06-28T04:33:07.112Z","bmw-alpina":"2026-06-28T04:33:08.062Z",byd:"2026-06-28T04:33:09.004Z",cadillac:"2026-06-28T04:33:09.958Z",chery:"2026-06-28T04:33:10.944Z",citroen:"2026-06-28T04:33:11.887Z",cupra:"2026-06-28T04:33:12.827Z",daihatsu:"2026-06-28T04:33:13.770Z",datsun:"2026-06-28T04:33:14.721Z",deepal:"2026-06-27T04:23:59.381Z",denza:"2026-06-27T04:24:00.200Z",dodge:"2026-06-27T04:24:01.018Z",ds:"2026-06-27T04:24:01.843Z",ferrari:"2026-06-27T04:24:02.667Z",fiat:"2026-06-27T04:24:03.492Z",ford:"2026-06-27T04:24:04.311Z",foton:"2026-06-27T04:24:05.129Z",geely:"2026-06-27T04:24:05.946Z",genesis:"2026-06-27T04:24:06.764Z","great-wall":"2026-06-27T04:24:07.584Z",haval:"2026-06-27T04:24:08.402Z",holden:"2026-06-27T04:24:09.221Z",honda:"2026-06-27T04:24:10.039Z",hyundai:"2026-06-27T04:24:10.861Z",ineos:"2026-06-27T04:24:11.677Z",isuzu:"2026-06-27T04:24:12.495Z",iveco:"2026-06-28T04:32:51.940Z",jac:"2026-06-27T04:24:13.314Z",jaecoo:"2026-06-28T04:32:17.949Z",jaguar:"2026-06-28T04:32:18.902Z",jeep:"2026-06-28T04:32:19.838Z","kg-mobility":"2026-06-28T04:32:20.769Z",kia:"2026-06-28T04:32:21.710Z",lamborghini:"2026-06-28T04:32:22.641Z","land-rover":"2026-06-28T04:32:23.589Z",ldv:"2026-06-28T04:32:24.525Z",leapmotor:"2026-06-28T04:32:25.463Z",lexus:"2026-06-28T04:32:26.401Z",lotus:"2026-06-28T04:32:27.336Z",mahindra:"2026-06-28T04:32:28.278Z",maserati:"2026-06-28T04:32:29.225Z",mazda:"2026-06-28T04:32:30.189Z",mclaren:"2026-06-28T04:32:31.133Z",mercedes:"2026-06-28T04:32:32.103Z","mercedes-maybach":"2026-06-28T04:32:33.041Z",mg:"2026-06-28T04:32:33.991Z",mini:"2026-06-28T04:32:34.935Z",mitsubishi:"2026-06-28T04:32:35.884Z",nissan:"2026-06-28T04:32:36.836Z",omoda:"2026-06-28T04:32:37.789Z",opel:"2026-06-28T04:32:38.731Z",ora:"2026-06-28T04:32:39.684Z",peugeot:"2026-06-28T04:32:40.631Z",polaris:"2026-06-28T04:32:52.902Z",polestar:"2026-06-28T04:32:41.575Z",porsche:"2026-06-28T04:32:42.516Z",proton:"2026-06-28T04:32:43.459Z",ram:"2026-06-28T04:32:44.398Z",renault:"2026-06-28T04:32:45.351Z",seat:"2026-06-28T04:32:46.297Z",skoda:"2026-06-28T04:32:47.233Z",smart:"2026-06-28T04:32:48.178Z",ssangyong:"2026-06-28T04:32:49.114Z",subaru:"2026-06-28T04:32:50.052Z",suzuki:"2026-06-28T04:32:50.996Z",tank:"2026-06-28T04:32:53.840Z",tesla:"2026-06-28T04:32:54.775Z",toyota:"2026-06-28T04:32:55.749Z",triumph:"2026-06-28T04:32:56.677Z",volkswagen:"2026-06-28T04:32:57.635Z",volvo:"2026-06-28T04:32:58.582Z",zeekr:"2026-06-28T04:32:59.524Z"},popularFetchedAt:"2026-06-28T04:32:16.984Z",coverage:{covered:79,total:79}}};var u=v,k=(d||""||"http://localhost:8000").replace(/\/+$/,""),M=3600,Z="x-efficient-shop-hop",C="".trim();async function g(a,e){let s=new URLSearchParams;for(let[h,i]of Object.entries(e))i!==void 0&&i!==""&&s.set(h,String(i));let n=s.toString(),l=`${k}/api/fitment${a}${n?`?${n}`:""}`,m={next:{revalidate:M}},[f,y]=await Promise.all([b(),T()]),o=p(f,y,S(m));C&&(o[Z]=C);let t=await fetch(l,{...m,...Object.keys(o).length>0?{headers:o}:{}});if(!t.ok)throw new Error(`backend fitment ${t.status} on ${a}`);let c=await t.text();return c?JSON.parse(c):null}function r(a){return a!==void 0&&u.region===a&&(u.makes?.length??0)>0}function A(a){if(!a)return null;let e=a.et_range;return{pcd:a.pcd||void 0,boltPattern:a.bolt_pattern||void 0,centreBore:a.centre_bore??void 0,frontWheels:a.front_wheels??[],rearWheels:a.rear_wheels??[],frontTyres:a.front_tyres??[],rearTyres:a.rear_tyres??[],etRange:e&&e[0]!==null&&e[1]!==null?[e[0],e[1]]:void 0}}var z={async makes(a){try{return await g("/makes/",{region:a})}catch(e){if(r(a))return u.makes;throw e}},async models(a,e){try{return await g("/models/",{make:a,region:e})}catch(s){let n=r(e)?u.models[a]:void 0;if(n)return n;throw s}},async years(a,e,s){try{return await g("/years/",{make:a,model:e,region:s})}catch(n){let l=r(s)?u.years[`${a}/${e}`]:void 0;if(l)return l;throw n}},async modifications(a,e,s,n){try{return await g("/modifications/",{make:a,model:e,year:s,region:n})}catch(l){let m=r(n)?u.modifications[`${a}/${e}/${s}`]:void 0;if(m)return m;throw l}},async stockFitment(a,e,s,n,l){return A(await g("/stock-fitment/",{make:a,model:e,year:s,modification:n,region:l}))}};export{z as fitmentData};
|
|
@@ -18,5 +18,8 @@ export interface CategoryProductFieldsProps extends CategoryFieldProps {
|
|
|
18
18
|
value: string;
|
|
19
19
|
}[];
|
|
20
20
|
productReadOnly?: boolean;
|
|
21
|
+
categoryHidden?: boolean;
|
|
22
|
+
showPicked?: boolean;
|
|
23
|
+
allProducts: WheelSummary[];
|
|
21
24
|
}
|
|
22
|
-
export default function CategoryProductFields({ products, product, onProductChange, emptyLabel, extraOptions, productReadOnly, ...categoryRow }: CategoryProductFieldsProps): import("react").JSX.Element;
|
|
25
|
+
export default function CategoryProductFields({ products, product, onProductChange, emptyLabel, extraOptions, productReadOnly, categoryHidden, showPicked, allProducts, ...categoryRow }: CategoryProductFieldsProps): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,
|
|
1
|
+
"use client";import{jsx as e,jsxs as u,Fragment as k}from"react/jsx-runtime";import{SettingsField as p}from"efficient-easel/panel";import{FieldSelect as g}from"efficient-easel/fields";import{BlockProductIcon as x,CategoryIcon as C}from"efficient-easel/icons";import{ALL_CATEGORY as F}from"./useCategoryFilter.js";import{say as s}from"efficient-web-builder/format/lib/editor-words";import{sizedImage as w}from"efficient-web-builder/format/lib/sized-image";function I({category:n,onChange:a,categoryNames:d,readOnly:c,label:i=s("Category"),allLabel:m=s("All products")}){return e(p,{label:i,icon:e(C,{}),children:e(g,{value:n,ariaLabel:i,onChange:a,readOnly:c,options:[{label:m,value:F},...d.map(o=>({label:o,value:o}))]})})}function j({products:n,product:a,onProductChange:d,emptyLabel:c,extraOptions:i=[],productReadOnly:m,categoryHidden:o,showPicked:h,allProducts:v,...f}){const r=a?v.find(l=>l.slug===a)??null:null,b=r!==null&&(n.some(l=>l.slug===a)||i.some(l=>l.value===a)),y=r!==null&&!b?[{label:r.name,value:r.slug}]:[],t=h?r:null;return u(k,{children:[o?null:e(I,{...f}),e(p,{label:s("Product"),icon:e(x,{}),children:e(g,{value:a,ariaLabel:s("Product"),onChange:d,readOnly:m,options:[{label:c,value:""},...i,...y,...n.map(l=>({label:l.name,value:l.slug}))]})}),t?u("div",{"data-picked-product":"",style:{display:"flex",alignItems:"center",gap:"var(--space-8)",marginTop:"var(--space-8)"},children:[e("span",{"aria-hidden":"true",style:{flex:"none",width:"var(--space-32)",height:"var(--space-32)",overflow:"hidden",borderRadius:"var(--es-field-radius)",background:"var(--es-track-bg)"},children:t.coverImage?e("img",{...w(t.coverImage,{fallbackWidth:64,maxWidth:128}),sizes:"32px",alt:"",loading:"lazy",style:{display:"block",width:"100%",height:"100%",objectFit:"cover"}}):null}),e("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.name})]}):null]})}export{I as CategoryField,j as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as e}from"react/jsx-runtime";import{Button as s}from"efficient-shell/ui";import{useEaselHost as i}from"efficient-easel/screen/lib/host";import{say as r}from"efficient-web-builder/format/lib/editor-words";const t=["storefront-editor:open-site-section",{section:"reviews"}];function n(){const o=i();return e(s,{variant:"link",size:"sm",onClick:()=>o.send(t[0],t[1]),children:r("Edit in Reviews →")})}export{t as OPEN_REVIEWS,n as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as G,jsxs as J}from"react/jsx-runtime";import{mediaGroupVehicle as K}from"../../render/lib/content/source-values.js";import{useEffect as R,useMemo as Q,useRef as k,useState as b}from"react";import{storefrontAdmin as U}from"../../render/lib/api/index.js";import{useEaselHost as X}from"efficient-easel/screen/lib/host";import{getEditorToken as Y}from"efficient-web-builder/render/lib/editor-auth";import{getEditorSiteId as Z}from"efficient-web-builder/render/lib/editor-site";import{loadProductCatalog as F}from"../../render/components/useProductCatalog.js";import{loadStorefrontCategories as v}from"./useStorefrontCategories.js";import{useCategoryFilter as ee}from"./useCategoryFilter.js";import te from"./CategoryProductFields.js";import{snapshotChanged as re}from"efficient-web-builder/editor/components/useSnapshotSource";import se from"efficient-web-builder/editor/components/SourceStatus";import{say as n,sayCount as H}from"efficient-web-builder/format/lib/editor-words";const a="__all__";function oe(e,r){return r===a?e:e.filter(o=>o.process===r)}function m(e,r){return e.map(o=>({image:o.items[0]?.url,photos:o.items.map(s=>({src:s.url})),href:`/wheels/${r.slug}`,process:r.process,eyebrow:K(o),name:r.name,meta:o.finish})).filter(o=>!!o.image)}function T(e){const r=Y();return r?U.getWheelDetail(r,e,{siteId:Z()}):Promise.reject(new Error("editor not authenticated"))}async function ne(e){const r=await T(e),o={slug:r.slug,name:r.name,process:r.process},s=r.mediaGroups??{photos:[],lifestyle:[],videos:[],accessories:[],others:[]};return{...o,vehicleCards:m(s.lifestyle??[],o),wheelCards:m(s.photos??[],o),othersCards:m(s.others??[],o)}}async function ae(e,r){const o=await Promise.all(e.map(i=>T(i.slug).catch(()=>null))),s=[],p=[],h=[];for(const i of o){if(!i)continue;const l={slug:i.slug,name:i.name,process:i.process},d=i.mediaGroups??{photos:[],lifestyle:[],videos:[],accessories:[],others:[]};s.push(...m(d.lifestyle??[],l)),p.push(...m(d.photos??[],l)),h.push(...m(d.others??[],l))}return{slug:a,name:r===a?"All products":r,process:"",vehicleCards:s,wheelCards:p,othersCards:h,category:r}}function ie({value:e,onChange:r}){const o=X(),[s,p]=b(null),[h,i]=b(null),[l,d]=b(!1),[L,P]=b(!1),u=k(!0),g=k(e);g.current=e;const O=k(r);O.current=r;const x=(t,f=!1)=>{d(!0),f||P(!1),t().then(B=>{u.current&&(re(B,g.current)&&O.current(B),P(!1))}).catch(()=>{u.current&&!f&&P(!0)}).finally(()=>{u.current&&d(!1)})},A=(t,f=!1)=>x(()=>ne(t),f),y=(t,f=!1)=>x(()=>ae(oe(s??[],t),t),f);R(()=>(u.current=!0,F().then(t=>{u.current&&p(t)}),v().then(t=>{u.current&&i(t)}),()=>{u.current=!1}),[]);const C=k(!1);R(()=>{if(C.current)return;const t=g.current;if(!t?.slug){C.current=!0;return}if(t.slug===a){if(s===null)return;C.current=!0,y(t.category??a,!0)}else C.current=!0,A(t.slug,!0)},[s]);const c=e?.slug===a,w=Q(()=>s&&e?.slug&&!c?s.find(t=>t.slug===e.slug)??null:null,[s,e?.slug,c]),{category:N,setCategory:E,categoryNames:W,filtered:D}=ee(s,h);R(()=>{c?e?.category&&E(e.category):w?.process&&E(w.process)},[w,c,e?.category]);const S=s===null,_=!!e?.slug&&!c&&s!==null&&!w,I=t=>{if(!t){r(null);return}if(t===a){y(N);return}A(t)},M=t=>{E(t),g.current?.slug===a&&y(t)},V=()=>{e?.slug&&(F(!0).then(t=>{u.current&&p(t)}),c?y(e.category??a):A(e.slug))},$=()=>{e?.slug&&o.send("storefront-editor:open-product",{slug:e.slug,name:e.name})},j=(e?.vehicleCards.length??0)+(e?.wheelCards.length??0)+(e?.othersCards?.length??0),q=L?"error":l?"loading":"idle",z=L?n("Couldn’t reach the product catalog."):l?n("Syncing media from the catalog…"):_?n("Linked to “{name}” — no longer in the catalog.",{name:e?.name??""}):c?H("Linked to “{name}” · {n} card from all products’ media groups.","Linked to “{name}” · {n} cards from all products’ media groups.",j,{name:e?.name??""}):H("Linked to “{name}” · {n} card from its media groups.","Linked to “{name}” · {n} cards from its media groups.",j,{name:e?.name??""});return J("div",{children:[G(te,{category:N,onChange:M,categoryNames:W,readOnly:S,products:D,product:e?.slug??"",onProductChange:I,productReadOnly:S||l,emptyLabel:S?n("Loading…"):n("None (write the cards yourself)"),extraOptions:[{label:n("All products"),value:a},..._?[{label:n("{name} (unavailable)",{name:e.name}),value:e.slug}]:[]]}),e?.slug?G(se,{status:q,statusText:z,onRefresh:V,busy:l,edit:c?void 0:{label:n("Edit product ✎"),onClick:$},hint:c?n("Pools every product’s grouped media: each one’s Relative / lifestyle photos feed Gallery A, its Product photos Gallery B and its Others the Others gallery. Every media group becomes a card, attributed to its own product (title, link and tag). Narrow the set with the Category filter above. Headings, intro copy and stats stay yours."):n("Gallery A comes from the product’s Relative / lifestyle photos, Gallery B from its Product photos and the Others gallery from its Others — edit those in the product’s Media tab and refresh. Each media group is a card: its name is the eyebrow, its finish the meta line; the card’s title is the product name and its tag the category. Headings, intro copy and stats stay yours.")}):G("p",{className:"es-field-hint sf-hint-keep",style:{marginTop:7},children:n("Pick a product — or All products — to build the galleries from media groups, or keep “None” to author the cards yourself.")})]})}export{ie as default};
|
|
1
|
+
"use client";import{jsx as G,jsxs as J}from"react/jsx-runtime";import{mediaGroupVehicle as K}from"../../render/lib/content/source-values.js";import{useEffect as R,useMemo as Q,useRef as k,useState as b}from"react";import{storefrontAdmin as U}from"../../render/lib/api/index.js";import{useEaselHost as X}from"efficient-easel/screen/lib/host";import{getEditorToken as Y}from"efficient-web-builder/render/lib/editor-auth";import{getEditorSiteId as Z}from"efficient-web-builder/render/lib/editor-site";import{loadProductCatalog as F}from"../../render/components/useProductCatalog.js";import{loadStorefrontCategories as v}from"./useStorefrontCategories.js";import{useCategoryFilter as ee}from"./useCategoryFilter.js";import te from"./CategoryProductFields.js";import{snapshotChanged as re}from"efficient-web-builder/editor/components/useSnapshotSource";import se from"efficient-web-builder/editor/components/SourceStatus";import{say as n,sayCount as H}from"efficient-web-builder/format/lib/editor-words";const a="__all__";function oe(e,r){return r===a?e:e.filter(o=>o.process===r)}function m(e,r){return e.map(o=>({image:o.items[0]?.url,photos:o.items.map(s=>({src:s.url})),href:`/wheels/${r.slug}`,process:r.process,eyebrow:K(o),name:r.name,meta:o.finish})).filter(o=>!!o.image)}function T(e){const r=Y();return r?U.getWheelDetail(r,e,{siteId:Z()}):Promise.reject(new Error("editor not authenticated"))}async function ne(e){const r=await T(e),o={slug:r.slug,name:r.name,process:r.process},s=r.mediaGroups??{photos:[],lifestyle:[],videos:[],accessories:[],others:[]};return{...o,vehicleCards:m(s.lifestyle??[],o),wheelCards:m(s.photos??[],o),othersCards:m(s.others??[],o)}}async function ae(e,r){const o=await Promise.all(e.map(i=>T(i.slug).catch(()=>null))),s=[],p=[],h=[];for(const i of o){if(!i)continue;const l={slug:i.slug,name:i.name,process:i.process},d=i.mediaGroups??{photos:[],lifestyle:[],videos:[],accessories:[],others:[]};s.push(...m(d.lifestyle??[],l)),p.push(...m(d.photos??[],l)),h.push(...m(d.others??[],l))}return{slug:a,name:r===a?"All products":r,process:"",vehicleCards:s,wheelCards:p,othersCards:h,category:r}}function ie({value:e,onChange:r}){const o=X(),[s,p]=b(null),[h,i]=b(null),[l,d]=b(!1),[L,P]=b(!1),u=k(!0),g=k(e);g.current=e;const O=k(r);O.current=r;const x=(t,f=!1)=>{d(!0),f||P(!1),t().then(B=>{u.current&&(re(B,g.current)&&O.current(B),P(!1))}).catch(()=>{u.current&&!f&&P(!0)}).finally(()=>{u.current&&d(!1)})},A=(t,f=!1)=>x(()=>ne(t),f),y=(t,f=!1)=>x(()=>ae(oe(s??[],t),t),f);R(()=>(u.current=!0,F().then(t=>{u.current&&p(t)}),v().then(t=>{u.current&&i(t)}),()=>{u.current=!1}),[]);const C=k(!1);R(()=>{if(C.current)return;const t=g.current;if(!t?.slug){C.current=!0;return}if(t.slug===a){if(s===null)return;C.current=!0,y(t.category??a,!0)}else C.current=!0,A(t.slug,!0)},[s]);const c=e?.slug===a,w=Q(()=>s&&e?.slug&&!c?s.find(t=>t.slug===e.slug)??null:null,[s,e?.slug,c]),{category:N,setCategory:E,categoryNames:W,filtered:D}=ee(s,h);R(()=>{c?e?.category&&E(e.category):w?.process&&E(w.process)},[w,c,e?.category]);const S=s===null,_=!!e?.slug&&!c&&s!==null&&!w,I=t=>{if(!t){r(null);return}if(t===a){y(N);return}A(t)},M=t=>{E(t),g.current?.slug===a&&y(t)},V=()=>{e?.slug&&(F(!0).then(t=>{u.current&&p(t)}),c?y(e.category??a):A(e.slug))},$=()=>{e?.slug&&o.send("storefront-editor:open-product",{slug:e.slug,name:e.name})},j=(e?.vehicleCards.length??0)+(e?.wheelCards.length??0)+(e?.othersCards?.length??0),q=L?"error":l?"loading":"idle",z=L?n("Couldn’t reach the product catalog."):l?n("Syncing media from the catalog…"):_?n("Linked to “{name}” — no longer in the catalog.",{name:e?.name??""}):c?H("Linked to “{name}” · {n} card from all products’ media groups.","Linked to “{name}” · {n} cards from all products’ media groups.",j,{name:e?.name??""}):H("Linked to “{name}” · {n} card from its media groups.","Linked to “{name}” · {n} cards from its media groups.",j,{name:e?.name??""});return J("div",{children:[G(te,{category:N,onChange:M,categoryNames:W,readOnly:S,products:D,allProducts:s??[],product:e?.slug??"",onProductChange:I,productReadOnly:S||l,emptyLabel:S?n("Loading…"):n("None (write the cards yourself)"),extraOptions:[{label:n("All products"),value:a},..._?[{label:n("{name} (unavailable)",{name:e.name}),value:e.slug}]:[]]}),e?.slug?G(se,{status:q,statusText:z,onRefresh:V,busy:l,edit:c?void 0:{label:n("Edit product ✎"),onClick:$},hint:c?n("Pools every product’s grouped media: each one’s Relative / lifestyle photos feed Gallery A, its Product photos Gallery B and its Others the Others gallery. Every media group becomes a card, attributed to its own product (title, link and tag). Narrow the set with the Category filter above. Headings, intro copy and stats stay yours."):n("Gallery A comes from the product’s Relative / lifestyle photos, Gallery B from its Product photos and the Others gallery from its Others — edit those in the product’s Media tab and refresh. Each media group is a card: its name is the eyebrow, its finish the meta line; the card’s title is the product name and its tag the category. Headings, intro copy and stats stay yours.")}):G("p",{className:"es-field-hint sf-hint-keep",style:{marginTop:7},children:n("Pick a product — or All products — to build the galleries from media groups, or keep “None” to author the cards yourself.")})]})}export{ie as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as k,Fragment as x}from"react/jsx-runtime";import{useEffect as v,useMemo as w,useState as _}from"react";import{SettingsField as A}from"efficient-easel/panel";import{FieldSelect as B}from"efficient-easel/fields";import{iconOf as C,noGlyph as I}from"efficient-easel/screen/lib/document/box-fields";import{formatPrice as K}from"../../render/lib/commerce.js";import{resolveWheelPrice as N}from"../../render/lib/wheels/price-display.js";import{loadUnifiedProductCatalog as O}from"../../render/components/useProductCatalog.js";import{useCurrency as R}from"../../render/components/CurrencyContext.js";import F from"efficient-web-builder/editor/components/SearchSelectField";import{PREVIEWABLE_KINDS as
|
|
1
|
+
"use client";import{jsx as k,Fragment as x}from"react/jsx-runtime";import{useEffect as v,useMemo as w,useState as _}from"react";import{SettingsField as A}from"efficient-easel/panel";import{FieldSelect as B}from"efficient-easel/fields";import{iconOf as C,noGlyph as I}from"efficient-easel/screen/lib/document/box-fields";import{formatPrice as K}from"../../render/lib/commerce.js";import{resolveWheelPrice as N}from"../../render/lib/wheels/price-display.js";import{loadUnifiedProductCatalog as O}from"../../render/components/useProductCatalog.js";import{useCurrency as R}from"../../render/components/CurrencyContext.js";import F from"efficient-web-builder/editor/components/SearchSelectField";import{PREVIEWABLE_KINDS as D}from"../../render/components/pdp-dynamic/useSampleProduct.js";import{PLP_ALL_TYPES_LABEL as V,PLP_KINDS as W,PLP_KIND_LABELS as S}from"../../render/lib/catalog/plp-item.js";import{currentPreviewPickKey as G,useCurrentPreviewPick as T,writePreviewPick as U}from"../../render/lib/document/preview-pick.js";import{say as r}from"efficient-web-builder/format/lib/editor-words";const p="__all__",L="";function Y(o){return(o??[]).filter(n=>D.includes(n.kind))}const j=I("one row per level from one list — the gutter would repeat one mark down the column and say nothing; the group heading carries it once (ruling 2026-09-23)"),g=o=>typeof o.brand=="string"?o.brand.trim():"";function E(o,n){if(o.kind!=="alloy-wheel"||!n)return;const l=o,i=N(l.prices?.[n],l.msrpPrices?.[n]);return i.priced?K(i.unit,n):void 0}function H({rows:o,brand:n,kind:l,slug:i,loading:u=!1,currency:m=""}){const f=o??[],s=[...new Set(f.map(g).filter(Boolean))].sort((t,y)=>t.localeCompare(y)),d=n===p?f:f.filter(t=>g(t)===n),c=W.filter(t=>d.some(y=>y.kind===t)),b=l===p?d:d.filter(t=>t.kind===l),h=new Set(b.map(t=>t.kind)).size>1,e=b.map(t=>({value:t.slug,label:t.name,...h?{group:r(S[t.kind])}:{},thumb:t.coverImage??null,...E(t,m)?{meta:E(t,m)}:{}})),a=i&&!b.some(t=>t.slug===i)?[{value:i,label:u?i:r("{slug} (not in this list)",{slug:i})}]:[],P=[];return s.length>1&&P.push({key:"brand",label:r("Brand"),options:[{value:p,label:r("All brands")},...s.map(t=>({value:t,label:t}))]}),c.length>1&&P.push({key:"kind",label:r("Product type"),options:[{value:p,label:r(V)},...c.map(t=>({value:t,label:r(S[t])}))]}),P.push({key:"product",label:r("Product"),options:[{value:L,label:u?r("Loading…"):r("Generic placeholder")},...a,...e]}),P}function M(){const[o,n]=_(null),[l,i]=_(p),[u,m]=_(p),f=G(),s=T()??L;v(()=>{let e=!1;return O().then(a=>{e||n(a)}).catch(()=>{e||n([])}),()=>{e=!0}},[]);const{currency:d}=R(),c=w(()=>Y(o),[o]);v(()=>{const e=c.find(a=>a.slug===s);e&&g(e)&&i(g(e))},[s,c]);const b=w(()=>H({rows:c,brand:l,kind:u,slug:s,loading:o===null,currency:d}),[c,l,u,s,o,d]),h={brand:e=>{i(e),m(p)},kind:m,product:e=>U(f,e)};return k(x,{children:b.map(e=>k(A,{label:e.label,icon:C(j),hint:e.key==="product"?r(z):void 0,children:e.key==="product"?k(F,{bare:!0,label:e.label,options:e.options,fallback:L,value:s,onChange:h.product,placeholder:r("Search your catalog…")}):k(B,{value:e.key==="brand"?l:u,ariaLabel:e.label,onChange:a=>h[e.key](a),options:e.options.map(a=>({label:a.label,value:a.value}))})},e.key))})}const z="Only for looking at while you design. Shoppers always see the product they opened.";export{p as ANY_VALUE,L as NO_PRODUCT,M as default,H as previewPickerLevels,Y as previewableRows};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as b,jsxs as H}from"react/jsx-runtime";import{useEffect as I,useMemo as L,useState as $}from"react";import{useEaselHost as z}from"efficient-easel/screen/lib/host";import{formatPrice as N}from"../../render/lib/commerce.js";import{resolveWheelPrice as K}from"../../render/lib/wheels/price-display.js";import{isRenderableFinish as O}from"../../render/lib/wheels/renderable-finishes.js";import{loadUnifiedProductCatalog as _}from"../../render/components/useProductCatalog.js";import{loadStorefrontCategories as w}from"./useStorefrontCategories.js";import{filterByCategory as M,useCategoryFilter as U}from"./useCategoryFilter.js";import{CategoryField as V}from"./CategoryProductFields.js";import{useSnapshotSource as q}from"efficient-web-builder/editor/components/useSnapshotSource";import{useCurrency as D}from"../../render/components/CurrencyContext.js";import G from"efficient-web-builder/editor/components/SearchSelectField";import J from"efficient-web-builder/editor/components/SourceStatus";import{say as n,sayCount as Q}from"efficient-web-builder/format/lib/editor-words";const R=e=>e.kind==="tyre"?"tyre":"alloy-wheel",m=e=>`${e.kind}:${e.slug}`;function T(e){return e.kind==="tyre"?{kind:"tyre",slug:e.slug,name:e.name,description:e.description??"",eyebrow:e.brand??"",image:e.coverImage??null,finishes:[],prices:e.prices,href:`/tyres/${e.slug}`}:{kind:"wheel",slug:e.slug,name:e.name,description:e.description??"",eyebrow:e.process,image:e.coverImage??null,finishes:e.finishes.filter(O).map(o=>({name:o.name,color:o.color,src:o.src})),prices:e.prices,href:`/wheels/${e.slug}`}}function C(e,o){const s=R(o);return e.find(t=>t.kind===s&&t.slug===o.slug)}function X(e){return E(e)?n("Category — wheels only"):n("Category")}const E=e=>!!(e?.some(o=>o.kind==="tyre")&&e.some(o=>o.kind==="alloy-wheel")),Y=e=>Q("{n} size","{n} sizes",e);function Z({rows:e,category:o,value:s,loading:t,currency:l}){const a=e??[],u=a.filter(r=>r.kind==="alloy-wheel"),p=a.filter(r=>r.kind==="tyre"),h=u.length>0&&p.length>0,S={value:"",label:t?n("Loading…"):n("Pick a product…")},g=s&&!(e!==null&&C(e,s))?[{value:m({kind:R(s),slug:s.slug}),label:t?s.name:n("{name} (unavailable)",{name:s.name})}]:[],c=M(u,o),d=s&&e!==null?C(e,s):void 0,x=[...d&&d.kind==="alloy-wheel"&&!c.includes(d)?[d]:[],...c].map(r=>{const y=K(r.prices[l],r.msrpPrices?.[l]);return{value:m({kind:"alloy-wheel",slug:r.slug}),label:r.name,...h?{group:n("Wheels")}:{},thumb:r.coverImage??null,...y.priced?{meta:N(y.unit,l)}:{}}}),P=p.map(r=>({value:m(r),label:r.name,...h?{group:n("Tyres")}:{},thumb:r.coverImage??null,meta:Y(r.variantCount)}));return[S,...g,...x,...P]}function v({value:e,onChange:o}){const s=z(),{rows:t,loading:l,refreshing:a,errored:u,refresh:p}=q({load:_,resolve:C,snapshot:T,value:e,onChange:o}),[h,S]=$(null);I(()=>{let i=!1;return w().then(k=>{i||S(k)}),()=>{i=!0}},[]);const{currency:g}=D(),c=L(()=>t&&e?C(t,e)??null:null,[t,e]),d=L(()=>(t??[]).filter(i=>i.kind==="alloy-wheel"),[t]),{category:f,setCategory:x,categoryNames:P}=U(d,h,c?.kind==="alloy-wheel"?c:null),r=!!e?.slug&&t!==null&&!c,y=L(()=>Z({rows:t,category:f,value:e,loading:l,currency:g}),[t,f,e,l,g]),W=i=>{if(!i){o(null);return}const k=(t??[]).find(F=>m(F)===i);k&&o(T(k))},j=()=>{e?.slug&&s.send("storefront-editor:open-product",{slug:e.slug,name:e.name})},A=u?"error":a?"loading":"idle",B=u?n("Couldn’t reach the product catalog."):a?n("Syncing from the catalog…"):r?n("Linked to “{name}” — no longer in the catalog.",{name:e?.name??""}):n("Linked to “{name}” · title, description, category, price & image follow the product.",{name:e?.name??""});return H("div",{children:[b(G,{label:"Product",options:y,fallback:"",value:e?m({kind:R(e),slug:e.slug}):"",onChange:W,placeholder:"Search products…"}),b(V,{label:X(t),allLabel:E(t)?n("All wheel categories"):n("All products"),category:f,onChange:x,categoryNames:P,readOnly:l}),e?.slug?b(J,{status:A,statusText:B,onRefresh:p,busy:a,edit:{label:n("Edit product ✎"),onClick:j},hint:n("The whole hero comes from the product record — title, price, pictures, options and Add to Cart. Edit the product in the Products database and this hero updates to match.")}):b("p",{className:"es-field-hint sf-hint-keep",style:{marginTop:7},children:n("This hero always shows a real product. Pick one to fill the title, price, pictures, options and Add to Cart from the catalog.")})]})}export{v as default,X as heroCategoryLabel,Z as heroPickerOptions,C as heroResolve,T as heroSnapshot};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as l,jsxs as C}from"react/jsx-runtime";import{useEffect as P,useMemo as N,useState as d}from"react";import{loadProductCatalog as x}from"../../render/components/useProductCatalog.js";import{loadStorefrontCategories as b}from"./useStorefrontCategories.js";import{useCategoryFilter as j}from"./useCategoryFilter.js";import S from"./CategoryProductFields.js";import{useGridSourceLock as L}from"./useGridSourceLock.js";import{say as o}from"efficient-web-builder/format/lib/editor-words";import{sayWith as T}from"../lib/say-with.js";function W({value:r,onChange:u}){const[e,m]=d(null),[f,g]=d(null);P(()=>{let t=!1;return x().then(a=>{t||m(a)}),b().then(a=>{t||g(a)}),()=>{t=!0}},[]);const h=N(()=>e&&r?e.find(t=>t.slug===r)??null:null,[e,r]),{category:p,setCategory:y,categoryNames:k,filtered:n}=j(e,f,h),c=e===null,i=L(),s=i!==null;return C("div",{children:[s&&l("p",{className:"es-field-hint sf-hint-keep",style:{marginBottom:8},children:T(o("Disabled because this grid’s {source} is set to “{name}”. The grid fills itself from that source automatically. To pick wheels here, set {source} back to “Manual”.",{name:i??""}),{source:l("strong",{children:o("Product content")})})}),l("div",{className:s?"sf-locked":void 0,children:l(S,{category:p,onChange:y,categoryNames:k,readOnly:c||s,products:n,allProducts:e??[],product:r??"",onProductChange:u,productReadOnly:c||s,emptyLabel:c?o("Loading…"):n.length===0?o("No products in this category"):o("Select a product…")})})]})}export{W as default};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type AdminStorefrontCategory, type WheelSummary } from "../../render/lib/api/index.js";
|
|
2
|
+
import { type ReviewsSourceOptions } from "../../render/lib/sections/reviews.js";
|
|
3
|
+
export declare const REVIEWS_PRODUCT_CHOICE: {
|
|
4
|
+
readonly all: "";
|
|
5
|
+
readonly this: "@this";
|
|
6
|
+
readonly pick: "@pick";
|
|
7
|
+
readonly kept: "@kept";
|
|
8
|
+
};
|
|
9
|
+
export declare function reviewsProductChoice(value: ReviewsSourceOptions | null | undefined, wheels: readonly WheelSummary[] | null, onProductPage: boolean): string;
|
|
10
|
+
export declare function reviewsOnProductPage(appState: unknown): boolean;
|
|
11
|
+
export declare function reviewsSourceOptionsFor(choice: string, wheels: readonly WheelSummary[] | null, value: ReviewsSourceOptions | null | undefined): ReviewsSourceOptions;
|
|
12
|
+
interface RowsProps {
|
|
13
|
+
value: ReviewsSourceOptions | null | undefined;
|
|
14
|
+
onChange: (value: ReviewsSourceOptions) => void;
|
|
15
|
+
wheels: WheelSummary[] | null;
|
|
16
|
+
categories: AdminStorefrontCategory[] | null;
|
|
17
|
+
onProductPage: boolean;
|
|
18
|
+
loading: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare function ReviewsProductRows({ value, onChange, wheels, categories, onProductPage, loading }: RowsProps): import("react").JSX.Element;
|
|
21
|
+
interface Props {
|
|
22
|
+
value?: ReviewsSourceOptions | null;
|
|
23
|
+
onChange: (value: ReviewsSourceOptions) => void;
|
|
24
|
+
}
|
|
25
|
+
export default function ReviewsProductSource({ value, onChange }: Props): import("react").JSX.Element;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as p,jsxs as _}from"react/jsx-runtime";import{useEffect as x,useMemo as g,useState as v}from"react";import{useProductCatalog as S}from"../../render/components/useProductCatalog.js";import{loadStorefrontCategories as b}from"./useStorefrontCategories.js";import{useCategoryFilter as D}from"./useCategoryFilter.js";import F from"./CategoryProductFields.js";import{useEasel as N}from"efficient-easel/easel";import{isEditorOnDynamicPage as T}from"efficient-web-builder/format/lib/document/editor-page-context";import{editorPageDrawsOtherRecord as j}from"../../render/lib/document/current-record.js";import{say as u}from"efficient-web-builder/format/lib/editor-words";import{REVIEWS_OF_CHOSEN_PRODUCT as f,REVIEWS_OF_EVERY_PRODUCT as C}from"../../render/lib/sections/reviews.js";const o={all:"",this:"@this",pick:"@pick",kept:"@kept"},a=e=>typeof e=="string"?e.trim():"",m=e=>(e??[]).filter(s=>a(s.designCode)!=="");function I(e,s,n){const l=e?.product;if(l===C)return o.all;const c=a(e?.designCode);if(l===f||!n&&c!==""){if(c==="")return o.pick;const r=m(s).find(t=>a(t.designCode)===c);return r?r.slug:o.kept}return n?o.this:o.all}function V(e){return T()&&!j({appState:e})}function W(e,s,n){const{product:l,designCode:c,...r}=n??{};if(e===o.kept)return{...n??{}};if(e===o.all)return{...r,product:C};if(e===o.this)return r;const t=e===o.pick?null:m(s).find(i=>i.slug===e);return t?{...r,product:f,designCode:a(t.designCode)}:{...r,product:f}}function H(e,s,n){return[...e?[{label:u("This product"),value:o.this}]:[],{label:u("Choose a product"),value:o.pick},...s!==null?[{label:n?s:u("{name} (unavailable)",{name:s}),value:o.kept}]:[]]}function L({value:e,onChange:s,wheels:n,categories:l,onProductPage:c,loading:r}){const t=g(()=>m(n),[n]),i=I(e,t,c),h=g(()=>t.find(d=>d.slug===i)??null,[t,i]),{category:y,setCategory:w,categoryNames:P,filtered:O}=D(t,l,h),k=i!==o.all&&i!==o.this,E=i===o.kept,R=a(e?.designCode);return _("div",{children:[p(F,{category:y,onChange:w,categoryNames:P,allLabel:u("All categories"),categoryHidden:!k,readOnly:r,products:O,allProducts:t,product:i,onProductChange:d=>s(W(d,t,e)),productReadOnly:r,emptyLabel:r?u("Loading…"):u("All products"),extraOptions:H(c,E?R:null,r),showPicked:!0}),i===o.pick&&!r?p("p",{className:"es-field-hint sf-hint-keep",style:{marginTop:"var(--space-8)"},children:u("No product chosen yet, so reviews of every product show.")}):null]})}function U({value:e,onChange:s}){const n=N(t=>V(t.appState)),l=S(),[c,r]=v(null);return x(()=>{let t=!1;return b().then(i=>{t||r(i)}),()=>{t=!0}},[]),p(L,{value:e,onChange:s,wheels:l,categories:c,onProductPage:n,loading:l===null})}export{o as REVIEWS_PRODUCT_CHOICE,L as ReviewsProductRows,U as default,V as reviewsOnProductPage,I as reviewsProductChoice,W as reviewsSourceOptionsFor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as c,jsxs as N}from"react/jsx-runtime";import{useEffect as j,useMemo as T,useState as F}from"react";import{resolveMedia as O}from"efficient-web-builder/render/lib/media";import{useEaselHost as B}from"efficient-easel/screen/lib/host";import{loadProductCatalog as H}from"../../render/components/useProductCatalog.js";import{loadStorefrontCategories as M}from"./useStorefrontCategories.js";import{useCategoryFilter as R}from"./useCategoryFilter.js";import _ from"./CategoryProductFields.js";import{useSnapshotSource as z}from"efficient-web-builder/editor/components/useSnapshotSource";import W from"efficient-web-builder/editor/components/SourceStatus";import{say as t}from"efficient-web-builder/format/lib/editor-words";function p(e){return{slug:e.slug,name:e.name,process:e.process,spokes:e.spokes,mesh:e.mesh,spec:e.spec,finishes:e.finishes.map(s=>({name:s.name,image:O(s.angles?.[0]??s.src)??null}))}}function Y({value:e,onChange:s}){const f=B(),{rows:r,loading:a,refreshing:i,errored:u,refresh:g}=z({load:H,resolve:(o,n)=>o.find(l=>l.slug===n.slug),snapshot:p,value:e,onChange:s}),[h,y]=F(null);j(()=>{let o=!1;return M().then(n=>{o||y(n)}),()=>{o=!0}},[]);const d=T(()=>r&&e?.slug?r.find(o=>o.slug===e.slug)??null:null,[r,e?.slug]),{category:b,setCategory:k,categoryNames:S,filtered:x}=R(r,h,d),m=!!e?.slug&&r!==null&&!d,C=o=>{if(!o){s(null);return}const n=(r??[]).find(l=>l.slug===o);n&&s(p(n))},P=()=>{e?.slug&&f.send("storefront-editor:open-product",{slug:e.slug,name:e.name})},w=!!e?.spec,E=u?"error":i?"loading":"idle",L=u?t("Couldn’t reach the product catalog."):i?t("Syncing from the catalog…"):m?t("Linked to “{name}” — no longer in the catalog.",{name:e?.name??""}):w?t("Linked to “{name}” · every spec row follows the product.",{name:e?.name??""}):t("Linked to “{name}” — this product has no spec data yet.",{name:e?.name??""});return N("div",{children:[c(_,{category:b,onChange:k,categoryNames:S,readOnly:a,products:x,product:e?.slug??"",onProductChange:C,productReadOnly:a,emptyLabel:a?t("Loading…"):t("None (write the rows yourself)"),extraOptions:m?[{label:t("{name} (unavailable)",{name:e.name}),value:e.slug}]:[]}),e?.slug?c(W,{status:E,statusText:L,onRefresh:g,busy:i,edit:{label:t("Edit product ✎"),onClick:P},hint:t("Every spec row (lug count, bolt pattern, offset, center bore, load rating, bump profile…) comes from the product record — edit its part numbers in the Products database and this table updates to match. You still choose which finish to picture and an optional size.")}):c("p",{className:"es-field-hint sf-hint-keep",style:{marginTop:7},children:t("Pick a product to fill the spec table from the catalog, or keep “None” to write the rows yourself.")})]})}export{Y as default};
|
|
1
|
+
"use client";import{jsx as c,jsxs as N}from"react/jsx-runtime";import{useEffect as j,useMemo as T,useState as F}from"react";import{resolveMedia as O}from"efficient-web-builder/render/lib/media";import{useEaselHost as B}from"efficient-easel/screen/lib/host";import{loadProductCatalog as H}from"../../render/components/useProductCatalog.js";import{loadStorefrontCategories as M}from"./useStorefrontCategories.js";import{useCategoryFilter as R}from"./useCategoryFilter.js";import _ from"./CategoryProductFields.js";import{useSnapshotSource as z}from"efficient-web-builder/editor/components/useSnapshotSource";import W from"efficient-web-builder/editor/components/SourceStatus";import{say as t}from"efficient-web-builder/format/lib/editor-words";function p(e){return{slug:e.slug,name:e.name,process:e.process,spokes:e.spokes,mesh:e.mesh,spec:e.spec,finishes:e.finishes.map(s=>({name:s.name,image:O(s.angles?.[0]??s.src)??null}))}}function Y({value:e,onChange:s}){const f=B(),{rows:r,loading:a,refreshing:i,errored:u,refresh:g}=z({load:H,resolve:(o,n)=>o.find(l=>l.slug===n.slug),snapshot:p,value:e,onChange:s}),[h,y]=F(null);j(()=>{let o=!1;return M().then(n=>{o||y(n)}),()=>{o=!0}},[]);const d=T(()=>r&&e?.slug?r.find(o=>o.slug===e.slug)??null:null,[r,e?.slug]),{category:b,setCategory:k,categoryNames:S,filtered:x}=R(r,h,d),m=!!e?.slug&&r!==null&&!d,C=o=>{if(!o){s(null);return}const n=(r??[]).find(l=>l.slug===o);n&&s(p(n))},P=()=>{e?.slug&&f.send("storefront-editor:open-product",{slug:e.slug,name:e.name})},w=!!e?.spec,E=u?"error":i?"loading":"idle",L=u?t("Couldn’t reach the product catalog."):i?t("Syncing from the catalog…"):m?t("Linked to “{name}” — no longer in the catalog.",{name:e?.name??""}):w?t("Linked to “{name}” · every spec row follows the product.",{name:e?.name??""}):t("Linked to “{name}” — this product has no spec data yet.",{name:e?.name??""});return N("div",{children:[c(_,{category:b,onChange:k,categoryNames:S,readOnly:a,products:x,allProducts:r??[],product:e?.slug??"",onProductChange:C,productReadOnly:a,emptyLabel:a?t("Loading…"):t("None (write the rows yourself)"),extraOptions:m?[{label:t("{name} (unavailable)",{name:e.name}),value:e.slug}]:[]}),e?.slug?c(W,{status:E,statusText:L,onRefresh:g,busy:i,edit:{label:t("Edit product ✎"),onClick:P},hint:t("Every spec row (lug count, bolt pattern, offset, center bore, load rating, bump profile…) comes from the product record — edit its part numbers in the Products database and this table updates to match. You still choose which finish to picture and an optional size.")}):c("p",{className:"es-field-hint sf-hint-keep",style:{marginTop:7},children:t("Pick a product to fill the spec table from the catalog, or keep “None” to write the rows yourself.")})]})}export{Y as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{ProductFieldIcon as
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{ProductFieldIcon as m,WordsFromIcon as n,SquareIcon as s,ImageIcon as p}from"efficient-easel/icons";import{toggle as i,withScaffold as u,upload as c,plainText as o,copyText as w,plainTextarea as y}from"efficient-web-builder/editor/lib/document/controls";import{section as t}from"efficient-easel/screen/lib/document/box-fields";import{segmented as l}from"efficient-web-builder/editor/lib/document/box-fields";import{innerSpacingFields as d}from"efficient-web-builder/editor/lib/document/blocks/shared-fields";import{withRowRules as g,withShowWhen as R}from"efficient-web-builder/render/lib/document/show-when";import{BOUND_TO_THE_RECORD as _,BOUND_TO_THE_RECORD_ROW as f,DRAWS_OTHER_RECORD as b,ON_DYNAMIC_PAGE_ROW as D,PAGE_FACTS as S}from"../page-rules.js";import{DETAILROWS_SCAFFOLD_ROWS as O}from"../../../../../../render/lib/document/blocks/commerce/DetailRows/meta.js";const C={fields:g({_sDynamic:t("Product page"),dynamic:i("Connect to product data",!1,e(m,{})),rowsFrom:l("Rows from",e(n,{}),[{label:"Product story",value:"story"},{label:"Detail shots",value:"details"}],"story"),_sRows:t("Rows"),rows:u({type:"array",label:"Rows",arrayFields:{image:c("Image","image/*"),imageShape:R(l("Image shape",e(s,{}),[{label:"Square",value:"square"},{label:"Wide",value:"wide"}],"square"),{context:"node.layout",is:"narrow"}),eyebrow:o("Eyebrow"),title:w("Title"),copy:y("Body"),specs:{type:"array",label:"Specs",arrayFields:{label:o("Label","Offset"),value:o("Value","ET -10")},defaultItemProps:{label:"",value:""},getItemSummary:(a,r)=>a?.label||`Spec ${(r??0)+1}`,max:8},tag:o("Image tag")},defaultItemProps:{image:"",imageShape:"square",eyebrow:"",title:"",copy:"",specs:[],tag:""},getItemSummary:(a,r)=>a?.title||a?.eyebrow||`Row ${(r??0)+1}`},O),_dDesign:t("Design"),layout:l("Row shape",e(s,{}),[{label:"Even columns",value:"even"},{label:"Narrow image",value:"narrow"}],"even"),startLeft:i("First image on the left",!1,e(p,{})),_dLayout:t("Layout"),...d("DetailRows")},[[["_sDynamic","dynamic"],D],[["rowsFrom"],{all:[f,{not:b}]}],[["_sRows","rows"],{not:_}]]),showWhenFacts:S};export{C as DetailRowsFields};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as l}from"react/jsx-runtime";import{ProductFieldIcon as n,ImageIcon as c,EyeIcon as d,HashIcon as p}from"efficient-easel/icons";import{toggle as
|
|
1
|
+
import{jsx as l}from"react/jsx-runtime";import{ProductFieldIcon as n,ImageIcon as c,EyeIcon as d,HashIcon as p}from"efficient-easel/icons";import{toggle as _,text as r,textarea as u,linkField as t,galleryLayoutField as g,containerGapRows as y,displayFields as f}from"efficient-web-builder/editor/lib/document/controls";import{group as e}from"efficient-easel/screen/lib/document/box-fields";import{select as i,slider as R}from"efficient-web-builder/editor/lib/document/box-fields";import{blockSourceField as E,blockSourceFields as L,NO_BLOCK_SOURCE as O}from"efficient-web-builder/editor/lib/document/block-source-fields";import{GALLERY_TILE_PARTS as h}from"../../../../../../render/components/GalleryItem.js";import{headFieldsForPlacement as A,SPLITTABLE_SECTIONS as I}from"efficient-web-builder/format/lib/sections/section-head-placement";import{slotRowsField as S}from"efficient-web-builder/editor/lib/document/blocks/shared-fields";import{withRowRules as G}from"efficient-web-builder/render/lib/document/show-when";import{BOUND_TO_THE_RECORD as s,BOUND_TO_THE_RECORD_ROW as H,DRAWS_OTHER_RECORD as v,ON_DYNAMIC_PAGE_ROW as B,PAGE_FACTS as D}from"../page-rules.js";import{GALLERY_B_PH as o,GalleryBSlots as F}from"../../../../../../render/lib/document/blocks/commerce/GalleryB/meta.js";const T=[{label:"All media groups",value:"all"},{label:"Lifestyle photos",value:"lifestyle"},{label:"Product photos",value:"photos"},{label:"Accessories",value:"accessories"},{label:"Others",value:"others"}],b=[{label:"Group covers",value:"covers"},{label:"Every photo",value:"all"},{label:"Auto (covers if 4+ groups)",value:"auto"}],q={fields:G({_gDynamic:e("Product page"),dynamic:_("Connect to product data",!1,l(n,{})),mediaZone:i("Images from",l(c,{}),T,"all"),photoDisplay:i("Show",l(d,{}),b,"covers"),_gHeader:e("Header"),num:r("Section number",o.num),title:u("Heading",o.title),_gHeaderLink:e("Header link"),linkText:r("Header button",o.link),linkHref:t("Header link"),_gImages:e("Images"),imageList:S("GalleryB"),items:F.items,...f(h),dataSource:E("Image source","Images typed here"),limit:R("Images to show",l(p,{}),1,24,1,24),_gGalleryLink:e("Gallery link"),galleryHref:t("“See gallery” link"),_gArrangement:e("Arrangement"),layout:g(),...y("GalleryB")},[[["_gDynamic","dynamic"],B],[["mediaZone","photoDisplay"],{all:[H,{not:v}]}],[["_gImages"],{not:s}],[["items","imageList"],{all:[{not:s},O]}],[["limit"],{field:"dataSource",set:!0}]]),resolveFields:(a,{fields:m,parent:k})=>A(L("GalleryB",m,a.props),a.props.headPlacement,I.GalleryB.headRows),showWhenFacts:D};export{q as GalleryBFields};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o}from"react/jsx-runtime";import I from"../../../../../components/CategorySource.js";import{headerKeysOfPlace as
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import I from"../../../../../components/CategorySource.js";import{headerKeysOfPlace as F,LAYOUT_FIELD_KEYS as T,SECTION_THEME_FIELD_KEYS as L,SECTION_SHAPE_FIELD_KEYS as P,SECTION_ANIM_FIELD_KEYS as O,CARD_STYLE_FIELD_KEYS as g,BOUND_CARD_MEDIA_FIELD_KEYS as y,CARD_SHOW_FIELD_KEYS as C}from"efficient-web-builder/editor/lib/document/field-groups";import{TITLE_SIZES as A}from"../../../../../../render/components/ProductGridSection.js";import{DEFAULT_TITLE_SIZE as R}from"../../../../../../render/lib/sections/product-grid-title.js";import{ProductFieldIcon as h,TextSizeIcon as H,ColumnsIcon as G,ListIcon as N,HashIcon as k}from"efficient-easel/icons";import{toggle as i,text as s,textarea as d,sourceField as w,linkField as Y,cardShowFields as K,cardMediaFields as U,cardStyleFields as x,containerGapRows as B,spacingFields as M}from"efficient-web-builder/editor/lib/document/controls";import{group as t}from"efficient-easel/screen/lib/document/box-fields";import{select as b,slider as n}from"efficient-web-builder/editor/lib/document/box-fields";import{isEditorOnDynamicPage as j}from"efficient-web-builder/format/lib/document/editor-page-context";import{productKindsField as z}from"../shared-fields.js";import{ALL_PRODUCTS_SLUG as W}from"../../../../../../render/lib/wheels/grid-source.js";import{headFieldsForPlacement as Z,SPLITTABLE_SECTIONS as v}from"efficient-web-builder/format/lib/sections/section-head-placement";import{PH as m}from"efficient-web-builder/format/lib/document/blocks/placeholders";import{slotRowsField as q}from"efficient-web-builder/editor/lib/document/blocks/shared-fields";import{PRODUCTGRID_PH as l}from"../../../../../../render/lib/document/blocks/commerce/placeholders.js";import{GRID_CARD_SHOW as J}from"../../../../../../render/lib/sections/card-show-defaults.js";import{truthy as e,withRowRules as c}from"efficient-web-builder/render/lib/document/show-when";import{BOUND_TO_THE_RECORD as Q,OFF_DYNAMIC_PAGE as _,ON_DYNAMIC_PAGE_ROW as V,PAGE_FACTS as X}from"../page-rules.js";import{ProductGridSlots as $}from"../../../../../../render/lib/document/blocks/commerce/ProductGrid/meta.js";const a=M({top:120,keys:{top:"padTop",bottom:"padBottom"},group:!1,only:"top"}),oo=new Set([...F("Content"),"_gDynamic","dynamic","_gHeader","num","title","titleSize","description","_gLayout","columns",...Object.keys(a),...T,...L,...P,...O,...g,...y,...C]),to={not:Q},Oo={fields:c({_gDynamic:t("Product page"),dynamic:i("Connect to product data",!1,o(h,{})),_gHeader:t("Header"),num:s("Number",l.num),title:d("Heading",m.sectionHeading),titleSize:b("Heading size",o(H,{}),A,R),description:d("Body",m.body),_gProducts:t("Products"),source:w(I),kinds:z(),productList:q("ProductGrid"),products:$.products,_gLink:t("Link"),linkText:s("Button",l.link),linkHref:Y("Link"),...K({defaults:J}),...U(),...x(),_gLayout:t("Grid"),columns:n("Columns",o(G,{}),1,6,1,4),showAll:i("Show all items",!1,o(N,{})),limit:n("Items to display",o(k,{}),1,12,1,8),...B("ProductGrid"),...a},[[["_gDynamic","dynamic"],V],[["kinds"],{field:"source.slug",is:W}],[["products","productList"],{not:e("source.slug")}],[["limit"],{any:[_,{not:e("showAll")}]}],[["linkHref"],{any:[_,{not:e("linkText.hidden")}]}]]),resolveFields:(p,{fields:u,parent:ro})=>{const E=u,f=p.props,r=Z(E,f.headPlacement,v.ProductGrid.headRows);if(!j())return r;const S=Object.keys(r).filter(D=>!oo.has(D));return c(r,[[S,to]])},showWhenFacts:X};export{Oo as ProductGridFields};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o}from"react/jsx-runtime";import{EDITOR_ONLY_GROUP as E,LAYOUT_FIELD_KEYS as P,SECTION_THEME_FIELD_KEYS as p,SECTION_SHAPE_FIELD_KEYS as s,SECTION_ANIM_FIELD_KEYS as u}from"efficient-web-builder/editor/lib/document/field-groups";import{PREVIEWABLE_KINDS as g}from"../../../../../../render/components/pdp-dynamic/useSampleProduct.js";import T from"../../../../../components/ProductHeroSource.js";import I from"../../../../../components/PreviewProductPicker.js";import{PlacementIcon as O,CarIcon as A,LayoutIcon as
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import{EDITOR_ONLY_GROUP as E,LAYOUT_FIELD_KEYS as P,SECTION_THEME_FIELD_KEYS as p,SECTION_SHAPE_FIELD_KEYS as s,SECTION_ANIM_FIELD_KEYS as u}from"efficient-web-builder/editor/lib/document/field-groups";import{PREVIEWABLE_KINDS as g}from"../../../../../../render/components/pdp-dynamic/useSampleProduct.js";import T from"../../../../../components/ProductHeroSource.js";import I from"../../../../../components/PreviewProductPicker.js";import{PlacementIcon as O,CarIcon as A,LayoutIcon as S,ColumnWidthsIcon as L,SpecTableIcon as R,DollarIcon as d}from"efficient-easel/icons";import{sourceField as h,toggle as i}from"efficient-web-builder/editor/lib/document/controls";import{alignmentField as w,group as r}from"efficient-easel/screen/lib/document/box-fields";import{select as f,segmented as F,slider as v}from"efficient-web-builder/editor/lib/document/box-fields";import{isEditorOnDynamicPage as N,editorTemplateProductKind as D}from"efficient-web-builder/format/lib/document/editor-page-context";import{HERO_PRICE_PLACEMENT_OPTIONS as C,DEFAULT_HERO_PRICE_PLACEMENT as y}from"../../../../../../render/lib/sections/hero-price-placement.js";import{DEFAULT_HERO_LAYOUT as _,HERO_LAYOUTS as c,HERO_RATIO_MIN as H,HERO_RATIO_MAX as b,DEFAULT_HERO_RATIO as U,DEFAULT_HERO_TEXT_ALIGN as Y}from"../../../../../../render/lib/sections/hero-arrangement.js";import{PRODUCT_GALLERY_ROWS as M}from"../ProductGallery/fields.js";import{shownForOption as k,withRowRules as m}from"efficient-web-builder/render/lib/document/show-when";import{OFF_DYNAMIC_PAGE as G,ON_DYNAMIC_PAGE_ROW as x,PAGE_FACTS as K}from"../page-rules.js";import{TRUST_BULLETS_SLOT as a}from"../../../../../../render/lib/sections/hero-trust-bullets.js";import{ProductHeroSlots as W}from"../../../../../../render/lib/document/blocks/commerce/ProductHero/meta.js";const B=()=>({type:"custom",render:()=>o(I,{})});function V(t){const e=t?.data?.root;return g.includes(D(e?.props))}const j={not:{context:"previewsNoTemplateProduct",is:!0}},Q=new Set([...P,...p,...s,...u,"_gPreview","previewPick","_gPriceLine","pricePlacement","_gBehaviour","showVehicleFitment","_gArrangement","heroLayout","imageRatio","textAlign","_gShow","showSpecTable","showPriceQuote","_gImageGallery","galleryMode","imageFit",a]),Ee={fields:m({_gSource:r("Product"),source:h(T),_gPreview:r(E),previewPick:B(),_gPriceLine:r("Price"),pricePlacement:f("Price position",o(O,{}),C,y),_gBehaviour:r("Behavior"),showVehicleFitment:i("Vehicle fitment",!0,o(A,{})),_gArrangement:r("Arrangement"),heroLayout:F("Layout",o(S,{}),[{label:"Split",value:"split"},{label:"Image right",value:"imageRight"},{label:"Stacked",value:"stacked"}],_),imageRatio:v("Image / buy ratio",o(L,{}),H,b,1,U,"%"),textAlign:w({allow:["left","center"],fallback:Y}),_gShow:r("Show in the buy box"),showSpecTable:i("Spec table",!0,o(R,{})),showPriceQuote:i("Price / quote",!0,o(d,{})),_gImageGallery:r("Image gallery"),...M,[a]:W[a]},[[["imageRatio"],k("heroLayout",c,_,c.filter(t=>t!=="stacked"))],[["_gPreview","previewPick"],{all:[x,j]}]]),resolveFields:(t,{fields:e})=>{if(!N())return e;const l=Object.keys(e).filter(n=>!Q.has(n));return m(e,[[l,G]])},showWhenFacts:{...K,previewsNoTemplateProduct:(t,{appState:e})=>!V(e)}};export{Ee as ProductHeroFields};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as t}from"react/jsx-runtime";import{RELATED_CARDS_MIN as a,RELATED_CARDS_MAX as f,RELATED_CARDS_DEFAULT as R}from"../../../../../../render/lib/catalog/related-cards.js";import{RELATIONSHIP_OPTIONS as _,DEFAULT_RELATIONSHIP as i,RELATIONSHIPS as p,CARD_ROWS_NOT_ON_A_TYRE as T}from"../../../../../../render/lib/catalog/relationships.js";import{EyeIcon as E,HashIcon as A,ColumnsIcon as
|
|
1
|
+
import{jsx as t}from"react/jsx-runtime";import{RELATED_CARDS_MIN as a,RELATED_CARDS_MAX as f,RELATED_CARDS_DEFAULT as R}from"../../../../../../render/lib/catalog/related-cards.js";import{RELATIONSHIP_OPTIONS as _,DEFAULT_RELATIONSHIP as i,RELATIONSHIPS as p,CARD_ROWS_NOT_ON_A_TYRE as T}from"../../../../../../render/lib/catalog/relationships.js";import{EyeIcon as E,HashIcon as A,ColumnsIcon as S}from"efficient-easel/icons";import{text as n,textarea as e,linkField as c,cardMediaFields as L,cardStyleFields as D}from"efficient-web-builder/editor/lib/document/controls";import{group as r}from"efficient-easel/screen/lib/document/box-fields";import{select as F,slider as m}from"efficient-web-builder/editor/lib/document/box-fields";import{headFieldsForPlacement as I,SPLITTABLE_SECTIONS as P}from"efficient-web-builder/format/lib/sections/section-head-placement";import{PH as d}from"efficient-web-builder/format/lib/document/blocks/placeholders";import{PRODUCTGRID_PH as u}from"../../../../../../render/lib/document/blocks/commerce/placeholders.js";import{withRowsShownWhen as C}from"efficient-web-builder/render/lib/document/show-when";import{RELATEDPRODUCTS_PH as s}from"../../../../../../render/lib/document/blocks/commerce/RelatedProducts/meta.js";const H={not:{field:"relationship",in:p.filter(o=>o.to==="tyre").map(o=>o.key),default:i}},G={fields:{_gHeader:r("Header"),num:n("Number",u.num),title:e("Heading",d.sectionHeading),description:e("Body",d.body),_gFootnote:r("Footnote"),footnote:e("Footnote",s.footnote),footnoteLinkText:n("Footnote button",s.footnoteLinkText),footnoteLinkHref:c("Footnote link"),...L(),...D(),_gLayout:r("Grid"),relationship:F("Show",t(E,{}),_,i),cardCount:m("Cards to show",t(A,{}),a,f,1,R),columns:m("Columns",t(S,{}),2,4,1,3)},resolveFields:(o,{fields:l,parent:O})=>I(C(l,T,H),o.props.headPlacement,P.RelatedProducts.headRows)};export{G as RelatedProductsFields};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as l}from"react/jsx-runtime";import{headerKeysOfPlace as T,LAYOUT_FIELD_KEYS as
|
|
1
|
+
import{jsx as l}from"react/jsx-runtime";import{headerKeysOfPlace as T,LAYOUT_FIELD_KEYS as P,SECTION_THEME_FIELD_KEYS as w,SECTION_SHAPE_FIELD_KEYS as I,SECTION_ANIM_FIELD_KEYS as F}from"efficient-web-builder/editor/lib/document/field-groups";import{getWheelBySlug as b}from"../../../../../../render/lib/wheels/wheels.js";import N from"../../../../../components/SpecTableSource.js";import{ProductFieldIcon as R,FinishIcon as _,DiagramIcon as C}from"efficient-easel/icons";import{toggle as g,text as L,textarea as u,sourceField as A,plainText as d}from"efficient-web-builder/editor/lib/document/controls";import{group as s}from"efficient-easel/screen/lib/document/box-fields";import{select as f}from"efficient-web-builder/editor/lib/document/box-fields";import{isEditorOnDynamicPage as H}from"efficient-web-builder/format/lib/document/editor-page-context";import{headFieldsForPlacement as B,SPLITTABLE_SECTIONS as x}from"efficient-web-builder/format/lib/sections/section-head-placement";import{truthy as n,withRowRules as E}from"efficient-web-builder/render/lib/document/show-when";import{BOUND_TO_THE_RECORD as v,BOUND_TO_THE_RECORD_ROW as K,ON_DYNAMIC_PAGE_ROW as Y,PAGE_FACTS as U}from"../page-rules.js";import{SPECTABLE_PH as m,SpecTableSlots as W}from"../../../../../../render/lib/document/blocks/commerce/SpecTable/meta.js";const j="Size (blank = none selected)",z=new Set([...T("Content"),"_gDynamic","dynamic","_gHeader","num","title","description","_gDiagram","showDiagram","template",...P,...w,...I,...F]),M={not:v},c={any:[{all:[n("source.slug"),n("source.spec")]},{all:[{not:n("source.slug")},n("wheel")]}]},re={fields:E({...W,_gDynamic:s("Product page"),dynamic:g("Connect to product data",!1,l(R,{})),_gHeader:s("Header"),num:L("Number",m.num),title:u("Heading",m.title),description:u("Body",m.description),_gData:s("Product"),source:A(N),finish:f("Finish",l(_,{}),[],""),size:{type:"text",label:j},_gDiagram:s("Diagram"),showDiagram:g("Dimension diagram",!0,l(C,{})),_gRows:s("Rows"),rows:{type:"array",label:"Rows",arrayFields:{label:d("Label"),value:d("Value")},defaultItemProps:{label:"Label",value:""},getItemSummary:o=>o?.label||o?.value||"Row"}},[[["_gDynamic","dynamic"],Y],[["finish","size"],c],[["_gDiagram","showDiagram"],{any:[K,c]}],[["_gRows","rows"],{not:c}]]),resolveFields:(o,{fields:h,parent:k})=>{const r=o.props,D=H(),S=t=>B(t,o.props.headPlacement,x.SpecTable.headRows),a=r.source,p=!a?.slug&&typeof r.wheel=="string"?r.wheel:"";let i=h;if(!(D&&r.dynamic)&&(a?.slug&&a.spec||p)){const t=a?.slug?a.finishes.map(e=>e.name):(b(p)?.finishes??[]).map(e=>e.name),O=[{value:"",label:"Default (first finish)"},...t.map(e=>({value:e,label:e}))];i={...i,finish:f("Finish",l(_,{}),O,"")}}const y=Object.keys(i).filter(t=>!z.has(t));return S(E(i,[[y,M]]))},showWhenFacts:U};export{re as SpecTableFields};
|