[{"data":1,"prerenderedAt":438},["ShallowReactive",2],{"landing-en":3,"articles-all":23},{"id":4,"title":5,"body":6,"description":14,"extension":15,"meta":16,"navigation":17,"path":18,"seo":19,"stem":21,"__hash__":22},"landing_en/en/index.md","Wiki LLOS&",{"type":7,"value":8,"toc":9},"minimark",[],{"title":10,"searchDepth":11,"depth":12,"links":13},"",1,2,[],"Knowledge base — guides, notes and technical reference","md",{},true,"/en",{"title":5,"description":20},"LLOS& internal documentation: Nuxt/Sanity development, Shopify and Holded.","en/index","UhKL8OuURWPjYuT1UsAWSBfAozPzCHwu-h9HEc1cMic",[24,38,46,53,60,68,75,83,90,99,106,113,120,127,134,141,149,161,172,180,187,195,201,208,215,221,226,232,239,244,250,256,261,266,271,277,283,289,296,303,309,317,324,331,338,345,351,356,363,368,374,380,386,392,398,404,411,418,424,431],{"locale":25,"path":26,"title":27,"description":28,"cat":29,"catSlug":30,"tags":31,"icon":33,"updated":34,"words":35,"read":36,"stem":37},"es","/desarrollo/netlify/desplegar-proyecto","Desplegar un Proyecto","Aprende a desplegar tu proyecto en Netlify.","Nuxt/Sanity","desarrollo",[32],"netlify","i-lucide-cloud","2026-01-02",104,"2 min de lectura","1.desarrollo/1.netlify/1.desplegar-proyecto",{"locale":25,"path":39,"title":40,"description":41,"cat":29,"catSlug":30,"tags":42,"icon":33,"updated":43,"words":44,"read":36,"stem":45},"/desarrollo/netlify/configurar-hook-sanity","Deploy desde Sanity","Aprende a configurar un Build Hook en Netlify para lanzar deploys directamente desde Sanity Studio.",[32],"2026-01-13",103,"1.desarrollo/1.netlify/2.configurar-hook-sanity",{"locale":25,"path":47,"title":48,"description":49,"cat":29,"catSlug":30,"tags":50,"icon":33,"updated":43,"words":51,"read":36,"stem":52},"/desarrollo/netlify/configurar-pagina-preview","Configurar Página Preview","Aprende a configurar una página de preview usando Netlify y Sanity para visualizar cambios antes de producción.",[32],151,"1.desarrollo/1.netlify/3.configurar-pagina-preview",{"locale":25,"path":54,"title":55,"description":56,"cat":29,"catSlug":30,"tags":57,"icon":33,"updated":34,"words":58,"read":36,"stem":59},"/desarrollo/netlify/configurar-formulario","Configurar Formulario","Aprende a crear y usar formularios de Netlify",[32],280,"1.desarrollo/1.netlify/4.configurar-formulario",{"locale":25,"path":61,"title":62,"description":63,"cat":29,"catSlug":30,"tags":64,"icon":66,"updated":34,"words":12,"read":36,"stem":67},"/desarrollo/nuxt/introduccion","Introducción al Starter","En desarrollo...",[65],"nuxt","i-lucide-layers","1.desarrollo/2.nuxt/1.introduccion",{"locale":25,"path":69,"title":70,"description":71,"cat":29,"catSlug":30,"tags":72,"icon":66,"updated":34,"words":73,"read":36,"stem":74},"/desarrollo/nuxt/preload","Font Preload","Para evitar el salto tipográfico mientras la fuente se carga, basta con activar el preload de las fuentes App.vue, en useHead:",[65],220,"1.desarrollo/2.nuxt/preload",{"locale":25,"path":76,"title":62,"description":77,"cat":29,"catSlug":30,"tags":78,"icon":80,"updated":34,"words":81,"read":36,"stem":82},"/desarrollo/sanity/introduccion","Aprende a configurar el deploy y página preview",[79],"sanity","i-lucide-database",31,"1.desarrollo/3.sanity/1.introduccion",{"locale":25,"path":84,"title":85,"description":86,"cat":29,"catSlug":30,"tags":87,"icon":80,"updated":34,"words":88,"read":36,"stem":89},"/desarrollo/sanity/preview-documentos","Configura el preview por documento","Aprende a configurar el preview de cada documento existente en tu proyecto",[79],162,"1.desarrollo/3.sanity/2.preview-documentos",{"locale":25,"path":91,"title":92,"description":93,"cat":29,"catSlug":30,"tags":94,"icon":96,"updated":34,"words":97,"read":36,"stem":98},"/desarrollo/funciones/clamp","clamp()","Limita un valor dentro de un rango específico para que nunca supere los límites.",[95],"funciones","i-lucide-square-function",134,"1.desarrollo/4.funciones/1.clamp",{"locale":25,"path":100,"title":101,"description":102,"cat":29,"catSlug":30,"tags":103,"icon":96,"updated":34,"words":104,"read":36,"stem":105},"/desarrollo/funciones/lerp","lerp()","Interpolación lineal clásica para acercar un valor inicial a uno final usando un factor alpha.",[95],149,"1.desarrollo/4.funciones/2.lerp",{"locale":25,"path":107,"title":108,"description":109,"cat":29,"catSlug":30,"tags":110,"icon":96,"updated":34,"words":111,"read":36,"stem":112},"/desarrollo/funciones/map","map()","Esta función se conoce comúnmente como función de mapeo lineal o remapeo de rangos.",[95],270,"1.desarrollo/4.funciones/3.map",{"locale":25,"path":114,"title":115,"description":116,"cat":29,"catSlug":30,"tags":117,"icon":96,"updated":34,"words":118,"read":36,"stem":119},"/desarrollo/funciones/mix","mix()","Interpola entre dos valores numéricos utilizando un factor alpha entre 0 y 1.",[95],141,"1.desarrollo/4.funciones/4.mix",{"locale":25,"path":121,"title":122,"description":123,"cat":29,"catSlug":30,"tags":124,"icon":96,"updated":34,"words":125,"read":36,"stem":126},"/desarrollo/funciones/smoothstep","smoothstep()","Produce una transición suave entre dos valores, ideal para animaciones sin saltos bruscos.",[95],173,"1.desarrollo/4.funciones/5.smoothstep",{"locale":25,"path":128,"title":129,"description":130,"cat":29,"catSlug":30,"tags":131,"icon":96,"updated":34,"words":132,"read":36,"stem":133},"/desarrollo/funciones/step","step()","Devuelve 0 o 1 dependiendo de si un valor supera un umbral determinado.",[95],114,"1.desarrollo/4.funciones/6.step",{"locale":25,"path":135,"title":136,"description":137,"cat":29,"catSlug":30,"tags":138,"icon":96,"updated":34,"words":139,"read":36,"stem":140},"/desarrollo/funciones/truncatedecimals","truncateDecimals()","Corta un número al número de decimales solicitado sin realizar redondeos.",[95],122,"1.desarrollo/4.funciones/7.truncateDecimals",{"locale":25,"path":142,"title":143,"description":144,"cat":29,"catSlug":30,"tags":145,"icon":96,"updated":34,"words":146,"read":147,"stem":148},"/desarrollo/funciones/vec","Vec","Clase utilitaria para trabajar con vectores 2D y 3D y realizar operaciones comunes.",[95],507,"3 min de lectura","1.desarrollo/4.funciones/8.vec",{"locale":25,"path":150,"title":151,"description":152,"cat":153,"catSlug":154,"tags":155,"icon":157,"updated":158,"words":159,"read":36,"stem":160},"/shopify/admin/colaboradores-externos","Colaboradores externos","Cómo añadir colaboradores externos en Shopify","Shopify","shopify",[156],"admin","i-lucide-settings","2026-09-25",6,"2.shopify/1.admin/1.colaboradores-externos",{"locale":25,"path":162,"title":163,"description":164,"cat":165,"catSlug":166,"tags":167,"icon":168,"updated":169,"words":170,"read":36,"stem":171},"/holded/fichaje","Fichaje horario","Aprende a iniciar y detener el cronómetro para registrar tu tiempo de manera precisa","Holded","holded",[166],"i-lucide-clock","2026-01-08",43,"3.holded/1.fichaje",{"locale":25,"path":173,"title":174,"description":175,"cat":165,"catSlug":166,"tags":176,"icon":168,"updated":177,"words":178,"read":36,"stem":179},"/holded/proyectos-tareas-horas","Horas proyectos","Crear proyectos y registrar tareas de forma eficiente",[166],"2026-01-22",34,"3.holded/2.proyectos-tareas-horas",{"locale":25,"path":181,"title":182,"description":183,"cat":165,"catSlug":166,"tags":184,"icon":168,"updated":34,"words":185,"read":36,"stem":186},"/holded/vacaciones","Vacaciones","Aprende a solicitar días libres y consultar tu historial de ausencias",[166],42,"3.holded/3.vacaciones",{"locale":188,"path":189,"title":190,"description":191,"cat":29,"catSlug":30,"tags":192,"icon":33,"updated":34,"words":193,"read":36,"stem":194},"ca","/ca/desarrollo/netlify/desplegar-proyecto","Desplegar un projecte","Aprèn a desplegar el teu projecte a Netlify.",[32],108,"ca/1.desarrollo/1.netlify/1.desplegar-proyecto",{"locale":188,"path":196,"title":197,"description":198,"cat":29,"catSlug":30,"tags":199,"icon":33,"updated":43,"words":35,"read":36,"stem":200},"/ca/desarrollo/netlify/configurar-hook-sanity","Deploy des de Sanity","Aprèn a configurar un Build Hook a Netlify per llançar deploys directament des de Sanity Studio.",[32],"ca/1.desarrollo/1.netlify/2.configurar-hook-sanity",{"locale":188,"path":202,"title":203,"description":204,"cat":29,"catSlug":30,"tags":205,"icon":33,"updated":43,"words":206,"read":36,"stem":207},"/ca/desarrollo/netlify/configurar-pagina-preview","Configurar la pàgina de preview","Aprèn a configurar una pàgina de preview amb Netlify i Sanity per visualitzar canvis abans de producció.",[32],153,"ca/1.desarrollo/1.netlify/3.configurar-pagina-preview",{"locale":188,"path":209,"title":210,"description":211,"cat":29,"catSlug":30,"tags":212,"icon":33,"updated":34,"words":213,"read":36,"stem":214},"/ca/desarrollo/netlify/configurar-formulario","Configurar formularis","Aprèn a crear i utilitzar formularis de Netlify",[32],276,"ca/1.desarrollo/1.netlify/4.configurar-formulario",{"locale":188,"path":216,"title":217,"description":218,"cat":29,"catSlug":30,"tags":219,"icon":66,"updated":34,"words":12,"read":36,"stem":220},"/ca/desarrollo/nuxt/introduccion","Introducció a l'Starter","En desenvolupament...",[65],"ca/1.desarrollo/2.nuxt/1.introduccion",{"locale":188,"path":222,"title":70,"description":223,"cat":29,"catSlug":30,"tags":224,"icon":66,"updated":34,"words":73,"read":36,"stem":225},"/ca/desarrollo/nuxt/preload","Per evitar el salt tipogràfic mentre la font es carrega, n'hi ha prou amb activar el preload de les fonts a App.vue, a useHead:",[65],"ca/1.desarrollo/2.nuxt/preload",{"locale":188,"path":227,"title":217,"description":228,"cat":29,"catSlug":30,"tags":229,"icon":80,"updated":34,"words":230,"read":36,"stem":231},"/ca/desarrollo/sanity/introduccion","Aprèn a configurar el deploy i la pàgina de preview",[79],33,"ca/1.desarrollo/3.sanity/1.introduccion",{"locale":188,"path":233,"title":234,"description":235,"cat":29,"catSlug":30,"tags":236,"icon":80,"updated":34,"words":237,"read":36,"stem":238},"/ca/desarrollo/sanity/preview-documentos","Configura la preview per document","Aprèn a configurar la preview de cada document existent al teu projecte",[79],163,"ca/1.desarrollo/3.sanity/2.preview-documentos",{"locale":188,"path":240,"title":92,"description":241,"cat":29,"catSlug":30,"tags":242,"icon":96,"updated":34,"words":97,"read":36,"stem":243},"/ca/desarrollo/funciones/clamp","Limita un valor dins d'un rang específic perquè no superi mai els límits.",[95],"ca/1.desarrollo/4.funciones/1.clamp",{"locale":188,"path":245,"title":101,"description":246,"cat":29,"catSlug":30,"tags":247,"icon":96,"updated":34,"words":248,"read":36,"stem":249},"/ca/desarrollo/funciones/lerp","Interpolació lineal clàssica per acostar un valor inicial a un de final amb un factor alpha.",[95],148,"ca/1.desarrollo/4.funciones/2.lerp",{"locale":188,"path":251,"title":108,"description":252,"cat":29,"catSlug":30,"tags":253,"icon":96,"updated":34,"words":254,"read":36,"stem":255},"/ca/desarrollo/funciones/map","Aquesta funció es coneix comunament com a funció de mapatge lineal o de reescalat de rangs.",[95],262,"ca/1.desarrollo/4.funciones/3.map",{"locale":188,"path":257,"title":115,"description":258,"cat":29,"catSlug":30,"tags":259,"icon":96,"updated":34,"words":118,"read":36,"stem":260},"/ca/desarrollo/funciones/mix","Interpola entre dos valors numèrics amb un factor alpha entre 0 i 1.",[95],"ca/1.desarrollo/4.funciones/4.mix",{"locale":188,"path":262,"title":122,"description":263,"cat":29,"catSlug":30,"tags":264,"icon":96,"updated":34,"words":125,"read":36,"stem":265},"/ca/desarrollo/funciones/smoothstep","Produeix una transició suau entre dos valors, ideal per a animacions sense salts bruscos.",[95],"ca/1.desarrollo/4.funciones/5.smoothstep",{"locale":188,"path":267,"title":129,"description":268,"cat":29,"catSlug":30,"tags":269,"icon":96,"updated":34,"words":132,"read":36,"stem":270},"/ca/desarrollo/funciones/step","Retorna 0 o 1 segons si un valor supera un llindar determinat.",[95],"ca/1.desarrollo/4.funciones/6.step",{"locale":188,"path":272,"title":136,"description":273,"cat":29,"catSlug":30,"tags":274,"icon":96,"updated":34,"words":275,"read":36,"stem":276},"/ca/desarrollo/funciones/truncatedecimals","Trunca un nombre al nombre de decimals sol·licitat sense arrodonir.",[95],123,"ca/1.desarrollo/4.funciones/7.truncateDecimals",{"locale":188,"path":278,"title":143,"description":279,"cat":29,"catSlug":30,"tags":280,"icon":96,"updated":34,"words":281,"read":147,"stem":282},"/ca/desarrollo/funciones/vec","Classe utilitària per treballar amb vectors 2D i 3D i fer operacions comunes.",[95],508,"ca/1.desarrollo/4.funciones/8.vec",{"locale":188,"path":284,"title":285,"description":286,"cat":153,"catSlug":154,"tags":287,"icon":157,"updated":158,"words":159,"read":36,"stem":288},"/ca/shopify/admin/colaboradores-externos","Col·laboradors externs","Com afegir col·laboradors externs a Shopify",[156],"ca/2.shopify/1.admin/1.colaboradores-externos",{"locale":188,"path":290,"title":291,"description":292,"cat":165,"catSlug":166,"tags":293,"icon":168,"updated":169,"words":294,"read":36,"stem":295},"/ca/holded/fichaje","Fitxatge horari","Aprèn a iniciar i aturar el cronòmetre per registrar el teu temps amb precisió",[166],41,"ca/3.holded/1.fichaje",{"locale":188,"path":297,"title":298,"description":299,"cat":165,"catSlug":166,"tags":300,"icon":168,"updated":177,"words":301,"read":36,"stem":302},"/ca/holded/proyectos-tareas-horas","Hores de projectes","Crea projectes i registra tasques de manera eficient",[166],37,"ca/3.holded/2.proyectos-tareas-horas",{"locale":188,"path":304,"title":305,"description":306,"cat":165,"catSlug":166,"tags":307,"icon":168,"updated":34,"words":185,"read":36,"stem":308},"/ca/holded/vacaciones","Vacances","Aprèn a sol·licitar dies lliures i consultar el teu historial d'absències",[166],"ca/3.holded/3.vacaciones",{"locale":310,"path":311,"title":312,"description":313,"cat":29,"catSlug":30,"tags":314,"icon":33,"updated":34,"words":35,"read":315,"stem":316},"en","/en/desarrollo/netlify/desplegar-proyecto","Deploy a Project","Learn how to deploy your project on Netlify.",[32],"2 min read","en/1.desarrollo/1.netlify/1.desplegar-proyecto",{"locale":310,"path":318,"title":319,"description":320,"cat":29,"catSlug":30,"tags":321,"icon":33,"updated":43,"words":322,"read":315,"stem":323},"/en/desarrollo/netlify/configurar-hook-sanity","Deploy from Sanity","Learn how to set up a Build Hook in Netlify to trigger deploys directly from Sanity Studio.",[32],99,"en/1.desarrollo/1.netlify/2.configurar-hook-sanity",{"locale":310,"path":325,"title":326,"description":327,"cat":29,"catSlug":30,"tags":328,"icon":33,"updated":43,"words":329,"read":315,"stem":330},"/en/desarrollo/netlify/configurar-pagina-preview","Set Up Preview Page","Learn how to set up a preview page using Netlify and Sanity to review changes before production.",[32],142,"en/1.desarrollo/1.netlify/3.configurar-pagina-preview",{"locale":310,"path":332,"title":333,"description":334,"cat":29,"catSlug":30,"tags":335,"icon":33,"updated":34,"words":336,"read":315,"stem":337},"/en/desarrollo/netlify/configurar-formulario","Set Up Forms","Learn how to create and use Netlify forms",[32],259,"en/1.desarrollo/1.netlify/4.configurar-formulario",{"locale":310,"path":339,"title":340,"description":341,"cat":29,"catSlug":30,"tags":342,"icon":66,"updated":34,"words":343,"read":315,"stem":344},"/en/desarrollo/nuxt/introduccion","Starter Introduction","Work in progress...",[65],3,"en/1.desarrollo/2.nuxt/1.introduccion",{"locale":310,"path":346,"title":70,"description":347,"cat":29,"catSlug":30,"tags":348,"icon":66,"updated":34,"words":349,"read":315,"stem":350},"/en/desarrollo/nuxt/preload","To avoid the typographic jump while the font loads, just enable font preloading in App.vue, in useHead:",[65],206,"en/1.desarrollo/2.nuxt/preload",{"locale":310,"path":352,"title":340,"description":353,"cat":29,"catSlug":30,"tags":354,"icon":80,"updated":34,"words":230,"read":315,"stem":355},"/en/desarrollo/sanity/introduccion","Learn how to set up the deploy and preview page",[79],"en/1.desarrollo/3.sanity/1.introduccion",{"locale":310,"path":357,"title":358,"description":359,"cat":29,"catSlug":30,"tags":360,"icon":80,"updated":34,"words":361,"read":315,"stem":362},"/en/desarrollo/sanity/preview-documentos","Set Up Per-Document Preview","Learn how to set up preview for each existing document in your project",[79],154,"en/1.desarrollo/3.sanity/2.preview-documentos",{"locale":310,"path":364,"title":92,"description":365,"cat":29,"catSlug":30,"tags":366,"icon":96,"updated":34,"words":97,"read":315,"stem":367},"/en/desarrollo/funciones/clamp","Clamps a value within a specific range so it never exceeds the limits.",[95],"en/1.desarrollo/4.funciones/1.clamp",{"locale":310,"path":369,"title":101,"description":370,"cat":29,"catSlug":30,"tags":371,"icon":96,"updated":34,"words":372,"read":315,"stem":373},"/en/desarrollo/funciones/lerp","Classic linear interpolation to ease an initial value toward a final one using an alpha factor.",[95],147,"en/1.desarrollo/4.funciones/2.lerp",{"locale":310,"path":375,"title":108,"description":376,"cat":29,"catSlug":30,"tags":377,"icon":96,"updated":34,"words":378,"read":315,"stem":379},"/en/desarrollo/funciones/map","This function is commonly known as a linear mapping or range remapping function.",[95],260,"en/1.desarrollo/4.funciones/3.map",{"locale":310,"path":381,"title":115,"description":382,"cat":29,"catSlug":30,"tags":383,"icon":96,"updated":34,"words":384,"read":315,"stem":385},"/en/desarrollo/funciones/mix","Interpolates between two numeric values using an alpha factor between 0 and 1.",[95],139,"en/1.desarrollo/4.funciones/4.mix",{"locale":310,"path":387,"title":122,"description":388,"cat":29,"catSlug":30,"tags":389,"icon":96,"updated":34,"words":390,"read":315,"stem":391},"/en/desarrollo/funciones/smoothstep","Produces a smooth transition between two values, ideal for animation without abrupt jumps.",[95],171,"en/1.desarrollo/4.funciones/5.smoothstep",{"locale":310,"path":393,"title":129,"description":394,"cat":29,"catSlug":30,"tags":395,"icon":96,"updated":34,"words":396,"read":315,"stem":397},"/en/desarrollo/funciones/step","Returns 0 or 1 depending on whether a value exceeds a given threshold.",[95],112,"en/1.desarrollo/4.funciones/6.step",{"locale":310,"path":399,"title":136,"description":400,"cat":29,"catSlug":30,"tags":401,"icon":96,"updated":34,"words":402,"read":315,"stem":403},"/en/desarrollo/funciones/truncatedecimals","Truncates a number to the requested decimal places without rounding.",[95],119,"en/1.desarrollo/4.funciones/7.truncateDecimals",{"locale":310,"path":405,"title":143,"description":406,"cat":29,"catSlug":30,"tags":407,"icon":96,"updated":34,"words":408,"read":409,"stem":410},"/en/desarrollo/funciones/vec","Utility class for working with 2D and 3D vectors and performing common operations.",[95],510,"3 min read","en/1.desarrollo/4.funciones/8.vec",{"locale":310,"path":412,"title":413,"description":414,"cat":153,"catSlug":154,"tags":415,"icon":157,"updated":158,"words":416,"read":315,"stem":417},"/en/shopify/admin/colaboradores-externos","External Collaborators","How to add external collaborators in Shopify",[156],7,"en/2.shopify/1.admin/1.colaboradores-externos",{"locale":310,"path":419,"title":420,"description":421,"cat":165,"catSlug":166,"tags":422,"icon":168,"updated":169,"words":301,"read":315,"stem":423},"/en/holded/fichaje","Time Tracking","Learn how to start and stop the timer to log your time accurately",[166],"en/3.holded/1.fichaje",{"locale":310,"path":425,"title":426,"description":427,"cat":165,"catSlug":166,"tags":428,"icon":168,"updated":177,"words":429,"read":315,"stem":430},"/en/holded/proyectos-tareas-horas","Project Hours","Create projects and log tasks efficiently",[166],36,"en/3.holded/2.proyectos-tareas-horas",{"locale":310,"path":432,"title":433,"description":434,"cat":165,"catSlug":166,"tags":435,"icon":168,"updated":34,"words":436,"read":315,"stem":437},"/en/holded/vacaciones","Time Off","Learn how to request days off and check your absence history",[166],39,"en/3.holded/3.vacaciones",1790696774043]