1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9359],{1895:(e,t,r)=>{r.d(t,{C:()=>l,S:()=>n});var a=r(30048),s=r(74164);let o=["all","general","home","residential","circulation","commercial","exterior"];function l(){let e=(0,s.c)("CommonComponent.SelectorFields");return{change:e("change"),choose:e("choose"),loading:e("loading"),selectRoomType:e("selectRoomType"),selectRoomStyle:e("selectRoomStyle"),selectLandscapeType:e("selectLandscapeType"),selectLandscapeStyle:e("selectLandscapeStyle"),selectExteriorType:e("selectExteriorType"),selectExteriorStyle:e("selectExteriorStyle"),selectElements:e("selectElements"),elementsSelectedCount:t=>e("elementsSelectedCount",{count:t}),roomType:e("roomType"),roomStyle:e("roomStyle"),landscapeType:e("landscapeType"),landscapeStyle:e("landscapeStyle"),exteriorType:e("exteriorType"),exteriorStyle:e("exteriorStyle"),autoDetect:e("autoDetect"),noStylePreset:e("noStylePreset"),placeholders:{roomType:e("placeholders.roomType"),roomStyle:e("placeholders.roomStyle"),landscapeType:e("placeholders.landscapeType"),landscapeStyle:e("placeholders.landscapeStyle"),exteriorType:e("placeholders.exteriorType"),exteriorStyle:e("placeholders.exteriorStyle")}}}function n(){let e=(0,s.c)("CommonComponent.SelectorFields.tabs");return(0,a.useCallback)((t,r)=>o.includes(t)?e(t):r,[e])}},5638:(e,t,r)=>{r.d(t,{Z:()=>s});let a=["1:1","2:3","3:2","3:4","4:3","4:5","5:4","9:16","16:9","21:9"];function s(e,t,r=a){let o=r.filter(e=>"auto"!==e),l=o[0]??"1:1";if(!e||!t||e<=0||t<=0)return l;let n=e/t,i=l,c=1/0;for(let e of o){let t=function(e){let[t,r]=e.split(":").map(Number);return t&&r?t/r:null}(e);if(null===t)continue;let r=Math.abs(n-t);r<c&&(c=r,i=e)}return i}},23461:(e,t,r)=>{r.d(t,{e:()=>c});var a=r(30048),s=r(3678);let o=[],l=async e=>(await s.qL.get("element-options",{searchParams:e}).json()).data??o,n=new Map,i=new Map;function c(e,t){let r=`${e}:${t}`,s=n.get(r),[c,u]=(0,a.useState)(s??o),[d,m]=(0,a.useState)(!n.has(r)&&!!e);return(0,a.useEffect)(()=>{if(!e){u(o),m(!1);return}let a=n.get(r);if(a){u(a),m(!1);return}u(o),m(!0);let s=!1,c=i.get(r)??l({designType:e,locale:t}).then(e=>(n.set(r,e),e)).finally(()=>{i.delete(r)});return i.has(r)||i.set(r,c),c.then(e=>{s||(u(e),m(!1))}).catch(()=>{s||(u(o),m(!1))}),()=>{s=!0}},[e,r,t]),{tabs:(0,a.useMemo)(()=>{let e=new Map;for(let t of c){let r=e.get(t.category);(!r||t.sortOrder<r.sortOrder)&&e.set(t.category,{key:t.category,sortOrder:t.sortOrder})}return Array.from(e.values()).sort((e,t)=>e.sortOrder-t.sortOrder).map(e=>({key:e.key,label:e.key.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}))},[c]),options:c,isLoading:d}}},26835:(e,t,r)=>{r.d(t,{u:()=>m});var a=r(5320);let s=(e,t,r)=>{if(e&&"reportValidity"in e){let s=(0,a.Jt)(r,t);e.setCustomValidity(s&&s.message||""),e.reportValidity()}},o=(e,t)=>{for(let r in t.fields){let a=t.fields[r];a&&a.ref&&"reportValidity"in a.ref?s(a.ref,r,e):a&&a.refs&&a.refs.forEach(t=>s(t,r,e))}},l=(e,t)=>{t.shouldUseNativeValidation&&o(e,t);let r={};for(let s in e){let o=(0,a.Jt)(t.fields,s),l=Object.assign(e[s]||{},{ref:o&&o.ref});if(n(t.names||Object.keys(e),s)){let e=Object.assign({},(0,a.Jt)(r,s));(0,a.hZ)(e,"root",l),(0,a.hZ)(r,s,e)}else(0,a.hZ)(r,s,l)}return r},n=(e,t)=>{let r=i(t);return e.some(e=>i(e).match(`^${r}\\.\\d+`))};function i(e){return e.replace(/\]|\[/g,"")}var c=r(83263),u=r(29199);function d(e,t){try{var r=e()}catch(e){return t(e)}return r&&r.then?r.then(void 0,t):r}function m(e,t,r){if(void 0===r&&(r={}),"_def"in e&&"object"==typeof e._def&&"typeName"in e._def)return function(s,n,i){try{return Promise.resolve(d(function(){return Promise.resolve(e["sync"===r.mode?"parse":"parseAsync"](s,t)).then(function(e){return i.shouldUseNativeValidation&&o({},i),{errors:{},values:r.raw?Object.assign({},s):e}})},function(e){if(Array.isArray(null==e?void 0:e.issues))return{values:{},errors:l(function(e,t){for(var r={};e.length;){var s=e[0],o=s.code,l=s.message,n=s.path.join(".");if(!r[n])if("unionErrors"in s){var i=s.unionErrors[0].errors[0];r[n]={message:i.message,type:i.code}}else r[n]={message:l,type:o};
1if("unionErrors"in s&&s.unionErrors.forEach(function(t){return t.errors.forEach(function(t){return e.push(t)})}),t){var c=r[n].types,u=c&&c[s.code];r[n]=(0,a.Gb)(n,t,r,o,u?[].concat(u,s.message):s.message)}e.shift()}return r}(e.errors,!i.shouldUseNativeValidation&&"all"===i.criteriaMode),i)};throw e}))}catch(e){return Promise.reject(e)}};if("_zod"in e&&"object"==typeof e._zod)return function(s,n,i){try{return Promise.resolve(d(function(){return Promise.resolve(("sync"===r.mode?c.qg:c.EJ)(e,s,t)).then(function(e){return i.shouldUseNativeValidation&&o({},i),{errors:{},values:r.raw?Object.assign({},s):e}})},function(e){if(e instanceof u.a$)return{values:{},errors:l(function(e,t){for(var r={};e.length;){var s=e[0],o=s.code,l=s.message,n=s.path.join(".");if(!r[n])if("invalid_union"===s.code&&s.errors.length>0){var i=s.errors[0][0];r[n]={message:i.message,type:i.code}}else r[n]={message:l,type:o};if("invalid_union"===s.code&&s.errors.forEach(function(t){return t.forEach(function(t){return e.push(t)})}),t){var c=r[n].types,u=c&&c[s.code];r[n]=(0,a.Gb)(n,t,r,o,u?[].concat(u,s.message):s.message)}e.shift()}return r}(e.issues,!i.shouldUseNativeValidation&&"all"===i.criteriaMode),i)};throw e}))}catch(e){return Promise.reject(e)}};throw Error("Invalid input: not a Zod schema")}},59359:(e,t,r)=>{r.r(t),r.d(t,{SketchToImageForm:()=>U});var a=r(54028),s=r(5320),o=r(26835),l=r(30048),n=r(74164),i=r(7497),c=r(31798),u=r(82454);let d=r(39110).KY.extend({model:u.k5(c.l3),sketchImageUrl:u.bz().optional(),sketchType:u.k5(["auto","exterior","interior","2d-plan","layout","art","furniture","product"]),prompt:u.Yj().max(1e4,"Prompt is too long (max 10000 characters)").optional(),elements:u.YO(u.Yj()).optional(),referenceImageFiles:u.YO(u.bz()).max(8,"Maximum 8 reference images allowed").optional(),workspaceId:u.Yj().optional().nullable()});var m=r(9899);let p={auto:"",exterior:"exterior architecture",interior:"interior design","2d-plan":"floor plan, 2d layout",layout:"architectural layout",art:"artistic design",furniture:"furniture design",product:"product design"};var h=r(5638);let f=[{value:"auto"},{value:"exterior"},{value:"interior"},{value:"2d-plan"},{value:"layout"},{value:"art"},{value:"furniture"},{value:"product"}];var g=r(80958),y=r(58331),x=r(99285),v=r(73848),b=r(28507),j=r(91649),k=r(30163),S=r(42221),w=r(3680),T=r(82339),N=r(38743),E=r(88535),I=r
1(15415),C=r(23461),R=r(89406);function U({onSubmit:e,isSubmitting:t,currentWorkspaceId:r,onUploadStart:u,onUploadComplete:P,onCreditCostChange:F}){let M=(0,n.c)("SketchToImageForm"),A=(0,w.useSearchParams)().get("t")??void 0,O=(0,n.c)("FormOptions"),_=(0,i.Ym)(),{options:V}=(0,C.e)(I.Fj.SKETCH,_),z=(0,l.useMemo)(()=>(0,v.T)(),[]),G=(0,l.useRef)(null),K=(0,l.useRef)(null),L=(0,l.useRef)(null),{handleSubmit:Y,watch:$,setValue:J,getValues:Z,formState:{errors:D}}=(0,s.mN)({resolver:(0,o.u)(d),defaultValues:{model:c.l3.GPT_IMAGE_2_IMAGE_TO_IMAGE,sketchImageUrl:void 0,sketchType:"auto",prompt:"",elements:[],renderSpeed:"best",referenceImageFiles:[],aspectRatio:"1:1",outputFormat:"png",resolution:"1K",workspaceId:r}}),H=$("sketchType"),q=$("prompt"),X=$("elements"),B=$("renderSpeed"),[Q,W]=(0,l.useState)(0),[ee,et]=(0,l.useState)(null);(0,l.useEffect)(()=>{if(!A)return;let e=(0,T.OB)(A);if(!e?.metadata)return;let t=e.metadata;t.renderSpeed&&J("renderSpeed",t.renderSpeed),t.aspectRatio&&J("aspectRatio",t.aspectRatio),t.outputFormat&&J("outputFormat",t.outputFormat),t.resolution&&J("resolution",t.resolution),t.sketchType&&J("sketchType",t.sketchType),Array.isArray(t.elements)&&J("elements",t.elements),t.sketchImageUrl&&G.current?.setUrl(t.sketchImageUrl),("string"==typeof t.additionalPrompt||Array.isArray(t.referenceImageUrls))&&L.current?.setContent("string"==typeof t.additionalPrompt?t.additionalPrompt:"",Array.isArray(t.referenceImageUrls)?t.referenceImageUrls:[])},[A]),(0,l.useEffect)(()=>{J("workspaceId",r)},[r,J]),(0,g.w)(B,J);let er=$("model"),ea=c.a8[er],es=$("resolution");(0,l.useEffect)(()=>{F?.((0,c.dy)(er,es))},[er,es,F]);let eo=(0,l.useMemo)(()=>ea.supportedAspectRatios.filter(e=>"auto"!==e),[ea]);(0,l.useEffect)(()=>{ee?.width&&ee?.height&&J("aspectRatio",(0,h.Z)(ee.width,ee.height,eo))},[ee?.width,ee?.height,eo,J]),(0,l.useEffect)(()=>{let e=Z("aspectRatio");e&&!eo.includes(e)&&J("aspectRatio",eo.includes("1:1")?"1:1":eo[0]??"1:1")},[eo,Z,J]);let el=(0,l.useMemo)(()=>{var e;let t,r;return t=p[(e={userPrompt:q||"",sketchType:H,elementPrompts:(0,m.yy)(X,V),referenceImageCount:Q,renderSpeed:B}).sketchType],r=(0,m.wn)(e.elementPrompts),(0,m.$e)([{title:"Role and task",lines:["Act as an architectural concept artist and visualization specialist","Transform the uploaded sketch into a resolved design visualization"]},{title:"Source interpretation",lines:[...(0,m.wp)("design",e.referenceImageCount??0,e.renderSpeed),t?`Sketch category: ${t}`:"Infer the most likely design category from the source sketch",(0,m.M6)("balanced")]},{title:"User direction",lines:[(0,m.ml)(e.userPrompt),(0,m.d8)("Required context elements",r)]},{title:"Lighting and atmosphere",lines:["Use coherent light direction, realistic shadows, and a clean presentation mood"]},{title:"Visual style and composition",lines:["Keep the original composition readable while adding depth, materials, and usable design detail"]},{title:"Quality bar",lines:(0,m.Gf)("sketch")},{title:"Negative constraints",lines:(0,m.hw)(["Do not ignore the sketch structure, no random extra buildings, no messy line artifacts"])}])},[q,H,X,V,Q,B]),en=async t=>{try{if(!G.current?.isReady())return void k.oR.error(M("selectImage"));u?.(),k.oR.loading(M("uploading"),{id:"image-upload"});let r=await G.current.getImageInfo();if(!r){k.oR.error(M("uploadFailed"),{id:"image-upload"}),P?.();return}let a=await L.current?.uploadAll();k.oR.success(M("uploadSuccess"),{id:"image-upload"}),P?.(),k.oR.loading(M("startingGeneration"),{id:"image-generation"});let s={...t,sketchImageUrl:r.url,referenceImageUrls:a,finalPrompt:el};await e(s),k.oR.dismiss("image-generation")}catch(e){console.error("Form submission error:",e),k.oR.dismiss("image-upload"),k.oR.dismiss("image-generation"),k.oR.error(M("submitFailed")),P?.()}};return(0,a.jsx)("form",{id:S.A.SKETCH,onSubmit:Y(en),className:"h-full flex flex-col overflow-hidden",children:(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto scrollbar-hide space-y-6 p-0.5",children:[(0,a.jsx)(b.o,{ref:G,label:M("sketchImage"),useStore:z,localFileRef:K,workspaceId:r,allowWorkspaceSelection:!0,required:!0,previewHeightClassName:"h-48",onPreviewChange:e=>et(e?{width:e.width,height:e.height}:null)}),D.sketchImageUrl&&(0,a.jsx)("p",{className:"text-sm text-destructive",children:String(D.sketchImageUrl.message)}),!ee&&(0,a.jsx)(N._,{examples:E.z,onSelect:e=>G.current?.setUrl(e.url)}),(0,a.jsx)(y.jz,{value:B,onChange:e=>J("renderSpeed",e)}),(0,a.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:(0,a.jsx)(y.FX,{label:M("sketchType"),value:H,onChange:e=>J("sketchType",e),options:f.map(e=>({value:e.value,label:O(`sketchType.${e.value}.label`)}))})}),(0,a.jsx)(R.U,{designType:I.Fj.SKETCH,value:X||[],onChange:e=>J("elements",e),label:M("elements"),placeholder:M("noElementsSelected")}),(0,a.jsxs)("div",{className:"space-y-3 form-narrow:space-y-2",children:[(0,a.jsx)(x.J,{htmlFor:"prompt",className:"text-base",children:M("additionalPrompt")}),(0,a.jsx)(j.x,{ref:L,id:"prompt",placeholder:M("additionalPromptPlaceholder"),disabled:t,maxImages:8,onChange:({text:e,images:t})=>{J("prompt",e),J("referenceImageFiles",t.map(e=>e.file).filter(e=>!!e)),W(t.length)}}),(0,a.jsxs)("p",{className:"text-sm text-muted-foreground",children:[q?.length||0," / 10000 ",M("characters")]}),D.prompt&&(0,a.jsx)("p",{className:"text-sm text-destructive",children:D.prompt.message}),D.referenceImageFiles&&(0,a.jsx)("p",{className:"text-sm text-destructive",children:D.referenceImageFiles.message})]}),(0,a.jsx)(y.h,{value:$("aspectRatio")||eo[0],onChange:e=>J("aspectRatio",e),options:eo})]})})}},62930:(e,t,r)=>{r.d(t,{O:()=>i});
1var a=r(54028),s=r(23883),o=r(33762),l=r(43411),n=r(99285);function i({label:e,placeholder:t,namesPreview:r,count:c,thumbnailUrl:u,changeLabel:d,chooseLabel:m,loading:p,onClick:h,onClear:f}){let g=c>0;return(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(n.J,{className:"text-base",children:e}),(0,a.jsxs)("div",{role:"button",tabIndex:0,onClick:h,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),h())},className:"flex w-full cursor-pointer items-center justify-between gap-3 rounded-md border border-border bg-card px-3 py-2 transition-colors hover:border-primary/50",children:[(0,a.jsxs)("span",{className:"flex min-w-0 items-center gap-3 text-base",children:[(0,a.jsxs)("span",{className:"relative h-10 w-10 flex-shrink-0",children:[(0,a.jsx)("span",{className:"flex h-full w-full items-center justify-center overflow-hidden rounded bg-muted",children:u?(0,a.jsx)(s.default,{src:u,alt:"",fill:!0,className:"object-cover",sizes:"40px"}):(0,a.jsx)(o.A,{className:"h-5 w-5 text-muted-foreground"})}),g&&(0,a.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),f()},"aria-label":d,className:"absolute -right-1.5 -top-1.5 flex h-4 w-4 items-center justify-center rounded-full bg-foreground text-background shadow ring-2 ring-background",children:(0,a.jsx)(l.A,{className:"h-2.5 w-2.5"})})]}),(0,a.jsx)("span",{className:"min-w-0",children:(0,a.jsx)("span",{className:"block truncate",children:p?t:g?r:t})}),g&&(0,a.jsx)("span",{className:"flex h-5 min-w-5 flex-shrink-0 items-center justify-center rounded-full bg-foreground px-1 text-xs font-medium text-background",children:c})]}),(0,a.jsx)("span",{className:"flex-shrink-0 rounded-full bg-accent px-4 py-1.5 text-sm font-medium text-foreground",children:p?"":g?d:m})]})]})}},89406:(e,t,r)=>{r.d(t,{U:()=>u});var a=r(54028),s=r(30048),o=r(7497),l=r(58331),n=r(23461),i=r(1895),c=r(62930);function u({designType:e,value:t,onChange:r,label:d,placeholder:m,excludeCategories:p}){let[h,f]=(0,s.useState)(!1),g=(0,o.Ym)(),y=(0,i.C)(),x=(0,i.S)(),{tabs:v,options:b,isLoading:j}=(0,n.e)(e,g),k=(0,s.useMemo)(()=>p?.length?v.filter(e=>!p.includes(e.key)):v,[v,p]),S=(0,s.useMemo)(()=>p?.length?b.filter(e=>!p.includes(e.category)):b,[b,p]),w=(0,s.useMemo)(()=>k.map(e=>({...e,label:x(e.key,e.label)})),[k,x]),T=(0,s.useMemo)(()=>S.map(e=>({value:e.value,label:e.label,imageUrl:e.imageUrl,tabKey:e.category})),[S]),N=(0,s.useMemo)(()=>new Map(S.map(e=>[e.value,e])),[S]),E=(0,s.useMemo)(()=>t.map(e=>N.get(e)?.label).filter(e=>!!e).join(", "),[t,N]),I=t.length>0?N.get(t[0])?.imageUrl??null:null;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.O,{label:d,placeholder:j?y.loading:m,namesPreview:E,count:t.length,thumbnailUrl:I,changeLabel:y.change,chooseLabel:y.choose,loading:j,onClick:()=>f(!0),onClear:()=>r([])}),(0,a.jsx)(l.XH,{open:h,onOpenChange:f,title:y.selectElements,tabs:w,options:T,value:t,onChange:r})]})}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.