PageSourceSearch

https://agenciasalesdigital.com/assets/Catalogo-CifgSE2w.js

js agenciasalesdigital.com collected 2026-10-09 22:04:04 UTC 6,148 bytes, 6 lines download raw bytes

1import{c as w,M as v,r as n,j as a,s as c,L as g,x as y}from"./index-D_6qjIB7.js";import{u as f}from"./useQuery-BgMRjCIm.js";import{C as j}from"./ConvitesLayout-CZyiBuDp.js";import{M as N}from"./ModelCard-BdUxnf68.js";import{S as k}from"./Seo-gww-30J_.js";import{a as C,C as S}from"./convites-BdtkR7Er.js";import{I as _}from"./input-BbTKgM3H.js";import{S as L}from"./search-Cc3HGurZ.js";import{P as E}from"./package-open-DM8kIghl.js";import"./sparkles-D1m5rgZA.js";import"./user-BAmAlV5K.js";import"./menu-DZBHcPhM.js";import"./house-CEzvL2eh.js";import"./layout-grid-Up4Dh7mG.js";import"./flame-CqjN3fvl.js";import"./star-B8yHdcoz.js";import"./play-L7ElTTbn.js";/**
2 * @license lucide-react v0.462.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const q=w("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]),M=[{value:"relevancia",label:"Relevância"},{value:"mais_vendidos",label:"Mais vendidos"},{value:"novidades",label:"Novidades"},{value:"preco_asc",label:"Menor preço"},{value:"preco_desc",label:"Maior preço"}];function V(){const[d,h]=v(),[r,u]=n.useState(""),[l,b]=n.useState("relevancia"),o=d.get("categoria"),{data:m=[],isLoading:x}=f({queryKey:["ci_models_catalogo"],queryFn:async()=>{const{data:e,error:t}=await y.from("ci_models").select("*").eq("status",!0).order("ordem",{ascending:!0});if(t)throw t;return e||[]}}),i=n.useMemo(()=>{let e=[...m];if(o&&(e=e.filter(t=>t.categoria===o)),r.trim()){const t=r.toLowerCase();e=e.filter(s=>s.nome.toLowerCase().includes(t)||(s.descricao||"").toLowerCase().includes(t)||s.categoria.toLowerCase().includes(t))}switch(l){case"mais_vendidos":e.sort((t,s)=>(s.vendas_count||0)-(t.vendas_count||0));break;case"novidades":e.sort((t,s)=>Number(s.novo)-Number(t.novo)||(s.created_at>t.created_at?1:-1));break;case"preco_asc":e.sort((t,s)=>t.preco-s.preco);break;case"preco_desc":e.sort((t,s)=>s.preco-t.preco);break;default:e.sort((t,s)=>Number(s.destaque)-Number(t.destaque)||t.ordem-s.ordem)}return e},[m,o,r,l]),p=e=>{const t=new URLSearchParams(d);e?t.set("categoria",e):t.delete("categoria"),h(t,{replace:!0})};return a.jsxs(j,{children:[a.jsx(k,{title:"Catálogo de Convites Animados | Sales Digital",description:"Explore nosso catálogo de convites animados personalizados: aniversários, chá revelação, casamento, batizado e muito mais. Escolha, personalize e receba seu vídeo.",keywords:"convites animados, convite digital, catálogo de convites, convite personalizado",canonicalPath:`${C}/catalogo`}),a.jsxs("section",{className:"mx-auto max-w-7xl px-4 sm:px-6 pt-10 pb-6",children:[a.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1 rounded-full bg-white/[0.05] border border-white/[0.08] mb-4",children:[a.jsx(q,{className:"w-3.5 h-3.5 text-brand-yellow"}),a.jsx("span",{className:"text-xs text-white/70 font-medium",children:"Catálogo completo"})]}),a.jsxs("h1",{className:"text-3xl sm:text-4xl font-extrabold tracking-tight",children:["Encontre o convite ",a.jsx("span",{className:"text-brand-yellow",children:"perfeito"})]}),a.jsx("p",{className:"text-white/50 mt-2 max-w-xl",children:"Filtre por tema, ordene por mais vendidos e escolha o modelo ideal para o seu evento."}),a.jsxs("div",{className:"relative mt-6 max-w-xl",children:[a.jsx(L,{className:"absolute left-4 top-1/2 -translate-y-1/2 w-4 h-4 text-white/40"}),a.jsx(_,{value:r,onChange:e=>u(e.target.value),placeholder:"Buscar por tema, nome ou categoria...",className:"pl-11 h-12 bg-white/[0.04] border-white/[0.08] text-white placeholder:text-white/40 rounded-xl"})]})]}),a.jsxs("section",{className:"mx-auto max-w-7xl px-4 sm:px-6 pb-8 space-y-4",children:[a.jsxs("div",{className:"flex gap-2 overflow-x-auto pb-1 scrollbar-thin",children:[a.jsx("button",{onClick:()=>p(null),className:c("px-4 py-2 rounded-full text-sm font-medium whitespace-nowrap transition-all",o?"bg-white/[0.05] text-white/65 border border-white/[0.08] hover:bg-white/[0.1]":"bg-brand-yellow text-brand-dark"),children:"Todos"}),S.map(e=>a.jsxs("button",{onClick:()=>p(e.value),className:c("px-4 py-2 rounded-full text-sm font-medium whitespace-nowrap transition-all",o===e.value?"bg-brand-yellow text-brand-dark":"bg-white/[0.05] text-white/65 border border-white/[0.08] hover:bg-white/[0.1]"),children:[a.jsx("span",{className:"mr-1",children:e.emoji}),e.label]},e.value))]}),a.jsxs("div",{className:"flex items-center justify-between gap-3 flex-wrap",children:[a.jsx("span",{className:"text-sm text-white/40",children:x?"Carregando...":`${i.length} modelo${i.length!==1?"s":""}`}),a.jsx("div",{className:"flex gap-2 overflow-x-auto scrollbar-thin",children:M.map(e=>a.jsx("button",{onClick:()=>b(e.value),className:c("px-3 py-1.5 rounded-lg text-xs font-medium whitespace-nowrap transition-all",l===e.value?"bg-brand-pink/20 text-brand-pink border border-brand-pink/40":"bg-white/[0.04] text-white/50 border border-white/[0.06] hover:text-white/80"),children:e.label},e.value))})]})]}),a.jsx("section",{className:"mx-auto max-w-7xl px-4 sm:px-6 pb-24",children:x?a.jsx("div",{className:"flex justify-center py-24",children:a.jsx(g,{className:"w-7 h-7 text-white/30 animate-spin"})}):i.length===0?a.jsxs("div",{className:"text-center py-24",children:[a.jsx("div",{className:"w-16 h-16 rounded-2xl bg-white/[0.04] flex items-center justify-center mx-auto mb-4",children:a.jsx(E,{className:"w-8 h-8 text-white/25"})}),a.jsx("p",{className:"text-white/50",children:"Nenhum modelo encontrado com esses filtros."})]}):a.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-3 sm:gap-4",children:i.map(e=>a.jsx(N,{model:e},e.id))})})]})}export{V 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.