PageSourceSearch

https://snew.ai/assets/SnewStudioHomePage-BQc7PMmP.js

js snew.ai collected 2026-10-05 15:08:03 UTC 34,104 bytes, 7 lines download raw bytes

1import{u as ge,r as o,j as t}from"./index-L9AYrVUw.js";import{s as X}from"./productFunnel-DiJFcMU2.js";import{H as he}from"./HomeChatbox-Cl01tbpJ.js";import{A as fe,s as $}from"./FloatingTopMenu-CIhwk2RR.js";import{loadStoreContext as ye}from"./KnowledgeBasePage-DJT9Fkps.js";import{m as be,g as ve}from"./historyKey-GcKgTVWl.js";import{bg as K,fS as xe,S as Se}from"./PlanAccessModal-P_W2GThH.js";import{s as P}from"./CaretLeft.es-CVEVfjVi.js";import{n as we}from"./Plus.es-BeVefyFz.js";import{a as ke}from"./ProductPickerModal-DZV-fDl_.js";import{p as Fe,l as je}from"./preset-lifestyle-CiuIBzeu.js";import{S as y,p as k}from"./studioVisualLayout-BybetI-G.js";import{M as Ae}from"./boardsMockData-DqHpMT8B.js";import{T}from"./thumbnail-card-ZiWJf1m1.js";import"./catalog-CfClaC1r.js";import"./promptBox-D9Xxfn9U.js";import"./overrides-DxGb-X-q.js";import"./types-YVLQw7aQ.js";import"./useOverridesTick-B6buWBbf.js";import"./Image.es-BLTC_PgL.js";import"./Megaphone.es-CpcQHM6H.js";import"./Package.es-CyLjTX4J.js";import"./UploadSimple.es-BDJIa312.js";import"./Users.es-CZggLr1m.js";import"./VideoCamera.es-CCLoNiT_.js";import"./ChatSubmitButton-Bm0hHp2J.js";import"./StructuredPromptEditor-Bagkb6hO.js";import"./pill-BK5sCDTV.js";import"./pill-dropdown-menu-CmrSXir-.js";import"./aspectRatios-DDqw6bsx.js";import"./use-exclusive-open-LN4OUcjO.js";import"./locale-Cctu0V3Y.js";import"./SnewLogo-Cg53XTnQ.js";import"./ArrowsClockwise.es-CX8V1pij.js";import"./ChatCircle.es-ys8V5LKI.js";import"./FloppyDisk.es-DCGe340Q.js";import"./Globe.es-5iBT42E4.js";import"./MagicWand.es-CAihBnXI.js";import"./Palette.es-Dd5ZEM4v.js";import"./Target.es-Ds7XP-fd.js";import"./WarningCircle.es-CHfqKWRY.js";import"./hydrateStoreContext-CnRDd9GD.js";import"./firstAsset-DWUwvZpm.js";import"./modal-close-button-BhLoO4jQ.js";import"./tabs-CmDZA0dx.js";import"./index-BKpKuXmL.js";import"./index-Eo00qZvG.js";import"./SearchInput-h5gAN-Be.js";import"./ImageSquare.es-Ckk4CjAE.js";import"./overImage-BfLII5AZ.js";function Ce({style:r,onClick:l}){return t.jsx(T,{onClick:l,mediaBackground:"#0A0A0A",media:t.jsx("video",{src:r.videoUrl,autoPlay:!0,muted:!0,loop:!0,playsInline:!0,poster:r.thumb||void 0,style:{position:"absolute",inset:0,width:"100%",height:"100%",objectFit:"cover",display:"block"}}),overlay:t.jsx("div",{style:{position:"absolute",inset:0,background:"linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,0.35) 100%)"}}),title:r.name,style:{flexShrink:0}})}function Q({style:r,onClick:l}){const[n,p]=o.useState(!1),[g,u]=o.useState(0),[h,f]=o.useState(0),[c,v]=o.useState(["",""]),x=o.useRef(null),F=o.useRef(!0),m=[r.thumb,...r.hoverImages??[]].filter(Boolean);o.useEffect(()=>{m.length>0&&v([m[0],m[0]])},[]),o.useEffect(()=>{if(F.current){F.current=!1;return}const b=m[g]??"",S=h===0?1:0;v(D=>{const L=[...D];return L[S]=b,L});const R=setTimeout(()=>f(S),30);return()=>clearTimeout(R)},[g]),o.useEffect(()=>(n&&m.length>
11?x.current=setInterval(()=>{u(b=>(b+1)%m.length)},650):(x.current&&clearInterval(x.current),n||(u(0),f(0),m.length>0&&v([m[0],m[0]]))),()=>{x.current&&clearInterval(x.current)}),[n,m.length]);const j=r.thumb||m[0]||"";return t.jsx(T,{onClick:l,onMouseEnter:()=>p(!0),onMouseLeave:()=>p(!1),disableHover:!0,mediaBackground:"#E8E6E2",style:{flexShrink:0},media:t.jsxs(t.Fragment,{children:[t.jsx("img",{src:c[0]||j,alt:"",style:{position:"absolute",inset:0,width:"100%",height:"100%",objectFit:"cover",display:"block",opacity:h===0?1:0,transition:"opacity 0.25s ease",willChange:"opacity"}}),t.jsx("img",{src:c[1]||j,alt:"",style:{position:"absolute",inset:0,width:"100%",height:"100%",objectFit:"cover",display:"block",opacity:h===1?1:0,transition:"opacity 0.25s ease",willChange:"opacity"}}),m.length===0&&t.jsx("div",{style:{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",color:"#BBB",fontSize:12,fontWeight:500,zIndex:2},children:r.name})]}),overlay:n?t.jsxs(t.Fragment,{children:[t.jsx("div",{style:{position:"absolute",inset:0,zIndex:3,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.16)",pointerEvents:"auto"},children:t.jsx("button",{type:"button",onClick:b=>{b.stopPropagation(),l()},style:{height:38,padding:"0 16px",borderRadius:999,border:"1px solid rgba(255,255,255,0.72)",background:"rgba(255,255,255,0.94)",color:"#1A1A1A",fontSize:13,fontWeight:600,boxShadow:"0 10px 28px rgba(0,0,0,0.18)",display:"inline-flex",alignItems:"center",justifyContent:"center",cursor:"pointer"},children:"Recreate"})}),m.length>1&&t.jsx("div",{style:{position:"absolute",bottom:10,left:"50%",transform:"translateX(-50%)",display:"flex",gap:4,zIndex:4},children:m.map((b,S)=>t.jsx("div",{style:{width:S===g?14:5,height:5,borderRadius:99,background:"rgba(255,255,255,0.9)",transition:"width 0.2s ease",opacity:S===g?1:.5}},S))})]}):null,title:r.name})}const Te=[{id:"bold-grafico",name:"TextB & Gráfico",prompt:"TextB graphic advertising poster, oversized typography, high contrast color blocks, brutalist layout inspired by SpotifyLogo, Supreme and Nike SNKRS aesthetics"},{id:"product-breakdown",name:"Product Breakdown",prompt:"Clinical product breakdown advertising. Annotated callouts, ingredient labels, technical diagram style inspired by AG1, Huel, Ritual and Seed"},{id:"playful-sticker",name:"Saturated Editorial",prompt:"Saturated commercial editorial photography, subject centered on a flat saturated color background, flat even studio lighting, no scenery, no decorative graphics, no typography in image — clean base ready for canvas overlay"},{id:"editorial",name:"Editorial",prompt:"Editorial magazine advertising, refined typography, generous white space, elevated photography inspired by Vogue, Kinfolk and Apartamento"},{id:"minimal-premium",name:"Minimal Premium",prompt:"Minimal premium advertising, soft neutrals, perfect product hero, clean serif typography, inspired by AppleLogo, Aesop and Byredo"},{id:"poster-vintage",name:"Poster Vintage",prompt:"Vintage poster advertising, modernist composition, Saul Bass cut-paper shapes, Swiss Style grid, Polish cinema poster textures"},{id:"polaroid-subject",name:"Polaroid Subject",prompt:"Single subject portrait or product on a flat dusty Y2K color block (lilac, mustard, pastel pink, forest green), warm tint, light film grain, even soft lighting, no frame, no stickers, no typography — ready for Polaroid + scrapbook decoration on canvas"},{id:"cinematografico",name:"Cinematográfico",prompt:"Cinematic advertising poster, dramatic lighting, movie poster composition, A24 film aesthetic, Netflix campaign mood"}],Re={"studio-clean":"Photography","soft-minimal":"Photography","product-hero":"Photography","natural-outdoor":"Lifestyle","cozy-indoor":"Lifestyle","daily-moments":"Lifestyle","magazine-premium":"Editorial","high-fashion":"Editorial",documentary:"Editorial","moody-dark":"Cinematic","golden-hour":"Cinematic","dramatic-light":"Cinematic","vintage-film":"Artistic","pop-bold":"Artistic","brutalist-modern":"Artistic"},Le={"studio-clean":"Professional studio product photography. Pure white seamless backdrop, soft even diffused lighting, clean composition, sharp details, neutral color grading, high-end commercial qual
1ity","soft-minimal":"Minimalist photography. Soft natural light, neutral palette of beige and cream, subtle delicate shadows, clean serene composition, premium quality","product-hero":"Bold hero product photography. Product centered and dominant in frame, slight 3/4 angle, strong directional light, rich saturated color grade, premium commercial quality, scroll-stopping","natural-outdoor":"Outdoor lifestyle photography. Natural sunlight, real-world environment, candid documentary feel, blurred natural background with foliage, organic warm color grade","cozy-indoor":"Cozy indoor lifestyle photography. Warm interior with wooden surfaces and soft textiles, soft ambient window or lamp light, lived-in comfort feel, layered cream tones","daily-moments":"Authentic candid lifestyle photography. Real daily moment, unposed natural composition, golden hour or window light, film grain, slight imperfection that feels real","magazine-premium":"Premium magazine editorial photography. Polished spread aesthetic, sophisticated styling on neutral marble or paper backdrop, refined directional lighting, magazine cover quality","high-fashion":"High-fashion editorial photography. Powerful attitude-driven pose, hard directional studio lighting, deep sculpted shadows, cool matte color grade, haute couture vibe",documentary:"Documentary editorial photography. Photojournalistic feel, grounded realistic environment, natural ambient lighting, slightly desaturated color grade, authentic storytelling","moody-dark":"Moody cinematic photography. Deep dark shadows, low-key lighting, single shaft of dramatic light, rich blacks, mysterious atmospheric mood, film noir feel","golden-hour":"Golden hour cinematic photography. Warm sunset lighting with long shadows, atmospheric haze, amber and orange color grading, soft directional sun, cinematic mood","dramatic-light":"Cinematic photography with strong dramatic directional lighting, high contrast chiaroscuro, single shaft of light through dark environment, theatrical mood, film-quality production","vintage-film":"Vintage film photography aesthetic. Analog film grain, faded retro color palette with cyan or amber shift, nostalgic 1970s-80s vibe, slight light leak","pop-bold":"Pop art aesthetic photography. Vibrant bold saturated colors, high contrast color blocks (cyan, magenta, yellow, lime), graphic composition, modern playful statement style","brutalist-modern":"Brutalist contemporary photography. Raw monochromatic palette of greys and concrete tones, strong geometric composition, structured architectural feel, intentionally austere"},Ee={"studio-clean":"Fundo neutro, luz uniforme","soft-minimal":"Sombras sutis, paleta neutra","product-hero":"Composição bold, produto-first","natural-outdoor":"Sol natural, ambiente real, candid","cozy-indoor":"Interior aconchegante, luz suave","daily-moments":"Autêntico, relatable, sem pose","magazine-premium":"Spread editorial polido","high-fashion":"Drama luxuoso, alta moda",documentary:"Fotojornalístico, real","moody-dark":"Sombras profundas, low-key","golden-hour":"Brilho quente de pôr do sol","dramatic-light":"Luz direcional forte, contraste","vintage-film":"Retrô, grão, nostálgico","pop-bold":"Cores vibrantes, gráfico","brutalist-modern":"Bruto, monocromático, estruturado"};function Ie(){const r=Se,l=r.produtos.find(c=>c.id==="oslo"),n=r.produtos.find(c=>c.id==="bergen"),p=r.produtos.find(c=>c.id==="fjord"),g=r.audiencias.find(c=>c.id==="maes"),u=r.audiencias.find(c=>c.id==="inativos"),h={growth:{bg:"linear-gradient(135deg,#EAF4EC 0%,#D9ECDF 100%)",ink:"#1F3A24"},fix:{bg:"linear-gradient(135deg,#FBEDE6 0%,#F5DCCF 100%)",ink:"#5A2A14"},bundle:{bg:"linear-gradient(135deg,#EEEAFB 0%,#DED6F4 100%)",ink:"#2A1F5A"},seasonal:{bg:"linear-gradient(135deg,#FDF1E0 0%,#F8E0BD 100%)",ink:"#5C3A10"},crm:{bg:"linear-gradient(135deg,#E7EEF7 0%,#D2DEF0 100%)",ink:"#102A4A"},learn:{bg:"linear-gradient(135deg,#F1F1F1 0%,#E2E2E2 100%)",ink:"#1A1A1A"}},f=[];return l&&f.push({id:"first-ad-oslo",skill:"Best-seller",title:`Criar o primeiro ad do ${l.nome}`,metric:`${l.vendasSemana}
1 vendas essa semana`,subtitle:"Vira o produto que já vende em criativo pago.",target:"board",cmoAction:{intro:`Ok, vamos rodar o primeiro ad do ${l.nome} — best-seller da semana (${l.vendasSemana} vendas). Separei 3 direções pra você escolher qual vai pro board:`,productName:l.nome,options:[{label:"Lifestyle correndo no parque",prompt:`Lifestyle photo of a person running in a city park wearing the ${l.nome} sneakers, dynamic motion, natural morning light, shallow depth of field, sneakers as hero, real environment, candid framing`},{label:"Street close-up urbano",prompt:`Street photography close-up of the ${l.nome} sneakers on urban asphalt, person mid-step, gritty city texture, golden hour light, low angle, cinematic`},{label:"Studio premium fundo neutro",prompt:`Clean studio product photography of the ${l.nome} sneakers floating on a soft neutral background, premium lighting, sharp shadows, magazine-grade detail`}]},tint:h.growth}),p&&p.foto==="ruim"&&f.push({id:"fix-foto-fjord",skill:"Diagnóstico",title:`Refazer a foto da ${p.nome}`,metric:"Foto fraca do catálogo",subtitle:"Resolver imagem antes de pagar tráfego.",target:"board",cmoAction:{intro:`Beleza. A foto atual da ${p.nome} é a mais fraca do catálogo. Te dou 3 ângulos novos — escolhe qual quer ver primeiro:`,productName:p.nome,options:[{label:"Top-down em areia molhada",prompt:`Top-down photo of the ${p.nome} sandals on wet beach sand, soft afternoon shadows, minimal composition, summery editorial vibe, no people`},{label:"Lifestyle pés femininos em madeira",prompt:`Lifestyle photo of feminine feet wearing the ${p.nome} sandals resting on warm wooden floor, soft daylight from a window, calm and natural`},{label:"Macro studio com luz lateral",prompt:`Macro studio shot of the ${p.nome} sandals with strong side lighting, clean neutral background, showcasing material texture and craftsmanship`}]},tint:h.fix}),l&&n&&f.push({id:"bundle-oslo-bergen",skill:"Bundle",title:`Engajar o ${n.nome} num bundle com ${l.nome}`,metric:`${n.nome}: ${n.vendasSemana} vendas · estoque ${n.estoque}`,subtitle:"Girar o parado junto com o que já vende.",target:"board",cmoAction:{intro:`Bora puxar o ${n.nome} (parado, ${n.vendasSemana} vendas) junto do ${l.nome} (voando, ${l.vendasSemana}). Qual composição você quer ver no board?`,options:[{label:"Flat lay dos dois lado a lado",prompt:`Flat lay product photography of the ${l.nome} and ${n.nome} sneakers side by side on a neutral textured surface, top-down view, soft daylight, balanced composition`},{label:"Modelo usando Oslo, Bergen ao lado",prompt:`Lifestyle photo of a person wearing the ${l.nome} sneakers seated casually, with the ${n.nome} sneakers placed beside them on the floor, natural light, urban indoor setting`},{label:"Combo vertical para feed",prompt:`Vertical 4:5 composition showing the ${l.nome} on top and ${n.nome} below on a soft gradient background, premium combo offer feel, magazine-grade`}]},tint:h.bundle}),g&&r.proximaData.nome.toLowerCase().includes("mães")&&f.push({id:"sazonal-maes",skill:"Sazonal",title:`Esquentar ${r.proximaData.nome}`,metric:`${r.proximaData.emDias} dias · ${g.tamanho.toLocaleString("pt-BR")} mães na base`,subtitle:"Preparar campanha direcionada antes do pico.",target:"campaign",autoPrompt:`Criar campanha de ${r.proximaData.nome} (faltam ${r.proximaData.emDias} dias). Audiência: ${g.tamanho} mães na base (LTV ${g.ltv}). Pacote multi-canal: post emocional, stories, carrossel e copy adaptada por canal. Tom próximo e direto.`,tint:h.seasonal}),u&&f.push({id:"reengajar-inativos",skill:"Retenção",title:`Reengajar ${u.tamanho.toLocaleString("pt-BR")} clientes inativos`,metric:"60+ dias sem comprar",subtitle:"Recuperar antes que comprem do concorrente.",target:"campaign",autoPrompt:`Criar campanha de reengajamento para ${u.tamanho} clientes inativos há 60+ dias (LTV ${u.ltv}). Sequência multi-canal: e-mail de "sentimos sua falta", post de reativação, stories com oferta limitada. Tom próximo, leve urgência. Sugerir desconto sustentável.`,tint:h.crm}),f.push({id:"aplicar-aprendizado",skill:"Aprendizado",title:"Aplicar o que está funcionando",metric:"+30% engajamento vs fundo branco",subtitle:r.ultimoAprendizado,target:"board",cmoAction:{intro:`Último aprendizado da loja: ${r.ultimoAprendizado}. Vamos aplicar agora — escolhe o cenário:`,options:[{label:"Modelo no parque, luz natural",prompt:"Lifestyle photo of a real person using the product in a city park, natural morning light, candid framing, shallow depth of field, no studio look"},{label:"Cena urbana real",prompt:"Street lifestyle photo of a person using the product on a real urban sidewalk, golden hour, documentary feel, motion and authenticity"},{label:"Casa moderna, indoor",prompt:"Indoor lifestyle photo of a person using the product inside a modern minimalist home, natural window light, warm tones, relaxed posture"}]},tint:h.learn}),f}function ze({action:r,onClick:l}){return t.jsxs("button",{onClick:l,style:{background:r.tint.bg,backgroundSize:"200% 200%",backgroundPosition:"0% 0%",border:"none",borderRadius:16,padding:20,textAlign:"left",cursor:"pointer",fontFamily:"inherit",display:"flex",flexDirection:"column",gap:8,flexShrink:0,width:340,height:200,transition:"transform 120ms ease, box-shadow 120ms ease, background-position 0.9s ease"},onMouseEnter:n=>{n.currentTarget.style.transform="translateY(-2px)",n.currentTarget.style.boxShadow="0 6px 20px rgba(0,0,0,0.06)",n.currentTarget.style.backgroundPosition="100% 100%"},onMouseLeave:n=>{n.currentTarget.style.transform="translateY(0)",n.currentTarget.style.boxShadow="none",n.currentTarget.style.backgroundPosition="0% 0%"}
1,children:[t.jsx("div",{style:{fontSize:10,color:r.tint.ink,opacity:.55,textTransform:"uppercase",letterSpacing:"0.06em",fontWeight:600},children:r.skill}),t.jsx("div",{style:{fontSize:18,fontWeight:600,color:r.tint.ink,lineHeight:1.3,flex:1},children:r.title}),r.metric&&t.jsx("div",{style:{fontSize:13,fontWeight:500,color:r.tint.ink,opacity:.8},children:r.metric}),r.subtitle&&t.jsx("div",{style:{fontSize:12,color:r.tint.ink,opacity:.7,lineHeight:1.4},children:r.subtitle})]})}function Be({navigate:r}){const l=o.useMemo(()=>Ie(),[]);return t.jsxs("div",{style:{marginBottom:64,width:"100vw",position:"relative",left:"50%",right:"50%",marginLeft:"-50vw",marginRight:"-50vw",boxSizing:"border-box"},children:[t.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:24,paddingLeft:64,paddingRight:64},children:t.jsx("p",{className:"text-lg tracking-tight",style:{fontWeight:500,color:"#1A1A1A",margin:0},children:"Snew Agent · O que posso fazer agora?"})}),t.jsx("div",{className:"hide-scrollbar",style:{display:"flex",gap:14,overflowX:"auto",padding:"4px 64px 12px",scrollPaddingLeft:64,scrollPaddingRight:64,scrollSnapType:"x mandatory"},children:l.map(n=>t.jsx("div",{style:{scrollSnapAlign:"start"},children:t.jsx(ze,{action:n,onClick:()=>n.target==="campaign"?r("/campaign",{state:{autoPrompt:n.autoPrompt,_ts:Date.now()}}):r("/board",{state:{openBoard:!0,blankBoard:!0,cmoAction:n.cmoAction,_ts:Date.now()}})})},n.id))})]})}function Mt(){const r=ge(),[l,n]=o.useState(!0),[p,g]=o.useState([]),[u,h]=o.useState(""),[f,c]=o.useState(null),[v,x]=o.useState(null),[F,m]=o.useState(null),[j,b]=o.useState(!1),[S,R]=o.use
1State(null),[D,L]=o.useState(!1),[Pe,De]=o.useState("1:1"),[Me,Ne]=o.useState("nano-banana"),[We,Ve]=o.useState(1);o.useRef(null);const J=o.useRef(null);o.useEffect(()=>{const e=a=>{var d;(d=J.current)!=null&&d.contains(a.target)||R(null)};return document.addEventListener("mousedown",e,!0),()=>document.removeEventListener("mousedown",e,!0)},[]),o.useRef(null);const E=o.useRef(null),[Z,ee]=o.useState(!1),[te,oe]=o.useState(!0),I=o.useRef(null),[re,ae]=o.useState(!1),[ie,ne]=o.useState(!0),z=o.useRef(null),[se,le]=o.useState(!1),[de,ce]=o.useState(!0),[M,me]=o.useState(()=>K());o.useEffect(()=>{const e=a=>{(a.key===xe||a.key==="snew:image-styles")&&me(K())};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[]);const[N,W]=o.useState({}),[A,ue]=o.useState({});o.useEffect(()=>{X.from("image_styles").select("id, thumbnail_url, hover_images").eq("is_active",!0).then(({data:e})=>{if(!e)return;const a={},d={};e.forEach(s=>{s.thumbnail_url&&(a[s.id]=s.thumbnail_url);const i=s.hover_images;Array.isArray(i)&&i.filter(Boolean).length>0&&(d[s.id]=i.filter(Boolean))}),Object.keys(a).length&&W(a),Object.keys(d).length&&ue(d)})},[]),o.useEffect(()=>{X.from("template_overrides").select("kind, item_id, data").eq("kind","scene").then(({data:e})=>{!e||e.length===0||W(a=>{var s;const d={...a};for(const i of e){const w=(s=i==null?void 0:i.data)==null?void 0:s.thumbnailUrl;w&&(d[i.item_id]=w)}return d})})},[]);const V=o.useMemo(()=>M.filter(e=>e.isActive!==!1).sort((e,a)=>(e.sortOrder??0)-(a.sortOrder??0)).map(e=>({id:e.id,category:Re[e.id]??e.category,title:e.name,description:e.description||Ee[e.id]||"",thumb:N[e.id]||e.thumbnailUrl||"",hoverImages:A[e.id]&&A[e.id].length>0?A[e.id]:e.hoverImages??[],prompt:Le[e.id]??e.promptBase,dest:"studio"})),[M,N,A]),pe=o.useMemo(()=>[{id:"v-cinematic",title:"Vídeo cinematográfico",description:"Tomada lenta, cinematográfica, premium",videoUrl:"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4",thumb:"",prompt:"Criar vídeo cinematográfico do produto principal, câmera lenta, iluminação dramática, tom premium"},{id:"v-product-spin",title:"Produto em rotação",description:"Giro 360º, fundo limpo, foco no produto",videoUrl:Fe,thumb:"",prompt:"Vídeo de produto em rotação 360 graus, fundo neutro, iluminação suave estúdio"},{id:"v-lifestyle",title:"Lifestyle em movimento",description:"Cena real, luz natural, modelo usando o produto",videoUrl:je,thumb:"",prompt:"Vídeo lifestyle do produto sendo usado em ambiente real, luz natural, autêntico"},{id:"v-reels-hook",title:"Reels com hook",description:"15s vertical, abertura forte e CTA final",videoUrl:"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerEscapes.mp4",thumb:"",prompt:"Reels vertical 9:16 de 15 segundos com hook nos 3 primeiros segundos, desenvolvimento e CTA final"},{id:"v-unboxing",title:"Unboxing premium",description:"Mãos abrindo embalagem, antecipação e detalhes",videoUrl:"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerFun.mp4",thumb:"",prompt:"Vídeo de unboxing premium, mãos abrindo embalagem, foco nos detalhes do produto, luz quente"},{id:"v-tv-ad",title:"Anúncio para TV",description:"Storytelling 30s, narrativa, imagem cinematográfica",videoUrl:"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerJoyrides.mp4",thumb:"",prompt:"Anúncio para TV de 30 segundos, narrativa cinematográfica, qualidade broadcast, storytelling emocional"}],[]),O=()=>{const e=E.current;e&&(ee(e.scrollLeft>8),oe(e.scrollLeft+e.clientWidth<e.scrollWidth-8))},q=e=>{const a=E.current;a&&(a.scrollBy({left:e==="right"?696:-696,behavior:"smooth"}),setTimeout(O,350))},_=()=>{const e=I.current;e&&(ae(e.scrollLeft>8),ne(e.scrollLeft+e.clientWidth<e.scrollWidth-8))},U=e=>{const a=I.current;a&&(a.scrollBy({left:e==="right"?696:-696,behavior:"smooth"}),setTimeout(_,350))},Y=()=>{const e=z.current;e&&(le(e.scrollLeft>8),ce(e.scrollLeft+e.clientWidth<e.scrollWidth-8))},H=e=>{const a=z.current;a&&(a.scrollBy({left:e==="right"?696:-696,behavior:"smooth"}),setTimeout(Y,350))},C=o.useMemo(()=>ye(),[]),G=(C==null?void 0:C.name)??"Studio";o.useEffect(()=>{try{be();const e=localStorage.getItem(ve());e&&g(JSON.parse(e).slice(0,50))}catch{}},[]),o.useCallback((e,a)=>{var i;const d=(i=e.target.files)==null?void 0:i[0];if(!d)return;const s=new FileReader;s.onload=()=>{const w=s.result;a==="product"?(c(w),x(d.name.replace(/\.[^.]+$/,""))):m(w)},s.readAsDataURL(d),e.target.value=""},[]),o.useCallback(e=>{const a=Array.from(e),d=a.find(i=>i.type.startsWith("image/")),s=a.filter(i=>!i.type.startsWith("image/")).map(i=>i.name);if(d){const i=new FileReader;i.onload=()=>m(i.result),i.readAsDataURL(d)}s.length&&h(i=>`${i}${i.trim()?`
2`:""}Arquivos anexados: ${s.join(", ")}`)},[]);const B=e=>{const a=e.mode==="video",d=e.previewMode??!a;r("/board",{state:{_ts:Date.now(),openBoard:!0,fromOnboarding:!1,previewMode:d,autoPrompt:e.prompt.trim(),styleId:e.styleId??null,styleName:e.styleName??null,styleDesc:e.styleDesc??null,format:e.format??(a?"9:16":"1:1"),initialMode:a?"video":null,productImage:f??null,referenceImage:F??null,templateThumb:e.templateThumb??null,templateVideoUrl:e.templateVideoUrl??null}})};return t.jsxs("div",{style:{display:"flex",width:"100vw",height:"100vh",overflow:"hidden"},children:[t.jsx(fe,{collapsed:l,onToggleCollapse:()=>n(e=>!e)}),t.jsx("div",{style:{flex:1,minWidth:0,overflowY:"auto",background:"hsl(40, 7%, 96%)"},children:t.jsxs("div",{style:{maxWidth:y.pageMaxWidth,margin:"0 auto",padding:`${k(y.pagePaddingTop)} ${k(y.pagePaddingX)} ${k(y.pagePaddingBottom)}`},children:[t.jsxs("div",{style:{maxWidth:y.chatMaxWidth,margin:"0 auto 64px"},children:[t.jsx("h1",{className:"text-2xl font-medium",style:{color:"#1A1A1A",margin:`0 0 ${k(y.headerToChatboxGap)}`,fontSize:y.headerFontSize,letterSpacing:y.headerLetterSpacing,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:y.chatMaxWidth,textAlign:"center"},children:C?`O que criar para ${(G||"").slice(0,30)} hoje?`:"O que você quer criar hoje?"}),t.jsx(he,{storeName:G})]}),t.jsx(Be,{navigate:r}),t.jsx($e,{boards:Ae,sidebarWidth:l?68:252,onCreateNew:()=>r("/board",{state:{openBoard:!0,blankBoard:!0,_ts:Date.now()}}),onOpenBoard:e=>r("/board",{state:{openBoard:!0,boardId:e,_ts:Date.now()}})}),t.jsxs("div",{style:{marginBottom:40,width:"100vw",position:"relative",left:"50%",right:"50%",marginLeft:"-50vw",marginRight:"-50vw",boxSizing:"border-box"},children:[t.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:24,paddingLeft:64,paddingRight:64},children:t.jsx("p",{className:"text-lg tracking-tight",style:{fontWeight:500,color:"#1A1A1A",margin:0},children:"Comece agora"})}),t.jsxs("div",{style:{position:"relative"},children:[Z&&t.jsx("button",{onClick:()=>
2q("left"),style:{position:"absolute",left:64,top:"45%",transform:"translateY(-50%)",zIndex:10,width:36,height:36,borderRadius:"50%",border:"1px solid rgba(0,0,0,0.10)",background:"#FFFFFF",boxShadow:"0 2px 12px rgba(0,0,0,0.14)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"#333",transition:"all 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="#1A1A1A",e.currentTarget.style.color="#FFF"},onMouseLeave:e=>{e.currentTarget.style.background="#FFFFFF",e.currentTarget.style.color="#333"},children:t.jsx(P,{size:16})}),te&&t.jsx("button",{onClick:()=>q("right"),style:{position:"absolute",right:64,top:"45%",transform:"translateY(-50%)",zIndex:10,width:36,height:36,borderRadius:"50%",border:"1px solid rgba(0,0,0,0.10)",background:"#FFFFFF",boxShadow:"0 2px 12px rgba(0,0,0,0.14)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"#333",transition:"all 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="#1A1A1A",e.currentTarget.style.color="#FFF"},onMouseLeave:e=>{e.currentTarget.style.background="#FFFFFF",e.currentTarget.style.color="#333"},children:t.jsx($,{size:16})}),t.jsx("div",{style:{overflow:"hidden"},children:t.jsx("div",{ref:E,onScroll:O,className:"hide-scrollbar",style:{display:"flex",gap:14,overflowX:"auto",padding:"8px 64px 12px",scrollPaddingLeft:64,scrollPaddingRight:64},children:(()=>{const e=V.reduce((d,s)=>(d[s.category]||(d[s.category]=[]),d[s.category].push(s),d),{});let a=0;return Object.entries(e).map(([d,s])=>t.jsx("div",{style:{display:"contents"},children:s.map(i=>{const w=a++;return t.jsx("div",{className:"style-card-wrapper",style:{flexShrink:0,width:360,minWidth:0,animation:"fadeSlideUp 0.35s ease both",animationDelay:`${w*40}ms`,position:"relative"},children:t.jsx(Q,{style:{name:i.title,description:i.description,thumb:i.thumb,hoverImages:i.hoverImages},onClick:()=>B({prompt:i.prompt,styleId:i.id,styleName:i.title,styleDesc:i.description,mode:"image",templateThumb:i.thumb})})},i.id)})},d))})()})})]})]}),t.jsxs("div",{style:{marginBottom:40,width:"100vw",position:"relative",left:"50%",right:"50%",marginLeft:"-50vw",marginRight:"-50vw",boxSizing:"border-box"},children:[t.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:24,paddingLeft:64,paddingRight:64},children:t.jsx("p",{className:"text-lg tracking-tight",style:{fontWeight:500,color:"#1A1A1A",margin:0},children:"Crie Ads"})}),t.jsxs("div",{style:{position:"relative"},children:[se&&t.jsx("button",{onClick:()=>H("left"),style:{position:"absolute",left:64,top:"45%",transform:"translateY(-50%)",zIndex:10,width:36,height:36,borderRadius:"50%",border:"1px solid rgba(0,0,0,0.10)",background:"#FFFFFF",boxShadow:"0 2px 12px rgba(0,0,0,0.14)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"#333",transition:"all 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="#1A1A1A",e.currentTarget.style.color="#FFF"},onMouseLeave:e=>{e.currentTarget.style.background="#FFFFFF",e.currentTarget.style.color="#333"},children:t.jsx(P,{size:16})}),de&&t.jsx("button",{onClick:()=>H("right"),style:{position:"absolute",right:64,top:"45%",transform:"translateY(-50%)",zIndex:10,width:36,height:36,borderRadius:"50%",border:"1px solid rgba(0,0,0,0.10)",background:"#FFFFFF",boxShadow:"0 2px 12px rgba(0,0,0,0.14)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"#333",transition:"all 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="#1A1A1A",e.currentTarget.style.color="#FFF"},onMouseLeave:e=>{e.currentTarget.style.background="#FFFFFF",e.currentTarget.style.color="#333"},children:t.jsx($,{size:16})}),t.jsx("div",{style:{overflow:"hidden"},children:t.jsx("div",{ref:z,onScroll:Y,className:"hide-scrollbar",style:{display:"flex",gap:14,overflowX:"auto",padding:"8px 64px 12px",scrollPaddingLeft:64,scrollPaddingRight:64},children:(()=>{const e=V.filter(a=>a.id.startsWith("advertising-"));return Te.map((a,d)=>{const s=e[d%Math.max(e.length,1)];return t.jsx("div",{className:"style-card-wrapper",style:{flexShrink:0,width:360,minWidth:0,animation:"fadeSlideUp 0.35s ease both",animationDelay:`${d*40}ms`,position:"relative"},children:t.jsx(Q,{style:{name:a.name,thumb:(s==null?void 0:s.thumb)??"",hoverImages:s==null?void 0:s.hoverImages},onClick:()=>B({prompt:a.prompt,styleId:a.id,styleName:a.name,mode:"image",templateThumb:s==null?void 0:s.thumb})})},a.id)})})()})})]})]}),t.jsxs("div",{style:{marginBottom:40,width:"100vw",position:"relative",left:"50%",right:"50%",marginLeft:"-50vw",marginRight:"-50vw",boxSizing:"border-box"},children:[t.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:24,paddingLeft:64,paddingRight:64},children:t.jsx("p",{className:"text-lg tracking-tight",style:{fontWeight:500,color:"#1A1A1A",margin:0},children:"Comece agora · Vídeos"})}),t.jsxs("div",{style:{position:"relative"},children:[re&&t.jsx("button",{onClick:()=>
2U("left"),style:{position:"absolute",left:64,top:"45%",transform:"translateY(-50%)",zIndex:10,width:36,height:36,borderRadius:"50%",border:"1px solid rgba(0,0,0,0.10)",background:"#FFFFFF",boxShadow:"0 2px 12px rgba(0,0,0,0.14)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"#333",transition:"all 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="#1A1A1A",e.currentTarget.style.color="#FFF"},onMouseLeave:e=>{e.currentTarget.style.background="#FFFFFF",e.currentTarget.style.color="#333"},children:t.jsx(P,{size:16})}),ie&&t.jsx("button",{onClick:()=>U("right"),style:{position:"absolute",right:64,top:"45%",transform:"translateY(-50%)",zIndex:10,width:36,height:36,borderRadius:"50%",border:"1px solid rgba(0,0,0,0.10)",background:"#FFFFFF",boxShadow:"0 2px 12px rgba(0,0,0,0.14)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"#333",transition:"all 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="#1A1A1A",e.currentTarget.style.color="#FFF"},onMouseLeave:e=>{e.currentTarget.style.background="#FFFFFF",e.currentTarget.style.color="#333"},children:t.jsx($,{size:16})}),t.jsx("div",{style:{overflow:"hidden"},children:t.jsx("div",{ref:I,onScroll:_,className:"hide-scrollbar",style:{display:"flex",gap:14,overflowX:"auto",padding:"8px 64px 12px",scrollPaddingLeft:64,scrollPaddingRight:64},children:pe.map((e,a)=>t.jsx("div",{style:{flexShrink:0,width:360,minWidth:0,animation:"fadeSlideUp 0.35s ease both",animationDelay:`${a*40}ms`,position:"relative"},children:t.jsx(Ce,{style:{name:e.title,description:e.description,thumb:e.thumb,videoUrl:e.videoUrl},onClick:()=>B({prompt:e.prompt,styleName:e.title,styleDesc:e.description,mode:"video",format:"9:16",templateThumb:e.thumb,templateVideoUrl:e.videoUrl})})},e.id))})})]})]})]})}),t.jsx("style",{children:`
3        .style-card-wrapper:hover .style-card-caption {
4          opacity: 1 !important;
5          transform: translateY(0) !important;
6        }
7      `}),t.jsx(ke,{open:j,onClose:()=>b(!1),onPick:e=>{c(e.image),x(e.name),b(!1)}})]})}function $e({boards:r,sidebarWidth:l,onCreateNew:n,onOpenBoard:p}){const g=y.pagePaddingX;return t.jsxs("section",{style:{marginBottom:64,width:`calc(100vw - ${k(l)})`,position:"relative",left:"50%",transform:"translateX(-50%)",boxSizing:"border-box",paddingLeft:k(g),paddingRight:k(g)},children:[t.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:20},children:t.jsx("p",{className:"text-lg tracking-tight",style:{fontWeight:500,color:"#1A1A1A",margin:0},children:"Seus boards"})}),t.jsxs("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, minmax(0, 1fr))",gap:18,alignItems:"stretch"},children:[t.jsx(T,{onClick:n,mediaBackground:"hsl(var(--card))",media:t.jsx("div",{style:{position:"absolute",inset:0,border:"1px dashed hsl(var(--border))",borderRadius:12,display:"flex",alignItems:"center",justifyContent:"center",color:"hsl(var(--muted-foreground))"},children:t.jsx(we,{size:20})}),title:"Novo board"}),r.map(u=>{const h=u.thumbnails??(u.coverUrl?[u.coverUrl]:[]),f=Array.from({length:4},(c,v)=>h[v]);return t.jsx(T,{onClick:()=>p(u.id),media:t.jsx("div",{style:{position:"absolute",inset:0,display:"grid",gridTemplateColumns:"repeat(2, 1fr)",gridTemplateRows:"repeat(2, 1fr)",gap:4,padding:4},children:f.map((c,v)=>t.jsx("div",{style:{background:c?`url(${c}) center/cover`:"hsl(var(--muted))",borderRadius:6}},v))}),title:u.title,sub:`Editado há ${u.updatedAt}`},u.id)})]})]})}export{Mt as default};

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.