1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8496],{8513:function(e,t,a){a.d(t,{bZ:function(){return o}});var s=a(85893),r=a(67294),n=a(12003),l=a(46283);let i=(0,n.j)("relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),o=r.forwardRef((e,t)=>{let{className:a,variant:r,...n}=e;return(0,s.jsx)("div",{ref:t,role:"alert",className:(0,l.cn)(i({variant:r}),a),...n})});o.displayName="Alert";let d=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("h5",{ref:t,className:(0,l.cn)("mb-1 font-medium leading-none tracking-tight",a),...r})});d.displayName="AlertTitle";let c=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{ref:t,className:(0,l.cn)("text-sm [&_p]:leading-relaxed",a),...r})});c.displayName="AlertDescription"},5663:function(e,t,a){var s=a(85893),r=a(67294),n=a(43),l=a(13557),i=a(97241),o=a(37838),d=a(5097),c=a(4844),m=a(98814),h=a(86896),u=a(41664),x=a.n(u),g=a(92193);t.Z=e=>{let t=(0,h.Z)(),[a,u]=(0,r.useState)(e.recommendedArtists&&e.recommendedArtists.length>0?e.recommendedArtists:[]),[f,p]=(0,r.useState)(!e.recommendedArtists||!(e.recommendedArtists.length>0)),[_,b]=(0,r.useState)(null),[v,w]=(0,r.useState)(!1),[j,N]=(0,r.useState)(!1),[k,y]=(0,r.useState)(null),[M,C]=(0,r.useState)(null),[S,R]=(0,r.useState)(!1),[T,A]=(0,r.useState)(!1);(0,r.useEffect)(()=>{e.recommendedArtists&&e.recommendedArtists.length>0||setTimeout(()=>{fetchRecommendedArtists()},6e3),window.location.href.includes("debug")&&R(!0)},[]);let fetchRecommendedArtists=async()=>{try{p(!0);let t=await n.Z.post("/trial/recommended-artists",{location_type:e.location_type,location_id:e.location_id});u(t.data.merchants),p(!1),setTimeout(()=>{N(!0)},1e3)}catch(e){b("Failed to fetch recommended artists"),p(!1)}};if(f&&"banner"!==e.displayMode||_)return(0,s.jsx)("div",{});let markClick=async t=>{console.log("mark click");try{let a="try_on";window.location.href.includes("design")&&(a="design_widget"),window.location.href.includes("artists")&&(a="geo_artist_page"),await n.Z.post("/event/track",{event_name:"click_referral_tattoo_try",merchant_id:t.merchant_id,referral_type:t.referral_type,trial_id:e.trial_id,referral_location:a})}catch(e){console.log(e)}},Z=(0,s.jsx)(i.Vq,{open:v,onOpenChange:w,children:(0,s.jsx)(i.cZ,{className:"p-4",children:(0,s.jsx)("div",{children:(0,s.jsx)("div",{children:(0,s.jsx)("div",{className:M?"hidden":"",children:(0,s.jsx)("div",{className:"flex flex-wrap h-[80vh] sm:[w-80vw] overflow-y-auto border border-gray-200 rounded-lg",children:a.map(a=>(0,s.jsx)("div",{className:"w-full",children:(0,s.jsx)("div",{className:"overflow-hidden",children:(0,s.jsx)("div",{className:"flex flex-wrap p-2 ",children:a.files.sort((e,t)=>t.ranking_score-e.ranking_score).map((r,n)=>{var l,i,c,m,h,u;return(0,s.jsxs)("a",{className:"sm:w-full w-full p-1 block",href:"/".concat(e.locale,"/artist/").concat(a.merchant_id),target:"_blank",rel:"noopener noreferrer",children:[(0,s.jsx)("img",{src:(null==r?void 0:null===(l=r.thumbnail_obj)||void 0===l?void 0:l.tatshipCdnSm)||(null==r?void 0:null===(i=r.file_obj)||void 0===i?void 0:i.tatshipCdnSm)||(null===(c=r.thumbnail_obj)||void 0===c?void 0:c.cdnUrl)||(null==r?void 0:null===(m=r.file_obj)||void 0===m?void 0:m.cdnUrl),className:"shadow rounded-lg w-full h-64 object-contain bg-black"}),(0,s.jsxs)("div",{className:"flex py-2 px-4",children:[(0,s.jsx)("img",{src:null===(h=a.logo_image)||void 0===h?void 0:h.cdnUrl,className:"shrink-0 shadow rounded w-10 h-10 mr-1 object-contain bg-white mt-4"}),(0,s.jsxs)("div",{className:"px-2 py-2",children:[(0,s.jsx)("h3",{className:"text-xs text-gray-800 font-semibold mb-1",children:a.artist_name}),a.available_languages&&a.available_languages.length>0&&(0,s.jsxs)("h5",{className:"text-2xs text-indigo-800 font-semibold mb-1",children:[(0,s.jsxs)("span",{className:"font-normal text-gray-600",children:[t.formatMessage({id:"artistRecommendation.languagesWeSpeak",defaultMessage:"Languages"}),": "]}),a.available_languages.map(e=>t.formatMessage({id:"language.".concat(e),defaultMessage:e}
1)).join(", ")]}),(0,s.jsx)("p",{className:"text-3xs text-gray-600 mb-1",children:a.artist_description}),(null==a?void 0:a.instagram_username)&&(0,s.jsx)("div",{className:"mt-2",children:(0,s.jsxs)(x(),{onClick:()=>{markClick({merchant_id:a.merchant_id,referral_type:"instagram"})},href:"https://instagram.com/".concat(a.instagram_username),target:"_blank",rel:"noopener noreferrer",className:"font-bold underline text-2xs text-gray-800 hover:underline flex items-center",children:[(0,s.jsx)(o.Z,{className:"mr-1",size:16}),"Instagram (",null===(u=a.instagram_followers)||void 0===u?void 0:u.toLocaleString("en-US")," Followers)"]})})]})]}),(0,s.jsx)("div",{className:"px-3 pb-4",children:"booking_form"===a.main_contact_method&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("a",{className:"w-full h-8 text-xs bg-black text-white rounded-lg flex items-center justify-center",href:a.booking_form_url,target:"_blank",rel:"noopener noreferrer",onClick:()=>{markClick({merchant_id:a.merchant_id,referral_type:a.main_contact_method||"email"}),C(a),w(!0)},children:[(0,s.jsx)(d.Z,{className:"mr-1",size:16}),t.formatMessage({id:"artistRecommendation.getFreeConsulation",defaultMessage:"Get a Free Consultation"})]}),(0,s.jsx)("p",{className:"text-2xs text-gray-600 text-center px-2 pt-3",children:t.formatMessage({id:"artistRecommendation.tattooStudioContact",defaultMessage:"The Tattoo Studio will contact you to discuss your tattoo ideas"})})]})})]},n)})})})},a.merchant_id))})})})})})});return"banner"===e.displayMode?(0,s.jsxs)("div",{className:"sm:px-12 p-2",children:[Z,(0,s.jsx)("div",{children:(0,s.jsx)("div",{className:"flex flex-wrap sm:px-24",children:a.map(a=>{var r,n;return(0,s.jsx)("div",{className:"w-full p-2",children:(0,s.jsxs)("div",{className:"overflow-hidden shadow-xl rounded-lg",children:[(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)("a",{className:"cursor-pointer",href:"/".concat(e.locale,"/artist/").concat(a.merchant_id),target:"_blank",rel:"noopener noreferrer",children:(0,s.jsx)("div",{className:"flex flex-wrap p-2",children:a.files.sort((e,t)=>t.ranking_score-e.ranking_score).slice(0,6).map((e,t)=>{var a,r,n,l;return(0,s.jsx)("div",{className:"sm:w-1/6 w-1/3 p-1 cursor-pointer",children:(0,s.jsx)("img",{src:(null==e?void 0:null===(a=e.thumbnail_obj)||void 0===a?void 0:a.tatshipCdnSm)||(null==e?void 0:null===(r=e.file_obj)||void 0===r?void 0:r.tatshipCdnSm)||((null===(n=e.thumbnail_obj)||void 0===n?void 0:n.cdnUrl)||(null==e?void 0:null===(l=e.file_obj)||void 0===l?void 0:l.cdnUrl))+"-/resize/400x/-/format/webp/",className:"shadow rounded-md w-full sm:h-44 h-48 object-contain bg-black"})},t)})})}),!T&&(0,s.jsx)("div",{className:"w-full flex justify-center mt-4 absolute bottom-0 left-0 z-10 bg-gradient-to-t from-white via-white/60 to-transparent text-center",children:(0,s.jsx)("a",{href:"/".concat(e.locale,"/artist/").concat(a.merchant_id),target:"_blank",rel:"noopener noreferrer",children:(0,s.jsx)("div",{className:"bg-white text-gray-600 py-2 px-4 rounded-full text-xs shadow-xl",children:T?"Show Less":t.formatMessage({id:"artistRecommendation.showMoreArtworks",defaultMessage:"Show More Artworks"})})})})]}),(0,s.jsxs)("div",{className:"sm:flex justify-between items-center sm:px-4",children:[(0,s.jsxs)("div",{className:"flex py-2 px-4",children:[(0,s.jsx)("a",{className:"cursor-pointer block shrink-0",href:"/".concat(e.locale,"/artist/").concat(a.merchant_id),target:"_blank",rel:"noopener noreferrer",children:(0,s.jsx)("img",{src:null===(r=a.logo_image)||void 0===r?void 0:r.cdnUrl,className:"shadow rounded w-10 h-10 mr-1 object-contain bg-white mt-4"})}),(0,s.jsxs)("div",{className:"px-2 py-2 ",children:[(0,s.jsx)("a",{href:"/".concat(e.locale,"/artist/").concat(a.merchant_id),target:"_blank",rel:"noopener noreferrer",children:(0,s.jsx)("h3",{className:"text-xs text-gray-800 font-semibold mb-1",children:a.artist_name})}),a.available_languages&&a.available_languages.length>0&&(0,s.jsxs)("h5",{className:"text-2xs text-indigo-800 font-semibold mb-1",children:[(0,s.jsxs)("span",{className:"font-normal text-gray-600",children:[t.formatMessage({id:"artistRecommendation.languagesWeSpeak",defaultMessage:"Languages"}),": "]}),a.available_languages.map(e=>t.formatMessage({id:"language.".concat(e),defaultMessage:e}
1)).join(", ")]}),(0,s.jsx)("p",{className:"text-3xs text-gray-600 mb-1 sm:max-w-[600px]",children:a.artist_description}),(0,s.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(null==a?void 0:a.instagram_username)&&(0,s.jsx)("div",{className:"",children:(0,s.jsxs)(x(),{onClick:()=>{markClick({merchant_id:a.merchant_id,referral_type:"instagram"})},href:"https://instagram.com/".concat(a.instagram_username),target:"_blank",rel:"noopener noreferrer",className:"font-bold underline text-2xs text-gray-800 hover:underline flex items-center",children:[(0,s.jsx)(o.Z,{className:"mr-1",size:16}),"Instagram (",null===(n=a.instagram_followers)||void 0===n?void 0:n.toLocaleString("en-US")," Followers)"]})}),(a.merchant_main_website||a.merchant_subdomain)&&(0,s.jsxs)("a",{className:"font-bold underline text-2xs text-gray-800 hover:underline flex items-center",onClick:()=>{markClick({merchant_id:a.merchant_id,referral_type:"website"})},href:a.merchant_main_website||"https://".concat(a.merchant_subdomain,".tatship.ink"),target:"_blank",rel:"noreferrer",children:[(0,s.jsx)(c.Z,{className:"mr-1",size:16})," ",t.formatMessage({id:"artistRecommendation.website",defaultMessage:"Website"})]})]})]})]}),(0,s.jsxs)("div",{className:"px-3 pb-4",children:["email"===a.main_contact_method&&(0,s.jsxs)(l.z,{className:"w-full h-8 text-xs",onClick:()=>{markClick({merchant_id:a.merchant_id,referral_type:a.main_contact_method||"email"}),C(a),w(!0)},children:[(0,s.jsx)(d.Z,{className:"mr-1",size:16}),t.formatMessage({id:"artistRecommendation.getFreeConsulation",defaultMessage:"Get a Free Consultation"})]}),"booking_form"===a.main_contact_method&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("a",{className:"w-full h-8 text-xs bg-black text-white rounded-lg flex items-center justify-center",href:a.booking_form_url,target:"_blank",rel:"noopener noreferrer",onClick:()=>{markClick({merchant_id:a.merchant_id,referral_type:a.main_contact_method||"email"})},children:[(0,s.jsx)(d.Z,{className:"mr-1",size:16}),t.formatMessage({id:"artistRecommendation.getFreeConsulation",defaultMessage:"Get a Free Consultation"})]}),(0,s.jsx)("p",{className:"text-2xs text-gray-600 text-center px-2 pt-3",children:t.formatMessage({id:"artistRecommendation.tattooStudioContact",defaultMessage:"The Tattoo Studio will contact you to discuss your tattoo ideas"})})]})]})]})]})},a.merchant_id)})})})]}):(0,s.jsxs)("div",{className:"relative w-full",children:[Z,k&&(0,s.jsxs)("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex flex-col",style:{zIndex:99999},children:[(0,s.jsx)("div",{children:(0,s.jsxs)("div",{className:"w-full bg-white shadow flex justify-between items-center p-3",children:[(0,s.jsxs)("button",{onClick:()=>y(null),className:"flex items-center border bg-black text-white p-2 rounded-lg",children:[(0,s.jsx)(m.Z,{className:"w-4 h-4",strokeWidth:1.5}),(0,s.jsx)("span",{className:"font-semibold text-2xs",children:t.formatMessage({id:"artistRecommendation.backToTryOn",defaultMessage:"Back to Try On"})})]}),(0,s.jsx)("span",{className:"text-gray-600 font-normal text-xs mr-1",children:t.formatMessage({id:"artistRecommendation.merchantWebsite",defaultMessage:"Merchant Website"})}),(0,s.jsxs)("button",{onClick:()=>y(null),className:"flex items-center opacity-0 border bg-black text-white p-2 rounded-lg",children:[(0,s.jsx)(m.Z,{className:"w-4 h-4",strokeWidth:1.5}),(0,s.jsx)("span",{className:"font-semibold text-2xs",children:t.formatMessage({id:"artistRecommendation.backToTryOn",defaultMessage:"Back to Try On"})})]})]})}),(0,s.jsx)("iframe",{src:k,className:"w-full flex-grow"})]}),a.length>0&&(0,s.jsx)("div",{style:"top-left"===e.position?{}:{top:-60},className:"z-10 ".concat("top-left"===e.position?"absolute left-4 top-4":"absolute left-1/2 transform -translate-x-1/2"),children:(0,s.jsxs)("div",{onClick:()=>{w(!0);let e="try_on";window.location.href.includes("design")&&(e="design_widget"),window.location.href.includes("artists")&&(e="geo_artist_page"),(0,g.L9)("open_artist_recommendation_modal",{},{event_body:{referral_location:e,track_location:!0}})},className:"relative flex items-center shadow-obvious bg-white rounded-full px-3 py-1 text-center shadow-lg overflow-hidden cursor-pointer shadow-xl hover:scale-105 transition-all duration-300 ".concat(j?"opacity-100":"opacity-0"),children:[(0,s.jsxs)("span",{className:"relative flex h-3 w-3 mr-2",children:[(0,s.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-gradient-to-r from-purple-600 to-orange-600 opacity-75"}),(0,s.jsx)("span",{className:"relative inline-flex rounded-full h-3 w-3 bg-gradient-to-r from-purple-600 to-orange-600"})]}),(0,s.jsx)("span",{className:"text-xs whitespace-nowrap text-gray-800 font-semibold",children:t.formatMessage({id:"artistRecommendation.likeTheseArtists",defaultMessage:"You might like these artists"})})]})})]})}},48980:function(e,t,a){a.d(t,{_9:function(){return autoCrop},ab:function(){return CustomTattooTextureFilter},l_:function(){return downloadURI}}),a(1982);let CustomTattooTextureFilter=e=>{for(let t=0;t<e.data.length;t+=4){let sigmoid=e=>1/(1+Math.exp(-e));if(.99>Math.random()){let a=(e.data[t]+e.data[t+1]+e.data[t+2])/3;if(e.data[t+3]>220){let s=1-sigmoid(a/255*12-6);e.data[t]=Math.round(e.data[t]*s),e.data[t+1]=Math.round(e.data[t+1]*s),e.data[t+2]=Math.round(e.data[t+2]*s),e.data[t+3]=Math.round(e.data[t+3]*s)}}}},autoCrop=e=>
1new Promise((t,a)=>{let s=new Image;s.src=e,s.crossOrigin="Anonymous",s.onload=function(){let e,a;let r=document.createElement("canvas");r.width=s.width,r.height=s.height;let n=r.getContext("2d");n.drawImage(s,0,0);let l=n.getImageData(0,0,r.width,r.height),i=!1,o=0,d=0,c=0,m=0;for(a=0;a<l.height;a++)for(e=0;e<l.width;e++){let t=(a*l.width+e)*4;l.data[t+3]>0&&((0===c||c>e)&&(c=e),m<=e&&(m=e),i||(i=!0,o=a),a>=d&&(d=a))}let h=document.createElement("canvas");h.width=m-c,h.height=d-o,h.getContext("2d").drawImage(s,c,o,m-c,d-o,0,0,m-c,d-o),t(h.toDataURL())}}),downloadURI=(e,t)=>{let a=document.createElement("a");a.download=t,a.href=e,document.body.appendChild(a),a.click(),document.body.removeChild(a)}}}]);
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.