1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3044],{5309:function(e,t,a){"use strict";a.d(t,{Z:function(){return l}});var n=a(91373);/** 2 * @license lucide-react v0.426.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 */let l=(0,n.Z)("Apple",[["path",{d:"M12 20.94c1.5 0 2.75 1.06 4 1.06 3 0 6-8 6-12.22A4.91 4.91 0 0 0 17 5c-2.22 0-4 1.44-5 2-1-.56-2.78-2-5-2a4.9 4.9 0 0 0-5 4.78C2 14 5 22 8 22c1.25 0 2.5-1.06 4-1.06Z",key:"3s7exb"}],["path",{d:"M10 2c1 .5 2 2 2 5",key:"fcco2y"}]])},82855:function(e,t,a){(window.__NEXT_P=window.__NEXT_P||[]).push(["/artist-onboard",function(){return a(38496)}])},77820:function(e,t,a){"use strict";a.d(t,{Z:function(){return AppDownloadButtons}});var n=a(85893);a(67294);var l=a(5309),s=a(92193);function AppDownloadButtons(e){let{iosCampaign:t,trackingSource:a="",fullWidth:i=!1}=e;return(0,n.jsxs)("div",{className:"flex gap-3 w-full justify-center",children:[(0,n.jsxs)("a",{onClick:()=>(0,s.L9)("app_download_click".concat(a,"_apple"),{campaign:t}),rel:"noreferrer",href:"https://apps.apple.com/app/apple-store/id6746807416?pt=125603040".concat(t?"&ct=".concat(t):"","&mt=8"),target:"_blank",className:"flex items-center justify-center gap-2 bg-black text-white py-2.5 px-5 rounded-full transition-all hover:bg-gray-800 hover:scale-[1.02] shadow-sm min-w-[140px] ".concat(i?"flex-1":""),children:[(0,n.jsx)(l.Z,{className:"w-5 h-5",fill:"white"}),(0,n.jsxs)("div",{className:"flex flex-col items-start leading-none",children:[(0,n.jsx)("span",{className:"text-[9px] font-medium opacity-80",children:"Download on the"}),(0,n.jsx)("span",{className:"text-xs font-bold",children:"App Store"})]})]}),(0,n.jsxs)("a",{onClick:()=>(0,s.L9)("app_download_click".concat(a,"_android"),{}),rel:"noreferrer",href:"https://play.google.com/store/apps/details?id=com.tatship",target:"_blank",className:"flex items-center justify-center gap-2 bg-black text-white py-2.5 px-5 rounded-full transition-all hover:bg-gray-800 hover:scale-[1.02] shadow-sm min-w-[140px] ".concat(i?"flex-1":""),children:[(0,n.jsx)("svg",{className:"w-5 h-5",viewBox:"0 0 24 24",fill:"white",children:(0,n.jsx)("path",{d:"M3,20.5V3.5C3,2.91 3.34,2.39 3.84,2.15L13.69,12L3.84,21.85C3.34,21.6 3,21.09 3,20.5M16.81,15.12L6.05,21.34L14.54,12.85L16.81,15.12M20.36,10.72L17.61,9.11L15.39,11.39L17.61,13.61L20.36,12C20.8,11.75 20.8,10.97 20.36,10.72M16.81,8.88L14.54,11.15L6.05,2.66L16.81,8.88Z"})}),(0,n.jsxs)("div",{className:"flex flex-col items-start leading-none",children:[(0,n.jsx)("span",{className:"text-[9px] font-medium opacity-80",children:"Get it on"}),(0,n.jsx)("span",{className:"text-xs font-bold",children:"Google Play"})]})]})]})}},31060:function(e,t,a){"use strict";a.d(t,{X:function(){return TryOnFlow}});var n=a(85893),l=a(67814),s=a(59417),i=a(86896);function FlowInput(e){let{src:t,label:a,contain:l=!1}=e;return(0,n.jsxs)("figure",{className:"w-20 sm:w-24 lg:w-28",children:[(0,n.jsx)("div",{className:"aspect-square rounded-2xl border border-gray-200 bg-white overflow-hidden",children:(0,n.jsx)("img",{src:t,alt:a,className:l?"w-full h-full object-contain p-1.5":"w-full h-full object-cover"})}),(0,n.jsx)("figcaption",{className:"mt-2 min-h-[2.4em] text-[10px] leading-tight font-medium uppercase tracking-wider text-gray-400 text-center",children:a})]})}function TryOnFlow(){let e=(0,i.Z)();return(0,n.jsxs)("div",{className:"flex items-center justify-center gap-3 sm:gap-5",children:[(0,n.jsxs)("div",{className:"flex flex-col items-center gap-3 shrink-0",children:[(0,n.jsx)(FlowInput,{src:"/assets/eagle_ai_design.webp",label:e.formatMessage({id:"page.artistTech.hero.inputDesign",defaultMessage:"Their reference"}),contain:!0}),(0,n.jsx)(l.G,{icon:s.r8p,className:"text-gray-300 text-xs","aria-hidden":"true"}),(0,n.jsx)(FlowInput,{src:"/assets/male_fit_white_sideL_torso.webp",label:e.formatMessage({id:"page.artistTech.hero.inputPhoto",defaultMessage:"Their photo"})})]}),(0,n.jsx)(l.G,{icon:s.eFW,className:"text-gray-400 text-lg shrink-0","aria-hidden":"true"}),(0,n.jsxs)("figure",{className:"shrink-0",children:[(0,n.jsx)("div",{className:"w-40 sm:w-52 lg:w-64 roun
6ded-[26px] border-[5px] border-gray-900 bg-gray-900 overflow-hidden shadow-obvious",children:(0,n.jsx)("img",{src:"/assets/try_on_demo_eagle.gif",alt:e.formatMessage({id:"page.artistTech.hero.demoAlt",defaultMessage:"A client resizing and placing a tattoo reference on a photo of their own body"}),className:"block w-full h-auto"})}),(0,n.jsx)("figcaption",{className:"mt-3 text-[11px] leading-tight font-semibold uppercase tracking-wider text-gray-900 text-center",children:e.formatMessage({id:"page.artistTech.hero.resultLabel",defaultMessage:"What they send you"})})]})]})}},47892:function(e,t,a){"use strict";a.d(t,{n:function(){return TextField}});var n=a(85893);function TextField(e){let{label:t,hint:a,prefix:l,...s}=e;return(0,n.jsxs)("label",{className:"block",children:[(0,n.jsx)("span",{className:"mb-1.5 block text-[13px] font-medium text-gray-700",children:t}),(0,n.jsxs)("div",{className:"flex items-center rounded-xl border-2 border-gray-200 bg-white transition-colors focus-within:border-black",children:[l?(0,n.jsx)("span",{className:"pl-3.5 text-[15px] text-gray-400 select-none","aria-hidden":"true",children:l}):null,(0,n.jsx)("input",{...s,className:"w-full bg-transparent py-3 text-[15px] text-gray-900 outline-none placeholder:text-gray-300 ".concat(l?"pl-1 pr-3.5":"px-3.5")})]}),a?(0,n.jsx)("span",{className:"mt-1.5 block text-[12px] leading-snug text-gray-400",children:a}):null]})}},38496:function(e,t,a){"use strict";a.r(t),a.d(t,{__N_SSP:function(){return S},default:function(){return ArtistOnboard}});var n=a(85893),l=a(67294),s=a(9008),i=a.n(s),r=a(77148),o=a(7233),d=a(43),c=a(92193);let u={},createSessionId=()=>"undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():"".concat(Date.now().toString(36),"-").concat(Math.random().toString(36).slice(2,12)),getFunnelSessionId=e=>{let t="".concat("funnel_session_id__").concat(e);try{let e=window.sessionStorage.getItem(t);if(e)return e;let a=createSessionId();return window.sessionStorage.setItem(t,a),a}catch(t){return u[e]||(u[e]=createSessionId()),u[e]}},trackFunnelEvent=e=>{let{funnelName:t,funnelVersion:a,eventPrefix:n,eventType:l,stepKey:s=null,stepIndex:i=null,totalSteps:r=null,properties:u={},email:m=null,campaign:f,platform:p=null,skipDb:h=!1}=e,g=getFunnelSessionId(t),b=f||(0,o.fU)();if((0,c.L9)("".concat(n,"_").concat(l.toUpperCase()),{funnel_name:t,funnel_version:a,step_key:s,step_index:i,total_steps:r,session_id:g,platform:p,...u,...b}),h)return;let{fbclid:x,gclid:y,ttclid:w}=b;d.Z.post("/funnel/track",{funnel_name:t,funnel_version:a,event_type:l,step_key:s,step_index:i,total_steps:r,session_id:g,email:m,properties:u,platform:p,locale:document.documentElement.lang||void 0,referrer:document.referrer||void 0,click_id:x||y||w||null,click_id_source:x?"fbclid":y?"gclid":w?"ttclid":null,...b}).catch(()=>{})};var m=a(86896),f=a(37725);let p="artist_onboard",h="ARTIST_ONBOARD",g={role:"/assets/artist-onboard/quiz-role.webp",volume:"/assets/artist-onboard/quiz-volume.webp",time:"/assets/artist-onboard/quiz-time.webp",methods:"/assets/artist-onboard/quiz-methods.webp",friction:"/assets/artist-onboard/quiz-friction.webp",welcome:"/assets/artist-onboard/hero-brief.webp"},b=[{key:"welcome",type:"value",titleId:"artistOnboard.welcome.title",defaultTitle:"Stop guessing what your client wants",subtitleId:"artistOnboard.welcome.subtitle",defaultSubtitle:"Answer five quick questions and see how other studios settle size, placement and direction before the client sits down.",image:g.welcome,imageVariant:"hero",imageAltId:"artistOnboard.welcome.imageAlt",defaultImageAlt:"A phone showing a tattoo sized and placed on a client photo, next to a sketchbook",ctaId:"artistOnboard.welcome.cta",defaultCta:"Start â takes 60 seconds",hideProgress:!0},{key:"role",type:"choice",titleId:"artistOnboard.role.title",defaultTitle:"Which one is you?",image:g.role,
6imageAltId:"artistOnboard.role.imageAlt",defaultImageAlt:"A tattoo machine, ink caps and grip laid out on a workstation",options:[{id:"tattoo_artist",labelId:"artistOnboard.role.artist",defaultLabel:"Tattoo artist",emoji:"\uD83D\uDD8Bï¸"},{id:"shop_owner",labelId:"artistOnboard.role.owner",defaultLabel:"Shop or studio owner",emoji:"\uD83C\uDFE0"},{id:"studio_manager",labelId:"artistOnboard.role.manager",defaultLabel:"Studio manager",emoji:"\uD83D\uDCCB"},{id:"apprentice",labelId:"artistOnboard.role.apprentice",defaultLabel:"Apprentice",emoji:"\uD83C\uDF31"}]},{key:"enquiry_volume",type:"choice",titleId:"artistOnboard.volume.title",defaultTitle:"How many enquiries land in your inbox in a week?",image:g.volume,imageAltId:"artistOnboard.volume.imageAlt",defaultImageAlt:"A studio booking diary with appointments written in",options:[{id:"under_5",labelId:"artistOnboard.volume.under5",defaultLabel:"Fewer than 5"},{id:"5_to_15",labelId:"artistOnboard.volume.5to15",defaultLabel:"5 to 15"},{id:"16_to_40",labelId:"artistOnboard.volume.16to40",defaultLabel:"16 to 40"},{id:"over_40",labelId:"artistOnboard.volume.over40",defaultLabel:"More than 40"}]},{key:"time_spent",type:"choice",titleId:"artistOnboard.time.title",defaultTitle:"How long does it take to pin down what one client wants?",subtitleId:"artistOnboard.time.subtitle",defaultSubtitle:"The back and forth about size, placement and the direction of the design.",image:g.time,imageAltId:"artistOnboard.time.imageAlt",defaultImageAlt:"A phone showing a long back-and-forth message thread",options:[{id:"under_10_min",labelId:"artistOnboard.time.under10",defaultLabel:"Under 10 minutes"},{id:"10_to_30_min",labelId:"artistOnboard.time.10to30",defaultLabel:"10 to 30 minutes"},{id:"30_to_60_min",labelId:"artistOnboard.time.30to60",defaultLabel:"Half an hour to an hour"},{id:"over_60_min",labelId:"artistOnboard.time.over60",defaultLabel:"More than an hour"},{id:"days",labelId:"artistOnboard.time.days",defaultLabel:"It can stretch over days"}]},{key:"methods",type:"multi_choice",titleId:"artistOnboard.methods.title",defaultTitle:"How do you help them picture it today?",subtitleId:"artistOnboard.methods.subtitle",defaultSubtitle:"Pick everything you use.",image:g.methods,imageAltId:"artistOnboard.methods.imageAlt",defaultImageAlt:"A skin marker and a stencil sheet next to an outline drawn on a forearm",options:[{id:"draw_on_skin",labelId:"artistOnboard.methods.drawOnSkin",defaultLabel:"Draw it on their skin with a marker"},{id:"stencil_printout",labelId:"artistOnboard.methods.stencil",defaultLabel:"Print a stencil and place it on"},{id:"digital_mockup",labelId:"artistOnboard.methods.mockup",defaultLabel:"Mock it up in Procreate or Photoshop"},{id:"describe_in_messages",labelId:"artistOnboard.methods.describe",defaultLabel:"Talk it through over messages"},{id:"past_work_photos",labelId:"artistOnboard.methods.pastWork",defaultLabel:"Send photos of similar work you have done"},{id:"decide_in_chair",labelId:"artistOnboard.methods.inChair",defaultLabel:"Settle it once they are in the chair"}]},{key:"friction",type:"multi_choice",titleId:"artistOnboard.friction.title",defaultTitle:"Where does it usually come unstuck?",subtitleId:"artistOnboard.friction.subtitle",defaultSubtitle:"Pick anything that sounds like your week.",image:g.friction,imageAltId:"artistOnboard.friction.imageAlt",defaultImageAlt:"A stencil being lifted and repositioned on a forearm",options:[{id:"size_changes",labelId:"artistOnboard.friction.size",defaultLabel:"They want it bigger or smaller on the day"},{id:"placement_changes",labelId:"artistOnboard.friction.placement",defaultLabel:"The placement moves at the last minute"},{id:"goes_quiet",labelId:"artistOnboard.friction.quiet",defaultLabel:"They go quiet after the quote"},{id:"redraw_before_commit",labelId:"artistOnboard.friction.redraw",defaultLabel:"You draw more than once before they commit"},{id:"books_smaller",labelId:"artistOnboard.friction.smaller",defaultLabel:"They book smaller than they first talked about"},{id:"consult_time",labelId:"artistOnboard.friction.consults",defaultLabel:"Consults eat hours you could be tattooing"}]},{key:"solution",type:"value",titleId:"artistOnboard.solution.title",defaultTitle:"They bring the reference. You get the brief.",subtitleId:"artistOnboard.solution.subtitle",defaultSubtitle:"Your client puts any reference on a photo of their own body and moves it until the size and the spot feel right. What reaches you is a picture, not a paragraph.",visual:"try_on_flow",ctaId:"artistOnboard.solution.cta",defaultCta:"Show me how it works"},{key:"how_it_works",type:"value",titleId:"artistOnboard.howItWorks.title",defaultTitle:"Three steps, and none of them are on you",subtitleId:"artistOnboard.howItWorks.subtitle",defaultSubtitle:"You send one link. The client does the rest before they reach your chair.",visual:"how_it_works"},{key:"contact",type:"lead",titleId:"artistOnboard.contact.title",defaultTitle:"Where should we send your studio link?",subtitleId:"artistOnboard.contact.subtitle",defaultSubtitle:"Your studio is set up on this address, so sign in to the app with the same one."},{key:"download",type:"download",titleId:"artistOnboard.download.title",defaultTitle:"Your studio is ready",subtitleId:"artistOnboard.download.subtitle",defaultSubtitle:"Get the app and sign in with {email} â everything is waiting for you.",hideProgress:!0}],x=b.length,y=b.filter(e=>!e.hideProgress).length;var w=a(67814),k=a(59417),_=a(52891);
6function ArtistOnboardShell(e){let{children:t,footer:a,progress:l,onBack:s,backLabel:i}=e;return(0,n.jsxs)("div",{className:"fixed inset-0 z-50 bg-white flex flex-col",children:[(0,n.jsx)("header",{className:"shrink-0 px-4 pt-4 pb-3 sm:px-6",children:(0,n.jsxs)("div",{className:"mx-auto w-full max-w-md flex items-center gap-3",children:[s?(0,n.jsx)("button",{type:"button",onClick:s,"aria-label":i,className:"w-9 h-9 -ml-1 shrink-0 rounded-full flex items-center justify-center text-gray-400 hover:text-gray-900 hover:bg-gray-100 transition-colors",children:(0,n.jsx)(w.G,{icon:k.acZ,className:"text-sm"})}):(0,n.jsx)("span",{className:"w-9 h-9 -ml-1 shrink-0","aria-hidden":"true"}),"number"==typeof l?(0,n.jsx)("div",{className:"flex-1 h-1.5 rounded-full bg-gray-100 overflow-hidden",children:(0,n.jsx)("div",{className:"h-full rounded-full bg-gray-900 transition-all duration-300 ease-out",style:{width:"".concat(Math.round(100*l),"%")}})}):(0,n.jsx)("div",{className:"flex-1"}),(0,n.jsx)("span",{className:"w-9 shrink-0","aria-hidden":"true"})]})}),(0,n.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,n.jsx)("div",{className:"mx-auto flex min-h-full w-full max-w-md flex-col justify-center px-5 py-6 sm:px-6",children:t})}),a?(0,n.jsx)("footer",{className:"shrink-0 border-t border-gray-100 bg-white px-5 py-4 sm:px-6 pb-[max(1rem,env(safe-area-inset-bottom))]",children:(0,n.jsx)("div",{className:"mx-auto w-full max-w-md",children:a})}):null]})}function PrimaryButton(e){let{children:t,onClick:a,disabled:l=!1,type:s="button"}=e;return(0,n.jsx)("button",{type:s,onClick:a,disabled:l,className:"w-full rounded-2xl bg-black py-3.5 px-4 text-base font-semibold text-white transition-all hover:bg-gray-900 disabled:cursor-not-allowed disabled:bg-gray-200 disabled:text-gray-400",children:t})}function StepHeading(e){let{title:t,subtitle:a}=e;return(0,n.jsxs)("div",{className:"mb-6",children:[(0,n.jsx)("h1",{className:"text-2xl sm:text-[28px] font-semibold tracking-tight text-gray-900 leading-snug",children:t}),a?(0,n.jsx)("p",{className:"mt-2.5 text-[15px] leading-relaxed text-gray-500",children:a}):null]})}function StepArt(e){let{src:t,alt:a,variant:l="thumb"}=e;return"hero"===l?(0,n.jsx)("div",{className:"mb-6 overflow-hidden rounded-2xl",style:{backgroundColor:_.H},children:(0,n.jsx)("img",{src:t,alt:a,className:"block w-full",loading:"eager"})}):(0,n.jsx)("div",{className:"mb-6 flex justify-center",children:(0,n.jsx)("div",{className:"flex h-28 w-28 items-center justify-center overflow-hidden rounded-2xl sm:h-32 sm:w-32",style:{backgroundColor:_.H},children:(0,n.jsx)("img",{src:t,alt:a,className:"h-full w-full object-contain",loading:"eager"})})})}function ChoiceStep(e){let{step:t,intl:a,value:s,onChange:i,onAdvance:r}=e,o="multi_choice"===t.type,[d,c]=(0,l.useState)(()=>Array.isArray(s)?s:s?[s]:[]);(0,l.useEffect)(()=>{c(Array.isArray(s)?s:s?[s]:[])},[t.key,s]);let handlePick=e=>{if(o){let t=d.includes(e)?d.filter(t=>t!==e):[...d,e];c(t),i(t);return}c([e]),i(e),r()};return(0,n.jsx)("div",{className:"flex flex-col gap-2.5",children:(t.options||[]).map(e=>{let t=d.includes(e.id);return(0,n.jsxs)("button",{type:"button",onClick:()=>handlePick(e.id),"aria-pressed":t,className:"flex w-full items-center gap-3 rounded-2xl border-2 px-4 py-3.5 text-left transition-all ".concat(t?"border-black bg-gray-50":"border-gray-200 bg-white hover:border-gray-300"),children:[e.emoji?(0,n.jsx)("span",{className:"text-2xl leading-none shrink-0","aria-hidden":"true",children:e.emoji}):null,(0,n.jsx)("span",{className:"flex-1 text-[15px] font-medium leading-snug text-gray-900",children:a.formatMessage({id:e.labelId,defaultMessage:e.defaultLabel})}),o?(0,n.jsx)("span",{className:"flex h-6 w-6 shrink-0 items-center justify-center rounded-md border-2 transition-colors ".concat(t?"border-black bg-black text-white":"border-gray-300 text-transparent"),children:(0,n.jsx)(w.G,{icon:k.LEp,className:"text-[11px]"})}):null]},e.id)})})}var v=a(31060);let j=[{key:"send",image:"/assets/fitting-room/step-mail.webp",titleId:"artistOnboard.howItWorks.send.title",defaultTitle:"Send one link",bodyId:"artistOnboard.howItWorks.send.body",defaultBody:"Drop it in the DM you were already replying to. Nothing for them to install."},{key:"decide",image:"/assets/fitting-room/step-adjust.webp",titleId:"artistOnboard.howItWorks.decide.title",defaultTitle:"They settle it themselves",bodyId:"artistOnboard.howItWorks.decide.body",defaultBody:"They put their reference on a photo of their own body and try it big, small, forearm, ribs â until they know."},{key:"brief",image:"/assets/artist-onboard/step-brief.webp",titleId:"artistOnboard.howItWorks.brief.title",defaultTitle:"You open a brief you can draw from",bodyId:"artistOnboard.howItWorks.brief.body",defaultBody:"Size and placement already decided, in a picture. The design is still yours to make."}];function HowItWorks(e){let{intl:t}=e;return(0,n.jsx)("ol",{className:"flex flex-col gap-5",children:j.map((e,a)=>(0,n.jsxs)("li",{className:"flex items-start gap-4",children:[(0,n.jsxs)("div",{className:"relative shrink-0",children:[(0,n.jsx)("img",{src:e.image,alt:"","aria-hidden":"true",className:"h-16 w-16 rounded-xl object-cover"}),(0,n.jsx)("span",{className:"absolute -left-1.5 -top-1.5 flex h-6 w-6 items-center justify-center rounded-full bg-black text-[11px] font-bold text-white",children:a+1})]}),(0,n.jsxs)("div",{className:"flex-1 pt-0.5",children:[(0,n.jsx)("h3",{className:"text-[15px] font-semibold leading-snug text-gray-900",children:t.formatMessage({id:e.titleId,defaultMessage:e.defaultTitle})}),(0,n.jsx)("p",{className:"mt-1 text-[14px] leading-relaxed text-gray-500",children:t.formatMessage({id:e.bodyId,defaultMessage:e.defaultBody})})]})]},e.key))})}function ValueStep(e){let{step:t,intl:a}=e;
6return"try_on_flow"===t.visual?(0,n.jsx)("div",{className:"py-2",children:(0,n.jsx)(v.X,{})}):"how_it_works"===t.visual?(0,n.jsx)(HowItWorks,{intl:a}):null}var I=a(47892);let N=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function LeadStep(e){let{intl:t,draft:a,onChange:l,error:s}=e,handle=e=>t=>{let n=t.target.value,s="instagram"===e?(0,f.p)(n):n;l({...a,[e]:s})};return(0,n.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,n.jsx)(I.n,{label:t.formatMessage({id:"artistOnboard.contact.emailLabel",defaultMessage:"Email address"}),type:"email",inputMode:"email",autoComplete:"email",autoCapitalize:"none",spellCheck:!1,placeholder:"[email protected]",value:a.email,onChange:handle("email")}),(0,n.jsx)(I.n,{label:t.formatMessage({id:"artistOnboard.contact.instagramLabel",defaultMessage:"Instagram of your studio or your work"}),prefix:"@",type:"text",autoComplete:"off",autoCapitalize:"none",spellCheck:!1,placeholder:"yourstudio",value:a.instagram,onChange:handle("instagram"),hint:t.formatMessage({id:"artistOnboard.contact.instagramHint",defaultMessage:"This becomes the address of your fitting room links."})}),(0,n.jsx)(I.n,{label:t.formatMessage({id:"artistOnboard.contact.websiteLabel",defaultMessage:"Studio website (optional)"}),type:"url",inputMode:"url",autoComplete:"url",autoCapitalize:"none",spellCheck:!1,placeholder:"yourstudio.com",value:a.website,onChange:handle("website")}),s?(0,n.jsx)("p",{role:"alert",className:"text-[13px] font-medium text-red-600",children:s}):null,(0,n.jsxs)("p",{className:"flex items-start gap-2 text-[12px] leading-relaxed text-gray-400",children:[(0,n.jsx)(w.G,{icon:k.byT,className:"mt-0.5 shrink-0 text-[11px]","aria-hidden":"true"}),(0,n.jsx)("span",{children:t.formatMessage({id:"artistOnboard.contact.privacy",defaultMessage:"We use this to set up your studio and send your link. No spam, and you can delete the account any time."})})]})]})}var O=a(77820);function DownloadStep(e){let{intl:t,instagram:a,onDownloadClick:l}=e,s=[t.formatMessage({id:"artistOnboard.download.check1",defaultMessage:"Your studio is reserved on @{instagram}"},{instagram:a}),t.formatMessage({id:"artistOnboard.download.check2",defaultMessage:"Your answers are saved, so there is nothing to set up again"}),t.formatMessage({id:"artistOnboard.download.check3",defaultMessage:"Send your first fitting room link in about a minute"})];return(0,n.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,n.jsx)("ul",{className:"flex flex-col gap-3",children:s.map(e=>(0,n.jsxs)("li",{className:"flex items-start gap-3",children:[(0,n.jsx)("span",{className:"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-green-100 text-green-700",children:(0,n.jsx)(w.G,{icon:k.LEp,className:"text-[10px]"})}),(0,n.jsx)("span",{className:"text-[15px] leading-snug text-gray-700",children:e})]},e))}),(0,n.jsx)("div",{onClick:l,children:(0,n.jsx)(O.Z,{iosCampaign:"artist_onboard",trackingSource:"_artist_onboard",fullWidth:!0})}),(0,n.jsx)("p",{className:"text-center text-[12px] leading-relaxed text-gray-400",children:t.formatMessage({id:"artistOnboard.download.footnote",defaultMessage:"On a laptop? Open this page on your phone, or search Tatship in your app store."})})]})}function ArtistOnboardFunnel(e){let{os:t,campaign:a}=e,s=(0,m.Z)(),[i,r]=(0,l.useState)(0),[o,u]=(0,l.useState)({}),[g,w]=(0,l.useState)({email:"",instagram:"",website:""}),[k,_]=(0,l.useState)(null),[v,j]=(0,l.useState)(!1),I=b[i],O=(0,l.useCallback)(function(e){var n;let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2?arguments[2]:void 0;trackFunnelEvent({funnelName:p,funnelVersion:"v1",eventPrefix:h,eventType:e,stepKey:null!==(n=null!=s?s:null==I?void 0:I.key)&&void 0!==n?n:null,stepIndex:i,totalSteps:x,properties:l,email:g.email||null,campaign:a,platform:t})},[a,g.email,t,null==I?void 0:I.key,i]),S=(0,l.useRef)(new Set);(0,l.useEffect)(()=>{if(!I)return;let e="".concat(i,":").concat(I.key);S.current.has(e)||(S.current.add(e),O("step_view",{step_type:I.type}))},[i,null==I?void 0:I.key]);let M=(0,l.useCallback)(e=>{r(e),window.scrollTo({top:0})},[]),C=(0,l.useCallback)(()=>{I&&(O("step_complete",{step_type:I.type}),i<x-1&&M(i+1))},[M,I,i,O]),A=(0,l.useCallback)(()=>{0!==i&&M(i-1)},[M,i]),L=(0,l.useCallback)(e=>{I&&(u(t=>({...t,[I.key]:e})),O("step_answer",{answer:e,step_type:I.type}))},[I,O]),T=(0,l.useCallback)(async()=>{let e=g.email.trim().toLowerCase(),n=(0,f.p)(g.instagram);if(!N.test(e)){_(s.formatMessage({id:"artistOnboard.contact.errorEmail",defaultMessage:"That email address does not look right."}));return}if(!(0,f.l)(n)){_(s.formatMessage({id:"artistOnboard.contact.errorInstagram",defaultMessage:"Add the Instagram handle for your studio or your work."}));return}_(null),j(!0);try{await d.Z.post("/artist-onboard/lead",{email:e,instagram_username:n,website:g.website.trim()||null,answers:o,funnel_name:p,funnel_version:"v1",platform:t,...a}),w(t=>({...t,email:e,instagram:n})),O("lead_submit",{has_website:!!g.website.trim()}),(0,c.L9)("CompleteRegistration",{content_name:"artist_onboard",content_category:"artist_lead",funnel_version:"v1",status:!0,...a}),C()}catch(t){var l,i;let e=null==t?void 0:null===(i=t.response)||void 0===i?void 0:null===(l=i.data)||void 0===l?void 0:l.message;_("rate_limited"===e?s.formatMessage({id:"artistOnboard.contact.errorRateLimited",defaultMessage:"Too many attempts from this connection. Try again a little later."}):s.formatMessage({id:"artistOnboard.contact.errorGeneric",defaultMessage:"We could not save that. Check your connection and try again."}))}finally{j(!1)}},[o,a,C,s,g,t,O]),P=(0,l.useCallback)(()=>{O("download_click",{platform:t}),O("funnel_complete")},[t,O]),D=(0,l.useMemo)(()=>
6{if(!I||I.hideProgress)return null;let e=b.slice(0,i).filter(e=>!e.hideProgress).length;return(e+1)/y},[I,i]);if(!I)return null;let E=s.formatMessage({id:I.titleId,defaultMessage:I.defaultTitle}),F=I.subtitleId?s.formatMessage({id:I.subtitleId,defaultMessage:I.defaultSubtitle},{email:g.email}):void 0,W=s.formatMessage({id:"artistOnboard.continue",defaultMessage:"Continue"}),U=I.ctaId?s.formatMessage({id:I.ctaId,defaultMessage:I.defaultCta}):W,z=o[I.key]||[],B=(()=>{switch(I.type){case"choice":case"download":default:return null;case"multi_choice":return(0,n.jsx)(PrimaryButton,{onClick:C,disabled:0===z.length,children:U});case"value":return(0,n.jsx)(PrimaryButton,{onClick:C,children:U});case"lead":return(0,n.jsx)(PrimaryButton,{onClick:T,disabled:v,children:v?s.formatMessage({id:"artistOnboard.contact.saving",defaultMessage:"Setting upâ¦"}):s.formatMessage({id:"artistOnboard.contact.cta",defaultMessage:"Create my studio"})})}})();return(0,n.jsxs)(ArtistOnboardShell,{progress:D,onBack:i>0&&"download"!==I.type?A:void 0,backLabel:s.formatMessage({id:"artistOnboard.back",defaultMessage:"Go back"}),footer:B,children:[I.image?(0,n.jsx)(StepArt,{src:I.image,variant:I.imageVariant,alt:I.imageAltId?s.formatMessage({id:I.imageAltId,defaultMessage:I.defaultImageAlt}):""}):null,(0,n.jsx)(StepHeading,{title:E,subtitle:F}),("choice"===I.type||"multi_choice"===I.type)&&(0,n.jsx)(ChoiceStep,{step:I,intl:s,value:o[I.key],onChange:L,onAdvance:C}),"value"===I.type&&(0,n.jsx)(ValueStep,{step:I,intl:s}),"lead"===I.type&&(0,n.jsx)(LeadStep,{intl:s,draft:g,onChange:w,error:k}),"download"===I.type&&(0,n.jsx)(DownloadStep,{intl:s,instagram:g.instagram,onDownloadClick:P})]})}function ArtistOnboardSkeleton(){return(0,n.jsxs)("div",{className:"fixed inset-0 z-50 flex animate-pulse flex-col bg-white",children:[(0,n.jsx)("div",{className:"shrink-0 px-4 pt-4 pb-3 sm:px-6",children:(0,n.jsx)("div",{className:"mx-auto h-1.5 w-full max-w-md rounded-full bg-gray-100"})}),(0,n.jsx)("div",{className:"flex-1 px-5 sm:px-6",children:(0,n.jsxs)("div",{className:"mx-auto w-full max-w-md",children:[(0,n.jsx)("div",{className:"mx-auto mb-5 h-28 w-28 rounded-2xl bg-gray-100"}),(0,n.jsx)("div",{className:"mb-3 h-8 w-3/4 rounded-lg bg-gray-100"}),(0,n.jsx)("div",{className:"mb-8 h-5 w-full rounded-lg bg-gray-100"}),(0,n.jsx)("div",{className:"flex flex-col gap-2.5",children:Array.from({length:4}).map((e,t)=>(0,n.jsx)("div",{className:"h-14 w-full rounded-2xl bg-gray-100"},t))})]})})]})}var S=!0;function ArtistOnboard(){let[e,t]=(0,l.useState)("desktop"),[a,s]=(0,l.useState)({}),[d,c]=(0,l.useState)(!1);return(0,l.useEffect)(()=>{c(!0);let e=(0,o.uA)(),a=(0,o.fU)();t(e),s(a),(0,r.x)(),trackFunnelEvent({funnelName:p,funnelVersion:"v1",eventPrefix:h,eventType:"funnel_start",totalSteps:x,campaign:a,platform:e});let n=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=n}},[]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(i(),{children:[(0,n.jsx)("title",{children:"Tatship for tattoo artists â stop guessing what your client wants"}),(0,n.jsx)("meta",{name:"description",content:"Send one link and your client settles the size and placement on a photo of their own body. You get a brief you can draw from."}),(0,n.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}),(0,n.jsx)("meta",{name:"robots",content:"noindex,nofollow"})]}),d?(0,n.jsx)(ArtistOnboardFunnel,{os:e,campaign:a}):(0,n.jsx)(ArtistOnboardSkeleton,{})]})}},7233:function(e,t,a){"use strict";a.d(t,{RM:function(){return getAppStoreUrl},fU:function(){return getCampaignParams},uA:function(){return getMobileOS},yQ:function(){return redirectToAppStore}});var n=a(92193);let l="https://apps.apple.com/app/apple-store/id".concat("6746807416"),s="https://play.google.com/store/apps/details?id=".concat("com.tatship"),getMobileOS=()=>{if("undefined"==typeof navigator)return"desktop";let e=navigator.userAgent||navigator.vendor||window.opera||"";if(/android/i.test(e))return"android";let t=/iPad|iPhone|iPod/.test(e)||/Macintosh/.test(e)&&"undefined"!=typeof document&&"ontouchend"in document;return t?"ios":"desktop"},i=["utm_source","utm_medium","utm_campaign","utm_content","utm_term","fbclid","gclid","ttclid"],getCampaignParams=()=>{let e=new URLSearchParams(window.location.search),t={};
6return i.forEach(a=>{let n=e.get(a);n&&(t[a]=n)}),t},getAppStoreUrl=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{campaignToken:a="web_2_app",providerToken:n="125603040",campaign:i}=t;if("android"===e){let e=["utm_source=".concat((null==i?void 0:i.utm_source)||"web_2_app"),"utm_campaign=".concat((null==i?void 0:i.utm_campaign)||a)];(null==i?void 0:i.utm_medium)&&e.push("utm_medium=".concat(i.utm_medium)),(null==i?void 0:i.utm_content)&&e.push("utm_content=".concat(i.utm_content));let t=encodeURIComponent(e.join("&"));return"".concat(s,"&referrer=").concat(t)}return"".concat(l,"?pt=").concat(n,"&ct=").concat(encodeURIComponent(a),"&mt=8")},redirectToAppStore=e=>{let{source:t,os:a,eventName:l="WEB_2_APP_DOWNLOAD_CLICK",campaignToken:s,providerToken:i,campaign:r}=e,o=a||getMobileOS(),d=r||getCampaignParams(),c=getAppStoreUrl(o,{campaignToken:s,providerToken:i,campaign:d});(0,n.L9)(l,{source:t,platform:o,...d}),window.open(c,"_blank","noopener,noreferrer")}},52891:function(e,t,a){"use strict";a.d(t,{H:function(){return n}});let n="#F7F4EB"},37725:function(e,t,a){"use strict";a.d(t,{l:function(){return isValidInstagramUsername},p:function(){return cleanInstagramUsername}});let cleanInstagramUsername=e=>(e||"").toString().trim().replace(/^https?:\/\/(www\.)?instagram\.com\//i,"").replace(/[?#].*$/,"").replace(/\/+$/,"").replace(/@/g,"").replace(/\s/g,"").toLowerCase(),isValidInstagramUsername=e=>{let t=cleanInstagramUsername(e);return/^[a-z0-9._]{1,30}$/.test(t)}},77148:function(e,t,a){"use strict";a.d(t,{F:function(){return htmlLinkClickTrack},x:function(){return logMarketingSource}});var n=a(80691);let htmlLinkClickTrack=(e,t,a)=>{{let n=document.querySelector(e);if(!n)return;let l=n.querySelectorAll("a");l.forEach(e=>{e.target="_blank",e.href.includes(a)&&e.addEventListener("click",()=>{t(e.href)})})}},logMarketingSource=()=>{{let e=new URLSearchParams(window.location.search);for(let[t,a]of e)console.log(t,a),"utm_campaign"===t&&(window.localStorage.setItem("utm_campaign",a),(0,n.d8)("utm_campaign",a,30));let t=e.get("utm_campaign");!t&&(0,n.dh)()&&(window.localStorage.setItem("utm_campaign","instagram_default"),(0,n.d8)("utm_campaign","instagram_default",30))}}}},function(e){e.O(0,[9774,2888,179],function(){return e(e.s=82855)}),_N_E=e.O()}]);
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.