1import{_,u as F,y as u,A as S,c as v,b as t,g as R,w as c,H as s,a,d as l,F as b,L as k,G as I,o as d,f as D,aj as G,t as m,J as h,a4 as U,n as C,O as $,ak as P}from"./3bA9CyQV.js";import{s as z}from"./CcGcPyb-.js";import{s as f}from"./BOsCFRof.js";import{s as x,a as H}from"./CIe5CzZZ.js";import{s as L}from"./DV6KU8FU.js";import{s as O}from"./wU4AFqpD.js";const Y={class:"password-dialog"},K={key:0,class:"docs-container"},J={class:"docs-content"},W={class:"docs-sidebar"},Q={class:"sidebar-section"},X={class:"sidebar-nav"},Z=["href","onClick"],aa={class:"sidebar-section quick-actions"},ea={class:"docs-main"},ia={id:"api",class:"doc-section"},sa={class:"doc-cards"},ta={class:"card-header-custom"},oa={class:"card-description"},la={class:"card-tags"},ca={id:"inicio-rapido",class:"doc-section"},na={id:"tecnologias",class:"doc-section"},da={class:"tech-grid"},ra={class:"tech-card"},ua={class:"tech-card"},pa={class:"tech-card"},va={class:"tech-card"},ma="45c37b381c881aec40d201c7b2f999af3870cf505e9fa9fc417da9707513334e",ha={__name:"index",setup(fa){F({title:"Documentación Frontend - VibeAdventures",meta:[{name:"description",content:"Documentación técnica del frontend de VibeAdventures"}]});const g=u(!1),p=u(""),r=u(""),y=u(!1),A=u(!1),V=async o=>{const i=new TextEncoder().encode(o),n=await crypto.subtle.digest("SHA-256",i);return Array.from(new Uint8Array(n)).map(N=>N.toString(16).padStart(2,"0")).join("")},T=async()=>{if(!p.value){r.value="Por favor ingresa una contraseña";return}y.value=!0,r.value="";try{await V(p.value)===ma?(A.value=!0,g.value=!1,sessionStorage.setItem("docs_auth","true")):(r.value="Contraseña incorrecta",p.value="")}catch{r.value="Error al validar la contraseña"}finally{y.value=!1}},j=()=>{P("/")};S(()=>{sessionStorage.getItem("docs_auth")==="true"?A.value=!0:g.value=!0});const w=u("inicio"),E=[{id:"inicio",title:"Inicio",icon:"pi pi-home"},{id:"api",title:"API & Backend",icon:"pi pi-cloud"},{id:"inicio-rapido",title:"Inicio Rápido",icon:"pi pi-bolt"},{id:"arquitectura",title:"Arquitectura",icon:"pi pi-sitemap"},{id:"tecnologias",title:"TecnologÃas",icon:"pi pi-wrench"},{id:"ayuda",title:"Ayuda",icon:"pi pi-question-circle"}],M=[{id:"migration",title:"GuÃa de Migración Rápida",description:"Aprende cómo migrar stores existentes al nuevo patrón en 3 simples pasos.",icon:"pi pi-arrow-right-arrow-left",badge:"Práctico",color:"#10b981",tags:["Migración","Stores","Práctica"],buttonText:"Empezar Migración",file:"MIGRATION_GUIDE"},{id:"examples",title:"Ejemplos de useApi",description:"Ejemplos completos, casos de uso y documentación detallada del composable useApi.",icon:"pi pi-book",badge:"Esencial",color:"#3b82f6",tags:["Ejemplos","useApi","Tutorial"],buttonText:"Ver Ejemplos",file:"useApi.examples"},{id:"refactor",title:"Resumen de Refactorización",description:"Explicación técnica de la arquitectura, decisiones de diseño y beneficios del sistema.",icon:"pi pi-code",badge:"Técnico",color:"#8b5cf6",tags:["Arquitectura","Diseño","Avanzado"],buttonText:"Leer Resumen",file:"REFACTOR_SUMMARY"}],q=(o,e)=>{e.preventDefault(),w.value=o;const i=document.getElementById(o);i&&i.scrollIntoView({behavior:"smooth",block:"start"})},B=o=>{P(`/docs/viewer?doc=${o.file}`)};return S(()=>{const o=new IntersectionObserver(e=>{e.forEach(i=>{i.isIntersecting&&(w.value=i.target.id)})},{threshold:.5});E.forEach(e=>{const i=document.getElementById(e.id);i&&o.observe(i)})}),(o,e)=>(d(),v(b,null,[t(s(U),{visible:g.value,"onUpdate:visible":e[1]||(e[1]=i=>g.value=i),header:"Acceso a Documentación",modal:!0,closable:!1,draggable:!1,style:{width:"400px"}},{footer:c(()=>[t(s(h),{label:"Cancelar",text:"",onClick:j}),t(s(h),{label:"Acceder",onClick:T,loading:y.value},null,8,["loading"])]),default:c(()=>[a("div",Y,[e[2]||(e[2]=a("p",null,"Esta sección está protegida. Ingresa la contraseña para continuar:",-1)),t(s(L),{modelValue:p.value,"onUpdate:modelValue":e[0]||(e[0]=i=>p.value=i),placeholder:"Contraseña",feedback:!1,toggleMask:"",fluid:"",onKeyup:G(T,["enter"])},null,8,["modelValue"]),r.value?(d(),D(s(O),{key:0,severity:"error",closable:!1},{default:c(()=>[l(m(r.value),1)]),_:1})):R("",!0)])]),_:1},8,["visible"]),A.value?(d(),v("div",K,[e[27]||(e[27]=a("div",{class:"docs-header"},[a("h1",{class:"docs-title"},[a("i",{class:"pi pi-book"}),l(" Documentación Frontend ")]),a("p",{class:"docs-subtitle"}," GuÃas, ejemplos y referencias para el desarrollo en VibeAdventures ")],-1)),a("div",J,[a("aside",W,[a("div",Q,[e[3]||(e[3]=a("h3",{class:"sidebar-title"},[a("i",{class:"pi pi-compass"}),l(" Navegación ")],-1)),a("nav",X,[(d(),v(b,null,k(E,i=>a("a",{key:i.id,href:`#${i.id}`,class:C(["nav-link",{active:w.value===i.id}]),onClick:n=>q(i.id,n)},[a("i",{class:C(i.icon)},null,2),l(" "+m(i.title),1)],10,Z)),64))])]),a("div",aa,[e[4]||(e[4]=a("h3",{class:"sidebar-title"},[a("i",{class:"pi pi-bolt"}),l(" Acceso Rápido ")],-1)),t(s(h),{label:"Ver en GitHub",icon:"pi pi-github",outlined:"",class:"quick-btn",size:"small"}),t(s(h),{label:"Descargar Docs",icon:"pi pi-download",outlined:"",class:"quick-btn",size:"small"})])]),a("main",ea,[e[24]||(e[24]=a("section",{id:"inicio",class:"doc-section welcome-section"},[a("div",{class:"welcome-card"},[a("i",{class:"pi pi-star welcome-icon"}),a("h2",null,"¡Bienvenido a la Documentación!"),a("p",null," Esta documentación te ayudará a trabajar eficientemente con el sistema de API, stores y componentes de VibeAdventures. ")])],-1)),a("section",ia,[e[5]||(e[5]=a("div",{class:"section-header"},[a("i",{class:"pi pi-cloud"}),a("h2",null,"API & Comunicación con Backend")],-1)),e[6]||(e[6]=a("p",{class:"section-description"}," Todo lo relacionado con llamadas HTTP, autenticación y manejo de respuestas. ",-1)),a("div",sa,[(d(),v(b,null,k(M,i=>t(s(z),{key:i.id,class:"doc-card",onClick:n=>B(i)},{header:c(()=>[a("div",ta,[a("i",{class:C(i.icon)},null,2),a("span",{class:"card-badge",style:$({background:i.color})},m(i.badge),5)])]),title:c(()=>[l(m(i.title),1)]),content:c(()=>[a("p",oa,m(i.description),1),a("div",la,[(d(!0),v(b,null,k(i.tags,n=>(d(),D(s(f),{key:n,value:n,severity:"info"},null,8,["value"]))),128))])]),footer:c(()=>[t(s(h),{label:i.buttonText,icon:"pi pi-arrow-right",iconPos:"right",text:""},null,8,["label"])]),_:2},1032,["onClick"])),64))])]),a("section",ca,[e[10]||(e[10]=a("div",{class:"section-header"},[a("i",{class:"pi pi-bolt"}),a("h2",null,"Inicio Rápido")],-1)),t(s(H),{multiple:!0,activeIndex:[0]},{default:c(()=>[t(s(x),{header:"Para Nuevos Desarrolladores"},{default:c(()=>[...e[7]||(e[7]=[a("ol",{class:"quick-start-list"},[a("li",null,[l("Lee la "),a("a",{href:"/docs/viewer?doc=useApi.examples"}
1,"GuÃa de Ejemplos de useApi")]),a("li",null,[l("Revisa el código de ejemplo en "),a("code",null,"store/authStore.js")]),a("li",null,"Practica con los ejemplos de la guÃa")],-1)])]),_:1}),t(s(x),{header:"Para Migrar Código Existente"},{default:c(()=>[...e[8]||(e[8]=[a("ol",{class:"quick-start-list"},[a("li",null,[l("Abre la "),a("a",{href:"/docs/viewer?doc=MIGRATION_GUIDE"},"GuÃa de Migración")]),a("li",null,"Sigue el checklist de 3 pasos"),a("li",null,"Usa los patrones recomendados"),a("li",null,[l("Consulta el "),a("a",{href:"/docs/viewer?doc=REFACTOR_SUMMARY"},"Resumen de Refactorización")])],-1)])]),_:1}),t(s(x),{header:"Ejemplo MÃnimo de Código"},{default:c(()=>[...e[9]||(e[9]=[a("div",{class:"code-example"},[a("pre",null,[a("code",null,`// En tu store 2const api = useApi(); 3const result = await api.post('/endpoint', data, { 4 showSuccessToast: true, 5 successMessage: "¡Listo!", 6 errorMessage: "Algo salió mal" 7});`)])],-1)])]),_:1})]),_:1})]),e[25]||(e[25]=I('<section id="arquitectura" class="doc-section" data-v-04928eca><div class="section-header" data-v-04928eca><i class="pi pi-sitemap" data-v-04928eca></i><h2 data-v-04928eca>Arquitectura del Sistema</h2></div><div class="architecture-diagram" data-v-04928eca><div class="arch-layer" data-v-04928eca><div class="arch-box component" data-v-04928eca><i class="pi pi-mobile" data-v-04928eca></i><h4 data-v-04928eca>Componente Vue</h4><p data-v-04928eca>Captura datos, Validaciones UI</p></div><i class="pi pi-arrow-down arch-arrow" data-v-04928eca></i></div><div class="arch-layer" data-v-04928eca><div class="arch-box store" data-v-04928eca><i class="pi pi-database" data-v-04928eca></i><h4 data-v-04928eca>Store (Pinia)</h4><p data-v-04928eca>Configuración, Lógica de negocio</p></div><i class="pi pi-arrow-down arch-arrow" data-v-04928eca></i></div><div class="arch-layer" data-v-04928eca><div class="arch-box api" data-v-04928eca><i class="pi pi-cloud" data-v-04928eca></i><h4 data-v-04928eca>useApi Composable</h4><p data-v-04928eca>HTTP, Toasts, Redirecciones, Tokens</p></div></div></div><div class="principles" data-v-04928eca><h3 data-v-04928eca>Principios Clave</h3><div class="principle-cards" data-v-04928eca><div class="principle-card" data-v-04928eca><i class="pi pi-check-circle" data-v-04928eca></i><h4 data-v-04928eca>Separación de Responsabilidades</h4><p data-v-04928eca>Cada capa tiene una función especÃfica</p></div><div class="principle-card" data-v-04928eca><i class="pi pi-copy" data-v-04928eca></i><h4 data-v-04928eca>DRY (Don't Repeat Yourself)</h4><p data-v-04928eca>Sin código duplicado de toasts o validaciones</p></div><div class="principle-card" data-v-04928eca><i class="pi pi-cog" data-v-04928eca></i><h4 data-v-04928eca>Configuración sobre Código</h4><p data-v-04928eca>Los stores solo configuran, useApi ejecuta</p></div><div class="principle-card" data-v-04928eca><i class="pi pi-sync" data-v-04928eca></i><h4 data-v-04928eca>Consistencia</h4><p data-v-04928eca>Todos los endpoints se comportan igual</p></div></div></div></section>',1)),a("section",na,[e[23]||(e[23]=a("div",{class:"section-header"},[a("i",{class:"pi pi-wrench"}),a("h2",null,"TecnologÃas")],-1)),a("div",da,[a("div",ra,[e[11]||(e[11]=a("i",{class:"pi pi-server tech-icon",style:{color:"#00DC82"}},null,-1)),e[12]||(e[12]=a("h4",null,"Nuxt 3",-1)),e[13]||(e[13]=a("p",null,"Framework principal",-1)),t(s(f),{value:"3.7.3+",severity:"success"})]),a("div",ua,[e[14]||(e[14]=a("i",{class:"pi pi-database tech-icon",style:{color:"#FFD859"}},null,-1)),e[15]||(e[15]=a("h4",null,"Pinia",-1)),e[16]||(e[16]=a("p",null,"State management",-1)),t(s(f),{value:"2.1.7+",severity:"success"})]),a("div",pa,[e[17]||(e[17]=a("i",{class:"pi pi-palette tech-icon",style:{color:"#41B883"}},null,-1)),e[18]||(e[18]=a("h4",null,"PrimeVue",-1)),e[19]||(e[19]=a("p",null,"UI Components",-1)),t(s(f),{value:"3.50.0+",severity:"success"})]),a("div",va,[e[20]||(e[20]=a("i",{class:"pi pi-shield tech-icon",style:{color:"#667eea"}},null,-1)),e[21]||(e[21]=a("h4",null,"Laravel Sanctum",-1)),e[22]||(e[22]=a("p",null,"Autenticación",-1)),t(s(f),{value:"Backend",severity:"info"})])])]),e[26]||(e[26]=I('<section id="ayuda" class="doc-section" data-v-04928eca><div class="section-header" data-v-04928eca><i class="pi pi-question-circle" data-v-04928eca></i><h2 data-v-04928eca>Ayuda y Soporte</h2></div><div class="help-cards" data-v-04928eca><div class="help-card" data-v-04928eca><i class="pi pi-question" data-v-04928eca></i><h4 data-v-04928eca>¿Tienes Preguntas?</h4><ul data-v-04928eca><li data-v-04928eca>Consulta la documentación especÃfica</li><li data-v-04928eca>Busca ejemplos en las guÃas</li><li data-v-04928eca>Revisa <code data-v-04928eca>store/authStore.js</code></li></ul></div><div class="help-card" data-v-04928eca><i class="pi pi-exclamation-triangle" data-v-04928eca></i><h4 data-v-04928eca>¿Encontraste un Bug?</h4><ul data-v-04928eca><li data-v-04928eca>Verifica que uses las opciones correctamente</li><li data-v-04928eca>Consulta la sección de debugging</li><li data-v-04928eca>Revisa la consola del navegador</li></ul></div><div class="help-card" data-v-04928eca><i class="pi pi-lightbulb" data-v-04928eca></i><h4 data-v-04928eca>¿Necesitas un Feature?</h4><ul data-v-04928eca><li data-v-04928eca>Revisa si ya existe en useApi</li><li data-v-04928eca>
7Consulta las opciones disponibles</li><li data-v-04928eca>Considera si debe ser parte de useApi</li></ul></div></div></section>',1))])]),e[28]||(e[28]=a("footer",{class:"docs-footer"},[a("p",null,[a("i",{class:"pi pi-calendar"}),l(" Ãltima actualización: Enero 2026 | Versión 1.0 ")]),a("p",null,[a("i",{class:"pi pi-users"}),l(" VibeAdventures Development Team ")])],-1))])):R("",!0)],64))}},xa=_(ha,[["__scopeId","data-v-04928eca"]]);export{xa 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.