PageSourceSearch

https://gracefashion.ai/_next/static/chunks/353-cc93e7d5dde914ed.js?dpl=dpl_EnaXDy7tpoiuPpUqdnKer1egZYcj

js gracefashion.ai collected 2026-10-05 14:59:53 UTC 6,918 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[353],{353:(e,t,l)=>{l.d(t,{Ay:()=>h,K0:()=>u,qY:()=>m});var s=l(5155),a=l(2115),n=l(4900),i=l(1543),r=l(68),o=l(8863);let c=e=>{let{headline:t,subline:l,rounded:a=!1,cardMax:n=640,children:i}=e;return(0,s.jsx)("div",{"data-card":!0,className:"flex-shrink-0 w-[100vw] md:w-[55vw] lg:w-[45vw] 3xl:w-[26vw] flex flex-col justify-start items-center py-4 px-6",children:(0,s.jsxs)("div",{className:"w-full",style:{maxWidth:n},children:[(0,s.jsx)("h3",{className:"headline-medium text-black mb-2",children:t}),(0,s.jsx)("div",{className:"w-full max-h-[64vh] aspect-square bg-neutral-100 overflow-hidden mb-3 mx-auto ".concat(a?"rounded-2xl":""),children:i}),(0,s.jsx)("p",{className:"body-large text-neutral-500 max-w-[80%] md:max-w-none",children:l})]})})},d=()=>(0,s.jsx)("div",{className:"w-full h-full grid grid-cols-2 grid-rows-2 gap-0.5",children:["/models/nathalie.webp","/models/chung.webp","/models/harry.webp","/models/lisa.webp"].map((e,t)=>(0,s.jsx)("img",{src:e,alt:"AI model ".concat(e.split("/").pop().replace(".webp",""),", exclusive to the brand"),className:"w-full h-full object-cover"},t))}),u=()=>{let[e,t]=(0,a.useState)(!1),l=(0,a.useRef)(null),n=(0,o.U)();return(0,a.useEffect)(()=>{let e=setTimeout(()=>{t(!0)},2e3);return()=>clearTimeout(e)},[]),(0,a.useEffect)(()=>{let s=l.current;if(!s)return;e?(s.currentTime=0,s.play().catch(()=>{})):s.pause();let a=()=>{t(!1),setTimeout(()=>{t(!0)},2e3)};return s.addEventListener("ended",a),()=>s.removeEventListener("ended",a)},[e]),(0,s.jsxs)("div",{className:"relative w-full h-full overflow-hidden",children:[(0,s.jsx)("img",{src:"/ai-fashion-editorial-metallic-jacket.webp",alt:"AI fashion editorial: model in a metallic jacket under amber light, the still before it moves",className:"absolute inset-0 w-full h-full object-cover",style:{opacity:+!e}}),n&&(0,s.jsx)("video",{ref:l,src:n,className:"absolute inset-0 w-full h-full object-cover",style:{opacity:+!!e},muted:!0,playsInline:!0})]})},m=e=>{let{onSceneChange:t}=e,[l,i]=(0,a.useState)(!1),[r]=(0,a.useState)(()=>Array.from({length:64},()=>.5*Math.random()));return(0,a.useEffect)(()=>{let e=setInterval(()=>{i(e=>!e)},4e3);return()=>clearInterval(e)},[]),(0,a.useEffect)(()=>{null==t||t(+!!l)},[l,t]),(0,s.jsxs)("div",{className:"relative w-full h-full overflow-hidden",children:[(0,s.jsx)("img",{src:"/edit-image-1.webp",alt:"Before edit",className:"absolute inset-0 w-full h-full object-cover object-top"}),(0,s.jsx)("div",{className:"absolute inset-0",children:r.map((e,t)=>{let a=t%8,i=Math.floor(t/8);return(0,s.jsx)(n.P.div,{className:"absolute overflow-hidden",style:{left:"".concat(12.5*a,"%"),top:"".concat(12.5*i,"%"),width:"calc(".concat(12.5,"% + 1px)"),height:"calc(".concat(12.5,"% + 1px)")},animate:{opacity:+!!l},transition:{duration:.3,delay:e},children:(0,s.jsx)("div",{className:"absolute",style:{width:"".concat(800,"%"),height:"".concat(800,"%"),left:"-".concat(100*a,"%"),top:"-".concat(100*i,"%")},children:(0,s.jsx)("img",{src:"/edit-image-2.webp",alt:"After edit",className:"w-full h-full object-cover object-top"})})},t)})})]})},h=e=>{let{values:t,cornerStart:l="One tool.",cornerEnd:o="Endless possibilities.",rounded:h=!1,cardMax:f=640}=e,v=(0,a.useMemo)(()=>[{headline:"Exclusive Models.",subline:"Every body shape, every skin tone. AI-generated models that perfectly match your brand identity.",animation:(0,s.jsx)(d,{})},{headline:"Product to Model.",subline:"Transform your product shots in minutes. Same product, endless variations.",animation:(0,s.jsx)("img",{src:"/product-to-model.webp",alt:"Product to model: packshot turned into an on-model image",className:"w-full h-full object-cover object-top"})},{headline:"Text to Image.",subline:"Describe your vision, see it come to life. Generate stunning visuals from simple prompts.",animation:(0,s.jsx)("img",{src:"/women-senseful.webp",alt:"Text to image: fashion scene generated from a prompt",className:"w-full h-full object-cover"})},{headline:"Mannequin to Model.",subline:"Replace flat mannequin shots with realistic AI models. Transform your products into experiences.",animation:(0,s.jsx)("img",{src:"/ai-fashion-on-model-denim-mirror-room.webp",alt:"Mannequin to model: denim jacket and jeans on an AI model in a mirrored studio",className:"w-full h-full object-cover"})},{headline:"Edit Image.",subline:"Fine-tune every detail. Adjust backgrounds, lighting, and styling with precision.",animation:(0,s.jsx)(m,{})},{headline:"From Stills to Video.",subline:"Take any key visual and bring it to life in elegant motion. Ideal for Reels, TikTok and story formats.",animation:(0,s.jsx)(u,{})}],[]),w=(0,a.useRef)(null),b=(0,a.useRef)(null),p=(0,a.useRef)(null),[x,g]=(0,a.useState)(0),[j,y]=(0,a.useState)("300vh"),{scrollYProgress:N}=(0,i.L)({target:w,offset:["start start","end end"]});(0,a.useEffect)(()=>{let e=()=>{if(!p.current)return;let e=p.current.querySelectorAll("[data-card]");if(0===e.length)return;let t=e[0],l=e[e.length-1],s=t.offsetLeft+t.offsetWidth/2,a=l.offsetLeft+l.offsetWidth/2-s;g(a);let n=Math.max(200,Math.ceil(a/window.innerHeight*100));y("".concat(n,"vh"))};e();let t=new ResizeObserver(e);return t.observe(document.body),window.addEventListener("resize",e),()=>{t.disconnect(),window.removeEventListener("resize",e)}},[]);let E=(0,r.G)(N,[0,1],[0,-x]);return(0,a.useEffect)(()=>{let e=b.current;if(!e)return;let t=e=>{Math.abs(e.deltaX)>Math.abs(e.deltaY)&&(window.scrollBy(0,e.deltaX),e.preventDefault())},l=0,s=0,a=null,n=e=>{l=e.touches[0].clientX,s=e.touches[0].clientY,a=null},i=e=>{let t=e.touches[0].clientX,n=e.touches[0].clientY,i=l-t,r=s-n;
1null===a&&(Math.abs(i)>5||Math.abs(r)>5)&&(a=Math.abs(i)>Math.abs(r)),a&&(e.preventDefault(),window.scrollBy(0,i),l=t)};return e.addEventListener("wheel",t,{passive:!1}),e.addEventListener("touchstart",n,{passive:!0}),e.addEventListener("touchmove",i,{passive:!1}),()=>{e.removeEventListener("wheel",t),e.removeEventListener("touchstart",n),e.removeEventListener("touchmove",i)}},[]),(0,s.jsx)("section",{ref:w,className:"relative",style:{height:j},children:(0,s.jsxs)("div",{ref:b,className:"sticky top-0 overflow-hidden bg-white h-screen-safe",children:[(0,s.jsx)("p",{className:"absolute top-4 left-4 z-10 headline-large text-onlight-high",children:l}),(0,s.jsx)("p",{className:"absolute bottom-4 right-4 z-10 headline-large text-onlight-high",children:o}),(0,s.jsx)("div",{className:"absolute left-1/2 -translate-x-[50vw] md:-translate-x-[27.5vw] lg:-translate-x-[22.5vw] 3xl:-translate-x-[13vw] h-full",children:(0,s.jsxs)(n.P.div,{ref:p,className:"flex h-full items-center",style:{x:E},children:[(0,s.jsx)("div",{className:"flex items-start",children:(null!=t?t:v).map((e,t)=>(0,s.jsx)(c,{index:t,headline:e.headline,subline:e.subline,rounded:h,cardMax:f,children:e.animation},t))}),(0,s.jsx)("div",{className:"flex-shrink-0 w-[20vw]"})]})})]})})}}}]);

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.