LIBRISTO
LIBROAMANTO
obbligatorio
Entra a far parte di una comunità di amanti dei libri di tutto il mondo e ottieni numerosi vantaggi. Crea un account gratuito
0
Spedizione gratuita con Packeta per un prezzo superiore a 69.99 €
Bartolini 4.49 Punto Poste 5.49 Punto Poste 5.49 Punto Bartolini 3.49 DHL 6.99 GLS 7.99

Spedizione gratuita per ordini superiori a 69,99 euro.
Libro Isis Anonymous
Codice Libristo: 11859470
Casa editrice Nabu Press, luglio 2011
This is a reproduction of a book published before 1923. This book may have occasional imperfections... Descrizione completa
? points 76 b
31.09
Magazzino esterno Inviamo tra 9-15 giorni

30 giorni per il reso


I clienti hanno acquistato anche


This is a reproduction of a book published before 1923. This book may have occasional imperfections such as missing or blurred pages, poor pictures, errant marks, etc. that were either part of the original artifact, or were introduced by the scanning process. We believe this work is culturally important, and despite the imperfections, have elected to bring it back into print as part of our continuing commitment to the preservation of printed works worldwide. We appreciate your understanding of the imperfections in the preservation process, and hope you enjoy this valuable book. br/br/ ++++br/ The below data was compiled from various identification fields in the bibliographic record of this title. This data is provided as an additional tool in helping to ensure edition identification: br/++++ br/br/ Isisbr/br/<publisher> Brockhaus, 1845br/br/<subjects> Education; Higher; Education / Higher; Education / Students & Student Life</p></div> <div :class="open ? '' : 'bg-gradient-to-t'" class="flex justify-end items-end absolute bottom-0 left-0 right-0 h-24 from-white via-white lg:hidden"> <button @click="open = !open" class="flex items-center font-montserrat text-lgreen2 font-bold"> Descrizione completa <svg :class="open ? 'rotate-180' : ''" class="ml-2 transform transition-all" height="10" viewBox="0 0 17 10" width="17" xmlns="http://www.w3.org/2000/svg"><path d="m15.7 2-6.9 6.8-6.9-6.8" fill="none" stroke="#00bf9c" stroke-linecap="round" stroke-linejoin="round"/></svg> </button> </div> </div> </div> </div> </div> </div> </section> <!-- end:l-content --> <script type="application/ld+json"> { "@context": "https://schema.org/", "@type": ["Product", "Book"], "name": "Isis", "id": "11859470", "sku": "11859470", "gtin": "9781178959512", "isbn": "9781178959512", "numberOfPages": 498, "author": { "@type": "Person", "name": "Anonymous" }, "bookFormat": "https://schema.org/Paperback", "description": "This is a reproduction of a book published before 1923. This book may have occasional imperfections such as missing or blurred pages, poor pictures, errant marks, etc. that were either part of the original artifact, or were introduced by the scanning process. We believe this work is culturally important, and despite the imperfections, have elected to bring it back into print as part of our continuing commitment to the preservation of printed works worldwide. We appreciate your understanding of the imperfections in the preservation process, and hope you enjoy this valuable book. br/br/ ++++br/ The below data was compiled from various identification fields in the bibliographic record of this title. This data is provided as an additional tool in helping to ensure edition identification: br/++++ br/br/ Isisbr/br/ Brockhaus, 1845br/br/ Education; Higher; Education / Higher; Education / Students & Student Life", "image": "https://libris.to/media/jacket/11859470_isis.jpg", "url": "https://www.libristo.it/it/libro/isis_11859470", "itemCondition": "https://schema.org/NewCondition", "brand": "Nabu Press", "offers": { "@type": "Offer", "availability": "http://schema.org/InStock", "price": 31.09, "priceCurrency": "EUR" } } </script> <section class="bg-primary-700" x-data="{ videoModalOpen: false, closeVideoModal() { this.videoModalOpen = false; // Clear the iframe src to stop the video this.$nextTick(() => { if (this.$refs.videoIframe) { this.$refs.videoIframe.src = ''; } }); } }"> <div class="c-container"> <div class="flex flex-col lg:flex-row w-full"> <div class="flex items-center flex-1 gap-6 lg:gap-0 lg:mb-0 px-4 lg:px-0 lg:h-[289px] pt-12 pb-48 lg:pt-0 lg:pb-0 relative flex-col lg:flex-row"> <div class="relative z-10 flex flex-col gap-4 text-center lg:text-left"> <div class="flex items-center gap-2 text-white font-heading text-[23px] justify-center lg:justify-start"> <span class="font-bold">Attrice</span> & <span class="font-bold">Poliglotta</span> </div> <span class="text-yell font-[900] text-7xl">EWA KASP</span> <span class="flex items-end justify-end gap-2 text-right text-white font-heading"> <span class="">per</span> <svg class="text-white w-24 h-8 grow-0 shrink-0" width="248" height="80" viewBox="0 0 248 80" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M0.904297 78.9921H25.403L26.226 74.4975L6.9182 76.5865V34.3626H0.904297V78.9921ZM33.3161 78.9921H39.33V34.3626H33.3161V78.9921ZM50.2183 78.9921H60.7901C70.0325 78.9921 75.3501 73.8011 75.3501 66.711C75.3501 59.6843 69.0196 55.6328 62.8791 55.6328V55.5062C69.716 54.8098 73.8941 50.1886 73.8941 44.7445C73.8941 39.237 69.8426 34.3626 61.4864 34.3626H50.2183V78.9921ZM56.2322 76.0168V56.709H59.8405C66.1077 57.0888 69.2096 61.71 69.2096 67.3441C69.2096 73.2947 65.5379 76.5865 60.347 76.5865C59.0176 76.5865 57.5616 76.3966 56.2322 76.0168ZM56.2322 54.6199V36.6415L58.9543 36.7048C65.0948 36.958 68.0068 40.9462 68.0068 45.7573C68.0068 50.6951 64.9049 54.43 59.2075 54.6199H56.2322ZM83.7062 78.9921H89.7201V57.5319L106.053 78.9921H113.839L95.7973 57.1521C96.6836 57.2787 97.7598 57.2787 99.2791 57.0888C104.66 56.3291 109.471 51.9611 109.471 46.0105C109.471 39.0471 103.964 34.3626 96.0506 34.3626H83.7062V78.9921ZM89.7201 54.1135V36.8314L92.822 36.8947C99.8488 37.2746 103.394 42.0857 103.394 47.7831C103.394 53.4804 99.7855 55.886 95.924 55.886C93.4551 55.886 91.2394 55.1264 89.7201 54.1135ZM119.916 78.9921H125.93V34.3626H119.916V78.9921ZM147.074 80.0049C153.974 80.0049 160.304 74.7507 160.304 67.5973C160.304 60.8237 155.683 57.2787 150.745 54.2401L145.491 51.1382C142.326 49.1758 139.73 46.9601 139.73 43.0986C139.73 38.7939 142.959 36.3883 146.821 36.3883C150.619 36.3883 153.341 38.4773 154.417 42.5288L159.291 40.7563C157.646 36.7681 153.847 33.3497 147.454 33.3497C140.997 33.3497 134.919 37.9076 134.919 44.6812C134.919 50.8217 138.718 54.3034 143.972 57.4686L149.036 60.5705C152.581 62.7229 155.303 65.1917 155.303 69.4331C155.303 74.0543 151.822 76.9663 147.517 76.9663C143.276 76.9663 139.224 74.1176 138.718 68.7368L133.653 69.4964C134.54 75.6369 140.11 80.0049 147.074 80.0049ZM197.084 34.3626H164.039L163.596 38.9205L177.523 36.8314V78.9921H183.537V36.8314L197.527 38.9205L197.084 34.3626ZM223.988 80.0049C237.346 80.0049 247.094 68.5469 247.094 56.0126C247.094 43.1619 237.409 33.3497 224.178 33.3497C210.758 33.3497 201.072 44.8078 201.072 57.2787C201.072 70.1295 210.695 80.0049 223.988 80.0049ZM207.149 53.6704C207.149 44.8078 212.72 36.6415 222.153 36.6415C232.851 36.6415 241.017 47.2766 241.017 59.6843C241.017 68.5469 235.446 76.7131 225.951 76.7131C215.252 76.7131 207.149 66.078 207.149 53.6704Z" fill="currentColor"/> <path d="M123.499 19.4591L112.018 9.87149V12.5473L123.499 23.7192L134.981 12.6429V10.0694L123.499 19.4591Z" fill="currentColor"/> <path d="M123.499 9.59257L112.018 0.00494385V2.68073L123.499 13.8527L134.981 2.77635V0.202905L123.499 9.59257Z" fill="currentColor"/> </svg> </span> </div> <div @click="videoModalOpen = true" class="lg:absolute lg:bottom-0 lg:top-0 lg:right-18 h-full z-10 flex flex-col items-center justify-center gap-1 cursor-pointer"> <button class="flex items-center justify-center mt-11 hover:scale-105 transition-transform cursor-pointer"> <svg class="text-primary w-[71px] h-[71px]" xmlns="http://www.w3.org/2000/svg" width="26.455" height="26.455" viewBox="0 0 26.455 26.455"> <g id="Group_1509" data-name="Group 1509" transform="translate(-1062.25 -398.931)" opacity="0.5"> <g id="g835" transform="translate(1063 399.681)"> <path id="path837" d="M-617.711-308.855a12.477,12.477,0,0,1-12.477,12.477,12.477,12.477,0,0,1-12.477-12.477,12.477,12.477,0,0,1,12.477-12.477A12.477,12.477,0,0,1-617.711-308.855Z" transform="translate(642.665 321.333)" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/> </g> <g id="g839" transform="translate(1071.853 405.428)"> <path id="path841" d="M0,0V13.461L9.319,6.73Z" fill="currentColor"/> </g> </g> </svg> </button> <span class="text-primary text-base/10 font-bold">Riproduci video</span> </div> <img src="https://www.libristo.it/img/ewakasp2x.png" alt="Ewa Kasp" class="absolute bottom-0 top-0 right-0 h-full z-0 hidden lg:block"> <img src="https://www.libristo.it/img/ewakasp_mobile.png" alt="Ewa Kasp" class="absolute bottom-0 top-0 right-0 w-full h-full z-0 object-cover block lg:hidden"> </div> <div class="w-full lg:w-[360px] shrink-0 py-12 lg:py-0 px-4 lg:px-8 flex justify-center items-center gap-4 text-center bg-white/10"> <svg class="text-primary-200 w-18 h-18 opacity-30" width="20" height="19" viewBox="0 0 20 19" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M16.1138 9.1765L8.49805 0.177002H10.623L19.498 9.1765L10.7005 18.177H8.65606L16.1138 9.1765Z" fill="currentColor"/> <path d="M8.11384 9.1765L0.498047 0.177002H2.62299L11.498 9.1765L2.70047 18.177H0.656061L8.11384 9.1765Z" fill="currentColor"/> </svg> <span class="text-primary-200 font-heading text-lg/10 italic">Libristo ha la più grande selezione di letteratura in lingue straniere. Per questo compro i miei libri qui.</span> <svg class="text-primary-200 w-18 h-18 rotate-180 opacity-30" width="20" height="19" viewBox="0 0 20 19" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M16.1138 9.1765L8.49805 0.177002H10.623L19.498 9.1765L10.7005 18.177H8.65606L16.1138 9.1765Z" fill="currentColor"/> <path d="M8.11384 9.1765L0.498047 0.177002H2.62299L11.498 9.1765L2.70047 18.177H0.656061L8.11384 9.1765Z" fill="currentColor"/> </svg> </div> </div> </div> <!-- Video Modal --> <div x-show="videoModalOpen" x-transition:enter="transition ease-out duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="transition ease-in duration-200" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" class="fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/75" x-cloak @click.self="closeVideoModal()" @keydown.escape.window="closeVideoModal()"> <div class="relative w-full max-w-5xl bg-white rounded-lg shadow-xl"> <!-- Close button --> <button @click="closeVideoModal()" class="absolute -top-12 right-4 z-10 p-2 text-white transition-colors"> <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> </svg> </button> <!-- YouTube embed container --> <div class="relative w-full" style="padding-bottom: 56.25%;"> <iframe x-show="videoModalOpen" x-ref="videoIframe" class="absolute top-0 left-0 w-full h-full rounded-lg" :src="videoModalOpen ? 'https://www.youtube.com/embed/PwhROPPeqr0?autoplay=1&rel=0' : ''" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen> </iframe> </div> </div> </div> </section> <section class="bg-cream"> <div class="c-container"> <div class="flex flex-col lg:flex-row w-full"> <div class="flex-1 mb-16 lg:mb-0 lg:mr-8 px-4 lg:px-0 py-12"> <h2 class="font-heading font-bold text-2xl lg:text-4xl text-primary-700 mb-12">Informazioni sul libro</h2> <div class="grid gap-6 grid-cols-2 lg:grid-cols-3 font-merriweatherlight text-gray-600"> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Titolo completo</span> <strong class="text-black">Isis</strong> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Autore</span> <span class="text-black"> <a rel="nofollow" class="no-underline font-bold text-primary text-base" href="https://www.libristo.it/it/autore/Anonymous">Anonymous</a><span class="font-bold">,</span> <a rel="nofollow" class="no-underline font-bold text-primary text-base" href="https://www.libristo.it/it/autore/Anonymous">Anonymous</a> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Lingua</span> <span class="text-black"> <span class="flex items-center"> <img class="w-4 h-4 mr-2 transition-all duration-100" src="https://www.libristo.it/img/flag/lang/de.svg" alt=""><strong class="text-black">Tedesco</strong> </span> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Rilegatura</span> <span class="text-black"> <span class="flex items-center"> <span class="flex items-center"><svg class="w-4 h-4" height="37" viewBox="0 0 38 37" width="38" xmlns="http://www.w3.org/2000/svg"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="m1.6 5.3 17.6 4.8 17.6-4.8v25.6l-17.6 4.8-17.6-4.8z"/><path d="m19.2 10.1v25.6"/><path d="m35.2 1.1-16 4.8-16-4.8"/></g></svg></span><span class="font-bold text-black ml-2"> Libro - In brossura </span> </span> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Data di pubblicazione</span> <span class="text-black"> <strong class="text-black">2011</strong> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Numero di pagine</span> <span class="text-black"> <strong class="text-black">498</strong> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">EAN</span> <span class="text-black"> <strong class="text-black">9781178959512</strong> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">ISBN</span> <span class="text-black"> <strong class="text-black">1178959511</strong> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Codice Libristo</span> <span class="text-black"> <strong class="text-black">11859470</strong> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Casa editrice</span> <span class="text-black"> <a rel="nofollow" class="no-underline font-bold text-primary text-base" href="https://www.libristo.it/it/editore/Nabu%20Press">Nabu Press</a> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Peso</span> <span class="text-black"> <strong class="text-black">883</strong> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Dimensioni</span> <span class="text-black"> <strong class="text-black">189 x 246 x 30</strong> </span> </div> </div> <div class="w-full mt-12 pt-8 border-0 border-solid border-t border-gray-200"> <div class="w-full"> <div class="flex flex-col gap-1"> <h4 class="text-sm text-gray font-normal mb-0">Categorie</h4> <div class="mb-2"> <div class="mb-2"> <a rel="nofollow" class="font-bold no-underline leading-none text-primary text-base" href="https://www.libristo.it/it/libri-in-tedesco/storia-e-archeologia">Storia e Archeologia</a> <span class="px-1 text-gray-300">></span> <a rel="nofollow" class="font-bold no-underline leading-none text-primary text-base" href="https://www.libristo.it/it/libri-in-tedesco/storia">Storia</a> </div> </div> </div> </div> </div> </div> <div class="w-full lg:w-[360px] shrink-0 px-4 py-12 lg:px-8 flex flex-col justify-start text-center bg-pink"> <div><img class="mb-6 w-32" src="https://www.libristo.it/img/svg/gifts/gifte-white.svg" alt=""></div> <h5 class="text-2xl mb-9 font-heading text-white">Regala questo libro oggi stesso</h5> <div class="text-left font-merriweatherlight flex flex-col gap-6"> <h6 class="text-lg pb-4 font-heading text-primary-700 lg:text-2xl font-bold border-0 border-b border-solid border-gray-200">È facile</h6> <span class="grid grid-cols-[auto_1fr] text-primary-700"> <span class="flex justify-center items-center bg-primary-700 text-white font-heading font-bold text-sm rounded-full w-7.5 h-7.5 mr-4">1</span> Aggiungi il libro al carrello e scegli la consegna come regalo </span> <span class="grid grid-cols-[auto_1fr] text-primary-700"> <span class="flex justify-center items-center bg-primary-700 text-white font-heading font-bold text-sm rounded-full w-7.5 h-7.5 mr-4">2</span> Ti invieremo subito il buono </span> <span class="grid grid-cols-[auto_1fr] text-primary-700"> <span class="flex justify-center items-center bg-primary-700 text-white font-heading font-bold text-sm rounded-full w-7.5 h-7.5 mr-4">3</span> Il libro arriverà all'indirizzo del destinatario </span> </div> </div> </div> </div> </section> <!-- end:l-content:params --> <script> dataLayer.push({ 'event': 'page_view', 'dynx_itemid': '11859470', 'dynx_pagetype': 'product', 'dynx_totalvalue': '31.09' }); </script> </div> <footer class="border-t-primary w-full bg-primary-200 text-black"> <section class="flex lg:max-w-6xl w-full py-8 lg:py-16 mx-auto px-7"> <div class="grid sm:grid-cols-2 lg:grid-cols-4 w-full gap-y-8 text-sm"> <div class="grid grid-cols-[auto_1fr] items-center gap-4.5 leading-tight"> <img class="w-9" src="https://www.libristo.it/img/ico/heart.svg" alt=""> <span> <strong class="font-bold">24 milioni di titoli</strong> <br> in 150+ lingue </span> </div> <div class="grid grid-cols-[auto_1fr] items-center gap-4 leading-tight"> <img class="w-9" src="https://www.libristo.it/img/ico/prices.svg" alt=""> <span> <strong class="font-bold">Ad ottimi prezzi</strong> <br> convenienti e aggiornati </span> </div> <div class="grid grid-cols-[auto_1fr] items-center gap-4 leading-tight"> <img class="w-9" src="https://www.libristo.it/img/ico/libroamanto.svg" alt=""> <span> <strong class="font-bold">Club LIBROAMANTO</strong> <br> ricco di vantaggi e regali </span> </div> <div class="grid grid-cols-[auto_1fr] items-center gap-4 leading-tight"> <img class="w-9" src="https://www.libristo.it/img/ico/customers.svg" alt=""> <span> <strong class="font-bold">2 milioni di clienti</strong> <br> serviti ogni anno </span> </div> </div> </section> <div class="relative w-full pb-10 lg:py-20 bg-primary-700"> <section class="max-w-6xl w-full mx-auto flex justify-around pb-12 hidden text-center lg:block"> <span class="text-5xl text-lgreen2">Tutti i libri del mondo</span> </section> <div class="relative"> <div class="lg:hidden absolute right-0 top-0 bottom-0 w-32 bg-gradient-to-l from-primary-700 pointer-events-none"> <img class="absolute right-4 bottom-4 w-7 z-5 animate-[scroll_4s_ease-in_infinite]" src="https://www.libristo.it/img/svg/tap_scroll.svg" alt="scroll"> </div> <section class="max-w-full w-full snap-mandatory snap-x mx-auto flex flex-nowrap gap-12 pb-8 pt-8 lg:mb-8 overflow-x-auto lg:overflow-x-visible lg:grid lg:grid-cols-4 lg:max-w-6xl"> <div class="snap-center shrink-0 pl-8 lg:pl-0"> <h5 class="font-heading text-primary-200 font-bold">Informazioni sugli acquisti</h5> <nav class="flex flex-col gap-1 mt-4 text-primary"> <a class="no-underline" href="https://www.libristo.it/it/domande-frequenti">Tutte le informazioni sugli acquisti</a> <a class="no-underline" href="https://www.libristo.it/it/spedizione-pagamento">Spedizione e pagamento</a> <a class="no-underline" href="https://www.libristo.it/it/termini-e-condizioni">Termini e condizioni</a> </nav> </div> <div class="snap-center shrink-0"> <h5 class="font-heading text-primary-200 font-bold">Informazioni sul negozio</h5> <nav class="flex flex-col gap-1 mt-4 text-primary"> <a class="no-underline" href="https://www.libristo.it/it/chi-siamo">Chi siamo</a> <a class="no-underline" href="https://www.libristo.it/it/contatto">Contatti</a> <a class="no-underline" href="https://www.libristo.it/it/sostenibilit%C3%A0-libri">Sostenibilità dei libri</a> </nav> </div> <div class="snap-center shrink-0 pr-24 lg:pr-0"> <h5 class="font-heading text-primary-200 font-bold">Per i clienti</h5> <nav class="flex flex-col gap-1 mt-4 text-primary"> <a class="no-underline" href="https://www.libristo.it/it/programma-fedelt%C3%A0">Programma fedeltà</a> <a class="no-underline" href="https://www.libristo.it/it/user/orders">Stato del mio ordine</a> <span> <a class="no-underline" href="https://www.libristo.it/it/reso-prodotti">Restituzione dei prodotti</a> <span class="text-gray-300 text-xs px-1">/</span> <a class="no-underline" href="https://www.libristo.it/it/reclamo">Reclamo</a> </span> </nav> </div> <div class="hidden lg:block"> <div class="font-bold font-heading text-lg text-primary-200 -mt-1.5"> Restiamo insieme<span class="align-super leading-none"> <img class="inline h-4 -ml-2" src="https://www.libristo.it/img/ico/primary_light_heart.svg" alt="heart"> </span></div> <div class="flex items-center justify-between mt-4"> <div class="flex items-center"> <a target="_blank" href="https://www.instagram.com/libristo_official" class="no-underline mr-1.5 hover:opacity-75"> <img src="https://www.libristo.it/img/social/white_instagram.svg" alt="INSTAGRAM"> </a> <a target="_blank" href="https://www.facebook.com/Libristo.official" class="no-underline mr-1.5 hover:opacity-75"> <img src="https://www.libristo.it/img/social/white_facebook.svg" alt="FACEBOOK"> </a> <a target="_blank" href="https://www.youtube.com/channel/UCqs5xjQxjJ72zSPHr3WP5Vw/featured" class="no-underline mr-1.5 hover:opacity-75"> <img src="https://www.libristo.it/img/social/white_youtube.svg" alt="YOUTUBE"> </a> <a target="_blank" href="https://www.tiktok.com/@libristo" class="no-underline mr-1.5 hover:opacity-75"> <img src="https://www.libristo.it/img/social/white_tiktok.svg" alt="TIKTOK"> </a> </div> <span class="font-thin text-2xl text-white">#libristo</span> </div> <img src="https://www.libristo.it/img/logo-new-transparent.svg" alt="LIBRISTO" class="mt-10"> </div> </section> </div> <section class="max-w-6xl w-full mx-auto lg:hidden"> <div class="px-8 text-center"> <span class="font-bold font-heading text-lg text-primary-200">Restiamo insieme<span class="align-super"> <img class="inline h-4 -ml-2" src="https://www.libristo.it/img/ico/primary_light_heart.svg" alt="heart"> </span></span> <div class="flex items-center justify-center gap-4 mb-10 lg:mb-0 mt-4"> <div class="flex items-center"> <a target="_blank" href="https://www.instagram.com/libristo_official" class="no-underline mr-2 hover:opacity-75"> <img src="https://www.libristo.it/img/social/white_instagram.svg" alt="INSTAGRAM"> </a> <a target="_blank" href="https://www.facebook.com/Libristo.official" class="no-underline mr-2 hover:opacity-75"> <img src="https://www.libristo.it/img/social/white_facebook.svg" alt="FACEBOOK"> </a> <a target="_blank" href="https://www.youtube.com/channel/UCqs5xjQxjJ72zSPHr3WP5Vw/featured" class="no-underline mr-2 hover:opacity-75"> <img src="https://www.libristo.it/img/social/white_youtube.svg" alt="YOUTUBE"> </a> <a target="_blank" href="https://www.tiktok.com/@libristo" class="no-underline mr-2 hover:opacity-75"> <img src="https://www.libristo.it/img/social/white_tiktok.svg" alt="TIKTOK"> </a> </div> <span class="font-thin text-2xl text-white">#libristo</span> </div> <img src="https://www.libristo.it/img/logo-new-transparent.svg" alt="LIBRISTO" class="mt-4"> </div> </section> <section class="max-w-6xl px-4 w-full mx-auto flex flex-col gap-8 justify-between py-12 lg:py-0 lg:flex-row"> <div class="text-center lg:text-left font-light text-sm text-gray order-3 lg:order-1"> © 2008-2026 Libristo </div> <div class="text-center flex items-center flex-wrap lg:flex-nowrap gap-4 justify-center order-2 lg:order-2"> <img class="max-h-7" src="https://www.libristo.it/img/ico/botmenu_VISA.svg" alt="VISA"> <img class="max-h-7" src="https://www.libristo.it/img/ico/botmenu_MC.svg" alt="MC"> <img class="max-h-7" src="https://www.libristo.it/img/ico/botmenu_GPAY.svg" alt="GPAY"> <img class="max-h-7" src="https://www.libristo.it/img/ico/botmenu_APAY.svg" alt="APAY"> <img class="max-h-7" src="https://www.libristo.it/img/ico/botmenu_PPAL.svg" alt="PPAL"> <img class="max-h-7" src="https://www.libristo.it/img/ico/botmenu_klarna.svg" alt="klarna"> <img class="max-h-7" src="https://www.libristo.it/img/ico/botmenu_TrustpilotL.svg" alt="TrustpilotL"> <div class="max-h-7" style="transform: scale(0.5);transform-origin: left;margin-top: -26px;"> <div class="smdWrapperTag"></div> </div> </div> <nav class="text-center lg:text-right flex items-center justify-center lg:justify-end text-gray-300 order-1 lg:order-3"> <a class="text-sm text-gray no-underline ml-4 hover:text-primary-200" href="https://www.libristo.it/it/cookie">Cookie</a> <a class="text-sm text-gray no-underline ml-4 hover:text-primary-200" href="https://www.libristo.it/it/consenso-al-trattamento-dei-dati-personali-e-informazioni-sul-trattamento-dei-dati-personali">Privacy</a> <a class="text-sm text-gray no-underline ml-4 hover:text-primary-200" href="https://www.libristo.it/it/accessibilita">Accessibilità</a> </nav> </section> </div> </footer> <div class="reveal" id="l-login" data-reveal data-animation-in="scale-in-up fast" data-animation-out="scale-out-down fast"> <div class="c-modal-content"> <p class="c-modal-heading c-heading-info is-left-aligned">Accesso</p> <p>Accedi al tuo account. Non hai ancora un account Libristo? <a href="https://www.libristo.it/it/registration">Crealo ora!</a></p> </div> <section class="l-divider-rotated">   </section> <!-- end:l-divider-rotated --> <div class="c-modal-content narrow"> <form action="https://www.libristo.it/it/auth/signin" method="post" class="main-form-wrap"> <input type="hidden" name="_token" value="7pUvx8W6Nzph9yIeylkhwMXZWNh6NEB6RC00QbYk" autocomplete="off"> <div class="row mail"> <label for="email">E-mail</label><input type="email" name="email" id="email" class="is-required" placeholder="Inserire l'e-mail"> <span class="required-info">obbligatorio</span> </div> <div class="row pass"> <label for="password">Password:</label><input type="password" name="password" class="is-required" id="password" placeholder="Immettere la password"> <span class="required-info">obbligatorio <a href="#" class="show-pass"><i class="ico-eye"></i></a></span> </div> <div class="row forgot"> <a href="https://www.libristo.it/it/lost-password" class="c-forgot-password">Password dimenticata</a> </div> <div class="row send"> <button class="c-btn">Accesso</button> </div> </form> </div> <div class="c-registration-cta"> <div class="c-modal-content"> <h4>Non hai un account? Ottieni i vantaggi di un account Libristo!</h4> <p> Con un account Libristo, avrai tutto sotto controllo. </p> <a href="https://www.libristo.it/it/registration" class="c-btn">Crea un account Libristo</a> </div> </div> <button class="close-button" data-close aria-label="Close modal" type="button"> <span aria-hidden="true"><i class="ico-close"></i></span> </button> </div> <style> [x-cloak] { display: none !important; } .chat-content ul { list-style-type: disc; padding-left: 1.25rem; margin: 0.5rem 0; } .chat-content ol { list-style-type: decimal; padding-left: 1.25rem; margin: 0.5rem 0; } .chat-content li { margin: 0.25rem 0; } .chat-content p { margin: 0.5rem 0; } .chat-content p:first-child { margin-top: 0; } .chat-content p:last-child { margin-bottom: 0; } </style> <div x-data="{ open: false, isWide: true, showDisclaimer: true, messages: [], quickActions: [{"text":"Ho bisogno di aiuto con il mio ordine","key":"order"},{"text":"Consigliami un libro","key":"recommend"},{"text":"Quando arriver\u00e0 la mia spedizione?","key":"shipment"}], typing: false, sending: false, historyLoaded: false, rateLimited: false, userInput: '', keyboardOpen: false, viewportOffset: 0, maxChatHeight: 600, minMessageHeight: 300, initialViewportHeight: 0, getCsrfToken() { const meta = document.querySelector('meta[name=csrf-token]'); return meta ? meta.getAttribute('content') : ''; }, async apiPost(url, data = {}) { const response = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'X-CSRF-TOKEN': this.getCsrfToken(), 'X-Requested-With': 'XMLHttpRequest' }, body: JSON.stringify(data) }); const json = await response.json(); return { ok: response.ok, status: response.status, data: json }; }, async loadHistory() { if (this.historyLoaded) return; this.typing = true; try { const response = await this.apiPost('/api/libroamiko/get-messages'); if (response.ok && response.data.success && response.data.messages) { this.messages = response.data.messages; } this.historyLoaded = true; } catch (error) { console.error('Failed to load chat history:', error); // Don't show error for initial load - just start fresh } finally { this.typing = false; this.$nextTick(() => { this.scrollToBottom(); }); } }, async sendMessage(quickActionText = null) { const messageText = quickActionText !== null ? quickActionText : this.userInput.trim(); if (messageText === '' || this.sending || this.rateLimited) return; this.userInput = ''; this.sending = true; this.typing = true; // Optimistically add user message this.messages.push({ role: 'user', text: messageText }); this.$nextTick(() => { this.scrollToBottom(); }); try { const response = await this.apiPost('/api/libroamiko/send-message', { message: messageText }); console.log(response.data); if (response.status === 429) { this.rateLimited = true; this.messages.push({ role: 'bot', text: 'Hai raggiunto il limite della chat. Riprova pi\u00f9 tardi.' }); // Reset rate limit after 60 seconds setTimeout(() => { this.rateLimited = false; }, 60000); } else if (response.ok && response.data.success && response.data.message) { this.messages.push(response.data.message); } else { // Something went wrong but got a response this.messages.push({ role: 'bot', text: response.data.message || 'Spiacente, qualcosa \u00e8 andato storto. Riprova.' }); } } catch (error) { console.error('Failed to send message:', error); this.messages.push({ role: 'bot', text: 'Spiacente, qualcosa \u00e8 andato storto. Riprova.' }); } finally { this.sending = false; this.typing = false; this.$nextTick(() => { this.scrollToBottom(); }); } }, async resetChat() { this.typing = true; try { const response = await this.apiPost('/api/libroamiko/reset-chat'); if (response.ok && response.data.success && response.data.messages) { this.messages = response.data.messages; } else { this.messages = []; } this.rateLimited = false; } catch (error) { console.error('Failed to reset chat:', error); this.messages.push({ role: 'bot', text: 'Impossibile resettare la chat. Riprova.' }); } finally { this.typing = false; this.$nextTick(() => { this.scrollToBottom(); }); } }, handleViewportResize() { if (window.visualViewport) { // Calculate how much the viewport has shrunk (keyboard height) const layoutHeight = this.initialViewportHeight || window.innerHeight; const visibleHeight = window.visualViewport.height; const offsetTop = window.visualViewport.offsetTop || 0; this.viewportOffset = Math.max(0, layoutHeight - (visibleHeight + offsetTop)); const heightDelta = layoutHeight - visibleHeight; this.keyboardOpen = this.viewportOffset > 100 || heightDelta > 100; // keyboard threshold // Keep chat window within visible viewport on iOS keyboard const maxHeight = Math.min(600, visibleHeight - 16); this.maxChatHeight = Math.max(320, maxHeight); this.minMessageHeight = this.keyboardOpen ? 120 : 300; } }, scrollToBottom() { const container = this.$refs.messageContainer; if (container) { container.scrollTop = container.scrollHeight; } }, init() { // Do not auto-open from UTM on mobile screens. if (this.open && window.matchMedia('(max-width: 767px)').matches) { this.open = false; } if (this.open) { this.isWide = false; // Load history immediately when chat starts open (e.g. utm_source=libroamiko) this.loadHistory(); } this.$watch('open', value => { if (value) { this.isWide = false; // Load history when chat opens for the first time this.loadHistory(); } }); // Auto-collapse wide button after 10 seconds setTimeout(() => { this.isWide = false; }, 10000); // Listen for viewport changes (keyboard open/close on mobile) if (window.visualViewport) { this.initialViewportHeight = window.innerHeight; window.visualViewport.addEventListener('resize', () => this.handleViewportResize()); window.visualViewport.addEventListener('scroll', () => this.handleViewportResize()); this.handleViewportResize(); } } }" class="fixed bottom-6 right-6 z-[100] font-sans flex flex-col items-end" :style="{ bottom: keyboardOpen ? (viewportOffset + 24) + 'px' : '' }"> <!-- Chat Window --> <div x-cloak x-show="open" x-transition:enter="transition ease-out duration-200" x-transition:enter-start="opacity-0 translate-y-8" x-transition:enter-end="opacity-100 translate-y-0" x-transition:leave="transition ease-in duration-150" x-transition:leave-start="opacity-100 translate-y-0" x-transition:leave-end="opacity-0 translate-y-8" class="absolute bottom-0 right-0 w-[360px] max-w-[calc(100vw-3rem)] bg-white rounded-2xl shadow-xl overflow-hidden flex flex-col border border-gray-200" :style="{ maxHeight: maxChatHeight + 'px' }"> <!-- Header --> <div class="bg-navy text-white px-5 py-4 flex items-center justify-between"> <div class="flex items-center gap-3 cursor-pointer" @click="open = false"> <svg class="w-6 h-6 text-white" xmlns="http://www.w3.org/2000/svg" width="25.253" height="25" viewBox="0 0 25.253 25"> <g id="Group_1596" data-name="Group 1596" transform="translate(-1104.008 -564.5)"> <g id="Group_1579" data-name="Group 1579" transform="translate(1104.635 565)"> <path id="Path_1090" data-name="Path 1090" d="M10,395.1,20.537,398.4a1.472,1.472,0,0,0,2.927,0L34,395.1" transform="translate(-10 -375.707)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1091" data-name="Path 1091" d="M30.244,362.61l.467-2.064,10.381,3.294,10.381-3.294.467,2.064" transform="translate(-29.092 -343.115)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1092" data-name="Path 1092" d="M226,426.958a1.767,1.767,0,0,1,3.414,0" transform="translate(-215.708 -404.514)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <line id="Line_385" data-name="Line 385" x1="9" y1="6" transform="translate(2.865 14.715)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <line id="Line_386" data-name="Line 386" y1="5.82" x2="9.891" transform="translate(11.778 14.894)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <g id="g55" transform="translate(2.273)"> <path id="path57" d="M-150.921-261.521s-9.745-5.873-9.745-12.4a4.56,4.56,0,0,1,4.548-4.568c3.227,0,5.2,3.263,5.2,3.263s1.971-3.263,5.2-3.263a4.56,4.56,0,0,1,4.548,4.568C-141.176-267.394-150.921-261.521-150.921-261.521Z" transform="translate(160.666 278.489)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> </g> <g id="Group_1553" data-name="Group 1553" transform="translate(6.138 5.534)"> <g id="Ellipse_101" data-name="Ellipse 101" transform="translate(0 0)" fill="none" stroke="#cbffcb" stroke-width="1"> <circle cx="1.396" cy="1.396" r="1.396" stroke="none"/> <circle cx="1.396" cy="1.396" r="0.896" fill="none"/> </g> <g id="Ellipse_102" data-name="Ellipse 102" transform="translate(4.466 0)" fill="none" stroke="#cbffcb" stroke-width="1"> <circle cx="1.396" cy="1.396" r="1.396" stroke="none"/> <circle cx="1.396" cy="1.396" r="0.896" fill="none"/> </g> <g id="Ellipse_103" data-name="Ellipse 103" transform="translate(8.933 0)" fill="none" stroke="#cbffcb" stroke-width="1"> <circle cx="1.396" cy="1.396" r="1.396" stroke="none"/> <circle cx="1.396" cy="1.396" r="0.896" fill="none"/> </g> </g> </g> </g> </svg> <span class="font-bold text-sm tracking-tight">Consulente di libri Libroamiko</span> </div> <div class="flex items-center gap-2"> <!-- Reset button --> <button @click="resetChat()" class="text-white hover:text-white/80 transition-colors p-1" title="Inizia una nuova conversazione" :disabled="typing || sending"> <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"/> </svg> </button> <!-- Close button --> <button @click="open = false" class="text-white/80 hover:text-white transition-colors"> <svg class="w-6 h-6 rotate-0" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M4.28223 8.07056L12.1411 15.9294L20 8.07056" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> </svg> </button> </div> </div> <!-- Messages area --> <div x-ref="messageContainer" class="flex-1 overflow-y-auto p-4 space-y-4 bg-cream" :style="{ minHeight: minMessageHeight + 'px' }"> <!-- Initial disclaimer inside messages --> <template x-if="showDisclaimer"> <div class="flex justify-start"> <div class="mr-2 mt-1 shrink-0"> <div class="w-8 h-8 rounded-full bg-white border border-gray-100 flex items-center justify-center shadow-sm"> <svg class="w-5 h-5 text-navy" xmlns="http://www.w3.org/2000/svg" width="18.052" height="17.8" viewBox="0 0 18.052 17.8"> <g id="Group_1600" data-name="Group 1600" transform="translate(-1104.008 -564.5)"> <g id="Group_1579" data-name="Group 1579" transform="translate(1104.635 565)"> <path id="Path_1090" data-name="Path 1090" d="M10,395.1l7.375,2.305a1.031,1.031,0,0,0,2.049,0L26.8,395.1" transform="translate(-10 -381.527)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1091" data-name="Path 1091" d="M30.244,361.991l.327-1.445,7.266,2.306,7.266-2.306.327,1.445" transform="translate(-29.438 -348.345)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1092" data-name="Path 1092" d="M226,426.565a1.237,1.237,0,0,1,2.39,0" transform="translate(-218.796 -410.854)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <line id="Line_385" data-name="Line 385" x1="6.3" y1="4.2" transform="translate(2.006 10.3)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <line id="Line_386" data-name="Line 386" y1="4.074" x2="6.924" transform="translate(8.244 10.426)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <g id="g55" transform="translate(1.591)"> <path id="path57" d="M-153.845-266.612s-6.822-4.111-6.822-8.679a3.192,3.192,0,0,1,3.183-3.2c2.259,0,3.638,2.284,3.638,2.284s1.379-2.284,3.638-2.284a3.192,3.192,0,0,1,3.183,3.2C-147.023-270.723-153.845-266.612-153.845-266.612Z" transform="translate(160.666 278.489)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> </g> <g id="Group_1553" data-name="Group 1553" transform="translate(4.296 3.873)"> <g id="Ellipse_101" data-name="Ellipse 101" transform="translate(0 0)" fill="none" stroke="#033" stroke-width="1"> <circle cx="0.977" cy="0.977" r="0.977" stroke="none"/> <circle cx="0.977" cy="0.977" r="0.477" fill="none"/> </g> <g id="Ellipse_102" data-name="Ellipse 102" transform="translate(3.126 0)" fill="none" stroke="#033" stroke-width="1"> <circle cx="0.977" cy="0.977" r="0.977" stroke="none"/> <circle cx="0.977" cy="0.977" r="0.477" fill="none"/> </g> <g id="Ellipse_103" data-name="Ellipse 103" transform="translate(6.253 0)" fill="none" stroke="#033" stroke-width="1"> <circle cx="0.977" cy="0.977" r="0.977" stroke="none"/> <circle cx="0.977" cy="0.977" r="0.477" fill="none"/> </g> </g> </g> </g> </svg> </div> </div> <div class="relative bg-white text-gray-800 rounded-2xl rounded-tl-none px-4 py-3 shadow-sm border border-gray-100 max-w-[85%] text-sm leading-relaxed"> <button @click="showDisclaimer = false" class="absolute top-2 right-2 text-gray-400 hover:text-gray-600 transition-colors" aria-label="Nascondi avviso"> <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/> </svg> </button> Utilizzando questa chat, stai comunicando con un'intelligenza artificiale generativa. Utilizzandola, accetti anche il <a href="https://www.libristo.it/it/consenso-al-trattamento-dei-dati-personali-e-informazioni-sul-trattamento-dei-dati-personali" class="text-primary underline">trattamento dei dati personali</a>. </div> </div> </template> <!-- Empty state --> <template x-if="messages.length === 0 && !typing"> <div class="flex flex-col items-center justify-center text-center text-gray-500 py-8"> <svg class="w-12 h-12 text-navy/30 mb-3" xmlns="http://www.w3.org/2000/svg" width="18.052" height="17.8" viewBox="0 0 18.052 17.8"> <g id="Group_1600" data-name="Group 1600" transform="translate(-1104.008 -564.5)"> <g id="Group_1579" data-name="Group 1579" transform="translate(1104.635 565)"> <path id="Path_1090" data-name="Path 1090" d="M10,395.1l7.375,2.305a1.031,1.031,0,0,0,2.049,0L26.8,395.1" transform="translate(-10 -381.527)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1091" data-name="Path 1091" d="M30.244,361.991l.327-1.445,7.266,2.306,7.266-2.306.327,1.445" transform="translate(-29.438 -348.345)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1092" data-name="Path 1092" d="M226,426.565a1.237,1.237,0,0,1,2.39,0" transform="translate(-218.796 -410.854)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <line id="Line_385" data-name="Line 385" x1="6.3" y1="4.2" transform="translate(2.006 10.3)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <line id="Line_386" data-name="Line 386" y1="4.074" x2="6.924" transform="translate(8.244 10.426)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <g id="g55" transform="translate(1.591)"> <path id="path57" d="M-153.845-266.612s-6.822-4.111-6.822-8.679a3.192,3.192,0,0,1,3.183-3.2c2.259,0,3.638,2.284,3.638,2.284s1.379-2.284,3.638-2.284a3.192,3.192,0,0,1,3.183,3.2C-147.023-270.723-153.845-266.612-153.845-266.612Z" transform="translate(160.666 278.489)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> </g> <g id="Group_1553" data-name="Group 1553" transform="translate(4.296 3.873)"> <g id="Ellipse_101" data-name="Ellipse 101" transform="translate(0 0)" fill="none" stroke="#033" stroke-width="1"> <circle cx="0.977" cy="0.977" r="0.977" stroke="none"/> <circle cx="0.977" cy="0.977" r="0.477" fill="none"/> </g> <g id="Ellipse_102" data-name="Ellipse 102" transform="translate(3.126 0)" fill="none" stroke="#033" stroke-width="1"> <circle cx="0.977" cy="0.977" r="0.977" stroke="none"/> <circle cx="0.977" cy="0.977" r="0.477" fill="none"/> </g> <g id="Ellipse_103" data-name="Ellipse 103" transform="translate(6.253 0)" fill="none" stroke="#033" stroke-width="1"> <circle cx="0.977" cy="0.977" r="0.977" stroke="none"/> <circle cx="0.977" cy="0.977" r="0.477" fill="none"/> </g> </g> </g> </g> </svg> <p class="text-sm">Ciao! Sono Libroamiko, il tuo consulente di libri.</p> <p class="text-sm">Come posso aiutarti?</p> </div> </template> <template x-for="(msg, index) in messages" :key="index"> <div :class="msg.role === 'bot' ? 'flex justify-start' : 'flex justify-end'"> <!-- Bot Avatar --> <div x-show="msg.role === 'bot'" class="mr-2 shrink-0"> <div class="w-9 h-9 rounded-full bg-white border border-gray-100 flex items-center justify-center shadow-sm rounded-tr-none"> <svg class="w-5 h-5 text-navy" xmlns="http://www.w3.org/2000/svg" width="18.052" height="17.8" viewBox="0 0 18.052 17.8"> <g id="Group_1600" data-name="Group 1600" transform="translate(-1104.008 -564.5)"> <g id="Group_1579" data-name="Group 1579" transform="translate(1104.635 565)"> <path id="Path_1090" data-name="Path 1090" d="M10,395.1l7.375,2.305a1.031,1.031,0,0,0,2.049,0L26.8,395.1" transform="translate(-10 -381.527)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1091" data-name="Path 1091" d="M30.244,361.991l.327-1.445,7.266,2.306,7.266-2.306.327,1.445" transform="translate(-29.438 -348.345)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1092" data-name="Path 1092" d="M226,426.565a1.237,1.237,0,0,1,2.39,0" transform="translate(-218.796 -410.854)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <line id="Line_385" data-name="Line 385" x1="6.3" y1="4.2" transform="translate(2.006 10.3)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <line id="Line_386" data-name="Line 386" y1="4.074" x2="6.924" transform="translate(8.244 10.426)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <g id="g55" transform="translate(1.591)"> <path id="path57" d="M-153.845-266.612s-6.822-4.111-6.822-8.679a3.192,3.192,0,0,1,3.183-3.2c2.259,0,3.638,2.284,3.638,2.284s1.379-2.284,3.638-2.284a3.192,3.192,0,0,1,3.183,3.2C-147.023-270.723-153.845-266.612-153.845-266.612Z" transform="translate(160.666 278.489)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> </g> <g id="Group_1553" data-name="Group 1553" transform="translate(4.296 3.873)"> <g id="Ellipse_101" data-name="Ellipse 101" transform="translate(0 0)" fill="none" stroke="#033" stroke-width="1"> <circle cx="0.977" cy="0.977" r="0.977" stroke="none"/> <circle cx="0.977" cy="0.977" r="0.477" fill="none"/> </g> <g id="Ellipse_102" data-name="Ellipse 102" transform="translate(3.126 0)" fill="none" stroke="#033" stroke-width="1"> <circle cx="0.977" cy="0.977" r="0.977" stroke="none"/> <circle cx="0.977" cy="0.977" r="0.477" fill="none"/> </g> <g id="Ellipse_103" data-name="Ellipse 103" transform="translate(6.253 0)" fill="none" stroke="#033" stroke-width="1"> <circle cx="0.977" cy="0.977" r="0.977" stroke="none"/> <circle cx="0.977" cy="0.977" r="0.477" fill="none"/> </g> </g> </g> </g> </svg> </div> </div> <div :class="msg.role === 'bot' ? 'bg-white text-gray-800 rounded-2xl rounded-tl-none px-4 py-3 shadow-sm border border-gray-100 max-w-[85%]' : 'bg-primary-200 text-navy rounded-2xl rounded-tr-none px-4 py-3 shadow-sm max-w-[85%]'" class="text-[15px] leading-relaxed"> <div x-html="msg.text" class="chat-content"></div> </div> <!-- User Avatar --> <div x-show="msg.role === 'user'" class="ml-2 shrink-0"> <div class="w-8 h-8 rounded-full bg-primary-200 flex items-center justify-center shadow-sm rounded-tl-none"> <svg xmlns="http://www.w3.org/2000/svg" width="13.327" height="15.548" viewBox="0 0 13.327 15.548" class="text-navy"> <g id="Group_1543" data-name="Group 1543" transform="translate(-890.028 -1014.081)"> <path id="Path_343" data-name="Path 343" d="M1384.31,96.646a6.121,6.121,0,0,0-12.23,0" transform="translate(-481.504 932.435)" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <path id="Path_344" data-name="Path 344" d="M1383.068,83.423a3.882,3.882,0,1,1-3.882-3.881A3.882,3.882,0,0,1,1383.068,83.423Z" transform="translate(-482.494 935.039)" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> </g> </svg> </div> </div> </div> </template> <!-- Quick actions (shown only when exactly 1 message – initial welcome from API) --> <template x-if="messages.length === 1 && !typing"> <div class="flex flex-col gap-2 w-full max-w-[280px] py-4 pl-10"> <template x-for="action in quickActions" :key="action.key"> <button @click="sendMessage(action.text)" :disabled="sending || rateLimited" class="bg-primary-200 text-navy rounded-xl px-4 py-3 text-left text-sm font-medium cursor-pointer ring-1 ring-transparent hover:bg-primary-300 hover:shadow-md hover:ring-navy/20 hover:-translate-y-px active:translate-y-0 active:shadow-sm transition-all duration-150 ease-out disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:shadow-none disabled:hover:ring-transparent disabled:hover:translate-y-0 disabled:active:translate-y-0"> <span x-text="action.text"></span> </button> </template> </div> </template> <!-- Typing Indicator --> <div x-show="typing" class="flex justify-start items-center"> <div class="mr-2 shrink-0"> <div class="w-8 h-8 rounded-full bg-white border border-gray-100 flex items-center justify-center shadow-sm"> <svg class="w-5 h-5 text-navy" xmlns="http://www.w3.org/2000/svg" width="25.253" height="25" viewBox="0 0 25.253 25"> <g id="Group_1596" data-name="Group 1596" transform="translate(-1104.008 -564.5)"> <g id="Group_1579" data-name="Group 1579" transform="translate(1104.635 565)"> <path id="Path_1090" data-name="Path 1090" d="M10,395.1,20.537,398.4a1.472,1.472,0,0,0,2.927,0L34,395.1" transform="translate(-10 -375.707)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1091" data-name="Path 1091" d="M30.244,362.61l.467-2.064,10.381,3.294,10.381-3.294.467,2.064" transform="translate(-29.092 -343.115)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1092" data-name="Path 1092" d="M226,426.958a1.767,1.767,0,0,1,3.414,0" transform="translate(-215.708 -404.514)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <line id="Line_385" data-name="Line 385" x1="9" y1="6" transform="translate(2.865 14.715)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <line id="Line_386" data-name="Line 386" y1="5.82" x2="9.891" transform="translate(11.778 14.894)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <g id="g55" transform="translate(2.273)"> <path id="path57" d="M-150.921-261.521s-9.745-5.873-9.745-12.4a4.56,4.56,0,0,1,4.548-4.568c3.227,0,5.2,3.263,5.2,3.263s1.971-3.263,5.2-3.263a4.56,4.56,0,0,1,4.548,4.568C-141.176-267.394-150.921-261.521-150.921-261.521Z" transform="translate(160.666 278.489)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> </g> <g id="Group_1553" data-name="Group 1553" transform="translate(6.138 5.534)"> <g id="Ellipse_101" data-name="Ellipse 101" transform="translate(0 0)" fill="none" stroke="#cbffcb" stroke-width="1"> <circle cx="1.396" cy="1.396" r="1.396" stroke="none"/> <circle cx="1.396" cy="1.396" r="0.896" fill="none"/> </g> <g id="Ellipse_102" data-name="Ellipse 102" transform="translate(4.466 0)" fill="none" stroke="#cbffcb" stroke-width="1"> <circle cx="1.396" cy="1.396" r="1.396" stroke="none"/> <circle cx="1.396" cy="1.396" r="0.896" fill="none"/> </g> <g id="Ellipse_103" data-name="Ellipse 103" transform="translate(8.933 0)" fill="none" stroke="#cbffcb" stroke-width="1"> <circle cx="1.396" cy="1.396" r="1.396" stroke="none"/> <circle cx="1.396" cy="1.396" r="0.896" fill="none"/> </g> </g> </g> </g> </svg> </div> </div> <div class="bg-white rounded-2xl rounded-tl-none px-4 py-3 shadow-sm border border-gray-100 flex gap-1"> <span class="w-2 h-2 bg-gray rounded-full animate-pulse" style="animation-delay: 0ms"></span> <span class="w-2 h-2 bg-gray rounded-full animate-pulse" style="animation-delay: 150ms"></span> <span class="w-2 h-2 bg-gray rounded-full animate-pulse" style="animation-delay: 300ms"></span> </div> </div> </div> <!-- Input Area --> <div class="border-t border-gray-100 bg-white"> <div class="flex items-center px-4 py-3"> <input type="text" x-ref="chatInput" x-model="userInput" @keydown.enter="sendMessage()" @focus="handleViewportResize(); $nextTick(() => { scrollToBottom(); })" placeholder="Scrivi la tua risposta .." :disabled="sending || rateLimited" class="w-full bg-transparent !border-none !ring-0 !outline-none !shadow-none text-base placeholder:text-gray-400 self-center mb-0 disabled:opacity-50"> <button @click="sendMessage()" class="shrink-0 p-2.5 bg-navy text-white rounded-full hover:bg-navy/90 transition-all disabled:opacity-30 disabled:cursor-not-allowed flex items-center justify-center" :disabled="!userInput.trim() || sending || rateLimited"> <svg xmlns="http://www.w3.org/2000/svg" width="19.241" height="19.241" viewBox="0 0 19.241 19.241" class=""> <g id="g291"> <g id="g293"> <g id="g295"> <g id="g301" transform="translate(9.017 0.564)"> <path id="path303" d="M0-333.094l9.661-9.661" transform="translate(0 342.755)" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> </g> <g id="g305" transform="translate(0.564 0.564)"> <path id="path307" d="M-291.457-333.095l-7.584-2.167a1.2,1.2,0,0,1-.869-1.152h0a1.219,1.219,0,0,1,.869-1.168l17.245-5.173-5.173,17.245a1.219,1.219,0,0,1-1.168.869h0a1.2,1.2,0,0,1-1.152-.869Z" transform="translate(299.91 342.755)" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> </g> </g> </g> </g> </svg> </button> </div> </div> </div> <!-- Transitioning Floating Button --> <div x-show="!open" x-transition:enter="transition ease-out duration-200" x-transition:enter-start="opacity-0 scale-90" x-transition:enter-end="opacity-100 scale-100" x-transition:leave="transition ease-in duration-150" x-transition:leave-start="opacity-100 scale-100" x-transition:leave-end="opacity-0 scale-90" class="h-12 px-3 bg-navy rounded-xl shadow-xl flex items-center justify-center text-white group overflow-hidden relative cursor-pointer sm:h-16 sm:px-4 sm:rounded-2xl" @click="open = true" @keydown.enter.prevent="open = true" @keydown.space.prevent="open = true" role="button" tabindex="0"> <div class="absolute inset-0 bg-white/10 opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none"></div> <div class="flex items-center gap-3 whitespace-nowrap overflow-hidden h-full sm:gap-6"> <!-- Icon always visible - clicking opens chat --> <div class="shrink-0 flex items-center justify-center cursor-pointer" @click="open = true"> <svg class="w-6 h-6 text-primary-200 transition-all duration-300 sm:w-8 sm:h-8" xmlns="http://www.w3.org/2000/svg" width="25.253" height="25" viewBox="0 0 25.253 25"> <g id="Group_1596" data-name="Group 1596" transform="translate(-1104.008 -564.5)"> <g id="Group_1579" data-name="Group 1579" transform="translate(1104.635 565)"> <path id="Path_1090" data-name="Path 1090" d="M10,395.1,20.537,398.4a1.472,1.472,0,0,0,2.927,0L34,395.1" transform="translate(-10 -375.707)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1091" data-name="Path 1091" d="M30.244,362.61l.467-2.064,10.381,3.294,10.381-3.294.467,2.064" transform="translate(-29.092 -343.115)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1092" data-name="Path 1092" d="M226,426.958a1.767,1.767,0,0,1,3.414,0" transform="translate(-215.708 -404.514)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <line id="Line_385" data-name="Line 385" x1="9" y1="6" transform="translate(2.865 14.715)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <line id="Line_386" data-name="Line 386" y1="5.82" x2="9.891" transform="translate(11.778 14.894)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <g id="g55" transform="translate(2.273)"> <path id="path57" d="M-150.921-261.521s-9.745-5.873-9.745-12.4a4.56,4.56,0,0,1,4.548-4.568c3.227,0,5.2,3.263,5.2,3.263s1.971-3.263,5.2-3.263a4.56,4.56,0,0,1,4.548,4.568C-141.176-267.394-150.921-261.521-150.921-261.521Z" transform="translate(160.666 278.489)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> </g> <g id="Group_1553" data-name="Group 1553" transform="translate(6.138 5.534)"> <g id="Ellipse_101" data-name="Ellipse 101" transform="translate(0 0)" fill="none" stroke="#cbffcb" stroke-width="1"> <circle cx="1.396" cy="1.396" r="1.396" stroke="none"/> <circle cx="1.396" cy="1.396" r="0.896" fill="none"/> </g> <g id="Ellipse_102" data-name="Ellipse 102" transform="translate(4.466 0)" fill="none" stroke="#cbffcb" stroke-width="1"> <circle cx="1.396" cy="1.396" r="1.396" stroke="none"/> <circle cx="1.396" cy="1.396" r="0.896" fill="none"/> </g> <g id="Ellipse_103" data-name="Ellipse 103" transform="translate(8.933 0)" fill="none" stroke="#cbffcb" stroke-width="1"> <circle cx="1.396" cy="1.396" r="1.396" stroke="none"/> <circle cx="1.396" cy="1.396" r="0.896" fill="none"/> </g> </g> </g> </g> </svg> </div> <div x-show="isWide && !open" class="flex items-center justify-center" x-transition:leave="transition ease-in duration-150" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0"> <!-- Text visible only when wide - clicking opens chat --> <span class="font-normal text-xs text-white inline-block cursor-pointer truncate max-w-[w-screen-42px] sm:text-sm sm:max-w-none" @click="open = true"> Ciao, sono Libroamiko, posso aiutarti? </span> <!-- Close icon for wide variant - only collapses --> <div class="ml-2 flex items-center justify-center w-7 h-7 hover:bg-white/10 rounded-full transition-colors cursor-pointer sm:w-8 sm:h-8" @click.stop="isWide = false"> <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="w-6 h-6 sm:w-8 sm:h-8" stroke="currentColor" stroke-width="1"> <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" /> </svg> </div> </div> </div> </div> </div> </div> <script> var appSessionId = 'wXP7C5GCP7ol53toeDsEalBeSLk7pr19'; var site = { country: 'it', locale: 'it', preferred_language: ["en","de","es","fr","it","uk"], cur: 'EUR', convertor: 24.475, tld: 'it', priceSet: 'it' }; var trans = { back: 'Indietro', allLangs: 'Tutte le lingue', moreLanguages: 'Altre lingue' } </script> <!-- Scripts --> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/lozad/dist/lozad.min.js"></script> <script src="https://www.libristo.it/js/utils.js?v1"></script> <script src="https://www.libristo.it/js/app.js?v6"></script> <script src="https://www.libristo.it/js/ga4.js?v5220"></script> <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/tippy.js@6.3.7/dist/tippy.umd.min.js"></script> <script> tippy('[data-tippy-content]', { placement: 'bottom', theme: "light", }); tippy('[data-tippy-green]', { content(reference) { return reference.getAttribute('data-tippy-green-content'); }, placement: "right", theme: "darkgreen", trigger: "mouseenter click", }) </script> <script> const data = { product: { id: "11859470", marketing_video: "https://www.youtube.com/watch?v=PwhROPPeqr0" } } </script> <script> setTimeout(() => { dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. dataLayer.push({ event: "view_item", ecommerce: { currency: 'EUR', value: 0, items: [{ item_id: "11859470", item_name: "Isis", currency: "EUR", item_variant: "Libro", price: 31.090091930541, item_category: "f:B", item_category2: "c:NH", item_category3: "a:instock_s:high_d:new_l:en_v:kwb_x:200", quantity: 1 }] } }); }, 500); setTimeout(() => { dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. dataLayer.push({ event: "view_item_list", ecommerce: { items: [ { item_id: "33117692", item_name: "The Postman from Space: Biker Bandits", currency: "EUR", item_variant: "Libro", price: 21.890091930541 } , { item_id: "34265986", item_name: "WWW.CRITICALSECRET.COM INTERNATIONAL N°2 SOCIALBARBARE", currency: "EUR", item_variant: "Libro", price: 25.990194075587 } , { item_id: "03186792", item_name: "Cold Rain", currency: "EUR", item_variant: "Libro", price: 18.889887640449 } , { item_id: "12865041", item_name: "Cuentos de La Selva: Tales of the Jungle", currency: "EUR", item_variant: "Libro", price: 8.0898876404494 } , { item_id: "16878420", item_name: "Corporate Success for the Mediocre - A Guide: And an Explainer for the Rest of Us", currency: "EUR", item_variant: "Libro", price: 8.8898876404494 } , { item_id: "17516818", item_name: "Hunting The Lions", currency: "EUR", item_variant: "Libro", price: 6.9899897854954 } , { item_id: "19181495", item_name: "How Coyote Brought Winter into the World: An Adaptation of a Traditional Native American Folktale (Told by the Zuni People)", currency: "EUR", item_variant: "Libro", price: 9.5901940755873 } , { item_id: "24278661", item_name: "Vražedné povídky", currency: "EUR", item_variant: "Libro", price: 2.9899897854954 } , { item_id: "29797097", item_name: "Messiah the Prince or the Meditorial Dominion of Jesus Christ (1881)", currency: "EUR", item_variant: "Libro", price: 55.289887640449 } , { item_id: "34710336", item_name: "888 astuces pour aménager son interieur", currency: "EUR", item_variant: "Libro", price: 25.990194075587 } , { item_id: "35334007", item_name: "La femme de l'ombre", currency: "EUR", item_variant: "Libro", price: 31.990194075587 } , { item_id: "44837340", item_name: "Automata Theory and Formal Languages", currency: "EUR", item_variant: "Libro elettronico", price: 197.49009193054 } ] } }); }, 750); </script> <script> const infobarBtns = document.querySelectorAll('[data-close-infobar]'); infobarBtns.forEach(infobarBtn => { infobarBtn.addEventListener('click', () => { document.querySelector("[data-infobar]").remove(); // add cookie named infobar to 1 document.cookie = "infobar_1832=1; path=/; expires=Fri, 31 Dec 9999 23:59:59 GMT"; }); }) </script> </body> </html>