PageSourceSearch

https://tvkc.co.uk/assets/roll-of-honour-BjZfCMft.js

js tvkc.co.uk collected 2026-09-25 03:53:00 UTC 17,208 bytes, 1 lines download raw bytes

1import{r as s,j as e}from"./index-Dmb79ew_.js";import{P as S,a as b}from"./PageLayout-DEGThUlh.js";import{g as u}from"./grow-in-DwvXUcjE.js";import{T as E}from"./trophy-DeaC6y7_.js";import{A as J,m as p}from"./SmoothScroll-icIKq-Ax.js";import{S as g}from"./search-AomfnLyB.js";import"./menu-BFCzT2Bf.js";import"./useQuery-CzPl3ht9.js";import"./TvkcLogo-DCiov0Us.js";import"./chevron-down-W4D29hVR.js";const v=[{driver:"Lewis Hamilton",class:"Comer Cadet",year:"1996",achievement:"7× Formula 1 World Champion. The very first TVKC champion went on to become the greatest driver in F1 history."},{driver:"Oliver Rowland",class:"Comer",year:"2002",achievement:"Formula 2 runner-up, Formula E race winner, and current Formula E World Champion. One of British motorsport's finest exports."},{driver:"Tom Gamble",class:"Junior Max",year:"2014",achievement:"British GT Champion and one of the UK's most exciting endurance racing talents, competing at the highest level in GT3."},{driver:"Matthew Parry",class:"Junior Max",year:"2010",achievement:"GP3 Series competitor and rising single-seater star who progressed through the European racing ladder after his TVKC title."}],n=[{class:"COMER",year:"1996",driver:"Lewis Hamilton"},{class:"COMER",year:"1997",driver:"James Bean"},{class:"COMER",year:"1998",driver:"Danny Cruttenden"},{class:"COMER",year:"1999",driver:"Philip English"},{class:"COMER",year:"2000",driver:"Jack Linfoot"},{class:"COMER",year:"2001",driver:"Daniel Rowbottom"},{class:"COMER",year:"2002",driver:"Oliver Rowland"},{class:"COMER",year:"2003",driver:"James Godbehere"},{class:"COMER",year:"2004",driver:"Chris Warburton"},{class:"COMER",year:"2005",driver:"James Tunnicliffe"},{class:"COMER",year:"2006",driver:"Conor Llewellyn"},{class:"COMER",year:"2007",driver:"Conor Llewellyn"},{class:"COMER",year:"2008",driver:"Josh White"},{class:"IAME",year:"2009",driver:"Jacques Morley"},{class:"IAME",year:"2010",driver:"Ronan Quinn"},{class:"IAME",year:"2011",driver:"Eddie Hack"},{class:"IAME",year:"2012",driver:"Tom Wood"},{class:"IAME",year:"2013",driver:"Albert Carter"},{class:"IAME",year:"2014",driver:"Piers Henderson"},{class:"IAME",year:"2015",driver:"Owen Johnson"},{class:"IAME",year:"2016",driver:"Freddie Spindlow"},{class:"IAME",year:"2017",driver:"Freddie Spindlow"},{class:"IAME",year:"2018",driver:"Taylor Orridge"},{class:"WATERSWIFT (RESTRICTED)",year:"2023",driver:"Enzo Buttarazzi"},{class:"WATERSWIFT (RESTRICTED)",year:"2024",driver:"Chester Forkes"},{class:"WATERSWIFT (RESTRICTED)",year:"2025",driver:"Reggie Chandler"},{class:"WTP",year:"2005",driver:"Ashley Bibby"},{class:"WTP",year:"2006",driver:"Sam Clarence"},{class:"WTP",year:"2007",driver:"Brad Fairhurst"},{class:"WTP",year:"2008",driver:"Harry Woodhead"},{class:"WTP",year:"2009",driver:"Bradley Shaw"},{class:"WTP",year:"2010",driver:"Sean Gee"},{class:"WTP",year:"2011",driver:"Lewis Brown"},{class:"WTP",year:"2012",driver:"Mario Mills"},{class:"HONDA",year:"2011",driver:"Jonathan Paylor"},{class:"HONDA",year:"2012",driver:"Charlie Lamb"},{class:"HONDA",year:"2013",driver:"Nicholas Reeve"},{class:"HONDA",year:"2014",driver:"Harry Thompson"},{class:"HONDA",year:"2015",driver:"Ben Fayers"},{class:"HONDA",year:"2016",driver:"Dylan Cooper"},{class:"HONDA",year:"2017",driver:"Lucas Ellingham"},{class:"HONDA",year:"2018",driver:"Theo Micouris"},{class:"MICRO MAX",year:"2023",driver:"Harry Taylor"},{class:"MICRO MAX",year:"2024",driver:"Charlie Page"},{class:"MICRO MAX",year:"2025",driver:"Jenson Darlow"},{class:"MINI MAX",year:"2003",driver:"Paul Marsh"},{class:"MINI MAX",year:"2004",driver:"Richard Mitcham"},{class:"MINI MAX",year:"2005",driver:"Conor Stephenson"},{class:"MINI MAX",year:"2006",driver:"Bill Cowley"},{class:"MINI MAX",year:"2007",driver:"Josh Parker"},{class:"MINI MAX",year:"2008",driver:"Scott Robertson"},{class:"MINI MAX",year:"2009",driver:"Luke Whitehead"},{class:"MINI MAX",year:"2010",driver:"Harry Webb"},{class:"MINI MAX",year:"2011",driver:"Jordan Baines"},{class:"MINI MAX",year:"2012",driver:"Lewis Brown"},{class:"MINI MAX",year:"2013",driver:"Luca Vaus"},{class:"MINI MAX",year:"2014",driver:"Rory Hudson"},{class:"MINI MAX",year:"2015",driver:"Jamie Rogers"},{class:"MINI MAX",year:"2016",driver:"Jamie Rogers"},{class:"MINI MAX",year:"2017",driver:"Owen Johnson"},{class:"MINI MAX",year:"2018",driver:"Marcus Littlewood"},{class:"MINI MAX 950",year:"2023",driver:"Noah Barham"},{class:"MINI MAX 950",year:"2024",driver:"Max Gilman"},{class:"MINI MAX 950",year:"2025",driver:"Akille Giannone"},{class:"X30 MINI",year:"2017",driver:"Alex Ley"}
1,{class:"X30 MINI",year:"2018",driver:"Lucas Ellingham"},{class:"WATERSWIFT",year:"2023",driver:"Zac Champney"},{class:"WATERSWIFT",year:"2024",driver:"Max Mason"},{class:"WATERSWIFT",year:"2025",driver:"Enzo Buttarazzi"},{class:"JUNIOR MAX",year:"2001",driver:"Daniel Hart"},{class:"JUNIOR MAX",year:"2002",driver:"Jack Danby"},{class:"JUNIOR MAX",year:"2003",driver:"Philip English"},{class:"JUNIOR MAX",year:"2004",driver:"Chris Brown"},{class:"JUNIOR MAX",year:"2005",driver:"Robert Foster"},{class:"JUNIOR MAX",year:"2006",driver:"Luke Varley"},{class:"JUNIOR MAX",year:"2007",driver:"Nick Wones"},{class:"JUNIOR MAX",year:"2008",driver:"Josh Parker"},{class:"JUNIOR MAX",year:"2009",driver:"Sam Clarence"},{class:"JUNIOR MAX",year:"2010",driver:"Matthew Parry"},{class:"JUNIOR MAX",year:"2011",driver:"Thomas Taylor"},{class:"JUNIOR MAX",year:"2012",driver:"George Line"},{class:"JUNIOR MAX",year:"2013",driver:"Lewis King"},{class:"JUNIOR MAX",year:"2014",driver:"Tom Gamble"},{class:"JUNIOR MAX",year:"2015",driver:"Max Bird"},{class:"JUNIOR MAX",year:"2016",driver:"Ethan Ling"},{class:"JUNIOR MAX",year:"2017",driver:"Ben Burgess"},{class:"JUNIOR MAX",year:"2018",driver:"James Winter"},{class:"JUNIOR MAX",year:"2023",driver:"Lloyd Hare"},{class:"JUNIOR MAX",year:"2024",driver:"Harry Freeman"},{class:"JUNIOR MAX",year:"2025",driver:"Jake Flewitt"},{class:"JUNIOR TKM",year:"1996",driver:"Jonathan Davies"},{class:"JUNIOR TKM",year:"1997",driver:"Chris Rogers"},{class:"JUNIOR TKM",year:"1998",driver:"Mark Litchfield"},{class:"JUNIOR TKM",year:"1999",driver:"James Gornall"},{class:"JUNIOR TKM",year:"2000",driver:"Ryan Furner"},{class:"JUNIOR TKM",year:"2001",driver:"Luke Mellar"},{class:"JUNIOR TKM",year:"2002",driver:"Adam Chandler"},{class:"JUNIOR TKM",year:"2003",driver:"Lee Bell"},{class:"JUNIOR TKM",year:"2004",driver:"Lewis Scothern"},{class:"JUNIOR TKM",year:"2005",driver:"James Tucker"},{class:"JUNIOR TKM",year:"2010",driver:"Brandon Hunt"},{class:"JUNIOR TKM",year:"2012",driver:"Matthew Round-Gorrido"},{class:"JUNIOR TKM",year:"2013",driver:"Matthew Round-Gorrido"},{class:"X30 JUNIOR",year:"2014",driver:"Oliver Greetham"},{class:"X30 JUNIOR",year:"2015",driver:"Alfie Brown"},{class:"X30 JUNIOR",year:"2016",driver:"Ethan Hawkey"},{class:"X30 JUNIOR",year:"2017",driver:"Alessandro Ceronetti"},{class:"X30 JUNIOR",year:"2018",driver:"Axel La Flamme"},{class:"X30 JUNIOR",year:"2023",driver:"Charlie Morrison-Jones"},{class:"X30 JUNIOR",year:"2024",driver:"Jorge Edgar"},{class:"X30 JUNIOR",year:"2025",driver:"Maisy Creed"},{class:"FORMULA JICA",year:"1996",driver:"Mike Spencer"},{class:"FORMULA JICA",year:"1997",driver:"Mike Spencer"},{class:"FORMULA JICA",year:"1998",driver:"Chris Rogers"},{class:"FORMULA JICA",year:"1999",driver:"Michael Simpson"},{class:"FORMULA JICA",year:"2000",driver:"Liam Walters"},{class:"FORMULA JICA",year:"2001",driver:"Robert Souster"},{class:"FORMULA JICA",year:"2002",driver:"Craig Dolby"},{class:"FORMULA JICA",year:"2003",driver:"Kieren Clark"},{class:"FORMULA JICA",year:"2005",driver:"Richard Bradley"},{class:"FORMULA JICA",year:"2006",driver:"Ashley Bibby"},{class:"FORMULA JICA",year:"2007",driver:"Russell Danzey"},{class:"KF3",year:"2008",driver:"Alex Walker"},{class:"KF3",year:"2009",driver:"Ollie Walker"},{class:"KF3",year:"2010",driver:"Luke Whitehead"},{class:"KF3",year:"2011",driver:"Alex Taylor"},{class:"SENIOR TKM",year:"1996",driver:"Steven Thompson"},{class:"SENIOR TKM",year:"1997",driver:"Steven Thompson"},{class:"SENIOR TKM",year:"1998",driver:"James Harris"},{class:"SENIOR TKM",year:"1999",driver:"Jonathan Davies"},{class:"SENIOR TKM",year:"2000",driver:"Jonathan Davies"},{class:"SENIOR TKM",year:"2001",driver:"James Gornall"},{class:"SENIOR TKM",year:"2002",driver:"Stephen Lane"},{class:"SENIOR TKM",year:"2003",driver:"Stephen Lane"},{class:"SENIOR TKM",year:"2004",driver:"Andrew Wilkinson"},{class:"SENIOR TKM",year:"2005",driver:"Lewis Scothern"},{class:"SENIOR TKM",year:"2006",driver:"Andrew Martin"},{class:"177 MAX",year:"2007",driver:"Mark Wimbleton"},{class:"177 MAX",year:"2008",driver:"Phil Brown"},{class:"177 MAX",year:"2009",driver:"Ian Rumbold"},{class:"177 MAX",year:"2010",driver:"Ian Rumbold"},{class:"177 MAX",year:"2011",driver:"Tom Pyttlik"},{class:"177 MAX",year:"2012",driver:"Justin Clarke"},{class:"SENIOR MAX",year:"2000",driver:"Michael Simpson"},{class:"SENIOR MAX",year:"2001",driver:"Tom Rossiter"},{class:"SENIOR MAX",year:"2002",driver:"James Clink"},{class:"SENIOR MAX",year:"2003",driver:"Sam Smeeth"},{class:"SENIOR MAX",year:"2004",driver:"Stephen Lane"},{class:"SENIOR MAX",year:"2005",driver:"Stephen Lane"},{class:"SENIOR MAX",year:"2006",driver:"Benjy Russell"},{class:"SENIOR MAX",year:"2007",driver:"Chris Lock"},{class:"SENIOR MAX",year:"2008",driver:"Lee Jenner"},{class:"SENIOR MAX",year:"2009",driver:"Andrew Vizard"},{class:"SENIOR MAX",year:"2010",driver:"Chris Lawrence"},{class:"SENIOR MAX",year:"2011",driver:"Chris Lawrence"},{class:"SENIOR MAX",year:"2012",driver:"Josh Gardner"},{class:"SENIOR MAX",year:"2013",driver:"Connor OBrien"},{class:"SENIOR MAX",year:"2014",driver:"Ollie Varney"},{class:"SENIOR MAX",year:"2015",driver:"James Lingard"},{class:"SENIOR MAX",year:"2023",driver:"George Holbrook"}
1,{class:"SENIOR MAX",year:"2024",driver:"Lucas Ellingham"},{class:"SENIOR MAX",year:"2025",driver:"James Tester"},{class:"X30 SENIOR",year:"2014",driver:"Chris Trott"},{class:"X30 SENIOR",year:"2015",driver:"Levi King"},{class:"X30 SENIOR",year:"2016",driver:"Levi King"},{class:"X30 SENIOR",year:"2017",driver:"Derek Morgan"},{class:"X30 SENIOR",year:"2018",driver:"Sean Butcher"},{class:"X30 SENIOR",year:"2023",driver:"Gus Lawrence"},{class:"X30 SENIOR",year:"2024",driver:"Henry Gregory"},{class:"X30 SENIOR",year:"2025",driver:"Joey Brown"},{class:"100 NATIONAL",year:"1996",driver:"James Mills"},{class:"100 NATIONAL",year:"1997",driver:"Kato Adams"},{class:"100 NATIONAL",year:"1998",driver:"Andrew Spencer"},{class:"100 NATIONAL",year:"1999",driver:"Kato Adams"},{class:"100 NATIONAL",year:"2000",driver:"Chris Seggie"},{class:"100 NATIONAL",year:"2001",driver:"Martin Farmer"},{class:"100 NATIONAL",year:"2002",driver:"Benjy Russell"},{class:"100 NATIONAL",year:"2003",driver:"Danile Hart"},{class:"100 NATIONAL",year:"2004",driver:"Shawn Hetherington"},{class:"100 NATIONAL",year:"2005",driver:"Callum Davis"},{class:"100 NATIONAL",year:"2006",driver:"Ryan Cole"},{class:"FORMULA ICA",year:"1996",driver:"Jim Rainbird"},{class:"FORMULA ICA",year:"1997",driver:"Adam Lichtig"},{class:"FORMULA ICA",year:"1998",driver:"Mike Spencer"},{class:"FORMULA ICA",year:"1999",driver:"Mark Litchfield"},{class:"FORMULA ICA",year:"2000",driver:"Nick Newman"},{class:"FORMULA ICA",year:"2001",driver:"Nick Newman"},{class:"FORMULA ICA",year:"2002",driver:"Jamie Croxford"},{class:"FORMULA ICA",year:"2003",driver:"Robert Souster"},{class:"FORMULA ICA",year:"2004",driver:"Kieren Clark"},{class:"FORMULA ICA",year:"2005",driver:"Adam Batch"},{class:"FORMULA ICA",year:"2006",driver:"Benjy Russell"}];function B(){const[A,h]=s.useState(0),[l,I]=s.useState("ALL"),[i,N]=s.useState("ALL"),[o,R]=s.useState(""),[m,d]=s.useState(!1),M=25;s.useEffect(()=>{const r=setInterval(()=>{h(a=>(a+1)%v.length)},5e3);return()=>clearInterval(r)},[]);const L=s.useMemo(()=>["ALL",...Array.from(new Set(n.map(r=>r.class))).sort()],[]),C=s.useMemo(()=>["ALL",...Array.from(new Set(n.map(r=>r.year))).sort((r,a)=>Number(a)-Number(r))],[]),c=s.useMemo(()=>n.filter(r=>!(l!=="ALL"&&r.class!==l||i!=="ALL"&&r.year!==i||o&&!r.driver.toLowerCase().includes(o.toLowerCase())&&!r.class.toLowerCase().includes(o.toLowerCase()))),[l,i,o]),t=l!=="ALL"||i!=="ALL"||!!o,x=t||m?c:c.slice(0,M),O=!t&&!m&&c.length>M,y=v[A];return e.jsx(S,{eyebrow:"Champions",title:"Roll of Honour",intro:"Every TVKC Club Champion since 1996. The roll begins with a 12-year-old future Formula 1 World Champion — and the legacy hasn't stopped there.",heroImage:"tvkc-honour",children:e.jsxs(b,{children:[e.jsxs("div",{className:"mb-16 rounded-3xl overflow-hidden relative",style:{background:"var(--tarmac)",minHeight:240},children:[e.jsx(E,{className:"absolute -right-8 -bottom-8 opacity-[0.06]",size:280}),e.jsx(J,{mode:"wait",children:e.jsxs(p.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},exit:{opacity:0,y:-16},transition:{duration:.5},className:"p-8 md:p-12",children:[e.jsxs("div",{className:"eyebrow mb-3",style:{color:"var(--brand)"},children:[y.year," · ",y.class]}),e.jsx("h2",{className:"font-display text-4xl md:text-6xl text-white mb-4",children:y.driver}),e.jsx("p",{className:"opacity-70 max-w-2xl normal-case text-white",children:y.achievement})]},A)}),e.jsx("div",{className:"absolute bottom-6 left-8 md:left-12 flex gap-2",children:v.map((r,a)=>e.jsx("button",{onClick:()=>h(a),className:"w-2 h-2 rounded-full transition-all",style:{background:a===A?"var(--brand)":"rgba(255,255,255,0.3)"},"aria-label":`Show ${v[a].driver}`},a))})]}),e.jsxs("div",{className:"flex flex-wrap gap-3 mb-6 items-end",children:[e.jsxs("div",{className:"relative flex-1 min-w-[180px]",children:[e.jsx(g,{size:15,className:"absolute left-3 top-1/2 -translate-y-1/2 opacity-40"}),e.jsx("input",{type:"text",placeholder:"Search driver or class…",value:o,onChange:r=>{R(r.target.value),d(!1)},className:"w-full pl-9 pr-4 py-2.5 text-sm rounded-xl border border-black/10 bg-white normal-case focus:outline-none focus:border-[color:var(--brand)]",style:{color:"var(--tarmac)"}})]}
1),e.jsx("select",{value:l,onChange:r=>{I(r.target.value),d(!1)},className:"px-4 py-2.5 text-sm rounded-xl border border-black/10 bg-white normal-case focus:outline-none focus:border-[color:var(--brand)] cursor-pointer",style:{color:"var(--tarmac)"},children:L.map(r=>e.jsx("option",{value:r,children:r==="ALL"?"All Classes":r},r))}),e.jsx("select",{value:i,onChange:r=>{N(r.target.value),d(!1)},className:"px-4 py-2.5 text-sm rounded-xl border border-black/10 bg-white normal-case focus:outline-none focus:border-[color:var(--brand)] cursor-pointer",style:{color:"var(--tarmac)"},children:C.map(r=>e.jsx("option",{value:r,children:r==="ALL"?"All Years":r},r))}),t&&e.jsx("button",{onClick:()=>{I("ALL"),N("ALL"),R(""),d(!1)},className:"px-4 py-2.5 text-sm rounded-xl border border-black/10 hover:border-[color:var(--brand)] transition-colors normal-case",style:{color:"var(--tarmac)"},children:"Clear filters"})]}),e.jsxs("p",{className:"text-xs uppercase tracking-widest opacity-50 mb-4",children:[c.length," ",c.length===1?"entry":"entries",l!=="ALL"&&` · ${l}`,i!=="ALL"&&` · ${i}`]}),e.jsxs("div",{className:"rounded-2xl overflow-hidden border border-black/10",children:[e.jsxs("div",{className:"px-6 py-4 grid grid-cols-12 gap-4 text-xs uppercase tracking-widest opacity-60",style:{backgroundColor:"var(--graphite)",color:"#fff"},children:[e.jsx("div",{className:"col-span-4",children:"Class"}),e.jsx("div",{className:"col-span-2",children:"Year"}),e.jsx("div",{className:"col-span-6",children:"Driver"})]}),c.length===0?e.jsx("div",{className:"px-6 py-12 text-center opacity-50 text-sm normal-case",children:"No entries match your filters."}):x.map((r,a)=>e.jsxs(p.div,{...u,transition:{...u.transition,delay:Math.min(a*.015,.3)},className:"px-6 py-4 grid grid-cols-12 gap-4 border-t border-black/5 transition-colors",style:{backgroundColor:a%2===0?"#ffffff":"color-mix(in oklab, var(--tarmac) 3%, white)"},children:[e.jsx("div",{className:"col-span-4 font-display text-sm",style:{color:"var(--brand)"},children:r.class}),e.jsx("div",{className:"col-span-2 font-display text-sm opacity-60",style:{color:"var(--tarmac)"},children:r.year}),e.jsx("div",{className:"col-span-6 font-display text-lg",style:{color:"var(--tarmac)"},children:r.driver})]},`${r.class}-${r.year}-${r.driver}`))]}),e.jsxs("div",{className:"mt-6 flex flex-col sm:flex-row items-center justify-between gap-4",children:[e.jsxs("p",{className:"text-xs opacity-40 normal-case",children:[O?`Showing ${M} of ${n.length} entries`:`All ${c.length} entries shown`," ·"," ",n.length," total across all classes · 1996–2025"]}),O&&e.jsxs("button",{onClick:()=>d(!0),className:"px-6 py-2.5 text-sm font-semibold uppercase tracking-widest rounded-2xl transition-transform hover:scale-105",style:{background:"var(--brand)",color:"#fff"},children:["Show all ",n.length," entries"]}),m&&!t&&e.jsx("button",{onClick:()=>d(!1),className:"px-6 py-2.5 text-sm font-semibold uppercase tracking-widest rounded-2xl border border-black/20 hover:border-[color:var(--brand)] transition-colors",style:{color:"var(--tarmac)"},children:"Show less"})]})]})})}export{B as component};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.