PageSourceSearch

https://koourse.ai/_nuxt/DKMd_8xH.js

js koourse.ai collected 2026-10-05 15:37:33 UTC 6,588 bytes, 1 lines download raw bytes

1import{_ as R}from"./Ck3BaFak.js";import{_ as O}from"./B2LyyOXx.js";import{_ as $}from"./C5yCWp8u.js";import{_ as E}from"./Dn1xD_2e.js";import{d as H,n as P,p as G,l as J,q as U,c as n,b as e,g as W,x as y,F as _,r as h,v as k,E as Q,u as o,z as X,G as w,e as C,t as M,f as Y,A as i,h as Z,o as r,y as ee}from"./BMFsMFzY.js";import{u as te}from"./BEXcE8kQ.js";import{u as oe}from"./C0RtYnWV.js";import"./CuVjzH6Q.js";import"./B2zbVUFD.js";import"./DAThA0De.js";import"./DR2BOUhr.js";import"./DjBq6SnM.js";import"./CahxuT6f.js";import"./DISd2GBX.js";import"./DL-iue7D.js";const ae={class:"min-h-dvh py-12 animate-fade-up"},se={class:"w-full max-w-[1200px] mx-auto px-4"},re={class:"max-w-5xl mx-auto mb-10"},le={class:"flex flex-col sm:flex-row items-center justify-between gap-4 mb-8 max-w-5xl mx-auto"},ne={class:"relative w-full sm:w-auto"},ie=["onClick"],ce={class:"absolute right-0 top-0 bottom-0 w-8 bg-gradient-to-l from-surface-0 to-transparent pointer-events-none sm:hidden"},ue={class:"flex items-center gap-2 w-full sm:w-auto"},de={class:"relative flex-1 sm:w-52"},me={key:1,class:"text-center py-20"},pe={key:2,class:"text-center py-24 bg-surface-2/40 rounded-3xl max-w-3xl mx-auto border border-subtle"},xe={key:3,class:"grid grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-6 lg:gap-8 max-w-5xl mx-auto"},fe={key:4,class:"flex justify-center mt-12"},ge=["disabled"],Ie=H({__name:"tools",async setup(ve){let d,f;const m=i("all"),p=i(""),c=i("newest"),B=[{value:"newest",label:"Mais recentes"},{value:"popular",label:"Mais populares"},{value:"saves",label:"Mais salvos"}],u=i(!1),g=i(null),v=i(!0);function b(){const s=g.value;s&&(v.value=s.scrollLeft+s.clientWidth<s.scrollWidth-4)}P(()=>G(b));const S=[{value:"all",label:"Todas"},{value:"social_media",label:"Redes Sociais"},{value:"design",label:"Para Designers"},{value:"edicao",label:"Edicao"},{value:"other",label:"Outras"}],x=Z(()=>({type:"link",category:m.value!=="all"?m.value:void 0,q:p.value||void 0,sort:c.value!=="newest"?c.value:void 0,limit:30})),{data:l,pending:A,error:F,refresh:K}=([d,f]=J(()=>te("ferramentas-page",()=>$fetch("/api/deliverables/by-type",{query:x.value}),{watch:[x]})),d=await d,f(),d);async function L(){if(!(!l.value||u.value)){u.value=!0;try{const s=await $fetch("/api/deliverables/by-type",{query:{...x.value,offset:l.value.items.length}});l.value={items:[...l.value.items,...s.items],total:s.total,hasMore:s.hasMore}}finally{u.value=!1}}}const{bookmarkedIds:T,togglingIds:V,toggleBookmark:I}=oe("/tools"),N=JSON.stringify({"@context":"https://schema.org","@type":"CollectionPage",name:"Ferramentas de IA",description:"Links e recursos uteis de inteligencia artificial curados pela Koourse.",url:"https://koourse.ai/tools",publisher:{"@type":"Organization",name:"Koourse",url:"https://koourse.ai"}});return U({title:"Ferramentas de IA | Koourse",meta:[{name:"description",content:"Links e recursos uteis de inteligencia artificial curados pela Koourse."},{property:"og:title",content:"Ferramentas de IA | Koourse"},{property:"og:description",content:"Links e recursos uteis de inteligencia artificial curados pela Koourse."},{property:"og:image",content:"https://koourse.ai/default-og.png"},{property:"og:url",content:"https://koourse.ai/tools"},{name:"twitter:title",content:"Ferramentas de IA | Koourse"},{name:"twitter:description",content:"Links e recursos uteis de inteligencia artificial curados pela Koourse."},{name:"twitter:image",content:"https://koourse.ai/default-og.png"}],link:[{rel:"canonical",href:"https://koourse.ai/tools"}],script:[{type:"application/ld+json",innerHTML:N}]}),(s,t)=>{const D=R,j=O,q=$,z=E;return r(),n("div",ae,[e("div",se,[t[7]||(t[7]=e("div",{class:"text-center mb-12"},[e("h1",{class:"font-display text-4xl md:text-5xl font-bold text-txt-primary mb-4"},[W(" Ferramentas de "),e("span",{class:"text-accent bg-clip-text text-transparent bg-gradient-to-r from-accent to-accent/60"},"IA")]),e("p",{class:"text-txt-secondary text-lg max-w-2xl mx-auto"}," Links e recursos uteis para potencializar seu trabalho com inteligencia artificial. ")],-1)),e("div",re,[y(D,{variant:"hero",source:"tools-hero"})]),e("div",le,[e("div",ne,[e("div",{ref_key:"filterScrollRef",ref:g,class:"flex items-center gap-2 overflow-x-auto w-full sm:w-auto 
1scrollbar-hide",onScroll:b},[(r(),n(_,null,h(S,a=>e("button",{key:a.value,onClick:be=>m.value=a.value,class:ee(["px-4 py-2 rounded-xl text-sm font-bold whitespace-nowrap transition-all duration-300",o(m)===a.value?"bg-accent text-surface-0 shadow-lg shadow-accent/20":"bg-surface-2 border border-subtle text-txt-secondary hover:text-txt-primary hover:border-accent/30"])},M(a.label),11,ie)),64))],544),k(e("div",ce,null,512),[[Q,o(v)]])]),e("div",ue,[e("div",de,[k(e("input",{"onUpdate:modelValue":t[0]||(t[0]=a=>w(p)?p.value=a:null),type:"text",placeholder:"Buscar ferramentas...",class:"w-full bg-surface-2 border border-subtle rounded-xl px-4 py-2 text-sm font-medium text-txt-primary placeholder:text-txt-muted focus:outline-none focus:border-accent/50 focus:ring-1 focus:ring-accent/50 transition-all pl-10"},null,512),[[X,o(p)]]),t[3]||(t[3]=e("svg",{class:"w-4 h-4 text-txt-muted absolute left-4 top-1/2 -translate-y-1/2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1))]),y(j,{modelValue:o(c),"onUpdate:modelValue":t[1]||(t[1]=a=>w(c)?c.value=a:null),options:B},null,8,["modelValue"])])]),o(A)?(r(),C(q,{key:0,count:6})):o(F)?(r(),n("div",me,[t[4]||(t[4]=e("h2",{class:"font-display text-2xl font-bold text-txt-primary mb-2"},"Algo deu errado",-1)),t[5]||(t[5]=e("p",{class:"text-sm text-txt-muted mb-4"},"Nao foi possivel carregar as ferramentas.",-1)),e("button",{onClick:t[2]||(t[2]=a=>o(K)()),class:"btn-accent text-sm px-6 py-2"},"Tentar novamente")])):o(l)?.items?.length?(r(),n("div",xe,[(r(!0),n(_,null,h(o(l).items,a=>(r(),C(z,{key:a.id,item:a,"show-bookmark":!0,"is-bookmarked":o(T).has(a.id),"is-toggling":o(V).has(a.id),compact:!0,onToggleBookmark:o(I)},null,8,["item","is-bookmarked","is-toggling","onToggleBookmark"]))),128))])):(r(),n("div",pe,[...t[6]||(t[6]=[e("h2",{class:"font-display text-2xl font-bold text-txt-primary mb-3"},"Nenhuma ferramenta encontrada",-1),e("p",{class:"text-base text-txt-secondary"},"Tente ajustar seus filtros ou termo de busca.",-1)])])),o(l)?.hasMore?(r(),n("div",fe,[e("button",{onClick:L,disabled:o(u),class:"btn-accent px-8 py-3 text-sm"},M(o(u)?"Carregando...":"Carregar mais"),9,ge)])):Y("",!0)])])}}});export{Ie 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.