1import{c as v,j as t,_ as k,$ as A,L as f,O as C,Q as D,K as L,r as u,S as j,a as S,B as T,R as O,C as P}from"./index-Do6kcO0d.js";import{g as U,d as g,P as M}from"./ProductDocsLayout-esdOxF7Z.js";import{r as $,I as R,L as E}from"./index-R5_EmFko.js";import{T as H}from"./triangle-alert-CtCCTJpt.js";import"./accordion-DipDp95u.js";import"./index-DFTDAFjE.js";import"./input-CDLYo-Mw.js";import"./book-open-ScPZOwrD.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=v("CirclePlay",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polygon",{points:"10 8 16 12 10 16 10 8",key:"1cimsy"}]]),W={info:{label:"Note",Icon:R,ring:"border-l-primary"},tip:{label:"Pro tip",Icon:E,ring:"border-l-primary"},warning:{label:"Important",Icon:H,ring:"border-l-foreground"}},y=e=>typeof e=="string"?e:Array.isArray(e)?e.map(y).join(""):e&&typeof e=="object"&&"props"in e?y(e.props.children):"",G=e=>{const r=y(e).trim().match(/^\[!(TIP|NOTE|INFO|WARNING|IMPORTANT|CAUTION)\]\s*/i);if(!r)return null;const a=r[1].toUpperCase(),d=a==="TIP"?"tip":a==="WARNING"||a==="IMPORTANT"||a==="CAUTION"?"warning":"info",l=n=>{if(typeof n=="string")return n.replace(/^\s*\[![A-Z]+\]\s*/i,"");if(Array.isArray(n)){let i=!1;return n.map(c=>{if(i)return c;const m=l(c);return m!==c&&(i=!0),m})}if(n&&typeof n=="object"&&"props"in n){const i=n;return{...i,props:{...i.props,children:l(i.props.children)}}}return n};return{kind:d,rest:l(e)}},_=({kind:e,children:o})=>{const{label:r,Icon:a,ring:d}=W[e];return t.jsx("aside",{className:`not-prose my-6 rounded-r-md border-l-4 ${d} bg-secondary/60 p-5`,role:"note",children:t.jsxs("div",{className:"flex items-start gap-3",children:[t.jsx(a,{className:"mt-0.5 h-5 w-5 shrink-0 text-foreground","aria-hidden":!0}),t.jsxs("div",{className:"min-w-0",children:[t.jsx("p",{className:"mb-1 text-xs font-bold uppercase tracking-wider text-foreground",children:r}),t.jsx("div",{className:"prose-sm text-sm leading-relaxed text-muted-foreground [&>p:last-child]:mb-0",children:o})]})]})})},w="font-medium text-foreground underline decoration-primary decoration-2 underline-offset-4 transition-colors hover:text-primary",B={h2:({children:e,...o})=>t.jsx("h2",{...o,className:"mt-12 mb-4 scroll-mt-24 text-2xl font-bold text-foreground",children:e}),h3:({children:e,...o})=>t.jsx("h3",{...o,className:"mt-8 mb-3 scroll-mt-24 text-xl font-bold text-foreground",children:e}),p:({children:e,...o})=>t.jsx("p",{...o,className:"mb-4 leading-relaxed text-muted-foreground",children:e}),ul:({children:e,...o})=>t.jsx("ul",{...o,className:"mb-4 list-disc space-y-2 pl-6 text-muted-foreground",children:e}),ol:({children:e,...o})=>t.jsx("ol",{...o,className:"mb-4 list-decimal space-y-2 pl-6 text-muted-foreground",children:e}),li:({children:e,...o})=>t.jsx("li",{...o,className:"leading-relaxed",children:e}),strong:({children:e,...o})=>t.jsx("strong",{...o,className:"font-semibold text-foreground",children:e}),hr:()=>t.jsx("hr",{className:"my-10 border-border"}),blockquote:({children:e,...o})=>{const r=G(e);return r?t.jsx(_,{kind:r.kind,children:r.rest}):t.jsx("blockquote",{...o,className:"border-l-4 border-border bg-secondary/40 pl-4 italic text-muted-foreground",children:e})},a:({href:e,children:o,...r})=>
6{if(e&&e.startsWith("/"))return t.jsx(f,{to:e,...r,className:w,children:o});const a=e&&/^https?:\/\//.test(e)&&!e.includes("shotdata.io");return t.jsx("a",{href:e,...r,target:a?"_blank":void 0,rel:a?"noopener noreferrer":void 0,className:w,children:o})},img:({src:e,alt:o})=>t.jsx("img",{src:e,alt:o||"",loading:"lazy",className:"my-6 w-full rounded-lg border border-border bg-muted/30 shadow-sm"}),table:({children:e})=>t.jsx("div",{className:"my-6 overflow-x-auto rounded-lg border border-border",children:t.jsx("table",{className:"w-full text-sm",children:e})}),th:({children:e})=>t.jsx("th",{className:"border-b border-border bg-secondary/60 px-4 py-2 text-left font-semibold text-foreground",children:e}),td:({children:e})=>t.jsx("td",{className:"border-b border-border/60 px-4 py-2 align-top text-muted-foreground",children:e}),code:({inline:e,children:o,...r})=>e?t.jsx("code",{...r,className:"rounded bg-secondary px-1.5 py-0.5 font-mono text-[0.85em] text-foreground",children:o}):t.jsx("code",{...r,className:"font-mono text-sm",children:o})},N=({markdown:e})=>t.jsx("div",{className:"prose prose-lg max-w-none prose-headings:text-foreground prose-headings:font-bold prose-h2:mt-12 prose-h2:mb-4 prose-h2:text-2xl prose-h3:mt-8 prose-h3:mb-3 prose-h3:text-xl prose-p:text-muted-foreground prose-p:leading-relaxed prose-li:text-muted-foreground prose-strong:text-foreground",children:t.jsx(k,{remarkPlugins:[A],rehypePlugins:[$],components:B,children:e})}),J="2026-01-01T09:00:00+01:00",z=[{id:"register",title:"How to Register on shotdata.io",description:"In this video, you'll see how to quickly register on shotdata.io. We walk through the sign-up process step by step, from creating an account and verifying your email to logging in.",youtubeId:"ZeN-JinV3cw"},{id:"upload-data",title:"How to Upload Data",description:"Upload your data using the button in the upper right corner or from the Data Integrations page. Learn where to find both options and how to upload in just a few steps.",youtubeId:"1PQaO7BW1JA"},{id:"connect-garmin",title:"How to Connect shotdata.io with Garmin Connect",description:"Step-by-step walkthrough of linking your Garmin Connect account to shotdata.io so your Garmin R10/R50 sessions sync directly into the platform.",youtubeId:"Ure4J91qJVk"},{id:"club-names",title:"Use Your Own Club Names",description:"Shotdata.io lets you use your own club names for your shots. Learn how to customise your club names and where to change them in the Settings page.",youtubeId:"MyCuequQfAs"},{id:"settings-overview",title:"Settings Page Overview",description:"Walk through the Settings page and its main sections: Profile Settings, Data Integrations, My Clubs, Subscription, App Settings, Help & Support, Security & Privacy, and Logout.",youtubeId:"2Zgy1OCHfBM"},{id:"change-club",title:"How to Change the Club for a Shot",description:"Learn how to update the club selection for a specific shot in your session.",youtubeId:"DWXH1ZUuJfo"},{id:"compare-shots",title:"How to Compare Shots in the Shot List",description:"Learn how to select and compare multiple shots in the shot list to spot differences and identify patterns in your performance.",youtubeId:"cegpU6CfRD4"},{id:"dashboard-metrics",title:"How to Change the Dashboard Metrics",description:"Learn how to customise the metrics shown on your dashboard so you can focus on the data that matters most to your game.",youtubeId:"cAEDA9X3NSU"},{id:"trend-tables",title:"How to Adjust the Trend and Shot List Tables",description:"Learn how to customise the columns and metrics shown in the Trend and Shot List tables s
6o you can focus on the data points that matter most.",youtubeId:"G8dZnqqxjPs"},{id:"delete-shot",title:"How to Delete a Shot",description:"Learn how to remove individual shots from your sessions.",youtubeId:"JtXJBf9xZUA"}],Z=e=>z.find(o=>o.id===e),h="https://shotdata.io",V=e=>e.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-"),F=({article:e})=>{const o=`${h}/docs/${e.slug}`,{hasAnalyticsConsent:r,acceptAll:a}=L(),d=u.useMemo(()=>(e.tutorialIds??[]).map(s=>Z(s)).filter(s=>!!(s!=null&&s.youtubeId)),[e]),[l,n]=u.useMemo(()=>{const s=e.body.indexOf(` 7## `);return s===-1?["",e.body]:[e.body.slice(0,s).trim(),e.body.slice(s+1)]},[e]),i=u.useMemo(()=>e.body.split(` 8`).filter(s=>s.startsWith("## ")).map(s=>s.replace(/^##\s+/,"")).map(s=>({title:s,anchor:V(s)})),[e]),c=u.useMemo(()=>[{"@context":"https://schema.org","@type":"TechArticle",headline:e.title,description:e.metaDescription,mainEntityOfPage:o,url:o,image:j,author:{"@type":"Organization",name:"shotdata.io"},publisher:{"@type":"Organization",name:"shotdata.io",logo:{"@type":"ImageObject",url:`${h}/favicon-512.png`}}},...d.map(s=>({"@context":"https://schema.org","@type":"VideoObject",name:s.title,description:s.description,thumbnailUrl:`https://img.youtube.com/vi/${s.youtubeId}/hqdefault.jpg`,embedUrl:`https://www.youtube-nocookie.com/embed/${s.youtubeId}`,contentUrl:`https://www.youtube.com/watch?v=${s.youtubeId}`,uploadDate:s.uploadDate??J}))],[e,o,d]),m=u.useMemo(()=>[{name:"Home",url:h},{name:"Docs",url:`${h}/docs`},{name:e.title,url:o}],[e,o]);S({title:`${e.metaTitle} | shotdata.io`,description:e.metaDescription,canonical:o,ogTitle:e.metaTitle,ogDescription:e.metaDescription,ogUrl:o,ogImage:j,ogType:"article",structuredData:c,breadcrumbs:m});const p=g.findIndex(s=>s.slug===e.slug),x=p>0?g[p-1]:void 0,b=p<g.length-1?g[p+1]:void 0,I=i.length>0&&t.jsxs("div",{children:[t.jsx("h2",{className:"mb-4 text-[10px] font-bold uppercase tracking-widest text-muted-foreground",children:"On this page"}),t.jsx("nav",{className:"space-y-2 text-sm",children:i.map(s=>t.jsxs("a",{href:`#${s.anchor}`,className:"group flex items-start gap-3 py-1 text-muted-foreground transition-colors hover:text-foreground",children:[t.jsx("span",{className:"mt-1.5 h-1 w-1 shrink-0 rounded-full bg-border group-hover:bg-primary"}),t.jsx("span",{children:s.title})]},s.anchor))})]});return t.jsxs(M,{activeSlug:e.slug,breadcrumbTitle:e.title,aside:I,children:[t.jsxs("header",{className:"mb-10 border-b border-border pb-8",children:[t.jsx("div",{className:"mb-4 inline-block bg-secondary px-2.5 py-1 text-[10px] font-bold uppercase tracking-widest text-foreground",children:e.category}),t.jsx("h1",{className:"mb-4 text-4xl font-bold tracking-tight text-foreground sm:text-5xl",children:e.title}),t.jsx("p",{className:"max-w-2xl text-lg leading-relaxed text-muted-foreground",children:e.summary})]}),l&&t.jsx(N,{markdown:l}),d.map(s=>t.jsxs("figure",{className:"mb-10 mt-6",children:[r?t.jsx("div",{className:"aspect-video overflow-hidden rounded-lg border border-border",children:t.jsx("iframe",{className:"h-full w-full",src:`https://www.youtube-nocookie.com/embed/${s.youtubeId}`,title:s.title,allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,loading:"lazy"})}):t.jsxs("div",{className:"relative aspect-video overflow-hidden rounded-lg border border-border",children:[t.jsx("img",{src:`https://img.youtube.com/vi/${s.youtubeId}/hqdefault.jpg`,alt:`${s.title} video preview`,className:"h-full w-full object-cover",loading:"lazy"}),t.jsxs("div",{className:"absolute inset-0 flex flex-col items-center justify-center gap-3 bg-background/80 p-6 text-center",children:[t.jsx(q,{className:"h-10 w-10 text-foreground"}),t.jsx("p",{className:"text-sm text-muted-foreground",children:"Accept analytics cookies to play this video here."}),t.jsx(T,{variant:"cta",onClick:a,children:"Accept & play"})]})]}),t.jsxs("figcaption",{className:"mt-3 text-sm text-muted-foreground",children:["Watch the walkthrough: ",s.title,"."]})]},s.id)),t.jsx(N,{markdown:n}),t.jsxs("nav",{className:"mt-16 grid gap-4 border-t border-border pt-8 sm:grid-cols-2",children:[x?t.jsxs(f,{to:`/docs/${x.slug}`,className:"group rounded-lg border border-border p-4 transition-colors hover:border-primary",children:[t.jsxs("span",{className:"mb-1 flex items-center gap-1 text-xs uppercase tracking-wide text-muted-foreground",children:[t.jsx(O,{className:"h-3 w-3"})," Previous"]}),t.jsx("span",{className:"font-semibold text-foreground",children:x.title})]}):t.jsx("span",{}),b&&t.jsxs(f,{to:`/docs/${b.slug}`,className:"group rounded-lg border border-border p-4 text-right transition-colors hover:border-primary sm:col-start-2",children:[t.jsxs("span",{className:"mb-1 flex items-center justify-end gap-1 text-xs uppercase tracking-wide text-muted-foreground",children:["Next ",t.jsx(P,{className:"h-3 w-3"})]}),t.jsx("span",{className:"font-semibold text-foreground",children:b.title})]})]})]})},re=()=>{const{slug:e=""}=C(),o=U(e);return o?t.jsx(F,{article:o},o.slug):t.jsx(D,{to:"/docs",replace:!0})};export{re 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.