1import{o as S,r as o,s as I,j as t,H as F,N as K,m as x,L as G,M as A,F as E,I as V}from"./index-CzwC4j7R.js";import{c as q}from"./calculator-hero-vBW13CWF.js";import{a as U,G as $,M as B,b as j}from"./esm-D3XaTFwf.js";import{C as _,c as v,a as R,b as W}from"./card-CivCEG21.js";import{B as H}from"./badge-BjEfHPDp.js";import{A as J}from"./arrow-left-DIOlvo1Z.js";import{S as Y}from"./search-D_ZKOQ8N.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const Q=S("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);/** 7 * @license lucide-react v0.462.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */const D=S("Store",[["path",{d:"m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7",key:"ztvudi"}],["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8",key:"1b2hhj"}],["path",{d:"M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4",key:"2ebpfo"}],["path",{d:"M2 7h20",key:"1fcdvo"}],["path",{d:"M22 7v3a2 2 0 0 1-2 2a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12a2 2 0 0 1-2-2V7",key:"6c3vgh"}]]);/** 12 * @license lucide-react v0.462.0 - ISC 13 * 14 * This source code is licensed under the ISC license. 15 * See the LICENSE file in the root directory of this source tree. 16 */const k=S("TramFront",[["rect",{width:"16",height:"16",x:"4",y:"3",rx:"2",key:"1wxw4b"}],["path",{d:"M4 11h16",key:"mpoxn0"}],["path",{d:"M12 3v8",key:"1h2ygw"}],["path",{d:"m8 19-2 3",key:"13i0xs"}],["path",{d:"m18 22-2-3",key:"1p0ohu"}],["path",{d:"M8 15h.01",key:"a7atzg"}],["path",{d:"M16 15h.01",key:"rnfrdf"}]]),C=[{name:"Adamstown station",lat:-32.928,lng:151.7295,type:"tod_station",lga:"Newcastle"},{name:"Albion Park town centre (Tongarra Road)",lat:-34.571,lng:150.7785,type:"lmr_town_centre",lga:"Shellharbour"},{name:"Annandale town centre (Booth Street)",lat:-33.883,lng:151.17,type:"lmr_town_centre",lga:"Inner West"},{name:"Arncliffe station",lat:-33.9367,lng:151.1471,type:"lmr_station",lga:"Bayside"},{name:"Artarmon station",lat:-33.8087,lng:151.1854,type:"lmr_station",lga:"Willoughby"},{name:"Ashfield station",lat:-33.8874,lng:151.1263,type:"tod_station",lga:"Inner West"},{name:"Asquith town centre",lat:-33.6879,lng:151.1099,type:"lmr_town_centre",lga:"Hornsby"},{name:"Auburn station and town centre",lat:-33.8493,lng:151.0329,type:"lmr_station",lga:"Cumberland"},{name:"Balgowlah Stockland shopping centre",lat:-33.797,lng:151.2615,type:"lmr_town_centre",lga:"Northern Beaches"},{name:"Banksia station",lat:-33.9432,lng:151.1452,type:"tod_station",lga:"Bayside"},{name:"Bankstown station",lat:-33.9185,lng:151.0352,type:"lmr_station",lga:"Canterbury Bankstown"},{name:"Baulkham Hills town centre",lat:-33.7589,lng:150.9927,type:"lmr_town_centre",lga:"The Hills"},{name:"Bella Vista station",lat:-33.7395,lng:150.95,type:"lmr_station",lga:"The Hills"},{name:"Belmont town centre",lat:-33.053,lng:151.661,type:"lmr_town_centre",lga:"Lake Macquarie"},{name:"Berala station and town centre",lat:-33.8644,lng:151.0339,type:"tod_station",lga:"Cumberland"},{name:"Beverly Hills station",lat:-33.9487,lng:151.0812,type:"lmr_station",lga:"Canterbury Bankstown"},{name:"Bexley North station",lat:-33.9439,lng:151.1297,type:"lmr_station",lga:"Bayside"},{name:"Blacktown station and town centre",lat:-33.7681,lng:150.9068,type:"lmr_station",lga:"Blacktown"},{name:"Bomaderry town centre (Meroo Street)",lat:-34.848,lng:150.606,type:"lmr_town_centre",lga:"Shoalhaven"},{name:"Bondi Junction station and town centre",lat:-33.8912,lng:151.2474,type:"lmr_station",lga:"Waverley"},{name:"Boolaroo town centre (Main Road)",lat:-32.952,lng:151.608,type:"lmr_town_centre",lga:"Lake Macquarie"},{name:"Boronia Park town centre (Pittwater Road)",lat:-33.813,lng:151.15,type:"lmr_town_centre",lga:"Hunters Hill"},{name:"Broadway shopping centre and Glebe Point Road south",lat:-33.8838,lng:151.1952,type:"lmr_town_centre",lga:"Sydney"},{name:"Burwood station and town centre",lat:-33.8773,lng:151.1039,type:"lmr_station",lga:"Burwood"},{name:"Cabramatta station and town centre",lat:-33.895,lng:150.9371,type:"lmr_station",lga:"Fairfield"},{name:"Camden town centre",lat:-34.054,lng:150.696,type:"lmr_town_centre",lga:"Camden"},{name:"Campbelltown station and town centre",lat:-34.066,lng:150.815,type:"lmr_station",lga:"Campbelltown"},{name:"Canley Vale station",lat:-33.8847,lng:150.947,type:"lmr_station",lga:"Fairfield"},{name:"Cardiff station",lat:-32.9489,lng:151.6667,type:"tod_station",lga:"Lake Macquarie"},{name:"Caringbah station and town centre",lat:-34.0417,lng:151.1218,type:"lmr_station",lga:"Sutherland"},{name:"Carlingford Court shopping centre",lat:-33.783,lng:151.049,type:"lmr_town_centre",lga:"City of Parramatta"},{name:"Castle Hill station and town centre",lat:-33.7311,lng:151.0053,type:"lmr_station",lga:"The Hills"},{name:"Cessnock town centre",lat:-32.832,lng:151.353,type:"lmr_town_centre",lga:"Cessnock"},{name:"Charlestown shopping centre",lat:-32.961,lng:151.694,type:"lmr_town_centre",lga:"Lake Macquarie"},{name:"Chatswood station and town centre",lat:-33.798,lng:151.1805,type:"lmr_station",lga:"Willoughby"},{name:"Chester Hill Shopping Centre",lat:-33.8832,lng:150.998,type:"lmr_town_centre",lga:"Canterbury Bankstown"},{name:"Concord West station",lat:-33.838,lng:151.0849,type:"lmr_station",lga:"Canada Bay"},{name:"Concord town centre (Majors Bay Road)",lat:-33.8595,lng:151.1035,type:"lmr_town_centre",lga:"Canada Bay"},{name:"Corrimal town centre",lat:-34.377,lng:150.898,type:"lmr_town_centre",lga:"Wollongong"},{name:"Cremorne town centre",lat:-33.827,lng:151.228,type:"lmr_town_centre",lga:"North Sydney"},{name:"Cronulla station and town centre",lat:-34.0547,lng:151.151,type:"lmr_station",lga:"Sutherland"},{name:"Crows Nest station",lat:-33.826,lng:151.2005,type:"lmr_station",lga:"North Sydney"},{name:"Croydon station",lat:-33.8835,lng:151.1163,type:"tod_station",lga:"Burwood"},{name:"Dapto town centre",lat:-34.5011,lng:150.7949,type:"lmr_town_centre",lga:"Wollongong"},{name:"Darlinghurst and Paddington town centre (Oxford Street)",lat:-33.8807,lng:151.2249,type:"lmr_town_centre",lga:"Sydney"},{name:"Dee Why town centre",lat:-33.7505,lng:151.287,type:"lmr_town_centre",lga:"Northern Beaches"},{name:"Doonside station",lat:-33.7678,lng:150.8705,type:"lmr_station",lga:"Blacktown"},{name:"Double Bay town centre",lat:-33.878,lng:151.244,type:"lmr_town_centre",lga:"Woollahra"},{name:"Drummoyne town centre",lat:-33.851,lng:151.154,type:"lmr_town_centre",lga:"Canada Bay"},{name:"Dulwich Hill station",lat:-33.9064,lng:151.1387,type:"tod_station",lga:"Inner West"},{name:"Eastwood station and town centre",lat:-33.7906,lng:151.0813,type:"lmr_station",lga:"Ryde"},{name:"Edgecliff station and town centre",lat:-33.8791,lng:151.237,type:"lmr_station",lga:"Woollahra"},{name:"Engadine town centre",lat:-34.064,lng:151.013,type:"lmr_town_centre",lga:"Sutherland"},{name:"Epping station and town centre",lat:-33.7729,lng:151.0815,type:"lmr_station",lga:"City of Parramatta"},{name:"Erina Fair shopping centre",lat:-33.437,lng:151.389,type:"lmr_town_centre",lga:"Central Coast"},{name:"Erskineville station and town centre (Erskineville Road)",lat:-33.9015,lng:151.1864,type:"lmr_station",lga:"Sydney"},{name:"Fairfield station and town centre",lat:-33.872,lng:150.9567,type:"lmr_station",lga:"Fairfield"},{name:"Fairy Meadow town centre",lat:-34.394,lng:150.894,type:"lmr_town_centre",lga:"Wollongong"},{name:"Five Dock town centre",lat:-33.8667,lng:151.1307,type:"lmr_town_centre",lga:"Canada Bay"},{name:"Flemington station",lat:-33.8656,lng:151.0697,type:"lmr_station",lga:"Cumberland"},{name:"Forestville town centre",lat:-33.758,lng:151.21,type:"lmr_town_centre",lga:"Northern Beaches"},{name:"Forestway shopping centre",lat:-33.748,lng:151.223,type:"lmr_town_centre",lga:"Northern Beaches"},{name:"Frenchs Forest Precinct (Warringah Road)",lat:-33.75,lng:151.229,type:"lmr_town_centre",lga:"Northern Beaches"},{name:"Gladesville town centre (Victoria Road)",lat:-33.831,lng:151.13,type:"lmr_town_centre",lga:"Ryde"},{name:"Glenfield station",lat:-33.971,lng:150.888,type:"lmr_station",lga:"Campbelltown"},{name:"Gordon station and town centre",lat:-33.7571,lng:151.152,type:"tod_station",lga:"Ku-ring-gai"},{name:"Gosford station and town centre",lat:-33.425,lng:151.342,type:"tod_station",lga:"Central Coast"},{name:"Granville station",lat:-33.8322,lng:151.0122,type:"lmr_station",lga:"Cumberland"},{name:"Green Hills Stockland shopping centre",lat:-32.743,lng:151.544,type:"lmr_town_centre",lga:"Maitland"},{name:"Green Point Village shopping centre",lat:-33.45,lng:151.36,type:"lmr_town_centre",lga:"Central Coast"},{name:"Gymea station",lat:-34.036,lng:151.085,type:"lmr_station",lga:"Sutherland"},{name:"Hamilton station",lat:-32.9218,lng:151.7438,type:"tod_station",lga:"Newcastle"}
16,{name:"Hills Showground station",lat:-33.7305,lng:150.9887,type:"lmr_station",lga:"The Hills"},{name:"Homebush station",lat:-33.8659,lng:151.0886,type:"lmr_station",lga:"Strathfield"},{name:"Hornsby station",lat:-33.7029,lng:151.099,type:"lmr_station",lga:"Hornsby"},{name:"Hurstville station and town centre",lat:-33.968,lng:151.102,type:"lmr_station",lga:"Georges River"},{name:"Ingleburn station and town centre",lat:-34.001,lng:150.865,type:"lmr_station",lga:"Campbelltown"},{name:"Jewellstown Plaza shopping centre",lat:-34.089,lng:150.826,type:"lmr_town_centre",lga:"Campbelltown"},{name:"Junction Fair shopping centre",lat:-32.943,lng:151.657,type:"lmr_town_centre",lga:"Lake Macquarie"},{name:"Kellyville station",lat:-33.718,lng:150.9563,type:"lmr_station",lga:"The Hills"},{name:"Kensington light rail station",lat:-33.9065,lng:151.2224,type:"lmr_station",lga:"Randwick"},{name:"Kiama town centre",lat:-34.672,lng:150.854,type:"lmr_town_centre",lga:"Kiama"},{name:"Killara station",lat:-33.7663,lng:151.1625,type:"tod_station",lga:"Ku-ring-gai"},{name:"Kings Cross station and town centre",lat:-33.8746,lng:151.2228,type:"lmr_station",lga:"Sydney"},{name:"Kingsford Juniors light rail station",lat:-33.9239,lng:151.2265,type:"lmr_station",lga:"Randwick"},{name:"Kirrawee station and town centre",lat:-34.0333,lng:151.072,type:"lmr_station",lga:"Sutherland"},{name:"Kogarah station and town centre",lat:-33.9632,lng:151.1329,type:"tod_station",lga:"Georges River"},{name:"Kotara station",lat:-32.9439,lng:151.6897,type:"tod_station",lga:"Newcastle"},{name:"Lane Cove town centre",lat:-33.815,lng:151.1682,type:"lmr_town_centre",lga:"Lane Cove"},{name:"Leichhardt Market Place shopping centre",lat:-33.883,lng:151.156,type:"lmr_town_centre",lga:"Inner West"},{name:"Lidcombe station",lat:-33.8639,lng:151.0457,type:"tod_station",lga:"Cumberland"},{name:"Lilyfield light rail station",lat:-33.8665,lng:151.1647,type:"lmr_station",lga:"Inner West"},{name:"Lindfield station and town centre",lat:-33.7763,lng:151.17,type:"tod_station",lga:"Ku-ring-gai"},{name:"Liverpool station",lat:-33.925,lng:150.924,type:"lmr_station",lga:"Liverpool"},{name:"Macarthur station and town centre",lat:-34.075,lng:150.813,type:"lmr_station",lga:"Campbelltown"},{name:"Macquarie Park station",lat:-33.7796,lng:151.1213,type:"lmr_station",lga:"Ryde"},{name:"Maitland town centre",lat:-32.733,lng:151.558,type:"lmr_town_centre",lga:"Maitland"},{name:"Manly Vale town centre",lat:-33.782,lng:151.271,type:"lmr_town_centre",lga:"Northern Beaches"},{name:"Manly town centre",lat:-33.7978,lng:151.2862,type:"lmr_town_centre",lga:"Northern Beaches"},{name:"Maroubra Junction town centre",lat:-33.938,lng:151.238,type:"lmr_town_centre",lga:"Randwick"},{name:"Marrickville station",lat:-33.9112,lng:151.1556,type:"tod_station",lga:"Inner West"},{name:"Mayfield town centre",lat:-32.899,lng:151.739,type:"lmr_town_centre",lga:"Newcastle"},{name:"Meadowbank station",lat:-33.8167,lng:151.0903,type:"lmr_station",lga:"Ryde"},{name:"Menai Marketplace shopping centre",lat:-34.015,lng:151.015,type:"lmr_town_centre",lga:"Sutherland"},{name:"Milsons Point station",lat:-33.8461,lng:151.2118,type:"lmr_station",lga:"North Sydney"},{name:"Minto station",lat:-34.036,lng:150.844,type:"lmr_station",lga:"Campbelltown"},{name:"Miranda station and town centre",lat:-34.0377,lng:151.1013,type:"lmr_station",lga:"Sutherland"},{name:"Mona Vale town centre",lat:-33.678,lng:151.303,type:"lmr_town_centre",lga:"Northern Beaches"},{name:"Morisset station and town centre",lat:-33.098,lng:151.492,type:"tod_station",lga:"Lake Macquarie"},{name:"Mortdale station and town centre",lat:-33.9585,lng:151.0735,type:"lmr_station",lga:"Georges River"},{name:"Mount Druitt station and town centre",lat:-33.7677,lng:150.8213,type:"lmr_station",lga:"Blacktown"},{name:"Narellan Town Centre shopping centre",lat:-34.048,lng:150.73,type:"lmr_town_centre",lga:"Camden"},{name:"Nelson Bay town centre",lat:-32.72,lng:152.145,type:"lmr_town_centre",lga:"Port Stephens"},{name:"Neutral Bay town centre",lat:-33.834,lng:151.219,type:"lmr_town_centre",lga:"North Sydney"},{name:"Newtown station and town centre (King Street and Enmore Road)",lat:-33.8968,lng:151.1791,type:"lmr_station",lga:"Inner West"},{name:"North Ryde station",lat:-33.7968,lng:151.1295,type:"lmr_station",lga:"Ryde"},{name:"North Strathfield station",lat:-33.8586,lng:151.0857,type:"lmr_station",lga:"Canada Bay"},{name:"Northbridge Plaza shopping centre (Sailors Bay Road)",lat:-33.812,lng:151.208,type:"lmr_town_centre",lga:"Willoughby"},{name:"Northmead Village shopping centre",lat:-33.793,lng:150.994,type:"lmr_town_centre",lga:"City of Parramatta"},{name:"Norwest station and town centre",lat:-33.7317,lng:150.9631,type:"lmr_station",lga:"The Hills"},{name:"Nowra town centre",lat:-34.876,lng:150.601,type:"lmr_town_centre",lga:"Sho
16alhaven"},{name:"Oatley station",lat:-33.9527,lng:151.0723,type:"lmr_station",lga:"Georges River"},{name:"Pennant Hills Market Place shopping centre",lat:-33.7372,lng:151.071,type:"lmr_town_centre",lga:"Hornsby"},{name:"Penrith station and town centre",lat:-33.751,lng:150.6873,type:"lmr_station",lga:"Penrith"},{name:"Penshurst station",lat:-33.9612,lng:151.0881,type:"lmr_station",lga:"Georges River"},{name:"Petersham station",lat:-33.8938,lng:151.1554,type:"lmr_station",lga:"Inner West"},{name:"Pymble station",lat:-33.7449,lng:151.144,type:"lmr_station",lga:"Ku-ring-gai"},{name:"Randwick town centre and light rail station",lat:-33.9143,lng:151.2401,type:"lmr_station",lga:"Randwick"},{name:"Raymond Terrace town centre",lat:-32.756,lng:151.735,type:"lmr_town_centre",lga:"Port Stephens"},{name:"Redfern station",lat:-33.8913,lng:151.1983,type:"lmr_station",lga:"Sydney"},{name:"Regents Park station",lat:-33.883,lng:151.018,type:"lmr_station",lga:"Canterbury Bankstown"},{name:"Riverwood station and town centre",lat:-33.9525,lng:151.0512,type:"lmr_station",lga:"Canterbury Bankstown"},{name:"Rockdale Plaza shopping centre",lat:-33.9525,lng:151.1405,type:"lmr_town_centre",lga:"Bayside"},{name:"Rockdale station and town centre",lat:-33.953,lng:151.1369,type:"tod_station",lga:"Bayside"},{name:"Rose Bay town centre (New South Head Road)",lat:-33.8718,lng:151.2624,type:"lmr_town_centre",lga:"Woollahra"},{name:"Roseville station",lat:-33.7842,lng:151.1773,type:"tod_station",lga:"Ku-ring-gai"},{name:"Rutherford Marketplace shopping centre",lat:-32.725,lng:151.53,type:"lmr_town_centre",lga:"Maitland"},{name:"Seven Hills station",lat:-33.7744,lng:150.9362,type:"lmr_station",lga:"Blacktown"},{name:"Shellharbour town centre",lat:-34.584,lng:150.867,type:"lmr_town_centre",lga:"Shellharbour"},{name:"Southgate shopping centre",lat:-33.95,lng:151.135,type:"lmr_town_centre",lga:"Bayside"},{name:"Spit Junction town centre (Military Road and Spit Road)",lat:-33.829,lng:151.244,type:"lmr_town_centre",lga:"Mosman"},{name:"St Ives Shopping Village shopping centre",lat:-33.731,lng:151.164,type:"lmr_town_centre",lga:"Ku-ring-gai"},{name:"St Leonards station",lat:-33.8231,lng:151.1947,type:"lmr_station",lga:"Willoughby"},{name:"St Peters station",lat:-33.9142,lng:151.1788,type:"lmr_station",lga:"Inner West"},{name:"Stanmore station",lat:-33.895,lng:151.1685,type:"lmr_station",lga:"Inner West"},{name:"Surry Hills south town centre (Crown Street and Cleveland Street)",lat:-33.8862,lng:151.212,type:"lmr_town_centre",lga:"Sydney"},{name:"Sutherland station and town centre",lat:-34.0308,lng:151.0574,type:"lmr_station",lga:"Sutherland"},{name:"The Entrance town centre",lat:-33.342,lng:151.497,type:"lmr_town_centre",lga:"Central Coast"},{name:"Thornleigh Marketplace shopping centre",lat:-33.7319,lng:151.0781,type:"lmr_town_centre",lga:"Hornsby"},{name:"Top Ryde shopping centre",lat:-33.8115,lng:151.118,type:"lmr_town_centre",lga:"Ryde"},{name:"Tuggerah Westfield shopping centre",lat:-33.308,lng:151.419,type:"lmr_town_centre",lga:"Central Coast"},{name:"Turramurra station and town centre",lat:-33.7317,lng:151.1298,type:"lmr_station",lga:"Ku-ring-gai"},{name:"Turrella station",lat:-33.933,lng:151.153,type:"tod_station",lga:"Bayside"},{name:"UNSW Anzac Parade light rail station",lat:-33.9178,lng:151.2332,type:"lmr_station",lga:"Randwick"},{name:"Victoria Cross station",lat:-33.84,lng:151.2075,type:"lmr_station",lga:"North Sydney"},{name:"Wahroonga station",lat:-33.7176,lng:151.1171,type:"lmr_station",lga:"Ku-ring-gai"},{name:"Waitara station",lat:-33.71,lng:151.104,type:"lmr_station",lga:"Hornsby"},{name:"Wallsend town centre",lat:-32.902,lng:151.667,type:"lmr_town_centre",lga:"Newcastle"},{name:"Waratah Village Shopping Centre",lat:-32.912,lng:151.723,type:"lmr_town_centre",lga:"Newcastle"},{name:"Warilla Grove shopping centre",lat:-34.556,lng:150.866,type:"lmr_town_centre",lga:"Shellharbour"},{name:"Warrawong town centre",lat:-34.484,lng:150.882,type:"lmr_town_centre",lga:"Wollongong"},{name:"Warringah Mall shopping centre",lat:-33.768,lng:151.267,type:"lmr_town_centre",lga:"Northern Beaches"},{name:"Waterloo town centre (Danks Street)",lat:-33.901,lng:151.21,type:"lmr_town_centre",lga:"Sydney"},{name:"Waverton station",lat:-33.8387,lng:151.1996,type:"lmr_station",lga:"North Sydney"},{name:"West Ryde station and town centre",lat:-33.8076,lng:151.0901,type:"lmr_station",lga:"Ryde"},{name:"Westmead station",lat:-33.8076,lng:150.9876,type:"lmr_station",lga:"City of Parramatta"},{name:"Winston Hills Mall shopping centre",lat:-33.778,lng:150.976,type:"lmr_town_centre",lga:"City of Parramatta"},{name:"Wollstonecraft station",lat:-33.8311,lng:151.195,type:"lmr_station",lga:"North Sydney"},{name:"Woolooware station",lat:-34.049,lng:151.137,type:"lmr_station",lga:"Sutherland"},{name:"Woy Woy station and town centre",lat:-33.485,lng:151.323,type:"tod_station",lga:"Central Coast"},{name:"Wyong station and town centre",lat:-33.282,lng:151.422,type:"tod_station",lga:"Central Coast"},{name:"Belmore station",lat:-33.9205,lng:151.0889,type:"tod_station",lga:""},{name:"Booragul station",lat:-32.973,lng:151.612,type:"tod_station",lga:""},{name:"Canterbury station",lat:-33.9101,lng:151.1184,type:"tod_station",lga:""},{name:"Cockle Creek station",lat:-32.98,lng:151.626,type:"tod_station",lga:""},{name:"Lakemba station",lat:-33.9225,lng:151.0753,type:"tod_station",lga:""},{name:"Newcastle Interchange station",lat:-32.927,lng:151.776,type:"tod_station",lga:""},{name:"North Strathfield Metro station",lat:-33.8586,lng:151.0857,type:"tod_station",lga:""},{name:"North Wollongong station",lat:-34.407,lng:150.897,type:"tod_station",lga:""},{name:"Punchbowl station",lat:-33.9273,lng:151.0533,type:"tod_station",lga:""},{name:"St Marys Metro station",lat:-33.762,lng:150.774,type:"tod_station",lga:""},{name:"Teralba station",lat:-32.964,lng:151.602,type:"tod_station",lga:""},{name:"Wiley Park station",lat:-33.9241,lng:151.067,type:"tod_station",lga:""}],X=["places"];function Z(n,c,r,e){const s=g=>g*Math.PI/180,y=s(r-n),u=s(e-c),m=Math.sin(y/2)**2+Math.cos(s(n))*Math.cos(s(r))*Math.sin(u/2)**2;return 6371e3*2*Math.atan2(Math.sqrt(m),Math.sqrt(1-m))}function L(n){switch(n){case"tod_station":return t.jsx(k,{className:"h-4 w-4 text-accent"});case"lmr_station":return t.jsx(k,{className:"h-4 w-4"});case"lmr_town_centre":return t.jsx(D,{className:"h-4 w-4"});default:return t.jsx(A,{className:"h-4 w-4"})}}function P(n){switch(n){case"tod_station":return"TOD Station";case"lmr_station":return"LMR Station";case"lmr_town_centre":return"LMR Town Centre";default:return n}}const tt={width:"100%",height:"100%"},b={hidden:{opacity:0,y:24},visible:n=>({opacity:1,y:0,transition:{delay:n*.1,duration:.5,ease:[.25,.1,.25,1]}})}
16,i={platinum:{gradient:"from-accent to-accent/80",badge:"bg-accent text-accent-foreground",dot:"bg-accent",tierBadge:"bg-accent/15 text-accent"},silver:{gradient:"from-muted-foreground to-muted-foreground/70",badge:"bg-muted-foreground text-primary-foreground",dot:"bg-muted-foreground",tierBadge:"bg-muted text-muted-foreground"},gold:{gradient:"from-gold to-gold/80",badge:"bg-gold text-primary",dot:"bg-gold",tierBadge:"bg-gold/15 text-primary"},bronze:{gradient:"from-bronze to-bronze/80",badge:"bg-bronze text-primary-foreground",dot:"bg-bronze",tierBadge:"bg-bronze/15 text-bronze"},none:{gradient:"from-muted to-muted/70",badge:"bg-muted text-muted-foreground",dot:"bg-muted",tierBadge:"bg-muted text-muted-foreground"}},dt=()=>{const[n,c]=o.useState(null);return o.useEffect(()=>{I.functions.invoke("get-maps-key").then(({data:r})=>{r!=null&&r.key&&c(r.key)})},[]),n?t.jsx(et,{mapsKey:n}):t.jsx("div",{className:"min-h-screen bg-background flex items-center justify-center",children:t.jsx("div",{className:"h-12 w-12 rounded-full border-4 border-accent/20 border-t-accent animate-spin"})})};function T(n,c,r){const d=C.filter(h=>r==="all"||h.type==="tod_station").map(h=>({hub:h,distance:Z(n,c,h.lat,h.lng)})).sort((h,w)=>h.distance-w.distance),s=d[0].hub,y=d[0].distance,u=d.slice(0,5);let m="none",g=0;return y<=400?(m="platinum",g=100):y<=800?(m="gold",g=75):y<=1200?(m="silver",g=50):y<=1600&&(m="bronze",g=25),{score:m,percentage:g,distance:Math.round(y),nearestHub:s,nearestHubs:u,propertyLat:n,propertyLng:c}}const et=({mapsKey:n})=>{const[c,r]=o.useState(""),[e,d]=o.useState(null),[s,y]=o.useState("all"),[u,m]=o.useState(null),g=o.useRef(null),h=o.useRef(null),{isLoaded:w}=U({googleMapsApiKey:n,libraries:X}),O=o.useCallback(a=>{g.current=a},[]),z=o.useCallback(()=>{var f,N;const a=(f=g.current)==null?void 0:f.getPlace();if(!((N=a==null?void 0:a.geometry)!=null&&N.location))return;const p=a.geometry.location.lat(),l=a.geometry.location.lng();r(a.formatted_address||""),m({lat:p,lng:l}),d(T(p,l,s))},[s]);o.useEffect(()=>{u&&d(T(u.lat,u.lng,s))},[s,u]);const M=e?i[e.score]:i.none;return t.jsxs(t.Fragment,{children:[t.jsxs(F,{children:[t.jsx("title",{children:"Airspace Uplift Calculator | LMR & TOD Proximity Score"}),t.jsx("meta",{name:"description",content:"Calculate your property's airspace uplift score based on proximity to NSW's 171 nominated LMR town centres and TOD train stations."})]}),t.jsx(K,{}),t.jsxs("div",{className:"min-h-screen bg-background",children:[t.jsxs("section",{className:"relative overflow-hidden py-20 md:py-24",children:[t.jsx("img",{src:q,alt:"","aria-hidden":"true",className:"absolute inset-0 w-full h-full object-cover"}),t.jsx("div",{className:"absolute inset-0 bg-primary/80"}),t.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10",children:[t.jsx(x.div,{initial:"hidden",animate:"visible",variants:b,custom:0,children:t.jsxs(G,{to:"/",className:"inline-flex items-center gap-1.5 text-sm font-body text-primary-foreground/50 hover:text-primary-foreground transition-colors mb-6",children:[t.jsx(J,{className:"h-4 w-4"})," Back to Home"]})}),t.jsxs(x.div,{initial:"hidden",animate:"visible",variants:b,custom:1,className:"text-center",children:[t.jsxs("p",{className:"font-body text-xs tracking-[0.3em] uppercase text-[hsl(var(--gold))] mb-3",children:[C.length," LMR & TOD Areas"]}),t.jsxs("h1",{className:"font-display text-3xl lg:text-4xl font-semibold text-primary-foreground mb-3",children:["Airspace Uplift"," ",t.jsx("span",{className:"italic text-[hsl(var(--gold))]",children:"Calculator"})]}),t.jsxs("p",{className:"text-primary-foreground/60 font-body max-w-lg mx-auto",children:["Score your property against the ",C.length," nominated town centres and stations from the NSW LMR Housing Policy and TOD Program."]})]})]})]}),t.jsxs("main",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8 lg:py-12",children:[t.jsx(x.div,{initial:"hidden",animate:"visible",variants:b,custom:2,children:t.jsx(_,{className:"mb-8 border-border bg-card shadow-sm",children:t.jsxs(v,{className:"p-6 space-y-4",children:[t.jsxs("div",{children:[t.jsx("label",{className:"text-sm font-semibold text-foreground font-body mb-2 block",children:"Property Address"}),w?t.jsxs("div",{className:"relative",children:[t.jsx("div",{className:"absolute left-3 top-1/2 -translate-y-1/2 h-8 w-8 rounded-full bg-primary/10 flex items-center justify-center z-10",children:t.jsx(Y,{className:"h-4 w-4 text-primary"})}),t.jsx(at,{inputRef:h,onLoad:O,onPlaceChanged:z})]}):t.jsx("div",{className:"h-12 rounded-lg bg-muted animate-pulse"})]}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(Q,{className:"h-4 w-4 text-muted-foreground"}),t.jsx("span",{className:"text-sm font-body text-muted-foreground",children:"Filter:"}),t.jsx("div",{className:"flex gap-1.5",children:[{value:"all",label:"All LMR & TOD"},{value:"tod_only",label:"TOD Stations Only"}].map(a=>t.jsx("button",{onClick:()=>
16y(a.value),className:`px-3 py-1.5 rounded-full text-xs font-semibold font-body transition-colors ${s===a.value?"bg-primary text-primary-foreground":"bg-secondary text-muted-foreground hover:bg-secondary/80"}`,children:a.label},a.value))})]})]})})}),e&&t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[t.jsxs(x.div,{className:"lg:col-span-1 space-y-6",initial:"hidden",animate:"visible",variants:b,custom:3,children:[t.jsxs(_,{className:"border-border bg-card shadow-sm overflow-hidden hover:-translate-y-1 transition-transform duration-300",children:[t.jsxs("div",{className:`bg-gradient-to-br ${M.gradient} p-8 text-center`,children:[t.jsx("p",{className:"text-primary-foreground/70 text-xs font-body uppercase tracking-[0.2em] mb-1",children:"Uplift Score"}),t.jsxs("p",{className:"text-6xl font-bold text-primary-foreground font-display",children:[e.percentage,"%"]}),t.jsx(H,{className:`mt-3 text-sm px-4 py-1 ${M.badge} border-0`,children:e.score==="platinum"?"Platinum":e.score==="gold"?"Gold":e.score==="silver"?"Silver":e.score==="bronze"?"Bronze":"No Uplift"})]}),t.jsxs(v,{className:"p-6 space-y-4",children:[t.jsxs("div",{className:"flex items-center justify-between text-sm font-body",children:[t.jsx("span",{className:"text-muted-foreground",children:"Nearest Hub"}),t.jsxs("span",{className:"text-foreground font-semibold flex items-center gap-1.5",children:[L(e.nearestHub.type),e.nearestHub.name]})]}),t.jsxs("div",{className:"flex items-center justify-between text-sm font-body",children:[t.jsx("span",{className:"text-muted-foreground",children:"Distance"}),t.jsxs("span",{className:"text-foreground font-semibold",children:[e.distance,"m"]})]}),t.jsxs("div",{className:"flex items-center justify-between text-sm font-body",children:[t.jsx("span",{className:"text-muted-foreground",children:"Hub Type"}),t.jsx(H,{variant:"outline",className:"text-xs border-border",children:P(e.nearestHub.type)})]})]})]}),t.jsxs(_,{className:"border-border bg-card shadow-sm",children:[t.jsx(R,{className:"pb-2",children:t.jsx(W,{className:"text-base font-body text-foreground",children:"Scoring Guide"})}),t.jsx(v,{className:"space-y-3 text-sm font-body",children:[{label:"Platinum (100%)",range:"within 400m",style:i.platinum},{label:"Gold (75%)",range:"400â800m",style:i.gold},{label:"Silver (50%)",range:"800â1,200m",style:i.silver},{label:"Bronze (25%)",range:"1,200â1,600m",style:i.bronze},{label:"No Uplift",range:"beyond 1,600m",style:i.none}].map(a=>t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx("div",{className:`h-3 w-3 rounded-full ${a.style.dot}`}),t.jsxs("span",{children:[t.jsx("strong",{className:"text-foreground",children:a.label})," â ",a.range]})]},a.label))})]})]}),t.jsx(x.div,{className:"lg:col-span-2",initial:"hidden",animate:"visible",variants:b,custom:4,children:t.jsx(_,{className:"border-border bg-card shadow-sm overflow-hidden h-full",children:t.jsxs("div",{className:"h-[500px] lg:h-full min-h-[400px] relative",children:[w&&t.jsxs($,{mapContainerStyle:tt,center:{lat:e.nearestHub.lat,lng:e.nearestHub.lng},zoom:15,options:{disableDefaultUI:!0,zoomControl:!0,mapTypeControl:!1,styles:[{featureType:"poi",stylers:[{visibility:"off"}]},{featureType:"transit",stylers:[{visibility:"simplified"}]}]},children:[t.jsx(B,{position:{lat:e.propertyLat,lng:e.propertyLng},icon:{path:google.maps.SymbolPath.CIRCLE,scale:10,fillColor:"#2c3e50",fillOpacity:1,strokeColor:"#ffffff",strokeWeight:3},title:c}),e.nearestHubs.map((a,p)=>{const l=a.hub.type==="tod_station"?"#4a90a4":a.hub.type==="lmr_station"?"#6b7280":"#8b6914";return t.jsx(B,{position:{lat:a.hub.lat,lng:a.hub.lng},icon:{path:google.maps.SymbolPath.BACKWARD_CLOSED_ARROW,scale:p===0?7:5,fillColor:p===0?"#e6b422":l,fillOpacity:p===0?1:.75,strokeColor:"#ffffff",strokeWeight:2},title:`${a.hub.name} (${Math.round(a.distance)}m)`},a.hub.name+p)}),t.jsx(j,{center:{lat:e.nearestHub.lat,lng:e.nearestHub.lng},radius:1600,options:{fillColor:"#cd7f32",fillOpacity:.03,strokeColor:"#cd7f32",strokeOpacity:.2,strokeWeight:1.5}}),t.jsx(j,{center:{lat:e.nearestHub.lat,lng:e.nearestHub.lng},radius:1200,options:{fillColor:"#e6b422",fillOpacity:.04,strokeColor:"#e6b422",strokeOpacity:.25,strokeWeight:1.5}}),t.jsx(j,{center:{lat:e.nearestHub.lat,lng:e.nearestHub.lng}
16,radius:800,options:{fillColor:"#4a90a4",fillOpacity:.06,strokeColor:"#4a90a4",strokeOpacity:.35,strokeWeight:2}}),t.jsx(j,{center:{lat:e.nearestHub.lat,lng:e.nearestHub.lng},radius:400,options:{fillColor:"#2c3e50",fillOpacity:.08,strokeColor:"#2c3e50",strokeOpacity:.5,strokeWeight:2,strokePosition:google.maps.StrokePosition.INSIDE}})]}),t.jsxs("div",{className:"absolute bottom-3 left-3 bg-card/95 backdrop-blur-sm border border-border rounded-lg px-3 py-2.5 shadow-md z-10",children:[t.jsx("p",{className:"text-[10px] font-semibold text-muted-foreground uppercase tracking-wider mb-1.5 font-body",children:"Legend"}),t.jsxs("div",{className:"space-y-1.5",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("div",{className:"h-3 w-3 rounded-full bg-primary border-2 border-white shadow-sm"}),t.jsx("span",{className:"text-xs font-body text-foreground",children:"Your Property"})]}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(k,{className:"h-3 w-3 text-accent"}),t.jsx("span",{className:"text-xs font-body text-foreground",children:"TOD Station"})]}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(k,{className:"h-3 w-3 text-muted-foreground"}),t.jsx("span",{className:"text-xs font-body text-foreground",children:"LMR Station"})]}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(D,{className:"h-3 w-3 text-muted-foreground"}),t.jsx("span",{className:"text-xs font-body text-foreground",children:"LMR Town Centre"})]})]})]})]})})})]}),t.jsx(x.div,{initial:"hidden",animate:"visible",variants:b,custom:5,children:t.jsxs(_,{className:"mt-8 border-border bg-card shadow-sm",children:[t.jsx(R,{className:"pb-3",children:t.jsx(W,{className:"text-lg font-body text-foreground",children:"Top 5 Nearest LMR / TOD Areas"})}),t.jsx(v,{className:"p-0",children:t.jsx("div",{className:"overflow-x-auto",children:t.jsxs("table",{className:"w-full text-sm font-body",children:[t.jsx("thead",{children:t.jsxs("tr",{className:"border-b border-border bg-secondary/50",children:[t.jsx("th",{className:"text-left px-6 py-3 font-semibold text-muted-foreground",children:"#"}),t.jsx("th",{className:"text-left px-6 py-3 font-semibold text-muted-foreground",children:"Hub"}),t.jsx("th",{className:"text-left px-6 py-3 font-semibold text-muted-foreground",children:"Type"}),t.jsx("th",{className:"text-right px-6 py-3 font-semibold text-muted-foreground",children:"Distance"}),t.jsx("th",{className:"text-left px-6 py-3 font-semibold text-muted-foreground",children:"Tier"})]})}),t.jsx("tbody",{children:e.nearestHubs.map((a,p)=>{const l=Math.round(a.distance),f=l<=400?"Platinum":l<=800?"Gold":l<=1200?"Silver":l<=1600?"Bronze":"â",N=l<=400?i.platinum.tierBadge:l<=800?i.gold.tierBadge:l<=1200?i.silver.tierBadge:l<=1600?i.bronze.tierBadge:i.none.tierBadge;return t.jsxs("tr",{className:"border-b border-border/50 last:border-0 hover:bg-secondary/30 transition-colors",children:[t.jsx("td",{className:"px-6 py-3.5 text-muted-foreground",children:p+1}),t.jsx("td",{className:"px-6 py-3.5 font-medium text-foreground",children:t.jsxs("span",{className:"flex items-center gap-2",children:[L(a.hub.type),a.hub.name]})}),t.jsx("td",{className:"px-6 py-3.5 text-muted-foreground",children:P(a.hub.type)}),t.jsxs("td",{className:"px-6 py-3.5 text-right font-mono text-foreground",children:[l,"m"]}),t.jsx("td",{className:"px-6 py-3.5",children:t.jsx("span",{className:`inline-block text-xs font-semibold px-2.5 py-0.5 rounded-full ${N}`,children:f})})]},a.hub.name+p)})})]})})})]})})]}),!e&&t.jsxs(x.div,{className:"text-center py-20",initial:"hidden",animate:"visible",variants:b,custom:3,children:[t.jsx("div",{className:"inline-flex h-16 w-16 items-center justify-center rounded-2xl bg-accent/10 mb-4",children:t.jsx(A,{className:"h-8 w-8 text-accent"})}),t.jsx("h2",{className:"text-xl font-semibold text-foreground font-display mb-2",children:"Enter an NSW address to begin"}),t.jsxs("p",{className:"text-muted-foreground font-body max-w-md mx-auto",children:["We'll calculate your property's proximity to ",C.length," nominated LMR town centres and TOD stations to determine airspace uplift eligibility."]})]})]})]}),t.jsx(E,{})]})};function at({inputRef:n,onLoad:c,onPlaceChanged:r}){const e=o.useRef(null);return o.useEffect(()=>{if(!n.current)return;const d=new google.maps.places.Autocomplete(n.current,{types:["address"],componentRestrictions:{country:"au"}});d.addListener("place_changed",r),c(d)},[]),t.jsx("div",{ref:e,children:t.jsx(V,{ref:n,placeholder:"e.g. 100 George Street, Sydney
16NSW 2000",className:"pl-14 h-12 text-base border-border bg-background font-body font-bold placeholder:font-bold focus-visible:ring-ring"})})}export{dt as default};
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.