PageSourceSearch

https://www.spinr.ca/_next/static/chunks/3etzlmlktsajn.js?dpl=dpl_6ieToS6mPz7z7JrE9gGWBfotareU

js spinr.ca collected 2026-09-24 14:35:48 UTC 26,202 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,94758,e=>{"use strict";var s=e.i(43476),i=e.i(71645);let a=[{who:"you",text:"how much to the airport from Broadway?"},{who:"ai",text:"About $28.40 all-in — ride fare, the $1 booking fee, the airport surcharge and GST. No surge.",tool:"get_fare_quote"},{who:"you",text:"book it for 6am tomorrow"},{who:"ai",text:"Scheduled for 6:00am. I’ll send the driver details the night before.",tool:"propose_ride_booking"},{who:"you",text:"what did my trip last Friday cost?"},{who:"ai",text:"Fri 15 Aug, Nutana → Midtown, $18.65. Want the receipt?",tool:"get_ride_history"}],r=[{k:"Book a ride",items:["Quote a fare before you book","Book it, or schedule it for later","Find a place or use a saved one"]},{k:"Your past rides",items:["Pull up any previous trip","What a ride cost and why","Send you the receipt"]},{k:"Money",items:["Wallet balance and transactions","Promos available to you"]},{k:"Everything else",items:["Track the ride you’re on now","Answer questions about Spinr","Hand you to a human when it should"]}],t=e=>Math.min(1,Math.max(0,e)),n=a.map(e=>"ai"===e.who?1.7:.55),l=n.reduce((e,s,i)=>[...e,(e[i-1]||0)+s],[]),d=l[l.length-1];function c(){let e=(0,i.useRef)(null),[a,r]=(0,i.useState)({x:0,y:0});(0,i.useEffect)(()=>{if(window.matchMedia("(prefers-reduced-motion: reduce)").matches||!window.matchMedia("(pointer: fine)").matches)return;let s=0,i=i=>{s||(s=requestAnimationFrame(()=>{s=0;let a=e.current;if(!a)return;let t=a.getBoundingClientRect(),n=i.clientX-(t.left+t.width/2),l=i.clientY-(t.top+t.height/2),d=Math.hypot(n,l)||1,c=Math.min(1,d/240);r({x:n/d*2.4*c,y:l/d*2*c})}))};return window.addEventListener("pointermove",i,{passive:!0}),()=>{s&&cancelAnimationFrame(s),window.removeEventListener("pointermove",i)}},[]);let t={transform:`translate(${a.x.toFixed(2)}px, ${a.y.toFixed(2)}px)`};return(0,s.jsxs)("span",{ref:e,className:"sp-eyes","aria-hidden":"true",children:[(0,s.jsx)("i",{children:(0,s.jsx)("b",{style:t})}),(0,s.jsx)("i",{children:(0,s.jsx)("b",{style:t})})]})}e.s(["default",0,function(){let e=(0,i.useRef)(null),h=(0,i.useRef)(null),[o,p]=(0,i.useState)(!1),[x,m]=(0,i.useState)(0),[u,j]=(0,i.useState)(0);(0,i.useEffect)(()=>{let e=window.matchMedia("(min-width: 1100px) and (min-height: 760px)"),s=window.matchMedia("(prefers-reduced-motion: reduce)"),i=()=>p(e.matches&&!s.matches);return i(),e.addEventListener("change",i),s.addEventListener("change",i),()=>{e.removeEventListener("change",i),s.removeEventListener("change",i)}},[]),(0,i.useEffect)(()=>{if(!o)return;let s=0,i=()=>{s||(s=requestAnimationFrame(()=>{s=0,(()=>{let s,i,r,c=e.current;if(!c)return;let h=c.getBoundingClientRect(),o=h.height-window.innerHeight;if(o<=0)return;let p=t((-h.top/o-.05)/.82),{i:x,local:u}=(s=t(p)*d,(i=l.findIndex(e=>s<e))<0&&(i=a.length-1),r=i?l[i-1]:0,{i,local:t((s-r)/n[i])});m(x),j(u)})()}))};return i(),window.addEventListener("scroll",i,{passive:!0}),window.addEventListener("resize",i),()=>{s&&cancelAnimationFrame(s),window.removeEventListener("scroll",i),window.removeEventListener("resize",i)}},[o]),(0,i.useEffect)(()=>{if(o)return;let s=e.current;if(!s)return;if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){m(a.length-1),j(1);return}let i=[],r=new IntersectionObserver(([e])=>{e.isIntersecting&&(r.disconnect(),a.forEach((e,s)=>{i.push(setTimeout(()=>{m(s),j(0)},400+1500*s)),i.push(setTimeout(()=>j(1),400+1500*s+900))}))},{threshold:.3});return r.observe(s),()=>{r.disconnect(),i.forEach(clearTimeout)}},[o]),(0,i.useEffect)(()=>{let e=h.current;e&&(e.scrollTop=e.scrollHeight)},[x,u]);let f=a[x],v="ai"===f.who&&u<.3,g="ai"===f.who?Math.round(t((u-.3)/.55)*f.text.length):f.text.length;return(0,s.jsx)("section",{className:`sp-sec sp-ai${o?" is-pinned":""}`,id:"ai",ref:e,children:(0,s.jsx)("div",{className:"sp-ai-stage",children:(0,s.jsxs)("div",{className:"sp-wrap sp-ai-g",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"sp-kick sp-kick-light",children:"In the app"}),(0,s.jsxs)("h2",{className:"sp-display sp-h2 sp-ai-h",children:["Don’t tap through menus.",(0,s.jsx)("br",{}),(0,s.jsx)("span",{className:"sp-ai-hl",children:"Just ask."})]}),(0,s.jsx)("p",{className:"sp-ai-lede",children:"Spinr’s AI assistant is built into the app. Ask it to price a trip, book or schedule the ride, or pull up what you paid three Fridays ago — in plain language, no menus."}),(0,s.jsx)("div",{className:"sp-ai-groups",children:r.map(e=>(0,s.jsxs)("div",{className:"sp-ai-group",children:[(0,s.jsx)("h3",{className:"sp-display sp-ai-gk",children:e.k}),(0,s.jsx)("ul",{children:e.items.map(e=>(0,s.jsxs)("li",{children:[(0,s.jsx)("span",{"aria-hidden":"true",children:"✓"}),e]},e))})]},e.k))}),(0,s.jsx)("p",{className:"sp-ai-fine",children:"Phone numbers, email addresses, card numbers and GPS co
1ordinates are stripped from your message before it reaches the model."})]}),(0,s.jsxs)("div",{className:"sp-ai-phone",children:[(0,s.jsx)("span",{className:"sp-ai-sticker sp-display","aria-hidden":"true",children:"Ask anything"}),(0,s.jsxs)("div",{className:"sp-ai-frame",children:[(0,s.jsx)("span",{className:"sp-ai-notch","aria-hidden":"true"}),(0,s.jsxs)("div",{className:"sp-ai-head",children:[(0,s.jsx)(c,{}),"Spinr AI Assistant"]}),(0,s.jsxs)("div",{className:"sp-ai-thread",ref:h,children:[a.map((e,i)=>{if(i>x)return null;let a=i===x;if(a&&v)return null;let r=a?e.text.slice(0,g):e.text;return(0,s.jsxs)("div",{className:`sp-bub sp-bub-${e.who} in`,children:[e.tool&&(0,s.jsx)("span",{className:"sp-bub-tool",children:e.tool}),r,a&&r.length<e.text.length&&(0,s.jsx)("i",{className:"sp-caret sp-caret-ai","aria-hidden":"true"})]},i)}),v&&(0,s.jsxs)("div",{className:"sp-bub sp-bub-ai in sp-bub-typing","aria-hidden":"true",children:[(0,s.jsx)("i",{}),(0,s.jsx)("i",{}),(0,s.jsx)("i",{})]})]}),(0,s.jsxs)("div",{className:"sp-ai-input","aria-hidden":"true",children:["Ask anything",(0,s.jsx)("span",{className:"sp-ai-send",children:"↑"})]})]})]})]})})})}])},59253,e=>{"use strict";var s=e.i(43476),i=e.i(71645);let a="M34 268 C 44 232, 30 208, 58 186 S 104 168, 118 132 S 140 74, 166 44",r={full:"0 0 200 300",wide:"4 146 192 84"};e.s(["default",0,function({t:e=0,className:t="",pins:n=!0,route:l=!0,view:d="full",dense:c=!1}){let h=Math.min(1,Math.max(0,e)),o=(0,i.useRef)(null),p=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let e=o.current,s=p.current;if(!e||!s)return;let i=e.getTotalLength(),a=i*h,r=e.getPointAtLength(Math.max(0,a-2)),t=e.getPointAtLength(Math.min(i,a+2)),n=180*Math.atan2(t.y-r.y,t.x-r.x)/Math.PI+90;s.setAttribute("transform",`translate(${t.x.toFixed(2)} ${t.y.toFixed(2)}) rotate(${n.toFixed(1)})`)},[h]),(0,s.jsxs)("svg",{className:`sp-map ${t}`.trim(),viewBox:r[d]||r.full,preserveAspectRatio:"xMidYMid slice","aria-hidden":"true",children:[(0,s.jsx)("rect",{width:"200",height:"300",fill:"#E7DFCF"}),(0,s.jsx)("rect",{x:"6",y:"14",width:"50",height:"42",rx:"9",fill:"#D3E6BE"}),(0,s.jsx)("rect",{x:"128",y:"228",width:"78",height:"64",rx:"10",fill:"#D3E6BE"}),(0,s.jsx)("rect",{x:"150",y:"96",width:"46",height:"34",rx:"8",fill:"#D3E6BE"}),(0,s.jsx)("path",{d:"M-12 236 C 34 214, 58 176, 104 152 S 172 108, 212 96 L212 132 C 176 144, 128 176, 106 198 S 34 268, -12 282 Z",fill:"#B6DDE6"}),(0,s.jsx)("path",{d:"M-12 236 C 34 214, 58 176, 104 152 S 172 108, 212 96",fill:"none",stroke:"#8FC6D3",strokeWidth:"1.5"}),c&&(0,s.jsxs)("g",{children:[(0,s.jsxs)("g",{stroke:"#FAF7EF",strokeWidth:"1.6",fill:"none",opacity:".8",children:[(0,s.jsx)("path",{d:"M0 12 H200"}),(0,s.jsx)("path",{d:"M0 56 H200"}),(0,s.jsx)("path",{d:"M0 100 H200"}),(0,s.jsx)("path",{d:"M0 144 H200"}),(0,s.jsx)("path",{d:"M0 188 H200"}),(0,s.jsx)("path",{d:"M0 232 H200"}),(0,s.jsx)("path",{d:"M0 276 H200"}),(0,s.jsx)("path",{d:"M6 0 V300"}),(0,s.jsx)("path",{d:"M50 0 V300"}),(0,s.jsx)("path",{d:"M94 0 V300"}),(0,s.jsx)("path",{d:"M138 0 V300"}),(0,s.jsx)("path",{d:"M182 0 V300"})]}),(0,s.jsx)("rect",{x:"80",y:"14",width:"30",height:"16",rx:"4",fill:"#E2D7C0"}),(0,s.jsx)("rect",{x:"34",y:"96",width:"28",height:"20",rx:"4",fill:"#E2D7C0"}),(0,s.jsx)("rect",{x:"120",y:"250",width:"34",height:"18",rx:"4",fill:"#E2D7C0"}),(0,s.jsx)("rect",{x:"8",y:"140",width:"14",height:"12",rx:"3",fill:"#D3E6BE"}),(0,s.jsx)("rect",{x:"176",y:"180",width:"20",height:"14",rx:"4",fill:"#D3E6BE"})]}),(0,s.jsxs)("g",{stroke:"#FAF7EF",strokeLinecap:"square",fill:"none",children:[(0,s.jsxs)("g",{strokeWidth:"4.5",children:[(0,s.jsx)("path",{d:"M0 34 H200"}),(0,s.jsx)("path",{d:"M0 78 H200"}),(0,s.jsx)("path",{d:"M0 122 H200"}),(0,s.jsx)("path",{d:"M0 166 H200"}),(0,s.jsx)("path",{d:"M0 210 H200"}),(0,s.jsx)("path",{d:"M0 254 H200"}),(0,s.jsx)("path",{d:"M28 0 V300"}),(0,s.jsx)("path",{d:"M72 0 V300"}),(0,s.jsx)("path",{d:"M116 0 V300"}),(0,s.jsx)("path",{d:"M160 0 V300"})]}),(0,s.jsx)("path",{d:"M-6 292 L206 26",strokeWidth:"9"})]}),(0,s.jsxs)("g",{stroke:"rgba(11,11,11,.42)",strokeWidth:c?.9:1.6,strokeLinecap:"round",children:[(0,s.jsx)("path",{d:"M43.3 238.1 L111.1 153.1"}),(0,s.jsx)("path",{d:"M35.5 231.9 L103.3 146.9"})]}),l&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("path",{ref:o,d:a,fill:"none",stroke:"rgba(11,11,11,.17)",strokeWidth:c?3.6:6,strokeLinecap:"round"}),(0,s.jsx)("path",{d:a,fill:"none",stroke:"#DC3848",strokeWidth:c?3:5,strokeLinecap:"round",pathLength:"1",strokeDasharray:"1",strokeDashoffset:1-h})]}),n&&l&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("g",{transform:c?"translate(34 268) scale(.55) translate(-34 -268)":void 0,children:[(0,s.jsx)("circle",{cx:"34",cy:"268",r:"7",fill:"#fff",stroke:"#0B0B0B",strokeWidth:"2.5"}),(0,s.jsx)("circle",{cx:"34",cy:"268",r:"2.6",fill:"#0B0B0B"})]}),(0,s.jsxs)("g",{transform:c?"translate(166 50) scale(.55) translate(-166 -50)":void 0,children:[(0,s.jsx)("path",{d:"M166 30 c6.6 0 12 5.4 12 12 0 8.6-12 20-12 20s-12-11.4-12-20c0-6.6 5.4-12 12-12z",fill:"#FFC60B",stroke:"#0B0B0B",strokeWidth:"2.5",strokeLinejoin:"round"}),(0,s.jsx)("circle",{cx:"166",cy:"42",r:"4",fill:"#0B0B0B"})]})]}),(0,s.jsx)("g",{ref:p,style:{display:l?void 0:"none"},children:(0,s.jsxs)("g",{transform:c?"scale(.5)":void 0,children:[(0,s.jsx)("rect",{x:"-9",y:"-12.5",width:"18",height:"25",rx:"6",fill:"#fff"}),(0,s.jsx)("rect",{x:"-7.2",y:"-10.7",width:"14.4",height:"21.4",rx:"4.8",fill:"#0B0B0B"}),(0,s.jsx)("rect",{x:"-5",y:"-8.2",width:"10",height:"7",rx:"2.5",fill:"#A8E1DE"}),(0,s.jsx)("rect",{x:"-5",y:"1.4",width:"10",height:"5.4",rx:"2.1",fill:"#57575A"})]})})]})}])},75233,e=>{"use strict";var s=e.i(43476),i=e.i(71645);e.s(["default",0,function(){let[e,a]=(0,i.useState)("24"),[r,t]=(0,i.useState)("ride"),[n,l]=(0,i.useState)(null),d=Number(e||0),c="month"===r?90:1,h=d*c,o=.75*h,p=e
1=>e.toLocaleString("en-CA",{style:"currency",currency:"CAD",maximumFractionDigits:0});return(0,s.jsxs)("div",{className:"sp-calcwrap",children:[(0,s.jsxs)("div",{className:"sp-calccopy",children:[(0,s.jsxs)("h2",{className:"sp-display sp-h2",children:["See what a commission",(0,s.jsx)("br",{}),(0,s.jsx)("span",{className:"sp-accent",children:"actually costs."})]}),(0,s.jsx)("p",{className:"sp-lede",children:"Spinr takes nothing. Elsewhere, a fifth to nearly a third of every fare is gone before the driver sees it."}),(0,s.jsxs)("div",{className:"sp-readout",children:[(0,s.jsx)("span",{className:"sp-readout-k",children:"Driver keeps with Spinr"}),(0,s.jsx)("b",{className:"sp-readout-n",children:p(h)}),(0,s.jsxs)("div",{className:"sp-readout-row",children:[(0,s.jsxs)("span",{children:["On a ",25,"% commission platform"]}),(0,s.jsx)("b",{children:p(o)})]}),(0,s.jsxs)("div",{className:"sp-readout-row sp-readout-win",children:[(0,s.jsx)("span",{children:"Difference"}),(0,s.jsxs)("b",{children:["+",p(h-o)]})]}),(0,s.jsxs)("p",{className:"sp-readout-fine",children:["Rider pays ",p(+c)," in platform fees over the same","month"===r?" month":" trip"," — flat, never a percentage."]})]})]}),(0,s.jsx)("div",{className:"sp-calcvis",children:(0,s.jsxs)("div",{className:"sp-machine",children:[(0,s.jsx)("span",{className:"sp-screw sp-screw-1","aria-hidden":"true"}),(0,s.jsx)("span",{className:"sp-screw sp-screw-2","aria-hidden":"true"}),(0,s.jsx)("span",{className:"sp-screw sp-screw-3","aria-hidden":"true"}),(0,s.jsx)("span",{className:"sp-screw sp-screw-4","aria-hidden":"true"}),(0,s.jsxs)("div",{className:"sp-machine-top",children:[(0,s.jsx)("span",{className:"sp-machine-brand",children:"SPINRULATOR"}),(0,s.jsxs)("span",{className:"sp-leds",children:[(0,s.jsx)("i",{className:"on"}),(0,s.jsx)("i",{})]})]}),(0,s.jsxs)("div",{className:"sp-lcd",children:[(0,s.jsx)("span",{className:"sp-lcd-k",children:"month"===r?"Average fare":"This fare"}),(0,s.jsxs)("div",{className:"sp-lcd-amt",children:[(0,s.jsxs)("b",{children:["$",e||"0"]}),(0,s.jsx)("span",{children:"month"===r?"/ ride":""})]})]}),(0,s.jsxs)("div",{className:"sp-modes",role:"group","aria-label":"Calculate for",children:[(0,s.jsx)("button",{type:"button",className:"ride"===r?"on":"","aria-pressed":"ride"===r,onClick:()=>t("ride"),children:"One ride"}),(0,s.jsx)("button",{type:"button",className:"month"===r?"on":"","aria-pressed":"month"===r,onClick:()=>t("month"),children:"A month (90 rides)"})]}),(0,s.jsxs)("div",{className:"sp-keys",children:[[["7","8","9","back"],["4","5","6","clear"],["1","2","3","."],["0","00"]].flat().map(e=>(0,s.jsx)("button",{type:"button",onClick:()=>(l(e),setTimeout(()=>l(null),130),"clear"===e)?a(""):"back"===e?a(e=>e.slice(0,-1)):"."===e?a(e=>e.includes(".")?e:(e||"0")+"."):void a(s=>s.length>=6?s:("0"===s?"":s)+e),className:[n===e?"kp":"","0"===e?"sp-k-zero":"","back"===e||"clear"===e?"sp-k-fn":""].join(" "),"aria-label":"back"===e?"Backspace":"clear"===e?"Clear":e,children:"back"===e?"⌫":"clear"===e?"C":e},e)),(0,s.jsx)("button",{type:"button",className:"sp-k-go",onClick:()=>a(e||"0"),children:"Total"})]})]})})]})}])},35041,e=>{"use strict";var s=e.i(43476),i=e.i(71645),a=e.i(59253);let r=[{n:"01",t:"Set your destination",p:"Open the app and enter where you are going. Saved places are one tap away."},{n:"02",t:"See the price first",p:"The full fare appears before you confirm — itemised down to the tax, with no surge line to find later."},{n:"03",t:"Ride",p:"Track your driver in real time and share the trip with whoever you like."}],t=e=>Math.min(1,Math.max(0,e)),n="Broadway Ave";function l({on:e,t:i}){let r=n.slice(0,Math.round(t(2.2*i)*n.length));return(0,s.jsxs)("div",{className:`sp-scr${e?" on":""}`,"aria-hidden":!e,children:[(0,s.jsx)("p",{className:"sp-scr-k",children:"Where to?"}),(0,s.jsxs)("div",{className:"sp-scr-field",children:[(0,s.jsx)("span",{className:"sp-scr-pin","aria-hidden":"true"}),r,r.length<n.length&&(0,s.jsx)("i",{className:"sp-caret","aria-hidden":"true"})]}),(0,s.jsx)("ul",{className:"sp-scr-list",children:[["★","Home","Nutana"],["◧","Work","River Landing"],["✈","YXE Airport","2 Airport Dr"]].map(([e,a,r],t)=>(0,s.jsxs)("li",{className:i>.34+.16*t?"in":"",children:[(0,s.jsx)("span",{className:"sp-scr-ic","aria-hidden":"true",children:e}),(0,s.jsxs)("div",{children:[(0,s.jsx)("b",{children:a}),(0,s.jsx)("i",{children:r})]})]},a))}),(0,s.jsx)("div",{className:"sp-scr-mapwrap",children:(0,s.jsx)(a.default,{route:!1,pins:!1})})]})}let d=[["Fare","$14.20"],["Booking fee","$1.00"],["GST (5%)","$0.76"],["Surge","None"]];function c({on:e,t:i}){return(0,s.jsxs)("div",{className:`sp-scr${e?" on":""}`,"aria-hidden":!e,children:[(0,s.jsx)("p",{className:"sp-scr-k",children:"Your price"}),(0,s.jsx)("div",{className:"sp-scr-mapwrap sp-scr-mapwrap-sm",children:(0,s.jsx)(a.default,{t:t(1.5*i),pins:!1,view:"wide"})}),(0,s.jsxs)("div",{className:"sp-scr-card",children:[d.map(([e,a],r)=>(0,s.jsxs)("div",{className:`sp-scr-row${"Surge"===e?" sp-scr-row-flat":""}${i>.18+.13*r?" in":""}`,children:[(0,s.jsx)("span",{children:e}),(0,s.jsx)("b",{children:a})]},e)),(0,s.jsxs)("div",{className:`sp-scr-total${i>.72?" in":""}`,children:[(0,s.jsx)("span",{children:"Total"}),(0,s.jsx)("b",{children:"$15.96"})]})]}),(0,s.jsx)("div",{className:"sp-scr-go",children:"Confirm ride"})]})}function h({on:e,t:i}){let r=Math.max(1,Math.ceil(6-5*i));return(0,s.jsxs)("div",{className:`sp-scr${e?" on":""}`,"aria-hidden":!e,children:[(0,s.jsx)("p",{className:"sp-scr-k",children:"On the way"}),(0,s.jsx)("div",{className:"sp-scr-mapwrap",children:(0,s.jsx)(a.default,{t:i})}),(0,s.jsxs)("div",{className:"sp-scr-card sp-scr-driver",children:[(0,s.jsx)("div",{className:"sp-scr-avatar","aria-hidden":"true"}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("b",{children:["Your driver is ",r," min away"]}),(0,s.jsx)("i",{children:"Grey Corolla · Fully insured"})]})]}),(0,s.jsx)("div",{className:"sp-scr-bar","aria-hidden":"true",children:(0,s.jsx)("i",{style:{transform:`scaleX(${t(i)})`}})}),(0,s.jsx)("div",{className:"sp-scr-go sp-scr-go-ghost",children:"Share trip"})]})}e.s(["default",0,function(){let e=(0,i.useRef)(null),a=(0,i.useRef)(null),[n,d]=(0,i.useState)(0),[o,p]=(0,i.useState)(0),[x,m]=(0,i.useState)(0),[u,j]=(0,i.useState)("still"),f="pinned"===u;return(0,i.useEffect)(()=>{let e=window.matchMedia("(prefers-reduced-motion: reduce)"),s=window.matchMedia("(min-width: 900px)"),i=()=>j(e.matches?"still":s.matches?"pinned":"flow");
1return i(),e.addEventListener("change",i),s.addEventListener("change",i),()=>{e.removeEventListener("change",i),s.removeEventListener("change",i)}},[]),(0,i.useEffect)(()=>{if("still"===u){d(0),p(1),m(1);return}let s=0,i="pinned"===u?()=>{let s=e.current;if(!s)return;let i=s.getBoundingClientRect(),a=i.height-window.innerHeight;if(a<=0)return;let n=t(-i.top/a),l=n*r.length,c=Math.min(r.length-1,Math.floor(l));m(n),d(c),p(t(l-c))}:()=>{let e=a.current;if(!e)return;let s=[...e.querySelectorAll("li")];if(!s.length)return;let i=.45*window.innerHeight,n=0,l=1/0;s.forEach((e,s)=>{let a=e.getBoundingClientRect(),r=Math.abs(a.top+a.height/2-i);r<l&&(l=r,n=s)});let c=s[n].getBoundingClientRect();d(n),p(t((i+.6*c.height-c.top)/(1.2*c.height))),m((n+1)/r.length)},n=()=>{s||(s=requestAnimationFrame(()=>{s=0,i()}))};return n(),window.addEventListener("scroll",n,{passive:!0}),window.addEventListener("resize",n),()=>{s&&cancelAnimationFrame(s),window.removeEventListener("scroll",n),window.removeEventListener("resize",n)}},[u]),(0,s.jsx)("section",{className:`sp-sec sp-hiw${f?" is-pinned":""}${"still"===u?" is-still":""}`,id:"how",ref:e,children:(0,s.jsx)("div",{className:"sp-hiw-stage",children:(0,s.jsxs)("div",{className:"sp-wrap sp-hiw-g",children:[(0,s.jsxs)("div",{className:"sp-hiw-copy",children:[(0,s.jsx)("span",{className:"sp-kick",children:"How it works"}),(0,s.jsx)("h2",{className:"sp-display sp-h2",children:"Three stops, start to finish."}),(0,s.jsxs)("ol",{className:"sp-route",style:{"--p":x},ref:a,children:[(0,s.jsx)("span",{className:"sp-route-line","aria-hidden":"true",children:(0,s.jsx)("i",{className:"sp-route-fill"})}),r.map((e,i)=>(0,s.jsxs)("li",{className:i===n?"is-on":i<n?"is-done":"","aria-current":i===n?"step":void 0,children:[(0,s.jsx)("span",{className:"sp-route-dot","aria-hidden":"true"}),(0,s.jsxs)("div",{className:"sp-route-tx",children:[(0,s.jsx)("span",{className:"sp-display sp-route-n",children:e.n}),(0,s.jsx)("b",{children:e.t}),(0,s.jsx)("p",{children:e.p})]})]},e.n))]}),(0,s.jsx)("a",{className:"sp-btn sp-hiw-cta",href:"#get",children:"Get Spinr"})]}),(0,s.jsx)("div",{className:"sp-hiw-phone",children:(0,s.jsxs)("div",{className:"sp-hiw-frame",children:[(0,s.jsx)("span",{className:"sp-hiw-notch","aria-hidden":"true"}),(0,s.jsxs)("div",{className:"sp-hiw-screens",children:[(0,s.jsx)(l,{on:0===n,t:0===n?o:1}),(0,s.jsx)(c,{on:1===n,t:1===n?o:+(n>1)}),(0,s.jsx)(h,{on:2===n,t:2===n?o:0})]})]})})]})})})}])},73215,e=>{"use strict";var s=e.i(43476),i=e.i(71645),a=e.i(59253);let r=[{x:[-20,-104],y:[44,14],r:[-7,-14],s:[.86,.9],z:1},{x:[0,0],y:[0,0],r:[-2,-3],s:[1,1],z:3},{x:[20,104],y:[56,26],r:[6,13],s:[.82,.88],z:2}],t=(e,s)=>e[0]+(e[1]-e[0])*s,n=[function(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("p",{className:"sp-fs-hi sp-display",children:"Receipt"}),(0,s.jsxs)("div",{className:"sp-fs-card",children:[(0,s.jsxs)("div",{className:"sp-fs-row",children:[(0,s.jsx)("span",{children:"Fare"}),(0,s.jsx)("b",{children:"$14.20"})]}),(0,s.jsxs)("div",{className:"sp-fs-row",children:[(0,s.jsx)("span",{children:"Booking fee"}),(0,s.jsx)("b",{children:"$1.00"})]}),(0,s.jsxs)("div",{className:"sp-fs-row",children:[(0,s.jsx)("span",{children:"GST"}),(0,s.jsx)("b",{children:"$0.76"})]}),(0,s.jsxs)("div",{className:"sp-fs-row sp-fs-row-red",children:[(0,s.jsx)("span",{children:"Surge"}),(0,s.jsx)("b",{children:"None"})]}),(0,s.jsxs)("div",{className:"sp-fs-tot",children:[(0,s.jsx)("span",{children:"Total"}),(0,s.jsx)("b",{children:"$15.96"})]})]}),(0,s.jsxs)("div",{className:"sp-fs-keep",children:[(0,s.jsx)("span",{children:"Driver keeps"}),(0,s.jsx)("b",{className:"sp-display",children:"$14.20"})]}),(0,s.jsx)("div",{className:"sp-fs-go sp-fs-go-ghost",children:"Email receipt"})]})},function(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("p",{className:"sp-fs-hi sp-display",children:"Where to?"}),(0,s.jsxs)("div",{className:"sp-fs-field",children:[(0,s.jsx)("i",{className:"sp-fs-pin"}),"Broadway Ave"]}),(0,s.jsxs)("div",{className:"sp-fs-chips",children:[(0,s.jsx)("span",{children:"Home"}),(0,s.jsx)("span",{children:"YXE"}),(0,s.jsx)("span",{children:"Work"})]}),(0,s.jsx)("div",{className:"sp-fs-map",children:(0,s.jsx)(a.default,{route:!1,pins:!1})}),(0,s.jsx)("div",{className:"sp-fs-go",children:"See the price"})]})},function(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("p",{className:"sp-fs-hi sp-display",children:"AI Assistant"}),(0,s.jsxs)("div",{className:"sp-fs-thread",children:[(0,s.jsx)("span",{className:"sp-fs-bub sp-fs-bub-you",children:"book me 6am to the airport"}),(0,s.jsx)("span",{className:"sp-fs-bub sp-fs-bub-ai",children:"Done — 6:00am, $28.40 all in."}),(0,s.jsx)("span",{className:"sp-fs-bub sp-fs-bub-you",children:"what did Friday cost?"}),(0,s.jsxs)("span",{className:"sp-fs-bub sp-fs-bub-ai sp-fs-typing",children:[(0,s.jsx)("i",{}),(0,s.jsx)("i",{}),(0,s.jsx)("i",{})]})]}),(0,s.jsx)("div",{className:"sp-fs-input",children:"Ask anything"})]})}],l=[function(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("p",{className:"sp-fs-hi sp-display",children:"This week"}),(0,s.jsxs)("div",{className:"sp-fs-card",children:[(0,s.jsx)("div",{className:"sp-fs-k",children:"Paid out"}),(0,s.jsx)("b",{className:"sp-fs-big sp-display",children:"$1,204"}),(0,s.jsx)("div",{className:"sp-fs-bars","aria-hidden":"true",children:[42,68,30,84,56,96,74].map((e,i)=>(0,s.jsx)("i",{style:{height:`${e}%`}},i))})]}),(0,s.jsxs)("div",{className:"sp-fs-keep",children:[(0,s.jsx)("span",{children:"Commission taken"}),(0,s.jsx)("b",{className:"sp-display",children:"$0.00"})]}),(0,s.jsx)("div",{className:"sp-fs-go sp-fs-go-ghost",children:"Statement"})]})},function(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("p",{className:"sp-fs-hi sp-display",children:"New trip"}),(0,s.jsxs)("div",{className:"sp-fs-card sp-fs-card-sun",children:[(0,s.jsx)("div",{className:"sp-fs-k",children:"You earn"}),(0,s.jsx)("b",{className:"sp-fs-big sp-display",children:"$14.20"}),(0,s.jsxs)("div",{className:"sp-fs-row",children:[(0,s.jsx)("span",{children:"4 min away"}),(0,s.jsx)("b",{children:"12.4 km"})]})]}),(0,s.jsx)("div",{className:"sp-fs-map",children:(0,s.jsx)(a.default,{t:.45})}),(0,s.jsx)("div",{className:"sp-fs-go",children:"Accept"})]})},function(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("p",{className:"sp-fs-hi sp-display",children:"You’re online"}),(0,s.jsxs)("div",{className:"sp-fs-toggle",children:[(0,s.jsx)("i",{}),"Taking trips"]}),(0,s.jsxs)("div",{className:"sp-fs-card",children:[(0,s.jsx)("div",{className:"sp-fs-k",children:"Today"}),(0,s.jsx)("b",{className:"sp-fs-big sp-display",children:"$186.40"}),(0,s.jsxs)("div",{className:"sp-fs-row",children:[(0,s.jsx)("span",{children:"9 trips"}),(0,s.jsx)("b",{children:"7h 20m"})]})]}),(0,s.jsx)("div",{className:"sp-fs-map",children:(0,s.jsx)(a.default,{route:!1,pins:!1})})]})}];e.s(["default",0,function({force:e}){let a=(0,i.useRef)(null),[d,c]=(0,i.useState)(0),[h,o]=(0,i.useState)(1),[p,x]=(0,i.useState)(null);(0,i.useEffect)(()=>{x(e||(.5>Math.random()?"rider":"driver"))},[e]),(0,i.useEffect)(()=>
1{if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){c(1),o(window.innerWidth>=900?1:window.innerWidth>=640?.72:.46);return}let e=0,s=()=>{e||(e=requestAnimationFrame(()=>{e=0,(()=>{let e=a.current;if(!e)return;let s=e.getBoundingClientRect();c(Math.min(1,Math.max(0,(.62*window.innerHeight-s.top)/(.62*window.innerHeight)))),o(window.innerWidth>=900?1:window.innerWidth>=640?.72:.46)})()}))};return s(),window.addEventListener("scroll",s,{passive:!0}),window.addEventListener("resize",s),()=>{e&&cancelAnimationFrame(e),window.removeEventListener("scroll",s),window.removeEventListener("resize",s)}},[]);let m="driver"===p?l:n;return(0,s.jsxs)("div",{className:`sp-fan${p?" ready":""}`,ref:a,"data-cast":p||void 0,children:[m.map((e,i)=>{let a=r[i];return(0,s.jsxs)("div",{className:"sp-fan-p",style:{zIndex:a.z,"--ap-delay":`${820+130*i}ms`,transform:`translate(${(t(a.x,d)*h).toFixed(2)}%, ${t(a.y,d).toFixed(1)}px) rotate(${t(a.r,d).toFixed(2)}deg) scale(${t(a.s,d).toFixed(3)})`},children:[(0,s.jsx)("span",{className:"sp-fan-notch","aria-hidden":"true"}),(0,s.jsx)("div",{className:"sp-fs",children:p?(0,s.jsx)(e,{}):null})]},i)}),(0,s.jsx)("span",{className:"sp-fan-tagwrap","aria-hidden":"true",style:{"--tag-x":(t(r[2].x,d)*h/100).toFixed(3),"--tag-y":t(r[2].y,d).toFixed(1)},children:(0,s.jsx)("span",{className:"sp-fan-tag sp-display",children:"driver"===p?"You keep 100%":"Just ask"})})]})}])},50855,e=>{"use strict";var s=e.i(43476);e.s(["default",0,function({data:e}){let i;if(!e)return null;try{if("string"==typeof e)i=JSON.parse(e);else{if("object"!=typeof e)return console.error("JsonLdInjector: Invalid data type"),null;i=e}}catch(e){return console.error("JsonLdInjector: Failed to parse JSON-LD data",e),null}return(0,s.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(i)}})}])}]);

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.