import"./index-4c8ce341.js";import{g as N}from"./request-a636442b.js";import{I as S}from"./internal-tracking-e8368fc2.js";import{D as ge}from"./drb-toast-helpers-b5930a70.js";import{t as v}from"./google-tag-manager-utils-cbc0cd1f.js";import{c as me}from"./v2-check-circle-974aa791.js";import{S as he}from"./site-footer-d4d6d040.js";import{A as oe}from"./index-dedce5a4.js";import{G as pe}from"./google-sign-in-8044a0ab.js";import{P as E}from"./form-validation-58394433.js";import{b as ce}from"./contact-info-detection-helpers-88c9e017.js";import{c as U,e as fe}from"./expand-collapse-1ef905ba.js";import{i as be}from"./feature-gates-91956f5b.js";import{D as I}from"./drb-confirm-helpers-15e164fa.js";import{D as Se}from"./drb-dialog-helpers-eb8a8feb.js";import{f as V,s as k}from"./pricing-311df2f8.js";import{A as de}from"./ai-input-9185a320.js";import{F as $}from"./form-handler-d276c37d.js";import{a as L}from"./v2-alert-pink-5610c78e.js";import{c as le}from"./check-verified-654e50fe.js";import{S as ue}from"./screen-transitions-928a9f1a.js";import{_ as ve}from"./preload-helper-b857222e.js";import{F as ye}from"./index-1f99a98e.js";/* empty css */import{P as we,a as De}from"./photoswipe-fe6228ab.js";import{a as Ae}from"./media-3cc8b1a3.js";import{P as ke}from"./project-cost-breakdown-52e21255.js";import{S as qe}from"./site-nav-bceb92e9.js";import{c as Ie,s as b}from"./index-ecfc279f.js";/* empty css */import"./unsafe-html-c2c7ba68.js";import"./chunk.6CTB5ZDJ-ecd2c56f.js";import"./throttle-51b88214.js";import"./_commonjsHelpers-de833af9.js";import"./debounce-a3c77a8f.js";import"./isSymbol-09cd3a26.js";import"./toNumber-7a06b4ca.js";import"./animation-7e2d11a2.js";import"./isEqual-28605d96.js";import"./_baseIsEqual-dcb6efc6.js";import"./_MapCache-f49d0f97.js";import"./_baseUnary-56bc5bee.js";import"./js.cookie-edb2da2a.js";import"./tiptap-extension-underline.esm-1c1a172c.js";import"./tiptap-extension-placeholder.esm-052ff1b1.js";import"./file-upload-33be919a.js";import"./index-ec1be37d.js";import"./axios-8f19e258.js";import"./axios_helper-aabbd1f9.js";import"./string-5478061d.js";import"./pluralize-e121862b.js";import"./url-06e270d3.js";import"./site-nav-autocomplete-db72d448.js";const l={config:{},run(){this.getController().processElements()},process(...e){for(const t of e)this.getController().processElement(t);return e.length},getController(){return this.controller?this.controller:this.controller=new l.Controller}};l.config.useFormat24=!1,l.config.i18n={en:{date:{dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],abbrDayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],abbrMonthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],yesterday:"yesterday",today:"today",tomorrow:"tomorrow",on:"on {date}",formats:{default:"%b %e, %Y",thisYear:"%b %e"}},time:{am:"am",pm:"pm",singular:"a {time}",singularAn:"an {time}",elapsed:"{time} ago",second:"second",seconds:"seconds",minute:"minute",minutes:"minutes",hour:"hour",hours:"hours",formats:{default:"%l:%M%P",default_24h:"%H:%M"}},datetime:{at:"{date} at {time}",formats:{default:"%B %e, %Y at %l:%M%P %Z",default_24h:"%B %e, %Y at %H:%M %Z"}}}},l.config.locale="en",l.config.defaultLocale="en",l.config.timerInterval=6e4;const Ce=!isNaN(Date.parse("2011-01-01T12:00:00-05:00"));l.parseDate=e=>(e=e.toString(),Ce||(e=function(t){const s=t.match(Te);if(s){let r;const[i,a,n,o,d,c,u,g]=s;return g!=="Z"&&(r=g.replace(":","")),`${a}/${n}/${o} ${d}:${c}:${u} GMT${[r]}`}}(e)),new Date(Date.parse(e)));const Te=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(Z|[-+]?[\d:]+)$/;l.elementMatchesSelector=(()=>{const e=document.documentElement,t=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector||e.msMatchesSelector;return(s,r)=>{if((s==null?void 0:s.nodeType)===Node.ELEMENT_NODE)return t.call(s,r)}})();const{config:M}=l,{i18n:Me}=M;l.getI18nValue=(e="",t={locale:M.locale})=>{const{locale:s}=t;return function(i,a){let n=i;for(var o of Array.from(a.split("."))){if(!n[o])return null;n=n[o]}return n}(Me[s],e)||(s!==M.defaultLocale?l.getI18nValue(e,{locale:M.defaultLocale}):void 0)},l.translate=(e,t={},s)=>{let r=l.getI18nValue(e,s);for(const i in t){const a=t[i];r=r.replace(`{${i}}`,a)}return r};const{getI18nValue:T,translate:j}=l,W=typeof(Intl==null?void 0:Intl.DateTimeFormat)=="function",O={"Central European Standard Time":"CET","Central European Summer Time":"CEST","China Standard Time":"CST","Israel Daylight Time":"IDT","Israel Standard Time":"IST","Moscow Standard Time":"MSK","Peru Standard Time":"PET","Philippine Standard Time":"PHT","Singapore Standard Time":"SGT","Western Indonesia Time":"WIB"};l.knownEdgeCaseTimeZones=O,l.strftime=(()=>{const e=(r,i)=>{const a=r.getDay(),n=r.getDate(),o=r.getMonth(),d=r.getFullYear(),c=r.getHours(),u=r.getMinutes(),g=r.getSeconds();return i.replace(/%(-?)([%aAbBcdeHIlmMpPSwyYZ])/g,(p,m,y)=>{switch(y){case"%":return"%";case"a":return T("date.abbrDayNames")[a];case"A":return T("date.dayNames")[a];case"b":return T("date.abbrMonthNames")[o];case"B":return T("date.monthNames")[o];case"c":return r.toString();case"d":return t(n,m);case"e":return n;case"H":return t(c,m);case"I":return t(e(r,"%l"),m);case"l":return c===0||c===12?12:(c+12)%12;case"m":return t(o+1,m);case"M":return t(u,m);case"p":return j("time."+(c>11?"pm":"am")).toUpperCase();case"P":return j("time."+(c>11?"pm":"am"));case"S":return t(g,m);case"w":return a;case"y":return t(d%100,m);case"Y":return d;case"Z":return function(w){let _,B,P;return(B=function(C){return Object.keys(O).find(D=>W?new Date(C).toLocaleString("en-US",{timeZoneName:"long"}).includes(D):C.toString().includes(D))}(w))?O[B]:(P=s(w,{allowGMT:!1}))||(P=function(C){const D=C.toString();let A;if((A=D.match(/\(([\w\s]+)\)$/))!=null){const F=A[1];return/\s/.test(F)?F.match(/\b(\w)/g).join(""):F}if((A=D.match(/(\w{3,4})\s\d{4}$/))!=null||(A=D.match(/(UTC[\+\-]\d+)/))!=null)return A[1]}(w))?P:(_=s(w,{allowGMT:!0}))?_:""}(r)}})};function t(r,i){return i==="-"?r:`0${r}`.slice(-2)}function s(r,{allowGMT:i}){if(W){const a=new Date(r).toLocaleString("en-US",{timeZoneName:"short"}).split(" ").pop();if(i||!a.includes("GMT"))return a}}return e})(),l.CalendarDate=class{static fromDate(e){return new this(e.getFullYear(),e.getMonth()+1,e.getDate())}static today(){return this.fromDate(new Date)}constructor(e,t,s){this.date=new Date(Date.UTC(e,t-1)),this.date.setUTCDate(s),this.year=this.date.getUTCFullYear(),this.month=this.date.getUTCMonth()+1,this.day=this.date.getUTCDate(),this.value=this.date.getTime()}equals(e){return(e==null?void 0:e.value)===this.value}is(e){return this.equals(e)}isToday(){return this.is(this.constructor.today())}occursOnSameYearAs(e){return this.year===(e==null?void 0:e.year)}occursThisYear(){return this.occursOnSameYearAs(this.constructor.today())}daysSince(e){if(e)return(this.date-e.date)/864e5}daysPassed(){return this.constructor.today().daysSince(this)}};const{strftime:R,translate:h,getI18nValue:H,config:Ee}=l;l.RelativeTime=class{constructor(e){this.date=e,this.calendarDate=l.CalendarDate.fromDate(this.date)}toString(){let e,t;return(t=this.toTimeElapsedString())?h("time.elapsed",{time:t}):(e=this.toWeekdayString())?(t=this.toTimeString(),h("datetime.at",{date:e,time:t})):h("date.on",{date:this.toDateString()})}toTimeOrDateString(){return this.calendarDate.isToday()?this.toTimeString():this.toDateString()}toTimeElapsedString(){let e;const t=new Date().getTime()-this.date.getTime(),s=Math.round(t/1e3),r=Math.round(s/60),i=Math.round(r/60);return t<0?null:s<10?(e=h("time.second"),h("time.singular",{time:e})):s<45?`${s} ${h("time.seconds")}`:s<90?(e=h("time.minute"),h("time.singular",{time:e})):r<45?`${r} ${h("time.minutes")}`:r<90?(e=h("time.hour"),h("time.singularAn",{time:e})):i<24?`${i} ${h("time.hours")}`:""}toWeekdayString(){switch(this.calendarDate.daysPassed()){case 0:return h("date.today");case 1:return h("date.yesterday");case-1:return h("date.tomorrow");case 2:case 3:case 4:case 5:case 6:return R(this.date,"%A");default:return""}}toDateString(){const e=this.calendarDate.occursThisYear()?H("date.formats.thisYear"):H("date.formats.default");return R(this.date,e)}toTimeString(){const e=Ee.useFormat24?"default_24h":"default";return R(this.date,H(`time.formats.${e}`))}};const{elementMatchesSelector:Le}=l;l.PageObserver=class{constructor(e,t){this.selector=e,this.callback=t,this.processMutations=this.processMutations.bind(this),this.processInsertion=this.processInsertion.bind(this)}start(){this.started||(this.observeWithMutationObserver()||this.observeWithMutationEvent(),this.started=!0)}observeWithMutationObserver(){return typeof MutationObserver<"u"&&MutationObserver!==null?(new MutationObserver(this.processMutations).observe(document.documentElement,{childList:!0,subtree:!0}),!0):!1}observeWithMutationEvent(){return addEventListener("DOMNodeInserted",this.processInsertion,!1),!0}findSignificantElements(e){const t=[];return(e==null?void 0:e.nodeType)===Node.ELEMENT_NODE&&(Le(e,this.selector)&&t.push(e),t.push(...Array.from(e.querySelectorAll(this.selector)||[]))),t}processMutations(e){const t=[];for(const s of e)if(s.type==="childList")for(const r of s.addedNodes)t.push(...this.findSignificantElements(r)||[]);this.notify(t)}processInsertion(e){const t=this.findSignificantElements(e.target);this.notify(t)}notify(e){(e==null?void 0:e.length)>0&&typeof this.callback=="function"&&this.callback(e)}};const{parseDate:_e,strftime:Y,getI18nValue:Pe,config:x}=l,Z="time[data-local]:not([data-localized])",J=e=>e.setAttribute("data-localized",""),q=e=>new l.RelativeTime(e);l.Controller=class{constructor(){this.processElements=this.processElements.bind(this),this.pageObserver=new l.PageObserver(Z,this.processElements)}start(){this.started||(this.processElements(),this.startTimer(),this.pageObserver.start(),this.started=!0)}startTimer(){let e;(e=x.timerInterval)&&(this.timer||(this.timer=setInterval(this.processElements,e)))}processElements(e){e||(e=document.querySelectorAll(Z));for(const t of Array.from(e))this.processElement(t);return e.length}processElement(e){const t=e.getAttribute("datetime"),s=e.getAttribute("data-local"),r=x.useFormat24&&e.getAttribute("data-format24")||e.getAttribute("data-format"),i=_e(t);if(!isNaN(i)){if(!e.hasAttribute("title")){const a=x.useFormat24?"default_24h":"default",n=Y(i,Pe(`datetime.formats.${a}`));e.setAttribute("title",n)}(a=>{a.setAttribute("data-processed-at",new Date().toISOString())})(e),e.textContent=(()=>{switch(s){case"time":return J(e),Y(i,r);case"date":return J(e),q(i).toDateString();case"time-ago":return q(i).toString();case"time-or-date":return q(i).toTimeOrDateString();case"weekday":return q(i).toWeekdayString();case"weekday-or-date":return q(i).toWeekdayString()||q(i).toDateString()}})()}}};let X=!1;function G(){l.getController().start()}l.start=()=>{var e;X?l.run():(X=!0,typeof MutationObserver<"u"&&MutationObserver!==null||(document.attachEvent?document.readyState==="complete":document.readyState!=="loading")?G():(e=G,typeof requestAnimationFrame=="function"?requestAnimationFrame(e):setTimeout(e,17)))},l.processing=()=>l.getController().started,window.LocalTime===l&&l.start();const Fe={init(){this.bindEvents()},bindEvents(){document.addEventListener("click",e=>{const t=e.target.closest("[data-resume-user-card] [data-bookmark]"),s=e.target.closest("[data-extra-skills-btn]");t&&this.bookmarkUser(t),s&&this.toggleExtraSkills(e),this.handleProfileRedirect(e)})},handleProfileRedirect(e){var i,a;const t=(i=e.target.closest("[data-profile-path]"))==null?void 0:i.getAttribute("data-profile-path"),s=(a=e.target.closest("[data-resume-user-card][data-id]"))==null?void 0:a.getAttribute("data-id"),r=!!e.target.closest("a, input, button, label, drb-tooltip");!t||!s||r||(S.trackSearchProfileClicked(s,e.target),v("ProfileClicked",{userID:s}),window.open(t,"_blank").focus())},toggleExtraSkills(e){const t=e.target.closest("[data-resume-user-card-footer]"),s=t==null?void 0:t.querySelectorAll("[data-skills-item]"),r=e.target.closest("[data-extra-skills-btn]"),i=r==null?void 0:r.querySelector("[data-extra-skills-text-count]"),a=r==null?void 0:r.querySelector("[data-skills-text-hide]");s.forEach(n=>{n.classList.toggle("display-flex")}),i==null||i.classList.toggle("display-none"),a==null||a.classList.toggle("display-none")},async bookmarkUser(e){var u,g,p;if(!(((p=(g=(u=window.Dribbble)==null?void 0:u.JsConfig)==null?void 0:g.user)==null?void 0:p.isLoggedIn)||!1))return;const s=e.closest("[data-resume-user-card]"),r=s==null?void 0:s.getAttribute("data-username"),i=s==null?void 0:s.getAttribute("data-display-name"),a=s==null?void 0:s.getAttribute("data-saved-search-id");if(!r)return;const n=!e.hasAttribute("data-bookmarked"),o=a?`/client_app/talent/saved_searches/${a}/bookmarks/${r}`:`/client_app/talent/bookmarks/${r}`,c={path:n?"/client_app/talent/bookmarks":o,method:n?"POST":"DELETE",body:JSON.stringify({userId:r})};try{e.classList.add("btn2--loading");const{path:m,method:y,body:w}=c;if(!(await fetch(m,{method:y,body:w,headers:{"Content-Type":"application/json","X-CSRF-Token":N(),"X-Requested-With":"XMLHttpRequest"}})).ok)throw new Error("Something went wrong");e.toggleAttribute("data-bookmarked",n),e.classList.toggle("btn2--icon-expand-animation",n),n&&(ge.open({title:"Designer Saved",messageHtml:`${i||r} was saved to your Saved Designers`,iconHtml:me,variant:"success",duration:5e3}),S.trackSearchDesignerBookmarked(s.getAttribute("data-id"),s))}catch{Dribbble.EventBus.$emit("siteNotifications:add",{title:"Error updating bookmark",id:"update-bookmark"})}finally{e.classList.remove("btn2--loading")}}};Fe.init();document.addEventListener("submit",e=>{if(e.target.closest("form[data-on-submit-update-dom]")){const t=e.target,s=document.querySelector(t.dataset.onSubmitUpdateDom);if(s){e.preventDefault();const r=new FormData(t);fetch(t.action,{method:r.get("_method")||t.method,body:r,headers:{"X-Requested-With":"XMLHttpRequest"}}).then(i=>i.text()).then(i=>{s.outerHTML=i}).catch(i=>{var a;return(a=Dribbble==null?void 0:Dribbble.Notify)==null?void 0:a.error(i)})}}});const Ve=``;class Oe{constructor(t,s){this.messageDialog=t,this.projectDetailsAiInstance=this.initProjectDetailsAiInput(),this.messageDialogHelper=s,!(!this.messageDialog||!this.projectDetailsAiInstance||!this.messageDialogHelper)&&(this.initHelpMeStartForm(),this.bindImproveWhatIWrote(),this.bindRevertButton())}initProjectDetailsAiInput(){var i;const t=this.messageDialog.querySelector("[data-project-details-input]"),s=t==null?void 0:t.closest("[data-write-with-ai-wrapper]"),r=(i=s==null?void 0:s.querySelector("turbo-cable-stream-source"))==null?void 0:i.getAttribute("data-request-id");return!t||!r?(console.error("Missing required parameters: projectDetailsInput or requestId"),null):new de({contextElement:s,input:t,requestId:r,onError:(a,{action:n})=>{console.error("AI generation error:",a),n==="build_project_request"&&this.showHelpMeStartPanel(!0),I.open({title:"Something went wrong. Please try again.",iconHtml:L,centered:!0,cancelText:"",confirmText:"Close"})}})}initHelpMeStartForm(){var i;const t=this.messageDialog.querySelector("form[data-help-me-start-request-form]");if(!t)return;const s=new $(t,{onBeforeSubmit:a=>{const n=t.getAttribute("data-help-me-start-request-path");return this.showHelpMeStartPanel(!1),this.projectDetailsAiInstance.generateContent("build_project_request",n,{notes:"",...a}),!1},arrayFields:["styles"]}),r=t.querySelector("[data-styles-select]");(i=s.pristineValidation)==null||i.addValidator(r,a=>a.length>0&&a.length<=3,"Please select between 1 and 3 categories")}bindImproveWhatIWrote(){const t=this.projectDetailsAiInstance.contextElement.querySelector('[data-ai-action="proxy.php?url=improve"]');t==null||t.addEventListener("click",s=>{var o;const r=s.target.closest("form");if(!((o=r==null?void 0:r.pristineValidation)!=null&&o.validate(this.projectDetailsAiInstance.input)))return;const i=r.getAttribute("data-ai-request-path"),a=r.getAttribute("data-designer-name"),n={input_text:this.projectDetailsAiInstance.input.value,designer_name:a};this.projectDetailsAiInstance.generateContent("improve_project_request",i,n)})}bindRevertButton(){const t=this.messageDialog.querySelector("[data-ai-input-revert-button]");t==null||t.addEventListener("click",()=>this.projectDetailsAiInstance.revertContent())}showHelpMeStartPanel(t){this.messageDialogHelper.setActiveTab(t?"help-me-start":"message")}}const Re={init(){this.bindListeners(),this.openAndRestoreDraft()},getClosestMessageDialog(e){return e.closest("drb-dialog#message-dialog")},bindListeners(){this.bindMessageInputSync(),this.bindBriefSelect(),this.bindTabNavigation(),this.bindFormValidation(),this.bindAuthFlow(),this.bindTrackingListeners(),this.initAiInputs()},initAiInputs(){document.addEventListener("drb-dialog-content-updated",e=>{const t=e.target.closest("drb-dialog#message-dialog");t&&new Oe(t,this)})},bindTabNavigation(){document.addEventListener("click",e=>{var s;const t=(s=e.target.closest("[data-message-dialog-tab]"))==null?void 0:s.getAttribute("data-message-dialog-tab");t&&this.setActiveTab(t)})},setActiveTab(e){var t;document.querySelectorAll("drb-dialog#message-dialog [data-message-dialog-tab]").forEach(s=>{s.classList.toggle("active",e===s.getAttribute("data-message-dialog-tab"))}),(t=document.querySelector("drb-dialog#message-dialog [data-active-tab]"))==null||t.setAttribute("data-active-tab",e)},bindMessageInputSync(){document.addEventListener("input",e=>{const t=this.getClosestMessageDialog(e.target);if(!t)return;const s=t.querySelectorAll("#message-dialog-message, #message-dialog-details");if(!Array.from(s).includes(e.target))return;s.forEach(i=>{i.value=e.target.value});const r=t.querySelector("[data-message-auth-preview]");r&&(r.textContent=e.target.value.slice(0,150))})},bindBriefSelect(){document.addEventListener("change",async e=>{const t=this.getClosestMessageDialog(e.target),s=e.target.closest("[data-message-dialog-brief-select]"),r=s==null?void 0:s.value;if(!t||!r)return;const i=new URL(t.remoteUrl,window.location.origin);i.searchParams.set("project_brief_id",r),t.remoteUrl=i.toString(),await t.fetchRemoteUrl(!0),t.hasRemoteError=!1})},bindFormValidation(){document.addEventListener("drb-dialog-content-updated",e=>{const t=this.getClosestMessageDialog(e.target);t&&(t.querySelectorAll("[data-message-dialog-form]").forEach(s=>{s.pristineValidation=E(s),this.bindBudgetFieldLogic(s),this.bindProjectEstimateFields(s),ce(s)}),this.clearDraft())}),document.addEventListener("submit",e=>{var r,i,a,n;const t=e.target.closest("[data-message-dialog-form]"),s=(a=(i=(r=window.Dribbble)==null?void 0:r.JsConfig)==null?void 0:i.user)==null?void 0:a.isLoggedIn;if(t)if(e.preventDefault(),!t.hasAttribute("is-submitting")&&((n=t.pristineValidation)!=null&&n.validate()))be("loggedOutMessageFlow")&&!s?(this.saveDraft(),this.setActiveTab("auth")):this.submitForm(t);else{this.clearDraftSendingMessageState();const o=t==null?void 0:t.querySelector(".has-validation-error");o==null||o.scrollIntoView({behavior:"smooth",block:"nearest"})}})},bindBudgetFieldLogic(e){var i,a;const t=e.querySelector("[data-project-budget]"),s=e.querySelector("[data-project-budget-unsure]");if(!t||!s)return;t.addEventListener("input",()=>{t.value=V(t.value,{maximumFractionDigits:0})}),t.value&&(t.value=V(t.value,{maximumFractionDigits:0}));const r=Number(t.getAttribute("data-project-budget-min-cost"));(i=e.pristineValidation)==null||i.addValidator(t,n=>s.checked?!0:(k(n)||0)>=r,`Budget must be at least $${r}`,1,!0),(a=e.pristineValidation)==null||a.addValidator(t,n=>s.checked?!0:!!(n!=null&&n.length),"Please enter your budget.",2,!0),s.addEventListener("change",()=>{var n;t.toggleAttribute("disabled",s.checked),t.value="",s.checked&&((n=e.pristineValidation)==null||n.validate(t)),t.pristine&&(t.pristine.hasValidated=!1)})},bindProjectEstimateFields(e){var a,n;const t=e.querySelector("[data-estimate-min-input]"),s=e.querySelector("[data-estimate-max-input]");if(!t||!s)return;const r=k(t.getAttribute("data-estimate-min-cost"))||10,i=`Minimum cost estimate is $${r}`;(a=e.pristineValidation)==null||a.addValidator(t,o=>(k(o)||0)>=r,i,1,!0),(n=e.pristineValidation)==null||n.addValidator(s,o=>{const d=k(t.value)||0,c=k(o)||0;return o!=null&&o.length?c>d:!0},"Max must be greater than Min",1,!0),[s,t].forEach(o=>{o.addEventListener("input",()=>{o.value=V(o.value,{maximumFractionDigits:0})})})},bindTrackingListeners(){document.addEventListener("drb-dialog-content-updated",e=>{var i;const t=this.getClosestMessageDialog(e.target);if(!t)return;const s=t.querySelector("[data-message-dialog-form]"),r=(i=s==null?void 0:s.querySelector("input[name='engagement[recipient_id]']"))==null?void 0:i.value;r&&(S.trackSearchMessageModalDisplayed(r,t),v("MessageModalDisplayed",{userId:r}))})},bindAuthFlow(){document.addEventListener("drb-dialog-content-updated",e=>{const t=this.getClosestMessageDialog(e.target);if(!t)return;t.querySelectorAll("[data-message-auth-container] [data-screen]").forEach(r=>oe.initScreen(r))}),document.addEventListener("auth-screen-injected",e=>{const t=this.getClosestMessageDialog(e.target),s=e.target,r=s==null?void 0:s.getAttribute("data-screen"),i=s==null?void 0:s.querySelector("form[data-auth-form]"),a=i==null?void 0:i.querySelector("[data-skip-profile-button]"),n=i==null?void 0:i.querySelector("[data-submit]");if(!t||r!=="auth-profile"||!i)return;const o=document.createElement("input");o.type="hidden",o.name="end_of_flow",o.value="true";const d=document.createElement("input");d.type="hidden",d.name="intentions",d.value="hire",i.appendChild(o),i.appendChild(d),a&&(a.addEventListener("click",c=>{c.preventDefault(),i.requestSubmit()}),a.removeAttribute("data-screen-transition"),a.textContent="Skip and Send Message"),n&&(n.textContent="Send Message")})},async submitForm(e){var o,d;const t="Failed to send message",s=e.querySelector("[data-message-dialog-submit]"),r=e.querySelector("[data-form-error]"),i=e.hasAttribute("data-reload-on-success"),a=c=>{e.toggleAttribute("is-submitting",c),s.disabled=c,s.classList.toggle("btn2--loading",c)},n=c=>{r&&(r.toggleAttribute("hidden",!c),r.innerText=c)};a(!0),n(null);try{const c=await fetch(e.getAttribute("action"),{method:"POST",body:this.getTransformedFormData(e),headers:{"X-Requested-With":"XMLHttpRequest"}}),u=await c.text();if(!c.ok){const y=c.status===422?u:t;throw new Error(y||t)}const g=(o=e.querySelector("[data-recipient-id-input]"))==null?void 0:o.value;g&&S.trackSearchUserMessaged(g);const p=e.closest("drb-dialog"),m=((d=p.querySelector("[data-message-id]"))==null?void 0:d.getAttribute("data-message-id"))||null;if(v("UserMessaged",{recipientId:g,messageID:m}),i){window.location.reload();return}u!=null&&u.includes("data-suggested-designers")?this.showSuggestedDesigners(p,u):p==null||p.setContent(u)}catch(c){const u=c instanceof Error?c.message:t;n(u),console.error(u,c)}finally{this.clearDraftSendingMessageState(),i||a(!1)}},getTransformedFormData(e){const t=new FormData(e);switch(["budget_dollars","message[cost_estimate_min]","message[cost_estimate_max]"].forEach(s=>{t.has(s)&&t.set(s,k(t.get(s)))}),e.getAttribute("data-message-dialog-form")){case"workRequest":t.set("engagement[budget_cents]",parseInt(t.get("budget_dollars")||0,10)*100),t.delete("budget_dollars");break}return t},showSuggestedDesigners(e,t){const s=e==null?void 0:e.querySelector("[data-message-success-container]"),r=e==null?void 0:e.querySelector("[data-message-dialog-form-content]");!r||!s||(s.innerHTML=t,s.toggleAttribute("hidden",!1),U(r),r.setAttribute("inert",""),this.bindToggleFormBtn(e),this.bindViewSentMessageBtn(e),this.rebindFormValidation(e),this.bindSendBulkRequest(e),this.bindMoreDesignersToggle(e))},bindMoreDesignersToggle(e){const t=e==null?void 0:e.querySelector("[data-more-designers-toggle]"),s=e==null?void 0:e.querySelector("[data-more-suggested-designers-list]");!t||!s||t==null||t.addEventListener("click",()=>{const r=t.querySelector('input[type="checkbox"]');s.querySelectorAll("[data-suggested-designer]").forEach(i=>{i.checked=r.checked})})},bindToggleFormBtn(e){const t=e==null?void 0:e.querySelector("[data-toggle-form-btn]"),s=e==null?void 0:e.querySelector("[data-message-dialog-form-content]");!e||!t||!s||t.addEventListener("click",()=>{s.hasAttribute("data-collapsed")?(fe(s),t.textContent="Hide Message",s.removeAttribute("inert")):(U(s),t.textContent="Edit Message",s.setAttribute("inert",""))})},bindViewSentMessageBtn(e){var r;const t=e==null?void 0:e.querySelector("[data-view-sent-message-btn]"),s=((r=e==null?void 0:e.querySelector("[data-thread-path]"))==null?void 0:r.getAttribute("data-thread-path"))||"";!t||!s||t.addEventListener("click",()=>{window.location=s})},bindSendBulkRequest(e){const t=e.querySelector('[data-message-dialog-form="workRequest"]'),s=e==null?void 0:e.querySelector("[data-send-bulk-request]");!s||!e||!t||s.addEventListener("click",()=>{var r;!t.hasAttribute("is-submitting")&&((r=t.pristineValidation)!=null&&r.validate())&&this.sendBulkRequest(e)})},async sendBulkRequest(e){var d;const t=e.querySelector('[data-message-dialog-form="workRequest"]'),s=e.querySelector("[data-send-bulk-request]"),r=s==null?void 0:s.getAttribute("data-send-bulk-request");if(!t||!s||!r)return;const i=Array.from(t.querySelectorAll("[data-suggested-designer]:checked")).map(c=>c.value),a=this.getTransformedFormData(t),n=((d=e.querySelector("[data-message-id]"))==null?void 0:d.getAttribute("data-message-id"))||null;a.delete("engagement[recipient_id]"),i.forEach(c=>{a.append("engagement[recipient_id][]",c)}),a.set("engagement[message_id]",n);const o=c=>{t.toggleAttribute("is-submitting",c),s.disabled=c,s.classList.toggle("btn2--loading",c)};try{if(o(!0),!(await fetch(r,{method:"POST",body:a,headers:{"X-Requested-With":"XMLHttpRequest"}})).ok)throw new Error("Something went wrong. Please try again later.");e.close(),i.forEach(u=>{S.trackSearchUserMessaged(u),v("UserMessaged",{recipientId:u,parentMessageID:n})}),I.open({title:"Your messages have been sent!",iconHtml:le,centered:!0,cancelText:"Close",confirmText:""})}catch(c){o(!1),I.open({title:c,iconHtml:L,centered:!0,cancelText:"",confirmText:"Close"})}},rebindFormValidation(e){const t=e.querySelector('[data-message-dialog-form="workRequest"]');t&&(t.pristineValidation&&t.pristineValidation.destroy(),t.pristineValidation=E(t))},open(e,t={}){return e?Se.openRemote({url:`/messages/new?recipient_id=${e}`,dialogId:"message-dialog",nonModalMode:!0,...t}):null},saveDraft(){var a,n;const e=document.querySelector("drb-dialog#message-dialog"),t=!!((a=e==null?void 0:e.querySelector("[data-message-dialog-toggle]"))!=null&&a.checked),s=(n=e==null?void 0:e.querySelector("[data-recipient-id-input]"))==null?void 0:n.value;if(!e||!s)return;const r=["message[body]","engagement[project_details]","engagement[target_date]","budget_dollars"],i={isWorkRequest:t,recipientId:s,fields:{}};r.forEach(o=>{const d=e.querySelector(`form[data-message-dialog-form] [name="${o}"]`);d&&(i.fields[o]=d.value)}),localStorage.setItem("messageDraft",JSON.stringify(i))},openAndRestoreDraft(){var t,s,r;if((r=(s=(t=window.Dribbble)==null?void 0:t.JsConfig)==null?void 0:s.user)!=null&&r.isLoggedIn)try{const i=JSON.parse(localStorage.getItem("messageDraft"));if(!i)return;const{isWorkRequest:a,recipientId:n,fields:o}=i,d=`
`,c=this.open(n,{remoteLoadingSlotHtml:d,remoteInitialHeight:"fit-content",shouldResetIsFetching:!1});if(!c)return;c.addEventListener("drb-dialog-content-updated",()=>{setTimeout(()=>{const u=c.querySelector("[data-message-dialog-toggle]");u&&(u.checked=a),Object.entries(o).forEach(([g,p])=>{const m=c.querySelector(`form[data-message-dialog-form] [name="${g}"]`);m&&(m.value=p)}),setTimeout(()=>{const g=c.querySelector(`[data-message-dialog-form="${a?"workRequest":"message"}"]`);g==null||g.requestSubmit()},0)},0)},{once:!0})}catch(i){console.error("Failed to restore message draft:",i)}},clearDraftSendingMessageState(){const e=document.querySelector("drb-dialog#message-dialog");e&&(e.isFetchingRemote=!1)},clearDraft(){localStorage.removeItem("messageDraft")}},He={pendingShotIds:new Set,trackedShotIds:new Set,trackingIntervalId:null,isTracking:!1,queueView(e){e&&(this.trackedShotIds.has(e)||this.pendingShotIds.add(e),this.trackingIntervalId||(this.trackingIntervalId=setInterval(this.trackShots.bind(this),3e3)))},async trackShots(){if(this.pendingShotIds.size===0||this.isTracking)return;const e=Array.from(this.pendingShotIds);this.isTracking=!0;try{const t=await fetch("/shots/log_views",{method:"POST",headers:{"Content-Type":"application/json","X-CSRF-Token":N()},body:JSON.stringify({ids:e})});if(!t.ok)throw new Error(`Failed logging shot views: ${t.statusText}`);e.forEach(s=>{var i,a;this.trackedShotIds.add(s),this.pendingShotIds.delete(s);const r=(i=window.shotMetadata)==null?void 0:i.get(s);(a=r==null?void 0:r.gaKeys)==null||a.forEach(n=>{v("shot_page_view",{send_to:n,name:"shot_page_view",page_location:r.path,page_title:r.title})})}),document.dispatchEvent(new CustomEvent("shotViewQueue:shotsSeen",{detail:{shotIds:e}}))}catch(t){console.error("Error tracking shot views:",t)}finally{this.isTracking=!1}}},xe={shotItemContainer:document.querySelector("[data-shot-item-container]"),init(){document.addEventListener("drb-infinite-scroll-item-seen",e=>{var s;const t=(s=e.detail.element)==null?void 0:s.getAttribute("data-shot-item");He.queueView(t)}),document.addEventListener("DOMContentLoaded",()=>{this.shotItemContainer&&(this.setupLegacyShotModal(),this.setupLegacyBucket())})},setupLegacyShotModal(){var e,t;(e=Dribbble==null?void 0:Dribbble.ShotOverlay)!=null&&e.active||(t=Dribbble==null?void 0:Dribbble.ShotOverlay)==null||t.init({nativeContainer:this.shotItemContainer,originalUrl:document.location.toString(),shotClickTargetSelector:"[data-shot-thumbnail-link]",shotElSelector:"[data-shot-item]",isSimpleModal:!0})},setupLegacyBucket(){Dribbble!=null&&Dribbble.Bucket&&new Dribbble.Bucket({target:"a[data-bucket-add]"})}};function f(e){var t;return((t=e==null?void 0:e.data)==null?void 0:t.type)==="drb-video"}class Ne{constructor(t,s){this.options=s,this.initLightboxEvents(t),t.on("init",()=>{this.initPswpEvents(t.pswp)})}initLightboxEvents(t){t.on("contentLoad",this.onContentLoad.bind(this)),t.on("contentDestroy",this.onContentDestroy.bind(this)),t.on("contentActivate",this.onContentActivate.bind(this)),t.on("contentDeactivate",this.onContentDeactivate.bind(this)),t.on("contentAppend",this.onContentAppend.bind(this)),t.on("contentResize",this.onContentResize.bind(this)),t.addFilter("isKeepingPlaceholder",this.isKeepingPlaceholder.bind(this)),t.addFilter("isContentZoomable",this.isContentZoomable.bind(this)),t.addFilter("useContentPlaceholder",this.useContentPlaceholder.bind(this)),t.addFilter("domItemData",(s,r,i)=>(s.type==="video"&&i&&(i.dataset.pswpVideoSources?s.videoSources=JSON.parse(i.dataset.pswpVideoSources):i.dataset.pswpVideoSrc?s.videoSrc=i.dataset.pswpVideoSrc:s.videoSrc=i.href),s))}initPswpEvents(t){t.on("pointerDown",s=>{const r=t.currSlide;if(f(r)&&this.options.preventDragOffset){const i=s.originalEvent;if(i.type==="pointerdown"){const n=Math.ceil(r.height*r.currZoomLevel)+r.bounds.center.y,o=i.pageY-t.offset.y;o>n-this.options.preventDragOffset&&o