{"version":3,"file":"CustomTourForm.D7NaVe7F.mjs","names":["React.useMemo","React.useState","React.useCallback","React.useRef","_Fragment"],"sources":["https:/framerusercontent.com/modules/vlkIuz1lAcxi0YATEIXt/Cqn4k9ICl7rPfUOpRd2p/CustomTourForm.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * Book Tour – two-step booking form\n * Step 1: date & time. Step 2: family details. Then submit.\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 843\n */const MONTHS=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];const WEEKDAYS_LONG=[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"];const WEEKDAY_HEADERS=[\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\",\"Su\"];const pad=n=>String(n).padStart(2,\"0\");const toKey=(y,m,d)=>`${y}-${pad(m+1)}-${pad(d)}`;const EMAIL_RE=/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;// Digits plus optional + ( ) - and spaces, with 8–15 actual digits\nconst PHONE_RE=/^[+()\\d\\s-]+$/;const isValidPhone=s=>{const digits=s.replace(/\\D/g,\"\").length;return PHONE_RE.test(s)&&digits>=8&&digits<=15;};// Desktop layout is designed at this card width (desktop-ref); wider cards\n// scale up to MAX_SCALE so the design keeps its proportions\nconst DESIGN_WIDTH=843;const MAX_SCALE=1.6;// Tracking params passed through from the page URL to Jotform\nconst UTM_KEYS=[\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_content\",\"gclid\"];// Last part of the page URL: tga.edu.au/bexley -> \"bexley\"\nconst centreFromUrl=()=>{if(typeof window===\"undefined\")return\"\";const parts=window.location.pathname.split(\"/\").filter(Boolean);return decodeURIComponent(parts[parts.length-1]||\"\");};const EMPTY_DETAILS={parent_first_name:\"\",parent_last_name:\"\",email:\"\",mobile:\"\",child_first_name:\"\",child_last_name:\"\",child_dob:\"\",start_date:\"\",days_required:[],comments:\"\",referral_source:\"\"};export default function BookTour(props){const{dateStepTitle,timeStepTitle,detailsStepTitle,timezoneNote,footerText,buttonLabel,emptyTimeText,detailsFooterText,backLabel,submitLabel,successTitle,successText,centre,previewCentre,apiBase,maxMonthsAhead,careDays,referralOptions,successLink,previewStep,layout,accent,accentText,accentSoft,textColor,mutedColor,borderColor,disabledBg,background,errorColor,radius,padding,font,onContinue,onSubmit,style}=props;const isCanvas=RenderTarget.current()===RenderTarget.canvas;// Centre set in Framer (e.g. bound to a CMS field), else from the page URL.\n// The canvas has no real page URL, so it previews a fixed centre.\nconst centreSlug=React.useMemo(()=>{if(centre?.trim())return centre.trim();if(isCanvas)return previewCentre?.trim()||\"\";return centreFromUrl();},[centre,previewCentre,isCanvas]);/* ---------------- Step 1: date & time ---------------- */const today=React.useMemo(()=>{const t=new Date;t.setHours(0,0,0,0);return t;},[]);// Jotform applies each centre's own minimum notice, so start from today\nconst firstBookable=today;const[view,setView]=React.useState(()=>({y:firstBookable.getFullYear(),m:firstBookable.getMonth()}));const[selectedDate,setSelectedDate]=React.useState(null);const[selectedTime,setSelectedTime]=React.useState(null);/* ----- Centre availability from Jotform, loaded one month at a time ----- */const[jfSlots,setJfSlots]=React.useState({});const[jfMonths,setJfMonths]=React.useState({});const monthKey=`${view.y}-${pad(view.m+1)}`;// Start over when the centre changes\nReact.useEffect(()=>{setJfSlots({});setJfMonths({});},[centreSlug,apiBase]);React.useEffect(()=>{if(!apiBase)return;if(jfMonths[monthKey])return;if(!centreSlug){setJfMonths(s=>({...s,[monthKey]:\"unknown\"}));return;}setJfMonths(s=>({...s,[monthKey]:\"loading\"}));const last=new Date(view.y,view.m+1,0).getDate();const url=`${apiBase.replace(/\\/$/,\"\")}/tga_framer_tour_slots`+`?campus=${encodeURIComponent(centreSlug)}`+`&start=${toKey(view.y,view.m,1)}`+`&end=${toKey(view.y,view.m,last)}`;fetch(url).then(async r=>{// 404 = the URL isn't one of the centres\nif(r.status===404){setJfMonths(s=>({...s,[monthKey]:\"unknown\"}));return;}if(!r.ok)throw new Error(String(r.status));const json=await r.json();setJfSlots(s=>({...s,...json?.slots||{}}));setJfMonths(s=>({...s,[monthKey]:\"ok\"}));}).catch(()=>setJfMonths(s=>({...s,[monthKey]:\"error\"})));},[apiBase,centreSlug,monthKey,jfMonths,view]);// Forget a month so it loads again, e.g. after a slot was taken\nconst reloadMonth=dateKey=>{const key=dateKey.slice(0,7);setJfMonths(s=>{const next={...s};delete next[key];return next;});};const monthStatus=jfMonths[monthKey];const isDateOpen=React.useCallback((y,m,d)=>{const date=new Date(y,m,d);if(date<firstBookable)return false;const limit=new Date(today);limit.setMonth(limit.getMonth()+(maxMonthsAhead||12));if(date>limit)return false;// Open when the centre has at least one free slot that day\nconst day=jfSlots[toKey(y,m,d)];return!!day&&Object.values(day).some(Boolean);},[firstBookable,today,maxMonthsAhead,jfSlots]);// Calendar grid (Monday first)\nconst cells=React.useMemo(()=>{const first=new Date(view.y,view.m,1);const offset=(first.getDay()+6)%7;const days=new Date(view.y,view.m+1,0).getDate();const out=Array(offset).fill(null);for(let d=1;d<=days;d++)out.push(d);return out;},[view]);const maxDate=new Date(today);maxDate.setMonth(maxDate.getMonth()+(maxMonthsAhead||12));const viewIndex=view.y*12+view.m;const canPrev=viewIndex>firstBookable.getFullYear()*12+firstBookable.getMonth();const canNext=viewIndex<maxDate.getFullYear()*12+maxDate.getMonth();const shiftMonth=delta=>{setView(v=>{const d=new Date(v.y,v.m+delta,1);return{y:d.getFullYear(),m:d.getMonth()};});};// Shown above the times, e.g. when the picked slot was just taken\nconst[slotMessage,setSlotMessage]=React.useState(\"\");const selectDate=key=>{setSelectedDate(key);setSelectedTime(null);setSlotMessage(\"\");};// Jotform times read \"10:30 AM\"; show them as \"10:30 am\"\nconst timeLabel=t=>t.toLowerCase();const timeOptions=React.useMemo(()=>{if(!selectedDate)return[];return Object.entries(jfSlots[selectedDate]||{}).map(([t,free])=>({value:t,booked:!free}));},[selectedDate,jfSlots]);const selectedHeading=React.useMemo(()=>{if(!selectedDate)return\"\";const[y,m,d]=selectedDate.split(\"-\").map(Number);const date=new Date(y,m-1,d);return`${WEEKDAYS_LONG[date.getDay()]}, ${d} ${MONTHS[m-1]}`;},[selectedDate]);const ready=!!selectedDate&&!!selectedTime;/* ---------------- Steps ---------------- */const rootRef=React.useRef(null);const[liveStep,setLiveStep]=React.useState(\"datetime\");// On the canvas, show whichever step is picked in the properties panel\nconst step=isCanvas?previewStep:liveStep;const goTo=next=>{setLiveStep(next);// Bring the top of the card into view when the step changes\nrequestAnimationFrame(()=>{const el=rootRef.current;if(el&&el.getBoundingClientRect().top<0){el.scrollIntoView({behavior:\"smooth\",block:\"start\"});}});};const handleContinue=()=>{if(!ready)return;onContinue?.();goTo(\"details\");};/* ---------------- Step 2: details ---------------- */const[details,setDetails]=React.useState(EMPTY_DETAILS);const[errors,setErrors]=React.useState({});const[submitting,setSubmitting]=React.useState(false);const[submitError,setSubmitError]=React.useState(\"\");const setField=(key,value)=>{setDetails(d=>({...d,[key]:value}));if(errors[key])setErrors(e=>({...e,[key]:undefined}));};const toggleDay=day=>{const has=details.days_required.includes(day);setField(\"days_required\",has?details.days_required.filter(d=>d!==day):[...details.days_required,day]);};const validate=()=>{const e={};const req=\"This field is required.\";if(!details.parent_first_name.trim())e.parent_first_name=req;if(!details.parent_last_name.trim())e.parent_last_name=req;if(!details.email.trim())e.email=req;else if(!EMAIL_RE.test(details.email.trim()))e.email=\"Please enter a valid email address.\";if(!details.mobile.trim())e.mobile=req;else if(!isValidPhone(details.mobile.trim()))e.mobile=\"Please enter 8–15 digits, e.g. 0412 345 678 or +61 412 345 678.\";if(!details.child_first_name.trim())e.child_first_name=req;if(!details.child_last_name.trim())e.child_last_name=req;if(!details.child_dob)e.child_dob=req;if(!details.start_date)e.start_date=req;if(!details.days_required.length)e.days_required=\"Please choose at least one day.\";if(!details.referral_source)e.referral_source=req;setErrors(e);const firstError=Object.keys(e)[0];if(firstError){rootRef.current?.querySelector(`[data-field=\"${firstError}\"]`)?.scrollIntoView({behavior:\"smooth\",block:\"center\"});}return!firstError;};// Booking sent to the TGA API: details, the centre and any tracking params\nconst payload=()=>{const params=new URLSearchParams(window.location.search);const tracking={};UTM_KEYS.forEach(k=>{const v=params.get(k);if(v)tracking[k]=v;});return{...details,...tracking,campus:centreSlug,tour_date:selectedDate??\"\",tour_time:selectedTime??\"\"};};const finish=()=>{onSubmit?.();if(successLink)window.location.href=successLink;else goTo(\"done\");};// The time was taken by someone else: back to step 1 with fresh slots\nconst slotTaken=()=>{if(selectedDate)reloadMonth(selectedDate);setSelectedTime(null);setSlotMessage(\"Sorry, that time has just been booked. Please choose another time.\");goTo(\"datetime\");};const handleSubmit=async()=>{if(!validate())return;if(!apiBase){setSubmitError(\"No TGA API URL set.\");return;}setSubmitting(true);setSubmitError(\"\");try{const res=await fetch(`${apiBase.replace(/\\/$/,\"\")}/tga_framer_tour_book`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(payload())});// WordPress answers 409 when Jotform says the slot is gone\nif(res.status===409){slotTaken();return;}if(!res.ok)throw new Error(String(res.status));const json=await res.json().catch(()=>null);// Dry run on the server: nothing was booked, show what would be sent\nif(json?.dry_run)console.log(\"[Book Tour] Dry run, not submitted:\",json);finish();}catch{setSubmitError(\"Something went wrong. Please try again.\");}finally{setSubmitting(false);}};/* ---------------- Responsive ---------------- */// On the live site \"auto\" follows the viewport through CSS media queries\n// (desktop ≥1200, tablet 810–1199, mobile <810), so there is no flash on\n// load. The canvas has no real viewport per breakpoint, so there we pick\n// a layout from the component's width.\nconst[canvasMode,setCanvasMode]=React.useState(\"desktop\");React.useLayoutEffect(()=>{if(!isCanvas||layout!==\"auto\")return;const el=rootRef.current;if(!el||typeof ResizeObserver===\"undefined\")return;const update=()=>{const w=el.offsetWidth;setCanvasMode(w>=760?\"desktop\":w>=600?\"tablet\":\"mobile\");};update();const ro=new ResizeObserver(update);ro.observe(el);return()=>ro.disconnect();},[isCanvas,layout]);const modeClass=layout!==\"auto\"?` is-${layout}`:isCanvas?` is-${canvasMode}`:\" is-auto\";// Desktop is designed at DESIGN_WIDTH (desktop-ref). On a wider card, scale\n// text, boxes and spacing up together so it keeps the same proportions\n// instead of only stretching sideways. Tablet and mobile stay at 1.\nconst[scale,setScale]=React.useState(1);React.useLayoutEffect(()=>{const el=rootRef.current;if(!el)return;const update=()=>{const desktop=layout===\"desktop\"||layout===\"auto\"&&(isCanvas?canvasMode===\"desktop\":window.innerWidth>=1200);const next=desktop?Math.min(MAX_SCALE,Math.max(1,el.offsetWidth/DESIGN_WIDTH)):1;setScale(Math.round(next*1e3)/1e3);};update();const ro=typeof ResizeObserver!==\"undefined\"?new ResizeObserver(update):null;ro?.observe(el);window.addEventListener(\"resize\",update);return()=>{ro?.disconnect();window.removeEventListener(\"resize\",update);};},[layout,isCanvas,canvasMode]);const vars={\"--bt-accent\":accent,\"--bt-accent-text\":accentText,\"--bt-accent-soft\":accentSoft,\"--bt-text\":textColor,\"--bt-muted\":mutedColor,\"--bt-border\":borderColor,\"--bt-disabled\":disabledBg,\"--bt-bg\":background,\"--bt-error\":errorColor,\"--bt-s\":scale};const input=(key,placeholder,type=\"text\",extra={})=>/*#__PURE__*/_jsxs(\"div\",{className:\"bt-input-wrap\",\"data-field\":key,children:[/*#__PURE__*/_jsx(\"input\",{className:\"bt-input\"+(errors[key]?\" has-error\":\"\"),type:type,name:key,placeholder:placeholder,value:details[key],onChange:e=>setField(key,e.target.value),\"aria-invalid\":!!errors[key],...extra}),errors[key]&&/*#__PURE__*/_jsx(\"span\",{className:\"bt-error\",children:errors[key]})]});return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:\"bt-root\"+modeClass,style:{...vars,...style,fontFamily:font?.fontFamily,background,borderRadius:radius*scale,padding:padding*scale},children:[/*#__PURE__*/_jsx(\"style\",{children:CSS}),step===\"datetime\"&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{className:\"bt-columns\",children:[/*#__PURE__*/_jsxs(\"section\",{className:\"bt-col\",children:[/*#__PURE__*/_jsx(StepTitle,{n:1,label:dateStepTitle}),/*#__PURE__*/_jsxs(\"div\",{className:\"bt-month\",children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bt-nav\",onClick:()=>shiftMonth(-1),disabled:!canPrev,\"aria-label\":\"Previous month\",children:/*#__PURE__*/_jsx(Chevron,{dir:\"left\"})}),/*#__PURE__*/_jsxs(\"span\",{className:\"bt-month-label\",children:[MONTHS[view.m],\" \",view.y]}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bt-nav\",onClick:()=>shiftMonth(1),disabled:!canNext,\"aria-label\":\"Next month\",children:/*#__PURE__*/_jsx(Chevron,{dir:\"right\"})})]}),/*#__PURE__*/_jsx(\"div\",{className:\"bt-grid bt-weekdays\",children:WEEKDAY_HEADERS.map(w=>/*#__PURE__*/_jsx(\"span\",{children:w},w))}),/*#__PURE__*/_jsx(\"div\",{className:\"bt-grid\",role:\"grid\",children:cells.map((d,i)=>{if(d===null)return /*#__PURE__*/_jsx(\"span\",{},`e${i}`);const key=toKey(view.y,view.m,d);const open=isDateOpen(view.y,view.m,d);const selected=selectedDate===key;return /*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"bt-day\"+(open?\" is-open\":\" is-closed\")+(selected?\" is-selected\":\"\"),disabled:!open,\"aria-pressed\":selected,onClick:()=>selectDate(key),children:[d,open&&/*#__PURE__*/_jsx(\"i\",{className:\"bt-dot\"})]},key);})}),/*#__PURE__*/_jsxs(\"div\",{className:\"bt-legend\",children:[/*#__PURE__*/_jsxs(\"span\",{children:[/*#__PURE__*/_jsx(\"i\",{className:\"bt-swatch is-open\"}),\" \",\"Available\"]}),/*#__PURE__*/_jsxs(\"span\",{children:[/*#__PURE__*/_jsx(\"i\",{className:\"bt-swatch is-closed\"}),\" No tours\"]}),/*#__PURE__*/_jsxs(\"span\",{children:[/*#__PURE__*/_jsx(\"i\",{className:\"bt-swatch is-selected\"}),\" \",\"Selected\"]})]}),monthStatus===\"loading\"&&/*#__PURE__*/_jsx(\"div\",{className:\"bt-note bt-status\",children:\"Loading tour times…\"}),monthStatus===\"unknown\"&&/*#__PURE__*/_jsx(\"div\",{className:\"bt-error bt-status\",children:centreSlug?`Tours can't be booked online for \"${centreSlug}\".`:\"No centre found for this page.\"}),monthStatus===\"error\"&&/*#__PURE__*/_jsxs(\"div\",{className:\"bt-error bt-status\",children:[\"Couldn't load tour times.\",\" \",/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bt-link\",onClick:()=>reloadMonth(monthKey),children:\"Try again\"})]})]}),/*#__PURE__*/_jsxs(\"section\",{className:\"bt-col\",children:[/*#__PURE__*/_jsx(StepTitle,{n:2,label:timeStepTitle}),selectedDate?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{className:\"bt-date-heading\",children:selectedHeading}),/*#__PURE__*/_jsx(\"div\",{className:\"bt-note\",children:timezoneNote}),slotMessage&&/*#__PURE__*/_jsx(\"div\",{className:\"bt-error bt-status\",children:slotMessage}),/*#__PURE__*/_jsx(\"div\",{className:\"bt-times\",children:timeOptions.map(({value:t,booked})=>{const selected=selectedTime===t;return /*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"bt-time\"+(booked?\" is-booked\":\"\")+(selected?\" is-selected\":\"\"),disabled:booked,\"aria-pressed\":selected,onClick:()=>{setSelectedTime(t);setSlotMessage(\"\");},children:[selected&&/*#__PURE__*/_jsx(Check,{}),timeLabel(t)]},t);})})]}):/*#__PURE__*/_jsx(\"div\",{className:\"bt-note bt-empty\",children:emptyTimeText})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"bt-footer\",children:[/*#__PURE__*/_jsx(\"p\",{children:footerText}),/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"bt-btn bt-btn-primary\",disabled:!ready,onClick:handleContinue,children:[buttonLabel,/*#__PURE__*/_jsx(Arrow,{})]})]})]}),step===\"details\"&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{className:\"bt-details-head\",children:[/*#__PURE__*/_jsx(StepTitle,{n:3,label:detailsStepTitle}),/*#__PURE__*/_jsxs(\"div\",{className:\"bt-summary\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"bt-summary-icon\",children:/*#__PURE__*/_jsx(CalendarIcon,{})}),/*#__PURE__*/_jsxs(\"span\",{children:[selectedHeading||\"Tuesday, 17 November\",\" \\xb7 \",selectedTime?timeLabel(selectedTime):\"10:30 am\"]}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bt-link\",onClick:()=>goTo(\"datetime\"),children:\"Change\"})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"bt-fields\",children:[/*#__PURE__*/_jsx(Field,{label:\"Parent Name\",required:true,children:/*#__PURE__*/_jsxs(\"div\",{className:\"bt-pair\",children:[input(\"parent_first_name\",\"First Name\",\"text\",{autoComplete:\"given-name\"}),input(\"parent_last_name\",\"Last Name\",\"text\",{autoComplete:\"family-name\"})]})}),/*#__PURE__*/_jsx(Field,{label:\"Email\",required:true,children:input(\"email\",\"example@example.com\",\"email\",{autoComplete:\"email\"})}),/*#__PURE__*/_jsx(Field,{label:\"Mobile\",required:true,children:input(\"mobile\",\"e.g. 0412 345 678\",\"tel\",{autoComplete:\"tel\"})}),/*#__PURE__*/_jsx(Field,{label:\"Child's Name\",required:true,children:/*#__PURE__*/_jsxs(\"div\",{className:\"bt-pair\",children:[input(\"child_first_name\",\"First Name\"),input(\"child_last_name\",\"Last Name\")]})}),/*#__PURE__*/_jsxs(\"div\",{className:\"bt-pair bt-pair-fields\",children:[/*#__PURE__*/_jsx(Field,{label:\"Child's DOB\",required:true,children:input(\"child_dob\",\"DD-MM-YYYY\",\"date\",{max:toKey(today.getFullYear(),today.getMonth(),today.getDate())})}),/*#__PURE__*/_jsx(Field,{label:\"Proposed Date to Start Care\",required:true,children:input(\"start_date\",\"DD-MM-YYYY\",\"date\")})]}),/*#__PURE__*/_jsxs(Field,{label:\"Days Required\",required:true,children:[/*#__PURE__*/_jsx(\"div\",{className:\"bt-days\",\"data-field\":\"days_required\",children:(careDays||[]).map(day=>{const on=details.days_required.includes(day);return /*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"bt-chip\"+(on?\" is-selected\":\"\"),\"aria-pressed\":on,onClick:()=>toggleDay(day),children:[on&&/*#__PURE__*/_jsx(Check,{}),day]},day);})}),errors.days_required&&/*#__PURE__*/_jsx(\"span\",{className:\"bt-error\",children:errors.days_required})]}),/*#__PURE__*/_jsx(Field,{label:\"Comments or Special Requirements\",children:/*#__PURE__*/_jsx(\"textarea\",{className:\"bt-input bt-textarea\",name:\"comments\",placeholder:\"Type here...\",rows:3,value:details.comments,onChange:e=>setField(\"comments\",e.target.value)})}),/*#__PURE__*/_jsx(Field,{label:\"Referral Source\",required:true,children:/*#__PURE__*/_jsxs(\"div\",{className:\"bt-input-wrap bt-select-wrap\",\"data-field\":\"referral_source\",children:[/*#__PURE__*/_jsxs(\"select\",{className:\"bt-input bt-select\"+(details.referral_source?\"\":\" is-placeholder\")+(errors.referral_source?\" has-error\":\"\"),name:\"referral_source\",value:details.referral_source,onChange:e=>setField(\"referral_source\",e.target.value),children:[/*#__PURE__*/_jsx(\"option\",{value:\"\",disabled:true,children:\"Please Select\"}),(referralOptions||[]).map(o=>/*#__PURE__*/_jsx(\"option\",{value:o,children:o},o))]}),/*#__PURE__*/_jsx(\"span\",{className:\"bt-select-arrow\",children:/*#__PURE__*/_jsx(Chevron,{dir:\"down\"})}),errors.referral_source&&/*#__PURE__*/_jsx(\"span\",{className:\"bt-error\",children:errors.referral_source})]})})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"bt-footer\",children:[/*#__PURE__*/_jsx(\"p\",{children:detailsFooterText}),/*#__PURE__*/_jsxs(\"div\",{className:\"bt-actions\",children:[/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"bt-btn bt-btn-secondary\",onClick:()=>goTo(\"datetime\"),children:[/*#__PURE__*/_jsx(Chevron,{dir:\"left\"}),backLabel]}),/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"bt-btn bt-btn-primary\",disabled:submitting,onClick:handleSubmit,children:[submitting?\"Sending…\":submitLabel,!submitting&&/*#__PURE__*/_jsx(Arrow,{})]})]})]}),submitError&&/*#__PURE__*/_jsx(\"div\",{className:\"bt-error bt-submit-error\",children:submitError})]}),step===\"done\"&&/*#__PURE__*/_jsxs(\"div\",{className:\"bt-done\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"bt-done-icon\",children:/*#__PURE__*/_jsx(Check,{})}),/*#__PURE__*/_jsx(\"div\",{className:\"bt-done-title\",children:successTitle}),/*#__PURE__*/_jsxs(\"div\",{className:\"bt-done-when\",children:[selectedHeading||\"Tuesday, 17 November\",\" \\xb7\",\" \",selectedTime?timeLabel(selectedTime):\"10:30 am\"]}),/*#__PURE__*/_jsx(\"p\",{className:\"bt-done-text\",children:successText})]})]});}function Field({label,required,children}){return /*#__PURE__*/_jsxs(\"div\",{className:\"bt-field\",children:[/*#__PURE__*/_jsxs(\"label\",{className:\"bt-label\",children:[label,required&&/*#__PURE__*/_jsx(\"span\",{className:\"bt-required\",children:\"*\"})]}),children]});}function StepTitle({n,label}){return /*#__PURE__*/_jsxs(\"div\",{className:\"bt-step\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"bt-step-num\",children:n}),/*#__PURE__*/_jsx(\"span\",{className:\"bt-step-label\",children:label})]});}function Chevron({dir}){const d={left:\"M15 6l-6 6 6 6\",right:\"M9 6l6 6-6 6\",down:\"M6 9l6 6 6-6\"}[dir];return /*#__PURE__*/_jsx(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",fill:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:d,stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})});}function Check(){return /*#__PURE__*/_jsx(\"svg\",{width:\"12\",height:\"12\",viewBox:\"0 0 24 24\",fill:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 12.5l4.5 4.5L19 7.5\",stroke:\"currentColor\",strokeWidth:\"2.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})});}function Arrow(){return /*#__PURE__*/_jsx(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",fill:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 12h14M13 6l6 6-6 6\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})});}function CalendarIcon(){return /*#__PURE__*/_jsxs(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",fill:\"none\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3.5\",y:\"5\",width:\"17\",height:\"15\",rx:\"2.5\",stroke:\"currentColor\",strokeWidth:\"1.8\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3.5 10h17M8 3v4M16 3v4\",stroke:\"currentColor\",strokeWidth:\"1.8\",strokeLinecap:\"round\"})]});}// Tablet: still two columns, slightly tighter\nconst tabletRules=s=>`\n${s} { min-width: 640px; }\n${s} .bt-columns { column-gap: 20px; }\n${s} .bt-grid { gap: 5px; }\n${s} .bt-times { gap: 6px; }\n`;// Mobile (matches mobile-ref): stacked columns, bigger tap targets,\n// footer text above full-width buttons\nconst mobileRules=s=>`\n${s} .bt-columns { grid-template-columns: 1fr; row-gap: 28px; }\n${s} .bt-step { margin-bottom: 16px; }\n${s} .bt-step-num { width: 26px; height: 26px; font-size: 12px; }\n${s} .bt-step-label { font-size: 18px; }\n${s} .bt-month-label { font-size: 15px; }\n${s} .bt-nav { width: 36px; height: 36px; }\n${s} .bt-grid { gap: 5px; }\n${s} .bt-weekdays span { font-size: 11px; }\n${s} .bt-day { height: auto; aspect-ratio: 1 / 1.05; font-size: 12px; }\n${s} .bt-dot { bottom: 6px; }\n${s} .bt-legend { font-size: 10px; }\n${s} .bt-date-heading { font-size: 15px; }\n${s} .bt-note { font-size: 11px; }\n${s} .bt-times { gap: 10px; }\n${s} .bt-time { height: 46px; font-size: 13px; }\n${s} .bt-footer { flex-direction: column; align-items: stretch; gap: 20px; }\n${s} .bt-footer p { flex: none; font-size: 11px; line-height: 1.5; }\n${s} .bt-btn { width: 100%; height: 50px; justify-content: center; font-size: 13px; }\n${s} .bt-actions { flex-direction: column-reverse; width: 100%; gap: 10px; }\n${s} .bt-details-head { flex-direction: column; align-items: flex-start; gap: 0; }\n${s} .bt-pair { grid-template-columns: 1fr; }\n${s} .bt-label { font-size: 13px; }\n${s} .bt-input { height: 46px; font-size: 16px; }\n${s} .bt-textarea { height: auto; }\n${s} .bt-chip { height: 42px; font-size: 13px; flex: 1 1 calc(33.33% - 8px); justify-content: center; }\n`;// Desktop sizes grow with the card: every px (except hairline borders) is\n// multiplied by --bt-s, which the component sets from its width.\nconst scalePx=css=>css.replace(/(\\d*\\.?\\d+)px/g,(m,n)=>Number(n)<=1?m:`calc(${n}px * var(--bt-s, 1))`);const BASE_CSS=`\n.bt-root {\n    box-sizing: border-box;\n    width: 100%;\n    min-width: 320px;\n    color: var(--bt-text);\n}\n.bt-root *, .bt-root *::before, .bt-root *::after { box-sizing: border-box; }\n/* Every element uses the Font property set on the root */\n.bt-root * { font-family: inherit !important; }\n\n.bt-columns {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    column-gap: 24px;\n    row-gap: 32px;\n}\n\n/* Step titles */\n.bt-step { display: flex; align-items: center; gap: 8px; margin-bottom: 18px; }\n.bt-step-num {\n    width: 22px; height: 22px; border-radius: 50%;\n    background: var(--bt-accent-soft); color: var(--bt-accent-text);\n    display: grid; place-items: center;\n    font-size: 11px; font-weight: 500;\n}\n.bt-step-label { color: var(--bt-accent-text); font-size: 15px; font-weight: 500; }\n\n/* Month header */\n.bt-month {\n    display: flex; align-items: center; justify-content: space-between;\n    margin-bottom: 18px;\n}\n.bt-month-label { color: var(--bt-accent-text); font-size: 13px; font-weight: 600; }\n.bt-nav {\n    width: 32px; height: 32px; border-radius: 50%;\n    border: 1px solid var(--bt-border); background: var(--bt-bg);\n    color: var(--bt-accent-text);\n    display: grid; place-items: center; cursor: pointer;\n    transition: border-color .15s, background .15s;\n}\n.bt-nav:hover:not(:disabled) { border-color: var(--bt-accent); }\n.bt-nav:disabled { opacity: .35; cursor: default; }\n\n/* Calendar grid */\n.bt-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }\n.bt-weekdays { margin-bottom: 8px; }\n.bt-weekdays span {\n    text-align: center; font-size: 10px; font-weight: 500;\n    color: var(--bt-text); padding: 4px 0 8px;\n}\n.bt-day {\n    position: relative;\n    height: 34px; border-radius: 8px;\n    font-size: 11px; line-height: 1;\n    display: flex; align-items: center; justify-content: center;\n    border: 1px solid transparent; padding: 0;\n    transition: border-color .15s, background .15s, color .15s;\n}\n.bt-day.is-open {\n    background: var(--bt-bg); border-color: var(--bt-border);\n    color: var(--bt-text); cursor: pointer;\n}\n.bt-day.is-open:hover { border-color: var(--bt-accent); }\n.bt-day.is-closed { background: var(--bt-disabled); color: var(--bt-muted); cursor: default; }\n.bt-day.is-selected {\n    background: var(--bt-accent); border-color: var(--bt-accent);\n    color: #fff; font-weight: 600;\n}\n.bt-dot {\n    position: absolute; left: 50%; bottom: 5px;\n    width: 3px; height: 3px; border-radius: 50%;\n    background: var(--bt-accent); transform: translateX(-50%);\n}\n.bt-day.is-selected .bt-dot { background: #fff; }\n\n/* Legend */\n.bt-legend {\n    display: flex; flex-wrap: wrap; gap: 16px; margin-top: 18px;\n    font-size: 9px; color: var(--bt-muted);\n}\n.bt-legend span { display: inline-flex; align-items: center; gap: 5px; }\n.bt-swatch { width: 9px; height: 9px; border-radius: 2px; display: inline-block; }\n.bt-swatch.is-open { border: 1px solid var(--bt-border); background: var(--bt-bg); }\n.bt-swatch.is-closed { background: var(--bt-disabled); }\n.bt-swatch.is-selected { background: var(--bt-accent); }\n\n/* Time column */\n.bt-date-heading {\n    color: var(--bt-accent-text); font-size: 13px; font-weight: 600;\n    margin-top: 6px;\n}\n.bt-note { font-size: 10px; color: var(--bt-muted); margin-top: 6px; }\n.bt-empty { margin-top: 10px; }\n.bt-times {\n    display: grid; grid-template-columns: 1fr 1fr; gap: 8px;\n    margin-top: 14px;\n}\n.bt-time {\n    height: 40px; border-radius: 8px;\n    border: 1px solid var(--bt-border); background: var(--bt-bg);\n    color: var(--bt-text); font-size: 11px;\n    display: flex; align-items: center; justify-content: center; gap: 6px;\n    cursor: pointer; transition: border-color .15s, background .15s, color .15s;\n}\n.bt-time:hover:not(:disabled) { border-color: var(--bt-accent); }\n.bt-time.is-selected {\n    background: var(--bt-accent); border-color: var(--bt-accent);\n    color: #fff; font-weight: 500;\n}\n.bt-time.is-booked {\n    background: var(--bt-disabled); border-color: var(--bt-disabled);\n    color: var(--bt-muted); text-decoration: line-through; cursor: default;\n}\n\n/* Details step */\n.bt-details-head {\n    display: flex; align-items: center; justify-content: space-between;\n    gap: 16px; flex-wrap: wrap; margin-bottom: 8px;\n}\n.bt-details-head .bt-step { margin-bottom: 0; }\n.bt-summary {\n    display: inline-flex; align-items: center; gap: 8px;\n    padding: 8px 12px; border-radius: 999px;\n    background: var(--bt-accent-soft); color: var(--bt-accent-text);\n    font-size: 11px; font-weight: 600; margin: 12px 0;\n}\n.bt-summary-icon { display: inline-flex; }\n.bt-link {\n    background: none; border: none; padding: 0; margin-left: 4px;\n    color: var(--bt-text); font-size: 11px; font-weight: 500;\n    text-decoration: underline; cursor: pointer;\n}\n.bt-fields { display: flex; flex-direction: column; gap: 18px; margin-top: 10px; }\n.bt-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }\n.bt-label { color: var(--bt-accent-text); font-size: 12px; font-weight: 500; }\n.bt-required { color: var(--bt-error); margin-left: 3px; }\n.bt-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }\n.bt-pair-fields { gap: 18px 12px; }\n.bt-input-wrap { position: relative; display: flex; flex-direction: column; gap: 6px; min-width: 0; }\n.bt-input {\n    width: 100%; height: 40px; padding: 0 12px;\n    border-radius: 8px; border: 1px solid var(--bt-border);\n    background: var(--bt-bg); color: var(--bt-text);\n    font-size: 12px; outline: none; margin: 0;\n    -webkit-appearance: none; appearance: none;\n    transition: border-color .15s, box-shadow .15s;\n}\n.bt-input::placeholder { color: var(--bt-muted); }\n.bt-input:hover { border-color: var(--bt-accent); }\n.bt-input:focus {\n    border-color: var(--bt-accent);\n    box-shadow: 0 0 0 3px var(--bt-accent-soft);\n}\n.bt-input.has-error { border-color: var(--bt-error); }\n.bt-input[type=\"date\"] { line-height: 38px; }\n.bt-input[type=\"date\"]::-webkit-calendar-picker-indicator { opacity: .5; cursor: pointer; }\n.bt-textarea { height: auto; min-height: 84px; padding: 10px 12px; resize: vertical; line-height: 1.5; }\n.bt-select { padding-right: 36px; cursor: pointer; }\n.bt-select.is-placeholder { color: var(--bt-muted); }\n.bt-select-arrow {\n    position: absolute; right: 12px; top: 13px;\n    color: var(--bt-muted); pointer-events: none; display: inline-flex;\n}\n.bt-days { display: flex; flex-wrap: wrap; gap: 8px; }\n.bt-chip {\n    height: 36px; padding: 0 16px; border-radius: 8px;\n    border: 1px solid var(--bt-border); background: var(--bt-bg);\n    color: var(--bt-text); font-size: 11px;\n    display: inline-flex; align-items: center; gap: 6px;\n    cursor: pointer; transition: border-color .15s, background .15s, color .15s;\n}\n.bt-chip:hover { border-color: var(--bt-accent); }\n.bt-chip.is-selected {\n    background: var(--bt-accent); border-color: var(--bt-accent);\n    color: #fff; font-weight: 500;\n}\n.bt-error { color: var(--bt-error); font-size: 10px; }\n.bt-submit-error { margin-top: 12px; text-align: right; }\n.bt-status { display: block; margin-top: 10px; }\n.bt-status .bt-link { font-size: inherit; color: inherit; }\n\n/* Done */\n.bt-done {\n    display: flex; flex-direction: column; align-items: center; text-align: center;\n    padding: 40px 16px;\n}\n.bt-done-icon {\n    width: 48px; height: 48px; border-radius: 50%;\n    background: var(--bt-accent); color: #fff;\n    display: grid; place-items: center; margin-bottom: 16px;\n}\n.bt-done-icon svg { width: 22px; height: 22px; }\n.bt-done-title { color: var(--bt-accent-text); font-size: 18px; font-weight: 600; }\n.bt-done-when {\n    margin-top: 10px; padding: 8px 14px; border-radius: 999px;\n    background: var(--bt-accent-soft); color: var(--bt-accent-text);\n    font-size: 12px; font-weight: 600;\n}\n.bt-done-text { margin: 14px 0 0; font-size: 12px; line-height: 1.6; max-width: 420px; }\n\n/* Footer & buttons */\n.bt-footer {\n    margin-top: 24px; padding-top: 20px;\n    border-top: 1px solid var(--bt-border);\n    display: flex; align-items: center; justify-content: space-between;\n    gap: 16px; flex-wrap: wrap;\n}\n.bt-footer p { margin: 0; font-size: 10px; color: var(--bt-text); flex: 1 1 240px; }\n.bt-actions { display: flex; gap: 10px; }\n.bt-btn {\n    height: 42px; padding: 0 22px; border-radius: 999px;\n    font-size: 12px; font-weight: 600;\n    display: inline-flex; align-items: center; justify-content: center; gap: 12px;\n    cursor: pointer; transition: opacity .15s, filter .15s, border-color .15s;\n}\n.bt-btn-primary { border: none; background: var(--bt-accent); color: #fff; }\n.bt-btn-primary:hover:not(:disabled) { filter: brightness(.95); }\n.bt-btn-primary:disabled { opacity: .45; cursor: not-allowed; }\n.bt-btn-secondary {\n    border: 1px solid var(--bt-border); background: var(--bt-bg);\n    color: var(--bt-accent-text); gap: 8px;\n}\n.bt-btn-secondary:hover { border-color: var(--bt-accent); }\n\n/* Icons scale with the text */\n.bt-root svg[width=\"12\"] { width: 12px; height: 12px; }\n.bt-root svg[width=\"14\"] { width: 14px; height: 14px; }\n`;const CSS=`\n${scalePx(BASE_CSS)}\n\n/* Desktop (default above) keeps two columns and needs room for them */\n.bt-root.is-desktop { min-width: 760px; }\n${tabletRules(\".bt-root.is-tablet\")}\n${mobileRules(\".bt-root.is-mobile\")}\n\n/* \"Auto\" on the live site: Framer's breakpoints */\n@media (min-width: 1200px) {\n    .bt-root.is-auto { min-width: 760px; }\n}\n@media (min-width: 810px) and (max-width: 1199.98px) {\n${tabletRules(\".bt-root.is-auto\")}\n}\n@media (max-width: 809.98px) {\n${mobileRules(\".bt-root.is-auto\")}\n}\n`;BookTour.defaultProps={dateStepTitle:\"Choose a date\",timeStepTitle:\"Choose a time\",detailsStepTitle:\"Your details\",timezoneNote:\"All times are in centre local time.\",footerText:\"Next, share a few details about your family to complete your booking.\",buttonLabel:\"Continue to book\",emptyTimeText:\"Select a date to see available tour times.\",detailsFooterText:\"We'll confirm your tour by email.\",backLabel:\"Back\",submitLabel:\"Submit\",successTitle:\"Your tour is booked!\",successText:\"Thanks for booking a tour. We've sent the details to your email and look forward to meeting your family.\",centre:\"\",previewCentre:\"bexley\",apiBase:\"https://family.thegroveacademy.com.au/wp-json/tga/v1\",maxMonthsAhead:3,careDays:[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\"],referralOptions:[\"Google search\",\"Facebook\",\"Instagram\",\"Friend or family\",\"Drove or walked past\",\"Other\"],successLink:\"\",previewStep:\"datetime\",layout:\"auto\",accent:\"#9FD17F\",accentText:\"#86C35F\",accentSoft:\"#E3F2D8\",textColor:\"#555555\",mutedColor:\"#9A9A9A\",borderColor:\"#E2E2E2\",disabledBg:\"#F1F1EE\",background:\"#FFFFFF\",errorColor:\"#E5484D\",radius:28,padding:24};addPropertyControls(BookTour,{previewStep:{type:ControlType.Enum,title:\"Preview\",options:[\"datetime\",\"details\",\"done\"],optionTitles:[\"Date & Time\",\"Details\",\"Success\"],description:\"Which step to show on the canvas. The live site always starts at Date & Time.\"},// Content – step 1\ndateStepTitle:{type:ControlType.String,title:\"Date Title\"},timeStepTitle:{type:ControlType.String,title:\"Time Title\"},timezoneNote:{type:ControlType.String,title:\"Time Note\"},emptyTimeText:{type:ControlType.String,title:\"Empty Text\"},footerText:{type:ControlType.String,title:\"Footer Text\",displayTextArea:true},buttonLabel:{type:ControlType.String,title:\"Button\"},// Content – step 2\ndetailsStepTitle:{type:ControlType.String,title:\"Details Title\"},detailsFooterText:{type:ControlType.String,title:\"Details Footer\",displayTextArea:true},backLabel:{type:ControlType.String,title:\"Back\"},submitLabel:{type:ControlType.String,title:\"Submit\"},careDays:{type:ControlType.Array,title:\"Care Days\",control:{type:ControlType.String}},referralOptions:{type:ControlType.Array,title:\"Referral\",control:{type:ControlType.String}},// Content – success\nsuccessTitle:{type:ControlType.String,title:\"Success Title\"},successText:{type:ControlType.String,title:\"Success Text\",displayTextArea:true},// Availability: always the page's centre, live from Jotform via the TGA API\ncentre:{type:ControlType.String,title:\"Centre\",placeholder:\"From page URL\",description:\"Leave empty to use the page URL, e.g. tga.edu.au/bexley → Bexley. Can be bound to a CMS field.\"},previewCentre:{type:ControlType.String,title:\"Canvas Centre\",description:\"Canvas preview only: which centre's tour times to show while designing. The live site always uses the page URL.\",hidden:p=>!!p.centre},maxMonthsAhead:{type:ControlType.Number,title:\"Max Ahead\",min:1,max:24,step:1,displayStepper:true,unit:\"mo\"},// Submission: always books through the TGA API into Jotform\napiBase:{type:ControlType.String,title:\"TGA API\",placeholder:\"https://…/wp-json/tga/v1\",description:\"Loads centre tour times and receives bookings.\"},successLink:{type:ControlType.Link,title:\"Success Link\",description:\"Optional page to open after booking, instead of the success screen.\"},onContinue:{type:ControlType.EventHandler},onSubmit:{type:ControlType.EventHandler},// Style\nfont:{type:ControlType.Font,title:\"Font\",controls:\"basic\",defaultFontType:\"sans-serif\"},layout:{type:ControlType.Enum,title:\"Layout\",options:[\"auto\",\"desktop\",\"tablet\",\"mobile\"],optionTitles:[\"Auto\",\"Desktop\",\"Tablet\",\"Mobile\"],description:\"Auto follows the screen: desktop ≥1200, tablet 810–1199, mobile <810.\"},accent:{type:ControlType.Color,title:\"Accent\"},accentText:{type:ControlType.Color,title:\"Accent Text\"},accentSoft:{type:ControlType.Color,title:\"Accent Soft\"},textColor:{type:ControlType.Color,title:\"Text\"},mutedColor:{type:ControlType.Color,title:\"Muted\"},borderColor:{type:ControlType.Color,title:\"Border\"},disabledBg:{type:ControlType.Color,title:\"No Tours BG\"},background:{type:ControlType.Color,title:\"Card BG\"},errorColor:{type:ControlType.Color,title:\"Error\"},radius:{type:ControlType.Number,title:\"Radius\",min:0,max:60},padding:{type:ControlType.Number,title:\"Padding\",min:0,max:80}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BookTour\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CustomTourForm.map"],"mappings":"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"}