{
  "version": 3,
  "sources": ["/cdn/shop/t/105/assets/dyd-project-studio.js?release=my-designs-cart-v1"],
  "sourcesContent": ["/* Private draft project editor. Server authorization is authoritative on every request. */\n(() => {\n 'use strict';\n // Draft persistence is separate from customer approval. One write at a time.\n function createDraftPreviewSaver({current,write,status,seed=null,delay=800,schedule=setTimeout,cancel=clearTimeout}){\n  let saved=seed,timer=null,flight=null;\n  function queue(){if(timer!==null)cancel(timer);timer=null;const key=current();if(!key||key===saved)return;status('pending');timer=schedule(()=>{timer=null;flush().catch(()=>{});},delay);}\n  async function flush(){if(timer!==null){cancel(timer);timer=null;}if(flight){await flight;return flush();}const key=current();if(!key)return false;if(key===saved){status('saved');return true;}status('saving');flight=(async()=>{try{const accepted=await write(key);if(accepted)saved=key;return accepted;}catch(e){status('error',e);throw e;}})();try{await flight;}finally{flight=null;}const now=current();if(now===saved){status('saved');return true;}if(now)queue();return false;}\n  return {queue,flush};\n }\n function confirmedCapacity(wallet,providerRemaining){\n  const available=wallet?.available;\n  if(!Number.isSafeInteger(available)||available<0||!(providerRemaining===null||Number.isSafeInteger(providerRemaining)&&providerRemaining>=0))throw Error('Generation availability could not be confirmed. Your saved balance has not been changed.');\n  return providerRemaining===null?available:Math.min(available,providerRemaining);\n }\n function generationFailureText(code){\n  if(['provider_insufficient_quota','provider_credit_balance_exhausted','provider_billing_hard_limit_reached','provider_project_spend_limit_exceeded','provider_organization_spend_limit_exceeded','provider_organization_usage_limit_exceeded'].includes(code))return 'Image-service funding or a provider spending limit stopped this request. Studio design credits are separate. The team needs to check the funded organization and its limits.';\n  if(code==='provider_rate_limit_exceeded'||code==='provider_http_429')return 'The image provider is temporarily limiting requests. No automatic replacement image was requested. Wait before trying again.';\n  if(['provider_invalid_api_key','provider_permission_denied','provider_model_not_found','provider_http_401','provider_http_403'].includes(code))return 'The image connection or model permission needs attention. Your saved project is safe; the team needs to repair the connection.';\n  if(code==='provider_content_policy_violation'||code==='content_not_allowed')return 'This image request could not pass the content check. Revise the request before trying again.';\n  if(['blank_image','unexpected_transparency','unexpected_image_dimensions','invalid_provider_image'].includes(code))return 'The provider returned an image that could not be delivered safely. A blank, transparent or incorrectly sized image was not accepted.';\n  if(code?.startsWith('quality_'))return 'We could not deliver a design that passed the quality checks. Your project is saved.';\n  return 'Image processing did not complete. Your project is saved; check the existing request before trying again.';\n }\n // Preserve viewport for choices within a step, including rerendered controls.\n function createSelectionScrollKeeper(root,readStep){\n  let pending=null,serial=0,lastStep=readStep(),minimum=root.style.minHeight;\n  root.style.overflowAnchor='none';\n  const clear=()=>{pending=null;serial++;root.style.minHeight=minimum;lastStep=readStep();};\n  const restore=mark=>{\n   if(!pending||mark!==serial)return;\n   if(readStep()!==pending.step){clear();return;}\n   const {top,left,control}=pending;\n   if(control&&!control.isConnected&&control.matches('select,input[type=radio],input[type=checkbox]')){\n    const label=control.getAttribute('aria-label'),name=control.getAttribute('name');\n    const next=[...root.querySelectorAll(control.tagName)].find(n=>label?n.getAttribute('aria-label')===label:name&&n.getAttribute('name')===name&&n.value===control.value);\n    next?.focus({preventScroll:true});\n   }\n   window.scrollTo({top,left,behavior:'instant'});\n  };\n  const remember=e=>{\n   const control=e.target.closest?.('select,input,button,summary');\n   if(!control||!root.querySelector('[data-panel]')?.contains(control)||control.closest('dialog'))return;\n   if(control.matches('[data-custom-size-trigger]')||control.closest('[data-custom-size-quote]')){clear();return;}\n   if(control.matches('input:not([type=radio]):not([type=checkbox]):not([type=range]),textarea'))return;\n   if(readStep()!==lastStep)clear();\n   pending={top:window.scrollY,left:window.scrollX,step:readStep(),control};\n   const height=root.getBoundingClientRect().height;\n   root.style.minHeight=Math.max(height,parseFloat(root.style.minHeight)||0)+'px';\n   const mark=++serial;\n   queueMicrotask(()=>{restore(mark);requestAnimationFrame(()=>{restore(mark);requestAnimationFrame(()=>restore(mark));});});\n  };\n  for(const event of ['click','change'])root.addEventListener(event,remember,true);\n  const intentionalScroll=()=>{pending=null;serial++;};\n  window.addEventListener('wheel',intentionalScroll,{passive:true});window.addEventListener('touchmove',intentionalScroll,{passive:true});\n  const key=e=>{if(['PageDown','PageUp','Home','End'].includes(e.key))intentionalScroll();};window.addEventListener('keydown',key);\n  return {rendered(){if(readStep()!==lastStep)clear();else if(pending)restore(serial);},reset:clear,destroy(){clear();for(const event of ['click','change'])root.removeEventListener(event,remember,true);window.removeEventListener('wheel',intentionalScroll);window.removeEventListener('touchmove',intentionalScroll);window.removeEventListener('keydown',key);}};\n }\n /* Recorded usage estimates; never a live balance or provider invoice. */\n function studioUsageEstimate(record){\n  if(!record)return {usd:null,partial:true,reason:'Recorded usage is unavailable.'};\n  const attempts=Array.isArray(record.attempts)?record.attempts:[],number=v=>typeof v==='number'&&Number.isFinite(v)&&v>=0?v:null;\n  if(record.provider_dispatched===false&&!record.imageUsage&&!attempts.length)return {usd:null,partial:false,notSent:true,reason:'No image request was sent.'};\n  const legacy=!record.model,knownImage=legacy||['gpt-image-2.5-sunburst','gpt-image-2.5-sunburst-2026-09-08'].includes(record.model),knownCheck=['gpt-4.1-mini','gpt-4.1-mini-2025-04-14'].includes(record.checker);\n  const image=u=>{if(!u||!knownImage)return null;const t=number(u.input_tokens_details?.text_tokens),i=number(u.input_tokens_details?.image_tokens),o=number(u.output_tokens_details?.image_tokens??u.output_tokens);return t===null||i===null||o===null?null:(t*5+i*8+o*30)/1e6;};\n  const check=u=>{if(!u||!knownCheck)return null;const input=number(u.prompt_tokens),output=number(u.completion_tokens),cached=number(u.prompt_tokens_details?.cached_tokens??0);return input===null||output===null||cached===null||cached>input?null:((input-cached)*.4+cached*.1+output*1.6)/1e6;};\n  let imageUsd=0,checkUsd=0,imageRecords=0,checkRecords=0,partial=legacy,missingImage=false,missingCheck=false;const rows=attempts.length?attempts:[{imageUsage:record.imageUsage}];\n  for(const a of rows){const value=image(a.imageUsage);if(value===null){missingImage=true;partial=true;}else{imageUsd+=value;imageRecords++;}if(a.checkUsage){const checked=check(a.checkUsage);if(checked===null){missingCheck=true;partial=true;}else{checkUsd+=checked;checkRecords++;}}else if(attempts.length){missingCheck=true;partial=true;}}\n  if(!imageRecords&&!checkRecords)return {usd:null,partial:true,reason:!knownImage?'This image model has no configured price.':'Recorded usage is unavailable.'};\n  return {usd:imageUsd+checkUsd,imageUsd,checkUsd,imageRecords,checkRecords,partial,legacy,missingImage,missingCheck,reason:legacy?'Historical image-model assumption; checks may not be itemized.':partial?'Some usage is missing; this is a partial estimate.':'Includes the recorded image attempts and quality checks.'};\n }\n function studioCostText(value){if(value===null||!Number.isFinite(value))return 'Cost unavailable';if(value>0&&value<.0001)return 'Less than 0.01\u00A2 \u00B7 less than $0.0001 USD';return (value*100).toFixed(2)+'\u00A2 \u00B7 $'+value.toFixed(4)+' USD';}\n /* End recorded usage helpers. */\n\n const steps=['Your covers','Create artwork','Review artwork','Preview on your garage door','Printed panels & wall gaps','Final approval & cart'];\n function doorLabel(payload){return payload?.covers?.[0]?.product==='front'?'front door':'garage door';}\n function previewLabel(payload){return 'Preview on your '+doorLabel(payload);}\n function stepLabel(payload,step){if(step===4)return payload.workflow==='continuous'?'Printed covers & wall gaps':payload.covers.reduce((n,c)=>n+(Number(c.quantity)||1),0)===1?'Printed cover':'Printed covers';return step===3?previewLabel(payload):steps[step];}\n const garage={'48538544177335':[16,7],'48538544210103':[16,8],'48538544242871':[8,7],'48538544275639':[9,7],'48785273880759':[17,7],'48785273913527':[17,8],'48785273946295':[18,7],'48785273979063':[18,8],'48785274011831':[8,8],'48785274044599':[9,8],'48785274077367':[10,7],'48785274110135':[10,8],'48785274142903':[10,9],'48785274175671':[12,7],'48785274208439':[12,8],'48785274241207':[10,10]};\n const front={'41919782256823':[36,80],'41919782289591':[36,96],'41919782322359':[32,80],'41919782355127':[30,80]};\n function readCustomSize(cover){\n  const value=cover?.customSize;if(!value||value.version!==1||Object.keys(value).some(k=>!['version','measurementManifest','finish','grommetPattern','exactDimensionsAcknowledged','stitchingAcknowledged'].includes(k))||cover.variant)throw Error('Review the custom measurements again.');\n  const m=value.measurementManifest,validAxis=a=>a&&Object.keys(a).every(k=>['entered','unit'].includes(k))&&typeof a.entered==='string'&&/^(?:\\d+(?:[.,]\\d{1,6})?|[.,]\\d{1,6})$/.test(a.entered)&&a.entered.length<=20&&['ft','in','cm','m'].includes(a.unit)&&Number(a.entered.replace(',','.'))>0;\n  if(!m||m.version!==1||Object.keys(m).some(k=>!['version','width','height'].includes(k))||!validAxis(m.width)||!validAxis(m.height)||value.exactDimensionsAcknowledged!==true||!['velcro','grommets'].includes(value.finish))throw Error('Review the exact custom measurements and finishing.');\n  if(value.finish==='grommets'&&!['four_corners','four_corners_top_bottom_middle'].includes(value.grommetPattern)||value.finish==='velcro'&&value.grommetPattern!==undefined)throw Error('Review the custom grommet layout.');\n  const inFeet=a=>Number(a.entered.replace(',','.'))*({ft:1,in:1/12,cm:25/762,m:1250/381}[a.unit]);\n  if(inFeet(m.width)>10&&inFeet(m.height)>10&&value.stitchingAcknowledged!==true)throw Error('Acknowledge the stitched construction for this size.');\n  return value;\n }\n const hasCustomSize=payload=>payload.covers.some(c=>c.customSize!==undefined);\n function dimensions(c){if(c.customSize!==undefined){const custom=readCustomSize(c),factors=c.product==='front'?{in:1,ft:12,cm:50/127,m:5000/127}:{ft:1,in:1/12,cm:25/762,m:1250/381};return ['width','height'].map(axis=>Number(custom.measurementManifest[axis].entered.replace(',','.'))*factors[custom.measurementManifest[axis].unit]);}return (c.product==='front'?front:garage)[c.variant];}\n function customSizeText(c){const m=readCustomSize(c).measurementManifest;return m.width.unit===m.height.unit?m.width.entered+' \u00D7 '+m.height.entered+' '+m.width.unit:m.width.entered+' '+m.width.unit+' \u00D7 '+m.height.entered+' '+m.height.unit;}\n function customFinishingText(c){const v=readCustomSize(c);return v.finish==='velcro'?'Standard Velcro finish':'Grommets \u00B7 '+(v.grommetPattern==='four_corners'?4:6)+' rings \u00B7 Supply your own attachment method';}\n\n function layout(p){const factor={ft:12,in:1,cm:1/2.54}[p.units||'ft'];let x=0;const panels=p.covers.map((c,i)=>{const d=dimensions(c);if(!d)throw Error('Choose every size');const w=d[0]*12,h=d[1]*12,out={x,w,h,id:c.id,label:p.covers.length===2?['Left','Right'][i]:['Left','Center','Right'][i]};x+=w+(Number(p.gaps?.[i]||0)*factor);return out;});return {width:x,height:Math.max(...panels.map(d=>d.h)),panels};}\n function exactStandardSizeMatch(payload,variants){\n  if(payload?.workflow!=='single'||payload.covers?.length!==1)return null;\n  const c=payload.covers[0];if(c.customSize===undefined||!Array.isArray(variants))return null;\n  let custom;try{custom=readCustomSize(c);}catch{return null;}\n  if(custom.finish!=='velcro'||custom.grommetPattern!==undefined)return null;\n  if(c.product==='garage'&&!['Exterior Mount','Interior Mount'].includes(c.option)||c.product==='front'&&c.option!=='Velcro')return null;\n  function matches(axis,targetInches){const factors={ft:[12n,1n],in:[1n,1n],cm:[50n,127n],m:[5000n,127n]},factor=factors[axis.unit],text=String(axis.entered).replace(',','.');if(!factor||!/^(?:\\d+(?:\\.\\d{1,6})?|\\.\\d{1,6})$/.test(text))return false;const [a,b='']=text.split('.'),n=BigInt(a+b),d=10n**BigInt(b.length);return n*factor[0]===BigInt(targetInches)*d*factor[1];}\n  const sizes=c.product==='garage'?garage:front;\n  return variants.find(v=>{const size=sizes[v.id];return v.product===c.product&&v.available!==false&&size&&matches(custom.measurementManifest.width,size[0]*(c.product==='garage'?12:1))&&matches(custom.measurementManifest.height,size[1]*(c.product==='garage'?12:1));})||null;\n }\n function standardSizeCopy(payload,variant){\n  if(!exactStandardSizeMatch(payload,[variant]))throw Error('These exact dimensions and finishing do not match a listed standard cover.');\n  const next=structuredClone(payload),c=next.covers[0];c.variant=variant.id;delete c.customSize;\n  if(next.personalization){next.layerDraft=next.personalization.layers.map(l=>({...l,panelIndex:0}));delete next.personalization;}\n  next.artworkRevision=crypto.randomUUID();next.preview=null;next.panels=null;next.panelsReviewed=false;next.panelReviews={};next.gapAcknowledged=false;next.step=next.artwork?2:0;\n  delete next.panelPreparationFingerprint;delete next.customApproval;delete next.houseDetection;return next;\n }\n function artworkShapeDetails(payload,w,h){\n  const d=payload.workflow==='continuous'?layout(payload):{width:dimensions(payload.covers[0])[0],height:dimensions(payload.covers[0])[1]};\n  const shape=(a,b)=>Math.abs(a/b-1)<.012?'square':a>b?'landscape':'portrait';\n  return {targetShape:shape(d.width,d.height),sourceShape:shape(w,h),targetRatio:(d.width/d.height).toFixed(3),sourceRatio:(w/h).toFixed(3),targetSize:payload.workflow==='continuous'?'Complete panorama including wall gaps':payload.covers[0].customSize!==undefined?customSizeText(payload.covers[0]):d.width+' \u00D7 '+d.height+' '+(payload.covers[0].product==='front'?'in':'ft')};\n }\n function fitGeometry(sw,sh,ratio,mode,x=.5,y=.5){\n  if(![sw,sh,ratio,x,y].every(Number.isFinite)||sw<1||sh<1||ratio<=0||!['contain','crop','stretch'].includes(mode)||x<0||x>1||y<0||y>1)throw Error('Review the artwork fit settings.');\n  let crop={x:0,y:0,w:sw,h:sh},w,h;\n  if(mode==='contain'){w=Math.max(sw,sh*ratio);h=w/ratio;}\n  else if(mode==='stretch'){w=Math.sqrt(sw*sh*ratio);h=w/ratio;}\n  else{crop.w=Math.min(sw,sh*ratio);crop.h=crop.w/ratio;crop.x=(sw-crop.w)*x;crop.y=(sh-crop.h)*y;w=crop.w;h=crop.h;}\n  const scale=Math.min(1,Math.sqrt(4000000/(w*h)));w=Math.floor(w*scale);h=Math.floor(h*scale);\n  if(w<8||h<8||Math.abs(w/h-ratio)/ratio>=.012)throw Error('These proportions need a larger source image. Your original is unchanged.');\n  const factor=mode==='contain'?Math.min(w/sw,h/sh):w/crop.w;\n  return {w,h,crop,draw:mode==='contain'?{x:(w-sw*factor)/2,y:(h-sh*factor)/2,w:sw*factor,h:sh*factor}:{x:0,y:0,w,h}};\n }\n function artworkFitTarget(payload){return payload.workflow==='continuous'?layout(payload):{width:dimensions(payload.covers[0])[0],height:dimensions(payload.covers[0])[1]};}\n function artworkFitSource(payload){return payload.personalization?.rendered||(payload.artworkFit?.output?.id===payload.artwork?.id?payload.artworkFit.source:payload.artwork);}\n function fittedArtworkPayload(payload,asset,receipt){\n  if(!asset?.id||asset.kind!=='asset'||!['contain','crop','stretch'].includes(receipt?.mode)||receipt.confirmed!==true||!receipt.source?.id||!['asset','job'].includes(receipt.source.kind)||!/^[a-f0-9]{64}$/.test(receipt.sourceSha256||''))throw Error('Review and confirm the fitted artwork first.');\n  const target=artworkFitTarget(payload);if(!Number.isInteger(asset.width)||!Number.isInteger(asset.height)||asset.width<8||asset.height<8||Math.abs(asset.width/asset.height-target.width/target.height)/(target.width/target.height)>=.012)throw Error('The saved artwork does not match this layout. Your original is unchanged.');\n  const next=structuredClone(payload);next.artwork={kind:'asset',id:asset.id};next.artworkFit={version:1,...structuredClone(receipt),output:{kind:'asset',id:asset.id}};next.artworkRevision=crypto.randomUUID();next.preview=null;next.panels=null;next.panelsReviewed=false;next.panelReviews={};next.gapAcknowledged=false;next.step=2;\n  for(const c of next.covers)if(c.artwork){next.artworkFit.sourceCoverArtwork={...(next.artworkFit.sourceCoverArtwork||{}),[c.id]:c.artwork};delete c.artwork;}\n  if(next.matchingSource){next.artworkFit.sourceMatchingSource=next.matchingSource;delete next.matchingSource;}\n  if(next.personalization){next.artworkFit.sourcePersonalization=next.personalization;delete next.personalization;}\n  if(next.layerDraft){next.artworkFit.sourceLayerDraft=next.layerDraft;delete next.layerDraft;}\n  delete next.matchingRequested;delete next.panoramaExtraction;delete next.panelPreparationFingerprint;return next;\n }\n async function studioResponse(response,action){\n  let data;try{data=await response.json();}catch{throw Object.assign(Error(action==='upload'?'The artwork upload could not finish. Your original is safe. Please try again.':'The Studio response could not be confirmed. Check your saved project before trying again.'),{status:response.ok?503:response.status||503});}\n  if(!response.ok)throw Object.assign(Error(response.status===546?'The artwork upload could not finish. Your original is safe. Please try again.':typeof data?.error==='string'?data.error:'Studio is temporarily unavailable. Your saved project is safe.'),{status:response.status});\n  if(!data||typeof data!=='object'||Array.isArray(data))throw Object.assign(Error('The Studio response could not be confirmed. Check your saved project before trying again.'),{status:503});return data;\n }\n function fits(p,w,h){const d=p.workflow==='continuous'?layout(p):{width:dimensions(p.covers[0])[0],height:dimensions(p.covers[0])[1]};return Math.abs(w/h-d.width/d.height)/(d.width/d.height)<.012;}\n function printPixelCrop(payload,width,height,index){\n  const map=layout(payload),d=map.panels[index];if(!d||![width,height].every(v=>Number.isInteger(v)&&v>0)||!fits(payload,width,height))throw Error('The original artwork needs to fit the selected layout before preparing printed covers.');\n  const x=Math.round(d.x/map.width*width),right=Math.round((d.x+d.w)/map.width*width),h=Math.round(d.h/map.height*height);return {x,y:height-h,w:right-x,h};\n }\n function validPlannedArtworkArea(payload,meta,plan){\n  if(payload.workflow!=='continuous'||payload.artwork?.kind!=='job'||meta?.target?.family!=='Continuous')return false;\n  const target=layout(payload),c=plan?.providerCanvas,b=c?.band;if(!c||!b||![c.w,c.h,b.x,b.y,b.w,b.h].every(Number.isInteger)||b.w<8||b.h<8||b.x<0||b.y<0||b.x+b.w>c.w||b.y+b.h>c.h||meta.width!==c.w||meta.height!==c.h)return false;\n  return Math.abs(meta.target.width/meta.target.height-target.width/target.height)/(target.width/target.height)<.012&&fits(payload,b.w,b.h);\n }\n function doorKind(c){return c.customSize!==undefined?(dimensions(c)[0]<=(c.product==='front'?120:10)?'single':'double'):c.variant&&garage[c.variant]?(garage[c.variant][0]<=10?'single':'double'):(c.garageType||'single');}\n function continuousScenes(project,scenes){const kinds=project.covers.map(doorKind);const mount=project.garageMount||project.covers.find(c=>c.product==='garage'&&c.option)?.option||'Exterior Mount';return scenes.filter(s=>(s.mount||(/interior/i.test(s.id+' '+s.label)?'Interior':'Exterior'))===(mount==='Interior Mount'?'Interior':'Exterior')&&s.doorCount===project.covers.length&&(s.doorFamilies||Array(s.doorCount).fill('single')).every((kind,i)=>kind===kinds[i]));}\n function gapEntered(project,i){return project.gapEntries?project.gapEntries[i]===true:Number.isFinite(project.gaps?.[i])&&project.gaps[i]>0;}\n function setupProblems(project){const missing=[];if(!project.title.trim())missing.push('Name your project');if(project.workflow==='continuous'&&project.covers.filter(c=>doorKind(c)==='double').length>1)missing.push('Two double-car doors are not supported yet; choose a single-car door for one position');project.covers.forEach((c,i)=>{if(!c.product){missing.push('Cover '+(i+1)+': choose a cover type');return;}if(c.customSize!==undefined){try{readCustomSize(c);}catch(e){missing.push('Cover '+(i+1)+': '+e.message);}if(project.workflow!=='single')missing.push('Choose an individual cover for custom measurements');}else if(!c.variant)missing.push('Cover '+(i+1)+': choose a size');if(!c.option)missing.push('Cover '+(i+1)+': choose '+(c.product==='front'?'fastening':'mount type'));});if(project.workflow==='continuous')project.gaps.forEach((g,i)=>{if(!gapEntered(project,i)||!Number.isFinite(g)||g<0||g>1000)missing.push('Enter wall gap '+(i+1)+' (0 if there is no gap)');});return missing;}\n function canVisitStep(payload,approvals,step){const ready=payload.covers?.length>0&&setupProblems(payload).length===0;if(step===0)return true;if(step===1)return ready;if(step===2)return ready&&!!payload.artwork;if(step===3)return ready&&!!payload.artwork&&!!approvals.artwork;if(step===4)return ready&&!!payload.artwork&&!!approvals.artwork&&!!payload.preview;if(step===5)return ready&&!!payload.artwork&&!!approvals.artwork&&!!payload.preview&&!!payload.panelsReviewed&&(payload.workflow!=='continuous'||!!payload.gapAcknowledged&&payload.covers.every(c=>payload.panelReviews?.[c.id]));return false;}\n function completeLookTarget(payload,approvals){\n  const covers=payload?.covers;\n  if(!approvals?.final||!payload?.artwork||!Array.isArray(covers)||!covers.length)return null;\n  const type=covers[0].product;\n  return ['garage','front'].includes(type)&&covers.every(c=>c.product===type)?(type==='garage'?'front':'garage'):null;\n }\n function matchingPairComplete(current,rows){\n  const target=completeLookTarget(current?.payload,current?.approvals);if(!target)return false;\n  const family=row=>row.payload?.setId||row.source_project_id||row.id,group=family(current);\n  return rows.some(row=>row.id!==current.id&&row.approvals?.final&&row.payload?.artwork&&Array.isArray(row.payload.covers)&&row.payload.covers.length&&row.payload.covers.every(c=>c.product===target)&&(family(row)===group||row.source_project_id===current.id||current.source_project_id===row.id));\n }\n function matchingCoverDraft(source,target){\n  if(completeLookTarget(source?.payload,source?.approvals)!==target)throw Error('Reopen and approve the original design before creating a matching cover.');\n  const label=target==='front'?'front door':'garage door';\n  return {id:crypto.randomUUID(),revision:0,source_project_id:source.id,payload:{...blank(),route:'reuse',matchingRequested:true,covers:[newCover(target)],title:(source.payload.title+' \u00B7 Matching '+label).slice(0,100),artwork:structuredClone(source.payload.artwork),setId:source.payload.setId||source.source_project_id||source.id,remakeDetails:(source.payload.personalization?.layers||[]).filter(l=>l.type==='text').map(l=>l.text||'').filter(Boolean).join(' / ').slice(0,300)},approvals:{}};\n }\n function needsMatchingArtwork(){return window.DYDProjectCollection?.pendingMatch(project)===true||p().matchingRequested===true&&!p().matchingSource&&!project.approvals.final;}\n function newCover(product='garage'){return {id:crypto.randomUUID(),product,variant:'',option:'',quantity:1};}\n function blank(){return {title:'',step:0,workflow:'single',route:'new',covers:[newCover('')],units:'ft',gaps:[],artwork:null,preview:null,house:null,scene:null,corners:null,fit:'exact-full-artwork',panelsReviewed:false,gapAcknowledged:false};}\n // Projective mapping, never an AI redraw. Solve a unit-square homography.\n function homography(q){const a=[],b=[];[[0,0],[1,0],[1,1],[0,1]].forEach(([x,y],i)=>{const [u,v]=q[i];a.push([x,y,1,0,0,0,-u*x,-u*y],[0,0,0,x,y,1,-v*x,-v*y]);b.push(u,v);});for(let i=0;i<8;i++){let pivot=i;for(let j=i+1;j<8;j++)if(Math.abs(a[j][i])>Math.abs(a[pivot][i]))pivot=j;[a[i],a[pivot]]=[a[pivot],a[i]];[b[i],b[pivot]]=[b[pivot],b[i]];if(Math.abs(a[i][i])<1e-8)throw Error('Spread the four corners into a valid door shape');const d=a[i][i];for(let k=i;k<8;k++)a[i][k]/=d;b[i]/=d;for(let j=0;j<8;j++)if(j!==i){const m=a[j][i];for(let k=i;k<8;k++)a[j][k]-=m*a[i][k];b[j]-=m*b[i];}}const transform=(x,y)=>{const d=b[6]*x+b[7]*y+1;return [(b[0]*x+b[1]*y+b[2])/d,(b[3]*x+b[4]*y+b[5])/d];};transform.inverse=(u,v)=>{const a=b[0]-u*b[6],c=b[1]-u*b[7],d=b[3]-v*b[6],e=b[4]-v*b[7],f=u-b[2],g=v-b[5],det=a*e-c*d;return [(f*e-c*g)/det,(a*g-f*d)/det];};return transform;}\n function validQuad(q){if(!Array.isArray(q)||q.length!==4)return false;let sign=0;for(let i=0;i<4;i++){const a=q[i],b=q[(i+1)%4],c=q[(i+2)%4],cross=(b[0]-a[0])*(c[1]-b[1])-(b[1]-a[1])*(c[0]-b[0]);if(!Number.isFinite(cross)||Math.abs(cross)<20)return false;if(sign&&Math.sign(cross)!==sign)return false;sign=Math.sign(cross);}return sign>0;}\n function detectedDoorGroups(result,w,h,count){\n  if(result?.status!=='detected'||!Array.isArray(result.doors)||result.doors.length>6||!Number.isFinite(w)||!Number.isFinite(h)||w<=0||h<=0||![1,2,3].includes(count))return [];\n  const ds=result.doors.filter(d=>Number.isFinite(d.confidence)&&d.confidence>=.85&&d.confidence<=1&&Array.isArray(d.corners)&&d.corners.length===4&&d.corners.every(v=>Array.isArray(v)&&v.length===2&&v.every(n=>Number.isFinite(n)&&n>=0&&n<=1))).map(d=>d.corners.map(([x,y])=>[x*w,y*h])).filter(validQuad).sort((a,b)=>a.reduce((s,v)=>s+v[0],0)-b.reduce((s,v)=>s+v[0],0));\n  const groups=[];for(let i=0;i<=ds.length-count;i++){const group=ds.slice(i,i+count);if(group.every((q,j)=>!j||Math.max(...group[j-1].map(v=>v[0]))<Math.min(...q.map(v=>v[0]))+w*.015))groups.push({first:i+1,corners:group});}return groups;\n }\nfunction defaultStudioProjectName(mode='ai',aiPath='idea',firstName=''){\n const name=typeof firstName==='string'?firstName.replace(/[\\u0000-\\u001f\\u007f]/g,' ').replace(/\\s+/g,' ').trim().slice(0,48):'';\n const owner=name&&!name.includes('@')?name:'My project',method=mode==='upload'?'Upload your own image':aiPath==='remake'?'Reimagine a picture':'Create from an idea';\n return owner+' \u00B7 '+method;\n}\nfunction hasSavedStudioProject(row){return !!row?.id&&Number.isInteger(row.revision)&&row.revision>0&&typeof row.payload?.title==='string'&&row.payload.title.trim().length>0;}\nfunction studioEntryView({search='',restoredSetup=false,pendingGeneration=false,canAdmin=false}={}){\n const requested=new URLSearchParams(search),workspace=requested.get('workspace');\n if(workspace==='library')return 'library';\n if(workspace==='admin'&&canAdmin)return 'admin';\n if(requested.has('project')||pendingGeneration)return 'project';\n if(workspace==='new'||requested.get('source')==='ai')return 'choices';\n return restoredSetup?'project':'choices';\n}\n// Shape checks only. Checkout still requires the existing authenticated server verifier.\nfunction hasCompactOrderProperties(line){const p=line?.properties||{},file=p['_Artwork File'];return typeof file==='string'&&(file.includes('dyd2=')||file.startsWith('https://decor-your-door.com/apps/dyd-studio?')&&!p['_Design ID']&&!p['_Studio Signature']&&!p['_Studio Upload ID']&&p['_Private Artwork']!=='Account only');}\nfunction compactCartReference(line){\n try{\n  const p=line?.properties||{},names=Object.keys(p);if(!hasCompactOrderProperties(line)||names.length<2||names.length>3||!names.every(k=>['_Artwork File','_Approved Preview','_Home Photo'].includes(k))||!p['_Artwork File']||!p['_Approved Preview'])return null;\n  const valid=(value,withProof)=>{const u=new URL(value),keys=['theme_id','action','id','kind',...(withProof?['dyd2']:[])];return typeof value==='string'&&u.origin==='https://decor-your-door.com'&&u.pathname==='/apps/dyd-studio'&&!u.username&&!u.password&&!u.hash&&[...u.searchParams.keys()].every(k=>keys.includes(k))&&keys.every(k=>u.searchParams.getAll(k).length===1)&&u.searchParams.get('theme_id')==='155534033079'&&u.searchParams.get('action')==='staff-asset'&&/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$/.test(u.searchParams.get('id')||'')&&['asset','job'].includes(u.searchParams.get('kind'))?u:null;};\n  const url=valid(p['_Artwork File'],true);if(!url||!valid(p['_Approved Preview'],false)||Object.hasOwn(p,'_Home Photo')&&!valid(p['_Home Photo'],false))return null;\n  const token=url.searchParams.get('dyd2');if(!/^[A-Za-z0-9_-]{108}$/.test(token||''))return null;\n  const bytes=Uint8Array.from(atob(token.replaceAll('-','+').replaceAll('_','/')),v=>v.charCodeAt(0));if(bytes.length!==81||bytes[0]!==2)return null;\n  const id=i=>{const h=[...bytes.slice(1+i*16,17+i*16)].map(v=>v.toString(16).padStart(2,'0')).join('');return h.slice(0,8)+'-'+h.slice(8,12)+'-'+h.slice(12,16)+'-'+h.slice(16,20)+'-'+h.slice(20);};\n  const [projectId,finalId,coverId]=[0,1,2].map(id);if(![projectId,finalId,coverId].every(x=>/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$/.test(x)))return null;\n  return {v:2,projectId,finalId,coverId,token};\n }catch{return null;}\n}\nfunction studioLineProjectId(line){return hasCompactOrderProperties(line)?compactCartReference(line)?.projectId||null:line?.properties?.['_Design ID']||null;}\nfunction studioLineProof(line){return hasCompactOrderProperties(line)?compactCartReference(line)?.token||null:line?.properties?.['_Studio Signature']||null;}\n\nfunction preparedCartMatches(prepared,saved){\n const lines=prepared?.lines;if(!Array.isArray(lines)||!lines.length||!Array.isArray(saved)||saved.length!==lines.length)return false;\n const used=new Set();\n return lines.every(line=>{const index=saved.findIndex((item,i)=>!used.has(i)&&String(item.variant_id??item.id)===String(line.id)&&Number(item.quantity)===Number(line.quantity)&&Number.isInteger(Number(item.quantity))&&Object.keys(item.properties||{}).length===Object.keys(line.properties||{}).length&&Object.entries(line.properties||{}).every(([key,value])=>String(item.properties?.[key])===String(value)));\n  if(index<0)return false;const properties=saved[index].properties||{};if(prepared.checkoutEnabled===true){if(hasCompactOrderProperties({properties})){if(!compactCartReference({properties}))return false;}else if(properties.Approval!=='Customer approved'||'_Studio Draft' in properties||!(/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i.test(properties['_Final Approval ID']||''))||!/^[1-9][0-9]*$/.test(properties['_Studio Customer']||'')||!/^[a-f0-9]{64}$/.test(properties['_Studio Signature']||''))return false;}else if(properties['_Studio Draft']!=='Private test \u2014 checkout blocked')return false;used.add(index);return true;\n });\n}\nfunction missingApprovedCartLines(prepared,existing){if(prepared?.checkoutEnabled!==true||!Array.isArray(prepared.lines)||!Array.isArray(existing)||!existing.length||existing.length>=prepared.lines.length)return null;const used=new Set();for(const item of existing){const index=prepared.lines.findIndex((line,i)=>!used.has(i)&&preparedCartMatches({checkoutEnabled:true,lines:[line]},[item]));if(index<0)return null;used.add(index);}return prepared.lines.filter((_,i)=>!used.has(i));}\n if(typeof module==='object'&&module.exports)module.exports={exactStandardSizeMatch,standardSizeCopy,compactCartReference,hasCompactOrderProperties,studioLineProjectId,studioLineProof,printPixelCrop,validPlannedArtworkArea,defaultStudioProjectName,hasSavedStudioProject,studioEntryView,studioResponse,fitGeometry,artworkFitTarget,artworkFitSource,fittedArtworkPayload,matchingPairComplete,completeLookTarget,matchingCoverDraft,preparedCartMatches,missingApprovedCartLines,detectedDoorGroups,confirmedCapacity,generationFailureText,createSelectionScrollKeeper,layout,fits,homography,validQuad,dimensions,readCustomSize,customSizeText,customFinishingText,hasCustomSize,projectPixels,doorKind,continuousScenes,gapEntered,setupProblems,canVisitStep,projectCreditLabel,doorLabel,previewLabel,stepLabel};\n if(typeof document==='undefined')return;\n const cornerHandUrl=new URL('dyd-corner-pinch-approved.png',document.currentScript?.src||location.href).href;\n const root=document.getElementById('dydProjectStudio');if(!root)return;\n const cfg=JSON.parse(root.querySelector('[data-config]').textContent),panel=root.querySelector('[data-panel]'),notice=root.querySelector('[data-notice]'),summary=root.querySelector('[data-summary]'),waitHost=root.querySelector('[data-wait-host]');\n window.DYDStudioLoading?.install(root);\n const standardChoicePending=new Set();\n const unsavedDrafts=[];let selectingSource=false;let session=null,project={id:crypto.randomUUID(),revision:0,payload:blank(),approvals:{}},busy=false,artImage=null,artMeta=null,houseImage=null,canvas=null,editorOpening=false,undo=[],saveQueue=Promise.resolve(),generationPending=null,loadToken=0;\n let editingNewVersion=false,selectingPreview=false,finalDialogOpening=false,verifiedPrintReview=null;const verifiedPrintImages=new Map();\n const p=()=>project.payload;\n window.DYDStudioDiagnostics?.configure({root,cfg,getProject:()=>project});\n const needsStandardChoice=()=>p().covers.some(c=>c.customSize!==undefined&&standardChoicePending.has(c.id));\n const selectionScroll=createSelectionScrollKeeper(root,()=>p().step);\n let guestMode=false,guestRestricted=false,accessUnavailable=false,activeCustomQuote=null,customMethodSelection=false;\n const guest=window.DYDStudioGuest.create({storage:{getItem:k=>localStorage.getItem(k),setItem:(k,v)=>localStorage.setItem(k,v),removeItem:k=>localStorage.removeItem(k)},variants:cfg.variants,themeId:cfg.themeId});\n function customArtworkReady(){return session?.authenticated===true&&session?.capabilities?.customSizeArtwork===true;}\n function finalApprovalReady(){return session?.capabilities?.finalApproval===true&&(!hasCustomSize(p())||session?.capabilities?.customSizeFinalApproval===true);}\n function customSetupKey(owner=root.dataset.customerId||'guest'){return 'dyd-custom-cover-setup-v1:'+cfg.themeId+':'+owner;}\n function rememberCustomSetup(){\n  if(!hasCustomSize(p()))return false;\n  try{const payload={title:p().title,step:Math.min(1,p().step),workflow:p().workflow,creationMode:p().creationMode,aiPath:p().aiPath,units:p().units,gaps:p().gaps,garageMount:p().garageMount,covers:p().covers.map(c=>({id:c.id,product:c.product,variant:c.variant,option:c.option,quantity:c.quantity,...(c.customSize!==undefined?{customSize:structuredClone(readCustomSize(c))}:{})}))};sessionStorage.setItem(customSetupKey(),JSON.stringify({version:1,owner:root.dataset.customerId||'guest',themeId:cfg.themeId,at:Date.now(),payload}));return true;}catch{return false;}\n }\n function restoreCustomSetup(){\n  if(new URLSearchParams(location.search).has('project'))return false;\n  for(const owner of [...new Set([root.dataset.customerId||'guest','guest'])])try{const raw=sessionStorage.getItem(customSetupKey(owner));if(!raw)continue;const record=JSON.parse(raw),payload=record.payload;if(record.version!==1||record.owner!==owner||record.themeId!==cfg.themeId||!Number.isFinite(record.at)||record.at>Date.now()||Date.now()-record.at>24*60*60*1000||!payload||payload.workflow!=='single'||!Array.isArray(payload.covers)||payload.covers.length!==1||typeof payload.title!=='string'||payload.title.length>100)throw Error('Expired setup');const c=payload.covers[0];if(!['garage','front'].includes(c.product)||!Number.isInteger(c.quantity)||c.quantity<1||c.quantity>20)throw Error('Invalid cover');readCustomSize(c);if(!['Interior Mount','Exterior Mount','Velcro','Elastic fitted edge','Grommets'].includes(c.option))throw Error('Choose installation');Object.assign(p(),payload);p().artwork=null;p().preview=null;p().step=0;project.started=true;if(owner==='guest'&&root.dataset.customerId){rememberCustomSetup();sessionStorage.removeItem(customSetupKey('guest'));}return true;}catch{try{sessionStorage.removeItem(customSetupKey(owner));}catch{}}\n  return false;\n }\n function guestSave(){const saved=guest.write(p());message(saved?(accessUnavailable?'Your cover setup is kept on this browser for 24 hours. Studio access is unavailable. Use Try again to reload before creating in the Studio or saving artwork.':'Your cover setup is kept on this browser for 24 hours. Sign in to create in the Studio or save artwork.'):(accessUnavailable?'Browser storage is unavailable. Keep this page open while you retry Studio access.':'Browser storage is unavailable. Keep this page open; your setup cannot be carried through sign-in.'));return Promise.resolve({local:true,saved});}\n function accessRetry(host){host.append(button('Try again',()=>window.location.reload(),true));}\n function unavailableAccount(){showEditor();root.classList.remove('dyd-project--signup-library');title('Studio access is unavailable','Your store account is signed in. Design creation and saved artwork cannot open right now. Your cover choices are kept on this browser.');accessRetry(panel);}\n function accountGate(context='create'){\n  if(accessUnavailable){unavailableAccount();return;}\n  const library=context==='library',upload=p().creationMode==='upload',copy=JSON.parse(root.querySelector('[data-signup-copy]').textContent);\n  root.classList.toggle('dyd-project--signup-library',library);showEditor();\n  root.querySelectorAll('[data-view]').forEach(n=>n.setAttribute('aria-pressed',String(n.dataset.view===(library?'library':'editor'))));\n  title('','');const card=root.querySelector(library?'[data-signup-library]':'[data-signup-create]').content.firstElementChild.cloneNode(true);\n  if(!library&&upload){card.querySelector('[data-signup-heading]').textContent=copy.upload_title;card.querySelector('[data-signup-intro]').textContent=copy.upload_body;card.querySelector('[data-signup-credit]').textContent=copy.upload_note;}\n  if(!library){const selected=card.querySelector('[data-signup-selection]');selected.hidden=false;card.querySelector('[data-signup-project]').textContent=p().title||'';const covers=card.querySelector('[data-signup-covers]');for(const c of p().covers){const name=c.product==='front'?copy.front:copy.garage,variant=currentVariant(c);covers.append(el('p',{},name+(c.customSize!==undefined?' \u00B7 Custom '+customSizeText(c)+' \u00B7 '+customFinishingText(c):variant?' \u00B7 '+variant.title:'')));}}\n  for(const link of card.querySelectorAll('[data-signup-link]')){link.href=root.dataset.loginUrl;link.addEventListener('click',e=>{if(!guest.write(p())){e.preventDefault();message(copy.storage_error);}});}\n  if(guestRestricted){card.querySelector('.dyd-signup__actions').hidden=true;card.querySelector('[data-signup-restricted]').hidden=false;}\n  panel.replaceChildren(card);const back=button(library?copy.back_library:copy.back,()=>{root.classList.remove('dyd-project--signup-library');if(library)creationEntry();else navigate(0);});back.classList.add('dyd-signup-back');panel.append(back,el('p',{class:'dyd-signup-operation-note'},copy.no_credit));\n }\n\n function openGuest(restricted=false){guestMode=true;guestRestricted=restricted;session={authenticated:false,generationEnabled:false,remaining:0};let saved=guest.read();if(saved){Object.assign(p(),saved);project.started=true;}if(restoreCustomSetup())saved=true;root.querySelector('[data-app]').hidden=false;root.querySelector('[data-login]').hidden=true;root.querySelector('[data-view=admin]').hidden=true;message(restricted?'Private testing: explore your cover setup. Design creation and saved projects remain restricted.':'Explore your cover setup. No account is needed until you create in the Studio or save artwork.');if(new URLSearchParams(location.search).get('workspace')==='library')accountGate('library');else initialEntry(!!saved);}\n function openUnavailable(){accessUnavailable=true;openGuest(true);message('Your store account is signed in. Studio access is currently unavailable. Your cover choices stay on this browser. Use Try again to reload.');accessRetry(notice);}\n function initialEntry(saved=false){const requested=new URLSearchParams(location.search);if(requested.has('project')&&!session?.authenticated){accountGate('create');return;}if(studioEntryView({search:location.search,restoredSetup:saved,pendingGeneration:!!generationPending})==='project')render();else creationEntry();}\n\n const el=(tag,attrs={},text)=>{const n=document.createElement(tag);for(const[k,v]of Object.entries(attrs)){if(k==='class')n.className=v;else n.setAttribute(k,v);}if(text!==undefined)n.textContent=text;return n;};\n const button=(text,fn,primary=false)=>{const n=el('button',{type:'button',...(primary?{class:'primary'}:{})},text);n.addEventListener('click',()=>{if(n.disabled)return;if(busy){message('A Studio operation is running. Wait for its result or check its status before changing projects.');return;}if(window.DYDStudioLoading){window.DYDStudioLoading.run(n,fn).catch(error).finally(()=>updateCreditPanels());return;}try{const result=fn();if(result&&typeof result.then==='function'){n.disabled=true;n.setAttribute('aria-busy','true');result.catch(error).finally(()=>{n.disabled=false;n.removeAttribute('aria-busy');updateCreditPanels();});}}catch(e){error(e);}});return n;};\n const message=text=>{notice.style.minHeight=Math.max(notice.offsetHeight,62)+'px';notice.textContent=text;};\n function approvalProgress(){const wrap=el('div',{class:'dyd-approval-progress',role:'status'});wrap.append(premiumIcon('check','dyd-approval-check'),el('strong',{},'Saving your approval\u2026'),el('span',{},'Keeping your design and confirmation together.'),el('span',{class:'dyd-approval-progress__line','aria-hidden':'true'}));return wrap;}\n function projectCreditLabel(row){const u=row.creditUsage;if(!u)return 'Credit history unavailable';if(Number(u.used)>0)return u.used+' design credit'+(Number(u.used)===1?'':'s')+' used'+(u.completeHistory?'':' \u00B7 Earlier project credit history unavailable')+(Number(u.reserved)>0?' \u00B7 '+u.reserved+' in progress':'');if(Number(u.reserved)>0)return u.reserved+' design credit in progress';if(u.reused)return 'Saved artwork reused \u00B7 '+(u.completeHistory?'No additional credit used':'Earlier project credit history unavailable');if(u.completeHistory)return 'No design credits used';if(Number(u.currentArtworkUsed)>0)return 'Current artwork \u00B7 1 design credit recorded \u00B7 Earlier project history unavailable';if(u.uploaded)return 'Uploaded artwork \u00B7 Earlier project credit history unavailable';return 'Earlier project credit history unavailable';}\n function creditPanel(){const host=el('section',{class:'dyd-credit-panel','data-credit-panel':'','aria-label':'Design credits'});paintCreditPanel(host);return host;}\n function paintCreditPanel(host){if(guestMode){host.replaceChildren(el('h3',{},'Your account'),el('p',{},accessUnavailable?'Your store account is signed in. Studio access is currently unavailable.':'Sign in when you are ready to create in the Studio or save your artwork.'));if(accessUnavailable)accessRetry(host);return;}const w=session?.creditWallet;host.replaceChildren(el('h3',{},'Design credits'));const values=el('div',{class:'dyd-credit-panel__values'});for(const [key,name]of [['available','Available'],['used','Used'],['reserved','Processing']]){const item=el('div');item.append(el('strong',{},w?String(w[key]):'\u2014'),el('span',{},name));values.append(item);}const free=w?.buckets?.find(b=>b.source==='complimentary');if(free)host.append(el('p',{class:'dyd-project__hint',role:'status','data-free-generations':''},free.available+' of '+free.granted+' free generations remaining'),el('small',{},'One-time welcome allowance for your account.'));host.append(values,el('small',{},'1 credit per accepted design. Automatic corrections included.'));if(creditRefreshError)host.append(el('small',{role:'status'},'Balance could not refresh. Showing the last confirmed balance.'));}\n let creditRefreshing=null,lastCreditRefresh=0,creditRefreshError=false;\n function creationLimitCopy(){if(!Number.isFinite(session?.remaining))return {label:'Checking generation availability',detail:'Generation availability could not be confirmed. Refresh your balance before starting a new image.'};const credits=Number(session?.creditWallet?.available)||0,privateCap=credits>0&&session?.remaining<=0;return privateCap?{label:session?.capabilities?.admin?'Private test allowance reached':'design request allowance reached',detail:'You have '+credits+' Studio credit'+(credits===1?'':'s')+', but the separate provider-request allowance has been reached. Adding image-service funds or Studio credits does not reset this allowance.'}:{label:'No design credits available',detail:'No creation requests remain. Check My Account \u2192 My Credits.'};}\n function updateCreditPanels(){root.querySelectorAll('[data-credit-panel]').forEach(paintCreditPanel);root.querySelectorAll('[data-credit-generation]').forEach(b=>{b.disabled=busy||!!generationPending||!session?.generationEnabled||!(Number.isFinite(session.remaining)&&session.remaining>0)||b.dataset.creditEligible!=='true'||b.dataset.questionnaireValid==='false';b.textContent=session.remaining>0?b.dataset.creditTitle:creationLimitCopy().label;});}\n async function refreshCredits(force=false){if(!session?.authenticated)return;if(creditRefreshing)return creditRefreshing;if(!force&&Date.now()-lastCreditRefresh<3000)return;creditRefreshing=(async()=>{try{const d=await api('credit-balance');const remaining=confirmedCapacity(d.wallet,d.providerRemaining);session.creditWallet=d.wallet;session.remaining=remaining;creditRefreshError=false;lastCreditRefresh=Date.now();updateCreditPanels();}catch(e){creditRefreshError=true;updateCreditPanels();throw e;}finally{creditRefreshing=null;}})();return creditRefreshing;}\n async function fundingPanel(host){host.replaceChildren(el('p',{role:'status'},'Opening credit balances and funding\u2026'));const d=await api('funding');if(!host.isConnected)return;host.replaceChildren(el('h3',{},'Credits & Image-service funding'));\n const cards=el('div',{class:'dyd-funding-grid'});for(const [name,w]of [['Your personal Studio credits',d.personal],['Customer credits across the store',d.customers]]){const card=el('section',{class:'dyd-project__card'});card.append(el('h4',{},name));const values=el('div',{class:'dyd-credit-panel__values'});for(const [k,l]of [['available','Available'],['used','Used'],['reserved','In progress']]){const c=el('div');c.append(el('strong',{},String(w[k])),el('span',{},l));values.append(c);}card.append(values);if(name.startsWith('Customer'))card.append(el('small',{},'Excludes your personal test wallet. '+(w.held||0)+' held for refund review.'));cards.append(card);}host.append(cards,el('p',{},'Gift credits are a store allowance. They do not add money to your OpenAI account.'),el('p',{class:'dyd-project__hint'},'Private test limit: '+d.providerRequestsRemaining+' provider request'+(d.providerRequestsRemaining===1?'':'s')+' remaining. Quality corrections also use this private cap.'));\n const usd=n=>n===null||n===undefined?'Not recorded':new Intl.NumberFormat(undefined,{style:'currency',currency:'USD'}).format(n),note=d.note;\n const funding=el('section',{class:'dyd-project__card dyd-funding-account','aria-label':'Image-service funding'}),moneyGrid=el('div',{class:'dyd-funding-money'}),month=note?.verified_at?new Intl.DateTimeFormat('en-US',{month:'long',year:'numeric',timeZone:'America/New_York'}).format(new Date(note.verified_at)):'This month';\n funding.append(el('h4',{},'Image-service funding'),el('p',{class:'dyd-funding-source'},'Recorded snapshot \u00B7 Live billing sync is not connected'));\n for(const [label,value]of [['Recorded balance \u00B7 not live',note?.balance_usd],[month+' recorded spending',note?.month_spend_usd]]){const metric=el('div');metric.append(el('span',{},label),el('strong',{},usd(value)));moneyGrid.append(metric);}funding.append(moneyGrid,el('p',{class:'dyd-funding-timestamp'},note?'Last recorded: '+new Intl.DateTimeFormat('en-US',{dateStyle:'medium',timeStyle:'short',timeZone:'America/New_York'}).format(new Date(note.verified_at))+' \u00B7 New York time':'No OpenAI balance has been recorded yet.'));\n const links=el('div',{class:'dyd-project__actions dyd-funding-actions'});links.append(el('a',{href:d.billingUrl,target:'_blank',rel:'noopener',class:'primary dyd-funding-add'},'Add funds in OpenAI'),el('a',{href:d.usageUrl,target:'_blank',rel:'noopener'},'View actual spending'),button('Update recorded balance',()=>{details.open=true;details.scrollIntoView({block:'start',behavior:matchMedia('(prefers-reduced-motion: reduce)').matches?'instant':'smooth'});}));const connectionStatus=el('p',{role:'status',class:'dyd-project__status'});if(session?.capabilities?.generationHealth===true)links.append(button('Check generation connection',async()=>{connectionStatus.textContent='Checking the image connection without generating an image\u2026';try{const result=await api('generation-health');connectionStatus.textContent=result.modelAccess==='confirmed'?'Image model access confirmed. This read-only check does not verify image-endpoint permission or available provider funds.':generationFailureText(result.code);if(result.organizationId){const details=el('details'),label=el('summary',{},'Connection account');details.append(label,el('p',{},'OpenAI organization: '+result.organizationId),el('p',{},'OpenAI project: '+(result.projectId||'Not supplied by the provider')));connectionStatus.append(details);}}catch(e){connectionStatus.textContent=e.message;}}));funding.append(connectionStatus,links,el('p',{},'Choose the amount and complete payment securely on OpenAI\u2019s website. After adding funds, update the recorded balance here. This button does not charge your card.'),el('small',{},'image-service funds pay for processing. Gift customer credits are separate design allowances. Adding funds does not increase the private Studio test-request cap.'));\n if(d.estimate.low)funding.append(el('p',{role:'status',class:'dyd-funding-alert'},'Recorded balance is below your '+usd(note.low_balance_usd)+' alert level. Check the current balance in OpenAI before adding funds.'));\n const budget=el('details',{class:'dyd-funding-planning'});budget.append(el('summary',{},'Planning budget & estimated capacity'),el('p',{},'Your planning budget: '+usd(note?.monthly_budget_usd)),el('p',{},'Planning budget remaining: '+usd(d.estimate.remaining)),el('p',{},'Estimated designs remaining: '+(d.estimate.generations===null?'Set your budget and per-design allowance below':d.estimate.generations)),el('small',{},'Planning estimate, not a live balance or an enforced spending limit. Allowance must include inspection and a possible correction. In-progress designs are subtracted. OpenAI account spending can include other projects.'));if(d.estimate.remaining===0)budget.append(el('p',{role:'status',class:'dyd-funding-alert'},'Your recorded planning budget is exhausted.'));funding.append(budget,el('p',{},d.qualityEnabled?'Quality flow active':'Quality flow inactive'),el('small',{},d.inspectionLastSucceededAt?'Last successful inspection: '+new Date(d.inspectionLastSucceededAt).toLocaleString():'No successful inspection recorded'),el('small',{},'Studio credit balances refreshed: '+new Date(d.checkedAt).toLocaleString()+'. No automatic recharge has been enabled by Studio.'));host.insertBefore(funding,cards);\n const details=el('details'),form=el('form',{class:'dyd-funding-form'});details.append(el('summary',{},'Update recorded balance & planning budget'));const inputs={};for(const [key,label,value]of [['balance','OpenAI balance (USD)',note?.balance_usd],['spend','Monthly account spending (USD)',note?.month_spend_usd],['budget','Monthly planning budget (USD)',note?.monthly_budget_usd],['perGeneration','Allowance per accepted design, including correction (USD)',note?.generation_budget_usd],['alertAt','Low-balance alert at (USD)',note?.low_balance_usd??5]]){const l=el('label',{},label),i=el('input',{type:'number',min:key==='perGeneration'?'.0001':'0',max:'1000000',step:key==='perGeneration'?'.0001':'.01',value:value??'','aria-label':label});inputs[key]=i;l.append(i);form.append(l);}const save=el('button',{type:'submit',class:'primary'},'Save planning figures'),status=el('p',{role:'status'});form.append(save,status);form.addEventListener('submit',async e=>{e.preventDefault();save.disabled=true;status.textContent='Saving planning figures\u2026';try{const body={revision:note?.revision||0};for(const[k,i]of Object.entries(inputs))body[k]=i.value===''?null:Number(i.value);await api('save-funding',body);await fundingPanel(host);}catch(e){status.textContent=e.message+' Refresh before retrying.';save.disabled=false;}});details.append(form);host.append(details);\n host.append(el('p',{class:'dyd-project__hint'},'Gift email: sender not connected. Gifts still create one account notification. Email delivery will be enabled only after a verified transactional sender is connected.'),button('Refresh credit and funding overview',()=>fundingPanel(host)));}\n function error(e){if(!e.studioReported)window.DYDStudioDiagnostics?.report({kind:'client_error',action:'client',status:e.status||0});message(e.message||'Studio connection unavailable. Your saved project is safe.');if(e.status===409&&/changed|saved version|in Trash/i.test(e.message)&&!panel.querySelector('[data-conflict]')){const box=el('div',{'data-conflict':'',class:'dyd-project__hint'});box.append(el('p',{},'Your current choices are still here. Choose how to recover this project.'),button('Keep my choices as a new project',async()=>{const source=project.id;project={id:crypto.randomUUID(),revision:0,started:true,source_project_id:source,payload:structuredClone(p()),approvals:{}};await save();render();}),button('Open latest saved version',async()=>{project=(await api('project',null,{id:project.id})).project;artImage=null;artMeta=null;houseImage=null;render();}));panel.append(box);}busy=false;panel.removeAttribute('aria-busy');panel.querySelectorAll('[data-busy]').forEach(b=>{b.disabled=false;});}\n function endpoint(action,params={}){return '/apps/dyd-studio?'+new URLSearchParams({theme_id:cfg.themeId,...(action?{action}:{}),...params});}\n function api(action,body,params={}){const operation=(async()=>{if(body&&typeof clearCollection==='function')clearCollection();const started=performance.now(),report=(kind,status=0)=>window.DYDStudioDiagnostics?.report({action:action||'session',kind,status,duration:performance.now()-started}),slow=setTimeout(()=>report('slow_request'),20000);try{const r=await fetch(endpoint(action,params),{method:body?'POST':'GET',credentials:'same-origin',cache:'no-store',redirect:'error',headers:body?{'Content-Type':'application/json'}:undefined,body:body?JSON.stringify(body):undefined,signal:AbortSignal.timeout(body?.png?60000:25000)});const d=await studioResponse(r,action);if(r.ok&&body&&['gift-credits','generate','match'].includes(action))queueMicrotask(()=>refreshCredits().catch(()=>{}));if(!r.ok)throw Object.assign(Error(d.error||'Studio unavailable'),{status:r.status});return d;}catch(e){report('request_failed',e.status||0);e.studioReported=true;throw e;}finally{clearTimeout(slow);}})();return window.DYDStudioLoading?.watch(operation)||operation;}\n const safeImage=url=>{const u=new URL(url);if(u.origin!=='https://iaxniluzwaajxzpiwefi.supabase.co'||!u.pathname.startsWith('/storage/v1/object/sign/dyd-ai-private/'))throw Error('Invalid saved image');return u.href;};\n async function image(src,signed=false){const n=new Image();n.crossOrigin='anonymous';n.src=signed?safeImage(src):src;await n.decode();if(!n.naturalWidth||!n.naturalHeight)throw Error('Image could not load. Please retry.');return n;}\n async function savedImage(ref,url){try{if(!url)throw Error('Preview needs a fresh link');return await image(url,true);}catch{const fresh=await api('asset',null,ref);return image(fresh.reviewUrl,true);}}\n function savedPreview(ref,url,attrs={}){\n  const reference=structuredClone(ref),n=el('img',{...attrs,...(url?{src:safeImage(url)}:{})});let retried=false;\n  const refresh=async()=>{if(retried)return;retried=true;try{const fresh=await api('asset',null,reference);const img=await image(fresh.reviewUrl,true);if(n.isConnected)n.src=img.src;}catch{if(n.isConnected){n.hidden=true;const note=el('p',{role:'status',class:'dyd-project__hint'},'Your artwork is saved, but this preview could not load. Reopen the saved design to try its preview again.');n.after(note);}}};\n  n.addEventListener('error',refresh,{once:true});if(!url)queueMicrotask(refresh);return n;\n }\n function remember(){try{sessionStorage.setItem('dyd-project-resume',project.id);}catch{}}\n function save(){if(hasCustomSize(p())){const saved=rememberCustomSetup();if(guestMode||!customArtworkReady()){message(saved?'Your exact custom setup is kept for this browser visit. Custom artwork saving is awaiting the Studio connection.':'Keep this page open; the browser could not save your custom setup.');return Promise.resolve({local:true,saved});}}if(guestMode)return guestSave();const target=project,snapshot=structuredClone(p());if(target.revision===0&&!target.started)return Promise.resolve();saveQueue=saveQueue.catch(()=>{}).then(async()=>{const d=await api('save-project',{id:target.id,revision:target.revision,sourceProjectId:target.source_project_id||null,payload:snapshot});target.revision=d.project.revision;target.approvals=d.project.approvals;remember();if(hasCustomSize(snapshot)&&target===project&&stableReviewJson(snapshot)===stableReviewJson(p()))try{sessionStorage.removeItem(customSetupKey());guest.clear();}catch{}if(!root.classList.contains('dyd-project--admin'))message('All changes saved \u00B7 Private draft');return d;});return window.DYDStudioLoading?.watch(saveQueue)||saveQueue;}\n async function navigate(n){if(busy)return;if(n>0&&needsStandardChoice()){message('Choose a listed standard size, or reopen Custom size to continue with your custom measurements.');return;}if(guestMode&&n>1){accountGate();return;}const target=project,priorStep=p().step,gated=[panel,root.querySelector('[data-steps]'),root.querySelector('.dyd-project__tabs')].filter(Boolean),wasInert=gated.map(node=>node.inert);busy=true;for(const node of gated)node.inert=true;panel.setAttribute('aria-busy','true');selectionScroll.reset();p().step=n;project.started=true;try{await save();if(project!==target)return;if(n!==1)editingNewVersion=false;customMethodSelection=n===1&&hasCustomSize(p());busy=false;for(let i=0;i<gated.length;i++)gated[i].inert=wasInert[i];panel.removeAttribute('aria-busy');render();panel.focus({preventScroll:true});requestAnimationFrame(()=>{const position=root.querySelector('[data-position]'),old=position.style.position;position.style.position='static';const top=scrollY+position.getBoundingClientRect().top-12;position.style.position=old;window.scrollTo({top:Math.max(0,top),behavior:'instant'});});}catch(e){if(project===target)p().step=priorStep;throw e;}finally{busy=false;for(let i=0;i<gated.length;i++)gated[i].inert=wasInert[i];panel.removeAttribute('aria-busy');updateCreditPanels();}}\n function currentVariant(c){return c.customSize===undefined?cfg.variants.find(v=>v.id===c.variant&&v.product===c.product):null;}\n const money=c=>{if(c.customSize!==undefined){try{const custom=readCustomSize(c),estimate=window.DYDStudioCustomSize.estimateCustomSize({measurementManifest:custom.measurementManifest,quantity:1});return new Intl.NumberFormat(undefined,{style:'currency',currency:'USD'}).format(estimate.unitCents/100);}catch{return 'Price unavailable';}}const v=currentVariant(c);return v?new Intl.NumberFormat(undefined,{style:'currency',currency:cfg.currency}).format(v.price/100):'Choose size';};\n function title(text,description){endCustomQuote();loadToken++;panel.style.minHeight='';if(waitHost&&panel.contains(waitHost))root.append(waitHost);panel.replaceChildren(el('h2',{},text),el('p',{},description));}\n function studioSizeOptionLabel(variant,currency){const title=String(variant.title||''),golf=/^Golf Cart Garage\\s*[-\u2013\u2014]\\s*/i.test(title),size=golf?title.replace(/^Golf Cart Garage\\s*[-\u2013\u2014]\\s*/i,''):title;return size+' \u00B7 '+new Intl.NumberFormat(undefined,{style:'currency',currency}).format(variant.price/100)+(golf?' \u00B7 Golf Cart Garage':'');}\n function select(label,values,value,fn,parent=panel){const wrap=el('div'),lab=el('label',{},label),s=el('select',{'aria-label':label});for(const [v,t,placeholder=false]of values){const o=el('option',{value:v},t);o.selected=v===String(value);if(placeholder){o.hidden=true;o.disabled=true;s.required=true;}s.append(o);}s.addEventListener('change',()=>Promise.resolve(fn(s.value)).catch(error));lab.append(s);wrap.append(lab);parent.append(wrap);return s;}\n function checkbox(label,value,fn,parent=panel){const l=el('label'),i=el('input',{type:'checkbox'});i.checked=value;i.addEventListener('change',()=>Promise.resolve(fn(i.checked)).catch(error));l.append(i,document.createTextNode(label));parent.append(l);return i;}\n function actions(next,allowed=true,text='Continue',backText='\u2190 Back'){const a=el('div',{class:'dyd-project__actions'});if(p().step>0)a.append(button(backText,()=>navigate(p().step-1)));if(next){const b=button(text,next,true);b.disabled=!allowed;b.classList.add('dyd-step-cta');a.append(b);}panel.append(a);}\n function detachLayers(){if(p().personalization)p().layerDraft=p().personalization.layers.map(l=>({...l,panelIndex:p().covers.findIndex(c=>c.id===l.panelId)}));delete p().personalization;artImage=null;}\n function invalidate(){verifiedPrintReview=null;verifiedPrintImages.clear();p().panels=null;delete p().panelPreparationFingerprint;delete project.customApproval;p().artworkRevision=crypto.randomUUID();p().preview=null;project.approvals={};p().panelsReviewed=false;p().panelReviews={};p().gapAcknowledged=false;}\n function restored(row){editingNewVersion=false;selectingPreview=false;if(row.payload.reviewFlowVersion!==2){if(row.payload.step>=4&&!row.payload.preview)row.payload.step=3;row.payload.reviewFlowVersion=2;}if(row.payload.artwork){if(!row.payload.route)row.payload.route='reuse';if(row.payload.step===1&&!window.DYDProjectCollection?.pendingMatch(row))row.payload.step=2;}return row;}\n async function mayaActivity(host,id){if(guestMode)return;try{const d=await api('maya-project-activity',null,{project:id});if(!host.isConnected)return;if(d.conversations?.length)host.append(el('p',{class:'dyd-project__status'},'Maya assistance \u00B7 '+(d.reconciledSeconds/60).toFixed(1)+' minutes'+(d.pending?' \u00B7 Conversation duration pending confirmation':'')));}catch{}}\n function render(){endCustomQuote();root.classList.remove('dyd-project--choosing','dyd-project--signup-library');const renderY=scrollY;loadToken++;const visible=[0,1,2,3,4,5];root.querySelector('[data-position]').textContent='Step '+(visible.indexOf(p().step)+1)+' of '+visible.length+' \u00B7 '+stepLabel(p(),p().step);root.querySelector('[data-steps]').replaceChildren(...steps.map((s,i)=>{const b=button(String(visible.indexOf(i)+1)+'  '+stepLabel(p(),i),()=>navigate(i));if(i===p().step)b.setAttribute('aria-current','step');b.disabled=i>0&&needsStandardChoice()||i>p().step&&!canVisitStep(p(),project.approvals,i);if(!visible.includes(i))b.hidden=true;return b;}));const displayName=String(p().title||'My design').split(' \u00B7 ').filter(part=>!['Create with AI','Create from an idea','Remake an image with AI','Reimagine a picture','Upload your own image','Upload finished artwork','Remake'].includes(part)).join(' \u00B7 ').replace(/\\bAI\\b/g,'Studio')||'My design';const nameButton=button(displayName+' \u270E',()=>renameLibraryProject(project));nameButton.className='dyd-project-name-edit';nameButton.append(el('small',{'aria-hidden':'true'},'Rename'));nameButton.setAttribute('aria-label','Rename project '+displayName);summary.replaceChildren(el('h3',{},'Your project'),nameButton,el('p',{},p().workflow==='continuous'?'Continuous design \u00B7 '+p().covers.length+' doors':'Individual cover design'));const projectDetails=el('details',{class:'dyd-project-summary-details'});projectDetails.append(el('summary',{},'Details'));for(const c of p().covers)projectDetails.append(el('p',{},(c.product==='front'?'Front door':c.product==='garage'?'Garage':'Choose cover type')+' \u00B7 '+(c.customSize!==undefined?'Custom '+customSizeText(c):currentVariant(c)?.title||'Size to select')+' \u00B7 '+money(c)+' \u00D7 '+c.quantity),el('small',{},(c.option||'Choose required option')+(c.customSize!==undefined?' \u00B7 '+customFinishingText(c):'')));if(p().workflow==='continuous'){const progress=el('div',{class:'dyd-set-progress','aria-label':'Your continuous set progress'});p().covers.forEach((c,i)=>progress.append(el('p',{},(p().covers.length===2?['Left','Right'][i]:['Left','Center','Right'][i])+': '+(p().panelReviews?.[c.id]?'Panel checked':project.approvals.artwork?'Artwork approved \u00B7 preview next':p().artwork?'Artwork ready for review':'Choose artwork'))));projectDetails.append(progress);}summary.append(projectDetails);mayaActivity(summary,project.id);summary.append(creditPanel(),el('p',{class:'dyd-project__status'},'Artwork and scene approvals are separate.'));if(customMethodSelection&&p().step===1)chooseCreationMethod();else if(guestMode&&p().step>0)accountGate();else [products,create,reviewArt,chooseScene,reviewPrintedPanels,reviewSet][p().step]();if(p().step===1)panel.prepend(creditPanel());for(const b of panel.querySelectorAll('button')){if(b.textContent==='Review & approve complete design')b.dataset.mayaGuide='approval';if(b.textContent==='Add to cart')b.dataset.mayaGuide='cart';}window.scrollTo({top:renderY,behavior:'instant'});selectionScroll.rendered();}\n function sceneLocation(s){return s.mount||(/interior/i.test(s.id+' '+s.label)?'Interior':'Exterior');}\n function locationScenes(scenes){const mount=p().garageMount||p().covers.find(c=>c.product==='garage')?.option;return mount?scenes.filter(s=>sceneLocation(s)===(mount==='Interior Mount'?'Interior':'Exterior')):scenes;}\n function layoutGuide(){const matching=locationScenes(continuousScenes(p(),cfg.continuous)),scene=matching[0],box=el('section',{class:'dyd-layout-guide','aria-label':'Your continuous door layout'});box.append(el('h3',{},'Your cover set \u00B7 viewed from '+(p().garageMount==='Interior Mount'?'inside':'outside')),el('p',{},'One continuous panorama \u2192 review each panel \u2192 approve your complete set.'));\n  const photo=layoutPhoto(p().covers.map(doorKind));photo.classList.add('dyd-layout-guide__image');box.append(photo);\n  const row=el('div',{class:'dyd-layout-guide__panels'});p().covers.forEach((c,i)=>{const d=dimensions(c),item=el('div'),position=p().covers.length===2?['Left','Right'][i]:['Left','Center','Right'][i];item.append(el('strong',{},position+' \u00B7 '+(doorKind(c)==='double'?'Double-car':'Single-car')),el('span',{},d?d.join(' \u00D7 ')+' ft':'Choose a size'),el('small',{},(project.approvals.artwork?'\u2713 Artwork approved':'\u25CB Artwork review')+' \u2192 '+(project.approvals.preview?'\u2713 Preview approved':'\u25CB Preview review')+' \u2192 '+(p().panelReviews?.[c.id]?'\u2713 Panel checked':'\u25CB Check this panel')));row.append(item);});box.append(row,el('small',{},'Layout guide only. Your selected dimensions and wall gaps determine the fitted preview after artwork approval.'));\n  if(p().covers.length===2)box.append(button('Swap left & right',()=>{p().covers.reverse();detachLayers();artImage=null;p().scene=null;p().corners=null;invalidate();render();save().catch(error);}));panel.append(box);\n }\n function layoutPhoto(families){let scene;if(families.length===1)scene=locationScenes(cfg.scenes).find(s=>s.family===(families[0]==='double'?'TwoCar':'OneCar'));else scene=locationScenes(cfg.continuous).find(s=>s.doorCount===families.length&&(s.doorFamilies||Array(s.doorCount).fill('single')).every((kind,i)=>kind===families[i]));if(!scene)throw Error('The approved mockup for this layout could not be loaded. Please refresh the Studio.');return el('img',{src:scene.url,alt:scene.label+' \u00B7 '+families.map(k=>k==='double'?'Double-car':'Single-car').join(' / '),loading:'eager',decoding:'async',width:String(scene.width||1536),height:String(scene.height||1024),class:'dyd-layout-photo'});}\n function continuousTeaching(compact=false){const baseGuide=cfg.continuousTeaching,interior=(p().garageMount||p().covers[0]?.option)==='Interior Mount',guide=baseGuide&&(interior?{...baseGuide,...baseGuide.interior}:baseGuide);if(!guide||!p().covers.length||p().covers.some(c=>c.product!=='garage')||(compact&&p().workflow!=='continuous'))return null;const box=el('figure',{class:'dyd-continuous-teaching'+(compact?' dyd-continuous-teaching--small':''),'aria-label':guide.heading}),picture=el('img',{src:compact?guide.small:guide.src,srcset:guide.small+' 600w, '+guide.src+' 1200w',sizes:compact?'(max-width: 600px) 240px, 190px':'(max-width: 749px) calc(100vw - 64px), 720px',width:'1200',height:'800',alt:guide.alt,loading:'eager',decoding:'async'}),caption=el('figcaption');caption.append(el('strong',{},guide.heading),el('p',{},compact?guide.upload:guide.body));box.append(picture,caption);return box;}\n function layoutPicker(){const product=p().covers[0]?.product;if(!product||product==='front'||!p().garageMount)return;const box=el('section',{class:'dyd-layout-picker','aria-label':'Choose your house layout'});box.append(el('h3',{},'Which layout matches your garage?'),el('p',{},'Viewed from '+(p().garageMount==='Interior Mount'?'inside the garage':'outside your house')+'. Choose your door arrangement. Choose a photo preview after reviewing your artwork.'));\n  const teaching=continuousTeaching();if(teaching)box.append(teaching);\n  const choices=[{id:'single',label:'One single-car garage door',families:['single']},{id:'double',label:'One double-car garage door',families:['double']},{id:'two',label:'Two single garage doors',families:['single','single']},{id:'three',label:'Three single garage doors',families:['single','single','single']},{id:'double-single',label:'Double garage left \u00B7 Single right',families:['double','single']},{id:'single-double',label:'Single garage left \u00B7 Double right',families:['single','double']}];\n  const grid=el('div',{class:'dyd-layout-picker__grid'});for(const choice of choices){const active=p().workflow===(choice.families.length===1?'single':'continuous')&&p().covers.length===choice.families.length&&p().covers.every((c,i)=>doorKind(c)===choice.families[i]);const b=button('',async()=>{if(active)return;if(p().artwork&&!await confirmStudio({heading:'Change your door layout?',description:'This changes the covers you will order, not just the preview photo. Your original artwork stays saved.',details:['Choose the exact sizes and wall gaps for your new layout. Artwork with different proportions will need a remake or a reviewed fit.','Review text and logo placement for the new arrangement.','Previous approvals reset so you can check the updated design.'],keep:'Keep current layout',proceed:'Change layout'}))return;detachLayers();p().workflow=choice.families.length===1?'single':'continuous';p().covers=choice.families.map(k=>({...newCover('garage'),option:p().garageMount,garageType:k}));p().gaps=p().covers.slice(1).map(()=>0);p().gapEntries=p().gaps.map(()=>false);p().scene=null;p().house=null;houseImage=null;p().corners=null;artImage=null;invalidate();render();save().catch(error);});b.className='dyd-layout-picker__choice';b.setAttribute('aria-label',choice.label);b.setAttribute('aria-pressed',String(active));b.append(layoutPhoto(choice.families),el('span',{},choice.label),el('small',{},active?'\u2713 Selected':'Select layout'));if(choice.families.length>1)b.append(el('small',{class:'dyd-credit-badge'},'Continuous design \u00B7 1 design credit per generation'));grid.append(b);}box.append(grid);panel.append(box);\n }\n async function reviewPanoramaArea(){await save();await saveQueue;const plan=await api('composition-plan',null,{id:project.id}),meta=await api('asset',null,p().artwork),c=plan.providerCanvas;if(!c||meta.width!==c.w||meta.height!==c.h)throw Error('This source does not match a planned padded canvas. Upload artwork at the exact full-panorama proportions; no image was changed.');const img=await loadArt(),dialog=el('dialog',{class:'dyd-layer-editor','aria-label':'Review panoramic artwork area'}),cn=el('canvas'),b=c.band;cn.width=b.w;cn.height=b.h;cn.getContext('2d').drawImage(img,b.x/c.w*img.naturalWidth,b.y/c.h*img.naturalHeight,b.w/c.w*img.naturalWidth,b.h/c.h*img.naturalHeight,0,0,b.w,b.h);dialog.append(el('h2',{},'Review the complete artwork area'),el('p',{},'Only this panorama will be used. The outer top/bottom margins will be excluded; your original remains saved. Check that no subject or lettering is missing.'),cn);let confirmed=false;checkbox('All important content is inside this panorama. Exclude the outer margins.',false,v=>{confirmed=v;apply.disabled=!v;},dialog);const apply=button('Use this artwork area',async()=>{if(!confirmed)return;const result=await api('extract-panorama',{id:project.id,revision:project.revision,confirmMargins:true});project=result.project;artImage=null;artMeta=null;dialog.close();dialog.remove();render();},true);apply.disabled=true;dialog.append(apply,button('Cancel',()=>{dialog.close();dialog.remove();}));dialog.addEventListener('close',()=>dialog.remove());root.append(dialog);dialog.showModal();}\n async function editLayers(){if(editorOpening||root.querySelector('.dyd-layer-editor[open]'))return;editorOpening=true;message('Opening your text and logo editor\u2026');try{await save();await saveQueue;await window.DYDArtworkEditor.open({root,project,map:p().workflow==='continuous'?layout(p()):null,api,image,uploadLogo:f=>uploadFile(f,'preview','logo'),onClosed:()=>message('Back to your saved artwork. Your design is unchanged.'),onApplied:async d=>{project=d.project;p().step=2;artImage=null;artMeta=null;message('Edits saved. Review and approve your updated artwork.');render();}});}finally{editorOpening=false;}}\n\n function chooseCreationMethod(){title('How would you like to create?','Switch methods whenever you like. Your cover choices, answers and saved artwork stay here.');if(appendVisualCreationChoices((mode,path='idea')=>{p().creationMode=mode;if(mode!=='upload')p().aiPath=path;customMethodSelection=false;render();save().catch(error);})){panel.append(button('Create a new project',()=>startFreshStudioProject()));if(customMethodSelection)panel.append(button('Back to cover setup',()=>navigate(0)));return;}const choices=el('div',{class:'dyd-start-choices'});for(const [mode,label,description]of [['ai','Create from an idea','Create new artwork from your idea.'],['remake','Reimagine a picture','Upload an image and create a new version.'],['upload','Upload your own image','Use finished artwork you already have.']]){const b=button('',()=>{p().creationMode=mode==='upload'?'upload':'ai';if(mode!=='upload')p().aiPath=mode==='remake'?'remake':'idea';customMethodSelection=false;render();save().catch(error);},mode==='ai');b.classList.add('dyd-start-choice');b.setAttribute('aria-label',label);b.append(premiumIcon(mode==='upload'?'image':'ai','dyd-start-choice__icon'),el('strong',{},label),el('span',{class:'dyd-start-choice__description'},description));choices.append(b);}panel.append(choices,button('Create a new project',()=>startFreshStudioProject()));if(customMethodSelection)panel.append(button('Back to cover setup',()=>navigate(0)));}\n async function showCompositionPlan(){const dialog=el('dialog',{class:'dyd-composition-dialog','aria-label':'Continuous composition plan'}),heading=el('h2',{},'One scene. One connected design.'),body=el('div',{'aria-live':'polite'}),close=button('Back to my design',()=>dialog.close());dialog.append(heading,body,close);dialog.addEventListener('close',()=>dialog.remove());root.append(dialog);dialog.showModal();close.focus();async function load(){body.replaceChildren(el('p',{role:'status'},'Preparing your composition plan\u2026'));try{await save();await saveQueue;const d=await api('composition-plan',null,{id:project.id});if(!dialog.isConnected)return;const map=layout(p()),strip=el('div',{class:'dyd-composition-doors','aria-label':'Your connected door layout'});for(const [i,c]of p().covers.entries()){const door=el('div',{},p().covers.length===2?['Left door','Right door'][i]:['Left door','Center door','Right door'][i]);door.style.flex=String(map.panels[i].w);strip.append(door);if(i<p().covers.length-1)strip.append(el('span',{},'\u2194'));}body.replaceChildren(strip,el('p',{},'One panorama connects all '+p().covers.length+' doors, with a shared horizon, colors and lighting. One generation uses 1 design credit total for the entire design.'),el('p',{},'Total layout: '+d.target.width+' \u00D7 '+d.target.height+' inches, including wall gaps.'),el('p',{},'Faces, lettering and important details stay on the doors. Background flows across the wall gaps.'));if(!d.providerCanvas)body.append(el('p',{class:'dyd-project__hint'},'This exact layout needs uploaded panoramic artwork. Choose another size or upload your design.'));else{body.append(el('p',{},d.extractionRequiresReview?'After creation, review the panorama area before approving your artwork. Your original image stays saved.':'Review your complete panorama before approving your artwork.'));if(!session.continuousGenerationEnabled)body.append(el('p',{class:'dyd-project__hint'},'Design creation for continuous sets is not enabled for this account. You can upload panoramic artwork instead.'));}}catch(e){if(dialog.isConnected)body.replaceChildren(el('p',{role:'alert'},'The plan could not load. '+e.message),button('Try loading the plan again',load));}}await load();}\n function mountChoices(){const covers=p().covers.filter(c=>c.product==='garage'),options=[...new Set(covers.map(c=>c.option).filter(Boolean))],mount=options.length===1&&covers.every(c=>c.option===options[0])?options[0]:'',box=el('fieldset',{class:'dyd-mount-choice','aria-describedby':'dyd-mount-help'});p().garageMount=mount;box.append(el('legend',{},'Where will you install your cover?'),el('p',{id:'dyd-mount-help'},'Choose your mount type \u00B7 Required'),el('p',{class:'dyd-mount-choice__scope'},covers.length>1?'This choice applies to all '+covers.length+' garage doors in your continuous design.':'Choose the side of your garage door where the cover will be installed.'));const grid=el('div',{class:'dyd-mount-choice__grid'});for(const [value,label,copy,icon]of [['Exterior Mount','Exterior mount','Installed on the outside of your garage door.','exterior'],['Interior Mount','Interior mount','Installed on the inside of your garage door.','interior']]){const labelEl=el('label',{class:'dyd-mount-choice__card'}),radio=el('input',{type:'radio',name:'garage-mount',value,required:'','aria-label':label});radio.checked=mount===value;radio.addEventListener('change',()=>{if(!radio.checked)return;p().garageMount=value;covers.forEach(c=>c.option=value);p().scene=null;p().house=null;p().corners=null;houseImage=null;invalidate();render();panel.querySelector('input[name=\"garage-mount\"][value=\"'+value+'\"]').focus({preventScroll:true});save().catch(error);});const text=el('span',{class:'dyd-mount-choice__copy'});text.append(el('strong',{},label),el('span',{},copy),el('small',{class:'dyd-mount-choice__selected','aria-hidden':'true'},radio.checked?'\u2713 Selected':'Select this mount'));labelEl.append(radio,text);grid.append(labelEl);}box.append(grid,el('p',{class:'dyd-mount-choice__status',role:'status'},mount?'\u2713 '+mount+' selected'+(covers.length>1?' for all doors.':'.'):'Choose exterior or interior mount to continue.'));panel.append(box);}\n function confirmStudio({heading,description,details=[],keep,proceed,danger=false}){if(root.querySelector('[data-studio-confirm]'))return Promise.resolve(false);return new Promise(resolve=>{const focus=document.activeElement,id='dyd-confirm-'+crypto.randomUUID(),dialog=el('dialog',{class:'dyd-studio-confirm','data-studio-confirm':'','aria-labelledby':id,'aria-describedby':id+'-description'}),header=el('div',{class:'dyd-studio-confirm__header'}),body=el('div',{class:'dyd-studio-confirm__body'}),footer=el('div',{class:'dyd-studio-confirm__actions'}),cancel=el('button',{type:'button',class:'dyd-studio-confirm__cancel'},keep),accept=el('button',{type:'button',class:danger?'dyd-studio-confirm__danger':'primary'},proceed);header.append(el('p',{class:'dyd-studio-confirm__eyebrow'},'Your Design Studio'),el('h2',{id},heading));body.append(el('p',{id:id+'-description'},description));if(details.length){const list=el('ul');for(const text of details)list.append(el('li',{},text));body.append(list);}cancel.addEventListener('click',()=>dialog.close('cancel'));accept.addEventListener('click',()=>{accept.disabled=true;dialog.close('confirm');});footer.append(cancel,accept);dialog.append(header,body,footer);dialog.addEventListener('close',()=>{const confirmed=dialog.returnValue==='confirm';dialog.remove();requestAnimationFrame(()=>{if(focus?.isConnected)focus.focus({preventScroll:true});});resolve(confirmed);},{once:true});root.append(dialog);dialog.showModal();cancel.focus({preventScroll:true});});}\n function endCustomQuote(){const close=activeCustomQuote;activeCustomQuote=null;if(close)close();}\n async function continueCustomArtwork(cover,review,close){\n  if(p().workflow!=='single')throw Error('Custom measurements currently apply to one individual cover.');if(!review||review.flow!=='automatic-preview'||!Number.isInteger(review.quantity)||review.quantity<1||review.quantity>20||!['Standard Velcro finish','Grommets'].includes(review.finishing)||review.finishing==='Grommets'&&!['corners','corners_top_bottom_centers'].includes(review.grommetPattern))throw Error('Review the exact custom measurements and finishing again.');\n  const grommets=review.finishing==='Grommets',customSize={version:1,measurementManifest:structuredClone(review.measurementManifest),finish:grommets?'grommets':'velcro',...(grommets?{grommetPattern:review.grommetPattern==='corners'?'four_corners':'four_corners_top_bottom_middle'}:{}),exactDimensionsAcknowledged:review.exactDimensionsAcknowledged===true,stitchingAcknowledged:review.stitchingAcknowledged===true};\n  const next={...cover,variant:'',quantity:review.quantity,customSize,...(cover.product==='front'?{option:grommets?'Grommets':'Velcro'}:{})};delete next.artwork;readCustomSize(next);\n  if(!next.option)throw Error('Choose the mount or fastening in Your covers before continuing.');\n  await saveQueue.catch(()=>{});const before=structuredClone(p()),priorCovers=p().covers.slice(),priorApprovals=structuredClone(project.approvals),priorCustomApproval=project.customApproval?structuredClone(project.customApproval):null,priorStarted=project.started,priorArtImage=artImage;let priorStored;try{priorStored=sessionStorage.getItem(customSetupKey());}catch{}\n  if(!p().title.trim())p().title='My custom '+(cover.product==='front'?'front-door':'garage-door')+' cover';\n  Object.keys(cover).forEach(key=>delete cover[key]);Object.assign(cover,next);detachLayers();invalidate();project.started=true;const remaining=setupProblems(p());p().step=remaining.length===0?1:0;\n  try{await save();}catch(e){const payload=p();Object.keys(payload).forEach(key=>delete payload[key]);Object.assign(payload,before);priorCovers.forEach((c,i)=>{Object.keys(c).forEach(key=>delete c[key]);Object.assign(c,before.covers[i]);});payload.covers=priorCovers;project.approvals=priorApprovals;if(priorCustomApproval)project.customApproval=priorCustomApproval;else delete project.customApproval;project.started=priorStarted;artImage=priorArtImage;try{if(priorStored===null)sessionStorage.removeItem(customSetupKey());else if(priorStored!==undefined)sessionStorage.setItem(customSetupKey(),priorStored);}catch{}throw e;}\n  standardChoicePending.delete(cover.id);close();selectionScroll.reset();customMethodSelection=false;render();const heading=panel.querySelector('h2');if(heading){heading.tabIndex=-1;heading.focus({preventScroll:true});requestAnimationFrame(()=>{if(heading.isConnected)heading.scrollIntoView({block:'start',behavior:'instant'});});}\n  message(p().step===1?'Custom size and finishing saved. Continue with your artwork.':'Custom size and finishing saved. Complete the remaining cover choices: '+setupProblems(p()).join('; '));\n }\n function openCustomQuote(cover,index,trigger){\n  if(p().workflow!=='single'||p().covers.length!==1){message('Custom sizes currently support one cover per project. For this multi-door layout, choose a standard size for each door. Your selections are unchanged.');return;}const helper=window.DYDStudioCustomSize;if(!helper||typeof helper.mountCustomSizeQuote!=='function'){message('Custom-size options could not load. Refresh the Studio and try again.');return;}if(activeCustomQuote)return;selectionScroll.reset();\n  const panelNodes=[...panel.childNodes],summaryNodes=[...summary.childNodes],controls=[...root.querySelectorAll('[data-steps] button,[data-view]')].map(control=>[control,control.disabled]);let intake=null,closed=false;\n  const close=()=>{if(closed)return;closed=true;selectionScroll.reset();activeCustomQuote=null;try{intake?.destroy?.();}catch{}panel.replaceChildren(...panelNodes);summary.replaceChildren(...summaryNodes);for(const[control,disabled]of controls)control.disabled=disabled;root.removeAttribute('data-custom-quote');if(trigger.isConnected)trigger.focus({preventScroll:true});};activeCustomQuote=close;root.dataset.customQuote='true';for(const[control]of controls)control.disabled=true;\n  const host=el('div',{'data-custom-size-quote':'',role:'region','aria-label':'Custom size for cover '+(index+1)});panel.replaceChildren(el('h2',{},'Custom size'),el('p',{},'Enter exact measurements, choose finishing, then continue to create, remake or upload your artwork.'),host);summary.replaceChildren(el('h3',{},'Custom size'),el('p',{},p().title),el('p',{},(cover.product==='front'?'Front door':'Garage door')+' \u00B7 Cover '+(index+1)),el('p',{},'Save your exact size and finishing to continue with your artwork.'));\n  try{intake=helper.mountCustomSizeQuote({host,flow:'automatic-preview',coverIndex:index,coverType:cover.product,quantity:cover.quantity,initialFinishing:cover.customSize?.finish==='grommets'?'Grommets':'Standard Velcro finish',initialGrommetPattern:cover.customSize?.grommetPattern==='four_corners'?'corners':cover.customSize?.grommetPattern==='four_corners_top_bottom_middle'?'corners_top_bottom_centers':'',initialMeasurements:cover.customSize!==undefined?{unit:readCustomSize(cover).measurementManifest.width.unit,measurementManifest:structuredClone(readCustomSize(cover).measurementManifest)}:dimensions(cover)?{width:String(dimensions(cover)[0]),height:String(dimensions(cover)[1]),unit:cover.product==='front'?'in':'ft'}:null,projectTitle:p().title,designReference:project.id,customerId:root.dataset.customerId||null,onReview:review=>continueCustomArtwork(cover,review,close),onCancel:()=>{close();panel.querySelector('[data-standard-size-trigger=\"'+index+'\"]')?.click();}});}catch{close();message('Custom-size options could not open. Refresh the Studio and try again.');}\n }\n function products(){title('Start with your covers','Choose the cover and real product size. Each cover keeps its own design and fulfillment instructions.');panel.append(button('\u2190 Back to creation options',chooseCreationMethod));\n  const fallbackName=()=>defaultStudioProjectName(p().creationMode,p().aiPath,cfg.customerFirstName);if(!p().title.trim())p().title=fallbackName();\n  if(cfg.choiceExamples){const shortName=String(p().title||'My design').split(' \u00B7 ').filter(part=>!['Create with AI','Create from an idea','Remake an image with AI','Reimagine a picture','Upload your own image','Upload finished artwork','Remake'].includes(part)).join(' \u00B7 ').replace(/\\bAI\\b/g,'Studio')||'My design',nameRow=el('div',{class:'dyd-project-setup-name'}),nameEdit=button(shortName+' \u270E',()=>renameLibraryProject(project));nameEdit.className='dyd-project-name-edit';nameEdit.setAttribute('aria-label','Rename project '+shortName);nameEdit.append(el('small',{'aria-hidden':'true'},'Rename'));nameRow.append(el('span',{},'Project'),nameEdit);panel.append(nameRow);}else{\n  const projectName=el('details',{class:'dyd-inspiration'}),nameSummary=el('summary',{},'Project: '+p().title+' \u00B7 Rename (optional)'),nameLabel=el('label',{},'Project name (optional)'),name=el('input',{'aria-label':'Project name (optional)',maxlength:'100',value:p().title});\n  const updateName=()=>{p().title=name.value.trim()||fallbackName();nameSummary.textContent='Project: '+p().title+' \u00B7 Rename (optional)';refreshSetup();const summaryTitle=summary.querySelector('p');if(summaryTitle)summaryTitle.textContent=p().title;};name.addEventListener('input',updateName);name.addEventListener('change',()=>{updateName();name.value=p().title;save().catch(error);});nameLabel.append(name);projectName.append(nameSummary,nameLabel);panel.append(projectName);\n  }\n  select('Choose your cover',[['','Choose a garage door or front door cover',true],['garage','Garage door'],['front','Front door']],p().covers[0]?.product||'',async v=>{if(p().covers.every(c=>c.product===v))return;if(p().artwork&&!await confirmStudio({heading:'Change your cover type?',description:'Your original artwork stays saved. Your project will use the new cover type you selected.',details:['Choose the product size and installation options again.','Review text and logo placement, then approve the updated design.'],keep:'Keep current cover',proceed:'Change cover type'})){render();panel.querySelector('select[aria-label=\"Choose your cover\"]').focus({preventScroll:true});return;}detachLayers();p().workflow='single';p().covers=[newCover(v)];p().gaps=[];p().garageMount='';p().scene=null;p().house=null;p().corners=null;houseImage=null;invalidate();render();save().catch(error);});\n  if(p().covers.some(c=>c.product==='garage'))mountChoices();\n\n  layoutPicker();\n  if(p().workflow==='continuous'&&p().garageMount)layoutGuide();const grid=el('div',{class:'dyd-project__grid'});panel.append(grid);\n  p().covers.forEach((c,i)=>{if(!c.product)return;const card=el('div',{class:'dyd-project__card'});grid.append(card);card.append(el('h3',{},p().workflow==='continuous'?(p().covers.length===2?['Left door','Right door'][i]:['Left door','Center door','Right door'][i]):'Cover '+(i+1)));\n   const standardVariants=cfg.variants.filter(v=>v.product===c.product&&(c.product!=='garage'||(garage[v.id]?.[0]<=10?'single':'double')===doorKind(c))),choosingStandard=c.customSize===undefined||standardChoicePending.has(c.id);\n   const sizeMethods=el('section',{class:'dyd-size-methods','aria-label':'Cover size options'}),sizeChoices=el('div',{class:'dyd-start-choices'});sizeMethods.append(el('h3',{},'Choose your size'),el('p',{},'Choose a standard size or enter exact custom measurements.'));if(c.customSize!==undefined)sizeMethods.append(el('p',{'data-current-custom-size':''},'Selected: '+customSizeText(c)+' \u00B7 '+money(c)+' \u00B7 '+customFinishingText(c)));const standardOptions=el('div',{'data-standard-size-options':String(i),id:'dyd-standard-sizes-'+crypto.randomUUID()}),standardStatus=el('p',{'data-standard-size-status':'',role:'status',class:'dyd-project__status'});standardOptions.hidden=!choosingStandard;const standardSize=button('',()=>{if(c.customSize!==undefined)standardChoicePending.add(c.id);standardOptions.hidden=false;standardSize.setAttribute('aria-expanded','true');standardSize.setAttribute('aria-pressed','true');customSize.setAttribute('aria-pressed','false');standardStatus.textContent=c.customSize!==undefined?'Choose a listed size below. Your custom measurements stay selected until you choose a standard size.':'Choose a standard size below.';refreshSetup();for(const b of root.querySelectorAll('[data-steps] button'))if(needsStandardChoice()&&b.getAttribute('aria-current')!=='step')b.disabled=true;sizeSelect.size=1;if(window.dydPremiumDropdowns?.open?.(sizeSelect))return;window.dydPremiumDropdowns?.refresh?.();sizeSelect.focus({preventScroll:true});try{if(typeof sizeSelect.showPicker==='function')sizeSelect.showPicker();}catch{}});standardSize.classList.add('dyd-start-choice');standardSize.dataset.standardSizeTrigger=String(i);standardSize.setAttribute('aria-label','Standard size');standardSize.setAttribute('aria-controls',standardOptions.id);standardSize.setAttribute('aria-expanded',String(!standardOptions.hidden));standardSize.setAttribute('aria-pressed',String(choosingStandard));standardSize.append(el('strong',{},'Standard size'),el('span',{class:'dyd-start-choice__description'},'Choose from the listed cover sizes.'));const customSize=button('',()=>openCustomQuote(c,i,customSize),true);customSize.classList.add('dyd-start-choice');customSize.dataset.customSizeTrigger=String(i);customSize.setAttribute('aria-label','Custom size \u2014 Enter measurements');customSize.setAttribute('aria-pressed',String(!choosingStandard));customSize.append(el('strong',{},'Custom size \u2014 Enter measurements'),el('span',{class:'dyd-start-choice__description'},'Enter exact width and height, then choose finishing.'));sizeChoices.append(standardSize,customSize);sizeMethods.append(sizeChoices);card.append(sizeMethods,standardOptions);\n   const sizeSelect=select('Cover size',[['','Select a size'],...standardVariants.map(v=>[v.id,studioSizeOptionLabel(v,cfg.currency)])],c.variant,v=>{if(!standardVariants.some(candidate=>candidate.id===v)){standardStatus.textContent='Choose one of the listed standard sizes. Your current dimensions have not changed.';sizeSelect.value=c.variant||'';return;}standardChoicePending.delete(c.id);if(c.customSize!==undefined)try{sessionStorage.removeItem(customSetupKey());}catch{}if(c.customSize!==undefined&&c.product==='front'&&c.option==='Grommets')c.option='';delete c.customSize;c.variant=v;detachLayers();artImage=null;if(p().workflow==='continuous'){p().scene=null;p().corners=null;}invalidate();render();save().catch(error);},standardOptions);standardOptions.append(standardStatus);sizeSelect.addEventListener('keydown',e=>{if(e.key==='Escape'&&sizeSelect.size>1){sizeSelect.size=1;standardSize.focus({preventScroll:true});}});\n   if(c.product!=='garage'&&c.customSize===undefined)select(c.product==='front'?'Fastening':'Mount / fastening',[['',c.product?'Select an option':'Choose cover type first'],...(c.product==='garage'?['Interior Mount','Exterior Mount']:c.product==='front'?['Elastic fitted edge','Velcro']:[]).map(v=>[v,v])],c.option,v=>{c.option=v;invalidate();render();save().catch(error);},card);\n   if(c.product==='front')card.append(el('p',{class:'dyd-project__status'},'Both fastening choices are the same price and are saved as fulfillment instructions.'));\n   if(p().workflow==='single')select('Quantity',Array.from({length:10},(_,i)=>[i+1,i+1]),c.quantity,v=>{c.quantity=Number(v);render();save().catch(error);},card);if(p().workflow==='single')card.append(el('p',{class:'dyd-project__status'},'Quantity means identical copies of this design, size and selected options. Use Add another cover for a different cover.'));\n  });\n  if(p().workflow==='continuous'){select('Measure the space between doors in',[['ft','Feet'],['in','Inches'],['cm','Centimeters']],p().units,v=>{p().units=v;detachLayers();artImage=null;invalidate();render();save().catch(error);});p().gaps.forEach((g,i)=>{const gapLabel=(p().covers.length===2?'Space between the garage doors':i===0?'Space between left and center doors':'Space between center and right doors')+' ('+({ft:'feet',in:'inches',cm:'centimeters'}[p().units]||p().units)+')',l=el('label',{},gapLabel),input=el('input',{type:'number',min:'0',max:'1000',step:'.1',value:gapEntered(p(),i)?g:'',placeholder:'Enter measurement',required:'','aria-label':gapLabel});input.addEventListener('input',()=>{if(!p().gapEntries)p().gapEntries=p().gaps.map((_,j)=>gapEntered(p(),j));p().gapEntries[i]=input.value.trim()!==''&&input.validity.valid;p().gaps[i]=input.value.trim()===''?0:Number(input.value);detachLayers();artImage=null;invalidate();refreshSetup();});input.addEventListener('change',()=>save().catch(error));l.append(input);panel.append(l);});panel.append(el('p',{class:'dyd-project__hint'},'Measure the wall space between the edges of the two garage door openings. Enter 0 if there is no space between them. This wall space will not be printed; keep faces, important subjects and lettering away from it.'));}\n  const hint=el('p',{class:'dyd-project__hint','data-setup-errors':'',role:'status'});panel.append(hint);function setupIssues(){const missing=setupProblems(p());if(needsStandardChoice())missing.push('Choose a listed standard size or reopen Custom size');return missing;}function refreshSetup(){const missing=setupIssues();hint.hidden=!missing.length;hint.textContent=missing.length?'To continue: '+missing.join(' \u00B7 '):'';const cta=panel.querySelector('.dyd-step-cta');if(cta)cta.disabled=missing.length>0;}\n  actions(()=>{const missing=setupIssues();if(missing.length){refreshSetup();throw Error(missing.join(' \u00B7 '));}return navigate(p().artwork&&!needsMatchingArtwork()?2:1);},!setupIssues().length,p().artwork&&!needsMatchingArtwork()?'Review selected artwork':'Continue');panel.append(button('Create a new project',()=>startFreshStudioProject()));refreshSetup();\n\n }\n async function uploadFile(file,kind,role){if(!file)return;if(hasCustomSize(p())&&!customArtworkReady())throw Error('Custom-size artwork saving is not available yet. Your dimensions are preserved; use Try again after the Studio connection is restored.');if(file.size>25000000)throw Error('Use an image smaller than 25 MB');const original=await file.arrayBuffer(),url=URL.createObjectURL(file);let img;try{img=await image(url);}finally{URL.revokeObjectURL(url);}const scale=Math.min(1,Math.sqrt(4000000/(img.naturalWidth*img.naturalHeight))),c=document.createElement('canvas');c.width=Math.round(img.naturalWidth*scale);c.height=Math.round(img.naturalHeight*scale);c.getContext('2d').drawImage(img,0,0,c.width,c.height);const png=c.toDataURL('image/png').split(',')[1];let raw='';const bytes=new Uint8Array(original);for(let i=0;i<bytes.length;i+=16384)raw+=String.fromCharCode(...bytes.subarray(i,i+16384));const d=await api('upload',{kind,role,png,original:btoa(raw),mime:file.type,nativeWidth:img.naturalWidth,nativeHeight:img.naturalHeight});return d.asset;}\n function filePicker(label,kind,done,parent=panel){\n  const box=el('section',{class:'dyd-upload','aria-label':label+' upload area'}),id='upload-'+crypto.randomUUID(),heading=el('label',{for:id},label),f=el('input',{id,type:'file',accept:'image/png,image/jpeg,image/webp','aria-label':label,class:'dyd-upload__input'}),icon=el('span',{class:'dyd-upload__icon','aria-hidden':'true'},'\u2191'),copy=el('strong',{},kind==='house'?'Drop your home photo here':'Drop your image here'),hint=el('p',{},'JPG, PNG or WebP \u00B7 Up to 25 MB'),status=el('p',{role:'status','aria-live':'polite',class:'dyd-upload__status'}),preview=el('img',{class:'dyd-upload__preview',alt:'Selected image preview',hidden:''}),progress=el('progress',{'aria-label':'Saving your image',hidden:''}),pick=button('Choose a file',()=>f.click(),true),remove=button('Remove selected file',()=>{f.value='';preview.hidden=true;preview.removeAttribute('src');status.textContent='';remove.hidden=true;});remove.hidden=true;\n  async function receive(file){if(!file||busy)return;if(!['image/png','image/jpeg','image/webp'].includes(file.type)||file.size>25000000){status.textContent=file.size>25000000?'Choose an image smaller than 25 MB.':'Choose a JPG, PNG or WebP image.';return;}busy=true;box.setAttribute('aria-busy','true');pick.disabled=true;f.disabled=true;remove.hidden=true;progress.hidden=false;status.textContent='Saving '+file.name+'\u2026';const url=URL.createObjectURL(file);preview.onload=()=>URL.revokeObjectURL(url);preview.onerror=()=>URL.revokeObjectURL(url);preview.src=url;preview.hidden=false;message('Saving your original securely\u2026');try{const a=await uploadFile(file,kind);status.textContent=file.name+' \u00B7 Saved';busy=false;await done(a);}catch(e){status.textContent='Upload could not complete. '+e.message;remove.hidden=false;error(e);}finally{busy=false;pick.disabled=false;f.disabled=false;progress.hidden=true;box.removeAttribute('aria-busy');}}\n  const receiveTracked=file=>{const operation=()=>receive(file);return (window.DYDStudioLoading?window.DYDStudioLoading.run(pick,operation,'Saving your image\u2026'):operation()).catch(error);};f.addEventListener('change',()=>{const file=f.files[0];f.value='';receiveTracked(file);});for(const type of ['dragenter','dragover'])box.addEventListener(type,e=>{e.preventDefault();if(!busy)box.classList.add('is-dragging');});box.addEventListener('dragleave',e=>{if(!box.contains(e.relatedTarget))box.classList.remove('is-dragging');});box.addEventListener('drop',e=>{e.preventDefault();box.classList.remove('is-dragging');const files=e.dataTransfer?.files;if(files?.length!==1){status.textContent='Drop one image at a time.';return;}receiveTracked(files[0]);});\n  if(hasCustomSize(p())&&!customArtworkReady()){f.disabled=true;pick.disabled=true;status.textContent='Custom-size artwork saving is awaiting the Studio connection. Your exact cover setup is preserved.';}box.append(heading,f,icon,copy,hint,pick,preview,progress,status,remove);parent.append(box);return f;\n }\n function create(){if(needsMatchingArtwork()){createMatchingArtwork();return;}if(p().artwork&&!editingNewVersion){title('Your artwork is already saved','Continue reviewing your existing design. Creating another version is optional.');const target=el('div'),token=loadToken;panel.append(target);loadArt().then(img=>{if(token===loadToken)target.append(savedPreview(p().personalization?.rendered||p().artwork,img.src,{alt:'Your existing saved artwork',class:'dyd-project__art'}));}).catch(error);const tools=el('div',{class:'dyd-project__tools'});tools.append(button('Create another version',()=>{editingNewVersion=true;render();}));panel.append(el('p',{class:'dyd-project__status'},'Continuing with this artwork uses no generation credit.'),tools);actions(()=>navigate(2),true,'Continue with saved artwork');return;}title('Bring your idea to life',p().creationMode==='upload'?'Upload finished artwork to use directly, then review it before choosing a preview.':p().aiPath==='remake'?'Upload a design or screenshot. The Studio creates a new version for your selected cover.':'Tell us your idea. We build the instructions and create new flat artwork for your selected cover.');\n  if(p().artwork)panel.append(button('Keep my saved artwork',()=>{editingNewVersion=false;render();}));\n  panel.append(button('\u2190 Back to creation options',chooseCreationMethod));\n  if(p().creationMode==='upload'){\n   const reminder=continuousTeaching(true);if(reminder)panel.append(reminder);\n   filePicker('Upload artwork (PNG, JPG or WebP)','artwork',async a=>{p().artwork={id:a.id,kind:'asset'};detachLayers();invalidate();artMeta=a;artImage=await image(a.reviewUrl,true);await navigate(2);});const alternatives=el('div',{class:'dyd-project__tools'});alternatives.append(button('Choose from all my saved designs',()=>showGallery(true)),button('Create from an idea instead',()=>{p().creationMode='ai';render();save().catch(error);}));panel.append(alternatives);actions(()=>navigate(2),!!p().artwork,'Review my artwork');return;\n  }\n  const remake=p().aiPath==='remake',paths=el('div',{class:'dyd-ai-paths','aria-label':'Choose how The Studio creates your design'});for(const [id,label,copy]of [['idea','Create from my idea','Choose a theme, style and colors.'],['remake','Remake my image','Upload a design or screenshot. Skip the questions.']]){const b=button('',()=>{p().aiPath=id;render();save().catch(error);});b.setAttribute('aria-label',label);b.setAttribute('aria-pressed',String((remake?'remake':'idea')===id));b.append(el('strong',{},label),el('span',{},copy));paths.append(b);}const changeMethod=el('details',{class:'dyd-inspiration'});changeMethod.append(el('summary',{},'Change creation method'),paths);panel.append(el('p',{class:'dyd-reference-notice'},remake?'Reimagine a picture':'Create from an idea'),changeMethod);\n  const choices=p().choices||{theme:'christmas',subject:'santa',style:'realistic',colors:'classic',details:''};p().choices=choices;\n  let questionnaireIssue=null;\n  const checkQuestionnaire=()=>{let note=panel.querySelector('[data-questionnaire-issue]');try{if(remake)window.DYDDesignQuestionnaire.wordingDetails(p().remakeDetails||'',p().questionnaire||{});else window.DYDDesignQuestionnaire.compile(choices,p().questionnaire||{});questionnaireIssue=null;}catch(e){questionnaireIssue=e.message;}if(!note){note=el('p',{'data-questionnaire-issue':'',role:'status',class:'dyd-project__hint'});panel.append(note);}note.textContent=questionnaireIssue||'';note.hidden=!questionnaireIssue;const create=panel.querySelector('[data-credit-generation]');if(create){create.dataset.questionnaireValid=String(!questionnaireIssue);updateCreditPanels();}};\n  if(!remake){if(!window.DYDDesignQuestionnaire)throw Error('Design choices could not load. Refresh the Studio to try again.');p().questionnaire=p().questionnaire||{};window.DYDDesignQuestionnaire.mount({parent:panel,choices,extra:p().questionnaire,select,save:()=>save().catch(error),refresh:rerender=>{if(rerender)render();else checkQuestionnaire();}});checkQuestionnaire(); }else{const label=el('label',{},'What would you like to improve or change? (optional)'),notes=el('textarea',{'aria-label':'Remake changes',maxlength:'600',placeholder:'For example: brighter colors, cleaner detail, or leave blank to follow the image.'});notes.value=p().remakeDetails||'';notes.addEventListener('input',()=>{p().remakeDetails=notes.value;});notes.addEventListener('change',()=>{p().remakeDetails=notes.value;save().catch(error);});label.append(notes);panel.append(label);}\n  const inspiration=el(remake?'section':'details',{class:'dyd-inspiration','aria-label':remake?'Remake reference image':'Optional inspiration image'});if(!remake){inspiration.append(el('summary',{},'Add an inspiration photo (optional)'));if(p().inspiration)inspiration.open=true;}else inspiration.append(el('h3',{},'Reference image'));\n  const reminder=continuousTeaching(true);if(reminder)inspiration.append(reminder);\n  inspiration.append(el('p',{},remake?'The Studio uses your image to create a new version for your selected cover. No questionnaire needed.':'Have a picture of your idea? Add it as a reference for your new design.'),el('p',{class:'dyd-reference-notice'},'Your upload is a reference, not the print file. Review and approve your new artwork before ordering.'),el('small',{},'Upload an image you own or have permission to use.'));\n  filePicker(remake?'Upload a design or screenshot':'Add an inspiration image (optional)','artwork',async a=>{p().inspiration={id:a.id,kind:'asset'};await save();render();},inspiration);\n  if(p().inspiration){const thumb=el('img',{alt:'Inspiration reference, not print artwork',class:'dyd-inspiration__image'});inspiration.append(thumb,button('Remove inspiration reference',()=>{delete p().inspiration;render();save().catch(error);}));api('asset',null,p().inspiration).then(a=>{if(thumb.isConnected)thumb.src=safeImage(a.reviewUrl);}).catch(error);}panel.append(inspiration);\n\n  p().questionnaire=p().questionnaire||{};window.DYDDesignQuestionnaire.mountWording({parent:panel,extra:p().questionnaire,projectId:project.id,save:()=>save().catch(error),refresh:checkQuestionnaire});checkQuestionnaire();\n  const ownerTest=session?.allowance?.kind==='private-owner-test',testVariants=['41919782256823','41919782289591','41919782322359','41919782355127','48538544242871','48538544275639','48538544177335','48785273946295','48785273979063'];const continuous=p().workflow==='continuous',supported=!project.source_project_id&&(!continuous||session?.continuousGenerationEnabled===true)&&(!hasCustomSize(p())||session?.capabilities?.customSizeGeneration===true)&&(!ownerTest||p().covers.every(c=>c.customSize!==undefined?session?.capabilities?.customSizeGeneration===true:testVariants.includes(c.variant)));const generate=button(session?.remaining>0?(continuous?'Generate continuous design \u00B7 1 credit':remake?'Remake my design':'Create my design'):'No creation requests remaining',()=>generateArt(generate),true);const blocked=hasCustomSize(p())&&session?.capabilities?.customSizeGeneration!==true?'Custom-size Design creation is awaiting activation. Your exact dimensions and selected options are preserved.':questionnaireIssue?questionnaireIssue:busy?'Your design is processing. Please wait for its result.':generationPending?'A creation is unfinished. Check its status below.':!session?.generationEnabled?'Design creation is temporarily unavailable. You can upload artwork instead.':!(Number.isFinite(session.remaining)&&session.remaining>0)?creationLimitCopy().detail:project.source_project_id?'This linked project uses its saved artwork. Start a new design to create different artwork.':continuous&&!session?.continuousGenerationEnabled?'Design creation for continuous sets is not enabled for this account. Upload panoramic artwork instead.':!supported?'Choose one of the supported cover sizes before creating.':remake&&!p().inspiration?'Upload your reference image to remake your design.':'';generate.disabled=!!blocked;generate.dataset.questionnaireValid=String(!questionnaireIssue);generate.dataset.busy='';generate.dataset.creditGeneration='';generate.dataset.creditTitle=continuous?'Generate continuous design \u00B7 1 credit':remake?'Remake my design':'Create my design';generate.dataset.creditEligible=String(!project.source_project_id&&supported&&(!continuous||session?.continuousGenerationEnabled===true)&&(!remake||!!p().inspiration));generate.classList.add('dyd-create-cta');if(session?.remaining>0)generate.prepend(el('span',{'aria-hidden':'true'},'\u2727'));const launch=el('div',{class:'dyd-create-launch'});if(!session?.termsAccepted)termsControl(launch);if(continuous)launch.append(el('p',{class:'dyd-credit-callout'},'Your entire continuous design uses just 1 design credit, including all '+p().covers.length+' selected garage doors.'));if(session?.capabilities?.qualityPipeline)launch.append(el('p',{class:'dyd-credit-callout'},'1 credit is reserved while we create and check your artwork. It is used only when a design passes and is delivered. Any automatic correction uses the same credit.'));launch.append(generate);if(continuous)launch.append(el('p',{class:'dyd-credit-details'},'Creating another version uses another credit. Previewing your design, adjusting placement, and splitting it into printed panels use no additional design credits.'));if(blocked&&!(remake&&!p().inspiration))launch.append(el('p',{role:'status',class:'dyd-project__hint'},blocked));panel.append(launch,waitHost,el('p',{class:'dyd-project__status'},ownerTest?(session?.capabilities?.qualityPipeline?'Private owner test. High-quality artwork is checked before delivery. Automatic corrections share your one reserved credit and the private provider budget.':'Private owner test: 8 total request slots, including 2 previously used. Normal customers receive 3 complimentary generations. One medium-quality image per request.'): 'Three complimentary creations per account. Failed or uncertain jobs are checked before any retry.'));\n\n  checkQuestionnaire();\n  if(continuous)panel.append(button('View continuous composition plan',showCompositionPlan));\n  if(continuous&&session?.continuousGenerationEnabled)panel.append(el('p',{class:'dyd-project__hint'},'One connected panorama \u00B7 1 design credit per generation for the entire set. Review the panorama area and each door before approval.'));if(ownerTest&&!project.source_project_id&&!supported&&!continuous)panel.append(el('p',{class:'dyd-project__hint'},'Owner tests are enabled for front-door sizes, 8 \u00D7 7, 9 \u00D7 7, 16 \u00D7 7, 18 \u00D7 7 and 18 \u00D7 8. Choose one of those targets.'));if(project.source_project_id)panel.append(el('p',{class:'dyd-project__hint'},'This linked project keeps the source artwork unchanged. Start a new design to create different artwork.'));\n  if(!(Number.isFinite(session.remaining)&&session.remaining>0))panel.append(el('p',{class:'dyd-project__hint'},creationLimitCopy().detail));\n  if(generationPending)panel.append(button('Check creation status',resumeGeneration));actions(()=>navigate(2),!!p().artwork,'Review my artwork');\n }\n function createMatchingArtwork(){\n  title('Create your matching '+(p().covers[0].product==='front'?'front-door':'garage')+' artwork','Your original is the reference. A new composition will be made for this cover\u2019s selected size.');\n  const ref=el('div'),token=loadToken;panel.append(ref);loadArt().then(img=>{if(token===loadToken)ref.append(savedPreview(p().artwork,img.src,{alt:'Original reference, not the new cover print file',class:'dyd-project__art'}),el('p',{class:'dyd-project__hint'},'Original reference \u00B7 unchanged'));}).catch(error);\n  const label=el('label',{},'Wording to keep in the matching design (optional)'),input=el('textarea',{maxlength:'300'});input.value=p().remakeDetails||'';label.append(input);panel.append(label);const launch=el('div');if(!session?.termsAccepted)termsControl(launch);const create=button('Create matching design \u00B7 1 design credit',()=>matchingArt(create,input.value.trim()),true);create.disabled=busy||!!generationPending||session?.generationEnabled!==true||!(session?.remaining>0)||!!setupProblems(p()).length;create.dataset.creditGeneration='';create.dataset.creditEligible='true';create.dataset.creditTitle='Create matching design \u00B7 1 design credit';launch.append(create,el('p',{class:'dyd-project__hint'},'Creating this new matching composition uses 1 design credit when accepted. Your original cover and cart stay unchanged.'));panel.append(launch);panel.append(button('Upload finished matching artwork instead',()=>{p().matchingSource=structuredClone(p().artwork);p().artwork=null;delete p().matchingRequested;p().creationMode='upload';editingNewVersion=false;render();}));if(generationPending)panel.append(button('Check creation status',resumeGeneration));actions(null);\n }\n const termsVersion='2026-10-16-v1';let termsChecked=false;\n function termsControl(parent=panel){const box=el('div',{class:'dyd-studio-terms'}),details=el('details'),summary=el('summary',{},'Design Studio Terms');details.append(summary,el('p',{},'Designs generated through Decor Your Door\u2019s Design Studio are provided for selecting and purchasing products from Decor Your Door. Generating a design or purchasing additional generations does not grant exclusive ownership or permission to download, reproduce, resell, or manufacture the design elsewhere. Purchasing a physical product does not include ownership of the digital artwork.'),el('p',{},'To the extent you hold rights in an Studio-generated design created through the Studio, you grant Decor Your Door a non-exclusive, worldwide, royalty-free license to reproduce, adapt, display, market, manufacture, and sell products featuring that design. The design may be offered to other customers.'),el('p',{},'This permission does not extend to your uploaded original artwork, personal photographs, names, or likenesses for general marketing or resale without separate consent.'));const l=el('label'),c=el('input',{type:'checkbox','aria-label':'I agree to the Design Studio Terms.'});c.checked=termsChecked;c.addEventListener('change',()=>{termsChecked=c.checked;});const link=el('a',{href:'#'},'Design Studio Terms');link.addEventListener('click',e=>{e.preventDefault();details.open=true;summary.focus({preventScroll:true});});l.append(c,document.createTextNode('I agree to the '),link,document.createTextNode('.'));box.append(l,details);parent.append(box);}\n async function ensureTerms(){if(session?.termsAccepted)return;if(!termsChecked)throw Object.assign(Error('Please agree to the Design Studio Terms before generating.'),{status:400});await api('accept-terms',{version:termsVersion,accepted:true});session.termsAccepted=true;}\n function wait(status,jobId,theme,start=false){if(!session?.authenticated)return;waitHost.dataset.authState='signed-in';theme=['christmas','halloween','nature','celebration','other'].includes(theme)?theme:'other';waitHost.dispatchEvent(new CustomEvent('dyd:ai-job-status',{detail:{status,jobId,theme,accepted:status!=='preparing',start}}));if(start)waitHost.scrollIntoView({behavior:matchMedia('(prefers-reduced-motion: reduce)').matches?'instant':'smooth',block:'center'});}\n function rejectedBeforeAcceptance(e){return !generationPending?.jobId&&([400,401,403,413,429].includes(e.status)||(e.status===409&&e.message!=='idempotency_conflict'));}\n function clearRejected(e){if(rejectedBeforeAcceptance(e)){generationPending=null;try{sessionStorage.removeItem('dyd-project-job');}catch{}return true;}return false;}\n async function generateArt(btn){if(busy||generationPending)return;if(hasCustomSize(p())&&(!customArtworkReady()||session?.capabilities?.customSizeGeneration!==true))throw Error('Custom-size Design creation is not available yet. Your cover setup is preserved.');if(p().aiPath!=='remake')window.DYDDesignQuestionnaire.compile(p().choices,p().questionnaire||{});else window.DYDDesignQuestionnaire.wordingDetails(p().remakeDetails||'',p().questionnaire||{});busy=true;btn.disabled=true;btn.replaceChildren(el('span',{class:'dyd-project__spinner','aria-hidden':'true'}),document.createTextNode('Creating your design\u2026'));panel.setAttribute('aria-busy','true');\n  try{await ensureTerms();wait('preparing','preparing_'+crypto.randomUUID(),p().choices?.theme||'other',true);project.started=true;await save();generationPending={projectId:project.id,...(hasCustomSize(p())?{revision:project.revision}:{}),idempotencyKey:crypto.randomUUID(),variantId:p().covers[0].variant,choices:p().aiPath==='remake'?{theme:'other',subject:'custom',style:'realistic',colors:'custom',details:window.DYDDesignQuestionnaire.wordingDetails(p().remakeDetails||'',p().questionnaire||{}),remake:true}:window.DYDDesignQuestionnaire.compile(p().choices,p().questionnaire||{}),...(p().inspiration?{inspiration:p().inspiration}:{}),target:{workflow:p().workflow,covers:p().covers.map(c=>({product:c.product,variant:c.variant,...(c.customSize!==undefined?{customSize:structuredClone(c.customSize)}:{})})),gaps:p().gaps,units:p().units,...(p().workflow==='single'&&p().covers[0].customSize!==undefined?{product:p().covers[0].product,customSize:structuredClone(p().covers[0].customSize)}:{})}};sessionStorage.setItem('dyd-project-job',JSON.stringify(generationPending));const accepted=await api(generationPending.action||'generate',generationPending);generationPending.jobId=accepted.jobId;sessionStorage.setItem('dyd-project-job',JSON.stringify(generationPending));wait('queued',accepted.jobId,generationPending.choices.theme,true);await pollJob(accepted.jobId,generationPending.choices.theme);}catch(e){const rejected=clearRejected(e);if(!generationPending?.jobId)waitHost.dispatchEvent(new CustomEvent('dyd:ai-session-ended'));error(e);if(generationPending?.jobId)wait('uncertain',generationPending.jobId,generationPending.waitTheme||generationPending.choices?.theme||p().choices?.theme||'other');message(e.message+(rejected?' \u00B7 This request was rejected before acceptance. You can correct your choices and try again; cooldowns still apply.':' \u00B7 Check saved designs before trying again.'));render();}finally{busy=false;panel.removeAttribute('aria-busy');render();}}\n async function matchingArt(btn,requiredText){\n  if(busy||generationPending)return;busy=true;btn.disabled=true;btn.replaceChildren(el('span',{class:'dyd-project__spinner','aria-hidden':'true'}),document.createTextNode('Creating a matching design\u2026'));panel.setAttribute('aria-busy','true');\n  try{await ensureTerms();wait('preparing','preparing_'+crypto.randomUUID(),'other',true);if(p().route!=='reuse'){const source=project.id;project={id:crypto.randomUUID(),revision:0,started:true,source_project_id:source,payload:{...structuredClone(p()),route:'reuse'},approvals:{}};}await save();generationPending={action:'match',idempotencyKey:crypto.randomUUID(),projectId:project.id,revision:project.revision,requiredText,source:structuredClone(p().artwork)};sessionStorage.setItem('dyd-project-job',JSON.stringify(generationPending));const accepted=await api('match',generationPending);generationPending.jobId=accepted.jobId;generationPending.waitTheme=accepted.theme||'other';sessionStorage.setItem('dyd-project-job',JSON.stringify(generationPending));wait('queued',accepted.jobId,generationPending.waitTheme,true);await pollJob(accepted.jobId,accepted.theme);\n  }catch(e){const rejected=clearRejected(e);if(!generationPending?.jobId)waitHost.dispatchEvent(new CustomEvent('dyd:ai-session-ended'));error(e);if(generationPending?.jobId)wait('uncertain',generationPending.jobId,'other');message(e.message+(rejected?' \u00B7 No matching request was accepted. Correct the selection, or wait 60 seconds if this was a cooldown, then try again.':' \u00B7 Check the existing request before starting another.'));render();}finally{busy=false;panel.removeAttribute('aria-busy');render();}\n }\n async function resumeGeneration(){if(!generationPending||busy)return;busy=true;try{if(generationPending.projectId&&generationPending.projectId!==project.id){await save();const original=(await api('project',null,{id:generationPending.projectId})).project;if(!original||original.id!==generationPending.projectId)throw Error('The original project for this request could not be confirmed. No new image was requested.');project=restored(original);artImage=null;artMeta=null;houseImage=null;render();}if(!generationPending.jobId){const a=await api(generationPending.action||'generate',generationPending);generationPending.jobId=a.jobId;generationPending.waitTheme=a.theme||generationPending.choices?.theme||'other';sessionStorage.setItem('dyd-project-job',JSON.stringify(generationPending));}await pollJob(generationPending.jobId,generationPending.waitTheme||generationPending.choices?.theme||p().choices?.theme||'other');}catch(e){clearRejected(e);error(e);}finally{busy=false;render();}}\n async function pollJob(id,theme){if(generationPending?.projectId&&generationPending.projectId!==project.id)throw Error('This request belongs to a different saved project. Use Check creation status to return to it.');wait('queued',id,theme,true);const started=Date.now();for(;;){const data=await api();session={...session,...data};updateCreditPanels();const d=data.designs.find(x=>x.id===id);if(!d)throw Error('Saved job not found; check your design library');if(d.status==='succeeded'){\n   // Decode actual saved image BEFORE stopping the waiting scene or enabling review.\n   artMeta={width:d.nativeWidth,height:d.nativeHeight,target:d.targetWidth?{width:d.targetWidth,height:d.targetHeight,family:d.targetProduct==='front'?'FrontDoor':d.targetProduct==='continuous'?'Continuous':'Garage'}:null};const decodedArt=await savedImage({kind:'job',id:d.id},d.reviewUrl);if(generationPending?.action==='match'){p().matchingSource=structuredClone(generationPending.source);delete p().matchingRequested;}else if(generationPending?.inspiration){p().matchingSource=structuredClone(generationPending.inspiration);p().referenceMode='inspiration';}p().artwork={kind:'job',id:d.id};detachLayers();artImage=decodedArt;invalidate();await save();wait('ready',id,theme);const waitingNode=root.querySelector('[data-dyd-waiting]');if(waitingNode)waitingNode.hidden=true;sessionStorage.removeItem('dyd-project-job');generationPending=null;busy=false;await navigate(2);return;\n  }if(['failed','uncertain'].includes(d.status)||Date.now()-started>(session?.capabilities?.qualityPipeline?930000:180000)){if(d.status==='failed'){generationPending=null;sessionStorage.removeItem('dyd-project-job');}wait(d.status==='failed'?'failed':'uncertain',id,theme);throw Error(d.status==='failed'?generationFailureText(d.failureCode)+' The job was marked failed; check your refreshed credit balance.':'Generation status is uncertain. Check saved designs; do not start a duplicate.');}wait({reserved:'queued',moderating:'moderating',generating:'generating',preparing:'saving'}[d.status]||'queued',id,theme);await new Promise(r=>setTimeout(r,3000));}}\n async function loadArt(){if(artImage&&artMeta)return artImage;if(!p().artwork)throw Error('Choose artwork first');const a=await api('asset',null,p().personalization?.rendered||p().artwork);artMeta=a;if(a.matching?.source&&!p().matchingSource)p().matchingSource=a.matching.source;artImage=await savedImage(p().personalization?.rendered||p().artwork,a.reviewUrl);return artImage;}\n async function approve(kind,confirmation={}){if(kind==='final'&&hasCustomSize(p())&&!finalApprovalReady())throw Error('Your custom artwork is saved. Custom ordering and final order approval are paused.');await save();await saveQueue;const d=await api('approve-project',{id:project.id,revision:project.revision,kind,...confirmation});project.approvals=d.project.approvals;if(d.customApproval||d.project.customApproval)project.customApproval=structuredClone(d.customApproval||d.project.customApproval);return d;}\n async function openArtworkDetail(img){\n  if(root.querySelector('.dyd-art-detail[open]'))return;\n  const focus=document.activeElement,ref={...(p().personalization?.rendered||p().artwork)},dialog=el('dialog',{class:'dyd-art-detail','aria-label':'Full-resolution artwork'}),header=el('div',{class:'dyd-art-detail__header'}),controls=el('div',{class:'dyd-art-detail__toolbar','aria-label':'Artwork zoom controls'}),area=el('div',{class:'dyd-art-detail__area',tabindex:'0','aria-label':'Full-resolution artwork. Scroll to explore when zoomed in.'}),surface=el('div',{class:'dyd-art-detail__surface'}),view=el('img',{alt:'Your full-resolution saved artwork'}),status=el('span',{class:'dyd-art-detail__zoom',role:'status','aria-live':'polite'});\n  let closer=false,closed=false,native=null;\n  const close=button('Close',()=>dialog.close()),fit=button('Fit to screen',()=>{closer=false;apply();}),inside=button('Closer view',()=>{closer=true;apply();});\n  function fitScale(){return Math.min(1,Math.max(1,area.clientWidth-32)/native.naturalWidth,Math.max(1,area.clientHeight-32)/native.naturalHeight);}\n  function apply(){if(closed||!native)return;const base=fitScale(),scale=Math.min(1,base*(closer?1.5:1));view.style.width=Math.max(1,Math.round(native.naturalWidth*scale))+'px';view.style.height=Math.max(1,Math.round(native.naturalHeight*scale))+'px';status.textContent=closer?'Closer view':'Fit to screen';fit.setAttribute('aria-pressed',String(!closer));inside.setAttribute('aria-pressed',String(closer));inside.disabled=base>=1||closer;fit.disabled=!closer;if(!closer){area.scrollTop=0;area.scrollLeft=0;}}\n  function resizeViewer(){if(closed)return;dialog.style.height=Math.ceil(Math.min(900,innerHeight*(innerWidth<=600?.90:.92)))+'px';apply();}\n  header.append(el('h2',{},'Your artwork'),close);controls.append(fit,inside,status);surface.append(view);area.append(surface);dialog.append(header,controls,area);view.hidden=true;status.textContent='Opening your artwork\u2026';for(const b of [fit,inside])b.disabled=true;\n  dialog.addEventListener('close',()=>{closed=true;window.removeEventListener('resize',resizeViewer);view.removeAttribute('src');dialog.remove();focus?.focus({preventScroll:true});});window.addEventListener('resize',resizeViewer);root.append(dialog);dialog.showModal();requestAnimationFrame(resizeViewer);close.focus({preventScroll:true});\n  try{if(!session?.capabilities?.originalZoom)throw Error('The full-resolution viewer is awaiting backend activation.');const a=await api('asset-original',null,ref),original=await image(a.originalUrl,true);if(closed)return;if(original.naturalWidth!==a.width||original.naturalHeight!==a.height)throw Error('Original dimensions could not be verified.');native=original;view.src=original.src;view.hidden=false;for(const b of [fit,inside])b.disabled=false;apply();}\n  catch(e){if(!closed){status.textContent='Original could not load. '+e.message;status.setAttribute('role','alert');}}\n }\n\n async function startLayoutRemake(){\n  if(busy||generationPending){message('Check your unfinished creation before starting a remake.');return;}\n  const ref=structuredClone(artworkFitSource(p()));if(!ref)throw Error('Choose your saved artwork first.');\n  if(project.source_project_id){await save();project={id:crypto.randomUUID(),revision:0,started:true,payload:{...structuredClone(p()),title:(p().title+' \u00B7 Remake').slice(0,100)},approvals:{}};}\n  p().inspiration=ref;p().creationMode='ai';p().aiPath='remake';editingNewVersion=true;await navigate(1);customMethodSelection=false;render();await save();message('Your reference is ready. Review the selected sizes, then choose Remake my design. Uses 1 design credit only when you request the remake.');\n }\n let artworkFitOpen=false;\n async function openArtworkFit(){\n  if(busy||artworkFitOpen)return;if(generationPending){message('Check your unfinished creation before fitting this artwork.');return;}artworkFitOpen=true;\n  const focus=document.activeElement,dialog=el('dialog',{class:'dyd-fit-dialog','aria-labelledby':'dydFitHeading'}),heading=el('h2',{id:'dydFitHeading'},'Fit artwork to your layout'),status=el('p',{role:'status','aria-live':'polite'},'Loading your original artwork\u2026'),preview=document.createElement('canvas'),output=document.createElement('canvas'),stage=el('div',{class:'dyd-fit-stage'}),choices=el('div',{class:'dyd-fit-choices'}),controls=el('div',{class:'dyd-fit-controls'}),footer=el('div',{class:'dyd-fit-actions'});\n  preview.setAttribute('aria-label','Flat artwork fit preview. Garage mockup and printed panels are reviewed in the next steps.');stage.append(preview);\n  let mode='crop',x=.5,y=.5,original=null,meta=null,snapshot=null,source=null,geometry=null,saving=false,closed=false,context=null;\n  const close=button('Cancel',()=>dialog.close()),saveFit=el('button',{type:'button',class:'primary'},'Save fitted artwork'),label=el('label',{class:'dyd-fit-confirm'}),agree=el('input',{type:'checkbox'});saveFit.addEventListener('click',()=>{void apply();});agree.checked=false;agree.addEventListener('change',()=>{saveFit.disabled=!original||!agree.checked||saving;});label.append(agree,document.createTextNode('I reviewed this fit, including any cropping or stretching, all text, faces and edge details.'));\n  const crop=button('Adjust crop',()=>selectMode('crop'),true),stretch=button('Stretch to fit',()=>selectMode('stretch'));crop.setAttribute('aria-pressed','true');stretch.setAttribute('aria-pressed','false');choices.append(crop,stretch);\n  function selectMode(next){if(!original||saving)return;mode=next;crop.setAttribute('aria-pressed',String(mode==='crop'));stretch.setAttribute('aria-pressed',String(mode==='stretch'));resetAgreement();draw();}\n  function resetAgreement(){agree.checked=false;saveFit.disabled=true;}\n  function slider(title,fn){const box=el('label',{},title),input=el('input',{type:'range',min:'0',max:'100',step:'1',value:'50','aria-label':title});input.addEventListener('input',()=>{fn(Number(input.value)/100);resetAgreement();draw();});box.append(input);controls.append(box);return input;}\n  const horizontal=slider('Horizontal crop position',v=>x=v),vertical=slider('Vertical crop position',v=>y=v);\n  function draw(){\n   if(!original||closed)return;const target=artworkFitTarget(snapshot.payload);geometry=fitGeometry(original.naturalWidth,original.naturalHeight,target.width/target.height,mode,x,y);output.width=geometry.w;output.height=geometry.h;const g=output.getContext('2d');const s=geometry.crop,d=geometry.draw;g.drawImage(original,s.x,s.y,s.w,s.h,d.x,d.y,d.w,d.h);\n   const scale=Math.min(1,1400/output.width,900/output.height);preview.width=Math.max(1,Math.round(output.width*scale));preview.height=Math.max(1,Math.round(output.height*scale));const ctx=preview.getContext('2d');ctx.drawImage(output,0,0,preview.width,preview.height);\n   horizontal.parentElement.hidden=Math.abs(geometry.crop.w-original.naturalWidth)<.01;vertical.parentElement.hidden=Math.abs(geometry.crop.h-original.naturalHeight)<.01;if(mode==='stretch'){const change=(target.width/target.height/(original.naturalWidth/original.naturalHeight)-1)*100;status.textContent='The full image fills the layout without added borders. Shapes are '+Math.abs(change).toFixed(1)+'% '+(change>=0?'wider':'narrower')+' relative to their height. Review every face, logo and word before saving.';}else status.textContent='Only the shown crop will be used, edge to edge. No border or stretching is added. Check every word, face and important detail.';\n  }\n  function finishFit(saved){project=restored(saved);artImage=null;artMeta=null;closed=true;dialog.close();dialog.remove();artworkFitOpen=false;busy=false;render();message('Fitted artwork saved. Review it and approve to continue to your preview.');}\n  async function apply(){\n   if(!original||!agree.checked||saving)return;saving=true;saveFit.disabled=true;close.disabled=true;agree.disabled=true;for(const n of [crop,stretch,horizontal,vertical])n.disabled=true;status.textContent='Saving a separate fitted copy\u2026';\n   let asset=null;try{\n    if(project.id!==snapshot.id||project.revision!==snapshot.revision||stableReviewJson(p())!==context)throw Error('Your project changed. Close this window and review the fit again.');\n    const png=output.toDataURL('image/png').split(',')[1];asset=(await api('upload',{kind:'artwork',png})).asset;\n    const receipt={mode,source,sourceSha256:meta.sha256,confirmed:true,crop:geometry.crop,borderColor:null,canvas:{width:geometry.w,height:geometry.h}};\n    const payload=fittedArtworkPayload(snapshot.payload,asset,receipt),result=await api('save-project',{id:snapshot.id,revision:snapshot.revision,sourceProjectId:snapshot.source_project_id||null,payload});\n    finishFit(result.project);\n   }catch(e){if(asset){try{const latest=(await api('project',null,{id:snapshot.id})).project;if(latest?.payload?.artwork?.id===asset.id&&latest.payload.artworkFit?.source?.id===source.id&&latest.payload.artworkFit.confirmed===true){finishFit(latest);return;}}catch{}status.textContent='The fit save could not be confirmed. Close and reopen your saved project to check before trying again. Your original stays saved.';saving=false;close.disabled=false;resetAgreement();return;}status.textContent='Fit not applied. '+e.message+' Your original and saved project are preserved.';saving=false;close.disabled=false;agree.disabled=false;for(const n of [crop,stretch,horizontal,vertical])n.disabled=false;resetAgreement();}\n  }\n  saveFit.disabled=true;for(const n of [crop,stretch,horizontal,vertical])n.disabled=true;footer.append(close,saveFit);dialog.append(heading,el('p',{},'Choose a crop or stretch the complete image to fill your selected layout. Neither option adds borders. Stretching can change the shape of faces, logos and text; inspect the preview before saving.'),choices,stage);dialog.append(controls,status,label,footer,el('p',{class:'dyd-fit-note'},'Your original stays saved. No design credit is used.'));dialog.addEventListener('cancel',e=>{if(saving)e.preventDefault();});dialog.addEventListener('close',()=>{closed=true;artworkFitOpen=false;busy=false;dialog.remove();focus?.focus({preventScroll:true});});root.append(dialog);dialog.showModal();close.focus({preventScroll:true});\n  try{await save();await saveQueue;if(closed)return;snapshot=structuredClone(project);context=stableReviewJson(p());source=structuredClone(artworkFitSource(p()));meta=await api('asset-original',null,source);original=await image(meta.originalUrl,true);if(closed)return;if(!meta.width||!meta.height||Math.abs(original.naturalWidth/original.naturalHeight-meta.width/meta.height)/(meta.width/meta.height)>=.012)throw Error('Original image proportions could not be verified.');for(const n of [crop,stretch,horizontal,vertical])n.disabled=false;draw();}catch(e){if(!closed){original=null;status.textContent='The original could not load. '+e.message+' Close and try again; no fit was saved.';}}\n }\n async function reviewPlannedArtwork(target,plan,meta,token){\n  const source=structuredClone(p().artwork),projectId=project.id,setup=stableReviewJson({covers:p().covers,workflow:p().workflow,gaps:p().gaps,units:p().units}),context=stableReviewJson(finalReviewContext(p())),native=await api('asset-original',null,source),original=await image(native.originalUrl,true);if(token!==loadToken)return;\n  const c=plan.providerCanvas,b=c.band;if(original.naturalWidth!==c.w||original.naturalHeight!==c.h)throw Error('The original artwork dimensions could not be verified. Your image is preserved.');\n  const cn=el('canvas',{class:'dyd-project__art','aria-label':'Exact planned artwork area for your selected covers'});cn.width=b.w;cn.height=b.h;cn.getContext('2d').drawImage(original,b.x,b.y,b.w,b.h,0,0,b.w,b.h);\n  target.append(el('p',{class:'dyd-project__status'},'This artwork was generated for your selected covers. Review the exact artwork area below. Only the planned outer canvas padding is excluded; your original stays saved.'),cn);\n  let agreed=false;const confirm=button('Approve artwork & preview garage doors',async()=>{if(!agreed||busy)return;if(project.id!==projectId||stableReviewJson(finalReviewContext(p()))!==context)throw Error('Your layout changed. Reopen artwork review before confirming.');busy=true;const controls=[...target.querySelectorAll('input,button')];for(const control of controls)control.disabled=true;\n   try{await save();let result;try{result=await api('extract-panorama',{id:project.id,revision:project.revision,confirmMargins:true});}catch(e){const latest=(await api('project',null,{id:project.id})).project;if(latest?.payload?.panoramaExtraction?.source?.id!==source.id||latest.payload.panoramaExtraction.sourceSha256!==native.sha256||stableReviewJson({covers:latest.payload.covers,workflow:latest.payload.workflow,gaps:latest.payload.gaps,units:latest.payload.units})!==setup)throw e;result={project:latest};}\n    project=result.project;artImage=null;artMeta=null;verifiedPrintReview=null;verifiedPrintImages.clear();await approve('artwork');busy=false;await navigate(3);\n   }catch(e){if(project.payload.artwork?.kind==='asset'&&project.payload.panoramaExtraction?.source?.id===source.id){busy=false;render();message('Your artwork area is saved. Review it and confirm approval to continue.');}throw e;}finally{busy=false;for(const control of controls)control.disabled=false;confirm.disabled=!agreed;}\n  },true);confirm.disabled=true;\n  checkbox('I reviewed and approve this artwork area for my selected covers.',false,v=>{agreed=v;confirm.disabled=!v;},target);target.append(confirm,button('Review cover sizes',()=>navigate(0)));return cn;\n }\n function addStandardCheckoutOption(parent){\n  const variant=exactStandardSizeMatch(p(),cfg.variants);if(!variant)return;\n  const size=dimensions(p().covers[0]).join(' \u00D7 ')+(p().covers[0].product==='front'?' in':' ft'),price=new Intl.NumberFormat(undefined,{style:'currency',currency:cfg.currency}).format(variant.price/100);\n  const pick=button('Use standard '+size+' \u00B7 '+price,async()=>{\n   if(busy)return;const accepted=await confirmStudio({heading:'Use standard '+size+'?',description:price,details:[],keep:'Keep custom size',proceed:'Use standard size'});if(!accepted)return;\n   await save();await saveQueue;const source=project,newPayload=standardSizeCopy(p(),variant);newPayload.standardSizeSourceProjectId=source.id;\n   const candidate={id:crypto.randomUUID(),revision:0,started:true,payload:newPayload,approvals:{}};\n   busy=true;try{const saved=await api('save-project',{id:candidate.id,revision:0,payload:candidate.payload});project=restored(saved.project);standardChoicePending.clear();artImage=null;artMeta=null;houseImage=null;verifiedPrintReview=null;verifiedPrintImages.clear();customMethodSelection=false;editingNewVersion=false;remember();busy=false;render();}finally{busy=false;}\n  },true);parent.append(pick);\n }\n function reviewArt(){title('This is your artwork','Review your design, then approve it to choose a preview on your home.');if(!p().artwork){panel.append(button('Choose artwork',()=>navigate(1),true));return;}const target=el('div');panel.append(target);addStandardCheckoutOption(target);const token=loadToken;\n  loadArt().then(async img=>{if(token!==loadToken)return;const generatedSet=p().workflow==='continuous'&&p().artwork.kind==='job'&&artMeta?.target?.family==='Continuous';if(generatedSet){await saveQueue;const plan=await api('composition-plan',null,{id:project.id});if(token!==loadToken)return;if(plan.extractionRequiresReview&&validPlannedArtworkArea(p(),artMeta,plan)){await reviewPlannedArtwork(target,plan,artMeta,token);return;}}const shown=savedPreview(p().personalization?.rendered||p().artwork,img.src,{alt:'Your actual saved flat artwork',class:'dyd-project__art'});target.append(shown,button('View artwork details',()=>openArtworkDetail(img)));const good=fits(p(),artMeta.width,artMeta.height);if(p().matchingSource){const comparison=el('div',{class:'dyd-project__grid'}),sourceCard=el('div',{class:'dyd-project__card'}),newCard=el('div',{class:'dyd-project__card'});sourceCard.append(el('h3',{},'Original reference \u00B7 unchanged'));newCard.append(el('h3',{},'New matching composition'),savedPreview(p().personalization?.rendered||p().artwork,img.src,{alt:'New matching design at the selected target ratio'}));comparison.append(sourceCard,newCard);target.append(comparison,el('p',{class:'dyd-project__hint'},'This is a new composition. Compare subjects, colors, brand details and all lettering with your original, then approve this version separately.'));api('asset',null,p().matchingSource).then(a=>image(a.reviewUrl,true)).then(source=>{if(token===loadToken)sourceCard.append(el('img',{src:source.src,alt:'Unchanged source design used as the reference'}));}).catch(error);}\n      if(!good){const help=el('div',{class:'dyd-fit-summary'}),targetSize=artworkFitTarget(p()),planned=artMeta?.target?.family==='Continuous'&&Math.abs(artMeta.target.width/artMeta.target.height-targetSize.width/targetSize.height)/(targetSize.width/targetSize.height)<.012&&p().artwork.kind==='job';if(planned){help.append(el('p',{},'Review the artwork area prepared for your selected layout.'),button('Review artwork area',reviewPanoramaArea,true));}else{help.append(el('p',{},'This artwork was made for different proportions.'),button('Remake for this layout',startLayoutRemake),el('p',{class:'dyd-fit-note'},'Review your reference first. A new remake uses 1 credit when requested.'));}help.append(el('p',{class:'dyd-fit-note'},'Your artwork and selected door layout have different proportions. Adjust the crop to fill your selected door layout. Your original stays saved; no design credit is used.'),button('Fit artwork to my layout \u00B7 no design credit',openArtworkFit,true));target.append(help);}\n\n\n   if(good){if(p().artworkFit?.output?.id===p().artwork?.id)target.append(button('Adjust artwork fit',openArtworkFit));const edit=button('Edit text & logo',editLayers,true);edit.classList.add('dyd-artwork-edit');target.append(edit);saveQueue.then(()=>{if(token===loadToken&&project.revision>0)return window.DYDArtworkEditor.preload({project,api,image});}).catch(()=>{});if(p().layerDraft?.length&&!p().personalization)target.append(el('p',{class:'dyd-project__hint'},'Your text/logo choices are retained. Open the editor to reapply and review them for this layout.'));if(p().personalization)target.append(el('p',{class:'dyd-project__status'},p().personalization.layers.length+' editable text/logo layers \u00B7 original artwork retained.'));}\n   if(good)checkbox('I approve this flat artwork for this project.',!!project.approvals.artwork,async value=>{if(value){await approve('artwork');message('Artwork approved. Next, choose where to preview it.');}else{p().fit='exact-full-artwork-'+Date.now();await save();}render();},target);\n   actions(()=>navigate(3),!!project.approvals.artwork&&good,previewLabel(p()),'\u2190 Change cover or artwork');\n  }).catch(error);\n }\n function drawPanorama(parent,img,{printReview=false}={}){\n  const continuous=p().workflow==='continuous',d=continuous?null:dimensions(p().covers[0]),map=continuous?layout(p()):{width:d[0],height:d[1],panels:[{x:0,w:d[0],h:d[1],label:'Cover 1'}]},c=el('canvas',{'aria-label':continuous?'Print boundaries and unprinted wall spaces':'Printed cover boundary'}),scale=Math.min(1200/map.width,1400/map.height);c.width=Math.max(1,Math.round(map.width*scale));c.height=Math.max(1,Math.round(map.height*scale));const ctx=c.getContext('2d');ctx.drawImage(img,0,0,c.width,c.height);const sx=c.width/map.width,sy=c.height/map.height;\n  map.panels.forEach((panel,i)=>{const x=panel.x*sx,y=(map.height-panel.h)*sy,w=panel.w*sx,h=panel.h*sy;if(panel.h<map.height){ctx.fillStyle='#e9a23288';ctx.fillRect(x,0,w,y);}if(i<map.panels.length-1){const gap=map.panels[i+1].x-panel.x-panel.w;ctx.fillStyle='#e9a23288';ctx.fillRect((panel.x+panel.w)*sx,0,gap*sx,c.height);}ctx.strokeStyle='#26d9ef';ctx.lineWidth=4;ctx.strokeRect(x+2,y+2,Math.max(0,w-4),Math.max(0,h-4));ctx.fillStyle='#142941';ctx.fillRect(x+5,y+5,Math.min(110,Math.max(0,w-10)),28);ctx.fillStyle='white';ctx.font='16px sans-serif';ctx.fillText(panel.label,x+12,y+25,Math.max(1,w-24));});c.className='dyd-project__art';parent.append(c);\n  if(printReview){const legend=el('div',{class:'dyd-project__status','data-print-guide-legend':''});legend.append(el('p',{},continuous?'Blue outlines: printed covers. Amber areas: not printed.':'Blue outline: the complete printed cover.'));map.panels.forEach((panel,i)=>{const cover=p().covers[i],size=cover.customSize!==undefined?customSizeText(cover):dimensions(cover).join(' \u00D7 ')+' '+(cover.product==='front'?'in':'ft');legend.append(el('p',{},panel.label+' \u00B7 Print size: '+size));if(continuous&&i<map.panels.length-1)legend.append(el('p',{},'Space between '+panel.label.toLowerCase()+' and '+map.panels[i+1].label.toLowerCase()+': '+p().gaps[i]+' '+p().units+' \u00B7 Not printed'));});legend.append(el('small',{},'Guide lines and labels are for review only; they are not added to your printed artwork.'));parent.append(legend);}else parent.append(el('p',{class:'dyd-project__status'},'Cyan outlines = printed covers. Amber areas = wall gaps or space above shorter doors, deliberately excluded from the printed covers.'));\n }\n function eligibleScenes(){if(p().workflow==='continuous')return locationScenes(continuousScenes(p(),cfg.continuous));const c=p().covers[0],d=dimensions(c),family=c.product==='front'?'FrontDoor':d?.[0]<=10?'OneCar':'TwoCar';return c.product==='front'?cfg.scenes.filter(s=>s.family===family):locationScenes(cfg.scenes.filter(s=>s.family===family));}\n function chooseScene(){if(p().scene&&!selectingPreview){fitPreview();return;}title(previewLabel(p()),'Choose a matching sample scene, or use your own house photo. Scene location does not change your selected mount or fastening.');if(!project.approvals.artwork){panel.append(button('Review artwork first',()=>navigate(2),true));return;}\n  const frontDoor=p().workflow==='single'&&p().covers[0].product==='front',photo=frontDoor?'https://cdn.shopify.com/s/files/1/0508/5423/2247/files/dyd-front-door-own-home-photo-guide.jpg?v=1792178014':'https://cdn.shopify.com/s/files/1/0508/5423/2247/files/custom-garage-door-photo-upload-example.png?v=1789136616';\n  const own=el('section',{class:'dyd-own-home','aria-label':'Preview on your own home'}),visual=el('img',{src:photo,alt:frontDoor?'Homeowner photographing her front door':'Couple photographing their garage door',width:frontDoor?'1200':'1145',height:frontDoor?'800':'1374',decoding:'async',class:'dyd-own-home__photo'}),content=el('div',{class:'dyd-own-home__content'});\n  content.append(el('span',{class:'dyd-own-home__badge'},'YOUR HOME. YOUR DESIGN.'),el('h3',{},'Preview on your own '+doorLabel(p())),el('p',{},'Upload a clear photo. We will look for your door and place the artwork for you to check.'));\n  const file=filePicker('Or upload a photo of your own house','house',async a=>{p().house={id:a.id,kind:'asset'};p().scene='own-house';p().corners=null;p().houseDetection=null;p().preview=null;houseImage=await image(a.reviewUrl,true);selectingPreview=false;await navigate(3);},content);file.parentElement.className='dyd-own-home__file';file.parentElement.setAttribute('aria-hidden','true');file.parentElement.querySelectorAll('button').forEach(b=>b.tabIndex=-1);file.tabIndex=-1;\n  content.append(button('Upload my home photo',()=>file.click(),true),el('p',{class:'dyd-own-home__tip'},'A straight-on photo works best. Include the full door and its edges. JPG, PNG or WebP. On your phone, you can choose a photo or use the camera when offered.'));\n  own.append(visual,content);panel.append(own,el('h3',{class:'dyd-own-home__alternative'},'Or explore our sample scenes'));\n  if(!eligibleScenes().length)panel.append(el('p',{class:'dyd-project__hint'},'There is no approved sample scene for your selected location and layout yet. Use your own house photo above.'));const gallery=el('div',{class:'dyd-project__gallery'});panel.append(gallery);eligibleScenes().forEach(s=>{const card=el('div',{class:'dyd-project__card'}),img=el('img',{src:s.url,alt:s.label,loading:'lazy'});card.append(img,button(s.label,async()=>{p().scene=s.id;p().house=null;p().corners=null;p().preview=null;houseImage=null;selectingPreview=false;await navigate(3);},true));gallery.append(card);});actions(null);\n }\n function defaultCorners(w,h,n){return Array.from({length:n},(_,i)=>{const x=w*(.15+i*.7/n),y=h*.3,cw=w*.55/n,ch=h*.45;return [[x,y],[x+cw,y],[x+cw,y+ch],[x,y+ch]];});}\n function projectPixels(source,dest,quad,crop){const inverse=homography(quad).inverse,x0=Math.max(0,Math.floor(Math.min(...quad.map(q=>q[0])))),y0=Math.max(0,Math.floor(Math.min(...quad.map(q=>q[1])))),x1=Math.min(dest.w,Math.ceil(Math.max(...quad.map(q=>q[0])))),y1=Math.min(dest.h,Math.ceil(Math.max(...quad.map(q=>q[1]))));for(let y=y0;y<y1;y++)for(let x=x0;x<x1;x++){const [u,v]=inverse(x+.5,y+.5);if(u<0||u>=1||v<0||v>=1)continue;const sx=Math.max(crop.x,Math.min(crop.x+crop.w-1,crop.x+u*crop.w-.5)),sy=Math.max(crop.y,Math.min(crop.y+crop.h-1,crop.y+v*crop.h-.5)),ix=Math.floor(sx),iy=Math.floor(sy),jx=Math.min(source.w-1,Math.ceil(sx)),jy=Math.min(source.h-1,Math.ceil(sy)),fx=sx-ix,fy=sy-iy,points=[[ix,iy,(1-fx)*(1-fy)],[jx,iy,fx*(1-fy)],[ix,jy,(1-fx)*fy],[jx,jy,fx*fy]],rgba=[0,0,0,0];for(const [a,b,k]of points)for(let c=0;c<4;c++)rgba[c]+=source.pixels[(b*source.w+a)*4+c]*k;const i=(y*dest.w+x)*4,alpha=rgba[3]/255;for(let c=0;c<3;c++)dest.pixels[i+c]=Math.round(rgba[c]*alpha+dest.pixels[i+c]*(1-alpha));dest.pixels[i+3]=Math.round(rgba[3]+dest.pixels[i+3]*(1-alpha));}return dest;}\n const artworkPixels=new WeakMap();\n function warp(ctx,img,quad,crop){let source=artworkPixels.get(img);if(!source){const c=document.createElement('canvas');c.width=img.naturalWidth;c.height=img.naturalHeight;const g=c.getContext('2d');g.drawImage(img,0,0);source={w:c.width,h:c.height,pixels:g.getImageData(0,0,c.width,c.height).data};artworkPixels.set(img,source);}const data=ctx.getImageData(0,0,ctx.canvas.width,ctx.canvas.height);projectPixels(source,{w:data.width,h:data.height,pixels:data.data},quad,crop);ctx.putImageData(data,0,0);}\n async function fitPreview(){title(previewLabel(p()),p().house?'Check the artwork placement on your door. You can adjust the corners whenever needed.':'Your artwork is fitted onto the selected '+doorLabel(p())+' scene. Review the complete arrangement before checking the printed panels.');panel.append(button('Change sample or home photo',()=>{selectingPreview=true;chooseScene();}));if(p().house&&p().corners&&p().houseDetection?.result?.status!=='detected')panel.append(button('Find my door automatically',()=>{undo.push(structuredClone(p().corners));p().corners=null;p().houseDetection=null;p().preview=null;render();}));if(!p().artwork||!project.approvals.artwork){panel.append(button('Review artwork first',()=>navigate(2),true));return;}\n  const token=loadToken,previewProject=project;const previewContext=()=>stableReviewJson({project:project.id,artwork:p().artwork,artworkRevision:p().artworkRevision,personalization:p().personalization,covers:p().covers,workflow:p().workflow,gaps:p().gaps,units:p().units,fit:p().fit,house:p().house,scene:p().scene,corners:p().corners,renderer:p().previewRenderer});const initialPreview=p().preview,initialPreviewContext=previewContext();try{const art=await loadArt();if(!fits(p(),art.naturalWidth,art.naturalHeight)){panel.append(el('p',{class:'dyd-project__hint'},'Artwork proportions do not match this cover. Adaptation is required before a fitted preview can be approved.'),button('Fit artwork to this layout',()=>openArtworkFit(),true),button('Change artwork or size',()=>navigate(0)));return;}\n   const scene=eligibleScenes().find(s=>s.id===p().scene);let base;\n   if(p().house){if(!houseImage){const a=await api('asset',null,p().house);houseImage=await image(a.reviewUrl,true);}base=houseImage;}else if(scene)base=await image(scene.url);else{panel.append(button('Choose a preview',()=>navigate(3),true));return;}\n   let detection=null;const expectedDoors=p().workflow==='continuous'?p().covers.length:1;\n   if(p().house&&!p().corners){\n    const houseId=p().house.id,key=houseId+':'+(p().covers[0]?.product||'garage')+':'+expectedDoors+':customer-placement-v2',activeProject=project;\n    if(p().houseDetection?.key===key)detection=p().houseDetection.result;\n    else{const finding=el('p',{role:'status',class:'dyd-project__hint'},'Finding your door and fitting the artwork\u2026');panel.append(finding);busy=true;panel.setAttribute('aria-busy','true');try{await save();detection=await api('detect-doors',{id:project.id,revision:project.revision,houseId});if(detection.houseId!==houseId)detection=null;}catch{detection=null;}finally{busy=false;if(token===loadToken){finding.remove();panel.removeAttribute('aria-busy');}}\n     if(token!==loadToken||project!==activeProject||p().house?.id!==houseId)return;p().houseDetection={key,result:detection||{status:'manual',doors:[]}};\n    }\n   }\n   if(token!==loadToken)return;canvas=el('canvas',{'aria-label':'Exact artwork composited on your chosen scene'});canvas.width=base.naturalWidth;canvas.height=base.naturalHeight;\n   const bg=document.createElement('canvas');bg.width=canvas.width;bg.height=canvas.height;const bctx=bg.getContext('2d');bctx.drawImage(base,0,0);\n   if(!p().house&&p().workflow==='single'){const src=bctx.getImageData(0,0,bg.width,bg.height),corrected=window.DYDSceneGeometry.correct({w:bg.width,h:bg.height,pixels:src.data},scene.box,art.naturalWidth/art.naturalHeight);bctx.putImageData(new ImageData(new Uint8ClampedArray(corrected.pixels),bg.width,bg.height),0,0);const [x,y,w,h]=corrected.box;p().corners=[[[x,y],[x+w,y],[x+w,y+h],[x,y+h]]];panel.append(el('p',{class:'dyd-project__status'},'This review sample corrects the scene opening geometry to match your cover. The house geometry changes; your original artwork stays unchanged.'));}\n   const detectedGroups=p().house?detectedDoorGroups(detection,canvas.width,canvas.height,expectedDoors):[];let choiceRequired=detectedGroups.length>1,autoPlaced=detectedGroups.length===1,fitEditing=!!p().house&&!autoPlaced&&!choiceRequired;\n   if(p().house&&!p().corners)p().corners=autoPlaced?structuredClone(detectedGroups[0].corners):defaultCorners(canvas.width,canvas.height,expectedDoors);\n   else if(!p().corners)p().corners=scene.masks.map(m=>m.corners.map(q=>q.slice()));\n   let fitQuestion=null,fitHint=null,guide=null;\n   if(p().house){fitQuestion=el('section',{class:'dyd-project__card dyd-home-fit-review','aria-label':'Check your door placement'});fitQuestion.append(el('h3',{},choiceRequired?'Which door would you like to preview?':autoPlaced?'Does this fit your door?':'Adjust the fit on your door'),el('p',{class:'dyd-project__status'},choiceRequired?'Choose a detected opening below.':autoPlaced?'Check all four edges, then choose Looks good or Adjust corners.':'We could not confidently place this photo automatically. Move the four numbered corners onto your door.'));panel.append(fitQuestion);\n    if(choiceRequired){const choices=el('div',{class:'dyd-project__tools'});for(const group of detectedGroups){const label=expectedDoors===1?'Use door '+group.first:'Use doors '+group.first+' to '+(group.first+expectedDoors-1);choices.append(button(label,()=>{p().corners=structuredClone(group.corners);p().preview=null;choiceRequired=false;autoPlaced=true;fitEditing=false;choices.remove();fitQuestion.querySelector('h3').textContent='Does this fit your door?';fitQuestion.querySelector('p').textContent='Check all four edges, then choose Looks good or Adjust corners.';handles();draw();showFitting(false);const cta=panel.querySelector('.dyd-step-cta');if(cta)cta.disabled=false;save().catch(error);}));}fitQuestion.append(choices);}\n    fitQuestion.append(button('Adjust corners',()=>{choiceRequired=false;fitEditing=true;fitQuestion.querySelector('h3').textContent='Adjust the fit on your door';handles();draw();showFitting(true);const cta=panel.querySelector('.dyd-step-cta');if(cta){cta.disabled=false;cta.textContent='Save adjusted preview';}}));\n   }\n\n   if(p().workflow==='continuous'&&!p().house){const src=bctx.getImageData(0,0,bg.width,bg.height),corrected=window.DYDSceneGeometry.continuous({w:bg.width,h:bg.height,pixels:src.data},scene,layout(p()));bctx.putImageData(new ImageData(new Uint8ClampedArray(corrected.pixels),bg.width,bg.height),0,0);p().corners=corrected.boxes.map(([x,y,w,h])=>[[x,y],[x+w,y],[x+w,y+h],[x,y+h]]);panel.append(el('p',{class:'dyd-project__hint'},'Sample house geometry is adjusted to your selected door sizes and measured wall gaps. This changes the scene, not your artwork. Review this new composite before approval.'));\n   }\n   const stage=el('div',{class:'dyd-project__stage'}),wrap=el('div');wrap.style.position='relative';wrap.append(canvas);if(p().previewRenderer!=='continuous-projective-v2'){p().previewRenderer='continuous-projective-v2';p().preview=null;project.approvals.preview=false;}stage.append(wrap);panel.append(stage);\n   const svg=document.createElementNS('http://www.w3.org/2000/svg','svg');svg.setAttribute('viewBox',`0 0 ${canvas.width} ${canvas.height}`);svg.hidden=!fitEditing;svg.style.display=fitEditing?'block':'none';if(p().house)wrap.append(svg);\n   const previewCanvas=canvas,previewStatus=el('p',{class:'dyd-project__status',role:'status','aria-live':'polite'}),retryPreview=button(cfg.previewCopy.retry,()=>previewSaver.flush());retryPreview.hidden=true;panel.append(previewStatus,retryPreview);\n   const preparedPreviews=new Map();let previewSaver=null;\n   const currentPreviewKey=()=>token===loadToken&&project===previewProject&&stage.isConnected&&!choiceRequired&&p().corners?.length&&p().corners.every(validQuad)?previewContext():null;\n   const seedKey=initialPreview&&initialPreviewContext===previewContext()?previewContext():null;if(!seedKey)p().preview=null;\n   previewSaver=createDraftPreviewSaver({current:currentPreviewKey,seed:seedKey,status:(state,e)=>{if(token!==loadToken||project!==previewProject)return;retryPreview.hidden=state!=='error';previewStatus.textContent=cfg.previewCopy[state]||'';if(e)previewStatus.textContent+=' '+e.message;},write:async key=>{\n    // Capture the rendered pixels before yielding; never attach an old render to new choices.\n    let ref=preparedPreviews.get(key);if(!ref){const png=previewCanvas.toDataURL('image/png').split(',')[1],a=await api('upload',{kind:'preview',png});ref={id:a.asset.id,kind:'asset'};preparedPreviews.set(key,ref);}\n    if(currentPreviewKey()!==key)return false;p().preview=ref;project.approvals.preview=false;project.approvals.final=false;await save();return currentPreviewKey()===key&&p().preview?.id===ref.id;\n   }});\n   function draw(){const ctx=canvas.getContext('2d');ctx.clearRect(0,0,canvas.width,canvas.height);ctx.drawImage(bg,0,0);if(choiceRequired){ctx.strokeStyle='#215ac6';ctx.lineWidth=Math.max(2,canvas.width/500);ctx.font=Math.max(16,canvas.width/55)+'px sans-serif';for(const [i,q] of detectedGroups.map(g=>g.corners).flat().filter((q,i,all)=>all.findIndex(v=>JSON.stringify(v)===JSON.stringify(q))===i).entries()){ctx.beginPath();q.forEach((v,j)=>j?ctx.lineTo(...v):ctx.moveTo(...v));ctx.closePath();ctx.stroke();ctx.fillStyle='#17354b';ctx.fillText(String(i+1),q[0][0]+8,q[0][1]+28);}return;}if(p().workflow==='continuous'){const m=layout(p());m.panels.forEach((d,i)=>{if(validQuad(p().corners[i]))warp(ctx,art,p().corners[i],{x:d.x/m.width*art.naturalWidth,y:(m.height-d.h)/m.height*art.naturalHeight,w:d.w/m.width*art.naturalWidth,h:d.h/m.height*art.naturalHeight});});}else if(validQuad(p().corners[0]))warp(ctx,art,p().corners[0],{x:0,y:0,w:art.naturalWidth,h:art.naturalHeight});if(previewSaver)previewSaver.queue();}\n   const cornerNodes=[],cornerPolygons=[],cornerNames=['top left','top right','bottom right','bottom left'],selectionLabel=el('p',{class:'dyd-fit-selection',role:'status','aria-live':'polite'});let activeCorner={door:0,index:0},adjustingCorner=false;\n   function svgNode(tag,attrs={}){const n=document.createElementNS(svg.namespaceURI,tag);for(const [k,v]of Object.entries(attrs))n.setAttribute(k,String(v));return n;}\n   function syncHandles(){const scale=(svg.getBoundingClientRect().width||wrap.getBoundingClientRect().width)/canvas.width||1;cornerPolygons.forEach((poly,door)=>poly.setAttribute('points',p().corners[door].map(v=>v.join(',')).join(' ')));for(const node of cornerNodes){const v=p().corners[node.door][node.index],active=activeCorner.door===node.door&&activeCorner.index===node.index;node.hit.setAttribute('cx',v[0]);node.hit.setAttribute('cy',v[1]);node.hit.setAttribute('r',22/scale);node.hit.setAttribute('aria-valuenow',Math.round(v[0]));node.hit.setAttribute('aria-valuetext',Math.round(v[0])+', '+Math.round(v[1]));node.visual.setAttribute('transform',`translate(${v[0]} ${v[1]}) scale(${1/scale})`);node.visual.setAttribute('data-active',String(active));node.visual.classList.toggle('has-focus',document.activeElement===node.hit);node.normal.style.display=active&&adjustingCorner?'none':'block';node.hand.style.display=active&&adjustingCorner?'block':'none';}const door=p().corners.length===3?['Left door','Center door','Right door'][activeCorner.door]:p().corners.length===2?['Left door','Right door'][activeCorner.door]:'Your door';selectionLabel.textContent=door+' \u00B7 Corner '+(activeCorner.index+1)+' \u00B7 '+cornerNames[activeCorner.index];}\n   function selectCorner(door,index){activeCorner={door,index};syncHandles();}\n   const fitHistory=[];let fitUndoButton=null;\n   function rememberFit(corners=p().corners){fitHistory.push({corners:structuredClone(corners),zoom,choiceRequired,fitEditing,scrollLeft:stage.scrollLeft,scrollTop:stage.scrollTop});if(fitHistory.length>40)fitHistory.shift();if(fitUndoButton)fitUndoButton.disabled=false;}\n   function fitChanged(){p().preview=null;project.approvals.preview=false;project.approvals.final=false;}\n   function handles(){if(!p().house||choiceRequired)return;svg.replaceChildren();cornerNodes.length=0;cornerPolygons.length=0;p().corners.forEach((q,door)=>{const poly=svgNode('polygon',{class:'dyd-corner-outline','vector-effect':'non-scaling-stroke'});cornerPolygons.push(poly);svg.append(poly);q.forEach((v,i)=>{const h=svgNode('circle',{class:'dyd-corner-hit',tabindex:0,role:'slider','aria-valuemin':0,'aria-valuemax':canvas.width,'aria-label':`Door ${door+1}, ${cornerNames[i]} corner`}),visual=svgNode('g',{class:'dyd-corner-marker','data-door':door+1,'data-corner':i+1,'aria-hidden':'true','pointer-events':'none'}),normal=svgNode('g'),dot=svgNode('circle',{r:6.4,class:'dyd-corner-dot'}),number=svgNode('text',{'text-anchor':'middle','dominant-baseline':'central',class:'dyd-corner-number'}),hand=svgNode('g',{class:'dyd-corner-hand'});number.textContent=String(i+1);normal.append(dot,number);hand.append(svgNode('image',{class:'dyd-corner-pinch',href:cornerHandUrl,x:-6.62,y:-11.85,width:40,height:26.667,preserveAspectRatio:'xMidYMid meet'}));visual.append(normal,hand);cornerNodes.push({door,index:i,hit:h,visual,normal,hand});h.addEventListener('focus',()=>selectCorner(door,i));h.addEventListener('blur',()=>{adjustingCorner=false;syncHandles();});h.addEventListener('keyup',e=>{if(e.key.startsWith('Arrow')){adjustingCorner=false;syncHandles();}});let dragTarget=null,dragBefore=null,dragMoved=false;h.addEventListener('pointerdown',e=>{if(busy)return;e.preventDefault();const rect=svg.getBoundingClientRect();dragTarget=cornerNodes.reduce((best,node)=>{const q=p().corners[node.door][node.index],distance=Math.hypot(rect.left+q[0]/canvas.width*rect.width-e.clientX,rect.top+q[1]/canvas.height*rect.height-e.clientY);return !best||distance<best.distance?{...node,distance}:best;},null);selectCorner(dragTarget.door,dragTarget.index);dragTarget.hit.focus({preventScroll:true});adjustingCorner=true;syncHandles();dragBefore=structuredClone(p().corners);dragMoved=false;h.setPointerCapture(e.pointerId);h.dataset.drag='yes';});h.addEventListener('pointermove',e=>{if(!h.dataset.drag||!dragTarget)return;const rect=svg.getBoundingClientRect(),next=[Math.max(0,Math.min(canvas.width,(e.clientX-rect.left)/rect.width*canvas.width)),Math.max(0,Math.min(canvas.height,(e.clientY-rect.top)/rect.height*canvas.height))],old=p().corners[dragTarget.door][dragTarget.index];if(next[0]===old[0]&&next[1]===old[1])return;if(!dragMoved){rememberFit(dragBefore);dragMoved=true;}p().corners[dragTarget.door][dragTarget.index]=next;p().preview=null;syncHandles();draw();});function endDrag(){if(!h.dataset.drag)return;delete h.dataset.drag;const changed=dragMoved;dragTarget=null;dragBefore=null;dragMoved=false;adjustingCorner=false;syncHandles();if(changed)save().catch(error);}h.addEventListener('pointerup',endDrag);h.addEventListener('pointercancel',endDrag);h.addEventListener('lostpointercapture',endDrag);h.addEventListener('keydown',e=>{const dx={ArrowLeft:-1,ArrowRight:1}[e.key]||0,dy={ArrowUp:-1,ArrowDown:1}[e.key]||0;if(!dx&&!dy||busy)return;e.preventDefault();selectCorner(door,i);adjustingCorner=true;rememberFit();const point=p().corners[door][i];point[0]=Math.max(0,Math.min(canvas.width,point[0]+dx*(e.shiftKey?10:2)));point[1]=Math.max(0,Math.min(canvas.height,point[1]+dy*(e.shiftKey?10:2)));p().preview=null;syncHandles();draw();save().catch(error);});svg.append(h,visual);});});syncHandles();}\n   const tools=el('div',{class:'dyd-project__tools'});let zoom=1;\n   function fitScreen(){const viewportHeight=window.visualViewport?.height||innerHeight,availableHeight=Math.max(180,viewportHeight*.60),width=Math.min(stage.clientWidth,Math.max(1,availableHeight-2)*canvas.width/canvas.height);wrap.style.width=Math.max(1,Math.floor(width*zoom))+'px';stage.style.maxHeight=Math.floor(availableHeight)+'px';syncHandles();}\n   function viewFits(){return zoom===1&&stage.scrollLeft===0&&stage.scrollTop===0;}\n   function restoreView(){fitScreen();stage.scrollLeft=0;stage.scrollTop=0;}\n   function zoomTo(next){if(busy||next===zoom)return;rememberFit();zoom=next;fitScreen();}\n   fitScreen();const resize=new ResizeObserver(()=>{if(stage.isConnected)fitScreen();else resize.disconnect();});resize.observe(stage);\n   const fitScreenButton=button('Fit to screen',()=>{if(busy)return;if(!viewFits())rememberFit();zoom=1;restoreView();message('The complete preview is fitted to the screen. Your artwork and cover dimensions are unchanged.');});\n   fitUndoButton=button('Undo',()=>{if(busy)return;const previous=fitHistory.pop();if(!previous)return;const changed=JSON.stringify(p().corners)!==JSON.stringify(previous.corners);p().corners=structuredClone(previous.corners);zoom=previous.zoom;choiceRequired=previous.choiceRequired;fitEditing=previous.fitEditing;if(changed)fitChanged();handles();draw();showFitting(fitEditing);fitScreen();stage.scrollLeft=previous.scrollLeft;stage.scrollTop=previous.scrollTop;fitUndoButton.disabled=fitHistory.length===0;const cta=panel.querySelector('.dyd-step-cta');if(cta)cta.disabled=choiceRequired;if(changed)save().catch(error);message('Last preview adjustment undone.');});fitUndoButton.disabled=true;\n   tools.append(fitScreenButton,button('Zoom +',()=>zoomTo(Math.min(3,zoom+.25))),button('Zoom \u2212',()=>zoomTo(Math.max(1,zoom-.25))),fitUndoButton);if(p().house){fitHint=el('p',{class:'dyd-project__hint'},'Adjust every door: 1 top-left, 2 top-right, 3 bottom-right, 4 bottom-left. Press and hold a numbered corner to show the hand, then drag it onto the opening. Release to set the point and hide the hand; press it again to readjust. You can also use keyboard arrow keys. Zoom in for accuracy; hide the fitting guides to inspect the complete mockup.');panel.append(fitHint);guide=button('Hide fitting guides',()=>{const editing=svg.style.display==='none';svg.hidden=!editing;svg.style.display=editing?'block':'none';guide.textContent=editing?'Hide fitting guides':'Adjust door corners';guide.setAttribute('aria-pressed',String(editing));selectionLabel.hidden=!editing;syncHandles();});guide.setAttribute('aria-pressed','true');tools.prepend(guide);}panel.append(tools);if(p().house)panel.append(selectionLabel);draw();handles();\n   function showFitting(editing){if(!p().house)return;svg.hidden=!editing;svg.style.display=editing?'block':'none';selectionLabel.hidden=!editing;if(fitHint)fitHint.hidden=!editing;if(guide){guide.textContent=editing?'Hide fitting guides':'Adjust door corners';guide.setAttribute('aria-pressed',String(editing));}syncHandles();}\n   if(p().house)showFitting(fitEditing);if(seedKey)previewStatus.textContent=cfg.previewCopy.saved;\n\n   const allowed=!choiceRequired;actions(async()=>{if(choiceRequired)throw Error('Choose a door or adjust the corners first');if(!p().corners.every(validQuad))throw Error('Each door needs four corners forming a valid rectangle or perspective shape');busy=true;panel.setAttribute('aria-busy','true');message('Saving your fitted preview\u2026');try{if(!await previewSaver.flush()||!p().preview)throw Error(cfg.previewCopy.changed);busy=false;await navigate(4);}finally{busy=false;panel.removeAttribute('aria-busy');}},allowed,'Confirm mockup & review printed '+(p().covers.reduce((total,c)=>total+(Number(c.quantity)||1),0)===1?'cover':'covers'));\n  }catch(e){error(e);}\n }\n const stableReviewJson=value=>JSON.stringify((function sort(v){return Array.isArray(v)?v.map(sort):v&&typeof v==='object'?Object.fromEntries(Object.keys(v).sort().map(k=>[k,sort(v[k])])):v;})(value));\n function finalReviewContext(value){return Object.fromEntries(['artworkRevision','artwork','personalization','covers','workflow','gaps','units','fit','preview','scene','corners','previewRenderer','panelsReviewed','panelReviews','gapAcknowledged'].map(k=>[k,value[k]??null]));}\n function panelReady(){return !!p().panelsReviewed&&(p().workflow!=='continuous'||!!p().gapAcknowledged&&p().covers.every(c=>p().panelReviews?.[c.id]));}\n function addPanelGallery(parent,art,interactive=false){const map=p().workflow==='continuous'?layout(p()):null,grid=el('div',{class:'dyd-project__gallery'});parent.append(grid);p().covers.forEach((c,i)=>{const card=el('section',{class:'dyd-project__card'}),cn=el('canvas'),d=map?.panels[i];const crop=map?printPixelCrop(p(),art.naturalWidth,art.naturalHeight,i):{x:0,y:0,w:art.naturalWidth,h:art.naturalHeight};cn.width=Math.max(1,Math.round(crop.w));cn.height=Math.max(1,Math.round(crop.h));cn.getContext('2d').drawImage(art,crop.x,crop.y,crop.w,crop.h,0,0,cn.width,cn.height);cn.className='dyd-project__art';cn.style.outline='2px solid #215ac6';cn.style.outlineOffset='-2px';cn.setAttribute('data-printed-cover-boundary','');cn.setAttribute('aria-label',(d?.label||'Cover '+(i+1))+' printed artwork');card.append(el('h3',{},d?.label||'Cover '+(i+1)),cn,el('p',{},(c.customSize!==undefined?'Custom '+customSizeText(c):currentVariant(c)?.title||'Choose size')+' \u00B7 '+c.option+(c.customSize!==undefined?' \u00B7 '+customFinishingText(c):'')+' \u00B7 '+money(c)+' \u00D7 '+c.quantity));if(interactive)checkbox('I reviewed the '+(d?.label||'cover')+' printed artwork.',map?!!p().panelReviews?.[c.id]:!!p().panelsReviewed,value=>{if(map){p().panelReviews={...(p().panelReviews||{}),[c.id]:value};p().panelsReviewed=p().covers.every(c=>p().panelReviews[c.id]);}else p().panelsReviewed=value;project.approvals.set=false;project.approvals.final=false;updatePanelContinue();save().catch(error);},card);grid.append(card);});}\n function updatePanelContinue(){const cta=panel.querySelector('.dyd-step-cta');if(cta)cta.disabled=!panelReady();}\n function printReviewKey(value=p()){return project.id+':'+stableReviewJson({context:finalReviewContext(value),panels:value.panels||null,fingerprint:value.panelPreparationFingerprint||null});}\n function printFilesReviewed(){return p().workflow!=='continuous'||verifiedPrintReview===printReviewKey();}\n async function nativePrintArtwork(){const ref=p().personalization?.rendered||p().artwork,meta=await api('asset-original',null,ref),art=await image(meta.originalUrl,true);if(!fits(p(),art.naturalWidth,art.naturalHeight))throw Error('The original artwork still includes canvas padding or uses an older layout. Review the artwork area first; no new Design creation is needed for planned padding.');return art;}\nfunction joinPrintBytes(parts){const out=new Uint8Array(parts.reduce((n,p)=>n+p.length,0));let o=0;for(const p of parts){out.set(p,o);o+=p.length;}return out;}\nconst paeth=(a,b,c)=>{const p=a+b-c,aa=Math.abs(p-a),bb=Math.abs(p-b),cc=Math.abs(p-c);return aa<=bb&&aa<=cc?a:bb<=cc?b:c;};\nasync function decodePrintPng(bytes) {\n if(bytes.length>25000000||bytes.length<33||bytes[0]!==137||new TextDecoder().decode(bytes.subarray(1,4))!=='PNG')throw new Error('unsupported_image');\n const view=new DataView(bytes.buffer,bytes.byteOffset,bytes.byteLength),w=view.getUint32(16),h=view.getUint32(20),type=bytes[25],bpp=type===2?3:type===6?4:0;\n if(!w||!h||w*h>4200000||bytes[24]!==8||!bpp||bytes[28]!==0)throw new Error('unsupported_image');\n const parts=[];for(let o=8;o+12<=bytes.length;){const n=view.getUint32(o),name=new TextDecoder().decode(bytes.subarray(o+4,o+8));if(o+n+12>bytes.length)throw new Error('unsupported_image');if(name==='IDAT')parts.push(bytes.subarray(o+8,o+8+n));o+=n+12;}\n const raw=new Uint8Array(await new Response(new Blob([joinPrintBytes(parts)]).stream().pipeThrough(new DecompressionStream('deflate'))).arrayBuffer());\n const stride=w*bpp;if(raw.length!==(stride+1)*h)throw new Error('unsupported_image');\n const pixels=new Uint8Array(stride*h);let r=0;\n for(let y=0;y<h;y++){const f=raw[r++];if(f>4)throw new Error('unsupported_image');for(let x=0;x<stride;x++){const i=y*stride+x,a=x>=bpp?pixels[i-bpp]:0,b=y?pixels[i-stride]:0,c=y&&x>=bpp?pixels[i-stride-bpp]:0;pixels[i]=(raw[r++]+(f===1?a:f===2?b:f===3?Math.floor((a+b)/2):f===4?paeth(a,b,c):0))&255;}}\n const rgba=new Uint8Array(w*h*4);for(let i=0,j=0;i<pixels.length;i+=bpp,j+=4){rgba[j]=pixels[i];rgba[j+1]=pixels[i+1];rgba[j+2]=pixels[i+2];rgba[j+3]=bpp===4?pixels[i+3]:255;}\n return {w,h,pixels:rgba};\n}\nasync function verifiedPrintOriginal(ref,expectedHash){\n const meta=await api('asset-original',null,ref);\n if(expectedHash&&meta.sha256!==expectedHash)throw Error('A saved print file checksum could not be confirmed.');\n const response=await fetch(safeImage(meta.originalUrl),{credentials:'omit',cache:'no-store',redirect:'error',signal:AbortSignal.timeout(60000)});\n if(!response.ok)throw Error('An original print file could not be downloaded. Please retry.');\n const bytes=new Uint8Array(await response.arrayBuffer());\n const digest=Array.from(new Uint8Array(await crypto.subtle.digest('SHA-256',bytes)),b=>b.toString(16).padStart(2,'0')).join('');\n if(digest!==meta.sha256)throw Error('A saved print file checksum could not be confirmed.');\n const original=await decodePrintPng(bytes);\n if(original.w!==meta.width||original.h!==meta.height)throw Error('A print file has unexpected dimensions.');\n return {meta,original};\n}\nfunction assertPrintCrop(source,printed,crop){\n if(printed.w!==crop.w||printed.h!==crop.h)throw Error('A print file has unexpected dimensions.');\n for(let y=0;y<crop.h;y++)for(let x=0;x<crop.w*4;x++)if(source.pixels[((crop.y+y)*source.w+crop.x)*4+x]!==printed.pixels[y*crop.w*4+x])throw Error('The prepared print file differs from the artwork you reviewed. Reopen artwork review; no approval was saved.');\n}\n async function checkPreparedPrintFiles(art){\n  if(!Array.isArray(p().panels)||p().panels.length!==p().covers.length||!p().panelPreparationFingerprint)throw Error('The prepared print files could not be confirmed.');\n  const source=await verifiedPrintOriginal(p().personalization?.rendered||p().artwork),images=new Map();\n  if(source.original.w!==art.naturalWidth||source.original.h!==art.naturalHeight)throw Error('The artwork changed. Reopen artwork review before continuing.');\n  for(const [i,c]of p().covers.entries()){\n   const ref=p().panels[i],crop=printPixelCrop(p(),source.original.w,source.original.h,i);\n   if(ref.coverId!==c.id||ref.kind!=='asset'||ref.width!==crop.w||ref.height!==crop.h||ref.sourceArtwork?.id!==p().artwork.id)throw Error('The print files do not match your current cover layout.');\n   const file=await verifiedPrintOriginal({kind:ref.kind,id:ref.id},ref.sha256);assertPrintCrop(source.original,file.original,crop);\n   const printed=await image(file.meta.originalUrl,true);if(printed.naturalWidth!==crop.w||printed.naturalHeight!==crop.h)throw Error('A print file has unexpected dimensions.');images.set(ref.id,printed);\n  }\n  verifiedPrintImages.clear();for(const [id,img]of images)verifiedPrintImages.set(id,img);verifiedPrintReview=printReviewKey();\n }\n function appendVerifiedPrintFiles(parent){if(p().workflow!=='continuous'||!p().panels?.length||!printFilesReviewed())return false;const grid=el('div',{class:'dyd-project__gallery','data-verified-print-files':''});for(const [i,ref]of (p().panels||[]).entries()){const img=verifiedPrintImages.get(ref.id);if(!img)return false;const card=el('section',{class:'dyd-project__card'});card.append(el('h3',{},ref.label||'Cover '+(i+1)),el('img',{src:img.src,alt:'Verified original print file for '+(ref.label||'cover '+(i+1)),class:'dyd-project__art'}),el('p',{},'Verified print file \u00B7 '+ref.width+' \u00D7 '+ref.height+' pixels'));grid.append(card);}parent.append(grid);return true;}\n function reviewPrintedPanels(){title(stepLabel(p(),4),p().workflow==='continuous'?'Review each cover and the excluded wall spaces. Print files are verified before final approval.':'Review the complete artwork that will be printed on your selected cover.');if(!p().preview){panel.append(button('Fit your '+doorLabel(p())+' preview first',()=>navigate(3),true));return;}const target=el('div'),token=loadToken;panel.append(target);\n  nativePrintArtwork().then(art=>{if(token!==loadToken)return;drawPanorama(target,art,{printReview:true});addPanelGallery(target,art,true);if(p().workflow==='continuous')checkbox('I checked the wall gaps and excluded areas: no essential subject or lettering is lost.',!!p().gapAcknowledged,value=>{p().gapAcknowledged=value;project.approvals.set=false;project.approvals.final=false;updatePanelContinue();save().catch(error);},target);\n   actions(async()=>{if(!panelReady())return;busy=true;const reviewInputs=[...target.querySelectorAll('input')];for(const input of reviewInputs)input.disabled=true;const status=el('p',{role:'status',class:'dyd-project__status'});target.append(status);status.textContent='Preparing and verifying your exact printed covers\u2026';const context=stableReviewJson(finalReviewContext(p()));try{await save();await saveQueue;if(p().workflow==='continuous'){const before=project.revision;let prepared;try{prepared=await api('prepare-panels',{id:project.id,revision:before});}catch(e){const latest=(await api('project',null,{id:project.id})).project;if(!latest||latest.revision<=before||stableReviewJson(finalReviewContext(latest.payload))!==context)throw e;prepared={project:latest};}project=prepared.project;if(stableReviewJson(finalReviewContext(p()))!==context)throw Error('The layout changed while print files were prepared. Review the current covers first.');await checkPreparedPrintFiles(art);}busy=false;await navigate(5);}catch(e){status.textContent='Print preparation was not confirmed. '+e.message+' Your design is saved.';if(!target.querySelector('[data-print-recovery]')){const back=button('Review artwork area',()=>navigate(2));back.dataset.printRecovery='';target.append(back);}throw e;}finally{busy=false;for(const input of reviewInputs)input.disabled=false;}},panelReady(),p().workflow==='continuous'?'Verify print files & continue':'Continue to final approval');\n  }).catch(e=>{if(token!==loadToken)return;target.replaceChildren(el('p',{class:'dyd-project__status',role:'status'},e.message),button('Review artwork area',()=>navigate(2),true),button('Review cover sizes',()=>navigate(0)));});\n }\n function reviewSet(){if(p().workflow==='continuous'&&!project.approvals.final&&!printFilesReviewed()){title('Verify your printed covers','Your artwork and mockup are saved. Verify the print files before final approval.');panel.append(button('Review & verify printed covers',()=>navigate(4),true));return;}const custom=hasCustomSize(p()),customOrderingPaused=custom&&!finalApprovalReady();title(customOrderingPaused?'Saved artwork & preview':'Final approval & cart',customOrderingPaused?'Your custom artwork and preview stay saved. Review them here while custom ordering is paused.':'Review your fitted '+doorLabel(p())+' preview and printed artwork together. Save your final confirmation before adding to cart.');addStandardCheckoutOption(panel);if(!p().preview||!panelReady()){panel.append(button('Review printed panels first',()=>navigate(4),true));return;}const token=loadToken,preview=el('div',{class:'dyd-final-preview'});panel.append(preview);api('asset',null,p().preview).then(a=>image(a.reviewUrl,true)).then(img=>{if(token===loadToken)preview.append(el('h3',{},'Your fitted '+doorLabel(p())+' preview'),el('img',{src:img.src,alt:'Your complete design fitted onto the selected '+doorLabel(p()),class:'dyd-project__art'}));}).catch(error);const flat=el('details');flat.append(el('summary',{},'Review the printed artwork and cover details'));panel.append(flat);loadArt().then(art=>{if(token===loadToken){if(p().workflow==='continuous')drawPanorama(flat,art);if(!appendVerifiedPrintFiles(flat))addPanelGallery(flat,art);}}).catch(error);\n const finalAvailable=finalApprovalReady(),saved=finalAvailable&&!!project.approvals.final,status=el('p',{role:'status','aria-live':'polite',class:'dyd-project__cart-status'},saved?'Design approved and saved':finalAvailable?'Final approval has not been saved yet.':customOrderingPaused?'Custom artwork and preview saved. Custom ordering is paused.':'Owner preview: final approval saving is awaiting activation. Your saved design is preserved.');if(saved){status.classList.add('dyd-approval-success');status.prepend(premiumIcon('check','dyd-approval-check'));}panel.append(status);if(!saved&&!customOrderingPaused)panel.append(button('Review & approve complete design',openFinalApproval,true));const cart=button(custom?(customBasketEnabled?'Add to custom cart':'Continue to checkout'):'Add to cart',custom?addCustomBasket:prepareCart,true);if(custom)cart.dataset.customBasketAdd='';cart.disabled=!saved||custom&&session?.capabilities?.customSizeCheckout!==true;const links=el('div',{class:'dyd-project__actions dyd-cart-actions'});links.append(cart,button('Add another cover',async()=>{await save();const source=project.id,setId=p().setId||project.source_project_id||project.id;project={id:crypto.randomUUID(),revision:0,source_project_id:source,payload:{...blank(),covers:[newCover('')],setId},approvals:{}};artImage=null;artMeta=null;houseImage=null;render();}));links.lastElementChild.classList.add('dyd-cart-secondary');if(saved)completeLookOffer();panel.append(links,el('p',{'data-cart-status':'',role:'status','aria-live':'polite',class:'dyd-project__cart-status'},custom?(customOrderingPaused?'Custom artwork is saved. Final order approval and checkout are paused.':session?.capabilities?.customSizeCheckout===true?(saved?'Ready for your custom-cover checkout.':'Confirm and save final approval before checkout.'):'Automatic custom-size checkout is awaiting server activation. Your approved design remains saved.'):saved?'Ready to add your approved design to cart.':'Confirm and save final approval to enable Add to cart.'),el('div',{'data-cart-link':''}));actions(null);}\n async function completeLookOffer(){\n  const target=completeLookTarget(p(),project.approvals);if(!target)return;\n  const current=structuredClone(project),token=loadToken,slot=el('div',{'data-matching-offer-slot':''});panel.append(slot);\n  try{const rows=await allPages('projects','projects');if(!slot.isConnected||token!==loadToken||project.id!==current.id)return;if(matchingPairComplete(current,rows)){slot.remove();return;}\n\n  const label=target==='front'?'front door':'garage door',box=el('section',{class:'dyd-complete-look','aria-label':'Complete the look'}),copy=el('div',{class:'dyd-complete-look__copy'});\n  copy.append(el('p',{class:'dyd-complete-look__eyebrow'},'Complete the look'),el('h3',{},'A matching '+label+' cover'),el('p',{},'Bring the same style to your '+label+'. Create a matching design inspired by your approved artwork.'));\n  const cta=button('Create a matching '+label+' cover',()=>beginCompleteLook(target));cta.classList.add('dyd-complete-look__button');\n  copy.append(cta,el('p',{class:'dyd-complete-look__note'},'Optional \u00B7 Choose your size, then create and review your matching design. 1 design credit per accepted matching design. Your original stays saved.'));\n  if(p().personalization)copy.append(el('p',{class:'dyd-complete-look__note'},'Text and logos added in the editor can be added again after creating your matching artwork.'));\n  const thumbnail=el('figure',{class:'dyd-complete-look__thumbnail'}),ref=p().personalization?.rendered||p().artwork;\n  thumbnail.append(savedPreview(ref,null,{alt:'Your approved design, used as the inspiration for a matching cover',loading:'lazy',width:'128',height:'128'}),el('figcaption',{},'Your approved design'));\n  box.append(thumbnail,copy);slot.append(box);\n  }catch{slot.remove();} // Optional offer stays hidden when saved-set history cannot be confirmed.\n }\n async function beginCompleteLook(target){\n  if(busy||selectingSource||generationPending)return;busy=true;selectingSource=true;\n  try{const sourceId=project.id;await save();await saveQueue;const fresh=(await api('project',null,{id:sourceId})).project;const rows=await allPages('projects','projects');if(matchingPairComplete(fresh,rows)){message('Your matching set is already complete. Both covers are available in My designs & projects.');render();return;}const next=matchingCoverDraft(fresh,target);\n   project=next;artImage=null;artMeta=null;houseImage=null;editingNewVersion=false;busy=false;showEditor();selectionScroll.reset();render();panel.focus({preventScroll:true});\n   message('Your original design is saved. Choose the matching cover size and attachment, then continue to create its new design. No credit has been used.'+(fresh.payload.personalization?' Add text and logos again after matching; the original finishing touches stay with your saved design.':''));\n  }finally{busy=false;selectingSource=false;}\n }\n async function openFinalApproval(){if(p().workflow==='continuous'&&!printFilesReviewed()){message('Verify your printed covers before final approval.');await navigate(4);return;}if(hasCustomSize(p())&&!finalApprovalReady()){message('Your custom artwork is saved. Custom ordering and final order approval are paused.');return;}if(finalDialogOpening||root.querySelector('[data-final-dialog]'))return;finalDialogOpening=true;const focus=document.activeElement,dialog=el('dialog',{'data-final-dialog':'',class:'dyd-final-dialog','aria-label':'Confirm your complete design'}),body=el('div'),status=el('p',{role:'status','aria-live':'polite'},'Opening your saved preview\u2026'),close=el('button',{type:'button'},'Back to review');let submitting=false;close.addEventListener('click',()=>{if(!submitting)dialog.close();});dialog.addEventListener('cancel',e=>{if(submitting)e.preventDefault();});dialog.addEventListener('close',()=>{dialog.remove();focus?.focus({preventScroll:true});});dialog.append(close,el('h2',{},'Confirm your complete design'),body,status);root.append(dialog);dialog.showModal();try{await saveQueue;const context=finalReviewContext(p()),art=await loadArt(),a=await api('asset',null,p().preview),img=await image(a.reviewUrl,true);body.append(el('img',{src:img.src,alt:'Exact '+doorLabel(p())+' preview being approved',class:'dyd-project__art'}));if(p().workflow==='continuous')drawPanorama(body,art);if(!appendVerifiedPrintFiles(body))addPanelGallery(body,art);if(p().workflow==='continuous')body.append(el('p',{},'Wall gaps: '+p().gaps.join(' / ')+' '+p().units));body.append(el('p',{},'Confirm the artwork, wording, sizes, mount or fastening, door arrangement and excluded wall-gap areas shown above.'));const finalAvailable=finalApprovalReady(),key=crypto.randomUUID(),confirm=el('button',{type:'button',class:'primary'},finalAvailable?'Confirm & save approval':'Approval saving awaits activation'),label=el('label'),check=el('input',{type:'checkbox'});check.checked=false;check.disabled=false;label.className='dyd-final-dialog__confirmation';confirm.disabled=true;label.append(check,document.createTextNode('I confirm that I have reviewed and approve this complete design.'));check.addEventListener('change',()=>{confirm.disabled=!finalAvailable||!check.checked||submitting;});body.append(label,confirm);status.textContent=finalAvailable?'Your confirmation is required. Approval will be recorded only after saving succeeds.':'Owner preview: you can check the confirmation after reviewing your design. Saving this approval and Add to cart are awaiting backend activation.';\n confirm.addEventListener('click',()=>{const operation=async()=>{if(!finalAvailable||submitting||!check.checked)return;if(stableReviewJson(finalReviewContext(p()))!==stableReviewJson(context)){status.textContent='Design details changed. Close this window and review the updated design.';confirm.disabled=true;return;}submitting=true;busy=true;confirm.disabled=true;check.disabled=true;close.disabled=true;confirm.replaceChildren(el('span',{class:'dyd-project__spinner','aria-hidden':'true'}),document.createTextNode('Saving your approval\u2026'));status.classList.add('dyd-approval-saving');dialog.setAttribute('aria-busy','true');status.replaceChildren(approvalProgress());try{await save();if(p().workflow==='continuous'&&!printFilesReviewed())throw Error('The verified print files changed. Return to printed-cover review.');if(!project.approvals.preview)await approve('preview');if(p().workflow==='continuous'&&!project.approvals.set)await approve('set');await approve('final',{confirmed:true,reviewVersion:1,key,reviewContext:context});if(!project.approvals.final)throw Error('Approval has not been confirmed. Check the saved result before trying again.');busy=false;dialog.close();render();message('Design approved and saved');}catch(e){try{const latest=await api('project',null,{id:project.id});if(latest.project.approvals.final&&stableReviewJson(finalReviewContext(latest.project.payload))===stableReviewJson(context)){project=latest.project;busy=false;dialog.close();render();message('Design approved and saved');return;}}catch{}status.classList.remove('dyd-approval-saving');status.textContent='Approval was not confirmed: '+e.message+' Your design is preserved. Retry checks the same confirmation identifier.';confirm.textContent='Retry saving approval';confirm.disabled=false;check.disabled=false;}finally{submitting=false;busy=false;close.disabled=false;dialog.removeAttribute('aria-busy');}};return (window.DYDStudioLoading?window.DYDStudioLoading.run(confirm,operation,'Saving your approval\u2026'):operation()).catch(error);});\n }catch(e){status.textContent='The saved design could not be opened: '+e.message+'. Close this window and try again.';}finally{finalDialogOpening=false;}}\n let customBasketEnabled=false;\n const basketStorageKey=()=> 'dyd-custom-design-cart-v1:'+(root.dataset.customerId||'guest');\n function customBasketIds(){try{const ids=JSON.parse(localStorage.getItem(basketStorageKey())||'[]');return Array.isArray(ids)?[...new Set(ids.filter(id=>typeof id==='string'&&/^[a-f0-9-]{36}$/i.test(id)))].slice(0,12):[];}catch{return [];}}\n function writeCustomBasket(ids){localStorage.setItem(basketStorageKey(),JSON.stringify(ids));updateCustomBasketEntry();}\n function updateCustomBasketEntry(){const b=root.querySelector('[data-custom-design-cart]');if(b)b.textContent='Custom cart ('+customBasketIds().length+')';}\n async function initCustomBasket(){\n  if(!session?.authenticated)return;\n  try{const state=await api('custom-basket-status',{});customBasketEnabled=state.ready===true;if(!customBasketEnabled)return;\n   const host=root.querySelector('.dyd-project__tabs');if(host&&!host.querySelector('[data-custom-design-cart]')){const b=button('Custom cart',()=>openCustomBasket());b.dataset.customDesignCart='';host.append(b);updateCustomBasketEntry();}\n   const cta=panel.querySelector('[data-custom-basket-add]');if(cta)cta.textContent='Add to custom cart';\n  }catch{} // Existing single-design checkout remains available until installation is complete.\n }\n async function addCustomBasket(){\n  if(!customBasketEnabled)return prepareCustomCheckout();if(busy)return;\n  busy=true;try{await saveQueue;const row=(await api('project',null,{id:project.id})).project;\n   if(!row?.approvals?.final||!row.customApproval||!hasCustomSize(row.payload)||stableReviewJson(finalReviewContext(row.payload))!==stableReviewJson(finalReviewContext(p())))throw Error('Reopen and approve the latest custom design first.');\n   const ids=customBasketIds();if(!ids.includes(row.id)){if(ids.length>=12)throw Error('Your custom cart can contain up to 12 designs.');writeCustomBasket([...ids,row.id]);}\n  }finally{busy=false;}await openCustomBasket();\n }\n async function openCustomBasket(){\n  if(root.querySelector('[data-custom-basket-dialog]'))return;\n  const dialog=el('dialog',{class:'dyd-final-dialog','data-custom-basket-dialog':'','aria-label':'Your custom design cart'}),content=el('div'),status=el('p',{role:'status','aria-live':'polite'}),close=button('Continue designing',()=>dialog.close());\n  let working=false,approvedItems=[],requestKey=null,selectionProof=null;\n  dialog.style.cssText='width:min(760px,calc(100vw - 24px));max-height:90dvh;overflow:auto;box-sizing:border-box;';\n  dialog.append(close,el('h2',{},'Your custom design cart'),content,status);root.append(dialog);\n  dialog.addEventListener('close',()=>dialog.remove(),{once:true});dialog.addEventListener('cancel',e=>{if(working)e.preventDefault();});dialog.showModal();\n  async function redraw(){\n   status.textContent='Loading your approved designs\u2026';content.replaceChildren();approvedItems=[];\n   const ids=customBasketIds();if(!ids.length){status.textContent='Choose an approved custom design to add to this cart.';chooseMore();return;}\n   const entries=await Promise.all(ids.map(async id=>{try{const r=(await api('project',null,{id})).project;return {id,row:r};}catch{return {id,row:null};}}));\n   const valid=entries.every(({row})=>row?.approvals?.final&&row.customApproval&&hasCustomSize(row.payload));\n   if(!valid){for(const {id,row}of entries){const card=el('section',{class:'dyd-project__card'});card.append(el('h3',{},row?.payload?.title||'Saved custom design'),el('p',{},row?.approvals?.final?'Saved design':'Reopen and approve the current version before checkout.'),button('Remove from custom cart',async()=>{writeCustomBasket(customBasketIds().filter(v=>v!==id));await redraw();}));content.append(card);}status.textContent='A selected design needs review. Remove it from this cart or reopen it in My designs & projects.';chooseMore();return;}\n   approvedItems=entries.map(({row})=>({projectId:row.id,revision:row.customApproval.revision,finalApprovalId:row.customApproval.finalApprovalId})).sort((a,b)=>a.projectId.localeCompare(b.projectId));\n   const proof=JSON.stringify(approvedItems),attemptKey=basketStorageKey()+':checkout';let cached;try{cached=JSON.parse(sessionStorage.getItem(attemptKey)||'null');}catch{}\n   if(!cached||cached.proof!==proof)cached={proof,key:crypto.randomUUID()};sessionStorage.setItem(attemptKey,JSON.stringify(cached));requestKey=cached.key;selectionProof=proof;\n   const summary=await api('custom-basket-preview',{items:approvedItems,idempotencyKey:requestKey});\n   if(!dialog.isConnected)return;\n   for(const item of summary.items){const card=el('section',{class:'dyd-project__card'}),thumb=savedPreview(item.artwork,null,{alt:'Approved artwork for '+item.title,loading:'lazy'});thumb.style.cssText='width:112px;height:84px;object-fit:contain;border-radius:10px;';card.append(thumb,el('h3',{},item.title));\n    for(const line of item.lines){card.append(el('p',{},line.title+' \u00B7 Quantity '+line.quantity+' \u00B7 $'+line.unitAmount+' each'));for(const a of line.details.filter(a=>['Mount type','Finishing','Grommet layout'].includes(a.key)))card.append(el('small',{},a.key+': '+a.value+' '));}\n    card.append(el('p',{},'Design subtotal: $'+(Number(item.subtotalCents)/100).toFixed(2)),button('Remove from custom cart',async()=>{writeCustomBasket(customBasketIds().filter(v=>v!==item.projectId));await redraw();}));content.append(card);\n   }\n   content.append(el('h3',{},'Subtotal: $'+(Number(summary.subtotalCents)/100).toFixed(2)+' USD'),el('p',{},'Shipping and taxes are calculated at checkout.'));\n   chooseMore();const checkout=button('Checkout with '+summary.items.length+' approved design'+(summary.items.length===1?'':'s'),purchase,true);content.append(checkout);status.textContent='Your selected custom designs will be purchased together.';\n  }\n  function chooseMore(){content.append(button('Choose another approved design',async()=>{\n   status.textContent='Loading your saved designs\u2026';const rows=await allPages('projects','projects'),selected=new Set(customBasketIds()),available=rows.filter(r=>!selected.has(r.id)&&r.approvals?.final&&r.customApproval&&hasCustomSize(r.payload));\n   const picker=el('section',{class:'dyd-project__card'});picker.append(el('h3',{},'Choose an approved custom design'));\n   for(const row of available){const b=button('Add '+row.payload.title,async()=>{const ids=customBasketIds();if(ids.length>=12)throw Error('Your custom cart can contain up to 12 designs.');writeCustomBasket([...new Set([...ids,row.id])]);await redraw();});picker.append(b);}\n   if(!available.length)picker.append(el('p',{},'No other approved custom designs are available. Continue designing, approve your next design, then add it here.'));\n   content.querySelector('[data-custom-basket-picker]')?.remove();picker.dataset.customBasketPicker='';content.append(picker);status.textContent='Your saved designs remain unchanged.';\n  }));}\n  async function purchase(){\n   if(working||!approvedItems.length||JSON.stringify(approvedItems)!==selectionProof)return;if(JSON.stringify([...customBasketIds()].sort())!==JSON.stringify(approvedItems.map(i=>i.projectId).sort()))throw Error('Your custom cart changed in another tab. Close and reopen it before checkout.');working=true;dialog.inert=true;\n   try{\n    status.textContent='Preparing one checkout for your selected designs\u2026';\n    const result=await api('custom-basket-checkout',{items:approvedItems,idempotencyKey:requestKey}),url=new URL(result.checkoutUrl);\n    if(url.protocol!=='https:'||url.username||url.password||url.hash||!session.customCheckoutOrigins?.includes(url.origin)||!/^gid:\\/\\/shopify\\/DraftOrder\\/[1-9][0-9]*$/.test(result.draftOrderId||''))throw Error('The checkout link could not be verified.');\n    status.textContent='Opening your combined checkout\u2026';location.assign(url.href);\n   }catch(e){status.textContent=e.message+' Your approved designs are saved. Retry checks the same custom cart.';}finally{working=false;dialog.inert=false;}\n  }\n  try{await redraw();}catch(e){status.textContent=e.message;}\n }\n async function prepareCustomCheckout(){\n  if(busy)return;if(!finalApprovalReady()||session?.capabilities?.customSizeCheckout!==true)throw Error('Custom ordering is paused. Your custom artwork remains saved.');\n  busy=true;const status=panel.querySelector('[data-cart-status]'),key='dyd-custom-checkout-v1:'+cfg.themeId+':'+(root.dataset.customerId||'')+':'+project.id;let attempt;\n  try{\n   await saveQueue;const latest=(await api('project',null,{id:project.id})).project;\n   if(!latest||latest.id!==project.id||!hasCustomSize(latest.payload)||stableReviewJson(finalReviewContext(latest.payload))!==stableReviewJson(finalReviewContext(p()))||!latest.approvals?.final||!latest.customApproval)throw Error('Reopen and confirm the latest complete custom design before checkout.');\n   const approval=latest.customApproval;if(approval.projectId!==latest.id||!Number.isSafeInteger(approval.revision)||!approval.finalApprovalId)throw Error('The custom print approval could not be confirmed.');\n   try{attempt=JSON.parse(sessionStorage.getItem(key)||'null');}catch{}\n   const expected=approval.finalApprovalId+':'+approval.revision;\n   if(!attempt||attempt.approval!==expected)attempt={approval:expected,idempotencyKey:crypto.randomUUID(),requested:false};\n   const action=attempt.requested?'custom-size-checkout-reconcile':'custom-size-checkout';attempt.requested=true;sessionStorage.setItem(key,JSON.stringify(attempt));\n   if(status)status.textContent=action.endsWith('reconcile')?'Checking the same custom checkout\u2026':'Preparing your exact custom-cover checkout\u2026';\n   const result=await api(action,{projectId:latest.id,revision:approval.revision,finalApprovalId:approval.finalApprovalId,idempotencyKey:attempt.idempotencyKey});\n   const url=new URL(result.checkoutUrl),allowed=session.customCheckoutOrigins;\n   if(!Array.isArray(allowed)||!allowed.includes(url.origin)||url.protocol!=='https:'||url.username||url.password||url.hash||!/^gid:\\/\\/shopify\\/DraftOrder\\/[1-9][0-9]*$/.test(result.draftOrderId||''))throw Error('The custom checkout link could not be verified.');\n   const host=panel.querySelector('[data-cart-link]');if(host){host.replaceChildren(el('a',{href:url.href,class:'dyd-project__primary',rel:'noreferrer'},'Open secure custom checkout'));}\n   if(status)status.textContent='Opening checkout\u2026';location.assign(url.href);\n  }catch(e){if(status)status.textContent=e.message+' Your approved design is preserved. Retry checks the same checkout request.';throw e;}finally{busy=false;}\n }\n async function prepareCart(){if(busy)return;if(hasCustomSize(p()))return addCustomBasket();busy=true;let cartConfirmed=false;const status=panel.querySelector('[data-cart-status]'),cta=[...panel.querySelectorAll('button')].find(b=>b.textContent==='Add to cart');const update=text=>{if(status)status.textContent=text;message(text);},showCart=()=>{const host=panel.querySelector('[data-cart-link]');if(host){host.replaceChildren(el('a',{href:'/cart',class:'dyd-project__primary'},'Go to cart'));if(cartConfirmed&&window.DYDProjectCollection){const reminders=el('section',{class:'dyd-design-reminders'});host.append(reminders);window.DYDProjectCollection.showAfterAdd(reminders,project);document.dispatchEvent(new CustomEvent('dyd:studio-cart-changed'));}}};\n  if(cta){cta.disabled=true;cta.textContent='Adding to cart\u2026';}update('Adding your cover to the cart\u2026');\n  try{await save();if(!project.approvals.final)throw Error('Confirm and save final design approval before adding to cart.');if(!project.approvals.artwork||!project.approvals.preview||(p().workflow==='continuous'&&!project.approvals.set))throw Error('Approve your artwork and preview'+(p().workflow==='continuous'?' and the full set':'')+' before adding to cart.');const prepared=await api('cart-lines',{id:project.id,revision:project.revision}),lines=prepared.lines;\n   if(prepared.checkoutEnabled!==true)throw Error('Your approved design is saved, but Studio ordering is currently unavailable. No new cart item was added. Please contact support; you do not need to upload or approve your design again.');\n   if(!Array.isArray(lines)||!lines.length||!preparedCartMatches(prepared,lines))throw Error('The approved cart details could not be confirmed. Your design is saved and no new item was added.');\n   const ready=await api('verify-studio-cart',{items:lines});if(ready.valid!==true||ready.checked!==lines.length||ready.checkoutEnabled!==true)throw Error('The server could not verify this approved cover for checkout. Your cart is unchanged.');\n   const get=await fetch('/cart.js',{credentials:'same-origin',cache:'no-store'});if(!get.ok)throw Error('The cart could not be opened. Your design is saved. Please try again.');const cart=await get.json(),existing=cart.items.filter(x=>studioLineProjectId(x)===project.id);if(existing.length){\n    if(preparedCartMatches(prepared,existing)){cartConfirmed=true;update('Already in your cart. Your approved design and cover choices are saved. Continue to your cart to check out.');showCart();return;}\n    const missing=missingApprovedCartLines(prepared,existing);if(missing?.length){\n     if(!await confirmStudio({heading:'Add the missing approved covers?',description:existing.length+' approved cover'+(existing.length===1?' is':'s are')+' already in your cart.',details:[missing.length+' remaining cover'+(missing.length===1?' will':'s will')+' be added.','Your existing covers, quantities and artwork stay unchanged.'],keep:'Keep cart unchanged',proceed:'Add missing covers'}))return;\n     const snapshot=items=>JSON.stringify(items.map(i=>[i.key,i.quantity,String(i.variant_id||i.id),i.properties]).sort((a,b)=>String(a[0]).localeCompare(String(b[0]))));\n     const freshResponse=await fetch('/cart.js',{credentials:'same-origin',cache:'no-store'});if(!freshResponse.ok)throw Error('Your cart could not be checked. No missing cover was added.');const freshCart=await freshResponse.json();if(snapshot(freshCart.items.filter(i=>studioLineProjectId(i)===project.id))!==snapshot(existing))throw Error('Your cart changed. Review it before adding the remaining covers.');\n     let added;try{added=await fetch('/cart/add.js',{method:'POST',credentials:'same-origin',headers:{'Content-Type':'application/json'},body:JSON.stringify({items:missing})});}catch{showCart();throw Error('The addition result is uncertain. Check your cart before trying again.');}if(!added.ok){showCart();throw Error('The cart did not confirm the missing covers. Check your cart before trying again.');}const checked=await fetch('/cart.js',{credentials:'same-origin',cache:'no-store'});if(!checked.ok){showCart();throw Error('Check your cart before trying again. The saved design is unchanged.');}const after=await checked.json();if(!preparedCartMatches(prepared,after.items.filter(i=>studioLineProjectId(i)===project.id))){showCart();throw Error('Your cart needs a review before trying again.');}cartConfirmed=true;update('Your approved covers are now together in the cart. Existing matching designs were kept.');showCart();return;\n    }\n    const current=existing[0],line=lines[0];\n    if(prepared.checkoutEnabled!==true||existing.length!==1||lines.length!==1||String(current.variant_id||current.id)!==String(line.id)||current.quantity!==line.quantity)throw Error('The existing cart item differs from this approved cover. Open your cart to review its size and quantity.');\n    if(!await confirmStudio({heading:'Repair this saved cart item?',description:'Your approved artwork is saved. This updates only its design link in the cart.',details:['Cover size and quantity stay the same.','Your original artwork and approval stay saved.'],keep:'Keep cart unchanged',proceed:'Repair approved cover'}))return;\n    const proof=await api('verify-studio-cart',{items:lines});if(proof.valid!==true||proof.checked!==1||proof.checkoutEnabled!==true)throw Error('Saved approval could not be verified. Your cart is unchanged.');\n    const latestResponse=await fetch('/cart.js',{credentials:'same-origin',cache:'no-store'});if(!latestResponse.ok)throw Error('The cart could not be rechecked. Your cart is unchanged.');const latestCart=await latestResponse.json(),latestItem=latestCart.items.find(x=>x.key===current.key);if(!latestItem||latestItem.quantity!==current.quantity||String(latestItem.variant_id||latestItem.id)!==String(line.id))throw Error('Your cart changed. Refresh it before repairing this cover.');\n    let fixed;try{fixed=await fetch('/cart/change.js',{method:'POST',credentials:'same-origin',headers:{'Content-Type':'application/json'},body:JSON.stringify({id:current.key,quantity:current.quantity,properties:line.properties})});}catch{showCart();throw Error('The repair result is uncertain. Refresh your cart before trying again.');}\n    if(!fixed.ok){showCart();throw Error('The cart repair was not confirmed. Refresh your cart before trying again.');}\n    const repaired=await fixed.json();if(!preparedCartMatches(prepared,repaired.items.filter(x=>studioLineProjectId(x)===project.id))){showCart();throw Error('Open your cart to check the repaired cover before trying again.');}\n    cartConfirmed=true;update('Your approved cover is linked correctly in your cart. Continue to your cart to check out.');showCart();return;\n   }\n   let r;try{r=await fetch('/cart/add.js',{method:'POST',credentials:'same-origin',headers:{'Content-Type':'application/json'},body:JSON.stringify({items:lines})});}catch{showCart();throw Error('The cart result is not confirmed. Open your cart before trying again.');}if(!r.ok){showCart();throw Error('The cart did not confirm this addition. Open your cart before trying again.');}const check=await fetch('/cart.js',{credentials:'same-origin',cache:'no-store'});if(!check.ok){showCart();throw Error('The cart could not be verified. Open your cart before trying again.');}const verify=await check.json(),saved=verify.items.filter(x=>studioLineProjectId(x)===project.id);if(!preparedCartMatches(prepared,saved)){showCart();throw Error('The cart needs a review. Open it before trying again.');}cartConfirmed=true;update('Added to cart \u2713 Your approved artwork, size and quantity are saved. Continue to your cart to check out.');showCart();\n  }catch(e){update(e.message||'Could not confirm the cart. Your saved design is safe.');throw e;}finally{busy=false;if(cta){cta.disabled=cartConfirmed;cta.textContent=cartConfirmed?'Added to cart \u2713':'Add to cart';}}\n }\n async function allPages(action,key,params={}){const out=[];let offset=0;do{const d=await api(action,null,{offset,...params});out.push(...d[key]);offset=d.nextOffset;}while(offset!==null);return out;}\n const collectionCache=new Map();\n function clearCollection(){collectionCache.clear();}\n function trashButton(text,fn,label){const b=button('',fn);b.className='dyd-library__trash';b.setAttribute('aria-label',label||text);b.title=label||text;const svg=document.createElementNS('http://www.w3.org/2000/svg','svg');svg.setAttribute('viewBox','0 0 24 24');svg.setAttribute('width','18');svg.setAttribute('height','18');svg.setAttribute('aria-hidden','true');const path=document.createElementNS(svg.namespaceURI,'path');path.setAttribute('d','M3 6h18M9 6V3h6v3M5 6l1 15h12l1-15M10 10v7M14 10v7');path.setAttribute('fill','none');path.setAttribute('stroke','currentColor');path.setAttribute('stroke-width','1.7');svg.append(path);b.append(svg);if(text)b.append(document.createTextNode(text));return b;}\n async function showGallery(matching=false,trash=false,force=false){\n  workspace('library');message('Your saved collection \u00B7 Private draft');root.classList.remove('dyd-project--admin');root.querySelector('[data-editor]').hidden=true;root.querySelector('[data-admin]').hidden=true;root.querySelector('[data-library]').hidden=false;const g=root.querySelector('[data-gallery]');g.classList.add('dyd-library');\n  const key=String(trash),cached=collectionCache.get(key);let dataSet=cached&&Date.now()-cached.at<30000&&!force?cached.data:null;\n  if(!dataSet){g.replaceChildren(el('p',{'role':'status'},'Opening your saved collection\u2026'));dataSet=await Promise.all([allPages('projects','projects',trash?{trash:'1'}:{}),allPages('assets','assets'),api()]);collectionCache.set(key,{at:Date.now(),data:dataSet});}\n  const [projects,assets,data]=dataSet,artwork=[...data.designs.filter(d=>d.status==='succeeded').map(d=>({id:d.id,kind:'job',reviewUrl:d.reviewUrl})),...assets];g.replaceChildren();session={...session,...data};g.append(creditPanel());\n  const tools=el('div',{class:'dyd-library__toolbar'});tools.append(el('h3',{},trash?'Project Trash':'Saved projects'),trash?button('\u2190 Saved projects',()=>showGallery(false,false)):trashButton('Trash',()=>showGallery(false,true),'Open project Trash'),button('Refresh',()=>showGallery(matching,trash,true)));g.append(tools);\n  const projectGrid=el('div',{class:'dyd-library__projects'});\n  if(!matching&&!trash&&window.DYDProjectCollection){g.append(projectGrid);await window.DYDProjectCollection.mount({host:projectGrid,rows:projects,variants:cfg.variants,formatCover:c=>customSizeText(c)+' \u00B7 '+customFinishingText(c)+' \u00B7 Quantity '+c.quantity+' \u00B7 '+money(c),open:openLibraryProject,rename:renameLibraryProject,archive:row=>trashButton('',async()=>{if(!await confirmStudio({heading:'Move project to Trash?',description:row.payload.title,details:['Your original artwork and approvals stay saved.'],keep:'Keep project',proceed:'Move to Trash',danger:true}))return;await api('archive-project',{id:row.id,revision:row.revision});clearCollection();if(project.id===row.id){sessionStorage.removeItem('dyd-project-resume');project={id:crypto.randomUUID(),revision:0,payload:blank(),approvals:{}};artImage=null;artMeta=null;houseImage=null;}await showGallery(false,false,true);},'Move '+row.payload.title+' to Trash')});}\n  else{\nfor(const row of projects){\n   const card=el('article',{class:'dyd-project__card dyd-library__project'}),art=artwork.find(a=>a.id===row.payload.artwork?.id),info=el('div',{class:'dyd-library__info'});if(art?.reviewUrl)card.append(savedPreview({id:art.id,kind:art.kind},art.reviewUrl,{alt:'Artwork for '+row.payload.title,loading:'lazy'}));else card.append(el('div',{class:'dyd-library__placeholder','aria-hidden':'true'},'Your project'));\n   info.append(el('p',{class:'dyd-project-credit'},projectCreditLabel(row)),el('h3',{},row.payload.title),el('p',{},'Saved '+new Intl.DateTimeFormat(undefined,{dateStyle:'medium',timeStyle:'short'}).format(new Date(row.updated_at))));const actions=el('div',{class:'dyd-library__actions'});\n   if(trash){actions.append(button('Restore',async()=>{await api('restore-project',{id:row.id,revision:row.revision});clearCollection();message('Project restored. Original artwork and approval history were preserved.');await showGallery(false,true,true);}));}\n   else{actions.append(button(matching?'Use artwork':'Resume',async()=>{if(matching){if(!row.payload.artwork)throw Error('This project has no artwork yet');await startMatching(row.payload.artwork,row.id);}else{busy=true;message('Opening your saved project\u2026');try{await saveQueue;const latest=await api('project',null,{id:row.id});project=restored(latest.project);artImage=null;artMeta=null;houseImage=null;showEditor();render();remember();message(p().step===2?'Your saved artwork is ready to review. No new generation is needed.':'Your saved project is ready to continue.');}finally{busy=false;updateCreditPanels();}}},true));if(!matching)actions.append(trashButton('',async()=>{if(!await confirmStudio({heading:'Move this project to Trash?',description:row.payload.title,details:['You can restore this project from Trash.','Your original artwork and approval history will be kept.'],keep:'Keep project',proceed:'Move to Trash',danger:true}))return;await api('archive-project',{id:row.id,revision:row.revision});clearCollection();if(project.id===row.id){try{sessionStorage.removeItem('dyd-project-resume');}catch{}project={id:crypto.randomUUID(),revision:0,payload:blank(),approvals:{}};artImage=null;artMeta=null;houseImage=null;}await showGallery(false,false,true);message('Project moved to Trash. Original artwork and approval history were kept.');},'Move '+row.payload.title+' to Trash'));}info.append(actions);mayaActivity(info,row.id);card.append(info);projectGrid.append(card);\n  }g.append(projectGrid);if(!projects.length)g.append(el('p',{},trash?'Trash is empty.':'Your saved projects will appear here.'));\n\n  }\n  if(!trash){g.append(el('h3',{},matching?'Choose a saved reference':'Other saved artwork \u00B7 use as a reference'));const artGrid=el('div',{class:'dyd-library__artwork'});for(const a of artwork.filter(a=>matching||!projects.some(row=>row.payload.artwork?.id===a.id))){const card=el('div',{class:'dyd-project__card'});card.append(savedPreview({id:a.id,kind:a.kind},a.reviewUrl,{alt:'Your saved flat design',loading:'lazy'}),button('Use as a reference',()=>startMatching({id:a.id,kind:a.kind},null)));artGrid.append(card);}g.append(artGrid);if(!artwork.length)g.append(el('p',{},'Your first saved design will appear here.'));}\n  const footer=el('div',{class:'dyd-library__footer'});footer.append(button('Back to current project',()=>{showEditor();render();}));g.append(footer);\n }\n async function openLibraryProject(row,summary,rows=[]){if(busy)return;busy=true;try{await saveQueue;const fresh=(await api('project',null,{id:row.id})).project;if(fresh.id!==row.id)throw Error('This saved project could not be reopened. Your current design is unchanged.');if(window.DYDProjectCollection.pendingMatch(fresh,rows))fresh.payload.matchingRequested=true;project=restored(fresh);const next=window.DYDProjectCollection.stage(project,rows);project.payload.step=!next.ready&&project.payload.artwork&&!window.DYDProjectCollection.pendingMatch(project,rows)&&next.step>=2?2:next.step;artImage=null;artMeta=null;houseImage=null;editingNewVersion=false;showEditor();render();remember();panel.focus({preventScroll:true});message(next.ready?'Review your approved cover, then add it to your cart.':'Continue from your saved '+next.label.toLowerCase()+'.');}finally{busy=false;updateCreditPanels();}}\n async function renameLibraryProject(row){const returnToEditor=!root.querySelector('[data-editor]').hidden;const dialog=el('dialog',{class:'dyd-design-dialog','aria-label':'Rename project'}),input=el('input',{type:'text',maxlength:'100','aria-label':'Project name',value:String(row.payload.title||'My design').split(' \u00B7 ').filter(v=>!['Create with AI','Create from an idea','Remake an image with AI','Reimagine a picture','Upload your own image','Upload finished artwork','Remake'].includes(v)).join(' \u00B7 ').replace(/\\bAI\\b/g,'Studio')||'My design'}),status=el('p',{role:'status'}),cancel=button('Cancel',()=>dialog.close()),saveName=button('Save name',async()=>{const name=input.value.trim();if(!name){status.textContent='Enter a project name.';return;}saveName.disabled=true;cancel.disabled=true;try{if(row.id===project.id&&project.revision===0){p().title=name;dialog.close();render();message('Project name updated. Continue to save your project.');return;}const fresh=(await api('project',null,{id:row.id})).project;await api('save-project',{id:fresh.id,revision:fresh.revision,sourceProjectId:fresh.source_project_id||null,payload:{...fresh.payload,title:name}});if(project.id===fresh.id){project=(await api('project',null,{id:fresh.id})).project;remember();}dialog.close();clearCollection();if(returnToEditor){showEditor();render();}else await showGallery(false,false,true);}catch(e){status.textContent=e.message;}finally{saveName.disabled=false;cancel.disabled=false;}},true);dialog.append(el('h2',{},'Rename project'),input,status,cancel,saveName);dialog.addEventListener('close',()=>dialog.remove(),{once:true});dialog.addEventListener('cancel',e=>{if(saveName.disabled)e.preventDefault();});root.append(dialog);dialog.showModal();input.focus();input.select();}\n async function startMatching(ref,source){\n  if(selectingSource)return;if(p().route==='reuse'&&p().artwork?.id===ref.id&&project.revision===0){showEditor();render();return;}selectingSource=true;\n  try{const sourceRow=source?(await api('project',null,{id:source})).project:null;project={id:crypto.randomUUID(),revision:0,source_project_id:source,payload:{...blank(),route:'reuse',covers:[newCover('')],title:'My matching entrance',artwork:ref,...(sourceRow?{setId:sourceRow.payload.setId||sourceRow.source_project_id||source}: {})},approvals:{}};artImage=null;artMeta=null;houseImage=null;showEditor();render();message('Design selected. Choose product, size and required options. Your project will be saved when you continue; the source artwork stays unchanged.');}finally{selectingSource=false;}\n }\n function workspace(name){endCustomQuote();root.querySelectorAll('[data-view]').forEach(n=>n.setAttribute('aria-pressed',String(n.dataset.view===name)));}\n function showEditor(){workspace('editor');root.classList.remove('dyd-project--admin');root.querySelector('[data-editor]').hidden=false;root.querySelector('[data-library]').hidden=true;root.querySelector('[data-admin]').hidden=true;}\n let adminPeriod='all';\n async function adminCreditPanel(host,customer){\n  host.replaceChildren(el('p',{},'Opening credit history\u2026'));\n  try{\n   const d=await api('admin-credits',null,{customer});host.replaceChildren(el('h3',{},'Customer design credits'));\n   const cards=el('div',{class:'dyd-admin__kpis'}),labels={complimentary:'Complimentary',owner_test:'Private owner tests',gift:'Admin gifts',purchased:'Purchased'};\n   for(const b of d.wallet.buckets){const c=el('div',{class:'dyd-admin__kpi'});c.append(el('span',{},labels[b.source]||b.source),el('strong',{},b.available),el('small',{},b.used+' used \u00B7 '+b.reserved+' reserved'+(b.held?' \u00B7 '+b.held+' held for refund review':'')));cards.append(c);}host.append(cards,el('p',{},'Total available: '+d.wallet.available+'. Gift credits are separate from purchases and do not increase the private provider spending cap.'));\n   const form=el('div',{class:'dyd-admin__toolbar'}),amount=el('input',{type:'number',min:'1',max:'100',step:'1','aria-label':'Gift design credits',value:'2'}),reason=el('input',{type:'text',maxlength:'200','aria-label':'Reason for credit refill',placeholder:'Reason for this gift'}),review=el('div',{class:'dyd-project__hint'});let pending=null,key=crypto.randomUUID();\n   const confirm=button('Confirm refill',async()=>{if(!pending)return;confirm.disabled=true;try{const result=await api('gift-credits',pending);review.replaceChildren(el('p',{},'Added '+pending.amount+' gift credits. New balance: '+result.wallet.available+'. Customer account notification created. Email delivery is not connected.'));await adminCreditPanel(host,customer);}catch(e){review.append(el('p',{},'Refill not confirmed: '+e.message+' Use Check refill to retry the same identifier safely.'));confirm.textContent='Check refill';confirm.disabled=false;}} ,true);confirm.hidden=true;\n   const prepare=button('Review refill',()=>{const n=Number(amount.value);if(!Number.isInteger(n)||n<1||n>100||reason.value.trim().length<3){review.replaceChildren(el('p',{},'Enter 1-100 credits and a reason of at least 3 characters.'));return;}pending={customer,amount:n,reason:reason.value.trim(),key};amount.disabled=true;reason.disabled=true;prepare.disabled=true;review.replaceChildren(el('p',{},'Add '+n+' gift credits to this customer. Balance: '+d.wallet.available+' \u2192 '+(d.wallet.available+n)+'. Reason: '+pending.reason));confirm.hidden=false;});\n   form.append(el('label',{},'Gift design credits'),amount,el('label',{},'Reason'),reason,prepare,confirm);host.append(form,review,el('small',{},'Email notification status: sender not connected. The in-account notification is saved with the refill.'));\n   const history=el('details');history.append(el('summary',{},'Grants, purchases & generation usage'));for(const g of d.grants){const usages=d.usage.filter(u=>u.grant_id===g.id),row=el('div',{class:'dyd-admin__reference'});row.append(el('strong',{},'+'+g.amount+' '+(labels[g.source]||g.source)+(g.held?' \u00B7 Refund review hold':'')),el('p',{},new Date(g.created_at).toLocaleString('en-US',{timeZone:'America/New_York'})+' \u00B7 New York \u00B7 '+(g.order_name||g.reason)),el('p',{},g.used+' used \u00B7 '+g.reserved+' reserved'+(g.actor?' \u00B7 Granted by Studio owner':'')));for(const u of usages){const line=el('details');line.append(el('summary',{},'Design '+u.job_id.slice(-6)+' \u00B7 '+({reserved:'Credit reserved',consumed:'Credit used',released:'Credit released'})[u.state]),el('code',{},u.job_id),el('p',{},'Created '+new Date(u.created_at).toLocaleString('en-US',{timeZone:'America/New_York'})));row.append(line);}history.append(row);}host.append(history);if(d.emailTemplatePreview){const preview=el('details');preview.append(el('summary',{},'Credit email preview \u00B7 not sent'),el('strong',{},d.emailTemplatePreview.subject),el('p',{},d.emailTemplatePreview.text));host.append(preview);}\n  }catch(e){host.replaceChildren(el('p',{},'Credit details unavailable: '+e.message));}\n }\n\n async function adminOriginalArtwork(ref){\n  if(session?.capabilities?.admin!==true)throw Error('Authorized Studio owner access required');\n  if(!['job','asset'].includes(ref?.kind)||!(/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i.test(ref?.id||'')))throw Error('Choose a saved artwork reference');\n  const response=await fetch(endpoint('staff-asset',{kind:ref.kind,id:ref.id}),{credentials:'same-origin',cache:'no-store',redirect:'error',signal:AbortSignal.timeout(60000)});\n  if(!response.ok)throw Error(response.status===401||response.status===403?'Sign in with the Studio owner account to save this original.':'The original artwork could not be retrieved. Nothing was saved.');\n  const type=(response.headers.get('Content-Type')||'').split(';')[0].trim();if(!['image/png','image/jpeg','image/webp'].includes(type))throw Error('The original image response could not be verified.');\n  return response.blob();\n }\n async function adminDetail(kind,id,customer,label,backLabel='Back to previous view'){\n  if(session?.capabilities?.admin!==true)throw Error('Authorized Studio owner access required');\n  const y=scrollY,focus=document.activeElement,dialog=el('dialog',{class:'dyd-admin-detail','aria-label':label}),body=el('div',{class:'dyd-admin-detail__body'});\n  dialog.append(button('\u2190 '+backLabel,()=>dialog.close()),el('p',{class:'dyd-project__hint'},'Studio admin \u2192 '+label),el('h2',{},label),body);body.textContent='Opening saved details\u2026';dialog.addEventListener('close',()=>{dialog.remove();focus?.focus({preventScroll:true});window.scrollTo({top:y,behavior:'instant'});});root.append(dialog);dialog.showModal();\n  try{const d=await api('admin-detail',null,{kind,id,customer});body.replaceChildren();if(d.approval)body.append(el('p',{},'Approved by '+(d.customer.name||d.customer.email||'Verified customer')+' \u00B7 '+new Date(d.approval.created_at).toLocaleString('en-US',{timeZone:'America/New_York'})+' \u00B7 America/New_York'),el('p',{},'Approval: '+d.approval.kind+' \u00B7 Project version '+d.approval.revision));if(d.record)body.append(el('p',{},d.record.title||'Saved design'),el('p',{},d.record.created_at?'Created '+new Date(d.record.created_at).toLocaleString('en-US',{timeZone:'America/New_York'}):''));if(d.payload){body.append(el('h3',{},d.payload.title||'Untitled project'),el('p',{},'Saved step: '+(stepLabel(d.payload,d.payload.step)||'In progress')));for(const c of d.payload.covers||[]){const v=cfg.variants.find(v=>v.id===c.variant);body.append(el('p',{},(c.product==='front'?'Front door':'Garage')+' \u00B7 '+(c.customSize!==undefined?'Custom '+customSizeText(c):v?.title||c.variant)+' \u00B7 '+c.option+(c.customSize!==undefined?' \u00B7 '+customFinishingText(c):'')+' \u00B7 Quantity '+c.quantity));}}\n   if(d.historyUnavailable)body.append(el('p',{class:'dyd-project__hint'},'This older approval has no recoverable saved image snapshot. The current project is not presented as the approved version.'));\n   for(const img of d.images||[]){const section=el('section');section.append(el('h3',{},img.label),el('img',{src:safeImage(img.reviewUrl),alt:img.label}));body.append(section);}\n   for(const u of d.creditUsage||[])body.append(el('p',{},'Credit: '+({owner_test:'Owner test',complimentary:'Complimentary',purchased:'Purchased pack',gift:'Admin gift'})[u.source]+' \u00B7 '+u.state));for(const o of d.orderLinks||[])body.append(el('p',{},'Order '+o.order_name+' \u00B7 '+o.financial_status+(o.cancelled_at?' \u00B7 Cancelled':'')));for(const e of d.production||[])body.append(el('p',{},'Staff-confirmed production: '+e.stage));if(d.message)body.append(el('p',{},d.message));body.append(el('p',{class:'dyd-project__status'},'Read-only view. Opening this record does not change the customer\u2019s project or approvals.'));return true;\n  }catch(e){body.textContent=e.message;return false;}\n }\n async function admin(period=adminPeriod,customer=null,refresh=false){\n  if(session?.capabilities?.admin!==true)throw Error('Authorized Studio owner access required');adminPeriod=period;workspace('admin');root.classList.add('dyd-project--admin');message('Private owner workspace \u00B7 Customer activity');root.querySelector('[data-editor]').hidden=true;root.querySelector('[data-library]').hidden=true;root.querySelector('[data-admin]').hidden=false;const box=root.querySelector('[data-admin-content]'),previousNodes=[...box.childNodes];box.replaceChildren(el('p',{},'Opening your Studio overview\u2026'));let d;try{d=await api('admin',null,{period,...(customer?{customer}:{} ),...(refresh?{refresh:'1'}:{})});}catch(e){box.replaceChildren(...previousNodes);const retry=el('div',{class:'dyd-project__hint',role:'alert'});retry.append(el('p',{},'The admin report could not refresh. Any previous report is still shown. '+e.message),button('Try loading the report again',()=>admin(period,customer,refresh)));box.prepend(retry);throw e;}\n  if(window.DYDStudioAdmin?.mount){await window.DYDStudioAdmin.mount({host:box,data:d,period,customer,api,ownerId:root.dataset.customerId,getOriginal:adminOriginalArtwork,onNavigate:(nextPeriod,nextCustomer,force)=>admin(nextPeriod,nextCustomer,force),openDetail:adminDetail,renderFunding:fundingPanel,renderCredits:adminCreditPanel,variants:cfg.variants,formatStep:stepLabel,cost:studioUsageEstimate});return;}\n  const periods={today:'Today','7':'Last 7 days','30':'Last 30 days',all:'All time'},periodLabel=periods[period],date=v=>{if(!v)return 'Not recorded';const n=new Date(v);return Number.isNaN(+n)?'Not recorded':new Intl.DateTimeFormat(undefined,{dateStyle:'medium',timeStyle:'short',timeZone:'America/New_York'}).format(n);},badge=(text,kind)=>el('span',{class:'dyd-admin__badge '+kind},text),reference=(id,label='Reference')=>{const detail=el('details',{class:'dyd-admin__reference'});detail.append(el('summary',{},label+' \u00B7 '+String(id||'').slice(-4)),el('code',{},id||'Not recorded'));return detail;},people=d.people||[],person=id=>people.find(x=>x.customer_id===id),identity=id=>person(id)?.name||person(id)?.email||'Customer details not connected';\n  box.replaceChildren(el('p',{},'Studio activity from signed-in customers. This is separate from store registrations and order history.'));if(customer)box.prepend(el('h3',{},'Customer activity \u00B7 '+(people[0]?.name||people[0]?.email||'Selected customer')),el('p',{class:'dyd-project__hint'},'The totals and records below are for this customer only.'));\n  const toolbar=el('div',{class:'dyd-admin__toolbar'}),label=el('label',{},'Reporting period'),filter=el('select',{'aria-label':'Reporting period'});for(const [value,text]of [['today',periods.today],['7',periods['7']],['30',periods['30']],['all',periods.all]]){const o=el('option',{value},text);o.selected=value===period;filter.append(o);}filter.addEventListener('change',()=>admin(filter.value,customer).catch(error));label.append(filter);toolbar.append(label,button('Refresh',()=>admin(period,customer,true)));if(customer)toolbar.append(button('\u2190 All Studio customers',()=>admin(period)));box.append(toolbar,el('p',{class:'dyd-project__status'},periodLabel+' \u00B7 '+(d.periodStart?date(d.periodStart)+' to ':'Recorded history through ')+date(d.periodEnd||new Date())+' \u00B7 America/New_York. Lists show up to 100 recent records; totals include every matching record.'));\n  if(customer){const creditHost=el('section',{class:'dyd-project__card'});box.append(creditHost);adminCreditPanel(creditHost,customer);}\n  const cards=el('div',{class:'dyd-admin__kpis'});for(const [key,label,note]of [['activeUsers','Recently active','Now \u00B7 Studio activity within 2 minutes'],['studioUsers','People who used the Studio',periodLabel+' \u00B7 unique signed-in customers'],['projects','Projects saved',periodLabel+' \u00B7 saved or updated, excluding Trash'],['generated','designs saved',periodLabel+' \u00B7 successful image creations'],['uploaded','Artwork uploaded',periodLabel+' \u00B7 uploaded design files, excluding house photos'],['attention','Generation problems',periodLabel+' \u00B7 '+(d.counts?.failed??0)+' failed, '+(d.counts?.uncertain??0)+' unconfirmed']]){const card=el('div',{class:'dyd-admin__kpi'});card.append(el('span',{},label),el('strong',{},d.counts?.[key]??'-'),el('small',{},note));cards.append(card);}box.append(cards);\n  const issues=[];if(d.orderEventsNeedingReview)issues.push('Some automatic order updates have not finished syncing'+(d.orderEventsNeedingReview>=10?' (10 or more pending).':' ('+d.orderEventsNeedingReview+' pending).')+' This is a connection status, not a request to approve a design.');if(['app_authentication_unavailable','customer_lookup_unavailable','customer_permission_not_installed','customer_fields_not_permitted'].includes(d.identityConnection))issues.push('The Shopify customer connection needs attention. Open Connections & private test settings for details.');if(customer&&d.orderConnection!=='connected'&&d.orderConnection!=='select_customer')issues.push('Recent Shopify order status could not be fully verified. Refresh this customer or check the connection.');if(issues.length){const attention=el('section',{class:'dyd-admin__attention',role:'status'});attention.append(el('h3',{},'Connection & order-sync status'));for(const text of issues)attention.append(el('p',{},text));box.append(attention);}\n  const help=el('p',{class:'dyd-admin__explain'},'One customer can save several projects and designs. Recently active means their visible Studio tab reported activity in the last 2 minutes-it does not prove they are looking at the screen. Date filters use New York time and include today.');box.append(help);\n  const seenKey='dyd-studio-admin-designs-seen-v1';let seen=new Set();try{const stored=JSON.parse(localStorage.getItem(seenKey)||'[]');if(Array.isArray(stored))seen=new Set(stored.filter(id=>typeof id==='string').slice(-1000));}catch{}const newDesigns=()=> (d.jobs||[]).filter(j=>j.status==='succeeded'&&!seen.has(j.id));let designActivity,activityTitle;const markViewed=ids=>{for(const id of ids)seen.add(id);try{localStorage.setItem(seenKey,JSON.stringify([...seen].slice(-1000)));}catch{}drawDesignActivity();box.querySelectorAll('[data-new-design]').forEach(n=>{if(seen.has(n.dataset.newDesign))n.remove();});};\n  function costCard(records,label='Recorded generation cost estimate'){const card=el('section',{class:'dyd-admin__generation-cost'}),values=records.map(studioUsageEstimate),priced=values.filter(v=>v.usd!==null),partial=values.some(v=>v.partial||v.usd===null);card.append(el('strong',{},label));if(!records.length)card.append(el('p',{},'No Design creation is linked to this saved artwork. Uploaded artwork has no Studio image-generation charge.'));else if(!priced.length)card.append(el('p',{},values[0]?.notSent?'No image request was sent.':'Cost unavailable \u00B7 usage was not recorded.'));else{card.append(el('b',{},studioCostText(priced.reduce((n,v)=>n+v.usd,0))+(partial?' \u00B7 partial estimate':'')),el('small',{},'Images: '+studioCostText(priced.reduce((n,v)=>n+(v.imageUsd||0),0))+' \u00B7 Recorded checks: '+(priced.some(v=>v.checkRecords)?studioCostText(priced.reduce((n,v)=>n+(v.checkUsd||0),0)):'not itemized')));const notes=[...new Set(values.map(v=>v.reason))];const detail=el('details');detail.append(el('summary',{},'About this estimate'),el('small',{},notes.join(' ')),el('small',{},'Standard USD prices checked October 19, 2026. Includes recorded corrections once. Provider invoices, taxes, account-wide tests and missing usage are separate. This does not change Studio credits or show a live OpenAI balance.'));card.append(detail);}return card;}\n  function drawDesignActivity(){if(!designActivity)return;designActivity.replaceChildren();const fresh=newDesigns(),latest=(d.jobs||[]).filter(j=>j.status==='succeeded').sort((a,b)=>String(b.created_at).localeCompare(String(a.created_at)))[0];activityTitle=el('strong',{},fresh.length?'New designs on this browser \u00B7 '+fresh.length:'design activity');designActivity.append(activityTitle,el('p',{},latest?'Latest saved design: '+date(latest.created_at)+' \u00B7 '+identity(latest.customer_id):'No successful design in this report.'),button('View designs',()=>{designsTab.click();content.scrollIntoView({block:'start',behavior:'smooth'});}));if(fresh.length)designActivity.append(button('Mark listed designs viewed',()=>markViewed(fresh.map(j=>j.id))));designActivity.append(el('small',{},'New markers are saved on this browser. Opening a design marks it viewed here. Lists contain up to 100 records for the selected period; customer approval stays separate.'));}\n  designActivity=el('section',{class:'dyd-admin__design-activity',role:'status'});box.append(designActivity);\n  const tabs=el('div',{class:'dyd-project__tabs','aria-label':'Studio admin sections'}),content=el('div');box.append(tabs,content);function list(rows,empty,build){content.replaceChildren();if(!rows.length){content.append(el('div',{class:'dyd-admin__empty'},empty));return;}const ul=el('ul',{class:'dyd-admin__list'});for(const r of rows){const li=el('li');build(li,r);ul.append(li);}content.append(ul);}const group=(text,fn)=>{const b=button(text,()=>{tabs.querySelectorAll('button').forEach(t=>t.setAttribute('aria-pressed',String(t===b)));Promise.resolve(fn()).catch(error);});tabs.append(b);return b;};\n  const first=group('Customers & visits',()=>{list(people,'No signed-in customers used the Studio during this period.',(li,r)=>{const head=el('div',{class:'dyd-admin__rowhead'});head.append(el('strong',{},r.name||r.email||'Customer details not connected'),badge(r.active_now?'Recently active':'Not recently active',r.active_now?'active':'neutral'));li.append(head,el('p',{},r.email||'Email not connected'),el('p',{},'Last Studio activity: '+date(r.last_seen)+' \u00B7 '+(r.activity||'Studio visit')),el('p',{},r.first_seen?'First Studio visit: '+date(r.first_seen):'First visit was not recorded. Earliest saved activity: '+date(r.earliest_recorded_activity)),el('p',{},periodLabel+': '+r.projects+' projects \u00B7 '+r.generated+' designs \u00B7 '+r.uploaded+' uploads \u00B7 '+r.requests_used+' image requests used \u00B7 '+r.approvals+' customer approvals'),el('p',{},r.verified_at?'Customer details verified from Shopify: '+date(r.verified_at):'Name and email are unavailable until verified from Shopify.'),button('View customer activity',()=>admin(period,r.customer_id)),el('a',{href:'https://admin.shopify.com/store/decor-your-garage-door/customers/'+r.customer_id,target:'_blank',rel:'noopener'},'Open customer in Shopify \u2197'),reference(r.customer_id,'Shopify customer ID'));});if(!customer&&people.length){const input=el('input',{type:'search',placeholder:'Search these customers by name or email','aria-label':'Search Studio customers'});input.addEventListener('input',()=>{const q=input.value.toLowerCase();content.querySelectorAll('li').forEach(li=>{li.hidden=!li.textContent.toLowerCase().includes(q);});});content.prepend(input);}});\n  group('Credits & Image-service funding',()=>fundingPanel(content).catch(error));\n  group('Projects',()=>list(d.projects||[],'No projects saved or updated during this period.',(li,r)=>{const head=el('div',{class:'dyd-admin__rowhead'});head.append(el('strong',{},r.payload.title||'Untitled project'),badge(stepLabel(r.payload,r.payload.step)||'In progress','neutral'));li.append(head,el('p',{},identity(r.customer_id)+' \u00B7 '+r.payload.covers.length+' cover(s) \u00B7 Saved '+date(r.updated_at)),reference(r.id,'Project'),button('Open project',()=>adminDetail('project',r.id,r.customer_id,'Project details')));const linkedCosts=r.generation_costs||[];li.append(costCard(Object.hasOwn(r,'generation_costs')?linkedCosts:[null],'artwork used in this project \u00B7 estimated cost'));for(const record of linkedCosts){const line=el('p',{},'Linked design \u00B7 '+studioCostText(studioUsageEstimate(record).usd));line.append(button('View linked design',async()=>{if(await adminDetail('job',record.id,r.customer_id,'Design details'))markViewed([record.id]);}));li.append(line);}if(!Object.hasOwn(r,'generation_costs'))li.append(el('p',{},'Cost information is unavailable for this project. Refresh after the reporting update.'));mayaActivity(li,r.id);}));\n  let approvalIndexPromise=null;\n  function approvalIndex(){if(!approvalIndexPromise)approvalIndexPromise=(async()=>{const notices=[...new Map((d.finalApprovalNotices||[]).map(n=>[n.approval_id,n])).values()],records=[];let cursor=0;await Promise.all(Array.from({length:Math.min(3,notices.length)},async()=>{while(cursor<notices.length){const notice=notices[cursor++];try{const detail=await api('admin-detail',null,{kind:'final',id:notice.approval_id,customer:notice.customer_id});records.push({notice,detail});}catch(e){records.push({notice,error:e.message});}}}));return records;})();return approvalIndexPromise;}\n  const designsTab=group('Designs',async()=>{content.replaceChildren(el('p',{role:'status'},'Opening designs and customer approvals\u2026'));const approvalRecords=await approvalIndex();if(!content.isConnected||designsTab.getAttribute('aria-pressed')!=='true')return;const rows=[...(d.jobs||[]),...(d.artwork||[]).map(a=>({...a,uploaded:true}))].sort((a,b)=>String(b.created_at).localeCompare(String(a.created_at)));list(rows,'No generated designs or uploaded artwork during this period.',(li,r)=>{\n   const wrap=el('div',{class:'dyd-admin__design'}),info=el('div'),names={succeeded:'Generated',failed:'Failed',uncertain:'Outcome unconfirmed',generating:'Creating',reserved:'Queued',moderating:'Checking idea',preparing:'Saving artwork'},head=el('div',{class:'dyd-admin__rowhead'});if(r.reviewUrl){const open=button('',async()=>{if(await adminDetail(r.uploaded?'asset':'job',r.id,r.customer_id,'Design details')&&!r.uploaded)markViewed([r.id]);});open.className='dyd-admin__image-button';open.setAttribute('aria-label','Open design');open.append(el('img',{src:safeImage(r.reviewUrl),alt:r.uploaded?'Customer uploaded artwork':'Customer generated design',loading:'lazy'}));wrap.append(open);}head.append(el('strong',{},r.uploaded?'Uploaded artwork':'design'),badge(r.uploaded?'Uploaded':names[r.status]||'In progress',['failed','uncertain'].includes(r.status)?'attention':'neutral'));info.append(head,el('p',{},identity(r.customer_id)),el('p',{},'Created '+date(r.created_at)+' \u00B7 America/New_York'));\n   const approved=approvalRecords.filter(a=>!a.error&&a.notice.customer_id===r.customer_id&&[a.detail.payload?.artwork,a.detail.payload?.personalization?.rendered,...(a.detail.payload?.covers||[]).map(c=>c.artwork),...(a.detail.payload?.panels||[])].some(ref=>ref?.id===r.id));for(const a of approved){const row=el('section',{class:'dyd-admin__customer-approved'});row.append(el('strong',{},'Customer approved \u00B7 '+date(a.detail.approval?.created_at||a.notice.created_at)+' \u00B7 New York'),el('p',{},(a.detail.payload?.title||'Saved design')+' \u00B7 Approved version '+a.detail.approval.revision),button('View exact approved version',()=>adminDetail('final',a.notice.approval_id,a.notice.customer_id,'Exact customer-approved design')));info.append(row);}\n   if(!r.uploaded){if(r.status==='succeeded'&&!seen.has(r.id)){const fresh=badge('New on this browser','active');fresh.dataset.newDesign=r.id;info.prepend(fresh);}info.append(costCard([r.generation_cost||null]));if(!approved.length)info.append(el('p',{class:'dyd-project__hint'},'Saved generation record \u00B7 customer final approval is not recorded in this report.'));}else info.append(el('p',{class:'dyd-project__hint'},'Uploaded artwork \u00B7 no Studio image-generation charge.'));\n   const creditUse=d.creditHistory?.usage?.find(u=>u.job_id===r.id);if(creditUse)info.append(el('p',{},'Credit source: '+({complimentary:'Complimentary',gift:'Admin gift',purchased:'Purchased pack',owner_test:'Private owner test'})[creditUse.source]+' \u00B7 '+({consumed:'Used',reserved:'Reserved',released:'Released'})[creditUse.state]+(creditUse.order_name?' \u00B7 '+creditUse.order_name:'')));\n   const v=cfg.variants.find(v=>v.id===String(r.variant_id));if(v){const size=dimensions({product:v.product,variant:v.id});info.append(el('p',{},(v.product==='front'?'Front door':'Garage')+' \u00B7 '+size.join(' \u00D7 ')+(v.product==='front'?' in':' ft')));}const linked=(d.projects||[]).filter(p=>p.payload?.artwork?.id===r.id||p.payload?.covers?.some(c=>c.artwork?.id===r.id));info.append(el('p',{},linked.length?'Used in '+linked.length+' listed project'+(linked.length===1?'':'s')+': '+linked.map(p=>p.payload.title).join(', '):'Not linked to a project in this report.'));\n   const orders=(d.orderLinks||[]).filter(o=>o.design_id===r.id);for(const o of orders){const payment=({PAID:'Paid',PARTIALLY_PAID:'Partially paid',PARTIALLY_REFUNDED:'Partially refunded',REFUNDED:'Refunded',PENDING:'Payment pending',AUTHORIZED:'Payment authorized',VOIDED:'Payment voided',EXPIRED:'Payment expired'})[o.financial_status]||'Payment status unavailable',status=(o.cancelled_at?'Cancelled \u00B7 ':'')+payment;info.append(el('a',{class:'dyd-admin__order',href:'https://admin.shopify.com/store/decor-your-garage-door/orders/'+o.order_id,target:'_blank',rel:'noopener'},(o.test_order?'Test order ':'Order placed \u00B7 ')+o.order_name+' \u00B7 '+status),el('small',{},'Order date '+date(o.created_at)+' \u00B7 Last verified '+date(o.checked_at)));}\n   for(const order of orders){const stage=d.production?.find(e=>e.design_id===r.id&&e.order_id===order.order_id);info.append(el('p',{},stage?'Staff-confirmed production: '+({in_production:'In production',printed:'Printed',shipped:'Shipped'})[stage.stage]+' \u00B7 '+date(stage.created_at):'Printing status not confirmed. Payment does not mean printed.'));if(customer&&order.financial_status==='PAID'&&!order.cancelled_at){const details=el('details');details.append(el('summary',{},'Record a production update'));const select=el('select',{'aria-label':'Production stage'});for(const [v,t]of [['in_production','In production'],['printed','Printed'],['shipped','Shipped']])select.append(el('option',{value:v},t));const note=el('input',{'aria-label':'Production confirmation note',placeholder:'Actual production confirmation or reference',maxlength:'300'}),key=crypto.randomUUID();details.append(select,note,button('Save confirmed production status',async()=>{if(note.value.trim().length<3)throw Error('Enter the actual production confirmation.');await api('production-status',{customer,design:r.id,order:order.order_id,stage:select.value,note:note.value.trim(),key});await admin(period,customer);}));info.append(details);}}\n   if(!orders.length)info.append(el('p',{class:'dyd-project__status'},d.orderConnection==='connected'&&d.orderCheck?.complete?'No linked order found in the last 60 days.':!customer?'Open this customer to check linked orders.':'Order status unavailable - '+({order_permission_not_installed:'read-only order permission is not installed',order_fields_not_permitted:'Shopify has not permitted the order fields',order_scan_incomplete:'order scan is incomplete'}[d.orderConnection]||'the Shopify order check could not complete')+'.'));\n   if(!r.uploaded&&r.status!=='succeeded')info.append(el('p',{},r.provider_dispatched?'Request sent; counts toward the private provider spending cap. Credit usage is tracked separately.':'No image request was sent.'));if(r.status==='uncertain')info.append(el('p',{class:'dyd-admin__error'},'Outcome unconfirmed. Check before retrying; no automatic new request.'));if(r.failure_code)info.append(reference(r.failure_code,'Failure detail'));info.append(reference(r.id,'Design'));wrap.append(info);li.append(wrap);\n  });content.prepend(el('p',{class:'dyd-project__status'},'Order notifications update saved links automatically. Opening a customer or pressing Refresh also checks Shopify. Recent orders cover 60 days. Older saved links retain their last verified date. Adding to cart is not an order; refunds shown are order-level.'));\n   const history=el('details',{class:'dyd-admin__approval-history'});history.append(el('summary',{},'Customer-approved versions ('+approvalRecords.length+')'));for(const a of approvalRecords){const item=el('section',{class:'dyd-admin__customer-approved'});item.append(el('strong',{},a.error?'Approval details temporarily unavailable':'Customer approved \u00B7 '+date(a.detail.approval?.created_at||a.notice.created_at)+' \u00B7 New York'),el('p',{},a.error?identity(a.notice.customer_id):identity(a.notice.customer_id)+' \u00B7 '+(a.detail.payload?.title||'Saved design')),button('View exact approved version',()=>adminDetail('final',a.notice.approval_id,a.notice.customer_id,'Exact customer-approved design')));if(a.error)item.append(el('p',{},'The approval record is preserved. Try opening it again.'));history.append(item);}content.append(history);\n  });\n\n  async function loadQualityEvaluation(host){\n   host.replaceChildren(el('p',{},'Loading the private synthetic evaluation\u2026'));\n   async function refreshEvaluation(){const d=await api('quality-evaluations');if(!host.isConnected)return;host.replaceChildren(el('h3',{},'Private artwork quality evaluation'),el('p',{},'Approved allowance: 2 image requests and 2 inspections total. Synthetic designs only. No customer credits are used.'));\n    for(const [key,label] of [['landscape','Landscape detail'],['people-animals','People and animal detail']]){const r=d.evaluations.find(r=>r.case===key),card=el('section',{class:'dyd-project__card'});card.append(el('h4',{},label));if(!r)card.append(button('Run '+label.toLowerCase()+' evaluation',async()=>{await api('quality-evaluate',{case:key,key:crypto.randomUUID()});await refreshEvaluation();},true));else {card.append(el('p',{role:'status'},({ready:'Queued for '+r.phase,working:r.phase==='image'?'Creating synthetic artwork\u2026':'Inspecting the original detail\u2026',succeeded:'Passed the automatic quality checks',failed:r.result?.code==='provider_http_401'?'Inspection connection needs attention (401). No customer credit was used.':'Needs review \u00B7 '+(r.result?.code||'Processing did not complete')})[r.state]));if(r.reviewUrl||r.originalUrl)card.append(el('img',{src:safeImage(r.reviewUrl||r.originalUrl),alt:'Synthetic evaluation: '+label,loading:'lazy'}));if(r.report?.assessment){card.append(el('p',{},'Inspection confidence: '+r.report.assessment.confidence),el('p',{},(r.report.assessment.reasons||[]).join(' ')));const details=el('details');details.append(el('summary',{},'Private inspection details'));for(const [name,result]of Object.entries(r.report.assessment.checks||{}))details.append(el('p',{},name+': '+result));card.append(details);}}host.append(card);\n    }host.append(button('Refresh evaluation status',refreshEvaluation));\n   }await refreshEvaluation();  }\n  const technical=el('details',{class:'dyd-admin__technical'}),technicalBody=el('div');technical.append(el('summary',{},'Technical checks'),el('p',{},'Private synthetic tests and connection diagnostics. Automatic artwork checks continue before delivery.'),technicalBody);let technicalLoaded=false;technical.addEventListener('toggle',()=>{if(technical.open&&!technicalLoaded){technicalLoaded=true;loadQualityEvaluation(technicalBody).catch(e=>{technicalLoaded=false;technicalBody.replaceChildren(el('p',{role:'alert',class:'dyd-admin__error'},'Quality evaluation status could not load. '+e.message));});}});box.append(technical);\n  const settings=el('details',{class:'dyd-admin__permissions'});settings.append(el('summary',{},'Connections & private test settings'),el('p',{},'Only your authorized owner account can open this dashboard. Customer details come from verified Shopify records; missing fields are shown as unavailable. Store sign-up totals are separate. Design-linked recent order status is checked for a selected customer; this is not a complete historical order report. Checkout and print release remain held during private testing. Older first-visit dates cannot be reconstructed reliably. Customer connection: '+({connected:'Connected to Shopify',cached:'Showing verified saved details',customer_permission_not_installed:'Read-only customer permission still needs approval in Shopify',customer_fields_not_permitted:'Shopify has not permitted the requested name/email fields',app_authentication_unavailable:'Shopify app authentication needs attention',customer_lookup_unavailable:'Customer lookup is temporarily unavailable'}[d.identityConnection]||'Not checked')+'.'));settings.append(el('p',{},d.orderNotifications?.connected?'Automatic order updates: connected for placed, paid, cancelled, updated and refunded orders.':'Automatic order updates are not connected yet.'),el('p',{},d.orderEventsNeedingReview?'Some automatic order updates are still pending. Refresh the customer to check the current order status; no design approval is requested.':'No pending order notification problems.'));if(!d.orderNotifications?.connected)settings.append(button('Connect automatic order updates',async()=>{const result=await api('connect-order-updates',{});if(!result.orderNotifications?.connected)throw Error('Order notification setup could not be confirmed.');await admin(period,customer,true);}));box.append(settings);drawDesignActivity();designsTab.click();\n }\n function premiumIcon(name,className){const wrap=el('span',{class:className,'aria-hidden':'true'}),ns='http://www.w3.org/2000/svg',svg=document.createElementNS(ns,'svg');for(const [k,v]of Object.entries({viewBox:'0 0 24 24',fill:'none',stroke:'currentColor','stroke-width':'1.65','stroke-linecap':'round','stroke-linejoin':'round',focusable:'false'}))svg.setAttribute(k,v);const shapes={upload:[['path',{d:'M12 16V3m-5 5 5-5 5 5M4 15v5h16v-5'}]],check:[['path',{d:'m5 12 4 4L19 6'}]],exterior:[['path',{d:'m3 11 9-7 9 7M5 10v11h14V10M8 21V11h8v10M8 15h8M8 18h8'}],['circle',{cx:19,cy:4,r:2}]],interior:[['rect',{x:3,y:3,width:18,height:18,rx:2}],['path',{d:'M7 21V8h10v13M7 12h10M7 16h10M3 6h18'}]],ai:[['path',{d:'m4 20 13-13 3 3L7 23Z',transform:'translate(0 -2)'}],['path',{d:'m13 7 3 3M18 2v4M16 4h4M5 3v4M3 5h4M20 15v4M18 17h4'}]],image:[['rect',{x:3,y:4,width:18,height:16,rx:3}],['circle',{cx:8,cy:9,r:1.5}],['path',{d:'m3 16 5-5 4 4 3-3 6 6'}]],folder:[['path',{d:'M3 8V6a2 2 0 0 1 2-2h4l2 3h8a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z'}],['path',{d:'M3 10h18'}]],library:[['rect',{x:3,y:3,width:7,height:7,rx:1.7}],['rect',{x:14,y:3,width:7,height:7,rx:1.7}],['rect',{x:3,y:14,width:7,height:7,rx:1.7}],['rect',{x:14,y:14,width:7,height:7,rx:1.7}]],admin:[['path',{d:'m12 3 8 3v6c0 4-4 7-8 9-4-2-8-5-8-9V6Z'}],['path',{d:'m8 12 3 3 5-6'}]]};for(const [tag,attrs]of shapes[name]||shapes.folder){const node=document.createElementNS(ns,tag);for(const[k,v]of Object.entries(attrs))node.setAttribute(k,String(v));svg.append(node);}wrap.append(svg);return wrap;}\n async function resumeSavedStudioProject(){\n  if(busy)return;const id=project.id;if(!hasSavedStudioProject(project))return;busy=true;\n  try{await saveQueue;const latest=(await api('project',null,{id})).project;if(latest?.id!==id||!hasSavedStudioProject(latest))throw Error('This saved project could not be reopened. Your current setup is unchanged.');\n   project=restored(latest);artImage=null;artMeta=null;houseImage=null;customMethodSelection=false;editingNewVersion=false;showEditor();render();remember();message('Saved project restored: '+p().title+'. Your cover choices and artwork are preserved.');\n  }finally{busy=false;}\n }\n async function startFreshStudioProject(mode=null,aiPath='idea'){\n  if(busy||generationPending){message('Finish checking your current image request before starting a new project.');return;}\n  busy=true;\n  try{\n   await saveQueue;\n   if(project.revision>0)await save();\n   else if(p().title||p().artwork||p().inspiration||project.started)unsavedDrafts.push({project,artImage,artMeta,houseImage});\n   const payload=blank();if(mode)Object.assign(payload,{title:defaultStudioProjectName(mode,aiPath,cfg.customerFirstName),creationMode:mode,aiPath});\n   if(cfg.choiceExamples&&mode){const separator=payload.title.lastIndexOf(' \u00B7 ');payload.title=payload.title.slice(0,separator+3)+(mode==='upload'?'Upload finished artwork':aiPath==='remake'?'Reimagine a picture':'Create from an idea');}\n   project={id:crypto.randomUUID(),revision:0,payload,approvals:{}};\n   artImage=null;artMeta=null;houseImage=null;canvas=null;undo=[];loadToken++;\n   customMethodSelection=false;editingNewVersion=false;selectingPreview=false;selectingSource=false;standardChoicePending.clear();selectionScroll.reset();\n   try{sessionStorage.removeItem('dyd-project-resume');sessionStorage.removeItem(customSetupKey());sessionStorage.removeItem(customSetupKey('guest'));}catch{}\n   guest.clear();\n   const url=new URL(location.href);url.searchParams.delete('project');url.searchParams.delete('variant');url.searchParams.delete('source');url.searchParams.set('workspace','new');history.replaceState(history.state,'',url.pathname+url.search+url.hash);\n   busy=false;\n   if(mode){showEditor();render();message('New project. Choose your cover and size. Your project name is already filled in.');}\n   else{creationEntry();message('Start a new project. Your previous saved project is in My designs & projects.');}\n  }finally{busy=false;}\n }\n function appendVisualCreationChoices(onChoose){\n  if(!cfg.choiceExamples)return false;\n  const examples=cfg.choiceExamples,wrap=el('div',{class:'dyd-entry-options'}),bar=el('div',{class:'dyd-entry-examples',role:'group','aria-label':'Example style'}),cards=el('div',{class:'dyd-entry-choices',id:'dydStudioChoiceCards'}),images=[];\n  let current='everyday';const switches=[];\n  bar.append(el('span',{class:'dyd-entry-examples__label'},'Examples'));\n  for(const [key,label]of [['everyday','Everyday'],['christmas','Christmas'],['halloween','Halloween'],['spring','Spring & Garden']]){\n   const toggle=el('button',{type:'button','aria-pressed':String(key===current),'aria-controls':'dydStudioChoiceCards'},label);\n   toggle.addEventListener('click',()=>{current=key;for(const entry of images){const source=examples[current][entry.key];entry.image.src=source.src;entry.image.alt=source.alt;}for(const item of switches)item.toggle.setAttribute('aria-pressed',String(item.key===current));});\n   switches.push({key,toggle});bar.append(toggle);\n  }\n  for(const [key,label,description,cta,path]of [['idea','Create from an idea','Answer a few questions. Describe your idea.','Start with my idea','idea'],['remake','Reimagine a picture','Turn a picture you like into a new design.','Reimagine my picture','remake']]){\n   const source=examples[current][key],card=button('',()=>onChoose('ai',path),key==='idea'),image=el('img',{src:source.src,alt:source.alt,width:'900',height:'600',loading:key==='idea'?'eager':'lazy',decoding:'async',class:'dyd-entry-card__image'}),noteId='dyd-entry-note-'+key;\n   card.classList.add('dyd-entry-card');card.setAttribute('aria-label',label);card.setAttribute('aria-describedby',noteId);\n   const copy=el('span',{class:'dyd-entry-card__copy'});copy.append(el('strong',{},label),el('span',{class:'dyd-entry-card__description',id:noteId},description),el('span',{class:'dyd-entry-card__cta','aria-hidden':'true'},cta+'  \u2192'));\n   card.append(image,copy);cards.append(card);images.push({key,image});\n  }\n  const upload=button('',()=>onChoose('upload'));\n  upload.classList.add('dyd-entry-upload');upload.setAttribute('aria-label','Upload finished artwork');upload.append(premiumIcon('upload','dyd-entry-upload__icon'),el('span',{},'Upload finished artwork'),el('small',{},'Already have a print-ready design?'));\n  wrap.append(bar,cards,el('p',{class:'dyd-entry-caption'},'Illustrative examples'),upload);panel.append(wrap);return true;\n }\n\n function creationEntry(){root.classList.remove('dyd-project--signup-library');if(busy){message('Your design is still processing. Check its status before starting another project.');return;}showEditor();root.classList.add('dyd-project--choosing');title('Create a design','Choose how you want to create your cover.');\n  const start=(mode,aiPath='idea')=>startFreshStudioProject(mode,aiPath);\n  if(!appendVisualCreationChoices(start)){\n  const choices=el('div',{class:'dyd-start-choices'});function card(label,description,icon,fn,primary=false){const b=button('',fn,primary);b.classList.add('dyd-start-choice');b.setAttribute('aria-label',label);b.append(premiumIcon(icon,'dyd-start-choice__icon'),el('strong',{},label),el('span',{class:'dyd-start-choice__description'},description));return b;}\n  choices.append(card('Create from an idea','Describe your idea. We create the artwork.','ai',()=>start('ai','idea'),true),card('Reimagine a picture','Upload an image and create a new version.','ai',()=>start('ai','remake')),card('Upload your own image','Use finished artwork you already have.','image',()=>start('upload')));\n  panel.append(choices);}\n  if(hasSavedStudioProject(project)||project.started||p().artwork)panel.append(button('Create a new project',()=>startFreshStudioProject()));if(hasSavedStudioProject(project))panel.append(button('Continue my saved project',resumeSavedStudioProject));\n  for(const [i,draft]of unsavedDrafts.entries()){const resume=button('Resume unsaved idea: '+draft.project.payload.title,()=>{({project,artImage,artMeta,houseImage}=draft);unsavedDrafts.splice(i,1);render();});resume.classList.add('dyd-unsaved-choice');panel.append(resume);}\n }\n root.querySelectorAll('[data-view]').forEach(b=>{const icon=premiumIcon(({editor:'ai',library:'library',admin:'admin'})[b.dataset.view],'dyd-workspace-icon');b.prepend(icon);});\n root.querySelectorAll('[data-view]').forEach(b=>b.addEventListener('click',()=>{if(guestMode&&b.dataset.view!=='editor'){accountGate(b.dataset.view==='library'?'library':'create');return;}root.querySelectorAll('[data-view]').forEach(n=>n.setAttribute('aria-pressed',String(n===b)));Promise.resolve(b.dataset.view==='library'?showGallery():b.dataset.view==='admin'?admin():creationEntry()).catch(error);}));\n async function init(){if(root.dataset.customer==='false'){openGuest();return;}try{session=await api();queueMicrotask(initCustomBasket);const headerConfig=document.querySelector('[data-dyd-session-config]');if(session.authenticated&&headerConfig)document.querySelectorAll('.dyd-account-entry').forEach(link=>{link.setAttribute('aria-label',headerConfig.dataset.account);const desktop=link.querySelector('.dyd-account-desktop'),mobile=link.querySelector('.dyd-account-mobile');if(desktop)desktop.textContent=headerConfig.dataset.account;if(mobile)mobile.textContent=headerConfig.dataset.accountShort;});root.querySelector('[data-app]').hidden=false;root.querySelector('[data-view=admin]').hidden=session.capabilities?.admin!==true;message('Signed in \u00B7 Owner-only private draft \u00B7 All changes stay in your Studio');const pendingGuest=guest.read();let restoredGuest=restoreCustomSetup();if(!restoredGuest&&pendingGuest&&!new URLSearchParams(location.search).has('project')){Object.assign(p(),pendingGuest);project.started=true;await save();guest.clear();restoredGuest=true;message('Your cover choices were restored and saved to your account.');}let saved;try{saved=restoredGuest?null:sessionStorage.getItem('dyd-project-resume');const requested=new URLSearchParams(location.search).get('project');if(requested&&!sessionStorage.getItem('dyd-project-job'))saved=requested;else if(requested)message('A creation request is unfinished. Check its status before switching projects.');}catch{}if(saved){try{project=restored((await api('project',null,{id:saved})).project);if(project.source_project_id&&p().artwork&&!p().matchingSource&&!project.approvals.final){try{const source=(await api('project',null,{id:project.source_project_id})).project;if(window.DYDProjectCollection?.pendingMatch(project,[source])){p().matchingRequested=true;p().step=setupProblems(p()).length?0:1;}}catch{}}if(new URLSearchParams(location.search).has('review_step')&&window.DYDProjectCollection){p().step=window.DYDProjectCollection.stage(project).step;}}catch{try{sessionStorage.removeItem('dyd-project-resume');}catch{}message('Previous project could not be opened. Your saved library and Trash are available.');}}\n   try{generationPending=JSON.parse(sessionStorage.getItem('dyd-project-job')||'null');}catch{}const entryView=studioEntryView({search:location.search,restoredSetup:restoredGuest,pendingGeneration:!!generationPending,canAdmin:session.capabilities?.admin===true});if(project.revision===0){const v=new URLSearchParams(location.search).get('variant'),known=cfg.variants.find(x=>x.id===v);if(known){p().covers[0].product=known.product;p().covers[0].variant=known.id;}if(entryView==='project')await save();}const workspace=new URLSearchParams(location.search).get('workspace');if(entryView==='choices')creationEntry();else{render();if(entryView==='library')await showGallery();else if(entryView==='admin')await admin();}\n   api('presence',{activity:workspace==='admin'?'Studio admin':workspace==='library'?'Design library':'Studio visit'}).catch(()=>{});setInterval(()=>{if(document.visibilityState==='visible')api('presence',{activity:root.classList.contains('dyd-project--admin')?'Studio admin':!root.querySelector('[data-library]').hidden?'Design library':stepLabel(p(),p().step)}).catch(()=>{});},60000);\n   generationPending=JSON.parse(sessionStorage.getItem('dyd-project-job')||'null');if(generationPending?.idempotencyKey&&p().step!==1){panel.append(button('Check my unfinished generation',resumeGeneration));}\n  }catch(e){if(e.status===401){openGuest();return;}if(root.dataset.customer==='true'){openUnavailable();return;}message(e.status===401?'Log in to your store account to open your saved designs.':e.status===403?'The Studio is closed for private testing. Regular shopping and your order history are available.':e.message);root.querySelector('[data-login]').hidden=e.status!==401;}}\n document.addEventListener('visibilitychange',()=>{if(document.visibilityState==='visible')refreshCredits().catch(()=>{});});window.addEventListener('focus',()=>refreshCredits().catch(()=>{}));setInterval(()=>{if(document.visibilityState==='visible'&&session?.authenticated)refreshCredits().catch(()=>{});},30000);\n window.DYD_MAYA_STUDIO={\n  snapshot(){return {projectId:project.id,revision:project.revision,step:p().step,stepLabel:stepLabel(p(),p().step),workflow:p().workflow,covers:p().covers.map(c=>({product:c.product,size:c.customSize!==undefined?customSizeText(c):currentVariant(c)?.title,mount:c.option,...(c.customSize!==undefined?{finishing:customFinishingText(c)}:{})})),choices:p().choices||null,artworkSaved:!!p().artwork,availableCredits:session?.creditWallet?.available??null,manualFinalApprovalRequired:true};},\n  async execute(change){\n   throw Error('Maya provides guidance only. Please choose sizes, edit, generate, approve and add to cart using your own Studio controls.');\n  }\n };\n init();\n})();\n\n\n\n\n\n\n"],
  "mappings": "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",
  "names": ["root", "remember", "image", "p", "project", "a", "workspace", "details", "save", "e", "title", "i", "reminder", "create", "summary", "panel", "q", "door", "c", "actions", "history", "v", "label", "notice", "select", "d", "r"]
}
